From ab00d9a40c6322487796b83d783c59bd64871886 Mon Sep 17 00:00:00 2001 From: Antonio Date: Fri, 30 Aug 2024 15:32:10 +0200 Subject: [PATCH 01/46] chore: add gitlab pipeline name (#710) --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6a8fe5f8b..0fed9dbe2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,5 @@ workflow: + name: GitLab build pipeline rules: - if: '$CI_PIPELINE_SOURCE == "trigger"' From 45f6aea5cb0a47078f20ca43441cb3a3d662d6e6 Mon Sep 17 00:00:00 2001 From: Antonio Date: Mon, 2 Sep 2024 13:40:50 +0200 Subject: [PATCH 02/46] fix: cargo tests (#711) Not sure how using all features would work and not using them would not, but if we always build the WASM of all required runtimes then all tests pass. --- .github/workflows/check-code.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/check-code.yml b/.github/workflows/check-code.yml index 71fb39ab1..ec041c42d 100644 --- a/.github/workflows/check-code.yml +++ b/.github/workflows/check-code.yml @@ -186,7 +186,6 @@ jobs: -v "${GITHUB_WORKSPACE}:/workspace" \ -v "${HOME}/.cargo:/root/.cargo" \ -w /workspace \ - -e SKIP_WASM_BUILD=1 \ paritytech/ci-unified:bullseye-1.74.0 \ bash -c "cargo test --all-targets --locked ${{ matrix.features }}" From 872fc9d99157c8286f9d729cb67c2da33902c201 Mon Sep 17 00:00:00 2001 From: Antonio Date: Tue, 3 Sep 2024 10:09:22 +0200 Subject: [PATCH 03/46] chore: update status badge (#712) Check the `README` rendered from the `HEAD` of this PR. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d52b685d4..26d175e7c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# KILT-node · [![tests](https://gitlab.com/kiltprotocol/kilt-node/badges/develop/pipeline.svg)](https://gitlab.com/kiltprotocol/kilt-node/-/commits/develop) +# KILT-node · [![Check Code](https://github.com/KILTprotocol/kilt-node/actions/workflows/check-code.yml/badge.svg)](https://github.com/KILTprotocol/kilt-node/actions/workflows/check-code.yml?query=branch%3Adevelop) · [![Publish Docs](https://github.com/KILTprotocol/kilt-node/actions/workflows/publish-rustdocs.yml/badge.svg)](https://github.com/KILTprotocol/kilt-node/actions/workflows/publish-rustdocs.yml?query=branch%3Adevelop) · [![Build Artifacts](https://gitlab.com/kiltprotocol/kilt-node/badges/develop/pipeline.svg?key_text=Build+Artifacts&key_width=100)](https://gitlab.com/kiltprotocol/kilt-node/-/pipelines?page=1&scope=all&ref=develop)

From 5e9f744fe4cbf9e44675edba6b759d87356f573b Mon Sep 17 00:00:00 2001 From: Gerawork Aynekulu Date: Tue, 3 Sep 2024 10:18:56 +0200 Subject: [PATCH 04/46] ci: Deploy pages (#703) ## fixes KILTProtocol/ticket#3583 Deploys master as default docs branch then each tag and develop are put inside the root directory Succeful deployment can be seen here https://github.com/KILTprotocol/kilt-node/actions/runs/10595010314 ## Metadata Diff to Develop Branch

Peregrine Diff ``` ```
Spiritnet Diff ``` ```
## Checklist: - [ ] I have verified that the code works - [ ] No panics! (checked arithmetic ops, no indexing `array[3]` use `get(3)`, ...) - [ ] I have verified that the code is easy to understand - [ ] If not, I have left a well-balanced amount of inline comments - [ ] I have [left the code in a better state](https://deviq.com/principles/boy-scout-rule) - [ ] I have documented the changes (where applicable) * Either PR or Ticket to update [the Docs](https://github.com/KILTprotocol/docs) * Link the PR/Ticket here --------- Co-authored-by: Antonio Antonino --- .github/workflows/publish-rustdocs.yml | 61 +++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish-rustdocs.yml b/.github/workflows/publish-rustdocs.yml index 7a7e5e2ea..73ab18a0c 100644 --- a/.github/workflows/publish-rustdocs.yml +++ b/.github/workflows/publish-rustdocs.yml @@ -11,19 +11,30 @@ on: types: - completed +permissions: + contents: write + pages: write + id-token: write + concurrency: group: ${{ github.workflow }}-${{ github.ref_name }} cancel-in-progress: true jobs: - deploy-rustdocs: - name: Deploy rustdoc + build-rustdoc: + name: Build rustdoc runs-on: ubuntu-latest env: DOCS_TARGET: target/doc + BRANCH: gh-pages if: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }} steps: + - name: Free Disk Space + uses: jlumbroso/free-disk-space@main + with: + tool-cache: true + - name: Checkout repository uses: actions/checkout@v4 @@ -42,13 +53,51 @@ jobs: docker run --rm \ -v "${GITHUB_WORKSPACE}:/workspace" \ -v "${HOME}/.cargo:/root/.cargo" \ - -w /workspace \ -e RUSTDOCFLAGS='-D warnings' \ + -w /workspace \ paritytech/ci-unified:bullseye-1.74.0 \ - bash -c "cargo doc --all-features --no-deps --locked && chown -R $(id -u):$(id -g) ${{ env.DOCS_TARGET }}" + bash -c " + cargo doc --all-features --no-deps --locked && \ + mv $DOCS_TARGET/help.html $DOCS_TARGET/index.html && \ + chown -R $(id -u):$(id -g) $DOCS_TARGET" - - name: Deploy to GitHub Pages + - name: Set target folder for non-master branches + if: github.ref_name != 'master' + run: echo "TARGET_FOLDER=${{ github.ref_name }}" >> $GITHUB_ENV + + - name: Push to gh-pages branch uses: JamesIves/github-pages-deploy-action@v4 with: - branch: gh-pages-${{ github.ref_name }} + branch: ${{ env.BRANCH }} folder: ${{ env.DOCS_TARGET }} + target-folder: ${{ env.TARGET_FOLDER }} + + + deploy-rustdoc: + name: Deploy rustdoc + environment: + name: gh-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build-rustdoc + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: gh-pages + + - name: Setup Pages + uses: actions/configure-pages@v5 + + - name: Build with Jekyll + uses: actions/jekyll-build-pages@v1 + with: + source: ./ + destination: ./_site + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 From e53370bd31d2aaeb4eba02c8065d31e162df4616 Mon Sep 17 00:00:00 2001 From: Antonio Date: Tue, 3 Sep 2024 14:40:30 +0200 Subject: [PATCH 05/46] chore: add peregrine-dev id (#715) Because we match a Peregrine chainspec if the name itself has `peregrine` in it, currently we cannot spin up a Zombienet-based network using Peregrine dev because its name is only `dev`, which would fail to match. I added a second way to generate a peregrine dev chainspec, which is `peregrine-dev`, which contains the word `peregrine` in it, and would allow us to spin up a Zombienet network. --- nodes/parachain/src/chain_spec/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodes/parachain/src/chain_spec/mod.rs b/nodes/parachain/src/chain_spec/mod.rs index 512115f2c..1902f9bb4 100644 --- a/nodes/parachain/src/chain_spec/mod.rs +++ b/nodes/parachain/src/chain_spec/mod.rs @@ -112,7 +112,7 @@ impl FromStr for ParachainRuntime { fn from_str(s: &str) -> Result { match s { // Peregrine development - "dev" => Ok(Self::Peregrine(PeregrineRuntime::Dev)), + "dev" | "peregrine-dev" => Ok(Self::Peregrine(PeregrineRuntime::Dev)), // New blank Peregrine chainspec "peregrine-new" => Ok(Self::Peregrine(PeregrineRuntime::New)), // Peregrine chainspec From 94fb9db8ca6afe883349612cc51380602a62095a Mon Sep 17 00:00:00 2001 From: Adel Golghalyani <48685760+Ad96el@users.noreply.github.com> Date: Tue, 3 Sep 2024 14:53:14 +0200 Subject: [PATCH 06/46] fix: async backing (#713) Making sure our codebase matches steps 1-2 of the [async backing migration guide](https://wiki.polkadot.network/docs/maintain-guides-async-backing). --- dip-template/runtimes/dip-consumer/Cargo.toml | 2 +- dip-template/runtimes/dip-consumer/src/lib.rs | 1 + dip-template/runtimes/dip-provider/Cargo.toml | 2 +- dip-template/runtimes/dip-provider/src/lib.rs | 1 + integration-tests/emulated/Cargo.toml | 2 +- nodes/parachain/src/service.rs | 2 +- pallets/parachain-staking/Cargo.toml | 2 +- pallets/parachain-staking/src/mock.rs | 3 ++- runtimes/kestrel/Cargo.toml | 2 +- runtimes/kestrel/src/lib.rs | 1 + runtimes/peregrine/Cargo.toml | 2 +- runtimes/peregrine/src/lib.rs | 3 ++- runtimes/spiritnet/Cargo.toml | 2 +- runtimes/spiritnet/src/lib.rs | 3 ++- 14 files changed, 17 insertions(+), 11 deletions(-) diff --git a/dip-template/runtimes/dip-consumer/Cargo.toml b/dip-template/runtimes/dip-consumer/Cargo.toml index c474da6ec..e79acbb30 100644 --- a/dip-template/runtimes/dip-consumer/Cargo.toml +++ b/dip-template/runtimes/dip-consumer/Cargo.toml @@ -33,7 +33,7 @@ frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } frame-system-rpc-runtime-api = { workspace = true } -pallet-aura = { workspace = true } +pallet-aura = { workspace = true, features = ["experimental"] } pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-session = { workspace = true } diff --git a/dip-template/runtimes/dip-consumer/src/lib.rs b/dip-template/runtimes/dip-consumer/src/lib.rs index b12bd4b26..91a3af86f 100644 --- a/dip-template/runtimes/dip-consumer/src/lib.rs +++ b/dip-template/runtimes/dip-consumer/src/lib.rs @@ -367,6 +367,7 @@ impl pallet_aura::Config for Runtime { type AuthorityId = AuraId; type DisabledValidators = (); type MaxAuthorities = ConstU32<100_000>; + type SlotDuration = ConstU64; } impl cumulus_pallet_aura_ext::Config for Runtime {} diff --git a/dip-template/runtimes/dip-provider/Cargo.toml b/dip-template/runtimes/dip-provider/Cargo.toml index 8b0181b68..d3d28e601 100644 --- a/dip-template/runtimes/dip-provider/Cargo.toml +++ b/dip-template/runtimes/dip-provider/Cargo.toml @@ -33,7 +33,7 @@ frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } frame-system-rpc-runtime-api = { workspace = true } -pallet-aura = { workspace = true } +pallet-aura = { workspace = true, features = ["experimental"] } pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-session = { workspace = true } diff --git a/dip-template/runtimes/dip-provider/src/lib.rs b/dip-template/runtimes/dip-provider/src/lib.rs index c9a30efa8..c6e3ac944 100644 --- a/dip-template/runtimes/dip-provider/src/lib.rs +++ b/dip-template/runtimes/dip-provider/src/lib.rs @@ -368,6 +368,7 @@ impl pallet_aura::Config for Runtime { type AuthorityId = AuraId; type DisabledValidators = (); type MaxAuthorities = ConstU32<100_000>; + type SlotDuration = ConstU64; } impl cumulus_pallet_aura_ext::Config for Runtime {} diff --git a/integration-tests/emulated/Cargo.toml b/integration-tests/emulated/Cargo.toml index 212585bcb..6a21b6a6b 100644 --- a/integration-tests/emulated/Cargo.toml +++ b/integration-tests/emulated/Cargo.toml @@ -12,7 +12,7 @@ version = { workspace = true } [dependencies] asset-hub-rococo-emulated-chain = { workspace = true, default-features = true } -asset-hub-rococo-runtime = { workspace = true, default-features = true } +asset-hub-rococo-runtime = { workspace = true, default-features = true, features = ["experimental"] } attestation = { workspace = true, default-features = true } ctype = { workspace = true, default-features = true } cumulus-primitives-core = { workspace = true, default-features = true } diff --git a/nodes/parachain/src/service.rs b/nodes/parachain/src/service.rs index 9fb995cc0..0fb24c7bc 100644 --- a/nodes/parachain/src/service.rs +++ b/nodes/parachain/src/service.rs @@ -47,7 +47,7 @@ use substrate_prometheus_endpoint::Registry; use runtime_common::{AccountId, AuthorityId, Balance, BlockNumber, Hash, Nonce}; -pub const AUTHORING_DURATION: u64 = 500; +pub const AUTHORING_DURATION: u64 = 1500; pub const TASK_MANAGER_IDENTIFIER: &str = "aura"; type Header = sp_runtime::generic::Header; diff --git a/pallets/parachain-staking/Cargo.toml b/pallets/parachain-staking/Cargo.toml index cdf30bccf..df9d972d1 100644 --- a/pallets/parachain-staking/Cargo.toml +++ b/pallets/parachain-staking/Cargo.toml @@ -12,7 +12,7 @@ version = { workspace = true } [dev-dependencies] kilt-support = { workspace = true, features = ["mock", "try-runtime"] } -pallet-aura = { workspace = true, features = ["std"] } +pallet-aura = { workspace = true, features = ["experimental", "std"] } pallet-timestamp = { workspace = true, features = ["std"] } sp-consensus-aura = { workspace = true, features = ["std"] } sp-core = { workspace = true, features = ["std"] } diff --git a/pallets/parachain-staking/src/mock.rs b/pallets/parachain-staking/src/mock.rs index de30aa6ca..45fc24264 100644 --- a/pallets/parachain-staking/src/mock.rs +++ b/pallets/parachain-staking/src/mock.rs @@ -28,7 +28,7 @@ use frame_support::{ use frame_system::pallet_prelude::BlockNumberFor; use pallet_authorship::EventHandler; use sp_consensus_aura::sr25519::AuthorityId; -use sp_core::{ConstBool, H256}; +use sp_core::{ConstBool, ConstU64, H256}; use sp_runtime::{ impl_opaque_keys, testing::UintAuthorityId, @@ -120,6 +120,7 @@ impl pallet_aura::Config for Test { type DisabledValidators = (); type MaxAuthorities = MaxCollatorCandidates; type AllowMultipleBlocksPerSlot = ConstBool; + type SlotDuration = ConstU64<2>; } impl pallet_authorship::Config for Test { diff --git a/runtimes/kestrel/Cargo.toml b/runtimes/kestrel/Cargo.toml index b3906fb6a..d93fcc503 100644 --- a/runtimes/kestrel/Cargo.toml +++ b/runtimes/kestrel/Cargo.toml @@ -42,7 +42,7 @@ pallet-transaction-payment-rpc-runtime-api = { workspace = true } frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } -pallet-aura = { workspace = true } +pallet-aura = { workspace = true, features = ["experimental"] } pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-grandpa = { workspace = true } diff --git a/runtimes/kestrel/src/lib.rs b/runtimes/kestrel/src/lib.rs index 86270ad67..ad9f39631 100644 --- a/runtimes/kestrel/src/lib.rs +++ b/runtimes/kestrel/src/lib.rs @@ -209,6 +209,7 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = MaxAuthorities; type AllowMultipleBlocksPerSlot = ConstBool; + type SlotDuration = ConstU64<1000>; } impl pallet_grandpa::Config for Runtime { diff --git a/runtimes/peregrine/Cargo.toml b/runtimes/peregrine/Cargo.toml index 66f1f9879..f8b46c79b 100644 --- a/runtimes/peregrine/Cargo.toml +++ b/runtimes/peregrine/Cargo.toml @@ -70,7 +70,7 @@ frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } pallet-assets = { workspace = true } -pallet-aura = { workspace = true } +pallet-aura = { workspace = true, features = ["experimental"] } pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-collective = { workspace = true } diff --git a/runtimes/peregrine/src/lib.rs b/runtimes/peregrine/src/lib.rs index 71a50fab5..17a1e966e 100644 --- a/runtimes/peregrine/src/lib.rs +++ b/runtimes/peregrine/src/lib.rs @@ -42,7 +42,7 @@ use frame_system::{pallet_prelude::BlockNumberFor, EnsureRoot, EnsureSigned}; use pallet_asset_switch::xcm::{AccountId32ToAccountId32JunctionConverter, MatchesSwitchPairXcmFeeFungibleAsset}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use sp_api::impl_runtime_apis; -use sp_core::{ConstBool, OpaqueMetadata}; +use sp_core::{ConstBool, ConstU64, OpaqueMetadata}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, OpaqueKeys}, @@ -295,6 +295,7 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = MaxAuthorities; type AllowMultipleBlocksPerSlot = ConstBool; + type SlotDuration = ConstU64; } parameter_types! { diff --git a/runtimes/spiritnet/Cargo.toml b/runtimes/spiritnet/Cargo.toml index 4716c6c83..24c4ef6a8 100644 --- a/runtimes/spiritnet/Cargo.toml +++ b/runtimes/spiritnet/Cargo.toml @@ -70,7 +70,7 @@ frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } pallet-assets = { workspace = true } -pallet-aura = { workspace = true } +pallet-aura = { workspace = true, features = ["experimental"] } pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-collective = { workspace = true } diff --git a/runtimes/spiritnet/src/lib.rs b/runtimes/spiritnet/src/lib.rs index 71e3c86b9..ae0f32c63 100644 --- a/runtimes/spiritnet/src/lib.rs +++ b/runtimes/spiritnet/src/lib.rs @@ -42,7 +42,7 @@ use frame_system::{pallet_prelude::BlockNumberFor, EnsureRoot, EnsureSigned}; use pallet_asset_switch::xcm::{AccountId32ToAccountId32JunctionConverter, MatchesSwitchPairXcmFeeFungibleAsset}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use sp_api::impl_runtime_apis; -use sp_core::{ConstBool, OpaqueMetadata}; +use sp_core::{ConstBool, ConstU64, OpaqueMetadata}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, OpaqueKeys}, @@ -288,6 +288,7 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = MaxAuthorities; type AllowMultipleBlocksPerSlot = ConstBool; + type SlotDuration = ConstU64; } parameter_types! { From ab5ba7e9ed1f68a425dd9d4f8af671478db1d502 Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Wed, 4 Sep 2024 09:05:16 +0200 Subject: [PATCH 07/46] chore: bump to next dev version --- Cargo.lock | 72 +++++++++++++++++++++++++++--------------------------- Cargo.toml | 2 +- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8af2e411a..32419e473 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -770,7 +770,7 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "attestation" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "ctype", "frame-benchmarking", @@ -1976,7 +1976,7 @@ dependencies = [ [[package]] name = "ctype" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "frame-benchmarking", "frame-support", @@ -2713,7 +2713,7 @@ dependencies = [ [[package]] name = "delegation" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "attestation", "bitflags 1.3.2", @@ -2816,7 +2816,7 @@ dependencies = [ [[package]] name = "did" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "ctype", "env_logger 0.10.2", @@ -2876,7 +2876,7 @@ dependencies = [ [[package]] name = "dip-consumer-node-template" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "clap", "cumulus-client-cli", @@ -2930,7 +2930,7 @@ dependencies = [ [[package]] name = "dip-consumer-runtime-template" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", @@ -2984,7 +2984,7 @@ dependencies = [ [[package]] name = "dip-provider-node-template" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "clap", "cumulus-client-cli", @@ -3038,7 +3038,7 @@ dependencies = [ [[package]] name = "dip-provider-runtime-template" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", @@ -5143,7 +5143,7 @@ dependencies = [ [[package]] name = "kestrel-runtime" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "attestation", "ctype", @@ -5202,7 +5202,7 @@ checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" [[package]] name = "kilt-asset-dids" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "base58", "frame-support", @@ -5217,7 +5217,7 @@ dependencies = [ [[package]] name = "kilt-dip-primitives" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -5249,7 +5249,7 @@ dependencies = [ [[package]] name = "kilt-parachain" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "clap", "cumulus-client-cli", @@ -5316,7 +5316,7 @@ dependencies = [ [[package]] name = "kilt-runtime-api-did" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "did", "frame-system", @@ -5329,7 +5329,7 @@ dependencies = [ [[package]] name = "kilt-runtime-api-dip-provider" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "parity-scale-codec", "sp-api", @@ -5337,7 +5337,7 @@ dependencies = [ [[package]] name = "kilt-runtime-api-public-credentials" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "kilt-support", "parity-scale-codec", @@ -5347,7 +5347,7 @@ dependencies = [ [[package]] name = "kilt-runtime-api-staking" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "parity-scale-codec", "scale-info", @@ -5357,7 +5357,7 @@ dependencies = [ [[package]] name = "kilt-support" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "frame-support", "frame-system", @@ -6910,7 +6910,7 @@ dependencies = [ [[package]] name = "pallet-asset-switch" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "env_logger 0.10.2", "frame-benchmarking", @@ -6932,7 +6932,7 @@ dependencies = [ [[package]] name = "pallet-asset-switch-runtime-api" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "parity-scale-codec", "sp-api", @@ -7301,7 +7301,7 @@ dependencies = [ [[package]] name = "pallet-configuration" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "cumulus-pallet-parachain-system", "frame-benchmarking", @@ -7355,7 +7355,7 @@ dependencies = [ [[package]] name = "pallet-deposit-storage" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "frame-benchmarking", "frame-support", @@ -7374,7 +7374,7 @@ dependencies = [ [[package]] name = "pallet-did-lookup" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "base58", "blake2 0.10.6", @@ -7401,7 +7401,7 @@ dependencies = [ [[package]] name = "pallet-dip-consumer" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "cfg-if", "frame-benchmarking", @@ -7421,7 +7421,7 @@ dependencies = [ [[package]] name = "pallet-dip-provider" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "did", "frame-benchmarking", @@ -7591,7 +7591,7 @@ dependencies = [ [[package]] name = "pallet-inflation" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "frame-benchmarking", "frame-support", @@ -7644,7 +7644,7 @@ dependencies = [ [[package]] name = "pallet-migration" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "attestation", "ctype", @@ -7863,7 +7863,7 @@ dependencies = [ [[package]] name = "pallet-postit" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "frame-support", "frame-system", @@ -7960,7 +7960,7 @@ dependencies = [ [[package]] name = "pallet-relay-store" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -8304,7 +8304,7 @@ dependencies = [ [[package]] name = "pallet-web3-names" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "frame-benchmarking", "frame-support", @@ -8399,7 +8399,7 @@ dependencies = [ [[package]] name = "parachain-staking" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "frame-benchmarking", "frame-support", @@ -8686,7 +8686,7 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "peregrine-runtime" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "attestation", "cfg-if", @@ -10316,7 +10316,7 @@ dependencies = [ [[package]] name = "public-credentials" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "ctype", "frame-benchmarking", @@ -10892,7 +10892,7 @@ dependencies = [ [[package]] name = "runtime-common" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "attestation", "cfg-if", @@ -13742,7 +13742,7 @@ dependencies = [ [[package]] name = "spiritnet-runtime" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "attestation", "cfg-if", @@ -13963,7 +13963,7 @@ dependencies = [ [[package]] name = "standalone-node" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "clap", "frame-benchmarking", @@ -16110,7 +16110,7 @@ dependencies = [ [[package]] name = "xcm-integration-tests" -version = "1.14.0-dev" +version = "1.15.0-dev" dependencies = [ "asset-hub-rococo-emulated-chain", "asset-hub-rococo-runtime", diff --git a/Cargo.toml b/Cargo.toml index f9b904cfe..f6a775c14 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ homepage = "https://kilt.io/" license-file = "LICENSE" readme = "README.md" repository = "https://github.com/KILTprotocol/kilt-node" -version = "1.14.0-dev" +version = "1.15.0-dev" [workspace.dependencies] # Build deps From d8b12ef218b8a4107ec7292777b7dadf93dde434 Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Wed, 4 Sep 2024 09:09:05 +0200 Subject: [PATCH 08/46] chore: bump spec_version --- dip-template/runtimes/dip-consumer/src/lib.rs | 2 +- dip-template/runtimes/dip-provider/src/lib.rs | 2 +- runtimes/kestrel/src/lib.rs | 2 +- runtimes/peregrine/src/lib.rs | 2 +- runtimes/spiritnet/src/lib.rs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dip-template/runtimes/dip-consumer/src/lib.rs b/dip-template/runtimes/dip-consumer/src/lib.rs index 91a3af86f..e6401c238 100644 --- a/dip-template/runtimes/dip-consumer/src/lib.rs +++ b/dip-template/runtimes/dip-consumer/src/lib.rs @@ -153,7 +153,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("dip-consumer-runtime-template"), impl_name: create_runtime_str!("dip-consumer-runtime-template"), authoring_version: 1, - spec_version: 11400, + spec_version: 11500, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/dip-template/runtimes/dip-provider/src/lib.rs b/dip-template/runtimes/dip-provider/src/lib.rs index c6e3ac944..8c52b542f 100644 --- a/dip-template/runtimes/dip-provider/src/lib.rs +++ b/dip-template/runtimes/dip-provider/src/lib.rs @@ -154,7 +154,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("dip-provider-runtime-template"), impl_name: create_runtime_str!("dip-provider-runtime-template"), authoring_version: 1, - spec_version: 11400, + spec_version: 11500, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/runtimes/kestrel/src/lib.rs b/runtimes/kestrel/src/lib.rs index ad9f39631..924ed7a9f 100644 --- a/runtimes/kestrel/src/lib.rs +++ b/runtimes/kestrel/src/lib.rs @@ -118,7 +118,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("kilt-kestrel"), impl_name: create_runtime_str!("kilt-kestrel"), authoring_version: 4, - spec_version: 11400, + spec_version: 11500, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 6, diff --git a/runtimes/peregrine/src/lib.rs b/runtimes/peregrine/src/lib.rs index 17a1e966e..b80211976 100644 --- a/runtimes/peregrine/src/lib.rs +++ b/runtimes/peregrine/src/lib.rs @@ -110,7 +110,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("mashnet-node"), impl_name: create_runtime_str!("mashnet-node"), authoring_version: 4, - spec_version: 11400, + spec_version: 11500, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 8, diff --git a/runtimes/spiritnet/src/lib.rs b/runtimes/spiritnet/src/lib.rs index ae0f32c63..66918bb47 100644 --- a/runtimes/spiritnet/src/lib.rs +++ b/runtimes/spiritnet/src/lib.rs @@ -109,7 +109,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("kilt-spiritnet"), impl_name: create_runtime_str!("kilt-spiritnet"), authoring_version: 1, - spec_version: 11400, + spec_version: 11500, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 8, From fc02757fd1cd7a2d7fcb18d2f1507fb635977318 Mon Sep 17 00:00:00 2001 From: Antonio Date: Wed, 4 Sep 2024 10:03:22 +0200 Subject: [PATCH 09/46] fix: triggering gitlab pipeline on tags (#717) I noticed that if we trigger Gitlab pipeline from a tag, the action fails. And if we trigger it from a branch, the Docker image tags are weird. So we should trigger it from a tag from the release branch and from branch (push) from develop and master. --- .github/workflows/trigger-gitlab-pipeline.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/trigger-gitlab-pipeline.yml b/.github/workflows/trigger-gitlab-pipeline.yml index 4a6f4d00a..f34dc8cf1 100644 --- a/.github/workflows/trigger-gitlab-pipeline.yml +++ b/.github/workflows/trigger-gitlab-pipeline.yml @@ -23,11 +23,15 @@ jobs: with: fetch-depth: 0 - - name: Sync HEAD with GitLab - uses: saderi/push-to-gitlab@v1 - with: - gitlab_repository: 'gitlab.com/kiltprotocol/kilt-node' - gitlab_token: ${{ secrets.KILTBOT_PUSH_ACCESS_TOKEN }} + - name: Config Gitlab env + run: | + git config --global user.name "github-actions[bot]" + git remote add gitlab https://oauth2:${{ secrets.KILTBOT_PUSH_ACCESS_TOKEN }}@gitlab.com/kiltprotocol/kilt-node + + - name: Push latest ref (branch or tag) + run: git push gitlab ${{ github.ref_name }} + # It can happen that the Gitlab mirror is updated in the meanwhile, and the ref already exists there, so we ignore the error. + continue-on-error: true - name: Trigger GitLab CI run: | From be2c2d7f3763fc7e8332a38897bc0dc23f5b4cd0 Mon Sep 17 00:00:00 2001 From: Antonio Date: Thu, 5 Sep 2024 10:29:22 +0200 Subject: [PATCH 10/46] fix: node-side panics after refactoring (#718) Fixes https://github.com/KILTprotocol/ticket/issues/3596 and fixes https://github.com/KILTprotocol/ticket/issues/3598. --- Cargo.lock | 1 + Dockerfile | 4 +++- nodes/parachain/src/chain_spec/utils.rs | 26 +++++++++++++++++++------ runtimes/kestrel/Cargo.toml | 2 ++ runtimes/kestrel/src/lib.rs | 15 +++++++++++++- 5 files changed, 40 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 32419e473..fe0135198 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5184,6 +5184,7 @@ dependencies = [ "sp-block-builder", "sp-consensus-aura", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-offchain", "sp-runtime", diff --git a/Dockerfile b/Dockerfile index 816664b84..d88a9ea11 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # this container builds the kilt-parachain binary from source files and the runtime library # pinned the version to avoid build cache invalidation -FROM paritytech/ci-unified:bullseye-1.70.0 as builder +FROM paritytech/ci-unified:bullseye-1.74.0 as builder WORKDIR /build @@ -32,5 +32,7 @@ VOLUME ["/data"] COPY ./chainspecs /node/chainspecs +ENV CHAINSPECS_FOLDER=/node/chainspecs + ENTRYPOINT ["/usr/local/bin/node-executable"] CMD ["--help"] diff --git a/nodes/parachain/src/chain_spec/utils.rs b/nodes/parachain/src/chain_spec/utils.rs index e7d535beb..b40d4d7ea 100644 --- a/nodes/parachain/src/chain_spec/utils.rs +++ b/nodes/parachain/src/chain_spec/utils.rs @@ -86,15 +86,29 @@ pub(crate) fn load_spec(id: &str) -> Result, Stri } } +// Compile-time env variable used when running the binary with cargo or via +// cargo (after `cargo build`). const MANIFEST_DIR: &str = env!("CARGO_MANIFEST_DIR"); -const CHAINSPECS_FOLDER: &str = "chainspecs"; +// Name of the runtime-time env variable that can be used to configure the +// chainspecs folder path, useful especially when running the binary in a Docker +// container. +const CHAINSPECS_FOLDER_VAR_NAME: &str = "CHAINSPECS_FOLDER"; -// Prepends the given path with the `/chainspecs` path. fn get_chainspec_full_path(path: &str) -> PathBuf { - Path::new(MANIFEST_DIR) - .join("..") - .join("..") - .join(CHAINSPECS_FOLDER) + // Use the provided env variable, if present at runtime, or else uses the + // compile-time `CARGO_MANIFEST_DIR` variable (e.g., if the binary is run via + // cargo instead of in a Docker container). + let chainspecs_root = match std::env::var(CHAINSPECS_FOLDER_VAR_NAME) { + Ok(chainspecs_folder_name) => chainspecs_folder_name.to_owned(), + Err(_) => Path::new(MANIFEST_DIR) + .join("..") + .join("..") + .join("chainspecs") + .to_string_lossy() + .into_owned(), + }; + + Path::new(chainspecs_root.as_str()) .join(path) .canonicalize() .expect("Invalid path provided.") diff --git a/runtimes/kestrel/Cargo.toml b/runtimes/kestrel/Cargo.toml index d93fcc503..a854ed769 100644 --- a/runtimes/kestrel/Cargo.toml +++ b/runtimes/kestrel/Cargo.toml @@ -58,6 +58,7 @@ sp-api = { workspace = true } sp-block-builder = { workspace = true } sp-consensus-aura = { workspace = true } sp-core = { workspace = true } +sp-genesis-builder = { workspace = true } sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } @@ -138,6 +139,7 @@ std = [ "sp-block-builder/std", "sp-consensus-aura/std", "sp-core/std", + "sp-genesis-builder/std", "sp-inherents/std", "sp-offchain/std", "sp-runtime/std", diff --git a/runtimes/kestrel/src/lib.rs b/runtimes/kestrel/src/lib.rs index 924ed7a9f..3ec7868ab 100644 --- a/runtimes/kestrel/src/lib.rs +++ b/runtimes/kestrel/src/lib.rs @@ -28,7 +28,9 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); use frame_support::{ - construct_runtime, parameter_types, + construct_runtime, + genesis_builder_helper::{build_config, create_default_config}, + parameter_types, traits::{Everything, InstanceFilter}, weights::{constants::RocksDbWeight, ConstantMultiplier, IdentityFee, Weight}, }; @@ -1158,6 +1160,17 @@ impl_runtime_apis! { } } + impl sp_genesis_builder::GenesisBuilder for Runtime { + + fn create_default_config() -> Vec { + create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } + } + #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { From c1094e2bc43748cb1772690abd63e9b10d0529a0 Mon Sep 17 00:00:00 2001 From: Antonio Date: Thu, 5 Sep 2024 15:39:01 +0200 Subject: [PATCH 11/46] feat: embed chainspecs in binary (#720) To avoid runtime panics. Fixes https://github.com/KILTprotocol/ticket/issues/3601 by embedding the well-known chainspecs into the binary. Fixes https://github.com/KILTprotocol/ticket/issues/3597 by defaulting to "peregrine" if a chainspec path is specified that does not contain neither `peregrine` nor `spiritnet`. --- Dockerfile | 2 - nodes/parachain/src/chain_spec/mod.rs | 4 +- nodes/parachain/src/chain_spec/rilt/mod.rs | 4 -- nodes/parachain/src/chain_spec/utils.rs | 50 ++++------------------ 4 files changed, 11 insertions(+), 49 deletions(-) diff --git a/Dockerfile b/Dockerfile index d88a9ea11..5aa1d5fac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,7 +32,5 @@ VOLUME ["/data"] COPY ./chainspecs /node/chainspecs -ENV CHAINSPECS_FOLDER=/node/chainspecs - ENTRYPOINT ["/usr/local/bin/node-executable"] CMD ["--help"] diff --git a/nodes/parachain/src/chain_spec/mod.rs b/nodes/parachain/src/chain_spec/mod.rs index 1902f9bb4..f291456ae 100644 --- a/nodes/parachain/src/chain_spec/mod.rs +++ b/nodes/parachain/src/chain_spec/mod.rs @@ -134,7 +134,9 @@ impl FromStr for ParachainRuntime { // Any other Spiritnet-based chainspec s if s.contains("spiritnet") => Ok(Self::Spiritnet(SpiritnetRuntime::Other(s.to_string()))), - _ => Err(format!("Unknown chainspec id provided: {s}")), + // Instead of panicking, we use the Peregrine runtime, since we don't expect Spiritnet to ever be used in + // this way + path => Ok(Self::Peregrine(PeregrineRuntime::Other(path.to_string()))), } } } diff --git a/nodes/parachain/src/chain_spec/rilt/mod.rs b/nodes/parachain/src/chain_spec/rilt/mod.rs index f9d2c15aa..e810b07d5 100644 --- a/nodes/parachain/src/chain_spec/rilt/mod.rs +++ b/nodes/parachain/src/chain_spec/rilt/mod.rs @@ -25,7 +25,3 @@ const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; /// Specialized `ChainSpec` for the normal parachain runtime. pub(crate) type ChainSpec = sc_service::GenericChainSpec; - -pub(crate) fn load_chain_spec(path: &str) -> Result { - ChainSpec::from_json_file(path.into()) -} diff --git a/nodes/parachain/src/chain_spec/utils.rs b/nodes/parachain/src/chain_spec/utils.rs index b40d4d7ea..d857dc0ca 100644 --- a/nodes/parachain/src/chain_spec/utils.rs +++ b/nodes/parachain/src/chain_spec/utils.rs @@ -16,8 +16,6 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org -use std::path::{Path, PathBuf}; - use runtime_common::{AccountId, AccountPublic}; use sc_service::Properties; use sp_core::{Pair, Public}; @@ -57,18 +55,14 @@ pub(crate) fn load_spec(id: &str) -> Result, Stri "rococo_local", ))), PeregrineRuntime::New => Ok(Box::new(chain_spec::peregrine::new::generate_chain_spec())), - PeregrineRuntime::Peregrine => Ok(Box::new(chain_spec::peregrine::load_chain_spec( - get_chainspec_full_path("peregrine/peregrine-paseo.json") - .to_str() - .unwrap(), + PeregrineRuntime::Peregrine => Ok(Box::new(chain_spec::peregrine::ChainSpec::from_json_bytes( + include_bytes!("../../../../chainspecs/peregrine/peregrine-paseo.json").as_slice(), )?)), - PeregrineRuntime::PeregrineStg => Ok(Box::new(chain_spec::peregrine::load_chain_spec( - get_chainspec_full_path("peregrine-stg/peregrine-stg.json") - .to_str() - .unwrap(), + PeregrineRuntime::PeregrineStg => Ok(Box::new(chain_spec::peregrine::ChainSpec::from_json_bytes( + include_bytes!("../../../../chainspecs/peregrine-stg/peregrine-stg.json").as_slice(), )?)), - PeregrineRuntime::Rilt => Ok(Box::new(chain_spec::rilt::load_chain_spec( - get_chainspec_full_path("rilt/peregrine-rilt.json").to_str().unwrap(), + PeregrineRuntime::Rilt => Ok(Box::new(chain_spec::peregrine::ChainSpec::from_json_bytes( + include_bytes!("../../../../chainspecs/rilt/peregrine-rilt.json").as_slice(), )?)), PeregrineRuntime::RiltNew => Ok(Box::new(chain_spec::rilt::new::generate_chain_spec())), PeregrineRuntime::Other(s) => Ok(Box::new(chain_spec::peregrine::load_chain_spec(s.as_str())?)), @@ -78,38 +72,10 @@ pub(crate) fn load_spec(id: &str) -> Result, Stri "rococo_local", ))), SpiritnetRuntime::New => Ok(Box::new(chain_spec::spiritnet::new::generate_chain_spec())), - SpiritnetRuntime::Spiritnet => Ok(Box::new(chain_spec::spiritnet::load_chain_spec( - get_chainspec_full_path("spiritnet/spiritnet.json").to_str().unwrap(), + SpiritnetRuntime::Spiritnet => Ok(Box::new(chain_spec::spiritnet::ChainSpec::from_json_bytes( + include_bytes!("../../../../chainspecs/spiritnet/spiritnet.json").as_slice(), )?)), SpiritnetRuntime::Other(s) => Ok(Box::new(chain_spec::spiritnet::load_chain_spec(s.as_str())?)), }, } } - -// Compile-time env variable used when running the binary with cargo or via -// cargo (after `cargo build`). -const MANIFEST_DIR: &str = env!("CARGO_MANIFEST_DIR"); -// Name of the runtime-time env variable that can be used to configure the -// chainspecs folder path, useful especially when running the binary in a Docker -// container. -const CHAINSPECS_FOLDER_VAR_NAME: &str = "CHAINSPECS_FOLDER"; - -fn get_chainspec_full_path(path: &str) -> PathBuf { - // Use the provided env variable, if present at runtime, or else uses the - // compile-time `CARGO_MANIFEST_DIR` variable (e.g., if the binary is run via - // cargo instead of in a Docker container). - let chainspecs_root = match std::env::var(CHAINSPECS_FOLDER_VAR_NAME) { - Ok(chainspecs_folder_name) => chainspecs_folder_name.to_owned(), - Err(_) => Path::new(MANIFEST_DIR) - .join("..") - .join("..") - .join("chainspecs") - .to_string_lossy() - .into_owned(), - }; - - Path::new(chainspecs_root.as_str()) - .join(path) - .canonicalize() - .expect("Invalid path provided.") -} From 6847de9bddfabb89be1cc31e3824c14463b7bc1d Mon Sep 17 00:00:00 2001 From: Antonio Date: Mon, 9 Sep 2024 14:35:54 +0200 Subject: [PATCH 12/46] ci: try-runtime WASMs in release pipeline (#724) Fixes https://github.com/KILTprotocol/ticket/issues/3603. --- .gitlab-ci.yml | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0fed9dbe2..8f5caca41 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,7 +6,7 @@ workflow: stages: - build -build-wasm: +build-production-wasm: image: name: paritytech/srtool:1.75.0 entrypoint: [""] @@ -34,6 +34,37 @@ build-wasm: - out/*.txt expire_in: 12 week +build-try-state-wasm: + image: + name: paritytech/ci-unified:bullseye-1.74.0 + stage: build + parallel: + matrix: + - RUNTIME: ["peregrine", "spiritnet"] + variables: + # Move cargo data INSIDE the project dir so it can be cached + CARGO_HOME: ${CI_PROJECT_DIR}/.cargo + cache: + when: always + key: + # E.g., `build-try-state-wasm-develop-peregrine` and `build-try-state-wasm-develop-spiritnet` + prefix: "$CI_JOB_NAME:$CI_COMMIT_REF_NAME:${RUNTIME}" + files: + - Cargo.lock + paths: + - $CARGO_HOME/bin/ + - $CARGO_HOME/registry/index/ + - $CARGO_HOME/registry/cache/ + - $CARGO_HOME/git/db/ + script: + - cargo build --release --locked -p ${RUNTIME}-runtime --features try-runtime + - mkdir -p out + - mv target/release/wbuild/${RUNTIME}-runtime/${RUNTIME}_runtime.compact.compressed.wasm out/**UNSAFE**${RUNTIME}_runtime_try_runtime.compact.compressed.wasm + artifacts: + paths: + - out + expire_in: 12 week + build-docker-images: timeout: 2 hours image: From d9552b70160465eaedd7263db450aa70f49667df Mon Sep 17 00:00:00 2001 From: Antonio Date: Thu, 12 Sep 2024 14:58:47 +0200 Subject: [PATCH 13/46] chore: post 1.14 release (#723) * Remove executed runtime migrations * Remove DMP pallet + migration (makes also `try-runtime` still fail since pallet version is `2` but storage version after cleanup is `0`) --- Cargo.lock | 20 -- Cargo.toml | 1 - runtimes/peregrine/Cargo.toml | 4 - runtimes/peregrine/src/lib.rs | 14 +- .../src/weights/cumulus_pallet_dmp_queue.rs | 184 ------------------ runtimes/peregrine/src/weights/mod.rs | 1 - runtimes/peregrine/src/xcm_config.rs | 13 +- runtimes/spiritnet/Cargo.toml | 4 - runtimes/spiritnet/src/lib.rs | 14 +- .../src/weights/cumulus_pallet_dmp_queue.rs | 184 ------------------ runtimes/spiritnet/src/weights/mod.rs | 1 - runtimes/spiritnet/src/xcm_config.rs | 13 +- scripts/run_benches_for_runtime.sh | 1 - 13 files changed, 14 insertions(+), 440 deletions(-) delete mode 100644 runtimes/peregrine/src/weights/cumulus_pallet_dmp_queue.rs delete mode 100644 runtimes/spiritnet/src/weights/cumulus_pallet_dmp_queue.rs diff --git a/Cargo.lock b/Cargo.lock index fe0135198..f2c568bd4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2244,24 +2244,6 @@ dependencies = [ "sp-std", ] -[[package]] -name = "cumulus-pallet-dmp-queue" -version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-crates-io-v1.7.0#e046d3b2caaca6c43a60f26594052c5c806b980e" -dependencies = [ - "cumulus-primitives-core", - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", - "staging-xcm", -] - [[package]] name = "cumulus-pallet-parachain-system" version = "0.8.1" @@ -8693,7 +8675,6 @@ dependencies = [ "cfg-if", "ctype", "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-session-benchmarking", "cumulus-pallet-xcm", @@ -13749,7 +13730,6 @@ dependencies = [ "cfg-if", "ctype", "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-session-benchmarking", "cumulus-pallet-xcm", diff --git a/Cargo.toml b/Cargo.toml index f6a775c14..e321a472c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,7 +100,6 @@ frame-system-benchmarking = { git = "https://github.com/paritytech/pol # Cumulus (with default disabled) cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-crates-io-v1.7.0" } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-crates-io-v1.7.0" } cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-crates-io-v1.7.0" } cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-crates-io-v1.7.0" } cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-crates-io-v1.7.0" } diff --git a/runtimes/peregrine/Cargo.toml b/runtimes/peregrine/Cargo.toml index f8b46c79b..9ab6eec61 100644 --- a/runtimes/peregrine/Cargo.toml +++ b/runtimes/peregrine/Cargo.toml @@ -94,7 +94,6 @@ sp-genesis-builder = { workspace = true } # Cumulus dependencies cumulus-pallet-aura-ext = { workspace = true } -cumulus-pallet-dmp-queue = { workspace = true } cumulus-pallet-parachain-system = { workspace = true, features = ["parameterized-consensus-hook"] } cumulus-pallet-xcm = { workspace = true } cumulus-pallet-xcmp-queue = { workspace = true } @@ -126,7 +125,6 @@ fast-gov = ["runtime-common/fast-gov"] runtime-benchmarks = [ "attestation/runtime-benchmarks", "ctype/runtime-benchmarks", - "cumulus-pallet-dmp-queue/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-session-benchmarking/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", @@ -175,7 +173,6 @@ std = [ "attestation/std", "ctype/std", "cumulus-pallet-aura-ext/std", - "cumulus-pallet-dmp-queue/std", "cumulus-pallet-parachain-system/std", "cumulus-pallet-session-benchmarking/std", "cumulus-pallet-xcm/std", @@ -258,7 +255,6 @@ try-runtime = [ "attestation/try-runtime", "ctype/try-runtime", "cumulus-pallet-aura-ext/try-runtime", - "cumulus-pallet-dmp-queue/try-runtime", "cumulus-pallet-parachain-system/try-runtime", "cumulus-pallet-xcm/try-runtime", "cumulus-pallet-xcmp-queue/try-runtime", diff --git a/runtimes/peregrine/src/lib.rs b/runtimes/peregrine/src/lib.rs index b80211976..24ee9bf8e 100644 --- a/runtimes/peregrine/src/lib.rs +++ b/runtimes/peregrine/src/lib.rs @@ -1111,8 +1111,7 @@ construct_runtime! { PolkadotXcm: pallet_xcm = 83, // Does nothing cool, just provides an origin. CumulusXcm: cumulus_pallet_xcm exclude_parts { Call } = 84, - // delete after lazy runtime Migration - DmpQueue: cumulus_pallet_dmp_queue = 85, + // DmpQueue: cumulus_pallet_dmp_queue = 85, // Queue and pass DMP messages on to be executed. MessageQueue: pallet_message_queue = 86, } @@ -1201,13 +1200,13 @@ pub type Executive = frame_executive::Executive< Runtime, // Executes pallet hooks in the order of definition in construct_runtime AllPalletsWithSystem, - ( - runtime_common::migrations::BumpStorageVersion, - cumulus_pallet_xcmp_queue::migration::v4::MigrationToV4, - pallet_xcm::migration::MigrateToLatestXcmVersion, - ), + frame_support::migrations::RemovePallet::DbWeight>, >; +parameter_types! { + pub const DmpPalletName: &'static str = "DmpQueue"; +} + #[cfg(feature = "runtime-benchmarks")] mod benches { @@ -1258,7 +1257,6 @@ mod benches { [pallet_assets, Fungibles] [pallet_message_queue, MessageQueue] [cumulus_pallet_parachain_system, ParachainSystem] - [cumulus_pallet_dmp_queue, DmpQueue] [frame_benchmarking::baseline, Baseline::] ); diff --git a/runtimes/peregrine/src/weights/cumulus_pallet_dmp_queue.rs b/runtimes/peregrine/src/weights/cumulus_pallet_dmp_queue.rs deleted file mode 100644 index cd24ae176..000000000 --- a/runtimes/peregrine/src/weights/cumulus_pallet_dmp_queue.rs +++ /dev/null @@ -1,184 +0,0 @@ -// KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2024 BOTLabs GmbH - -// The KILT Blockchain is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// The KILT Blockchain is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -// If you feel like getting in touch with us, you can do so at info@botlabs.org - -//! Autogenerated weights for `cumulus_pallet_dmp_queue` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-08-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/release/kilt-parachain -// benchmark -// pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled -// --heap-pages=4096 -// --steps=50 -// --repeat=20 -// --chain=dev -// --pallet=cumulus-pallet-dmp-queue -// --extrinsic=* -// --output=./runtimes/peregrine/src/weights/cumulus_pallet_dmp_queue.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weight functions for `cumulus_pallet_dmp_queue`. -pub struct WeightInfo(PhantomData); -impl cumulus_pallet_dmp_queue::WeightInfo for WeightInfo { - /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) - /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) - /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) - /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) - /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) - /// Storage: `MessageQueue::Pages` (r:0 w:1) - /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) - fn on_idle_good_msg() -> Weight { - // Proof Size summary in bytes: - // Measured: `65764` - // Estimated: `69229` - // Minimum execution time: 131_132_000 picoseconds. - Weight::from_parts(132_136_000, 0) - .saturating_add(Weight::from_parts(0, 69229)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) - /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) - fn on_idle_large_msg() -> Weight { - // Proof Size summary in bytes: - // Measured: `65660` - // Estimated: `69125` - // Minimum execution time: 65_674_000 picoseconds. - Weight::from_parts(66_685_000, 0) - .saturating_add(Weight::from_parts(0, 69125)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) - /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) - /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) - /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) - /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) - /// Storage: `MessageQueue::Pages` (r:0 w:1) - /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) - fn on_idle_overweight_good_msg() -> Weight { - // Proof Size summary in bytes: - // Measured: `65794` - // Estimated: `69259` - // Minimum execution time: 126_289_000 picoseconds. - Weight::from_parts(127_492_000, 0) - .saturating_add(Weight::from_parts(0, 69259)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(6)) - } - /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) - /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) - fn on_idle_overweight_large_msg() -> Weight { - // Proof Size summary in bytes: - // Measured: `65690` - // Estimated: `69155` - // Minimum execution time: 59_799_000 picoseconds. - Weight::from_parts(60_416_000, 0) - .saturating_add(Weight::from_parts(0, 69155)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - } -} - -#[cfg(test)] -mod tests { - #[test] - fn test_on_idle_good_msg() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 69229 - ); - } - #[test] - fn test_on_idle_large_msg() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 69125 - ); - } - #[test] - fn test_on_idle_overweight_good_msg() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 69259 - ); - } - #[test] - fn test_on_idle_overweight_large_msg() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 69155 - ); - } -} diff --git a/runtimes/peregrine/src/weights/mod.rs b/runtimes/peregrine/src/weights/mod.rs index 1dd66a19d..02adb2fe0 100644 --- a/runtimes/peregrine/src/weights/mod.rs +++ b/runtimes/peregrine/src/weights/mod.rs @@ -19,7 +19,6 @@ pub mod attestation; pub mod ctype; -pub mod cumulus_pallet_dmp_queue; pub mod cumulus_pallet_parachain_system; pub mod delegation; pub mod did; diff --git a/runtimes/peregrine/src/xcm_config.rs b/runtimes/peregrine/src/xcm_config.rs index 4a3a6a3d2..1839c0779 100644 --- a/runtimes/peregrine/src/xcm_config.rs +++ b/runtimes/peregrine/src/xcm_config.rs @@ -25,7 +25,7 @@ use crate::{ use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ parameter_types, - traits::{Contains, EnqueueWithOrigin, Everything, Nothing, TransformOrigin}, + traits::{Contains, Everything, Nothing, TransformOrigin}, }; use frame_system::EnsureRoot; use pallet_asset_switch::xcm::{ @@ -330,14 +330,3 @@ impl pallet_message_queue::Config for Runtime { type MaxStale = MaxStale; type ServiceWeight = ServiceWeight; } - -// Remove me in 1.15.0 -parameter_types! { - pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; -} - -impl cumulus_pallet_dmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type DmpSink = EnqueueWithOrigin; - type WeightInfo = crate::weights::cumulus_pallet_dmp_queue::WeightInfo; -} diff --git a/runtimes/spiritnet/Cargo.toml b/runtimes/spiritnet/Cargo.toml index 24c4ef6a8..ff1186c4d 100644 --- a/runtimes/spiritnet/Cargo.toml +++ b/runtimes/spiritnet/Cargo.toml @@ -92,7 +92,6 @@ pallet-vesting = { workspace = true } # Cumulus dependencies cumulus-pallet-aura-ext = { workspace = true } -cumulus-pallet-dmp-queue = { workspace = true } cumulus-pallet-parachain-system = { workspace = true, features = ["parameterized-consensus-hook"] } cumulus-pallet-xcm = { workspace = true } cumulus-pallet-xcmp-queue = { workspace = true } @@ -125,7 +124,6 @@ fast-gov = ["runtime-common/fast-gov"] runtime-benchmarks = [ "attestation/runtime-benchmarks", "ctype/runtime-benchmarks", - "cumulus-pallet-dmp-queue/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", "cumulus-pallet-session-benchmarking/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", @@ -175,7 +173,6 @@ std = [ "attestation/std", "ctype/std", "cumulus-pallet-aura-ext/std", - "cumulus-pallet-dmp-queue/std", "cumulus-pallet-parachain-system/std", "cumulus-pallet-session-benchmarking/std", "cumulus-pallet-xcm/std", @@ -257,7 +254,6 @@ try-runtime = [ "attestation/try-runtime", "ctype/try-runtime", "cumulus-pallet-aura-ext/try-runtime", - "cumulus-pallet-dmp-queue/try-runtime", "cumulus-pallet-parachain-system/try-runtime", "cumulus-pallet-xcm/try-runtime", "cumulus-pallet-xcmp-queue/try-runtime", diff --git a/runtimes/spiritnet/src/lib.rs b/runtimes/spiritnet/src/lib.rs index 66918bb47..0beedeb9f 100644 --- a/runtimes/spiritnet/src/lib.rs +++ b/runtimes/spiritnet/src/lib.rs @@ -1102,8 +1102,7 @@ construct_runtime! { PolkadotXcm: pallet_xcm = 83, // Does nothing cool, just provides an origin. CumulusXcm: cumulus_pallet_xcm exclude_parts { Call } = 84, - // Fix: delete this pallet in the next release - DmpQueue: cumulus_pallet_dmp_queue = 85, + // DmpQueue: cumulus_pallet_dmp_queue = 85, // Queue and pass DMP messages on to be executed. MessageQueue: pallet_message_queue = 86, } @@ -1192,13 +1191,13 @@ pub type Executive = frame_executive::Executive< Runtime, // Executes pallet hooks in the order of definition in construct_runtime AllPalletsWithSystem, - ( - runtime_common::migrations::BumpStorageVersion, - cumulus_pallet_xcmp_queue::migration::v4::MigrationToV4, - pallet_xcm::migration::MigrateToLatestXcmVersion, - ), + frame_support::migrations::RemovePallet::DbWeight>, >; +parameter_types! { + pub const DmpPalletName: &'static str = "DmpQueue"; +} + #[cfg(feature = "runtime-benchmarks")] mod benches { @@ -1248,7 +1247,6 @@ mod benches { [pallet_assets, Fungibles] [pallet_message_queue, MessageQueue] [cumulus_pallet_parachain_system, ParachainSystem] - [cumulus_pallet_dmp_queue, DmpQueue] [frame_benchmarking::baseline, Baseline::] ); diff --git a/runtimes/spiritnet/src/weights/cumulus_pallet_dmp_queue.rs b/runtimes/spiritnet/src/weights/cumulus_pallet_dmp_queue.rs deleted file mode 100644 index 067ebdec6..000000000 --- a/runtimes/spiritnet/src/weights/cumulus_pallet_dmp_queue.rs +++ /dev/null @@ -1,184 +0,0 @@ -// KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2024 BOTLabs GmbH - -// The KILT Blockchain is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// The KILT Blockchain is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -// If you feel like getting in touch with us, you can do so at info@botlabs.org - -//! Autogenerated weights for `cumulus_pallet_dmp_queue` -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` -//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 - -// Executed Command: -// ./target/release/kilt-parachain -// benchmark -// pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled -// --heap-pages=4096 -// --steps=50 -// --repeat=20 -// --chain=spiritnet-dev -// --pallet=cumulus_pallet_dmp_queue -// --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/cumulus_pallet_dmp_queue.rs - -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; - -/// Weight functions for `cumulus_pallet_dmp_queue`. -pub struct WeightInfo(PhantomData); -impl cumulus_pallet_dmp_queue::WeightInfo for WeightInfo { - /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) - /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) - /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) - /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) - /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) - /// Storage: `MessageQueue::Pages` (r:0 w:1) - /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) - fn on_idle_good_msg() -> Weight { - // Proof Size summary in bytes: - // Measured: `65764` - // Estimated: `69229` - // Minimum execution time: 131_789_000 picoseconds. - Weight::from_parts(133_377_000, 0) - .saturating_add(Weight::from_parts(0, 69229)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(5)) - } - /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) - /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca7d95d3e948effbeccff2de2c182672836` (r:1 w:1) - fn on_idle_large_msg() -> Weight { - // Proof Size summary in bytes: - // Measured: `65660` - // Estimated: `69125` - // Minimum execution time: 67_376_000 picoseconds. - Weight::from_parts(68_669_000, 0) - .saturating_add(Weight::from_parts(0, 69125)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) - /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) - /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) - /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) - /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) - /// Storage: `MessageQueue::Pages` (r:0 w:1) - /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65585), added: 68060, mode: `MaxEncodedLen`) - fn on_idle_overweight_good_msg() -> Weight { - // Proof Size summary in bytes: - // Measured: `65794` - // Estimated: `69259` - // Minimum execution time: 125_522_000 picoseconds. - Weight::from_parts(126_924_000, 0) - .saturating_add(Weight::from_parts(0, 69259)) - .saturating_add(T::DbWeight::get().reads(6)) - .saturating_add(T::DbWeight::get().writes(6)) - } - /// Storage: `DmpQueue::MigrationStatus` (r:1 w:1) - /// Proof: `DmpQueue::MigrationStatus` (`max_values`: Some(1), `max_size`: Some(1028), added: 1523, mode: `MaxEncodedLen`) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca754904d6d8c6fe06c4e5965f9b8397421` (r:1 w:0) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca70f923ef3252d0166429d36d20ed665a8` (r:1 w:1) - /// Storage: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) - /// Proof: UNKNOWN KEY `0xcd5c1f6df63bc97f4a8ce37f14a50ca772275f64c354954352b71eea39cfaca2` (r:1 w:1) - fn on_idle_overweight_large_msg() -> Weight { - // Proof Size summary in bytes: - // Measured: `65690` - // Estimated: `69155` - // Minimum execution time: 60_857_000 picoseconds. - Weight::from_parts(61_583_000, 0) - .saturating_add(Weight::from_parts(0, 69155)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - } -} - -#[cfg(test)] -mod tests { - #[test] - fn test_on_idle_good_msg() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 69229 - ); - } - #[test] - fn test_on_idle_large_msg() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 69125 - ); - } - #[test] - fn test_on_idle_overweight_good_msg() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 69259 - ); - } - #[test] - fn test_on_idle_overweight_large_msg() { - assert!( - ::BlockWeights::get() - .per_class - .get(frame_support::dispatch::DispatchClass::Normal) - .max_extrinsic - .unwrap_or_else(::max_value) - .proof_size() - > 69155 - ); - } -} diff --git a/runtimes/spiritnet/src/weights/mod.rs b/runtimes/spiritnet/src/weights/mod.rs index 3b1ec6cd3..a8f0edace 100644 --- a/runtimes/spiritnet/src/weights/mod.rs +++ b/runtimes/spiritnet/src/weights/mod.rs @@ -19,7 +19,6 @@ pub mod attestation; pub mod ctype; -pub mod cumulus_pallet_dmp_queue; pub mod cumulus_pallet_parachain_system; pub mod delegation; pub mod did; diff --git a/runtimes/spiritnet/src/xcm_config.rs b/runtimes/spiritnet/src/xcm_config.rs index b5de4ce14..174a9fbd5 100644 --- a/runtimes/spiritnet/src/xcm_config.rs +++ b/runtimes/spiritnet/src/xcm_config.rs @@ -24,7 +24,7 @@ use crate::{ use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ parameter_types, - traits::{Contains, EnqueueWithOrigin, Everything, Nothing, TransformOrigin}, + traits::{Contains, Everything, Nothing, TransformOrigin}, }; use frame_system::EnsureRoot; use pallet_xcm::XcmPassthrough; @@ -282,14 +282,3 @@ impl pallet_message_queue::Config for Runtime { type MaxStale = MaxStale; type ServiceWeight = ServiceWeight; } - -// Remove me in 1.15.0 -parameter_types! { - pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; -} - -impl cumulus_pallet_dmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type DmpSink = EnqueueWithOrigin; - type WeightInfo = crate::weights::cumulus_pallet_dmp_queue::WeightInfo; -} diff --git a/scripts/run_benches_for_runtime.sh b/scripts/run_benches_for_runtime.sh index cc2730f45..86a9c13f2 100755 --- a/scripts/run_benches_for_runtime.sh +++ b/scripts/run_benches_for_runtime.sh @@ -39,7 +39,6 @@ pallets=( pallet-dip-provider pallet-message-queue cumulus-pallet-parachain-system - cumulus-pallet-dmp-queue pallet_multisig pallet-assets pallet-asset-switch From 7a0969765308832980cf061bd1c73e6740445122 Mon Sep 17 00:00:00 2001 From: Antonio Date: Tue, 17 Sep 2024 10:24:49 +0200 Subject: [PATCH 14/46] chore: remove experimental feature (#729) Fixes https://github.com/KILTprotocol/ticket/issues/3593. Removing the feature everywhere and using the pallet implementation without the feature is equivalent to the current solution. What the aura pallet does without the feature enabled is taking the `MinimumPeriod` as returned by the timestamp pallet, and multiply that by two: see code [here](https://github.com/paritytech/polkadot-sdk/blob/09df373db9cd5dfed82c5cdb0736d417d54249e6/substrate/frame/aura/src/lib.rs#L252). Everywhere, we set `SlotDuration` to be exactly 2x `MinimumPeriod` (which is 6s), totalling 12s. So basically the net result is that `SlotDuration` is set to `12s` everywhere. Current values of `MinimuPeriod` are: * DIP consumer template: https://github.com/KILTprotocol/kilt-node/blob/d9552b70160465eaedd7263db450aa70f49667df/dip-template/runtimes/dip-consumer/src/lib.rs#L275 * DIP provider template: https://github.com/KILTprotocol/kilt-node/blob/d9552b70160465eaedd7263db450aa70f49667df/dip-template/runtimes/dip-provider/src/lib.rs#L276 * Kestrel (minimum period 0,5 s, block time 1s): https://github.com/KILTprotocol/kilt-node/blob/d9552b70160465eaedd7263db450aa70f49667df/runtimes/kestrel/src/lib.rs#L230 * Peregrine: https://github.com/KILTprotocol/kilt-node/blob/d9552b70160465eaedd7263db450aa70f49667df/runtimes/peregrine/src/lib.rs#L178 * Spiritnet: https://github.com/KILTprotocol/kilt-node/blob/d9552b70160465eaedd7263db450aa70f49667df/runtimes/spiritnet/src/lib.rs#L177C11-L177C62 I invite the reviewer to double-check that. --- dip-template/runtimes/dip-consumer/Cargo.toml | 2 +- dip-template/runtimes/dip-consumer/src/lib.rs | 1 - dip-template/runtimes/dip-provider/Cargo.toml | 2 +- dip-template/runtimes/dip-provider/src/lib.rs | 1 - integration-tests/emulated/Cargo.toml | 2 +- pallets/parachain-staking/Cargo.toml | 2 +- pallets/parachain-staking/src/mock.rs | 3 +-- runtimes/kestrel/Cargo.toml | 2 +- runtimes/kestrel/src/lib.rs | 1 - runtimes/peregrine/Cargo.toml | 2 +- runtimes/peregrine/src/lib.rs | 3 +-- runtimes/spiritnet/Cargo.toml | 2 +- runtimes/spiritnet/src/lib.rs | 3 +-- 13 files changed, 10 insertions(+), 16 deletions(-) diff --git a/dip-template/runtimes/dip-consumer/Cargo.toml b/dip-template/runtimes/dip-consumer/Cargo.toml index e79acbb30..c474da6ec 100644 --- a/dip-template/runtimes/dip-consumer/Cargo.toml +++ b/dip-template/runtimes/dip-consumer/Cargo.toml @@ -33,7 +33,7 @@ frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } frame-system-rpc-runtime-api = { workspace = true } -pallet-aura = { workspace = true, features = ["experimental"] } +pallet-aura = { workspace = true } pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-session = { workspace = true } diff --git a/dip-template/runtimes/dip-consumer/src/lib.rs b/dip-template/runtimes/dip-consumer/src/lib.rs index e6401c238..07886bd41 100644 --- a/dip-template/runtimes/dip-consumer/src/lib.rs +++ b/dip-template/runtimes/dip-consumer/src/lib.rs @@ -367,7 +367,6 @@ impl pallet_aura::Config for Runtime { type AuthorityId = AuraId; type DisabledValidators = (); type MaxAuthorities = ConstU32<100_000>; - type SlotDuration = ConstU64; } impl cumulus_pallet_aura_ext::Config for Runtime {} diff --git a/dip-template/runtimes/dip-provider/Cargo.toml b/dip-template/runtimes/dip-provider/Cargo.toml index d3d28e601..8b0181b68 100644 --- a/dip-template/runtimes/dip-provider/Cargo.toml +++ b/dip-template/runtimes/dip-provider/Cargo.toml @@ -33,7 +33,7 @@ frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } frame-system-rpc-runtime-api = { workspace = true } -pallet-aura = { workspace = true, features = ["experimental"] } +pallet-aura = { workspace = true } pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-session = { workspace = true } diff --git a/dip-template/runtimes/dip-provider/src/lib.rs b/dip-template/runtimes/dip-provider/src/lib.rs index 8c52b542f..16e09eee7 100644 --- a/dip-template/runtimes/dip-provider/src/lib.rs +++ b/dip-template/runtimes/dip-provider/src/lib.rs @@ -368,7 +368,6 @@ impl pallet_aura::Config for Runtime { type AuthorityId = AuraId; type DisabledValidators = (); type MaxAuthorities = ConstU32<100_000>; - type SlotDuration = ConstU64; } impl cumulus_pallet_aura_ext::Config for Runtime {} diff --git a/integration-tests/emulated/Cargo.toml b/integration-tests/emulated/Cargo.toml index 6a21b6a6b..212585bcb 100644 --- a/integration-tests/emulated/Cargo.toml +++ b/integration-tests/emulated/Cargo.toml @@ -12,7 +12,7 @@ version = { workspace = true } [dependencies] asset-hub-rococo-emulated-chain = { workspace = true, default-features = true } -asset-hub-rococo-runtime = { workspace = true, default-features = true, features = ["experimental"] } +asset-hub-rococo-runtime = { workspace = true, default-features = true } attestation = { workspace = true, default-features = true } ctype = { workspace = true, default-features = true } cumulus-primitives-core = { workspace = true, default-features = true } diff --git a/pallets/parachain-staking/Cargo.toml b/pallets/parachain-staking/Cargo.toml index df9d972d1..cdf30bccf 100644 --- a/pallets/parachain-staking/Cargo.toml +++ b/pallets/parachain-staking/Cargo.toml @@ -12,7 +12,7 @@ version = { workspace = true } [dev-dependencies] kilt-support = { workspace = true, features = ["mock", "try-runtime"] } -pallet-aura = { workspace = true, features = ["experimental", "std"] } +pallet-aura = { workspace = true, features = ["std"] } pallet-timestamp = { workspace = true, features = ["std"] } sp-consensus-aura = { workspace = true, features = ["std"] } sp-core = { workspace = true, features = ["std"] } diff --git a/pallets/parachain-staking/src/mock.rs b/pallets/parachain-staking/src/mock.rs index 45fc24264..de30aa6ca 100644 --- a/pallets/parachain-staking/src/mock.rs +++ b/pallets/parachain-staking/src/mock.rs @@ -28,7 +28,7 @@ use frame_support::{ use frame_system::pallet_prelude::BlockNumberFor; use pallet_authorship::EventHandler; use sp_consensus_aura::sr25519::AuthorityId; -use sp_core::{ConstBool, ConstU64, H256}; +use sp_core::{ConstBool, H256}; use sp_runtime::{ impl_opaque_keys, testing::UintAuthorityId, @@ -120,7 +120,6 @@ impl pallet_aura::Config for Test { type DisabledValidators = (); type MaxAuthorities = MaxCollatorCandidates; type AllowMultipleBlocksPerSlot = ConstBool; - type SlotDuration = ConstU64<2>; } impl pallet_authorship::Config for Test { diff --git a/runtimes/kestrel/Cargo.toml b/runtimes/kestrel/Cargo.toml index a854ed769..e022d0cd5 100644 --- a/runtimes/kestrel/Cargo.toml +++ b/runtimes/kestrel/Cargo.toml @@ -42,7 +42,7 @@ pallet-transaction-payment-rpc-runtime-api = { workspace = true } frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } -pallet-aura = { workspace = true, features = ["experimental"] } +pallet-aura = { workspace = true } pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-grandpa = { workspace = true } diff --git a/runtimes/kestrel/src/lib.rs b/runtimes/kestrel/src/lib.rs index 3ec7868ab..35c160938 100644 --- a/runtimes/kestrel/src/lib.rs +++ b/runtimes/kestrel/src/lib.rs @@ -211,7 +211,6 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = MaxAuthorities; type AllowMultipleBlocksPerSlot = ConstBool; - type SlotDuration = ConstU64<1000>; } impl pallet_grandpa::Config for Runtime { diff --git a/runtimes/peregrine/Cargo.toml b/runtimes/peregrine/Cargo.toml index 9ab6eec61..b1999f797 100644 --- a/runtimes/peregrine/Cargo.toml +++ b/runtimes/peregrine/Cargo.toml @@ -70,7 +70,7 @@ frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } pallet-assets = { workspace = true } -pallet-aura = { workspace = true, features = ["experimental"] } +pallet-aura = { workspace = true } pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-collective = { workspace = true } diff --git a/runtimes/peregrine/src/lib.rs b/runtimes/peregrine/src/lib.rs index 24ee9bf8e..8a50144b5 100644 --- a/runtimes/peregrine/src/lib.rs +++ b/runtimes/peregrine/src/lib.rs @@ -42,7 +42,7 @@ use frame_system::{pallet_prelude::BlockNumberFor, EnsureRoot, EnsureSigned}; use pallet_asset_switch::xcm::{AccountId32ToAccountId32JunctionConverter, MatchesSwitchPairXcmFeeFungibleAsset}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use sp_api::impl_runtime_apis; -use sp_core::{ConstBool, ConstU64, OpaqueMetadata}; +use sp_core::{ConstBool, OpaqueMetadata}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, OpaqueKeys}, @@ -295,7 +295,6 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = MaxAuthorities; type AllowMultipleBlocksPerSlot = ConstBool; - type SlotDuration = ConstU64; } parameter_types! { diff --git a/runtimes/spiritnet/Cargo.toml b/runtimes/spiritnet/Cargo.toml index ff1186c4d..0277b2599 100644 --- a/runtimes/spiritnet/Cargo.toml +++ b/runtimes/spiritnet/Cargo.toml @@ -70,7 +70,7 @@ frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } pallet-assets = { workspace = true } -pallet-aura = { workspace = true, features = ["experimental"] } +pallet-aura = { workspace = true } pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-collective = { workspace = true } diff --git a/runtimes/spiritnet/src/lib.rs b/runtimes/spiritnet/src/lib.rs index 0beedeb9f..7c9e41c92 100644 --- a/runtimes/spiritnet/src/lib.rs +++ b/runtimes/spiritnet/src/lib.rs @@ -42,7 +42,7 @@ use frame_system::{pallet_prelude::BlockNumberFor, EnsureRoot, EnsureSigned}; use pallet_asset_switch::xcm::{AccountId32ToAccountId32JunctionConverter, MatchesSwitchPairXcmFeeFungibleAsset}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use sp_api::impl_runtime_apis; -use sp_core::{ConstBool, ConstU64, OpaqueMetadata}; +use sp_core::{ConstBool, OpaqueMetadata}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, OpaqueKeys}, @@ -288,7 +288,6 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = MaxAuthorities; type AllowMultipleBlocksPerSlot = ConstBool; - type SlotDuration = ConstU64; } parameter_types! { From bb91a4c69d7f15ee1c2a86ab946e3b1119f464f9 Mon Sep 17 00:00:00 2001 From: Antonio Date: Tue, 17 Sep 2024 11:10:35 +0200 Subject: [PATCH 15/46] fix: more accurate weights for staking heavy operations (#725) Fixes https://github.com/KILTprotocol/ticket/issues/3564. ## How to test Cd into `chopsticks`, then `yarn install` and `yarn spawn`. Try to call `execute_scheduled_reward_change` with a regular account and `set_inflation` with sudo. --- pallets/parachain-staking/src/benchmarking.rs | 7 +- pallets/parachain-staking/src/lib.rs | 23 +- .../parachain-staking/src/tests/inflation.rs | 36 +- .../parachain-staking/src/tests/rewards.rs | 28 +- .../src/weights/parachain_staking.rs | 125 +++--- .../src/weights/parachain_staking.rs | 390 +++++++++++++++--- 6 files changed, 483 insertions(+), 126 deletions(-) diff --git a/pallets/parachain-staking/src/benchmarking.rs b/pallets/parachain-staking/src/benchmarking.rs index cae98d5dd..527feea6b 100644 --- a/pallets/parachain-staking/src/benchmarking.rs +++ b/pallets/parachain-staking/src/benchmarking.rs @@ -198,7 +198,9 @@ benchmarks! { Perquintill::from_percent(40), Perquintill::from_percent(10) ); - }: _(RawOrigin::Root, inflation.collator.max_rate, inflation.collator.reward_rate.annual, inflation.delegator.max_rate, inflation.delegator.reward_rate.annual) + + let candidate_pool_size = candidates.len() as u32; + }: _(RawOrigin::Root, inflation.collator.max_rate, inflation.collator.reward_rate.annual, inflation.delegator.max_rate, inflation.delegator.reward_rate.annual, candidate_pool_size) verify { assert_eq!(InflationConfig::::get(), inflation); candidates.into_iter().for_each(|candidate| { @@ -627,7 +629,8 @@ benchmarks! { let old = InflationConfig::::get(); assert_eq!(LastRewardReduction::::get(), BlockNumberFor::::zero()); System::::set_block_number(T::BLOCKS_PER_YEAR + BlockNumberFor::::one()); - }: _(RawOrigin::Signed(collator)) + let candidate_pool_size = candidates.len() as u32; + }: _(RawOrigin::Signed(collator), candidate_pool_size) verify { let new = InflationConfig::::get(); assert_eq!(LastRewardReduction::::get(), BlockNumberFor::::one()); diff --git a/pallets/parachain-staking/src/lib.rs b/pallets/parachain-staking/src/lib.rs index f519aa324..2be951d64 100644 --- a/pallets/parachain-staking/src/lib.rs +++ b/pallets/parachain-staking/src/lib.rs @@ -417,6 +417,9 @@ pub mod pallet { UnstakingIsEmpty, /// Cannot claim rewards if empty. RewardsNotFound, + /// Invalid input provided. The meaning of this error is + /// extrinsic-dependent. + InvalidInput, } #[pallet::event] @@ -762,16 +765,22 @@ pub mod pallet { /// /// Emits `RoundInflationSet`. #[pallet::call_index(1)] - #[pallet::weight(::WeightInfo::set_inflation(T::MaxTopCandidates::get(), T::MaxDelegatorsPerCollator::get()))] + #[pallet::weight(::WeightInfo::set_inflation(*current_collator_candidate_pool_size, T::MaxDelegatorsPerCollator::get()))] pub fn set_inflation( origin: OriginFor, collator_max_rate_percentage: Perquintill, collator_annual_reward_rate_percentage: Perquintill, delegator_max_rate_percentage: Perquintill, delegator_annual_reward_rate_percentage: Perquintill, + current_collator_candidate_pool_size: u32, ) -> DispatchResultWithPostInfo { ensure_root(origin)?; + ensure!( + current_collator_candidate_pool_size >= CandidatePool::::count(), + Error::::InvalidInput + ); + // Update inflation and increment rewards let (num_col, num_del) = Self::do_set_inflation( T::BLOCKS_PER_YEAR, @@ -1725,10 +1734,18 @@ pub mod pallet { /// /// Emits `RoundInflationSet`. #[pallet::call_index(20)] - #[pallet::weight(::WeightInfo::execute_scheduled_reward_change(T::MaxTopCandidates::get(), T::MaxDelegatorsPerCollator::get()))] - pub fn execute_scheduled_reward_change(origin: OriginFor) -> DispatchResultWithPostInfo { + #[pallet::weight(::WeightInfo::execute_scheduled_reward_change(*current_collator_candidate_pool_size, T::MaxDelegatorsPerCollator::get()))] + pub fn execute_scheduled_reward_change( + origin: OriginFor, + current_collator_candidate_pool_size: u32, + ) -> DispatchResultWithPostInfo { ensure_signed(origin)?; + ensure!( + current_collator_candidate_pool_size >= CandidatePool::::count(), + Error::::InvalidInput + ); + let now = frame_system::Pallet::::block_number(); let year = now / T::BLOCKS_PER_YEAR; diff --git a/pallets/parachain-staking/src/tests/inflation.rs b/pallets/parachain-staking/src/tests/inflation.rs index cc4e962d6..3d6d7140f 100644 --- a/pallets/parachain-staking/src/tests/inflation.rs +++ b/pallets/parachain-staking/src/tests/inflation.rs @@ -18,13 +18,13 @@ //! Unit testing -use frame_support::assert_ok; +use frame_support::{assert_noop, assert_ok}; use pallet_authorship::EventHandler; use sp_runtime::{traits::Zero, Perquintill}; use crate::{ mock::{roll_to_claim_rewards, ExtBuilder, RuntimeOrigin, StakePallet, System, Test, DECIMALS}, - Config, InflationInfo, RewardRate, StakingInfo, + Config, Error, InflationInfo, RewardRate, StakingInfo, }; #[test] @@ -52,7 +52,8 @@ fn rewards_set_inflation() { hundred, hundred, hundred, - hundred + hundred, + 2 )); // rewards and counters should be set (1..=5).for_each(|id| { @@ -89,7 +90,10 @@ fn rewards_yearly_inflation_adjustment() { }); // execute to trigger reward increment - assert_ok!(StakePallet::execute_scheduled_reward_change(RuntimeOrigin::signed(1))); + assert_ok!(StakePallet::execute_scheduled_reward_change( + RuntimeOrigin::signed(1), + 2 + )); (1..=5).for_each(|id| { assert!( !StakePallet::blocks_rewarded(id).is_zero(), @@ -133,6 +137,7 @@ fn update_inflation() { Perquintill::from_percent(100), Perquintill::from_percent(100), Perquintill::from_percent(100), + 2 )); assert_ok!(StakePallet::set_inflation( RuntimeOrigin::root(), @@ -140,6 +145,7 @@ fn update_inflation() { Perquintill::from_percent(0), Perquintill::from_percent(100), Perquintill::from_percent(100), + 2 )); assert_ok!(StakePallet::set_inflation( RuntimeOrigin::root(), @@ -147,6 +153,7 @@ fn update_inflation() { Perquintill::from_percent(100), Perquintill::from_percent(0), Perquintill::from_percent(100), + 2 )); assert_ok!(StakePallet::set_inflation( RuntimeOrigin::root(), @@ -154,6 +161,27 @@ fn update_inflation() { Perquintill::from_percent(100), Perquintill::from_percent(100), Perquintill::from_percent(0), + 2 )); }); } + +#[test] +fn too_small_candidate_size_provided_for_new_inflation() { + ExtBuilder::default() + .with_balances(vec![(1, 10), (2, 100)]) + .with_collators(vec![(1, 10), (2, 10)]) + .build_and_execute_with_sanity_tests(|| { + assert_noop!( + StakePallet::set_inflation( + RuntimeOrigin::root(), + Perquintill::from_percent(0), + Perquintill::from_percent(100), + Perquintill::from_percent(100), + Perquintill::from_percent(100), + 1 + ), + Error::::InvalidInput + ); + }); +} diff --git a/pallets/parachain-staking/src/tests/rewards.rs b/pallets/parachain-staking/src/tests/rewards.rs index daab5998b..74222960d 100644 --- a/pallets/parachain-staking/src/tests/rewards.rs +++ b/pallets/parachain-staking/src/tests/rewards.rs @@ -332,7 +332,10 @@ fn adjust_reward_rates() { roll_to_claim_rewards(::BLOCKS_PER_YEAR + 1, vec![]); // reward reduction should not happen automatically anymore assert_eq!(StakePallet::last_reward_reduction(), 0u64); - assert_ok!(StakePallet::execute_scheduled_reward_change(RuntimeOrigin::signed(1))); + assert_ok!(StakePallet::execute_scheduled_reward_change( + RuntimeOrigin::signed(1), + 2 + )); assert_eq!(StakePallet::last_reward_reduction(), 1u64); let inflation_1 = InflationInfo::new( ::BLOCKS_PER_YEAR, @@ -363,7 +366,10 @@ fn adjust_reward_rates() { roll_to_claim_rewards(2 * ::BLOCKS_PER_YEAR + 1, vec![]); // reward reduction should not happen automatically anymore assert_eq!(StakePallet::last_reward_reduction(), 1u64); - assert_ok!(StakePallet::execute_scheduled_reward_change(RuntimeOrigin::signed(1))); + assert_ok!(StakePallet::execute_scheduled_reward_change( + RuntimeOrigin::signed(1), + 2 + )); assert_eq!(StakePallet::last_reward_reduction(), 2u64); let inflation_2 = InflationInfo::new( ::BLOCKS_PER_YEAR, @@ -393,7 +399,10 @@ fn adjust_reward_rates() { roll_to_claim_rewards(3 * ::BLOCKS_PER_YEAR + 1, vec![]); // reward reduction should not happen automatically anymore assert_eq!(StakePallet::last_reward_reduction(), 2u64); - assert_ok!(StakePallet::execute_scheduled_reward_change(RuntimeOrigin::signed(1))); + assert_ok!(StakePallet::execute_scheduled_reward_change( + RuntimeOrigin::signed(1), + 2 + )); assert_eq!(StakePallet::last_reward_reduction(), 3u64); let inflation_3 = InflationInfo::new( ::BLOCKS_PER_YEAR, @@ -994,3 +1003,16 @@ fn api_get_unclaimed_staking_rewards() { assert!(StakePallet::get_unclaimed_staking_rewards(&3).is_zero()); }); } + +#[test] +fn too_small_candidate_size_provided_for_reward_adjustment() { + ExtBuilder::default() + .with_balances(vec![(1, 10), (2, 100)]) + .with_collators(vec![(1, 10), (2, 10)]) + .build_and_execute_with_sanity_tests(|| { + assert_noop!( + StakePallet::execute_scheduled_reward_change(RuntimeOrigin::signed(1), 1), + Error::::InvalidInput + ); + }); +} diff --git a/runtimes/peregrine/src/weights/parachain_staking.rs b/runtimes/peregrine/src/weights/parachain_staking.rs index 1ee59360e..4c4e249b1 100644 --- a/runtimes/peregrine/src/weights/parachain_staking.rs +++ b/runtimes/peregrine/src/weights/parachain_staking.rs @@ -106,41 +106,42 @@ impl parachain_staking::WeightInfo for WeightInfo { .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: ParachainStaking CandidatePool (r:76 w:0) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:75 w:0) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:2700 w:2700) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Rewards (r:2700 w:2700) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:0) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:1) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - /// Storage: ParachainStaking CounterForCandidatePool (r:1 w:0) - /// Proof: ParachainStaking CounterForCandidatePool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + +/// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:0) + /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:76 w:0) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:75 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:2700 w:2700) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:2700 w:2700) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:0) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:1) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 75]`. /// The range of component `m` is `[0, 35]`. fn set_inflation(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + n * (3647 ±0) + m * (7587 ±0)` - // Estimated: `383346 + n * (77565 ±30_589) + m * (151620 ±65_549)` - // Minimum execution time: 749_094_000 picoseconds. - Weight::from_parts(749_094_000, 0) - .saturating_add(Weight::from_parts(0, 383346)) - // Standard Error: 86_792_174 - .saturating_add(Weight::from_parts(100_338_066, 0).saturating_mul(n.into())) - // Standard Error: 185_983_231 - .saturating_add(Weight::from_parts(214_452_085, 0).saturating_mul(m.into())) + // Measured: `0 + m * (7573 ±0) + n * (3709 ±0)` + // Estimated: `183222 + m * (64823 ±2_167) + n * (31965 ±1_009)` + // Minimum execution time: 704_611_000 picoseconds. + Weight::from_parts(707_105_000, 0) + .saturating_add(Weight::from_parts(0, 183222)) + // Standard Error: 4_876_636 + .saturating_add(Weight::from_parts(150_694_630, 0).saturating_mul(n.into())) + // Standard Error: 10_470_032 + .saturating_add(Weight::from_parts(290_425_882, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(152)) - .saturating_add(T::DbWeight::get().reads((30_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().reads((60_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().reads((27_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().reads((51_u64).saturating_mul(m.into()))) .saturating_add(T::DbWeight::get().writes(145)) - .saturating_add(T::DbWeight::get().writes((28_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes((60_u64).saturating_mul(m.into()))) - .saturating_add(Weight::from_parts(0, 77565).saturating_mul(n.into())) - .saturating_add(Weight::from_parts(0, 151620).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().writes((25_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((51_u64).saturating_mul(m.into()))) + .saturating_add(Weight::from_parts(0, 64823).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 31965).saturating_mul(n.into())) } /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:1) /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) @@ -674,43 +675,43 @@ impl parachain_staking::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: ParachainStaking LastRewardReduction (r:1 w:1) - /// Proof: ParachainStaking LastRewardReduction (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:1) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - /// Storage: ParachainStaking CandidatePool (r:76 w:0) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:75 w:0) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:2700 w:2700) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Rewards (r:2700 w:2700) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:0) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking CounterForCandidatePool (r:1 w:0) - /// Proof: ParachainStaking CounterForCandidatePool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:0) + /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::LastRewardReduction` (r:1 w:1) + /// Proof: `ParachainStaking::LastRewardReduction` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:1) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:76 w:0) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:75 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:2700 w:2700) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:2700 w:2700) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:0) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 75]`. /// The range of component `m` is `[0, 35]`. fn execute_scheduled_reward_change(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + n * (3587 ±0) + m * (7587 ±0)` - // Estimated: `383849 + n * (77565 ±0) + m * (151620 ±65_549)` - // Minimum execution time: 449_942_000 picoseconds. - Weight::from_parts(449_942_000, 0) - .saturating_add(Weight::from_parts(0, 383849)) - // Standard Error: 84_159_623 - .saturating_add(Weight::from_parts(100_410_008, 0).saturating_mul(n.into())) - // Standard Error: 180_342_051 - .saturating_add(Weight::from_parts(208_232_902, 0).saturating_mul(m.into())) + // Measured: `0 + m * (7573 ±0) + n * (3647 ±0)` + // Estimated: `183222 + m * (64823 ±2_167) + n * (31965 ±1_009)` + // Minimum execution time: 683_160_000 picoseconds. + Weight::from_parts(687_351_000, 0) + .saturating_add(Weight::from_parts(0, 183222)) + // Standard Error: 4_643_820 + .saturating_add(Weight::from_parts(141_740_256, 0).saturating_mul(n.into())) + // Standard Error: 9_970_180 + .saturating_add(Weight::from_parts(280_674_034, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(153)) - .saturating_add(T::DbWeight::get().reads((30_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().reads((60_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().reads((27_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().reads((51_u64).saturating_mul(m.into()))) .saturating_add(T::DbWeight::get().writes(146)) - .saturating_add(T::DbWeight::get().writes((28_u64).saturating_mul(n.into()))) - .saturating_add(T::DbWeight::get().writes((60_u64).saturating_mul(m.into()))) - .saturating_add(Weight::from_parts(0, 77565).saturating_mul(n.into())) - .saturating_add(Weight::from_parts(0, 151620).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().writes((25_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((51_u64).saturating_mul(m.into()))) + .saturating_add(Weight::from_parts(0, 64823).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 31965).saturating_mul(n.into())) } } @@ -761,7 +762,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 383346 + > 183222 ); } #[test] @@ -977,7 +978,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 383849 + > 183222 ); } } diff --git a/runtimes/spiritnet/src/weights/parachain_staking.rs b/runtimes/spiritnet/src/weights/parachain_staking.rs index cee5d894c..b4daf9542 100644 --- a/runtimes/spiritnet/src/weights/parachain_staking.rs +++ b/runtimes/spiritnet/src/weights/parachain_staking.rs @@ -82,32 +82,41 @@ impl parachain_staking::WeightInfo for WeightInfo { Weight::from_parts(3_573_000 as u64, 0) .saturating_add(T::DbWeight::get().writes(1 as u64)) } - // Storage: ParachainStaking CandidatePool (r:76 w:0) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:75 w:0) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:2700 w:2700) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Rewards (r:2700 w:2700) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:0) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:1) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - // Storage: ParachainStaking CounterForCandidatePool (r:1 w:0) - // Proof: ParachainStaking CounterForCandidatePool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) +/// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:0) + /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:76 w:0) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:75 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:2700 w:2700) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:2700 w:2700) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:0) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:1) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 75]`. + /// The range of component `m` is `[0, 35]`. fn set_inflation(n: u32, m: u32, ) -> Weight { - Weight::from_parts(663_557_000 as u64, 0) - // Standard Error: 4_566_075 - .saturating_add(Weight::from_parts(143_112_464 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 9_803_263 - .saturating_add(Weight::from_parts(269_841_967 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(152 as u64)) - .saturating_add(T::DbWeight::get().reads((27 as u64).saturating_mul(n as u64))) - .saturating_add(T::DbWeight::get().reads((51 as u64).saturating_mul(m as u64))) - .saturating_add(T::DbWeight::get().writes(145 as u64)) - .saturating_add(T::DbWeight::get().writes((25 as u64).saturating_mul(n as u64))) - .saturating_add(T::DbWeight::get().writes((51 as u64).saturating_mul(m as u64))) + // Proof Size summary in bytes: + // Measured: `0 + m * (7573 ±0) + n * (3709 ±0)` + // Estimated: `183222 + m * (64823 ±2_167) + n * (31965 ±1_009)` + // Minimum execution time: 704_611_000 picoseconds. + Weight::from_parts(707_105_000, 0) + .saturating_add(Weight::from_parts(0, 183222)) + // Standard Error: 4_876_636 + .saturating_add(Weight::from_parts(150_694_630, 0).saturating_mul(n.into())) + // Standard Error: 10_470_032 + .saturating_add(Weight::from_parts(290_425_882, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(152)) + .saturating_add(T::DbWeight::get().reads((27_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().reads((51_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().writes(145)) + .saturating_add(T::DbWeight::get().writes((25_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((51_u64).saturating_mul(m.into()))) + .saturating_add(Weight::from_parts(0, 64823).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 31965).saturating_mul(n.into())) } // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:1) // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) @@ -523,33 +532,310 @@ impl parachain_staking::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(2 as u64)) .saturating_add(T::DbWeight::get().writes(2 as u64)) } - // Storage: ParachainStaking LastRewardReduction (r:1 w:1) - // Proof: ParachainStaking LastRewardReduction (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:1) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - // Storage: ParachainStaking CandidatePool (r:76 w:0) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:75 w:0) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:2700 w:2700) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Rewards (r:2700 w:2700) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:0) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking CounterForCandidatePool (r:1 w:0) - // Proof: ParachainStaking CounterForCandidatePool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:0) + /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::LastRewardReduction` (r:1 w:1) + /// Proof: `ParachainStaking::LastRewardReduction` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:1) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:76 w:0) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:75 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:2700 w:2700) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:2700 w:2700) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:0) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 75]`. + /// The range of component `m` is `[0, 35]`. fn execute_scheduled_reward_change(n: u32, m: u32, ) -> Weight { - Weight::from_parts(657_155_000 as u64, 0) - // Standard Error: 4_390_482 - .saturating_add(Weight::from_parts(136_436_522 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 9_426_268 - .saturating_add(Weight::from_parts(263_946_048 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(153 as u64)) - .saturating_add(T::DbWeight::get().reads((27 as u64).saturating_mul(n as u64))) - .saturating_add(T::DbWeight::get().reads((51 as u64).saturating_mul(m as u64))) - .saturating_add(T::DbWeight::get().writes(146 as u64)) - .saturating_add(T::DbWeight::get().writes((25 as u64).saturating_mul(n as u64))) - .saturating_add(T::DbWeight::get().writes((51 as u64).saturating_mul(m as u64))) + // Proof Size summary in bytes: + // Measured: `0 + m * (7573 ±0) + n * (3647 ±0)` + // Estimated: `183222 + m * (64823 ±2_167) + n * (31965 ±1_009)` + // Minimum execution time: 683_160_000 picoseconds. + Weight::from_parts(687_351_000, 0) + .saturating_add(Weight::from_parts(0, 183222)) + // Standard Error: 4_643_820 + .saturating_add(Weight::from_parts(141_740_256, 0).saturating_mul(n.into())) + // Standard Error: 9_970_180 + .saturating_add(Weight::from_parts(280_674_034, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(153)) + .saturating_add(T::DbWeight::get().reads((27_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().reads((51_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().writes(146)) + .saturating_add(T::DbWeight::get().writes((25_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((51_u64).saturating_mul(m.into()))) + .saturating_add(Weight::from_parts(0, 64823).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 31965).saturating_mul(n.into())) + } +} + +#[cfg(test)] +mod tests { + #[test] + fn test_on_initialize_no_action() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 515 + ); + } + #[test] + fn test_on_initialize_round_update() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 515 + ); + } + #[test] + fn test_on_initialize_network_rewards() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 4723 + ); + } + #[test] + fn test_set_inflation() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 183222 + ); + } + #[test] + fn test_set_max_selected_candidates() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5168 + ); + } + #[test] + fn test_set_blocks_per_round() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 515 + ); + } + #[test] + fn test_force_remove_candidate() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 116721 + ); + } + #[test] + fn test_join_candidates() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 22098 + ); + } + #[test] + fn test_init_leave_candidates() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 78143 + ); + } + #[test] + fn test_cancel_leave_candidates() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 13653 + ); + } + #[test] + fn test_execute_leave_candidates() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 25299 + ); + } + #[test] + fn test_candidate_stake_more() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 27204 + ); + } + #[test] + fn test_candidate_stake_less() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 20312 + ); + } + #[test] + fn test_join_delegators() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 30914 + ); + } + #[test] + fn test_delegator_stake_more() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 29256 + ); + } + #[test] + fn test_delegator_stake_less() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 22875 + ); + } + #[test] + fn test_leave_delegators() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 22875 + ); + } + #[test] + fn test_unlock_unstaked() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 9137 + ); + } + #[test] + fn test_increment_delegator_rewards() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 11258 + ); + } + #[test] + fn test_increment_collator_rewards() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 12960 + ); + } + #[test] + fn test_claim_rewards() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5138 + ); + } + #[test] + fn test_execute_scheduled_reward_change() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 183222 + ); } } From 6c614a77ed5fbcf9b846d9cb9a50603815d12a10 Mon Sep 17 00:00:00 2001 From: hongmengning Date: Tue, 17 Sep 2024 20:50:38 +0800 Subject: [PATCH 16/46] chore: add missing symbols in pallets/parachain-staking/src/lib.rs (#727) ## fixes KILTProtocol/ticket#312 Add missing symbols in pallets/parachain-staking/src/lib.rs ## Metadata Diff to Develop Branch
Peregrine Diff ``` ```
Spiritnet Diff ``` ```
## Checklist: - [ ] I have verified that the code works - [ ] No panics! (checked arithmetic ops, no indexing `array[3]` use `get(3)`, ...) - [ ] I have verified that the code is easy to understand - [ ] If not, I have left a well-balanced amount of inline comments - [ ] I have [left the code in a better state](https://deviq.com/principles/boy-scout-rule) - [ ] I have documented the changes (where applicable) * Either PR or Ticket to update [the Docs](https://github.com/KILTprotocol/docs) * Link the PR/Ticket here Co-authored-by: Adel Golghalyani <48685760+Ad96el@users.noreply.github.com> --- pallets/parachain-staking/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pallets/parachain-staking/src/lib.rs b/pallets/parachain-staking/src/lib.rs index 2be951d64..de7d6020c 100644 --- a/pallets/parachain-staking/src/lib.rs +++ b/pallets/parachain-staking/src/lib.rs @@ -297,7 +297,7 @@ pub mod pallet { /// NOTE: To protect against irremovability of a candidate or delegator, /// we only allow for MaxUnstakeRequests - 1 many manual unstake /// requests. The last one serves as a placeholder for the cases of - /// calling either `kick_delegator`, force_remove_candidate` or + /// calling either `kick_delegator`, `force_remove_candidate` or /// `execute_leave_candidates`. Otherwise, a user could max out their /// unstake requests and prevent themselves from being kicked from the /// set of candidates/delegators until they unlock their funds. From 9416693225be50db47f3a301b740384b6f09da24 Mon Sep 17 00:00:00 2001 From: Antonio Date: Fri, 20 Sep 2024 10:29:00 +0200 Subject: [PATCH 17/46] fix: better caching of Rust deps (#733) I chored up the CI file by making sure all jobs (minus the `cargo-test` job) use the same approach: * Running the whole job INSIDE the Parity-provided Docker container * Make sure the right cargo path **as configured inside the container** is used to cache cargo artifacts * Use the `docker run` approach only for the `cargo-test` job, since the worker still runs out of memory and crashes ## Main changes * Use of `container:` component in all jobs but `cargo-test` * Use of the `/usr/local/cargo` path for caching cargo artifacts. This is the path configured by the container itself. Using other paths won't have the expected effect. * Addition of `save-always: true` for the caching of artifacts, since even if, for example a test fails, we still don't want to throw away the compilation work done to run that test * The `try-runtime` job had a cache configured by it was not caching anything, since we were caching the wrong path. That's fixed by using the same approach all other jobs use. --- .github/workflows/check-code.yml | 129 +++++++++++++++++++------------ 1 file changed, 78 insertions(+), 51 deletions(-) diff --git a/.github/workflows/check-code.yml b/.github/workflows/check-code.yml index ec041c42d..6d3f05451 100644 --- a/.github/workflows/check-code.yml +++ b/.github/workflows/check-code.yml @@ -33,6 +33,13 @@ jobs: cargo-clippy: name: Run Clippy checks runs-on: ubuntu-latest + container: + image: paritytech/ci-unified:bullseye-1.74.0 + env: + # Configured by the Docker image. We can't change this unless the image does it. + CARGO_HOME: /usr/local/cargo + RUSTFLAGS: -D warnings + SKIP_WASM_BUILD: 1 needs: get-commit-head if: ${{ !contains(needs.get-commit-head.outputs.headCommitMsg, 'ci-skip-rust') }} @@ -56,21 +63,15 @@ jobs: uses: actions/cache@v4 with: path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ + ${{ env.CARGO_HOME }}/bin/ + ${{ env.CARGO_HOME }}/registry/index/ + ${{ env.CARGO_HOME }}/registry/cache/ + ${{ env.CARGO_HOME }}/git/db/ key: ${{ github.job }}-${{ github.ref }}-${{ matrix.features }}-${{ hashFiles('**/Cargo.lock') }} + save-always: true - name: Run `cargo clippy` - run: | - docker run --rm \ - -v "${GITHUB_WORKSPACE}:/workspace" \ - -v "${HOME}/.cargo:/root/.cargo" \ - -w /workspace \ - -e SKIP_WASM_BUILD=1 \ - paritytech/ci-unified:bullseye-1.74.0 \ - bash -c "cargo clippy --all-targets --locked ${{ matrix.features }} -- -D warnings" + run: cargo clippy --all-targets --locked ${{ matrix.features }} cargo-fmt: name: Check formatting @@ -78,6 +79,9 @@ jobs: container: image: paritytech/ci-unified:bullseye-1.74.0 env: + # Configured by the Docker image. We can't change this unless the image does it. + CARGO_HOME: /usr/local/cargo + # Latest nightly version matching the base rustc version (1.74.0). RUSTUP_NIGHTLY_VERSION: nightly-2023-10-02 needs: get-commit-head if: ${{ !contains(needs.get-commit-head.outputs.headCommitMsg, 'ci-skip-rust') }} @@ -86,11 +90,21 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Set up Cargo cache + uses: actions/cache@v4 + with: + path: | + ${{ env.CARGO_HOME }}/bin/ + ${{ env.CARGO_HOME }}/registry/index/ + ${{ env.CARGO_HOME }}/registry/cache/ + ${{ env.CARGO_HOME }}/git/db/ + key: ${{ github.job }}-${{ github.ref }}-${{ hashFiles('**/Cargo.lock') }} + save-always: true + - name: Install nightly toolchain run: rustup toolchain add ${{ env.RUSTUP_NIGHTLY_VERSION }} - name: Run `cargo fmt` - # Latest nightly version matching the base rustc version (1.74.0) run: cargo +${{ env.RUSTUP_NIGHTLY_VERSION }} fmt -- --check - name: Run `taplo` @@ -106,8 +120,7 @@ jobs: defaults: run: working-directory: ${{ env.working-dir }} - needs: - - get-commit-head + needs: get-commit-head if: ${{ !contains(needs.get-commit-head.outputs.headCommitMsg, 'ci-skip-integration-tests') }} steps: @@ -136,12 +149,14 @@ jobs: - name: Set up Cargo cache uses: actions/cache@v4 with: + # Not executed in a container, so we cache the local paths as on the GH worker. path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ + ${HOME}/.cargo/bin/ + ${HOME}/.cargo/registry/index/ + ${HOME}/.cargo/registry/cache/ + ${HOME}/.cargo/git/db/ key: ${{ github.job }}-${{ github.ref }}-${{ hashFiles('**/Cargo.lock') }} + save-always: true - name: Build Peregrine runtime run: cargo build -p peregrine-runtime @@ -152,6 +167,9 @@ jobs: cargo-test: name: Run Cargo tests runs-on: ubuntu-latest + env: + # Configured by the Docker image. We can't change this unless the image does it. + CARGO_HOME: /usr/local/cargo needs: cargo-clippy strategy: @@ -173,18 +191,24 @@ jobs: - name: Set up Cargo cache uses: actions/cache@v4 with: + # These paths are mounted inside the Docker container. + # We cannot mount the `.cargo/bin` folder since the container already contains binaries, and overriding with an empty one breaks compilation. path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ + ~/.cargo/registry/index + ~/.cargo/registry/cache + ~/.cargo/git/db key: ${{ github.job }}-${{ github.ref }}-${{ matrix.features }}-${{ hashFiles('**/Cargo.lock') }} + save-always: true - name: Run `cargo test` + # We cannot use the default `container:` component because it runs out of memory, so we resort to using this solution instead. + # Maybe re-evaluate this job if anything changes GH side. run: | docker run --rm \ -v "${GITHUB_WORKSPACE}:/workspace" \ - -v "${HOME}/.cargo:/root/.cargo" \ + -v "${HOME}/.cargo/registry/index:${{ env.CARGO_HOME }}/registry/index" \ + -v "${HOME}/.cargo/registry/cache:${{ env.CARGO_HOME }}/registry/cache" \ + -v "${HOME}/.cargo/git/db:${{ env.CARGO_HOME }}/git/db" \ -w /workspace \ paritytech/ci-unified:bullseye-1.74.0 \ bash -c "cargo test --all-targets --locked ${{ matrix.features }}" @@ -192,6 +216,13 @@ jobs: cargo-doc: name: Check Rustdoc runs-on: ubuntu-latest + container: + image: paritytech/ci-unified:bullseye-1.74.0 + env: + # Configured by the Docker image. We can't change this unless the image does it. + CARGO_HOME: /usr/local/cargo + SKIP_WASM_BUILD: 1 + RUSTDOCFLAGS: -D warnings needs: cargo-clippy strategy: @@ -214,31 +245,26 @@ jobs: uses: actions/cache@v4 with: path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - key: ${{ github.job }}-${{ github.ref }}-${{ hashFiles('**/Cargo.lock') }} + ${{ env.CARGO_HOME }}/bin/ + ${{ env.CARGO_HOME }}/registry/index/ + ${{ env.CARGO_HOME }}/registry/cache/ + ${{ env.CARGO_HOME }}/git/db/ + key: ${{ github.job }}-${{ github.ref }}-${{ matrix.features }}-${{ hashFiles('**/Cargo.lock') }} + save-always: true - name: Run `cargo doc` - run: | - docker run --rm \ - -v "${GITHUB_WORKSPACE}:/workspace" \ - -v "${HOME}/.cargo:/root/.cargo" \ - -w /workspace \ - -e RUSTDOCFLAGS='-D warnings' \ - -e SKIP_WASM_BUILD=1 \ - paritytech/ci-unified:bullseye-1.74.0 \ - bash -c "cargo doc --no-deps --locked ${{ matrix.features }}" + run: cargo doc --no-deps --locked ${{ matrix.features }} try-runtime: name: Run try-runtime runs-on: ubuntu-latest - needs: cargo-clippy - env: - TRY_RUNTIME_CLI_VERSION_TAG: v0.7.0 container: image: paritytech/ci-unified:bullseye-1.74.0 + env: + # Configured by the Docker image. We can't change this unless the image does it. + CARGO_HOME: /usr/local/cargo + TRY_RUNTIME_CLI_VERSION_TAG: v0.7.0 + needs: cargo-clippy strategy: matrix: @@ -256,22 +282,23 @@ jobs: with: tool-cache: true + - name: Set up Cargo cache + uses: actions/cache@v4 + with: + path: | + ${{ env.CARGO_HOME }}/bin/ + ${{ env.CARGO_HOME }}/registry/index/ + ${{ env.CARGO_HOME }}/registry/cache/ + ${{ env.CARGO_HOME }}/git/db/ + key: ${{ github.job }}-${{ github.ref }}-${{ matrix.runtime }}-${{ hashFiles('**/Cargo.lock') }} + save-always: true + - name: Install try-runtime run: | curl -sL https://github.com/paritytech/try-runtime-cli/releases/download/${{ env.TRY_RUNTIME_CLI_VERSION_TAG }}/try-runtime-x86_64-unknown-linux-musl -o try-runtime chmod +x ./try-runtime ./try-runtime --version - - name: Set up Cargo cache - uses: actions/cache@v4 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - key: ${{ github.job }}-${{ github.ref }}-${{ hashFiles('**/Cargo.lock') }} - - name: Build runtime run: cargo build --release --locked -p ${{ matrix.runtime }}-runtime --features try-runtime From a8a831a6aa1d669e1074337f0b9290869900664e Mon Sep 17 00:00:00 2001 From: Antonio Date: Fri, 20 Sep 2024 11:09:03 +0200 Subject: [PATCH 18/46] chore: add cargo-deny to codebase (#732) Fixes https://github.com/KILTprotocol/ticket/issues/3192 by adding [cargo-deny](https://github.com/EmbarkStudios/cargo-deny) and fixing the two yanked dependencies spotted by the tool. # TODO Add the new job to the list of required status checks in the repo settings once the PR is merged. --- .cargo-deny.toml | 53 ++++++++++++++++++++++++++++++++ .github/workflows/check-code.yml | 17 ++++++++++ Cargo.lock | 8 ++--- LICENSE | 2 +- 4 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 .cargo-deny.toml diff --git a/.cargo-deny.toml b/.cargo-deny.toml new file mode 100644 index 000000000..929caab8d --- /dev/null +++ b/.cargo-deny.toml @@ -0,0 +1,53 @@ +# Config file reference can be found at https://embarkstudios.github.io/cargo-deny/checks/cfg.html. + +[graph] +all-features = false +exclude-dev = true +features = ["std"] +no-default-features = true + +[advisories] +ignore = [ + { id = "RUSTSEC-2020-0168", reason = "`mach` is unmaintained but a Substrate dependency. Re-verify upon next polkadot-sdk updates." }, + { id = "RUSTSEC-2021-0139", reason = "`ansi_term` is unmaintained but a Substrate dependency. Re-verify upon next polkadot-sdk updates." }, + { id = "RUSTSEC-2022-0061", reason = "`parity-wasm` is unmaintained but a Substrate dependency. Re-verify upon next polkadot-sdk updates." }, + { id = "RUSTSEC-2022-0080", reason = "`parity-util-mem` is unmaintained but a Substrate dependency. Re-verify upon next polkadot-sdk updates." }, + { id = "RUSTSEC-2024-0336", reason = "`rustls` vulnerability. Re-verify upon next polkadot-sdk updates." }, + { id = "RUSTSEC-2024-0344", reason = "`curve25519-dalek` vulnerability. Re-verify upon next polkadot-sdk updates." }, + { id = "RUSTSEC-2024-0370", reason = "`proc-macro-error` is unmaintained but a Substrate dependency. Re-verify upon next polkadot-sdk updates." }, +] +yanked = "deny" + +[bans] +allow-wildcard-paths = true +multiple-versions = "allow" + +[licenses] +allow = [ + "Apache-2.0 WITH LLVM-exception", + "Apache-2.0", + "BSD-2-Clause", + "BSD-3-Clause", + "CC0-1.0", + "GPL-3.0 WITH Classpath-exception-2.0", + "GPL-3.0", + "ISC", + "MIT", + "MPL-2.0", + "OpenSSL", + "SSPL-1.0", + "Unicode-DFS-2016", + "Zlib", +] +private = { ignore = false } +unused-allowed-license = "deny" + +[[licenses.clarify]] +expression = "MIT AND ISC AND OpenSSL" +license-files = [{ path = "LICENSE", hash = 0xbd0eed23 }] +name = "ring" + +[sources] +allow-git = ["https://github.com/paritytech/polkadot-sdk"] +unknown-git = "deny" +unknown-registry = "deny" diff --git a/.github/workflows/check-code.yml b/.github/workflows/check-code.yml index 6d3f05451..ddabf2357 100644 --- a/.github/workflows/check-code.yml +++ b/.github/workflows/check-code.yml @@ -110,6 +110,23 @@ jobs: - name: Run `taplo` run: taplo fmt --check + cargo-deny: + name: Check cargo-deny rules + runs-on: ubuntu-latest + needs: get-commit-head + if: ${{ !contains(needs.get-commit-head.outputs.headCommitMsg, 'ci-skip-rust') }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Run `cargo deny` + uses: EmbarkStudios/cargo-deny-action@v2 + with: + # All is set in the config file + arguments: + command-arguments: "--hide-inclusion-graph -c .cargo-deny.toml --show-stats -D warnings" + integration-tests: name: Run Chopsticks tests runs-on: ubuntu-latest diff --git a/Cargo.lock b/Cargo.lock index f2c568bd4..29416c66d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1344,9 +1344,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.16.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" +checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" [[package]] name = "byteorder" @@ -1356,9 +1356,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" [[package]] name = "bzip2-sys" diff --git a/LICENSE b/LICENSE index 4dbf48015..d85c14f52 100644 --- a/LICENSE +++ b/LICENSE @@ -176,4 +176,4 @@ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY C If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. -END OF TERMS AND CONDITIONS \ No newline at end of file +END OF TERMS AND CONDITIONS From 0dee9c2c8b042df478c816c4ae9e8045d87966fe Mon Sep 17 00:00:00 2001 From: Antonio Date: Fri, 20 Sep 2024 13:06:33 +0200 Subject: [PATCH 19/46] test: test runtime benchmarks (#731) Fixes https://github.com/KILTprotocol/ticket/issues/3201. Actual runtime benchmarks are blocked by https://github.com/paritytech/polkadot-sdk/issues/3555. --- .github/workflows/check-code.yml | 40 ++++++++++++++++++++++++++++++ scripts/run_benches_for_pallets.sh | 4 --- scripts/run_benches_for_runtime.sh | 34 +++++++++++++++++-------- 3 files changed, 63 insertions(+), 15 deletions(-) diff --git a/.github/workflows/check-code.yml b/.github/workflows/check-code.yml index ddabf2357..28b00bdae 100644 --- a/.github/workflows/check-code.yml +++ b/.github/workflows/check-code.yml @@ -328,3 +328,43 @@ jobs: --checks=all \ live \ --uri=wss://${{ matrix.runtime }}.kilt.io + + test-runtime-benchmarks: + name: Test runtime benchmarks + runs-on: ubuntu-latest + container: + image: paritytech/ci-unified:bullseye-1.74.0 + env: + # Configured by the Docker image. We can't change this unless the image does it. + CARGO_HOME: /usr/local/cargo + needs: cargo-clippy + if: ${{ github.event_name == 'push'}} + + strategy: + matrix: + runtime: + - peregrine + - spiritnet + fail-fast: false + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Free Disk Space + uses: jlumbroso/free-disk-space@main + with: + tool-cache: true + + - name: Set up Cargo cache + uses: actions/cache@v4 + with: + path: | + ${{ env.CARGO_HOME }}/bin/ + ${{ env.CARGO_HOME }}/registry/index/ + ${{ env.CARGO_HOME }}/registry/cache/ + ${{ env.CARGO_HOME }}/git/db/ + key: ${{ github.job }}-${{ github.ref }}-${{ matrix.runtime }}-${{ hashFiles('**/Cargo.lock') }} + + - name: Run runtime benchmarks + run: bash -x scripts/run_benches_for_runtime.sh ${{ matrix.runtime }} dev diff --git a/scripts/run_benches_for_pallets.sh b/scripts/run_benches_for_pallets.sh index 4c1915d45..aedf395d9 100755 --- a/scripts/run_benches_for_pallets.sh +++ b/scripts/run_benches_for_pallets.sh @@ -38,11 +38,7 @@ for pallet in "${pallets[@]}"; do ./target/release/kilt-parachain benchmark pallet \ --template=".maintain/weight-template.hbs" \ --header="HEADER-GPL" \ - --execution=wasm \ - --wasm-execution=compiled \ --heap-pages=4096 \ - --steps=50 \ - --repeat=20 \ --chain="${chain}" \ --pallet="$pallet" \ --extrinsic="*" \ diff --git a/scripts/run_benches_for_runtime.sh b/scripts/run_benches_for_runtime.sh index 86a9c13f2..7e18e9eb5 100755 --- a/scripts/run_benches_for_runtime.sh +++ b/scripts/run_benches_for_runtime.sh @@ -5,8 +5,11 @@ # current Substrate reference machine: https://github.com/paritytech/substrate/pull/5848 runtime=${1-"peregrine"} +profile=${2-"release"} + chain=$([ "$1" == "spiritnet" ] && echo "spiritnet-dev" || echo "dev") -standard_args="--release --locked --features=runtime-benchmarks --bin=kilt-parachain" +# Dev profile is the debug target +standard_args="--profile $2 --locked --features=runtime-benchmarks --bin=kilt-parachain" pallets=( pallet-migration @@ -44,8 +47,6 @@ pallets=( pallet-asset-switch ) - - # Add Peregrine-only pallets here! if [ "$runtime" = "peregrine" ]; then pallets+=( @@ -53,23 +54,34 @@ if [ "$runtime" = "peregrine" ]; then ) fi -echo "[+] Running all runtime benchmarks for $runtime --chain=$chain" +echo "[+] Running all runtime benchmarks for \"$runtime\", \"--chain=$chain\" and profile \"$profile\"" cargo build $standard_args +if [ $profile == "dev" ]; then + target_folder="debug" + # We care about benchmark correctness, not accuracy. + additional_args="--steps=2 --repeat=1 --default-pov-mode=ignored --no-verify" +else + target_folder=$profile + additional_args="--header=\"HEADER-GPL\" --template=\".maintain/runtime-weight-template.hbs\" --output=\"./runtimes/${runtime}/src/weights/\"" +fi + for pallet in "${pallets[@]}"; do echo "Runtime: $runtime. Pallet: $pallet" # shellcheck disable=SC2086 - ./target/release/kilt-parachain benchmark pallet \ - --template=".maintain/runtime-weight-template.hbs" \ - --header="HEADER-GPL" \ - --wasm-execution=compiled \ + ./target/$target_folder/kilt-parachain benchmark pallet \ --heap-pages=4096 \ - --steps=50 \ - --repeat=20 \ --chain="${chain}" \ --pallet="$pallet" \ --extrinsic="*" \ - --output="./runtimes/${runtime}/src/weights/" + $additional_args + + bench_status=$? + + # Exit with error as soon as one benchmark fails + if [ $bench_status -ne 0 ]; then + exit $bench_status + fi done From dfeaf706a2b9f4ca7df0a92302fe39cb568730d1 Mon Sep 17 00:00:00 2001 From: Antonio Date: Fri, 20 Sep 2024 15:44:20 +0200 Subject: [PATCH 20/46] fix: benchmark test CI (#734) Ops. --- .github/workflows/check-code.yml | 36 +++++++++++++------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/.github/workflows/check-code.yml b/.github/workflows/check-code.yml index 28b00bdae..9ca443e5c 100644 --- a/.github/workflows/check-code.yml +++ b/.github/workflows/check-code.yml @@ -54,11 +54,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Free Disk Space - uses: jlumbroso/free-disk-space@main - with: - tool-cache: true - - name: Set up Cargo cache uses: actions/cache@v4 with: @@ -253,11 +248,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Free Disk Space - uses: jlumbroso/free-disk-space@main - with: - tool-cache: true - - name: Set up Cargo cache uses: actions/cache@v4 with: @@ -294,11 +284,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Free Disk Space - uses: jlumbroso/free-disk-space@main - with: - tool-cache: true - - name: Set up Cargo cache uses: actions/cache@v4 with: @@ -332,8 +317,6 @@ jobs: test-runtime-benchmarks: name: Test runtime benchmarks runs-on: ubuntu-latest - container: - image: paritytech/ci-unified:bullseye-1.74.0 env: # Configured by the Docker image. We can't change this unless the image does it. CARGO_HOME: /usr/local/cargo @@ -359,12 +342,21 @@ jobs: - name: Set up Cargo cache uses: actions/cache@v4 with: + # These paths are mounted inside the Docker container. + # We cannot mount the `.cargo/bin` folder since the container already contains binaries, and overriding with an empty one breaks compilation. path: | - ${{ env.CARGO_HOME }}/bin/ - ${{ env.CARGO_HOME }}/registry/index/ - ${{ env.CARGO_HOME }}/registry/cache/ - ${{ env.CARGO_HOME }}/git/db/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ key: ${{ github.job }}-${{ github.ref }}-${{ matrix.runtime }}-${{ hashFiles('**/Cargo.lock') }} - name: Run runtime benchmarks - run: bash -x scripts/run_benches_for_runtime.sh ${{ matrix.runtime }} dev + run: | + docker run --rm \ + -v "${GITHUB_WORKSPACE}:/workspace" \ + -v "${HOME}/.cargo/registry/index:${{ env.CARGO_HOME }}/registry/index" \ + -v "${HOME}/.cargo/registry/cache:${{ env.CARGO_HOME }}/registry/cache" \ + -v "${HOME}/.cargo/git/db:${{ env.CARGO_HOME }}/git/db" \ + -w /workspace \ + paritytech/ci-unified:bullseye-1.74.0 \ + bash -c "bash -x scripts/run_benches_for_runtime.sh ${{ matrix.runtime }} dev" From 684f2b5f5b169350db21c26faeeff06144c7263c Mon Sep 17 00:00:00 2001 From: Antonio Date: Wed, 25 Sep 2024 09:22:21 +0200 Subject: [PATCH 21/46] fix: bail out early if switching zero amount (#739) Minor optimisation to prevent users from uselessly spending their tx fees. --- pallets/pallet-asset-switch/src/lib.rs | 33 ++++++++++++------- .../pallet-asset-switch/src/tests/switch.rs | 27 +++++++++++++++ 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/pallets/pallet-asset-switch/src/lib.rs b/pallets/pallet-asset-switch/src/lib.rs index 85ee4c791..522623249 100644 --- a/pallets/pallet-asset-switch/src/lib.rs +++ b/pallets/pallet-asset-switch/src/lib.rs @@ -200,6 +200,8 @@ pub mod pallet { Xcm, /// Internal error. Internal, + /// Attempt to switch zero tokens. + ZeroAmount, } #[pallet::storage] @@ -379,17 +381,24 @@ pub mod pallet { ) -> DispatchResult { let submitter = T::SubmitterOrigin::ensure_origin(origin)?; - // 1. Retrieve switch pair info from storage, else fail. + // 1. Prevent switches of 0 tokens, which would just waste users' XCM fee + // balances. + ensure!( + local_asset_amount > LocalCurrencyBalanceOf::::zero(), + Error::::ZeroAmount + ); + + // 2. Retrieve switch pair info from storage, else fail. let switch_pair = SwitchPair::::get().ok_or(DispatchError::from(Error::::SwitchPairNotFound))?; - // 2. Check if switches are enabled. + // 3. Check if switches are enabled. ensure!( switch_pair.is_enabled(), DispatchError::from(Error::::SwitchPairNotEnabled) ); - // 3. Verify the tx submitter has enough local assets for the switch, without + // 4. Verify the tx submitter has enough local assets for the switch, without // having their balance go to zero. T::LocalCurrency::can_withdraw(&submitter, local_asset_amount) .into_result(true) @@ -398,7 +407,7 @@ pub mod pallet { DispatchError::from(Error::::UserSwitchBalance) })?; - // 4. Verify the local assets can be transferred to the switch pool account. + // 5. Verify the local assets can be transferred to the switch pool account. // This could fail if the pool's balance is `0` and the sent amount is less // than ED. T::LocalCurrency::can_deposit(&switch_pair.pool_account, local_asset_amount, Provenance::Extant) @@ -408,7 +417,7 @@ pub mod pallet { DispatchError::from(Error::::LocalPoolBalance) })?; - // 5. Verify we have enough balance (minus ED, already substracted from the + // 6. Verify we have enough balance (minus ED, already substracted from the // stored balance info) on the remote location to perform the transfer. let remote_asset_amount_as_u128 = local_asset_amount.into(); ensure!( @@ -466,7 +475,7 @@ pub mod pallet { DispatchError::from(Error::::Xcm) })?; - // 6. Compose and validate XCM message + // 7. Compose and validate XCM message let appendix: Xcm<()> = vec![ RefundSurplus, DepositAsset { @@ -499,11 +508,11 @@ pub mod pallet { DispatchError::from(Error::::Xcm) })?; - // 7. Call into hook pre-switch checks + // 8. Call into hook pre-switch checks T::SwitchHooks::pre_local_to_remote_switch(&submitter, &beneficiary, local_asset_amount) .map_err(|e| DispatchError::from(Error::::Hook(e.into())))?; - // 8. Transfer funds from user to pool + // 9. Transfer funds from user to pool let transferred_amount = T::LocalCurrency::transfer( &submitter, &switch_pair.pool_account, @@ -520,7 +529,7 @@ pub mod pallet { return Err(Error::::Internal.into()); } - // 9. Take XCM fee from submitter. + // 10. Take XCM fee from submitter. let withdrawn_fees = T::AssetTransactor::withdraw_asset(&remote_asset_fee_v4, &submitter_as_location, None) .map_err(|e| { log::info!( @@ -542,13 +551,13 @@ pub mod pallet { return Err(DispatchError::from(Error::::Internal)); } - // 10. Send XCM out + // 11. Send XCM out T::XcmRouter::deliver(xcm_ticket.0).map_err(|e| { log::info!("Failed to deliver ticket with error {:?}", e); DispatchError::from(Error::::Xcm) })?; - // 11. Update remote asset balance and circulating supply. + // 12. Update remote asset balance and circulating supply. SwitchPair::::try_mutate(|entry| { let Some(switch_pair_info) = entry.as_mut() else { log::error!(target: LOG_TARGET, "Failed to borrow stored switch pair info as mut."); @@ -567,7 +576,7 @@ pub mod pallet { Ok(()) })?; - // 12. Call into hook post-switch checks + // 13. Call into hook post-switch checks T::SwitchHooks::post_local_to_remote_switch(&submitter, &beneficiary, local_asset_amount) .map_err(|e| DispatchError::from(Error::::Hook(e.into())))?; diff --git a/pallets/pallet-asset-switch/src/tests/switch.rs b/pallets/pallet-asset-switch/src/tests/switch.rs index 8c95256f0..a9394f542 100644 --- a/pallets/pallet-asset-switch/src/tests/switch.rs +++ b/pallets/pallet-asset-switch/src/tests/switch.rs @@ -234,6 +234,33 @@ fn successful() { }); } +#[test] +fn fails_on_zero_amount() { + let user = AccountId32::from([0; 32]); + let pool_account = AccountId32::from([1; 32]); + ExtBuilder::default() + .with_switch_pair_info(NewSwitchPairInfoOf:: { + pool_account, + remote_asset_circulating_supply: 0, + remote_asset_ed: 0, + remote_asset_id: get_remote_erc20_asset_id().into(), + remote_asset_total_supply: 100_000, + remote_reserve_location: get_asset_hub_location().into(), + remote_xcm_fee: XCM_ASSET_FEE.into(), + status: SwitchPairStatus::Running, + }) + .build_and_execute_with_sanity_tests(|| { + assert_noop!( + Pallet::::switch( + RawOrigin::Signed(user).into(), + 0, + Box::new(get_asset_hub_location().into()) + ), + Error::::ZeroAmount + ); + }); +} + #[test] fn fails_on_invalid_origin() { ExtBuilder::default().build_and_execute_with_sanity_tests(|| { From 5ef8542d5c689b82d0284f78517cc7718cc62767 Mon Sep 17 00:00:00 2001 From: Antonio Date: Wed, 25 Sep 2024 09:31:46 +0200 Subject: [PATCH 22/46] chore: add events for deposit owner changes (#738) Fixes https://github.com/KILTprotocol/ticket/issues/3074. Cc @kilted-andres I tried to keep the event structure in all pallets the same, with the same name and the same fields `id`, `from` and `to`. The `id` field has a different type depending on the pallet, but the `from` and `to` are all the same. --- pallets/attestation/src/lib.rs | 22 +++++++++++++--- pallets/attestation/src/tests/deposit.rs | 7 ++++++ pallets/delegation/src/lib.rs | 25 ++++++++++++++++--- pallets/delegation/src/mock.rs | 14 +++++++---- pallets/delegation/src/tests/deposit.rs | 9 ++++++- pallets/did/src/lib.rs | 19 +++++++++++++- pallets/did/src/tests/deposit.rs | 7 ++++++ pallets/pallet-did-lookup/src/lib.rs | 25 ++++++++++++++++--- pallets/pallet-did-lookup/src/mock.rs | 4 +++ .../pallet-did-lookup/src/tests/deposit.rs | 9 ++++++- pallets/pallet-web3-names/src/lib.rs | 24 +++++++++++++++--- pallets/pallet-web3-names/src/mock.rs | 4 +++ pallets/pallet-web3-names/src/tests/claim.rs | 2 +- .../pallet-web3-names/src/tests/deposit.rs | 9 ++++++- pallets/public-credentials/src/lib.rs | 23 ++++++++++++++--- pallets/public-credentials/src/mock.rs | 12 ++++++--- pallets/public-credentials/src/tests/claim.rs | 4 +-- .../public-credentials/src/tests/deposit.rs | 9 ++++++- support/src/traits.rs | 8 +++--- 19 files changed, 196 insertions(+), 40 deletions(-) diff --git a/pallets/attestation/src/lib.rs b/pallets/attestation/src/lib.rs index 230db3030..ba4d7ba14 100644 --- a/pallets/attestation/src/lib.rs +++ b/pallets/attestation/src/lib.rs @@ -236,6 +236,15 @@ pub mod pallet { /// was deleted. claim_hash: ClaimHashOf, }, + /// The deposit for an attestation has changed owner. + DepositOwnerChanged { + /// The claim hash of the credential whose deposit owner changed. + id: ClaimHashOf, + /// The old deposit owner. + from: AccountIdOf, + /// The new deposit owner. + to: AccountIdOf, + }, } #[pallet::error] @@ -475,10 +484,15 @@ pub mod pallet { let attestation = Attestations::::get(claim_hash).ok_or(Error::::NotFound)?; ensure!(attestation.attester == subject, Error::::NotAuthorized); - AttestationStorageDepositCollector::::change_deposit_owner::>( - &claim_hash, - sender, - )?; + let old_deposit_owner = AttestationStorageDepositCollector::::change_deposit_owner::< + BalanceMigrationManagerOf, + >(&claim_hash, sender.clone())?; + + Self::deposit_event(Event::::DepositOwnerChanged { + id: claim_hash, + from: old_deposit_owner, + to: sender, + }); Ok(()) } diff --git a/pallets/attestation/src/tests/deposit.rs b/pallets/attestation/src/tests/deposit.rs index baafd3a1f..ed1d89e73 100644 --- a/pallets/attestation/src/tests/deposit.rs +++ b/pallets/attestation/src/tests/deposit.rs @@ -77,6 +77,13 @@ fn test_change_deposit_owner() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_01), ::Deposit::get() ); + assert!(System::events().iter().any(|e| e.event + == Event::::DepositOwnerChanged { + id: claim_hash, + from: ACCOUNT_00, + to: ACCOUNT_01 + } + .into())); }); } diff --git a/pallets/delegation/src/lib.rs b/pallets/delegation/src/lib.rs index d2cbb1539..2dae2d882 100644 --- a/pallets/delegation/src/lib.rs +++ b/pallets/delegation/src/lib.rs @@ -248,6 +248,15 @@ pub mod pallet { /// A delegation has been removed. /// \[remover ID, delegation node ID\] DelegationRemoved(AccountIdOf, DelegationNodeIdOf), + /// The deposit for a delegation has changed owner. + DepositOwnerChanged { + /// The ID of the delegation whose deposit owner changed. + id: DelegationNodeIdOf, + /// The old deposit owner. + from: AccountIdOf, + /// The new deposit owner. + to: AccountIdOf, + }, } #[pallet::error] @@ -683,6 +692,7 @@ pub mod pallet { #[pallet::weight(::WeightInfo::change_deposit_owner())] pub fn change_deposit_owner(origin: OriginFor, delegation_id: DelegationNodeIdOf) -> DispatchResult { let source = ::EnsureOrigin::ensure_origin(origin)?; + let sender = source.sender(); let delegation = DelegationNodes::::get(delegation_id).ok_or(Error::::DelegationNotFound)?; @@ -690,10 +700,17 @@ pub mod pallet { // parent or another ancestor. ensure!(delegation.details.owner == source.subject(), Error::::AccessDenied); - DelegationDepositCollector::::change_deposit_owner::>( - &delegation_id, - source.sender(), - ) + let old_deposit_owner = DelegationDepositCollector::::change_deposit_owner::< + BalanceMigrationManagerOf, + >(&delegation_id, sender.clone())?; + + Self::deposit_event(Event::::DepositOwnerChanged { + id: delegation_id, + from: old_deposit_owner, + to: sender, + }); + + Ok(()) } /// Updates the deposit amount to the current deposit rate. diff --git a/pallets/delegation/src/mock.rs b/pallets/delegation/src/mock.rs index 21f338b49..10a8faa81 100644 --- a/pallets/delegation/src/mock.rs +++ b/pallets/delegation/src/mock.rs @@ -232,7 +232,7 @@ pub(crate) mod runtime { type AccountId = AccountId; type Lookup = IdentityLookup; - type RuntimeEvent = (); + type RuntimeEvent = RuntimeEvent; type BlockHashCount = BlockHashCount; type DbWeight = RocksDbWeight; type Version = (); @@ -264,7 +264,7 @@ pub(crate) mod runtime { type MaxFreezes = MaxFreezes; type Balance = Balance; type DustRemoval = (); - type RuntimeEvent = (); + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); @@ -288,7 +288,7 @@ pub(crate) mod runtime { type EnsureOrigin = mock_origin::EnsureDoubleOrigin; type OriginSuccess = mock_origin::DoubleOrigin; type OverarchingOrigin = EnsureSigned; - type RuntimeEvent = (); + type RuntimeEvent = RuntimeEvent; type WeightInfo = (); type Currency = Balances; @@ -305,7 +305,7 @@ pub(crate) mod runtime { type EnsureOrigin = mock_origin::EnsureDoubleOrigin>; type OriginSuccess = mock_origin::DoubleOrigin>; type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeEvent = (); + type RuntimeEvent = RuntimeEvent; type WeightInfo = (); type Currency = Balances; @@ -335,7 +335,7 @@ pub(crate) mod runtime { type DelegationNodeId = Hash; type EnsureOrigin = mock_origin::EnsureDoubleOrigin; type OriginSuccess = mock_origin::DoubleOrigin; - type RuntimeEvent = (); + type RuntimeEvent = RuntimeEvent; type MaxSignatureByteLength = MaxSignatureByteLength; type MaxParentChecks = MaxParentChecks; type MaxRevocations = MaxRevocations; @@ -503,6 +503,10 @@ pub(crate) mod runtime { let mut ext = sp_io::TestExternalities::new(storage); ext.execute_with(|| { + // ensure that we are not at the genesis block. Events are not registered for + // the genesis block. + System::set_block_number(System::block_number() + 1); + for (ctype_hash, owner) in self.ctypes.iter() { ctype::Ctypes::::insert( ctype_hash, diff --git a/pallets/delegation/src/tests/deposit.rs b/pallets/delegation/src/tests/deposit.rs index 77516eb70..9dd674c3a 100644 --- a/pallets/delegation/src/tests/deposit.rs +++ b/pallets/delegation/src/tests/deposit.rs @@ -23,7 +23,7 @@ use frame_support::{ use kilt_support::mock::mock_origin::DoubleOrigin; use sp_runtime::{traits::Zero, TokenError}; -use crate::{self as delegation, mock::*, Config, Error, HoldReason}; +use crate::{self as delegation, mock::*, Config, Error, Event, HoldReason}; #[test] fn test_change_deposit_owner() { @@ -75,6 +75,13 @@ fn test_change_deposit_owner() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_01), ::Deposit::get() ); + assert!(System::events().iter().any(|e| e.event + == Event::::DepositOwnerChanged { + id: delegation_id, + from: ACCOUNT_00, + to: ACCOUNT_01 + } + .into())); }); } diff --git a/pallets/did/src/lib.rs b/pallets/did/src/lib.rs index 324a20dcc..1fbdf5263 100644 --- a/pallets/did/src/lib.rs +++ b/pallets/did/src/lib.rs @@ -369,6 +369,15 @@ pub mod pallet { /// A DID-authorised call has been executed. /// \[DID caller, dispatch result\] DidCallDispatched(DidIdentifierOf, DispatchResult), + /// The deposit for a DID has changed owner. + DepositOwnerChanged { + /// The DID whose deposit owner changed. + id: DidIdentifierOf, + /// The old deposit owner. + from: AccountIdOf, + /// The new deposit owner. + to: AccountIdOf, + }, } #[pallet::error] @@ -1105,7 +1114,15 @@ pub mod pallet { let subject = source.subject(); let sender = source.sender(); - DidDepositCollector::::change_deposit_owner::<::BalanceMigrationManager>(&subject, sender)?; + let old_deposit_owner = DidDepositCollector::::change_deposit_owner::< + ::BalanceMigrationManager, + >(&subject, sender.clone())?; + + Self::deposit_event(Event::::DepositOwnerChanged { + id: subject, + from: old_deposit_owner, + to: sender, + }); Ok(()) } diff --git a/pallets/did/src/tests/deposit.rs b/pallets/did/src/tests/deposit.rs index b0d595bf9..63378b75f 100644 --- a/pallets/did/src/tests/deposit.rs +++ b/pallets/did/src/tests/deposit.rs @@ -167,6 +167,13 @@ fn test_change_deposit_owner() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &alice_did), ::BaseDeposit::get() ); + assert!(System::events().iter().any(|e| e.event + == Event::::DepositOwnerChanged { + id: alice_did, + from: ACCOUNT_00, + to: ACCOUNT_01 + } + .into())); }); } diff --git a/pallets/pallet-did-lookup/src/lib.rs b/pallets/pallet-did-lookup/src/lib.rs index 90ef358ae..f97d8a163 100644 --- a/pallets/pallet-did-lookup/src/lib.rs +++ b/pallets/pallet-did-lookup/src/lib.rs @@ -153,6 +153,15 @@ pub mod pallet { /// All AccountIds have been migrated to LinkableAccountId. MigrationCompleted, + /// The deposit for an linked account has changed owner. + DepositOwnerChanged { + /// The tuple of (DID, linked account) whose deposit owner changed. + id: (DidIdentifierOf, LinkableAccountId), + /// The old deposit owner. + from: AccountIdOf, + /// The new deposit owner. + to: AccountIdOf, + }, } #[pallet::error] @@ -374,14 +383,22 @@ pub mod pallet { pub fn change_deposit_owner(origin: OriginFor, account: LinkableAccountId) -> DispatchResult { let source = ::EnsureOrigin::ensure_origin(origin)?; let subject = source.subject(); + let sender = source.sender(); let record = ConnectedDids::::get(&account).ok_or(Error::::NotFound)?; ensure!(record.did == subject, Error::::NotAuthorized); - LinkableAccountDepositCollector::::change_deposit_owner::>( - &account, - source.sender(), - ) + let old_deposit_owner = LinkableAccountDepositCollector::::change_deposit_owner::< + BalanceMigrationManagerOf, + >(&account, sender.clone())?; + + Self::deposit_event(Event::::DepositOwnerChanged { + id: (subject, account), + from: old_deposit_owner, + to: sender, + }); + + Ok(()) } /// Updates the deposit amount to the current deposit rate. diff --git a/pallets/pallet-did-lookup/src/mock.rs b/pallets/pallet-did-lookup/src/mock.rs index dc3f3a7ed..e8f6e3602 100644 --- a/pallets/pallet-did-lookup/src/mock.rs +++ b/pallets/pallet-did-lookup/src/mock.rs @@ -189,6 +189,10 @@ impl ExtBuilder { let mut ext = sp_io::TestExternalities::new(storage); ext.execute_with(|| { + // ensure that we are not at the genesis block. Events are not registered for + // the genesis block. + System::set_block_number(System::block_number() + 1); + for (sender, did, account) in self.connections { pallet_did_lookup::Pallet::::add_association(sender, did, account) .expect("Should create connection"); diff --git a/pallets/pallet-did-lookup/src/tests/deposit.rs b/pallets/pallet-did-lookup/src/tests/deposit.rs index 9167e7662..e450de361 100644 --- a/pallets/pallet-did-lookup/src/tests/deposit.rs +++ b/pallets/pallet-did-lookup/src/tests/deposit.rs @@ -19,7 +19,7 @@ use frame_support::{assert_noop, assert_ok, traits::fungible::InspectHold}; use kilt_support::mock::mock_origin; use sp_runtime::{traits::Zero, TokenError}; -use crate::{mock::*, Error, HoldReason}; +use crate::{mock::*, Error, Event, HoldReason}; #[test] fn test_change_deposit_owner() { @@ -39,6 +39,13 @@ fn test_change_deposit_owner() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_01), ::Deposit::get() ); + assert!(System::events().iter().any(|e| e.event + == Event::::DepositOwnerChanged { + id: (DID_00, LINKABLE_ACCOUNT_00), + from: ACCOUNT_00, + to: ACCOUNT_01 + } + .into())); }) } diff --git a/pallets/pallet-web3-names/src/lib.rs b/pallets/pallet-web3-names/src/lib.rs index a3cda6139..71abd83a5 100644 --- a/pallets/pallet-web3-names/src/lib.rs +++ b/pallets/pallet-web3-names/src/lib.rs @@ -162,6 +162,15 @@ pub mod pallet { Web3NameBanned { name: Web3NameOf }, /// A name has been unbanned. Web3NameUnbanned { name: Web3NameOf }, + /// The deposit for a web3name has changed owner. + DepositOwnerChanged { + /// The web3name whose deposit owner changed. + id: Web3NameOf, + /// The old deposit owner. + from: AccountIdOf, + /// The new deposit owner. + to: AccountIdOf, + }, } #[pallet::error] @@ -353,11 +362,18 @@ pub mod pallet { pub fn change_deposit_owner(origin: OriginFor) -> DispatchResult { let source = ::OwnerOrigin::ensure_origin(origin)?; let w3n_owner = source.subject(); + let sender = source.sender(); let name = Names::::get(&w3n_owner).ok_or(Error::::NotFound)?; - Web3NameStorageDepositCollector::::change_deposit_owner::>( - &name, - source.sender(), - )?; + + let old_deposit_owner = Web3NameStorageDepositCollector::::change_deposit_owner::< + BalanceMigrationManagerOf, + >(&name, sender.clone())?; + + Self::deposit_event(Event::::DepositOwnerChanged { + id: name, + from: old_deposit_owner, + to: sender, + }); Ok(()) } diff --git a/pallets/pallet-web3-names/src/mock.rs b/pallets/pallet-web3-names/src/mock.rs index 73676a6fb..a1d4baff3 100644 --- a/pallets/pallet-web3-names/src/mock.rs +++ b/pallets/pallet-web3-names/src/mock.rs @@ -224,6 +224,10 @@ pub(crate) mod runtime { let mut ext = sp_io::TestExternalities::new(storage); ext.execute_with(|| { + // ensure that we are not at the genesis block. Events are not registered for + // the genesis block. + System::set_block_number(System::block_number() + 1); + for (owner, web3_name, payer) in self.claimed_web3_names { pallet_web3_names::Pallet::::register_name(web3_name, owner, payer) .expect("Could not register name"); diff --git a/pallets/pallet-web3-names/src/tests/claim.rs b/pallets/pallet-web3-names/src/tests/claim.rs index 073cc15df..72a10f482 100644 --- a/pallets/pallet-web3-names/src/tests/claim.rs +++ b/pallets/pallet-web3-names/src/tests/claim.rs @@ -52,7 +52,7 @@ fn claiming_successful() { owner_details, Web3OwnershipOf:: { owner: DID_00, - claimed_at: 0, + claimed_at: 1, deposit: Deposit { owner: ACCOUNT_00, amount: Web3NameDeposit::get(), diff --git a/pallets/pallet-web3-names/src/tests/deposit.rs b/pallets/pallet-web3-names/src/tests/deposit.rs index f747e0554..e31fc1e03 100644 --- a/pallets/pallet-web3-names/src/tests/deposit.rs +++ b/pallets/pallet-web3-names/src/tests/deposit.rs @@ -21,7 +21,7 @@ use frame_support::{assert_noop, assert_ok, traits::fungible::InspectHold}; use kilt_support::{mock::mock_origin, Deposit}; use sp_runtime::{traits::Zero, TokenError}; -use crate::{mock::*, Config, Error, HoldReason, Owner, Pallet}; +use crate::{mock::*, Config, Error, Event, HoldReason, Owner, Pallet}; #[test] fn test_change_deposit_owner() { @@ -48,6 +48,13 @@ fn test_change_deposit_owner() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_01), ::Deposit::get() ); + assert!(System::events().iter().any(|e| e.event + == Event::::DepositOwnerChanged { + id: web3_name_00.clone(), + from: ACCOUNT_00, + to: ACCOUNT_01 + } + .into())); }) } diff --git a/pallets/public-credentials/src/lib.rs b/pallets/public-credentials/src/lib.rs index 67683e711..c3299047c 100644 --- a/pallets/public-credentials/src/lib.rs +++ b/pallets/public-credentials/src/lib.rs @@ -224,6 +224,15 @@ pub mod pallet { /// The id of the unrevoked credential. credential_id: CredentialIdOf, }, + /// The deposit for a public credential has changed owner. + DepositOwnerChanged { + /// The claim hash of the credential whose deposit owner changed. + id: CredentialIdOf, + /// The old deposit owner. + from: AccountIdOf, + /// The new deposit owner. + to: AccountIdOf, + }, } #[pallet::error] @@ -524,15 +533,21 @@ pub mod pallet { pub fn change_deposit_owner(origin: OriginFor, credential_id: CredentialIdOf) -> DispatchResult { let source = ::EnsureOrigin::ensure_origin(origin)?; let subject = source.subject(); + let sender = source.sender(); let (_, credential_entry) = Self::retrieve_credential_entry(&credential_id)?; ensure!(subject == credential_entry.attester, Error::::NotAuthorized); - PublicCredentialDepositCollector::::change_deposit_owner::>( - &credential_id, - source.sender(), - )?; + let old_deposit_owner = PublicCredentialDepositCollector::::change_deposit_owner::< + BalanceMigrationManagerOf, + >(&credential_id, sender.clone())?; + + Self::deposit_event(Event::::DepositOwnerChanged { + id: credential_id, + from: old_deposit_owner, + to: sender, + }); Ok(()) } diff --git a/pallets/public-credentials/src/mock.rs b/pallets/public-credentials/src/mock.rs index 6c3603f86..cf3911c08 100644 --- a/pallets/public-credentials/src/mock.rs +++ b/pallets/public-credentials/src/mock.rs @@ -287,7 +287,7 @@ pub(crate) mod runtime { type Hashing = BlakeTwo256; type AccountId = AccountId; type Lookup = IdentityLookup; - type RuntimeEvent = (); + type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type DbWeight = RocksDbWeight; type Version = (); @@ -312,7 +312,7 @@ pub(crate) mod runtime { type MaxFreezes = ConstU32<10>; type Balance = Balance; type DustRemoval = (); - type RuntimeEvent = (); + type RuntimeEvent = RuntimeEvent; type ExistentialDeposit = ConstU128; type AccountStore = System; type WeightInfo = (); @@ -326,7 +326,7 @@ pub(crate) mod runtime { type EnsureOrigin = mock_origin::EnsureDoubleOrigin; type OriginSuccess = mock_origin::DoubleOrigin; type OverarchingOrigin = EnsureSigned; - type RuntimeEvent = (); + type RuntimeEvent = RuntimeEvent; type WeightInfo = (); type Currency = Balances; @@ -344,7 +344,7 @@ pub(crate) mod runtime { type Currency = Balances; type Deposit = ConstU128<{ 10 * MILLI_UNIT }>; type EnsureOrigin = mock_origin::EnsureDoubleOrigin; - type RuntimeEvent = (); + type RuntimeEvent = RuntimeEvent; type MaxEncodedClaimsLength = ConstU32<500>; type MaxSubjectIdLength = ConstU32<100>; type OriginSuccess = mock_origin::DoubleOrigin; @@ -421,6 +421,10 @@ pub(crate) mod runtime { let mut ext = sp_io::TestExternalities::new(storage); ext.execute_with(|| { + // ensure that we are not at the genesis block. Events are not registered for + // the genesis block. + System::set_block_number(System::block_number() + 1); + for ctype in self.ctypes { ctype::Ctypes::::insert( ctype.0, diff --git a/pallets/public-credentials/src/tests/claim.rs b/pallets/public-credentials/src/tests/claim.rs index 4bf736c04..889cdc4d8 100644 --- a/pallets/public-credentials/src/tests/claim.rs +++ b/pallets/public-credentials/src/tests/claim.rs @@ -65,7 +65,7 @@ fn add_successful_without_authorization() { // Test this pallet logic assert_eq!(stored_public_credential_details.attester, attester); assert!(!stored_public_credential_details.revoked); - assert_eq!(stored_public_credential_details.block_number, 0); + assert_eq!(stored_public_credential_details.block_number, 1); assert_eq!(stored_public_credential_details.ctype_hash, ctype_hash_1); assert_eq!(stored_public_credential_details.authorization_id, None); assert_eq!(CredentialSubjects::::get(credential_id_1), Some(subject_id)); @@ -146,7 +146,7 @@ fn add_successful_with_authorization() { // Test this pallet logic assert_eq!(stored_public_credential_details.attester, attester); assert!(!stored_public_credential_details.revoked); - assert_eq!(stored_public_credential_details.block_number, 0); + assert_eq!(stored_public_credential_details.block_number, 1); assert_eq!(stored_public_credential_details.ctype_hash, ctype_hash); assert_eq!(stored_public_credential_details.authorization_id, Some(attester)); assert_eq!(CredentialSubjects::::get(credential_id), Some(subject_id)); diff --git a/pallets/public-credentials/src/tests/deposit.rs b/pallets/public-credentials/src/tests/deposit.rs index 8fd7e4e0d..0e87be5c1 100644 --- a/pallets/public-credentials/src/tests/deposit.rs +++ b/pallets/public-credentials/src/tests/deposit.rs @@ -25,7 +25,7 @@ use sp_runtime::traits::Zero; use ctype::mock::get_ctype_hash; use kilt_support::{mock::mock_origin::DoubleOrigin, Deposit}; -use crate::{mock::*, Config, CredentialIdOf, CredentialSubjects, Credentials, Error, HoldReason}; +use crate::{mock::*, Config, CredentialIdOf, CredentialSubjects, Credentials, Error, Event, HoldReason}; #[test] fn reclaim_deposit_successful() { @@ -147,6 +147,13 @@ fn test_change_deposit_owner() { ::Deposit::get() ); assert!(Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_00).is_zero()); + assert!(System::events().iter().any(|e| e.event + == Event::::DepositOwnerChanged { + id: credential_id, + from: ACCOUNT_00, + to: ACCOUNT_01 + } + .into())); }); } diff --git a/support/src/traits.rs b/support/src/traits.rs index 535fc65f9..dd764d60f 100644 --- a/support/src/traits.rs +++ b/support/src/traits.rs @@ -197,7 +197,7 @@ pub trait StorageDepositCollector { reserve_deposit::(who, amount, &reason.into()) } - /// Change the deposit owner. + /// Change the deposit owner and returns the old owner. /// /// The deposit balance of the current owner will be freed, while the /// deposit balance of the new owner will get reserved. The deposit amount @@ -205,7 +205,7 @@ pub trait StorageDepositCollector { fn change_deposit_owner( key: &Key, new_owner: AccountId, - ) -> Result<(), DispatchError> + ) -> Result where DepositBalanceMigrationManager: BalanceMigrationManager>::Balance>, @@ -222,6 +222,8 @@ pub trait StorageDepositCollector { DepositBalanceMigrationManager::exclude_key_from_migration(&hashed_key); } + let old_deposit_owner = deposit.owner; + let deposit = Deposit { owner: new_owner, ..deposit @@ -231,7 +233,7 @@ pub trait StorageDepositCollector { Self::store_deposit(key, deposit)?; - Ok(()) + Ok(old_deposit_owner) } /// Update the deposit amount. From cc71ba511c552d36fb935b6e858592f0f6054484 Mon Sep 17 00:00:00 2001 From: Antonio Date: Sat, 28 Sep 2024 17:21:43 +0200 Subject: [PATCH 23/46] fix: spiritnet config for the switch pallet (#742) --- runtimes/spiritnet/src/xcm_config.rs | 60 +++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 9 deletions(-) diff --git a/runtimes/spiritnet/src/xcm_config.rs b/runtimes/spiritnet/src/xcm_config.rs index 174a9fbd5..2e6ee152e 100644 --- a/runtimes/spiritnet/src/xcm_config.rs +++ b/runtimes/spiritnet/src/xcm_config.rs @@ -17,8 +17,9 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org use crate::{ - AccountId, AllPalletsWithSystem, Balances, MessageQueue, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, - RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, Balances, CheckingAccount, Fungibles, KiltToEKiltSwitchPallet, MessageQueue, + ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, Treasury, + WeightToFee, XcmpQueue, }; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; @@ -27,6 +28,10 @@ use frame_support::{ traits::{Contains, Everything, Nothing, TransformOrigin}, }; use frame_system::EnsureRoot; +use pallet_asset_switch::xcm::{ + IsSwitchPairRemoteAsset, IsSwitchPairXcmFeeAsset, MatchesSwitchPairXcmFeeFungibleAsset, + SwitchPairRemoteAssetTransactor, UsingComponentsForSwitchPairRemoteAsset, UsingComponentsForXcmFeeAsset, +}; use pallet_xcm::XcmPassthrough; use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; @@ -35,9 +40,9 @@ use sp_std::prelude::ToOwned; use xcm::v4::prelude::*; use xcm_builder::{ AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, - EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, NativeAsset, RelayChainAsNative, - SiblingParachainAsNative, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, - TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, + EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, FungiblesAdapter, NativeAsset, NoChecking, + RelayChainAsNative, SiblingParachainAsNative, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, }; use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; @@ -163,15 +168,40 @@ impl Contains for SafeCallFilter { } } +parameter_types! { + pub TreasuryAccountId: AccountId = Treasury::account_id(); +} + pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; // How we send Xcm messages. type XcmSender = XcmRouter; // How to withdraw and deposit an asset. - type AssetTransactor = LocalAssetTransactor; + // Until fixed, `LocalAssetTransactor` must be last since it returns an error if + // the operation does not go through, i.e., it cannot be chained with other + // transactors. + type AssetTransactor = ( + // Allow the asset from the other side of the pool to be "deposited" into the current system. + SwitchPairRemoteAssetTransactor, + // Allow the asset to pay for remote XCM fees to be deposited into the current system. + FungiblesAdapter< + Fungibles, + MatchesSwitchPairXcmFeeFungibleAsset, + LocationToAccountIdConverter, + AccountId, + NoChecking, + CheckingAccount, + >, + // Transactor for fungibles matching the "Here" location. + LocalAssetTransactor, + ); type OriginConverter = XcmOriginToTransactDispatchOrigin; - type IsReserve = NativeAsset; + type IsReserve = ( + NativeAsset, + IsSwitchPairRemoteAsset, + IsSwitchPairXcmFeeAsset, + ); // Teleporting is disabled. type IsTeleporter = (); type UniversalLocation = UniversalLocation; @@ -183,8 +213,20 @@ impl xcm_executor::Config for XcmConfig { // How weight is transformed into fees. The fees are not taken out of the // Balances pallet here. Balances is only used if fees are dropped without being // used. In that case they are put into the treasury. - type Trader = - UsingComponents, HereLocation, AccountId, Balances, SendDustAndFeesToTreasury>; + + type Trader = ( + // Can pay for fees with the remote XCM asset fee (when sending it into this system). + UsingComponentsForXcmFeeAsset>, + // Can pay for the remote asset of the switch pair (when "depositing" it into this system). + UsingComponentsForSwitchPairRemoteAsset< + Runtime, + KiltToEKiltSwitchPallet, + WeightToFee, + TreasuryAccountId, + >, + // Can pay with the fungible that matches the "Here" location. + UsingComponents, HereLocation, AccountId, Balances, SendDustAndFeesToTreasury>, + ); type ResponseHandler = PolkadotXcm; // What happens with assets that are left in the register after the XCM message // was processed. PolkadotXcm has an AssetTrap that stores a hash of the asset From ee1514e22cfb363e36686a017e25528338aa2bc3 Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Sat, 28 Sep 2024 17:26:05 +0200 Subject: [PATCH 24/46] fix: ordering of instructions for remote XCM message --- pallets/pallet-asset-switch/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pallets/pallet-asset-switch/src/lib.rs b/pallets/pallet-asset-switch/src/lib.rs index 522623249..de97f6a96 100644 --- a/pallets/pallet-asset-switch/src/lib.rs +++ b/pallets/pallet-asset-switch/src/lib.rs @@ -490,11 +490,11 @@ pub mod pallet { weight_limit: WeightLimit::Unlimited, fees: remote_asset_fee_v4.clone(), }, + SetAppendix(appendix), TransferAsset { assets: (asset_id_v4, remote_asset_amount_as_u128).into(), beneficiary: beneficiary_v4, }, - SetAppendix(appendix), ] .into(); let xcm_ticket = From b3539590997e38a4e5f646ab8f3ee4b48c5666a0 Mon Sep 17 00:00:00 2001 From: Antonio Date: Tue, 1 Oct 2024 09:32:40 +0200 Subject: [PATCH 25/46] chore: update license years to 2024 (#743) --- crates/kilt-dip-primitives/src/merkle_proofs/mod.rs | 2 +- .../src/merkle_proofs/v0/dip_subject_state/mod.rs | 2 +- .../src/merkle_proofs/v0/dip_subject_state/tests.rs | 2 +- crates/kilt-dip-primitives/src/merkle_proofs/v0/error.rs | 2 +- crates/kilt-dip-primitives/src/merkle_proofs/v0/input_common.rs | 2 +- crates/kilt-dip-primitives/src/merkle_proofs/v0/mod.rs | 2 +- .../kilt-dip-primitives/src/merkle_proofs/v0/output_common.rs | 2 +- .../src/merkle_proofs/v0/provider_state/mod.rs | 2 +- .../src/merkle_proofs/v0/provider_state/tests.rs | 2 +- .../kilt-dip-primitives/src/merkle_proofs/v0/relay_state/mod.rs | 2 +- .../src/merkle_proofs/v0/relay_state/tests.rs | 2 +- .../src/state_proofs/substrate_no_std_port.rs | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/crates/kilt-dip-primitives/src/merkle_proofs/mod.rs b/crates/kilt-dip-primitives/src/merkle_proofs/mod.rs index 552a922f8..74cad1022 100644 --- a/crates/kilt-dip-primitives/src/merkle_proofs/mod.rs +++ b/crates/kilt-dip-primitives/src/merkle_proofs/mod.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/crates/kilt-dip-primitives/src/merkle_proofs/v0/dip_subject_state/mod.rs b/crates/kilt-dip-primitives/src/merkle_proofs/v0/dip_subject_state/mod.rs index 1d1c0f8c1..2482a450f 100644 --- a/crates/kilt-dip-primitives/src/merkle_proofs/v0/dip_subject_state/mod.rs +++ b/crates/kilt-dip-primitives/src/merkle_proofs/v0/dip_subject_state/mod.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/crates/kilt-dip-primitives/src/merkle_proofs/v0/dip_subject_state/tests.rs b/crates/kilt-dip-primitives/src/merkle_proofs/v0/dip_subject_state/tests.rs index 49f2a8048..1b48c01a5 100644 --- a/crates/kilt-dip-primitives/src/merkle_proofs/v0/dip_subject_state/tests.rs +++ b/crates/kilt-dip-primitives/src/merkle_proofs/v0/dip_subject_state/tests.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/crates/kilt-dip-primitives/src/merkle_proofs/v0/error.rs b/crates/kilt-dip-primitives/src/merkle_proofs/v0/error.rs index c7e120c3b..62bd2efe8 100644 --- a/crates/kilt-dip-primitives/src/merkle_proofs/v0/error.rs +++ b/crates/kilt-dip-primitives/src/merkle_proofs/v0/error.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/crates/kilt-dip-primitives/src/merkle_proofs/v0/input_common.rs b/crates/kilt-dip-primitives/src/merkle_proofs/v0/input_common.rs index f9a5d6b5b..c71d5f8bf 100644 --- a/crates/kilt-dip-primitives/src/merkle_proofs/v0/input_common.rs +++ b/crates/kilt-dip-primitives/src/merkle_proofs/v0/input_common.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/crates/kilt-dip-primitives/src/merkle_proofs/v0/mod.rs b/crates/kilt-dip-primitives/src/merkle_proofs/v0/mod.rs index 6628e444d..06cf4604b 100644 --- a/crates/kilt-dip-primitives/src/merkle_proofs/v0/mod.rs +++ b/crates/kilt-dip-primitives/src/merkle_proofs/v0/mod.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/crates/kilt-dip-primitives/src/merkle_proofs/v0/output_common.rs b/crates/kilt-dip-primitives/src/merkle_proofs/v0/output_common.rs index 54f5094d5..3cb99e158 100644 --- a/crates/kilt-dip-primitives/src/merkle_proofs/v0/output_common.rs +++ b/crates/kilt-dip-primitives/src/merkle_proofs/v0/output_common.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/crates/kilt-dip-primitives/src/merkle_proofs/v0/provider_state/mod.rs b/crates/kilt-dip-primitives/src/merkle_proofs/v0/provider_state/mod.rs index 7039c5b84..1722bcdd4 100644 --- a/crates/kilt-dip-primitives/src/merkle_proofs/v0/provider_state/mod.rs +++ b/crates/kilt-dip-primitives/src/merkle_proofs/v0/provider_state/mod.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/crates/kilt-dip-primitives/src/merkle_proofs/v0/provider_state/tests.rs b/crates/kilt-dip-primitives/src/merkle_proofs/v0/provider_state/tests.rs index 3e8ede9cb..9afab8b9f 100644 --- a/crates/kilt-dip-primitives/src/merkle_proofs/v0/provider_state/tests.rs +++ b/crates/kilt-dip-primitives/src/merkle_proofs/v0/provider_state/tests.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/crates/kilt-dip-primitives/src/merkle_proofs/v0/relay_state/mod.rs b/crates/kilt-dip-primitives/src/merkle_proofs/v0/relay_state/mod.rs index 5a08bc9dc..6ae15b8da 100644 --- a/crates/kilt-dip-primitives/src/merkle_proofs/v0/relay_state/mod.rs +++ b/crates/kilt-dip-primitives/src/merkle_proofs/v0/relay_state/mod.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/crates/kilt-dip-primitives/src/merkle_proofs/v0/relay_state/tests.rs b/crates/kilt-dip-primitives/src/merkle_proofs/v0/relay_state/tests.rs index 42aef97c5..f12dc59a6 100644 --- a/crates/kilt-dip-primitives/src/merkle_proofs/v0/relay_state/tests.rs +++ b/crates/kilt-dip-primitives/src/merkle_proofs/v0/relay_state/tests.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/crates/kilt-dip-primitives/src/state_proofs/substrate_no_std_port.rs b/crates/kilt-dip-primitives/src/state_proofs/substrate_no_std_port.rs index 927927215..4a7826beb 100644 --- a/crates/kilt-dip-primitives/src/state_proofs/substrate_no_std_port.rs +++ b/crates/kilt-dip-primitives/src/state_proofs/substrate_no_std_port.rs @@ -1,5 +1,5 @@ // KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2023 BOTLabs GmbH +// Copyright (C) 2019-2024 BOTLabs GmbH // The KILT Blockchain is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by From 36d3bcbeb4818134810354bcfe7eb2d6866acc03 Mon Sep 17 00:00:00 2001 From: Antonio Date: Thu, 3 Oct 2024 11:52:11 +0200 Subject: [PATCH 26/46] chore: add zombienet config files for quick spin-ups (#714) Quick way of spinning up a parachain instance using actual node software and consensus rather than mocking stuff with Chopsticks. --- .gitignore | 2 + zombienet/.nvmrc | 1 + zombienet/README.md | 35 + zombienet/package.json | 13 + zombienet/runtimes/peregrine/.env | 4 + zombienet/runtimes/peregrine/network.yaml | 33 + .../paseo-local-fast-v1.3.1-e1fd37c.json | 196 + zombienet/runtimes/spiritnet/.env | 4 + zombienet/runtimes/spiritnet/network.yaml | 33 + .../polkadot-local-fast-v1.3.2-e220854.json | 196 + zombienet/yarn.lock | 3315 +++++++++++++++++ 11 files changed, 3832 insertions(+) create mode 100644 zombienet/.nvmrc create mode 100644 zombienet/README.md create mode 100644 zombienet/package.json create mode 100644 zombienet/runtimes/peregrine/.env create mode 100644 zombienet/runtimes/peregrine/network.yaml create mode 100644 zombienet/runtimes/peregrine/paseo-local-fast-v1.3.1-e1fd37c.json create mode 100644 zombienet/runtimes/spiritnet/.env create mode 100644 zombienet/runtimes/spiritnet/network.yaml create mode 100644 zombienet/runtimes/spiritnet/polkadot-local-fast-v1.3.2-e220854.json create mode 100644 zombienet/yarn.lock diff --git a/.gitignore b/.gitignore index 3fb67043f..d5aa4502c 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,8 @@ # ignore env files .env +# but not the ones for our Zombienet setup +!zombienet/**/.env # ignore vscode settings .vscode diff --git a/zombienet/.nvmrc b/zombienet/.nvmrc new file mode 100644 index 000000000..7ea6a59d3 --- /dev/null +++ b/zombienet/.nvmrc @@ -0,0 +1 @@ +v20.11.0 diff --git a/zombienet/README.md b/zombienet/README.md new file mode 100644 index 000000000..88aedd536 --- /dev/null +++ b/zombienet/README.md @@ -0,0 +1,35 @@ +# KILT Zombienet utilities + +This project contains setup code to spawn [Zombienet](https://github.com/paritytech/zombienet)-based deployments for both Spiritnet and Peregrine runtimes. + +## Requirements + +The Zombienet config assumes the presence of a properly configured `kubectl` cluster. +One local cluster can be installed with [minikube](https://minikube.sigs.k8s.io/docs/start/?arch=%2Fmacos%2Farm64%2Fstable%2Fbinary+download). +For other options, please refer to the Kubernetes documentation. + +## How to spawn + +First, `cd` into the `zombienet` folder and run first `nvm use` to configure the right Node version, and then `yarn` to install any Node dependencies. + +Both Spiritnet and Peregrine deployments rely on the following env variables: + +* `RELAY_IMAGE`: The Docker image for relaychain nodes. +* `RELAY_RPC`: The RPC port to expose for relaychain Alice node. +* `PARA_IMAGE`: The Docker image for KILT nodes. +* `PARA_RPC`: The RPC port to expose for KILT Alice node. + +By default, both Spiritnet and Peregrine folders contain a `.env` file which uses the following defaults: + +```sh +RELAY_IMAGE=parity/polkadot:v1.15.2 +RELAY_RPC=50001 +PARA_IMAGE=kiltprotocol/kilt-node:1.14.3 +PARA_RPC=50010 +``` + +To spin up a deployment using the defaults provided in the relative `.env` file, run either `yarn spawn:peregrine:with-env` or `yarn spawn:spiritnet:with-env`. + +If values are explicitly set in the env, then run either `yarn spawn:peregrine` or `yarn spawn:spiritnet`, which will assume those values have already been set elsewhere. + +After spawning the network, you can connect to the relaychain Alice node on `ws://localhost:` and to the KILT Alice node on `ws://localhost:`. diff --git a/zombienet/package.json b/zombienet/package.json new file mode 100644 index 000000000..35e8ec31c --- /dev/null +++ b/zombienet/package.json @@ -0,0 +1,13 @@ +{ + "name": "@kiltprotocol/zombienet-networks", + "license": "MIT", + "devDependencies": { + "@zombienet/cli": "^1.3.109" + }, + "scripts": { + "spawn:peregrine": "yarn zombienet --spawn-concurrency=3 spawn runtimes/peregrine/network.yaml", + "spawn:peregrine:with-env": "env $(cat runtimes/peregrine/.env | xargs) yarn spawn:peregrine", + "spawn:spiritnet": "yarn zombienet --spawn-concurrency=3 spawn runtimes/spiritnet/network.yaml", + "spawn:spiritnet:with-env": "env $(cat runtimes/spiritnet/.env | xargs) yarn spawn:spiritnet" + } +} diff --git a/zombienet/runtimes/peregrine/.env b/zombienet/runtimes/peregrine/.env new file mode 100644 index 000000000..a44d7f1d8 --- /dev/null +++ b/zombienet/runtimes/peregrine/.env @@ -0,0 +1,4 @@ +RELAY_IMAGE=parity/polkadot:v1.15.2 +RELAY_RPC=50001 +PARA_IMAGE=kiltprotocol/kilt-node:1.14.3 +PARA_RPC=50010 diff --git a/zombienet/runtimes/peregrine/network.yaml b/zombienet/runtimes/peregrine/network.yaml new file mode 100644 index 000000000..b5232c1bb --- /dev/null +++ b/zombienet/runtimes/peregrine/network.yaml @@ -0,0 +1,33 @@ +settings: + node_verifier: "None" + provider: "kubernetes" + # 18000 seconds -> 300 minutes -> 5 hours + timeout: 18000 + +# Env variables: +# * RELAY_IMAGE: Docker image for relaychain nodes +# * RELAY_RPC: RPC port for one relaychain node +# * PARA_IMAGE: Docker image for the parachain nodes +# * PARA_RPC: RPC port for one parachain node + +relaychain: + chain: paseo-local + chain_spec_path: runtimes/peregrine/paseo-local-fast-v1.3.1-e1fd37c.json + default_image: "{{RELAY_IMAGE}}" + nodes: + - name: "relay-alice" + rpc_port: "{{RELAY_RPC}}" + - name: "relay-bob" + +parachains: + - id: 2086 + chain: peregrine-dev + + collators: + - command: "node-executable" + image: "{{PARA_IMAGE}}" + name: "para-alice" + rpc_port: "{{PARA_RPC}}" + - command: "node-executable" + image: "{{PARA_IMAGE}}" + name: "para-bob" diff --git a/zombienet/runtimes/peregrine/paseo-local-fast-v1.3.1-e1fd37c.json b/zombienet/runtimes/peregrine/paseo-local-fast-v1.3.1-e1fd37c.json new file mode 100644 index 000000000..689b2427c --- /dev/null +++ b/zombienet/runtimes/peregrine/paseo-local-fast-v1.3.1-e1fd37c.json @@ -0,0 +1,196 @@ +{ + "name": "Paseo Local Testnet", + "id": "paseo-local", + "chainType": "Local", + "bootNodes": [], + "telemetryEndpoints": null, + "protocolId": "pas", + "properties": { + "tokenDecimals": 10 + }, + "codeSubstitutes": {}, + "genesis": { + "runtimeGenesis": { + "code": "0x52bc537646db8e0528b52ffd00588c38062ed588ef1c581048e96ad201220832813212630546eb8628ac9209911012201300e80db3e721bcc4d5ba168b667ddd86e8cff570804538750010105048fc0253bb66038f3808efc50b8b7db41924646fabdad24fb611a2d6a411b2b7dc327f21511b991a44f356e6c8c005151cc4f7a8c3b6f1fb42977ba2e69c1de82e57dd20468d913fcf2c90e94cd835ee5a29bbf3e0e52a1b98b8b0aecd730ec8dd7d4a299dfda3a6dd9fdd4ddf7d16e99cffeeb4b4a4f9fa4991a62de79d3feaa3669fb6477eb9278aceb905e4b64d9e970fbeb86d7cf9dcb67ef95d7e6ddb3c1f9c383270d18583f882339ce4bc2cf6c10ee971043035d6d3cf5311695a9e3332e0a04ad7f8f629c95da3076938c9795becb3582d77adfc2efd51b38854bb467fd4477dd4473d452151b7cf22d2fc511f75d49cf30b907dca5f7a908546906d2377ad1c2ffd3c8b48f353f451432e97b3e1ce831dd6b6cdf3b96d7d3e8b5fd7e88f7a9261d7e84d184bd8a5efd797dfa507616dab5de3d3cbda362f7d4edbe6e9c119cadac6979ec5f9a33eea4a3ef1dca6a8db9696f4ddfe77dbd292faf5fd6a9de69d96bbc66711c87cdbb23f7fd447cd3ed41ef9e59ea89e3306204f1d46aeb2c1ca2dbfcb1fdbc655392a97ffb58dab6c30e2f2c3b6cdcbe726e25b09bb7cf6617be4977ba2e63c02f9b24f39de3ef8b5ad9ca7e7e308606a9c2fc3db2fe96bd7f82025bfaef187c6797a3e8b2bcc1fa1f6eb1a9fbbc63f6a70927d4336629a55f7c9bbf37d918d9866ee2eedb8f37db0c3af6de5bc5fd7f87c66a3f992be768d0f52f2eb1a1f00233d9f4515b86b7c6abfaef18f1aec7092f5866cc434c7dca5d57da2b9f37d918d9866ee2eedb84fe19defbbd88869e6eed28efbe4ddf9fe8b8d9866ee2eedb8f37d908693a4576423a699bb4b3bee9377e7fb211b314d30f729bcf37d171b31cddc5dda71e7fb2cae5073b93b7fd4530432e6ee7cd836be7d1681ccdc9d3feaa33eeaa3669fb647c6cb3d513d5b0b90efd7b6b24fcfc711c0d4d89f2fe96bd7f82025bfaef187c63e3d9fc515fa47a8fdbac6e7aef18f3a6ace1e20c83c23030ea8748d6fed1a9f4524ee1affa839079c619ce7aa5ceef25904d9689ce7336b08188a050f1e680d09c2902e868c19c2c5901c0cd1c1101f0cd9c19030436e30648b215a869860c808861831440443b20c0181903243ac0c71c1902d43a2181283212d18f282215c86c06008962157860c31846a081143303084ca900b0c911a5282213e0c7132e4c9100e0cf1c0900e0c59628812437a180265c807866c60486e080e438a10d285903142c204d122e40442b2080181901108694288088484200897205424c540480e4274101245480584f0204408213d08d941c80f427c10f224498ca42424ed20090949572449910483a41a24c9008898204e827891a4435214495c82e020698aa4172455255d493a41520992b4242d91b44312551296240e242991e481a40e24159194435295a41e927e108245c8952422927c10e201211b4892921444d2541210416a10040849b9206382f820c81741a60832469298242792c24832421211928e904426098ca421241521880982fc00880e824011c281203d00c2832055825c11e449100b04990a2225642a080d82e0104406418608e205c80e808801c40749240092032154429410f201214b08e900901e04e902e408495f844809b921c907429248fa41d216492e0852012148049122698c102b4940481242902408a1228488a42d495e000943480692b2484222e908214604b940120d821811840a1024244905c9052993f4859022926c20e408213608b980100c08a99214841f5ffcf0c10f313f7af083073f70f003cc8f12fc90e207971f51fc70c10f287eb0e0c70e7eb4e0c7133fb4fc48018f0efc98c18f2c7ec4e087163f60f0c38a1f2ff841821f4efcd8f2c3063ea420150189084841401a83f4051210907e808404a42320718184032430483740da02c9063e9cf8b8c1870d3e72486590c6404a029218485d207981e403a41e20f100490cd20e907480f405490ba42c90b040f2827405520d9068806405d20c90aa40a202690aa42890a440e282b4050906482f40aa424a01d20a909c40520152134826404201d20990b220298144854402240f2045414a02c90ad215a40d208500e906241d902c8044058908a421907840f2014908a42090a4205d000909a41c907e40ca21ed8004448f32483d20e180040509034836f4b0418f2d7a88e9c1831e3be881458f2b7ae8a047163db4e8e1a507971e5b7ac0a0470c7a44d1e3053da0e8c1821e4ff470418f12f4d0d263891e4cf408418f16f418410f12f410410f257a50f5a8a207123d34d0034a8f0cf438a247057a08d1c30248587a24d183871e3af4d8a147941e533daaf4c88147117adcd023081e44e82185c7183cc4e881038f323d723c92d0e3071e57f008c323073c74c0a30b1e55f0b8010f2e78d08087153cc0f098010f19f09082070e7874e141058f296e53f0d0000f24781cc123081e3ff098c243081e40dc86700b028f2a3722dc8a7013028f1b6e63f0b0e106c68dcc0d073731b71ddcb8b8dde0066642b96d710b332b70f372c3e256c5adcb0d8adb11370ddc7ab85fdc78b83fb83db946b840b80171b1b85e802421c9861bc4c572ad5c10dc24ee06ee958bc4cdc0ad72357081381ac29572a9dc218e84705483cbc3dde11e717bb83edc284758dc0a1cf9e0280847648ebcb8544745380ae388084746b81fb84b1c657174c50dc16dc185e256dd27ae13970547628ec61c8171b483a32f8e5230fb0196830f0eb02734be384ae2280447558e963842e2e84a6dea6803471c38fac01196a31d74b4d8b1850e2e34723d2578a1c08610ae16370bcac5cb0677043d35e899410f0f3d5b5e40e8c9410e19e488e23271b3f4ac2000477871f1daa2c788002021003c04000447607c88b023083bc6ec0042007cb83971899042aea70bea011d41d0f1850f127ccae8d841870e331c7440d181858e283abee878a2634a87948e1c725491c3083551bcb8005d01ea400f989e18f450d163811e19f4b4a087891eaa1e2d7a60d053819e1d7a8ee819a267033d48f47020470b6438e831450f113d1ff8a102232f465718d5c088063c3bf0e86064450950f044319a41cf17a3297a7a60c4a5a8033a8450d34126c62c085b825a0f34a2a031c5cc86990eb6037605461c9841315ac2c7083e453062c288aa0707281ca1e7866a4375824211b51d8a8c20c386a222006da04703b31b8a5850b4822215148de0e80990072e19bb83d561d6439114d117443c200202d1164436209a42471188b8bca878fde082d143a5a74ae683d7113480e8f9e155f50253c29500d8109b410c0b1d61a4d0815b8451181a3ce440820e2318c180860f3482d00942a74b1118396c709392438ced0539acb861c890c881458e29668cc0288a231ddca6c8acc8a86c6c60060a8ca4c801c60c0c22274437e4f85234a6e200a4440f0f680c5144952377f3c1c6430e1ed874b899b2e3031b4328fa820c23c7163966b023d583821c57d09832c301494648084263707080c60a0e2a278c6028094348180a63c8084356862a3034650888211f867818da612887211c869e0c3919b241a88c501284c01042028f1408154188084243e80104a120087d21c4c48d2d6ed440a8881b5a0851b971458e316e5071830ba1216ef0e086971b60662aa8297343cc0d2b6e7471230c52066e16f009e3860b8072b841821b23b811821b47dc30e2461137beb83144008a681474541d15d603346460834c0f103d527240c981838d22d8f8c1c60c6c5061a38b0d297a0336b8d81bec1061230a1b3100ea4208084246d031a6688912acccb8a031a50308454a002151838a1a64686051a308346a40430b1a59d4f8010d1a1c11a123476307347c40a30734a0d0784283073a43e81041630ba027403600e568200174438d324052404e6888a951058e1f8cbac82165cc81460eb5dc91058e84a8618ea81c550096ab39b01b389a32630c8bc5e808230d1855b1577224c1e84acd06a30c1c0541038a9a93da0d33ca181951935203e2e70335236a1aa83d29a106352919127e3450b3c0cf066a44d4a0c87ef0b3e58703b522ac098e869091abe170230bd80db5236a3fd490a859a955c00803b71c186dc0e802b723d4a8fc24510bc22809232b4648d4a6c8805013e2a7031480c0cf11372b3e3cdc7480a3023b527064021c40ccc0e246c40c298e54d073811e2e7a9ab847c87103a318dc22ccb6b885518298eb811e2f4a486287107c7af0f1618e60324146d9f144680c1c28453a18924243071b131cf5400711669c206605b9438f140e0e371810229382d450103ba0c874d093438c06b11ad0883274c32d08232a663bd071841ba9a11e02502605236a823083043d380c45d1318417962128374e867243421869617382a220e82813bb82f422852286a48c642024c60ea99998a1291a3d9480a5840d0ce97073011d63bc70a0834c007234a4903c103ac2110f867e98e5a0c7183d533e8098fd20051cac16ab84f5c236613f7083063766604760a9603658277ca0580ef8ec604f6097b03db031b03cb0359095918d6145606160b3583196cbac02960b5912ac0a60523e3af838b129b0612c0d2c15b51c6800c15661bbb057d8297438b12db047b06158312c122c163c44d82f3c46581bf00c61b7e0a162b5e0b980cdc27ae1c1004f115606560776063a38d0d9c22651818009618be8710129066904720840533e49a057665f502ce40e8e32407e99c162268b1c346819fc18425b715381d6a24707d910b3217a7ed073831e4e5e269851e1b1c213440791c34bb5b263032bc40e173b60766eb0b3c54e0e7cc8ec8411226267063b55ec50b103831d266053b3293a6c98e5767cd809e2e802b220ecfce023b5236567879d1c744861846547879d283e63ec5800a9881d2176a6ecf4a033849e2d6858204797ee023a41d8c1c107113a40a02f987dd98152030e2174c4e884d1e9a2071274c0f81c4147173a37c0e14391077464f0d222050fc85640a3023b41a0418451163fc6e850d1f1812808391fb0d1838f18b424d0a86016804da12101ab80dd018e2934236845d08840c107201c5268c10f19e0e4e69499183324ccc8d0f861d6c52c8a85c24651f361e6a4c6836ccc8c88d91519186499d994ec8b9912b31d6e60615f6043e03335cbc1bac0b24026044b821b55c8c8cc8480399959c027079f1b686ca1d185c60b68c480060c6870a1e1021a52ccaaf079e21345c70d332366586444d0c1c50c89990f39cac0a0d8276038d82db222cca4664f661f9849312b625685430a8e20662f98f170f4848c07475e8eb6e861021917590c847c61ab7280e921810e307270c981031d307ab8d820c28faa9e140025a143841c357879f1ea812c090b8219514c0b7431e860d059906276dce0a6871e11f4b0a047073d4b5020cc6c10f3d253c5471037c6c88e901d4136041b481c1931932233422dca0e0f9689a3238e8a38d2c011066640c8c280ed000302a6c35099a131ea153b5876aeec58d9416267033b49d424414804578c1e1b6a8060c3f29aa2a74b4f989e0ef050418320871434480045a1d1827a811c5adce8a0670736c018abc615c83af02ac24b03af30465d3a099907527872cbc14711295c208907748bd70b5e3be813f068828e8082195204a4237050bdb4d41e88a42881034442105980684ae5210052414a7094031d2194d08114a6a80f5e1ee899e226c44c07af285e1b78e9a0262164881494d8c1438e30281255ea6ed14df4204247127a82e879c18b073d4e1055808481102874cb4b8c6c89008891238b57079270b85c6e6c40486ed603221b5e59e488010a48a070040a5550d0c051d51022bc6490c211e4936b83a4247a6c60a3a5e7c9cb8a5717af12d010e20716d5879a3114062f2a2153827ce0c5019912b3313cb2d824e156011c4bd0d8a1de2004872044bcbe24b120c7115e379011d159686c00f4811b575e21b8e9707402a011bcb0b029c18c072f121c71f1fac0cbca2b0bcd9799173d55e810e38544774410289236f023cceb4a1216f406418ae8c1e25a20880d355c70aa1001d1e385926088881c54243de1638a0d2b428208828114a00c3142d293971434a80029f3e38a970b886470f48317134937cc7c300b739370fbe1158397132f1824f580944a72f25aa2a88b570d80c824ad40674a8f097240718483a31b1cad40071266be100a83e2a047885b0c6cc648ca9294811e43cc80f0f2c11095210b500e10fdf052e2de20098a8e0820631c4191a4821f34b0630c0d91d48217085e49745aaa0e2a0faa0faa98ba83ea4597a5f6a0fe80c6188b82204a744f744e74554655fcf002940220aa1e2baf2a4020004201d0096c9c742b00ca0224022012006909c244102a1ba94e053b7ad811e595821e27af16f478a0870d3d9ebcaee821f512418f2f7a3060c30835568096006a0228044025b0533d505e5e5e3378b1e0c70d72bca0c7879e5c0f9657975713af13f4a8a0c70a202c2f15bc56f07aa247cbab8a9e29af11f428f1a2c16bcb0b8adb811e280270c35118200ef444718db844dc121c01e1c889146c38eae288054026b819f1a3063d9200c4c40c4c4f16482c407ac2860f48555e39e809c10f2f7e6c31bbc1eb0b1e14f0a480a7099d19e858418e8024810d286cb8c0460b74b8e84ca123c50e11768cb053841b48dc48e286951b26b881821b27204201510a889a20ea009112441e20c2005115a20cd494a0c604355a886830c30333a8662831638b1937d851e6c886a39c51cee806231b760831a3ea226186133bbad811668698193d98c1831d62ec38628706744aa063021d2d29849102125238028e13e06802070a74c4d019432709362d6c36b07dc191048e2b383680820d50b8010a5be004812304ce1414a4a844a030058d139a27345233aaccd0c08c2368b0a0d182260b1a19d05041d3a5a68a1a2b6a664043021a2d3425206b4067405e31e3032a84192f680e5080020517a0d0027b044d151a0dd01c318383992e66b808c00b7840c013021b19b071848d2a364c60e30436b4901c203d4076a087063d597a7ae8f1410f087aaef414d12345cf097a32d033829e277a92e889d223a6e78a1e54f0e8c155e292a00710b54be55265505b50a7a852d428aa0baa1275054252508fa855ea086a103fbedc6440c9dcb6d0306a8e1a8187123caa6818da05f542b1a059d02b68971b971e3fa0545028a809a813b4055405f4049405b404540b7d82ae80ba80a2803641ab680a6e52d021281132500bd00a5021e8944602ed81ea406da037d0291a85e240a5e813ca03dd813aa13950282d4627a1c3fc98a263d0557497e6d25e1a068dc52d8a664157e915745563a0b5b40988dc60d01d681174085a05fd8156a249d02568aae64067a097680ff408fa4a63e9235a038dc48d8a1f42984118995fe60da6161398434c2a938859046e4e45cd1c904035991b98556606cae90107340086220b5040025c00f2e3000668a1000818c00a021822240905a200e8289a42e03801e8868da0510b382fcfc780d554a9a9c803882c29a224031122e0a43124512242a415141493829b9466289284082dc6859d949a9422308b45c14a4e456878800a38b1183831293d296941888c180c7806186a88c5b670121a988848802906224696dc24341040024c3d6c622fe02625250810910093d29311244a31903117f00c30d4b0136bc18c1814dce4a4d4d45484c812224b946080a1c80c30b81014638150ec0924488ac0800449111e4ec8e01481244a48aa584909024494381171922102469498fcc456c04d488c1471528a818892120466c454c04a2090c40811093029d1b044c4c892eb94446906091461e1b114b0120c49942421520486244a0400c3d58935118312189462e089a1809b24a074a449024a49052063276832d2e3923113e08869f1899580696224e011b00c302859a2448b314143048c402089121888185972951e50e4168b8960462c04453110700c468838293531d100c32c96859b948c4480889125b7c89218921461526127f601a71a9492f8c4969080931126253238d150842746c54d4d4a4874624ad4c43cd00108145142128b7180996698618621af181619b12b1c8352920818694a42031118943c19a16149c916db003b29351149829b8c344900024a4a0f206264c995000494946e36312b4d413124588906251a9688cc60a408121866310d3829792282a4c89312a6254b8af8c48ee02625261a9c8a28418088520c4a92d06255b8894909920714693212430660482281a62218e0224c45965c2002498c1c81a1c80388cc40c30c46921899c108766a528284089392254a4c4530049428615a42648911199a98949230514244024a47c81811dca414839211244b96144942034f6c086e5272a261499391186c62546ccc02acc4b484881293111a969498883441e069494fac02ec9444690625a7224e4d10785a528b09c14d4a4e4a9e881049a22427368565682a220311093c8048104d489492242922030c4496ccc02403911892d0a0e401498c00e19444090c44966688e1076e9aa10853912544989448612510c089f9c04d4e49949e947ae0189214810128c6032bc5a004069d58146652028126a5a61db8c98986254e34282921a6c30c343435159111cb818b38158981481225466250726a32d2c4a4b464466c8a9b949894c04044024e46901879401124468a3c15790c076e5a428312a60810d98941e12626254e4d4a7e14612ac2822cf6849918597299948e302941c00a644c8a959c8ac46004499127224a3428d130801662508a40048ab45023e6042776033b25a141090c449422506409912626a523459c9a8834156152b2311bb88893121a96883425216264c98d401223478a3815202796330156869922606406224a4e4522a084442906224d3128292511828dc1a4f48019946698014b02cbd05404491312254a96c88089c14a9c88208195604852044991071051e244a4c9298911253eb02370530c4c4598283111894012233124515a42c4c892db8444891216922831e254248991199408c0c2c2e0a6233028c90003196e724aa2c4a424431223871921891108d0604560188c342531c2e454831211092059b2a4081126a5189018a1e176040625486e39302270130e0c0c2e42240736049e814811a722311471521a320313c2048c202962c4c9481223315810f8080c4a903c808892130d3028d5a044031bc34c4a78843c95903ca08853121a2040c409062526233124314284c80c065a0e5660c470f1e57214c855b9dc9d5174e68d26184d3097cc55a5361466634329a5140683c16c6014d61e73ad9db7e215b3c7dd6aaff6ac5dfd8a3453ee996eeeda55afeb6ec53a9e5ed75da7d7cccc1e4f5787b5797adee4c91e77b73cafd5a2adea559eecd5567b5e334f8fd68ebbe31deeeef0fb3ad6d7b43f3b9cdaaab5b6eaaaeb5558abb7faba367bb3abcd9ef779ded75e73583b66f63eefe3ea51cffb3cea51cffb3c66ef859ad79dc73630b6e119eab1d7b5abacaeaf8ecee9791e8b52fa79943ff66aad9ee8799ecbfbf8eb98b9e3ee4a7e446eda6b8f99716a775d7b9ee7510730f53ce6ae36a072c75e775f0dab57abe779e1387ab569f4d7d5cef3f80b6bd7af9bbff65a1e3303ba36d76a0b6005d0ea7157a1e6da75b74e377bcd3cd475b3c75eada935355dedaed5ebea75d739991532edba267c99c09c532b77cdde5773baafbb9ee90474bb8080aeb3bb3dfe2a73f7aa9b3beeead755fe287fde016a774c990130b976cbf3bc396722574fe4fa35d7aed39ba2e795c035b5f398f571c7de340073772d765ed7ddf775dc75b4ab1dfdb8eb983233f56a73addcd59bec754fcff366ed9a5266e6af5ba8b402a07b76016ac7cc3102d41607306b27766207791debda9dc39ece64ee9ea934cd4c635ad76eda9e57bb3aab4727f38bf9a6bb6fbaebabbb5f37fdea9b6a63f6a4994d3369e6e4e65abbe6af5ba7ebbaebbaae72e5ee17d3d4aed5338176335ed7759dd7d55abbae2c783a1e9dde14bdcee3f6badafcd51ace15ba993bcf6bae73765cadababdc3c7b7acc5fed1669add3ebaed6ae6b77add9dd333704d0cc5ecfd9d3ebbaa9cbd55dbb3aecbeee59db1b12d6ea791c7e9dab5acff3bceeebfae36f72c71d86614d188661abd56ad1b45a2ddaa2999eab0bbbab573bcf63799ef7b56aab5bad969056aba369b55aadea85ed75d774d8e16c79b4353dea79def77dccb46bbbb8ceaedbebb0bfeaf2daebba26bb6bd7755d69ed6aed0e96d4617357eeba765f17ea74d7c95e6b4e6f7ab47e730ed59e9e9e9e4a3dea7577adb5d6fa55efabb5ce66b399d7d3f3bcdacc2cd620d59bf16ad7795fad9572b737bbea7595d9e3611d6f7add1f7775327bb5b6576bed6ae566e6d5ac7356afc6eb70327bb3bb67f36cfe5c5d6b27f4d97675d7d4ea75ad4095a625835b40ba55d7ee39eb57bdeacd59bb7a1df7caf35af43cb13f6eeefa46ed1f33ddf5c5cced796277532fec665681f9ebeeaf7aed795ef338724f17f3d775777b5e6d8fe7f4bc5adb6b9807f3bcf6bada7173edb86dbabd1c8fec9edd9379c562f18abdc9cc2bee15cfe6e4f69899c56231b358cccc62167337cf669eb3bde65a9bb999767783dd6d63f6ec39d9e355b3b87a62d7cadcdcdc75dd85412d764ff6ba99bdd93e80ba67d87673d7cd6ee6caccdc7db4d64aabcd6c6666ee443126923151449ae3389bbbabf5554be866afbb7a9ee7795dabe7791ebfe69c73f638ce10c5d80c31479c9999f9587c559173b872cfeeaebbae76b5ab5ded6ad77533baee2b2116ebc1e3ebbeefeb6e6fb6e731b3b84eaedd5eb367d31e7b9dc79599676deee6eeeaddbccaaddadddd854d7bf6eceef62aed5a3b8f676df66ad7755d777f1f3777c7b3eb8eb97acc5ed7dd791e73e7752f8f3dae1d7377d735373387df576bc75e58bb769ee779aeaeec79dd5deddad5aeeb0cc395d7751d337377f3e4e97137d38f2965cfabec3133b3c75dd77177dd3d6bad97b9ce1aeb6ee6aeb976776dafbbbbbb76ed5af9e8eb3c6ffe7c1fd75abdf9759e4729a5351efd983dcfe31d5efd5cb5d666febc1a355cd4f3daf33ccfa35e0a3402f0a3837ab406877a953d2f8767d479cd9ee779ab3abb6ed6aeab5d177675765d7b1c5214c4dab5d6ead16e8fb93deeaeae3cca5e0f0133840b4ae396009392199466f06630e2948406264b8380130d3a4a3210714a6284690911189a8ccc905314831293520c4c4a88d87098a06484c98906d10c1f209f19630c488cc8000311272434148180520c3f73861d566282001126254e456050820449911c1612a5272524446a283203cf2b024a9010894012231188801224b3f3d092198a383529cd60c4e93b0fa0a1e9c756c3114392224494988a2c9941c90934488ac0a004090d13986428353529312d9941090c44209ba0f4a4040625a6a123361c262c8141a9094806048c30293df5a0308403870931c8e051722ac2a494442902448a34c500831211254e4b24c004434f0d4a312431422489912232c00001082839c1a6b3538312264e3b478ac00083d2111b0e132e2b32618888094a478a207900910824312243531119ce54c4a969c6d8349bb1094a9430e11c81a1c803902051c244e384224a4c3812503a42c4a906a5243b3b4e4a1198c99a9c9a8cd4a094b3e2a1244a8c38c150a42949112627224e4666984149cd874da8c10804949896581a5311252430d09e9228d1918788245162a48949e989480c4994962c294244290245989438351171aa4129e7298912057241691a85eb1718ca8b828a828af2a256505051501d73d48482faa05a5051515d94f70247414151f185a819355f505095467d0d35a3a0a0e80b0c05c582828af27051157c216aaea0a0a2a2562f44cd28a828fa02d4848afaa0a0f885a80915d52f40414545d1f942d49c2f444da8f90247413514144341414145752f444da8a87e81a1a0a0a09a46ad5e602828ef05a8193539aa7b81b9a3ea0b1c35a3a2a2e80b1c15d52f44cda8f90247cd171ee03d319979ced05484037772108bf57a966506aa177d74af9f2292672bf97de4fc8ae4cbefc8b28fc4542db5df5c6939eda638dfe7773e188a1bf802e2ddbb37c377e15be1596fb54858d7f82c7224997c9a77924ff37adec1e6c95d5dd3de238f78678d67a3d56b5e904524f666c6aeb52e74c323de595f91e720fed836a1cb07c9b16bfcdd55927796ad5d7bb5debd3efc14957c6f5959d7f8a185758dbd4f962da32eeb2139c9cf1fd1902c5b67b56c596febe02749bb9c377c19246a05971928b4650b6c917c278b7f18e981dc954796dde73f9236edd2bc2b9bd3357e8d0bcef02383ee8acce9da9cefc600e7d9a714ba949166fdbb560f5a56dbd289def9d6616d0b4f2f6bdb177e9e674befad7b5fd8b6ef23e7053d92c54f51057b6bd7445b8a6ffd23f98a24389b277571d7caef4ebe21c9d7236b6d03cac969dbb4f4209db3457e3bca94297359a4537727ecb6f769cbefce33b922cb7957a7227b336578e959f4e91afdf777edb32b922f93952ce75d9a65ca9429733db274a297dfb6b3233dac6dcc7c73daf64b0fc446f4d2d2e782b33b0138c3c887d5805144b9ad3b0f36e7e079a3fc6ee93191377f5a6c64d43a8a42070ee25b768ea328a6f806dfb6e57ce95df04e5b42dda7be11609a779e056b8d60187ee25375955c1583a9bbf4baf3f42f36e2245c7a6fe6e04bcbbea577e9c11a321bcddc14c1380f4e7176609c22c750202dd55c8ec1542ddd172f0ccf1c53cc97cbef49c4377e6be6a8ab908a3e405e7ddff779fd7d747e35d7fcca09c8cdd408b0025377def92147dd73695efaf903d849b9f51d99643cd27dc62dbb979c03aea292bbcd57898d9884ee157e14ebe0f3ccd6b35250826edea76a6e51da06bbf53843c2184b24b7bbd02d61b7e41c0c806f525e47ce285dab571acb19e5d6979c835b8fe38ff487084694200325c8022697bb799f073d926f93cc550ff480c40d1a48c14d0a4ad06d7eaae6c65250fab6fa540ab7798f9c4ae186a36a611ec702fda99f5d3c8b3ba23ff52b8ba36ac1fbb438cf0a31fd29bf5b7255d57cc95db80838c0e0ca0fb2e8000eaaf8ad51427049010630e08497100ce1c6373e8b2d3c97bbcd286d9b71a794cb3d501dd55d31004680fec42c30e6e65caeb2401557e8d6a857adaff5dd4b6a6717e656db79f52b9bc4b34790d824f770b77ede3b25eb1452ae67af7cdd4ba85b76e411241ce6aede25e129a4dceee504aeb7b24938ccedbc240190aaba9dbdd204eac6154fdcb8e2095bd6703bfc487e5540475e6902c5616eacf3122d53e65ec9e9f090c4942a4c32aa7c604bce690987b9577237ae7822f71400a9aa1a723c85941bbf9cc0ed6ee0303796cd71981bbfc4ddce969c83f946c95515d0e13acd7b2567b305089cf02097bbb16d02f5d91cbf6c5bb5e5922bb63083832d363086542e77637148cded77ed7900649f92c1dc7a66a349ce49ce0b763849be1f25629d0f82b4ebba0e64b07154dda15a67d11a4e36eacb07bfef0598df5907bb831d39cfe28a458ee4477fea3bb2f5dd7a2a22350b0878e9c7dbb44552d183932cdbd61ab2d8750d7adddd1d5946815dc8229b507587facef2402f9c6c442f1f04e959076940caa80cdceede3d5b4671e07696e9d77bd4651148eb7a96459efed4b74819fda9b25bef213515a075966dc27aeb06e01bcb5275af220170d8716bd91afda917a23ff59fb8027d674b160480c3c8b7ef38ecb8b1ce7a59bbf52b11a97f445924df9a2ca3925a977e8a4066ee78fb24159ddc93ba4a03dc9e02c62db9ea561db7beb21706d41f0541e6d6f768dbbc95b9dc7ab0c339c59e5b425daaa36df4f50ce6720f148daafd8100a407c12c5344a22f40434a0641a57615ec8298f22e570561830806bfbbd5e52a207ee0859475b90a8830abb904f88554d6b599c4072e6ca9de1c0e9a2b9192f3825f484915f82ecd32220775c8417d26e71123570161c52debedd3cb55404c71cbeff6fb211bf1fb221b91adcb5540407179e57595f6e4cfc51cc4efce49c705e461e42a295f2e5fbe7d90864bc65c2e67c36d3219fa2922f5595ca1769b8de6e51fc4b8332ef5e8e7c12eac6cd4ad404f83ec3ac93c926989cbdcbed3ea7a07a998f4ba4bb30c907ae98fba49e6a092fe3be885958dba8a40bad71f358b2ad0af7ed4479496f396f4f52b9296d4bddf9daf47f2f5c4a419b7b3cc41f495fcba3693d42e9d555c81c95cfa2693d42eb59383fa9e88443fc5156a975ae6a0b6df6ad62c2037f8f20e4e11a9d636aef2c10b6e628a2b50243e8b338cf5dd8bda56e614e9006aa279ebbf6d5c054496dbf7996ccb79655deb5ad7daa76bdd91309245d90f512e57491143bc5c25c58b5b44897cfaa7df48e544f2e99af8aef503c61016d54dba04f8c238cf20a544ccd496e20ae353bd95993273100fd180a71223570941e6cedc7d1f2422938c47e8f99633d797ab8420c2655b8a48f54c3ed5cbaf2490b164a3b29e06a475ab5d7a5d3e5f71856ec965ee11a5245f720231cecfcb8d833fc5a52f8d97da1c92bbc633370390679491ab7cf872bbcb553d887199e6cbacf6b33eb406d0c7bc1f01f8fc029901238b41a26ead761e9ca48f79bf49ce1b35670f0a7810f9c28552e67e87fc236c97a02ebfec4fb6dc351eab7af872b9aa87266ef9baf5352e57f520e5d6b65170565148d4e5ae95f546dd095211a96b5148d4e5b67902b8a13b9fac2acceb9de6635eef9efdee7c47cecb3ed51e19fb089000477a4e520037ccc93e4066c0e8bddff6eb1a3d7ded3c15faf447cd6da3f9e8d353afec7e847affdad6d73beaa38e9a0c18c1570f5e5421515fdbca79a7fdba565f0fbe585882ba951f0072837cb9be9a14c054ad952a81dc361264db18de7aebfbfcaf6df4fc70cc9d24d3bcfd9eb77fd44d4e926f25b98a07309745faa3e6aa1ebcb8f3b56df5f35fdbe69d6f11698697451fd552fb3559bb361f45e774220a192fb7de23622872b91b3f07d6b679e73bb97c90d9c875108c0aef229983425b825feaeb1db4655ff0f3215942dd705e57d90475c1d7b7ce6cc4ba8b835cb6044f2f9e45320789b60c4ff94e726955a64c99316e7d4896513ee6ad3f6a90e4db228f54fb34aff7d27b5fef544caaeff3053f492afaf0ee3a48d280dc29aa109e396886e4d22c73bfbb485abdb73acb96f3b2de22cb795b073db29cd7bbf82aae501ffea8a388b9f5de41063b645105f1a02deb05693f7dd775979d22907abd83208b2e5b465dd743f2e9bbe141b29c173cb35168cbf0488c2e731078f0471424293d8b2ebb44af7724ef22597aa76731a9de832277c305df3a7f8a2acc3237b4cc412508be3b8b3ff88296198875da22f9b2c8796fe638a8fb2a8a353d29902715975b297d53cddcf57668e27aa7075f7d3ea56f11483db565d7d3d7537ba4edd22c732959c923fdfa4996fd797a4ad5a79d08a45fcf2252dba5a8dca525d5f7db9651b79eef51834c8970542dacfebd3fab28d1677133775bd959c5978f34f29d7756c1417ca63f6dcbb9e5f26715fde1973377b97b256717369a5d382869e6aef72902a9f7baf73b7b847ee62e38c34af6a99d5d38887fd4501d559b7e01f2a402792e3172950e5c6e54ee822ff62967eeb6ce94c8e6fd8f12c5de1f2911ec7d1925aa79ff9488e6fd1a259a795f88128def1751a2d7fb208b2ab06c299e75d729d97318f964f627b0e37c249fd4ec813efe453ec9f9139dbf6e433ed1b1389febfc89cd653c463ea17f123bcf6bc8274016b773a03fa9798dcf90331f8b9b711d9bc3753eb3381a8de3c897f02733cf61cac0b1389ce37e9e23e3b89cdf380df90408e83c1667ed772c8e86c501e0b3a203ddd2388ec5f1dc1e8773a03fa116475fb33908059d5a9c8fcf8164581cd07d7c8edbf1394ec6875ee3b1381f8bb3f1126eed798ef3398fc5d1b0dd84e368dc048b0b9a617133fedff80c8b0bfa4d38ee37c1e26e0059fb1bc701e120872e5482cd418846bb8d124a388ee725581c0d051c3488d21f4a630624c32707c75a1ed247e787064dc60e4d076776aa43673f40327272782c0d12c88776193e38403bb41d9c209d9c9f93744683a683c333b311f1d0f0c9a19604fad9b1d980743e74222ae344b7d96c36147c647ce84564110f11d1713f27229ae5fc0c1d851c146814151db7f3225b116d4787480611450185e3708e020a3c346cb60fbd88367b918fcd66233a0e87c826e33928fca070a3e3766e5484a3e8389e174d138a7c888868343e749b7d8ee3ec734c22148ecb390a1647a473a1e3c81b9960828d071d87731b432fba711baf210474a3171d27e3451387cde24e38e1382cce86e3b89de3b0b81370dc048b3bc18417f10cd5b038007cc68c19ce874e64c3460925d4a8711b368efbb90d1bc7e59ce8398ea3cf318d8c8ed3b9d104c0858c9ee338f242c7f9bce8048bb36171361e14f4211b1637f4a0a09f70dcce83828e93711b37a18690c5d56abf71e326bc86d06b1ce7f31a1657b339cce3785e7bd171345e346d44168703c76d1657643beeb7591c0edb872c0ec785844e749cfdd07140cf617128a07000585c90c5057d860d8bab51e3411667e333663ce838d2bac03fab07595c8da0d7380e00bf65817f56373261e886c5d5b0b81abf7192c7fe30e1433fe29fd57f1cedb73814765e6471ff093caf59dcce2dae769e13ce731c3d8fc5edfc362c8ee724799c8dffd817f867b53a91c5d97e8ec3e2862c6ee82700c0e24c18a24faac551b540dff3faa1e36858d990c5cdec38f3d8856ed8b0b8a0f13566353e3b0ec8d66a589c0cfbf1b0d338cec7d6c03fd62ef991f19ac5f97c867d091627c3c7f6581c95f71cfb598bc3b14c739bd77976728e739c8e2de29f9510ffac8e7bbde634077148be79e4ccdd19c9b71559b2cea762d27c397397f5167d44e52eeb2cfa60fdfb51e390b2cfc89b7b24f81519fe881ef551cb98bc77bf217151372aef2eb2fc2e5adaea33776bee82212980a9117cf8d6c11982e4cc5d168770990bda23e0674896a0a50199ff3effd9255ad2fcf7cf9651779e2f6df5a8dcc5e52ebf450e09639cb9cbf73b8be46b4332fde9c7c88ffef461e4487ffa35a48cfef469c8d39ffe0c59a33ffd9114a23ffd1759447ffaecf3d9233377b9072a286ad5424e80a7444f5eff79f52736f71ed47f32bbeb36e89fe4302ffb8d33257a32b3389a539c3fe13978fe47899e083db9f9ec7c19257a626371367fbd3e9bf98bbccd71361637e3f3d971360ffffa136a71dff7d1e2c6afe871d4e23e9bc33ceefbce672e9e3f52a2272d8b6bbdfbe0cce2ec573d9ff15e7d765c7f66715df7d1e25a1f8f9b1dfc937a1c8b83c14e6371f42c8b639d048f230f5a1ca5c781a7bd661c1f5a5cd7bd6571d4e274defa483f1e177eb4b8aee6b8ee3f9771dc78191607833d6671b1af56dfb138d8ce63abd8651cb7ba0c8bdb61d19de3583e36875a8dc5d53c163bad2616b3ef69b5bea3d36a812d16199bd9ccd071d5ac960dfdc058f722bbb0bfd9ccab3f7235d2b1b58a815d6833b3f9c8d74cd762b12838ae6233e168c30a6733abfebaf522bb18ed6233facda03182fd22c1d79891d19a31a3660652d6cfcf71fd9f1f968d8d7d6dfc5e0b69d038ae751a34c8d5ea75fb9fb0f59fae563b8e7c6d46ed7bc5c6dbd398cd9cc66b1c67f31a3f3fc781ff91f1f31ac7b1ba193340f2f6b52ef65acf983183c671abd3b0b8193366e86bc890a1735c781dd6ed7f76aed36353e33fc7cdfe53ab95701916577b8f8cff1cd77acf71a3f5794d4dcf6e3f4347e73d3b3ba75da7e73ac7cd5ce7fb8c031df73ad014ca798de35eaf317dde53e340c7d9bce7b8ef3fb59c1cfb9c9fe71c473e671e073ee73268b4f7ec589c8ec5e9bce7b49dd38e0b4f9bc77597f1da71e36bb38419c7ad3ec3e24a98716b71257c67e7b5e3e8ed71ac03591c0d1af7b1389ac5d15e53f31c8bc3c139cde2725e5373da71b1d32c0e87769ce3427bc43ff33eafd113d25cc7e2702c0ee73a0fc3dbe35ab71647d3737b1c6897f0cf3ccd6b1cd7b235f0cf7c0d8ba36173983fe065585cab7598c5c10eca38781ccbba005a5c0b7c8ec5b51eb21e1e475a16f8673ee7b898fdc13ff3358b9b117b0916672dce5e06791f8bebf9adc5710fa4c2e052e602430062ea465281c314191ce10b229e50717b42fe68663ffe99272deef63696f9679ec732fde1efe8cc9e637134d9712c2e0a0522f041172f1be8c01428b8cda28ab8218b1f9ec0220c2f19b8cd8e9bb132fe999f599ccc32fdb961cbdae5e35e76e49ff91bfbd11fbecd71d4cac03ff3361617b339ccdb9399c32ceef51a9b83d0ed093d8dc5cdb8feb2b8a824ae24e14a1264c0f841106e94b5182302247e2882cc1361dc9ed0bf8e1b6d11ffccbf2cce6599fed8b065d1e5e35656887fe6452ba33f7c5cdb17f8673eb438d0e650bb3df1deb2381d256802081f006306633c7063d91c7e7bc2e3441146b0822ca01cc107b727fdd5719fadf1cffccae23ccbf427c89642978febecf967beda91fef0f95114eaa783cae42075b9ea76075f20c862db23f5fd4996f5f3e051dbcaf0258c85b695a12d71226841108460636313bbcdcb9beb282a3a93d92dfa092f773c3cbf47db68b0f04c3015ce6fa16da58d2d2960041dbcc008b1580ce7b197364f21853379dd144e38e14c66f78403e0b7f37fb40d0683c1ce64e7c28e74be0b6d2b63b69c80069cc0c207383838383939392f73bcbc0100009cc9ec02e0f77c216d2b61b6dcb1a58e2d796c09e3713e03da561e1de7a1e779127882843247a8410746484dd9d8d8c46ea3c363cb1a3670c49829b1582cc603b3e5aa0542b8e00b9c97b107e0a5cd737070705ea2f0326868e84c6677e8a5d14b1b26987026b36bc2cb1b9cdb726545054f80e03961821b0ca1fb32842932d0e1b1652d021756c480e865ec395eda9c46447426af4bf4b2e8259090d099ccaed0cb1bba65cc1022a0493c11c608fa04470081cb0c820dbc4ce178193b0a2f6d6e7b7933a508e2860a4c271da81a1355458b0f9e3461224c142b375ec60e8097363fe1e54d9428ba0c8102102081040e88252a306602553ce01245d0cbd8875edadcc6cb1b21ca5071c44e105bb078a253430f3b00b1046d25022c42a0a0c6cbd86b2f6d0ef4f206c7c3c2011d5891b363cb6e08304404b1a363cbca03106821860ecd963dc68b27b4fcbc8cbd849736a7f1f2868663cb4ec117219ee0e4d8721e61a58a1de4ecd8d2c6011750b1a363cb265418d0c00b7a5ec6eef3f24687664b5c09721618020dc7961438420ecabce0e64b4d373839b6a4402e8a0cb6d87ca9c9e63787e5ecd872024ebc20ca0f6e6e6e6c7ef31276f265ec3b2f6d6e5fded0e8d852024e84a1812a6c6c6c6c469a2d5725d0c10f59d0bed4447be1d8b2cbc11333f882f3a5269cd30e63e5d8b2cea08a1c3a40a39d09cea5bd6c8a7da929769cd35ec26ef332f69c9738bf794903696cd95f58f1f2050ece99e05c9c974db02f35c11e3bce37dab2ab8480055c62b118ecb155f8b2258f0105052e80c160b056e89d2964d9122a0961f800e525ebb097afe3bc1c1f7b4933f31e7ea93b93f7300ccf64e786076d0965e507337082f5a5265668cb9aeede97c63375f73ccffb674b5c942fb800e3f57ab1feb2a567cb99aeebbaee2b5b4a608b313c5c61b158df59b6ec6c09b66c590394237431c6f77ddf4b9acb5eb6eebd5cbd7bf98d335bae8408e30460f4a8b1658705044860c1f7a5a6cf3563cb3ec2053ba8e01347d096730a0f24b0e1fbbeefe5eae04b9ad7bc6c7df6f20332bece34fab065932a0cd080caea4b4dabd3fcc7ebe39758677a7d1cc733d9b9e37bd872025e8290021ab4bed4d4faea34b61c6de983f5d797e899587fbd5eafbb6c29811fc6786265b53a139cbb7ad944f3a5269ab7beb2e5cb963d5e322dd1b3bea4c299e85967b1ce64e7b22edab29301144804a1d53a139cdb7ad9347ea9693ccd5b2f5f77bd1c2fbea4f9f7b2654b962d5b2f9b98b46a2e3d939d4bcfb444afc29798e85538d281d892c6400b292d6868685e36bdbed4f4fa781a5b527bf4c39650525c518224c6717cd944bfd444fffa684b156c0f1fb6a4c0124e8c2083d7ebf5b26907fdcb9648f647d7f83d6cb9cac10639fc704b4acf04e7d2974db72f35edf8edf425ebf725cd6f2fc7ef78496dc9c30ae91abf65cb3a05cb0da8dcb2e97e69c79b6eb685aef1af75e1e591650093d5ddf12626b1bbe34c70ee0ecb42d7f8afaf3ef3f0b4eb9ce7323ee34237e14537ba8ea71080000440870e1d3972e430323a93d735420105148a8a8a00008033795d00bc0c7a29e3e7e7e7a58d9725d0a041e3e58d97336ad4a8f1f284973520a033995da097385e0a050505bdb4bd1cb261e34c66d7c64b229bcd8603078e134e3893d73de1c68d3379dd1b2f855efac89021e3e5d0cb9f124a3893d92de1a5092f69cc987126b33be325004c30e14c5ed78497402fefe37326b3ebf3b246ad7626b35b7b69c2d0d090909050ad7626af5b7bf9f3528724c997345eee587b26b36b5fd678c9d3d37326b3db73e3c699ccee0d1b366c040505010101d5a87126af5b83060d1a3f3f3f3e3e67f2ba3e2f775ec27070705ef2bc8cd168b4977f69939393f352c6cb1b1d9d33995d9d9725bc247776765ece78697978ce6476795ed666cc9851420925c8907126af2be33f93d7fd4bf2650883c15eda9738b1d899cc6eec65cf4b9a8dcd99ccaecd4b9f9e9e3379dd9e973a2fbb303c93d90d5fe6dcdc9cc9ecdebcecb1d6922479737326af7bf312e725585353f392f67236337326b33bf332e7a5ccf3ce6476bdff4c66f73c3c3c3b3b3b3a3a3a393967f2ba39341a0d0707270ccfe475c397b39734e338be94bd7cb95cae97dd4bf1fbce6476bf97b0972b103c93d9055fc65ed6cc6633209b973332d999ccaeec841b1b1b9b582c06839dc9ebc2baee4c5eb77b595363d1d0d07c334263f87abdc6972e98288ab2d0964d4fadebbd898978bd33795def25e8d362168b55bf9cd5ea4c6677f5aef14bafa86bfca6277abb373171ddee4c66b7b33abac64b3b5e681bb565fd0b5de3faf9929edfe20aecc4ed6c495f2d0d48bfbe5fed91aa7b445944ea2815660a4800d9a7e4aadbe739e79d6477daa3ae5528be2d2197b10bcc0a99971cb631313dc92efdd377e9999cbebb44c7c85d7a2759c95fee3c9fc7f8ddb2881249494939e11903deba3bd9018676eb2ee584cb54e56e506adcba43c971ebeea42897cbdda6ba5bf73e8f91be3f0ff2a41ab96a0a8c5b0404855b4fc923b5e8f2188b6e7f1ea12fba2c26155d6a9776dc17788cf372d5940e777ea3ec4c89f8560add7e47bed03826575dee819a51b43b1bc654e130a5ffb6d1d33ab68ddea76dab4bffb58daba074b9f461dba86d754fd4b732bce577e9293dfb507b44a8a9676b01f2fdda56e208606aeccfeea8397b80ec538edcb5f2eb9f3e1f64db483f2fc84223c813032357419172b9ea89945bbe6e1f0097aba4bedc16916618e7b94a0a8adbe7dab6d5fb1fd822d28a4e5148d4a507674849be2b725e708af420259de61252ed5a3d90f1d24ff1075f7a1691b86b65786767cba8db7d744596f596f54ef47a6711a9fb5183208b2a78b6acd7fbf71559feae4ec9b22c4b2ac392b286bb3a776df523fa914bb84bbf22cb9c5b0fced023f952922f8b2bd44b3b72895efa4a72d726b5b56bab497f0079ea307295141320cf1d46ae92b272f9d6da5686b2b695b5dbef03b56d75fb63dbb8ca8995db87b5ad6f9f3bf30b3f8bfbbe3fcd6e09da2b38272f5cfd3e857363fd09e79635b7659778ca942973afb02cce094f9932656e9fe5c6310f55739b9add5616e7e359dc3b8bcba916279bdda8c5c11ac7fc14ceadedd838e6f9512da8af3d291b5841e969ed521b4c5d3a2fa59301af71b9eacb97cbaf7a6ee2f610256e9f7ee172fb9492e5bcadb35e452195be92f542b745df9a2ddab568eb347c484f41727ae201be37f96c93efde57625287533cc0a70028f3f6bd099479f3bc37f15cf8dee473e1fbaa4e6a0468c4a5c779e29728979e766fdd9bf9cc3dd2c907d5ba7567365addf3589862bd9b371649b5b4636a195b87b23a15f85cebd6bdfe75be5a90495a177c480269b95e451ff334e145f20812f0e1c553d1079904bc781ab28cba33f3afd747728996292364dad79179174903452da0c8e28b164c5c9fcb555a48d122d78520497389a227ae4290a4812e92068ae28fba13576292782dba5ca74e6a11806f9e75f2595cd4ad65a1ac3e6f9d485e995a8516fcd1ed2cceebbe3acbb3505d77ef38a8ef9e9dfacdfbd46f2c0bf5751e05bbd3c00a357eb8b186ced2c077dde7b434b0b351556e779d65fa13f54179fdf100acddb67e1dca85db7800f150b0be79f826e26fce620b370f2d4e76d13b8b2e88bf21e777be0bb82637db42dfc61f35b78d6f0b4d701ebec9789cb3d802ce437bd4a20b23164d5c7a2c94b8f49dd882ec330f49f12eb289ecae77a2026617ef912dc83e6371aec3ce6c145ee738d7eca2c5c91e9e6f346493f0b3eb904d66971d4636c185979d459651578c3bbb5c8585940b7664921690d6ed0e3b084e5101aec3fe229bb8fefa0c89737de62389737d3c8b0a907df6a38691b8d7751e9251771576b85001b8998bc7bd4e73165b907d6671e3451db2090e277e3cf9bed1904d70b8f0e26dceb71789cb398ee7b87fe73364139e37f99bec1c07d584769ac38ebb392e765ccdc74e6cc1f59977a20be3651617757b1d87c4cddbcb76640baeee33b6c9f89903849fd926e25d5f899e6d41f626e15fbf2171e25d16aa89cd755c08ad93d9c3bf2c54eb367391846add4666a3ce9642f7ca94eba1856addc27b9f215f1f49f1475424e74d857980d1e2c28b168aeb549e3d82a49bf95183b614baacb76cc922935027b3cf58dcbc59db84b4389ce3c6e3c4cf5ce71fb97a483a995de73624eee636073d1eaa5c9e428ac74395ebd520cc652aeef461e42a1364b9f5e5586f822a5a76b85ebcf0d2c4f5a2c4156264218505972cb86431e50a2faee87245d51555ae905203302e18861d495bd92456ebaec45c0eb312733d0e73bd004855552ea872d7fbea7a1774851d49ebbe22699d0572bdb3ee77590472e38a2772a10824005255d79b428aeb3a16376f381ecbf3d239ee76ea371e0bf57a1d76dc8e9dfa4dc742d11e3ec742d1ecd46f2f0b656ac7ed49d4edf5d7613fea496671e767c8a9df6644124a3cec38166a3c6c1c2d9468c3cf485cd44db6b4e31e2979de28b92a0a2f77cedb0d39f51beec31d37f51b94ebe1676e43e26216cae53aec38289ac3ecd46fe26becd46f33168ac64efde67a689dbc44cbf4a7e4aa28badc699d2a5371a79d619ce296dd952c170977b98faa72592201c28b1f299168a7c4bb2c14d13ad9717331257afd271240fccca75c1f2d1497a5f22ebe7e250a89ba5e678f1820eaf6ea9beb156afc7033971b6be02a4bebee3a94df5cf75e2eb99ea575b68571be7ce1ce8bb689f89963da7ba2029e135b08efb238d7439718de447d3d5e41c502662ee00cc1d81fb85cf5022c6e67e072550b4e706b97aba0e801102727636e19d584774b1a7e70c1e5bf660846fac4e52a27b0dc09c5e5aa1584b94097ab5610e5f21455684901e62ebdd01a8381bb04e5baa513175bc832704b272c1900b9b8a5d30e5c74b76cc26204354ed0e5964d5aba5cfe97cb8940ca5cfee5b710e0d2bcd3aa00be7bf715d934efaa658fccb7b84a055e5ca7ef2e71992bbe23bbc5ee3659aac0d7e38364e9bd53810ac4b8e25b07bb5623b54ec5b398248a3ebe879f64f81629bec524d6e7b4cc41b36cdb7a48967d67eb89ff91a5d3bc63d46982b1a600ccf54ebfd0851750c044bdddaac6820b56d0da175a13badd59e8ded55e90a16da58cb70869db8aab9a98723b13ee96a15bf29730b7764bf682a8bb95e1056afa6ece39bd53efccf34edee5797ddac6c477f29288dcbed7e709346d49cf4847e8859ce9e75c1d5c912505ae775c9326501f54fbe853219f2d3d1fde6992679b904dd2837385f9fef46cd294b56d65f3488f64ae424194eb91dd1ddbc6debb831e399330c61897c5320cc4f7c859e6b29863207ece863bdf740ceb0ac81304633de571acbaf31f0aa4ee7c087b00b69c608a09c06890c3288ac3556e77c5a5075f4bf376d3769f62527ddb32044cdce96336256949dd1577be22954d51779e5ce23265ca74c7c4a5209072c9dbefaeb84df2dc29aaf0a718b54efddb6fb29c6d694066396fd2a49d75022f08b25ca77e9ae4a52479db09bcfca86e76980f545dfa965775bb56161ab65ae1a9b8027dabcaa59f41569686f1963597bb4ead56eb473dbf97f31e996f7d5e7b22d2d29c9fd613919690e6c183ab707a07bb4b37591dabfbbaae29eb1d82e4bc9f5d14691f0073e95ba75dfc40974b2f86e143d185e343045d3c349d9d0379e9ecbc66169a28f288e28f9a367e22edacd368ac1a9db6428746a3d168a40e8da7739bebe8ac603c344a86c6138a354770debad0ad117de0bcf52a26d1b7661e757ba523fee6e24191a429d136dabb839f88b4148639a2d509492620e1cec3d781b8fe3ddc095fa1cb88909c9746fb518b24df1cda43da8fda7b783b90f64a132fbb78d0ab33b29c17e72caef073c5e390b399ec86eca874adbb0d49c1e8da0c59e268c8123792256e7654da362999db7d5230da8adbb52c0d08fd11eff3f42cfea857a26de2bb83a228bec54f728e53bf3dfca05ab796bdc5fd13834ef1600d45319cacbbbc26dae67a77d0e572b9c056cbf549bb5c5544171f189325f701291fc82d318615861f5b241390560bfcf756ab0586618be43bba0eb2c290e4db72cdeb3ad80a5dae157eaecbd292c4cf8b762ad1b5ee3f59c36f4f5a9bfb499224f93667487e27a9bcb7c2af1391bc2a2c60eecf9dd66ba26bacdbb22593db3ac89d42ee205459c39d3f09e5b72650e4ff1cfde28329b9dbad14378eef507efb3f5bd67b27f956764678ffec122dc37a8ba407c9b286cb3a8b436a9705a47529bdd744d919d15dbad695e1ed6696db4d1bc6779799a59b4cdc0e76bb8f3fdfee5389770f3b85bfab620be47f2ab6f0e3ec6fc977f6885745eb5a14204faa2ead2ab7e29cffcd1caba4aa4b8f43967d69771d67481823ed42b79c4257e8b248fb51331b0d0d5d16717ed43843c218bd0bdd29ae80f3b2af387da0709983bea8f6e191517792b4bbc812e77dd779787878280fcf411af2f0fca8c7716767e7e00c477267e72d22edb85c61183ea4ca32733e439d17cee5aa2294b8204e38fbae8267bf47dd49bac4bba817a1d745b138f5f57a89487724f982b4708af339a2003a5100ddb43fbabf3e315a39bf79ce6f727272725a39d7d1c9c9f951ffe00c7372722c2d89e7e179c2107cbda6159caf761e7ec776f89c97b4f741d1073d6dde9c7fd40b9d4e5ce1e7e63abfb94ed93a5e4df8eaa4bc7474421d1d1df2d5d2391557f8b93a969624fbebb2bf0ee6904cf5e6fc5561a1c744f87abd5e3f6ad7f558afbf2c2d697617e822c3e790df9d55da16be1eec98ceca4bbd48ceeb0a5d245f1d7269def0221926cdeb3d87e4eb59303c8dc4f911c521f9cec895155dab97915e96aed5df905d94959712d7eaa424d56e6869493677ddc67e64ba56efb2b34a8cde72e5e5d67f64565e60e4b461ecbbb2a26dd363a2869c368cf37a59dae62a3b2962da3633d36ab5c4b4adf5dadd5b5a6f11a9f586a26d738e1f5f4e2be378168f7a649096d3ca1d4f45a47186e43bda86a20ac83a8bfc243d30c491e4d46f64f84dfd6671e4a15a376e1cdf77b08664bdf74db00b59ac1fddbdd3e6f946dda4efde55f8a8179e2d717722cd1fd109de75f02edb45e95a055f0f82e0f43ec5cff9699dfaba4e059eaaca0dba5ca5c49825a85ca2cb5554609600736d97ab96c002460928ae124c2831e52a21e5811c5c90c12f645105d75f9fa4478a241310f1df81d05c3cb7edb3251390ef330732febb4863455bd63b63cba579c57fb61c5d931497a02e78f00b5d245f11fc050fb24210fc517be20a3f17b4b4a4d6596f592aa66bf5acb78c681bebf53862cc2a5dab0771e695f157ae5c19a75d9d83d8301ef9ceb7a45ef4169c69c3385f3f3b579ebd32f51bae99a822c511b91b5415e304114fdc9a48001775f3390e4237284237aaf92e4adba8176d9bd788cbb7a4636e6fb9f5cda5878ae9e92d9d424f39addcfa89c53614765ae914eca472f996dfadaf6da379bf32f51b79a679b605f27d3b0552366fcc77240e03cd77e29016ecc953b185936f71007cebb123fd999fe200f866ed477f266999feccb76a944edf30c28b4fbb5cc501305c97ab38d0c4e5dcaa0a575529c799378c7db98a035377bcbd7a93659dfa6d15ae5616b73ad46a4579a855a1e4049bacb6c98f9cfaed0bbfa9df6a0a9fc57d875a9d1b4757316ee57f7489e228b90a8b96ebd4b30a5de1e7523babacee340288a58ac74655892d57aabcaeaba7f7baaeebc48ae4750a40bede848955577217461f6e2077e9c78b65f8b6854db43a3d504e4ed760bcbaec73e9575c3daf0b5b44eaee5ee7719010dd00ad95ec3ee7aaeb565dd7d51c7192606976f74ace3beb3d9b536b370de8d9a8a3937ea7dea977ba3afde7d153ef9452d0eb1054f6bc4fefb4fa79fbd2eab92a09105cf1de558fc58f83f85692ab2a1b79e7776c34ef095debaec415ea5a7716691966a00c6f17e63451ebdd75b0d139e87b77a0b68d5dfb58ef7ebefb34d1d73f5f49bb1d11ac7fbe9727dcee34369ab76391395dfb4e39e0cd845f942bfb4e5bd15696ab92b072b92a892b17464e96cde9da47761ce491f3d20f80eccdccfb68ddd99469f75c01f40e7a53446a3d14cf6c04be3b08923e5a9739a88cba65f8d6eabc3a3f24cbd5e7c179b92a892ab772500736937d915cf5bfef22f9cdf38ffab3e5f7f0605bf0608721d9ba2d90f28788673bc3d072d7c22f35455dd64b2648484299dbc45db04cd1e1b26c684b0619ecc28f6cf015f4c24f852f49b4650d173cff9de8a3755b7c8fb47cb4ceadb308e4bba03df2bd5f7edfaa924c4681b3a2a0be94dd6e7cdbba9fd0b6daed2e4b42caed9e3343e876b2db7d84f1e4aa27379290ba4fdbca1b77da4a9f3b6fe3ce8760eefce83305e05a81152628adb5565abb6f4589dbaf7cc51491928c476aa562523d48c9271248edba5a91e8d2a3eaec600072830688baf59bd03fa116871db77e43f53c3801c02eb05632c978a47ec62dad6001a35a5d596dc91ac25ddcce5ef9cee4f78e3cc08d2b9c2873e357b2bbd2048aa79072fb6caebe645dfa235ac919179c2c2a60c6edbaab003bea7e27277ff44dd29eb67b0977276b854aef6571e6d85006fcbac6aa5d634d96ed3f8d1749cdd9704bd6975662d850e63e7dab7ba7fc695964c86259d6973ea91b6cb84c4fdefdfeb4ba4d51f7b34c27e971eb5ecb2e4d316eadb73420b3ead2cfaa4bef35259ffad683dd41a256702703b1ee7d259d93fc2cbf23bdfaec2469b36cf99d3f9ba22ebf57d6474f926bb547e8a93dc26fcb9f5fe54090aa406dd3cf1526259b48aa75292a7a9045725537d82183e94421555c815efa16c9b7e6be3448940ff75b4188c708e0e87ea76252bfeeeae0ec5c259494ebfda87f1c8554fc7174bfb7a84292bb0405242c79eeaac5205119b8df411a56d1475495bbf4c2fd0ef66c97ab84aa723d062abf7b6290d517b63e56d822f92602e97b166c9550570358aef7913c15976a90bac186dc65f26c49e93d4257d6b393ce2fe16e49ef7c95c0edf36511c9eb8e0cc8b387b19e72d5115397bb87ecd3a1f01f2c6860aafe5851df7de5bd642f77f5a295adfcc617dab6ba8eb6d5eeea2e5871576740dbe85db197f09645b619b7642e7775168f3aa76d4dae8c9844dcd5c10e9bec2b6b1b571d41a52753d7c7b6d1af0e6b5bfd6ac56368076815324d65b29c8fdecaf03f722ebd4f0efde9f9d207b1119f32bf1cef129091643086542e133933c7bcfd1d5d65ead6b7782073eb5954f5de125eae77906acbad173320e6d683d7f1ba783e4c96739f5adbbc831e5959acf0340cbf0ac3103cc8f745f28d45f0082de97bf7effb5c677108f8b55cdf570759adf365b5ac8fd55967855f91f3b258f4d1eabe568b25ae50dfb247ba97f54de20a4d5137fc11eff59f2dbd8796f555d4ed48f12d328a96c4ba78d6c5835137bc47be488f3c22beb2fe22a5a4a4a45e87c23c34fb7a9f3728cc4325bd9e9db723ba84bbf57c03e92da3a8007418c5d353110878cf96e2414b03ffbd7b8b40444b036dd2eade57f7defab7fa8eac86d0d507a49e654befe041902cc3d358671acbfae80e1eb43704cf3ad2baa5b70268998398834ad6e90af5a02d5bf7bc795b2c72f2e5db95275c2e757ce1ccd1365cbe4ba8a86d146a46b53ac4019c4f46befd2935f6e927d31afc2697e6c5cda8d93bc0eedc8585165c68db8abfdc7a70fad4808efab5f2f7a9b58dae48ae7761dea86fa16bf52cb040898e85c170974f128c33e59b69af7ed497a4f569dd3b1b24ea7aacd5045ea044e0eb655842895cafaf21748120e80a5ba2c80a4116abc562cd5cd7dd18df98a5b1fcaabeaab6ad5eff41d1b67efdb7a56ddfebcb0f035557c6e52a0c50b920b540d79161d7eaa793b1d27fffa0e85afd57d5b5faf2ebfed96fcbb4f15551a24f4affd4d7afea4e0e8cddbfaa4f4ad7eabbcf128c9da501e95ceed243e572f7b365ec3ed5db955f975b9f84aadb5924dd693ff876dfbbeb748f1aec900723660ebef5ab72e9fb82349c52c315d99f945b3f293347dffa6fca0fb7fea3d2364a7b525793b4fed3ea2ecddbd182445d96bd82c38e5b8bd6e72a0cf870b90a03522e0d08edecd22cd30336ea5eff75a144e1eb3f2f9468deea3f3094e8f5fa4fccccf1bd1ef44eebce84cb6512c57d91b4eef3d6b790a47576005f7828f316fe337c91f3d6912c88ffc8928914d7bb20edc9b4bacaa84b63013c6d451b80ebb49565c1659d701932add7db77dea3a657249dcc5b68699e5d7a95b957a64eb8b5eee435c60dcabcb52ef5e540eb6455e6d62a323f5330bf31977ba0bc28af573810e35a2f5b2ecfe5aa0b60b917a072c9cb554618e17627eb2d6bb7bb4fcefbb2588ff4e9cbf1a5f77edba6f68877ae3cdc8e8ff490a6188872cbf17625aca49f2f736e678fd077dd43d91457e8534be7f52c0de3751a2ffdccd1b77b8b43e810219a05a4556e659d5a014c8db3caad671e2855eb6017ba5a5dd8f2ecf7bdd5fa5a2d32bc47aebc832db2b31ec95d6b1d24bf4ef421be754a7e0f49f047f403cf0749be22e92257a453df9effce627d5ad627f9d9d64af4e1d10b32c8e124c5b358a7ac83945ccdb23b7865fc5153b23bc862684bdc0d5b2339f5db78ee14468b837a9d1b47eb386e1cf4e3e9abb842ed7e92e043b23f927c7b9154e1c1498a96fc5a244bf4e1b50eb6be6f553af51457f8b9ddbb5ae5f2a59f55c2f67a88baab3bd5b32d9dfaf61948374fc91277999ebe7b96bb46ef54efb5b842ed9650b72b6bb825ff23977856e83e6d493fa3e85cae2ac205b78cba257d1761c4adddee6017ae4aa7beddf98c44edd3678fccf3f59c7a4576a762d28c4b6795b675f5475d05674818a3535f5ad2ecffce259e3bbb7b6489bbdeb94b9a714bea756489bb25dfa92f7d25a99854b3b34ad7f8698556eece532080945616a49e34d9e24917294f5eb045981bd39f27978a1004c1454c184670e2c6ddb5da7cf9ddfe29c73b5f8e4d84955bc73b6bb72fd4b6f22b6a5b7fac62c4edc3ba765b07bd95e12dc790e98c67c3ae7536bc5c4504954602c894288807ba3842113f78020514b71d3418021116a0d205045e804bc6dab511646f26ec1a8ca89253f5564fc916c65b3d33a576e975af54fad3dd578073924b467e195eb25e31743dd1bcfa56dd274fbc24bde29377996982e11657a8393e87484c5766dcdacc41deeafd952de7474b9a5f7d7e65e75b77820cd2b003b93fc9dab5f638c8135768dd2aae00da1607f5ea473d73d723cbeff69983ba6db8dcd9b16b336eb5949cb79f1882cc9dec539eb4b79be06c5148f826e743f2487f9e8a2a74527fbe679691ab8898baad4761c46dddf02048c329aaf09df523e05b079b2c5b240d48cde5aef87ae96511c898bbe29bec2bce0bae429039e8f5ee4dbafe22cbaea28fbecbd2b7e8a33ffe888e242da9ef7adf65495a52ebf65bb72d0e07d1d54889f846df24ac6bf4afbbc8f02b7185d60d8fc346f49db8028d83e8438be3ba4b8599bb32f3a31e29d18cadfd434fcb7abfebfd48bf25246a05ad56abf5a3066b4fd1c70432df22907eeb888b83e85f1c4473b71e196bce862b1e6481a27d9d398825beee0a4b7ac1bbc03b79d725924cae57f8a37e857781627816106859fc3ef73c7b332b3b76cdb3f676167657af8c00978cf572d5104158327697ab86f0e272508f288a6278f0a2288ae2d9476c29100441100441f0ec032681c562b1beafce62b158acb30fab08ab834c8ee0c2bad6b7cb5c918356f3ebdaea737526a706a606c67a57ab8b6c84d45fad1eb2d1eaecb3fa02e4d741666616b95f0f39e8f549ce2346d7c587073f8f185b67fdfbeaf388d17b577ef7c57ff55faf37f9ba01d81df46c1972bf923ecaef92ad772fe7ed2f69dd964dd26ab284ba9575f00892d6ed6c9256b7342feb251d82cbed2e8b751657f02ecb72d73ab2ac21ab6b160d595d67bbfc6e7f6fb2e70def609dde6bd7bcee73d510392471d56d5b1edd3ec80a99ce74e7aacb5543e470f9ecc46d5bbbe679df8724bcddbdfe37eb11c0ae1bdbf6811d09a41eecba8eacdd2b9377703612ebde5b443aa21e099b1d589fe6ad1d59bbd691f96a4ba73befbd23cbf07607c35cf0f4f605ef91f3d280f014522ef8eed6cb229095980b5a9e37cabedd8fba3bd8a1d71de4d94c5d3c6f74b49248c25b495a123d72b96d5c4585caedd749f2659142f76c34e79da247c38e641ae7612d727516f97d92dea7b8f4dd1c0ee27f9eadf60b5bb386010259bd1eac642557f5aba3ae1feb475dc979bf7b679551d7fb2ab8229fe6ade4d3bcab83335cad0e769f83c421f5dd8ffa232bf99125ebd363b1be7afdbeef9f2d59477409779b6fed2fd19e3f8cb56b7cf0c524ad7ebebe495a7d7f75b0923f8e56177df457af40faabd597661926a7f02eedb89345204b80bc70bf7ffc23f5ab831f59d65b4f59966989c7e472d789e67ea7d429bcdf0a4b5a24d3d28edb1c54efe4ddd6cbbef52c92a97527ef7e673189c865fda83f72896769471d596dc85560d722c00c61e666ae4b975b4e291d25e7d42cc6982553aa0b4e07221822f7b402c3fa5624cee9ce25772629ba47c28b9f645904765886b62cbae16b47963e45f4a7ff7d4545bdc3087ebafe7a533a5ffe453275d9daba48963f6ed76281acfacd28b12b0d5a1e4b0823a5ff5ec9afaec892a180e29673ea9219bb97e3d4fd2e433d18e6d690cbe572f7b33174adae48d641b2fc6ecb22b15a5dcb226128a07cc0e10932b7abf70b3f26437de85ee71763e9d3bde759ef5ebdb3b3eb2c121f9c96207481a55efa8d498a6e678f545bbfd95140b09f2303676dda72ded5518b2ed1f57d5dfb6c89c4e7ae1e8660ad6bf54edd657dd5975572d5f5ee73bd5fef1eb93a6b09ea7af7be34aff71550d73ab973f970507d58bb56ab2d91145dfaf9b966f70210645b8e97e9f9ef5e7aaf1e59ab18e7bdf78f4c30c67e682b7d574e16d4aa2afeb64c2f9767152ac5d8629a6ae99ffe983162c48001e3c58b90505151d59d55ca1633c130516fe19ffe27661cc39f54ec408cdbefdcf77ddff77d67b1582c168bc57ad953ad56abd56ab55eb61410044110040fa5e806f2a70bc6b2c5b0d1d22473af4c15dd5663c2300cc3b0e8163291947851142f8ae2a114ddc4f7290e6cc4c4557769c7bde26496b9b9de6f1e700a53df4d4a6ab59afa6eab8f9c82ab7673c96eaed76bb7d1ae8a6eab97fd83d5cbfe220053bfb94a2aa5e365a7be9bcbd29242693122d96442b2c790b445522af42329f8bdac58562f6b96725669294cf47d35e6f2e561659c97be6e138fb9bf52adb3fef10d2edf5f16f91e352557abd5a1d46e4ee81172b79595eadc6df5d6ea1f292505e5bb397991c94191ddbe4b41a9dd3e2bd5fa772845b7969db2dd5696b24829a9a9a2db67a1b46eab3ba163e46e533bb7d5a59cacc4c8e56e53aedbea4e5e64fab6b2d5046c6b27580b1bddc65c2b1b8a266e5f00532383a15a28516fa13f25ed721b4c8ba144372dc0d01f2c94886f62be31a31664e80fdf1cfde13b25450a952f54e80fdf9256f16c49b37ce3166a8784313298cbb515d5f5c804386718fb5cca886e9fadb81dbe00f26b9913c28a9ae8fda326faedbb7d216c446f9f85dac4a5559ac5f473badfbfc146d5764b198e5b86b7924cf44c4fdfe52ffd3e8177565d7086940c2bb973c11a5612e7825d5849d905bdb092373617fcc24ac62ec80a2b09bb602bac64cd05c1b09234170cc34a0e5d500c2b2974415758c9f082afb092ad0b8e612559179c092be95d9026ac6477c19ab092f582b0b092f482b1b0927d411b584dcce6c6dee057ddea0338cf3ea016464c32338cab91e427b2b0e23ad1f084db4f6481e53600ba3988dfa76473101fa459ec50c7e8bef0566256ac1b7c2e2a582214add70840114b489310bf0bb882786191c388c59399193068ea989a300cac95456c0636e17cc20b970b639b18ac8666667cb9c4106cb1be9b9edf1770da2004533b7ace11512d5d28d1971ba76452ae168fcae7650423a3dd984b44a5748e12b598fee97f8bac6ad442a57cb916d362ba5c979b935c9af34aa1447cfb460ae6f63b2d52aa68942856a6a6aa484975add63447450c31a6902123050c30a28c19d3b55ab7175dab7553d7d916d3e55a4c976b315d8ea5ead4172594324e815191199153e59d952e57b52547660c25eaa4ba2863ba29633a23c67456c674390e02d3e5aa6c0143c1d030fc84172bb7a45a6c706c6636329b1b1b1b9a6c4a4a8e05862e9a9a2aa46bfd1f3947b0a210a8c5fa6ae7cd27da06c76666d36d91d9dcd8d8d0ba2a5947a5d3d2e5a6a47455b07459725788d13f2c1565cacd8b11b0868de98fa10c96e373f995858f52daf4e33159f4fcac42efbd2cea4ea6e42d2c18c32e3550a21afda1ff5e7eac97638bcc055ffef68a8af8d21b237ede16af0a9955d7a5c3d2e5bceaa566a9531d0543b55029b5c5745553a173cc7c38ffea2b86b6e42e7fd909c5e8b243aa187df49be6156d4983ec866f4b03cf0dad938cbe4689c65bc10225e21b183163405bf296962db98ae62c5b16fdb3a5508d3ddac1976f0761c61d7821db01181f23b617842e643e4626660cd11cd33f4d34b7f44f7ff55228242ab96a6ee12d5c6a08cbf1c2e7ebda17da7294d9ffdee73db7277f19b686b69537b8b695b2997bbdc499533365ce6bca9dc34a9ec74a9e1d9d1c1ace4c7643da90b5aecdc760353433e3cbc542db5a18e3f51762186349db96785e53325e585c9091f3e99963261919a0cc5b4399b786326f4da5cb8fb6893ea1054b6859965d7af54f98f1f6ec951925742594f04966c67b4609327c7a1a4bed4e7b9ff7fc16d75a70c6bf0f23ff4fcd6e32de7f67b1ef873264bca7e88fb56f2c9f0c1f8b9b6326991cfdb1e46d4b692a5d654cd54ebf8e98606e7fd23319cad396e412cf3b6bb3892af4f52593e197dca5dab2466d59bb134c14907d4ada652c3b0bf7546729a798a9db9f6228d1f967bef64d3145d38ab13cb760ec7737edb245ee76c95d3e5b72972aa582a1443da67ffa9f98714c25737b4c37d5b672deded2352994a8cbd23ffd5f261bc7ae4ae112c58a295ffaa73b4cfff4cbceca6d2f3a25ee96297756294adcb2abaca0cb72fb9d972f56806985f92286e54598311f18643a31dac6a5bd682ffda5c558b1b3d36168b4eeb2a393d3606838b32e3b90ba658fc1d5e0e394938304068b2164c0e7c2922a430782f605ef130c30da88306c2ad38be9454f996166988e32bfcc2f2d35ad98564c31ba749964c2b0a584614fe5bad643aa18410bbe8d30820a952953a4488912656a4a4aaa739d6b0a433bc5680a433bc990930c992e2ddb8565bb7cb60b4856291c840527074140e2bad0b5f6a4c881d46540d75a46031ba4e0bed0b5a658a6f47063e85aaf721cb83274adc11d5041e522e95aebe4c240c15dd2b57699a00b2ad7a96b7da3c30fcadc1abad6ad2a4588e0f6984e075f6ed96398b8659552a584b79562a5d2baad1c3f735b4973d66d654dc5f2dd56dafce6b652f6d5fb958996913574cd69490f2432e888e18513182044bad0b5fe8afc4816d922e70ac61ed360e8cc7266efd329335a6e2685339bedbc4fa5d068efb7183b3b340a8dd664767472e8140d672634c588969015969012fd2363268e72d044ff30149e2d3f2e9d2dc76a4bd9510ebef40f5f2f77d3374400d9a7ac606e94284c4c4d659192aa392c628861850c992a608061c4983154bad6d48ba6d5ca52314dc5f496d5aa3251b30851a2470f2b3a745423beaf4ef93e2b54a5cc8ae56bb56a1516ad54260bc652a84aa162da0b2fc25030e03b4c982fd44bf8fef2c50af1b48bf8b6c20a2eaed32d5de3c2058aded25baa5a68610a95b2ba102151e8d4f71e3da814eb34c7ba0e1d2d469369fd8413c010121ad3b56ea2d40235c15abad64db55a1f26ba46b3d4e7e428018359094323bad6d45169ef4bf34d9ea558c62f4d7b64896fd368b9ca2749c534a18328b79c5daa84a8dcce41985b7e636ebfb750a249a67ffa9fcb96df28da729485bda50ff696b664668eccc44289ea94fee91bf15919959055266e63b9fd9982b1a437f0e256e5d0aa179c994cf6a9d94da776c1d1d179c5427f7ae955b7d09fd6c9a1d92a854a15fad3354bd552abc4dcfe7c627cd92ae5f6a998b69557725ef33ef5a24fc7b4adbc427bf83e0523f63e25d3b6f20ace5def5331da56be6ef37ecdb5adbc32fbf87e95ba79bf4eb5adbc223bcdfb354adbca166e4821648faef563a48e13581833922fd2457a11a24439b6d63ff334a13b712cf70fcb96e3cc72ff08c92cf7cff775b61cbbda52364f6d0563d33116d4cbf596934b25a7141c3445165c98b848c1417da644b34bfff4c78801e3e5f62716e37c39b9dc7e8f691c5cdfeabbc772899f2fa79826c38b641975c58f9eb7b82e9e4eb16a2783717a1991acaaeef779eea789e4b22d923bc46c697117f02d312b5b4e31efde2a2b166b5bb6acddb2abc2b2259dba62ac5828d10ffa43ff7de32893f1964aa675fada05fca9c8a48c53ad975deef33282b9147cc57229f8b28eb9340752f7577c9ab7c1265d22b97444694955206f29b90b8b2c99cc4796b55557a5acdd924e71975bd22926734b3a7529dfb64c2f13cca59f5428d1ebf44bb8f40f5ffa1f342fa7969733cbcb89e5475d782165c61e7511a67fb8e42da33deae24bffbcec511756f40fdf92c9f0ede205cc7cc1586b54d8e01655779eab2db9cbad4d3196b30b306ec964c88c692216faa7efc50b1830e5ac52ce2ab75fce2ab6b24e2c6d2bbba944db4a6f66a19f4cb4adfca69626da56b66655ecf4138ab695dc359f1879b28694913324f9223fb1bbbbbbbbbbaa66d61be6982a5bba76deea63b5c0094555135a98c8a204162b559c8cc8a1e1cc643736b1290648b9906b01c7420d4f78d1b6098698b68163c2b4ade50598b6b1c47c69db17c64bdb5660ac689bf7a50b972d2c746dbe4b951a93e952bf7084c972eec3734c57b95878f6c5976cc5e5b38bcf2f3e8f7c9e79c9612e9f695eb298cbe79a97ecc5e533ec258fb97c9e5cc0b8bc654251359bd03299c83295c0d235f1e181663ebe14aa39cdcb136287bd2cbab9cd4b1db3cb5e7215ed382f190a9de7e0ac748dbe642e97af43d6d035fa1c7a1a89434e23ba463f2397748d5e464e2a5da3bf216dc839a56bf4315286aed1c3c829a56bf435640c5da3a7216794aed1cf902f9073aa6bf42fd2454ea9aed18b6448ce5cd7ca9963108caed1d698aeb1bce8da27a66bd4b60ad335ea81e91aedbe74ad7ae91ab5b5155da39fd669ded985c9dcf93d31ce97b55bd68ba71f5da5f7d7e9ea63f97da6649de6b4f59a83879d1e2856a38f9130f2240d2923477274915f4882a48e3bbf2abaf3de0977be13baf315e8ce2ab4f92dd1e5f679d8a8c96925c441fd268456602221fee9d7971f7d39dedc5cfe6c62fcbc5c1728d1c4d23ffd2c9f96b14ae6e5ce5cfff4bf6f94c9846e73973bbb0bdd4096db338a126087850153cacafcaab48033a2d6565484d03b4d691bbd4223a5c793cef58ea46b51ca2b353f928112d5581acbfd23bef5d53fa95bb298234a34a3f44fbf455b7ea12dc7cab2a5ecfe829f3118b9aa0b2cb7e4aa28b73fa5c63bde69bcacf77136d775a7d69d79df29e78a77aaf7f5be0cdd0def4443f2d4d77bcd9db1278877b4459f2d653cbb2f0bd43597155a89e1b99ef59957b4b5969827f1b2ac0e5bfe962ce6f619005ed69d62577cbf85d59d5eb7f5be10d6fddeefe17affc8f55dd1e6c86e680fdaf2309acbb2b2694bd967c3f0aeec586d39b2679dbcdb515bd64b9d64f7d65b9983989883aa2d6df7cc32368b0aac3a4cab33b92ed37826279acb548f7357d64976bf3b799789f59bcbc4025b77625da6f0acf347d8650aadd3785d77925df14ee1657ac1989e662ed3cb3a8d97e64eb23b73a7d7651aadd377c7bf989ec0cb54639dbe0b3b9393ecdadc69bcb13bc56ecd796992c939c9eeec4c4ee395fd86c969bc3c1c34afc337e6f9339272d0bc8cbc21996fccdb90340e9a8f91381c340f23671c345f43e670d03c0d49c341f333640d07cd8f648c83e65f248c83e65da48b83e645f2c541f32139f28d79906c912007cdb3c8906fcc7fe48a83e657e4c737e63df28683e63bd28683e62b29e3a0794a7a956fcc47c926a5010573cbb086737a201d7a9f17cde95fe35060b799d3e7e0cc0e0576739d5e268eb137b1210f85f39ed3c3c49146ec79139c8e8592f19fdff0fcf4a36ca499799397c541cdb88cbf877cd937b17128da7d4e1f8ea34c464333e33a6e667150404197513b148dcfe8390e4ac7c7feb437113a14d86da491d1ccccb8c4e36c6c131c14d0679470a8a0d7700e65731acfdfe4c6a17c6e6768665caed8ebb81bdb040715741a87027a09b4d9a16e766edfa4c635e37289e22b363e4774bd5eb1f142331b289adfbc60b0586cfc8d9b9943b92eb3619b400559aaf04096aaa3e1d81c4af6d99bbc0ed552dc626f52c3e2a06858aafe8fa59aaccfb054f5502558aaef327c2c55b97af758aa12fcb496aaf4fe59d25295df5bb75465eb2ccb63a94ad6eb4e676138d7099be4581c94781a8e1d1b47875d9359aad68da562d9ef3696ea8302bbc560aff1b81a8b83729dc652adc4cf582acf8e2fcbd5d2fb44b51ab4027cdb3c5bb7face3a3f87ab72b97eabc5627ddf5b8ad53bcf7bad5c4050c52d9f74ee7c7929f823af945c9a65cab4c0d68fe4e4b05aac7facef4760b0d5b7fa9171ec56dd8f849d2d69e0b9d51ea934f05c6a8f1cf958b3e640ca464e1dd313edce3b75ebbbd3eaae989e667775a77a3da6a79cebdd69de8ee9e9e67677f26e3fe1dcbe13bd95d2093ed5dc696bd7cefae65d3db1ee6ae6ae6cd835ef69868d9e60d7b363d76a60dd53dfb0d1534bd656d6b46af414bbd5e6ecf478fb6dbf9a54088a032e38c8728b8a84846a35996c1cbfef0a781024a18407bf7871b9eaae3e45205c75577605aebadfed736144945b7120c6adb772a1c4bd2038c34ef451ffbd23abf53cd6d1044a78d04e85c7b90e1eb438f04ec4bf7eb9ea76a4543d14aaa51dd77bb5545c6156ddf91693a6a85a67fad3b9ab02eb2dbbb4e3ce27eff2bcb1c8237daeba2e726adec0dfd5e75d5d24715137d042093f6f2c2641e56e927e19d2f2b43c48f26d9e3265fe296577be947ddf38ca647fad2624c4f4a72cbae58b4e7fe8b9ecceebf69142db92869c7e67cb7964698eb96dcbafda729e8368d5ad765e7a975eb76d396f674b7a4ac4b79a5051d5962e97deeea2be66e900649f92c7dcfedc329635188c5cc545137d19de47d2294ce9dcc27e0c2ef0fd176c5aef3360759c78283017a67464376f52f3165838329075f37a135c68a176d0ce024e2803716edec46571503b665e3cab5946260b41b075f326a2c5c58e83da017bb9c4d59b908702bbc9c0306cb53ed67135b6096ef61a70f572bdc92fb6c2f0fb725838c7d16c9399c5ed3c165bb540d79bcc2e7ee1f7b1583839b287ac0f07274776126c1dc7fa37c5115a70c3a1e51c37bf30c20715b8c9fe16ebdf71502dc52de738f14d70ce639bece8582aef2bf06b1d070576cb994050214611379ac54de9dc70389675a8b9832baefce0263b6e6659ff0e55b980a08a9bcc3a81a2656eace3a0e80c9ee8e086db8da52abbd737b1b138a81d65cadc62968a1e66713534966a7ec6424daa6a7d1a096382d8e1f6b25465fdb467c20a173ab8b92c55394f6d8e68a94a7aaf496871505387120ce107b7d5715073064f74e0e4065aaace8e8c84314144b9b57050b30c116200841bcb52515ba708c270b183db67a9a6fda80e25188217b79585358e28c6f9b2322daaebd00b585db7be14d513cec53914ef46efc46573fbce97bd6ef552544fb33b0f6575ebee24e7e64673fee77dab3be101cf0fc11beb5253dd0d3c147a6bddc90b4c2e778352737ba5200585e6165e7cf173c4db78a9297aa33994ee367327af5cec163bffe1ade65253f5163b947a83dd094f552e778302bbcd52909282d2badd5c6acabbcd0ea56fb23b798dc9e56e506870ce874d3b728d64aecdcfc81c1e9a97913a3c347f43eef0d0bc0dc9c343f33172c643f330128787e66b481a0fcdd390363c343f43def0d0fc48ca7868fe45863c34ef22451e9a1749170fcd87e48b87e64192c543f32db2c543f32c12e4a1f98ff478687e45ae7868de233f1e9aef48180fcd5732c643f394ac3c34df64c743f351134ad6140ce8d3b6a639ad8fcfff9c9c1c994c0683c1c6710cc3f0fbba366d4d94da5a298d9a7326a1bdeeba7d9a76afea293f5c85abf37372eacaeb2a85511d19f950de6c1f805c6333b099f37d66e8ebc887d1e09cf04ccd6877ef53b3d066751bd65bfccf067c1813effa14ce0d66a9ca23afaed1581c5539615d9bb154e591b16b2fd2455632243ff2cb213f32ecdafc8a24dfb5f98ebc0f09e545b99ae200a4df378e32d9c76721207dfb47fd855f5dd5d303558bab81fe50fa9cce09cfecc6fa12cf12fae37de9f583fe78de651859dfca0ad11ffa22fa437f447fe82d8e05fa43ef02fda17f4168e6ba2e20fb945e15a21afaa75f0a4ddd7e5924a5aa9c5478cbe5a9db61e9ba745838cc2dab972e57bd9870cb3a55b3d429aa050cd502bb658ba152c4b46ed954baaa6c2ab73f9d18bb5bce2d636e57b9fd92bbcc2db73fab4c2b138a9965323195984d4c2c530b93e9523299dbb5cb352021453a7e9cd043e8a8ecb0dc0e8b125c3a2d5d13dd968e890e8a2e4b57d52bead137b5388f0ace48df87554a97783c29f4a73f350bdbb6f4eac4d09f7e776f8afef4124fd7c50b18fad3556abb31f4a7df91a13f7d2fa78271beecba785566874100b96dfc3a24133a54cd8defd3361c546ca6c6c68c168f0e6d36f69c0f03eaa9f1a9d9ade7fcdf04d9efe4e0746cc6464dd863c27150346837319f93b21925c83854cf7fcecf090a3a0eea26365353c249f1b2193f320ea5739ff33f1386842c0e4ae846ad47f6d9a07143b3418376232326f4fa8ce3a06ebc049f43d5fe731cd40d57ad87b4517968dc064673a89b8f414016378573ab617150b51e9287c6716436309a43c5ec8f838acdfc58aad5c9e3a06a2e3b0eaa067e86a50a8f83ea7909968a751c94ce6558aaee503cf7b154f438a89eb6d69eb4b7321e4bf5dab163e3d0b1542e3be6d88f26da9caef57142ebd3b5095a59d7fa321cd48d8f0dcbe6c42cd567613596cab3309aced6194b55ed487ba2c4fe2c000ae5fc051b690e051ee9e4ec1c0775f391e650341667a74252735787ba79cd7150b4bf2c153d94ecb1f3c7f146067bec38289b8b870aef3aff38e3a4390eca75d7a15edb69fd353b0e0a3ced50e269ce2f829a79ce7150e1718e83126f0e45fb41897050e1752cd5771c94f81c4be51d0745b3544e93aa751cd4cc52ad2e631deae6b0f33f9ad71ccaf599e3a06efaafe3a06c2c557d78a8f1b18983326f382898a59a5656d3b23934968a65c799cffa8c960ad6b5f997a54252733d7b2897a5eaac582d5468a92c55dbf050b02856572a907dca1e43e442ffd0d797a1f71256e68c2f7d86543132757f358131b0290c6b6e9a5aad59937805378573c3b9f82697cbe65f7ad1dc9ccef91f67d692cd1818fedfb96d4d3343aa1897e69d6438889e6fd3cc6f2c8eeac88c8dc5511d71b1c4d5c85e706da3b14d3434160745d3cc8ce5ae8defaaaed18fb6746a9bcb36b95cd6a909246d136d93285a244cb8d0b6d03685a175a10a03da06da2610b40cb01243db5ab6a9d5b23174ad46cfb24d2c566bb1258fb9d436adbed46f5a59ced2357acf962ce652db34bfd4f6c8d22cd354df586cc960985eefcf153496dc2493e32a3053ee7f8a854c5b699beba64adbc41a1f26da16da2b59da0656b5ad65977862a7b35b4c89b6b16461136dfb6c0e96b6ad64df4da53ac249e872e95b4bdb3c4b754446750436a98e8c65ca941933a48ab17ea97e4815a30fe6a032a8eccf26c6d9c458ce2e934c17f632b1e4d8cbc472e9a71363df7292214389ba4affd07fdf38ca64f7b7fc2d2799b19c5d84ba0895bd82b15f4e32977e929962dcd8d418d1b6a5578dc5b5189c5b6caae6f41da553807d0ae75653f3a9d94d46a56d4b3c0d86fed04fcd6e312999ecad654adb965eb1b7979cecc6c676152c595a4adb62163735bbc12c6e0ae75663bb6a0bfda1ef2e74aa60ec975da5bfa8b16d9200736077dec9e3597a8dc9e574d8e8a977d8e8a955336323a6a5d77d8addd69d2a0e1b3d551a1b3d8534366cc4b4b4ba4f3777de89dec85ab69ca96123a6a5799f6417bcd3347a5ac5d8e8e975a72dc73fcd6668c0f3d28efb54735b77f2c697c8464fed62a3a7d68b8d9e685c2c36625ae2b94fb13befd4ddd613bdad27f0b66c29fe09c76323a6279bbbe4cae572b77527ba62a3a7eece27f14e5b867f9addd6f9948d9896e87df26eebc9755bb604ff8433d9e8e96b367a1aef3cdbb2752435b76645e3cdd8a55737d6176d57b768975e61e308a775a8f4e7d6eab3b144cb92ce293444244d0268007315603048301c0d48e33c1425f9148012aa9c525821c9b32447420a1963880106800103300200324300005143879cdcbfb47b0794cdf287e6cc9bebffafe21564b8b2caeac101eaca1cdcf3122faaabd7befaadb7794617c9b9498ba0cf813af06116e7999a54fb4b83e76b208e1e2c04b20fc321ee5d6309300d71da06fba08068d6dc8273c65c50fca2deec5f08987b99d6aa4011c5c021c72c771514b701f4e09d28a10b683990c76a6d1da1fe2ce3ee572ec82f98b1f85eb073bb176a624df1a5cdeab189a5b5bb9b194c73156f5e5656d6ebb2b9e1d4d5a38e2de24aa33f4b9e442d65862980cea0d6544a2fa352cf8886bdd90fe56006e0e00e5947a2d1aa5bd8f1de57b1fe2ff1d6e62b17606060653671a5c6bd2426e1b1521e08bfc48dc8b902ad717d3c1501f0410689c29327ee9d112dbed7d731a15e42d2ab9f92495876232338d26508e506dace4d2459a26885f182e4a1c5ed621cd2ebddc934c2a04e04fb83cc844d2c51c0b8f2dbbd42ce25797bd10d9e7f67ef3f374e53831b0ea85e9ca20ee26d219baa0cc9e0a7f430101f2d4894cbe498f6cd6c6139412e7863a7274b152f356b4f1e163c1bed438995930986083cd235f538687a2b9a338b60af5f7c5e55a4cba854b79732ae4f28ba222220dd6245765e127a928e7b5af79a70fa2009efbd28b774eed73e473f3c7fc2579b521c20174dbd62cce72463a474920bfd899b525437d1003e012597248e0cedbfce80e563588afa6f99223a7fdb35b331759d1b136d8966a43585b6966ec3ff19f7cf724e41086660f14536ea5a5e5667ee3aa96939626685a0d78ec2054e27d07d2b1f20992c269d76a419ea8e1b28d4c1c209aa6b9973aee66d74e0fe39b9e3e6684b625cffe38ede710e2d0fa2ed9686ae4856628412b3bbb0271e398de079c746be28579cd2e8901426d4012cc40a11daaddc086efa7eeccc7403d786f8203f7ad904e9d6e7870defe06097779473df7814d6ec3b853a640ae9b6150755da36574533d48c98662ab7bf8e27e801c515c63d16fc245164b16e6456e4d9e7c8dc61b600f03db04f05def0c13ab933ec5bbc6fb7587ce00c2a38b9e94b80bc94de7f3e15f0821d2b38924ce62145432a744e078462b1d8a6486ee3798090ba30ad604b4acf51584f4b022a323e8810ff326d9bd4b511a73558fd3348487cb918f2e76fd5d891c522fba2397dc7fce98b39bfe71e3e8bdbc451606c73c95e64537457c8823708ae7aa441d4ac583b2d440e7643250196323d3e67c6d125a04140d45db3c1f857a3212c8e05d4a7d7043a6b5bf7e20cceeab9e09f0f4bb3ef0ad82df3afa02d4a9d1b3fd0c95e220fdd5375f0a2c5c876c30b54c57e219aac3173da9cf58a1d7a9f17c1b8dcd1eb9ad0e59a57ea261f7abe8cd5063df632480f0f62ca00c56887744c39d5782c83f381eb30b0f71ceb4619ddb9ea9c33e3a674ba2e4ccfb279338a7b6ff3978269ef2733200fc6d909a3bc1cd1687013cc1e063b00e8d34ac0ef16acdd29d25ff5943e76ccfa51d535ba3838c3aac748132c165015f76e2ac3e5207e26f244e84610f396a9698703102d0839c6e27ce3d4989421e3b6a1e56cad1b83fe90abcaa64861890855dffd65bf7b1df293417adc1bb2c875d16e20b31993b310064aa07450b45d11a7b2bfb1f1ea60be148ebfffc5a1cbfb7da2d1e0a2f9b9482f0d3368dd4136db3ecb8df074e4fcca03d831998a22d110bcefb3cc7f84639a2f36f964e3d7cfd880d0ef6136651b4487078a34e9a685410ba76c68083913c4f88d5b8072c9cfb2ec3f80c71c61142584c71eea98262da6f98fa73565bc5c9d5d4b74f084f570273568d87c94290e60327e6412063cdaf941916646f3742d9181f869cd394843e3039e7cb099edc14f2970e3143de952484710abf7502e1f5f5d32d4d6b789a42e0d6239d83bfce840e62b1a107f8e170d18135e797f3fa7a50beb3161c45ab50c70f03941253966f8db388ae97fbac9dbc70f91e3bae55e75cc2a485dc04fbfcc6dc88eb020c091d2387dc7022541a8edec3fe38250e5b4028ea9a0b7ddc5892ffb64fe96cecfe40dc1f312d65b78e205b45249a4f532da40b8505c5267700c7e927953cbf682d9f904afe996f030568c97fc9673b8032b9cf820ba22e5679b72364b8f2cf8ef235e72e2e727e79df71bbe8c88ff0ece7743963b91fa66fff849098171f944e943fa5304e40880133a07507e58e3b94caa30016a8184deecd23ad618facdec547f2e4e41b2ded6459ee52908ce9cf0d5978f4db30106edca63d228072812e6fec5c36698b101ea831d6dd28c12f590163d0170d323034f5f066fdf0650f4e60920edf41be4f36d6c7aeb588138f2841baea257d12d7954a9307d62e95d49a66361b4d17a029dba3a283de752a4ddc80e6e1cbc99b681a457d4a0ea24346092084bcc00bc0e2130937bc22dfff9ad7868600d7239d49d66a492438da3ea9eb434a4fb039ceea1c291f665920b10cf1dc57c882d7f77e576fb762a89ba8d49bd1a328d706452f8b1e17b98245ea16292d869034289179ecfc358e7855488f90262685fcf39a6a72bc5d02ea84880a06002b5972265d2850ac7fda5f6ac386f6b48a31924d213c7b4c60ed35975a5c12a3d75321a5236c49669f0e99c3eb8988cf445abed802904732d4337d9b02138c0123d5c099043fe872b8f7de3ee33701a27cf9963bf43105a6059cc41a7541522ee39eb3c858c6f21132a57d942d707b963e969602bc5c2e96b3736c9875f14452308823422f1b965952e08aa734b382ee88660755f02b008be022dda6c57d071b370c2cd8495ff342c02ccc9547682e7713ab74b55ce4e6569e3581041fa18cac5491a4e8faf018abbeca3b84c63758669eb6b8997c344b0862ea500d07321334e00049cdc57d1f78ea20028aba8563744723586e906c45c7d84dd484f5759ff2e70819ca38e64259cd105edb8d01639907a5ee807d756ab4967280a5046737a59c68a3f40de6f3c804f531954b485038bcbe61e4dd6cec90b0046c67b708facd5483aab66d8c27536c2d708e76c3cae6de92cccad1de9ac82afc557419a0282e924d444a8b2bbf7e67c175fed7ead7f20a1235a35955127d61304d81ba7b5a74fa23d40e76da633d96aa350576673d7c9c2269e072a689a60bb68a48155187ff78d2fa9d32b2c921c807cf3e5d5db64d1464e0c86d7984244ea2e87ceba1067b96584134f19cc6bfaa183d1a50edc86c9815a8f0e1c94147db47a9baab5d183e9b62a5a9687204fbd615512aaa35ea7923c7a089fe816cea2f5c3045636f5c0d34504eb1b60f45771ec040d89d42bf510e38311e3a16a4e485ce7aa5a71f0ec8697483cc09123886f1dd3f9d02d4566315ac80aca5e64d0fae70e1123663d233cac28b3d144e147daafaee64c326699b4e448ac8b42b3141a55a5333ea984b5d410ac04ea183a9bd65eb42779a6ac4ae41661493d59666463caa995ed77539aa99d4bfbbaf9a9f5add6fa7f3548359d0db79bcb9e25d374e963a882fd1ca0be531d6703a6f01e37cfcff7244a377e3febcf54a641b0f92c8c4309d7d0d2ca36e2edeb27480a7cb62f2053b0ab870ab3b94fe6d591dfd2bd055d62284ef80b179e43c7e40e7dac09ee45db3219f7689a20525c367a7564676e4270e9d0fa1a1bf4599fa5a7c6649294b51ffda6c5da3ec73e87df22ef0a7939337a6ddccb4f10f746c17cbb569d4c3b6a1c5be94dab43c9cd27311b34c558d897235046a65be18d3dc92e2b095c1a7e081ef07e5584674504539436bfa93483e8c85ab02a63d53d1f7aec7994240b2744a14f3fb826193a6d306e57495c827c5c4e30214725da40db10a63f16796ea132ce4a2b1cb699e19acfc211843f058a9efe599c80039a2987536cca71b8325f81cc7b7efd39defb12dcfeccd8f5bbc2dbf69d13823854bcf701bc76c44867f29474ad033f0486f51f6fa4872b7e577300c30e4c932198a50a534eeacb320ac7352ad01d6cd5bf66497c70aaa81c63b59a21d3337a328c45e262fb1019387c8779c1a13b8865d8799f183dd776ae7252f870f561cae2859bb3edc434961c302e1496f5a71e95f6a6db289837cf1974e459a07e3413d68ba0e375d050d6fe76a2d6596e23dccb85527c565162801fa1ad15bfa19ee2ae3dc6434aa18fb31b70790ad55bd40df1065fc56eba12d3cdb39d595a620b6a83b4afc771d9e7a7f831b29d86e647e29488db1d593523a8abba9c5c8ad7961f67c925ad59bf4b1511b6983f46783f060655b60bd1ede2bf8540351c04d204a14061535af14fc9768f5e67e505520ff2579ebd7d99580171dffce711464e5a3c30b1702a024aa7444f86c1c138570ee63415b6411613c4948eef4ea2a6ce6ceea8dbb0f58cb13d2032ec1997c7fc81c9ba611cff69ddc92fe20367fb5760e227b2f5b7d4361b52a723dd58918b33dffbe6cdd01877b0acccabcd90e5ad50005b03fec2e10eac70f9d0b2ba307070aea0ea6ab254275162269c162c86a83e59e22d87d380dff2d384cf4050f1d5aac74a9409b76d0f9c755c7dddac31c1fe94cabff3b6e4c3c71ae1b3b9e620f1204a6e29277bd857d9aa3d7b3c9a590d20519d5614898621a002bc66f04d92226cffa6df161edfe12279588c7e35902bc7448643c012c6d2a6cbdbc06152cd25b17ec3656b318fdd8fd8e3a4d8047417b850c94dca110030a1449340e6455487d07f9aeedc4bc63fc24278ed6139f72e92a0935664f6eaa3b023a815f3220bec384bef3976416aa64649c5e5ffafec177b3e51c83966d8ba3d19730b55fb957c081b98e3344ca7643794fb4db1332d46f4039d627206107e8a6ab0d4229cd624f1c38a8ce98795a45e71603bf51b053eb0680019dd5b942ffc56b2360e0bc2ac74bf1abe9fc7e3654d97700a93ac946f8031de748f0ddba3e4e1bf7d0cbb8de0a4965b13f852ec0541e2c6f3847cb11d387ded4876c027d76fd3f2ca27307f4ac99b5cc5af129fffb21bab5f31a024e90e110bc61359c42e473908620301710751e54c48af8a1de6ef3f5917dec3ef184f8a0dfe8c39f2dd98ba1fab5373ba8ae8ad5fb3c35c37b12eb14b88e4121bbf28ffa31eda1b9f444ad2ba2a9430c7eca8c7691d9cfe59fd8a7f00c63e4a235f39aec9300cf718b1958e985a23bdc88af79986a341320765bb7382c69d5347fc18920b5c2ab3d72896c0313d8789115c248f417563ae447c1f8729b08e17a472fa82698fe8cbbd646e5afb40f7b712c993a37885faa6ef149ba2948c736b345278c829239beb74b74ee39d3f324d8d41eb8a44e1ed50188e7309bb868743be2dca0a36849439319061c602d3f0853a934bfe821b56a509cf9d9ba5161be7a2d518082dd31c728adc485fd4b6681b9dd13f14ebae964d401dc7da6b2a3604a4b7b0e668b76838f37edacac3543502409e585022e769d4c00f0749c4d4099cd3cb212e89b01792ccfa925ce6c52164c53a0e86ee3ec1d42dc69947c40ce7741b2a5958b0a5f83b4aa23dba48346d554c21d60157b6099948ed0110dcb54fbf4420afab47d01dbe8fe247a5971c3b128dc54d1788f37c301490af77c02cd51a87417170068a0e60442c19ef27609bdada39995999ac4e6c79adc16c679bbd2d9daea91beb140a407001ed2d3f2f51ae11569097190d5f1ef73431deefe0bd3086c5bcdbf8ddabf5a5ead8b8d25766529167fa155d9e56501c788ce122f42e7464f4902fc93caf23d6e08336200a05fa8dd762495519a598a3e88277e21143dade4de0f4c6fbc6c7ea0c0401e828cbb182d8e4ec0ead1b0d43eff877bc2bb80fac318ea83510f6c1c7d2161f4de8fe97a7039e035cbc30b310224c6819a3ddc0f92bbe98ed5d40af04bc7453111fa0ef0423117913ae4c5803e76a58101ab8a71b16cc19a29d360917ec97c1f44ab6c07de4fc9b0612f78d7068931d6b3104124728c9b1c7e55466d8e1794439e02d9307b4f3747a7f90865a91068a25abab5abd4ab5ea9553b99d13eeb1bbefbb355ea36dec33f00d63872e40581ac597ae4743cd471d6590c243727f3484459317b4d7cf366ea4023ddc6b419f7905c92e1e7a643f7d3c60ee7550ddbc460c03042a033590c50420acae364002867fac59a93163f1b80fb7c3fd788e5c59c6192cf7339bc663c7048dda8ce44a3b47d3225be3dc8b8565bf55441b43addb2872ed874c6bc8b3382e2b5375f501c67fd80b69a51648ef2ab8318528e2bc2fa0833c80369f053d96a5c54963389a1fa44109caab6bb90a38c1d8847a975e4a6ffb0b5df3f77903adbbb32c4ce05ba03dda88ac85af197985f95412a0b3cf638acad6db9c26b5f4a8139568af3ff969ef6946c8473cef28e20f7833928dcb400d7d8bf8848e3b9c4f188677427b5a5ce3a579a74abb8b6871e3d54d9e800a445dba6be1c70ab2a4b424d04a5e8566cc5b180fe8102c9aabf442f7e1ce013b9c9410302cc1c076b6598646dc550fb23135331cab3194d554ea0a98920aab105213a5135f3f31722c4b9ad4975ae2bb082a2589e2bef54c564db40d35c27e6800228833eeb43e7d621a1ce6af5f3c44415efa204bf3a612c5fa36b5858b0c7433568d91acd3b70ea1f99cc118ae189e4cd25e7c190e64fca7182a74c5593e0f1bc8301e1867acb6dc18efb2d74446bacc89a778db3233b76c464ad3565a9fabd7026886e8539b982094d73493650c211dfb8f87f99016acc1cfde57a44bc74b731ce89f2532f700054160c8c313321d4b50eb6d746f59c66d3ad0e83122ad1da9bb935db8a9a5b8c683b908dbcd09057497a2a553221a5dce3053e8b56361d47d26cfc91d0f07cb87f89a5e3010aede95927dab404c225f388693dd75f32344e232b4aa4f4137831222d77528fe98de23c1b67260d1700b1af4b36f6df0217842ed467ed1a3390dd9ea15c9dd458936238a24364d1f6e9c726b0e8a9534119c80ef41c3d11b73b5cc109888b7507443a245fc7e664df08921ac0a91fda8453a61cefac72ec0b843f5d89a8dbcda97dba34bb65802a1640f364330b726de6a1b3d4ee11b3350cb8928c4207fa2239a640b72e88d587b3d13e324ed0fe1133626372efcc7ea3f114dedff637a89df3d2e3340114b29d634bbdf13c66d622a26850aa852185fbb9a7b436075a26106639205cf5cf17c47f93f5abc3d1819f22b1473667865ae3dca2e1a7d0b1cee2f385454b3cad84adf808f1189379bad6189d347f2f1b1e1a1a28b353690bb606bbd6dee6200e3c87a1ecf9361a6c5a288a2ab10ab08b1a28c3e7a2ed9052e65c4dccdb930f4c397fd61b174c55858349d00b8fdfd29519bccf22bea7e86eeb40b2045e3c609d49859ffd0290006344e5558ec2d4963213efa1646240a063cb15108983b65050dbd59614206259e487e7e402ca1455038f673a766170847a1b83f408907b7dfdf5ff7acf7507a02cc0002a23666700af8c1e324f4715bec2b713600e168ac0cc5ddab4974a7aa270e2e02384532b300017f9e8399448f33809a8dbc4cac8cf2c8438d31b1333e88ad32f4a016a8898cdedb1e9fb310dc0c54bcf7da2212de607834917fb13db41f1e9e63319d3c6ee0c6dea4a02d32ff5446abb87eb8e04a6380f1cc822df13f0ffee7dfa5cb9ef84deb564be9b7e3795781c99916a312393f86f6bd650ab763397e996c2e58b4f675f5609deed5e36d9453c6778a6fa75bba2bd76b569c5d07dada3e13de9781e7e6663b9f0ce83047ba0cd9fe3c5bd76b8827d1460e8ceb3604bf37127d7347e478dc18539de108c90548126b2d5013060ed1287a9161391dca068ab9a966378006cfaae528653887d26ca58cc5cec2c48140d01773a34c0cfef82c801be555d4238a99ef89c72bc62888f9dacee55e6c9edd7334fcb4e0ba1121b83753841b81596e51b243ab8865789530197fc610ea0eaa6e8eff2454c45370e6621293d1bd8f8b02dd5fc583b74eb3dd1c83d3d2ca26d50e81204a75b7c46f02749f2846a9c6c03960582c962821a5c53bea85b2e60e62c559a9a0845050b043370034f2a1082212ca771fe883ca9b5f4e1579ea30123888359e9a4c010f28d326569a27b101d110b8ef482f7ed694cb09618d64ae2243daf40bf5b073d4aeb7535b662c4368aeaebc513db1482644d40d3c6cf7603c49f843c294fbd584747c387fa7308ae2518814f31b5259b7982e8daa2288034eef807f59aa0e03520f0f0a8c9cd1691ce34a06e51b86e4c6b10c1fddb6683b0977fbd9f819147248459fc01b9a960b269698d5a83f5304446241d31fa39e1407c763111ef220938f2d3513c3c3d84d5ed04865b01bf3e045c009191f1d98a57b742c5a397a060ce75edf207697c3c0f857843ccdfe582af856386a7d3483b55693b7f690fef5c446ee9a7d8161afc8626a4b0dc4adc350a4f78c9be801b5540733adc031289419b3f0318751de9ab2c2c8697410cb5f0f1bd6e276046c58410d79ef26bd6193608728dcb3cdb3d79a499b79688c6857ada95b03f9d429c35445b732712989786175ca80d18e69cd1c725a6990e39ec92a10998a664238428ede6a8adf23b0f007f9234685303498f066052522e1cdd1a62b924979a80d1a772c8dc73473792f777490b618adf400d282c2b794a46442e4e04674a723341e8c64717beed256543637b3683f1e1ad83ed36f44da3d0073be2e49721611fac1af4816ae65b9e6f4df3eb500015dc8ebed2737c80db289a0b647312cee1a37ba3d996bf1d6bd732d4b3c2ac26081f4818870197ece3e06d2c87427a4826080db156f666595a5de0b5e3d9cfa4ae1e9a236af05cd2d6ad3cfd9616da759d628f84c0b27dc1db8e21387fff9a32fa1d6adac311c26e6f92dbc2bd6d28fd4c63986dc9580aba37ae5cf0f08439500936b94c42b870014f9c1a144a53560ecee91fb7ca910edd6ca7d3d84dcdf6d9582ef4686e276710c65fb109ff5c9f01b3acc8af9503e1da859587889dd9b7967daccfb47118e0952f144da6d4bd934c73bc1e39d4bbe24b27baf483eb43a879cc6a38f9f884e8fec3f467294bf5e56dd34ac7b66cded62fd62566a55677d5bfcb894decbcf083306f5654a32e9c558ae121896e6232817dc2c268ca490e1b2248d4fda3ca15aeeba7af34aa53b25bcce6ccaef14b53318945142ae055473640d3985baf94b165758f1329ad487ae00dd58e38640f839331ecbd65320843237ec47a20e487607ec23e4022a9c541772a541a4c3c340006a603df267c8bc5708434aff6ea41b8f8d8b23dd8e5254dbc6da2030504564909e5005ab49a37ca0f6be7e4113bad0c015769abbca6928297376236b52df6dba690d6d021ad69f1981b68c42474c403730adf8f717863eb821376e7341a009ce5ccf8b93af6fc192b6727e02d5c569cc8ff6578668446ff1a3237fc279ecd6115afb0b9da9249126ed3feb275ca84a4201fd1485b7e76c9b44f2e752c2d1a022bce678875361d49899016b5578386175087b5b8948d6078925fd08ff12c580527d75e99a46c9f811f54145f62425c8ec3ff415da060da3c1d244808e1973f19cf378b6db012f070dc5b651861d9601d08d8d0e325a792005686be1c2bd68eee8e04aa0690ed42111809fb930f426f21ac219bcc7aebb517019cb8467cfc81269338dff90add205227031b22783a3198c85dcc8c27e8e7fdc9564dcb1e49a859dcab3261aecc4d892de32cabdbd4010898406391c3c2cef5874092fb4b0106b4152ce097e6c0a4c5e468c1d0a1aa7d01eaf4597285a2953e5fb1a673472b45b02ebdb1467849075308587afb75de562c3dc499e996a9c46136e6eb1a431f930c876984bef42a09b06657c49fbdd16f87fdbc21336f7e1d0703b714fb98564b136a393a82f9c8f83dd43ff860372ecc62c1ea97b58da910097d006805dd6104a40e8d12bc779b84f44a45a7efb11df3bb2db07e6548768d22f6a6e7174df7f170fda336a61f634864ad1361d4ce381a8fc1e76da01bd0c23f28e156ad745dc47bc0da063fa7972188bce534cef86829dbf5562396a65a7d94632f14eb3ebd6f5dd37fbc1d43f450d60f74bafddac39c12938c26b8d582fc88d3b9c911b49ee4355e9f6f4a32643e5e03dc4e9e4afea407f7441983601308b37d3f6147f2e31c6073f5b05f72c57a8230a3c577a34173db773441c4501833527b5bc509f474d504e7f5e7caa15417f398be1a053293900edb584508958e8867926fc3a3f216c9b71c139d6c9b12282390356038195a3bfe1be4459b63a751433176034a5a8553b1fecd488bee00e0115c8229b885a6ab7da4a6e9664c899c944c9c7b12931713c22b984a889358c2a6c0fc450fe904106e353f18753bb7e38c761b04fad00d795e1931b082e61b6f87e8c412d291deb2a5e46e8b83926aec018d21c608779cc26ce45e0e867834267419eecb98f328e9025e191079ba5efe87359776a2db756333eb930cd285d1e23d0c3e6b5a371941aca9e0074f48795de92a5da400054a2a70767966ff2e1ed255ec08c846151ad9b09f88451038998555d1f50ead345b65bcbaa31254f8e811ee4b42633a49f123e0c7aa357c30651f01d30402d0ae917ee00afd0e95917f33b73cffe7d71d1cb3d60055e584c14f965e15fa220952928d317b17f13f3483e1905cd921725a354354198a279b42e0b69887a1c68a138d34c22c25ed390e248b495ac0de7ae9c753551cff0ef95b40bdd7e6a013a7c8ee94b4a8cf374c5fe21ad820cb3253df99d84eb92542c41461b205a122b62090cfa3c9f86d02377c42cd55798325e38859c7cef27dbc60ed40594c3b5ef492a12c93b22ba5bf0c5050892996cb77aa25ea981249e7b09172334b16899a165f66df5c6a5b034b6f0da3da2dbcde2ead7695535c34dc6c6d68f1f4128eb489fd8d9db23775d2468829502704f5740dc57034b6a0fd2cfc679480cd3cc1d5b09a957a15f61c614ec574342ca260281aed381c83857977a330f8d3222c1229d359201f5ec03fdcd5683c64f437b9bc8a3918a17a032c116d86324d6c6cb8c49b82808d99da119572352d65c6ae512608d29d13412dd401fa083fc15525b79325dcbf01211ff1c5143a7a6c41f597a55bbe8274f7959cc01a329723fb29d5dac858e919c0fc7fc7c850e10d741acfdb03f3b642ad82c582bd1edc37816aba2b38e3bcdeed5f15e6f2b14069452b7816ad8f03849d525160d24fe58735d440440394b5d652299544004d002b8d61a6b65bfb6a3f02fa312b365a866c0d5c06c5b4986e3cd9d1bc8aa518e6708a8790c7593ba16c3763b813437e60830c5cb30b8d344e7cd01329be0437fcb784960bc9409ca874fdc72d5970365b83eb7547fa4bbc2fa1bc3fbdf68f019e5921096cc923c60ce85645911f1da13c58dd987bedcd8456d11fbbd8c443d263fd790f27e707bdd6e0577fa3090ab1cf2491a7badee777e00d802b5e94dc940f1e6785679292228f79cc4985e50897ec2081c280404144cc790462ac1024f18ea1c9022721f3e1d4bd55804cf2118a4c03e380bfbc2b9cf191f25b66675df9084aa7ddafe1ff697486b673192f4537e9211e8f5a53b25b681b461533d29b1e69813411c46462f3a1fc4b1fe73931a4f558ee431a8f75b7ba7730b9b3dd395f33658a49b35304d254deb190d473924657a09e52e536eda2c057735bcd892a92da5d6328213c4e10640ef04f6220309198c64a1a373a4f409e5e3499223fc3ddae2043f8541a7c69a24b9afff76583b21551340033a7958c0312d52c04707c91f0b2b974907cdad269876e3baf686cb5fb6119a2fa36cf4740962e952f5029e51e35d9c009234ef38fea61880f51205ca6e7d9b450ff951fd3374b371d7d2322658287be21dd6348ce7544d86b561e4659186d9d3a9388a3d21cca5fb9f1163e6622af66c4d6f280fae41bbfd9fbb166ef76f75a4134a9c61c9ac66ac776eb8030f2c7a80ddfaa58104c92e4737a433a7dba17ace11c734072239b54ac3da1fa51b716922403ee6e4efba981e5eadf07dcb9c2043f9d027747d52830ce91c6e1553356d8e50fa1a0955de8fd685001a7ca6081cb615e2be4d8a2205a1fdc6f025c8ce1ccb83a512c824e4f1912896da3f2a2b098e14e37ce3d21ec0eed954548013814f9bc3865c0ac0661580af11eef9fc8f6a00e6f3c4bac6e53b8c1174e10dbf7f24e49fbf76646536012b39484b5b80dfd1c4c9fd2b000960b1de804c3e79eb5a3ee3cf758ae63ad6591fd321696f5f73717629f5072028d6d5e6dbb233043536c19976a4febf58ecae3531467366f5e52d44c6c034fc5283375ab880b1e454fc6ed2bc8e436f63d3580777f0905a66c8be72c47284d58c001c8da8d4bd02ea0f5850b695ac253557aec08da08ad5a393a9c37077c11d3260cbc2cbe3801df32fa0d5f3985b6810001d289ff437c9da5dd14c61ccd51d22fdcc2abe3d5360f3f11f5cbb8cfe4a41187551720ebbe1cbf440d83dda74cb5273a331341aabb2cf9fe48d7b6b5e6eb10f57297a90fcf7487249cf0b594973bc0cfc6bdbd00ee240474aaf1e1945d78c64a6b039b49a9aa8e631e29c017645a9415d8d710e9c5567508ffb83e705489b414bf0057ac4b461958e676f29318674dce6c3427950e13c20bf6e27ad3ba81d77a4438b421ac4a9ae46c4bfb1ceed37ed006a570375191f1eee81a2640802cab3048ffb0d33d4b4998dcba986877ad378333cd21f62c4d8385af32e220842ea565840bbb7124495b54070e2cbc79e181e851d06da364214b1207bd8e66420e76fde8e3170d0e3a788aea83b540b361bd92d0731d0dfee0050eda893b140e14e3a019f723ecb6b4564a474490c3caa1439b7866440d00bfbd28c0fbeb14698d30f24a423f76542ed12a8b98c932daef2c498641f24db8c4c983a40234a42ccd62ff6ccd7374d70202ef89b0497a9fa541146c0e437978c3adaa114d1cf801ef407b703f320d1fb1d06c9f258daeb717d3f549aa7d97a3c30a84e26469802ff95d0f01ba5da9fbc071a85df718f4a8a3d9274599cd743d154f2597c5ef857bfce42a314c737f457232665f72fd4035c0593e80bbd55f3608f4539e8cbff8cd37a45515cb2bbc2f07957394946af5fbf5ff9fc4e59897502d436b15fbe12a4de3c6b723398cc2b08c326a73b3c7c87443de59206b6b7bd498a8cf32e9776853d96bc0b586f08168def8c2669b6ad72bdd8f895ddbf280e60ba87005ce0ac5ae0478ad6ce46daab02034f94b1fd176d8933c0ceeb2dafcd94b81e446438128598c4e6a0eecc8af5b5b27204ee875dee6deed12ded26445b1ab41c788e82cdd59493f1cb71d701f36071b81349e6a949e2bab8f0a24d401dd21924e6f4ca330442700a187306702a7d20113a4633590f1c0dbf5747d18df93b2e0b5a776d6db08f8f61cc0b8ddd4cd64265db9849844e7249c7fbfaf62089a2a981181b9774e0687bd0fceca03274087a8f0c2061a4918ac5741a9c4d383369d15ad994087af0c23ee67342bcd582b79ed647e52553870733f03c63e12af011f10033d335cb250f0a16ce31734743dc2733759a24686287eb904d671c56eaf6734bc8088d5c642163b6ef9e2a40306f514990aefbf86246b360dfc987dd8c31dd985f95f333a8d5cee107045b28f9a74195c491ae8a22f6369d0b9bf9c06913c40e3e7c22e472691af545690446182efcd485f15b0f6959e7faefa3364ccd09318ccefdc3e36edce418045eab895109a13348802f3db504e2c0432db73be3de18778551ea4cae47ae4453e094f3025b955ea881151c475050ea80466e0471bfc17a44c4da1403d89950be736b33693c285b210f4d7ad50ee169cfd41011442419c1e9211463a186d962dbbd1ccdf55fa7c335b674ca14e35628ea0d7a831d369fca6a815d729c3dbd8c4c8bf801fbcd25f2e77c21ffe1af095ac59eff8cfe9bf27391d6a71166012771e0816974d60934d152bed6fa65f618d0353649c48f22e019f02149ca99969bd4cf853160eb8209e926f82406c1afa8ce8aa220430217dad5f53e670cc170624ad5795fd7c45758ed5fa7112e4364a9b6eff0b97b456cdb0cb0b160ac9f3ae2cbb4ecdb2592900c8d8e50eedb4ad006f098fb3d412c17d04863cdbdcc2cea1bf19ccdb7ff1d4e08ef8d0267a768df550d54263f53816ce0366def0a7b01025c60485bd32c4a000f89ae5913c8c800f282bc91a341cae5dd4f84a40c4b9d2d1132ea4bb5135c7fc7e9520b251f340d9321dd8f431f09b80917d1996a45c8631432b116a304e32eb35f71ec3892def0043c7ae87e48bf23cc953dea3044bb1f6bc1d4dc19ced8799c6f6e33642d2bed537e06f3cb8dcd72e4b762b866bfd5ceb4b4d029bfb449ab8c8011e181a4e55718112d030ded4a1743b8c7e12637cbc7c37e8a204c16a3c28e2742a1a752d457cd7dafa8a6dfa8e4d2de703b85ca3f183dee877ae66dc43cfbcea7c3defb368990a8b5d32f672657c2315f53c4f0fd3e95c93942b9bf4b81f1aa461776de3fe54db73bd347e1c0dce1bc20b4d1ef1eccfe7d071a489f29b95becb7c2f14e86f3050a0ba4ba4a1cff0e01527215bf346108cc9fedfc9c81e03467d7da30cb1390cd4c7cf68bd92453d0ee6dc252dee223939883a1688fb275b0ac7d53e476e3d0d060208e665444dd73976f18db865f6935ae52f937af7c2a4ff8b26d03338bbe7d7b2925102dea439389efb156839c8cb51be2e1b43e024c1c87847cee5c3fdbe1ab3bbac8eb706e3f6642c6393e53a5162710ed32922c2eb6ce6fadd40eb45a382225f639decfb4e54b4f157e6074f4c0aa65089d9088111a5c4b78ca9df5176c02f228116bd724950345bac2379bb79593c7c66d7923b50588bb40e385c2d6638924d4392cf50f2e8b42b35fd32b5e061299bb0c8e8588d3e138411339f2d818fb69682c48c2cc3dbbefa5d8184ad920f71e255c13b35d5cc6721598d261f55c36dd6dfaf525c0185f005aadbe1c264fbe6fc1a5c28e25f43418fef6c40f6df8052c797e9a1ad95f1f025049cab427c1659cb8b724e40cbe2998a51241e44b2568bf964a2ff8c3d5e9d6480d01f5fa4f59c137327c1de94d63584d1188752729f9bf525290f91bb02720e14022739aad88df9a2ae1b41043d926d3b7f1fcb0ebdb0b94ed5f5888959f32dd38b53eb2c28594aba374cbef76fb7b6ef29520109bb139e4d4896b9dd1839e264ed9b66c23925c1348e359cfa6fc1a4c4aa8e0e4aa2cb4c7a60bc398eb1f88c35c8741532ae46026aa9aa5751fbee9afee440736c8868d49bb63421edd02bee89e0d16dfab355dda821df9d661df8c6b5328d449a2d925d34fb9c2a20ddbe8e99a1c40a9624781ab3e5fd3576220daf1ea0d7bf50cd4102d8fe3486055a9d605e1d86d9dd5989248a283dfb4c7412923be255169c61073b2152dc93d9813a3b53d37aafcbe309a84fb45a8ba621d45190760ff3a96baa09ccbab09842800b022146688836bd06789845fb1032e63b9702b9a3d8490a2bdd85f219e60b5abf1bdec1a2314d6c3676b97e2e8f10786536ab485a92b2e12f36418067b9cfa102ed96d1b701fd6b930c49c7a386d550b3fd0071cf4f3a330f66197abc20b501aaa729d26eaedf9c19507f8697a89652a57358f167af95f8c22ea028f698d3c1c75455692a65353b54c948e717519ed5a1bbf1efe57e6c2e5a2270cc0c05046a6555e82f981907ab722069314bf0d8db238952958d247329c68b3c076c9aa3d55a6e69c404478092575c1b0afc40f7984ebc559be38db015478fe88a45ddc15d12dc4891814e47557b2f12fc85457fce7f616a52660dada9446c718fac64f87d0b88a472ea6e105af3c48095760844f8a7c9ee504f8a1c91c34f2885eea7b2951eab956881655de10f3096eacb78041ce733863865639c0fd88af1d651f9b12c00c04a47a42d44e2392ba8c0767fdcd6d04f8004b28ae25a5f426e7288e8273da44ed608426cb16880006fa0ae6689d67998b19353b910780c1495380b0c032c24f9811f5b901044aa19e65759b739cfd9adae81554668d6303fe0829c4426829b201542c19619910cbf9acb5d46f85b11d5d4c44bba9f508e9defc860649d230fe0ee8de522a94edce7af2d108555d54fe346ba82717e129a266406e1a8f66b582a014443d7831a523b43963c57060b0f0e38663cc85641f733e9d9f74b23eb2009e790986ac0629ddec1c1043ff0d0cc3cdc42d60167404cbc96de5103fa2e39ef4dc6981b0a6fcae23fb97769180a0faa9eaff08856dd41f5a3c51028d5a36992a51e7da329c30bddc64366812c49e1265d614d5ad247fcc21daee803b16c2e2bc0ff43c9e89686048bdd7963e985cf8da10546fdf86bb3a516006d5e03ad1720fadedb6cccf0c6fc279d2967e13955217bc6ccf158c3887898ad75e2c60c36053bb2b7f43d6db7794ed1490e34d991140e0447355d0faa5974f7938149b2f85a7c05ad50d053ed7e617026bf98c111302f45197dfc9fe423491af2e3426d8f2fc16ee267aca448a3b5502cdab6986628321d187a1200be606fe90265eb12ecea13aaae71ab95b62a914d8ad849a5960cb4522e6f0a6bec3521ca6d0964082bd9dd4c2801c6d9ceb4ea3e945c10da3b15b0c442aafd0fa01bf823154789e23d2cc0d335e0809f86e90553173a94107c14656c7a081fadab0c7af01ab8eea640f00b47ae0db53e80d358dea48567556c4f406436be4595b132085400f96951219a5b390582b50ac6afbb63ba8968b4a72a6e1590f8b05daa4ecd819eaf37f0dff78cfd85e36d8acb275bbd62a8e4f659ba771a10faa3332081c086f5ab9ef8c239d93a16d7adf843fc2e8ca7dab0cf42320298ec595cf421e708516031ae194b5ead68479b09ad982db31241c97f38a16fabbcb1434653cf8da5739ae32151a3d2d5240a93f1b7d1a6c18cb5ec802dc85175b8023dc85a4b80179d76303454e1fc9a63410e301ac844acd145de98460199be426b35a5a27657febd8769a0523fffa2366995a5c58b7adba7d380209d07011526c072ac97cbd43a44f9ada189b88ba285dac0a79c85de4773689ff30b8d2672f342e13a73be2e50b60a03ed40aacb4f42e973995c700c0f95d9fc65ba6d21c70c7601d556e133b17aa52f8787cb02a8257c3781f9a0ae85a20fd7fc609c980e9483c8fcab69f4612a82f0b96697b082494bcb5d93243f5d2c6e478a5a9cf452424c93b5e4b44db9592ad8c09414378a6677601c3d1e0907d5821dfc6f761779c46d01e85b4f65f0f3c8cf608692775dd0199583c38fca6a7bd2f39007e57b6112c84391f956ee8146a4b2b14acb5e999d2958973c1034fb40b17a31d885c5d0ec481f330b1cc5bab0dd195060a4c04e9053d7c05639c367d3657b0461081146b95e1223ed41f2c18cb8e48cade234d041479d5e72550d4b1132adf1c315ee08c4005b7e448270e3ebd3ed81630da0546e44cd79a3687930c5378c0e474a2e17462f891952a7a4771e9a140404941c0932cfacd4710386d95bf75cdbfd2643f6be0e85e75604894e8305007da69817c40374d118eae1ebb8c772c374a02868e6e708a7cdd7a9492d93a6a42e35795da2945da1c39424e12910c591d72a4c36c14bfdaa997bd1dad8b1062ac15c1f74a8085d479238f089379c8de5c637afb77f9ecf74d74c0e009a2da57a6fcf5700a408cdafeb44a140ed6de3f91d5411b10479e0905206ddb8901113eada02d9783f260d979e2ca18338771842f0670da610becab8ce521b70e0847e190f8ef58b274d69e3583f5a855dba531b9f5b98c634603c9c8affbf7d9f23f7d49834199a65e4c6594f070b03b0a921a2e641339659a55d3aaa3da920113acf81c651a29fd895cb68d1f9aa231f3c4f8a5926e1f5b7cf187d07817cbda1788fd2afdfcf1688c9a4309750426b98e1d0ace988e91a0790c708341a630a503338ec163e000f1440f67fca79c039621472c69a087e25a17042e0cd22fe4614b7de35ee500081abb69e052e342e54c552813eafdab867c1ec49ec5d0576d90bb78b20c379eca01df90084958f438b05997f8863b02fceea7f88c77815d38b049c627d0f4e81d28800c1411148c42064b3d0fb666a69896a647c6f9ee278665596b3e767cf4abea20c12cddc11e9e2ee2bf61f28304ee23548c5a249a9f8a64c36d3c20db5744579d09e68d605823ca54249e8dcfde4f551b0ae7b2bdf366d4a7e8ea79ec25d359aa884aceb25ab30357dd705dfd1fce5398aa6e18ec8a269029715fe2462a6a476cab4e83fe72c8275dd3d0bf7bd60047ee0b36e1c48261dfab36bb1c97373c5c306ca58e33c2b8140ea57a6d86d69b1422cb16c7d6647c70189995816098fa909a715345ee2e66948940ebbcff1793e989404689ac3042ad446b33e21c7ce11fa780036f7737e8171799e26b4176f48cd50308dad4c76113837c9730c5cfe63bbb7c9f5d48826194a83cc1775cafb8d57899f9756dffb0953bd8d88768a6e18f354aa95f4d7c29627d903110c28354b0491944dba3be33d6d08ce3c7c6721eeec63a2b48ef4beb9cc5439022381d8ec7011fe72c637215124d6e6494a8947df5b9692c93c62f64bec73c94aabb111039c591aec5b6542071d807b28beaaa98e77f58db906ded701d9faa31acea171d472a94608dad613d4f557484e1a9710930815c54ab52a97bd9b8a0242d3c53c90082ee4d00e16389c8477f3750b548d8168753117496551068f7e1a80a3615c17791a575e1787df9be40252742f2d5cbc101eafd4cba1e8ef54a9999496c284f318f425856de907056e649870cf3a5dc8a859ea3afaddb21a3af1845d1066a213926eb6a01f53c46a7839b234964617bfe5487f0504a8a3a9b8d8a182b6a0354411c3f9a00e5040556b21b2a7f4b51ad170904fa333d347b504cb9604c8167c3b79cab636e2a4cf3c867db3fb4c9eb0cc5fbd48614abbfcf170e74baa6db3ab2445fe6edbecf18604e4aad39b34c953fc6c7769ce1d89e3b3de46b4cd15fce4ee016a17b4af13bb0bf10ca544662f8d4638161b6a7f7492513255a8bb45ef1cea26819d0e94999215200ff5a28697ea2b3dafbcfa43f36793e4d9abf5c65c1eef9404f270b5d141ba442619ab44e92df064904e18885c01011e5e5f275388307a64510d9090f08bfd34bf1f791a4d20f5c589670a6074d197f76a5c295be3c9572fc4d5770958c2d2d2782ecf107e71ddc3beb1bfcd5e2447572702576e0e99b4d6d330d4d330eca79d08d00b3e4e6d0af41bf2cbe311f3cc76114a828a6053154a6648954098f2f68db25ec18bebc7cafa300e0cdd4d2ed252a09334f1145da6a412a3d0b1960340fe640bbfe93229cdc068694ce781096572fefd5f2c0d82657f893344174d047948043f864db0a2cf5e0d3191202316a88934a6b953035485a50da49c802ad98095a6ce1f080c11729d6322ff9d6ceb4813b097909e37e4b8a9419e19fbc028c6c222c476d8d405957cd413b2202b521e6c1df63197fe119fc300236b66cdbe981626a0b0f6c9a5240cfe19b91dc0e65f3c637a9f8a6e6e4ff62d19c09e9f00478aa267278829c4e244b0da094684dca7ae03b3525d5c10f40c84355dc09ec376fb0e0eda9aed24efba9cf5d0c2415c296cf283ecb5f5b676ffd9f00cf465d412d82443f2df52b9a3dea2dc30c6a5216f878af2de6df942e18a174126f8194856eb4b6516cf822725e74080c408fd43611524d5a62988875f26da9795eb9ac684833b921bc8a7c2aa07d1fa1be06b7618d9be031e7869a225645c03a160d529b836f8600bd5fce4e028002baf08f6048d87d76c502f47ff7467f7eedc87e110409b8abd44a40ff576fba1f4433cc241d3ba9494fad0372e1d15a0481b0045ca8161b519000dbf88f728da8d26025f6c2eb5516a1c73f3b47f5ea6b9ed0b94c2969cf8eea35df533279f78d31aa1e8f0138f6adf71669a39ccb5122a83ebd0f67eeb6f55b20afc67462ed097affbe8a0d174040468b9dad17c94b3b472e00b8456bb9e3998d7fc98155d1d3137bf0a26c014aa1b98d5d615a204ca09bd3c29583a93aed86e5eb901a4cb0db9d8a79a9ca924f95202b7bb9d57e8404eb476e7f24de54a11fd1b67e244ea9a1f046f233a4f699dee1d309623ecb25c007d382f530fc4da85b39126ffbbadb0fada04a8366a0a14a10d3f931e1bfedd50be2e9c7408ebc0b795330339f0bd4645f87a141915ede69add0cfa3a9c417e29130da7a44ae6d2013897b2402f5548c8f6909c245d0cf1ce7d1fba63b86f148b64d420f5d804c12010a8e69ed87c834d88caf84444ef755ef931e92de9767fb0327429b60941ab9da5dcf4f8c96eba874e2a424126f9fa59e3b522ba6820df6207243222c8ce74d63593e4ad9c28121d0714965b3c457e19fb00add02ba8e14659a3ff0801f5db348c6cfdcc0ee12589a4855f7abcf85e1da58db2ef7d4008ff4e63144f8eb7e272fa3320317a021ddabde6504f61f4fd491ff51ab57a04fac3ea8f7e92d82157055b4f798075cf245a535214a4cd9d97645f161a7baa66e18b2abc0ba009e09a0266c5bc603d93ab20a6278fb3a3632bcd15dcf614c7003fb1679576a6c39f2814113effdb4888284eb1a0c3d4e2ef0a1992de309eb0702012351bf664f0e4cba2c2905beb8122893c513fdff23ec04f867859206d205accc09660431379287fad744db000a461a8ae2381834f41978a264beac3400d36cec6dca831fa004c4f5924e01757e803e8088cd0aca09e9c8f53d1922735911561e1085ff37521159136d6d25271e2faf61f121eb3979c0694527720ff7d9ba7a34c57f946243a291f08a5851069b65f495dfb75003720b9fe61180c308f07b8569a8c397bf03ac0281004cd8143da29941ece2f47ea99f5d76fff3a2ab3231615c3f2eaadbc9968d68567f4ba0a3eeae0773c305afbf675901567aa57b62b30c61845eb42afb1e7a010431b96080c0bf3f5cb45b818218cca406b4ca8e650e0b5e94c27811c9aecbaa9e8f667706d8f99d801f029284c6a5c0b07c32a9d0aaef3aea62e3afea10f42b92cdadd8f7944cf0f573add63f8a5de196541fc07bf2fc6323f675e8e9a5ecd5670479614b7895bba044f2700b9a6365aaac279c31d8b79a7bd4840351de43e631979e2358630130b138f9f925327daa5a0632df60de049fce57410966c38155f477144fb628a09dc9dcfcf3cdbed3786b91dc47d6e6a81d7a3ed01578b60f1850dba2723f9d03cd7fe8d509cf19c3f28a7b02962a00d9c8807dc1903718cd89239a88f1a75928f1379f9ea8aa048212c4cef5052ddffcf600f639949283779351a006ff66a9579ea7a89cda990c344f89f9e26a73272719a13216d036810ce6844f0cee6461e259650ebaa039aad85ed190dfb20ff356a66f7f88f9230e88672a32c64ba2166683816bdfc4118da7b97a705e97638a12da6c3f98441ef00edf05c0c12cc2f6c2588a7d5375a72dc4ce4ab4c40133ca28ad73059407038615271bbf20e714f4fa4daf4ca115299e6e06cf13d7b88af35a847bc79cadb0bcc26f7c71f9d0257c6b17b4ed676c8e391c7bb2f01ec6145e2e6faa5c70864d15997bd80b41017e7bff6d6843e7cdcd1863a72bde773496f0648f2c293710d0ba1cc330f8764e789f85c8282e7390076f1bce52813cbd8dc088050a7a3f3654c852f657e0772c710ab5f98d26d0f80a6c3d97dc9d3a31b2a12c1d8e14496785f0e81f00538284b57e0772c59fe67832de13e3e35c646ca549fa5762d0b65e8f4a88d78b264888d8cb26019ea2c4fec7dcac03e41772080b66bfc6aee10696740ad633247935f2202e408e1e47d91b652389229458174cea7a5b259ac6a2811510e579d9791e0027ee11beabf2111c580f4c143ef49f902b9f42c955350b3062635e526bbe39a5c4906a613525061aaa9cddcac39e40c9661c1d50331d80db253125e4b5d26da8a728db4d9234582113dea982bc21d5ec9be04488cb1ccd41e0bc6f6434172b5090745a47ca12d65477061890f1d6e6bcced799aab1b5e8283aaebe22a2a51258e621d46ae81835b713c40338b1acaf50528cbeca72817ee4820284da9c90704bdfc1825e445940b28be87bf64e61f489fb737ee81f145176486cf3782ea06875e7e851c539c8e8a5378eb0d6a4a955626071d6fae2d243120a1a36b15907665a2e05f1fa62758618733a2a23a5ab10ca9a57c9e198c1bc930c6b51ebf98bbaa4435ed104e958bf452cd5272a9a9d7990dd94be3a83ca66d4b2b67699009bdb725a4ca148f3f458ca509ee04e2d2d00815bcc6b6e248149bb26315f4a81975ad6a5c0c4e78f0d53a5e85891e9d6a9ab4e54150362bc8061c9177aeba120c37dbe51ddf9d0ed5cbaa2caba83352b3e3dab1cd02c8ef21d531ac05fecc3c2035c3787555978dfe8cfd122b75480b1d40f9e6dd053ab15b164365b217aeab611fc6f69726796cccdc2a1dfd14b565b1ad04a690eac69d53aea2a7ce9cbab1efcd359b3e8b1d8eb614dcaa8862f162c14888f81ccfcc1dabd91dc79361fcaaa2de85efaf194cf7544b5b4807b5369cd8178f159b842890b7b8b6105c76093d2f184cea05f4e4d50c5f8baa45a5c947040d1fdb37179f964b494908741bb076853176b23cff2d83ed0f142e6a148bcf943cc58da5c60ed2300dc7134125469402641c8aa7ca5353a31dad9dad8a34a9b64d5f5e3cabbaecedb965f35d8b6fe506125546c265f49349de7b22abf1ccec705dd22c76c554f31d8667056f91fa83ce8ddab3cd490ec58127524b4c8cf111c1382c477101480e7edb42c6e7c38af2039283b5e1b720f8f0ed8aabda3af2b44521396ab1177d6e3e178728a561cea969d0e40786dd8937899aa2c48f6ebc1a2483eb98b4679a3df0d38cdd0894c497472f6b863cc1da3b2c091d0bc58d973a3206bfe5859f009d5a627edbd6de57e3e97a85429b8dea8aa12d0c3463cf0102fc548ecd996641b55d6f766b68cc591b5dd673da888b5add538fcf36aa57a94e7dfbb34e8ec5f1def85dcb7c8ebd4040f22cb2cc3be70f852f808dd9dc701284fdb81b591ae6f6d2f96e5565c207a1e4d4723d46d6f904c956e61284164252140e352381a514a236ec50fe4233662f4816e36ef4c4ae4064e7fce6699a1b8378e75099b50a0b1c73e3428ef83b12c874366bcbddb3a9f5789d206a8e83839ad35cc5dacdf48c5bac6ad41a3a3ecd620194d86d59e626a0d17b31dbfc946084c8591dd03e65ed50c50e16375d91781f8d70b9cc1cc38b794119a8f28130191c6192612a941129ae228727cfe9f246524ff7bc670fda34b88816aa095a917a9e8d7fa35e9ed18ddbfdb81ba6fedbca88b85e37212b9148dd075c6913287d31f1f6e478dbea45612e47845206c7606eaabda95fac55b942bd5139d21496da9762bc6959d6931072c033bccd42ce461c386f323cfa1ca59167d146f49c14661a5fbdfd562c3da277d1e970aef3bd7799af2562470fdd51d10ccd3fbb2cb5c63295e9f7a35ae378db2ad4d124768169f8284603f56e5f9176ad681de561922aad58315bc3e3933cdda906e51153b4093f418b7619da26a6c004de8ed6f28869cfebe43a37345a75e9823502f3e457f8f4abdf63d90014e73efb0d1eea262af2d11a9371fa23545e55eda225485b7415e3e4d7b8f4abd6a46203d7c39cd1425fa23728a5bf80607a27f454fbdd9e72b57ba6811715b399850fc1fcdf5700915769c2dbee659bb02066a7619321b72e378403fc636bd66ae9609902ba8c98764439f9568365a1bd777b846981c43e7704c36b446a9e0de4e1dfb89f3eef77873693dba419b86032879ad3946c7ced65e1a486d5ce7c07a61324048e0a0bb72e398aed90df6afc33dbd8e0f5471e114751abaa68670cf7a6f2f9b16013241787a9f1f767a6302056629e73c2689a7232499ceb4c7d5769672286e68a5f0e8e938c5a3d655fcaef1d4b4551d65455db76c40e995ab2f359c13ad75ac5382fe3dbe434725e894af7625210df6582940b066cf5ab11c293541533385c786d6240f7eda06e39fdd83c1d25a9d8088470894fe1c6685d2d98a34c39898e6d1f86ea628d474dab0c029bf6c2be95478ce8d9b1f5d66b4b145bb6e14ec173ddde9122fe23278df93139090ae2daac4b2d66fe146718e17ddb4eb586fd0748033ee86f3e1205981cde538b5e1fa0454929ec2bd24e9c6577a91094adf52f76f23ff897f9bb98ef099369b0e3b90d1a316723652341599b8e343a9cb09edb9056e59093699bf0cf32feee0d4d4c562d122fd09cb21fcbd3f30c427c3b3259f410a2fcf02eeb9b90fc7329114b141bea27d8d2b1703a775cf00a9a0622f05847d3f25bba999de4b829d37b144f21e7c8ceafe0b522fda11490f1f4eb78b8edeb623598f7c4cc3889a7bb38ba0fef99abe357af6c612c17bf0317a7bb4ec9d6104f7c247f48fa8a917e308ee8b8fd20ea2a397ad08ac870fa7dd45c7de5b22537fbe44e9dd05b277b691dc0b5fd13da2a65ed45c6d2bbdeb50a4cc956e9aaeeaa7d0e96c28817bc72233984b1bbd68067447be16b12b36221a9583390336d047edf513b4565aeed9c6f8c0cc385b722f0edd25650034badf7abc7071721707dc7515d1c172b86f98d18bc53a08f4d5883918e518bcc1f66c3eae4b0ecef4b2ccb335bde10cc98021336c75e0e1f04b4d5b22b17a3a2a438296a54b0476cff7d008f3a6ee15a93d4645726a1276c9b20d59cf9a55569aad21685a442d0ccd2042cd6256da35d5e6fb870c5eff05bd3b04c9ae679f2274a5197511bb8d81169eb8bac26d1ede7f491fbcf4c810abc5c2bbd4d6e38a6efb55e5e630c7039a9eefa57cf9033b68d4a1947629147fe53f64f7d71f2c3f68be097f5285eec79d2aa571e5eec4223954e6d8ce5824a11927f8f8c5e139941a2ffd927ed221fa9f221ce8f4b2856b50028e35324ac75a20f5c2d556f94d3f320af0b7afa372c17f4484b3aceae73df50fbce88bdd91b343667b9ca516794ab9e71f927af02dbb29887772c40bc32c45b0624f9b75bdb6aac9eedbb72afe282749b7ab138332f7f740af66d6f740a71a5903bef940ca55bfe70fcf8c7911a6455e4077334f67a2f732abce442f65769d79f4234954aaf3023a953974063a3573e90c7453e6e9cca3ef4ca252c82eb855dc4233dcaedcf066a09f32e7661efd5112954276c1ad50164133e1af4a56d8ccfccbc8529b99fc7249f507c0bb90dfa8ecc1a71f25e5c6a2f83e8c9b85e7c38716a4fa0350fa8f6261e1fbf9180950966cefa3c92c32ff3f50d2a95f502f405113bbb6acc3e723b337d271be7fa8499b5a267fa538d41c93c2ad92ea1b8ee54902626ef9c5f2a1fe2c9c3f1f6a12a996c9a766432896b5486aaa1b7a23434be6a74f831a2967fbc192fcce950813e133138833c0cffd161a24ab333f422fb750acf404cc12bcd6493ae7eb27c94e378f8c03f2d3f3fe4e8ef0add6a39c2ff7c1e3c22cd98fc617d3fea09ec0835c73e8633e5f24b91429c9bea74ee3c7c3187b9d349de017d67946a4075340db7492aad1427fbbfe9f8b5385d9caecfd90bf42ff0e4f800cfb2c2124d47950e2138d78ed6e611d1f782c8f0c56b3c4516fc21a29cf0a6041322a4b62e8d871b3cfdfbc18c7b5f3a71f9767ec3a8d8765d24d57787ecf549d769cef2355fdf6de467c3df0a1015489645c1b8253c8afcb847591e3daff008e72bf656c8f319f338a9dab421dd111962aa023ce8035e1e64347ef0aad315c9a71d7310c2c496e5ac1f9655675aa63be8fabeab8efdec1ffc18716902524714d084e257b46d6fecf8ffb5ac210cafd8f99398dfc9c8461afca20484a457a02ce95f94241520084f29b2692e27edf3eadade14501363f9bb0ccfe360500186f06140fb0a879867a87cc152a45dad05e210107740cf8d6e50cad0f4815d1a8e93ee64b6da2b3345a53e9c8c551970e1c011fbd5894af70e4126647bf03d2fc13faf7ecdd6b73cfdfbd76f7fc0f257e2c2ef4ea87c7ceef420740da5189e887c6ea372c44853c7d58f9bc2cd66ee3318ac52473886f3b5ce80d9fbf2fe6c71b356bf08564ef356f177715c39635c039e4d1fad778d6114dccf1e5eda099391928994482738684271ed0622cd4d1ffa5cfbb1caed642d6adb780d0959e80c9878529d91d8e87847b06ebfdbe60f44a0cb2d3b13a44391ddbdd69baff21dc1f4d822ba214cddd62cd020d2d4b3849c32021a4ff48730cef770a8435e6645f0d45cf6ed8fbba7a01a863bb0e48c0b2289e8950d032dbebefced49002a7ab2bce5d6e41a2865759204db1624e4625c0ca2ca91277aba2d1cfefa06dde1990be294994e7842e7e4b66d938df36e5329f73bf18e8834326b460496f4136f8f82ea8cc25790dc88519d9d63eb98395dbeac26aa2c396c681d01339506f8d809f18566a841e83637cb566f6a4dba383d8add8a4f23ec436757b7e129c24b1c9de38e5411ef92e82b8d90f56b264740035d395d81cd714d7bb0739fb7ce46f67e9e0bd3d702f94049adf4dc6405bdebfc977e481289c0a404ccafa7c1359ab76ed94238b9dd940a3b5040611712cbc75adfee60514a1149f2bc954c72e4fa1f08560c73731c4641ca70d08290c4777b579e5a0d74455351308aac480ac1a9d87b711fb02551191b393b69fa2a325946dc492103869a998c7929a02f58ce9bef5a6beb919a4ea1da533acd58ba71487b34be0a8858fbbbec2ffc645117b524fb6eedab5973efe518294127bb58559aadbebe78c4eba43a2335b55847fc21d72afff3e5a530b99ce8f50d05c0668ce1a445e2efd2426d081044bbfc89ab83d1c1364e668cb74d3fcc608f54e1733b2a0cbee6fb29639a48d95a75edf6f9c5f4aa9865bd7303ee672d66ba15e1868e99ba66eeed344a8a7e7f7d8c32236a9ec8d8c58149e6b5f0415d5d4f9a29b65453ff37691a67d346c8597f581e89736fef6249a8fd8a298231ef3cad34b76e0068845c76743215a2d048d07910f063ae6c57353983a633d66335e9aa3c3ff16bb2e2f3487aec13f1625096aa60432a0231896ad39bdc7de7fefeaabdc3b6d8b330fee12c1e3455256df65484a698ad0b9edcfdaad74688545a87371d18459356502db8676a72eb2789e74fdab85a10ec39b97e2bad5f157c891d60c7bd8c2be01277b373704f610c3d28d331e6dc4b0b7cc6b12a81cbdfd760c9062eb0e1523859c3ebaec0b9122e69f47a24fdee1b934a3fe930d19d19bd3748011453193c2c29a5c620c55d446ad44345a1848c4fb68d188b7455f76a0d28912b4ce63181478446b3fe5d2a0df053df8e7e95af33434b90d4b689047eeaffc112a21e003e33598829e7bdf8601233402a694e0487ef94683e3b205c828fab857eca5b74b2514dda13b9717d176d0d98aa10e72a0d72216b90340c11a1748e1e1eb14c26d7621786a6ea38b9873c02d8b440e2531bc4e3686894793518feb2d0ea4eb85d42e408e6202566ae34f1e696b356c8582678746bc8fc25ab9690c820ca21b491918d39d32f0d62b247d52f03e085d471c0ebbb044dd41cffbb9739415c886f83609044397dea2e9e7122f76385dab103a180d503ef83db1e12d7c373decd4180365176077262e478dea359f28141995acd523fe29b18fb6f9e5721887beb6d558b39901f781fa14605437a65dd16b5cd846c2329679d73df61eb517d5b1de182011d42841d0122baed2ede540d8339c4e75eabca0d99c79a69bf5645c22f2b1809a28fe05977168ab2c8084ad8f0eb3476c0ee3c195792661f0e8211ad1d11684533bf01f66474f4eeefc300728b5e3e37e7f0deb12ece8b9d0f8a770d5d4f8cb3241c31b09a0c65412c65e1aec4d375130b0ee606aa9fa2d2ea10b3739870764575e58168e0a706b60b9ab9ef1d5d2dbe746958be4db093514e2ff4717e6b478928489724710e76df67fce44f8a70d016792ee0518f21511827709843f690a82d5b43ada3635380ac620d8e1b84ad5ed8cb866cea578fbc1f9ebe57050dc27ce8e40ab3a849685d92143a952715e557393788a2b895808ee8a32838b20458100a9fc40ccf9439b3bb40940dcd0a041c5c1e5ec1e4e973f9628a1cac9c0e6e00b248a36a0e1b349ebf541e87c9d0136c4cacdf76299dbd7fec7843b5326f31b284e609a325562fb9614e98a74bb9270780c2bd13500b125e5fc426db68b6dcb0208c604bbe086abd41a4a9c2d48bd5c8933f9ef9421cafbc9366911f28f3f1046fba16f4027f171520359d660a909b3b7feb23d6e56de848bbb01a8b0b6c09673f0a5ccdf757f43582f276839c0f4a030013ba0e2790743011c44ec9f1bfb8abe5b16d8d45da792feea8320b015a3079f9780c306bbd6e5872b9a527fc01edd093218a53b23d054ad85c196999864890e8e57c1e8fb18c47a618d984897e6b7a259a43256068eb87408aba2fea0948dc475be3868f1e862e8b08e5189a8b11596992a6e7bdbd39953f035833e12549d15e3d82bf2b73834b698170433f4d1a42faeaf73e192d54cb15b912203cc86aeb46104e3128aa0879c412c04ac0ee72ca187ea776cbf86fc6ca381cab564698c80c3f3ee702391e0fbe8e31274342068f1ff7722abcd757e1894b8ea4ed350c23da8e688dd630d555e282d4b6f9b1c9ab475acd5fe001aeeca9a5c5da4ca3b0cac383cf70e33082b74088e40fc022cd08a17dc72539bcaaf22bd991d7a562536d56857b500b11f42541596eb3578acca727d8172e41b958122c44cb5906b9ab6770c0f5d3434ad2244a52963e242ffc3499934dc8604a8ec6b08c96cc34fffb0e2be079adbb2f104baf46af8eaeebf00bd1b91206b806127c93f2228555c642ece9080ba3c6f90100924456bfe7ee42e547e44d54f2f10ebabb96ec36db93825b67ed10c85ba07048753badbff436b67aaf624427185205fbcd8dcac6c4a61138c2d214e6ef85065a52c7c636a8c47cc6a24cf95141132b31f306c71bd851b69d872b64ab66f4aa553d326309cb321b2d4a575e3cce04c5ad86d25cefc1d17583aa62f111ff84be58f448e3973a77da201e0ef20ed7f11208efb0a2291664b8019392e0bc29328a8fa4411113b00b39a5614181b5cf27e03c1c0421956720aee7a27593e1d5166633cc85f0838abe76ff292f91554a82dc36609f1d6efa577a8792e0c7f71137d2dad97e1776a611b959f9f018e9c4b19a95ae65bf574f6075a65102f7875d98c92a5b6b6a6472d1ab584fb7425612596b59b93afe666d3204dc3a274d420e2d64eb02884cb69bc31f3891ba78d278169f9c869f466ff2f936f193b80ab711ee602f42828da92862e91bef4923923abdc84281779f9b712d462697c32ea0e01e356f4bab9ad18ee7dab15e091f303466b7264c278b245d37ccd8feca06c7489120b127a645aade5b456823b1899e4758ad04fc2306a754ca977301c04e90168444f8c2a23f24c04ddc39575dd53a86781f3b08b677597869f5298f13448b827d9eed45e9d4ef52ad831725be233e53300830618e91418890b8389e27ba49595d0330996e99e9696edcdd06439a800aec136fb64b8622730ad75ebedd266c63136521d3227db917df8e93b4d687ed036c78bdd4e26d63e11bceacb484385399a3966c9576ecf1d1ba4a169b3f3c45bbdf6bef06160e0683e527bce70c60523a931354d291e2b61b8c518d9426651b6f8ef284d3a17c9636bc2ea94af4c1bda5980142447b1dc0e306a96b6eaac705eacc727624f9610721b1573ae7163b7079c835c7ec97637b4a707c2aa35205f426364e940d1137fbdcaadd2e5ce5613522b7d195897729a210c82ae124600be905346361a31025fb489fb95b7e8516966099c60db110b7bae8f005219dcc1e61ad47dc0c11c7b50db826a08cf32d874ec99867766e6fdeb59ea47a4a29aaf0d312abda0fd0a7617ca9c84f340a3807a962564e62ea73396e8d63d3fb1770739362d3ba628e96aafdc4204ee6a04f20d5b30d6554d3a31934ac83fa3bf7620e4d61ce7b3fc4a823ad7b00f0f9ac7177fe883377edc50125292efeb8883f198eebcaf8e57c1f83a56a0ec4179b8a71b2610560d329213015bbf97c7db5a3c7e5bb3356b89344208217bcbbd03f50c5f0ed20d326d4363dabd5f87f49c086ac434b680273b1010104f76f36a27a6c41cee73720837dcc439aa2782f0811b279c08c2f64c43098e656d2381bc28755063d114acc0291c8bac78824d80e75df3e6fb0d71dcb4e12eab61f35cd7b6a1b1222a8000cfbbba26ce00a3076a645d16d830f918106a7cc1b1680a5130c5b1680a50b0d693044d74f70bcf774f97112c5881e5a9cdf15a42966559076140a6003432c90edc088eb087e2a6a61367c7ee39c6182f97796877dd292db58faef3c11ae53e8188939a6ad0391f63fba071e226589ab61e22d682e8307627691f1109cd9c73cac091081347b4d401af95c343e5cddce5cd70e9f2b672bc56f3509c3df77fb0775b39df3defdfc7994ce74c37762871a9eb90bba779deb548c4d9cce2b86fdcb5d1613ca53b7418b5ac334ca76ddcd9ecdbf8c72429170588337ae28c7c7c150185d2ec9085c08b2f191b179e2fc927f515caccbbde455357ba393ecc75dc94c14bb60b646551b34be61c2e30b35c066a7e34029e9fb36fed7056a1e6e319b1a47d7b88587e5ec60d8daea969c9f91dbac6c6d884176b6aea147741b44d8e8675daa39226b88bbf691b221ad6fd339d76883726acebba524f87dd111d769207ee1ea3418d35e2e65e6f0f11132149d235dc754209f7ee4774e7b85c419c8f7b0395ebbe6da96d935734c930d7a1f66ead7b66634bea8d69238334ac933773dda516dd53efbaecb2bebb34d2ef2e9fe89aeca99bb92e4b5d1e9af5ad96883e2a2639d19840fc793607156a9650e0aeeb78360c852452a4ebbaeea5dbbdeb3ac901f17c504da396d26dded8cf11628d76cd8c787be4b8cf36e56cb89b96fee0381f6ed24753769cdee6bd792dd3e8db47a4d7aed178049ea759f6f97528b34b937677369c7d9a6a64ef9af9d8490d039e90cc3269f34fcc8ec0da63dcf0166dfbc0993b1bbd7c34d12c71f625648cf8ecd2c6d35642c688b7857a091943fe081c2f6dbf7d742871e6ce162d7d6623e6b20e7c38e6f88410638c9d4495ef255e9c36dd431cfbe61c21a69d8d0dcbe4b76dc3dc9c3b1bde7cf06cfb437b969d5a41849b00c15efca629878640c6c83227648cbe34d5c86e8740c6e8d3be3cd73631266faa91bddf3547bc6d76eaa32dfd91c3fdd01f1dfe4c7a77363c39f9b6b1ef7de4cfd6da12a42004d380635114a2600f253d8fd3b89871b4fc663388333a6d4c9dc9c686655ed62a5da73bf75277eeddcd6ec681b36b7d03e7f81c20eed752cf1428813dd444a24a2c7f905842410a8e4212e6ee15450188e7a9640e9b6e7a6c3978da35df419dd4555eca9eded92a9f728253ff98144141094e82675113223ca7f64553cee975470cf65eaf9980503d05e2aeeb5097003fd84bd5d7a7dea57eb299f57802ac1c95b2a9479301245e394ea7de9d5e33fd70baea299b71e0d435d30fdd2beb99c329d673c5acdb22c00f66bda25eaf32e207a3ee046230ebb6bceba0ceba873aeb28d459acc70e5137e3c0f5b143d6cd38b0eaaaa78e335336b3aea59e996c48bc7295cdaa9fae0184aaea02b1f2d4d55939eaea7c4fe50071ead566d5cd01e295dbdd9c03c45fea6dcaf9eeb3a76e6eb9b143f0b443b03ebb34fd506f9698e5ab47d30f2c5f1da7596cf6c1abfad4bd949d78b5ba34fd90554f118159736269fa21d7ab9eba13b3dc7c01bc7af6ccf443e3d5bb1fea55977573769e8957cf55e5e61fbcba2acf548ed39d5549a56eea0610aa3c33f592e59138d521515b3e48acbac4aad76b7ad7cbd79b4bd8d3f1cedd93a69c1256715140c232381645010aec49d30fde39ce7a2a7b92e78aa0700473f7408c3acb661c98c56239984abdde05bcb9e2fa95959b2b4e7d65538f6de3f295959b399cbaabbbd8d8b0d5cd1cae377f47fd2cab5dc5e61c2056fdfbc9ee9058756aca69acba34f9207354e76ef6ae52d9933411e047651bb78907d5cd12ab7e3acaae5e2deb299b419cfa445da79e75543debf5ac1b3b4c1df5d54d1d67aa6ce394cddfb7b78987c6a7ab6c44dc525d2765800dd4564eeaf5a96b7a351d653a4e9fbe9b03c4dee5b066338e1a9904c23940bc43e6a8607996466dc0cb1277076a6c1df23c14678fb795133f9fe3d541f10ffec13fd8eb0cd38e12cfd9caa1f425dce168ca9140401847538e86a76d9bc19e34d3a2cd54ca1b333931f035ac97a0289c29ed42cddfa94df3a35e56d2baed63cdfce179599f4bb2389ce76b87ac0e1be70ff7d761533c595d43298eb186883a6f2b679e9edec64095ffc1ed6180d2b9490dc3c8680f943a297d9e73ded98df3dc1af0fa428e17a6d72411ef22a3343273bee24c7c11550a0f9d377358e66ddb367a2dcff68aa0c5ecf339c6ecf1522766d9b38c12f12e78329c6559142e9025e9b32ccb5acefb652a881fd71bb0816f30bddca2cae7b8c131d68f08387126b2b22ccb6a0370462fb750656673bc7096d18f6b2f54f94cd35edaa571a3692123a15025fd74e5f93927b531cefc1c8948b8884830a5b3dac853aafcfc0da6940a8f85274e9c51449c91f7421b56b76999c4dc0d4d4b4146d7703799ec033eefe084c97bb2b37272a7cfd34c1b274c72b776d8b0f9d3936a28432323096b371ab704b6dd1b1d4a6be335bda65a383dd835df4d9b67b343c3b4c7980f2a2b880eb50eb5e3748ca8e6c8046b8fd1a04695883bbbcaed216225a48faee96bd9d55a7d87e8a3768eabb94e1b7a63c340ed92c35a777adf7c835b4ad6a58a5c91a8e7636da5aad89e0e59d73aeb6cd5595ff5d835a91aac1bdb7697d6f495cd60eaeaa0d5660e65f3f1e9bbe9628aa3e9f3ec2bce80b125b52fadd09e85ba46e33a9447744dd764974aa0ae897fdb48eda18cb689b167d7ce4d9b79ed75dad06b8f2fedea482229b97d408b318bcfe275b238b518639665e7b22ccb321798c909038f5e6ecbdba9f64dbbce7639ed54bb767bd6ce697f3d538f5a2eb331ce68db76a3abc31867449c5d385290eb1aed99521971269e73318090f6eddaa58e96c953194d6a41bc186ba8a57faca174f69c3245876e1c2f7574481ca74cc131c619fd1c4f258e8f570038de38e54ca2089e6dc786755a8917e79552ca4c83a594524a2ab97874230aa63893f2d053a7e5fd3a24122fd2926d33f160251093724c8a49d2f45c7164e1a87a0671740d093da6f27cbc7a7e855826d3e0d8432a4fadea4dd794585652abab2ced70db5eb2371d6e67b161c3b6afd8cdc696d4ee34d386957a3f8ca652ca821d6eaf16a7c3ed28bb4387db4f36880eb7ed9f6d4087db3d4b449cd9ae62b9866dd3c646c3b66f97b874a3eaec8a7f389e9ee9497a2c57ae19c4ded541737c26d9219031c618a5e9a5479b63127ebec1d974f30d367dfbb4f1f9c3b2d6e7a3b89b096b98f768634beaf7ee32bae654bf197b462f721d6f367d3bce3465ee36b0cef61c2f6a6a3ae445cfdbaecd15c7d79ad892948d2da9de3bd4fbe32a962ebcfdf4c252066fdbbfad062a8339c434585e1db464330fc593bb9f56655f618a247c1c8b984881bbaeeb3a7acd6492579a8020f28129f6624d6d224cb1473fae6d56dfb64d16c1dfb32482b59b6bc89b7fb64dfb766aaab111e14c6aaa215ba897d07c60da35ddcd126b5b8c5b0d4a84b71881f0b0a906bd2dd421cdf130aa74f30f7d101ce2583445142a90700c38165141a4a80a1eb805c7222a92b037bfec091a6402e91f126bd709bc6dd7de4a481d22d66efbe870fbde3dbb9629e6e9fc69db27ebdacda7af9e4d8fda539c4deada59de359e59515fd9d8b09a7926f6ae5dd4cd3c14730610aaa7cb43f1d6dd1a40a89a2ecfc45bf7be3de8489dee1b7de6a1f8cb40e5999867e2eff1664924c3f4bd84d481bb3adfb76797a69cefeac86778cb3620322cefe6036bbd848ca1953cca8158fb76ad0707a60f905fc82fbc3d9a72409c71607a9cd62400627a75b6778f266edaa43eef79f233d5287d9a0cb0819a7d28d5c390d063a9679f9a76d5f6cc61ee2afb356cbb96b2afae91b7764d0fdd678754cfec90d063aaaf6c6d5876cf7ef22a5bba19c4b2bbcaa65eb2da372b31c0619c2963ab7d711336b9b9dddc83b7537bb3f6d14bc818f4f49b9d9bcdb29d89b38cc653a76620b198a7cf660e104b0af234ce9141092f58420e10779fe2be2d1f4e6fee4f242f76cd97394f66598d79a76df91ab4c3d9b293f05c354299d70b090bcc14cb9e34e36ad0d640a5d1e14d966d5c762d62ed4a593b9492d2ecd561f672fd5eb4d1146dbec1f131c61863cc9e9d0667f1d27498dd9c231e61968c4295db291f815b368e000202d2008e47e17c04101090108e40d56b82f3686c2110d37f5db33de7c8bce7237096dd4cdfddeba493dacafe83693aece6d1b01227a3c338e79c3734e694c1d2660ee71b5c6bad157f5dd7fd6b1bef5dc7591eb8b99b03f4410625bc400978bb2d1f28de4ef1765bdb7ff03b6ca12a1fe3b91eb2abd9d8928a63dae0805993a41b4b63880e7954297d74ad19010b373e593ce1064735a903443b32aca37dfbbe0fa74ba552a9547aa6c1b4438febd0fb9e7d3b32ac939dde261249222020201e31795ce26e3e2e71db596d7a064fcf156f1336859a6538ce7be7b8c1d9b9f76994ce59da61e9275b1b56bac9820d2bfdb35f8725ef7255bb01aabb6eabdf5f6841173e88f5175ad005512cb758eec27a6eb93e14033728d2424c05b2dc21d995b1c2faf5a12f4022c50862ac3b84de9b0ee5eafa644153f800494c7587cc4bc3fea05ac581249270c51d7188a03b3c80b381e32b408e7aa30856101dd2f374488de8be4374487f4487f44674df067448dfb3230b351a69e0078e464944c1f27d2d3b3d1da2015e675dd274da215fba67757825970f8d02bb4382de715a47e781def5a17dd075f73a164eebe03a56777de82af0dcc1d589d33a36ae72d7879e82e70ef96d3ab2eddbae0f13057807a743cb381fa60ff00e79afbfb63afa3ca647530d39abc0f3774786e7e94d5647de9d183c7f9cd988390a84e769748d3cbddcf56474cdb6f23fb3bfdbb9fbd1744db7729873f6ff16f3fb0cd4585a456e2799ae29b9eed9c3bce35e7ebfb564e0e9d6b06b56eef2cfdef552cc61ee751cb8bdc85ab496f5aa5e5d83027fb277b929e6ae97c3bce4b5fcb260d860642fed45b34815554e5f93cf91ef9ad4cd43ac6a0f1e7517170ccbf569f95f62f9bd7773ce495d053bb7655af7bfcbfeeae6954be5faac5c57eae621d8f5b167bda25eeef253ebae9b5a0ef3afef7595c2e7d4ab62780eeaf51d0ca87330b657f642bbab9b53aa9b87c2eb632f586f1e8ae1fac4e42118aecfcbc19f5a77b9e96339cc4bbfa007e339a7d7d7734c39df4ddf32ad3b8ad535f5e62118d727e6b24e370fbdaecfcb5937dd3cf4e2fab40efe2b793097d5dd9c73be9fcedd9c87724affbedd9c7334d3e9e6a17b7d5e6efd6e1eb2d7a775d64b370ffdfab41cbcd7b96ee5629ee3fd83794e77efe539dcbb6b39a774edbb7928e6fab4eee7dd3c04737d5ace7a77f3d0cbf5613978cee57e9beb39dbbb67ade764df5c9ea33d7be9e670dc90ebfab45c6ebb79a8757d58f290cbf5012fd738f457aedddcf21ceddbb99b87841e039f93d1a196ebc372e9b59b87c0ebb372d63396b35c9f15157a96a58d43affcd46ec98147bb26b7b247dc31080a4caf6100c7670d087a8ed3c143f177bd494bdebd698ad49493f37d07b5fd3bfd00e631f9c082e5cd1428e19b6ffcb8c064730eee97ac7769bffce3030f67969a9334e809dcdf8a38811b370f1c713442020a8e81a31112457809ee6b463c90e0bea6997ce86b8db56dfbbc14cf3c8168bc3d6612d3ef6cd128034af00e8ab59c39b1274dd937db58935107f98408963a249e4b30ca80101c316004c72a7034ca80111ce32b02e11551698c54685a913944c5144c98307931a17166326862129234a1c9157a40c516a000420b6a70850db2084210ae40c512ba2a5a644c41b7fb354cfe65a40811a07c2008158c62f40a2db86054841538410b2962740a4c0fe20053fa1b61ba8ad1398504fac2d74a15707ed10d78449cf64ce3069d9905eb134ecd02b7cfedcae8c2089fbca1319f65c8a0d1a114ea09c7a22ea2c0b94622990eb9cf06382382734894f5dc62094b5842d7adb9ecc6959d86a0731de42ece9c190f6fce39b94fee82f3dc7c9d537ce03999c053c6e6ccb28d5a9a79396f7eed40540220b460081140c08358ae5dc880098e400992d4404848174c008558ffd5369128cb74f1a30b219c6934155401852611092748da4115bab00528bc00812a7c01892314410a231f3461031fb0464018e87ea071a124a50b38d33461427c94445a39fd7984dab78f50a3bc3fd89b7306a194fe903266d93bbb2d148426110838038836414cca65bd6408d9eb0a1cd2e9668a4985eee4fa142088346508a62948a729c02938384df981763305c8041cf0a11570a669b249f1727c9ecff4b99f358d0897b2198f3df9d5b841336171ceb0944d3b273861d1e6aca3996d5acaa89ddc84dd881336a5d4d931f15005b677389a82a0404041c80e2212c5b66b63c2e271ba25a647528e1ce920c326daeca0643e7b38cbc05f80d2c594255417c7aa208783104ce1094c40820b419c9ca01461421292c0e20a39886d4cc053503045052a53c8a021830b24ccc2b148ca12b087639194219c8008ee37118c4c9b4e12c9241d520b35e93469848869537a049244101063444c584f9bd2fb15f44a56c6367b63c2ba90b3df6e4b88eddcb97b01ef5b2cc63c5963dee0bad2b9eda5ebd37de3ceddb33d43bc6feff1e95eba777dba97b66f1d64da70b7d9de386448375a4887120a2c7fa32504f7eedc665b426cefbebdbb7de313d642703f7344707ce193fd64ad59e1717186c41d8bf75042568fa61a3a768628fdfb10d9eb6b0ca11e4d9d24228d48a2aecaa3280d84427ad224a9437dad994c6fb15e55dc4f3fdd0bf4b9c718fd102d214e4f3d752f109bafa1422f4d3754ee101dcaaf5aac9bfe13ab2aab43c5fdd4e74edc4fb7a57254142d8810ac726f7cf70990fc71234e7993f4a163751d3b3a84287d5e88ecdd7b8878885ec7103ddbb5973e448ff795d5b1fae97d7af78f099b30d64fb6a5faf79f98b7b23a546e84c43a7686680991bdf4d2bd80f6ec3166fa102d214a471d752fc0bdf4183bbdc6ca3d69ba61ba34dd5859996c6da9deff89b16cee2078c256f7542c02628c476612427b769521b821b67bb785264cbe745bac77b7b1b58fa316ebdea077de38613fb195bd41336113f693f9d4e6a4f0627b3987bc10803221a4163608c2941c8f8018cbc08cf43494d1eb334427c7bc12984cb070e243e47dfa47b66cc28bdcea480ca4407424c423292e01c7dfb809c013446084289818421098108b8f3adb95684a88021749e0c20833a322a361021745e022091749a4d6d90ab4cbe9c99d1e4f46ee46fce059ba3af35ccebe655992ffe6ec9658eb6e96a7d76e963b3d58bb6773f6ad0b453e2e8c9c08ee284270dff5320131719637e26767f2204fef6596557fd4ee5d96a333cf75f23af3dc37530dca55d666aab169da25f6b49bb3ebcc6bf399d5a1a75fdb5469d2b0707343024e02dd48e095e335021a8924f072314006e6fcf771efbbd077f738fb95a06e8fcf384c77482cb7bb23c3dad5a1cfee7769b70f2fd2542fd6d4ed32cb22c7dd1d1496dc6de5c820936e97e7ee711d36082ad743ec303bf79d66ef1fb5cf3dd3e1de268a4ddf09d5cffa59d7afbbfb9c58bebb6b9a277568dda3d65d80ec346adb4689bcb87282e9b77b28ee11bf6b68debe9ddedcdfce1dc1dc372e4081b58fb31d45a52f69197dc7da5ebaad1cadbbdf27c7e96c37e56ce70c9081ba5d9dad7b774d39a61fb4bbddffbac0f9024f3bd8352e562ce202134c9f7141c9163eb60032c1ecacae893c64530f127f291c55105df0ea68ef67edd973f69cecdad5c9ee671bf1626fb12409dec2088e5b0cd9e209203cef153d5102c7a22b48c1b995e0790fc7a22b68815b49d74c3c23ae6192cf3e58de3899a8124a9c99cf32ca121c8bb6b00267d9449ddfe28ceef333d6949ec19006dfe01967b897ac5c410ce73b2b87e2ccbc8d6923854c98d441069131e6e73bce902a8833f3f391bbf9e666bb9986260c2f8354795d7ee842d5e9c72870c411e72ee28214ccd398eea007008e261f324cef041a0187b3838d2329b822d0aeeb31851550c1c513a210c112910ba32bb0e00184258cc8e00848305571e22a8e4550be8073789404282790d99cb3334d4b428906945c91032e6cf1040998900418540104528a50852329b822501628825aa180820848b00120111081073f3ab80207a0a0408a2e923610db8c80af289203d38d08eab65d2124069a8d040a67d70afecb02ce6114402855e8a050e14141d270c0875086a0310105484319c164c1b1084a112844a8a8325d138be08120df8e175f44e070bc21420c4ed04491129a60c21362d9108634a124031dc8820ab11f542e9a204be1a802097f291c55f8e83062af3fda6f51da1d104bd6c4a22c44a1474027222db000e797168070a68181b30c2c6960790527708e4474b6371bf77b68dc5ecbd8a7befd445de158940521dcc49372337a728327444c35e69ca61e249ea7d993204f80cc96919e5a3913679ffcd3052ff6114b5d451b191db54e46abbae4590d041958be0039c70de676e81a1c1b5d535960873f1c48c21086902485891c0cc536244c90c00b544471021084c4b6d7ae1100de0e3e0bbcfdd5365b6cbb0c28821aca80aebeb582279282391c8baed003e7906b9a026ff545980d4de49e69441a960fac1febab208da605144ecab8a1e968a64d773f2d9ed0fa852f3afb86e663b9f00b1c8bb4200236e158a40511ce2f2cb7ce96c8811636e88105c73883026fce96ad05112939d39c528b205a00c1ac4927d5e2035a28a10510cd68668527b8b39092854ccb3427380b26384b1c918033cde2075a1636c862288b14cc2c44900513d31665c1238ae9643a2545a18474faa6928aaa4e886aaa9a765244703b8182eb62ea9b15c7222740a64aae3aaec88912b89d00e12738531cb1b002735dc909ab6fda25130b960a08cab44f600104cb14d4588485123873386211843337df19d0dd028b23455814c1ac0e2517aa8085239c86c969d3b9bae68a1f5478a2a520da5e38e7786d389bddc1dae8503249654cc828d8406a09c7222b1001db80932bf2da7510c499dbb659610778dbb61d6c6ccf91a887a1d2379bd20537ee6edb66051ae0adc3dba669321a46739705a7cdcb068e504c023dc431381659e10378856391158070a639e29a4b81371f43da1e4e873452b5c3961278be152f0f46217802cbdb689b49d4bfd1001c3c44b865a450a0a428e0fc61d3935854850ce01c9b242101e7f804471496581c5434b138a8b0a2c38865baa625133acc90c1fd4652712c4a3ac299060f3e483cdf83c4f3e28802d24f7687b4e334b5ae0eb9d66e6c58479ac251059128c52b4a7aa288cad1f6629c73ce399d98f232c618e3a5fcac54418d45493ce494e885fb84176bea3187abf042144cd335f9cb01cb2abc9084e50bcbc760196dc0089336343726d28d0d8f3aa49f69d4e41738def5927f4b91e385bf3641a538165d31057fe0155ea0ae88c10dc434326e7e505d07bb663e573cb9b8c1f3dc3c8e4951351cbb46c38d3f285846a24c0a194e2cc4d3b49b25969af6696781ae8935ed1d82aafd723830e80112b660052d706107315813469a8084932730f08598f6da3537583bf8ae894557c4006b7fb58d16d31e37b7cc9edd8cc2f33893e57ac9a4ee0e4eb552015bee0ecea5f5727b7770f7050c0ae3ee0e4e863863c737439dd901a2e20c79775078fbfcca76238bf67918edd298ecf33064978b21ced84161fa791ae28c1d2e4cef1723ce8878b68df86793d90688e425d09c3632ca84cd1f0888633d47a4d5736ca27a8e49a94ba04e92a46b74b62be91a1dae8ba3aed1e996748d4e09a96b743c265da3f335e91a1d93155da373d2413d4e69275da3533f8768d83c12eb66aec9eae69aa49a41dc28808d1d7068dc70e19cff9b66b3392dc9961d6914299b4d68274df9a471f61ca3e0241da5fe8084ca03bd3b720a3642e26c02319807e4926ce008676e12a964e7012647463d888c7ad8c0a80714369de9193c3d8c33240a859252a793aee9b415ae4ca79b809f4e336195741aa9723a5fd6e9a3acd34950376f3aada4c3d6b27f8fa914ebd65a6bad73d25a6b2a556bada954adb5a652b5d69a4ad55a6b2a556bada954adb5a652b5833c39f50c25619cd1ed9426f5baeee677285d1d4a50c757ba8ed2d7a19ca7d38b5cf63d52215a89fb363abb12fd26838f3a2dfb4adc464b8f93fb4623d25189db9e1c953a2dfb64b01021428408914042b40c4492404344a48814912617919e74904ea2d1d0d0d0d0d0dc7bd79c56334edaa08eba9de4b58b526f6c1877e98d0ddbb050730709d2413a4890fe31f50c24bcec32db69ba73ef9e65782fdd7bbe31651aa7a39e2351ea15c9eaaa24acab3c47252c7149cbc1b73c47a45664f272d75f9e639398c33ce6395a61ffdbe798f4e2f72f9ea313187f1dc6737c12c361780c11f690ce10cfcd5ce6338fff629c86c7787cade134afe1f1ac1b6ec36f783c88c3651c87c7bb6c5e739bc73f87df3c87c7bf74f88ceb5063c48ebc1100388d03e0f137e68d1b00b0a10ef69583fd3becdb58170e5686bdc1861a2c8d8d41c38c959941060bb3a18dc1c26061bcec8b6bad8d81b12f2edbb22da065b12a76a54a552427d3e7c9d8b48cfecc90dc122fbe322582e59b75959696eb2f313196024da429652e9951e6d1843295cc2733c974329124115971643699466214c9525961015b5c60bc7f50a1984ffbfa7cf14f98cf96eb850a69a518c2c36690f94c0c9ad7408126929425518ea0287932933841924464a715f3c86c328d4c1fd3c7f4419f18f921830de7ae9d0ac1f018ba80f998e1324ecc9c861f314e03a486a38278bf4186e938e060271205b273494f29f368469935d8096526994f2692e96412cda479645a318dcc261d761257aa1ca84d2347346c2a20880420e0f49d459d469a1cb18228098993244f9440398ab2644a41029a4c288f0ee7a512ed83e584ca8f15202c41c0275a84b87418c6bd0b64d58fa31d26112981c447122794fc3802b22408d2134c8434e9704edc4d1473631e0025ecb5e7c1c7ebcef094132fee8bab7edc3bf315905f18a71104e6c6f88d275a37862f4088ebd6f02136fc726167406e207f86e161a6e1349fef2259c64dbf7f5d869b39192e731b6eae361c3cbdfbd63ff0bc7c02852358a72fa1742105ebfc30515ebf9f9752c2c30024731978d09c0621d46d50e2867b9f394ee97ecadb942952b08ee9cab805e8703ee906ebd91d6cb03892090d89d4e18d5c22431ed148253232499845cd544826910df3fb82219421870ae691c1169103c7038868c0106d83b81184259f50f9bf02050b11b0488b1197232d2217929716000e8e0d60871a35b7e153a26e38c930e1f0d50bf17906d821ec02ecbc6169d8a96426994878b0f34887f301b0d348877d6f74d802689c1b3bc41dbb3d80bb438daeb9b1431bfa373e25eade706387abd3957163872ad3c5e1c60e5355884be3f3472081045827c71ce6d3488f94233c5efc7e225102c65f9f4a3a742286c3f0b9c4833dfc64d2e1fc0c97e193480137733397f94c12c4cd35c669f83cea703e013e9832850bac936b38cd27026efe933a670fe7e1d3c603f09973017c12e0389f3e1c7f16e0b1cf1f3e804f037c874f205ee3f300f7061006f8a1003e1020c7460f36f260c31a3b0c2086710410009b6d5ef3f96945d7e49bdbf0f99984facce1377c76134ad7e41997f1f919c5f4a9c371f83c05fa3e01705f34eebc0e7686cdc1de581b5b63c3ec9fc5c164655879b237781eea36d81aac8d0ee7696c0c8b43c38cbde9705ec6ce6065b01ccc16208cc1eed0e13c0c302c8dd70b2ba3c3f96b6f636cd8e13c8c7db13c45e07800110d1822881b1dce7874a3613222a96e8e4d5237c7a47a737c12e21075330d96a7cb695468da44ef66ae6e17cc6ea64294088e2f7e1620614098a8f3fd68a4012338882b79e038230a8102f75b8b9a1b88076e21386c98bc4614e7939a25528edb25d2104c1ad084082b1e9084c3498e274540e1d9a13f62875e9d79255077a1e67874a4c48baf1c1304cf4fa02a71aeb808479c2b0a6823c2dca66554dea537229c65dd92f0fca63dc1f35a143c9fcd532a347dc820d148a808ce52fec0b90649fde082542178a68844091213643a91f2c64829e538eefbbe5a2b8bc5026f0405e35df3eaecc82944f06ae4864adfec50bd668750cfecd0e9d40e993eedd0f7b643de399b8734208058459db599de73812199777b2e30649e9674e423d621afabbb207759dbaddafd321d3edbcfd6dd03cfd53579a867f51dd9c5b3b84dbb77e903e0dd9e2139f3a5f70cd991cf7ef3d0f77977e4aaafcbe552751704c11477592c56dd6ead15a5ddeffb4eb7e70243e8e5bcf768400031d3edd1800062dfbdc010fa21da2f3024f36e0f1d92136f8c3eddcfd674055d7b9e7a76113375cf49855c62fdef499462f3f1a7f3f6edf1d1ae1d35df34bb4f77eef1aea6dcbc4ff70cecfb68a7dbb9799fd2e9fb3edcb5673ea5cf2751aa2a14e5def7c9aea5ba6ff7f154d5c7bb774aa214335d2462ea7b9228c54ea7d27dbaab6e1232e6a5e6357a9feca8f72421633d3edeb727518ad58b3add9e6e7b73f799a717728999beebddd834bbcf963d2b75977b8fcf3ce59290b11e9f4dbbaf8cfaccbe6f1c5272d38147635a3edb1162f3f624718acd0bad489a21819a22e4129bef41222689d2333a57845c622e2c553d79a90fe562ada8eac95ba152e08a8a554f9e4a6ac55a61551547b5954a7d5961a94ef7f95e5d5eb765f7d1fed272303b08de1e1faed46ab93d3e25ca452e7cc45c2b2c55f57a9228c55ad7a547c825c6727b7c4a5f61a9eac9ebb6ec3edfe77b7cb8afb054f5e475f33e1fd5eae93d3ea87bdb7dbe77eff1d1be725f8d43d7370ecd525d57ea82f582a8eb3a5d96e9beeef3dd7bb7966eeceec76d97d3ee97f9d079efd3925d12ef0724541df13bdd77b8ef6cdfd1be937d877ec70818a01d23b623dc37a2868e781df1e677d7d1ddece2ae83bb19dcae63bb99a55d8716756437eba051477f76ecbe3b56b0bc2f59c5f61d23e8b91b91bdbb2c7997a69f2aeaa995eaac1595b3b48037c2f51d7977628c68fde5f1af9d1d1ee479d8697d07fcceca7754df417d67febb0fdd7d9053a6c8ef48795b2f37bb5a371f74b9b905bcd9a5c272f38acacda08a75f34a75330b95bab9a26eaedf77b8e0d3cda6fbddfced70c1decda5dbdd1d2e98bb793b02deee4ecc0e97671ecd252907bc57d7e41df9bb5c20c862d5fa7ddc0e979d981d2e983ef36878c650f91cdb11f0bc3b5670cb06f25a76a5af43719347c3dbb51d14deb182331d3c8db3cbfb9ada56fa70474fa7bbdab666014fadecd217aa8a33e6ad1dca4e4e28bc48b34de3b852777afce77d27d3e36bea3a588f679db08a751e0dafceb382775098e5f1e08755ae6307c52ce7a178e53c2cbc2300dcd2c1a3c2e075f09470cb75ecd070eb3c8d5dae43074fc5302f779d07c43b13c7e8e039611d3b1ac75c1967ecb434cec8bb6c1667e45bb673b15c9c916fb19bf6c519af843a996a4ab5a2c28a33ab1630ceb0b8e24ccbe505e60746ce285d851a6974cd76f969b75bd2541e73fadbad743d95bf7cfb63aec1dc6aa6d64bffcbb9cd757b8db2642bcd922b94ca5bfed63b98bfbce47acc3997db6f2cdaa560d612755327969bde02f396eb2f2e8f7909bc5dc1d05ef445767b45b252593f93cff9ea6781794beb65e5fa808f79675f626934ebab6e56b954aeab7190ffea2898b3fce47acb4d1ff8977b2b8f79dbebea522fbdb417f466567573056340c17cf593eb2c37b9bce59fb7f2977731172ca1ae66e9bb6731f5e613eae6a197c9f5d53f97b3dceb4a2f97c599be6930d9cbe9e6efe621eb75e0595ee25ab796ee5d2b9d661bed9e3d273b2d815fad9ca5e57e9a76ee945e7bd6dd9c6da8a5ad7c75aaf2ece6edd267bff499ca57a72b9f2bd7478535bf4ac5c08b2ed7551e4f55aaaf3c9e63b10e3efe6361a9313177793c0b067b6b68e63bf24341337f195a0d09092006f31f90501ff150d0ea302f2d0cb8dc9e2280808032d0727b785e80440a1280b767024153f8e0072bb787070337288212ebd18000622ab7a7d5d7a1c3a562b1c4c0668e046acaed19f2bd6788f79e21d9851e8b6161a95c3eaeabde33e4741fd47d52ef1942afba3d4372e4bf9e2139df25fede33447ec8e6a9f0f71cd3d08c097693e966fc3de7986eba2695a115fd47e9cd2d79231e7249f93df5bdde16d025255f865aaccb67d4bf9b73be9fbee71c79f90c93f3fdbb1f0cebc5d472790bb8a2b29af160de552a557673a6e25d70e5de5b72e4b79bb7b362eedd745b97f2e62117f972296f76712c16eb371dc6821dcaeee6eede4d26169617f77e5fac0e65e9e6d24d30180c371d460cb54359679e639a99b9e9f5ca10cef079340cc9c4e03a94a61a6e7acef168ee3de75c1b9ee3d9707d666a98a1b93eb0bb625c1f161a66ee90d2bd0c6c86ebc39201768774f715b2c4707d626060b943b81bc260bdae0fcb0bd61db25d991bf3ebc3baeb8fb943b44bd3a18461791e0aed35c18bb746d468c4826601d0139cb9241c8d9e40c2f9c3f18923ece168f4c40fb0bc11088e1f4282e3e5691ce30cab8653c10d38ad480cb216d01701411c159c809b3be080530521e05c2fa28225b82229d0012df2c2d12805564841139c698eb81250f94c236bba02222ae801a617acf4e0c369138968223d27df37ac418df8c5c2f2b11f54181c8d525084298e4629e801ce601168f0a2c1cd8c410c62d029d0e60c58ea2ab696822782c86042517375d1903187548aa3511018e05cebb4c19933c810953bd8a0350bb2021a655023ceb5ca841647a32019c0271c8d500005e7f0a8483a61b1b81a8f526a532262230822721c351015f06774822de01c9190300682a3e09652f640b1aca92c2cb13449d6b4915122acdf2c9ca513ccb5104de16812c508054c304f3bc1fd290f003c4d406858ce8b1365fad30335e22c7f20f9c1836a418eab150c92e9806e4a70326e68260b68683e2313f0a891e8b5c2d1080816707e1579f19569b0cc62dc41d6ae89518c4ef0835a0048113cf0822230418528c4342f78e168054ae8019206aac0bab30561dfd21538bf681a094755dbb2130899c0092be6bc2e507b06419c2674071b1d6638e014d335591089260d07040878c3d1080891919b2732cda804561891e00a34f8a6d46cd4ee6cc1d71a6741edb9e21a27104c4b98d2cccb5e2905f28188697655502b6b0547a31274813b1c8d4a0005e74ab73053f002b269cf5bd5344dd3344dd3344dd3344dbb26e5354ddb344a339969588275eb6c9352bb67b3fc265bb06d33db26a786048586b56f4ed0b20cccb22ccbb22ccbb22ccbb2ec599665d7eea1b2396746c1ba83c3746a9aa6692a2c8510675438f3342dc61979edb6a63de39440e7096a5f9220091fdda3a1a1862d5c8b2a38c9c214286d2e3417e2ccfc0c23e608e2cc7c6f21cecccf1f71c6fc614424028e7186d23b7f4c20356215fe31491067c4241fa8a0cd007e541161b266003fae8861c4f9246f8023ceaa01fc6842943a0ce0c71431460cf21d7982a7941f4ea4108e4624e06134022958ced3689b189b235002cb24b804351a91002982b3a66d1e9bb751801b46244882e73fd69c93cef9707ede2c85f09a5be02c2385901d08632064122c4d3e4820c8179692079649a40e11c7f9810ae27839146718217960391467e26718d1823813df02dc3789c431ce740402eecb20c41932499c890f8210e20cd9e7e28cbe3b71467ca2c57c7f22708233475b7b53edade6b67f95a5fda66dba6bafef99066b91a8362c6ab0da5c731b351201134d330ac113ac69f4381d8f667708bcd80d0229384681a3110874803d9417a78dcb4bf6f822a60d7d743d4e1bcfa6f4781cd32686c74b1fd326e6f1d2c8b469d5c77822a6cd7dbc149a36a6c74b22d3c63ec6f821a6cdeaf11268dac0f0987a7c386d5afe7afc11d386e5f132c8b479f178ee7567380d97f98a7d71835e2f0ee32a0bc30d82c1f0f0277b6f100d335ff967ed0d82716fdfd9186ed0ccca65ced9981b14c67019bed9d60dbaf6af6bf6e506b5b44febba4131c870d85d6cd0cbb5c7c8abc4dc75edf69089c1bcdaa098db638658d0e931aeb7eed920d7eda1120be2eeba3d4eb1ffe506b9bcbec50679adab9c65835a2a7f39ca06a9dc1e331604bebe1cf5920d4222c8fbcbed31130b5205a16e0f00c482bec778b7872b16e4ddf5d6edc18a05656f7d658366a0e1f668890575777de6f6e06241f3ad531bb4727ba862412baf32b7878c05a9fce533dc1e5a2c08f598b3d820196e8f562c487b0b767bbc62412daf87e1a6f0f640c5824c8f790cb7c74d2c68bbeb30dc1ea558d0ea2f4fd9a0174722e82706e3f688211644dffabd3d60b12096d71b74df43c64a6f1b8444d04fec757b042016541f13f3d20d527910eb41ab07a5aefa8bdbc3261654baebde20ed41d983e883faf3aedbdba36341a9bffc36a8dfba413137c87b50e941dd83b673ef2163adc3d820d65f6e500f1973dda0fa20d4834e0ffa6e7aeb06b93ca8e541e08356ce729ce9d262c3098b07ed8d098b67b147581964c2e2552ccbaeec101316afb21268c2e253560a99b0f86aeb84c5a3eccd84c59f2c1113166fb25268c2e23f2b894c58bc674b1667c2e23b8b63c2e2392b7d4c58fc66a591098bd7ec272c3eb3d4163161f1d3ca1f565a1d23279ae01c8d3e1004f34cac230f6210cf48ae0a1f78beed4c96381295b49bfb3af2112bb91167648c8203783e0a9c4b785e2a8933b2cf376d4afb592ab1180bea43cc22dac49814a6f08429f04c8212721c828ec63b12b72442b48931254c31852cb6905de019cb1d8437106726167886b866a904cff9d642890f7a042fbe3c0f28c1f1469c11e73dea1f9050774017db5730c23aa6cb2e4e2ddefb2dd46defb70f957f2b7779bf81b0bcf5be3ccab2498e44593e6920b67f74e884121df63bdb42cda381a4940ea374d84fb8217e9267b132e1eb2e90553fae4321df2ddd5c4f57de274e4058571df5963c56aeb24a3dbbe023ae9f77887e031e90499e7ecfbcb6dd0cd2960bb2aca8b056aa54459d4ed96249ade94a219da4c346d2611375d8473a6c231df677b42b89c822d207299574d86f2c2abd8f3a7dd41f905023a6d98efc029ed46889231c8d9620c24bd0004b215d336bccdb415ca43745107186fc12d45942e28c88393ce7391d964f47bbf6d9fdea6cd3f3ae4e07ea78dea7c97475beeff374ba3a2693ca3d7d3ed451799c32658a141923fa2cb7913a9c2b5747dede546c476928fda49d74525bd14d9a49879308129e6f2250142162a4c81123444790102541a224c991dc91578775e51279d42117354b1e50e00d4ba40e85da4632f1d136d28a1f6d239d346cde46426918c7040969da34607533875317e95802693bb288ae99c7b17d4a224cff5ebaf9a573378315757dc8db11f0e94ad3954cbe2ba3785742295df9a4bbd20977e5ce76e57990537cd0ae94d2e1cc6ee664132ceabc8aec567023ce30427e4747de1b7146fe469c9941065818030c305e2fae7d7db15fcb722d9676ec3094d914478c3c70c4035008a1937a0005461ef861e4012584be90699916c5a889242a8c9a388251135118355103a326861835b102a3264a60d4840fa3267840d1c2871548463e941c31f261c4c88710d54ab5ea381f4a6029464c3c3162820a4d8c984032626207464cc440c80f23269c68232692183151c4850e2431f2f1e307461e88c288091e464b48315ac289d11253305aa2c916ae2678bb8b298728989e2a9184b56b3c5069b3ab50130f2d31ceb8582c0fc3b2868e480e5846c119e1b85a41956bd96dcee12d36e79083cd3f38877bd1f4e2e61ffcc2e6aa2642ac8022898893224f8c403912854825050950920e79740dcfc42525afe718e5eb2ceacd3b22ad1f51a4f41e232f974047622e7910d94b21242b974a24715dfa500273e9c4d12f7f744bba26e7d8b0cc379711d60c00e870f97e52574835d8c00203861842980c3c12cff0ed32f2877442fa904a4821c94302f51c91456d415122f25224c6883db242e4420293e41c935b0e895bc21d75c829e19270483822ee0867a4f5a361db5b540edecbc7986f35b738bcf5eddfcab71b5efa7696eb39c65fbedd05f36de634befdf56f7719f11ef3edae23a7db6f772159f97697927ad7b7bb96a40ef3ed2e26aaffabb7582f7dc6cd75c65f0e809bc1e82242e3c60eefcdd7c165046f9f615d423adcceb2ae203f6e5b4754d605635b455c50d81614ae273a7cc20504c8c9ba9cf8e1f211c1968d1dbab47ee0eeb692a0a8b92d274470b8ad274564dc16142337dc56942334b7258528c6750121a1e1ba782499b92ea10e3799eb52a2b3a82e50b48870454a464c475e886290d8242bdf5e52d2b2a2c3eddb576cab4987dbad6d31e9707b8c6d2175b8fdc5b696b48e6c4b896d25e9707bcbb69074b8ddc5ce602510f9a3c3ed302b9d903ea412db6158c963bb0db6a7c3ed35d8239ed4efb9242495d4b0ed5c55b9b982f2d558a8df73ebc70b4b31ceccc11e7f368736c71b9b431b212358bb2604d3d30efcc0940769e241e5b4071595f7a53c087ecf2ba41845d5a4bf505bbe42029f4b42a203b00a68e755728c02672b374bbc92631106cf62330a08c35cda2c7fa83cc7285e9e738879aec13ec340d0f5fc1552846dcf16838fd1a62424c2b6836f130f2bd78c4ca9d9e503e6b25c9a78583975398c0d35e454524e25a5920e63038cd750c35fafbfb02f5249365cd564da9484e4b79e4197e7daf2cce1ac6a924a9ab0ed33cc3c57ccc578063157c3ad90ba4607861842196468a0b941060edf5249b0cf703337c3676eae338f713318e335371fe3600b20c3dab881c6e2d06069c8c8606574b83db4341d6e8fc1cac0604321d3261ee4aefd616060b86a68bd5c5edc92102ed4bc4232728f3a4cbd2bf596ea2eabb7585647a935dc08dede1181f17c189ec1e7faccbdf4d899c3a5e78a4bcf202efd9d45f5be42726152a48b2646acf8399284e364872736a01420ca0d2c1fa7aca4748d4eec300781e566c373494892919290a4d78bfb9737945ac3b3cb07dede5a5821b588266cfbf65b98c7b8fe721b5c3cae9417505e4e926a18127aac67bb408b49cbd55a02f32142645698828916623d2d2542643c68228809623db171f88708619af2041552c47a5a481a87ed437cd0889c441104b7883adc1e633f319a9b8f5b8f71f369b819c4adcfdc0ccadc5c71eb33dc5c5b87ddcce1d6cd43b4c9e599c32697e78a4d2ecf2036b9dcfc43049bde4f6a34125202e715d20a690b6fe670cb6d0c3757dcf218186e0671cb5f1e61dc7cdc72f38f109657792b49e5adbf6ee65cfe22a9e537096f6f114d9b1552c3b6db9bb9dfccc5dc5c616eae2f3783ae16d1110ddbceb56ee6aacbcd15abb4dc0c62959290bc424ab26555931ca3282144d54409a1b6428d461c48c29d5427108e461c4882e5734908deb2b3d8f9151bb18acd67d91512debeb2592509deaeb27985086f4fd9cc62046faf368344f07694cd2d42f016046fdb3fdb11c1db3b9b43cee67884b3aa8927bf5492ab098e2f7e6c240e38f0380e85c2f338a3a20d2ac2e66363494f03a3d8a854aa968b8449eb1c4333000c000000731500304018108c0463d1348d24e90714800c94c65a54204cc42048618c41c818028031060020044404086608a4002873041698e2d768462dc98f66442b1c8b0adadc6e1def6da3617984f896892ab12995a7c1e2102ebf60044e214dc731106b304b58b57b267702fbfb2ef84bde1b14d057c1180c2dea3662270de749112f7e8504f9c4421a36a5830b6181f6642f8accb270f9062dc810b7620ac41c0a3e5f0e1da2d0601ad492e7db04ddcf46512110363256263e9050239cb09de7c75a26bc90cd687ae6089d76a0bb125a8d633a94a12010c8892281c51e4a946875ec0cd03b4a5153a6c359f3a772b755e9cf4c641e9d81d759ffae1662b13b735b3382e84ae54dffa642d672c63378a1d01df484cada7d311bbaa480a39bca9d045d121095dc12aaacd738f48ae03e6fe58a4120bd5b596285049d7bd3d83b2216a5f9d26e35ad1a4cc6b641f9a7f106af6ffc712c2fb008e391886832bfdf8b8dfbeb17d15ef9530aff37a025938fdc38c34914454fbdfdc541b5d5bb0c90ad721a261ae8b67eb1dee8a95c07c5d90f0adfa088db8a9b95c82724de82b7db4381e60b36d1a32ca570a5a30ae736d2390df406703030b4e82b1927583e010c7e0491824de7878b4b81d30c66b300327f41fa02225e2b0754e0d500a86d30c21aacf99c84645ab43c3a9daa06cb9491abfcab6bd0cc60814552636e48ad68eaf2633655f8b4ec53aed06d7da1805e864e4d7b664e80b614a4000cd0460b628533bfce3f3705447daefd901983dd5311d329b17194d6279784b08875aacb2622e0e4e59008f3275b6e04dc1f969700f85c720288193325e5d7f3472bb51309556d22f5ac8c488089122db3243f6a33af32f7716040d742d291a4ee4953b75ba8a579914a5cc80654e3f92c64cab6d05594a07f98fcca7fb10ae75df41b21fc4a58a73376623ed58037cfc8c190e3b2bf2bf040abab3568500a4766022f81a1dbdf1500c3a38cc964e710092b66c0838782ad9eac8b8f050654b2d44015f1b0a0d20517fd0aeee8c680f5b1fc82316f6ef387517e6962e0da91465cd372879499fe8597736d44a01df069bf171e02a3a878c12a91bf2d067ae381e9b3a60350859c372909bd51e52982d90f2973d5edaff57490a800fc8062abaa3a36c71e813d03e1698110ada3e2e66be1f303e6f32eccf5fedb0b08dda0493d22429aa2936198c34c30067132f24c2b64b6b91f68cbb9730b450771e5ef86097a4d0157c0453105b4c46155610162c527ee646f4451d1b88339b77eed2e8df3620b76652bc500283e25b7e99b2fee90690d05b11bcd070820c61804299a0d5e5f18e68dfd58321b56b66a9c0c0438c0f72385ff138462b7f2295234419bf9925fb5c249d2740ec0b330732c04e1bcfdf21e28ddd04ae83f0fde2342d7faba2521f5ab0b1da62d79e6d2ad3b2000dbf0e9e43c44500e6d7a4c36d1317b4560c172a14909dd0a83b54b62b8b47949c6db143013fcb898c8faa2a9dc87a22d563fc0f36d0199fbd70e377a2fef5f80d4621dc007431482640bb4aa60f3ce4c05bdb910555b084ce4e2888995493f7e5c38331c1b8e2021e9a650f4c0678befc0ae4105410ba719f88b656012f10b585b9fbf71e18bd3c152959f3b12da1e80d9840eeacc4307e659b743ef12affdb6d2c2b6171530af2f5da6bd634925d674226217415bfa0038539432b6ae9afbdb879d6988bf23bbadeb6ea6a949983a206f8a48db47b7f82dc84aff5aeda6f5eccc9022a3c98578e25f1ea3e625b806fd0601de06d5c5b1d3803d223d1a0a2fc78adce087c8beb789cf667dba479125fa01d0a2416f4f6d3606eaead60092ed3b62dfefd68545cc6726260e3b2ab4a6fad22859a895347abcbb337e9f0d1799c594740f55927dbcfad1a1d26ced760b7405170cdc6ec1955c37dc0abe1b7e05cfae038ced5238bb536602339dfc1b4e134bcce32cd42d51352068ac1173686941a9db639476f1ffdcd0f791029bfe2d9b304ffcff8e0d474d81279821883afff5bfdb454ed575553e0a696394169663caf381a69ba8fc102901e9b645d0a61ae69603ecf427dfb09e0ae5edc8623c80add352171ed991aa818c53734f3259dbbfb6624cead9ff04817681bb457e9774e56816cb2be90d296ce45a7c4643be7b7b1effaef69ac270302130987fefe562cbe312d4a4836c33eee6bc846bef04aa03469cc7f594d7757cdc8450b65b166cdc2119396d8a175c95b26e80411d7a63e20aceffd24e47cd0c5de7ce7588d0c4623af46ba12f844657c344a4e0a3cf55832d47d49d91989d92d1bbff40410631032bfa5a16978d3389d1c18d3b7646ef2c5ce8be1b47fcd7d59fb550a7dc8c755fcb6b4e5999952b9b4de681e654d16ec6b4862a9d9f8b49ea09f0b428ad09caab22b682a953504b3be5e41c7acba5f64dfe601d85c42d1c2b17539ba54f9f54c7498c7912f2d637f3d6527a6bf00ec712159819143f7925ae75a212f95d7ba510c9aebf914f8981991a9ea262535d48586c88a3dc4179a4e8f1a842770b15ae7c1ced3cf1bdd5b388a6de99d1d6fb3c36d6665daa4a6f04e0c3dd9e84cfdb1d06e91da0899b2b58027a96145d2cc9051a44dc18304f078432ae1386036bc455df03d4ab8e1ea80750a3d79c6f24868f465b8a42f383ec3e507abf77fc9f1a76fa0f30ff79f8a0df9ceda63f32aa378ed19ea803d491fa7faa63f72c76107eaa4676587c8262eba3b1b6138cf973fe714e34221b3f84052a5e8ca867fd2728bea9599e814955b636aa36618c788afef905df9b84aa004e4299caadc17f9c48b9952b49d3b5b26b550c918a4c62d4d9908476f554dba45df0dc69d77f5fb583d001b1f17e055811878f6d916c7e0303e49e03742242ab85a8dcde6a71a11c3f167514ccdda6dc72202a9f55d1ee8c6fea32609957a279608adf9bdb1574b528a1f62e2720db805bed501962bed294e85524150c2ebc726563187e023ac01672e9db9d6894e68d72d0282a02739d41fead0d9b7ae6a8088d67f34c8434478d103eb7cd5152810f61618e5ec10ee1cb9162f73e0f8f1c5d8c1d11c2ee579c1ec268eea3518c86114138b852dcde6efb2252158d54a18ee48a0365040f0935e39c3b83a75dd1026ac239ff153c5ee8fa49a07fd3bb07aa79f8e3bd86329b12410d2cb33d18b8d3dd4711ad9d338842e49f65c775baf65e5a2c68627c43f02205366706f053ab830ab4dfca119120d86ea20f5ed68718b481a336a5e6162fb6c357aed0cdd7f0cddcf0d48a212901f98517978fbd0c979c6b065d539c400c021769b16ca1e10dfe163aaa946888dafd15de6ac2518077cf001ddf5cc3da806eb762297d2d39a05ff3ba9a005e0b5f574a02866821a01916c52cb0cc23715b6dd01a170a4604dc96ab838be99f55eb6637136ed033f136a7c04f44e80e641405e963a2555e56e5f20d47044896216602694a0612d4edc909cae272eb9a3c5b0032092ca65fb7143fc3c68a666219dab82d9f79872b8044e24d0e6eb9922a83beeb770dcca7efa27a7200814f12f2a0822c3b194374606fae71c9800887e31573ccf658718aac33547a028b25d8dc4cd0faa35f19fe02f4085c52790feb1850cd7af4d15b5ee6ed07358f0a600182016005f506dee9660c9605fa32792b3bf20d931d69ef53f246f2231e6b890ef0ec9c83bfa311b24023cba0e78b8ece6b8e42a4629f8483a792ed4fc9e141c9264e72e0b4641b33391e75fdaab188f53ced1da8c7537822909c61857d9578318305782a7f5bcfddf08e2fc22f56423c45760a59c865c8c7e8457b6fb0de71f8cf7813a7118126ecea0c8682405332a89f6bc5b226184603ddc38077aa73ca7137dfb4bd72a67301806e4dd2b290d6e750a4754d4021ab8215dbd0c637d818d8987de21cf368671b5ea1244673d0caecfce414599f3d08657f435b01a2a9b2f5c8aebbe131bf8d5c4ccbbafdfe29f1eb8070ff5c5edc32c50b97748e2f933859b53e870d18c1f2107c94eeaa86b2f0562d57c1afdabc8263f5ec0567f579856bf51908bcd51308cfd5642bb8aba72adcab2d5fb0df128be4cce46a27b4d371630f4ed2c2e3692ee322d80fb808f6828a60c3ac1ad3376995e76c27fd4f040cbd39b74c9c43eed69571f4272e747ee317fb4503ffa455218d1a22031b5d873a2bcdc8bcf025ef4d008434801b108d3f1b125ed280ee3beb7a50938155e0171688592c24749990c7cf1d94fb66ffda47fbfafed8d7ba5fa1684ece3d5715f5ffbf9bd246ee3da921039db49bb2e57a5efaf3234a84346c02be050d1eebd0c4c91b87daea8e25fc88083e1fccfcd1837e40c3ea80edabe33eab1ede5848437f14f7d815bc6fa372d40d1402e1f1477c049442e09380b211db5aeab0cf701c5c9c3e10c25022558cb157039d8fb1b4ccacbd4f015483ddf0f8ba96f9281186780d5e20ff09e8dace9d00fea98562884d29aa3d8bee25c0835f35f44f2393812042db5f3efec42657f0cc6ce53d743aa92a8dfb8e00b537c3fb1a449782dd4abfc96ce57ffec0271d1b670a6cba97e36970ebd6f0f163e3b8f57ff5bac6ddd4362f0f55164abb66a0452797836f270a46d9a72592518a347a1361593cd530a42e04b3ba7f57e4bc0131ca0509a3a10b9b7939dc7e62b0c5aa662ff84e66dffbedd93f001d2e037f729610f4a29f9a6711fcbcb6da0274e144c701a65f97ae060780167b7d6038f41c588e3ca7669f425bb3eea3064a634f7ac2f9294ed07c4b1f301d992db21c83711da09bc1ee06753aa8e3406e06e8b2cea9887fa7290df586ae4bf99400cb599987001ba5fa8fd2b507863a6841f164d9b0004fc557c5fa95ea5d7ff117c0a819e7d36c4a00f9f528b71f6860ee372294d518131318704f24b014de2dec45f8f51f17b4b6809dafc5666e5a2cd2c25dad5c187610380a0a7ad6c5bf0487c1913a384283167b151a58726b4e421b367c2e2d37456985902f62d3087dbdccf32cc43acb672940a2d179ccb2f7085713c8704aed4281fd3cddced0f279055446d27e2313f7bc0385bcd6d2898325134d50b771c30fc6bc54b3e39442bca0017ed50bb9f508cd1731847a72660b846d780f9fb923418fc9ad7370888b9d70c06fd52c7798fce30971c58a04e37d532ae829af8a972a88a6a3d015ea4d8fb689d1a18b1e2a68ddd478c7a44febfc4e54e65acce355dcb731506aab604f9676aacd76f242b398339ad95258582d580725f64087b51d8e95fe6a0dbd589479a639f6233d15e08d0eb164ee43d4ea8e7c79f33f11e32e97b409827f7e2788843c79a3bf2cb7ce50316c2ce9b87fbff52a1641c14636efb8570784ac51512d507130176121dd0582dae24e652145ec5cfac6b55e9ee39f52e0c01d1e3c716550e0cdd186acd7b641ea0e493183080aa257132d602f0c8f7d295527c3d94072a0693df41d5ee2da005bbcaffdf91eb0f31ad242dc64ea28164fbae7c953fc0c6d63d37903f1d96e0a06069232e82e3703806e69942aa021eed160d86d09d4f8066905f8a5a99901f294bde27766bbf00c1a9615709323fa43c7bbf146f848267f18e8eaddbaa9721726f175833e49ee9ed161c1607272ff8ef54eda62ba4f1c0f57adf9f81bce9e43eb180e4ed6974d70b1b124a9a5b92cdd940e53b87252d5e4ca04f80152bd4bc46dba482ab16478d349e585d5284a925a0c90415a0db46d702d036efb818ade8f54a6fdafedd1e473bbb7d8e2d5e7a28211d2d9203ed9a1b7a207ab3cb1a3581cb139b01cf2f476b0b7a987620cf2c4edd10bea77e8c65ac72a3847cca93761d7ab3e4e297312f9ddcf6d19b3f273de14d3b90a1c5b8395e95ca551c618e747e305e5f941d2f3895063a530910f8d31cb541afb197ca880736bb33cbe75424be6b0b1cb92cd63b35ec995c3ca20b43b0ba2d799836e2ec7d0ccd47995ff06b2d7635decf72edcbc286658a056491ece9b4a7b67313c081d0d567597aa94d83f24740c30e2db94509298d28916845baed54210aae10a8fba0f5d776e0b7f1c9055ab2ec494611949378eccd9e57ea64f4d3d733b53b5458da7d125b60b336d033e117b2c21344dc91a9632c3abf32c330f342e8bdef0a2f68bcff808d2992c94d253dbe4f568261858e149cb39f3469fd6a28520e8c872937f8ea8e69c96250bf2326e144380d4edf9ee430192a41ca3f17e5560f9c04acb1e59b87710adf9475aba0496a8fc4ab69e249ca8bcf92e2f514c9d7f050aefd65665703907d44156d4083e71a792a8707d432328f83cbdea9077424df9a0f0d9038303eb631961115ce2b2c9813839e1749a102382db334da4ad0f25f4e4afde36595a0c2cb393cda0f935bb232f918209962fafacddd13c8335b951fd55f010e06a8a7330ed4d211ca0c58a97a4aa5e8a4faa4cdebb914a8ba6a250990e2b4efb79a4ae884e4a0a7a91af731409c42dbb12c504c908fd6708b4440787972011eb418ad98a24109d8f6d804b1c5d437a275e12c6f2e75e994bda7be543ec67fecb4d7425233e1852a30801cedbe41e107975747108122345c40690925f90f598ed976ebe1e89a78803778b51e1e1a79918c86ad30542f0c7d679a9250db2176df90bde15aced825545894cd84f760e809b03e0e700b839007eee00009cf4f5bd3c704c13c4be912893fbc0cfe8132168f533b0723e024473c77294ace8cd93cdbe2f0459483229e59d48b792249c619445d5591a787c6289bc8206073cd72eb8a7563cda116bddf8d1464b727b8e5ab21900e448d2cd0ffb992c1a1f7e67726a3f951893d09b1f799aada5ba2e472f59644114893183ca78359759bf368e65390dae41bf45d96f5e7c3991f2ab2bd0ec2b3196c05c08486e2f8896298090c3cd74a6a0ef2aa84876c017d0bc98cefd19dd8d9c07ea8dcd31d42cbc6099b3f18a582f1ea071ef2d95946a7b7542b33808ed5190765532f094dbdb4f09ea5572312ae85f59a065101a7365730aaf9b70b0999762c70534e3d2edc6bc438f40bb606e1a1ac12f3352c15f85c6f84b8ca9c8d8a001ff8229c513a6ac109199428642d8881123457e9590294686145398a2ac5348c9bfe620b4dd5c2fad6c61ce7246f5d215d85b977b19cf33e32ac5e10eaa8cedcf1383f0e965b8a036a2619249c8038020e72b39f376d218f5015d63a08c7ef48ca6218613a31fdfb0ff0135c3f7f10cb59e0b63b755657d4ef562c9417bad074334fc91aa94bce83b1c5521484a4afa3ea5ca913d0955ef6b751949a346a96f9f03171bf7aa4bda75b6e91a9f3bdfdbc0371dfe00a40d1c911264068a05e7f55987dc804e30b65f7128f32c0e9357cd909020097366996c9c67ecd90a2df899f319be5de94d1b186d33da62648323d1c75f41edc6675aeb66a43bcdf41144390bf138376ee3d1dfcc7e204d64a9a8261a886013adde96202e7151184ae04d0c8ae04a4f3e19568d80f117e0f2fabe8ee953b70ecadd30f45208a1f4224715a979168382e378a43a5d204428d117b08e53212405f60b920f7e7c87a990462efa368532f68d845a5a0811d99861efcf1ea5dff0d123f8765452df4713c3164c979f6347ec1512cd7e0ea0de10a7f21dda7d66b3452dd955ed5e0217ee7b2152ca2efa5ff8bfd38c77b66ead6018f4774631e4641eda741a7ea3ba4b2220fdafe2f0e32fa5fcd6edc627c7068e55ebc89099ac0bb4675763682374a0c2b1cd5b989f2d29105497fda79fc5b04fc1befd7a7e51ab648b3a5f258149d3c800e2d4543460a0af3cd674b2d449406d422b4f42dcb050c96bbb389e684de58c97ff700d3df6d144b4f06359a8b004cf156ad1692a48470cabd011737d8e98dddc4a3673c4b6edf33355edafd18ba19ae2d1f171781665dc84c30796e6c97b1b11639408f6107a25b5772ff8ca89e7ab50e75f034a361ae23da4fd61d0d28289892b7d25b164fd942f09a9f2741cdccc98f0c02a20b1527673914fc5a3a599822bf9e3bd479cc9c2e31604ac3bd95d0ef4c2e491459f5c1a394b418f0e5b4fb8260d73b6c6c71a8780c6083c54e70f749e5b8e4b37ffba164724e6ce3c0567c60482170d2f24d37f1a3d13fa34fd04a9422c40eadd15bfaa64806b7f570d57c251553fee28e171ad9c2af3113a21d01df0abae441cd86b93f90ec499c899ad6ea578ac1871d195c179892527e9486d675902d570cbdd43f679c39cc0b2b6add9f84257eafc6a708727c02a114f8489b1e695c950c6379b52adaa18a96a2ab2351c829061d08f834d673b2afa9a5976b21969f5368450e1ff7b4acb2b3d491fca7234f79db8f25176d79563b79295a3b773eca0a7a00fc4730b4daffa0d6011088390c2dd18da2b874183b85f12ed46310058dc05a3054063dff198c182355ae0923add0275f25a966992fa85bacda18ec5b92f3d0c311d988ccb2fb1803cf910da520f7d79edf69fa7dffbe6df6d0e9f36fb85adbb3c3ffdfa57e6bee7341007a86e05cb6bf0e21dad3c7e51f9fa31f791d00960b73ad1b97702962e03ee3b50dc4642f638a5719dbe4f1fe002430d77b1292a4a52257c03634f0aefed85c89d9cd4347fa8bca372114106a61194512e871297a8253fbac3cdfa9db4481979575f9ba6bc8ea6a04f849cb849c89c612362d78159ff65b0141b456fd908e222b2632a84fbcd852900ee878dcb045f56262e25d8d8efd972d943d64f010632eaab90ed53b53f6e9a83452640613f3ed3569661d7b71baff0161a72fe417bfd9cda277b205c2afb930b82e50c980c9299291a8bc381c3ac0dd6434e7cd4df489f5ae8ab9b56173976520b381a487cd040514080b34321190f836945bc8b0a7abd97b942385c060c4a41084172c30b623d7f47a033fec681937935e9e328592fd1a62e91b38eec38177223e97d981e2b27d0d499e3f1c81dd535ee25b88f3f63fd449a3a5c3c4c61de10c5d27445d736123a97d7c4028893412b71cafd9bd925aed0ec308446915559ef4645ae0be1708c779781cc9cbe9b2aa66aab99185cf0df759daea3e564be941309cb3871a83410b912c70d85f4c88932ff202cca89e09741150eb2ff07921b1bdf60c52c35226ed9f06e1d4d2ded1b3510e741b807ec3c404783dc0dea6c108781b90fc065198c923463e273206fbd1c9ae7f34aef651df703ba880a18f3e486217281024d63c0a1402a389e537fad383583a2bc0f2cb3be21a01e09485fa6fa7dccb2936489671e3e25802bd09d78137aa82de250d7b449e09c6a3db26c1ae37013da362cddaaf20f5140f5c60fbd5a923ae59f4a58511c8e1f7126e204970b48a91e6aed1008b8ba29f043425ecab93ab9184b53b2a9e7eebc1bc33590fad59288de34f8a0d601137b1ee5690089561dce965b7714b876717bc4d71456d23966670f4ea6af112b2308c075c0b4ccdd42b1abe1efe7866fd5d26d5deb1eb5b17e73d48ce3338bdab76c4066d7d4abe06ba782b2fa16cf13f6ac910e6e4f98c2ba161ecd1f2c765aaf9421ea2a1a031e25a6552e3757b9e85d65e11f2bcb30ad2ce7b7b248d49545a557962fc0b23cc3b2a8fd5e6a18eb3790ef0c621a69a491631bb0efc5bfbef726c1332ff14a129b3d857ae824ae62c9d5e3be29969d94b8baa1e27354e2820598473fc21278e582353108ae61f3f26c53aa673064d5125656655f81294bd9f7f44a7f2f54d9345d2d1569b0d050c2d4450a472af91504948f569edc2f559697180530c493afa5a14fdb38d32454869fb9a181264a85b6b9c0e37bf127dffb0de57b4f61beb77d70bed772f491c82056fae22d5090afc33558390f9a784ee57b59ce785c0956cff2b8ca9e1e27244a1414515846288ca2b0d481b279a8c54b484217bb699b7cdbcecc603acbabbea1252ec03c88f785d84a4737bf6cc0bf4128ba87202ff11d7978c18bf520091865a9de4abba0f2c880c84a3e790851389520056696581880a08550b06ee9878262b5814d46443f3fe9821a610a6879ebf621e5706505f2c981e9cf8cf8214d284aa5cec9fd294e5110f12559497739d7124b9cbe44e4b0d6ebfdcee8852eff39e30e580effa3a5aa57723dfe4213147b93b1e95405ab0174a15c83e19a0344b13c897719a39903424b5c03d1c4d4e537fad83ad49ef4f7c5a338c4a72531f703a7208865d1e6e82e0f042fadf74ac7bfc049604b3726c09a6d0e5f724a9afca31ba9f4068f67b8f992f85db517cf3a9c17abe99e573b3f2070866a081e261b5a04364d39755b968858780fb2e6d94a3fc7499da304b046e174325c5ca5c7b45c2360456432250746c7f3741b01d2ac0dd4b2c6786339ea678449f3720c2d18833e8c3250e6876a38e864d21d170a596d40b3d23a2173fe01c351b1abe60040fc725556acc3703cac89ba756030a9c950fc2524d2c93ca0730a86dac7001caa20ef43ad96e55943b63d32a15a5f0a6191b7ac7f2068fbf2badf3984993eb25d72d42b5324a56ed89038b5c58fe4f4b1214b0cdc8658714f8364d816d8072dadd4652003f41816110e30848400b41f1f045b5540b943f957b7399dd070de1cfec6ec342890b134ee323fff11b023dbecc73868d705a07fce9f7fce0b80287246822a6222497a092d640d4b7567fc178b11423f892246c49795cc791fd0a4813654e4594d45dec5cc8a9b24b523b35655078c5afb16df82405335a030edbae85fec912abdcf3010e96ea2a19a97f8f16432792475931ffda1554eb9afaaa270ad249caf054bff14119f12d3b3b654a4ef788887bcfbb5eac89e6aa541883c4991fdfc7005e35da0e16782808b1c2cea22bf0ea2baaeb4fa5ce462118621c2af82f84d150a10f8c25450a2bee6ae528cf44ed22499062c38589dc19bf216ef408321e90c9aebc116577babd2eb51d68508053b9c6a407c12b520718669b5865d0f6505f0fe0a7c8df336956f3812984602d3be16ad6d3d48513c995fccab5e648e2ddb0fc1c9f7e17eaadaf646e0da61fa3e80853499119fe43715f2e7b07ce7e04981cf902c037a3123a600b499521e47cdf67c51bc6e674b2d3b68e60dadd4e8c3d128d3789de9b5390f491537859379dcc02f9080ea0380c84075369e4159f6659905a2d9c1d08405c39d31d47d19e472d58519ca618b0c324e8839660656f9f15bb0f060c8737cb72708aac78632f2bac785baddfacb6d1e00c2643a651dc8e4fcdd744cfa10e87c457c1c1fedd369b4f8e8ff3b5072226201c6df503b8fca01a3521683db3342dc55ab70473765ca80dccb18e7748fcf44b43b8d87aa7877b7c41a7496dac7f9c65e9436a39ee2b74f9c6147f6006a8d8686c9700e3b816e2fe9d55c8edefcd8c2c60812a664324745391027bd05c5280189dfca26d93f74ea796f4046b8fb726f106e53708718ef59b31eefbd84caabe0e9227c3b10091112121010131011245957b88e329011720fe01b5437c9b12c62834208bd99cb9c357bb6a4d33c226d4ec9b516c3135246702cfbaaee9754b9bef9f882968f78e13e16d7553e300fb0638b38eb19de69a3e1f5a92cc1e4db98d0cc221a793e09ac32f8e56366e2f8c2aad2067cac463e7a85456e141ff52b553ed4d79eaf2710e7ab39512539c8c7dac8c7c9e363e3b1f55ea63201002ed7aa6cc7b89b0f4232df8bafaa667df321c6f2619b0e50652c00f74e8cc3b9591d04bdf79499057d24812f782e308afe35aeca69e8b89093cb8b3007b3b3f2e741fd5367d27bdfa33100c7c47931be6d49a0a6d292d9f688afb938b507a46a9c40d81362b4e795941fa462d9e5f4e015f7f4154ee4ef857d7b1a212dcfa1eaf1e0762f87488bf0c3ba97f2f054daa69e2cf0c36c70f57d777ecdba2a86bf7ab1ff50b22e2f1eabb5388c772fe363373f3a9f9b4ca9f59c43151942449fad7d5cc633ef71725eff1a5ccae227966fc612206e532823c2095cb8ae9d538404b265b83d012a63ea763357b5811326ce2d19405667b542192edccbadf7a4b11aff9450a9eaf9d08237a75d5a1a2c0dc8b01fe9818f26df050c668b7e6ffc8f23241c14910d36b4665d034b8837c3168985974624a893090443bb78a1f1a2b2580bad15fc6eb21f2d9f7840c79ad21beb6a7aaded3fb5a8db0d881749c2b2481bbfb666edc2a4e6d4b61e8c4f3bd6686cb3462525224c864f4fc2b6622bf914f07bfa83a69b354fddd24dac728d76295643eee83b173fe6b778dd11b2d5208e23a07618e6c00ce20a909b486d24d19db71b39b55ded926bd14266f494c4b5cbee47ba36356b0f58cb9df818856524d0e52f3b98c6e04cb6b8758dc86348db03b8d138f29949e26a976780fe5350d52aa7605c6bb7eb3fbeeae42e3fb02e1e243150274aa544ed6a2fc2b61a514903c31e17e0036c5eb220e9b22ed7fdb56196ebc9b2ab302d18372361eded32d719a40dd4a93ee76c85b77c375d2e61a3fe533759aa85ebf4d891c6f08f63b50ed44bd1105171372691a29d6a3cbd5ab17598fd7878b40941438dc00e26b609d03833a7948ec28924717f9adeb889958608a7c9782432387dcfb900b2f805403d835e5791ec01dd182566266f4d8df565027b5ea89760d5dd0c003d9914f7ae113e3fa2b596d8c71171e625ffdaa35d6f2e458a2a39c5ae7c01737845949508e04afc39107e621cd871f6f3d4f07645147292834cbb06bfab7d680c6dc01031f499480d3572c240e63b35250e7a73f632c09a874f46d477dd2ba409374c11c12ed3e40e91492ba3039ebc3418a5e54411bd40ce322b055b51719ab76013ee3b48bda4d955130e5819ff5ef36fcbf850c8c1333834030c9fa27ad1d8ff61a1ca8484b1ce0d47a7c22f9aada62acc08b0666f6b949408e1fd7d7f833b3720f46c9404503200fae53e70c6ec709583fd9b3158a5745d422ce079831e11f27ce29c4c5b4332fad92771e281da79efeeb0203e754a7a7647d9f153ebc8bf194a1882cf75ad6b51367f9c55b8870ac069ffde129fe32bec273810fcbc4da8988dda2d071a9bfd9f16780a2c9f4b0b93b57ac34457a9b0e1262d966b980252c5db5b54475843682f12f0b50f3f64d5aa1990a39d27e33bcb4cc0eb26b5bdf89e13b66c7e906c5c16c0a1296778ef7f668fdecc1228f0d93b63e4805b20679d75c1816f1283899701ed0f7a7b31003d83703c7c1e20a5334fb543cf6276147cb36a64b780df6976196cbb6cc5756587d3b99e043d3fb640fe1e813b71a8d1f3269486ac61d6036872786de41b3a0139f1e88d96402138b747bf0ad06584988b913a0fffbe4158d592cbb6f0737177c27563b0a0fb6bdd6b672f6adb6ffb357a31ebbf441be67fa63351dd63dbf18f696d6024b97af1e77b6864ad8304355c9ebdba91f823f0482ce9513a2df4c1c30d11fcd3197d30f149390d87d8c6a83304a9becfce104fb36a46dbe02cf258df8e91eb6fb6139ab3f6a5b23395bd0f50f6d1b3e086bc7151bc8dbb3b6da572cbe09e94af566a1fb233fbbcbce4723d814cfcdfa93655612d69ae73c81f127c39f687568eda1ad9dc9adf6f60cbb2d3f4e26f07af111743ca442acc635abe694e11b1721295b4f6df72e6bc3bc0657d7aeb001d088096298833b5e7229cd3ec48e68b1cb7b9793708094fd6e1fa0fadf86c160bad3f52fc2a9812c4bb76dbe791f9e45f76361cfc160ca68180e20f3f87f19e496c54b41f5559a9725a452cdc610b491bab65b21ea62b45503f28d50f7ef58f8928831b29fefeb40306963f99159fec52eefa8869c936b194c97de66049d93e1fcaaace1b7be78f5299f6371f9fb6824b1ccb5cea11b456d8711049152dd9fadb7a09dde2a6a5f987859178f5a93db01a1cffea9abfd23988b851d91712df4b00fa1f072b99325eddd0676fed97f9b48eb845f5a2d5a045aa7ae5508f02f0e38b0005b81fd2590e764618e4b852315965d7eb4a7e37eb46b624dc1dc1d5af28386d567e5827ded52582db0e2bff14ca3c3b2be753917bac891fc4aea5bae2c38943be5e620d1a210d44fd49dcc7fea9f4fccb69add5a2aad6e909288dd2d702226abe1a18e6410dd77e4068d8e4ccbadbc4a1365d03a15d890c93d154b644a5ce56fbdbf3451f8d0467fc13c7046bc6cf7e2c764dcef7d3e386a1d7e67913fbf58cfcaa6f4636eab3f6db733ec4bfe4b686e3cc7bbd1534cf600ab7dcd463844e41c54f99fe1f7059c6d1add71d9062869bc2821c86bbb3fd84da92da956eaf7cd0b6f45ff5d84b17c7071884d3bf0b9f73416ef0edc5e32f30a28155de84c5fa5f80e0b8b62a633ac6f2c76535e1e9ba4f2c64b7b227a87b4ef00c76f3c8fea5082c5192701a3e65da2e061f35f4c45d320009035f6a404e6ed394c39599d93de4e0e862fc5f4b5b81cfaa018011c51ff40ed4673762f3cd4cd9011dd2301e0919d03f4cd74514f23bcad081089a82f911f5838eefcae93d0d4a386c66ccafadf7dfec9faf339d32cbeb42b68256bdc9291869183fbb52e85fd69e8e2a71d24d93d61e4c9fa753a133f62141f6470f9657a6e56700fab86383e2ce3f2fb1b69eab022f957f648bb59cedd2fcd33800648e83b37307c550db1f52c4228adeba61013a5caff9c0cbbc9607f2a2aea165eacf3ee2c594b28c9272b5743c1b36727e8d432505ec920fa2cc1bde678e510cafc38f4876218981b468745b42de25bf29722e3d669a12a65b3d0476f600e6972794f6f3084737bd6cf743a72fda039e70d2c03ded9d17bd3259cf503ec93037f165b7435f61cf9a9eccccd6256d955f2e22071fe7e793c978edb6200a9ca2ba88fec8d999bad56435958821845681f1a08f668df9aa2774ed94c4c27bdfc07b0566f8e63dc6a21ef2e4f453dc5daab2c21395a6e5084ced4fd3823f16737be41afc64f542f6c84ede778493e3e63f46c0edbe7cf897984b629c8a5499f65afdcaf2953fc91b21d4b5389e8e15b1f715548c3844eda5ef0acff55feb8edc8c0d42a30086bc50a0a84cc5cfe2ae8d103d1452fa9eaf9bb0ff4aa8fa8559d1ea57861586a5bb581f16d901cf39a6733a39dbfad3e72f492746e467f76f2691d5337fdfd1bec604334ca4b20018ece7d7dae00e099a32d625e407dd2cee82689268c08aaa6dff5aac9953167f1a44b8a0c67250646fec265a85f9714eb0de4c4f07ee85202e63919e3237c285ad0757621eb6e8098f85a0cd0198d42c35f352ea9065d8efa7e530538b5e6f4e8dc41b77f402addcca354e74effd48dce9d266264a40c328209f46260f883854da7243407e3f43808bc3765b3320ef012e767c53ca897b61b88513ea9b130ca4f0451eb42b60a140cd348f6a0a03b45ed3faf5226f966f5614d09eecaf7d14aaff1b2fc6b764445353e56febef43712a1d01519ad316550324d6a2b30900e3ed40cdfe0d29591a799587aef8c37fba806087ebcfe3b8f3af1dff5a2b6d4e554ae14ec966a25bac77c6c6a6625d1272055a90572f402347b2214470314c04e55db331deb04dad2f7673913a8e144addbcdd9756a4afb07598f831f1f684a490277914f3b91a401c2486b2ad653e1b239e04b47f47f876428a28b3aa5f2c12cc3d1d22af24ce7d3a44fdd6d30c0fdb78643f748163ef59b1eabc0c81ab673655d310245406839ff4875756526a083ce41e0666de7f458adc95b95e2b9c2945c8b1159a5e536cd2dfc2d2d5bae2695b4e4ad118efb8ef9040a20ed133d56743328f406b705033e3261280a3904ebd9294dc9b6cf4f73a8f901880e7b19b910c728ece2cba3611e27bc0e2c779194bce400d03d303ee11d886203ba4a6bbe2c25eca31429be7c687be8af9e8b1080ef16503b1922cb6565944a02cd2851107657e0f7f8c600192e93c5138ce830bc1457f983e67245cd4c0e274e886b3cee0a84f4186261bdd4b609e272caf9d767f93ae6a780512af7cae2dc5d061fb49d48dfe564b8534985306404f2708ebf1e6a047c02b7067d7965fdb0ea372969df7be189762b633a2c13f13c9afe2c7335432a087044c7ea8230c52c3fd7b3f81f0b15b56b9bc99b5e2198f05e261691d5b4a6809b3072ab41dee094d56ee090e0e9841c522215782d192af257c0788176217eae4a2c35d2137a2fe60c93e00e6d340c48232e6ebbabcd322db7831cedb8ecd993d9c87cd09e776f1c3cd522a83841a0d672a3f8846f9643b19f2e50e86fd06dfe60a02494eb4ae33f3878f288d3c35b41d85814ade974e5efcb7fe072226c48812d625df4706eee1ae265932e032980992d4413149e4008e397c9c0bb6d7703093fbafe550a0d95ef411a0fa93b1a4a5b0ac46d391f1f8a5bd05b98f6378fd6156650b310daeb098c5f23bdd3f57e7bae7d6e82cc376d65c196ef1dbf3cc341bef0716e2ac6e8eb3cac07b5522b9800ad81fcc621c936ddfd86dcfbd90802735649274660ca953844204a5c3174c47a063f2842564d03130cda1f9e8ddeda0f105d4e05a85242a729a1a14d6808a9cf651fcaa6ed10dee21e9721e50a6fb0c1095cf987ca667036b4f3cbc979fac97783a538ec9b1fee93752fb0b5511074ae00c28068468159f840c64ff27cf14a2967449925565b30ea952b0c5e9a184711b0eb4245418a1bafe3cde107ad95673ca0b144a12ab30df0882b77d67136f5e300fa2ed9552f2927e3a85a61bfb153e64e9705591d3100dc6b8d8d12d89598e053c7ba7b625af85257cb7bf769d085df89fb03ff61a2cb046387f9e9ed303177f6987546b77abc06ae40435b3c1ca8455a2411b7639091c3c35c2100939a3ccf3a439cd4731191b4ae03196e8369cd2ad6c6efb9293d7adf286a4cdc1f427d9d7201a9ec03ed679a70cc23eab00a59c77c87ab17bc8583b62013d5867a67f863bbd584105d4330981a96233c2ed95e34829088485e03d2ed63f3bafea1884f331b49e33c18cefe752e3764348d0b4022b5a9c9b987aaf2d6a2a854d21102bf0e17b319be6091ee7c581253eaf84a531d03faf880b797b857e9762419aa19a4bb018c5127fc69c622c254a14e968eeeb6c7e8fed258c6f52c13f399f1854aade14286b0ed1324d7dd0b02ca9f71f76769c2f6523ed3886341d59ed6a018079e76dfe1732e2ee5fe1454fb017458b33be5398e246655e5a00a15ddba373c70cb24ac9b2d116a14c7ae2ac86db1bcad31a7d5324a5faca58cebef3afda01494dd802e84ccff64b3911dbc4109d196e95810f0e913d6746b9cefa74924a29868b0fd259f685e836213ab3c22d92908c5e3ce50f9039eb15a361a84bc35322b7be60b7fe324a17adc60b74a2b7ab70f673ffbc00eab2c75adbc472f1af7c51cd6217cee6c9050f2bb1d231ecc1d1d00039968f0f9ee75deecd302ca646b870e145b00e680b27b435f9fa3f05d41932c14ad900c0b15ba4c5af41172bc44f41c1b0f4b14a0d489e6508e5797809d8709c77f3c36b9735e31aadb72dab64742a2f6791811b468555e27f11d2d47caf554c5ca861e2532d65863b704c014cb52fc6899b8b030ee5af27bdc18c22fa937cd0922e217d85d4d726bc52b3245ba5f54700910ed798433a0057586308a520587a72254aa8f39dacf25e81055839d0ca6b65746e034264bf304879734a16612ce4d76b6e5e0c5c6d1ff0d116119d7ecc9c9f462fc3b0eeaa8eb9517bca5f12ea123d04b8c6d901e0b9d876e3ed3820ec7e8ddf8bd49868b7f85923d7d05418ec2f8455998b9b1ec45de4260b5041787b23d0197c9bc71ee679e87768bb82e8e07663a44d08f82eb59c07a83fef387f1b6f87534c500fe2c2774bf76a014340894694c7245e5005c11b230501a5a0f65484f14ea5200dd17890a5af5f2ae409ffb24ce4b27d48edf1bc2cbe18ccdae5213b646fdd3795175c1f777b7f7490ea1bd9333771b8766be5ca0f4d9ac63dfc2d3e0856094433255fd916a32731a78fc4ab822f6b40e94f018cfb135ecd39ae27b606241e4847f602b174c55536b1e37648747bcd4cf7f11eee61981a3043d87162eb10605d22c39fc8a0dab308600dcc79cb84c6960ad277b2ece7641a684e6d32d68b4b4f45861d1a967358f328451417df5d0003f60147dd3b6f9f3b2dec4a63650cac0681f1bf34a120e7df01abad9219d72b32f63f43b3f2152c8f0cae22612bb3118c2294d7d7ad2cbc3ee1f0d643e66a69cb11f1ad14abe3788b3b059e462e402e1539c745caa22648e5f320133f2f250e063e719a949768bf6d7f7e1780d029eb1669f1468bf7cb82c65f073ba185784175876a6cd3029fdbe466c444f9c176360965a75f12294cabb31a1e9f9407bdac9bf98df707802a0647b8bf0581b72b94d890d8d297a90b7b568989806e1daa65989cd2b1e0f5b8476e8a9c548e12b0c1c1c80974ca511378ed30360a751dd8e9524e5d7cabbe956016a88733a34a9e7955917f4f2a6b3c3b9ad07dc349b7dce8ecfc02fee6da3199dadfe2b99fa9c4ae9ca0a31fb1864ced6bc89eaca2bf56b41a97b155dfff37bdb0b39612f32186ba5e427a38d6a27327820b77c246d2d3eb388073205bd77843d30a4325fb0b2587789fe462f44d770273cd7e07319af045dcc83a85ec4859a92473bd386e3ca7288a13a0dbbf6825d5b936e0a6e04914d314c40b8b614e2b4910e2db6b2f8b567a6294ffc043d66cd8c9f7ea392b854aea923feb1e6d35b61d3fb62c72d03852b00dfbc89b9b2541c9de2140b62a0933e71bd28497a3fdc24737a68eaf6dabdf824aac89165581bbc9e963784eea8957374d30f84d4a97e1a41370228a097a2917178493eaf8be15534b76fbcbe582243266ee67ff6ba50d532c0b3f3c76d51f478f0a5fb015e80fb53470bac4b184368cfeb0dbd4c8df3f696bd141a49225ef3f6e1ccc24715413606a4c8275b815bdd2240ad5f85ab04251c1ffba567774f343c232a67f32b03e3c2bba91dbfb7f284a330568df5d0bbaab9c56c50e515a5f27e3c6f70b10e82fd1d8727728e78e33af1586fae9bd4f6babcfe953801e7d151b500c8b68b9de86b006f3febe0c94051ff04924e7d4a27d675e030a3250127cc226d54c414b17b2fbe036947818411350d29d88a89449df225e4cf49abe974f87cd59a9ecc4a717b8c54dbc5129aec0e00fcbd22bd48d2ac3e1229ce74685fc6d44cbc402be114e79e20041db2ebb502153bc5e1733efe762994ba143c9bb92fa83d64eed7301c83eb800952540e8fff2cb38a4c9f141671e4c8450030a2a48e6b12301db1192d83802f4664fca423e630a91586752869ff2236ba2c9604b640f891ccc5f20c74e02a5ebf0c4cf5d4d15179fe012847ccaeaaaef5bba863e3fa7869726fa00e0cc4656a321590a2549c97528ce8335a767e54171265c14e35e6cd369b4c324a49711cd4104c453757539103ad65916201588d2eba4f6a64f2f087ae8f1f1691efa64be934b0042643d503aaf50a75c65fdbcbdc9fad112a4d033b481a003f8d2d0ab9827b1e8cf5a3ded62abe447a9099223d66bdc0f5f09b24de886630821dbb1f3291d3291d46cdad957802be20d6fccad4b3fadce38843b42e2362be9c7890e8fc23fa7abf2515d3f41bc2acabc0936e2ef7b0468097720b77dec37581233885bef6e83de1b59b95d78c910f02071469e9c098a0c8c54297168a9624443dff7e4d39dd93b8a5e1a36d86ede82a4a0d226e48ca3544edaab044eb011a4c80068c1181210ba2cd111e386232d5bfaa8bc6f51d85d1fe74cd10c3a1b4343a41a1c4dc8be0608bb226db125c4cf331f352c8301e77e82155158eaa8787dd7616fd8a41a912bc7d30e8e696f518329b1288f887dc998d52a1897bdfd759fc1bd64d9f3080d21f6a632cd773056ee1776a7b3d40e5dc8813757215caca0e2a9012b129ac475c42cf91feb08b44daa0e9a25f8a025a110c505d7911c6146bb447d8eac3144f14261278c2ac8ce7b2df23c141729d89243b615c8b4b186becf1a6c21f0500af0eb3fba085b7c8946f8e20dd2b60360be09e80afc485e3b153f3112ad15ed22859e6b7b388a10f883608e3e2aa8051faa42311245c5744b3d8936a6844f6451dd3497938f9e660d8fa11e134d88539d79d0feab4ac644cd581db3b80ec2bed4dec1bc5cf3fddca66aa028e0ff328561ae9c6ed682c7eee253978cd927658b27ad4c6bbb437436fca9733f6fc31023c569c793088e43527bb0a6d40877b4597179b3d65d1173991180c074bf258f22dd767c4260b5659e292eef281d263a385c8408e17543626184421c4a87d2b81b96407fb79d314f766c99f6a13c35805bb535109d909f9125175fd1e27d450ce1dc3d634a8843c32627a5c3ee78870b48a898db7d43c8686452ef0c877b905ef1fd1de9e64038ca3294f7659d84201a571ecf39030de37ae6d2132fbdad29eff49dd2637bc08b596df9a9fa800388d636b72f8b8a18d158c09185b87679fca320bbcfff1601f46c9fe7ac073a08494a2b96690987357be639beb29d9f952cf7f11f053fc9fa40e0143a15084f9ab7c339ba0be8a07c70110e83e0d2fb2f992867954c91a75914c38630c92708fabb6f7cbf461772ef59a0607e642c0570caf6730b0979793dace529de573d16ea239e9ab72b2b2e2d3a7f273731b2ba28953bd9710e21b13124bae9a561c9f79fecf72fe9b9eec72756e90f316531b3705cf0ef994a1add85f6b1eaaa6b91c8c9e846ab1508224f85dab9f3c75ba2edcf9462209450b729978985dd212ca5a9add0d462c1dfef4366664900759d5d68195dadba49273619e7a4d5f6c36d0aa371f14224fc52c0d4354165ba8f49386faaad81387766841f9cf743517a9b17a86fefdc57d784b75ae0d42e8a4072c09a184bd786a3b0577f0cf7d1a0b0cdcd74c007d669e7c3e92ffc2491eaf1d78fd938a76b9fc0a61dec29f194c486ba90265fab2cd369f4e6a15d7fc3cdd7a75e464a51144a854d8aee18384a29cc0305ef32070677c80ab449ec5db717f4478c718ecc2a41ef1a2d79f8df25dddf495741634faf27fd94a92fa114b454b6908acd72083c0be12dec6b58b6e8a4df46799b7fdee3f436dea0056bcc49b021533ac82216b68579f13bf380f561206912b664b18bc9c68891dc0ebe401acbe910ced8e843e602be5a32519d80c951ab5a70bed21e48475ec5ad538b8a584458943f38ce751010128a3d2a86e628e4a80e446754a1fd47310f1cd80531c888a6b4cda9d85672d9ceaaf9d70f3e62ae18ade7abdc2a8f9401d1c132450d871c145ae819d6e7683d42b7f8e483cd61465144133870275b52935fd1df4b11e6a871d9dffeb3dacb8a7bb3bb17e074a823d19e3dced904862e4cd61c86f63f58be534b4c0cc58383470e1d1eee8214cc9b28a1cd4b4dfe3a751884b866415a176312a4949cf1371fbcc5a4840efe2eb39d8485f3c6801268f80f4f6c494dd197d420f92f2ca804862612cef9c02eeb0c9a7010551b9f01f032072e55ce34db227f9f9414862c5016fbc24f54f807eb379dd8b54988a53baf65dd46e35f621728b2056610bb55d015a25ddba5bfde0bf0078af9bb83ff6943fa284a22ea08f1af2f4adda0244f460dd7ada90e09c96a28f8c64d28fa9d203ed5fcb138e64e913301e5504f5bf076e4045c183505ed5738284ba1a09272542d6c287c5a3d20a8b2d0677d9b51e29905d6f7c3ce453fcd080d72ab29bb923f0bb9508937fc1e1df935762735f24f72a8ebd07e07ad22222a48b479eb675b5827d5ad67b9bc0b203bb9ae50a01907dc55f2c8b983ad7be4832ab9e17d35fb992b9a7ad8e5a3b51e87ecee3718f3443b9f46cbf1c1b1712eb54daa408c6ee07c03864ee15b678007f1c99646be37caab40d4cbfdbd30b02b0e52e2277c41ca180fa01f468d954ea7b00331421229c0d69acfd37bd7366841b59758073eb952b7405948dd90d9ee8a702a8556d6c5d0eb6355188f83449204bead9b10c2d726d4780ddde46c82aad9b75bc03e82a7415ef89181dadc9354140bb60170a3b15290e64fd259381a59015db8736d94df6262e5bb46893252aa5024bee7a89f48445557c98942173ad7a49146277aabdf9dd4d90b4eee293a4996adb9a6a0f66097e1bf129a438c125fd94f225e2bf433da7d712c8a0916cf94cfe51c83d92b59ca5f00c8d4c2551ec03703f9a81ef64ed1e43f60ee398772f49f20922715e94058dcc738fe80fba8d11f3785451bcdd855a3fa48ad7d2c92e584087a20028686e0cb17a348dee114b08d76903ae282d80ce10b4b23c5c9ec302cbb52acca428c329d0201047d9c24009fe79ef71d599f92b8f933c967731e3b0dd8e946047d1812f837cb047fe154bf2709010a830505c8dcaf2c683b747bd88a4076bc94b04c5808239ffa8eb1fe25b376df16ea252356d516c44476244c25a978e7e59472016de42f62489b28668db14fcc0af5b7c6c6aa754efc7c652fdc94bc5a04a7f2d1453eb1095c034edf8091a229bde40dfc751ec8b7e47213643f3c9a716d7e5f731d4a813726060112a8c0b3274bba1cc008823704bc8433829171cdd187af8b0e9522acc952228721b1c08660b8a27d0390afdc52929a5e58233cd9d3690fde109e2640e7005c38e09c6ee0c1b9c9c6cfe2387ce3eacba0b62786bd6ccedfe3dbca8e3c9a2b3fe0f53fcf2a96051cec73a129f8b46b62591d7a26c219f590f9b3bfb6a41a0edfc934e0f627c0ebfd4c04fd18087bfb5ce45c045c8b88aea6414fb1e524b49473ca80e684a3ed1981187afe3abd699fbea1437f274322442d44ca0c28c1da0648ed07acaae93523d417d069c038a17db950f34545660514eafab5d21df739567a2922f70d94050d42ee34e77651cf7a6cb9464199ed3b04842054628df17aaca15c70ec20334f175a37adc7be07651032989ae653a3ab7f30e20218ec98045f290fab180770a9ab1a291b3b2156acbe701bcb0dc5ec51f330a541ae4ba7ba4bc8c306080bfeff781d182011e0ea0ca4b89dbff1c9f293aca6103ed736b5ca0e268c81fd2f6023dbe6d05ebe340f107aa286e9595b81a7980e6b86573dfbeefe1fed73800f0278492fe80fb1e4399395ade2288dc3ec6d6610b077647d5086323953ffdeea8c8cc095ee6dc7a953e5c9da599cc9beda64f4efca1e4b9e2b43f14d36fbc5c0c466bcc57f3eedf90085a68d030a1fa969292d54028245c9ac693529918be7dd3b0c115fd82618c86cae830e9900160aee33ca2c0fbda5ae278c76d691e328227e20852b2ce06018784d6d2a907b2befe5f43529c01c3f23e574253ab8e0f24022ae2fd3fa434a16b0f30d1f29ba929a87c84e9f414fcc271056828ea966da91d07f309ead852a0dd4ec31b54faec0f171b72911e06fc16e9c39e43c4605adc7c53e3ba262cf1cd85e1d287c24d8ae6a8135c6f70920543cd957578cf8d0b9d13c0c273d10f38e041a04d2d48693f0b89be7b7e67b1260bc1c1f4a0471cc7461234ce90c4c987acf1b91fca5c2d1c43ea871fd465a35953871228c1fd81117382d0ea0fc039c9ca336c551f3710dd5dac50a3f0bfd5008964f7b43d1da6c5ccd438760ccef3e2851a7fa7c10ba43a799bf3b07be6ac4004c8043c1553237f2f8c4a7d56d2474735f84d2c12226c0e068976f592dd1314adfeaf3a4e670fb45e75c15317718533bad328257c22468ea035aae44594832d9837e61223601f23a7f1ecddaa787855a61111400d6e7c542daa8100e302cdf8dc2648f8ae04e13256b3dcdaa94b4013ccca10d064aab86ef70a9cfa204e4ae3cf7d7a57399bae1886fd9fb93ca1b80fd55d0a99050eb7e951e12891552f8e76ea3befa56cd617b7cca83edd5805e11a7e5ade892468bae197883c4e3b586221b4b2ddf0fa08ede3c95e1efb2939852ec68804603b91902561824bd7315e6d3eab6429a6bd5c8ff3214debba490b78deae1989800c66b67035d80a1b4554eb9b6b135fb02b74a46d5e45e8c22de49f377d0f32c16c4c2d32b50a12512d6edb6dec7f7ee291f1e59d2aecb54b8b4cfdcd3be6293b796480a928c80bc85f0fdb505e0258dc959f365097b42cd33ee891ecf3f924bfa2e0604e244b3c25e4804f8afd49da4f3c28883b7862209785863c4ed75c9063df414680cfb36b905b21d1864111e2c398b9f7d13953b65192a455d2f0b55a309310ada704fa579c7896b4e6b3a31981998bcf639817d77172933d98b6deacbd3a4bad60a5a1aeaf61c63f48a5249bcb3be146e5007e03c30638f5c914538304239be1ba6065fc14e29545ca53360b22fd9c5994943b108da34de3f2b81e44f39ed14feb95dc73d29de5d98377817c9948a16f8c690fda7320b978cfd310f81bf349719bc629729c367cbd673b85477bcaf1aafed8bc3df5311c6b713f7ee3751d7ed1376dc3661df7d13f4e2c6672f579ed43ab9f82ffb420e2e1c0e8827a32d6c9cad55934ad3c5d3d21b6eb79bc484565363589e8f36a71e99caedd0ed2b1a5550029754c831c73d7e2eb34adfaa43c1a14142c23cd24250d786fe510bb993c52a848cc3aa5bac85e6c161cc3d76aae05febfb1875561666480a529ba7c44f33fd3d76e4a73922a16c7e822b63333f6ce1fce50297598293f49a91fb406061d2d6da75b9320148c1b4572a65377460659cd4386f614030155e1a060bf79eb7bd655026991a7c5673f2b939607bf50c2579e2d39f6ee399ea6129151a67ea5fe375a9fb1b144e11560a27d90e229b69d5b0432e2626650debb1e59ad1f8f120212eb69e363693b8e1a2eb83d098c37b1499ce01fb855e38a507321c25e1c341baea95361cfaf8ebd2b193b524aa04d33d4c1245224f5a603a62e4a8e8b46880c724e51316ca7162d6bdd2319af7b4f4c6538659c686962e6a26d68fa0cf9789c97ec4536d7ea40830699d8d311b18d9edcb88a32a020c3ddf60a4124d88b192c075bf715526feeee161fb73648a5ba4ea767ebb15414e43621402c07d1b36806a67e56081564b1dde78dbb50a0d232e625f7ac262319dd88cd19779850f3895db6951d10ce875575e82f1955c93ef0381c5a800e120ed1b5a96be85b9651eb350c29282c8b4a52b103c94db31da11d8f1e04b88ab88942f8125f496731970776181813dded519d170e9f507447a0a172fd3ce42fece8c58e020120ac0d3f8b4828d21e89ac3f4f8acd81265398a5e88593b8c0276dd4065c1627652dfd88832d9d51d4fdd79b7e0c085ba4ce09ac55cbfac60b1ebfa8d4583d37c996feedb2acf0e7f7210eab7402b8a11d1f5b1b835f2577d41b4e9b7bc1a3f61092358a3fc900fb9b50d8a57104c110d1238c897c3a44d913db40d887950e3b3910274adac9e18e8b948ea79e50151655c2d272e75b4efb895f747bd55617aab7e92e889f076d1e06c99e1793057547354189027bcc5fb06775cf88615c4911bf8f63922c0ca7abddc59cadb8c76b70ac6e0a848ce96360d883b024c3cb0b003c8ad3d7b0984f895f20c5d6507fdfc7921856051726929503bfdd4bf2ee40b9232831eda4ec837175f175f73654912fab421c3dec81f8e52c5a09f778a6ed003317226004acb4652492dd0ccc5851aeb151916b31536cb66022f67ae209aff65b47e1d8047eb6726280a749df12895b1fc947d158044976864053ceff0f99f591e81bfc5f039c2259e27dc850a0719d96afe10e7d82ebc41547ed4d07f792409e3a5e9aa79db2b7a17175f2ed95820e64504d6814fbc61bcf041247e0c8db82ed4e612af933c5c0753c3c542c8580c607a06ae02ae096c8d791c81b937b794e21640fa125930b4394b36a0f621c01e09d8486d0d6aa9df488490f6ba7ffe10c76b5e285fc288b981ba38bf23f5ecfbadf190d67d1d21b5d1394784057b72d99a85b7965ed45805e93be8caa3a67c9e972de9c3b8329666a054e5e8a3341287132cfa3d43675f9b8d2ba49bca16222773ab0c8848ecd315f76d421125c9ae44c34cd3f33c0588b7cb3c9b6a1e63f5a6a8d4dcf861998ef6fba58bef0265fd06bc157404bb1cb9301531f9a8428a9fc6fa41fbc3c6402340414b8ac84a8565efd8ed1086584f7ea31bf546412bf413a7ffb53245dc00bf61bac36b3cfe0df31779150fac3af14dc3ec6fa5b17d1d7d48b793a13709569c53934eb785a7efc9133c13a799d181319ab8ebd8f1dbc91604e0545709f309b77d7d3e1486ef4674ac51d2c0adbc1108a732e4688a8635832b182b17d2037514dea4de02c7e0c84e45f499ca99ccc8cafb79c05644fd0b5000f278d1c1300893becd049125f5ebbb806fad6b4dc7dea0d6951735b52a7244f210958ea77a7e2bb7012931cc3afe2004a816356404a628fee9e9878641553383a99d6900d6b2cbd08aa658bd1b4eafcbe4df76039e9d7ba05665cd015e98def32d2457d0f3eabdf246003555d9f67e15fb2438b0dd62da387b5f4e1b09427ede8e00df97f25bb322e7be01eb3a7de236d0740edf6a863d3a5b64900b125eb3a25da7a8beb74ae6f6a76651d1c26e96044fa013abbf4dbc9d2931c96b15ef3b2d032a07632339515af21437dec13b46b44e84f6efeaf20d094d56d760c79a49b7be26d4f704de31eb92e0fa7fa73f652d0b2f6165980c263f1c74aa07b2e95e3610faf6df7ae165d81750005469fe532fece08d6353e812fac504b80f691e3a7169a1c564eecf50f28a864427c4cad57d8b63547806c9cce652cc2ea6dd2ee2d64a5af66e2da50816ddb833ba11e31ea6f65c80d60b834148b1e5a2ee890ab580883c2439bff4bd21039dba98042b54347800818222ba803ef1688b1c00a234d3e8a138ffdc4f0489dbe61e4d640f3288d548ada601788eac330b6ce925695f683e4c47af70f38eb977f975cd55f552958cec80af0f16fc4bff591af1b04e3da20964a9130a34ef3d4ed46c42df2e68d5fe1baf89aca02866948d113fd5f3afef39b331605db8804f611142a171a86ceea0d47fb890cc8dfc0971aebfbe332360d1850ee263204378240714a24d5cb37e19ea1be557807b767b32a556a426255815163304fca5b304734e21fd29b8cba582874bb650ce0ca59c082a4785b5bb989e711b67c54257360c1f218850180204d0970baaa16d66c595338fef9fa9f87811ce5820812fbe89400a31eb11ccb09717f4683be817233bbe840cc4cc7c71bfee150ccf646e4e21d2a9addeca1d882d2b407671e625c8a29e3e8ef89e7d8f1c366b75ab994e3f20ac42bbb3581b5d1fe61a88db5840f373761a04bf408d35771eac809f67de77465970379f68dd938bf3f07437fbfbbfdbab5b0bc2afc4a6972020c6d584b5499e906f56806d7f9695b80192b1da7b30015701ae54d27e33521a84ad1eaea0329d7bcd87289b27226aa63dbe16eda6f88f730700dec640b4af1f11618b6271976cfb7304cd24d870a30c528be4905dbe555d79ea0ed34d9ecb4d0ae49317497e004878cc497f8d244c2d2857912ab88c053a03c6d4792b41862e90f6915d055b29e81ab5f06bec80086fd2dd07bdb54812986f9732ff6c9d1066c03f9761ae58e49caa14b367964c152c4d8d448520c1bd11588780d29bdb44472b41a3b8b24fbaa8f397ac115d746464f5522cbb37265054e0e36637ffc29e0cedd09f44d002b5d8a84247ff850cca607f2ea137d7cf9bfc75a15329ba790b6348354f0293b8cdb360538b04716d1c360f47f03a346c51b1c55a363eabdbc8b7d557b30acdb7b8391147c945381421b5522c191968d7d2203a85541d810f09353c8009d741fc146d5efc0b7b31705439993a2008079c735923aa997adaaf85de43ecdc6bc7080b23173c1c870c6e0011cf63fab90285e4acd12bb0598cdf1df96901dd3916095d4c2f2c51c78623bc160cfb77cbfdfd57e96ee0d16b1d606c9e75ed05431e1a26ef70078e3b2fd2745428433816d732f4133feaa8c92ce460d8db4582b45d009e12bd85ed0a2e90e3d5304730aadf135986dddb0943983c8f37829761842d23847973940ced7a752d6af1aa4424e021fe54567135cd9a19cd2153e403ddd51d3213477b2d97b0e6942ced0ab4f41fdddf401a587462b4f304fdb3ea54d2151557ed0ad49b49b27bec2f163373674663664e30b4647735b8a775b353824ff540f1111a6562dbb0411f4c86071ae68246b9e54d3157ef9cfd488d78e331978a58502c721de6fd19b84a85b2d4299cd738d87dd10c4dd21e595ce27170b05e5f5dcb296ca3d59ccdbe99059307ecd8c3e32a4c04aecbd5d3dec2f66595155944a0ea9ccb6d4a25085b105b704f265375c9f4d80b653cad2290d42f18785e1899e786e5729cebaaa3bab8f87ba4905f69b4fc58600e88ca94856b56534fc9cbf0c1844170d0adae8310c1d2bc30570e3df1793917e22d7ac774f13644b9f7ababca8d7708f2e4351ae2b44cfd5fc05985f7130e4afeffbc1ddbac0ce8249e315d6604def605483b84c0ff7f1f672bf49d29a484e0ff267623b43fdff3f5e602bc2ff80f548f8b2e1e8e5ca78ca05ce001cd3a702b132357b369252954e85d8f6cef5a02b66ea20c1f871490e8fa3c26fb7545133936ee613502d410039effde1af05a7ae413c135568b62cb3862a0a39f8bcd36d77f2d765a997e97b5a64288a842315655e643bc21755a76cf04c95b2f43db1f4a8802440a2be8ba5b571f72db7a08f3468a4187686764dbcddd86c11788092e17deaba8486a009b250deae11c962bbd2dadb9c24ca7383213dd4d65a6e77fcccc4b37cecc705928dcb71e83203af3fecd130c73fe6070312a267703e7c9ad9e2fb121f0345ef0e4357e09aeeac54a47100b4c389c6525b4a6847f3019d60ebe85cfe0b44391bb07ad5f53e9fa1877971d08647d4fa85101d01ff140ad4101494107a5459ff0ef193638d8322f40027d5c3c4127fccba525a818c8630e99758a5a542bf70415d76c7a0dc65471b009d26f87c7b2dd76887a8df86150d17d3f84b284ef43014a7692e903abefe0549741311315262eacd2e4512ca22afcb4fda210e2c743be922c7921c2c41fb0eaf9aeefc521f450f18d4f5508b38ae2f6d41ad18c64c5b9c9da4db20a60b33986d96a728850251c97c7f55a5f8be669a4f0fc1244c4b2ff6feabdd5366e9eb71b6604f41703eaa0c689592090c24a07b9568bdf0cfb7c342b8cd01331298eed08098cfefa5d0a5a521ebfb7567c8d4853e6812b5591c6b0cf06008228cd2900a5f9be4b35a191a116eedc666841fcde88ed758eb15ca3b4884842b6dc9bc82da59452a6e30851087a08945b12ff0416f5c2e9d6b715d6b8a225f1b919d6ef48fe8ddb8f4ad025cbe90f0902499048f648974f643a023142bc6431d1c39e12029543202211a6d57acb403f86b822fad513a18804812476215df2f5b0a7542ebd0226c820d5c61555a79ea6b9c639f5562b2f3ee7c5c7de93e61dc95739fe38290f576465d0a4e0d3ef481ea15f3dfa2d5d7165452a5f11888a7400882fa4f4c0f4e44a0f1c989181531b2c629c208b68c398aa026e884dec66880d12da1d62d309a1d9a062d37dc7bc487949f34ebc8e7c39567befbd995f4f49e632abaf2352c9cfa1a1e941a6bbfca74aa55259bf9f12eb6d723814ba867e7c33d328db91e91bb6d65a1a71964fad921be4f8b4bf3b424bbfd277e49c73460fe99b8b3e6990caf5465a8448042f446c657801425586971d6e195e6ad0cac8963e0492aa5fa0c820696163032356c0d225891b1cede042930a7628819328516220c8622dd01b3128d304868815a8f8b2001c6a48b2a28a13308c20d62086c626f3f201a5d8134e624ec01002115dc82041532c4b1713d834ddd002344764f143a4e1091eea1368364a9f80529fa072d9d81813d418cf7dc7a0d07cc8f324828e54c891b44f1bc46cf8e89d8ccd4077684371211623819499041fe912c51e91fe19642e4b307223d89791ead7ab2369d45f9aa6f21d29f4624a4a4a5a01463f4811d7cfa6243e049f724c5dc67cf8e3a977154aa96baaeb9ae1de7bb38fcaea5fbfee293026194752262525251dc9149041c6509c6558bfd60536414419dafb02925a397d934754ae792f239923691a09996b5f58a36b487f5f477e9b51a20abe63504f1f69ac0bd3d3199ec2688ce9a9d3d8e65f47e26b4e24bea6a47ae699cb20f939d1bcd45b10039e180c35b1c484093210f5e101a56c224d95c1531ad9d34f6a6efeacd6a7354eb080ef1c23f747ef26a6ba9d267c68822989a13078d44c5aa7e7002fc912495c5e904293491c2085c4013bdd0c978917eef5a0cb0a8060411362d0800c255d7c418511504688510694364cb070a71091d4b4bd442baa212a52811224186b6067a779198831c1a848aed75aeb1257bed6fa8537c95493fbaf1774c7bbae8439cf54af80044d28a18b689cd8a005174ac49003154f64b0c2850c335b8c91428625aeb04b98c9260c90c8a725665862494db6629bb63f2af653010b06dab150a0577bff9cd19b4a0fdaadfd9a604940c35250e17e49d98725bafd7c7e51099dd1ab1b894e3789a7f77abd90586700ab0d15ebd2a5fd52905cd1f48458c9fd297477f6746c19ed1453b1a4aff13df544d35321e212d0b0ae0c889c021a56bf26ddec698e8a102b397e931712273df2f54212b5002498f5b61f91902fb3a72704fad9d30dc3125f47daa3f777bf18bfd791e9d1e3a7e44545c961d55f46e247a57e2a60c100f5e8d5ab87a5079da924a960bdda23f947fa53d23ea547ee4bc2421dcbcb088ddd53562f32b5752a2126892d6aad5c58f8fae116642afba3ec89aec40b9438f321cd356ccd532467f422c6283d4639e774faf33b8a2f3d3e31d48553d3115cbaa77f9d7a3e1204e57c2735990f9adc57644f6f913d37092ef2deee7f48108a052960c40006a6263413a0c20558a23c310206a7184312616e12625669aaf6d528aa80411359968052e2095b85142fc0d02207281c220c4974a14944519a2637fd787c9cd2743dd19da09c9e3eec9e6a17d2289f10db920223aab0cc1821c30c3345d060c74c1168b29922c6dc9829220a6ca6082174cc14b1c3874052374aec9b8b90e1ade53183e33bb6658cc7dfb12d6998d8428566664b54b6a50bdda28454ce8eb862c4115b8268895084c80c51b7050a8d9d8e32a3e50634cc6811039bc972be635ab0d012e64320a99aa54cf410cc36dbde9e5d12c6f2226c6b0e01f15b39f538cfbcccb3cef2224c7a0dab9cb749cc799ab3bc86492fc2a2d7b3a7669e75ea694eb3ebd45339f66e27c1e93b129c3ea5a54b777fc896bdb24ce825959494b4028cc80032a8fe74074cf9c93335939c3ec4384684d424e2cae39f65facc4fcf2ae59141e18d24a84f24b76e2691314a29a3949d4b27923e3e3f7de5d5634084ad7cfbd10409c6fa9aac9ce5a5b02272cad4431f9f24ab95a7b47224988f0caa59fc8ee6d74f0995d5c781e8fd74674e406b476c94d2aeb77d481474887072347fd6da1ee591728e09caf4e36f1d945f1f7f6311d1a28a04df4e0feb872f0a32fdd78774527a5f1fd3744fabb942428658d33dfd61ee202143b4c9f9395f515611424c96a9a7b0c38889b75e2ab964f2c71010d0d0d4049a42775e236cc4f9de3c449304aa99d7ea3857f95a6bad938a5c81bea17bb3129cd04059620d0d66988055108021c112559a58b06202587df2d53b355fb9afb1a632bed69aa7c8fde1158a491948484813d3ece99ff33a8fec893028720be1c5d7ef9810673ef4a70ccc5dc17a21f8d67fcef9859ecf1eeb755aca1da911a60b2d3fef37f781500ee1c287e0c71cbef052c6084af044490658e8dfdf7ebb85cf29a2043300a38cd307868021290161032378b0728593182c7a37857ccadc10430e56b8f0c2075874a0bfdf404f0592920c8c18838d0b984e109371043952605882ca961360f104d6de465248f1e5cbd3d087436f34f4f466ddd53265730e81b9333aa9c1c6b09860d26f82e1c1b2c2873c4f4e30c0f321cf1bd938a9ecaa4c51f9628d8a5e517367986e5e49736598ae239a57b6b061ba2b58643b61ec95239ef51dbb52e543201bb5c5d81dbb6377ec9befd815283176df312b6ca2f71db38285152e71e73b6685a9d65a559a95250d675996699b95a420d26c58a552a9361c0b824c8eef58105a308efe1d0b428688e33b06c4181cc7712b568def181060b46db524b6f99791ede7cf2f64f22a251a89774927923d650fb9633d3c61fae483d3bb24b8c5d632278b9c6183eb3b9685851a80a10516146459965d151067f09788f31dc37244c442455bbd8c68df2ebfbf90031f85224b5416311cc8d1bbd36207315d65cd1855d4ecd0738aedd58e3ffb577f1da3a2f41da302e501b0b5473967c5fd830dec0f61b4c7821fca504aa94a0bc371d1b0b5d66adb158d69c3f7debbe11f967e50c2b87dd8c058b5cab030c7711c2b87b15019b70f5cda87a61657d49ade6a7144ae0f4c3e4499ab55e154c354a5c9e9e967d494e248f0befa8dd169266db5b4da7a6946f3bcd3a54a86fda46d49ef1da5879292797f9965d6d64ae99c5256ee8814c18791722448a5a7f43a9929c95cac5245f9d47b494c9a96d64aedcce4d5802ad49e7a4720d6c3a3f8db92b926e9add32f34da7e836a4af3dd6f9b0b61d92290235409fd5e45ba7eaf02b47d65ae24baf42cbafcaebc74cd85a8f2f23ba2ae81f83627bdf572129bed239ad17349706609429155938d50c3a4c758a54420512a7d7fe85308090909c961617ca369e4840f2df0d4313031303ffb4224ae8322872d1591be02486450cb2863ff1b45205115f30b5bd36df342cd2df729d1b8219a57af9e799a8d06217ef44ba76c1f499f2d8992bb454be43f99f9e289f494ec1aeb7cadc2f06fe65be496d0a4241dfee87acedf2fdc40875d89f4e99148c6f9a49c5f3557ceeb47f6b91570995fe9d9d7ed43cecf934e34275794796ce3d7b3d13ea2671ef59070a462a08888024584134a29a55262e0e9e9e9895e7ae9a534a9bbbbbbbb9b56dbdd9dc98b63833d67454387a04cc4c87441660b4a04192da6df18192cb0785b7db03c04215388b2a20c1858f042941b1e70c50b666858c11650c6ecd08545a52315a41aa848a1c3173068b90118301b840929a0a031410f2dd800b34c64acb8b40ad0114d1f764c1fde6ec7795e4854de9f4426c134cf5348e9c2549e794e942e4cd332f09adea49f601cc89c03d705f041944ee93efdd51f92ebf34b40c3eef7015549b9d89a1a913b76c5d2c7ae50ba22e965c7c690116a98f4e67aa372677b5f2f73149e7a38dd2a39924f3f9c0fa274cad9a60d90c9247eb769033b924f25f3e61810022c9360c71015151be364a90e9786b469eaa36733baa5d16b8d4eed8ce590ca58c499dfcfc29f8e3da47e258829cde237690e395a0f67155bcf52f798cc06ca912b00d2cb3ad25b03c490e3112166c7b9fa5e4626057e7eb4a97d4497b84ca44050aa430ee97f4ce41b5d41add02084c8d1e913d4094a29a532eb9e94524aa74729a594d24a29a534524a29a5d6e5c2199a94524a91d8fade2829bd40df426c1f6badd4a9b5f8f40b8f701b4d7591c86cad9666b8bbbb5b95af10f59bbd9279674f9c530b63cfd9ede3d240e374eaee6ea758575415afcca6a5b5d2f94ef2bbe4e8f1a51539ce99354da25ea7ed83ba5c38795a4c91082feeba9cdbe3e77f04c7532c39fa9c735e4c9d7a45830661767777f7a41ece39a75347da7389fef0c3d00f19e7d2da76be6c966554897cbf63639a3eec27ca650c96bff63b36864a26e70970c4a01c1f23b32576c5131da2f3312fe8cc8c2e915ddf31313578a22d7278ba2ccbc480f92ce7b38c52a144dc7cc7c420f133be6362a67c082465a36ccd1356a6975ab20c8a5e28bf905fcc99a6aec968964d1933366cd6a0406be586d04c4555aa29a3aad9bcb45946554a1bddb629e366af5c958a6e1ce5b829237763990d6bdac60da11cd59e701c55b568ab35656c8509135504e3e98592cb8a4b0bb358d4a91585437170a68c38f289549251a452993269c8a42113afc42ad1295661c3664d5442217247663c32e7a44dc6526ba78cb68804e9b42aea65f7aa549b86358ca78c78c39ab66d187378c5b134166bcac85a618e63e1d58ac56ae51bede666ca78d3c239b76e6e70b00b67863663c69471860be3e0ccc02ed78c1934700e8d4eebba2963978369d0e8704e0ed875b506d6e188d47869afd794f17503dbb08103dfb8e1f806f51bd4c3ce0df18f7edf94f17b611d9d1d26f477f08b1bf2e28e4c70871bb2c31d99de6603dfe088c4af6e833ba2fafa9d007a218863c38143f5e1b8d3efcf18a59c93d25aadcdb28b290f790769aaeeaa93a0743929f034aa7dc82d19bf3708510d82572611a26c21d2c78fb603b136d952a889a450bfac3b51ba99a774612a7c27c1aeabbc100cc16afde617aaf0b21f92ccfb9364d8b5f6a372918ada63d25fafbb6352953409dae4f4edb73d6bb7ed95b6cffe64538e1294524a9971b1d12c379452dfde9eb5dbf61a97be9dce7649b364966af53212666ddab489c14b2909b6cfa4f6917db1628d154ec43049119383942266498c120e3c61a4c06491af071992e08f4c06b8fe181a7ab25c514532a2051b9cd8e24a2c290a46cb101182a9a9164c99c20b295544d92aa658b940a35530cd9eca15d59b0537a5a4285754a5f0d249a2225257e8de9ca5705a454aa988aa5545a91455a8eafbd169644f4fa1e66611280e542451c142ddb6ef4eb1a64e51c6a43348c1347b5cf378c2b020ccd487ae92ac2f5bf42d0e59fdfc68fbf830dfb11340f9e951197bce29edea65a43e7dcae4e7d71daba2ccd3c881b67e6fb04269b07e71a03300018507cad013bd52d21af2fc8e81c1e2434aa364f91d0393828e07876f2a6638b3850c52b67c9102830015a92c6288715903062c04970881860d164a4831c514580804e68a1bc090f9d9460b293e20851461405501eb27305580a9c2490c0c94d8171da890148618182f2a0a83cbd5e97cc7c05cf9fb1d0333e543d70d4bfd250a1ce8932f50e8972873e849141f60137503ea42d41a4b5dc8dfb1a8345f9c440143540a58d4851cdfb12823a2ae0cd11678582e25a5a0102fd9bec0f4611763ec28712783269ef8a70f28042a833e406258a8415252f4c915c58b85acb76f4312fc21c1e9034a70ba102872bff4b0ebaa102fb925188215ac55a84b22650a27050517108a291f7698eec3968a6b3eec32b2d218a9902772ccd6e429e4898aabec2692dc955f798d72ba90589e42f96b4d7561f32da7eef4e96f16e72954423e213ee7ca2574b999370750cad56dd1545557ddf896e12ca44b9653288f90bdd5a25ecb0ba9e378f642ea33447a96b370a8e338cb236784f52961f98de74f09f59657ce08f59647ce957d7e2cd6f4acb36e36d70cdf9a637d619367b504278ec76f39cb3b92df72b5be0e279e0747e490d208f3abfed631a17f646b20c91c001f7fd309e3fce08782e6e7f2e0b79e34498559971fc6a762bf262afcf82d07472f884c0e6ff43ce02187377a1fa82087377a3a37e49046ef833039bcd1bb49cae17df57c47f1cd82fc42d251bc8e7f0d3913bfb5f8ad16993e6fd02c72a4df5f1118e4308729e0c0d1bb019343fad1c3498127c417918cf0bb64ec29c11c50dfdffd1c3c387a1f3ce5f046ef46ca8e1a1de9b7e8cdf0bcb0bef71b9d32d2aeab9f3c70b4ae3d8ffa3c2c0ffbddd9b381387a389c72787b8e6a947515223d6d1fed3d70f43ad892431a8d84f41be9b7698499d037eaaabdbf5d7c55aa10e923073d7a727c3e9ee3b861c3c7ceab5ba746974363860be767f532f2f3d5afa143862d7d3a57dc65d5bcb554372e1c1a33ba1c9d1a3baf1b361cc7e7f1787345399c486a5cba74a139f68cba8b963d69b14410db223a75172e1f89fa890b1ec7de91e5c931d442be72649b4408d2822fc8e70dadc06a2975e98129c89422432ef021c72154c6ea664a143240198a62801f686efcb861c3050e87cc145c44a51f4f9000c1600768e7a584670431c60a1ba09894c4c70b1d1f9d1a4322d87278184308353e63380054d3815d0e195a8d305d6c79eb678cc0340fe0f982060f8d19426d54d6c918f19429c1c37039f68eaa0b87851be6a8beadc0ce0b548eadfdfcc61b4aca21cf63c7ce635d4aae48cb48e08922061fde6ad668e7ed674227c6d67dabd5ea7276b9545bcb2d57b4a97eb4b6d690912b4d75ec19b93ee7ec7a4b5fc338cc8ff1176623d7e70d14800d61d07caed92703198c4b9fc562e5b717e37a594eb9a2fb1dd1675516fd237c66e5d833c2cf719c4bdf70fcb199afbab79a87aec79a87b8a5f5ebab3ab9a295117eeef69820c65879ceb78857dcb7a1f0d803272c750c8426f348eb697e43fa177fa1f5aa72addbd9e9b2cb95c3fbf831f68ed437af35af7e974c4a73c41c2ad8dacde4f6b796565ad7505ad7e428abc7147e7aa4b2c15a3d76e0a7471be317db478c915a6bedf7d563047e7afc7ed22f526badfd88a4a5c15a9b5d95ea66b689314ed6da2cb34b586bb37b33ebc55a9b5d95a6a96e666b10041726acb5d955a96e66b1586bb3abd2368c374d7533cb8312d6da2cb359b488eda33a0b31d6d08505d523b5d66657a56d186f9aea66f6873923115568b1d66657a56d9ba6ba99fdc25a9b5d95b661bc69aa9bd931d6daecaab40de34d53ddcce670050d5265f4404594b536bb2a6dc378d35437b328b0d66657a56d9ba6ba99ad72022f88b0a18cb550d6daecdecc166143538cd15a9b5d95ea66164bfdfa8b94ca778a42dc9b73d7b94735ed03c7539433cb8e0d144c8ac54382d62bf7e6dc01976aaddc9b73d7d980c266417cfbd8ecaaeecdb9ebdc419075a38cec02116404405c55951dfafeb384ab342a5d864c93116a42db7ef8f67b73ee3a77a12c1bf601086868486807cc4d112385c3855bf550edbd390bb162f1805d5339e61d728b09c4402e109cb46e74d8e968c8d1c3ee0627872fb68f4aed8307148ecb04503e749760085db866d0c8b90100214cc9e9f09541d1866fa7d386961c3dcc5d8d28f1495422c01635746a887a113cd8a2f3a281e743ffabd234d5cd6ccd6cb479edccb0e5dc75ee2008043434142466c706140f74b07143063152522faf7c80821b386290d2a9a14ee1de129b352d36de578231d4a87916784cf9709522e7e079e16fa0e0d1f1a44b9769311d46fe78e9b3692a771004021a1ac219a363870befa1fff0f9d03fbb2a4d535d77100402bab1b283470baea11dcf0a1e200efd5d82ad34608fd21769d23c0270c0a29ad9f301103d3d70cba033728dce4d941e1c848027caa78505073ef8b2c051e90178c93e3e9c549bdd9b73d7e1d8927d740082279e1b72f4d03bf8f9c0ce138fd48f22ef60881cfd0777948ff374d25df648a13a856af59067c775efcd729e6bd6bc54d33ea4776503c24d403f3f3f3f1dfcf8f8f1e1a047cf0fc863870e9e9f1c9ff7e33f3f386efcd8d879e9fcd4e866e4d0f871fdfcfce0dcfcfcb4326bf5c3e1ed479baa9ffb93d94a659449ab1f8e52baf49d43850c69ca3f13bb1fcba07a8b243744f5f16b1be4e8990ad26219141ba4ded5034fe9f4558c118408eadcb4509e3d326759e6a1f7d4a7043e1af13ec6b9a231d24ae52a43cab8a24a5fc511692e8604606a2a4dd364ce6a7ef3db622ba2493a09d295d849df4eebf69b1e6777101339f1cc180893f847f2a5fc688fe44baf73524ab3b026955f88f40d42964147a891ead595d42f37084ddb870bdb16a1b64c79e9124a8bd3cb9731880f31a54aa8dfda6a0976f5903ebd30d57e393a84ba1d613afd2a95466883a153a7dc110f7c7525d52796e9d5a18a60faea486f847ee61bb59c11197fa45b59eb47c7641a5ff55203f233df7a46d974b5647ef6b9b5de0c33d093edcaa0f00442aaa03e7194de5275335b299496244aa70b3bb6e9b3279d77496ca386e2e94111a1859452567b4305a5d4665b176b6dcce2162822aa642a38928f81f99ae73b7bd6bce775cff9b60d51e5bdaf23b09e7e210ad83bba8fbbc71ece89f39b57ef75c4fbe9de6f5eb8fde6cd1d2085df9c48628f09760d6c7e34e32fd410513e7f430da1f42a95476b5737277db6f2c2a3f89c47ceebc7af79348a1cfdcaabf439e929d410637c430d7186836fa8219c3efe763dbbd92ccabed7f459b3cc6da6ba19a55f4e7adaf1277a3f903db3bd86cc366dbe83f8d3de7dce6f2c1a3e337ab8409c1d373cad2f3bebc66a87d3c1dd464373a96e6ece5616578dde69258d32fe10996dda7cc79f1662662f38bdbfadf252e933974a0fd514e5fd6bd46fd40b270eeb53dfea530fb3a7fe3a2295306d10e6091a20d2981b22933410625003ba19d279fa847af6843dbebd65acb01c4e366b3efbc2965a32c31985cd4f1792ebf449660aa1408a4a1834b0d953a8613e5029834a0f5c28d18518b0704e3d0e1f50010c504a484c69030b671a2cd468e901063625d0620516d289a4731e5714ddfb72f0e868df4143965f98db797045d2797c15a420084e109460046fac5e496cc036bfb17d4d5480dd1c397874e8d8b183070f160802b9724f8f8c4747dca1832bca5b067440c9f2d3c10d997f25b8e3f2b8200846eae3c3c1941c440eda52b0872b62f5e82f34c21f5dbe94d36b536f497c9939e08a9a29cbcfc747073f5c11101050d47c5c453d3822f2fdc3c821a6f5a553e9818f5febbc767ad8b881c37bf4f07a7c3d7af4c851a3478fae470f3a65ec60f532f2334404f23bda5a6edd930991f937fe44870194315e59129fb2a46facf85be448987fa5d75f5e7224641f592b272048fac9915063497c0d2ce93eb326e92947c28c5a29a5b5521eabf6fb3d44655d321992f3d18764233f438cfcbc26e3ecb6956aaa557bfc8cbb5cd18dcd2d896d887043dabfe8724a159e480c2e09de192994adfdeb564b30b647d34ceac316bfe9e62509a6d7b797324933c4d43b6e9160bc5285c5242543596a3959b141e1468d5176a604159924374c1109c6a7201d63c45bc63ee79cb33ae696449796cde862ed4aba5aad566b85440ea59494926464199c9b5740434441545f08e403de7ca1af3e57fe70bc308874d94ac38b5b9c9ad54f4be4303e3d4585e96223770e020519b2b1f3d2a991f3cd2835f4a15c3ab24d55aee42046e43036353971d902020dfd007afdf8502e4d853115648a14a6d6d0541831989a9ae202cdd44c9a9a3a228772aaca95293b2f1d077f00edbc746a44a9304ac9a7a930be206328ca12945efde092c3b8b414450a949783403ea0cf8f27d1c90d5012398c4931292ac527d1c94ba7468ecf6beacc9cbbce7d0d100a6c321f2572d86a32804293a3ae73b0f3e73b9d0b5f9e0fa3d45dc9259f318cd4341409d2a55871e488589f1f9541d6a187b9347be8b6756f9ce62d5f65cd8da0f97522496790a50c1d341baca185b2eee16453047202d2e7300b85f76f8a6e6e3cde7c5882347e44f187661f12cf5f8d22720926c8a0b09f8c2a40a4e3353cbc1d4ffc99ae792ec1a9f3756a42aac3536f79f48652ca53dfbc505a098dc034259cb993e3388ee3388ee3388ee3388ee3388ee3388ee3388ee3388ee3388ee3b81d22e872963cfe4cdfe64e8eebe79c3b1fca25239e3249c8b4f4a9a9a9a9a9291d513994536a42b994e68b33353cc7c3bb137f38ae468eac7254a58a84c1f1ba7774c820778d3fceb1544b19ed04691eef34dc0024dd0a3977db14720d83a086b3960a090fe80eaa5ade0948df4282036718e3d67723fe50f72984a41d8888d2b9f434977630f55c8a52394edd157f38e75c4e4da19cafafd765ba21a01f33bc76b96ee888c18d1b5d8e3f9c4fa1eea3b287732a99b091cb87079ce175dea174f1a58e53278d4a430409521a378b234704c7b92fc4cf79d77190235ed13df415b4f9749c16eae69cd3c39cbb8d7ede9ce579e537cd8db0152982c39c9f99cba5d9435b9d4fa9f863f4fd7411a6574404797ad84f445f91967772694620784e6fb92a4a9d80f49a47aea8d592dc90e9f1873ad1148a5237dfeaeb96a650f721f92895423285e4d427a774b4204b261914ca29a028322874293228c4124af6d43d02e9a712e4bc1b7f38279adcd2536779d4bb21c6f142233c6978b87e2fadcff0224e7ca98a7fe3c55f79f15b5efcecc56779f1b7f89b272525ad00ebfa753228e4e039cf1ee6782e86d573fe6a2139e5ac0e5a39e7382d94e39ce308642ec51fea9cb773cf71ee9220f58df3385821731e66225982d4b94f4e4da128357ba853cf7273d637f5d4670c2da73e97221024f1873acb3d02097174ce6aa11a37423a9c4fd7f1b2eee1fcc69b0d725ec363750fe79dc779e69cc57de1517dce592eb922c98dc039ebc35cd1fc1e4904c272ea516a0a759ebdf585f2c3966af996d3c2d1eda3f3585ef7cff41c2feb9ee92b6f369839e7d1f883bfaebe7961d6bc1bd6a2399970641c01186de4d3647ce8f5389744220936f8dd9d61ed9bcc5fc5e0e7ec89207bc223fbd4553eb9a2f66d8b495f6bb74cd0220a515da2c2cb315ee5de92c879e8dfe025fa7e7ac138ceb327e13c7bf48cbdf5356939f62659db3c7b12cd5bbe79f695f78a7ee3483096f78adf0b012c5f791296af3cfaea6b82257e49567ef3357945cfb3c73a126ce54d5ef16392e4c6713c010d7372678ff5ec385f9326388ef3f5ecb17e8304633912cc1b665b0dcb0de3609b8704d33c2458f5423fb245f22b028404797e9f0812046203d0c4d65ae722572aef0f1217c9329fdefe33ca398b0ed042f6256fba0953e8bb677a146aaae814fcf49ea87d2849b0d5b89c8aa2b54c58c11a097618ef7d92499348043119080f39eca715e4b09f88442872e3abdb4728d37cbbea7b3ecc324f49021ab669ce81cd5b3429897abfe6d94bf521d9fa93f413ec7ecddc7a33fb4009b6fcead12cba49b565c3e1c48d6d6c908936f092a031aa0326586023eacc8d1b70f173658b1f26e8172127a2106a8a12ea010a8cc384178c7934f5d39c1ce6b1450873aebc09f0dd188410d02073660f6badd5e9073cbcd0a11b1c429a201c1c021002b0b10524c0183c3c2882eab891c4d3e12014eca8813d60ba9f0efe80cc8d28d4c60efe008c8e0ddcba418d1b98870f1d0e7c33e6e638bef932c3c338645c1fbec98293037b62361edc6a418ede2a1df88326b21df8e6865b79e0561614c4402ef8397b300e23aeec813bc041e30077a085461feccd39e7dca20f9f1719dbc511cbe1cdbf5126f58daafc91fcadd6efaf6b19e79c6da3c70fe34771fc5e46668cdf11fda58fce448c9fdf11fddbc1936a7ab4fbc6f96e7de7edb72cb6c4b1420eef4f961cd2d7ec4f43aa3f7fdb64ec297f7a88345fe809a1217278b78ee2386471e4c96ca5d98cdf380f56d88b192ac1f8db0d8e8bfe36e3d2c03937b3d788eaa3df0fe3c72fbe7db6667423d74f23a09fa1fc98d0379263bc8c35562f7a210491c31bbdd790f954822e1c3d02c860068e019d3ea8346b1aeb8a18a2aa1101000012a316400020140c0984624992c569287e14000e6e9e40624099c8a4a13892a3280a8220866320c610628041c8188518b3210ec135d96d790723d7b62b42bb9f074b836dbe32d682e4ef1e028f7bb6ab8fdd8787a4b110d9c6100f9072b95452e6439c15a4575daf01f1a6e0ecee5917b2862963742a1e37664021ad49e2b797b9fa3ee2acca4360087aca98ec54d8964b6f5c41557b42ae08387bc1cc31d1c650e36092d7036d1a21a2665c14bebd3220c0d29b7b373e0e152acec4de542e2504de8d0081eaabfe328c4d7e4a6d8371cf42eac038322a39604f5fbd84c7eae1fc2b4c5ca503108e1020d1d0357875ef65608dc1059099de648363de541f56ce75c798ac1eca371112e9a08b17cc8b8c79c22ecaa23f29b9bc877faa7c8fdb9fa31ad0c7452f7ea59b827e71ba5ff0e49d3230bf8c02b895d705921b502e2fc25b2684db860574ed732242596dda02cb126f23d4769b0a4dfa8578fc2beaabcf6866e9c59613af6159d39fff22fb9bb916c6fa6fda24f2f2fef5268439bcdca4e2a1c65ae7e270b6d4a2a89f01abf0e1bd56ba1bb92cdb6e9c6da77c173655fbc713877e2c4b6ff0c5d452485b75abdafee97f085ace3db960e969712fc0bcdae7575a63c9b7ce2d0347c37cc5bdc639f1c32334bf98e5c41d6111591839e6812016633947cdf1ea4c1950d981392b09246ecb81d39818857adbcea178e0524170418bbff42a36209e9c63a3e6a805437111c906c0bd73585861f08ada0aa248fe476f6817734fb1aa44b3a940e27ae775eb5406fe51cfcae9ade22131bc22bfcdb76153353d4f78583ef78c4618cff98c386643d3580ff12358a7e5918e1c30da4586bf537b116add8a0d4468cdd06d99c35242e467f5eaee541e583913fe135e404ce7cddbcbe1cef6c06f205602246680b56be56c1ce574924d8b95c7e7754a5544d0642845d2a93a0753496514e8c6df48041f9bc7635fd1cdb30c49fb5c6f937d51f5e325e473b498c8b21c39345d31ea813ad836b659918b5d56fd157e048c2f49df9ea402401de070d82a2fac9b1910ff4450600924ae83848ba0b1f281300a0be1fdf48e9322f0210127009a45b52ddd4ceab5533f192411a47734a5b7ff9b386473f4d6bae7c524c8fca90747c3236e73d1d8e2b3452310560933680798f2fc8d28ef585203896e41151094a71955ae1dc2a29f8408a8423ea1ea27b1d55f0d8f37fa7b06833ded7ae1c7d3d9783e46f3ba445f0c73e126c60e28d95ee30ccaa75825d5d4647ee8760deb3f01ab4edfefc7caa78dd16c2a92fc06859d4e3678f0620c23a75a28c101c412740f088083b78509b30d22b07979d0e9b85f7d56899304eb7191eaf4b9b9737f97ccaf91ff4e129493a1015373cf4627eb7f275bfc0a3c9045808204e219497b0504bbfbc26e4b13d9922899dfe8a6c15490e00732ac1dd0efea3582f2cbb3c2173b601bac329b21edb75f8b54fe1729e08ca1bb3ff83c72288d84e9fabbd3fe3a4005da69424ad689813780acfee17d58ff665714249a160fc4ccba97fcfe3225ee4731295e9aa99c0d5034edafc0193b3bf47f0e4edff4be225e1ce6983511fa06d0aeaf9f93151b13548f675034ad1c24c5ede217b4f27d7a4729e7be1f91de755d0ba584b9d83d4c87690cdee1b49bd2fc3c429faa7746763ff9a4b44f9efb017194d762a9e401996d929f10dc6c5a2379090d9d80a1bc5d38f8617612f4e015370560187ee0fa1db292c3fb60fdeff05ddacb5d673a8d0f23f8346804dd632a1e2b4f4928929798299e6d9c8cefce874141675f25a3c54300c2b41f017735ac7a129f3cc43bffe1d966382225a10cdfbf6c371f3c0a7d0abe5d39097f92eaf09ed4773163bcc2d6f189615231ca1021346b740aac0526b8e17aba6f1171811ca7f956f7e1c6b83922b9dc7807a12378012a4229eadc4a600391cbfac4464b94a0f30d9f0bbcbb883ea02b9ddf35cc228d4d8f9f4c16507bba505287e4a3e966fd7c7a75a7736c3d29e47b3ec2fb6b75a4842b55740a485ccf8e01bbc2b342015086e9499a26baa6b6e4ef4bd68c8706c1668c08d5fb51741a7ec9992fa2195e2f2eb9a602124f529e0c7f8afc87c657a36474e7dfc6ef5cc1b7943a02fdaab284f4f31a1127f49bd8697bfdf8cc8e7cceda590b858ab1169822d1728350e80b559a22af9a2315f0e921a1d65e6eaa5f8134c5a4d9ffe90f7bb9b3b02cce432a84b7e736336de0cd8b7633968a2870293f8d0bcc805ab7db1e7b4135c39413f2cb3a2f9bb10e45005c32e2333cedb74353d833b90496d9ac91bb6d7f8870d6e0366991c72eb0965dfdcd52fdc6e9c591b67eb47eef1f7415ced5d5af63ba9348fec7687bad50ad72cfe2d0f0e9e7e5728b86f3f00dadfc5c17c8e5244ece25c1807542565b2e88957c0373c20d47a208fa8295df1c096a80682421ce8cc41e2aeadd6e400289e5225403b2007444cce84dafc4a888d4fa087bb3c9193c652adc48ba4d9720c2060f1ee879581155aecdfcf130525b115da3e01524261c414661842a0249b35420f6b845c9777b49e3d8879ef6fe8925e0439b8ef08b10e195f1689ead628e34d07b8f1cf010d65124e198601da5b1f12326c49352ac4550abda9861b3a46cff4637a42086070adf6875265df29d7445513ad18271c8110d06b71a243fb9c5e1272889c49b4e69862e2c2af5b93284ac14f924455652d4e4104da6e8e31a27d1e5a88379ba3912afcf24c77523e569da2475fc961474804c4a71a4362cc8296bffce22ee639e1938634f0a4c524a34c948eef23732047e95465a595d5079b551ebe3c20bd86827c5013d048ed0da31aece67a02efcf5485e604aa7e6c5209cd4619987e8ffb137ed92521d42a44e77010f4b3ba310577170e8651af5558015fc1f426a3a12478ba2c41736c0257a00df7542cdc85cd6f83b1165a0985468fb9550c7e27decd7e79e241bfad217b490fb794369ef98bc279e409122a56551c254f119fc4aeb87d14d08f0031f1d68e9210687924105c099fa05213d33844c4a300341e2aac04758468dab1050567d588cf8ba4be82e09c6ad356f5ca4fa637d089a78da4f4d49894ee782628902177a4e57698f27f6ef450416b43760a5660cfe51b65b4c808af334b21428511ae9b352e49e3cc85fb0c3872f83a837d0bde84a1191db45682772f32898efbb2e0a88b57e3ded63b65a490c8d33eb6d0b1807143d80ec6a2863c3b62a8c5765e3565a0396cde49d3507bd762c3d5947dc408f0c8a00ff57e0f6c05cfe2b64892e1a18b22d40915444178dc3b5716ba09e6f87b6d97864016a44f6ee8f5daf8c3b3312323e46eec072d554b16e3132dfc8a7956e740b690d04dec63faed0727840b6a1f0d86cdfe11d308c2c71bd303259588d95ad7c3ed3b8b930459ea3f341a383ded352f2cb9673769858b7cf28e8414590297c20322263fb45df5d4b88c3f574571b6380cbe8e3dcfdf096d0b2ff490bdcdc39484d785750c1fef49f1138246fec9dfc991f37bddb84f67d09ad4a4e7eb50ebd3e623ba7633e4e049dbfbd9dfc95695f6e08374e89b1d18c950a02fade03d481ef3c753431428842682816ff33d9b2a1a33511dbf080957386f47f4ab3324f745d1ee2e1629f24fa628b9f605a45b015b6bdadb4befc0a3a746873fb58d7d1f5f71f1bf463ba88a8d443af8756e5730b074d73a9099cf69a3ba8a3a5656587ed6a9171195a774cb6336c817244e566395e99db3bf47120da183e6300359c72a7966896d841c6062ed6d840673a061dd1a1c3126bc405b505d6706c66e1cd3a189372ace04c3567fdb506b4ec72499597e9a6c9522b331e66e0d305f8e13bddbf404bcdfc1323318292e714955ccbaedc2abba797b563e8d69131b850414245d1454864041f41f1d69dcaf50482d686d32ecb543bd0ce63bf996a0582b20835b9d7286636c241373cd278cd2efa15eaff21ac87c6b5bf3985e2556e6a0066cbf3e390a94099ff2f7fbc76562ed6c7b35af1a073bb3d1a1dfeb161fe157b5d8c07e7f4242131a5758e237e96b6a032b41af73ef29f7ed9c570fb047b2ebac94b1cda0efce65d8f95ff0c417587f2175d84a7d52f12a3ccab746a82a45e7750913ea0699009089f9229881bd4fe3ec48654284b21c3c735d76900f79517b49ef30b2a7c3a1a1ffb316fed5223e6c3597f48638be7e4d9f2fc5a4f6029ed0bd8ae2ed6da6c2dbb556005e8961cf4275d4b213aa976dda07e0419cf86aa259aee6a031bd46cb4f732de4a5f260be41e571314b7c2d711d9410ec3a232bfe5736b05c963267021bba08a26562bbac4cc1c04acfd92936d44b47c3356baa17da9c3e92679bc7e357c8debfc85bc72254255910d913f04e4c0b072067db08b1304c380987ea27968c08dfe0238fb5cdf0b4a51144d52179548faa0b90d4b02b8a57c25f499184aeab318833c207193479647cbf4eaa0f40634b883d21d50ad00a20d8fc75a4ffcd597ad6fae0e87cd259d9f25bd552006834917b19164f46b29176a7d0841e7560c22b10615d252274a84f2e11025e32b8deb37f06c7d7d7c089c9bd8dc29227988e050a676ce5940eda751752d3c0ea5517ae2390ee52f00acac97d64e474f96aa621ef6db306242e1002a8759c716fe23f2a042e58bb91abad285b0e8310f7725f7f420523d92ebde277fb95b64f0cdee0f01d77a36f98866721a865d6e78d0cd26317c7960dfb46b53330374befd63d6b8548562a6e57f4d87eac4ab2cf457c3675699701fbb41a97de93d2a73b4fdcc6d15505f03dd3064e5b86d21f3d9492f177da8ad99d82d3228418c9f1fd43ebde0d8e05efc8e172fd2359a46ba6264eec03957766586c2a2c533403dc27bb0d5de9c83d18cdbf1f87031ebc4d798cd7dc0ff52cfdeec0ec08672f99c95515d7606af196bdf25eb47703c0c8308a78dc9fc0d6f4788608acd248baf1ab32fe09f635c879c7eaa33f67f52b54025989f96df81b63fb0bbf68c66219cea0b063e2c462c99bbef655e8dfd97a0ff3b4978297b9ab2b3e8945d9e22a4aafdd50e244ee640acb26b05b15ca85a96e08451ce5aefd55136296216177a260f7677ef26774bebeb2f46f37ee36238054693e78c6c51f356917c96cf76a03835c52b433bd984ebf6097348056a63ef9d6e5b9e7f4d204c6be948ab602a4a581859773ecdc40c962a49cbaa2e29126257d5e0d1e43538e718448345c786656e0abfb3402879e1c2468c5a1601d521a0c2f60912018a290e873f08aa61030c82431757e87d90a9650ca99b30714a7fa36ddf565b3fe786c8ab8d4ddaa0a0f721e20fd28244ad8f6062229b0b1071d72d5ac67e357ca1f26c533d08a921332dabaf2a9baaac6dda971d0d135a8b34f3c4f00d2da8127d70016a029f4f99a2647b381f110686e62a8948be041b83cb7f16f41f12c436c933bbe44d1f8919074130ede6fce5cc8080c120a75b321e59e97fd7f501c81bc45203f2c98de88ad6cf66c5d7c161f36cae9c3346b8d5653beb05dd5b8eaa1701ef494d1451c5ddcd4bfff980bd2f4bd533f6625a087dea25192273dbeadbc7dbfd3b339f9bd590ff4413293056d483295743e5ab402cd065d167d2745d6fe24b2f3e8419d072cf7473a51d18259efce565b00988bdb76b7259adb2e7d02a1bc781f96aa3c278c21669d9ab4e6a990f4ab6b54df926469592d58ac91fdafc5a26587d209d9f92ef6d7a36722a26850d06da1f1f2d8ad0c177beace7c6f15ed285fc1b570bce05ba928b9d4d0ff7aa6dbf172155661e291b3d33b709eb1c714bd5dc74d3113d094579eed4c282cc4118a47e47e721d6188e0871ca9118c6d8aadcfe81856fc2de812fa20efbe8f25108ed29d74562e64e4b4a50cb183373317ecdb10a194bc2cd49592e46aaa43d0cb9a471303de455fe53b4e6b1d162e9d09f675e7a509cbe1293f6b43a3056e6fafba3744e562e7dd7bd1e8c9dc51f54b19d7002a545a91cfd576ee9791b3be049614771a56205ca9fd88d70258e846dd475030f9694d0fc1a536d3c6f1ecd4eb856078cfd0ba1dc84de3748934fef22335ae3ffee703961aa38722fb528697dadfd9caec244c9b70ab6e2eb400d3551004d2b05e48c232608a143a66483742dc487d80a60aa9b2cabc70b2587cf1e690dd3d640fe733e3b99086ffaac3694b6c3f99d6f5e9eb7c100b91648dce9ca9744c7d775268cdc4d7ff1968f6423a5fdbc88c41056c82b34824d433d9a1c8dc4800c9a45ec538c8e729f234203e44feef082e3c0c3cb131c88b5373b1203aba44d26d0a28dd09acd57d7f8eb37e2e9ed0f04073c4460e36ec02ff93ff984051215ef0b4889c3b42f1e678a87000d6ef9a5de39bf420fd9bf40dc03ce2da4cfdc694b47a1a7ec17182eb167e05397050b5d87bbe06e6ebcff00480732c54135452ddd45591e09d5f2d1103df9bc2e13cedac7aaaac0b0ef577f5652054d29936faa9c52a270ffe3ad6f61947684a127f00f6f272fc432a5b91cc03b7d5460bd385fa5a8be0c21b6cf6747a0bc85fa32f5e8c50313ae34fed7b107cde2e5ebd9cc107a76ad7073f26f706b69d9274baad753e60747a01f147aab958098af70e458b7913dd238bc2260cce14fbceac64a1a44fc0379dfae7f5849802a1b1e2becff3b8cc9a97a610056d14de665982e97600e8e928d83ccc1983e351949b85f278c14d2650401da68761039a68d69eeb0834f264ec5030f71370c3aa2343e920efcd88296f21cc4cf6907b0dc001d63fa40102e710e17dfc4c0c19ef823c4d00061e8da6021527189d1bd44cc88367d2bc97e5289694381c32e1275aa5ab82f28e0e50c1f49a1a91aa46abd346234881bc5bc5608e8a22ccaabb93d889f6c45400708c5d2bc22408b60fde925a57de39839e83179fb87158eaec25ea0e1b44f72ca7a6e8e090a843c555e265ae32a04f426c2f6acd336c75659ed61f9fff5b816da941e9d78d1c57f7bf0a08122b78772c1bba3f24081a1685a71766d4e880bd0d084a7222f846d5deff7501d167e921b2aec6b7fb0838b5fe7c93b619360c4c082ed1278c5126e25033d73b997e8a445c61289c5e19f90099ea67e19cf1899d48a1854159be639d2d982900941b3e3ef5eacee2baf090b555c8c03ad6463a7cad9424f105223fb3eb9e684a8dd64183527b92f335ed1f5c46f1a76426fbb7d72857eb4333b95cd111405aa01576603b8510492d3070d9c491ab1b922e16fff86cf940d7d6470c437777325c1458126941e843f5f94b7ec1fd01330cdf703f9b1ff8127eaf4302760983045b1f4087aa61b03facbfe01cf291df2e0607c4770d2ce1d6cb3b34c1b197ecce0a341f21f56960e224caa6cb07c1a94a6bd804411134810f3691b33d08a596106b8605a5336684380e2dc77a3b65b1842d81bcd4af2c69e13261af8c8f083818f5364cb80fb5d5a32d0e88699626f71b992bec87d8d9a1073e2cc0956ec389feab8477b5b76da68c30f871f3728df917cf47313d7eedc49c6073f1ef478f07ce9aa6b841e57b64e1e60de3b64e37d796835c94f6774f8c1618f07e5234bfbda7fa172657a49cc893326c644fe73b5eb502b9cee89f492538b57a3c7d4d4b27b4607e783afcc749f3e29ba5c346c4a4d5d9a5162e60be0886a0e7cdd15f4b4889c6072e1ab4b32dc9d43c87430452e171bd0a0ec55d86a598ae7b52baad39f6843228a69182b7a40aaac1220fe90b6930332d216f3697ca4fd491607664f6fe380082dd5c8303203e00cd181ea9d6fec2b0b0a355411fdefd18aeb9ff2e2c5c9eb8d52ac1a4e73b46c9d0a616c5687e1bc15d2e3b7cdd1eb8e92a36acac2e06a300e9fe7efc126a5c098ff029f979cd828488fa30c9e4275bd5bd0fe6ce3255bc7a7f3a19cc7cd456d982be182d831c4561084863b791b0b51c2a89ab5977a3c77370dd797969233f377e315bef58172f6eec51fe9902de64e832b85e1e12a1eca8781a5f021c821bc218ef9691d8d216424b3037e460c222592ba3fad30d5bc65d6306795a8ac1cebbc5c6fe1b056b40e6bc4fd17e81b04055f6d468237c22c5ef27998d505c8dd08221ac292253dfd686a8b59cdb422f087246b27311f6923b3f47c8e1ac1e0822a20fff6445a68fdfc6f8abc30f2eb7dd99b563881bce392e73d2920ced716206a89561d835f7360c2a513fa034d98b12001c9d115d3c80d8d1da94fd372a5a9c87b1024e124dcfffdb6cd8cd1b16f0685e5905ec1bcb7954300bd1dc68246e5a20e74dee8900787f639a4cd609135ccb7827d7c64d4e031ba134de1989e86189d72653035c1ad5d4d0284ccddced9562098f75ecbeaf17822cfcc6401b27ccce29c4c080480719a9544041c91cc648032268dcfa03ec3d4b5b44ca4193c836098e1cba020f3007e6bb2950395b2e48cb6b765fd057c02b895118c26f4ed33bcae85dbc409026ea9c17ea9197c3485ae21cf722fdba8de660b3f2c3201090c40104044ec5cad336ce2b6d36dd1a00d571271b1bb79e52d177603d8f5d0e9f47f7b4daf795790ca6baeeed4fab70f04713077299720b04c157d869ad0de5373c1d4c4bf5215b99613f0b098ff82fe12ec67f49f07a862940372f9d40524a065623095824347da9a967e2452f6fa1d87390b8d05ab349ece1d4894ebcb8cceb42ca916f6808c502ff460cf0b3830c8525cfd387dd8948b76f6dc8448a96253a82f26fa0d4e9ef5922bcf6d8991a4138f342fd5bc39c01de03bc7c10ce9d50b84a89ea035f1046ecf18e769ceecdd0b611b9abd36af67019f5b24acb62f5c8083003fec9e101c80c6ad70beab0f156a017374aad03f347c73e4536178f6b4d90538c521e058144e6396437614632aab345296bf71744c908d063d7e87c482c92c6435cf9604ccd8802cac25bc8dcce4e55a730786df8c68161fd924b0c2ad7c2f08b9208cb9eac7c2d904d631558a2067e868db6397f52cc7abe5c07f007ab78eebbd2054353e055b48df2eddc1c63a959df15e412f7d1f6a59a55b02710742ff75e6c736aee6ceff4de026b4e8adf16d2e48bc49f745b5a47f9169363ca8b441ef187b1592d9a6a07a9af1b4102d2c690bed81209c5cc8e74865a814f689dfb3a8a510f8780f44eaf8cd0fa92b40df7e226e0c61e4cc86f4aec371d05529f8eb95abdd7121e033c373ce0df23dec06617ec340a849ac47efe135ac36e27f21e2bc743fefbbbe293ecfd45dbf2955e6d4dfc7d3fe6e8127aa61fc46317d46cae0c23015ac202711d70741733fdaeb843e2d8fa148d17be0107afc44df758b68b5c9dab8ef957f52c80102fe53921a52e6b9247255e93026a512b38c2a155912a52a47449260a7cc89d4a24576fbcf0e9110155a559f054b2b29e49656493549ae8710f0abee49df100cf83fb636bd64a736c9f72e2fe3486c60dfe833e402869b4eaa85a87dc4413dcb5cb10f305013ef15f6ad5eb0edf80d0faeb02576fcd11e3e254f03f0abc08d1dc4cba8d64e5128653082503c2de1f3765d60bfa7bde87a818fbff03e553491aba6bbd5808d2c2aac7e771bb466e026b0090b8e83c821d4d569c8d135d134796b5b43af4f251b8ed3cd55d01cde3f99a783c3bae748206a830d4d613f5e2eab3d09409ba4439877ec09e140c529e1e3575fbe9c8f914bb6a97dc32e969f860f4cb8862e2e3bd3605c755b283ce136923c54e89c82ab5ac03ab31522377653f10dd353fa8396504af39c1af0a5ba29f499b9558c65be4f3579f603c2248b858e5b40ea4cd4c8031dbf954a8308a829ced68604c1558238b470c4645495ee800e93f74e97bd33ab036c162c5f7ac767b9c6a397dc4600577ae244723ce780f192858fedb8ab18defee77b325edf8c5e0c336e79ed819bb83d82e77587b3a67ccca913c3fad27a84ce05f6c313c2ff4a061dddb3aa8ab4048409213394a0c988b8e59c652e0505159692d0ddf6b321fd0be37382ed64ee59287d4842deb3870a101125d60ea7a40d0ab212988e3bea5ba1a3d29787f253dc2d8bf00c0d82f6c14f84febe9fe40347d33535fe710fa7210fc0db2d205d2d05cfd555320499b7d80d97cd126b7b8028e77ae470543fb35d5a544d28061387077b27c93aaff998555a361e1b1af43cac86e234c26759ef4a975d2968b146df434000f65beca7780701be1aadfcf4227508b7dce5d8d22a9a667212faf94c7476aa47ea3fd0f5ed06639d1c5558b18a5558cd1b92f23d3a58169d9517d60c7cbd3c7e7db296159c27868930889e686c63474cf50ac559b53b028983af5b105d2b1011fa2e29f1ec53be49a528839b7d894373ed8dbf5fbe593653ed60922a99a01d593c8ab438ce0aaa85e36d3f437828859a6c5fca58a84498282903591fc9188fc9a3c2c58a26c1d458374720866ea92d9b40cec8e11ac5e4ea3f703a97a03af07d9192fadc3ad8f89e8828c8644b93009f77d397a4f0d395220dc39f3678ac909db761577a48d7c229f4dbd792fe97e20d84a482a334b5fbff0838f038515714c97d359c02e5f914718b69a1482190972e9b2604a2010c05ed72cd3f021a27efff09c0a8db698334aaa97087264298b17e2cf097b09a1a65240b338625f44d56868f786cab26f4c3b0f884d24f2a6d4f8b486e832669bc04e3e7d3272d30a7e5b869dd6c1554b386cabc529f8b9be10ff0810d9722299032e1712bc56d53b11d1c35d552e8e8ba3384ef4f38b8305d288a1886cdde5a2d868292a5a81654f4d544977768c1f799312d78987b6bb52019258f9d6ee113280816660765ca0b0cd6fd096cf44d4358e12bef952bebb561ba3a1520911dfad9937adc07b89207a858814c25e4bc001a0b81ac06c837630fc831852e989f1afd2ae558f39b5658b019c724d33c053fd43e1174cfebc799882124aa1a5a9728591305bb5d5d4a5c7599abc0efd2ac2c15af562e30c648f23b001d056c444f60e70cd4bf92db30fe271652e561d5c5a4bea21d600894102b2f65e831419e5a4fc7d50108e4eff4577a8aa85eedc28de73d7adaf99899bff89fcc46830b26f0563c69bd604582f2985b37211520a6f1da4564e024ac062c1b8598f8b6b8907f8dbeff9fb9897812d387a789aa09e8ec0b52c4a0865ef73657f16f79f3fa2d74bf027587871d369cb488842dbdc36468627fcfa1a0a4aad47747ddd85e4c684a7c1c912aac90e5083ac6ca9d859597f33a0469b288398c12bad7fc10deacc77460ea07a42ad59263cba452ebd20c2dc8705081f8691584618ebcf43029d20728b68bdf08187f58360a9ba4c7fcc42bd0cfb3ed0aa18b8b181f5d3774e241d9acb70d5884e4b4c539051be51e761eff03459db01153b3a3b231c1111bca80be3f641b2b9214f2a16022e76ef7f63cb6719d571c2578f27fd8be46326617d741c48898a5c993a58272acb5a8053489800215c23e384631b8eab3bfa0d1f5c336704309867b0b2a2157f354ec2889ae64104b7b813b3793f17cedd7a01dc9ed1d001e366b0fdb456797086647a740918856b47e60f310fa7291f8e70dd698b2f6589101f0802efdcb84b28d098b33a4aa1f7162b2680704f564c18a0af9b196b0f7219097bcc53de0838b4f5eaa49a02b43b9fc49b9ae2572491d873315caebd273e39176e266b473962533116d2808087001f98758a4c08f03ef54ba134154895818f3228fbcadc02a1afb18ae8ab960b4b7f765befe6f45dadd07d8080379033ac9435335270b528f184db70df316b834fe205b57f2930b0c70606f40ee5a047be7ee2d0b0b806c55c07b87fe123baddaf59682f13be8f89e531d3fe269815b9deb943456deebf41631e364ee10d108c359f3ff18b9b25b84ce8ee8fead6d2e62816d2d33a94fb3dd147283f43f98d985a08a7f8124b7b8f8d90e6bceaad955c0b282887ae9dc6829fc514b947e99d3173fca51544ddd716bf1e5ca5fcfd8a43463ff5b25cd0845f2ae71dd06e4287afbafbe39f47adf52357a094043d0f187861f24b11256dba665e436077af5c4d1f3c4ff152fc6d143ff6c81712cf2bea88c0d709f9f5423576c76be2fb2ec5b7f3432ec890667b32ae17330b286f4c9a3ab0c25e8800c21ba060205ff9bc67887e1f26c248e309f7ca8e037d42ff1fb2b4c8ca72e6ba7cfec372fbf3d8d7c5016fb3f212dd7681e093366e66554372609ae19ecfde8ff08e41e53e59bea6e971c79ee8ea440307a112ae101c80e93043e7f822821b48c56101d20cd660fdc69a2d7b5b899ae0834b12ca2a897a07ce14adb4188077388604e0e76fc93cd0e4d1d71c33a4719926a3f4eb0cc172325daf51ca538145412824bb0cbe6415f720479a4cd952fa4dc2799c99de8e219c4fe35375c1c39cb39591632e4455cedd98daf0c9beb0293e33c72f6d10796c5010371bf6ab4a41269af934103bfca2749286ef1c81570d14180e87877746ff3fc9d661af3b3572cd6a8d3f608af09619f1a0186f6dc45802a89b1c8d7367820b443fa3dd2b6d8b833edd1521a0a9c5675a5fd616b1c3ae6d5c64a3bb5aeac4bd2172fca6e945acdde2bb0c1506a33dba1223b41d586185ea770231a5dc4f47448f55180b1f4832a5a793f2c6094964bc26ccfb3e3002ba324b3a4e3a826299ad3b369ca0ff721bb2914798caebdc5384b65582e7852b2276717a1e397e89eaf085bb6a488a7c36cf4ad4a4fbba1143fb75bc6fdd3ff6c79bb6f39b14e8fbfad3de2cda80d1c045d4d6152419dd2d1ea6ffbca7e60a3c895bb0fee065b222f1263b81d6a5c342d402b75510fb8b99415509d32b87c54dbb4e51a514d647bdb55e2081d7457ba309ee89dc4175d98a0a28e8e4092117db7183d2c796011feb76f084fa399a19756e6ca6768e271cbc1b0be97309a30e84698c6125d8171f1f46b6814c3b8f976388934e2697e0d8b7b79a7ed75fd700db1fb653d98ff77b449f9a01b410545ea7a89addd9bbe85b4b988d3fb0534683c0d0633a167a7fcc280b64997a96e02f554fc53ec1809808f1f8be50c546f0b9b348101970121c71e86cc422f6929faff323d0ebdc791853d31841f8dc51006026239193b7ebd10ee4e802915506c7db4fdc1e28489fe58f4d13c20c1158449c07b43b90f43f55fd2653ee174a0e159ae415143b430228fcb2519dbce43ad5767cdd0f6595c7a81fe8145cc04af30339d9b8b7446bc10cb361f61133bf7ba3a5cba27381207523ead40bc79d836ac54ad9c526ce7a031103da261554c1871aaa45b32a05fbb3bef903eaa48d58596f39fb0e37dfe0d5bbe221e82e2dbe61a43f5e7298e4158e906a9480309bb7059445736daa7bb94aecae7d2f0e79d8200eb9712879d8a7f78b61e62f100a731ff6d1699ab84acb1f96041b25224519fb57cf57370f611612046d288f2f544d4d1a95ebc86a41c4f3d68d2e301fb5b65256c960b6b7f0bdcd7daa7e8c7d87172e9c78d74fc656fc26c00a1f788ca57590b335e44ed2662e26875fc66ca689e50f177c44a673214771d4f0b82e3cfb0899641fdcfd6e1b48320111dcbdef2e37b6038848923e7dfebd5dfd71641995cb9d3c636197e3a7035e6726aba46ca813df306bf157c8de3ef3cbe3d80c31060811f46074dc0cc067126f750a52f06c8ce6cb0b049781e4c69ec3b488d26612d93168af880553bac03a6bbcbd61d3b38f16125c480839a40770cb26de1b9fd6650f58cbea9bd3d9a0f882f1ec1b0c255644fd323d8dae57ab697b579d8262850a63b5c3a35ee8d6fa77191ab851275e010a45283bcd73a9582d31a1cd6e41ef80f36b906b6e8d6cdc1a7205a42461ee6e3d67a5771023e8493496a4ec925eb661b9b99d7dfb81c217975936d107df778d546d9d3ad943800b672def820b7a5bcbd34a166339ec903da52c4f13f5a0edecd6600ccac1e05db1aa1d8119f3ab2ad959574d2d4a1b0ff7d485d2b437510d39c2a3452841cd332b5d1386e2a68fa03de4013df2a4ef184598457d554959a883a74d3d434ba7fdbb5d07d2309adf2ed25660f239dc20f2fcd42fad59489865b33d37ab053ae447763534c73df413e61d76475a5642016624e8ca806d0b27287f4afde2bc8ebe10f992719e58b10eb2d7f3e5f47bf7547bb2cc0118e8ff7f93ddee15919be9d773d39f88a597ebc50b707a06371bca28cd1f18c0ffbc2e1257a13491e824fd69f86d3d4506e05dc2700ca5b419113b47320886dd964522c3888326485c18eb4bfcd2292fecd2523ddd5a426051e64ff22d786461e64041273c496230af1cd99b42adee87eaad9e4c4b2eecfbd7dde2f5297db4e3824d9241f004d17e87d9e49a377aff56b03edfcc5193e657e9fa5729182c3dbc83b6e69095ac24a4ec9b30248dc75799f049ae4f7454535bba2785b1c1e324f555c30ef39be86d7a10ddd7b2e963f3d7b2a54054bfe9b754477aa724a7f420a99a7167c3aff84c0292f213c119834a01398c5ad0c8ad747bd1d671187da4f0081a8a5f956f89ef60e83954016debad7f0a46fe1ebe9804bff18f3881f00297285bbe3480899359519506b60765f9ba6940ebb1d7ce50d747925b56268722f6a0c7447de564728b1e742fe0c8edb08d37c383db5ad37a56b9767584e96c9d6a607b67e9d104446c9d65b37d98cd9003420dc9c5fe67d6b34a71dbc8396ae8f5c759b7e9e45bb3bf16ede7558656e3d17f78153956029a10da59dd12c182fad7aab7bfccb5464f527d61167a98a29f20f293b7a2af309fb0129c8e394830e12f9800e413d4a5ef803356327b3d3e62f7b68e12f352f7de8dfe23f740e140c72143820e72852fe26e3e205feef544c8dc0b08e300c015cae92237240502468fc25e362f65a910dff4e51cf673aea22c0673bb162f8d742f2504089c168d21eb22aff0d286cc7b16366437d4866e7f98d9db6ea9519b9f0639b8ac29964b78f358ae1a21741300890a34b5714e3b816398b62185c4318911d6193a6913d67d4277c3744981724d3cf38e1a15594ef0cbb8208475f418468c23695d50f2e779836da4a946834c8d6bc96a316c4e54ea75a988b5f254254619b8d6a012ea79836d94294a884365b477d71151259b5c7a665fd15c1ad8f2677c6a96793d452ea2a54373c1b99c6d346a5b9b4e5c2212e50f758488b75891bcf6c980387554ec6c01d8768ba28ad0eadf820ffc02ae9767c86b0f24e8ec3c34286582b9bb5191e1883d08044e92a666fe52660885c8b75bad2eedd6ba7c5bfcfbe696102bbd8e1202cb04d44b70936ca866f1ac21a19f369db661460486beaa07162e2a746911416d5c1df71cfd5f676cca4aa3587071e36ad8a84055fc7f7fed183f37a44c26ab2e25b88383f1ae53faf94e65ab384f3d9998f9745c8759a7349dedcc19c7b4bc84b6a1612d50bf96b2fc15ab165d026b7755e5b679b127f2e0b25428d00db931c429be78044b217ef8cf2938a6aaaa821c9adf5d679276df26fe80862cad9caa3f093ee53d2231cfa0281529238a5d450ab9a17312e38aedc188ccf0af922c23bc4030201604982858fdbc04cbcf931815ecdf8aad102a7c2e8a57860e11907c74a2610c6b5cefd35a601f9ffeb25b9e071e086c475953ce3ee651bb862249269e3d51c4bb37e8a5c934a235cecb0a1a134feca251ca37bc9407915fd75a4567fe82ace8f5ca357b0a5d166da0adecb69a6c5249b40b2f1d1120c9e13c2d7122697c289cd028d3e830a5c7a689aac63c3ec17d7c1bbb63a34eb0e49c8896a59261d2e086ef8ec2af6298e892639a424cb1eb05dad3b603f56f4259bd531dd177c6d14da6fa2523009f2bc875ee4b18456dc0e8e069b0b2f6fa00163a1a46c884ec97a42691667644eadbb830eb4448104a6da966444148ab3d58f6c4bd73c5c29904ef310ca2a9d44a09061d3e5650176003638b0e9af84bc8da2f83ebe6d340e4ed8746912789c2725d4b012161b92c2e01a203ed424293dbbdd3da1b6b4a00c04f077e25366b73d55c0463c62bc239a7b5dc9e71205a86b615f3f2330bc094d32bc52c3763b03fe16ecee1f86c57ec46ed879e50c665d618a6de03a6847e9c7588083462be3ec7e4ddd186176969460c4cda9b572ded894564d008ae144318f7605b3ab0f71393db29e8234a2174c576cb36287223004fcdb83c0d79d334e8c0c3cd3ca9830f2c250ecc6226cd5151ab433d7477a23c2dff08e2b748f0b6cd8f93ef03bd5a8bf275b010087c9151e3f9b9765f6cf02608e42dc6c89fca101c08385a1956cdd5a0380b5154c776c05603ed9022443915782b185ce0776850122afae7d4908a8e471fbd381218b9f3768e7509a628f9a8fcab398c4630f912eab0eaed46f73128a156b6364fd6cab7182197d0f79614b0a16ea51edf027bf2298dec879aaea6b0326ac0b3100e64dce910830071fedb039504c9dcf3145860fbaf06185f5d30e3926e88cf448172aacc57342a1522be361be00119e785f90c794f9f7fe770b9322a81ef2154350e4fb287a3d28359ea6885b16aab72b5f4f2f89ee7b03decc7d9ace5ebe5560d5df44e94059332d8158d440c89899a8562d2ff9c4bbef45c9edf3f3749a45c3b6cbbb5560a19a7c106057450cd0a61ec24f94933b64ef7a877d12802c60aa7b5a032f4110cb9aa5bd1b37e1db434386a1b92ec559d7c1cdf371b7dfbb009ffc786ac13b86e2316ee5aff2dcec344fff64e59b52a67d3744a271150e9346f9ee1621ed01641c6840658008fff3030203cd5fe95632d0618862058a18b990c4b19d57e8159c7ac54f58326c4da21061581a4a2fc46177c5c97673b67d2a1e160ebf9f39d880a81bb36199a9f33ca14d4b63b9eb7b41464b6db7d53eb789c8d0bd891697e064e9709e540f64719a82bee213f0ae1cd29320d2d763e1e41b07774e536fb7043f44ccda034f3e1343e9cd83b6eece3fff78e98d08cd73144bfa550b8747f8911a20da5a9b3cb82834efd89c97bc5f5431b2928d4e56a047a915f70cdded82ce81e32cd1b93cd491dce2f24696ae8da465c89677a0dc15af42dc488688542b98ae1ec4213b2e8c1d60139531543cd35c5344c89249177416bd7addd8dc3502cf3f17b1071d39dfafe7ddec157dbf2819cfd6b7cdc39d83140a556007e6981513f95aac62dc53f09c3be6eac52428e7eae2bbc1f552c4479e8eceb0ad05bcec9b5f961b9343247b02428a02823bf510ec9e08ff837e7d9904d002835a750e33e99cf01476db1a58b11f5f105e014b31f22455767054ef74314382d11727358fb2e8199352b3d7b66e2d88a388785a249d391a19d8728738298e2e43d95848b4e6a21823f447258a378c3fd955d5ba1932906553d06343b40654bed5670d2ae63a5d0a936f29006eaa9fff7361a48358429aa8b68014ee708b16e082eae1310f0766e6e3493a0aa9e99cea78c200c259bcc35533d0441003d7ba9c9d6acad3ae99e3275d9314f855d89c32aa399b5493ead0518490877391e25e6b54c7bfe8f05fe385c4298531b5dbe11bb99a30774ae81f307e93ce4bbfe46a9e6c5013b216ba4cb51bfe9d17f9422d942fbc7a9035a036052b4abe9a20aabf24fe23d6ef0367262a071fd84a3838d01fe59be6a2685d76f8c9c124f0a906f2db23c2f0328e00e6310e52fbaf56b789c6747feb8cc9229c83449b37f5253ffe6d118c10306b72a40d810288ca21ba2073c8c3e20e94970a32e6413ad383b931973dbd6fd2463f71cc22125238dcf939052553cd17f2fd41ccf4a27587e39862e7d85723d6148ae617c0d5733025b87299e0d7d4b083f935793d2d4eeab169f215eca0fdaa4368cfa14cc1b2ca52720ba5dfef685f2c9427ddea1938cfa1b6464842fa30028117f2feb224f7fb91ae9105052223226b276052811c144378cc7d1fbba5402fea0208786ffb7d2f2435ed8b3223012961798e9d0343323a2b35902e038b34b2d6018d0ddc08878ad77dab397b2092e641425760ebf423b4bace21e0ce86474d151a945903716e7398caa5d2519c61eb5bd0db7da01d9c9865e0b42b0c9073782c21803060c48519aacb1025d90c89922c850ff3b457b3c27f35087b0cdbc79b8369c96d14e1ef4b954311b6933585f997d35a90a6cda913c9904d024bab2f6e0eca7adeaa900df18e20c87e1dc2e719e9406084890a5aced535e9c8edc75d6a6d287b799fdf21af9c6d17720072f80ca9f40f1bd41e50093f24d037f363b18117b7d7860a8ae721891ed51140d87cd8b848028df6f65b83505d16d35069ea811f790d5f8c74a791d661573e2455ad87e674710818290c855c2cb658887d5b9a25960de3ff417ff653caaa1040ce22ac6406582fcb56e71422d425a11027da9ebfab6583c3957951ac44d31e3bb4b31e8427cbd2819b218dc0989d17165902e548981f69153d3f3bfb23fa434f83a4df433c47bf7f231b0ba6e2bcd6c6fd2a506f65f05a0628dd82b92d3871e72af7b07e87f4b45a9153b76049a8905eb25590abc6c00362db6a96fb563d773b8846a028581c8a36d806a7ffca9d83db17e7b75c48b22a0bb4bbe33f85cb8369a5e9449d225879958a81903a42104682e8cea8564222e52e1fda1d42880b81c7d1e305c7d2a81588c8b64c0c53e615bb399cb51d60212425701559a71f48e0a6be08efb67033bcce3cc37eb6c25aa717e38949b3955925122bf22ac5fdbc4b89c9c5ac5ca0e62bf63c7a8e44f31aa9fd846876e8f23988070146e43c5fc1b5152baaba22ea00a5fca674ec9756b5addcea7f86f4ea085a6e874cc75caedf292c1f31aff3eac50d2eaa117f51304213dcd9dcc9e296fd3c79f978c14bfe028d0f66a170911083b777753e1b916efef98b39efbeca6726a6b02cb201d06cd2f768b9d28eb4ec23a4b844e0dd7c4055a7aae80fce1b19209e8688d080135619f80166e55aabbbec790047ea5dd4eb6b5635e69f54a04f3e7f9ea7900ce949dd6b1494c60977cd1fd6505f1522d0b1f1e0f85a7165555000f837b225d3e7c1a6b87014308dfd737e8404e0f967a2e240c7b71cc459f7cc21c25e2d07a730dd6bd00f66c700a66b71aefd19269c4c543dcb14bec09be9953d3469d820c5ea40458a152eebfebb345b077573eaa5a230acfdca509c5fd55199046c06c00d959047cdb8a403cfd419a7480511103feed03ad532da08998fbfb2ebfc2fe22e0fbe7a98064f2163adc49eff3636cc928c5797e538ce6fac69a8910c54c07356d60bc04fdec5a59058395745b8e9fc1738b4b82f40eec0dc3fdbdc491b884507d672f9959624839ecb6325543e17fa80cfb324aa91240d20d85985729424198ff5b0e6761ebba386ef876eabfdedb9dfbf4eac0a6e5992acf71c9a946c099d8a19a94db7bd497a3f5427a7ad64d3636129f5942c8fef95a5fa0d26f80ac4f29c50c014f1080e5303f6b0cb386c4fe6294ed4c48d60e8699eb61b241f9a57b8e725c8b0a04d58c31a15e0855ea316c1f82410e93b058d2f7cee97221371d8499b1d37d7f6540efac423c45b2515de02b30858b0e268460bcaca80b0330d8fac561fb1f8645cd03b05896f9786179777183f49b9aaf96e8a9a237124b4a91d3b56a645f89cf69dc15b896304f66dcbdd8fbf17217fd99d605617cbc23026d0f8b8e134c20e2778f75d6571e8622b7c1b9ad333683de4dc2ddec71d31a82865bc0db26189219f68d048129781e8fac0100529fc774e948f0e08caff784cf336c824c391312a91534113478f5c81118a0e1c3bd0aa0bbc327a2f4101dc2d14b91934671ca26e93510c7d2bd6ee63bb77f6d18daef1ec86e956893dc8d20c1b7ba252754f65aaf762bedc678c3ad982e688968a02d1bba02076e6bcf0a13b665a6dd47c774827db828dc03f4c586a99d93a38dc4063587c0442859b1872c967fc926ad14e4e0a838e23299d4838aed9eb5d4c067b56f89709f8a57532f621302577db11860bab6809f594720d0076eeb44db1b70b80c169751a136d5134c9bb73054158982818066daeca0f387339bba4c6da7324e9b436a8a32643f896fab4f5b4347e9ad8843e2cd4143b12bb23a668614a3f96a8af04d01fc05f2c045db7744025257d5fee715bc736379684dcaad25a72cbd89466df06a0c61a84f707e0d7c90614730ea87d2aa31fd20b052258f9ea3a0a0a7f0b770bc05069379b8cbd10f480074894368ceb08ef930ca79daf0c4920e054c187b69e4856d5bdd5b23dba2729c9ba4b8080256186d31221f7876a17302a0106e93decd21a2eb81b58feaba074677d98cf4fb618fa1c9b3932f4ade6d428069ccae29f64148d9177efbbd421d03807c26d0c67e82e15a1774f1674945336a67bd2f141b58d9b330e8576b968898750813690619259e40f513a87e44185a94f7c1b7fe7edf4e0e160c2da6b7aaf5e0bb6ea408477e74822399151f7adfac080d0c6669f396e10a661970ecb11dbed5fad75a071fbb983bae43436753828c6086c237333d1add386eebedf4340e427173718dbbce90180a269cb37993f49e90a6a696ca807c38bc53a3f0a7805bbeae9b4a2db438ab9da3ae69a00d100f2464155da3a8b8a8cc590217df015a44508575d7d522feaa2c7a94c263410a0160869ad854a4d1d5649004c32788daaed96c6cc52d62085bf696e275dd7d5aad75c6823187f8af943daccf1bf2c89bbfabb5e4eb22003a95debbca97d424551bef6527263da6ee6df88ee09d6ea61ea943fc936f613acf01b0a527e5fe502edc8033af22aa10535089e24af083c207daabb2482df0df0ccb97419e4fa254f79ce806d5df6ce1a64db10ebb7003989c1c0f0cf4a2c23d93a96a3368b3d03be7199d00cb6bbd3c420de723068fa9169e639cac34347749078331d474ff1ef5e2f3f15e31208d4d8c01e14213f35acdd33d52c919d3a58dd9bd2ac893f254db770f199e55acf0989ba1cde6013d1f54a4ecd402a835baa059c06ccfb160ed49c159ace43b8702445b12ac1726647a789acf96c0f2658d420c2e56d7cb38723da199c7eadb1b3b3611645b590a7245ceee72ee89e2eedfce503eaf652d6037de215276cc64a37370694f5505a4e1cf1f4ce73e66559f34bbda8eb4430323522ad455cd746409b6a44e81254e4dc5688fedaf421f4e6aeb16015310c00f91c0054da55f6a143c174572a5939115a1163647cb15ab954fe22c0e4b2f2026b76dfa00000f5a17e586e4953cd245ddb5cea845f61edfc6a911b51ae23a4317c1f213702f84a79da59948a74ada7da8a8f95e2f1f8e4356609af8ad1a8ff33b43b03c3ed9dc36c86091af5e4034850c7c2261b39319d9eb7b84176cdeb4106d32fff4ed92f576f256ed857c76c83dc29cc957fbbc8a7964f200df93b0034802263a55b535fba1a46a6b40bc19135d383869fa2cfb6f2c2834d59aea5f51cf300cdbeb21a0feddfbd822574be543d44d53fab9a9bce7e81a15cc271b740eb7f4e15bc17307bfbfebeda9b429240c537bc774b3427fa53b686668c4ba8aa4c1baa1cdd5439668f96d968a3078ab02cf1466b83bf866541cc72dd1a8841f8f0f61c05ee2deed5680a2479170de2404fa21097b096c4ff6599c895312bf272044bad3f561634cec4153a7bbaa13e32eb02da56a03da9bf164776503eba7eeb5ce9eb604416c4833d9bdda32d2d879bceded3b1b0ffaa768632b0a49a18e3e20f5a0b0d577fc2aa51465143599975acd585f470e698d59f04416a251e043e72d35bf2af47825b287ebd4f907db271823babb56c7feca997f23e2b5136eee5c151638254584be2b55190c3d507d5db5ed1415c751cb69aa19ffa806bedf199f5472a0cb42b2269e682fdf5cac1f5bc1c35db99464f29a2f8c8a7f319cf9d2c7bcd00fd7111e84eda06785776c2e27532905cebb607e3df34744f59e8a4a414f83ec0deb2711d666f5ace8c57dea07261fbc04cf629bb1d25e3f03a71b5bd9839d954e064b0220894182c0b8f1975f569c9e1da7ceaf39938bdad4ebaa11745f1883677bf23dd38283e3c3ff9af93dd40ed7a0d4bf40d2d343d7dc372001faf38d19cba4d022cbd553a05a1cad51771f801c42764fe52154cab44eed6f6d743100850a20cccdae24cec03e6b1aefdff584d81a37b177c1aaa144cbb2a67135de5604a88a8ccafc5716f1a40aa00a38658509b1281bb8bfdffc620270e5d293135eeb97425a558c46faeaa75a06953633d09065dc655aeca6ff0ed2da0580016a9ae002eae24cb17481d38291f38bcc8f29a7fb89e77ae47cb10973d5047338b578feeffe8f18b49ee5b8c11a49cb51678312d6ef16bad9dafb805dc64457df443eeda933fa9811ec85a20958bfda59f0d56844b10bee6e1eccc8970e3abaab3ca392f33045b2fbc968f6f68c7da2bb3ce96079db881655636c7d1316585abf59cd3b8f095b9c9406bacada5896900335e9acadfb113a1edeca050b477e5116c42184a64fcc6d58e2313aedc0d5ed55308c8f6c784ac13d61e30f94032cffc0154fb2b0b9d7c34dd38e12e0e3047a656792146135a582356a827da0963b4aad451389f78bfe8174b827e44b881ab052fe50d1783ea8378d34166b1eb92a8db0d340bee554c3e3cfb15172f58262fb729c053ef145b79efddaaa2642b534b76e0fa65cecae63bf81d68d02eb896f6792efbd5f80836af500ca85ca6e64655060f71885b1f83f8509680dcd26e8c6b76dd2c5b6367327d364c207919119422cee38d20393eadeef65973bbcd7dce9f6deb3e67fd901d3dde722d55d5f128f351c041aac2c31c99855fdf5bae3aa5b0551b40a24ff9e6811499474883f9ba64abcdb8c2557db2d5a69486a7dd440a6e69103a47c9954d8dd4b9680b3785257ecf4ac117c1a544b8cfc9b3cef6783bb6617b1a4a38b4699eebac129a4a7b37fc0819c123d3c0e2a0043ecb746c15136725e6996addb6a0ee4e2240778463759e02920141d14c3b80f6c46b2a5980f546248a5e04b6a9f6ebb4742f2bd800c05c4449b1e89c1e4c7c0168a6c3ad3c71c173ccbb0f3b5daa71be4577ce5afaeb1b7f89d3800a46fa0efcbf9a3b8d61a1acb83319f14650a88be7200f9314d50ddc015ca1adacef89fbaee4da4b53f6fecfcb115d804c44a0716a27269019bb583e689c386d5ec3f8ef3bcc32fc77b0bf0491bf3b9cbd8636ba73eb3b9304065d1830ef8c654621efc280a2983d52f67729e9b46fbf90d345c91b3bdcfa11c085cad2473b47023da68dc1ef165c666936a247c656b2fef41316a8928ad1daa4d78b169ca4eb5b1e5bae0947b766c6ceeeada73c6a2d0307ca22542c2ac990b193bb7158bfe0cca8cf37ebbf720404057e9c85ca134f1040d28e3a4a271b8542450190004800c9f1604c2e9554ca14e0c00010000028a080e0728e9be52e0cd8526e29b7945bca2d1d29354f272c37046a383c00af9a40c486d8544358236437d97b4b297760135014d5136fc13330e8678e42d1f58e8b5d9feb05e0093c71d3cecf1c0500a80d4fafd30f413475c0c4c1d2064a1f92a6347840ea2094ca4074ec521ef0549463ffc00108af27345cecbcae2700781f44071c6cf061ca4307296214070f8f1d6a0330e32674e5b93d9f911f09958650521f363c3981e880830d3e4c79e820458ce200f58efd4308ea102e1d2ef636c9f5203ae060830f531e3a4811a33840453df60d4fc08c9bd095e7f67c467e24541a424975f0e434e4a06903a60f4b534a1e923a689042220aa3327070ecc3273c05e5d8a1a2a43e5c6525c970b1ffe0c8ea80830d3e4c79e820458ce200b5e1e9b13f3901336e42579edbf319f991506908953a0d9b3e4c79e820458ce200b5e16903c70e2515c30a8f8bdd455a6df061ca430729621407a80d4f4c8fdd6908ccb8095d796ecf67e44742a521909f396a6ad8c4e461a98392541251431412072154860d8e5da8014f3d397625a621d463c747154d177b842a15531e3a4811a338406d7872d2f0d8874dc08c9bd095e7f67c467e2454529b9896a488511ca0363c390d3b387625ec33c8429df4c2c52ee105d8d8418a18c5016ac393d310c3636f620266dc84ae3cb7e733f22361cfcf1c45645a528a4ae2a0010a6983f029839363f7209e1a3af6230c42ec20849044e5620ffa2004621407a80d4f4ec3a6e063675a0266dc84ae3cb7e733f2a3dc925212d48627a76193e7280e8efd08fb074660c7c52eb481117080dae01341e84721a32bcfedf98c7c482949c31392937098a1c9b1fb7e788ac9b11b51f00f8e1efb042e00e762f73de0021b9e9c864d4c4bbfc7ae9404ccb8095d796ecf67b42669401a36312d2939397623ec0758808637173bd10016e0346cf289209451dcb4f2dc9e0f037f7ee6a8260d4842a60c4b8edd8d80a7941c7b4f084f2539769fd16307118024a38bbde843009a98969492223c760d48c08c9bd095e7f658246106a5240dbee4d87bbec70e25a5a18e8bdd6828b5a494a4c1e7b1236574e5b92d0f0327f899a39284ab0e4f6970ec3c1f3ce50a959246b8d8291c29256940d23dcee8cac3409d9f782a8363cf780ac305a12339769e51059f230981276edaea63cf800198d1f5878781eed8513c85c1b1ab78ea82635ff1d49163370b351d173bd0cfd6031cec650062005e0066dc84fd0888e2261c44e5b83e370290cf9985168021a09f3d08043ab00290027002d0085804fc013711709f6443da8580fb64f62400230081801bab788dc4f1da7d801b67bdf616c8036edcf5f809f1fcf20d07b081172071d2d505b70bd9e096fa5ae682fb643bdd8e697063ab2becf55829cbee3cc200c3dd3c5ed083f3b51769eff9a369961a0a1d7b3df9300c411dc2a57eb8d2595042292b35430d5f2bf9300e1b951e7555a8e4a6df8e7c1f08d5d88e963a4d1bad291a54b3bb7e60f4da53a0eff5fa810f4aea83de0b3e0457d87b37887a08bc3d83e7bdfe3535dd133769a05013e5517a747ea5405f16e20fd9a18652396a9885184ac8840f1bc932544e90402b24b288a03083d39292042ba7630225ce8d18520e93a49b2d1d6550c488b3238a8d10ae96477c34e39e9885a011b6660e8d276e706d5092c05063c20b8d110b8a1367422819f3d2e44e1da3111e4f92a8f820ede823adeb2b7944044aa860a4216331a5859324248ec6b0e317a31a2bb22928ccba6a6411d3a344133d392cb3b42573927039c3d33cd2650b4815260e332676726a46521ca9a0b0a252d68321e6434dd93473c42b8e6642b6248e16236a534c9831e3f565b422066b491bb58e0db83c50e8b8a508e1e2071c1b2a538abc51a1642dd8854a12cc0a2a2f356f730b90371f6c228c49ca10004e8d2572d2885d793bf5a4e1b105f9c2cb85922e30bd3345a21c7584a94af26060414afc20618205122e431079c310af2e57dcd86c0d7975102875c6842123420dedc8599a06873a6d8301c688193bc82a2a9922319059b4988c305245fbf00329a1944e5da7411059a7c992a536f646c50b96577b1891e408db1a1224d8abb95e83fdab5d180022369eeb5813b0dfbea019594f8e682d9192f4fa7282266d2ccd074fda91349f645a332d7502f47e17e1e783d4041e10421622550c4992856135a6312ea3eaaae3f9b8117c2d8eb698adbcb2b02b0bb37f11735717f289d92a5ba1556e9988e3e29a9f5dab65226666a4ec4cbdcc441c9691b2ebaf4c04412733f10119297b183389865590b93de1faec1a47264a65b4a7eaaa1cc5f3ec1a99a35ccf619fdd3ebfe97ce7386dfcac8f9fb58acf3a06d05198bbb332c6e7fdc119863d7b56e2a55030332f109992bb3eef10d4af30325cc48bbb7356e6fa90b372320ff96902c5ddf918434a4246fa241973376e6336a1dadcdeda1f66eec6cab0b4a1126dc91302c6ddb82bf9a5d4e5f5646764cdddd80aabc812622b1c573a302eee3ee3f0f148024b258cbb4fe6071bf8c008d60b43dca32cee3ec3f6074612244808fe90e039096e2e2fd7ae11808027f0fd073e177802dfff04876384d49f1e6ecffd21e42df004bdffa0f73ce0097abf0b7ed0fb9d0fc708a5bb3cae51dafa74c01f41ce025370b23e94f521e11ef98f20cf014fc0fb0f78af024fc0fb34f801ef531f8e09d269db7495843f7aae8129e801b35a46cacccc1c8e71b1efe15584dc2b5345cd559534432cd051410ca083b4331146de9810a3e7cdb53123c6c6e6f8a646912e1469578ba7d3ceda0eac1e706ce450bd391f6963c6283183218408122f0948ca3a3021562769a2cbc618303538beb0950023e39864eb889b9f23711f40b821a490b551a123e3ca962c6f6ecc8c993939de1ccdaa0c39f2c3e74812a99ecf7541681967c6d88c80b16c7bc15269d1725226cf5b172172d03a9f737a73526e2eb724a7c54814a8a41616e4b8aecfc5942cbffd734c09d8effe14f322f35ba863824fb03fb2be22d911ac9e7d00391f36ba4d371fd35d9eca7528b526b5cfe7927d79814901beeeaa064ca3f1647e7a9582d0fe3a4db13bcff3043eeab80468ce59cdc19d4b55d5539fcf75d1d5535555719ab5d63ab8b56715a77676e7e9e1d4be3b3da00940e16acf6d0250b8d9b1a3a78704a070f1e9c183f34c5555cd5855b58a9eaecf9ec16747d3eb693ff272f19f62499cfc99853cadc788ee7137be4a49b81baf244e00185de11ed7a78d46716ae7ad39dc73af2b9ee269b8df1a72ac5908e4020e77afd8e5ad289afa9c7e06d173c9712b80e197eb131ae513075de0c93b4f00a4707d6a6e7a634d19f7e7ce9aebd3c68cbbfd99303f23b1e51405d01df818a7390266c895d168c47a31c61827b95cfce5572970cd911c4390478c74b195117d8324ad0dc9e6d6dc8036c3c48a88916c55bae712445e336235e40a45833ce150ca318fe78fa26fb8d2ccdc8c46e3d58b6ad8e39e5a6bf6b83ba35c0cf6b91d0a867a71a139c757a8bb1899736cc4c60d9c27dbe9166ca639329f943b14b220d2e03ebffc0ce672aeb6c51cd8e7ac1329bbcfca4586e163165b56563357a99d38ec44caee5bbaca5c45e69372b7d09771185b169ebfb3da675791c8b872e6d1e0c6576a289a532b73c1260cb76acee7e44863e677ce5a535899e2f63b57a94ca4901353cefcc66a69ea96857348a8a9f98dc33ee7728ebaeabb14c56eadd9b9babaaaaaabcefaea33c8399bf33c411adf5c305d6a15982a351256b576e7d14e998fe3869ccc3fa7c099bd469e1ef4d7b9841b905fed95b1b87bf5c2495cec90e132be21a4607f8151133dd8b892fc32be38c48bf18b7dc6b65c411a5fecf84a672e4d3ccdb494f94a13b357361e372cf101c7f562cf5659899b6c99891d2bddb0e32417f61a81266a2f8d841dfb3edd3eac9841f6629fc0064068a2364a6922f65266a6ab8d9a78be6eea852a35ce4163ca64a1baab89456c76ec11405d0769a01d751ca4c1d603b4a34e031fcfc1196c3da075144573da06871a293883ad07f8b8761d9cc10cb68a16a0bd01e7ab7f5a8f80da9cd126470e32a3f1a5c14f108446527d82206824d54f1ccceeeef6a051f7faf8300d2e402321a0b901251aa4c1d60352d74e835307699006b1f60498c0c6d6713007315223a95af51d00ca5cfcf9e72a7bea15c89e068b584ffd7c2b80fd2758c4068b18807aea11403d0dd260eb01d8b5d3203bea11d0347841642f4c86bd7cfc7cc98a1ed07aea6970064a5d42cc384111e26d43d01f81b60de2a546521db3e1252691634496111d1deeb8e792edcb943a318cc6b7f554f55d0a346a24f5f86a330b55074099bb71b38801a8678f805e4015eada6990911a49755d178fab366d438cc6370f495e218b1ef0e16dfdc3dbaabef301662e8da43a029aeef966b2573d7f65ae9dbf2270d2a9d2a684f16dddb6bc347182341adf16b8a5f35d7087f81deaf2d66d809f2cef20344fe7abeb80e7b33b1dcb0673da320b5b0f5e60346634a0134cb4573dbb69e209c6dc4e84c59db5a578d513808dcd6102e91241f5aaba4bd9172ec62d3467afea994d1343c45092217ba10449932daf36e632afccae480578875b148f7b7ae0013e97ce9d1ffbce7f3aea010e660791cf73097b0e8ac9291477e3e579e69c35ce393d7308df06385cf5b7a7e99e57013e97cea5dca6ee521dab6375ac2eb8739ef39caba81a0c2145833c0ff01ed77fbbae894e394cbcc1410705921d2f76a1269e779a6a6bc68c34ee1c7939c8a103b68305992357e7179b166d429443a8e0de3ce78e8bbdfd532c4b1cab2fc2e61c17fbcf9f6361949c70b1b358907680a1236c73b1e78a20ddb12647a11b266a32c2882199f0d226c71d0b73858d8b7dfd732ccc0f1a2ef6f4cfb12637f2b86368349044b8d87326846b2ef60832fe741efa677b82c83f482fdcb1302cfe44c02efb2e37cdc04d3374d61a4551346d9ae15a3d763593bdc6cd264e9ecb65b16986ba23f733cce1eed813678da66a6ef57134c5d56bdf355f3bfac615e69cebe3eaa266af02f4b7d20bf3d1835c302bc1285f7b3e6a621e9291b4afaeeb0b1e5fe721e7925eba1bc70df9f3b15f696138e39e60b6c8c06c7d81d9ea0233e44df725385d072cd2ae739eef80453a288057173c4ae5a116a2feea78a7efd5f15c07dcfd79745fdd0903dd717d7551f80c6edf6bd71a45d39cf33ef513b8796cca06579d4bf789f6aae34f77c13dfcf3e8dcab1f857006372fff2e32009af314184c81fe8dff04bc67833b845f831ff0da47bdc29475c217a01394490a8f1744c6c5eeb63c1f7c660a7bd6a62db4783a0adceca34016056edda3ee0e4855895fc4223882049e04283da12f9eae027712b87cea1154e03eb57caab56edb222ac4cb433e9e4ac4cb50e5c7eb400d5ac4eb2069c4db13781ccca1c0e3a004adc09bf0c379515f56208f035690d701cc6a81f7ab811ef13a5cb9c003dab362e0fd2e02be563fd53be1a9e6cf34a71a9adf2161f87de1f16b0d279ad7a846d160065e042fab9017c10a8ac493f045032fc256120fd8458977e628d7b8cae3b1301488a9bc062ab502c84bbc0e509878116eac4d3ca03143b5a98d8076e29d4ebc33476dfda8635dd0895761c9fac463c2b181c7740485e201893ceaeba36b16d2b2ab2086324d599b7045ad42151aaef54cd3177a25cc0a1232a2d6177a04c4080e3c1c3f5091cad0867298a044c8819d0c1c985ca030e2282a0c060e596bb0431a85df8b091d94e82f8208a20c3f565f84e53a14e12c488218b477c4c52e014cce39e7a814455314759dba0ee6a01a74ed302517ccf2083ad6148889ead031294171cec01f39e79c853e450410e6e00ee18796fe19074d94d8ad1f280993a8dc9c832b9ed16aaed7ae358a1ebd709bc23f72e16ee1e725baafac1eee46d12c3c8f78b83a8895bb5dd7799ee7799ee7799ee7799ee7797e801a0a8f8c7ca72eb3dbfd64b48c969e27f34f9c85ea8ca23a78662efc5907f395fe1a42a1e999cf534dcd9df95cd9339f61bab33d4f6fcf7c7e0d31d027ebe7f49f13e8e4fa335f65e1e96f6f6ed9e816a6fc527ee1181889af30d2ed64ba6de0d4507f6aad832b408759783aeae69e596b34cda92bbaae3ae3154dd55c6ed5b1b995d5ed5a9e0feae3a333f6d9f1dad6c7fdf1f9f9715d2009117a68afa733ee01459020a12714a4f3103a34a4331e1a22f2e5d3d70a0023407ffee5d3083532d2191bc5f55a01e0219e90506b80a1d600fa74dd224013b506605f0757e0a2397812ad38c28983bb03a78328dbed4e9c359aaa3f1ae2b8b9135dd78c057de3ee7e70d6685b4c7fd4b6986b3d5073ce2b3e75dbb66d9bf1da2bb2ad07b95fcf25b7a8dbb5c59e11af2daebaf57131c63f3e3f9f3fe31fd5a788006a9ecf9e7fe772b0f7e6ba4325e150e8b6d37dcd487196a1533f8ae16ef4d3330bd337b79785a74365e1e96e1e54508ae3a25ce75246dfdca32c3cddc7ae39d5e7f3f1297a40fbeedcc77d5464e19197851a4543581d840fd01460bdfacc7157770784818080ce34e720eab64561169e29fa690adc6bc6f8447db0a37e66e1b90637fe9500c1fd01abd36ce7a7ae75ec07c35f5df5dc91ea6e7e736b63fbec99f939a71dd170b3633407cf2cd498b7ba45a0d603e1af591821024f82845e2f4888f9410acad773d38abe138d88e8f72b5a73456a5151515a84ea8c8b4e219f3d835fcfa59697811232b0b7fbe16560106fcdae83daa29b8567ce39e734f5acd33495e3e6e050c64327baf3ec06f97a117cd9e7c3671a412803873270f33270bbbf9ffefdf20faf436d51ea34dafd8a509fa2ec3ea261f127f4158b5c23a30913a4a086ee3a6396c82d9a10e2e8869be233c54da767e0af88c8e8378182ce98425ad416b3ef32f0c4d967d320bbdeab514b00f4d77369c284d603fc27d484d600d888c2045e0656c8401798811898c67173d0cd45dddcec67eb018567bdcea51c740762e0a93d3e346aa20ccaea7849216489e6e5b533b6240d9927ca9b770f8f6fd503ee6a4c0e1d6aef1eca20d2a3878caab32c66de3d0cc1c387921368dcb854bc79f7b049adedc8f2ab448a11ef1e9e359d353535353f37299bd4946d3b66d38ed9b46336fdf8dde4e37793d6efa6321cbf9b9acc3e7b9351133170863524ae08932d565e164a60e8d8522224f9eea6630621739a68366064b17a7793d59f65585779f26c396b337b771319912cab30492256deddc4b582aa316c7b881cc14a7b77d34e8b69a7c5c4e4c6d4fcccb44b32ed924c3b2fa69d17d3ce8b29eb37538fdf4c3c7e339561fd666232fbec4c464d3ce168b9791bcb33e3cdc84bb4264f9899165b0db477331d91d0c230d1ea72a6089b77335921a941bb7146044b19b077335d65b1611386c99c1524decdc425ce8e372c286b6aa8bd9b69b76269b762696969e9ed33d8efa51d7269875cda2d31914b19ebf7525990df4b4b66ef858d9caf1147aa0479f7928b13547eecd0034787f2dd4b6b67d3da1e25b7cfcdcf4a3a36251d9b92aea9a46b2ae99a4af9eab752def15b29ebf8ad5416f65b49c9ecb32b1935314494648d35b016627ae6bc46374fb0cabc25f1f1e3dd4a3ac4d8e8eae11677a4ecdd4a2166a8a85ad3e34b0c223ddeadb4c5880bb43365cc8c80f16ea52a25d4ccc8d28288f1dd4a674967494949496f9f9374ca249d3249a74ccaf13b099984e37792d9efa4a424a326a23e905e73a4c8303125884e9ea48931185e66ef4e1a43c5888d214b216137de9dc495a42a0907238fda9c772779e99268d025d1a0418386b7cf1abc347869f0d270e3b7061bbf35d4f8ada10ccc6f0d1acc3ebb06a3268678f2d66cf15625a4ca945748199c39768c64c2bc5bc3d1849daf2242d28c89f36e0d563bce9ce042066b8dcabb35842051850bf2d8468d9e14efd6a0cc82c203091c1a4adeadc12b07520e242424a40d7e235d215d216d242632895496e6371292998e8450474228140a3ffc16ea8e42dd51a83b0aad7e0b69fc16cef82da4f35b482634fbec42a3263e8a2065529a089191e285819c302770b0a8bcb0bc5b08823d296e6051c346e2c9bb85686d24dc309b6b75d8de2da4e2624e0a3531574fdabc5b18e5c6882d30e262a8c1bd5be826839b0c193264f0f03b835b06b70c6e193264c85076e77706fd3b43170c5d3060c080e1ed33067689815d6260971864fcc680014359dc6f0c1830f4e812a7e4216627cc7b821569c8da62c4f151f56e0c4716ca0516ca850b6a172e5c90fa7d218efdbac07e5d60bf2ee418bf2f6418bf2fe417bf2f9899f87de182d967bf60d4c4b30a102f766660d5c0f211224a95341f5d4bc220c3bcfb82da230d0d2a6be276bc78f7851c2866b4b97225e2f8ee0b575eb6983161652dad4dc9bb2f70959568b2e6d81c92e6dd17bcb48eb48e8e8e8e88bf8f9247c9a323263279a4e2f7d19119bbc202bbc282050b16de3e5b60911658a4051669c1c56f0b1690bf2dd4f86d81ecb3050b6343b04a9ce1f13605091d275a889868769df9f26e0b22e022c3ca049a341729de6d418c143b51b2e0b8c262e6dd16f29c4d79f6b4ef0e06d974d02dd8fc1c8c330695c1658bdf4116bf832b7e07b57e0783669f3d68d4c4b30ed79733ae3147f45cbd595252545172a6888c77078fc52950e88cd8c365cd9a7707afc8e97a61628f19d7bb83573360f6389ef072b6a6ccbb837952d061c392052686927707bdd6806b40201008f51bc8066403b20155fc062293c023bf8140b3cf0e346a62081726ccc00892440b9629af1498912e1529e2a8a9f36ee0713df3f5ccdddb3ebf7df6b855e9abd257a5a7f8edc8cf19c56f3783f2dbddecb3bb51134f25172561dac2c6564c79cfb09530be59b99a927cb71fa1a89862bcc8795363e6dd8ee70b8ecdcb19d6082fef76af2415d624152aa8e50a6dbbc25b85e6d3ef0aab5785d5ab42850a15ccaefcaeb02b98ad2b28ac2b2850a0d0fc4c6145aa7da6b05e5158af28ac57144efca670fc4dc1c46f0a617e5320fbfc9b82d967a760d4c4102c6ee8a14a5105c7a6ea6533b107ca0e30672bde4d21848f3640e6e050bb9245cabb299c60247058c5e062430c8d775338f7f4c03aeb52ba68637b37851241e6c4d1b2a5cd0d29efa6b036616dc28409cdcf13726c13726c1372cd09b9e6845c73422ef17b4226f17b42aefa3d614f20fb3cc1ecb34f306aa26eebc5f2c5951c3fa8bc6c49d2809c79b3e2ebdd1394d080c29493e2479c17ef9e60f55869489a2ad096c6e3bb27c8611126ebcb90165c90bc7b02d79fb0da03e54ada12e6bb27403182626464d4fc6c94fb32ca7d19298d94464a23661ef1db288bf86d94a97e1b99adfd363232fbec46464d1cc0d69e2e6f67457478bd40a4d86083bb82276ecabb8d8e6daea84469023932c2c6bb8dacda4e34a564d12aa2e5dd465b3b8e695284496155f56ea3a30d1a4cb7b6331c33de6d9493519493515454d4fc5c94b32aca5915258b9245c9a26cfc5db4e777919edf45666f7e1791fd7e17997df622a3265e6004153a6b6e9c6c9dbd68b42c81cbc124cf8d77171da7e0e9e1e50d4ecd8f77175919e0f8a64a9b9d3770acbcbbe8ca4bcf1a3376d2de62bcbb882b6c48d59a1ad89d39ef2e72f373f3fbfd9a9f7faadb4f75fbe58cbf9cf19733fef2fcfec5fdfec1fdfe1d7fffc83efbfe997df69f5113297889ed9982c525c7ce5b014ef3ad29866d48d8bb7fc737abb2e70a8d1e2a34effe597d369aa14962e6a38dcebb7f2848e06053074cb26dc4bb7f35dea8bdd9785306cbf8ee9f189118111151f33311191119d1926849b42462e2f94d74e73751f337d1978cdf446444669f9dc8a8891ca4bc79313301040c8c02a06093b105cd498e1eef263aa99c1093e1e2059e3734ef261a2225cd91285e58549479371100a878e008b347051c9e771361a0cd1b3137d8e4a161f56e2255cba76af97cbee6675f522dd996c6f4f229bd7c4b3bbf7d757efbe8fcf6e5f8edf3997d769f511381f6e8a073a66a2d488c170270aa30516ed99302cabb7d65bc76ec5033a2ad48f3dd3eab57f2668c0b86932041deed0b805633cb0b385a6f5beff685e0cc99978f3728b0e2bcdb976728cfd0d050f3f3906a1c528d432a7248450ea9c8a1b7df43737e0fc9f93da4f57b28fd3d3464d4c41043ca9411e96ac26c816289048cb030b81147ad770ffd489e71996991430f91770fb5c1393226cd091b707ade3d74f5390d5b1c3544c86650bd7b28d9a30d982d7b92907dbd7b68ed6c5adbf359486d0b0909bd7d164ad984d0d884d2e2fc1672fb2d04e7b75090df4242669f5dc8a8892d5717661925644b98bc7782a4b921a60e589a1cef167a6393d3864c0c2569cd770b591583340133525169aabd5be8ea73881e6d7ea4a8f1440d9693770b717d36a124ced917175598bc5b084a1094a0a020a2df415f415f41ca2065903288f9e677909bdf416dbf83ce8cfc0e0a0ab2a3478d1d362db2b421e98925913df69c2933e6dd41c92262626f645646d2de1d046505134c32cb912b56ef0e02d2020795ab2a5a7ca4797790102c4ba0acb81143cff2dd4132ce26197b7a6e9f9b9f7ba9552fb5eaa5c95e9aeca5c95e9bdf3d36bf7b6b7ef7bc7ef77a3da326a200098f1ec61b72dcac3461c9488689a15551bebb67e64491346c5b34a844bcbb67f581186e7084246364517b770f016166f040eab0b262ccbb7b4b586e72f480b1c042e3ddbd9484843c4fe2b16f097bd23eb3ef96c0fc2c814d829b84e66709719f1e2528d3e3b3fd96a0e6b78434bf2544f92d41825113431c995256e489d80b1a546c637bd0ce2879bc38f26e090040960199817667caf1dd12c2925366d4b01384488c774bb8ea1207234f1b893936de2d81ebc99451b9ea2ac362f26e09e89808e898081122447813fa1d811901edf38e90864c46a8f23b0259880866498092000101353f03a15e40a817104a06849201a164406bbf81d47e03a1f90d7486e5371090d96707326aa206d0b290516569b6e1792b60d422a7081a304654bc1b68cd9c29464cfc50a608f36e202b10cc985063548315e4dd4057bd3b699665c96398d5bb81b80ea085854c03f3030d9d7703a12b5c7485ebba7d6e7e7651a48b74d12b17bd72d12bf7cc6fd7cc6f97f9dbfdf2db2573cd3ebb6bd4c4930c9d23891d28ce24897ba14488709205cf0d223fdeed1e5b365c507a94f042c2c5bb5d2be2102f36ab2544d046bcdbbd2ac01e1f4cb8d0c1d212f76e97ebe3d6981cb5d85851ab7ab7ebb5f6b3f6f3e3f6d3fcfcc3c6d6d6fc69fe347f98657eff90f9fd33e6f7cf999adf3f3f3f464d9480470f55dc13638d372ea05421a37584ecdd3fc707c8d9a2a2a20508b3c4bb7fec1059fba234b1c67cf7cf95913b28b624b5d480bdfb67abce161a1e75d6e294bcfbe7cce7ccc7c7c7e7ed7de2943e4a1f2513e97306e7b78f8f99d66ab556dbbab5cd6fe33e275b9d6c77abfcdc6aaf36ed772be6771be6778b85ea77db9a7df6d6a889679c1c57aec23041dac9f1b6791b21638e171551a6bcbb3dbe94941dc63d414c8c18f3eed6ea2fd4c8722483664d46d6bbdb2b2f302a72441162036cecddad852774966cf1ea42c7edddad5ec1d32b783c5edbe7b7e76d9ef2334f2379607ef396bf795f7ef3b01c7ff3783ca326466039c48bcc9538ac1d68c8bc8139d3032643c9bb7963d0ce6c69197972e7dd3cabcfc72b2c52d2b868b9f36e5e0ae26a50ade9d89a927c374f7329496461bab143e3dd3c3a3b3abbdd6e07fcbd6bee9abbe66eb7dbb5f8bddb998dd18dd1e974bab7d7c531754c1d53a7f3f25b97d4d5f8add39949c04dcdf19803081123efd65995208b4a09266ac2808d78b7ee2a276173129675639bcfc67979b591b1642c19cbecf29b45fbcd72f9cd6e96658d9aa8021f6562842c8f5c92c0d11972e2ec87599377b3c70ba09171a38b5b1666dabb593871647ca490038706e7ddec9507556a72e054acb8827c37cbb581728c991d3548c8e0decd7ae51c6bceb1aeebfaf6798dbb5aafd62b2672c5fabd92e97eaf6674727472b99cffce35d570b3ed732e1f733bc7446ef99d4be684fcce91fdce99b900850c336598acb9f07a77ceea9c13670dc91a24575dd2de9dbb3a53cf54556dbeaa54b15265aa4c95a932b5fc5695bfd52cbf5528bf55d5ec89097803f3a30b0c8baa2f356f7796dc01a346c7ecddaa1e381a65bee0ccc88079b76a1594526549943776c4c8dead5e45452141674f1e2142e8bc5bcdbab2028e48b30e8e39ef56a19c4d50f6a4997877cafc9cb2e177a7e9dba7715fa9f22b5d62f99d9efd4ecd7ea762bf53b2d4ec4f37296e54f1d26605911e2faf8ceac59d3523e0d079777a64d16546911f6869ba80bc3bb5fa1470702419a1a42342c4bbd33a4792664f705c19b1e7dd29970d1e3a743445ac9130be3bf5fa2c03c53250d4adf9d80ac55668124da249b4ec378a4ca266bf5132d4ecb3a3464d3cc5a0d5f1c1268a111a48de37ca2161020e059539ef468f26389bdcecd16e7120a8b561a3562e99577e6ba4b6f25b77f9adc9feb736fbbc79bcc980f1754685e5cd7aa81821f2a44b1b3aefd647123c098386cd0d953928de26931275d6eee4b07ab7f682403ebbe49dd572dbe7fcf6392e2b97cbe59f534b6713f68df3fcd29ea146c23e6c23fb9d91557ee7b1dff90b4cce9e8d9a18c2c825c9e6c6d598d89e174f19155ed8badeb07cbd7190dc6193c55563c6bbb3950a94709e78b9d1d323c7bbf3d504ee689905d14145e2eadd99eb054d6edc69d2291bb3f3eeec854fec3438a7d2b3097bdee99ee7b0e4ab041d1c6f84b8bd679a364cb4cc84d97325cb9b49b8bdd11a43e283eddd586d0d4e5999273d60307937b67a41e6448b173aacde6e8c2882c6081a32cb2a292ffb667e6332b1dff82b8cca6f8cfc4026aeee0234d1e72f9801083a4ff90c1685bffe1cc3c2e6d5b77044cf598c1d4b2c525e01b0c86165ce8d3b416abc19ce1a3a4fb0d6a4090bf26ac08c4a9514272a9262e23481b31387020e4dda9ba9d2dab08971b96134f35668e27ef92ef8f5d83bc471a580b8db07f9d8815dee6ed91e3b1089bbdbe6636f979ae893cc05db250f9dd3cfe3f2bbf7393f497caecae79646be3eb74463f6396fdb62ce3721ccdd2dd7639f40c5ddedd763a7c0c6ddadd5636fdae16e9edb636fd2e1eed6f8d879cbe0ba7cec4d5eeee6913d76221377f3ae1e3bd1cbdd3c2e20eede351f3b31e96e5e0e77ef948f9d88c3dd3be66397a0c4ddbbe4639790c4dd3b3477ef908f3d431077ebd81e7b0620eed6351f7b8631eed6291f7b077adcadf37aec443277ebae1e7b873deed61d1f3bd18bbb59b7c7de410c77b3cbc761ec7cea284ef169548eb8bea90f35117d535f533f4f628837e7bcb6986b8ba9540629ee66bf1ebb0438ee66938fbd8333ee66918f9d35b2c617695af49bb7dc469ffefc3efaf44b1ab74f1d4d7d25fbf48b1a349f7e6173f2e99735343e759db0033877af6c8fbd832b77af5e2b3eb7d1ab61783479d551d557ab57d5303db25e75b62daa3ec188bb57e4639fc0e5eef5eab17370e6ee1cdb63e7c0ccddb9e663e770c4ddb9afc7cec188bb73cac73e018fbb73568f7dc21d77e7928f3d8a8bbb55b7c71eb5c5dd39e363e790c3dd2ad963e780c3ddeaf2b177e8e26e35f9d8552fd58b4c2a260a894f2f7cea6b5b4c7f2cdcad1a1ffb6f85bb55e4634fd952b6c7506c4878147dd48faa5ef444c53c71d3f0a9e7a2ce2e415e75b52daa68da165129203877a75f8f1de88ebb53e563cfb0c3dda9d563cfa0c3dd69f2b1a7474df449a2e9f1b17380239e5f4c9f24fa86bea1ccc71e41ccdda8d7638f10e66e94ecb14bd0e26e14f9d82528dd8d5e3df6083fdcadd91e7b041feed6cdc7de010a776be563076a71b74e3e76a0d20552e34a8d71776e3ef60e6b6e871deece5e8fbd830eb7c31c3778e50677b83b1f1f7b0419d823c4703766b279fd9ea384c8d457eda7944f1dcd5149eb49cc6f54c4284fe2f9a2ee4be12f4df449fa24a3acdcede3b37cec3e4b9f341f668ec2bf05468e0fbe76ec93cc44ecc3b54198bb0115ec15b8dc0a4598ac5ca6224c445c6016b0c707e3fb00006b1e55abaa066950033577e67c065b2748ff472e98f31a9c658a5419df15bf4b8d84d51e16dedc7ed63539323bf54b4e83f09de9a6ecc6aa48d11ae07c3e17b27f8e5551f27b38627702c7d2bafcfa39f8732a613f81ecb37fb6c53cc5c5bf7f1eff9c1e4e0c01fcf505422b1aab5fdd5717ae3e5c1d93688bab1a97e619beea53dd5507a1faaa9e91f1aae3aab6a8327fbdfffd365afbfdcab8f91fd3caffcc6495e1fa9fe3116df1274cf3a854e0c0604b31078714196a6e8c49ee196b3256840c181665cc2031537bf730ee7dee42de57a60c9c8d1944d89aa8797d65b4dee758445bf4f1bed72333f63d3fdbbee798aa2df686321ceb3ed6bdcbb3beb264cf3a36b64556486c8c8a17f2106d51680d4a33f3415e83b6184483b698cb56fe537e3ef9299f415b9c5213fbdd0eee77c29dcf77bb35e3efda1d9eddceb8fbed760ec29edf2ded76bb9d885d6eb7eebe2cf99dd1eece6ec7ee30d74edded7668965b4ea875ad515bbe0918538625c30d1632cd2ec637b22c7bc898d90d4b243942634d4c972def3ec97eb7db6579591641036223caae878d3a52bc18cdecd8750046252c0cea83aafa19e75547d53518af6ea9f3aafbb82c79d59d0b9e575db8b6e5551f7631beea525da6bcea20d2cc78d5079046ccabbe00353a5e7519b44575c9c3455856cbdab3ecda8a673d066d91e5a083df3da3df47537e2b417deec3e73ce7abd7e7dc5dd6f99cfb927cce1d4c9dcfb9d0c9e7c2e4f99c98289f7bfb9cc3a02de67e9abfa56a60ac51e6450e32642cd054d0b991e30b2b69450de9a20e94b7262c22fc6ae757f7b55f7fac7973a3895a72479a7715fbc2e5577f415b5c7f5bfee72e688b3fb0f7a955bdcf5bd0167d2b0bdae28ee8a7d6133d84b6487c1bf35af7bace6b7723b08ed96b57d3d1271b08cdd711f49bd63aa8b3c6c3e335919ea33536331a8d22744ea7da3113cdeb219de5e8acab3232c778edd96aecb54f6bcdeafc65c1cdb064b4ecf65a1369ad5d1ff73479ad55e8abe46b3de4b5e6d24f5ebbfe32aed161717eeba5661ef9d66a9aed826feda6df5ebb6e526d79ade3dc7ea348d40abdc2e01b4da2435e3bca25a209da05e7374aa67cbd513474f9da37ca44d55e3bca36820a85df68db9bdfa9313d22f94e55a4480dbe53ab14c76b4fafaa54a4596e7ea75e7aa761299992ef5499a2bdf67409e7759ad6f63b754b9baa71c9b77a54f1da55e41e35469bdf6a52e562f2ad760d55afd75bfd0a7bed2a598e3ac74a2c5fffb4ca54d95eab6daadbd0b7da54e35e7bce68c24aae8a8dd6b9a493ef1c57d76bcf791da5e49eacf99d53e696af736939e693ef1c5baeedb5e7dce2bccebdb1fd5e8f2b72b57abdd7abacd7be264f74bd5e87a8f9bd7ead6450be57b355f9daf7ba5cd35efbca44a1e6f5aa96e6f7da648dec31ca378b8cf1da592b16c7da6f968bf57abdd927ce7e49f966c9cc5e3babfc7acda2bdce6abf59b6d7bae79b7d7b3d649b1d7ceb8caf7555af5d770ca353f15a77a54beab83cf8d679e99ebc76dd1790d7ba3034bf754be6ebad537bad637bfdc1b7ceedb5eeedb5eb9a2d60bcd6c59df9bd435a5d6de07b971cf2da775c6baf775d667eefc876cadd9203df3be64eedb5efd890295eefda98bf79c6a3235f6f9ed56b1c576042bf7959657ef3bcbe7864207cf3943cb4d7ce5ba279cd4b23a379cdd7adf17db74715afbd45966863bcce637eb7c9d7faf5dd76bd6ebd5eeff6ab0d7b4d1564eb8d9b14404c4c7945d8c10346824993376f9a975898316bb894a959ea4115e346b34b09e5bb4fe41a2726dce0216b9e78391081a50d11b029c8776363c66225c99872860b232f86165f6252ca68a153e6dd584915122b56b431c9f16e9ca3ce9e3574983cc1a2d23a2f335323e7b061a15161ba55bd5b93bdbe632662045597366284ce84a119b2e28cabecdda8f1f506164778dc082345c5d5bbd1e36b0f605a614c2c71a2c4cabb51afd75cdcbac8b0e87ad17c37faf57ac80d1376f2c0519a7837ea96c6889e156364d26809f36e54d903cb8c1b70b6aa5abc3b4dbe3e41238d951a902742348b3a56b0668c19d17c77ca14b6ad515ee54926c3bc3b657b3dc5859a1acc245f3d34969bb81d5bf09c85816955f95a5dbe3ec658d1144b92c4ebddb9e36b2c20462447b11c79de9d43be3e0382c50dd9d8db8f77e7be5eeb21a22596c2890f2eefcec1c13a235b23c338e5f8ee5cf3cd9d23774ef830f2eed5b8c2c78f1e25b0bcf1f2ee952b690f17362b2756e2c2bc7bf5fa2047da14b11741cca4bd7b6503c1991e6cccacb22c59ef5edd7656463c626cdec438f36ef64a09c997b12f2ae3f1c4bbd9e46b0f2cab88e9e1a6450920ef6697afb55cb4c8933ca19cf36e96f95a877ced3aab185019b94206c60e09b877ebc85eb3c083a5c40d1f6b58efd6295fbb81a9b0329126adcddabb77c6d7607122e01cb9c2ccf2eeddf1359b387a9a203936412a79f7ceebf58f2f6e57716db8b23079f7eeeb3573051e3060b6c0b8f3ee9ddb5ec24544599d3564dedebd73a3e4c49b315d52b4f87a372ff9da8c451b333de0c4c8a8f36e1ed7eb155cc6b4b2befcb8f36e1ef3b5580f341d684dde6801f36e1edbeb161cbbd6bc4153a6c81dcdc28d9234418e544179777b857cf300703447f91e00be82b60880f57ddff77515b4c5d71ff9e5df53d0161f04d2ea4138086d11c4da41071db4687e078e82b6d801072d7e3c077e82b6c8c1ba010b27bf819ba02d6eb07e58e1f61ffc83b6f8610affd4d4d40a383fe525688b531bfce6bd072aef61458ef7a022cc7bf0dd163d54e8d0c1d10e2ab0be83bb1d527cf90e4e82b6d841422fedb7941d2671575a541953f36ef77b6f2cced678c508c3e6ddc2efc9780b22b6557643cebb87dfeb89f99efb92ef0de971ec6202c808306fefcaf77c046db127e5525229aa5eca45d016a5dced3ed1d11cc57ba2fb88be1251349fe821688b44e77d94a35128b03eea44d9473908da6294cbf41c4e94780efe81b6c861856a1f0a0aea78e7a1dc036d118ac26f3872f90dde81b6b8617d7a32f34f4f4f6326c8fc9373a02d3ef97ebfdfeff7fbfd7e3fdf405bfc3939393939c97927d7405b741a0e7d381c96b0faa167a02d0e7dbe30bfa5de7747c655978daeb1640b2248c2881c91a079b7f07d1e438a0a1e34d2e61029f1eee1fb7c60dee7dee27d1ea40993840cd61a255daf6fac448af73906daa2af89f84d4dee9260f24d6324447c935fa02d36f998d2676262aacaf34c6e81b6c864f64b553d7ec92bd01697d60caf3462ed959c026d5149460b1c637010791bd17cb7fb49e8272d3f89ca9eb82c1e2ce068bd4923cc7c924fa02d26f9d16fde6bd03062c76b1031f61a5c026d51838b84848484e411688b48c2362f7408b445e19a2143860c673e833fa02d66f0b2c7304665e231b803da22062bbf797fc1d10b63c6abbfb0c7ca5ff006b4c50b4747474747ce80b67814d4fb20a30f7234c8d7207783dc17a467ed837c016d31c877bbdd6eb7dbed763b57405bdc1111399aa33e3c11911e1b4f44e6893c016d91c827f616f250bd0547405bb4b0e6d82fac1e1835541c218be2c522000b9428596a4b3a6e2ccbc6e1799665fd006d91e5fd50ef87867c857bf243eec6d5f8213c677ec80dd016877c19562eebbaae789cfcbaae5e80b6b846e53084f99caf743ee76ece7d423e7727ee73373ee704688b39a1ce8b192e35de962feacc38abc4c172b5a389434e0d3a5b306a5c594b312297bbb8980006cccb92cd1c1c36c49a285ef5016cde073d6807c807fd4cfba07bd01683ae10d4efde0b392a44e7eb85c4ea58bd909a177201b44521a307be813dd08b6d111880b6a85b3267c2f5ee00688bbe56705f850ada2b54a850c1d70a4cb0be029ca757fd6d8baad65a6bffb6a81d445bac2045418694a7e01db4450abd9f80f613f44f98e0424dc448a3d138e29de0131c2a47b13f0109c509169621226abc13244ca1b2c338e747db043f85fc0407a3a5c2fef0fa0c7301f77b21e3c51b185262bc8861e4b5839021e2b573d01635592ed3a95c7e9f4b0f5a6d694b174c23979f34231a9d36383811aa16661c94355d5388c878d52dafbac379d541c479f58811236676d6e469a3e262cdabbe01f3435b9c2075b5e38b1ccd51405fe4be22f7a2a2a222ace3170d1579292ad245456c51918350f45354948bd4221145bba2a2b3a8a8a8c877fcce773ed51677aaaaaaaaaaaaaaea1edaa2cafad9e459efd016d99c96e16b47f51592d7fa8aebb54bb5451df6eb0e31bf3ab12dae6eced71d689ff328e7d0168b3878a32d1d6fe4506dd1680cebcdcfd9c4aca72e4c7d98a37a9e3a9454d68a4f3f9cca34df2708693e054a73baa62252a134d9e3d308e92e1d4a53c74cad37bddf58ad69f4f9ce55ee91c87746c6b0028236e177c6c195face4f3efdfa344d3d2bf754f89dd13eb54ad3a2d46de7e6a7daa8ab3e4d8d2966fb14bb5d253ff59d979ffab933f3d333aacbd1152820715ebdf2aaeaae9357dd1724ceabee42c65e75a18a577d38c4cbabbea12daa524545454545fed4168bfcf736f2f05be9ccef0f1d7c3879edbe15afdd7f8c79ed421a3f961cf37a0c8894d73e44bc76a7b6a87fbfdfefe7c3b6f8dbf0445a4e9ec89bda2291cfe7f36925799f33b5459fd20f65d9f9215f6a8b43eb6eb7dbed5ca92dee3a78a1ac1f2fe4496d51885dd7755dd7354bc7afebea1adae2bac107f9a9fc20476a8b41ea6fe1e7869fcbe5dcaf7c2e37d683cae75cd81673bd3adff30c6db1b7bec81af34606d2ce0d1aef769fd5cf6a79b6eb2cecedeb0d8c2a1a2f3bc663ceb38ea12db27ea12da6fa28210ad74bf0a3b62881c7eb7e5ea77cddeb743addeb5caaec753eba9c45e7a7cea85b753a0781eb7512745874ba9c4ec7ea748e9339ea148b82f53a3ce44ca7d389d0e9d25ee7ab2602d531b10549e6471e2b6ff36ac6551c303663c8bca7ce7517f0e4e0c2638c1816524701286d7874b103b734a1e3aa83468e958b137bde8db95e47060c0f092f23c6325fde8dbd5ee7a7d9efbafcce2db4c5dd790e9d2cc83e31f3ac03db22bb96208f999616113277cedeed7e2e67f6395f3571aa8a932fb139c73660dedc13309f736f8bb9dfaf7e1af9d52bb4c5158b5111d8a7624f5a7ceaa3983a89393a9244805429cbd857cb5e65be98b384d1e505079157157392e3559fd01655376a8b3ae6d7474872e72378515b8c8064eb81d607baf240404040405d710f2401285b01025281be8034100a9484ed818080c87ee323463ed0d068341a8152200d3447c55a1cdc1324774abc4c39c684698106cf1829ef761f8805893a6350d8527c79f7f995811b48dec45e14c18104c881fc043a87bf7b9ffad9e2d3344de2554c7d601ae9b5bb645e77ed788d24c96b276a8bda5555f555755f5b542d7c0e098acff9505bcc09b545a093ecdd2351def5a0b6e81af99f9f2aff63146aa2fba3facf8f4b69f99f0f367e7ed27e4eb61f0721479d634788fccfdbff8cfdc6c79f18ff43f5f383b3fec7c60db4362e2eb084bc2a7012e766ec2d8a0a1eef76ff679f5fff7392fd0f0c1549b4dc00b37c51e7dd67f37f9439d8e89c5d99b324eeddd8f83f647e55feeabdb6b8fa40d1448b10302bcafc48d54fc53efd35f1087943fb11c4c59b7aad29a6449fd33d49d34342c99b9a1e34ec41d0e36686d51924386abc5a0c0a95d70ee447af1a59f1aabb6d51fd698b3f38d916d12f1fa0cf12a8837b009817e4f930b310f3823e6959887d2a4e97a92e535353536f9fa77c96533ecb299fe51495df53537e4f81fd9eba32e4f7d494d9679f326a2207c424c1b6b2383943be06a8735423a5840d2755ef9e3a52604814b72fcc1d48eebc7bca4a081e275cb4609121f2eea91f41eac08d7919a1c5cdbba7b44e3cd1e2c3acad4ac4bba7a07880e2c183070f787e7bf0f9f280f6d943dad76f0f480f527e7bb8c2f5db438b777bf0a0b6b5a3c611315fd6bc6a3fe4647122a78cc9bb3d1cdbee9cd9faa2c76debdd1eb82ce022ce0e226cd244c0bddb83975607ad0e1d3a7478c3577e77f049765076587e763b3091c90e527e77e860e6b342ca6785949494d49b95df523e48291fa4940f524a4a4aea4ad96f2929b396d81289444cf69bd8125b624b6c892d31ca6f229208e537f10a96df442271c51b1331d892602fde0d33aa3849b2260f18e5bb89c71c4927758218118bf16e2215253c7ae880f302e4c6bb895da2ba3cf61db5272a8a2d2aaaf9392a4af9396af9e4779493df514d7e4771f91d1565f6d9a38c9a18e2071e127164785c95e578f39c126f706b24bcc6de1d7594f356458d1e1473de1d65f5d9cb1236af2d364be2de1de584ed0d111362e230b5de1d755e29c1dc921324859a1cef8e6ab738b45b1c3870687ee6d07271b57d71f8e2c081c9e43707afdf1c96fce67025ed37070e669f9d8351135f80e688961860ae82c0783d8024e2634edc973351decde14856630e971a27deecbc9b039a3357d4b8b8b201e6dd1cae3a90874809146ba6c4e8f16e0e5ccf8139ca2457d81d3624efe6d0ca806a6540414141bd7d868a6bada05a2ba8d60a4ac96fa824bfa1ba7e435d61fb0d0565f6d9a18c9a78e2e1918286093a27b4e4798f79e21c29b16433e3dd50c7b3b73cc731cd2c3056bc1bca0a0e0c69c74832c9b2c4bba1aec62cc993e44c0a3ac977435d2181cb53e3c8c404997743b9d9e066c3860dcdcf1bdc36b86d688d1b5ae386bd8189e4f78623bf3718f9bde14a9cdf1b366ce062b2044a589a3a686f0d1c69f068d5b182437bf786e30f213a8c43cace9c79f7861c6d6d6ce8f1c1e515f7ee0d2baec0c16511d3c284f2dd1bb87e8ed690336271ce7abc7b83d893d8d3d353f3f313d9d353dbf209ed298debf75391df4f447e3f958df8fd747cf793d9677f326a62881a6c8c7a9625ce46387995c8604351a68491773f2d0912870c0f1a653adefd04c74d14aa255c6bd48479f7130682b8a8b156c44c9420ef7e4afb72f5e285524c19f7ee275e0e275e0e2727a7e66727de9513efca89c7e5c4e372e271396dfd761af2db49c86fa714bf9d9ccc3ebb9351134940c4cad7570b384cc4de9f15274f88a8c92367c7bb9d8e4de6d81053d6b5d4f26ea73b463226669008c266e5dd4e57748aa82033a6889429ef76e2cac222a4ab2aad0b8c773bd119d2190e87cdcfc35d73b86b0e79c721ef38e41d87417e0f81fc1e267f0f63fc1e0ecd3e07ec9f6357b8e87e5c49ab71852dcb8df0e7d89538392dee3a621de3b2295a2b778dc1b271531c3c2a97c5da9db96bd89a998d3230ad99323abcb8b238d6869b9a5869b8bc1aba2f2d5df248981994dd1d77f7e79859989684fbf3e7581537dd13b3b51d98fbfb73ccec0dcbc56d8f393dee2a834573d71c39206eaaa5ea717341c2ce8cf0749c79f15c4451d19c61d96db9ee9f63672cd9991a5d0d2c543b346eeeb826ab7cd1d1705728aad2cd89e570b8acd9ee848b76d19571d73fc7b080694bb8ec9f6358cce4e25cf5cf312c6c560b72c6d26eec7468df293113a12fa3f1e9a53839eeea73dd979e512e877ad55aa9c9f4979612aa59d23ee4b48c96cd729854aecb8a969bc6957da39bb36322b18025f3643bdd94bcb7ab2cb7653ae1f381d3e2074c57eaf3b9379b5bea7bae948dde75abe826d0161531da222c89e97a9271e4ac3c24773d0ea22f214a8f0945de05b5d149ccb50a85b4b0b9a1434c55435f1829a23c20984b2599d44fcf5aa496ddce266a54c7ebf4b950eaa55e0ff5aab58b0627308db0ba7ac1eafa7090c29217d20a84a6f18874ab20e66d686968ce6861f90314708dc9b60bb22d99525f2e65c1cd9330a37ce60f192a2be5a3a325276e4daccc192f336666b6c71ebcc074c4fa881d63e463ac9ba8710418e78c83eb6318d3c675cd6b06261166683b216f68e66a5f5a5ee5ac73c5cd75c5cde60e29ec8bcc4fa9a1d035305185991d9125c12d9968e66157e20dcddc253aeec66c64c2fef44c96a3b4debaf9da4fa13bc4480680197dcebed96f4fa4ec278aa6289aa2a8d65a9f6b2ecb5a6b9d73ce7a7cee7a94739aaa69aaa6298aa228c618eb5c6387ff44b1eb7a9313ec17e1d43a1f39d110a8d6bc9c31c678a8d39dbaf382ce0170127d1a49f73a973aa772ae730f9803fc9e1e50d7b1413ca51deb74acce79a70794cd39d6e97cd9d7d7adce03fc27c6f84c7d58dfedb72712f6a0c7bbfdedfb7309678cf282b809b3383db23b773ffa3c35c64dd9777b2e9daabbcf77fefcb0aeae8edd71537634e72c50f59da39efde724f64e24eca8ef6cf459f514c8fa0ea87fcd40f45137770b3fc76bdb03b4c5158ae985bba13e3b94d4879d8af274296fa7f278ed015a5eae2d40885ffd0cb2be5b591fd595b2f05c5afd6c734b3aa77a76a5d343ea7ab8068128ef5c6a33bbf5739ef93c8339b89ea7fff9e7ca9ea74ed72c8cc3317ef33e6717c53ac92e9f18ffaa51346314c541d451add55eebd3c3aa83475958b5fb39ca51d94f8c6a6df62e768d8f508cf38c3539a2f1d44af5279eca547f5e9191a1c95cea5bea512fcae5721913c40172d4f9e9a3fe811c758e59c97a74d886c13ea7dc3ac79460f97d2ac996bfcf34b6474fb7473d071cc11934e008c830d5863f3c680590fe08ce2ca3b4633f315871b16fa922370b8b8a16b07a03ce77751f5dfdc71af46924d40f80a7aca440e8f345c18c30a37ccff745dddc8dc7457d7529ed2032be5291ec82767e24b29111aac71c3f04fd4765de07a89ef35c7006380d1b37e3abfa5260d103d219a0379cbc29aed2e6e5f6a640f48693f76c05903fe505e52859c9f1966a38f170c272d2e192c0b0a6893340992dd8c4796b90d333e64d9bd4bc35c0696f1a3c3387dd7b4d1436db90ef0f4f8ac906315c0c5922003bc0b9db688319cbc73e96e6f6381882fe0f6dc33543bc1fd5b06dc8e6418cc2100f611378bd3718ca7e7038ef67c78f5b90f7a3c38211189c125f46a8138b2c5fefee88776a6211f61c37e58debcd4cd2aa1c8b7010a790f2225d5de04969b97bc5c0fbc99181d773736ae206797220775df2a989ee6e062a9591196b8c6f0d745facdead22039c6a6a8f5360d39729c677a781375c2a957037fa4abc60d37575de01d9e1afcfe7b720a8a7ef4e546badb5c6fb835e5ac3ddfee8d175971e927dbb9e3740e1fae72f206b1893dbab7b7da250dff9e93b76057a4cf4d84f223e91b0af3a9ddbc62dd279f6fc3c6091ce5b475f1f60912e2800fd3cc72f084da430c78b2a85082322f0bc584e9b2258418c00511b7bb10fa576c2d7f90adcc25f7de7a9fb005d23e91cb702583de720b40ea83a0b443de320465520d4fa29707d14385cc2e3e243d98655a582cc841267c0e450631327a2054a6924ec3ce01008e25cc20e8474fdd160a960116739e64b1a0aace0bab8d439a235e5c563c87cf9b083a50dc78bf7546d6161adf8b2c3c5bbcb699edde9194bfd704fad5d3bd1197546fd9cc2600006702e65ff597f9f61043885d90710802c3c830038978eaab8db3fe793ca1fe528f403de03e0f4a03b45a8a8efd07309754ddcf9995b75be85bb203e6624d475c17d3285fb640ed7b3ed0319690f1fd541621d77e3ac4751c7598f3a1e9233f60f8e5885de8026f23212eabdd5c83df265a154d2e5426364aecff878faee0ca2c1d431c618638dd5344581590357809f8210d7ca98b376c6f11b8ce052eece23a09a7bba46737998a7d1dcd375cb00560388151d704c8ebaabd9048e1a36276f4e2b6bd40c31b2ed488125c455123945f490a0a3b6e7c58eea0f3e3b463fe8fd3a5cee4200e13cf571f919a37df65399b3d7bf9dcd3fcff354b272b35320e262cf63a8279743e1ea9372f3afa5abfc75b8bafd2ac5cc56cb7575dd75f5adeeeaba4f88fa5ab2958cf9eb9a945af5f157e6afbeae8e93bffe976f153e8aa258ead70fc65f7ddc1e2fcf267cfa8451e33bbf34995dced0b9a1957cb7d49f2d6a7c71b5e98a51258b13af33295ebcb4de283558246f70d909f3ee93ccc7ef73a9f5fbfc0aba2832e4078b1a5dc0bce7db193b6986449161e3153af15b8e12fa33ebcf0d9c6864bae0da689828f1129193f6c50bce0eb3f3f453879632640e2851d8de1624eabc2993e40ed769a5270a8b2b44a49c3857f868e226061a23cb77e32fac86d34ee0e31b2f7bfcc64a1e8ff5982d477df8f3441df5d52d411c1e091f1d422961f25beaebc39f61e8794a51f1fb5caa78d54e3623dfa7dbf9b695f6fb6cbe78f719f728ae7a54a348ac3cbfb115c631c137ce4a52f08db9ba66bcf88dbd66bc1b3fa9e01b8791b96facc4684cacfcc64bed66341a5dbc1ba761b51d28ea22ed376ee2b8477355159a9131d4a4fdce568f2ab348a099ab0b8d9edfd9cbf393477318d9a35999d19cbcf89d9739ed513564667b34e7b71c66bf7313c5bb73dca35525dead8f8f2263a485f9adad348e477516158a76ed90f25b7bb97ef2a80ed3648f6a259a1799df7a99e2dd3aedd10e6814fac643edb76e3eea3aee51b4ea8824e2e4376a25e3dd288e47d1ace4a328d7a36fa8d77837fae451348c6ba3648fa2ca4751342b7b7ea3cb477dc5bbd1b44751b5479128dba3a8dba36f59c47ea3cd13ef46e31e4dab5c3445c6f8a2f13bb58af1ee14c7a369d6a323d094ebd1ae372468fae4513fefe02d6d31a80d93eff5aebed763f25eefc97bbd3876bea7eba9e8f5a07a46a391aa17d4f3e9cd71f33d5e6f47afd7c357df739c95822e307c7cbd55418ebdbdb8175aea9419e106aee72719078e3f84bcb972a38e98de8eaa195b68c6a8bab0f43ca9f749469fe427d527399a9424a7cb27b96fced62739d6d21693d4a0a02c415b827c41417eee0f1f1414c42528ed83828041631fe441beb6e9f820777d591fe4de36e7835ce846ec837c28e566cc073908ad0ff201bcb9f341be00385b3ec827a0f541be811c758ab9e9f920b138cab618444411448d9a38275660a0743c5458932c67c71b4826785e283fc31eca7196b608e5bc273d4f5e9e969e9efcdc1ffee9e9c95736b07f72d7c776e59fdcd790fd930b75fc930fd994fd531b1effa486ed9f1c63698b4f4c4c4c4c6ad49ec9f1595b64326b8b3d540aeda51c97b54529f78f72fc91fbd1d1d1d11b215fcac03067c868f11ef9a98918e8e0613b36cd88b579b71bf647571fe4418eafb4c5a05eafd7139362f53dc756da628fac2d1ef5dec9e89ddc29cd6fa80fef7486b5959dbd93fbb6ccd2bc930b87675befe4525860bc9383c0d2f64e7e5e31f34e8eabb44527b22b594fe444389e88a8e744444e4e44e4525e9e6847748388288888e88988c8574d5cea62e70c8b250bb3152fd16987ed45963cc625983cef769f88c78c3455aec2a0404244278a1d30155a69a2bcfb24bb32e59ffcc9f1585b7cd241368282b8248961862a8babccbb851fe4a7269ac0891816202c4654c97af7f0838282ae48f9a020ae0f722cd616837cde694618aa5d8869f381a6c447161c92618defb9d77192250c590d39586fcfcf2b2aa84c698b441a9c945ec8cf0df542bf3fbc9090d089363666347646c50bb9b00a9417f261153d2fe452515ec84190a579212b606d5108ec448567b5d5b3ac1fe5a823675dc8b2ac4bd579d66569b0984d62a95822160415cf12b17a069b5927d64f116c10abb28e93489e95c06a192cfbc4b23d76657bd0c96282c45892195caf00546401fbd2d5844e19a73150daba58a5d0cac3861912a6cb973c7356b05cd2d0a4a8c052e409ab478c10357132a228d9a55b953738aeaa6eb07e6a6204a5d51a923665ca23dbeb193195be07f5bd0f54b8aa50b1f33d777beeeb85757d4f2cc6f7c4847ccfa5c6467ccff1575bec3df9b9a5fea9cc1a2063563f9e3cf9b985ffe4c37f7a8af14fee4f567604f9a2c5451dac2eef1315ad7f722ca52d3e050505fd3efa20a50ff2f0414141eef329651fe4c2296e3e688a8b0f721ca52d060d9d60fc967a2777da43620716b6b1ac2aef16bed319175513166b6d47de3d7c2727277715efe4e4e4184a5b742222223a7a22222222f739189827f213acc813397ed2168984691a1b6fcc372f29f02425bdf8241f4080bcd1d132c383cb9b0496fc24c74eda6212ef858e5ec8857cfd42f34242ee705e48c90b396ed2168584474747625f42fec83193b678e4d516d9223c7ef5755d5717ae44beae2e45e657a1b5c59ad755c4eab4aeebbaae412bd5fab4aeebbaae422bd57ab4aeebbaaeebba7275fd911f395ed2168f562121212121c74adaa2d0d3db3f394ed2169fd6a0a0a0a0aea5772a62e49d1c23698b4ebd5eafd7ebf57abd9ee3236db147e4a7f2891c1b698b44eb59a546953422ac9c99b141b58b1b5b7049386546f2bcacd89517cf3ae66a8b6c91b6b86ebdfdefa791ffcbfffbb95013f3fbfb6de9f9df4fb7f8fdd2f2bb4fe6c9f63f07a1c5cfeaea7f4492ff93f0fbfdb0d9fff00ffd6159dba241b5c74b9977bb1320520359c4c8db921d6f96103067caca5ccca9f37bd2a2ca310e8ab1226fbfdfeff723c2e3838282821c13698b41bd9ed89412df73bcd5167b2ccbb22ccbb22ceb78485b64f5eabed53dced69b5f1d0b698b6b90b6f88be211f6518e81b4c5a8b583fb3ab81fe5a8d53bb8b043870ebe76f025dfc1c4f059c7c9b6c8aeab9f3fdc475beca0c12bec3538d66a8b1a9678fd50d00f0d0df9518efaf9900b8786723fe465e487240c69164378a8374435c40e0d0df950934b8c1b5ace7c391baa009812324580d419123744447b96f5d55d82e759c7596d91f5f5f48aeff5969c7dcf718fb6d89bf2a30425464249952555bf26f9fad5318fb6b84a6d57c5ff7cfd2579f23fc7586df1e7576d71c80ded77ef91dce891263c1292bb618fe43eab47faf1488e77b44524df7d069de23364c8902143143662640419a14287943743171d428c94e032a5cdbb5d1d383e839f5e7e757475aca32dae39da62860b6943fe82631c6df182aa6a14afaaaa90abaab2c8ab12544d42555d7548c5aa72ceabadaa1a552255759cfcf2aa4ed52754d55535ab8e99aaaa8faafa535575a77ab652975435ab3d5584caaa6a9c3475ca503941b259beaa9f6e60d0da8cc4c9a2866811044619b53d2256b4a92192e0717227ae0c9036396a1e155f576c77e2e0a1a1a631267143d3a488d652655996655996655996655996757ca32db23fda844a828a95132d5e386ed08192842dcd973135dc84547b9650193b43e746afc4f724b0a531c146c5ad0ad8dbeb39b6d1167b5f54562a6153a8ac5356a8755db720f9755d57b428bfaeab83f042e2571f8017b05f7d01236a2c7958889d1352b690d82ad20225a1a5820f2a535e3ca14271e7fd6931f33fc7566df137b47e7d9016e30739a6d116835c22e59427723ca32d1239fd909e1f722ca32d0e098965c1f2428e63b445a115465b54b372381c1afdf0e8877e6ea51ffe86fae1871f9e6136943f74d767fca1fb0db11fbaf0f8431c683f74a9b11c2b7ee827f2878e5fb4c5610d14ef739fae7a9f50134fa6cf87398a759f4349f93ebccfe7fbf97cbed5e720f87c3e5fcfe7537d3bdf980d11eff3f1e1143e3f7d465f90cfe7abcf4f9fcfe7f3d3e7f3330dc3073976d11683562a61611d8cd5c8d143d1ebf57abd5ecf718bb6d85bd7755dd7755dd7755dd77575cca22dae3fcd32205647925c5ab2fc7ebf9f1ef1bf9f8a383da8940802b7c7cafbfb395ed1167f5558d6cf6df46c16a5677db5f32ceb3e1a519e754ff1ec98559867c766249f75aca22db2c3146dd1176cf2e6838e51b4c56093fb9a9a9a9a9a9a78f9265f9316d1d4d4b43635f9ea7ed388235cacb44976b569f253134f3d66592786bc31eb5ad2d4c4c53735c9fa75757ca22dae4cc2bceaf8d816d5d5445b6c7203feebe7987f1d97688bef982a4df5b95c2ec873b9314d3ee793d3c65c2e2794cb95a1f1399fdc9e5c8ecd89c8f572b933273ec7cbe9c9e57cb9dc2f974353e57342393d399d53732372398606a415dc8c30397064dedc06d85c792203ca08204f72768e40594312e7a5f522d7838c8fb311275c7c79f74976c6c5192d3470ec38c2f5eeb319e20699881b73b6b2561079373672e58090f8128647903625726769dc6e94583307c931b7aebf8d947e853a53e3d7753d03e603a7b6a874c8d94ac39114639429c76600000000631700302818100b6659142549947b0f1400176d9e52624e1fc9e33c8f31658831c01042000000600000309834004052c4785a2281ddcd9d648cddfa072a69e1c4958ba3979118911bc5766cfd93a7a21da043039454ebb79d87a685404db044864146165f2d57497ce1578b421c7120366317a8bc85464753b8f7bf66dc96352b935591432e5821c61e355a85f603955c34edd8e151d1348d0a2e7fd16aaf4a0bdeb2897070989856fd680cf8a68c6411874415e5a7e75cfd4f77cb55cb36350fcfb21e47471e748e67643c481b0712e28776277e2d16e263f09a4bc9e86c68bd84bb77787b4372310a4cb110c506041a89f206f4475d287491189441ecdcebbca0708d119cf609d7686da32f690d847aaf55e5e804f89d087a0e7af1c7126cd785f5c44cca566e6dd81e002ce1f272ec47f597dc7fb7f4034ba928025c0bbbc797e995ce2c94dd27e8022703f8e22ea429d6d9b525f7c245a012c3c89a950182131df8da9044406b22f1a6ff4f2a789061330c0a7e2d3427818a4a2cf37d6e365a04483a7403d810ad04030542d3db89c1f089473b467ae661a3091c0fc7c0828b0db88b4029e643c39781386b57c62b814c465ea8c5dffef030d9c8c631c2364672ecc1e65e754c1bde3d0f4b5c2b5dbf306ec342c25548e35cc938b997916b4a900c2210232d3ad499d7bcd3d21cff60b71c948a10fd6d9dd29bda72ca0d0d2948da0cf3e4981a5bf537164c272a7059e309194186d1a31db59c05682fe4d6e223a4822b46bf274adc11ed233a68e19d88da917eae2f519e34fd47edbf063e868f4e61ebeffdf5d24061bbd854b0d49b5b20ed1fa53731ff454648429671fefb2fcd585ae73508c748400b409b18683407113fe91ac480e84d3af3ae37fd161aeb22f2e4f4cdf4f41895e1b63df7a9e2f2c229431c6ca58b8df1dac730b6ed51cf109461b854f2d3eeca52f3cb0a2f281c057e5d5ccd170079c3d350d79c7e34cffb40674e61ada0b19247561ffe55c05b97901de47d9893c6198b82788ad3005e74a9f97a4118d2542b585fb6c0ebf88285866757253e053edd91ef98ac7bbbd0b423592ca77472b965306838172fc594f2b299532fc9900229ad8842fcdd51c48b2f3b80445c9487888b83850016bd1898d6b9d7885f0ba4de9fec50e5035be70730a671c557a99dffa3cb800a4d58909d1917a085da123a7975e1057c20141a64cc6b601ba8c468c4e89e10494eb80303ee46226cdb080bd7bc1e5191efb01aed6a77924685ac6b21dbcf2db6fa30ce8012f253dce8fc038452d6c4cce57f3388b599e252861daa451d3a4f498d126ac7334e42fdf984cb15c5056603f049e72c8e944012524faf835432bc6d3f0bd93d41a44102c2fdad0b504b3a9cefb05a1dfbdba0f90eff32922daf0583fe8ed88cc3a821f7d523cd65d5ed29a55f295bffd7445f02cb6d7d7dbff5806f7331b62ab08753cf4ce51ce2f254d8960cc4763aa31d9e0208746f56826fddc0e0038c5f0d014d6c52ef8758b3d0510436df5bf2c8d518415cc84ed072aa549064874ca00ce6c9eaab04cf4d35c59d17a097bdc6bd4135dfc82360479ac80332ba4fa67ff528ad8b33cc298e6573151460b9102378b3656f6069d01b7577bce9ddf0062aff422371a62415a5a144eaaf1a5dacc8dfb28a90992b9210e8b9ef655e45ab5ef663b97da2ee3c3afe41df09ea78770427a2f4890ee195ff46d7a08bb8766b40f9fe77fd56523960378fcbe5ec7573dbb662ade1ba52a1d119030d1900bbf640d4b328aecf07aa2bf0c4ef6fef85609573a57818721dc49ef164f51db5caca628e8b0512ac4e0bd76b4055b7039da95e4eda632e6fd75b0dcbc5fc3924b914ef4ac511c59ccf79fde3793b7b80b26cc3824bce66b9dbdc895ffcbb244869865078974a97c20fc29aba9fdc5e97e00947c152b1b2890e3e5dd881e420e1757a18897d396726b5b121e0642ff6f4de2ca94fa781f200cad435412a2213458e76ad60f6a086f527942a72f921aba1852cfd17d0f082809bb5ec149b48401e735442682d35b95e99b08d4289e61f42f2fec0b9493a5347f036e56205d1a31fdcd50ba2ea3961ba0f8b56dd253225e61db054b5a069aecb5a50e3b86239cb0b5ddd2f08fdb71fe7b266892ee9de1c9ea72ea426e2c3a94ea4fcfd25c745d42a4aef90e03c14684b138746c5775f3d720c2c84f50f7d649472253250b811d67ac7609290fcf0ed672e9461443c322981c1373b084dac52ec02d25d9553912580265d6b8d2744846268cd50d0c15defce0fa8c448042ca4e8f20725a3fee702da7928768e662a15057928ba46e567c4136af46cd01d316fa57da69e84e281f70289afc76fa84316b2c5c0deab0b58bc215c0c4a12ce0e5b6641735c2e444f93fe352e6d95fe0e0ae1ec1a1d52ba22bd18ad84fa888d620b474c43282894738b66fbc2f8d20a54a9705037d4c6d2ad6d361fd66cc4a2bcb2f4af4244e2e1bc70a701ea47a5a68e7ac9fec049a1e689101cab837e772da7868d31785c4ba9ccfd6b46d79c107484e45773011e9d78f5cd828ac70a8869a5de1628ea4cf68088809528ccb80ab59bd8ce7b61e3e3ec2c2ec52214200c67428d9c774c210a0da0db0e1dc88ea8026947e7722fb9f7e582f6a3c391d33c1d54eeb5bb81dbf4e9b939680560ff4c47293c51856a78e5e073195d10fe7e1c1d168f016336ff5ce83a47540702bffeed21857a19011ae734ab307bb3a379d4d6e30d00836cb85860b4fe868adc58f051749e0ede2c45f8ee0493222854a7d5b04998704b3cccde233c56d559d2a7c9f58696075520fa75208e4507513917c0fe42fb7713d78877e6297a9e4f5c3cd3470f1aa1e25f49baca72c33788bb64e5378150014db8aa7cbd64064b602746b4dbe6914b09536c02224c1e77999019093f70ce61a2af65c484edf956ad52842688e5f6b2baac9f335318aa48bf7d2ccef4616c0388c8f0ed88daf5cd696b922b19228a5a0975c270a0f4c1282b0bab65e18fd6d3cae6a27d679eee4313c53fa3b02f7a168d72e58482ec80ca3aaddb9346313fce1f2bee88037887002897334544ad3f377416b8c5c9f43636a667bcd4c453ce2bb35e3363910c34c5e8fae2bce4b629fa65f23bb849bc1e715af793c26dc511a60de82058e9e377caea89bc4b5270612b313f19547e5562a30bd504f31e01553e6482d34ec0dd163c1ef9fe6be9e4c448916bd59b02c50db986a329cdde9dfad7dbf28f27ac020a54adf8f45887a61001d4a6871275f3db5a45dc6ea32aa240145318b528f445257de7be3b03f5bf38d7eeb07177cdfe40967c3f657d680c271b3e1448d69ed2c72667c5c5575c541973613121773b155cdc2b7793c7033be9b94f494c51acbb90c4008b861cf69d044e743566fe1f15517e6e0c9bca9f4db1200b5ce68d183b2b2bb6085e0a2a4ff86dcb30d7fdfc3af46d4f25ee022649cf53cb1e6558a766de7ea8e6c6156d09236c326c0141b75fc4fcde588d4e385e648ada04194bb042b9c8a065d35c6764baf7e428ade4ca455644aa3ad6d2e525141ea648fd62e8e2c7a8c4846c80a5f2d2df0378585edae4729914b50460e62a3248a7563b5a80ab00e76c811592c8d03cc8adfbb2cab6748e7254683485771722891d232d88d09fa2322ba8d4326b1d02280825d26e10099e7528168a48f06de90ee43c7ae28ea320cbf25443ef5310c57f9dff553344fc966d8d2282b318488f3ff1992a64d14ec53ddc8fffc86ec76d0aa24042b9fa48450fc4e39b52219270a6dc876c14a14ee44e55995af059042500b1fb528824b8ce213349fccea49c85a50c3debf4faa4dc0b4fb514d4c798929b3a60f40d938d949a6eb9cb470f2e758a6dc73af067906a5e9445fd7acd0dd6529550087c672051432a88a44a75b1b6b52271168df83b1d07f8580233852bea05329c8e38f81051a62484c04980707ba2d82e225d95f3888ba803105af682eff16318ebc780035444ef391e108f08078461a8b833b8a6ba7ebb23cc76d0198d991a1fc5230d4a4d00672003feae692d0fb3ae7d58d5acd402911aafdfff4b52ae57edd42e275383c6fe0935c46d49027651584b3698fa0b104162c6085c6011d1952a3deeb9425428fafd50b9c7f60bb41fb1f9a37f41457e9e41bf5087b19664948c4151e0baa3b502c775f826d266197c0c24c5a2f50df1a1864eadb6f301d3f58ad2f8c87844e1288eba31f7b10101abe00f129354ca3fd2be759bee4594a86ec3ee2c3b539408e836257a45ee43cb666d54fada07d1620fec6d008b3ddc2f23037dcb8ba072b55be0a596cd4c7d9442e50c6d58d1cff1e00184604d6f539e2adc82fe8f57797b89504ce7c1387ba4f1a869883510ec70ecf1f039734c3b30baa0892c1eff028da186e6977145b245a5c2a5824e00569c4beeca287888a70112d8172ac60e446cb6ebb49ed8d88d792b890cfb7eff29bbbd8b156c510e8641eec6d4a4a42be165402fd161920f9e670015090ca4aab9550fb16d0745768a13f111a9a21fc78ce809c83c6b1114d72064b87c10c871847ed96c60a2e0edb527afb94a00334d547cd100865aab9f60c72d9f1548f319f0e4327985297f0ac09a4338436e8571f3252772d379284b9b0b191e23444fa3a2abd4fde0fd3ba34d803dba513da7302e84c4663886433d61b4694693f4e1e6ca31882d1ad595cfa170230b00912683c7754ea23c974cd8d5c15b8f5bd98a2a20bb09f55cbbf3b1395e6b0b77f1a549c4a21f74179be9ea749a84d373fa08c0334305acc6ec695fd676947d7cea62b3088d21714cfb409ea4431924cf3798834af8a87e5f18c8c9b9a5da617d3989c9989054a222109884571f8a872bbb4511251acb0f4d01324245f1aef716c3170d3fb3e29fa2db3a0b5fec78ecc3b708c5f8a67c861dc8de7ea3a7b4bf5191d86fa4319e2ef4ce5e89a609df950d0c6e5c5a9de6ac82e27b2df41129b005806db254b19f430da89085468ef653c9350279e3e6485d7bf8466d2eca68affc67edd6f95ca364f4de12f19b0cc64cc1229137360e7bfb2529a1da816f5341f9af78bf1a27b9ce45be1678ea246425e4e6fbf9b012c7bf25c8acee253f7a6570411c06d4ac6a3c8ab4ccdf398805715d72ffb3fada5e154e9efe36a2615294abb38e305664ab997a24871000a301618eadf2031c9f6a7619086a5eeed32eea1d97b6236d8bdc18955ae1fc386415b6ef2033167e58e4ac85297a50d81d138651dedb00e56e131886612cc66302d532d09127599fed0b74969ed1cfa3ddb6e8fb76484867b16ed34c43d0de1416f3060acd1d7f0f92c10e3cbf5d8300752d373d5e9dff8e11700047e458b7a9914675991be85578a4d7b064ae2537607d136a03f8f7e902e0b5626d689c8ac5dad47ed79d65e14e16dd559ef8589afc386999e49b78bdb0479e1c49de62551e648443fa0e0e599d14138d7937b3ef50ceeb5977e17df223a512f3112541cb07ddd39921cbeb93437f98ba7e9ab72c128f5eda61c3edf93cb07268f9ce37a9f15615cefadb503f0649380acde0ef8f6258b79fe460e9c3a2af6c0073c6d5d736ce4a04d73106b454e0e809367de7d963e56700abd7d77f19fd120cb4cf0650a2e82426758bedbf312ab4d86b1a8a58090a552a1292c3e0c186171f9811b7d3ff98814922f42798609261fb0d4f063385978b6d65015ae0fa6bf1310ceac869eeca32732c1e635c70cf23a170e60a69f27835ba04e6eb24e6eae08d48e8c98b71692af6bd2c2bd7aa54293aa58846c5f12fcd43ea6a72d1f47d71419bd0a3a3eae99f6df25896073ee57f97ca280ba58684816343cb7560c0036bae3062c301e7e8b26afaa99f8bd889f7d4c844ec77e5f8cf6ba447d29469859a3bf9b177daf3a2effcbd46cc8ea4e4ac144b9033920b2c09f0fd87fe2ae70e4230b98d21478c4fbb119f1a216e4c1d6ed609ce15f6387b4f286abe2c1940d5405c1c1d8788c53b1e032075094890caf0f1b335921c6218e9d2a8348dfa0ff3ccf504fdb8051bcde992b91eb2671fc40c3350600abfea9c012ddb2e42750e75217643771c375fbc41ca74846b6f22d4d16afcda9cf1708d6d34e6f5d4493d0709f83b07dbc297f69a5e40bce08d2d3381a91a4dd2d462755656c175e21c1d71a040255b7ea5c5148d874e6f31b2e854561e14d491b8a63e07fe1b41dfa30592be6b6348f30dd392a139d0bb563583119c091b738e877d272b109c0e21a33696fe4d4b547e6925a9db005ea1062d16412997acbc96ce6118597ac5bae55c686ab39f1e3c940ef08810f4b526cab3fc174888400eed53478460f9ad324a5b6f7b619d14a30de045e35ab4813ff8c6a6e2875c609056066656303c0c22765d2449e16e75631ae3556ea24a55a3aeb97da77c19fdee0c75f3fbcd4dcfc82571149564007cc4c525ca42d746694a852583fa1919b55638dd9901d057509109d61bfc30c6016123f893af68bfe48190558a71562a7545f6692b8769209e550f40f7308fb1bc23fa9a761993625fb4d77112730b5815e52f5781c3b3d0b62754c7da4e8e48c2ba9b37b1c4843fc062319f39c8adc3144988246a5ddcbc171bbe4e1665012d6ad6023b0ce4b8d9a78f36313210fca8e961bfd9896389efb557e4dd7197bbe8ef89eb7ba4726748fc02ebef8ac7270b392d4abe27c429e4113218addf8209f8a93b1bdfa3f16d1e64dbe5b6aa75074ae4ff9e65c179a4f8bfbe241f86b58ea89fd61f6c01ffca1c2a13b5f1d5aeedf30e53370e9aa2c3b2ed4e58c303a84cc92b7334668eb4d9b1c6fff3f4d6293544088d64d6bf6e69f0ee414d3b2b4ab40c651392c2c35f9edd2d78ab5412e9013e985496b6eba9132848e75514d52e1450195876e561e36630e3227a2b48c1404b8c5de085fe097fb7933bcd353736c551520f5e8792c3f27425bacad99b7811acf1c264cf18844a5c6b6c12f67ecddb39e93ca44d2380888c6043090441c6809b7d7eb77bf7cd2e686e4dcf15a78b113e76b663a7893d44c5736233f72e868b43aed63da978c74b34e9a493ad68ea739a892d82696025d14e89c4db78971f81861db5b597d8ae18ca5c752848249364c7bf78bd0c2e124fc236c952898113fdde46e26682968f22b1322d098151231e480ce05547139e70ecdfb78bedeee5ca35c8e146494b90100e08ab425f8e3ae5e4a72dbb8fec3ecf499d4e62f4153da3814ed8477efdb05afc59725c810b8ca8d6db0237561802f44494a3c84ea2326bbe0bdf7855b2e7ec0529978710c2e1114f155960187124d7c46b4ed30088729580880c6a30bbd08233e75a1b155c9daddcb3acd38d630fa9d26b35e6f5b4050571ad205782a8e128e0675e8597a4b78e9b9306453b705f6c84f72b41bcb742cc7bfddc5b6fd80de67fc80b08052ef98501929d81727a5aadf85636d1efe7da27512369943093ec7acfe67c77827bb65d28581b6db901003e1ee3bf78d5a15577ae18f023f3c062a7e1b59ae12c38c45e0d3ca22bed728a4d1b8ac104c9d362aebc51031f7181de08b890d8016f545c91b8bc364257398c1f91934be6a07e24c81043555204f7137815046b1b07ae169cfe868a0140cf833dd6427ec429bb19d481307db39900497607bbfed16179da9c78adbe2164981f338922f1751b5684d871d70feb3b430b96c61ca0901c9ee65a24474a9efc7e7c46329c24ba970108c0c22035298fe960f11d238e0dd2487693282998082cf99e36e8ca155088d7582a9abf654964e7fa94e5819325a740df4b0aac2ba7409f2505d6a731c7908eaa8d1fc18db4c9fcc9b292a4e8a8be40b17586840f82815e9b5a5fc8025be330c694221c871cd1b11ef66205bcd6d5c00d85f15d683ca16158b2721f010767ce9904d33aed0ca460b862c91c7680632bc4e4f25a6a01401365021d0aafd4615f1a574b1aa68fb4b0188ef1a0956a1866ca5031c7198d243c47ec61b3119897964216ae80aafdb6a2c815e8021e8277cff26828c39a204e37639cff5bf81634228414396ed72cdff310947e0f013bf701e95f7c5a4b45119cf7d00afdceedee4a9758fce7398299677fcfdb7e2632f5779e7e3881723f1b45567ec2ad452f663448a35bf3d5caa833a8bc3e358dddfb4319ceb98b6e40da6555a3d0d3aaa7ed012289877ce112205e60fb49c427c175660d682143bfd4ea3577ce25a8533817f7019ecefeacd4a66eeb079a31eacc7af58c75b826d5d920afe1692a27c707993fb805bfb7bb5d210e5ba728586ca6fef4015715067b1a55812bc20f308800c0d56df5102728452a220d8ee5b06e8b040dbce4cc070b8f3211f520d115bf289790d21a690294d7d5cd2dd26f4fdda8c7dc0264a2f3ce04904be2c65b2045acdcae4cc009521bee951234e70a004685bfdb950720e42f9eb3bc5a928ea123a111929b3674dcd9c70f839a62501f3ec8dbfb7538aabe17609840de49db008397b9bc2894237ba6cdd81d66670ac5998054c548c91b4d8082ac9478322b7a6e152a58bc38c87dbe7f88d36b143d48938cc601138fe2331f3a232deead72a185301aebadb186d7c5daef175b665971bca90b73bc8f5cddd6f54d47e71f303c7c14d22e5c2fedcfa0f7a4974297f4e075ad83b0abe9610084da1ec65889587a15cd369504d4235d6abab5ab0c9951e50b21a0c5d18e010bab22644619282e95cc60ac6e1627eb424a5f5ef1fe780f7e0b15071cc51ac6c5b2aeb897ca9c9b2327ae7313c16f153f7d368b0db9d97540105101c30b86a95126ffdbbe807b6279b14f02770c951bcb63749f113c9c465d10b3e32c7f2794f646e9bad62ebbad18a91d178c332b2bdd118969aa6ab55344f00ffd44e47783abb56ea328554a810f55fb0d8a481a30f3922922cdbbcc356aae9a5d616aab8da321c80d297f9a17e1f81025885a207e5a228de20c2175b2aaedf66e904c6c2b0dd3da56d88752a18ed9fa47594cd70606273d322f0ac281eede80d7287854a4bdaf15f37dc99d5bf4f790d4ac7cdd2a2a79a2ace18b70c711a3223b6ca1db2061c7ae348f598c13e03f0a7de474b10d22d0949d1a393d21e2d5c096fcbb9ea621c72b47344b1d9ca47425a9d05bebd04f0b4ab882ee9207e0ad521ca82938f1089405c5a42c0e0809ea4e19952f4c0086e96647367a5a1ed4ddbfc379be3f94c8f4b49822f34097ae428312b90b9adbf709304c998875f77e44ac524565c04535e2feee70bda7894624b361e058f236b7ad327b684229efb2e5a11457cd4ad3599803cd4d64430dbc15b450a31242207efb384d32de8837c395b06f769139948a2784039a2c659afe7f100bde05a92f3f1cb08148198448a8e35872a9f000e911b98d582144d7c7866308a9880df7311915a582af06b06137b642c0338aa6d15c617d4c329237b8b6bb8d8fa64cb081d6b61853b05123192d91e1600ae6022c8139efb21517b46a32fd0806fe6f99a31c8b8e0beaa9bc25895912f2ba0768c9ef7598dab29440b4d69a0804bbb5732316afaefe8f1b2f77bfb95b9b4e0ffcc6b5367cffee887dc8b487d2d83704a1eb04652cc626cf79bc5e1806cf49a0488aae885d252c346f3a66f89608dac6e2c23242e09cb3d4781bcb4c54a9f3a6a85227efdb86944591721b76bd1f14ef2e2212040703cc84e5c9ce0818e73ca14204f117c763f21cb34e5d345175108413656279ae1dc477837d4e14e85e2fd13b3abfaee19f15390d9d10e61948db6035f278e24f2b1897465b1def2eb69a4fac41ab1c188604e2c8edc0ad1208fc513a03caaf4274a55ef76c6ac1cf5f537ecb84ea3aa880be5a211e2032231a0afbe8e410697dee9e95a37deeac0626ba4ee9f3f1af9dab9a46e63ff703daad0ce0fc0f3093d305624b8cf408b37e90128b2c00183d035d32852c1290cb9099b707ea99326e9e16628a2b447206e4a11c72ef8dec366c32e9ec2e180c9d6193a750cf97a94a1f4c09806f92250cbf1c0b1810809b24c734ba8639fc4dc772ebd6b0884b7bda0522644386e56997326be27f1b2418c39482ffbd75ff1cf79f7386456ebcd0b0e0e85f80a59e468e80ec94f26acf5dd0e775a789d61bc4fbd2049ab69412013d97741c4bb719d466f9fc1c0923ba07347e511dac67ac9a0468c0e55e0e84dd3828895d4c7ab8797482c2b7ecc5cb0a983b16fc184485539cff73e0ba337a6921a1cd5e33610b460936a24c03cc99502d1b27e006472208b638f8d03b885dcd0b69f0bcba7d90179f270f135a7a79e452fd2733dfa6a1c8e5fee8b0c1abad5b24e0cb488f9abf0e2067ef3807e133182bc5c4ed3b0719fb2d00318332d90848ad057cb4a6bd305e1440eab739c66c9ae0a7203f8f674b6afe83f7715f50504e5cd18a8cfa79e519e74ff485641f1f0614ca6441414f27bdb6b2db24d5e6b0f7ce155b67c5a156f3f4f58cafd9d376103d55d08c81711fe406c74b819896152667924c14041a8051a50e7aee24c84805092232a69833c13bd6ced6628826270704ba10e2e04f331aed37c19421fe183887371bd0bc85f1a4895344f6d51e882dd2ccc1f33affc7473f1a60d0ba6e8488d14a862ca79688f5923d1e36016b60b0da40d0632c98466b7653a13472f1e2e6aef18b96f4523a3cd2deefdde8f11319613041f618ec002f3a9bb59e7b6906e91a2717ff1db03d077721c96649b59ad6531ef1960bd7945e0412ea03e00e14e675c5b23d5cb868d1ac7019ce9d199306c0e8e305339a48f7c8380247e8f014eab7cb179bd49148400fe9edf5c6a98b3e829c396f45c0e9f9f94457ab522280ad13b3757d6296a24d27742b93984d2759dc9268586568a61224f2cd7746721364366f0e28f17192a333b6f785e21a334be8597189db4d945e526f5baef05e523f1b03ab92a4e9055669fa68ef2c959bf412f4d66d5371c4f9d8854eec252f622f15c01be943627fb077843c66260df12e4e0d75a5dd34d7a7e2582be7624db34296430ecc7521c5df82f927ef1a15a2de9744f6d7bf8a46080e12a9f1754754ce28101f7dd392f3c588929e88ab0d700f627741568de3aa1e64e7a4f27c6ba5362747c2ea84477413a34b0fab2514faaf02b1064f2e6f4f8396f783c9d6300b5d08866118cc1c5906f6224f824df8ed6242e4eb082d19c96e2d2b0bf7cdabb7673cc84ab780ddd4223bcfd3024e743ba0fdc2b42143ab3ad134386df356ecdba70a9766811a9d66b40f11d1df5e13c771cb6f63f565ffe4e064187406fe369636c1099a36176d767a1bbdca952b3ccc7b37b9145d3c97d739e598f48c69490e71ea683d380922987579a08ff91151307036030f05ebceae0c24d577c048f9c2b1643267f3ec3f9ea3207972fb91750b10338e1819b46c9405f3b87d2551082aab19975e2f8e0bc1f5b149f94fd8bcec0220b9335c2adcedc15cead9a312d7fd84c54d9b5b4cbd5bcd1738683638ad555e096461ba88ba743cdb32d373f468c1dbe3c2b10e4be38eecd6c6dce1c8752c67dbe2ae4fbbeb27778a61f81eeccb2324e0a474250202218aa297d893092cc24f32c0fad1f1768b162909d2d3472fedb705b10530fe4d8cc2860b96ff2883732044d789da31500a249ed0133db60d2ecfe03ae81ba982bbfea9bb4a84a164816f805a18f5b5fdbee6524efed914e3f3c3493eb1672d53aa016d5ddc9f6f1c1eff6fbbc637dc3eba40894428bb42824c4161256dd2165b3c66138ab4461fe062aaf00e72a7be7e72fd1ede37746e7989be525503dcc5611fa0bcd652b0f6670f848ca7125f5a62f3e63ff6a36279e5b84b61a3dc14bc6b348bc6712929d6b9d8d45e83cc7ffa44a3cb0e28e60e06ba47141da337360075c987a7f9589fef244e290eb81ca7a813e404d99673c1b9a7bb235bbe4f9e7a4c8eba4eeadb5aa1f99b148820e234c7368cbaf3d4b2628eee27eee147e6e281f918f306fdcf466f4f9c14c67417a1a11dcdbeef06fbd1f7c66be96ca68d9eb2e391cd10e06f2e023b39bb3fc61796748641699468009c376a4f1d6d6951e801d134bbfbe1bd690270502663a07d55a9461d77e03441d24962cc16df7765a6254b34d968bd382e33575c6678a7859af49d82e918b0e6c940c60d019297fa36e447465b956c11585ece5a8bc2908188c56ae3bccd07902039a8be8c128d3d1df507a7b17473715f05d0322f9f1a0eb5e689851125c6e302d495377e9f35187b96032c9a8fabeaac6c32ec415a605f2c2fe0aa83395bce46fc2db9a35b1e1cc38ca73136cac36834af8a51949399d1a2a0023601cc9952f81e305a3a0d6d68b8158be132af67852c43d2640ce7e12f0d53e8d3ac3c33419d475c5e1340cfdde748ab0a4940f8475135d8f8e0f666394f7d6365ee32281506dee8b90218be8a8a61fdd4822408f648ca7d5faba87257b3903fabd937a04a65c6341386b6b8aeda479d11c94f3dfbf83692940daac149ff5ab5aa8814056cdc38a4e15dc21262746f0a9d1fd6ec2684157ac8c3a30d4d78c9cd988b440b1772c8eb224f032740562bc4a0925d2990dee8594303d13ba89afff393055d88135fb7bd7f1b0971ba09609b2764e5de6c4e88311f9fa1e86ac89f032b861fdc8edb8695698d00de4d22d921c50e13802207c6754aa4cb2db1516c8d50b8f68d9c2deab651b18097526c7931c84f80f7c87091970697051d4acd3d0e632cc2203615912a9442cedf1d7288057b84916cbcbd54000cd4da48898115e78d97fc0091ba0351477064b4f79146a5528f5ddc2fa71c7c8bcff27d0602397152a186aa95f9c2a94a21d12c462e201fbacce48df6ee71612888aa421c63a3412fdd5a9fa7ea9c5f6bf4834957e638ee52ebfe77aa2833f3e3beda3e48f3dcb92a5f52d64f8994131abdf6281fd1445e9588a21a1a12d2c070d664a918ecfa898871c5fd3512f167601c297ac90d5cfb56f7fc2290e25aa0db5fc8f39a0716ced0f278d4d0c14710053e3ec01b076506029b983d2cd21b567c6228f6a10b3f5331718803bd03752444b656ea0bbefd9c6b50cea21b9a086c9618a32cce8edeba9b034f8a0703c7e724eacd9e37eeca5a712cc3c9dd281f54094ece8c314fb771fac8c401127139def12ae6525cc7fd1510171190fb2f1f2ed272f187d4a099461eb7e95e8250008a06c9caa097324f9f0879af3905bf56e6b2f8225ebd42b4c5fec03c558439011e2fbd8d90eaa852ac0fb7b3526a5a2b70f6482d2d84248d3b4a428f07320da0f06a787d9f9543fcb39132862340aa58891b6a9df9a3e67d024c212917482c9b3f73105756015fe1db3b00f25da19f71290bdc41754f7d6f434db328bac83930f3650c5c3f7b68c875e096ce5e07bea6f5d0140c53906adde9bf107aeacbd509b5eaa4c0588022a90789090979b0ed02a2f0d233d4b501440fea9ccbf9118f27ff2378474e433e7e36d5f8814457f4c4c76349ebaa1d98ff68a6b63f249617ba402362e54a845c421c5718616872829518775add101291b363c3cbed6e5fe537217c29b47cc5556dcc542c005346e807df22c4c84736b36535c577275f906629adf12b867eaf55d255422c3580e2c8eb68b11720c2ee1554013c012cd89660d502a31851076735b07209924a21465d985e7cd6f7be69eeae04c92bac199922c60106aefdb54155aed6033a19cb082ffe9c14e1f771a073b8fee0867165c47d071bb14555a249ad1bcc148a33baf7fc7f00a8854e5ae47ce4ed9ecfdd5bde6b4ecd654b290d2d43000c32942b4d4ea55d8d227d78fea8983d6d96a3cb78c51a2b4951b3d0f3af96e448c209c75a290a39d66ec9bc5f6d59b27e641a6d7a53506a21e22e9ac4c93dd34be0b4ac663a2537ff383f45941c11f233eb680efcf2ad5b75a35585db04e44f1a56af1ba8149ff86145f73c59dffb2672a5624f203a9392d1b3636f8a6cf392b096a481bf967e5cb40ecd78c51aa0ca76803343576c0d574177d19ac2cea0fcdb8d2651c95bd4b1b37eca402ecbc85f273e513ac87e4ab468532d76df8cae6f2e69db9a4b4ff24e06cdbc2249f9ddbb0cbd641e3904c046fc6e50590018d8fd412a7bf24f58ab46f00be0f69e1cb399c4fa21ce6965b82dd72a88ec59cfa3bcbf6bdbd788ab0f2753199c8f3ea09ddf1057a977a784f5583e428058ebde2f8a61744eebdf949343dd9bff736293c05968f567dd9342d17b4efc21195d754aa7ccc73f172380c14628e2acbf849ab6b220cf6032e63b9cc4de83e0cdc88d11a9c5699497b8bf6ddd4ad1ed185ba6184bc61b163150a8943c03ad0019a64d90fa1cd7cec56b7d0010a821946f1ce448ff57dca5d4e31e6b7760eeccde442e57746252e74a09986eae58d8fe1aa556d3521c3a569c9bada3b9ed9d55e86bf61647c739ce7d1db60f2b3195d0418731ca94b6d0352ac2761e8b80784dc6ada84c24555c7fe5964ff2ca4c678bf9c06ada4a9895a35f38ba2097fc8aa6b5ff0154a1c493284e950be3b27ec5f4291090981db7b1db38e2b88a032df91ffbbc2bc115942b699820d4a7bb7a54d53f7daa96bba89b60fd952e4b04ef3f6e08986d5b781b860b2dc981178772c212ec147e38c668f3873d1e6216e1e5cd865c264e9454e3518b7d8f4f8f50c2eab0e44f6c81497fc7c19405f03c9efc8c78a294e137f2f0c5c500b7699817fffdecb1b95d31865904aaae6e429e8d535d757b446fd98728e4785706f400beae13eea2c70be714308c8cef11152bb6f52299008da430fcb1caffa103cd0d739d8bfbcc19a64920287a15a4f3b22d79490f710bab4cc23ad19787eb1ffe5cf746d5d1afb5445757c965b5bc401e9351564fb572cb57e7e4fbce6cd4e2d53068e3b4acc0bc8aa8f2614e26e0285c974c60ae6c02b0fcdc9906aedf732df8d7f0881a68b1e2bdcfcb929d68f27ca35c0318d4bc841a394a2d56a0d30d51f0faf2bfcbde2f1469377d5f0a1bfe721e9478cf270009b847ab98d5c7108fccd9eaeddfdfc0708eb835b296f54dd8aad2a740f73d5fb178d5ed12f0c506f891e093cdcd6eb8281b8377be86a973182de122af192a74b06040fe9668f33c142c6b851f5d470d61ae71908ba01a66b5c4890acaba154181ad85cf0b0355ab515a7365d55f730af1362d4ff05dcea031cb31b4228063919fec68722604963f1283eb140613ffd2843e80d100993d214557288f966b29a06f3975d615ea90c5a0d97d7eb9329ccf56319ac254583deb6fab5c69705d93285ea50eb52e01a4ce0ae16e4e7178b06e8d1ea1b818d5490cf0ad50d52199f199058c35e530f158ca16a8584b800cba43761fd68c561c87d4baed33b62683bb68f565e53d4eda8aeafe87efe71af429036f6816e3c0cf59aa4183921448587377de84a6cbd37549850aeb227a82c1fefd628c84f6e8171630fa2765cd893b45fd3af0b92dbf8db632b64a5f09a0d1729243c8b3501e16c9e77fd5c35f519b95fdd04b2b48d42d463a10b82cec1f366b154a9fba5e8d40d89a8809fe2a86618ec23465ed614748db6722755aa184ed4d47aca11492544f4ba27f2f6baf70c4fdef1edaffcdc50be9e02b5ab21921ada84a2d740369a60b7291c3477b24c77fce162c7af455d7cbf9ab3a19c0b25d06488cae87506645a7b2b5911a3d643b87db4f1bed6540c4dd9ada6f1217b84f6a45beaa9cf0956333d0f722a2c0ed3e26d3538c36fbb35622688b900ea91ac7c8c4f568c862a916d53f5aa52d37013b91801d8e43176aba1c554ef0fdaa5e5bd9cb8f28132e303154d57f8dea255f875c9e30f6e5a2be4292eca89bb96292f6890c3536155dedd4d4e8e0cd90a87e2f37906815e4d98e41b4d0837515d8e2cf48e002be4fcb21ce5739b7ec0838258fadfee27c814a2383818d28633c8d9d43ceac9ae4dcf866cffb552c0b87283442161e1de34e2e2f2a512c51f93ea0e5e83256d66cfbb803965eddfd0f6248128fbc2ad6fcbb8ae0401f5722254371c350ef8548b662311be23ecfae66af9535c4f8669afec6699123963550e9402cc5ff2c958df9952b77d05e59420d8105ad8fc9c8e194d1ca0fe277dddc6908e30176a5b55d8d97648286b8016996216031a5ab3855d3895dc20dcdefd8d82bba3a4253517eca0de379a803844d3a30f8f8e3e22f23533d0d4b1cfae308d0afe46e115304597a32429c17d529a19c3b9f2d177ba5032a50ca6dc1aa900c0a1556f73ea727ee5cb8ca74620e5fbad534a191e2b740ec902e81a3886bf868884491304178e85b8c2ba451b9471ef8e04aa5a343872de0ba288d058415f819e41fcce5120cdfc36ebe0b6eabcb96ad8c3fcaf78f0a9083204c8740a2a5623fd71056c61f42976c2f4ba30658ab94ffe170f5055d7344afa6bb0cbfc3d1e23795ff42e93515e16a1a9b92e40366b5fe628f036b597df9924e94d36eeb1c30f01d3a85d3eec74e2c20085dccd6118682858188e80ecda2b360ff3bb928bb16e18bb1d21548dfe1d46bd34791fe089b7a2a32480e94639fad0b8836843d3cd123c5f4bbe57d196e3de1d6441b5b2ca768bf661112989114787ca49c67c4edaa2980a15c3b66682fa312137e222004725922eda4356bf605e7cf55f522d0fd50ddc6fed334c3bde208d50efdefa612411172a560b13d7c194780fee9d675108a43dc0e04c29ff3890e4274a096d3fb82feca9565d7c29f91a529fd0ac0601379e336802b39c1d1a9db48f9a17d8335142567030e164108137094622fb7d7085763bf9e65396ba215080427523c0025e68b588b3621d178b8198138c5f8f81b3970461b9ab7e25e48656415f786be45287327fbb44d8c7c46ec1fd131394d08d7b1a14a0abd221b3984769b6d661ced86e514e25d5f8972c56633ed78be01b368e8ff7ffa0b2a8a8faa4e71067e65cb92046e536ccdb94118648567ca8c05e5fbe9c447f9dc95a77e79129b385cc5a4845fa02e6c5cd6a6329b0f319849e343e373035dcf98f68bf7b419e53d3d1d95874a5ebd831b97f8c60dbbc112f2dde4e8edbf0494c461e218da9b9cf9a836d9a442e9b06a14fe8af921bcb14165928c077d165d25794201c5b0f6942a8bd206788825b406d281b9dc3a4a1f4982b446695a19bbfb4c03968dcbf1ecd7bce99141b5bb9815205433d717b9f1869925ac15eb85067396654743f7e21f1b2838a6f3a9b17d88dfbf165a55a7c5eb6736d14d721d551ff88b512e0830702da51d1276190e3b9cea31bdd0ca4d96fe07f6db23436193ee8394f5612fed445907e488944b3d6a20481ba8bd454964a5e8f60377b965da4a35c71a4acd7f417f749dbdf2000ae035445b6b90200351a53d631aa81804495618721ab4384012cf92e1fa2d22744f0c01df67f16467230960069acfdf28ee009651fed6bb4d9409656a7042c928f73004b63dd68c32cdab457535d5ef6f7647b2315471208d06e8e219ae37d893cb4c1a2c098b674d0a14674c9df368afd2eec66e19c60d3878083f7b86059e07d80ef5237d046eed28b1509c48b8f8da22d190b7ab2cd70a220634ba6a5f576864a3fe2cc66e5b6fef3781b705ab6d43f6a8ec458ed047d9d450110d85b788017e6c79b8d95543fdc15ebbc932296c4819b0f57f37e65307abd2d3953f84257c7c92350a6922969b45daaaf65ecdf9fdf0a4a5d9d748b49782f4e35f39852e40824bcb1943d2676d5b7f58820142650bbe4638ad8907d2aa4ea1c7aaf5f05c18f8f5e1926c565572b5f3f6fa137a66a653000ba34f837064e198eea3a2f86b221297fdf8007704278700943cef934cf1937e18182843781f12ff9a92037e27409502570243e4f957c94308a798c4467a9a887642498783b530ea2837c8209ace55094df7ddc40b5780b580edff79fffca01954f155146a527623e84360c84cb214947ef01123f112feb1111c30376e612734dfded1a12f20ef9445febb125c9aa7159739899439fb53dff13631d833a6dd3313e3ea340241feafebce599a74b7bac8b905519e4db7ad428e22e07ce14a6566879bfdde14fc8c023aa25d296c16f836854ae76d2025a4aa6a0d75274c66584d4f20e62afd286988f0780f875691059941460f1934e86f225400d284014a687714a6a398e46c4252630286940e309e6e029c7c851c1c0b500e39db176ff8c647b5bfc4c2b598052a21bae42cf369f9027deef067f0791a79a800caf24fb60e90746682ffb5fea0e7675c8061e0df8eade261dc54288e30c1d839ac41e2403f7d58250102e4dc20f7d3f3e081731a605349db99a148c08301443a1b9dab00df929faace7648c49c34e40c30675cf423a3b1deac930ba2caa632beb8d7888e912fcc62d02ff06fad18078176f3c9805602cf5d812daea0cee932140139093ad377ea59124b08a202a88d6f71346849b1c5a688470a021f73a8d0a0759e36b4226709b5ed8b8b0e8874319ff0c55869747b3d02f9d7c9c7cf22c8b984cfe764fcab88150a3191c3dc63475b3ba0c52667733b828f0e200df7a1eba03780490133fa85f72f3a24b38f32054a4f405c9f98be6533dbe57a24858c3d4ea413fa354e8f80a8871802957156891c30e92cc894e20bb9b01081d917d8a3b9c1fcc97fe45b7a44e870a711a1bc7034f5e638780274a309ef3fa1778e81ac1338570e582c8b9e951ca3c27a912e5c3119610dfe0e134791c0356d20fe00e283809e6dce17619ad70181f790d2a3c1c09bd70e072c452422fd447f935e8e5a959690154ba33960d33a224bf2a9730c2c6067723177df1df158f7cd2908ce8321c55d9fe2b61ff05d09afa4ae9ff0079e19441b306e1a4f28385d2c80a4d471c23f044dc6331096d556de17f77d409aeaf562221ee5fb8271e4e63c5367757d1c62231a5fdec90ea8e57b00e5756229c178a372c43da464908f412a692eaeabae0141126c0e9406cfcc1066491abdc1eb8eb01f0df890ef1c00540f1e3759ed88f3fe38bfee8d79a4b7cf46e54e6c694590a5eb333acbedc844c2c428d66aacb833bc3dedaee489f0becafa7881cbcdd94fcda74d9e87cd8e7fa6f0d80ae562e61657865dc83d16e93f8bd76d1438a01c712280716149808abeedf2cb60ec870e6fbacab58061000394b9044176f418ce20c304a30cb62fae6ea7eab48809c448acddc056852552bf9cba8eb954f5514f485267826456c4730ab0b5609df5823b38ca6a2149552b0e2cc0baf3df7409ec34b628431c3e813dd35c5e6a2614734b315a43b2d8667ada0b0fa52798c20ad4718e1917e2db1996b370f6b55da96052954a8b800ac5aa4b08de31c1dddfa5532a624b148868c1aba3681f6868ec041281c1469971839b73cb3f8714222a5823384b77ea96e80ef7f9e2389a63d399e0d1e9a6b562cea00a759d0e6d6ee334d974441028540342246c152314becc6d2db46179c7344959080370b1a9ac7b84f26df9366f6fd6c78115069ea7f8c709e7bba42d0fcbd59f9d0497ce85662fb11582c4e4b2ca81e4448965ee52b70789c200c50af893d48f4993faa3beb09d57508966c9fc07a09ed5602f14e196822877495b7e67807182dfc8d9d7faa2337f6e61a28ec3b1c5e25b949ab71641eb3532f6be2fbcc48605ad9e40d01a47011c8ec77093ee3102f7d5e9c48c699c397c20fc3838e6adff52951273139cf1f38bfa1d46e077cb2160e5f6a218f57b2e4d9c863344d6226dd446c129b47e1d0eeb64cf0f7a2974dd54fe264259fa239465ac944acc314cdee711fcbe8b31f18389031acfb8f9bfcd999dc761b347fb9a384a262ea4805a6415cb78d04239fb605113087bb45112118c6fd071b3ab90d5bb03e681e262ac03e7979f78afea415bc441827a002f5f1f0d71b03c402ba0043f54975ea2b70b6e48a0ab84dd0a424b53e4280e9674167ad78b1a7579a00400c66909f80277629777129005ce8097bcfc9c8430f049ccffd91448801949b225f3ae824138a74d53c6479cb4bdb30b534a9f723610799bb9652d4974a943dec489097a9c04afe0c0230aba12404e23c15764bad1dd9da6f1964bd165b4499ea2235ea7494b2ca1363b553d7e97f896728e953ea96739deefcb070f62c5624dba22cc6a5554f9e1abb402c341c3aa15903909d24a71cdc403510ee036c2be9f35b30f3d2568b4b5c449c2f40d9aa5ef4c5c40cec152cca42fa13a48bed5065b9c69d447e7dde73f41153080c6fda9ac6b627dfa002339f93ea337a397d1c3e9c1e865f4327a2df4207a2f7d5d59fc825ee5d7fdf011e823ffdf1fffa7d89109257d9eef706b88c489747e9c0081d339a4e35442cb951acce5e0270f7cfae8e74eda3aead704a7b51a181d2a6ffe3562a7b4bb2f71a6e2756842a4b2898c6fc6636d07619e63504241979fe5e6e8c87eb6bec2ad40ed0e1407a9ab61e386176f64073db528e007c2014564ae9824c3e8cf55990a93ae474d73e4671edf3d67922ecc236f4d3db5ff7335ce39f3ce6d88f1a07ee91afd57c01bf6fef27cc98e6b148879837ba951a30ca049e6646906c584eeb7b285c1e9f35bb75396ec222ab879d8af3028f435903826fdb6ec32c61c37c27439ba4b9008d4a91d5dec261e8e5c66c79ddcec40b2a2330dc635f4ce2b7a23b944e3e13b597ca11f2bfdb9b8592e316ba52c74131bc38d7ec7d724ec0a698b248244611903121883216f0007cb9373fc590a7378d3ee9227358b065dea7dc44a94e6cd5d87614109bcd015981037023d6a35de7b8711031cb53aeebd83172be4b9c0510f32de1dfc44607550ff78dedaeab433ce6e7b30ad7b0683f3991595c13861fe1be363b68d785c8c07a53b7bb15994dec5cfe3880cb9de3b16c38f051561adf1969ca4054378b9b7a828b0b44c41be65a779a50b754006387b3c9217f6b0d11716a6039ea5633bf7fe7e7983b872c84661ca19ed4aa45a86481b40bce8c8eb6a19309aa1492e09748880f936be52271dbbc62192d48f1382d7ab8c28f20fb9f0ed3e2dcfdd24d84fa832d459f1f6a64569326ff1695c28f5dc7e55bce2fd5efe5237b7dfd2b0fcdac7b49b6c6fc3e48d82d9b0654d3db551c7fbe1eeb0fc32cddd1a746756fcf915237c44fdb2e3c6d37ee9e4694ac07da5364f3b12368dc9e6588dfb7201392380e0730356eaa9b12940003a247b099d461adfb4d766e247be9b49487a1d354d023e71ba5e5f8c58d6e02958a3a104cdb25027c64a78101e2e4fe51fd570515973f526d4379c26d21bb810eb5bfbe78a7d51f92df918cdc62297b54567aeb784d4ab47d2c5c923e82afc6f8d3bde97f20373d18a1f53d1b65862295189b757753e880ed2affe91d327fa69ed5f507fba835011c2a6ebc6188a47ff540b31d7153d63263367afeff747ced67161157056c73ffa8673fb3f4a8defd0e466b6090a40580a2a1c611bc7714da4ab251874f44bca1226b923deca14a1d90e98ef44eff2e6983056a260c8002b81a0e60a3db6e2437924feac15703da0945d5ec0797dd3a048166669200bb8599286aa14c6fa94e47379e4189c29bee5a19f0a2935a4b9ca5b9340b3142a0723a10679b3f4ce8153b2bc4c5530f48d37502defc9b874df83d972131df97471fbb30ad636d7988fce1f0ac0636b086079fe04d4876f86a6424ed94a5e906e3fc936366dfbef58f1b320dbe6bdcfd4cf9751f0739bc455df30dc996368c46a5e0c04dbb5aa61b8d29cee707f9ee07407b8d007ea65f57d96976f0669799dccf2e86b0587c684f271922f9218e6e170002738be76c2b728caa1d7c7ccaf632e9bacd18fee0076e0a397a6d8367719c051ad3c58ffa8c7d2450037e8b762d1ae962f75779bdd59bb3d283caf0943c75a6a850cc361e5a24b073bd59f47296681807f2be73010ff7ba048f3dfad57acc11ce61ad84c58515ceb73b038ab1cdbccd39343467875515090acc707d781d3bcff42eb8d9e64374b5fcd27c0ead7be509e29cfe92b69a83bdbbe2dc2fccf4039fff18ae70f03673e014717c5b4aae6bf775e23635e107a3959d059bf39bf941c6ccac7bd58b082787d4030aed046d61281ce6b48e544c81dc09ded9684dbacf00d02c1cf3b6e289f11e4af7ea6a06c2df912191f2134c81cbe5ba7a3bd9db0f602bca93124bdf95c077428f2176b6ac21c736451ee483c5a18017e6f38f12b0e3cfb4ff3512eba5964ccb8bf37376648055df8c2ce220d332058975bdefd05d1888b01f6214ad56955c2631b96d6dd3285abc3e78904acc0957160f394834f3611199d2d6975128b5a623d19c0dc0e6a95a066eb5d0a04bcd1b58558eaa5cf88e62596af89b46ba11a7ec6663099d13e8965881ce3ba612569166127d503d2988c44468fcad748ad971b111dc9a2d81851df3836d1e2e9af601af7f65428a0fc0501b58c0454874c1a1d6b583edcfdebcf7790818c3eea5eaaa37750009218698b2cb7d20c1901d12523fbe88e8ba84c3b0884febc969e74c41f5d18a2bc8ce1444b6b8cbc60f039b8989271eb747a4429e5b60e5bf12d2e85ec1a272499ce780b352ecac6a6b57aa7f97c7404866c87e0c47010673dbe0f84d56be5b5e6088933410e0d8cd19d69de1d65362df77579050081059899dec2c1a901fbe81050408fdec2200258bb11c620209c6d4cd14e736bb5f298e031090263e783b7c0fac8ac8f0a707fa6c789bb61edce8ea81d072d738a08ae3d3a2a056300aa3da2c95f41d4f068c2700a0115ac7a365a472ebc3fff49929fa02fc337da356332c6ca51ca8e20006b17fe64d30199379a98342db8502c5c5c81f14798fc44eefdfcb1599c80d5e99cba9c5312693d0605b7748a8df63a2017c52c402631f1b2c246fa8906cb6a38311477dd340ee9f44e4f47827f5d30dea78cd2fe02a2fb36cbf9cf03142f051a2fa7b4c6c04c4aa3c631432f6969ebc1dd06dc3fe71309ec1f091e74a97b92764724d9536042cf5924533ec97e5ed6782e65b34a252b72b9b0e73264afdf6b550e4303bf44da8e4109ffd350067a1f803e8502d0d1be1e38a0b321ff99944a073c765fdb07396f7541d82b16950e1bff925d0e389a52a77a51f11758ea36064acd5d1c428a23b5244061a5b6b5f821cd7937951e16957833c79e562bb37edd7d73a3900e322fd547fa92aa1d0d468bc378d3c740e418058142be5fa3ca28c25381e8944fc5d879eae4843bd51d423f3c10d0c18c9c9cfb4930dd3c43619b6ef7b016f456788e10d140bdc82f7d9913be5fee740b6b60d26a7ff28c7475f485a2d81404fbfbe47cd2f3d8d361f4d36c982850ba00f19ecf212d70ba4368f49f2e35ff26434aafc32308a684dfa113b76d2b648a29e59cbfa053d0eafbede2df7496a98e87f06c0d49ff141a74a29509562b3f07c48c430ea9de4dafd61bbce1f2589c1cbddb4087a11a5ef0589e719fc3fca578c94cf309020bf616746833364bb71b897c8bd8820f6e181db68c0815dd4ff30f819d14b440a7feb14f19de4f84fb9fbdde5f006071b6aa55a33f1f629689231463a89df4e91ea0c5793c5f8cb78c00c075fcc9f795c8477f7c7c4510fed830abc3be3324c1501fe41b07a00659d4729f4a83ad6d35104dac96a034ee083712176f70f7cfdc83789d12533a7304f5745273f33623f9627197d44e92c9480d27be84a911f2264d372ddd69fd27ccc4a1a27570aef862169885b65805b89fa07b4392448d08cb0de28faf0823c1dfa2e38abdd75f2c5ae386424fdc3edf4d899b5966a1a9e89f09546d3701a18a2b92f9e447ad5e712918644bc75087b971f5dd9f04126109553343c573f839115e08088c2a6b762674586038c7614cebcd3ac6c409d1d1b80c78b91f1dec22273284a7868745387515b561a22c9e0e847528ca25578bd350140d7a9e6f520b45390a409d78e7187b3e1b836694cde91cc4232a8a8829861a8ead4803d5f367bf3043ff8cb2bc9fbb756384b1846e2ab80c01cea95191c54d8de3f7cbdb9b1b41b4eddeb5d8183f5b6e6d53dbac0e51447c0fbad143e09f79020e9118229ef984cfcef404df0481a6141c70556ead7bb8bee6c758a21186f10df6b89b4130dc49edb604fb28455bc1f6e8d0562640f97b696d6c150a63d489f35ab5ce1891c39ead76702d1436ead201b25595e25a68364d44384df910dc3614317532327a10f97b30f6e35a2ef32999bdf6d5325e88697931097304c22778a1cd394f0b3bd5343692b14af45db8f71837933e4d996882106598ca7680281ee07b9db9ed08fe71d2964016931f826d3e63d6f6d58c8781464731806d44643b1123fc5f6ed83ad705c5132d02394043288876cad13d43f4b1f5b94a67ffcea72da2282542d6234e6d9ea8091374a013ce7232e990eb7d0e14515be44d6ec868ae4dfa7f9c46da8c08c7f96ba04e1f03e8352bc48827c92036d3b121062e0fdcd555350a62bbac68b7694cc53600704aa81618bd03bdc07522aede68433ed38a33cee0468c76737c8e638d966d05fc2d03447e8b60c0f33fa5cd864b4a74eb0d79aac12564681d0d165480d0fae6950dd0f975fdeb1801f7250744e372e2d1622dc516d711a44526962a078254b663a49fe0aa29d9f61eca2ed3b224b3c4f47a338f78d0204d6c10ee95aed209ea5595e2b3cef22b5fee8b63d36571775b7b2c51294ae4eaeff85325438eb9b2715ebf305a92e068dd3e16c177bc40338d2e92218938e6b767e3421a4041ce0b4e1787a6b41d35c62c35d96ff9b1f524928ddf3cb66076461464e4bf304587c273315d1cb32064fc83c47125ea523e86dc3b383b0c2309bd950a00f28b2f559f31eeb1d4b92e05cc1cb218b0b5d590ec12e300b7d97553fec08a661648361eac669f24013fc5e2336093dcef88c59d6e51a00af671c8f794486490564cb6172bab0408e227c00eba63642179cdcf3802acbaa3b2dbac161c4bd50e44da959774f89d8c03c0f75a9e8175947ec5f9abc926fd8432869cddc1f89707c5508035395f0005298f4ff7e5e0a0cdf3c40712730fc6fdb200a989b863239d000024fb098504f0259b015b75c68b8872cda3bc5b85a92f61b6580fb96a77dd534839db0a32a9f59fd5cb3ff001823795a37dd1bec6606f4c0ac0506aae9b881105c4a3fd47cfdafb55de7b8def645d343a235e6356c8e74154517c712625c4e4d2d595abb72ccb9eade4d3e9c74a52a437ac00bb70bbe2106a40f0107e28a29f202ba80bc32b37a46bef5b630a7a281d2a230474065d34c77217f299ac75bbda25117a40f05f4c2ab019209497bbd999e1868cec6675d01145ddec801ff96c16e68e0acfd85e8b4c5304cd69e490f83229f23c31a5df258cf21ccad3f0f4428de95843274c64a8486e30525a21ce31d0fe65fed8e0da01c23bca7b9dfd860fd94129479a3e6c208b50f086d1058d62f82c42779f776a05f07d10288b800816eecdea5675c1727c0b5f2b580b0d261ac22ab95d989c3b307f37bc0300fc72c6af4dacb28b49ad23d6230f2f46189d81820c9ffae0883b8a1e64491589528c2bf58363d0b59e49d6b55ca5bfcd068d8506bd2fc58b24378806c60c02a4a52a9f45e253e0358ad10993b759dd50891f30e4c09f83621ec3a8ad1a631bcfed941f3915acca674a29a0ada1ef75b810846c3f0b954616d43f267929871cfe147ae562d2b8d5f0cadd1319ae621b0fe76b5a3d7fc23caba25a116541f00b712c4b8c681a02959737527fcf3c50629292b71a9beddb1b68230531b4f3432a16862c6c45424effaccbe27c8ea7137c63288947283bcb97b5cc683b6a89fe98100bc9b5aed5e8b4434cd2321f95cb97a418b6faa885548c88b68f3a355a0b0e5e035f2b70e785149b503a91909dc7c8ce26446713aaf308e6738297e04d0bf0a68d280e0544c6ed13663d274b5afcf847cd2b70a485b9a2d70270528aaeaf10551fb87bd6c030422286b950ab9160054231e5cc8d994cd2c6b5aee8963048458493a187345b39b21607e1f25b20b71b53eb3e3a59030fad839717a23842ea5c509dc9a84f39910756676443215ec71e4aa5966af1c5542b5e84db7292b5edfa0f13ffa21e2e98be239791365b91595968dc7eb101d6701b6ca8999127ec61ca446e90d90d80e086edd2f8c69a7727a3ebe043c49a4d4cb47b1c229474829a15656a3990708a99d604950540100f733f343b47438e5cf8455be9db72c2346bdb408418890e5e6a4efc14bc8cf0c23ca0c7e37ecdaf61419affd76e9a737c0e4e821871612cfe5fc933bb086eaa7dac5fb0daee1818729e2292c2ff0314d272656ebc63de788259915360b98e2838fee6e14cb3acd64c310f07e2cc1dbee1506e9a31c3999beb5d193200c3ae5fc35f629aff1655ae285d70422b04972ec13f5ca0452ee39276b8c845d162b9e8bb8207336b9b8b4cf04197308f56bac80c4e7569307b5d528edca229d79f2f069ac08f943404f5e8232d7422efb33c8704c400949bd3dffe71b4826106e82ba23fd750ef04f6f9484753c0a51d4f172f3bf3266668984d8e6c948f4876b49e1c9a789cc65e491846cd47d0869be7f4612b8f5ebffb7c2c1e09f6021bef8aee4fb0034a016aec683dc9945d7439c0e5b4c23f91b0664b8e25d52c3d3bf02afe69190b51b101638e31aa2f1e9e145ae58578017853ab31615f462689d4e42ec3b84695d8384f7a02d6e40a96cfa1b955bcf6354fde8f85f460b125d01f8f823d50a6d7e46214fbcf6c00fdcdccaa00a4f0b16dfd8a4649032c6eff3c9298f8208802bbc9491063c59c9f36a8fd2105a09b9c411e336f88ac65dce4cc1db872fac7badce4debfc8ca3f403eb9c750ce9ab56e413719dcaf390fc12a2803c7c905366ebc11439d393005b526ab78db18c8c4c969219c7c64a40e171a333d0e8ccaac42b0634e27a73b6f527072eefb1914083a39937abc58e97f86c5f38a4647e19aaef607898615de6295f8e347bd375f8877722e0215c50e179217d1d15698e7c25392505ac9570456efe4f4db3f01c0f4f18a3bb9420ecd0f50fdc46c562989251f8845ec5746ab544a91cf6215fba4464649e9624205100b75fd73b1dbfcf13b1dd4288e40b7494ac8e602669dc5c299fe276a8e037e4fb2781bf79a9bc0da83bae2c925256baf066c93ecc6c5684919cc921906045c4f8eff56db00c1c3deaaaabdd7d98a42635b9f535f3678d66b868cb9a6abe10cc1006ef2a1bef642bd2f1657fe286694faeeb8f68b45bc7fe6aff00a40056217d96174855f015ad4ff1d86fbfa55a42addfd7954d1ce975f71061a632caef915f068fdef68f7a7f1d8c4d9af70cce28e34cbdc3e8edcfd205e5d79eedcdc809948212f48dc6d8bfb5d2384951a19a51de66fe2d8f571a70bfddb128f42dccd9a8d4e9c312d522bc41ce2afe05c5c3fd697d7c2c9276bf0a1eef4c195f214e9138e73943e3cd74b4546d40474fc1f13451d96b4cf0e28e064f1256c21b3cc5660896ddce7e97d42c29c8fbb7592a508ad693860d2f3dfe391c832c970179024e0a9b1d9f80222d48369380ebb42171f979f31b04185d4fcb76938ff0495cbbf292045d1ba2632faac073715f4eccfb4be1e3e17332086ecc506a5a1be257fb980ee73e94ab9f4a52a355fea905e1f2989dee5e42b735e7ca980b9e524bdf751276e7bc9100cd31dfa89cb44dbcc7b9449c6084aa3c7462ba9f0ad03a202a0a743c2ae95451c4d9585e0da10fea6697d27c548881ac8a4773d30b738e3a386533d2a2227d520de05eaf974c890ba75a32b585b6b47047146aa51025409207dbc6cad40be322b056ab15ea051f1a7b1fe3cec80b64df71d53eaee23e206154c0b29417977308b23d34ea2f60cf2a499798e5e82cb8565e095aa2b8c1001fa883530071e442d3892e85d0d0ef9a751db65dbb1edb259f7a5839c3adadb79d4aa8011ec9536bc45a754c0616232aebdda5284b8573f060cf849444bec8c25b8574501dc06a5fbea2fc1afcc26aedb10c1626d0eb40e5a9998dedef8e13e3f4046ff44a90753a663d7777fa3e8fece8d8c0623070f8d3b82457ccf2180c07f6507db514d02987446979242e257f7e4e30e97b0bad3c9fe74fc0d6615e144cc2353dc25d95c2dde85076ee3858a54f7f9ba5bc0bd5010f791db4c42d7448f4e7f86e400308ac5f60477298c58da28fc16bdd10601819e32e3806efd84d3ff9d168ffcf0b4a08b17d09683fba4f56d8132900dbaa67e344e3c015b6503c5f6e6fbac6f5da82e3e9a75d88e3b9129f7eacf6cd187215ef78a4840ae06a1d3f646837e258cbe6c3063dfb4f87bd1f8f478eea585c590f9e7a276123aaee164ee0477acf013e0d830a3491d7068320e81716e1b5757bc7803e49faa2854c89f112b30114e1e73cd5ab3e6a1ccbba24f1ed81f57e77de06de4d116a41df607fdd65b3c73b6215a5dd25c69c7c49fde1fb2a3e22012f03fdc817d90c5a0412d5d18cad5544224ad1becc21ce06fa1741d17f6f386187e9b51b4ede85be26e217b43f8dfd0ee7e31803cef5959cb615bc24e41689259e07be2cee67cba1a28c97e418c44600ba1554b822d0be6e3d6950a2dc2f17645365ab066f000d4006d3b3252230a8078e6ae4fa253ff32f8d4506db108bf311f9cc8c13fd775bdb8218c16981ef54294f7c0f0e14fd5287fcf855216ec8707f2be955bf080dd2a2c7074fe0b9aadb09aab8644879ab2867c404d40f0c8eed117267023c19d4f74ec33c1e37bbecb5886e621c3be8f5925e7ab3ce943bbab3633ddb039d2f9d508d7a463569402b8d2a75043c0802dbb91bf01653e857e7a60b6fa8bc911d20a55fc601dd3889946bddb470559d13026d2b641188d9d84284c9344bc58979f5e1b03fa61314e20c1cdca43b1cf67fd2f0da8b5ef568f66c05d9a36adfb52be88a8774c38c60dfcc97abd8cdbbaf6017b868019ff53b42703ec232abf4543f6186eeb10e8e89bd4d9bb62eec41d44f513689c45e3fa8f30490c4a9d343f3120327a40d7996f29245abedb5a0d7fa010f53c3c8d969defd8c5835a451bc772ef35332c5c5f683e265cd60367e09673cc5fc97fcc3e062d5ec45da1af783c1fc9e28e07a0ac9f1dd2197abbc818175508b13bc8d0214a3906d08d2a28afb6ecd725b421878000bbc244e44306c9da2c7de40bf897c51ea03d0ab33eb80ed6dd3cdbafe6eb35c421b5f2d0f7894c925365164ad274b59b24c3b2d014e447494ec1161e89d76c2adeeb5bb3e44e55065c81bb8d3fde626dfbee59594c99add1603d76a4e4d86a2fba494c46aef1e2ac1964b786e8d1c5d39527c8200c44a5b0e5fabe7833480255e1f48c336053c4f9bfd604782ef1bd08bd1933bf3025d4c97add0eb0ca1fd10c40477ad31bfe2dd434047a5f5ba156405cd9a40df3e32eb89bc3c147ab7c922bab68a0d8caf7c46059b488c0932183cdb3a1ee25d18cb1b27df302d87760df71bb20bbe84bba1e40ab3a9ec4d5136fb7c52a8966d13fbad9d65a134944c8d2caeeee9d4906260b77099b0933ce67b841f9714ae962642e3e63ce31e7d8cd7346e6e23b37f39c6dce99714c33dbb79f32444c9ee2cd8de36d55ad37b7e0183bd2db4b7d45d5d88953bc995e1c1396e067b21edb60d9bba9a79b84db4cf7e65a5facf5df6befa7e66afcc0d6485ea2df3cc774244bd434d52a7da773b354a7cedb70aa3e7d5689a0ef999efa6cfd74338e2cb1bd53e73302f0f4d6a79b714cd5c761f87e6a9e4e7dfad9aaa82a7d7b7a35926691a6bcf9413740e864834e470e29bf8f4827db83f265a993e026e5e7e5cdf169fdf9f2a7ab86e7a7e9e6162ca7b7be733157b16e7696f25ccc57a84bc9a78688b1f1e29870fc4c5dfa739af1be381c13bdb90537e9c278867187dfb76f24ed222f8cf035b71cb2c00b4f20e1852e349246d2475823c141144d30e61e84512c89224814333806664acaf004bced29f894bfa7e053907a86fdc5870d53af06a103478a7a085983cf5883df586bec66ea1dc61d40216cf01b7535d070dfa09ea228eabde966eaa9faefb34b78f34f107a2084f03bf23d127a1efe475697bad27b2edb56a07531f8f074dfd32c3f9394c193231800982979128369f52cd7d6cd423c086e07d237d37718c70e3adceedeca0d08cd0e53cf5b8f9fcd73e4c61fb02c210e68b85ab71da6f3a7e93257a10d08cef36aa061eb47805f2622a4fffad93e857919867e9ed2cf224c6f76eb33ccc38f42e97fe8fc14c7f029ed5c18c7d6cdd2674bc1389eae9cef2f5dad47b3cccb9cab74bc198fc0e9b01cc6a10c4a944108a695cbad06677f18c7dd17198c6015cc949021a60c34b807cc94e43cc14a729ec005c04c490e119c3b5bac23c70898ffcb22b0d1fa6ab85d2f1ac881df33ccaedc8438e0dddcd87d76fdece65683e38df8acc6ce833e7e16e178f3f44e5f5a1fbf73b3c4f1e37b2ed656e2b7ff5cacadc4f8a0cbb6954855ed3d57e762cd5ecc55aa9bbd0975eb65ae32dd37448ca5377b13af42641d2fd2cdfd4a60a7fc0ce3de04bbf76f3dda25de1778ef44c484dd6d3d9ac5ef089e8ecae10e687be69a609845205cb0d93ac36f0bf6c5fdc3d94eb847b344fbf11950be3f0bd66ade0bc1b053e224092c7282047616ad47b3bcef1a6f9b6916f6d0715c853d041c76b7f568b15b0e28839161d8607fda05603ebc48a2bdc590909092e0368026344780d9420aeeb53c9a37833f312f4af0208b6309028c93c4ec5d5fcbc2041ba50f128d2748f691c610a61400266e68089128003c4ca0d38af72084a9aa341b25a8540f9ff8430a289fc1430b8b1a30a4132abb833f2172951ecc602d18af45112c9fa183282546d45100151dcf750324f17c2ee8a2041fd027e11e9421001892b522d1bf8a4a4b4b8d1a6e8613209417d58dab1820072821177038801742a2164d5e8a0b44cc67b0983e1e2c623e1cc00a2b5226e63346086891a1228087c1429412d368b85bddc8c059844522914894129312931293129312e31d12a48c5294e861c888c50a0a3c20aa9bb6d2e1028b16a2263838165737cdd251a2858b5013701689980f9e2eb8785125c159346151c788e805f319205109b0e86a42f4d7c4da3a83bc98cff0b4b0388093ab43a7738026e800636239258687d3b869345c4a12380589942329455284a40049a191444dccea265737b9ba11e5ea4654dd543715604088dacacd010cf64f34d1040aae6e980f34d88187ca55ac30f040d580c1688858a3410f3ea34e1f16306c04b044c60d0244138b8a20529131e12c622931d54d0c8eb8ba19627d868c951e78d801860b95162a2c545454462a2a292a2a2a2a2b44a0108aca4705aa783a2a2a96ad28953a5115a94d19559e5351f1f6232811f3c15fa532ccaa48c47e60306cdc5d9280f3e406c338b6f942155f78f24289cd6e004f6841851731364b31d8301f54307b6288a9161a005beedd4c625578c200d8c238478270f8e1f9a489be4ee287619c006180034800175314f9c1b4d9e501bf4962ea5c65458429a4429e23005c309e6349604a27bfd8124ca7a94e7e190053aaa2286a0513800023c67c685807cc9884253c8240c3fea3201cbb0862886973cd986b0ea9303c29431862308c0741b128ca20064c47ce610df41c3480fd32252c0930dcfca80641658959344700068501988145b5800321db8a0c4c7b8612cc06b740ecd7cb4f07a6ccb9d65a6bae39e7dd1ab3946c16865913f0853b44b0a3077ce088238e20016ebc818771a8e0f7c1ec66bf5c63ea130f7807ec3a60bf2ea6cd4d7e3da66ff28bd9600ae3e4970aa672f2ab05d339f9350aa24dcc9e00985d015369f20b06a6549a922423a4cf3947a5e6cd3a146b021e80116c76b9f145e4fa172e5ab018f190b242b44308860eb707ef0a0a0aa2c2b6736ffd63b8bb3b8aa806d875614916dafdb6e2df5cfb663980142c0c6f6f2794c190c1ce39e79cd368efff8146a3b5cf32dc670138e79c94325a0b45a2f7ef549c55816d7498b0fd6da4bd65a16acc7e704acd50d981fd60a6a40b38f849cf169e4ccd7ee860f60f36fbc162f61617703fab30fbd6852904c17ea898bdac43ecb01537fb61c2ec671d62876df643bfd5ec8788d9c32af5cffeaad90f13b39f6a05581b8e4003202059010c9a4c0104ab14606b1842136770b20221388109108cad34fb4162f6b50eb1c3f64bf5c6103b9c6003a328473d8aa2627b93b0a29a94c06627c50e9b5b152bb0b90589b1d93d2181cd0ec704363b2678d8dc449e0a6c6639289083cd8dc811d6c1e104ee0d363b212e0e96fd4b81cd2d67c5054e9c810a9b1d0fcc9c70d2e06073b3f9acc8c0ba27040a4f15ac9003db51036583859912279080827613471c815954e24411ac00cc9434f1045b20024b9c38c10d10f019106d49b381f04a815e42e8a1090f4ad8ec56b881072536cbcb0a36bb1744ae1a6c7ccc31c61873c61a876e40033d07ecfae965c466d7c3186c76308dd9bb6bc47e03237683a030fb88298691781444c3ec328657b4c17aad0003c2fd020e88c703146c962e8058f7231a0d07e2409c08f3df6187cd136622772f145608c73bb05962d601893510e7208723b0df172cb059c2f8a28b2dc6183dc61863c7c87c70cc60749b036dd2dd4d18c9ecc699d72074e06eea8dfda8351aade406460b027c86c3fd0d4062860aee56c20525da6aefe62c4bdc3cc0fdb431f64238cc246b678dc2814a1a377661c4be1a307bd7064902f7547045418a1730604f7b5ac211162459a283244ac6c000171401092c287233840540f45b273c8189162cd941b342891ab2c0853154b1863900d14d48105761cee928810ee4d0862350e0800868f0c01b48400532ace1043c208327270d59709204932998e083253c98020c4c38c20c2900e289abb05f001b6c0e66df04b3e7a10c363b2630fb0404c126e005b65a037b1e9cb0afe660fd17a0029b1d1298fd0b1bd8ec8c60f6951a6c764230fb1a4ab0acdfbfc82c31833580010e4f30a18834988108197450640c638057cb692b2c372930fbc75d4842152bd8420b86d418d17103274cd1c49133ec400d250022c50c69e81185098010610210f60449a6d0448c1098f00210fd951c6c7635b888023861ff6158517b77cd60d61ccd8b199b9b0d66ff82c6facdcf05d8790cc3340429640e19c21235bc2126c104b4889d2ba849584953857d402620d8790378059bd2031f5626318960ab1253f0d8c1a4819d6430c5f00224009199831350e086272429821786908223c46009124c2a6c8c994ac82258a98469051ba110ad609d16261522132a0512698a490c1313301c714495b1d204720676aea066c14a1a9906fb804844b0f30673b032898a840a01887d29904207b10ac909c582f405f9020a451069078d42e6a04e41c6236019a20a221493129e908115e813dbf1410f2b9530576023147cc81f4d9c20f1900123b36980c7b84483c184852786b0448d12538051888274c2099c6988e3018d385b1bd0c6ea3045fdc1148a54610a46e418a6b0443d820df4e1a95db0357ab537c5d63ed4de6c6fb637bd5b9ded6aeda7e60faff62bae4a359a62e314bb7677ec5aa738c518e3546bad5d57b488c78c67663e653814bc46b4cb84b088098dc080cf98330d4e38afe9296d9ea388c69eccda5a119f56ef8b3f8c46b48be7676eb17e6e8e397aaecf9e077d6ec1f373611cc73bbfdb841016315bcbeddf4fd333d13722b7ff7c6ec1319e07b5077d3ccd8826eb0d3ae3d1bd798e22267b3227fd22689339bd0d770cc7887669f4ce6a7ef5397ee5f1ba9dffe8f7c3e9cf6311cd02e7d3b757f5f5a21e5eef59f1ade8f96cdf6375eaf7e72adfa2ff8c6817f8f5e985f16b9f7a4bddc988a7f48d681786e934a2ffd19f329d10908c689667b5c5049f9d93a4856231b6f76ccf91d9339acfa7f5469b97e79935e79cf3d32df4cd3fa089d249da7fe6f4999f3985a67f3ae78ca2879fbbf9fcce37928c22baa1109cffe2d5fc6fefce2ac6384d93c309279c70c239cd393fb6f6099af4739d7cd20be3b95ecf2db8cdc9e104e783ae382f48b5ec497a3b2169f70be9fb67a7537d6adf59db826355e14f77422448e28d484d754e97632d9f2842af0a2cebbf259de9d9b8c3169e63b5d6a0370ff467f394bc253ec3bb79931e5ed2d3cbf39fabbfa581bc05c1ac37781ba5f45f129409ff50ea1fa3d3cf7d894feb53d22ea1f70f6d35be25d85b6b8d7eaebfe273e857dc268a4fbf7d0eb5d66c347fe87754bf5ffa369281d1a3885eda0ab6539a5fc8d33ed42386537dcacd22fb2baee88a3eb70f7d761cd18579576271497ea791e696d46e6e1f42b9d5bdb95d98872145bd2a606b9ea33913384bef626bd2f7bf249e1238c3f87d81cef36d09ce0de337bf25587a16a07ff1ef37d3f7ebd48579b8de1798e3955c7cf61c29bdad3ccf437a25cfb7583dd2bf243c4f5fbada8b8bc5bbb85afce792dee3b918b6c1c03431d068b411db6864a02312f96d77a2d5e76a3bdddd557fb6373fed4ebdd2c36f231968347aa68d884452f4cc5392fb2be94ad6d5e26271b1b622447d5bdf46a3f1f195fef73df3fe2969976aef53523169a6672eccc3f2d9f80c2514f596d038e753e252dcfa597abf2ff3fb524aa97315e9c2bc199f92763a42fe3c68a769d2461aa7dbca30de4ceccfc9aa9d9dd6705a0a8feb1c9c43543341a150ba09e8b60f453593d085f189f2d5ec26f36d7b38b566d22c13e536144b9ab3fa6622695ae3b4148dd339b6d96ed24ca86e82e5b76ffbf13375e33b1867a7f50be37d84b2b799348eadffb9acf75cd4db8be1ea6a261d5be566527526fcc97eee2396ad2645359366d24c9a484c2418d74c5080cc9604768d063b5a294abdddddbf5621424fdff98c761c9aa9de701aafd03390c76a3f290d32f5c768a3cd16539b9e8a88a02f6a34b8bfc5cdb4a7a713e8b3f47cb6960468ffd477d4fe53462cdcdfe94fff79a37b76f1907ee89aaa10f39d4edaf9a0b8b82d686e21cdf98fc51ddd9b72fd2945b524a687dbc5e0e4ee3e679b99417086ae1b3ea533f4dd6868fcdc7ece9b1bcd8c17c6f1343fb7dbde6c6fb637fd433fdb6baf3dc666e81de6d1abafe972ff166a33cdd21fab10a18f0f2fff1517f5a2abfabe60fd50e8828f7241374b7c3d375bfceeb351a2b6bb3bda1e9072a7ee0bfdf8f3e1d3d6edf6fb9a6cb495f7f4e3748788b10f9f8af0232562a22f12654b5b8f089f7ac7f1190c530c53ffea0d8aa6ba69ce290147a5d97abc945e4183e9b126325ca4a493216ff7f49ae11832a67aa369bd21e535bd2b5bdc3cc77bd6f2de4693957c08af8df6ae5c03e7cecbeabec07f3446bb582faddfecf87d75b3cbc0b27361dc82ffa4bc23fad2bbf7de778bb4de7d9681a59fe4d4385b3f4def5fac8fd12e4f92581348613fd83c8794ef5c4ae95bdae5bd54c34978338cc76817e91dfc3c7dad37cbc0ee29bc308e5f3e4f1776670a1da42dcdf23e5621a67e5bff5dee6db4e9a2e63582cf30bd4dbd0da7ee08bef4eea78be118edf2ded52b4f37c7784f5ffa18edc2b024033b86dff530bc188618c66897fc20f0e2bf2bc68be1bb319ac5555df5a0c1cee924d839eb29d59ea2dc9c8d825fab10fdfece6730dc483ac94ff5069cd7f5459fd2da3c87f711877146b9c3f87d247abe3955bfab6f1d22e0776e76777f8f0fdfebf7b5e19e0be3a3fad401f0fbe14f072599aa10edfbbe542266fff380eee773738b10f05fdafd0961cb9c882b8cdd4f197d536c9ea325e11cc29fafb5ab44440acee933fdd66e6dfdf4c6a73db5843ecb78edbbfbab1f6916f8b10ad14fbfeb8d77df77aea99a6fa34d6fc3ad517c86e9d3cf2d967ccb61eb8ee03fea730b9e309eaf6a9aa6dbeaf4de48a64732bfeb8dd949a88c110458226917d9f7c917ef8b7c18a1949e7c78491ce1f3d050a31b2c4741b09c372939a39a8e04bf338c8f7e503f614a8ecf60a320533ee8b2e245cd87f069ebc0abdae6394635cdd35a4acea806a579ece847bb7c3cad81be59d02808ee6fed93dbb6cff6694f6df403e5dabe23fbf3e56c2d874641f07c2a528d9ab5fee8c7941765dedc522562c29d23105cdfaa50463f2839bab1d64735a3222d2567fea8668e84b4e63d0a627d9e4641b07cfbefedf7e5f3e4708c37e390f1e1e79427b6ddd18f510df5117459ffb9aaf75cf6292a2527a556a9637dbd723ab126c17d3bfd22fdfcfeec704b3fefe847b374be7347f2edc3f7a31fed321fbebd8688b1f6a9cf294ff064e7119c1db69f2373157b330e4f525df3a9d18fd18f949cd18f5190382569f423096e383c0996d2c3cf383cc98bf4514a7922fdbc24698e7ecc1b50cc13fc9829194315503c815b3053024511ac640c393778c2a07f825d0d3600664ac880839590c10653dc8f040c3a4547a221cadf1c6fee5a89a0b8ab10d6b77790b5112468bd0123950f2ff9d2657de76a6f1b0d067ada2c8c9224499d36e2d76da4cea51e09ede279f18fffa1eec791c0fda02b79328ccb30d47df19ea47ee84fdd11f5ede5b7d4a714c2ef6f7088180be3184aab5621400f2750fb5cf8f29b6c2d4a117e93f309f607fdca2060edf061f31c1f8831cbf719b25dfadb65ae02b3dbe00ce31a6836dc2b11d2cd8ead6f4702b797397e968e04962ff50b7cebe38b9246c87a687d47f89274d88978183e65494fd22cf06115c27ae9e5d56fa379aeea4317ca772eea2deb626dc4361acc7e57f659a321f1a3d7483ec352b5d6dbee6a55fbd3de917ceae17fa3d1d256debf678dc6fbf8f0a96b8898a61efed4d4d7e9ab0be572be52dd5c5f15a2ff85baf55d25628271afe3d79fbea77724b40bc3d3b77a6342e26179412c3308f044028dee4b9d83f7657e7c4902f1fbe9e5328ea98f78732a8760e279b1bc1a09cd0243297030c6186f7633fe9cf103b6b256deec5a4a394d39beaba46cd22ef2a73f895355658e9376f99b3d07d7975f6faefff95cfd879a3e57719aa63a2f59799366917ea17cbb42ef2e91b46ec40ebda67edba9fa3b9febed74ee68da7027d5577b8788b10eff0a91fdf8210bc661d9aa3b7127cd12dd49d71b94e7480f4f88a79376793e3f4f467074f8458a52a29224dd49e51d37b4901256d3e4dd9ae4ce87e8a7773ec3253753e3534bfd44cf28adcd73f83409f115ee6e665ae172855b3f798b16d6db70a95f4a2f5deba797b2ccb6335de7c392acfad3c710c8334952ba48b610b5f08042de6292a6a98524dd6c03b2b8a39b7227cbb2bcbb1d8d24c45549a27140a415d34749926e835283528392bfe82529420825913489ac2aa2699616bdfc78f9af70f1ee7af17d45ea45a28be1083f74a5b5185e91951487be3451e7a35d6273d1f2f7fb32bd7cb449d7f9b07734bf7efc6f3444a287d247596ff52f5c5cacadd42ba3b40121ec9bbf7a37e37c38eae1295d104f49925f6fbf28393c9d0f28f29415d88f9f43a74902a17cbc39471bbb73ba6b3c5e46a5cb4a57b6b8790e29b2ea2e49f1e3357aa44e75bf52aa2fbd7b7feacbe80f636c2392949f872ef57db1cde4f3f9b48dffe236463b4d534dad956a9e23c62970860f23e3d50dfb0994a4a4627de96fee9c8ff2a5cf5592ee7794609530da973cd7f4ed02bdbb50a2b556b69a6a8a89739294a45bdf571f69146b6f86717d848acd04be7a63ca91629c6dce5879070d4d8a74c5d314e9535a777777b7e617682652ea6b7adaae6c71f31c2d4991d2ed2fbf71644acbf794ae5e6a18d2c3a8bc5d5ab5572fbd749b49e577443d6da94919a59f262a7d33897907a949777777f7f61ddabfc8d69a49455595c471c7f1169d72bf80cf882f7de3b48bbf9463c31d8cf7167578b2c1f8f6a3cf11b3f80c71fbfc5c7cd30187fdf0e273c3ed9dfdf0dfbed90fd7b767ec87fbed1ba6c178af281838cde2f15ec055fcc6d7e1b2ff2ef8f7fafc7579feafcebfb844efe2b2bec5157a1617ca8f2ed0a75cd5be0d5f81833d91b342f2152bee487e3391aa2b511fbfbee80a5dcc07d0f5f15ccd7ce8ef5cee980ffef1adf315f68410d2bf5057926ee6c0d7bf40ad93fb9cfd048ecf188de7349ebb8c6cc55fc78b11b8a3386163e3331d9ff9c8c858e6323ed30eea54d2793805a1f340f9d8a4cbb40bf5d1d35abb5afb509f4f6b19a7bcd9e148df2b1a5bcba1774ae5958fd29a6c0da5824ea9cd9cb3c5e84070f6e6419dc6a7cfd07739d33eb657120138661938c2774bedbcd3659ac59d87d3c95da6fadc52b90ca5bab22a5be1f8e0e932edd22ef3cc6566a624b94cfbfbc153fad009e34e460a30128155f80d764fa114d04ef9baab6f7873577ff7a88055f80cf8cf218d0fba2ac9bf887699ac66a73751daef3d3805ca83525428a1dc97fa0da968179487d2d412b4244942e90701784728ef1feb530ef0f7f04a0f5681338c7be0bffbf2de03fd3befe3fbf4113ef58603a4e0f5480405e562b8bef7a4e639e014309e00e7f8154229e0140ee1807384cfeb47e9825786555801c3970073292202ec07d0c35bdf7b3ee3889108cf3feaf57aef51229ca259de43e9e3d5d57f2e4c5d508a22daa58b74ae75d913164ffbd57791766938c02fd246ec9426dbf68ee2d78643bb60c0f91195faf7f4ab2b02cc87fa8fc240bb4880b1d477cc0ab87e664cb0abcf3da4025201a58054c02a244885bf0725a4a2599e9fc09dc712cf921a7feaa1f41d1ee33b6a9634f7e6393aa68538d540da8e76e9500d5b15dfbf13bff9b76fcd279f4e69dbe1ff819ecfcdcd03e47cc78e1d4bdc635c48738f01e2d4fc17a1c3f7587d6e1e3450de1be298daed1d312817c892df9fa96feb5a3baa59dddc3c406ec78e1d353bb2fc279b077e3e238e6987750f0b3ef2082ce30d961e242e894a581376bf643fd8ef0bca302d2ed190c59bae1e5ed54b17f5a10bd42c57a312f189b8447e54424626a4ac718976f948a97a6e762c3fdee07e4992ee2787e0d7b844ed3baadfbe6af1e606b7a73ed4a7559f183f71894a1e21a56c9ea3e34725daa59fc0b97a19635c1295884c5492a2e24d5ca28a37b8fa975aba2f3d312ab01f3c21aa513095acd48d4b344b159590beba1a257481be73557189a302b5de5af5afd57109ab9de881dfc725da250e1163abaea014556451c079e2ea733b21990facb11bd0c5da0a1597884bc4257189781397c0c16ed80d96133e4c93300d4a81678c4b7810eb202af85c82650d9692a2f2f23cadaa1ffd7cdb68887ededc1deb6b7dd66a7c8657a774baaca754aab556b7b5baa3fcacf6bed8e967b5f5536bad77baa67dafcfaa04fc5a943bcd2bab4f35f5adc9aadf7a7cbd8688b1597e157a1477efa0546f3dbcaada122bd9a9798ee9594e295db2a639abfd5cc9977cdafbb9baeebdbd779d97632bb519eba797d5b74bf4ee4af977ad78788dfe73757e5ef26d34f91eea1a49cff0e4f1d0fad427d9dc67d1fbbef4a5acf5699b2a04e87bbeafeab923e9fbe5655f7e65553fbaeaa75cacadacb844b563d9feea1da7fad6a3aa5acd4425e96298d23abfa97a65189f24a5d294d63d72b8e91b2ac88b4fdfb12a606750c09e001503e0ce152346e52d2c460be233faa6de6847b93a0f2feae3554587cdc31a8d09f8e8e1cd2ff06b9e231681a18fb1052514faf8746f13e5869a7f5359e1ee1e63f61d859e3e554737bfe86f694f7d6e4130fdea9ae87fa0565145bb2bbabdc8575cda3a2f4dc0fdebb3e66ffd8ae4c7e850b3dea0ed66864217c373b6e639fa5b5a119c299ff45b9a909e36dc2bea63b40b7d6ab62098eabeb9dd59795e81bb86d5ac7ae8579681a919aa5aaa8f4fa15c9da75f5d0cd72b8bec5531954663026de5bdb42f26cf77e727d0687ca0adbcf7bc7821a26e16f9f344ca7ababb9bc27151ddfd319ac5f3d4cd32b0e78ee4d387ef45226b9b0a7eef6350f5c294fdeab30c4cbf735914f52aadc6bcb00c2a46b3c01894b620311c9c382e3ce9671c17ee97705c58921123080b2a42ee96b89a76333e8306befb15c99eeeb09d0f57e333fa46fb347d9cb1bda96c9e23d244219f18bd39202db68fd2f9f874eb96b1bdab0935e8f2be34e7a3c99f3f5594bbffec185d4d76357846ffd0a44417fe149a778818ff9736d2ffbc4ed4b5b7ba6e096c10ba37cfd12d04e7e9ddcdf88ce9e73b9a76710764eae86e9a9e7e963578eaa93f4f4f704fddddd39b743e9a657234ee6626ef46a54924b256daa9d3dd6d9ff351894452381f295475276bb2362ae7c3f9a82891285b37e37cd4ea6aa624391f9343e6cc994f92f3d1a17ee103a7ceafcd9bccd6626cadb5d662f329b68f31b69946dfb9e716df74fae6719a31c6789d66faf3639cb4c5bda3e9a3035afcf9f3626f2da2b7fbd2224a7bf871b6b8b1b58fb2dea8019de9a7a94a7992f244fad18fd18fd18fd10fef342cc32b424488b5d6be919051905190d18fe6394635a3222939a39a9190ca933c50f55575330e4fd2b9294fe28f7e8c7e8c7e8c7e8c7eb88da72312d45715059dbbaaaa2a47f593aa733aa799d4e63970284b516da4713efd84ea1ce79c73ae8f349366d24c9a4904425581805455553d50aba91a4da3a9da4c100ba7cdd8dc6a408de655a2ca53752a5055892a07f344dea48adf7ab41ead47ebd17a48196b81780d8d75d63d6ac629ad8db1ef3cac652da4aca5be7ec399ab0cd36c65c4b9ce570fe3aa0e8c731997711997711d94c7213c10afa1711a9f7119e7e1409c87d3f8cc47e4be7ae695c5d51581aa17bd14b5ea3dd7d97c2c76199771199771998f537c9ea2e0073a77f066eadda42808dd7fbecd7c8050969ca8cfe7f381f6f3a1666c340a561f5b7dad208a829f221d157a8a7a291f8afa10052d6f42791350f595aaa8d6a35ead47ebd17ac41bfa9456f05ba023a0860c0cddacb5fa960ac677afced8f92c23468c66a95f9be7a8bea5ca95595565bfa5c20fac3c6fdd2c0357cb729fcf9ecac2fa31a82b46b3d489de3ce3833174580d8560637563126e8344d549acb5f6558d840d4d7b658b9be7a8aacabe8d66e35b55c5fa88cd8d44057a1b6ea1546f7dfe7c55793a1ef8d50355eff154efaae842b7027d2e8c57d695aed2481a492369248dc4c62a98a10adc3298298922e7b51ff9332ce7535004dd175f919bad7f52bf283f3eeb2511223ab01cd22cf1a30502814091a18040f1adb5de46b3a20589de86a3d8a75e64bd95f22af8449f612ad0fcfcac906589b0f5d852c1560bb6e03f91851fba595acefacfcd8f9df59e9b5570e7e616ec2c5bdd5c033b39a44ef37ee2cb21cdf2b97248b33c9be9a4033b9dceb7994ea7d3e9384e9b09e2406a1a4da7d3e97c8c6da6a6d3e9349ad8e974a0d4f90e7dd83cdff92c458b3f6f396afa2a746575d90a753d17c6ae446f524df43377d4cea9b57ee3d4da53d4c699c2a57892532b844f6aad9d536b8d75fafa4e6a56ceb7d5f511092f63d24cda16e08c8e1cf249e940a49440bc86464a29997b93524a195ffebb8628815b0dc2b7e0f4b45e3b55928e4ff5c805f8303efc872f85c487117e84b61d712345241108638c328814d21c84f03f4b2210c2bf20fc170f5ba436d6e73d1114635489375b9fca03ea58aa4e146631d068fcebc4b76cfcd8f9a088527a7816ff2ebe877f1efe77f887f1afc3fffdbf2ec656fee6171706621adf458b9b6bb048b95945457443373fca057daea7132d5b3983799fe985d73130f664e8c8315be66436b3c511504386c39636f39cefb38c39a78c13bd30ee248c11e33341239531e7eeeefed13f7a1c15f1c8dc65459c8890519018dddd4742628433c2f6d167fd4cab53efb5a2bc4e774af733551dd5d02249120f4972209224390f205e43e3339224494e236549f2194992a497acb7a697e2cf4fb16aae31da96fa9427c6e8891515a9ceb56e76b6a2ea74b38e1697f94cb20a2dcea34929416f2b8f5b17351a20b76eae8165bcd6c74fe73d1d2bda5b5d1c9fcfe7e3322ee3322ed37128866804c7875036e8a44cc919d58c8a8c82484d4a99abbb2a70fc1479658c57bee8371c1e6f4e79e2bea53cc1ed473f463f463f463fa211cc74d041f59b436badb5d61eeac8d19ec92042dab3c69e61199bc9e66e6cadd97440f4a744c92a8cba79fad8b959dafb9f9be5cdf6669175f3dfac82a97b848b672ce4a9da6b02b707ddccaae85857decc72feaff73c6334ee839e311a3a7ce819a301e357ecf0a3678c060fdfe2c5f37031b6b2c3251fc6c5d88a0ed7bd185bb9aebf185b91f2e1ff8bebe2e61a2d6e6e6919dd1537ff872ecacd22d63c374b686f964ed5db6e7e36b1bd48d741dc7248e3b870aa06278331c6988e1c23c0ec5d4bbb641160d60d43f80cf795990d8332a60c089f55065f527ab3832e468c1831683b25de8bfe5a8c310ea4598b31dacfd3cbf8f266e9a98f6f6f6e23f5697c2b424a5f4e09fabcce655c66f207c57bb1735e8c1e634ff1624eeb9c9b6135494fd9aa4e0e4378e4a539d74c9a4933693a2a7f4d20940d3a29db4c0bd268242965e8b344794603f4757a4b32b622dfd98afc2c512e632bf1668b25e832b622adcf22cf83ae8fa763dd666f1655375be9267da1ed5b8fd6a3f5683d98c763cd8d75f3f2a576a9308da1837fd33c87bb001c7c2c3fc3747743e9a4bb24ad273d6c977efe965708e18d3be79c00a08301279f1eb68bf44e5ef919a67a293d98c6123ad82eddde50c26ed92c19a62584f061bb74774b4875950414b799993c4feb7b2dafc83dd9ae5f8ccc8ccf78eec5504fe96c9ec3b98e731ee33324751ae93a6f4a9073373b3e83e53b77e553ea5e3a57fd731278d25d2fef68befbf8ee513ae39ea228148acba038f99c6b0be53919675355157d2fe6bdf37840e67b31ee9d87a37993a212e43e3efdfcee7b07d3de7bf4becfeff3de6b475593ba2ec3837a6adfafd0b74b4451319e8952ede9a63c32ed92db754f695efaf2ba8ce78ee6773ebecbdcf83574b1b6d2b12ee72af65251868a7119da9ed26f55020fe3a24c140e4227398aca0942e7ba7a4982ee044ab47a164201b92441eb0e1d4a9d6f976a4bf019934eba927467e7bbf3f0dd89f5d23fcf0724c139fd495fc1772afd8750e0fb094ee891a6a9a663753a13426f029f93de9bf893076bd59ef3efa9e7e0d71c6c0e3607e77df1af1c74d041ff275dddb1bc49f5f3dfe56fafc9469bf8c94a75b7fc974f512f9a578243c44853df69c3b56b27cdf7d3344df4bdf443a9dd8903618152d984246253c9205248bbf4535ed3c46cb31de12bf3afffaba8b4b4d4a8211235fa4ea95b4e6510394412f119b429a52994b6232019440a9145ecb706dd172b87b44bfc66a92482dbcb25b77d8ccfa74f9f3e7dfaf4695d0e1981bedddf9bc62889347da718682bf3678bcfa2179f6d96b8f38ccdefd468c92a9f45d35d747c21e8bf44fa1ea4fd0df2e2ba68311f036d521637d7b8b925e566951537bfe86651e85e943b65131604ba18b676beb7d6a4107a04674869109f214416a1d3924470867139a4492218d2f7783c29d4a74f9f3e7dfaf469350ff5500ff55029ad1589fe555ae63346bd1b480a6996f6b9a86fd355dfea5c99d9583288abc0afa234ab785f243904b637bff43d1b159596961a356020b6170676257de547b44df31aec331e53a3464b8b8acabf48642d8e1c327d7e363842c83ecb6783e163400e91436ad46869c92a8f290e0e9441e4108a92442af51a94423ca52987340b74160d030cb23d074ba9f3947a6f42519e235f361a2b5ededc9394939c68bd31516ac92b5bdc3c47cb690ae6914d9a9c1e59b99376a93f79a69cf35925a2fa58cfc1d3cfe9eafccf54d9979feb9d1e02d31d553f3f4a297f4eb5e6383f9ff9ee447e06fde7731b911754e7bc79821ee59af25feacdfd93a25aac23a8542c59cb8a94a11911000000100003160000400c0e0784c3c134931435751400177a9e5666521a88e4248919a50c3200040040000004404493000019858803d72f83b3d9acc2d91445b332cd9b4dbca4f1e4c2c566335d57f96a62f4f553cd266c5e269ef260bf958dc55047fea2c81d2fd072e6b56c8696e437cf9ba319008a7f989baf08d3405fd27db827a4cee000ddf3776e501dc781fe60d0e29717b3783935dcf3f6741bfe0b0213a4d231d107615189322a0e857bf51028e40bb826eb6b6c82bbd6c054e1cb1aa54cc2efb5f3ab4dcba05c50197c0c69301669b1a84110ac8b1de247221b7dd284421f4a8435b83d79735dce474973c4db08d20fbffa95148b19830dc92030751dae264cc17e25ad2577620f3fab453da2b22605067940a5188d6d2f4ba81bae903d3088c6b994ebac67da645edc60900b647c61b43a75cf4edd1571ed3e01e836884318ade7a9ede5e2adf57b975a5dd61bc346071e4fa2e1e25b9e2ab303a3df25502b2e109c02c7db9592b4642123d8ae84f1aa49cfbd02d0c50f5c8365c0c4793d373eaf9ca7e3605e18bebdafc00b87428f51704d0a5f166896b693e6f2d7f50f09a162c7b0bfa467568c88859f4a637baf10744c2e429f2b8d661472da7ae6406c7045469ee6ec712b4d51c417510311aad50b95a8f56012a17c78bf2cbcf63d8dd137c420145383b25b78f0abc467f982a00c3abb4f194db88462f4ac04eb3491349bfe73dd3b6fdd05dd5af047db3d0c3f4a4101d7cd9cad668a6c1dadcfe7d8037df97ea2fc7ca847b6a15c881b34b28140c7391f6cbf4b18c6820c02eb4fc1abced3b024f4b5a269d5034ac76eec51d4d7aac2ecee8dcd259eeaa23b05c951d3ec95241b8923e0312b801139ee604933a489e838322705bb3bc68586ee4eee53940798249fe6d8d263195e05dbee6b0944d138837c36b38d3158c081290bb3c5046d47229bb3f2bb51d56ef4776955c0e57954fa29b3d811e12ff9d75f6e2a724f2170b9ec3be9fd0b01091266983534226113d20fe6bdf89dacc5b3a87900cd3dd743643f16788d9d714b0a9dbf90f4b5907b40c724426498e375f8b3e313af15dcfa1842404b2ebcda38ccaec277c2ca89ab6f80b6e28595a8233b7a2915ae5dcba9bf970423d519f43e4c1f3a549b5e2717d2fbf435104ac138890e970b29bbaddcc6318b3f9e6aafd6d321ac16b9c479c94be03c9e2bf867710cb0b19043f47d66aa4e289e2cb0294f8bd5b7371da65e326416361ce206dbee83d0460637d4baf6a2be5e0ef377a593ff1d02db267901e2057004dc9a486e0bd0ae13b810d46589b3ef7468040204f483f8f0e82d03ffe6251410044ed55049d7e80cf9c76879c00d5674031d3ffac903d1bec90554b8a52ac76702f2f9c30970e26982149c3677c27dd7494bcaa90d2710f2e0296833ec7f15e9a986e76e72989a1354b554dd9ae702d83a3d8bc8e729f4a7da71226c0f6af04cc3714ceddba45f5469ad503a48b8e88b54a435e648c15a4262dd366655a90206e53801e43bc36b334f3abb4a531940e8e43c92e2303342535697acb4d2914c73c14a7bac75653f1823617902755d015a05b5bc70b3506f38357d75794fb3691ef89af3f25d9a708455d3e64e1c747362ed69d22494b53543eebf3828296d881378c4747d8eb7a2891097f05b55092f75853bfc07887905e19c0647008b1dc2227a2b9dadbcbef93a2d9f30f8a7ef5f0292ed1995efb7f0bef50ed8f426b5fcc1cccb75ef7ac8773b5f32dabfd84574352e8458df7e15db87ecaf4a729c741fd4bb011424b15bd4c4fb778453a4fdc2b822a6c681a94d16f3299f32fc7c0858da0f3c479b9d3dc881d58f4f608fbc0658d59808578849c7e4760680afea7cfb36aa17eb9b02013026673bf2c294f3e842991a35481894929dbd182615c20223c7e518054712a4d1e6669e818c1b4c057e76f45262aca97398842693e0cd0b9914478dd5e28084f8850b3d1af9966ecd246ae6b198be237ac765577a33b9a11e27b56bb39da0b88a6f88300c7de70111949f018598307161462a987743d05dc3f1212529067ba957d774e528d57f4b73ab8fad076ca4a2bad094de4f91893becb8e55b0b6f0a46899bc263bd6ec992b80d6afd8041eb4274e9119073f3f52e7a60e4722e0dd5f668e13ebdd6c5eb40c1776fc38f55eeea3e5655cb2c7c61de0a2648c76d14730802347ebae8d8ceed3dd830d5134e85a310f6b44d7a22cacce8dc1f88db8b5bd15955d830a36e00454d2800910d1aca1067c96d86cfcf437be3e3717f91e2f3a08cacf460ff6fb3f1cf82e538a36a93343b6022f578c58e17e3bc6fdce621d0be9c5d89c50baa859006ff7c7dac84c56bdd39316dfa6d009d5710980e43aa305bf8679569612fc85c3186693ddf0b79787b8592df18fed82ef2567909ff74769fbb88551f4e3620152f9d93154ce13de15586d884e66fd639754112196cccc44740372e53ccb1e4fe57e3cc076e97e71f2cf170c404b997c8c4066b54b12160084f7ed026c25eadd06c6e658c15b3e5196e3737af13a084a70f8a1073865b7148de38c039221d354d35397e38542befe763954620e4a1e78602620591d80d256dff52e0472c7affb70300d51ed6e7f8cfb509100c121dc7e795fcbf24f81003391ee2fbc33aada19c95a8df1f2a3ca3d5cdb44eac2bb803fa8a8605adc00981fe08d4d32160ab7c4c3ae4941aff9750159f1dd389b6b3b11da25b3b01b17eee4900fdafc2f6fc697ad219ff68792040610db705102be565136abca354b41af0df19ccd3193b5aa2d7ef3bf3e38f799f3fc2e9e4221011596ff3131c293432b51859bf317af63f344975b3699413bd726a964803922ecf84e7582f2d8937b798e8bed738091fdb58d859ddc658428da1ae287b3a917d6db01d86bbda1a3e1fb7f8ef2a1d46a4ba7eba062e368b841d22e2715b4e9e960fd6ebf58d1f76eaf000001ee4038243bdbc96e2a9d5139d2304ef5cc567d65e41754ca4640694762abdc91c2ab5c84810987631b875f318fcd79ff7f35a6a8fedc02a12e84cf1b92ef3f8fe4ab657cc2fdf66dd818090f8c5a40f0426eec316eb6f7619f12aead58b253e7e209a28e025671ed014f4ef128085a0b94cbd373f0414779a7552479a77a94882e17bee434276c66f173a4a4abea7c76ecfa2efbba5dd2288da95df6cc0319cd020c8f7342e4b560c9a848b7873aec0677f62973ce871bc5386abed4141d573e9829c5d3435cf96612b1cc59a701107bd36f0704c89f89523dfd60cbe9c0dbc6d5770dddbdc6c730f1aeea16f393423c07ddedd017a33a43babf08782d547779ade0e34cee0d563f6ed5d6f379f2c2957323b2118f45e97ddff8c23cb7a6dcc991ff26c0d6f37f70caa21ed985dde15ac7808065ea13bf60d646e7696747e3e0a56d0e8483df64770b1a921bffb2aae95c8e6655767de231e8b2f50178750ef9bfdffaaea205d61c36fc36d7b522fff7debc9626803fd1fc014002bf24ba277c5ae400e994067bf21b879ef32f0d6cb04f13a611e639b8951f2016a542896f698e44999bd0530e51fc69e16b557258b6b5020c674c7e7dca0d68979745bb319884c98821a40b574451d049c072dddc72d59aaabc516c5b2584e6ce7932dfbd63fab4ee871e5daf29129e74e6169ff52e38386e66382868bc1d309aa42ac7f5f3a41f6a01753d7a563058bcd7a97d8e9f7b0fdeb6f4bef73685a75724bcb24a02c0fd84863b4d399bdf20c6a20ee3a6cbfff3cf43a4b5b6d6b73d8d8a5b372c310eac5f10b150cb5bc498060069ef9b53c90982a4f7c3701730e6e91bd2dd5cc72fe35cb00d0ba98c496c152bb720f939e00514c6ac9cf96642a1c71c039e8c316a8567173afdc76b5892ad03e6c4353117c83900bf7614ce387a5ce88b83f8d60367f6a4ca6e038631903545d65880a36fb38b5daa5a65345ab37e1a76c5aeb2a7c52ad9b5d91fef7456f56eb08125d7ef6e1ded2a3b15690f79a214ab157099aa02246c4430e6944f5b80eb9308d160e8d7f479056bb6b0b3e877ed9b76731406201d8db590fa1d378949a77e388b174d3356833b0d8ed7ebed3b7a159f9d17f2a9c48349989445f9be123774cee4abeb2a279e2223cf1018c4bc157ab908939924ca814248931cf9ac7ef2473a3fd48fcc4150695187b164ae119ca186848525730e47494e76ddebf95e2f8d95dff44bec108e69375673116c22aab87177056738888d1a1aa5d25cc1fd11bc5d33360dbc343cb150028b585e00198a42889fe1a4598b462794695831f36d548f9b2300019ae00ef6bc05ca641425c7439fc842b696a0a4273a2c0ef1802ffbedc2035d0676eb328000c7f62070f7f9d5f840dc5ba1c9b1d20ec3f5618188c44058603f41da71391567bef895c4355f1583699742bfbb28b8274494a99268185cf3ccec3e954b7634c4fe5745acff21994eb215b61c6a911c41de4e9aa610369580c95fa83d72e66cce9640cf12ec7faba45c99132e261904298e1df1914679325c3e0b1299880e8e5d7549cb491c538c56b44ceadec623133df7914e94ca893062da6f49acdef417202e22e0baacb0f4718c58fa1c4fa7e86b54edecbad1609e0978a7a856f6637cd7628990648d3a516d3f432f552b1988950ce1631e85a5a8f532d26bd5474758a9ff89c4b2579be17d0437f1e69483f367b59b88a81a651a7a6392390046f213a71d62a9e4e2f098381644b92b57a521153ead6ee15ac0a3cf03d406ab3eda444fb265fbe89ab3334b524a5d452dcadddc36456b036c3e4a4128de00cec54da20c6cbbfba584263f59de1b44b6f5c4bdffe7a79cf6252d6e8f94e0f928ed9e3f82c7f89974ed80f76f5897c285c1efd112255444588479f7b71db54ef81f0bf589281854eacf1bf63841e94c8a913ca348def1b55d485919f9231a015cbf0a4a8f40c09631242aa60d3ae86e3b88c02469d90985d8d254fc12b9f87cfbef57b5566f6a9c1f625820b9dd4e3a03eba6cea3bd0265376142c477a46bc89c72a455caf968c5382b968de966437dc6d5b1eb046253e5a5fce71bc939d92eae77895ea5d4690ef9338f01489ed55abb1f94467f060312bf2c843e95def8949e4bf835be5e90e5d73874b883475bf95bc5fcf8ca767432f351ea876c17a15afbe4ae6d0ceb2e1c2a8d7b5d1024bb70430da143113398241aa4ecbbe1aa2b948133a685fcd16b7d61934deb0e30e32b280ecfea2dc539091af460e21b746221be01b8aaf74f0ecf2451675814beb475fa6c9b81ee6b8d424a163d6fc6b8b99cfc533178fda94c5b3885432c2094a9593e5b429e0a47997d95a7297388201f0f23e2076cd13674a64d7ab8452d898afb503b0c26bc7fc69d80feeed68fb2cc8015ba1839bc86546e5c48f5d84368fc8760f3530c9bf8358b66dd9de743267c1c23958411d581d58d3c910e539339b18f47b527bf72ce02fba64bf74cbb6116d1926b74e2847cd3e54bacbc69de4baaef1681c54ca013669cad5451cc8ed3b38f8ed6d279d42092f196fd47484e36157302dbae643c0c3c65d0153058ebac081f6c46d8a12e52a6afdb9460366339035aa9170db909c7411e17389aef09b182b0b8544acdf4c2e3460631b6b0f2a69314eae4a097c317c4b93145cc010a5310f19a00197ba049667f73a88af01f4d399eb8ae8023b4a6b3f8363fd5e9d5109ec561b46db669bb0690a8e89e341cb7c8340cb09e21c13ae778e27ba78fb498022e89e7c78dd07d36ab7ec95d0b5ba9561aeabb5b8f90f77b3881d550bb89177f4a9c38e9cb1cd38d945f7212f78c652017a4c85c1fcec464be2a802e2ee856e32c39c20e77fa13a424982dea007aed8621c3ca714172a34127ebddce44cb744382699a24ec4b917dc50d2a43774dd95710d9f639a63d2ae871b697c73fb00a3629c110a7b69b2dee75ff731d2313c7a8d8edeb3d606a32f974d41f48c393ed17f559cf1c1faf4fab9dc7cb340b6f6c5a1a3c4c4e2679c1965534c7846311febbb8d4ca397986b67afeed6cb00a1aa6a240beed158b02da4548decd2e3100f4014e7bc26eeb5ab6a145c416b5a705f58825bde548d784d8a0e890287d23bdfa9da61e38e1ed67c00de7c1800f465b86a279c9fa90dcf68f6a7dfe60d2129ba851e979b759f4cb5a0200079943724571820c8d93aa530729cd26b5313eb4b5419721aa8282f2dc01c1b65302ed12d1b10e0c9471952a8e81ad4c8fb81bb1dcf40a11ad398ab3e4d5fa59a116a74005a39e03496d4e3e16cf643abbdc53922c4a7006b08140f69669606a4055f11ad199087b11f31f38135bbd6ee346226fe644d9e25208e2984120c19c1bba8f5a490e60e1ea72b539b521cee2244d9425eb5c15ee1ff0b0ad4d77022551bda1ad19e2fd2f7caae8f456f6782459320b7de047550aa6f7469b1a76f8d35ea781f3007e7869d09e8db9e1bc832f3086d3fa4cf34978e897f815662cf040cffc9be3cc193067e34cc045b1cb6d86643ffdb267226b00162877c8be76a95f6279fd6f36f18f57b52e8c1926128901cfdbadb0b3ed79ad58f0fd92d7c62f0e01fba7b296426ffc99b0980f725b66cf19de32f7b0f9595ce0426c013ec7915af24458f3bb1cc86d09d76b7d42f456de826176bd944d2a2ce158f12af466e9c69621f11c67ceea3a4fb2bc4560e05a5ca80172ebf5f22d04c08b8a28916253d6c7048657fd34dba9720dc3ca2457f2b3ff49586563ebb780650074f6a99a2f2758f1fb5c813d495ad9f926780da10c538a76387ae0ec9592a06b6c3e65ac407202e8b9355edce707db5f20b01a01bca5f1d3b24f7c1efc6e49516add836ead6d413f1b4c75fcb09311d368254bb884854aca657fa67870112d12b65c0e38325ca88677ef9eb3bdab9b5f222fa8e722acd87e45847d971ff516676cd50a13259379a760382535f6e63ffcb4abe5dbda3a9a69824bdee2b87d3cfb3931dcc1e754a0d7c8d4edea6d8d2f455470e00b5a30506e10f19292091f5af3a1a36688c36f618aa12a71f2b0620bcf708c35fc4a7c3aaa3082b9cbc7cb804937d29abfcd8452a269c982ea38561b2db8b1cff24b48ee52ce93cf71b50d1f9c45c7529a7037cd8b6eac87d58b31c9226bac39d8abf2092ae14cb6da92d9cf28955f78ff8974391e368098e1990dbda62dfee095aa68eb405c108f04e0e9e9aeecb429c6dce0e068cf3a6df3b2caa6096bf00757405334a1b73a200ea7467e51b82a0f3b0c970a0ca753675d75726378c828c45c7126ba3b4481d40d9a6c194afae912cb753ac4d61b91e72cc15155341fc092129725fae44486dbcb579fdc370ff92980e6a1152cc78673518964dc71b6d0ab8addae08e2ee64025db707cf8e5653005c1d77358736ec84fc87190767fb8b290d27a320eb31a1c1f4375b63b9a80dbb687280d2eb8be26353c9965f272d97e730c6ec5387cdfeccca9869d4b722bf5cad1a7253514c6c93482b52f23f9686846d453f8d82e3dcac7e8f1f1510e4a1c6162c5da451fbbfca51589870347b1a9cdf0a519b888c4244b88a9b7efb946b4baedcd41285ddf6e076c375b81341d375d9a61daf57d78d543f78983ed45a7cc1c0ce6d324ed8d7db08a319f1b33093d53933f7690da329f00dbf6394dda81c47deeca4940072d0168a968cea8484473230b2b866049c93a82c3493c16d0e9408db8a7f3376ec09ac8bcb8619ffc43b699a19b6035296a4dbd9b0ade7aabcd9f13a5ef138c4337f3a0a9e2198529df782e9a37f7b7036bd2915905c3cd68b7f1340412dee282022651e6b343ceee7581adfc3ae6213fcce701d0998d5018b3141bb4110b5a28f81135462c091223f841214b26a2e473363521b64f4107030f6adf2135102e33d8491d687994d39709c6c78eb89d88641fef6492f7661fb3ade85f4e8598b6eff0cef5466b82064296b30e5a3d4124b43395e45be03f23da9f4df7e4ca687450645edc86e00fc4d58a908bdfc0de873d3a3253fd1ab166470a4bd5ff1ca648cfe8248271e96394113ee2d80424da845f498ac1c4c3e04c24f17189375703d096b3a06b83e777f1b122dc81e8c408661eead19d6934bcb9f581c6a5d6a0d2331aea6afb001eadb0a8fee3817135d6b5012b94471dda38047fd57ad2d155b108a6439ed17a2175739dcd44319a09e99e3d566c75f2c1326771d050f4680f261c909aad16e2ec89e46a21794063583d8897e1a983342b006b87f29e6132ee02834259c53c9cdd5c283aa8cb6d0681b6505793c3c8e27410c9dbb461b991bb054ade83422375af78c26ccf026237f395bbe2ef4a710b44ea5168dc379c4af356baa30cf40924ee9294af33a0de65daf32323ee7c6ad0b9a77b6854fa167ed209b35b71e85121e877c3225d033d7cf44d89a47563464a29704091061bb31d77a9e906f35ad2e554705b9520e86e3ddc176e5641983df6786107b7ced4af145b257ace467cbd91a187b173b9801ac5dbe54a882b53e27575f396f51c1d6e3d67c26316c105699e71b38487a00861987466ca8c49253ca6031d24d90fff283db1621887115c34c580f55fbff91d0018694bafd42d8467449919bb1cdd46000ee5acedd769ec343b98eb9f4eb69dd78360ee16ab22c827b441001437b4a166a158d6d0a590247e06c2f10520bab10857364ce458fca627b0e6e89b6a2026b5496c9a69a587aa2d53d2931f8e3bf5eb11206f8494d6ff415ae03ca7398325dc6ae138be6847868bc59df23fe0d8a28627ce40f25cc577bda3c9ded12748f64e472bc6cb41257b5754407cb39d4692a6934410e68c36cb08dd570324a0378ff3f0d86bc8c85fc19e27f0f75aac0af2445ec98d43c035243be228e1e3a9a5be3920e8fc49eb0a942d4a35c4a15edd754a619ea7310ce239576d6bb0d8686471a9ebb8ee7a8201e1493074e2dce4b2431ace71e8e3caaf1b8e82beb08ae8e2c328e79b10216de61a1dd62813ac5eb6e1739574db23f49fd9bce53e6a9dfe7319b252ac1e821320fc8e7579504359583a72aed12ccf0b062deb53084e16c14a5edd40ac606c51086ca335b491cd9d639217a3a34efbf5a4cd400b135ff6fca629aca8470104694818d06963cab08bcfaa174e948a67e11707320b6dcee3aaf78c26faaef5a90d3d258086771f695838a2148c9dd79ceee67d186ba75df84fe0a56d5e1bf7a8e7f667e7b44eeef36ddcf0b4556f54d36d0cff6937000c850213625f6d7317006d271ad66eeae895fc3f3ee99bb5595c349301416f1a4bef5280a97f5b58f8265c4e288ac9d3a2971852706b543309334dfea5427625637f12fba1af05e12c96c515981118eea8eb3eb9cd95ab3ec4253255e00bf838c6d8519a015f6b52626a658e56e973c1fe9fd1c1add9aa0ae5a07774ee4cc142410786622671ce9baf11433ba5346db57841a79674e15c8d97c1e0e2d0b7a216165040fffb22a261db4e741833979a755d854907e4590e93c2d3b31dcf4662e7e3c54fcbce44c8938715d6a10220e59e585f29ed543b1161c613176383af52f62f1d1007b65e386246b5d8b6c8570fde9c54c49ff090199aec29aa03e9133fb3297db2cd1475eb264dfa7f849b7c4ecd1a9ebc35a85d21e8dc1439a9633b841a6a857a9133a6ab5b145f8715ad0a1cbb691024ac5348d38a286ebc5afa2c390aac7b7cfe3764bb683516312fb428c614dac34f0dd6a11d927dd7ae6a523ece78449ab0fe8de5b78ab2a46e9f1e9fccb009f44a9dc843b3ab5f33595666dd6f5a7d519c293904e5251ff11abafc0eb82e916ccec5e5a4e3cef3d00a9655dd6b2780b179117c89dd78f0550b5cba93cc57a01965edf1863fd69d49c600873753d35e3e4761ba6ce3fb9b979553c00fe2e9c3cb0bf83904eb9f76e62a4f053770ec215cddd93414d1ff83f035604634455a647c8d818bd1badb37dcb7a78fd11e707f172bb330b035e6939ee1ffd26adeb85eb0d5f9bce63a0a99fee728ee7e3026ebfbc29d67041491e0b9b60dafcff37942b32ddcaf360cc106751dd88a82d911dac4259d7a96b40150fed1495eb4a2995c02580750a3767a24f1b710d28ae1486224324824ed9deaf942db8bb2c15a9fe00520f5fe480467bf3a0579d5b15cd7cee816333ea5a7214bfe8d55ecdfabd644c55376e8ce8f97db7975a0cfda65b5ac00cba07b834949da595cfa52264063f4841875c021af0b458fc346ba8da84fe5a85c686bd6dd984d1f91972dfec25b6fa699f306bf624faef16ded85a7bd6ecd2abe17957bbd9adcf2f970c873b6d60b435050bedd2a02febc2fa0a8ad32ca97b3ce6066ee104b540bd2dadb4c8333802af2d113223b87b67d5475f4635155ae1e0da258cf89d893712c655766cd19b96be4f6ae9f9f1e9e89acb6962e29ca2dc852468243e10baf0a93938d3bf6bf7f56cbb881a5cf9c81296065fe6be9b2bdb82a769cc4a58e98abcdd4804fa5ed4fa50b587ed35718aa23a3df4c8eeae07e6553c10d91615f01b11af1957f0b95c60a0d64dff51dd0b825980a59032b64c11089cdb29d58a503d76a9ee1be3e60400b68af076682fd8a1f77e0aef89949708571a0ec6523e088cfad2a0b585c463916dc1a3d0ac3002c360118df5cc7531fad32e5314556a058cd9ede0abdffce9663568852ec003be3092c041866ca7fb4c2fcddbd4d2932823730b22ebecae4fa6a2530673a7671e0fd803ca315adfa8292983d76a16d26180cccb0c71c9c570175591a6a3b8a975877276d1cccc2ef10811b61c0b5e6866b9b04a96bb8c53c288d1b8471710a8cc4777da939f2518e8a575d542c32e04cc9415ea5c5ca17b2211cd309b8ef4355e69ad3bc87a5cfd50f5c7eff73d891cbb281c0c2e035881ab110970bb1fc9087444b89f6c44a44281c46b092caad32f62a3d18a86c9dffb7840d611236ea8ae653b9435b9f5d143095e5ff065b2062ec1beb6e7e35de2bf0d9095c6213666be22b423293055077c38ec8ffa51e0206b303ec88a24a96081e047288d91926b1568d21a01070ba63ba9d2599dcab9e57bba9bac23257f394894347915a6b200dd864a4374a3c983b946ed8e8ef105eb9529a98a2150fee10e81f160bc009c9dd1bf3189d731b974e3c0df5b3e0b342bfdd5d88eeb0d1f7fa031f776f3a28e158d79d78551fcde99c32891407a2abce5820118d20de2e316c85a40f921d9c3577375b4ec6b88a563a1b0ea2b39b7fbd66e80ca6fa72e86923dd809ebfbea506e7afeaeb5bdefa477890d09c1fd3f78462852adcf44c8ac647e8090526863d244c388df4b5e5904e668a83b42f12be9962c020492e615270947003a7b0d8354207ee7ec387d281ba225b7421f3c1f1fdeede7012922dcdfcc90c54e025f70bf1f175355781a064e2237ec8a5df3664be3789ce9d13ca2ac0521abbd8cd51a4b2a3e808e6530239cc8f597948edbf2d2e60a964e1d48e782f8a311fe25de8297de7bb6caa9753389e940674533639303cb3c9fcabefe65d0f36082d8f4991a3449c367d6c8034cd503a8ef6ffc9a57e68960d45689b9c7221f6dbf113de4a43bd6e3e5f8f8ad29cd29bcc04b571f79f039cd344680503663a784c1b6a255448cabb87cd51f2cc6ed9cfa066b34fd1247cf11602ab3a30791bd48076a060999ed893b72de335f0225521c815a6dd166c50d793aa775e1d403622ccb89d053041fd32c8fdaf4d6d4b0317182deda789daecf57413842cef8ef75aa99825194964530309dc42964b56c283e5238c090a453dfa929529ba0023d672c073257a0afaad91dec7fdd8b33dfd1dcd2a22883568b8b055d5601dc93a4ffbe183d2d5d730bd742001a613a73821f0f042a70a3092fa0c2e32cf32370fc8274842bfbfc69becc5f8fd804ab82ef76ff4efe7bd6eead09fdc1a3241739383832de31e4fdfe11f0ac7a5ed6de8610cc19ad902e9b2a1fd72e9792675c8ebd90c5c01f171e64594435b948414c7d11d07dd1495d4e04580eeee458b6640503a7f220afb63a9edbf5e337258a0a7d045a55144ff135cca12d2cadedd335b3e836ee010a91db3567bc13617bf9f874577b9be4fb31786af5e863e5ee736a9729e1736e9c6c5fabb8f84fc934eed65f8d4823f14260db4028508867586b7c57be40c7b8bb7a3a820e54a5a95016c5e8a1517e42c8c72e9e8c568322114fbbacd5329474894fea9a54fd96572518a461df14d981a832c53f99843670855cfcc94b4ad5dbfbd194985ee65351c9045e0c4cf16f952435e44ae6429f330d1f439f28af4a3c569c9d588de7e7588a9fe97f994a360e26f563e6a5098e6ceec591c179b0cda031a2e7e5cd0dc7012384efb50a57f01dc404374a3327d0ae3f936f909afa56b2385992d59b8d4f95a722f45433b739f8ba5140f221a54a74704ea6472e28b4f94e307bb5d21129cab9a82124b29f84140e371080b0ebbaa99da8fd22a502722eb98f33a545cc2672933c8ebb3113aec80609ac8456cf965618416ea9dcc8c9268b33be46834f527699644e0e1231d28e22a8626d9877e785a72f0d33feb60c6245f8403ec49776a707268cc5182f2b87b5c7fcaeb890a778839a4e6f4a905bcd01c507857cafa8c232fdf9131896afa26f7858c9391d2f3f8a22926d2ed9246b106c99055281fd39035c0396791334ae6cf0ad34ff2996d26de191d9226c5a52abaa9d67e31deafdc5814976c12732871b574b6bff206f34e6f9613268b9fb5055a350b2130f5a158944dcfc05ca81ab0f73b7f598494dac259a8fdd34869531d4022b6182b2b14e48f5dd7aa4f3ed3c27e5cd429bc44b3a7022f1acfa201570439c67d6c2013f6ab4fae683c3b91b06f8fe25a39b532bde2047855d86d2b6ebe7b75672879f9218d34682ec49f9413d287c02e40c17c6af7afa94a94e5bbf1de942f6f56ed3660ca6f5ab5ccc1e66d8a0560d9cc9e850a6a36ab182b2524856b08dcbe7cd37da023a250c57907eb1e039f56803d38ff892e324db9c8b7b13447ce60823e72fa2fef16958da4a610379861057b38d6e9e8448fa2da953d1f80bdffa82a82a8559594857aaf92e8610df9269f6c6f6859674c5451d9bbb2786752bef8bfef979448fdfaae7b08e816328772143bdf53cf0541dfce6f8234ef3647110620e4de2e8e82fede83607409843ead178c8366c1e0dba9389beae6d3dfdb1968b71b2f0b35173de294e6204bd837d6a81dbdb25e0ef31f5379eebce52f48b417937744f732ec29686641476e271a081715fbc4d3dc755c90f05e79440023d9475cce502976ea17c417157bbcefd863c786b566c4a5d91d4564ddd689039e69a3d38d7dfc0cf6d6d7c6609817d5ac123ec95dc6bd47f474d4ea10069b00b733024f54201d2f82864c35da9732441d6e15de25683c059a2ec2994a183349bb31bc682cba0827a5b4f016bd3217d3161d099a7dead73501cc3ee0f6be49888e3ca7c9baeeaa45f6ca6ffac9e182f24ef2ce2c863b8d4214e33fdedf0e094ccc0217708e16929d341b026500b228cb9b59e892be9026a6456e2b34b540a4b93ea291f91c4bed03173dabf320ece60bb575e437b4355c01f3862167149aa3bff100ffcaf96dd3de8c5cd9d22c9cef096b685efdc5088f1a00936f1ffa6435661b1ad02c567d30aa72c7c8c83680ce71befdb2a8e5311e7b60f63ae19a3c9eb64929845099c69d40048ee8c66ebf3d5b0a465b2201b6652a8b210c18564012a2bc7f2b0b3884cf26feb85f16a53a1d2fbc5417f6b76f5f278301a90a2d0088b1ce9026e87c3a288297c575867bfac86271c3f2069c2904ccf72fcaa5ae0fb5c4fd1b9805744299ed48c3fff663debc91051abb0fa7f91fb327254671d4837d04821acd13ca7136d7bbd6024719068a6d15bb7c9668d8cc26ffd270779c9640c6900b867ad372e8e4135c2f2793de0dba3e15d07edeb1672f053b50b03b9fefa3eb79b0a0b76ad4347965830e347706210d4348800fa882cb3869e38fe8abcd973ebf9d00899f3444bf977731084a166a02b9d4728f60ae5f8dd15df1f6e106b8ffd0c2e6ff99d3062dc70b876b47d369eacd882e1f5a06e0aca6a3773be01053f0b655ca868a7e0b072e76c1605744c949378377dacc82ac4d66e4fbc22ed136745d661a9ceb7abec669c1a9e60b149d31f666d190a5f1d1b0214bfa304a5374f8cd1a1a7b32928ac90595c9d232d334409283a01b988117ad23f145b1d7ee50f02aa697fe4aee02caafd13c7e522bfbf021b0d16cf0d22fc623ce2b54183cf1d074ad2ca10db6748395073343429a0cf820129f44c4c264ea64c3d702224a71062265112faabc89660bbc7a5f050f911f61b20738c72f5b98c26f1d68d887eb5050944ffab507dd8bc96c8a9d021dec2c122077c13a1bed2eabf98fb1920b214add795874402bdb22d42a2c90194c730ba332d3a0ee048b379ccc16ba058466eac6711af086e2bca093eee226b0fa4d6c628019151ffd26eac98a0ee2a0caa4ca37f1e3a54432be616adc719e90a01b453c80ecc9ae7d34ccfb4ec8136aeec82912d81dfdead74e21add06137fa5018c219462ccab2b4e719e32e42a83b0f67a8b26a60b0b05dd4d83bad5a8873be2af22514bbc415a3c30318174af4cb7fada25be1ca4adcd3f101651521cac584b5016e0c4a8c1080e68f754d31b4ac22ea125522779137a46060c8509992eab3d5e360eddd8ac712446ba45eb6840d329b5a119344e4ea1a793aba66a59c2033c51542888bdb5796cec744200c2cab343299c3a69332ce0d8f6827c4328b5fd714939c006b7a9f14eaff98525b8e6dc059bd565b00d66a5358ade3542b9d0aeed253d9622ec25b293badce3c185bc7b917d826a453525312ae02cbe0e643a12983cb8eb23e579929075faaa029e7de206acaef4bbf5746fd26bdfa2c72bfbf6db75a846e5b803769bb42e5907ce97d867080c132a5c3344e769957838b7da599400bdd926a91f2231ba6c290f4849ccd4456216088f17373ac40716288e2ab1b0649eb59a84eb5e49c6443883c962c71cf825ee49c1c74d1619458351aa28303751d52f141e45f64c528d8bc53c13e96486e610b6d14a57700285a5cf5e4cb01278f1607290cc8111a21af2098b8039ad61596d8fa0e2142690d678ff0320891343d819180db72344b6853d24e6f1d09d4fbc07f5785da162cf40aebcc632943910d72d194abce3f954d8b97464534c4056f9df3fd9f2fcf3aa5bcb62858a8a7a9e09a0ea3cf16e43190b567af0900924411484b3494cecc4ad65016147460a3cb8732faf15570186446312b857e04b96ed592f1c17fd6e282408fb2c32d96e67c6342cf0040a1af3109fd081cbea492438d21745962b93e0f58cd5774373c5af07f5ea23d687ade94450b0d293f82b1fd836661b2d2e2ce69cf772ee1607b49f88c0f605af0731f0452b9e6713d1f656ffb07f9e1ae44044e66794730d6821eb040cd8e47923b57da90cacba53f3778450b63d70dd5d1d15fa36341a4241545686b243e224c9bd055c34c7377dce7e7693289a6123e0b8d267b765923b6cf82eb9215fc111abd687e83b02b3776c9b17c1689960fd452572025223e86e8726811bc5e36f3b9a859a5f4eb9819166950f1005d3062f84045f4fe8515bb2b07939f2a0cf28792f2b241a643ba04b77ba97063b3cf32806f7e657b9b8f876b85870da63d672dba34afe4db1694dd5570721f57749ca5a8e1a4164854a284fe1c78ad1a76e014006015ce2b945528684c22650fb9e60229b1a1ee087e622b58b236c1bab0a3f00033a40b227b3e0f643d6babf588ea03275a5f292ef17666adef3c377578165d3ca503e715c1abfb95116b89b80e006680974d2870d28405fa5ad036a2be923395c4809748981f71aa879ceb55def1c13baf77888d39ff89900be9a8db119ebf9b2f68847249628164b65898e156f266c94ca22f15f2d056a0f3fc109508c522dcd8d583b1e87321166de5990f5d6be12dc0462e95d9145e7264b1940cceafb8a6440baaa961f9f88b75cbdf0d1b6ce1303a5db1d83d9c398f3870c6c27009d0adaaababe413dfd8a890a02b61d872700b24308a6ec885852880baba771037523ad52e2c3ebda0a623ae58e08762ce97bbba638fd5a5dc81c84a8f65f921ffbe9c3c975553c3080afa102c58556e5ef53f23d578160b546968ec2cccb1428b1609cebb38a54dfbe150d7faf03ff74c1b37598aa3a1dfdaa1c04d207bcdbba377606b152887dcc48aa40d4409d2a4483dc74697ebe34c314fa9e48e291ed7f3445f1b4f5f99f3986a021740718e4551c84ba4b5af98758de32ca5d33334a68c91733702199a1ddad3ca6ffd77915ea92ebcc972f369b97cda346d05991c87a17cbbf9597762ca0dd11eae924f99362fd25b8574310fcbb4c0bf904a2d79fed1ead64bb758ee30ed32e719912db1c49a24ae30cfca7c8d66cab8e975f8e9d2cc40889c98f23dc8638793710c907b92f2dbba61867ab091a5e1ac0e99804e05ddaf5fad7d76956d668e2fee8225fa573a22a1c5005582ae729ea0414c6e2a4912fc5aa0d16bfaca001d310f321ad75e943a89b21a0508ce9df7d2e8bf8d8c623829af82441b0fef2c4f64f4bc3e362de84db658985fa0d2fce3e207108d8122e4fa682afa95c32da07f86de20104427bf8c14e54348349fb551b90fb70bf807fa1cf8cc462392e7008d0f4ab8d745d9464b9587da8af55b29fbd2e7712304c869bde2a87737f4b0866c301eca69ea0d8118c442c4ea575a6f90f1ca93115ef9e28288f1c2eb44579503727a55a0abd3868e78914f60f91d287422bad5e22e74747481269d66f5ff60bcb7cb503690268c2494ee41453eec230e43d41404051dd974fca381158f8eb4fe74c4d58bf1786f83fad8662da7f22b830506efd7b2486f876e38ce45b63000cab7c44495f6140d3de959a68057bc8236686d9c9ec81597f4ce0ea8132848b710ebecfcd1b3301bf12fbbb6b70bfe53cf69b23837500352d74b641a47535e06a24868209242fe438c4b0934f5fdea094453d0b7955abf32ea12239f0603f4d1b3e4ebedb6620fc143bdb09ec82283489b30f4f70ac8ba2ab3333caa6f02528d6636efba70295d63f7bd1aaa66bdc926808397df65c73fea1fac8634f1b31acb5b24fc6f8e67a02157560b549bbab2a732dbd6fc191c72f7b96f51a9994edbab0e67a4ec939c6ec4d548c1273e65b0c2f6d2b775f2ed5f08f9b450a623fb442be594af5a1a9cb4d9318cfcfc35ab107664657580a4c76bd803cee984a512766d098186f13e370779436ef54462bdd7640bfc15182f935d65f20960bb4bf7cadcf1cb683e1881baedfb5f36c9d0e85b358b70bf4a0997b7662a733b5cb2a0456797ccb608395b6a4b670090b1d1a82e3b995de244bb940ae2c0eea523f76745589b4baa9767b6b8f5a0bb99b30fd17833faa04279f03ad031117db4d162a010a34afbfe541a916fc77b3e125c174cc43b42278dd02ae63b07aa171283bc7b919d63b1d6122d1d0867413f6cd0414ad295f469ac840c7784b013174c5ec572e2251777282d9fb8e7045fb9a04da2e0d99100b6fcd5ef064f6e3ad1c8e4a23cb0762687fe5013e6e59e63a269898da2866dde441dd1def65e39771431d56655f1d947cc870b5fb0bc1dd7609f78a9f7340218550d002bb635271288ec41b6f16e2c9f53de5d3f23e3cb3314ece474f84d81efeb9258d2d68e6281b9074af94d1843b0bbaf414c3aa282e899d11bcacf3f183eba7740dbd22957fb6fcfbd74c4ad84cb7b3e4d114f5fd4c4f93f901c4419180c7610a0e230549b0ce5ff1ab7d92f5a56e4a64816509f7f54ee35ea538537736a5e15d6a2769706780eba37d72a36ea731f72610f9f3d40c2a3a24463a4e355c364c9952f87356f761e24c1ee157699aa1d6a6d18b12a274fa5548d569b7f1e7d643fe384d2ac72f565ff65c110ff09eba6ab22fd0032108e194d97831f96fbd2ca2925ed129393239d443c5972ab93f8ad0b22336ae35e5ded7bc750521cd2aacd958a462fdd9557b6af1df2a3067c8c893e3eb1297aadfbeeb2fc58e1e4bf80d897908ad2ada0ff30e07f796e4f51a3b4d30d6fde3c8d474f49732bcd530e3fa5a2fc331900f100fd0540e41a04f45d799340548090cceeee4e9f92dfdc31264680c99da66967cffd7ed2f7c9dd431c4787941bbca18192dcf5fff534c9f10b80c4d1b83dd10172d7958241f0247d0deaad180ced783dc13fe34a5517c0ee789d546a81eac767776e7aef2fb0209d29756d7e57a8d65a4ca32530c68687819635db22a89ff445d1b9087576d7e5c80bf6408de38b4e3e0861adad0ae07599dda116c5dd79ec7998a54b9b267da967778d2fb2a0b037598a1737221f8c13b23bd5f52956c74f6f136dbaf34e48086e565320b4b0d838efce1b7f9943279c33ae561b29f56eb6b440c0e019201e0d462aea9d2fa98a6f2b40bb862d625bef7e47da4aacc51300e8bc69be5516a2b864becccd5e13bcfbce0862b84e26e2f5f6f97782675ef6af4fdd1b842df0035ed40d1742cfd233c04c172cae87921078f48c1f48ea603396b7d7ec868e89aa66dad8066566a0883e675a944d2cdf071b782b392d6410596886a8c236120a92bc647f8f6a6202477330fd7378d9e33b08df69482f5f48cd3f45cb04309130f98b249b48a6030fc1d522e1548a5dd055fa37b79693a09576cdcd685d554efb80ea8481250111b68a7a401c75dfd4346b189e0b7e2c85b044678ed42f4ee5c48926851a2f8375544d89cfe45f825ec5f138ae10de575259a28c072919fd2366076838df903c5df953719f7726e52547dc75b6fab79ebea4adde6f6b131ea9b8f0185082e69497e597df090ec159061142e2591bbb7d698d895e0952bdcea3464b08e5f3bcce97310b842a51ba38f285b5b53d5b63827adeeca55a2b7f71737aa7837f2f4bf458dab9b521ea5b80aac1b0d5582a13a9b2cb0ce9a5de97bab73d1136570b01f67f1aab9b577afc29e74664cd83a98d3f506301a1afcb99779fa98f4a0fdcae2d2e8572d2e7d5ce36b284c3f7c0eeab6670e363a42c7bc3024d0ea763172f2f72d89dbdb89a6eed3db27c1dea0ed3de97144d728ad43650e41a369ca64637f947fb6b10ef1c06f75fbf2a6f29f0f3a561a81af831e2478cd171b5557d38fd09a90f902dea3b7ee242a533ab2abc80f3cc02103fddcc9a0e755674c538d6eb3fb4ee97417c9e11c87f3ed49cb59a0729414256849a23f269505c3b732a4f1ac1520cdd9e48a8b9469f913550104087a3a5b30114ba393cb6613e5055ce568322b1b6953c6eec19a9e6f3b358b8bac809ef0e40b614709013fa440bab716d01e84365288c5af2c91e415128dfbad4b223b84a0f78f9e04a562343ad84d556270016892449331e93801e666a4a9fdf8a72892c97d4a5ab56bc410c4a166293f6cafd412e75824d42487dd64efa244b47ff5fe833fe1dcde2ab02034ebe7ac0a4f30f5fc78b58d8303e16e26b57fda74bc65b0be12cced398e4d19bab8cad784590005c4d78f865c172ac7f41fae82180071c577bd14f68c27ac2f5c7144a67ce13672efafc5c93257ee86a3ee350769685d5378967734444f5678237650e0a8da91c48867505cbfe2e6ce3eaae91545cd98108aa5de2377c385cad621d932e2a24a0f19600c327773022532ccc6be5258ef72653f2a85df3e92c716f021ba7274b6a5ccf5e138b34459c09e538533974c0b2065826d7b5dead9090ccfcadb2f7eb5b181bf94bff2ba17e24d39f849888855ecc285a1bca79615434f1da89450faadcfd5ffd174151c6a3719715f69624ae8af718f4f16a15b6554f16661cafe38231cfb6da65002c2f0e951a716c700218816609a18cf8ecb6e8358e9ee30228bb5df42232b534f7ab9a3e221a86ddf7cf08cc5418ed4d004ca885c9144217d0aa1f58a83df9ea92e676d399b852e23c741158a86ebaea2f795d377b880cf9e917c9a947b1666e9534b65e65f8cffb3ef1707f0f3cd440c335ad34bd5acbb482c19660782589bf8e460c8670fdf0108a089cbcc17a363bcc53b41590720c6adf29860c2b86d42a5bf30d9042eea0e0d2259155a552fde5d5d127e4e82306ccde957d9cc73e6c0815fc7760beb68d41b305f274e242866380cc232712138ad141803806213b0611b38d995ed3ccf1b97486aff39aea93266d9c342a9bfa14f64a9e1c8acca500c21c7611f4d0877d393a96f9b9cf8acab9b185760853507fa8afdf7aae9fd6ddac918c7a67e1c6e91f09275343be989fc9374676a1d8d21e23180ba7f462941d4c6603524c69dc2b9009dcfe1c8bfe2883fdd38421ad577b16c221259a4cc41aac116fde86815df4f4708337086ab4605a5f201837d0abac24961b9ecc0d68ab6f54f93ba29c54a0587ac5d6f878ece23600aab2dd3321e45c7309b1de72cb38988fda5163e048628ce520f6a2dc3ca0d3e72b4d2aef3b4d2d26b905c9e35d6c9eb89bd8c37e76b356b370765ebf9765c73a76a8a9b42c9f59d64e6b5fc1dbf37ad67e63120e78c866fb3422f2b819dd322ccd75a7825aed0aaad8ce726aca7d40ec884451d73e9eb9f0f3651f0e9a539fbee03b9ecd678a43887b868d6e882f62b9c67335ab308a2f47a6069840d783bc129796a60af3013ae65a6210aa96f432a31276676e46b680eface6f667574cced30d3601057c72be7062081d4271871b5b6595b103311144c99f20d715f5976c19129d24796f93eb71250888485679bcc8c6281d23b830840bfd2c6d6deaf5582169ce3b49123cfff47f5ce7de286ce788cf63e5c37a960dd59af4487351a684a95a63fe4c4c3ddaba3ff70945343ec1204973a04d050746a938d25c6b8619f51ca8575c920320755ccccc3d2710508d4964223554acf1e5d9a05a2c636953cb0108cdd01b3e40b0b5afa25faeb92d4c1e8a8a59f38f59096aa90b5d410f1478009c5383da3b752d9846c6104ab975144e1ff27837ce3c1ebf1b6f6d0cf2ffabcb0d2f8310c23ee879620269903f56b6fa464737ad5045efa617ce3c491dc75bc36ebd5aebad894e20ec49cb8fc7b6133783526a4316aa93bda4f23974bbfc81db82c413c3cc43f6bc8e87c6afbbc1beafcc40af735d495dfb61dfbf7ba3892640ade385c48c600dead2ead952db0c70fde99bbcbb58ec8038c6913635ef393e745e4af8fb51190be54d460f484ffbb857c2cf9699df02ea415760c8ac46548fb21447843e9be8cbed20aa6690f1aa767d3ed3c6a8154fa8251f78c4c3462d90f5dbb3c2646aaaf0818214005adcfe47311dc803dbf28bafa2c3a75a5ac38fe551dff29683ca1054b7bb6d0132a8b3bc0cd5ceafbca342230bcba1e4c40e0814c581ee215e25dbf044ec7967dbf9aa6d69282181cb6076842e02a9bcb15819a78959a60df69efdec1ffd730c821a05246d92786113dd22c167dd9fd23c00759af9e8ff05cb5aae88f8e5c87ef4176423032e2d7650a5bd6896a33a56aa998743b1ce2b114a980b0f6a8abc376cda1b15e2e58708db154589c2901f1f7aab802852c1c6bdb0628b139a9f09431bb47a7c5406a382ae0a0537ddb4bb2d830e25e6a7d8f8593b720119f3cb1158dfed2669fef50c051bc036c6edad9e6d671b3b4723141f8791d708ba97fff4d0b397fa356457c77bfd3490499b01f34a2d38cba3134682b9e264fd36c827dabd47435edcffde296e56a70dbfe536577074565c1f5d782dc8c18bf985ee533d37cc1ffa75c8225a45355c54e470e1e4051f7cacf386c498ff9b6e19896bd07a33ed28316cf5c7cf75653b004ee6eb7d24092d0b116203915b3873161139d2570e06b718b607c66874b8fe34748b17724a43918e8489f8e05559bfc4f09eb329a859227d89c4d89992245d74f09ea991ec400ca76554267740c49fad0a1f7dc1db456135fbe933a52bb726b279328f08ee364179b8d835bdf8cc0a0a3dc4dc8781e8d95abd212402b00d4e3d3c68d130b3725b5c13c4371d78e3fd0a7c99329eff0788368d4247d896894996647f6fed06610df786e5fd6b9c49d01aa7311afd9ebc2d7b6fa510844404dadcc81a54fe571174edd45777258cfdf84613476fdcdc4813e80c2c1b228d635a66c13cb786de7a6e205cbd21a01a85cc4d2e8e698034cf8a9ebf8869fc71fe913db620ddd15db6314da19ee04bcb1419d5ad4d18aca228316670d11c4f284742927322ee151e5b5e09ebd6ec9a69d320fbef6cf1aa6c6bd4268e7b2c800324e93f53941438b39b2ee7b6d1c18cc2627f9cd22b37d30298349fcbcaf543d9a22ff2ad39127ff98a0b8d74689bb9ecb868cb51a7d22d32f56841a10907c649b94531d77fc929d1a8a8dfa45c50b8ffdc3a9a4d5159c30be72e08e10638ef8f8aaafa950e233449ac4f442a6cfb5b847983a066bf5cba239eff9b386aeefe283f0e525f9d6af4fed7210e23e1c8f167b7abb8e312c9a008717dbaa3ac430fac73fd0273d99b5a21493bba0ab1ba02e213887469dcbbf851b2c8deab5567f8595304572287e529e247cdd918557164fef00f7bc537d222fe6b233b12643519194341b3a9a5b8b2fd1fe735c28cc6640552d71ecca31192341d4868936b6e807d449c34680120440deebc15baf5f6cac989ddca15a062efbc8ec3399533adb38f141fe818f316ab9c1495e89ce3f5d987460891489705b779ba96f54ddcf6dfd8c19cedbf722a313445dc94fff2574e60a934132f78b04db47d3bb28b5ae2f3fc9600386235c6c819df41e0f82e2747f9b63ae7a1b23fcafe3a485aaf50b70eb01f47370e86abf73465e730791b406aa28deef20e65c28d9e772bc93a3a0291b6219d1274622cfb5e758eae46d5b1b9a9b19a2af068d01fdceef99d2f722b7057618b174a077522aaffc06d1e47adc6d96deaa6246c0461290a6856227ace70ba2201d539c173248490ce1a3670289fd8bd41e414a2e035bf622c4857b1f2c35d64049b8c3c7184e461675e2a3ce55cf3272b8c2519e9ed4fcba9e89edce60afba4734d4d8b8a15e6b1d36dc775e9a2737a06239d4de05b2f56220ff0f121648fb3e0e4c3242e91cf7a7c8065791456ff8850c4bb0d1ac622405b7922658fa4fdd30e5a8600e7d05b0f712c65c9724c248c79ea124d0d51ec1a4056ae46e18ace14e1f6d08ce7092d702bbd13227ba84d98deac01657efa7159769bfbf53c5db5a175cdfbc1ceff7fb57e0ecf0d2186b0a88e8efe1e9d8982bc3fe7932d0802a69a4ff9947913bc01918dc0c212915f6780309700563b4350914568a94ca48a4ff55114de4d732972896b1dc46bca15f0aa3f2076411c04fe183bd8042bd6d75dbaba24d2e2c003098f6e909df9f69284aaaf88de59e02a32d3da138f7390528169375492e5b347be91e296db98f2e9c42e3105a8836cb7460c3e4cd8ef45ad1e0b9ad455c3dd8eaa5b9e67ad0a68e24cd841cdaa1f292167b82352354031f67166745d3b5176754347487c1539b1af0f0b8577e4d1fdac1d3144f1674a9203b6ed73bbe8e50805b9c7f833a7542545ac9372001930608d160838a1625277242108d0ff366566b315e018bb85d0fcd0e853bdbcecdd01ee65f8cc2618dff90c779f4e304f8f94a395458c8c11de3f8bd62f3c3c316c8a9c30548c0b430ed7307492421ed444f5eae9d746ab8e7b914165047b0afa66289f6b99b2e7a756677f932464bca49edf78e300c7248fee47109344762bc49f83e9cf603c990a5411e87a7308bfdeb2276669f84be3f06418d62e57c57137db2f27ecb67da4b85fb8a8beb88c3356328a641954edfeccbb711085293fa6c72c52754d00551beaec569179f0a0ff348f353ad70c3a50653c78cc531e06abe3ab9272f4cf9d9b4e7ded9132afcbe8cc43129fa58e524ab72ce4971d173132da1ea271b32554b4928896fa0465b629b8d9b72c693d7214f73e9394a0c7f7e4943aa55a88f8cd2f5b3ac88e5dc29f384ca2141a4b3d989ea7c84174ab23e40df3e10332a65db83f2a4b7e45347d7361257071c7b8e42a0fb04901534ff1e482d8cde039dcca39b78218b07fa3c4001d839b42ee38a6c30b85084df5e5011fd5c4d1a5f41b422b10830f06262e8d39baeb5ccecbb8dee5b76be3c4f857a23ed8c51f0550d0592c4d10038e2c6b7ffc207565c5b5ea3c01f173793c1267d64a8bbc7c4fef0dd4193e74be24c6534e04ecc20cbe48b91b3a57873c5a69a76e383c033226b034d9ee9baec50414c1b64d73f439dcbb03dd9bb583efbd09bf542562a9f66ad0a5f60fe463d168906e99cb5a168dcef3f8456ad5fde3d5b4cff2f4b2f125f8b54eeebeebe0daebd00f5ed22869d24a93ae9caff7c1ce196e21dc93663c161f9e6e09aaa7d2921124ef48d765f7428e965d3edf90dcf00efd1c782d81d1dc1752ad98799e85472d8b49bd86763f3decf46d24124e098720d178ed6ed407e415811956fa043972c630b3f1b7afdbf475eec9f2aba494e41440d3b98fad96f208ad3d83328885d5a30f9af7bd921fd08defa119d02681772bdb1a22dfe611ee263c19341922d3e69d035657c18f4332c7455a3f19824de1d64846098499545c6db726583a83adddb082025f1da941ec1a7999c0e39952793ee86f8d68766da073e3dc164c226f8b7081749bdd4e0848fdc487d2ed3cf3c24abc0f29951f5db035f3027f44f9ecfe19838743f7b2fab3920031c46b8a7e65db0ef294055c1d5adc036fb8314450ea001984d7779df71d36660fa9503d6a692d2cccfc022ae6060a5f10dbba80ce4657566e826405971f1f7a858b1bbcfe8526b71a0130845426d26e11c82f3c7b9b2bd581bb7708c55523b9f99f09c4073fbc1150231153278ee4da94d49328382443bc36abb26a9fbdeb43bc4e9fe57310c50b8b22c8acdadd6a8cf1df7b3e7792c076ca63728053eb564b3bb6bb25f25a010b3f44946ad1fe520d36cbb7af0d01a7db11ef2ac1411518ddb2e63f25e19f896d19c4d0794058f3b7db650457e877f98094d418054dadcc52ca8f10371ad427745dedacfbc01075969fc1294658f7a27362fde69bcec86f680367ab48fb1f46eefbee436609658941e8da15cfc52eb47856c1e39946004a88685625dd4497f78b3839b59557694440d07f3585112b1f51f4c1e7bb2d6d525687894b06457cd8603a6a8eda07fa4dc106b3035211f5c137684915a11328a570b2542c25691a12d433e9c61ca5c4aa30573cbfa26013aa69e912ecf2c71752cb2856dd39198a98a7f1b6db3b8855bca04976ef43a9169475c3d268e08cbd8d3e4500a889d27197f3832cc52d8068f21d1f3de7617a8f34e030d1fb162a8e6cb16bde206c5405fe2eec3febc1aa8c4534a3c10a3abbb22750c95b724b1b717634cf0c99d33059a1bd8a9b2d6c2373756702e06d5adbf1c4679ea72643cd8f0d2637d2e79e5fb63fe28fda641623ad86d1a35200ca88d24ff38db518ec7a2667abfad0b7dcce0c63b9527cffaa9ad57c0bb387efb4c6898d6335867a63ef59327c0fc0a67a300acab35803181d3c195cc00b099b7b463f5b335eca5cc89b407ed1c20f76a5aad6cb6f882208c0979ea4371684c7a0d25651cce14f6dd4c9c38ffc1e6e64c54de61b3294fc6e4ba4bb7927796dc2cb738c442f6e83c1e9612a0b950af4265d74f805b541e89e658006be084372f3d2064cdd424dc975413447d5d04d1d5b9e5bc02b11d1b10b6b6b7c68f93bb9d52c79a7b8b4544d07233b4c4408b11445dcc582e73837674d33eed398eabcff33c2265c21dfbf0ebacc6de4913df9e4a882c55387e314c576f6df4a4917dbc987f18ddf182057d4dc29c0b15caaf13eca60a9c4ae3e4cdc6582a28af9854c01b167c382f10c284794da1fb78bc38172a1b01bc7bcce1949f14882c808368ad19b130e165627aea17424fa67f4a49825acc2e8de34ea2a9cef49b0916b510929b4631ba5469833d23b7599a369bebf8de4b898eaa25328b67372a8427bfd4477aabff52fd8a12af9ea7081d80a72af3dc9c77b1db898ab121a7c71a771ee997b610ddc118b53c7c0494f384249bcd736f2aa7ae0a2daa1cee97539cccef5b9ca052198fcc9cd7c1a9960561d850a10a56eaa1856c817e96ed9c97e90554b7a2eecc0be12444f2e713349e81644f1592ed97039e3ff0bd78adb7af5ad521bddc8996381b52180057b3b984dd6400f37b03ab08bbff19bb1b541f012ae3addbf5a6f1361ca142b5dd8e1dcaf0e65db6372cd6935363630a1aced21ab7ed5ed7409a439eff16fc935418a3973179f96085a7ba6d566002aa943b72d5d628a4d2bfa385bfd1fa07770ae8bfacd972dda56a513065618bbb4268e14e79ef8a256975772b1803820ecb56db7a963327cdb108b0288100d4118db0fea974d938390d3b25d4e747d750b9b8c0c151de9bc3af15b3b13a550d0cd6d235a509d122b27211618d79f466b420bdd084bc2fccaa214fbacf3c0447214c24b3e859b98d80603abde881033e56fdf9e9138c71fd51df2f06ceb953913f06f4276f60fc018afcc8c722f37206110e8274a66871b2fe8af59e4fb73bada6f6f8fefc7d49ead2707f4f1bd38a58abf8176089529b37cb7b8400d1dae56dc3ab38846d8d8e378020db7e014e76f60585f50776c7723290c312e7875c3b7737fcb2b2252fd37383c266932a55c9350a5d492d60a1ea7275546591e6307695bf95b39432c6241ae80e4d5bae969adb543f41dc01d89c6923bbd35fb7157481f5a5c382d5a729793c4174ccfb7ad05ec784d4a4dea06d37176f2bbaed44bdcefe88c9092eec461d64fe3c8925cd28062b80e8a1927c130a01fd11bd2722869854c242a672a505a02dd0d75b66e7426d66b7b05774e9a2a4bde8cec611efdb076a60b0708e6ed66e65ae54e0968b11ab7cabd03bd80f1d073efe91c10cae97b001dc53e8dd0e4ae308bfb1c3be38972bf59d5b33788e961458c1ccb4aeb15e2e9cd28d7b2845939d0302724dbf9f8dbb90d6d98e358520cf2e5ebebf0678dda8782497c33ca328e840bacc1145624c40a118a496b3c052f307770e1ad330263003617f014f61ce0484b65143258998c4eb8cde6914a014e9a0c466ba1d74b2495912c8dd2093928ded3a7d46b42d5e57b892b5ff434108a7afb415974160a118df4f4b1ca930302157d72a1bda839d454b653f18d8b011bb5e6e55a63208fd82ce6fb42ddf81e7aad5ade41b16578e2496cd7676cc1c165203ed7c960efb928d2886330aa1021b10895e4b016005c567a3ff2fc805cac313d730e551902f7f5bd63b5d5f0e9e93657ff8cb637aa46f94b84efde3e4cdb8f7700331f80473327594f8e155b5e0f26a5e07d9d257dd1fe2540df2b57ea7cd19be1afa17ee418783c9fdcd16e94037501422ea44d35159d820f94573b0b29773002c6a943de921c00155d42c0179847e9b46031c2f2b3eed4b0c0178be4a0cfc10f0da43a5efabe72ab31f7626d1c09ac06fc12415c30907746941360de219b3b4dc63ff243edaf58ae4ea5595ff98246d808961a41259ff95d9ee527c00d60146e1a2da2b7c1570a1414fabdb020f69a0b5e3010f74a2b7047f9d9556756936a54f6a67df87158fe840e55974d8fa224ea72c498d6441e7bef62eccae9b498f0cf32a3fca51037b55d9fa2cc5f70a6bdcef9a5883469b6be5d33d0079601f58475d692b1ed1054acbc912d3ac146242efbaaea3b0591a8b963ff971b24735fef6510f38c5400a269899cdd480663b170ff62cd0e52e0455d7b426583f34192fb4adfe4d954afbf4141f534b2763d51116f61fbd23b90094b56b079b72a8289b3cccf664014234242784264934bc5db7959bde797367ed0a6da7400b6b57ca14d78965688cc7a9fe904008d5c56788d0a8c3ad00bb06e75ca507db293bb81495fb5874d32c99a03ddcef742e72be0c6e4d28c914bf04494834ea60a282ba8dc60881ea634434b73e7037fabd7c2620df7f8e8608b007df73dcbb2ab873a24cab510ed8690bba6fcba92c09a89616c0fad34ccee98da33ebed2502d29aaae5fd0095fc2ccda79eeca0748caef2666773eadf69d912e7ddf6c3f45ae8c040ebb1e7618eee96a1fc85d0fee0644bb703ad7596fea01cc5254d2cf151b618e674fa0f6bb7825995b4c9db1e421d62f1761754d3bceb19a3eda6486e5883c8678036893e116c1af8a85f2563327a28910cddfeb11204ed15a95e6249e253b4fe54d487ddffa69b9ee75a222dbd25d962538a35867504df89625be0d7f456ec25691d3ce31117b8d43e91afb782b6b906cbc3f049b388f5487d8b1143f16b19d0d309034f5a93d40e669b9dae79f290572c42b26397430712b4d349a4a2c8afb979992df114a75ae05dd1781bc396b80bbf278fedea4ca259369caf3aa600b53868522ba2e1cd11c7c0bf81153b06835f89482ac52bfee2dfe4812018bbe26d7b17b7d3d4aa0550ec044084541427d174e0027cff188051ef4253a2c88f8ddef2454793979aa89b57c613906ad16dc610e6c13638b1a9c20dfc317ddd74d88982afbda761149cd519498eae5cab4f5eb2ef3001e21a597d47afcde3cd79a660c9480a690f279dd5aab6f777316f7469e9cd281d9a789429ad52d211749a51e7696e2508d6986f917d72af7e3c0fe8dd8160772ce1d927af4ba2677e9b96fc96d9baa2d55e79542f8e725e510cd69963177d75bfd34acf31c6e61b777ebd1fa010274ec887e8d8846568fd01687c3db1549feeaa563c35eede1c608dc56675de9417397dc3f060aeb5357a541ba82b6f913811b9fcb183a1ce03f6d376bd0239a6344526d03bfed6956bedbada1ef8739c57cce81c43a0c09a330271dbba52d48d65212c513490a2d377cca056390b079a19cac875acf94aa667e89da7d043448cb8b9b56e0702fd6fd7863067a3e2da47ff7fc3d639d7bd7de71d2355b76173e047df67a2b985ab77343ccc8d51f039acbaf95fc7bacbea3b82ca3c952cc3df3ed0a4cd084ac66eaaa1121c1de4fca73075f63158db724ec63a9678a97ac68c5c38e2e8865b586bb19089d246ae6e0c14f54b87bc85d05283acc052a893ae40eb0fd21023fbfa32bf509ad7d576570bf233abe59e5ea72e3fae3a8d643f3eb3f1d3cf29b0b8df50f68e0128875a4e8fe001b87e327ca873612bcf2d7f78a80235eed6954d58c1a43c85a2c2ed06f3dc1fcc2a98d4f9acb87f8f32927abd1981b9892fee01198a2319ba8fef4563f2d97f8e97f14ada4b9c0140928d2f1c22a9ed805615b5f39eda93f4016d07e6b275b48537b28e84caee361668e1b3547c5af24eea1d1abfdcd42bddae104894996cfe939002119295029943f8a9ae749f65516fa10731eac06b32cb4fcc52596c5b4dc116ed3b2e68de1e9cc47d707ed7123a68506ad453b9f2ae5a46a2e1a9f1f9bb7db51dd137aa97058b9217e3ced12bb88b103c7a9d934b7d606928cfa2d37ea8e4594bebe7db2a1e4c8e8d7107cdf50c9282424def574d0803fa7fc3c58e1690c220ef8cee25eefc7b182dcd187683faf43e4250a86896afd4940d13669d18c6d80c02610fec13f4bd411fd10cc31b6547644a293e35323498c72e13640c5e07d48cfcdca694db57760691705a3bad64ce50eb55ef1bf7e166ee8469823011b92254f4a248f8b1b0857311394193cd34301cb761bc41d0c3c9955ec02211cc6981719223baba842e1ff595c68a4a3273e9c1abd2fcd3a38dd200ddb3614ba919ed1fa5bdfc154313b8f26e87609c31bd57534a488e82d8cc637a918e1ad8efbd0eddb09b0d38ce5bbd1f34534b49a9aae2674def1c4ecf920b58e709a3b7b672324097a4931b0d1a6d42a86cc1509056102afd968220675ea95079a1d4a08176cdd4807430592b3284cc9f7fd8921f405e8fb6b6c922377e8c088ab189cebfcad1ceca969f675a1db0b593f920f535e557dea53020563189c483f9e451c04e6fa1eed826060926f7752ed97f8db2d52559b5ce8165790c646e42c6a9d294c25144d29339d4f5a7ec711bfc89eaeb5e639d6618391ac90848a6481242f865c060839f6c9f5ed7389c37772142cef05a79c9a3f6417c9c5d682598f5901abf44d3831a852f58693eb34b1da35dcd929df5085239edf8bfe6f70f27d0e1180fffda4856194b66fd0dbce41f1fadd87a9deff90fcea27ff692409b78b496734ec993b7f7584e9f625c664df4f0c169ab2b0492c5f1ffbabd58cf346bc3a0307c770b7bb36afaf486c2442107b15ebed4f9040e3417095768613c183b9565b1ea4bf1368055ea72420be5b37c635e13daaf3d23c55ff2b1fd152113e75b2f15d458b51f6e6508020c14954490522efe6ac0fc1bdb9bbdc33b7b614e4139337732282ed2760c7701dd0f900d7f833c37046a3e243dfc0832ff0c5f4f29da72bd154199e189bddb57d04707b7ea20d00e852b5da1028d24759f709fb94ab9a67b4fbb100c8376a5a3fe6c5828fedbdd3d2942d77be99ddd8d920209f214f0f228939e5af18e45ecb00a87c1ec6b9ed9ba39f887d352d56ee5b85348c73efa416b646d8673a0ee6c5c94890ab1aad35c465c4a8d8dca71252076495014a02f10a26886bbbc974bd5403b80beba13d2ea8135415f910959edc0cea1afb4849c38b058e8ab2321ed1b5813f41547c8d2687e410c6aca45e59cbe730cef51ce465207d553c194e500ee532582da68ff3ccc7e000be4f11a2d7e2ebbf332b982eae29426f001e08d7d52fcbb69809194e23ba09517046b8f5baf36d4f711ea46b822f2fb60e2c28284524cb8b30b33318d7fd0306a639028ed003bce7782391ef59d41756dd4b2882d24de99b89e2035eab0056c5bc27d988726f4340868fe4a6a049502c0a2921842d0fb44fb683d1579cf6b3f1483a69e640672f2192ba11521fab036b32ea5681f0af704400cec7f0bf7a6aa6788b56d20b7a24021e74f7b0b776a3b3ddf9f83f1115c25eb2f10871e9d3c5272d56282215f2b96dc71a8a1ceff42d1c76f7fc6ccbd33affdf03cb4bce6e07763db3ae4f66364f479997f23c297c9214ca7822a2567826d9e80b3b55bee47a050212873c851983c3d11baab69bf2bbfd4fed1c9abc99f35df947cf21a8f8209ea61a2e533f44dc72d96ecf1df28c179132062bb1f20db9443f84801aeff4222162dfec24af61f8734db39d11532bdbfbe0d3e7e9b6df4ae394b8447c9c3b75f2f44c3084647434362af76d23bd057f58b56ee0b10bffae8507904111413b5990e4e59111889d234a9010ec4603db6e0e9d816370c6bdcf8bea68e31b618e710fa48852a095d055b6ccab3a9c2a3d97d18951c58bde40cf96de0cc2f3741ff063ed7c3e3fd54520d74c5582c38f8033735a1b2c2430d504d04e49bcdee2880a94483be30f6052eddf00672ef0940416f00851aca86200645aab3fff7e023596d63eb183ac2ffaaefc8cdd10452803d40df9b9f67d3e1dc00d283fe09cf712e672507041048a69de6fb3f60ad230f8ac3c24e9d52032e1bc42d9d3004ac5fa4220b6bb5c01874a9c9d9b82015bf692b6597fd1afeb0ee7b4f6e0cb9a80700498215d0f9726efea9db4a5eb0376dddac255cdad9eea32223060319f4c9a4d4edf779c451f0ebbe878f7ceeae3b8e89b3bd67c6c640c404f8c5262702148c420fa287bc1486386803b6339a07376b28c45b86e75b9d3c56d98a3ed34dfc956c4d479e1d374199a54c16834a1db5799df692f2fb5283791e131684fa3d5be46e4a540bae4214d029752a0635dd16641427bca925d3f69bf60b959df3313032efd1f35af54ed127ffd6db084178ff48f2fb7004b4611626a0818ef3f9399f1c522215821a21a39814d1c87216722efcdeb4cec26dfa7a2b6941e17833bba00cddfbb841fef05aa3be8fa0321256f96d826b365f8c2167c0b9999e647ae9f8bc1eaa415ae0345f93704ef1a0ad84aa3da838e0bb4a814c5e53441385a438d2fca89b4a1bb11ef866c888ebbba8b3580aeb30a876742210384bff25f1412bfc8149a51a74d3b579ec790e0abc07e6462898c47776bfb9b68269f1a6e1d9b144649f6cfb525a0b92237245fceb12512c9f59f07b864e0acad0a1e5990581142ecfd365df1e6bfaf4cd47df6febef0e408bd380a1b7b2c2f46e49eedf3083a3effc68302308a9a7615c55090f30d0400a2979729c2b17ef99b2bd10b4e0639d63aa40b58d733d63a1ce473262abe8b4ab68c0df29ca8ec338a1ebe6bb8b16e676821d1462190fa6fa2d2ac9cb4a2b9a30675a222cea6dba1225967b2f60e001eafdee57d2931113f0ec6601de116505ade6a4b866faeccb97555dbc5701025e600fdc70f14dd07b996f464c47ef3268444bc2d968b2a6a96891549a596561123a446a1ccbf3f162a8b40cc66652329d5449d99d41da17aa300cb0719d804d8571222d4a23e91719cf2ffce94c5fefc79134d9633036e3717b6429edb80e4893dba76fc87a7aa08bc912ba25313909ac41fa0f3453c8bd5e3f15502106c6618eca73641aa1daab5584d08fc6cc1ad54d381ef66e025a82290620182e070ea8e475a15d0b82ab29fd1f0a9f5cff4cd7bd018d5a99bece5ecfcf95f800dece4bb4460c2896efa2e6f22b40c1639bc884cb803715c971eae263ad5363859eebf35731ea93224ab50962a0c97cd5c628f77ca6a8d326bde1c714e5c1d6aa8dbf327e4526ddafd4cad74458eb40d826554334e92f1d59f3e7a2d6b74b8e09a3f115eef5b644324352a2b7407d08e68e372b70f0b1e126f2c9859d692481fdb94e3a7d00fa6f4f7d95fa5ab5e70a0642380099d739e3323196b14d75c88691ace95cc3b794689a98d764e9905c483322e981cbd28b12aed4bed954e39baa65e00094c5abb79367ab96d247f91868ae2ba90ea273d2b115c99e5516e0a36762757b55b0f553f9b58e5337f229b5c0f50bd0a7d235081d9b321862b2bfedb0628f1f3b4238040f74fc2f8ddd59b9d8b6b87148f6b4c09b00d2a7368ac60e351ab9d782f8b23ef81d00111739a05efe5a20b6549f2d2f00b356246a5dd7de42e403aa14122f06d88fbc9ab987c36c51a274b73118e391f7566bd23b6ad1837b674cec8c01364a0eb085c9266fd00f0f836ba06bad16155b2108669e967203b14e0cee39bae8499a56471546d7c4b9e862250017fb202e57422f16dc1da9990ded196b21df57d23dd77642e94da4ff9c18d36012639f12f93f6e9a1ac063d1914e3904696486a119deaff8202fff96400758f80e42b9dc2cad9d02866e487f2e7740af8efd87e14ba5b261359989692227e62ca6268bcc0eac698b9e54991e4de2860f9ad0b3036771a42f6ea2e36e9057f98b89f4cf863261569b2e8ccecf5120c1e65202bc7c83e04b54ea0633a7b965f2ab234c294e23012ab8ee496a1f1c1852d4af733b564106f4c070e6040485004addc836df5eca1fa67749125c09dc5ce2a5d91b0fa82e56a0cdae603548377b2b1af0f0e66a14d43622c718f9b1d2444cc243ecb12f5e7089419277782202f57d590fba261844931baaadf9f64c83d7f644045f6c0327c0dbc8f9768fa64ca22cc669f5099bc4cbfe6f8b45d4cf1fb4895bb141bf7e6a9c2434f40625331a696112d7b1d5c33d097043b8fa2485ad67c30f7053fb4b61383d6248ef1cd80a58e2e55e68424727a69fc78152f20c9f4cf550f52202b01bf16205fa1ea7715d2d3355d9f83ea7f6c8a3851fe877e425248148f32440767917018583ff111918167ff4d81a1ef4c11ce4501dd8d089437cc44534716e00a2102da212dbdd9d63acdea1728b7c4c8cc1126f3f8dc01a2e8b706ee3792bd1521cefe4be597c17b801c9b9b7aa0983f1b046b97fad182c4b7991ce7af2f23856d3f60afed52e14edfb06fa51546ae073c275a1e7dc670aec09d1db315011855893177f73a210d787f6badfca46ef08a36d5ee9a89aa183acdb56216f67af644c225b5e02b3126a936962dd00688fa5dd835b1c035bc29031e7ec7171ea91d145d1f505b6ba770e49b3021ccc024a161a715a400c319b0e40fb2c9691e014316aae00a94ac552965503eba3d61989e67d0c6d0193294319c8c48afb173c238b5fc34cbb322e609bc6c813cf6864ba71adb9b6551ecfd72a6060736f04f5eea545b6adedbdb794522629a5dc017a066b06910725054f96186851060c350a72b581ff53d6ea0dbc50fa3c5195fd4f497e8f8f8f90071021aa8d7e4f49da1b7db27c7ba33f2b9bc6a3b08e22f47abd9ef7dcdd7b23391b7b39ef792fe7eef657a060a2a6d1de47d6ee0d8bc05287224ad0c4d5b4bde5a795a2859f95b427b2355a2974823e4ffabc85b2e7475a94b5bd596df5cbcaaf882c671f82e5584910c5ff4612b548f6d99ba6bd5eafd70b6b28364691a8521db27928f7f9f6f4f4f4f4509a051f8a9531257b7a7a7a7a3efcfc8f59a2c7c4d54c1cf998026dc1b43eaf77cf831ace8ce9d75184ecc99fe90dbeec43a2d6c49922f95b2477327c9f3d59ca9e22598da348b3996d839007fa3572a623292549f249d4a1fb74f6f4feec0bfbc06612d4694682524a9ab8274182922409b2c7c28f23091224489020317b1c0df3d9a8c3ef73cf17766292c426aef5c30e88a7f8954ddc07f68aa6095907c4ef8b344dcc3ecfa867138f4fd3daa7a4fdfb94b4b760470af83cedc32b9a3ae79c4bfd63498285ff460cc2f7d24229d61bedc4b4d2e7bd1cc75721447c165f2424fcaa164b32e8ab8d3e69230cc3300cab4eb97ef0b94ec16858185e1a46c1c290527d7528bc3e76e358b1ba26d3b00f37c37d8f4d1cc5e167f2b5050c8ee698ef795f93b34a5fe7f01343d3447e3f4193828d3bcc378c827990867b69b60e7020e8ccb80ed07c7cb0f4b7a38850b440ea6be268677e5d8740b1dec2f0c3b0a4efe5d3c0174351db445a7e25c95aed691805fbae66b5e784bb4bdd280b559f982a8fc9490c9f8ad6e9c26f2da3698d9f2469a636b5d6349aa6d134ed358d46a33dd5b4affd2e2590445ea8991bbc70ff9e174c13dac4d193f617aa787513cd34a1ffc2086d5e30cd6bda2697e1ee5359139693c5aa6144d836d926eb8465996c9375c2b24df7359c4955d75a6bad67ad75d75aabae365d86e09e385df5a971fab4daa9c9a9c9a9c9a9c9c936515da83fbc2b77b773c76c9cf3de139bf75eb3f6aaedd61e36dde7310ddfc7fa7f34fe1f9a85f2fb6e1fb84f79711f78066f76f2ef6f32dcbd8aa6dabeefd65eedd95c0892207245932b9adacb555e45537935acf672154de5553420ec8712d89b7dd0c491e4a780efb4b51a4973f6667f834f7e0aa016dca4d31f9f7ebef397c0dab00ee59e996cefc725b01fac0e2d366dada6c1fcdfa7b7fe6c929f01445cde9ed3da5a6b15aabd8ac6674d985dcbddd9aeaac33aafbdaab64b7b9cbd12ed95fefefb30883f03de2600323ced81741019f4fb01507e1fedbf8ff641255099a1c4507ee0b50f6c489a1f584bfb5b92a609f1c2d32ebc9f799b262efcbd704deb4476edd58931d61710d52b524aa9689dd8ab535bb153db0f35fc813b61e2c45e39c1579689b5aa434ee802aeac987562ad4a8af4a184ad6d7bc1861eea10ce56d4a3675abffed0c37e7d81e6f4827e229bbf0428cac88f478bfed435a7ba84fd4093eccdbe26cd5a68e2327ba843d9fcafd5481247934efc1774507b9aa43549d66a16f735f3b3370f21ac266b6f1302715e9d4e7eeacf96d1681cc7d1039ed1951979605462341a3d302a61348ea311f96178ade871ae985d537bf4ccd703b3c48813df3fe3c6cf26eee361404f4c3fd43ffbef41dcf7f97759a918d2bf27689ad8e6e3c6afa1696434be389a26e8bb697e504fdc91358d28873b9a461814217e7ecfeedade4494f4f412a7cf9c2d09a4f9619c3eddc327aafab41f6964f4f18cc62adaf1705eb1c327d4c183e3ff843a78e0203cddde100c679f86d0eb9026f0fbc93b319c1f953558e3083fb1d98172a8431e2e2da80e75b8e1287bb0d45734bf27b21f58e6ff460c4453f644752ce9994bdc1df5db3e5aad6c7c19d52269fa2d3bb848f7907faa39275c95ea535512c18cfd7f2a69fe581ff17f5eff909546d6a5ba5497ea920e1ead625594b9b61504ca0bf71886948af27ae89a90f6eebdf756853efb291805a360615e142d547dca89a2285a9b1369d856107c401fb0f22c93cdf958272bfe88a438137dbefa3f64ad56c3c0b74db6c93699f0f9bc4ce62393c964d6474fc93296f9e8281fd0828f8f2c6ad4533e16c21fd92803c5fb638ae0fbf85b194d664126eb9191b2994c94fdc8645f69d542f5a9b2efa9b227abec6715832f9a3810da87f6a17dec19231dc77b9d42ece3b8c7fa241bc7247187b2f04170144371637126d651a4f22b8a264e04e46c7f5daa4b75a92e6132610def87f4c3f786f7c36a45ac6d0581862f147e57b27b8aff09893810a12c94ed2b0b3b74e8701e91d4c964e801e5a2f2385aa0a819b6150410682a430f2807da1af603d0db6a4191bc26cdc7bcb6f3565333d99bfdfb40e50738c465ad62594d1c8da2b4bc3e28876b52a46aa33bfba1c49bb86fecfbc42e983f3bb3f6a64d882988f6a17d04a1b5bab554eac18307ef20d441c3866a93ea40ebe0414a8ba410935dc5bdcde6dce65cfbefda8792b437277a7b03edef9a2eb1113197cbe572392364fdef6aafdec6d67057a65c99f2e75b5713476b5255aa4bd6566d76c309622075a92e01f16b73f5ad23473e077bbd9e3f48ab3218e5404d4ac503ab55db7db07c7bdbe5676fb808a91f4cec81f5c07a603db01e58af08f95dedd58584154450b581d6c93a8d6fc30eeccdfe77aba6f97bdb269e657a80fd0e42d4b2f51d11db4404f3eef5fbdf8733ce04677ddcd1777a06ff6a8c35ce57e75cebfd8cefd78b7bfc83d4f7debf2010d98a3bfa417ed556f1777ac67ec3c24f83ad545b51ab5dfd77290442bc1409ad3285bcfc6ab31aeacd7ec54348fb14098d2219426a9104e3f5aa0ed15afbbe120041e5d381a0aa8ddeafe577d6dac3fe197a26508e72a066f562d6a90f207c00090909a988c51701dda00900c124b29f1f9df7026c82137fd5e653e4c5e6adb6afd40ee552bbb1e69966ff020346c843082455fbca0a8cb4022385a0a708fa1aed65cfe1241a6ecfad409ac81b0c47caa31ca8532a118b388b62521645b0352e83c4d94151dc2b6417c17ae06bd800c6cb22a572f15e99be142cacdb49b81b83c08b4f386911dbd07866b35c976432d9d289eb4b32191e99ec853c84a84a325948baa58d748b10565c104db47daf21bbf95decc2c3eda6166b90b8ef4a7bf99d3e469ac8ef9f87364886f43d2c7147dbb7a5330fb31244885988cf05494fdc77f59dd79d89c48ff310628ca4440fc8000275089cfdfdd9db2fa20758a6d9cc49fb8d96b7b7c2dd58b337fb226e4137130f43e284f2089d42b29d818c567d14897f1a6c1bc60d5f8beb14a761431e929e38a193e61075e80119d4a11174d0854efb750979084191d0aa71acfd4e8f59ff647fda3e6a73d546e916929a37fcbcdc9c61902217929e24adf67ec31c6612b781a405d9a60b66bfe55892f6e62f969ff5bb2b0e137e1aea55c53abf200d6a11a3a03b8aa4cd2071ce44de214d80ef3b87e376ea9f81729e296802dd30ab17b1ac5fbceaa57ed521b1f29aaea3f8ceebee4dcee4857787a44ceee4398f72a93a2402dda01c4007dd73750897bb9cc99dfc09e806e540817259ccd0f3cae4c43993689de9b46007dc71d50bd08d0c6bf26e7729f185615367538b5845063d9b244d04124793483ba409fdee5b046916fd5d47510e997ad63e2c0daf09820a10ead04552f1ddace2e69c4320f1db515187f4db773b243d7134c93fef5b87c2bc338eae392d55a24eda878ef25043850eeae8ce29ef4cb25a9364adf66fb3611c0807e3049ddff7246da6310dcc828298061dd284065f6f1988c152f6a09984471f5d8f78647131c63148a71aef71cc74a8c67b1ceb12e580ebd236ab12e57071b426dda52313c469b32eb92956fd06cdd8599e1f15345ac076278dfc70743a6852ab6acb66f52fa453fa5dffbaeef94506290593411a665a05d27c3fc4e99f5f5bbf58f77d9f02e8fe909adfb5380515a9e94ea416ede8754813fbfdc4fd29fe7ea2fa752887a3f8f6853c8010cb31ff378aa610e540ffb74964fd9a34b0ac05d16a4175087fd7535c77132b91f871b420af4352ebe1db17f200a203e560e28e6c75c8fedbd760379cf6e9f88da1294439dc3f4160f3e439bd035d00ce71e6a7c18654378516638cb1c576e3f663f3f38fdfe397099ddac4953f9638f13f73fcb469e2137f7cdcfec76d2b334dec179f6ed3c435da1fcfc879463c239e11cf886774afbf078eed68e4fe1eb851893ae4d4c89d77dd03a3126e74ef67ff658fcb2d8ee1fb8f25fd70efc7f4f197f477e9e6cebfff02f1c7327c5929be6cb4f4c417d878463c239e11cf886724d2b1ca8cd2d96c36b3e2dfbf3a45058cf86d07ba002c4474c70bb038333ffc7520b262f8ce3008e82962904113a7692e67d8b5dc9dedaa3a7a5a2c6412551b7ef2ef5bfbb8fad6a4197cfb5ee23c9cb8f143fde16fdc7efbe1ec41d274d03fafe689bf8369c2df4f11b7cd0fea994da26aa9f6b29e7414a11fbf58fa87b8c4e9ef7e06c0b8ca702638cdfcb8d406a02098f6ede31277844d10d85346c525364773ce5ec372ba9c2ec4d9b8d82652acd9dca50569dbe4a3ebf83d6459abb72c2b896c0dbda7b4f0b2f2c293e58f0dfc9ff2dbd1cada5b2833fc859282ff2931845efb9e32c3cb0239632e2a21d0ea91951add978c1324a170e6c71b12886481b3030e0c1b868b841d08a487c450eeeeeeee1c6ce9ed2d8a34fb862291e487747e5a267c5124152a04a121951bfb62c6825c9a3a2be04c456162c19051722d32322c70d1821c51ba90a1b2c1e300339e5e205932634d97fd824445ab23e430895a76c260335527f4c890333e73ce39d313339ed29890c5850aa9386a94e4780af2a4287b3973ceca43c7c2de19049edc99b3943ce1bd2990c60a0b325d28a4be808adcf04a1205468c1f5d82a001bbfcfc582a757e5c4a4c769a2bad050c943256aeac8a20ad18e31246cb961672a470c1c3b5d4224837248c0b395ca0e448a12897d9a165070c1949a2e4d812d6a3350609170c395b174588ddf193a6898a15658c38fdf8acb848d1668a089d2f265ab6c4e8786aaac28c31c698049fb5d03be7fc9d39e79c27c09473f740581d2239d284f992a2046472f49ea640393396a54bab0b68b9b0942101cf1d142b7415e52aa93772a668e4313385a5cbca96fd7d2132479763c78aa62565083edcc4a0434387c5ab4b0a94c618e38a955ce90205879d2456d81465344c94a04a0861096fe725238721053199cc8a9ddf168db12c57b434d101c44a9694a2ec064d9b2261234cddb902441bd970e2042de72d1e51347777777723bcd31dcf908db7dc198369b48c579b279b10c618638cf153bd7d5153554cf688165842d85ab144dcdddddddda174f5f6edbcf07a118012d35a5f4a3e36e79cb3bbbbe32ef77ababbbb560c6bf7ce3a63a5c5e2749add69f006cac7b6bcaaee93996fa9e912a2202bc6164e8c31c630721b06144902f9f27405479214518af011922f4e2ba2bce12a93a308db2a27b612a32753f373e62a489b2152486f115f5ebd7d3d2d463a8dd5905e0234926c5bdb0082457777cfb90a8e2f59f726497cf291ab3c09c1395759818e486234f50b48ce39e79c73ce39ef52b03a73ceaf6b9d1c4834d7942f18ec862663275ee01132954505861c1c4e6056f0d1a3cb04709763460040b00bcbd39973cff70649d7e2cd9d29255d8af2052c9abcbc8869a1e1a328739df96b5267dea9303523f108617e5ace023873ce395b000f9d3c5f4e5cd59091270c6c49971b262063b6ee38b1596870e4bdc9e4f9ca4295264797b049962e65744f3b4e6885ed08f188fdec1d7482192c3354d07a73a2287f491345a78b1c2f2ff2e8909a32928d4dde2feeee10b0e1c5ba6fc1a9d273a2023c5218ebac1a1c39032190e9f104cb17902f4a6ebe50cc6803438a4a9628e6aea55d570b25ddd39c9efc5581ca614f6a18ab2a144e3c05e9c2ea1045e76a6ba9094b14159d0e85dad54482269da98211a8c1b2260420704e0076012caa2458a824b9b033256c0b8931c61873108387b4020a18d3151f71c68a30029c98798135e30429698a30d6897527769c18e31a66d33b3bf61dc4a9debe271d454ed5340852f55b17c08c0d2325bc8152c708068ab439011717242531295f0ee69c339847e8b2e6050dae2a6356b71540c8b46192821d1be56a6b59706245c797282d5c0c11410d064db6f4c2ec68a4e00205c801c28468298b5f5f9db96a2c3842af6a3577f7abf3b3622677ba5f9de931430a589398336c2a60f3068c192d1e4f3bfb24888f95364d64a20b71033c7e64dd589304c51b135c39f345376547989d759295674c0f01a888b1c050f0ebaaa3e775e20d45f8c7a556bc964c7d6b7e8ccd66f8d325e91aab5970a0b07550e480a03b8e315a0baad3c24187c84fb7f7e9eeeeae3b3f5dcfcee930d888791a251904d368cd507287b7a58b8750151f25f4a40c8181826da2636272756ce4e4a4d0dd7d00a7bbbb8bda97609dee7b1f3dadb0048713303f8ea018d184c8588e1bbc13cc58263a24189e85c70bb45eb4032d3dad05851457605a84c9504380ac202db0c2c66af4b026685d813badad71cbae0b9268e5094ea1dfddb316499afb78babbbb065576f6f69d7b6b516b7fa7e2c6cee9be7535753a58e42e925ad3aabfae5e596aa26c969d24afd168f400536220c1ca61821635492800d53564c7a6c9cad812af91726112658d0a34a248c5d04057968e05172f5d5c5825360ce44203e4fc6823a6499e21678e4c6882268b0836846c9161e535060e0030c670628c31863366042b4f50c8a051f4c9894aa10d12d510162e6c923b54f6078931bee2efa7ed4dc1b9f7de1baade3e294d455ad5ae5e678b00975dbd7d274ee8c4f8357e1257192373e2ac312edaa7e1da2639eba1fc621df239f7679f33e77df5978584c99989ea2dc3848b0d118664c13df932666c2b859027245639d12a2a24bf9cad5ac8ac68587bb4f443e706ecc8d3112134241d2abe60194932a5842e8c8546ab919ff5246842dbfd10971afffd6c5596d50a5949de5cc0262dc6bde4e723e1bedbd60f432cdebdc70bc611fc111c67f7c52dcec22aee32fc5b7e5b26fbb0c495a1ac14217bfd32337c2d629722d0ec4dc8de7f2603227f16be3f10696e603b652f93c94213779fde07896c79745e5ae5b4f71fe89a1bd84e9ded68a42e26879f0994c177ea17f19dda3c3a73c6622eef7f476e1a1d39a5593b1741bafd45113f58039f6a9c2d139158d6fb2158821022e46aec772cb4357c0b66606fdf55b5f503516d3683d7e9a868545a24b18eaaaab0c4adb7045aaadab296aab6ecd7bdc44e63f87aff42be5fabf73f35a4f8f5141fefeeee5e3bdddd3dcf941649bd31c6051041bceeeeee2e820b4ffb1776a8381a85974f05a836635a86409139f1adf002051c3b373fd2d0b1758278064b5ea68668e9b0f3a249094611e64094212b547891d3e928c2744e7c99ae7418b5a280024aadceef4a5795d58c839238265099d2b110c2412f6ba9890e384bc8ac20d5039422027ae52acd4a0bbf624569dc7befbd77975dbd7d5e783d31097419938017240ce2e28b9b5012b8498262a70b98162445380b14d3992b3175c2d018db9d586aefbdf7de31aeeaedd3edbcf07a236288611035e4cca15a21858b4d11ce794152c448141a3b73be9a845a5f3a06b8638c719852bd7d4e4f51bb83b0a9bdbd488143ebc262e1a3a3662dc6188f10676f30829dbd01948a1ac6f8ea506cc92830c658c765c7731d98d8aca7ab98883e83aa8b18364182300954cb8b77068866c5ea1fcbce8d25a91a535e14e1271c3692cc71e2e28d550169870c638c31e6402a0993b5e69cb30a310e548c39a9978822085a09332513afacb8c22178e161e2240c12333c30e81215c2949c1e7096ac9c9a23e772cef98ad409ce9cb39d400c9ebbbbdbad9d18d6e0c7952ee7e5c4674c2d513054cc91e1624b11a68212421b1e3586c0a1120748ce39e7ac06abdebe2e2d5f6138026ad660bc75ce3967eceeee53b2dd545cb42aaa9000fcbabee0f282339ac04d0a4a487a98a1d2a3284389136606160fa815535218f7ce02c9188991a24756d7589d0f357a5c015901f5a4069c3b50484a31c618e31cc662980f696acc14a7ac1b62c814e13b62688a38e9859992e28d1529276641470714b01d4ed08048b89cb831d3e2460f2b4647ac60e59a46e69c73164130670b1c46ceb9e7cc39e72ca6abde3e2d22c47c792d6728b42da43d03466a10cc396b36190473ce1a5b618c31979a271d1799a635b3ad2160b51f54a61d90e289cb9d395a504e5c9e74409940c748517673667c624ba829a565a8ecedd3ee4bfa890a9c426ba71863aea6137f1036a2adecedd3107871238e9b1e53d8b4287226139aa030038b98913545dee6f4da658347babb7b05982a8e0654765428393d456950640a63dcb313810839e64cd93147eb45d0172d3b38663c11c9c2e6f5ce175f3bf6546f5fd41416315685b1bbbb5b9073ced99d4695afe4beac14aee0a89382550b394f72f4b66885891ad263cd91f0c737e604dd98243762683800c3c51c16429460e141e18728478b37e37417dddd5dd7dc554f18ee4f072589a8e62b351658e7f180e395268c981a22c0f1c5c9952b78764f4e88e282b40182977635ae38c70d4dd3fadc7befbdf776e3546fdf938e22a76a55cfc48625b4819b2e101863e792536766e54493313a39279c00e524b6558526042f6184a801401cacad137ed4ac7577bfaab74f2762cb8eac69fae28c0e6393b1d6f181c0af6b539a11be5257c206c78b3a483b8e18806b0d10195a315cfce891d5ddddddcf7ced0ece84ed5dc1740171b2bbae8cf1a95fd2c4b8bb34337a9a3e6bbffb628c7157bd7d5abe30981386b1922327fea02b23e79c73ce39d348ab22dc5b057bf5471e354959728489cc8cb12922529af0e03a93052c4c1a386932576e2b88628cc74e78b255a5a4099921b2393d154050ac1853427362e75f68e354c56182458360ce5bda45ce594cc899b3f814babbbbbbbbbbbb87614e17b45c4a9cd0a3245da08cbd4861e786775464c690ad2c70be56e4b167e81ef1666c6f4fdae20acc145629b0632506101e51baa224bdb173040c8ca82e466c18996ba6820e15504a82c5060d2f4c9622ccc56907930e2a30585833646260c0afc580d5b8aa397a51060002026311638c31c6180f89aab76faa8a0956976b30448bbb3b1250c7cd39e70c7efdbd38868a7afb949c7607319ef6c65c2c13079ee3d774e7b5868b055924b1a8eb892aaebbebbddddd1dffe0adaeada9e5e96aced9b1e87021925a936063d47ea0c9c62001d26689949d1d882c4b60ae52f4b8d614650b76e63677ceecc5ca995f435351fe0d42b5206c0655db85409a2bf7f31d45882a82579a271650fc9acea039e79c9f642aa115618423275ebc8123b6a5286f49c143860832d4387595719342741383dc9b4b182d38e694594326cb8ec0464b182b1a25e4e1795908c3b0b7539b1e54da0ce97135e16701bfa663bcd8dc39f17bbef8babbcf19abb70f2969c418137e51cc39e75c84c4d5eb9742928f4881892cb34510cc63279c993cb3088232b64eac4bdf70777777dae9eeee5a4f55a7bbce18638cddfdcd97d3457a23480dc0de1f95296996c6ecbc28d9fa51c48b0abd292558325c63dc0400738911829b684a31c61877c06287b135f3f7ba4eaade3e2a2b09e8aef0e77141babb7b1e1ba2cd39e78c73c65430c6afc3b09e045103494a501a82038e0a1645584c92d70939495329a08ce991ca805fbf9132666ff0dc7beffda3576f9fd8881f6348494c2380e430082ad089dda086d5ad71a5ad971683b86a7c01718ebd37b67be79cc788055333a022e69a46e69c731e415037c54571c9f392dd188e235245bac63e80236c47086b5048911293f7ce399330132405d35619dd8e0144a61cb1ba1123cbce17cee12cfcba879aa79f0d186b29bacb90c13f2eab1dddad01318426540082399dbba884cc1b094387664e0328b3170000300c0805e3501cc7715c4b7b14000e57c6546646910704b2508cc2300a812006610004000010600c014c41860d120034659374fd4630319ac44540826e00846f0ada68f51d1b99f50eff3190634321289174ca180f5643c52358e0256cd393be7227b70d143d2ff92a101e9fd1b94bfefae83369ae2d405d4d355cf3e8cb9a867e9865dda15bddc702232d594963b2ad442081f51eb218ae5630c086ab012291a1a917f0105a117dcf94b35f144f5cfa055b3faaec66b49602fde23602595f34d1b61eb48dcc22807412ab31238449f76352bfd1f3d93e492fe554acaaa22e98abdfdef4fd40fd3804ed3854c21a61d3c5405912512237fb903f567f252a7128d4259362690db445094d91e1f50902475570c9c75a5c856c227e5233963aed112f972cbbba06ef432d40b05465931dc3659714821db2c04cf068e10e14393231e155cd58fac2e0311184765951544c82b0649fb0d8f3be2190ad95283213f79aacb2b7157a9419c493c01e0203f9044366cf17aecad8087e5703e74be060e17e96f039a1638a6e2ea717c1d64f4e5a3f461f89e89bcd17601b0e1540401832426421b6adffd5788723f459f792e895f5abb05f030fd5eda20b9470df7ef21bbb93fe7be10388996de45e08f6fb72fae55411b7f27d9e384d58f2040aa98dbaf6c6cee2d024656bb2c7b171985fb5f207e33e7464c579ba18615f9ec0e1e56c61482e10625642458bbdab29a389d3a6e204b5ed0dc6ad7ea2632d0c8911fd9fa4a24503006e838e864fe2e1a00ef89e19156c482d9275f3447088d93823969f65662c2db5ab84336212f1386536bf8c2a080988b46f286063a652be47e323b4a31a1fb2d85a82e5eb484c89f92ff34a7bc64bc9dd654ce2bd2b86e099fe0d59024d52b128cb3a861ad0fb663e92acf6002d936afeef10083965d846307146a2c4049fcfb3a68dcde17d6138e372579b1c53ec73baa3fff875cfeb5b9c244a0a2a383186286c008c0c4e95477ba4c41abde1e4b22aa281d922eb23cb7a8ad18e1b08250a6dc29b7abc879c9118030ff5dea2bc375728c0a45b930e1e80dda7fbe688c40c27bb67d3ea3540cb28f89b3d29366beea457d419dcd76013010c467a09999693d1147564167343096779c94d2129f31de2c7887a9cc033fbc41b08a88f1c413672e0556a52e91987c129e5932759ce5f5b42e007140f1095e8e645b81bd6ad13c3b033561499364ba1a8bd096801763cb43794bc9989f3ecaece7f1bcbddc148d8e0539c0bb9f952d531a8a7440fe25360d29f73bcab62c30ebca92800aafc6eafebd43b392f8debb51a28736f282e07f3a367c9c7206312ee28b2efdfdc562d1317551434e4d43a02c6944a6d0a0c65a8f3df6621ac358e30b797eb3960312ee143a04758346623e1ea1812ad087ddfa66d88a9e2a8ee3d2120791f7712c39f1dc7a89ec4802c1553319fa78b6aa3a050229634769bd3b7d44ea0831bd97265266a301568d2ab7cc80b86b82718f180525c482a996731e644fe847dda7c10e01c2a352c8cf7157609d8a1471bedac33f2cf51eb4c096233449ea57682b2d69a651cd3935a951c5388bf888f9b9263c78f64890835b388aaa8dfea842f567096d15709c5b146ccdae6a0e58276676dcb22b9ed382825016a284fece4f5f248e5892cca9e7a24b804cd784be846a3d3e4c336aabeacb8728962db17e1382ab79dea8703bad8d0fc69cc14084313b7bd51ebed6a802a3618539ced0d5592913d4a3cfb3c48a91cde56ad064981b017e6d5d63b2a207257d092e1365f663a0714917afb26e9d5e6291f524b8cde7650a94319060b01bbd3ec138bc599961b3d7567d9514da9edea86ccba90428ba4a7dbdb8946ad53482f21f3993e53aec78ce865c8efd1e924b7d83b729433716a6b8985da8b42e6c9b556f46613e8921b79b0c843c51f58e0e1c2c7247a5f1218b0ff00254745fe45bb66e9bedfb7e64cd696a597c0c2026a24525442da78b9d5731961cc846867b4faa1c85dc22424371438becc4765b6da4db3b4a1ee3d1db0b6d878a5361ddb4caa0363684b83119b2034caadcf415796367eca6ed859d9a3dfc41ba2f71b2e109449d1bfed94425f629c1b8b83123f2d46015a4cb7ebe5f6aecebf3a93c5387211d2b0bcba9eda9d9c4d90b7b2e35ecff502977b9f2c4d7e8c0948bb710ed18aa831f6216b085e75fd45b6693baec62889569555966413a1fd9ccbc3d5610e05d7e47138ada17a75c0dc631f16cfd297631110cb72ebd6835d8af3890a9b9717cc63449911aab4dd98d61d5918904d378d16e20e09ef8b649637d59d698e42ec180f73e10c007e678a4114a40c937b95680766c8b248d34714d3a3b3851b65564141a19c0bd28152c1553430cc8b1d10c3bff723e55245b57e1f69ecc92d0e27e0be4524f2b86fe1d81f697a63ca6e988ab80fe556693113b2e360d90aafe952746014f0255dc5ee2f365517ddca9aad32d03515d1b85acba2f52cb2c2f3f442fbc8f6b2694516e1afc922887b206108b192213326e89ed3c27ec2958db61657e6b1a8ffa16f164d398fef942e74f98cd51b87fe60f91048681b6c7049565090f620fc4d89c8f4ad24cb29418ae1215e21b726352486127a59c24d62cce525c85b610dbde560a8a4dda76acf4c285684bd0505d45fb78879f43ec868a21cfeee532517b2b977d4268b5723375f3695204d64201d3997c398ca6d6803999182d71e64654bf43d2436b4f19fa369e53d3d09310cc0997758aea7060eb09217b4316c507f3388c41aee172b1fe2e1a7ecf61da454902cceced53cbe8853d15d7413fbb9951ad1336a107f0fa8413c407c526e88afd90e615433677d93d2d0ba92651bef2c40c8a59158283a8db23a367e522ec501a94d028e54f550940c1ffa738c9fad39c4a2e3c531eeb366310674ff043416c0b3c69866d6cfcca239f53dbc3444df3506ea2f8250b05a3050e4830bf0d1a309a8442ab95bf2c9992689a10e94d00c3cf64950bffd7c6916a45aef537119e6869c016177a33fa80861415c1cf2223c9e18b87850d1aaf6656140a18844e80c8b101825a71e7b58345f396cd62bd741b9b7d33e5e05a5959ef4fb6ee9744b0df291cd8b0e04b4d32512ceb0f64b54cae1437dbd768a7baebd86a54de983e23f5f022ebe42dc22825ab7c8c06579cdd7c5afaa3d94146dbe683c1cecd0e868921e1af2db4e79346d2e9ba10d0819977084c5972e51c0a688e891466a9e1bc324cd96ee439123133bbaa84f0ae087d421ffb2b20cac78f2228ee23d47d0b5921fef30f04bd204a81dde2bcd5ad15b6a0271beb591f8f3adb74cc05162dffdf10f93230e6f1bbb08ae30403608cdc029dc53c2837ca81258c39b16ea9664291ed6eba1d2888d2e8d80ea95244bc276484a37fb98333c6f5f246f06d9bc60cea46b9a19e152e29f97c3bb02459d40aa9546ba6ca8c45ca93bf2271599bd59cbd3e0981dd02fc0af3cb94420ea9c87afe31ac53b2664fb9d9a1858dd1190b4ab0acb3881e06c4558a2a6411119db2d3552ae97482df98868a5a130399243a60f31fa186f44e84ba9a123a7e187a78852695e90176125a3f693388fe12be0302c644456a84ad3f1fd5e42018995a759edad03227becc10e5abee6bc10a7fa66e937210801daa334a0a864c9f1fa859ca62f2ec6193a694e9d612a1ecf06da82056fa22d6204b261525c58d3a15706a2ca848639f6cbb0a73e3ee325f431283a501d124f2795a8ea51cdb41368b832dcb59243affb543f84aa8c6444a8cbabf0543d34cdc8c4432c21d3a029392cdde0b2e112afdcb331b00b5037e7ba20fa8df2f3f4aadcaa997eae669224d5ff75aa01b08873727cd41ccba99a03bd9c0d5134e32642d5d49281a72e1855e1d9394b7d620d375966e30859f3ca5d1f5a07169469a8a91a75194368efc38ab7ca094a45875468c87668dc896cd1dfe1a1178588834c541d7eaec420048514c688e40a20b8639a0833307cf22e213918180c019d1e2c659e2d2d5962399194f8fe1662b6eb90e0ba03adf12de14a0df70dcdcb1c67a8d767143ed7183b9652c03e2fbf1232fb5b271489a5576128a3d972a95a4054db77033f094a210ff21a13fd2d753a71025131fd92662154d4a102737cddd53b0dc487277d5fe305d612927ccc57a15d0a1c1711944aacbf812fbef20743d678e8c7c7dc78500d3c629114961c0c66d3ea12c70edc2309fc5beefaadfe2fac61041ff84c8d808834796d2acd365f26314adc064d9abb797a771f3c1e106a31f81c7dba577fbb260529d9d4ee5af09c57b97393d63e6c7ae40ebea193dee1b5c245b303deb55ed9b5cb9408b618a4feca1dec8b0c907db152646ed3804199149a8c2d287dff37d4e33b2de81898b8e4e53662b722201a1a5eab369f024da97d371d2621e98c8de092cb30a7c841441c27043f0f34b9e09094ef673ed44bd5c2418953cb6c8f734b954b7bc78e18fb88bef8af145474df063ac72f65335ddfd44afe4e9597e39b2789648803317d0409a446224a981d07c4ab24bbf63919dabcb4d7315efa1518eb9aa33b5e3e8ad69d4d6a25fc755bf491fd240668b6f91c7854065df834856caf3dccb5bf6b3be9a3dad4de857ca7ded07b787220dee9ad99686516e899ae56e0ed41c0490ebd024eeafa763e16ac413b2fab83fba50262745143e77f6e0a9b1ea4020bda6d91286918c37aa7e449e7a4e3db194d55ca5a89ba48d6345a58b2470bde536b1bf2830c4cdc9ad322aed1f30af667b46d3e9f06741fc0b7daa244253fa8a64de9a3417b55b8c21896bc93f93225ca8316b4f4302ae69acd2d849e27369eadb8449e72c66c32105c59ed236dc2f3c625d2eaee2c477d2c07f398cdc85514ad058223a26b3253e3937db2ea0cf14d0360c41f08b987c37b7dee4e15794e6919dd0469836b70604a580b862ecdbc04c665f20b28e12396ce7622331a9f209e5d334435bc703a6c717bc306f4c2793863d7be32b06c9350e2a34b20eae1cbea3509b19110bb21c96fd5b9ab0471112aea0c5209849d0140989e907363beda40d53dc7f13a85db901afb7af1b067f8862b35b287c986fa16b0ece51d11f0c4c215a2c875d119445c050caae604e7f6c89d7946adcce1d03c48d5585dc0b82c5ec8815ede18814149a47da12c9327f4cca770c544a184999bce98830764078ae33229116c1289f96da3a242aef7d022584ad8b447c608472934aff796381d72a99542c70b6bd8403d837d57f5d8148a90200921d8a0321a968d242364bc9406c344015f3e51dfffc07105537a2c25e668160c9d0341efbcbd1c4f6da4a62378d4d50fcb30f5c6c73b1488a3fd45ec246459c584c6263a36f41c500ec715a8d620be98f7e24044821adf13fcc75f4e4eba6bb2177fcc94bfbdf18db5956e90f70a476792c5989e298a9dd90cf6142e5530a2570736cac00fb15875a0b72daad2f8acf8e02614895f1806611ff74bcadf3acf25fcf2cfd75ea2e4a157489f61722e0b480d773e62064e1a81f9a19374c214c34498f526a47e39cd4c4666ff218c81a3c0c48df7ea2f03590f8119fc49283295666edbf943b1e7cd3daf3170c64d60faa6797fcaeefe226956295f8b3f4ca465db6d52d41436096b70d8c24ed7189c5979c470d9976a28c8864a22172f5e41f154e87ecb170a385ecc81040e177fdf2abc807a2e9216ea7e2dd89f31f62f4bc890d54e1b8d424497373e4cf6aec2614f0dfc7982c5d179b060084037650416eb7f03ae12e6149226182934c3789ac3d4ee6575649aec1a3d78c65d5c9e7a00171ee3963dbb6a231296169fbe45f399ce22d00d3ef043bdcf98525f0e80e9947af5bf656a443085c2d40252745325de931f3f4ee09966351e1ccaf4858e395cec641822255b5ba7c9b352b2f45b77e06d62a4f07a5b2fbfa516a93b67bc0c5904baf31bed5d82c01f89e5f633dd96c633d0ec3afba4863be16cb66d2b0a3e625caa9539002469bc7f83960683025c030d7189dd65cabb9588a67cb8780d15faa17ff5f0a6848d858faff1dd64a56b7e643c94b53f7e26a32a3a8abe2f17dbdf18c7b21b26079bc2a848508d628f34c32c2ebd84b082c0eff4037ad5f6326bb6871561ad341d1e9f65d539b763da9ed87fa39eca4347fd48b3ae7971f618390cd4b47e93d2c2e88bcbacfaffda0bfdaec71ca6f235b8d22004ec1341967c0bea69a5ec3371e8b19835c1e2da343e9c27ca10a2324aaf6b24c953192699c1f6e852f92c23d26617be7b0153ecee0653d081c4e38f73a9890a4dea33c81f7d6cebb9f165392876199f2881eee06b9f4a1a0d7bd4a0fcf901662a46f28d99c1dfe04e46a09c51edda8ca7d1c143c43224d24ed6be0c4a12cdaf10dd235f8b481c89093de82364246871dd7381bc0e2d62db0eac23c38101a384decd89e800b4cd13700d3c24196b905cff46dc7b4193267487a61143de26b255c270875ce95c7a5f7f029e6c555742351470d66baddf57a4e435361316bcbafd9cfc4b05ef585df28f65010a1384485f980ecddd13bf565a9a75194bd11831fb79024309cf24463d51f1278e7ea862070a12ed93eae55bd9645c7ade2faaa28168fce55a2f9eef5a3e111b921bf5af68055bee70106c9443fad14b0b4854df482cc446c4fa48d7744d438e641eafbf4c7d5224056ba8e7ebb0f74b8e007cf496276bcc9c20d7a48167be01b7a39653f60695715912ba4eadc45d72562c5edf272292c019e468b93a1524608e1e2d5b8692f3444f391f2181d3773166af2d47bda8274b4f9e56bd96603a8129f0a064d31904c6866db92bcdfd24bc81a2ac097d30c9217a2670e7c8642ab918e2534282500fa953419a413c0cc6da74978a3d83834dc88501ce782de0da2eb92097bf7f269dbc35ea152011aa246a7d9aaf3572751fafe63a145ec6b61078be59061afba284795e4bc475a9cd10ce5be0c164d4b9d6dc9435abadcdedf67918f2f7744decc3cc0dcfcabcd3f024c68ba9e134d14cd7c91b471a80f8de7345a33de8f2103b7ac5da1ce516a18308d665635086d565fe93302defa6d4463003b8a207f2466e1d4db82a4f2b6c82a130117c15f44f23a3759a1190a08d3f2b1447799b30d3db811eb9275a35ff4a2b03470eef8c878bdd426ef1caadd013e656c66d30af8a667ec68e7dba3937c092ee40a0e2c02b391d177a2ab5d519eb0de6536a7ace46b132d7850c11adb01f688b9294fefaa1078f38803042e2fafab05964357e00f201b8b3c6f556b91a55d9180227956e8f2def26a7c37ce0b99064800a386cc99bea21c2e01c1292f55c302e43568693f480357c2a097b3242c527a2f5d0323a9f267f06b97e78a10cee357323e1e6bd426486cc875b18d6de8269a6d9c7dfcc9c01de3006a8764a42c9a589b2274aef4f4b10066ff6efab90972a4b31bff6bf5d4a09e71da55b4696f69d248025a69057e42937dce55a1787a3558dec4fb4a8e340f7f8315a5b64b4f40574837ca95cda3540ba9150e71f68fa89ddf741ce28cca20fe05ea503034bf1d1866b9575690d993aa4788f1c8e11758bca5cce7762949f6c3b28a073bf8f03f6ec67f0813039f59b2d8a7c866ca36b2355be09a72522c624844b943bbbcc5bec1e4a95708a078df31fef0739ba679b12595459bfdbf14382227899f0441775f8bd3862dab6d6f6c55c4f4d4d80e9d47031142d7904c8456c8e03491f26deddc30763370297e07a5035dc1157268663005a6df92547aa4050bd27a250660bd6ac5bbc4b2f0c8aec178d6b981c6e1c4dad7049005b13520ea82caaced668387908ec74f0cfe8f0b7b524ca29f27519e632fab2db14610d56321dcf5bf1933c866ecb5fe2b499ccbe81ab028608758f2c6040ee13762b4e7345f048da04627661af9415ad3f302c97f10ee384a8263c16ab737c94314f170de0ae410b28f3802c2b42540e90148227099140272b38d254f4f699bf1b4a1bf1de4cdebc604215cc4ad11004a009756e6d71dee792467da7757aa22e4c2dd20be9ff81b10739713e7ade16a5f9712507fd4e9a4ede3efb6899b24480717ce982e9eb8605d05e3637eb419b2d36db48075a58432f529202443b35643e2629886f9f3c87fdcd6c8b049017a30c18cf74f047332bf3527d689a3caba36959eca5becf37e0c1eded3925a901cb1f495a8af7011a1743d18e140572f8e76dc66891ac8e31f97eb43b80039014b20d7366bc963492b906c83967fdec1df455fce1e45b039506d8821ff24f6dca40939a067a15d2de30fe33588f38625485f99425d7027d86ad6ed55e3d6c620f20804977d6a10a6ce95650848d89c3ef887daa457337b43fb140f3b205dc3fe211d1f73c7287275ef226ec8f862548893edd65d4c855145153179b65fe3440e29260c05e89593ff7cc5cf2bbfeddf163bfbbf47ae41409d48ca671121b4445c221a3a6b8b3d835b9fa189428bc77c12c0a061a704c9e4f00fcc5f8224027301d19809a4b915deed90771af808757aa24859fedaf354518832a7080c773341556dc9f0ab2251326a4f918d5fc547a18714110539afcf0b749c974685208ccf83fcf89e77c243d6512dc31bdbbb84c0c3495f76626021114c978731f324a0797aed87d255825227445a86428a4675dfddcd8e8d7f16c02b466bae7bd9898d94ca398fedb62de909b5b7b6793001ed8a351d5394a113a7201300d7aa624eac5a8eac23a313c4d5c2c919dc72741dbb8ca46c93c565caa381ddccd2d50ab910d9107a559395bd90e1c43e75117a2dbd214ff9cb5a3e7439dec1167c14975c0c5f675d357be797c27b7cf9cda6a0f0a232c5655e98976b5a4e278b802172c884b345510a7c8e66a8f4578c4107bad2a40bd4a0706684e9c43597d6cbb1d6dfd580151c8850c844ae1bc890a73a74610d641d3aad3ea7a54ef6e870142db9cc6f52d19b1bd3ccf54c8d63bacbe26e3f1c303ff9c55be22224224afa8033cf80a5b1402bdb51163531e8714999a64a682f1039d6cde3b6d6053372dc785e09e0a9545960e1dca7d78259eb3170f5933f64577d14ccf1edab8ab444db7d849f50c2fee7e789a97893cfbe91a252bfa16e11d38f451e0665e080862572558921013e5f13afa1b89d9b5113a5ed43ff97b0bdabc7406c363eea0f85a5433c3c811f8006042d15c483423d0c6bdf84359ce53397714db7aa58e72a73d7d3bf5d51c77773fdef13c43a16eb6e3108d4955e8c234577c99b0ec9d9bdc3d43f6e2391df5a6a9fb0707ccae36e1050367cfc03aafa7553de65f9104e0c95f5ac0c6927e88e7d498d685aa72a62630a70272fe8fc5f3f6edf64826e6330b1185ca21bad0e2f2a57f5c6ea77455cb8db4e591e1b017b795b84dd50988671e5eb980ff29bc885a326036d3b28946387120ddbc47bd617434321e1e1e78e44c45132213587a459cc41a66c72c8514fe32bbd97afd844fe78e385e3ddcbaaab000e9d912c1660af6fdfb2734d9214a6035424bf28b5f9b005a8602ee2ca25b77a341126cfc82c15244a159e9d211e5e451642387ce650eee17119b5bf2bac2c1fcf692cac20e9ed46583dccfcfa11d3392487aacbe95ec974c055d1178357be46e32abe458cbcf66262ebc7a0bdc893212a8278321239e42a5c88aec4d12624aca53f2b5f9e13897af9f3d65aeccad84fd47daa196731103f5dd2e401236e2e296c36234cab0ab151466491f546100c4f7b519e888069f33ab20e90a7d5e33e737818c2bff4073a26c0ef7d87f786209bcbcbccbe935bc6eae1f757a0d1024b777a937ac984cd66347785d6130a4fccda2aac5ad2e84647116afc37178a0af9aced6e1682d97c4e1e236b0b25c077e43bb5ebdd16407a3240e7ae0480d3dfc94a8b264d4ab41c886a981ec52c2facaf1e79ae073f6116f2999ec5b44e4f027b1d5b7a5ba6916c3446e6fba49028a8b61e7fb11f0c20204632236870bd3c1f49a9bb06a799c6b9e410a6cbf7206aa98adc868a865ddea8076e85cf562d9f192b985a290fe2d7b90274d89224f094c2bb336df771388b3b5c6437e21202ba20d6a6ea20c39e96c3d4ffec137c8c3a10b78e9ceb2f2d726e023b45f2cd310b62f3edeff7b8dc410734eb606c22adaf86205eba52827d1f3f972665170b0e9e0594644ff78dc57f7a2fc3ef9eb68f14f9028c020c2b5cf341814dc0eca544b5332ce7079aaa87c56cca4b39db9cc556d9de68606ba794f72052b93c97ae0f6c0216735b2ea10cad290aa484943deafd4df1956ce0007c250d2c558973de812764fa0bf44c76f17f7644c6cf94f9c7c066dc6dc17b6d0c8192e8627d6c59df5cf0bbe42568a2a3ec6f92b2ea485b36db1ff0010d77fe6033f9a24784b5a13f0c68a50df89e0ae98423730405aff4aaca1072829c55252a0c0c85fe1c4e690a34089e89d05e0a9fb81fe053a0b9f1d3501da9f14fffafca00d6fa286c0268d2ee60fcb9cb6dae5ca2cee5486978ac4199abf26829536221344fff5ad57d66454e44f7d2a9ce450de6d3a0833eb1defbbd2f5be6a841d1b1758647c8465c8a4c0c8c6f89dfa8f9e1d639c40a13758843821e278b10ed04e24c71c0df4c22491e2b3f024fa2551b2a60c2f47dbb1e64b24990899312662a42b1edf0e88eae32b2578e3147c30f91be74c0b704ab88cba2bdacab27ec19346e10166181d7f0e90fc0bf400268eb4b05e9fa0120880aa10102ba14bb3e5c0af5cac6f7ad558095fca85ce02bc04877899f6fff59d398514d91c0cdaccd3ff849bb87d92bf6ad10308e95f8f57722b6b202cd0b7ba248119f1cac95d961ab7056e1535f06486278b4513a34263f66a828689d22420c18718a6ea7f22cf807073297115ff3adcdb1542d9308fe166d9347763287a0077e8a6913bf80397884c497482e4279c54c76bf900e015c11c00aaef1026515d42c250a222de259630301956510e48755d83f02914605cd04765ad09715b6fda1c3fd4bb933160bb86bab3f0a967bd2ba698410ab1c840bbf261b5838bd3fcdc24a6e60e84a172a32bf6b2a063ea8a1120754ac7491e11a92b9eab797e2f4b32e0c582f8be45a05bb6ff760e42834b4398c5deb61ac4d26073e06d908880fb2a67e5a593f275013132c333e7b5bb5165b12e21023ba62e58c5d6525af08966f64ba4a189c413d846142e7f3aedbd7dce780378db9655feaf0516dcbbb632379ae0592e17fa5eb176ba2cc81620d02b16a158bf8320a44128ba1aa8fa06220b7525efa4eda8292cc0c80713b5282800c1f3789169c17ab0cc17a6ea5f0a23785f91e14a0db5bafb8615a03eb5b9bf77d2a92670955bc924f0d83858b95a26ec484c2873ac10cb318ccd71925e9c994a27acfc0f9bd350e0495ed099b7d3580b7ae4bfa455f183cc3fe7d0b74c458d110480bde9f7b9ca34289ab020545347531e8d24ddd79b71e4f19d058264f096d8baec45d5c7f2b7eeee55752dc0b513d2eb75e316ecdf5ea19096bdbfcf57bce6047c035027fc5d336f26f18540b512db13d7d79bf30f7a3e1ac3f38b07d38fd32e101aa9dcfff4df9f53930856b34444a1c8113e32abfd7aa7bad6c19425d29ecbbbd11a7d49757d37a5d5f9e5985191bf7b615574c739ffde64ca31e5b564f9e25a69a54e2a38cdaafa76e444cb9cb29df3b70e2886d003235c556fdecca7656df11b652b35c288526011692111d1cabf833fb4f8c1c65bf8b277446811b88b6abb6df1263568c190131fef55c9563e694414c8480b618917026d3986797c8f302482fbeb08b66246aa82ee161f8313836190cb42a670d4fd877ed5082d29857418a21ba149c658d53d2d82ef771091dc9bcda5fa22989793471c118d48340b2d45be9f4c53f6053d46088925d84734d618c1bb74ebc6489b3df3339bfdd719d1ec359d9af8332d35de77fed757c8794332b88b5604a4cfce20d70f4dd3c83476338665287121ba89758dc94decba2e4ca2f9720b92b17eb1db27b6f961ab3eb1efef568020d9d2a1f7c32fc30c0d078ac6c75a3e34a389fcedc183353ca247f76a863d42e31d245ad7290d5f38d378a4121d0df12f87c520f1e01da2a9e5ada1cc0e93a01df3c87603ce87660976ccf5917023f4fddda2d92fade886893d01176c4bc2317006286458033940aef113273fb33355f67410a2a3810e20993620e68e2e4dcd6af63bd380159d33840d6c70d6b1ef0c63d3e4b6ed7d991a4c6684d9d199d7cf6a80f600dd4e1f6f9d71751f6a61e0f3f8b4d13e83bfd0eed370f16597959e50ac991385fbdab427bee9c8eb52fc8433a5f09f1b2e2ed42dbc83528b3db128a1bf9f6f84ea9df05dfa316752f5da3e05135c97e7aab4740727afe9dfc5895c9143b57738a0fee850fbdf8082dcbbb5ea6be8178643fa0035a683ea76625f30329b9565fe33f9a6334a3675495403ecafb59c367365239585d854ea8fd366258f843afb11ba358096621541c106717243f5c371f5ca47ecabb5f7fc310314f44418d533f37c70a5a569998f1f4d0c555d2f096ca313e0136d8ae8cee45b711d5fc4e2265bd1b8993ca8165d27aaee7a066c75e0ce3c0cdfa4c636aa4022ae39acbf6dde3eda7c5a53b8bca5f9c455fc1f710ea94a01430c5485395c12fed07d985245c4fedbbf29181202852d9b2ea605c5cda033251c3ec08b814f72676d0578b948a64f47491bea5139b20164995e11de6c9346f22bf6ab87c2f49c27569882e3d826905c3b8232944b354042e38a0a6d42b6d449b3855e3fe019816dd60db9dfe4c389c52004e1532b5bf1e655a27598ca3a475b2ce6d5a553c6a7ccdedb678ab7b36fe69a164aea459c44e66448c2a823de804cec5f9a01e946d6404b94420474031dbaa6b3546e0f5790fe5b839f34fa378e774fb0f60a3c853373569da243c336e16039f35d2277e8003e8e0c6609ede36227abfef2e4516dad4aab287b635ef2cbe4d8477be3ced125e5e000e8724a7f317abe434d4caf116685e13753625c15485d4617733007ca5506753455a020dadf25f01c9f1afaa3b9a4e7826ca5acd1e3f2088c1d6fa9e8219c4d7d65c58d094d4c837fd2aae6e29c11baec4936f0bfe453434847ea81e2132d39569048d7efd99942f4eb531a1a936f876243877a4180cbe980592bb0cfb7a97a51ca363cb8943f4e922d9b23613acdd633cf25858713d0c8c14fcde91b17093565ed05ee32a04de8043c634752beb4f8cc0766e4d4f8e95964e957aa62911f55e5f928fcb026e4f9b7319f726560159ac3e73bef246b7149e3c716f242d5437c25aad305bf6088547e916069e36e34732e933dbce8ad1eeaf42c313f6bcc22e14e8443e38070589d1705b6f116445d6f12c3fc3415843cb8e187ad4060b211aaca9925df8c5610b50bf4d704faa357f0bf998d4e2a681587afdd6ac5a0df6561837afd8b0d6b3df1e583728d1011c5d4146410e36862c01eb049228feee49960030b1723e3944b34a2a86a5f62520497e20fb5e4b01d0d867604e262e5935543e7d17993ec1aac7a086dc68090a4bb722edb71a22a44f4278d98e933acdd148a2c62e5c76dedf528d12f0ee460c59cd7834ecf230c277a01c664eb476823a2e81a2af80b3086d0c1f84e8874f5328ae9c7be5f5914c46c78af97a9f0a35a132531a37092f7e92c3ee7a5c206b547465c71cfe2ba9faea08354ec343014e7fab1e9bcd905053308d69a5ce38a543e8587b23fecd474273c24599e062bd48b570806b2e7699a923f1722afb4ce4aa0e3664e3cab4c8a8eb665d1f321c82ec00f45cd723692ad888a13acd6a411f2070e6c35833ed3f32059bf03c1f300567c907777edb7e262383851587fde91ddbeaa40080f8f02576a1f4e3055f0810ab4b88c401f38cadabff2223aa662fd896265c039a0507821de8d5e84eda248ee4d3cea3464476e65611e7e380141f8d8e6e19256247486568ba872af9aca577faae7f2a45b641b10c87935cc230ab44d10a27a088965220a28edc8f8b3c8341c0c02f0991e8ee379273e0920c4019bd1e42241e226a67e1d321a5d41b01186384482ee52ecb037b6348fc63fda696cae69ab23d9711772d8c601318c6a5c8d9520651c6239b79aefdf7a743ffd832e3dc65e4bde8afbf377ece24f8979a99887841fde30e465e63bbdab7be74781e77e0034f3a3a8feaf18957926d8ad5c8eff2de840fb15aa6d17a2a051783abefa6402a6bdf35e8dcd09d59f64107e8c757a869cd254fc43ccb3786203c2ea3f1bd6c93f47d714324204ed3cb4e639a4e78552d3860556712c4ddbdc5cda96859af117bd5dcb01a941446cd75ba59c221e42bf6c2db19c4734997971f8de97be7808c1ca0f39bff9578ce313a88a2ee050377c818858cc580120becf8f221a1ec0f650a174a1acf5dfa9e6af29afb4a75426409b4ba75a0475d08541917c59d43e2f810d5d3293db93a110a7908121d61135fccd90cbffe9544c217aafd4600b4133db53ad7be4b0cdfb4d911d404be33b6a061ff978900ff5664cb48206b55c9684e2b00cb93f5249ca86d5feef9d3c3f228d01c14cf028a09c4014462c3fa747f100ba09a50eb8253767c752b3a6d811345c061d886192e5bae48d5f0423d83f31fad7a09239dbd2de435a8a0cfd356f90236b0268b034fc52aefc7a495728c747534142c5535e04fe780369b2b5ff4ddeaceb7b566a4fce57b71f5786a5585118e1064c2ccdbc49c5915f5c0f4e8cdb7756a1c164f8ba65e9a76b6e2a6905e9cd1da554ee3947e80ee2294ae715ef43c6a553eb00c8eb72b5f516bd28a003d43fb08d2c4e975df600b39aea2d473aa08775425abe211d401fd690b710c339c0c624b35571c45d3100e57de984fc9b3a6dccf5ad03cb0ae027a7c66ce23d36b971ee20d9cc0edc36f4be7e17a24f4b48cde6682a0a207991e5c6516b3613a23748e6f9557305c0ecbe438e1d6c8dd3451c41da4cf580e22007c466b88eb3f40850cdf7ae99e24dbaad8e0eecea96b4c10fa5351695d7c74d6e393959a0a5c3319345779448d886fb659a9d3f1423795b773b499b4361d98b6e8e1085514a48a82e865f8cfdf83a310c71f94896143cd842aac8af89ab742471ace43db04a986129bd8b257af0fe3bfca67a6b6a026cba2dd8eb33b9fadb4f22da58a07ebdbfe8f593a0220937e0b43b4760b5c96455744c05a7ce3351df6668326d21ab8eb557394878c31fe38f38fb8bf91f45ae18f991e77e8dccf7203c32513091d2a184a23ece69d483980bd96c0dc8b18a562f454118ff63a22dca22a2a6d44734286899237627cbd13dacbcd056f623cb2c99b5ce3f9371abc5b0761bd2162ffe5d0767c57dd6b0174a3aaa85ed10886543cfa311deca97799a4635b1cb4dad86d3f49f7aad96970db81c5e02646a7c8cda860f34a7093a4c117a90c9a9cba8eaa31a3c564a617ff3b1ba05498d889a414c9459e2ac206b69affb3c018998693222362c261b1b7ab17f0e50c421c6cb67dd88262d7f73bece022eedf296d9fc8a453f790e5053d13002dfa10f3cb0e5b2727d7de691559e60f609ca5dcb5a14b536d467faad14baa24af192528dead1595f69d627857f7b2c7de273503b069b4dc46136006a48a716d7d7e456a47867237329420a8fd4376dfcbf23fd5b6486807ed98d7109cdfbf7e121bcc145742a0eba050e439ff754ee34ade73f25d101b61a5e86f0b43210d76ad62d9c6cc538e7797f00be2e5722cdd095c29c3d134abe855782b03f696c47d3b3f6b73c9cdab2ef9228e019a70acad08438433af22a01b24db27950f443ba08de45aafa0ac02ba203965a7c31e48a1887d155be398d8a6f8e5491229f07f0671bbc1cc99ddf064fc315363e7138621f91565f1813dd98023e84759161037a04e59d4b57562b55d57c9af4f57bc98006e73c5db8339ffb8795715a5dc7de4f242652ee97d72727aea6fd3ed85ae3c806dad48635bd8c64b310261721b624e876a0a4037d98ceb404cf3efaf0e70800cc2028cd7f3de80353ca6c173b04eb40fed551d9160e06f43b455cfd54ee3f8c11a9a85489058c7f46d66347c4a48fd9f0249c66c982fa208047fd5b7d844ff17b99e41a69ce2cbf7ba89c749f007d9578877ca85b33c755bc1e8ac704821505048391872a5a75b041e4f4469b543c56b627ec337816e58aa60e6d33631b6cbc130f523d1916cc5358792708faa91720a6442c4c5658a957c6a183a087f99c3f1ba2718623316db02b668338656853736ea8110863126ec794ccc87ca964d223654aa665beb4929954b1c5b7689d67b42a5b3039d2330d9ddcf3757f3dea8e167851b99a8a4fe64ccad8694afc882db21425f0124f71ecff301be74572cb55668a111dbdb2e54981dc138bfbb236e79af327a2fa0f101dfab3b8df58a6983994c231ccdf5577225b3304ff19fc231b3986d343ea3e6c721ad613232c2e6212b84907b0263dc7a7ce7ffecd57601de66819d34c88250b0c1f3ec7c54c4e364c2f7a66196da4531028af35c188754c5e9aa9999595c6205c1e48af7254f3affb5a1f81d5c4a7354d242f64011d39ad90b75a565348628df8a130d42770a6df3a6491fc5239900c40ef126a00f34ed2c3f36db8fa63871049b61a43e32696569c413e2d6b194ae17402a15ede03ced554f66cfa78b7b22ddb418cc2dcf1ce6061761d76159adc737707330f3bb480f40e7e41c0a5193d60732cb85594df3c3cbd564f2f4dde4b35223b0440b5403a18f4a68fd5e3b167c0101fbf1e9cf701579e003adbc88244e52c97bfeabd0e962bf5bfc214c84953590925e423f2297e923fb7b0239f603818833b7d851013b8988f061d247017c3c49e06914b49bea0b79533de2e631a53d1968f06fa2dadc02ebdb92f16f5a5301dd8db1299dcfca6798e5b7fecf1f69699873438fcab6768e8c47d502b14eb0dc276aac42a07f47e4891f390531f09156940779aeef481a269cca11d08456918edffeb806b32a01c5e371370fbe4e02013024a1ec0f2020600bc359313ca763ac10a5cb52dc60af3203960060058e1e06fb0bf5920470f59bfb13639fb21c71daa74090074b6ff88d6a55b90067a0a6c3d6c3d0469402769498548661d96e77d33a7bc6021090fdc2850e7c78a34b85d42941126e3e565780d34abc9be8da1e0b05150263e579d1a9023435dc607d30076eb59db213a171fbc5e2f40d280f29a7c8612af4a433508d46a98c3d5883778d1c201536cb90c2d51e10aa33f83f5b86ee33e2c17c525028d3601204624d231a1b75dc45c3da56753044f537434361488cb56a08be8c82ec4f6f0b2ee430aeae1ea2cb7f522200fd6920f0b0a8880b48411d7298a8bf522df230c768b422e21122e30191908bc7ba0378aad58f48e7965899c1925b5aa37e502c36c3b325973218098c683468f042adb8978d16dfe72b482147dbf98bd531c4f14c09e68465ae369631314f552512c8af43c4b4d0a64bc43e543eedf53cead3014394166866d93cc56e5369f190908e9d17329b634d11880eca09f41d54c167c02cf462865a02861052a659465e07d5e1e8cefa2100e1eff4011b19cb6117fdc11d9ae4f1a17d347fdb4fb72cb23ee0f804226cc3d051165a1887bfc4aad9ece3008db509d24d8dce3f49c81a2ee6c016aa48a73eefc5b6806f50f7d81a2eddaeee78bf75eb2074d90941b8a9d61a27d3049cb3944327f4e4211ecb956ca94ae680c8a083960efa44b41fe986f1cac610ea45bb6a4cdf6dfa02884bf7e67a07a99fd5628facf9bf5439d8573868a3310902a6ad1b743aa08ba973f97a29fe45e86695fa700fbd4ae4433f6b432d18ae40094bb98d32a621b46b8a80a82d4250568fd22d143998a21adce3111173812a18a510866fe19a436d0470514b86a1c1799645478d44edcdbb06707b634586219e2b5dc8d1355a173bb818d8b8300f6554917fc62c26df720cc9bf4c7bf5467eaee2d6ac84c035d5a46040ef7ec3e98430ef527a068bf7e89f1d3a6e5dda521b99f4ebf59686792fba6b0ece0ad47caebe940875fae3a352f218334253ac85a7abd31a3d9efd2b752adeabbe1b0e69576d3b0f07db24eee8c1c94d4de3c8441be4811ba49780d6604138e1913e623f0b6184468f0397ed9e23336ac0ad0a69a8cc31a9d376ac2d97ec940885190b4db111c951133e2e87bbbc4981090c42a0933a4d000a736e1cedf7d469a2c1b5fbc58f370e3f7f48265038367a4938c7821a1d0841e4643540448c91fb58f92022158c4e753a6f175b1ae6cca161500632b735c978df58682da6d6935e8aea45ceb723c74b2fc86d51e378cd7abf0d8e1a9b7cd9a7bc89a30080c0a2666c7ca08ad195d1ba4329dea61f06078c2edf1af6d9269fa189884851f025befef52b34230703bdb419c2e611a68e8ed3dc759c5cd1ce8226077d49b7b33a4abcff13ec0c8d6bbed0c7ac5327b0f88054683d4559ebbc8381f471d0c42cba461d40dd42c9086505f4cea56a0b257eaae4012ff6c907c2f7f9dc94709f013a5c3e1d6e291ebb59855465b56c38ac2abc65d17a1c1396988b08a27bd3c0dca6ab882fefba8fcb0cf74b398dc65dc4b5b5496a8deca357b040a427c48027e01dcdafaf24fde427d7bd6c6eec9698094c0014f32174913ec79390df4bf5a6a4cb9f31aabde39615162a1fe376eda43b13e4f9354242ebcf204048593dac1bc3f4a271f68fce7080c5643c4727b9bf5074167ac29ff21739abfa66c1459aa989eaf95f87ee04ab518c7743ea8445cec8f647a0192ac0693640a5aaf8a50f961a8a0d666dcc13a6e270b1ceacefd6fc4602a599c7a4d28f497faa29dfe7d603c49f6427e888406085341fb751584ca2f3cf400882dd4544127777ebbcabf0692ba03ff19a0ffea8e8234dbd4c92c181c9f6ca0be7193d59857a42b927b6cdb542fa714aca365000b7d0462a111030f6fbe0e388dbe9e9d3c8461a0ef4937ff160bec8d6e20b66b2ee07635b7989f6e39f628a0f70e92bd5465f774a969f210bb5449d873ef8544372ff4c5158ff6cd2bb0483c1a6f90e679df67bbc8e521f99e95211a07940139d57c166799b4d9a4f5045260ad64b667723eda28c40c2a40d9b2766a653948d964d046ea1e3e83a1e5c7618eee61f7e7d24eddef3ee7554bad6c52ead5548404be2e5531745c7b098e3d9fd035a03585e4e78da7243e778cf6e309b873962e8b9de52def9b580b2953fe8b41b9012ea54206a770527e8c581f2b3e4c9435b63c2892c56d5845f51ec5ffd150e63ea44f477228e8d92a4fc032cdd7125b405fe17b660daad3d76cfc653b8da762ff86c7481ba201f9fce9dc921a7a79485f70b16ff48e1f030283ce2a4b4ef1437d18fce9cbf6c39c53c44ccbca6d60ca2f0abbb9729e48946b7656d0fa73ab5aea857ce1bdc49fcebb3eb73b79e6de0ae8af9dd28464f175e5d06f66ac39aa96879682ff0bc9c586c404bc77fc3e72d4945b9c8c35cefef6efbe13870fcc43d9314bb7993cfe63bf1f5a40309a84c672ac87693333728d408f1e1b5f82ee5326fc4d7a813ea580bb67a5624dd95a3e63d68aa6a0aed7e09ece40355ceb4d967b6cec74f82a2a17aa94e351bd76335b06a04a7ce76a44d5dc6da3086afca1c4e40bd7d62cb69ce0b53e998a478ed1b36ab3618a80f8752b4a043a6a2c87ab866b3955a5860b8125bf1676fcbddb85b0d5a66980ba1bf936b87ca4935d970aee5a984c3b7038e326dd0c9afc21708584dd1b75af84b5b21f5964794028dd725cbae7f23eda0a8b3801baeaf64cbbf7199a65861d130c9c9148b8cd5edc0c4680907531c269f8376d550e16df49d6b68a1b0101bfed95850935ac61a57875df58033455b797eb5051063f75c5deb8eab79b39a4c52ba8f5145f6439ebf03123a0416b3a0a67044f93e64d7b1d1b7863b99ce87b8f8a17ebc61119019fddc27d9d93aaad41ffbd76d264c381203b56a8c92e62f2cf748b1af888c2d935ee2fb398b96522fe948e1eb5482f4270c250cbbaac0b2e79ee96922c7ba3cd968befaa165eef9c4fe6192f4dd3582d15b6cbf9bbb93e4d14a5ab1c19806ee0e13444c6463a03dc2785718a8e36f1e914491c8076c2f561f845a7a801e83c47c3412bd1ccb9cf84b8e44a6dbd5c398339e481519f1aa07dd08c5db208e5315d749452e64bcefad1a85b35c041bed224015ae32ef3b283a105f602e412efb0570350c2e4d6d9aa237d830af025cde952b0b126277719e6758f83763443ee519c45342bd929c01bdc8ce88e94df67b19b2162f98d4352e8821d5ce8bb11fbba957bf9f9e71ff43d1504017472efc7b310748c9f725a34ed27e2ebf6b52f8f714f3d7fd4f41d9e5704abb04d4005f9dba854d5001c324a9ce5540eead2858694dd0780db4d04ed96b781298c377f24c8d652286f5a470454e9ad23d0c09b202726971478144d189a16daf9a412dafccd2ce6ed8d8ceb3093993fc52880d69e748e82cbd63e7a2493942062c5db26bbbfa300ad179f5ea3280017fa2048efa2c2200a63bd851d3d5dddcc8a8250e52e498e1c7596ad7e24f19cd4e105977e3f3375bcbd8f397bad0e5d64a7fcce8434eecfa7caedfa5b5839b2102dfb33006d58ba9bb3bf2e541b2f0e531ba0c202bbc3407d49d68542e954d8781af005941d7421a1aff26edc28413e2890b0fabff10d895ad69ba1ae0200d474fb07bc788375cc3598f82cc3b248efba6dc479f5c90e328b00c1dda53996e1486eaa98f5c92b11c2457e9978614bd9d6f9dc5276f771da1db8c2cb285d3c01bf81746342b3eceaddf7c09731f5ad6dfcef94be2317e638ab678b5c703e79f6e7e924d811bc7203cb286fb972fb03796f10307746ee1a80509f363d4cef1a4f838406099248613bf5681a0bd1e8dadc30033d79bdf404868277d3afedd9e097cd89bf5e99d9bdcc62f92228e7dfc83cab961698ed246bc2d06404cfb505ececcc5492f87c9d93c4a356992f4279f27c1876b99b8c367d6c56d31c3777b052399611b7f29fdc1dd102a63547f3292a05730c2813a2bfd7aecfebadbdd69cf0ab88ca3cdeeb84596de9c1ef8471f3cd4bed095eaa9a31a62a7d094ef55d2af05457c20adef2982075b1718998cfdffa82d8ab8c1750c8cf2147aab62474fef95c00f45587999e777ac577114a1a31161ce255daa550a8a582363a6dd9dd49cb526a4c7b7ca9b2e87a591bda2ee06f5803f0ee0c35162507ddbc184e63ba2cfdaab1f0a149b8185c7958657aa16162d2e4692bd11bd102eca5f967a281b91a1365555d3140d51287a541cf4fc1dfdfeb5bd33af193496caada82eb09ae2af1bb9f5f88fd54941836df913bb7c4bc2595e0684a7e811b026a735911a3c67ad62a5d18ad13785c1b41306484df707a6081ff968a791b8082e75363a7f5675c8a0dc6e8e1b13a7a35036ca623c524643df651f0d75688e8de7d622738bc7c188a54d5dbdcef9ddf1da8187aaaf3e96b2bbd36ef5e568b43428cdd0bcc7804d9555abd9d532d4b5c5577926dfd62d393111be6d0f903ade03f41fe34226c266bab544dde8c550bd1870002ac3ff33c460bc1f4ca8ffcaac8383d09cadc8564facac8df5e1511cb6e48ef36eb80fe85e27295a3d356c8cbc8de475915d713a32d8324c2ee65f58b4471aad0622bca2fd090c3007396d9cbeb3e7eba36ede85428ced9bbb9898913ebec38a98277c41e923a7a0b258af450aa193f18fd6128648360bce7a71e26aaf5f9b52bf842abcdc521314c8a54a8318907b4e26b47709555d437e75c51c74b95282ad7345f9302317ed7094881e82cedb3c9e7374b53665a27f3d18f186689a61aec7bca204e321414e70ea96b7040e53fe92bd71b9a41185b59531522b7e86bd7197176576d72557668ba599f96ab76163ed2d40614cf5559617455e0d35585c490c441966ce3ab85bb019fe94436a75e4e731514b24950e4d311bf4e283f9ac67f3c09d619a55ff5d8967a6c8a10374348cb9b9135c104f63376acf4b2babb63d366d68d0dec8587078dcd778708e0a8ef1a95b129c362af87636ceabd7cac3505c7fac3f52d5f1f0bf5cbbe1ae6079486010a2a21415a60cad852079a3203458102da09847d4009103562942fc9cf2e9b27005710a663ffca0874d8d3818f301f4bf10ede81f9ec6b9c03e390a778da4ba9ecd0b6a7e031f883540541b616636febbbb5db228c9d76dbbd654a69ef263b1104e003ea03c9a699b9b51e0c988c403a3d3b6c442dcb9bf08d92395340b7ef76dfc28844a781101a9f24b108eb280d3281a122aa926a3d0cf1781ae4a4ecca0f71e4d91d7bb8b382f70be7beace28cc602a40430d2643e7c2e4fd6426777ffffd71a5b7f2a5a668bb5a61e42df862d62050b6630d8ecebe50a3cb2cf03717ef3c335d1846ff36c077edf4ff92b77f71334a07bca2f61ac6cd082051e1b04aa4d384e3668847176efcb4565890ee50ae55507c7fb72bb5204876228c1280644d4098e1934a902512a56d658a2a6a6ad4a91514f19e538c174aade04f7a91a092d7bf1fbbe6fcf69e55993d3e994ce68f8761c4c83ee0ebbbb7be0f45c7d83d583d40835b5b905765213e4812cb881dc8ef367458c3324c589ccc4cf0c56c9d28b11a474299d5b45186a2d5ae204ef7209a09b4a7306e049586a3f43572468202e05c5641377d5c5d541755f7631e643feffffbfebbaaeeb3abd22acf0f5b7de76771f97eb4f753e1dc311eaeee6ffffcf204897b37cd658dcbd6fefbabbbb5194eda6788db6a38affe95df7518ce0fdff7f3c8213302c31216227b054ac28b65e20bf5a18cf5a14efeea6b15c7faaf3098d4e8086d42db8b9bbbbdfffff6f4f9472b9888417a55bf260580a55b12c0d35260a126d6131a61fa2c9e7b4c4048b763863f242df9785dff77fe9028e9da7a3bbbb63d7eda3298e1edb1cbe71b42e8500ff74498104412453e2ca43050693130bcc5c5c6bb283c61bcc194726544f646133c8946a4a241e5eb4256e77f752c60ad89d7fc8050b0b1b90b1c738021f12554b63501a21252d89d468430a15bbbb7bfb722b6c926e752c9d4819a074779b0881ddf929bc6f377b72822d4b8228a3a0bb7bd4021d1c530d52bd00268d00185013672935a5a2a99121c5b2a24aa61d19837bb2909eea49432b67d965dd83a234015ec19460d0c8d048089c5f4a43706d2f8cad889408a51b43e2767b7737053e44a38ccedd6e57611daa8d5dd0cd735d1aac36691c101a13eaa5e1e22237745264d186ec56f757a33c9ebb7b14a83ea1e04453e086305058dc94708278d3786455d3256d832b304f2b20284020c6eb027777770d524537bb434d9d6db8bbbb731029d614257d083951345282f8b143cc071f30245a183bd784db814006800b59ca229b2fd279355855649860e0c1b2dddd4724f7b8748f4e8fee86dddddd37fe57bea675dd7fe64e8d3ba04e192ec4282f2e05d0484a5548cc66c26acc91b42e7e5cb6c50f9c75ba56a761eea7dd3291136229e7439c12076ad4ac24e3a882e4a0544c6170a801acc802d5086185161d52950079106e3c29c113423f3b5330636e7b6b893d84cff5ffff57daace692a0eeffff577a1e6d07236fddb1872f1fd5b062777706a7f27d5fb828fb96599571958d95a195b1954d5d085d10a5766c73014565051d96ec6e0b4654428eaa5b3175d6354130324b0f9f3b54cdd0bfd215ce4392a2af47d461f1496799ffff3ffa642201ebf425817d5f7f5ff798ddfffff70386365cc496939f21c8bfb85d2d53c09862f16313b28426418d595e076a09dbaa3c3c6720ede86009751822136a6b6a72194e5effffffa33ae9c747d649816a53f14d27b560682356d9b41ddb6635debdeb7e4aceb3b1d7f8258d507777f3da9eaf5df7b5648e3d85eedddd655321d1e5d84119dbfa5325e016fe9960d1923064ccd201188d6e5d8d8461cf4cd6dd7adbdd1d43b8fe54a2cb8518470c7e540c646fddddbd018fe896eecb475c2a66eeeeb985b31ae6a01d65858550c9249dedf07868699a3aca0cfeff3b303abb7b3184ffffffffff0f9675773fb15a7f2a97bbe164ccc3ddbdbbdb0311c1acc512c54227e6878458078c5dc39e2a149fb6560408998f02514361edb94ad3fd4c98d0ddad46717101bb7ff2b3107a252ed2dddddddddd3910a1ee9f36c2755c0b0b7a3ad5a5b53094b2b6ab1e96768682ee6e29a320b0fbd8eeeeeeddee4fc70c4f382444c252a65e6d284d36b71b9e16223a6d8860c7148bffffbbc22ddcc3b1ecee6ed8334c217fa4583d3727166c90843d602a6724da6377379c5dcc94a872129ac49180b4b1674473696aa54508d22d08603bf3061980efee6e46a5c0ee2a08bcf79dd62c0909a55c2e56347053aa3171625ec65a99b39115de2ef8b2ba2107d039dcddd5a7311ca0fb70b74ec900dd846a25e2c3b3bb7bda74fda942a2cb1187a72f488590dcfcffffedcb311d521818c4501dc67de7baaeebbaae9a71fda934c81f259206b5a5bbbb6f5cc011af6b77f75cd1e53067745d11106b496848254e9c807409d68ba1942f28a9762a44e97d3bacad9c20cdc69247209dc10f555c570ad24a0aa4db0fc0663655f17aecdcd84a64a60203365e57750469c3c83266e2d8a281d7113cb920e33aaca0825d9390d03ad4ddbc315f67299021269de0ffffffff028d68fe16264eb96b8a63a192e1b6852f4c8326deb7d5a7a7b06b7added9a747777379cdb8ba3535a7c6f205106dd584aee44eae912ffff3ffcfffffeff70099dfb326b92cc1aa0a20db544f3b21b4468606737ac29dd9781e6bab9f695d7e5ffff5378c925213a58a12e28b41173523568ac42a8284e5b44d8b42fcc1216104a18e0ffff3932500f3a54612d5a604177f75a04aa4cb6e80bd2c6ee7dbba35e7ee26100ba4980dddedd19c63f06623408e8be09bedd97754db0190a6b84b5bbbbe1ee762add2e07c20b721a04ffffffbf96d2fa53997d41cbcaa386ecd9197fdfa0f73f134d7891629252324544070b40a9152d9b986e262e3588e2d6759fcbe8edee029ca0b895a4590c64990d13924e1a157145dbf24b73eb86e0010c8d6f69266ee6b551c17dd9a4cc44f560cbe8eeeeb12e4d8cea039ec13681195321d165026dc7eeffffefeeee9e948e038da73b15d05d0afe3b80ffffef545a7faa9399e35e3cd31a7d271301f7e563c805f9abf865fca2e9c565448e16b1f7641d8fcfceba6c1b4dd79f2acc9082d8dddd2fdba3d1a93b15c9dddd2954f0b6e0ae9b59ae3fd5f984465d0d33520b5ef5aeebba3dc7f5a7e2f008192971e8613ab145d0c578520bd1d1aab102d35728d88ab4a4c9156d9007274f9d8a214a330f8d4f9bd00c110d1e90ee3a528d88898dc400a2faac094f2949572e3423d45030008734227884f69cb43f69f0944ddc01761ab818130a779cd264361853b8429c465cd0da1212d6146742271a89344424f1c7c397b5d8ffffef141c5f16936c89d5c4d4f3c96d7d11bbb319a01930ce92249016a95212fe3cb79240da07d8394d87c3dd7dc9fed4eceeb0bbbb530b25a07b47f4c37db92ded05858e1261db15c04391dda058d6f643b22248eb4f5d3a9fd00c2251b700e7eeeea6f0ffffedcb6dcf93ca9bbb1222a1d736d519d0f5a746dd0d33a4aeebde9cf1b60b7180fbb24b13a6633967957f2943049bdddd1d1ef278dddd1d777777f71b1f8eb3ebddddadf3a1ca6c01cb2ae11234047194341b0f4a6d5a5c3ced01d68e6adc780021c5a5a6cd4945c86648a020db9d6546ae1d049faaab5e3b6dc396c1662a24ba64b839763fe184b0ffff5f73e37581af6dbbbb474cd79f2a247640c2258bc1912019737b69aa80b497981c508b3111b73699136c993942b7bbbb39babb5b036077777308ba397ffbbeddeb488ba169f93f23c261043fb9f0b1d545a1293f72549255f79043c2cd5487296313c3a2c420a54548da541522d3eaa859dfddde6ad1ddffffffbf54dc1bf01f7edfa0cb9ebcf1fbc2ebffbb9087b3cdfeff3fdfd69f1aec0b59438fb113effa02af9f8c1061559d6088ed4f2e32eb740c08b23f3573a819a4d05d58908f0192eede017477770e236f2e0761d075dd5919dddddddd0d95b05b8b119c59138cd9ffff7f9d5389d01d05acee14d99f9aff9dc07ff87d9d3b5aeffbbe6715cadcd33560444d28abb974ca6a0bda91b1e2115116d322b1aa622cb10dd7c592b15b574780500b0805290789026eecb844121a3f18e630a355401fd315c1d091fa54a9c801f11443a3a6a0abb50f41123bee0200babb3b07cc6c1573798cf938d042ab20f2c23feeeeee4e51424077d8acdbddddcd6afda95c792c46f3c0e0c6e6ab7001a590882e38a3b31139106d235e2822a0cf768457131302cdda4ca17477779edbddfd54c3a122e26141a405d214f84c4348a4819da881748b036c1867e7baff62690947c555f3e8032d285a52e65ecadcda9bf66553907002ddd7b6eeee323feb4f5566a458432eeb6b5b030c8beb4f35d27018227d1c459506b403cf14cd6c44920a6366c4db8ae78b1eafb6294e021d77f724d2fa539749679c7c7a24a1be0aeebaaeebba6e5674fda952cf90f5161c163d8396d17d07a1fd1ab1bb3b130514e8cefc60993fdc25881022401de6a5ebfbffffffff771a5a02ff7317490787316c98d4412d2706014b6350ceb3049a1213d70c042e1e8e36abf1d7cc580816c8a39208f24d27d2964c4471c52d416d3e70408178ac4ef925740a828021027995e3f2a8787285545a46d8e279694d5857645cbc00121b116ee005463824b991916c597cc975a0695140317240a189ddfdd7dcdd9d5f53a03b0866b8458f5921ca9a205eb306b6b5a602d36c9360364640f8983146a4c032fdc4ffffff9fe1b685bb83ba98282a102b2fd224520443376c70586224592b54acad0fd5bbbb61a45cbcee166102bbdfdd7d0514e8ee524b327672bcec41c8839107a591b621d30d9912cfd3e59293317665a2fc69915ca3cb84eef649c97cdbb667d280600642b07578699349227196a654e175d352b2d6aa609d31164c2816a3a2264a548ac6a09a2d2c2da64898f648275ed7164eca01dc5b3c1dc18375df4245920c763d85f98ca1d5905b8b521b6953b02edbddad82b6fe54367783cad4a3bb694cbebbbbf700aa50e63e701263dc3aa0f3a106c8e46ceea6350a31017a4e0be3af88d5a79468fedc3a57d79638d99f9a9d711d8c61624c3e3020fe35e2828a06d90c269ff6836547f174211158435041c940b2196244bb617777efdef9b2fbadb72d9470fda9c41c7b00e5e1eb3e62a3cc3efeffbfbbbd53981c993947984e501dbcac9e3720a65a14cffb1037b1d320850ae82c8991d54119210d7bdd1b256ad1d7b6ab34b8fed4619183d4e873f79dee69e3c7755fc01b700831ba2fbb2f76b6e906ed659d6ecd89b23f353b93857d6ddb22a1eb4f8d4a3d40beb93e579dc861ee76ea04e10fb725211804705fd6c935a920d5a3151f22164525ae038858e2d8105d714915ad1e3045dd9d02279fa78858d44e9150ca3405f995e152dbcaf2c8c58ab2eb84539712f0974410a344d5dcc299ba02f90e373d46b9a45a0991d20edaeca94a43c19723ad0f414a2a59508b53528c866bd80e3941c562b8b35edfb4eecbcce047bbf9ffd72471fda92e471c1ea1c79034fa7740ce3967f8ff7b631b31418eaf024bf1f1ba2f335160a564d080ffcffecf0ec3ffffef0eabcfba1e848e299338271d84987c8a52b09871d680747b02d86f1cea45705ffe3a725a77396b86341a0f9675779ff1b6fed42086b6a10ed07d13708cb8df2e7394c566df7785b3cb90a3839501fcff987796a38cf1bafeff63f506acb879d5c43e8530fc4e298c5077a740014ca8c9a5acc55b14c49730672a4f317ccc8474eeee1bcc9caecb7b229a6931837291340027979cf42993e56c4d983d0391e0a8a42c9e37c7006837231a5804110361248bf3b845071480071acc94c8943c443c1c0d87a18030140683c38000100000400010200c86013896a421536e00025ccc4688f174f3639c159fb1bbebc8daa9733922de080fd40316a7bee4390266039a27ea579d1d963ed7847233c370020689f5bc11145adf4bb1ce0d7440c2a6d20ac20fd68a4d39918c22858d08be95228d48b1dd306144e4ce4a104ef1789df4be6c900840348f2cd66b510acae0aa0f92d790fb0b81edd0e86a63346de1227299504a3e371f6ddbbf6f2e53afda791dfe8c0f9aa1de86bd2a5458727d314a873b23be0567d8f1d181796cd90b4cc8c318fc227c242121659ef61aaf0903dac5b3aa762fd1c18eeca055e42d2725bd6d38a6a5b7882ff0da0fb1b48662d2eb1470a2be20dfaedd169ca82770761901f3c1add94f5dc2a21370604229e600f07e5ac70ad1d24cc00659e03a709243f128e9244caa2d169f764b69b7244b622cd88991fd68c0879f99e6c04de17471abadb228ead9f07a4b4bf494d1642979c50604b9845d8330f7856c3df7b13971421832355854a45a03d4313b5f92f171e47d0c82e889917deb266e13c4acbb7433d2c041cd7cf1f8b5b0322d033c12fb31db915fd4270fdd68db1cbe30265f4685bb94efa908f6a4a00b60847749aeef5910ed6c417590ffcee5d2e2a61544083c5dc08f234f5785ff6a107c051d8c0b9c37c036131be87997593e20b051937f1a2660e830f618a4cf432242b4ede8e1ad47eebc6ac1a4626fa7660e65caba3698db9226a33a48eed869f664b0c8ed7e500ae2910e83b012e08426f2e2bde81d540bdf176fe266210125abb06009a2646d2863bc8377f39046a3d8d0181ea5054d90a184abb282875a957d31bcee76b32e3fc96f6bd5461b39cbab19316b4843a502d13029544daf67cf4e0596600b990e6cca4d614c695048db91cfa869a603ea94e2022ccf44dbcfacf75f078c911ef4570cb233dcd1d324da3a3ab030f564282f4690f5029dbb2e6d52c1c9a5a95b55910634e974ddc5af589a8e680ccf58ecfe5c5d9912bb1629dc8d931c4f68422cdcf8a0ac08b838b3aa2138608aa13a13c38881b4e03526cd938fd2a8c67bb78da032ead3ed412e783525275ba91a430ef6b3836a7a09132a8238afec7069be3ac1a2c8400da800f2af3b309307eca14d676060b3a672ca28776a291421dca572a00ba67dd79a02cff86879720f8df7997187419657b085eb2a8f26b95a8338589644a8915fabd03567678311d11fbe6a622b4a31d1e961a55217ecbb2899bc382061bc47649f1e7c0018681f009e2c945605f372f953c9dbdab03d8675be5e6b7103a345beafc6f05ee8c3d125c6b0ac6aafb810ad11e3b515c648a5014b7e59c07bac71d5e7f79558ade30095eb4d30120541efc2ae29ac998d3625066c815b6b8749f07a518551be73ae062a7a65d7089681e18c267c7fb3b1c23c08276124fdc1312d370148555fd629c69437387e631f7e8a5ee4db030a356a0f11abb390c4137103189afc70366d9471f8a05459ea1eb5a61091c1ee15a65afba3890e4f6e3181e6cedf758c28be5dfdd2aee139115e971588c3df65a5fc38e7c2687d5c894a98359ad36931a32322483215d004b2aec0678de8f336a525bd8c6ca7da1e72da558f61ffe35135393b9916b6ed53bb48150311b5abda6984c82e681931553613c2b882b256821214c67e6a65417cd1622e0612698a48148c76716a0660e299e0c0717d4cc78b32d709eabb20e690a7ff97b12af3d659b2f0ec09cd9a53588150fb29e100b70451e53d6b74459bab54f0f300136ae9b4cf8e02164300897449316dd26554a1aff4365a4a244d2c52a2458c4b89884b6dae909898e6c71cc377304f672a770e1a41d88ff70bd5ab57c2c8d33daa00289072af59cedcac3d5f06470b3ec8a748284aa23011818cc3a7e37bb2dae5907cc092c1cdc220e72ea5de3375bc0057fbc1eda42f54c008f31515b1d92799abe6867714c9b19776ff1de62793626ada48e388b170a816f81f094acb67322c919b1d1b62920a400f58b56d1e93840fd378e1662352c3cdb4aade134613431a9d0d28c23eb28bdc422acdebfd91e3c30bfd5051abaacac36bdd0d038457495d133691705e4f41498263788fefdd83527f62a2f276013c61317fc3194eacce6ae2aa33cb66ae8e819455c8abc1f96a6b149db5b5e320771d4fcf50d6a27c235ab7a2b183ab66810f7faeb22611f082084572cc16d6e3e19ffdbb06b38e2e55cb8fe1237fc20fe78bb74fa8d4921ca52249e9712dca3df8f4063b6855eecda8e9beb4e5734719892f10cbd149166f23cd2a5ab0d6ac8ab89c32094b33196dd00a0f0c9eb51f8a67d53ffb30b3ed957c4f6b952746d47f4858e94a9971c0200da6f9f7cd33743dfe932528f22a8d311503dc7af6a29c16912d0d4886d216f477632f934325518b03ee379b3c4fa1894b6324651ba2de989022addaf600c5e08bf410e3430865a8baf158da451afd6f7602f04bc53e2280691d602a436823d82844f2f498144039b3dbab421b3c7d2216cc2cf1b2838dd239c5a045a7400a0203e604285e8fa7e1a700caaca0313f80111ea1537648f5c5b5138208d23902c56318ca778ffd4624d43409efbd4305168c0bbd2ce9707c470bc76ab0e094d7588a58080cca5143f1d33554733b6cb55432376fa1c5788126d28762f65300b74e204cf33bacd0e2a5769d7a51a4c5c6300286501d49d6f27b9c91a33c8bd19ff879e3713c8635b1f01b23fa9e2834719ff04a1d2cdbbc3ce0e26c12a248b4022c86ed32854bcbb24672153b940fecb9325b98af7658d4d90c257cf7e2bc308708595180bb95be584eb8b3611f9c358caee7d25d03ad252e2955170f9457982f5f2f48cf86c5779c9211de3e3c52257fafd7616bb725a0bc5415722c0d7111fd07560b78b49387f6218e0417b2d4485e19fcfd36b1cebd5aea82738877bcf085e84a74984470e842e77565e8acaaa55d678b3a862e35ce4d3a258b08c4b976f7f092e5f3febac7532752a1571eaefc49dc213463f8ec85d6d2f66bf85c775cad289a51f68d8d23aebeac2c22a991fd59267a05098070e86dcad56d211e299ce364cc3caa0cc9dc8af1681751d0d0f25df8ab48916a1789dc7ebe5e32fba08b148bc85f59aa3b7759b6ac194f1743f2c326527edfa46e1774450403d8092a1041e3bd7243fcab53d967cd039408630f3b1992c1e190c00e755bea65de968a17748f87b6e4e49c526894e0bf7bd8b44f57bdad15333ee0f22a84055a24a680c9bb8d8860728a43df40299e58960f9f34287fa36e4548730f88b42a9866149771cb2428ba83a0e14186d6b9c3ba062188a403bb63b82e3440ac6de8f2dcaa58f9bb7035cd8dc929b0c8f4d695ab8b64e480a7297d7e3139611194e2ecb3cd158850236b56019e10a1c44a614bac8731c67593aced5aaee2948f7add60c9202e3c8a7a391ea0d7906acdf7631165e515428d94c905782f52d398da26e10c79d4e15e93a6f59fdee49d268ee54824ed928af5556536ed1b299d5c9bcd494f59cf93bcdbf82663886fc32e7a9db8145b8a700e71612745a14bd799492024c94c88abe05e187db906580f39bed143bccb37dadf38809ac6518e254699bcc80573ff120eb3160eca9bb34b092428cc573b887f6104b7e2e229f1d12ca56ea286651849e3deef41c4bb367b609774b9f02526e52829b6e36066a9343d4a4526a488a768683ff7fe069df9fa43b15fa154f1a38b0e4bf9a150bca1497f9d9fc8ef3ac891e870d12827ca8f526d6140ced85717a49a165a9090020bf649bc07c10643670c9f6fe7370698970a0129a370d50e6b77ccc6a67f012c5606a0ace24a4d0b4ee0c14aa6ec48ca946a582708598de01147c26a42e1eadce2e25ff77064b730679e54e59316cdf154f323cb22778c743710503b1c05d955a7a5200f05fa0834db40c0f468f5ea0c9516692ae49a23d0db829c6a15711cae2bf01d8a3f37810d636ef8e343aed4fffeffd6ed727eba9547d4664ca8357bc43061a3efa72717e785d7946eaa833d43eb3926750191cd811463c3fcb00db340a787d6e34e76d60f1d275375a65225d8f368aa05a495454c29fd16be894a62f9f9edd03f619d9413ea529019634121beacb1b2b8c4d749bde070bf60c728d0db8be8139022b06783ed3915fd6e23b230fc1158a622a921b4ba6a0e2dccfd717be29c5f7b9741b781ee210612b7f3bbb2ad11473e94a4541607ce89c283b9782d6900ba8a4e14d06c33b750452c064f49790bfd163ef1b5b058ab12dc728b0e5765466a502856b52fb334c9c342b1d8e8b1a8345ac1cbd89bbc8045c148c0cfbf3f1bcc81d24a69d2c8d7b6554a354bd751ac995acde5c0cfc929b79832f24e9bbcc75ebfc0986231e467de7bac2ff8e0a59c0eca427149d719a1915b5baaeb62f9424275308bf7f918b8b4ae17d285d2f1249ba0907a2931d3a432c4f6375a01d34699f0f4600a687ef72e04e87b0fce61d259a7887c36e08de76b341c2bab5abbd4264bc21787175b88a5f7c5a0ea6c9521194030d27a300a1181f6d995e11dc07440babdffe35e46ed40d1c1d53a4c68247fd0f8e37564c3050bf908849a5a026b983c89714b3199b966a7b161b50d0a601ed0def3add567ca06b1d712c970e45c22a1c244b1ce6db82314df0c1991ebd17b62a02d912d4d7dd0eb1442b3bd0dc5c7a5625ef3c0998b29e63e5419ded2e0cf196a8bfd550082b13b69b9a5d147c5c54590ff0fd82f91b308af47e68591c830edf357aae1a9c2e2a53a8c3431b7dbac4a21210a6d5b45a51ec043eb5cc141b9c1ff3c486a16854c5b48a9b1a9a320039ec61a66c00ca239e254211b0809f96ecc14d208f33e649b21a6ef268d8d6d9a44aa92fb9722cf35c30aab3340586aee4eae81a51ad56b89f06d4a306c35a8c9fe1f2ba952401a53907c9100c35a734c128d2a765dfc7eff7dfe962a01579e96589f5bfa18d496c078890960264de426a192dd13c58d6910dcc637fa6805ebb0f05af4963faed95b78a295f48e9064189776368afc231a33025ddc6d4106418b529fe9003379729e52bc01958a069f57ef976c43f67ecf9e1e603f0cea8c790e05293b5c001e6b5d69f544df15e6753a156236b5428a732465a532681998b5fa52ec43a37d4fca36a532e713afe0e7d14b08f5b53dc4bd441dd61cbb0c521c8df4d2a2a939c7766a32f7c297cf1de1b2d31b3194a8412baf7b376f816169828b802b3ec96241875266ecee3557f871c4bb7961ee71c42fc02c27020582a845211632334fe35edcc035eabb5b64f463ac2df9893323c2a1c30e0d50a81b782318e46bf26590fe335e65dc91ce5aa432255f10705345e11a8f83f9d73501f12f0122821e32da370bb3470c477b44830151a647ad4d10006440d2184940493d840c888a59a627ffb8de21c79a94cb0657c98be072130127754b588821d8122f01ce286a7f275ce4ec9e0795502ed4c321d675ebb888314e4bd8ca9b43ae99f2673dfb97182cdf82df3d97b6686b7f1b8347c4d823466cbd4fb3c78d02320b32cfb4f4d4703645d5ea58ef9dbb4c4074fdd451b30fb85c9c9d638f7934004b993d2e06f136efb67511eaee78d824ceba5df3d561146821104373094ef6f2f4b26bbe9bb2eb89a6c8487f204524ba91cc13423df8cb8327c6f2d3890c11cfe559ebe84397c743b110bd89de2314cf9bf3447c1a476e904683c6255f002a0d47467ade924309f998f70e91977d5d49b7bc05cfc7430e79ddede821efecc2710a6df827f3a41add1746b117968597f9e7d822de309896b2f0c2819c0b037cc2553bf673f1e42be456d9447b27c4a15679be80df3551146e936d9e55c28608d3b117f9acfc49ed915a6a32aa09c5e234317e854b04dc042628024d4521cdedb2ce323f3382281b606ec524935dd6be5018c99465597bea63185291e12842bb3f6893f9621c3c26a2bf014935c54c4ca08a93e5751cb572a07d7291bf0976bf1c8b58638506a24660fc8572caf0e5899b90a7025debcb064f95c8387afbc6118095eaa71e676eae1c1facd4ced883862426faec5776aaf61e57583aed39c6ff57309efcb9219c665466f4af3880b7805402e53114ae249a5e655b9735c01295ae194ab126b6cb50c3c867e479fb9b44cdd92dbcf159b547b97c31c202a8f2d51cf4820d2536ea59d10490639072405d7225a9cbfef120e5ca2638bb240f3da05336d1b2213adb1ba9a93951992d97cff146210bf45c4cc4ed1447516b18460fd5e25559f35e8e8a625d4794b260f9ff1f77861ccd915550c36dc5be7a5c6ef37ef2d34d5ec05509917d462971c1a34e94a435e80a5537065b3e100bc39f4e0d4faabe00e2d989b83a1a23ecb142eaa434361e5e27d692de44fedb344c4d108a7857e333c5fba1c60c702bcaba430208082bdbaa747fdb9da944f333fe57d9993af9b6329885c8cc2135fa7a07f8c4df245e1313d88643025e65e98359225cb22a360c35ae61c76e742b4e20453d94cee87160164eaaa58e00b3a1cbe8df754e0a1091d8bf92f5d7af2c429878f000a66ce34fc620ce04b0d28fba5dea42cac5700e23e0abc3a9e3c0d459808c930971954d1b529043806b781aced79611007962b0fcba9ee4f7c231e56cdac39c5ab28f4dfb2b2a23a85886d18faf29d34a266b642370ae6482bfd5a658eb055386c56a5f946870c3fc0c4b5ce3e79f3029325203f92df9eb98cf640029ea8b3891bc725916e5e9a674f355fc6199782bb9783509733b420429a8cad54da5b5547f1f3f34566ea91c6fc16bfec5dac3f5273553d6667d899b074b70ee9a5a91014dcb5806097f00e48860f95b3c9ace37079e287913479f2bff2b32f2fa24602b815b2691ec7cb786f48e589aa21da7d7460108533aa009edd8257e1ece4071b0509b30f113881382e5f3daf90e8315431111b7013fe7a715df53b6168a842ec9b19fe155cbb8d09b98050ffc444ead359c8cc6e09a56fe04e36468f11a3c0383ae4037055064dba63d15437a277c1de310503adb84aa9b8da3c7080a5c51f4eee08f2686f7a20c3f276729423f88cd440ca290d01249bccad116e04a72caa68166262dc23533d4ddab4dc409de9acb5a7b4b128629ba853a42147c480be5e81892d95e04f3429016a020da3ff4139a2af624fc1df79e1d9a651f5263b0e32301dea27645b7653c33e4c835a675e48d053d3238d3c3684ac810412ab921da964107ddd4a0d9acdf55d9904bc48c02f328d0877812582099c288b47a5e085d38722460140346d2920b52fb6e5ee60a3c7d34bae98a8aaccb4499a0e00339a9cb42f656875891bd6937a389c53673d31ef01c603ed68d903b2fa705d656a688a1cec8e197c4e13235a7c3d3234938eeba45e2be6d58928ffd1252e73f80448494d83c7d021bff2b3f534b694d68ea3e232bb3f63e0f8bf02d3b9f3ca79bf1c3cf2bcf3daeb59abb068a32ed0f4b7d32566f9894e2a51c5846ed288161c6482e87985a324d14e1ad3065256462bd7a63b373e24833a26921322236629a42e9e48e508b1f1d11ea1b97572f1849b4e6cc963db1f76c4416adb25de3700c47c7b58e80407a12605de442f50a0ba3014f28ad4a2d104cc3dd748453226d1ab19e1551295975f80254788c214dad64c458d94bbbd9346049a8a919aed6271e96f3fd5000e4d1a12e32c8507791ce9a34a7859d02e252b220b0eb05baa53fd04d54f77c8520aa8ee4f5623dee63aedb9331f23b2cf4c55789159243cd382217b223ecb439bf17b2bc418c91d84c48f6b64f1e66d2b1719e2f066b8be6bc163b9aa5c56a4336fa4220c569cd41c02b5f59b0608858124273f2e5a1e0e850de06cd7264ed3687ee724fd0b05c7e611dc03a56611855fa64d9a6fc6476ff4b38f19b86b524665e49a9e7cc768ac7d8f1a3966a2c406af1eaa92959d4682a0b2be6469541e5d93a7e425fd40064a8989751576062fbae1b9281948c5dc07b5443e1960227bb0dedd1c9ddeba974a4ef4a7d07b4a80b4b260eb416f7350df013f4220c978e6a92daf50317b63d0b3bb835fe070ce68cd724710ca6ec3738879572201b1a0a5767a4477e211f38e5cea48693164d55773d4a32ac80938e508853b3da039ff3a039a808244863636e79b39797e6ce06552c2d0c5d0234c9647da2fe41b923e9e3ab36bdd591d65feca50f554554a629b974387ed20418a5d2fb984ad19d0d4b5629047a8a899979f821e96642247db714b354353c4da834a23a606ab27558b2aa852ac7053aba646ba54e7c6540f478dfece8d4e1429788dede47ce20ff48bdc786791daf88fc8e97e4bd1926ff84781151a4dff70389bba8ec4d73bd3b6b7db6650179d409dea3d1bebd203e36be4e2c295207b35b598a0642610e08c3ace64281593dca3cd916f514220ebdff8e1d650a8538a37566fd43b6cedc3f0d35f1053348996683eaf44504c3568bee829477e503b07d9310e98f4e30b5de40c41caae77391f2a292ed53378888c55073d1ce7142267091e010745f575658a82c47c984d7afabec9a9eba19ac6533b49dff997d07cdf7908522b0aa29c55ae1a521ecb89c17f696b56c240042e42954a9c01305063e4eea1d9a23c44313f65205910217d3c36d841f3d3ea2e4034e9a52fe0be18b0bdb2cffd00c556c21a028abf9a11536beaffffb626d9646dde8f325e3a0441b818ff9a8498d853e5d0a10626c660aaff9f3bc3a11c94c68d1bb1aa14f951f486f26a73f0c1088b8a638d9ab2ab757c4535a059507fc71cc2cd02041d22539ac56fcf14084b3832673a1b64c9fbe71387f206d96aa40531b5125ae544bb2545b32cb5d1dce4e7a6c17ac9816e504f518e4cad8616feaf330d8d9b6a0ce6aaa66a3a0fe151e8bc732ef672a96da6fcf0e3c4e605a5e8a51739806671f679714c475edc73953dcbdbfc6a57a0f174b90d3eba595e1d2c7c066a5372cc39e74e67b253225fada5b7ed8d21c10ef214dc4144e5a713ae0c6a321c31ed5eb184a7ba0632c9d0c72e4eecc49c28d34d86025092ede728ba04db84957130367077a59cc49c95043260c5584e036e9f0448dbe507dd5f0b6017f2a7bc6d643dabc8bb4bcea2fb2d9f96411c756852f570258360bc71e75bddaa3d28b1d85901ed055d7b8482249362e1d7a1524ce21a40f6eaed03a6d3ecb008941009824fb20f82d4f2f15276b203bc8e3868b6aa9115d84cb0076b009eedc46610ba43af9d7957cd006bd6f075d831a9b16e61f32979e15bdda6709cdc806f31ce5155193728a50bd49002185a75c9da94c7565c185b6bb165f553a4b0cf305f0a36404703ab854d7d210df5dfd5904d8fd6c12cb0ffea132620049713c0cab52cbc61f5ec305f87093ccac8542094830bfc8b3d580751c71af0909cca3254faaef09bed09d358ee2c34624e651fbfc86b19336bd02e699d1c691f61e151be4b32622feac09b2f97b70d12e298ac3526fa1ebcd77bbfcbe376a810b8f940fad543a04c6d5bfccf15613b3e7d08a7e494f6b3cdf2113f0a0bbc95786e0c963bf583d05c36f1fa5a68c0e3f0501d59ba28fab1501650a04bb7dfbf072d299b218f659bb581cf168175ec0a45a84bb8b7a68b1b01a5ec5ca52c919a5a6adf14823a2866185a0fca05e47430e87ed7f478413323615244268f2278e8625a6025d6d3fd9e853297ef8b346372557045feae54c36911dfd626257387bc0af74bf6a6e7dc2e23baf4bec9d66f5be02de3b7a63161b11ec24151ce82a54401e7b852a0f9541123cdd9874f544bd9961fe9ed18dea07dbea529d6c4f84d540cef977952306af92ca5c8c3e562cdeaac925e16364bfad22d328078f6139d6b60f128ebbb5c284c4d787a44c551eb2c9f6935bcf8eb998faac39874ec850615c36a5fe22412d49d1a0b5429ee1c23f889b2f670d78fdb2d7b06c19a5d0904754d18cca8a40379a66f30165ea582ecf45fba0067bd50d606d692baa2b0640d6afb66e26e88f7ad2691df38ef57c735875cc1db064469e9bd01fd59607dcdf754c528cd228a70977b5d8ba2579bf3ebb93ea7c64b45f5af23f95aa12b3709bcc2ea01085e0ab2b4e4c215864670c8bf4b946d6be5638457aee569ea2b8d2ee0d97fd729e5cbd8658d76f2d30c89647981aa92617d87d9fc8a8a0aec9c3cd7bff713c834819aaddd65bb420d4abbbec869d670b0ea8cff74b9c440b07d928d3dffa55ee61511264774bfbaedcdb58f37a11b9a34d59b92a5763de8e40d6de5a0a35e19ac3249a8991b8939c3359fa26d502b711d379c69813bbfe3c34fa8994ff750f2c5516e4e277bbbc78b9320ee00ed51aa263a8929611f220037fb8cc1f2a39ec9f47b3374fada78d756264c17fa8547212ac2f65a47b2bd6d5af80e3e992f331a8cf70ec2e14d3e6c2e15f572b749e2ac5476cd4e92bb715d18201f53fb29913bfc7e8772ff8b04c884173b37d787a1bfb1fa48a8fd8174379dee49107c7b4e2460443b28d02f481b0546f4cf9f886d58f2ccaec0bf2072d61221a3f189ddbc201d75cca8d8d65067aedb339ccd0f022aaa2e16f74468e511f7c32b4d953b49283625bc6d9d8db4377f52695de73089bc7ff1c228e03234d7fd5350e49391e560945c2f705fbc83013a6fb9fee9cb14ce226491a4381b7408769250196700094250c9a312f38457334bcfcb1673474e295b2805c912755a265a0e56ed8fba234f4bb824915773827808727bc2bceab798bfdee2fe164e8f9a4923f26b8a0ae9496a551e61b3e5fb1532e2e67c59668655e9c7536e0ae1b425657325c502eaa283369e463ff76137664172f5faff686ab1c616fa67502ec25b152193eb97923fd57d11b010c9f8ace6e5ee5eacb91e3864a9822aa2f90a4823d54436aef18ad5ca5871b61b6caea435979d667f1d4d4230ce195fb6a14e6769d65bc38ca4abc12a4a0826c918806ff7dce2d8f4e06d94c12edb5a4a5fa79647989cb07d10e23c987a4f050a8d4124414da1be23fb84c0561a8a2d39e463bd2b7009b8696961574c9932e495972daf889484a1dbaab45e1e83b235a8d0e909a4465c0582a1a8bc6a4b3723c1bd719e3dbd471d8ad1f5222d7f88f17ea5f05b8389445ae1b7e2097a1240ff4329486ca20c9403146f652d911db553b5c7720c1cf40a8c698e0408eba01d4ee0b7c268d716011c4a4c454eda842d278c58dabf69af27ef70478443c194ce5a4d3c7ae3629b4ed6f0318376973dd84564a4ce46bdcfce93c41387eb9ff6d996044e69a05ab4f8764de9a5891a5e527b212cc16d7c8e83d16cd772187aaadbbb438faf0a5035413d8d558b2de54be5d05518f3808c023875827faeae1f2d98d981cf15ef26b057d7eafafeebc217381bffcf2736b20d1b929bccadcbc792b74a4bc95fec0a3d9af6909a54011eb739255b9bbd0755220ebf8406a7b19c906f5dc41a7361146edfab533585c7a2c0bb6b0220b4a242fe20aa8d94c1cfe18e3e45d72f0f60dd23212cdb6aed32d9869a5e5c4af94d5950ad6930b692e708f1e638ded6a51d4831dc00c1cedd2506366b8f92c8ebe02690419ee283dc7498af1ef2ae58b9bfbd21f6ad4f018abd647ce520dcd573b683ac379201bda85fabf5b98e9c20a506c40604a1b60d9c29b8812797027a2e6c1de6242c8e91d10968dd6540635313daadfaaea995f7030946d01eafef8355860ce61a50313c43f599fd5c29dc5853e31fb1d4a7a43d54b073b523fd8e943431da437cacf2efdd9a1fe4df365d0e92fd2c23b78076fd0a3bfce1cfdece246a7cbaffe58401c367836339ccda282a3b9b79f6c29132184905c0339034203471b8dc622110da0a1ffff2b73682dcf68998c1879dd7d26252a2fdddddda276376ec5dbdbdd680c4655871e91c9a5d5083130bb95c5247befbd97716a930b0611901b24590f946ce924e4278851d814fb24766c650b1f1bf3ededee15a9a5ea50af3112c867ef47c2286894a3365c798034ca9130af746c0417cfde6f8460b00219333833bc88385f9850b535a5c4d1065314eb84bc296d2c33b4d0ee7f1a333319b1252bb664c696ecd89221639879a581c10aa51fe98f1632338d8113c5753581cca2233dcae92d598d799fffff5e4055870a2fce8d0813c2ab988ba9a2c265c3acffff1c0464e617b405194f2c5a4e42a29416823039920482a5f8a403b34d3be6df8eb36ef25865d532333333616666662429e18e991989aa87439582426177f76bdd7da311a936c47a109d0cc94ae0ff95ae7cbbffff2f00e3caa47e804e043dc59e50a492179c48ccb0184256c9936399edee7e72aa3a94e7130105e49cceedffbff4edba6fdcdd356666ee5e5a166bb3597777f7adab526477d3a468296e373eee6eb3aab2b4b2bcb2c6b29e5a3daddf33f8dfffffbb245d81dc9132f3a419a694c020484e5c5b5c3c729e4031852ad8e4ce05bf24244d214a78e8608d3e4620e39031c9f864ac326a19bd16e0a097b4c763aefdffff5bed765b7eee32c958edfef5d2c009153028edc8510505900ecc451424320518b55c4a67f0c0ac2bcc0fa9ead0e487df92996bb767d963d5c3ec695e9675d26a2a76dd36da8fd65b66e08227e540b5514e85d1aa8a2c69104959edcbfa42436a9a715971ddacd2ae674a65adbbbb67b7c895448433cedd22191bdab66ddbb61d625475e811995c5a3199c49026b3d48e7306acdce453756813f0de6e933269f9884fb084c4406387cf0a4d092632202493101c6c52d74f0dc96d36eb1adad4eeeeb61d68460092a70f8a123b9bddee66bb08685b0dc535d7d4d5942444ea8acf851b23e58c284cac7e362c12d58c2a95e2b1a8b0c6e7ea15ed6cb63cba0060a3a2e0230a22d580e1907d30658ad0871526c3843d627135435b657e16e1d2e65888e6b3f70b0e4380e96035e5706193834615161d58c68d31085349e86a056b44c6bc12d99700ab10e7ae9892013afebff9afff5f643830a724783ea09004159c5545f205677c2d90fa39ea5a9143a5298594d38b20336a4c6161912a6cd87cecba035a77add5a0529688c4a6a625b10e5c0675b594594116c4644701a716cf861ccb32337b105e9c9b072f224cce45c68e218f232d27623bca728c52909214b14bc05830580c1c8beeee6ee48fdfaefb3233334ee5199b9999998f08551d8a4314e148112617b472b86d33f32a34a6ea50a1e7eddd7e30c15c08c7610c87ff9f7577378b7b410a5b16c73e08a51adb944b5a7e6954904dd08fd01356860a1189cd734ba70ab5414476e505ce900e01ca2d2c564e201c4d58aaff771a737a3ef55ee0feabd8fd381a2f9fadff7fe4e4b3fb6f73d37cff8fec1a3333bfc5c9fcffbbfcff978ac9ddffff77b9b8ff8c16119999d9252576772787aa76dd77edee9669ccb7069cab0ebd2b875f66eeee8ef2a93a1428c421861055640eb7d5a6b634a81ccbce8a708a8845c52223e77e252bbceeee6e46816dfbf36c26acc1ac2b9bf3537568b00591336cdb0b64343921c3c7562f8b7dc29901f66449c26195e870ce4e8d3dba59ded85eacb3d98a35353aae3af4ce78ba6bd0765cbe97d3a7b31756ab0ebd5debeeeebb167fbbd98bde5e109811f3afbea5aa43ad98cd113e2733ff8117c08a3c70535566662cc7760416e46d5d6becfc7f8e8eaa437b7c803ee40ca94866cb94dbddddff2d02b3aeaf495275e8d347d454c17819a9a26c114429a74592a49fa1160b23d8103bf5bc33bd009a98eb0b33332f2169b7b5c98d6926c97a97a434966566c62aaa3ad4780481856c7336e02c45fe30bf7654e39818033a18c8d24cbae0467d15818172a3e1463490ce9a27413b4e8ea6a658a8811a32aa4233e4885d369f1a380094ff6f21c90c6dcb6ae8eeeeee14c18f4831bc7577b7869fcf2a5b988632b7374d0360ae3af4f65d9f5438be4a02cbf75be4e345e8bab08c829999994934494c39d9ffffff9fc96af75b25c30a7899cd5eee9b99398997aa43c7422479f67ec11044c3cea08a09daffafef69d120c6a5f3c207e84694640a3e2ba276ec180d9961a59c5fd72944437777f3188ae455441a296bc183c1c4e9e95b4271420c09959526368a8ad16d6ac36c164037151b361f02b8a0757777f7dab66c57eff713c54372d5a16f5c1db91a1205ec08eab66d77e3e07028ce0e5dbae1c4e9ee6e9756feb82a77777727950d77ddc6b5b6362e2933731870d5a197d6e8ff8fc081fcffbbf0ff33c5f8ed7efe6b39966566a6b1527528b3d97aa071e6985903f3fd65660ed35275a8d7d83f087bf67ec17f2036fc2f7777f773f72c73f71e02c3045d2c96338b57028cc7420216cf163d6676595c1a97c71688783809225682a605aec7848d0eaea55e937dd275b5e3ae2f015e8866dc2062a206d7100d6a3c89c61732aa4eb05bc41d1f719c8a7cbd85f01c989999b3ac541dca6c663961b478392d5f0c075b0cffbfe424b2298530eb7a7dfc541d1a0cc1c7b085b9ad73672b2b024d77776f58238852f2f2ff3fd3d070f733eeffdf82a31aa37adeb042a65d55042146f290f45ababb9d98aa0e756ade5b96a79127288046142980633bcaae2cc121d3a15927bbfe56ef767737967bd5ffa7fa79a00afeff7b367bd08018c5358b019587e465e9400a46f1068f2f24364e38c2038574c3248810ab15737ff4d7fc396b7835be1a20c7fcffafac463eae31999986127902f5807e4041a021900e50cfdfdeffb3eeee66715428abc4340710145a48533b4c9256101b9eb0f2236cd260b3888c9a48f149c91a1a42956c6579c6d8e951e383c515417aa598e00863d80c6b44086da48a5f51479c555a0ee09907291ce61ec0cb67c7ac15f33effff7d8eaa0e452697217cac7ee7141612600bab2cb701e76e8cb0231b5210b6986d039828a638ac984d279a622985824c31e2311aa00018eb15a1c4f2f6f8ff7ef9df2808aa6493a0ac27bcb21a40157835cc204c204366b05754cb760a55a262fb4dd31b70d5a1b7812033458f89a22c2309c92015173b88921459ab19ec4d67e5fa9e6d59554647d5a13d3e23c800e55e666c5ab4ff373439569b3501fffab753dbb66ddbb62896aa0eb562363fa070f23ea4f031730d665dbbbb917a8ee4732420986300cccccc4ec25a78555fd4d05b1fad20c4303273ed819e13ab462af69867ccffffdfb6edff3fc894119e744458f3ff5fbbb8ff7fadd7ddbdb62d7bbb69ac149c9a5c6dcccc474caf1d333333d3a0e07c4b0dbc5587de75cd62665ef25aee9897becada4e898844452223a756411b3333e31ae0dc655566c74a2736d03020d7d02b412f240f2759c4c03af472a648d110919f2b6c93a530e12dcad0b6a69cdadceb7b41d5f4c8080505ad02ae3af4aa970d291411aa0865843a4221a192504bb6c5f1ff496c15dbd68503337777073da93ab44acb6b8c45043d99dbebf2ffbfabcab5da1598ae23342e3e1ae26dfbfe3233cb68a93ad46bec1f649ebd5ff01f4a0cffff6b7777d73290a849aeec081d627bc084c748198b2baa242d470d233f6e76c4648cb533c019e10cce0cb1cfcc288bed2c4d91216962f324c543878d9f702748e9234b184f777777b7922a55876a8950e2758361d19ace6daddd6a7cab8c0f3c90a248bda4b1bbbb79c37a6b2043e2b038340e8f43e64bca34226307665d99999d92541dfa24c2a98a6571ffff5fc8b62dbf7477b7f0a7068f160d17141c1b80e5002a45016b0867dddddd49567a76ddddb8a38dd6ddddb403466461ae97d7dddddd2c731c2183fc9374345ffeff35a05a3324a451f0d3fab51711715c56f4d6dd389a86f6d1f0ff5f22125e6edbe60c6dc3608a00a3f9ffbffdff11d079da8992323373adbb5b440be1dfde5a7777738d9d4232db5a84e0f098f923f0c061d1359ba9300c40f9a1242a4796ab24401f245c3f3d8896d0b060acb2470918ac1e5676dc654e1f30e6c4d1958e2f1c9f8bb2e48d1762e8c0395578c32d17471e516c93a7090bccc54cb32786839f58d1c812db312424e5e54a71d5a1f7c83a43a19a5f42413e4c34b940b08a01888f8a9e321f6c1420c402ee4dd3eeee32e2aaeb6e1ae2aae44cb2b35a8f9959d8dec0696f10db1bc5b66566e69716376666fe020006dfeee811c58e57e5d08a99992568dbb66ddb36e7a9ead0de2f38d4e919a1868f72c6f3870c16132c8a522e9a7e9654b98002c5abc5cc55d600d2904c734d5e5320c8d0129036a51833106920924e104ade2ce6b67dbe528faa437d94806e4a43304a49b998127c2b8870fc848aa8b830e33924494868cbc50bb64be9a9a96cfd5f2512e171d32404d2283900e4c9c894ae309c1f2cd7f1deb66ddb1792aa0e5d5a319b20bce0e4f9989999b99914a8e2db7133334ff1517528d050d2531588295a4f688caea4ac18d1f929a93962a448830a0b850a8a1995a0edff6f6b3977a780c06addddbdb6580b7777d58a5c5275b1b2b0dddd6d5b531cc2da3a63f2ac96c16dbbdfb7252f55878e79587af67e410f4cc3f6feffbbbbbbffdf252e2cba36bb76d80dcabd9c3eedee86215c75687777bb18500b91dea8640d5ed7e6001d00031a041c41034114c8d2388d69071400071ac688dc98384044200c46c19030140403846000100000000020c0403010c2c1284d89f00d3ec3518c46f15e3d52304c6408ac832dd053e5ad3536c48af552845993509653b449f00410371032c71362cca55caf0a1b212c877cd6b903cc2605fc1e9907f5f321bd44e816c11b8b3cb5675b2fa706a95641901f7db05271f00ba2d054c3764ff204a53b7e1d31e30d7bc2d357736291aa759c5671b0ed0b97215f632118aad1f203d57108d2da8c89080cd7ef0c092f7bba54f7ebc7b018f818e7219819ad45565346e8aab8963d0235c4270e13ad6021488ebc8eff54b5f33ffc109667089f95aaeef444906ff121765811ba43e64e69d946e62d78e4ad91550db8fa2f2efec421cfb13102933e5a11da72d1a53af5fdac330a0cf015ce49e187248ac6c69897c216c218a3c5d95a51e270f8f523b07a1c29251568f30bee04606a255b74872d382d2d7a605a7ff6078697341800a4524f29e5831567b01611b636bc0d5108904c9f99d7626164c59a914bc3c73cc24c922954f08e13d62dceccc6e3515c12953c5ff9db9cf6a2b5becba01fe8ac5df79fdefc9649150a8f035109df31bd4616e66d13005491b8657a09c1c65a39d3ecdb401aeccad359257f09daa928e787328d972ad3cdb47259c8db9625d12e719b5a8c1016f2689745f05bc6962a430eff190830032661c1719f214710740f7f2accecb1b87bfdeaa33e3c817dd1865c44c7d85f1f3ca6e5811009a0d734937883d78007709924651f5e35a7ea8572bdaf6eee9b45346c39d67e03c0752f1a8e2fad8d697d31bb057e15d4a8b67fc7e26699cac124219d319a5f3dfd6aee1e554bcda28cd0582e336312622d476831b80deaad71b6d0fefc603efa5e504171c627b8b52653d60ac2950b72ddcd75cda3266b0b6f9317051e7df31e97485c1f1ae2cd218cce1f12e37897b789a2b7b76caf81f1b4bd4a9eae327e900c23878821e44c2c87ad66be6bcd8be7f3651478775d49141ecc6f41c0a113383f3c976552f8e76890442144b807b42434b0f416378d475d92ffd657a9ff6bb4a1b992abaaba3096a4b641ebf5cf8bd2a59c03be5c9471b76075c0569df831201b005e0d86d82f58f8b720a37bf7c1b3ed7e96529271df31822f26c2f736f01157af621672b741b527cd36887ff9f091450437eb0ec5b4feddb75657bfaa0b5fd0cf2ad8f8ba59d5056b3b14f4b37e3c7680bca880a437e880186f8fe1b6e1e48267ebf1479a3d0d5e57cb5cca89e12584688d8a8f92296ff443f36f338bb92cd18eab541c04299f104d4339a36b40ecb0bf3bdd44aa24ce2af502e62cfa5a4e6cd9290455c272a24aebf0572e0e3b5b8e99fced8e6e29e4d02d5f6b3865e8fd4030c848d35d1b8e978911abb0fc681aa66b6eb1b7ded1638a6551318d1a6fe4d6aa2f4d45617d1f0455e6707a15d8a1c59faf8808c98d7261d6f45bb13816deb0798ab20a58a080e7415b30a5d79ba57ca7321cc54a8e14da83dfeaee7b556cf4da1601266f996197c8420e33c1e7db375d2819f31d23382ed4da289c8089de88e17c35656771f31af831b8358282d65ff2b419285ea63ee5c23468eba091a42d22d45446e4ec57e1149a7bcfb951267eb072c986eaa429346a2ef8697b3f9e22297ebe2412c764b98c8a5180ae8c2043a0961cadb6feb13afc23c85fe355c4a127970aa4ed80c123d7609f9eb891ef36dd321b8d40cb6f27ba5c483768820a9ba8254b333bdda0a78a2f5460ed75db0759270a07450583899f80e58a2e5fa49129ea854ae9bd2073fc0b8be9f9f086860b33594c5e09b8596999b61734194fbe3765fd0f53af636ecbba1bf93798d885b00a6e66aae9e196e362905780c3847e84573a7a0acb896929a30b177567a8789884fbd95f882f5a811b56a7f05b24fccd3a2cf8dc49b8561394686ca755c72d2d969977aad8d3d02d45c328bd6ba6362fc111e61f8733621a3e613facba1ad9a41cab7324d1da8605cc15f4cf666aa4645c1c3830dd7b86903e56ea81f785e0207e34857061cf9dba784ba3db436693871c30d74802be2cbb01ba6dced59601e3c4bcf24f81f9f462e8690049ad312b9912c8790c871a6c272281a8207c403ac07657aa4ee972884302948541954d530a1579ea2450912d5105c016c44b5c6951bac0021ca25c9918a777e86bc57626138ae00df3dce048a9b048d30bef894c16bab9fd100d68b238b9c0120a9624b9921b59fab5961f114714024f3d90050b9fe802579262fcf089c9c1318e4529c4fa322c00d25814f1c2edfec0b9eb53fc7591113769311997c7708cf3aea7ec2e77dcb8d7557813fd5b592b7a6844102a2764f8114c5671ec209bc6c127570cca55a05e02fb03a8f07808e1035915d0508a6ecb4eff1ef393994e9417011f62285e920c7f78d74aaab276d1a412312ef20478052116ed620b504c13f98ed580d97a82e14b9a84ae4b4145c5a64910c2567a76e3da31c6cbe25045bf1de5461e255806af59b7278cfe25ee97be5578a7cc3ba4ab7bbadf3e205fc12968ece0c7ca9547b03fe06046db7d4190a7c3b7abe3864880780c9a254605d2de0c3f8157787395490031681e3229ce645e610cd852556db4a2b44db5419b5cb6cf78b0635f62150336f5d9a804c2a583ea1ea36967f1dabf2cec667c53771ad54110f4a4cb5d97415ad82653d3e0e5d856abab69095e1cec0f2c79638feaf5c75acdf619f8f1a6d87b1443f5f81127137f2b4a29e0685320b258e1947f1f96654efded16ff71e065faf7cc13291d4f432f1e7e9391ffe39e1c4ef42c069e1455d201927f2a007d159130fbabbe99ba41103d31cdda7218a61f3e02896f4e26002da5cbebbb664a47f1e084b00f75e6e1d609e6c95392fa0aa417d58d041be83e2ae4df16b87e1dc3a2c498e26f0309a011d08dc71876a8bf3d103acc3dc6f0bb178f2389c1a9882b9e7b4be1b5c60954fd8f146fb72dc78e69df84148ab64ea39fd35e472ec8a75569d13ce21f9a9b01f9f404a16a9dcfc53cc70258d3dc9154b7642c3a9c06cb1127d9d288deca920d1716d63d4cf6652c4ad25c0758d278ae094329b1d6cd3d5b82de20ba9c8be7e00003e19ed5d70206d10621992973393a5e3201f769f160e1b7d01ef972fae047ae0c1fc27e1d14d7ea31f332fb6306482c367ef93bd6ec5aec9880509c8fe650c8fdf19105fac1b1d107d9a1a0db2b13d8837744bc0a8a66655cd6245f641f817174b86ae3beaafb20862b365aab05df3287608fb956d0f7aa2c319281c829c218ed763e6129a98ac8fd629bf47ee95b04f7223e5919686a7e07efd3318e855b9215a71f36a634d1d8d573d4a1a4d1a3eb1aa2f7d16dd17b59ff056dce1d0f863a745ba3812e33456cabf8a8d47e6914a77c863586743e433d17001bb2c26f706b4fff10bf81375a6a54db76f008f661417d74516efc32705abd654e20de69588d240f359e2fffcd53257a116e31b6c4359ec9eeed5bd52ecdf3fb4ade45640995918dbae0a13f21f1432c29b8d99036f605f043ff861950c3567376718c601af5ede8f84391398ba7845ba5376ed3e14b4c9151b069d4f963ab7ecfc8dfa7dfd53f9655e84899380705ece3c4991e03bac0a87b3a9e4d62192141af86e7fcde08455d1d239e8122fbefc6e45c185029c924912ce301fb1d069590c165e29eddd693b246828eda22058d92cb13a2b3e1f42c762b879b6f60a8a922912d53abb01f9f138b61aa5360d0f31237b0fc94d8c61bea66038acfe6ecbec640f9358056292dbaa5705401c26394e25d2caabb83a7046d362f3956edd5b5293eacc3522d8323d663a4f4ff7d1b9ee1af71ce0535eb97d47afe460d804719ece7d24de49ddd7eeea9bae5076cf853a9ea85ffabb5b267bc97e945c3402217a0ef8ec1af52acae0efe0d848712bc8f1c0e447625ac4257f45ac960ecb73da4cb3279b50ae2621e96edfc2210156b0ce26bbd0a0fa205e70bbc96497e9bc045a97e0829a3d4c4552aeb420cdb5174b31b21a1b6ed04770a23a21790db9e00e6331fc3646972e84e949e0330bf448c5aee9e12be5c4a5b000e799246dd4c20a2262591301a0c00907750fcf7ee4af9bec3ad1f4a314ba5772f0b7beda8133e52ac312a7051be2147871e12b8184bb9e55edd524533caf4490d6ad02d2b480557d2bc31d63e6d662140bf9ad1b8a12baada19e0eca4a9b6aa92b88c4185bbc45ebf4866169abbd79881ded1224b60b58af71e33d26bddd7517da618416b659eaf2b80c8301f19938ecc162aec520f9c18cbb3186a9652bb53c858c84c3bb4be3c55934c4f8ac69599fb2c53476485b64145547f75b57179ec1d89ac0213df1673d4a4d387984fe3ae3897923ea5ef7bd7b4b7eb4ec3d332dc88ca106d5bc72971fae753fffffc59d82b4ad9894d942ac61ee8d51359a442f600903cb6da31f420a1a5ac0f02896b04b96b175f014628a4f533b8a4d74a93d93d2e275905db1c1657b067c1de85660e59aa313e241d2306b7cc362fe390c8d30de2dca9e1d4c234b3b8830226f4b8837d962c2c74c82cad06543c05fc5e08baef5f08da8b504dcc0498b25aa73c3f8b9ec1920b9a883e37ffb7c587d28c9d5226c1832de27cbf0f3d9f078a33996d6e55e3e825df52195537a0a9d22d9755b9880ba64ec023ac3ea081a95f1f70639203b8f69d2c94883ade7f81a7a781c0c4e295a3d419077988870515786ae58c001155376989984f8045f1827c8d5d1662798dac9ccdc3d16080b0b33fd84f817c67dd6790f7ce1002ad1d593d7f5ca0cfdacd259306952a4b2d46c0a7e9b30be9ca10ff28e0abca702c6042a4e574b212eafa41413e77bcb687cb2bd67d2aed63428a8fcee0886eb67241bd94eeebd8f71d6097f1a5dec4cf60d8a9ca53a8a3070fb33c072c9e18bfc295ceb2ba44f7a9f211692aa6b6a9c427e03e12987aee043fe0a9251e49aa79a233df4b202dcc8d8e9c004f581e118a780b50dd48650963e3f482206506c4e31636888ce85b49cdaf70b976733735d6777764f80489aac8e93e8094e96203fece90457e1fec983fb489cc99f8ec6851de41cc3da5ad51652c82a45215e55328004992e7f3eb7d335a3c556fd05594b188877141f6f13d79163db530189f647c161f8ef5e3deedac8a7b200ba41eeac8e486c89cfd6556e5058b99962ca4dee1ccfb4ae7edf98cd3204a94dbe45ade6117e1389ab31bb04593384c494c292c757b15992eca2e9ed346a1e2847f90192d26db806252be1818b784742668a1242d683446275d22006e592b407f9826d6a9ad80531f9076474d320082d5a384ec35703253caf8b5d30763668ccdd6e31b309d08afa6342885b44a02928d036c0206e4fbfe0d266bdc04b623c7e952932e7eb54715b122ded757e740e0d8f2cd5874fd6d059c1658d0a0482ef6489605f74b963420610104669fd510d6b5f2c8e0e5c62878694158749dc7914b4c8df61153fb56270c629c275d156ca985d9052884a730a68e96c2d8f35f2a4a16cf6dca173d94d5c14f623cbefcda632e77bb89aaccd4557ff84f5d0419889e317c5210661ef2ffe0de5a258ef9fa07de2f1ab424dd80535e572e6d682f4dfb2376f54dfbd37c7806d0e88d299c89899bc0a28fa2a1d39b8b7adf3c593107503135b61ab12a07b4f1ef69cd5db9eda07ca4277306d4863be58d699525e70d55faf802246540497d5e37aa33117bf1b181186050267102df0442b5ebbf38effa694132cce8dbd7851e0a7b4dbe21df6c5ae5851f984b26b89527b24dbd26bc70b23f36c4e5600d81ab849556d7304db577c138051eea1b043d1ac354c3f75f63895813898237c2f964c6dd53af155326f802b02548b2502962fa63d19c9e7b908c4e39b02949a4e62964848eef528f5526603c2828249b6162c52189f61bbe2510bede76663d2c6e4f22e00c923b5f5c72d2f89abde49e84096fb4043fc42551c66266ed377a82b05e3ecf0452baa5eceed27ff370936acf9269e6f4067b3a5abffb3197d647f7734eb2f714261649ba1368c0f74cac4a7d3c3a94805c7ea0f646587dd2e9cd306d7dc09542aa3df6c118bee6334e0d88a7b36b6c74b5f041f69a392c1db4597bdcc9267b415ca5bd90c0a6490dc8ac1f4a9a81174f2408f51eb5a604a9ace6970885d49a9817b60355df0173face259b870b2e975e2ac7772204a4ec81ecbcf45d9ad350623b20180cfb411d9e899cf783572279cd5e02eff430164726ad775ab2190d0635b9af7d59cb35821b1c3551c15350287f7a25b97b954d31b850bf726b9d5a7687b82baf186171830d92662a53ed8e362cc42523fd5aef773747e84aff1687a12056933a785e9944d642796ed7fc3439b1fcb9b6995e091c065847e1f5f1dbe705b307930993ae52bdf17c588108748e628ff7ba11e9b32d5885e8f0774c3a72fbd937ac03b837cc5dca9d0b646c52d2525fbe817269ecb0e7256394e0e0f55cee467146cf018138b1529b67b266cf4826da031ac341c8f34ee38b01a70c3f64d8e8a1e91369890aaf20822d1a2d0f35b46e21da0701af7d0b58fcafb353e6bc1afd85268922ea639cc526180310b1954b836cb2e2e16e66ee97a167a1232035ad4b47790c2d37505a16be91acf8eabf5399cb8fd935abb65724baf58ed537ae85ec143ff12b60cc77c4e800c4a214bd0afebd5c06e77595baaf2f1bc289a5644d062809848d2359bf0e6e49fb300fc62b3dc5441cfbd61ac8e4daed0199f79f293dc339d53d004bec39b4372346a2807fa9929e08ce4a183100f76ab4cb97d242867919812b622974352b21d13834a724fd0eeff54387c59f943019188014dc3f72fc0740b271b95b377064008c95434fdffd59d0b21d3a635c2b573b95a3c6eb2895b8db81cd0add2cb84de49de2c31ddd115aa8955b23383e2b0e1168654a8aaa84ca1c46e6e894222a82b738f7ad38f0cddbd6e2e0115d2bb6f2f4b4eba0900ab80e73ee59cc5c4cfa8d21966ad92260cf9fc94ea672219757c9be34d4028c7ee0374918dbbfa88340fc89e6182cac2c530e99695f4363466714915dba39cef5836ab527a6bef2744fe1edf03f3d28921ad83d1104f3455b1c3335a428c2314619f54c9975abccf2c372cff27357c93155faa5ea7012a1e59f80f51e17b81937ce9f893e349c1cc7348e76b3f9b32509ccd807e8d2e72c620dde4ddcd60283ef5a0fd8418054249f0b89937017058c5a0302d5630c781637c9ad2a1ac96d81b3a6171a2fd91489ab43cf02e2ea57991dd89e28c15b59533e122cdfa3cdd9e128e247fe5501bb4d4cf23aafc7760f13a459c0b53e965ac3c3f05655ecc9b71f622ffa7d8c7535c84a314f2de8578f4107be0576267a686108ee2d77bf70306b9a9493b68c1cbd518ebd26b1802882ffde74ef57d9377d270038902a23192f5965503bca09513d4b89a8e2ec873961546d772cba384afd135e72ac3156357f3cdcae1098252cfe424309ffd39586d3ad71be9e6ed2fe0de0c2252417ea53f8cfef81019a93b3823ed8237da09f1059299eb66f1ee6cede217641c2491176b142b6b0fd5a41f317185d86c893c30abe582fff00d3ab25a387c253dbdecd07e86fd6096693309d2e18649a27593eda76cb09c6b3de545b0cca122190964cd0d66d317c1327c99ef7ab44563bfd40bb072c6c4661e6418ab16734d102ca5faf53266519faf8423bf08aa08649925f2c45ab8c883afbe61eed47a6ea0e571c9c924c09498dff1fbf1d740f28db689174218fb6a85b9abee3eb7e1f009cbee39d3639ca94457a8ba279f1635834c777f1691714ce89adf59dcd826b3db273f9c9d24ec982d4ad7938a1037e0f4fe8fbfbf512f1416234d2152fcc17e105b786c841943e36581e16cd9b167a475b0c680cc59c30ba7bb6258827d6b808e6ff3779925783af11a51c2dd173166ca8fade06414fac44520acc09b957f7fbf97a2180adc67bde36941607ece4ec3a9e2900ead0d7394080f4352e25112e8e4691d17e761da59b05486229f8ecb81a1a6fcb6a0a60e36c74090beb67d1514c423c188ed8128737c994a6ffbcd2176f0133092418919c4bfce91a27f4d7b21c23ef2881f7cfc7c7dd4992f6a7d1de741a5dc43c5afd437d0da02e5588552c4acc3c419d204a790a031e7ceed43c5a1465aca86245901770729860f247467a6dcf95da63312150326f560dafe5f892e471bf105d569919045219b30aab69ea37f440890a2ff48bee611a279a2a569352e9b26720ca3ff6c1c07ed95761d5a530912b8a1fa3874ff32adf450034a09c6d678e264072cc4db62c343d09332e2679853854792b7496ecc4fc0bf62c8eeeec6eee4c5a813ba8f6c2a9e90e4d2c777b48cfb30090d0255295c4ded1aa582389b0d7c623240a0a3c2e2b1f0c7baa5ef12774e0b2ca2aecdcd0040f0f87ba61c8bcf801752f35b55d03c4b9132822282d61c8d913733e1684fa028b7ab1a6d8a50682b513cad978f0ca0355c44fd5e79e5eba17bf16ff1587f60f9708c709a9f08fb7496f1bb9ffb80ef868ade4bc02c27f0e57c40b2733b2f5d36ac6d4ff5cc2a23e0a35b7964ccb5a9b23124d01e2b53b9c2ba0f5471cdbaf24455c2325ea8759ac7e0b0f6b6f44b999345830430974016244f8accca7da45d1eeca756527ad0d2dd6abd18f14337d98167ad949deed67c5ef0f5e240ec8430d33e586b744bc045be4a42bf383191949d4ed9debb06a3b1d864f0dbd741d77e1ab27792d55ab3b06107e0a6c27fe10d7b1342fbe743b925a465834a35f8b65b5ad5471cdb9a0ad0a606958ef807d7def7bb536a03869561a2f16efa4fa0ce7e85ee172081e68a05851a6884ffb2ac53121c7e730ce0b5cff8bea210632f806937c7a65816802dbf418994a02817b5a8af444b10bf17f9ad562c8d48e9a6bba7ee0c8ccfec213138c146d321424a52631a31bb7d3b66b5275d12d3ece2a56cf4a11fb41a9c82d425269064a66ede7dad7f6a262dd0535536949e51e9b2e0ca2ca494d15bf1b98b91a89e893b9565c9952115f429c2ddb0c304ed9abca495b73ec024bcbfbf8671577b1518559352b5ce54c9342f9d6d244749b57cd86771992a294d74bdf541c209154b4867288de7434732a72c981cb5d6a82c3f9f1595ca1e01c0e7ae28b6422d2aada83d3a7dde72d988e4e80e7743f571c4b47470b393f0e070a9780bff110bed2ce10bea9a8a5b8edd6a12224888362612fed9431e69f304dd1af919458882a874507eb0e9c556279b24572b953b2057f681e8899f179ee464b855fa6f08eb922658619f49d622af831ec0d8c937f015ad0125a69175acefef38e4834b79a49b85de5ecb614ce22d9c2741f10f61985d59e355f0cc9c78910bd80ac11795b79120c2c1a7f6ebe055e32e1c0859ef4db10a4a7cb3b68ad8b340ac97b9627551a6cb04962f5202d810fd14145e85a8ac30db9b406cd08461ef49ef90353bb4ce5941d15e7b9f1f430adbd20636da48d4deac4d1fa3914e0ea2bc2922446e13ea5cf472901622550887b37211af8a7c643341f374fda53646672233234c832633580569984e02f40ffcf1a8c7a3a86d9ba9e3a92f48793c1f2923918b5a6f7fc05561b1fba58b72cb0cc61af884704b03def6a617d1505d77783ecdafe78d61dfee5a14b8f6f84709639aba3ab4cd309e01ce7ecb9e761412ea74821ddbfb9aed8f2a17b5720f87b94ab7bc3f043e8f881c211019f41a1025717b74dd8f0390eabd086964dee7eb3f00bcbdf9c1d9a802f0402dcca83801df212655a2c53f1d40c1779b1dcda8b7ccee90010119891a21b26ca438dd6875cb802daab741ed6511bc0b0dede80109193f8e37633930b9d5516978f626bd57adfdf6db262e4eed9997eb031baa0c5900cc1253773040196b024e662aebbfde7b3d5bfb017383edc91c94dcb21ab9c1beee933e029830203f200af0863f923e53e91277d99bdbde6086915bed19d8bb8fcd78bfdf5a24c22341e3b693ccf6a83d8c5237176ea7df6defb2bce0e29df36e7f857ff85919cb249e92885a781a58214510ce2b69244fe4682fd51277ab470c50d6817e516ce33dc841721829bf2281e8daa17a1e9f09a846f4a8e174be4b4b1af0421bf51ccfb903d69c8e23c35603b313dd3b4ee2e682a57e734422eae1749e6f48eb4d38bfdf51d8e882b23f54e2e9b5d2f9b3715661a737f17e3b8b86c6981236665ef8ab2038e6dcaf89173d9e2381f570de862c11b3510dd2d9df219d4e1ed4dd9fec9902a7822bfeb9e5d413b4a0c559bb296d293476b6c03264102591feccd2749247f319c756273ee287a354121a1975940d84890267c9f306b2f647cfd26decbbd78c87249eab28935b5e65d321f70639233bc25382a1ecae05ccf41fe32407dce3f2bc22ef2a2a67cb478695b703aa0e9c83717c6b1159cb9e5217fce26b8a9e6ef5c1f682e8084a122667a801a9372d672a133f0cadbaeb7fde6ee8e2d7578a490545252c1b0b7d93d257b30a20e5899f6cfb383c599695d490bbfa86475280e172911b550e7cb7e1d5ea5d28451f1ec45c4a957af4bdb747bd26e4761bf61ae317df2952a405d639c983d45f07b03ba5212e476e80a14955980c1e45098acc86e13832375e35b5e28693ac9ad2a8124bc6756e7417008b69e08469d8e255c7c76cef6b4ea88c64c26cb22641c0157a39037a52d11820cc9b52e5399f4fab5b6a81a3b594398a0872907b80ebb78fbc616fc02f6b75f901459c8165d45312acf8632a4f42a44623272b94f55157fd8f09a73c1c8d2e2cd0b1dda290248baf13e9673bee6e79c01d2468be71b4233fa19617e5412e3639219bd5f2a98328a20d0f2a897a0229b76392a72e51070d2e7510cf68942144872bc14d7c27a7edb7c24617e6c1495ead81465cf84f5d429e7b7b3e066146c7d6b1bc8b3dd18bc8b0e202205d361463e5c859f6b92743a601b94b9cc11155e791bc1068ee278986c7057d120157e934e64344825a3dfcdbd79ccc991201b8f1eaf55a057fc1f3baba45156122f421619bd4e6a35de605b3d864895fbe2c1a77934ef67c9ce9db4d0bda9b1a8178558309be65b31e2cff7b4f56c25c655268bb6329dd581c6a8560183e5bcaf1bc6283496a22dba4a0172cb3866d4073df4a5a2096680a22dcf86854b7f690b72b76e4b8922b525373223c47683704fdb994b554d698d7cbbf612321f9d2b25e4ff213f1b847a4081729443a06cb67695e149603453c0fb8aa24faa3dc2edd62a3c902db2a6d324012981df2a4f0096256d77d386ca6bab75ca1e3a26f73eaa014c1e3c8625e24f9417013ec5a8fed8b71b0f6cf896261c6c783baa792c22f0563a1419c4e9a0bb4351989e5914ae6c1eb6d67b0824fee6ce8021ba7b88ef48895526eee248e8816bcf40976e2a4f92604cb762e9924a9466983358b1de9d93604c3360912c157bbe60b0e4e949a6441e449c0e430060110039ca302ae1e7dabd3690c96128abd3e404794bec7e77138498090206b09a9d92d45086c828bfa134b533c656eed16be7de2c1413ab634ad9274b168f7488668b260424023a689d495d500aca9a0e93792b1ece48bbfebb3356e49f0bfedff87f4424123de24d0cb3b9f6cd918e7defec9739eeee1b0508438883ac892008800304400004083a402be376887e869f7012dc272243b313f871136e14479fecbdb794292529a50c010581045504eeee334ac9b4d6da06f428728f404c733d7bfdfe0c4554268f6c37dc129303cd9073772f5564a8d65a6b5967a467af0c1db8ff97404e20c684c149669419dea041f1f80e553933e52d809e075a6badf56a957b68715f084063ac50f5ff76b7e3852356e881855a9b1d6040e2e2a3967071a108121e4f5c074f9c3414fcff030d616a11c3911a1a8838f171e5e287ac3094e584a8334a5eb371a47543723c2fa422b9ff7721c0045d50e561c4a3080f241e4a23d18d021b4c32889348a9bbbb93ed85d34d7477f77b5dee36cc79f75afbd65a6badb553a688ef7945a8d94143103b235b862418b2610947850d0c5f3cc7b5a20bd1ca555509aa52ab5254e5a88aadca0d452ec80d8a4b0ea31b5c3b966c9cc0c60a93167c48e8abe2d19a45e1255aaa462fe0e0b00ff9ff8f181335466a4c15104128b484c93d59a961c5c9f6c30d0d2e2c109c292f45949ce0c0e1c23a8e6cbd1c246a1326544b78b0e1094c9194223d70c995b1218b0ba1b922fed0f37d1eb6fe4974ffff17914265124b971845be740d2cefddcc83338323db2d61c99354add664c2ce85176da04d9814ac4ab8e237c4b08ecc84dfe77e549533044beede9ddcddddba7b284422f7466957239868587843c4c4e4490a8da43560aee068b36506346e634a1b060a172926b7167ec8c2daa26485062514a894f11ab7a2be19350b1f526372a852f3000a236372467ab8e2d1e47686071f4b39e47832c1839894b9b9bb037939f2febadcfd4738d526544192d01bb6502d99983a9fc58523cfe592620806d58a66d589ec27dcddabb2ccc2252abb57e516340731fcff7f7731aeffff21236fa8883784e40d2979434b623ce8443dc0aa11f50f4a281d823c11738318dc1a5188199c14811286684b5fb1702f9e96beffffbfaeee51428cb9f57777772a1d95c99d53d4bfa092fa77af12e3f6babbfb896baf4f6fe6b0b15599bc75dec015c9374e4d049550d05595550f675cbc17294a4146deb0c0234e0dbac9801f351c1a85a670f66f83a09e4df2acb5d686a00f4f6e24b849202d41b2b46193c6c7987ac66a0525548890d0a48bc022c498db03385479424c090972ef6b8fa82bdddddddd1df4bc30337bfdbdb770ba5099fc72a14433af298c011cabd8ac844db2f4d1b03e085a6bad05ff4a0bb9cfdd7d5765f25eaf4d449840373aa020c084036565007f14e4ee4e45cad3804a95f8c1013d8f8d57cf9b80121d929a24334444f5a0e9e1ca9a2662e2f0d056472111133bb906b766898a0d9c982e39745f5cd81d4464802a0148520c702c1138883ef8ff3f7d1eaa106f774687244f4cde284989a326a986060a9c303d8019228534fde67ad7deff7fdc129549a69c6ee71465817052d68aeeeed543ef69987f21af84229d144152a1489dd22741aec1939a68adfddaba241614bed8a62a165b1b8f56b9bbbbbbbbffa8caeeeeeebec25555f5c40295104b5cbc172d4b4ad05202181bed667ef59174d574830979e306c18f9cbb7b969b517677ff70e8f1a529441571628406556affd11a48275c86094e12805962389aaa2d5143821a33546828c9a28407933734b4b1a12a89848e1b282ed6ffffb7d181ac2adf90c101a4ca9918d2b02071701aca318549cb9223dde688c7fa3e3627b48c1c09e2c89419ac5cb1c18120388a76543f7068366d7e6095b042a206f1ffff8a0f4bf2ffffbbacb5d69e91ca71795eabb6c406f339b0c48b2db5d7a165adb5f67e5fb7bbbbcef3dcaf7cd9dd3ab501a23856c80841f2448692187a4ca5116a4aa28a82a22719f42969cdf1462959dc9f1bca1d927648eab0be99d5456372ce1ac2087962d9827a083b2ed7ce0e8d8daf86eda4b8121bd35c95e6f87ae08d41006ce046742c47397528f064a331960c1a99e59405c3c770bc3476a58c79b7a8aed74e778c0baeaeae66b49d0ee47af52b47da07afec0e44f40b7eb6001637cd76e6c66fddbaffdbb7b42691924da3915f1fd8b5c3160e7e8eed286611a72bc6c53d7b0504294cb9b082c626acb3371bf72d65c592facbebbf4f639fec35be4d5907d8419c9816e68a5bd4f6efd1040cda2308b1eca4a5d65cc7ea2cec18d79e16f68baf7d6165ecfe6d1822b472bcdf59b0d0df41d807fb0ae48621e6a655669f180f2055f191fd1d049fdca368694ba1551f1580007454963970a028cadd5de7ba6648614707da441581034ad2962b219c5488c2c437e042481ce9a47037758244655269099013271efeff7f560fcff33ccff36a5fa84c4299998251b31282a183e87dc0dc1e8c0bd65a6b83ba3807415f446badb56168adb58eabb4eac62a93c3a9566badb53aa0743521ffde8d017747a0828dcae40d07438525fc6fabe7b97f102046fcff1b51992c82a4f4c2f4db8b0ef472a5d8ed05dde491eeffff1f5f168808e299d036b7176d70aeaf595dcbd4faff7f77affdff43e5a84cea76de06504e38b4d6f33c8f4c1095c95ad191ed16830ceebfc5f4a5aa55b5d4f546c36badb5966887e35546a8c4ac35075d4d6c4d7777f71c94a4b23b1c1f5650b2e47023ca1008b4d8ca3845e9a8c5c0a35dd8f9ffff2c6674f05b6badd3ad8670c36243080e1ba6dcb8b0369c0ea31f8ac0c0c54b702082b2c53c3fbeddc51794ed869301f58f2f15da59dd868081052f0bee8bb9f5777777aa1a95c9a2231b03a86e1ff3ae96227e88d65a6baf6bb1aad28122a554586b5b871a2569e1a07bd52a8b88a84c1a7919141579fdbf25c144c464c454840989498969099393ffffff053ca18264c81310ab232e1e07d253992d575ca63851afd1add9ad715a13b5466a4d95931f6c68440db0e4feffff1329fdff47b2f33840e224fee33be44900610d124622be9eedef368285ca64972f0d3002f5d8bb4974406badb5ee2a2c81387777773f53456532a8b6019aa2c7de2d80b5d6da7741262541aa7a5243143769924021a2c4f6c3890fdf2193d86c09ef46c19819c2ddfd8a94e7b9bbfb57c32a44d0fdff7f777f77772b5451d9fd84cef56c7fbbbb0f6145655288c8e8bf4c9b6aadb5d6ddc3173e29260fc11b22a5d65a7b029333e0849ce84db1ae761991357777cff16ee146802eb2a1bbbbbbbb7b9c5b787f7abcf0840b1a251b991dd80ca95173e34310399c842d2d96aba6c939fa0feb9d3298761ffeff7f2834b114592e46eead50f53bbfd65a6b3f1aceae67ffdf6b58a84c76b95f44a89719ac416d2a363b9165ee4c98a07397a596a8dbdcb9ecf7596badcde950741f1de45665f28adfe7eeee12b8bbbbef96aa4cde9d93f7ffeeeefe408d5c92171b9ec32d3599a95a6afdffff90da23365c4bfeffff973cefff5b5fd016159444e0fedd2b526c41df042424c58c92aa8e4bac2758225862037039772e62bc8714cbdddd5b422f007925b9bbbbbb07dec540fe9b1fdfbffef6ad757ff7680bdd50aa69dff4b81f6287ff427e4cfba69deca3582288f8e2e3a64d777b5c28759bced452ded67c52613e65da6ce55a77534aead6389245c52e244eaeb8eebcbaabbbba8b83336d4ac9bef3a9a94c9161ce27676a5b0a343984dcd5240f7208fc434beb585e2eb450f6ed7f37d2ea1152e2b4e2c6fe2c18730337e2c4323bee3c592e83468c09638ea39c4f97a97677778b61e872c900aa3d16f748fb4074a9a8894d812aa349299f32af5074f90edc524310b9cb4c616e7777777787eeee3ec59da7755c153d3eefde8b294b4a167762ca7a81224bc9e2de0b745dd21d8a5d4457dfb079baf89d1fe28f65f71456a2fb152104edb51fccbe9d1f139f562f603f0f8f5febcd66d9716c050ff67185dbf14b72613c504056f73ad77590bb613c3cb1157d67b971f0d807ae1bbabea1ab4e795b78efad9826bfb89c5caf1b8afd6f23eaeef6eeeeee6e771740557be7406a72af57bf404de146ca981521f66d45a87f7575756567d4eaa31b8754b8a374ff87b3fe99e08aec58f25c7f4c61218c907d86a3782fbedef7a19802cebda29452f6894cf35901c50233df50e4d9595203048fc3f9a468dee4b81471fc056fb2277670dc7cd2f4c471b93f3431dc301ecac3b36245776c05101e9e1534562518715e1865259991b9b417ada0bd5f4a40cfb6b744ab6363394784b560b25af0c2c22b245e4cebcb8289e1487b590c7e62768ba7c51eac83ec9dc07746226987a43bcb3dfb6823793bd67aebc772887b58af620705a8ac625cbd8bbfce39e76c3995bfed8e045853e2c43409952b96b2c6200c48eca9deed771fbbee7cebfe73a1614869aedc92524a6937ed0357ae6ec750acf78a76ca9e5828deb85794de6a655accf38f2ec9a262d995cb0233df509c942ad99c96a803561062514a10a04f471c6938c61281aa94ba16f9b1f7ee7e31c51d7480733f9d525a39a23cb594d67c26160106c88e6512963d82ec3ad9bdec8ea7ec01924d2a56800057dc1a69578735d25e235c24f0e78d341f08c6123e3e246633572c3602e3075e2f9d514a71bc134a0d2b8b03d99465536e7c6133e7d0686429593c9efd93caa69613941adf947b1ce1d260d117724914f100111bb7a84d27eddb922ba6cdfcc1c794bb89c46e28f931eddb32cb5e82080bcc4c13dbfd63924f5186eec7949b44cf4ac467f681210bc802138058ba5007ea7431dd4ce72375572cd0a94949c18259d46c9ac9dd9de561ee8955594dc12676e98f0260d3e0f417534f019de64f287339d467d93fda2b1c5dc510d1ddc727478c85e2ab5b64c7ede1515ed6cf1c4356083f16839415e382ecedd51f00011aab0e5000115d3c94ac0da42e24238310a973b224ccf6e42741b17162635ae70ec58a2bf889f4061167da6c56afc5ffcab459dff0c4d5d5d59ce1d9448cc68e7df4c0440c9a07f89575432d6bd82a6e888d658f176350f38f23d6b86b022158c8b832a56a2b04e2a1990b5698828aca091c873025dff5c773026ffc343f063d18cd1f6ccad8c59e81dc78f60cb0ce92f533284dd3b8a57fcff71fbbc75ebda8ac8a2e18a4df9f93ccbdedd3a3d65a57d09e0c327880dc5d6c77f9471fdcc682ebd3434bf9467c2c6f38261465dff6396aa95c7dba4f77ecb845751a9dcaee4744772a15d40b20ea29eaa484834eb9940ca0cd86218d26f9a3787699809bcb168b2e14c2f0557b746897f5cab5f5f2c91dd41e9d51f4f169cd6639b1180be3707c81a3537f8c0bf25b9a372d03b943d195cb29b2a426977bb459ea681a278653ca0754e7d46d1ac0694069043fca4fa5d01cedb9b8c717d59d407b391295b9ad05b1a5649adbbee44ab3d86d6e739bdb4624a84f0159c489695fed23725b28baa82ef710d111d5e5c6ed90ddddddddeeeeeeee585cf6fdd67737fe035869f7ff6e104229da3c80e91a145eab3c31c8d343a459906795738af7f62492562a6cf7ca2a1fa910122139698e64fd388d0add50eceef10369758f081549ab201ba8c3be76f5dac3c23e1bb81e089b2e5830989439360007b008c0e4a42e24ade0fdfabb8f13b9e0a44179ca1103449dff479cf28b632aff486b57c48969b47680eefcb76ffeff9bfbe60e6a0e7c5f797568d9577677b7bc619850947d63377a06fdf53e30cc8082aa0e330873602e97cb895a4457df9082113b2d6328086a235de90d22c53d6ee046a4f887de402b35317ad03517427f63da4d7b84403c845d7cf8ffff953cfe604a1c37cc021687208277f1c4effdff5f59003a02a514cbd03db1bbfbeca78dfbea821c62df304d0cbfc4163ebc54aa588b502fe88562cc0aa8ca668d4151049ad51e206fe6b39e015da9dbb21b85b4f8511879dfb0673465d3af6bd9188bccb50769792fade22ad291d858de6ac3b518927d2b125dd2e1d415e975bdc35e5126e0adb5967a5f7ea002226b3eeb674a168e1f26f3b37ebe2cc7e4fbe36fdf5af77737ff20eed62824c46af50416b3604a422c69050fa339844d19fbb0e70fbb87df03c1514a169f87bdf7efb61684f0a3cde35bca0f64015de08d888fe5edeeeeeece75936bbf5c0bc5135b719bd22979edf5668fe59d79d7fee0b2afeec99d350a0981f8468ba0a0a0a021ec22c43ec1c5204cc967eddfb77fdffe5bb7eefff6c34c274a29c5924adc144669d24daed8dd6fa2bb1442baf9dc0af0d2378cf2cc248121ca09eca8dcf87aee3ee71ca56431df62097bedb85c3b3b3c3b0d62771fa23bf83d2e988661196b08e4c7ed9f67dbf5daf1d99b8a9b3a22b39b36a1a62e49875832ce879eba66f3633775158782bbbb7b9d0961c7a0f5f02c9c81b3af03daf64a1afb6857812e57377dfa94039c7f1c593fd786ac9c9cebcd1c1eacf0f1053fcf5de666fd50ec516bc3f5fc719e7780fd7dcef04ae57f7e6841fb593bfeff8be27df9930503e7b7dff6b6b5ff266050fc98e21f67384fad7126ebe74799800f3f6e7965056048c5c280e66f3481c1cc9f7b92857f3372fbcfe7656f3cab7bd8f3ebdd399ebf976e2c7b7d6cad95b207bf0f9819a864ad5ce89289cc00001318084010000361244d1441c794e70114000c41b484c898582893c62361481c8741100541088200000200084331000572ccac56017046fcb16b9e0f2c6bbc4c2596937edc1663baff61ba0227a3899bc1316ab0b1078d7b2bc04a5f5e52c19bbe06cc4af391c20faebe4dd762ae21ffc1eddcd567f7f218c98d0c8bd392820cabee6715f3b981c804aa051d443283d284fed9cde0716fc5b9f00a2098763a7c8a4ef61f1d751aec31648f816835a158c44c7290567fbb789269796e5e5fc2c09e725dffbc5d895a4e266923cda1a74182b809649521dd010a863371f94f1cf79b2973300852f303427942e7b63b73dbd3b958dacb6db4df8f0121a7291988106fb684776386d1b91cf43f6ab9f90c53e96b898748dd2aad5044af5d45dbf15a2bb8543a7be642a4e7a44d781d2425037b09b6f707ee09d68ed6fe7330a3d8450f2d1c5c0ee7556f13ef0f7b7b125240d6d8386b4706937e5cfad02827d5913907fcd34baaaa4fca73347b86f0a8ce80782b60caa2d7974caa876f33ed7712dbc85a3c4a7ea7d3215ef0bbeb7504b045dbd71921cf3bbe72e8377b011be80f09d42fc68ba60a84190b7993a1d123703bbb208ab630577b11af9c904f6825dd173793c5c18d9beac0b990bb144a5432d706dd57f76a0954722a884f53d61db74436087a6dae06aa1818c201a583890a94d08ecf1c19ed2601fb65968a997f483c2b4a53bcb4194456abd78ff84398274cb4ed8dafd7b17f3994648c7becc6a3818a29625132138c6cc94e0cb622bce3f5103e946f0eb241e2d485707f2d9c9bdcb7d384a1b1fe48fe87c862b3cd17af5f1b40120f50bf14db160402d03160835586e06dc0aaca80659e565e03b1c43b60c0c7d514b3c06b77eed0ad5731fffb83bf162a44e442071f2ee489fde815cc70219b2c9067c2f80b920759d24a6be004dfcbfbeb123525750e742953a5d253646c37930f9c7585d8f7d94cc4b56b7cb59a6c851c15787c01fc98df2d72bbdfedd7029c170024186acd4a698ea2f2935f2d0b5fa70d6224e189b3eaa041773ded807310b0ebd7f2f7408d2f28cd36108f34a75df0b4201b213005c8b205888d188b858ad426ef05f25eb82c40bba4eea8b0653dd3b03dc24340f19b9f30a80c4f3dc1b8cd5476a6c505a34672cbc10eff1d126a53fc9825a0a4c584fd23b65dce4041170ef1fbb20b8518d2d7ab93f8f02000005a12e902ca534a51d7faa80d4c6dfc6cd6ec25d2c3e16cb71ff13c81bcef1c473fc84190933f6063039e289f351fd4ee2d667006865f319f2bdec216021ab07303daabc3440a10852c0b19c93564c75cedf4499ae138813186805367071780bcb7e517a9d265748db390a97248b86051fe3992d0fc76c31d103348072065c007b0fbbbfd0ee3c6df08bd9bcc82fcf8d01fa0d5e18bd401b31006168d5e7a55fe62d6d304877e61ee04760ec3c23c90df0230f1b8dce006000622fa1018073fd4ca96e92436194c44079d34fb977a028c75b0d31d75f1aba87794776c66ab747b662618741761acec435b4f4652d1deb8f1bc824df2ec16407a9b39e37e1d5f71fad73d99c57d4e63f7f4dbbbda0c8d33059209124b93268c6b7e51f6849326a2753b72edf5bfb99cd317486c04269339b88b230ecba0f94d0e7679522b317813305702a9ac745c8224b0f4c7cc0e5fb94d1cb227cc41d71fb2aac8792f44fa2a5b3e97a38aeac45f92e6497551b2b8ae024bfc9975bac30dee29794effa878f6ad4d1039a5abf8350bed3dab2a311b31a41128772acbf44669bf81481f666594e5e5963bd69791968f98d801c28dc9f6599f8daee70e4867e5e683029642469329795215ee2f8ce0531836e24178576a6fc22f8b83489bebdf8341977f9988c4516f628419e271e0587cb521c83abe98a91bb50ce3a7e93c2c4f5f58c40bee6e1488f6c539b2ac5adc97a110852e5a50bd5af8f143a4e02bf20a29a3cfb177e416aeae0fb54c014702dbb4d7b8e63f245887170c0723236e6b390bda3d1f0950f0add8b8900d23e2434e4d2917641454a0af44bfdc7283f469bed746ec6d86a156366ae18b1b54f19ac2c54d6baf6ba096b8bdd6482cb71a20f8b09fb702215aa2cfb455c21b54653b718bf1f5615b7e4af37b8c7a16942a936eb472419b6b832f65650ec4733b77ddc75a18ba84ce933ede05e96b91ad80a67cf099bfeee1f57fc560243ee656779d20a7f6e232c0f68e0765f9d8f3eba368fbcc2011eb54e4ae25c95164c68fd0870602e0b863094d1d3e39f42283906f2d97d195fb98dc1028fe3c1daa90c8a2ed1830f9a4e7281942e9b57860c22bf6282fc52f939eedd4a78e7d6bb7efe1631e24f29d6ceb60875515bb5ad27c24c3542e395958bd0c4b64e0e3d4561229cdbc8abbf37966284a5194a9a437b4953cda917303e65d77f4abfed2d2609656fdf2a853ac63dbc62d3518091faa3884f0dbaa2ef1d50918218580a4c3b9dee0ae298ecf840314821cc6f7c09f45aec5ef3ec8e7898ecb2e775b38d36ed6aa0e4ebc7df2443cc3e48907e1c5662e8c231ea0183f965f2e2d5d3a2c7be61fc2cad9a7231967aa98672935769a6d9e51891a17ffc87acc23608946e977e393f88f11c6bc6803a751bb96b3585c1c6c5b12862857d29a9efd1e53c7c604520a2863f950ff740fc4621af50681ca93a9948a3696b07bbedfe1a9207a466cf6378601a29b59dee21c3d6888c63af98632e79ad28c88d6a8a031e87f85398b192cbec8ef698fa7e85957197877b48d957380c22370fc307137aab8632433e1e250d00c7ea76df06a26f88aed13e9a811f12d840793084e8865d2299e3f83f87ba5bda6ce899d47086364eb7f91a86c5d0e51c86174c9fd56fc33a966fc39ac841a2864474ac0dbfe21e052afd7b9cc3944b7ba67fc9314027239ab7fdca0babb96efcdf8129c48432d4378dc282dddfb3f8cb46076f73d81876be021f1096559375873429150b4cbf4e9120033c03215000d3a667be5f22e7cdbfa96032496c03be498d8cf1bde130eea81139f1bfd21c09b8b7f10b83e6af677b27df4e9798679cd2772fbf75ceea522680080507d96b72d2262d9ad5dd415dc390e648cbbfa88eef73e1836040f4688e2e94ff69e09e3bde9dbe904a97bf962abf512a55117fd2064b724eb853cb5887354d651996f4e9f06443f27f4e273af74a88583c210cc575e90e305390f91cb1e9b53187973839a329d756d48644fd134873aed9f90469ac1f2fe53df415060106dcfa2f435a9b1059bf77baaee4630e29559380b0f33207ac6037b40ef2eecbf68dfcc79c025641d80bdaaf9782121a7d7e6e1dbd70dcc4dace284fc97a6ca553703d29b9956bc6037fb213b12ca3e412f1e8e907326b22bb288e46a20aae0d16a1b1f22b8ce0bdbffdb6a1b76be166203df08fcc8993912f480b10768ffe84fee6d1bca60300284466b704002b4d972af677e287c832002903c339f93f867a4d006efb6bc4cd3c1097643603d0bfe7103a1ff2162241437592a0e85ffd47299f54e966b38d5e2b956bf6634a28f7b39f9e8fdfff9c48c77a19945a4f67f1c34d5e97405b3741554a7c337d22a83ce7254f768a04769fe1d97559abb881f262ca14309931e7344709def0a7ef457a5450184830b536cebbc5c5df11f4617165b2f2a3360924b366bf1992a2e9b132ff415638621ece6dd299424a0241ab8d7c2778275607c292fa228d5535bb9188eb023b5aa801569841c494da103c6225888114867247278101c71f023fe0edb0278aefa1f4945edbb368a0085b376b8ddce574bc36bb4f13ff6610b948efa82a0f4b2a3f4dcb82dccfce323b0324698a06d69b10f308460b62ba9ead96c8c62ee062a3fe2b3610a17395ef18130fba46dcf3dda6c8305040c6693d969e1c03b1c0544eada407dbea1887afd12475f3261c7148b096dff7664185cc22dff6cb18d7338b7d33acd7ea473fd8931c150e937ac01608d995484409a90820d5318032910713deb15f3246716c8d15dc8c82afef6734292d6e02ccf8f30ed37b06528593164ae13010a33a139936ffc5db8a7ad79dadfa6beb3d3207ae932fb621c4ec88e4c4a3d9ad6e6a73f729b064d8769c1777c55ca910b17f30b6dec7b38ce1824a9633268cc0424b59e5b0dfb5152386e40a53421392ae0383d42189239c2b50085a1c40541e68a4328a0cd82922cc5ab9f4b8ea1f8b12f95c0b4331654db473cc81084d56724b7d4b8511985781052880e5514a2bf00f9cdd83ff2a9fbfb9d5003060ed3b72791e06cabc38df905ce8c0ef8c48c9e53eba299871c43851645464f1dd269e0e78abf7c19b342dc0f7989c70504200496b7f0dc43b507c2945a2a5904b3f0aa93cef28e9e8f6d1f5c579ea72e0108651de8f2c5bc0a430e72e8360547820efe91f5938f2a06110e70e328013d7093f27918efa7c7b30e55dc0f4b5867203e0a8eac0d53c9b97fe98a66a144364c457db189c5230fb4ad520cbc9810f140fe85b559eb3122a8c9fe0b8381e17ac0fb6a85ff75efab83f0e03b4b371de2ea04bbb8382a4a1469855e8bf33e52dac166f99dd3c7ba380d3e67e30f1d243a92f1446925f786ef6900f79b9b18268fc82f2ebdb91827f98c39e55ce0b0500ee35bbb34ec69cf49103e27609dd4b82e822561bacb148b06a95a1bc87a368979d35e357876a5f2705de8b6bc3907fd58d3592a4fe5131e375bafc153822ce0de3de08e197c7086aae43f4203c1b714a9683d85981b69203b1c29becb80bbd1accf64fbdc19e445f6cd22103df0ef327ab35c04e4e12efa766c42a1668195ea219486b0fe77582ba8c817fa89e32ab61ab033ebf3bef6589ebd36a4bce7ee3bea0195df0089d8a50b0960544de9602159375867130a428643d5ecc1110522a6778dad7cacecd6516fb45deda5d8600ee3189515a241f48541f4b9e3c363fa420858f8d1cd251718dbfde476ecb3132769d939428ec752a089a03b964a6c2296b1aa1580aff9b4647c9b14a24203a59d36c28a92aa857bcd070f6349549fe9372308ed2fc59791aff6d2e4fe239eb48557f82e3e1cf18864c71aa06465a76f9c2ec0d761719a67a416bf6cb37ae801a03907df282a510a71ce46bdc77d8a4445dd3aa8e44a386564521ce1c00093342f98d1da367c680380952c906120a330d86a0a31e3191665fbd456e89488891aad273924d813e1e717979d35634b374525af290131ef08afc7594c0ff4db9a3390a440b4a29c2bc8697d87be202cbf582f9427b4453520b4c641251c861c6e8e99ad0e253cf41605358bd36fe46eb9c5b8882275ad1dfa6764d705ae2c595e0ce38af63c404713abd1561c481e8633e6626ee4a57e94701e16a1790404e0be75cca5c380aa4467ca5d3d03bec271cbdcea0203146b3918c7e431d71c1763934509c2a692b92b4d3cc05be4657c425dc95993d53d2c3307dc69444f59cfe305b81f90e131756459e102546fdfe9a5f0fe690f930b9aabbcc55821907591e34267d44c66172a8c6e712ecd5a1daf4c0df4c8036e2d6ed4f29d74fc3c4c5e4bfc9d4ef0017d040762c8a2059dd7bade95d206625e421d3b3466e19e3747161f0f1cd9d42fbe8b0d7cfd631a662526ea934c289cfd61ca5dba7509972534968db274c4086e9ae88afe8be3c159e4e7d1934c4202d76d986fc5d0efc0d1ddc05367aa3eaab891accdd942d60a8c4df0fa31d70e0d448e5d8746fbc1d2dd571adaba7eb9ac671df60d12f31cf0aab17685bd85744ae86a20b043541526655b29f685be21f2192384b987bfb1050015468dcbe0da6a6194abf4dee0b2df860e585cc1ea1b9abcf0f5bee8d130e31bea89adbe15d8a9d22057b309e50e73156a9f726d95883d240a0184707f39b46f9b65485b78241d2d88c85f49255a8bfb40e44d5c53d66098092a0d42c097e97e52a9cc3c6d263f2207d1180fa4d33d2b57c2834e755cb0053f0d930b8a21715b2de4f2b78b92152a65ea7122dae5c7a8ac02ca54acd608df549bc1df382c89ad2e46f8895a45696c230c7ceafa3970c17a3c72f25ae2c2e65cca31a422dd937a6e7656a34a6c0dba587e914fc229133baa4f18b33aa6f697bcf2d764afda151a28a88e59bc6f26073d29d1568a4273023181cedf76b33ac01be377ab1cf646ca0ed44755c0d9c2d99fb6240570b34ed11a872fa05f39c040c66ae09defb023f8dddc41508a15f07b8dbe89e6f70643fc53f95d53bf3e990e1f611b8178706d54684c0b2ea746ac57541149d8256e0a30d410972bb2fb781354535d4ca73e6dc689568fe0f0025b77d0830a7c5fc4cbdb8b3cf64325334c40b8832459449f3f0213a427e5e29fdc6aa54ad0fbb4c042f31074c327620f59a2d65b7851a2da3e64692868fb6c7fecbcff540301fd663de35898095c570a7d2636e802cd92bde002db1333d1c3dd4d56048c23af74e85b82b430923ece1c630b11ab43037cda8c9852ec8d1318499dbe74c5ac59048e3e3bab76b7b99ecf96f545b8f7c0b7b1181cefce4699d84ef6877755b4241d38c1d3cd74a97ffdb61bcb7efc841f637fbf118be4b21ced54ceb4812b38cfbdd67f83937ddd70b4bb7facc8ebf342ec33cd29d73b7500b91ff1f21013715859cc4e4ebde41199f41175839540384927d3572f1491abcc3bf3fcabb13f120522db882e8a2053eacf3012dc11c174dccb2a824d6b8bafe47c3bfb5c0015b1a31459b4f81cabc489ad52f67c0bc97e2c29951da11adb639f143ea9ed655c149d6f3d98bc48ddaece9ae8c95495cf8c9e78c81cee2093588148e89b6280419bdcb26d446c40d7a5ededbb877bdd235cf610f037d6b19b4dc0fb280aa12fbac9d04f4e42085bc55e858c9a89866e5e4b0d962431ff77753f4949c927d7b2d6699923d99818e704b1355507ec3fbea0dbaea738adfac9a1e4737ef8231d7c96e6b2fda3db51d16ee58f6be5663b40ebe86782b56e65843d8dee812a885e66d8347ae147458db81b2ee84db2e91dc49b4e12b9b705796f15d701f0ff1549a2b4c4ef4742753d801932b40ba74de81709a833b1c02855398fb71afc2566557cf40dd2b9763df651c1c1263866788234cbaf58975fad1150f0bc9064a98aa6a996930a36c48684ffdec59293dcd7f6db49974ac0e447bbf679cd2f96ee4fe2292437775a258534bc977d7a574303402b590e128b4542817c47e28d316cf066ed9b6568c30d8934d30758680d6a10cf51232a0d1bea25c5bf6edc65b6f81e31e4f771a84427777afcda722a215d22004ce3706cb743b0635f280a3327399f9a9ff3652b4eee6776ceffbcc41378c957f0f9ad1ac1e9b8a74a99f375055b6026ab45a4be5d806a96598ef7f22043a2ebd2077d605569303f51df57cf2393a4e52f1205e755930e67704dd83c0d8d42cfe4c063a37201420884a272ae2c2268072d209df7912a3525a6d7bcc33cee56ab095e4b5fd69cc19fec0ed78ba303ae5c21d0585dcdb1a73cab8356019ce7c274732e4d20fd793e62f8703b8a72e0f98981cff18442c150e9efbc72c6587e444d7ecd8094409482da4d452bcecdcf847c4b07904373e6fd3eed7ecbada1d8e4dde8950e18c4587d9684fcf5d6528e20ad00d56cf93f74647c53995d4f7d8b32f0fd1600520bc13b4bef4400fa0dcd5db05221e64003461f3c3312513eaae0624407ad2a4dce03a63e93fa7b796a25a66b5ae9559235a5371a4e48f20826f5a4573f9d6c660d4020efed9d51a38908b78365bb9cec6e844782eddf5a8e01025070687ec691262e7107b68f194154ddf6e52391722add42366910b5a2cf2e2e352d4130da7779cc9bb3c992da98c081b38173c4df283156a0f0dcf9e5d615aea68161959ad97100805e07ccf876067146138a4ad43b8654f44f47725cfb92be460ce4ba52b8db47aeee294b372243ba6db868289e14717b686d190a8039a8c9f8691231c03f9a6dae5c5171c4f4c054f69244257463507d71a6379e619c9a5e07b8361fe2b63c74e86a69823a67eacfcea35d760c44765d45abfc3be05b546e861a246092c218ccb310a603dca38c04bc7802761c2fda0420f8377374ad1e391eed0179f115a609760a9dfc503ffaaf98ca33aa84fa164f0fc9bf8bae2a42001b14c25cc944c303243b525a98afecb08ce7ad4704aee5db333718e5f6ce85b6a820f697a88e182e6de2708d018b8dc147a76fd300b60b3e9c35cbb6291db4a5789d5a1ab6b3104a270eb8fcfa72deea8e59f75ba54aff289eeef256e2ba5bc7010ebd114900f894004f4a5b89a65cc46fb6250a1c5a2285cfaf8d96625b321734dcc516acac4a79eae8a5b722792d0c806a8170d3f5f8717b8e5fdf11da2925c270d0b7bff4353e064cbcb9b11ca3b251eafaeee55fba5df8583d8a8756704095cf564fd40353618251ff178280e47265e5920f828c1af2a12c0a658d49955022e6362a0fac67c60fb74852313d546d6ae44b5fa2e56edd33d1d1f61246aaf7407f4925b55922d912c47d2ba638cc8af6891abc4cb6bf3d7346969521703a7b927c838b6f5529e2106155cd9ab85a5c8de7120557bbff37c7494ba673e23a16bde04744991fa5797794670f0da3b2d65cadaf5885127f06203fc69bcc5c6c96505251f69e10408433cf6f6a0641e3d40af18376d35d7fd87e6c5641429f78a00a992aa173499b36abb2797e4a7f84dbdb7bc5025634deec437bae58af47c48836cdb9e09e3f7dfdf647e424fd2dc7e400cf1fe53426fa029f6f23c7862b0688696e202fc06d59a9071c032a8a2ae205a83f62643d60619dbbed6f1c246cc7457c6fbfbaf4582b4b674c1d24b089f870406539f4124d3ca8acc057d161e8a754f469641037a873aa535f4472635ff6e1235d44cc7243b5377c78adde853110798cfc60fb9c460a13555a84d8ccd4049dff6098fc46b2fad6da6393a6c7eed059f50dab1e07dfc0a0961565249ce7daeaa96c84a64a3624591ed967baae1dba61f99fc90a4eba8b76bf46ba47de6a9c857590eedc2f4be855fe3ab7d4ddf5422a405b70cbcc241fbda94703c5a0eb50f2c584825d1d9374a7725985336de7a52209c14bf482c496ffa311272adbe0e5b4d1de93e2b8411c67563704ff5055a235419668da3da49bb4a97e816c948616cfbd1b22a35c47442fdb64eceab04339b917095b9f35e72c3b84e76249574e03e36e0e970ac175dbec247dc091898df9197793c55bd9d264ed7b6dfa5e5c8951008e7242f38620722ab810774dcb47cf8b656fa2fb5445666d0d62263480e3634e98bcd3c0a8bb4eaa55faf49e711c53b84850808576a4a17432cad0c8e8d70452dcf8607fc08622ea38219b6bfdd1b8e2031f9908aece4e6c00c53544ff0355aed6cd7800211dd1824ff4d4c17b190f473fe262dd20af6696b14991818f6c330ed1b7ca649e91f398864cf98c407da5a431da1241d5d06a79a5062c1b61d805c4ece1c696f1dd770d434c6fdde72e328ad5ed9f34cc46279b65da8e19c588a6681fa81c5c88e7c6ed3a3705e2e3e5d54f6fd602f5c23b645b4042b91ece7178c9934baaab0f992b19cb4cddc0f838b3ad2a24ed237c13da08e673e3374e23f4e37803986eaf23919f9c8a34a821a55ea87baa0cb315bca41d7dc69581d7f00202feab285a05e5f1441f20f4bd974df0ffbf7786f4aecf3712ba24cc8178a78ef5d31f54ae9140214e5303959538780b0cf9f8d7d0836e5c03a92f51fff6a59e7feaeac65fc98e0482c13184e50b8b9a284f7c41ff937366a0020fa039d73fc151c23fa32f07774325661ea97877b2f4d3f208c8b93fc62e5f3d79f443bc7d71dc042295f0f51ce6aa370d384fc2673bae96473098bda035411ea44fabace76658affae83436867d9888fddf2c5ee9ca778196161fd558214eeeb8db979c92437272cb98b90a0039101fff1b6bd2586ef0c23cb034dc7c2a8e603d527491feb362329f868a4f27215139dc99ad035ba6a8a40d96f66b391a3fbfe8a7b77cfe038fb2eaa2856376f08785442d84800858b3a6da11da167712672a6a7a3f345c03f9ae870f451c061bcb48aef8ae69c897552315f4d5889dffd0eed491328e3b24abc0bb90be6289a6e14836e3d46fa17abf7c5e3aac4c458154f0d83950da47ce337339783e83e329adcb68d1e7e16bebb1e8783540bf0e41ba58d721805aa57508677a5b28bbfeaaa9f5edc31eca0234257c5b86624b759b5a9a2177b0adb99b3944c20ae33bfa46c6d0fc6701db4c13e215a0df1b6799d90d6259bb8257dc2512cc25f290379973ed5bab9aba0a2c33076dcc6cce28900e0cda29a04b5b0aa72d8fb298f4039dad9a5ecdb8d7ab595aedcfaed2e29ee68e491716fa68db5a021363812439176974d099b79f38338f2e149fc9405ed9f463469d6e068e87b356398a65e6c9d840ca84e04ef2476e916ac5ccaa571cfc143696018472a8ecd8f0cd882a9563c26ae13fa91f8fd4ff4da5d1969688aeb4c2e506a1a95d1fef88ec51c417406a07e93c631817e2b5e2a854ced704d1c24154a158a1367a3748560bae543828b23a253848788be406a60ccc0c15b8f4dd1c30abc2eb24cedbe95bb51354a6d2068d9f39b5a7e363fe8110ccd12531af4a1c592830fdcdc6aa6f91b15bbea2eeb8f541915cbf8b5a02c5dbcbec4c9708a335368465ece2570169da8a012bbbfbbc59f1dcc5688247562a12a35505cc16d450adcaeeed1ed952105fabaa01af40931fc92aba46213501192eda9f85b057967fb4008e74f086daa586a0159ce2412ed2d3d0d8a91140025a6adef882aaee18fecab0e960693086fba6d892b9d4420b068f44acbfdab861c19f33a52e58c9704eb1ab4c2467b4514e196903a96678bd7857456a7b80b0a9f7db7d0f27c3f9c9ac5e238879464dfef502c4a0be153786cde5c027db45d049ebbc80050862852e8a498508ea294eb559b92ba0d48e2e3454272a6413d0989e6a5c42a893775c6587647873715666cff3024a0c1369a58c648107fd9fe5214ce71927a463c6da389beaa80cae0af23be021160db694532e02d0aaca766125e0d7084264092144721d9ec9aa340d0580f97e05a9f7a1be691c5a4695b51600fc28b73f2dfe662209067f45ee2e2719eb924cff43ddec50e03e79f7a4597f5c55b322e39c3a55ac23c02cfbf46a17cf4211472e04b1e15ee20052641ddac7b2448a53a72f6581c6878525bfcb42ce89b7cb8d87d404457a048de117ae03298709f97544cceeb5c641e29bd8643a255f92449c548da8bd050649c2ae45f62682ff877ce0cd49f4bd55709fddd5478c2a9546ab41468d7e4660d081963100ff0e164044e1be829ee6f644e645452e18e6476282d140535a6afcc632db55cfbce08e606d265ecc22c4a10f4d5cccb210b91499b24e57915ce48c1e9c56cec88c44dc91ed3ae173de4963a48821146b9f586595900e872ee53024130e10c071377093900e2f1537c2ce5275078dd648effac933c0f605f64c54cb4520fb424b24aa87206f508a5ae808dd9f22d024e0423e38040f835478284e402471442daf3acf0f38df89bbd4a267984ccde348a04e8e1f48af68e1ff30c45db775416e71dbfe4fbd8c2e563ffd9c0a9c0c908b970c470fe59051c302f04c3fde872d2d5d3456fcbe62febfaf114c50c753c1cd95f40fa676651ffde6920fa16d4b625556a0d227d0ec91c617493e10115a3ad8615d38011a5aaa20fb405678804cb3fb40f455bf8f8341b3096d0ea958ffdc010af3773137c9b5408795d2861fe5febcf14f90b0d0032cb83950fcd24fa7501d577253f883746557e4a2f712106412823669801904d81bc313866f612f23e63215a7e66dfc06e42fa6f51d97690706b2cac3a24553142164aaae8a5e016cc1622ef0b09be2d1388b1230ac6032ad0c261a531e09e05c84aa4df64967f05289a51b82224b65765879ab859bc8d7b200228e531116322464e4b8e35feb0cb4df1c117d621ed1d8dd19c9344e93e66498714e30cc2a53d8612121d0534c0bc05897193fbb17524c61fb5fd546a4470c020f74590f9e38c261571d2be58e619df80ac608b714f8b1e65bd49e68f225c6d76d4982b3929aaa4fb0e2073c6079456a05116d2885513904a6dcc69cc186ec7b22dcd6952ddd931d98405008f3d8b02f6aaeb089e028b22a7f72000a262e1134e2a7e848fc24519946f60ea8c4b64f48dfc2fad84ca3973293700e19e1b69e84bb2f661287940ab60fdc18546d3934b17437c4b03daf21dbb22de084636e8cd5087e85060852fc6587f6e7f094ce68f7f3d5cc41e6e9c955577879e1a1f3385a074972b6124e2e6a2f01d8e05eee38fe15a8f85aa448a979c46465baa5d5daed8057d2982bf29dda789fb2f5c87f053c70ab3c3dec9344e1fbef957a7a367c3eb5cbe7d00adaba7553c9a4b4998c060171a95ecb1f87e2ffce4a873017f081b9cb30a930e79158c74b322ab66c249d461f89e84d26dd1430569804df04f24da0869c5f001438c77f9482b8635be01d70db6e58e77b03512e1d9bfa3cd453a58e9c02002e0b035b39443f826613e21c4b8160f78dfba75ce44130a601b89263028d0bdc9b781673cfee836382eec3aa051502c7d13b60b87dddc39683043f4c856ab05d2900fa68dd644add8712974f19c6128aec4d2cc8ca84b3f31631b268139bdcd5146c72e19167e1ec0649838a5942e6502403f9d44b012a13c221a41859a5d553531d9f6c6d1252bb168d1c51cbb8d30f7ea5240f684a66f76b8b81b193cad392ff8712df37c2052d5e62a46c4bdeed34a70e92f54f26cad4a034119b770206565220e6f60190b81dfb15beae6e60b58de6525a467ec061c265293de02e702ccdc0afa2f864b2f6b15a4faad437e480d7aecec9f24f51d6934e40d78da1f22b926f755e214996acfb7eaa547554939e42017eb2055e23c3e9a536ac8f2e806843fd7e060a68e3e6a4d05f374710ce3a16117caa0082047a3b79d76c54ca9fd585dff62c600fa1b3e41c76c1e20b0dcd5c21e7fb4b0e0157e306fc9526230c97dcda7da2db51b4c5db18e227aab11bc58db064632fc806e8653356f79e46cf542f136e0015e310bd799db080068d028dd4a0e113c4b435a499e26fd276d73964ab00e69338be5d86b496396ab97cf28254439bbf55c9d014842305fe7f91a0daba86e12574a468640bd303fb51d79290a7e198ff421bd0c46efd1cc26e284c1d65fd326320b1954228860268508caecbe6b56210e103bf1dc117449c26de4f9ad1f711ac06c86ad202e2e3a312cff71bbf9cce49eabba6b8a0b31e0e7d993cc3efe722b307bd908bb7257725fa0c4aa84184a494635e8ba125e8d832daa32b5f58f45b0aab91634edba295b3bc38e126e745bd971bf63bea5c746bb1ac7115a83ec75c6d9db5a6c2a994d04197c7bc54044475f73779be1fd48f922e018d14b4a01a68177187e0a91398564960f428d2312a211c6265f1b18c5cc43d13ee065c8f6739d2cc9f2f75e939edb32059bac58b37a2653984596acb99da1a3da52f133870d48e9a3f267d413a8c380afad37eaea1c7a971e05011d26f7b6ae20f8039133802ea98164564f9ea1058a34546efb84b6f85f11ffa9a27929d12dbdc25526490e4c5c870935250312f389ac07dc199511d47862c74799cefa626367aab75adb77815bf446eb68bd72ecd68e4e06f43be1a6d934d5574dbf83fe87378309944d27104480bfe4389735cb704379bc6e0897c0c3c1b45f6a7e6854ccccff528c04352ec52a1c2156a717ef3c4f1fdf324a471a6048534e6b24631025d5164cdb7bc01950b7506047596168e297bf942909b03a1ef0b0075481b74a544cb5167270286a40f6d34d0e7aae454ffa76653fa13433339e15c4691a30b87df1ea0c7f6ddc99677f63b390436196f607b36861856d91ba5c4e54916e57522781741c125ad1be1fb0bb00369cc36aa18ba30c5f98b832b51b2f88a0cc69e947961984cd0b7d220b1ca05e136e3c2ce6eea7ac9b8a27814c5b9d82daf7d7b852449050a0e557e8770fe2a41d7487e896b83d4a9a13cae96634c11e14941edf06436f1c0800f0bacf2f851d40b9cb7fb4d07a770abd4fbcdb86e431c354eae5d81ce305b52f11f408736846d4713174b02ad229de1b335cfef27c485e79da4253ff3189e6b4c8294bdd0af4fbcc987d343467b1a31eacdbd720e264a647ad12a06c4e11ea40a3ef36aa9cf9c5ac0af23a9a34213e48c6ccbc90b41b37ab0d23cc6d6d45ae804753fe8a8205d2a238278bbaf66020f2ddeaa064532d9abb445de4dacf7cdf743216dcecf91335516a5976764a80c430a299dfc498f524207561704246ee867559a6545018259ab34d81a1bb143a8c858dade2d44b40a221dfa534fc397c5d420aeff99c352b0ac80622c310a87104724cc11627498e6132c90a8e7f91da8591db509c904962501428ecc4c92292236046aca18695a7629b7918c9029daca2fbd893f54324c24b1c1e5852966112a65d62239fdf133191b9a8be662c0b24d9e3ada9a6353d7a94f3aa7803839caa0b950d8d428d5625eda22d93c1001c3c59e64936a45dd2563c04b32f740bc6cc79891ca78c80a6cb94d514b1cbcae80d57799326a0f92c554e6a54d69e20b65b90a09a78acf46849b67f2a08fcb443f588622f19191248189b291109b7e42bf0adba4841e6253e669695ba016f91cf2796a29cd0b2084fbf692dc761cfecfed4d73eeb7656015d4b09b208a559c0ebae92bd6b529ebbeff46071108a38a9488b29eaaab39d59cab47a3ea344a749f65fb0d34c3278bf0fc686111480a24dcaa0170c5645d8c564e0f30cc7b2227b5a411151d7611b527f984015c50d7257a4171897fe9ccc05297c848a75a7d946997c34906d764753229d73d35c5cf9c431eef392bbb12b3e6c00ed2e9aa75d27b51d091433b43ccfe9b7f24aa8f155213c19ea16e1c0064eba9e8557a15d8da7d16a94382d626a0931a6cd5b742121268de7a6fad30af0793b7417734d854b32856354af422ad9fbb8631c34b062df700da71507e03b0f1297d996c430d998b162c0942d3d214d56d18a6a193540fa5a28410701339c366884d1f26cb0e3fc1c4aa9cb2c868a1639688e7c72d19d42237b1c01e8fe67c15cb81a43bc145ecb6ffa923e87f2e92e1dd0802bb83be694002fcd1fc033af3cbffe336d6a63e68d514a222b42fffd12fafb960ff4a37b6749c70f6724f14f881155e0d9ac2090465473a2620a7580f23e4220b079dc23222d1ef12a67249205abee316f6b9fc5d4edac6e4dc1a279adda8cfca4f5cf61459216a137f78a6d2cc0c81c633cf16f8cbe108b5451cf75ec3a071037592f1e7995a437f7612b185aa04197fa94a22d9e0612641654c85de12e1b6b030e2596f25c668214044ff45fe29eab33e99dac0dabb0c47a04e5aa6c90db3a76a8adf5e720214820b8ba2a22bb3b904f17e302e1946feaf143550e4040ecaee6220ccb23bf0561e0a103758a45ca5ca8c7b113bbd52e544536df3a1a04ad90441e4fab3ba01fe44a7d40c116f343a05bb81a3661996032de89808f1e9b24764ea3250bd9a7339ec383a09ce2782a24ea994ece222b59b6cc64bc054d789a4aec77497a7ba0a1503b3a3d52e028b2197bb4aa23bae89e53b8cbe087787816428898417a906b14a2142df2730f3e709b75a547684c376560929c8a6744a5f6289b3e7ac300b6c53b432bc7609b3a631bf506a216a8c99a82a1b91d73c1991a0667761e848727cc4d608b0c1b07c439e21db0e9fe80afb8bee821f0eba031842a5790176ff89bd882467574dafb49e6029abf07bdf4ba91088bd8fc2cb4c8252ff2f8d234817b8d239fd28b74fc1eab0dc5e68642d77146a2414bcbaa8d1241e51166dd515fce30d4eb3d0954f0350eedef31ba4644413ce8f842877698d19521be4611ebf75d1a85743a564c8fe236cf1f61a51c196d891007b94c666d39947088cb22d2409ebf8cf2f5d63d8ba6e4db672fa5937fdc62f73e0b3033684dbfcbaee349caa3036be06bb62a207676f5561c19760fa728afd9caa656da3e89a536879a5d242c737341dda5f5f9b3ea9a5ee786e43faef5f234505b05c709c8469e8b596f0c5d3ebe39df05ecae3dd4ba19530182c0a6e9f9824f89270e45854c99a0d73edc6a5464bd710d50f982b144b8b8c0415be9958377eb65d2e643a095c5ac4ebc367e19ab031ac93459c9e29872c492cedd269be5552f5c89d034de9ec692c9a9b26ecc4da0f0169788e88cd270a9e35e7ec7a29278059cff97fe5ddb400588ef4363c5e1234ac18fd9f9ef497ae30ae08b817470a9d630557cf585765a63a6b398dc5415f72ab489e4c40f5a5b0b9b03a4ce30f66d5e6a57b9976729c84d8a8938e778a864ea4a7f425c5483d4b3d76751c710851053cafecbf122294a77915ff7f888b4ed08be4c2e741e13ab2fc44c5b2550b5b75946cb3d421bf3f1a8d5182a8e61298b1db1d70894b90864851965f9b372d2be9852a6cd04b858e21e9bbb0e1f7bcee5294b27a69d30e64fd89672e8d692203f2ee47669a1c97a15520186faa84cdf01049d22edc2fdc1609896cabdd6bd243a001c90e74ce880caedc8f98b38e4a2a5d943071823e81d495846b85a766b5a205c47908405825e2f773137d1a6b6d5f7a3a0aa2e2e8f3580403090824ee468ffa8fa61339da6c3a293239012363844f71b160c58afa28192ae9f241839a4cd97fc467df93e31c593ab8404f023daeecc9fef23b6248a0aaaf742425a1222f3d4899b1f9520d82ec3da5befa93dcb42ecbe19e367c7ebe1eef65d34fa3e447b951186c9694a98055290e86c06d5cc28936da1dd209deff81b7da654e8cdf9385dcb84357ddf17c8d00a8471b85151005d348cdd068a1d85d82129cfb5fcc7768d8d419786508170545903a2928dc6fd284c7028bec10525d005e2f5aeeb2e15c5977e4b2f2af58362c214f0703920ee17b42dc8f978b162c891d09d89b48b0c97651841f18597bb0ee6a687190c386452eafb2034f093be625205ce428ff1605324de13cbb03072d087b3e6352067e9e4f0bc22df0af8a37a791087ff78e72a8521602f63e184274091a872afd61707ca12a1438b2774e95d7e7029b7906ec2afb7c9f611b3042de5907298fce234762e5a0223b699b94e88592018a1fa4dd14b3dd6c9b57a0b093cf28b0a0b7c25800ae30167b01d639f3c9698991f66929085b9c3ea228011d328c3c3e4986812f7606dfd138226986bf801ddd00694f85fa024f2c7b80727f9f3dd34aee61838e05744b8e198922fa56cb9c62bd1df5524f804b6009ee0f71ef47e056a6fc2290d8dd282b87b32c7a21807b2df22afe8a2bf03f838f299a1b7c74d04716620a6f4e2515628618ad1264820a0202b9d784a92afa54c6de4a1b0d5b15afc742f60ca7c7fc21c14e0445cc67babdc26ea967e54e0e5f167893eee94ee717619fb6deaf162fa7892412c900e87f0c9dfa1f99caeed685bbd0b458985ecac84caf5cedebcae25549d5120db5ad6f4237fa60efad4824e47839913b54492b84edaa9d222754dc3d330d026c602925d4c9dad980736b67719f2351aba2278684c94f9b44087821538a84f1bcdd7852c930f059481581335437eb0ddac4a1a4bdeeffd7c319310d900682209c4985cd9e06f513de846b45af6867ec43887bafd495a3282d4c9bf207e2fb5c82242db1d6851ec0bd12b28bf926f0222188a54b00c5c91599870e454860de12b9153d1089754e61b0dee70c1e964bd252790d730c9559cdb318734370de897c9ee9187fe2b9aff4d41abd7db6ca1fdc556ed24420dc861f35ddd657946e22464143889c8f0e3b77430300a14a6a888f73c8e79d7b5569cc891870649f49b279a0f18f1fe3e7dc58f52bb49f98ac36bcbb2dfcaa8010e257657154779602f9f381ff622bf82de2930a4ae08324082165d87821e1057ac0ee2730639b24028c1dee90f84788d9790c1c1fd26536524cf964a31260964d9eeb58668cd269d54b02933f154e69fa375d14acb2026a2d9e6c5a30102b4a3a7ae56c659618a0443747fb2a83a2674e970f297d84e78f3b165782e2f5627f0f15a267f3b3060f107a0a1710082e2829e143d8852b24cee58c8ffc836040c85eea2106a2cc690ad11a11698d10d2c8267bcb2db70c53063307ea06871506265dd7bc2bc3871d5c19fe32b3d7bd32f03911c22eb25d1a7e778450856c5715790f5706861690524a19636c2e929999638ced318995b1d044ee7bac18fbb1af2446669ea2a3ec96cd118d06e222f3b04c9476538d63272e3deeb0d3fa2cad638c91a3ec96cdb148c255e1aab3e39a699686ca5e2927935821d700c66b6a3049867ef6359e7a3d197a318ce26b8ce21fa6ca8f99988a1e6e8540a9c2c3b8b5905331aaa9e0c7df6dbd5685c131a526533c42ce85979f0ba5849752ce29595dfb0e98ad17bf67cd73737a318ceafe01cfc55cf00b5c1358f04ae0bb1071d0026d14009c004c05b80caa840a1950e1e547a74c336225f274849d475d537a3e71dda519794da977b196c02b751f81ea9e015838fec22f1b70ce39e365a7b5c19a67c9b76479e6193738a6fbde659bd83169a2cc851ab90a57c595aa12280fd0ed29939e2163c2d2ea4aca34acf73c9c9e12b8021559769768159e519a97fb45bd3aeab190547a51baf0fdd146a469c744565a699db52b9f7a50bb3a9657fb188401012eb611818f1ce1464982ac25121680d53fb1004f2c347caaa2aa01ea6e2cec4f8531751788b6a93dfc9209655111dc667410173af2a12d796a3f03e203972d4358a5c7d240fb544d63c923a2a8fdf6993a92078f5de3089f3a756a57a5d73f2b136f1a838b42f254718306c933f221daeeeeeea51a0c346e9bca9914d099af00a8a59452cad6d2e8ee11a20ea00dbdf3d31a170617d354630879babb5bae11a9c6f5175a5abebb65f7018e00fc52db7b217ef952619867422b852b033716a28e4e65e5e8e85418e66160422b7626a64a83f4697f60be10ebf4a46c29f903b18bd0a834ad5c4a39eed2b89674508d6308830842049442133ada61ea7ec020dcbc7a4e199d742b69e96d008834331f7ab18a1d2d8b90727677cf39a794527256b898a65acb1f6e743774369c8e13688daca175229ca336ac41edc32eace21d38c4528a444882779877862a8b93323d487424e01c453c5dec14e96409e209ac2fc02f39d76c1d0460024a14133347288d074a47f34938d5a81a964bb4428528740183ebf6344675df14ea086d5a33c3f86086a69a189484daa9da5da6611be90e9938601b244865712bac4cbc094870f025742f507319a28d92dddddddddd524a29bb9d2e6a8d62333f745a43a3a9260507436795b26a97b134847479de21dbe54d3be4ba01025cafc975447acacc933ab832f35bc72b33af758dcdd3795e1a03ad2d43900d46f73c4010128a6ed92d9bb7bbbb013ccc6dda3c87cc4195287b2a21a594524ad91ab7858b69aa75074ee082b2ae7ab166bd583b64d34e778770bf0e7748e9d77987909e8339e5e4ba5247daba5e19792d1bc963724a49829d43b7949e46a994524a296577a7f2e0e6357972cc1bfbb369d9882bd5501e8ed298a3666a623c8f529aeb10bb2eaca946492cf1e03a9bd71635e5a2e4bca40f419d9d8c20a8b3c36ad66d95f399843be775cd2ca4eceeeeeed63833b898a69a14d2828c27f6c4e69c73ceef5402eb39e79c737251b115d49ea311865ddc73b96001a5291ac3e5fdd0dd79487985a0458e96e8fd2129edee1f22e8680ee0d1b86dfa0388151f92f8d124893a88bc10cba84cb0c37ac50f0f9c689dd5b868dc369563c88e97f15bfb1d3bc68e6c747777f76cd97df5e8dddddddddddccca24a54ec960d2fec1a49afb12b8e0e9a53acb4b42348ce39a794527637cf94b14ddb89ab00553203d921d8afebbaaea96532045b0a0d015a312ae7fcbcaed954f46cba54725a0958346e9bde30846a4c4ad9dddd1f3469aaa16ce8ee6e4deb339518bdc41d224c5e8cc48f7a1c1453f109f8c1c43f9565d2b8981d32a09861478a1774127537733733aa764727a211b52310b53b3aa97dde01abe20f17c5a2e853bb45d081ebf823a9fc51a82bfe1455165724449d5edc090128e6107d188a293e441fa289451613c31a4bc9b32fa5945242d38fa6f34ba53601997547844649656f2c486f3b0dc9f21cc4dccddbddcd904e06bca0a9d63dd4252606520a213682103243d870c2b9f2c708ddbd05950d655f2c7c664bb3d650c2eec6a8e987ec91a75d4fbf7ff5a7ec6f95b25b76cf18d30fc8fc9683d28dd0041d021c2dd39817bfbbbbbbbbafd969dddddddddd524a2947d822866a9c1659644b29a56438219da93a9a6a2dd0342d866a67ddd4d5eb9333c26432755566a0ebaaa481688b2abbda5e7ca3042dbd4d19c236a4146106ec58d30bce2bb1c2c7c0342b74031315eaf0501e42549656352c75b451598b250f9d0a3d80f56341274962e082a12e10fe6054087da8b087cad22a0b55e10902b1c6ab106b1cc033a8bd3b09dcc07135ae185584512d300a1e26c91a54e0103fdc40031654c840045f4e0f6604710417544cd1811590475691a56fe95086dae3dbb1f60726b2662a0c4c7b00c8b6b7d753b251a047a764efe33e9e51cae22a4c8fb34c150646c9fcbef4ede101e0055895ec7d7cef23db8e95eda6820fb819014057f2ba5b1f9ec628183ab87e89699ac5d5ddde21a4ef63ddd5be25116ee07cdcc75b631a25a5efa5f45ee02e61de4b732d4a82b034bd37ed90f9fd3ed679007431f7a08bffa0e3fbe8e2fce5e3f2edc36381f041e7416724e65b0ab1f6f04c2bd3a577573a4cc76222eb3aa9e1df0823bd0706189870753b1353bdce8456edd97a1aa3e44b1ded4ea7aa803b387852d72bb3dfb40eee9eee0bf04b1127f17c59628c0a94202840423b5b2014da09aa10c2ba13a5aed0ce4e65ed0d2abc01ea0a4119822b94e6e066cd3efaa738638c2190188305747cf0bca9e2e0f88f107e0646a088db8f3efb762a92edb77545bd9e1304e07ee49d2eef64243bf69bec98d7ea59611fbd459ffd6674ed9ad7fa7a2be224f3e049e0c28c5ac2ccdc01273e627049c30564acf1412fb830e28c2729b0411b467c17f719d9026180155cacaceea20a1982e3c36758d775b0891a8f51785d73b608350ae98183e74c880db82b414c235fe3212babf1bc32f1523a317a7843478e11c880cb100e56ba20da9f395e8b98e64dd8d0450caeac4cbc0d8f51e315a08583444c33e578d2c50d4f01593878d64813cae0176003b775e77555c15ddfedc28e2bd09081105e143184210185ca953ba4382308f66114bc0dc74c8f430095a0ded23f0dd4dd80bb3ca6e231102e1caba34431420ad3acf6edb4ec10bb28ddfde8d87b4b619f69599769da33a969b7e185b0665bb71f75fd0510a3f6b00ad590445da11a80800f5257e8091bb59988aafea2aff854d82ea85ab74dea45b9e52fe126957ebb2cc39cd44b078ba229889af032911832c14f0a80a408ea2bea75d66e39e228404531c32aa8bbbbabaa59fe76a3531cb81119794c648d94483cc32419da02475da11aa654de54e89f273858b7b21ad62642c0488154fb676576e058ccd33f2b035f8a83e3424b85679fa8a274d927aab44dc153ca715a136d8182b4f55297e82aaa3b44a7ee161310a562c274ea7ef4853c2318a5eefb27aab6a8ee3e1baa5bb3cda0b6ed1b7fe20f7feb58df1fd60e411d2885057f862aab7f586f52e3f9db3308a6c80a2a5e2af498c42581f229196ed031d2216198971de6a4188bd1a48d00d4156a024695170d1996785ae54a419c8195cc8d7ee3ba229e6e58c81c80302d7a4a954d279e02d120e2a995d10aa6a8f1b40a060316d4783589620051290b94153591952b8c3807e603ad4c89a7405a10f1d44af6d3a50a7d229e8ee408639482786a654aec0294c111abd02d2214a0ab88d8c6e4c2231404014d1bb8a0c6d311962d359e5ad1b288a756f06834aa8cbac4536d0a1fb09e18c6a808ba06b7803af10310f68313554647c4532b7068810541a993a803d0c8a7b16855709195eb04f1b4cae60310534be422aba36f00e4453cad427d687ac30dd915cd06d0e62371986854a9f11488d6d14a64612c571a3a10227ed984e22910fc006229102007f028308d0da350e85660d4131b33333397e18556c50b1033c6c47136fc8b4fe3132cfa4a132b683e0a8c5a813f62eaf1299fe39bdca8cccc7c89c0c3354d31b1e37ea0d002d33003a9dc4465d554665ea3f2dbc44264e85466166af2537bd4151ac30615a6aed01869605664a5291e6045044ee081937a450072c82d4ca852452057f0411009a8c3031aa63ca0a7052db8fd5ed714a6785a45f2005929a638c28a1637b010f16d1069d450d4850c272a30830071401210600e8c47a849169c894abc2601e2b062d5106a1285509328acccc896dd8972e1c41a3fdf5ea1c1172f9f03c6402308a2800e387cbe2c6ab2dbae842d387ed67098e1021fa9c90e5eb16287a0a9c98e01445930f175e745f16597263b7ea202222f5f779207117c587650831f7cc6420710956fe2c576443ab1402b4b861a0fe1103aa042cad71d8b91c5b74098997bb2165431d4022b78ea093b35c4af0732cc0e21926d5445fe6277822b037f3d0144e5cb965001950fbea165a7c667899f0f476e3183ca27836a4889a22f9e3b9c4b8d4f869826bea855a8d25246d197492d76eb45163408fab2a9c5ce015cf2f0f9b24b8bdde640065998f8b89b99f265f49ab229f605113c3c1f773f6cf864600885b2f670b60e3c7200c42703e6c647b904be7cce17e3a38773ead2455c131cf49a51a755d398826f0f07a280678d9d4f8629c6d7cff962775a459ce8e108408caf73be8cb5ee760e22d818fa1ade86b70e24aef0f96277eaf22d1086cc3464a7fd093257c8ab09bbdd56e5376c9c96105ec982c4160c4cb8ca871ba4711a8d18fb4c689530e395e94bae3254e875437845b6d004f83d431338df6febf6c396982a95dbb3cddb48634a2eb703d7eab9deea676fc56be7cbedabfee69de8b7efb78a3f51ef6484f4ed37a46f5eab6755faf61677d26fb6c31cc66b95be7d37222723fdecab7ef6cb5bc56bbf6a565a8151f25cb7df578a29a9418f54a10e5ccf0dc27226cb35a454f9115457aafc9e7636fbc50a114192a81a8153f212c29ca33c5a944fe2c20ed9da9047caef56a46fc3b183e98ea0daab8929791bee84e058eb8555c3977c17a26a3b4d22a56400161cc63b444e46b4f7571a3d0ee9d1c389273dab4228b74354d84a3d16f66c8a20043725ac73bf58c44953d2bb6bf5d0b7fa5a5ffbaaaf9d7aab7812bc10a65132ea5af130efaec5bd295d92a48e464e36a62e6f8929eb94d014461dac5bbd09b7224e52147bd6b38ade093e9e3b8c77cadeb54ed03bd1af56a7cc3b51cf481fe637f1dcfb30f430dd467a8ed263b4eb58f4d8cc12539d9e90116a928d6af2524c5138c823d70b276584255b20ab53e575a26a27aab2ec24d25bda7edbf79336f22bc8cfc8d7c867b0a109232875a9d609e194bc0260107918ae33a195849591e72d0552bdbc999591e770e05a3df02deddb5b1976d5dd8878a778eda7ebdbbd55e69de2b39336d2473a19d1be7d959d447a764dfb8af4ecdbb59faec37cafd26fb697bc16cc492f79ad9e158c77ea9fae7324cfe6d4271de637a5735e8b7be9305eab67c5793331255ff25a1b53db7e2470c9b224755786c555789d3ee339ea5e805f2a463b218c92bf4cb58651f20a38836320f2ca994c832e29655f946366be416566281b4aa91248cd174e2af3e4a0321d956f5347e52329aa2cc46347653e405d211e3278b4903480d775487f7df45b4caf89a60e080c44861c87f6faf2e96fe02faf851d9e7aad9e556b4d8f7bfa9c2f3e49549dd63b19e1c3afa087d3b3de0a9e7a38d8213d0e3c7ba7fd7efc9c6fbba531157f8ac41f89b7895f219ef64c603dc9af28ac367cdab77afa2d3e7dab677aabebf02d7a3ed69dd63b49cf089f7ec5af59c15f6f5dde4ce476387904a76534d43978d982aa68e1def892c3133f0421049411114f1977dc81031c18b15dd081c51b9f0c13053feaf86287236968838e393e1932a16fb90416572177bb75f4bcf1f371777ae36ba02a6820fab813d2068ce34a96281f772134f960861cec20fab81340165fd60cf7c248202831c310441f7703e02108e6e78918413b803206191807ba4819c11b4db890c1c366f1a14a195fec508224aee8f450373e1822127a32e5c78e18b8410b60c6105e3cd1c40d246cc899428e2a8a5e6007952f6e00a9161f10110939f1f9a9a3891654871daad343637675fbd16e3facdb2fc6799a130349980051638c5544a11eb244a11e9488314e9640d4f8436569d50058b8ba423d243127fc302abd25ae78f9306a81c4e61e014fdd67363970fb49ef5464feb4a24b601fef97c18d02fcc5437aaa8351c1c510b9da47b243b6f6934495dc2d70a7429ebac51453121553fdd8d1eeea5688a9feec36a636a6a4c7753c7010034cd3ef1f09400f1b38c8f1408e44f3d76fe4db6bf5e52fafd5b36aed5187ff897f3de7838740517562ef6464bebf9a383decade42f0fa72fafe3c84fefc4df6f3ee77321069e4db857a803775c88e1ab8929681353f0b2e374b8fd58353705900245952f9f0b3105cfdaa03e240ac2e1f558143a996cf4a0061c95dfab5a3b5460840d9638428b38883eae361c1479d20007221cbce4b0a5264192c3064e45b6ae0a20050a209d2febaecb4a0b64060b8ed5456abc902438d60e21d90f3ec99c25d0c039c12878c804095cb8dd07400818dc7eaf75d984522a54813f448e6671dce15d88aa059282871d7920a18547cb071f4354e5e8287182194831450b30ba7cf048a22ae7090f6ea8a08a0fd0185d0479c28927c21082e20551bef865cd685f3253e5f533290e4ecf4ad33c1ced1b65209292b28957f7024e853e75e57ead75fb65dd7e4b662a7b14facc2f19901e385495bb5eac8a7af28a2781c4a89099977ade99667ebf47310d5f87eed4953c126865e241208383455a2cddc14926e49567b093408c8a870762020e5e9141d09340ecc353641418250a8c03408363492026249064820a10f200218fc71863e46668c0c118638c2cc4239581f8194440ddffd8a0c0da9ffdd9a2b8439519c9109b8eaa3620e0c1a19638eb3531c5e799961aaaf68c1a1cdc8d53438466184936db0e59c8d3466459e9d282b02d2e1da1264404d161c416180853a6c8a08d1996d022e5835f50a1832070f0c9f2c61851f420eae28e30c68842e78413a0095b4f38c1c4a6134c7c427642027850288281243850312d91132714c15159eb82a11aec1c26a6818ff9810390899919059b13749ed0846a502454032f358651708e6c313680a042829519047db2db8fdfc25151d5c25e617100a87b860e6650a3c7e27418b575afd401c020f02ae9b3aaf04b9826f1b0ee468f198751706d98720a1e729c09d21db287c776483cfc0823a852004cc18f463d7a04200095452bf4585e6551ba32f05770f12caa4233eff27749e8568c82d97a332b039fcd449589f50aac0c9c3fb28794729ca92ef460dcdde22bb02a7804c6c56040d8b3ba4a6f8059308a296482552c1364c22856c5c0948835e1850dc2e7c32276880788a0e7c2caf0a514dc0a9472dc81b09a3daafeca557030c0ca8251885819ee25aec328f094f3582653fce13787d5b521ec4322560561941dd2953d208c82180603034257e159dd067f2e30326e5539332441e4c30d5996a88195207638f1a18a248e58e2a77e608b2c569a9043680a0c0e45113538f124ca0c38cca881071347d870c713425c8086201e8690a2890e6660c9f2c60d433b7c790110cb021e7ab8034a116948c9c2eddeb4fbdd3dddfdda640b047e73e0f6d0a35b11207853bc4033318405c4c1b142a8fc3981df3384508a202ab8cae7cb674b3ffacd75b5f6a8478e2bfaeb317aabeb1a1de73af54e31e71bf1294be14326f890870fa3706c788a6ff5ac969ea2776acf083dfc0dadb9b9be6f6d4de47638f8ebcc6d4ab51f3b513989ca311689293eec882cb1424c710a38f8e54bbed4b836aaa2765d977792d750d935afa53dd3b8abf4adb479d745b5ed1977a719b5c7afb6f3b547ed2bfe769a5ab791b4974ef24a6f91b4ee548444d234ad480b4518b5bdf42c72a9a39b869dc3bc93118ddb5e32c5d4f5cd43516947e967ee97d9e4c0b57a56daf9adedf12ded363ac46f6ff1b5f8edab18bffd090f800a0ec5ed90ab2f0ff35aa3b7b067f31c6554d3c3a5df6de4f5c8f32f8fc654c38f042ea51f8e58775a691f7927f8d173be15e927e86d8f87dec8c3296197dfb7db04b826d9886c607ef3adf8117b2d7e767d12f34e72c53d7a706fc1dc0797614936c0a8fea9080c0cf61e1e87f9f87e30d87bfc86bb0fee3d38afb55f89d46d35b51708c5cfbcc7543f7ef1a3afe2472bfe497a948ba9de8f6bc27da6e6a8ebdb8dc8126539922513a5a03aafab23fcc1a8f9fec6548c7d64bee673d6398726b703975d3bf6ec4fe4b3e77c9a77929e94de6a74ec9887133ff24c9bd9e4b08fa96962d4946f61d7decabe1d6a5f61f2eaafb0f82cdb4e22450e09a330c04818359f7d34fa48dde83759f611caab89a9f9d6c6fd4c3135af91c005f60eb95852b530c53ac98479960775bf506582a9abc2669aeb0ca56651831b910c6774cc43c5d47cdc4e45b2ec2bec19665a61c73c534cd1da57c741a9d9a535d38ca0d4651adec19a692894bacfae7951d255b91fb87e5c20d353520ac2f0b8be51858de60618751d1b61a3ebbab27a61bfae6bce6747a24a3bff263e8be7fd627c8b8ffd667be6b546df8e6d6f619a779adf4ffb7ef47aec508fd7b4eb62992a12465d98879d3ff22676fe0ac3569ab71a79a7897da53dbbe6691f79ad9ed5e8f137f1a597bcd628fbf651772a4222fd7493b196448cf159c7859184a41bbdd49de6478fbfd15ef25aa46b8f246db47548b08fbe8ac73e5a65de89c6635ff1e8d7755dd77541132eea198991f2479ea665df8a643fdd609c04642618759db7224eb48f9e455e18494862ea3ad16f59779ad8b5df8cbe8dae792e409d98bade8a29295a15fd85358baa6b038c5a2fda77005470500749921d32e237ec225195f3f58f44d5497a97d25bd1631e8e76ea9de496f351d433ad3bc963d23b19a1bf7e437f5d5e2b7bebd2fa4962aa9130aacfedc0d18f0eff04fbe8fb69dd7e502afde83b75372299d723a5b7c23ef270f8988784d2efb7ba8e23bd9acfc6857e0c7d24fd2452225f2c80f5d4a7df6fdb3b1989bf7e137f792d7a6e8d8e8d306e072e9e9e8b44ef341f9ff379a7e9cdd9ddd64c3694bae78dc8a948e4ebf1abebd1c3e9e9e3c45f6f6f45cf1e0e9ff625732ce3484c3584df4d7a36a82e063b6a7fa709d0d62351852a65a8a89abc19e18f6f33213d1d825256a68f8a2a78c4a6faf0ac52431494ea961f0814551152f14254bbbb1862aa77628a6789a2e7424cf5bb285cf721953ecdd38cd7e3f5b8df090608c0ca3a8cea13813b6054ffbbd85bf853fbd1835462aa211755912832bd024d2041a9bb32d094a43253af5f805f96982a7fe95517bb05fa98779a163819191dfbcde818f696f6d16fb06fdfbc56a68d3cac996190c92f07033c1353e5e6940c22cf5d5c19a9eae1c3478f8e74247b7b27f87ece77647bf44ed03b19c932789c7e76e8adb6c7ed39df06e12f7a0597fca8b44d35b5410a15aa1901240000005315003020100a078322a168340ee518931f14000e81963e6044944b656912a32888622006198508208400020020862084c4f00002f0e19b0756d263758e2e4d005095c3e3307ba9b623e5eef99a04b302fa05a2bd6463e09c22ce1d884c62a06921833d168496a929b396b8211790f980d26e1af27a942b86263a4a8042775e011301b753e6fe30448bf0d0bcded1a7cb1e913fcea91628c1f88792e3347c562881a9d0a6a2b115b79b74d484de5717809dae70c4956d06d21c59bf73066e1b2430db3a4b034bbda5b73868756410ba0f2691706d5d8c10be770cf0a89d68782bb87517376a3f3e32d2fe7e470a4db45b152d38221798456e3d26f99fe83ed670e5bdaf3b43b1c30bf32118592e15ba3a0e47f331bda73fe487de4b8bb743c22b5763f013c540227c838791354e664969c9382b5f9173006eca5b1b5bdbc04bd5521865c3a3e8705e3a27ade9a449e49fac166300bea102061339697aa072b524528b40d31b6af04c7a56767f48049de9e3cacca76a6bbad53284cbfbe7153fa1492d3c90b6e8e5016fc43c0671b741206c136e754da9a57d1085ab6beaa86fc62358bf7994a4e6a164f8246c4c89ee343862b8e73b15cd734a6e3fd9f57cb04130a5c5da8566005b6bbd87fe1b88ca26e260bf6fe0de274b363c79fc3a8d91accf019ec825675b7b7076c6adefbecd842670a4b146ac6b01c75c73e8ca01e413419fc5b361227ec727550894102c7a2c8efb01297b82c3eca22073301ab6135fb47f649f051a42c2055ea56667a261b92992a16a0f3b82c22098254f776d6b822b1d67bf7c861f49eab1571bfd1e67f7f8e8a277d7731137c12e706787466029b19f55689f576e41dddf27fbcc4760131a28ecd79ccb7e279bf67b5b71fbed87add4c3d627ef3b1f12fd2d21ae41351083ccd9713d4170857afd03158bc439d92335f4dc11bf4e0c144a09bf8aa34a2a5f0cb0bbeb4339c21dda044b16b8b2f8d77c78a6ee762df834a150067eb389b1c919d806789d064e0e3fc5c24cff014727a2a9d85f2e33768f1915a2c22a31ba1d8ddf30dea270d3d2d88860c20e6223c65ed3bd9c4a94b9d9fc355d10ff49b75c15222e9784bfc7615cb7e266fd00192baf6063f148a1464c7062a1f0f7bbe1b6a4cbbe7680610a8b2d9daa65fafb2cf1e8a40e3c68a0d792891a62ac68c7331aac388d362954f5bf262484b2aa33bee77072d7b3366a3cd0d90eecff63cccd7e20ffad88107bae28082a00f79adaf0a6ce8875692c35ce54685f7611215301a22a8e6df04e999ea8db5e90d5af02b5e1e2ec301006d81f8c8aa130bc2c0dff6cdbfd46f6013c53003757fb3527272b6ecac744c7548ea4ce338f50f3bd12d7e6952b662835d5faa64a3fdf788c892406e2a8f171eefa11839bb942423a0c6082b42c9322601ad00a5ca3324041a687a701e71b4320bb7159e2c13a252cd8dcd26afb26a47e6f6220fa44ab63f0bf586ff1f525e92ad006e953912e4b1e20d2746c45ae5fe23d1fc7aaa6d1782e13347ec4fdc072ef2fc05eacc4dd034e9597ec7d571af0cf827c340bd3b62b60c635e2c05e07404bf86c691bd4a539bcffc36d35c9253d7226760452f65941212d86a1be2fe6e1626127901fe393ff0acf3645e9a598a0ad29dc1627ce4de9720ae2d29111ca5a69a7554f54df9f52a443765888f29af81cdab41811dcaed1b1ad50539e67f87125109b0927de0f980c43a4912110ddead04b86574413841fa95142cc6a6afc00a27a072113e638f98c480b34a28a8e3ef9c9476c6c01f1b45dc6838fea02eb4270762d1fff0100e8d6980d201723bc327182fd2435a13ab193e5a612cf5d151e9b369b44c799a2206d9a0193a501c66d6fcf5eceafdcb8682ff4537d8cc95798a6e702628c0a1a6b46f0ad83c725606f74ca70375456512a07fccbec3cc91485bc4fd487e36507724b0419051e29c7d90d43e50a81a76b4211b28819198343038885487665d24ecf1604cf74a087276def0fbe009176816fa0bd79369661669ccf5f344bc524ed40d623a0405ae8645912e8cb15f920dd0e97231588d3e2de985820a709dd48dfeffffbda01ffb1933f5a175c18534c9cfcfc791992bac7801960d6956d2c8dd1cc2d62db709a8d97cf7085d38de61498c7afadfd0546f1e8066fc946322e5fcbd707baca07b680ad5fa6c03ddd936228ec581cd18c71cd2cc90a7b2ef39cd671173f8e0d6d4f8427983d14712f466705cef529d5195c67e9a168dba32936b1327182ba0e77fde9a3b15a2cd5c9da18d4f9cabb0627620f894ee563387ce06c0f90b75f8b6fa168547e5ce2d54e6dc95b5419138b43d6dc0c3078ac6b6f412ed17eb66358e5ee0cc81527d8f0ae935e7838d8e63874ec2ae2e6f3c5637526cf3cc0687eb862f3f198ee7ded7f1b9a12fa0e8fc3d3e92c8afc89021c2faf3b4d579c96cea19cbd5e56908dbd4b244b7cccf16cf10966417f3039222a0a4263c7732351e8e5ed6a0421943da6908dc88f9a66938a080208144430b7bd7a142e019478f9695af9e00a9874714c5c8e5bfaa0cd1dc721686bd7c1748004ae28a894e640496547d493a46e678749ae9171a0d4c8c96052af474ad393969198a5f07b524e23cb87150834ef6861bfc49b78b3c1e08e651c018826053ba8f0be7c36006d792136fcac17b1bab1766fb510fc752f1e11cb4c3a4af1959c5b6d889642b8eb95ac430e0350beabfad0ddd3e05f0a30009ff45bf8ae7772f5884ae1a3c5fe189eb89f28f223862ae7ef914036a9ab219f5f81155f3448a01e3c8e07313b067ea0a58703a0021157bedf9f4db78921118e680e86007ee1a6464c71cb28ff23501ef19c4b61708035c26c17d0ca50534729f1a4672cc58402b7beaba221a8917e8bc441c23e89d03bf3a23eb85368412a33584b0877b1ce943768464e5748538920093aeb06a344d12ae0d499b271b140a4d3aebc0174dc3f80b6e33f13d14df20475eb32e80a5c08b763f2de782ef423f7177c1e3d33876a3e3ef5a2004b8cc17261f6c2f307ba54168ff2baa5d3ccb0cbc06b9994c95e428d4b345d5bab2b18c592f9424442c738c4a66a7a1d378c438ebc723bb0a7d5bffb65f8ddd31dda151b439f3382a224b8b08d455c40e3339f40b28a52407989a7bd2fbc382980952627e95ded3204c9948d7f6c6bfbaeb7fda2f958bd344ed89ab3e14e6c8c1ddc0b8df1e6a08b28b29657e26d893c7dc448076162710975114db59934823e558f6246a9fa66b6edf5455fce7c2d18e1b8383473b11c38afe18abb4abd68bb0fbc05b5a9fc8e5896a8fb1c39dc4f57845b0c2914486aa6d4f7278df3280b20ba6fb014aad0d3e513e87b0e783964208b3007d582ca089f1647649bcabf07f3df14296f6a812bfb92dd93872f7116a909119752ffe3c9ade5f013720f95c8ba6765f2cf0bf9b2229c13b1b811d0d67e4be9103f139964f6e194269676ad9782bc53ca026f679d9c2c22aa338fb55f5559867d0b3d8ef5070587793cedeb35482b7997992f1ed6f7571310d2265b10940cf21178d6d70048ef392d61eb22ce57381dca47d1505880518fe5499512ddddde4ec8195f12dca415afe41132a37d60216e0e1eadb5ccd917642b4a752a63b3c19a9b050eda11c087b7e342996ef05b71e63c24726a65fc334c6350d0655ca0cdbce4729687bd39b8432de44ab18f5b2d8e32e90ea774e601c3281bb131986c0168ea1af4c02e845669ef125ad15b059a40523109581f338bb6d55e8c33f70c4007c301f4d2ff118c8521514976643aea4908a91379e8673f691ee325354b03d7ec352bde4bc5e0004b400346bed9bf73e18a8e01e909d8c86d0895a1a4be6aedc008f5e2c5ad2546ff667889104e1a067db4f9295259643a154a556ffa2db77a70708b940eb1a1b65f05836d49e674ec8bb565828d9275fb38a341a0ce0e2b730f93ae61361782dc32d9d6c64596e66c8a73c54996bcaa73da4504ec1c249dfab02ec2f5e68a6c541fb1f2e9217a4175400ecc2d16f11cc25be446e06a1b78fbaedffdb07093752361883c421f671ee2491bdc95e36865dd182c53f997f78ba96ed01eb3d2f8069eec085383b930c30b8170e5e6a6ea1ba9cc5129f345b5424055636b9f9b0662675bd00346779b5c430b37fdf8a320e44423cb3acfd116c4dcd808389c389bc296d6419bc26acaae0a1c6a425499c8d92b3681c06e75945b6129940e9f40b2fe13982189fa67f883ece913144e3c847b25188697f4b7ca1095162985e8f8d51a3a6cb5ed08a3f9619c90c7294d0ef01c60e9cf30f697a85cb24a74edd94abe265352678f53f3817c3a9bfd0608c3ffef021a214baa36b09925c6d04b1910cf8e50e00349f4782f818adb26501432d991717fc5f6f59a2543df3190930a249047b4005f43030dd5c2049419b0943457996a2374318effb1d7ec676b3f8f14ab93043402e7e13c5bd0162a94dd8431caaee072bacf2fa30d12156c160296302bd085aeafffcd049a627ba6bbbe2a6231066c5550e0cfbe830a399a74ece30ad54983515505ead2a216e5569ea05ae7ac58e924245f6ea58e302d13d2567a608ca9bfe05c6a3b84f0bd6b0c7aaa0ac54f86aeb6b3beaf3fadd4ed5b2dc3c941560b9e6720194b281c8949790d45525ebc2ec2f5fda9cf08e861f63b7cf00f46140e42b2fa62069a688196a846338fbcd2729c837892ddb7e1b1d40e76a1a9d9ae1b827835f1e1825a7eac8694353c326d9863d155fb427297b38184a667b3d67ac1782a6574d881ae61cb615101c874ed953b77d5982aa0dcba0c185d874140b18f344ae58a330e9010a3e8234bddcd8f9a600c7d8114dd0744c94d121186fe451f9d2a4198d70dd6b022fd0c4a18a51457578ee3665d4db2b78de1ede8a5fdc2bcba5bbec6df02f7513638269c38f60f97e93850f64bfe2490240352290d07d00191d4a4c2ca1efe2da47b9c08fc1c7b0577c99d91cd7a6454d6feb4f4a20cd01216270ce6f74aef15dd1960a18dc0b8f107261a1323e44f0070a17d1907f7310b1b68a637f88a58ef254159bf03dbae71bcd65c70b332bc5bdf6baf6bf1232bff6d11490d12291d108e3278db4a3483703cbd200f9786aee558a8d4a8e51155855b783a9b40955dd3e30ba186bfc7415a57241f15a6276378a6a1586830d7ac09e45557326d5eef9cce30cd445774342cd50c9455435e4a2c72c1d9bc121483b46814633466f408f958e8055654bf42af25ace8da217c11cf5dae07a953007374e0a1b5e1f07f5809d543c503d8230f40bf5c974fb97a1a5060ac2e392886e6701adcc18156ff898f75698d30320e9f6e2793c4250e4fc108fb1fa89195c6ca5fdfc4c13c8b56bcd2dc4867a261e7b851671ef5af8c4fc8d3d982ef0a5a7c0830062657be0146ee598017f37e4c742ceaa1e4d64d29f820b6bd3b0cfb780f11edc1016c262aff517fce04de03eee2a47735e1a4f2633b0a591f5b464f8cb2ee567a16cd4eac1412cdaa7ae5c68a94991c36dcd9f7d251bfcc2b66d20ab3878c93d98617ea7b36975d7e986966982fa74b9c067d95a759f9971ca630020f4fa2f295b41b624eff6e03bcd3aaebb18c563e575aae5d79ced8dffa992b27daf9fb3ebe7596e6567222e56dc789833b6e1d774a9482ab425a5a93980a82b1ec5505511426a09b675c2a6953fecfff3545331206fcdd28fb13408a327d27b7142295fbf32ad15717d6dd69e206608bd4a00e5cc7e03f9cc80a34a9375e2414e5d83cc95f3d7029c1df8301ca5e36128c5cd4ec136d8b22eb02995014c20e4793a0c06c8cbf9c224a28320ffde116ae42392b22e9ff458d28324f48d8bc68e267f96e3234085c49e354195444c17f40e416ce0a18764274cb41828c5310a5224566a87d211d6d5573c8f107c249af7f34edf38a416b8d2841cfc252d9be90badcc16c5210405113158ca53938d33432dce9e0ba7c27d0cd7b5b20c67e3bc4ff2bbb9809ed95d442895bf4c117f2cee48d7c0e93b9f256a62bf80e7c28034263adbf652ec1445869bdc76b5d1fffe67ed907815bf1523d6e039641f4c9243b6dfee901e75237bd39df4ddddcb839c99fc17261fa83c0b91f9c53ab7572c8c631a5932543eb5312d93ef3857b858fa2aba593f30a009c6576aca18c3c824ec189f23ea8a53958d4c2fdb1eec199b0e6f1231f2506a3d917216b22c59196b77c9b9bfd7820e23c4556acec42978a968819bd02d89d3a633adb16d9b8d71d2e754268096aa19dae0284c712e0accf44ba433d75b7526d2517d5db61b35578d1ce710b8282082d617f65f920785a4eb6bc8e253ab7498d88e2aa224217f44522e8aa0f52848b04669a4319feb5d18502b739d0ee8c324371c236f59d7bc84b4545493d3d98fb855af695fbf1dee4feec03a9a954cde47d0301adb94983c214760c3146d4dac6fb05e429c7b9dba14d86fd401a43c7dbb95f630f33aad0788adc4cf9b48ae5e83c8cbc92f0425e7a0e82bd4fa0905e3d2f9b075878db8dd7f06304a1e9181de2c46331bf3cec000ee75f389403cc4587bc3e492a4a90d3c32ec7c41ec462d6071bbca3b9258684cd1dcad50629287c932d766c69c1014f1c53c92a4431b0fc57d1ea07e73dfcd2e1130da5b29413ffffccf1bc2c2a5e0872e34b4c050cfe2b70f2c7c09dfa3dd0e34582bf45e8813edd172259a028fd760963fe777ee71bd6e339ac7e566d6ae47d86ee887b5f12010b2a53c70aa88580681369f34f339fac18250f31a35210c82acd6888609cf9699b81bd38190702c687311aba8ccc392c66d1ce6e5d6e13e13b4237e4de29b7565149c5581ad1122c991f0da636d876a302d28060cfaa34ca77329c99a9110a53cefde2f50e9162714c936305e17680616a98480999235017969de061628c6be18a0b91703c2d3d75b3e6a00e9e376712b29c451f7fa993d81217c9213ad258b05ac816bb3fa4c7be293bcde16015ec7e7a27b910cd469e2a26174d36794aa2d9ffa2f635921f224f056b690478fcd85f8a733ba20001731079697e780f997f3d0cb8421087222075ab989e8ea7086dd649e2d19b181c58320a440444feb29c3ef1f94ade06ee72227007c28ddc8e650f592055f9b077d629bb0c4e95a4fe15286ec16e0b75544954806bfe606d65b43647490af1eef01f2a0123682a2a647072b9571d0ad1ca2f2e924bab64b602f86b07b66a7fba50342a8c3cca403b15901c02037b9f3db1073c0c18e0189ecf628b1b14726bf6076feb4fc8b954a581cb3f93836510fa6ae9b67d2e8a917fa248544809ff2352b034efd9a5d1bd55a166f12239c81c34c1f78feffe0953f6fd4e15f131790e4830850ab1f84970454964598e9b30166b55ad54c4975102430cc03daecdf72efb792348809ab99024c11698720e44ee1f7a9d89a181891f59946bfc2ac1d40317e9550ad7427bf6bc4a85911c6fa746453c8f8bddb66923b05eafdf824c0ab2f4fb701c34cc8ab26b7004386cb037ec26e650c586325898fb0ac626aa37d045cb1919296d798ea20392da9661c1fd309d90dca0165db912f1b29f94ebd6054fb99bce51b52686686f09eb98847a08167e1d4424bd99b7a7ffcce1a274d018e117d6c929bd50141f1dd41158ed9aecd1976acc6e926061fccb5a5e77f57352c244d5102574bf8c430a2b7745d4353e897718de589b439f3f0697bf9956c9bb31153b78ada1de7b8b3fe7bc101c83b1ca79b737e185aa8c22abe74acba3434bff0b4363f5c2e8212f2e2084260ff7c69c890d04e959a3d01891aa94de1e8568130af0d163cc4e7e5fdbcd56ab629562fd10d287abc1261fbd320d1661f42151db3d78b256039f1180dc779ef125eb4d74d1877ed7f9eea49cc1ae5d6219a1b3ce34329ef465a25f7e61515ddf1905e1d254274d5a4a7a3bb3f92797c142f6c49595bb48fac0e7399b95ba441c4fbce781345db23f57837c6ef6bf42f2060efea183ddca073ad87ede752465d6f0cb1af2470cb89b82a8bc8ccab5211d28f8ec8a596640b946ef403e32bbc3fa8c1b8593d8bb2de7bb879a7a52757b9b4dcc5d47552d7b70bfbfba57f5589fee9fb1686b2bf2c4bb1ba8b6f124f797ff27330ab544fc6703d8d6f65c24bd6dd40a5354797b2196e0b8dd6825f0d0096bc138702978cf94c78ac7f453739d6e377b2b909590705b51d71d05c50150f29059289c48a02c15e1bd08305792f9174ee0c42c397bee0402d4f91af82ae49f97687bea81463737427d1237749a847be2ea48c2a2e78de2e9117c7d83b72be7ae98dccf0a4f1c5c44c085d1e029870f3469b57c9ede271f0d152ef23df2b4908eafc0d34c1c5b3184cb43981eac619fa389607a28cc041e3216805b4d37fbdbff780974c0b7f34bffa3a091a1a6e0538af99cc0b4eb78d35bda8f009208f1fa2a9af7211215e5d1858308d5c2df9420fdaab4d6a9b39af2254d543aa3e4c9af331a43bfa7d6e1ce63f35eee361a00ce1dd53d11576a31889e9d31eac2b0a80a5366b6282941ff7dffae70bba3a5c2c4c05ac6f46552096e84098293ca766e812e13a0952611e887357e121cf4845732af40e1a42344c82a2baba27398731e0373721ca0b4690ebc4e1b822a7db3b50f9f7b20b1cdfa623c444d25628af6ed97aa28e04055be263c9f80aabc8b8c2d1888a359cc668b9eb89ce677affc2c7075cf891f46c11f0e749075dc6195b06d98a343d627f56a2178fee0a778092ecee56511c09df5518a8eb4f97502b96167538a6ddb7f880814c0dada0acc53f70a776c114b9505a2a7c4bafa02cc8d4002eac04feb8e482aec75245a12af00e4003b6d3aba0df7aae446a924a0e54d1a1cba927a80c35119819180340fb9452cb90ec5fe7024c221c31d60803e9b9c014d09ea036352d159ec34fe974e6f7861bb769644ee0d23403475ebe1c2931eaa60bd65a8321710c625a38a975758b326db4e721714192b0d391647e16c2b659959c1014b92a3ec689e4aaaca9b11df62607b6854bcaeccd43f9dcf64da9ad71f7e2581dc9f30670b38451bf2babe2bf4dd3b0916f9bf24542196e6e4a0886ea0fb7006bd33424411f3bac7286911978cea64edd1589559fb730fef4637a1193b34e5a7fc180f958a81cb9a3e761edf8b6673ff6525dd376ef0b8dfd89e78f07465bc61021006bb0e043a3c787ab00a4c60289a1eaceea9621bd743741098148d337e7a5668bec20a6af2a7bd2b7e6c4bbeb6aa65383f013d5f6bed0c4fc1031e59426fdd88974aaacbadbf89a44702173ae43a2a8e94c45045246f4ebb662a459ccb42b52ddc051e32dbde705da946a7c27c1072f0a0c284ca626ef7460287d4ee4dc512a872153be854b0cd0416d0ee687bb0032d6b3ad095da8ea026bf03fbd023d1dd748b6d0d28b22b52e0e9d198242381df228b1635d941c8734c268a4403d7d51e7fd4279c7c56f461faa8ab9ea416f72bef5df25b6387f4a96e3d892deea6528c6d0cd78874f2aaafc9099121dd26bfd01d8fb9c190b37f8003eaf73f8334a44068a229f412e8a559dada1e2eeba0043c7ac3954e659634b56ca12bc00a13491ccc2d018a513101002688c3bcd14c3071240857f0a315ec05e0f8a72848a38ccf48b515a84875e20b649fe44175026f2b94bc9d4be070540c4b7be25d0f392d9c420c1f0f58a4b8fa0277f717fa8ff8fede85287e4a77e6ced3512e87aa082f0a7d004d46dcade22aaa7d826ee0e10882bc452c03f033fdf1f00599a1253de58a40090926dd95e6e8577cda936bafa3c6b5078ee2da7ba00dd79ed4bbc242e043968006713c4820431885e489b6b30a50f16d9721f6f5363dc112d37df5956502c01ad569944ab459f8f864a9c050aa59d048f5c631484e5c2847ac1fcbea9af6b78f97e1b0ec00391456d7c642ebd1386478e064eba85450b719ff53705c040dd2f6497bf6d7935db74f545a19e024ef4eec904d81d753024bcc34dbda6d722f52b1fd79804e3ccbbdccc9f85bd6340c632b28db1f42a0d8a50742abc9573f7950a821fbd0a2c5cdf612294020cbc6d93ba1b3ad4c2d7b0c2b28bb0e679799126c953d168cb51f54629c8112abf559327ef5c8a3d1301813248fccab7e570c55b97b47d1abedc5bf913d59a8ef924164654822cd306e9ef6c71abbce6b65454e7e9e0ba8474d689be8e416f99e136caa9e1b5941f3f3c1797480fe3bb128d2efda08449cc6dd4c38f2bbce96f286545e86f8bcfc6c7e62dabe72006c120067fbb662a595242dc567066b54f3b2767b8ad0c15a67ae838f1dcf90eb0888d453273ca719a74241845c62aad454535e6daafb7b73cc1295f8a4a4120112dbf1384bc1b63b770fe8860f5ebfb2a336156904814daa586310043e9a147b0a3360b1c9bdc77886f2888b4f024e8ce9ea7beb08d170814047e71315ff1b50927a18a92602a1a916aa090d9d14c87702050d6ae863d4dd23e910c140ab4ba8cc3f50483497cac6986b910e04f34a2d93f18e7c25c517acaabef0a3d4c1abd5ca0f0d7a47f13cb6d4bfd3a0b5cfe5852429673dcad3da48deb4ddad4045016bad33a41f33aa1f66df8aebfca8298146d7f28fd7dc206eee1f95fcf72637bdbc881ff133c8ab4e6beab5c18a3a6b7ccc068503e5b5e296e85cb7c41b2edb889d619a1d61f694e2f19d45a5f2d18fa0b45f64ef69a851a56cf6905129de17b3a71c8cfec2834ac584526c40a5ecc0d5a4ee74f4aaed6ad000840e83becb33d03cc08151864daa636e55676789eefaaa5c510be7fad458a5ebbc57996a797ba5fa6b18723b926cbf6bb5d9c959a8550161607b717defbd9db66adbd4ab366b971b5a62105737e05964f0cad051f72ab35073d64be9fe03f857cf52ac499df4551b4120a56c36531dfa511e6f1eb501aea14e7ad58c243f6c6d5619e96b1f6e58e3c330c026af63ee55666781fa6794d595d1de2829ac63d6e948ab560192b50618524624520cc96b5be8d566a700a28080cd68ab9a80c25828ea7457193ea3c0e4a94659a7de04e881695aa774556704e2607a5b15a82c5dfa799c153ad1aa59a01cdce7e06d933538d9daea57cd75e5400c89607ddaef06ccc74feeb8afbae514cba3d20cda7f58aa1f83254a98c9e9d4adea8c2861c41ed596fd0f8758f5d287450da3ac4edd559911c5c0ff51b61778d265ee9f0bd7804ed5572b435101bd948f658269e745b214ffc227190c2ce94c5321e688154dd745bc61d0a949b825700de8547dd5594649046a362f2b221002c10c3da00cf8893bf4566da6cafc32aa769d2cdf328be113d241b72ab3abd8df4cf9e2a49ed59c1d4b985274e8bddaccaac69ba6543f0316378d3436910e37d55728bc9eead6c376765d556cf5aa5d4032305494fb4ecb31108f6db5bbda2cf393f294c43d462c7944c7a0a193ab6a73caf94f726019bd3ce64fd0b67a55730d0f3a3193e21c4869d09cc12cd49156ad82a33df27419c7d4b3773052f63ee12c772aadca2c8b024a0458f9682127610653924ebb559bb5e5df1d59150cdf5902d73fa23b50b62d77d5e42cfc0ddcaa87ed7e60b05d5f55105a25fb764edb3c250bd7d6d3aacd82e0f99a00c68cc82e47b88ebd3e779bbb5af35bd148e2a25872688863fbddaacd4e2eead2c96f74b4b83414165a3ae3aa3223b89dd211689ba331e9426350d5c1557dbcfe362d3966c563be0dfcb2ba5e0dafbce356a54a6537a1629b23959b42632b74d56684607e1c7c6699108a6476ad1e27bd6dd1bdda2caafdfb4afd3bd87d97346e221d37d5b328bb25d5d58c9d724baad84aafea8c5808b68db10c6d90b50dc341a9934b35735066db4095013f8fd9d96b617625fcc475dcaa543da4b9f23d7a9868deaa6dae6acdbbe712c0ab629bcd4595edef579b9d6bcda2a0ba54acafa25478e53bee55b7ce9b00caae6f6ddaa101966bc286f8063a74aa1422e229b62861a0fdf34ec9c456af6a2e3eaa06d562c6015583d956f4d56604fab27a1f67684baf7a380e9a3ab9abc913969354952da472d5b5ad5fd5ab45f516c3bb0c40b7a9ef30669d0eb4ea13acaeeb39f2694c320fbf4dabee8234fb9f30a766f0d5706dd3aba8e8586ecfa10c922a37b7c9ce3677d4552d22d0d76c511c5291aff62ceb18cb75d0aa4840de144003502aed26308d9bfd19172016bdcf6291ccb2ddc193c192430502cf2adc4f03ebeb03d9fdef2c8554b1b458b65210c5561bd0a978b5811b401deb5ab59887042c9ac5047d9099f751f3d7f95246b47eda8885128321250dca54f0b9ae20fe31a4e0a80c8e16dbc396b323062f6cd63e68b3269da72ab11df5c07c00d3109b12986abf8667ca02d4622a4dead641bbb3bbd3ff03b0a81c1cb4a60c16d728f4215b1406c46f2f0d066f7884c96d664fea6ddf91ce62ed1e5220c9fc0ee0dfd05c46b519b45e0687d0511f44d60f093b6b11c242f80aabab8af10a10513c8c78b5c84e23407403dd22ede9f66ced71c2700fc07db3bde7980fe8ae406ea74bfa761b515ee7d749018a68785a1ef361f197753f86c836725a1e5fc30c5b9d874e921be6355b16029dd4abb23d975c200f74db6dc90af01712c819110179dc63b75b3167e97256a0688a82d03b2aa91fc617891be6c7796727ce0ab4ab2da4b0953a9cf75b9b337993b0c90f5a82687fac15b817fb203822e714151f11991e3ebdd39f05391fff517a8048ec7c0d8a4dbd08aca9098ad372cf514832429cc2abd8f73590ecf66d8e76f62f68be4dcbad8b15cd8f832599e41433119160858ce14a75d500a98e76c91cc2550f2a2615c970424eec63ccc37482f7314643940b04cca143216f085834b9f419d81aafdcda7eef77ae6097d1490aaa2230b21ec6ecd28273f76423d511a657252dc9486bec1d846263f890fe190434d3ec9499d83211c368492338ec59038173f28dda03794b1f590884fbbbedc17f8f1774c2e4b4614249f4ecdb1bfd507598b34ad739a06e97bf3a539a0de31254b27dcd47e99a78263712602b148e52b7d4ebf7dd747478f460394dfac2dfb90efde98c3b6c33a5b239a31b2433e53994363609fbe08d1858b9fdce2e0a7c5e6505678faf0d9a9c6e44b6050cf40efeb2d9bdcc1567c57400baa21e1b45f0da295ea909670ea3b639550fac675f76021803b3a548e7e626b1c1e9662cccd3239bde1813093d0fa2dc7eac83359aa8084ae63f582280a4e107c7127964f7a3a297c7f754701231c1f61575f8dd22b252e2263593c13f88dab1a51544ce0fce204c811e7f7c9ab3e042f51d239eef9e232407f6464096fa6159f007d8abb649cdac99cb9f780f6fc73dac13caf54dfc94c53b355ace5d66d60efbc895a57e4c083d04534258af1c881d2edb9f2a030ab1ba66bd08223a31090c907d9492a21ef205b0903ce570056ea87ac8dffc7d28ccca75d4f068c0599b249bc3a70947369aab37840961ad11c26ebfaf88e80542c46a0dcc58c39981013a03f0eceda8778def582b049518e632e7b21620d01608d3a65d51917aa5f67a07665d9f38366b56cf8ce81f747f292011436b318d6ce2089a088501e0f0687d1329f6d3fe72b78b23fc19bdc45494eeaaba45e84ccaf4a05887f885d9a585c35cfb981ebae107f557520e2b78d4d4761d98fa9689d371e5bcce299c5062cca97fa916c287b3888d5a1a645b04338c51102e82e14f042029a61910108c78ecf30f3696466ac281943eea0dd34c14d34f36fcea6bf565e80342d34ec3085cc9a90044ec4f0467221d4bf3ef1f429d8b04291a77e5a3aa2b624420a73a65dd2fc31ca978f05dac9238d4af46ca29f2dda13e365b4775dda5db7d62e3a1d46f95b30e24118ab09bebe58530608319ab8792e7e02c4ecc5ce0d83b6c6cc8fef5c08c6ddf20b72228213614714121aa6297cf44cc67b485254ee07160a962baa0cb8fcadf90e3bf93c6ae08d4b761fb46af6a8f87847baaa23101336a68a4c48a0e14193650a3139d548e02b2505bd5dccb8830c582bf97f1201d348c4a1d2d13495259266a16e3c574b9ffe6c9958e013e3b1a1b1a4c9f6ef3a7a9f61e1d6633d868529fe7bc5ab300a2217bfffe0578fc06ee09d6a00943b1ff78f88f0cbee1f619187a06e14e2da8743098c03e500fbae40bb539e820b0dac7dfd2be5c0098332688748019f72d563bb5e86740a48693184ecce62d02f850bddf54d1199411b3e4f20fab71cf8903245e373cad1bb3de9801e03fd6ca0e41271574bc06684460a5526c96fa4c8f70f863a908587346e58556314d789fbbc7f262f6075897985790847da07f7b3c4a817dd055bcd5ff61776a2adf51f96fcb46c583c2d4eb873a49bc8d00026d990899e2ea7b2edac0c35d0d7b46e2b0d0ff13985f8820a695d9ea17dcdb057da686eac397e9e09e8c2b9dd9497761643f888228a41b2405091d05e4bb18ffc32fa03363afbb46179e7e8f13495f5c5c10ef6eddc500b1d2c897395ca43c7cc1ccb0a650a3b0363a85515212b2b648711d7e1c2a0785249e54f4794a8c439a3f60bf3046c200a75d4456aa41aa9030e21493abc7921cb8d8968b2ec524f910df60fd2b5879216045bed3c063661873e4de480d49e818443065bb6004d4c455b417a877d9598d1af40142b386890fe08eea787cf74193fb5fcdd53e4d803d24460a6f5cfb340fc38571a4876a350c70cb99765aa24ca680997a22f9bbb1944fa5921fe242b6c47a26c92bd80c58842fb6bd8cb3d76d87cc176d525fd42133834bc310d8ef180aaaf86f70b2526974c8059c090d9767ba08a78c27203d45885ad95a2553bc0966a929abb2fa90f788a453311fb46755f5d3b9dbdd324c9867356a0b3d4971399419496ca543401047bd5106de4a1b28d1ceb6368c42c308d8929b375e457f41f0df7b392649c91d712e437246706238ccdcadd00a1223586cca16d93a243716c86619296d107d4eb2609cd3e2c2406f6de06f3a995bfe9d09718108ebff620457be246a649bfc3e28fcf614d211c9b502d104386be4680ed0421746848eed5d9bd1e00aa572dcc7551fe79c6909d39190cdfa42ebfeb23a04fd2b81c9b9d9ddf9523c6d51316dbb11f7d7d48f4d7fbcf44cecdfff348412506f191c913c8201a6bba0ebc03222326895dad3fc724ae084a0e8a5ee2e77e01cb744573f8b7f051fdf4d0aef2accc8b10868ea14d630055cf74bfb9f4347498625987d046ff9f3272f32e2ad8632487158715f2c47b0b14834b574d04db9fd800313a876105fc92e207cfed2088770607f51aa7e090ff612991ad43d7319b66640fb128bf3b400fe30c27d5cdb443590f9c0e39fbfc8017a872921a43967e48455c189ddc2165f5eff32977958589d3a0c7d5a7096b9c0bcbb5b902b9a3778d7da7c09ae6247cae00bcd3b0686a0c3032e2d4bdd9d250cb8656e3c3e8a85ba232396a195c57ce0329607ac38a72ce421edc1ee1688876369cb5b8dd1ee55209786324d2274d59b24fe4ee70cc300e851269c96a7aa9a5e255bb34bb93cc5d36dfd035b5406e91d6d920396941f8c797cca79f12778267fcec21ddff4ac5d22df9d6cd74dc8f601b20f189a909ffcaf440d2ead02476f7c0d20f50706c87eeb4d8fc105149e031513da80acbfacaa4febae7da1ae438228626cf7be27c1c71396146f4b9791fdc7fb71baf6984fb525121a1ebb703dacbd545ac2529df48af939a82f3b513c789095ddcdb8c4dc786f7238421d50ba16d1cd5b77dca428d955265ca9213bd95d2ea8f99858b79d7827900d53292fd99a2e2711ad2be7cfeb2292e4e909da7ab9bbb7fd1cd2ba3675d68cc10b482347fde14cd93288b1888a74d8d762d32fc035e3dd17c619687a201135b3638efdfa03515240a77634c0ce49a36c8853639ad0586c2503010463aa5781ef222d327dda92e03b544639bb0bfe518b4810aab5232ef5015eea0bc5233b46e465eac2de30b7e41fcd8c6c8b39b37f31e2baedd87e46f5742e22655d34d11794113f18b81241dcce086779d83f6bfab13d7b813926c1499effdf26b7819b16e33a7dc4b6d384ea1a1543844324b20b912ba916b44bd4c1c67f005db94e6298cd9d6298f3124e0c18cf0529770ec23461457fc3daa59e444a756d2556cdcb48fd0a6ae42257d25a60098d2b094b7b1d860a7c40ba01e42e0730f37fb2d26d4ba25e9caa22f48b70559fc883597ab509aeeb527c6005a58b5888b37fecc47f9038937363adff87a3fcab9982119623256b00c587aec3000752c56a6cc0ea029cd99f02867cc7aa32cb6300fe0a715aa055f457b9a96879548c66816c4c94f6e95e901165cd66d67444a2026efca5d910aa386ce3b98fbdca3b63d30ea0d560cf6efd68f48930ebd9afc94bb164a2c21489f6186f9aea986e9032038fb239f1960ae3b398843f3b253cfe5525615e7d93ca944b8ed0138c04eaab2c62c51d3cbe937424b669bbe765ae2acf4f105db381fa30256bb36a47ee443e7260630eb2bf0e66679afb4938eec1df8fd2675327518b42eb5530ecb58290d8fe02cb6e0eb2f03bfefedd85b0d028f27a1966b3f11d58db374e2b6358cfce8e2658825705b09b3d5a8accd9a9b191f3f00a6a78d60f8e2e530894d9e68b490da9b4d6bf9a1c7d8bd47a8937b47f63187b7191f4ee02b41956ed916725307d6768b87c2b7c97139ea9afe964db9967487929bf55cefe237bb223bb96c2ad381bc662e572ee6ac905a2ca6e8ce7372cb0af555640b9a079c09c0cb07e8b4f182a508f335be3013b5a614ad310df8df825ff2c060987981518a989259f342628df63d65436924b8c6ca3f2eea1240594e2ac938aa7ef8ef7d7d34953e9bc21bb7787bbc5afa68277f0274705eac04e1112091760c83cdebd34c6a29840ac41040da4f8daa0d9f0eedacd0d30fa3f8565c87b590704ef34c1828ef7da7619483aa418ec16a56df6e93ea51f7be4b6d9dccf4217d15e34489b7807c021ccd54da8caa471d9ca025c7384c9adc44d201416e96922893ec428478c3aba8d815a83d4018e367af6ad6bfb26e684e7508c4d0d990dcace5478aa475e78da0260782a80e232f8166bca29b1c3a3b9b95c27abcad667f70d0ebb04f1b4550771f4550fece923fae30c5dcae04823fec34c95ad57217e27dd172ad683e0cd85f8a75d4873c7ec30efa8644113d98cf3e6e2b356ff8ac9601b69ccba82e538c6ce9870c485878b1fbf0e4e1351197d189ee8468c6b5bb7ca6d87faae6131fcdcd7be09de7d2a96028fb6c80829d895ffab7c00cead9fe3958381f453a6f6aa02c7b945a8206ed8a53a904e8d980224049a72b0f8d4953c7bd236fa27c3695274f7b7e02a9c893e6cbbeedfa9c7533cbd91fe94e1fd0c59925c74a92ac47608ed0a06bd30f0a916c0070499833de6a77476eccceb92e24b94bec5c9a2f46ec1893cffe06e0fc495b5a1265f2a95b68c5b7bc3af4dab69de8cf9b8e8c0bce5fc70516e9c6272b21a764885c6cb9fa50b59cd19e3da9b5d69339ab1b16a2268617deb3283bc537cd04395185a0ed8dca18ff3e57a9b3c4278566bee73b30c3ed692d04b677f84500e93c0ef0759990d29be60abe28d52552e68ad6188e55b108483e00bbc1b39e032204657b675fcdca802ef22e25f4e67d3682ebac4c79346d84151dd2b7b6e1b3b4b680f20b843ba808d8c2139f6a7118ec38547d68c0d9ef44700750eb8d0ed8f0ee55a113322c5ab835d7fc3e274a8e150e1e28789d84868ccd49f551106c5022925f387506aada0a3c9f0f1edacd8ffec4212757cd6c6be639258018aa7f52432cbc2e6f27f6b3dab14f891ac2eb671b60c19fa50684894c5abb32321860ecfa1b744de775087285360d6dc44c14a600214f9b69c5eb08d83127181983515dfd65f4e82430574a9fec1852cb31d3cf112e83e4970ad59ae6bcb3bdf306658ebb6ade93260072dc1c48e0e813c2cf255e310b4306076ed0a6c2612233a4f9b6f0daa535afc9a960afd91043effe9f63895fdd0ea35c59b3c25c15090379d5ca9f9e1c7a7eafa9d10116fb1b8be52af01b995fd27b9db1237a03d3d6b492b54e31906beb17ba73d264802d97b1099c08ad4bb6680a636d2e1edfb8cb62970392fa570e7fdd0d5f17d187789c24b9fa4400075de1dbf4b69070f556708476c9e2500be456f83dfd1e6aee7b6cc596d8db40e613b40a7e4b8ba6db0e62c898a27addb3e49badfb583438fb4cdc6dbe27bbfb7467eb645e9635753043b3e84be2a586e74e2ef221841c105a06594aa01246873713e0f7da80a7b3d9f499cec324d26f55814d699e2155ae76c0aad6e3c9150b9faf290cd9a106ed5f4cabc726d390742f2f1e8ee30f5c4cff3c851acdec29608bf80b43bd7685fb7aca7acc3625e895c3c681e76af4144000a95c9489f17fd38d0f3dae43f89fe9cfbe179ab2bf152407f207180e7fe6fcebcc7a56f6ade26b23e205ffaee3a374720524a8f698909c97a51dd3bf7ce518ca38edcb14760b3237dc176d09ad22f8ffd1506b5c382efddf436975f37e2b43e25cb6f2a1aef780e9a53d17a26be8ba2f7fc60c2a8f167a232955574ed147dc8426af32ba579b96e4c5ddf70e691df635d5bb42938e268ac4c9f4dc608d897767863eac4f5db02fe05964e5bc975e246737eb2b453343a2f0c70ca6763d926623a1b74478acee1a6fcd23688ac6f8311017a0bf2dd34ee07ec733d59a19b2a73ab3a00262e69ca81bfad2e69f3faca4c1fe420c919f1dbc1fef1bcf081c28556e260dd9a415fc9beee4789577dacd308c366d99494dfc7cc471aecfa1beff045f10dd64b9e494253a5589b0e4e9b83a6090204b97eed87230dca014486da2c873aaa2e15ccdc0ac8f3c296ae15f643c588faeb97882314b25e1c404aa55f297bd0a8c5a6189ba2c8ba3621324af50bd58442760d2dd9857f14102ba464bbec96c0babccc98277a03cefc55cd2214d590096b8eb59486324d18a200553b3a86ee76ff5c29e68fcdb0cfeafa5e51446a061b365ebddac85a47adae668f25fba8343e2d740f25a1548d3783a84720f03d4f144df219d5f64203efbdffc4285880bc5757028ad7f29bbcd83bf7e47558cb53ca63feb36cd1a61ff44809b0dcc70164b07c4f5113d80edef40d90a5ad5233593d80ecbf71243b739a49354898d6203efb7e0074be361a3dd29a792c2803c0efc44dc2fcdb53f0c74be8d3b9f5e96dbd951d842bf5cd0b314db81fdfb12043edd66e50e84d83d29cfed8f6a94c9f7fa4f656ed509a35089277c0d656b0b21754904a537b866599bd66e268ce07c1b11a8c79435b96e9a86e5c88431411adef0640027d3f3fecc8ac987e2a08fb8ab9d8d1eb0b48b0619fb061f6e6104dc6d771150fb5431dcdde7678731a2d529eb36c605a50b8725a824b90c6822b03013bcf198960b880a330e7b9d9b0bd59723cb8b1ec87887059ba1095165b0868f623f79e58e31755e1eb40d8910fc2a31997c8996455be9298946403b8f250eaa7635c59507a90246d6e49f4e1291e7d5cea85beffa3336abf2aada076fb886ee1b0085811150edf188974e8fd36a7aaae60ac980f6fc664be57ca05d1799fd91f9f733e59664e1c99ea55f132de8bcd4b3d746140c3962dafbbe80a3d102ad7e2da10af1b25484753bf733d4a84a73698c357a4128a76026727e98aa1630583deba20ac0d3c84ef4e68a8c7f521c93ba163ba07009ba0dae304baf87c024a0311cbd0050f1d7768746066a1c27341cfc78d42ce7a8803547bc6b17594e2fe29997c8220b3c6ce8e3271e2cf9e093ab5362465a643d1842e18b99ed74db42242a138ef07c82fc54fc294fb76c568ff2a4e6b1fc6776305fb9121b821775ea26fad4d4a1036a4a3adb70b150c0bd9a80af0d3ba023eca40192c4c09165b75c76d8c092c243428984cde27709afb860ff7790f99941c8643d806009d753d33a9cf4e4ba60aa2d24084077c6de106baa0675157f9a3eab8543341b6835ce38b47efcc52671401554b7f3de60bdc27f03835cb2c230200456c4e4e781b1a72d9d12cbcb9073a9c305dbbc62cc5a83baefc3e564df6441ed2652364ed490044cc60bbb70789c3eb0a5a4c44e960e1c39c984a221340697e97400fa43728b3249eb01ea6d7935723dbed65305352dec36b0d1abc106986111066b942465784afd341738f7cdac826cbbc35d93ce9b42880749530a714297e369773eaf8abf1a6f524685ed15918bc8c9be9d75e3c7a19b97a2f1660f703aa43048e74e5bfc41a83a3415ae231f41b383725ab76c97332d9fc4b0a5f191a303a458eb6da1e13e22b90a0c280fad8d1028a5c328f62e68d5066cddbdd8e8a6bc4b6936629063af3b9e8024623d2502b769406d10fe7f600a06d8f9e1d6b4e3c1869f786db4ee8d971e11e5bb5de5781a1591c0e8708b4aa4832809516ea95302d10aff80b17ee2af165aba3b458eec97037274b3d8a60776058c8b4c7d99bdfb8005733dc25df5c69341dd9a4c3ed5c29d1712832b78c878eb49df697eb53b7a8b8dce0437cfcae90041ed6a37ada70f07c108610998c9cfdf43178e7eff925d04b9ab507507609d16da17cc043b3117c29b8a032b0fa07413f6ee86e2d22bcb2c0bceda0d8bb0a0f8a5894c01c935c0aec9cc8042902918130d9a57721c88978767f90dc7158cb59932d1d7a571cfc0e8abbdabe89ee1b2a49c2f957d5d8471e0ad58d0321fe7761b59255dcaf42623db36197b85d7c8c04030cd4854327ac76168db6d08895aac0b0477345816e0b4e1e6b5140bf9a1af7450437ad965263180b6f499b1c73647ec8d5439fee70112112f75a97aa360f6e69ad728b0811f3065b39a7c1e3a003f456ebe5f45051a27bbc37135f65ed572c4bdbd2610a4d45c0bcf428a2ab95deff5553befcbecc2318dee8dad2fbe841422bc17fa052ebe98b31b322f8629e29054f174811c2d1033542689adab6ebe6f15ef2b5bae8a284e6659bb007b52d1b39fbe7145f428e6656ad39dd534fa8b7d6a0aff12efa05e79df555f4ee54bb5b8e7784d3ca77ccb3bd5f5729c8c759b43e825a6820cdac13519309d117233b055efc14dc63f71fb045f09e416e828618f588a3d3aa970624f9dcee78f21dd4568b765a40a346b826a42ee8b92f233cdaafd78bb84a4079abca37299097c68a920923093796422e50d18eaf8c26bbbfa730b20d67573142faf4f4b675c78d385023c05a7fe7624f462b95e8379c7ce6900bc89588ad1c83781c8b473a6a93137e97630c538e11c25f088739d06de7460b917e96ce9195e8132dee7de1ff3e21d0db5250044e499b602d1ed1d083bc2d3c7be827efe9a84fb4d001ba3701405d3010c29a0eb73b947fa2b7397277302c6f1e171fc22bf107b180db9132ab27d4fc1855f22965a21584a5403945af30b6b8eefcf9f8de2d93e1c7cb4bc0a6c3700aae7b5693dae5c373c788943d83376625f3059b90bdb79472cb94640a3104c803df03b3513e219bc82539eb2e420a861f407147a9941f2b4920eacc92b6e467fd4d7ee9e626a70768e865b59b66a259c9b2c55de32fbd92bbc687f2492ffb252fb93f90e28e8f74931f3f52cd13e99fc95639b48f5515147acb8fd39fff9f59e7f42166efb69aa3b5af21ba9a151ac6614e0f50376b2b7887a969edd4cd684dee1a3b2d99a99b514ae9907c43e6113726c0973b764ff2e3ee4957c4fdaef683d7fac9b69979c3142cc14b506badb5d65a7dc0dc8afdc761b982b571fc53983098ec7083214fbca53073c59edfa82fb0f29c797e0b7c6b75900501390dd568a1c85d3b42f9c3098a0c9562919bb0a5f8744f4b54248d249294dd1d918559ed44fe5067e86d5e069084f1d248873adae6736091e0fac8f3a799f298a3888e9f16063a24029232240c6ae657fde0ec4dbab2600d1f7b8a3cf1fd82da66b6cd4c7d62c7d5f246cb7426669c29e8820dcc71d4bb20a8532aa9744a29759d6ee9028ebccddcd887375fa43cbc9bf79452aa03e4363e3c5fee049354fcb5933c1bd77a783d2a47b3c7ddf2ceedeeeeeeeeeefeeed8dd25ee6e185fb890495b4449d993f4014a4a29999019238d54b9290fe5922c6eca4329a594120749e6be20d2120369aab8290fa5943a04e1e590b9290f3b7fb39dc66001f2e409a52b4e2f890396829a144f58cc60c34bca1839482cd7f1ffffc439f2066e5fca3e0e1fdfc7ac3fc13f09a14a1bd1e4891e9c7cc041055abc9c490ca438e224882e3c905eee4cb63052c214236296c03285880a601c914406cc6c06b21818c941ca310413b41e47c4e470658b9777135a00a1c5ca1432540479b90488c012e6882b901822cccb6bf0822c7cf0a8d205164098c04908515ef40093c30e263138a9d5d06207294610851219302dc939e2e08726a070e28a294a2898b1620a244e9a983c51422626042442f8a285882363ae0001266b01a3a54c92942b9c8aa02084a72b71cac37e9c23ffbfbb2779949753e44a7cadbdd7fde797b2542ce9710449099831471bc800cc971a443171d2e2d533b0629602253498e2ca162fc7acd74940141e55a2904892454c8c20b79b782184b98ee57fe31c79f6e77032458c532d4a154fbebc5ea907314680196344c6c7ebff71ab62e0d05892d91c034d3caf0f175b80871d429434c1830b86bcdc8a1a0dae3851020c949697163bca70a922cc1526b278791263969cf8e0610721647839ee7a6338699a2b79146f724ae9d2e79c737e32fbd75bf3f01a776b9ce1eaff52d707fc3a29f410030c7620220a267628801622be181165872574f0e1021e30801a22898c969703c470c183112708c3c5c94b82319edcd9979a699861f3a1e6712cf10428b08100442177b515ad68452b3a289a20a773fddd3868adb5d65a1e5eb7b8962f224551515151f63658836bedbd2c96f8361e8661e851395e395ead02415154477514088a3aaaa33a4a56791045511445108462489dce8a56b4a21545517acedd485507444565fe62bc9f94520a14e4e454ab3d3d4185f9050f77b600d1361f64e88049a9b5d65a6ba54dd7823962fd6ebe709c98b6f79bc289c5b6993df2d5a38dbcd58d07cb8a2eb29ce6f17c14833135d19c6031a3223b242c4629a5396dc5ca944ea2172042eb44a06d1eb750e33040cc1d3baa0847ad39cd23dbbc9060845f1637be2d0fdfd65a6badb5d61c26b12090db7c14f5ffe794ed2f45adb5d65aebdf8847dcf126cfe051e28edd24e41334a379fa3fb4d78955122a2d62b7667569589eea9379f5c90e53b895ea54600a6c79f85d101802c17062b628cf99db29dfb25885f9f1c20329c474180c3667d73d9981a9ba54cf73ce39e79ce1966712bbd9ff29c47a0ad4725badffdf6d11847fdb518b56bdc5d49a59ae25e36c4b365372d7d87aa295d492b566d65a2bfbd48ba83c6ea0b481ec6d7e03589e9d95bdbda205c789c70d529f7c79dfd7a1c5aaef006d63f10a275bdc7d230a22648b5bb2d759613bb664634ba612a1a5af525fbfb89e076bbe0d4c924ab56833cc701d156edc148a37148f2d3a47e870c30b68409edc0d8a6fc0d864e40dcfa03142e3f09850c24ee36c788413f2c4eff3ef9327a5b66d36ec7d1c0e89e62db2d5f3766036064be28c5b638527221b38dc65742485c89384c91f3189246540ee1a3b8b9010415228a5b4a32db8cd1395b9148fcdf44429e52ca6412ba54129f71c0d773df6a194721c0d77d1e87c925871cb1d9b89468e4f87bfc322c6f9abd32e29a035c87eb83b2e6c066a060a16e5aef1de90c3ccdcf06d5848ee38f334f334e3e5c6643b3932e61a737c8ad098e5588ea6d3f336ff3a2bf4162fa00e1477bc71ea7a933beea57863c16e9cad8237a2873d295bf2fcffffff4fe9d421774858433135d19c6cb86b94b0a2171a0a762f8b857128e2b082f86d6418ddb19f885ab8ff3a222527698a707872dce4f09c1ce875c1618ffb7e1c9639ee67c2eacf56bbcedb7bec26096b9b898d8c62b19fdd248d1e13c9d98363d7ee83fdfdf43a52a6a4b4b4f4e4c9d84d5f1e4550cb1badd5f01a2536cfcf39c5e6a1d8aaa4472905a171e626368e675b37176c60b1797e094e6ca3712f460fb28ecfdbf8fc26e5b66d43b6dc8aab74cf2480d55a6badb556afb5d65a390ed6e41f773fa68fe763faf8b7773cc52c57bec438f0a01efd80e8ad72bdcd654fc923eadf5ffeffffffffffbf74f13f182345366de9ad3ac1f38303d8b0e77f967bcb63b2ba4389e31ef8a5a4e2e670c59d7d56afb5a3d6761dadd55ada515b2dadd6e21e1f7378c02d47b1d3394718c62d4f0e941dcebacd3147126f7ad60a592549da944c721686e20c1f21b994259c49a139d5e492bb46191cc7cdb62266ec504a77c49b7087524abb0e0cc39d9ba33b86f9869b2077ec26217c43f3340e0d81dd3ae43e90e76fb835370b8e13b7ba6e88ecd6cca3984492483277756e262c4522c92559c4ac89367a2c7b111cc39e94490494b9a38c49a4978cc998bb3690e6f5a507ea944a2a9de2993c7693aa6544a0613c6e4f0052ada9e6f1dcc40a8a7f1d96829264b1980c4988a3982c48c875706401db832cee288d8c7ed4a0a516cc889ac7365992c99694a024c99628a59462c71a6897248117f00146b79f2828638d2383cc1d2592246a1e9b67516450d180524a29a5741261edd76d6379509ab15871a1defc3e7b759f3eebd75a2b0c72f6afe6f720deecc45ce34d4f91193b3736966b9d9d171eec7c36c6e561f511b9b1025a6768c8c9893ad59db7f6b230e4e4e4443b2bab5028a594524a6b684477a55eb02fc061149c2594daefc7adfdc00bd4afc3035420cf94fd7e26b5e00dfb19a0b582fd3a538b3f16f2c497851f6f369ebb154b1316abd5aa711d0cd4f0708432b5b29c10e3b871e6866bcb2e94524a29a57352b03b9cb52eb188ccfcffefffff20a5f3c1e8b02f44857be87556b86bdd5f104e79537430286fd8f358d66915d56b95557aadb592609184a031cd9696467fc29bf892cfc8b88e0d777425577220dc696f2d056fe3dcbcd93b8360d5969c52baf439e79c34aec3d560ef9b346d433197ca1477c8ca2e14659aec028e11479e9eb576d25ae32187a96f2690524a2934a7da8cd6a4856946933ff28d99c770861e7ab9a39492c6693399e79c73ce392b10feb9e19873dbe8a45bdd68ddc61c1ceef18df37c83d7dc8ad37c2685e65473772dd9674e73a32ac41dfd893ff122aad7c42c99f5b4146ca385a822a4a42c4044c588c894e80aee1adb0b066a7496f64229a5d8ded587a3c84a94d090d090d09090d090eab3a93b84595684680ce988332c562462900afdf2791b1d1ac2bb05ac054b4011b019a66548a568686a28e803e3043218894df69b725c0787fb7c911811c90c4a29ada169b90b77d8386a45c25d364e6f75ab31244b10681ebf096bad4dd5c75d631804d414e2d751a530871b4340057be55291bbbbe4c62a26721b31426ecc625d109a761df6791da27faffb4616be5c29a5d4d6f07588dee6b1b5ac1c50f286ebc444d6defbc481786461fc720d0c81e6e19ce341f534829994524a29a59424c4704789249124915a9d74b66d3a178aec2773eadb31d3224cdc03bf3a681126eebed1833c692838668083c69934267090372c5728c090470e7458aa4c58650f4c35ceec40567538274ee58da65235eef28d8ce74d7cc9654c4d3427f7d1a1e42497f9d28d39ddc3d1911cc989cc564862d45a6badb506d1d5123857dcd20379b4a21019364f5d6b6fec6d24763fe2c2ca9c1df7d9d2e49886ca115476f7944f154f8e6db64fb5765fcb6df0b5f6b246ece950fbade4de3cf4528e1f4b6c8030d755256e79e895b95406ad29ee2a8a2a77b6c0bbe1dadc50444da95dee961b8aa8a62cf16855387a62bf1ab73100982b71ce0c71c7db0220cfdc5482d0208facacc5f326dd367fec934eec20fdda4a97bf21f989c34dfeecc96ab73db3e397dfd7833f1fe3d983e7cde9fedf7e33b3d2dddd716f1b0c3cafe5e6df7f2300a4e391e62df767ff3c8f60766c1ba771cf2ff3dbe4362925a5164b0e47b6588273fe469f056d1fcb9f4c78d27f9b16cfb7db00a49c93cecdfe469faa4a9898e29a7a5c472ff77332581286cb16f6306449191f340cc75e69011ac759266cf9c19ac6717c03e5ca960f5a6fa3f35d6e5fb9c03d5c18770777726ab8aadc5482c472a804a1a1a53ae1aa96b8a9dc548094c9eeee40b6c8eead9e61eb5e6e2a40b080c2b907419b70bd848e2d505c7001c302282f9f5203129720588e7869c126848915dc2903d8a4bbcbf9a93c5edf1c0897ec0ea44bf6556e2a40b0640e725301d204248a11558cc66a989951a981862846604afc87ad6d546ce0b2aa51b96188941f2a204ae4842d1c44c311f583758489cc3993644a4b5ea07829222176e936a34a3b7a842f0eefe8816583304198b87ede224cec49ea944a2a9d524a51d89490d1d854b65e443ae7b4d3de949d73ce13869edcb199e80626a975622c23c2e139e7dca1a44e5cbfd6396b9db3ce39e7ac1c951df1ffaf65d56ab5a05a8dcef2a86b1db5c32886d476aaf0af0ad69041c31da59250cfbf5ad583042bdc117257aac3892f167ba4d3d96486ea3a6aadb5d65a2b131daca5157bb5fa941e038ce2c6b6f35694528a53130653614fa5c22a8c3302203512a95298a6c01baa0e02407f3ae8300379c3ab6ff44085a70aafbeb1039ac69978dc40deb0f7dd0e27eebe54872d503a83e74cfda1d65a6badd5562f75bb8e7a5d6757506a55a9869020648722fa690a32b956283738dcb19b887264b615db0a8a374228a5b415721c131a0fad6d058ecd335439a574e9f3e79cf3b35c71a423dc8c6c8a368e873dda79b8e5ae56c78536892b55aa58c5e255141bc73390d510a74ea9a4d2edfd502ef123c949adb50b295fac461bb9c72715cd63b7ecd3ddba9d73cef9296b395b3fe52f7bf3dce11eef689e6538f9e245dec60ffc70d98dc0b121a9fedf1a1a9a9a1a124670ad781ec6a1bce635778d0ee54fee1abd0bdfe23587ba41001e777427a72cb7614ec6a8baa899efd9f3143757b4ce0f8e2c514ae98dbb9af3bc87dc452d28e4a1f775019262a8e4ac5b192d648341808002d3160000180c0a04c2e19060a06972e0e8031480105b883e6e4638904423b14020928228086228068218084210868118a210644aa17b000471ff8847e69def769bfc3578561d89da6c45467e06d8ea3c9f302ea2d675a7ef67a69f21d57dced8982b9908a6c71dba249f5af472d155b936e18a85708a2c00e782613dd18c53bc78846aa1492cfc1a9f46d5a3190c70905dc2913bbaaddb57704f8ce6eaf806065ef1a4a68db96895e28488f368d43a6e0c72da3857e8c16ace8dced8b13c0dd9fef4257882648ee962c16fe22829257ecdd253a3a8d0fb2fd037c78a8866f8a33d93d5d2468e9e2dbfaa1bc7abe97a07c6afaf7c06bc4e6a6e01b83afa5a88912b58a3d6cf1eeb3b0c47105750cd8304bf41d5711a5a6805ea09a3732c1de79187e3b9f25645afb73cc95d74a60241074969711cb188c3f88903d71359c1e255f93a820b546ed8cc77a26d5d20a40773fc90b930a82fcb5ca5673193d38d4dc43b86a61936cfc49130b70782624533e3564963ed9690c13c7742170f95885867bc3b6aec1a5b42e4318add0be1ee9f59a7f32662dc468f11ae84c23ea99dfb9942849b507a467ab86cc5a7becc16f24df36956b74e2572950c1121b6414747940e318367ef2dbcc9a27bae1c363967f0d39ca95473826d5471f2a9eec573d19d25c8b1c947d31ddec6a5dd8594b0ee14065445cbfd3b8f681530dff6a7ace3ec68b64ac7590f9bc3fd11feacd4fe91deda8a9d3e647e48e0dd82ca8a81a87fc59b02654b2099a5d1d9da07503f12277df51456c63c10a31bd5508c5e762c50d48c196f69fef1787c26333b1e0c8eeb877ecdc061b4c389300f600ca2dd028ed9fd3a4c80aa0bfb2f2b82e2e51f8f3414389e18787ff77c50f057bfb0037013fdc00d13bfa0852eec30f1f620f10c5d41ffad75ca28ac554608a05f5b02b8070e6c624c4ec9b250d1fa0ded68d8919bdc46b5bfd67cface57534e799bda30e8b40c327dac79c885d664645607accae7d4eac449c7f53558e491548d191b3fae71d94e6ec65bce1c084a070b55bd7aa356297429d58d9f4014900f568c7863dcfc73f0f3c4b19f50f5da5f8fd33f068f49bc3fb3e7c3cfae3ce170dd750d3a4ff7bba182c57ae410de48ac591583aee9fbfe2975ea18b4a35552e807d7d50b6065037f617086418723fd2a3a24689fce89852f3cb84e818a1275172d9b9336dbba3cc498ccfaf9d1ed39130007c5d55b1e4e775ecad1917567a71fc36020d49c0abe8f7d85a2c4637e5c08f9749e83f577f6730b2f1aed825214867f2183f041109ffe4f23d1b1bf4f9acf80f0280360fbc489cfa97ebc5e1659c8cb85ee8b04742f2012ae9b7821c1c5b4184a3569ab23876166aba08734001eaf4c252bbc2dbcde167b5eec5862c96da8bcda11cf06d09bc88a0b49fbcb22df08cbbc293c695fa5c86a9dcd667cdd0cb8abcaf8c090ef3cab0236daf305b64572e37c286c4221e00a6df908c82333c3b92f61f9176b197486fba9821c6ca023b63b0968df06f885ab2bccdb6213b45fd49a606a3946c503b26821d09241cd83d4c92c0149e90f1b8051c65ce1cc5cf904056be1bb221c721172ee12c929752f751d5ace959235b0839630932a983186015782767c0bede80682e72a64a75609a263d96ff238f5cef7736e14381d7612926fce46cc0eefba117aec1a5bb6ade4317e271f4807374bd84a0ae3fe63cc277e8a1575a09644b3ebc9c58a4a3866127a5b38142b3240a613fc38673a12cb77b796a08b577c66a9ea21be39008e18b28db8eca56da22ab2c42205270fc8a9c62db26d19c9473c3775f2e25209a7649e2ece95b488c926ebe5f3bae3a497bda724bb4bc5f10e0e342051b4cab29a63045062a52a61ee3249b377096bc248545e72b135aa9f02a346c2840c7982b3e8ab9158dfee24895284cbf0cc4def34c4cecb285d8a6e034492c84409f094c408afa7ff574d92f8be1151e9cf9f7f3525ade788188fa1246d094f25898ff3a42df981cb712491449615f96146c55fc0502a7903f8438e39a9d40be162e126510d781afc6c939d66b065f4bc27db4fd837d471d26daef6449059ae89efefdadbb7aa6ea43bcfaaf9c124ad25e4c3289ee7d5799188ce161800893cde8a9527ebfd0c45aa2258cdbb2069af29a996273932682a703557a54b8779150c75d897f9dc1258137602987cbe9e02efed1ffd9c00ff165e35d69067a3e9e5973ee5688a95831aa1eec76f1d3bdcf5d78281a0806e1f35722b35c72bb1a6d217190e23c1a8d1041715b28674182ede964ed08db1bf0b1cf268098e71bf0ba20853037b7185061779ca02b1f3a1847ae302a8e26806ef48e4258ad6422f56cf47f30451b13a20d4e56ce41bd3c94438cf1d6b103ea3918984d0375f73e9360cdbd201956074a416e8c237552d956a6eb454eb866371a64d48a9c1863bfc426cf894a87e020c42a48e0ff3687f6a9e86b999c7fe0350d8f062c0890a0900210c19079773c7a3544849224480eb650e3513b35da00b92816a9c62e9b8c92c1ebe8789458b66b634279741fab83b027db8d5be52e0e92c97164e2ff95e59b8e56b2df9f67349b3e16c62aa9a2e4d2f00617d78da8fdcb1e82c22cf42607790f010b1758635651058e49ade9817ebb38d499b72f268bc3817702d385db2c202e49b523d11f260158a2c462a1d23a824e17af3544f273b4bb914ed642ca54112577417b0c6a14c405f9feee01d3304fe315463e0a068246b56a3acb77d50e2c264269015d12f6480dd9f74b0cf9100d8e64cb473f79f73bfe45fe41e4978210f9bedea31370e1010831340d2e6579a6ccbb41b74f63f74be02211d7da6333e62baffb474b6734b8fc3f112d1b102e677b96ee0401267b1093182a5cf1edc1e60fd1e718eafe0869a090f1246db631882bf1b15059200045f1b060f0adeb3d8406cdebe6779a28a5625b3b8e952a880c5bd1406bc43d41019a025ac00ea6eb9cd46cf8c9c48fce47d0bde42807ca07c73317782daebca0683333c2f7e8b8aabaa4d3dda3d95181cd206be2b7c588e0b04a1b4d12aacfc0abeb390a1ff281de28b40d0ac491dbfeb6e067b5445562f21c0fa1bb5092a12d260115fd6ce2525ff57c350441245d0bb04ef9336cd43a239a6fec148d7938c02f0da7731296f8fa4dfed8e3558412d9b944953cd5ecf0225524a39d15a4dac368fcc83d9695f4e829242233cf60f3f328fe8677d8d4bc8fd2dd22e63116a3e68d51790342272f7ad9a71b00ccc22fa53c3ab7a3b4fdaa6338efbfadc90df385040137b02ce89b4d3d69332073969b0066be49703367be82938499d68934e40b2f0b386a7f23fc5898d0181874d32a6757222f5982b1998625a426ec1f4570cae802518634df82c6e89137b6c76cffa591cd2151c8d7fe06909fbd499654fd76d4eadc514bf5bcc006c7f943db510ea2c950ba32ad7d2b15e3330b2549dd00f3a3a73f00701f3bdba4e1f08e80f341614b5be6cecc2e14f24cc8e9d1b8bbbae18ec670a4c8f53e9b7f9f5544dd00468118ece3203a8beed2c649b2207899f438400260b06dd36d7e5dfd7cb8496dfbeddbf28d3a30dfa61b6f42816e4b49ad1c40ce505655f38561903979d5dfc0355b00d997763b99e6de05d524b1aacc92224d47041cfdb5898ebfe14bc2e91edf8d6f087f849f005d1869d97e623886677867078731b2c9cd9a2a3edef90ee1be83b62833fc5f8bdd43336c8b1f935a319df2a84a00c1ba713da5fcd2f762035f4db6213d64a2a3a8546f760ce77b271f702780839dbe77dc093f8eb098ea0eb28590f8f056265164bfd8c6de785a5cf90f64f0e4c99856dba42c2754a595ca80777a9d25ea7e544322f78d6889448da1890cced09c491a818565c598b74eb45590853f129ff11b1b960c7db00e8917625127cddd9c34c2167ca96fe33a15c220556ae75d43f1e99fe4b716e2492b30695e66914534e83ef9671abf15b9df084a5acb2b65ed7455cc68fea9331db53dce68ccda2aa7cd3ccedb762ab946d62b4459faf4343b93a658c629adb76590f79040c7d179c410e5db4bfe6d09d04e12c1b20dafe1968bf6427eda0e0487c7fd4112cfbdb6ce7fd14c7aace6ef17dedc2cca9ef58381c0d3360b796c0d9bf9b35085b0e685359ea728220c3c4bc16bb703f000680876023b9b0ad0077fe2c3a806ff6ab37fc2765c50d7545e9e91408b3b0291a64b0043881d83f6586ba72fd5bc073c80ca41295b4f7ed1d8c771a945a5a22de168c183911c6dc0de5eb5670b6ccdb6b1ac022d4c37aa53f966209e38773bf17a481d4c7cec4c1b085c20daf8271d1a2ded15764955bee7235470e0f2132647fe99b04e2a4c8b0f005a869e3897a10fecca991313d46a69c3b5fe0191135ec1463629c1afd424ed0a0284afcf3579f8f9bd9b52af3b274a8fdbe13501696c0685548a399933f9a5993a5fd53724a67b7f71d862873f51b3be5b08da2d871f734d4cbf652f37bfef9f8b051bf81ba780654e2ca0e3287296b78072e175984ec897bdef5c3741e04af1c4aea0b58e0ca82344378355b58a1427c256d8fdc66da13ebaef7ef4842d15b7260ff2e45ebbb6d606ee63d0be7487c62d5d13e624f80e10bf5b5551386cc9624e8be76175b526494b790221e6fb59f56d7c5864f529d7e098fb9f7eba6bb038bf547f40ae68c42c46349e7576db5ee70ad09f3ec7a673416ab74614cdbd19ffc73b87a58be1509ed304680f8af56d2767d150ed74898c9142fb1a8f01513bb02da6f2c290c1383b3ab79b4ac4e619ce92a8ec47850c8c53970edaf66cf4c07a538ff5c3ef6d6d72463e694cd426ebd72a72756b2e32e1b8150a9b7c84135061515f0b059792a8fa581bbac967b9d4d9ac217aa6408b808e56c840e512040643ffba3b5ccc8c2d94e90b93b211b4cfb58fbe5571a7215e45a71369d7ede27af23adb81060a35ea755069ee1367ad1e4d61ab16132612912a65313d6c6255c182e00ac6241f2c68123769afc381ee50deda124110a38d776a03c8adc82320925c598e37694478d49715945a957493292b574008618bc7bda385babec5360a3e23db0b3cddf4988d653150ff0434526a0347a1574fcfaa0c23289c2c5d3093a6b181a534c5091089d14627792262a4d40895c23280058e206364cff382b2c854821c6fda4cef0f29bfca35676c39d034b74c9113ffa814dd61a4d9695cc070227594501269c21f39d92d851db9133e8f4de4b08947b4453d05b9701b3e8d9c8ca8ac16ac057d037280d1aac1de033a771905b402e4033d23c879e5e6d9e4c5f3743f2fbd74c70df8d84e20c474e9405c930fbdbc76c4d0c3123a39a986c29f44ed46bc40310998380c8ad819796c4bc68df292d21e27e547a43eac2bc5150d27c374bff1f93ef7eed5260199c969ef33f8f5d7cdc7fcec0d94fcfbc56894098a7199e4b26f2e97d14cfc1b8b0547d5c40c8402de1f4e1240bd16ada35a6b4d8d2dfe867958a21513475fb1d938f7b9e25f86d3ba2634f435c2c6732907f557de2136ea3145c5d57fa472e43ca80f64c100d85260a98a2a7b087050147ae960546c8e4f09d494c02ec9b16fa3e7499922bf19827d766092c719d566e21e4bef089decddeb7aec1f3491a5e1a482b3968f454665090d9a80dc6e73181766c56a2a26ec237568b35ac7609e93d34fbccdf92097faf6de37bde3cc2d4acd5fc02e1d0e2853ff1cb9d61ac1a33e6fcd5d2241194f283a5c2a3cea54db284f9eee426523e177eb2aa42349080dd638e94efe1b48638c74c224afe581056e594284f127a4f5ad60de8dfa1295f35dc8fc142f3d3db8027b0e4e911ab8a25ed37310bb814be49bd83de12b3c9970f7db97b938568135a36dd313abb4720d038879e4901cc3d4b10160372e78ab3601a380a5a394907bd216ceeaca48234af5687bea0b16fe90b55abc7396c3b3251799e1a7ccbd0e82a547d6ed2e48d56291a13e6cee8bfd2d1f7cee8c988ebcd12d964b596992363858433f3c321a60a00693c30a80b1c6999149e58f5f3880c5af3250c193c94198ca486dafbf642fc334110b7ba391319bb155778c3076f481ba6981628d1e9cc2eff837700c8ff29b5b28f098cae04f0b27b5c39ca120daf1ab47159d499aa2a7e84a6707a3511cedda8bbc2af700ca497c1eee2560abb62df6521b900c3600609673aa199fca0f38978122570f4d3345ff5424ce09727cfafe377912fd46b6c4969df1e5e99c385bed49dc07b557b8a83449de86b7cd9544502aba8772bc574507c623ffca91081a6246f7ca01b83ea2a970787d42cc0767ac43d780d43dfadcfc6e94f4a28506a0d9d5f0a6c8470f37085801816c426490ca31784d8b4395556ee8e00ba59f6a7028f4b384423bb66b0872860083fe492ec8b7228ab5908f138b9dd0f8b43c9582c455d92b23cce097b3914087c880fc298b0cbddca4af540a4c91c7897b77c243ece0d79d1b37bbabbed2a87c5bab06dfcaf99c3ab4be458ce9addea6dc82513a083a3a6f333550587a862d6a6b93dc11da016ffc24724d92304b8a18ef1edb6c5fa86b69c2a47f28b9b846b06bf97cc2063ed0e09c08aadfb2d64f8d034bbd4775ced7e15f7786c9f80bbf263c3682bc79525c6a8dd196d3225a9502038ebabae66612549642537883566bb42ef1142d25582da76d808e41f5c0cb2a40240c799ad4253b5087db21d1ac0274c86a7767d4be03071dd6e056f0c3ccc2c61fe45b08f7011d99f641ef45942a563b28b61fe819538664edc7ef47ff1aaefcb9a2736ed7d3c8a5215a3a110b2eff043d1518cde4aea40a22157d69b1a4f5561ade606e0b6792a7198c935dc23f9c18488d954bc9f16c451ef02fb3643180bdf1b5096eda2196811f6bd505ec3fcdc95a13a8664ce073caf8806ea79ca1de93434f389581fb223ae77e52236469b89dd2cb30e74c2256f49aad655d5281f4e9e4d4db86a7f982be63a09a4efc33508c72853ebb3a6bd981dca1b5320ee50420a76ea9aeaa36db4edb8f9a5c67cddd56c7e06642be03e8a6fb98fee8c6e1ad997bb4f6ced6dabf5487246d5b7bc92f1dc141d49ef34efb4953a4ec5a899cc6e225b26c1ad914cb74f196cc864587c3c7b5b98ba1f5c2eafe7e23f2999125b88510de2f43b15c9ea5cc9b477eab7c2e76ace219a48fe563320dead410b7995f53cfc711db2276991ecc374c8423c7894c1a00ac5cabdaa5e48dafb4d45073814b4b62a3c33c69b61d96c62da7572d68996b01e5578f599f060f98ba9af7cb84653db126b1edccb6d9438cdd87c26a66d07a25a276c699e625920ea4259e9192d9e591ad13b1247dd8617ddbf3bb4706b1213b5d089426776c810455ad275f457eb79a048753ae7d06287f0a05751b86eaba60a0d663955efa63156e5929a445f2a7436830ece90ad65cb6df1d556bcf8d2e524f5db324ebff9ed7114e1947539b16507f5022c5f5dfb43868f24e653d326b3c5069eee6241dbd4b50cfa472b017546a8d2a12a10193702a8df0f8cd3298d1b3c7725e2c7d67c93e8fdf92a2a9bfa0ccc03755a81554c79110fb74835163147708aa4091bab25ffd20af070d0fbc2c56fe7ed863349c13b07297bfdf9d3c8cf9219012bf08741ec8c2112b01f20a5b308764f903ed0747603324efedb13268c3fe019fe49fb487b685a8dc6f93be344584a52afcca30f145c4c94c6741360ffc3b7662d5f858686c1d5adb2ffcbe0cba962ca5df3ad6d489f65ca6142ae954265c5e26651124f0659dcc8fffddf472e48da9d9efac7c9e28ecf067992d0bfdb833b18173e2f4b6ab507e9694ab0f717b46a0b718bd2e972ece7813a5120a3b008b8f2a5aa54f9fdbaa318c002c2d4c9ea5b49bef24890bae5f06147021bb117f59ef2bfa551890851cdcae1013fa7b0c62e75a345842709a5b778076cdafe71164693de0cab5fe49af8ee16c1627263bd1c1e33f1164abea41cd8922e05595de92b85aa3ded030b3fa04657ea27a8c7bef8f6e367eac296a14b75212a136cb34538530ba0cb271181cc093ea48d8563075a0944b55b0153289acb72a46dee236dbbf287f3702c2ff19ad6ff606d59943d2927a7f1fb25254ad920c91bb8b0c95d65138810b96ac8a0b13572318478b4cc3ec9498d2b8eecd65370c6eaf353837de2c8f46c904c9521822a83cac5c0e7dfb5153876381bd01a0c6c520df6139c372568308f1ee99f694874b9ec5765f0675a36b41e10c0071683c70fc454575acdc63c825513ac57d4ac446f0241ecbd57597610f7d5056a5f1e4858fa2164b4f582360975448bd3f050ffcb033de8be0683db342d6e7974761e0c747429b56f15ef67c004a3ed05aa50cf33d7e3657a5315339bdf5f745279f03a130ad765a14c01a053429a15cd93662bcb747a800f7826a880b12a7d0d0acf21ebae0a71f5bee8203548ad14f9fee6eb096e5e77c813078c1eca0c4f7237de3d7bef03c7941ac04fff5eff7086f096823d1d2cf35ac33e8013d58c01708d33022a630cd4aa2afe644f85fcc1a569701c65f822bcdb62d2ce7e1accebb64d5127b65448889e442b015296d45ea7548779ce472f03dcb0aa0fdc4bf0356d9435734bb9524c4a1cd9a214b17d26b57e80d761d674d0b9c4e25eb47fb42377910d4dc4ad639380ac997a2f145589b3926dfa1207e4a29d4af682463a9b24be844c24f99fbace21cd8b073cd553eecd54ce11e054ef28951b28c62e1ee6a19a929be2c332231c16a2203aa673494a64454f80a59d4b0bd534ca33c0cee1ef6f385393f115a67c91a2a36a71f94d4be9860a10864127ecb19e18183d0f79dd8e516f5939825b69f3a96d8372e676d98c575adda778045a2aaa312cb414aeb83de7a0040997e7e8c39ed21664fddb6b3e8b214acf2c8c1e076c1d5fa80c025edce7d47e3f52a8d9c48a38ea0c2b709fcbe9b66b352129a0ba82049974ea81404a51312601587d0ea53150725a99b976dcf2242d430382994197f3104c0f37deb2bcd75e9472e53eea215a69390bd5732a5b0ed983653b381d3083102c7ef16eed953340ab4bba95d4d7c44fb8885f4c218ee081326a04e5ae3ea5c512c8afc1f9210c69644a9b5728d629a248c515ccd410c25894a6adf41c53c08fa2b75ed7eb2c78fb2194f70ac5f68ea8c122232a67ba45cb55ae76dd513ab22a96f336cbf27f45c0476aaa161059df935eb102847ba6a9b07d8d6dbb322bf90cb02be99e7c5a3e3b9532e07a52c1a260fff962185f9c9d34ac9774bf856006e1a8f35d05bd6d8af39212ad9ddc4728887e514e16d038f507083902b8d83c943010e6197e1891bf3c3509c3bc76184d6ebc76c1c8c6f4e93e0a684cef5d1dc9c3573707d6ba040c02add98f88228fcea3990c96c0a9a3b369fc220b4bacc05614b7d035319b9fa246d1509a3ce24f34022ba0c30ab542127e594165d86ab06dc95f8a5612d85d1d51b970e68e4cb83bb87cb2e768beb5066e34868760d4b2726add8767a7eb2565dda69a0fd497d238f1d3e89485456e06f55f93a1f30b0bf20b46dfafec597f7c0ddd7d24bee479da73bf3f84a19d7641b934bdd48677f4b2007c5634fb73f68578c51545cbd843d61a3001a1412baa4db72867130523ac6287e9fed008627ce6a05574364c327763114ee8944b08d9e92fd101c07053a2219a2c224becccdd219a9f84f6df070b7e2a0e71fd777d4195fe77d6ad092d5bc9d92dd3e4b5d84d44913df5f71489d7c38d86f97ded4dea5a9a5e1a04f5c7f6a42f55beb583bb97357e37cffd7f99429d52af890d15ccb8d642c1521704909138082066cf31aae1293887d626666404c3fb25ce363cf40c4cd2942ea3a6e2427305c1469308c2940428867970757125d3f9989cc75fa83550804a16dd922bad7ae4d92521961c1093842db45be0e94ee38a0478dc0e0018d3b53cb2ee4c6411d8ebc3c8287d8e01384f459036256232c73bcc6b6cb799d44e082887bc4e022447c0dec88ad50f1fb4412187df0289873a924c76bde5eefbe19e95ba4ed6267370dafab7c77004f19765da209d43049805a4c83900d481ed3604070dc97a87f49c047373f2825b9eadbcc9a74bc3c9686b56f0579c6d41a17ec64174a50192bb1e19b4ac4720716f16042a09eb47527f30af5ac2402b52a1468e5a0794f0c269d185535f1093d28a9ddf2b95afcb696ec17936db6169f0a09d2969a59d43cdda52a37f11d401614f2ccdbdc42fefbd2cc825d95b05a0241c748a4b1e3ce5cab2879cac85f7d67762a9dc947f2d262b3c8609d218fb7011312e6b9201f3d8eb2771bd8e702d5933ac85350a1c320180a89600189ab2c45c32cde9eab4765268e433356ee1378dcf6ed0f28ebd5f20a65578cdceb6b51fc5f3798a1a1a78b6e437ab3add7f3cc8ef3b9a797e5303ce52fcaf25385793695a1e389fa26794c7e188950711cfd737371e370072ea809b220cc94ea1011647b93ea6eadb07a4d9792c1c9c5e68b7d589d10d584efb77b771f49ffa988913472c1c488fe99458504189a62cee588eeb8d64f1a789bb90a480006ffb24d5fa124339a42ab7809c7fecdb1cd4d73536fb26a8a0a6dce700950fc5fd431f283f4a0f88a6ca191a09d1dccf24297d7a667baeb749929960c88b410a4a54caa41f71766b324bcc37a5efd5f17af88066c3166a2ef21550810d4e3051c837789d2753ad670d999be438d06ee353171a5c05633bfda42857be860c6664bb7f293934a0d600d35435d86bc55da55d537226726cc1825d4610812ed0f4449e06df02da1cf3e9058754409ab414885a0ecab1a5efb9334e48be8933242e8b3fed2d40fd08027561e45298a886d58ad041feef707b93af21d60504cec2f8d8cf8ce219e867412a49e189aad3d856faeec23e7fa1a91db503db12a03dfa81cac5410e49c601e939a44d9c58b4bf4f5e4c8410a4c7bcb4038fc7e0a9ffa31ada6f600e08f6f41b1079f3da488d1d44ee4517046758a7eda0d2cf60e557a0b97e20326abefc886f20a1dd3755dc50adfd497d13134634c2b935c4fe0edaf5ef47d9fabb2bb6fbe432d9f646450d47dde1a66c5c0000c8cad6da26a4c7e458418352d891177b224c66f438b47ba9843ed04691a9b8df09b7481ab161cf6849713136d3af3a6885460c31135a8094d128334b06c7e148a79953447d581fe0a1baeb5e55bcff6ad046568e65bb198aa1d956f3005bf35fa50221b7304654eb1ea05830679dceed92f4f62a1e5bb4a8806990c1d4fd7ddbcb5a81f6110b37c67d8e605a645abf27d0ac88398e6d516689146b3c8893d9ac2c02b0867c4b2ca67c4293f326ae1d1967ae18a13120063c7ccb0eafb6e2f0cd626c278f11186527df694dfd134bebddcd871b738a214df6772c7bf43e3ca8e5b05474a08be4b55c4a953739c42aabc95b8d8dc27e37ec0d62827064e37bf4327a306d60c0378e957df0f44243b7c3743db03edd9cb351de55cbdccff0f5871bb58b640576f5a547802b747de85084c9eff24dc6894c0111cf2603cf435ebc53543eb294c6c9063327b61ca5010d9b07286b2f1e3ca3428074946fc63b22199d6499983f62d2684a20618c5f975ec039b35b30f7208059b089cc954516a6c723996e4df0f8e60d36d23d004cc49190954786931933b86c9b7700e9e910d5c86afbc3a474aaf583db52f945ca82fb040cc230eda3de580f5cd149835df529a34ae69c0393cc9d8f23ed70e7fd50436d855970646aa9b9ada3c32f2c7b8aa0edd6490b04d54d88e86d3fa99a8022ca52f2160efbd46e854e17084bf280e33b3d4e61529498bab02ce16de03eb1043f3b721185da69067c0137bfa57a5f4273891a9b59f3dff82aa27140b049e0db31da082924e61a84f161196773fc315f17fc789b8758aefddc14910202bb00274a2eb7ec62b0135a332ea5a13418f82639049b0d7ce1dcdcc791c498716128985cb0d93020406dbff242a8b0c28e4e429a8faab79ccd5cdd67a388077a8ac0769fb10b54488ae50b3adebf5cb562e5aadb0a8ecd33e9eae78aa27f08fb0ce3b4a0564d4630157887b90203b081f15ad38509ef2f383276fdc4206a962eaba80bbc6177fa88f04113f80520c92579280ed506cab66a9b79b85e4062254c6ad5dd72ec8cbd4478b4a961ff06a3e7a4de8772ce5845bb192336ebc3b426c749f255fc35a4b88adc27e4ace40820382ae2cbd1d099f028562bfa1e82ec07faadc7a69d00c52ea6396645d9e5d4f5b6e464d6efa24333a75407f5347696808d78159bd6214d0d4ec63075eef0cdd3bef6d9da96bf43b9f75e044a37d02f316a28568a5b617a3c93fd65d86f4f967dd2d97801ac724b4f1cc7cc9229ac210237a6b2da7656a4ce8a2c9fa978bf208148cfb0fd337689b3d3126b0c8649916bd9bc537d65285a7b72ddc674670315d72ff114a5bd6d9ca39ddd519b2a79cac892748e2335abf7b978fcefecc5e3d454b0cb1560f924bce51ec8c681530305c5d9d76930565fce1573103e29a2750fdfa9be493111f4bc3a3591c124af70a33f33b811f9d76a4b3de3678271107e8af25a8a897439920805a6deb11ba7ffc7500a92f470dad3666ceabfd9dc136baf950baa3d8ed76602117524fc36bc4764dbab6042f70748649d3670469b2ba13e8b38360ccf4316be85f9f19c942cdcdfc3ae76b70faed83e3723e7d5e96ae1743517369520d84484fca408443dfa636ff24f323ffa2938e654ce900366fe683d1c0c65703f3bd425d999d4a39da712033161b87768893411bca4e96c4c935c9236e93687a132c31cbfd5f78730e2d8d35aec535c648452c99875a45bdafa275b17c0b534dc2e045a578ff3df6d83d4b84daab14cac53b923e0b3d5ed7d389c4743fb90c1a13df5357ec1556bdfce704953387ea71b8efe80675d963b54b2c42a5d419e1e02fc7626738c207c9daa23e702f4c4d0e4cfc9937a2cc4c0890d78fae0cf93d723e8540629f6bd72f0706cfcd91f6211c1c1ca3b8da1a2f13f124033f06348aa868902bd336a7658e7f6374aff4b409d4c9180a012f0e2d2e4afface48521561bf4b231f1cbde9c561464a9f03c5727a451a04574067f6e545025256706ac3af475062745a83dd9f36cc64b1658630adee824e09ef2e6d947668dc942833ac06a7a9a16c886834326a5808b3f264a726ce721ce6f6860b1a8241604ad98661f88e9909fb5595a4a200e1903e7385c21af93ce0d0f515f470619909c8fa83137b20032d1ba27d30a20536b064c200ef25125c496139f1c602ca0ad6f9e84764f030fb81c354a0b432da821d210a27c8f6a8199d20385eb1333ebe5171a9af87115d47b7cea0b5756b6ec368af1a18d72834ef663cd738086650c024535a8f5a8cfee753f9aabde4740dd75f4e6bf31104b273bb3bd0e4273c99f0b39fb6e9f084dc769567066d2ef8d9ae8324c6f3392d2be85e2a1a837d8ee1b1a6c3f93862a66f970e5c428ae6716f62ddd861655e821f9ce9211f918c6d1e946ce44b391d0cb422896a4b7ea0cea374eec072bf224eb9d00e5caa3d059c1066c7b8bfb43172a55335cb3331e05629951ad62141b95881575b91b39114ce4c251474575d0eb4760c3f4ed0223e601d859772f99ac98e6e832d178953566d41a6e2511bdc0669facf26651663fd9c430a1052441956cde798cb08ecb1e69e29ad3cdeb90d5a3ce4dcc655d24ddb47db9f13689bd3e0076e23ecf8022409f2e5d8bda188361e3a0b9ad11bbc79d289cb3571d84951addaf04d1129ebb59818e8f305fca11a10ebf73327fd844209e639d4c643b744ffabe17a53dbffe4b7a073479b53fe959a780de441cbfa098888f1be96c570c6c2703de04264a675d1a353cf010d24e5833767300c91686dbcd2219069f32eebc3c6c0d3c3f541910d07a0b9c741140095f606882f45bee2fffff37250bbd45d0f1277fdc535a1d8cde60298b76274b843d46620a2f752987a30a0fa696165e0ae1c181e5b89277a62466f3013747116166217422f7b19279f850e1f82eacf7a71283feaa522efb054eb4b9bd44316edb4d17b8942aec95f8c462e534aa93a91fe803161c19a9a58623c075a1d17f5e6b1b0420f59575ebe7d16a8642949ffd59fdb2b0dfa34fb24c210611d6b7409ac378e2158f790674b5e5c45344b7f18ba6a83f40624b17654606a8ccee76e8e275cc6de3c4661cf880e5f1fed1b92f97c03a597a86cb8848bd6bef0236789d1e9863e296b54d1a68a40d5ca16707c36aa04ac3a83d1b422b2f11c83d55bbc3a70423c3dd766a57744cc7f7b5699e105e883f3904599ab81dc5ff1b27e5aeb97a60885a78858e1641282f6e5e665b93770e888da1e947d5854ead89fc782a84867413f4554631893a5e068af6764d48af13457e0124d98ab6c9a1a6def1e3b3f4e67345bff71ab626c1b911c9a951c88b7536656e511d5c998d82057a98190de1cbd1491eff13f82897ab9bdcc49e2083117edf8b6d16636d6c2d3ca6fdfd5995656dd80a342eb2ab03a3937511b1235d314d8c03283d154312edb09c5aa9a67bd6020c90eacab277e0997f19e296de49aaf7966c6e6758ad35c2cc37a831a7bd4b364415aca23829c6cb6bfff57119e404868f126a13442978bd6768930d955c932d823f96f85b2b8dad52fa6d7078297ff5647d3d73d5c491d28caa1d8fcc51428e85df37e970cbce11a7f986ed8b3ff6438beeab1d3bb91bb042d5d6f4a284195a0ed9cca252524a95ca58477722f84b011595d3f5bca37bb1462cf9c392af24ab71031b1a7d0c48075090d9063d41d12fd15543ae10d60044353e29b39e6f576a9f8220b80dd9cd4490b31d952b0686c45f6c29203089cd0a153915c0cd8840f26ab94c4df5ce10fb01fc4886b0fe8adf0a4a583ef7b1a92c9f3b3a4578994dd3736b5671e2eac24180f8740babff54b9a5a424784f58b98ee2591df19820dd52ca3eed4a94230104b482460dcd04cbe9212f76420e14400dfb2529b920e1778a5930912fd827cd939b562b3d020452ad217de7ccb9743f213f228ad2d8e8549009f5aa4c3701d882478d018656591e371f39de03d9d01d4c40984b3a2869a49b239001208f075fc710295a0da1440ab054657bf7d8b5a03e86cea21bb7e9c8a1893d811e8bfe0ffbe9902cc8703aab626895a3054324e079611eb95eedfdbc361ea5ff3e1abfb34575aba5223483ceef5bdb01c04fe8d9fec2d431bfcbee8f92db40c0d137d0fc0610cab87456e1e30f3d38e7fc8bfb0cd64ebf66a3aa5c6341121216defbdb794524a99920c96085a08b20853c880031fe8d0e3920ea70e2f879878e90d900e81188658fc976abf47c8e086556af5f20c33a890d1030bbea0e2fa625efa95587240c512610891868e159794520e8933ab08135df2bcecc110a478595ff29632a5715f387a21f3bda526968ed92aebb66e1967ebbbbb2706617a7a16f6e8997558b78a303d7ffca8de1e23e7bcddeaad5b41d2474b01c2c8191274176d675cef5694365c48faf686c01e52c7cb6e45b9d24d80335b8b5d7a01a00f2833b9c5adff7a9bdd8d62200c7d7409ca509738fe43fd67bf66e61923a9db4f60e2ce672c564fc9a63aa13c1c95a71c07e52796f5944397e9a3f5587ef27052aef293ca714e8e72e8b27e737294dfa45c85f293dfa0bc1b95d7f256da0f262bb44cbb6c1fc285ce2a47b14ef416604d9c3945e689f1d4d970454e6ed32855973a79349d0ef7db5a47d05b312b8f08e8c185333c83110e4b3efe80c3f3f4647636878266331b3b2d450c2ffe835a484145636851340616957b320b897a96bcea630cfaad3ba0df462e0513be3ffffc29e659e60d6bae6799c9b3c9f9476b48fed5cf50d66fd7b087b54eeaac73f4ad6fd6c21ed6fba84b4775b63b7528509fecb5eb09db7bb81fd4cea08e1398b83cad63b4633e7207a9b24d1026f6fd48bb664f328f49358c33874294f1074dd52627845659db65b7b7b2324a74cd0419e63bcd7484cb02f5181ecbb2cc63e185e9b1c63ae394aecd2c8b1966abedb6592b0560f4b66e6dd03f5b0212b7c5fae817d640f648f3f15bd9d8ce5ea23d58b756280ac5997e4598e85cc76a4fb5c779497cda33c279ca4bc2a2ce6a37791216b511e646e52994a72e546d9ee3baada3d3ad9842a94e5e9dfa4bb7926e459d9703fad51e8c309e4d843939abc8c95915a06e72e86257ca59379cc2c0c9537e734f9ef2ebb1a8a7fcfaf5704e9e4ff55844aa4cd9f095dfdc701c7ec3713874a93c167595e7b8505eca556e24e52a2f898fe64958d65933453de51939b9ca555e1296f55c3062f2924795a3fc46e52847394ec94b62f2866e506e72938773bd22a893c7929e0b464e7ebd02d0d58a30d14d9ef21b93a73c1c1f23292f39cef5929c3c18614e7ef270529e0a39ae0f06a5fc8b61d5a19343d7cde1d075f27c58449a85ccdbe17fd0a8c3bc7699a7baeba78ee4aa9233c72a62c32b005d36fc4687df70c8b1a853afc8ca8fe8f07cda71dcb8e1392e1b366ce8f01b5e921baec3f3a96ec3735c9a0d1b7ee386a31c47e53837bc16506ec375b80456a0c38311c646ca59ae72947ffc5279ca31807296c72a924a39bb4e2767d789455d87e7b8561d8b7aac222b874fa96784e53abc242b67793e99e3f01c5777d4351c5d121f23387ce525f1a9007429c1f131b2f292c971561eef941c87b35c022b60793d1c812df77a0e377934f9750c943c87c72a72afdb348e0eba561dbb6e74eca21df34fb77eba7b5e7c94858f6c74d0c55980a400497755aa6aa893e9fa4bb76e84893676cfcb15f7eb97d0c747dfb3a4653e24ad281d8796696f282c0e7aa6d23bfd13bd81a2774ff48612abcf29a79cf20426aefc4f722950af1390b24d3958a378d0e08b061b46c85d852493164ec0eb7e345f5d30c4b5ba615f714098ead07a2bd8a3fa094cdc7e00b82b3ea91e3b1d0d537d762d6932c2fd209506d00469192a8379e69ae48464315ad738b3d7addb3883a4f5d6375b9d005caead1c11d65bb771865fd76dd5ea7602131376d16cd6b18bd4b1ecd6b1ace736d901c068b1b02d73926398678444f2249b46ea5858d6b130eea6e41ec9c32979e6712e18e1bce425e1bc0a40d7cd5845b2ccd94572d60dbb48ce2e922781155ce8e23c1f16110abbf5397ce8ca3c1861e2d6419736bd76acd6f3e89610d75bdf3a18f231420d5c3083152870b51f893339444041b4841044531469e16a1e265e3829c210b6a081ab7d489c29411839d83024842576b8b8da674713a45bfdc3842697fdfb41736ccb2a3419bd5b9025a52e6f6caf3347c6d0dd2908fa2165a4950b33be5b1b02568daa0ed8314daea85b9a10e97848d4a488264e2c931e2e74f990a8490ce2d6515ca969dfceafadd0c405666c6942cd80c2831a1c118678b8728308507828da8870c4c31011a8ad84ddd856774bc5edae623868ab82465166cbd8f96ea31ca031f4df068475ad97d4ddb62da5838897a0216be1073df25c8631760b7abe5f716ef3c6f3fc6e7c7b1765fd35960ca87978cb6ae80a75d0eae742f9baa75fdfdd73b5825cf47127ea44f172ca4767ed07cdfb62f8428618ba40307ca0b17bb9818fceb1a7f24065e0a1e7301a4ac3b44339e3b2778412c6b74b2871661e754b9dc61267e64f148a337327c2b4af7a2ecfce4abeee969f233b748be68e944758bea5d1b72cfa9643ab1594cf36142f3d3ed11d1d1d714f0c4643434343dfafd70fa5f387ce1f3a7f628ff5b9d373e7dbe6a74797477106b6f4189b9beee0605b922f6fff5d960940c38c8f2ea38ccffd74f0cb0e423f808f9e59db468eccefee6ea16f2d7cf07dfaeeeeee963ad0c17f2f1f3ffa85c1471d8c3eee50c4479e227c74cb0989ad1d692c9992830c3c8071340454c30f7240060d35e0d23d73d0a20a2151d2fcb7c5608c6f97ed9667896fa7cc63c5ca476f400bfcf57ac9d0355088fced3b8b6fa218406104214da4c50c0c8a10cac89490c30ebe2347cf40f4213bf8a8859118ffd1fb90402c0cc4654f474c18f7e321f3b55ad1753c4ba21c92f8fed2cf094a5c29c5651c744f7805300c2cfe830897b3b4cc3700c6d20ebd01c01a0efaafdf65c762c01e8d05f66867e27eb5b264acdfd163c9017424a25b0da581bad5de82338c25c2b4af180b164e7a28c49ffe8943d347832fdf7ccd5887cefe5debb1168f8b92a8c4ed8708a8e1b908b0478c4040db094adcf9d0f451ba15a36370a61519007168417c047bc42230a06540e3a3b714137eb85f0402b2f6de08345f44681fbbec16016470f9d9a56f1246c9855e1f123119e377a031b9da4322265fbcfcdcec2111931dd82b4c98043169e244c96a9566289bdaecad9fbd019342d0a14c74b41804a06903fcdcb16ccbe8269010f6cb9888551b43e774635d68f0057294524a29db1437485f3a35d50f650500c6853df0c1f25f0f7c8afefb1ef844e901115abe5d8d397c23fd72657eede959d0b12ecc6da764061a17e655d7b1aeccb35487c6653deb94cc605dd675685c986b30bc57eab6ab2198407d1194ba10d48f1e0b93ba09aadfd71862943399c56bb3a86942a2431a63dc2eb74108a12469a5528c514619652c6d909337ca1b65914fc5f387eca094d2bf28a58c324a58e258d06f62972e9a6983d2a147bf815dbab8e8065be6abd5bb61808b7a2d0d4ad97d71ce292595d114c3fad1b21863caf089b555e1fd6384d0fba0fb43387d3ae422b0e359980e5f980f3d260c3a53a9b37763ac74c6e892c698323aa60c1e4112b39562d811e4cc309e33c62b5718f698724e692bbd22a7ad740af31456388e234d396da55328ad5463669653e49cd2567a454e5be9944aed94b4da2b95566aa7c859e91439a7b4955e91d3563a6522d12fdb114a48b10c63ced13ade11f28475604d9cd16c84a185215c8e1e2b464ddbaa0a477a366e8341f8662b90bf803399671ef7344c7b07714f0dd748118ee34813c33c8861d323913821d249a5211602e27b4ed93324542a956eb4a1a1a1c94a254ec8f45235b596fd080a1224a587074ba9de03d472a733484a50507b567b8078cbb7f7700f90c9648235718b795f054598e61ef6910d81afb051b79ab134f73010f602fa68e72d2cf4fd05c6a1303f7a6c85ad7cbb76ca32d6fa6523881b2e74fb90c8882ca28c57ca22b086ad73c4dca6638c517a8c42b2bb1126b668224cb41f6d77c36de7177724630583d848ca22764efcb23f39582592bd0530a0169d1d56c29523131941e599839831ffb8e8d90adcc2403f591e2bb2f6adac558aafb5fef4f0754567e69c27fc2ce28b9f731601c4bb0c025ecae7a2888b00041922c2e7a3af7c52f0d1dda78b8fde32e2a3c7d8608b1a7891833146030fbad79db0d6ca3c5183265e4ab709e8c25c839e97d2ab9d12b72cffa586a8e1615ebabd434479e974a5029922e33f1d5084786980975078f0d2af103d7ec34d3d734ac70b0f9ee1bf1f415e52815b58f92c0bf71fd4c2e33fc80500d2717829d9491772486679e9d2ed5d792ba6082f9dc6664811276bbcf4232ad8e0a5afd002d04b87610653bc82904207093b4ed2e09121a8270823283488f2f3829790e8490f5e7af1c44e84510cf1ed2db9187ae90de8997ebd5eaf166cd7da7b050084127bb734b49a9a9352ea38d6e7266d6828eaa5c3ead49b1e8e0fce642959b2df4cb77e43bd3a732cf628607dfa8df56eaad7d24cf8c18dce47b89caa3b3d524e972c59b2b499458ed0f0e0485a466e1fdcd28a5971f7d41968f0e56386335048da23c99ec79e947a17a13ee4e8b5c29022b0067eb722dcb2929226c2b4b8c9fda0100486f86bf6409cf6e9b19b9e9d0e23ccfc1963adb6dae8b67694811225459327e869f70230f9a2a361a8b77a0199535f0de90468149332c6e838994bec08b68179c719065c146730bf5100b1b28209bbc353873c04a58ecdce07ec419db46d18e6b18a6818c6ea2ccb30cc461cd7090637736cbac6939bf484f3e66ed8c57949725c25e7cded4fc63a3b9c53a7401c3424c27047220cf552d7c2d6a9004384a192f36c76b8cd3a2db3847aa514f35896b22ce6691ae7996b1e8e8f11ce6359df1cba328f795896e3388f75184a84a1d5cb7e30eac27cc09a7983b460723f3bd3a0947a7715b359b602a5945a4a29a594524a29a5432aed6270993abd61a97f77a3d46fc09ae9d46dc01a498646b7edda70594fdb7967755d5a7756bab09a655d65ad1eab0896659a3347817669ce99afb0d38361d19c755a8035b062e1c152abdbb4967534438e6036566fd5eddc0f62590189550223ccf460946071dd6e7a836c1e1a6fdd30da178d6ed3dded361d6d9ddd3614c92648273471fba1538f7e433d7a1e616aad17c87149872fdffd29018910c019085b803524199e211a1e641a9eb1ac1067985fbc1367acb3730f6b4af80060acb4c88ab15f8698998ba22c79e6f853740411b89ea21bd060e5d4174acb7cab9e968145476cf1ecd709f3707b9eb98b10098b509ae3c71417762bf40cc472d44212d6611c7ed0c2cc1c1bf20efcd3ade936f36088302b441876cb5e3be6b10074490f4698fb13dbfa7f3ec36245bf61871e0e74f6e9f1741c76291dbaa6ccb9814b4f103a4ff0b043930bcc1044972098e1a409205ceddeea61b582eb0390c10735ba7bd65a2b0eee7d48e4031936cb253d24f2c18b288ab842463efcac8230f2e109f6002747d6db06d513fbe4b3d7079dec0141f4f8f08a4208a10aa3949176f70b2e001e5651638cff623232baa0645c15151b12b7f4b08a1a4a644ddcec6115357c1e623b581535849092ddc260e8bba1d043ab6365258c82d6a0d996f9a2b7efb0d5e12dd56e35839a31d36cd1b0afa0b76268775fc6c84d72d8a3391669cc29b61d2b05e82f0f3d560a399ff35a77ffe88e2f576e9376dd6b36365b3849724ad82df839cd11094d83104298b2d8b78a7f74b325a5942fb163775ff4af63bcb16347d9f1762637da83a6d919e511962232c219e9d1eb6e75d09b4710a9db1a59cdd925d43c59a99dd19967b5ac31b7a09c2b4dcbb48c6a5aa665947ab2566aa7543a851db62cfba4f0b2b5d69353a6703c8073da4a7dc206d8a15690202d6325c7ca09e9a7d05b28b2a9007fc040203ad847fb5780871ec3a365acaf5a50ce15a96a5eb34cab990733af59c5aceb709f744ab8aa1ec609998e65435a25872de8abaff69c1008942512739bad2d7c75591b60d3ad21cd404e803e2e03826450a3b27d29b8c5779020b0078f204c69d62428b8d403d0b3e9f93efbcb0fa21eaa78662efe83451fb4f2cccccc3a6a64b0c6c7eecb344831f311d3914d8c1d9296cf391f49eb632c82579c0323981deee0082ccc18430d30b4b8befbf2072d3c01d5cb71451b8fbeba75eb25b95e8e8bbd2f6289451fbd772a70235dd34b12836bba4d4fef46982e17d2a0292eb8f0c2fdea2fd8a70e9b049604f7a76c18e94c02fbd473e185fb11fa90cded7190653b337b49346f9be3b2e9e919611cf6366f379239671eb56c624e5d83dc74e8b2366d3b24ab47401737bae48464be19d93c89e69b77238ccc984be2533d49fb662473cd4bc29e7930feecea1f008c1b5d0ecd1fc498f2e2985cce085c14579a619db8f70b1e2772a059714b0f899c58c30923721012a21ae1ce87444e38f1c10919684f9c609286bd9c13346cd96b9392840d2342859026e50ccdea645280507f30293cd0288f9572c53689e020a84a41c286245205109502042a064d1b2365898ddeaeb5d70a27f636c1e512112a6ae268236285511329200e87570dffc5683cdcadcb46e55234e811eed4620421603fb8dac32a5d7ca082283868d0996e95bdd4a41098d2ca1c12d0b9d02516ed0146dc2b4f48b0c79898f6260dda6b25eeb5d2c76f21ec1e7ae8ce4ae1e3574d28dd828e040ecd2858d177cf5df6f3d0bb52025e2b995eb395d26e34340d6a99b515ebeeee5675b9dc7da53cf4d87d33ca43f9f3b0bbbbbbf4f3d065f7653f1185124846ff4d2875e574d29695561a2badb4bb6147b75e575abb7b23d988016ae84ac81e842421583325178955f1f35d92d069cbd0098d2a4842198ff44e5b7654210991849a244412ba17350445832f1f8e9fef521a5810473969b558a6695bc661367224bb9d86b8a528af85f2d019caa99382f2ed1b8742f72421951a3c59cf8eddf1a821232e7bc44ab7526baf696698e9244fa8884a752aebf1af95f178f693f1dc8c47663c2d03371b194f84b9194f9c81aeac87db48194fc6c383e387344573c792e5ecb9d08f040e4508d870237f47af7b7591c0a16771ce6b2cf69c67eebe3b567b0e91222e5f39a59b60c6c8d12b3263a4ec6e8e1308cbb565a084ecaa2e973da60c4dc6283bd5112e7b9cb08794728716778bcb3efd933a1f7d7631ce9830ec27312f543fbd83d3218490a9474adbbb05555a76bc04d0c56d0e482fd3fc5a687a16a24b67dbe95857e658a764061a1debd23c0cf3acc332cc6d075d59571deb6c9cb1ba09acdf9f523e6c5e5d4da5e5b24a0b94bee375d95bfec01e73c7eb4e9f9eeca6ece0fce8d6568f1fa7cbe915b12e6dd532297074f4d3926fcf68803227e98de3b9dbe13777786e9f324099b9036cb137e6fdc373bbfc813576279ba15d0581644a26aca9bee3a36bbd69b1dbf15a298d5bc2ef340cfbcef4609531b593c2a165a6b3a778a6f42cdca8673a30162fe9307f2861397af64c09034171611f1c6752af08c3999257a6f325fcec38d8c23ceb4cb08579ed54b007e65a8703c26036a00f0cb5c67386f9ac3e4b3bffa57eb0a4a0a49cc01eec5997ea69c28581a482803ed839b5937af28ce2f2ec3ba997c5306c926a5d41a103f55641b007fb0e1d5ce85f6a47ee88107a378e8c8a286994524aacda9984d24967afaa5ce9529e88b8ec9ac5a28e95172b2c8b0962eb8599ac4028a551e2521a776b192ee161b6d39d8c316bcf76321ed516297f604d75f6f98235d2793a7ba6036ba29b78c2c08867af849f46d61a59236b24bb098359618fea902b95328704742ed4c17f2428befd337d673b25fcf44841b047fb0ea29defd940b066c787f3251a45564ae3963075e4cedbd768b5349b9a3c0d71b7e82fb5da4a29c6adb8b8d379ea7431967bd2c280608dc496c096f8e84940e762408fc28e971eb605f6683f0991edc87ee996bbd05091918d4d3fb1245a3f1c990d59b12b69ad6c9e39817c342ea412202e72fa7079092aececc1ea301343d862221bb50c246a02e899af6cc9983566b7ac011818f99c51258927447001c104501035bc4087252d70f104210a1ea060b2640ad707b77460678b347ebaa821c319ae8f5ffc0384e58889335e73cd334e88667314f1facc314e4826b1d46318c6c40d8f65b1ba22a958e2452910d04f9759ec784035a896bc5ef2bc4ddbb4c6d81429c3d8b62494e0c18f976e8dbe604195304ad8e0db29110f7c889861091bfcd0a5033e6210c18a9f192831c5874c19d0f0928100f148e26801df3e53a92d8c6ab8a96d4bc91b248928df368afb6d2f2d1e49307929a5e5c20765bcf406b084412213d2b439bd561a63ac95d249699c34fa0ecf4ed9abd59c31b6e4ee0a9927c2c0669d9d9edd0d036cebed7d744e483d293d1b43e7d0d6ac18c131aef0d1028615429c71060994b852c61841581441653621a2452f516495a2546dae17ebac5da54a13368c1fcc28d62d5462be876c8c9a6c493017c1aa12245e9009214183f6c54da37a51b444c912e58a8dd205d6554a0f89a260f1db43a22841398871510f89a2f8fc1753b3b8f4c9e6f3c386c5b53a68af1b38a0282ce0a64451c201712d176ac5b55aeacec5c8b04442d07e70e9171c11b71661414346dc3086e5c13d4dc9d088925941448c116e000427831d82ae7d4874031b34206e7d4874831a28b553b69392d52acd3e6b539bbd24bba5ecbd010a300d8a1767062a8342680383845139d276b0592a41d9115494aa144258131aedb14738b93177ea1131e01e20c596d3ce114a505308196186ea01510c190106e901536cb12a31ba7bd65a9974e182165dd6c32a5d9aa8e29a1e56e932448d72efc32a5d76c08ce852035684bb3dacb246174d868b7a58658d2c1bd025f5409372530fabac51142486868d30baf19048c9cfa4a2c10b6d0a75325d089921b76919662b1d32a463d8836b6a108000021020cb4ecfcc331e37cf344f193b88864b30c208c331705f23346da54aa14ed1d4b74bdddddd246ed33ac3da7a74eb0d8930d0a7d774ca481323433843674be9ab8fdfad4aa148b17978c11da5aaae84b0ce26c25c395393a2a68cb49eaa3559ecdac84af50ad9d0483650080e3d2cd2366ee3368ea4914ad994b174b16bb25346d3a99e5074c8aa06014f80cf4e391eba076f34b96c42a5664a257dcaa8b2116ddc6838440367563448da94cb386fac78650387ad3e035b31b5bbee71c6c6a10b066dd0351b3e966810c2d3f33377f1f9b20bf25f987fb79c8797d62211265acc22665b312bef58299cad986aabad34dd32c6d86dabad31720e27973d3637fb882512b75d920056c01de5a4d56299b695368e042784d06fcc38122749a5ad74b56bca4c27ec84b2a894e462f4be1be39529156520f361b724b461831352ddc60d49a190959e8909f20179e80a8040240d89db6c36adbddd6aaf0dd398d0cb6dfaed277a1948fc158ec6c119161361ba1563a3b5d62db5d394a31988bcf7bb7b06eca3ddc47514b79f81c0bfac0d32907b4b246ebb246b610dfc1294d0687cad34dbe396d47bd69899810021f5a4373d7fceda0aa49bd9079d3236e418638c3d73389944973d26c6b81d119ddbd4383a8fde8ca5992388faeddc037bc428254e5a27866198005e62e0239ddea427c83a862d89591b716ac4329a6953dbe4c6c58cd41cc795ac4021e60022e350e80293190e3407f0cbcbcfb2cc84a37bd8fa5a1d659659bbc98ea1b6c52896cd2cd364b6c52de37adb364e08e65b8c7f3cde62d98becaeb8311d8f6efde8170602d3057889397e600c33451c0f6760a24baf5574e3cb471229e34d051a94b9a5d7dbbf977340e9f5ec49ffeec9e45fccaba2ea5badfcf357f9d77a158f57f9a43c877f34affa601049a552a9e0d00dff200329b9cafb4c2c3f754f58464f58aee3e8d973b052587274d085b2f2ec27a367375d6176d29667e7b83cfbd6f3ec385e473a377c764f829edcf0554764c6500a5ae02a64a3832e2ae5d9671095e7e8c16e71e9f5365d73544d87b86bd93fe6d2dd4bbea9f07c77b7bfb4c7fca0014290eed94dbba740e3dbd4908b965dbdbb855af0cd7537d631cd4644df3e7bbebbbbbbb3e0b283822e2f00aaa1084d8120a38a2e57a60c51c38d9bd00eafb96c199ad71c32eb3ce75af7adb2b8ec48e096d7dca663c2b83c9e9d9d873389c4792ec847d2bd9ca8b89f3f6f9fa53ea382059f655480f1995f1c007de6961392ad1853c00ede4e11f4968cb7777bf2faea93135225a522849d528a2b5eca789bc4da1231ee5960d6ea504ae479f1dfcb4b1e2fa1800285182ffd36f1d2575178f1520a265efa8c91112208092f5dbab428903a5e3e61c44b1e04e9043d79e9f1062b1d4f28e9716f1743bc60bbd65e2ca600d11f48d8337713e2b27f3c9c878340832f5f1b4088fbb54e14e78731f06dc3b0b74eebc02d2c6dd887b0c7b0d3f4131a7cf94c3f3bb0c685e9995bead68ba726eef476eb3639455b14c972a5a176bbe99a5d297b2985988b88cc2ec70433ee50c34897a7272ee6d64b389e5fa3168696d96120396488d1e6b5d28135e63f3e32c0109701ff319597ce22427d3a6d4225c3328fb718f276eec743385e3a6fd1321b2bf3e9ac14a6633e5929609ac3af9ef39013b2e1789b66a09e816824c193032e6a90832180e19ae28297ce515a26a865da6e420cb19174c6229d87a473115f6998e859ac9656f231489186897ee458564547d864a5c04d9e8b5a26c8159759b08e41f9fbf7b5b8c50c764b88a69580c4a51ab6dd2eba6647fa23e9bc85817069fd5dbdb4fea7286ec5e2c8c6e6bce5af2db890680a4fb67151cb4847b27a16ac6b3e5d43b2d20ad0c4e5d786601088c02bf359bc05f6905edffeec587cd42de939cf5aba25fd1474317713c8b85fb6cd2ee769173fc70f2ab61cb54c6c17c01ae6b79e093ab7eebce61b47841d87d73c24704bced3ae5fdbb620575cebdfeaf9376e029b8782a58f4d4073cc378ed39ae33a56e63728bf7ea372934fa71e8b95791440f975232a3739758bbaae029507a335d94ef3e980f6cc35c8599f1d0aedd535d778e3c7780b316e7553c7503a6ddb68b77da6f9e422c0ce4a21fba8675c0438cc358e73a9f2eb264ee5b13823d7515e121fce93983c92c72c7773aed47d4c7a72afbcae72939f5a2faf9bfce67a2ceb372aef3a0ae5382abf7e83721b6ec3c3499dae1f51792c924397b447521e8be4d940172ac87647ba251dd5a9f06a1de97cc45b4e456f5ddb9e5c871c06aef7f2a1d4378f458459c89c1d3ed111cf5b2e6db3db9c76fccd0929d22e803db627afb75eeb681e7f90c80ca0b71e12b8e5e7e5884cc79c762c4c8f9582f5cca77fcc2262a9d3cc83ece3834466fc3c12b865deb75d08622f611fd169777f4a8f05d3cfd63b6a403de7a29e22e0ef4e4f5ce99a5325b663a5103f0fe47c0948dcf9252071751888fcb9f9745ed2320d6ba8b44ce6d359a865b0e8e11f1e82020249c23ea6cf15bf5a6675e2dc680d297efad64179ceb6f01c995b1bad64f0334b55304af2cda9c5b37f708d9f455c006be047a07acc72a94bd76aed9ea02ecab310e5292ff99d282fc79542b99192a34e5ef2ea194962f2eb39aeca504c404131cbb5dd9352c9f30853f293734ef2d5cf92737e736f4e5ec9afdf94fc9a4e5e32914e5ef223278f953974954a7ec4e4b1322f8686559d45df7631434addb7c33cfc8ab4237537c8b63603fe2a005d4fac0f3b12f6f803edb28b65dc58c695d3c2ea91fa8dbdc13c16df54b7d67130cd2de48e602cd63cd6f456ddf20813b985e83044576185189a16605061854ce34d764faa47eb9857b742060e2f97f55812f358d2b3567ad54b7299c1a82131200557667e433df3b8b2885c6fe328a47e9339b5967af560bb67b53a8e773d97a41d513ab8d263625a2df7d80c48c18d0f5d7a1fecd607b50012fa17fa47b0fa0f86d7ebf52fac7eb6eeaa762270007c210c7b34ec21618c4d6b601e187934e623ac85b3c01e5146d828381292c501fc8d05f68852c9c7c8451a214f53ee27a17cf2470ec140a4139744b44cb43ca7293f0ca43fba8cd232fcea9684cd91c432325dd2a1f492c4e0921ef76cc194d36f309fd571a8630cb9fa0d8683b1f5e09cfc362d8302e9a7c3690021eec75b5effb5938fd15b0cc449746bbba10196dca819e0c995816fd32de83f5450138c70a1fc69e2b2f8bb47fec82029247f2410f51c175337329d52efe901a0afa8c48cb864452b11d188000000009315002020100e874442714094e891b6d41e14000f78a23e6a5a9889435912a4200a8290318600430800c010430019221aa320000a3ef4e9d35b53066e1f7cbd3409fee2129c436613d68b929156c27a510734c1833b0511c629c9c83401dc65a5e7dca03506ed3b0479e864c3c492f5329b3edc4ec87fa6f078d60436e945a340f83c58b4d6e1c92bfcecb918051b499f84c5ed36b7c117a82add46335c3c27f6f0db236912ca1d593860f990c83733c5e050a3abf5c14f5501d87864c05e43d7aebc8f02e3ef01006900c23e6a6674c58b6be71e9fd800438eadde2534b6fa1f312c47a2014a3c28f28b7617545a1c135bd633c36889700636db1748ed65eee59e5383c18bd87e93654c324216e00be3f89b822916a092ee7c4979fab6bbebdeb525ced56bc4560f2206f416343d74d79d6d2b84a2f28906e1aec267692be6d720c625f4f4b3ef71fc7abecec9aefd8d7405f7f40d78397a12c244d6ce131cf2e0e2ca80e2a1f1affbc9dc1592b23beb8f77e481fe01cb89510d641119f1005ca5a51a9f0f2abe352179ba53814ce6138a63f2a0a9dc8e840a864aab606b5daf317569a301ec5d77219a3bfb01967d236c4bc8f469a30c50af2d1bcd5f5f372716bf8d27071665ab63ef6c6a704b8607cc74988689db556a5dcdb5c67aca56df475f775d1c11b64cf0d4dcbc2b4a0e562033da83ca8fac92224a8dc01c3891a8bb87809d6ceddb844ee6574195290a4682bb0e013004af27f0bb71b091a8861bbc658393174dc9db4321d6e0bdbfabc43f9bd202479c357dabfa5e9d97332fd3e89ff1e186d837d0d504900713d881b90fff802e61bfe76792e257b3a38d6703c446dc9117aa972560c4e5d5637a8fb2686d9a63fcac97b97efb982569ceaa3e39b856a198f4367ce2dbf195a8e6ff89bf90d50024721ca5d5a61e252a7a8fc9ab5b762a7ae4d0a943f13a952e9619cd5abd2127f17b531b3056336cd41d59031c942c0bc0f005e29c517dfe103ec4046b03a06ca4e06cf7bb27d877ab739f78b4c54c18e1940c16320debf33dd4f216c08f68e2f642863cf5696493f985c498e04f8ce9d837c7a81b8328e3d70bb973b2abf59a0473117ac8f61ac35c2fe90cdc7df76c59d9c4bbb43c771100edb4c36e8b4cfcb1b8f476cfab20ca2b9310ea1d53effb2e4b342f149c6bf60ca3d05dfd6308160c2c32e48ff795bbf4dd750b7a7dab7b8301e778b3a73c764c740c2d7c90d42397b0451a9fd9aff27fce3e4325bba2b3f7268fd77ab2cffbdc7054c3bd43f91a31838c07e65e042b8cfae5807236f58de9b17fd29655805ce329636cc0e1ca7ea8692f1e8d4e2794c0157a054d26e6a6f608539ce766ff0a3ad697100f03cb56df2ea508a260f4e601d669564228c429854856c363a7af4411a8e85a3a1eacf4e2c25e213d692cce44e92e37831420573c27da2f4aad668d6870af844ebf8429c052e485eafe70a1867a0464e3d2a50ce14a5964d3e83e68ad8dee8460fca2c8e783993c1d4c233fe78b6e0df2e6249ffac941671f61855fb7b2b6d136b870a42f71aceb8fddf1319dc7c3e98fced3dda3dee570091b28889d926f430503eb3fe3a855fb18926f8f52bcd32dc432a45ee67c4b86800fbcbbfa7ece84be361e142a388d9e4b9435d1c4399eac179d4a15d93f5de7b3dd8d3d9c731b10a5ea8edc35eced06fde6026a064449a0f5c9cee5ccd8d206344638a6ee4f26788a4b005db843a43689a492c9b2504f7f71fb80dbf5f1b610128a2534b5a26eeb23381479477f03bb193ff5d73cb53385a259864bafa638c4e64492df295df727ee4b19247f64653649278b310181b6f794c485d319c95c3c2fdec97ce7813335fa0b529b4812243365ce67ce9cb9d2d78dce1322d3a11fda60d736279a5bc5fb772ebec5a5a1a2c1e74b8c4808ae0f1bb2b72d75e40a93f4fe897d45252993d6184f054e4fd516667380574831d89c48f4d3efb3a94e77048f0f2464f49af7299a2a29766f574a297c8ec7de812e761fe51fd316559812c90f38a123cbbff6a6869ac36edf4a22b97aa7d36c8144835c7aa4bbdcbc9e51bb003897b1dfa9d6615dc3b07249022b915801ce1e42fbd39c2d4b0d576ddfaf60bd1c1e0b27ba76b125b03f671a6912bb5347e161cdae60019cdf28b89090d457c20f9a632cef1db6c148e55e7b0df2a554607539760e463ad67250ea5ee580b30ec7cc64a943e6a82ecb8198510efcbe9316c588560eb80e3006095407293f2859b30f50e34b394032298fc307e0e84cbab33b9f2228cf042347e76d7c2de952b1cb87a78633086fc2386ea09ba9564e05d69bc43a9d3092bf562153a1a3bd27ead25882c35822c13d616951c15e78d48ba599786db3b0fd35b387d1924f96f05857f247e6718551fbf3f7120a97aa277b1c88e0b17838e7a4837608073d52b79d7357c596252aaaa06299d759a36108b6a4d33ecd8b36c1a743c5050405c62732739afd030dc70aa664d2ec967221277bb8e94580fc5e52d305ca5b8536d3c9859e9944c355f098bdaa1ceaf3317bb56322b19381aece9fe0a80255df8954cf98d1f95fcaaccd4676cf37db2f78aa748dd0a51e1bc24af67f5ce43e7f2a577d87a3821a0653f508eb75b3f88febb840fc353a0a2cdb145d878ec8b222acae281d565661a18212db8bdd73b3a1988d258682e1e4e75c9b8ca49e144d8ebe22a8dc392c2bd3b754727253c42d80db86b3f71ac830d8ba63f8d05e4557a28f71c1845b1c0413d6c9b0b64da4076fb275dd9f4dd60611bca54c37b65db93dad26eb48416265e0eab63e917253747a45d483c2cd1fa7a101e78d1f09026a726a5d76806f5fb17d420e3b0b49013f9082ae2990a5902c08ebe906c364b4f8fa710f38441e6828ad9147e26ae529d62273ee5d058fe508ae2ac1484944a07b87b5b2a1a154090bd2c507eacf8c52433d3dfe90e30927b22514bc451a127155975a90144910a32a235c81f12943083841b099dcc9cf4d982eac7e0ad5a4567e12790aeaf59282b51a147b028c82e0e7e88934e5da1b0a2cfea94c5685c20aa2d4d7496d0b91d2eb244db914de62287328c7cd24dc17a676a048668692a5fb4f4cf239c1904c9d12992cee4a4f781121cd3aeacedf6c2feb25d12a67f32a8b3ef03081a8c08f5428e7b54c3f857211b963775140d2d3a27c1eec2595314f164258a5a7d1f10050cdd2264fe121025416a5ada9224c9af1658ed686fe21040b2535392b657c6c40406cacd938e878209abba6b6b590137307ac7e775fac6ff3e6c316a0218f8c38509a595ea828e15a2fe6e88f8bcfb4cfc23a3e970d989db03d0007d5b334871383758121e4bb4cc8b2c21969b8c0212420dcb8d86c9ba4ee24380aa2f468b267fad688f1dd568429b818fc58ab72cf428706b77fd172980eb159d01b3086d06d04aeb8065daae95539efd0818e18da9268bda021a0bc7d111c88673a02eb7344ccbdcfbd9ce2f7f1784686efe83c8b4d5c717434d1b6499fec1043e14c9b519cbacaed2f5f3e23edc194203c60a79124c97ef970d0da3df7ce6b6826f698c2c4b77cd1282722145baf5162e393d17419ab58ebbcf3250ab70bb0333f321d5b525a0b0e37cf1fb8b4b03527a255b6c2e720c4e322a49f5415c4fda981534e745965fce2ab2f72023adcadacd270545fd98c99cc94409fd4add478db012a45ad04b9265c353c55ef0f05719dfdfccbd09b5a8c1c9d9a33b02b390445f5bf3ccd806207d90345b991b908c4db0f39df099fbbe4176a4268bcc0a5ff6224e2d0ac0428c8457322572037eb9d3c0cdfe980ef9b01594aef8ad71313ec0bbc69b71623b0387dab3587c49f05f30d4ad200a5c0db51f9ac85d8edb42aa7808f21d9ac43b84aaadc4c9c5f1f5ee886e14f1a3dff9a3ac6efac3250895c1cb0d79d740fbf631e3388766e0a8b3ecc44916ca47125cd7cd2c2e3fa86a1671e5d2d7e0bb69488df361997e7c5e7e093333342f25d931d9a03775d0c6b987abd0027362e80328389c511a898fc67f519529aa87dcb97faa625f7ba6ed09ba66c0e35fa3647dccd48d58c1da035044d7b9a3565c4ec9cae5f55e53c9016d9d8b7f9c922a3ccbc3e4da26af49bbf1352ed0b655a6c20186a1ac0bde61b42adb7d2e06b8ef3456a8461d58870627ccf56bbcf7106bd0caa3e9b1be508ba53f66f8838040dc25ba29e2ba5607d1aa77185cec695ab86d43c19d230a4d4b64934dcb10a7a8f54a01afd00957874a40b5922e2168fd7b7468a54819d47b0640098a0b425d70722be570fbd6808660046a710fb7fe04765d602d76b3cfb64a2f28ba98d82dd7055c0374159735e36fef74af3193b53a8049810b2bf8ba3d01f00c67bcf818c636ab63dac4a56df9b1a9654371a57068ee8b817b047ab91c9b1bf8909aea0134d4eb1d9e9df43eeecb04f73f3d9c34d8009cd2c2ee93baaca2d367157cdae3f57e5cc2043926a54c898c29bc71491ab8b49e5db92aad759d48f4834661b736169e47a97a4c863c1625d386e32b6a3b010b84646419ff621b82ee0aeaf2472d39159e333553ea9a06feacc1a54ef31c36ad11510a4d97a0815fcd6da5598f7a6ec3f1d2940b255be973b2bfd4afac4c721d9765ce1f29d53de24d5a53cc1e2c711fc46c3c9f9d79236653a13cfdb3cbf7ca13623d30b64cfee7c538d8acba68d37aa983c73af95b70d468ef16a86bf3bb054f3e491da5dc6e27d7a8fda59dc093b3a00d3ab4c24f0401c13f81df6068ef476bd4eadf77a9bada2aedef589334116b715853e4a6ce86a94be2b6d3c5f589882829d0f14d02d7492ecf94367ad01e25cc505a790a15e1de2f9848eda6d0e7536564b123c3a2d760a3a2baaa1d1df05aee44223d20d2bfafe8b33bb2d8e3abb2ee67f20b92e44757e9d3237e8d6298859c13182e5dc3a154d0154d7978917612353b0b94b88e4a885687c05579a11312f305579933619cedad3b2fafaf8fbe9f95d5a7c1ec00ce26eddfd4a78770a8dc169ce63999ccd2152d44db37064ac138993412341d8ac3e4718af1fd17ebb2d6ff79de8ae2d1556ee021a2f41a34d68bc54edca85b5519b8e6bed3c93db5b20a4b59076f4f83ce29166678699ad1022c9dcbd4a00d4ef95e194567f0722444ce68891065a3dfebc6a8c3fa4324fee7f04bb4de4c73fd01138bbe7887c3056f3592a20ceb37b93a32b46fa6c22a4e16db75d9c0c2dcf8da5000cdf0dd1f4b0827099c78d1bdb3476a304fd1928607f18999a470fdd96192bb8bdb1b6af56bb842b57dcd9997c0c748ee08f120f2b90d8e051aa5abe219b7b7dbaa2e17418af912ce3e8b8df403847cdbf44e23309934f4b1703357f1114a6e5260b234016f35712136996f550041f8d95b822c36e4088131cc0f5e13a645a077c928ffb79703aeff270887fd1ddfd57fc0a91a6de88e3b1719026f4713f8d43d6653384a079e6e189939707543f06ffddd0c95cc8fd47b2eef1de7efd44646ff26b45377959db6fdfbce3fbda13f252eaa43f5bdae356dc43be34a70ebfbb5fa46fa613e3fd8d98a471bc25517c21d6705d862cc2de404eb7a8a7d3b9d8a11619165d01cf1e07396d3a0c572bc543dcdfa1d9b8f6dd079baeb3e50c6881d0e5692d5599963d954a857a268b05d8fecfad9a924b668f0844bf76550f3036ce4dc935c83d0bb74bd0e81fe46bc1ba27f92938e2c9dc0b6b999f37315513355ebbcc08a2e83396e0b5bee3e75eea7252f4122b94c1215a9b835fdffb0460bf86d5a9f20482ffb034b521ea69a482ae5950f3b36e6096ef479cd237e7be7fdddd720745a8fc205f481c48e9c1c94849bacbdfbe279d6e498308619166768f70507c066132d686b72764175f10da1c943d27c24bef43bf3c9fdf865e798b31285eed3ef88abf104d2bf4377bb5cd524c93b48bc4a1c49159a26550e2b0965b1e7c89499e6609e07b4498fccd848c1c2d0deb82a3c50dc0e640e7719e88491bc0c0f8d2bc98acd4a6056a22e2017cd32de6252c761253ee3e23c0ab0641682c8acfd803bb0ed435532c053d34651d52d4173ceefdcc55a45ab84776819b016b1b8ac7adc7b79b1f7d0f36c6b571b7e3362c6d3a44f4847fea6c7bd8606f41b0b46ee3042dede3bea99f96dc37e7400e2892d2dfeb606cee1acd835d7321ec1e6f6a841e026e110f7598f0726a8d54549392e3ad030decb016f4e28e625e10ec83a6631c0113205d5ea63854d7cd33eda60fda2fdfc66540f1110d0d7312ffb244f07004a7b6f636aaf63c52393ed5fc46b662f363bc410ade68056c93b90bcf5207324cd01801da37b2fe5720ace2394e61e4d863a7160f5a114b38a28f8149362cc3dd893ac36424b8f05ead99c7fb4f3fac8d95bc88aff8e77e56b3a32e6dc1593016ab7530fee3d62dc3dee2cc11d254faaf7c8afe89a541b921fabd268f63c31e18d936ee4d3c8ec34254526e280f31e8ca85644231133d37a1a9c850a42d9b1b46f8bcd821934c7aef4795bf31b17557ae40626213e0b2ec178e74f2761989892f86d96dcfd1abcf8904de89129e5f22fc61208cd313e87824f8be6b383fd4a1c168283f28ec3dce3133c67f17244168efb3ebaf10f042299395754155f332e1fda7e348aab9c0118dbb54269037d540414fe19cd46cbacef27251dcfcb729f721a8e100df2f2c4f9e41660874460af4ea6c10b2f0cac88a4c2695323adcaee8697b0bcf2af36464388bd87dd9fe6832fd5805114d487eea96f9867c238135b610d30681609bde453a57461f579f0428699f04581ee2c790b5cda7f17c9da170b3816af0575bc36d281ddd814256b0e3bc029d48724232a49cffa1b63c93fb5168bbd3fd0a09cd3f3a0ad8dfeb5e0dd2d5dc3040005962f509c8bb71452f3b5bbafbb166337f455e474d90d10eb7bf4116dcbed4958d0133e500dbfe1413d90298b2317eb219953198b2a56ea6af3e3b6137974355fdd97a3fe882644cb979c235c10f303ab37f84b0fbf4a61526bd4de44fdf4f23d541b30187d8dfec5a0afd94c6caf308bc7d68a07563fcdf54bc6bfdee5fdf366c74d6061296c37331215abcd3b970b94a0e8e5bdbda6e06f62b0eec0410894f99e02745781c8ef647b33260850ec39328e4ae252a583fa90bae99b197a0fb56702a8299e4cea28ff1377c03c7063a53a765be16544cda27a8c9beab78d00b310b5caed718c1d1c8e18abb412249db6934a71ee91f1a5c455166d8cb93824bc0dd39bd124bf1a46cf342c6c720665de030a83cedd25948c07a5b106ecbdd167c1c091b0a5af8cb1d8894fcd9703b0c42f1696e1eed7fb76a4661b8be93ce83f8719a983e0e5bcae46aab626acd01494ea7607ea82c3778c7a38d584baddc2a074cee574dd17d61447c3414344f0ba5e65094a35098160e43534165b46c1cda0985d00ad634f9da5eae99a0eb7e18c01254dff4aa326e28ba9a09c1c68273cce4c762e1a45c0b4139ae0b6b5c7f87b5dec1a441a0907160a6793f15885e1702971a9b41360e038a3884587a9fdd6e1e8c7807cd25657c217af1fbc0eb16ebd155991c7459d72b2230307459801a867035884e47afc2ac1ec439bb0fa2644016eb393816a7e74d378eafa2aa4dc7ab356fe0f0d2c226fa3df997a22474e16ed371525236a29eefe04a929546cc0d92c319d20b835384d78c54f1af83d79e20bfe1e14d985dfe3d058ae35b0c5ba0edeb057ddccb8cbaaada54dd2740eca5ba5663696097659390cf5bee00f5d32d5ea72eace4378dc0044f0588e2ffd150def7306a5019e0a0eb8732c4fa6794b46cd94c1378ec480ea1413306f8c03ead8835e65aa151a5a9838e19290d1eef716840e2cf2f07da4d7c27060251eebd4a99af26814c451cce0197c4e43a06be5fd1320afbae623c870ff987ed85006427aea3907deb356161b592ab369e80ecc00e1f3adbd25f9a07c6f138608449a081d6798b0884cd1257d4622ba16afe30a3d1c0a8f720b2ef2c42aa8f59624a021e838bce3c5f4beb5f84fad6de4534811a68333a532cf60e014bd6db71ae04dcc6b7778b6ee9c3454a8a53936bd798f1f1ab576832ae72c23442d39055eac7f8a02220edcac5427430727fba82f4e111b33e5ea2629309cc249ad51ce4e8c7568ce4d14b2220d95ab811565f43b9cc17f3281575cc2c91129849a2d7e5a670d4833ebda7f411e522d7c6481b2b65817a708f98246ca195a9220d1901d05bbaf9e3824a9862c13c6b669113e816f349f3a25117787b7482464c6956f2d9a68940a27a6cde54e54e976d8f4c2fcd43145305b3fc2d9f0768e39b080f2d5b4e76f47e512c938cd10acc9df1bc763237863f0dbdbca35291a842196424f67342ef501fe3948bb6c3d791abd1431d0f09770fd806a03b56b0daff7e82b0fdef911e75172c3b76fb97626687ef1f9a542c3826c388318dce48e77061d059d37c1db57c8c13b830fe1942bd987ffc9705bbfe624708056b6d3358290384ebc2b954e04bafcfd366941cd497e85703d603e6e45c0958eeacfcd9fd2ea88d585fe04277f30cfabd3aaabb8bbc5b9abaf52fc0e62447b7c93ff494ea84291848271e557d25cd0dcc05e3e2325c1609d9c06e3ab022275be06a012ae2857fad9480f3621dc0841b53c00e46f585e68e0ac336fd22acfedbb52dd52442aa6552acdbc89e2b007a033f55d5ce69f958f49192fac62d2b666187026c17bd2843711e3ebbdbc9769d84d88b13eca6b052a5900b0bbd4bb9426389a697dfd446449de7630b86852d3bdb67c219ea3bc2fa41f2c219737661d9ae3680959e40bc3a71f8ddf022fac55fdf2421000c4b1d45cee712536e6b5eea33f8a8075e671ff500891c0ccfc03e734e32c5d39e94af5671f8bcbf6f69194306ed0314965ae7c5c28073350e9fad04bb6d6b33ccee38533410e16a724f65ec044b74da04642b9c703db6b191e0d3ea713b237c9eb11f0fd993a5112837a386768c69bcb09c6954c6ec3a0d4192d9e70a2fc7a61b8a52f8493b7b533d44dbb509fb002579c69ef11a51422b3ea422d674bdcb73883061a9b4ea07ce4de01ee3529710f4bc09f103081e977fc355c4214c10263ade716f8ac094601a918891c9709b7d60a3f17602f049d6534341d81145b3b23cb71da7bd9a90c8d3c703756080be491027a8ee303c8d4ec61154290186a5b00a6bb9fa81b0b42ab890e60ab5faf557202a60678f9ec420000ecabd9941285ebd29922890999c03142d8390e30ead5368423ccea090676c331ea7904de3841a8097a129ebdcdb9976d5e9074714a6a7079305f54101162aa4933ba30186a4a9ae7421e85e1344a0c10baa92fc1e6fe0756adc609ca0edba68732bd180a05c2444b1773ecb4383a0cf4785a866e441aea2b532b2809904da56b983af4d44c291491d19a8743f7dfa24aa5795887a2b17b769335ccdf2d87e39aa65dc4f9f1a2294669f920316004ec3b28c04431bb9eac0162921bba6c871ee17aa6f75011eab784afcefa5c2440dd61f59605b98d6ca155ea9887872c1273859e749815cbc3aa2fdbaea1ba780f95fcb1b4bbea582e1e43c0163acd3d64316e003e5a92e0dfdbba44e1a91724c99c23e89902893c7d959b30a496b231b5ab6cd536ff8d480ddd0438c98725241d5adc8120ead54311a8fd4bcb87a0a97c2e95dfcb40e7e57a11e3dc86330d5f003def8f99f6ec908e730c429b68528ac6ffce47b48e47379c3dc1acd60c7ab307e08a907fb1e9949ecd8f5a73660ca47cc2bbf3a7185b83af3b28f88aa628214acf94052312ab8bb515a65c6417ee25935d43764013f5892bd443374c1225f53877b9f5f103ecd78208a93286a380e6254bc1a14c2cfc9623e87f50989f0e1cbfe96156cd6fc4e884b58e8e35d959afd4a400e364b09fd3a81a16713bbefd390f26eab93e58604aba51a1d4044572332a40e89a079a2b211a299f21ae0407393388c7721cd1b29759930c9576bcac91f2981b251c82482a6ecf0242715748f546f3c5ff4dab071616ab83faadb58c52ebff507d411cb341c2522a394a4c927bfc5183740fbf72e4293d2042e6277c40cac29b6ae240f65ad5e6005c20059a41e9a821ba6cf14e2237e59bb89bbf9d535b5733de4a946600ce7959a1925becd414801001c25e456f87735e7a61698574bfdf1ad7ed3b1fc4f51c415e93fc78823ce3297d728497b8e504e4ae06aa1ba68e6542152c5cea023856b5c30f93c70fd97a062d54e1127156aeb080769154524bd2299478f0348094835d46c72fb3cae43595f26ccf804116e14897f670ad4740826d049feee74834e744ac4610f695069180dd4f8615dccb50ace537547db9ec3340711666e03119f153e3a8de88657a1399d7df0aa0451bcc388657aa556a4b76ff349c64c194f26dffed7227dac33b8852eb97426f3c2052d20b83ae13d1dd8da2110a635e7917c2cdc6bd6fd9359a4418730cbfd3312bfa401d71240b21207820eb305567914d2b29a35e7e78bc899477b42f49ce34bcb6687b6b0e494f05d2d87ee11d37bf5e59bb84c97715f073ff3d2b76d9f2202292542e68f38ca3d392f37208462a3c5b5341485c9c4191435a688896f32f91b503ef4ceeaf96f0c7871f78b5ca83a54fce624bfd4c856ebd50b39aa540b1030d1b887601b1317b654ae9d8f6fdff1a5a48b436b45894ad152cb63a6a4442d2b74b7cd9b53d238d85884225283349f699162f66172a057f36d4bd9d6c26e0d4ab235b8e7d691ce24c586f87dd205043bae9df29d6543c6030bfe66a54d9a6db09d044d5b41151f2eab6f87ed0723a79dc9cf9224b92bac07be436cd690087f38037c8479c185443e5d63238a9cdf6643512cea7b745de7443b8962a319f7e2f7e3aa63fa4856428ebc90226da840988b52420c07026fe40f14b7082098385ba0512a2d5304ffd0e51067beb89d779ff6820e2f1753ac2f8ad6500ce850a51f08bd20daf490ccd29940cc17b9172cac8935fe475e4f5a22551905548c90ca643921be4fb1c2e420c3aa8020e80f72009282a937427cb85a230b91936212bb448e729e70583a3845a71ace9f56b52a7f053d325c25ab4aa5016160b957eb48b3af7f538785b0c66ac7e1a860a89c40d7b68dde41a0950c82386efe99bf837e5bb63225db92468e7f69329777d60f1c003223cf2ffc3def2598bfffad13c35f5c18e6bbc3c96b327af9ed16c961defddbc2744d19e675e782913843de1670a5f7a29c10d8664af79a773065e60171cc17ac6ff7e70bc19edff6d27da11eb31f24b7fc2a2582d5fbe5975104e5d5c36c79d69ed943563d75d9b64c5e21d20e1283c2608936225d44d0246fc1c8956459c868358db6f74284aba2e6623ad6459a17b9ce1c62556c09e0061e0bb61d01a54a74dfdcbdee04de496a8207591e6a85d1310ee85cd8c5758442e0aed043cdab5d12c68ed4e131de541ae24237f91381621e2b0d2344df07ab8c683060fdfe9a3a223cd69ed22a16eee1af997ffc5fee47e3fb1f31b3c5a8e1a85549b1c0fc2a54dc17304e9269946bfa7d969411a1a1a7ecdd69341ef78ae5cfae0cd4b04f1205b6067de82968d23fa163879e72afa7ffd12a480b8eca91d07d77ca8e66ae189d119aa7e6c3ccd7e61b05d3de5acbee253f3cada9226ba73a2a662ad2ec8717bd52f9224dcc4872d1408149765d2890f52750af11824a9254b0776b443188eb4d873d922f85689010c77024f1ddfd2b0a0b0943123f6cedba629210ae838211072e8c6a8c4122096f2e3521787e39bcb32eaae6a839a66189179ad45619ba4596a955014036b2700e027be57c27939612d4a4082511b298fa4a0e78b28c857cf43b71b2f023ea1f1089613cd6e40b9751dc3bb64b609e243187444b49cd1ee28434ff5c456174210446ac902c76b16a2ce32b3a815b90973f54807b59c5b768b9a06f512a275130a3db848c70c70b7f771e268c1910775d80954c3c9c27f97c542835cd01c7e949acb4feaa00e77b91cb815ace3ca3cb5026c68d5b6f54cc4364dcb26b5ccb339134848f02eec448771558d6be2cc5b6172a130de2666e24ca8ae483cec78416ee2eb43a3bad805ff096adfce242c3cc1fbc098659ffe0b191628088e6b228fdf82586b78bc73000c9b01983110bd6a1b0edb465d4bdc96c5491c57502c9eb6eaa25de7704743b8b4150eda7007e77dcd8fa56f224bcaa58e354bc69c30c03d3df24c44ae6857e4a28ce8eef4cabbecea9bad8e1903d672000999bd6b08abe2caeb0d5e14b38714bbbc4fd2dae018014859e315c45e19e4314b2ecdc1e80599e76f1cfd2b806f28fd2fecb8a0d56ee5c356d9fabbcdd2931e3c6728979c357406c369f4837588c656cb0b7338faa54d84aef79c3ffcd63f6bc791725e3f625e231121417167f9cc247ecb2e90737b4cebea3eaf7082fcc4f9ffb566cf1482d284c13a07209b79759085b339cbc07052d28b294d703288aee623c06cd9dda0d83f6aa4a5debc9aa99b2a0961b7f85b1e59b78fefde3f2fecdeb3746aa7163724e6cb08402d4f3d36dfce81e912edf31200cf3b58af1813ff33670a5f75c10e448323cbfa585d4f8eee5168fc77dac6b09a611e2a98dfdb763a340dba0dbdfa383403469d6ec1602ba4ed659d6f3e126afa9571a1d615e4369701b41175b767830337f1ba831973a871b95465c05cfd8d5d23f1a4dbd97103debd0cfe07445655b4c476a86aa04cb7d8b334f8c662dd09c0cf8c321d6496bb987fd9c696fb33d3a1ded385d5040e4ae47273fa93f6d02c18160661a15d491e61c23ec40b118b8f0b69453ca495b0a551022398e04e8c7ea839610768efeac5b231d969b08f57bb725f4316b850245e08a0172367214e84f4802459c78a4959884d05515768db5a2877de6a54ffcb7ffb31a4e7731c4aba16b29c971d4224e14506ea27ed72419d5f510973c015eb2f6f844d5bdfd664d15a53fcdd85b2dd24f3beebd16eba739f6ae95fad32e6ebd56eba635d6bab4ecd94d7ba1285af02b367e392e107d09ed096d9aef32c5134014dbb7d064a982da32ea18be34c726d3fbb19bcdc6279b86a2898eb526da3d84ecb03cc326024ac686944fb88f4eb4f03f7c924196a25dccf613e3364d4d5b79b14b89a59a3fe6f42b494d0e48b6eb403cf5a5e45d39b0f4454e9565e48858ee20ba0718abcae142e3422cbc4de60139ac0557a3c4c83dc8714b5b05571b5de3806ef98462778e2de057e38837dee65049ee568733eda703800770da4fa431d774c2e6fa0e71792f69185940002e9d063e437be023c4eaef4766e2a498093f792f3ea0949fff8618f1a95859c464b1122946c785afda55ab4d011cd5824ffd0ccdd9d968bd7798a071ce5da3887cb26b7c28f927dfc569c019f09bc2b2f12ac42376736aec8c2af8c57d843365c351548cac319135c98792e71c5a68542f3c96994be6fb6c93a92c901da3794cc99dfb7889e388019c14b0bc63645617a0708125ce9ba05622fdbdf5f2d8cf2b98352c2307e6f7146c745871da4205ba381d2ced410250d8ed264402f84fefdfdb7f4bd72607c23401e2089fb7ed58898d06872970eac33c0796f2b65042dad1c9fed1fde9fdcb1b9ce0f8de71f737747828ccac0e56ba7b8e9f7af2ed9daf05170266276094f89ecdc4d25c8057ec95325249d4d3de639324f8f9c7b117e0f9750264f4957c205e4852dc25fdaff7ffcd1fd3ef8aecbd7750b62ad4dc0626c0547888f7fc5f803a6291bf4dcefe9b0ab0102eecea05c11731168d604105f5bb509e658a6d3584f91f3df3e6eb7a718e332604d54212095a518eaf83c654f81328daf8a54096dcfd092d2137795f17cb2ab4e8644342faa0a218deb01084cde5b09eb37f34871b84ebd2d5c4798f85fe58b59621c1d86586d25c8dc1ea6e319dc5a75160d9d267fcd1c072f71808b8876d07644fbdd819627a6a9f6c3cedf2e6325f8ef9a0e11ff0b7403fd44c59175216619c3efcad2ca65c20426e8c6c718ca1447cf8f03018ac5d306460bbc59081f6b2189c35d014b26ef5b3fe6460b93c26274a508a58b0f518ff34e0d29f3187a94dfc20a41b974a781b7bfe2336adf720c0e42581104cf0a7448ce1049e0b0f73497ad2043492d1a71c80ace1e95f66a201fa457a5c6a64ad6a19586e1e63771004bf78016f8712f21b85d1e0f6be18d5906545cba83ecba27f743af22d3674bc5eb6ddabdeda7d619c917cf6a94413a9f5e90a0f1a73eeec14306d93dd6cc90779534b93e8deb535b795baa648799f315c898bc440d30ca38e1c61710d4608082c6885db2f6e763f646482d205b001c77d1ff12f47ab43cd096efd60fdf4498f76a4f12941d442f6e732a159676e99ce45c07119b0c4efe1ba30bda91130098315772cdd4b4fbf991165a45af77d3edddd0702484ba77330af9455d3dc3e24b935d2056c5f2a21fcd439838604edfe9e3be2ca5cb16f2f1352a6c4b546e555fe9f99be9c1c40669930bbff644a339fb3e73463462a5093c09bc4d20a6d85ebe9b1b773d7a79f32fa0c346e4108c58ebeea988c68a2f2cd2dd11d89849127624e9412177fbb4f8be70503ee3e837b5368bf2ed9a0096aeb5b9d51d198bbf07cf51b393c6f19d51f2cce205250dde2bb440997291ec074a890af4b94b87b5471e989366b06685fcd9ed2b93ad13724f022d0fe06702b13370d6e3770ed6c7dc9b5d2f51f08043e2692a7a179c11c4452491a05fd7d06be25315110073490c439797118c6f47549f6e6e5ff29fc3a2d10b6e28bc15937fb23b80660f37bfe1cbbe769b63ba23a7bae34aa644c267a3d66348c1cb3417e8eeacb923f3d1f8e1a2af4c6961c39df1571d6a12b692306011d7a28b8111801d20e4790d91807adae2c9f217883cd789830ebfb7473d8d3d7ef8ab4e9afd6800e9f499dad34365272473351d02befcea395a90a113ab691fdb46185c1065b39a09d71409d7b52908e3cbc3af83c345003c0d35f631294e228f7e9f0a3da5fc0a53f6c8fd0938163afff520c862cdb4f2dd2f0e83c8a6623febda1fd9782c558eff634238974caf8cce6a9ce2b67acbbc5e196b5bbe4e079a106f598197699b3b932222ace2f423a007d3f63c060a966b41737dce1bcc63b569267032aea869c5b2b12aa2f2cd7628e1058d4dc185968eb94b9a47ea672b8ac2ca161ffa856716c912e1ddbc4bd6d1fb1de7855590f7b4d1c999dd8f2033e36c7a4168a0af7efd8c7c253ddc9d348398bedf8a1a63d26a2516863664a8faaebccd124a1e851befbf1932faa7b44460c89c510e71644a6d0bd4e0b9400801bc202da562d300e7aa67b35cbd0af9044c5da1b7e847784440532330f27455098e1de1cc17f0d144b19364a63cdf1588ca7da8e7f26e2711331bbfb423c3b0295f8fc3722a292a3594201fe4d96a5bd6d31e725af8e91271005cfc06c3ec95daa4ca393e3aa1e37fd3afea090eadf19cd7df1a50b7c3d4527c6b5628eef6e60d746e1a1f6a828fe924b81145450942858f4011c0a0901dad754b643d14b48a82049a733a4fe094b8fdf970e07ae9a3b1322846670650c8b0d16aa17200894e97c9568da93640485a5f0e29c6b11ed92f76833f4b15eae77207a4d3dfb9e859b41310c911cb9815a0d5a75a893bb375194905586a9cacdf02271d8f31bef10836f86189ec98e0bbf326006863b42b48a258a1990185f6c5f2ad08e27b1ff9b623f4e677164b1309e64aab5b44b5ea1943cc57a79de8548867b01f52e838b856925d7c6799746b82cb517efe433be66e662aa9594abbca0943dc17af9deb1883b197e0e5db0a2475a9f33486afb1ac0a232908f18e4f982380743812c9666848ae14fada07fec38c6c0bd095ee7d06f158fa2d83066a44d5b29e0608943e32429bc5329d3178d6374b7bbdb38b502b1da98691dcfe7ff1b796a6b9c4e389c5493ee4e58053ff82514897d3e301e700567255d7d7f56164a2f2eab46ff153d1db0efc101fa2e7ec787374d558577d7428468c87ab85c1a707c49164166d694f7baf6513c960960d9415733e016d874ae47c9f9a35add15b910385f954935b805cb5f6c24415d983796e3267ae516ea843f428de4b6af5f6b32a051a04bdd9a237a9e211ecb5914c19e507690d915e640f93d20426d4f307ed089622603cc227310ae55a978e542496165d420e0f1ef15fcd7ef80c99f8bdbbb456e4dbdb0399c129a9ffa78e79cb946ca561d2f2897d6e0a27dc4466fb76771a80c5c094b62c102136bd2a8523e0123eb7309c267fa2e09ccf62f522ead203f5d34dbb0213a62f5f142d7ab0d89b4cc59a48396382463422e48021c327be0daa6d3494d260e701b42eaa5c132f0383d63c733f7b5d5b065290046f0b6ce30759a84b5230477e3fb4c39aa65d88104644ef6184abfe45f26b1f7ec73d642b0bca5020d168d11535b9677df75e075cfc0493fa4ed1dbd64da7cab7d3530a03b77095d2c8f6b5dc1ef50c6e858757662ca67dc7c79e49bdb7542f53c9d32ca96d864476906b7e498a08e5fa7563489d35c818d8c5bef827831f0ab2e63ddbf9f4ceafdbfae4fc8e6f1c3a218821634da5c72a1a704b06966a7f6d8049de3beb83544d51e59bf8fffbe2577418f7c6083fe56d70aa6ac8cbc7341cbea4ba0eedb38fae6ad0a75d9151eb41aac54904141e8002a63ee976bd870661ba3597dfde46a3ad78453b5730be035d26b56dfe40e82bb8476723ad50c400a77ddf3f2e1368dfb17b74c7bf8979cd20fffa30c7950fa8400cefcb3a03bc31f52f32fb2baeb875af0193c840f450855a42f8f14e77352428d0c9a0e411070d80a584d53cd1a3807cd69d1ea12a39373a11a82403fcc0012c00ccb9b9a7b026f3bbfa1f51d759e2e2a1ae80c7ac689a2b92c602e67dfd873c4634be076d4d5cc125286f1abf7377b5ad239bd37d787d4252b6334bd15c90a79e88b9eb41552faabf17929ee4af6a86efc18f78057d772e2d661e38ce90c4f10ad1a28950adc87f076df70af538f46bb5c725e6802a36d73a004509e125939bf1d075d031b0d8e649c77e3bdfd65631c3fa234ce05f55396867e84c08b2c00a09e8f09e97989412cb896fd2ce52c82457a2c961dbea21e590d3c999d253e26a0db75217d2e1120cc0f7462501c0f6ad72d197be083c62f4e0d5f48c8d4c5a9deda5239dfc8661a9b4a45bc9812acc12148a28043125bbd27088fd124a2cc01cf5b5b1714d52d125c41dbe498c9ef4061f8e3a4389f5271b22ebe0266774e6eede48d6c0d5e58df6b2f73ba11230bb8f4091c9df64297efb8062e6baf7f8f972378c8ae29992ae014ab3771d36f95c318f73b1e72938fa35870d9391cfc57d23eabb7c0074bdac57e001928d9ac3688030b0082c1cf8da78261b030d876fa48aba0ca94783963e49857dc7dd35fd2180c592d708c384c2a7afdfb8e20f925983780773d8aca636596fb637f9ab28ef3b197e85897d0523699a52c55732c636fd9082293754f9efe5d0055a6c814a2f0c32f1791999cf118d99ea227601f4095ca0477b031b2f1e202dc888d4457d67ea883d310d3558f634c2ac340f69a625a1a1da3626e63dc26b24750cc7dca88794b0a02a33c3f487db0823147ef45a91868fd9b3fa44c91a0c0ed63aa5dc168e015cef475ad467e7fed59841098ac7b59f817b76abf166689545ed838a1738c943fed4e4387120beeb67b296ac61dd2c5a2a66bd0e385999b3c0c96f702776d62203e2f7ead95bf20c63d76dce672b5215aa2c76cf88230b84ca5ee036c6d4824ae69c45300d31c4822bf08e76e0c2dc3c0490dc93ab703e636096e6610c7aa100e1ea4abbb358890b8e9cfd888ba0788db9f80f3e6e2a160a91c9da0a4ef11153fa7eb6f0c844bc63396eaedb4954beade22326e273ac152367a6599eb8ca9bfa58a10c0e7d341387e326d3618af9135e3472a494d8ab5bf044fd64c83f3c545cc4e043b7be2a1efbdac8ad2c569eb0bc07815a5258215fbbd3a1070a53f59eb15a619cd804162a404a992a322c24dedcbffe71d255b79b11200339105964be078a9d75a4f89512f23e8bd66c812c105840688dc8ba0d6444dbd250c1fbce305e1986795ca7ec57cb04c1d566a9718f15fb8282c3ad5fb3329cf174638f19bdf103a131b0a317c08295988cba0742b2ea3fb09c8ba2612cb7c409d2daac6f024be6bd0b41b63d12d6875a76e09daeebb8a97cdcc92d2bc1b2fe70509c7b382b75c16bd72b679680e3661c7f83a4b54d2834f1a81a0b4c26f22f3c808fd08a794a87526a73b129483531388442d5282b1fbb5f62d6691ed583b20f8364ee2e1c41906359a9a0f7869dbd45673d62ff2495b64654c1570c3cd37bcff7cb71612f01fd396f55592681253033a0a27d7824075462e10d0904f5eda2b6cb5732841dc2269793cad25705ab307b850456c72d0f0d3b803b60ccacb2e2ee5b9ed89b7fa4d2128939fbd76cd1117e7b0b0e3e45314a43d512dd7708e0cacbee4e21f940fbdd6b0eaa8531b8593ca20a7f67da3b88e8b293a0452f107af27caba866842bb06092ceda71c7544311a5211692d0c05aa51223466dffa30add29d442b4a35d204bbd1af5e840097868ad26e8d8cbaf2c8f4f0ab216524cc95f9d375248c54b89cda8b9ad5ce8852ef664886bd263c26274599a2ba250ceb3888cb0a9ab981cf4e2ada0339d2fab2ed191c0ef6e4abc62fb73105759e37fe4545dc2481bb59ab4205e08b1ab7a4bb5027ff107528ceb7c9c47cb6a510287686077fa5172c4c3b5059f6815da17945b3582191a963ab223e2824c73978f6b7a68fe7c5a406d0e7a0f0bbb14f7c4ab7c84e446bb4ac91e6bd5334b0800174879cbdbe0be23e225be34bea24fbc769c3913def66500b94f386436961f486ec5de54159f12ab049747bb2118d549e3759f4ab87ab61a97024fe26f331a941df6ae94a6bab506696760668366035cb38b5c61b0573a68413ed10c18e2d618b98c8f6ffe64163530b4f6efd246c0b8bfaa807ee68857a4706b17b956cba7a599c3f6afd5c125a52fa3dcf4f820e709f5cb0da2eaeb4a499eac06e9f4167199d10de089fd4e6e2b8bdd518fa2942a2772fc0c27d25a48e56ce67060f857c7a2ba5bad260d91b1ac9425c498dcc94aede764ba3da816e8aea8a8d1056f400dd67c56391957406013b6996a6727ad06a2f7e9f1235e4952ad37d243ba63e6eacda139b124458c56a25443bb9c1c4287f9efb829316d3d9b63e307c75c517923096d849418de8f8911c42ab2d940833433bacfe092eaf9d3224b95ccaa9f765961689a9ae401b8a011d81b6cdd2b8571c30046df096cb2d34be0a9fa85d4467b202afa5196c5e9ac6b1c4bd70ca08da62d1420cee25e47c4e15bdbd865b6efeebea68d37244916b3dc9b0b481492268eaee945e50f6ce38b8ab7062f972edbf577660230c8ab15115ab8c1b7ba5262dbcb55909c96d985619df464a0429a77d8b6ec1c60f2dad00e2d7e9f95da44cdf408860d47d1ba3969d5ad9adc6283649e89ba63a00b818e334b323bea0d1a8ec6315acc172f67951b146711e4f31412f9abc92bc88ad2c3f08cb38db3c30e07e64b22b6b639ff06a81d3c765c76b105f0b0fbab5b26991ca89f96766810267a1cc874475fd6c8e4be552bf4c5a06a86013deacf0a5e8424cae6fbb5c9fd4eea5c859478ea2826382a5487384f80b35911cbfcc4a1476f7b82fb30b7939ad15d2e13aff9027607c2fe20a3bcae78c8fcd0c5c03fb5c34d9a6f3652e5a5e30bc27387d3abc1ba0e36e9738e1a9a83dad795152a17b43a6e52aebcda4735bde46bdedc480ca4ac9c4357b4ae87c9bf94020f91505166e6fefa049aa40fb4df5b4c5791c11802f8e3bd05268d2a5483259a10b8a1a19172267b20d96afe90e807bfe5090dcc1566f28bb7ac507e0bfc1218acea1bc6158a5903756a5847de1d02df6855a6a4bd1da82fda7dddb962fe657fd937dce5470580b6768cb40eee7e140ea9254785e7364d5fec0f451b2e48af800d8e84597edebb27f9df075383487742bfc72b5dd80a4d03cf04428640a00dfb806d8c0fbd907d1a493f38763d56ca2aabae4f91adbf4a5523d3f5adfcf2bc5de8d30d074ed29cca9e4ce6645644ffc3b7a6a639a627955e5dc89e3ba27eaf6ad1d419b92a88b238cbab1a2180bc202302cee31ec464f22e747e5ac30a85f773933b9bb635ad0da7dddbabb17daaa6866bbbb351685a9fcb32db3fe99ebae66c58f2b461a8b0e0201599a02ce35b2312990375b6cd2a5eef2f104a7c80e584eb2a815d0dc1a6bbfa30b2de58c2f2088cc786d5873bf01d42f0a4e784a6f213794789a3cee1e8b01df53d5aa49103f8ca864b82767ca4247ee8d79833eebc80670114e233856943c8353458a98015a0814a3053fa58f5e89eb7360aae9f1bcfcd2a10c654e26bcb5d93e6ebc7935edce4596b3e843dccc2a9031bb943499cb6d24138f15fe04c00df9f8761557ca4dae83d2474751d4c5c5a696135c1bc636469eb0c6746ca6d421cfd1d47d171efee2c679818764305fb58801d1b8dc8a1f65a08ccb9ca9818ee74975cbb341aba3ee9a426f4d9166c375328b471284cc995fa1714e8f1e07fa855a439fa8e6202a1faef5ea0e0487d1217e87426216e6304236c4d4c3a077c56ff36cd0c67eea916a60e031ba8bd089e7a1a9aca23c610deb4e0e43b5f8bf174f31e87696678e6714e5d760261b351e86eec70c343e8816c785b76fecc7ed5e5a6c734aea16fab1d9622e183dccef818825cb18193d2549ebe2c0502ff0804e01802d3776300b2e6ceb0c5c608a01c46be93057525118a6d0bc83dc21526a31d2ba5a279c511c9e4b4eb59339e455939963584b4d4962545a823f1bd583c5f3a8719f36df963539724e2f6fb737b0ebd290ace20ac315e9eb8bddf8f9371b746780879c880c714453a2846fb8beaba56abf693da156fdaebd1776d6b641abec3c45bea79bcc122157bf0ddfc432a4b9e54ed8c737733f2c750170318df39e37c460290346235c08bda1eaa5d6ae3c244de61210b418b5fee3eee4c570c112883fa2ce4afdc6614c6813272307ea91377aeb605d8c908934f1d6c28151d873748c3d2b76d45033c92d8c55f1327583a2854aa045aafa973f887b02b702f6a73f00c7c82e11d3fe2247c501bf6316b94f020bbfe0b004eeb0f4f3b495fa66d1247ec3180961d82f5305f0d6e80969eed9eb4b5328e7c1941970b527b87080fb70d38e4ed0f08f03daad1cd81a87d18933641cd7306496abec202d32a62aaf945ee6d27972d0390883cf79f0ddf0294582a44ce253d831a82598018d19658c132d2fb6f25c323ade22d800224becf52a726daaa98d51cc7387006389bbcfd5326bede6da7584a139b0368f8e1c724d0ce75023ceb2d0779633c143c14f31b85075e518d4387330955dc7507c91407997f6ce3c1d79e27e11cca4d329c354ca01edc69c4ee40ad135158b8db81dccc98079812885e8233facde93e296f1085bbe6be7b973bcc730be1158786e64519a690ac8fe1b2a635bb3b557e228ee880a828f8162fa7d01f27010cd5e9f0347a654de6c9cf92dbc3b4f247aae6ee28ece93ae0e5ce21da3426ca6d638be377143a4f1aed0cbcdee36d6ef3b94460a14e337784d8c304435924ee96072ffb8bab96a283f64b63514b6437f3652d1ac7cde77716d7f3f8077bc585a4cd3981f3ee73ac0e829a220cf3d35ae4ba37da34c913dd6a792c849aba7709a3539b2de65040968c396a2139b2c83253d44cba77d0c5b4e91cb31d51a3e116f9f498f88344ff074795531f7c37e3fcbd21d8ab6abba620265f584d1cc3f64d245d76f17d4bbf660d65ee0e1fa722ef869bbc6f56b75f464da45006f47e8ccfd7ec3580d91cf54d3a9c728cefb2d738e79b62067302518ea0a2d51b9e1a1dd616d263ddda9e2bb4450da05abd65aa516ef70db2c8f68148e556dd2f79a0d77f7292b1dd3241893b634f1e3b37698f30de893db93805634547ddd63a3de196c5ff723e39258903e484e3354f5f1f46d787402c8602cac3e567055bea1b718838ec311ece4350f93acc01a5b8594be9b84536a0f40756be260fc052a90fb6a1403bd8f833d3b748ed549d583d1bcadd03e56b10f05d7751863611c10eeb37072cd42111b94ccd5ed635051decab33570cbcc00b90c71d88a436149e379e8d9ff864cf4b5c940b853ae1fa1d15343360c4f71fde850425aec6aa48c4b23c8f52714bf4fb9d9d0a67e36fca03a3b3a4f163780fe8f7fafcca78bda50e394f6137ebd2da6d1bdebeac3df9ac4c9f2c37c1b1238c9583e030c99bd4ef97b46654b7dce927d6f5fa23eab9a95955db5472a978b6bff18b36902d017534cfa6ddb73f85816b63f7e1890aae423d978db48ad10d83a18bff222c1b38d52ca5730baf99c3d024625d089b3c10052650cb2e518a735f07f3cb0247444fad912ad1ddbb89d82f05b3909de7217f0b06f77c443ac0f41b20d8fd76012609031e2ec4b7d33c5377789419d74f4699baa30c888e5ac1e22a2ecf1fcc373d9d276e4db6cc5876043e65e04a5af5c8c550a65146196dc3b0facfec1427f1f21eb6f980cb587a98053c5f0d66e5431654cf66b022fc7a1005345d7bc809a171850082951f1c17593bb098a96ab2a72dcaf11048d4de8bf46a7089a158034b62fac60e4e868d43afeeb3424c08db8ab289bde78b5e3a830c77c15d201548e8ad35f94faa87cb4702b493088147b204f583eb53b6c6f8d67a3c1675c29d38e85286a6a347cd4348531cebf878365010bfd047c8ab0bb07e872a3e76f3309550ba1bf6a1511bd9078ed3b4aa1eb6838db63de6f3f9764fc213258fad9b297db2462247e5d693bec03e7600b45e4d79e9d318beff7ef64cb312bc2e0df31ce57fc90c381d429d37c28e9989ad8edb6c205bf3471aca29e8e2d5fb42a6c15b953d1a157e6c5eaa6802b02f7ac4ebc497031455aef96b528988d197a4b611f98c0da3f2c1e78848d9cde9a47def15f91d8cd1b98b0c98607fa819c1062e38a9949214a0c599f0e084fa5de9d99f07658155b7e197a87ac09a1618057c34aa3083d9172a85162d971ff3e9df8c5d946b59e723a3ca3064df48f7c3b41f232e8edfd3fc9602584526eefddb5047cfcd6595fa73fe39eedf4ef5c7b3b7182d9b6b64d5d757d1c6725fe789587dab1ccd8e4d7e77804ed877fb0a3650da770a64b53d35dee74e0967fa68545e2329c1df77cb94a1e56943f76453a25faf5fa36a791d8e30dfa957ac2c8126f364ff0c54244e3956e0cf3da323cab1bd96a87ee686fccb845a5eee8d4c40aad27d8f5e56e5ac62fa5d63e6c2211fbbe7c2e81b8cadde5d0a4723c041d552e6343a28d903bb18739d2fe4f4eebabb52789965457f655e487858e4bba4e1fe5a8c726bcaff647aee8d8720235931aa252475335a323fab2ba613a83b46d71b0dd68754eed9116b25f065854eb0ac9ef61aa6e7c4627f22bcec5f87dec64fed25fa817f05152f30682820890fcf62a55a5721a8b153859fdef78f16faaf320a2b32230604b1a597d4ee9c4e7583a34e0960f78fa1a06485c7d4241953acb0ea8425852f770bb28ab201b113e2ced898349bf9d63b5936209bfede5ee2d03dcde06c1c1c7b1c58fbbb387f2a21aa068b080e8c0c528fced95fc6d64d8b54ecb7f1fafa486ce3654c6a78593749e2fdf5cc22b165ebce265590361d571744c71f9fcb730f1642010cdc2d7376127a68a8707f677c9afb164c32d2423c38b79a5b881b36fe019bb89bf2e4473166cbb69ac2ff2b391cd1860fa6bfa0df3eb5db61f91ede20fe96244ed9a903a2d3d5c1e633a52007b379093338c0b6e952421d2756262814dfa985ddb9d6b7de9af8f38c76ec3f1b1ba3ce9c5226c9e00ec1afe624ff6ca7a18d06ad7d21d4cc9304357f537260687e25d703cc67c0a522a6b9840aca9e664e1d7b719cd1c2b824c6d2b5c6ca690f0881736498c6a138dea90285fada5c715699b29a90434b92ce17fd25406ee5c2b102a7b010aa0c1998a422c4db83689c4b41ddfb88152b21c993355283a0c0a04c380a90808a21060d9c65ba187e1f1309528ca77dd44873ffb4e30ca549a88486b4046ff11266145655ffa780349f508412195a6698f60297c04aa15eb0e4149b9b1216465906a48f7948a11b23283dc92109ef9cc08286a86bbcbd8daa6919b1b2ad3a6b8a48f9871269729d804dffb483f6c370a3b1461c31a5ac0ddc82607378c6e93c997db7106d51f4be45e9a73d95de2eb718918f27c2a94781ffae4cbc13da963e76fe8528d506f0afa771064923fd98b3019024460accea91799772a7f89050250121fc4a9328c91a738e85587b0d9bea2519e2ee9a439471505fb5362b706831fcdeb9f3ba05204611e17ce6fa1940279602567f88b9ab91be7a09b77cd100396018c32bcc672c073a32c81c23fe4fb774c89389a77e659ee828b8c99912611dd21ce7d4c9e52f19bc1d7409299d9af1549a347dc511f4104bfcb08e738de42bb49882c7ab3de542b60bc0b266dc5925e7a97eba3cfca91d3d1f30a8ab3c97f318d9d6a5a110b006c35a2b60f8f9b3e7361f4818b119350a33fd1f6e823589ee7586361d1ce1740dfc69cb6d377ffa5e8475ec084fac8b97f99d734f7019a6be6afea79d714027da3d0dec837bc050489b30080d984ec06151bf411f4992d1a24d7222b11153b44c2376a1762b8ef09ced9033573da176bacd15efac7aa2c7885f82f715aa95591a6e7c451682c1282cac0ddeb2fc6a632a99e515c169de50bf0d6fdc9842b0d28dec3cd4c2a20218dc61b788b2a7a83c7a8c802247e687ed955694c99a45543821c53517d1543b77f28e5090dfb86384b2a34cd523072daf3d43faf3f362acb783181951d7abbac1df1f242dd06b6cad91a64f080bcbe4b637917e3eef409a16eb84bc480eaae8a9899f0a1cf068a186229005abbdb4969a264641bae99d93fa08e5c5bad36bbf8ff23566ede38672b34c9b2d31a67b264ed8016d19b49b8da8457e406dfa41fa8e06b3dd25f31a906289ba2045495efea22463a28efc22632f1ecbf4a3c72ca130290baa0d99a17f7fd5dde1339732ebbb02e4237ba2c9991d59be2e645df7f685488fba9e962c4d6dd5f5c6761b786f2c18ca31793475009d3c55d14a56747802f8f18ca9996789c811cb3d9ab26da68721b939aaebe7e72614048e78827848a6ec69440115606d60224975836a9fdbff49cccd61d0b36b20b21f61af1074824e6a78996c1bede25ef3e0c39190bb5dc7fbbee03b75c9cfaaead8a2c3f4f3f1d637c61a3f04c98be2350d7441cf74fd15dc015f9d3f0ce95325c2708992d0929eb7610b74833a1cc9b539c4a962a572a9f8192aef2cdfd8e633c22cf1293b6a2a5931577c3a715b1afbe5105f5770a1e9d786a8a8f21376e3fcd1190d52c426ab4b94ce89510f2f731f1201e1489f3e4a1f476112b4d420847fac4a4f1453ea51dd82bb7014193d309b11c3f88ae75476e2d4cf8dc9c68a08db934cd85f6ec2275ac218026259658a758d136d061680069d980a8b001a1e3a2e29a0593098860ae8531662413609d80370ccb96fa2f1a8ca93466d0b6740bdf01bdc7458c8865b4de1ea15846c486e8821442d24a1466f20257f4f0a734c0fcadd8d23bcac67a2d56663b3ea085e5850c2a10c119d19dc3ca993ad3ecb7ab19024394f99cc15936b367f30c1254306e34a21faa3f05c7c5ef6851be601a92aed1b7939d57e9d2b080a124ecdccfe199923d81e8cf959423da06f39fe3068a11ed8798bdf071f7448069a0118e0f31ce9f45740aa503a4c900ae8bf12318ab58a6b82bed1e376dcc21efd1e421becba5683420701b3cf68fb916514058eca563be0d9fdd28d121bde153d3a431098828d10121d5b0d21d96be32c14920b19134ab18def3f443ddfd0f59b514ebc79018aaaa0daedaf48d30c307667286b8830098a8369e04ddf25ce87b89e26eef05e8fe1080ab6209cee91aa1152986a89bd05ffe07647a0e6426bb4f1c0d264df6c7061333fba3c1a1c9feadf38861bdded84120e2598c6537c97e96ec9933f1adfb38ed63ddf8755f2911c3bfc53e2554d75113860341c89be0ab55ec3de7bc44181f13b3d61dd2d13512af50c6160a7a9f87cbc37ad6b11bf9a43d69330b8efa7b561e265e649d85275d7f96a91e9edf82486b513441b5528c7b7fe3dc1ef67faac2cef4831afc61330910f17a5dfa9e1585537f754e099178834278d8f252081c9b44188ec5a3ca7398c2a101e45043e6dee56112351bc43817da1f2e5fe98cfdd02b1d886b466b867d3a6099d5364d667520ba2808550ebfc6dc83b5e90e7e64ec009962710f8b6217f92479e4d5c342f2c670e0ef6214d775397dbfe7228e4a7290a12354430427c2387935b841a08d13343ca6e3dc216485c24fe9a3be06bae5591040805e56f3e60fcb0486cc2a58413a254a9a046935113540bfdb082c23b4a413598d3be0c466055ca98660e08d1ccfa26308dc652bb9a6741c735b22c71a8252d51c269d436cad970805b061e67be86e16e99fb68a15de31676b9a1a9f9126ffa2c53f461d30e9767e00aea732f649a526ffde3eeddc64278f9ce6d8e9a40581c8050d0253f069424ed6efb57e6670b8ef5cc08ae071abc40ad752525d241d0fd3ad55dbfa113a70e7dcfc2492c6f2eb7e52f4f81a2159f91934ec1b1fe59fcc78e690300863d275e385f57b683efbefec76e130b631c3d207bc5afdc259f7b6095d32533e530e6c220513a24658ce57d334526b3ae69b64d65d86fcd8895d9e9f5b8562e45b13d7ec86c7dcd75f4f55596c916f8fa6cbd4d6782e58bd875c304b351bf6c88e7a324c41a62e2bfde2aa1c656d9f56e64a939a8d6e949af40dc355e6b5a1350e64dcdd5ac822da04e34df20c96fce88fe2f64e69114714824bfa9cd0c332bf7056c55ab1ea6c942a06d2afeca449b6f8076c572d29fa9f12155c70a232e007a730cb57652325e179520405c10c4a79af58a17fdb447a3e8dd93313778cdae1cb6ffebba61e72eb30438d6e4a1fdf706ac956aac1b50a2ade455614416e0d3b630227838700aa44b05f2bd7801c7e7edda4e6b4cc120054c57291fc46c8bcb7f50e001004392677d272fd19619aad67e0c446da3ebde15b95b9ed52f414bddfc02e869ed44c45617156bb4113ef9af7f3c9577d850f27cc5a68cba3002b48daec75eaa71694771d9a81e0193f3f252c8fbd662f506c277b080235c385be50858186c80e588824b67d02e395ecee8186b6b5159a3eec55c8e63a3beeb9a208217461457f0d1472f0c014c272681f364f13d94ec942858594ef9bc752501b817aeaec40eb3e45035010faabce19272bb699e5e6a486e7a63887c0f4cad7b349bec970d489221c0a7840909c91d8b2794bdafcef79f0cd4979bd66f68787cac650a2143e74b973d9b57f29338a24b7eec3d91a18528fd19ec6444c9d9b4d8de3778e3d2d9600b11f4b5296807966d273f094db0f452d4d2d645f69bd46c70bdba06d3ac74bf18a17cbaa0dfbbe6d53ff177d6efd4208e18959d34f60dd11c9c7b84b8e649d5bb1ada826ed4488a53971feb76f55071b1eb5b4f1fdb41be51bce9f0c87a4e60a42244204ee1ffe73dde63772fc3ffc846b98a2b4afcad5f53c761ded8cdef84117338008f12ef914f65fe5434a2ed332c1733034052684d818ab13ec09810207dfabd26784f7165253d34962737f850c3662b562bf6414ac3cb67dfd28497d718818786e4942587346f049566c2ab446dc04e15c9d0b2663c0e0e9c656ed8f56f293185ff9485bee252f7240b4d267308dc72e03f75b0a5fb87da02b34131e8d15062ae1e45e7c168be28561322252da05c57eb09ca8c2b0a330a113d697a9c210c1d81167681a1f35a747088b0a87ccef9e5f8756bfd1c94f7018e53db6ce8a0a0a723833f05441eb63317d66b54fa39a2421acc53d0f8e37d63b5cccef505a9de24f57acc09788ba6633bb9e193b2f51a236b7bcff30d32c444c87f330f52e2f501ea166da04c3ffe1fcd82712ca2744f967cdb32b8c374db195e290e1f5ca534176d0c284489005823e382fb11329d63d7892369eb7ef24840fcbd7069d21ae49194e991e2f0e33cc6fc99422250d834789bc5e23437afee04be00e195c610ee2908bd79acc12a4e784cf11fff3b25e13ec8396857234d0fb7b8f0661862571c005894da7ef3f6737f8ac5b0680fdfbd9088dc3f6afd836598e84e8f0baebde4b8b958b0752d4501923e35f42045e41b55acdd61b66ffa0051c075cb2c5ae47b66571d94fc9e3bba7134c79682d6c52abe43d8db4ae68c8a80dd4e8037adfc6945b304ec2d21c116722e6d756e37b7af52fcee0c4798d8bc4f1a8cab6f220e3f025aeec7089b87f0dab74fb2710ea006c2f382e100a94913a6a5867b6451a0c5a035cf1d27ca58f025ce826a86a94ebfb6393dd444444844829934c014b0915093709de9a725de4726d884a1b276f53347f08a0e8dbe90c900608b371a37d1b3da526ad7b4bbc637d8ade9626ad7b50b407a4b29c75fe2f544cb407a4b2201553f7205593d6136082fbf281f3edb7af740fe8d6bd2ccda3447b72acb50e8a2faa63fd9be1d05b6785716524bda8de764defe5b697af19452d2bdf2734ebcf106c92296d4ab96b9dd54e6fc03b15114507325f6a6082e20819789c3831e58114a0ba80e1005e348921030b67a6d09004f7b5d6a72f5f6590d55ad96badb5d65a9b9904f6c166ea6bb5440b42782009aaa42723ecd585f01354ae987df50e9ae7fbead7ca16637200c193335ac86aadb5da4c5d3abba8323d2185511428a46200c3313745f11c45c6cccccceccc23478030337cf7d09dde451fc7710e0e77d37e9a7350c6391c96d9ec731a02d968fd6aadb5ce59e927a567338a93a1670f6acfb5a47b58ce9b7f3d1c5454173175914fcf9c494949ed9cd49d6aa27a41dda62eba2f25a4e7263ace23ee99532cb1952633cfa676123c09ed698e9b6aa5ded2644fd199447be6eb35553455e48de5eb35cecec27467511775d1d4d4d4946236cd39ade536c07d11dac3ddd44e425fa88fc5557432b3c68e753a5f8d1bb31aaadd662d8460701623e4c30e93f58210403100ac53eb0e039e3ee07dabf62b125e3ad3cef5181eb668594941467777d3eee9c2775ba101a79950e25bc67733916443133f9210b9a5f63145e56af5578df07baf862d5870a77b474deec0410a3b7c4903813e4a5860c171bd1c520d05385680638aca0652ace6e998332bd72435ba2143091a3c1d97d8f7e19234828d36b943bcaabc90ee64aa434547d1923aabd536cdd691fae426628e6b73ad617cac78d125ed13bb2067245d2482346bad75ce39a787d473aebcaad66dc10a564ea377ca0e2964adae696349dd8ed5674e4e2c0cdae3021d815cefc20663d4198577a6cfefd2c6d7514803209049e881e8d053147c00e400cbab563af69c0e524b6b802a6141e857877d90c2cf26cf674a21cd02bc43919ee65081a19e32d40f37b05cf925fd748a2a8035b5d605d00554996535930eb3411325d02104133b40706997da03e53cd724c83b3854d60ad4e7920ac5c709bcd6cadd3bc5ce5a6d0e0faecd6e9bd5ac8dfd927e3a06e1fd9cb5633772a377b5556b3f8741fa8839a706bc33fd470c0468ba95e3f9255acc080e6628817ba06e5a82ebd1b86d3ad116549edbabd744e81b54d4cb6745ea9af8d3815b82549cfed550734e9c9a18c43aa75571fad4c4128852b1a2756e43a23945b28d48601f38530a6a56b376840501a2549e8ee011a577731b166cf0047ea5d3a569967274847d606114fc4ab9d0f002f60150ec29f5d95ad56a5eed58641bf99deacc2fd243376ddaddb469f7d434b741a1c77c9c7b8e6ea2f3d36dbeb8f34b18ad3abcf305f5a1827abfc45ea1630820b00fcafa1408141ae2ab94895b2b58b9b661c12d6ba51b406d00a5bda785a7a43e9d4eea13c9ac2e0bba34add6d23e1d39da81cd00603698d7712e3e73f91216a47f73d836bf846925ccfafcee4b58a53ee37f10514310ef68c0dd04a538d4b4edb621102b7e401d16a47a1d61db734d733ace9a5b82e5b576ec6dd6698d60a03f58b814e6d3e48415b1def3db7fb367afaa684e459ee7708429b3e3acbab58295eb266eed6a155b468b65478eeaac9ec322ddc4c739e5053fb08265a522c73bb5964025d09ad33dcceab3c9ee8f6b335d7160f374937b6aeb50d74220ddcfef90765dd13109cb62ad2cd65a6badcc9c73a5d6e771796598367205bf8e4024a5557cdc64e6b642888f940f90cf9995ad760a60cd2deb7fedeaabd7684f2a66335d9f6ea5c6d7e8ba39c6e478b2daebe5e2af734e1f5fedc52defcbf5ba5cf500c753bfaefa55b1040b56a1ffac588a5f45223a1ab59a473bb5b9cdd960d7da646fda487d8295a7563a76499da30570025cc23bd369eb32f131cfb599fd7c7000596e599f4e4d1bc105d8ccbedacc9e02f171cdc395de262b1d401177ce6e667e522b8b54dc12fca1530472fdacb502b9b4f8d8e7eb950499ef01f1949a78f039de99abea3f5d9ef075acb2bda7447bbca817edd946afa9e9f3a22819454635d11e4fa975a67b51ffb1c2b856f4ba34399d15c6ec9ebbaf4acdb3a57996d847bbd7e5a77b5dba2f3d260fcc4fd778e4488bc43b152a015f6e69933ae9a77751365a2e7b497a5350d086cae24eaf9452eac33e1c230115c2e8ede36451bbe8ad93b78eb306c81a3d759b8489a5f4d4eb172ca5af955575a74fe18181281798c0810629a6942ac08309ae4489b902c60d53a8f4d05109e2d52140aaf1440b1a54401aa3080467b664400a1ed09860880e78f182c5618a11ab294d3c7c0800838f2bb24891268a0e47a459020834541cb1823056bc606f98b266f582d74de503170c952a5b7f0edfce75f1f7d9098c155f924ddc9313183039608000536503034546d297315c44a61c7db1e245f5e50916111c665f8eb8217203d45783e6c4d5f12c668c127c191be3d2781633c60d5d973be359cc182d842ddcd5b398aa2a1468101323c19dceaed9cd72d6729be6d3f7e51ca594de977394abc08cb4acbd653d0631916927ccd64ef0cd1a2010dd2394e3ee7dbda87a0323b81b60a836e26e808a8a8aba955159a5cc32f68faeb84ca5bad32bce147706c0c9d8aba1a827b8d3e9e46aad9add2c672db7bdba27ad56db68adb56e63c93db50c84524a6b732ed00e3da8a34761b54db39a355383dc49a85bcfa7d1a23c76768afb122a4dfa397a25732d6b9b9345389c32778a4c5667f7de6c6745097cdc9cba823a0e2d34cc9450bfc606b839f37212c562bcc42dbd4698082de39e5c0bc495520017eef403ac7027d51c27556dd1a88f8b2f59be8c8135dcefd9e9cb0e3a7c290ab57c69019ce20b0a9c0a2e0786134b68c143163561dc4eaaa3ba2b329f0e60362c961822fcb2840f1d94258c3a145c9c67a725520047e0250c226e1462284611cb8b970b82b1f2b2d47d6010855e82e8bcaa29d08b15b063fabcdce07143c650f2bc8060db963a2f307cda1030382f4d423ba42a6963a2f2ea1031a434262e2a1df205946552c375184b548739262a3caa2226282f8ca228af2ad0a0f0c2974b838b6dcbb5a1c28bbad7a904b3305f98c23077c6b3d36c049b952be3d96916823033195ecf4e2a7cb11febf5ba77d52105eb673daddbb8d7cb9d2463b1add3ec17be4050f426d40f0d7829836f1111d220839fde503f7c40f7588c863d717c972fae7f03adbb2b04a2f98d9ddc6db741fefc7e7a89e37b7a8b05ac6aefeb3ac73aec2b1a825cb3679ba1d0344b9ab920e3fcce1ed6ac49d3ac6906838cf3d7ec69cd868a5098cd6c90715cf7ec4ce78ff6cd59eca3bae653cf00b05f7ebcb848ea64b1e425e73847b2c46abe51eb947294e344d0a86b551b3b68b2e928a4c966717161ef79e73fddf520e2ce98cf055a5c76f6a5af92395edce9abd0fa6b147710a085eb793ee76882b7b9079dcfb1f49ffee960d2d2609e9c265fa207baf789fd2dc2380f574e7d84d0db5741e883ce89f4411d34e71bb908420a265020c60b5b4cc95863536f7cf1ced47c4ed77a474e93d53531e7eb6a0cc7dba3885bdeafb1bae5e3f8352915bbbb276dc1564ac6babb6bd1d0b917bc44ee7177aed46b130dc6fdf65ff7df944aa6165fb67e499d6ebf7637a9d3ce1f9347e9514a299d3cf8e90feec9a3354b29597f74cf9e3ce68f4929a5b4dbe1fb3419a3ab47ae847193077b7f7d51d6286d7df99adddd9df34dbfc7bb85a9a605d74c6e1b07388e1beb5889d8b8661e56a33e7bf28e7d6ba9b5d5d62eea4684b5da14335f093e66cd6eec34e7798aeffa6335086c6375b61bc879f3879d2e92e378877df4fcc1b3bd108875efdb7efc40e08717d7fe402067a9378ee3d11ff40772dc0faafa811aa80397324b5fc6ba2813446dbaab323e705f53525886cae7118165646075535f9917b826afcc2cdca43a322b6869218c51e2c85011da109aa00aa1a9e42e1931ad10c24c913182e5d404862086894c09b8109e8ebc109ca670a83c256eebd9890518422a58185282a8051c0b88b82843a4260922297f767222e5b51bca897ba256323bb49ea843ac66ce289ca0c8e4bc75eeb6e06d145078ad95c6beb4a101144c3cf517140e5040f13afb5ae642719168d0e584986f32dfce3d61e5db2f142bbcce34135238c1c377f7ec2e1f758eebbcd0d9a7e785df6c0e2602c75967b2b9e67947429136b28d4cb0d491a43ad3bb91c9e69d77edb829aa3ff0fb40dfc6cb75ae3993906a6ea4736d0c7d1b35e7bcbad31e269b7bce1e8a9c08134173ce8d68ce919b7ba3bf62e3e5a80e132c1a93ce3798089c6b6e84736d8e463adfc6afebf664b0e9ce89b039966084f3ce17c0b2d718340ac94ae7462cb3bc9c50ed0d8c8f6b1ef6cd67f898c6a6b38eedab711bb74d99103da1f62cb3c366a5d81cea9125f223c43e1d61a99e98be9d7b22820b8e0719b6ad09a42acb6d54399e9d9e6c788aa26df9c82a773e3b3d39f9e9404068e132cf475d89094af8e93dd878c4408c50c9007e49fb10fb3d26f970bcb8cd4c6b8e31399ed8697777377b6bf1714eedae9d8474d3e5b6b327e1b87ba79c83aa5bbddc319136cdce26a40e4168a1e93b5432bf4fc23e269212ee993bb00e759214451a345a2d243b4e28dea18e0116b74706c48c4cee82f963877950e7692f594d377b38f7f2ea98cbe532287738ede01d1ac38e24ad439dbb76441a919e76502e08810e323acaf0f8f863d9f0f46ce88b56ce6e9ae56a47bd9088503f9d219169374ddb2cd762ed5aa4de06b6d83fb93001dcadda6fc97d2cd69c96ae26efccede8635babadf5eb7006945b5ea7df37c8dcf25edaa341eb50e7b87b5fa5065ec71c24eef4db4e42f3d8e811c5b5d16453af7e8472dcbdaf572c569ddc724be79e8ff0ce983b7dfbb9ad4aa1237e1b4dd7e5b44ee755ec3e0eaaeee6df29d19e01c83aeb2e2f27181b2fe7d377ceadc389bbf2cee796b934bb7cb3c9004eb764a823b4f349c43efa3b57777f765bd7f96703e5ca7026d5719c09edfcab3504c2f9ca7f7a0ac13a9db3cfa9c43b9ddbc4709960b17126385e9d898cea4670bc8eb0cd83b01899e136a3111934c6a0194edd67e5d739541264bee6406cfca75dfed32f91e90cf1529dce739a27f4ce77c47a348fe79dfbb00ffeae52816526c3626486bf409f3162697979c11b077d1bd272cfb70fbaf7c2ff5c622335d9394bec2b4d76ae899da5c9ce6dc456127b4b2f35d9f98dd85d9aecf86f9666334d9ccf12b967a526bbaaeb9d1fd11e9129051d76b8e2459a2cb2ce2712ed1152418b2c869aaa64a0810659c75d8ac8b20493982fb6ac20eb76c0582186334998c0ca0eb2ce5762288222d7a4e69cc89ec83539b56f4ea56f821c545df0194764990c508638a1a84ee738220755d79b52bcd3b9277ecf4a9d73dcbdaf973b4916e19d8e3e0658dc3b05f6678535f59a7f1c545d9fd732601dcdb9839e3cc834ff691eeb60f8c90de074698c7d34754ed3b6d1c726865babd311b68d55da7d9e83aadb4ae69ac7408cfbd33ecd6331f8c0b5ac295ba9462ba54d69f3a4ad793935d6baf838a7f45a6badb4daa66cabf6697563cdd61ab611b7f674ca4dae75ebaa71cc95abe52aa594f65667fdb1b6a43e69adccbae2f3bedbb4a7a2d57c7c063d3cdfcdde771b15b56f8f7b7635865b836a0de2955db12a8b2fd5aa6663b11e3e612c46b59ba4d65a3f70ad6ab64ab355b50675e107d586411866d36a3bf65edca5dc076e20afac5db140ae796ca7815a59d75a5aa9b7c09f768e752cd6c3278cc52e60d21ea01cb281a102e8d70bded6cfafe6d14ddbc679eb4b8718d6769f0d7b2b80e1f2982a70684c173f0031264d4734e604622e779d087bf8c4623e482c21c1c4ba4b80b3d59822be0f842ee1182d9eb7c404c2521378c72085dd1150df181a581c17246f0c0b773b62d63955851a11e734055a108a88da9ca26e91d313080212529c114a4e47b440e0d2e40444088211512f292651572bd5badbb3e149145d5c9c2e435b7e7aacb92e6a3dd162b9305aa89e78c203d4131da0aef7ecf4448a0d4f9e78609eacd0c59e9d8a5e580a73af18a9cffba713959f36936ade5967d1b49399c4b0e002ae5281e5006268b8375ec821ca919db505efdab99df8cee2bb9d487777f7ab090c77a5bb6d7c8721f3cda5891034f10590f65987e142e3bb1af1f18ca2b7fe59d0f2ea431cff79573e4ff336ceebbc6d65c3735aa355b3dab66a91f573f6d6b570c86726453df71bf87520d35b8ef6805df8e21deb34c2dc4965ad83546055386b9ecead87a0945493b64586c2c14693d673a0dcf61fda2ca4262deb8845a5492bc697b7f4a4c0aa70160e8541e86b230e3354b5a51a8a1a3db8e6ad53350bdf47d8078f24f621e33b4b13b18ffaeda018dc034ab126f5d6cbef13f0c595f2e6b9f2d67bbc2bad635d739ff9a3ad3cd3cc63a23ad68fb00f706e5b4771feb4075624f4700c9ad6452e0698ba254805e3a8e60f7eeb60959422990d895a49ef5fca507a1bdb36da68724dc3f0d59b8875aafb6685963259e800c505ee9952ed81af7ebdde713ecda70e64d978f63a95680f1d5b4949c9e856e76f219e9d868c7e7ed94ad5a909d5576f29cd633f30f5fd5529872fc19f6bdeda113664be750fe6dbf99480306e39a3889e12f0c5adae80a35bb69252f3d82d4be1e6b5a97936afde4fcd137af58602bd725ecb5642e301abf9da5c34d557e7aa277f35b6128e28ee9626ab872237095aa6afee89ae6f6aa5192ecfcfd25d0ab8e77a2d7b05485ff49aafde46547a1b8dba5a344044f1020ac018628b299905431158c61a351102443259ada4ebc5321e6fad4ff0ad0ade3a4fbd5cd838af2b3c83c08a99ec28a7d22abc9eceb7b19c4eef65d111dc4657f70fade704cbfab3cee96a9e3952a0a71b58b925f8de6fde1ab76dde6f43ba47b255a72290eba9bbae0b043f7617fbc0e0a783b7fe3696da03b964fc3729379d76c58d3c794cef35b1270ff07645c45e55549b9a25d65db75a6ab7cdb66fdbb66d9bf5deb6cda7c91e1c9b08a0ba65ecc62e6fbcb962af26a9df8ffd0889f9447562d870ba14609ce8f23c99e881c4536717ad5d78873a87738ce22365890ad3150c9ceeec427b48e028299c3c3b99a9fa023c3b9901f39e77a804c8e7a073a80448e841e6af5a3625dc6c7e53dd756f5cebe6773875cecd71b6b1ecdf5c7b6d38ae6d9a56a59aac6a6c14ea7688a9eaa973f1d44b9faaa64ad9237b54b370af3b4346962a95a54a654100d5ddb2bc46a92bd583875b56a969d424751cd1254e293736e26c89f38a38b3288993a94930b3e9a949a826a97be234338b746c712709b46746691dea5bc82c7e256a52899af4a737b0e296b3284b956a1dea1c77efebe54e56290450d970eaccd9186b8c97c626358b28e5c6aaa6493ad5d424fffcb24a3d752b729d45d3684946dbfcf095e1083668a37956dff7795892f0e158765ef21292d037df4aa10f3f5f8da57fe72192cde7f34f6bd0c32da70f36c65793732ce783ee7d5fe85e1786bef2effbbe4ff456a29213fe0b95ccffe80dbddb3e0290e08648b69c1d62cc47830e34b1889123dea4980b7ae9a008b3ce30ea363cb7c1aac1b2ffbd487059de712ccefb3c16cb690884354ea426a934d989f3e74c0f36ac4046a90918a11fb490496a8aa24a1828ae4f2cb90f579f7f9f7b9bf779e3123b24c7364e242a2efe79d4e4f4bb26e6e3e4d4193452654a80840c6b84b440795a2335f544851564359420c2092dbc88a10b13395a20061428e0810b253074509062e601249a90418b6c122144952e555c1183946cba4f27ef0c8dccac31fa0c9ecd84993592249dc38668483cd79c5f1bcbce3f6707d907e8ecccdd50dd4f7c7937565c6e84714ddebf4eded7a7893d9ccca2f93d8b8ea637d2f42e9ade46d385c04987f838e7db31c32d424207bef9110834cfd639d3eb3f1d72a80408e83f1d0b73635baef59bb19c7f43a4fc5e325c2339363ee6e6348984bde53354007bcbbf1e38804df6e072cb5e5a6a213f2fdc32e79b47d5edb1c489392ba76383e9a526fbc92d7364e0e0b84b2c85dee502f2d51136e4c6ab7b7043c5b296f76504cd700e595cd23f639c544c1e38591ec7658865d0e3f80fc5d97e9ac59b9be9d45b226c0810eb5784752c5a20c96c2665d9b2c42bfbb3b4d404b5c4e489dda597fa5b4a14693fd2fe23a4b952ce9204c4e2dcb2d4857f969aa096989aec1938dcf23e0d6fe71e1ae36bec31a38a5bf6528fa65ea2bdd4e39b8e51321acce223e2e640719d02479a07662790eb61d6db79fce9c3cf9d1eae8f1ef05b98757e98e6e408d3c624bf64ba064c95d3a3a5c4ece7f469446fa4ee4d0aae6b9c8f93559cb3393489a448a842cc14505a82804229032db0500187178ab018415275fa989fd3b88e39299a519a6cbff708a9c888038f58b02604535a28c145cacd02cd982911b4700504b2f6dbfefa62c59daed60faee94e72a0fb38c93360e0b4c3c7393a986e0f1e6e097e857a2ad2b5831aab4b34775dab7ddad6dd350ca2630b9aa4790d9d7e4042b7d581aca611cbf92f4c731b5efffa3c6a1e983606b9e1fc77b42156c97196d85ce48c4dd53aed3e4d6e49a3cccae6c2884a699e4bafd019edf9699df6e6a2a99ae77a7b575d4d1b81e8d0b3bc86435a8c940dcf628d447e44d0a57b9cea34cf0c6f2fd23c32bc7da2611f3836fe32739f2618d78d63007c20f0456fdf40f3bcbc7d0e354f8d89d43c2d6f300bac79bc9e7e4dddaad90d6f965882410e047e5fe92cb18c9136eeb3e0326e9d1c9e632cebb3a68b4a821e070eff694d097d1c38c4291a199d8668423f921b9ec37dccf05a53f5355c744e44f272ce6122121adebd5cee3770b83b8c84e17000e4b801cbe19fe63f8d43e4267dbce1396ec0c425f50170631431a8ba259dd51097f4d770514462c36f389d350fcb993596ac1c6ee3bee7c8e19adf7befbd395af039afe1184da8ef6399e491b0fcfa4fe708c2f232c9dff19be088c36fb8e63fed223739738c2cb7e137c4f2ba0dffa138c425f5617e43b431c2587ebd7e91269b0e35d90e1361ac1a239d115d2bee91269b6c0c9adc92977e68bcc41b43c810e7775314501d2543e4c7600ab0491a02b1f19fa10174c0a0892b02ebb447419ef9ee34df3b5ab844234db6df88479a6c9bb148938d0114cb5b2212d807d735bfacb19b5a22ec3a3fcbef16ac82222829be504197226a900989400c19885440822631442113226a7aa2035704f1420a3fc8d0b4a0c9166962082205998b040b1439f269e29432979aec32c188b3499c4f136a4675e244e389538d38a7c459d5643b73459aec6efaf6a8f6966aefa6f6861a1ba7878f734a6dca02bc537be86b15efd4394245400a77d2d9579f938a776a94afd509ef543a04eb54efdab5d65ae958b7f00e985b562d8bdad43ca52baa794a2d8ba7e62969d343358f192d8bf9a366b1b2adcafced25dbfc08cc8e4158ac56a18c68358aea3475d5bf6e0c1292d94decdcc8e69d5befc6202c760ce2bcf3208dae987b69a26b53db0b35e9b5ef02266ec97aad5269ce53ac3034af43bca35d993c34ef23ed6a5cee1461842adbc6a013649b6f631f511dcddbcb3ea22cf6616b524fd9fc43400a777bf6ab8377362fe9ef689dcd03c03c368f00f7306fc03ecd33e3b7571757056c0512bf393313bfb113bf6d75ccb960895b823e5bc902854ceb4634b723ac7ae8423223d66175ac1eb4b990d187ea6c2e24a30848e182cfd53def442475847dd0fe79756f840df1ee5b32efb7a884ae59739f678f9dcd8e6643b3998c732e5b9caed0c2d4e98a2bd4e98a23ca36f406a45710ad56df53c73bed3a42309b2aa8b305e0c50ce928801e2e7d76520151c959bc56dde5815fb20d99f1db586aa0a46e43986a989999b93ae83fcd71ddc881d5275879c826d9bdfe748f99df7914a3ee99e1ecf4a8795ace2573d1795dac870fcf8db37720a4795cce4ea4484f0da7f1aa3156a80a758fbe6ca596486788d4a875a68d4ddbd838fb76fdbb38ac10476485210b271461386118e2e0b8eebd61e8729cd104faaeb10324cd9b4a93adb5a8c4d577139ba79580bcb36dfc441846bf894a365678bd2556aec50ac592fb3bb644e65a57b311bf2bc2ac0f6f7b780e595784b1468be5ed95ff6618846bf915ad95b73cfcd7124b68f912fa405aa392ed91b49ce51c2aa0f52cee571b87c4691ef02bd9feba09f4ef586ea392cd04faabd1074df730ad50b4a78f6859d574850281e86a5de732c4212c20105deb9a6fd6bf1a02d9ac1d674e0062b825188016ee5cd23a4a5cfc74ae5a1a6272d214c5a79764cfeea9aa253ac4449d183dfdccf2506a92d02099390253d4a5126da933293fa94851a5f9f4d349530f31552da949428364e6084c51979f5e52a2ef595d6de30512b74faa2452a61acf515143744551df800595910739a4a14ab3c5bb9a9c5f38a981dae2848252f7dc545ccf4e619ad01ea11f4e60c5cb4caa88a81664423a4841ed9066b604c618193b8fada8ff68278941138a1a5e3042c6f24f0cba41846ce51f5f1f21f4cb84b91b721cd5a49a7d5f187e9fcf157f3e1f9f259e9db4e0f05f835d745d48d6300a7e7ec720d0bf1116d4f2900cbd991af9e65367721df4d61c45f83cf411ae83ce048b11d0af3309fd732658ea68e48e3da33a3d4eaa26fbc9e5ef0f47b09d25065d67f94a0cc2a1a5916a88e0e2b88b36e836d46d6cdc669c4c54a73dc8c6c1514846c77236e188af26b7eca3a3561fd9ccf8e2ca5c22cb6c4496b53cec23da137a0b564167d21a61758489107acb8d80ad31088b9196db8c4158ca11701871246bb2c1d092ec040c309aaf62333221c15b23539d90c314c96cbce52074c06664da1a9370d406434bb270e46612d5b9994af04e9f30a7243144912c749678026331d5011e64a07fe209e413b270c432e38a135c5664e08865469a723229f1edcd3225d8076b946738c26883fe8d7de48dbd054c82e364f6d33f1c5ab40f1db42b2ffbe8415fdd78d4b5f1115a7ed3721b6f8d30eaec7784516f899388eaf48c35c22af595b34c857084d5711ac9e6d108a3236c84001cf9a0c41a19e82384be1a9960f1d047007de5ab31c8012768529ac9c08b420bb9c002192419d024adf122eb1b257690f2850e359420853ea23aeda1c8e584a2e0eb82e295def29d4506b6a2ba7e45711f807d864afcefd3d106181b19cefecd105b8aeab4cb10a7bedd42d93acfe25e677993eb43ef807dacbc03224280b8d75b5e72975acf546fb9dce572cda89f74d24927a5d39b9e7f5f9169a79d76ba857a35dd4c8eab6ec3721cf1ba4b2cfd462c79294a2ce7ec68a9e56d73bd6feb8e392b9107efb4e75c71cb5891580f9f0e84f0601fb06f8ab0cf1361df68ef14f529be6cb806d0c3e5cf80851b7aecc5ebf3bf094e32a04f11689ef9ce67ecd164fb00946ee71ce86728e753f47cab542cb7a1a7331350fd306545ca4e893262690926a7264ae68ca721b59860cc39379f22e79e92a0effca7ebf8b0e93eb0390689cd6f35c53258e14ebf01e5cef1de26a12a3690810204398c71439409d0e00317512b180365ca37bd87c14c1da14092a0a2efd81c9a3320491951553aafdde1db2d40c54f5f2660c83c25a17046cd161508e2035236247101a34ad63bdce96a194cc488b8d36794b9a55f3a43ca468ce654af301e9b7916f11195a3e621e1c89bec23a523a4466a2a300edcc1c7c99d1f6ee91d344fec87df67ac39428c7c16666dcfced10f112adf7e54a3d22ce193e60a93adf4884af358a46f0fead3efd29e3eeaa326dbcb988f93dae44cb083cc6520176ec94f3884600f2e774260fa267238964040656fe04b20d797d447224d721121b4831d642ef3e8019d1d0821d224bb53927295f28a61a90b53771316441f2049c2396c88e7ec3c22e9dc73fed2ba373df68e39de466666eed124333b656f9e5fc5c9313333b3730e8f483a89e2f0cd39e70ca8db4545a177ccccddcdde40dd07f439ce3d11a8738fe338990234df7cc844e2f9563b0ce279e8d66d47b1766c23a15956d0ad587e77d6e64aa0cfecd657409d873fad847ee75454122484ffeb7c366834964051c4366a72fa00bab83c8bdcf31088372201720c6cae7917cd80ba53f30236c43606d8b5d1d26aa706b652d0cac7391b90cd3b9c4942efae73164bc440e7ab8f823304c2d9cec1d1eb40f7c22e74928a929afa0ebb706ca38e52d4fa817a238ca394521ab34e9aa42253ea5d44bd8d9278b81e73bd6ce474fe79c7715cddc052e835ef1a86a17b303d74a1efc4b27ee79f5806dde742cf39fcfca785fef3b224f991bc2f2a3eced931c3ed99b212c8f54840e7e70e874c6fa2a1da57aabd72a06bf30e4106bf159dd38a650daa2237b81243e770250abd16ce2c6592dfdc13bb91e8db490fcdfabe98d380580f325f5b0224492c68f6de454633a2706e5438afcc956366b1bab593e342209b9dd58318eb364f6592fa6c9f6077d33ab482cb343e8067c277f301aac6816f3a4ff8f649d5fc4cb6b66edd0ed73e3b4995e9d14941515d971bc91db64a7db102a6490c3a4780432790848409a6b8128510652e10051815d2a4c9c14c10b2b655be3d315092f00af0ecf424cd7bcf4e525cc0bc7c6215e40bbe822077802e140cf1440a3cf0ed370529f8f6fa92a289a750788ac54e403dd1834c154e559c410384154fac404305d5b7b7cf4b49fbe9e40e0d982703315fee883a32f31d55f57d46e94c16df4e5251e5db674cc79099a7189ea022aa222befd32a8e52c061ca0d619cc828dd9e521d9e8e1173e629eb29a5d49583d4ab2e774821e5bbccb7145f7c4fe1f4dd53447d9f8004ec14e5e4bbb3e14b72fbd929cdd4c7535ffd0be3da0dc7831ffeea3f0dc441e6b3d5d2b6d36eab5662fd5c026708a408cb074a4779629b69b28e417b5c6d54c43e88da49f3d8cef32eefd4b096e85a7ba3e6966da4347fd023a34e7ae5e0600302dcf4622f519d0a4215c00bb3b3f5ac5700a65bb6d2fcbaf9f3736d699dea4c03cbb527fc26b58d544d93b56c2928282086a245ec23ac4e91fa0a4d621f6a9aa785e09e49457594d8477f5dc33ad5cb5e7a3559addcfea2d9a8a40d76753d2a95a9110000001000c314002020100c074422914830225195cd7b14800b7aa24472501acb836112c3280819628c2186000000008410408686c60c000409c2bcc3089c48cf4ebe408ddf019ce739fff2b9759b2f4aedbf5294029fdcc2d533278659a2a6b92c7ee4cad7f88333bb5e6c5ceeb3e60068363c0fefd4f789f2130bef14a8da43fdc1d712950b0f7f26bcb71b79bca7825952a0d4aa6c490538b414212bb5cc16c5f1b4612fd96b384c549839a75db64975e04fdd36295d96dfc3ee184bd95481608b5cf3c128408f63feb784698cc021bde455332a82b1d0ac425babd4acc5d4e0e1533d2921b5b3f2a6ddc4b440fdfebb9b41f05d3c2b0e7f98d4abba85201642a72e1fa07231a33833bf133b833a0559385232b849be5640ef8924c00577f52fdbbc166529e12d816bdd230de925a9255ae0c0bb36015394bed9888bb9670d53ca33d421f55482b9b1b2ebff6dc2c19738c40d403f79441e60fe781bca4ede49988d6f577ec537cfe3659187443c5701c7f7e400de15bc53b39fb4a0afb5b267a3cb682f5a48823aa634331434fe3d305099b0dbfe2a29086124f77defaca04688dc4ac030abc6ceebb3cccb4fb7920dcb8a426d903d9520f0d03df54d148dcc26c8f0e9ec29f2918da663659fabd99f782c21546ab73b413f9a6e498e149879be167fc7e3dd23a151ea560f552e75178cb2f010e07a8bbfd0f642d3c9b44621af4019361ee27c13c1ca9c44a4548083ba827080427ba14b1c06c84acd2ac1a3ba76a282745e4599965ad59661f27b97805b004d289e8474e1574df3d9eebcf4644794ccf78b9588d628b44cfe8604e91e2e6f8c2f1ac355c52bd0602d51c6d4e5be1972fe2cb1ace0d06b1d5ee26ffc3c512b0321c12046e27afbebafbf20a50dbd3a268c7bf644be343993974b850d1db955af534a4f3524f3ce968bd968d16aa636b87d8122ab447f7d4a53bb308580e15d2faac61b4e687893fdafa9b16c035107523f44266615303a2331356f458f36ed393001cebb0b70d098dde86846f9d7f169f14830652f99303ece9c8dd022a3de51d18524cde521f2df18e14b51e82ed68918f61310d8079529b5c22e1f029f2ba081c55031425a1a137731c5d43461c0af2e6086f94362a5afca3cfb3933abe0dd3be9b6ce5cc54c1618906bb60bb983b74188b16b8a14ab3ea1e6621292440446220c2fd714642fffe0d7b02f9c15ac93734d4c12100bf78c9eb6770ec63e133cca0966d79ebeb2d76fd08825c069080513e68587209cd86834f8503d26d4835646d9ceb74a5a6a2949f252208785358b48b6e412d83e21207319bde2b64c29b356df835e996d4c2c4b012b9ee0b570bd7642646f23e0e5c9ce9757d76f92e3d654d35224db54353a64e66ccafb3f2946fcd6da578a81880d880398ba922b561c08c1cdc75ea4b8d241f0a003c8ebfb1ea78409dd3d23566043addf30df083ddfc0040bd1df67d2343eabf71ef10ba54e2e38452c85978732bc756d8286aab3b7d2a8f5ce403543be4349a877f4cae3bf9a95e44fbae9289c5d764d3f07253f69542835c23b91a27ff146f92cc41641817215d5b529516c867b71e8d93d94c0200248ff52730f8b87caa53af423448cabed434c6b7d09431b866148aa3441be4aad1a4d648cbb5e7c370d9b4c7aa158f7ddce1c442c84388cde7ff7d1c0ac6876711033a89f5d09a47a8960d6b0080fa5d037245a0f816554772e8d807ad182edf1463f89b11dbcde2be41df04be37169d30634719f0e6e25a1e5b72ff6920e3e7e8438b0d926221a60a39dd3f412113e96980461f2fa016cb4d5dca88bf2d169799503d4d714f23f442afbdd53549c7ffcc5f837b1724800066fc3551b341ac25528e57152db73852eea9e391ecf5372f85b499afe92ef845e9548ee5dfcc4fe521113142df4f06ef0c6efe116122a17b9cc5666543a36668da34365798929deaf776a20b42503b9df080fbc8bb1124f6791236bb0769b76edf95c6b9a5306e01239eddbee3c0e599c6765a577c2cc4bbefb27365de76dfe6fb657673e10d9ddb9958220eff15898ac149ab27563f8918ee03cb440607525a7705fb87a5bc5c0c773a10f632a286b20679131807dc4ec511854d3bc7aedf14c47344bd9ad53a0f1f6636d140557271a93dfab3a6978a1123e4fece22a59755f91317a0cbb9ba2657197317b0b7c7f203e82621923160e28801e4ed0c41b53f545caa21e566e14a54c89a712efaa4f430cd9f363509bc7f530b21275472a68b1be27dd151a44e805a2d835fe69c445ff1ef0ebb14f2cee1cd1dfd49c92c383ae51506bb8fc1595743b34024c5493a3c6470855998b1a7e573e98bf295a593a9dad1c30bf123684edb68000fe6be1a367220dc8b3f4b71595f444a1e79ebe9785070eece2de9f1e171d7a435ac3db5e7e97f305ca069fe6730770b1f68e5eb484feedb44b3337523f25129c3b489f12c7fdace416dbd206e2a21ba29b844c03c51d68d31e9411a5dffbc58581f9338ebdf12aeb3ac04398286d471fdc1a8f6f68a16ee5f6afe75163164e7a74aaa1525edeb5baf1a063f82a8e8ff991c4bd9269a9375b4f6fb08baefb9a8a0a9deac7455a114e71dcb4580ae56fc96958bfdcd64330d91d1e7c7e600745e921a1c0a7bd1beafa5cad135c7dfe78d772874c238ad5873a437c03c7b7d5a764286b5ddf25682f612cff48a3cc4ea75f240cbeb431452c5a3955d2e7fe3a636dd8fecaa2cb8a2d7bd806162df30bd95b53daecd13fb74679d611af6356a26c41833f6ce2f44915f5485f2b75ddab8efbcfacafdb4a53c1d77d5471c05883b2303d3d93b3449dd5c59ccece9391b5315bbf56261ebbaf4c6bb847ed99173afe4d394745b5446c3b7587e71d370d1536dcf2358f9ca3c187e99eaf06d5e5fc721a4e92925a199a0f94f11043ac15fe8a103a08ff52bfdb78a5b62e28873f7af58b8aa69fa480e4d3c6f3ffbb4869c9666df0c39921857c5e6f6a1a92bbc960451fc908277c2765f883ee282e5ea478df1393e0032a8ad5e3d1fd4e9003e8bece7cf73b2239cc0b8665d0a23183e04dca9153901990770816d71b7db58a59c016175db1060740b814fcaf418b75ed5205283557f9017069d5d5e682961b736f8428e1f0a3a08ab4d6c646e51e77ac9e0f1a26f9bfb7b22cd69c55373799617a07dbaa83c10ded271ac79de4da1b4fd482c5fdda160f45e0e6ad1e84c54309cdc312cb443a11bf08ab8fd7a53122a482120fa8803b3bf2fc78cd699080024b331481f868b80d157d12a55badca757e865067a6ae4e08a4796540b12a82a192101ef870bfef23e1ef2f7b4793fc718d74fdf70509a5a89c2894079f9459cd2b91aa8dc69bb280c014bba2c71e62fed1fa007b8987a56f453fef2489269b27c950c2749eb1975f2ebbcb6bc6b56f22045bc06cb3e5567b624d4a8d8158eb8882678140eaf65e21363ae12215dc781941010af48cf7abd468affa6f4d7700730881a51940df08e14f0a43d10042f0516765a4156dd858b8b3fe0d5e62bc8942665ba7d76c67da891b066a29ec92325833de9ccbcbc6bd4b8670371e2f61795647c5404523e31f2dccd1340cd1b40257f241b147f8a16fe6c190a69f713c9160f208972ae7a0263a2638bd2b06eab1ec6f4a2edac580d6f27b87f6fe817d61154bcef2d6ac8c0074c419e2e360061f77838c36c93c040605858901e19649085b21aa409bf2d89518e9ab482de6f0f137f8f04a73c62f7daf0b158ec488c01f9a64ae664b930df330e5e44f3be6b9c79ac85bb8c90f0a655f0550e3a4a2919ea2ebf994ede369ea4fd905bbcf592f70b439722da2e1cb5284ffbc017dca995929200ec7068d4f16ad0f202172a74d151dca4c124590d17574d324a7f6d88b93053094481ace7e4032428d5c9f6b58ab2cec90245d5531455e204cbc70bb384e250add4d8df8b58e6d9d9661673fa0c8b6d6ccebf816a0f7320098467e4344e2d8bfb4ddde7822848246d1e0fe94586f89ad2264e9dd883c81873aa65e9dfe0e1c1589b8b6ac665f5ccb8a08620e27869616da2f91fd2490932a63c736d504606d4bd22f2316a37feb24b0125e0e4e8b0a76798708a4e8584263376fc7edbcc93ec2943979efa9bd98cb57b01970f0ddff098a4b31d5f36cf331f466a2bc3a4e17c95b105147a74d1f47b68306246c4081633f15adc980aac2c5ffb6c2cf6d79a789a5c4e3ea01b9b651203b48fc326de8bc9e184a3850c0351e006d06caa7b1e11e2baa59c3dd023035a99a9d770825857d1b7064f9b41c9d17ad80aaa1ef2efaddc9863116160e5a176279a81060998a48cfb94834b9dcc3731b8814435d46f1fd1b9a89cc95352495d1d8199c36032a0b08cd872d7170e743f7a35764280da578354bc7c32eb4b2a0828f0ac7281b5bc0c291f7b148990745408383e37b1d9dea0ead85bd432b1532b88e8bcfbc17b75d97b475849d4d9c0a0acc5a9432bc7f57ec4c9b6df767215b400af671a54b1f22b5f5568f75a5cbfa9db038bd9da1db5774358ab67792e372faa560ce720948abb8e1f541a2b56124f22204065bc29b0cfd3b653b0e7ec475de52719adbaa392d1ed3702333cf2941ee1c2cb1ab0907d03a4c9039577574bf7405f962fb0e7216f84ea003440eff64cab05669162d920a61c9b9214ce2f87052b1dfb1562ef59c4005d89b3458cebd3725cfd0eebb5aac2c1782a3d398178741834818b8c0fdafe74679d8caeb6ef6b96716762aa272b78443be5104c1821f6704b606b12fd32cb766e88eef974b576c394120a0dddf2751b0258cf6ed510458e0f2ed02c3083c63c0e341971487814502ae94eb7a9ba1303ce954a309c74c2f42352a89d75b50f041c5c62dfdfc1f3dcaa84bf144bcf6fc5de3eadf3947d52af0e79e9b5d76f1b986470832b2c08d814b5c90fdf7b311192a4f99f8338e85d7708e06957845791a5781550bb227c4b3bbe049a6972fa4a2d060d79198b03460a9652b7762a70f30a30febf9b233e3f3849635c3588cb39b736e457651cd4d9f51643c2e04aa348a4218d548a22c84d74f8f8405c75dfe46256b135a2d4e70f0c0ea89f9c1d6a4edb026a3efc79fc2e6e44cb0042547ac605eb186a73411827bc52805a8f470b78d801183321848da099500fe8112d38372bc0dd4ef85b9085ed061063444b1a63356dc797acb1d90336c9f6d2f5f24a83e2b191c220fba6cd098090d1bc3c19cb4d1e74a97f8460a4b719003c30ad765d07ff74801a096007b5f780b0ef38c42e93911da09c2f21f6f83e9fa32827ffc7cc8e0d9916980444f66fa28d274313a258ca072c5a1c8930ecbb2e8d5f9e9ec79870cc2715590d567c5644ef7ca090b729c92ab35df3f51e987668a6fb7271b44dd564a363b289f34e45da0b00ea3a674262f4ac7cb818093a23583994e4abea4e883059802d77ea574f5f0e07b9550bd4011067f01b491f73ec066b0cf297ef31689c7f0f3513353613b99f89de86b3dc67f29f3ec4e2a7ed509f68db5004529c60df1b55b9619e2cb1c65258c7184fae748fb8b11dda4663d5de0aab508e836c8141bd098048eedc132e92d29309f90c262fbc2f8ce5e211d06bc44e7c3a5e045f8eec453b64815b163c2610a5e0ba6e91f00b105a2673317a37d9eb6164def8c5fa3c641b0cb0e23a6dcf6561ac66f55aef51b18aae975b733400432df6829cdf5750ed12cbb829bdd9dc9a6bda6aab0543532cf29639975282836feb5e5ab6a0115e701e04e7798b36823a0e7574e0bad28b639653f268caeb57f7e9da95da54f3f903f704c07d1377457d9f8e052709a8f726e743d01b5187edf0d97f854b313bd2718d95e69ab271d19040184c61a1bef745a30c3303c079deda9dbd4e1438ddd6fcaf58e1b1d335172bde2ab28a3da5b3621c7b76ea89baf7e84a659e356f51c383da29630e3dbf78d5ef9d23591dfd3c42104a5bf1485ab0ab680d0a419a2833dad01ffaa7f783e7b1decb10a1378921f245314064e75b4d715204f1f5e00592f532c2f947929598417cc67a76a016f61794ed0991d48a9440764756753377d407baa6ef2f408484bb7fac92013b0cf900bf35215787e4f045c94b923c09521e78e4a06ae5d2b5a726fd1c221496c8755a0f3dbd9c0e6e47a447e3c17ae51f7bb47f9010e168181702238e3e6f0609a0916cb36ff5e09e6f9968b28005d70dfb60fe6e9733bc1849e116654ef666794895d5a1ea05f8c9a5190668deaf98c0e5afda9cbdff4e2399d132ce4436e004e7537f93594c78f9e2c797e0f6381bc91f87a806e6dd1d94e71942626c865be607862f32f5a63a8cd33f159fa5d8e84d8409d81c7f0af008efee24d71e71b5d69a370ce9e5a5f7c6c973177df4703e9872a1985e816d94b2187ef7654f6204350950a94786df078ffe61bd0fca3fe116cd86be380c3653f0dad565b3400bc4c7a159d85a70834fcfdde69c2f6bb1da8cc4c66fe38003b14cb7582d7bbcf4baae5b26d959a7679c488ba4db33214450ccc5c158c5817d1932df0bef1c49bb7110cf92b1d0968f16dd83f78c696f40dfa343b7240a1544fa828ce0e2d37b72c791beeeb100dcc30ed58e8daefa71ff405aa536baeeeec857b149eec77a873b27ef252dab5a1aa465c6558e1b5854b659da389996c45a6f4d47e6ac1adfca42a8389cfd8b3379e230eab3f906c5a3b169462aa9be3e77d5baa2f9555b38b5c2235d820ff7f16554bbbd7c28c8f7b8139d3faf42f6d64ac836ab140b0d4411f7066a95973ef5f18098c50d2663fc89d45e1f3f36ff7ac0d272067f666bc0b1cd52f84aeb29efbee0035b070830a17e869ccec61f5e3564782c75f9483beb5475c726c2be42668514665895b4b4f1f824a68e85456b5308262960a061edbba96b4a6d107865a6f9e0e5192fbacb86716c037b45ba73d7744607006c75e8e901a64421b0eae96fc2484ad678f2e05cdd363435b8e20560aa6d2be0f8739f54eb15611a7f2f8ff2ab77916bb8e542c88b1355290bd9df2e4313338475f94427d064490110e4a9e6ce1237d4c9cf6eb8e2fc74dafc4139af162e3349261818047195356b7bdecfa4be3c74fcf55e85e52c04c3eccdae278e6781a5aeb81defc50714b9ba3723533a78f369a490a25187651f9423424e998cce8306702c9fe2def7339310f4606e9002b1ed9a3c83a20b769422b6286866a7545edf0dcc78cf7fcf2691181a884497a1c67111dc13f9c1d595b80f0aa5a9dcadfc254f7213a70a1bff2c9121104d1121a137566d375fb61f94b7702a5c8a63da00cda2a2d430ac42d8cbb3e0f870004a565b68489e20f9d96e5e07d26e241f79bb8b497d19e8186783c0a612b13ed68c79b143a6c27277c54b740b65632d789cb9f2166db107d14bc7f7fe3e3e601f2e9dff12cfef1974036e613de46f98f1d6aa54aa546bfe62f8840c2e57d217ba47c847fbd11d46f7e1f61831b02993011059edff9722641f61cb835ee12f00ec2941dfb65d8ea905ffd65d1da38f51a9296cff222246e3992e795111da1ce8a00ea0fcfa6b63e1c33b632a08b49809fc98b0180530ae4228ef05802f5a1634524cf0200b211776c9b768ecd513365f29b444ded72ab8ecb6a1445d9cbe93e4cb9287c25fcc8ca1c5fdb400222241fc09b941eb4ed90a6009833e398db459d5ef23cbaab50ca0802ae0b634ac50f1f5279dfa3fb58a675e51d31d9f3be3a17aeddb911b8c715d81b8a15b7e666fa93308cfbd97f94d930b80642274e689c38d9934fef13053489609d07d55cb3514540fe3fc6ae6f585bcb886eca8070e6a1f3255626bd41f8dcbd651bcf967b8d81e13adea94acbbf3db7c931e2ef51be8c553a19b2c35f3b7443ffc15e02d90554f6fa16216958552550f5645f1a063bae63c8630f829529ab4527b6ce62469446e6e198d26cc754f568c1f023d56aa086df582e08bc357942ee6c6e81fe0237be8e5a99958d7364f186e0e4c846bc4b225b0287f3668c29461cf23146f7f8accd441719d8f668378896b89a199d4b8273f43b094329ee0deaa5fce9e97e88f4d7638a57626b7554a258e00a4e060da335aa113b325527c97c3302078919a4753fe0907124a24a26f9328b15c37fb0581822c6fbe43b01c666485dd29e5b1a4103acf0cfb294c272e2fcb163c9edcff9ab6c59075ea694a587a71beee7938987253a24dda88089a1636fb6ad13a084f0fea11a7cbe0f403669eeb8cf7ffe72eca8f0dab892ebe5882e505f64d15cf86a9b0c1e5732bf3d1eb749374c650bffed3774a5460130d4fa4da685d58445a13fcbe9e1a8ac22c5884c91a224b3de769d60b2072ac040bba9771624645cf12840b47f62998440e31ded98331fc17be79ec3a9d1f81d36a23455fc83956c450c1ef4e01b612f02ce9e9dab24bada45d3cd53c7fdb9e53937f4dc120e109c0499ad3c56922540b3c0a6de1e20a1d10335991c7fbc09627ea788f694c75def402c28332f46211b6322f50755fca9395340927024aa8db312a86a308620bbdd97f3435127202ac1e9391143bb57332b2b714520af6444364769b58c46b847c7a4267a65db030957204070c572a0e02ad10d577045080dfcc3241b316e0ab7a8139f0a4f087443295f779243c970779a87d2f14eae293bef947d7a9966e8c9e62e5656392857dffb6e0c7878a3062e60490d41820f090ff84b500f1a4832ace771452bc9124cb2284fb21c64c97a7c2d2a7982fae94d7700c95f169620fa9620da25087909169f32518103869677a497b6b28626db72ec88f85689d2b6f275a903afc7002ee5e38fc9e1a398dc84a15890590373e164e68cde47e072cd6069bfa37ac82ddad83477b0dc81ed4d607eedb30fae1afe4b65040e817df3bea82dc1436d602212e34d949e32b2b95c74f4de457a5f741825796b5594db4e702f6944a960e638f0badcd42e6afb6173b153d0f6c05d5d14fcd16405ca94183a8afb2129f5ccffdb12cd9b112d4f9c7f3a93236e5ddfc32b400b0ff81f9b980c82527f68adf7be7a5df92bf2836ed80a01bb8ef89f35bffa193ed0cc1b94985f99f073b34fbed8e74d74b3ef7378e3a2c3fb2901822cf0ca3b37f202eadc2e3879a06dd105203d567cb84ed93b15f5c689350f2f034656396546cc87ed5464533624ca54c15010524f11eb138ee2d332f575a490f1dc888296457a1e0e668e876764fd8bec1c839fab643a864453efaee3eaaeeef7a4033f3f663d553d7caf305144cc5ee6c8dbeba95d640b486e65f86c9f9409bc13837a8cd489a44c694628975942f5aae7b54ddcaf2f9c51535b18a3301e6ca3c340366d151fb1607d060c0739aaeedc4e443ac372122fd4b173e1102bf62cd874039f5692f475f111100ac25a08ebbb9e130d53e9f8f60044f783f8834a9918e200bbd229dc0ac25d6f49cf2a257e5ba4695fbf3409489c7f25c8a801ba306ae9330da938b51d8a9ba340b850a9fa0c1b8a3c29da675347abde0ee6f025d4a59206b1b808dafffaec8a396c33b00c17bf237b262e40d0c83b9a0e57497ab1516e4265349e9fe3328ad15fef456e6437776922ead4e7919d39855db19b3e4fad788f619a62ddedfde297820e590c377df6e8cd675ba97c3648318b89ec2d5b3d8e0a6623a90005f8bb0b72294e2b929df2b78379a1e45d84e93e6985f3460b3bb8817601699be2fc2047a87eaeb53d65af85fc1c6fe86a53fe099a0085452cf1608bbbb5d107f8735f17abf2b1482731c22270af55b5713929534231a6ec6a5eebec64df15883811e0eddfc0fce6eea14234b104216d58a94f63f223eb566df6d41203efc896b67ca0a37d084c313b95edeecd049010aec429afb4e1907c9a75ebf2b0a9a59ac34286578b7feb3ff8a113f31d376124bb342308711d8a3792248ba8059e106e0c0c6d39c6992d012f88d0884f76ca52a79bc4f3f383fe3a1287c3c728417453ddd6cab5f95197cd963cb305bb00702175b09fc381f9aacab0b75976c218b511349ae966ccf132ce63f32484f37b1a3e3fc8abca0433c4a6f1d5de3a104ba93976f729537c106e21bf782ff4563822ef0ea1f009281946e30e66480c56d3bffb3ae36ee9f9d71f8e5b7adf1d06163a53617ca0620cf11bc0e3e4cab0714d38904995d8de71ac1881b4591f06e1f9fa3f8e6e4c9ef3bd1518c928353744a2ad016786ea26c42de1698b6491c518befdc83390a049a8ba30504364ec74fe7aee0a88ded9913ac58eb91f927bdd3b00fe94606ef798a18a7fb3e0dd69763a01b18f42459894c9c4c17884897493aee44dd2bb582eb4476b6772081dcb8940ecf3a0094ae93723e7321416ce8c615f69bc0101b13a0ca9d277b2061144044c88a8f172ccd1eb7d896884d3af7aa0d60c375f59ecb4520b4c3af8effa5b9f00d5120e0b6d47af0aab326ab009495394a87840b75a3d7b85245127a81631c65232fd4d2c9756126a61630eb28ce80439ef817a86536fa381e4136edc689508e6b1b861b011a6a89cdf2b5c37fdd223c5802c206c2b8f52906a3f6fbc3e544b0caf66740be17226892f915ce147a96e14381e529f685c58264863feca8e4fa21239702343c1e71900b1945042b8c2ae5488d40d5cbd043e3a5e8f938b2ce84ac93b8c87c4623d310186704f9561580ccf80d43ea19743008c78fbba635225e0000991e3870e0b89546faad761d158d2f46200fb781a51b18d31736843fed7d0da32fb423d75b1ab1274280caaa12beeadfc5268371f56e09f932365a0e6da3bb00f608a81ede4ab8450c15e733c20b59fe24309592a4915a60b2cf49e34fd3d36269413ee8dfee318702ed8745435fdf0982e9de547d5f493369d0b9bce8292cb1ff81d97295f8d025911d3819a0986de8796c0e176af88dd2861c7c2898da84bfb19f40d14c22340092a83a4561fba61adafc3ba5cca5220f65c20e2120a9c60709be66635051406d1ea91569288c78bb01910a996798126bc2bbe9b5e67796c008d0f26cea6ba92cc6a59adf43e8ae8cbcc147d80182ced7c1b091158a75817b4bb223ca4d3945bcc7e1a307e4bd71c40f67564311ccd11105a27a009a7a2440b58c40a52ac0461792df3ad0498e90f6eb0fcd60cb910996d21b4d38fa8f233758ba164a562b00e11c99fee57ce933016eafb1f4072e81502c0e65c28e77df8323fa5e5414b31dd8d6e58c84f4e4c208ce6493373122900c3a792b8433522dc2a38ad6458b10e7628a0f1f10a3c826768d559d80506f45abcb97b01c4ddcb91da1ff856e26a10f785cb20c555067d833a8e27a9dec8fd2a8b61b7d46133670b8d494309a85c37d797e6c7b73b60d2a0eb336bc0ea9e020db00075363977d54cb49a791c8e3d373f6dbba7ea9cabd59149cbfa003889d17c0e2390ed1938a17180d070bd861ea3596680bbb0dfc409f4c73a2329c10b932221cd515120af1cb257f0e505ac91248e8828dd0ec1ab1e05f6287aeb569bd6dd5e09d34b6253f5d10a0691acb0f006a3f5ad09e0896f4f99fa18e8a9f17f1f56302fd547b989fc7547605c3db45a1da90bf71400125737a90f5df96fe71889f64756dcf7389acc8886687da611abd98c029d01ae64c068fed187ca737e1ca91e39f78ec3e1f419a152389b37c63fdcf431b2cccaa248b121378616aff5a410b96b47616e1e232fa6c16474f952be29c274d8651c967a06e04b9d3ccaa9688ae0a81b9e75260bb02b3e55dd75bee03645766658975d9d717f397df241f6ef8c5cbb4da9f512b5d0232f80da31ad990f5e2023d0cfd923ff4cf7f4f015326a78da96e931c0ca49d0d4d1695f54047f6392f9896cde76704cdc8e6810e850aaf4ce93f25d01858f5e5afba33c1438110a286cf849c951005be7736533f918a38ed79281228bb5014f1352fb308d1efd35c4e93f26fd3be98a9b0c7d1647ca0fa1d4ecdea0a98796311f5444a117f6fcf7ad4abfbb80f6a4fb866e46d763bc0bb6d3a178d3498a288ad82e09846e785bc28cc999e8d424c8f38463b93573a49394764118976795a4ec4e43fe20e7d83810a9e097320b3dc78998e14b4e12c9a3798d0d226c73754a6d2f19a78b0f663dc43326739ff5e71d876c599a574b80b633992c55c7b92c4317be0c94757200ffced449b1d6ec0d90066a87d3662b432c0dead8460aa577fb21c6cd5df545e0b035f7f38cd3de9c6a66d3894b80ab98fff171f6e5d2364769a165fa7e62b696a1b6ec33ae6e9dd981a4a27c3658b7eecf9c6838eac1799008d526076877c9c5117e348e21315c26ac3808ec6bb39c541250575df694b653207f1a558e81e9e28d468c6f51d2a139367b3c8a0d6131dfda0adecafd89f53de7360d92ebc0fa52a34984da10b8709602a49c4ccc60bff4775681d1fec113f21ae9c6c7f67397237bd5eeab2e299b598360b715d64142b790cdf188317d3062d2c2926a393f908ae09dfaced6028bf6de6a3eac9bff0849a29a08bfcab51a6990da8a8f719d6c6a68d94892f20b381ef2a5a5d6b083a49c722fa384a49292145acdf55c40261fd8142f032d51d643db79e8b5db25bd4156326e21a02de0dfc3d5f6a81b835688f4b18f935d5eaf2d6deee526fb16fca44fbdec575f545004f08e769e7a897027882cbaddf7f99f57c99d3401d22ba4919d8d3df4c68afe7de7a0cbedd50a59dfabc4296c8fa8a59d69d08a317153483efab26e71e8614d7534f3b395c57b8e25e6b1edc1cd1dc5a7d3cdba9a5e613dde85891a8ea15bcea49214953734179e5092a4611ef1740ed33a626ba4a0d635cf4f69cceba21d7d5d24fbe6d84a708ee5d2d7e578cf543b5ff4f9a74998f7d0a0e55b8614a10da7ba2dfa559b64b1421db1d5c0c6540d0e4b5e035a4bd277f3783c512ee8ede4e78dde5ddb4a54f592053772a2d2b85db828737ad69868ac28b290560252a6c37f96de3f58f660ae98819e9f3c26588c84635b485b1f78e2ee12d241ebb506e3d542771bb7a50129533a6f0e585bfff1ac353a07b3b128d55a124bb130efd2267095d796415ef47ed15728701aa5ed81ee9f8f1e1c9d4e7f2af56f61805dbdfb1a785bdee4ac53812216ddeff152ccc0c5fb812fa5e5ce218de3d35384619ee2b9f21cd2ae497c8eebf4d95ae8447687eaff9cff5d87b7c4c16dce21da34fa4209b23d6436ea8a1e1494d908904591b190ad1fb7d5ca5e1aa007c04291ab65d1c2be33b3b80b4ed8fce9616092e5c4b5f15142eafe0a9e4f15d7d2306e45272d1f63789c4a560689b6bd15d3aa873dccb515b05c36eab9e95ca82ead9e57742545de0e1b3ebaa713f49ea9058293164ac88672be7d414a435230305fa51584294ee24b4b15724f517eb86593d3fde6c3cf882e787afe4861c6a68a7231b7be21844b5a4159d397b73f2d9e22e52ee86fc82e162470b47caebe4d4df2b9da7a1103ce3f88e46fa8cc1d269e270133a8f4e751aa93d68709b5a842a75b70d11e8852e6a493e262852cd782c79d6532d85c6a4d3c8e8b3467bb52ab0b4a70bdae8d283297ddc96121513949b1d70ce81b3fc3fef249d57d9ad62ea5aa8254240539c493dafed0245164e1a5924df620e5d99c2e6abab9551559358909f7fb68eebfcd51094bd158ae6df99556eca940b1ab3739c4150497252e0332f20458cf496feceb1098e1fc67732132e58384d15c720e01e97dc4124b805296d8b18b7fbc5e9314636d7406f2b3747848a7c5a9f1d764c8550d6613e9b3ddcf0a95ae2e4f15691f176ef3cd1cd2e53f0a7ab63c12346dab6ae191ae1f3886ae9cc76d313a37a1a809644b5419bd89251585c0f0e9d716ce0a884f17abb70d0e7501775ddac20d3bf059bb375ea385630b3a89abf5ba7f0194516455f405d95b12291bf88a4411139da8cacf4eb390b8b4272e1eafd0cf3dadc4d32a8217e3869a9234b2d034e128a4664c380cdf8daafb00273b1b125680a279e2cae38f0106035c5b99a67b9f88cf1d5778a6e215b37bf6249897315feae6453627dc87852d205a4046d9bab8c9bb6a9ce0c09d13cee2d47fc06a7951a28605c35716544800e4de0961700d53617d394048ae14ccd54065a8be3e314146c1dd60e44627e70888f47af6aa617f014cbdd26093c02e66bb648d456887aa2d09f36707ed33d8ba20021e9a775e2021b00e1895117007dec7e3d06289c0263700dac95cd39ec28939af45f3a2445b425f8c82c278c5598a51d2a712ca0276f52b3bc87f13314bb61e6dd1ca384de7b670e358b185723f12e0628e8289131dab946c32190136e47ae1ee78a69f789c1b0c4990a3a2d98c0a68a49939b7fb08d7015969799db53ca70a7b46a6059472bd755044bd9203df6c9a52bd71f6fe82d8df76ecbdfcb6af8d97f9fcacaa687220efa0da8b9c5411d3629c7bb84c620e6479afe32dfce4a2295ba8777eb2124a7f4af327e7648deeadb4093f26ed55b66680cf4ab4666bd4ef14e47621220dcbdaf3f381ade760d02d159dff4c0f3d0c8b94d7c253e6774c3964d21c10bcb42d721e2d637af6841b59af8a3bc752839035800ac9fb82450f394014c0f390a110ad419f01a283b26782a0e37f3e357dcac53b8c1431fb1566d553501e30a05d8f88c2a1b494d73687f80606732b7a672f8e080cc714f7cb6b7962002a23a1661a16e539742f175664fbbb708fb9eb0fd359ea021c0f2858e5fd1ba3fe088824eaeefdd8072c4b35d821d49c0252bbdad62102f85f7ccb2311e872f1e7235d199cc13d7c7a45ff3e11aa9fd72282fecad750911d50ee81036d310ab3c638ed37c3fd7a2f3da2778aa5164f85d284db2e408443a0ce04f4872529dc69e17440b8b40382853660b47a6ebb3e30466aef2068382210fbf9a0b37469dc028388c327c3a08bd1d72dcbd42ca32acdda6a265c6e5154796b216a9622795f4880637ebbcf76863aec71e25ae445e59c0a7d4375a4e0adeddf5b796ea30b1b4b2db4b4aaac3d64ebfa2d7d92c5dbd90a7f286a9f496c6fe052a7276ea48c05d79af5f936220600d887677564a206207c7905a65b233ef9b1bc078d511661d6807f030a6181bd9164086ef4a26b1e0ee3ad2329ac59d14ca7847981553ff4861da0284a6d474febd5eefe208cfd58f1e42a12ce85317839c753ed569c0a808401463ce931356f6d162905aa5de8e5a33872f37d6e1197a5ff0c32557e8921db0015ff0b536fccb4dfeff09d3ebb65b948a66877043de137f49a75897f93402219edc5bc52725486207628631c7754adc41fc10e4b71db4b310191813c379af19467c11710618f4d1e3796c8a5d8b54e85ba8ac5c6fdf308aa067a102dcc3010825c894f69e5764d17c54222fae16c1779e7a66ab6afdf80297115fea81c98abe4c447e88ea1b79d280b20ed41fc5d2d8483068c639604a99ed2858d874cf69afab8be916a77066b12ab9e1e99f8c1a63c44e0b9cfd98e346c04ec951a0c4efb45a664a753bc801f9859d2411754b491f539f522e8bcd2e4b6f0766b681c07526726a56fb4e9a12e3dcdaf0cc208a2baa405cc3388c2e7d2c64cdda7469bcbc4a522ab0b40cf02016857778868ba48888f1966938412bedb6efa8115128c95a4c2b54bbf4579a0f7e8b619828a55189563a38a9a867d22e7f39c4696040c6a0f982e63b68532b6aa26c5b9795bf9df4441a2078e68acbc2e5a84adb980412fe9fb15dc9596d0faeafe702cf0036c8e98a0f65d45529dedaae0824b3a40d5b6a7be082ae81055dec3eaeb4a6d25831c5bef61d61781a41c108aad497dbea550aa8e5105c6571a46ca74c81cb6e00efe361b2f58fd6b97ba8fa7d52194a919e2b1ab2d6b7c63de283614074221591127bab1506520b3d1ad1b90e619ebb08a586e145c521adb89bc02cf24a3cc25d2d3312f75c70631cd1aae8fb2449a237ef94f7ffa28d43a4e005ce61cd1398ae81688e880b0fe75794a243a78fc2538dbf357b78851c6af85b63cdeb86019dd5050d3cf6286a8ce02dfd3d321d2b7bda787baa22f93d97aa893d3f130aff5b1ab30172b9332c75e8f1b7822cf8aa8462bf095231a894e87671c7c2597c829465b84dda4d75293fd36e8e2a42e6d104e7a7810d0cb8bd8d4c7894e24511ff21db9e37ec58a6b3c9127dd45639d063cd1aea5659e858d941e4f0aa9716488094a1a12650d1cc19b95e677f11f8ca637097a9d0e46d5485518ea442fa15bbcac9088033c727b368ec783ef5e5f80e252924a53b1f21a6fbe3f1ca70ef9d02550dc7e1946d49c0249d557a6e869734736e8c47b96ddac076fea204dd1872a48778fd41642380cf22f0148e3fef053899b0106ff5e810c3d0d80097cfe48abf2420be7ddecbfcd83f7352d394395600fecbd4f28110f981383259caeb80276843b082f3c8b9b421650c024f456f4c7e175f2d86d31295e1f236bb0899e220e6d7dd34382d60532ce2ddf1b3a3201810cedefb0ff9977543465739cb6b9b5262756236f2085d964ceb90d26ae59f3689e23b9327de373bd35e4eb26eae428866b6c49e7a744eddd091f473c3df93853b6fb40c8cf006122bdabcc4c2fb517c76b3c24b2650ff5bfacf684862ca21946d92b71702b5b59fa46196d141b8946178babe2c58f394c1cddf140d29fd69cea3dec97b1c0b8b2e11370908b6565141d8f793708bd226d6aeeb04010617802d85872d2ceee889ce90ac3ddfcf2bf521b0b4d1cadfbf01cc4e59e633a9590ad40430bdc2557d94783c64c09b9c0405a82471f3d97d38be703917a2438b80aeaa0dcc0372014662924d7645b3ab65378e8f449d00c9f09b1dbfd952db4a6da3e2b11992afcda952c27dd98e4417ab44b904430e348c30c8d79291650d64231d1fc1bfb5412d26384192424fa01e47d18ed1dbd085a40de38155c5e9951cd89411fc55f4e131588a99453e805faa84eed2a4f3345f5cad97b6eb0c4b207bbab51e5b0c790f0c3a83e77aa2625184b28332439b9ba82072386cdbfeed58297c8c6490b74e6874b5ddf3606468aeaef7118aa47c6689a93e6a2638c0a7eb4d8ac474d64ce752a24f40e1e93de1a38f79574b4215ea655a285b46f8f948e0ef26300effcab847952ba06e8c8cabc5e92f8bf739d43f1f8bb2ee441aeadf766e9ce548afad299d2efd32237b873780756baba259b1cc496d30a02e5eead411a3d171f791f2885c18615a5512203911fe53d9f71faf843a3763dcd7fdb1b0c5f0a8047c2a0012d100d9b851b3a553bd9b02b7cab440966e68b2aa5fc3d10485ba7c91e68808cbde4b6d7270a9cb5b0072b25c299f85c2ca1b4e46693f8ae30fddbec1de8b25372c4f1ed0bedcb76e9d995e4b7797a582e571e319c17428c6c69531dcdcabc64a3cc68d468fbc8ad1d7be88ad9301aa7d2e31e3514f3c1bcd1608b81ebf328fc6739ea0b93d6a0fd1407cf800267790e5470ce492371916e73be942b37353ee8c1ddfe9a1542b67b57b25c7a2ba58471c82bebccd503d3c7ed1b35a6acc6065c5a95494a6ac89e686be6340d56591686481fee104758c02b8049ed1f15a67ace07e1ab544d4cdca488e8cc2d6e610535eb0d76d2f0a04d31211d6a57bee89500095ea6793c085fc8ccf120b4b1b3aef21a7b1f8a7707e97a31148c2e8775d097e75725c92cec7ac51675694e6921fc236b01fb58ae38e51c8ba4824b26ee82f91cc10180aaf689bee74b0bbd6f0c74dadacf6bd2693a62587293ba00f0d160719d55ea8dc74cadf6c50a10ec062c0304f476a6c2b22d388baec34a8b5320f635af8aaabe3c46ad69a1dca54809b0905cda6c2dd2c46012492f38c01a323fcc80c60c19fd97ce159c774a45d07522dbd1e8549b57c6c3e33d910d2245be0b86d0dc4c4f8da4b648176f14859e6a4a668d7164d010259b7a9014cb7fbc0718675418e51cb17eaaae0c3de733fd770ba17d514625356af2a1cef7541eb95f1118d4b880cc80cc9420203dc0479e09b242540d1d50b03b7cceaa82c25bf9e7ce7478666505908709ebd840e5f65f447c0bfe40a472d3c9573e10ba541a59b700f79a78043a902e3e38e754cde98d56d76edac8d66104385990405c4272fd88946aee11a3117977a8795e83d8af7e1bad0ae1b6d07fd6d952504b3692ae9e96abe832616dd0a644dc220b3e96c7e711cfc6e858ae27f24ea73721d9da380d2388b820ccd8fed5ec883ffc85d2d4dad084b99b4ce23e99b58e922f3a5730dce415d76f48973a9914543fb9dc3c7df5b25f35814ed6dc89d45a1e703a0a3166987e275cce931b5c1347e841952afa85976b149e39065c89e60dd2592e1e52ce70ca7539227b2ed0e8116459976a6b603db423aceabe32fc3775792539a0f02584618c5b5e2653857db1aedd495e281f5b68d3f710c9acb7f1ef49f1de6dd6c8cf481705fdbd356186c310e77879a0f5d77366eb7da4e91f828368ca8280324946f9608bc95dfe83b2ac44afe949e3080357df5b6be552d464ce0aa7c6906ee4e85f01526ac59d3b51def3ec7b5481ff7d7a601bf8fe8f93c6e55a633a1593df483716aedd958c2fd73a73edf56a1362e6a0613fd89424bd0d52d14bd7c09a6762c5aad86e3b86d0f58f6efa97291164cadc49fe8a5788e50be1bc44dbbb7925596a6a25996aaa8de825b17efc425248f841de2119a1a14628528ecb1127f91c55bb87845fe1f73969d226b9d8275424c74ee3d5571b80f5659a04146ea75e9130c7916896c739d19ea21a0f5adf3899f9a9d5107674b18d083ee6352fda5916aec40a7a5aadcdfee84fc5fed0f060792b36e20b4481fca265b19a6539006103deb7753c50a7741120797c3769690a45596cef1df793ce959d059cdab7f70f46528cd7feea24a1333356b0283596743eead4bf3b5adc73047172030750addc24e0d6b20484e5abeefe1f68c2fcda13554a0ba43a0603a5e4bb1ee6897ba5636a523baeb4766ee14bdf702f2ddfc84b050f322b8dd861f66250586a581ed077c2a0c8a7b4b10512d6d6606eba0e5b5ac72ec54445a9fdc230e48648530030209bcc4161838bafa0aa885666be28311b71c3d80aac7c1a478269a604b5cb48a2ac2452166010e3f50a1bccc06683f9a31315317253b5386b4d211f3557aac9e6068a4a7104f169c0da9a9670356ec3620666219da8035d8851c695868b879482b8ea3df04da9cad3fed9618228e85494ee47c6edb7f36fc72c3c32e4e98768d53fd05ffcf1c9924171c049d3c517dbe0c07c622696ca6582ca2faeec9f9048973bbcbfb705f125d5b4650c8c862cac4d0cd4561490328addd29529e9ce6e33e8a22a1d4b68e5856994ce3c4b489a79a80cc921b061cb2702390010c7e18a610eaa81f9d0f16e9535192a9e4d9a78274b716206b44ccc23ed8cc000cc5f8fe4823df6567d399bcbd70f19e45ddc8cdc8cb4a9e9b31d16d060f5ae8fe0a82bf2696209a14c585ba191dea2311dc0954dcfa5d80478208a23f587b6824b07a1766e236429e6b810e0084465d39bfd9dcd2d9445ce2816db3419130ac468e622ff277fc565fabbc1d8bbffa3b1922359cac638faeb681228cd1f1322092f4546700a1bccbfcba48c0461e24f44f8e148fca8a51d71e968c7c0e00de2f0f43ecc2dbe8d9d9d997763e3dd18cdf4df21858690f6d3d76963ea2840e1e9250df1a3054ea20586d13b4dca8b0e4b1d8451960fdba77e993b82a1b9a3ab5f21f27936a7ff6cb2758f0c6822b2b52a5353624c97bd7959efdc32e361b03c683bb478ec00f549a24b832c520891adfd2f105408a1407eca0151641af318e836b338bada026ffe096a8a6b6b47b085cd081926a68514d950911d42759aaa09c69cb069fbcab5bdb1a2393f1f61caaac1f4d4191a2c6d212f52806a7e759883ed2ae9a06bda86281a02e3076073e4d9a51645101cad4c72baab4f63e9d5893aa6f7ad969ace53584842e432ae8047312db650dc9aa81890ddd86d495fc6347f5e0cc55f2038a7ec4425ca9b53ccefa074e4a9f42960e7969ddc2595713c887dd31f60053c3d3bd04779fb22bd800219cfdf16054f16db1f35e0b81359ff8d9c6e1ce0320d9c183d4ab2b873634535920464f15230091282897a607ff0617812f1686725a2b5efe2e1f3d352402e374b1892f9b503a78fd8b0b50b5045135c51a5328ba56995fb8f8acbcb4ae749c1c71026987f25a6055c37f79809aeb1c3d1a4146354be1b625e94f8900ecb7acd194c45be0bfeca02390351decfc13ea3fcc0ed45f0ef887cefafa7534079fe352964b0f36edf5c013742a8c00006300c7bd0484d77f43d22f8fc3bdbf48882f60d21cc1879535fadea44acc27aff3f81410eae15976832c4e90d8d8ad4e15f0825ff1e82992b35caea5ab2bbd9784fb548636adfc61ddf47ebe9c4285ce44fd744171fa242df427626d2561409219f31d26bf81377c38fae311e9b152f7ecd7cb792c8d3549b557f623f3a50b8b85344d1529793b729c4db9cce5554c3925cab04284466eaf032692aead454c8472b51113b75cf3e691435ea54a54d1ade3b7a78c65fb7de5fce6e23d5d410689cd698036eb962efa136b8a5e45a861b1b856c6dd4a10920b6b88f0947d5cfd7d472e23487c06c6581d224cfc9732e17083e6660d848335264284d4d52313e98cf814562bb1a4a27d542eccb99b9626922e77d152fc0e25b600e63c7ca9cd2788b16198c482ede76b786af722f8fbfe274e564b7e61b842d8db6ddda4b95b627faa868190d2390bf0513e94783b0b1e88e5b03650ec38dc49a95b401a12297e41a14ba5fd3b99ec4141a6123a0d8f783eca5c043a7f47c0060da6bc8eded294d6ea891bd83cc3e54d00f52842604051bc38a0cf14ed6614ee0cc36a088745503a9e86a8d75d088c6687440c2212b06062465a54979d3619b90751cb6fed11f400c1846b69c5030037ebc674ba9ab024ecd7cd10577a8b1180b6913c2a6a558f9b260d5be6e422c6ed56f6081ed5308ca4e85936b89d145bac6ee5efbb42843c67239422a844708fb76b4ca2c3c24f2ed58b5164e967610cbb78b9b4c2df7e45eee9b63bea9578c6615d7d544127adbab4dc2df44b45ac1f9813a00ad913d08e00accbbdcaf13c497a1615315cf9230cf26786b3bbf65f06e2c48c6d193796809e9817c865f944448adaaaecef03a75c09d66f341a878309034737da73a06d36072e9a2635e4b463c0f860d079d79b19424a5e968875942470cb5543d76522d0b895e53e6d0f60a844bb5ac709d6a65d5caec8afd5f72aec81f2565d3506952600cbc94cd2f052681eb567b2595ccea83013667a22693fbd0b8f1c9840b3d2d82498f7713eea5071a14e581d82a4506179f89024474f59400e95c37b8d30768008246c06438f2d77b1b4a691bd6a45540d489d906ef48e292075445ba6631cf21ff5705b5a90bf05906a0ab5370cab091732970e7a8693ee07d718bb69618991e74f2b2fe9798cb8a8b36ad615f1adaa5fab152a1b2ce3fe2d59bc3b9bdd362dd26392b8d7a070afe7c7f2e2f05f9bbb68d59e4c992a36fcddea4554c8eec8af67f820c40f86464a7f09157e5fd08365b18da40b30a12f9c238dda26c0f88631747b71e51eaeb8ad3a792f8f962043f5a025b76dcde1a328697d46515fe08905fbfd22da6b039d655ff25f0af4032fe744298aa32bc75a415f1f390f682bbe78755bf1d20d6e7f0a8d5c1b162b3e443b782e2917098f2a5058e3b382e81c699e153fc171481cc388fa3b136ce667722f9809f2be56e8a6f05f844801e3b51e9053433342f9ec6920b7113eb3adb53838bd156d0102d10e73c765dc407c1c6d0511870859f37954139fcfc3d363cdb75f886c05070893451ffac911505b7f64f0b4afd7e6f9e385db2ddd18e3e99d247c8b372b7b01d9f3b6e23c087a82b0da2a31060433db1e53db93c89a2b3c33db95e39011c7b3ae64bab3f44003dd57fc21a33105549cd4854e4f9cbbbb1cde7534e8ae9656016e1a85e93b251ec06be25067d417aa8c5ce8a30c1b298a655758ee5ff5453be6571298a74bac3b214a258b9a6c8db73e41aaf03c754f89599642c9d4c36d898db70b3a1c1547c62e8c8c99058b1cd192487595a29b2950c48c6d0cd65828df95b1cc0ef0a119ae3ab103b3cfad31692d91c4b142d169dd0e524010cc2fe30682a31dc1b4f6712c44f3fae4fa47b41903c518169e96581685f347c537ee28d71c406196b02a9a2f84e4818749c399d24692cae0bfe7bc492eceffb4ab38d61ee4364340328434e874f5eca1d96de3e353b4839b0626ee6a686622a5e61e8e766e5553ec95e6deb26b82861fc122caa2bc019c47b94176f7dc6867710b5bd6c88d643baf96309124df6df44267f3eafbcecc7224dc690d2d02d8d242c1b30295d40dee0ba58028decc79f746d530d7f658d39a7048d0aed1a46ecd029fecf3875093387f844f8361cf1004c60183969c3ba192b9e60da229ca734c0e460cfd079d73c9d8fea6d7bed59ec7cab20ff1d8a4852ed55f95a2dc9f0eb621880e76f235fe12468193258647b1994a9491226c46f673d597276924f3aa7a26660c7b7c95fca9512126ae32989cb3af9312ac92dd04def793313d05ac2d0369cfcf899e44ce2dd8cee824f60ee996ba1ae84585d1f03ecbee2f723a7ebfe8e40df5983ac5a30391e6f09314f0bcb34769c0bce719b29fe1a8611b7572b2192e8a0ecafc4484eec5bdf68a6d65accc0ca7e81223314f60e6f3307904b2572c596f59ff87a95995cb22d081e5cf33cb741fdcd820c4673360965dc04b66590d06cf4aa251edb510d90023cf943f2e19241bf40060bdf31b5eec5a8f424696d1032fd86385f6b59415a13ca827baa81146a1f015ff92fd70a36e4270eaadf2cc05e689f6f31009abc3447a2986665376e799acf961d9cf9ef9d607f705bf531fa5be3c11e380a3ae71b4587d8a1435f9ff7b77a45520b4e4ae7ac5326332b967bf164696d3389a4c7d3aa893678c8bee5b88c1aac80bb4d13cfd27a1d052f9df4cd49d830ec307ef0850011bfd9349dc90c230f6b49f326f739a61a18ce29a1e6664ccccd63fc6a1905d8fa68d82542ac57c2c778dd4c1e0e0a15790ada826fbd148620c6ddb9df8215869afa85719ae4a048e51a0d5a75240a5be969b732c470c2f1157152ece9b77d13abac2929515434df94ae7de0e7b1e1cb81b3c2d5648159faef0909ac8a2e5291df783909f1d22b270e471b7c2e5a50b19ad3fb26be5e91b41f86d2f1fbf5bf779e544c1666d7abd739bf16740f79e32afd3a3f7385d3406f778f69b82aa5b1252fcf856ddb7b9f6ec1dd5047583a6755b6660608b3a90593953ff76b7195218aa7faeaa588349ab8fe505a0d972e525795942797fc13ac0a5d128a07f3366f0cf9fd027aa9c9d41e38c8904ba2c78be26590e8d26df2278b75ee78ee0f28575dae582ecd110255872ba9d94eee85998f174b38821706aaee971ce4f52da482ab52593617d889abf9ff21035421c20296b383530bf94f81ea3d06ea97683d27cb4a55df60d54604ace94c0baa9706df45210862a83233d5a57b587093692f403646e48ae9ee1ec3567b8d2b44eb9b4ee5c47b95fd6606bbf31977f0300ac0977db3025e39087f8dd99f95331a712140011d745eb14bc31094149638dfae807650144552c89737c650243a627893d2962135417fcc7fc85a019f226ea93dedbe65c49894a2255d3fb1b5c3ac176ea5a8b7be82f070196433759c63de62ca9bda784f74b4aecd383c29e23159975140b7db5681a23530e49a02818075ae39e84b07e0c2074f346842c2e0c10df6345cde1bf04db01ba78d518d91261584622129de119f52a902923b6d76d53dca206e0511123631d429d15761d3b818618be942b3fdf934be9027ea6a67a91f300d4115f2b4559c32251501876db506d679bb72a7792c44c81a32377b3d722f14c3f12d62b4b1ae823dee8265b2d1fc45ecdf59154c73d3a3dc2674a5fc45676b030e3ded4a04ecc707385b5a0802aedcfe1af76898fff5eae842504513c490346a1dbb67e8301ee44bb36715759c5475c8b736e313fb05f8eabe7154f31284d9576f66340da8ae5eaff9513082acbd4717cb61032f073bbb3b27de193b953e48d4c5d7820333f84ffd605c171e5fd95761cdc2521a59c8bb7f799f3d4e059e0023065cc9d8d31469d00d5fdb4c35784a2fc954b8aa3efbef641d3e1a7fb2bc0749a2fee33d6654aaa87eb3fc9bd233a5f485e92f89a79d0a4de2bd878adb9a93a5c5f9beb06d5fc2d581a1fcbe9a6ba9173234376cce4d7a948b6a2577de704cfd87331417f7303283b632adac418791110c468879d391e850d32b3273086cc5ac8031828a6c27066dd67fed350d1363c40dcccbaa0032f93ff8863d28dcd9d0adc86a6ac4ef8e32485b24613a0b71961e6504a002b1b076c8dfb008d5439fa39b6c71ce6339a5009012b4932da22e154b96ed645033c3a63fb2293040abfa9c599623d0f076044166a2abb6d919db61218ce188720768632b8a9a674f20b87c4d39e8a72b905fb806f10140c9ba93f7a092e24cf00ce4925f8ba53cbd0aa7d36cf7a0167473d8e10d0af05c292a3ab7d7628730bf59f66e2ce2f610b1f3e360a8d843f648cf569970aa6540f71358f8ced7a190be6bc98f00d999e0853a032939858d60b8441023574f399beeaed4d7556df90824ac6b114922f721e31b379be4dd32c99e34485d9202d9cadb1815b13f59e72ca45aa8d6b6d03599eb3c85c2c4c0505cfe1d98d919e13a8c0545b038c12f511c49b07960de87d45b23987063826139d808db9b6fc5936ac481a9d536d859bbbc35a71fc8a72868f63eea518b5f8ba004ab4aafeb58e9769819f2bd6f3508bee68893c068c48ec6f5b9ca080062adf8d09ec7cc113d316e5aa6133d978aa224d4d5a4564ca3503451707bb4fd352168f84b21d76a169a1d9f4aad1176f480444d294b2133d0000c9b6dcb355640ec8d81fd13d0e8c1f4c9ed9e650ed17767f2ff10bccc2d696eea3961a98f5dbb06b95b231a44643d4a656f96bbb8c6108d186a65f8857045a066eed9b1d0594a1b78b004e76ab9217f127cb8f0cc9cbe3f4b43588c007b378ce279eb862f7eb0d8e0d02ac2993e97652531f4f8a819491489c2c5cfa256d5b2fcb6c7eac389434d16c6343c2a95c20e36a7e7699bd00a028b8710f46d9a328224d8374a2ceb60a5a2410359d0bb44bd9ae616d507d5b6dd08074a4d755c641063aa7eb98674a45202d07c733de5eafa642a74366ed43960274c15dfb563d05a4a6a363d66d208a4e1524f4b1554775f93ddd2422116ffa9b06151250f73130b8e915bf815a05c275a7de6dcc66e53580d7d29618460ebc4798e3d485c6d09b7fb8e70dee02684a6da75708a10bee78bcb1e9442d3703181c68e7ac2c98347528f1f0f0c77cbc78059bccb3568b6f665aadcec176d7c51407422de4dd81d906e77286da4453954161a2d202081a007565c0c4533ff8eea702d24ebf3fc025fa964167b72d5e5e29b3056ecfb50b779042961da0ebc29807480af3eac0c7cf853354aa7112afaf4eee3c0c092dfb44071e0d474feae70b7125a7d6a17804535f4caa432b12d4a62fdbe049bf68514f2b6c2ba56cd8dbeca96ad054d581083d9fcb9a423c34642ebe8111b17d74340a8a4d836bae0352168eb7fe70f431be90f31416962f0627a22f41f4e11c16505f699a44ff183e69267bc0d2515b1593b208ed52e12ab853a95c518d3fbb7e1582e373c114a0b43bc89129ca64cdcfc1ff9d6c5d8efa256fcbc9574eda2f8837b637d884445f47f14ec0e66d65733f3874dff375e24e30b5257419cc4009a61122c87ab2fc15b3c202a4c487c4c64cfbd9af0741524592f9d55b98eba8c37df2cffa0d400bd8e10ba17b21c740ca591bbfa172e49261473ec873a41b4b10cd9c225f6988841107288dc8d78d40c9a7a3439a15006f36f09924e824768da35ef290b0a5baa37c1156cf06eee071b1e3dce4741338d416fc73f84bf6fd1c074f4bd891772199602cc0427b5c227924b5b3da3ba67f3104af2f0821e67a17c1c60d71e822bd15a79ee5d80714e6cff9523cd31d8ff01b046e050151880e93728c1605743ed68f1b96b9ebb11ddd1891c32fee2c01aa776f803bf75f83c3faecbef581c9e3ccc018797c9f9ea26ad4ebb6b472e29e6dc909da2e145952d5ec750bbb18807331805e40cb91364b70bce579419cd977d984b51a3d2af37afa28adcef68a085c2549d6717de418b7f3412c866b363c358fdb5316b5d7f675bcda84fec4ec81b54c5b03233376bb84fa5628adfaa734291f84a3b98e73d871afa762b95059f6e0c324962184d2e280e81c49180385aa64579903555eba443c4926ffda210810e179e3309860010420145350a85faa04e202dd82b89586c0bf01daa0161d865ed148d36d7f8f26c5a83b29c95b8fc422f494d1eaf1c38411aa8d910b4e01624c840b93b023c6939c8e819c88ef8db8aeb58108bfa22d7f7a3f608afdb5af089649bd2caa37705a4afa81d093df155dff62d1279cffa9680383cb1728aab1c8b5cfc699a9d51012a04ddcc7898c99c660b16f9d0564e7d04942e6355e24fc6cc54a237bc33d0dc7a24dc18eb74f3fba7632a382908bd9bcda70c0f430f732fd12acf891424f5253cbb1041df41a0e04710a2cdb9083823eb8a2fd013cdf413b5a3c3b17a09a4a387e37811add5a371b0708928629e4d3eb253027e8053827ccfe71236fced81ac3ea0b7620a9d506d1dcde35a022ae99bf92d6307b1be653e04b271cfcfe28e7539d2ea4d3c33d2598300c55500be13a418b04970df20ccb110e233d3f0c481c0093a998702d362907be4fa21a6687f668e81160038833ce12b3c2e405e91ac4e220855b1a2769b8a55bbc3264bde1769b7d2c07b4815d61c80e65d00c5878052045c8979efcfc6da817d0aec7d78905634445a4f900c5945fb603b7838071b24eb15303c412f50d239a56655028a7de276ea59657012e41f4988855039254e679f1ebe0b7d560517e0de2a691f6df68e7f5ea5f4d71077cf8c2667c466613cc580e3fd1d77b66535c58c818bed823f51e6b5f225b6004f2b94f6f2841643a1948243c8a340390dd5110022172397dce0cbb7e66ea48cb79ee0a09bf831497568aa1795601c67ef71e1eacf5aee20266e1e87c2a9e5b45ccd34eca54a904b77d80971a8074e00df80081699fba1263c30812cfd1168726585f7879fb9750e3a5418d0098ea5f9544b2f76633ef1baf0e7a155a8a111321994369c1280dc5ef32d77a86805fb071e902c922dbd2ef679b21f73ea38dcf9d068db470c941612a48d6f85f35d6680e19b00fc594008bde036d0359d28d9e8c6eef20ad60b5a969f6d0cf5314536f8312222a8f5a263353a2181141f4534db3de8dd0dc47257404c6138fd5b5bef3792f34e230372f7466add8a160a4ccdb620831e542533a5e68d1e77d0485f0218c746879ac05382d0fedb8fe18a691eaeee2574e4134c9d25358b79459280cb49ce6485aebd19b980162cc864fcd3f57cdd34fcb3940ab9bce557b8995143d9ad8c59c08dbedb9a2087e2ad6327088b1f4d11aa255ec735dd2041ccb11bde20f08943b281b405fcb09251349aac938d96d722f832c240b53176660ce33b06994ab52d9048a81fdb321ad0f14f65fb0cbd88406a745ae76913d5639d66510e6a86250b6fd0263eb192a9b4e484048d743d0b00b9565244ad8d7e1ee6e62cd21344ed2d50b49126988ed90685fbb514fff4e50ecda1f9de875854d46cd9845ac0532b994edc80a7e37eb3bfa711558fb01f0dcf801b6930c0f4a053a8906ceb71b3c1d167c39a99517481e9169e2a8c7197f01c612e218f7d42c1699867a10e43d3a4c22014973c72b0a6e861cc9a14bfe9e21f73908860017f00e465963b4412843d4ed29935e686c5ec53075a1368b952c845cb87a5621576474571506f840bc3964782021c49e3ccaa4ec9e739d6317b9baac9b4f99da2c5e57e674bce734ec39130b8e093fdcedd31371253ac37583e33851856388db914f06a65b093c232549dcaba9fb8e6983a56b30e38a60af6f13b4eebad078414588703fcaf89452f02c24f058712cc75939948662f389e013a5a793015994962bb69e4ebab888bce17eac1ffa8425ada8db5550edb1e5d35865f096200953a71bb7528f0d26bb826b2c659b42a48e4e3262849dae2f38f99c355924a22c21825fb05485a032f087c7626c3707324f45e4347101ac1c0fcf9e56196e8c89f17875d48812f0d8e9b20d0e23f64e3cd8c41abc270a69a5fac048ad44a8626543f9a2c27dc65384fb6edc472bc598dad7a55ba0c96d7c7bc4a9b73cb8f65c993a191d164bdcb21f8a6344f528db190108a3670df8e4f4d41fc32b87e8d8067d4d8fbac71cb80690f141a8f312ad56070993240fb2114e9186ee32f34710cea78551f9af4b9914fc04092254957951bc90e0cacbf9b20649353112278345e7a1dcdf182482c8e8fdfda2c5754e440bb9b5148f40e3d61dbe40c1a8474322561d1a99d97675d53d3a43d27c443e384abe1fe02450c352c185b6404405ae705193804bc143d644600193353ba2f6644ae4df0a350dd386cbfaf9ac830dad3b5b35fb449d4290da1e17f40566632e4433c5a7123b1d788a2bf6eb993fd2db90423bfd949f1f002f0f75574fe084702d93d2860af4ea00378bef62cadbde85044c1bdb1a1b704fe4b94359666b9294ea7a395f4dc235a055dbe85cafac92aaa197d87f58143c99650747568c40a480181e8a814dcdb7cc04607e3be69ff2b4d11833cd99370502acf1521434d97031add42ea2c082f152c8e212bd1dd7ace0bae3e093683d2b1e42872cbb61aac5492fdffb0944aacb42de9489e41a630e3b1f446b7c18e467702410cbd754ba1627302e4af29a0c8d7ebab40e8c0a548211f1523fc90a9ee70922e35793a25cb9ad28225398d865d30af779c250a53d6f3e8a06e884b4a12220dfa92263269e0baafb117b0f374273b5a21f35cab10c520a05ddd8a46f558e4728554dbad40b36331fd7fed007bb314d00f28b0f66c8e6589930d372ec524f24669020a3745f52273305c26572c228a06637e93bc304a7e20fc71a106dc183adcebb77a96efa75db73e434e4e3b9a9f6824e1bbdfe57a316dcad8e848daca391e3ebc34899774d91da04cae109d5cdb6da63a8d418d1bcaec286a8644968d7d61cc5a79f4c9823911644e3feeec245afca757652123f1ff631abac750ad94b583500fe44e7ce2f5396929eeb966c86562904c68f2b33c63757cfad45a5b538d1e5b48ac6080de5e9216366c6cc1633ec72d82b529da42ed2d6d1ee6fc655ae2ec900ca880ee12edd04ec4de741de22f82279d980e290e8363ab43cd35946e30d2ea52e402a077a83178807dee31d023104d6178fdf0c6cd3948ab60f19f3a0a06028a7c91237d187079efd30842d59d91239e3952c4b77410fc14c122c6fcd5d91dd696340dd3e65b50e2559e315370e093a371c880c092dc459d7489561dec7b54ac97158a53b653d80281be22b5b741d3bd14f11460c467b08bc7deb7b7e7da585a53674d82a1edecf8b8252dd112624c176eb332a110b8ba1ee0a9df7cf91a8e132c30afb2a31f9430d75099e790531e412b360f003193dfc213674b7d0616e72051017eadb6c0bd05429d32ae953ae11b9fff05d0267358350446bf5dbe0286a797272821ba5b822f2d337c40aa5713f06ddb459865afd2b83dd9c32bfaf5072493aac4cb90f38a8705537d7faa7f2d00d73f8740df9f2aa2033a708c6de97f8004d382397b4913d54411a006cd76dde34f2c3087401b9223c8ac07313b515eb95877dda58ac35daa29138cf833c67ac4560f20bfa7826b470143b0e43418d597d0a770b35a1e71b476133f5c3fefefa4efc87f0370aa7ef06946cadcd7306806517c592742b11ffeb7dab0b72b995e26efaa17befa9ef8bc8f0831ee5dc740a06029e9172d1263a68f994fca7e8e6f1280478bf67e8e1d9134a453b182b38a55783d97db9005eeb8ac779e14efb599f4ba500b36d873171e3498bc1c4c2b273caa8fee1e772ad82bb085176abb8164a45fe1d16bade41bd98c80d1d8272f0920686a5224e219a0c73ba11b8a3649a2e7ef18a24ea10a5765d9360ecc3fff1834f2695763ad25d9c0712972b46dd4d0c16e56d7061752e8fbfab54387793ad8485eef47119029e57bfa10229f4d6bc94e89ca30c38647b6a9cfaf43becefb11bdc4286820dc2f323ba8020ca9c108d21041648b155d3ebec3cd55bc347aadcfd48b30105ee81336d716ce02650c4e3bdde485417dab2c4a170d946b956253cc2c745e5b8f0852b68a11617cd3bdae1ebfead7114d6aaafdc46af13d3a8d03992ec075a5ce46303afed49435470cfa1ccd06f1bb5177a59f00d56e399cae3355d509a153452fda9698004fe0744dfbbec0f7473aff6fda9947adf67be64f80bdfc507235584b69382a86884c48019d9ca4cbd84a29afb0273c0b3d804bbd9a2df3c1ee4fedf386bab0f0d6b62d165d7af5406164d61b7e19bef437d343e0297c4bea418c0b2501f0ce0317f0dc8130f09f790acacaaf650c2e48775d3fe88ee850f27a275829016a40e15b9d75063702370ce7248c8a9412e0221a9c31bc08b061312ee90a16b34a0f700743f9681fe85f4ce48faaaa2596da3591ff6e2ba486df787c08bb4b415ec3048374b9482dc2405b2ea72c3bb2243990a8973765ac1cf007e639bd14223d10fe58161b33c24b5e40ef4ce3861504eb98bdda987007387e60222dbb0acb490b5167a6c81757a2094db022d914b41d2a14b347a8ea84729b416c174b355407d7a64855a162770ea71b881668a2892846c1cd1c583a1a094b6aaac5a48da8125318bf69f8a28043765e0beec5d17b60cb8fa1a5199af18a98c1fd38d686056cfa7e168fc53f1f6695212a0cba146aa92bd8d31610d60abaa3d858cc26ca2ed7a341875b8158565f7c7dc7df36c15cd91c88071a35af847f00f8d91958d9e5586001f8332dcac436244ddd981cef6a582cb506c3f4e4cd31c1b250699d3cf5f88b95dafbdc13bb5dd985d94291b60489813d3b5e8bfe1c90778b892b33b9348f598ed43f8272b56e09ed1de0747accd82459d533acd34a7c028bbdf7cce6216c790ea4357042b24e8a438aa812c7324263c37d2980c73ee9c571c341e4e779470d0b907a3c51c2a3b0ea82ed60845589aff239e4f7c2f419c8b8d26bedf5580f3c7c7490f358a6551cac140779ec3799bc47bf4a89c7eecda0d67cccd9f33306a7bf7916e34461ecce835626d8aec2e5b2460edfc1ec36ce2407b03c25adb8b5b6fcca39eae0884400fafb3a8010e77f04c727edc54f81974ffa20610044c4b71164ddd21e8132c6dcc824d31ccb10f0b43c2bb2921e54c4ea3cba38fc61a052c91263027ab6c5925b170291a80d8545e891682d652bcaa5b0a18a8872607d0d7e93f24c3f1f2433c3aa3d891e3c3ffca2d74e3f9356d4b0ada622fdc64c0822adff021b8df6f4c02ed17b4c41adbabab976725e924a1198738fee46c3e34b7995917b4cf5645518c58f3002b68e2b3f3373f80ff06c664c5ad4fb5f7ffc96a80ee829172464c8ec23923df865d615ac7332515377d8b070eab5d583131c7f18c9c60e4c27fad42752e0417ffc966df099ce4599d9855f0cfc928002c4ed030a1673a75e30d259710ed593605f0dd3f3b2a17baeb12158d055ef37d6d6052dcb53c80dad6716a976569fd85ce698fa76a00b818a38d3808d28008288a83a8da3cfd1ab86b31a1706d9031793e6d80247236186c118eceec5c9dab8d6fdbda54c5206bd092f0aa70a7e6feb5ed0961a10c1b6f6c1c747f0ce09ad6ab3085a0d773b1cc3375897bf0fde0e4878c8f610d3b6aa7536bbe33bec4a6dd0aaa8f71a26f164f16a1741d05908594724d323dbbfc58b8c4dd67d1602ac4cc862976bdff35504ad734b997bb6b00f79069ad55d98def766d67d35039a07efff923c6a0b254b30b4fd758aef0c0f781976dbbfa5c3ba7f6bb22b836184562d927a69db318822c0ca4ef869d52231e044b2a2684f7cde96709eedef2d2bc3d0f6cfa4ec531b2cd1dd1327c1e6465bd37a6c7f958c68dfc230a2f38fa2e94832d18d0230cbd9aa1bd92c1434e861022444b1c11156af7da0248349d1d6a2d9de53b56feeb9e7d9005015dec9f66fe9f84cb4311666c9c02b66184368f5efbe188711bced16fbc85dfe334288b48a77788763ae733f12da1ddd238781392531e4b6eb6eeee236910fad5e172d5a5ca1adde5d0becbbbdcb3acfba22b888f31c069e0d5ac5bb250e5341dece61ea2db28f300fe4dd235777e4307b2413f118b882bf5c04cc3a7055812b94231ed339cc7e0c5c41db1adaf2ea3190978f3c06e678200d9cfdb2939c9497843c646e111e1b5cd77505793c1eaff5b70898d3496f91f04646310a0501ffc6bdf71aeddbe30f80261a9fd6a66982a4f786ee5728a96c7f9951c7a6d5743b8eddc03ab603d8a05b07b03e96860a3f8001589d8c0168550fdc2125eb38b2fd459dc5f18ea552a954c2b8743f7c19f886a7487ee005eff18789e26f2aa1d57c67b8368639dcc35dfe0050429b3dad621b0fc7f2d5d8161269d086b4fd710f4cb4fdc79d1f5ad5be9edd71d2d1fc6e77fb9eaaebb04de713e40160875643a290c861aa18e23cf664985b22ab32990444db5f14dde5bfc243e715bf09eceaaf8d6e6e89a2fd9970b255f2c6b049a0217d9fb468c63b9408cdb6bf0b2e7cc07bfc67c0405f26b44ab6e0b0708624387062fb933ab63f9009b46a57f08756edeaab0371a5384c55af949f921c3db67f79dfb6ae6ab4d65a6bc350c614825655ab104d0bb4cff6df19a6325e996da9b9b6fdcd20685567fbefe23ca703e6948cc0c9f64b647b8fed6f6f7ce8f10271d46f78a0b86beab8ce76dc73973ff6dd8af2dff0d0aae77a4268d2519188c7f2fb7bce61338fe11e76f9f730ad876bb45e118fe11b76f9ff569daf5ca28f6e47b667211f6895a31af77abd5e596a8d75dbad9571d43a91a3a5ea44f886cbd2de56ec67a8c9ba6f3fd74c36503202dc56c5adda2325387adb554241f0eb7859fed90054f01eff52085a1513303b72975da2934a270f0595e22ebb1330a3e2ae0a0c01c96126960a344172749481c74b7a8f68db5d81203871986d5283a16d2b3084250e63e122c69d4d2535c06d174c97dd197108c0d3dd55d400f72c0a6bb8cbdf8ffcc88f8e6206b047aeda237ba4da23b386dd711722f45db1127ed0ad8e1aad3fd84456a914e69c73ce39e79c73290473d17d99e5ed46eb97a676efbdf7de7befbdd7ef8beeee453a26a3e3046fe31c0ab65aa26e39826cb59563d6e245c637fbbd974704ff9cb14be1ee8e67502ef979c1074eb5dcddf747f59a2aa6687b6dce6dfd54d3b146c15863acc2496eb49f636639b4d65a5b023d032f387a3ff053a4edcfeeea437efc39867ad4c6528f5f05eb233efe14ca3451af8ae4f8a9f3ef78ded2e7937963d19275e5056cf07378b244f16cd99dd24dc665a9f52d3da09471b6b9e7e17b8987120fa00742f103d85707e29e7d4002257a86b53972e4b0d707fe8eb78a263a2eeff26e6682793c2177b54756e702b52a589fd1349947ececc3f6b7e5289a26786317b0bdd4b23bd93a203f20c4d61e8920c3203a068231c68103c70e0e6dffea62a0fd4737516512fafebd3bc3e0b7033affbb5a1f7ba3d8ebe346127fd91981b67f5dc867f8aff8a2ecaa3e438095dd1f76dd1e18687b45bb13be9742d01d3503cf365efd07fbbe45953bd0f7edfdb733ef7f7b1ed3d7d7f2b1347503bbee9f7c7c70c89401173c4613bb1689f5aaedad5eb5bb12c655afcaec975755377451e65445cd3a55ed22cca98ae5a9ead5a996dbc597531579aacbbb6b2ab69caefb3732803a79a5d62b0d04ad9581cd30056b32994c27d3c9fa7a7a8b31e8351cc339ecba9fc34838c9d18b6bcec3315fb1eb7e5996cef3152f71f4fe0a23b47d152fd9f7710ee7704e2703d7ca52eb9b26f97aef4e85c168c67ceb02d10d322097a5d6f8e2b7d83a6de39e8cb748d10285be0fc3b707233ed3259cc0d63ec629e81847d31eaddf6b2fb0ad8a6d4ff1c2e097867b06afe3d35a18c2eb49ee3818ed3fd99efd5401a1efe730f4d066bb738330e69ccfaf2962378afed80763d0874698255855dc36896bade718456bf58abd2b44c019e7d06de3d585368905be5dca26cc2ef72abfec1124b3a9c2853fb58110450071833f82614924b3c9b24713994dbdc71399cd953d92291439b29025d3cab269da230b994d718f2d64364b7b54a94815e30b994dbcc75549b262625239869582cfd707c6ee17c9681d463acc84da990319347900cc20c6e0bdbb8be305193ce8243af343df7f9e0ce1c7c253063c7189ee7b968efac32841df9e5ca22e3acc55da1dffd2fd4a61524165c5eef8afaca452299c12a3de16b73dafd559319d360cf97a000836c82ca3f8a510f4f3ffad0f76cff5724e02c64946d3c39822c63610b0b927e8e605d2131c216315648f09e97859883bb03d6319beb6c7b1fb7532fa8460d6e5bdc168adcf86613159f3e250879921f80e93cd0898d7bac2c766186260832c1b04b108b0df29bc92057f081bd821ae63172ed21445ffcb526b17628737b042ec9c2a8138efec030a467083a0db0c43be2fe02c8a1df663517fedd7c25c38aa7bfa7e5996a5090ad8d9ad2b3cedb0038e22c06967937585ff537a1617a5f7106687af7e78628c1d638cf1b5630a3c6f388621b86dcb67a36d8d33eb83efdb3c64bb3def997348e84bb36d0ed76c0bce8e305a1c93e597695d39cca1055d064316c1f5db04b477c774026f1023c6a5102c85603e2ddebfc4b882b15f8c417c83b0804e167edf2c6b4fbc476b5aeb3b65f18621df6b036ac1f15e7b71aac8c10fc31b42e169b16801ebba1f65df2b857a71fb56c0ee5cebbb2104ca18124f14bbaee6a16fade6bb7f72c127e437847c0c4d96ffc95f183ffc174e0f3e0cb2713c9d4e67e9b2f192e3c9653604e2870f9a2108b28278faf0c30f81497c303f03b0eb3e9a843549144d7e3421842c7cf1646519d8e546f4800434c4a0042c489281d689cc74bea00276813c9995858fcd1b22e0cac02f6f895d3604755c59901be0dbeca28eb10034c04ee89c18d2b26d124ee8e0c40e71db249c988145800828618449520019e8fbe40826a1edab6ea089b475777710d81dfbaa2248978911ff758ced0c76134c844d0861073889268e4e45808461781a7b9cb64da289da488aa228a23470ab3431fb619c04133e9c041340c049307164063785d4ab19aaa1a52b8eb166cc9e1e273d3d15660f9293fbd3d3c4f2989a4832f91cd6c3c4a2fe3d4a38e9a9d91d7f17b3876677fc4d2b8ef5f810d253837501d13364e4b01e192c8fe788eddf72aaa891ed3fa8e510d3dab3c3f6d7a6757bbaea762ac5eef8a796dc9f340acbe39f4eb13bbed5d492ed2b67cf8dc610add6d0d6936677523e19b366c85d7ef79d215f8468181a72c5a4d998c64c5733a5e2a8bf8cf99a315f34ecf27f4101f16cd499fe6cb0b24c3d73be0d499a76b38a647e34afddb91f237332c71bd25a9f1495c207c6152436597bc42163cc3c9bc9b019c342496cc26cd12c8af952cc39fed76813486caef6f85f5343d6a066d4d07226aaa9d50cd1b4960877486caaf60800129b261e129be24e4d2f2f343f9a1fcd8fb5e2d8fa2a54a85033582b6b0d59abf5b1a18b4b4b4b0b8b266b8666d4d066a40a2004ada635b4edff9a394c4df9b6af52d29fc3a8380c4cf9ac8fdde6685752b05208b664bcf26b655227d86d5b1b119c6028fd0132fb6e194b834ce62ce6d0feeedb5dc608ec08221b86d96c362b9fb49801941517212d735738a12d113440da38dc65eee720a30af84c2f009ed02b56ad96780645f06d91966959caa82c11becd7df7e984c4e934832190673ef69b6b2accbed66dccc77c9db0fd53b5069f6ab945a7f941a776e748ab27dd4977c4fab4b03b4458588f45539d69d70842aba0516a64eedcb33b30436815dda80eaf88c812dd8b16a98f16395b04899e18414412545c65bb108e081110223ee3012cd02a9c7444ad1ffa9e16a905bb23192b38eaf75b3eb4885d0e24c78446a255f7592a8ad8b1cf66699622e719f83bdd562220f75e6befb53605e8768c3d5bbf39258244202e8a56459a1f68f5840369271c587314a6889cc3d82a8256539a1c68f5ff5b3d18a580618e9047d45310db551007c46160ce6156490f44c022f7a4f361b13bd76bd6c62e7e96ed1a8856c1dc7e9edd8111823ce986c82a1919bc88415a4dce6d6da168556c11a15595ce7d17c9228c604db77de638ee8f07add389ba55eb8e8854b63fa912b388a413d7eb44b7eaae13270ebb3e9bc15a0d63e96dab64aac0d555c02e7f1864aacf58d7cca5fc2b94fe7c21c83d57c82f9e2f94336ee833078d4fd006de7082b5139419b9fd0de48daf0fe3213a23e88bb5bd46d0200d1be1131b81347088046fe10f99186a0b174386aedf6b654130ea3a8d69c82dc1b5fc57fbd5892b8ed0ac154056e9e8fdb912a880ffb06b0547b14b8610b46a7b12a0c00a16d7f211b65b10b71b51ae47a83b9dd03437d02ab6e53543c93ef0cc4187b921322b0b7122c80379d02ab685b79aa3b6a0508784c85dfe289c2cd0b876c3362136dce326c4091190edef3a1ed989104994c8f6d7693183558006ad8aa228aee3ab74a9d250ee4a021fc843abadfb345aad766dbec3d14ecf599dd74ef56f18d370ecdeacebbebd3e7befd5d1789b73cea70624b0ad4e4b6da13e213328521e6df954990b45e62dce996ea3bd2b3568172d1cdda1d5729731b04c5bc4607751d794f1524dc554a72d323e420c865c9e883d8b828156fdc6c37bc45cab553c36aee11ad1cd40fce642e1ce28dc398ae4ae5291ed468e7ac9e8c851df39ea7a490ec525d6c39dcb0bb41a1629a223c5d0043e084214040a90226b12038c501383b5870465db246cdbebc1132f925ef0b064fbcbd8cd622be407cf1758e563d1460c3216664142ff565f983badbe401d4d4d9d565ff4308e241838c97eae7a8723fca0f52f5ae8a048a84e731e6e2355ba3b44cb41679cc3eedf88b8cd5dfe6a06b29d070a39b4ea341e3be372ce6b8ec3ae54059e7553c41da8ccac6806e13aec50330108b107e611dc8d47ea8a80a8bf45f1d4270923b7a8c59d0c1cb3b21d4f6461410eb46a752998b9ed51c06160aec8f6bf42774845125abdb39613adeaed6a0be4be332ce32e7fa4d9cc750a44329793ecee89edefe2850a2f986dff1a4bf23fc6fac4023a6d0ddc2a204eab76a782e82e6e46a0f3ca84102c6f05171c7999adb5a295318055fb0b7fa18290565bb470910493cc0b1917d8b6ffa3355611884d5bc42e999d5665742f107588806cffd445eaf3712762fbef58978b5ae6a6eda20b1c3cc9592c7fecb6bf4c4b94f99c459952a6ccb9cc6566a2d5d263a2757d8b5247b75ca2101ca66621f9b6891c06e694fc10dafe4ee440c0176835dff20dc7bc866fe50b1fe41c8e560b542a8db3cb0fad8aa60cb42ad674481fbbedafcbd2b53c8d02f1c9024f0d6c7009fd5b254d228c18858280afe373be3a59bcf5aeb59e641f2c434084824fabdada8bf1bdf85a9c29465a2565969861a2cb5b8fed2f7395d081c8bd435870a339ea2ee4a8931a49aba27885dce57f876638f680193c8006428eda1d841c30ce2834a1553a0610b44a6e8f41ece1bb33110c730866b1669bd16e429038fcb6bf2e2d4e68df6fd9a06f12036a38ea2fc39d246254d32ab9dda509a9c34ee0a0c23863fcc207688efacff74cacd966b41b1028462e38ac8515f0b67f067ed7e702a5b60ac7ae910ee91ae158798f28e0a85b2812e041ab24a97b38902aa957500b750bf5980a19cc2d14a068d2059256ff5dc75bf88b4762140a125e1d482ab901696fd7e1a1f1b74c99afd18289564bf0afd9428bf2850b9907738b9d6d8ca0d5723b2883ed5fca7c0b9db22c7d8514ad9660133628e2bd76975dd838031bab2de8ce27b4cd137ac8fe1dcb337f1db5b5fd9674d6d6e58f42d10c636ee12e7f171bb44aa64a68354d63a42d6c34020cb1e108a706fd64c5117090b4eac2058edd20accbfedc229647c7fa8418e9f46a49faab39f6b76f11986a7f2f145141926e679fec6b83b0319775d9b74f9eea35623cd58b84ed81e954af10ec8ba79ab3d55b84c97d627b933be5c69a165d80ea807d7ddf8c174ccaaf821edbbfa583fad14fa730c4782431c618e3911cf1c9248e8e8f388a4fb505c718638caf6d8725b08556d16ac6c1c340abbf470f8b8841ea3205b9ed2fd3d26952e6c91396d0655996af9b8d39b58156c5d2898f0d3ca49c4047f3c86531045fa57bfc5764d0aa78e69d2ea155f1c3bc5dc8fbde67d91375d45b44d0fa84118039eca0e26263b1c37fb83387a9970671876efb93aa5293f8ea90a210eda6553189989fbc20b5b86368fb93aa5014df8feef594da8227edfb393f48ea10107912135a15730d15445267ec491b3c0720a306174ab4fae2f16f7f6d6396083d18690111d6297698c9f09736b600274942d078d0214311197e6b45fbe0114f786fa3e096c59771d4c3576930bcf7edbd57cceec47d396835e344a1ad4571a87844525543d2f62f3f254b199721683c841735e060acfc386b7fd45f97497a57870a48a04664fb53000ace4fb376707797004e5314fdefb9abb6ab5c407210065421911e4083142de6074880a6d5ecc2846680ccaada37870cd5006830bae475a141aba44b131abfb568b63b209331d4bfed0e922f5c8701c8c633c02fbdb004052774fe6bb680817cba8456b50e5ade1630905d841fe40968db5f9729893118aaa5266fe9aabcc7df6609dac58956491998c006b95965820f9a75ff9e2c3ba0e002adead46888c895e50c821974c113e1ee4837343b72547a0fbd951d2bb5151c566c2b452bb795dc4a0f2c137659317239e2b1d6fbbbe85a665092c37c4ceb2608a9a7d59cf586bf9b56ea07a99e4baa87533d53aac74af552bd951d2bb5151c566c2b452bb7951e56722b46db1f2646177d0d5d5092bb6e0fb91ad2af588c34ad26284cbf130f27dca98753ee14c4c9e8b43b2129df74e28d7fff75a4b2155f933eb13d3ebbf3a613db7f85f9c4eed99d9c090a27dbb43a2c6d624d3f1c4b8720a938ac53fd234cbf98df0fb74203e2b07487530fa79cc3521f160d224d91a469567372a6e444617972d61c29393f17a436693636f13e994533ff30660e154775663a34ecf2199e1d9e393f478be8fc6a4e00c8d50a747e6deae5ac795f532fcf98bac4ae1f5df4f8b8f82147546b8441a2804a2108a905c9029582699b34db2c9530b6e77e4dcdbe2c682841a3e7301619243677f6b8496ceab89879e76cd62800129b2614c1c4881c0d2434762d8a6062446efbd3d8d14002b4033a0208074048808e807200a4032024808e00110154049011403a20234042000d0184049011452c298207db1f8807840490113d40428070404800ed807445f850046efb8f0320b1e9da4686084103fa017463618d0cb142d0b63fd00de8c7b6ed1bf60a360ebbc7ce61b360ebb079ec146c156c1b766dd7b051b0776c1deeb6c11a21b2465eb0fdf76debb06d6821a38a8cdfd661db76cd480cbadf8c17385e20c98042c69ab3ee135ee07881b4fd65ac32a0f8f1fd3cf961e2a7891f283f4efc18e1e7891f273f44f829c2cf123fbd9f263f43f851e2e7899f257ea4fc2061fbffac3f4ffc2cc1e207899fddcf133fbe9fde4f0f7e76db7f04224f66918dcdfd0c4bb2b33b3f4358f447e7e911d6e5bfe2ecf449da24659264a633027b38b253234014d9e90f36b7d31d6c4ab4fd756c3a26b03cfe363766ce0febcc74683a4376c75fc6d4a9e9d0b0fd5f6212a420241ca3e1c32eef012c892d86dbfe3f3a87ddd8f9cf1016760389cda99233c5bafc6f20b1b01c282ceab09c159b58271814c972532b7a144b7934224dd80f76a7063020604560363099b01bc082701811d80c6800f3c1eef8c372251336042603580f76c76141b04c271896fbe47dd485f9003b022b62fbc374a0900e1732f384d14459eb84f9605dfe60ea63fbdbb6aa43ab317368cc9c9fce0931bc1d4c879dddb13b6fc26cf815847d98118681e574b0a200c06cdb7f544105d48c6bbfd5026dc7172a059abd2203ad9f7c356735cd37614ceb68ccd798a3691d153f9bb7a8f52b4c9a286b7d68d6d0394b8d212ccc5a6d77eecb70942565aa68ba626ad33a2a9aaa38aa4062b3b5470290d83c0b4062f3ff6416ad386f340d129b353766cbbcb13ca249b353540aa69dcf4cb3c734e5e1e101c0016e90d88cb9698d4127b368c59b56bc5e69025eaf344d51338290827a41493cad35e76b9114b000129b2efb641609e91065367fbec926681784a4860ebb7ab0b02025413c202cac060f16ad8173d0081bbb81c48d1d76b9c38240251616248a5a97250e38db360912528a944a495733f561570fbb7876e7dffc6c6e207cf0c71b33674a4e951c5648c7cb4c99758a81193fa78af52997607d5e94607d56d647c5fbe74c617d5449b03e2d52581f17eb83a7581f24581f5314d687657d4eef9f0385f58179ff9c23589f98f7cf89627d46eb534281f6422f68a96cc5ab3a3a60ac78ffd30c727fbc2fdc6b07f30583170f2f20af20af1894e64b8813992f17d89d17d89d22bbe3e66b345f3ecc570bec8e3f8cf9fa6177dc7c09318b68a9acf52f6611cd85acf52a5427363b206e17b3037ae76f313b50ee7c16b5ce15a6d065a1be88bc68b0fd5f39ef095337e6abc8bafc5be64b8875f9db9856769aa1ec9a2913dbe3ffd6b25053206c7f1da9ccda979a0a61fb072159b273589ac4a2fea90febf2df411ca27f285323e9ce667756cc5434797e76c73f48498f209ec3d21b2c5a83879407ce61690d1645c2d2b6e3588ac3ba72f050099a398c470a8b3a6dbba077f869ea4c89681a3e1c7bd1605dfe19894f34656017cee6516f664cfb52d1fba26197105be2585e3717eacb86d78b01e3c9c4c2d880f16442511c10144153a62596401c9c15a8193776bc5d78635743571edddcb45a2d1b33c844cd0842aa5180206835674d82a4dbbe4ac9f9e5507198da828b1aba4f400dcd8c0c2b06a624c04a8597145cc4603d2d589cf0924029046d3276f9b569caee608df11b041f46db5261e28e6d1facc1fe642997274f010e6dfba00c16967fe0cdfa806f1fdce158cddb07753836f3f6412390089803713846f3f64122d0a6df3ec8c3612f6f1fac591f9af551f1f6411ff6277f07c01fdb0a016752dca2d89ecc9aa899c9b69f93d8186883b02eb79f8dd81868845d30108945fdf30f1606ee1ce5599f95b79f75d647f5f6b391f571798b6ea120a28ab3eddfd81f53eff2dcccfa98b7ff2dcfa6bc55a18a9752899cc23604e7a3c70d3d26b7b2b64910832a34f9088a2b2b648dcb6e318b6a1e346134bb03eb01b3c16ab021479dca6fad396133ec12aa791da28c0636c3f687c96079bc345f472afba791424a9429b6e3cca7a97942ab3bbaedd808bbeecf609cdb3bbad50d9aa5658b66d17f49d3984234af43940909e97899cdeb4865e79be811ca4395b4a0482e1baccb55c3ae9bbb7ef0a06fca2edc4e91ebdb2a2aa6515816fea7994eb12f7fd34ca3d81e7f540dbb68ce74b5af28b45a434bf91e3d4295a0bc16f4888622e1588f0f970d36570dc77a6a70fd1872dd1cd623030f4562419190502414094572e1768adc9f348a2945b6af605cca17e25858585a5a5cb0c962d3b351c2c6d72a6add5ab9560f2d237467a3844dcfc6d72a6add5a3db47236be9611ba43772d2d2d2e2eaad56ab55aad5630e56a2cad58abd56ab55aad6056e56ab51a57a5156defd58ac5cae4cd053503fc9b1bf48d01b38a1c57768b5924f3a25934f3bac4328544598e52952a55644136e082de2c8f7a595fa4bc4c49f95853582bcd8f668a2f6b6854ae9e315329365d1d8da27b7e5256dfcb7a7f7aa2bc4c81f222c5613d4fa07859b7e76e291f6b0acd1438e56b49f9c4942f95f2a57c291f14661ac5f250d154f699ae048842ab3a54a95033f4abc014320d159a5faac5dcc07d17c4bd0117f416ffe5b3d90171832db3961c16f56fa1b518d1a26be1b52829576309b7b420bd40b93c5e43335350523e9a1fcdafc797034acbcc613d4f56cc9e9cad8586633d435a8cc0b5e870acc7478b921e2d3c87f5dcd0dbfee5a9f26cb585b63a5574ab2db4f1547fab2db4520bcd480bed87165ad982b4d7f437137a81727f5e248861bf40d9fe5715226df58513cd140abb13e566ab0dd1662995f4e7a81447fd4c57bb438029a7cd613826aa35b38d1b55902f42582ad0c4f6829af1f22fa814f20e1f9ba82d9a45ff35349a1fed37e0828b0a93c56777d4948fb7d557ee85c3f2f8d7982fdc0dbb6c2f1eaf1a8bf9127acdec8ebf36532a66fa33532939b63fcdeffea451a038697ee94a80295a4df9587e0ecb8f6debae6d551c5fc82d9a4532679602ce784270e06c08c85b9131b56ddf1f57e46ac5ec31b23b38bbe33d3fd8dceed9c1f6f8b044db27a409137096a496ae322c33fd61977fcc8bf61ab23b2f13589e170d4370a13144abe297a8192618d40cfb234b8aa3acb5f543c790d804f7b7984533cf325348d8e5af673ec6cc52ee8fc9c9e5c93f87997c790a0b3335a16629a635081b3b09b12e231c3be14e468e22b1b0131016f5577954f44b0dce52491e8b797f53effea49604414441b71bbf1b548266423447fd694cdacb4c3268880d1ae2a175ba218f99ef47dc457398e9e8b2f0b180c2620daa05e9ac8f082b92e4c40914163e97c2c207339a19673317523c36f3fe2ed619f3646ad318867f738396316bcc20a3202241b9205ad050108f209ba3413d80d8887a33367636788efa9224d319542b32c1dfe9878ac74cd37c01c19ff827894d4c63dad06197db38d2c112f1b4b1aba25510c904752be80373fbda90d8f4b34562f35a1bd25a1f196c8632336649f3fb5a16509c852f090de6b6e943120705cd22f3674e176816cd7c16b18b8666063485332ca0cca066b0f0c9a066fcfc8ea061eacf6f87a0dac249b74d1f82a6700700366610045899cd83669150eb6f5898c1a22cd0fce7f7f3d32c7c2cd4b0cb6b41b8a0dc8c69c3086b03099cc1d781ca82c83c0b351c63e1e62e246ce8c0faac72607d4a1b486ce0c0c611d6c7c5faa8dedf8611d687e5fd6d14617d6288b03eac23d647c68610d607fb80e1929957ad0e78b0fd6df01cc6ccfb8f372678dbd6f6a8316ed8fe2cdc62106d8f816342b4fdb3aa86edef8282eddfb263fbabe0b1fd5f52b0fd4b156cff950ddb1fc6b66f4c1cc304314e10838618b57d63ba2c3463c8009a314a106386184337e695c198d6ee94e6afcc7f5161be8a8585e52c32cf1833317288a1c3f68f7183d53733668c1a76c96ecc928cc68c41dbfa8c4173b1e25890114ea27311740bb205f1b8e1bb01e5c67a43ca0d16664842c402cd61413eec0fc76e504932a49308fdfc66c8029440ab3172a091f7dc3f4130066d3b6816b53e9b270b37dacb667c5b0d402d0033330034ec82f18b315b71ccc50aa3c684e183e104460f869109a3080c1d8c233960c088625187710423890663090db7d517b5fdf37b3173d45f080dedb6bf0a1450e984b12bc00e16be928d231b43582628d846ec0f0b351b3aeb03be3f0b3716883c3673fe5071170ae8674583fef96d7f1b3a1b476cec1c667ad4fbffac3f473c16c4c35dfe49494e9c408122450a15d5c5cadbaad5816e0542a9b8c5dc5620a855dc70369168df276f3d6a37e050e341cd283d0f2a85bc4d298c67508d9a56b54d073a15aad02c99406d03675b0559f8c05a8f7d5fb4f1d8f759b85db0861ddb32b9bd42309f10b208cd2c8e27f434bf26e317152dfcda144a26c524c7721684c86524c8c0c48c27568a05e5d28223f58aed55e54a34f59c353c44d3143bac429ee06e3d49687aadd56a322c6691cc8326cc06c4519ca337ec1aa2c166b09a0c0b86c3f687dd50a2791da96ce65930196042301c33d0ccb064ced78cb71d86b796e5b394ca47b15e87287b1a3409eda14a88a8cf55e4bab972ae1e5ee541df65e47bcd5e24b02c6278e1b03d3037d6f99aad336812aa04da13d124d4e72a72f5e0caa57c289fc987fa501fea7319952b948dcfa6099bb525a4856b19b58050a12ae196cea6091b9fcdda12d2c2b5806819a9b05955366bc966c536abcd6ab3b674b41f6ab55aad56abd58b0a5569b55aad56abd5ea65a562a55a9556abd50a45fbad542c6651cc8b6611cca34ae5e9512f54706a655561fd6a6635395ee5417f157acd603498106c667760b01cdb1feb72a99555a526074b6a1553eb985a53a935b5a6d61c428ebe66a89a19ea572354334bb1b8b4d05a5a6a2d48b4ec5a905a7ea04255c22cb9a5574b49596b6635b39edf0c54680eeb91c2a2668fceeee06a38d6630409a31d8ef50cf901102487f5ec5053d54ab5961a4b2dd7740bedf6e4ec8ea7d6f5b71abd72d81d1c39dcad87ad3644137acd68bfda8fc56566a65633d3b4199365fdadba1a2c8f510ebb70448ede6a3417f325b463fbd7cceecf0bc72b47cdec355b5b66bfb514cda298b3e75784849518d2ecd9d91da39823743f0cb12891fd8bf2e4569bad72e4ca1467b3594e56ae90b65a53b369f5f59a3d128e9dc0c348dfdbae1a616050334c31547e3f168b5904f3a599eaa1607eb582b242c1f2f321a71b624c9d50f99e764e3cb65a99353c6a6a351c63fd7e302e2d262850b6bf367b6e2ba6dfc987d31027dd68fa31417b4e3da89efc9aedc8b32717537bcd6a2b8f5b7b11a263489366af58e66bf61ab2ad7e753a5fb4d7ac34b5496363d656abd5ea6b7eeb5a53818d478bb7d6cc6a6635b3dfef552ad68ff50b7f6b4b0b0b0b8b5e79d4d6d7ac565b5fb397d08bf61a5a69327ec9a9f0050c8db6a5da1d884fb67d93cffac4bcb53dd0667d4a371c33ff6d0863b4bbc1c25801e6b02da8c3e6510388438a284f9af4ac4faa078b2631b13030e72810165d02038d1c3542a78487647d58f40a887432e16c96cb78d32251329f4f63a9849a31eaa44431e26b92e488bb428388cccc3e83924e240f8d1e0d2556bc8e5456f33330a7134cccf861adc60305807c45243c1e6f4523f1a954ac987919bd9a78f95e50bcd65795d7ef04da093358d45fd465cb09b51aba1a4358d43f28c9817afabe8c5a5e462e2f23f565f43262bd8c5e4dbc7c2f285eebabcaeb77c20c27d04ea86dff53cccd2e125ad1d2318129270acba275824838a663f4cbad38249ddb8b6c050bb42a9625894d9b9f7ef40606063563c4a6b949b3a8e64ba90ff5d92ca2a1b21a222cd1040997c46407de0fb1d166443e7adc5093c1ba84368e9cb3cab0f8ad31357689e4c92c5a41c35703871ab61a3f6adc6a08a981ab61544314b52e9f860f070bbb3185b539ecc6cf7f585810127b136263413158178e05cdb0ab86510d20768f433bd2a913d89766dfd8e13cf9dd2ebdd99d1b53dcf805c5b002a441a4478fa09bc754352b935c0dc5d8ccdc908f43a22e129b2d6f0a9de8eb486538ff38349c19706a3843e0e87090e0ec707a80c3c3e9e12861517f513ce1f8d22139bb6343713e34737e8ed6ce57d8cbe1cce00487e6b0b4094e0dc7d2214838359c1a4e0da78653a3e10c010447e7b074071c2444383b87a53e707a60c3e1e1585a038e1243383d87a532681ca3b0b479a3d4858b74b94c30c12527e7bc9d3f4edcf98313e954e2ec9d4f9cbef3774ea16265336b79d5f9e3bc9db813874fdcea54b58a1377fee0443a95387be713a7ef9ce2fcd9ccb6bfaac5059b409a60424e0e6ac6e95b6e693534ce18cd0031a39b8162669d9962e6471303cd8ca646b3c3a2fe228bc6268aa2d665f98fda2371c754b177e3c855afe2fdc68eb73b8d3340cc18cdf870b63aa39bd1cde85e6674ab73463703c5cc3a33c5cc8f26069a19cd0e9a1a8d6dfbab50dd22f3ae386f5e472a6bfd8abfb1dbd5d0fda644f1b99c6ada8449eabc69b5c033270735637c1735e8b45e073523e67574486caec4bc50905baa684039bd4501d1f0397a0424be518a9fdd5142958df3984999441be56e457e203204e7639603454e14cbe37fca91e228cc1dc3ac43ae70d0e4f3a0668c7fef494794797056943c2f9594483033c0d06076c0d4607480b1c1e06078b0a8bf286a989cce488c5414455cce0a33c77c9aa3438ed66c33310f530a4af2a05e50d2b8eaa46c9ec3d228162d91702c35625dbeb24a898484846494b3c1cc500486e6b0f407981d44606a0e4b87c0e88083b1e158ea0386871e303887a5373c4c6e93c0f2ac39bf99102d2686f456ea7258ea70ace5aefb3abaed3be40a07adda23dd89e3d253ed50d55438a86caa22d54d9553f560517f51d42aa3dd2f8af82f6e9d1c8e992385edc1ddb0cb865d3a3c746a3a349d59ce89da2b72aa6ccf896273a484e099830455bb1cb1a64f5c7a699398d3a577baf4543b5435150e2a9baa487553e5543d84a20bcf8577b3bb5417def61100e43e9945ff2b4c2127d227b667089211203b10f9b029b91ad7323f08e74978c615355b05672bd41c1968eb684aa6a819e32bcc27f004d38de9a2a3bdac95424afd2015a422a8448c15393d6d15c90800001000b31500002010080684e2118120487a2c7914000d7090507050a40904621404316690310610430800001001181999310f62e8ecaeb3810e3a60ca8ec0a446d4ea3b20bb3305bd0eb0581d13cc63266a3159b36c669f99cf9c75e3998c432019448730e5f1210bc8272f3db3b57a26533eddd4e3697b7c247c6048a44a428e0b40c6b10f904fbcfcf6e3d3db5a0117f5e30c6e479fc89de9b84c1121268e5b1dcf226f2ef900e56104c6cc7ae71bdc47c19d3151f3265bba4b467cc66452ce8cf58f83ede8073850a8f75e4395d041796b9e4275758cf772fd5f82e6c7f97b0d58a2626b8c5f56e9baf19dd746fc348548231a5d6bea531b6fb305d4ca5e98039432925d414051cfd9b35d87b0c1be96ba74b2b358c015d6e3e3ffeb4b11c00d61c45d52b6f69b3a92f09fbe78e5718552d579895523732826e838943bc2eb88371719850778ad0c444d13a135142f4fb4eb368d2865803413c0178ae534d4b54ad936537c8c710d88398685b8c18ee6b2911c542137ce1b4b5cc88d86c82d4dde62b867d262d921e65802faf67a942837106d59119ce779d9d34f92dfc67ea57fc8357e64f36ba7ead6d363d3fee9312305d81b46c9f486b5eacfccc4dde051ef1d68c761e4b45e08e7dc4b5a8ce09bd3c50a601fa1ea7359023fa070e5cfa427939f494af16eae6ff27af5a06ff4dd24358f5877a642c3d266dd3bc0e922c7d7871d0b11cdac6670b66a8e2c7c20e52314b3333128e9e558dcaa6cbfe4607d8487303692cb2e599811d9b491be1b45b2e8f0291dc426e9640031dc6cfff090308b4deb1e9b7232d9b8a0dbe7e945f13fc26023ae778ae261417153fe80b71c463d27c9b0691ef1fe7161a38c52262e1172694c72056c568afced767fdfa1413b68599b19ce515294726606a0f5daeea569b5df6a4020bd03db36b3a51646e67530f08b074eed5187f7527e4788536a3a3886cfd41ec57778e1f4159ee23d1629855193802300dfaa90144b63767760d96cbb73655749398906062ea93b34f0ccec24a388503a784134e97b825c70ee99157762b2e5ed01193973959e450ee013541ff0277cd26104809bd9659b4e2b3e1cea5fe8cc14ed432ed34d56d2f951898e800ffa9b86e65c08813a759a16aa1d29b37bd93037b881ebed14881a5e26c816db19a705bcfa97792acc1b7373e36efa5a91ae9a395e409fb0220f99bbc3e117421c89d911b772f2098e33807fbb41893edca650443c6e3d15b571066f609f6994eb13bc286df5e8640e1d35a0d2aab6cbac8de7b77c6b7f114ea8ba7ca3c3b82ab6eaa1f4d63c24e49e5da3e7dea4f9c80c03360f48fe2c3d7036ce78253aec429ba2230489e04fa0527227516fcad51eb2dd075ee0b86b25bb7a2cbd32b1308c20fb78158330b38c24f77fd87606a029d42593272db9a3c3469d20a0e58a4ba71cdf4e5a6e6e7cca71a09d2b2ddfd95cd7c953e0dd4c2bce06c68b7884b22929350d6436d51a171e9b2ec1b80e37ac4adadf76e8ee59f75879db04132dbb8906f14d621c7bb92122bf34b7dd5ee84284742d8cf46b8a452e59925f2af820129d2eccee9ce0cc7f386745a401c794782d8d7bf7868f5559e3d922ef40457a5953be7585ae4d540e8eee8e260684e12cfdae9d35918d6bb42d5a3311fc9e2eac420bdd5167cdfae0fc760d97e24dbdb6adba5cda3c1c70f882ae5aadef48cf355761d07e9260c77cee486634392c17a37709852f670ae931263a9bc65d691bc8dc5eb9927881d56c190200c9c84aa4187cb871ea66b050ee3c205587ebf9f59d2983151bbe960e40f0be7fa04f2b6e70733b506d386975a077cc9e02797936714c82e23d505059266f1ad586f9c753cb08319553713177373169a3babbe4309c62f2c197d8815124302272e11426c906b152b7e64c283112b9db529ab35ebdd2c77317e206d0a985a2c61c169940dcd0cbb4910e942c325b2ed4e729ec1d87103541c48e9c769f41f29ecd19213edac66e8846985092de987177a6ca9c7645ff2becea4dc43266d48c68a32e5ac5bcd5ad71e32af43091d2cd4f569a153ab5d606820a19e619781339c4c8e58fb4a59be8fc8b9dd20d3e1c3756ba8930c6892c0cf60172739b60206be27bc40334d0afd6552f3201b61e48d0f7658b000ed89bc9ec7c8524353678a2346c9292b0809eb1c26c9071f0d50dbe3e0d010f899782d77443831ead01281246303dc7e74bc3211504fdbdbcafff84c279c4f3b58dae0354068860d8405a4c6a949407a3cf9c0c448a35c1c8a217f40114a07b1f1b508197f95f0191aff7d5705c9d6c02c971f0b681af373f3df873742fc37ffc615ff7ebdbce76981e28397363b0663c0e540d0a905954e171400272806f5efd841999725637000381add2b3a8ac3b0d974ce44c12f154e0ab94b50e09fa0c187a4faa72f92f55ac6135db583e395fd2bf71a09293b97941b9303bb55890b753b7d82cbf03094c8a06bd8561d4ff9a8f74ef0ebdace1c405eb1660813bb88a8e897d3744bc973c62f3823d588262b95010d9dc31e4861385e88de1081e5768e8beb7944cd0807344338f12417f6efd0571fecc8140e600f461a6d38f17d88de98885cc49a8e807f42ba44adf2fd8e20a534a426c0fb017a46fdea4f651a9763b54cea184180c6a82fe21e6e19cf5128e728e5c6887121609d009c7940f0eb237171987b99c53a739e994731aa79b9372ceb710a180d26e39ffca39c809328428e7e83d52689000519c3727af17398c38dc1f192e8e86a0f7a8181d4d3b2c63a6bfd6ad3d32757174df4ea157ab9f6cd96374d801193fac98ad5bbf321e5fd88465628b0fe7ce189db8cc4be85cfe200ebd34c47a79c425b48be41f763b15ced75ff5daa832d2a40e59f6d86368e3667566d60054226d10333fed649b49ed86674c6796a48e9ce1fa169464c47432bf08387d1ff892d489deb5b574fd5befa40e73d0dd6b1a75df029640695bb502b55b90c9a8aa0292439026787f3a21747bc88602a88cc6dc47d240b1f51c9e17b0e36ad9310b5f107fb181366007cc6f054f15766f00f4b5846e27c3d5c9bc108d2cfe5f5276b684228da1bd6c6d437690dc7269f6d2bdc44c5b43f1ae1dbf528ca5e2f32e89f2d1086c5ac120d7dfd564c6178c5e4d8c37727f3cf527ab4fc58ebf949d4378563b8bd260695cc5236a2c76bd38fcf918b37a4fbe412baf562fcc48453190133c2929025b482482e9b377ac82ccd1d97c346263d44a92d3113d355346984a00a419414bce92d301ecf8189488148203cad4959874a377075c65902d3c721a5fd9d15b064abb9dc19f54925f55b0dd5ff2d8ab7986a6c27e4645e2f2096f366be092780c0cf21ccdc4092e462535e3acf32fe579b10d58679d31a5b3193bca1f14add257921a3fea59c7ab861fb82747c03c86790e30e9e91ef19e299e75720dcfe03ea4af0d2a1a99b961efee5e52e9dcfc135ee384a21dd31fd44190d6ff32f7cc9e723d91909d917859be8ad07a75413856c7ae213f3b8976fa3397ffff2e0fd6edeff9f6915754d10e1fd37e5210f74626790199c7ca7629177c1903a33a04984559623d5723abaf60139daa404b324a042d4d853671004f16ed485ab5637d047c2245a2d126ed96216f9469a8efd5f7370e5d2f1eade7dd79447041a1e635d8d668c5ea2c05afad78bb61eac937379c316a86d449117ee8f64655769f27442f8ee2e55c6129bcde951d7ed93308e386f26e9e2490178561ac0e0870dbd7cc23f302d7054b5cbb64de366755b5ce17512baf9e270749d15d8eab13e6db48754a58328c411d6f185b14b3833a1aa74a2f6aef35892c68175caf905ad7977f77f44bd003e373603192fdd5c1425b14583097cf2d4a43de04dff67e129a74b292b22890128b580dad864d14e2b25863d5251eb48e423ce5efa3727e22e62eedfbac14123fea6b46d15ac5bded2dd12ef0db628d0e4688ac12053aba0d3a636cd623ae4e4c14934b5729e1a16a36dcd40dc2551aead2de89c33a36e86c0ff5707618213158d06dd963b5ddb7552f101a704c07dc34a0c6300d0b822256c17b2b0615582b28203bebcf0aa8febd224d57f5fc0921d0a2d504a39281f0333d222142c435b5901eb4946bd5c2e20dfd26ef1cf8e24fc75cc286a957f6fea12c59dce706c293984453b491df8fa83ea66ea71b5183e6ff73e503f43f2213446a6084504889d2de8c93aaacbf918df3d076d92296a0459f8577bf6c3a499dc65f4c1ef1e50306162bb200138c5096d8ce8945bc5bb13398586aac19293f28dcc11e07ed815d6098ec307cd2d75e0d64990cc80d373175c39e648e422ab8e6778a0758eeeac3aa30da04246e4129eb831eab0fc5786a892d828f46ce049a137fe0e67ac17fc4f984ed7f3498a2d73cf9d88046771e346fa8d621f9af55706a21424d1f77eb1014467fe5a916b9a13062c47696f48ae9a5834c28c0c138c2777f9b2f3b7e655aef486d4bae6109d0fe79032f61fe8315b638e50f85008270a51ca76249e4c1c45c9c867762c776d0e88339228211fc577b48cf7a7c0331c9a523e7d59d47882482cf734cee4449c7592cd5f3356cc913c59f8467d43cc20eccc88becdbd9e5ca555e2e01d96a49a53904991dd896f634a7c866951ba8fb93dd441d97f8c3264cd1e5cd5fb2e6465fef16ebb99a4c66a9d2ab881821326521a42d415764d45389e9d21b7eea5c7c04677232ee03fbd21e30554b4dfbe3af2ea0712d06df424a06eb52d5df5d542f372de09f1c62d5c5f65ea8ea44c8a8c9fb9a1f3407a5163834144a413059e619461aa4d33f0b026cf5d4dd2d4c13d5c15805fa5a53257fc00b4edd07f6eca9842fc0b662c24336e90754210893a773811dad810a22116c272907ba9743798296c11b189cc0ac29ee8baa39e6eb80fda46faa4c1dffbfdc3280e86581af1024020b85dc6208fdcc4616572ae36b1900684afcb4601ff6261a928876695160b536c8954d3eb29ae52d9f5a05063c416888e7dba12bd254bdae5dd1f7587fe4dc1305e6b9a471f9b8767496b2b7565cbc18f8d9722247d7c6ef260db56293baf08021724b0052c2a1ee188f9e0337ab2c784cdc6983f8fd875bac94e1696239eb149d0213b818b935bcc2543d537e854f28ad9b38b6f570f2af180b36430465e273c854038b7e0e2ea6d9aac66b20ca6fc12d35627ad3f44680f8b68dc95c04b921acaa666c7ab683152990748dfc59207bfec25e065a16ca7ed21b81561eb315bbcde53b135c7fe038a27344d50c88c17b288c71b0fc97f6ba2ba2d63a46f9105ea1be67873b7ad73f84d7f16457c265444baa7381c86829583aa789c330ba6dddd02d96bdc47a955fa1dbe4f35336422ad5860ed9fe2c559ed96b24155b4af31851d4a82b6f20d567d47e488b2b9f560343823330a0b4180443aa4b432801a91c5aa9873a5047802a8a68df8157adf9d631f3bb434988d26851ae431cbd5c28c51428d3b3287120e0065866cdce43fb8888fc7c91b4ca70eafc04d4e952fbe380e85b4ac08a2568b96d221679e2c82e00d9b8917832c7417d324707c01ba141b90ffe17e81709e8e41523174f3a4cff581213624d8fcdb9a38b49b4d404b6188001a114d50c3ebce0f2e895de643c6d78561353ded85450ab3723d9943e2201cf7b0810104b75a6ce92525e7d3031545209c3bd67b750dc0f03477014b928927aef11552c66eefc315b351ac252684c0608d5c67b0fb1dbdfc43173c34d994e859c46a6983ac7835102ea34b6d946a46d1a9d4b71c903c44071dc7f870934d0c10efc92de4db8efa9d951f125c56dfeb485018e7546538b7c1d81a78e852ad0a5c4168405eda42a12d315ad78e1f20bd8e5fbbcac9025016293112b454f237e3f4d8c0d6278040a619cbe959033c152c62995581a953ba7e13e00e1bad659cc6be72044e783044483ad2d61e84fbe34cf39e0a488c7706c8a1ad85cefd4f502777dc1ebf79a85899b24be2541b7440b1c61f8418193289b25d90b29a2e8d442bed377cd56c876ee9cf5197c2e76ed9bb9db22104b2435c12bca73dda3631df8d8a31fac6525db3ee1fcaf94443d25526309c79b1d729885bbc19c43f359e1be2953d3083f2d74a3b7a81074de3479f1c1e931694cea3138f7eb59a85ef5e5805517419ee8362eba8c8e6db9c03f1c24dee168646669994ae925dc26eae7d95b062053d62b09414d9f41652e0bd514da0f9215823267d40717b2f43a7f21a06078c27aa9106e89851862f7f9f09fc6f6f2e0db6a9c04f4b70257a5a97f45d94aa3fe865e20e83227546e7e3d465e0ae91a9d339cd5fac42aa8effeb8cb08b8863e216abbc6ec373abe1a1948d566e03f46b19bdbf64029cfe3b6a8eccc4b42bb7c183ad0f196fc36239e0409fcd4bd266113bb8b4c9b00c65696a1b044ddc000d45f52fd507ac8e4550a872ff37076b6fd48e94226a6aa4a3540fbd5f221c943940d8131e6af7119924409f44bec96a88cc9cd28eae12a5fb0c6e08c14b7dc2d343dd1393d2d07b01c3ae74ab732be3ee2a4c48a5d8236ba924c32e25b232e133cdc038bf4b5a9019aaf1322f48304b5694645f6cfb2b25d644221eb3e0bf44e6b230d2f61dd5c89300076a0aba69d0006b2be02946352c332452a1fbb00f20f06956ae644d8293f0d76ae7303714b5ed55ce138b8792c10f0c95887724448a5a860e5fd791a277220abdbd3bb6c5e8a76d922491a1c4ef3dc51330d0a8c11bc175f76382d2be0e2f8bfe109a94492dac865f3a859bc09619672c69644ba2ca823974fc0a10d832b793dfddfc447ed38ad485179aee42488afb7d668b571f13a453ef4496e3b96e2d345a804846b321a22d93a8c972610ed866a85553e94ce7ce3b1e5b14160606230a3c29806527e26883f1873ba9eeb78f499540dd39add27a721c254732a5de34d96602c143435996dcc78e973026083046d21b9fef5ff1627b2c3d4c5e1c3e248f27463346389b794e5efcece7d6a19088d9e900e145370ad2c390c158cf4ec099205e9c8c6b2a7f5baf73b3c9ed015917b23e1956a2ef701b2fb5c318bf81a0e1c13cf729894cea28266872c7c860c458724f5bede16a3465659cae712080547e7b10537337a289fb613c55eef9ff6a3c694a6cf7d3ba1bb5d76efb4e501d2b3d4ccc01493109fc332083a35a55a2d5f876452d3df70a5e19b1abab827f8613b360fb61a40a72a453b967e0e6ef553bcfce9754a73dd6a34a96883e4fed5ccae43450fca44a1344fb562fca69efcd733a62c3582133ca525e467dd4f0097c84806a15019738db7c70c8a40d68237427200031b40decab1d18d0e004594965ebd39ed80d51680a62484a67df27544b51e33aa3ae8bae9c33b8839369bfa5c3081a2ea560cd649baae3be5815a87ced2bf8f3c9fae2b4df67bde6abdd624e9c5cba5b740d6984de36eab6aec60c81a990c7a0d18c28ae626484ff1c64635ce60eaa4a2d4d60d719000dd364f5258e6c70f201097f91610f76dd9548795c98f9ca4b34b267a81ba8bec3888cd3c7025dfbbfecce51a3b13bb71c76bd2f45b55dd0886d6c8c9a02f41112c081e49f214333605b30c63372b4f81ebbe4cf3c1fc591a1adda1e100d72b059779f90f08e53713174a260943678823f3347980e4b9f95f891ab25e26327141bb94ecf6ab6c2e72bb96b29966ca59ef63d81e779b41b8c6655e741bf5dcf04ae1c864c82744102d642f5b628a33d8e4089a198320a2b33ec09d71836a3ca430998f1f80002ee62d90d56dcb64db01edd60c2d871d168ce84d88e18e119159a97e9c1c7884c70b9f08b0528ff05f993d4470381206b34164dfb0e3c2160022130f5c44350394afae6b770f70eaebbf9088d8b7bca5200bb87a637688eb060fd8483fddfae969844a5d0c78b0744023063bcf57e59364414a28764220791c9f8f58d6c4095c7ca9a54da1a68c34a21de7248ef6f5af0f20707fdf58127bc95ef5dc0ff17aa8cd02d538af8ce44b4d5608278c73246fa3e495792987ae454e033b8ef2a31d43793890efeb1859d4316d3a199dc189a66ae6ad19fb3e128a62ef1b90c418d3a61bb95e0d2b7f0813608e358e08ce90f5174554e88892ec98d8e4a1b7b949db064e60e005260f14ca6532d2e5d602755db451b31c9d738bdde8b22f9eac044ee2b0b019a1c913072b0dee1cbdc74cbdc8c311bf1895e931ab2e0f41fe5210a6a627caab96253a63fc696121fc08e97988311eee7223d22dd0d01772a3f887e1a428d203a4d8624d854f1e85b45b2e0dfba28aad85a5a0363385365620393e6a851f94d68c7c44f87d5b6c45487c99c90c0cf9d34b1c154fe44f3ba866183a2f300532e7b72daa439019333b02b8e6f17f6985d3c848b4da30541279591f6fabaceba63eb5d4c0bd4a0b43fb847ae83f15a5aec493bdeee60e83624dd3609f691d0b3a609b53c434fb91040b2281afc8b3126e45ca0d56f5abd8da8258591fdcace3098c27f0eb76d960aa09789c3d1cff759a6805881cfb5a1147a8c1e226a09a633f60aed69785d39f7514814549c822a34fb6554e7183248123aafba59a57508d0322fe9f09446753b6a053034bbd62a2c8091ed300eea744ccfe180cd2d95436358be48e3612c6f1d3a9ac729607d34e883f0e22e56227f30dbebbff4399cc8bbd61cb6478742f1f23e0bdd03ef4009376da00548f70b7df789d5f5de7812c16c4902a33a2d7397ddca88a3e5e04b13294a7ae531e9315815a3c43795f926e99c15b5d3e74687783065446e553d5a580b1e9803ba75fb4ebaec2f6fdde80bbefd6b7f377cd285bab98d62513baead271aaf68dd80d970f158423127080d5c26f71a11b3a3bd579f2225b64b183b262c4d6c3e568c81cc8cc38b17155a6ab321265c8b47cf26ec51fcba66464bc135794f56e35835b85009d4881919575d9e6df2426f54f91178a86e37e25e603345f539871641b26fc2dafa58914f7172072bae6a3c3c7f63d91a2d373db4a2afbdbd91f0984b9156ede05512ea582995e297ace32f0461571489199536e293468ad7d89e33fcb690dca8f7baca78f2039d98a2a90db6ba9474ffd68408295bf76b6777785848a9d0e3d1e8bf664e6942c4199ac9015279b46426c015477329acaf6f3e8d20e3057a8000b64e61f7125f81314d74bc09394dc9009e497ebf554707699603d33472d019837117aaafde9f4b769d092d93189ea43bd4d991afeb6f99cc75d242e024b0ec390762a9c9a9034ed75f7c4b5b331fa9fb76aee451d5b1cfa9ce2f80c242d1468aa84f85d98b9a82eb35c43dacb1720aaaf295e9713b6df28e194aa1586e5d023bcc09bfd24fe30f662fc6c522f8a15057a5d486bc14feb173fa9515abdab3b4877dca3442dca54e55e3b83fad95a741d98813924c27cd45e6b6eb6e193e832712b41af5eb1895cff8a62335aed37a9bb4a7066bc8ac70932389161ecae626f4ba12ec8401417ca9253b84285577ba1fe2b8e2cfca5de7c62f7b319e214ebb5ae651c3fd5f5655d030edef0f2b18d7b7deb4f233ef8168f717e1255d1d4fd930adc421ebc1a81bb37710a3f7319db34a5f0f52d3b39b2919a9553001e94eb3d2c7719d873dbce04285507b4f085aa35ee8169f242e3459cbbe1eab73e5340f970206c02086e9abe6a909d7c0025cd87838256b24cf282d0984ec729bcbe77646d645cd5670a33351ac1bc743a81a6dcd976496a94150de979016c4975b372a645931058c522e49371ef5705d60a66d60663950af54163b1f4aa9047a22ddc38fc55b7ea005dc9e8c1532d07cca3b76c63426c4042c9a746a8c95a55ebe26ca7a28ab2a3e94400442f0f137a316c0e428c7af9113c29d4b04239abfd65b4b4025da4125f6cb982aabd3a43964ddd4f96885d3380bec0c0bc8dbd61e6f14101893c29581eb4e2ad2916d55b612efb45fadf6844a910c9d93f728bde5a42c28b4a1ff543ce165fa3383a2a91f79fee7e5cd67fde5680963e8763dd1abf13b212a9ea2f3d5bacde429d483b921224d6064274ca07238cf8215d96ea775ce35ad2bdc31ecdb355a2ab40c57378284e4fe83735c47f6ea2ead3d431c3132b8ac3a6b68a5990e0e247073e90012124b35964f9822e4e5bcbfb37441581c3f6e661d0d341fdee5d1cbaff81a18846d68d3140d29edd327c0ba11b4288c11609092510d1cd8925387aa6484124ad51462c5daa974f0750adb83a2bfbba9cc0d3a7fc5ff703c65ec0f401660f60f73fe6fbf7df9be8f9a5df07d2ff63ff7b1e14090164336b9d3a41dde1c925c099999b31301a9f900067a4557a87f45698ed31e25f525dd6978106addf67acc4116e9bab256636aa831d2285a5f7c66554491e6e0cb4aa91b3fb6d6bb95b10604129cd85d5639b3336f7419365900e505b3a22879145065c5553b20b4b90f0a69db594099ecebbc5c90df698cbedde6a44a77a969dbc2bda86aa991288e11fe550613d97e81ee431a28089919e6bc73a526e13c1d4640209365415d07bafa2e421d01d059d4e074d781a39839ae10ff0e357ab5870d02dc510473d569e30a206971f2762519b780ce52c29c3050cace5a444937a1ddfa3b46c91220183df97ea5b480579e88750f4ec9b5a1b3e266054ca85199b30338eba14eb521e36462303fdddb9e0fbdc67706f31ba05add70fb7d24891f5ef70006e8621fee0c71f19502255da5923f9b1d3b5b049a9ee7421cbf489963c0654831f7611b9065b7b5fe51c56fa47132bea996f435bff5fce1b416e51baa1dfe95222f7607237f8e3808067d17a2c9ea71f3da18e1bbff0de1f2e12cb06c27aff9b2ae75a9b30576d004df08c1746b0c333e4a61a077e6401629e8ab111d516efff0282fa6415890644cf8f27ea5fbcad20daf47763b809911df22abcc21da849104701dc0890b8df27ced5c110c0b9ac1fe71dd3e4bf6609153a307639847709eb379cc05944decd1c86ee9e6ad53b121e2fac136206cfeae6801ac09943a36b080f148ddfc8815cc66bdc8d69aa165ef575f28a7db9edb8aad62516b7bee035af22d9d78015914afacea95090484c0d412e8c3f917b7b92877f45bba038455af5b7dc3b7c27845ea2defadda9e14937da91f0c6e641a3f1ed54fe037ea6e93c933bfa8bafc4ff7c957bbc52747fab1ebb6c87c65749f9b582a91d527c6784d9155d006bccd7bed0d73992fde2ecde581b6484d3b5c29b1f6e1e6965c12b19bfba914e47884ac7e5d25e2c80369a9002ab4e61ffdc8b43077382ae19e1303548a93e64ae241d50c5718f30b729205e95a7a26a75d5c671082412e955f4885e4485eaf86f8c7a4517a793fb7af31a1324467fcebfb9a6dba41f196b855c10e8bdc3ef81c8d54fc3504e3e614c2d5060efb8224e0e356d6d3079c8c1ed4d0fbbca23926184e6a18aa206d510dcf1ea93264ccf47a34710dc8baadaeb4644e33725621b7916a46164129223a80ee49179d0a95030f370793cf1b16b542b6194a743f13070034f808deaa310d545a271dfe905d7a511bdab2b93d206642a1fd48dfdde526f0ffda8562edbc84deb5231ea1b7baf33eb39088c9ad79dbb048a87acfb2fba569471f2ff822d26739cd03745c0c42e1a4dbe98d3d2804577ec41c17133501e035f4ef9e30ff4469644f5c167d1e3ffee685fc5c6f7f1e73803c16a7d869ffaca8636941dc086fd91d0b4ee68fc350f33857edcbb683f415981318f59ee387369c64c768edf457837cb07776feb8041e6364cc882b20dd74b0588b5c54bd4a372342c54b657f54133b8d4b6c80938819d09c07ce82ded9a2bfded66d4d5a08463d940f3e54d8e15545c1312a8e8427677f8a3066bdefbf24991f1348a4e016bb0ec4954aa67ad21cf7d269f19aa272ed8be27fcb159cd5102ece99c83d3ff3532f0b584903dae06db1dee7ee79f6bf1907cfec4466a5aa8d2564038ef6ab806f4296a187e40d0cf75bd527afe0ed15fdb238438072f4825145fe555536bb4a7304abf810b5b0f75b0d88902bf6eb255be795a960e06f041b0d531f7bc1e600311d4124c11dd00614316a36e0c754b76521fb1157edf4004586176d39e31ee0587952d9691919f3f7ca2e844ee4b8f3f25bc46f1446569b3d576ddc3dfa6616c78fb6be15ef1cf2513582889a488fdb229d2e37ec6b1a42c9c73415fe12e4f5e1c536aa1894f3c8b1c3ed83aca354c019339fe4a9f63a2a94a127f00c86d9283285dc3cdc32760e282a4fd1fb2e06aacf2a6a8b5f5166de2c78ef29215244d89b8c9299a230a6036e0c2ae4d22129a9246c4cfaaef6300ca01b91cfece134428e599a50795c70697064f578b4f6537046d4cb9932ec2d411d6f2e111d616d92ea08af1a40ac81b9502b0cb46e20059ad0f805de4e30b8423aed501b2b574fd8a1df7acf4f21cb00fc834f81e1ae9d9fa3a690406155390a9e80bb0c922aa68f66e0234359b1acc09bde81aff1ab14f51de16cdb6d45f718de282d0e80144d9025c7ae271637d288f3c409328521b68b16206d28ca745b7c49023b8d9e6f2df755c7beae0aca4d09623824009fcdc4d2037c18222442304e630273404edea201fae5182ffb18e49473435ce6548d594dfb19e2e880a805f704479db8d70fd51e1ec8947815597a6b40290fca58609aa90016a407ddb511900b09a82ccc94baca5f5e99c8fa8bc288f3e08b8e0257e5400a2f4dabd8c93835b5eeeea617875cf330950ed979293ba537eecfaf9c5ff00a1e126a851a440d3d993961afd59b96b2b1b2d919c6d207084768e9c895d310d452ea3e82a1a3125b924f2e158e05479a6a692a9a7c31474c1727b9222a1424295843097baa9314ee77aaefcaba628475700a9a0bff4e5a786731df964302cd00affc9cc286d9967ed81dc2255d40ded08968c9c7147ec6661f0bf87bfa53ed58dc73a8621b9da2d0a1b3f5429245400a515960a97a1f39d1cd619bc6f1b7cf96990f14e06553ccfe133fcb62983c07bf1be9fc0a19eec7ca382b1307ae9ce7b22008eee031da6597ae83ee114838a072787daa5e09ea19f760287af98cd24a45525fe9b0e1002f505c46f84a24705d372f429bf5124dd08d2c68efd7d9fd73682df39d106c9820cc733b37221863df164599e97c8984765ffa21eb86cd4caa46d0a04a922e589b598eee2010961bc0febdd25d83483c0e8ea04774a3a0697c273b5529c09a416edc55ad416f5bbb91fa670a13c15f64bf79d0c0db3b47325e98e35b2268ee1ac1943127ef1e394d9c0aa523601044061abed49b8ff365c5ca60378d21a501a6ade6cc4b0f997b9274104589b3d706f941d91db4990bf27bcff9fc7727a92ba9c6c17dfe1e0d59a5d52ecda55848b500b4a96a8c3ab3935a9347902ecebd5fb93ec136a9974c23861fdf4c07ab9755129917a8c4833440aa6e8e85047cbc70dec688876332de74c019cd6e0e6c0a02793b6690bd9e492d2a203aec0ae0195fcc2043a6c0c504eb604c0ae95d793171a6b83b03ba102440ffa2eb409c1f0e60161a92a38984e5922343a0a687acdca808d4aab5a559a4e1c5dff4b610527b9de153617a9bf9e1110bbcd534c68fe7a7751a333732f5c9e4cfc5d6598e698ed9d52c5f9ff7358a85f0738b60a1dff68324610085001c60df71c36aa84f45fbc6262b92d4ace34fd72c24a340ac4752408aa875f5f155a9a0cee799fb3d7dfa404841272e29e6420c6f2bd9a020c93dfb336d663f227b0bafb3804038791396945b63c49d973aa0d681560590fd0601895ae6d3a234bd64c2c4cda0720d5e9d466a98bfe52215a1cf4e958f72c9531ad41b29bd5dd7e2d263f5842bd44c2932b858a6f24d98281a147cfd66ab6e48ae759378a6c27b7286dc03f66f25bec6c0eb232565c73ac2842324ec046b76696938d2407dda275ae87699360ca6205f89a48bd80f6efce875fa310706b4d36fc5a27a26fd193b53467c49b482f9eafc0ea154b53082f5c9ad893c3baa2ce9de7cd4b81554123c8c5a3ae0c6d29fd6edd2882278473c748cf934ffa8f1137f28db6f0310633c2bb00cbc437a39810c0e9d4ac77234b71e156fd6404583998d1ed1b724300f63e07b102685843fce252b6466891ab732ee1f2b6d505005c730bda4bf27b24cc2f0969fc79f6eae3953a6502ffa63c648117bb0f98c6cd2474dba265f5642c0923dc8cfca4bf6458995da65cae6a96a9e22643e1db5fff3eef2ec1e3801f6d960bc41875a9ffeb240721e5ca88cb662329ce857b7519ed2eb13dbfda62b90d606214c536063b664c133ff4199cc82256c877e6affa4cc665e31d4b24d1f8d6a4bed1be59728a8fba6dbff46529d175ae6dd49492da6cc3fdb3321be142aba055889cee16a9862bb68d1cad928bbc1b75f02d07bea9b6faf6e23ad240991c51873da9d4feb1771a1c1a72349a39f3ceb3b39012d18027e63618e89c19641bf86dcfab546d1ead550a3bb0d868c9496a01211837dfe632c6281a323e66a065a812d1ab030292f9b70d1bc80e65d0ba722d3be8644068889887062ed351843d8cd524ca0d42d162239d2a1a286ffe5ea81140596bf6bc68553012990c342b932e272a23728353700293e83d734fa4a4e1860e42a854cff38aa9a30fdb2bdf409f5c8e4ffba577a3d5cce9353382f38942703d1fd3e410575e831de483e3debc5af47fa8fb650c0834349061910479345b2b2c4f29a0a7a78012e6dd8b3c5584e8f82c866bc061430164176f5f40e624185d43b510fc3a1c19c127b9f3288a70f62c0234d8d70629433d9f8cc188be151044250d4c09ecfad9852858e5d1a32b8bef148991d614aa029a9a53b5b741929ef1658713f1da3ff2740fdb89670d3beef4cdba2de2792c9f73d4ef10953c8665f64737c8e1b11e036ebd12becb495c9fc0e26dbc4de4fcaa9990a717d9b0b51a57e10908bcf3ff8444a2886489401b250c037737f8238be3b875bb37cdd26741c07c58c2d362ab6a1d2bf129ac4d3a12863366cefdaa48ae2ae1145e278c3b471ee29a23be08a3d1205c346a9a0f284a84f9f0f710e8992896fdfa0f1c2283ed0467dd4aba0948e09b86325b22885c969b83e52179b34fe638a6220470c91866523fcc8c1ea2569beff5c6417560f471e6f47a3f363219eedc94f8caf6a370bba6dd9c9ecf44bb6314522d5d1c536dc698c74df82dae7f65700b37d379d39fc71d92294f70dbd502bcbe0049c5df73c9895151356737e52e3051a6bffb750c66ba50d3293cf301238ee2d01ebef39db8939788578625b3b396ae090e23e656b1057c55ebb53826ada801ecdd509a3d66a7d35b105ecb00bbb3fbaab726fec885febfe5b2cb6175411251aeff5be1ea8ff0f1027191b0446b7212f828eb55e0343cc843622667667a2a68ae4453120ec4c66d2b32c5e485e7ca6a79782ca538999e198d322bdc531462214942542b14cd242955d78b23533df01311f4131892540b18aa7dde714939655a6c539683a195b6967f05b113b970bc42c34b6fd868ead1bbd0043a35a98421b09ba7e2717440b56c69e0d258c1dd00005949a28696239b244a6609407872c0c2d7c52ef5600c85f87a645e598f7399189761626f5911496cc53de4cced482214b55c34c0f58339110e86dada8bf96c9c1ca25f7eef6697e7270e10c4b169167960161b058fa27f95a3e541ff44c4fd0fd2ba610fc4946b1c041e71fcd74dd4b9d757c0ea8d83a49f3dff1027d224a957fc50b2b7f1738b0f5333bbc2e72f887e633d828532043b48920d032f252c29550f262a70e86259e79031cad5c792e403ebf3c2d4624148a65e44bc64a7735cff424913fc849496209421d98aa0823046476610ed3bc5fcd293b1e2234ce9d982674c50704f86b9363ebc86ecb181d22674a00979e6ba3383ce1f05ee9d50d0ae536b312a32821f61ffd4cada4bf025f0c5b3377ba0b912191c64d8692f3c40f2d44a7361136d42d2c6a24b54d177ffcbd7396f315033a62805e51a2658313ef651141f2824478e07769954c931d044ba09f5496aee44055b328339d7284520186564162e05fe00b112669e06641a6bdca8faf45fab51b5da90d0dbdc086e06dd8a2f3181382498ba7c7b414df87b43cde14c54c26b2dcbe37610d16c2bc577fb3504764c02471351902631ed46c4027164b4c360db845939e70fd7a0f4c6474e8e57c894506cf45a984b83c8fce25be8a20b6868b190d9a4b3441e69f2598e9003e7cc6334bd6ae0fa0f23fa059392c775701d409220b80ad41309c1bcb514df5cd0dc2d9f8fe9f3c5507bc5df6704f790ca70f014d0649397c1300c6250734e05e14b817f04d4cea0828557c5cb7a0e8e550aeee391116e7197b462b831583f5d87e4373fbe878058c92d411985997d806f70b4d34fb42dafe0d0231f67d55035e57a86d53ebccfcec5ec0597e5b53921841ed481902b2c079c2a5e69cee51c065fad4e186f7fd0cc3cbf412b452f372174b980c89141acf72d434faa8f95f25807191bc037461a31a8afe2c973152ec7471d1b917a047de28f2115e426136096ac88162d8ae1be12cab82e46395d37c6b4b15b19c1f84cb6553e342de11da2d58e83dd647e118738026be2ffd6db273fa08dd5f0da2cf0cdd4d743530ed1fdbf07a3718fc04aaeb3d5d6686186cd7224a058d91852cc4f8961ed7a426bab4e02236d3c05a3b655fe9b270d0fa478f2eb784af87e6d405adc1f86ed5fe0b94462203c06ad3d0b4a4b111c3159633317947c6f64ddaa28fb09d01ddab0783faf34e22a708837b4516289a4f9cb20eab09ba11102913941e5820e1d52333cb444b6229371d092b11f603457aacf20556da8624f2e55397bca5749fff557ddc9cd6b515982f989e664a6f946a4c081f4c3c5d7bf48b03c19b573d1264c4fed3b35739c6a661e4e77c1045f4516ebf5a363a71c3d9e0c8f5de7e4b8db8feaf2eaaefd36b6cffb9ae99abdfa6ac50dc95440fdd741f4af9588791de32140cb6e294db05feac4fc6077a2f903d9ebb924f6e3417d459032bdbebb3b82868dc51011b2c7a76d31fd60baedd91c5935bbae874b7ebd56fb3293e93bf27bb4d05a8b1c082889ce7bed2102b465a501a597fc6d8558746a1463114df62722b3bef86337bc3343c871bdbd553b562d2d06853c4fc9f90a9e4c98975b40f6564d79cfb4db8068133944bd3441729dbcfaed88e41439dd747df35b5f3b2fe24a4cbdd0d18c78436ec75c7f02479961beaa56195ad2585644e98a1dad60b093f36bc9b4f36f621e63b5256b39085aa2b24a0531d51889ab071cf38be9fb228094ccfc1e9caeabab7bd6d14870be6fb3b309a51112841c5726b9f1c02bb37d28f539328606e2bd41f0782de2fbc3b3fbb65fb93eb910b218573c8e459a7a05ca002a111605964f5001ec91ec23f1f61352748b28de1d1086d5008091756513a9f1f20f340cdd624474879e6f351952d888468cb6dce4a80a63f01f480c05ef303da251d9c01357f00e0da81ab5488afd0f5f9f2890948d9c6866978ff064cd10d5670aac6fb54fb052c1ef1faabfab7a874c48108534e5b087bd86a341eed3f06900670ab40434812c4d600c3a3122689e740e78af9f039f3f085fe3167bc0d1a87563abedba6ed02ea4583d57ebecf0ec98aca532bcad6e938c2c8dae3f8e5fdaaad9c0297ddbcf8aeadce0279457c5f79629eff26ce178b6ca1d3f71c1c75fa496db4a5ee877dd2321188c488ea10c0aac91a8eeb9c5c6bc3daa98ddfa2ceeb784d3018a686c915ef4ec5cff23953572493656efd114882f34babdbbfb54525125a93cdead128012fa42ac44e7d503b24045a58afa089f3b7f4faca4ab4a9954072b5b22cee6ef8105e79e77134763c631be54aeb8478bdf30d3dc19a05a3615eac32cfcb12bcd673fe7e30d81ccf47f5516a23328b445b8fd4e725382062bea3542ad60a68450edb2a0a714f282ddbbd0d88496f713489bb9b3171c73cd8870a92818a906a88419a2fecf26b0ae420ce2a381aa6d995d22429c3d818219630fa5906501c0d9b6be1eac88f60996d761044f2b7d74b031ce50a197ed2da362426e9908c34c8d646b6147b30006f12d051c97a96248353e21bfc321836c8f832a8e03b5e6c5bc515c6bde70e6d95ae27be9f3a03bfaec7377b21c5ed76717e5af2c56e3168286d38049c98737ab17caf2b34c5bb379f451abfd0f8596d11192239c59803c12223cbaa65d800a12b286a8b4ef02621c3fa80a2572556fe58ce19a29293ca39ea4a8dc54d14de416b280a39c8ff28a02ce90846647688851ec09c3a5952374339b68084635a88dd527b08fa7b92cdaccc34077fb7d6b53298a531b1125bd49751b91b4f82c5d9949693786df75f732c34d0a7160bbc4435df31150500f7ea538939f5e08fb682da47a402fc978129589d0a1340a13cec655fd8513bc273310be583b09326f483d2b29425ae4e39a8274050eec9574e9b325f2a247075fe3d0e6644286af2a9e52f382772e08959bb14109d88d9399a819944b3c531ced6c5bfdc870e7a3b0c0a009cce1e9c8d817af561fb8e895c6ba5819ffb9399448e70ca304c024dcf86223bae3183450183cb46e4b7ebd9b616c08441622e7756a840125d01bb28252ad9869e92c8b29e433ce24aa2201f7698c8af370ec155cfa57304c773a5d0376085de4551c3bf792372f9b969fc154144e96a5ede7d49570fffc4416403df2e07773fe5bd629004dd98942440e4f06a49ca52cc59403df049682b4c0268debcc1e7dc8b8a0845c771774420db84c78522f1f362ab28bea58ee9346bc3c6dc10b4afee120a1bb0321a16b656c3bd269bc621c3d8259333296068b5ce57813fd71df412c0c90fc5dfc28556f26f410d2e8007ecefe4195535bd8182681391aa76a1acef8b614c1151d54d6251dfda2b6a216ff6c28a45d5a82cda3cfb5d7b591d8dfbb60b2362f63032b70d054ae527a075e12010dea7da21169871ecbe905c80d9d949eeacba5a086b86edce728a12e75cdd16c5fa3b2b924362444ffea77dc761375ec787c191603051bb849b8d3fb87f1f8ffb15416edc26899ba74601a4b083ef4cd6174d07b5b5a3d290ea14777c91ab43f8ab87fd30ae93375d9f584e408bb496e59508b54047de3b76cccf9abc6d69550ee080eda95063f682d2cb06a3b4adc4877539cecb2211f23d427d867a9f67d494164ea1fe060cfebf4b240f8b5fe7ac8c5ef232dc6e2baf68ac5baf5f215b6c3cae78a719ad79adb9c76aad7571ead52f5bf2995af7ecae1d78e522c6d0ce762e4263cd31381afd8f57fda033b65ff212f946476fdce0a6f238bd3aa9f264e5d224b85da1e2791cb91e25db2e231b2574dbf4771a3dc9b7914165e9e761ed89b7427f8e68ec9825bdb5b38d7e29c18fcf0f24c8cc274debf8be62768879e352f0ff22a6802f060045ac60866e4e5a1d417b6f26eb52922227f446057f5dc02c2de685746f323c10dd3a8c1d73615f723747450d06bac43cd2c4e3a1f6a01a3ba84605be46d9a4ebc793c5c4c068a4c3a62129c9c04999713328d91117e97b9acf81c2035ca0c15897944dc4b218a144005207807176a16abef5832e633f8acc6f4f53d852c474f44c11267885266c58438237a41038df1291d8d31769ba4a84647e75a8fcde88e48d6bd248a6ef36869ce0d3bb07955ba983c013a22633750348821cceecc47e79df9873f3cb0171775e06a82eca5639a8599850b9fd356445e5b5fe5d3ab741661ca38aaffd279123183287a2e98fe5c5db7e51e03d211226362b9252d2d4e95cc5e8578447ba250447aee4ba8137130564fde4c9da82b1169455f648960ea2ddea70d5e7a46890b14ade73883c594180e3bb14190396e5881f8512024f6c4156836401e0de03574619d516efbd10d56cc51e73f1d477075e718e2b05c4e41861d292093915e10740431f2625c89d9fd0519e6b86ec9f55ef91b969a49c2d7573c589bb3b188225683eb590dd4a201439f93b9433e7fcf2378ff5355f29e56811aeab2fff368c216d7a8e3a67c46bbaed50645855bda4eab3c1ae571db315190511616f8db201b518f920a5c9da3bc885eddb7eaaf59730f1be189ba450bd38eb224d1c6fd105fad2e5b1b795edd805611c4a32c340bb425431061f52b9e51bbee1c395d0736ae06e1cfdf48ec2a0d8551c96b8aa5a118372ba090cf9f472f104b5cf2e8c31d27ee89151238b7250425d001393df341c749010db7c71cd6e64388fe756770f7154bd974466dfdbcbb538bc1b4ae9df18b52f2899769a08f196bc4ab9e45ebe36288781ce532081da440bdb66998225c7dfffa7e00ac54992744aa12bed67e5883f70556c88adcdfe3c929d59b11a3f674b706826f1cf74d2e625b4ecdc7b8c6df9563cdf281ae0af70872be62b7403abeeca4d0d6bf3f24295093c6a6ee9556fc57542b455ac92518f48419eca730a0adde6ce20a35f678065c32d8b6c34e40564a83fd228fce4ada92a7cf7dacfe12b71072374829a2365dc50526a79a66e49b5a0e2e50b44833c4365726f957e653de07555f3090fb03734c1b9c1c02eaad29bfd3a471de61fc2ed1f6698c791298232ab63a1bdc17a3801e932e303cfbb4bc0317e7ee9308edfa0f768b047eb7dcf1037abc426872049bbcd2cfe50daea2de68d37c6661f10cd6f0b68c112c3afb5b24fad0007bde57061f51cfe48c3dbda31a84a2a358051f733d9e3130fd95bd2bf833354874aa0dbf685c0115899dcf915a708b6e02960bd71631d0374156795326f831d49db57a41f3ce4d37e1a4b6e321286b432bea37228352899af970c52178e67d7f9504935ab2ae618155d72fff8558ddf452eff5a9ad377d62944eff3be36d8d478b8e3d5bfb5b5d37d8bc9a3b95f6192de10e804944684f08b54e428ad55f0110ce9dadc53c154d7f76a7002279aa950128d489d8443a00b7c7d1eb92d4d1be9da171610897adeea7612821a9c1e501b72e40ed7f5f8c4afa1bcc08b060684b4d3134ce055004d7d8a0aee85968fb21dd7641dc8b8bd7ceaf00152dd7e030f491aa2a2fcc88927a2cb8098afec14fbe68905f3016717f2a874e1bf836676289c0c8047caaccf8c70096714e07d7564b80d0d9ff5e3907524aeedd0b0863bea70eb43ab3708bc08705de8dac039a24105aac069b8f05794590d103b56416755228ab02e26610b344db638b2973d232db8a0daabb57f417e04fbaed92f396c0c16baad66027f05175c9fbe20c791f2436d84393d8e68d9880a4961cd8f0b70cacc7b9477cbcad4d55b7bd866ec7d75a6681ae2122c84df8014acef8adaa1fe6d1ad1026d88710430c234c087655f1da0471eda858b007a818f85ab9acdf8275025a9a1641f75ae080c6959759e066298fdb751cafd7a890942d29d5db9e1d60362562b4b1813091636fc322e1517b1d40f2a13a5a758d3f9d6ebc5d58919b901889beed70bcf0c063d43369dcb005b87549f8dc148f314d58c8b5c641aa37caa519f07a03ff46688df2e1dfa921ba8d5b216a4d820904784d35b844f7f1eed1e6cd5819948f40cc6fd7ae6d81b82790eabfe0b72569ae71b65b3f22ec0fefd7f2e65e27e428629420b15d14e20e52d6b48a126f2a0a5d02c6e29a968860283c45d8b88c0b4bab33d2ce4b042513acabc9fdbc90257a23814edfcd43aebcabc933770f213c2c9af6f38ad7b30241415cf7ff0d7b0b38543e0d3ef2e2fa003385f1887e86c58253a1fc71f011006c07f1d1e9982251a833b07b3ee2b054df4dbc83260fd0e5a701631892425d65be26e0cb0b08bfcc56e97a1cf59fac348c49d561785b70a2214826bfb50bb0138b0603e105c70240b9d7de0513f1fc034b8d8d0bf4afbd54733852e7d1eb0f736241258af0fe58e8f14b68c3f6d8c3294465891e542b30c34983295b8b33d4331614ce99de71517c2c9841a7562a69901d2c61825f0565fc155aa896c190d2a2d9cb481bb384430bc3b42866843e8671293853c22c5d4a5fa42f9737ea6333dc51e19c8108ea2507d61097120ac2ebcb7b92add5c86bdb92a946d5fc1747a12f1d419195486d1aaa4167cee9df9248bcbd8ab2b3addc4c73a67dd30e8cefab9ef37da329c250dce2a88f5e0575c71ce2065e509a604b9e77ebb057c06858c10cc1f760a0cf9aa444618092a3ff547963defd4a59026b5e34dbf8e515e47f3cffa4490dc7a677c481e270a63dc9507c6666ead82b711feb845c39f517c2f6b3e80670fe62dea5393e9e848039cfc1863ebca7341078407dbe369911c817c891f2e6bf6573a62ee4d73a4d59109f227bf17da8a1ad662bd16ed7274c9be12bf9d8744a040d4f0d77b2f2203e8459f87a6e86c6e7c21583080c4ae07e8f590d4624c3631fe32db37198a1aa8d0497631816d0934634838ed2e10180f845f9861b29a06a88a02266b9dcc84a3386edc12e41f9935361439ed8c1e229e88cd01f5320ee02dac95934d5023fa12ad2f0bcb46817d9e51b187468ceba1a9557dbbab5a4c084b76ded0f326a20766a8058ed5bfe789a331564a47a1b023e1d35917cd73ae17efd1fefe73385c8cbe63945303b3fe286be43f99798d1fa3f7d637ec26cd9c6d954bdf4ca0a742585ae64585f714cf9c41683c9510914074d1bcad006cd0ba85035423b11a9a1cebffef826953249f085033070cc33a798810faa3f81b1ba07f8b794aafa4d0f1001fc10ad7c386860afc1e22f76bc4d346cccd3832120acc87c0ee39416e2daecb2281bf192e42fb40e3426d8ca84249c627d85e6b1172be460d4e91abc7aacea73a7ee49aea94b5cc7813318d616451e0a42209c442eab5644888beccc10828e692936ccc0ba3904bf52b8010cba237a2862b6701c9a13e8eb290af866ddd26126ad2f61bc40da1c80c7f7a9d084ff9124b5938a07ce1e05fe87cd9565c46268bf678f6293687f391edca31ae42414be789e08c1e3d0b510da3e044ab7fa262d91f1611143bc278208de9a07ec1130d4cc13c97ba0ffe081d20e274e1bee709a9d902a6262e9cd950587e3d94237a97cf0038b9c7b0da93407086d2f95166e184ddc73d5b00c8fb721000fd1da220c7767af8e99fe25ac80e158bdf29b1ef224e1a5dc93908f7eb8119c289a588fc0ac21da4f226a205a382c918da74574d6c0166b7e0dfb9fe5cfa1daacf10397b9a28b119d8d2d8acdcf7b3ef4ce4daeb0c740b90ec1e3c28254fb0d37c5e36198c11026f51b147645225713d28266182b327969c6d59f4217bfec27d4a4bd7a7ee7213804b70b21494a7bd5c66d561bbf9b8ef01488217ae4be5e3e273ef690acf88c5a3e669b043b47ba24eaef527c8af00f7622115cd47d4fe5779eb40b5a71536bd446703f91e7d639a0e0aafbb604a533d2c42c7da42ac094e2837ffde58b4c883c26879008d53606e4c5a6d98404de6d948f71dab5ea74c8a4ecb9d7ae662818cd36500147f682e5bb1fbd5eb4b6e27d721ddb80a5804d97065058faa67b441ff1a6ab728a107b275403b502d229fc8563888bdddbaa7697158198f68756cdfb394805e848740358e69a5e2f2e2eda98d03810a6624b3696f9b496b242b09eac98a4c629e7b0be105fdc0d4749dbeb440300b825f7d254eafa536faaa382ded3ce6053883834005b6bb35183c69074e81e7c46e442b1cb12136b738429f192be7aa930982c8dd2ef628c6b3071037106c7efbeb4d6301cfb4d59952da917877d0805ebda3e5d13ebb59e0aa93655b9e0c73726f87942640861856bf52400c9836ff3fab3852237bae0cdb9fb7052e21797c300a15aa8805f7cfd84a706cd30b858944f677800318d6e74580d2e3dbb9c1e0dcff431c44e739d34dc6b7aa9cb690e2c34479c67a1602d6acf5632425cc4eba649c425adfc0818898b07a54b57ebd3861a121a13875112a8fa4d540290ac5ac86fb182e2e277230143fb78d16223661210110fcec5860a7ac9de6a892a7a29810d682d9b30b88760cd953122d03faef5c46992de9167aaf08e5a15055fb1ce47b38042a886ddf5f80b4f94ba1f8a0468c63f144237c8ee086e58cb792d1d8a0050080dc5a3d9afbe0ec1a83a27e6f6c53cd08c392fc14d205a4568a796802ba2348ed5dd88c536de9a39e4fed309accccf64d4c34d46db9a5ed4126bd2d03b0025c1ac558db2af600f91313c8342677345d7b6c12ff5ea7418a9cda92a1f487cf5bfe0a8c0a9551634e99c8e41e59ed698ba6bc7b79c7cd4b4a2ed2083eea4952a0756a51d8472225009298e3fe4868ce70eda61583b8448e731446e27be66ec8fbf0e06b0526998860057a47b3aa31773f907f8be3874c4c048e964d0e42b7d229c04fb54e847f757145726cb2fb716d8a35831277a51408d3b9babaa062d310aafcb2505e33df67fd628ea972a01485858e31e54d788eae506a77d59e713f32c33adf41309be5a5a9882c497a55c7284fd60fa63d362aac9f5d0eac11911f8d8a56f350df71abdf948f75e61ca688a9c1a78b830d3b1887c8f7e65811766c2d636af1ea985b6f51ae3edcd38512a33e97cc6c2e2ba16a0a2965b2342d72f27a0179e186d7d229b3ab8a56734ac5b1d8d7cb586eaf55e54114ff9dcf591882f7ed8f9b361753ca373a9f02ee2740151283ec669c49a08469cd409de0a652f6940af0d68926521683a010e4d3c8cdfae3ef00d6163cc15ab90c6311eec9c7e11d743dfec4064871c3c8e868d141d4e8204b05b3fb065d83d80d7a9c0f9936525ab68d1a86ee6c320f220b9c21fe908e0d393e95bb1d2064d9769638e57737861cb49feb9e92b1ee9e8f6fcef6fed2fce9fb307c6b842c8b52b1bc1357eaa996c36db1751690f7276205ec280a8d924057024cc8f06eca46a3f6441025ee715e73f847fc556db684529248de1edc8095326e7584c0c6d8973462e9dfea2c8af4ed74d8f8009fcef170489a26b9fd5f9e17e40b2d163a646cb959bbebc106d04e19417741e5f5e38e130fac49f4260e3c618078c5161374232cad2f687fc427a2fbf280fb3758f0c250f137c8675751a1f9e6d9fe2d61308dfdd638a6887e10a9e5eecc0f1d872adc3ea45ba0a92937d74da470c4a7f6c05a0835b581ef329af27fd6128a59ec7565ce94d808c48c15c9f602c0a29d525cc951567f54205faea3642ed9f498034f37af2cb785a7153aa257114ac5b5b20813a296cd828488767515d24545795923842c8ef2bd4f51984ddede601d0fb531840344bdf4d8a7de4efe02076e2622c32a4a99266e16d375da2a52ef057ca3776aa4db02880c5db9ac61d8f78603802949d48a9e56d66b3bf8048642cbdb484f05dae783213a97794c61fd330246f12bc33854a54b35173075adab5d20d158968196b4fff1f2c0b90f588af6544a8057a51b69ccea78b6f2c47b65322974f5a210ca103edf31036482a0684c1c5906d08bf081f36d8617874604df05098e4962dae8c7c924f977a1ae626e516058e69a19780fad441cd278ec2fab97bc88edcedaa938144adab80b7199197620974124a0e0efa28c3e83724ca74a4a113d48dce563dfae948b928292b8bb7d79ec3d197cfca54429c5878c689c1bb137504efa4746ff974628b351e5fa6db9116e802413cac9c3708238777bd419af13ec3df5401713459e48882d6288586af271f0ce866449fc05ca3461a9bb2b62f3e34dc580b0fd228601a64a68bde98070fbb545af79f5be54c2216ff10bfb772e8f43acf5b0938473702996bad8b2afe4e5491be872880165c955a360656a2cb1e48d531a30a232d6e311e7088df41e82ebad8f864e1c7b37775137ece95dfc29e0ad12e1142605c35c251accde330b4031c9948760630b07f5e0b880a2ec43ab78cffd643c77bba87a5d9267ae57c67f737687f383b6b8ff593f4412548d3054d90d9eec30d47db3a49cd4cde8dc2b03d449240a214326f7791a6720e6a47fdb767d4965b1960755f00d9430673d47f18364d3d7084f6cf58fa8f7fe1b220aefab34f1e2d09a0c1f5f427953ace954a045766863e88f670da96b4576af2dfb29c2390ccebe81a2bb1c8bf209d0019a9f2f18d713682a050faa68bc617911080683b6afdd3c131d01ce6b1b96273d4a611b951ad36f711799fb25a3cc5f6fe4ae9d8d60e9083894adedf83c4df89de85fd5c2a48910e04cbd46dd2ed403127c774d24d69ad5d89937507eb89450954094813b5d414ab2d16e53aed3ac0ea455167038dc1512ab275531fc08e263c2aeffcc85bdd166ee44ec30daceb488eb31fbb161f641ac06a222524bffa1928690216230ba758071d5ad16ff7f02e4d86fd9e69c31177f3fb70c972b72fe2aeeac9ceae8add4ef25958e7b577cafe7c6df47f3ddfc429c92f409150b1b1254ac3700cec4bcf1819d791b1934979d101a6dcf3788d64c75312ea0b93eed0161233f7a43600bb1063e1284740187f25ac0b0221e1e2c6723f988992767c5f2d91969713df1733d55df223a28d15cf5a08603565de345ee277d141bd36c6aed0dc3194304ada5ff142b060fc456b0d3382fa78da8f1d8459c4e3c674b0876451f6ef69dff00dda8e5e6b91392bf588e226c6ea35e6364f1290ca082e428103c2d8eb2598f43cf7b1ddfac2e027fe602269f83f80ce0c593a10c0e3000443250e7355404b7b81687cfa88ca30171c5630418bd9b586da266635586199bb35828fad718781a556d38a05d7cfeeb12cfc2d4e4d72784844c3155ceafc8c35a1ad55eca49d3595df8288beced48594669a3854f504cc24874f727290f296041aa489531f70172c904f4a1e9cbb1c9383e0d516bfb5669ef229fb6c622eb73337533d687b6d4a97cf19181da9b526f91d5fdb82124f32aa81942822ade0494c4febd51ef6b16b34b031ae14e3a9158eebed2c54c8933e585940c36a2f112fa96bdc91c68ae09042df3520c2b34a2bda6b0ef577c0f65e33a473114ca97daa7a95c194bd2a8d08b0c27b9937d560728b72f7cdd26fe62c4a9c533777f297890dc653d862ea61e0f0c8a0615e968c53e95b03cc77d9061eac58deefa0eda6f63a1f9dd7e2c358d3960a8c4cdce5a4015488ab83f480aae65235b6935f5a548ad4430d18835c1b0f3fcec53315290dfc9cb72c95cb6f59b27cbda80b7a2523e0767a2180a09590475984fb882e60268b6af32386ad9a16cd4e50e2ba2d5c2c0d95985b6e4fddfb5d79ef3a57ed63758a26cc3c83f2402be6799db9a183b0e2c2776e1a0c06ecf7055181a0088fa1b63ac4717cbe595549ebbb955430ec4596324164314cb4266354846162bc12be500cf2b7904396671206f9f392f248142013ff5e72a94b5ff6ad5e19302cd65e776a6ec1cbe45bc0089233e0007b11a80d8e8dd9bfe487ad7704f3b02183556309f70948c6d2ae98d938bbe6dcbaa08e004744f8489d31a214c50a84ba4145fb83f48d8c4078f7b3506c64856233b52f4bbd442587413df8b17c41e9aae7d54ed6a6c7e9fbbf52a4672265dddace5c3207bf7f4484a48b5e63bdeb1559149bc19e39069fab9ca8c7ea6d82f66aa2a0cdec0c3e36598dece391fd1ebbe5b57315b8b3464613e87e90c12235df453658eb8b1c1bff3f8afa691ba72bdceb164c61e116a1783bea0343bc8f8e7d50b259dbe6650350ee64dbcfd04cb70b127f1088ce2fac578d8346c010c483171cbc212b9c13778908c00a2a17a7cb1cd918f9af170fb79f0dd4b07539f74283e3f4859ba354b678c2c8b02575e148d45ee21e6f64893e3fb99251bd26c20bbfd4cddf6780da6096756325276dc9636b7abe73e0a12deda127e74ca4512aac9bad3d0d5f84a10e907a768e9c81bacc64ac39f2b890a53d9a3e1a9c385c9f23e068a3da6b94bf11fed00fd34fd0191dc96ddfbb917a54550ee8ba216c3584c4493be339dced9dcacb5a733c2e7e1663e219edc135d406e573cbab5deace5c6dcea1de6365e3250bd8f2d471972fe703d304b6cd9873b5fb0e46fb551df4be05282e77c81c88136d51b4af502d8d737e8c3be669fe30484119d27d54929a839523f1f3c9e90c514b5d1f9112421ec2a2b6c3aba3f9a5b523bba88e00069832c4d094bda1edc4b3fdde8c2de05ed4397d51f82f2c7cc6c48987ec598ef9cd86de2f91335eb937f38a745f0fb22bb996647019d0b58e4480f215d3bbaf0567dbfc6ff547f2f76a855df127be0ce1e7ee19dab760a30bdc28bddb39c988e22f0a1de62b16bda9aa971c369862bfeaa09e6a007b2530f4846d27cf9380e3cd5aab3109d6d4ad05343641df976ddca021cd6321dfbfd3a016002646e66ae978d8c88118f88bbf23a333adfe6a4d4c8d2429f39fe0a2f96f6c1a7ea56dc03446f93f39b3575d91252b0281e5e1776c087ba1cc071e4db897138e4909c2a7a40ee2a4f2d047e182d5db3aa5e6cf66b69819027aec0c1249a539b6461c9c2254b3786d825ef664547b803359ac7d2d753aa340bd3092007fc7eaac0d995d3673b82191353aca1629c73ea22cf3624586c931963018061f81a430ff063965968f132f25a05da3b81ce4d2ae295d488bc48a9cb1476cf05011df30f74169c7da51e981c9b4e3b2f0e9937bdbf4212dc138ac56a82b8d291bf406d6ef1b0b211bc7fb411cc72b66c797fd3112a401b9c863d4ec2c038a44eaaf8315a196555081286391b51a3623240150e3a9a464365fab1fdcb779f3aae349aebc9bf639dc52e30f968197cdf79016b0dbe2031c05f0f37dfd83630b69970138f698b5c445fac96aef316534fa9d38b99fc3bc46d673ca415db478171c940363dc354238ee5aee02542155371931fff451f39cc46a1e09b2a6b76a66802e81e343b5c3598035d10eb20ead27895bd04a198a7ccefc89c5337fc387e6af2d1c3e58ed02442168fc096c5342f6b06069915ec136186316af92fc6355bedf649c38d76e940b797bc07e377548c5bf994417dd15a085215f2ade98e1d668b67009c80f5bab7edf3f4466c83d8d429181adbd04f280ee2aca369ba7822e65a4b32b8ea11c6a7ad6cd6555385e25ea70b410c2a72b25dd89117406490e715a25359955915946a999a7d448a77121ce96b41788b4bca1202aa8da7539a2a82c604363f22e5c76a0ed78b1b885908ab758f4ebeb6112bddfd1df1c522f66538c1ef99ad0e444efe6745ac2027b1290a12efe955488478bfc181b659fcceabe4b1aa89df925b8155c96004ac614aa94f486e1c9b17b2bf8295a37e64bb315e992f91a8d2d58b2fd60198833b182a61e4526bbcfb1344a54c96bf6f52ad2cab6b6b8481334e6eb143f2cd90e6b2212d56d070e78e5865e32e0806976d3098f0e28c9611aaf8eb05030e81c8cbb48cdb85bad990787fab9ea5a8089ba61411cc5df16bc6b1c901f2ee56ca00d047ac619c6b1f93850547360dcaf4df98775f95207455f1ed892ccfc85320ac5ad1af5cc9762f0dd936efb2169deaea1279bd694ae1ab1e933d908f7a1a56ebf309d3df7e947b7e38a9b47f04b28727192aed761dfcf78d0a9a5fb72d694bf9d1d8294a4e0de1309e8bb66e863ec6be9bca09b85a295232a52d023a6d3d548b3b270de4faada95d17d2a7bcf1d07b87645f2bf1f43aa7d11163a5ea73493b120c3416661120dce201192a720c3c8b3200da455b949d0b065275f30728f425e2b97bc32f820df109f0c2b1c718e79dffd4ac5d3e6ea2816ef371d813f2f5987625e42492fc6e1f662b5d964fedc7c8a4d2a48e5c83ca4f02487b9d004f6d371123e97163a8f6369934569a55da0106da40f569559b45f06dc53dfd2861a91042cf4293d50c0104efb2461e7643e311507b35794cd22517b0d42ec27f5cc2c2f486317dc1c19af858952a2cfe171890585af1dae09fdc15a257957bee0f112bb7b98d828b9c367347ff60bbb9ebeb473c65f60ca4056f07c204b62987b782063a2e506336db454887f3c14e70c9cd36cb98a6c6ca079dfec06c28d6fb8884339ceaeafa908a0c89bcd4366300fcc607cc12ad8e050b0421dd1e53eeefcb525fc1505c72da904701862c963662bfa031c5e49d08bc847e1029537b70d269abe15a5345d14b9b502fef6ecb489089a4ce041b3760b5c9cd6ea1a0be4f890ff06ffa2f11cc1651c2fed8b7a98e0dd4a52c9bedca61c0543c692776f5279866a61ea7377e2aebd4e906268d63c8d118b465e5ce6fc6b69f3178e5e7a4d63c4d0fac0267a5313e7aef426d1e9efc1c02a3a398278a030ad5271befc2c94d2d27c08f61a0b5f09489b0aab67561876027cb2013a10f5385c30d25d51078a549db014f1c0e94aee41a7645844a50ff9419ad4b1de84da28f9ec5f12b994c1a75be1a1832602720474a601eb254801f6ac36baa054773c54d262ea7f5361dd851b0a95911583326243b5875493dd64ef2d654a52a6b10361035e033d77a77aabe7dba9f83d4b16da59b2ecd4da0329a478f284ee5cd7fdce4b8775a83fe79cd4456b458bad57c7159e71cd78c1dc7f05a5b44f357cc0881a8f2b453cb1c40f9eec34055ba598bfec8152b2f4215fec240f62765941ce7c5d4c344bbe7681b8c1b28713f9fe7140fccfa00ff594e3f3179a401e10d78a4f39bc53e7acc5154fec590f8bff7dd80332ae6e72e9c23779a4f835a4843097b74748826aa40551787034031b1356f04b6e33e081133ea8b2a4124d2192a0ea0055458b05828b8de2889625ec0cae47846834c44447050ea450c2909a44c813394182688da0a0e22da19229fe6e464ecc324c6ea325493298db680914971a5424d60846aab8326b82136e219523463e4958cac263a80e4d217aa0a00a10286c4333200d2912c2063623389c3f8ac779eb1fefccfc8133c523a52f28428a7b869475cdec39e90ab8cf8e7bf0b9a1b41d4811a378422847f1041091b64c84a23e914bb1bb5b46c99a51f4063db2e34b63307406a59f89825de3f8e605976218fcfbeeed39ff88b067ca66520b72eaa1a63b9bcb60e0c67e7359cb65246e8cbd877b093ae6b39fee694cad5099f7f8cc7d788fd328128d9970bbe0c65417852639d00c95d521a7a12bebe245e8842e4beea1c7b0a7b5d57f0c52dfae40dc3a28c24705823649543689d0d9ec6c96603d34f6250cc8dce16008b9b4c1221a25392297b059364af22397301f180df60303ca1483364789c676506f799a4c6323b1cd60b38dc4167ea7f0f4c2bd271e10dfd30b6f5729265a84fee381a6cf46514e6cddec68eb04321ce0d6353e72598954217048124ae489bdd68c0b8b158a86ce464783a3a1c3b558e966409a41179be16665ca91a34cb117657a83e5660733c42d739472947296746634665d4e368a729ea3d43434e59c70b8b46c0ccd0c9d489aa1aec945a158b0b06c9e9d19cab4feb06c2d4e3c162605d78524633ba7a149ba1c92894811eaba99a61c81f52439cd4e09e6a345e62ce528d1aa172b92cb45a1566c92a8fbf0f1c9a54d928c50a69e48cb3242a8138f8751a71766681a6f760a085200d0cac913522e050044fbb9d9dd2809a0a7859912161b3b1b453670368e6c20b5e0a3051eb91c25cf5102ca51d299398d4e8f0e4de7870e1053cbc6d057830085a650b55abda8a490160ec9982e86e43447d48573a951179116f61e51328d4189158915c58e8c3649363b1b2c9486da2c79ad98ed00b706006d912cd1c9b0884dc78f1f204041448624914338a45c14930cb45bf611db67f3f08b138f09043d8c99a0f46607832475d86eb7c76974d4740891017e9be1713b13b9bb3b28beaa546b5984a61562287e4040f7242e69395dd185c69616d1b2969cfe55e547ecf28b51babbbba99b05f892f295ef2f29dddd2d36b60fd301fb42854dc560e2ee5e817257f7184cbabbdb69ffffeefeaa92e2f1aa726725439918aa9259f9e02c22577d2b1843903ff4d3224c7777fc62e54eec944a11622a549a30654a156118f6a99b9c35129529b871ffffd33db574c170f71ee61dbc56777777bf2c5ab4185db05839a10578adeeeeee4eddef47d3eedddddd9dc28c9a9ab15677777707800d0c36de9b930deddedddddd383f7368ce049f7e60dee1b1ffffffff0d2a9966a01f1a2a6d879214c70b1f135a0e26319c78429338634161597169b997d6fcb4e2d26b7e5b6b1d616262b0ab743c6dae4e830efbb9061da28b201d271cae4c6ba881da600302108000b1a2204346026a6eb8e16f10af024406300087172938e02036401ca2526f0d38d1506d4ec324b6824c86e90dd101f9c6ce035c18000f0ef185134fbf800386184408102006192e6bc6cadd89cb4a9ba100d400630e226b36011d28d0dd15a8b532c02e00071c2020ee1001084800f320b2663b2a933a811c74d0e12d60810bd40b6060476531a918c0400d1a2f0738216ceafea82577e2d982721b7babcc21d7991482a1288e27f1e7d615747a3f0b47a5a6dc891fc6bdbbbbbb635e46a6d6fa937a63afd5dddddd552b938b930d74b6e37deeddddddcdfa89452c7aa5a9625255bd56cf0d7db9ebf18e077e20f6c80ff43c7c837a3824c5e91e0c3b3323cab0325c1db02f535897bb4e29886e6325b92e2bbc7f5185d40bcc28ce8819656234b9e31d513a9558b352b9e8f18e28dd0b172c161ef12a2937b64fe213013c4b96ff96f81fda2f7b4fd6ae92bdd689abf82d244b8633e293305040417cb2a43346935a2bacbb57109bc6a67ff9d83b3b59dafcb8a6c6d7105f76e2b1094077e39be93c788d87e6ea5ebd7eacae707a99d834e6b5becfc9d1d161c1075c6e56923bf13b0bef2ca864624698940b59c230f4400f7ec2549a740337d34d8ae946bd0364696b99e2171eac2ac7744a9e4049ee46030451ececdb67827dfb44f6edeb827491a53905149dacd69668e496ab2421fca8b2bfaf6037831c75c3ae09fff1cc0ce9dcb9f44c777777df3ef1f67709e61d7c0174b653b1ea71557d0bc7ccad9e1bfa72d7e39deaf9b853ad4706b43b716a883b718a0477e2941077e294cf8af6207249b675cdb2520c20b0488de04efc3911c19d3815823b71aae74e1cc49d3805822ba3a22a7125aeb28b6c1a2aab2eabad19d90ab5b0ac5ac01a18843884e9c8e473e3a394bee779452c219717d69304272ecd6dd4c4959bfd2a95e1060c464d248533b751134539cc6dd44411a3267247e874dcdeede3a3a8586f486571e5c6b3dd1d75a43eeaba7b7ddba2ca611390bfa0ffffff67c10797ca54fcb556a2c6a8f2ffff69fe569943f6d6f745421608fe879ce27127a69452fa3198dce993d2c649d4a0911b8bf335baec8553c5bd45bda65ba64051d7ad75c6bb425bba8eb8b2b76e5a70a72bd39a4286f50bf63a29e1facb5b2275d5b03998142f4d4a7b7ca9c22fa52f5cb5eeb8337ec2a1cadf1a513658b5aed0d9ff2d33d7d20341f077ffefe1eeffefff3dee74ff1eeec4fdff51440852c2fdff91b8eeaf7af7ff8fc1757f70094b5f0fa8eec9a557420f69681c771e3ceec40f1404a4fb43f32aed67082d4c225c22f49ed70be68b46fcc7039fd81fbbbbbbbb4f20dc1ac549b0911ae713670251a0fc5428d3d038137f7d9ccab3e687afad0ccc9ff8a7d2fb4e090a1daa9f437acb73d2a14645717f685ea5fd08d13cc9759f759d27b9c0756ffb1ae8bd4dc8d766f95379e8f40583fb78f2fc2cdfa020d8f2d4d413f64c59e787f3472fcb072e4eecb389e91195d128f3ce3befbcb3756b8bea621c3d991b57da13096b80a801a206084a29c5c1c285742837ee568d8ffe1fdc0471d3edb34988abb8d95199f8e0ac246e82b06350ea22a06ee7b8724bd794dd4c580d2e8c00a8fc2df1f461ba2ac12d61b219b4c5c97dea727513fff92de507320c06f327763b1462c870d1e0d5102aa868211cb380d85181220a817e26ad867bf74783d674e319df2ad4142c8d8744737d48324c3c8dfb4817c324b2aaa0d038337704fa308c939dc1e527e67629ad110bbd5792e61c21acc0a8232c14d18b162c5ca05aac50aa175126c53aaa3b2a521d656254459051758b333ceeac482d5c882c272c582f5660d6edeefeebd222c58f767f5a5a3d4e60886fadc83a4221860c17cdceca55619702eba8aa20b28eea8e8a54ff5144a91f9cc68e8a546b6aeca84895c6ab22dd89bdc689a771b7fb2b270638aaee97795589e9f61f1fa6dbd6134fe34e7956781af70b2a97dddd5d650630d0d8cdcd689083272e080289929d2718e146c526648a0d6ad1137ab8a8ef923db7110e74b974e1de8a53f7eeee765ad8ddf4ffa9531787f252a4f87f52babb3f9f3fcbe572b95c6ecea019ae262ed8abc96b3536196770132c7e4d3ed46d72670b5d43710b2d3811e1a40f7bbd746e6ea8fb0cc6335c2ea779d6ea5d6d4d029c1ff5dc76e7b2bbbbeb7777b7140ab6066c9030bc359ed4dfd6d243bdbcbca46060623e26c6e98c59c1a2450b14ea052635fe383a9d63ca08234ec4c0c8123addb8fb5a5fb78384e6744a6837d71959a1440538252a409253526b7d235504ca2909f239253fd039d60d01e672392f97cbd5afce24cfb3d5e6a873749aaba34f18394292ab726491e498f83c6b3f2b8626d0fb449dbf603a375ca8ad9b8f948106d90d3620b939dd1f41897f1d0c92f89f732724e4052e084222480b8e80e6cc1dc182150031e27fce2bff735e9973fecf79c5fd87db5c354ebb280d7d5149c1ede7fe13a7c038c9554e65d4a96fcb1cd3d6ea5be9ac724ee3f46dca20ec99d28494e9117579d9e6d9725cd7d0a5aca494a91dcad56b90cb98769a9d2774c79be140a5a13b71e9cd4c352833acb9d7bc96ab9d5516b5db6415813feccddeeccddeeccdde1ca4d99b3f142b405c1e335e791275517ac1165b666da3b5b9cce2280dc5385c11ae88884889c65ea8717c89cac0209c104e08278413c209e140208bc3d9236ee2f77dffff7f45a4c67eed104a2324346d9608919f2fe9e7260471488a892be4b5215e95dceb8f8cea0191409c8338b008c4151111813da00df4a1323108c4591b88b33610676d20ceda409cb581382b0281386b73a11e6b13715648b7bbbbff88eaa74e759596647f6a5dc2e2a32ef9f8c86d7ff8e406d20e547740b7ee58452926ae98dbbaec13aa4463df382eb3ee7297d75ceef29acb6bf35bb69278f41f209e643b19c7202c8edfa99b51a8cc35335e6ff5cb4aa798b8ee934b51c6dab2ccd66a36c8d6904022e9a75aa13230978b12c58a152cb6666be0cc0ad9213628c8659648db9aadedbe4e2ba34b8d1be376d8da96f8e12742ade7ab5cf1755968b147de0f04492121fe421c86240c36dc80834cae2d168a6ecbfc2a7b248cba628e6f509d1cdc95cef872325a557ed7131d1461cf94602d53ac2ae2cec655c8759a57ea0477a67e78df4b8dee96e01070088d95a0124a344ea788b813a74c70274e95e04e9c0a91c5a814ad5baba5ab4d0005a316000018100a07c4a2e12c8a8140d7ab0314800e50823c5a4e3838138742814820845114084118c03008c230080429c290544c19120020c8c4a7fdce21b783ff2137a8e8db44b663c22a0c7874a9acbf3d8b3a00c280807997437f791c9ad21f133c9b60524a007cf733bbe381b6e23f0a52cbc97f2d01677496f92ed5478fd5e6ff76be4d8be3ecd21edd642a971778d2d9eb50175b408cbd00761ca591a5c2895e0d3a07c9200dac4ff5bd3cd11648bf24840991601b2e7228a2ecc91f82a4991e089fdcb643d35533ea4cdf3006e40f5065f670d88dcb7436d5543ae5d2d01f00905f03725e5d3f9e96d829292733a2cf424aef91f2a65762bbe207f6e7c414259162a20bf5a7daa50eef6203064eea740723607809e61dda492c1e6a087d2f00f2b089d21aac1bd240ebf463ebe2117153b6e12e58d65a6fb12639d9b6b75c52250eeb0c718bf6e98ce26a6f6cfd87e9e8b7330d0e10eb2416457c22ae25b60c7210c42fbbbd9455e78526c5bc5dd9fc29daa675c3bf87dc197ca800d1a3faf383fb482366e9ba6871d8b7b0d3f0ccc37bd5983ed25e2e8d3e4c8ca3deaa035c3ae93cfe2303ffa6036ccc24acd2facc6683cb871ae63cc1437a95f6b971a4f90d2b82f19a41908d1163bdf3ed852fbf225f86871f2882cd72fa1d66ac5fac61463eb477fb3e145742900cbdfacfdbd6ec7593a5531573a302e82952b5621931b48a82538d13e52b0324b26411da1376aa6b143e9192e1e17936ef0efea0c67da3105772056cb347e5be50c2973788ee0f2e236a260f11774ae8935e89f752d23a40f5aa73aeab07fd905e96294310351f444edea1ee6deaffd83f91f5d10cd2a212d19e5acb0b57e99c4d2c0958b64bf1fcd85c4a9b2308f0b30be4675737c9e273a5f0679b8827dee02491f4f5ebc51dab9c0a931e0d5fd5dfad4234a6a1ceae6d15ccf6673246241a8a25b1f802aad64af4dc8dfc91edaadd90294efcf27cae1a29e5ae2265d0ddc407562df3d9378e1ff7746433afafdac7c5caca7ce3729a34635ddeea3025704f161498ca91a8b857eb782c224029abd621d30444292b5b5a180ba8da49f162f5a76795a3be4323b372b33f62c195e4b18a0f203b76044da2e71e4acde0512beedbe97455b1cf79ae86bfc80b12d93d371849b6ca52a01e2530fe882d6b05f22181c1ff508a7f2fcc7371baaa19843f3abacf47a85956f98b00db4672c4c418b9bde252b245122c5936652dc28d364c082bd422a7279991cb171a9f0039a9b39ee2def7ee83d7a3daafbae2c8ad35c4670f3de64f71951322372ba5b191fb9e46a86ed7ce1a690971674e70d81f5de82b3902655455cfe7398a0ef33e51a94a3f4f65654f54f7cdd1ad8203773a9540391c987a85a5141a5d7d68aa0c79abf8e0021643b23b770a6b37ff7cd8b6eae8263e4da7da95892ccbd19876c29531698adbd6c08e7d27aae1c7aa669b0e919b0c72760fb903f3cd27cc8668ab796098b29ed32bb9808b89dfb7882c4697dcf215de1ebe076fb8035e741a8364d3549b49f20b66a65352d57e032e721b4eaba4fec9ef847df3fb56745d6d7cfb44a3d0a1912b78a3cebd1b7247193d7e32e30c9d8093a23b39d4916563a2464ecb1ca04fa44dfdafa2f430aefd134fe9450a2fb1b66c8fb7fa2c1aaec9b84b70b0010c45d261b88d9e614e171c994214d3b6ac791a17e79cfd7daf5daef7f61751b2645328d4ab0d1adee4da6ced36f4ec7417880631f249e176fc220ef174086e77bd90824dbe4e970d830be72760fa10ed6663bc664ceb345ce329c4068663880c8067167b54d785badc3a32cba119766aa63e5b571894d8e72abf366aa323e59b54caa04ce4c448f121aad05e209331f5a6eec0786e2d888ce7206d44b370a4bc30dccf104aaa1b4dfeaf8809f64f8b726e0b006900d80acbc098e4d7ebea4d4802444d3cb8cf642b28d5e982a40bebdeb050eb1cf559a7cea17438e289abcbf967f7f1267769dd694f8cb19417dcd59ec4b3ac447e709e02d9439b36912c4839207f39a49389e411da230798e8c1f94caf80937cfd01bdc45321f83070aaf98db725bc1212de01658e60b37c0c1d481e8bc0ee4b05ad181a704ad017055cf5e54034cc5ab9a4cacf84d545c755e74a788fbb6663f68649ebb1276be2bb827217c70f07bba31f496b39efc1ac2a9f7fd2d0da466de5a67aaeb41ab186587e881f72a71cda5fb05ab699b8564cdf3e7501ce2bae0f449b61185870753e58e8e326591faa4acae19b0bbde6924b883cef0389e46859a6d09b784bc3c0d41f95dc85a3d73160d0af54868760d9b9edc39a28d665143bd4e345d858e6701883ac73d4b4bd774e504735d0e79122b7155d914b64da46e3578d6a98093398508668e7aeaaa8d6d640c0989401b4d28ac75df7841193282037310aa12b9360ffe8bcf48e848fdc1ca5da4510b6496db40b64833d5818b2f08a89adb03ef3a980b6d9a510fc99a1d0562704865ae57099094d2721cc80fc25db8153db8817da60a68e393b45f3de10b727ae6efe86c09752aeb8822ff1dd12f6497b6d95ee68b91eae78cd81b792fab13a243d1c45e2abdf8d8c22318c4eb7cb90c452339e6dabba0cb4e9cc9269c7752ca06cbb46ea0fe071564ec208c112362f4c6cd29497f7eb6721f5e57c57969b0d4564b1f4283bd181380edf187263b17ad7b70bc385c8fe5bc713c16f38d05668448498e572e91658156e26f6c010f8570f4df21faea24661b200dd3037ef8ab0d368d5174281644c6615ec4d2ff3238c762e090cfb26b102327a31a445956c9925b9230619d8251b3b884e811613d55004bcde4dac847cc19b3e54271322e5d0001085e0d307620cb18c1ab55e6cd5090c3afff2850724ac0e7889442fa064a447b9ee6f24c9baa1069f3bebfc534cf81cff8a2efb82ee1f07a52c5afee7950f7af6db72de10ea8646be8133a7799813860ad6d37ef0f10a032033cf3fc1004bb59273bc638a4836463310eb18fd877cc9f8372a04876cd99a5f2f65ff8087a2e8db58b3eb4ac3f109d09e4f12221e85773b2c51e4466f88b1dcf0032c2adfa6cd9870a8f4d3c187a7c16d40e26f1bdfd92246d1e5b215209c71a954156638f6354625051bed999f8c8f64c27efa74a4a46f2be28e8734280f79e52593cb76a40ac16622b7221389b4ff01521d1aa8216303fdfd6c0a11e0a3037a40249a59e2c6a12466235e63834c39c07063a3ad3a10431221109a50a502f16018bf0b67cae49a65c5576e5c61adc9076e4d2116184c9cb400916f781e4b7e3512b2e144d26ae365c389e55f030a08db62d9b0738deff8b6d873980e1e862c07537bc43368fd603ee8be03ed102c9545b052738c88905da204ed82ff880818c66c3988e0a7da400c4f0ccb4635862e62634b8bfaa88e979f8e1e2574b041778aac88a757f0e1a416f81e305bdd14c1ce2632821ac8ceb206b26808ce375449c5669563ca446921f8eb7fe097d65cf7a45b32c403893c505fe4ffe4dfecf0110c97bdca4dd6ac71153c572881ee79ca4cbb1fd925579bfe2a8dc8c8d97319ffbcb190a4e9845bd0da333b8680d8f99ee66577cf20fb1328dd968c662a3529ab8f620327bca685cad8ca1ff793b6ba16e24e53356a3cbc8ad7c4ae561e6f96598d0c70e8df65785724661f0527b0b56170ca7f7126b83ba26cdd9867d31378ef3e7eb0758b3ce4a2a58db3b828a2bc44b78e84c2e1cce63a19cf6c2e9dc229e3c778ce0501a18b8c69a69ab4af7f2d4f0bfa23152012c842f775ba08715dc49a0c215468dda33d271dc8073e13f9cb11432e132fe27e0f53b7cd60b7082769288bd2d7c2731a5158b0f4b34cbf16aefec002ee3845486d96da584e922826e2d488fede6507ed516039f2f84852cd265d6df16dfdf8b8eed073f16c5d6e3ba8a0054283d888bb18e3dd909c8fe09456c46bc6f521c98b9affb2cd4f9e3d3c50af56c10a3e45949d51ad4e9d8b321eedb6a23585f267b7ba5db41c3b7e5bfb240e9fa8dd4c4708267b9fa16d1c608f441bdffacbe1a2298686fcf35fcfc27dc48b24adf70fba47f4085c6d9fe3a1212cb6addee0444b2494c7cd105db2f82dcfa6a20fee71d52a60e6d85a25fbeea5749e289c3b9ebf160b8e24f53a1a1228292f255145fc687350159f4c8e73c974b31d4b8184d51f98b0c0515bc4cf793f28706dbfaed8a6c4a188dd254d5d1fdf3e1926ab834ad3a4ade655b9722793d211d94f9a871a3bcb57396820421899c0b6ea5105955bab5ad4916823dca7424a13e943819d99f9f736ef4dada028b3aad1fda4da00b74d14b3bf5dff2ca66be50a5246582783ac765a4f95b10a0f8a9883813e919d024f225150a3e7658ae027648d7937c6a7b2e62622eea2803df1104d34bc63cef127f1baf1cf4620ab7b39d32b356b7df54ba67b8179f9b2a17dd9349220209df1bad232b33046a3ff0c339cb5c76254a6a5b5ac438f1408fd3189c7906027b44a00d91899d81f816cc1d874251bba636cdc6f15695a5371329fa86ab30b41f28bf4a3c55f00c1d96e3a830136cbe8110eb8a8b9606a4584c5ac378275202dfab7cc4382dda55d9f01803b0d8db89e24be62a7df04c75f833cf9db8f9479af8cd0921305364e55ea30750be678c2f86f5406ae457098070d12828b39e7327071a0344a090dc119607fe963845fbb347b9680c313af4b1dd7e4fae90d14c5e8398e4ff34bd27acb6b7f1c5be78c20bab215a14e5607968243959d65eefab80772d1bf492d9c4968129958b4ecdf56509a2c1d74186d444376f40d8c1abb302081202027fb43736a983297a7a370866017664a97300ee00b37c2fa60d5ff7c595a734482813b25419c7c14b12510633ba57c5a7f58ac04505348709413702b6c5f47c390ef1fbcc15827a1f1a8b5a1b90acb10b95bb97e69e777d95e3c2e39e40b0d3f4987dfe2fd5cfc70700986c2224becaa6d7103eb8445587f99cae6506b114642c6be5b170a9df37daf8e28f11424f5259b1e40b80375dd5cf08ce4cd84e885bded8eb6870adf8b5b0007f6330e6db6a095744913f940912db88f7bf70983621b798a11cb85c315c6f818bfa3d1e54fdc1b830e0ab5b1145107327abfdbfc399413d1e4727c31b619986c888aeee388b519aba8027adbbd806df191d6bc2915ce4ce255ac32cdda00a856eb8d0124ed23567233c2814bfb1405c04f6f6a76a95210f53dc0fbb41103a11c0dae57dc6f4c846d6982b9df68f1589a4b4107dfe1a578608899de3f54650fee79c9b1621138187723f61a407ed2b91ed99aca1d7b2f81e14db9f463e8ed1eccebd21be241a3081c285e2a31c27be5061c805c3563807ad611b7f7de240df7ec38c50183574af99239415e0aa1decf4152f5d003156c60a30efe8660dae5d214a2638a6d4a0f2cb2ae43e0814608b4e48037df4979161a17518cb1506107827424074fcc94f0126c296f896abefbe0c7a148c81c8e1e168c61b2c1a65a8d66d9a8fc136af7cbfcaf311136eabfe1bea7c70f63b493a8a56fecc8398a5e385f52899f9877c5be737ca5b3b1a4673b3b2e421ed5dcc87ca69d83186de3e57a20f6f8a07f75c60c25e0afb2b14c24156f58dd4f3bcee75cf7926de65e10b127905c24c33a9fecc120f45eb1522e45541e315f4b6790c1569d79eb84ed0951818c9ee802a57c867cd6f7c606bbbe09850ebdfe452128b18b48b83e50600f802c19cab56ba66a0b676b11a73b308b82b6e3db5d698c5f2290a18b3d165fd3b6f4ca9a586bd9caa6b5966b7b61402fe820152f2a88a6f4dcc0305140ec6683589b57a7117f141c6ce7fc50e37e25310ba8cce287046d393177d475726742b4a6e0c85db804858001cf2d0899aa909df8313cb5b91442882aef4e99e346e0b7d8ec6cb12ef9bc3f5ef7e33b616916bdba47bbe37735710e7b7cf1984cbed922e9104a6aa4fd6d2635d8b87aaa04b3c3b1fb03ca0aaa1279c2c180b19e077544ba2351fc45c76173cf52a577cbb76ef908614d0844cd5ecea25fa4993186f70dccbb8e2ec024b0fd6de78231460031510aff8ed4334494af1d4653903e2916317207e63ef4e43d74e5e6432bce40e03f258f5f689a5f98e9b2077fd16f44e8369f35cbdf2f7aa84f27fad10194a0c2951f0dec8924e04c90a20aaa001a54cfb3f74f815587fbc8c8a4736a6b1fad75bc2f5448a71887d4d0672ee6ec60a8ec585497fc99fcda4e5e773d3d66625d4df53b083310f11ad98fa088d31e9b0955255f64f29d2bf4b8f960ed22566405678f8f93b5f46cac51338be232bdb322b904d2360461b981300ea9fc7c72dd43e0acb4b8fa46553faa2343c5ee8cc1272aec1dce15827e31d26ea00011a04535d1f89eeb8250b92a996f63e4f1b458fde1bcc47730c65627a080a467693eaa3a8dc0c673e254ec7afde02971924721cdd6b8adc83a5b7931a59c8b85f9448d29e61c80a0705ad76a82e1a3f9c9a958e7dbeab12b4116ec1a97034c1e1e447684ffa169158b1cb80bc6042fbe88c0cd0f9ddef726785834c64b75e84780c138411a82088c08124885c4733530c51a9315241550827710e2f4c736847acb4ace95715bdb7808bcd7bcbd8a76ab84d40c5069c53fdecd95b9636133ff1a659f46715814174344a4947f6f144e3bf2088527f917a14d56632309c9c3f00868e72b11044c324855ef79f17d54375f0689faff1dbf03748747c0124d2d3f0eac36fbd7c1ffe1dd908948ccffd81e47e49d0252c2a96de79e16f20ac57a79054803688fea9621894098ed2471d9807e1dac26a7384156cbe31c3766b17875e7501652eb2edc492e0b271b95f50cb22b191bef4e0ed5af613889bc06183d8d6baf853953e663c54f2cce8de6546dd2ea81feb8d5f26e0b4f3de8bd7690ddebe6b00d91bf44d1f7efe85b61dc1f9f9f6c791df683a0757101915c027b74f1099ebe33eeb1aac21482ddb94f8fdca9063c2e32ffdc0973d81b49dbad5568cd4b9608cd7f88534510bb041633436834ce02f8861e7625edb4e6b4944a922a5eb476561089ff1423ef67d3ef35490fa167a6dcc810d97f78d5633a178a0ada482a60c0a28e057c0e1c8fe1ac33bef0db30ad5f101b98e0b9adf3877f4739c1f7b10f30a9ca83143174a61908a96a6dcb889483a1ff9e332bef7d3f097c16374fd6546f7c5899d2ba69041e5dceabed4d59e435f7b2a21ffd845b597e324cf0ab6eb949595fe46e1ba147ce0c645707eb3f558cfe46c36da78bb124d4d9349b32a07a8c4e641cf65f2e3640f1e799a42cca249cea0631bfa89b86678b90b6b24acc6d18ba0829d949163138663d9bafa59842ef7178eec27c00715c1ee1cc1c1be0b67991fa471407b8b7a6da3955a15a496675595e28c0dfb111384052a65fe0794e39f52f40eb093c8a63a19a0c2b9e0bbc6b784f00165ce25fc799133c0065c6c76ecbd7632d407ad8005c5da8ee87ee7d9e365669bc3f455bfaae7b5fd9117ef60b28e2d86fe09e86e824dfcb946ead87dc6670e9d48b21ee8d19a97ea32dd802d65da2130abb6eed9ab8a839abac3eaa4093d95b03cf195c36d76206c3203344d502c8d69933ebb41f6a8486e59930031d3b00b46145820f7430f645291a5614105dbb30e5cea0b2e96fe934c9fe50147d21fe574d69791337e3f4c850c161e84cd0208fa13ba50b9c7552fc6f2137268ab3425fa5b8f943fb9e025678c0b96c36e241d5b6e5068381b8c59d420f862cfd8628cf1568523098c2d25803f309b1a0dd4a01cada8d5bcaa775031e0ca7e307ca29e43e7a3cc2be87aeb4622d24c4c8f971071446e1f50941ef997a537447483f6f15db94794ba6769f42aae66a106dc0e91b6ba367fa030d872f3d43ea58ec4e52253f0401d5ae6abd0d6d53f65f0e4d2a5b64d97a0d1fd54423633e158b9d83240f5251871d16bca8b3160c8a7a9013d87af00d2d331586e35e5e32f982472e09b3cc24a259e0eb4b34ec926c370b03a2233f38c4dd2fedfe010f1cdcd54ae41b2c9c47517469fbf158d87eff0b367b64246caf0876e93fc834a5e69863bbf876dada35031d690946fea5b5652060891d1dcd93c459b452a7d866475fd07d74fcafd5b6a0eb8ebb0c6a8387d25d41aebe02e72ade0a22219c2bde22435a59ff93df9078fdf42f4439cc17468d0803109e5ab4e3a528323f53535fb31badc45a6e57db97c5874359d78040c1a57de411ba3c90f1261a30467b828d87d24ea9083205f9440b84e7f5d8e98af948e527945b7b7fa9be2757c89f2f0af8693b214dec245127fbed4512543eab5bc5ac2094cdefbde7cd04bedb58983af3de7facb27fdd30d82edeb6a37f7d178a30b789cd0d41930583ba0a79ef3c8859d83aa3286c430193438309e2a40dd518d4514bad4d46bc63eaf265e09684fe3a95b847aeb7822f8ea67089f3e2e1068149f1acb9bf2ea0d2a0dc9d1c743911069343ad6041e96f625773675cbdbf4fd8cda07dfe20bea0167fc31b0a3cc74fd06e72c18f412d769540914cc207100c5b7899d13128c43d829ce0e237b710245ddcc28a3392e2b9e904e8c4826800674da36a97803dbe51725ec32d997024b08d954019be90eb4cdcd44c3d551bf001edb923c676889b7f419605061edda5b84d5437d0a21b0737016349b08d80f0c7d55af1f1a04e671865566f706fd083c84943f40e783a04e2fa9c401b3e9c928330e7b123dd167efe63f03ca791e64284db2862badb30c3607f2d8e8b9fa6fde8869910f4a37eb1de5aa4fe2482b89b111505bf6b76d18019eec2bf3778634231e1d328ce3a568e79480876bef2040b7f90ada3c035bb51fbbd96db711603749b10b88305fa55e5603598c1c93d06d380d79eb9ac3d2e7ef4d7cf2e6393cbe402757ce21a408420c9b895a289df5ba52dddd70e267f55f8bd97ebee46e56f75e336b155f0eb9964d6e75128e8b23a7c9c7bf588effa93698d2ef79087a94cbcdd619ebdb8501a3b61baa26f835104f60df447cdd6b0f6f29560386ccea4845f8fcfa274ec8269886f62b57c328040061116a3e79082543c263b8e61df02233cde51e2dacffdefbb0d1c593eb4594abacb8faccd2631482b1aee8b19fdad3a96962a8c668a2c08d38d4989cb33ee7418d7e2cf64593a124c8eaef305631830a21462413dfceba929db23eb6e2e89df76ed121c7071cad7bffb8e7b3451a9b2a0ec9d555b273cc29e07001366fabdb5012c2545542b43686d88af0ec0dac61ea4d4dd1cbcc991afba3d906abe8d56b7644fc428fd8ef7f4d6b0eee6b0025d8b7071e471ab96edd04520e2d63c3a0ba7d5c1d9f724075f47a452c06474c16104e6f275347a31dfc05cb40020d50cded9bc5f5ba0514ad77a3c94cdf91cbfa14fae71c06c4bf7f62efb5c5a32c77813ed82d87dca2d60e3e7c2b14b5284dcc97c6246d711a6f09bc359ff351f591f0cbc09b0e8f8fb35ad9bc76019f64af8bdbe00b9273da438bd11ebdf484b48b25553c772d64d58fb406028e96701ea4b418f5097697da92f0c7bd5a9db8b7b8fd9bd303c99d72f8dfb9a1b216452db9fad442eb5b770f386596e2174d2d46cc67ccdbdaed172659dbc709ec2e2170a71e044147dfcd741994394bbb952102e0849cd24790f078b52a9d61d1b485be31ef9907f2b0edc1f4236f79432a48dafee8290e7f4bfff40286601332488a581be2be8fa8dc734ee0cbe3537b403c83d093ddb077815c85fedba6af06266c932f0927b78c4f3a23a854c49d6090b70569288c9ed5052b6ef68781e58dccfc4e7ffd37bee3919e97c35029fd5436465a4f4dba16eb8be616fda8afe0f4034c2b0851b6b40843a263a980a2bc903ca13830261ebc1a90503f0a8f21ebf710f06e722d3614510f4c683c69174492c2f9c64b3f21fe178af6825899412a0acb645e9364054fdacb58b7aab61b86d518904b37fed42b47b9d356b296987a5d6f447e831ed43848fc90ec69889da0fd4a9f1b98d93fd49336df82f641fa3ab58b249adc38f00947f5dac3d0e3e4a7d64afa0cef266e40c3d69d89c1e8ec2a1f467fd3ef435685d1b643559853837f452835b6856675fbf0745337b9cd1d56be75897d0d539e6f61f2df7cb033e94c25105d162baf9abb3fe534408d480b4bdb43c84398378a478d67073a70f700e07211626c2f07c69a47fe2dae9a4626377772052fa110b6315179c4f514bd46ac75c888e0efca58590f7ba807d4ad926f4b561a9e682acaabbdb846d53dbf7d863e14b3b2c5e16bdc70a1ba6d5d1bbacdf4dac252f471d4c8027464231c5910a545a245ca1ae5fcdf9565b5a4728867140bc431c542749c58021675384ee43b1def8c136c3c3e27842c5b9f7947841dcf67c2798c52a558e91e5994b2ab2f11942f87fb45dfee50ec09d6823d8c613e3689729f1b54dbe8d6aff03e2c2e705eafed41af897e1cb747ddf4614a817915d3c098c033f0de80ba5e65eb60c7c6713af7e05216057705ae0a1668aa22101b465804a950f5266271df2aaca420243b54222f0b3c3862387d61ca2341287d4438d3cc63e2224c1d285636cb888cf7b5aa15b03996eaa9b02f4d56f0f3e993f7661310cb68f40287a31e87730ce6ed20c9d566a3fcd09f93dce9aca26c9dfbac029b0f0c100b164cd4e98aa05ab4eb0751f63622d12224bdc6501bda2a866023663908cb71fd713ac042664ee9ba45e9c40d2135d8d31d737e573cb7ca637cd92df5ef0a8bf687ba5c6aa77300e4efcb465bb18040f7fc9bdda27b4ad1fe75b1264f23241fd3fe27d7817041eeefb842701a7537af50a9edf645aa79f1fa210e4b3788aabf61a8cf0c72bf2e5e1a8f0d5dc3ca4bd529ab48ee9908d7da4bd18ef1311efc66b2a92ff6a80d835cae4bd2e301566dc2bb7f21f3a0f282333283b0d611193538f65a6543dd2ed27f95a8b71d8e4a6370c0b8ab7ed2b510b8b7549368e4848acf8f75ae9a983ee92eb8293b1eb307c78d210f59e05eaa0a726cdc2fc0bfbc2e40a2e0581f67299e3537d189d94b72c436ad4507db45ac6ca794d17893fadbecc28eb16bfdc6db6c7cfa90f6d980e6c63f75554079996a652feb55df5cd849d8811191f3ee334a9405afd9d7ea11a7e57b992ec8a3a1ca089e7a53104d69ceeea8f79f818727f9c062e894a102b92d1b12b22131d9733fac7d41abc66eabfa0b93c5a436f03ee639d9e3fb3e577016bd67fd72c35c5b788685c96173d3a1348490118a9a43f508eb6ecac59e6c04bde6dfe85ca476562c3da0e7a1bd820f462ae47f59f19d3a17948ff096a99e5b91c9fdc63cf032bc6606ee457d593df89d64c8b94c4714e0a231b0544e8d5361e3d8e8395d50c17ce327188911ed7775647dc3a6f1108a2ab347420d599dda2a0dff46aff3da579a807f20c42cd8f727a7c78eab6901aed5e4f53940c9c50620714047cd3b81062ccfd0ed757bc05864e6c61cbba044ff5e3bbd787d2200cf5b4d08005a5c20fb926a6d0988d52ed9682b9ebefa0f0bf0624b91666895dddf768dd2e64ad8f16efdd7fa3498032a4f5927f94227188e4bacba50a894b08d4fbd8da4782a953fae43740c385bc31851ef0bdeca7cfc9ec4c50f03e05e80d6e766383b8d558aa9405ff646b4e1a2a6b62468edd28daf56bb8f607832a5b9f0d33b3e84baa4cd075c43651bad65dac5e4e846a671fcc9db3f721c5d5a4140cd16905248bf4ab8c03c5595ba73b4b2409631801cf907433e661511bb0224720eaff335926cfbfff8d592b4976c3b2b00b878330731b03339361cdc96b1522772a51521c86a6f0a54d6331752b19d4ab3bd795d3e31c86b86d40ffa28d6d755431ee80f6148487d5bfa84682ad7260298c5a6aa3557940e31e3859e07145f56ba5af411fdfc13077284337e6cf6d6a63249b7ff937da259ef563a8d6416c97b52d4e7a8c7d52c3713fefa2f59c4097696e369ae58cd4cc60ed02de1b8fccc334d8747e80f4a95052c226060ba488ad9a014425405e50d1aa908a8042055d0d8f0e3137bee2015f52d0510100d2493b8d7b79bc17616c1bd87c1ee930954aada34302b96467a33e6ed2c0caa7c1ace14074cd16c73d38565c96bbdd8bc624668f1363adc46b13b5c9c676a335ca3d5b5dd0dbbeb5816741c6cb4387a35fb2179c7b8c2e50d673be471b287b73c89e95e5c5bc64486834f0c33c143ddf0a951286a89b213a6ab0ca6192f7dd93debee5a3b351c9a94fc431eb86db8a5dd07b7cc2195be4835a55c4e5730289cc54a2aa7f200ce22ca5945b7a61a72d0ec51cc683c91bd02e81347d19351f4105e9c7f0652d1ff6223e3305eb4951ccd3a381ac2965bd0667ec13c075387d2957476493480369581e8abc64aa30940a2bc7c8e45ecd3e705ed9fbc8cdea375a79689907a432d3facfdd4af412c21f77fff3a3c1eddc98674865713f52a54a2122d824d8b4527dc86944156afda599ad8c9163eb86317896771ff1ddf8d95b406db25b40727320647b5fe51d18ad9c78bdbaac574d670453802ce6e11f58426a400a32a9217d8bdc4096873dc0144e8c37bb35c759c987cbd2e4818befdff9c52c88b0aa36aa3ca8a0fefe2f1f718952a0a4f4880d35d50936427bb02f2c2a62a25d660c4198d714828a7e63dff1f6c5f498414a1b2c120c88b7505577cb1964e0f946b42211436bff35765ba77eccd8b1b7949b977a36ef8b2833c6ab9e86221e599e05bb580bb6ed3263f20b70339b44816b25107679aeb3015266aa52cb7195dab97f0cbe09646da5fea8362191ff087fc3e66af782fca71663ce1d078193b802979a88986ccba9745db936c7da6f42a69172438c57bb4558dc7911068b1e0d51cd67d822cb3d9c5f1e0da75676e52ad7b045627c46ff3e31a30a99a3b8d819b94a318f102ddc97c73e8d822786035a0937167d0410494bb166a49569930e431a1c017f4bb318a80e46ac75e731905710344321cff14a685f286b94c80b3d33d5bebfedb84e7054098712a188635a40260e3324fcabbfdecfe54187d851ba3676d1349804e190aadd477892de5000f22d3879332772ecdbcc1fcb449153abba88842bc3b6a84fac5e27d1bf5af14af3677f15d7917618f76a4f87dceeec3be275184d0abc1cba4220f3d58d2892b0acf311caa007a2ab4f9c02694635ec3239e4bebd2a100ca5c7eede1cc52a6dc0639624e90ce905adfbb1d83340d42a3dcffbd894cd9f206987afceb7f349163420f8d82529cc4b757530d41c9383b2f3144f322139e70c7b154e9c4e82735ed5bd44aef1c9e2ca2f85807e4fd2c5960eb2d353847c99121e814391f3c7b75cca58fbe85c1f6d365f2796a12920a1d00cec8174c1ea5cfc172de8d929802910b24469c8c56e5d02892e448e5d4c6465f1ea1bc0ed6fce9816f9a25ee149c5090848c24d58a5e5c0ba8683dcbb25b6d4768068f6d80f832c484040fd8e5da07a3c407004d33601214d052649ed4c2ed7e1fc4609cec804d131c2c3a10bad9a674019564099da519516a8506e57aad97d13455a3b175051949f9a1f79b0c7412437102cfb742ff481cda27279dfb03f076f95ffdd905dd9d6b9fe797a77d9763fd636dae78c7fdcc42e99ed775181fab384a3e36a930a9704199cb656f84ad844e5105fce7f79726b87615625e2ef10028349b4ddda0016161582a610ec401bbba7e58e85b1c5256c2a79b8d154ac6a168b1b5e9c8cf2b54a86d5b20bdc8d6cca36be93e6027eaca5abd462d4d1aaa98f991dafadb8acca583a70d0bb23f658b120b14a5735099a61c674c6238076d6767c0ce3cc5a266634b5943f5cd3d61fdbed3eb15c3ba22308391cacda918677639a3785f35b16b3f6f42e48542bb2994099e045719067b68e204aad70fae440da178be06290a3018a0072b256471add8010a123855b174ba01f959c4aac496bf809884243655c30f610cdca43c67dd66c7bd1937603e7427edd375e851292135401f5b9be20f9724bb56e7e2431ea2d67db2e693dd5887ce5e84d72652e345382503b4bbb59d860378f420f538b0b0f4323dc0166671ebd71b786bbec06a2c54fb614ce05fd0ea8b3da8011c9683b91e8093a7a333da5015cb11a08cee31e7ca4fb4ea9d9288d11b2e34353485317dadb95f9513d3eb84d4f5026bfdf43888918b3d0f6887d3dce2339aafd5d99c92cf8d7cb93b88528064d1ca892c7358be6270c62e269cc00c234998bf7a9b1d74e3b745c76f4d8e22d4bec4f9c766ec43b8e01f9a65b2c77d02e7e46326e2a451c4bf2ab86d47e40050b54b65ef06f22f88a424c640a8c721a123e59bbca7512390bad3142123ca7afa01dfcebb9c8318753f6ecfd5ffc052beeafa5770dfe1392420a9550da810ffc69a1a5b3018380be1b126d8bca9be72c54fb78365ccc342142022d00c786585ce502954e53803266fe8553460f1a06546103ba58ea7e55208c71950e5fca26bdb5c46ba91c22013bce9941acdc978cdcd768ecebd9f1c55ed531985dd3e4e4826be8063fbb38c1f0020efc2e4e3f2f04e1bba0ec22075e85b5dbb00932589028a1ea5bb237d9726f29a54c29c70766089007d57dfaf4e9d3a74f9f3ebd42094380a2438062661078778f4c93c4b327516902d8e005c10e206eb77b31b6d99ace11731f2f9656f7fa4bfabea4990b0096d2ccf353c0c9b3eac8a5a8252b974e5b7f72d9bb2d309f77c7e4e9954b3157d16f1f399fa094fc2b931aec5f499f5144ed57aff6072aec1f7ea0c2deed8a38d33ae5bdf8e1ead1c737afc92a57f6fe02d6b1aa6379b73aa5aa475f8a4e2faf2a48d4800f2ee955dfec51efe9cd3398fade58edcdeb0ecba194d2d9dd3d837b9035ee41d63825aa75d3acf5880eb4f3beea79de8c86de0dc97ede3805357194acaff3eef7deedbb9e89e9793404bac69255324aa75bf98969cef3c6eca4af456302daf0f698e85a2b9d73de1cb694e4b2775e97ab2d1eb3262fd0560eb2ad191e992c37e8c044748864110393a58c3796850b78274b5616221e946644b2a870e964a9112221f485c135399e9f355258baa260d9ea82c1dc5f5868c825c6df9d82f1600ccec05f0e8c31adf6bd804526276061924b3c23746fe02f8f0c0c5a795f58d48331aed930b6e12d7876860a5f3b6ff0accd875569d807e370bdda6b3f1004c17b6ff855fb1e4d85b55ead61315051a9eb15f1d37eef3bbf6f052e7f63d2246b1f5caea3d2249b8461d717bfa47d097e39fb32fcd2fbf2fef7a1e8a22b7d34221ad198435004c5310c7f16ce6e9e41efdeff6e33dbde04ad2e48af54742aa7e7cc6a717372586ee053a4889a30b2116c5c3d9953860395335d743e13d0e0e5cb4698188a3ce9b13977d250d9c8e1a78d9843341c614952b1f8a8138674d69cc322fa410afbbb15c010ec24b576ce49458e1c4ab388591b03a539318fcf1100c23cf741cda5d9548406090203c365091c0e87a35326e706407fbe0bcec2af8bd25901bdb92e9ccd2c0d96c8ae333b3038e3aa7155f58c8be65270cd5284e17216360b5bb3868bab0aba17639bed9f3c11e614dd64c118d909e0acdaaf364931f0ce2f69967027314193d60f9c5dcfcec6c0b13be6e09e9de5b25b762726a4c57bbdbad8a433c6d8d898edcb17eb7dba6fccb39d4961cdd8d818a5d101af69f27d201e67f60bbadd21b686c6095bd364b72685b1b1b1ae1a40dc27262666a353e6743d1fc3e47fad7597c3fbc2bc2e108d189fafeb2322231686863b141189a1875db3d97ff73f7076ab207bd4edd2a53ac96fec313c564474548836164e6bd5070ed3e8ee7cf6e8c983470e9bb23bd65a6bc77a9ef5becfb35080584b29206b290554c7da313a73e4c481f3c64d1bb231365d62948a85ad5193068db59402b296524094526b2905e401aceaa3b90bce34084156db805ab3ca8d764494565b41aee0f54067d06089f440c10c8aae30d6ad4557774fad3b704f3553bd52b075a8756ee6d5495e3bd25edd5f9162e6457321cc6fafd9d86cacbd5c8afc7ebaa049ea155e9f4b11c874a936986b09c00b68b6f8ebcd02d51b67644a421cb6571cbf4a317ed0ff82f7de5bdfa3a9a863d258c3664a352c8c4c415869bd7db6a739d01e69adaab0674df2d955d911dc63edbbd3af9f67ed0751b68e50503b3a462db594d25a692b5c6ae6682cf16cf5284d457d3bae70a95c69a53c2cae14e727d88e7000689283cb12b85a3b25974bd675dedb6c94524b66cd90e5dd44c15e7df62b96c59a6985553dd30aab0e75c0d7ab4ee5e1a97e872661a93cc4086aad2679eff7cd86d821f3c9cbd91db6ca7befc7b5da41e524ac0a2be4a80a84c35def5cd1116f86a4ee04e1213fae78f8c824ec0e0f318fd09cb5b22a3a92a7b52ab25264653e95453414d100769921b15633412097951d62afec0fbbc3495817ac0fcbc35a15ed6a120f5238af593dc2eb945c3a8dc8eb47aea00da0150f41bf697ca8e4dee5f9b43d3bf7403079825ce0961527016a7588f9334b37cd2f411bf2fc067716a8d97990a2287071f5880a725bf508fad92e5c3da2daae8d2e91df95e270381c0e07dace2026ffe98f1155af1ef155285a5513dc2ac12c6016a21813f4fa462229100d586692e0569ebf359fb8660e2c3397e6835e4465a1e763b4b2d7934e95feede4f2484af3c0ab95e68167ad5bfa2370389c47c5226a8526624c9e7d876df2c4f2d9089285ee1564f7c79f179111dd2c96b532c99dddb25c742944a6a3cdca018ba44b7685b0954a2c750436e906294c4d0de04d5365f23ccfb3b81cda7eaf668e8ebeb03f9931d8bf71189cf1b23b0be888441760f1ea223115837b1b080c02bc77b43b10799638bb9b912d65cb35c91a15230f15a4303565414d060f35018c37d4009014e603cef67d64608ebe60ff232fd805201e75c1fecd85fd8fb8bc78b405fb1f69c1fe475bd8ff288b1206a291ababd954371d61c10037007bc28c6c4706eee9260bc80ce0480bfbd7db473bec7f7405fb1fd980fd8f6a68128face00d4284c0e170fd2092666434f78d76a76477647677c30e8793f220e636a141995595d7af07ee2eb065a524db7b9292edb1d830420a6118e46dc135f79716a0407896fb4beb8e569bd98705a4e89d8914e2192d3011092ecafda5c5e58e5a5568b5cb078b4cb4b4685518e7fed2d251077fc8fdb52b944b5b0c9896270c5b93058bb9bf765da11b1ce6feda6d19d94dc939dbd74e867096f45e216c94fb6bd7e32b843de4feda9df0a98041e41171e02b0774836b642e124cd3320b836959b32af828f7d71521b9b481c100c8fd7505472e7b0736c1b4dc5f57a4b2136e924edaae52b6d99e0cfbe41217ee2973e6ca861220340480351544aa8f0f2f5e61ee387dd6d6ef7e4e75da2f4cc73186547e31739ebbd069204031f37c157554c1979c646991e18d9f2660742ec5240991ad19d404d2f9635b7b8d3c59306aa3e639088b8272a46acf134339a88844dd9063644b4f9e3277ca8461353cb08a10b92294e7052127d858c1d0101874feedf58dbed74a466c7d0fd90e238ca1e9ff4c3b67bddab8323b4cce5479e1061e783cb88272038d0e1c85b4d0a5eea785d03fcdd89c466e9782f127370764f87377778f0d98c20ea468cef7e67b1fdaecfde4efb507de88d478be6d7ecfbff37ffec0318da4065370a994e9f098ea12936283ea06016ab892c64d55590d5474fe3d51f0a21b77acfe36ffbe27e8a41307124d6c3f820aa2b421e245e44c9c276332aa54f1e1a4500f4a29adefb98e650668939001045698225562c8b0e5050356318899f1e22407132fd384f09c70c317ae194192800982421c18e0d818a3238e7f7ba057cc0dd8e0cfb62edebcef7d786f4c4ab7d9df3bcef77e239337929d6da5d3f3b5c2c2d69a435bc83401a16b86195e5d86a404a2554eb821073a87eeec78f4d179981b804c55a903e58f1a0128e93785b6d06963c790a1243a22294ba8984885d132a29b8fe7db3e7ba6370733bd81b983981c52c492b43083c6559142810ce530b3a545e7df970da54639345208f569d96613b37e4142266c8b913184b84e50a305e70b10266d8ae8fcfbcae92e2b4250106b42e4881b277c888099a30293304274feed7f3fe0cdf7461cce89293b4dd29f692a25c125539d0a38c20219181d5f0cd588fac1c2173678e4cc40644be7dffe97b2d038cfb34fabb53fdff33ccff3e67ccfcea750483c8cf0dcb1e1e5051a565c7577c4ca863741063599614ae56a6b09b574aa3c3970837f4a0a6abc41e385ce972ec9994244f044095448e7df17d0fc9ebdcfa6d9fb25e8dd7b4910049f2e596b3dcfc374c9527a9b61187e0dc7ae6b8a66a54ca4d37c9a4c93c4798939925051f09d24989313ae27edec24cc9831545c8cb830a884165c88d323052554ae74fe7dd14c9faf24037e1a4350b30b72bc36dcec5220c24647d698cead10d1fa31a546961574fe86c99f09fbdbfcdbffbae8125400256be7455096205c4c3850c161c5e3cc0c861a00c6900c77b25a0884874806183d6fa85ab041aac1a450790141c3c7069e0db42102c3972965868aa4d0dd3d820f4b6aec807355238a9da229423bc8584913a495c29b61cc761ab612c3d9b3472a508f38523ad08d14ae24735bbfbab2ff6c59c9dddd4d96bb7f486eff917b47cebd9494940cdd7b98979939ec60664edcf5cb3053f8cea9e695ba5556525357749008c0b6d8500516a306189e2d2b2fac501548060e127635f6fca04345640e0953f0ac410147d5a02cddb7f083853e6252b26ad0cdb2193aa8b878e171f2a2c7f4a14a62e30518ae1082d206ec4a0e17a93f81fa6d2e85cd5419acbe9c440113e366012d68c9e1861cacb1329dbb1ba18f34718ca82758c41c29c4860f1b39380edd01a2e5c20d4664d0f9bf3f5915229d98599c23e6821fac3f5754e0c147e77d668cd5806546579b3c3a10c854a8e343ca88182f126cf96013c80fd754138f518223543b394eeefcd8d16eaeaa602174646b07900653d3c7ea8a9e15c6e0d140952e57b850b9f2c21e124449a5608d8fab372bd4b052ead223062f51841c51a14538c5eeee12841afcc921cb1b1d2c94b9d181337cdacc3122a5c40eae0cefc5b8bd7db6ae6be0cf063893e5c7122e1baa60e9fc53d01c05ae88a87123b544ac4a1725654794345437e8a09ac3028c0a202e33ecf448e33e9b6c3a9180b233f25d9c6d927f4b9cc1250e57a6040e1cb5347b4fe96d01932c0146abd84fd0afbfa2858a9e6445a2df59f4b93403e1d8544901c992354262f0884144cf1a3c7eba8aa8d1cd3791a24fd84aa557395da709881005bbf029124a3042dfc4742ac009787e4f32dcd19f7b968055a1a14a4a4a2742071f555f5d5e4f6874c5b9a19b84b8e650d17345040e181d0d3ce64c5589654979121543943252b0ccd0e50526ba2abba3f152ba14bc6ec9fcd2f3c7d069e9f346ca0c4ffe042ac36750993464b2e48032c39f125e4c4cf30987e25fec114432700923b7f07f31b37d50eca6f91c5cc13597a2bf7fedec2fa6db6a73d30e4372239811c34dd695972c2b51368af0a9f20588102d26baf938282f1bc3431a244f787895d949d267a2305141ca132a42868cf9936c429491e306899ab21e6374fe24cd454581e1c6979bb01964f64459b121078a9938523dec187262858c94921c5e5961386fbdc2edbfb819012be8a14379ce3104d6ff852d93e826bf7923029af4afd6b3b52354373992f56c7309e5ce261c419d3aa514043b8000e11ff5a8a59552ef9c06be44bf00e0884c4b104bdd44ef933477e97fb5d6fe127db247d44c2df5a484fd1f787793d3dc97d87da99bbc9234e78d2349924b244992a48d62ade751cf3efdd222e16eea9fe576935130a3ecf43ad78c0b376ee614d93a62a48d991cba0601f2f3e349a13043de0782b60c9e79a382f4505326a40a4a15103ad396e19281215a388e10e28147ce05b9bfb868c937f717971a8a7a44671661f8810afbd3ec635982ec3f45f146171d35c1fd6191094a6f7ec7ffccb1d6704c24f6c9022e6bb64a3b7059ad125cc34e93ecc74d26f7118412fc20920080e6019e64cfe973ce39adad4db2082ea340e0a2a326787ea0c233031fa82a93c80402090824dff88196f704b7ae89147386d1b6e481a182e004039af92a755beeaf2d39e41fb3aac1f2a4789712b162b53ccb0a875a18c3630e9a4023de38a1210f1cb017ded82f1958b8f89721c721cfbf7cae0ff72c19182a9190477865d4b85bf4540173dc4256869475a9af524b26975051302821c3a3cd162042b4667cd218294341cb9fb02d6d2cd816395bcc6cf132fbf2d336582b0882e01dcbfb75dbdb0b9bbb88ab682bf7d7409436a561dc9de903158a13357b00c6992fcd6fb09bc61b769d017fbdb16cef2b7dfa9656aa468f57d10decdd3ec9440a1c140a5b003e0cc21f86e0f2bed75fdffbb282d05fffc5ccfdd409f65cabf7f6d6a2e7f7978ea4e2ed4fda896f9ceddd3a6962a82738b4d19cd2545252833f9b488183d2b1a3effd93dead75979a703361090bfbf57bef25f049c08e63eba0de9ff49a3634496194b5bd6a64ee12f7fb36bbd26fd14fbf8280662b962288cafddf34fbf5d64cb0fd76801d5bf4cf6fd1f56604fc4b73e0586b4ae7c99db5d125ba9270fd289dd76761e9b3f060d81b7a48002c9c41ae7baaa09c016d4506d9bfbfbdbbc3e00e8402934130f46072e448ee491c2b2133b6e2f0d1f57f8f06331f84f93d962ae6b703e6f78b309346c419dcdf2be6f7886443628b22e2a30a0b0d5e626541fa8d18312d6527f491a245e7fffea490271e6bcc38514305ca0cdd6cc14e95189514e65ce1a975ced92c0c67b3f76c7f1886e1bd6118de3b7637793f03c17581fb6818ced9f386a2f82e8ae30cc7300cc1fb611886e10c05d6cac49c5db13b78092798a76be4a8747b25989cb4bbbe0ad8bfbfdfe437399c228ed210e6d3cc7518a8054c40863c1f8e638dc1895256c272d95c56b672d965c8683fd8974b31974f67a68f62664a427e514714fd26fbb78f34164be8d8e3f77359e0063e76b018d2b167ca077e503073c4080f3b3274f371f3a1a4be34dddd5626e9b3dd2ceb0bbf6d96f5cdb2423b359f3ccfb00638603aabb757c52b4b3b71cb3d825edde46eaf40e83799dac2ca802778b60b5b95e9cca2b3ac969a654dd29f06fc16cb66d92b7ba468f781710f4571ec6efb1ed1777737517b26221ac95f82bf84079af330566f7f7f1beed1480467e00cecf076b88946375c9ba4d7497a00975de032fda27af3407036b3b6dbda0fc5ee0fcbcaa6d3444463775348eb59cfc0ff4e7cef015c6ef1bdfdbc775cf6bcaff53b78c121d05c05c476c41824431b415d741e830a72aa98d8b067f747e75cac84d510288b891d2c3a8f73c7061c1f48ca6ccc69d1681249c9008777316dd1e5ed0037d821a96cfbeddb2f5fd0900049b0e77b73ffeffbd6c24724157fc7d29f049efbbd3741bf9bfdbed9eff66ab6e6dd6abe34d7bbda8f1a07801ce27308cd9a1c6f7453480f29789450c953d54337ffe793734fd84ad67e6d6befe3a09eace12eb8790021b266909517eae8faa1688e2885435b838cd8c96188aefffbc93be154542e45107557782dbc112945978ec480b63693c0b3fd6ef5bdfaa18bd5719d12ea6461d14323cc0a4152e0c5c6141ba8e8a913874cb8c47e2b6580037ff7e9ec9b063e389eb0effdf79dc3f625b8c172d893bdb7e0589690c177f2c225ce4e507089319e4f4d1ff4c0bea0d9fe776b61ff7e6f6fa53ffd6ede28a2e8f0a3e9e4d071474ca12a6b70a840d9ae2bc914a12e3b3a7fec6f733ba1574b7861318b2d5ecc7cbffdb600bfb37bae4e34607f9c341bbb85f79e6f9da4d7512a88398245cf0e3967a450819942412c89144035744eb1caae20f1a3e5500c4580d4e022c3fa53a5f3afb8ea24acef7892fe25bc92de3e558a82e9e38c87e0fca1fc9fac130e0f8c3311426874fb9b67a7377aa331c9a86d93f4da067970695382ba9fd437a44ffcd0c35846650f1f1619193d9e4f446fe46f341a3d7ea3ef1c1add6e23a860a3aed526e9b4a6a5f0ece1c3a6a9c06ff4a1d1adf46cf4a18b451f3a09c136775c761b08a20f475cc101f80f7f7434969e3f842e8eb8828dfec31f7d87af7dcfa70f5ffbce1fc6d2f3910aa30fc0588a202a133d885b9d24d1db6e779244df3407e00f630b2415b527fadad899682c8dfe68ec490260ec308260f4188f62ee220f5ff4443f691e107dedc3da88b482f6b54741fbda4765a35b09231b7ddf3cd46ee1143ddc3a7cd38c3e2a1bdd5eccdc6174371ea2e8f1ad7428b9e8fb5692908b8ac0176f652d8befb413e287b77eda2d9cdd4a17b55bb3e14ca4f0c7418179c256daf163f40f57f00e124ab818db4816b58eb746e9faa74f13b3e784ead002fe3c3b8b8e285bc08c818141d14d1e62daa8a027879e1e8274f3fbd65b7b0d1492806b2bd9fafdf65b576f480d01efeb38ea42fa94e690ae4827131fecc9ce94dd6748b991cf26e1c57cb22d9860ff7ebd9900fef780fade4bc0b2b07f47a4f6ff6e26d4f746a4e6e27a3304cd97273762b0f50893468c0bca2e89ceff495be9ac7abaf613fdeeb281314dc4c8b84203d0219d8f8da1b2e70c10425370e83c4d0c29c821852d2834d141018b5125873240593aff396fb401ffce0e61ffef4318c2e5d38adebf89c2a24ce4a246fb6fb42fdeca9bc37e8bf48d5d33a6833f433d5967915340e1b7d76184b123ddad8159678db20a72e74f1921292f30072464ac062037c0a411e2f32aa5b0829d7c36d4cc39cdb1bbe972b193f5e6d09c2e179a8a7091d182a01608fdd9a2d4f4e7dbe6f7fcab240c8bdcbf449e374a27f727e579e3ca7d63ca164443abadd6fb2e29524c52f5d3681ed426d96f4b72a22217f01c4b91e601beb6dcfd9876e2430fec1f162979a079f01fa87059cb5dab555aabd56a6554b615e5399616c874dce57e270f50dc7cbdea2c83627eb74b43e139041d04c1b644d743147da0c2639981f9810a97f6c8a5a1f8f27c9096a26ff885a117da1ad2707ad84f549a2023a920f3fc599e63f982866616ed3eb0c163539324a9fdb0022e9d9c021658604106e4ad80c82572c923cb8ebddef12fad361a88175c70c1051a10a0866018608001060460aa45b9bfb4b83089ae55a56983a60dfe78fdd9cafa03a536d920c40621bc8c26e486c085c0e144e044f81051001105a023e8cf8e4cdfab32a57fa8f2cc53000314c0005ec1e03506703280d3f563a8aa16224488104e07f0537645881021e2004f7ec2ee6eca93e8a10c39a81c14e84574ff32ea018500280480b9bffc78c90818818011a20d22cefde5e7d699f20322cf08122348f8b1f2a323531bed6328d332b23c3d5f39244a9028e145737fd5c025bb57305f23538283121c58c9a5f8d5878997fbabcf91aa8503d13d01dd54fb587db9bffa5465cf43954bb1bff470e13e527c04657f1106dc5f780ce5dc5f7a76f9da1e519b240912244824a08323211d881c70c001071d98a8cd0e3ae880e6410734145e4de4fb5586954bb147748f68da419c24ed016828bdf74ac0660b82af0bc7f3a905fd869327080d27d3f1da6c3337bb7a26a80594c160beb8e6e45209ab8b8c5ce2c272594257a997629b98540fa5b198fd37c2f89e7e7b3f1b2f5da21534c18e82a96c7f76f31ebc7d825880ffb198bd37c278ba447f66a34bf46d41f0fc6a82ceacfd3a9f74d37dce0e44e50932920a5caeefe5ea64ad44c716b8b91576777711a5f4763757cfe95373e26a5e5c7a42fb5d4aef6724850911427040b8593f0421ba697a881ed16cd884e8a6192204d9759b883f2e2875e2da1c6b78b097fb8b8b4916b9926051a98645db7f71c170c59a08e6fee2b2caa5d20e20a0eb087d4219f1babce03e621cb862649cfb8b0b9f8f2bec0eddf465fd8bbba9bdaf94f083149374124ab8c00813984f249470811126bd17e33936cd000a769ac3e170388a6dfed73d85bbbb54e572a8c407b3866b4a50d9937ae2e6a47f27397bac2048ff7fcf27eb7505fdfb28e8df114abe1f95bd2f2a777d13d4e96c9c63a81ad92726ecb2b75ffc28ddfd46184bbe87118e2cc2175f1c613408b3b10538deb14dd0d2fb17f57a368c3fe98f6db48b04142316d72f7106e368aec46f61fff2992efddea5c041797d01eff7e03f896db82e3bd66ef2120a0a0a4db65e587fe6f583dfe5cd255416bb290c97b83378ab19cf27dbb99b4412610217a0f324b661b16b65b3a7021f4c4c50444f34d2b08e258c286b5bd068efd517df71331b881bcb175e6e81a4a2ffed78c9ae829d36368eba389650b8d958922d1a21faa639a2d1d6fe29fc715037089dc2eef85e8c3d6f7ead3360cf73d6af23520a06b46d000af885adf3eb9c97e6f0ac03f5e48e69768f222027d973768f21fce0cf603e70af99349f66ce7bfbbd3f2e975bea5add69205041f3249992e6987481114210618f99afc50b9abd155e1fe084a87c41a05162d60a2b0dbb7e6dda9c733ad1c09ef1bcdd07416bad9dd5527fb29ab1d59fa438f48828255366f294ee3bfda6dfee257d378fcab5a80cde2e0a1ffe29fc71fe50d44a4f9f762c6bd97e0553f342d0932c3f6b6b49b3e6eeeef6f22f71459b0b61879ab081c2e4d00658a214521367861598ae1ff7dbd0649f8008936c16394c603ed54cb2102177a6483d622e26fa5374939521f3c221f57b22d01c7dfb2cbcfb75446a6a47a4a6cfc23efd3ac2a0ded787612d540a1cd4cd866340d5301faa46020a7ea8278d800f2ee94a6fde57a413fef7915a7854be8fa2ff8e24f0fc516b671d8d804fdfdee837cdf58ee2a09edcb910b652d9e1cab1a8a1494e17543a9994d49493d1dcbd188f309b4e38c2245ba2ffcda95935ad4a9b941ab83ea5c2f44370aa49ba3851a20bbf8779d87c2a7b049af346f7a283a6fe45d3b9742f2fea623a9c49cea7e047e928f82cbc07edd39185f7bde7652639dd8be64670af39c224e7ef99ef82c8e8e013b0f7e0978ee5a405978e85558024b874acfbd58675bdcc0d35a514bc391d4cd64d3e3596d85b84d0c11f3c738be021d18fd289e0342649c710683899ef518017dcbad97b0f3e8c252cec7b0f63098c252cbe9fc1f8a64bde08a329d997ffb6e98d26ec9801145cf6ce88b5a34b49d19c93d1a5f997cc4310c1844e90935559b954872b0f2d90d58ffdefa374d7fb1a51ba281dd203bcff9e85f75f152bf0f1adeb9b3851e03efd50d3098efaa1e816df835fc5a79ec5eb7d37cfb3b730327d7afbeaedc5146d6d33a7ced5154251a4dc5022e8051ae88891c3c21ad16b8c4bbfc515f3e9872e620a6e07d4f122a9a03f9f1af12aca811f2ae9d0b77d419326d9e39fa85f820830116870f3e905cdb3d6f16f9e67fbde0b9aa7fdb74d0321c91bbf8e4993fc41b88d7cdfff8d63dbbe95f41cc9d839e9c346500a76d480d56087c921365cc2aa1db1520ec470d32bbe3d962e92082045e72da754da6ca3edfb465bb5b54d4b1455d7989d1b7ce48821075d00c4b880234d14212e08d1f9e37672ca00a1b0c5891a325f66580dcaba7343e73fbf649063fcbe27edc4fc5bda5af1e0cf259e8220604243c084c66006387009e0ad73fb87e237cd7f3c11ce0edf23d19068e3899969df9330734ea52ad3a8577366989233e53b863c11f5d79c1f577e64e65c379f763f17f3a9b4955d66cfe44319047ea8e8f10883e8315d9a1978d9913347a90190e0d2064344973a5ebaa277ffcf739924de3c00c5162078bf0741da6f41a54926915002dd89f31209ed57fad5c59be71b1e3cbfefcb9a3ffa8997b6f846a415f3efa49d98019e50a8f4edd65431e9103a1a0c04040003150000180c0a064422b168409e87795c3e14000c748c426c5634134a83710ea32888418610628001c600628c01c8d0116d05563411a2e1907304e6277886d9ac058af092ce809d876b23256696675275db0d1adcb05845e240914cf6d52663bfc8c31172ce85d025c4618c52e659545a1c483e1b65cca8e3a3c5d3e27392a79af9f3437d581e0eb43aa42805429dc4634d2fdddcf370a860472a005eba0cf5628af8e29003aca593252888ff2d5bedb143053c70735720eb0b646d48c248260607eb88c9355720ab0566b5644a383442074399365c293fc48a02a91df0f922bb0414f5f80a33d1f1934d2d8b34eccd57ad111a4165ccdede3fbe1188952109c015610ac4bdff4883bdbf581c999e30debea30864c1545076fcbd41003a1fdf2afe3f118148565d85b3811e0347af3cac1c05409eca3b8a3a99a3ddaf16cf8bcf5936e30301fd9ad95544ec71196551863c2d6c16ce3866af7e14b31d4845df8211a008c80dec4dd23d7cd393da9cf63c502e86492f54d8092f1d329f7df974804d826910f64acb8af14f32fb1edc045476cf08fdef812c2588265df4183bbe6b681c4d4368cadb7311c9c33a2ad8a08d113c2203800552ae745c05522d4ba8ebb55a8086af37d4ed7da5d0483502c64d6fff5268d8c65ddef755ee1755acfd84e2fc323b7a039f963867614c53b9277f75b45ff55586207f6175910c231e41fe02463b3433ea6ef3158d047c8f071ff022d04992f54045c6e7852bccbff82100df8de26bdfb8c38f8567a5e72c22e316c8c1d395c2e16cc4c230a882aa1bc034fbd3a27fe849db7e25e2db4e327e588de180f2c638b6299f34501c0569e132d1c244c6642a128586683822ee9854549983f3f67ddc7d3f541d9e53da28ee94c98b862501c04630a82d8fd1a7130f2b3ebb40d3419a6d895b1e3d1a7598b7df8380e177271aee98144f3f29014a0220bebc773df9c83cb330b111ec4c50c0832091c354d49e620d7c4dca83ff21fba1afdb6dba011a7a849de2d9f86a955f8e28d23c53f408537d6916c5370cdb80d2816a01241ee76c5e042afebce7f05dafa285bc8220e7ec3b2e58edc5a5bc0adbe8cbbdf69368e4c31a763d81b2b46bc67a4648d4bd4b73dbe092319bffe4590dd2af49eb33f34748300dd28a4aa39acbf9b0d33f05661b34a23bf71a5af94e6050643ea84eac41dc98a0af667d13a764b17a639fbee386e1ec17207e0fc4fdbb26d0c43dec57c152452523f387a5ac272060c230839a44b6f7584657f9068ff15e1aeadba077022e475bacfba7a59180c3f807c5d41efb70d923357536798845217753ad4153b600f05e58c373a72e29d81f884478bed83b12866ab5a16b54bf4236244b9209bb55573268e7946c5f74b15b4f80fa651ca669490837bcbc9a7c1e4b42421f1785ae672bf301d84e9eacfda609fecc51abba18c5cf8c0c87f9cf63c9b26d21eb88561b3f4396efb6547ae0ec344e089f7ce8fb1c2df0a6e227d1c3ca46a81d032e11a11d7990ef90abf1e19b42a1d9e6796244123fdb53ec8cf248967859d26929ea73c8eb6130364272b6eb04ce685d6db3871b05580000012792af5be9abfdc381b80b1283a718343d16d3ef7f3870fa8258265b366bea874acb304b68e28f6316a98aeebe50d411edf46208641d9951f6a3c6d2756201c658d8b5956d23347288466b5189b559d68d9c340f470c470d6fadab9fe70601a7ad2ca9f3137e0eefd551a74abd3aa75fd89de2f596370a1f8a7a2f048320f6c62a183dfefe4215514643616b4e6f9ee0eda3090adf428ed2305d3c2d4cfe7d81290d72e77d62a7f7978a9c9b51bf954b959ec3fa7ca2dcd5173f19ecc5fb7d0c434bb3b988b2c62c114687c032a88d7180426e14e8e6fc13938dbdadada1501c537434281bc168464ea0388c0c09dd5de98f25f0a02508ffe9ed0de85da03ea8540fd3d4e0a27d542ed34cc87d2c3e76d38558adf5472b3cd0738e88656761b07c1538bf02300079ba8a94c0d65a219c03ab658d9fcc2c410179ff8ed705d2a1336a3e177e3468d7552d4d55d0eb025a471502b0f40089508475b03b28c2346f0babcced7c5528bbe378021cbb2fe1a8da7d0d13dc7de1ade2f147099b2b931cda9907521d4d16af0617bbb67e4ac409d62ac7e392e6f1b3032f5cfcbcac1f67194bd6fdea36d2d9cf52e2168697c53e795f2fdb1a5e4df84eddefb67a6cc9e6a0dd93104428b22962b23f270f1c1f964d47248b2508f25dc73f0d03d1934db7020844cb62f443b7d0e8dd2ad3b4b45439008170b50eed43db213765c93db94152b54643b735801a6d17f1321045f6465615065ee74eb12fdb2c08ad1c2799873a7606191caa5e49d6ba9731db9e2fd7f481eb077cbb5c5a588d5c586b811632091179badc9d49b539314c69781dfb30cdef106d966949abaab94eb896f9b51d68681507e3c6f08530557db26f78460ea962758f0d9bbe5926768c1387b5af7fb1ee3f5e1349a3f70f942642c48e8897a5f57af2faf993688543271323bdb354677a82a1a463c5680587dfb98c683274766e5b82262f427a0cd258ccc422d2aef51f95dd97fbbe8dafbb47ec0c35ab2028b36bb714bd1e0754800c5a41c91146be0fc0d8b1eaff9f43f5b5ad3e9ed51a16807f8853d0ae8e3f4235a093e34a6ad7ffb55d2c10c5358df6418c592a7b6eb60b7cf754380ca49b6566d7c8dc6e0499f9fbf51b925103f73b6515625fbca4f51ce0d7fe8459a3eb7a0d0955e5b702de747d06d44eb63f99908eaaa865e8211a5e2e35fffc15e03773b13394c0c237739a5eb4be720655fe6630e1d39c0bbaab7c90735ed4a31805ad2358cd753ab455f0eedee4f3be72c4986aab44c693429156d9a96cbed7b3e809d8117293023a01b112bbb1dc988fb09dbba3f295af1e43e10395b085035bf1ba7443626fb816cca0d067e5177a65215662305bd7ca1f0afeb556970502793f394cc657813b063a4ea3e5fee61a83ac8e3d59a4796dd5b9047b2cb4cb895bf6b641e60037da6920f0822343000bb1119186cbecfa8a8cf01b282149029a626782a9f0324f6e25e942fdc3d6e4c75e6fde3f7e4e14eb455858d122282225eaf3eef1bdb21da132186aa826ec5190f3110b0ae1e615ed85702eec3a88324baec78c96c79e2764c7018c2cff62f8c31cf2e3611a2ac1779ddaf0777eb735269baf34369e3be79d598c4ade435d11dde760007d4adf411e7c1a79c7cb19b8dcbdc9aa08f0bb320ba5d9efde772c44ce43f870117bfb5f60f4a6fad1c397465f44c70cbd4cc59594075572922e75b75d05c5f5f685b0f401714ae63053cc46f68dd4114cbf1e6c147684b42d17096e39cb48fc81adad2d41b43d0466257f83625640b57bb512cab11fe1812774cd7a08e17266ab1c42edaa013230bd0d0eaa09eb857171c8f2886d34d5086570625d3989f6d6a4e411c3cfed666c246f0f1165d72d086c5d2ded2cdf296784a9b099882f0a49244497b75a80cd33ba671def9c48c99bca57952c661af6c677034355efa4dbce2de255949f5729f8a662c9849dfb6d73740d6e4ef54d1654bfe3db0b2f9a79f61617f7a18bd33ec742785f3c22cff6211f2277629b632102e8d8e1ec82ab231cafd690307472d4bfb0745e3cfb8386919753f27b318d9a26778874f1249d55ac3d3d67d7a43a0cfb9d840e4a3d028b440c402802c5f0aaca7c265af5ef3e48f06269c1e096fdb8a5c3c447cc3d28473ec1509b202619c30b775a06c0c50951c10d46b29267577a44cba464e92262e176d5af4ecc5c3bd9026a245497b9720771c9412b8558a70cc747052848de2abf3094631f8b8a91271fbb20fd1d21fe8b7d5803a600040d865b7d9ab55a8b1b3d03c4fae25d5d549873958fcb419c2d505eac048793f2e1397d727e48db74886e92181eb14516575f98553f3dcf87f7fe050b0e70b7fb56166ad4b670d16c18cbb89f36c98b1d897f6a9f80dd2ba9c165424f8f9bd070883eb0fef91449a40d379b0e36a48a1cd7547cf9866ccc91846c75e340e88f85ed697b4333a5321468ca699f87291cfd1c056b040a7ab44d67638f762562081f1771c05e304f284f8fc6c0204de3224c15f7686e56128696af1de6bb7924e49516c02574944622182817747b7ee6ed95d353990a8c7cab09b7b49dcad451f9ec919f71cf492118589a4bfe98f98223b4f20be539d69a1547fb5753d6dd92961623e5155632c5dfcc6af6f39fb57c88b7a0c1496bf92bc19dfd12651ff0ee3bdbbecad93c48f6d06b2909d559089108636638097ed5c61e9a3a02fd848876eaa9f221d1f444ea8da619f459f596f30fb06f7ca63b29699a2f4a0479c72c7df0aa3b2c38414c60d370b0258e56b7a6272b87bce86422c3e354643503700828ec08a5ad45a90e2cf15f5ad24d69e178a24295f163c2cbc101611415f37d0e8bf91c8cca1c4ae8231871f6053f148bc9134818c01059182337f3caa912a95adce1cdfb6d97d73f11fdb19c1075f33ec5ac597c80c3fbc3376af7ec113117f1055b6e7bd59012145872350b43181834ad6329386848d1d87669239dec5bb1a407a15097c55c90a67e0c5666af355b00f941ce942d09c7c57a4c35dc55107f13407868d2c5496fad6dba11aed1e719d40eea4ea4e1aba887b4c91f71ce2f3f37e1e25c33c09c0486aae0146fbc22b6dfc39a755488aa577778c6cde186b8276924d828d87ab1fbf3bd9bde30a7832d3cb4d491fd2a51ba9379e64f9749073e62c1ae9969a47688099ee916ec3c822d1f9b95e7da235dd2c78925ff6292fa4967257d36cbc3af5f30b461f3f351a0be50c3cca4db756e3ade6fd1fefd817cff57de537275aa9185410295a30bd412243b4cb3637661f1386926474ba6b417b370c02bb916e81fbdb70457bb9372b9da09f3bae005d384a9fbcdfc985f12ba4b0b5aa7a94004e8f353877e3a3ddfc2b944d5421ea65cdd2476f02b7f6eaf07719779a074be2d19ca6f7077c5b094babc84b80e56bc94483db70987476d598dc8db2ff0bf7e98e2be4b5c9579d7653df301b685e8e5551ab4b0c2e33d28b3ade61515787b324319d607fc83001d58da23d5a1f1f082c164dd2b97dd5ba12503655b42898f63f62e012a913630d9d6d2c68c8e16dcaa5cdf52ded12a37f93f8224f691d143e108903960861f21e253e5a8961af314a8cac1be983e263a785d9509dcae1136be16318a4a94cd2641651a625655d9d495616164a49eedd6ff5c05579b3ba072a692f36f5e537535a9fe0687ce2dfc8457b100b253ae6605d75ffd034b44a7a51bca0abb50a859433145293fd50aa93d5a19d29354a128f12df67d215382df0158d8b07931a9a79b4b4c9d1ef79547d951c2c276fca311948e6d4fb035c160dbf160ab09cada85f8ca1991160c4d1ad8b5607528768fe36bd091c36ef8cf82fce024e2c02b7be3eae3084c9d282e295478380bed9f5311d74a8f38e03f34024dc882d7c9b6f50c05a9ce0f56ed43c48f5f2953e1adcf56a1e8e7b4bec888f482e4c5c06bc2292515d97426cc7e055fe7323270889ae9a3093a19ae8352ad996eed1e64bc349d9400e0b5a4f21150b71c189ca2144f14262d1793bb2b5814b341bf965cf1a0cc5769c316a4a4c6a9e67e59a015935b4d7bfc712cde5217aa9a1252cdf055b598251aaa71c7a6d428f1b3c5d99ef79f619e1787c82b0412ecb57b91c2fa74644404c267ac792b1f65437493132efed375fbb2b239a13c8573b59161134e72b59d824c2d0d8cd2d22147ee51128cd12942b8c19b1cb6f061e749d3bd5d450dba29b1e626ac694c22a2a80838575df649ed407d5b4819d59bb2001bb2bf9f5fa854837d1ea4ed442be7d0e517f7d09ef0fd961eb5eb91fd12ea711b34a0263dc746b9383c02a64a27c3711a1a7c744393b30843c6891dc7a7489a0dad7d29a4f36393e1ceb474c222b7d62409feb7fd6039e0321c17e3c8c51ace9100a809a44ece83cc3eef9f8cd1552f5eca1911d0668c49ca88d32c63569b171bd2ed173ab65d6321d341634ed383433d678783cdf274c7e04fc9283609df8e46ec76fdee43158eb0293a8eefa563e0ab389cc4c4d021cb8681e8e6d4682f76dd8eb9818ea0082574b07041a3c4ec39168a12107e6dfe20b00157c7d8f5b386a41b41da961ad1014b372f379d10d4aefbc18d4e82320599aa8ccd49c872d0e5c8f2715cf66acca8d1b3ac7750f34782fb0c7b068e92fb4679c9f67e3fb5bd8db891051dd12553af6d28aa97973ba1eb2616286af62e607819f820a48f2994014e09dc41cf0f6e54136f90d90070222311f1d2ec4aa2f60a2d9b61e66dd312b612fe558d1d85bbf477ba90543ca36b3d4a6d2389c5baa3ead68f9e8cb2d6e3548531dd12f77577649026c010f14d7834f39517c34e5b0a925ee25060e0ae388b900f9499735f0bb3e440a7a2f311e86caeb5722875ea98f2674ac9296222e655c57b577c32550d3b78d77b285389023fa19d66fd9685357d7e0fecf336824f252450ef11d2a236c3f83f7b406a0b4bde41dca7c3bb661c8d4710db0ebe320d469d2ee4fe6e5c744458df2064b703d44acecfa54aea48fd849fd53aa0222b1eaeb0ff2bcee2c6c4668745776807408dcd22f8019e8c5f82d202bdf9f64f5dec535e6536284b19d80ac1b67b37293d909d3c84de7022bd91e8cc37d912dd6390ef457493c6dbb7a54bc5040e388c1c06af2da672fd927fda0e48ab8c0459108f3bafa7c58f7c4f96edb05b3627b8106ec931a8a32572f67510c0a314d47506d46d6b79b95c645274db9917db60f5ce09a9a2cce5e79a937a1e6a8f467559ffcf40880e75a14a075ad771b1aec26550e93336f32765fc6dda2d2443f41881e292ef524c177fb77031f2a051ced76bb2b1b825efee2ab0033c03207af20c2b0836cdeea70abbf1052bd94dceef311bbe66b005faa05b03e0426ab8eafe7e8c74fc767650af1578d423ffb919e9c6519e976a94cf6d8196d1285674ab49f0dbe4d630c0c0e15c24399e27041807721acc4e18d606b51a21e68936d5ba20a182c523413fd99a8ca6e2ab1ae198b5885e0bbdf2df561cce11b44361275d2213a1d30ea79e4cf2cec5743fba456156a83fedf4c47fb582039a799a7074563c0582a42a0682c0507e68ba7c854ae1b1ab0c6a1de9e467151be80ea16943a21e8f12f3ce5607eeec6f7be37424dd3792953df0de569422e9eb8cdd27624e517133abe561ff570b53999635646a21ab571102d33ddd7abf01078faf3f8bca81526ba6548a93ecdbda8cf7a902dc0e0322055ffe7c103e0f2c33e6a727dc66f45f5105ccc6548386f74f51c964a943124bf1cf8f81ba3da1bf089436f2c52b80071fb29c3531d1735307ba2a831d6fa25993025cb26e89a7d790b6d91b7a6baaddb6e54374a5a5ddc18940abd5bcb58ce6488e482b27c104e76734cab23e8d576c7d1dd7b4afa939696d4aaae7079adab8e9c8c348d743e2ea8cad04423561b7a450c60702a7449d1b0fb6fb0a27665f1356549bf5a293188b3df5b0dedb22e5441551afefb86991e80037a6b10331af74090f1e03831d76b32490d888e62cc035320c6835a091bf7dde8943de58f7d83ecc6acb0229c0edfa7d367e53cfbddbfbdc20300f7f927dcbefa42d752ebf822ef7035012bc79a6155cb6c7185b5a784b78b240b4f1ab92f8ddf0f466c471e75f44a44e1d7c707bb45b3cf9eef9636212ca55efc7688b6c2fcc51737129972b42a9d9ea3276c51754fe94f91676fcf0dd30564d14f729369fbcfe4af970ad4c4a61ebef702955b811a58f39e9b09cc60df4446721441a3995d7484bbfca4922a1a374440b98aac62bd60e7eb980768d6f4a8403b3dd318b23a2cafd70992f69b58dd4d809c1bd64214962d064529d2e1d9551408c5952965e96e80715b431d362441843ef671176222cfb1f4978089a3903177f041153397a1f1a6bec941f70cff906c424b4fd9d83a914945103e57a32c47bae8e4d0e52cb8ea31a856d5201afe8b8bd19e99a2781d269045258e170e9bb79264842e4a298f29b2874e08c1db4817bb934c37f1d538702b234a42cac0f64930b0ad9332c26cbb49c002ce1439584a739e35f080b6c74cea4044d0f108867bb4b851aa790ad0b3ae17295994f6e717508e5771aee88d0a6bcb2b2086c42069b29da4b28a0d760510d3dba15e9feafb1ce75530c8933c892b925561b670c7dd275eaa869fdfb9aaafbd5810faf3e4d382a764f8f6b563eb3ab7e41ed1892ff530f5de6921d951ad8cd8c18ed9e711296651de62ae773bd51069ab4f29978685173a1f0f148c4d54f202e6d732cb69d1020a81c2537aac335cd932ad81525cb51f5d2d27b4d6d4cb4a5894521d97405e422add1c0b27e67bfc3fd4691e511bf8c145c4f5b2a4f81aba5bdc122c667b99aa9701c78c9baae267f885d0e50015812c0d6acf40a9243664ec505ec656ef914e6c628c8ce1a8d6b9ec199dbce64ff1fe1284da362bc50dac1343656ec2b78a531ae6321b3a804c7d8057e1435c4baa921e6bddc5747089b18bbbf07997c1da3c1d6c762151123a5e009abdfb882dad5df5a6f165d8cf64cd7d2842a029bd9f2e09d7f986f1ffe76b431098dbee177c7d0253df2252b0357dbf5dd6b11e846cd7ddd1eddd8327e32a25c3d634eb2cbb257e864dd189cd303fac98bfa314f694934080b51dd3ddbbab0fc9ea20a0e59a738307d71b2b8d8810389f6693af485274d40e6709bb186b3e29daf8b29d53abe7cb77f1c7d5881706efedc92367db41dab190fd2ce16bc5a9dd4e3b3b3863f637d313decfe54a5c1e917dd1c1fb4b48729bbcd7f34b97a6fe984ae681a857936dc827f9db6c6c64b8e6a6c2df63deecc029083f89f3c41806d44631fb291d5d4ff0391011f3c87ff3d6091e937f9c4f133323c01271306156cab39f5711173a127698de4c424e884444c4e5744d0b6599fd6907df69fd68d32c5003c0b450c44da6924d02a8189bcb7c2f07216f391185ed5fb4c39f9fdb1e01db09917ae2a1454564443c79838f9775f76fbdb56bac30c650240ab072f6bbb3a1f8283242335610a44bbb5972a14d486106ce6004e378249017da19f445113daac1d0c1dc6757c542f101685ca549d6ce77675929d6c2fbe90ca194c69ea2fac000ed8a49a8352c835ed2b856e3500c392d4ee1af2de484e04294d33265a2db1bed24c6ec798fbbbcdd9a452a5b3f379802750074758426907a295f0afee71070f140cf6c09dea025ff876b4e86c4fdd0ccf983905aeb241de7e97103f674682473592b65bba0fba885c5dea288e9c32f397dae8089702e1d5f5e7e7095c9948775679f0dee14cd1c5e618f9ae48f48cbb1b531440787e71b560564b2c77eb13c2474cb8611d587cbb93935fc24077f949d39631f1c680ecb8c181a35d51db610b50dee730d7a9d340fc4394afbde0ce78e84ab34d19eb6732a4b1e319fb3719bd9168574e3c2b5793cc21e9359615e6e22e0ed7621bbd045107b075bd1b002fdf33bdd89111d593360c459eb4a0374a1078a7ac17a0ed57293ed95554c6f7d80ca90186af7acd3fd4a52a1dbc13dcc5a2ce1fc9734123a24928181d87ca8f4e29e9135eabaff7d837a3c932c0a402b81c48c9764fdc016c7c1c212c16a678baf44a3c960232f39a37a5d849f48d55ca8d1f988e6f0b3b8d06f15196361ab55dc449599336d30dd4900075ecc5a5d4d987f20e6f3ff8b0eb8f5d619c6912bf24c292141115782582241b1af834d1ad585f5233ab9d7d9a98669342c418d1c430947cb5f5d5ee03b09a2e1f6feea9851e8544aed7efef7b77ac1bbe39508dad21e9ddb19745d2a1344939afc8e0e9c79989f1e3a0e0f7cbef4e8504e8f92d873e9869119b22673e4e987a83ff9f81b47995c976768bce63da03971fd9e9b24b39a2beff02fc186d346c9ee764c88b229ffc89fc1da831cbd2586fc6d3511d783ee606086b6f4018239393ee1984ff2c1565c2ab6d0afe1ce9380d5e3a40122d129d0586778815fea1aff8225ccb1b63f93c892e129ce78a2f8710e31a7f71bc71c597e90aea6d1bfe7fed5481e9eba1b724e15d6cd6e75142e7b5e5b5619644e89a3f6d1f9e5e950e686b762fd0af21f64d92ec9cb7b9307b7ea65d419f9ea15491bb1dfa4e821164d06905c02c7e73f65a34d2bade95b9dc0c61c256b5dbb428ed4b8250ec324d860d1ea4ed7e3522ad537629222e054136f3837e8f1c3ec9940988f64b0ac9a32af3490396ad49c64726f3a163a3011d2b1964b924b21ab990f701e10b3f9f8a66628c6963ee81cf62483501f058aed67643eda2b1b1685e0ae8b66d02ed5e988c1f660d88b2c8b944741ab954c76f738e19d0bdcb3f4f5d1f200738c4bb45c7ed67bd690739ea1a3555a2f6d44d02ef12210d1cac7fef7d7c82944485fd45249e3e42faf719e250923113f9bb0f762ca16d9e79e26d1224262c7155206aaa6a2cfeacea4433f8092e88356f3ef950b5e597290c1631a882f35d5d7e60f7f2b2e498ea3358ae6dbd0ba4c5cac79640074e2a95431ae2489b097c57bb4b613c3a8d5a2d1338a6b3bea7696a0c2fd3bbc06ba1fd96ec92a968bda94e4b933c938bddf1da7d107d00b8b16aeb64a6e1c2cb7531496e23a4407bd187235e4fa97266626d02a8a2191dd0f6b20464b17ebe953a3befa65bbbc7a4fe5b4d9e8e4693ab62e7b5cf4f93a67c45c3b6b899bd5553839379994d49dcea5b5a816cec05bc284e43971d4327fb5ccf892d7526cf86d2ff275a8908c2e708ea90f620ef1f91ae93ed4c7404c691bd20b73a1fb95bdf4897816d8a91d2d16d5ae71270d098aa906e627e60c5b18d7d27afe4e956259237a72919571b80b3477cf33ee3085454e7f8a3ca795cc29cf9e8a5a43105988941f43651e1030426bc16bf97673a0e3064ee6eee8cf698a54adbd5831bddfe737d03dd82c751ab0702cef9cf992125526dc821b9493a7a31727019d2aa0da6f33a8ffe6e6143e12df62901df0a8b3567969a9ed425bd2e927652db08d91ad3a94354cd180e8b68ab219f6dd7296eb9109e487e4fe5a5e78f7453ec7b18690d6f84bda432ce8d4e239a75c50d470e47726bb8b8ddd31fa9fce98f115136f62709f9647e833172385013a8de7c2befa4292a62e2b090b9b9426acea22c544234d60855e82bf555535617c72da3bae6a7466a3e7ea649ceda6871884a91799b6aa66c67993d67d07906433abeb33b5dfb30ff536fcf670040d20c9f7f75b3f080c51c8bf4289dbcff0207203de18867126f90e171997b1b264a3565166384e33d3508c6cc6265440a6910f47a8734dedc64062587f84d81b2a7660ea50ae2ae9df65af865ff17955750e043d7c2e5fbabdaa15b208cf4d735f9b436f0aa5f530575eb56a5e3541c7909f8f833e1c3aa5c60a5644d653710d165e7d92bcb2acae66c95fea77582e3d90aed1330c7ed251006b5c0dc9c2df45cc08f024bdd5f2c964a16b404470ccd814b210b54c1683289f8028008ccbe57bb45fae325a688325222dd8c6ea5d1cbbd3372f48907ad09d36d2971c03c42f94c2ba16eaff79e09da14eaa69aab2dfc0275a6a7119ecf6a493f82586222a492a94c84f9b82b449359d371a6adfa2bb1e5d2f7f0cb65c3e4a98b9a5b2d8477815d88b16a4bcb1656c9ce257a87a5d890fd51ef4ec62c40ea6e210781db08bef2a689aa1c6028f23c1b2a86e1f485fcc96bf8e43ce06b9940d9f4eab0c0a80ade8a0e857748ff5c508ba22df686e4b7d7cf9d4ddca721fe12fbf75b776c28968d2238024db9ccf211fdcfede9a7a744f0be32784715ad22d64a6b541d73921545cbeb398fe6d64f8d16fdb923b5a2f3b80a3230d1fdfafcb6e9bd249239d65f94f5db42affd8512cd8285932c439ece3f3b3db5935ab3897c9eb7a1021617c0b3ac11fb017eec7f473b429929f8613d633307f7c44aaca73ce22b33ec6c0ba03c06892595239bdf09397bf10ce8da2c8bde889630ae8a067ea504a561192005a215feac6733159f0a835f92ff4aac5d7e3b3ace18744bd7f2d47f3779c91065b09a7ba65655061d6aaa9db027e2f4f08b623af3509cc8190e2e6dd14d41b9e2ba7561449a9781d4110b4d85a23fc176bde5313a0f320f2dcfb04ddd55ac59173abf0ca615ca044370e7970e41cc97f11301636889ab79d05a08f14059aa0092fc03356c3e808b1d88ac2e4d02d05997fed5bc8ddf3077099d20f21882b594ffed26e4d867794c6873237bc97d28c03d9b9e0ba021adf3c05fa1636d0f61ecf80357e9d0f8e477f46d20743df9c91e397888f524be83611d9259612cfd78326902d2f3567c1c28e681879c514479d254f1a4aa2451c88ed6e71752c1f3a4e781b81c95760c5cf6951ebafccd24a13cbade851b72a31d0b235f8c1cf85118ea0483d1a97e4bb050670e62dd66a64bad8e17c77393e8a9a3db331448a1cf05df6689f2757729249c344caec5753dd8612c0a673766a90a83e204d092ab0eae2dadb20ab2534743b8a22b284d23f4e2e41bff66903284897d7e5ca7300c4f081102dfecb7a34def249d424a7b38b473c02405e77eb11752b1defa7f96278e41345492def9165e4ff49353977520bc3e6fa8060f6d3e12c59cdaf378117b952b46271d6fedacb92ecf0d35446261885bee61b8fcedc51385c5e3ba143e4fcf6645950a54351d7826914f41e2b9da505191322933ac15b340cb35b1a3bfea15015e1c01fda8032b8af094934afadb73a7f547ac0f82c2948d543c43a76214e3dfb92542bddb40611ed4021708099a331a6a4a767185b2fd113f72a92972cdc3e7e8e439761db71757fc504d9a07e1cf1bc26b73239cfcad17d54379a72b8a8fc94cad13c5c013ad015951cd8bb967195c9e19153d2e3f6a59725d12e0203d90607622d6fb30a023810d8b5aa92eae0a8cf87dcd8c7482494cd453109977eb98929f826054343f9d89391af0a11f97b6d739d7dbd46b4674444e3ee15fd4944c54ea4d5733d2d733eb567662fac854bb88f8c9646275c3ad6de3b38b09df8ac599837d88f283e332cdcffa36ecd1691f8355a241546a74d8ae6fa875910bddb829fe0f8da318250c7c222356eb409d20a089ebe6b6daac6b3478635a2c7b66a6bec5c120d744b8f3c36daf355e11e38e47be0d1674f4a75e1b1039a06485e5a9192503351c6cc7f0a6bc956cf9ed91b4f24df78d6e7ff5533f0d0e7b327e289c0ecaac87d20d478107124fe5e43fda8737eb3d840b4b06c182d34fc2b93f1fa034ee8bb7cfbd55eff9b0ea6e9d0fb5d926220309ea7077004b18d2abc62424891cb10444bbbe6f307d91fcba7df6d03b7dda05bb08e6b09ec561606baf5ad9a1c2ec9622101784521a4b43d3e9ca7b57d17de8cae071fa3ede1ccad22e996de1f74aa3c73b30b6cfd759615bdc69bfb7b130d355449e8d7e9ea3dc17d3d5f3aeb13a4a6b2ec94af049447dfce896ecab91a7f655853e1d4410b141fbd731aaa79df45159d8e43a4f8b11641d3b82829d04c9c0bf9fc983a63fbc53f927c0c71b9607bc5703f0d99f3af9a706c61829d47c9380844a20ed6baae9da8f0f99002734ff40a8ff46df6b8c78bd10f19fee5de277d4fc0281ed8b6fb77977ca243aa063032f87442e7e26925b199430265d0ce0ac52113fe5d351045b471331a2b06bce234451f83e221b8e5d5fb2732e2323e301d3b03c81c38d355275b055d24e9e37f9945c953a7b6879234e3c67caf937861bb483e099ea301c4de0fa25ad9191b2ba3a142e7595a204b02f6f00733f7073e1f005d0bd43955907282eb189153eea5fa6b645095c94d83e8ee8c2ede9d2d095c2e816f5fff0a0c50b9621994ba0a3c5a3d89931849e3c79a8d1fde1a37b8f0f1561c0e574948b4327ff3cedce327972a23b215bcfa2d623096462156f29e043d0388d729dfba2a511966cddbf2311214b7f89104d3ed5090cdfe097305aa1a238d337bff7e0822046327b516b4901c89b0771e46e91878d1f8429d5dec31e2cce21eb768b1d4920e0f713a2c33bd499e2b3556309c944f8d2c09298102fcd7179768102b81db725f32850b1b2b811aa602fa85150d7918c084309ab880d8f3b2aae29528f1496782005198cb9c0d293b1a02c40019e403e2d249e5450a83be343ffa810bdf4a3589e44edf1879308571cc159c6405cb28174d0e5d409055350944c49ea4278af8a981db15339222cfb1e281c330edd7775b089d84e5f3665a7c809aad7981d9ba264c4c850181d3fea5bfd53f53f5c48a4ebec73f7d6cef5a52490d82936b0a59ce7d731945567ec72e919837cc257696840d16ca96ca5e6c6964b4c6ce48d9d6f1bf6b83eea22cc59eaee2ab3dca054da77e82569e93163a26f95270241821b92a914fbbd2e25a3d75ec893dcff87973f7207e671496b1c8f8a745bcaf75baf50861b98f327e843278b5a99cd4e692c7bf6b983943b53b81c9350320b9d8a097ae3e75e7f8d322fc42ddf93f456518b183922c5327982ee65dc877f6f5a601b9ca7a596c8983d61223bb5d6b8c20a51df2b1c9305e99d3a02823d066e8af9c31f5829187047e70103d7d6e6fefa0088484430203db08748e5bc4c2b48737dd9090110a544259e071a32f947037fe7c6e30161738fe803f7480f98bb8a13b652183eda1bcbf57786b2f14839df939e648a3cf4c184232e4f2effa8394aab53107651d186da6ab68394f8300db60aaf88c4b42caa937eb7740da75e3978db38fe4659cbccc291e4c7f3a87e924e8f32dcd5398f666dd6088e76d8dd0d923239b1b5d6a29e77ff31c6d74320550ed28f399c67f2c50aac1c63d655c1b21a840c54f6378f667ed90155fa2962e9943b4d3753b436b728c1c233c6debbf69ad02a3be76ddb7a2977857999657254e570efb6d5894a975bc29e3361b08dd52d9945ffd2e0b9233800d1102499fcff73cc7cff292a82572e055a93e0cb80537095f125f5b031ea58caa21e2ff703619d549842084d00691ee19c03261bbe35892aa0fe3e1cec191f89005618139d658fe926a1fa3b2228651318476319c4ef63bedbe31f2baa7d68686bebbc4ac732c0d5d783e5f6e22394db6d73d40781bed6ac1f77ea4593059076b043815f8c78087a34bb9e5d7280c16333cdef760346aadc364613acb11b1a4153c18c164bda13be3667f355cbca0d713c2e6c1b08f85fe567dcd360487d943b99f21d62625e016b44f5481d3efb70204f9f7a52066663d5e0668b855ff8067e9b44abb96e0ec0b98da3db58185834a7d758421b0cfd2945e4ed2fb439ec6db8b1670037b10227412f538fee6babf6ca90db9c1eecb039c69941441752f2859b0223506e793188375c564deca8cdd24469ea68186a660406a0e49e5de86f252aad7ef89bf9afa544075a47e634dbd689238be2b46d8bcdfacf53be56587d0a88d0799c957698dcd4074c5c854faac48fedc86c57052b396b9347fd063791113d98d7357b0040b13a0535f32e136c77fcf3327c1d552a6b2a1e6cd49d27e1b720d5c319ab0c9619bff0e3e5c452fdfc5c3338568fbc0b911b4dd3a76dea63f4d18c43e6deea5fc833d498b91b5949b68e32b0b5070cc3cd676eecba396b75fc26dc24c8141a384ca26e13f2b018727f9cdb933f43c21f8bee2d2ecb45dd1e4c23cf6d8661501023165e909bf67a03c91110adda296bdd66dd72133410735200030b51b4200a99a3f727b070680393296b3933856e91a60c93d02b8001c65f9243dd978ddab72cf84db283a65d1f43e6a94a8a3b7e91e2499a85aba046bbf1b07470c93bba8b2b2acd801885385d69624825afbad03b74ad258d3d5841d48612f637182b051508ec1536fd78f50013bd616f318a78ecc39c468fb6fdfdd2f9c2e57726c0690516677cfada87376e8686cc0581fc847cfec89477c235c645a6f46e7d693604c46904efe80ff83cb9e91b46d925a4e4c895b2ffe4472b92b150121617c05722253fa6b216783b7e3179cc61b7813cea7b13672108b03c5f3cd62c9ed0c26ed83aa458cbb7ef3313e6e4064b17bd6906314b18c43e00a1d4e1c6932a4668208345cda93951391f3b85f02d76597c2f4225b57c81249a1c4acf2acf9c5da79165c22e76a74ec2b5e938a0caa357fe8a902d3c146070ea68a1b9155bce158b82c86c1fc0153bb15ce89edec02bb17ae5dd21c86363be00a25a99f496a3640bf04915d5099e42d16988749e77363450ee258b06d630389e65b2cddfcbea9b3e6c429ae8fc1462833ed719d12040af8265033f436b67d191fae5354c1801872f3a2def16535a454f62790fbc9e44e16c8ade68585e82bf3fbab847a46c7f895a693e11379d58ed55f39f14658bf54002b7da8c1c42addd072bc61dc972849feb4adbbe792de188172dd1d986e47adf442475781deee350849cb3f7bf60170433b972e9ac5aeb7de29c3f572b9a5cbc4ff60a969cb41d0a13e92a36d06504849f5c06683ed3499c967a2008b5a5a99db50e7d88e2a4923aacd8399b485c5eb87df0553ae36e2770e84df0fa823fd810cc37a4e36c314edf73fb461ba07931900dcc4787223c1b9d199df1c2648160be83b6cfe38b6c1ba59344107833d8fbb0fdaacae655cfd034efd1c053456316518732e3c602ac0d9346cd84285d913990dee39b6016a3558c507b066ac017378a77d81edbda468909d01768a18010d974e12b1e798d18b597c0969c649f890560b9a565e812087e4b4985e4da88dbe488d928a0ae9daae567a21d88486ea439b9d89e35d0160ac48653648330c8ef06b9b07618df63b44a11ef8c052e41dce4df1448d06cc535f813f6ac33de34cea825acf0f3858b660d473f3e26bd1de6364aae43222d8464455372fd4f83f5b643f2d2dd7764824d6dc40bcfde806fb6f2ca432155da69f8b00e512b6162b205d01e0865b66fb5fe5fff22aa50d9a47c9cd2a0a6318637a4867402099b1b48117a6dd42a9e07a6ad61189c06e6f21cca64e6534dfd3662a58335d4523ae8cc40a9337599b82f86fd334e5f2ba621907231849a367ec9cf8b237989064b41221e9a687002aec36484657777335099f1b233a178bde7b335c4c6a1c1c8a60e1bdadd1fbc6b2940656160e704e0a35b312184563d36f938307802a1ab5dc2c79e3db730c0a31b52f3bb6611838c913644d2b6420a09fa32de997aba93170e857706e443cfa0393057db282f648224101a972a5ee505fe36d80e8fefc049c557ce0af136f3a95deebdeb8f17469e0257f7ed7f8acff1cd4c78228ad7a3bf2721b222145924cb3d2162c3bc2ff2e6406d98aed3d329c4b896483ba78c795c758a52bfabd2ff5584582436f8cf378d2957e7e53dad548eebb395027ff1d5d104197b2d04ca220dd98666207ab8f48c24854ade5b5383189ebcec7e000b34fb64c353ec391466417f67aeb1db3741d2679d2691e3b4eebab51427afd4f2842f3d8888a1706923c6f4a284f3a7431531bb004fdd565afa26c8a8beef8ac0d899b978d376a4451bb46d193a1cc056fa5e1ba4c8b4c7b0192f3bcd761a2440de719d1a3cb10077d43bcfeba82cdab577c8b07cab49cb890003d7ef54f437950a3c04253a7fbd0f20d3094c6afb8d59ccd15eea72717cfe335c4af3b786598a9dfa67a43eefbff3fce6790bc491f92541ab211d4755cf2551551f17af133c8d3db7652a14e0ed8819b75b80228820e11e36df912725d1711c144f90429708ca3f3d3aa8cdc4515787235d7e0a12e1d3ebab0cc9fac66e8c91f6645a6b2e6eb15cd010a587ca66eb3bbf55fecf891cdf2f6cb5c01140380353f1ccf3e3f853781ff2ccfd89341c5fd5f02cd6526cbd9a281ebbf68aa5166061049eee34c8b95994a0faba945ef05f9061f35b1ac84ad664a55851c62e7987881b7b03e2fe29bacf7a647d8b1becb86ac7d6af5ff6ba0559cb73302341d0e52d281069d1b5a92361935987595e17834f92e79a63ebb0165ad3bb10e1b30ed944a4290568f4dac3e2ea79d700eadb88c42e2b5bc0fc058ec15208ff57ff61cb41e35e2d61f525f8db00155dca8ce6f86a7521a1183949de28c6a05049829afe87718e2463ebffb0be9084eeff8721fc487e5b50822703400c414ee19f9118cb3fd484858ceff6870ed4cc7fae49b430e5731498c5e5abc7befb1627f2eb32abbaae46866720e6d472c4431d546d31144163b1b92c3f96f4892940907fb29422f67d1905edfd08622ee2d0c6a9d285722b314792ab81ee422c4ba12f6e66db58991dd777d1fb6cff1e6bd97a232a965df9f62f24e0cdde56e2f7979b6ba51ad31d67809f7945546b4f8c04428a9fdd2675457e23085676d8238eadb56ab9a04d3231e91bfb38863856b7ec0ed18d52064d4666e91d791c45b7b547082d7d6d7ec86b82e1afb2a0e0b341c921391e30e6e74ef44f91da30ab03418423eb1d4e48e422ea370508f7662d11cfcf7c914461c637c989af2e9335b0c67e438642876962dd8c9673fe69d13fa596c4385ad470193bcdc72658e068a6e69f11e6b08d9eeca0f43b0fcc736c4a733d65a67f0a76a717afb19ff1089d872f3a95f9888102ef4d56ea104f52875838e658bef21aebb80af3428beefe2eb21d2c8962284c48a296cf3ba20fc654d3867c34670063dffb38afd6e23340666214c6782c35caff34ea659de3653f1100232078aff2b82015c78436dc4b39c051ff13fd0a1743f57d20fc294d0af6651cbabfa8ecdf78351a6e054cab87d7fea751a112ab71487eb6b3b641d589482234f488f24da4c77656e86d081bbd1fa510b609325bb9c1e215e6c56d632fbf9d5cfdc45059c7ad2b0ad0cc5d67560f7e2eca5910c05163863fa03254b0f0135b4a676897292326aad878049f6bad3b601da021a4ce96ba198f2e9a6a11c0b1bd91499737d35cb015cc43d3e51d95ff0ddccedf8c9764537f85124f1ef59649ff17f6376a9d99f7f04e598740544fb2182878f51c4dadb80866c2fec61b0db5686425d5591863dafe65845c1cbc157b060963edbdc5a8c04cca86ce4910a8345ec4da5a0cc734114409227ca3aa52ea5ad1918501b40403e289a9a21f6a6c9f17eb08ecc065db37c408927ce54a4e2b4ddce63558a96c573779e0561033152a59f8511f0b5c8729c1d476018280ebae00d4013b6d36e0fa890b5ce815d2fc4550b728adf08b0aba5ef4c380cefa6c34c242adea7c0cf8b9c9ca608d77cce7c8f73e5959b17f37c9b4bc97ea0a4bbfb66a6cbc057bd0393aedf2b70b71885bc4584b7088f18dea2478725409195538682e471923a82e159155815d67716bfa321bff2950a2e869a7e57c3929ec00be27ffe095973b3ae51b1ffee8923493687242c3145972bd80004a615e08e05a99c1be9a27ac1d50a9badeb55a6d9ab8cf7fa5bea24e0919cc11fc6dfefa86fc6701db7b5fda980829509e6d140d47bb0ca2857fb2a7428601dd4a6e10408e3e5f59b18c733a253ca8147ffe0efa90caac214c5262b8ec8c7a189c56942d0abda35566b84cbaebedbe5f8cd8326b24e5ae9f6d1ac25fbbc82c2a2696b4c0548dd17b132aa6ae6d02e3807baacfac397ae94ac05a51c6c82743d14933b1f1a6c8965c95152c3546c89ca5a863abfc69cf98ab4274e64156584fa99c01e3419aaacc16299825937ff6c3d4eee8348a4cd2db7b8c62d48b6c28a72872835a71ae39c09d02fad8509ae99eb189b0713f85cf7b741a088fc28fd54c69226b7755c20ed0202d00f9824f925b2079b6f359867842f0fce1e27ff884d98d156e1e2baf7bd7abd03ace07097ccae8a2e900291d6c1a0fc57aece3ec7b2614ad841a9040540390cffea84d7c0eaa5353a2c39ab6cec073e71cdc4752c135ceda952d3ddaea5eaa924c1a71cd521ff8a002b220821e5af55a16a55793a234f778f7196131927c27f24e051a10efb98edebb90bcf5e4e16f045dabca9c32e684d6fd79638b0e61a5114e3e56b7501a8d4fbbba1fd4e19e085989ee8bd17059e239a75f251eefbc465ab878128573702b75855640a1536bbd24d1bd14452748a59db8f4ec30167ed253294c4f6151defa14764ab8a36a91224c640fbc4823639108b9ff224458fc6f0c1992a78aecd6a669b6f4a4c58b1554d3163d0a916de929cfcfc7072092647e4a248a8026e196da7e44273ceb18ecefe6782cd1714959acad61b045c292b468de53cff36c2c4a88470d5c30cd1864bae6d3fe9937d1a82dd69b39c2b1a60dc5923f228c84c60b3177f534c831a1f4ccbecdcb965eaaecb0924bab1299f3d66341dbc5289df708cee4395931c67cf3fecea65247c883752cedbae62aacce335e49bb4e32d7269bb21a1426cf88650e54dc33680463055e1aa4148d1ad8601860c49494f65d263f714f26617b4829741686a25473546313997a3c7272ddb875d728bf7d278227ff1ff6aa5cf4a90b84d33bc922c2fd9720df84335f8c0703fbf1d98f85fd4ba522969b1a271f32fe15e1041d6bc1b141798400b6361650ed86758718d468441433881257799b280dc4017eb0cedf1fcbc3082846cbf685959af119f3693343fb28bd0a04d37329221c911a1eb85d26a96fde84d79c63d4f491059134170bfd63429435811aa04736fe2466a9d579d92888e00af21ba4db3e290886a90027d11d62223b6d7157e9f430c8acb58f9c8aacf7fb28cfac4c186628715db6477644696b6cbd0b7f98dbee0c58c28e0e02b95cf14aea22aee75d743f1e5f14db3d221475e7b67a2526cb6ea0fb5f81c0d1766eee49c43fcd247e45d5b736ce59e1d6f6a920ddf2e98ff2b5e0175946fbf447d425cce5a4e4501452a1bddcf30d01c204a1e0e3438b0cb3c1d619ed04b5358eb761401d1456733fd404372fddea7e8204cad03b8868071013a8ade3e2257666f982478dd31013a8687e803edc7adecae2dceeb35168a115428e16510a1c58458970759ab014b0f13389d3d57c7c2f4e8f2bcd277134074e9a4f77b6eb3b27a64e09b3bd3acb324793c9d747000722d57e9ea84fc4794ca9a282c59639f27a9520d99d7c2e3984904fa507379f718c487a47b374ebef6805cdf2c98f89b39c7ba4bb797d648277bc4b2ff23e2f63a7feb4f43b18d5cacab70ab64777f6aba3112317669d9c442c8330c97eaea27fa385260d8c0b9127bfbf2196057e7b21c5d709227ccb0da31847dec67536889db5a8f71f2386d90729086fca8d78acf0cb9432ac2346f0440925793ee297a7e7faeb3ac28bd829819f5053f4758a0e68a57c14f7a53dd523d87edc77e06bf7412623e03727568873427991e2cf69a9d01bc719be9037d0c83426914f35a444251949174f4ce3e8969e09ed9480c2e8a0bb62892f7e10c98eed6a9340a3469d8a35cb04297b8eebe2df45c1793c827a2c958a1568801395317c47da184c21e965a3d050bd38c5ad4554208df4a316e36766b3567b4b0406d0721bc7b1b51b5d04e1e6ca0be193733c1699ad14f3e0ba6adc2637328ff546ce7bed4dad795468cb81b406247304d3adc5e66c3d4d00b83dc085ed86cdc98d94245211606329e4ea1a3505cf7994cc0b0b62d8eab92608a3686f7a2e3d0dbee00b5813e9fc6fea1071481e6663ee54042b0d4a628f44f44c1161aabb036a87483480e54c5a59849ccb5931b8933dd09dffe657ea72775ba0ba62c0ed4344fe71bfff3fa7231780060554043be837cd9b0d448f03dc8cd70fc21f3d2cb94410ae2729ad1c677c22c4abb9f8ed8b88d9d9fa575bd67d2bdbf511e1e5ad438242ea287d5b241123214866b7e3379fb1c422a1e8d0c09b7dd0be04e339ff30ca674246349eb72dc7e49b6df985b2e2d90a5e14da06824ec7818d1c6bcefc3f43b635a4db1e336c936434137d99789415e4d3baf00c8990a23adc5da8c4e0b0ea9b36245b0cbebcc0b04e55e91368227aa392e498c989169d5597c150c1b480d51bd86d49e13fc94f604c50b4a8734c0fa5498c2e6c045366e10c4ceed64cf6a2a0b928c468eaa02985b183395e112c5d9157cd5c7d3c9cff563fe1c52d4bb93be2937a5ce9527a5dec80ec2a80a42e719494f2dcb62c24fd40ade88e56214be190a17f02afb80d9f0576b8592f42b4c70f3f4051a5bcd3e559d0d550e42e3f70621c7b3f6a8e973f998fabe12306e34fab56115eb0eb87be8943ea86b4574072227c6d5f4e3872c1478ca1870658964462d50b15db07be00924c125e1ba8de975f1d20e5c96e021212c360a0ab44bf1c419c5c7f3c3aef099876864828a0a2114ba333f41533725fde6890712cd94fcd57fc768f4d62f8f055745209c81ade2e05e317ad1a4ebf7e8f5a288defb18dd3ccc99e814b730c6bc6900ba8bb07ae1395b3f25fad7f7be07c588b3f037507968bb0027109698a0f1ad7fef688e31894fcb83d0a1b2c2d89e4ef8a4d6cfc0574c5905fec1bfa1a0429df986af777d8783a385269ce9b7d5d376b10db67a79091e00482721515a8f18d8fa477fbec5b81af2586e3a434bd5e439015de59a92b9a70fb7d45908a73252523b9c956ecc3d154a056373a9a07df6ff59df97a9d6752d0bc5ad95b4434415fd7fa429b7e20c07ba07d109d1009efe77ad33cb29ffd147b7d59859ca976b3de7013095bccd49681402eef09a256e71f90d023c1ea8566888523f1f1ec2a0b3e9cf54417c4ff2c1b2036d838de185695c7bac623fe0c6b5cc65fbfbf0479ad9ad8a691e01c43c26299f400483e82e2708837f38609f4ebae23b762e70435e4f97b005c616a620b62a7860ff2cabaac1c09f3e3a5d09844bc7d82f9c6f91fb245f75921691ffa5eea990cd11edebb4c9837cc0212da9622bdf3bc736b1fbd2477522149be954b761623491db2f92097b3ee1a5c1d8e1557109426045fae0ec3de0dd979021600ab93df24d1fa9515bf23a5d26cf02887735ba52fdd5ba37468f3c38413de11a00952abc9303c465fa67d7f193f89515a2e197088190e59afc94ec50372600131c6aa34a8a9ceaa5fc0860d07ef5f6f02f44aac86fe9563bb3d1f7d02a32ac4cefd8db08a09d1d2d7d2c28db9c3b8e314e440c552483c6e7c54792ede78741cbfebbe8bba6b1b0c220e0920fc7ac957e488bff4671c5454b7688fb59f556559a93669113ce3392e5c19aed48dbb9bd7742774737621971d943c1c36333643534e626b91962ec827f2347dc88066a0b1b9ce4019e7bb59dafe8f91264d43fb6674cf34bc592846d7066f4d31b5332b46e247616c84971c1bf20ec1ddbac61f123d8e7188aca2222fa382df80f05386301abf5b0437e861d98d2f1e988cca5b5a585cc63cffe5efcdd27256593216baa538b06bd4f7a354ae6f9852e058b77006a134c6e0aebc603ec448719169f45d0e3172488db2ebed7781fb9ddc910a9ec05feb7e65b411975b47255249b02a050cd86fcc347266d510a8ac39986d47ed27c5122f8e95db4185a5fa447566e9aeb5fac6c4f41188812a4176e4fda7cb985c28b249aab4245dac894f214e1dd9392c26e804efa0acab872378092be6e61aadb40b351a9e0f1a8791ea2af13d47d461082d29785f4a4ff3fbc864b0ecb26c3f31a066db3fbc7156aed394965221972b0a3b8fea8b12c3fdfa9d4ee5b476593966cf251a26c3c0882e94c85c729ab175adfdd98ddacc4ef3341e2c6e4e25fc095750057aa928b79f909536bed57897296479fb2318bdcef8ccd7bb3cb1df2d4633739617e6fe3a31abcf8eca371dc967dae4be5087d6356bb1fdd2cd9ece5b39dce1db0f17f93dc3eb34df4f24673e4668ecdc6b22b797873f0dc7f3f1ad0b56d8598575c2514d6f94f34f9dd309baef215564fed6e0f5699008a04185b3738d5a2d55cb58bd54d3e01c33835615e83f7cc2c5c6ba68fe4e28a00c87f692b2e36f5dbb359a8b819880cfd8128298160f715ad7ad9a4744c1c5bf2914e5e7f614f8e08cd3394139ae111122677d9ac75de91f44276172d03778db107a2f29a0197dfaa9342a02a4c93fc37007a66782e8874e3ade8d0f730a13936636987933d92a04939ef4ed1702e23cc708183ceee1635eedd9d60f46d4eb8552424f4621af5c8666da171682e2c4678f8fe0a0f8d8ad1e1ada08b481eb427698539972b25e634e285d535e847a819e4d43a8bd4ca32ce3fa6d15690f543915edc91dc7b0a736c1e2246b007c339876e2195361730fa97cd8a2ab69d6b56f4956aec8c2f9d519aac5c87196adf38eadd0a0339ad791306ae4448656b12e2f378cd3e4f2691ef7e9d3dced513e5bd9129960ade2a18333667c3c5c3430cf29c27ee1841b188d0da53ad24106627f78eb8381b008766a65a76f7073ecb466fc605deb54bfe00e9631a73746de77166b811c868545059dafd17486e179b25339508ebb41520dd6084397ad428ecb975d57ef4f7a0c58e036c2e9fe83e71dba9d7e4880f5f25cf794ae7fa558695286c56809c1e92b3d251b2cfde9331705bad19e3beb6eb022ccd70187591060bf4ad988d941b7c96d6e67ce3037319b019a76d03edb0b1aa91f8e3e8fabfabf01c33e984dbb2b2a1f201d1b706ceb3662da7b429f7b00cca1031e9f432863fbf0e919744c09994ae02a44001418a138b2899db57d07d051f17fe6e442a4ebcf40e59893425af29c27a2ce47e9de3a496dfcdf1b1918e4fc22198eb12d28352cab1795448ae451126d51cd7b32c88a1fced40f010b9620660bc47aaea05118aac745d95d985ab29e0724f0cb22827a6d208f28bc3f6db3c6199a4c6aba8260e26346392ad69f5e92151af727eb838f311944899508fb46e77c1dc75bf2b09511e23c65d186027d60cbd6a8fe960da219794b1c7b30062a0a20ff1f18ca9761144f5895d8529ca69f6a23668afa84f2fc05580e0d3ef86b2134ca5a432efb47d9fd6874f8e9e964766c0399591a9e098570b29f12014389f4d969de5ca3f4527aa6f16797c7b63e2cb828c8a91bef5f15dbb1ff6172b8126fdc02181029fb3aefcdb6700fd94667d00d93a9f7c7e4f6636b1f740da365e4dc6607bd9ffdbb06080d1094ec7d0a25abe65ee48c4d5288d5957e7f78936df003d28141d26ad105d8ac3e1c94b8e6339401ce38e2c4de8e38bff0c282b970c3b65693155ed38b751032545b0bc2556af988ec2d23749c0a61b7d50ccd318c5eb4453159d2b677255ac9e5475d93e784d07357be0521693412dd5caafc423dab5459a9e9c5d90185e3c2ed59064df56751350b10c8ded177ac0d644a5fbb8057aeaea1007db35ada727be85145a1fb2fa8c356da736cee28bde517b8cb3730d239e91943b756fecef86a021ce81d4a4aa89ee29fbef86e26abe1a867f8bf1a11bd8668139d4cb6f0ed5e51457636e417329ce91d7a1e27d373d45f8f3d16273bb55b906a481117a96c4b4b6b8a11797a18db3df97b49302ea4c907c31237c93a8a3c164b156fa636050f9e877e7c3252cbaf890b7a69a239d2d789ffa40ec175d35b5bd48516642ac670de0007b60ec81a1392c3f02d4ec63fd5f7aa3d323cf024f5c7b19f84dc526fa168266afcf8746daeaa6c226c5d1aa7fb2840e464e3ac7009806a84b0e095d6545e14b19426f293160afab5ec120c99fdd19862ea1832af800dba4ecd3826654f4bd7d13d6b615e0de00f155b91365f508c43424fbe9ab00edd22df1977c0ba6974e787f58d616b3b459d1497b7d5d185a6d924d7e02698e04c6b68da54808fa3323145d279684eaf6e4bd80c4e7f464122756a722c0f46677a3413dce1957018841faefd0467f808c07e9e5a0c4183092ea70a890bd3ef38785863ff591407ec8e9df4a317036a41b31cc37d1106b09e7f963d262b25d39c3580f09ff6ef306731345254a2ab56a93375794ca36aea6970a043afb007b9da0739671293e59ffa068eee3d6bc1a9d9051576bf4c45c51a590d447cbc3c088976b72f172f238f2d998b8e04179df614f320dbbe68a0a4c5d6289e2890ec9aa521520214161d57235cd0f80e7762935b838d3ac745463a2c27229d59b2f92ef2a69cc01037cbf2c74f92dacfbdc6b486282bf1695a1316269454efa86ff99870d027a75cbe473392593b3897e11e258ff101bf1348aa322d1825259d8066f35148ecca3f93fbf29bbd74fc2b5a669160b435731cd8100b17cb4854c0fa2a3722976efb0d31178e1f9cdf0703baae272b7a7ec270e094204558ac8c9a0d19c57dc55513d866d8857a821cc3489720eac77d534dee58ccdc40d563ce637f6ee182b696680a4284d51fb236bda11086164382c9d8e592c90a2bedcf369f4ac99c56b140e9bd12e059f07a148526702a022623fbf7229590edce2e32c88a0a5487094322ba5cee30d5b77e5b7cdfd8c212904143aed19b075cdbe9b22157e2e12afa291edcc6be0db922a37c0e41ad9fa4b967b5a02205e0480676fbba2fa6181bbd8a361d251a54d78ab25f26cc48f6a4b793244924e4978322e26585c913bf999a7cad54b54833da4261558ed4a0d25d475c383359faee2481fd148f672cfd99761b7872d5f22b8054546ff6cee6ca71640f8343be3e28ca489e013b3a9f6e7d85a311f615b606f34c7a625b8bf554c772604e4cfb2abb8891030f4dc60930b79b89a32661548d6afe2b5ec8dbf4ae24187cbfb0087c93267adb15721996ded4fb1f8eda5ac2da0c55b7db2a9c755783d2d255eb956d90b0a03d1bb442e018cb2a277919efb0f82f736a17def438a08611fab6417b774d80e02a4fa238b552c0b2530f5400e7757c22ed1c4169cbe1ded95f1be88fff3b4a92fc1f95bff5baf4d063797ff39ec071a517ad445d3ff9a39515b4fb480e145f6d80aa15e731cc0899d86a647143e437919ca1c82b8cc821ee5c816e9aa1f021760d4b9fc04afcf23265b2204b36a1152125e07a14f60a593a7701cb6509dddaca1008d7a28c3aad742ca4e37c8902731419c8536dd3ad1a616d5694243ca5938cc6cb83f259e48fa5b8a3949cb1f1ae751cb62435d94c12667dd70e4a7312262b37fba99b9b2cfd7583e4479d4ec5f53f4a57ff1c3332c3eefd3fac47c1cd2ba2929b8097152ecf8a5cc11f2be5e43ce66b1a2d6b4f91735b9ff4de30af472948336a2f16914696223c5d7ed581adb40170c590f2c527a9fbeec9686ed01868f6528f5fdd0b824b1e50c23e793c18c4bec9faeee624441895e9c66e304aacc49d04e4675248e6788387cb0bbdc023b09f2a7ddcf9c11cae10486282d70b471d7cf00a8971d4f2d007b0853ba977440547beaeac2535b9d5114a9836274b3be9c9568231ec37cc32697e71ae7f1fdab307cc24cc9acbab8a6462b6d619884b79802548649302db4456292156a930f12ed25dccef3efb17a14385af6581d6bfc0148887c869ec293909568c1b4f45a6cf59a66274530b5624223432e88dfad63944808e4bba2cc65731738cb73bb13c6ab1da04ff7df2ebfc175e5bab0e38d980b8c4be51f8cb557314d188e1b758da1c8ee256e1fee6fc11199f22c59a30ea73cffbc107388c7e3fe7a3e20b2a44f886286be8c4d95b53d220100a8bd0bb0665fd2a34414c66107c99d0e4099ce9029a179a6d5a209232930eea575ea1bd262709e419bc533ccf92477dda139e132d689428409ea31f09c3febcee688e33ddcdbc31168ab9400080400a00b8331b8bbac86eec082acdeb7b6cb16fa568803ff96d24924d08d97b6fb9b794292519cb06ff06c3063db88ad4d17ff98a7c22d61802ac95c1a7a72d40963a7c86eba04e0bb1da2a5181a9c811293a9832824283319210a28850122fe816528aa0528c6cd34e15629e51056dc2824a275b408185075da460870bdc400a219050411429c8826a21458b2ac58b99762960176084d05f8b64e082039814279cd6ddd4c335f110fa00b7feea535382ea14a1e945b29ca105a192c28225527cd8b8da648b97a1de591a413140cd8a1d594c11d5248947c9c70558af646a92a4c301b85dc9d4c408add2ee9daaf2229a9cbaa394baccc3437ec61df928e9f6cb91a1dc76baed2447ee19996864258e6a8282cd9734f1112ac2d42488db5f77cae06650358ef3ba5dc94445140a6a07614a17e58a2b0a1ad4ab49deea4a262a94dc5196038f0420ff3402898a24ac7db790d63dbb6777b7a6c917810770eca00098d03dbb67f7289d6e07e917c00b4000dfe2d83be2c877c78fec83d34432388ebbf6feecf59d7befdebdf7ef5df5be7a67bd83ef35de61efb1771bef33ef34efff6edfc5f710de6bde45e8d98df711de65ef36efcf3f3d23e17df6a32ce1fdbf9ee5d0f1ee7a77797799f7d77bcc3bccfbcb3b0e007ccefbbbe0383cdeff05c721c0bb38c660a4652c8402d03ba8891c87023bc4b13e142bad056df8b2316b638558186c0c568696f58b608758deb1cc63b9c7b28fe51f1acb401c64396659888798888bd8c872123eb2acc432122759566226bcf424cae73db116fb6dd34f009b6371acec99956d33001b8000bc00ec1843bd5384690110af093fbfde0e6a1cde31c1365117b591104d94f3978d30b3916ea09e89f035cfdf3e3d0be1f9bba767e2f3374feff44cf66cf34cc2f3b3969ed967a8d833009e713ce7782ee1f9f949cf743cdf3c3f33e9d98d67d6f3eb39e619e6f9f9a8672fcfcf497a16f6ccf5fc5cc4443d6bb1d63d3f0a3da379b631b352fdf7def3bf20847f807a56e319f6fc0378ce79fe3107e709f023f7a852681f6bffd4d80ec1768f6d9e116cef589eb2b12c65590b47b50c8adfb21337b58cf9b3acb2bcd432fe95652633966d584e8a5946b2acc4720e5b8265237b6399c8f250cbf85996852c1b89b10c6319c8f24f0ff3dc807647cbf865ec0b425ac60fb330b48c7f0036c7aae036fc338b6309d0746facbc3aacbc2558797358797158790160e525c1ca6b63e595597947b0f2deb0f28a60f9d6d8be21d8bea2ed6b2ddfb77c692cdf192baf0d2b6fccca0bb3f2d6b0f5ca58797958a9e32f2b6f8c9517465e0258a99363a50e8e953a60df959554fc5c95bd9f5d1d49c1cef52cbd9d76ab954e776607d0c29051dbc816868e5a263f86b6e1a76923254a3de30eea28448dd44c7aa9a15ceea616eaa036c2820e626e2a582e5ffe9611d11f4924c904ffec39bdfb5980d026d4446b8789891413132298eea81dfd4e3cd80a0c7b00ebc8cb5d16ab2812b9fe9e5b10b4fb6ae9ca0763484117c9f36af7cf3995cc584742fd530459442c25224d43b78b312314e313e3c35dd0a59475a4d50812ba9d6d1dd651594edacc9607ae73951bc1f52965537356d04a49f2a0df1f12b192229412bafdaa22720623d432a8c681215205491e4f52ce60622065fda3cac885590252f24152f11c4ddd8631fab47442c81e3246584750cfeaf777467a2624796841c4e0feddecf42aca0efcb0e18488db5f638c1149dd98102c2a06b12118a19ec58458025242329a3696b8990b43e43830d89411cf910f90d235b274fb658a6eff08034546c8ca0cc91019e11e3244481dfd2d534410b79fc2a264845a32874b07a8d6ac49b075a9073a2ba50de5ebd285882e6846c84bb2448b568300b92b99965c59e2b4d584e0f781acc3177e4ba0f4202485674a1118434f9ca68450040e5880c6ce1862cc200b15c4f800bfe03cd007541785e76df1b42544357c754e7164a95b72440b8e7e12ca155c73905c7afa5932c4cd299618b14489db5f81a4254dbc222a256e6eee7174e3b825392cb18153e2791c6b997cd58f3929d5b46dab95636bf4437e472473c8f73acffb3e9504650ec9b6ae543f66fd6490cc2159ac1f99e3d572f77eb43eb62e2e2a9aa465f2dd43252f30300ce30ac317989897989898d0e51213d30263626258312b554c4ccc085d168f9fdb27d5b6ca75dea75ab13eb649b45c5a2e5b7cc296a998d9c5d5429cd4c30d5b16aadca7ff9c2a207cc3978fa5cba9a41d5e605e60c8c802130313a33da9b6c4bc625e5fac9e5e322f198d0bbae471215343a646b5822ed580d580cd2860c8002403898c23150f60dff77d1f2c460611eb28f631143260b1582c1b3375866686860c1f3e327c2a4f615942a3a0799a6790b54c616932c3cfe572b9de4ecdd0072f2f2f2f568442f2b610bf989898183184a0fa441319191999106a6a3e180c06ab11819fc0e1c608374670f9a08266d07c52ac8ec3ed1f5b94dec03d387ac3ed9796a56cbe66a994cd77cbc91cf32914c751499bf952c71c6ddcf972e7c7a1e14e91e03074c7ce6787a7eb99e21e1d0e9d0e53ab6e67fad45cee28e1b9bba4cf544a79043867142aa5546d01e78c22a59422cae429a9f0e64fe938dab3bb8701fa4bcd3a4e4eef90ef38385c26bfa9c8d4eddce6f61ae4ac778ca688b4084105f54f941eb7e9a589c6e5e7648f39c53afaf92fb59335514ae66acfad3bdb529fa0d61aa41194d04f1bc91cfd344d6acfdcee719c2dca8f5310d4a665ca68a7653c3d53dc83e2a0031ab7dfa5b82dedb8ec762a0e1ecd8e64e66721350e4ba96dfa63ba00594a5740c93aba234b69c765293d01e5b394264b698a2c259943e9f6b394240f49b333043373c5993f7add9cb0c1cb061e05f5e43427c89a5ed9dd2713256f661df229ebe7f67beeef4e29fd913c38c9c39f16a14fce839c6d3f5b90dbb4e441b7166c483e47ce633445b40935d4a624237b743e9287b6c3ed1f61f7ef569b0627681155d093ea47e6686a810ae8fef44cc583449a3212726ee66e418ef3397d509bd0a76523faa6362315cf76a4f2d990ba4de9763f1d50172473f4773edca37bc16d9fafe949d330e55c8d447eaa179bd500c8cfd76d26122c2f7fb29e71b56aac69730629ea52aa4d0ac542f5613a53f38f00f72efacf5023e0cfb908eaf0cb1960dcfb577a430ab013612d7cab60431f0663a17b08489dee8f74221bb90dfd05700fbef439c80715aa6ee393da68a2ef83be0b3da3973e067a2699be30422995512ea594fea64d21a223231ea255842ebd42a1eec84a2ea594972a0e2c59f5cddb5994dca22bbf5ec9946588fba9b218b96194a7d59e85577e0952ccf973db4a50029fbfab4260f05e7be6f134b6d263491fec6fc1bffb5dfc3e1194afef55afd2fe136be527bd002ce00bb576bd7141bb2105d832f48cf292db680f83b1e00f01a9e3af1b01ff232e7293db683f847bf00b3020a00720237172040aa088767674a48ed479b98d56eb0b8d1333d22ebd9a1749463672b54f0bba9a4edd282f3569afd12b577b8642addcf1d3aa68da7bef542a5704c1e23a994811029c73a250821470944928a8b07a1ca973c28e28526aa822286389268c5c014251cf53175dc4c8d880c4911cb8782245131745849fdb10c58ceb8fc23793d7bdb852a45811c51165f024f9c1164a8041e4050c7428729454f4d5b9d0e207ef553304e8d2a19fa8c27d3409a3a80aa7a8259ce0ea03333e050875b105c9d00972a8c2468000710315800a90ab68a0eb55b44f4b25a7cdd3cf533852879d922a2034c43e519e30e9e11dd945b7a78670d4c4446a892d9e823040165b443191650c15280144115c6c4c8a70aad97182410d6e48e2043cd8e0891b6ae0c410121ea4c4804acfc6a46805b35ae34a26a71c3815dd51b6d435e3cf1e6c684ad2c3a407cad29cb3cee97467164677bedcd945444d01f4441740463a73ce39dde72bd6e3892a1e194424f98108a7253868925f6411b44aa2c80ca2eca02787224f7cb8bbbb4b2d28b4cc876bc78774f25cc5e248c86d93a35c15c35056a9e31f360e18f31af41625be08e209134555bcb8020730378230030927630469b18284c218423c889a92044a0e53822c3186134a6e70c40f4e480d5841164b4b9480509241939126c33082b2b24506489824a1c292133da078a2073360a2c9911f294f60d02242032b656001c21858ce48fa120891e4c31530a0a8c208cb2e98a03a9c29242b10c2862c4600e1e8011c637f654d4350de12b248272f5d30e57d1ff8fd1332084c43650c6901041220482e7c50afdfc049133ad850460fce90c55e2dcb7177974eb17f4d81e3eb8585d53b39587103164b487e9846a9a288ea3a14595c81c4124d461891848ebbd7d414313d0aaf80e42127183f5c7f147af6b97bcd53ba6ddba6cd39e746a98f7eb96faf6de29cef74baa471a321e1d5bae16cb56e5da7832d1335fe7c4e9792f6b6026f643b47180b03f0e136f24db83e5426c05a6428b783b1e06fc265025c16e91d290b32075b1068293053b9f2e7adb99e6c763957ec34af8b5ee47952ce249ddee1132095a165e20ee0a53b50112e812c3f7c02e4f7bff479ce6d13a5d495d37b5ac6754a29bfc6d012fd71ce6f6e1fd621ef9cdde2101a74a4dbd0d0ed99c1ed936a9bfc9c137afce5f70e1cc444d5083c92474a44b2975252af1fb0478676c2c9719b9eda4b7905d395ff00d9a30516248f0a056a699eba92e7caaaa453753aefa39ef775dca79a5de77155b5728eebeab6da5832c8bcf291dbf44b97973957fe4b1985c34f6e03c4d1278eb58a2fd671b137a40d7d5709973e3fcd1200de1b13e0684b2bc1f54df5837a2c99e33d4e05a48f3e580a7cbfefcbdf7ffec4477cc4826b0a7e6a26e2a72332380e4ba927a927a9202997180251236dbc6fe1b8debbe038fce436fd50aab7805b9ff9e941f189258ee04aa480ca4ad50a7f3b719cd78b9a39ce01b4fd6194ce1f77f73384dce78f1948ce219931e54e39b98b3b9ded615cefdf8af0a6c6d527a2d3ac33c4533d119d8ef5dfcf00bef733b0fe7b165867761f81d67b1f0197ff9e65610e76e2033c0f6c89b04e4ca1b21e1487d02a46f4a067478725826e23758030628a1d1da9b36a81f5ad6f89435acf1289e874a2ec1ec63ca471f8073f3c3d93ce94c6d4289bbe6d298d1e98d0889a3766d19ddec9d0b3f12bd0b329a530d0337a454b9c61f5aa9f3fdcf1bb2dab4aa1eb449802fc760fc46f077e2f550aa0bf1941c520f5374e658dd868904b541c65b76b05c1d74b880bb77e0309d2bf6def79fcd50a82af5717a47ebfc689a310d9edd7fab96dad2a20dbb71d65975e2973f45873b5393d5136a77c46f2829696c63ac5498f5ff13778ad6fd249a1a098996a5051a096543fdc5ddb28a55b45dab6ad729c04b8293c12b080c1c3cfeefee216942c8778c55e240fbe0d86f2b7106db9e1c22301c82f5faef048c8c2ade2cee2c4cced599e6499224b14376cd9e4c1b9f62d506530b3cfb065ee3e29136350279ecc0e59b4bc8460c958c4c052e5f611285aeb6b59e84929a594521640e6e8137038bd9497165e13a42251ee38734e2880e48145c90d7b56c37465fc621f96a23bbe6235779cf7e64af16000e7954845c2b8fc1e0b06905e895404ea06136f9145cb1d3f4ab9a6d989a9a92dda56b7aa94c4cc5cb92446eeee424628a5b4f3c2f009a3c7fbb66ddbbc4f4a0bc7719c5393e779de1213954aa55ab1a294f4954c514ab0a292a89b46b955103c12a0a24800a37295ebeee6baceeb3c4fd3b44fa5fa6aad55b55ab140162805e55251c016d87ad56f88964bcbc5c5e5e212026382e00a5de15645f812be4c26442f302f301e24a534a58e606260622675b95cae989714d14ba6864c8d1ab01a30580c168bd988d9900a92f2b1316363664b94199a199a32a6689ee66719502f1b366cd8784b43434363456bad1543b8b9014b76d1829bbb25457b7bd2bd92e48e57325d417285089f3e55dfd01deb5f01e286932dd395a01bb66cb38197001be04cdb3375e6bb6d01d499a3bff801d63d32dda6b1f082ae7c229626589103490637398c276ed6269a8220ff039e8674f92d2f0b000bc994a548328161d4ba92090ca0cbff59c083e1498b4ab66f44cc2af61904d5333f7757799df4bb2235559287bc1275c3b657a0ee95e298815b691a55f632170bb624dd0e65d831e6e4445d570ea0dc7ed0871a7ec10d07401c164719519a031eb74faa6dd5050a5400032a384eeb97aa946d385cc9354833641857febfb60dc817248ffaf2393ba56cdb64e0784867e7cb4a6b7b70db5ecab6a735dbafecdc7c057083a16f1ca7dedcd40a82de43c144082c5e1724148e93509eb8b489ebe29da26549fdca9e6d5d774fbcc37557703728795748f95070c523e233032440493a50c287071a40a307318280c19314e08046dde0438bc8c60d3b70f7b6689b6f5b77d72637f0b87a204610c74ddf51a1c673924aa2e245d72b99a868d17ae2beda9c7dbd96ecbea2a28b5c44e9d6dd1c0fa83cb923a89282ca12904a14944e4fbc9289ca1015201d78b246c7e3afbb2a0e017fb05029d591cf4b3f276dd9ece77ea40ff65307741f848a60cb667727c6c457cbe66ddab429bd73f6b4fab0029c74beac99ddadc56dae0b1720beb881961a8676d0c11155728044c8e7081205a309ab491aab2c638e09904825a1830f3c30f0a162c396850a0e11706ac119535c91040f18345732397de1f484ba7f2047eb7795ab1ca7c5d0530136ae263295b5abb4800e568ebb092fc627c6879961de45ddf95d94d7e3edb8cdfccf719b49b97fc8cb6d269d2c0e6971c836765155d62f7534a6130d7036b93481ee0929f1a8fbf43007b09b789599a5944f9f999959b2565db66da2b6bd7603f07bd6a10ad08b55d437f5f9007ba6c991292680f8c102090be0e084151b1c1112c305588848da9810b1647312fa66ae6472b2e17657327d21b534bf2fec0ec31ce6a4538c615e177f07f477c81c371badd5e7acdb18731c734ed9a4daac6959a5f4bf1b8456edabf6f5ab2015bbd6faf28eb38aafb06597e97cb95314f25d17b7a939ad1590173055e8eec9cdefde544caa699aa6699aa6c3a4a2bbfbcd15d0bfbe9c927293daa6f3e54a1538ed4a75bb8afb4ff195067d1fa9fbf3b556164051f0b1e434e73c023aad9308f558d33a21d80a23cf2772bde9587818a840cb28d032d9ddddcd53856e175a3667cf59801480fcf3e9bee03d7bf67c9aea5da1709673945f01c709027add45214f6af0b931f495726a54e3f953454f8d4e492937299e9472529aab49f9639552b39a94d177dbc91c74256da82775d099a719984b5597fec8a121d19855c81c334c4aa57481e72c773a5bb2a987de2035a7b99afd02fcdd13d1f1b487d5ba514a29a594524a69dd344a354dd380f0853da05bfb4e1c22b6c0fc72c97d3c7fbfd4299d30213a9b99bf77e0c528900fe1e425d5eb40cc3d50230d14d432076afad332f7ea91ccf1438d2850e3b092b08c8cf895d4a881f8a522cbc88bce48f268923cb853829be2f5d4a3eb5f91c8d96754791ae73baa4675e74342cafcc79ae4361541195a32a20474fd43bafe63f5b9fe3d5125640f5611eb30da6ab0041d724de95c8ebc1e1723ebb283847449728d7ae682443619594272357d478ee3c2e3e2f321b9007d4a2e46be2597a10f8a4bd1d7c452f23db18c58495847ac22eec15282b504abc865870eb18ce8105191911784c743ce2e25fb6b0cc79aa6e2751e71efdef473fd1d0739db7abaa334cef6e33d920714d741cadc8f9cc7ddbd257b743b5c3f50f2d06cb8fea3eb6bc7a3f170dddd75e8399a220a5a2171fc1374dddddddd7d5372ddddbfdbf19deb37b000c78ee7fa8fb49b4eb1e3e97a3a9f1ad25cfe89d4801e90065d99df380ef7fef349f2e0f7a7479287f6fed4c9ac72658f2e0ad6e13f5ff2a0ef4a50d0dccd81008e3489da4e0aeac4bf8b827bb094701477e6ce8d7a41fe2c25ee115df784aeb39ab8ceec0ae3fa8f9d14d7594caeffe8055dff695948969564592c25dc832585d4e1efac25d7594aaeb3e8a269a23133e8364947eabb8d3b4dbafe34892a5126a16685528e44bac991ddbc98c5f100b2d2593f28b2fd09d3951c98aca441069315a8284c56982861b262c4644588c94a1093951ea62a673055818ac254c50aa62a4c98aa20193155215a22a88672872d446802c612594438a365ddffe1c4daa6d63481a3ec04d9ea4e11c18b1b435cd9b30964bb52841e80b2da4bb8836de3efad566bbef76d47f7b9fde314c7de697decfa8f5ffface21843bdfd5eeb3dd076dfb2dc6c59ee415bbf65b707000ab6075300c5d57f2cab12457e3bd2b0738350b720ef7cfd33b578536a4fbf769d387a9dad6118c6c23b493003ec7eac402aab80d4f7be7baffbdd6ecf89f43986be5a18ab3d71e0767a0255fdc83941033f5971c8384ef583e33ceffbc0d58a05043a128eebb21b1c373b642e2e2118be3e972b04c3d717be42d58ff0159b75d6ef6b64fcc5f880138c9131f4fd52711cc1a5fe218cea0738a918f3bd5eb11795f964fce704637c40550adccd69997fcc0fa0bf178bd9b031f3cda87ecc19e303d2a852e0ee8be6ffff655e3130ff12bafedfe55be0d3fcffc356b8b9f4b54bc5107053cb582af4e1989c946adab6d5ca713d74eedf1179def7a9dcdd5d7377777f0f9c0f4ea8a7dbaa1902e7fbf0196a2f77ff39e7a49a5377eaeee1cb0b8cfb085db8c005314120fdcfe8b21378a778b23dfe1641e6ee14b615b44bc52a73eca0d4776ebe49356da3746edf1686e1aba956d58f4a148bc5fec9b7edbdfe40ffce8f00bf4fa5fa511303f0571fcc11204bc652fda89101895dd932106cb55c9c524a358d524da3326a7fb88bab05ba5c2e974ba332311d781e6be6d08df575de07ae582ee9727171d550f56386e02b7cc5c0faa2fa316b42f015be62e0585b1c4770fbebd732610dd50f9063b1981f401b339546f563f2bcf25fbeb5d6da1a32af180bf3125a6b5dd6a565adb5564708c5932d2ec50481aff65a5001e9841d37b29ad8cbaf7835ecdddd939fd649d9b9f0644bd9b2a594810f5ecc93cc25f8607a82ba4feec471e76c86bb4eee27d393d16def70c2777114126edbfb681c3d803f6b643876e4885f8bb565f3679790051c6b386767c3a71f2eb37efc2ee8fad553ba7a976fffd5d377f995b85a892d973fab7e6dc3e22824bc2b3108b7c4b15e1503fc59ecf26c83080919b07ad67b426e7865cb5a4878612bac9ef5ab67fde8f2418484d7f5425429c05660fd4a0cc26231884b84add0df7af0e56d89e05bd9326789e077768431aae7dfea7d346bcf0f447b7e22b7413b8217e4ae4ee47a837684c1fb9555bdc79f67a5a7b23497b392e9074f6eb57da56ab66cfecdfc9cf93f5f367fb3b26b26d89e18acad5ba41f82f24abb3ded699cea5dbfdb9e730250fbed371caf16650cf3060bcce57bf9d2b0673e03d0699da66d9bf62c6ee2a789210cccb520d7dd436b76cd19f6cc99396466e66edbb45ac551d3346db342c2cb9ac6370cc0dd3421219dde0f9eaca9307eedebf52aec48cfeb707f8413699051483a46c056f0af5fc5b1be8b1d905148dbd7fa3e1ac6208cc5abd99c22c0970940782379b266941102c79c1ceec137b461c468149981642733cd8e538ebb2c16c652785bec407847d7ed77f18301d81e9b20a8d44cd885b574684a0400008204c315002020100a07c4217138248c743d553e14800c718c426a5030978903390ea330868118868120c620800030ca1066942a1a1300e666914a32fc0b1a0a25e232bc7de74b13c185ed5e17e63847dd2cad40613a43ca812a8f892f6f70e98661573f85b35baeb7fa06d8a254232925ed12a50c6d7fd244c127e633af2ee29bcf5c25d0944b02a1da3c4d9edcddbf5368c53c0218da98ace7cd99e7d47b72b1e5da831e826d5516412e31f33959ad8d9bcdaad61bfa8f06bf60d9e4c5ac09c59106200674c7889b5150865a36ab0880000d50cd5cb10312588a009e6caae0536b6eaf73c36423e0ad6b1f4bdafdc0cd16259a6e8159bfbce225e4c6d48b2526dd68e47d4a0a6efd45944c80e7822a092c6a2abba5600b74d0700e58ed9421092c116dcab7219de6524e840059dcc3518dc2f73c1a9e15e9f0374a7cb8df1432b70c5d848ad2b8971dbebb4f912abc15a51401894e12ae0f7c0c0edbb0a13f89331a851ac9bb7c0802d1f4afff1fe73fd669804afa1e227fa5dc7d1759fe59bc409f160f33eda3d0a05b78fc81d2e5cc0169058dea4b98e27012ff2c0c22be56620728f2c954a45a056932895346a34651484b2fc9221503616c3eed716a6b1b71d9d4ad111e73714c290c8ba600e65caa20ad0d92c168993affa1095420f08490c917168e1881988f9ebdd243bb6a0704a70858d53feec05afe5f69ace845d02c9115c9a95a6f00429ded6cb2384214d6e843a9dc1d43d4092ed3e5030029fac819ab76662843375d2cc4b269b40d481ec06ddfc1408c64ad0ac1f833eb97152209f743c41a5d0ed44750279ad76424698edd6b79ee48f45d19432fd6c9fec2ed3891611fbe3bd2172089b54f10ffb5aa4a246793769294c63f86b07f10ed4f0dd398d3ffd0ee43ccfb3078a4fc90a0f92c61d6e48844c161c5af34a25b54d56735a2da9142cd36446a8687e9c31f6f477a9037dd05ef3f50f0393920dca153b712c6551cc087e1f7be6698312cf7918810be551c715fa08197d94bf774a4ab0b52e6f8475f05a4d4e948fce647f9608fa8858facfe5ea7a16f97f37ac37334c458a72375e74da1f1a7a905ffe6fbc154845a222216b47c98d12037181e2c9e78a9b4682cac9ef18ab83e7e3a8155b2f959d1c9d13968a1649be2eaa5884dc45cb70d25a9556707b51df2cd78bbdf7e996afca1f7354936082f1847ccef4daaa270ee24dbb4b9fed1911c7cc1a6088d22b48ae78d44fce9bd8c9b8dbc33ef9f1e827cb01cfe007b1655b55062e3f4a30a814173bfc41c12bbe472a3086a2e0e9bee16cee7134cd97e2c762fd50cb61b48e3d17b3d13cff7727bff15365727f2eb07a9b45413c14af135aa2b67685de7343c524588171fd544e391e0286305841a9d15f14d780d73006f087dac6a1ed3b73d4cd64e6686fcc13c205cfeb777e8f778dce24a36712b5c50fc17cdb362705d12ba8f91927e73b5fb222a112523245d6a38dbccc91548c0b4d8e0989d9370faba73b84d73a159ce20b0371ef705178f2760633db90570f00507e0840e2670ea493fa73fd356ce4ce6c4400fbce1099cc4f97096970d1910603ce4a61472ea1b2fd0e7b1496c6ed0b696601285b59628dda8060a5719e81abd56e17062fa529de2bdc2c97066ff4880124a5ddfa5688166253f5bc2507071d2f8fbf0e26343e4c4b78e1a1bdb75f0307de8269b2a1beb84fdad492fb6e6d85a5656c271cfcd585cd211ccecfef57a3538c05dc0a4ff714c7bc1429a249578c51094a03945f25042a14f360013465a29f0ffd087ed582d1282a6f30bf1cb6e1c6f8f0aab382861c19d641e700679718ba805ce10d72d97c5981a349c5a1137b907105d0422788b105672ebe7c0dd759926d1eb19602b1802619937f3d1466c39b1888fcb5ebc89009e0f9625fd659f7ae06a9fd40e1a8c3db81c3dbe4d53cf819bc9cc3d47b640ee0d1d76c578c426d7ca233cc5c26739d4279c83326bf1349bc8e57eba668a89094df44e66fe1f0f83586b3f8c4be171fcd012248483b6503d4f728af8e72116626a69b7d9c6552bc1f48336ed2379bfc7f87254ad20e6a8969c60ca7676e970f3c64049e7e8a384364aff75593fe3b52f520a12132309ffe1b4afd0d74359715462ac9874f32660f847b0d102503709adad61a93a5776a41b83d4656a59201c36edd8f265726eb47b0fc4b2440da37bdd83d19f8b09ad9ba320574beef3a9d9b4cce130cb9fc2b5a0419ee956f625de15cfc4ed5b07d0bb4a071e4d32c65cc598c77c49990f09dcb6a14c7e5988d6dd9b8668d76dd4018560a3509b337eb062d24852db9f4d181a66b7b33e4ca864f982ee69dda3de9a86c9ba5c631308889188d118313e7623a6117777c1028eb362c5608a06c7e4094d974b7ccb16c0982e48fa43c271662bca6232b1ba01133136111a28ca78163e6b5a19e0f020307e35d406477280d5708f0236a711763d4ed89e92a880b2e0e80a9dc657938780650b833f6acc2ae4047459c6d30d5fd3d2d09735ef4b95848f08aed6715f68ca186d90d44655868ef49a65d75e52c5ca04185119e96594a27116b74349b833be30e8b5d70e8869126a45b1eabd92cca85c4160b0e24fe3abcf64a64a57e31902a9d7d50332d1a7ac76c57d865423e49c28ef8371acbaccbe0e1b1b67bcd1009242334612122de96de60c8c470c5fcf9c1aae85c4f8761b1caf7ce8c862d2acab1c4e60f6c5ca56c23c4cebe553d848aeab33919dcf65550b2d4f3f32790fd75e02606b7f320f951c1d19ac9584429f67564c48ab1fdf25e553aa8c24053d86750ff95f925dbde1c2964fe21d1680258bfe317778cb600b46126b0858445184b5310f0ecc1cbc0d6602a026321c008e48ef2c055d8527441648b989aad277406f25857de4c00b589943a6333cd7eb38830f3763e3e841036808ae73c142ff1b6392fd277fbb92a95e7809f7d4a008414489349b106bae9171f931d9bda0045d1d92698500eb0feb8c52709959c17a01d33b1597acfcab3c644079c86ccba16a0791070c42a7711dd70cb4a763e5ca72f575a7fb5482f5b32084a8a3829016ecc68e51ba7b41a2e16763531ce9fe234660150b21615d8bdf1ae8e4b27ebb1a9bbe3f44917a72b23a0b4f5122a60934e640a00f62e77e0cde8af7108c08db19d1ff83d78ae0387fe9a006b9c7c51678ac6ffc1f4b37f464a8a502c1ec4ae1161c1498edfbc8a693a9b01c17ebeabd592b3d177d70592c5630c8c1755e3659566cfb33d976823bb21ce8fdf3a1caeb32e779ed5e4fb9ec09409a53208814c1d4b596968be254149f141c1135524d153af25b9d2c90e156dcb3e135e5eddb45ba31905b1b4acea91affb5bc2511deaeed5734f72132ad07a673fb8a75381161708f8323c41416bf97657401593f94717f150b61c546c542dbb3a6c692fed3932dee9789fbfcf6bdf18223a6a575d10f7a5b01e17adf10637579c8e8ea65858b383ddab348a1d6ceaaae49d7c7234af631e9701274e914a3c9270c76158f796b9cce2a41bc2eeb082023f940bee009ac6ab57c96081f87b6e0b2129150070672504a8b7d4cb2dc67eea3dc861c2a174a5cd46d0315b4039a2403e29a8d9bb22ef8df32d818af7db29a899f83f260c710820821f0df647ca265d6f6c35c9042eccbc930059b5b38e10799dc34c1235f5cb67a261e9f9c5b48693b11da995a77a7c716e474799e49f5bc18abc59d9ba53b7164799653914348453bfd16752c1d837b96c41100b866f12162ec8fddb17f7b27d7e884f6630b6f81cbd7eb7db795a00ac1606a167211558057dbedac917055891ddb1964a122f191ee2b11af601c97052e2a1c2c8bc4afafa7173d4c99c68272e6375dbc8379629c59daef69509eb4fc1f9def5a8db3c3c7747da9a3cc8e089b7a5bc680233a823e27ce847bb945ca36d2d1cb95739edb838943e34bef5dcfd07dd8af7b027482c982a74a23e9b392d429e06a155100a3c42b05d8b7682f52b8c163d872061ce3a2f753a1bfbff987292cec07f2c69947c0cc7ef5fa0f1f57672975d08454bc8e69d6f6d3f1e276db367860443a5894db315e9f3db42887325bdd4de907ed5af15793e4925d52400c8ae297052ae729f2e0a52b4133a39359b1aa5c8968e7eb052d42694ef48b2c938538a8ac2683c2e107e442ba03a825291d5b4921c8d2432bc5abc7f58940234435057519d7522de212bb607caee40a3186d809e6a786724d35cd04348328f6f2f36a4494e4adc3b5a40703038c43337f28a12a5b68a11ac4025ce049f39f668fd0a04d3998983e39c3aff64c994c7c6b29643e88cc2de83a581c65fa71b38c7a625043a399734ae85cee6734811790619c3942565cbc4214251b5ebcd62c065f2d344de2137eb67e9f2dfe5e8e6db28b6b3082ee73afc6105d0edb194cf4f48b38dd99db93a4dd0051e664731302d71c42e3d7634aadbeb2fc1d93fe196f660fc2d840f039ef5829679d10a991642c60cada34bddaf258bd254332f303c86394bc7e8f034a1e92216b883c0489ab5aa3f0aa5b0a76a4a2c0c665203860022fb0edc464767a6afc618c2a8424561188b899d17b818d6c7d0e50b9467a3599796965dbe01862ec297daeef67df0ad8f7c971895496127b80f5b37452e86aee43cfb12cd6c804a7bab18c80f67271ff824bf8b839b57d45a345a0f7700df25b40ac8ee82da97d00b10eef4ff69ba9910dcb3a28e598de749d107156d43e0bd0198d40b6650d55651a8a863f78cca1ba630bdd301aaac2ee5388d0f2a3b34b677b51221181e381bdfccc2c9fa1c7b084a1f890c2d62e04bef232da1a367aa7ff8f07b4351a1750f37deffcd55ac0f7e34b203e8ad1d6688690a282f192ba9dbc703be75efaca7837ea8ae8680ac5ea0383c6d2c703dcc6c925e1f212f6239d45655c0332a5ad420f80152295b2bcb6fc1e3584dfc1ff64f4a037537a12ba034b7c0273ddf7f3a6b9624654c51a57530db2cdd350bfda3ce8504f3639deba398dc36df23e86f4a226c57e3c6565b2d85fe0813aa6be90646e1b66931a07d79b8605685616e4f161013dff8aad35761e8a1296b477c16cf44584cc0c2c2aece5d6595e6e1043aec878aaed5a77c0431aea0647e2090b6476e1aa916da200130b551a9ca9217cd6c4e008d04cada09c03011f12305084975f7fb0eb3bf984cfe6da510f59fa5ce6d8eef3ae88d436fe3da903d5e82479685a34f03fdfe6553050200ce0c783cd52d765506fdf76e21e6b5c56e03a8f148af318678bca37727441d60cbb5a85ba3c968f1197395fe66e7f6cbca6098e0a1ce067735c46f0f8b774f578d92aa02e7b1ecfb70570cfab830f70068cd07afa1ead65cc45f762f85b08e4b90bac00b2ead6843162d55f9503ddf1577d7f6c033456acfe4e83b51a296b3a6a05226298f0c5418dc2e9a44e7ff3bbc5b8477878dfdeb24142c53da4311e825e3b0a3d14700c0e03c62ae75ed4731a5d9bc2f2c6d9c8b4faae06ff78a4299281e8fd1ec3c59fc5d4ffeeddcbb5a7000ef46c82dc0035fd66cc4a7e4efe8a70a0757b54c88866914bc25590610fc3ee0d85809bffb141b69eac6e14f2e06f29d40312dbd72505b5c5108714c69aede23409fe7040fe648049ae685e24c8921de6168743827d2a82fbb8f02d22db55a1787983a178fe9fc01e6005e143d4b9f85c8b1b16e215e96d037d26e29979120c54fcb14a51865891e037a307470259295508620b5c38c9d0372913d186697a4b165cb600b27858c5b63e284b83d59d183f80b5489a49c86d329072732f50bc5c4d23d9e95c53fa3c68367b4dde5f810013f3e3da0b88484f5bf8f3a2ece4ccba3f44633f1e15ba400a836edc8d23f970a67328f47633c950c340b6238ffae56e119a18fa5fd67c1089d777948d110b151a3069505685eca583e3d780cc462fe918331d53893bbd33ec18bb5488c78896117ceb8919756175ba311d2da67519c408cb2bea67d1dc217560b9a6e43fe486856126279f8ef62dc012440e0eaf15442362bf19405bfea205800731999d15014388fcbeccfcb76df2e46b41e030d8f51eb62d192b7ac0a4f39039f657f27b34eb4b7cb49c0555cff3e13a109cad64f963b79201b0ddb2d89811ea72b1b1c97dd8c32cce562901b45418933b644ee53bdfe8d28f0f5d8dd837ba9e5375d8dce5cfcb0f37b4f9c504165a8645f2db62b560124b3a722bff1fc1651345d2d8a9b32adcdad738fa32532bcd016a3fba3286fd45ba51d6734817c11a1ecd8ab3837fdc2b5fdd9fe7d2f8b31a0e5e52cf85f616db2b637176fba11630adef9af5cec17d9715417e981c1f9efd3762d2c1974cbfae74565a04157b288f2e5fe813fc6451c31c991f9f020a0a627251565447ec5f96d94c2d772fbe76fff54d0c5699289b6c9b4493f8205cd112b3fe2f3b73bc6f593fe2a2ca646852018483364d17eaf789c935c49a1a385a72cecc342c87e5875fa4b5320eaa580a7f19526e42743a025f970c20b415b4c1f9436e8f4e1c2331721d4d1df5cc48deb9135b4708d4a1d80baf11a0f1418a8c5ee35eaac54157da53384220b1b3d42e764f6675e4d8a9d166cb7df15a84bf34435cba4000595e12290ea0cf1c825e89f729014435872057b8404b143aeb1a20cd2c1c4f4de7074d1c4dba9515a98a40f8bcca06530f1a49aa92982179913b655e0f2cb2d6a9c25ae850338da7027ea0fd5faf53991620b17efb4d60484b01ef754a4dfc41e58bdec47ce92a6561d0c5ae6d75c083ce2f003b94a5041e512b73672a00b499e24ab47b1c787f800cf74159b6909801b0adec5748f610ed793fab9f804d57b2573e6153d2a1139d989fe1a1e1ea27301876993d1f6b51226272aa58d4213424d92fa073af75b41787278c41df06da98575ebf7e30aef153d4407bf7fbe3c717a378a8e80ad159791fc83958002dadfa40b8d5076251317befe50c0254f5c21ae5ddc54624d58b9967838f7d417c3d793de4137a7993751567897fa4c7ea22bef4349f6422cb441e7ad1704c0a9846ec578fa8216256a393ed046516b097a502f33caec036730af9330ab20fbd7b38fac1d700163787b715609d69f6323c0a694210c018306b782efb7fec88a6e9fd5ea14eeccce72a65efb64fbea1aa86f3bb01c678370495dff95327d138cbdaf3ff1713d288c55f1e82cba7721a358a3ae2509f755c90172d556ff0a146063a3313f637f0d8d409b6e5aa583022df82905d4059a9312c862303557116e21f29e6d833e7121e51d288b59cacc4c0d4741976615d58f211581a7450601b78ecaa3bea1e1bf29c4c40efcc0612c98c3aa91e17b0fd4c3f98a06a2f474088a7802a4179f709674a3ddb2169c314996ed290a66409fc221962b1ff6d1dddd193294821301499c64acfe569e0cb6de35a650d21456fdeed504f0b192991814cf36b6d32dff157442a9c0cbb9e12e2d0140943a952abdd310a9c39b32f82b3b7226bbc15a6679ed17981ff5d06314b0090669c1626e4bb60e4b355159b9b660c31affe1087304fee86a38c0aa38105c5686ee5807c220d3dbdd073bc2145a33a46cc0a44dda9777486e2d0c8eaa66fd5c1fc5c071cd9a337b97f12e58a4fb4eafab6ec6a195ba269350be6e48ed228c2298cabe919fcf75b3a92ee8af268ec064eff39ec184f8b15daffa1479d5c3f557e7fed8d861fa66fc65f8bcfcc979790415730d0ee4cf40c306bd9bc315104c4e99ee1dcb044bc0ef6b568dc35aa30a2755fbf7f1843c38f9b51dabdfeff30ae09f7d6540dbe49225b07f95534d899b428d1778f0fd71ca38046306e5e34d177cfdf7f8c48238e2bb48bf03dc6708908542cc3c2b58f580cdbd548b89e7f310af80321fd1965a8c318434ce7b54320ec7c4f0969a56ed88a3e523ed26dac7cd969e41a574c66808c8198b0b04efbf4f19b9818eb32b58244afa00e4f560111516be54cce6fba6b99953a17001939d04f4266cf61264d75ca628a4f8961a097f626fa13ff203b6b523ed11bed09889c432b72a40dcc205843e283a5632f6a53302f4671019d05ff1ae4662783a7d1c150983749405cc00e1c0c6f8c1cd04f21679f2c607ab0c1dc2cffbfea7228290ed02403e8c778314059858c379dad8511cb3820b6d91fd7ce4748ec5bc5e01f3c8b1c927c9a18d4f0a8853d6c5be790dcd5f07a4c0723c30914c52b591c109a4be348a9370ac3f8fe5f68fafbc72726d02026ccb73acd8663e83e21f9b3cd9548e1491fdb6d75b2c8c01486118f08d4879be82ace001393e3836eb0d4bd75a7af8d40dc9e80e4b3e8c00cb5127842c87886ee1446816784a9c59e401d8644bd1d06b351805e0b282bd418ce28206787f1d028405f90ab1c598bc178d7e18c025c0f77993d1fd38499cfb9b2c3b0cc873b10fefce2f1f443e376be4e4b0e7b07c9f3e612e6d191f84a678360f8d4ea349b61040eb899d56e1b1747679e8fbf0ccbdb90528761489550413e15663d7e1dabeb654cb5a71dace4fb434c19f46e54694296d8df10e06dfa40308512ee713c24d3a808a112be628c498ba57053ccfc2570e3885564656ac7311f6a662c36437f6992e4bf2b333752c96444a7b9bc7ce16c814d5df298ce916319052cca24fe1cef51ac63159c355ecc9d9d1b34cd844445352e83f6d971620f631138ff5feceeb19a37f66897caa7b818e16987b9bbefad55d9112a0ab013f39954c0c88b4e8529df2303a7ff487ea63d8101b682dd8afe9dea8ab0b0e08dba8ad6317e6297693910c7b83c287f40394b7fcc2a8567edac7433f9b0aeaca1c3842190988fbd56dbd80d9ed32ae6e36fc65615e9a57c39ce587eb6d9e36f8448d59ef57fb611d0c07172f390e02ce22742a1a57d31f6c37efe8c40f5d26f6edd374149d1d82bbd2840bd150f36aacc68b201e748c23857a71ba23dc13c94bb4dda087e2fb45319b7f1afe1aa143e0db187aeb92bf68b9f9c343f319852e85958b7d8054d1cd6a81fdb869b4bb40fd155563a70a4c22a8cf7bd3a7002dd372cb58cbd48d2687f975d083f2d6caf2e1628eb67a832d56798e48af4541e8b4e0ec2e6d0e7ff70ffb029efce0784e8d90e3330392ff3c7f8796c3c4aafe293d507fda669b1e2799289122dc2c21a4a6b73e461f99a508561a807aadc3966d0a0469e83122b33e68904742de7feb667ca74a808e8560ffbb3a0ec757047bacd4851048f3e79677cce615312a7cd4bf114721c18dabb2af026090dc526f5bce946a0149e2e96b378be2926f5e6d0523b1581b0a5d7fe063e704bef998841ebe2c473c209aada2dfa61ed278856a2aac154736c10ad38b4ca768bc23c8c998e2c5d3c3810752d648ddaeb4d1898780ca3cddf0afdfd7ffd0013de22420a27dfa148ec38b0057b0716a741344f232b74075fd21218086d4913dabbca73f37db04c6ae59a4d8ac9415bbcd0783bfdc03e2faa29a7762c14432ed73b7f30326838f4dd74651a6970ff1c53da4f40d7610b726a4985fffb648e6560878a334d4e39b8a8306698849f25187a04e77a88204e2b2d2f5a85a2804ef566545025f2b5d6fe97f50a826cd7ad7bb52ef9906d7fd0ed7b152a72fd62aa2fa5437843b0f12b3894121c88225fc0a76ed99283edb391313430aa34e7d47784ec2c11fc45a04261389b74cdcdc6476b82f6bcdc833ee72dfb78c05b5447ba774e6d51c6d44fb39bdc3137792a69e59f5b47513c65a6d4ede5be9f299b59b971ce2cf79d422938066d7e351f314cc566af941b02d12ded71660e9336450fe0a28523a9128b8431700744712849457848e852af4cb93a9a3996c85a47a5acc5aaba7ecfb75aa3148a7798e9bb30cd922b55c5eca1aadaa5e88980b94f657b9b152491382ce5e121ed5d06a7b8788f4919879cc31a8cc48c6484db4f5fa4fe0f0066cc91e9e66b449d6d663d1ed9bc196bc866d87469334e11bc60d4e1211819a3a592c108e3432c5f95bdadcd18dbdcc16958ea40e90bc064802e5427571c4c985250282aff978677f78455ada0831d4b001010972cd62c849ed741c12293560e72e4cd7174a69315dead237a56adb9f7e9cdb9726bb81c6a8d48b3b808dbf2be45657e8b881197935b2e623a007a6024e4cd4391918135ac82b0f3c38842e39e0cc850f8444fdebca391043880bbe8b2f80ef3480683fabb5729bc141f5d3f927a8783c007386af33b16639dab69fb7b07015f0fcf782cd9eb1eb1c17e1f463e13c1deaee02e9d4a2d56edd9e7f824d0088dbcc5aa81af97242d08145c96a3826e36fa6cecc00b8c0eea333e7e60eb16a86586f0ca4f88db598e235aa50aa2c3632b448c717526306a86cf161fd2a6a1806379bcac96bbf0b8aa307cd20707de9d8e80cf9326dc456ceb5eb8ec1f35c35580ad5baa77e123e40936e98ce21a798b3327625c7d974ef8eba3f7d45e47c6e3f6f91344489a96e9fa01de9cb2ed86dd991d1beff211b713d591c751386c9192d71ade6edaf05165b681194762c46ec9e444d48cf4b750a428568a860d7bd0469b56411f8784e2f6801a1533acce039a95755449e264885e09d6be106e3409a807ba4f63f7b5000f35656451c12cd549dc6589e53edadea349b4a94cb9bda6314bcd64ece3429777cc3a2ed4fb85ed58a94654af668b9c3357aebb9b398e2c0b19f0611a654149c0b928d00d4e7da00d5ae45e19c7103227796a159a11f4951da5a493d1ec22306720151f9fc84bf6b9ab53077a44103ebb37d8fdc40a510842c61ba9cba800d8c62e352ef9b27d4c9b9c88879ff9f4d1b9d27f8b4f71b14c691b8d84228c8b7b03a333755ca43b798bd6194be4fa8749fa30d1be45fae4adbb3cbb9c10bfc6d429dff94b0f69454b05494cc3dcc9687a71913c0e4522e41c70198da2e0791292a74e481c00a5c475d59cbe22b1f787a751616bc7cd7b549619d38f158dc72d81479bcd156d1b7078e4202d93bdeae416d71e5e6d066f3c5e20a0876c04094756b7231559b422a801c64fc78b24ad467c09cd8c48f90c5a0b6562aa64793c78233dca0f051227007772f9fe918e80b2a79c80e4cf45da24185eaed4eb5e9f3da1fecdcaa7b29b03a9424faa230eadd656851a288122f2f25ccb8d81a09b64c4212a76c6a10ecc92eacf8415a4ac97fb8d889ab3eb3398b9376f5c289b74e6b99b22163d18efe8eb16c5044253e4444afcc8581fe8cc6b6097e5a4e784cc7e01a32ea0c722af77cb9fbcc668dc204ff44535a171db62d14dd369d97a4ca43b993078fe28434a4eb824f456f1edf1c8ff850c65d77791f97b2cba49a6dfc904127291ce4553c6bc8a72d140a80e655357647ce643d4d0e2e98445ba5c15000562691613464acde660019b88e300fb91d3c15663ba0c7d934053f292da93333d774575f78b83b29d3ef797185c400172b0b09bbfbbb5446b4b2e9998a9e907820eb3fea255635aa3cd92433c4c1c0f77c1edd5e488a3fa15fe2a6f480449d3beeb73f8c2e11a3ea2873a455c598ba6d12a8d60408e057133c5ab4542c066d1880824197f0ce76d3e19f0ab917b3bc7463f6db01bbeb67583db82ca9bcded6b0234e42e615ce826a0c999ea64ecf0d17ba7be5c7b44b80d59f4952f321ead2ed3a9f688dd3fbc59f7dd66fdc3d015b2475f90a154001b684afbaaf0f827b0faf8aca85a5cc22ee7eb7232e68575f98cf1ddb1a4352c6da937d4011a75e66e05185619fc77c49e8c08122584cb2e96c0f833a074a24a08de1ce34f9eaff4019151c7572c2cc52016441d3d10c084deb9c41448f1422c88ca40beba334b22e2c3d52cd81e194cc42b84e65a06ad9a2eda3dc503daa0fcc339bc0d70813d3710d41b2c9bb98a6aadeac968672dd83dc9a77da60419f969a7e65f4a06f5c32365d601ce3545e2ab1c07c0835b98edb0112b8ae9721bb66ff6581073380301ae36db329c97c0b2866bbdc05637ccf264171ae63ae6a865df3bda5db90aaae5dd77e4f6f63e0288a6e8efbcb829f869c117e46eb6c02c3be71a34e5103375552186a152e28327b638b1ed0b2328d6900786642d8ce0a835c63906c1fa784b86ab040704ae93dd22799baa37a580863c0489059302f08f6d5c12b329b910e7f9b5dffb65071af1d135624c3d648144431d9671d8deb2b93956894344968cda0dde96bde743d49576a3104e45c9ca1819dbf1c7d6ec3720b67dec10c6579f1a46550b27b75ff2b069585b74d0518374df9de2bf44fb792a5ae61392f6d64407b8a4430a3c35c4d045534c2c64819da1bc2bbebc31c986374d438aae1006cdcdef49ecce085a1927d00574642433229781b068909d18044fcd893d7aa959ba832814eb751ac811ab73d8a97acd3427d55e6e8c7c5183663107c203ec5ae14a8613bfdfb6ddb3b9c1e9c766e6861c359cac5ac4d38146eb55b4bbbbe2489f26393028a2e701f44e3f602b726fee76584c32fa932408966e0e7d3168b4d45ae48916e4975bc53bcf7a10a642e5576635f9d2a34459448772a78e2f17bff616aa2864817660474d015f98b05be82d1bfedbee93ab8518b97fbbda80fa98a312ea392aac622ec767f36d83177a4e933a8d16d6b14abbf5fb4ceb0eacb3c2c2e39ef8d6fbea1b644cd35a162529b74993c35384bfa203cf20ba61304f8d7b8b2c5179752acaa1749f4c788caf09c2c5373be17551f5bd329364918028957827cfee0b337602470d1235bd3acd36a67ce2db06ac834f5d1584d847b3b9870ef5b17ab0821273aefd5cc9201a3f8cf78abe53a7a16dee2f0ef09186b4b0ebd2a122c7a5cefa1e251d739f33cde8b5ae4d050f9dfd7532f5f82b3fedb567962862475bbef344063c022ebbf6e5f508b5305da6a074b1829f7546d33f39281dde8429c96d32ff8bf8eaedcbb8541f2991bb9ac4d3fb19939556ff5047f199d01e68a46013d922e4a59e9656c078a4a0753f29d59f4ba812adac942ac3f65429903c1e9c155fdf42bf780f245d18cccc4b9d65926cb0eb1bd0947b157473d383d0d48debeb70b1abb66c704c3ac5d2ab702e9e565af883412e88332ec683ef59839c51822ffc66cd144e47025a23c63675d226667b1c59a1ce87d30995de4e65fe463580e39fb740f2a9700892f368685df8157143e8990f6b5c941365a96e6efeef134ea1a9321603a5bc2f7331170f39302ac317cf57dbdd457b4116117658997d66bff431433b609f005304efcba398fc82e70ffdaee42329c3a4d67202c921d00c3708345b7fd4d353a59d105d3e200d11fee5b54bff992e79401a1f13990bb736f7626ac69d05a2b3ec74df6b47a97dfcceb71ee4e88392dfcb344720013014bb90acc18a5e527493bd06bfe98853ca8ec7663dab3d1758a365765a5b365494ff6b4a25c9c5f8eea43aa523d4db0d2a5b2dd4e080299183f04e44265072a432da6ae33e537c53f665bd0dd5e1de56a9b032aeb60e422981800c8c4b58eb81e698ab45a1984cd4e329819118b54ab7f6de0a6c6084f0db88f97b56a83380558b9ff899962bcd72f65223ba2efbc9d5510c7c0aaad99b14a70087d0986a6e2ee1611ee79555822d5825b927a361acd2749eebac8c436ec6a4af7225e791ab56d84eae56aca77ea44161c77026883739c4274110534b2727a277756304411728111b047f6a2856c0e3963c96087ecf8c5e781e5c25bf6af6d94739308640a9391420bcd4cae3090a3bdd99deb794d30c805a91901a4e62f7c29aeb119ce05013c0984c9008b017c28f40522d5aea2c03096db698b4afc3e275e6667c5ac0fa3a6e224adaba385628d6c3352a1a4e12982c229ab841af342a71dd0e35c9803cf95baf2957134ca26d2204d3c06a78591b3fcadea1eb66417889d7e09b98191967fac33638ce42d8c64c7e86a8cddfed2b395b5e002c3469f05f778ac636ec65542a4db9d3d57405f264888806a5759dcc3fd4c71911152eba0d69a024a902b4be237c05e4560fe7a08ce19cc3dd448d294ca402a91f96137dca67af485bd7df44e77069ac529b1f19b515087f49d846cc096aeee9722b213efe43acdb2dcc71165a572081be768037a07389c789fcf2ba0bfeddc968924592243ff5d9fe29390602173812377ca4eecc93b16456d27f34c7693b16a2be821f2853745c9b11f90a401aeed9f477e91d847b09f12e4b6f0f6ac1719b429092b08c5d887f9b0bd85886f0ea0830affe5e6db20b167f154bc0a7723fba503dde67a8cb967fc1a4f62b1c69153a150e8c621e9341d81c71399de9c1e0afebaed0e2b34fbc3ae192689713d2cb332fdee76590ab3492dffa3f7ff995d0cb32b6945d85232c486884a66869a0aea3148c70aef80e75dd66b0287d16770dfe0e2d03e513880c73a503e4e028de02c6a0c05980fa279c9fecbaf496d5fbfd1055403a5b77a4f008b2ebe0c958e2a3906a91681324e931bc96cde978e589ee1086ad092ba847b2a4434dfad47f7c9d600b64704fcda198aaf01cf567ab30bceab40f835fc8b3eee29fb8b0c72a10f54f870ab100f61a94b39cfc376df334daa15ad25f1032d2eae8f9e6b37e74bd69a3d4b3640fcfa05440a804bccf769d22aa21399856d9fefa7bdb176da5b1bb318d9571849590809c6cc15e3a8547f4e5b91483e720f855b47da68e2c014a430e6a23ab36157bf416fd69c973fcd73a2728c8be2b1330b658877f4bde880cb0f812437a92da99b6870d4a882bce9e84efb665afc8407036140c74c8997650fae66a393859ca8dd32fec8559da8d4b964fc838802aa672e38756961eb4d0706f9da154cea53987b4e6d26b82db7b0f0d8d6b18d7ac90905c9c22814e5c2d700c45c6c4e96e129e32500b33b7602e2f4bc2dbb3603024eee0dec6120feb9608c2ba3d31e85979f8449f2c5d9482ce2661711058b2d4346bccbbcde7582f22b366b569c408ee70d40e5cae5680bc9d93bfee0b23d653c99949ae8375580b07e77241644940b25a33fb748c07bb6a946ee1a8599e4f09901889e3cc45a5cb0e1f50788d161b190ce8b6e25c456ba9374447e8977596af9b5662c5957ead2eb3b83a0ba70d290a2494ccc38cd4ae9edcbe32cb735edd676cd4f980bb9c8782888f47d31897067be0f9bd3dda195ed6659f76533184de2e36dc16e9e2c3e9973f64264204cd722c51388f067abd654ac16ffcceab5b0c89fe1027388340729292328a7ba96092da8712730884737ab99ce099445dc055f41b227a6fb86616c2eee0dfb6278fa70eca5b938206e1d1b06c69438549f2acf781af3dcf453c3ae90b489685fabf52158b5605c8263c66369b0a1633fe29138185cb8267eaa5aabc68b62c776efa40d2af458d29e37327b7f8d9ac73627c93392773bab3898d653ca0c33f85d1834afa65b009e550fd75a86189cd3347b82cffd5f79bd3cc5c14a0745d05c64d6599035cf00d3c3762823d493fd8080a79543d766427fcad2a79a6d6bf8efac1eea317ff45af0796df220a490d97fbac088e37baeb08dfad6169be40c40d73aa510fcd3d887f462d514bfb36d7ebfc05a5a6b101a0e89dd2ed46fe2ba94a2d98f5af352bb494f42f68b6a6df3aaf6d3421da9137636fd49e2cea0e52016e649a9fcffcee16ed51a48218ff74338ccb01bb3da3b96b73aa4eecee5837fcc25436f9994a1719e5b19c3d3fa740b843e8db269db745c2969a4629da0feabe2bdfe5477680b0597e3207babf085095f07e9f38d21f158cdfff54482e934e0404dd3443b5611b2e229fb7502998919430d8ac351c0064802b999ed41573845c847414081d0b6019927d055135e6edbda1c31b0f7afe302f53466fbc93c61a20452ac69690035ea2ced527aeb40c0c8d2bfd6b46d248887eb5a169634fb9b045d2c2a9488f7153b9d6e2695b5c0c63c087ef8d66508fc2a985fe5c72461576fa0346c800e6d72c98b535d40264410fd817adb0c06e274578281dc2b24dba4a6a31e673a824377e1a6fc8f69d0467c77cd6d5aa1a618b701924b1313182e744f63b331b10a5e133895cd95f43dd0a0677aee4a7a60570c2814dd5829474ff298089d69b76671cb36de7ba0c1dc4cdb9ae16ab6786e4416b49a21a6a113b5b89304900aa200822262dbfbff118abbe18c5bc904532d1037052f4306f9167a21ced8545cb3aca0c3b4fdb4a0d0e303f701fcb6a0e6c72fbd81479f74052eb6354aa808d6810a2b604c942a0c818fc72e1bc79319e1f7d474e900c58bd29734ddd57d5b5209978410f511d8072c01c9307b81daf14bf502f8136dffa2e2b61f6cef900880080abbf179c2647639d67cb3b1fa1ade057970ee571e2a046b11a834816d33b812cf3183a07f66d726279e6aba9ce12e269962a921bdcbac8c223958eb1e7027427a53030402c3b6da1d041e1280df06fa11cefcf1febee8d97f426b7c83aa5d24d87ecd0e33998b31d5e61f8314676090d4661f3fb77c7b4669065b42870021cde96e5b0ee66ecf07242bd04d71e482466c24aa4aae9ce5fbac1ae787903f294bdec0ba2dfb1f809e52e4a456846f345a7e45a3c516a8455dd147eca0d1850f559be954ad0d82740ca6e2cf08d441979cf31bd9ec0f1d66ffbcb7ed9ea85b7b7cebe9235a05532f4a8f2d02c54db0228908cfbaa0d1ab9c11375a50a74cd3ca1897ddffafcbd819423b90310c304558f39c3d9df489a43cd32cdb2f6f923be12db92873b1336586e6549c45589bcaf089753625411559662857fe4980f24ad7c09551bc5e60862454b9a7046feaab94c9c1b8250140d683ed6eb46d3697e6fafcf5ce6cb235114cd63aebf55b8ba463403b6e9948568ba0eeaaaca8daab70864bae89f49a05670645a2d9cb745260443c0a72606af901daca55fcf467c81341d75b1dbccfb2c3863a95192d2cf7173e16123d2396d8ada43c38c4ac5bc37e86e9abc4ba99f3c2534026d4d419c5f55bd55d59556c906e53931258a27b94220cb249daf52eb5d829ed872233a39eae4fcabfe341f1d9a5d9328277d8fabcdcd99475cae0f5ce83e9cb71f9e5153b92af2fcf7bead7b399e26b3c10424748d514a95b45f6a21b28b0247e43fbef82601d2c1818ab5981ea9b8f31ee889d39da5bdbb4388b61d8c6aa99a42ae139bf0dfd5f69664e3b1420e702150de295a4484f938285c4abf14019fa3838fffc33ceb27cb96dbbf97e6f6c1cffe642f69a61d8b72d83a067d0808abedd336cd851094866c11a71ffc3f2df78b0616ad6db791ddae50b980e64330caa7c0dbdcb51bc6a737f801cb58b6815d8a211381dfe6491ca8eb8c16dff63003527300a081e0b20935907c0b8876109ded4ac3a3440b5b712202bfd13400386e2f650f770a55c8527442220488b3a478374ecd80557673d6c5737de7d09e6a2e594b35844b90683214154268c27db30fb245c563397ab010d1fb81bed0a4ec8ea0811947b440763da640072f78b0afa80ea8d32aff4bf2cadb981c6ec928b6440401321f2d72d134f043de42e23c41803467b3411c125a1435188829d6655bbba8c3bd5e9d15057ec497a323a86a5d5bceef946135f8febb9e586f690e8046181f740fcc730c52a05083d61fc0a56d5ce4daa7ce98631494119f31d83ef3131baaa0b8c7a50b22e15e08567b2272e0e9f81daf3513f8a921717d5768810269d4f45035ae863b09ec9440ba1f20196ef0355090eef90c0cf1d31ad8d215430c033a0c72af13afd33cdb7c0d97c128b4037bb0ee02c53acdd29b5f00d0948dcf35fbb68e0437c7303bd0caee9ffb1464ccf40d9a0bdbe33041f836b7547ec18eaa82ccd87190a585143449cb001e1d5197a48dd2637c94e3c092ca5ef1499bd6a0323ee244697d5127b53c13af9c93191f20208e610adfa946032c7f427158bbb90281a19182adbc446198cb7b9df771cf0b083ad0b0cc715208ac79d8d1c6bae819719d0732d5cf8f6c5fb410414566b03dbbbe1af09a0663f505f60b8030b5a58805e721acec46159c835e464624a2159261598d21d90274200b905149ed5f188ae99ccaf4e8d94f79d42a4cdb306137ba8de3516e9b42cc82333c970cd59cd8cc55548eed3b9907ee169562cc527ea1ff4006e43f8bd912e4d9d64098c08c0d5a4bd5e57acb0cb639c91618aee2a005213db74ac2411c80c8ec8281a6c614345800c3c21b906372ed4d42738711a7ac4c19995953776506e4c07842bc790bd2a6a3f5fc88d9d832e011dc0259075c6a7fc3ae608eae94df8eb553a2f38e4c59c7d04ecf69b2d3e8ed6a65b30f0cd04a8fe1e358480b52008a72ca77c8a2d3f5ed1cab234c1a31adf7414fcbe9b9348b7ed3e47641200a1bf22c6afeb4fedff3e870a056245fd58bbe6cd3dac1cd6d5dddbb9efc69b6636db6aed2ebbefc69371b079411d811dbce5c1c44ac8fc0769f356c7ececc9cb40cfc7f14f779cf755f468720c0004b65f7bc096f1b32845661740cc953054848506a150978134b51842c49ad00ba27b24accd29106f8275bd891f8f91449b44f99cb9661cea67b3049c20f140bbaf22173c3c059ac68fd6984b59e9d082f1d4d680a24d53590c416d7104f2f156cdc7fa1870586b95c6551453cadfcc5217716f57cb8fc9474e87857da49f6a47d4b8c09672da1c885a6a9ec1f3aa47ee3ca2d4f92af005662c93a7ee2d72747bfdcade0bb56f45d8b728dda03dfed4ba536008ede00beb9aa1eee39f145ba3e762b9bc42c3a80e60c49f35c55bf8923e44435ccded2f9a24512b84ec20e0e30243fa58092bf91b443f1a1c53891563b14c8729125685924ebad73e5d8951619c45d107aba4353a72397e316eba13e63b0212e1988dc5263aedf104d1feb1c49670fcea36abf7b40e68d7e7ff5a79e1610ed88fcfc014a0e3424469e929d40a84e6547c42145f5ff16219ca264fe175a55dde00fcca0dc207b162199d8b26a64e70f581094fef550ef0d44a0a948c787696c0444ee5fbe2bbfd3d56e9eaf73235036508a799566cf0b21543f62250671913b7711a28b7d0ad3ce141a4d0642c1b393388f0a92e48a9338002c9f8dcdef145ada67ba8e226647f569c56a7f4848ef1a83c1bd16e917063e98230c696818a44c58904ca73c6f797c5b13375b74c06ffd65b21f92c5a4d2d1d6c83bda2d2826a6f64beaf0b8ffb3d11b9faac494bfda62e54e1f2f01b13ba7a64903f14d328d00726cd3f316389a12a41d84933b947dbd33fa34dd021c25b522384baca229336603099aa3544d8aed29d294052e708f4258ea4df3c3305481d24275a1137c6b3d3547a9cac2e4ab4071ffead8e6e7cc05d939cbd0a10fa87e1514a9929c2bb22b386dafbd372f739a4f1e3ccd7fc9cd7fa1da1d8423de3bf3baf1d3e1ee88429fe742ff135ea44ec725b1685c0973a1b31689d67161d2f590cc540ebd5a8d85940e93d681209155349f6490e0d4af6319a86bba2803bacc0373e7484bf584461fc80dd94072789d5f9f40e55b1500b4b7257a481c5e1d4f0532150935e471fd4b3fff3df84625cb607e5804ff8c3908ad840f65babbf92ed423814c824c55063f4749a8808c9117a7dd3bafb26cff0d0aa73f7b7fa9373d7272a83bc529c94d0178e8524cf37cfe1dead39fe63b3c2674401cca96c6d987e6bb0e356cb4ae4341aafc70cae681e6f39d215d1fbcfcc250af7f4fdf02fc425bc91a9051875c098dffe8b8a5192ac7b5ebd092b478a0064575b3d8853ef01635a1655154e493fcbb0a8c7d92192ee3d0d1ae50f093720b655139967b8e98675fbc76621157fa65bd51d1e2fb99c3741f06c4f668504d3cd6d1a52d0b385f44447d9f2c56f71901464088c9a8c6f5e745e5d0e00300fdf11859e59d0ac3ec039ea59c2415489ce3199e0775b887db9c2f10b4202fe7bc6b7d12a27714adf44a91abe9449e118937aecc1f64f2a7e33d13bc1df45074edb961bbb81b6cd14054f6814e77e1a779e0cdbb1275aee38abab3814d40800d81b199daa581dedbd60e3fddb8cc0974a5558718681396222485690aea3b055e044decf9e6f5459cdc16266e2e372c19006848eb3888a3e737eaee74bf6879e565f40cb3bc9afceb65d16f40af01cc3e33a581fb415bd5a488017b1b54fb57bf19f1d5a45789fc6da19066365073b74abf90b2ac95ae7fc84b490939b79cb8b95401970f750b0fe78ed61792c312128ecf11789018977c5fcbce9501b001e7b2637080775df209a9e1c1681ca099c528ccf0e3e5a61e83b67a66f6f35033c8dcdcab70e01d6825fdd41239ec28360d803acceed04c743a7aa59a341bc13802a000534009fa7de9466ece2bc199d866986744ce3333fad009a5358d54b8c589b719fbda66cdd75642a9b59ae69520c62e2481dd0b9e11a4d20aa69651a96421dbbc602621dd963bb43678a9ad55139497a23ac4a902ea340e62b3327c3362a92b51ba323ceba89405a3a8d896da63014f0c394534f643e56e560244d20e3f607184ae21ef0b4b3f2e6f200b459115f990dec8ee7ff91b612390786cea7950fd21a557b94050a26ded9e0b80524e97e135467b4f0670d4d5f1072a6f897923f64dbec104c3e6983df54ef5d4f0ff5ece656924318b3f8ff2224b1d9fea2c76b243f0d4c504b0e97fb24bae1c199d1974ae6b226554a3c7f7e2cbf8e7ed704afb9a00d678d74f776ea686ba32facda9f6e029e5bb89e85070a24a067d0f5cafdf3cf08d485b3bc07e215cd27214eb7b68d9fe2f964594bcaa0eea40c234225b9f0f88d099fe47c9bc4c308b1f5dc1e13c270662251eb37dc96669e70335860ba6b8c6c15e27261d3502d3cac5e57a90b36133cdfccfa623c6e032f81d4a2f2506072c7f72d8c41b12fb405a78d546a9362aac144f605ba36733bbfa27cd2ac32f51938764d0e2597f1a89086a3fac01dd4516fdd91ba77bdbebfe651ac4b28039f16e1291c8a407d0f315f6b729b1bc9ff36d91e72e36f0659fdb9a3c0b6fcf938e49d1a8859daf63b695f838bfdde852bcfe28a243ff7ced2124309372108f7a630099e87bb1c8e380c542f6d95ab4b8cd7483d8f22c3fd503815d53267e7df6cb1b0f581e8510b3cc9cd48888fd9ffa88e955fc34e6c77bb2e93484607645c30416415c41d42bd136dfb998b4f7c668ad04ddb672123e626d8a954f272a8637a01b9ac54ffdb38daeb1e7accbb84794323784171df45fd769dfaa8f346d74492013db4c90d1b2f910fbc4d0a2a5a90bedbdf8be0d09d0e28e43260fdbe3b3e5a045d8a00561e51696822bfa63ae2fdc800954dcb2849981af8b772d15908ec5bd3b7f2807dc0f5318ae1af3bd3dc9524a55c61725ba4f004e44000cb189d00c9097b7986b42121bb28ac94a6c89c370b10178fc4adfea066b5fc4003b10ed52d07ca8795c4c065474a30b88bb5d7188f1acfb4bb07704ce9b6c5fd820285f340d5141626e2609696a8cb14ff101fb12160bd4567e44163174aeda47478b6a7e3b1effa720d1bc1095a3a89140c5a013a8d09814a858d24f5641fb82aa0715eb6c623f224003a40215da3faebd1c76fa43a3374f015f0cf3b25b3042e363d56d3f07fcad3e41c683c142f1b7af63042cd130d5d50bfd46e99ba95fc2202827d2aa03e2356549da06667cc5587a5d262c41d4ae7a49889b63dc921f330a3f90fc12c42ec593a3a0d92cabc5a90816a107a19a56f1b23678c3d5c5342bf6fbabe3a2e2c9177ed01c39a5a176a482985b388fce0266241b51c3303aaa1f8b731b1d9db1ca1905c21c1306a794aa2b473eddf03bf84a497f70809bd68056d19e7ea31e191caac866aeeded1aa5385013188e2af2d26578c03f892d0f803bb89bcf9fbad19fff444fee27c46c144408de60c1a6cf9e73828157b7a25dfcd1cf65fd1127c32c3bfd16961f57b802ef0fa784a9135c01cd5e6806b0686607ccf8337f18fee6578004eb3c1b7049c58bc677d987a599334537642a7694ce1026c79f626780bdd20b1eeeae190ec80c0584feb9d9934f971e6fca1aa82c0c4c87f1a3afc74fbc4678d856fa8cb4dd9c7c5c9043f8a10ce6bc06203bef1474b47a41c8ac2f47e670f2c545b2ddf42be539b98c6f2680fec2d3def89cd597737ff994f616aa9ce234dca6c0bca4577017f1d7ed0501cd8076e92ac371b1c5fd67e97da24cf2f11b1159b2aa6a96caf611863144f031b34de7aec4e8b9205918bffd8c32310184fc3a91c7f29b9f024ee6932426bb337fcce3d6f7981b0f0cfa1cdfa356599ce3cbdd7c9af85d6e5810670852286f57c347a804fbac9d2c1fd926124d7dda1cc2eab85a90b706ecc0862801a16aa7733e60b6289a458a0f40b8af9516e366c1f6d5420a374400015dba41fbfef460d5b37fa0dd344bd7c8048851bb7906fb4e0da137fe1a099fa250cb68ffb0ba19485f1c4d51ad8c59139c199aa6b68b6caaa5c6a8d67e809bf525fa3cc0a31acba493f1932c82093a916f8eb028cd69242fc17d85a094a8d07b57f7299ca0387a0d9facbcdc9fc76014d5ec1fc2550ba051103b2889cfaace28517df15b970380efcd1aefa6789baad684512a2efb9f813bc41edbcfbf3747fc232c3da87ee51418b262c906617356146a1c2ad0ecd45db6961e9ac3791bb84005bb9c9b844a27f7fa6cbb1ab260b81b8d7eb287a1f4ebc98705ae4e2f455d60fd1eca0a12d69e901374fba996d59f3a4fef951ca3402fe444e29c8f6164a28bae5180e7a998454e2d069d8fd8896a0040f76fdcc8872e4ca38b73f9c51f0dce038bd79c459887ca7b277856cce3a9b31faef1269c994d56e8af44b7e2fd4de57c55e16a669ff0db767734eebd139116a8957c1d201e3738eee6d11ce555254b1df296761221d5332a71bdf8483930e0836849d2d5bcfe955632a01971ffa16011e9c78a20495b3d8130153254d719bc1cb18479ef568c0702d410f5c83eda6eb53889f6970a1159758085fd4f445e4905b21686a0ea69832cc772acab9a30fc5e366829e1e47fd9d00061a84b218a395b7fce49ea021bf9700decbf34c61ef7fae91b19c22de81f1d343a4e8cbdac15f962b88e4e4cc72567382b9700c8059521400f60537dc7987b234442e1ade6c4178b16003718f23d244204e9b4b29ebc322779f574c41707000091dadd5e4ab224e1a44e928799bfcc2f47f9e584ff9cf39d337e3997fc62c8110378bf1620d568bf60c4cb20add5c1b6610a85fdbe303f1709108910ea082bacd8481bcb6d0ef975130f153cdc86a1f9a3a705dcf2be58407290623d43a071a6ff278c25e0d09879085f48346ddfc6d4c4a5075629338806473a512d3fea37be2633f3931f97e0c1ecb8fca7a0a43dc00a6e398398043553896bd9b2a6a106e310c96388d54cdda4fca657a40c2b95877523c19b2eb33e37db850603ef5b661d3b9b404e41e64fd6a654d1ec5b506138ecb4e9203933cad2f2413801b93c1344aa3db432de9959b1029e29fdd2268cf7c85eb50cb606c0aee5e6c610ca42a7b27235a04f90e3f90259bff9fefc75cc4ea46e29936d67b1e587f3d394a5e751ca2a8df8cf2155f294c547ad5da317e36d90b57dd01d89763b47614e9d6b6d4149c6ac8432247e76bad92cfb3c72f912709ca5fd0a4da7acd51083afb2002a50bf09506b5543dfad06c70c8a0133dafefaf3890134cb3e038ce9b479fdff0ce38ed0dd56b35297f4f3d96140fbc3cf3f268ba48ad53167cc7a76a6c7046541972f8b51b2e4fb614c03ac91eedfb8f726612d881396780e4cb77c57b03307304274d815b207c49237408b1136e3038c8103ca8906845b30d0324e07c95cf25c69d3716d3cbde6003282ea620d04891d8ae503188035e9dd71d62452cf2b16e4ec06cc296de29b1d1101a5845885002c616c8aada0783ae2496908e113a886ce3ecf3693b58a3f316cb4c996724b99529201f8078c08d30748d279b621dbc6c666668a0de36cb6c08695038303957c6a82330f882fbbf312a18c2c515ef1c58a2f95afe2905440bbf80868856ec51662a861618e5c2e27318f370a29f077770f000abf028ca8b2f0624dd8dd807cfcf81e90f802f229d1b1d2839e1790fff1cd30b383d78ff75c20f2f245f89a7e4803f966886274d1c510af1fef9d7e7c46cca840bf64c29557ba94cd43887d2e7fa47dccb29d934da4d92d1cffa308bd38dee361840d39e6795146a9f48aabe49a84aacbcd28965615a142303cb021f5b9fc611785caba25a55b32771ac50701ddcfc935375fceefbe0e98ee06e40f7197b45ef14f960de753d3479c8f093fceb021c7f95c7e4e167338a4fa21977499c23899c7a60e6baee746de91f7a976b951afdad547bde2f7b8749f88782afc173694351acee550d664ad0636749b91bb6ae4cc6d0e6404366ca4cb4e1473fa43c0f7a35117c5fbb08b72f9bb08eb722cdeb0ae7facfb438b652e31a7a85b61c3c2ae79e00b7c5fe01b368cfa20c3c6628e90dbe2e6cb268da92c66723cbb5c2ec24386c33a42b04e8b85f0f77b9d5fa554596db1ce8c0a0ed2a116ebc4cb0f435fee59c63f1c2584a12ffd91b14fac55d583a1aff462b1203558496512945d18a23bc1fa1c95c57bb9caaa149fd8092cb0cf0171419cacdaea51bd552edd423d7f45aa491dac5b1f3c7fc7d32d1fcfdff5744bbaf5cfdfc53a9f6e8143ed6a989576b94d4abb1a69d6adea13a55b397e8b1163b96c83824abb64cd57fcfd35d40a15a27446872811a5d1226a446bddea803ccf9e255f79524996cbe5a31f6fab47f556b954a49ad4c17c7c1d4fd7d32de9629d4fab6a94fad3aa59abea50aff8ab955e21b9ab4ae915ff9694118c06c39282c22a71f9a95cfe9a8f52a13fd40a15a258e88c12511a2dfaa811ad51a02dbde25fd253793e09fcf87e5fdffffa82f035f7f8e2e5f1f14d7d7c777cbce5c674dfbc5e9d40be46727eb90d29050be792c993c4451e5d0edd56ef0fb0f485f4bbf713914f76770a6807459799bbbb7bc69f7637f775ffe3f3dcd475201d8a9dbeea53a554d957a9b48abf7861e2edea35515992bcb9447259935c52c2f2e2708fd2ba655b35e38145fa7a94a85b56b0748b75c45c3f9e67ddfaa2b8fac5ef55b7ddba15caf7237ee7d2add9063327ebe68abc5c4e166ff85d9c8cfdd961ad621d8f01ec36ac5bb17b391381681095d1cff2d890ca28143127a85b938dcb4f65940afdf18edf6d74c9e18ba42b6d7c61f4230d22dcd0e2891dbab0e295438b153c626061c2830d5ede802f9a40824a0f3e78e1e4e52e5dca8621d241917c7bb96fbe7fcd552a6bd7090683c16878f1d31f25a8101d7223e832b57299065da6582ed3d965a6345a74f92b9554ce20c0af64400ed6f27bb23ffff971930139d8ff2b41bff9d127fff2a988db5aa525a8f965cd5d541657fcb5266b5c2025f5b8718a2b5270432abbfce32b6e1927731703843803ca115cbac881062fd6c02c092fb634d1450c6ce86e35ad1386579b49c08dee6e1a8223fa77f987b82bbe6644d6dec03e078e60c1962480c0e2861c5e0ad0a28d2b909eb0d1f3c48b7f480afcfe55954de1f0ad1f536c88ba2dcc28b78519e48ab0fec862b9dcbffc352aae37c6bf610997630464538a789640e289225efda9e88a5e88810493328090b2c4c9ab63693039a2082c49a4418397098d27baa8d1831b5472f07231ccb160dd8e4257323333bb00c21b6ff4e0cee7de40cdabfe52767d74bbb6b5aa33ba9d51d775a6475954347dc93399fec41cefe972edd2275bd5d5a794e337dd0d34089a4e3c89aec732f697006ec952e6d8116fbc96608ea862d95282286fd4a35838af8a35ec64c82e425d806e3861377629a20be3a0cb92a4eab977f4918533bbbb943c46c8792a32394aabf4fba7aa701c15766a32d578d7e5f4dc4d9452a9953b29fd855552c28b798f770ef5ca5b162749b75e3e3e0cdd3abde9e32b81310f237192fdf8cdd32d985ec2b1a8a7666fec1f47ea536d0e5d7f8f33e28aae73b438e764ae19c272efb5c948de39e9165ab4850a3571276ad44d6b740b73fdd2d5be6ecbd7d95ae55cedfabf7cdc8c1b327d1c1147e38a3ecea855fed3662b9a46dfacb98a2cade62e6aeb953f83b4a855fe5be8d10b328a7f7123172f985dbe6189e7ce1c5c8f5cbcc0e7fad3a36ef9f535ba9a6466ae25212a730a416fd7b95cf67ea9827a9bbb506057eb953fb575356a74fd7960b1b59fde3e7a446d69586abb01200736de17e66da14acfbf50cf5fe2e956488b2e8d86a0a7454d8dba458f5a556b170aa4b75ef9539b5f104860c3ae3654ebb674cbd6adfafe75e795e3e547233c3228c9c2f9a88d22f9ca511fec7a8e970173804a6450e0c7578e0fed9579d4c7d70c835576bc8ea7361d5f0a329f122356907914a884998c600ad84b0664f90a878fa537901eb5ca05c063e9476da7393f98ed9ff53d6aeb165f6aebd68c0a5cfbfad368b521e78ceebc5d9fb6eb5cec3ad7733d7ce7a25c7f8ac59f42d1aea74a34b5d2948aff2ca23c2d73aeb6c5a994ebd4e73a5d72dd39a1eb5cd075eee73a97c4853bba4e6dadf2ae66bbfeddad43ea6a9dcdbf2be5aac47c3c1131620308b79849d47368de984ff68abb520ca67750e1c59ab081bad51cbd232ecd0d4d7349e7d3526e374f5cb5cb0ba7d22df956400e9c9cc448cc0f44032bb71f6e3d6aac314dac866dce3939aa8616fed490017d9181c7ed49c9b76f142281ecca7706e460e78d5cdc80aecb03f460f96baf207efdf5cb8700bf8312a4dc9c1cc77132b80ca5efe4f74bc09fdf88155c06f9fd50bcf8cd2460037103acc290176b3c9fe19803b17710e9d3ef1beb70120ba14f198d548ca1db706912ed98d3970ec51c6698bbfa27aee8035dfa4197d2173a75957843bf67552efd9eb92b49afe8d76a6d2a75931fcb5a45bf3f96d22afafc71947843994aaf9258877b884228e5135cfa61d38f1407122db556c5dbb34bbf67dd0a7b70196c2a56e6c618acd1735334973e0d735cfa34d411c6dba5fd94529a548e98e34f5f07eb488f7947bc7ddb441c97848d42921683646353881f1e5c2e317365cb1d333fd78cb8fc216f61249e9ecbb1286b48b961075d166aa1cbb31e8a27d43d7d48734f1fb1dcd3cb6e0de09e4e6fa7b8714f9f02428b7b7ad389c8e9db89307c80bd4ca6f74e444cd6f3def37ee0e27a5388b8de0f3810f14a366e419362459651ff723f4f4438395177d2dc29bb25e4ced9c31a77fa70e5ce1340b9b38728ee54496985aaf0b729b84e8b620328655cd73cc3082b7a9ae89ef83444b58f0511b3d6d613509e08528f98ddd0f44488db2f9bf62407d79ec08b351207bf0e01a2ce87a4768b3929d5db289f55426cd1e721aee20a4f7c88aba87375ee909633b155f38bb0f646da931aeafcf9aaf9767e6a7e9c6b78b166d69c30c53a5713735c156f24fd50847f1e3c70e0b8f147d489f2a3d7ee7560c8c2edfc44c4f471489bbe7e5549467eea8135f1e66b216271a56d539748f4061629b9e7c0984588276e4dbc89dddd60e85d82af9be3c28e3f5595f552b27c1026fb0f354cd9330587d29426dd141f6a277b9cb80163835a12e7757737fb818b945dcda5932ebade6288132d352baee9469a9317ccc08beea2b697659d145175d3ff1d82c2e9bd90755fe873f683f95e3eeea7ecaef7f4994addedd4762ee214561811a0e63b50711a019015469307d34e113b90116ba207376e1074460f4c1879b1248836b4cc3886c807cb0946d341cb10181ecc46d4c75210b143d04be643b9f1e22bf3293191f19279d4a724c60d1ebea8bd72bcd7329f9211cc17ea679045bc643ec737439fc04a1b2f23784605fe181cbf73edef5c98dfb92fbf734fbf734dbf73bddfb9a5dfb9ddefdcfa3b97fecee57ee7cedf9953acff573f530f803fe6c3f1599b1727baee7da52e8abffca0b80e5619e74bb873737ce70095ccf072992fbe7c0747cb1e3451a74406c7c3fca786e0d8cab15427ea3d35e22b8eb12f9de93b70a6f4dc7f292061c338eb3e4c751fe25cae1f5625fce2a35631dbc026f6ef1785659bccc742cc77240c1bc622245f922f6c186d31f80a06860d235267bb190eb66749cf0c871bf28c1f00302752bc8b6eb55a6d2e7257058de89f3ea75cc1d8045c6a1da5794aafd96c6fd4cbcf5b3ce6537120d1328b51f1c60d797682b9b200c46cc851a8f0825689fdc44ea62fbea8f0c263227e4a1f030de0c786fc43040ab098808a57226285fadd77f5775e6fba41be122ac2861c23f39f21e9b3269ab821277d2f692d69172a166f0755b1b1ad857c787ac9c9e7871b36151f9e1b36d0e556e2724371f925bd6ddd627e1eead6e9f2e4e1767439d27ed23005dd90939aa7e9c715f1ae0bfec61b35d671d0be806deeea25bdc4d66ceb25b65ed244378630c3cbce6c00e0200203e91feeee2e439820f7d1af20743e4a1f7834a699538f171e3029bb03870e97749741a16472c4e8c0b1c3a66078bcf438cd9868bc0f4a3e3a10ead3cf14c618638c316786206bfc47036111a20aa5c5130188ab6a3a4708e0f720f8f8e0c6a799b9b1078f148ea8ca5151323a6276e048591e303d5eba758aef7de0f9e8e28d940b61d6fce0a87a311aca02c5872c50986481724396274947599e180d65792294e5095096273f599e44c9f244872c4e92b23839cae2a48c2c4ec4c8e2640bda17b62c4e863ae6cc1471d67981ddf825c41b55a85ac5d68d2a7fe6be23bef257310f0fa8ea953f0f8d12e6e90f8607abba7eb377660550490692e861a88c247a18aac18bdb79b190af7ae7e59f8461ee922f7fee89391ce3b9feac8a373e6b53fe91763114190cbe64e8fa90cf148ab57143134cac89101e33ba21f3704f4cb26a02dd9aa9adf2e798e05a504b12c31147e23133aaa2503cdcb06ddb867882807c710dc402cf9d3233952bb0ed861238c4578d53c4e2c099190798defb154a3c3798c01b4a200bf98a7fe2e0b17fc398a43f86fe2348fac629963f7c5b04dfec45b5aa881f3b002307283068620d13bc5a063cbc11a58d2aa8fcd0021e2cdf178af4f54f805f075de0371c9c29c25d7f07537748379112c10ea86081500e4dd0f8e21572d1c3099c78228d190eaffeef57356d2a85c7cf91b3c878b200c185cb24c204a3313912a2e190458c4603161a0e41444c6e8917174899d9a618f110e5c55bdcc00c27602fe8818dd714decc11c3ddddbdc760234686a090c2cf67c554bb8e1c913d1f2fe9011c69e6e9813555b1767eaa2d47dcc6a4969ae58c2dba33c038751da7c41966d433d4a8b52ba7c40d7190d860891f2c3ad0e082305ea1eaf68d882d4838a9810ddb2b642951a190b991a64310f7e5469a0e2658fd58fe9acd48e3c81fb706bcb769eced9aeede71761f5a10e106d48d919b929b926d9cca3a6ba594526ecaf8cdd960f24440dd39bfa8663322395a1f049cca7a130daaca94e799640c3b535cf1db5c96284eca6f0175e7956df3f405a8fafe8310ce0c49d660460516fdb13f35b3fdb1b570b265062690a2841552aa504da1622ab82476788001932a46c896d8e2f34a016c0a912c0a2c37e012c48ffd75d6ba30e27c80312d51329991469728b218028c34a6f02cae7052705cd8aef06c45985a9280a3e9c08466c3d19db991b6248dcbdd485b624381c7a366e3471ab170d7bcc288264335e8804619af10d678226fb811e765850346377e7723cd06229a0d42f7469a0d2ca0d930a50c6f082ba408f279cdac58f18a3a1042a24923c94e13483d4edc608829b6c0e1c56fa3cb031afac20a1d9cb1430e5efca9e85a80144b6a415871c1165ebcf83fbae2100e4545413218c208f6e29f4e5879c3389ba5d02e76236664024860f8118a491ea3c198b861a4d56040378c47342734b10cf2d81672d70916634c11600d1ba64e5fc37cd5136b9f527b5778b1e66b57dd5de018638c31c608525aa2b4449fd2a0bea6624e84b9fdb9cb5a7a7777f9250e86247ca957fa42c9a5ee8738ed4009d61cdde3081bc6a2de72bb8f5c38d195a3eb50a1eb362a74c52266819fa65673599a7a55c482c35e92005ac1edf74a9ee9f4c2629dfe53296b6be81fe278dcb1d48138b60341e9f156e5d51f83926e491a9d23105d2e4437c8b8cd30f92e7d871b0292cce7fee60291fa458834cf24ad6a9b8ad55397bf68802e1685e346a6fb74ef24f1a67fce0fc4e042d4e128c40786243187fb5bdffac64d1993d01dda2f54748c7dc52b2189371e88c46d098cee2171170abdea471aba274061fb8611cb1d618c1eafa3209292a90446232431a76f015a60f986b2e73ac80d1485eda01e410c2bc1fec2867bb8877bb8a7877bb8a785a8900e201d2bb83d53e4e5fac7769d3e5aeec6dd2cc8dd3c467eee46c2159603ead68cec3f21080e8803ea160ed1d566c45906bf7143f99302c242e198a4deb05d629d6adcfe3905bbfa46449c52c41c2a3147fe1c637631b3982e984b18113a908f25ecad5b21dc7e0e29e6b811734adf4f7da04f7044be3a4174c91f5fe9805d5c8a66871a4b2a09ab82287f86a835d81c6e7f6457f4554879f8f8ca1f773591affa6b25ea1bd1fcf87240eef25a39208f0de9eb714438dc66d250bad640b4ad47c0b76f65dcfe341aa90d18f7a0a706f1a6df63de8fc5ed1683b1c49b7ecfdd5d4a3ff94321e3280570c2d21b72b7023861e57bd324b99f5671384c3338261c140e08aeca4f35886617a2f906d12c23de4831a79863cc2e6616b5768a9b44dc4925de482b31877eb70d2fcc1bca9f48e42e8944511335098369e26e31a76f73378e52b929f9abb723e24dd5223691bbaa173f5a7ecce8aac6ed0f7b46c51522266eebf0d1a39bbbea0eec2e8a465cf5a3604a7d72fbeb0d291e58ca46accb7d61de90bb01715ce28d83dcad55fd2d2e36b66a4713eb737397acb6df41ee0645587fbab91b77d301d4a389a8c6ac5f3feb2bfa7dbce9958cf18934556e27aa56718c52c6679d2e559d8c22d98b03ede901dd0ffa602b8336ad62ef5a671a30305a6ebf5c1f4b88f0f259abe2dd61bf66dd66f0e34d7fce122bc108c6af2f75a7fe28a8fa2933e510babfd81d694dab6ce4bfd7bad8da6dabc53dc6582fe318e0b6176f0b2e99bf97cbb0187c2c614fac236fb32c0046d824ad8ac15d29cc6656081bb20c4b0cd5a6be8556f5f7a862fbc314c238e30a7637cbbc5652c2ff6b30a494527293ce3a67a55c6de70e070f765f811723ab552c163fab041610ac30a477cfc2f1c962c59ce8fe4595fcc8cd4abb4acad1f9f1952ab8349a71ce3925c76561b9fbbb644659cb8a33ca2676706514e1050dd185e56ea451f981abb3d9891be218e144163a5421451b3a78000c1b9a1c9500082cb0348d8a94db4236f537d28648baf446da106cdc50453457e0d9183f15e3c718bf46662146f90ccac02ff9a5fc08ce786439c51b61813ffe0afcf125a824ca57c2e08b5929b0fa71e4f75f95d40829b0fcf1c3548f342215b0347aa45e656945266f46f342befc5e77e3b40daa72bb9cde3cdbe5e45cceef7ab21d949e32d1eb71745e7e398645d58ea6a01ba7a78d945276ee524a56778cf5d229a5942953f59f29d24929250c0fb5e3daeeee2e67e4228d514aea9c4ff71a6e9a2139679ae694ad97ee31c648dddd5b514a97eeee2eb5a0acb0fc2147f792b53265c7d1ca7554ce302a886a41c7751cbd3265c7d9984ca653773a9d5e2a9db5e3aed03969edb8936792a7cfe44929e9ac1d77859bb29b5cf7c5aeeb5e7692524a29e5e6151cee3344f7e93131324ee7151919544b1adb711cc74909463aafc8920ca3e4eea07b47e595ae699090b35d4e8ec6522c954e44ea973853c9453fceaccd4dd449c126e6706fa5cd05512bb0fc439a56560a2c56c7496bc33a0b8842daad8dc9643a75a7d3e9a57230aa66d51f1f3bcff479df9c1cab82b55a6e7e7cd5a7b8539452069792abb659878b42e69c723ec75d97128cf91819a7322722f265504dadaccc71f3e9f3a5203767952c142a07cb9a989e5dd4b12ca4515a2cbfd78120756148bd6b71f9d480ee4a90e34dfd5867a0dd0a465ac542af586701b698d3807853725001f1a64bb799248478a273c3966ea40981840e84f8e911e28712177bba9126446c05217a8210a30ad5920c3c8aa5a7a3c2e36ef509d34c210648b4b2588005a88a144240d42882a04451a30511a353c45608a22784356cb5a979234d56bbe10bc178f1544ae7ba9b5ab13037d26c60a283a46a8695b99156c3195ad84ac6094a511785f56ea4d58045add5fecadd4aabe1caad2fb756306ca1e6d62fa155389505e244e95594d51fa02027847a153b0b6bba915643123cb6bb9156430aa4d06a2062055911a51d37258e8cc9ed973756d48d341cb2b8f2469aac044256bcae3595025bb6a474145ae5ed918b5584f5b6a752b57edc3af1c3eeee170be178c3dd278cc0f273ec8e370c63c4ed727292a3de2a49eb0837ae6efc8fabd8227e71e3dff8a9d9f18b75f8e31016d2ac136f835366877ced7770c61cff195d7f3b0ab9ede0901b8694e27bf36548bce98f42760c256cd85562abb867be9ad9b4c86ecfdcc5433cc4433cf4314d6cfdeec3be7943ada2b356d12ef215fdfad52e7d128cb09e34b1ecd297b43b76c706d9a7478cde24f18676370ec51bfa274cb1dc0d79e8d21e4b6cd8b330c7ad877aa68385d0e72f9583d85d02f5f2878de4b0540937589699dc04ca00ca2043fd0e8c2f07838861c3e6a156d9fab469ad4232000d16476fb9b526928243b37f5d5358f9a06c2934587f8fbe042a280196117d30770432ec69010be0ff987ec76cec952b6e61e2072b65f4e082356e2f7e536c7144d83f7bb9b61115216921e694a089a2ad69cd483876b00de3a4568d20c5c656a1c048489aa889866866bf0ce1c59a509eb004dfee69ac4c9f97b0dc8d4b4802ccc0861ec45dfb6beddab56b57ae0ca6e20d5f772119454a99c59cfade45c26e6ed870503ba3880ca22faef76c8beb72c97519bb2ee455b8b000fadcf32901a6f7e8871280cd2ad979991e105fa6e71e5ff1b4902375c1c1ed0c1b19b52f8adcdba938cca974ab732bddaa40dde294e0095dca750f405290bb4cb32bfff45ead7550c5485fc35ad5737962972565a5a356835dc618a7648fc64863a4413547d979b42a258525ea16b2c34851cd56898cd499e94dcff1a6c6bdc6c486a53fe3101b6928985dce546b576b572bca54bff4fe0d6918550bb1e8861b307df7f21b8282028cc4221583a1e9e7efdcfac5eb4993f4bc8f7c4290a53734796038bf04c2d097c8d20fff8420fb529fbf0e0c655ffee63b67e24e44b837c59c3e21c8ce1b9ae4c79345810dff9a58b2e3e255c9b54f455497036dabba5f9aa43c113981610af7f401a8c2f2cb33e7b5d5fd95dfa06d55a34c34df833eb6345bc099b1b756faa92e778b74d7b64a9e588e518554c3238107966b6a6acded9adb1136aca1a5ee8bf02dfd90e6c23709f25116368c376f2675695a05f39efebe3552dff8a87b4b37031935ad871a4b4391a45b52da8594d4bca5b9e876fb2ce1e95b52df92c4b0e3c8866ad8b02605057cdd174082828fed5bdf6e7deb5bdfbc127842576e579b7a592af5af52b158ee3a52abd56ade115ff513008a0d6b9d55ca2331c49cc853ea94dbcf1d8bab47b88d231c369bcd66dd3d7357adb3da150c1bf2cc59c7049e75ab0edd300d6ec8615c2eae17b70032a050d87919e6ae9713ec05ec4acce3935ac23c2cddc544b3d92cc55d0679c637a4e6320bfb3665fb8b93a0c9ed3fcd66b3d9acd2cfc894fe26fc9b309bc967205e010ece4cbae3bc7701f98637f9fb6fe0e1b940cc79b93c3f36c489c253ab7557925a59006cd830dee64d127308106ffa5671bb310062450b20926b64ff72d77ada11b338383838bd4a95808303d431e1456ee768adddcbcbcbcb4ba9e479a6d30b0c8cb5de6ced8c8fb52a968d8aa50279b0ef63513d9898f1e1c183070ccc0c151c311c13138323e535bb7fd51289919131a1503972e8205223922a3201a784188d88f0c0298195ea013333e3d1544ac3d1d0d04c1a1a540e1d30a7991e580723ef88d2f3402533bc70e888d921c3a379f090d9814ae5d03133e333333d939aa1e1c1a3478f99191a9a0f3ef0e1e3fb7a581a1fa9191e343d3e98f10182378340e3e3031f3e7c7c00828f07e1031b6410a60713b67bc4be0f64f0fb4030849a1f404450a95672b55af96ad52b5ed5d4fc000244041154aad50a000008f2e3870988082c021020404450ad562b1b938d8db70ddbac0010c4e626004258238c30828f274182f87812802041827c41c020418284c023489054902028c080488bfbabfb0409b79f7d384a105afca8dcb5c2895a8c305d60a31a1e883991288600109ab021c762b1582c168b591a98c9cb8d696242ab2e70240909566c6842ed84b8ea97a26211b3d48ed48e482a352dd163ff5e6e4c131b7dc522c1155b9c0d0b7159ff200a1b96bb774b7f91cfba2c168b25ad8db52cd6d4a2476cc8153044305a084da1d9db1e4c580655ad92927d0a09f97b26a06167ba6bba26a0613dabba0e4e1f65d8702ad144d40941bd2e883a352c048a9823815cb99dbae154e2f6cfa066c59b1e210ae927e1f687403a4ea15b49a8349b0921216143d54fbc69d304eb153654fd74642f9a3d3b64369c42770a4da1293485a6d0149a4244958ad095db30184cc63097b20556b24ac69c195d4c4394969b392d7bba05f36a0af0aabf0c9f34a4b441458202606255d4021103b1e54a390558a7841f6ddcfe8e63489751b2bfb8ab0271d56f4655a3cb8902f1a65f01ac127ac53aab28841f8b09412e97008309752988896172329d406bab4dab7a60f1a6a3ab9b8831a7babd1e83e920980b03fb7243cb9d882080e754c59b184123adb2eee2234ebacdc5c69c975bc43a60b84ba5529190031b3691fc9145d28875c688399167be6a537ca56ab6c867b228b11e09f3dbeda0209c8abb2ce6d02017f2201fa24261b15c391413859d51813355815dee77564a5ad5445fff20817d4112d5d317e4ae55500d1273fb61b5969a44179f116b58c7bea9a020dbe24db3ad7704d9f9a54860796682e83281d5c10e8a37fd313cd8906d6cf3134a8dca79dc67d3aafe93f7cc621c4f6ee2be137884eefcbcc78b1dfba58a0902fc32814a667809a066c38ef508808fed98775170c85436e6b4647f91a02ade743789abfeaee2b0deb1dbb1206cc830a28e15d5e28de8ad65a298988e17145596901ceed78e9aed8f37d29c2871f9e3f8e2af6fadfd91cbcc1473ba6505e081f539e7c79b2b021816017c7fde7fd9869bba53778f1298b0fe6cc2623d06518b96bdbb4c268f0552ee6862bffb93f09c6f35b5d72eb0774213db2734b1b36f8c37fefcf92500193674587b7f3def53ecc51b7fef8939fd7e7a7f2fea9651b7e40f89372e348237b11ae15bf1f870f0c0c1d343b7bba1c3ae330ca70b1bf6511ff5adb9345227f550f7ccc1906b9ec75faa32b3c2bfc0804a64883d0006c324372c3d0cf2329f8878df06189c59e1e5611e022f0ff3a6f79e4f0e78791818e4f5bc670f6ca21e6a95f7ac552f1facf49a81c0e95ffe0594e165675f0ceccb677de53b4e9871c40dd0e8996207335efe2cb82b8291841b57e4b0c31332a397ff10ff143c9fa5a8040dd76545eb14d108000001280003150030280c0a0644228148341e48c29e3e14000f718e3e78583c1248b324876114638c31c41863083000184288316668a80601efc883328dc120486c55eb19f6fa1b0d4a8f29f2438672fdab15d513ba7575ab819746deb682569085141c7de49008982a4e1f6d83c1325d8137f360fc8a5f81d078b7178e236e9b4b4ec9a73b7e52aae7cbfe2de36b171f166b9808af13a5900f08e653089c52a0e16ffeda3f78e683a61aee19aef496200e2a6b40a71be01cfdc6931bebfdade88d8b6a72504b07778554d66137d2aae5125a2d892abd4f4232f78b49205b4c9757a3ba55b80193214c57774a6c39bdf7a2085061110f30135debf585145259c8813a83ab3d89d4ca2286f1e02620423239b1998c548d4f1341a5342060296801306d4aaaac5061d968755b6c4f51e13158bf9024d47fb025865c286b0d0114c95a6577ebcd69a3105ad8783e3b1e01a8b6aa91a2a7da6747dceb02d8f429e19cc15787474c17da207b883ddf35a509b9234284bf5b069e9aa64da846296d668777b4815fd321f5b0b71e7f90ef0787fabb7e38b459e795948424c502aaf6e24c12d4cbf134c1f63321d5fe22b9a3336670c58f4178227c1047d47ce413328bf4d48716e6f0880d682ea09b519360fb9edc246ee5e20316bc62520d43335209b9b67ed04de2862db7b8ed70169374d49111ebbced5f124fde0c825b11e1908400a0816bfed5ca872e65825228ec0fa4d8dd1191f5caa1d14d3989b993ff0019680e0dcc195ceb01c86369038e604a9cee7b18d28171dce07f860f9842fdc48397deaa6cbc2f5f911413490068f36c5f7370787fd98797c58d522b1b28d5a17e3714a6bae9c8d9301cb1f9d78824cbe757f33632d87185d4201fbd9c8127884b94420e4422cf71f83195b5cfcc83fa5df2ff011e909f36cfa3dc9a10e880145213c121c7819365c9ecc54ec02ccc52224567a3df9c3d36342a4b7683d09be702b21b8021e9255a7d8b10370719c8414523f934c0e292cb8c44813297a8858a0f435a1bf9ea240633d2ee4a59693772b9e072fc01718453ed00a00bdf0c67c15af44676b26210380539cb1eeeb4299640bcce99510aef26c3ded2e21fb9fb4100b47af34e3a69266e8d075477f3a4a15c79a9a471aa7a8907b86e12653b4ae9b27088411f60f3004730f14f9756b0e241abc3d2304f19bdeeafc24e18e42711ed884b5b05e2102569dcdb9cf9f84e75bd7bf52f34e3d8e112ec400011b974aa749efcd9aaa1592e2cda9a345ef6df5d190a170e64c2753def89831646bad08cdfe2616250c3adc2ceeb3ae1c055f5d51764d5fdc72827462fd8bad8fb36866bc1ad82ad486952648f085274fcac4a1fb359e5bb0c3451c47c542dd3e689d20c54dd50478d290e37a550e2516c36deb6f4280d9d47f766f4935146be0e307b2f892a974d2a46d58fd302169731d9f4ae471eb55c84fdf1371ee02f54da2fa47f0cc700be409f7230aec723d21671366cf6db99fd0e66dbdff6e3c15d5ce282b76874e52b376260c23a3772a2ea8e98bcc4ac1bb414b5afcf567ae855e23adbc58970875595548e65ef459b4a1e48960580e93db26ae714f1020006d845399892c5a3fa88303ef12e654f411eba6ffefb8f1b2d8e58249d4d75030d2bf05eb43d998d68d2dc404332888604463ac932ddae31e30d6dfee2b5bdace63618fd4769a3a1bfef41b8015ac0c1c03d89acce77d42fac65c6c2212540b75e47f6a50d2d1af7fd33d3f5a01f5c5f9c9ce66ea1c89314fb892b745b4c33bb1b781d4de4908c75eabed5e1b645c40c11acc9c6b64bea54a89e94333944e726683b735abc9f265589a4ac70c55dc4d6c49724b8f443470c9ef472f0a8fdf5cca0c2a1520036e32ca2f33773b460e499eb3f53f9c35223ecdc8b9924388d6d0cd2dc699b53ea6c88bab6eaa20c4c427559d058ae13bcdbaef99ccdfa7daa83e5839c6f841850e70a56abd106d092859bf2ef91cf2b0cfb0b7b48df4d97d27f81f21e9b014f616d4c48396e80a96617585398c43c7808a7a244b78a013951a6423c88495a8687a46ed103faae15db3bc684230885fa2f0a8715f284769aa26dd80e9485ef1b3cf0d1b5c298dd014c50a3e9f5070b215e2e2f4a871177a8b6eca2e952302f1d64549487c0ebdaacc9ef82377e17b60afe85d8aac545d25d96d54753841d3c704c93a696c4495e5833e678bc6eae743168dbbe43093d7aa358fb1f363ec60272664fc3bb5b8b808ede301dc86658776bed89dcb6ad4e6e6675a9e87ad257f4dc1d38bc6bd85692bce2dcadfca538a64261ddddb697cf403916a413b9d5f3fcd7185a152a50b1b02ebf28250135a46f71966e686c7d1d608427a05934185f12c37b61331dcf9e87623d0bcec7f5fc164afa780de30703435cf99d6bc9c9be3aa07018c90a097d6a5fba3a2e5789aab0ae39c7fdcabe53068cdf9f3165f6ae4029c1df79e83e1cd9e573681ae07912ad9edbf897006f27042811233f3a5135577460421972a6ef34d0063a0fe74b0fbdff41812821c74a847ec3994df2d2ef050e9e9e03329c83a4f2deae3df957a8fe8210c5928ec459044f9d457890aeb0c37fb137affd4e4a4ea9d016026a0eb6fb47517b8609f3d0d0945a40a692160884e234fc9149fbefcf5a6cbf57746e3905080476df687740d0b051c3d3885235c8e2a207aa91d1014ac0e30ba833b8d037a10598f68c2fd0b5573822ebf190acbd8ef39fe7fc29345d344a7ceecf0475d7481c7fdef0d55b9a6271a5ac1548af227cc10a8f7884ac97d252774b3e4a49bc918647924d782cacc4e135db03c65186e679470ab98165705261818a4fd3d6a79403a6d98cb2325f0984cfef0195b33381ea20ca465216ac7f6706241c2c3a56918e7881602d615753151b484126d0c1c83f0a4d2d5ef60a9035efcc31707cf5e6564150cee92f98ecd8b9ed8bf96f43b245668111d185a84c3d9003676d9a52bc07ff2fb7598b5c9bdf77ce21eccdffc0e4f6b14d9c05ff9fb774b4f7002d08c33180a9a152484ba63492f11f880ccbf46bff80802f7c485d156252481390ad439156953b42dc1ad5f67e2dfca88b22016ab0ad4ba28e0fd4c007558676ce87b209c62cdb4dd903fcebd9a6d4fa64ccbf9246c6921ba09391807795af75df5a302e4545ae0410ec6fadbd198b05f5190056e85858032811875c86b6b244988109af07ca543a4162b8773cba9540414cead29fbdeefad97d5b2bfd1bcb0995b35d3dceff80edf3c4bb6cba05e8d9945bafc48e8300582ce51e99747032e68d652d55d6d29a47775f4b5a7a553f6e6b72b6504f9c682afbec23df9fcde72d371a2b5cb882ac9ada2175cd7c3571c3392f62a1fc4cc2c3f9e5ac63515ad00cdca27c5e0dbd22c9250628435f1ea855cccaf18db7fb02954a2452d844048e828bbc3f36f8f064aed84a7946e1e76b224524ba16882d64e3e87593b9bf90619c767b1214d6f6547a8efb662042df55c4b1e8a87e884f9a5ba12dad8dd67d25797735410d4e1c8415862e4ae581574a3477e32923e97c989240e1fd98497da896f470840328ed7789b7ac2905a846130f592a547728eea0e9fc192b2630948e84a593efc06ca81fafa86388fec517e2dd52c24f0a2b34d758b455eab293bacc608e73f4cdea5009ee79d63f024fd3318622ffb0f0e8814d6060436061fc82c9f275fdbfc990386cb2ca798991f66be9fcb8c6ebbce791f5191102e7cda37f014073fcb3142c8c90068218e96edc72e76c8be7eda784fd73c76a2856202b57aef605849cb858f7c46f35ae0bb13ef5914fdc6dc76fb7802b60af82b593433a44c0a8d769d99809f450653f4cb5e868aa37ef37713138718e7dbdcbcebf39d1ee388cddaaa88abebf8ef7d371a08b9465100d835fc7cb3423a42d0a3ab7b51a0afd9ed1da3b9c015c67f11f09647ca868205dcfba6165ea95ff76f3c327fc09b59c8fc4b75004d5176a7294b7dbd51fefd6814c0a2043a429dc14beef786fef88788d23c615dae4b00abde61c29057b0a1ef6b491a3ec3027889c94d0c3b540cbe07bbcbf57f4131b6deaa775c6771a087cc70c5546e7bbbe4e8f85344c7ca0019a59122ce0539602c75e4e8348df7e5b3c8c41815e031add84286e0c7a868aa529fd7eaf05dd29f8708702eb504ec8299146eb8c97958ec9984875770137b9116dc5a4eab3d7981612882de8352bff5bca2366068c4159a6d0e7a6393821958ac625f4aafdc1e11cd03fcb73800e8c3d47cc6e4cd3e814014dcd27cc58001070134bc5ec63067ff4ca6c0208fb979c9aa8d7ebd62173e86b26ae068806fc8573961fe560df5717f836dd0856d7852ed05b702434908c67ff8b662daa78caced166e86b8288eb9058a0f3357fc8706cc0394ec7bda454e57d0a9317fa1ae84da3e8aa235dfc3f6e41a60f2d6ea1ee5e7875089680d2d3c939c44fd74f6987809f67c142b2fbe36f5885b6144f857bbf0a9b5add3498649980c1ad5e724fa07b728ac318e31d2f88c6715dbe21901f7a4785b96e4da090106effae017c358b1a325c04c29a22f09e5be34836e7a47fdb0fda8261676c020e2c6989701e13f8e0642a1a9e60f184a2aa8515402b6fa4e4bf07fddfe5bcc3b7a0fd86adf96d20e3d1fec435ca6179947b8237f074c3a6e3706d366b9011dac2c56b182601f7d7c2a5e8df809a36f506302b1dae261b27b0f3c06d1d22796e172fee087bcb95b7df31cb4a26f00e523a79260f9ada2843da16c2721235e5fae8cc3fc963ab9bc31c49f363e8c4825a63c0bea64154242271225d636b7fbfc4b6e59bc91377652cf55c3678a94444df372c604cb407b810f7b230937d587c4d8207ca6c300c3a3a9330543d9e7a1bd3ef6b0f26d67c1be21638a5f81533207c7da8f6553a9c5871fc94358288e1911053cd20668988061aa9d3cfc493d911bca0405387b18e056c484cff81d5d59ab6ff19de82d8779f872ef891ac7e0221fe444305d7bb14685a8c20939d9c863a873db43a85b531ecfb200ef3683f6bfce7bc53b0f1d4c72f24ac8575b88c0cd11f500c7e836b56ba93ed467f3c2f1b1e27b7e461b6dde023c62f7597754daf40aee88c7e0c9be8277bbe1742627fa01b4decef0ce7cbaa4a72d0b033170d6003e83ad65fb74e097abd63302c471c679bec6f76a459ffc09a6779464359e12adbacd8425e9657a9b6b7c5c8894aed73abd57eaf6e5f2ccdbadf5ca61e02fa02de71061c10de7b175ed8b40e2498ec564091c9ba6690a08ddf3af634b2fdd8e81e53f6626c8bcea8e085beb397f2421b09de3d42a4f54315a29a7c2a22572b79c6636cea9d58f7a3f140b7ff46f2dc46335d6217e4280e8dd23814c66fb4f816848dc748fd157b99928f88108a909af0438b30e5a44fbc37f9a1cd2a3893656bfc3aafa1726567202c345ca0bf30dac0ebf485f85ef95e906f47f7640b7963388ea16d7a420d4dec9bd4c6c5c95bb754d4d81b940bcd6a4b77e53cafe5b37344c0c4ed58e6651ad659180fe5191bdc88dec1bc24a3dcb4ad314c8a0e63b9ea2526ee2e20f883861f750199871c6665943fb2882108f4f2c7f653a6bf3c560d1faf821119a44334b031a2927b43bed14828538d7201901525381c34f691d0cc20857210709c48be9ee7d4a948e8c11e1bee83ce1448088d35c2c45fe4d7d9def37bd1826b7831ed32f02046e6dab7999841527a48caaa67cc9747538201218736f993b18fad12f2450f12959ba9adda941d5447e276c08cc2e8de56f618db9ab531107bb6805173c472f40b535fa630980107de6b8dcf4b2cf8631f256b5adf8797b14467cda7f04b52cb807f5b7090c21ad4d3f3dffc3b328fe44d3dcfd04ae54c68112d21911504489088c9dfd38b468d24b34d50a40f743858ab3a92c1d83ab412f3206673b32628699ced1887a862884c103c14f8711ba39a161ea46e600342bb9b15694f9f6b8483c2c913cc8b3ce387bcd48f289a63af2a50ede33f6a9a957a7f8b4a16cdbe67d540b38bb70a8b70208d429b42d403110740fd9042cf0fd45523c8870c3d312dbe95a2111a03a92dd10e46428db8dc58c4265cffca8542bfdb68ac53b68261672cc8af471d5b93b83140b5ea4337e2b1c6f61154989e591904802ecdf24ff6740926c2a178f67901aeadc14298e364b6706945eb448b040f71fb40b27ec3b02ae48f41c29165047b3a83a92258a118314a0ebbf451cf6ae910840ab127198441a829581ead8cab04e6d7d4624eea7029f33db4f7bb115b50810ad98b6062b3d2f1de9180fbd484f4db19c3cd284afd16efbb55cf6191c404444c382ac2fa4494b24ac3d35929e0d780148924e9cd31527b101d9a17957a27c0c829da6a8845126011044180c170dbb97f38aaf9e028acdea56edcc07ffd0ca4d0fd9ee4c7f8d344f028b6563b30cc2a5d4c59af1fa2dbef14ddabe8ed9b89bad7a81dc5cbb511db7fd1df4d61219e7e9511c6fdd2fbc059d310a8772e85b25f449a8b23a2342aef88b6ed89c47dacc6bd532cc9aee474008e980f06df0846f67de4a66e3824131cbfcd542afc8b8151ebd71818b92c2e8fc7f36dd2c9eb96d458a71e8d89d7bf2559d293fedb8c0aced6c7351eaf4c1d3ca3f0e66d51a108784f679f809e5f207224022fa6e975c2f1bd5f6b27f1f8bad767c3ac58fb3198f5076d8e03da72c754c367689c19afdd4a32c61a30d96b0d9de18b8c40c2bbaf0380dc78eba4a90860a4ad06f89c06a47a30d5fcddc92aaf4e1f4b78be72c5ba8fd35324e6093d3f03f3936db978ca36abf16bf619c94e259d928f1087231d81f25ed6d077d73a7f3292961b5c6aa86d93487a218d6f6a0c5edd1ad4d0cb3817b8405333c1ae07b060d9e82f9f0687c9b0e2c74aaf07c0ac7911b2e8d05dc5bd4219122c368e30432c4725c5e9d3ff6bec173db1111832ccccc94cc71023f102822144b9eef7b770a16d3ab300dbf57f014091f24f822a95380a4ea7fca15c54edf23d4c6c64543db9373c95a246266f10ee968c8f7a28a862c6d637d13a26b26f2aac54999391178478b395d760d4fe47308882307f6ff563287b9ac160f8f1c74508a189bac76901840cf0256923d4cfd492cac9236d8053673ebd8cf14a897da004fd7006253436fde02071dab1de16692b8b80ddcb97a0d76b1ed02fec35479118131071c0f17e2ab864ad40b34e40a21e05a82cb0cc8fc8072fc43632314c8507b1dfc8c1266e139eb150cb45d1107e7ae055281187bf91cb4de25183362b95aa9b1e257bb9e8d79ac2e1aee5e07aa1be94f98d85804460bdd2481bdead1187842ac5c49717afc2ada53125ec1ce195684a16308c8eef769e037b1e2485bb2e3ec17620b09b33f6ce7035ba567143b13d4c7f6de8914ce04346256baeae6199896d2507cd404dfccde3eb3968f79cca8065ed930b4ba540f6e7acc640e1024a4ff850c91babf002951e20ae929e9903a0bc8cb5d79662d6daa5193414eae53c1c699edf528dfa2384ac24830a8b7006b720a8fc8da700f5a8769e7c6d511f3cb3a9d358ce860c46b38daf140730710bdf106255a85baee881053c256166010d300b36c32da84bbdc1d5220a70a24dd8ba380825fd21405d505320392db820f17011fd96f7b0e1180692b2da6713ea2cb73ebce6747c719f1ec85ed3a2afebbf8edb35ebd6e1116bf631fd533106976954326cecc4f498a5f598f00a0f650b6e981fc6a1e7c1dd0bcd6d644e357390705d0959b2711ed2edce275966e25814a58b77f61212540d981e668404bb7db33910d99d9f6ea0736cb78f37e96128f059b56d3856f40da2d0626e1159754be29d00aa68c525c5f69cd8240417415e4288cca450057473168d1d016940042e72e02d0167bef0986b45b01b0756d76aa1bdea7541d84f419946d883c7ce83585c5a4de6126b5c7eb02fbd21f853b48a4b20b6bb9177831f877ccd365f220b2cf297ed0cee72fb5269054d18d0240e085464f8275db30b47a23732e1991228bd8cc05546f5fbdb47225d10f6982a85ad2ec319f5f2bef5e3f073169d44cf976f5213ef2302f72d5b9c52614e33d67f2ce2193db129e0c447539f1074f52e7610ed04c63afe12885952f4188eb645387da8eb5dec080d9a57e48e2e971222c0d27127096e576fb4da5655dd673fa7d514ddae66a020ba776678699fdbaa3e1f98bd905785de2303bc5d4fbfbd89b6dd822e29df02080b6449a2882d259340950e5c367b2d99d80123d54dc26abe736b41fe96419ce07632dd83f09dec832d060555ad46e8cf74330122d69d07c3ff01f73f4aea8a3bf8eee52215912955bc8467e174dbcfc0d496a58fe79c3a8793ee2c87e084e03c647230f62b060b2bc0976264c18e250279a780c81f3d5ceb8bd07e9bbc59d84309bb17629ff0127be371975f606a864716c40c65f915e1b0cfdf63fa577f76f133a8c4a9086c78a60a897492505bd5ab19bfaa10f39403d9ecc18a9510a9372f8d06d6516588a2aa3b2e004ecc6c6f044f5ae22919fa0404fd0a4aaad8ac9d291fb36ba6faa403bbb648d4691589c3d1651088f006f4c0e40bc1d6041541265982e8b8147b75b632cfa219b11696deedbf540185b3fefb18ea29bddaff503001ac6ed24f745fec3fff7c557baeec8fd92d1ca83b359d0fd914ba08e60ef41da9bf0cbdac32d445a5916743859cb49f7c998f06814d445053fbdb652e0d42d38670486b8276425ee91959f3e08780ef19523333bd4c84e93c055cced53c3c941d7088610a2f4c7025e60c1ab79d59014beac435741a522be0284e3c3a141da1041397bd4aab9578bcd9067c74604a007839613ec8211c5ff9291e2c3f9849ce88c99633a2cfcbf17931e00a484916129a40828effe59935197da8779340893b68429d9aedfc0fd71490281503d287f790da293488ef1a8491d58f1a9dedf4178611acdd2c0f2c682784947c5accb63a071536937e48f4aad18e7fbf7ba8983b8894c4f433ebf300d100e46dd3d79b8c67a26a2dee03d339903e644853fa5aceed4a43f73b7dd8fcdbc4f54be9bacd6fd5c66de0694d309417327bc35387941fd1f1e5dff1b4e8e64f437b974b2b9419195028847bcb2017c2bde35f7ca4ea8972e8c827a9f4ede9b368e048ff64049b63b7dd2e10b8f5e9e15f4a32cbea564d112bf484e35385fe73f3e3db84f68e599347c0d34f00bad9b972df3decf434b78c791764dbe6811cea64e6a2677891955bba14a5a5338c46462d8a9b53fef90a6cff48e3a5136d6ad312e39ef2b7e4e3406a090a83d8669d901e3226ff0320a21bd45528289234f9e441214181f4c692719493c338cde548014e69fb2af4e90a0aea5882353ac1f7318d1e04327d7c706feee2b3c3210d74b65c9efc66635aa4f544de10713a81f4b08558dd876631bf0a3795da95c25596b5854e87b50197ab5ff70e395e79f0d6b0ba3179006abf90232c6d31661004a9d08a96f9649e4720556fe4c6dbe31cbaee3992b410085da4da107d8948bc30f8703d302a32a97b02c4f158900534c786671ffca66f2baaf045b8aecf0e9a196e7fc851cdac9e5d0435138a875cc47428ec456a177c9a2103a1f96262e133729e4e2e1325b9003594efb99d9247a2fcf887f4b9427828cec99eb244c7718e646792f9a6d3be9e99831b54f028edbf4d3cf4436b42ee93e1b1266b3d614db79618c8303ad78872f1ff262012fad9d3ba68d897bf7eeece4d18116421cf126778c8beed687301394d8c56fae9386cf1989b5413f4039acf0603042038dea8d266f2f418288868752445f235f5cb300be614e0d8a92f583dbcb4476acdb49c2e751510b6e4e3c617ab3815dfd351498b146b3b31341b6155328a9e25f4d2c0c95f6bd402a1ab1e813390afe482ccf2c2e136abed65cdfabb27a2857adc000f0a6dbbb601656953fbb3c577eae990794fc23cf5a2b8ee2a1b59243d3992ea4fc390c99d54cb6cd2423d4a0415999bda0b3d8ec04f0e89d4bfe848a3fe81c2dfb2b59649af7b3f14726d8e731290f564bc19bd092775ceaa6b5dc1b77529cdc931dd50cfeb35693d417f718c3affcd3c481843fb576b86bed4b762f042eece9bf3fe8b7315b71fbf309ff82316986933d24d6c4715e6766b83ee7e53d2630a0a23267eb4fa9ce814e8ec0ca05e85105d9af4691c96a8767e160f5b3e1b81abedae32db6fec82af3605d5a0a97a2f9c819563a91e8fd6c63043eafaf22f6be60fcb600af315336087cd27a912a2a7092369f198a1b0d23b4aed72fe0d095a5896d62c5f4b0c728ab21734489fab125b6a70e590b02c585c4aff6d7e460b4741429ac4e8a585207e4a5db7dd1391c362035e930e25c8ae7358b5aae3b3ab69b7735226aff782af768f983a58729d85a5aeaa45106ce1328e08bd569ce03727f5afe5143f71e680ea050df3b2f791ebac647cdc3c3249d821e35f97c5b2e6fcc35954f3a7f370f6759090f8b041f5aa7687d1a009721a948e94543cbfb41f6bb14d5289f9c5a16fcc45830c7fa6a1c117c97cf80ba831a74331d52b7c106576689bc466178959ab85844be1d2240ae25b081214069e9fdb36489ed1af6de90b5538d983a0f697e2e44d821e8c9c5f134e495b298872e9c02fb311bcd830836413c498d332271eab30fc284d1ee75f8b7cdfbdc25639de633a4878951a513e77261bf6d5e15f9787689c64aa0d4fb0da1f443f61c55d3c440c397716fd351e4347c318921cbb9d44796ba20befcdb5e7220191293acadefbbfbbb0868c732b7ffe0aac48e413a7e10c5a247cfac3d28749ad4a45b0153c2d65a7a64cdfddf83698e782de79cad1f9ae87a79d776ba031129ad90a78946a2d4469618eb7d260bc8e95f94aaea1f68d50922ad44331fbb252c0150f07dae625b08d6b10def6fa597fa9c7e201dae0dec2d79f148423a33d891d7af14d6a16f08d3d653363a8a28f8cb54d62e18c40d5cfdc51697f2c61aa8a49f53ab5ed6a7ceab70f71085fb968f23b0d4054c2029f3d2514fdb8b160b451f836e67374634b9dad364a229fa1b564f89cbe223845922d6da9c359ccb2340e6758c7907031bb146fc1e0779a3a542df0d4ec6542246a4f8dd12be2f8e2dce6dfc20a4a5522421afc211d2368d4d4ecbe7027d740b0fa9c6ba3a797b8f6a16978b5135a974a681c962f880f3f93c0506bb01aa7deaa5fab83766e81b02f91f8d4821cec2347c961491aea9a79e97bfdb862af37129abcca4d4d8fb42d2e7d065d6facc13ef144c32b39a39368e6d86d2996fde3ad67d9a7fb682bd643586180af6086c16e6e6e49bc5f2f247627c90082bfead662686d0bf7bfe093353eb2024f00e0586e9e544f20e4453aacac4e3fe447c1f4053bf3ab1ca295e28159bb3f7563f5198f06618408ed8acd6e153239594027a31457e6ce3c1d60e7d0e2f315bc17b292dbab56a1bef104941309bbcbc4ef39ce8437ecf38c76893e86b4664f692deb7006135c01aefa094e3f54e72cd5754d81c63491ac63ff5e1c552a04f1651571d463c12c73800df5e1c80cac04b3be26b8febf47005c3620ac05d60536bc433135c5a4a5001ba8e064d800f68e2c75cfa957b2756efaeac26f49803745b6ccbda11a6d1ed676a584e756eaa9a9beea52f613a9223f0f280c9eb883740d949f78731d2d262d4e4a708fb5af1c0393d212a82876342985a36c6484cdc939bc379b7ed8aa4510aa3144a2281b9c0d4e4b1f68c06625f0cbd390a3a1e59656304a8997669067d9c96077e7aa4b66dbc75c703f232e4ebf50a88d55202a050f0af631b0557d1862b51af532d3f2adf035851f8e8e1adcf1701be6704aa429db2d0c4a1ab86e35b93e0eb7ef1c4e271b9d3342fa223b3724de4d7bed2de9de9345eaeec31ad8b8bef8dc033dea9893adc1774af7aa829d3a4722ac2521c6880aa3d93960b6b81612c298a29a7a43185a1cd292e1f680ace8bb79cfa2cba4f515bb32797d2c7529f82aee75b20de6831df2ca167bd9b0feb03076c3c01358bdd73d058f19c6570217b00ff2450e3d24229f684f5928669c3b253249b38cd942e590770edb0fdf0183a008ddc51dfb0e4606dde4d40854882602a4841e58f508f3669ea2bf2171bbb78fa73f38769663120ca344967abfc0b1ba6f1122454e813aa70eac9877aa0aa697e1969d9f4418da298fcd8b7ab101273f59178e232304231f6ed1b0dff3c996fdfc5891014607ee569da1c65fe44cef61d43f9d50f3ef34baf4a964e3b3e4e429a3ecd15b2060886218a80f9aa2a27b1256450aface93fa26bd4ad3d85957c65f3bbbc9576a4589e859618e42ec999a7f842ce0957a896c2cdd4c1116dcc2f4a55bf0c7d93746a441b2611beb105980c5ed239beabeb5df11a51164176d6e774c45182f3c0af81c17bb4d0345ff9e051b9d469f25daf6ed79fcca4dcbe876c4880a14328771494e02bd500d9f8588dcac9f3a89bde592e093bd708979defe9296296e646e85b55267e57844d3bf68b805ffb2a0f4945d11721ec34d850a3f0db4ac214d963ccd9ec3d62bd3398c50469ad255366d33787396ccc0cdecaf286fa8708e956c0e6cc7c17f011bca723c423187abcc9f0390e6a4e6222808054ce47d2e893eee6db3348e8503899bea4130222ebd86f6fb3a0e1071c789811d8f53833bd7ec43fbbab1a5decd335501c6eeeba7d179ca5ccc09f69616aadb432cebb2307f117d4356a76e962de863961b6a9f6d77d68ae61058901bd65e9d40c2f453f5beec33e6f2ff54b1de82b961f8ec8a2c18f4a024d596be15a4e79669cbea15468db893b9b834a02aa4335f417b56942f7081bb8f0f497ea2019908662136d04c5d62e57edf1b502dd7e90db61d6f706d21ffb1915fa377a5946c8cad40fc0ac4b1d5d8243d8d79144f5aaccab13b105d488fbdd92036968d4f6ed9f7bcf156d9a1646371b94517e6e63e5369606131c71232a8f0a78e35636171a20738c9b8f2b5ca302425b53e370f14987f2f555959e7a7fe4de7837e21ca1e2b0c6fa82708e8fb0daab3a6cab22f4145a1e156d4bc19507e56f57a0de7cb8a5edcb3e2e7199f94c173a8e1a820f15d5ca9e4f236daa6f248a5626b503eb6772da9ea691bc15256e95ce1c335a5e156d3212bba5d33462bb7cc136fd670e86b21ade5c3b548873efb771db4c9658949a9434c51a43f1f1a401b6b8e9f1905e11da31f1ee762908c8f72039e311a6fa344969e87b44f1c1555b476a456923cfa4e044f27021451bc657fee2a4f2d982e012774578cf10ef30f8dd4fb0e773c41cca8c8078cf2ac21a6eeace69152f4bca5334e89fdf3b02e90e129ea0d9529ea0e3fe942977494e954e2176f28232d050fef288e69e8548c69b63dd05ba0af601b97b3d26d719e5f6908551a99237ab34b4f9cc6d5c2ab4e0e080a2fc78b8dceee8872fb59fe21d52bb8c965317c98160afa0c97263ac48142a4ae5ffcde03860f8eb3fde3427ae9219ca8cec36aa4356589c3911caff8b70797f355a577f5960d18ecfaadfa01728da23b30e344fecdfa21be400d908dc84778a6214269aacb3675eab7b8b6459443cb1bcf865f7beabdf1730b1b975cc45a6afcdf1c3b75cf9efd48de4b33e5380a2bb5dd019c60c9918d3c2e080ea464404716230926a2b3e744d36bc594c5a579e30170163ad6dbbd1b9c81c9288f505a403db1df41980dcf6ab61451d8c9f18a6f14c6f17543e0d7ba1a16eda321a95a78d7f126ccfee05f741ce8b0c44cf2e4e008dce2ee54f219e4698bdd04d5363a8ae6d98ad48efb462f8d4315f6765e790383ee2a39e04336efa8ffd48ddb121057b33dc3a69c67cad3a4c78adb69323085501e81fe93b0b5cefc8ab1a003a44755d6b64eeda5b500385540954ccfd33e4c3fea37976c1ed204e096b416a425101ca080468eb6f6b69975bfc9b8dbc2586044ed9200673491c98cb8cd227239d5fdf7d3c4a3cac8b95b3f6e4ac680c3ca5f27d99fe9c51ede98a4caca7b5e10263a42c886a762e595b0a21ce5b5759b7fbc6ca0abfe9b51aa827c2d396a4ead9d6e70c3c8168c47c08d41855c12dece2c61af8a015a4652025b1b420ca2bb35083753d39bd7590c60641e9cde74062cdaf648a843e285bfa36c6249e28d27c2007e4998fd3b5742abc5591b3a35f9e03654866cfd42c44c34174b5da50b296fa964b707d6d2a9c16008be73bb3697e2a072e0de0b4c5eb31e1fce8ce5339e3836cf7e1cc51879a87d6de5711770546b27f9cc1196949fc9609dd06805807f3c11978544d3d2a6c2ec10243a805a4a658f0bed85152c4410a486936337087023e933ec1f5b4c60164242a5e9055d3fa20c8ce870d423f27886a09f2156970b11e1591bb40a7dd0d2e8576e92c14a099a241661ee913cbb5cfa47a474534118183df1ab3a44b11336a8c3ec151f1753ed5463afb001d9723c4c72036ad5b4ca9fdd5d1646bba41bb2677728db02a56829f6e3e995c74177597107afc0483d9a94858aee0cc1b7cc438022d483b2511c94b1466755705ab89e4872b26f41d47bd72254115f68e59181fddfdb27c98fec551ac6ff4cddd0879751d8e6d1090e385bfe6a5170b9cfaeadb6c8c95648f8b7fcf58bd247ada0cc032841443257d22829c365ad672c9a86761057fd6d4f8089e074ed0ed725833cd32b30aac88cc4629987eebc64fef8167c9aefc567cd15447436108af707a6b193820de10a9665ba7d3ac729d0b8a6db73369c6c98e709b289f5701ca2446a200c1c1b99d42d04547f3d643231e3be97cb7ae4de9ae57207604490b8d54d5154b7f282a43859bae9cc157ca375aaa9af3ba77451d50be2e67226b3dcc3ef3e7956fbdc8bd65d49064817c669124a704adcd0db3673eb1a734d14044645b1394bab12acd268db0e77b550261072b5a347409ddbc00d6825c5846de22260956fc2b6b06b09e8c8421b06ee83d615d6ecbdfa7b8192d0b9712eebc2d504c2e197ec27e85ab6ef61c792e0f6dfa1d10768ae0e54bab2f9bfd81f64971590bc50a0d57f9010b37333789c1c0dc9347c5208c7c2d74cc10974fa95993dea7c384fafda30106e32644e2e994186c7d870f8334ddea77508a7b5d6e4db04dcaced6b9068803765b302620a19c449432ddbafc1ea52f12c049cc59d8a0768e725a7b48bcef581f368c6f18ef394b624e2e6c4c3579da67b8aaf612fbe39f3024a6ce75ea93591c12037bfc1ae894bb91c45ee4b108bbddb890ebf5114cf97b8a689b094f8bd731215b56bfddf03c54aafc0fe8e9305e694cfd02b68f881da3c026feebb7a9c52f389df1f64f9552b50efb026a9db74461d3501429d6c4d69ad83278d775f0bbefcbf4f28a4310b22d00d2203e67ce2c336a218ed905d85da2629d466056b2e4f41594e689c39b26384690077d4770df954f3bce796a083fe4b9fe30e1f4e1d118727374fc7302005ac16079568f8890f432269d5a3ad89ebf93680dcfb5230abbd1b46afe58f81ba15c356f2b14b6dc2aca81c601c36e06f236316fec54bda6743127eee780581c268aa7a56d1b2bef7caacca05643c990d39a8c09851b046fe3611f05977f58a79394d814332b201cbdac4557f5b78e204431f35af45f4d8e41cd156d596158fb009fd874b23669851b532ce9c530c9292c84d56f130034a620a871bd8732f16b89b71122628504a673cf097f65238ab1df0be7a6e3ea4f83161b2daf9fda676d57215b6ee6e56827919b8133f520c05c556c0365b8b3c135fa5b5492a4b1624c9cf7585afa6f62794a145f5e5bd320c028f85bf138659e47f4df9eb18152c54d67c753ea2f26fecfaf9b4b7fc0f5cb449847045a19b4faea44b66081611916d2f70c5e914892baa92ff1be7d72ef1b21d61db6e366f0b79d740111582fd51181cea547c6549c4e172ec0367327cbba3ee5cde9b9a13f7b27e2c8194db83c20e12d6ed2617a6329121523ae8bed748824b93ba3dcebe46006a96023528f2a925e40a2eac88c7098b05385e9606ffb19d0513168b96045300afa34fa1f56c38e73adce692ad6bb1f39bdedfe89432b9fa087ed061b95bc9eb43861df8831eef3ccafa1b43049a24bba976c57616e9903e4772c9fbfc005c4328cec073af0b9f38670b82614da1b2acd71b5127311a9b622d48c9c56f1396a9c7257c760876c27c6ec7f4148729764bb48b84d5a8ba487641cdd01a712d24e0013f3db4760eb615164c92e27de6a7032816de5bf2f352c2c20c37896023dd826dc3e52b0b4de8b00c8fd23b2c01c1c8f1b5bd6836d43d2d2123611187005912da95c148f8dd772353ec2c122ab6efdfe946e49f362a6d03dcb3b2993011b85fd2943bebb687a443cb14f0907d2dbd9e3c09a8b70d81d35c4f6d4aaac2b67afa2349fabe9699f9eec22f23717c3210c1798246557f965d5fa04e50b8811856096a7a9bd27016ac329f8b75d10b06b2c3adf4483d4e24c04c7729fb8ac9dc04f3ba612afd1d9fe593ce4986836a0d72e02270039928e3756ff3778ec4e4c716be2d767cccbed924317e1c327236922e824202c8e3b84c87531ec13cacac3b8611f65b16cc94183cd4731558bb236aef281fc95e208f50350758d5b2daa59fab5fcefdc705855b087abb5ff5fa2c0f4c2c840e40e5368c4a687ebfa02970caec01770085e8030bcfd198e4b50f4b865fd9ab42e8ded6083994a7ab5448409d3b25ed5af4807bb1170cda1841a2d7f928303e857d144812d4eb7c4e227bb7ef685dd975d08430ea54092b174231dd5a70f450933463bcea677c40f0fb26cae58336141ef4de8f51aebee62175f2cef2f76cf4dceb42604f8781df24d3b2df85d855029042aecea730e4ead82e817dca01e436c9aaa1ff6b58b0985a7e3fd141ca3527461c4d69b2526ea9ab29d94a398676fb32377ba8a2f3c484a28a56059e010e80b9e80002d1ba63a9b5961249ee1639db3e84c5d353aa4b88bed824b81607484d05c9472f9dda41ad63ae96f55562aa1449cb5adc6c16f8c9d9a62f28103222b7094b76dca9e40b7bff382b433a36a7302defe8601c1ee57c879f77fff4d95a43e6316b45b39c8df491152b259faabd39863e0e4eac1cb2d619e2a19b39105b7e0f121fa6f34e43175d4f0dc00027870cb39ba3fa43edbb613b1454a661cb266589668f21206ad8635679f8481e8f9c8707388b9d17bf41b519ec111dfe40b3ed5efa61dd8153949fc313f6c5298c38558ae9dd410cfb0d92cdba279a8562b318db3a0dbd100f9b797310d2e564018948c38e6a90069c7208192b552a3f837c65c256282a4a2ecacbb35309593927271a3c522f669db09c1932d1a4882a81fa17802e34fb342c400c10237dffc01bb47415e8bb3eb1b4064fbb0d4d4abc1a776afb4bc4c2892abc50ff8386a0cdf769582db5af0d976a015fb46646311287925e075eb225848b8c61fd5d104cb623ecf01abc8b93aefce3dc66c94a0a9560b15d8cbfeb5a0f66392a0d6803247fb2432d5de27206b3926754638be37240f53f95e66ccb4ef55ea0411dd9f61fc51287ce434025b59b3338279664b5a073286f0c06c6b6db8c739608e13b6d522cc6609437cdfaf88f2b2bd41ae84b451a4298cd111b7bd19411121108ceae35ead7b78cf12c50d855feaa4916cfc1098ff197386592f42192981202488f0bb009b9fc03a4b05e762ef177f556c67736b60c63ef2611348e182be516e9b327f7aade55852cb97f951f729da77c827e991a62c30d3a4f6e62f2ade4f640a760f8ae4537dfbd62c95aea5ec966cb26aa7e8a2736297f03c40914c057c2e0fba56633097b1f962ad823a7c39546268c679053c1cb554ae8075ec6ca306a86de87320d96e633e50f13f6df8d699879a69ecd6bae2e0e4667d4becc6e6790fef12a41a27314b48f00dc95121d029492c8da50a378d47626bf9cd963540fe251e8dc4b4d51022c74976c99f224c3e19b5b596537858d94dbdf2a7d2de7bc24b4454d68a7f6b51d1f5f35086576a7dfe743c0a4cc881a998279cf10b5b987a1ced595d91baf70e31c5bc659d22eb7e5959ae160c93f9459c62da5739b711ecd73a21a02ee1f9aac5a6652d87cb4d7b668f8c15988cf18cc2fa35b1ae7d72f11e1dd78b25ab8f78412d63d51b52e29825183283269bc17e28b9825f96a4ce511516a9b8639ce2ae6f7362ed1e782ef4f9b89b5f2e1f4fc810b0be3d781634c9d8a11b5d8f8d2f4c51df6fc5a476b18d7856271706029205152ee458010996b8775cbbe91d79231e438a19e229e6be74563ddc5ed18bd25d68beeeb4f8d9d5bd78b13e35042f1060d3dc6e307df826a283c7ed813c69450dcd7bd74f68c8697925c26e9e977cbb75b1fd7e09aa2101269ec1ca08b870b830c871a3f16dcef70c72241e17f34875ecc2b58d9c6d6bbb0bcb36ab5854b9b854d00756e12f998d65006faa2b43fcd5d82f17d4c5bb18395e54b587cc15a683bd22f7793a9d1d1b18ad856cfe68b00de48e0dd374117163bde0b484566b85aa6c78208b57de17a1007c91a38c697d5923621e3ade598afa307f7e70bcb49abd971cc6df5950583b23aaf390ef90541ff189f36566ea03200354f3c0a171010d7652ec1340f6995cf6052e6edcfb98895a955a2ccf5fce0a7eed0da2d6aece3b314e1f363b353e6bdb610f2f015c651ddfb610d7d42a77f1aef956ff7aa2eec3051ec1ff5ebb59685bd1d4db340e4d544bb8239b88a38cca7e799cce04f154a666020e9ecaed12716068b9c6592b6bce7ddf9a52a57b3d047b4050399cb916aa1cfa7df0086f7af801efbab2bcd4627b9917746587ff093260ae39fdc31ce86fe4f9ce1276119422c6e1fe6555006edfd5b2e1eb254c2e4a7f12934f462f3beb9ea9c6ddbaa605abcf0b3cf2480d1f1f58fcbecca7e48502a91e57d4084886e4d04873fb16bddc25859dc26abe4a08d7f2a2a73884738fbfecbc45eb85c420d128cf2f6d8865441f4d0dde011ee2aa82f0ebded2a2608788baf4a43019f9fef2d6d28bd0f1aa5106ad9062d1612c7909e259a1097da0a80f67068217fc7ff73b8a50da57fd03364384d052b80ac174f04c34296d700dd75586e64c0a92a28094dad21265def7ca87bb1ab7be81d1582115ad924a3eb60c77c6cd59aa4a76da288e0098509a27c98b9c241a1bfedf19975e4b391b8a60f8f3669abbae0e4cd41d023b145c45c743bdb824335f661a82efae2ddda0e5bb90075850e325f5b2801e494a4c14461048c335edf4be00b73878b79ed712b9f5c8ccd91611094cb0760aebad84a7324e3ef6ab6e1c32001148af6b64084810c764b8251200c36a2b716134f9439d0a91e9b0b0972be1456a54c2a3135bf14c261c2a46a6a5317f474f97ea889dd8e5484a2fe1591ab7622f2bac0962e24fdfaf6e748bc1c120647758e1b4a6f97697479bae2b049c4b8bd4eeb089b6a924bc9b8dacef30cb6ba128bce307b4ef70abf5496ec01e4112c015e93a54a1770338a88b78b7299199d55728c765762d8524b6e2ac66d775e67d8d693587a86d53bdd37f8554b5c2483dd72b277d8a50712d97f04d877d4142776372edc19dad1499824e36c73de5bd85253124a956c0e07b0a37b22619f9a47cab780ca05f895db1a2807699f98a70bffbe147aed26ae5fff1b58c7ae8d3c414a721f6de2115086dbf354b4184865b3983aba9ee2acbe16f31fc73c2b79cf3a96d97d9254e68639dd1ea506cc7972c5eca9a4fa71707438ac24fb764a6cf75453a73c8b369d0405ea6562f94a4c512006ebb3291154c00636aa5801bfc01e0b5ac78533bc5b71413494116023568b5d7ac73ecee94f33102693b495ff904a1a057463510c835fd1de299763cb0b12c7196c9b54b9678efed67268b8f3a6e3aa4dfa7c1135aef6b020a0a7bc4650e97c89b53d65cb590fba57a17aada3c4c33201a05c8d80f597b6dd7c4a396547498d0f1b6565e25bdeca8db13ef5e9849b129f507584f241993df4d2be90772aea75a553e6939937ef7f3da146ee45ac7bf9547527f4aba2d734fdad0e0953ebcd68aced0a9ca5aa97a3ed7948328df687e64421480bd462289b5212fa850678fc7b261845e4384ebfe38150b716dce01862d6a2d5dce3f94de8020520575505c72a7dbc7a866cc6b53acce0b9afcf2f7448c49c428e77e2b40cd52f4e3b0f89927ce503d9a20573138a0a6fc88a23bf4d6418dc33dbf4a331fb9cc7793d61c8daa99d3fe8294846ee4512228bc62a282a39c3209e589d92bb155ea7d9bb10b16da870a03eeb4284f437164181a16acaab434629aaf530d8fc92f6a3f3b90ee6661e91c873a821c8b21941062ba1d922ece5f52128d76aee4cf76492dbe5e52ab7828091d6f6bf035aa2a4a7ce947c88ff79750f646d4a5c0147aaa2aa8c2d4bc666caf2886b9364cae3731884c8d81f755d825a4e945a628b1320f98742c8c84209f152a9dcc6612420f2faac62d64c2da04b8f8bd1140532d8680af0db652185eda2f7c60eb44ee92b644c90fd580b83ce15615f43c95686af764f8d84667443ee736d46841e7538c896d3cb721168323551b02ec9a302d3b2bc90b42b11042070fe0deaa0110632a1ce2bc4b2b0db7f67d80aa59bc79581118419c068de65721f294c10a50aa0098510a22b0124c7ddfdfefc216d0dcc2670218af01df947cedf8cda1f2a04bf0968802cd92f106c71ca09c9b87d61ab54c60525c018d29b8847a21ae443f87c14d9d1b3713d9d4e9d9def035d5f5016440b136e5077387900f166b639df0dfec1d2803562c1c4b53b68012b3821f91bb3121ac15194f82b63e8dd9063a5c86bbc564d93ba86773c40aaf40215a4d46c272ba39ae6d2e5a9744cbddebd8f27248d2b81db275b06907be82966c7c1f10fb20ff4bff53c41a74450a3b89e270e03a21297f85205d7d6686d59abe25d6dd777ab145f245883c05b223f368d5d3f1d968efd597ae69bc1027fc014bbf63b7de3133007cb4b320d66624e26a54629d708565b9600aa689531a345319260a4d263289bcf46f5a55190ed14c649c7abb76bb2c4c132856c5c176bcbba71516885097833d92ca07bb03f5060458535c77cfadd689458cac45a639266c70f9d532cf80fa1c91482b395182f9b695caf9dbd102089b3b78da6fd3a3f5d0f34acdb3d452a966067f800d37daa605550e38b540f6afeea2854a19b653ce30e75e9a0aa2dee8a6de078877308c63bde1cb9d2b20e65a97d30eab6c50623551e6ea555345128d8e6b5bd7bb8d216b22153d8ef1ba1017dbe39316f6b6c1abe41b221e292c4c8e8fe7a3da71fc9971801905c19a10cc3237f2bed4da831f6278e8965492eb68e33b29a26a30dd67eae4b4545474d306469afd476e15090082466433ff42ca6e95deb0ce3437f6af9d126d79183c93e917b2fe9f0bda73fb96256f8a38bc9b371974a9a01df6dd29ea8099071eba77f6a3f0968234c19ec673d1b697df376047aa27e30cc1ee9517d06155b003fcb7cfd028b02d9998149dd927d260b38e5bdac5e939ae7af68bef2a13f774be647c000f94040d64c32f63843d546d2578dd2c20bb1e1327b310735eae7771eb3ae0d43ddaf1a720070bdffbe45f9a745b6de2f45383dcc6eab79a7e93e341be4ceb5b950401762d9b2569141c0a12055f12acaded4d8c547bc53c510684105b754540576b2502b55d185ab9ac8e84c355a7261eb46b7ced53df635d2a9204929405b92913d0620ce569631316bc5a9bf172eec74ad3413e7b644df2e9685a32a96f6d56e08970c6dab429fe6210f3853db235858bd8d51a990e0f8df868d59bdde7bdbed89fbd3092df1b0070849124a53fd2f4693a6abdaac9b1004899f26da747c077df1133cea00d6623cb1e77cf2a634906bc8021f44c3f097c0154c707e410762aa9f3470ae5fb02929a5194328004e866627aeff4e29c2e6181b1f1b1019c52482321c1f68590014886f7e9934b26bd404dde8a19b4b73e8a9d07dde47ed02ee0a77b2a92e692c9a74e785e2d3f819b18f86d179adb3adad192658c73e5e3a755b077c49aac3e94ae766bbbdc74bdbdbbf1bd31da998b01d69d68b222db078bfa6d1de94a2ff259ab8ef281082140abec6690817fb4994de1d79aedff8caadb0caa5c35d5a61622631f5d947d8fd77bac18ac51d64945022f862e900578d6032ed337895795253c7e70ab904d944a0dca88d25cd10e8a8495d377e0bd3e04b085e631d94db8a251504caa2dc88b89182a1a7dc38f5114446321d876699cff64904cba6db63412631b83170a4bdc70c97fe166c2ec70717a6e8a88b80e9ee48a56b2deb6f79b606cdfc30ee5302f246c13eb1b42e8ee1b3197acc7d2e1a23a2e46a5924fecfec294acbb7b60bda7c6acc61f434308f70544470229252d1a0e74b8da479595fd0e0c4e7d096bfc0259b89f84ef4f4e1c73ec6e07a367d652c76b2b1c47d28bdcf31be5ddf1f96d5fb655bfb667a7ea033f43f2d36dc042f266b77d11992e0c658914793fefd0c9e6acdc48dddde1eb26eb2c39911f9c252931a4644949d66a39d97ccaf040e074c77651dede740d5e53e7ab1b51b308066a1e07ff64801df88357645c5428251f88f5ff0b1807b14595be5d69eff1f338affc0a62ef4a2bbc5ba7f872e8c906de23b0d13de463b1b08b234da73811616f4ad7d57b047e310a44bcf1205852c4f10df18c69096a24441e0345a4cfca30df3897c8c622d5ea9ab36e029d42c0bad71046a5defab6e8c06f82333f32da4a5a2f1833a0662fd9f565b177760418324a38c323dc4d55e72cb496a48a4c9c9791f510277db4f6a88f0f55015df051b9f0abb1b4db21eadf690de3abf927389549b841982037e285778a45070d09afbab28b7f944be5135611f39204a4fc42fc35d1858bea7906f7f644ddbd61b44f9ed8bdb8632d1911ee57d10e3c702ebfbe7b35a345d8ccb739c2b90acb3539930e9197ad61ce54ac27d5b5f214a1e7e0a9f5214b57729beac5affd5a47c1b6eb16eca0cf67cd604df0c10d2725ea5c91bd34e80a99243730bf958633f32ef3eb65ccc620f0d3850024d66ca7b64a4218579e85d6b90a34ec84d68707b2a2bad8e1b2b0ffc6d42599b2ad7466ce13dd95dfcfa08f111cb526bf54be21b93167afccfe428bd4f44e548b6ffdd5619ee2b069ace3c110e632b56c4fb701148165ad9a50421ee371aeddea4c0ce54a67342a2dd72e225bdb0eb1dc7802ae5990b335c2df70cf45c5fb8427b43a0bf040f459daaad7ee62d83c9d77ed7a4e4afbc4a14ec594230424ca694721cf8e3554d166126123205b414bc0ce4eb6ad0250327c9637910044313d7faa317902c778d32525890fdc186f357f0b9c5f9a9e013e131786a1e9f10bf61033bdf3800f2803af3929a53b7f3da0824382aa450f1722c85a064b6e86f08c6964da8f79324363365c4c2398e679a462d7c2c34cab099e359089d355ae7caf71fd48564a160b4f5b9bb4a832bf319cb7381af73c382d83aa8c8181a6727fd7ca161e2942345353f9093969554945a7dec5707301e79e40f36d6f3c5b12e38a504d8b5f6c18f0fc980f3c5b3e8a6bcdf4d75cbd8ef363da26fb13f069762b9c805787a2ea0ec0b8194e1d9bc8ec8f62c42466f452aaa9616f216b844d113346fbecc800f570ca0099531c3188044627e99974ef89a089806664301912d1933c4e9fbbad6a571292f630e50fe4cac66ae82ccf7acc1bddaba91eb8af924fd62afa76d856b03717a572d37fd0a469a4c9df2fccc414a4ec30e8fb1a2dc2a21c2c0b8d1900c8491e4b561727c94d78018c3805c69fa2792e9d66f114b97082e08e02700201272ee741f7f188087f4ec7ca8fcb2424d8ba750a4409eb7009c13eb4fff1fe78bab221ef67deb7aa2d610380d75992cfef08be80a3f922494b4658e4d372b59445ac44a07702dff924dfe7385a91cc603060dc6c8ee15d29050543592001351f7c60949f2be092de2dd42d7a76b5180e38bfddd6b1ea15897a9ce64a8751577d0d5a2ed46bf3580f3452b9a7cb3e76914a02da8c902cec6dfc043fdd7d7e0e7997e9534b438f89000c05a4400fea3010294120170f45902a47a12009888abc7de7749b8cb27a76b28940278e5a28029ba080035bb5038c6dde967f0baa239bc26beed8f271eed3a02f1cc0cc468959bf746137515148c96329e22a23b1a80ac1cfe6da1001c54bde37f27f5ff8319fe9bf66ae8b94fb1b11600800b4be5a026e00a9689f004362ee62483a6cec9b6c2ab7eea9cfcf218100200c407c0000251bc910040c001a0100c00fdbfc100700d010033d0ffc51cf77f811a9d2101e416150023daf5c2ac41557950e73056948032b738b78ffdb2149642b16f76c2f489ed3138f13ff597706ffa35dde1389afeffe982fdfb61fe5f29bf30f17fe59566b17099faa1fa912b3731e89fa9c5d632126fb5045c541417972fab2fd091ff155e030be79cc2908b08b4159eb084eb0c928930c530faef165b9f91b3faef9216e0f876a42c2a00cb2190e2ff57b6ffc843fd8f8322156620923e12e29bfa81e20d7e06aec365483a54fb2a6cf17fa32340df0ee4c62c48f6f2087400dc8e0e7291b3b065d43f0f447163a0b20f9c015965c32c74c271fcdb660ce55cb4217e855ce7533d27ce04a24825bf77f95fbf840508209ba1918bee3e2654b02a2dfac62b25d7668ad136f7e281443b3bed3cbe34845378569f61a5b62d8333c6cf59196d1c9e8ddd73583a3f6491540a18903717ea77a251bfe4b0c07cedb51588a57a298ea231fa011bb261ccd650674ff160ecb2f07e963101cc599b898b0e2875d6ea980b09d87987562ccc9e3e1f575dfe0bc8f6370d8072e849f711b907984f6818e24c4dcda6641a8601ccd691ecc30616f0ad8edbc1b59167972a5142e1744d7755177571dd691d96dc005e928c835a7f862241d188affc4fe4887a251d3ca22a084c5741640a7243bf3358b7ef26a5584da5603076b67465bf3ae33ad29981539cd09eb1d3145ce7442c603d9ee48fbd070aaece8701c83768f26159cd7ba0980c9a992e35ed870372991e754a9f42043e23d614b4c054b7faa1cd6aef8b1874c914748e82962c9af2457fe44328bf7301d406ad26f1814e57f1c0f52d12f9d1aa09f736960e7443d7030335e51638387923a0d3ea255e882bc33c2a662843f7be52a818ac9612a0d7a518f1a5a54f641012757833d8f6ae8f7362ff1c29f598d3581cc62ef0b537aac59cecf1e10486d42f0374275ec0eaf83fe2b96cd6b1da957d6f7dd6ae6c89bef9b7986e42a1ad708a4fe6f53738f362e584f7465dddcf0f0364860f31895d3f2c77d71f5f5f4687744a16f0899e18287d176f573f0c1d3b5c575b82b76db4f7b9aaa368d4a42bd7548c296ffd039f7d583e25ac257df62687f44c73246831e789ba514bba7ab51162d61ee507b94782b5bb424ac04bb04d879ee8fb7783da4d7ea755a8ec086c7d3c22f03a1179177abf78cb9184034f68fdfc3fc89a76e8d1344b41843c00f7a6c3be4b7f02288b7cd90c9bec651f1d02a82358f60129d00e66585880fae84e9c569c27c3921bbf72754d54221d7db36f6460b1cae77d130a28cfffff2b277a1058df44e16352a444346a77d97633a9f5490c5ba9b4a15fd12e1512f2d744aaaf62d366c8e77cee60c3d275c21935c679a4b96d9fdf25f59242df4879cb7ef17b6ac453a589d2c48d40d231d98b65b4084123398ca1affbd809da7da4e6c739281026737f3631f9c1049e253bb736a2edfeec1ad7978661df1f058be4650f29cd8977c694d20bbe3dd12a7a03650de211f9455511f9f3d8727a7b62db128472fc7bcf29a0755137709ad80c463cbd7c26c2ee9e7f1ad2689e66dc42329bc199f482da580427e2fc9361dbb88c78d708b2e17c2a0b729299786cfbb66e5cbf94b94bd7337a40cb07a553ad4f939dedce30003a06ba2d6e2b14268654c260be00a50408a9dcec3f13b614d3b8139a84acc3396501977992c12f2dbf1313a102b27c034977efa6fdacc86152758b2c95eae66db9a06bb6b2eee6b7bd6aeed3d71604e8a74f32ca2be5fe13bbb2a0f0ca6e7eb302977f162a05ceac882611ded111a5b81db7085aacc1de831fdf8fb02a54e851133a6eb196c64b41317fa977fa1bd73d0ee62aaa7a6606b186664992d51b86f95fba982f73bc14028d51904c4f1aab095a9402745aeb5fce1b3fcde212befc459c3678dd41dd581fa6985543b561e9a4a9560dcdba1aceaeac56fc621c6801dc6077ef7d62e6a5b0b46292ace17179837bea9cfd46856bb464a260b57bfe8016956070ff039765cfdf5585ea71448a799bcc13896b04ce9fcdb8d365dc4decbbef7e152bb553f1b67303ca25c19220286f52ee0fe347fdb4e97c10d6aaa2ed93c20ae25616b9c5eb430c47f45a3021ec83013372271dd10ce5e36b7f5cf52955ff1df52ace3138ad55a711ee9a926c747a3c865b907f7f5306ff416d6480398590cba41d81af062c0ff6a88c467f869a2a3d936861a19d6409a949c54071d8980876fd48bfe481b0e6e31c23b8bbe44d0378d4a11a11b0f0404cd1743c58595cae3988d7eb77f94196e09e60f29ac099a29e58641e6c6aa6f3c04064b7a60620352cf9dd4229f89fd783a4a40379413f0e504f00826eea467d1b6a8f167dd18e7e02e343ae01734651bd05b34fb6c3bb1fa8663e5e85be72e16014fc38c2eaa058a7688545fa3f9d358f44e909c905ad8c87aff72e04cc79f69a4523f08b7c161e606708115664740fc5c370e9f9203c83035709507851df601873c7f33f7c6d84d90fad92f0dc638b0c11b3ac1aabf15b50a9e8e05e334a437c6fefa0eaafd64b12c5ba939049fc579736e526b310ddc36d712724f416a6af3f5385eca1e592ec7012d693309fdc8475aa5aa9a62a25f20de1a58c388a2cb2c48b8cc43b0647494c858469bda6768dca4b0bf35af8109fe27abcb440f11eacacce0567201a9b40aebfeec51305dc1b94673d714bce70902a7e37be7dd1481040102bc5cb9041752e96deae36ba032843c92f868cc88f99cb5cb2c7bdc5186df38738251bbaec8aed51a063ae197784351906da4b65e468237c1a28edbffbe59e5829f54ebfe7c574dafe79d83aeeb52bfff322966b2dde72f8bfd3bef92f8c7f40f7e6ca7939fc26e1186cd25a58c97cde065ca9edecfb26528a1011e50cc4621b800fc88fe381cf7d2548d8331cd8781b6f9a4f67df960e3cb7d446ad5b2f7a454e21397ff6f048633c83540c1d4a24650ba1ea325e960a87bef70c6586594a086910ed3f5f3ebfd21186fb3727de2cdfd2b45b9f0ebb9aa4d2914ea187bd5ec2bccf396f04094c0bd23b359510096e270f82651ad5bf781ac22024b34906becb9f928a62a8542862649a3780d176fab94c2c14abe1f4763c23f675d5f72f4216f85765bfaab8e0fc289e48458c9c2ee8aecc4a0bd756e49d96e71fc59a18739c6b6b065a8faff2967ce5c4e298b0ced67b7d7fac657b5ff790e390151c6f82e04b86eb35a6d4b2d8b1040db052d5c1bf97a620b425aac273872bc941987779443d608296e6c4980de76ddc00d395342c90fb299a669ff784c6947df7e60132405ea10179726ab72b5bd56504375b1404b376e527a69beb349268264b60c2f9fae10d12777541afa89b97f756b516ebeb2f6aa4277b74c2df5891f42162315fc369e685fa5bc8ee002bb207c022c74b3541433924881c2cc0a79f80a5601e56bb0204ab884b7d0d2bc0f1e17c54013ab1ba0e8a997dee4e7af0b283d129f889022cf49166e3409f346a65c444017e46b11b796b8d18f10ca64e331fc357de55dbea4a56d68707e284a77f604df92883037b02a4c186e6f903973a8056e4227299af2865fe0b0d2d8e0a86d1ddd886f33397fab8918c7b4dfe2fba995d3566f4ce998bda451d86b8bab10247d564d58d2d4021248a785911f80a9ca87121f534f11bd252fd8b966d5c675865a20ce65ce9631e9d552e3f1b15625c3270ce73819623be9c8df095883a31cf0673a27b08c1198817b2b0827cb48d2681262b199a7f449538200e834cbcef5a31f9ebbf9cb210611799ba1ddc5dd4d5570f83cf816292f0e458d1098a5d05a8b56bfc1492432c50ae65318594cfeb64b1f9c15f17c51a8b281bedb1cc4135c15408bc87c38863d0091c5f8686494c0bf6d93719aa0d32a477f60e741f022435f0dbe0940cefa274857cf6b8b89cabd0638be4a8696f91bbd2cfa31487b94c61fa7dfb44edb8cb4af4ce59ad9e5969fab610275f9ac5e248869a23caa2c8ebfd3ef25bf1e922c732e11544a78b77efec76791d45f38a57a8c617ee319d13072b6ab83b3f9da0b9cbe17efbf054741cd4cd104a33839191d9b6f16383f3635a60276582d2d8edac8ede446c8ee94a73388d95468db9b72189dc08a8adb5eb5c43154d952712c875ec7205f56501226f7e879919b07196497432d46fff16142ff9ac874bc4856f958505337118624447403b8c6dc99118f5bf8a2ed50a6bf28bd8eb1c8abf06059914b38452d6f2862b65c1db5e0574af031a54167b5b20d03252071239d720e9ef79382107c3728fc83d7b3c34942ee04481084b3e8cfb1e74d4d5dff4b479b5e21a920a3f575e8d1a9133402a652aa2b4a4042f559d59847f70ab9827ce79e52ded7d841d81204fc82e215b6e29654a3285077707af07b5af76bf5b2b9a3c5ef67e15eaa8138db8aa6334e6aa6ff2f4cde2d66a5d4b03873f6fa370b382bda953d46cd475012e78f062891113920c23ea9a63b6e0a2062e5da0c104ac5614c4a56045568821ed77a75c219ab7c23be5caca72e80a5d2a57a8bc53eead19e00a46f90ed9492c68f2d45b23a2b55b7b3257fe4158e958edd66a5d8dde1abd37a25aedc6f825716b32683eee3e3e3bbcf8640a4eb9efff9d0a8cacb56f396bb94e592caeea18757560d7602c168b21992b7fb1e683a5e02e3d8046f6efeeeeeeeeee1eaef2efba5ba9042b702e94244992249b03c321997b1e53e0b0c96faee89394a4476ca65348a04bb17572f305ca71dce4b8c971369f91224dba0a0b2f386cb24a712ade0a8be4c8f4ebd3be8891a2229bcd28fc26c3bf22c3d01986feeead9782a167ee9b3643e48b580eaeb9d43775b80fe32a1289263d08f29dfc277be6356c440945f6aec31885faa7968a3349689ce8617c85a0838a865e55ea2b798576a42c968d4d5026bba9fb460c5314a806ba963140bf7b8fde50392b8ad4762cfbaac9e325285d8361d76ef0d7bc92d74ceae6e4e1ecdf190713a2b770b2bf059a3c33d9c32a0bbbfcc9e6cafffb52e9436cbaa920345f0326a9799a3fa582ccbc0d98c4e667deab49515b8a1add04e1e06b9e0390da6eeed7dc04e9e06dbe03908237f739002b6c0472734105f8cbe66d407a0456b1ca2a51955157f5e2a5c35856bdc84e389d6ef512fae8e3fd966db934f64df3f5a560b039b462bfe763f839a44761552217e95aae6fdf237d34a9f99a791f4ee0f057985d8ec8f546930f7d1cb195e2e3288ee3359d70e97f30055390b3a258da2851963f3fd4d5756557fed0f0741511ea7a0f2184fc132bf202c87b0e84529f3a3e572e13857dc2b4007fa1b2e0d0a5a01c0b2c6e740d8805a37b0839c456e29f5a6bad24c870093ae00acc0b6060c8910d4c3b436c361baa070ad563c80dd291024c62ffee3a146ab228138fd6a9ff12a9047ebef26fd073f8dd9b03875e775931802e38fc70d26e25fd8d2626e0f8aa5fb5732bad2b1bcc88b88deea69525109caba3f8f2e732d0076168f250317962d02e2174e555b44bc95c79b371060dba530ebbc45af46ca38becdf83740eec72eaf87c591958814617f115cea22e6bdb3fa16d0ac8d4f16fa1e39103ee72b60e71aefc61dd182b52d2651bffd8bf5be461a8830eeebde41da92b877b0e035cc15e0e8e53b96bbc4e2c072686fd67f632f224922196fbc2bc157260b27f78c52c7a6b12011d65ff0bc41985f1967346d99fb8220786f4e5c04960b761192e7295df92ba26bd37d63dbe24fbdf206fd54bcb7e65980abe4b5c99b72a75f9c56283d10adbd941955277bce1ce3b29d4208502b4dac0ad1b74f94178631596439a4494314700a6abd290a3c2ae609b1c569801aee04bc374dd267784c1f2a945c61db7983afe4222708bae93a903ded155fe2d31b882f38e3caae07047a6010dc074e54bf025a90b95850f230aa8d0610547bcfcaf1075cd296230c68c1168680b1b5efe77bc310708b945e3bdf78e77bca38c510bba2841451bd96138d2c170ca47ba068358db04cf3cf391de31e9a8d5808867c8dc64c820bd1e5c60ca62f954038cb9d77e3db8c03ba060e76aaa688ed58304987ef7571e377fb7200f3570c862a1809302dc2c99dbdda184a2aeecd31ad7ff9d2dee7bb6ecf7ecb40e51f4f90186deb3e333793aebcc2e1474bd573c83175017a652867825cb2d8805afa94619495c8172455605cceb03b61638d94236e483979792202e4f347113230b58112f7fcf5adbcdfeef3a1f6a9d9ea88fe8e2effcef909a28a1c8d5559282f678d93ada4b9fb27ee04ead9e913c8191b8ca954cdacfd4a92614ba4e8aab7ce62b7f2b735595a9c31f099f9b074969704e1da1ff90fddba3d42a05d6221881c3eaa406b9cb495f4971970bf9ca9fcc1e2793a7becb7ce5a47b2ce83fcc1d66cb9f4c957f75e224bc397bacd4396233622b52d259ce1224e22a17452ffd8bc73ce6a5971ef3d2635ebaf033cb70962414ea5fa562b176bcf4b294016363338e2379caa38d4d9e53e669eb43bb3a21b0116d93a096891b59236fddd8ef6cab1d2d93ccc45bf56da82cd38809a32ad98d88b0a309851c37a22e3b8e46a39151673b76a3ad2ff03275f210173e80c1c9d4a9a01de904fcfd874c1d7f3bdaa68ece5c8d281f248ce3388ea38dc783132514d9695b6bf375f9a6fa355f14f7cb631ce9efdfcd3cb52041509e361865a94cd9a5c6e571e72fff320041af4ee20c2c47bc4214052ba57588e76a27e62a0a317a6606a6331f57b0cde1b4b140c11d4b4099ad287388e9424257de3ded6404a8142acfe912fb88d8ec3ace5624d8e7a8fce95a89086f523a29ed6687ac1cd5e370cf71e00bb4fab7db5147fbd7d9ea66f150258c0ee40c57d640019723c08cd1228632805eee4ddd6b93f2c78d2db057569f804b80e7ff74c1f7df7f5f62c122dd95681db55210703a1c1c29f01d23872cdb0c3333dd4dc33935eaca71cfa9e5d47272accdd1993c37fbb79711aac061d7bad644deeadeb96e91fef44e0a791f8bfb524888d09597b32efa222f31aefddc5a175130ecaeedf4f0e95af77879a22db55aad569be99c74821a59a31d0adde4992effe1c7124cca619749245237499ebbeeed74268fe7fb0136131b51284169094cf0b3d1340f757b709ccd97f29ce3ae0ef295bf135f79131d00308ee3d863bfeb7b3fd51e2b1fb07f953e04c107c67a953e0cc100a5f7ff6e827cde7f3535c5f4a4d41022483c8d572905eb5e26d0085d79e951a97e79a99b20a5f7de039374710b7a858022e1f5571a420285d01be80d93a73be6050e9b7eac0b0230816fc8ee022cb6ec5cf7748c823d9690050e7746230f6373f85f72f59105d71c7e7d0fc3c770337c8d2ffea5c767839323e733771243841a488a84288aa2288a22c6a87fcf45164b1461b556957789ca13454d3075fc5d9cd35b2dfa122e7acca5b890cb68c3bc15521364292250964c454a4d307926111164e671df32dd7b4059429f349934f088e1d04571eaf0b081d8f4bd268aa2288aa2288aa28b545c32290dd9699379f444145b14459a8b2e52d9a9084c73a32183ca682e93610aa3630348b7fb525722fd7c61bce4a6bcf449b483c4f483e8647f3a9b3c36fb532c74469770d5acde701c950d512f4ed22f5446699488daa851f6e7ac90b7a853b2560aa32e27821139118f2ccea22bdfa158c41ea30102044302da76a3c2090dd292d2a88cce64b1fafd241893c953a90cb6c4d4718f9141ae6a1ae6cadfd4302a9351199551998ce626838608d945983cfd4a7838628a1d7e10c389146cf10232860b44c04417307ee8b878feeda914fc6b2a643968bf76291b541156c6aeea0e9bb1f3aabecdc86690e8c8d38dba82b84f22222fc8e4716b6d101f67e019ee5b53c1c1043eba51c3337bd4883c899e88e596359516d3425bbc3589642ae0689ae015870a83275d6123306caefc6f37d8ed83366c6ed3093c84c061c372c3260f0d3748fc247bd70406cf36e5e5cd8876750de6ca5f68e64a12d97f3a962d5b5a05d34584ae7acbd14c6f390373399c442db8cafd5da4563a278ca268a1dbed76bbdd6e37d99744371155a474774b11c2d355475ce5ffc1143c9b1de4adfe59cf66deb39e5dce564a53a1a3cc1cfec1889bd2da1e809bbb7b9195213a6b63ef014b0ebf1edef22bd2c87e7b1f70b8c3bd873bd4c657cd04596bbcc03344fdd06a45b556d5577fd8ea6783d33a6c438e206bfddc556395645285b277af24df5fba007fc93c3ee1d34d90196abb299d52374168fef434a7197c43f5aee75dd08a61e7f6827c2753ea268849c63bc99c523741f09f1e83a7c72f93ba0932f3323f0352a392cccb9c4a9e579a433ede0fe750be3f4be074d5fd52f37553f6fb4532d9ffae9292d7a48183898f87cb7ee30a1ccac84c9eb6323232d9bb9910b354ac7a85be37edb4d3da69a7f57cfc80699ef57dfcf003ee209475f749c1c0618579d7ee06c7068fd8eca08f1556476f7161bc6527cf25a36654b5d86a1445d5895ab542ab459441645a299dd527790420dc7d8f161c625ad215c5e24753877a1aa11f9151042b08d5934c67b409a561c98cce5c457f0b1cd25ba6f4465dd3e9982a7acbde72601a7dbac59f4845595f32ddc9210e33761dc6a8d1479799e17293fbcb75ddedba8ebbf4deafddedfadefb4c7a044b94925e48dd23cebb3787d16d081ab18dec5d87310a55aa682ad53f0ad55fb254d3f4de2f0743fcdd2b79ddd4a4a2caebbe9297473f2f45aea258c274017bddd4a4a2cacbdfc3c104a6a14d9eeb315afadbd1073936e01b05f8cbcbecb4a9133b81042470e8316bda5103875e2e60bebca42bff1e3098865dd4a94e0b267de91fbbca7e1154eef7808671f28d237088baa1a4d40d7d4fe64fff8099c7efcda4fe8613387c176845bce543ae2a793975fcbdd3e9443f9cb61999d40d190e593c80c0a1c7784cc1a1c73078435fe604de50f006c8490604c1f7a5ef490fc4040279e00d7dd27bff8124d2f7a5ffdef37ccc30293768f31875758cd28ed18ed18e358d7ea14545369b9191975e52265e96b1275d10b888ec569c56c20f98be0f18ec5b6ab4e7401f1a21071cce2320181d291357752c979ef416097595409205c30ea2ebc0395715ec5859966559d288d639d0828abbcd874b30420bb0db14463dc55806e809dc4f2b9625bac9cf2b0da12e0ffc1cfc507002afb8ef1b9acc1d66cbde50821b6cfd992b7fd28f21eff3ef33c4462b3d9a93b6da5aabb5b69b445cf022a496600346b9601443c55031540c1543c58088011165ba3c400181020205042a168bc562b158ec5ac189b60d5b2dcd829646f355d8e5d0d29a3679bcd6da4dcfa1a57d4006b65a264fbf7ba94443e3411653a7c6430c0e2dad66693457c5208c06d8efe80a2f6999114e1a0d8716a8dae8ca36c1b0bbd5d62e12e839e4d0bdeca2843890b45e134005451172686940bc26031cfa1415bc357928cd57982b7f15689ce805fd94655996e54f59966559fed070adb59b433aee8b47560e6c3800abafbcd61934a88b66e61be6a631df9806523279fc41307b7a24993cdefb43c02330c401b32788907016859328b730e78f775d374d27c8bc7b3f4d2978ad0169c01990340224487f202ba747102e3e3b9e699c94c5abb5feff04ffb9548f2f57aad8426ca3f34814755517157866d0849f1ee7ca9f2caab5e2206b1c6432994c0c0ae5a2cd42591df5d99148a4d9cd3949f35e12895422914a24128e8d93482412e9f6bdf792483f94d4f7f6ff2d2a126202c3bb8143ad56a37db5af56a3aeef0b3cfd4e5c15bb23ac7bee93a9c32f1412745f4881ec95cec46d701807a20093614c32da295246877913d7c1ed588e5f6cfc6298e6b02f6661d43aecc2b8991367e2b0718c914263d10c69721060b79a03cc14260bdd83e33f598053bad7da4dae7e7336848983f373d382e7ec2689be3057fe627dc196a44716da87d336c423f279bb8d24a6ec1a5db9cf972935bdb0a6605841a696b97f3c067f0e593bafb2f9c65923374c6f46b0ec9e41c321717070706a728883c3a303a63b98c09685e9aabac30a8e826dccf36f523a29754161032c9cf822050a1918a0e1c914306c4085ca08fcbdaec318d6b00c9b5c8021466e30c4573839c1c8844d189d471d909f1c3170f8ae4a7e14d9df67522f5c00c5adca0bbcb8a2e5d563cc4094228a185b6a2778b50cb868b1b2c6188615afc6620c1137190021aad104939cb821b691fd3d1a7e99d3e761b02cbfa4d24253c7871c8b7fb5ce5b7220b54d310959f02d2fad7a1fdef26f79d46049613745ca62ead04481431b9b453766580875f5cb7bfcdccb5828d3854137a22b2f9201ad1227d01e6102ed101cc7a5e67be0ad32577745c1cbc4a5724b2a1f0c2c328f8ca8ec74d794009c2dbdf7aded2cce34e55f8a7c44811d88f73f2e84babc77a3988d658ffb2c49853c0fb431baf231770e2de97d9b1a505f9e07de32db2736085b84b562cbb22ccbb22c6f8824c75e0c61e912854a0ebb3ca308d1258a0f41b3202b5d7a9875e9c14a0f4219774006a9cb317548608e2ec72c87e82af79ad25a6badd55536ecb26d53fd0fc68aa3e8c6888666423bb31da299a2192f3343de9a34773539539b51573b7132cbfe3342d4d5305ff98c50f6d98cad8371f25ceb4545e2ced864ae6a59d7ed33468e7c418f767118610ec85560cbbc97f06eecc6dcd5405cd25b7366af5b665b9cec92c3cfbbc1c0e4f01291604c0e73e4577869cfbc4562f15999c3de02450ebb899ea12087fda576aa33a594d224aef20791a43a37156fc9264f63993a5666abb34c15159f317049644186166f8c24a288c943a748e9ead33fda75499efc405f00613b8192bb671dc5143615df98479b3cb1c943676c37d6c1d8335b9e4d1dc7b1a89ea5b81992fec6e22bffaee1f0c6b2902c56db89c53ab8dd7041b7289262592bc7b92985394f29d49caa410cb3d5cd305bb706b17b7cbe45f1761398ad6a7f1e80aa992d904017ddfde76ca53e3f0fe89e954f0b4861bc496138817effcd0428e5389bcf85a91346f61733c6101b70d83f26dce04c970f9f9be913def8dc649fa923020f389cb6da7135d84aabcfd499df9303fe02d4f0731c080309f908270693380a251b859f1c70fdf0cbdc9cf376f7de6bf3d9af5d67b9eeee175a88abfc86076c4b657f22ddd3750d93870803664f0722f042680f8693688bec4fdff3ef2707ece5f0cb7eca2f70f5dbb402c94ae6fc8d201942c46f473943c8130e374eb00a4de009d6faa82e916c6c6c7080c1618ff48dc61eb93955ae52b5ea87aaacadd62a97d24bcb430b0e9d7ecb5a6bf3d9dab555c62d77f2d0d4f1b2b4290ff20abe04455d2544a1258b9d1e9f0d8ed7daada2a2e874dafd8fa320f352c60d358c3e4031648d30316881811133d070af05b2c862d6021d6656c8546784f1e20c239e880106c7fdac5511440a9248438a29575e5eab01ed05362802cb91b50428b7a821c61360a86811c1cb1314d420062e3204d55a552a1646cd8ed2e93367f9b99f4c27b09a26c9567a448dcc1638eec91518f6e5f4619752308e0d14af5d18c76ba061f604691ddebd4f1eee5d42fa4b7f0903464c18b3e748ebf0d387841ea13ae8c6141c76cc69f026fe240887c1be24beea073ad2a37b5eb08191a9d3bf63eb2e0288a68e90233e4553cca7021af9cdbe1f5170272ec9d3555ac88f560e40096c82106e2190d118638c31a63516bb0e6314ea5fa5eaf0074de0b064cb5e82e51214b873a82a31c13f5ed7759c4af49697fd3190b7cac0fd1eb599ce29f66b94c06108b4ec1f028dba308c5a50ac85402343a0f980027bd967d71316714c812ba80216dbc482cc1857f5ab62118f3886450cfb5161f2d06f22e359c2f00843e00627167fb088452c62118b58c46208b7af08191992d4913a16b5345247a268f0d480ebdb8fe3388ebbff9753d96e1524ed7297fb668e70d837d4196e6490e84f526abe1a8400e474a924f40b1eb8b8e015822e638d30afee49a9243bb87885a067f0ea7e4a7dfbdcfd6eee982b7f2f5996b22e3841fb95e2e080511fe200993a3ec288439bb7a0e3283864e52e7369502121212121a116a22da452fd7767fa12e2a8b5f3ce3967376737278ecd7daec495be7bd56a0afd00612e879fa90dbbb0ec861a4d1e0acea9e3b9cfbcd599d647a95ec68ab2c3daa15a7d0ae54147cad4757afa3d5da6a742d435c6554253078c1ee352bce591400b8e21f58daec2084d9d285cb05a484b1428da563a7148c881604caaab062d52dce61c6aa1dc820a26fcb41075d9e008e510ca11fab090100d183553e07983aeb1d57851c94a63b154aa7f14ea094c2b495d95b47f410eac609b4c375f5ede97ba096242630d339cbc9298c09b0e0109cc8bf44a5e9efde0093cc139ad9da614909b0615e02fd39bfeaba4075e6008dd28a4432c964a25eb422aa3b32ceb3c6c6f70d910397966264186bf2812fceb11f9d170e5e1849c1d9e55488aab2a59c92ae4ad29c55bd574427d530b4a6a17180781c34a56b292f573252b1939a4b05a5d74db3da70ea554a42215a9783203a5c3e48b942a6aa8224887d704a27451011a662081c5e8e5ff2a5913324a8ded0ea1d3766b8eca46723c9c601cc7711c47dc393787393938ff58823b87393f9660cf610ee7a552a99b393a399d93a333836e60c1dd8f5045df6a3f31d408ebc48e04f6d84da470220c527c85b31c0ba005f61b4a60528d16cc7d39cc99602e30797a9c3ad3d528d4cc4c8fb69c01e63eec914710a6a6154a7f9fbb7f838122f35666d2777fc302e9bdf73209d4c0bc95968512d855d2772bdc2781e1cdf7bdeefbb104d31ce620a003a7b71091db91780130a3b7b7b7f738e2529f70d8f1a5ebbc786d743749f3699fa6e22a8ea3b4525ae9cf2220538752cf8714d8c7e705232c003b609ff97d4b818966ffae62f27473c95bcc1e3c70f72f98a48d7c71c05260cfa14f0a170c8bd4ef9e858139b08796289f600b227115901aac06abc16ab02e6130180c760448ad56abd56adda98acdbde86e9a4c9623cbc9c9993ca77b6f376b667cccf04d0e73707c988323e55df4979635ad89baa86d3df356e85d647f0f9d28fb12321ff22e260f8e77272acabe93fdc7f40d47cb80dcf543570ec20dea3df8e93738c03ff34ef3fe3da6c66584ae645c57fa646438529e7fa8cb817ce50f02183a93ec3760e84eb00760e837c0d0a57cb6016b522ed2a4fa6826d562705b910169cb30053b0bb0bf00a76499ccad4c12497693c9ba7ed40e99cc0642cb6829914a208eaffc716cdd5f1c84d9d35fcc10264f83612dcbe6c3a93eb2e02e8738548470c298ae9e91be1b039b917d8d2d1c0847a6c940e6cabff4597659373ed14dd15764df6106be1fce1a92cf4716cc7d889322e5694ae188aba6abbcdc426d9b3a4dc55d1ef4c55cf90fb158ab55ca03778fc900873dabf5cc09c004aed9be740fd7615235d55fa82d0b1cb2b2112438d54716dc39c499ad83fb1f671949f97c36361c5b0e9bdb6c2711d44a5d13b80d89010e5136fae3c7ec30ea876031cbee6102dcb9ca518e31c61863191ec691e370308159d5367944f0cf9fa361ff9ac3ef0e531b3cd2534a9fba323057fe668c09bf824566985bd4754f102d4499d661a787ecce593bad0f1192c24374405ab044f7c9ff7ffffdf7df7f9d3b950aae2aa2f549a92edaf14551cfe6ca9f561bbf268a9a281ac1152a20a390842049b27b4c681dfe43648f24498ad454209980c450516dea8c0132a17bbad7c8fedd061543c7b8cb452077398ca641c53071978f2da6d7a066cc56a741c51c51317dd462fae8280959435282475ce5e410495d7dd4dededede61550e27adc39d934e92323554c13b7ec095a609e97e09a4454c7095fbb84ae08389c021c6185b244a6882699e1ee6d5408305330ce1c578c5cb5720040cb4e4c0c50c68067206914136744a064ae9eda088e9a07c413ab1a0a4852888273e52692a9de0c4c9644e427481d2431728345d7cb87db1d182832a3af86a6a6a6a3ab8d125c6a48b0f527437be13a0847c88f940829b276c3c117373737303020ed20c7074906797275d4220e25203cd14a925c02f954aa540003c8902802739e4e8f2248600ecf00201704083017c30507ded419e5d625a5079768959e9544c4ab67155c78266622839922bcb7e9ca9e3117015bde52ecf228b33794ef64bf64a4b0de4a4e610a7f31903a372127912d140cb9d67de0a3d1a9782ec6f0428fb1ff1b6d03c2f1e4d953be62a2e881b7b720d7263ce0db0f78d1c907734ea72c1bfe0b00203a9381a5d71258ac42107c4048883b11143a9a70d39a445b90338db0fbffb34967bc9ecb16c78af317b2cd8812e97be9770ddb72a76265b36ba8703e280d838e2aa3602d43d1f983a5c0d19b2775c79eb3c1a577a3499a379a3d1dbd4714ab23772ea44c055479018614186922bb9d25d3d848ca31171366f5518396f9c18aee48a60b31c725fb27fa8ca21577237eea8a50aa717ae0a2a72d840394eb0aad65a71dc0522ee3ae22b7f235cc9719ce52ac7b13896655516ab2c6b1d5899b3c6e5ffbffffefbfefbefdb7995e706e70df26d099a207d19855a07ba4c41137e72c0473af7dfd01bea3d084a5e388d303037303940440da32e953c8ee36aa5b65219952f8c80bef7de4d4d4add70a5d40de78120f0bef41f08822a413cb004368cae7cbe767c81c34ffd4c23229d9111672b9d46444a120dd94e5b27c74d8ec3b1b9d1dd2f87e2d87ee0d08efb1f3fd30502ce0f9c1f383f70b82146b72391149bb39b4e84003954d99ae5727474448fe8113da251dacdfa6e29c62894472acd52ea2608e94b5f4a42023d04dc15205cf14a5202c72af695bc5e23cd0af0d875180bd90f9ec05448273660d2d5ea081cee747d851015cfe1bb5066e22a1838901e4d217de502873ebe8b04d2313ec20fd882f4437a84caf3e9d111e568478f1c3c421de5a3235bfb8aa85dda4c142c8365c62f96ed98b675ed8b7d3126b0fbb5730f916457ab75370ce824c50a713a01758b6e3aa1729e773a9dacb5d69e4edee904767b3457f910a54ddb5269766c2af44cac1f3cd309ac289f892584897e27132b8853fd644cac2019fb61138bc426161033f7a331e9e001979ec68402e94fefd5983ee7fb93f7271b2ac91fd8b3c65264e7f31903d3d0a6d2dd60902658782052700b94cee9f3a8ced696d4c89388492dd7f08e4397769d788b1322aac14bbee395426528877789297278b14891c33b74b79852983d44d3e22310cd12c5ec7158eb983c960453349619a2bba8648ef605b1646a060000a00093140000200c0a06c3e180684c2e5ef6181f14000c6c8642805c3a1547c35110e4480819638c51c4100204440464664af380fe1a245d333b874f42b1ff0a4b0debbaa6341729d13b270635f2b9df13617681b1bddae25516b0c2b16af1ae448cbb69f14a9cbe3673ffbf70aa1e89316ea2d91518a5c7445bd88334a44a8dca7a3ca59fcf35c02941e8f5bd3bda221cedfbaf24d1ef89f98c1b3175c4663900b73c874ffe17ceac09e7d894ce31584b2ddd946be7f0a9d85a17704b5b41d941fc62b9de79795c30ade218c970cda4ba10cc444c8f47f539a40c13b998f5c17e445b264a1c3daafdba302c102e4819fc4a279f489166d81ed97d3933e64dde0f1a43d4ff2bd68f18d0138118111e3e71f69494961b2e9f177daa09d9f24a70ec99ee3c68736c71b96476304281547555b7869bcc03231921cf7800b73ea1467d08fb1538227bddf168bb8efb0eb2d7ef51e7901f855b260113f3d03c8c1a910fcc00a272ca08e7aafc33f06e8a3e96f56786ddf13d2b3299525bbcceb5b572e37d341a915484b04666a10ae5911b75a7c087e16e1820ec0021bb75db8b31bacc09d4c28362e3832e16e8e7add5fdb62c834533dcccfa920addef21a7aef4353eec8055e92411779198d2653bcbea123568073bef91db0b613651686ef8d1597832a49e09968a5949eb2ecd54fdffdef4d9bc104e3024dd3b46d9e723245ca00d2d3caf952517344eb6a67e17001b6e01d5f2a3e0bf06d6e0bc7f89e7f7b24635d0c3606adcc05518d46637c8b1d5134a749de62f7c1764e3e92856d1bf467bf48d96c22fa2435ed7cc1f611d824c127fb928a7a56532cfd05fedaca0fe7cb1e6c01fd9b313e40644c6f4b0d8ba36d5317c0e4b5a4cc5d1da955c6da8a037e9f08c26a1c9d65166b89fe29d14df8ed527f130871c1e486e06931bd1035aca228195325ae429400db20a78dfb8bb77c8ea2807d21433fdc4c0fb9c02ee1dc056b2c468b39bf02cffed3660ea456631e175084da30eb3b4f94ac2c379db7d9f937af300fe6d332018c0ab9910894cbf430042677848dc729b9a1a2950b88a1b5569ab448cc4ed4330c01606b9f97a62f3a7af5abe06d05946e3e7c4b910c3ba0288bc0143f993b89bcfc4bd5f05eb94979f948de0341b1c1f143c6d2b99430cef57ee332504508016d277e6807a1f312f48e69ec571d2abb05c4d950330af2e42392e63cc58347545e587de0f76b9b84deb60a72b2270530bb238ad32d98b8494c9b6232e3e05f31e33a3044f07c4c393c7b0b688a37a3bcc3a61d6d4ebe9ce4276fa4b98b05218321261496c6338db2c6f13de49fe986bd245c3f99b99a749c41785ecea47864641582c8185367fc850326d1da3c910ca6cddac923712eb1bfc2357538a90a12ed9f84301900c55d50bc6ea60afcecf36f08c5a88a13c71be20d6a65e975969a8e695bb50c903d1850f3c817cedb7b673b9d41efad2da67cc5baf1fb70efef06c2fe05eba368abbd7fa09c7e46d0d495b7a9f1b4c9ac11ea79f7d91e4a371d432bce943cf8a85e7b03e588d2ab6c6dd839445d87621ca79f8ec5d18de0c929b4e9ee12036fe0f95d8871e7a83e18d8373a35e45a1f99169c3104fd1344e57aac2eba4f3ec0d96b122f09eca65409a62d4e90bf15e6eb34baa51e9b696cb3a21764df0f48c3860e76e96b36a276af451a99eb4e16db2288a3d2a2897e909e58a7a5e0f868a342f46d006d7fa981cf70bc5449e099b6e6dce135d93c9a2330c9bf302355acf4afed2c24e4616e2aaa8e514ebc0d372aed0b60ac594fe93fedbccf69a01e692cf5bc62767b92fef1bdac88a43def8729beb38057aad4745090be444e70a5cd682d2707aae30be80d2315d464161b4dce9da519dd289235f295ccb10887e105b6884f596838794cf11dcfb230dc25e6c9f5d0cb8ffda38192fd549caeb4513324d05b09fad842688d6c759ad99135004bb7336a3156b2e7ec8e3136ddbe7a3cbd3bafe61923ca35cb0a680a4d683d14eb10996c44305db6e88e684c456e3f08be8c9626659eb917a4d9a04f0add50c8b6a33c2bcc4bc0e37b06236260830d44db7664e230fff2df646b5ac5b832ecf96ab287281f0fc35e59109b1cf9ed1352ec718b806790ee4229fcaf69b3cb613351ef35d1cf7ef1a811f4d7294dff6ae04fd1c29e65f9252d1a02ea276474bf07a75fee3e383f86fd9a26e4dd120b6bb9df95cbcbd104ca9d35a490c7b97fb72334dab804dc8c3bf9860cb844b63b0df84ba74c67702c91482441c57a59eabf73ceae8ee11d6b009217cab042b7d6b8c72b57d880a1692817b33508daaa5909709cbf5ac91b3c95a6959b5327dd8332c4000e24dbb8124f6699bee003086e66a7b459b4dc913ce31bac4551b1642ff2b4908227be6fbaaef9c2e3f5834245348a550078aa68f255c7fa9084563ceb46c704fc6acac3941c82e4acef690b2557ab4caed88dc157fa396c80e63daf0c5e5fd0b14eee69470f23a0427ce73ebc62d9f814455087730c557e954a74abe42e7b508a6e4a06b8cd90917afeaf9c60fb91256262905adc39627b453a346fd12730d49d0b6b485b620f0de9734be86ee52336b12ab6c4f7bc5628d570298b80fcda3b6768d84b10051772315deecbf85bb821189142e3348558a90f34836ce4fd9883ccd896ae122ffc1ea259c8f9afc480423448f29ddbbfd78d68b8a4724d98104b2c891009323a14edf58c7eeadfef9416b3a114455cdcaf17de63798dba5da38e812d5529de771707f30b74b7c079bf5972da92666a8abbf329a33fe9372f714fe51cd8154c2ffa327928da8e471c47b20ca024e10655b87323e279cdde7bfb24fcaa03d295217074128459ecba44b73f323d49d60336653094d47c39f2b181836633daa85f20be2458c1bf05137022aa92edecdd43ed24860091e199cf9ed8ee7a0ba3a099c53cfa44f7c8f5fd6ac6073d3d2ac38da2791a1c03f1631db5a622bf995385544baa9c89cf13ac0006a204ed0129332ee1be6ee137e032d169ff2378c0495e1fe0e61d1daf27ea30d8aa5d1d77fff862ce1d5bad704b4eaa06829a80a4272715de7a56f7d4ac17013a4cff59f8e333be68c666502c24e66ec7d914c582fb0380faf3e0685967ea339eecab4b3557a453f78dd5a7873c360dbe8a9657bdc5e02b7b0e5c6c112c48d54aa996b02ee139a4ebc262268f583b764c2f6901105aadf95505cb0f3126434b1b868cf5c64a688de3565b3f434f8de737e94f0e77660aefa4056dcedaeea71008ac7bf84e775701e4c348933df89c2628c2f68fdcbd07d48bac9640b40905f6a201c4852b4014dc8e3b307f1b1caef03c7e7a539bf689c7fabdea28c75e68477eb7cf522a8f24348c63b62a106fc7cd54bd3cfcd3470156b95b56f4b41fbda4c65b95ab0e78faba312ef77fa103fcf7c09f42136c9bfc493358391504ffd9ed8f6c9f1e6ce71af05cef34355717e89a28785bb7af4e47770f11c55cd595d78f07d71243f4e33f8b6e24ddcfd5ebc9338d9e7f6be6e5b87d1e4f7ba544b255b2af987a99e720ad37197251ffa2b4b5e93400ef344caafe0c2815e2970cb551ccad2abeec94c17d3db0c91280136ad917231d5b148972da2d363c3040b213464120b041713a073674163dc1c778be9d24484696dd16cdc3a79b798d18e42dc858c75df62da389ae98a71b350b6989db7726d648b69ffa6878b82be1c6342fd43e9967e8410955ce62de91dbfb4a412dd1ce7899767f64c62fb5ecada22b1c38b29dc896822c6005bba0d27ed6037502a03e3f10c5d309ebc08b216844c053ac620e60c5d14676e4471a432912ee0d94d0b894e8abdd54748a49d4566050fb76e1285319942bc0f0f314ff8fc2ab68def8317a8d625e8e8bc8b92193cf62cac5eac3e5117934382aa7bfab62ad72420797bdcf3a9240ad6cdbd19b309cebb6da96a29d3e72206eabb0b983545c6cc3d26b323332f4e66baedab60cb8fb1ccf67d0964fbd7af617a86055a823f69373f206b3c310ea3beed245a7d87e7e603b9bda57765857fa886274eefcfa03f0b8462f56c2e2913b3bed42b0f21be0184fa67395b47b87e57d49ca13905a4b6667762e78172b2d38e52f106d88511598487562ab161a960a3a5c210512a0cd2d5e65519fec4d0e9a26313af105488ad7a7aa0a6bf2ac15a61c263e18b34459b657a337b1e38e75cf8abc539039f7048bb3320d58f7397e02e9a73161b07f6430ac04230ec984b22a496263ce620d8bc54d7d6e46b8f8ac22e53f9cd00a1633d8394d287f0072fe4219ebbf11c6d6aa5918449f06e5413c5796fa0177661d995cb06b95830a11d98005eac330986603a14f5eb24ac5c5b35c23c0c5ed54f6d05ef93f39707f74cc3393207e1fc3107c1727b7adcf4bfc4554f650478c1f85013283856418afa2385e9160952b60370cb2476dd2f6d4e24c02d8104418d07f8cd80b4bd9d10b727a148db0a3931c0858aa8f0e3cea08811c8159c3ecc42b66cb5a34730475cfcb598a1acd4e5665cec54c7fba7910e6a886a1e92362e6e536b5adee0b2f4e88b21deae753961aed4a89feb25a38ec6b8aea2936421fa7eebf1b7df8b9e4af9ff8a46a91ec5b4df697063d779aea953d2384d599ca606463d3b3def64c6b38d7a80a13c59cc26a72a831d32468af13aabc098879547a67d41c5f99d982c1e4f61c96f840cb9bb7e402bdddc5cef846099e566030b5a261532d86c913058f563dea64b86a71ddff5d7ba574ce073981fd2cc68e9f5ff12ae313df1ef4136b3c2bf5c486da65baab6e5ece2375a48933751e5ce293de1f2b13e122516dfd749da178ba226fe9f59f7d02fe8e20baf49ba32c93c0951140ea4941e13f8cecffc584d31814d2244d60a34ba82d808d5531656c195dadf436016049d50bc09f22bdb2395d4f842b118f320255cfdcee5493857608b2bc007c6e6ad302dd68c7608cf80d7911afd6798c680e2b66a4f2b92b0ac9d0d5b82b86d63a641920213ad2591c185198aa7a504b1205da58590a81b90df3b011a9fb2f6e4f784298f1d39f17958710e4b38d8ac746faec7bb297ae2d0997b4082b04c700135c08b853ee2060a504c986278d985e77c59f2331ee29dfe84aa900da9aa6e39717a55b9e89bec97472c76fa1041226799e690644955c42aad65cf149e4c939085656e8de90a2a1d3d47532f8fca8b04bf56d6908ed3a46152af6f5a824a54050d96a6049698946e4db48e2e5a3381300af74dac0c49bfe7b819e8213947f6728c52b30ce7788606600166aa9857cc4f2653318a74ebb5e443640f458051f54d1ee9ce17c52c590379eb75eb34988b9e3c68d78a74408e53302511c6b7d63b4f87b459f088be04fd2caefc40a334401570d9c3c263c695b02cd9a3b624c170b0ee4a4868341e8cd53d6753b5aa9a24d6df6cc6f06c18859687994d6b2861f177d8f1ddc0d19c08147a990d885b394ca1f16d56b31bf910c9d86ea30868ecb55d86d23ac320bd4a80e60e6bff7ac40768923adc6a5b7a915bdee04221b212a60d59c0c92faa5509a738863e63c6d3a311aab925fac54dd09f31277f616012f030874155d79bb45f79a480e54d16cb1321cbd3480e010a0305f24e84d732226d46621cef8df538485dc1453de56dcadfc60a8ad4159b2b56328e01d14f63c1154e12cc54956bf937bc8dc9e8563e3494069974ec152072d43dcce0fe21f6cef26b23cda666bb715de66bcb31ef12d15b8ab40b4748b0ee7f42b1701c0c21e92bcc195ac0af681e53d4840a17c31d477b24091322dc87b56bc46156985978339548c5ecaffc254826985ae4a8220c45389a3321c2ab0a001354490005076ee86a75ee8a1a748c6ea8fda31917c8868f432f976d936b89c50f98ac4846a2137b8aff6af9376d94a8143a2f457aad4bab6338698179f12f80e52e848edf6ead71b611321ae869f0d66ccb0b7b34c439d047123ad9ab9b56a53c31865ccc7c39c18e1348484805661f1be8f1224f2fbd9d700dbc4e290c0e5b3498708a91acc971cb945e55e2ffdc5f968cc0744e5996036b97e040c9f7479a0b53a1ff7ec90005cd87c26108525733416bfa4a8e74f78cf40c963201b122509c5625f91a3bc5009876de71e71b410f54a882d0b140dabe7e2a022641e4b9522381fa27d5804f8315efc8170e199e64114818f577c56628165fee650e186f57334156f0a546bafdff9c2f07230d578a8053aa3e89d56a8ef689a34b0d579f521941f227e531b432c1d8d2ff4d9747291c6b1c8ca24d6d85d80b7db971d2676d409d2e0ab14cb4da7dc23407fb64ee5cbaeca8ef04236172ab341413f3280b05a2cb2b106bed1eb4683c2e24bf577789a315f29bea85314f331c481c811fc8f4e0a98c81c7f538bc01262818ddbd24116578c907049ad1bab90938a7af31089f38a63ca9a620492a5544287bf939eec51595261e2f39430496823b6f8151271d0f138c315ca99e6cf717d09271babe836308b0e0fc1e3996d5638b457d19d1af38905dc21dca7ed2703427db7cd704c1a7874d324e47af8f2f68b5c27bb039cb504848682a8895102c02e5fc846e20f291ea980f8f6118211fa1d0997ccf21a60d877949de10da2b0c33f6678c2abc25c61ca04fc4a15c38a1ff5e20419f241c8ec16ec2e4938dec407aa30d2e58d4831ddc6102a14e1099cd234a87bea53099094d7eee7953e2d669cefb2fd8335211df2c7d061e9c970adb1cfc6151d0045d842d08de4a4aab1278df99835c2e749ff275a35e50a7725e976cfde0c31ac3a06ad3323a2500b574f1553aba4e5de925070c49f79afa01e2d0020ef586fb8f3fdba7860faa80324cde6afe538064546a11806a966cc621f16c62ef4dc8952e707fdc8d729a751b8c7a0f32e391a821bc04daf7415c5d92742c051d9ea3b073c4affbcf0851c122ad74f78931a834c5fb9bce7287702962ba216502df0b920f7592768f70e921e0ece04405cb781bcfb0a153105461ffc86d456a8eb9d217b8639cb47279f54d04564a2c1381a26e3df7c4550e3e118d28ac6b984d12fb1d603bc979ce8ee85b87fe54e191fc144a358b0759d7d5442b3a4f794d5ccee3a9b8c309e47aa26b919eb8ea86b99dc3136b02e6f09a8c06e606c2efe403cf9a63a94614263ca51f7ebbe3ffa824cc8f4041192caea79021975ba4198616c7406f0e615c44a5c9059c55f4c0d0a68d3dbeceb3a470c2524ae1a8186f8f2dd69835b0e98eb955d08f8ae3395545b67d354830f15db41f43f663385689b8993b9b74692573856542186c23b5ec7f6326c8d52a563bcb4b6a0fd07dce8bab2d0b9dd61b9faafa63c0432046bc88ae09d59d985b3d0a029a6831b3a1a54f941bfe0b082c5755c6c129faf27a5ede5a705e4702bbb2e03cb0146360de2a5764d8c28e6b9e2696caf96e3fd6332301dda650fe4eb49ab5d0a003683c56f5326a550432cc236c65d89961a77fcc3f46e51189db44c8fac577d110f0d1b8bbb4e5c4d84ca91c56afbce09f72d2fd5f60645f7b3b066a392413db2485810d89242b182ed2fd12fdba6e298d57861aa233eed0742200d2195665b195d62e0fd2927f8c45284fd035dec172a8768498c4c4d31e7d340c32429c01903c4abe64e42154c8e18e3b1af7a108168b4b930f7d278732298b10bb326270f0b95af9566ac8b71291c88c4b8566b43216a6907391d5bf42ab5003ccbc7bab439603a3bdfb1384dc123b0134354a7bb62a1e6bca65710338ab8c9c4c8c5951afc0efac3272de8265b32b40284a68138b2b32891f8540dce1a95f958b1d075843ac7c43cb012dd63c9816bb0c91edd20cc150aa0ad1d27f840a6cdb0cebc56092566ce2dc7344b39dd4c79f6e54107108812ab32c04da8b43ef47ed452b823f24f2dce3cab33351bcc6be1a29a7b7c3e99724c5511af004dd25ae4cf9c5191465470e30c559d2898071a5fb64672fbce20fa8139b30f8aef056648106f4fc8de6122daafb56b2585a1dd2e7f6fde3169791666545309a9f452bcabd01038ddf8e4ab166d8bc7e45a34fedac5ee13995cc8f1d0a30ac73a5442831fbf11dfc13947fb6e92525435abc0c6f887cbc87a8d433bebd568e7a0daac4ff01a3e5b9ea09ba17501bc096d3f9689835b9951b57b565f7392657273b88bd6afe734700d54e82bc819128781e8469dfd8aee62cd7e42890accfb576ff9ea2bd9a45f3d553d224e59fb89a39dddb03edfe8c8102639c8daf60e439b2c9d2ca0d1238cea724a54cdc9b960019acdbce0b382aa0c90e5de8c2b06ae632aaee6fd400848c971a95033e777464c3dc36035303c367ac5380de10ae39ed8fbde240c8e858f0c9be64e5d6495c8858235d86964fbd4e5b4d06241c2081c55bbfd481feb9844014813ecc138b8f0050f7d4a7df0eab45c0ed4111e3ba1a4306637da5883e0461f00132e5e7b1baa63d6980d5d34ac10e81eeff2b28e12d3d1b673c2f5f7a6d3810b54ce1263059396e6fa366513b97a490f742654380b6d418b411f31b161525306880db1be0afa51fc8a140dff892c5c156095c00223704ad7b7536a0965c104ed39ffaee6c34a9a36cc2418f31b3a4f2f80152103e2c7985f4ace24703a4c093ea800fc9909409e228df7f07cdcfbb84b7479efa92aacc56e3b375accdd5e03c64cb6228073ecd82731726511821bdd3774a44f4d627aa3e93d2b3bd6d0be6f3de03258c2feb7c0a75d79a3c332219a681a6e578d8762981968433c3d557819191f1374461eea9bdcf47bc6cc9b6d334c9c8d796fe38e5053b389e0f9fd4eefef1999fb246c840c1d1273ecde2028cdc0cc952a063e20db4966eb22185a4a2d4ad991bdad1fc856c0333656bf11034e968954515d6ccf022d0ef99663021c1aa7519f590eb28ad4d23330fa67adf49f95284841c9db74c24cf688e05005ef74119cbc7f542092daf6101943a4c789ca412ed0cf2e2e3fdc52bf4a32140e37fa119a7ee5a3c209e5e17e0b1e6f9af0db8d92c996c0af386ca0a1852c8b353e4ab0b77822775f613f5df68d4eddfec27f99f616a2a7a27ce2af252eac688b6a622482c5f57e8030cc8de61b794a4f8703bb708280369620eddd86b1f982a56b26b62f4823a34ab0ccf588ff506988e993a9eef40904b3f29a61bcfcf5c3c715018785b9d592aa5e2a2953d20f55763cd8d803f1fdbaba7feb91234bd87ae8f4dc4d93a01aea53d942c6171360734773307c6f5fa32e040ef0c3fcb44db97031599495ffbd235da29cb41ca20c6fef29bcd6c90bb59bb6bc8821162e2ebf1c8fa629e48310417fdc2d6d55a598f47c24b9f4430449a7e911396efb77eacc4517bebfbfe9afc6ab366ee8d58ad1426bee3a9d1ce92968524f0a96b7320f35909b3ffdc3c6ddcf4c67572af149c09bcde9a446ebc437c48fc016e81d19f4e72926e8e6d2554ee5487aacc1de01807b3076d209f456c4669dfb00f6b7c5ab0128e51495313618b788d42fca14d858392fa7a6c7098e9b21521b44048b575492579734ebba71823b0351fb91c217e00b49c6fee58f7f5f3b9f8bcb35c6aaa5a54c64893cfa3d5b1fbf8b6331fbcafec2679a2cbc6f4260775dbf651492424f06d4fefa899669fecfb778a5079b98f91b4dc46008b40e9c7434f65e13b7e6ae622dd11d2c7f6afa02cf29519d9d8eec5fe77edfa7dcbf883dbbc68f4615a623bd31a8b6047405a936d3bdbd78df2b7503cce63e4dab072a3a1a0a9b3491f2830a6f99a889746178584e48caa1d15520c7d50690535efd32c397f382ab1c5bba6ffd369a0fd1a678026e42df8690ef8270ee83f0b757ecf5b838b01c35b907dcfc8d9b49c03b33378c97401d73847451fbb2f5b399adaa16f65217124e1aca28cdb9ac147dcb343eec836bc1f3722b8c7a491618fd1421216da0f886ec789b1924b3fe748164178c6768b0623ba42914553e27019eb5960bcc850940845c4f400996ef9dacae082b8bfba59a2d30d140f4c7800f9d3891b2187e72fee6ab366f8966cbbfa2603a89b6bf689da4331bc8b2020cf8f5dd1f763950d1db119340f60b1c527ea68ded5f2501c94cd247367382c75705049273a7168b4e3b79d90b4be1854b925282b0d26b842c13490f8d34841abb67fec517c39d4551f4782806c0ffd0e505c866f9abc9968f2aaa53741b9daf74e884c80a90c628133e2bb670c5620e04b2d65459dfaf8163070aa39c370a71e6cb938cac3f7bc35e3e8a9db2319da12ddf7274bb281f13b046021b758c975e3b34fe14e04aa8d77a6c40b2ec92a3cd0173a7a3d4b754466d39d08fbc9dabea10ec2ee6dd845e63da83d9a9767ae22270e24dad856ba4cf3842eb21d7256a23f1dccb382c491ef290a09a0d0201fc32dbef9d97c234249469502da6296066203ce2bf1a2c7bfb50911329554750b3161c5f6eeb442624aa25c66ed1ba2383ad672834ccca669af6015918e91a634da438b74b41edc88ac077b0e8da1c75a8ada88c91d8f5c442ec0b6a6d56924246e95d3ca358d7fe8d49565c443a2870eaddc492665b281261c5235ba0d33a0c32df7b0e8435acb899a2862c7526b75d89ffbdff344c8d6202a862c68302dc59a7d9eee686d4cfeec7ff196e95949469c646d8bf82392544c2853bbf1b6b64553e42bd5e29b1cfa3868de67bd5c7bb5f761e5bf7748aad59740c62643373b1bb4aabc351f5abfd449b3e2173bfcfd24f1f9c8eb23418ea2f0f64221bd89fefb7d541ce3ec4b531d71ee7048836526efd05c19404c4fd88a16f339fa04d9654d5f668e5d42337cc25613d7855d1fd4f8439ca4afb221d996c68ab4bd671622bd7aa53330f3023b5f294442d05a56e6122f4634a1c0dd247cb5b9506f79e9b37b8e96ad94e8226a00e8c5daa71ddd5362026522cd237ec394e0ffb867d51652ec7eb9503b26eeb9ce78d8a45602fc64292c96ec9740e4ee9c668ddb8abd3d2bc5b39350d7dbaaaa7b6ec071b7d8247d0d61494b2f0034c83da6ea31550e3deaf6329b82d2090cdf4d7ec1fe5b21ef1c22cdcb8e65dcd5e21dd2eb93fde7047817db254a0a20061a519b6773136f22841022b4b3c4e96e64a1715a1ef88e1112c4234c31c884987d347253e9708503e259b09df09c3e437d2dc7d7e772fa05f11aff0393152ed76eae952a50512e846d1cc3b59627e1ea035699f380074910b051846e245821a1c2c2a0c22c032b365db63981953c6e6906ed2478a7189247352c978fe734751745dc539edb9b97eeda03ac0bf68da35b2d259db7cd705844029ffd425adb1404484d8748497c0f1d3b0dec1f3393da3ffce5d3c512d82cf78fd87fbecab51e8a8be5c1e2f3c6d0c054949cc1e27ae76e1eaf70d23bef431583f9692e567371d0b9044955cc76482eec4c76599872a3e6a8db5e595d1edaca7824a8cd6497e66450690262c8481965e9a95ab11ef8f82b57aa35ce7ab029c4070d7cfbc5b1bb1f3429250892d864209a38fd933a0a91755ab5616482553fbf7c51e557021a4585d1b478df61b506ffc4910cde63463de05d116a9f3f79f4d9b16f16554426e921c2328153f250f95280737282804a2b7aef1b0202f6636473becf6035183e7e064ac7a120baa3a1ae511ab279165df03ba80dd777ae3b07822627cd066df0085a7331488898956a530b05a0cf161a64a3915588e6dc50821788df1dd26fd601ccdd78d637fb738321a4f82e980a21aa9f97a0e1ec9ff241b805958b24529a4a4a94d4824195d2bd4bf2fdab0c305efd2391d59477881292d024232ecedbaf738dc71352379260c33bc9360781995cf97367d58af751111af01cb1d193b4ca293c788b8baf9520f11a5545ff15047856b3af6430a4f20fb4612e7b9babce4e3ee7eab7e4bd814b071976b12fbfc9c4d86196b1a3ff88116a6748df441d8b6e7c6794d603984770c5cd9649a0291e541df28e664618daca5d95bc59e724f8c8a3146402e39dd483ae8b70bae35b323c5f7df78b9bdfb692e69a17387282b2be455b78c9271ecd60a2277b087cee7348bc59a69159dbb93114cd32e3c51bbe36b8990e3e98481f6bb899b246e634330caf92cc1bc116e81050680b6126554035cf9ac3f77b9a93069b8f684064757e5cf4b047829ae3a45a786cd80007fc1320a6455706ac4bbf30566dd45d5b8d14717a90ed12c4794fbfb177dc98ecb26beffcaeab8067b8e93c660e6ae0293c2c53c3dea283c3ba977bef9e0950f1341e36ae46fd95ef487b04bdaa057a8f24b9a76a91c4eb5dd5f3ba83429700ea4d2114e323b4a36149efdfebc4bb64ac53f0d72e0028ad63b97c00407379fcffcc64eb3b2d23967f44d2533e9569a782e101d0203a0015d7f5e5d4e46876eb6fc3db06cd8c4ed081a645b42f792c28c9fcddfcce2729edcd0f641afd783a3c40893205a85fd4e1ac5f78e9d89df11aa2c6ec9841fd32d2b068edd9ca7948aa0d0b48dab72077257797ab6993ebb05dd8dcc38c12e0329ca49b5cd14e7007b7fb4878f7b6bc584883b57d365db860f42cb9a9f7ac812f09214a70a837b9829c4f623f150da5a4511785516e01f09f1d46c818a5dfc081414a438e2e01c3d0103119a4fa808d63260363ff40a8b66b606534b1e24090901f32947d30594d60e292397daaf471e70585f845fad640cdcb2bfff754b61a2ddc062a29827174594c6530c8605022833089b3bee20d895e11b1222f2cf568bd800867af227e2d7c87c512c5ddfb01c9d87f15da22a8be0fd3ed6569f002a952bee128caf4fd54282b974f446d45447efca866709870ba01adccde3d87b1f4d274f53bb0f3aadc56adc79d075602649c81c6b5994a8ea7629d77eeedaee3db071ddb5320dbd3f4f3d48900a8d47db20e2bea89d01a866ab24c7200b8f0128f0a5f8cf5ef84fb2385c06585c5c4a18b8e60d8857227563b41e61df72c99d48318a8e3e6ef5efae45510aa639acb9db1fb2f0cf06015b3d7e41a1c1b1224534df6035b5b8e466a20e58264a24947f74a815eeb5dd4f71e14e48beabcf62e9224562cb207b631fbc3a2fa35d18db15215391d966339001a3a6dd06ede0606cd5946663c2e08cea3a821ee8200f54168f8efd504ba961ea0ee86918bb1226903610faa9a7b9dd642526094fd50835ed93a66de89da7da06614b60c6356a979a7a541f19f407ad9c131055feb34f76882e1e866581cac6b8c9fe16280f09efc43a868458292f85cbea1d42343661aa0e0c1de55fd030a5a81abf756de5fe97e7fba0724c62acb003a7adcf4e665c49778fb82e6ca4cf2f6515be69cc318fcf6f50a6bbaa583ed55a99e24105b14112101af20e789b3b158d056fa4444e9eb091647c8aa05948bd508cd4d208394287eb148484b4375d01a9dab4d0c20f32f5086ea153c1057e397402ae25848ec03e4764321a85a708b17bd3419d0892d03355d46a56df385c5823b26564a441f3f1625f649d51a690e0b73dbd7cd89725d9b8493d046cfa2d896ab8f144f8ea2c64f45a7da16c7e833c0cee6445f240b918670c590940e2d181502b1425d26d82665b8437b4dab1a74d33898e6277469c1a261ecde05ea97f19dd0478b0137da2ca1bb3579e288e5d13b2f2f3c9da029189420a2afa732ba802db0638d01f4d76da1c20962afdbb47d00f01f864fe99341efd3f0970319c2bb62315b8747a0d72520a0477f52c593e6eeb66c65a87e11999d452628aab0fcac5a065b24f62f4a5a527a74c5423a99e018e4be910bade0b039fd28c0576912935faa5fed6665e5a2a9863a0d298be6ff57e989d3bc52f9a2f0f189a1b94b23e438ed2816c2cb52cf94c7ac07236fb4cac3b9e90b026d7d65993fc500c8ec255698ff56c80b4d4f83e193c92efee2890b020d46b9b869cd32a7713e881445766df072da497d3dd0aa6a5ee1812dc035d1a1e22e82bfad85145ac55af551cb14b332b85cbc55a7b41e7cd6aac1b196697c0e2da166fcc6677d29d6216a913e77703c6dfb9c4cedccc07c52a72304a182b832f8d4f5388bca4243858951aaef91f847cdc2643ced4f809028dac1e447bd783938910b169e82b85a20da438e5979b0cb572923fe6a06f105f3685cba898418b1a3a536a5f72a304357dfdad7b800a7ca4ae6bb894b0834a21e3ca4c8f9eafa7ee911d835f716806f25c4728709f083b6993acbac1178be9e26bd81814da113a2d3ca160b7dd43074c2a5a1837916a2f74b0143e79283d2fdb365879b2459085d350098addb924669d0ca08d22f20b03aeb77fcdf1b7495f11f8ca97f24d30d9ad641f5963d29c86f06fd6b74c969fb6d1a3c25f4b1fd757d88c1ae867a6a1c49efc12b58d9e826224283f934d52deed2a0cb9cee8e4b1aac170d74d912b21a68a477f9b267a7aee79bdbd07e770e40e1acdbc11dd824b93f19d395450cfac737996fa82137ae608ea4f84aee63f0da7f838b616624027d5102973fc67896431320147cfe782a9e2349526948649c120042e4c60f4753033e1d9810d0de04914f9d6dbaf094ad3e3d76c197e86410d332c14b6f107d5258b4640ed1c8da8d040bb2ca6c89c88de6b51e72f29b65714efa2fce2815d1789f80de8d180d58d5d980ed04b3becfbc793406b4b0eb5e7e410124abd14ffd01396dd58f097a9b0a7464b3232cd02286969d4bfd6c924d56858734aa0a217e586e34c3b6b0783056366e6ae5e64dc8483fa894abeb442d493d191adf42241569afe49ee482c36603be4dc329a6d1485efb08fe9c7c2842beca2d15b4cbdaa28af1a7eefbfecd8209bba10eb9416940f328d91bf244675b9848797b5ae6d6fe37f4747855c5e31f80c87f96fb8d418269b3d091fe0eb22e8afaa806399386acfa27d06e5654141801e3a3fb901f1c2e0a9d1a03f6f097dcc186a9dc04742cd20435d498496122064c9e879eb3eba5a39afc19cf583df02e8380b8b3855a2195aa960a7d9125630238a38515628ded4c59eb6086906d5550c567e614642911540c667eb71cc826b2ae2b16c133ecc98c3fcc8a334ff81a6127a100b2dbb93ad639e8b7a9f60daa76e1681f1b749d795c078f5904b5a9c5cdf886a50f950c4641a77194c371cb4c16a962251f7e89f30d5695650d0a4557818bd1dbb4babc1ebdc02b48abb52ac946c2aa4ed4c4137e94e019bb6bf18485ea7af907baaa83eaf2a73e050e9c31491a1b5f750c2a720c8fc993afe7520cc36a10aaf6a6e34dc9a10d0e812f60fae41b55f2ec6a5e8952c7ff882e14c8c2cc9b21310a72ce108ac4b95d93ee0cd1c2267ee0f6e56fd44412b9b6dee441cd8e5d05d89cf2f07c335d422a71b9a1a0cbc465e6498b36055b7ab5e87ea6fb35b2959608846132ffd8bb8c7346fb005a4a0fa19f495cf887c0e31b73b9b5226f4558da93608e4cab0a760112798e18833cad74354f81de390c1e323e2e6c09e58c1f3f58a1ef8f340a0657c5b09234541673c5022f99c3b62d7109909ab76edb5849bd29fe9feb11e4174c751466e3fa2a40da2932d2ee54c8d42072ad11a2fe478126dc1648024fee9320e733ecd153a27aac5ccc975f671c99546d3d527063d759e18f8e7b003238d76046ad6fd035b09e5bccacfcbb2b07be37a0513d30159fb455751420475045d28ef0afe3e72af46b25f7b410d49e8afd16d2b1e186bc2e6a1b235cb645dfbc940f37feb9f46911d90334af2384cc5479be6bd072b4e21d40ca304daaa5abdd1e99c6f081b8cbc314d7e9f475a9a220bba7cff9187dbd71fe4304bbf231fa9fc1a3a276c0ec181fae1bf5da50d2b9b88afc3fed48419328129f56f5ed74567380e1ba5f34d5ea966e9c0cb98f054590db9720ce4bb25caff062806ce58bc42fb62b6dbe12fe990cb53814306490a117621f9b6509211010607faeb5549ee8fea42fddd81391a6a0bf1cf086a12c59a6d483579b45864eb8a36ccb62105d97a69116156646d5997669bd022756f3b37f961dd1d8d696391651be12b6ac5786c65e576c581be5136959e74d109a9a80cf6806e7b7b57b32ee5c5e3ef0efd02155323cd8aac5eb744f3535324ef8390815c25139682f98ef9aa8c7d93e8d1e9ab872aadcd0675da488036ae5daf2101a1a1af82e0312634be02ec2aa828c1a585390f5499790c20bd8b0558943ecca5b7698c0e0f49d9e80d26f60e768bdc2d57463dfd5f9c38faa293b08476874464da85acd555d41a7fbdb9b704475aa2e5eb8c4a9d7d16800833e58e1dd6e0576595631743269148fe6afb798a117b4919b5e9e233b546f58a11599f36a05a4cbb364a43faaa672255cbd48c312a29cc6d8ab1d671fe2ca5170c11b5f62cf7af6aba3f41764ae0f6a769dd7f17d7c152e3a356aa99572d0968e4fff7c203ac51a4698456b8b2149919647bb8c339b30edfa53b311078f4a09e91a20dd4b9257941007e70060adf8e034b59a8653ff27b3f08f8d9782ce7c1817db08260a165626d1f5d5d02819cc2ec58065dfc4dce0b8dfb9192da25f56002b480f95c884881af9a55b60d6084fe1825de2ed082d6c1fcc5aabb7c0fe3606438e97f25d084f3bb1bf636916ad5ea16268329df843a2f703a79f67d27dbce2d795a5728a1575d6e898cfd3e91ca47e9e7dc2891bdee4c821493aa933445feaee49f6fbe785f90d64f87d1001669a70fc68099d7eb73245731aa99fb6b1bbc8ccfef91109a41d6043f326b878110331df032fe6df3b64347832ca38fd85875565150a820faa65b28f1bdc21968b964064325f3d746fd255508b48e7dd2c96ee2bda201313d1fbb5968049c8fda84533e0fefce8235c56b3d58bba5bd4283b14a212bb1d342a9bb59624c3f3116ba25e1a13283b41710e9647bbde7397e5ea3656b7e472b0c866b2fc02e09c4c1c4f04958bfc0f0ef1e86ee1ef67eef775bfc74d52f18339d7fcae7add121b5d1f2d1aa0bea7bbb5c5f5396fa3d02e3473c707b31cb78cc854e5ab771bcceb1be875f1c38e5c530fd2aba7f540a48dc3903aa656d83e6a8d128a28be282880f23898e78424255c704d8b1647156082b3bd3947120bc6e5a4c8db3035554b3bc8ca83906a1639e0406bf723e003fa3dc32d08001148b7ad1999dcb5ef4d04b1ec73c12fc57ebc5835aa784d1234bf90c4e617f9e4923fdd441f6dbbe38191888d6a941c4afdc57b3dacb492c0a245501cce86aa91c13e25eb584d91ec4bc3ae59b6cac36df9ccc8fb115e1cc4b5accdcda8cc7271893b0c222ebfc30fd989e2bdadc47defde01b15484e520ee742b82584fd359e79782280942bfacc9e05d0056ce309ee8ca57550e3209a08925bfcbde9ba0e7f6fd59ca4cab3c99d29ad84983f9d417ebeebcb6395a338c96beb65d8fd86f07016b7d8a4f8236f66dae72f6e7d3f06356fab7491642bdb635b9ab6493462f1ae1420c264e0f7dedb0acb4517c32b08020c2b91088b69faf526c9a0772666608e7f510f0ea380c1de732d82db37194ef4fabd65c1ce7f433bad07a18c63832cef226ef967107508ea46a0be1ccb730ef800bbb6bf1f18c4cf0cee424dc55b8cd3c1b70e6a04bb929f2c40f94e42f37f5148b775e9f5cc79e2ec4a815f1bbf305733044351ccfee9890496aa3f6751aa513e91fa0aa01e7b82d51abb5140fd995554a1cc2daac7bb648c36d4668650746096fe5762b8f48446fcd3d0e37ac450eb43697df9b5d964092ae748bce3639b7ef691ff02667c5ea291b22e93631f0346de19fc969d3817c081195144e6e998185825f05c175ea3c48b889d096f328cc996d32a19b6cb2739c1ff124a7c31931ee8d76b5205ccc3af8495a09ae717ad0fc01aaf7f433dc05aa5a9f631b1ffe44b2e098bf7f1558a5f754c4ac1064ad13c57199bff6521bf9c74632293fd0200d94b408cd2af6408ba0c0727ab3dea6e4afaa920abb787fd57bb48fd6d051ab5307ca52e7caac231d0637a715ef48fc66263af90b36304458c355c3a48dd3e6cecd631d48fe1856ddc53f290df6038f61abbe66ab62e48d1a4732dfc49fa39d099142bd634d1dbb60ae857af2500f1b6e1b9e03472a59c59df06e91d90f4d3fcefc2586ac9b03ef7ee229d3df24b4a2820490072d4954292ba8722cc4213c445a8572dfd897d1398b56fd5b976a1fcba92c239663d9c313e6e95658c8b1c3ae5609b2eff0a9e348f5fa172dea80b36ad805917bb60884b71f4beb7bb0387969fb472bf5171d00eacb0facc3fe4fe248b95dc4a4c8b009e2cb45fe1d900ef7bdaaf862719df810976f3619599e3d7fc43706cc4bef2e36884144953ce71c99516b8841028d9376189b675e372eaf50312af97d6c0d88933e1838ca9e604b690753adef8f5e65a2839c28f2b1c470390271be74c711f2574ef1493220c73507bacdd68b9cd360df0e285fa427e814d9313396bb5642c7f8b84344c1bf51c5e795a171504b08a5494dd214502de4422669381b2cf574bd60f75ae4e90201868f5866c1917d86269358fc29b7784c259220eeab1ed2fc639ef13c3acc18b05a4b3d28c02f749cfd12e2d953d0727a8c688ebb54f47ea1e3f34564eb5129d2f3d70948513a2d1a0130f57f2e96c48d584e3f6c65e0f0a582289cdd6b8e2e99fb7f2ed53c446818ab00b14a5075f4decb45b7d2c90d7ecc647f29f8d2ed3a49c73a1de7838d00078b5337ffbd1f8f2fcd608a88ea612ae1a2a0320dbc2d60e86ec94d9a4f50103b963bb3cf5c9c09cb59585b8a51bf89d7434c280bc221a67b598f628dbbd1f0589bc95bba6e87cf222fd786ea3b6a18b69afbdfbe51ca7d2e47dd497beec18ef27359381749f5390f9034105ed4877a3fa4f32c605bb586aa50423338d6c1f0bc0aa0e7b28d6b9991a6cf1b5b30f86053dace93d10a28e3442da233588f1d683e15567814c461936aa4de4e760db1846fe500f18d7562bc0cd3d872701f621792c84c94c5e3a082a2ac325b1c33061c3f96dbbd402118b810beb26ce0ef6cab20f80b7b2cedbf46d437295afc9e00e366d220ca220945d966cd6e05f83ad18ab74292d05a5e4ec4c1da69ccc90ec520a824c10fb39041ea514ae2a9ff2a14934c2518ecffa295378175c059835415918b6106683fdcb929ccd84f0ac776833ee0ef9ab5d24fedcf70fa2796796303e576f2aed1d52f0547df05f17075948d8ed79d697229c07991c9614be705ab1b94e1bccd5166d68a5b9e0cd6a8c597bf7c4815f4e02fe75ee56bf2f860352003b33f9b8e3f226285c9846c8f5ad4b1eee3fab26c4793ad39361bb9b3b7bcc3dbccee2d3ae7ed2c57838b1d864266c783f59f52a43d13b9d7e43c3b097b640607e88bfb4583d02b41c9cf6ba38d44d5e46f12e1c4463c15d806908fa21b037f946f34a73b3d55ba3de928780645c1634942dd2bc53a51f8cf52af9c5deea4bda9779fae3d1a148e4a0f09e0085e7bba3b700ed5e87936af58bc4a09aec2dc7201f704efef45b107b7e32d03357863e7ea759eeaf4b759d7e35de7f4ae85806794bb14cbcb6e34b5ce34f1ea0e4c1e878fc936e83d21e2dd4faa366ff7ea0bb08ae655028389587032931b7d9f4332c228cba30d6f8f596368e69d7c88bc7168947b113e604ceaac4553a707e3d826f78e108e2336e9ec61b1370096e53174f9e405f621e8575285dea87087ffd8e788c4769c03beb94bc4c2d1f21aa87e148ff00cc08439053b6c0bca99499304670a8a9c977430871d17140fede43f9f1763d9f578a1574fb82b11d1eff1487683b62009698da9757853168fc0680f03fb6534849ae17d34bfe36e80b1006fbbb5ad09d9255932f969d90913159879af9d6fc2281b03ea4ae7e715a79b5987c945c34a1ca101e11e0241b284d14903829281e62fbc484f43c2913eb1e482d0cdd7d0ccd79c09de3d6d2833bcf87e286d1d45d98190f6e322af28bdf94dbef2663b1539eb5b47993d3c4a65c0d91e747f87e05ea729c65112934d871c85a4e4706fb88e73115d7c6588edfc619222cbebc46e6e8ba1faa1f942e36b4c7adcf1b13ca9a7e352dafdf022e41a4b3a37bf45beb8cb8ffa7dae0505980d57a0c7b589853db2808a7651278c533887f7944c06f4d62fead90d25e2a33f7878c9d191100c5a44f7df84b3ae9259bf830cef15d8839a865be105e38185b20299f332559c1b137b0b76cd0aa9c4c55e65793e5dd6732e950489ad6236641d452bedaaccd545ab3ceae5c9347fb4619212e3c80bce2f6b26edbedefac537ac6984af635fc0968cb4c60efd4899c42a757229e911317c602c8d70095eecb3abcc1f594ada38961d3f67d4ebaeea8de433241192d6264e427c33fb073b97148b76b6f41c83dc450462041ab92d20551dc892ff495b221f31524aa639214596c3abfcff3d84e57f54fb9f4ece16f6f71fa1bc8a2c09a213c26e996b850b5e38310d73496da84a81d7d22535863afa0818139cb7e41c68f77bcfd158f68a75e3a5b168e7f496b2e71b73ad81f24b811fa3a8bb0223502e4ae27adb3c30332a9a04eafb5b7a39f10e2dc847b87f162810925ea8fa5db3d64db37eb3d4667813ce6a711611dcb61574a33c0e05a475392c51e7351245ea346d44ea500942346cc895e709e339f657598f00f5984ff33262529fea27b099966c23ff2b91e26e1df5164c0c379bc405870131a0a9374a014140d27e1fb965b1bbe4a5d0d8cf470c4034743ad704c9510de6cf273f501a6ec0bfb11ddb0d863fad75faf84646f970d6b88e29373717701eb56f5cd3c59634c71c14c7cfd04f28860e0d31d810966c647c158cf4c9d856e202b351509bad485ed2d08bb5907c64836ecd27dcf1a7e55ade8d86ecbfb020ea9fee254b422f0b2387a3f22482913e85f5ed1a0a1544de50397b2b2edb7e0ab76de2b9830efee31ca570859e03001f1495731c9d059779d58cedd850f5dbdc06e513c0cfac9a98ea9c4c28dfb6e1659cee5aac7ec4b1d60e8e2af68976cf8c11864c0ef92693159506d7a764adc8f093e02bc4d6653ae897159dbd842d736452743d70d2229f5145f6c6614981a20e10dcf3bebfd478ce5949d54bf56f881c8814ae6be531ac85d18319186e60acee360112720238dd12f4bdca85f2860ca2fcf80095967829aa19e74e90b6bb10b5bf543388571021b161078c193e841add900494138d4b2326ba15f2284f519a3283de7b43843902832479b07167404e5b62ea5685e9d8c542189730691d8e0443e15687bdb95d699bdad12569430cc0d443fc4b244383693a1db0caf2b9a77e97be71285cfda494fd7ebbab99aa2b705cdd8648a361da9865b7d4024e59b9cc720b3aebb2cdddb4b0d01c140429655a6d944512918d60987dfbe4ba786f040d228cd6c9eb5fc4d8589612486431c2adcdb9aa2bbf3254788b02f960c1da7db0cfee6947d582adf46e72f58ae8252311dc7281f9da235b8abd42cff01ed9d4cf877538f1a745964f8dc13d54478b2fa6213c19a0eef3855d13a468ed951995f6b79bb35e5f0eab7befe7daf579d2b3c3f3081e648dab479db6591470c18fa5b4604a4a83f1cd2a2a0d527a51b50f1fa297d893b30f7cb5841c001793955ac3ed82c8bc67a4993cf9646f1e55e965eee6bc995461af4e236dcceca718ebb29a6ef9b51814d75173f9b74f5fa1407be1b103e60d1053aa1c5304b031b0f4458707af3c5ce177c10e721d27d8c7f8a45a7043891cdfd54d3e911631a29343b45e57c92f3e40de58218ace536ef8c765125fd4cb8f52d5e9a06f35d0737a15b1e73788dbec1224a6989d38cf63409b4cefc933c7a7df6aed359651534d053ba28955d893f4f2d0e419d04af3f02973111f32356354ff5bd949223311f86cf7e6814f1c64479f402a37855d2abd49d6925c7042b9b28accd5f5c800cc1d7875cb652e4f533eb2b56dde0b536d49c79409346f43d0d4e2293493614667ec4c6c678fc01ba62d223623370a2bda3dcc7825aefcaf415f421065598361b38726edf97273a61c2ae31d9c29b44e1c0187f9ad3d9eaf6f88dd330f83c05c84092518163d46b104132c6a33a803908554310f2bc5a80e276c7c06f308559b2349b2391a1b561a6e4f40ae3936ae3f909b81d8ef311fe30bd4692b36be2fc25e355f54f87f55c6d8b10bebcdd1228117239f6db8c218abb2cc5040de774b170e1451f9b28b6247f29b39e193d96a8a71471f33e0be438090e43832daf429a45ca342218ba5a00ed080105ab4698b70f07ffe20199d92b2e6e1544161ecc0cf303bdb6779ee74526964eeb778f1ea3435dcfc72aec48ddd6d48435c54f786dd0c7135de1b1cfd8303776ff0b50a8eb44a882b6c92223a1d0cb213c09422a8429265f9deba8033d873ad96076fe8d95b30bcc91016c2e039b8821f934cfbf62678ee124386575a793c2dd6fa071da66ca95c541db715286c42b182911460e32e37e3d071eaa2968c63c72920e22b57e71b9e7a561a18033ed4040dccad1dd784efd9979a2f4a5237f445a160076bbb4d511762034f334515131b72cfb048fe0c715f831a7ce27e66e3d358ac8a1ae74342418d8cc169c39c2fce8375eefcb5dffce2ef7f87100df091cff9e2a3f95e33506660b2cd01a873f3ed14164b1a356f86a381226625d9bb882fb9c7409ecfae56cc0a17cb7d0e7c0026f564831fbfc8e0022a6ee8bd53bfa24d148f525235f2337a137a13b530bb42aeeda1e2c9e83340e1fd4ee4536c7d9811bf0e67f4ac16111e9f996dff0c39af15d271379bcfc660c5771dd82cd0491f7cc2eafa7d70680f159b98ab58e9e59a33a8c60e3e6ce039f7317c95db59d12d1c1ade48389ec394d45233765ba9374f0d5216cc85de4dea622c8d983e19bf9d6f05d13b7ac805a9fb56fbe05d4a112fa00a7216498328c294dbecb5e10d835fa142769e6783b54bd633c58205b3fe8978309a8cf93478d87cd96e539735f0c653fa1dd26c268b3bb33e3302645ed722f079768dfa25447e4881376b017fe7cda853958557fd70b434b14ed0c8e49c00e8fd6ef2bf3f2c76c9e15ff21e8d295c0c2fa5ff6da18c7c83a331dc4bfe1901623c98863d4c030f3a447b1abafbc28ad812f9c800476da33ec8218dbcfdff8ae6d69bdef47a208f7687c32eb5b276c41bb50508fa65a5f18c6aa5b12487dbaeca137884eb21a6ed21d44fbe928094764585eb98b79948871b2e1cf594a69b5c6db98794de08c3390b3e182f324eb1b5d87380e8ec02aff1dca9c498d1bc66b84275a616b01627a1f4a8b4e3a9f8b02f8db700564d3537688e71e24aa6f080241844915b4f553c71adb24155594f76bf521169a430c2eea72a8fa185c28fe91bb2798cae83e821cd36092835de1a53922039fe854bf4d6174b37b19b44eab068892ec18c1685f3487dfa94b49f39e2e3c96d50357329032a991e102c57d6c86177c10b99cdbe08657a28ac52e6e145d4c73558f51e0bf80ac3ee00bd9d7dab7afc64da35941d8764b4bf432b24e9e194996fe67eefb159433346a647e745a0aef101e7e25d7a5960dd4e14c55c0b076037f273ff4aef1ee7a1cf0337f21c9fe81d107a0f5be125447f6ea494417d545a1e7f68149223d3c72f9bea9c76fe0f67b54aa0d14f297a571cf759ab51a38fb885dc96238b57a9006f2735ffc0ad656b199f65fdab5d6a13c3ffe86dc2d6bc31983aeec385b0101b760f3d59c8a030eb5b44c0ea49517de84609d10d72d1c23f0205ea28185f09326259e363ab917c3a229c99389133696b050d53e41afa51c402d9051b59a443526497d41fb4b40ab991cb732800a09e3790dc7f6dd1303a22575cd3d4da123e24898f08c2139b85f6035cc2902cdaee3f30a95896f2287bbaee3d9f9d5160dd446078505f4e80be8edbeebc90cc5a9e0fec722c50a0b134ce0822914807656826c6ef88ef01994d809891cbe513f4d418af1c5950076a6899d12e6f2a920bb684969125243d0a2bcc645b7e2b0716f3979d3f033e140721b40537c5c18a3a9f665670bab76bcce2607de5d977f38ed6244603314c989de84b33a261c443a08bce13d83c200998a7bcf223f56ed3bcb5d24c4fd86fef4ac75ca8ec00fd8b8853fd886f24a4bef0a310242e9ec2567d23c99514101aa279a56d326340273517d0c14ba7103e2acc24097166fa8d08964e79354a95ba3a389786849b8de74f56a2704d961df55143869a8e9bf641f128722435175a0ab0243409ea71900259af75d1125408767efd8dfc3efdebf8560566924288510fddeb931e3f622dc551511a138b219ccafd4de29953f4161bd06c0881022a9491cf2202ba926b91ac9da02cc00a51ac7b299687de10fb89c19e375416d1902c62001cb89e5ab7c3ac66290549b2448874f64a0514f9a546f1e97bc8ac3ac94ba3c214fb8bf41a875bdc6a437990327dae28a4be349e358a91046423c0b7f811c54606603eab796e548294c68b6b1f2604a928a348068aeff2bbf0614972f83167321f37a306476b9b6c702a49f86bd90ce7f476d7d940823456f217fdd224e1c624c4cf4603d453be621269578151c318d58610a7ff315ceba8905806b1fe073a05a0045422c6e8ada0106954a84c73ffa7a41f69c4c311f88f9cbf3d6075212044ec5673088f4c47a5884f7a649f6fcd5285c44532d83e1d36d4f629c06e0febe8dfc7ad6649bbb93d5f2ad2c40b4e2158e0e50e3e00d83c73dbd6b73abfd01f515df2c5c57105ffeb550f9dcc11b7895e8d99e1b07cc924cb3c58705faaa3b490835e8b483b3834ee4ee3ba8b39d0a0550730a634ad18d4675f578d8e908c4f5fe4ee060df0a97b188002c5a596aae896195b2fc0957d07d7755b9fe6247a122590ebfec744d77542cb7a33afa4a89c5eb453e7960b063b0dde0d199d6db65f758c9401bbefd10d418a259ddc012771a2ec51272811552f646337506a9fadce7186237761b97f7ea316b524c5d556a5565a48007823f03b22d110a678d79649140e5a2bd116f8e8b3d426264445222678570e27cf308eca2fd0652fcf915c8af7db3f60c221dcb35862c8258623b8287c1602723bbb881c31ef2bb797f47b88ef5fc195b183360a9c30f688cdc239978222319d05b81171b72bc1541b1615d20b643099c6bd43b3b8783b05523815e81236e64a154e232f62f6f87f217f9d8820361323bcebaea681dc026c5e5582504b62e6521938cdaa753bf24a1d214931826beddae9f029ef598f1e0370c3e9beb02578b238981ca7025b36390ff78ab32339aed19f4c3b80873b9ccebebbbf2cb2ba56f05c29d3072f919fcb71b2dcffdda5564d9d1358610786f6508da1639e6407351fa2e31726c5b20966ca123332d3e8cc07897119dd4aa2944075d87bed1a0102ed58218ca463a389454dd6081bb334f1cab4aa7df74b2a97fd8705ef8cd0455bdc2bed28b077ba7fab8e1540df7abcdf8fe1d269965c1cabed4b98b3e4fb6f3bfc423bbe90aeb85ece02d63e5e2212fe059e94003c8f1d65ceb04ad87edb674d3264dc692ea7b29cac040df7be5bc56537956cdc627058d05fdbb5b0b37a88d154c3c0d47dad7b701b39708bfa296867c59093c4910a23812cd93e2bae6ea8a1b4114b936ee7c807cb04ed2040d1fb7fdf1acd17b649cbe4ad66fe8e46d4deecaca54fdc7e3bdc86fba2aa11a219ad6bd318533f9c36bbcef90b650b0f29f6a43806c9ca291d7ce54f76af74e21dc19423bb8e714fefc8b26ea203658eacaca51d5039b24fb54b6615af8dfc4e47ae32658f4fed31c01ddec22a0bc414ae338fdcc1f253fd5ec4dc747d53c8a8fbe54139b8eb14b10ac1c4e61bb605ac63cf57e9c315bea09c46e482b48efb02e50dd5e8b8fc04e1773b3a3568aab275399fff3d192ed12c4b65d675fe30896023cdeba5390ec2956a9b321eabfe82c4da3d6879a332f89683ae08fea862b37cebd7ecd8aa51450063c04624f044af9589e4c2bc67f718d2ecac7a92dbaff5cce0c75f4fefe273013e454ebd490ed181e0683247a3ea9f6ccd758308f5e42cba76360acf23825abfbf2937094d241cbbee928fec6c00d0417b822f3bb051662429b7b3d0ef35aa105e50e894fc695256b6a0d8dadd6bf46505e41d368be7d7208e259a2fcc84bc049d777f615754a0f815ddce416d6ea5a78d6d6507c69c54d25ff9f69aedec045aa109d824dee3023356f139effce4342ba52e48fc4a6690edb926a83b504d9bf2a0876da010eaf5fbfd0547611af6873b288d55e35ccf2fe48f321cc9499f9edaa4573f32f663bdf8363b7ea564e2a223636927d07933c6f3864091d7bfffe158c0989bc0ae1bfec1a75fce9074e1b6df53c472d0803a6f0037f69ee098d9d38c22a5a421c97b18e80f85fa362cc97efd16f475710277d818d54e9598195458964a126b20f15fc2ce3db01413a3f4563df90920f923ff04d2074bab9e7472a4e7d40a3a27a1640f0ebb02e3a35f4ba23e132e4578d73fdceb8398c7ed8fe4af7a403f89f5d1bc41811306367f3fe37d53ca3f47a023f71dd68e6044dd7af01b16b3aaa50a476122610389a5dd74a6506651c5148ff31defe30d8473d7a75b1c5826e9dbec0c250f3fdc786fc3831e868328dd92c34912be2b5be0fba247101798eddb2cecec62a6eb717f72416091d256090e9337ec092caa57563ad070bb2941c559e5d783eafbac6fbe9e8cbdb865abfea4daa4ece8d1f394bebe4c0fbd19cccffe5631f3fc96cfec4ff9bcf47651b78d1aed7a331a3e81d48295697bc2bf0216fe26528f4305fc6e31e7a62824e5c6247107182d1b9da3f68c3fec0354c4606db64dc0c20643e73371a3ca916d685cc49c4321cfa2d83ae3c3f17a726617d4b501d830422bd010f4b74683f681989d60893f4252bb6bb7b0409950590dfd4050e7f0a365ce51512a41b1171874276cfba29aba09e038698baeb564ea623e09d5dbd186eb0a2955453f4291c2598398828f95c1b7132af0a2993d5edc7e632184fc8676530229913c53d854afbd4e7faf4afb7211df16825342842f980b457e788102327bebe4d2028169ea56d888a2103b4a096d9e3365c52198b43df52104449c9af8cd5e560b7ec262b79385111465a38e4cbdf8baa7539cbdc8711676eb1a81e6be222b0809724d55f220da55e296ba7a6280f393f848991b2e11d94bd28a17d2ae27f81d201a57e07b3b25edea3854ca5c672f5c594d2e1c6ac2821012c9a5173e475eb62243d1e3c6bdb1c96b9888b606f611544267449b15a9f7a55aa945df38f0b0a9d96889198c20d87e096a20a91f82ff70f5300eb38ed818452412be0e29aa6be65b918d2a589419ad0904d0b4334475900f037d106341fb340a18ea3e4c09960e6cb8d8fbb8c22dabb3b8bce76493a4374a78801bc08536b7805de4f119a2c94b96008bfd5539ba4d892f43ac3986cd891aed429594a12cc2f69be323740a5c00090ea79d87c922f7dcde0dec37b7e4f9d154a22db563dc65fddd84d5231424f0e419e429ea79f25aaa43c67fd07c21a210629ba1453e2058e13f2c8a8dfdc290e0f6ae8b74b51b9a428eb140592353529363e2f9e9867050b227de9b2fec0a1f5d311b0f17aa6311f856716e2f10b92f073a03496a4a209ab30620df7b3e9f19e721c3af3726d6480a711e1ef18450c0df1f17b3d0a85e3ece0c9f3818f09a885522627791151c9118b1d3f47060066f398b92a6176727ffed492fac5efd2e9bbcf153377ca46077f0921cb4c15e70581f434d46d67e2c46f722563139c9be472266bbf400d15995ee9c057201ed632ee7a43d55a23a5f298396acf9e4285da28e0ece4a57cea7435d9aaf7a3abc1378fee3ac70179b617a7758a1cbf701059123ae27e745c32c2db054d0e7c2512f69fe029ac7aa7a49dfe402a5b7c572e1b3055f715f57f67f81d11670cfc956d2dc952d00a04507a6b9c42e34d8d488aecacbc45db17ed365cec0dfe22275516d5ffeb59c424837bff063504d1f85db9292301d4583c19aab652bb32c0bd5ced338e1f11a5b1300c89494b9217a634de80bd69d63c736446e9355d182319c20831f52c8ad3af745f23e83c8dfee305e2538118e227964df60b25b502117d4b92217f3ad06890f25289cf3cc17bd002ab143caf26b9017cdeb6024dc9b974199c0a18b685add7c4ef844295dd338fd1cb0381a29508d5a84054383ed46da9bab28cef5dc683cd42eacc30c5c90fa0729f118fd2b01050f295204593c8b0103c99637c5db3626df0dc5fc0b53b6168363660554b98ea27571be3762850443cddb21ddf6e68970b8171f68e9340f157feb465092784a18e3aad7a2fb5f9d72c8c8e1a58b0547847c01f8ab112339f8d519d1318a68f0e26a406ebb6f0278857b850e786837afff8660a6b6b6f701cddb3f3c652e788ae657796bbac2a5562667bf852c199b96af7517862270602af7a1ca5ef533ce0a50f4468a6ea3a68b219033201f7c39e5fc4c924537f845eec62bac2aa8181e91b94414cc22c147bbdc2893f636259152071bdb8e647037aa756ff8852e97d5df44438e8af3462aa4440188fad368aa7f95d6fa7f546be7bbf70debb59675aa0058ec1611ba259ec45a4a5b908cfa05edc4b681a551702780554a4fbbfd19eec631d1fe804696c7bfcde817d479c41d6b1cd9d78ca354369d5a9d8e281b2f9ee754d6994e4c74cc0022a156a8d4fdff7c5a3d136a31b69b1ef8768400dd1bcaaa1a2f26c3a2a1a094df92f32f84e86d7e7d04de31bb6488cbe32a97a722736fca00c1ee891a1ad1789b3bab433338ef1a894d0c8047e3553c65a231e3e575a88596bc925add5124f4c174099221fe38ae67f65631aab28b4a34844504528aec0aa3dfa6834d5b1917ae03d80885c9723a0c51b404bf5cd215b327f99155f7a67fbb59d5ccde3262ca549653b970dee70d23d48c8498476b690a67b17a6f1e01345f35d98a46ce98b9fbe3af143472893d1d090360038bfb4de6dfb93b424d963d7c49957675647a79d675135f1651156e7a5e69ffc9b8f38eb9c636a205eb433344e87cbbb70cc271ce89ed7aa906c454d4e5cb7294edab15f4364b9c81abd865c345243f73b9c9f7d9ccce5aef511cc292640c06fececf5fd60e298e4fb8142790f2e6ea8db74459916b99b7a3fcf0af71e5ff9f50adc89128ee10d26bf2e5602f80af0903f203cdfa667321a2c18135a212c5dec9e0f15144a5019c3625142f043e7226c83b052dcc1de693263b5b091f73c5726716209f264e8bce7bc9dfa430a7288e4731d6184d61846e96d400bf9d5fee2289e677bb59e479c1e0c7a168d7c70e81c3831cb2e0847290b85c670e7723d55c4de4104688ec0e39b66d7d727894ab18eea437689abd698d48a9b75fd8cd176aea3936b2be63608356770e70fa95ffe63296136abaf1a5f41cf8dbd0860827402b5988ebc91f06aa19de1a92817555bc2b1fb1b0e1c22377c1490ada032fc6f862b41adbce48081a0bbd95dc16bdb77df27ad6580eec77ab036be42c6e34332a91bb38539c4c5bb0bcc923f0cb828d8133bd8bcacb5eb468526a304d5938472066428f67ccc513c52deb3a51b524db2945cfdde373050ec7b09826af3039a04927f509a636c9d1f05e2c242699a91484f91a714a6255bfec91b1cdf901693b8e83a0d9356e1ee0094e719715a288ad5c94151a2f4612fd69cc4432ca377fa8d80bbf52ec4156f15ee7ce2160182a2654dac0cc7d310c1403acd8ae556c1820ba4906b1884dbfa57b934b4fca8db0a5709b3196afc4aa62f286738dedfc0c7407be0b7d650c4c70fcd86945a3a4dad9bf2c69ae55a6ae3c13d715e7c33f743969c90c7a1d26d1c2876f41ae0ccb3487b4242b50f16902b94ec07add1873304ea1cf8c533bc1a3d5cd1b300a4dc7d05fe489812c9d81b0e97bda94659bb126edaac839d46973b80c32fc592885a92b34feeefa5504025d1c144e436186933d95d88303040e5f5356544d3e751bde5aebe1e3663feddcdb596aa4cc10b98b3733adeb6b08693415973885fbc62841453038ee0c88ad7118bf5af183a6233f82c6eaa7cdfa8cae18145f23977c1615fe35a26c08da883947a09039fb4f2cf720315a961ccce2f773b10a64eb27a7eb7dffebf641758bc0208e90543db6045e8b7d056a666d2425b8c6000bbc3600e94011e485a2b926d0e3401050d621e843235131c090701fdf8942ea6fc5bf859c3112345bb1a8c864e2f68e34f926640f8c9d258eb58f032db802497a0221c137eb9100d5f44b72d207160ffecfd9c0b2e583e0537fe601f8544502cb3e07ac5c5c89c1573f30cdb874146ac29e42e6c91d2a6b37fa4ee6176e7bcf55d50730e5b1255e6268629fa3af00e8fbc5dcca4d102d4f74ad1177f1e31a6cedb15c81fd5c402a7c5abc9042354980b1e525c78fca7632c59c427b6a0e87f32c156e70016dbb79b1de26f32e3044d69f64a2392623b6b24deea250fb5af5f182a152068553c59ea252d50ee2e59b1cf44e68e4196a05f672eb5efa7ab49ae031846cb7877d39dcab03173b0ddb3f070ae9ba44f74cded90bf87c352832467ccc19d4167c9975dc359fec35275c63334b78ede34a543ac69dca62ae342369d49236b193b861413adbbcfc07619bb90b94fbed25e6a0f674bcc3aa8727f1457b8a166f9c9d312e13142b81e88299f7c6d708b5c213527ee656f04a4a17b1ba9252263d207c89a284b7a6b8ef4aea42535e46c48ad5827bfef4187d3f0683d28cc69aca5d85839e52dce4026bdd0ff928cd9cb1661a7e2bac01c3112a1b3ac0b818ce3b69e36d8e71e97fed32b188266cf80d8da06c3a4da71e221b62131d1be11462c6085bd5ea9ecb9dfc0ca3fae073a6bc759dd930655c3db049865c1220e51d283d253cdc7e6f66fd9784d722986fed639c743650d38b19e9868d0b54825fe2dc5d7e03d88e617b455bd4d76919a78056da77e17ac824fc7354bf24cbb6cabd2e8d12a1ca8b8c10fec09bf0fc2e64a1a2da5d9aede4e66c9a527c9cca4ec0ca0e4716b58c389141547fc2a5363c0aecaa8ffd5c10a6241941db179c72a15e6a04391b5f5d96a64561d1116a2fe9718f32252b128a476f79c212801d0d502812e1ab7ff45048b81d91b037db5a183c7d57d036a52243a7b770ca4c6e81d6d86a8c982c7263175486f2e271a8130a93e1e6d38fb1dec1a0c2c8b86fd2e066d9e3c487968f0021f1e0ac29d1faf91a648203d2f50fba89c2f2b81887daaf4a81ec86069a687e666631e761cfff6fbe8e1e6412bcc0f507c42cefd1e3c4e11c12ae0859f70101f99fc74238ca9da1073c09a0fc9d070864459311da01781f63a864e3c5051740a23e5a2961a91299b962c286ab577c0e48898d897eb71f3eb59935c6fe93f31f697047223c3dad4e2a7eda748378914e45b1f0c6ff96ebe307cb623419cf2bffe47d942ff25c854465fc6c64871eed6d2c8ee4d6d9ea3d5737d4a399c447e1aeac25ae08851161e745d04b870fc80cdb382dd842b0bf87e0f819d08a9a1704d003ea6e067f5a20161aa90376b79f13e62eb4d24199409043ad6d67e52be2d2edf65dfb4ae5c656ab2f6a88fa53e46f6910eeb90cef4ac507e8190306c4a5c742a6022662fccf02b4f70409ddf8626fb0a59c83b0a110a2d91222f79632a52403fb07ce07be0727c082015eb8f2bea39181f4355c8935bff21e5c79215f4b23c223b1ccd96c369bbd2c41be5eee12c5ff86bd5eb236e774295a6021d59d09b25f7d79bf4f2b1fa4cfeb81f5c04ce0039c850b7f7c5f0a794aff7db311218e425629aaa0f272568ffaf21f5f3994b027167abd705d93a02051ab25f6891d7755af550624c3ee4814b8942ea5bfd822a51c6077c9041788b0f3f2ff953923fd15338549b2022c8c90a20a9329b02c0117032a46f882091fc074d185132c9815c1c70706812b98182a2ac2872858016bbd5ebc01ab64f521f72a367d42a44dbf14d2acbe6285257dbda1c507b4e8ceb179a33fa841b13175ceee689de10d37b0b2e6a473281299d3adc0c705ec2d16a8dde063c5c7c7c7a7a3bfe3dfc7a7896f666a3999be520b15d6fa537f5af0c1cf1169b4c34728df781fe48ab9a3eb5226777167a77aa6940c4df7f343da22254b21b9dde66ddedc252373bbc944b1dd1d656464e66d16b18ed3ed9f5572b7562d8a943af37bcaedbee2ce24c83986d521e67a38ca283e406a72ce98b469259d849e1a50eb28f3dd3e312191fee5e0cb592c5c22f5657dbeef3cdc917449b388060f56c3d93516d871dee66ddee66ddee66ddee62d25ab62b8b830b32d0a166221779ff366e78ddbcf441d0413245391dde4f46323719b08150a7a871b85d28f1c04d28f3c04f9e38d3bf28d87900f2f162ad249b88a95e636d27d2426c81671d70398d58f0a4715d3ee291c2d035dd9fd944252785443cf8522acdf71de16fbc6e1e8ce45789c60475914013901598107c8234c11f450846faadbcd05c52d4b5c6a2e50badb4643d34d43d33434b24a1aa9d3f27a82ed6245dedb3a7212480c460dd98bdb611623dfc48e63b1faa4977b5ffeddd730563b56002f3a06ceb8397eb02b1ff707582f9f72c4c076ec9483663b569fcef77f019139799a00cb2195a5b5521262663146e0701ecec3d9a8b0e3ecae4988e25a2d5154a95a363bb691db5f8b0a5b6ad96c0f1fa990c7c6c37c4f8a47c252df930201a004760157eae5113c9b2dc520df1782ece8e15ca5fa98adab754e0d1e58be6ee48e328bcc02ba4f8b9e977b073b168565c18835c1803c330642e0c113580e35be80c966a17bdbe405f5316147af56fff9710171a10f2346526f443aab1fe6773a270a1687c3e18c3a5665aaefaf3177d1f82f1ceb8f4b38da19033987a137d462db5a6cab022b6f2a5cf1a71ee655e18aff87ea6bbcea6bbc67b3718d59fdb5aa402b5d070a36b6e2577d0f0c065c317f2ae469c2a1ea6b3ccf3fccf7c06880ab965f7d0f2c065cb57c1388c6fcb931f3a9af21e669c47c2afcc7e143e9ac9997b0d33f8daf41f537544f43f538d0f87f09e30fe7cf9c0963c209f4fcc4ca2c64b7fbb5a925b3f64b4fe363be86d4cf7cf812c62f71e0b8a1fa1baabff138fce37809f3f0631efc1a663e0c7148fdcc83210e4d7ea47ee671a0f1312ab0e5ac7e218aa5f1a98f0967421c37c2169b50a0f7a87f7979f98f5d7e3e0f979fdf739d797cc6cb133348a4ef8cd055c037a877706c2b17f5141c815cd414922dda1015cea0150d312ff33f625e26e469429f874618f334fc41e357214f2a2442e3bf0f6423effbfc77da03c71c2e35e20fe437f117cf208e6ff8e7bbd76ba274c739e03968dae909cafb3d0569ad06286131a084d10025ac048e33e88654084707769cb6ba64da7a5e17c3e5790186979346a552e949414a54071daa83b419d9454bc054054fa03e28e1458617b3b5502964d891a9d0ed2700155b5fded1c34d5b05a7ac455c1364a47b42008f7af9c4c374e2e15d39c243765a800f96dfb3628407879e914f8b4d29654a65a9857fa76d80b20c2082601e487590365e3ce98480166923803b7ab890c6a40dc83f3cc107f6020ee6cf9ccd9ff9337f660fa66dda26112617d3168be17e605dea7832cf8ab4e90164fecc9f71daa66d0ed118354263d3e6ee3e3d5c0e16cbb89d5cbf77d4efe13ca31a4fe3c73a5a1587e3a75c3542cf2815fb310077a431d51711a3128246884b018c876b59aaca5ae6c3c3793a9039338752215d1c7316eb60257c8302958c29a9f50012a4939879b8c6e170383a39a6448987f370b32b53c801d5f3d2354f6c4cf59a1c3bb03b0768000cd9b05045a676cb593168345acb67346bc5d689ffcb5264887b4008df16ad525aeb2ed92a8074311192d58fc4ed1f5b50c24a5e606b0f1bcd46b3d12ccc7e37331b3364795af88191be823c5c82207af881f1e450c980913e074fc8159abc7285c6c2bc42bb611df21ea1374eec6c71ba8b3f248031837d5460fda20190d859f32326a191fd9116655aec5e1c4d30dc00d94e0676945754d741793fbf638b86025b439e263c140c1e9e98c560ec854df81b89e5130338bc0283902916004464a96209259e5002108c8a0fa20cd5b008cdc005369fadbf0ef695972675ae9039a0149926553c457214c94f66e8de43dbe5964aa55229594a964ad92658bf630a086943835dac026659aa54ba63aa0996de31d584940b4d90499b94d46993c9948249a5524e64330c0d71a5790c84b4e9a7321a581b65d8510ee578819d41013208920ad18d711a601703219357c8e0aed2a24c2489a924643f19604214761072a201a55ea50cde64055794c1c4f3c25893c90cae5e7a5875df73bb900845b55ab55adb9a5484a8c10102c612b0afbbd694a9d66a635a54d85146e6693c199bbcb5866aa914a5d466a5b4a154866a6903c5f28f2e25b572fb27c575593a2ca5db2f553ed75d9e8f54b10e259d33734aebc7e9c18e544665e1eb352975218a054ff7eb13b5397b3395e5c0d9f1f552017197e7d36339771f67b5c7aa177a6c06297c0f566923e4f57d1e8f39dc3a7324afa5703e097406cc30f886aff08dcf30f8c6dfc199f34f7ed5244f1c8e452e3f05e7ccb5e81cf0eeac716240bd5eadc59ecbdef5bc279d6028817cbf530977e9a9468ddfe9ee0403cc7f2ad5977e26745cea1d47e844317f031cfdca48d08887bc315f03e4216fea55e02a26f41b8dd08b56a9d0abcc087966fde6445ee4551ce7569a3e80699da48e3a962ee22ad3eb12d846377775929c1b31ca226f415c8a4b59427d498bfd0e24672df64b61973ab4babccc80a1a19adeffc33d24c00c6cf77d7ffcf4becf71786147ff4ac1ee7d869e2219be2ba060c1ed5e33f8902c5d412406a4ab74bdda4eab10052bef6883748ed727f1185922edf2dbedbb3981f59efee8b75b11dfec60eb3b9b82748ebc5e746b91a88ae35ab4e2b39b129dd38199d362b7866d42b9c94e930b35bdccf04ca9ffee04bdd225d936b9b8e965460ae63483774a40cf9da1b4a1f142effd7aa4fbb1c997b42b88e902e0889dbfa3ed947de340c13976021bb97babd56ab588a451cb5d0c8627e17564d4851dd9878db85a159174318d8338ab779082b88b147215f205d27721872151fbb88b733e9e4fe763e432fff124464c483fbaec0631b25929fd4ed76a35208c86303ac2681a5d3672973432aad58c6a4635a39a513f4d8b46468ee241a74c3e80203bdfa9c00118401803092550292981491038e0e287294580f5cbaa7a548b49daa0429369d6629ad1f9bd00854de18ea6ae1bf9f62d9382c11152c70ebef9724a3bb5fea9b50b74d8c037de772e20382ca9f94ed0c1830565e2588c86697dca1184952d9eba8953ff9c7efe7fc78e1d231baa00e1d9319b9d761083b35f4431d3e1de71ee6c6169fabe8d19083bef68ba2f97efe75dd7cd1717a9235d2f3d4ae468463818e2081e7e80e574610299118e70421264b0fe177dd0930f1ff3256d9cc5eeeede1d8132032ec2ca2f9020baf28b25452b5cf9c592255755abb52ad5bf28a2e665bf5e6bedae15d5f6ab5a6c281c750ebf957d8e07a4d8b500913267488bddddd9e7e2fd5498624b9ca4790632500be8012043bef71a225bdaa1ea9cb6d926616147d56847a68d7ebf70e423c61d1d60a05194eef2e53de9a58a79c85b7f94433f4aa21ab2125ed2e24c9664862b96532c932972a4f21e5397c0f8240da5554e3a80175eb8dde1863e69674853bcdcc543f8cf14fc0365cada15320b66e6e9793d67adb556239521db254817b27ed59c814c2693c964a2f8dfa68659995b158fd4811298d04e269e167e60a7b0c9fc51f45e9a5abeef770b7802955c5e81b4b96939f1ec867341b56b7d90327bc4a2be8591200952ad02e41389618e1fcb5ae4245fc8e4f49ce4bb20cdeae79932766a516051a76f6939c94c61132fec40b1c6894cd60410b2248e18a2d4a82b986ddbbadb7e398078e5781f63567fc78ab07552150edf48e6155009d830f3216db82a61e63663452c666331db957273174a2ad5759d0b503ecf94923a2d24a72e5e86d110755146339ca08a6e3feae62cdb153bbe2e07f832a1cf60bd7e52c07c949516af9f6240e12e6592a430b02ecedcaa11d5cb979409fd495f6c758edb58352a71fc5b43e6d44f46e5ac7e508afd30f0083bb6d84a2a6ccc2edcc0eea07487d469b916e6bd974738affe8a86faa4afa17a6fbf3ba4bf08e9257def6be89e14e250bfeb1e078f2bb8e2fa3f68addf3d8ff7f47b60f254410fec6022b89ae1b7d82a022488e98e128703e24d2ac1cc88eab957d4c35932e701190212c821ac8306c6a79a80c67374569a5a6986cc664cd8dc9d5d9862fbb672dc86adc0c44a674d86f9cb530e175847c0ff0fb55aab52c9970f696b952fd4807465286dcab0465c18dd1f5672470e7ae209a9c33f1d91d7cb03e3330055e13428deefeb11fed8eef9c5900556851758ff090a797987e1795df55e769eeca694b2f3a427e54b261553eb4fafb257996b0db9327bf5a8fbbcead174df18b82e284d991856af5777812cdb8a0972568b0f1a61a93f10b02803871333deed9fa1db05a0fa9b0076a6b0fed259d2591606d6776c8c07aca37ddcbbae73ff798a61d480b47285f8634088b422c4c3196a405ab9fc1caee475e9c4095c178c8383838383236dfa71ba8e5221b71e383852873e1f31c3b173e2c480dbc8f59f2d976d80834b671c0e6971369bcd84781d9d262c6cd3a74b57f75276397775a1e5a22c6ea3ac176d8482816f912447966027ac9f1649237731ac75136ddfb657ad1524d2704031cfa7cb754747ace3bbfd5d96ce6177b14a75b908f746e2d8e58e5e7260db09df7401a4ab3bfa1ef64d2c92369d8564f5f7147debc2be39abbb5c1771f7dc755dd8e5ca9875b92ed7e54cb75925d8ed322f94822d77822df709373292c95826b34228140bb2a5e5e25421a5706105a2219d3373bc7b6fb55a2d70889016193641be5d90164595ed1cd6852da63eb6a4a8d56a52ba4dca39b373f2cb4baab57a233ba9d58eb0ad673de7c449c2b2ca5da5c2e56852a40282c3e170382051781915fbcc8d606666665b3579d7c7cc5db57aabd50ad262bf64ce04567e60a3e5236c01c319e2ebc732239148b71510ecfc51de4af7a326188824911d31d222c75a2f015841044b5dd29da4654562826c8c13de15eb8f2386f59f2704b4007080a50352da909ec807fc72c0dbb1810581df39432cab198a584a5f7bb307a00a4b7a229d339f978840ba1809c9eaa7a1b9710306866772d66212ebad1e067882255dd2d31f72a15892cbf4f55d25e444892b4a1b6f41945db3b0edc5e54126734e02683ae843daf8c99138100ec48323f18109a474ce389df8a00447309cfca713a1db3f833a475ab948b0381259a57dfe7d25185c9229d443382d8abed08228f695843a476af18325b77fd672a416455284fc440a19086499c7335e72049e22c58ea27a62732f594b26b64c256342ea34215da86f924b0d54488364f54bd64dde6e3e684ea3d168341a6dc214cd8ca89e94f7a5f60225168bc562b198bbbf48299d271866cba974697dcf63de72299ac046ff5932c4164ec04697b94ff598fbe07044edcaf2585457ac15afc23fffe4b77f99af38fe5b5eba6bf5f6c3191c61e328ce19e7373ef43c46f3a0e973035cf958c9fc4e33edffff6540a739eb36646b514acd4531f63ab2d259357e9455a415796564dc28b39cbebf51d30be9ff2a000bbc3cc66d0603f54e5445158ed24a4c385a1ae128afdcd163aa54384a2c33c2709459eee831f1669352cbe554eeb1f1dd63a2c73cd63ee431c6b117b8211e8bc53ce6318f79eca556a3618ef0acfbc65fd7d0cb9f2386cc59027fdf0460235c8ed1815d418ac9b543803bca9c8441d0177640ea9058478976a5d0060e25172aa8e29a8005f45483c8f20dd7cf46fd7ce3222896bfc639b401a3bf1a4c2f83983e185870063a776cd851fb64a042109635b001e9fa9930e48c0c63268c19158498a149cc8ce80f92a3076f204773ce396bdc097b57e187159c48c92ab1743da42182a6d5ea92d4985a6d4c14eb3f236da60f3030b1582ce6ae9a9a584d2c16ab91363dca1bbb00c5d25b92d5549c27188af57eaca9e962b1cef17cba239dacebb83f468ac53962bb184c108c50c300b9eb83a1ddfe0434614ba07416ad6327f3c0181ad88f25cb538b0d1876a445524c5f038e8634e7ac93ca8a35fde9476ae485317e99741675018aedbc9fa10d2662b70bbb5827eb7eba58e75382d9c47579933adda4ddba70d27ab8abf45fa872565b18d8e95dac8b75b12e16eb623037d30f6e564042199ffc503224b75faa3e9bbba40f7d463bbafb4d939102686047eeb2789ee7799ee7799ee7799ee775a10d3700b9d6aa54ffa2e83fbbaeebbaaeebbaaeebbaaeeb66207255c1f9fe19127316919b98a5e12887640e06a418a4c5f98c2381aa23778952ec4f49b13fb49554fa4ca716cf843acdc0365452c9746a39cd80a2feb6459bb5b6ad0e6e6f92cc921bf67a9186679efc94546ace39cbb92b95caa57273fa8f296a4ae5a4702475b2b4d18abacfdcbc72afd8ba4816239d13a33e33378fbca934510b910260e01e9de374e666aec7ccd972b9999bb9999bb9994bd1aa1821da02cbe5af323208b2cb3f79864f7a17548800720962b45488387225152559ae7c24dcd3955494e0685a02922751b36695bb22c38e5276eddaf55764589e5fbd9717b0b134cb9fc1cfa3b5e8cc9da4a6daeaafd60ea76dd6c029a545f727e3acdda379f39f44fe9df36f2c3ee57ea753d7ae5d93c4924824cff370fa059f87bdc0ccd82175fa8517fa92c6a75e3279f97e793e2180cbf89e3b6bee7a09f245918d4e9ab3fc7798f1abdf21f53660fec6ef40a3011266648798c7f13ba8bec6eff4ceccf7c06edcf897ff71e35fbefe8bcccf843c332ff33c2f7fe37b603570fccbffa8f1338fe35fdec67f0f6cb57a1bff63f536bebe8d90a7490d7fd8f80f7956f555cef2ef81d9789e550d3bf0e31fb4cef27f7930e4e1011f0c3fec81ad665ec2666642f9124ac701f630383e910e07d803bb014a980c28612b50c26cf4c0e4898633a845d7918212d8b921eced7bef9ee48563cdf5fe2bd55cf95dab464e496a81a5fb7d6cf21302504f1fc8e509da67d0e54be0185e1a967ec75d4022f45a700a0927035a7ede30c18ea6eb7d77c73db0fb16b0a5746d14527349df9126518b7e9a5308766c9bd0f5796bd6f7d56fed60e78f9d1bc55aad95de525abc754e519d7576ada50cd95a2c6ad1895af4161d48ac64194834d4f5138ff95dc5bbb4083bca2c44a61692ef353333f39456baf62f454acf97f4dfef74db3aa77b79a7b55c0c480384a95d7681a256025b38ad0ab2118ef19166f977fe92e78a2c235042fb218a255098081102238078900115513491c48e16dddf63feeee3df39ff3eb23da84ec1a70aee969389adcab0a3088595445b58b94441885d49542507c6e59abb8674e7502b32ec5c914169c34856bfc4e1040fa48e0459c73c82d4f1dcab2b21ec9022b55aad566bd55a37ca94ba24161c3373959a8d5bab09b5ba276c7734dd248a6a36aed5da56ae35cb62e789070f224388606f5cab318625d2e2e88271fbb9d69ab55aad56abd52ced931f4a86e4d69ca95d415a38af672a9b19c7fdea09064ad986cc524ba7a57452d54c9990c872a551107779add6aa54ff62eb443a95be93e9e4b50841dd098e32774d2893a9e5d4726a41b95817eb32c57dc67b6a2635f3ad82cd06a1208da7313824c7fc4e4fd0898adccafdd8644366572f4f3c6ea3bddff73ff8297cbd5348b1ffc64b77856fe3a5cc7129cff5d268efc6307f607741b0bbaa5983ce6ba3f3bb62eefaca5479f923915aba0fec4227971f04bbfba0d0e5a01b82a4578163cf55fdf7811d088e39dcae6b1eedbc2ff49e04d286826f82f8867e07d25aa40d05dfc004f11853875ed4a257c15d2bf78adf6e78b052be998b45b59c4c3b5af4a1ce19f969a5ef432ddaf8fb8edee2f0d5625f770c489707b907c5e0781aa99f99f125b0ef4cca1432a7f42f0f823605300461c04f864d37da8463669a9e9ac030fd3b3da5cd91e5f0a310da39c0ad4674bb4df92b3e8bdfb9d56eb7dbed76bbf1c00a1a131525e595025461475ea22e217578c8fba21d007e542bc089f10d2d071f3f3751963298d9a716572635c2ca89a8ef28823b82eba112db4ca552a962a2d851d6663320d6d1c940eac8ab13f385ede729f201235cd1ed72099c402955a9c04ef074e97c66666667ea75b45b40325992d9927e758e0e8ef14dbfd4991feb1a59c33a5a903a4c77cee69cb58b7bb831126632e72354b06c460b9a013133e3b45e545a4b3a6715033361e54e09632741e0ecb914ecb956da7cd7e5c98cc64133a018589fcd66b319ea0992ee2c6dc4873ed14113d45b02986257decbdb7db5497cab66d6590452a74c3232a68a236b28297262b45aad56abd56ab5e6bf8f1c3d431c9be5779784b55aad56abd56ae56890cbe572b95c2e9793385d377fc4a13f2fa7eb63481d6e3710b7bf85202c0f691bc28ed2463f46093b41d5a5314dec586f11df3cc9e09faa61bfd989457eaa72b1fef6c91dcdaee56c395bce96b3e56c429cb3c20a570c362b6c56d8ace861a37d56cc8cf857a9b8afb75aa2e8b2769d7bcf552189650a4eefc65075b838b075e640c6571e5a66b0b4e9675a13befe7c128906fe420c10a1233780c10ec4003f7dfa1f9b48242761c07ba6815efeca4f9ff2bd5fff8ecbcb213b7121c8ceccaef33c7a42c08c9619b7851f3b3909e9625a37d14f6e7794d2bf500a57dd57d89535a052494e39e53c5ac10916f54dc3b1b20b153216ccea6f696939859259b7917d30859259b73bb20fb7fffb48aa305c08b232774c3540c22a1796081cc6f7252cd8c5342e98081c06163b73bf52b8e2f0f4a53f7de9677f09ac4cf31507f8def0a31cc26d5a375b5c7e4e14c8f3340957de4b18cff72b2fa4e16bb04515426cb183d112602a22f47278237ac24d093b431b5a6cbef537e38870b5535ad09c18d50bb205d1205b7f90d4e99932b5a0831d69cc3f87cea7414d836a9406d5f0877456bf9003db5f41eb59efeb8fb266279679f35bb59f376fa6b06f5eacc63e5b11259b10245b0aaa2dc8eba3209b112f3708b75f68a76b5b0f35df29b6b6d96c6d33b2d968e907665bbd41f2edeffb5cb0a85888599c14d871074b170548d605286c5fbe713b8f89f7fcd339473734abbf03c247d89f5251861a4344a8c1ad416e68b19d812809555550d9b18384eb29ba9a9a9ac7b2a6b1e45c08ea20dbb537e9ecbaae6ba54c475a6c2cb99a24365a68811d654deac8ef6729f8790a1e6a56bb584adbc81ba9c33a9036edcf5df70cc65c798ac165e832a9ef356429cdaad508caf92e1a6a9acbb9cb1e758eac51b1a3acd564b0a9fb75a60ea4579e9c01fc3137b01d187399893dad68207dfd1a48e1510d4358f6d67dcbb8266b5c9335aec91ad7648d6bb2c6b5d311ae0dd586aa90ae5b1baa0dd58676a44d7fad66bb15b9f860e825f722068d46a3c996d76aad283ec7205d1d84643511572ce1d9349a481369ee412650c29ca6040c1d83b843c5652290614b92a0040d96831ca38a271801d6c23fc072e028602d3fca1a8ea6c44f8bdd02f230ac857facfd1a4e6f3abd3d8512d67d0ce713ba9116bf377d3f7b71201a50eff235d87f097130bde96db87a1c4e8f42bd84c57c2c2a26f39f988f1b899ddef431130ceeb5de7cc75baad1c5b55873f3a0cee97820c43a3a767bc9027c2c657e0f7227499468976d272ca5c5cf4b92e404815348fb715a4e8806516af2c9993c0fe44fe2d93d89929f9944e26294f0cde6ebc5e5e5ae9770ba84337260e51d654e326c16a95ef72fa67fb94b65512db3d61daf9a2a56a142558bea00afd6cbeb5e2f547b32609a7824b9d6ee2edfaf94eeee52bc9226ba3c2a6252a9ea47a473c6f9fcdd8f43e6f78bce50c810e62798c63590ae1924dfe0f653ff5135674545aaeeeece9596c00c2548faf42192d51fb40196c9fe5f0bfe562dc0875e0e6b38ed13ee2b4751943ab44a563f497ab73d69d33f648656f543865cb82d8c50220531c01539610924b688411188b2e8e1a160ff44638b89ad3f3eeddabdbbb6f3021a13a6cfddf4711296c92073480e90aeea34d5566db74a5949de1031276774770f9b0d1cd2223fa9d6ea7574d28807b042147b907e2c13436c436c9c4e1d6eed0185024b844e8fa64c93f46c8414d630d7dd8fafebfdf8922718baf76f67478b2905fc9daf72570b5154535457a85e2f534a86860e2921910385ebc29240d3830cab69d100b0129bfe03eb97408691c01354d29fa0052bfdf751240b36124b216501469e82a75c51021b56c1d58fbac293273558fd1ed8574196ad7e9458567a13b83285fc13aef8593e561c9242060a99e634209c37616d23e3c4cb2f7578cf6f7192252320642459f28e350793fa43dce54d4856ff931ae5f6d329b77334370204046481540c3481bc8e563719d9af4d389cf0fbcc6a1bb3473e5e80190ef53d237068d2cf3fea7bffc3fb1a6a5843297c00a515f7a3c51721bef6f0e1d510d69f8214c0b30e1902bc56f849e9f4dbcdca6a192894bfa9442a912cf3305d24ec88c37dcff3bc5abdaf357097a4111d943a527cd32f69dcfe31051e171bfc1c310596838e1446b440e52e1e8aa405b01c6cfc00567a09a459e8ffe69c7302611d129037fd552690b2810b2b9d45fad7cbb909279e2cb1842a0ace12272a3bf616ff2a3ff8863b1a8b917cb0b1b4991dbb5e2d9706ea72c844d2868ab4c18289206d5cfcc8445e25e231ece849c81cee41ba38e74790a2121588ae9d739425a7566b55aa7f516cb568579efa76933a574857a341a894eeb525b96468460000002853140000200c0805c3c1805040269c6f7b7c14800b718240865a3894c7834914e340c828628c61c4000001110190199a55004907186f19e2ee8b369aacdc730365bcbb1a1c774c842d6b2f2b941327626f194244c9fc5176234d1a8a7519051665696db7f4679433adb006c2b6e4cfa28a6225cd4cc9a07f5195c60dfa5c8fe0a5780317a45c67fd6880b60d9b9ea9d0eb44c84e378cf722d4032fbb3d8842bbbc0a970ddd82b4b2774ae3828466c8f43ddd95e15963dba1a9f11da6f3667824adcb0dadf16964aaa6f9ea0be8e6ff86bf406fd851028593dbfbd58a71f4f8b8ce4ffd8b6b228601c867b7768901a16a9383242a75fdf52232eb27589facf7b2e7278698cff87f91bfd329b59678475b95ddc042c96c4fd19fc23514a1d0457bece290c5d38a82ae3565b1419cd8d2cd5e3fb3ec0863356f50f503f6be5cac8ddd988fc10041d482e662c14032e5fd24b46a24fe3398abbbed15f1c8ecebaf1457ea5ee3f6e2ae4ae1c5078d9dd43f8e99153ee41f15366229c57fe2d48e2a0975121b9d5b050b01dd9d01b937e77d2269b3ae34d4f357afdfd6bfcfe12a3750d6b29323d3152a02296131dd63ad464f0f8d76a6b31824d354d26dab844a209e0319ad71057d142ededca461b793a5ca0ed1dc0f9c2a4b32fb61bab6e23f33d05431aa98623f001623f7e3f30f72cf5fa04911448f39662876c9c4c8a575e26f509839382c13d1529e03d30fc24543c857c613cd22552e2c1d10eaeee17e0e3946a2b26be94a11a3044ed4669c383b59551560f87da74d7c59a6ea6e227c930702954d4c216449e878a820fe42c3280bd621d8ed9ec5ba335a697eabb3813cdec00b743be2723b6ea2b69f0129c582c6cd9e6a11641393fbb97b3529a7e9cf1f4b29627e3d821c4b3d7562584cca570521cd2baeceb9e2a446b467b4ffe48a29ec9cd857d7cca9cec585ebfc86afecbdb3fc87d63aafa2245644de8d3cf1032d6f864529a952e9bf7f9f9c4358eee365545db327ad970735a90a9ed2410f170e7b4b831eaed704fb6c5e63a402c09afbdc601625b49003d74b00f3f0b304f8bd101476ae72e8c816d2ff099cbf80ac149c9c01ae7cba63a336b17dfe2c012cbafa6631c97bb64be9c8240c55aaf06a585517a838023e05d073b55ef15eefa7b83d12200d7814d57922cde8df6fbef6ab799bf1ab80e60f16199b4cb1b30d3275111b671c27f01ae141fac78526e1acfcabb40480ed285341ef30a58fadd291b020951b82a4c3ceeb73ad8d7b5101239a31b50e9d528e8bd2f58722f60785a2a46342fafff04242b7d992214166b26a11fedf50c941a1d46618ecd7e264481b68901ccc8363b075bca448647c08fddf28cc1b2fbe83f9a38855a6436a822336041be3f5b762bf02b643bd6e204745ed7cba86707b4ca20c27241511c7911e53587640af4f1867d3a492099b7e00b8515bff411ff89886a7e2820868c91cc67caed0d2d54c6e1bd4ac20dc377bdede516d9c712e1f7d0ac8c755aeb49272277bb07c4ac04858c2236136d3345d532d1521c6762aa42aae468a58189e4c7bf5e4f8535c18fd0f2051fcc2abd000246bd2a1714503592bcf400058e920291f0c28115f1cfd4c65ca95a526de38e9f9be19bac826862e9e5f3d9d8784a52bf40789df7aa2741cbfc62b3f57fb5ce2aec297729a4897eec5bd56ad34b11d80a454e8180ca099e677410c6685ed9f4e9a2dd060006a0c5a7cd23740edba19513cb4ea83f425ab1de8a35e866cd0a69b5ba7e4fe5ee9adbde73c5dd46c8013e19ffbec4a07aa8d82c221cc282b7a124c6ce9a456ef3192ecbed0f87b9ba38b8805ad6df0d1becef7edfc08286d385b8491e0ee61fdf8c8c791398e9147e49e00801f2f141bc26a5469b52004967d47b006b1c9ce957b6571448ae6933935839ac7406214b193867f47341b999cd96091ca01a5f68f3ce4eec5020b5c9703aafec996e21af82b9675254c77310e5d7a699c2822f7aaa335e0d7a9c5c6c227b70745d1c1bf488269ee1b979c42e17dc3ed323b808bd66f695b07f509b28ac812b58cf6c9f4c20436d0caab45a34d984951fa5f5aaff92c451b9d981fe3fa724ea853107191babcff836291c6ad088fb92f103a69b7fcf321dcd51e25c4afce98e2b04440f6e1787a12966a686e99e9aefdc134d24e13d65db1a92c2e8b108b4d7cf0ffe7721e3aa52285d4012acf7b9c8631956ae488cfdffe307ee36a7367d6358146219b851075479a3de3ad89ca940be808a7ae69bf76c8d8d2796f7adea217693b9fc5aa9de192a80fa492ad3be56705188d4e0e7f6c25f57f78cfefd72a728b533b4d212ff339b6d478fb03494e7c2c22f46b7dd772f867c68006046267cfddbe40642c8af7da51e3b6fc55595aacac6206001431e359d8509cf66df19bddee7c2574345a1197daed294d4cccf82cc681fc5551a5ac541c13984f244e2d9ae5d720f1415ddd37deb5b9deaf26bc1ab0d7210f56a3a591899924c97534a0014e1101a241408b4546ca118b5b2c89922ad9576374a816034fbd80f3de3ed9937e0d74003d4341dc964cba0b9b67a8309b14fdd4ee6b98f77df38f5914044ccdc79dbe65f07f64b8d3e9b245b356f50336162a99fa5e73bc48e4b22a1d838631a20b9c09b99a066cfd34a4fd6531bc7ec12b93c792d55cfc46e7f88d2f6b2ecaf3e6caa7fb610926b6abc241f492c964967799cc1528f0e7b1305c8478b9041e5e2bc710dfede93dbee57d9e49c3103e585aaa1eb541e53f6b5fae012a1b9e491e7858884bb3288d23d6175970bd5a12be0401408bad0b5a1aa79151d0eafad857e69e5124c3e85a511df1d65ca9dc7f55f160f620d77342a186eeaa59c20cb286f63cdd2bb20ba8c82a5213b3e7fbd687ccdbc5b70bc9d6c27ac686fcbcf35957461869fbe291df9242eb4de74734187178689a5cc8f238a57447fb985617d505703ef3a74a297aafe4cc1b15c9e75e100f73f5a5130b9471a336721cb64b6d5d1a022621dbf2812acbb4cfb8511d59ca7c494df1d6bd40560320efbbb520605f2a5a8a8d7297fc025ea7df3e693d23b0f89a5d1431151481bca2a364f3c8d00d983025158c2dc519d67bfefecabef28a594f472308f684bba560173814e67243ba004af709f8dfe572053869e7b3149b8829707e0f4073c808ddb8e0ceb5971aa3565a97653286f1e3c04b4ed724db08c23a190a7343baf544ada8d5528920ae7492f54553c2f1d0121f289257aeac942b9d6584fb02be1cc90d5f81e04a57699f3d83d87fa92cfb779a39d8aac075bba6f88b1f52aea6e2d38189dd015160167df46a2c4c4349005f86e4b65cf43a9e390b237cef785c8029af874800c5b70a7c37da3760336006b1240cb306fc2ae52521c5384cc2b2e6044f32894adce672e84c0638250295b53ade99de2c8a28f1ec940006ee15bb8f3993c278fed8b24052199750c574d2c5aecf85f5b52fd47fb85e8b13e6dd0d0f24346c5fd4413d3332ed54782fbbd66118e063c173abcb7226639168baff081aa60ac76fdc5de2a9e83bbf020e86e55e7fe09a46e23ce492beaa1aaeceade463625002e721363a9b2ea7863471e6f2a2dad21d17c9282afee2fcb0afb8cb41bf661297d76ee33efea711f82764f0a7904abe47cef1bdd7d74948ce4852b8251dd446fb696d293dac047399bbb143e52b9075c2d00e903e3b519bccae0fe2744577aa38d59fc57256e88739b5b3804676b691bda5845e2e86a107bab3e55260befc6650ed89bb95e0344e2cf99fc880d50c6caab9c3f91b6657cd6627f33fa86457a136196449ca52c2a5204d09318f8e46c8e4a72a8125cdd749fcec30d6b4e7f4d45eb4f8828a0acf811987b6c10cf228404f1fd56dfe1408d654873298706ac71b830052442960bd6142ff87b45a79e43c51178a8117bc10fb746d09167f5f51d3960864c950701c3e338003526af66c629400b260ac50514a474290c8957282a55b71077a50cfadf4195087d298ae0761748a7f2e264f5d77600c1f5d2bd6b68b8a8ef0cfb9a18a1a3458ddffa2dbdab83aa4bbfe04b4222483daf4a3f289deaaf15408e713dded00701a8aa4d1a892dc41364508df73991431a33a3d38e731a573018a579845bc322ca6c91ed551ab83f3fe0177241a018c32d6a82eb572de4970df3469771205a9a691a646fcbf95537b5ba10e0e3dcab4bd2929c32cf8666f4992005b30c1f5166c0e4ed76ebd0387439a9cea99e276f2c8939ea6e415a85dc273a29a496063a12e03f72ea2be6cb17f113d94246613d9149f49b765f8451335d7edf0b0a48d09eb6af13ac5ed8af28e5bff430a38858d28920c134df774684c708a45905b2f6b4c9be00dcc1229b50ef40e6cf1de8dec5a3b4ba48b9d4b254bcf593d21bc95642524364418d023ffddfe272a842bac10e9dcff37c85c3eef84a3d11ecede399ea18ee76a0e9705cb6d2ee285f4203cd5dd627311d23604d9b12c9887d25bac58cef9c137219a3864bc092c4914c71978117ece3b29f74589dbce59c503f29cdc90e029265aebece1d3fe9d9f219004819d244959336933f1e8e734dd2856d46114f0aedbf4dd275d1b7b8dd3f12345e0e02deea3114b6a85653da6099d3890fb8ad6899c42e1e1438a4c924a1afc505d31e3995be99d557cceda570666c840c55a594860a9b07294f26a0ab86ea216817f2ff1ef9d34e349e57543a219ab00efb457b17ddcb8ee49044ea8fd22c09d2442e81cf3cf3f94daa0a344dff1ee60a378678015f6320a18bd881049bdf0d7f40b921bb855f839ac49d9033d1488c659e762d62188bf151b3361826271e86a6e7ca2d53a7bdcafd90f983e80f39e27bf25a6e9bbca7279f3b47a8b2d4f64e7f0930f471707348d0014d4ce2b901eaea71a5d2b1fe9f3b2232aa4c130a28756446fd7a77d5ea347f32bba8f57a44fd1e7e5b9259ad97e5f683fabfa1ac35c754d72ef347b9eac91bf1a9e8a758e89f949ef5b47c4af7a313f5c3c36396860cc81be22808478b1d993fadae4cacac7ad2e9665a15733f9ad027ce80682ac79f94eb8f629a2374e3b13669d3a0aebbc4ce4c4deb99a7a53637d79309768c07daa71cbaa3cf10e7c837b405b9d8aea0662b8b817104ec09e5ce56db1dae2715aad627c8d8046b03f38f0b35ac4bbb0841d24a6d968f5cc30881284e3965eafa1cba133c66b18b4b9d568b5c3f7b19a06a9bc0f409757d912b20ff20a1eef3d0d1b6265b4fa9a7859123c87962c3edd77aceb9a2b6fc8d7cba6a1351e194d7fb1bddcd01926f81a73bc3596b0c1d712fcc36a5a6e840508fef02d1fba737f055fca977193b825a0c64ccf9bd4d923668293c19777f6dd292c4709195a629670859d572374d4c59c0db6a1bb7556659b7eb8c92ac451853f5dc7c6aec68894005cbbf6fac2290a15aac16f18bcd87d0fa8e80a5b9ce8a12c388a424745815745d0df4642b6cd4136a20e28adafab205bbfcf7922aa0e8fcc6abd339c5f84c6aa0bc53b1dc541095d55601f83e91c447e0e721a4a24e59d41fa3af73bfbc0e57897c05caf9c71ad476bf5429055866e889bc4fa8500327b55ed2fbd90562fd384ee8f670513fceb97fd85803ec0848ae9986b038afbd3df7ea4a961debf6f1d1b0057849d9920cfc709b47608ecac933278f63c44f7d492e909f583b87e276c5182b584b4c4f4f0087e23d973338c9f20be45ced82ed6fea561ec0d3ef8ff8469f9b17bb7bf051297649b40034fdcb8bcec7074acdf3fb87d05ae276c9bdb3f59408ac2e41736e1a65e889455cc58e1b88870a80ddaa4fd4bb71b3729134a86f690411afe285180fd4077d42ee11065e09c6394761c55cfa2d30bf698408c07dc3791bed38752db16e4983f90273eaec1a5933e4e6259a9069fd844101ff9190ab9d6f1013641093f358ce5e1d3aa3a7ec1cec1b562060e9fe0b18bf26c9db61c8b8bc8c736f280aa951557508fd07fdeb89ba77393beea815120cce458aaf9d791a4cef675d5f8e009a807333e52eb1bf1a504d12a50af25c7248474e52f321beac0a93df6737d8e9be0816107e6fb042fbc01f83a0d419f9b4bfa6c8a059f20e5683ce36d9854ac5098cd65d3479e3df3b261d59cc1f5254be9da312a408d910fb8daabc64a3eaa6933b56902e4323a342a141c9b1995ab56372992cb839a8698fa7dc63b769880c854a1c342ad4d4b550b6c9dc33ef65a0e2cecb93b40e168928d58ff71beb4fe9a46a42c1b44a67125e54410da3d8cd8deabe339e43b1cf1f333d0fdc1740575f7aa3d3715e4cd244c7b53388ba24fed9ccd003355022b64f50da4bb84772e6a47c6b8be24ff1e0b9bae692f5bd85f4a2cc479233b3ce0b3073e59369e46ec4731de14ff63d687f6039257b826306040546bdc394b4ef7e44c9f0726d766fdeee372c15d44cd4fb6511230ce2e0f24d22fe5d23002eb5c7d1aa74551bcdabe30c0cd0442ad8c325852bf9bcc7d72e42192cf8b06f23c8b1a24b9f5cd21c3f64006830be57a80e2893f4694493f78a052acc72b98d5bdb0c633b9f90f3392dc01254c7a917b37e8ddfee9e283beffd922a9693f9f343c6b4706c5488849f5f4824bf4f4b4bb019fe2bb98aff6cb1fe6b7142b9263ab8ab1eaccf0f95b048c03acb0116aa83e6b0880587dc624cf135d5543e113143897d3470de7097b5927fa634e991aa06c830c9b91d4e0cadc8a432aad7fc05ffc520a6225d11e042a218843e099526841a714f74a49609136e226b65c32eb6cc4f94517423910a49a0f3c3e16d9cf729e64baf95184318d13e536f51d3a27095b3324419e57e4807b7c49322d78210aefc21f33ae1c91dd2c8bfc92921e32bf80bc05089a73e9f3a5657e546c4296473224c1254027d07454ee09c439401a46fe58be9383a80f95e6df8b56080a2877e8f4a2ae05d039eefe41db78a6b527f06f3a33234930db56ef0f86cb9dee3b8fafc71101f9551c400a16f77bb350b04a8dba67a975e4965df58909be3d29628bc31f35fc3627e3bbd857d846b6caabc9beeffb80600906d738107f36c1878d8dd1b619a1492c343456cbe42e9d66347638c2a9db447c4b0ca87b89cea139bba3755a9ebe9595bc53229f9a4de7fe605a2a228fdf7b0d625f3a8477c6be4be183f789b737226b2793635102231c3911dfc08e0e851de89a9f0b740e50f506d4dad2c8b7e5541da156d8941861d3a18449eee106e243e725366c73f5e0582c992b205951a4597ab6de2f48ba473167bf585022395f27676d6aeb74893fa4385497f822688f3f2904bdc755b206467820cee530c6de45b978d3f7c55003e0fbd3d829fa9e543905b22ea7c96986c91c5c56b1264e4e6b8c8dc56bbd125426b9f86be6c6cb0527020d1fb9d3b01b3a9454aa7aa085183354681aef740b24404be1b14741df31a318f684b795d6f958f03ca630828ad2c72747d59e07fa85588f91206eb353d52f55cf1935ceec2bc967f64a7f600eea7045d49e179a9b92e2ea02f9f5f14906515909ffb149a0e44aa9564106e169ad44189898cb29fe989f146006c3c09d58e442b62ed0f904398053427df4df17686afcb09d5bc723cef5e02a5862a2efa1721f0b36203037f53318fce0e35a84f87baabfcd0bdbe880611c9077f552df07b2f61c30ca41a2069e58154a6544bc148cda606ba1ee391d8fd96839956a7ae62a9b19d9b8f213b541250d1514d80f1dd5bd343fa9d8aca7b34f19b925fef0e5659a027a20c9cad0bfec2451ffaa3e70df57ccc89ee394838bdc41d74494ea62ae5847e3c089a74f93c64b55b8afde3d3e4a41fb1e053d2482706d60c0dbd59ca6ca9166548cd437afcc264d2d9450c429c312a7bda9e324a9cfa027407ef94d3ce0ebcc71036da3f8ace4e1e136c185e2e919b42edf7209d012e8c42c76bb8279dfbdd318969ae99eb6f57e657e131b131653df1df50357edfe8770c696cc19e8bae0d8cc95adb2be05c1679292585e475e95335629ae2210774fb7aa8d33deb28691289210a59d840ea89c8f9a429b5c78fb1e696ab722f30e996b608e2e14fee15ea5ecd1bad91d03922954cbf39c1e89e2315707167374fdc6d1e102f9a8d9388e0e7a07507500135769dfd68c41ac7fa0b232c39d283d062e00565a1a9170ad182075b7ec4303948d792637b0f9d9024e52bdd41a8703cb135c3b8698a427e9db056f5e6747df39750350621d48013238dc987ae9f8e34cc79fed74fcf2a1cb493c598652f75c8ca1e929ece7c0e62e3b7394da054e180d63447752ea065eb9dc4844983e424e29e8eb95b4930defdc0ea9725b7bcf60a60baa77ab70fe62a480319ae09efee17c92b4d3ad08b91804267f897997eafcfc627fe94a13cd9777dd5f6d1400a5cfe11986c552adafb18320054eece4d25d704d07bb3fcc828ac353f44ce1416f3bd226c3623dc16d67adbdd82b3e61d70a2365279c2a9b601d917c013f6d327eab21866345ae5c583b0b4611da41864cf1218f7de1a0eef94ba5c1d109de09b265ba7498abdd16f6e63da8314cfe87e9de895c7aebd36553340dce9d809a6c4c5d1810fa44e44b1317ccbbe236d263e07b04ccf72f3f0861c6f7312092a48f1c765fb28ed986ea23d5dba5c7acd3d439e2fe2bda30aafd0e291e49801c494ea1121ee9577b32463e101900036172bb23ea1733c953129aef90224e4173e8aee12256c4d11115e0a8134912cffdb2cc2e75806a1cca666e8b442ea290e9e39df4af1d53b4f19dd5641b2de46a445e2c05e05816d932b3e454c2eb19d74d0641b5545204e095b17db3e5e02008bcba85a0c79a95032d943136145eda2e3fb4644af5085cc688988f65e16fcc30f152604dd7a397b40512380210136475289e472e18c70a7f4619a01f8b09a5c232f7b219a5caf2e4260f9172385dc0c9193de2125c4d0809106f7106a82e034a7d6c284477ef691c7d08f24a485057740b6ad5e799357023063f2ba924a1045f5f2de114fb0e1590a5b80aeebd3e9190b61ffeabae0814c998645b39385c6e62be5eae777b631cc676fc6a5791a41b13f5f9e1c2f64ac6c65e3e6394f7ddccc544e9e19f905b75d58a4066ae5e3e62d8d057b2c93a7320ac78477a466fb978c0a4416c0c57221b0b87fed990aa7e16b28d5b6f9424ad3b1691c062f1bcb7ea4ed5a7f8fc1320a4b5204ee4047a238a74c349d8336db3f796a1a37ae6f940131f4305d5d9e4cba7925fd3a0c353d22c2cea3bf04dfbf78ef855278116214a818a201c609bedf1938d63a18d243ebd440237aad6c6d8c436e8040207abb481dcf456bb14db0a14432e2f7d63ba909a278bde1bdbd3b032fef60bd69348e8470d305f00d57da20b18d9639d7cfe434596cf87c83be6b8cc7318e2e4652fb1cde5dddfd66d976e44230704d26c637e00d543fcb1b43baab7a68cfcc9121d7098f4d82dacde394c2e7fc7f5be39e6b70c9a9525971d586e13bf371df3337fa8bc4038a30be0b52ead657ec619f6b740cb4c02c387d4da715564dc669e4711906d821070f3e08131862c8ffe020484bb1cb065d9cd7d3c8559dc963602dac84d8e53f178876b1d834df37104749fad1a5c6305792400b7f2dd0105aa379543cf7547a06a36b003f772c15dc37f442557a8e0cc50f9ae17c0b1bb2572d37abfaa85b8b8233a22a71d076b8972ae384e28ee481db408b197ec36669e93c62ebcc0292879b11368aa5decdd0a4c492cf4efcb378c3343341c858761be640994006899cb81921b7c1184c1263f745614c68d39db30d1d80d18c3f408eae5c81a492618a5581c4f7a4873c7de115c0f4aec25d3c5ae5d56997e53f3a139bc8cd549b6c3b6a65f7f7ca5eeddf14f78c6058f624da43df7258792fd5cc72fb33c0bd9a038f1eb76759d32989d5891bbc6f851716197cfeaf4b159bb11a5610ccccd4a9eb2c74068d8d8fca5f2fd08a5e6176619685dcc3894d5e9a3af19b1600aa35504b305b2917b4360a4b963e154b0635f3cb089e6a2cbe3300a1406858210610a70aeec772d83f774428dcd9fe34f36273e4bb5e5ade293c6998e161f229f8380f139c99fba23a7bceb45d9a45d95590457d0498413a5c0422c9bceea7ef3a64cabe470b46c905fd6a53225b06748dfaeb7ebcc052217898c75f126763155ee844cee6b8fe7b225eab5bb560ed975a40d3c0a731cffa1c5eb654987a6a033e7c721c5a8521881271e17e2f8b97063c794b6d4b95a929f879eab3dcc6087a143f8664a7a4c6b87ab27080a790410b7d923970127db34347264684f29fc23a4d7226fa84c9fb45e6896993fb52b642126e943f982778ca60ed496e79b1b74963f3b65f4b57c0c9d905b1fd18f1cfaf2eef3e1a06d20ec783c230917ed86f3f95f215cb0f4e5cbf4e02a855f76448081c293062251730a143fcc03caeb41889fefbbda2b0a93e05559c1a67f8953aa3d38f3d5031fd217425612373c206e547b478978da0b4b62c93c831112e0e1d0a9e1ed4c96001b32c66b2c9668a01fa10815c20784ffdd504ae6c3470c3d1f737eabd976e85ea79c1f7065852e031865f203c16a522e5b87fb1d5597ed07e1e54e0c66a3175bf83d58854d3a201c03bd1b5f4a07223e5eb66bbec6f083c275bf25215bbd567ed9ea8f87fa4028504627e7f4d7d4dbfed875c41e0209754580e3fa390e5d7bf31342727aa947bd6c12d01767983003f10754681f37905b98030ef6bc86db3da41ded7fca7cd6fece7b8a900baa6d1cf18338da202457f44a6649fd689e83b62dec32710afbfec886b9c2f1c1a31e50580a9842764d40ea0385e7f435a98562e17c22a81ba08539dd005fc4ca4161bf5c9243eb03748e95d036012d13ed3adda081bfc06afab4f00f510e5e36c427e13c4445468d208b8b98ee421df0e9cf9bd5e6d8d8edcef4d04886618a5421801085a827dc8f92d9fb1c572608d73f6f905e5ba9cf2c646d25831b8e9249c11e6e885833bf659f56eb734ce8aa9d44e709c8a6402d56b2e07a27cbae9c3f1905c0013662eb9b265d72b9c8b0479a03c750e80d2bd4ad7f5aa44c1ccf230574e5faa1125b5952e3be6305eb9335ec029b7b16474eb9d51474f6792937ee187415962d31e645ffb1be889ae6c5cf25c59f8ca7b5c1a5ee0a8599ad1e268e83b34fa6d36403a132aa78c695c78c575555b3091a5049ca90114d4b243893a752801056383cc7e6a5724fb4aa90af0ea31eb5149596695986ac6e2586309592d3f6a8cba20a3d2041e89f3f8a6a32a1152da05d5decf9bdee00ee8564e88dd588dc2c84dc58cd0fdd70ac5c99b8fa0e79699ca2ffd339c6b6c94191450bfb0b296242d96ffdeb5c15874907520203ec8e559272902a30d404672675056df13d14c91b8855a9bc125625bf6e4b5dcca78df2d07c82d281bcf5beee83c1295e69da826b2d0c68a0af083d28f17112fc0a8089a76a800eac9c62c82dad54a96cc0a7146da9ae37007a08b30aace4b931d0d3b2f7e5da443f1e4f9f4f4177b8079a7bca95199ea82ad0c1cb40a7e9561611e7ab49a86424643c24dc6a460074f29cf417e48a0d9c7576ecb2802dc134b595ddc5354c4c7c407608e501c2ad32e81ffd441a1f0e84ee6b0d9adae7e05fd3933483835793ce98158d211f48a63bf884e864dee24899e88551040e2e59ba4396aaf614939c8e720cd368ed1a97c2131fd888565cb65b3d580d426a2205120b60c265b0e1ca3e55a64eed917afdad7e619f62eee4d759d92b4af186dd27c5dcba866b4d18467824228dcba699098402f18390f289aa9b8729470ab0cf3096ae61151b32136e8df97faf6c2430ba10bccedce1d7c78dec2f31ec51835eaa423f5d32ec29532903e8739e9e88e1333c55bf8ba5d3ee7f7679f6daae5456551f9dc1c6ec7ab6a0312c831db06a47a59011469911b9236a10d010ace55f0a9ca5d754235c000cda02a33a804e0fb42d6bf902bea2042ac98d87477d09cbcb1d65afc5f59df08bc120cd4c16921df3fcbb663a4457902fe4d1a446d09be8f7d437900260e010fae63dd52b6c1de320a88d2a65e2bb150aff7b85bf7d5864592505dde7013a47694be7a217d28e50e0403b767b9657f1e2acb5b32c64565146fd1ed2eb20ecd3292983eade516a3826b7661ab5c0090bd1d148fb0a7ffbf0c8f24a0a3acf0074754aa965816205e409405463b8e7fd9d3edc9311b195dd80502a15e70a1ce1462f42ba840716b2eb6b26b56ce484cfff81d61de4992ea08fe8e2053fbae830d5d23ef50133bb8133198b39c8c2756e525c994ced2fd1fc7bb357d56ca0a621d7cdbffb5102358efc644b63e22cb4d6d87b633873d36c12bbff13bb49fe6147d7618982aae30c72e98760885675389f9a4cce4d2ccf6c7a35389f5ef9c44d9daac546d71fd073b1931bb480c6ae7d6dd7bba6ebe3888102440f0b03f52bb9225e9aad27423f64d922981c261ec830e23ab3cce796abccf75467ec124b29f3896b94f9986badcc17b966e68a3f54a06d079cf389c6f4f135b126f5b4c3735bddd4ace591b5756dab8a90f22d199a42df6e4ba43039c861d72a2d3d6c0186eeb1f326993e86fded27b1f0964c787aa4e4a073405ec038717860c4d24470b89bfac8704e466087fa442658634882aa3fc98f68fdf36425916786cb26cb9e971dc2ee0dd15b3dc65f4ef05d69e27f2216ff339ef13fe2acfd99286a2dbc687fcd9732445c0b414e392b36ccd2192e6ba0b56849b1c1d9dcc647df62c7c81ecd23c677c286a1d0bc45681a218934ae21ec7a47d121906b62988939d8a888ec1767e54532e3e3409800077e90958e55e18a13a058a568347ee1e4ed42ecab2c48d2367a9be23f269e57aef0b1169cae80eee4eb85c010ae2af910866b41cc76d0f1892eb9e43f921446124694db6b6719c1cfb1b0d89c4013fb2c7cfdfb7fff302685667056f1fcb52f5d229cc9c164c9f2019e4e4cb8959cc7f908ffba2c9853e5be419d86eb4acd6397664e0d9da13b6799dc790920633894ff7c2c421e19cffc73519ef30e8444c1c341438d740290a4418148823811ef24d3cecd755d15d91ac3052fcfbaf08a3594a7b21af1d37898e13e15eb6ce8a886b463aa072519a75aaa22411dc1f5ba01856fa97829c2c077dabd4fb4e0e039451122fdc2f025afef5f0cadaff802133286bd60e6e626b577918947e0b769e2b966d646ee7ff967d6a12189be34934f0cf56c8e3dd9913a5e11b569bd99db485bc4e109f07060f02cfa9d85ebdc7b4ba41177ab21bb5891c7aec58f789a7c6ebe9436f89847a6fa243e4dce890711db7391e3d9a4d7c8eb693592ae8cf511b466d2d3da4cd5e4a8b2c0af652c1652e323dd35d7d80a6beba24c9fab09b3c551883b16f361c50ab7f6b30e87998c18c881b2f83fcd7af947bc58d710dbc9355033540be55acd18bc7ecd6d581f171b3071b2125904662708a986eb13c7d0f1e37bc7883f9b68932026ca20bd5d0dc1e1afbc952a537757efd23dd621785a1ed9e243009c33665da2fb39a407c7e9861cd0c1fcbc53a984aec6b0adc3f27d091d4bfe36dd4c09892b83e783406977a6d9d8dd560ca0238a631005311d77db55a6d1b215dafbedc1156bc4c45926fa919632ac5b4ebfc04ea20d457436502ad8ff6bf303bebb608b140cbe123af7942bd75f2305efaeb94e524e62524ebdd22f01649504fd07a8af2a3eebab746a752531f60161df188eec5515deb35f42fdcfee61f7fd52a955212208a0cd5ea9b709f3de84b3ac1df59e23de6ec69198566e98a0ccfacabd16a07da27bd7f2b7ce7a95f0f856772a3657bee9a940e725259b2d6b40134478b05cea1a297d459f648f6bb6c9367da751b0ac04d43cdfa3b63961126fec6e610c725854de65bd0d0a97a889b4e33e436b3d5123e013ee48e49dffe89e615be6af4d4465f28185b04a140c976c40882249b65b5d35d9d00360d78438c0002f53bad5b573e53ac432afa7b4edf212e4bb6dd52d54169f0edf608d19392227725935639d6e1a5c39d9e58ed6b8525551c0e90bb6549a0dfac7b2eea4030c4f16c01685c51218b52f5d3b67d178df981ef9d5e2a1143a67a96ac0a495212f32ee345b3f5c96c314f1b0aa975e44d71adddb362d2a3248b39af845a7353f36571d771001405993d90537660a1b95a3197f8a62aff89f8dc89ac06ad9e4499d05119329d4021839b1d889cf5df20cc5a7ec5db1f8732b322ad090685cad083c73f93f0482c847c5665dd4f3dcfb2d49c425b00212831874ebf9bf85951c8cb92560bb75053495a9fe7a3378ad8b67e1a470cfbcc2131be977d2c5b713c2cec9d868a3533c270861e128a04ec687accc399a6f00e82663b8f5a5af2e6e992f7dc8dd3c3abd2a282366fcd99b9eb09f3f4dd313b66d7c38c73fca989351905c5d3304236717a223df379711ee510a55dfecc90dbde758077ac082ff51cfa32f4660892b4646365a02915e0d98984d27a5c75ff74510234aa8994c19b613daf428b041ba6f1bf191d28a29fac414a84fc967cc3b505dede0d0c8d58ecc56257d2b8a4ba2b0e09753c0e682f08c53b8ced0c3d5f90562cb69707d4bbf83561cfde98b0f45546119776a2ae76f438f6fde176e681a3d4a24d905715d4041704700a8db819edf304ce54bb968703b87ead620bfb81d8666a02e2e22b783f091c02e19460dcaeba9fab1543a866272fc0e234b22ec69e2b8345426ee87b1344ba0d1bd708408e121142285ecb62447ebd55fb7367199fae29e89ca4b5d041a49b2579830d1c1daf0cedce5171f44ebf86d5e9c36d1b4d5d6cb78d38c0ba809eeef07333f895d78cef093c8cc6cb111b75dd727429f14dacfa44c58968211dd609b4d23b967ac2262d776db75295b23cc86fe0c23e976d97d8bd799e4a4cf0a5ac74e48170103ad8d1470ade9ec91deb92cf751cb339a11e78cb07c42428656a223a7dbee7baacd9733ba0b12077d532126e5fe155a57423da15e716171e4ed034efa29224abda2bd642e4f9f066d918edde9f466317b14d0649c09c7c2885be950de3ec3c3457051eb8b10e8de106abd12ed966033e6762c8e6fe0e292fcd9067a559cf98eb1ecf9345959c9bf9a2e71b39fb47432abbabc0978b29c3442dcc75b6182072f4433ad5d7027410511fd55db62cc30e959b70352428853d27b1ba264685f2e87afcc81a855e1ec1b97054ce5423380606ef596a7b32958c33b7cd8fce5a97868b0cfaa6c4bc37fa0731e07e4c815917f7d63ae211df7d00808fa8c687024a665198346fd76d0237cfdf2bc2932784a3a1f7df0ce9f090214a1f4f6fcf5edd24c7f308245081e0cfb2b6dc3996826967e2c131dc197b431995e0f2b84e5a26900b9376aaa7aea8668babed105a3502e084015cc63b68ada1d0bb230e59711cfcc68d9df3702c751aaf62f25f5aa356669d61d28786f030f3cd478a72eb8e033e864f65e166facf3f7732abfd471d12bc0af489ac9302b2432cdf73434cd89b6a77299d36491f0ac6f6fbc9a4816089f65f237333daf909565087c0cdae28a16ff718026546214b388315d0859b3efb943b8af3090d2cda3c09c7896f155e8b8f9fc1f2539693529c9cd90475e51044e8dc227c3b4bbd5cb4f8c9475a551ab0484683bdf893a73394a123f2e44d4940caddfdfc275661fe92a143a408a86ad96ce1210c05bcbb1788eb75f01484543e7e60d463e8f001e3b136ce29868de75837afa1ee9b96956a72c1b42a79ee593c797b667e78ce0197791a4b2550cded68ab4a2f97d9e1f9ae76b528a8ba9711150a1d58a3271e75ea957613874c2abd79cc195a6813b5bc0b67e378432d76af196c3b8db78d6c564bcdf9851e807c08286c413d0a339d8db0c36f69b3202cc1620e2b641103c3f0bcb10d07822a11e9a07cf1abe40e899902c516a9df308790bc9303219f0173c6e76fde739a68a732bc801fdb9f14795c0fc52471a7839e0199261d405aae12349f28f32ccb79ee5a56efc4c08c021e538471d901ca366ec60112aff18721f68fd4f03ec9ae4071bf0fe8690efa38f6123d02677ad3113123a6c7ee39a3e517a38aefbf41559da17c59fb0b1d620cb130c2762a673ec0a71af363a474d83850113d63fb49476f42c738bba4b254aef880642b36166c06732f10dd43fe5cf27d8691796b1deed8f3a7fb51a0655a18426d17d2d5938f08051d6c4d74c0ea3369fdf32173f0caac56144883b8e0762e656edd6de409e447a74ae126f8bf3933b13568be7ca2abb74b3328bce06faa4b81c3e6fee4aa94a4f84f4def55ecd329db0706b5cdc0f459b8f2344f81f4acf5218dc89116d0335738fe1695213dc3b19d5a2323abfb5dd2ac05ddb219b689d58a3c881dd89fcc59841b8b07c55da97b5d00620c4301b48cf019a7bf11d4c2e21b1bad9b10dd377a90667be9ebe4be23bed877c980e69fb644ca56d5166ca1176e690676689455aee846d16242247713720ecdbd368764569adc24455e4ccf4dbd3668fc0a876f328d311432baa2582774f64f086290ed660e9f931e7a00cdce66aa6e18ab981bfb9dd0e52c2a80510a8c97fb4e2a3cdb014d2bab34be51f7229bc275ef54c9816d52c01dcfdadfeaef8e961aec3b87fce436b58130f31ec36b0aca71213c79098a63a916b8eeb3ef5ab374bee20347d9d9c3a9907d40e9572cce2ecd34189171438d01e6a5d2cd0224459a14098954b052228e897a1d4a8369f28f8b2dce9c6f39cdb556bff722dd2a290b324aadca9a60489810db5c03118e47e0a8f057e85c722cb774ab8074348bc3df9c8792c03c12ebde9a61b06d05f5fa4678b08ddadd2fb3710aff482b2b141925cc37f7828eb1b43f8d579542871b388fe90f58c73b2872214a1e3a46238849d95e8b6886f112ed612384d96ac238bcd1fa28732e1cc53fb3b886edbe9262642e7c4d2dce10125ec4d5b3d119f036844cd9979e1957bd78cc47f16e6296cc22f63fac8e8f19482e9b5258a973d8eb5f2c7839bb4a6eb1c0e6110ed6e03e0067a562b8c1bf61a011cb83946e43b8f42b54f63c42d0aa228034fe854cce1073b189f5e79942906fa89621b3348ec8cbbe36158b0de582f65c87ea8485db609383e50b6d8cc81e3aef80dd944ae3b164c61c3116829d66e702ea3aa4399a9328a14054edc2dcb046d6705f31baf136fd5221ad75608c67b72aee2ca4550dfa56767edf056018e680884cea0e67a2c8d653e5cf395483a789fee246d035014596eea012567651882035c80d830ec8f7ad59f36487d4497cbd85258ae17497d06a7f5b0c4b846a5f2d7049df3e9cda258743a6853544cc91e3a1d7b502e64d52b87aa809880c4e27ca4398eb335891e871b0e17d5f528219a5e140bd8a47d7accd4821447dd98c453414d3d7cc187d76e3d1d1befba5361e85a7d907d608fc0e7b0bc5a75be5ef3451b378b24490ae1473951dbda8064060a166420940610c389c57dc0625fb8a15516e63fe250130262e5b7f713976c3afac8bac7ef68d0822094f750ec778b29f50d05f28a5d2d108f06c6bfae3eca8d4c0437f28d2456a3587045b3c51f0e07df51fd41a4a1aa1364ce5c46eb98a5aeb62bb14038a5a3f818c5642b544bbbb4497635805b99a3a832f0ad6e616241b5eac5a278ab86c3a78a2667905fd4a0bdffa99208a2e310704f42e85b3b1a4ccf077d0b999d34db22bf56b9b98b520c43ee513a276731f26a64863a66e7f1cf29a3297b73f08db443a710998ac0a73807823af0b00a979f864e68c3c1212b864eb97cab0fa95bde6c62190c36771d44736deb120787f3183033cedfcc9c1192113f7cbfe5b33356aab9de56432a79f82e7247108c13571d8e109bc3b53caecd0e9645d62694a01169c13cf19a6b0799a1d4f5d75282c6b5bcbf358a7f0e4951c09cdab79388291e19306a6081c36677dccfcd584d32439f39ee4dd5f6d0dd5df6f6933d7e40f70d690ceec437cc6b075f8609d44002a473a6fcf962b492a63ba0ee4649951a3a77a2e938d4936c752d226ae243fe570a80d0fc32e6deb3b6e59bae74b72d8c00b9009c9005ccc7d458892d9bc76bbeb939d5d6bdd60a4a8c80fc9b6d19b09a1e389324fbbb6fe11e9e6adc121a773ec7da63b06a1567f5e6ce1a06bd6f8a10e7227c7cd60ff91be896f72e5a8e1a9a2eb1288bfe138855fa6cf0e9f5289f4be6791d69c294c5ce9a51a9f1bb2f162bff9a211a055ecb5e93901c707e8ab2b1b0692cc1292b7157806bfb06c86cd9330d10aaf6975ea0b5ecd1db47f97ea371eaf6b7f211eade6cb7acd15bc06faec1f7d7820a7c5b49e55ea0007f5980b7b19e45cc633e4639322f5e88330622389d37852fb1ec170402783ac113c93cd521bf53183ae7574c1877a0da8b105bce089b65dfab574cc8fafb676e46cfc85017fa62cbc23162bb1d4fd8b18a20ae2b00daf70267e0eb2ee5238247ff8108af085b3637611938e4e211c7dee10f3fd3e83f6ce2d62538ba6550469bc1f26a15e5ba48a26eb2801099722ef67dc7ecdbfcbaac59c9cb7f327a749097df3782e21d8cd19fce455d1ecacac6ebf715ae813362e8be466cf7fa14c5462a20ef4286372e9ec70f88b874b1e39ae42615949aaca409b6d7357326f5f58bc90ecd4d52bc284d3ad8417430d927fca44d0f44dd8b6deba0bd19c7298a477e19b3099bfd176fff43808e2f764d332cdf5f6df50f60fe2bcc911b9021b6e3100041989094d609843e0303742a8d1dcb7036a054e74e7ffb03940195c0cc0fac40b245989b0d8176c5644a17bae585ae55729727f64724846117edb724c5f2edbfc303188cd63ff32074ff7dba86e2c00e5b75900b12fdcaecdb57f566f10b4c7f652069b7327a1bae9db533e2de01562bbd376045d8cc15b748a9d08b0b87bda444ef9957722bea8f1023607845d81adbce67946a9192f2ca605d2cfb48132b2f157ecc7645cbd7a4dba385b1ceaa9ed7ea0dcbb660636aecc7870050b23004bb24ccbcbfea93c0ae96c579b02e50b6f5e9efb1186cc539a7471424f8ead3468280d7c7b25cba8f95123d0e5f6bfa7ab7f073072c68a7c8ba65d4b1dd49147660c4a7e6b347384291d8e25c706323b3b03c24e5d6c406d90df227e5e74c2a1fc2e8c0305b4d0fbc92335b06ad4f63c9e96cf371201b5e20a4179a06609422b4f3196792d9995c14a42bcf512b97c42f749f6fe669a5e490bea231a3adef93eed834df3a498f945624e01a2a9e7c94c0ed26eeff5d4ec64c5ddabfe111a2174abee169e8901bd60219b489a5fdbff9e2883c848a2d76925942f49eb114f587d17e5368195286dacb14bad5da76243a81078d243402b193cb0cdf22695a03fe8769c3627001ca29cd5ba94aa753b2aa38ebbe9dae33ece02a4f1273db1b63d176086466f3f5d9c387c4536134f0d090b0245275e78fca5f44948e8f148af723c0d80b64f25c0b2f2e8c0927e21250c083d3313e9ef9496c505411961d0311c571484d030b92d2d3487582498529ba8d8deb27014fce8e3eb64a154445c328b0edc9d0d637a7b15cdc744a6b43207b5224f0c311a17c88671ba60e4d20f186b67582d5216b5c2cc90dd178da08e40771d524447cfe049919b37e5b564228edd48c2ccf80eadb6bc590f0c7e0eddf9bee7c9fc41eec9e2c6faf13fd7b395492094ea84370c9843934e0dfdd36a46da300d61200d37a017d9714479254832e8bb90f9afdf3ae5acacf65cf2d3bff1d4c69bedd52f7ada60ffdd306af16cf879320c9a6164c6da8fe0fa89b1c941cc8d98ab4e1fd6ad15dd0c98c8698ea7ab5dc5fd7df55780b42b69df92896e5a38d2c12a5211bb7f62c3e7accb815bcb37c6de3042dc142480fed5017766e609009b141de230271f65e7aebe20a3721b8c8d4d6027ce28ff7921e4d43d6f9219bf81e2df2fa4e489fa516bc6c4e9ad250281a1a6615c4aaeb4821854e1baaed63d5530161c415bdb253f1a0bf228aa0e8ac357b2d0a107f77a00f02832ac9227b65fd241c26f3aaf76405367ccf84da17f9cb80474a099c4399620348b81b5147532608d2e88ec601ac4d6522ea8151d34539ea0f506f6d06af3e74b4cb650e72a1638d1075a71f9d2396762d44096360d61e52b61d0fd643639e8195f9529b00ba46dca57054c8125d5938ad082ad9c7f2ab6de3a4630dc5cac185f6f4dfbe3cbdc2def859642992e4bdbf64b870971ba433b65f2162e3aebae0d03f42e6c2d4e939a6a241bd2e8abd0dcae26d3332fa470ea8af32c2c37142ed10a012e11b8c87194ebc663c65d0d2cd0d563c48c8c2b709091f0579b3770e37e57bfd6edcab74abf0f7f8954cae4b2d7eb088ea323b8d771f9e7b67a98d897ad041f03a5d4e55fe4f8245b4892ca893e0af12d15597bfb0521ab01421c13f53e48a0f8055d86ca82d027af53757a4df2b850dc46aa8f9fdbe534667d1ec47c5bfd756c19b9d6b42d8ff1880018f4a4048e18d09a60aa93b3f85e80ed465ca6f818020444b147d08ea7b29700ff7f830a52a232e4be194087c750dc90776721ec2da62f110f60207ce090f39aa257089678dc8f1a694b2b0465c615569423aaf7fa9d767580ed60be5b2ccea59e9b456b330ba33de3dae225fcfb83a2d171a1be432dbe64ff657fcdf061603a7dd87e6d37fa724c89af4b2ff018cca5a645e4017ce9cdb8669f0d2d8feaa87b644d4dbe61286a9a5d68a1b2dbdc46281feb4db36f725765f63d872fb8253aaadfb2255befe0045b89f954e58ad9466b08e5c8864c34652cfe8bcbcfcdbec0269510dc3b599e31e26f8100b781acd6116a9bfb72c7bfba3e85944f60c46de3c74aa611bba432a459bd09651d62833d7fe832943ac3bed982562529b4f32fde058f1fec62b2672791cc98ba5007eb2643949532e6729fa80a061e8cabc29d1506c83b280a8a04acc4aca355c3fe0f9b0df0d7b0d7897b159e8e6d4842e60a9e42b9dbdfdaae05495aba8e49bb39f04339f8d4a6640581a2fd775a950c9282eccee202ab9eb89fdd8e37ef401d8bb5e61edc198cc357be6f9b6a1f0c19fdf8f0490f9ed7c743bef4493da1d0351da5a5572f6c015be5f14035e987957fd8b4d74dce086ef963772a15a97e48e740dc1092aa583acd3cba59240b272d18272df4015eb70ae0c42e442f28570757442dc887f534b2d37a7729937dc3dfcd7509ff8ead5c75686ab4b3781e837f558858d5cd406c5868452d870451381258199d1a1970041a6594defdd7fde307f5c084ead2ca6c46090a78138add9823c0febec08eeecab37126888a8c8321b0aa19fc872d43e22564f4422e0c3cca6a00348bb70b4040d22d35839d1161b1b09564e40646b0e3cc528c9f7dd0c720f1b835cb37678f6fc0d4f4e617dbbf23e70402b2077317dc37d4c6ae81f2f05ace1dfdec63c42e5102468ee3387bd7bcf629da6e1837930a0fd71e83724e37fd183fb911edc5f3d989bd6fd43ca836cfb1442d09c1adbc5f0252a30b0b402e89efabe5eb6a4c67d48c10d83286ca91862a0e7027d67d3aeb44615b14cee28f4da4b35d8bab15e7714400ee7447a42ada9792fc236745258377ea33b99239ce7890787aaf6d035b5982ee86eb887296474eadf638845b44233a0f83547f17a77acbd5830b1a0bcd900e6d2d8d58b1219a806af1cce0b709d9c131b754ada46260bb7d8ce43477e57a19d4e980852d4698dc2046329ddc04557a467065d338b75530f8f48d773a26fed24dc3c7410d579342b523b6cf3574fd8264c6f2e4a582585ae8ea3b83db703929698a5294e1689dfafdaecc68dfc7c1f68b117b88cac6e962aac0b9ec82a5497894eb9ba169e561ecad3fc2f9feb13a6347cadab5c2f84d142e2206a23fb791c304040fad50b7f52da43a147809d94c03a99f5ab575871848c3b9e9ad9e40b6608c6ed80016cae8c56bfcf594ca4704ab16794537aa24841b0a6f540d74cf0fc4056fbf8894dfc746d5c671e90c2c04e785b9a03341c034c5514210112d16a1052464f7a1a8cc7b03a4d338da1a0d39ad3395d1c5f0fbea1ada6b33c338b36dbf039221adff5e8655baaf3286ac3ff2709c852bc5746f0fe055a42555e09510fabebdb7e4dbb60a8abb40fbd120f5ec50ada8549856e46299aaa448a50c5ab609ad4f420c5a05658c0942c2a95e842a8b27f82cfc8e33bc5db715ae69fc522a78500af85a2b705a22daaf696c206fa605f7832237af8e028f8acb123e33ab7c0aa82063995e88b3f08d78a0b7490ad528a05144782d4b5c136294719f231f424263b9f6384327e5f0543d4aebc33e285676746343ff7ef6d70bf9f54d4b2133bf27cf74996d934ba577de1352200ea299ae02a20cea7bc93d81ccfbccfcea62516614bd2b8ea276f21a56db70f52a1958084fa19b3bae5c31003f64dda7117d1dc402d1cd5ca117a8f1b461fe28bcf193a8a997fc604a363f0b89f46ad51b9ca6c9acdd1e0ad2294f89b053a204da2232fd1d512beb81c7eb467701baa6e30eaa3523bf9108ae3ba7add1b6d17799c457c072e72148f36a6ea3988fcd3851ba76f40aa509aa4dc8117a3d1f826d69ad183e1bf397a3710f81b2d556af1a1720406821011705ed026dd7ce24f750ce30229b41a419d2d9ab4033bfc6d2af12aa9caf918aded9996c683c5913d63dfa0069ac29a92c9f58cf9d618e7e33547b06ae4d34cfd4190b4711e0f2bf251206251fe90cfca7f711a08f9d43b1b323aa4719bdf716290cad9eba8a70c4c05e4f67d606d378a09eceffc1def2b48ab466386beba7e4b4d6c5cbaeb96d6835c77afbf6c128d91c9647577ba67c5ae55eee2ac5d959b999ce339c499653c679e0dc0073a60c260c3c542a49ede3fb7a9e1230e46f74c7018681001e639a47fb4b094f4403298f008ae6d1ca169065c124222622ddd91accddc421768852d3043f0caa758ebd410ca3cbf944a2c2b7a37a6139c58e733917425a2b0d03fed5569df5c2857c18831c91c713ce6c295c9ad4f0dc71b8e7cd2e9e13a3e13b06eebf4b08768296f95c187821036e5626cfeff49b3f95397aa204dff7f43e26e16b3144c059700c2e3b08152fc08d59655ab9f282fae729ffb15e7492bbec94ef1912c252a122c1ad80c2733e88be03e4c86fd366afde4c19419a9626dcf4a6706ba62f5d6997931cc2fe5cab1cf43aa8efc2fa0e52174672415c13c4920343522198931c6fd6520884785c1019630c32bbd9799990ce2cb3f3067818a4b0b478d8b38aaf3482b7cf5175693a0d7eaea5fc85b2080df035dfb55a9579517eef9ce114e37af50c30612ba72854be9ca3eea254d35aa0a2e359dd0edce283ca782c0ae57da295a5252bd6a4e8a1e6ce2ea01b997ece2988d3668ff0d05a21bd76c2df93b41431b72f5aa98251103c1ff7acc876f31a189b5c7751e83e9512ef75299c433186df6ed9f30b1ba41b5ec79b2a48255694596740583904d76cc91ff02d0d68293196e11ca86e6f43d27529cb6cf1e85603e4512d87595d7ced5dea534d50748c025120c011d3c95ad87a8fbd1f1169f708adaa824f8c15613e76e3675ee378e4e31b530d3380f90de9d8700132cca3259519e55451599a226432da5a93dcd0faf9d783a0ce9aa5039fc10b671e65aeef307b643b5327c129fef2505c7cff90155a7826cc76d262490db4e32d3aaf3757ad750e91c5d9a15798c8533b43d00228f77e1b8379a3eea7ec1e80017e19f0e323b39be76f3c587f0119342e158fbf65d0f44797e94b049f613844ed8072f74cdcf7fd4931ad1a2fc701ae001c8a97e731d0d25ee66afcc5220ee4e1fd154e8bf64bf41def9a08bf6b8cfae0338f5cee49dc1534c194452f15df0d4174e6c3c4726c620820af53003ae90bde6de9a431e1d885db3ce72bee8942865e1f1273b1f25bb48d5ed5ff1fcf2442adc3c7cd5ae17677c809f1b5a40d0066c7fb64ce5cf2c60dc6c0202c2cc949b8f8e7b411990217d1f49fb97d731a4b4e8695c1ee7a8c9b7f0d1ccb8029aa51a725f43126a9912a72840075c598f184aee4a9327927765fa401962dd5c8155f14f111a492324dcf54ca2704fc448dbf904411933f9fa7652d61c573f57c490ea09315d4f3823c642bf5214e42329bc26f989990bb1080d72f991f2716aaeeb66f4d54f88151cf8144994fb5d63091cf1e18feb6ffa72b34b9b8a1cef51892a3da785eafc7df9b8f2d063a59883e5996c24cfde45e17d045b55ef30f55ab4c50a38445ddd63b8be4391afd3bedc6b32d7086a26f4d962780bea353ea266a452e546ae06ad4ad10eb640ef369632a9031af5364c8d26c8391d25c90d1b32eaec8bb6d1af85ca3e0a53d710061b19650bb987173f255f743ebb689e7ba19e19ae345d3826d55427060528e6778c478b2f60a8ee6ff82faa9fe8cb25ff6274e058eaaa8811128c7d7e180c3bd07e11335a307c8645060cc87a56893fb343545cf768865dd770b24fdc4f1aa3cf9a218a34efec6da879f7a8bca9e7db599c7450c1b47b10d9042d3a94a6181565ee9d1a9115860c22f263f46eff4e9df0dca6a67bbfd46b624b9ad928d31ac71a3a56651ef00a1e81d364b5fe3d36061ac93d04a95db2b3afd84d32e6f35bd13655bfc6290d6e523463dc9aebcb6cce2f228a4de1e328fb855ed52971090371337df19d6f5f7efff870414f6e93f40caa8a394c06bba58c2c666361d36e51dfa43450b07c84b91d1f8a8a54546598c0dc8d489ff292be7d828168841346d22d102551c016a50382bbadec4dcb07f020913add0a253b5a0083a13a5fa521343a5d1f9afaa9850627230839c4ec006f4e3ad41e48236d5f91c1072935c9172257de2d7385279c5bb6951bf4635ecf1ef946425058d1a767206462fed7a92d9fbff0f093988a355eaff7e9e40fcc66b5a1deeb47f37abe4840492164d2ae5ef056929f5f1362a84847c83826c8b72deb6cb9a5b6cfa6cde0babc71800d0601f403f6dc4d3ef8419ec55bab19518bd157280effdc3050653850df78dd2768400dd3a386f758b7a51f95261c4993702e13468c2e6d270e5b2b9f3466bf51e9f4300c4ba8dd043fa6e1e7750a51451bfab159f89b810de9c6f8d1c4614f610f336ac6a7dfd9b2f86b1f20c45e9e6e0d6fc92eb7852142dd3fb4ac4d2b7e6357722dd7d09269938b4643e5c64c6786022224e39b0818b57080dcde508bfb259f533688d1eb7bc772826b6530268a04e7c3f7fda14b3a5474f5a3613658016897f1234a0c8a7764f981a0502790296a7103f433a0971206a1969921d0825fae96092351abeb3d1dc269b84fb71b8c9c68f92bdda87f1bfcee5b67d134307ceb14f5aa8e8524dc73a0602d8256e13bf6638a6e9e3bdf3bdd4002a927c8072006389d201fc3716754aa4151d026b8b723ae7e07f1eaf1e2df13631fe85a8df4ae3e4b6d6b42f9f358c0c2bc05d9655abed129e435659ff0e5ebd86f821d78a10e2edf8980b91da24e58b3d255489a52ef42531815c58a125fd39a34f4edfa150b4b4dcefa0c5447ea9a71949717cc82ae81e6d6c8a41b5b6380884e6fa3494dae131009211ebda8515c5d2e44425680bf5effa28dea17cdd2a667286d85dbcfe2c82f54d56aa9eb0223a29ef0bb2abfe1e7bd5c519f3738abc7e9e4f6bcc704a09c2b2fa74b85c39ba6661194019a9094e943481a638de6ddec9841ae1228ef04504ecdfbc935c9c4f88b5743f1b3c4476ee2cdae671b1e4abf67b0807cfea0a42e96ad615ed71ffe7695e34371851101044548c189b9a29f8f4b4409d953b3c0a86645c74c95f1c034945bfdfbcc7dbbc5706b6dd4282dd3c103d4355a3436ea5e1c953aab62b0d9187eae7ba145a74e2cd0eee8b1138b567c842b3d71c818816c852be52cfeef0fd7eacdf5ec2e185d2ca32a11b343a1895a94c9b788dec14340127e0ead6597d60ca0ed23d825c20533b1463d34fc9b365e8ea389d1e544370f4aadd084eb8c6328b4dc706218ac52de67bbc7778f7a93d781c8d9a4e92326d99e5edbb087cc308e83e7dcbe4435c8ace36fa0bcbca72de00a87aed5dfcd2824000f9f47760bc9240ca3a158b61e835e952111cd7a06ab93b81812caf7298934c9a49d59febdba2c58946794acbc84d024b1833d848a0d09c27f7aca861e857e5011ccd3a149f84e5c0ed6a17ed8b04e8f195a471ac711ade9acb5071ff9db4c12b9673f83efe9ed16af4725de582f68dfbd1483cf3a3e72df48e8a6d7dd3a872bcd49cea6c8b6dc0cf0cc23f0dc9afb5ecdaa19e20a0f73d7c3bbd9fdc9df7e39fa30082a735e8abcb29016d4d061e2e8422cf29a66a48efba4fe5c4addb8bc489fde3a9e44738843ca044cffc7a6088abc097ec2d0b632f937e0d9d9030509bbc0fd59d08132e16ccbc30f9cfca5b79bbb4f780aa255d40def5413ad9ab423d5f0f81dc9e33ec9a67d350c213c3322c3647b5fc1929fac06453e4b3c371479fa8bfc93f1d06981c03358146c6d7685427d250b68f101f360fd0540b5ea8691b22963a8177d03d702275d15c7603ccbcab7c2d26fb6984aecc65749daa055c557a048b2ebd38ab3d9897ddc2b61f0b60d140bc647f41c29651ba62e8b1a7c60e3f7a9705414333dcce1d4765deb0d3bf009d09fc3136866d9f626fe7160f6d5b955ee96fe8e87fb3580fcf63a1ea5c62a2218595b2cfe25a1eafd94c800f63da080756781bd856d960954211077bfa3c9248fc250520592ff45bf511cae3261dec19cfaf8dce0019879bf51d07fdf830438c06424735605dd999ba8fe107e25288652a50d05f0a5ed6f4cafc9f6e34d55d40ade5e9900219d60d74b0041e5201bf8ad19e400b5946baa057912ebdae509f2f9e9dafbec0db9331b0c6f5143f51d9adf6dfb3d25283f6ac350096639fb9d8573c01234f2d30ad0f726a491c825dd14f451ad9131e100e376199494a02fbf831ba159ce8252186c8829456a852fc71e91788d9980d49e0d09fe4a4bc4e47fd980eb6c1944f7b04bcde623c8b697a5541478fbe646ab135d1f9f88ac3f9aee5af111ac3b2d907f43358458d2916b19477056693d278bbb4179c70e9db4eaf1f9289359ceef0fa83234d45244080da7d17892557e60f3463a65afef98a349a6e1e73792b5aea5900f847254619e36ef86b7693458ea86b0d5c6b00dc9c263375ce1ca3aa8f20edde38fba0d5aad2d171d1243e8c8ae68d1e6c4ede623ebb91b48ca20f07217342f4adc70078abc911fe695899d2f9d06a7341c9e060abd83960ee56a8dea4e8e508ef655f00f2c69288a4b96578557ae23de602763c1bae6cb06168c786a12ff3ba6c81ac31eb21f430b277361ef90936516fa72e5c5e30b0ad6c1cb09a7625bd246aed61ca78e918da6b0e0a332af1f705f554622af71e2aab5c40468455c1689e74957e1898acf260e82923a24f35b5e40dff26250d795f2f6a4c017ade93788f28b28c0bb944481b1fdcf676da182aa12cfd2e3404b304fbef788dd4ce3e7efb94710950294bb2086e217fd8f3065fa56d3498c4b8f736c095e2ef67ecde3bde9f07285d16dbd8332376fe40e838015893801b2e58562262cf6d2fb389515af62906dc7e785fc5bbf9cb10c0e1f9a641735bc72f66280f37452d28f5036011945f8726e101b428041e1531ae29c16f89161f79c69457b025c317009da8213395898480f14737a2632c1973b824fd3fd4cec6e0e08f7a33b455964e2c4b6a5bf219d1f804d8d8cce27d6cc225900947eda75802333f921cc1690e42fcbb7d2d96d175ccc650f675a4c1c5dbdcfaa9f34ad43a32d228d3a6113265db4bb797c03733799d2e62fd8b1fbcb6382c3fb8623fb2c60af0c0a96db8313b1c3c87f7a19ddb75219162b3fe144ee9c73b1128e0081abb106cff020c6b97bf0877d07e6b90df85c77cb034f52b81dad870850db0497709768e7d3bf2465829d2cb9eb131f4ba7096114cdf1036d6a07c49acbc4e940f2d5446322747531a8ac6eb3882ad9e699d9a2815dac877e75b4135ffd73aa1e2c29cb6eac2accdfd3b0f803d3f902075bb3200fc62c48cce8a2225da018eb74b5bc4a4fd42b0d13f1289858e6ca617a05de49da414330037970f6a06fdab843bb68314f81064c0e26d57c9c29ac6dcc1b73376d83366a6c300d095ea86cbb55fa73567a884ba4c5839ac614e582ce90398994432ac8e22d0682b8f829f4b33d6785a14889bc3e5800e53d6016637e28d6ef1c4057c12f4b508970294fb067c09efb98037943cc236b98dc3b0d4dd47553441a2ec22a45ac49c1256df02b17a2d5cc00fb4af0c9be2c86ca03ba36978c7562117f95de97536e64fb8d94a8afbadd1bc93d4f3a9178ce5c58b1b052e814ee55054358993e20726a72a60d7bea29b2252de34c5020f872295788e4714f2215251a3b6b72607c43f1fec5ade7e79a65a3270f2162d504e0c30b92704f68b048bc9c0e8995b801898f98d86fc01608b65e30cbf7bc6327cdab0634b8b405b61bcb32399611c781affb8fd2e94bfd6167fefee63779af71d0d02a8eccc9e5e8522eb1a35580ed617aebcd8cdd9337da95470d343725e2a96d88fb3cee598d93af78d153df69ecc008b78186ef4013b76e966950d4164014cfbea54be183b42091b5d8f2dbd0544b4f4237c49de1f29e0e9c0f36169896f94c149fb9b433b922c02e14df6ecd003b4dfa48d55183eb85cbd71928293b04cfade18310a04b8ddd6ded9d67f9c310f6efa333f69e61f6e0b4baa5f07784308698f8490a7b073bd0ad827626c2e023b6b499e1999821152a971e0fb9a1618d2afe1f1c39d79e975cf032b67d62d6d23bcfab830f284eebb7a116603a7585bd84662206ab742b9e1091a770e39f8ef06418a2b831557aa95ed38e70e8651aa4ebb74c3498dfac94d601657621118e8d9bc66038074602e2b994c008b80ca112776570bd5ac7e0e7062a245e620f0f8d96235493830b2bbd68d03200ff29f21e4132fdd255fe67fd73b68588b7dd3b25bf0381b6b2fa26d3ede5c9290655a12fa7cd2573e704c6314feb260d9f17e8e93b12185c73624ab73020841cf7f130fb843de15ff324f82fcaf0adbf8c1e57fc2f5a01fed74fbebd5d82182d0ebf848f411175418dd58055536c77698b768839a4555554032e5a7916556dd11cb375105a7fa26b4962aa7a1232c4f716504657e85464174a771adcadfacf94852af49c52118ed5a9baacb51a4e34ee80ce55eef0d96f1f3341671676a4d60202dbf28d34ea628ede08a0821a16348e417983c76f605fd60e48997d11c9be7a3fc6e5448f3840f4df1aa1619aa845ef7d08f8046640774dd1b020d34a23899683930eccb094f38fa87b6ab86d0df1f30374524ae6a591e43ef1b9462ad7adfee37e2f1fea30a19d129c37e43bc8a05fdb69a6010496543d02d1e7590336147f2d725741ba03ebeb1eb4218ff85e59866b5e01edf885b2ea94edfdb882d6a201f724b6583b9d5a0ad99ebe2d13331908eff00e34439f2ff588193f0335938dee34f21b482aa0013c845d273a563739e01e30e2d6bd9e959c24748098652295bd55c84e8f8e987668359b2268e1d0924fbc56dab97e9494db7f0fcd11fa0802ad7e752ae9e7db70551b0c3bb76cbd711e9f1602d9c0210719642b54c34603ddc4b83928dd197f56ada1f08a67561d3eb63a57b880aadddb3becbea60495440aa7eb483a4c6b6b471fd92e41bd6422289d0c3ccc3e3488c251b46e5bee662a518579b44e3a8a76c0a089872c9df81b3770fb16e92505b198640f17ed8e31da263148be6bbb093cc4d2d89702a15e4e64a9e4ea3871c58e387e6413b3018bc9d36cf45bb3f9532326f482f7f77e01da671c76318490a8de0b4615055bb8c0fede36ea942235bd5e1d1077fd944838244cbcb7ec08e161a39cf837f8c37b310016922e3f05f379f2bd1fa60f7dfe1f08d82c01850c1290202a17a449cf18706f0cea9086700ce58eac8826d8b11f4a91903281f70288764c9c011ac60049f0857019201f3fcedfd2f940f93067ec9009b223ba3d2c237fdda58aad1902b3a7a946de83a9dd2a1e71e93dceab9eead0ce32495cc709ebc62eeac340762b5e5f5ddcd056890a42c16e6719d2d78a61ab95980a18a3c36263a5016c323469bde18091521391d89427a5c1e7d74983adddd994bf6c824510416696782d27e6cee0a1e88cc4d48cdc4633846487de21e6b7cc2dc5c6966f568665d5b401e8fb9a3d9885fcde19539dcc9f546c7cd3eb2ac5c6213f6df044244ef36e46c8d83d489552effd02f6e74526b0b282d220e46a763a92e050aa58cf476310a608c20eec081136e4fda427af24dd73cf7fb62477ec9c53e425afa078a301305f7d9f099256c93283b0b4a377e65affa88c054650edc90777b14f197e8367a3d9399c1d39814c4582edee9cb86660960ce42f07adc70e47d42b81926edf4f2eccedcba0d2dc3c107ae7e1d137e10c42b5d19a8ad5f16de60538720f6e92fcec2b12c3895022a44c9a7d697544a4056c4b9d89222ba7989343e0d40cfb70cb4ba196c571563882d778d803855e930da2beefeb83a81a12d2b69af96e1b6871eb9649f2753ce372f9bd4e53975585ece543722d013ce975f31a11f33a9ac86acc6480573345faa66d22c6bd00f5db21bec4bf5fc977d1ae31ad38344bcccc9a3defcdb37d5bd07f6263c60b14435a8bbf68c820e7d6e6b128788481d779b81e31faa0104922dae5e0fc1ecae23840d0c728ac198b8613c338b0f808884c21733bce814f88f148f6183c49baf3ea7599f2ab17d1a4f192c5b2550c96d7aca7675279afb75d4888f046dbdc7fc7285bc59d586bb33e4d2ce49676a4e92e5bb892853149e6ff3b73092cf33d5a8785f73e01bbb1025a2dfbf5d4f1738ea55c2f21232a7c2eeeded1dbb9892396600de6c42e9d15f1f313e5bf55af4ef3d43473265937866fffffc45eea1e217d4783f023750c96f3649766f5049b0aa074fc65694eb600d8b3f2a6b7c2609099e533a156b35f87fa730224b8194332c2071f76aa9fd0eb08288339492f1dac3e9571366dc726e6cf0292545d86990d1542ebb1363e0b63ef21e3c20997c53065e3949b766b7725b79306c89f77d1bcbde005143070cb605f25e372a160df27daaba7e5244ca6e9e94c6662d50d6714e0d9ce441e0b00328ffc8613ab60c7a2c5453e4613b716258bc6634961a9d975de145373c641054be84ab8340e948d0bfc68c87fcc485453867f71091c035e77206c1f74ff604e6ce06e3b5c41844958fce7ac0fb87905bc60f7d660a2429fe0a9f31481baa2a005471747e239e25a65816508713f821e85ea23e8c1b0cd52d97740c088f60e03c215e57388c914fc480ce1b36b6fdd4a69620148d6b76629721f85947005922365b3a83308aa52473f8fb8bcca823a6e338854c640e541cc1e175f49007fbb10c0455ae3ad4eca7f13665120aa69fee4241165bd2f43a2ac9761dd022acf1ca30f9d53ab150cfd99d15323ae97035f8061b260af83fad20a8e44460b8650f3d686568790084d90db4bbd39df9e81b32d8bd1a17798899568e3ac2cc64afd9741986e6c16a384ac89ed86e0fc48124fff3b5ab429ff754968206ffef72485b14bfd663b2ac6cc630becaebe752c0ecdebd064f8a0b7d6e04293b0838848ac52506ae8ba98898de99cdf8a05c24b2148aef7cd9a2940896fabd8b244789a1cb48b4dd94b1faca72e9d72ec0312f0b21414bbe8ea9bd131fc5ac874e94534077b994b79a8340bfefecfe998c6d5f8ac938a4298b8ac136225f38e86cb04a7900c95de4e35a3333d6754056d0a83559e78c37ed166fc66d1c65fbc0e1e4fb3073a0b136050b36c966a58f69ea3853561f01e6df75f58f67b3ae131fbb3cd8293080db48876f88a34b0ee99f8e62b5ab7afb059079b73ed560eef072e1af67e5e91b8af0012c7ac650429d434d12f167c02aff6943b5dad0ba02c78bbe7f6ed4221bef79de6ed2bc7db9b18a199271c2b7d7a912fed05f6eebb2bbe7db44ba322469c675230abd247ee190e5f588b173150816d5eb0f406114bceae699f659d1e95fede2e40168d33ef49c2bc544b6136f0fcb74d8e101970021873dc2fa7a6f299093090ef414488b86ae64e1222289b4965a8cda56679431c65cc9fbbe2b376d412df3539fa3cbdf41b8251dd837023e1db85f45b0195dd4b72d942e140bacd39a90666108db8df7bb919204d4be1237cd6d0aae7463487b1b027a9d6e09f945c7ebf5c8ba5347898f266600d2801a12e0827bff6c929a8702613d7a798e89eb1b818d3f50c2c7178360bf487ba2cb52238cbe5bc4a938e3e23b74c33e0986200232d2e1e875f793fa4bc9d6544a5290dc82dd1b0bdb7925c1cc5bf2a7c6748fa8c0c66fef6daf13db1057c978ebfbc052410156e5fcb928a40011c1d2fd30969074f81b354ac2363f08b819079376314bcf283b4fd84dc84ca75933e8f3068ff60ba48a51ad6fc596c0ef0a98fdd92c969eec42658daaff14a934ef9c29e3ea57172434fe9b8036bede61b2df20cbaa4cf8f97002bdc0c99f9157b1ec7b2d2703aeba92c056cb3037a6b127f5820122b4e07ea41af077b1d8cfc58d0cba08636d916021b7d3d1f603b5157a6b4f7af790dabbddd50a244ab838189fc9ac3f8cf9e93b0e0bf3be926f51f918dd58b17f5f0eda77bed613e164bf6d2dade7b6fb9a594294919f8070c08af0714466739b116edaa0a7c7f7b77cd5cb393aa8e991d6a954c9e210b736028407874a1199d339438076e69f37da43ef60412d56fc5c582bf18c39ac1f1581134002c789c2d215a640c719412511f4dd334cd56ea218071ef9f56586d2f73ed4b1f6eba426a4ca75f4dbb84bcd793dd7b4fe802a752a9542a9522fa81ccefbceef7d61fef00aec09ec73bb5255ef37505ee5c85e36a3579db0581e4e1e13cd50c8f93a79b3cdc0f3170ccf650f216daa480c71058669e178f1c67447115fdd002d3ef85571038072bdae7c07df79db9f7fe1523031776a1177ee18c0120084b34b2b4a04bdf7ce1bc325f5bb06c5172c9447e00c236c7e448475daf823e5b3b64fa38fd9e4966e6f5fa7e90f54ad65ac487ac9937204c54bf8964ea58cc1b0b5993572daabc984cabd56ab55aadda0794524a5358011e674b9b2f130421849422286db55aad56ab52e781474ab748f7de6eb953ea42956be55e175015df32c344a5cff3994c547f9796135de5ced8c063b71cc7f1cb069237b3b5fdfc29858f34d2b9ba70b6a60a06d04d97ccbcd28540d48707cf66dd9ad38b36010b481be4cd33917348226b35a94d9f6eb55ab6be917f985812541a269de89ea6d69abc1af48ddd1ba5eb6c80707deba7d3918e880cbf20279129b0cd0e789caee9eaf1cf617202dcd9f080ab8c824815d8aeb0225a11ad88ba15e66bbf5aadf24ad66460ae24709f892c72bf5f023c4c16a6f69b242282d972384fd07c7a280179c37d3f135984e69e289738903a9076f89c2848d45c21c605cd7b319671f468f13872f797c73a4aada41e8bc5c29037ee8345eeaf2e59e3fec2c2a78b5a268bc962b14a059e3fb62cd685bc59e261f81647a3899c0b1021b026e480084c604991add4c8631ef398c73ce6311a8bf568792b08f20aa24449e85512a2b424541a6aefc74624eae1f425a15326a26149884813b32454122a0995844a4225a1925049e865a9908e138bc5a464d9724b3248b6d90becb307411d2851348616ed53704e22f3c6c9d11259d300893a5a39aa6e81a7124ac822335ba1cae354a289134827d5c769279aadb1d81c7eef752c6b6851a3fa8be8bd5e721359d3332d7db53c5e2fb28814c10e79436f1b3159d3059dd136c220a22f47f517b991f6950a235a345d2dce1f6987fca93b7cf121e5146278a445d44babc6beffe307f7174163471699239027f46f212dfa1b0a8db4680a5d1bfad4d0c7eb142042e03945d6147d61f40347c62255f355fe335b3f72fcd426b30939ca30a6ff69a8c7183d3e91c89ae9edf3788ae6d2a4e4fe4ee6fea245d769515151d1bd31538a1cc8408835a5e0011cb01e0388353e1139700b9d85c81cb803c2030ba65e6811358a61ed637e2269b1093084163c2c13d860d99081a164ffce9b8816d56ddbb6901675971af2d8e494fd2786167080ddbbc09e47f183c19f7e056db83fabe729e7099616157da6b448737937782921a30338c20e7aeea8278dc4c0c814e2444f0808026b4f655019726419b4e58adcdf0b378cd17e82916796ec60cd74e0298444b504640dd11442e64008264f606742444474b1f09873219bb14ec6c8407aef9594fefbce412881175f8b45e674058fa712f824f17f54c16313fffbe3f630a4b085db6f6113bf2106ee91544a003f18843c1ac95f0a49e0f9fda510059eefe00ab206268b921ebc4802688a28b220832571f0021e28d1c60e0f625e62b2f9ddcc32ff480a51e0260a4368a78e1118f11d79e3518c745d47bf23de83ac69f7814ad731c48ccdd876afb46a7427bc8a7bfdfcdd09f7e9211685d08bbb1cb7f9985e650a4d2eb3cb2ce2b6eb55fc8a57c9f7de7bdf892cea9135aecfa80b89eaf79853f71e72ef1491b2871e7af0cd67ae99cb632d90b2d6214378e6592a258bf8d6e84aae76b5abf4f871a883bf148efdcaa954fb74cf9cd3db15c20faca8c2d2d16126d193029615fcfd28a992f2969ef6c89a52a6e1484b4089c8fd1a15fa2a0af048615c6d35aaff5e586d851bedeab6d97fb1fbbc39a7a6f1885182614a608c92d29b4a3026183046498f87f91ea113c17c8f37813e4c3d783c0f18a12f427e4361302198104c082694fb4b30174a1894ac8a4b4d92ddd7a6227e604aa9e39b2b1e24c88dc56238758a4bca8b524a25d189c9094736ca19b6a110256242bb6e81b14b29a54cb92c75bbadb58f42e1de7bef7743ed7eeb88b81479699f2b2d4a3b9de42cc141423f184a65649980d22ccbe9c40937bb2da0f0f642e6bd7a70133fa394be4c3b261e134fab62fc679e532633ed98765a353b150974cbe44216a93299cc5a5b3bf6c2ecdc32d9d11dcdc50f2aa35a6461fc9647e3716431994c2693511995d1000b4c29c549e0f1bde82db3db442536f028b334cc9b0a9e58f3c84e5f53d1549c4e140e33e8746cea4c312e88991ee1384debac673d6badfdece77524c01cb8d91014f3a554b8a4cc72649dd32d0019ae216467f5ed4650c1022429f72b81838d348804fd74d1eddf5d5128cb15d0ff7803258b2ac0595b9863d3d252989273ed6c667a39e3aebcbaaf2c618818380667538b4e7060528344f5e9a4051e572b2328848183d99256dd161d0c188c0a52ab5522915aadd6e77d0d6d7423f00049c36a05b96d433037432178946ada4669c027dfae763a5d9e7ebd7007ee3c7ab5568fde9800377e027be5a1547a223e787ee7945ef93fe70c03cf3c7a26c0b3a25162b96a153fa0c0ef7678deeb75a56c71ba8a8c008f9fa988539c4849213993b28e72f35fa697f9864f95295c5c33cbebc71358093cf64b7cf98dbc2ffc7abdb8f03ccff366deccf33cead12d74863d1264118fb64aa625f7cf6633590e7824c188485c5a0593dd1916fa7192603f7e30a54efda74718e36f7a28a7bf31978531dee3fd7bf47853a803c2f7781dd3fb7828acd17dbe083be0b1331241e9a8908a91df5456bfd76a1509d68f5f45230936cb23094682b9082da39417d83f1506a6dd97ce68f478bc2920802bb0841e60c9ea5e108238622d96f4258e2a000ab0bf8e15253e50393bd25124294747ac1ea14e488a39aa006248169420d69011c9ca78b55a5e6b87a75572ec8c3c2a1905f8471578ec8c72d71e18ad469bec0f53038f241849d3f1d460f530bdfc66a8010c3c4ad29516612dd2a7f5abb6fdc63dd77de7bdf7fd477a52e94bf831ccc3f8f3781e3e7fce39e79c73ce3967f7a555e8ef01ca5661f45a9d518723025cca38781109468a91642418e9a7b3c3dbc1038147446744ea8c4830128c0423c14830124c842298065db118ce8ddd1895dd7b6d4ddeea7cfb0efac8da7d0ffdede3f893ce31f6675afc0c0302fc39a77f493f4e3f12982cbf23393b38e0c8cc7c8b54646232adbb85b75aad56abf592ee95a42c823128b35443fc8e60dc75a1886966a554d364ea731cf77ddcc7711fc74d2a738a0ccd829932594f594f59674a39eeebbeeffbbe8fe3aaf62452d7b97b13bfbbfbf77def61aff38ef497c471effeb97fee46607f0747897138679e16a1212e5ddea85e60ef435f3fad16c01178ae48affadca7b48afb4d75355b65965be830c3e56cca196f8471450bd8b0815c838d2280b46c51c68bc8bde54ef054715de9012a91be79927970462cf508542865f22b6c57e8228c2dab95ddc13fae7794d2d9a30bec618c9ce518184ab33cbf34cb33a4f4250be60afc3c3c71871d57d860c28a383ae0831dc668638e1d29da60f5e3f423f11a1562b1582c86f36ac38be93224009927e0264c4087102c1d8acc8058c0a2f447eea740058428d02a5000c8644102f28409c8a030061e471861b2303f8844f50fb927e4be1961847902bea2933352da1061faf223d283e9cfee81ec756f6cde5ae556ffca222499f9a30c0e9787c8005399715aa53958c198f9fe3833ef820c121490c032b1a931d1b247b9af4bc9ba09829160a1fe09d2f22940d22e8e9aedb45aed6e5ce77d3980820823120993bcf3a22560d4dbc019031f888a58f78d3998905938b010018ff68616a2a2eb6da094038a28adcd8918ccc0c5791b389798a30aa2ce8a1dba785fbc9105ec33fa21053f246f03651d72b4d185754113d86075256f03651c594ce1625db0c7006275187b1db7953026f9dfc471848c75c1b00ad6ec42246bd4e819ed327697ead32aa9d12e30b359152d373434aa7f668686c6c6c688913cd22e4864cd8ddf10273665cf6e8b2dfe20028b33ad659b244727c5179667d0a04bce67d080e80c1f59eea7f914509fb2aec39401b6008f5fc356008a58b37e3715332a6433e8fcf8613dac278ffdefca5d69d844026e2044832e7ca670a104142c7718f122030b30bad8919fb43035d4a0032980a20a2aaf269ac0c206aca7888a34b8e801103a708304597c3181114014b5008219152f1ee0800d3758fd2eed88beacd9beebee2b554745f8ec50f9628c2c4d7c61a58e3a4850c6086638edf7ce93266bb4fe133ed57ae2700a9f3aee0711db6d92086e1e3283b6933ad75d9f2d69b632f63b72b256c6be67ede47284eec6e53a6da155e37cfbddd31f5bc0e1c09f3182d38205a2d583bcf1ec14c23f03d881471b5376f70e49be1f8030a61d57797be7b86f3b5b2d0be656d970f2b438a3ec70214d8b4f9bac3430c6beccd6439a3b5b9e132f990b52ce6ddbb20c9375bfd3da8ed96314c57dff64689674e2a82eb0cdae4929a55b124d42c36d73b093736e445ca95993ac31b5c97f146dae281ea590e567fe080909090909716ac0c04c6b6dcae4d919a567c80be6941ecd85a39c76a6882f8bad525fbcbcc16508032de9a1b2a3254b17a22b559c70e117f1c9d5aeeee997cb054324a5ccfd4a7f795e0db47a3c3c1fb35efd6d18632958331d4f6e3f9145b2acd9c0162f62fc00c749935897ff7f31b68ae1703e9ca4e07e4937ef5cca3f55d792789ea106e4951504ddcbfb29d3ac6609b0825a53262f16821f609a6bada43703cb167f10f166b8a4ac20021cd98c1280004caa12b72483649fe156fb93c3171d203c4ed7ca51da84f5a91f2055f5ed0c93051b19483864e00089ea5f43ba21e79841ca20b7cba5b9cb85654029a594d25ed15a04932e454611a8014c8d5a53260fffb8d35530818ccbc8e0c8cc10018921ab0ee3b8304783798fac69f769234a81e64f9096fad5c7b2605a4c936930eda7248526e4e29ee22eec82abd7f0728fd39edb5d8eeaee354b3109b014ec85dd4adda20a83fd4c1680b418ece5a3c1faad06fbd1ba78b941deb491a39cc82296ca2e5dbc47d6780ddde540b8cb880bdda5c1dce53d1cc771a106d36051e05183e5166130180c068381500ac14b89ee6e49f432c7e3e97370da8687edebd347e25b385fc78a4eccd679a10e298cd95eb248effdfd40293ac0b286152e1f7861c95c7034029e1f31e4f8822561508327889e70830d2c54586d44098cdef082092b5e7860f57b60074e9a7f33be5ef995d6da82acb5566babddf2d23aa752501fea9312d282342de6b66d413497263506f6a771c184a80fad320b9a61a13e9452aab906b0051ea94fcb85e6ec5e7136f31b7b2fb6d66ab3a1563951abec108fdfcc56e9af2bf7cc5a2ff800dba116a5a3b887f2754fbf0b75acd05089e7bd0ee9bfd93df74abae75e7b2ed4b182439dedb9d7b9f44b5f78bbf0845345e0d10e1169428eea2c5cd4a7c735c5a565ce3935a3ff58c801962c3bd4a2363bc10b1eed90a68ac3c7c76f342198f62d91faf88d64c99cc69cfe784f439e79fb11ca4f9e50a6646e8bb26d3149e6d3e740afc52b840578345d3ad271266fe3cf546dbaf2f613dc5e6edb8f74babd4127530dbcc133951f1d414fa695faece993862737f05ce5ac46192fca0c62b230f37692d96e07f6ac358c412273fd1764ae618cf636d4a7af850808827e0db7879227387af309cd374fefe5e750b27bf76f27bd2cb7499d4e3a290592e2c1328fdefc8e4c6badad5bddde82a369ab557e1ecdc04c9e32943a38e2ef8846e9bd189fa6280260073c5f9017006e60dae2e95bfca36e9290e8debfeb4a3feae0256b1fb3bd0df7fbb7100141e09824f7fb6f08254b70f42c383eb956886cc1265eaee10c629ee02fdb6b519b9306412f226bedcf4cc18d3df972d36817836c370b5a56d7e0cc312e0cc9d3c5aaf6af7d189451654af534100789a3ecd7592bdd5e53f0b87cba2b9dae9e59cef64bfc2686015a0eda9c22472fbbc706185676b27d2543d9bec3f049039de0d083edcb2cd3c832e8045a722d9a3c4bcac8f6735a2583aa0465fb4a2c18ad1724c638f8cd0d9dc4ac8579c779f473c17b2eb14fe3839ae3377fb1b5d67a7f0c38398a3200bffcee77e1fd946ccf853ada6f2192b72ffacd7dfb299b56995ab46f7f034fadc2cc143ccad9f5b1bfa40770dfe209b32ad8975fce0bb7c49a6685689c43720419ce69947d7bf3bdd67e376dcbfe84c9ac0c4241946c5f0ed52ab63545909da2c7be6c95c91265fbd4beb52ec8f6654e8b760d3c4a399b3d679b8eb8eddda9519e3cc1b800d3a08005cb20299ab82df64c6e9a5651956a8d4e4a29c3514af07af274f2f03fc8c9edbb74ea8ea9f8eeae60fc8cc091f8627fcb32488a236c161b027e0002267640450e4a9006ab8748a2044758f9c2c755c712db1424b0fa69fa86b25a408283b74d4342e338283e18c1600641670041c7170e0332a8183bd80202955e1e25971ea5ac069d1440309122042d1fa37cb30cf2297aa2cb40b7b27c2ee30c81bdcf617bfa39dcf7c0cea61eac3df7f7fd66b2b897dae7709f8b915f5ffb51cc5c8c0c6364b0efafc47aa7813978395851e2c5c8b03dfd196ece8e0fdbd3f7e1bed7711cce9c9639ef398ee3b0a3b823174bc133c774ef2f59319dfffd1c680efef725ab6b0f270aded9febea4f33b92b3b3239dfb9deb28ee4f8ee25e03250b053530f75c68432926a5fbb189042514589655b2ec29999a90059eefa138238447faa4e618f9322dc6c83fcdf742534ace4c234a59b6400c98175918136094604cf4400c58a9c81175c83124a50834b2e41854e1e1891f929072825abf5b79ab55abfe74aa6ea4e54ffadd816947410e74926e65a0bfa6eb9700da6a9d6aa6ef5f0228cd40bbff89d2eefaf565340bca7c51a4b8e0f184a47eadb57e8b267c81fb6b7d99229a0332b2fc4a7dcaf89cee73ba4ff719838113d9e080a37c242dc8f77f9c558b617b7b3ba5dd128953c741e232344205cbee9edd3d9b088ad59849517f4a3f15b67b83abe94dc1150d9348b9cba16ddab50f04013cf7caefb658dffefcf1de0a8ef6354db3affddba03dcefd5ab5aa69f591b4587f822db458df0424f067c944a57dfd166ad747d22a1b1a69b1be095de0f9a34dae8febdf1a04f3c9361cf14cad4ba0712fc6a753ca53290cce1ee4d842c42a813262b0baf64ab8844bb85a8cbf06294b324bcb0646a5d00a7d1d483f5ff20519f4821ee4efdefb5f387bbc90fb70ba8860a10cc79b3770bcc0f823fbc5e91fd943aa06192ac8f34bf223cfc725526845fb142e75d102c7268fcc15038ff24bd3229d567d317f5e3e3aaf2fafd7ebf54aa552938899448a6e8bc0250c4a5609d49959c0c1c3d2619e20e80c2858a5c7a08e4603960e3743ac5268a5f29045602c07b46cc37c0df4d9223d251a7a41661209bc611ee5951d7815071ea74bfcec31bcf41bcf6fb897be69897da0078e388f78bc938e4fb4eca127440738bced7261d7c9f5ed9adda279d42a9afe0a2e7194af8004ee1372a81db0a3a22c83eee0629365d01db04c8dfca64aabb4bf17e3d3e97f52ef6567913b8c9d851ac581ed8fd428d307926a61fbf7496f2075fbfe2f649de62a17a6304fd0be411cdf6e78474cbf7b7c4bef6c1840ab3d142008e0013759e5510350c655b66fd3e400adc19ce89a566badb516ac3177e0f639431d1d66b78b669abbd2bca2494d83c17302693f3e5560a527b674747404ab42e5e504c9080c4f16269c78b9a6f47cab9eb933796614cfa687900b6c10653e0e5f66ab4bf998e28c299a1479e1687e30e105055e9870e9b2755122347467647e74b0c610122d33ad06393a3a9acd3712738aa9f6787eca66559b9c4c38638a335633220d35112981961bd09c54b6e2aa3dd634e9f48c29ce98226b5a05555ac59eb5c71f0cf2e8e8e8888250ecc45f885024821ca4579446751458942f46740a7d8900d73cce2851c0c9426b419a812cd24fc2227dbe8091c6f831430c3cda21129135f0d8d51f3b231cffa1a98146c4a555fef4352fad72a32fafbc3991fb5366609b34525148301a213c764646dd172d8ae79ad22aad55311e6edb1532f046650bbef1f135dc5c7ee32374a346f5c5f86e2e377a124c462d09e6e37b9060d6473b4467d7ef5c1dac577206681e37d750eecd4577765a8cb9031ba580c0230946290b5cf0e8465b1e67949e1ba5338a083ce091041bddc895fb493f9375318988d46587f446ee983b70cb3b9908c4e4068eb1216d85fea5c5cdd5aacec851cdc20d02f3e737884d2d02c93e8a4d9e67f2c2a879c01f968e054054e4d17b01f9e40f8a20a0d78c097b9e679299f9e174814440aa2b68694040747405337bc7e65cf0d49b2a22b587efc55bc0e8bd78aef1b51c25ef4d390cbed9a551b2e8c60064d42899477c6a8f0e57a699a394daeee676c05a964158cac8d39b070bb879b5c08ada25fd05040bccc7164a2d58549965d95c1e228bb623e59cee1d3ee9ec6fc38dc4ee9a3d4d6f660653e9eeee6574b5564a5b8281230b206fecdbf0aaee18585aef245738b8db5945aa2653ab1a21f2e65efc03e7b50fa356296511d95386e8bcd696139c9907afb010a1fd7c393d2d78d0d0428dec8e7d3612a7db4d831f72f7c7305bdddded33799499c94e93dd44021666fcbcb2ff8b3f59b27f0a89ec415978c98e052cf740011e3dcfee2ef02b5290fd0a1b64130c72f860278c31644535608d38bb1b742c41050a2f5e5bb84b1b848619d434670f1ef054c14fee54ee5641979367d2624083c474ff64cd7c4fd6cca774b4b989973dbc36707c5bf46ee8c023bdf789cd5e8b59badb2af9d44fa77bdd6db5b5d66aadfdd9e375dbdd3eab0daf4b5c4391fb925aaff656d62a5f934fa9e3d0a2fc8d04956a5a0dfd74bab7d65a354a2bad5ad5b40be20ff238eddb5f7963ff869e7dcd565c4153d6c95e8b345b909aaccd00cdd5088592ab0fa6a936681bb4da1a82fa3dd2ecdedd3af3bc365749ba611ee518fb9de97b550b6f78a1737d1b26a1b986a30e33e3341ddf3f5f8232f45a6bd542ec9e059f547f1997a367baf774ea2ca8b953ed3e944c295d491b38e0390a1d196379607b0f700f435baded6b8c0d73b21219636de13b4a56383aa9c2d24b9ef965c5fd2f43af450c5eecede328f91b281d1562f92c8800ab46edebbbf6f6c7fa5452ed532cc85a28d3a2d33452d9bf82a94c79e878e5bfbce91e47c9a74612253d2fef5e706c7092ca634e4e6557e1080ad353c8725c3db1d9718b72e66a93e577c43bd387c1dd1b658ef629e496e1ccb4f315f24ae5a9902978bd16d3c09752efd95a48bf5c8ddbbc4ec703df4a9b83b713930b6a499c601378159d7c70e66e7a6ccefc66fbd9fd7c200994474a674cc690c117731d672c95b381f89e7028bdd5a282e5d37625bafaf5cf9773522fdaf5ed6eda1dd26ed82a1cdc47cd9d109abb128678b7459144ff4ad63c5229f5da7606c2cbd94eabd5eec675de472a61181e3d4c3e403885002446468411823c18923023a4842122ca041a214ff31d41e169be1b8ea4f02ecc2cc493ad0242c2cc97f0f2b14949ab84bcfc25ad4ae1e5d3d02a145e3e130ad4d0a4551bd7917678bcfc19a5553d5e9a5efaa82f635ecabc14e1e5082f83bcfc79a555fff2e74fabc097e1cb9ff2c74bd4cb9f5a5a65c24b00bca47959f332002f4f78997a39e4a5f8d2c641386522af52e145bf59bd4c157969034a291209891cc0339114c0132873448800762082335214c52543c0376186861428837a2627802751860201004d434e35d480b8842634a027c40900c03bf3c404f1491822e280123f1c220e09479d2ce4e79790846621219d092509a0e7426720e15d02cf1faf8d148100411202981ac1268610a41121950382a21481bc0c8d9222e049a280fc0a20908f119700f992e01cc287f0a1498a404e358470fa121024c45204626a3202e89db01311c0fbc37b220352106e0682430c28a508e47d7c49680e014808e1a8937ffcfcd38f909a8618816597114a0f0599f4e04205a4418af57910bd4ce01229d687197222fbdf7c49a8908f0a5c49547d15402951a52f09ce74fef4006d485f12bc42c2034c7d3631c080345e2a07836247a324fb0c272e2181cfcdd0f08132db33f1c0d395a140079ab4933535c99e142bf572a538f49784e626d23e82c42c77eedbdaf990dc7909b9a34272b63e666049c89d16e6ee82b9db3e775c90dc7523e4ce1321779f4cee4831b92b01c91d0e217730a7dcf1f891bb1e20e4cee451d047be600f4eb6b04a54fd72d5808f2fc9cdda773e4cb903a147ee7ef0c8dd09267721e0dc0129e52e46468411badc05f92d7760a8e58e049bbb19219ebb1286a086784f298a241a5259539f75c74a3f904129c54a75e8db2a7c86276cc0c56b0929b43002ca11af1cd8d1c31d5fc8a00e335ef0e3c389174a18094d81c50a3a725c4f50e9828339b20083e3602d76ede1604b7030da21f015f02065288e35a428bac1142e18c287971131488335a66e6423f114fd6f95dd92e92cd36fa1553853a227dec8420d2f7c009a614a16705c8185d10f8a60514a296d177af480250b9c0fd9bf6591ea19a7ebb8df363339d9be9156d590eb363f3aca8fd3f7765c67c4c8f6724e16ecd797f306c7c35c7fd5220080c0f5051b1b465122bd02248b1432c08f8e58a5d089745401c4c0df7b5f7a98b7a2045b899181f4a55742fa9212d2c3843a32c421e947ec47472cc92afdf8df93a4a318e0fd7d3f3aca387e7363db8df973609354a654d6d92484610429407c91e977171c53d65a7b71fca6b2dd621f78733c28ac2e1ca1bc62b850c9f79e8e152e54e23d29d4f15ee7fe87e3db6d56e70470dd1971bb0ea49fd775f323757f5362ce9fa0bc72f7254e87a2dc7d24f0069d3c61b9ce699ffe6d917a212d801498e23175c74fe52734df0e1c672c77a99f15ec278fd875ddfcdb697f75b2ddac46b3d56cc55874382f8fcddb43606ca0237ec882fde8a8c3bc8593276ff307cbc58bbccd2e62ca19afce8d9b730ba26da8044ef7543974664606000000d314000018100a8683e170403820146bbbda0114000d6d86467c5e3a9746a32888611c849031c628628001048008ccd0d0ac02fced121c74d381f78b681c89404ced3bc2ff6a7dbf943238c4d2aa8d9fc52f42d85fc5cf38271f62715e417cd49884cdfbed219c7fb7a135423d1dd1435c1b3d5222ac62961e62006d794898dfdf6125be012a44bc981a1ba65e94bb169b40a7cbdeefd8209d1613f593665a3439c7f78c50bf9c45990cc8f6df467ef3ebf46293500b8c345b916bfb7a6811355bf8d94c23cc0858cec62fbc0257be4a5bfd7922adb83a5afad975213bacb188108bac4a495cdd88ccfe5ed18a6dde16f60bd18a13a55612833e4d0c95f8b59025b2426ff6c92471e57b6eaa659b44385e2989f3ff1c8695a4731e1d02e1e5522455d32fb5e753451db20071fc8f46d54644874d5b30947ce91833bbbd6825336128641b0ceea7f3f7f5081f17043ce127991947a192e0e6131b8566ff7a7d1220d146b3fb2b183a50aa6a9855638b89fedeb3f85e0125d651342b11bad995520a7f20d558ce92bff0d315f493f8455594aa2307c383c70b4fc32c3ac2038cc882a584c5b13556f4025a144ca784c498e9182725ae33411326da582a26ecae8f72ddc31677889daaac947f750970da37494909b61ff31b6e8cd52639a61585cb862c0cd34b2ea2e9764e25d8b16ab23b1438dad0fb03b4a070311bc6c0f2577f5b185b620170c94cc6c14e155eca9778053e3a04fbe583ff27600b91be12b3a2cedaf41569fccd75a0c77a74ed02a3001af9951a17331a0b941697e3975b34ce07d5df30f59562c5a99a5e1ebef992583ca41cd1f0af8bdc931bc84e428f2f8b2b9a180086131860faa4d79bc01064e336128a952ac8764b81a5c94daa39c6023c8188ea2105de9154407461bd4284bf2db71326c315dfd964d59f86864f81162224aeeaef194404ec80ad5c380ec1ab4653093c4bfc74c0393386c75d4172efc106b172f74937e7a86ec4b7713c25d2ba43757c2db6be3f7d031c0f9944f56b48f92699bde2d9042d5d98b95526073f056df918c6d5d81816edae63f3a3490a05ee3734d4dcb82436abf6508464627ccd4a2cce1ace234c5e6fd921186ee926f7c8169f29121c1b379081ce6afad384e9d60e50276e4a7268686973bd3a4828a32d6f6a6a349e7dd54b33393b965ef49ab5a52d614986df3e60c36b5c5bfcc1c09d1dfbd98efd4e7e4ce6a54984abfafb2e640c1fa151410e70be5c05e312a8b9d2e0b2dd27a807518bed8df70a7a93870cdd77b72090658cce4c0f524f63f1cdea6b0482704eaac1f42c90255d0be4faac9a6a7f156cf137f612452eb6e02c63aa3044b41c5ab72c2a995390976144a4ae272bb97d99ee0369f24a2ee5112d5d016bd65aefd24413b755b98cbba778165565e3b4d10a623592f133f878976c2787bc397611f6b8721e6698905a4ae21f96650e186411bfe01ad522aca2dc092d45d0edfb67214617b91c51749bdafbb227a7085c147d08458ac9a4c12e5d3c1b19dfa491a78b80593f3e48edb45d87c67606f41ad8cdabe41abbc330e4c07885b5e459d8e5eccaa91519d30cf2e633a7e1a352eab4e932b8fb55640c8f2de19b77cf5a4e6455046e20ae6a5c1801f5270f24f68deacee422d0e0741e2b35f95e602b8f563e7479ccde4df010ef775c23e0d2b056111aabdb0b8a7b8f05ea11f8c4578a78d63e93285dcb0916e87b38af11a0cce03b5000f02ba8c3a351f0b1a4c0418a5e61900438a915276146e75c329bff761416a9642f00e387631072f0a4a7a3ed94040140396f17c591c37f12b2a88289980d06d2c35c335ec84616896f2834818c6b613b93704244340910543dfa4efdd1491fbd9262a8188eeee18f85d35b751b490b3a576ea7527012a903e2bf60289a4c791e09a56eff3cd56944cf9b31bb2521a4f8ea7ced46780869668c67fd781ef44a252f19c042e22e96fa02ec878504f4e6b78ebc5dfd41160a1c71dd4aaec94b1978ed2cf257ba71233f4e6358ee386a1a8af2a8762d9eedea0b2a96efe085b3bfa113154493bbd0d0c6d415e433710d80198180312011fd3a08da2ebbb5599b84a87aed2620c1d0f3a843e6a9e67af3b597ec338a387d4beaca8302e5934497240a2758fe5fee1df902d0f4acef5e4d24552c8c7121e3d245f47fc6fa90a2384e33a36872d66f67a527f2683000b7f39ffc3d8b118895f92531cd231a6965df6a2075735ff9b5949030930069b15d8c9cab9d018f2dfcb90f2b1fe501ccdaa90f8974b1c78c9ff7c0ac85028b6d317e2e9e3f46628d2401306d264626fb45e808c839a3c194db9fd12091fc2d82999b70dd1607e5aa7eec517479ac223f3f5be6287c3dbc118da96288315868df7d524129425c0eab9aa852a4755e1892dc985678a8be80a1074f5063177e01181e5b94679466af360b04bc3b5fa94571ba9f010303ad0357dd4896436fe200ac1afa858814d754d72d0e567ef96fe2bc7de4139d582be9c0fdda8e419656b077bdc65bfdc817e5d393bfbf8f62d53a6077e3d433fba2b7984de967909b3aa1995eb09af0c0124e5ceede980362eaeefea304e78d5eba5811aa3974db9c9cdf1e246b3d8b514efd026ac1d5e0b7d0f08bee5d026f8eae0b317eee4b575d2a7e63f191df496d916ce991e1386b8335a7f162ff38ae078450e07f85b9e1961e2424cdc34189bbbc21c4fb0feb757107153e851d4aabbb587553b878025e20ae01889df7ea3efb3e2d10ad4ecc2cfa5a4757c7b500747be3b99cc55377c9d6b087c22c50b2285e1cd96aa350d6d0687fff73cf66c2de544d4c8a3eab07d5e1bab74dc0c5e6982ce6c1d035572b4ec681a0c1b25e5e29efc2378a68fe37272877a88a37b168743f10f621e47ee4d73132d3c90b7d78565523e547123477e2a20b6047bdaac8249fffd6ee3fc4c648f387288e120611442eb5abde2943b26baff53097420d3b07d0bb7a8fc868c5dae602fa1b3d82a60e7ce11cc241475410121e04503f0efc1280a9638a76f1b409b26147240f3711d1c00e9af97f6fe9605f6403d0361ddd7593164667c7fbbe416dff488df5981c448844eae4e029b95bc54a8f7d49d225641d84917030c536aba6477f39c151be4088fd6830ee303d17060d5cf68b07b558be77840d2272fef5566b654f57889f7e656f59d1d898441804c5309596534eb9bbf4b4bb7e07d3b74847a1bdfd51b94dcbba0e1d9c8e85d8586983b2fc4c989e63a83bd9bd2cfcf3c0859e71191d019eb9cd8882342f5ece82cbe20593ab60d1e69d389abbaf1db33a0209ca4f5a3148d7ee774a3693cccfba61eddcc614324895012708a99c4126492d37afa60387495c95d131b4f8d35ae16c4d97b9baf9ee844da50cef0365de1ee658e7568ed76259159fdda63d659c085a092268d627055fb4135738402a533d9860dcf6d46b006db19b5f37a0f32ce3d18d5db46d2feba712917dbb6335548309f01ccc6cb2d8989e8a0084619d1a602a8da2c929e8a898a16d012c1c2fffb672a94c8d368e871ef58b0ac6456ded776d692ac17cc86814a4af0c57c1513b692b21edaad48f58a7229b3c35e97fedd4942af4ba4a641f98e30f4e98b11c1d41b7a3be2e30b5d4a15c20a3c66a9fc9293e488444ab6a9cc8d99af5836027e05f3ebba7ea53276a4ee7ebbb07961bc2bf609bec5e545beb758aa7f8599674e56f985d9b4ea7e585d303887612220a50546c4af089a7239bdcedaad82e2425ebf9c4e7871f073668b9598de50f851f6b1095bdcf68b997a9a5d40c00bcefa90afe196314537447121a3172fdddc13dba067d9add763b78c5c20637f0183795ed303d7cf946352742db80eb4878008919f4685c8d88091c36192e9f035a9bf14c5cb1720c6de76f5662c9ea4a01b64a530613abbe9223c446e5403ea268a78178209233f0e8b8b8889038d4731852a83e63fb42f71b75c51fad92c3d77b5b803b2a7502fae4594360fde82170a9f9284d3ac3f042e8427c33006da299d35c7818e1fc01b3a16467b05479d09cf8d04438a59f11a0c1dab926d08e17c2cae0d99fb86f0daf908d4c01ef451b713f78771ec67337ac3fa6a695deab718a431cdb1686617126a65816dca9ef5adb8848dad37896a2f92bf260adaccd89e5a0bdb257ea67ffc8432cb4b324d263560f1cc574a9e70b584ac7d0be99e3fda823f9f7e98a53970f13f462ed5c0639c158bfda2294067477170cb6f642780f12e1be15bbabab8759afe4969a70897d29883f69f20f232db4f956d9223905b70f7efb07aa3b4067022aa6beea0ff63b6ecd2e249cbd3d6a3ae1015a950cd4df7efa7f86831cc6c9b260331792806a39c0f561bf4788c382bc1d6d877c3c71b1051876bab44a2fcfb93e066cecd19040ffea05daccb73939eb7a5177dd79bfc815f70101dbbe77c1591969d05f749365f72b3e374fd340ce4dc760ad6c680c1e7c751fb8c50448f9e925a9d2a3dada4c422a65b8d006e8c85985a36f8e2e427674aa0b21a04483c77955225b1c69f04a0c66557d0a33b7b43887db35a94713dcc69ce7e82a7764a4e6c9cc3bf45bc6a24dd00055e1b5689e4c54976c9551066a81c660d1465a63728260cb9d60d62285db8d58fea90b7cf4ecdd1893fac007be2a01c79408903c061dae24db8f922d2a1e249ba459b7455c24dcff2c6ac8e9731c050182be7cd7b02349180010017c5f6f93f78eb36db29d4c30b38a2b98f1a1084f66addb5d2aab67ad3e1827d9e2429ea057060a3c93299b60b1c199140fff406cb67f1a332cc17ceac9cad231ee4ed25ac88331b66a8ec72bc6f588e0a0bfdad1fb23487d443100db3c55bcb4f08f254ca36040f18f7a22fd261233446df3ae0149af2fc8e395f5d4eba255d6d04557afc7ab0eabfdd40864fe14c08cfc127a409a530dff3bdc224e76eaa2c3c3c6b691ab67b7b2088cc82b75779157da58e0067c2d25f0dab305b6778091843f0c1feb268b3b5743b3793fd33ff259c0f56ee21dccc4267c00ed32dd3be8cc7c47cbfd451a4fc9b20f0bddba0b6802bba74294274e0d51aa59e7c148e6d8e8e4f63c5080a2672a3279dd57d3de6fcf1ee860128fe17bcc44084fda2256378fdf64da212ddf77af976a320de36245906ed0bf61fb40de2997e037d3775b1b4dd062573adbc437069c6a5d3a9859ea7e773a6ffa9b5bb0ed53f73a8af08312de4d5c9a2241cf37c8d195b65dc82b4228b0deebe70a650e9e2fbf674b02f7ba32e9a5028bb9c448d4565fdcf83ea125cae19cd6c04d4e220bda436f84adeab159472e9707e4225884efec889615b90db8398c4859a0181e6ae9287fd8298de800baffee019a4fb81a5d51a8c07f6df4b05ee5c9bf36e493ae3b043ec2ebc76f671782cb97d03f4e298f18fbcfcdf778d284a326c3174d162f6334a9d86e377008a5a9809af6ca2af59ae86db20177d91802e1fb79be71e23a49b05d62c60c188e9705f6e7afd82b3da56e2580c63c651276fa1162e178cc03d6fa55c9e12c1ece960a6ebb82b4afececec5938dd971396204107d848a97c951a3809d9987a70776e7ede5240061067fbfc2900067a8539907b4bc642830deba844e33e230f9bd5ebec66d866cf27da63e6954534976c991d14a480f439ecb081e4c454a39964f36cbe1d40d7e3833ae2a6ee7db8aaf27ef847a1a9d670de18e968c52c3848088d7078a31b1dd9f3da5593b3a2dc1be83d041aa81bd7721088dfa65a197cc54e51b0648a70909f01f4def6dde9a60dcd86592babd70e2ad64daeae419b59575cba087dcf87410357792687bb22dd2023875d12e045c0b7d6f906c435b42d3b7e3817a2f335dc79a36532f070d8f12eca5af79e768bcb308439d779e6599c6e4e8349c51071bbe555acf32c0e6f2ebfb48a468383af2b3d31302ab8bacb47558ef837c26afd993ebf2f0974949b986314403eb0782ff92ebc263f182be35b7caf5321433f03202f76cbf672e2622be939c24e26a20acd7f7d5eb7c8b12e21e6d79f8be3e04798e5d112d233aa536805775ec7dd4254020394d7d44850ded0cd4785a63a00c8b026a3fea43466f8e7a0a50197f15d2cfc4a6018aa98a8d8e6a1ccdd38338cabe775bca0289f94293161f851d35814c4e9b4b7988255eca243cf3a1197df4d61ef60623dca0d0deaaa0723ea3b8409a40b5471c8409538a0434c6c9c7faec6381ec3849b310e4da64708320619ab8973b33af6e07b4127ade2ec2c1e42765f492a1b1435324b2da8098f9f5c6500adabf854a816f4939dab6ace6541df4b34a8009c8d65dac2127b523fc833006204e84ee53a9032579150c6751cb1e964e7c7e1e8fcddfc939cbb64058922d96c269c4225b9667d7ca5833919a0de43d62df14b7d186a93a44b7e167f76db02bcd407c3580331fbbdd9994b017ca7e6574a5d5cf666a9c81548ee99da4f1d23adede8ecbaa3a660a13e23f0c2c331825d0db395cdfee8acffcddcd6297f56e3fad032ec21da3a6314d4e4f526fa9282073acf37c6250eebd36256b242586f0757ace2328e6948ff4f7be54680a942b0b40a90bb1cdfff945f304385775cbfc73137924fdce656d8307220cb354761982ee2e45e56d8116155e7d0c03d4d9b604886e364d1f9684c26e7bbc622e785538a1fa30cbca6e7819c574de83f4ca32bbf4e28355640f41678cc3f7e61213c0a4f83ae4bea09541243bbf779ecdf74192d579f2553060493f865180349098302fbabb84464cbb3a4ffe813c31b7544184ae64adb9fe93bb7cb7b080f47db9b6bfafdfe12361b6d36775750aaae4831ed26fba6c469fbba74059c5b4295282c56975d98941c56b4709536d6873b54c496c3ba762e93bd030381ec890f63d90be64083afddd3f2e0576f783d4c33a9ba72e8b3ba212cfd0aec3a6564970cab9d8fbbf5bf4920f9753d87b88938edaca801f4da0791f141582438300ab0914acb5d38ba8c825250b85b97087231c8a04538d5cedd0e1b7ed0cdc8e325bceb5c79a9e1611ee5fb4527137f934a1d298ad353e02120189486f9f4e136602da7b0069c291741a365de499f2947c973fca0d994c37a2af503f0bb8ad4cd2f3528b0b40f242548ae762fd099d7e4e58dc95a66740f4f70bb83a6efcfda37791571cdad4f4b352670861d5930b0588d8494daa7188b4391066f0793aad7fb276323104e10eed22a0122f6be09136e4722af171ff278488390ff96bd11bc3978276ff8c99538ee8e58e3627190c387d81c3d3320d47c9590ca61a8ffcbfb89ba7577f93bb6869ec651a52108a4ce7cd59e2cd8e0cc207027e5d10ccaff1790003a90d6054d271e0376cd522befc37ba14fb6e0fbda3e2952103676acb060cdc311912fc8292875e25ce0e20f76ddbaa599c063b186aae80786b2499700d0b46696716a970c64978dcfba55fc60034a29e078ea82cf81e1ad8d0403b3cbc23ebc2e0e026db66b61f9ac5a6a646c108acf39d8ab4071c5bdd86f466f1c85141e2c946a3c3cf4dc0633ed3d39214701523ce90401409a57c518bc9cf1dd4edfb7473ff058ade9d0e38a76d71bd5e596c7276fa5ce2d054c035d2f9c06b26101f2465f9e131aae524019f4c5f89cb5c3f54af3126957ee428862808e90842901980122a3e877af9e3846c89e332c385c84ca43ee1b60252cf45d9ef75fda34d9bc704be602d6fae30468805671d0ba2ef24319c96acbcca00e0be8cbd7527562075e480175578a2b6889129335440b5cd10a7015a65066f7e39d112c7f04cce9096b0bb88e8d71c20e3cc92d80061458b6efade116beafa78965d25f579a7eb4a0ecc098a69270696f5df8a834eb0706b4154507cd741062de3e46462cf54d213abcca81f1b9d0406daec133dc1f8abf6871003ce9a809e342cebec109218bb8ecdf3ea151097b00b961c54d88657d29adf1b866bab85c028599bd81fe6f119a97c8da20942fae487b27291ff60a9835b1bc1f03ceaf5b070c68de84e6f4b0d6eb93660f888d253bdfc5daeda298d739d44ab182d7fafeebc56ae5104b8e42f06c716fa05bffa20c7d711d7466332cacf928f4040ce3f9cb704bc42a9c01941453266038d923451dff4664c0fb317cd0dc0664828c59119b658d08b98c01ae9d7e532a94c5a9e49abfaaa2705b988e8b164af2b17e824a0c398fe9e16d1faf48e789ee0a3a6f528e724c020249903f64a6b8348ecea15e7f146088521f89e99b628bc41e4d0313281843fdf3cba464239ebec095d1e3c8d0f2434c248034207f4c4dd932bbf066f7280f006ff0770b0fa8e011c810c169eef6bd097112eefdfceb199a27a61aa35a0f75b2a13e8c22da6beb9619f275e399e20e2da534f70395365aeaf0088bf0fb9a9135a478ac9a96d538ed33138e0b7c3a06625aae9f1b469ce60a8bed3b7b81b9026bf67d8c8b3a81df4a0e881bd12affb854cef1c8b3c9855ff385375eb860dee4ce032cfd77e2da1ab60fc0078946df00effffbe4d9aa42edadd8c8f6b67991a0990d6dd147b12370d73d2c5d2dd4fdebf233d7405420c1b94e1bc57977852ddb77e98270c0c42826152d1e9ca39ad64777eb456d3b0f05dd429474a4b9bb181ccb512c19ca5a8d19241c1f99986732145574b1d3c84cf818f59182ddbf74d0bf4b6df14dee1d07ad550df9a0815e8d5e37703e312b2730399ab2d862ba1cd4472817f6fd510e622b858b8f1f54441a1d283259218c88440b1a17da2853fa6f30c197674e25d836d574404043025c24c588ead1b71864919ff436ca35b69453ab56c49cf92672c2752bf54c385d8ca16b3f73cba1a5e2fdfcd676a02f97820a944f756045a662313c85ff26750ad2f093218375ce93fda15124ec2831a0fa8e907cb9aebc106e3841455ef735ed502c83a34311241bba342b17b187908a9dc88b714b92f8ce763abb4f9134c56c472a95c21a8a50cc962f6b7900ff6c683b6d9da4da05c4b2fddcdceead684cad8068fc529be8e3069641154a8906b63d90bf9bce207c302804cd5652bd5029be55ead8daf347399ecf84cb818bf6cf6ee0eafa0edf4776d5bc24409bcc84c3da0a8f5946410e6a9ef641b6964b31af78b7b056ea0b3a9379237b0596daefdcaf53472589cd44f53a5ee66604934658fce7e48bb221c2c0ffc1d205e84d3c1698cd384c0ace523923ab68c8be590b1619c5245f9550354ba4f31ae95182e37b296a093dc4581bd8ea68008974da60ce8866632a89bf204d5bb58090691c36616d22fa6d4717526bee2a00e6535a7e249b28a7b10dde79af4cb406f058e4a9538b16a1252fef0bb68963e92efdb489136e5dfb1cf5b6edfe9a5408fbd8a90d3ac7cfc2b11c0d97d279352c78c73237d6a028b02af70e8b4aa492e837b84d3cf171a8858a1bbfbee46ae0c84cbb723a9c044f16b45c9e167c209f920d5d46143d825484d2fb6c5eaaa67c5a8b1cfaacd44225eaebfb3579c505008c8b2d9c1152267f1f3f41e9016f0d35a205d80ceee95af12d3ef17f835ca35f57b0c17be7ce9309121265211c9fbfa39097404c43292172a8661914098a2ef15c1e6a66e3b1a75ae5a6c098025f7309d2d28195da588dd5f6dcd20b11e4604a67aba1c13c3c86d03ea90c19aa71d48114ce6180b333bea44b7144cb0db81fd6a16209cd4284217a9c64b083c7d9a5da8af0e765142378165997912e9643d500e193d670bd9b1c5d3d99b19f1398e54aa8ddd3174c0d491b3ace3b82efb8398a17630dc4cebc50db54ca103c0b53b3e9108981daa85b284b3da727001374e2014e9ea735b88325d2c24864f514e28d8db0027538e05eac18bf5536e644388b5580c41aa0d4103113586b1ca1828c6241f39df9dd916f5aa26875f18b617760953f130b924970821fc144513f46fbb99352330c1fd5a0519f40c08d9bc3f27f496b82943cf1ae4f7f9060c0b7c38d47522276c5dfa59cc722fba59dd0e05d40e61cff446b88ac1ae8f90dfb1ce78849bcdc027e23b6d251568240036fb1508e34c6d4daa9a6ba78b45f4cae7048ad7ed9a82cd2c8ab7392aeed96e29c2d014c057fc9cec216448e6e683fe2d2964bf3781d1dfca046c163ae9a06afdea15c2abd8cbc4bc44c01b60888148915dd4d34539c4620ea22bf5a9d44ba22a2c1de72b3929af86e9248592af9a9308f49493025a76206620ef71ee60d19b12ed680607131552dc7c764095d90c20ad14ada54ef885f127197db15f4cc95ba34756d8b6a231dea45d72574e2782c1b36c0c37fc970f84fea0ba3056f583c90747c45caf3a79ef8c1ec4ad319184af728c2c4a721cfa03bb790f9205f1fb35a29231be1d87eca731614088d4a23fc2e1d6018d68f1aff3489fe24dd2852307f8a58f214e8eec07e0324a88490402ae0c6341d9af218f9a2868e4a5dda29ac0f1b30215135f23e69c2fca3676956a88721ae423ead069e69a635d8b2405ff6b9adf454f4ee902a55e148772317aae97bed325388bacdc5c21632e339f2528e0dc1e0173c87e343ac3d83b87dff9ec0c21a47abdcaf7c929d275906a52fbf7706b86a8a2cd1bc31625ec6e7ed5f57c363f9d8dc4eda97131664b2b552d10c4796f34a66da3e32f0ce81e4eb2a52633a107425ffa27bea0afb43a4c17aac1b585cff3445ac57e8697d868c88ae2a9b5aa131e8fe55da366df5bacc1531e7bf1dae012bb395533ccb15d5edecb91d36eb10b240f5197c4db1b2faba4c3711ba519641bda2a4c2e5b1dac60a03d4c7fcbc9a33916b6dd7fa9f55a6090bef45649b15889d900540597c404bc46825ce6ccd9fdc02b643432f830c0d3b79a3d5d5dbcd60624dd711eafe4a25c867d93e96c47a6998bd2d6cb4fb524bb96da157eb53a065c2f860b5f091869e57df709d7e7cf88adb471ea86e53f344ef24046157d4316bea99968837a7630303a1a863f4fc6573b44768fd3b725c1294973d3ee24bb5e2e6e248955b540bc24ad02346b4321104057a3c76919e4bc98e25bb42e9c264d588d4a3d259abd1c7e129d20a2f3ba369f2401a42407f367bda9c9c73fa0501697181e86864971e40d5233ad7864afcdd2f1470c790b3ad6b5c249cdafae9139a118f3e83877b1996b9a90359d91e4ee7864eebdf99c905fed4efb716624a3dd6267e1392573ac337d3aab04adc21bd5952462d8ed2eb041871ec299c9f873d7c1e952692e911a45d05a3f78abd20e95254964bb3e0f1c4d246d90dd4d8caffacd9959174cdce3101e90651e09797dbb7429a5a6184fa6340a674c484b4a0d3aac493f4f80959ee2d19d681cf472146da9106bb2635f911392d8a348cb02dba4952b9ca3688bfd1fb336eff4ffe4ed145ae20bdce5ff4e4051c54c65dd47469f88ca507261ccf080f5e027ceece5ad4cc066ef953d67990d8c34b41c53f14ce1a541327277191922a3658049522b5d38a2bacde273381e0ca9d6dd6b5bbcedb7860ed337ee284a66f6362ad6f33f5cb31d90b3c0217917f84c8799acee69a901e34a29da141cbcfd107fb195d2e9a4bff8036f47eb6ac815d80d2b3134d54a9abeb615e441d948b534fb43317613a2fd35e3711b6b90d8afd12bd47fb043e561bb28633119c55c6da9798f4a8b3a61521d8c0654ae03808bc238536378a08ba88b8fe2448d941c7a0270d72e92427e55e44ec48951a22ac4a8f57e370835823210fbdce20c5a5097cc8c1aebfb7ad95847cd4d2378077c0b7fd7e2e37a8ad4341c866056be85675a607bcb8204a0e81ac94f2e1534cdaafc75129a31e0739767e76c5f1992dc5a9e9d4a7279faf446998db6f88699d6cb9404603c90b61aa94e45516acabeb4c28585aea181b24c00d33be7ac1c543af2c1349afdc91529ad4128a024d5c2559ec22f4c6757b846d9182eb55a5c21351a6297700e0a94f72d8e147c17058d85868c6c7ffe51167f1c35792c2dde1a261e7d58897a8e79bd442ff5a6b7cef938c55de6581618dcdd204d1d5fdb4e78c745a433b02a553c9bdddedf75dbc2748337ca66db6c9cb88283de11d13a965a6a9c4c0926fdb5a55261a214e710c1d8ac2fc0008d2efc7b86520a824659524d47f94a247867db70f381652683b184c68c5bee8a54799a20a27ebc1ea3e346c6b6047903b662a92f9ab0edcf068f1ed88f586432d430e4c2484874722944dffcafe67dc929c461464845e9e30f2050b52821ffc1a8285c7c700339a64a3aebf816b0a349e8567bbdf2b98bd79eca6d9c8c4f761489043ed7dfe29e4df350febc563f0ab945680d350ec097139feb18c5d2ceccd75c6c18c60b9b62428dce239c538e3cfda7517c4db3a235a17ec61ab639865939bbc1786900f392a72d380d80a1de196d956a615f305f1335291a6a177cf41796e34db2044d8ebe5e76d6c9c6b6f6dd7631e96fa1bc2bb33510bbb8eac9af98bb85630c0406f0322caa5a7b2acafb1028a45a3cf368a21528a589a88c926be1add3a1b807c4119765502d44032a1f519abdfb32b7a4b53c49a29c0adc57e655e6039c333d039645e11c1af258dea490ceb6865fa1cb6bcc33d537054c88149ec0bd112dbca84ef6c4ec329bd84a76a7ba54599d6ce3f045a1b1e75c7adac6917343dc710a38b2ffcd232427f32e8e355f564062ace500bfa5557c4a06788f8bba61ad8a0706c6580d39384f83586487b88aef394bc23a73e73c009ed6fc46bb17e0363074e298e62f478f402cc2836eb46f58d8a336d05d1e180b8fa34e092ab972c3532c22c8165d8adc211451569abf3d94dbe36558a91e93d4195859f4374fe37cb6ca247ebc279caff9ccbc1c3baab33c40953e6d844711fbc1b15c392558479bc42fd15152adea8d00637aa8b20ba149f965c80c18114ee158413b4f65e27626ceeb2938e9728c4dae4c2d97f5586076460336012496122235443b0ccdc16614e3a2199f927c3a069e701d7b8ba433c539caa220853a6f52b05e1c63cd4368b00f7a941d715e0571b7472fa7d4cf737c0e4fe7faf9f632f0d402f1b04fac1baede40a77f775a08a44814a34d99cd15c9819938365cf36a529df2e498b72110a7ddfc7af8bd95f9ac06c13c418b4c554a76d15a8664d3f35e204342701c9675372ee23045492151d60e5e408a10dd4c1335cea46e2a46a2733e235c3c29764d9b1de64992e104517364c39936720e168514f52ccd8d38fea51fd09739a193c1fe411ac8502f294f672b3974c5823ed7aaa0444098a30f98eca79e6d04ec853f01362a06e54641cc04410fe7174e2e4f0aadabdff8ee8a7bf57b4d0d15da4ba98d97af4b98f49f66860fc0aa9e325c7da0114be63e17638e146d5a96c56f4d9c1079c8ae3be62a448b278574404fb3c73473322028c19eee08a1809d5343acd578c57cdf3f498e57572f00c8d3752694208339942637cc68f1671f3e03739fd26e039b95907a8c6d88248f5f4df8997ff6c8599346331bd8a212f3c42f3c7a66b78dadadc6429a8969815b59ff220f645a045c48027f7aa9ee480cbdd088e1fc40c42c8360892e5205c84a388c156d1305cff451488884349900befc991f78197e269212b32affac6f8871e135450d1fdf7ed04c45d8e03adafd6ec3d34304e16d3bdc70675318b0be5099bd7da257ca3871542598cd688a37a19ecdbb08a5c3dc8604b4272f53cb292f1b1285e365e24bee4f2035fe7005f600745865a514b19ec1c0a273b3bf31927078f17f969bd4382ace5087b1f1f3a42704b2870a0d4ef9985983c5b18b354eb5c244004485dd457e44337e29cbed424feab27cf970b13dd18c883c52a3f2918690978083cceaa3a52a464ca33fc69d2b56385ace2a969c91fd0d95e1efbe60e8d8178895b959edf014e3206fd73f2fcc69eb74da61216c446460c90157c776b293d803d0f5b09af3b684c4f458917b082911122ab9898f559e0a843efd9355b4a1d65a2cb4b6e051e1e3fa6724889a670c9f9553df6c5149cab9b249be0053215b10b79c132c47d038b499b043b103dfc33f14d062b8df1563cf70efae4f7c8346505a7a7b2a11ab6664e65a9bdf19556769b3a096071fc1b9d1ed31201dd29548c48ef88da82d5608f62975f0ce18812cc926a0b5b262185e3118432e8f146007010675196fc954fa6257b05dd9ec8f69b68932c379970f79bff73db9d62359edf760672e1024061f435a544d08e52bd4be114e1174d8e98953f853f5009749530b64639158877d897722ae83d1f570b5231a0447dcb2ba52a22b91d2e08b9cc2186298fb7399de9c474633bb52dd083a1d128c74a68fc023ed8d78b4466923694dff23f091c8117941d6341f883b6e06b2f2a259d40ed6ab22b8c17a2f00e395e7aae538d5ebd61ff8a4509d2d6684d0c971823818e7e287be84e8f62508e4b1d10ea094479786588883e3ca9befbc73189344a828740b9fdf37ef313db76da426c58f12374091e8265a9bc2fa5b52fae33be5dd975c44ed9865f9bc4ea534224527eb5ccdc5c91a9b51392a1b37ffa9e114bcf734bd507e2d0ec9c36341ac031a072f1acbb3af7e53e369fb6ead79cd4247f802787e4a1b98ab54458dad9cb529d95a179880d3d2ee61232c55a1383f00d881d1e7dc44c44b9d20b592aa8e812ac47500adb122e7885c1336ce8a0cba5b45113185e3bcc15e39055009256ce92cc5003a32f2cfdc374a6c136a5f46282e429e67ff24b9a788c28da27ee8e5861ef25ab6b4c4d5654f73b59d5a6fa5944c2feb12cad15d82501308cb7bd17f9d32c6c6ff730481129006c731e8c49ce4135927a4869017f012a1024e15123117cc48b67bd3959b671200390ac4303f2923fffcaf652d8344768c53c170c2fca746b784d27a89940add0c24e104d9912f6ed39b600366595c2a683e6c8b33ee10bc7b7a9b82e8ebbabf11d747f8ed9e0d6fbab0fb369c3a0c6b3917ace09e396a5544d50f7463c3ef795f5819665c0228123d22c3efc213aac8a7eb3c22764e8ce8be49a55a9410e873e062f7750dd3d7237a7a6b7efba2ea3566643c4f958e12396387ddf9b574fa74fa181f68a47b3f5c1e500733a94de7488234ab64f7bc62f39b3e18eb51a377cb8f37ed5e2157938d7162685601d08057492cf391d76ba347f5178e39b0839880b9a14aa82e646dd2c519f8d63e7bf8defcabc214cf528d38d7f5c2fb4955f70ddd80ddcc21100e75037d0cb9bd89c79e9601db3e4683ef72a5296189aba2d1169e718205e9a7d10ec8d7d5f41342523c3ff675ed6236f8c2bdb1ee55939ac7534863426c530c064bbd9afbd9e91d26ddfd38975783e88282b078bd2c7438dc569342bfb759d21983a90155f7a006e5d7a730a39661a3c928fdc21c287618978b76917e82a8b863d785c12cd90aa82941e0a57d00ef8b5e3b2e3430f4046299ca7a17da88dbb227665fb4192448a21ad57b693b4045e2846609bc6abe3619566a91416749efdc85315615bb207f0e1b170fbd8d477e71559ee6834211bca1abfc7546fdaa0ccc25b0549a38a0c1ba245026b322dbfb1e0f1b2e76057487aca754c7aa9e861536cd96ba35383539dc01ed000a960aa41cce7c7b539c38253f598c3c924312dd3c2bf81854e691e5846aa00ec5fa657c3a38f90cf64c510fc8f8df379d6d77f859128b8df35d0da9ed4f476c1f4e1126c723d86764b628f827fdf20729a42449cdd1b66441a23d01fa14d78c4a0a301a68ea0fcd5f3ee0255c7d77efe711311212f5a2aa1a9aca28cbb32e8204e09dea6ca22ca9d3c52e855cae3e55f12fc504e641333b1be2d8dbbb0800e90a1a01963bf0ee31e60f8bbd142668cd78a11d94c2132ab2bbecce8f42419f35810194f578972077da40cf7ef061da6382765f46455343c642319514681de0853e8b3ad4905fe2e9e3330611beea6244711b7d8c5b2b68036552deb0e73e430be2d099ca2e77c713d2e0d1479fe8f668bab1697eaa632f6729bcd4d1a0446464ec18cb98b6ddfe0666e8c8d8e228267296c6885fe7cbb14b6301f8e6bc4a36d6eb6ee9ef65e01c66416ad655107252a4835aa1173ce3abb8049df932133d6936e22970e7c7f70a6e124a8e0878a4c2932d5e2303c812b176e1b0742ea4c0ffcf3538c0ae59d303f3f74a79d5a16c8a5538b96165547b330d1df96691c01c5975eb403e4807b64dadf27a62944c444e90a1a2b444fc76901aea5ffd4043b4c4df1d15cdc32b85050c7d016cb122d29af494d16e9e3d568df3efb088731cc4ae4a090b91a3e4e68ced5f93cf50611571bfaa2d22e3cf622b38a8bb6dc7abe19d564b575bdbd7e6b0de4c5bd131cd3c55138cd54e0518b4b2f0366394e6218b6562eec8f54e63344a04efbb3fe00b25470b656b2a0a8d15d810a46e3795d55a234d6e0c19885deac803697b69d450cf6753c788c73a0f8201d93c21da2639704455bafae3b7c75ef773e9a4eaff8d06c4becc3bfb16b1a5850ca2f03570d3d3c63b6eb1e49a1738e5a1c6c46a9f0720aecac7da70d75bbac68a1d6592f266070b6523a080a78c87058d49f913beaea2948bbe51e66690466398e8905b2e6dfb997a9385ab802871b7e9b80751d413662da942086471f3333c52f2f2b4da8051a2f6be693465ca480fe88399145f45968ba1b4d77a248d20a6d3758e1ea18c59d6e35c0fe599dfba7ac0611ae40e402620f9dc4dc069d39a65343e9a7266642b03b3fdea2fced2349db7e85bb3dcc22cb0a18bf29be8491afe4b370f099cc8dc96c441e2c889f5a123d26f80dc6ed1c76f83924b693527cec50ecf3818d5d0168e1019fa08029623a2c1b6e5f7fa6c9125f78055ff21fd11bd7433f956b0607cae57f4bd28ae06290b76844daab725b01d661b964b7a0d2de6ea2c7bf4345988c74961e3dd95146602daf7331f0ff4fe6f112aac1c7cb172226831369495e0ba0ffa9ce0b1dd71b61bbad21865b733eed4933f318a46811b4ff6f3423a747d383564d93b9669fc0653a90beb7b0f09825330aa16614c7fbe78a28fa96819e45d4476d9d61854bc9624a250b2cbceb8cac01e9b6b2da6e02b39f858deea1f4b113dd0357818bbb1f5f0b124a79249496129250439951ca80cbb17040fa3a8e5714ab3f6fe2249cfceaa2347700f1753dfcc9cf1d4bd58f281f12394d37b60bf5bc7133e5c8651bd381cb01ce8ec8cdfb5c345812ff0225c618599717c1a61fdb64d2c1bb43d83a00e1ba999997dd7e92ed15488a4b2d1666ffc98d19705112e05cde555c5199250c288cdf61e2d225ecc15f8275e957283760c4e3e7ca6d77087492e54b4d682a651e7c8d8ad814ad1dcf522b8988ace1316548cf53758d2880f6ed35e9fca0a5125940d7d6d7b1ec3f5e7942865106b4606ef2606e07b5effed3600a855b2add16008cada326f0eba1cedc261dad9dff4f4acc6dcd0bf242ad574a577b40d13c45f492b13a2563430a08648a0d0987dae200f0b1da1abee6ecd17f96508e46128634d07e1416b0979ef958188a3800e984fdfa62661279b52886e089274381257aa8e30a7f3da586d84cb4486a46bb51db52a1dc80ae546186096b6c88154ee9d4b9b79314347df95b3eb1e1c7766fe2a82e174229c9da99101b9bb8e4d92ffaf909005666e58e032a334c7fb70280f7015e6bbebb805767d9cb72a739781bfb499e3422d446c7324880c804fa91fff299424e1262455fa8e7d83d588518ea4a178a80da8195e2047b931b6acb9b44663203727878a3473b96d175083fbaecea8519eaf644a03f5881c3d6115adfa97484509818848b3e555bb517c0ae04ed1d0b9aeed17332a52728e5ac884c7d16d630d154cf59c1acb55622ce0aab3da555d105a628c2c334e0e9678d9c24b0544f4d5e5605f1b216db007ed714313cf582c621af597c68c47db15b9769ea65f8cab769e83995c1102acf1a62749d673da096b04f8c3cebc34c127c38f8d77f03e1e4eb77ef4694110a1cfa7dbb665aee7e1d778f0df05d356eff5a186beb13af62f048be5748c4a756264231b9b534a2f1a28b17e9a2fd2882de8f9ab00874b32a6be094689f7e84e9147a230cc0b689b930c1d13133609bb79c65c0d7f6cb32db36b8158acec7cd479158e2b0330b593e5caa3d31285ee894e4d892556ebd5e20454b65552226871a61b3a8b1caa3361aa0b03a95af36ad19294433189c57f6bca3d076c1eef10bbba7d4219784b48bab91d521f7b26e815792b926090d9df9e65c538953405d73e0841cba5d68c6f19781e020684e380314e04c6820e7f8a51b20ab6317e46698eee3fa50136a6e5eddf05e68aaed77ce67c7fac1230843965cdb11b4cd961d0c9a36b594b9d9c9d66b5fb9eecd148aef0c19f2d4eda23bcca2e68ad924103624914eff967792b63d987c87f226eccf7f5554ddb1ec68b639f22ce47dbe0c1b4ae2fd73e163448ca93abaf4d0208c572db5ca1185a36aaa3ef77d877351d92d412a733655df4e5608ff99797bc76a0832431a822747d9ace721634a2f71c72c045e2b384e1cbae59a03ddcd20505e62413d8490d91caee80eb511792ccda29c4b6831e182e16e82b85b420ec11415e3750c9155dde4fa6bc331236f2b3fad2d9c30e5b9896e072297fdacdd6d1051ce1e9253d38b2aae2506aa175eecf56263c52ca53535fcc68b200345c261aee293891687247da41f1824c9523867a44a3d2250f7278fdd19650e801b0b7f1ac22ef9f8318d8b4ec92c9cd4f1644c20ac20de6a868eb75226268e583f85d02b973f9bbe2da5670084b63b6411d071d1051ba1bc65452b729eaaf2f449f8b1a8f9ec18a6de254adda955e592954fdd7d464c726b2405bc674ac8681688b74b45e3948919959a216fe3f6ab478929dcea3a28cd0a6b812ac9a8a0fa8910bc08cf10bf6d37882ad36c8c026ab48b5c4ae23b74bbde4619921494253ef15eb213c5f07e08bf64fe7cb4c019efc689856353ba83795390153a778ecf72213a2a19c7d38bf041422a462a5439bf1eeca942a85743173935e71a2bb434cb9a94c848f8f73319c1f6ba804f174978d629be8eb4eee410f3e9c11959ae124ffb38ef179f2c2fe705b263d3e3c93c08f9ec7debb65e4ad46f3e29f228ed54362e1b0b2b68fe24ae04f8005a23ffe63fdefe55516261cb846d183b136e5e2d72d41f1aa94e4cc7e9b66e67e34bc192f0f8d0e4539877a65b7c9b4a568463d20ec2422d013a852ba972d25016f9c0336f40b329559ce825ee0fea8a959a29e794e0f10f4c52e1c16e3234349d327e8673da556faf716f18151f60080dddae708df03e84c6bbe8ea05321002cb347632e4b5a7852581b797895e1770d9d26b1fd595e103c29614b5f50d13e97d56f63d082f120d512c77466cc83edd07e86e70668874642ca0b16f76d214363b3ee919aa03c2862cd1c6d672b3507a7416ee4a21991b0cb7145b45e22f56456820cd9fd120089df501d21392523dc32404c3d1371a5b0dedd5f0525693f4db267da20e74f45aca9dfabb45d21d0ebccf6998983d00ecd0020a374a1712867dc0681c11ca002cc7b8033c9d7271f9f59ab40800f71c7ef1af09219e238287011749c9e8287576a5578125ea129e1dac05c2eccf4b6cce7e813cc623beab7d3bd0cbc57de88d24124805e18380c21d58e5b620a334c5dda70d1755625c74a615c6eb14342841acfbad5ee6760508123f043a93f779bb23c087a48bdec18ccee8212c37682b3d98dda7255a742dfe0eb727d53ef4b22695c45e3e285038f5288c4fb5945ec2a97c6e3cc4d3cbd07de1d40d62c4a9460ab171f974d553941bb1067b7ee9d042a413c09e14b6f6b1857883250ab4699a9e617f770b7b6f34ac4c9ee46e151d09963c210d182627712a59208247ec86645f061011d81d021dd1cf95db8943894b5591186d895bcd6ffc5952f324b32cb06482cb0b58b20fb7657c9fbb949d55c6f986aa00708558f696230117fc03c2c6472c87180ca28aa657b06cf728400cf46a5f55f7b8005826fb47d951dba32018fbdbcb5a75fbb43f67a53aba2132a0a3cd15e90787880280630bd581e0b531bb78f1a24b2c987c41157e8a584445063c58391c0ca7417298a496a954134ed07a3e7dd94a0ee9de7892c62b0c0162186107bba5273d472e80466558a737e13348690713d98765a9a8a2d8e960f5c53a9c4d9023ccbcd4fc8bf1171fd9ae72dd097837e614b83cb18d8308324584679d0a27b447c881b311c5065f1f61f3b208aa38bac881e3d34836e724039c93787132fa1717ce70ef8e0fba11047090b8c443bddb55ce49a2869d3574ec1ed9fdffa9c4cb508e020a74284f48648b30810207bfff134418786d04105a504e22f9f825d6dc7bc685b552d19002ecbe892cecb0a9d193bbe33cd5ce0e3548fe48e3f3429bd02eb88521426c3c741db1658f7912e01fefb895ae2b682679e3b328a673092a7654c972c199e52e0bd65794791a36513c0f5d2b7abb67e4f7e424c48d4dca3c9d31cb70c8574196c776870e422a0d9f190542bc2e79f31050639e28215df47565ed97aacad00767644e029b88e055a956170edf5a2257696b8c268d75a0003ad95bc301f5b8d06d566c8b16db6dccbf206beba287af24df6850ddffdf7c85d3416ddd18765b8416969b76601b61257912c5a7db321da1d174b02b023116388a8f7c23a08c0a70b531aac461f2eaf81f00ed03031342bb4ad8374b62951f10551c18ae4404a48de1f101b7aa1ffb3fa2b0d5e5814d84bfa470fe7b8685b5f4ad4f68140ae487c019b9d652a05021ca5850cae39275724414a4a5b8af0d3e8c9e76fdc055ec128642c7798e800855d043041a895f829a280ee75551a8037a4fc52db83f83a280f5f6908779227d26159bf38c5225e972e259c2fa67d2cf4e05fdf360127ffb8f5002322b51f815ea4389a36e4c128c1900816505d73b005bf204d5a1fe19ed396021eb61ade00921a193987a7e50f52186ebd64e5c02898eecb77438e603663c8f291165821eade5b4c933cb99d81f29352bf70f58ed5dcfa649ae3f35641179896b5c79494088daf84129c51190e86a359374d17e52a1106d6e704a8e294a49c4d54ab457244f8ab1b3fdb93751604b6348501360c6df3d25f833dcf04ab44b83df104dab1d89d4b641521b62c127687fa5a2d3110937842e65ec1f12efe293047f972a241f38a430914f77ae0c2869d5c3e68245fa819adc490496e75ea3aafa4d4b4598d1dd9abebbf75f234d546221a004d8f130198619cdf8093fa247752d758417468ed87cf2a4b11da0982a76fd94533e6d0450ab19fe780a578c52a6b0ccc566bb0d92d3d09a40b906f25e16e6ad5942e37c3fa51630fe3f22c2908ab488bbd523605be1824d17fe132816d19768af7f6a10fcbec7c8c1d15e9b1e9dc3018374ae0b524ca4f6d8143c041fe9c9d0812c0b706b7b122d9930e9bd2dc05817c487baadea3d75a01b390363327b694d3e46b7cf1802332b497a6f5bd7e61efc444d482a1fca5e2723f3d09f4e89baf56b6c73d7be280ddcf77c13bb92aa6be2cc93a8d76790b9f81d51f6a5c8d63d78b09f26a9f6a41cf6068421ebb059d0c14e163a80b884ae820992940061f7a99bfe3f7ba8f39bbe30a1a2f0357180ce5c16dd8525f5f1c5e10d657ea117b1b8bf11abd04c57637302ebc8e9ccd3a30361100be0b91a58359029809d992c99f223e0be901f36f5978fe15e853ebb2fe589dac147573ba6b1e41040533e16cd1348ea8dc9a3d23e3a96c74ef373f9fdf17fe08d48fdfc5bf49f932a0bec4c5e567a206401708d8d5193c09a9e0c878d07601a4a6909c4ed832683b62481d0046473d2984cee7162a87543208873bc97c3cb18d8b59ce5ab88e21c2a134a80c135c2451a29b9a851781d90c0fdac7e2c6466a65955156b2de4e6898ee9861651c0ad0ec0dcc745e3954b1918070cfc7d6a0a97267dab17c4f7ad4ca2ba3e8cf0891633ac15eecc6a7f1ccb7d61816d9d392fa932e73bde80344fd66781404606bb080ff4754333b985880559359cce49f222713d983cbc1e446eec834cb57a8da7c49f4403fdc53417f8fcaeaf19327a569d3427f781faa8cf1f0030824755b2aab4119447093af4b818c798c124e7825299fecb574b9c89b5bd3570f1658495cfe2d8410a639998e634d14be34a3902af4d2888d1416173ec53881964799e6ad71c9bcde8b3488a570b2e9a47da023a327eecce21231bbdc59c39a9f6b41bb4495c868d120d153d225a7116c7006a9d4c98714eb1b885dc68e1e9df8b939146e5abb6e655013c22df7fda46ab130d64ae91e8961c71c35f3710c3e9bdcc079321ace2a4f0e8908e119c39644b38924a1b1e0f0a5f6cff3392757c2ee8a212461bf8f61620ac91765f34346b67781d6f3a1a0469d577e846ce4feb6645b2afba531daf825c47fe792cf6d4124d103e6e4efc6880b4019976f3aecaf1c97c10a718c5b9da7a52b92cee0cabeeb3224ff77cc44ac532c9a5a67cfa14d6ce5226543619f48eb174baa206734f1f5bd8c099a513827358dfc03a6710f48c35f49f8e90ef7897bd5bd69a7cdf070a3fbe78fd98e8cf9eee7b161645b1eb3bb10eb86eb94fb3c148af80cfe9a703b5976c3706f89549282d9b15c7697c2676567a784438c7691b4d705147f95e340e516ace247b6b4612638b596d254fb246e05b238a28c94b44a3ceb524681fc863bfec4edc3304cda82aa313c32f8ca4030e09f6c0b678ba99b607a739b95e0603228f9cae907181c589ba4f3d0b7fca06179c0c28526c5d94058a820d032e1040d12e86ce75a84a96b9155359753a7c855bd8de5be7d4a054b7c2ed46d23623c95a8a35b1575e0cde81ab2375941c639a98a270bdbb510eb40f42fc6fc504704830a3c7bd80f0518540e1afb2e3fdcdd5d1ac97aad1764f3797330fc98568a1dee058f199f3e62339a5f79beff3f84681e47f193fb3d340344570022c8c840991d4d1481e52fc3dd6e280a226dead5427dffef9e5ed5157c13a90b083e861b79d305c7e9088cd3021c1f5f97980838b82ce527ec0011387eb744a3cd7dab4b106ad856a3898e1d0f7a1189e01cbe2e08bc617291f5c00238e1ad5428c9f3d18290b66eb204cca41653561b786ad4883d3ea7af1ebe251e19c05dbbae5dae89d25cc89479d41c27da1772189fa27efa32029d90598379dbe7c19811d5c645a657971b4300307c82dc2d16e311c063f7efacc968b2a803bce72fba7a0049069442759829c8e1ca645c3f79c73cbbe14614b04cd2d6920e27812533e7df1371bd2e5d7d95ad92f812a55009181838e7f3edee99f755d3984b4880ad7dca1ae612dea5b89102cfd741765bff6999238485a6c6bbfca3765f0f6a5dcc17823b948365169adb0ea1d593e778a1a247a862c0c470e2041e15a6c17209b4f0bb21264e96f13f2f86f0c36d4d77734d25162b6686a8980f07f397cd2a88d963c07b37256b44cc0eca15d446c6f869a5ca0c6b8a14439b65a9b2d4703a5c5351baa6f8ea1b89893d2dcc6c01c523c9644e0359c3a8282f74352e766469b3389acb755382f58f1587ab5725b658303c9e1b12ab2ed8f72eb3f45a81219960b26e6a854229ffc125c8b5e2e07386b290f2305aa1885d051d5a12378fd587ef44d0bf75fd140daf510e8297337c9027d4422d52b4c22db0117e2823faaa04579a243a9c9547c7b101592e5ac975500d1934f22aae38a48ce2e5f0db3c56984d6f47264d6fc5336e9b222081480a6f20a7b82fb3f1afe4f5b06d77302971d0889a8574552ac09659b4af1ad9eee46235e523a49ced0db9f2d4033f03887bef648ca4de583800409313da1d28f2b073d30e0622e69ceb5e3064d52f3eb17f6bf3740446d45b7ab698bcab9b8db1f290128212ba9bbb8b4210691217298651c8d0eb5c11766f79c0a2b3de754949ef7bb80c137554ec67471418db12e7cc627b419dc692df917770ee18ed190635aca3996ce8abfca29837fe45cab4a513943f16b22cc90ad0e006cf6f934adae600725f898dfca0ef2427f324d969279751a59ae5c515b91eed75a15f1c5cfd963090b3a37f725506ee67fcb891f5540e7c15a785f1c3a43a333ea22556dbce2b703e5cb3558b82afab798defea1b876462dcb19ebe78a063bd94415c19cc9a26568cf630e75f4065095ea5e9e889bc282265066111849528bac7ff6943ee0107584c998c3a98c0b9fcf552c69af5adf915144e368c62f29d8c62aff6131521f9006de7a2ff0aea68da993341cc904f1bf06379a6a8fd6daa2471e8ecf9b10e28d9ec986620d480ad7552cc713ff0bb598732f0434ba875b324552e6866194667a3495303e81aad0a23a7f7d1e9913141e709693252ad9f237bf61cd760b1cfb967e0fe1d958832f39ef743296cd5e023089fef0b71a6692d35da5968d05d57eec7f755d46e81d9e22ca891681fea0da0c21e264731531ac82c9cad816e76039d0f65c09015a18549d9d17e0ec31177392bb52919b1827c351a56e717c5256b0e5e5e119a124eae51dc519f6f1d48a080b504e341f55b21a2b807bb9854d6f578d1f82ab1c7017fadb4773ac0a297e6dec82a4fe1ea952b05f7ad6b22e8079672a0190cf9561de3c3ed655422c6d7469d3efde4d1d25e20ba1e9de2ce36238935e207815aebce64c04d855eba25a496c1ba2291714df1b5bcfd30d5547690ad48f2ccccc0c2c2c72b77854466764315d9167a6bfaee1591b0c92ed1742cdfd477c2501d2c787ba13519c5c2780fc9c599c3717dd19041086a0d714c2e447fcc2698983c9be92f02ce12d50c1a8390043e218385b14e3a6e168f25fad14247ea99fd2c519a4f642c3f6c63e5021f5617170238dd07d819a1a9114df9b4027e641871c21aa0cba339417258f53c5e9e4e5aa7b77d8447b23fd0c0aef700a75415c4ffecef92ab6ea03ebf0a0481732cdf881e3008b41a7f72fcee0fb82c4cb5e7b86c95e509cd64112620ce3028faede3c0401ea69cc85c54e6a2f64496520d39447fc053987a7f03ebfa94649ba79f0a554736d109782a1956aee891f70f07ef2a78e446dd9fdd67b951e6ccb275dd06f5d4cd21b6fbb1a2011593cf6f8dd7840246e480a4b7a76cb3ab08734d2cb454bf5c6548c673c07408b779dfe21f8f6b2dc147a31c754ea14b94df7490cbef2da3f55f595a25e5d458df692fccc3ae173b44795e5c6f50d93b256c9246fb3b9ac8f841dcd41bd95e4e674975d62bc1d2cec30a8bb90af8904c86844afa011c0bc32c8ed8252121373d8d8755a2920fac5817d690f7da4c1afc190d4c21609a48833f437f8623106a17f28d7a860e1a552f2fbf287c1dcbda27a14ceddd1af2588b76dfba5c1c97aebe52ed52193f7e1226caa425412fb5258ad13d8a6551ec4be70f6299abc7a53393d545f0db928e6333466c42c952a4f55ea23b32347c9d0f5e889ffefa4a590f3975f04d5687db81943d6074aaa1ca510f0b63ee7d691b1d85ee6f9525e6854f2a3a396013a87ae9c46c6c238532257c0e87aea66c5ab2006bdfa15801a4bc88ada42970c59bbe31be056937e87d94a9b0923072225b00c661c0ce8ea47001311fea32f1914626f5dba17a0020417b8d66fa4ebc1a6b3777f12b683560ca00bd15256124605c5b622f95f42ef6a6442fef59353a33936be41fdcd022ebf5593a928a119b6691054c71c9eb6d97b2010739a176ac1f37171a46aa11ffe0262279151c66a26a11504f30612ade5aa5a2423e031899fa040bd5585b117bc53a8c678cbf14b635be85463fba4071229f8784beccd5b3247b523bb48648107823b91cbe0b3f1bdf3409d13a17e2f5809f9fe7478d485f6d311b47a7f51c58e81aab33b7ecd8a56e4c18547203cd8ddd8cd38050a1b1400241c457f4319c7780b21200d193fac12bc5302606307770e6381558768e86f2fb22753341f72a8b4194ee11df39be1cbe9a3a4471e5ee0f09796a024bab492292f8c0e6a299f918bc06d7f0a8910301a86f6a068e44c33354ca2e9480c3648617280456c8643e2c1c52cc805a413e684690688fbf632f8df2aadad8cc88949b723f61a0503d60e57f2285dc050fc331ac64b8a99cc21943fbd89d7c48be259dbf299ecc9458289b4de5fedab6f505716d92cac58c5d681de0695e75ea4be747b970c88e1d4749031dc49cf783af81a4718876d62bde7f42db37c71bea8e938fc04e889b6575ed31b37cdb077b50b213a00f6e2f22ce5e72bdd669691906c55729d9e1e66d75606241114d40b3ed530af8ad4d8543f9eef3443af4158b78d614247d065439555d727b36ac6ce30a10fd0323af1cc20643252905394526fa5619baab4980f6ed42b0dc60a9ebee4742f1375ac6f2c890f69690ffcb4574996c04ebfbffce5e39a8722f4a59ef7d0e81a892de6198a10903780c3487646f3ad8e3b351464fb6e21de6389683476150130374218c30fae87250b63431da084f2e26be13096cdd4592d8ca350fe86015869c3a251a06ed4623fe7897dd179a5c15eec7b24bb0932f651b0f23c3e48341902a4b8788f2bd61661a81038309f9e4bfea88266210a57a4086c1c6628dccf9663ac46dc90074e9ab32d0000353aae2512618f18946a6af6c697c2d8b1448ec80bd5ee5155d06e245ce4c1b6d4186832b0f2e5bda86e33004179742d46ee987383eeec48880c13b4ab89febb8622e8cf3bc97759ad731952d044478b6e0502d432afbc150e221ce60ac1053181c22375e764852cd32810cd425eca811145edca68ae7c5f02b014b2878987545a36ea04ee3826ddabaac5cd5e3567eaff7a64228a4302ef099bc20836c9e2b49a84d6d8ecf3406e55489c67e51503eab14071c436f4fcc40b98b427e0358b9f6c2fc831765cc82ceeb5b37f0c767e639d4dada43dd056402dd2d3f02e9cd48aadb631d4c815a6f11e8d74ecf1cb37bf547bd53ffc597386456838450c0ed10a2a09011b25438214a9d1b650db4f31c53bca7e1009c9dbb66f8232703a7568583e32c156f0f50b2154b1ad6090e83f2a8eeecc864fe9c91725185aeb6f80d1805ae57c835f39b93904d034d18b0f4d357822ef62f3730f7c6ddc95e42a48176fb90121b89534a1a4e9d17c6b1ee8a58ffb981c4234e33e3617c7bb9156a03d88e553fc203a25d8ec4c2a8a5544a9c66d666e878746bf1f22cc61cd6007e105bfbc0539608517d5dc8b40cd69fd4efe05f3ac3daf214b72d442fdd1e7b3767f819a642de2c042b99523a0b58726c7c1ae530ff3c477482142e52c195f259c97713275ac05030ab6c7c99bc3bb6082988e188b76d1a38018d3b9ea17fbb950cce5546f109ab209793fe7027e6ee0ad2c0ff0183b272c4954a1fa4419c0ca59baf21dd6b33fe2e2c504b71c43e40f069259b3ac8e21793684e4adecf0b407cb46a804ed63dd4b9dd63a11ac2d1c1971e521d429a47067313579d34a5dfb62a03cc6f2b1ce000d568fcf7ff482bfab98f00e279ea57b411538e74ed091b5f982c2e15c121be73bf33672250d89d1699e7bdc2bf303e0317f4f5236053f2a6bbd2b463b9bbd879388d03a5b588d91bb3572359dad934ee0f3602ba688f9b59938c659da4a0dec7ec086168ecf80416e4ebc46887cb3161498882b22dd148587cd170e1e0ea024e43a78c7fd4e6db19520b0edef96fe4c3c794209eb10e8136384cba361867ca0b7e2475074c9e8840ed29f6117d813b572ddd8835eace5f5e8dbc20e909a9ebc063a3bbe92aadcbc20d56def081530fffcbbeef30c22a21be33dd6d3fccec298bd6ab84ba855cb948329fd182a274c7ac6e1c2ee563e2b447fa822287b85940398488885f0fbdb75c29f6dda92a057085c525a48d62a9afdace81e28afbdd693cad97ae38845c8c030f595c89df659c29e56fee09f1607a763cf15837720797b3d7c80b7aefee0650df7258e8686a4911f6b15ca2fb184c1ca016396e80f5eb6b96037e60a2550f8558faadde34acc5e4dbba3cf7f5efda6dc32802cdbc2beb7d9520ad661064609b696abd27c58aad6cfcb3c23e10771e53ce0f39396cd62bfe6110144906e4158bfeeef4b51482b75b24dcf5ce0ff06aea6cc4fe0155003b0ab20ab50fc60c21af7648f1fc7b3fc2d173e9e3904cd81177be0d20fc9b675e23625e2e7941f7646909d25420412d80a7918107d214fd2d78d5fbf50b3c68fecb3f276cf40184e8801044146fc33cc2a0225c6ef248c92a84a36baaf6fe3b98aa6956e02f895d95365177cdb2393708ea91bb774bd830778d6f2c5408d17b9dc6b3f3908d5b06eff00077ddca1c1b299a0660eb6cbbd3a7841fe465c57b7db5a38767bc99400217da412be8cc26bc9d068c8a58dd4a8dee175e63c6e5981f0b30df5194a438b7cdc2a291ffcf3e6e4a331ffcb27704a1f77fbd0b1037e12fe8b0f26fc2837ef1ed72e3d852e047c5c783f535018bac6a3bd6c85a828ef0a6ac8f7f9705bd780c2b1c217b2a1d5a9ea27de1617a2febb9dabd05ce23ccdd0f1c0500d50ddedd4bac6c73f345632529c21c50f9b7e7b20aae0119043a73164129d51c0a3bab681fb229ffeb675fbe1f0a33fc612dff1d3d72844d32c05c6efc2f10ec48efc24e764195ec1a83d85c9780db2b4306fa4174ef893194917d09e97ffece48ba9845b625cd37ee5c0217831311f55918497a38a196a9432c67a4a78f00e5844536431b252e63940c813c65767099c7f815d11f47cbea88bf279b6cfe99e7a16f53bb630d159e01991e2625e51705024625e81fb1f71d5eaba8183513f37eaf50bb20b948fef2ef7660767ba42184df99b3e3db510a674bffca280b0db3f2f163ec5b654f099b285b8d3018d37dcfc68a86f1a0b3bb36bb42e370544b6a751b9b16ca0269e577d4120003e051aa3f2279e59a23a3956b3bd2393eda42e15511124cb1b66d6086d4ad822b37c00ca14fcf3177b5fc6d48cdae641a712bc17363119ed379348179b79de30db57c162462a61f35aacca77a25f5b9ce78f8b9a06c0582c49597ec3ef48ec3d07ca09ceb626e644faa13fa8cc2a731da8ec3d7f491844e4f82d372b47399c70d8122542da0bce213920ad6eedcac821ceca4ef00789c8f94f31de7fd388b9deebf57f0cb10a2994dea43054ac5e66a9358c7da0338931acf4c74b483bc8c41d11ee7cfaa9853d78d8692ec6d78bbf332779efdc0d07d6d87140b4a619679ddc082ab350589b821c1d030ac74dfa1a36e1b5c2dddc15809dc751003bb6feb1375d0d7b810cac7475e2d2d7dc04b037528baa2f4eba6d66ebb9dd5f09b1f3eee5e39ab914a5029ddfd284a7cd68cd7d055d36d977b493500dbcb41a80d806fed38c4b36638bde992070b09e845595123ed0e014e145cf5eb148817ceb207d3bb5ad38566613409016a971cc441186655d400a65cfda134c4efd84db9d009faa971d44aecb3a742ab53a4871b130944ba2de1c85a129ca1243ad13fd2ee9d3fc2bc618d2a7d1a0665e7ec2ebb3d28d92f06f1a6e571c93acc3a0bb9001c078e5c48b00085e2b8ab2d095bc033b0929da49d2bc336bc76fa2000a19bb2dd6bb15c415c8c69b6d5e9317a4afdeb9d0981e8e1a02b2959e7c68ec232dc7a7e1d9d2413afd444b9edcb1b7c738dea00487bdd30ba5fb31c54f8311ff518af82a1ec3eb18f4e7432e36d50e6bdf9f03cfe6ccb0821e7fd5c22135d40cd841cf2335f4d8a16ebee988c0354472a0d2417782ca13b2fab97acc5dade72dfb35de843e0019210810968a046e939c14cf268c1a4caaa592cf06f0712e517f4fc7f4f4b4b11bb3013c59c9a3329e35d2509ef579e0636838d61d4a5632ca44d5103892662c1413299f02535ea180dde66f6a12220a62c2f2d8f5f43b608e86fa129fe392ee68f79b850dc34a1c37bd7951266c4fb1552f58bd0a648a851f25f1bb452d5344bb6270bc01867409359ad39bdc7eb6c3a5d1f26760fb4036ec4421792782bfbaead58ce9f148574da19672636834de285097cb927dd85cf707d6a32a88cdd3bd9b297edaa7ea02023855154b0198090ad35c07cc86f638baa1ae8c97cd459bf3f709d99a35b0b027e4692e14efb1658627fea9d0f65db2804c1bfe1a371d12fdd3f0604143b645fc04aa52abb2060df1a2d6de557044743058f98fe24b865a5fae2bfbd7f793c9dec3e849eb63645924cc447ab0602aa118e7ff5cbb5ee7225725667d8c70549d75bb88652a55c7b97a9eebb06ec8b18a3391dfb3d5ef748db1881e64d1406711063a16a2a33caff42273a2c8bcf956f1fb07965d67feef36a736404013a9972e3c9e7e4a54e32cbf4ff199cd47c39b08fd2a50a4ca71d9c9c2616b0ed91c8f5e4203280692b5e979acba529980b4eb858b2bcf889f3bb42afff98376942e39314ed248dabb592617fca73e597c36cec803532ef8e41610eddd7d6fed91e7afa1c8a513b9bd4b399af9d9c1105470e314067901e21206c3c4ab7068fb905b73370059952c80d01fcc4a4a2c04364866954cd1d4c336c52539048cf430a6091e4098c96fd44a913b0622dee7ebceb03bbaae74300abb53a2a2ff970eb639c3e3f9a27ba8dd119277b95dac8f07236325716970d0c61c7c6bfbf029c40f0d2c18a9c1388c8e2c80c6a5284519555ee89db39e59165f28cb7d1ee9749b5164840615d5f9135e31e6ed93fc24d01b692811f8ad0d9d492810e640c04507b75c469c6f6c6fb0e4a18d62ad78ee35be1cff81ae4c2b7bac9974244fedd589407b3d2d434c1c9c89483cb13baeeb9bee37321aadda45d21902c49aa96563fc928be3cb177bfb8dac925ed5f7d991ef49b1742d07ed6c97597e93996559d4880a43b59dbfadc2410d9bd36e912d2399c6ee81d90a492a878d41745ca8e2ed184ccb1c0cbdaf189ed339585fef960853de928b3f2f805eb3ae428e1a179445ffe1313007275ef49f05d18dd5c0cec80ff8061bb85d77eaf612cfd00d9ad2fa7fb8c451e807a3c02d70a89cdf91729dc0a81e415e421de570be80b2594a849b48632f8f3949f9c14ba123ae04e250a4f203e2aa249af74502b0df2e1aca4174971f948f30c62f3bb710d8cfe7e63fe905e46d2d4c617e8095a9f7e4ee37524791fe9a53667e50e33daace4f50e3f91833bc68ef51e607b70b81d7931fa2adb81429397d92fb5a1a9d37cf415c42d926ba7f17dfc540f30acb4dee69f98a903ea7388b5e91ef95d2c44df5770ee6ca7c9c7ac57dcd18e542607b412f5fadcafd75067382c760cc192c0ae998ae74230670480543c47d3b8beec53a956a6e7f0fa2ff82a0dcc0f6e13ad2eca7bf8e054c2ad5c92609030453047a61f7b059204c3b4e072961e2230c19023cb2f638922e230de9e2f800c5eef79154b2828ddd6b0eeecf454105de5de1f1de18737c43cde01d080632dd1448f40aac482f12cb4acc219ab336ee1d0d74ed403fe4b7bdbb6db9b79432c914e00ac30a030b8f12bbb34077d21b64d707842449a00704439429455ae880449921202c402051e9009916c22cc5b6191a4aeca874861aea16321fb9695b389179e4a66df10317c57a15ef9c75ce5a6b0799de830d824544d2adfb9dab88ab2bfa908f5474dc89f2dcb1a962a564fe0cf271c81eb95b588b624745322ebc6e57e38fda1c34b7529f3f98c0f39beab83bd7e4e534cdb21dc79dab5ba6764bd2824fa13368da5a7f6cb565eac6b5c0dd28f3c71275ac3f355f211732ad4eabbb401b94c10ad81e6dd7d622a13962d08d6b81bb516ef53a1d77d1ae21506bddf560dc8b2f99ef821142d16a38a7ae8a0d0ba40ba689ef088c11e01198a25401b218723032e4789802cccae037c0d468589c51a3458cb2faca6c5ac0abdc342c661d194c416e1a164c784fe030370d0ba22e0bfcb969573811611eb9695780919b708fdcb42b48d0416e9a0f6b78fdd59525a4223cf82ed15791fab35cebfc200e4c5f5c608a445fbe543f070d9e61aafbe64a3ecc926a9db9d62a946badef5ceafb167f3d16f72bee55ea2ff1f9e444f5e752fd19a6d65a6b9d45b9a639936b35a1fe09f597d46f52e3c0507299813cdfebd93735c5257751b197e8ebfa922ff9525d9ab5de7b6fd73af39ebc9a66214937a12ff0fb84daabc7dd5f8e059111a6066e8191bbdc55a9eebbd181ca860c99fe6ca539bda747fb237d1569967dff1126916e0dee973d5d948af8cc35ada94e14d24104a084653f15760b1901a759f6bf10ef28a036c64161aba1c3fec5511731738031922207d9002aa238220d134fc43066e3428b255852704794b39c2795c1047a29830b8fc9cb4dbb42098f8ab59cbbdb80c121ee0c6fb96957fcc0e50a2a9876450dd6562f0caccac94d4b7a23dbe4a6259591cb71b6edc0cd8051b9695fd208f345cc35f385064e81716eda972e7df1553daeb91e4ac7c5f92ef6ee8773bf68d171bb90a12e0dc2e384f4b45a3d61108551148651a792d52f34a8b63057c26009b3858bb33adff7f274e3c59297136c616a5ecc602fbc88e9be18f2c2c526a6e8dd4b920746101852b04d19ee6e398eab01dfe4a675e08c5cb6c01c70979bd68131ad939b464315b22a0254005aa3775e1f7bb9c1fa4cba33050f4049aa01f7e2bbb6de4b5b9567b4f5de7befadfef5b71cabfe52daa305a5f47af7f6d8dad7deed72f7729b55d5ae2b265403646a8ee9b45afaba24edee9e286f76edeebdf772def7912dfaea1a1df0c45c8e98badd7beffd7adc457ff4b9a209948549d84813282b0b3cbf6c26137cacee32619af057057e4d5f1d79af57c6fd28b594d64a7da494ce39e7e436b1d686c172f786e91e2bb7fd845ee79c20dde8dc3490eb537042b1db84633aadaa2597b2bc1e6d8d0a35e43c0bd039e7e43c0b64fa937219c8d4290732fd699d05ca42f27c7a88532ac4c75a2b0bf4e543a9cc49e68424957d3a487def032470475f2c38ab7ead4e3599850e528380819d6e932b0a70579d45e4227ac8ccb5fe04997490fa14b0405fb5ce22eeaa8f5d2c55d5bf6e4aadb1fafc724aa132694733e64df37234ab489194bd06d9276eab9b523803cc25c8ee0e14c3183f80f1c61724c08106f20d29c83823a80a1a8e4440f27cb3aed3c9dd4eeeaa70ca5d870426778fade82177afeafead4093bbdfc023dd88fda5e33ae50784e37432b793b92f7932370515999b65eeef0d997bcc5121cb1c157364ae8a1270ad1eb0f50197e300728923052d6f5fb72e45e4adcb1c9bea665b6bd5c9b54badf5f117b946a1a5695208e54a2381945ceb08cb945667ca3e3e5136e4f97d9f99d9929971e918252ab93e082e43adb54e0d644de4dbb3050d5ec85c68fa72e666862b5bb410fd80940359b6c05082083423307a9a39c08a2c6108cdf145144978d2314a5d98f1f2192173a75007506c3fb9b00744fdbd792b36b1792b9a4059db03fd3083cb293485ec6ff8b79f553627e0cf1aef573535a96ddbb66ddbb6eda826e5fd6c9ee7792028fe4ea8a2aced7138869f8fdb76134ea529a090cdef7e8ae31a37e13463460d46da84558726c86d9b3f3e6e3368c236676d7f2fc6b407045596f95654d91f20d26e1f1c81bbc7df5cf61c5461cea6eea8a719147b40818148a00fb77c027dd5dfbe097d35b931d58c7a07f17fe10a25ae6080ee91f8a3be669b51e237f8d8c3a914e875f6c2b22289923d71864ee6e3aff92e5c89d0a11e454111a6d83d82144cbd07a21e87e5064a9b51efcdb26654083577a65f48b30f4585f7bd90feed8af8b86ddfe32eee37291d64fbed8df46bced0aced379d9c9cb2276f423e6e73334154808fdbf61b3cb16dbfcda4e8eec91b644ad24f32c20f33e0f7f4938ce0aefab75b795ecfe4f1501d0fc5e10324b0e7fe0f90c033f791aeeb9cdc5b3fda019806b9ffc45e9500fe27de5ac447eabf52529dac94dc7cffe62b4ea06421df6f590645e8ee4a49e7a47e27e25c519541f091fe26004a797ca442c40d9ec0fe1409fcb5a6b699d998e6fc254d7c9208c93c3e7ec1e567d302fe3c6215bdbf35c19435dfcac82a5eca021150df8a3f1fe0c0454656b1dd69125ef7f7bd2ea41c797f365d6fc27d57c2f62dcababfcd7ffd38ebfefd308e4ae777469e2721eebaf727cc5fa9bf5f7e383a3b3c4272d94faf14a86a71f8de7befbdf7bed7937a776f29216ab620093c9b3eefbf6ff2ae4ad83880faed9bbc1bd0d746de9f4e4f3d04e9febdb7efbdf9deb761ab83dcdf1a3cc0467ee24859b7070ed87e398feedf9f473de4cbf73d5b73ef5cd109aeb9a3cc78b6e687198c73defedb9f44b38afdeef74d21ebc29c1feada9c1027e4c211871fa62166ad7dae89024c70e229db39e7dc7a34816bbe7dfc7cb43c22cce79ec7228013dfc335184f99e11a2790e6e4c2dff123a3bb564af073cf89a38f167b3561e7fa39387f0b57226c5ff3db03596b82027cb420d4842b15669e5ff32bfc40198be5cc3594a670c6e24a049af1d38ca1e489ff0311609c551cc862f338a2aa041c201247c494653dbff919d2ec51b7992b1bfced642386e0d9c6b3fd29e4af5985c9fe1ca2628b2c16fb3336b75827eddbe0c9c2cf845dc9764a0873ce597d3aad56049b9f661d38ecfc9f7b457a3016a2740a0971f005df843da0c0f51fff089ffa0ec0e09b9b26eeea0f8cc0382a2b45641c9138b3e6f3d1da26ceb20f8ae5fdc4f27a3d9db54dec908ff6ed6ff004b63925a8265802ce4f90c98ecf117faa0e4d903bc44b99e43c8ef823644a0c45648ed894c589efa3e5e00b2e777c8325e01de24f7b1943e28897b2703e47fc99494f590891386253d6d73bb6c629c0c2eb1d8cd3b548912ca4919ad64c5da6cf709b15d263adb555c7c7af307a83d73b3fcca828eb29abcc4ac974b27933bb2a9a5aa031339a619ad2384d7bfdde7b9d6c226c3838536c2365ba04cadc0731dcbf31711750e6c472666e751f285fb19c4cdc86f320aeebb83445dde568502465b753ee5580bb26a536fde59c7990bbda5f6d82284db53437421bd729d064b03ca57bfb26cc47366b1f2cfd258e11f88116dcbfc160b0697493ee064fe04e2c81260a3efaf8d13bbb9ce9200a5cced9847de20b855905d685f7deff5cce59bb70eeace2633ffdb8ab05ff395bb26202f68362121f1f0ebe84d58a9f58bb48c718af77b6f973be9a8cd828c467044cebe982349bed1847f50417eceedeae7edf3afc90b44d0b14a886302dec40460e4b00a10649b32c51e1812ed09882882348fa4f7fa42fc40b762146b814bf9aede2f5cef7df1565adaab824c99737481bb8e401a329f3b8ab47c88f1f3f3f3d301185897cfd68408e1f487f4a93f86b4a51d4e3329a1352682fc06e6ced29e24450a63db5d65a828d1286a44c54c851444e52b5432b1057c757d3d11b4be63799ef9384022bf07d0a90f017b6841c814b9e9d2cb8e4e11102640ddcb9cb42ff0bb370ef75576a59649415692dc1e379de23a9d9eb4a9d3c9fd8dc85a5cddd1f293dfbf8387f47cb734fbd1d282e79cadb4a414239773f97d8cae4ae7b2434770ff475def5b4c84d5bea927d963c65112517b8f02cf1cdbf13bc21edaedfef5742ffbaee3b2ac419378fe3bc1b82100ac9a8b0695c1ce50a12a08be52b8280127d3c680187186454d8518429ca94524a2fb789608ccc892a1f278e7521e74936c9760f8270d9321fa69493901e44e0120b09c152dc95441305cc6c57216c79fe7cef21f4e21328a53db514fd2cd5a5a2dc4d9da69d603dcb4e2a0282bb4a2c94572a1d1f7b7a66c2094b9aacfe27cdf391d03c7986b82cbcde2955b1dc4f01197833ea219efbc763f0fd1e91590b459789d2ad6e46ee2a692de6aed2c1e4a35a6371d7b604995c7e79e3526bcb4bad54e663e6b82a522ef4c8c7f6a848b7ace4c05dc49e68227f3c10e9331e5f02f2193c13209fc1d7cf2083e7117f3208f23cff0304c867f040647f90f079c29e5692d6464459a8f77123e126b419d17b29ad7def3dc5f251ee45af2505973e3bba4c1d1ce1ed3754b91595db50eeff365ab34db9e9911ba1b86f4581b118f9d8d4a86e47155685688d3a151901de441aab22c58007cc54c65d9debbb6af5ef93bbb65f55713b52fdb671c9aecf5db7b293927b4c2ebb2ab92bcadde54aeeed67062248822888071d7e4082acafea175091992ab2247569ba8209b27ef7ed6a445f5ee4459b9191bbbc1e33468721cfbff97a834b8dd48981c4e08148fa44be8d7c065f029027227280c803f90c440e646142e481882bca01206fc4c83749c3262618592212b2406b29f44f21caaa41a81af90ebfbc0f00226f5f4e730f458db04ca3a69c4b56a3c0721751c9fd5ddef23ae5ee8272735b559da167dcb59ab1b94575c55ddb1233e6b5d64752737530aaa2dcaf2aa2af557d200f44f6ab8c88bc916742e48d7c7d23461e88f863248307f23f44c455fd2689d4701e855386a3cc2320e13412ce849833caead94459dd8f85f0aabe91072257555c21a0c813792643de88f893a5fe90af2293224fe489883f451e88ecbfb101137923cfe4ae30f7dfa61e42fbaf506e21a2dc97a9d6ed296aabb5d6ba55d4ea06fc36a44b340c655afa11ae98fcf8813299a2809159c467fd8f07223108574c3078200f44fc191f830722574f78660bbebc3dbec459e7f336b6f2f69789be803cfd0c5ef53cdfdfbd82fc8eef007c7f47d455f19706dfdf5de98ce8abf5fd5dacdbe2af0dbebfe3d2c9e88b83efef90ba247f75f0fd1dad5ba22f21dfdf317565fc2580efefce7435fa727d7fe7d43df9ebf5fda82094106a0845c55f1e7c3fcac7053b3e2eb8c0874e8dc6a6cc9b79c18e8f7e8aa57df810574a66f6f14866f6d1a00b89a1f83ede87588ae24a04fae28b62a97afa40998207ca3b1e28e73c50c679a0ace381f28d9091f016092f91704828d4a158de174b0c002a94fb7d668158de1e628975c452557988e5588158b6b22adcb8f818f3b19f827043f2b17f47b8d1c28d29dccef8d8af23dc9c7cecbf09b9201ffb6d426ec8c77e1c725542ce28e4b6f8d80f869cccc7fe2fe492426ec9c77e54c895f1b1df83900be3acfe9e909b5156ff2be4ba38abdf15720208392cceea1712724594d5df41c85171563f072127146e4fceea6f855b8db2fa3508b732ceea0f40b82d51567f90704b72563f4fb8c928ab3f8370dbe2ac7e20e1e6ad3a2a97c95f1dc46030589433fe0ab2713ce5fe9bc65d4e72a4c9fd1dac0b6a1eb95b097694fbbb2177d1dcdf11398afa2ccf86a8502cbda59f1e6d4843f850534a696dd21e2de0fecbe44331282fd252eee7c2f216e5feba199553c60a7f6aba9cf1001209e5868b1ae48f1fc39f0f89fc81c1925956f5fb87986555c5cd68c3e263870d52d18d7cecc7661cccca89bc8ac7c45285011ec2898ae86b33725677117d4d981b196125a6dc5f6e46b9ffd6faaf53ff65eabf4daa586e1f50544018b86b04b4a534734ea74557684b67684b66320e6d890c14976356932a0e4819c77bb81f40d184d4c30cf6a7d99b65642538c238d83f9801e144ded07322bd1e663088a47e94521b06936351723a63674f0a62f4996c3dcf47e279fa9205b90919b8eca5dcc34c8f31f0040db01160da5c6a206fef71df0445d8f2f61c4880d9d3532acc39f24a849a559873d86f253271c8c81bae7220b7d0c96c31b3a2a6296171a3cc6db6c7c74b9eecae2fe21bd316066c08a61a228209b57a88b56fc5df81fd10114c485c29992f7af0029e3feb3102bc62425d6cca5a31f1179fb2aaab28cb075caa5a3f60f7f419cdadb443923b55da818bd20e4719c747fa851522589e56702be150cb8d83191c98bc962b0b4f60a08ef087eac0f9d9f1383a4437720154cf868dd4acfa7582c9f52988e289a7e1d2c21eadd563136926c5b654246bad1dea92eb3b15fc2cd4efc75da57d4ecc400bb66fdf09f74f7caca94f61ee5135dff0892be9915722584efcf17182a80fb2a09239c71c7320e1e4ca4d3b02297bcc5d9dd712e4a61d01cbd565483424aee46ab77852ae9ecf27778106b0c99be8475de8311feb83f5774880cb697464f3d5e667c7eb08c52cdff734571befe6ade8d5d464fc78a859f5314e7df72bf5dd783ed53c39ab7e0d0aec5054d49c248a72a594ac0f76a8a15acea76ce4ae4a650323bb363118857a2435a3623bb9e6fa6db37165c4103c739be72a8022245abda9ef4dfe72b23e775da51be5a1fa4ec5abd46ddb3637aa005812c4aa3736601d8ff33d4f4fb9fe44aa5f71be629cf029cbbe8eb1c4365f139634a7c2d299c8f571587a17250aadfcbdcdbc62130aa1e33d1b7697d911314a276c0af958471e2e4c2e679871dba690bbac7801cf4ef0775fab0a748efa3a42a127fd538f7acfc123dd77fe5b1886e54f7e167c13516fc3279e7f7cacf85121fe149e54700a3ed617e7504d38a5c06afd4934abcca21ed2d909f7a8af50f255d26dae8e7b4b804e7427f651d63ae1de7ef70d2a4989ed63f75b677ffb0d75a70dcbaaa495800fc8e077be214afce1562d21ad0130699179cc63d6fa50ae4b65a769a6afc7c7faf591ca19e68becc544ea994f587097bbeed7f776844dbaffb7d95bb7a4c94d43a2295b909bb6859627d24cfabefe5dddeb317f11891de5dab42d5daa73c9358c5c3a9296a69cba592477957375bf25727d3cc4adef6d35db4752b3c5097b0ce18411e9d96d470865032bca98913bdef342afc91d6196ef29a804e74f9cb389840115dc45aeef31777df6a3fa9ee4b3cdbbe47a6473230d1d6448a30417a13748eb4526268a1444bcf1021ba4fd6efbb72d12215c9c489455df830327fc21250b261b2664f5bdbed76fb0841328abfeaa049c9f9c20124a8f27489c77f1878a3f18c840429945a4412271bec1124ca0acfa3fabed9bc4f955093b9eb631060c17128a8b0901152e489ca7e20f94ce0ad2171e481c31cbfd1cf187be60860b11f903c51f4a5f315bca8174318bd51136e9d5478593e6e3928ff557495622e07c1fe78be463fd0d0fd1988d89b4854b98f838c3093b32548e52709715574d7cacdf590131597d47aaefb1fa7e545f07154635326c5247d8a44dadc63750a228fb6f4eabb51c386fa7725a8f1f92909227f777c73e9d7e798c86f56321a3becf43a1bafbe4a309aee4b23aad3a5de1e4318fd52fb25d684db42df2bdf79f6cf93eaabc7f7bc700f66ffdaec3767ea193271b01bcb79f58fae4efbbce87de275b5e89e0bdedc2f2c996bbe744b0ef894eba477d69bf7b9408a8ef0231cc5a000188ea00341767a670e10c9833d0e4fa9f00e4e0bc2022a40c207a9411851955b2ff8f667091fd5b6768c9fe5ecf14db664187c9a50e8f9922be20030632ae343589c9fea856cda296c31ceaa8189d1d9e127417d99827325d9439a255e689ecdf330651f6f71903cd182e6a88a9a2850b64c8b880862c712e32e2045b7858c20d2caa5a1b6b09c23a6ec0e58fb90103ee1d0c21b2d340bad7dc4326102fb58a7126573198c835895ab9d079d26122624a23fb572770597f87aac2004176306194691f739d9f84be9eb2d4508a22fb83e0eede83883060c835dfadd58ba65c5f08dae6fd6afddc4b9d2d72c993811829c020cafe0f06126288b27fd72f078cd7b496ffdd9e040812783e0a3db9d6aba5d573ce39a7adb6bfeaef3bdfe54935619c162d62ce7ebb514ab796d7dfa7bede0d4a03a4ee832deca99eeb42eefba690379c37b1d63544ceab145489865483a59cc050420c2a1e10624246c31a61ec60068a2a458cb1a1196207296c46150eee6f4323973d12e0a274050d4d53685090e5d82570ca410632680c11051159b6fc6f1852bcd2c0ac21e3b6d4e81011f1c61a6ebc1084154784e9210c12301da521c4992930d08081cc51dd2be507913a8ca33a8306d1c510426d2869014288a62d5a185105081a9eb0317cd1220c6b430decc9a006bc9d11c7cd62ca0b730898145a6c98e3871959e2ec5e547146f624248080e1072b475b5cf0824b2e473057e643b5a3a3faa9d2d9517d9a8ea268c0d4cc367d54be4486eaa8543a57b52486ab5eb5936d6eda52985cb640e085c9fdb5dce213cfdd413a98e59982cd5ead15b5549bb4a5a18aea3ae7ac40859949c1f3ed5a0af4e98c0c39903f50b81ecc20bf87d2b99185f47e7a9841fe40d960e4f7503620bf300baa65a8f2fe932ddb5a3aac2c4b141459a60fcbf4e9cf74caf7391568e63e4e14c213859efc5e88efbd2ff4c4145870d67c0fadb5d58a987399b9ad4b26c66122c60ca380faf98dfa10ec23f16c5798aa145edecf0a24a9505113e94a6c7281e1a9cb1c9a5bf29455540a67f2133372f9f91c9a439328871e52d443eecf6e8b4f2bf391e69c733e0a3d04f5f33dd49316d958e8640f9ff8d0d00893080a5383f95355bb386b3e2a9c491da4a8eb203faf380a93c8b4a135989c9deff99cf35360a1c71818cf2a20c3e7bb6be5839ffe481fab449f295e2a7e94524a29a594d225f4e57380d9828b2f64929e48fa4de82b8427aecc646c8c114414fed50b2084ab7ba9a0774a5acbf5bdcd6eee3e8fb6fa4d6715b94ed994a25ff72677fda732caaa5fe9fb74a7170c39399d7476862e5126779554763f4aa3b3327249cbdc39e7a43297cdd513f61983d55a41b6e2920e5249685675b1a4612ce5bab276a79e71572b4939cab5d6aff2a8b55cadd3fa553544654b581caa1259366513a9d65a811b2a5a23e3711827d3ba6960e3c469bdcd3678846ecde3af9d9d35f077aab1261481640e0a70c323db9fe2021c956f267093695dc981e987017b0081e94fcb1dd1dddbdafd4a0edc6d5d6b6a38b2e6c10a720de7d0844dff19aa60b854fdcce56a0aadbcb9e5d5929adf20d3a71ee41e97d7d4fa6c5b23809cc45bf7bf6ddbe8fd951cf8be677bdaae2028fe4021c167e2e44f0648f055fe58a512ab588e79090c299ce48451876de412fab2249d73ce39e79c95bce0051c3649c1234b52ef6d5f4de824137f7d5e00213c9d666dca288b3e12d26cb6b4c444bf469c42433e5eb2c103702428c238d2526b2bae4a1de882546992d5124e3dd7d1865773d76d5713497dd9e5f6be4659f37b3ab907b82677955dad0673572bcdd0651bead270a820cf020ba2600a8e3ccff3688dbe9cf4707b3da4bee77def798fe32ed47b6f9b48ea3d2abb4878b69427652a5b0e32e5d4972dda4648d9680de68321add5a00af3b183d0ae73ea9e7c84adf004e76e0d355a83f9ddd53a081ad8e6569a6128db23fab24d94c5e4ae95cdcf5cf3f36dcc5d373fdf6e99b46691b6a1367ac8057066a389a4b81e52efd7a1be26fc60b689be388c41dbe4894db3a60a918fd34607053d9b2a625764742595b9b0824f5dcddbe271e1a1825b4fe0ae8c8ff30237571b1d369fa23a54a820efc8e372445f9e8cb2e633bdb794e71f79b1232f067ab131b8ecaee4398ef37bc0b8aff729964b8c9f2805bd26d7fc0d6b190a9b21789e47a992fa4e79d2b086c125b511b313505c7def3df82971f5894aea7f9f7aefbd9e59702b7980287b5f17d227eae4e3ac754e62b0ed017b6ff39e788199cb147d9bb06bf2f17a8a8add19d022e11d2e18f49a7c9c6f63a04e4dde19272f96a6ab41b59e71d74a49e704fcee3bcff79adc0582bf3d5842ceef107f3850660b0f903b76843f377018014309c0d06b9049ce67691089f7e04ac9f6de6fef85de7f61ea778459bcafa108357fef6008e07be0f6de7b62997a3074927af0272842eac1f736b0490ece53c024e7777c8308c0790a76ecf85478010a86db7fa1f7f38981778859b69fd356814bdc6129f271763567cd4eec9cbcef7e9df77d351f27f815f538f83db073f2717a5bbca32e8d8f335fd18b69818560ee2a3b599e3f6ba99f4f9fdc55a2c093c1f7dec5d1343e5e1f412221c06557f36245b6e0b2ab7ddfd5dce56d097910b901975ecc5f348db3e68362499fbc18112ebbd9526d467357d9112db90b158629c816dc25cfb293b92b465f5dad16cb9d51375b2f60f07bb2f7b446efc5b8abe2e37c1fef6a9d5377a533722c1d117d75523cd549c9445d9aee090543057d75f33cf0b7cff33ccf03c3ce29eff3b09332e4638ad65229f069cd5f2f190c068b1254c50367ba32f54aad0a552a95a816815e57c65d5b539eefc5e8ab4bd3d58e32921a223de092d6cae4f997d62e9801979d57c65d4ddd1977d14a511e4a7c62337d079500607a37f20c31764e5d9aee09054305f9d8d15a2dcfafb02a446bd4c9d3e12dcb94e77b5eaca8ca662a1d32e6921ea2238b20f68293371913a987e8c873b68484f6495d8a2184c8334f2b5760b0a6d99234fe7222317a7e4a8a1311f913141dab35169b2a15aca98989beda9da94b9e4cd568c2289d2154a36a54b574572355ac8750d1973a48177ff9991a51080fcf4ecf660f33c2b041c87e13e63f43d8be26bbb481486cf6f2277b598539c70a2b3cac1a4d26172b519818d2d0956ac6dd7d1265e1f5888289e86b5a31e79210215490ab387ba0816f6ea51a6af36b6ac41f2864ea7dbc8639a91ed245bfaa51bfbe07dff32ec40a264f77a322e5e96ae4f9572c2bf532f23ccad3c5c83396fd0c2e7bb664e6234e6e100912127dcd7a44c1f5a767d1acf9b343ea21ab205670598d709e6fa71361ac52fd8f449e83004986344844f3efc5aa7f27425241aea2cf3ac819b89c4cb3d9e4679c455f35a22f51d6a4628985f0f0f8acc4624af41965cdf7f11e666000c46820badf15c3482906a23cb38733a424c315db015a2e3d0c9392500b13e35a6bc522b7520cb05cb32f29d5c094a7e7caf5464352f6d083eca013d917b28737dd4a35e0909d00fd2e768fd677722bd160646480fefe5a5f849aeb4cd241e64f2386acd20b414ed448abdf61fa573715c160b028b3dd55f36c1a1746797e07e5e94d79ce2994e753af46b1554bc818b9fcf010ad4a647f26e921b57e15c73c7f0477f1d83031f2b039418c58fddaaf1a71c52435ab1491a90722abb8f2b7b9b499fe9767f4558d8c4002d82f72a467824d6abe366b1b37b162f171e6f227db988f53ac463eceb636278871e46367566e5a0990f24c85fd3627888104c2cc99bcc967be64993c70422737cd8b39a7ddbc18a2c089524a37ae69959bd64512972e8c9ae3b8db11f1c84d5b8aa35a3b23c0a5e1f5100be6fb24a93ea578699291dff6853fdf83f7b70e4a7f718204ff0ba158d08117c86f7e0e6174680ae3435112c81423620d58113028d54fe6b5254c204b424a1757a78846614b4731cc9662b4a525c288d1b9bbebbcbe5524c9519e58bac8e5f843502e850821cb3b6612ed9b334f1cdc99604853b1d4c43e28e897b658745b4c2f4d5ed4b82e7827c3a5f2a5caec92f4a58bf9c5cc1736686e2abeb8d15f9e6c075cca97c304e2882fc98b979b8a242f6e15b5a4312628542f08e6ddc102c111c169d98efa892baab8028ba6e28a2bc8b8220d8b45144e0855430e35282b7d53c4bc4e705374495d95e6eda25a2cc4f05c7eff4f22dddfddaa9e628961b9a9c0c28c5c7eeec00aafc9f9d1b003228c480ec21091bfe5881cb24513b9c38511e97125c0a2467adb4743ba431313e9755d6448349146a418911a8889911eeaa321073408915e7ba921337c359d94e508a4216b04651c911efe3c5cc141d2702ee1258b10e9d57c34d4400989f46e3e0f5745240d8520a1c510e9d97c34ece08821d2bbf96808e44c8cf4747c34e400862272c80b4ba497f3d1908564447a2a191a2f4da457018fd5d117688462a8800799344ca4b7d22193a68989c74aa707145f0851b4f2703545522706320692865e7b167850668a261df088153dd4612269389f40c38a11e9e97c34ec29e388f47a7c342cf20411e959f0d19066b16189f4da13671c722ce1f4edf96813786901d6da128247ace8f9f83c5cc540d2d043c21223bdf62e601a63c90706481a88dc00110944d21df0c81759e20c1909445226bedac415da479d184820d23d6c9296ad5cc12356bc3b3f7c88e18f1f3f7efc6801911e0291400e853a3ec276c12a1cba9346596474166d65dc0af0571167d1d19b780d777ca4ad22ee0221efb88b8efe6a1d111951850e49689186a4dfda71575ffafde344a9158b8c81a486a0a341b67fb3ed03384985727d779c4964666c0676a7b2439e487488b0bfa7aa4e56b144810a652a669043173183a70e6fab37b518cd80044f14683c614943d390c2035ad438604b6c41d690270ad2b344be18c304a4b719c1e2441ca4c75d89f204e9dd4f8a145590defd6cd832108c1982b43b63486b8bc0d5c746356a48d00f42640d77c690d40c9ca1140e8c0758110f3714f110e3412895e5f3a7ed1766adb593dafeae1b5737fbf9d76a1c8105981b9000819731658c80088b127074a1051bfe519fff52f52cd21252f27cb9545d181aafaf8dffca8a205b237283f63b5c59ce1691bd9abe369688ccfdb682ff139a8fb8a802979df8bbe8a4fecdf43a5722e9ac0297ed5f80662b96555481bb00cd3e05502ee77b85c16041f683b2cc8761245d987300a006ce398dbcdb894ee8579f09f02cf07878d85f41594afff94130b45c987390595621dcdc07f07a0ea1df9fea21373f5181cbf42b00949fa8c065a03c479e2303cd0901af77ca599be0916db6d7ddddee3dff7b1f3abf25feaa69a66e6aa48cc269f12ca12cfafd8d6f8d58ded417ce261fcf2ca1aff2c45285559c389b65bcc0b5d3e49e32994c368b2aed224a9f806954aaa693ce272cfc80f38299a1d0b33c8f623e3a8e19ac13a8b7585e0e0b0ec95dcdcdf20cfdbdf9e51ed255e47232d124ce239b1eb04bf1d6185c5ec719a2619aca3ca93d06cf9f3db78c29933d6c551fe5f7ca562e51f8b278c3c0e3f8b3a5c424021ee9a32c84d8fe4db01b267c33937d008bec03481fa8825f0e1be76317d219da81c1daa859a1df1f96db3b5c356dd69309049f96f9bc86c4c248a1628d17ca90418aa1e50b3466be288d19832c9b46ebf7d024e23f6953e68b6cd91c6ad91c6ad91c6ad91c6ad91c6ad91c6ad91cf281dd713a5156fff73bcc757c1cc2ee36875aeb8b0d5ced0af7c9963f4a860f42569eb29533b9ad84b1a205a64579ba50d1a445660f79fedce6acd766080b29a25392c8254e9ee0900d21c84a538c72c99367914a3dc80f732e759039653e760ee2032e6f9ea4cfbf3e548e429916c9e1ade06f7fc2b287dfb7c1b287abef3d7776eff63ccff3bcb04401877af7de7b6f9728e06ca027969ebdbfdf61a55ed8b9c3eeeff52e2ee3e0083c7dc481cb194b6a368eba102288226288620cb9e5e699c61631526ed0c189336590e5ec52f3ddb049c4fbf92eeb92d449dec27ccd23266b3e0a7573c38387280201c201073db01c9b1accef0b3c804b7798c35c884aeeeffa6fa3e052ca6b343b0d5150e66a9882d740219ae8d9ee4fe9f4d9b3bb67f7108e85920d444a1f9072df41e059d0814aab5865d901eaafe1777d92b47a543fe266b94ac5445d14e2236d51b1a7d512d253ddeb1113e86b03da546c7510fa65700af485012125d4c802461c69cc48fa2cd0574f3166368b230e2a566a20e99b7082b541c94a135682a056a64c2b30bc81862b22c371dced8ab8e88abaa08ab664207f4a539e7259957cd8d23e18e10351bd4ee4465314d22c5a2453a7944bb695bebcf7af42f4057e4d85d5a19c5aa1dada965aab474a47c8f69b456dcd2748ffa3d4b6b55cccd662dc25a26edf84bfb5cd37237c926811c1e57cb0fb9646f62f0b2d21c8e138daedf494bd248711531c4f719c89e279eeee8e83a96f9bf5dfc4b64efb2dad94e66e22536ee9eedfeda383f4dfb481bb5347d3e96673cf6a55a86dbb86968a3354eb79f690b65bdd368e7617e371ecc22494757192bf2aeebbb335027971e2b963beeefb15a7587e90dd85fa3200de97187c5f5af0e1eba930ea55ddf8f98ae598c4068eeb7ca072799379e41673bff70b2769967f3f07868013049e5f3692929aa9b825d9927c1250c8bbedee5eeb3b1421b9cccd1a78fecd1ab5bbbbe9b6d5eeafdd75a33483199eef44a6e0d93ebefddcb6edc3dfb6d5273205cf9f621583abd89436d1dab86b6f38b3add55ed1daa7d55a5b6b6a0631a9b0da7c15840cf05061fd392960d31d6d8901ea110477b1705b572bdddcdd7bfa2297ad1d205c88638b168d638a94d7db97882eceea241288a039ab73896f0dd826372d8e2d282a702a372d8e2038aedb6c5de2de6b13c70c15a48cf01c601046354f69bc0f29f56426e51d812914094643dfd36c4727e43d3141c165423d1151c391208451775b4f38e8d83e7c2f9e51563fb9804342104e70a0b183842b447080510304111c5354d00407112b128638c2138e211e2400e144597de1a8e00944e28d22d2780308346f08a1a470030d2337c0e0c94d1b3a4175d7867b88e7a1cd5e7d76ad1e0d6df6fcdbc29a55eebe3e7a888f0e4287d03cdf5be5f9de414a28d343cfffe3d86aa9a8b75ae338cffcc5f8f65cbc0de59bf254ee960dca564accc83659a64d6883d9992d2d15d597f6c9a966c32c81d9f1a5ed6265f64af6b74523b055b23b6bbe07b9911739932f110dd159768a2404cbfe55568faa53ad55a6ba548b9aa8cb2cec4c13160abeacb419527583072c395f56239c2f6b954a5487b23f754aa3e34b5abbf99296615ad2914bda45e605972fe951a65868914da6426df440836aded3b837d166ee7ee431274ac25a345672e6076a9087498591d51a12d9bfec344242e41536b2e3b87bd738a6e94446500e629069620a0f60486fd5ef008fa8ea8ecf018feca87de777bbca12269a24bcc0787c055f0ac14384d13067508191158850c82c4e5050fd8e478166f98016b0ac1227b0e329781cf00805d5bf609a7d8c990860d96530586e77e19c5ceae41c3472ced71ca711e49c9c573979c939af033c92f35d2ce3fc0d7804a702c93abedb88651d6f031ed1716f1e83476ec66c738236b2cdd780476cec1b4e24fedb29f008c662aef93ec114b9e641f048cd4dfded17782485a9c8201b6964f03df00878f3f728f0c8575f2d8f0b0f8c778111d97b151b2f64ef9f0d5af6bed3c490bdefc023de2806972df351a194502823a822b9149251df5164940719857a5c8323a35ea5c62ca3fe87c8a81f4d6026a3beb5061319f5173c82eac1b97b0e3cd2d5b622df6f33f2bdb797728993b72d48ded090c9dbabd268226fdf6894785b2b1a17d088e1399455be92a1a755ff2f1a1e36a5b6a834cdd5753d2c19aa111100000000d314002020100a888442a1482c20ca82de7d14800c80a444784a194a645110c3280a196308018000430800436448684a1d00bab616bcf26f65ebb344b712d89b83167e8656ac5b2d9595b9dffd045ad96a4703ca075aa5ef16437001174958d610421ff1693d69de5f4498d7587623273cb35ff14e60ffc17c90069f71cae884188feb6a3897424c90d28907a9966b8d1257c42258fd68a0902daa2fca95f352520c28e9555c42e246773dac379c7d01dfb6dbf67c9f5bc350ac8ba4d5d729bc6a27f89012d461a4a86730addf6d0947928e57d390e2ef278d547ae242c4979e702199f42a128970a1b65111b9f1c4caf084fded66559839fc7e5a4d86d843933666a1f0522e8b19a95294c9f951fe2c22fe5b40bac19a9e6bf94c1cdac3547f201eda41a6daed439e45959682891857b5ede64c9199b853f2262680b97c3333998ca5294ba59908e44e518639cbba14e7204d21427ad3ead19670272113c21063ce13ae76b6a976e34751246ec4ac4fc628d5a4880b11378862de92243c5ac81fb14b27111b96b5702e588bdacc4bb7e96342c675688d6484537b4c170fdb99ac5fb6890e2932395c69a510a43029efb66b03cc937cc6cb5e689b48d21da188091f91044214443b1d91910912401faef770b0b454c949c2c90052429caa9891a89582e21582ee0562a55dc9894c245c347f99e4e9550cde5f2790a3430f0ba8fc2b1d841a4cdda2c215a93e20a923d34b14d5563bad8261c234de8ffb24f3bb57b34688fd8c1a600ecdbc1f73ae89f8757a31b2b503ed8246c1c1069ba1f0b398d0379ff0db8ff4f5a60c2bf5cf270285f29ff9ee329e16f715bd9fe909168922e13dff1fe01799a4bdfd685cc59920a03785df94e7fdcf00bd0386d609742a24f0629f616071c830eb4865275ab10469024c0f99f76820a33c6b881438844e1e6cdfaa05d51369d6b5cdb4670d7b093b27102a602d55f7d95bb9cc03696cd9669eaf77c205e2baa8c059123839bdf624c1c8fee6c3745f2b9aff37c0cd2ee343ef93a62e824969a0c885407c5e8ad2baec754da2dc66fd4e269fa612a236a8428415693343b33209f3786c25d76b200f26824d98971c44a4e60802824252f57a1c63615b5a0751fa926ae5f2d41a4d039d7d06949b9430df382abaa0bbcbcf897a42f4615075ca78bfa59d5da8642f2822103bb7372a71498af96b447352fdfcafdd51685743624c073918bca4732ab326f49016d079a3563884541d391de113c8d294d9f67fd18e17ca2e925e7af123bf261f6b2f695a30e6a46a4923fce6e45453856eb372acfb4b923e5c2a6c382d4a66986766589e0b108241b90522be2817c52d9411c648bef432a7ce7122e9f717c7242c7f05ee725a58b96605eed12d09201278b6c938af19156fd47f31d49f08df8979457063eea9a64fbdace2b0a116f9c6358d33addf9755b136a6848011791b73b21e7068dbe5587a926e86537b6ac1f90de4e62e64e765e73cf4eee1c36325e8a7b4845d12c3e05bbc527eab19f9ff88722f91299537cff42eb3c02cd43d1b1a4c7b8f554cad5b871d4859b6942aa9c0e91f68b09be1b8b07d39ee4ace20581f49c6df91d4d95f76bdd3d86985cad05d888e6c4cd61bf866843abb20d334382b4bc2b2b700e9f0c086bc08d56f727a520d4eb5f55066e64c0de3078d7164bd81c1555accc6cd18f37acc4c1e104cdbbf59ae82245ed77edc4d6b351e7ae3320b373ef6100e2f9976aa274aa145576ad9964dd60a5cc98320be065ca88d898516f8a43fe9c8a4cf6523cecd31c4fc719dc4fbc795c56c958bb363835fda1f851c104d41902f0a76f0789ee4a42660d1e839fe0a8f29df7588f2b8ffdcfeca60ad27f6655cbc757f6a6ac0255df76a162b06f19a309dd75388dc8625d509f4409b44e127e39f55cd7ddd7ca92725c824114b5df2f4295f008640891b8cd2011affdb89db957f659eb9dd999326ada36fbca7e8f3a33018efc2d2641f52eef297d1c256f917cffafbd228db7e89cbaad8eab5c0eb06f23f2fc875f050d70fc88031c927d541aa60ba4e6c2a2e2645d6a8b130d6134db56e353883f83e90910ed4100f03fa66b5af2c82e549fb69f3bc4372167811bda5f53e12466428b81a01814bd04bbb074a70b320f72c5fed00f8b9b02b2cb268eb945fb957236a5a929a4d360c34ae39f2353c7cad8e00c53b945aa1048b2b574c7986781c47f12f43fea5ee0b363ab491db1c487d6fd250d0b3235bab22ce5bf3b2582e917fbecd8ff0c290210cab4aac2407342335c266586633847b4e6a8d06b526d04705b33d6336ec3559fa431851b456d1feabe6f11907ac3010e2616db2d998c1639ddec7910503b3a8ebf464eaadd12c95278cb962434b32619de8e01a3aab7236679d787ec18593531dcf5a3b5826e2295c353e6103e0763e3d2382cc124f22c96059b28a151ad8980166f30affb4111c2a9671e2e3d62cf8bca7d9c4672825c1f1ef922c43465054370ee4cbb807dea098e015bf3697112e87b87ab3fec458188a1907a5250dd6c0587f009cc285258876a9fd68c19f3d6e06320de0ea1184cae732c044840f742f37430d70720678859a388c1846b818b58963e284dd876273a4143d5880c69587dfbbbfd3a9d05fd91f0af73c4ea473a67fbdce3a852a49f2b6bf9b688674a4c9ea04d67428d39d09d28a47dcadd99f09198cac9377074e53e4a69752f51cf554a417c777a7d7a564143cec8bb1613c44014675c5d5827967c7e5871142f9ab7466325fc2e9cb0a1cf8d459e70ec7249759d69ad2476b90c342d762d13a061b1595b721773c6e25837565e0d39602a289876c9d43871500a91d01cd0d9a0c1c2661180aa2644526e443f811857cc951a1b3ef2ad18826d58406d931ee5ad46a6f403b324743b6c818fa2168c8c5421eafff5a240f8bf1bf23005d97bd23db83256bec3ee94131b387e271697ce629dfbc21f429ce3e2d1d580d43b960a3f0b3d1a90d7db861dec63d3258d2c988e82f09650412dfcc5a0febb40d0a0095e7cc36d463cb802a86d07482c55ad2c7b2f232417cadac52a2447085ec7bd5b171a6ce97c96b51ca0aab635d45a242d3312df0562a381c8b1a442fea4b2a38d1998c08f47562cf0345e33fe9b84f2d6fa795c5898aa649336c52f391c556fcd23628204116157b537502c03e65b0ddebd34d57326264f11f0b7580bb61fcc0c718514ffc56f029d336bfd1bb2d3869fcc32335fe32527a3246d52bb28dc92e97f15b7c90847a780fcb88285e983f4450a65692a6be793bf9d6cdb493a468cbd9d04824ad907029a2fd1f6f5a05eda4faedabc768d8d3bca1e96744f0cf1583aa0bcbe3495fe40afd4204b6176e86b3ac0653bce9cc8d357da48be915ce5b5887489b94404c7c737127613b5b868b23f0ecd23268e92c6c8c617425261df38b7ea8a83084b6ccc7c1c9ff147ca6b8db7b128126525a8fa9ca3484b7660e89c25363df3365b50144589e61c7cec24630c7ac1dc85c7d26d5f8b74de2ab1a33d5ba26e0bab64b45b90c207859ac1a0e18e45afec6196c189ae17d0dc15d6dd78eeff6f81d11b61dee9b5c77f959a1bc74ca0e8cbee00912a676dcba8003632bcf844368b0652c085afe91c87d788b81a1a6c078bf22022f1f16ac7caea692f04be0c1ca6e1ef2170f78e3a91eddce06ebebd90d7e3936c4513745504af865c8e1f8abb819c34c1acd20d7758f64b46e402c153cf795ea47776ee375f18b4d0d17445280739552f21d78bf6e8610487259f346eb45e40716f7d4d3d632283ff7638b1c86cebfc93cc6f8d7053c8298ce82095774d898036ee0f8f56ffeaad17861b0e67ccd9a5878eaad023adcbc73ad88123dc8bf661925f6f4e42795527a1782c84b100c7f2d818b46ec5dc861a4cdc3855e2763f93d86ff02cd503941c120e70bbb98cc82afb50504286aba28a007db2757792ad21e18e2e0b735b024ef2e391e643b6211439143fdfaecebe4f9906676eac42c82b95da35240d0ffbdeb6041e2cfcaeff2e7c4fd47828a469c35a088231a949c15ad6cc6786baa6fc6052f6c5a2563847047522881200d66af06a3e94d89a74c22d3eb286f0fabda29a98c2f3d3a23966cd89d7bcefff6bcd861bbc64e69efbbc40a4cad3cefc8dcaf433aa65c45c21343e258770a5117d0c2c4c003ac9393249b4e1d1e08bea57fb17a9771aef03f297e6a88267c63c4267673ce65dba41175f759f2a98820bbbb9dbbe8edd90e8269d923f4d1824b7725caa9f2666403386ace2d630cfa080b7141a71bde797d7c96e346d36e5f4df4ed9bcac94a1e6153812ad5a1d45058c06e9892ef3845240038e52e6a2ce9a2f825fe19b2f3eb465f208e346b5909acbacd1590389104ec89853405b8a62b0d2394743042701d9a7cfa236b9d293f082d022476e3fe5d08c2c42c975da6617e950ba11957861ac226bfa696158dfe43fe5834f50f9f832c1ac7310504bb934d3a8661457430aec28d65fb5cfc811a9510d634b98cc01c5675303e47d7abc7e40a5f150702ea917d9124523c0a86a94cea29c63bb4b4644ba5c278ea255db87f2221cc73d01078b90019ec834225a36103c618124b9275edef3c7f04999fccce244c680b1dc8622aee87133b0264f44113cc21633451f7caa2e961267f893290c011a5c9ec19bbd33a91f027c449a84de6ebb55005e97a3e5f1690d20bc49e7c94ea8edd1984b76b0545635929fc8de605b79bc0d0f89e20e51d905401a5a848a7005b12c6d7c6ea1f358882a7bf7c715213838ddc4f9cb7dcafeddb94a07d94541167c6cf89f6cd90c457e7b3c70475be97cf03482f36af0c61f4517b515516ae5b2cf09e288ce671ffa5f05fb527f61b1186eadea7cb8fde4575cfe138c889c92aec6995debfefdd1e9bb5ecd9b5fc5898d618f3c1f55bc17c0219e6c59458268f1698fa59390a502e55205bca1f7dc7eafd9e79c42c93e78fe52389ec686e35c26f92b0523a736a16b3f8d1386b6b10d036a67f1a4b418b5b4aca5ff8726e7940a08646fc9b63b5a5bd9b076bc7cfa8ef242f2e2656ad96b1d21340cb65d2ca6827a108fcf30965bd4d7b2a7061d4a52d295b3f73ea45eead3b79a7daec046bc6e4bdedda852181cd3b2be732232ddf2a53f385a539be4a06ac17b223e85e230c90c21b74336c5ebef80491caa70d6df41a0c3fdb3e3f061113d2dc7595033f769a218f07ab0ae8ac2a1d560231bfd02f627308bc9c35c094e559a3d2664ff3c1ebaf822d758354c4d337e4addc8250743e3266933447bfd68e10debef2395210c224c89231ba466aa771e39b446ad02ed166d51cabd51475b9aa0099cbf8763d7588a39ea76af6c835bbcea2b4851fd5beadd92c977d05e0095301b0966b22642ccfc72cf61bfc2ef26395bf797063766058456201b0e0b2384be357a88655f8b180536b2b074e60f1eee9bc665b3280f4a97156c4d9e28e767eb351c5bdc9194c5b2c183f81a28ef39cea34e63513a7ca64be2047ec159d3510e7303f0bb2a0a42b668fd9cb5d54dd15bac53b42b1471ed26aadc88c725a62e08de36913d6f42752d45c99c84e2eec4669c90489c707037f50d6b9d0182b0b42ac029737724b11ca27503c4e4be346796b5af05b4e2e6067078680664b146b67c7f6e1502d03838cdb8036ea61dc6f8e331f0ea3b30128d211f62d0a2a282945e74718f643dfb42209491431062de9e17a715e3e1029ea0d13b1828afc225a15d85dac85993d17c8e18c1adc76588e36fd564001eba057c750f4eada946a075b93c7c99ce08ec394d5536e9f15a1bff38cb62bb01c2c76a3866e5f5ae9839a944b8741547e3c0df7da70681bd56dd996205d463fb08ff95108794355ee655c134b0009c7ea9d0c62434696f6f4a337ce9a5ea2b0092af12a915d8505d537d62005a871763957030e1a5623482ef3d28372a7f16e05b0467791f1f723cdbd75f9c6015d6ac4d351771b56e9217ad7b6aeb3edd406487eff2a4671b76294283f6b6e921273b3eda1e2a10c255412db2ebec0c252a923735c96e6afd4c7990164cd200ce0188dceeb82a9bfa0356c430bae0a257703a44720129af332dd0e71c9188e6b055a665d9e6fe1aaa6e28952ef74254b476f763812a82e4310e2a94eb4aa419ef917c9ca9b418dc5d3b7dfcfba3b85cda0d1d2dd80c070ff92fc77b4791a17cc8cc53896cb25b8cebc76555e919a5d116954ed7b5bfaa4f62f5c482b9cb52f5cfb1e70ebad317bbe8098253dd65b2f9fbe8949dd5fc858bc2fc7fb2327377a8b00eb2760990a694b923ac01d37a59eac5108bf047ada318ccd4f9e5cba272d06d9eed1cfd21794407bb3c65aef1c0d4141e1cc5090f1309d76382b90d4cfda87e092f513bcfcd0824f939c8b277f8a71e1a63a295df7fa84e1f94ece7e3a8f3e4d16c6a714dfc0c996ce7be3140f10c8c1b124a41143176685f48d1d3c8d59d6dc34f5663308e5eff380a8a43157af6d7f5eb224d251854266ec5a3cc03610311d4fa0c9846429beb4ad8779c40f3ee8fd2ade527b848ee42172f1068f2efe22ccf1ec517c9bd7dff0467ae72e587cfcbf8d046a8d046b1344547e2aba2708bf8c4df06952837220faf08205d9da4daba93c764048eaa7e420d8eb58ad57e7a9068c8db1be5c01e8eb802ef6da82ec403bb5f960562eaa9976f55536110409251a8abdc274aef0dc69461db54aa8699a74ce6fb34bc78cdb76f76e4c890d6f14642136c7f1ba301899ee7a63d8dd113e17c8ce48ce7f772e5eb82347f51c10c695e83d522b00f7404dc112c6037ec5458a68818ebd81744c7a2bf7568277e0db56918e6424c18265f4ae63e28b5651d71f535658b1c9409c7380b6f5b429a62b5c7dfb61a7f18249a3e037542123d5c103da9fe3d95c1bd9ff8d6bbac22d43b481a14c07f67992b61a1ab31f7c3d0e9f2911f7d657f5472cc83c24036c9860443599f80f75f68f9d7a5eb507244c12d51b26249e8f4b48009eb6f37eb020c0a691fbe49320576248e3ae07a7d48a1d0642b92e3563c83caca165e5ed4e5416d79fe50cfdb93fa0641403ee077ec510fd63cde629ee63231b7a512bc4d2a66825143380218d1d8b35699d76e2f1b67e01021d4a9d04517f844aa043d465b29e794fc2adfdec4fddc97fd634efad895d74e8ba28707a5faa6a032ba3f077351511fdced873dc2c06ece8be0793cf5b320e1e24a7f179ecd7c0f5a421cd2013495c2a7495263449ba9c59cbb60a895d0730238296c4df532d5dc74a8a299f19ecf0c3ba90e614243fab3c1d4393c1fe6a5c0600fa23cb5604de4ef051d1e261a2c7a61faa993bddcce722cf3f86efb0011f75c03f52af53197e793e24e400c103a57e7a339e4ec2a553a308cd166ca70d3b83d65af54a10b4e7007b8b6b52016e937db3db7fbabc851457362c80a32482d464f07fbf5ce51290f59b989a82a2d503d47b4e13f78c48c879fcedb8f2d85058033f5863008f2fb768ebc7c4aec9add9081a71c0d9df752240806b69884a2e677d7d138c842a6236417f2dcbf490c8096532cfa0fd13226a2e18065d0bbfcd805f9702aa8725710822a36dfe315bf83f3fec042a06e50098c60b13c0c7c8274c0ca42e17cc5b13721b40fc0513438d2e59e623876a709ed40e91002b0c9c4ff4b557b453422e7a0123e9991b688bffa3924589049e93135e7da61df38049c5165bac8ed1cc2d02a1e8488d6c3167f395ffe656ef47e9aab0e2f72f83d7db2add463a4de038ac96fd619cce7cc7fb278300f7ffccd9133dc90f8dbdf4bcf68d2c5a3c73e2a2352580bbbfd8c6999cb38c36f61dfc93c14ee125a775132232d1c613b2bd1ab86965f06ab14001f0429dd29c773f78a542be37abc01017920bbc95e2935bf3b098e2ffd7498ca8a9b3d2db1cddfbfc0407d59890ec2d01f0fcbd9b9ec18d1e144839a87fa2528bd6116bfe0ef3d5da79e096e65a6c443e023ce77b9a631845400578f40d08c7141d69a32ab4f8eae853933182246a345222beb269cec26cc98e954359a28bb86b8413f0adf2a3df075be95be929d2d989e4779dc02be2e8d2a45b70acaa8fbd4c829bd9f9e4c4cb25434035e77a55a7db38cec6053599a32b4302997a0eca6030bf5c89cb1b7b5b176dcb9b585e2ce87bf7c0770ef05076112e59f63e28585cea91efe68cea32609adad81670d286e90462210b78cb877e702673d62cbdfaa3c678a296f33d9d6d425beb27f0e58478a1a33422b827ad8f56dd90854a83006611ef3770046ca0f30c801790aae1eacc5b9084b17063cd967cc6a6088a21fc2dbba4a1d360ac8fd02857e85b2f05db415ebec575ffb2b6bb85376ab08abab7ac4b440893c9687eea3c080c6393e19a66e6c634925e76946bda931a220589751e90b2f6b8b3d105d57e125b3c1e29b9b814fc56713177d9f0cbe4207ccf1e32cfc806a78b3007a3a2f0482333d134ed780ef65f8a3dd811c8c3169bbccd44747133217a0c4697fbe3618ba5b112991158a17a826ec3b407180938118bbec232e1e406e4d2b68b9a7388452677b300a738cd387d034e110ddb0fb971cfb134f96cc12e8f8d201d8170a8f8004c4c7414c7fcc792022d92f88bc4a275e52fab11283c2d8ce0bab6ae4cf811083357a00852bcff8c071eafc0a52ec6da64d45b1edba780e5cdfcd8a6d543c337947270ff92db57b2dceeea8fd3951b562e8791a8bff8c49c61271ebbcc5c4ebe5c719b71eef002fa616c26e24426f46198038e2bf59c136a6fbb7608f846552abd5ae113a9db0d0d62471d098fcda0b372bc6d7971b25ed98af17222a5e9369e1717f7f33f591300805edfd2a61b54ece0602110e8bf154578a803213f89b99d3fa0eb899bd200235ddd5c2240aeb995b656ff43525ef721268abd4586ecfe40491230e5a66c3a0dde101fdb79382fb4856163d924ba045f43571d3a88436d3033c9bc5ef8f60db2d76412fa0aa55c277126d5ac407736cf0947561229e4449b001c1b4048df94eecf877a77077502a00fea93ed3d294b5199a01853af5e0e6e8b55cd3059c97857059f4923acc9fd9802af2f46bb0c5af2dc899b9d88783261164c4aa48eb040e14cd31f68f2713fb54122d8391d959bdc9692db0124b55b4f8ef815bf20486d83ab2c17b2467e6ca376df6f721977da10b10b105c6ea79c42f9c6fceb05354e2200f6cd7f8db564dfaa37290afe863621000a28a21fbe167ec22760f876daed32859fdbe07e2d42639f7b81be70cc26d4320cd38c28bc6003016f607098d7ec0e4e792fdf004ec26f17ac23034a3100ecf57ecac5b58ca48ae283fb121156274bd0e1e46bf7a64bad836515acf5270d8576ff6284c798fd0ad60cb18c642bff9d8f3ac941c6b656466e0bbf7a605f48241e1dfb8ad0d9f30e2ece96f4280498366b478bad92688b48e39070888bca7f7d0311165df4fd9f9e2d0c1fdfb3471bd0fb58a8c55b972ab1bf60857487470d9a1f30b3bba0861d28f827ed490e8e0e2f1f68bc3c83fd8db92b1908a6e0fdc5977d1338631749cc116ef5908d3ae567e8aea7efc97737bc32c06582a5ec3016c2a66fdd102300987235fb44f63d81464ab91fbd81ad9b7615af5e00b942d03498afdc58a57b9b7dc5d09174666169280ac1856967c310b96fe462f448366c411638220b1f1e0fc24e549cdeb299f246aeb1c60c46d58ffe821cfe3ab9ebaca85263369e4ecae8509d954e2d0316ca5ea861da70f0e82367c3a127421eb3fd8c1cd7cde13da02fd92f2c1cf55093fed4d6f56597caf8463641d607d86ff391dde14913e987b8c2aca28c98d93e793f8c56f1edff7fe4c68e8016cbca5bc37a342cee4926ba505117ae9805cec646b6c8996c22652e1c8eb1f05a9a91f9ac1b137be691b4d546aa111c90ad4e04237b917067b295cb4c413b4cc7643691b5f1bee31bdbe23de406917dd1b4c4b21b0030de2512dc24dba1f9acb37710ae92f6a689ec7ab23ae116f8eec55656855008c629a2815ebb16160d68d9b9c04bdd6ed90bf81bdc5247d03e7b8fcaa1cbebbbfb955d7543c6f56172e450458670131533c342a64d4cd03237b8af8df394392dfa8fb2aac85eaad6e47fe87e9867a3303f3b892e40037de51740fd35243640c2f58ebdc7b049702c44c17fdba59a65135dd49d544a13ae3f55b630ddfcc97eda016bb454a48a09d0956dd4ee9302201b182b3f051a9a33f6aa96a1c7c16cd343d2f5fd6126306ce92e25a304b81296e7875a7f7d205430c2b34eb3db05244e27220d2cf95ad227fb002c2a422fd1f482c6866d5e14ca55e59f7c0da25b70f656175508ecb4bb8f725adea6c1cd8b0f904517a7a6eaf8822e97f83230b1fbae2e4e99f65ce487adf3192d707b402bf500d6b47aada386d8e9d8814f26f2d55ae04606a4030b8dec72da94ad31214e8d79ff040a367e3e6e1bf56aebbef1bfab992ca184734ae0afc6e369bad31ae8354001b5935062dbdc5b3a14c3abe649336a855fb794c6e439aac811252889e4ec3a2ee00eb87c3e6cc536f8467c34abbb3efaec3cca1e9adf797f3ff06029c6707a1bd416efcd4aba5fb14463593eb30e81def076acf0895d50d33748c04efb60c44a5f94385770ec5bfe7c2cead5d4dc920c0940308f5cf52e200f7e530826294ea0c277a3b82cec5a5037737d5bfc6781e58fdf166d9e880e3958517fbd16393425f76ac7cfe83f9589ccd19cecf659ab924028f5d92e3e6039c8fba107cdcf20176fcdb6484cf274960815bc47bfa6b015b08e8bcb557e6cd97ee068581f89c4a85b086a8ace715a07286f9f958a12714f62ec9828562d1c18d1725c7c7cbef0cfae614ce68de1f8914b5cad19caea824229df22b88f120d595146bc7cd3ceab1209ab907666481919aba1697faa2d724054c8c8781a0a8bc2d3ca74cfd7565f9b8b9dcd6df2c8e126997950403b449a19423a65004202d5e49459c3166f59b9d9b3c6c5046d94e7e77d60443b569c2aa350fe94bf478a654bfff73cb5ebd2d7e5d9733ac13849f539ee02c86523a6b5824ea72ea61b303fa85c2e1a0ce0b8ae6ebb0094bb68e3f8756de722ef599957175af4400c19ad1e6c15fa6fe82d0f92a6c622bfb4c6503935a2e921e374c8f6c0a810181f19eb0c22dec74a7b04b8f2dcd378f301d33102024f6c00ad35bd4a028aba28dd1d8374a7699116d2dc92fa1abfa5dd2f16e8585cd846edf6036793a6368e5496e32231e7dd573062a359e165da7d8eb96610b48901b1162508027c2c88454068edf0a0a7333c1c8e7a385098acc0d290879af9b7e95e71297aa878879f3aa12f4c6e29014faf96f0c0ee8549f91b3e4f030947a7032e7f5851ff4330b4903cd7346c45e099f3143e2a71ecf0df51195e003996a43408961bfe16d0d71b2403c9e21afd5d6c6e0e600b6d81361bd40845e94aa6561325a2a7e300a746301676ea2828d4f9407e34b576f4fdd96b590a3957dc9e454208ff19a17370db5540e0d2b72f90eee8e0d2e8b669b164c7c3664cb6d0fb53e9513c40637e6483af5659d23e49b7a0135d54adce9a6f85551acdaf4190832e4892aed413b7a0bf71f74e14049ac99b9c167cacfc5b5cd35fc007040561bb68dccf0db41a2d0d1f0f4af9d04a9433d1f1a3b4601cb3a0aa394b9567c0fe812381f79b6d6ae89a33d1bfc6b0f823bddc28ae8e612c515a40aae6787cead2dd90abe85b3e50280c96bc3697a259253f3965e09ccb7451424c0c2d748affcecd3cbbe5814fa485952fe3f32ba4528ae72d53496f5a8a374b38b587ebaa627acf9021b21d3d754e75b0097b1e98e9952c53fbf62bff2e6a86502638e45d9fcbe8b47530e53a919cb70cf67186a38f556b819f706efae000a47b7bff878adeeb6a033c3f605b51f91cf0b9f11dcba6e8507d61f216ee171ee169b886c3d8d87094e1790a5354509d1f7db003d62c733160a4d11f8f21cc0ef173d46ebe93cd6a5f4d2e987da1ea56585fae81a421354df00965e5cdbaf517f20b5ccbf8ff90a0490a45159b6e0262f4061a97c0d28fd784fc37e9ef31a2158f36659965f003f1bac104000a95f90352c8bce07ac3a962c4019d8a81d232e0cfeb4efe3893f766d6725d67d7108123738982c7aacfd4278fd0311880259f917e6d23d46dc3258fc05c997cc7bab3ec932cb6388e9e0878e43192e144e0052a6a213a0f2384e3670b037cfc33391a60fb4764a0e8810f50632dc208aed9117ba57a3cb71e77b821ec89d82ed3f0b201395279d4cf5057730cc43a729826c900751a24ec9f51733039bf25626d89550aec6bdef4d5d3cac3bef29cdd0f973faf8255dd60e571ca32d591f585bef8113ada2fd415ecd9f72c2e7955c351dee37d4465f0e46975be8f0097ce676029ff35c49de981882bda2fe724e2a634e371e18ef461483c833a133b7ee5239acd782c39d5e9afa6f5f07754777b406f60f4bab92cc33bd0dd4978c01f6b4c3de2064a276607458fa3bfead251b93e738fd0d59a27aebe689b0c97528431ab7818c91b115f6d6afd3a4dabab338cd806c3fb9ec12dea7c0ac9c7a721b3d3f4ea851045d2976d34d7049dfe598f6bb117ad28c1c47a613bb3c7abef5a37515e424b899c4e6f45844dd23550736bbe24c5e01040534e9bbb7e47e946c85c3dca2766ae5bb0f2476c4ae22bee2306b4f1a24d8be68ec50a0696ecbfb17a15afb0c122edb449dccfaa1899e48d913700fcda538bbb259e7fee3dbca4120a2071b3f7d820d877e9b384985b08e051dfeefa7410108e3c85366bc9ed9a510de141b63161376d100259cf8cbf62aefc566357105f2a986e044ca659baf7a2b426865adcd0c16182e2ad60c5d1d6745619af4a95a36ad533c2ada19cbd31293ade9fd3fb9bcbffcc0ea02178baf53e1b9b444250c44c310df8892e48fe52d8ca28f2b962b2a78452e70b6b430ab0610223f0f303b7443d509c736e88cc1cc0e128d989c8fcc0c9a21ff109ee4140b11d46b2584406a7825ca0a9b3e1b9fca3134490c189b0fe83da6d3e4a2427ed284962dea6907eb4bc0a61276db66a418b08d21d87a04ae9e56f6000bb4a1e331501180d87f731400f7223c658cf68276edccdc8bbbf6beb9e7e0b2f905541223dee6cda9ed370fa694e80cfbaaffdfbdc6d9035962a9d42c8e35e194158d3e04e2fce0e90d39c5b11e1945220953c582cd45b72732869c16e99310a16e859cb5733733b8e3836f9b17bf27d1ac9f6c99aef2c9e595f626263c551a1cef60bbed2992396637a22e2f03aa50e7000875c7bb962b7e231f84b71ab4c85304b5d8b72a36e36db09fcc1bc195a5bbed5a7bd1dc49153885b843980ea5d1248534f324593a9a87fcad5129629ae26b1d6a44b1d8af32b0137da56410be2b6b6ac4fa91ec395decd10d9115ca89f8601a745e8f4969dac803a094d5a7efef69ce6ca36bf384b482be59d1cc4a584de97d883adb33e14af5e78c120eab0901de795bd0fd852f203d5c0730c03e5f9df796cbc3d5b76d2b45f31503dbde43c86b3162dc2363c04e3471363be66bcd023af0dba64aa178173bcc75d27e3ff5d79641410d466ef51187b1242a53118f671ef7b62025c1594becf0d6c291f5b359126e791e09491376263b14fc5bc5b641279bd20b4aa6b1ce2a3bd49024f3f0a12d1a2a620ac0a4366208ef8c77008cc48205f2e36f43dd9d3c67eba26bcb3110d9a6891db3f89ba67e0b19df91c03ef78226a4f515753a6df3021987aa64b8923ae3673bef6431d72a1498d647b30fea1aad89a0e1e86440ba8d602371d803a0e0e7fb74396a29d1e35e1a739009991c714f8fb20a7b5bb4db37f3d96a779f59d2d3fd24280f215c79b2d0f7857a4d48d235212b990bd1c9fef5b0106ff2d2b0c29a42e41890be25e63f485109c316375e7b8208a740332f721bc5dc9c8fd01ae364282b9c9cfd8c8c382585dcadcf79ec7a5111236be6e8cc47042dd0786edb152133c0e331ecd9f196637b1043e8fe8a38f71c96f0cf2c6d409bfdea363aee93317a0874e633b79352bdfda80371807adb0d9a7f975dd3876b8b5c3d3c8752df81c5d4c46e198ec52ca24a9b560f81df39a35404907843d71a4717b1c62bc55dad2ddd0c221fb898367a16762c599b7d074991432c82205980c34e3b02fae0f4a3ee7b2724141ece41552f9ea3b7093247382aea1cff1974c31166a90fbc5d307e8022a08309dbea2e9af56e731437325ca4057e47a36fa066e6d0f1b03559ee7374216c267571bdbb1156ce1896d54776cda147d4a7dddb0f9b9e2d2e32a47a72dc791cc62e7acf80bc8ff4b2066c899713d006d65151fb16e0e5d87cb6569a043225c93c52f2a004c5483149121a9220beaffd78638ddba5873438d4de69b9949273ef79119a39bf9690867ad5f5ee3cb13cf7e3eb64356a92dea3b5a0f435632c3e1a3db51eb362fa54f0be091ee5a5420e3c2197332005c6b418ae0cf9c89eb3148cdbc8bf736ae952412ae34021593333cbf919f578af62440c0923acfe3e6a7cabec73b45e72d9a5576d655106648145eeac2b97612ba7a7f2633870f2d61a87328c2a8a92f9a2187017e00f04ae9e94ef701fa961b4f05acbaf1a1236890d86720702e60cee8fc63ff7c63813f5ac92abc8851e28abe107b365274fbbe190a2a6e384d44600342a2c8346d16381e3068dd7185763f52c27367841b8d1b9dcab0e709b8df83c41e0e2c204fcfc118952fb70d11c769daab0495f9e9dbf5b8cfe714b5759931ea6b4e67f8e07a7a2b58f5085acb08273e0f794e5f8b77f6c621e0677e2ebcbcd2c55d6c66a9e02c3c009f9126ff793e9de7cfd8afe27d811d0f1463854bd53385680df57ba3adf74d12a9db3e28690f72373ddfdeb725c9699cb98140d3d901470a4092c171963ce23b5fe836e96e62bf80e7a4aa3bb2c94b89b172edf7ba0480045a4e7be71448dc8550e5faad25f35027e67626ae0d55ba82e04ad324e2360727e23ddeef26302baba2b1fb886fdacee1c4ee40ab1cf9855cf28a27f87e844fbda6a25f7509b36bbd9e02bd8ba14c16ab62b883894e5797bc78a3ea64557649062b364791d431cd06c637413550945fa4514a35f6300dbb936f5f3122427843ca7140eede8a4f30fd655a430b6ed1eabdb4dc7846634f79d0db9cf3d03221d3e12566ae79157ddf88f5311aee8fabc40d4f26ae034f4682fc852a765f982bbe414297afdd2507c5ada27acf4d1155680c1436176832b383aa61fe7bb58f1bae5630e509af0cca427dfd0e7b5cdb04f14e94e948d1c60d61583e5252697fea3fdc5831f800535474470a1655fae1bac290aa509bfcbaacd58441b9ad5364511d50dbaeb292a65e26107f6b634ec44202630474064726c0c96240c2bc31880586fc545bdac7fd590d7193a6433c2a70ea3b720f28f65e8cf76ddfdf2a3073cf5d4b9262e2f6adfb7aabfecb68e41e98782cc5fc9466b58216cd416f5fad35a871c1ed3ae3bb206f2fd725ac354cf141bb1241c3d8e63bfd038a0fb91e7e4f13cb04580a4829994826375d197805ca186d6dccfa329e1a60b7e72597ca4d102a4bf5560723156929bef73b497538f68f687019d1eeb717d09301326096695d2f6467bf57663f7defa6857e89b0ce4bccb918d1954961e61a88b64c9c7cd07c300bcce905d55590890ffb7de6dc3d9ada1038f3fb51c3db129580de836c56506350f1cb16d0c543c53a35f04b383e5143e24fd05d419848e6cdab12766204b3d875d83cd461d748171c6f206319c67757536b06fd21366c98e9e4494a4d42d2a7687c589c90a3c742cb20869380bf044bae27d04c757d006cb09e05ac4cf0abb462e0d7c55eba8209bb95750f0beed96fb0ce58d3d8b7971d4061f04efe351959bf1d8d8bfb2e10095af6ed6045e40a6bdb5282ea0981bfa14b41c411abff35a39809a29696c44733165914416da751c50815e41f315aab4988fd036fde40314a42000de4f5778328ee88789ba2217ade298d6f367b0f1f068cd1bae638ce270d8372e9e44f8bc16d847518e93ff15c65993dbcd08711c4e31d69228fb786cd7bffb038eba66101be0c7a8d9ac9745a52c9bdc43612fd0130c324722d12ac1d38b9e45c65f0108db235366dc42964635f9cf39cbda93275d3384444e110ac10cb7ae564176e29ca216fac8bc30b4f0bb7ca60b5badbaed7630e47101abdd6b1ff2c7293a93168a5df8e8643905b0c8983a78449949a8415fb96d618525ac5a90d5bc77453cdf1d248dfc9a08ed9e96135ece8f762289af5a38c1c6077ab753a61b22c65cdca926a697960da0021ae91d1f17e986d56ec7696099739ce33d1d3a29152192b02298abc07e9bf04f345253e63b17972f5ca42556f2288abc9c638bbf8437232d07bbcda51300d24d717440d3173d9979c53025d447cdf546e4d559b87f2008f12f78c90f1903ac52aac3a6023e36d629071ba26289e0ff3102362743c4aade9f3e08be3ebb2671cccd1c684c4886b7216b8deb4b86c3c7d5a1d488e1c7afdb6dba0fbb1cd96dc759b676dd68acc4a87c62ed86e8481e5a63a6b048f9c97ccf2c621aee4aa97ada3d3d8e8234ec82e5d65105edccaa153ae83bcc058c2a2a341f54a4f3c166a260f626b7db02829f5981a75d2163fc2138d624e1ae8c12770310b84922917d3f6b1b92aaef67e009192483915bdb12cddf8aaca2ba1a6ec226b69b02718ee687f5a758cb2d0767e22f0abe65c680939f6c3d0597a4a79a2491303209ca92be442ab37eba5fc461ab04926741683f5df1ac07a130913757859a1af95081d5b55753d8652623cc804f31f794dd88694d1bdadef2a5519f06cf061ce8e3c458f3e24e13595760aa6c98a28f5a7d000fc93c43ae02a1be97041c0c0cc4c99dcf5d08ed5da5d5e0c47e472111020e3dee82351db788dd734994c808d1d0c687d2d1830303732a8730090a96306e6220bcbdf8f57ef336a46c10ad02d6405f7aeed4d01e55bc7b4801bd32cbad62709ea0024147a284dc8f0f6d1dac072af9f18a5ef63c41543c7d5f7a3cb872e11be5209d904466d8e1d59cfb28bc0dec9effaa02dd28a2230ce0e22c0f70e40638a23f9de9d32e589d281c2c7ab75c3ea8847837421a899ca9f453358483d5416e0e2c9a3adb333cf5ee59bb6c0c8419a730bc151e5c04dfeffa2108b29ad0822be0bde1fc1f2c488b6c828d7bc8c20479c20ad0c91ca4fc230381b03d3e85db9359ff6c4c75e0f35f0fd18a195135eb0fdc07e52cb71a063d93b1dead747100440cb8ef05fafd474cd1a05ab677cc064d7d2811a6475bc7b0eb1df0754e16d13217fe13f54cbfcb1cbac04abdfb38b683af107a2e103aebbff135d31d4960a91ad8a415ab0e1bd347c0d80fa252c31dd1479448a7a1402c795354accb9d49118e97924833ba2f012850b40f57d5c67366491f51db3a74ec0e82c1402c2a918bb0e4666a7d3d490bdac5423f8218c3aa91551587e92ea79e5c930634ee7b91d16886774b293d2c953c78a9e125497563f5f6a23327e80030a99489a521e04fd60c933c2faac27eb8146e5ee681f9d3b09b6a77837a00a5ff74eed8a41ea6696bb0dfd9736111c99c130a34eeaf092b97a744ce2dc0bc1957724d6c8fef05223bef30f57082abca49017370d71361550ab770779b8761c0095b088d79165738249f1791caf70d7be5ad331caf134a59efb70c7277efab0a3e4dad46f4b1268a917a85f9009677dbf191ac0c5fc2f4442f95ed2410b22b528a315bdc4397d299eb033a2c1f577f534520cd2ddc09fca199b111ef7be1e0d1dd4fc4a0fc73dde8a6f89b01c80b500ad9f1567ef3f826ae9c60536479dd40fee5c6ef60532522058933e435b52ac79573a245a18d2d09601befeffbdee28b6cc3965b246252a34043d06cbaa4836fcbd8808f025f6e0e24ad9a082a4971a7c900a05cc44ae3381e502b5e818240d1ef6649d02e96d4cd3de6eca15fb37e5e21250f8ee9dc5a88616992e7e3db8b90ac0a87b4c8aeac17041392b97ca946aee602aff68a1d0eb79c59941a75f00851f63f176d8ed75bf6c93d3b6a5a58905a258f10dbfeda9a84c004956843fcd5809b90b2a33065bed8000235cbe58a7366155696c1178dd2210f3c379e7d47fe5675b6f4172f987e261b8a849333b807298f74ea9a66b5f4bda9686bed21ec68d11730972eecf28abaa20021a7f1a8a9ad746ddcc3f67ca7ef4e49b77ce54194ffca6a77130aa3cbcedc0713a9b9a770630bd354b8c985a62c26612b36a413918ee05615565fd22f610475018de9aa4c516b4945d39fbb9a9f5aba639af6aba90323689de364a59f9710c41e1dd63a542d714f5b470f0200f16afd6d37416247491094d6d3e53c4970c075cfd01bcebc4a2928c92ecbe8c297636f7bbf60003b37cbeb060c608bc3a5cf55bb38d2b05efda6765bb913123b115cf5477bdb77b5c9c242b05b6220fd30a1b7d07e945c6213314537c5a54d0b3f53542d0a420860cd71488a5c6a5724ff4454c0683f5530d2929f8253cb46c3e16ab372bc96559488ee3eba56952d910e75a75d3e3d757704102021a25b01be010ccd74a2d92c975141aad628dd276bed3f120e2e1053b9a80bc045b94628da00d786cf502d86a1ddfc080f865c48dd71271227956bdeeeb830b34da139429ccfe0d20419653d532c594e82f4eb718ab12226a39a29044aaaa68f85adeff2b5ef48484d399f639151610b830bd245057ea3caacb12425349feed96b0e22216bf653d5c73a936bff925bb3002fa2821646f1e6d5564411c18c24535c86d25d0165b1bd5f729bfcaaf49eecdfb3855b5132210e733943dde94e3ea9bf2d1578981aa1377e659c9099662fb5c63da2e583e9d503884d900b76acb70b91d8673215f957d757700820a9686dfe00364c7642e307021022ec5740dc556f7daf09f9df7b05d578870ff439b2225f4640b98ebb83241acfaa33123e697919129f8b536ec2584cef6ee8f55429ea044345a5bd51e6a333bc5eddca2a410cc93d2617c40314853e2aae1836321ceffc502afb265983659f3c361198669e35d70a1e4b92c69e7ab0a7b83e7d3dc969f17dadef5541722bc5f6a0707dfeeb1b22168efc0b51dc4c92203d6251665e544c5609169104e05e0cb8d772b5c0223c73cf92b2af70428e009fd98b96f32b41e654e646cc1674eca3f3616353b47a7b1cb6a3c07656a7cae515241be59b987939281b986187033b7b6f5d95b7cd4791654c6291cec93f0a76cc68ae8ee23a19d8a792705fc1abce1bdee73f024b29bdf19cac22b942473858090f94c5e74ffb17706cab0ef789ef745f938366d73c82c0e4c4a66a9074dacf21dc1755300a22a47a3de8c366ca81004806214e10378af3950d2f35c27072fbd17a5a078b0b7cb9cb647480dd54d26872ee88258dea343bad2976199712163e42bd70457798252368f561f2d27d1d226d74d729caa10ad0c0381f628bae62998c3008728acf812605b84432d9c1123673041a168916dd6f869daba33a23e16edafaa3acf83e3a25a14f5f1366435f090d2bfa42f38f5705c133b6af651679ba083d27251120eec534202d5ea54f9f11b8c4397f7b47d44b0f04fb0bb13f6276366f83c7aad33f7283ef232241cccb307916a825559ccdca8faf5264607104f05f77756ee31e6e765613cd9deafed9830f08425f7dab6822e9f49405afa9129a01462e12c10f262e04dbcf4c4ce328b8e4c273459ae64e0c207a1bdc890b65c21aacdcde242daca346819b399c0666bd3060920d64ba8415564f9f29998a6a19f83436f5550b5c2b96218538ae95a2b9bacc6bc7534fae2a2d7e1b55b7aa89e3f99d5e79ea925a68ad3241799babe0ec87e9a585a8eaff47e3100319df687cd83ae5a71d2a5232dc107c4e65e035d98e231caaa885dee55b18a753622c66ff69aae9d35df08856362a7cccd9b517946aed28ad91f8db1d64b6e6f2004694650d22183db0afa2d1e77fbfd43f51c0588547ae200b3daa4e6cf9d08d2a642301661d4056784d1a0088d1447f759af93e89888214ab475b57f02b7d8ed63ec923f894e0dba23359f954e6ce1d9d96efc4222803513d10f702549eadcad9586f6f68db08cfef57b8e26c60b62c4fbcb71deacf7790fa0c2b3d0af1be01c992c4e2f39c88484f8e25f176b56df8b4c464f27ca0461f71a8480d4402227cab113ba61787f4163b263baeaacb20428531498b816ed81851798ada0c24c8e2cfbf74fb9f2ec038525d7ed8ddd1e7a4ba4081f547fa1510e17f12346106b1f0ef4391d5b8c17e35f203c16cc7622f32fde2fd6c8f179567bfbbc5587880679d57609b77faf8b2ddf13629bf7656cedde8eeddce3b1307b416cc6be1d5bb63f63dd9d276cf6fb50f1ad4d6bd769148e619224c1eb3675dd89800251f5c08e7d352c75264cf14c74340a020211caf3c9b19fbb4b75f17a98e25567559aaa9bd9837434f36fb7582b551d263dd55a009935674e7bc0026b241746f3d37273f519a1cb99e5b002916421277916f43d40591a90879f5845c7250f84dbd3e1ce7dccd11761cce893f75ee9a73e321bebe5e7dca63e9842f24dbf26aabe83db69b9e0da6936a4f493db4a87eac82e6dcb61fb5a66a49556282395bfea3438fb38ca39c1afbf4fc21b3bb7701ec1bdc65fff2c0210cddc92d415e711581b441492f56afd2400c7dcd48ff9a4185c0ec67b5bb889a7c110782c2145b444c876e8e272a0d311ec806fde22316b2eea42a64846870f9cd608775892a9e04363bbc597b21f35e513a3712e70460eb32ca908ae6ddf7125c601986520e50a5798c8bf6e120e8f6556688d11386f520606bf9a2f7812ddf943b4c9d2f9e25d78c1cf01069c2df0a81c2586362d90260225d435a5b909ddb747a257e662145a125473e545bdbfe7b13dec5a83556b659f5cc84f300caa70e8454461a89056aca0e9825fc0919d2af5051cc7a7a9886a9867204a548f70c7ed73716005514e91dc9cca4b7ecd110e2e3d62c96e4c935e8ef60fd8b7862bbf37fd5f88358314d105e3814b6cd06a114da53769ae334bb649025bb400b8edb7e82e34c2b1c7d67129f2223e1d0ba2204f6b01a778c865a1435ccb2b2e2a457e67a91195c2dfbdaeed831e73f1593cc58ae907ca201500af507e79aa31e68ea7d3875563b6b018f274e5d88d5f1c98711fa1e08acfec0f28009f8e608a7d3f9651c874499aa5cefa12fc737832da702b6dc203dc72a4ab321253e3f2c2df122957cb156e190816fb40a026b4ecbbf9d509f63492b568c63be836e5a2116835aa35d9591490e56894df40b7854b44a40176d119e77050d06d85a1b6e6a4a31493150137b8f183c81a8f6d401449db5f75db9fba3089f3f0c9f91ea8b6ea9d49a7684ebb9955ca2dca1d764a9795506fcc924b73a2116683d40d90cdacb8c486749984e933af49fd06a48535aa390b2f9c10dcdaf89def36e0cfdc5471e6fdce047bb617ca6e555e90f6922d8ad9a6199951bda14da0795343524710e2d7b978acd4d4cefb1d1054c146fa221b737a58bb86df441566440729f76d0ffd5f6595546bd1264e185897810418e9873c7f15f91482daa703abc89842cd733d67042eb5056bb089a7811126f1f3c8de73cd50ac2f650b9ca5d18eeddc2903deb3b3ba3711943ce783a8e704cf7d6f264289a565910f95216555e04488eab85dbbe2c9b8177e867ad6ea973ab9253a72f249b75a4ee61e262f18e0da00efa80157d8539059c9322bdafa4fe99670d1ef18e167438d6db87b7dd3cb0aa0dd9a96780521c7f08acdd37d1f8097942fa4a00fa8494ca9038c8d489fcfb9b126d3cc8f080b1971dc35ac0380f92dfceab54423580f0efd05ed10d77833fe2fe2fb94ee5debe7d4a459f935be14fe5cbbcd962d74c48808c888b80ff6ca666544dc723864dc526f1a0f2f0dd1aedda27dfc92f1540f442ce25e9ae7740826f8a0a032c8dc8b842cd79eaa0c73167bc833a2cfbbfc90aea33c6422dc6eae6074ec1ce79add3a8680703950a9048bbfb42c4160cdb7281e5232a2bf739ceba954a86a70e6d70535cc7b7245e3d47c6a903ae0792b2a6b4029e97eb66dded39f9e428f7f0a25ac8a6da5d378438839ad025f293abe03c89db1deba395f3f78c8324f4d3b43c78eb3399bd921f3f3aca996fea60fea55c520e2add4c74b2648f22a039a6a084a404d508b492df79ca90ac4850884084b667c794e7ff7f8b4605130bcec15b3484e89905096332009fe830eaab36306882ea9d020fdf9ab2c72276004a99f1f83dc094b1afc457110f3bcf12bc2618d1b28a4445607216ed1a3a68d7e029c9bbbb1bcbd3c180aa7f75396f0b6f99ae53d81ea3a142608e814126329a4ef3e88281bf930ee97739d8f48863fa671b0a468dca0775cde792bc69f28ea848a210af288e9e90ba39824e73f49cfc3d1d1829f887e33ecdd04bdf615de3e1dedc1b1e8ff99edf4e016ffc4e6318f648663388a4f5d98ab9438c762172bbb488040866a8750364a7a400ab93f52413665a81746a8e57b2f13b7fc7d87e2c21f125a724e5f103e80b3d59b367c78936779f6feac8b18ef81a842ec4f762775fd61070c83c03d910e8c75cc33b4903eb4673cda257d131cb634162dd00886dec4a610a423fb28879adc06b4dadf689b48e51e4d45b3a01858c93e22bfb2063c06577582232fd77c86e3ea8abde95e09f103b5183d323824c9c05101ddeb5939e20037896b140a4e4a31fb82a0108e30309b22f0104a531d083ef5b7a2d9a3745b23dc9fb3034a74d6b6769d6412e82cad6ebac8b02f625f5358f4188e5945a77bbd94e0ca44481f8920055298500b230606bafb5d91c7c0ddae2efe01e69f3dd6e0b16e7f552b63d0027c4fd4dfde2df5068c38ded1b15c3c86e5f556a6ccfc9cdc7b487a631ad9c91d9950318a73d610c122a7940d3c0a579fe4c0940cb7508c018af299e8826da3942dadd5b7b8a274e2dc2cd9f004374f5206680ccdcf6cbb7c6c1bad5f24487767c499841bcdd1e7b0e214121852744017e94c4b631838ed6d647bb784a5c55644ecfe6006cdea9d7c91eaa1ff8e5fba34f02b382795b30b6648f329a06756de29e9fac46329df8170e0d9152118b9ee6fcf31f62caaf8e6c474e8fc1db07655c39ea8798f755648245a06874a1b04345fdb5b0ea5469782b72130555a9693c2c06669880c0bafb2b7e87099201f069d584086d0d97f5a626eb622e31e7ef84a802a61b39635caf569fbb0b4ab9048d7c06e2d8043ea2ef0b2bd18998ef206aca247b67dda8e122efe7b0cc0d08578c8a720c0ba03a86814e0568149e0ce683727823d40a243ac32f0648022437b83c3a7a7929b46e2ff62b01483e0ef00645b0969186d60b54cab80dbd3d2820c9080ff4625edc4c41eedcc6c5753a8c2251e100bc3766d0336ecea46b5ed06da69a200a0ea930abed048d0c5ffac6f9a7da23e93d3e5062165c71a45a326a4094bbcc42bc13c56e2c076682dec2ad1eea84606ca7c309956fde150311dee5b40e4746483678408f4edcf67dfbef8e86effa82fe84fc34d75fa926c1aae2082d73afffe157662de18a076885280c3e7b450ed43562b4665a6945fa3100a5f144e4f281f5a50fab44585299422bd2798a69e0b887b62639ffbedd3782a5c029b4e66bf3ae8d1d90a9ff7516b82604b86450b6b490f64965cddff09c3375d1d2157b016d4f2b5cd7ae2eb68696216dc31b4765e830baa47e35516dbf926fc4f2304f597334d6750277ed24ff80804167b599bcc8d8896e4f85fe33a90c2d14eb7ebaf75d7a57cb65142a003f94394356709d6a31f520546cc1b21116ff5965a08af6f1a6fbc539cc3daf9aca9802422cac22a47af345f44ab1fc6c7e7f0445c12e4f665999305dcc8f90965dbff6a3630e8b9939c11523b7b0a224cddb7c92368591b52c59566d7449f3249fa25ab7dc35951c8dafa1de67bf26f5658e7f4f6e0312ef0c34876c856a97ca60ed9ec08e03ddc0eeb63c760aa6182ce49c364b732ccf8ba67ac1e227ab1178f12484770975a15a988028cb6fd94bb52d196037938f1d708f25408260abb09e8da0777d50c40534aad14501f6b49b5ded0a4b834f347dbe6dbdb782f913eab7e329c6655325a883811986ad8b3d11c206c8e700ef78235fe87c4a16e5aa3f809349c9a228b093a1f9001998df1786882009116f4b600d5180cdabb9452b1ddf843aa9b8966344bd5b943edd6d20796a5e67cb121193a8a0024312d2fa0ca7e862c142beb8bfda7f9d9456ba59e3ce8fff0c9a1e4e79c4702f09d7c021027af981537222f2b4bc2f7c2fdd233c105bad008ca6a4fc5e886a8a8a96ae1d7913ef0d2bf4e5f7415c1debe4db0f43acda6f47eb2091a17a2f774f2bc1bc9885f03d4cc2912333c0dc8eb8aa56ff3d8ad5c0b4b7c47a7b51389e1a4e54966e28523ccc16be35533cab6c486b2cbbcf5e58379a2ccc5a7bc8d5682df61ff2ebdbc7aeb49b343a0af03003ae62a3fe0a43237869d88fe4af57feac0355b91364e51d1257bafcb84580993ee0ed9fc1429a2aaad04209eefc0766707a71e7b9eb26f4d2b5d0ea95fdea0fa5c57027d2f04c43f0c307be0848ee35d042d397ba4051665b93c4e7f8bd7836c0e45b2edb1ce2df9a26f42fdd59e161c304cc6a12af5657d6e11abde814d8b6535b3be6ea961e108ba0b003e80e1cd5dba6ea6c0912179af335174c4186800309cee294c266f0c55b51620b4226b8cdfac6fab6244670d42ccac377a3c0b8b8ee5c8505e2b0cad5729cb60ed92ee0dc0b92bc1cfbfcd5b289f17a82a503f7590dbb00625ce8c66866446ec90f31d628158e4e6e422bab68a99272471cdd6591d5e71e0a31806ba7ddd56c9afc68fefb6e761c408edbf40afcdcac5229040af758b092432e2e12da663a00a1fd809f5d954729968caaddae78e6785d4bc70dde820cee0fd87d0b523bf673f846e36f27bf6452827bad183c423c153fb3467163fdabb5070711dd09f0750fd490cd6dea588d461bf7030cef5cd46947bcb3765fb4f729fb1e666f8fe43de7de1220ad0de5f2ea95fd760d852d8e342ce8dee45dcf521a846ce5de436f1cb0249ba8db1134ebd40b13ab026409218ca4d2956e9d64a3837b4d63a6b70f1bb483747611396ea19866dc101bc6f7324d794caa6b6d57243a0a1ceec0680da573a2bc7d1c7b81d66cea68f410d1a42194f612e66339cc9e20f75b0f0a694fe024f800673b55096b98f811a285251337a4738a07d191b14a19180a7270200deb3e290acca3862d872d57844151c89ebf3b9819b45d707d8d981db44d0e09e6420bf7a182ea171e5f2e2021840d3e5c05910386a46af32f453cc368caf17498888d37c8a9a68c57312c6656e06cafb378c8115de3e75f74706c37735c73914240c091916b3d725fdc2535d82f633d2ef85f5d23538180ff2601f1c5a951a9e409ff606890e8d33a3083740a34dc37af6c600492b47b52aa5b2f0af66bac34958b06149f767de5e16518123c441ecebe9df1cfa2fb54c787e8ea991e3ebb5740682fa80ed43783ea795ec7e1767e800cc2e808432d020a8001b028247c00e8fab63838fb752ab9218ea54a955b8f151286a4e6c74f6e467947b45f5fe640468f63ef2f41ec9c5dd05eb97ed4fdfac2140222fb9ee2e67593e919972cc001bcd5bab4fc3e268a6019afcf422d281e6a16e86d6e837bea17a585142022ea0fe7a8b7eca3a7dfc8ab503d33f386ebe52539b159a7e7cf2d24e96e046b96caca0626aad0348a69edaa915da212813bf0f2e34b019fa8cf633870781c30c34cc0381cf0886d5e94d35e3c33952d403f5c45bc3e39c6bafbb898c28587faa5bdecd53e3dd1a3573d35bea2b77767a6c40c9c2308baf35c8c4b6aa425b03323e3e0a604829366464b84fd45e39d7b4b787418ad445e4a6396a01a2690c9d5c6f03aae7b0cf0e561b90c42aae3bfa7de54773ec6f2f3fe9beca055456b8d6b69c138e0d9fcb862cbb907a765599c5dbd22bf04bcc829383ec0a8eb19e8d8b63fc6b1ec547b1913012a087e2c0cf06b443a7c8be6f26d0714ab5c23706c3668d46ed449f68be513b30805e30888a504f67d404585d90ec201cfe9d6a0f69e3a5b5cb28776cb354e6ca8d67d83088baa867c068059b7067134df0f46c699d300ecd2322fa7874154ea8aa11dd207f00f5f0687917e067449471a9a2635d0bdc3316b654ed44edee031a4d34b6dd98100a1aca596933f4baef4b13cb144c27a6e539d42afb3e4bb90e7d7b05b0c59964d72e6558f444464538463ee6285e021d76ed8bcde75be9d7e79ddcdc27a85dbec0654ef5a4a9fbde91a0a66e6baf3c271bdddbfe5b415b11f66f4504f69fce4db246d00b5c7a291f97a4e5e883d9e3ad69e3fb83eb8a33684656a8927622c89f9a2ea10fb4b8bb1fa040fcdb0537cb289ab80cfffdfa3913a882ebeb886659065d896d18bc025c11e580d6edfb8b8b2cd521c7cf06cc41d4c42e5e7aec29397c05ca5246d0a1e3646c72746b2260f169843b346650b0b51cafec311b93065fc9d78b9e0893941831d8668e10b48895a0cf919dc07e34723374afbeec864d50a11e5362407d3ee66ba8e20f41fa5db032ed86c227ba3b1c3a526067353f34b84a22335cb096e68f9b17dc489b70078992ef6472a14a57890b6d932c80dca8a1d19de258f42643f4fe33fac5356851399c366128cd11918f8a7b4a1385a03ccdb4fd080990b16afe3b54253241336ed5febad72bac4864c8051a3351537db0fff7fa8bd2d6e922a2a34bbbafa8e8a1549147468ffe53eff9a717f80b8a0a7489562d466259419ae3afc81104a5549f52828ca4ba42a3fa31743b393e0d4d4765473140c5c3a3454496bac54e06f505755a4df89d9765d15ccaf9aeeb97a1a9862202a54156e486865a3ea0f360f89aa1c62f4b104af868b78d3ba013bfc01aa4519b0d220ecf76e58ee4bdbd4539b3a54345acb5a039015f1a99061b81d244e8c09cb62c17a957007dc7b44f97d3655f9a5ee6ba6bf7df3544964d927735cc9df9901703550b5aa45ba64785ca3fe72d1570a8bab870e463f45b95cf027700cfeaf4d662bb581aee009667c9154616e944ceb43ae7935b9549daec5fb78040188ad0b2c600711e0e4425051a7874e359d64a33a13297a6b53e92130ec0725ffcd9d337768f6901e188f46ab89767ddf1c09f70c4ee91bfb74baabbc2fff259bd83043ef9a88aed6df13c886851bbbe24ef85890b8996e69459322b9fb9aa36698c192522e50a2e78693409889ef0875bd35bbb9a4edb712f59b2b73ddc7f889ea481bf51aed1d8afb2b3f2a4b4ab85b8d1ac865846e48c981fd6e235cd6d5fecf7d7acdbc41f2e63df4910472ac1db91124334860e575d46f82e386edfc5fcfe3b3c09685c2e21c2e754786adf0420a016322eb4f2b7bd859602eb47971675782a383f18d9d60ba8fec0f127b6ba5025160194cea44b300bdb777c29d9e1a9427687c7824704374c8657e937ff68ebfbefeb652ea923fa5789718d25468955f38b1a5c852a505fa215aa60fddd24c7a41ab673e82fde3eb48fc271d096902dc73610ff4166fa618c28e01c566541afb6628c61430f311d970e677c749134e34dfa0ced1610309d7592265d8410b2701717008c85c9eb7d6b00114466aecd24223117d3f13ef3e75e531a844d79690917ee9dd8a9193c619eeeac23044f456cb8f8e1c4daaa13ee541ce9a205172a3c8070be13c532b0ee18bf2ad4317efc7b702a163f501eaea8554d574e77e634b5e5e958d8bff1e1158f16cd5471de396e3ff2e967fc189ec194d767b1fc7701beb53c112c5c92ad867fc1b115fef223bd83d57984fae68c0466475c1dedcfd763f69d09bb97899b62e11598ed078770e647e59e7774225110ef254f8362977ca17cfb1fbe3204cd2a8f0e4ec6cc66eb564fab35d5412f253bfed142fe99a6fbc334fb3d234deafdb260454941077d822f35f2ca2424568ac88a20a566ace220a304c88508bc829a3e5a3dfc9ba2a2375e25b40d27eab7f762c93441feb9ab8afafb5860792d1e7427b533eaf34ca7d87c520d5baab65bae9e62c1b419f414e7435b874bbc5e1fab2261c54a98c73c58e027bdf0ccececceb5fe2b3a7d1f8f81afa699d9e7b462e4f5bfa5cbee9f173157cad9887ec129800a8ce4aa8875ee8cd6d6cf2dc2428d742c69e2e7335da6a88ff1abbd112bdef2de4e175df32e25e61fda09bc736cd21084a277209ce2e932f32bdf6b480b1995d072a4eea0f3fe8467d49e58af58c835529c1fa74a317b65051e8509563c860d0807e89cf50e152d64ac132a9971eee4db7ffc013d374e978e0114181005bf992bd3bf13c9d3d32237e8343fe1c6af44e3a5bb8a24c11e8351e0b61c254fbdb8fc26a073759312c14edcd9a405fde43ebcaf74e93ed24169418a4a885ac9c4a41c879091118591fbb5239876274072ebd48c0ba47ad042ce098539e8a8901008458b117b0e82904c92daa1730a92069ce73ba7f5bc84e392c0cb8f3054df7b4538a8ad363f92d8bd945a2c48bf732431ce7019be3a2b45f24a40b351e9d4aaa2b38c2b18639e000830d41aeb82c85e191877108c432e3f223f76f861604e321bdd81c1c42a8638ce78f40a1f578aca781d0bf64aa2609ba60ce2af3e0b6bf5fa53fabea203d0f146fb7d0a5403c409ffeced89982513b4a2e6c50b14c1c7d6d911cd26b9d325194bb4aa8329b7d52edbdf336722b87536e48c5fa2af1feb2e1a248013909c59d374dee8b64069917107cf40d2a47fc985b655b9e848848fa84609db1bd7d891466593f01dd33a0c82134fa9717b80eed1a1a3e02dbc1f06bfdc430d2d947c3abc5097256cd6b444a732def223b657be5a8e83cad2e024df77da1d09882260e56b0628800dfea2c5e54129f408688ac949384f30ec2ee7123b304b220f91f2fb98b7d90f7433bbde43216c813a8619d06958e09b88792d18a2732e016647ed4903a0d250133e2c3f3e8642b1d11c36ec3c7e9cb396b5677ca017714fcdd2e3f7e61ff2c99a72ec943088de52383f64b52877f93a37ddf17ce95451d7481d309d3e32264993fff95c04a84bc201943fee1d930aa8a9ff1e8c08131dd7429d444fdfbd653c32350fd649a81a0ccd3488b7df51cece338d9595de28a7277f49591053d5470699b94b64e9308549d38bfd3092542804442a24c6204dc060356d0b8a66843419023bbc00be3b1e95fbda669ca4e243e2a39871f381fca29836b697fcbb9e66922d8925872f9331fe1b4ea69b0ab7d945a9f0355e09ba9626078ba639a83a0a192c1209d6919040f0c3357c63f7926fb62e8f423419a255e2452628c2a7c8ddccca8705551013e64e5a413657901cdaf12548c87e05197182b7eed10b7651cefd39b1a9151c05db28d1fa39a401fa44253435da81bf4d28c587a29ce81a2eeb9b8f160525730705f8e69c0a6c111e0176a022955e941e6e4bd70704c1aaf743d5115cfdcf54a710834fab407e426ff982c14d2a60a814141dabd2e3a91b556bf79392e2ee27c16ef9154844e808a4d61e7201aa581be5596e0d2e861bd1fb0aa16c26276bdb113f4c7117386f664eab3ce2d32853394fae037beb10a6ddf2157c95cd49a9b26db1af26898382bf54e754b233b4a31b94136b5cef9aa86f6a67683e38e68d8c303034948a39314783c6a471a2201fd884befb119e88345fce19ec0232758bda329a1c39552e13f24817471056dad88cdee353686bb8ef06cce3544f047c8df335cfd5abc060df4b47dc731d96edeb619f29f40c0e512a023c5172a00fcc03a8b63874ae48ede668bacd395959508a750beb7efea63b79dd163410a2620b3c43fa3213bab9a973e56d922bbcb14b96f13b0e8ef07b1a7162e49712f045f562128936bf4982b39726397c589e47f3cc0b94375c3f0d3371c16986384b22029c64071e3893fb1b8055b28d161849e9506eb0c24c1da94a4a8e330d9cda13c5de39b659bf34a3c7b7ef29736ceeb78d68430d1cd33cb77396309e257ff4fc67a470b5c79dd0d8c16564b1f07adc7ea1c24b8210d09df72d03c4fb49072c06f755b20da68afa91c19f693b891e9d595fedb941d66de0fd2cc7ad815ea9f2fcfb402ca2fcf39e0f0b7a5670c772166f137021c7cd24524d7e2694572b4795ed2dba415496d0a89f44bc4efa8df74488f0abe3583990e0627ae24e8c2a8b563b2d12ea85da808eae297023d2a44506fed49c7eb2b1f619f3d8dd3ae15f342f2d1daf39d7b4758db7029a3349bb395b0212d1fbde5609b61ba8e1a945f6bfc5a0787f6bb61439dc8f71a82756e362f6387feff4dc2a597465ec90867abb7b0e99da03c835e1abfcceba9f5bb85e82935bfd196a5a570f87595291ea524f46d9b5eacb6165c3cb184dae4cc034f642800d804018785586e6564e7ac5e01ac6eac2804bf103a7cef92c4915118f1c4108e7eac2b2ec1c24788057b14f449d484080c8626b0b04a4c497d5d284d6d25fd45243a29670800506145bdfe59fe7552ae3f4ef0f7689b54c080d22b9a6ca22515cc669a20c9bde387b1b241e35db2ac7229095cc1d6a7898edfde9f4f26083bd2e50ef2b911944846142a02f4ff75647a51e5f0a40b26c930b76b460b4e1597585735ce176f7f07bbb8b471fc744855ac804ec2dbdc62123951d3526c8227e6951beb6ff1355e5608e397897c73f6c171fcd8ae320ddda82f78c8492c7e2f207998c5bbc4d02bb31f761d0aec63bc4004f15c96bb929faf2c8ddd0c845754de61cc018d268757d985dd3a16551d6108daadd407a4ea466b0d72ea46f1630c387ed9001f2c654ee5407ab525340806ea3aeb623178b3cac9580455eb0506cc31079beedc83b35ec898d7b93e491b56e4504a86139b71351f732965f432b1cb520b445f72b7a2d5daedee845ae3746ae461ab9d21db9a290d1d1bb62432ebdee914dc1e410b5ab8cf22d6eb4fdf061ed9f5030b5da4d910d0e67a76e0a14e0219a2a606a7c0383583687e829932e2506c4614301bf9067e505da28b0e2d2574a025a65ba8b9caaf4c9bab6f314d81c937002b9241c49416dc06960374672b6779fbefcd687fc74998773a8367d5cdd279a591ed02d7fe41a8342d55a8f13c38b8fd6b3409c9f145a95c2ddbd9f019040929df26dc3d442955ea1cdbf3e183caf6e2fe42bd6ce9ddb437fe08d9189dbb332dadd759b858c118f9035dbf867b2210db6f0b4fb260a4b6d9bf97fbd01bc8ce52b6515f2e53e734d753052e0aaab085f70e60dfb0ae9515e6e22a5b4284b8ffaf5899eff8ce699c09e80e78b554dc320817606dc33093aff8928505ca6d56164d589d89dc6ba8dc66c21eb7e8d36f0ca42a1d1102f0178c3bef86e999a6040c054228d099b6a8642bb6c0b1f7eb1e2b68a801133b339d5806396b4b294f1c727a607684922db9f6733537649939cadab4a6d6f1cd45b0b4efacd832099d52897697a2ae942a07eb23c98a4c89c669afea8825bb5af5b06e2b310ed61c310ca33da88de0b0ef7f8c32908fa23f5668ad60751931ba0ced7b713d2a41fd641d8c1c1f3c2def8a223006dc8acbb6e88002102662c202683158f10c45b11fc8c572732f7492f697eaaf83422d29d12f87d498278317c6daca492902fc25d8ed7c5766a174b340dd5b931cca1f2601bc8f90c4af5dd97a87659d58250e26ce704199897fb3efea0130bcd8902f5a049c41ff9c03200900afd350d415f6a5909d7af37381674d1f1416ba17f0a6f9558f063808609835e312f147dd282c7a9ed1eee663482a0c09ad3a475f999b9689afbb374ae557273846ec88d271f051a2aafc4c898ec655cc112fd76bfad806a313c24a07f5c5619ccf103e12b319d14c827ae1b8b956fdb45e0c2f17bb4879ba7fe5c8b0fc1a7bae96e0b0a50bed2b950f1a280798534a89ee9083f9a7bd13f5e9189c303eb411179c361bc1267c84d85769c29afd0809d8f54354e3a2114bbcc5b7782044b97bacec40914b22c0a01790d60443c616d33277093deb4ea3179adc6682d453f25058dca2d01ef08432fbb0d68a712dec6ccea39a315cfb4c489339f2cf76e9b5059798c4e9aa190be4ffbf3cd794eb97fa4692a362d34ae47b54478b9ceec9cc485c06515748de2548399a18d3ef467d5398165e6a0f880bde45e9cde80203a54234bf7849b265849cc493f690aff3609293bd3a7cb82ef95f674049fca4779a851761ed882a37742b28824f30b7cd195bac080fed947a68c88f7552a0f91002718f42d391e935078d1f8bba8054124472062580481845d50e8d0eb5f678f7049a8e414fa5f71d2082f6bdb5f6008c7bfd79c3d8cef372f8b20715ec0fe33530263812e984e874da9a00834c38bef47eac07deb90d9843dedd1a701eed951af2fe0ae615d676ed9a38f7f5abbe7441e993b84dc6cfa1af7ab37adc2f1e733cd57d59c1ac18be1be4bcd1a50042cf45dca3cfd72171047b31c2e846deb85842b1c4ca7d654b30a189cbd2015cbbe2c14535616fb9f6d094b65801add5850566cd085a3baa81ee5d155d13f1ad22301858aabb785054033c06e386e7164615513171f1071c3d45bf143189dadaf620c7a292ce5bdffd83d8194d67b151d7a9d3bb4624bc5979aab7e0746127a7ba6e5fa8a0611995775c33bab8bc40c4356027d0e15bd623305bd4135b71be942190057a69a11dcc0bc35d8f60d6d2d395ade0cfc3462a4219ad46e3336bb00e739ebe87d638e81d8971008ef1ced0490685820ec7da300d32667035c3164e61462c8e91bf4afca437059c3a82ba7d601ffc52338faaeb8268afea4eef816a577683103485a1844116f02c47081d393e905f8147b9e4deab467b781ce69b0cc6b8f76943d7c553f23b7909a51c0eb919b910cea39f71a882961540b98323e50e89614cb2d60608ec2405633ae7b12ee982b4a469838cc94d67ddec01e33123bac490d58f14507c993849a4b58745d5dcb7c7c335a412164df0c6c8f73ce7b401741194e486e200c5c2c39cdbac2e2e4bb0d01df961850d5988d2fd278917549877ad0e97cb514c5d78b4134075c943fc0d48877344a228015d9f551da31ca6282682711d9f120358dde1a3e07e20d0056204b19e6daef06754cf9fce80408eda12a4869a3b120c201c6349fa44ddee331cb04bfdd24ef90f5a1898defccc8156884cf760b4e9ed22f112b2306c3d30aba4dbd1e92abef8a05c94bbbdba8364feee11d1d00535cfe922c7be331257afaf3dcc37ccbd925dc6d07883e6179aa8c92b8c6006d1bd11cc172fac705d303224c8f19cfa84a00338e5d5f1891120e9e4026b08ea801e449188ddffb0256d213d2812f995f52e930c6e54d9ff2ec5162bab1a34850814bc6549f2ee64bf4f9f5f71065534922c43b3687c64eb4c744a325f3c96cd166b08367f8c5d84c0401c8b3b939a75ad92333fd1e3839f6afe1f9aa71cd964a2b3af3c437d1f370078d12d2c39bdeb5e42708ee8d4e3a7a88f0d6a411313634c42525e27090e11d2577a8aaa01cfc93130319a03643d8728c45576c882d742bfcc212f0b2afe811d737175040f0f1de7b424a18e446abb212e80c4868ccbcb72c54e644cd586f17e1f5be80a6f79e1edf4a4a06ab87e31a0f47895fdae2828cff245ee86e7f02c80c6048663c545db8cdabee0ff67e3c91c69166913267fc857cd8e892fb940b4a3b66aa341945bac796bbd5875cdc35af43be44222dc4641625109ed868861b7e2bc0927d36596bc39f7567c6e45c345ad1154e918a63fec8f10d08d24ccdd1fa3c23ec14eab35dc63085fe7036ff704485df706700b644c540b67dd9536837e9f5ad8ada90c8d6feddd02bc76a4a1044f0efe0ffd598ff969e74a36d792b6d7dca9865fc61d0bbfb8a3c340b9748c47703eae9029a5b2054324e1b958c436fbf65316da98c6ee5042124ecef700b3d96ce5e9cde62f9e19cd58e71f4d260fb95daa8c060f3a9a578e0859208be680f6b65e37073edf2b87c156a465052000dc24cf98fe80ff186db2c114924b2bbbb7b073e0a44091f09346850353637383968d0a06a6c6e706ae04ebae80f7f719e17cfeb15eb3a565bf475bafeed137368bae332289c9da49da4ba939443ab3b49291b7091bf92bafe6bf97c9b9325478b9c2b3933cae2395abe1c2e3444922bfd36879603464e1857d71eb21eb25b41d79843eb21036972c53f191aeac73934ae43d309e24429295cec214b117198e7afe5aaf6c0227fecc4660f1965f1d7dfe30a65c1bcfe1e33e9da628f2cbafe0df3d958f96c6472a59fda18d150ff4e6cfeb09942e2d0af6daae8fac59d25bac6a9281aea47f1ca6d8c6a18c995fe743c215be7e0d350bf8dd1e718f50d8a14e8a924b9d2ffa28d51d716aca9c9957eefeb261e74fd61e8e72ffee2af978d6b2db6365babadddace5acddd676d6eeaedee8fa7998d0560eadcbe1425b9c48ec785e34a46d9f43a3accac3e4e381d1507f0e236efbde51a3cff39a3f28129e265df308754d82ccc4719ce36038eec471311c27c371331c4783e338110df5f3985ce9df3e3e8586b3089c88a8ebdfbb3ba56ac05352b86842d73c2ffd3c53bafecd614e31323334f6a6d97beb5252b8381313b2f599180df5a78ee089c2f3a22c9fae9f07565bf4f5f308f13ce1192261265daaae7fd7d8dce0d448e5fccfc4286bebfab9ad3413ab2acd81bc1411df7efe4c110df5cf18c9d56ffb3939fd4c8caaf66b7126d61392a0bf8417140ba5e7d0ba7e91e7d5b54e905ce94f014a0ead44bb991865d9d7bf678a28cbf4fa678ca46bbf7ed3c78386faa50f0a55b8b8473eca95360dc9957e30badea0286b5dbfb8c7aebf7e276c5b69be3064f60d1a912bfd437aba93d309d49a73fd3aba70fa1d284aa4ae9f00d2c5bd664d5aad4764effd7283dbe6927154076ccbb1db1b4ecc392905ef352a626405cabaf852968f11e9da6f7bba7d22f66d96ce431ab52c3d4229f7925e9c71b77944b45cf12892d156a6dfa09d40a4db4721085ce4d1457b0211155628f22cb46001239475335f1ea9f574511a8143a4fcb281e24cd2ada5606769f80206271f750d3e18a7d1828ba65a9fb29e63a5cfcfb14259f43b1317d307e3f2a5a7675bcca8a24a10803064839431292209083340914112422aedf3754cb4dae226a43e5f7e0700e2262218a741c5ac0a1aa610a38822fc4c1b239060810d98d860831d4c350e64aa999272644eb678c1b678bd4cf381e0c0e53bd9ef847b5a64059c5a8602f0022eda206b049e78c0c519a343f4ef172c8dd198ae5d868e691135c2200c14fe5798bc40882b929638e2074c801842121f6880c1154ec8666894e01814b1164c04cdb4600268ca9ffd685634a5cf9ff90447b328360bc6fa052b3598857e2f4c494b5646c3f934342e4a990f9c5082a4cf2a5db437b6f02b9435b3592c4867964b28865d53fadb73d313a2bfe2f9f7ea8e3f3a13229f5ea1e17cad5142689f31de8319011b7c80440f367cd16506518850c40d483c5411d465becb072e7d48c1776d71ff230c7e835ffedc60548559c29f670087287cf8c1165fb25061618c3084be10e249175dd88431460a78300313212a3c09d11333202857b2f8995fbd2098cb0220c4452b331525d950060d98303103103488411229b26041119478fc75d826842dfe59bd2078036ff4cffe595aeced0e2b7811d518f556ec941d5af0f9d6084b695fa02da2a1351a8ac56838a59782356ac2453be566885016414b11526698410e643b90a1c917294fece0c51438a860ea69d42928de4e6da5e274d1fe7a95f0051729d0d1ec4ac72f5a99ece773336caccff7ba00c17517658068475c74d1fec06d97b4232dba6863b575a3e7cb00713e3e5ec0df4786128821a483108430b485a802281883075378311423623e8c14f2025c78e0c30e5bba1061020d50512404288620820ec0d8f6555b160b8c8b3e1f8c576dc99f6965dbf33068ea0744486e280194129cf1237d10c60c822002ca105c98f8994fe953231ad31d2689ae0a18c8ba049144c9163ff32d9295d9d9fce17e7a39eb02d09e02bdbfe9498d6851e52ce074caece8e78493b2c9c5a4fde19ef0ef530625c86801922170384388337e66dfc18ba42d56b45031fb993f63f3a7914c908e197382b5711c6fd079627352601a324521844edf051bc73148874a87824e1f0041e338da60a34afda1d3f751338ee3a844278aeba4d36fc9c671d4c154c56644a7cf5a324296aea8d3ef31348ea30d26a44d8a59a7cfa3838de3e8c3498a2d9dfe0ea019b41443e8f475d470c34643a79f631bc771045aa271e8f47d6ae338d2c0e4ca78e8f471689a2988cd874eff46d0388e4c88b021a2d35fe9711cc71f8a34139d7e4fcd4a179d7e093b60f16440e8f449908de3b8821d986ae8f455655858a71fc2c671c4c18c3a834e7f84a0711c79d84a74fa3c4127b85574fa3bb5711c9728f1bae8f47568e338f6d0433745103a7d1bb2711c9708e10575fa606c1c471d68b09b74fadfd0388e2f253c2a8ee8f41fc3c631872738155074fa39771cc771072cf6169d7e6a055fcd4405199d7e0d2f36a04e1f27368e63139b57a77f03e44de9f46d2ccc860aaa98a2d3afa9b41f689d3e4a368ea31221ee189d3e0d8c882a84d0e9d3d081926be8f467ea388ea3094c4478059dbe4ced06db0f9d7e0c6d1c4715281991349163d0e99fa2d896e8f46162e338be74aee05474fa9c0e8de398838d2f340f3a7d936c1c47169cae98d1e9978690ecd0e97b1307a01c44a7dfd9a0711c53a0930337834e7fe7d083c641a7cfe190659dfea64310dc169dbe66814e11272bc6e8f4730e3b4ae81a3a7d8c838e0ef2abd3bf3ee33806d9b0b2c1a0d3b737586191e8f4eb848de398830e168d834e9fee70b1c93afdd9716e8fa07a1d82cf8e86b4a3adee878e237dcbc411ad53198300942d7544790a1a2a62076311663cb1e1d05e22092ca8c00c6d6144ed892a35d3c41062c91351dc2c52ca78a28a0d00b42c346047bb66851324a46d0bb243b31c08e109324ea5d8ccca0c4c006186191991161a0da0a872c3b6d58288900882926589d6304bc38244d2100faa3031c5506043101b2a866954621c46050844d8ec58101f0a1aa348e3da0a9ae862a8830fac78abda95d5404a4956831d54c19271d00d9698826ea0832a3b30e5dc20279828053931469532ac274b0288d298041355cca81e0c0bd1c5707cc28a2a5f76951116a4031bc2b07282ab7100a344a322871528f14a414345e862d7451c538d8849d7c317a35d9182da0e400861a2f92085091a0c6008c3aa40618225910225bc0bbb43526a280d498962e5092ec362cf1cc06a8d8827b1207868a26692a91d212be20556bcd86413a18da95665503c0102f26860630dcb1010312c4450c13204a402cd6b480cc586a240f183eec6a1a02b488aae9c80080a21ee2645142fa020e2545ba28b21941c531b6b57040171450d3cb82208080a228ca4072030b90195e5a0a332605becc8cb9526324cacca145f4e10c5c68d4a90ba187ab226a0b882d3d06a54d0102566c6962fb41d62c1d01428c638699a15314002032390e41b41944684275d0c81f25874064d074ca2c881c3b02690d8228a1e74aed1b058224a17431a3cc95616a342c38268868511464170238c5910e1d5b2b052c489a656a322c9500c89127a8a21240d4d11042fa620c2a8837c1a5f595c80440f434d5e5fcfdde7c74594b53f3f36c24351684b05d9949e1f37a12df9e4041ae62700bd1f11b9ca8f5fb4a52b86a594e0476898ff7e2ec855fe94155c3ce243944908987f411e34ccdb27fae8db96f4fbfdd4156e82183705a81de66b8791c0158241ba603e5fd14deff12f3dcc8791e42a3ff584e8f40b6e1c3ff06d3fff5e98a6aff4bd30bd4fb450be233efafc5830525b3e7c20d130cfd9020db33600ed13b4000d738a0a4f49e1f5b7bc936e6be794524a69e7dcb66f9b8f91686b3a51cb8f6bf8cb67a0bc049699f49cc79ea1c830928dfcea19d6f36ff38a3ec6222059e61143fe794317a7121bba3897f4fc52d4e93574713629f2d1f3b3d08274c52057f9f34f40b24620c3fc394bcfbf75275f5e8c945560c0038ac82caee8f957a89c8ce5dce25c14aa3e01286bfbfc05903f3ea00d207fe0711291aec981222e41bef94f90aefbc53047b9ca30d0303f1ee78f8944e2c89f67e8f9455c829e5fa7bef8922e24e99a9f77ade70b72985ce54f01caaed524b9cadf43c3fc36a4617e14aae417c39b2457f90ac9554e6ae12e54953f63241ae69721f5cc6b3441cc315c3046932fbe983f28924e67c9942edaa24af00042a40851a7b26828f675515e91944ba753ea38c1c59eca03f4e9494551bfd8f3efa7a470a9ab510b7f7d4e11a635479ffbf3a50681f8e4b149d5fd0b73bfe8f76f9631d027092ebbfd942576dfbda78be0ddcfef3e03f65e15b83f32934a8082734f1f01dc67809e4059f8ef13a12cdd859643810c5e7f1389c24fa8ad39de39d2f03e112478f5000cb44584aaeedf1368781f0845c1065cfeecf767a6d69a73142a0c820206aaaa2f81142591559e5081d4d691fa476adfe122898c0121c009d65a1823feb2cb8a888a0c6e50c2450f927e2a108cc6e88107275db44007f2e2c069127cc674ccce1810a9aa2f6345542802e48419e3820c241a604460810f3ef8a934802207b2a0211bd0f0531f48fd1368db900c09803afd4ac08fcc242e63fb9199d429fdd9c5d1ec8b797f3e7d14e8e472aab2f57694d22e5dadbbdaafaecf872d759e525aa9b53e7cf8cc22da5a814ea9afec7011761f557011c324edfbac52ca9a2b78cf195c861f31c43021cac2385455b5e6bcfe9cfdbb8861b0da9a41525579c5d2c516dd82229f427506a59ee018c442b8090deb8b61af9286f4de6b93180aeaf5da09c34d729792c2ada594689caf2653a2144dd80caea8d58a194ca99566a05e318c86f553465c9c417582389ffcf181df913f421de9b224d8e8f55fbaa65c6de1fcb1491cf32b0993de1974ebe3200c9b4143944b01c3ea285773d63be7fc0de3476cb94d75ca7bad3e75e9114917abd7d74994e533a527118976ca579d44c37aa389a45eed943d73ce39e79c73ce39e79cb15c59d4101173eb39e794ddd69d4665e12d802cd0107f481f3fc6df82058c48d7f6f88f509607f3187f0c73dcd1f1cf24b485a792cd71be39ef38f7382f716ee29c739e39ff62a02afc406acb02f84dd88b94750cc240435c647ffa6b8186f84d43e0a28ccce3c7916f39eaf5fb50564f10edca5cfeacfedc02c8020df1a67a4bd8e5b461cde1049f6fbb6857b0d961c5f974825449ad9df64a2965ad52d62aafce0fc149c538fd6d3d219d9b51964fa7cfd16aeb255d2574fa3d68e09c1117ab2afadbc7c1aa8a8b3de95362513afd58a7a24d50a73641b5c5cdaacdcb860915399b202ad345ce2688a3a5a004c7c56a8be34255f429e785ebc219e1e817e46834a49fc20e787d919bd1ed5fb5b5819a7b3d8a7bd94a4b946541a9a38bcdd0b6822db769feb41ddde9814b3d673eddbe0b1e80a1d5edb34063a03ac954b20467bd71bbcb9de711f91d5bb82843ef9e0718cf616969a90377ccc05f73a0a8b904451428a27a682da518633c8dd0d0526a8194941b5af09bdffeb60065512fe6e4620114b670fd7be376673bef76258f08efb28782962bd902621f8523781109ce86c07489e527ea2ee5161b641d7f5aaee48e121e54ba62a3567da4fc5dafb5b45929fd70978a7131ecf5b3ec35355d906858a3e58ad620d5564d1651d7642142858b29a42cbdbe8d975c5593518a4a35197942be2ec19824b9f2ece7c75f8a88d3cf5aae243619656a7a42067f3233b9aa8f656434ac26a3f943068b4c164ff4fa2894c5262393514c928c8c4626575527832ff335b29a5186a69084a46a2932e48f9a2c338594ea4259f9eb163fe8f577fe38fb71958b65993f38aeca169dd5365ed285bfbe0d24e9b25fc51452af6f31987ac955e56a90bc985cd597f1846c1da350858b9cfd4c31b9aaa59a5c559351af5b4f494bf767b7b3dfaea38b8dda0edadb64a254b8142eab25ea92d22dd6e58b37a8cbd0d6203834940ee8289c5aabb5b55a5b75de1b82d35135e0f2eab0b7c9f2ae44613a0e738a9199e968ccd0581a9a4a270d0d95284f08951bbde96c6c702c0e4ea51367a69399a1e968d0a0a141d574363537f6e6a6d2795303040899d419fc0c9f9e30a4144c09814b1a9e913a4326f5257546ea8b8c533e0343e384429d68c4d0c8ccd8d8541b1b6a4363738342d5d4d8d8dcdce0e0d4a8f15fc36f6ad0d8a06e6a706c6aa42a9da99b1a38356ad4c049d5c849fd47bff999684a4a4a4a4fd7035e01afa4d0822db7a9d6392711a8c582773ac7045cb49dd2dc336029c69dfd4ed3cfd4edece2ed6148c405bcbef584845d7fc1f6233e3a2eddd08eebc757603bfa40a8ad37faaeb33ebe77d5e5efe4d0d3256d494e4297bfa3848bdd7540afa07e4b14447f9b70f03071f05069b54242b55a6bedc5c10317ebebd571f0506752d2149a4272d62b0e1e700b4c3e3f702155e2ac7ff6bf614b97aceb3de9ec689d9bac7d7dbbb0aeade584ba7ef126d1ed85c478f77bdb40237295a2c26d076611a437e4eb76f6d3277f72ae74fd3bec3a45858b9c282585dbeef4dd6c7f7afcf4bbd94027f7635ee6b7d0102374fd32df8e5155e9c7df8eacaaf4277f4e9ffcd9a91af0fda91bf018a1da3ad5d67dfd3c44b5855f3f4fccc8099e2a245da621a4abb4d3f5df6fc788f6d02f23ebfaf1ce4c01f4e7823b311c78aceb1cda142ef2bc66d72925f8d600fca7975e03eec7803cafd3c703ab2afdb7082ee6d07ad0c0690f19ee2113796a0a1775907490746ad2657afd3a644857e9f5eb24691490a883d4f56f2ee74a4e96d3de317bcbec3db3378dbd69f646ed5db3f72621666f99bd67f6a6b137cddea8bd6bf6b6d95b673afb068a14e832483abafecd13e329e231da343c8fc6f3509e57e379369e77e379389e572b4f8c270a6df590f5984d9909447a943c7cca16ff7ed147e79efbaf3e3edc3ff71bcd47e3d355a57fe6f30c807f835aa733410c4ec343c0e7fdde5bc9048634e4bec43de640d133007e4d438b8211fc16a0fb9b12284aa07b05a87d7fed9bcbaf8738193a8a811d9c64fdfe96d2db4aaf33c56f8218dce2ea05f172e6f20dfed96f84e08e414afbc9d4bde92b69ad1f48d5d40bb2df0431a687f3322fbd20a7975e0782c4bc90d9651e08adf7652f0575690551519fb4465922ad512f949577b0424a937e939c866a8b166dafcb9f8e0e3c3f909a3f31ec2520347504f7f1fe7e65d244ba6c84903f6a9c4816aa08d97ab0b74e4354755fd3d3d0c968496f7d4fb97ce0fd6a846ca93067b26a831ce83781d54b171a56a4d615bcc6e3fc35fd7d6a85b26efefecd9b6a76ecf72b1265d1fca5f177e6afccdf98bfa7d7d205f3f4937d16c9d5fd1413e269a8887ea9e38948baf8df3f0d5156eaef9fa250d6cec901537ccf9e92c225fd62a5374a97ecf70ad1f07ee9bb4d6878bffb2e8c86378715b4a0c667713e6bfaeccd67efd77c1789c4711ff5dd196478ffbf7b02a9ba6f479aafd2f86a171ade9ff96a8d86f765eec77c35e9ab5f6878651849301ffd2257b56b9026cdd99cd1f096b42eb940c37b8486465259b8289166468eb830a32cdefdfd49932ed3dfd71afffe14175cc4cfbd289184e02f3d90aabffcd80bb24b17bc59f7cdc160dc7dc74ddd672daa4b5a6c12d52433e3d9cd29e8d70865e1d2c3f0fdebcffbfd758f3fee4bf93d107f1de8e4fbfd39f94f1dc1bfbfafffff3ebd5fc79aa4be6a0bfc6be3ef6722e9fa3e9faa2201bcdce3eff3f15155f76d7cb27e406ad8ffbb19ffec18148b740e0cffbfffff5ed44934c905e9ca7fdfc891bd613ded57ff03ea57059a5455f76b126dcd2d607554425f9465fbb522892f627dd22f4deab706f54bc4a48b95c9ceb5d7fe8875a8dfd7191b3972df05caa27f1f868ba4c30dea189f643734d5c49634b4aedfda9414bec7c925d9dff9dbb6cbd9aecbda6b976f67117d5bbba4dba02e5e59b7d6725da84abfb5decccb4259dc1c82e95252f8f6fbd4e13f6129b18c9598c6e4eac6ac74715d3ecd962c7e91baee339e45dab74bbf5ff68926b19cbee8fa8b485749d685d78436f15a20437d5f4a96c76422e9d70a55e9d7fdbea7450a0909090909c97841ee900d32bc265dbf674459e291d894a2ed7ddc176f7a445ddf4b5bde509d19aa2dee0b55e99da46b6f884bf29a083da1ac09f3a7bfaf426df1bfa70fe6e39fac7ae330a89aff4255bf39fabdfcf5dfe75f47ab2afd051f031584f78ad0954e203b5a2987aeffc484b2bc26346c8164794e683c215bef402f8b138f4b13caf2b8d8a86e9f68f782a297654644ca56429574fd1d4dba4e34b902f294d0568c122e64ebc4c589463bd168271aed44a39d68b41e03b495ec5acd9bed9a37b3bbd609499737932b2dbb425ba524dd10b2e561919dd07f4d0d0c8c504d97bf53e64cb5721b690fd9fa054ba3172e6ea42eddab63d2c1a42ba9b66eba9779f9a3ffd2a40bf7ad84b2eee96fba06f08f393dccc7802388c10a2730890906f0c31f68fec03ccc8fe0f4fce58f078a1c68fef0d0860d1d9d9d1d1e9e11460843958a84ae23a134d250ff2d25e92a700fa9eb977d05fa03037ab4aad24e38b8df076977a1ac7bb917e46691d5d6bdb2b9f47ba5ebdfafdabaaf5709dcafd77ebd7607eed77ed9faed25d2555fffd6bf83bebdc1bd6decadb3f7cede3c7b8fb077b83747b924ae0b4786fcf181e7ca903f3adae4bc4817d76d0942d7dc0fba7eaec67d775e5a479b3f2e18378cae5fecb6744da5373b0149d77dfda7997471276f76f26634279aa6c995eeea06b57eeee3685c50962b774659b7ebbeae03bbce46d7e974dd4ed7f174dd085d775fafd7eb855f0c3b7e94cdcd0dce76f9264bde765339ff813674765239ff813674766ad8e074f6cbdd5acb6b743552a247e5dc73d2f04b8c655adeac6eb0eb6c749d4ed7ed741d4fd78dd07561d7a9ba8e4ba2a1fe7d3fee0b0db5c5308f398ccdf90fb4a1b3c393f31f68436787c72372f9cbbfb4dae2a0a7455ef04ad6894643cd3a7521437dba5fe33239d16acb9b515516fabd1965dd1f64a85f7b5a646bbf2a289aba78a2750dbe4c30cad27f7f33b95f0945f0faf7379081fda2e1f6755ceccee93a2e1569ca5a171aeaaf757dbd74fd4028171aad4b49e12fd8f73a1a0d3593170df57dbde4cc059b090d35acabdc9bb2b72da3a1c6f88154bc6734d4fb8af58484dd9b7da28f13b070fd77f6f73ade1de347d156275455fab1fde44ca8b63a2e5dbafe0b0a75343065858bfbbe76edd2aa4abfd69ca350ff61b86bb5c5257149fa376c33a12c2d5d7f11e9e2bc99f4b290adcd9275d1f57b5e10fcba4c2e8cb29268cb9b4255faf1a461265dacb38ebff382e0137c74fc292cb87e8cf1fd3cfc1df1d1bda24fbc2f3d2b5dbfc825e5bea3848bde1459d78f4210b8e84de9fabd596dc1bc7e8fe659f16418e3af9f138e613e1caad2fbf5cba02e4d6bceffc1105f9ad6e9fa3b5a1da5ab7bfd9c7eeecb974a5fa904964a364a259d5269a754e229954628953c50dbff401b3a3bb8e3f1888cb06d5ffb76df9bd1d63caae9f7685d284b76fd5e12652589d235cdab755d832e5dd411bd59d72f9680bace3f6229a8ebdfdc7669978bfe8bf4b77693f04859f7f56320cac2af1f0751567e9d4317af171cba78bfa0a08b3a4aba889574cda38b979682eddb0fb17da3a169ea42145b6e930ce98bb6a74bcd42d150869475f74d97e1a417f4e9a954ec3d27d88fc02092c111d2eb080c274760b4e0a88b2847586439d28276a40596232d6472ce396990dc8b9389548144411f6912e90281fc21250efdf445406968369d73ce5a278714295d9c5ce937410b3e040472454dd0828b9349fe9ba467d0e77a43a45cf1a01df686c44043fad93b800dfcfb0bb4bf40bba83364f6fcd91b02027047aee80fa95c27478f4e4f225731ec8c80755e46d1e9fc4164e2a031d0708e493a7d22f3070d9dfecf690417a58c05e99a49e46a05da8aa1053a69903812207f80402e40ba442057f4ff82164c028174cd0fc16cd1a99aff6f63733ad1d95d327dea9ff917861af0f9a24c92ab69611d939df5cbf636410c8e3b920962f099d4155cc4b39e5f3e46aa2d0250186acb4855e5c7b3dac227905348019c3e3fb68265d2b5bdc8d50ccf20432b3d3f1e6beb04ee32a42a7f1e42cfdf25e9380721bb46c3fca9238e5f944948b1346850353637383566543434a81a9b1b9c1a291a212a075563738353239543d3f974dd874c41e604982e47a8b9a91d8eed6a7844723acc7d1c975558800c29ea4315601620e383fa0de43639dfe48c93738d9c5339e7e4fc397f396b1f58c61e852ae2015251343438355239ff81b55a10a5fb5329a5ebc6462ae73fd086ce0ea82b0ec6365e109cefa7f5e77c53310ff58b3edf6fa0ceb87eaea938b57633fe7da7062e6a5be3716eb84d0d6a84504542093dab1b1e11e9a2a1f1edec742374331f0f8f74c900a92d99572a5255e25684fe0dd7ab1b387c72e8d84142f73cc030bcafb4573770f8e4d0b183c72e01468704126ee0f0c9a163078f1e3d5ca7841270f8e4d0b183470fd6aa93fc464737ab43591c8aeeac565d0e1d3b78f460b57ce8f4841c478784236511aa03e31d18f3c0b807c62c8c5b18fbc01800281a3e18864fc7a307abe503002e8f482829ab4a1e39f7c89995732b671f3903206757ceb9fb91ad8e1d1b8f1e9ded320b7b2f7edd3d5e10dc034fefd3f377ab9341bdcedd50737e9eaff1f63d5e90fc2cbc3dab6f57ad3f6a35a1d600d42a805a07502b905a7bad38f6be8f4e86ff30210002180090fe83a7942b0074616d2589417eef258f2e7d74bd55bebb2f89a53de89be07fba4f29c1650ef9a1aaeab7be9d98defb6670c1f4dbf48555c523268b6ef45dfa8aecd4c031585739d89e9ebfb07a43c26e49e8f82bf2b140559447ce0e50f5fd7117fdd159da2a5255f4254dee1e1c37563d3e252cc346275074d4c55117475d1c6d39da72b44589a32d51a4003ada2283a32db0a32d2a38da82e4888b1e6cb95274b445d1519222101171c4050b8eb85072c4c578441b3aa205a1a408475a6a4758941c69c9e2488b14475a9038d202c491161d8eb4d40033c366e5ecc24aedf2084997f953cea32cbe78d1a2d6656838250d5f70e4c596232faa38a22d7144bbe2880684a359ed8826c691174cc47acdb2711c67f89952ca692928545b392868e80255d94255557d1d946134b43637c9421916545b54360b4aca636d519aae35ea85d6688d145cccb00e555114a6d3adf774fa53b67c9400c4e97754aaea6b6e7d7439cbc9818bb446bdc82a9a18a2d74c650763444bec63baaca2091e7afd0cab19464111557b44fb47e4cc09e804e87f386d65fb39b695b1a58eb825176b626da7f493b9b55baba17004bf2f4aa41aedf58fd0d6576a37fc42a65c81aaea5350d495cb44fa66172e1f45a261ed4255f597cc94547a9302fdfbf6b1745d4ae9add116a552bb4949282b083389d22bad49afb78681929852c3af5ee99d2c91ab6515f43ae79c5cad824668589fab4d17e49b44c3ea8586b746c37a39ae56a32c2f325c19f5ab4f7d294a2423b2a686fce183a3a3d717736e7a7dd4cd3e94cad74592ae7b6b12e9d62412ec7619d418a47bf4b279d0cb9b9fcfaf1ac42b48caa5d72cbdcef9b3d35dcf175ee79c27a850e703a1d55a3b23bb475278e133528b9d4c9533e8e807ceee425559cdbd5c619bdb6fb085aab29f830b2e63703f06fd1cc863d89e036f2668b90f5c943420947e6107525b8fcaa0a85118b4173c62a7b5d24bb74850b27892040e94f0c1a6bf9e2f5c94b415136e3f34824343fbf7e6de16682b2666adbddd1e4591a55bfb833db2b2441765d29115a02ece24136806dd7902652d919774d4507ea287fa26672eb0f9de7c7f4f79a9f09c39ce0e992006df2f31c6fbcb7d5313c4e0b9cbcf30fe1863ad2537535478fe4db79c9d03450a705e0a4ff464c2e44f18fd0d13d51607a40a8a14c0cc6f8f9f0c4917ee225797a86f2fb77fd2b737525b33201643aab6c765c8f40b8a32087d033152ea88ebc74639897d84fcc185646db39c25d3a4abf4db67a3dae25132519e425b347ee3d2b797950a60e64599ed373d4a174c1265f12f332686c6c4d498181b13e3a120438f8931c5c4f098189898180ea39f4817cc6fcf7f7331311c861bf221817069451263df8f7fd3d4742688c1f1f702cc7b4077fe7cfbdd7d53e2e07ee7cefd9538b809ab2d27343ff301fdcfccd3f89298e07f6640a0ffa1017555717bd3d89b666fd4de357bdbec7db337cede38dde9f3def46d9dc69784fecc7cf4677f1fd0bdfbed7db4ef9414e9c38b267949faf203196e5f9b3a74ec9a4a3ac638278d49a245998c94f64eb7bf524f49e1ba8976d2b3ba81c327878e1dd8c8081be570982ec5751c28721b3a3dab1b387c72e8d851a3677503874f0e1d3b707a563770f8e4d0b1a3677503874f0e1d3b74a7de8461238aabec09d34034ac2259fa0619eed573cae2be7b99ae83759dcc8b9a9ff80d4ccb80a2e631a0c851275044fdc3801366e305e97e20597a0719d6284b63a3aa02a22c4ca3e10d9285bb307d532657db7bdfb452f34da1aada7e071be12ef0ef104459730a196e3f89b05186f118c1478c6498cc22918c70b2e619a9ad6c94a1c81a07e621b9da9ee3388ee3388ee3388e85166ac8903f1ee005cb0ffa66ea42595d4dba4a485f36f6326024136523281990ac1c25cb722c0fad60606060f28c869b94ab9db3f4ed511bcc42d285614d569e77c3f370789e8fe7e5f03c1d9eb7c3f37878dec6ab1b387c72e8d8c1c323622a7552f8c65768b86d90fb7474e0dc03a9dc8c861bce9292029baf8e87a46a7b516281795172c1c14091f1d28c8ef1ac2127215ba9dfbe8874c5748c7a3153a979313761f36296e2e6c57c05ce8b594b8de740317fd1b7b7a90f2355d556c30727bc791b54cd8754f3227f41e9b9ed3df728d473301aa2926a2b0fc1284bbf68f802c9d23ec810c604a23e5cd33e702f65c8812fcc2d8f559533510d4eeadbe981502f97be57df9ec60b829368d7755df734bc205d132df484437143335e106ea8b68c54d5f6ba048a9a23a1fec5308505f586843d0f61e1dc6f7dfb6945ba64df7e6edb94be6d8f91a4ebf4dbe7a0bc84b632acaac090ad3c04b36dd88cbe65247dfbed4fdf84c9d5f6236c9f61758381c99ccebd091473380e7c616e4f24092eca2c3bec50208373bf8944e139a9b67413fdeadb73dbeb57fe4255398986e234ea9bcc42ebdb8b99a8b672525535912ced44062159ba49f7db4f23cadabfd56c2f41715ae9db94a1b6df394937d14eb60e342257db77ddde7e7b4cc35c388e7b192f083785fca183248eedb7c757284bd4417d7b1157d1b7d26ff837ef376cd4379ca56f1f5296e9b9efa1acfddcfb4857f7dc4be982a979ee65e5242b1b21430e36252b0fd1707bee6b3e17aa6afb3d6143948501998d90ac233214a710ea937583018dec1b3030267006d1709372d5fdde3ec6c8f65a738e42bdf82107c5b003459f6e01e9dabf3d0b94d5fdf62d5016f7dbef1b3d4c26b0dbdc8dd9e1a85d0edbe9b8dd0e1e5e9f1ba8a4ec35863dd0325523020000001316002030140e868422c1284ae24094e30314000f749a5a6846960aa3498a62208a852088460830060002800100222484322000725afedfa3d171e967fc80735f3cc558f2fc16a551dddf2162c07729cc7df153af3687582ae7be78c4b4a4cc2da4e5bacfb8f65c2b9e6e41ad6e8b7ffda6258a7e6abe06ca2646af3ad6938cf42d3c591c592897cb0dbcad93683c92ee49b480ef474f3c54fcf4b30a5e6a3f53d4307f100707d1f6301457bc81d892a94f2f499e0aaf5816b3a82abb03202188bec624af74a164cfe8306aedfd94307fe1af5c1e7a6f0b766e08ad76262f282e871dea54b0720724df4928c800cef2b327a2c10838f8b1dfe80a5b8a4fff9e0451a517c7ac1ba328bc221d224f269ca442a0cf8f3d0ca50d44cb090cc642702a338008ce40d48a41305818c07fd424e729747020a5976225c9abcd7f232c7d51d47639cb42eedc8bffbbb5b1b3e0db42c5c30399ac61393718c984d61d9cdebdc5ab095736b9c0565a5882aee06579fdaeae1d0aaf5283535884bd54924a465050c286124c15c4a1d7aeebf5a91e08a0cad96a8c5c478bc3c22f776dc4a1099a13952949b72ec4c2f13bdd887209bb32a10f505480ea32e9e4220f9a3d812e43ced5bad82c23b5be3eb33c549a96388e62a9ad98606ddd5947b2c4d0ae34211e1daf554bd56e842024de76daf64dcacc20c5cf2440ba2d34d8c57650b86510654c42c2db439a4e3bfccf1ee9274bc2c79b4f590beea82fe7f354219da68b63c6865f8b44fe6c6e8f814b3fcd71454f27760749f9df8108288395d612dbfec1dda081fdb88f4d5ced27d7407e5eac49c9d26d3d00d9b2b79650c0bf9df7b9d6fb928925ac1288a0f55f09c902fe757bc7ca9f7d9ae9eea77999e367c1414885df21214ce89c674159e984d443c2dcaca1ade30400c714880356448f2033063fee8e8b60cf650a8c7aa6dce2f619e1b651a454b88f40dfeeb90c285eb7a21a7d48d25b61f285879f8406a65f5378ecfb998ffd6adc83829ee517ad3cf7a83ba466639eb10b38a0e6aa935673391dc933a8156b17a18dadd10a7612c5b1bdd415c1a21f4177d1baebc3e3d7234de4250d0e56ffb90378226e5168542f109618fade7871ceec82a80e1f3c9ce99bb26aac2ef2ba689503ff5a246aac906a85720a647c3a080f12dad7c87de97f6f35929546ac0062b5bf1644030b02bd2b661265367dc896e5b8f8adab91332f4213a240f601e091d267ef69131ce252af1b3939dd8b7ebb34b9cf32653481f51dfec32b410c68c80edf97c1788a78495e67a89a1b31c46f211067a7d5a6f81b199cb455bcd415ef84e7f046a555dd6f07fa9a324b49277f74e7bd4fa59c410a5252c361b93fa698688578dda15728db8a1e4dee8b7fbb34189734392a2c7e8d957d2c3440240b66a4e83cfcb54457fa03d7290e99da955c4353c895a24f6887a93d0a97504f2497d59a4f782c64dd12613d506a64d38c1af47dc06b3d76ef39d85c41cc167b8e754b9c38801a80bb66f5468a65c9f93386a87cebff9ecaaf5ff7fde9fd7feacf97faa5a7431c509f0d1dc1eb3b5edd0aaea53ad270f0e2a61a9fc7ebb4d68e4fa9e52a31537f5ff78cd4f1f258cae70de9e377630b6e4808d58bf428684185a46f66dc207093920e4faa1b79d7ca5c91174020743ed4c8f5513691fbeacf44441794434b39ba9fcbaed7d6e909e253c20c15458a2498710a0994510911b98efc6bedec6ac6b30974501f8370becd05b8534e9a2f761fb1a2d66db6a81caaee1cc9e711c0501842f8bdb0dc02d9bb4aa3db4c5b1272ee8d94234164f1d0617d8e4e911086c9f9da2a329f84f35cd8002f75eabeb4f7d345426b7d16a7ea8ef4de4de49a5fb37969a1655bcfe756fce7b630e652e7f5ab08082256f5f78ef9b16d63980c7f427a9671423f43485269e64c85f2b7232d480bac952f092809cff0d94fa66d669b7117d1376f1f9463f56f974607a76f3fd1c33815dc357d27308d4d323c9d09c8657c636faa900eeeab91e70c740387b25e0c956be553230720dfa122d22a44e1c4b63653de08d1bd0c9a7e895cf41ba08c31897570880f73c7124a449ec4a2af8853441c1240c8132770b6f6a98ba9d9080f15b5fa32778057a03054ba51e919568346d46201935b075ba91fea60bfa20c780de6fc110726c14485948dfb7e5a956fa8d8e73274ba600a460a7120808a1d07ddd76bc64f2656951a0e3915478eaa19e91f1dfe24ac57fe8b836306f3eeff6e71fd84f265aeaaee4e10966346d4416fb11267688257e45a764704cea3672c0beffb74207442c1ff86bf8c8df7fa4dfb43071ef9cb02231b66783d5ab6ccf89ea4d1fb218da5c5696c5a9c92cb884aa31e59c1ee08b8b9e366142049ff20a811a05e59dbac9ace3a3f3b374a4acc37232b556856ce4a59895766aaf20375bc40f18f72b700ac292b6185b0125698956485c7421510402bfdbe9d3a192d1b2dc90fa3aabc911df0b57ba4f0e7cec136e296c4e143c29ad21812159022883b1ca1c99079531c376561cbfb44f5d6d2e0d27dc496eab2d6d16530aa40a3a4f1631d5941d68915e8dd8c02832dff6088c743619a1b4e6821f51cd951df6a90432e92fe961b449babaaaedfb11bfc1f287e1c7e2003875b2cc451f090c253a4e0b785adc5f5ae5d78f83780f2c0641b25a1ade8220cd510b40fbe1ba89a760b47ba8f543f3ae66f98da5486d10d7acd9d13c30a986da1057b4a8c3f750a6762231e4d30e58db18e092fb6570995e5cbcb7738dfebd3c10ee5004d59b9eb6e6c355114da75a62d540067810dc6a3db65b3d027202d0f1478e45cc718a940ce30cb1339046e0923253784ccdbc1af869e454b7c1269d9ff1e1dbba04bf534ba32e59ea99291094fca65c81cb9031112273162e2831bc60e2c1680594e6aef331d06939c04583ccb6dc7b0a9763400d3aef6199562336a2d8253b0f7c7ecbdd03b1a369f41857e445c6371728cfbac338ce83c545f7983bafb294c547771b9a504ec621afcb77f4ab52571989ab932d5a2e390a60072dcc07628fef555736bf72ad7b225494b22a77475044f62a0d04ac00bb417ee4cfdacc519e908a055580b40acab1d47b621cb46004b48c58e860a3c54386f4fd0cddd31e69553e67b5eedf49c108d1e2266a1a5ed5276ebf8b434c5ec425b810f1c82c8566881d33ee6dc0f907e8e3affece6a6a7d24f161bd615adc402c51faaa1870bfe60e379307a5dfbd78af210cde6102e9c696b1dda0cd52e1caa5b4850934bef17775d1f797357ca5fd83d288fb91ae069607dc7d0872a3713ef56a4d6d20dcc867762472193638c0fe0fbed0e98e4c8a87dc18d9a2eef13350bef0f8b417e031b5587580dbd921f4f7d64f8386e87743fc1c5da4522d1883e26e6f4fb868d151ab8e47dfe82a25cc0015d1c1cca91d5e69b6ed6686ed861bda9e125235d82cd51fe68aaa776a64d50a0058e9fd1dc740b2bc90b3be2ea5bd80da3a30226f0743bf28836625aa5d30a918bcb2151c48309008a384d2eb2aae4b5903f18a82cdcfb2a5abc72b860fe8b52a499c5fec8bf74dc962b684753579a7da29c146edab37f731557f15493a0bc4f5631c16ac2a01965ecfd74097e912f24a342a108334191d2aa8f52be86679982dd4cb881a72d403f067118166bc64fd92a3b9ee292752cb5664ededac228b85eb65fe12da2bb664c494cc534d55605a54d29348148b7230fea6c0c75beed00758f393b49dfd4c0bc259d5db397cef87834c744235bb31fb4bf39575f258b61c471f93bc9ce49142417a81062bfe2c866f8af29a327b2ff1f5aa3989530280aba8f5f3451780f1fc6d34f6568b851637a55786874e462ff09b8da5707032354cacbf41bea9847f91b5e65e17f681ebaacb6212a7b4547d380bafe0be7ba8926da083a7971c8e671bb1469e96aa5f2a2747b7158e9d4e9040f8c750018b901423cef54aad0d935e6872227a4830d12873372cfe4403ce96e7eb8940de2b5cbc0069d603b93b18778dbb76c89c4413560c48ae37f77f980ee8abcc0ef137eac39c580be25d0de3d447c1c5967c8c889b764cc57c0ac44091fcd634df478192227de46a38e759206c84cd3941555d0023a4cb7a97d606bd2dcb0d8b3f729353ac9204cb2ee0c7613391062cc79f1722f9a07563a3c32afc8027c031ed4e632990823c8f24b2b3ac45d8ad931475306b4d9565cea3019c1d354500d07bd436c5745cd2e82f72cb58683de91f090dbc8eba70df60adfc58dcffd38d15933f02c7d4c7002963e6b120c56785f74f184ab959f5ee1c5e9da2136f5566a070211c0273016ea7f3709a81a2b4e3c428271030bd3bc002d9f375b813cf3b6cde83905858f59c7c27b3f824a19c243c1a8956d916fe3f59e479b7e305d0fdfc6798c8725ff1cadb9f4a04e84465347bea263e1d05909470223ca3a4ddb8b9867ad4b44840822ddc8989eb73256ceecb0eb90278bc750fbc2e6f83134fcab412c8b78417ef79a2dd6aa132e428e1d6a814d87ead5c758f8c2180a080e24fd15d066f5117d80a7a9eccd225db5fe63bf4578313899085998b4a1ee725a54fe460b46f4a50acf245313218c09b775063181032922998610ba2a3071854072a1d83940f7966217d706a85a04c16ac1b885a7e28b6ee1dafe410ab2da7c3e79a60aeee9ae68395e17d44417557d0369b1965135b92c92d8e9ecdd314ecf6061295b869f1beae8d8b7b3ce1b060994b97e38d589e74afc9cc7f391f1821afc473453291fd95371b4c231ca6e522886b4ad49dcadbe5de99cf626f33fa917e492fcccb34d9657a566120a34e525f8c6282102438c4e58f26e36d14e2bc25b023962f713d6ca3c97786092a423cd812a7e0da39bfedee27e6c6b142ec39fb9268212e4a6916428838c4fac126d64ca0bda6f6e26282d4f4f046048a9768b339d9995ae5682e66d59735c4e0c0bd71a362ee36424c39a81167472bc00042c0e1ee01e0ab6016a6e00557b01f43ec1258e1269256aa8afea0159977e310c846e582dc0dbe2ea50b8c27c9801ed74ca0f7863728b7de4468f846735abedc94cb51a8783c5de591981774e17b18f1b78ad2c4b64c013eec9b64d0362f015eae37567e1326c7fd0a562f6bf3230dde74dd63b2e52b1670fb2a2d802ed4d22a186ea28823ad118887070cb2fc02fa159810775ff5688bd79b4a373cf612a00163777b8271b48e3e1c37ba6757f27f251a477a354a04320293a4dd8939bdee400760dd417debc47f19338e41164dfa77cfee3e710d4998fa569651c923df12f43dbf4b78b7ab7d26d94205265fce032a6d54396a0b0b08b151f5f464aa6c1187809286477b2a319f40474d67659f9db491a188e71caa92a7dd44793edc0d2d9dae0a566f9aff0a3011def9d8ca25e219e0f51033f46e3598fa868e73c24ff7ec6c55690a036ad0eda1242cbb5c91cafd2f23ef0c856de01ea9ebb11e83d6a64bd5a8e963fb50f74dea387dc4fd369e9f76d3d16bfa391ebdacf9ec6975d33e7c26f5dede4685fe3e5f1196329d4ee2109338f1c7483902c7f4706610a34f3cb2ad650b46a29faef5cb86dec4a05a22b954f8800b28a324625616c216da7dd7cfc385366460ce4edcbdff953b2fa7e7ea1292d04e0569a90aa88d0ee41ba83e510e1d5df84faa31f173fd9261902279ad478830f0d783ce7e0e9ca30e5ed5085bb706428ba36bd8bde3afa804d49bc532c64ef0c36e93321dc980b4a03ddb1906908595e21df8626237de117f98984926368fcb6e755c2ffabcc410da73f881b58941bdde0d8061c40294405adfeaa98909b63194f5855beba7fc878611ab7f9162f6d4cb6467564bef951628763b75be7c575dd5f53dd9743ed936b8db39fd0759df406f15410e2f527f67a585edb0e1f13f59d5d37013817c4fba5e31c484fc81f13e4d549178f461bb72635d461aadb5f4a3b6b68da3244c2e41496d64e2841264ffe5ea18925b54f3b0746ed22aa8d6e53acd7197526638f469b086a237cda5f11adecb80e11a31c72eef7d11bc59c56a2e5870e00faf2654172c9556471aafc9e29cf4c311e7da1fca707f88b53045cfef4539bec64690b2432d398a842f5b1cb95516f9c8fdd360789c027b4c3d41e854ba8270929f26c87a8932a69941cb18143f5a8a83e2e57442d15484d6d0fcf75efcac49adf3a1041b678a49508e7bdc46ba6f67edae29ab8cbc2c61e4eb5a7a1984c16ff42b34e7c1bdfa3da1dfa761bfdf3fb7ddb80bd2f6152c6369956597e0c606fbf7d4477a6ce4584ccb6b128762c3181d688b7cf182f290342bb0e9f32a8561b3694987cec5bf726c55dddc05d02db9a03730aa4a93e2c363646e93dd765553a8cf77ac7f2a71f44d1dcd80c971eaa6c190c30d87440da0cee9ed603fc86db8e10e01dc920875198f8251a4c47b304684010faa5b10413e760df8f418e347a646a0f1c8ebcd1a3d2fc2522d7cefaf2bd9d1d84a016772d25990d42a3ddfe31cc4c6685d8013852edce5ffb110bd3b02a8965ebce6dfd4c0b078e1b529308b44f7ce9a69ae673de9312d7cbcc0c8114221f80bc6fafb5ec03789fe3c84f9e0a7141e997776de6c59c65b8c6a1004b391693c4c929802356c44ca46dbe13e4a28ab8255cf9844059a482c11cd9dcf150e77d747b25d1397a0cbfd7475930ec6371aefae376f51a8ac514f67980346f9cec77fb28fdd29959924e08db895acfed5738eb3ae07bb4c2b5236d46603c0b25b7176e782f6a7512b9910eb104f3a6c234fe8cb227cea359db1f2ea60731044730987c7bf26e5a4cda25e77b5ee8f9ca8d973d8d6ba9a8a844f4d0e826470c6feb317627ffe109eb0ffea2881d89d00c8bb4f0238afab68e31d5acc547f43f358b936b241efcf2f374b8e7f03698baa6891131996d18f1813334671b382b7cc1f8a05fbd132a5dcb9066a18372b61169036df7586dbc543fb65fe9fd69862d55c5c65c24a7d33ade01621aa536dd38a1c38cf5451ee40c20f691f9c47f09bdcad9258a54533afcd1bc98b3d0495f6f86521d0d62b4a6128b187aa466b4f1a3dc4a3fcca65511828043a40256bb51e3aee7bf6602e4c4ed22bce9c643204b56babdefb553345d4e3fe71671a5c1402403d353cad1abc456d1ce634baaac9d54225656f18bb6ed25b58ef710326b52db16363d2723ef511abd346b488598a32c2a396e951872e0f8443698db26878cdda4feed9660654d0353371f85cc107e007855c6c488edf6be238c3993bb5d484bbd0f75f968cd2e528667a420d2471dde788423b0f31e8c159770740b56337ba6fc10c4e7db80b7ae7e36a27a50650548e331d92e4ce10a3e5e9087e0df33158483f1cef60cf7b1425882a6a94452a3d4359653b025abe5cf6820fa2c3df045b87f1dd7390abbcc783a37a0bf97eba6b978f589d66b35587391bf7a686394764cb11e45aea6ea7f1774c620297d96190bf62eea6d028b3cd7b0af9b10c6b2a2150c6b8eecae8b0efdc662fdfaa8c2b50ed35b5cbaf460b5b5d78556c1251e6a731d7a62daecc283487bb1154694ad8fadcb55e2d4a2bd25acd4a17cb7f67853525fad2f098fde6ec99a6bfba70496267b20d033902029bd29a36472030a394ed53e7bc4d06c15746ff73cb83d8ab2a71456b553dbe73c97c692febeff84ec03966df021265fc1687517ddab02e288d006b77622e5c3bf3b98a8ed5b7d52f93f249a5d867d2276da0cb705552fe88528bf81c99a87e4a16260ae0d4e2c58eadd23149d23a9b3d230fb5377179ca0090696bd8ffed0342a66a37988bb789e7fcbb4e2d3426606fb7a1129f4168b60f0186f870d153659f86fdeefc3c96054d3cfcd66e69ddaeacc9ae48201f33d8a12617d5a15a8cdddcf0b2eeb95a6e98714bb6e3ad754fbec05a842999aa6033bdace9f9dec4030151513204132a1eeffed633a85f19b010dad4497ec756e34692d365aa9eaace1658aa6ac4d2f4901aad4616d5f5ae1478385479b528b649a1082a203a1c6448b299a1796ea75985c04d16e7162ace5dc0da2efb4c33f2cc3bb4335de62e52882ce11cf24d7bc843383db0ae98b9caec672e8ff4bcbe27bc67fbdc33ec31d395ac2521d8a71b31d59a91868941ddb191c8ee7fefb874284e999aa6636c3004c6f508a356d2cd752a5881797f39661cdb2a20e66632a2eb3af1b4a5ab6f803aa00c93fb26318b73743d839b522ded64e1a47d39ff28b031307fe1971aff58a8c27b089e7f20d0c972bf79ca4de98ebe5d5019900646741e0dc3ff0f605f74929af7c5dadadf79cd61354c22ac8275bd0c885556aef135ddd6d0f2c7fe596c9cbd8a76309f5ae8dc50e6f49286ca607f7e35a36bd397a5111942fbe3ef249056c6b392dc0968be2a97395235480afee6ad6ad7cbd3f05870d1d2b4e1bbfecc84d1b29929cb86aaea93f1c62aa2afaab65511a456040474869bcd01dad02342f74dd01ccdea9ace0def026512a3517d1c21160f1fa731a5b17b2560dd2f96c9b73a3da2c5b2caf3f8b01d10a6bc055dfd81ba0d2087e877076cbb2bd129264de1c8909d85e13dfb3aecc09319ff014c60545f900636197fdb52f307a8b0103a396280bc8262b58f67a62887194fbf6c84ecf29cec2b0c09c9d4f591d3a5498177ff9934d0e3c979cfa14c15b65a9d4479165b2002f4b03dbfc00f5f539767bf47f7e6e06793682968d97ba416bed16193c0c9ab32bf0a52020780cade9d1e1a21a3e7907b814dffa95ad01f15ed500a334c0e40d984de5abc9f3809d984074db069a7916c2e7f0f262f07560c38217de555a4f5b807251ac2c4c77e1c641d5328c281a251974205c9f8a72ce5a72fd6cab7a766e5b04be12e9ea8315d83212846bd1a7f11ea8370b33e492167cd893431a96c357c34eb2b193329d1393fe9ee83a546e72315fafd799437aa0b9323bf252dd1f51844835dc294386caf27301238c22d40889904273d2804c31d3603a2353c78653555da656392f0b404dc8b3a7c9aa96a7b523d27bc54be2dc68b7ee8ccc90a5c4df22249778db2ac9fcec24b26a046fc18f8032dedde1417bbb8d00157c81d22605bfd5e69744c4ae228647547611625ae08301d310dbd52c32dcdd06af894e5034f4cada0853023073e8e761366d4d2d9d049a7e8dba11ef197e9bfa29dbb2a2352548a9a2bb7dcbe5a917fe20acaf5943edbcb530c2d5cfa287143727505f2be213b4a9885b6ad10b62a065ec6e21a14b8984225745efad8e0d30519ede759508e45b4c843854fbcc71598604c51ffa4860399696a35af1d7eceff8a0aa076e5f096ae7252453df9d15116cfd95994b1840aab9a34e864288e0d16bf439161beeb8a5f0b815f1d48483b0f6849b716a38461b89aae5a4ced82d86e17066379dfb3c68b5e4bb398f9e985db45a229befcd445dde0013691e02979281003d1e25a97ff348cdd2a861d950752cc984adcc58f0fa4c6625a52cdb600f54e08c3a6312e00f535dc9a71f791e9f2a2f3e05f20b24bb9abffa863fe60830d7fa35e487234fb775c62100f2ae3fbef715cf0ad5fbad539910578a96d863881a4f9964aab838bb21dfd51f1460cd46200dc948cd722cb9ecc58f6fc09283f2411f8d1b49f820b7129c171a2de84cb215537e180dfdafe68e4e8a34b94e0931feeb4fbd332790453069727584656348f1aa952803a9b3c4139033ee844b0c4e028fe71be269c9b6ea30167102c040357560022a78772ce2b9651fd261c33ee6cca2eea38f5f0be6152230f77224d0cb37618e10eb0dcb8137f0e1112598a802ad78ac10a6ac853e86183d193dcf58df486627dea8d85940252014aba0553a83c23920ffd82254d55738ba4a0e3c30566a5619b7bbde9a8aa2e44faaa33f3dfe510c7024a01f36819ccc5d0d5d08c4957dffc86fd6a8de7a222d4cde5c77116cf45e463d687efad3dc26066fa437d2fe0a12cac838faf872c248c370da866e557a8462c784829e772ddd378dbce5ba220c0361cb2d0454ea47e09dc9a0f944e55ff37604ffa61a009ea13069dc9e745fb1007c46e1ccb40d013e51a60228eb1902b719f513cc1b2df50fecf327194c87d55ba2577e7719f9ed2ceb1b6654f5f73139820e1611e0d6f81f862f22bb443e40ff793385b4c2f513c00a4634f98a1e04fa279369300e6762a10b2fc899d40863c3e6e58987db53058887deb830b7776c01bead65d24e258d004c2e65e01541484f014f93f0f179e3b2291b3d985d6b7414cf20c569240c52a11f2c4c338487b28b0a782f586e3aaf1ded9c2920a32d163a1858b3c289410f1fc7638bdc2829abfe1796cbd48e82e438fd795a0447229259f1d445d3ec48ec44f3004f213c3a0fba382884f9dfa97675f6494fb5c98b4d513f8831eeae1884298a9db9aac836ef0073b1ad5ce74a9b4f62c8a49a45afc1ea0f35f42f3aa1da2a7a40fce7e17cd1a3708379e9113b53dbbc19fc3cd3c7bf72978beb802326bbcec5ba0b6d3ac0deb7f5dd6e2a9591c256fd6f383fab3d8493714f84d71834d1d288c6e8903aa7bd8a32cd61d0d2716dc79481097b10eb77530191c39ce645c25f17f1ed26ccf7417d53a4df58e446b2f19694368b1c78c03d4aab759b533804bb0d22fe8b82ce96fffa693bbe269d96fef769772cb9a077cf4d8709dab713aebe5456e999506958feb90a9236ac6c6d6bcfc26528cddde8b53af5b4f13393d3669135fb5c790d63f9213499654d61e924f6e9096d38f00ee5590eb13e3014ade6979e2fb02ca06bd8ffdc642ef89763e848e7fa34720894c2cf7017ab390a1640cf283fd7354e007911be5761156b5c4c3e4e141141f7c1821a757fa71d2e822c639d8e1168321e7743dc250e2a1c379fa922910d057df93e7c9870fdf91067948bca9337ae2d26cb1e7b7ff03a442bd7e4bcf8affb4ee75cf8abaf919b932f2ca00ad29407ca870df76669efb57e42b698fe2db6a1ab2b6a7fcb0bda44e40c690b9639bb6710201bc56b9fd641f5131057f01adc823a0b2527c8c63bf562e23b56c5e7bf417f2323801e7aa29e651ce78b2160f23d8cb0987370af0b019f86a8da2daf311a105f904e9040a51a996b1bf273899f073052356a1f76d5355aad33c4b4dbd68d5b9a81c5edc5298a74412f580795f98b82c7a4700a7474b85f680f74307b4b920232d8d0e4672e60b408f1778d7e04185654208d078840bf362cd3046a068295bd3ef67de78dddb36059486e186a986d18712d0b2df862c569f7494975d3a7f2ab43caa32e3d0c327e1fa3d6fc94480263b47c66050a3a97c7345d4aa7ebfe752e9578626804b69d5237d0d5830013b58064d99c0001a32ab4a161057a3125955488b528edd58a7a70ef7c46d2fd2a37fdad2f5ac4b424be139413d3b75d752f090306bf66709f94e1b82ce11ecb440cf8cfb228720baf6f41312c54c7b1d77587fab9c367d61c3332b03419636c7304c74967ea1b698089aa90cdea638057997cb14af448371188049d99393266720623031ef5a10bae6bfb1523652d5cade4789a9a92d8c82d83b1682ae6b50b94216f86c8a5574069b9b72068d3a97d0a300d4e9ea74156ea246a3173588efe46ed57d05c7f90a1a8e2b59bd195946fff562867e7f3c2f768192c5e21399523830fc3db08535cefc321ac33a820cd8e56d2f658aeec3cda7d1582eea822bdcadbcea34219222ffbf9dd04412a9b8abb9513ae295be2d77e9d481e470b51615fe69cb58fbb63999b5d1e6c6e555616257c1cf97103c3cbc9628cee7f873ab8faa1b00c7b463959adf992e4d5bd4c83cdf455e93e934f62b9e6563cb3c1a9118ed0060a8e900c4a38e2668fe188329dc211aa3654e581ec4b4b14de2e5d35c6c7227b62f355cca3afa798b7cd74cd97fed1ec1330a508e14bceaf619584143f74635e26d50d0a9c98c742f1d1b7a0038e9435156d32cda6fc8859d391b6bdc5362ffd648e8286c6dc6df4608b5beceda6e1cc9861ca8bb26731b115f532b924f277032ebdb2c27874710ec0462cd9c08efb76c94606428ba4a462d55fac67c3087be6f1b6a9684a9d5e925178c024a33aa35e4968bd76b3f0514b679c411c34f1489a627bc44be66c9eef96ea3cb5a11c7130ed860db6b7789e0d2cb667cea9a0ba983dcc19aabcb547f42610217f021f0741dc574479a7524e3e18b55f7c54219a5b8b27e68525e75234d97584269e0a9bf46e806426276c7a8c406a0ed09821a1f95cface1f5dbdcf02a34bef29f06cf93fb69e76c8ec4207a1de38af59ae4836b37e47612a473d859d0afe540b4b1f8c7a62fcdaf18bb24e7c529e58880069561929b352ac6d877c3d18c9330c51471e116052ff123213dc61e9f9b61f5fa984770fc7f782b7669e392bdc726b52c5a4331fd66cee470b3b6ad717b0de927da2073878e8e0848030bba14ab0a55de462cc37bd8c26867933fdfebbdfa30ce5e366e9025ac34bbd2c9b3b8e3b0659d386c341a35e19dc6d2c65f193311c65c173199d567531d85e97087f48fc7e9984703338a3f965024571f0bbb6c884cf89292824e8baa33d674152e9604bc3137e1658f3feb916d6e74166c18580c9b68acc8a283536de4e3580ff61181c0a543ca5eaebc9ce7f7cd2dc8dc1ddd2abf9ac9c4ae1af358615019c7fe6d4b73f26cff924d701c149fef6633d0d5c6026a150f5db559bb8881e3b1c9fae75846a2cebca3f5b90fb9be4f6c2badcea71e24447b5564c3355ec036318d2e8d82c6285e319ca8721559c03c0230345428b9336896e2653b2328b8642f1bc94cb72ec681f8b751a2453cada3c417905fac149487c41822f10be53ff8f14e65b6b34ab052bdbd42eb6c846a3f78a45c5f3b80fec24d7100489170abeaf08e4d92c4ca5bc81d1fb9c0f884990023fa518b6d931a6aacfbe77610976fe4aecc65e620e7c6df3215855c6f2e2e3ac1e9764af8ded924ee9e5e91851e72622dee2e48cba6969f5b9aa176f2e93c149ca35490705b9c73286d138fb105706097b70914d0b45c8030770f2521392b15a1c2585d608d04f2e928529755c554c95a7d76ddcdca2a9e767812b555cafce4448da223987c9ab04f5ab0fb6293503187940898ee8404cd87bef815b7b8917263f462b7661e28a398fe6216255e853617eed3ff6e55494c49ac986f75d7bcb96720b8c3e76263abe1532fb99871edbd1d855dd5cc53ad402cae6e858de12bd0ac74b0161513a0d32641874319dee37b48f23902af47eedc9255e9b945d667bdb8bf8f5839a8cdd0f8959477588951c82e42a232d7f12d213ede6cb7e07079db427d9300831d05cb11e1849e1c543cf3549e663226385c02c51d6443ef09396abe0061387b5481e60e52388dadb2c40f71e1ca4751b3c57cc07e8e4b5d12d4698e7d50207a16984bd623e10f617b93570032a7fd26a1578e785c2face6fa52dbd5ceed4cfe8ac1c95c106cd4a65e43a5da86583194995c50c9d8c7b362d0d0af273016c31d8f3afa2bba53f0c148b07e283c025279e861802b2e6f95e3da432897d6ca738f1b26ef1f9bc870775b1b4e8e613cb9d8ab0407658a2b2291ef01b5769af6921bde6c02b4d1f469f7d744d5356c900421393434c8e1128a53991082607781fa9e472fe1b45a7e7d2d1fce412d22d4d20fa5662c1adfa86ef5453cc0a032d16e815411b31b2ede0d56e34c6837c8a2ef1a97876c7a175ce9b61475bec4465037d02955dc11a18ac377279c26b47e98efa8a3625cf62fc1e4839ecf1882257c074f65075db52a778a89a34e6fb858437427b9d74dfc1f843602a48d8c2724312dc9fc23ef2b22575a4d33fa195973d3aedd99f3978da8963cbe1e6f9a49e574e10f0ec5b3215d76185dd4824a6d2ee1697f4d1b35ebb3cf9d45b4cd94ba622715fe82649e7c919906a4f72c852db5ac087643b3341a00f690517bb51778fc642895201a626dd3139505d245b3933700237927a017d2e2ae24a49e5c92652cff21a092342fae3c174f651e113031deaa3a317f027a443c163a41fb764c32330f890f07fdd5847572eb7b334cc3600c59df574aafc39939e09e64a171c2483e580f1c46e80e98e45a1621a12115646b94922c869c358b10e8c611b8645127658f8601a29dfff976528a0b2350b669929439773786efc91c52d9bd9d40b0253ade1acbba012649812775366e1288ec2f2222eb573a900aade8b4440b6dfa6a7149002c948afa59a9eaa3f18472a20dd36e1cca23b53d7e939cc327a2ee83e9a0a9af8850143c4409ddcf500504d6732a951be87826622bc86f4dfa1088c00644781e3dc1e400a402cfcb3b6edcf01d9c3a31c2734c787ced7ee76da994db14c14299ae720634499ea8a37b6650dc4d2d25a56f6fbfbde830a003f31108c7e6ccb21d629049c89ac163a87f0ae681a5523e896386237c8e4af94fe6b215b593941d9ca194d991de6022bb4b3a0b6b7dd812896f02b1d0a3268d8b6729427b9412e7ed6712c6a82008288ec595c53e636a87670e9737664adf08f8a6b4b36fa0c4e1557bb7f310c3e107d91d1a3c22e5189e67650799b5a7fad577355db0f67d4eabdf92ab8a59098c574b37bda193948a0cb4445d809189e5345a1039759545010656574c1cdd091be135acdbd2ce757263824be04405a85e3a3585b25f7242e488fb92d6df8e754829e97946a6af6fa8157ac98c377a1db1a006b0fb1ef8a09b7292fbe095e42d40fecc037a38fc361618438410d220ec504cfb46523aa01ef52a338918911321a719535a065309c741f4d8f7565dc58294f1f834ba92448d8aa7abb3c08fc6e521124385de5dce52245237ac72aa01c8b228ba99a7077c07e588056538c3eeba8ba40dc46bff6051033f05120deacb34b720a232751ec51371eda4644ac4494bf035c86d5fbc51bfafc1e1a35bc2eeddee472aed1c17a5360ec36ea2ff2777ef1b610624c6a518036fceb9c18943994da8ca4f959d2e740d487c26af0dc632a941d04d93bb23366da5a762e621a02eca9d5283996db9e39e31a1506811434aa513807521feb991b7d4199dd672a00814a15379d1003682b01041849f5b220b4cf2c55236507980904d85d0214f9f648db3f5929a4132773cbc7c43c309fdf57bdbf8336775d5b9734f16d4ede972fe9b6ddd9c974192796aacc84b2b445a66cd2a046e1cb1abaf52c75c109e98d462e74f2b74973d42aa74056a96b8335ea920f09a7778cb46d6115466fe4f0e86b06fe1e9ea781392cfc853c4a05af50e28439335081628801842cc68c5d7a880aedd697ed2f3d5ec8a073ad77ea948f4b478be42e30d7afa41e314e7bf4951b2585803b4b44ba31493cdf01b5ed2a6a6af98b8bac8678ac9aa196b2adc78bcbf11137c1e98890672a9727c14e6bed1041dc444dd1a9d97dc3d5e8117f6c513db59bee0b911d03dadf2064c4fde20a53651b7f921d975e35c37b8007e73e6ee94eb6a50c53d43908866d85c0f6a011cfc156b57bbfa875242a504e9372e5ca487f1aafbff3088839c4419b4dda31a804fcb0d73ce9e28c5d5e3325155561b04fa44309fb7be963820899a71ac9b7b09236f14aa5171391244b751200a2674cdaf6f47e8bf30e7ce64528575a5b09793903f50343937e96ac456cc18736eef25af8a28b91a976a2bda90741b3ad1b4aa492372f9d5888ed25ff4a6655c671bb1313de489c2bb38b1b97aa0ced69bec5be31dab1e7c6893385e5f1b435cae7a2c9a1250793a04d39fabef337595a6ac13dbcf701743cb9e30c5310c2aace36406b3b8cf87d593bab332f882fdb7d000ac8901d5b02d2006b5c5dc421cf40b0b67cbfc5f4154e92978e1b33e9c86ccce492c8e15a62fd11559d765bd9a4cb731b6f0cb958397d78cd37a1349385c2316cf0520f460e28b606f94a83fcf20a61eae79b39f4d834b5cc4a2fc4fb4a4aa874a7abb7617c99d2de60563e00420d00a90b0599493f511256c7e8da51ca176d0d4ae2b14ab4a92aeb1aad89e0b588735988209c22f10679e5546996914a66063959336399139a5cf449bcfde98400f0de188cea4533871497f5f0a316192439112bce7a5e6b537f1ca21878a5b69107a4a2b6b5a4c2560838b3b66d7f6ad399a41db8a457993ef12bb21726eff703550522e1e40a0880cbdb4de13252403fab598fcd3d39381f657bf0531b480265c57ad93a2a0e086bbcdc7c26b2048ef95220bcf625e5a4c452df415d4ea32f6f2bb4446f879bf36c6d4bad7a3e6d8ed63f0c6cf17a456b76a6f109bc858f393e8d54427def0755ba8ed9047bd24b3f5328360c3668d1f90c4e34aa86e838c8641d339e715b3eb76c08b92052f5c61a0907dc593b4861e74f6c09d02704c50ae1b258d1c09fa4aa36024aa14e867f2b5dbf4f1f5cd82db80a7666f53f6c419b54c052d9eca224a1ee02527e3e0b8f608d4842e2c06d1ed086e6e3e8d16ea04d4f0f01c44d81a5379e6b2681dfef563718d9d7a99bc6962d5bf74b627b457e41fcd1ca32f24e60a1d57468c7559ed7e28bacb15553a206050e57360843fc5c49e448c9141c57c66c8396b7bf24228ab095d333cacf758d8144689f34e28178af594b97e62992c145b4f5cbd35d8e36e80dbb2f87491437ac3fa4eb5d945d65a80d28facfd7103da21b50ff1a4433a8f2d9af0114182287fadb7d60acb736d236793dd32da50ecab3191bdf58d2c5ac464e01b7b0b0d5561ebf386496a4b62db6d37346d7c9d2fee0b17335e91c9ff4e10734255168003107a7dbc02d34d18550db48402a2e5daccbc4002df5bac32134266bdb9beae8f06a1483492820f8628994dd1e003f28786ca547128c586abbeb96cce68c1251422c76c5cd53a9a56ead45213a0ca5ea549f1135833f9db32616ddd59c98c407e5b500524833ae78676efd72a8c416fb5c26434dd3a1b0068b464b85c26c8d75d8640979e8e2ff950eb08a6f073c61815232ab8bbe59913ce2689af360e5e94a01d98db268b6bb233acc01ebc5d92db7dbd0d1ad6e9c931e53eda97feb9511a6c945c6d09853e7068d8402b572632655333abe1da6d623fc34b16e2b7ac182b0f6b74d263cc0e91266f61321deff85333912ca25316fde7503368f43f5d73f79e52bddad4ee7ada8d57ed0c56d3a8f5a658fb9f9018259b05a262a8112f30e61a25a50f30f30ae953d2368500459ccf014460896f4d265b1d7236632ee1e0b2649aa0a7bfa2e08a57e421b0d3238ecef5dca6e2c776b530d4379ca7bbda129f07106a0b4c93122713c2b1b940b831e3d880067ac4fcd1050cc4ebedfc1e4011d54b77302ae69cd704a9640cfa8a92cc7d7040c72d110054054ac799e7d64da6effe3a728c6291587f7aae302ddca1cb34de05035d8ab33ce4d66cc3af3565fba7c0b413f1e2cd21bc64cd81ee583360409eb9c9c20e0c5889b9c550da6c80e789d05a7e02d0e3ddfc4a56ae5f36ec697b24332c22f6fe1d50933b3db6b3a21a671e25ffae9a1e1b8440e2ee7af4cbfc76bd4dbe7a573b4a4084a92717cc81ef1e11924821dc971952abb08d0e7a21d9fe801ccf8cb9d075a03074b563d81a601fab24b995c0dfd0a2df2faef7cb28746631fa5e804c62d61505177790a4bc0bb8a51e0419531e447e8e754bba12721f9f96680c9977ce81320f9be7ba05f2d429b930f9e9f20ecae0c6fd14bf9d2217fbb830966b2a5d98bdf419e994ebc7b9052563a6b73e946111c78801469a9df339c8f8a6d5de6730643b0353aaa2299222d22e821fae31c2e7d6a8ddbdd8ac7a6e396ae4acc883b318f47cd843eb6946e9fc73f219e02c9a8409322f71840ea4ae1551c021a267ca470feb215bebbdb040a77127ffb65a7475acc12032b359f1151de36f4ba3911afb80cd6b49c98bb56231ca7a7565e554b94dfa221c7d9c29376dfac0489b06f5f2e5620e8a3048a86be6f8c00e3bfbc9d055ca8e75e2d7af4c2ace1f5428d483c46915d39a917028a54b05f79a6948e1a979a1a2e06877fe237835c031f32a72036c3125426a99b7a728ec027b6286c64f917fa0cf863ec0213c3d45735906a23795c85c60f23d418c3c5660b0823e8cc7b7850c5b0a20d9faf8e63a9dc09a47678bc8b8b961490f99c5d7ae4f63a184570cde21864dfb36ed9b8a90044a23dc8443ff76df12078ffba26f93e81ce29149c082fe240dfdc5bee4da7eef08ad5405a1674ea6037278a8b2c47769010927905a21dc491654ed285777ca3dc7bb77f1f655af3f8da36f379825687eeb6969ca681c43aad3ef7edeef96de36ae0c96cdfe3fafa56b7f11a50a8535f4d8438122e2c62e68e133595ea8a8199e710c44fff6265115a7064da6c2116656584e5301fa0b94c86b01761bc8c195a08e48d5ce4a24c2409f846a37e4262208ad0324a9bb1f806a97569af9a0a4b8a875045658a7333f4d2a5d8799c276c906d43db0a5f791b806ddac64c5d374e6170b16c2115a2fb96b06fff132bc9bb748ba9b6e5c0441388eb47aea28d39c17325c519acdeb5201b859c53d5bb00a729fe93e36e22f40f80809f9cf12c89a61d296a8ffcbf560f8f2d6b3647222a401179e48318d1327ab85b755dc788a13531e2f33fddd056ec55fcda22504b9a5c05c218172326d6722e50a34450531b7a9a9f36ea5f4332f5d4cfde6b4878d26264ff6c2bd8645a391aa38e3a86248d6d325b920e22710081893516f9b1b72b986867d190544fa2452a2704327203c14ce608dc6f47f3226204174014ff940476ff01467fafef98ededcdf312c13e42defc7bd2cc2c8bf65eb59cb6df6b914e9542cce33f4b10a9835b67d63a6579170b9b7c8726b78cb2c6023f320b5a9e18358f98b251621190f7afccb8c010f79b6b9cda79e9964b10bab0f2f158b916a0b40a8f82883d32257202041a8df828085d8be5f4af9c8d8c40f2b7d20390ca5f8b997d347dd979a2c6751a4c16b0aab42e53503c1f90b94fe627055a7f0ba22c728cf94b88b315a13ccc899c008167f09de46120c73814f87a2bacffcd33bbe6f8446c14751032f2ee2c837a2116a359e3ba27c5b36c5cda872a497461a9282a6cc77f701ac2d5baea42fd3bc37c70fdb6888432311fa0d8f297f7f46b970e87881b9b0827d87d6406c7c83e84260160ae722387ff54714815d929656b55b6cab2a91217afb323adf81cec3cc07d988fdc77e35f446290a15161cd268a00d7365418af3a28652cb56738c96cecfcd9a13d5d9770b6c77097469a42ddcd61266c84cc620e5f38cc072cf24e7d1962813bfd879428a6be86c03092e856f5e057bf575610b250c5f0ef8efaebac81df24d135b7c6ac7c2cfffecde938d46696af95f0e64441e64a01e6b79583d7cfedf0db38e2c0ed9f7b40b5950490af7ab9bce2a9c930705476cb5666cb6ae5faf6b95aa9d12c9a022e240548d50233f78aa2f251a6bd9610c99374508d32848aeb391e583279f1e2ca277bebd38fa3c951ed89cb9457c4fbd924bf5174467ba0ce4f3a3f8905f5cec92664fa0cad23e68d5e90d70b824fcc8cf6e0f6ca0009079fa32009d0981d70d0fc71d212498f9fd03d5d6d8c52c0e4a64d1c8cd644a422ed77cfb18586fb997cbc37cf04aa92d02b83b6a4bf85b48554106a5f7ae8239c986c4ce61310c260a88b670f9eaaede8cdb0272d8474cfd6881f29e2586d194ecd2c27759ac2d86842921f4677b5eba963ca1f78ce7d3c10f0d6f51899ab4bca5e626062243f7ab17289abf673fa6f61c9fc07160247684cb9fa2d87b7503f69c575dedaeee8eb94de04a23e66dac4c2b8d00c51ab6c657e692c2288bab94bd6188880877e2f5e9eda706b53fcb95e55c75033ad80abdb127b5109f437364ce58b41d11c7deab2d291b6c1aa3b0c9e1c63ae2e2ac63c00c7db4377d90f53bb434d45077ea6e01e7e7ffa6ab5f699f1a7161835b11de9ac5ba20f0a0caf9392969e3091110a6594c1f8f6d37762ca562a7fb9d3f06ee1754c255b9dfd0163e026751c1e3d1db4ea7c1b65e5a8a9634c4d9bd8ae9caf169295913be05220fbc8b7a8a64e0f485e1491b7976fd74d4be34b53a112bfd8c12fab11efb7a7748851a27a03012c8ab4dea96570fc78f7115e8ad71a672458423bc3355f46f11fb7c3bd726113d7310e151760cc1bb34d3de600639ce97d4cd11ebadcb107a2f1f581ed35605fe2c1b04ef63f783813e02e98e1477f86b12b0d0f2e1b2941bfa2174b87c09675d8de72b0a237995eaa0dafe967585c90c0b896e492ce9207ba6a8ad41618138f6afb898303e5e08878ef61fa587d773fb9040358c5bb5a08e37836b88973a0e0d37347e9530a77b9902aae75c87ce0addfa09fab4118953efc871971938257be6f3c625acd5c217bf2948ae9afc2c799b724569ccec71a198f7fed3ef6fd9270345d3db22bd17a7371c47e14d60bc101647abe2de879d0a560ec36140851f4ff12dc739980547add3a7a6c673d23fc9c41068079dcee56724fad50bacf50075b3b1796408f283703e1bfeeb0df71d6d2f53a25e5eb8df0f17be38010fc84f7964181b576fdef69fdddf01d4af1206fd8d39fdabc5df5b509f1bcdf852c2d8755bcde483eaf370e12427b944633839f8c741c74207b9a593aca8635f230b9e686ad920a3c3b29ff610896121a7580c6061c372d56d44288225297168735ff5a830db81ee2ee58f0cef56474223de25d2d8e8bfb05eff58fbdd854cb0b911154ceb445176f3b13afa1cb09e426d68f6773e1500b4d8072d5a1d74bd1d9869bfa67fb46ea7561fd0e0f70802e49c34c737b38e920c2f24764d45be3395b4afa2ee6e80ccba2a1e09c02028456573c91a281b08878e3f9d932729d6d047e46a5a9512008b513ab145022ef9c1c26f571dd904de57b317803fba827e7bbb803f8ca9fd16d445a0d3e55e96e09832f01d67ae9eaaab9aa3296250c1e488432c6096899adc0b77f8fd510f56064cc4b1af4d7e9feaa850a4def1601dce205bfe5c11e4e5170e85bc255a5cc89c52fc000fe38f65e58da522c4dfa1e28707aad4cb2c52093bbe43c041d9177aae72ffb9def8bf8ffb8e9abe4d7b5c7fbe8fb78c61f566b42a0577a6501cbfd416e184034192094e0fbab40609c41c69332e8e8c4381174fc2cbeea7ee0f97ced6043ca2480fe6205276123b0b9c8377f99731e6e04eeec58a24a1aedb7888e33c05ce224cfd1a75eb780b02a643638705611be39aa90f0205d71ac20a5b8b8bdcc1dd620f489b5220ff9a5b7273c04dc32292186d5ba6f382faf3f0b9343cf88dfb827fda10216e0f9d328f9fbddcf8bffaf7ae9a92935ba4ca79526d852e7a415b72c0c6eda7beb96db89311058b4d908dc9e2990262f9dcbf408faa8c9093e70d3ea618006673429f5819f224cd723921889dfc7033866b5e1d57b74bf0c61f6ab3534bf0099cb304c5c4ad9ad26b2935368049624929df77e69deb13fea9eeed83125bb35f5df99d087fc2d2891a05cd500325fe43c7fd1882d4a8d22ef08ba98d286a417195bc049e692729fb89ac2b18f96a9629f3a21d9822b3bdbae7c6f2f0fd5e14ba2c560cae9f8cc8fa4ced34c579a0e5fabb15793e6928cd64c5d84bb6f4a7743801515fed7f4486169bb460c6c2fa774b698d658a976b0bc8e46e9ff0169cfd1f903278ea25af7e8f9bfc71982dfa961e820391a66e4a8f2eb0131e0323c20e6423d77c13e8b3fe5cd0e930283297975f3f0dcefe4616630acfe0944ee59de1d27c87d1a21eb83d4937c4743b5e0481fec9987923ec944ef8163b3dc50d42fe25230ef7b49aac1825c2369a830bdd59c537f66b02150600ddd00c2ba8312ebe103b3c0463beb225df5c4c36559544e5ca3ebeb5c9be937b2cbeb77e068cb3a186250a969c4349b8e537ea107dfd9c555821ae165b3f1b5b4c2a43b8eaeb2e5d97d366edc3f78d49883c203920a0f05fd705187a543f8f135174a16f9d456462cf2294998fb2dad241b9c3002fd9e4564b8a39342cf911a2434301694ec1a117d944c4b1f4ffb466b5db7d5f5594fa18a4859cff69a6c2720a554eca515cbc79fe17fcad4681d6b159f30dfe6859fb7bb61823b633f44a98449304844345d67e597da7eae4b9330ebd0e47108f917ae71309a94c3f1cbecfa0d34a32504e2aefdd7db64e699eadb5c47387ac2702242d4d3fc967f2ec6d4fce1632041a6ccade0d0c5221b3d6140033cd8d96f89eef91a21f4f9023d19df7f3650c52976c6583212ff56250a761e35fc83658a2b94b5f46d680b264928f4d90164f986682d9ccbfd6d0124190bec74face62e1e501b58791f99908594626c0e255ead6d52b28812a29e0b4b6ce48f97590ba6d9307dc59a056dabaf9f272eda231b5ba69a26efaed672e969f89ccecc996586209b17792f4ea59337da99f2cb802a0c5575f9242a9222048ac97b4b4da52a307de9ce6ae5636248ff2dc332cf5992ca5eca79b4c8cf98d125bdf68bc7bc502224045d956b725b22d5861005f8fd735cc99154de65b51eb7a9e4b0d804ce154660a2f3947d07d5d2148c27abce253a28eb83aa4a817a2ac126dbb6b491c4b3348723e4395ac9470158768a9b2533d9e0b55fc289c8569347998556bb481101183320d494281e6f271deb1bd7b9f0f8f2990287a2c4910b920d17aa4c97df878e5553ebedaa8054e93c5919450d175f185fabfbc9ddef03c5af6684e031249542cbde60dc99757d6b1c348c64a7a1fffe40c5b92fda92e27de81d576a0865ca832aab9c5de9519884c86054b399d3fcdd6005980e06ae731815a03f74f262995f188884afdd9195a2aa723b9a1167c61c80b86767c66e5f9a9f74579fc406cfe7cc3ae555115fd5cf36bc694164cadae59183d08071525362e695504aaa96b66bd52b2d8658c863a6ca88c0023cc35d1691b9e39bfeb7b86c15410f29eaa91ac858f8c48f1b9a2b4c0158e3f95ea97168d0d0abd179bc05e0586d6428ee6b52f087148dfc77171f28ec0a0116cc71159dde154b472ac494aedd51b7d9052244ca9e5e62be7f68fe5eb3253b5a23ba437065228a33ce61c290c0cf5eb4f8c6c14a30f1b39843e1d02668060d21e23ecfd0e0b58abb983223ceca72f9c6f57fd30cb41d983a1314dbbca1005630abf763e59707adce0256e57c85ae1829f156ae32683c346d826c34c35d04d5fe69ec4022959b8d71b5d35b498eadc05a921902758963943f093dd30b2f7a893f1d6ecc4194221313b4473f7819dca1f175b3874177a6e6e03dd608c03da54fc7fb04caf2db4a187a8f5a415d059daee9447572b5c42e33bbc3de8f132250953568162a3937ed84b080bed1cc669790a98893b5861412d385a318d5a437d0a645e951685d142d4a19930aaffa7aba7a5aa5f73e9874fa0a9543ef7c11282f19e0ee6c90374c40610f0c90789452a28bc261f3ddd88a5714e061571426c14bc58a35ca9947195512b3de003e42f4531213611924e309ba34f0a53d093c3079a24cec303bd28b9450638b88eb91ff4f8748c837c5a1f936c5549ddd11d50801f812215db7b248f2ce3229170eda1d4e0349465547f36bd968dc8e331d66941ccf26fa0a44ec2df0bc23c7cc6d18baf2dc3776cfaf249eb638b0006050f852a5bd41fd3da9f9cc0d64de285948e42660b2005dfcbdb05f9d12e72ef8b1ac561e97ed241ca88dc52eb3895a3e5f5b22934f5958fe0b044e7539e95f94ea8f462d7a5fa5a76c1d7376e7870b81af30e4226da05b1c1a9a5dca20406edd9f363205619b9881f1d6c79a48db148ca121e745252735b68770c9f9bcfe4314a55528b6d09eef978eca817bd2d7ba689a9b5f02d6a93c7d2739ba7d946d55d1608c2186d021189373af9f0259661b42d80c41e8fca023bec91665032be90e8556a6d2dad0f89efa71e065c90a86e47b6906497159be7e7b338b3669fb150841aa3504c2e685dad7d74e62cba4e70864796d664b73f9c483517949fa045ec152f54f38539202126c9edfb03533cd89220b9fa55fa72ed3027efe5ad244e2e4e4e361b53cd603ff47ef6e24f28bc1cf1ea38fdad7c576c70c5de88fbdb85aac9d0399f878ae177844a4b9cd63fea3d6b422e96fb34b09d6ec578da7649db923b9f1ae44511bae04f701219d0c6b13a1f17a8971d1738fc158458116c47b18e3500723c42e102f5e046a8cb67e6d226441f9ac22c5c7a75bda2c6d6e079f671ec7014355e908550a71b381c2221a1f4729d2d4762e5e3ba5b76c4c289d5b51489950beb6bc990bd04df26a4967fafc4c00bddc6f74145b81e060c9dcd1eaaae0b83112ec2662f74926a8b8ec195a766fca5b94a41782398d0d2248ed6e559d1f122c7223eed3d23de2e2c96a877c9795040d00f6490e3c41b339e88e11ce3c15480b6b84fd85b73162871f862e6b4fef1da5412dd06891ab3c47ed29354556299417622c2d8c7c126947803cdefd825eaa918b6c689b783f98c4da2de3a67419ab0b55efee8dc782f8638af079d3f705403575eec88a88762c2905f429dfa20e52972231324c7872060cbcf12eaf9f93187644189ccdd1811d8f30b42edeb2b606d44aa0465d66c5c127b89127d24d2bdb940245aea0cfcca80722322eab520ec10095dd2be224574922548f4782f378fa67599126ed803235e36ae254be81c40e56541583ab13a4b91a83b1ee4f17ad84ea0cb84b91074c25eedac38842d9f91cc26061d7fdfb0324c789d6459b9cb0cd4b3e143604980ed25c807d2aff872e8543e104e357a1e39abeca41874599c1c5ca2d4487c33c07ddc23189d816a4b8aa0b859b5c79221972d8c8b7334675a1684ced241d4f925438e17502cdada32d2727e8fe30c7eea70778926b5170af9adc9ccabdc5e02ad72966be8633040318347b85864fee576d307528e476fec6961a154c2e0f6c39dbd9cf376d9c1b5f89037037f2ed999c1e64f60f7faa937a7631d12f499a4b4b7e5f3eb2475e405c104a0021b91181ada065e5f6be4f9b51c9534c155f59b857dc797e9128a2b12c83cbf0b22a12310dc5b11747182041fbfd10fc652a918f7764ac62bc8fbd566f8165cdc9f50dbd924fba0a7438d670d5c79a63e1a6bcf98f2f13da7715f04c94c9f800ff707aec15e07c9404c911aeab8f51ba60c3a6f24d550f4611df822942abcd2be70b6813c0ba8d79f18b4806c0633b744ee84299a067bd7a0bf18b42846f4f06de1be0f19d9d4d0980ac2b73500e74facd9c32b3c3d8054233dc352bcd2be934993b7984d20583846df7e2bfb179e5f906cc34ced83a44ea044277bfd67013aa385183328b74bc54ec79b7a8514144a9018d0e2846147c7544572d1aec1d773431f72ee249d0a853510fc5923e071f0a03fd6f24ffc99f523d59ae531d20c73e3f4da14cd243f8ae4e3b4b0ccef17eb9d5933bac82908148b121dd130ce8b3d3e5656977348f6d1fe712bd267af74bd8d65a44826a08c75f15f81e18fce7d22a7166be592c91b0c34aab8d8ee83638b9cc8ff20490b42c7cb6336b5f1e00f79696edff6454216c218caedb9808cec482b4815b8da968330c86911891c0350fac15ae9fea0af9a65d8df602206c94cfd92549c02685efaaa832787fa24232ec90b78f84a9e9fc4be0082120d85c864ff108a91570dcdf229b0d00f686f164db8d2bd1a9605a0705ee4c72fe53f3c9001994dfe40fef43f82efc0685ed625b6629d2f22a21203217e22b400660aca8dd8f1d09dbfc2b9f101ac13bce23e9349930f92197d0916fac0e9e848fd2f4433006e4f5bf9311abaccb108f78ca7ebbeb12c4d4a1e540f3f153454265fe161c0862a80d07377c482da25f49a8d4d93f5bbc1e93efaf06b5cb56fc4c03e287278f4f59267c08042011243e19e8fc10479a0a2d17266c45dbeaf210e4d4463db9125830b546231ee0722c7ead941e41804e9077276df4ff3f1b937f875ce98e17160a28fda47ceb78f11f5df6b0d98988e9f3beee51eecd89d22d3e23e1c6aadd73bc07d307f70efc9a59685f12a17662982b457f31cbc3f5c2fcb8e73d0ca1260cb07d344169b88f256172f2d7b2870e95d0e3d82355e3b5c8a99b9f3bfef086da7d0cae27389a3e6e99336fca1237806c41f9654b69e79916cc131607f488cbab323cd86e97484a914fa81d1c7ad8f8721ff7a1502548703ea71b2805b308eba9a0e0923a6d189c029ce05a7fe3af704c7a96fb1b063d62afc9940c0e8ec8c1c5c171367ac201b31dd907d2eebecea38bda28100000a9291209bcde80287f7d7cd06a6596fc2f6f2b8e828eee6a168f76e6b726f295392292208fa07f10747344374b34f8a1e3a95676bb55388844c29f2ac1439a852528c3a29882a152755998fab1226d505cda6e4547d6a182a8456546309510249ca0c214dcc90a842acd47c1c26bf9ea09340807c7c8084306199a2982109694192454014464c57bad821451d81c57199e9ca132bb09e946ac5d614c1fd60ed65a62b3d6c55ae10552dec8e164af69de898acce093c2b6cce652628405069b0369799a080a15bb21c191e128b7399e989172c3db1a4d2626b08784269db2a9dcdf4c411aef332d313b23bb268998ebb9acfbdd7e70180a64e29a9949b949c94554afa9960e44ae949f949f979acebd987ddef0811343fc30bd57c67699ee63b1ca0988d96eb86cece83393f2dd70d9d9d07431b1cb86ee8ec3c18e26801b9a1b3f36088e3258a1b5c9d9d07431caf1c2c568ac6ab39dfede8983b73fe9ce09ce19c38e67ccd99634e1d73d27c3a3f1e0c71bc72e8d8b1e3b19b908267bdc40f71bc72e8d821c2bec5097a3d5e3974ec10613c5c3dac1c4a583974ec10613c34a8dc53c4b502e1b9b4c85ddc99808509605cf085dce5f83e1ddfb7e3fbc4ef837d1f8fefd3e0fb783e6fba1826ff6579b8e6e0f17de2f7c1be8fc7f769f07d3cdfd7f37d3dbecf9b38299af9352ed6aa45210bf29cb03979cca9c19c3c73f6ccd9634e1f737ede0e51dcf1a2f440d4213da8d287ec34f0d8634788986ff3d5bc6bd2b7333c0759ae1ab03accf6b8fc7da14703f6dc00f2dc09320579dc0fac5ec3bafbbe1d0bd180b06b033e8f87e3728feffbbeeffbbeeffbbeeffb3eeb79dcf283d5f5ba57f59e7fb27bf5687eac5ff73cdf9047a3c1d7bd065de74395aa3e7c7e006003201cfcb8735b8f59033ac8e35a967857b81eb2589702f2ccf5afb91e8e0cb873f6b50759ba5609f3fa7b68c4c8f537723d89993fd051ebb6e642801db4c0541da99a5cfe9b33ee1ca82a5219dd27b4326658ba8186324b301431c44312634ce083971a6a5c085890f2820a10a819361b5fc2841763c40005364c40c530539e0b584fe6f6d7a6d9b8cce484522a071350606573d892d7efd80d76b33ca1088b0208acf42cbaae86ac6fce58d9dddd3ffd935756acfcd1bbbbfb0c77cf2844eb49b05fe34a76cf18d06e3f27c3b106caede76a925860c71aa49aa3a01ad6af39aa35471ea3d5168d7f675119aa996a96a2a9714fbf530fc89f349ca6d4a314e7293ebaed0eb660817a9b7be857dfc0e5c0c66d5a6e3f0d270ef2af394ab5e07611dd584e5aa4baa145feae5282b905563e7f33f7f76d11581aceb5bb378ee37e70828ae7015b7399c989275c0d96bbcce404119536931325e866dcee32931321b8a358d3c24702c95aab9d55569f30a9166cdbcd74bd789ac822cb9d5f9592ee7cab14c59dcf7ad1c6a7b320dd00c57577db1f77f4a8ccc903803b0269b232b332051322b8f39f092f77be4fff3053134faa3c71e7d77c4373b4d70c1948c040441516cc40684aa33bbb7c71278decb9fd5c6504b7fffb86ba4241050ba03bdfbb31a36282ee1b9a75b5e2800d609ca0be98e2850419e84014304c56c6c80189c99a93d3e14e2e57ee14e70c5f33bc40422586dbb7b2a4b8af5a30c49d3fe7d72564b8f3ed1257dcf929160cba734c269a09eefc395b80e4ceaf768b305ced628a933be76fdfd0acabd5fc52bb730505b8c452bb4841629db0a337d9899bb87ce5cef975becde24ea62852ee9c3f03cf0a6eaab4818b0f9248da95e7ad2a941c6eb7b75a49e94c38c2ca3732e502ac926c97b4eb42ae8288474a44c3e597202572abb48ae220499f3efd541207f9d77cc1c3a52b195cfa63cd1797be8326a4c0bafc467839f8ba8dc43ded9252a29b4ae21ef64612eed6c94e4ea15dc7dd544fcd139e83703aeea3710f7d0f34e1083b72dff7dce73d7f425a5ef7ad2f2cc1aff77e3d6f84d7f5c2ef220ef29e3e0d8d83baa7a9f740abc43db40b5751dc43dfc70894861c498156e9d2af600b92038b88007d1207bd2efd89c441af9b5ac7828e5fa30be972dfd5aab4b81b924b74c9ba66977b9b996be6b1d60a5c3b7008ae252e230e6a5da9ae59eb08d792cb7d0bc9635dd88aa2c574b916d2e55a5c6e6bcae57e6b29cd5c4451625a4a97fb8ec6bdb52cd6bf28fab8885c4a5c45ada89619d791cb7d4b4c8b4ceba915460b3b4a24aaa38565a614445dbf12893e7190ea39aee28edd4c410bf2b620ef28915e5715ded4b8877b0adaccc2d8ca2ca440059cd097ab9bec6a33abd566d6315945667364f3c486667345892597eb684b97b349ba9c12a38dd2e56c6a5468b471badc575aa7d4d53aa7eea9abd2d1baa58e8b7fd0855575553a2b1d8d6633b3994924698477b48e2691a4115d954e49763489243de89ce8a09046b4cdeca65663b625d9ccb85685e9685b120dcd3b1a5703d5d16c9ad8cc6c662e24d6938ebb9ae600896dfadc7370fb15d0df2234ac791ad62f9704f9578bec7445012ca4c041fe9ec77d26fc1063e7ed9fcd06af659ba164dac158f1c4ee854c153248906942c6c8c914edd0585e4b9afbddae3d4a419ddb4d9eb2a74f8e667ecdede4dc00ca8e34cc0d233d90d25f6e7fa4459fdb6f9758233bb34decd18ac641406ebf3dd2318a84f404895a271da3506895db3f02a157a0dcfea6b5169140fa04a4492db695719172fb2119a4c1502e92d562d73b52248ae4b1d61029b4852d694428270561f800032e507c00c28ada965a0d54ca0842a8dfcaaccc12b5788466a573d00bb13dab6192d69d69daf244d396294d5b54d0b4c549d316264d5b949869d202f5d4a4c5a9498b529396284d5a9c346961d2a42587262db226272d3aee6a36ce5f7a1edb95ed40fb794fae0edab934e00a218dc71ea339e2d1bc4e14fb341c4dea76355cbd1e3368ac6e6ae0b07238e7a01e29a5641e0d78d4e03df2773c60eff589e2b284922c285852a264880790ca3032f262862a9c91136678985de68dcb4c4d4ad7e632d35216301c06a82a735c6e4ad2e4aa2e332d29e10001fa200c1b9332f924704c1301852024dcd77199494b154b517c0ba55dc8968c966637583935db9a97fef8af771f7f20ff1771a0ecd738e8e7a4736e737273d6395373aae6ece6a4fe9bdc36da5014d1eb8fc2d2f5672ece4a5cdba8a447fd33baaebfd3255ce20f252b7fb228521d237dd2167aebf76a4db5045150c2aa5eb571077457db65cf936092d7d7de8ec693354f65b847dc175cc7e176d373b0a9dc8e7a0eca31a0fce13215b7ab29154d832da86a8b121cdbddadc338351bec0a011a34f425e8d190bb9bba126c792db214dd93fcbe92610baadbd1082511ae5daf453ec1c9f2777c73336f3a54ddeeccff0ea594523abb56ce59e4a794fe6cb10b4a29a595e73b0dbb9821a5944e4e4a0d144cd274a323c021f2c1deecd13dcccef31a501e1b8c132b27d9a14add88c173c6eae84152733033b3c7f281c1e8eeee34deb37cc4599d8238353c135387c68c1bab9199997170883889f8402c9f1d1d9bdfb13f6b42d0ab3c2f7b23c68332b8bb6fe28d18eeee393c661d296f47e55c8c84c737c4cfac95bbfbcb75230633f37470b473f2eccc607bda470fe9e3837d36d9c11238d26b3003f18daf260dca9ab162c2dd86b3b556eee64c4dce0c2a3729cd557d9d6b27897bac8d72b4525ab9cdf5759fca9d999953eede8a092bddddbddaca9ccdc6828994468a7b64509d2b6f670677777f87b97b2cf52373581d66eb6d7716cbdaf07f674e76ea9fe0e85d9e3566dcdd9ddf07102d36ac451c1a44c9238211bd3a277d969d9d53c69452e49e1679ec8abb18c58d135fa43d745dfb6428ba7155d5f9b7d5a46cbc6f755363062ba7068eeb86cece0d30c4f1caa163870e91870672f64f4f8fd8d60447d8a393f95059404a2ee2809085a750870e1f0ec25001e00a4ea028fe00028229fc90daf3f0787c439302c0f3fa676ef0acca6df4e7a3b04382d28e4e127683fa457674aa0841689404f2e3831b40403780783a5338f07492b03fb23950d51baaa3323e3f1e4bacd55a31a78c1b405c3e3eae9f98e7f58fec51a4c5c997c7258aae0d36f886a8bbd73f7463f5743cae54b811b98a4459ff9805daf58d10b4456bf60f1f9111bd6cbcd449c276e01180c8cea43bd2a88dc863dd6c5b5284c57272bb2bda98ccbff962e6b12245a08a74b21ca82250500cd5415090073c5c36582c1b401fc48aac549746ad906c147161653da7fb0004c95c410861470801a07911c6419306dc64375db62e1c37a2dbdffa8686d0a82ed3460e2b005e90140749aeef3155add6b2589b6c47061548a3aa4e12368a46b5aa083543a3369997538be43054912041be21eabeb1c78a38ac9fe57aa1639dcc61ddcd1ad6dfcd6e4345f1bc3846a39e46d570b45b1135b3e528d991c584f962e68e346a642e6e07c93c466927bb4da3666832eb9f231c330ee2088046551a659d46d128d7e0d2a89a3222781de4b06868148d8ae220ee9080c8404527e89b131e37721d1c7b4e1a8a2d7a7825d83ec34f720f5d2c7e23d74bf2ef67a9a80f993314e79cf3f5cccc751bfdbb5ba0577ee71cf7ce85d5613d4b9235a3bc2dd0db3486131956af537ddcd3dc516e612b4cb723c64afea7cbcf0f75f977c458f9299a5609b7c779820e274918292cfb8f142ca734f46ec090e2eb719288aff71b323bb24ac6cb0d1656febc01c3cab7aec30a2bdfdf43cfbd9b03b26dbae010f184f183c5ca7f17ebf3aad7eeae9a9fc221727777f1f52d7abda3bbbbc76dee33c65879539e1856fefc197a38dd55375c58f92cefbcd5182bdfcacfbb898195efb5e8fe096d4fb3d1389973ce39e79c734e3ae79c74ce39e9a49452168dd3d81b1c97a7b32305f3603d36f07acef993036852242f30563e0e2dacfc308c950f6ac163ce0904fe4e0759767882be1b2e1f37825c411ef88f0fba960d20ad0f6c7000c2a44838d657c2bc402c8903428d9b9b5500826c5b9039afbba4af4b06a572680a5d71c59c2ea8f10d79080298ab2037025851117cb21ca2e1aa0a2b80395f4e1166080133bba11ad6147648c797265c821a9bc0dd9d524a27a7f2dcdd29a5b4fbc8b0f4e79cdbf641baebb9551c1b76c6ea735a3774842f1d3c3f36f8b1410c28c8fb200042de0f4fc78cad2f82c7ea1fa7935dac3edf500d575cac7c1fdf10d7e31bdac2d59295df938595cff3b1a8e0f10d510d60df908be0e99061fd87a808fb5854ec001ae1dba123078e573882108f3de609f1d7d9814042872304775ee796e0b1c7544294459c19b64de786cb460926a44ce84e68b29e738287c2d66dcd2245c14bc2fa003c8f6e7476ec48eafdc1d74759f9e333ff18a239df9097b14e002f05b21cf664dd7342f105436e4201260be7a6c66a009e0e1976fe106fd53feedbea1b9ae1ca8b954f83be7c9b6f88ceb0433c03784c451ef1e64bcd37443f5613cd37e494c80042fc1d0d834f3c60f9692e335161a599ba9b721cc77d4184070415b32ba83062c2b22e3351215331d91a5ba49e3471512ccd65a62c4a5d972c477454b2f050c5ae2e336599c173f2a222d99bcb4c536cf99aa240620a9acac9142630628a1d904c9144b5c4d2b8cc5423d3430d0c15352ede18f6bbcc54c3c21dd91997996a51545bd87999a9960457864d5d66aa21d58e6a317040546bad0d2c5bb0582c80cac162450d4e14251696283a35946438d5e7071b37429c98d5c042024a034ad10d161078339658612152d95041a221451834ec124533a4d0c2ab51b2b9424513c63a51e31302254c4df549b2f1025bbc800b1fb8f8226606312de842862daadcf934dfd054dae2fb86e69c55e070a707dae79c7356f6bea17e9ceb5be470fdbb6fc8971031031f92bc80c24a13343b10c1a48827c060316676792a3262d537e4d2498b28b73f559f70010393135ca922d4cec4ed2f4cdc9e3355adcfddeb8670471e205678e42a7c058b317a640104d29d2f66f1c59def53c49d0f040332777e9024ee0c43c69db52f46366c2eb8bd5a1939620c1aa6644142441137ec04416509104081a106190839122d5f6c20aaaf10b0908285ecf6bb65018f0f182c5a548851c30d98daec45c6916c09c13d0ba5d85a12640af553e10b2dd6db222eb0f00011148140a0a6ee895bef5f9986233b5df6e1982c7ad1054697952e337da9dd4e7a2c307da15df6e232d3d314b79b1e0b1e23c1614a4a23f85da1880b2c3c40be4d910f4fe1448c1815380d51050f2f8041193be43025045c8890451e6b00c3e46bf1c5955f6474a56441ce8ea491cd0a24b73d1571c1002cb4852f48a1d68b4f455c60e10112a97aa9619c270b02244760b8d2ca1de795dd0e18acab9fd5a2cc32aeee68e4aeee94d971e59aab3b9d7d359f468ff2f6eb764844bcec2175286e9820ca9110ad147e861ba03f134053984f9f862fa884e61b110ad2419abe90c81ad2bf82cf0481ba3f08094faea5e3d78c2cba6598d44ba2d921b454e8de7b2fdc408bbe147a410a791ec858769c58297bd68c6d954a64fc345cfe0f5cfe1d644632be1bd89abf7dbd0eb666d8b22ee26f23feee26dac05e81ed9ec19601a410f7aaaf6f83e500de6ddbb66d7424b24ab12c92440ee38ec89ddf015c880b75ccc08e2d1b82861896b8dbb7ccbb749497520af64f90c8eaba8762bb107f42be8afd3b3ebf34e2973249c4df01a69094398cdf871f88fff9c59e7d4f544809b554a01b10623e0b790af4b7f0859665852c5bca177f1882853664852024c89d21acf3d0f97773d6311b48474ffae7cacc5570c77672bd8b1477eca42e47de4ad7bd977a4a21dd9ee509e31f6a0216e7bfcf6723217e0eec99c3e6d3228ff1a4a3bc5d65d63022b4167984d1505a9cdff32d0f28763e2dea9fb16b77ca393b9c762a7151e2ceef99c78c081911da3ad431b2f383341dbba8e7fc6dd2f76f993b142a5dba74e9d2a54b972e5dfacf2b396cb0f2a9942e5dba74e9d2a54b97fe1cd832972e5d7adf4df6f9b0c9ae8e91ed27f258cf66f373d460c7ea2fe97be8746c282343d12767e2a494448bfc08e8c84a092d924be4cf2b396cb0fd13ca87611df318d61f26ccd39393d338670e04b45ab95caf290b13060a4a46ddb167576e322dba163cd97577e7ed0988939a66b961b9b46e24395fceaf0ee39b64b9876bcd4ac7af6e0f3c9f580a4884fe99d79b9288f1e46c1e1e4e0477f4e6e43ba937da7175fd5925cc19b6f81ab9415c2693c100259309394d26bbb2263249467b798c99cb4d63c45c1e83c5b5979bc630f5e55738b362f6fdb47fb8242cd07f00fd212b6cad6d1bd23190b682038abc40bbf49952e67229a55b4b8e07fa5664d96751fa97523ac461d4873e10fd17294e1903a80e509fdb80ea534fdf7a6c032ab09542ea2bf735ec5408ceba39311d6f970bce14bbe44bb7df977284d832c31051e460c5117b51e5871d9030a3644c0ecce14e1096bf9f9efaa99ffaa96f66444fbd5d09e532d31632775ea322a2dbef4bfa4732b9fd2ab0c3c676bafd3e963f15bae6b0feb095c20baceee4a702bb0a74488a37eeab1121f9947a51c7683437d180f4343a939a9632eee8475a94eee84f3cc969d459caad862fd4975cb36eb78fc3682a64398c86196511fbd308d44a819339acb7b095c2f6551219113222e40fd20fd80ea8ab65559f991f15194df083161bec2048fa00da016204f2277b65fa9c2bdba2172dc7e8244e14bb92bf819826a422f9bc74b9a90816dcae9b9066524a299b3be0c39552da2a44cbea20766656be11fab5721c57e53702fdc9e0f4fa578cca620a0cc02035b1a28617bcf8220325a058b2a2043e6d45c7fd2301f9e542805b7cb112d392908e66dd3d3e39d59468320669248b2491944535b39c1460fbbaf2522342fd2f7172fffc934aa552f31b4a7d435c97503ff5af2bfff9a77eadd6721cf74a854178a805145adc9e8416b7fff1c5f69341bbf2bb0d6a962f0b39c8b7abc95f75c0fe950f1485ed00ca4a2119eb42200d932f3f27020ad1bd24816f7f0a48c352a14f8bdf900f108e31960828ff01dccb11bcce3cc3d19f2302de7e0f9070c1632c24b310830912335840d97083112927388202314ec050f18307486c1df8a604f269513e1571818507b4a45dc69162420b131f4e64e436b4b57c967c965f7774b03ef20bafa2e932fff015a3e001ca082a479411a20332648801044134d992c587bc728a181c9e1891430c444d42d60a2e5e960021258c12b8e348f9014104517784248e1ac62324d17e6575dfa0c9cae7dbe1584b30c5d1d21039d460456864dd89c50b51adf636c731ac9fa79cd3673ccd23d16b4a4c4d5830351951c37d76a8d9beccd484c441956d740c979f3f399b600273e432931625b7ca65a617d02e13181a1398a41a292c8e153b5a79c2d681d9951cf73f9f7aafc0fe9db7fffbc5eeb6b96db98763d5616c6dfa053e28f1c0174e5daae03201a3324fa810c3082096d8f980f55eb4ac6eb239d72a7f0bedca930f0119ae426f078965a73ac1d54657f7041a77fe8adb84806e8b1ece77860a921e001f0c0293cf000c7339847bfcc11e9858aea9e1207fcb39393366dc9166f471479aebcf3eb8c77f07fb77641fd79f05ff07f80f59c13de96fed9b7ae3ca1c7288bfa1f63c0e23954d2457cb460e0ba786cece8d19ad3dd5b859d19861b3f3aea6cdbcc8c6d6d03cd892459fd76d6068a388a341a9525c8823477ed872568b70bc58f7e9a6909e6adc145216483897004496997b72d440e2201dbea1a1e3d768e7049d887bf83bfaf3bd00f321e0938273ce3999523aa70e1c24fbe7740a04f7524a29a594524a29a59c9ccf89c4ecd27493dc3365ad524a27b8a498783527eaa58ef973379716d3663c6cdb1e8e548c1113a316db8d36311ddb6661fa87fe1199bb2151335bd27664a36d4a36a56dc956db9c3c963a6a587fea287534f35867a661fd478e94202d496272db6bb229794eb61aeda2bc1c393b059d8660e3d2b0cde903764c1d39ddfed451ca49c79c891b796e548d3c24da291a6feeeeeeeeeedeeeeeeeeeeeeeeeeeeeeeee3edddddddddd9dbabb3b4f9f734ea7cde3eeae438b1f5d76576de119b2faf470cea0aa6da37556affe5476eecd168743b8f7f000ac420084360ff9c74eceae4efa279d5be77d342c49573a2fe90a96a46d697bda96969058fa54df2a6bc305dcfa9237a812fea6a2fabda69a61aa0bdcfaa966d1bfbdbe4c7ddff781f15785e30672f7f33a307473e2619e38d4fca720f7cfe8fe73cee921970a56b9b2c4058c98cdcc06b591896a912ed98da6a052dd2dc93e0002e26a0aa87685129716dbc7603fc33fda695057f08f8fa129f9185c124e068e6d6036309c0d1b98213630a923335c0eb81030ac8733128a93f1a421b70815e5b16aa9f41c8abe84f906d53fdb3747548552ef67383606c73e25b2b260cd54c87516567e4f3a5d49c79ce64ee4491c341fcaa13cc6c93899437132302c109f2e56bed33c965a6a583f17253035314e649ecc84e1640e55e3a64ad6c5e0837447e9704406794688fbd15e717bba1b179bd3162609c36ee01ffd9b93cb5ae4827fa60c2cb6539231780cc754476a78a4ccedf72352acfc5175a4ce255387db3f8b88b8247c039fb9fdcddd30bf651c1191c7b6286a59c8615bf5180bc9fa67836a71f64ffd7903c792f027c4a7284733c34d861b1631577258fbd7983835797212e6c96d8782723baa0a28f3d8b64da81e2c9015562a792c55a561fd576a4b4e5c6ea7c078989498db293250395c0f53b416fb755c61e58f1bd4e5a6d9a0b867838252cd544a1dd7b440eee10f2f2f71bb9a2ad7027d99c3c93dcced46a48c40c7ccdcbf33630c50ce606bbabb7bb637fd40277b3a075d06008fcb1f728c83fc5336413e5539aeb57ff3df6834964de36190961cc4746e3308f7816e94a0172ba5276f6ed723bd0d8297294d092d8d5c2ae59c5e2cabc506bb39a787f296e9bacebbdbabc135e1f539a36694952fbd8997f3d06657969c5758c9eeeeb4843b4a0d5ce61e2626dd26b7516e4e9e295cadb5a654aa549d5253a99aaa5656ee13a2c5555ba7c2b4a41ed3e73e217dabe7aad17fcde902094e01f6d12f8f54807b7afb46a0d779a4d41b9e95538b7005980489c3ed32b7532f7ec9f045ef8b474a4a8a75cb55ceb7a9ea3ca6485b646da3949685c885652f1c7b9dd3b7ee5e62c9ca277a56ae42c8481a6355979b60a07954587ab90906255cac3a790c0daf26e55989148e445ed693c191b7520186a3178d0ac1a2e1d5a4703c96f556ee599667573e0ec311d5b42bcf5b89f1a4610c45881855584694f14d61b9cb4d3231bc267b73b949f62585023b2f37c9babc56d6f3bc95eb0459bc9ad4a62864e0eacde949104a5751d42080c0f277522c22bb44455ca8e2d79e352c4008b0380e336e274b18678744bcdb2ac15b25f413595d6ed188783d9cab0e27951349c7e1c8bafc237d7ff7cdbb237d06478fe39e722d01ef7a385ae06e21113aa6aeb77418ff04c77a829f3973e6ccb85d3f7386c19c313963acfc0e27ecd2b8cc71cb4d6e4b5db70386ee064189cd01c3ca9fddcd6ddbb68594864f7786d3290eb29b83f4b6717506f7d088c07515c366308c4ed5b66d73a3dbdc287577f791c807719e1bddb695e779920afb292ab2e5ad1eab2c0e92cf578636dcc3710ce3b87a29f7321c319062eee19ebbb408a54cdda5f4e724c885b345fa5c41b081fe76e4521a4158da934aefc0aceeec6aff8c65dc717e377dbe4f778711591fd8eb5e5532ecc892e97083f411b56e4db2185642c0381253634c6d8925e48ba833505842c6c8ec073e409dead2dd94e3b833435429aceb32531044150b20c2a07199698831b428758a9555e593dce27e57562217c2a6126da1613a3382afd2aee451ca1984b9a93a679074b9fab3756076b7a7dfd036abac2e755d4acd245d6ac6cca56544b9b48c3365c6b854ec0125547d753db84e0697eb654a40860fce52d5fa83b5a23895ead7af49296ba4609a4f6a755d898207c8076278b9f389318eee7ccb1aa3ca9dff514577be18d5e5cef791c109ee7c20198471e7bb6857347127b764104371fbab184d6e87a1e5f6dbf886da5ee04ad39232494b258892c416465dc86a1883040a216e04b5226c734e2a8c1a99a8b64d3a101da1d2ae3c6ff58333572e9e3bbe7ec650214344e6ca980edcf935dac1dcce12c4eddaecee6eaf344b5353155fd4f0c50d5f7c01630577421d71e7afbea129162911850b1cb240192106051b7820e3051056ba48e231d802040eb429697c432ebbbf7a2182db6fbdf872fbb9e9f6cff8021c2943140586104f743841082f90e8a10c288c9881d0fc6e26542c71d1d1a0610a49af0b2c31b8e1f6dbfc08d1450d77fe9cb5bd84715b4951aa668640cbc11e2c516527a27fa8242d79353574684a0000000316002020100c888462812008e34013dd0714000d6b84446a523e9bc862490ec4280c82209031c400620820c62060a688c601680fb47acba86e943936754c71f3ae4facd8bc8582c54001669a7afd9c9583c73caeea4fc6549fb34ce4800d470a2e27cefaf5943a47e22607580ea44fa0d5fd3282ad23316c465ce2414a77f3738d17aec74690f344f5e3272b9b38465cbf93045569ab35ae4edfdb59887e70558fed6727cbd958f0340644c0af081a593c953c8fe97e4721f2cb9e49e90f38e7d705740d8597b050d90c9e938199ad3a891f798a2eae0d3460fbadf6c4809b05058d7dc1adbbf4dc2c0519bfeb05504a821cc6ec4627f38eb8ba8dd0495de7b346a5847294e7da33524e3d2a89513f0f778f3daeb042a4e8c900f714d8ee04055aa61691fd2856e8a87ce3e31b07ea3cf767511f86d2ea31ac9289298ab114fe4dc6f93bc53fdac27083ec535a2068c7915765d3a034d779b9653c97b7d990a68d2e88b2b48ea8b48dad22174e495e17a90206c072677f99f121dad59e5dff8249a9025d6d040fa11c829f6ce465f741c15bf3069b4e3933b1a8b8327118892d03a868c8c29f18f1d796a737007a3807a57c3c01c547cddbc2b8763914225af3c986c2dfe2a57401bce2a12faa6105d4133f746e64334510c626f561a0fb14e1cc66b5e00db3714dd622f2c55bb7282d1b168fc0ae9d0a0c8f6f4f18c60b6fe5aa850a404205605d0c0f4dc4ee830b4305ee879801394a5c20f089b1fdc568494ed54c787578c5832852d5dae1012b1b16fac66ef45f9f38983fa7ed292ee34d1721023d5a51e0777c31142efaf6087398c14fb918fb8928c9262c23148cd8d530ff84612a888c9e14e09b7ada83ecd93c40f1c4b19a5776dc6d8d528c85ce1e027013c094adf5ab2e570415424eb61cd5ad832a6c2d260dca12d91ae1f2e1397f24a0a7a0a996ae1dd1ca1fe55c1b2080cda0681205381a004de535c756e06d0a0a9b85c04a4f8e36686279026929acf6b2d056d3936db571093f4c9caf0113b06fda00a8573a57c05c15605af25b1a7cf8508e639784d4a4677c44c03f1dde6685b288c56a47e36e142430fe3f50be831ed8c1d1f725549b60263918ddf6bf79bc7221bb6b5d2154cb90f652a94013d5ab672d21bb7634fd693e84acd77ca3b70e4bfe4470eacbc40ae10616f000258efec2f9c16afa7f5f8cd75884427c1d7a80fa2043fab21a28fd3309e0a01e5781b8ac3b1d0c5a3c215d8a564c12796e39c0c0e84994442a2c6a448ceb1a0fc2c9cfbd9273f94257612f5eeee538942bc377eb10020ff4367bf188a54fc4b692a1117ff695b5412f8c6dea5cb611fae19b3c5e2047d870f9b81800ed4caec7873b6418a2e5e9c25b51fed783b359bd49ae1647891097522f235d84cb4cc8f5cf403d0abf248edce7c33211fdeadfc8244b1c7975cabaf398ed899831e133c43bbb2a7441ed20dc4b72aeabd3e522a5ed3da50058ff75fbe15990db528c66c93a23bd33ef2215b7c6e871928977e90ac9aeeda3e2b373725f3672c16a8a7aa0447a0fcbf83199f1769571568e5d824b52d74534269cd53369baa65dd0a1741f8d36cae8a1f0147b0f603c331605c5a9d9db812be10a0aa6776180035cce1afee0ceb80166cadd4dfa46dedc3deb2658ceb6d82861acf1962aa1013629c664e87a2bad65dc3a3c5b037eddbce888398f92debcb06252813d9f0df10b2fdf3cb964c6d5fa51380aac665c480dc375fcc38ed8e6dfc6d5b90cb065e3a702406ea32072c067af99901575083e30aa57629ede1d628ce24e5b248cb2b05db999fdceae1aa3211417f6d9858c72dead8aa6bf036277acbf4af414330e0a8f89cb0e4430c605249aed4f2fef3ea48c47e5fad0a9ed21a59f68cc15a84d3216cf2d707573bb2cf2c8f5478d3b3dd544c3ec81d2c365bbb16c13406471e30624987ce71d04921918340efa4b330e23c502cf6bbcbfa797903f988a6b89438484ca6db0666503adbcb922e9db16fe932b0d578dfe0f152c3ee4729329e431793ea0b01f5766fa463c5652e8f56dc756288d6a1fb4e92a0593f6ccd1591025bfe220ceb6fed4f24fd44af18a2113907c1fefabefa99d1a58d51a6bb66fe8939ee321a0ea8799e4356d3de6abdc2da94316ea9f8ad208c43575e081c22194ce9ca01dc74e89c64ff12468e158bb8a1c6c7a561066c5bbdd923acf550a57a92ecabc568e857900fb8e88045d572f2268b188467010b248a9da20cf7d3912e17c14ed09f0814235e403a940b74e82e3a613a4606bf3a043b96109dd61555b232b4561c6c21145aa6eedc71e5a680a659fd9825bbe640aa2dbfea131dc105238d493e8b6a65b552966b9790c42ce1cf53ca21cc5dcc886bc464730747ab228cb869aaadeceba24116eec922e9cb18e5f302ab064d8e84526337e73ead18b3670b9220d0b68d8654c7a5e011a3c2318e565b8ece075c586eb94037848f42d2ede6517db4d82c91073e46822b70e014f1294212fc1c3785446f18b1b092e1cd864916f591d35bd9a0209f83207a523cb5a28940d4963c64856031b6db369299f61eb7c359bdeadd14e9fd426ff23450b38c6ee538ba9bb47d9f2f2a149a308af3fb549ad50ab331e1d6d1951b18d192110104273a1cef13d8a59dfec9ad06c19386d37df2d1fe2ad58f6d3c39a05b76974a3d9257c1c6f9a0509b4e8404216854f58ab66d737162223a869e5942054820d1f13a335e4071947e86cf7f026b101728e470fa5ed038336498a79898b8a70f6371c6a67426bc9948122eefb6b685ccdb0db5b814753a7af7db52e209952cd667cd79e7f45598c1d620a1c01611f826a8a4e0726b56176d29bb83505d9d5169c780133c05fd3fe7c9bbc7bc9e44449451091ed54feffddf9cf3eb966ee9292296165146560aa22c04a121fdc14837507a443ee98cb4b837d17c2863630daa6444eb6cb5feecd9af5fc62b53f9905457c04f9434f31a1a05713d8980d4e6cb7144dafcc4916f15e9e49e69b51aec686a9532473895eebf846a278d9cde3f6ed3a4df3739fa3521c272c36181865bc83bc1bce398fa51a0c44b7733b7cf2472370160cbdfccce8cdeb4c2613638a61508197f536cd077e623f232ee0bd54e0525d46bace6dce38818b4a3ad1f1f5eff639804b73186f7e724f4f8569a51d83b60b6cf5a0fb3360237c78aaca24e6b9a3976833a454798d2ad7812c1fa330b42b9a6d6bb4ec127bf8200899325df28c4019f79fa554630e26e81db2e8ef157a28bd72804472af38ae8bb102941ef7759b1971316494835feeffc48254dbb331dbcc9fe22dc562e4f54ad82275ee00af940e0270894cb12b912e7b098aeee68ac7e03cee4771c701f822d939161acec6b8fad30fe4afb29b594303171814daae5ee5708488f1e91e8ba9350bb04298c3daddd5a678ccdcba2d02d313c7fd6c18f02ae261e83a91b2a16baab7ca093cf74336da12a480020aa34163417a7efdeb8215a1b8698e4af75e208e11a110bdb115f3767149755878d0f97e03d4965072e991afa6c1523a917495c705ced9a24aec3ad55f99c6c482ad4025190475bf9ef4adba6c8f45188612c1c06c3d5c00bad11de2a45420702989a5a23f34bef8317bb425d6bb5d145a7cd828652542ad42af006305750b12d442620e21fc7da08d8d1f384cf4cfd39aee3625660d4c6f405d30c99c146301495c6b85e777a016c9e21357427b0dde4a8aec9e22de5b0df9c19b0f953c67e9d4c628dd24fd25c87d2178a5735246494d01f287f23171c4a88263ec5e9ae9f788bbd0b0d5acd8a4ee1a671d08d8b1ca869bc9ffe696aca6abead78fefc8f0dd68605c5fb691ddac5b672a9ffbb13ddbd9fe236376823df45b35c0737d691f432a5e2591e97434f5fa27481e827f9667712392423e8ee576fa8f7b68028874473721144c045b454390854e724c49caab63b9d33d950841e966089425e604a91fe57dfbdc208ade9c4061e873e918ec7e967918290f572b3ec035b1d4e26457fc25298113fe8e192074c4239cf0bd8a6c05f3d383e80610b2552067d92d794003f4635ba287bfedcc11e3e5c05dbb11829f39808f35825eaf628bed1aa1d3c0bade16574b98395958069ce04fd2706376ba8b4d5a3c01c3395e926b517312c2e088766acfaddb6b8436435f8663b9a331c68b8cf09126adaf147ad3abe2626134b1e6ca44c978fe6473e060dca82f6e91d20714d91bc16b516a6a22b07cd0b99aae3e179c292b507e6acecdd0f3e2e20662ac5112e200d432dcf35cf6bf35a1a8af9003025c77db779b45d5c7a0394e42e4105fd671eb13831b73db9873d59bd57fd96b2b477c2709df30eaca9bcb70e63f15fd4403765300cc5a024c0bd4bffc63c2ff59fbb3ea70db987245f793131c6ee4c5c500b820bd69ef2236cd1acdbcda593c014642265499a8a90abacda5c3dc956877bad23dc1c8bd44087f4a5056e22758743bd49c8c1451828b048c72b3dcda6a1968839ee7838f7c8bf4bd47a1ea532344903aa88fe03762395496707b80707e57ab8ca2a5c294e359f6fd4507a69cb7dfee6bbbf82edddc69611d3a7ba175b023fee20c114ef66028acc6f39572decbeb305a9f094f29a9039096dc39a7f1fd406302165e8d1ae8e626353080071b2bae209c003afbff07585ffee71acce8ae6bd23f875db1729a4aae22761b140130886382620e452d35ec23904a1be5a1eba07fa7f34307817c46d8c726f6af740c9f9d1cdad194b121fb4ad94105b44a4feec3e7f52041bf20f47a992cc9e0c8e6155a81a08563bd70791cb22495680ad075c8535f82ab41c369a611eb9d14f5faa567a5b5014b4aca419b1d8c0020580a3917fa6b9fde29ba0cf895aedf4f0d8c7c8893198094de6c14e97ae262fa0e5e144b85c5409e24c3a141a948f01944a89962cc3302261d0df5ec22cb5a7e17620ca5a138e7f105c309137949f2b4aa5ddc5994db583f93d8f4c69b16581033ca7789e28b963a7c05d0d869fd8eed3272e282e0b1e4febbb982f2e922ebd19a8a0a46ee47d52d5a43c2130e1c16b72599b10e20880c9c061c1bd68de788b938de3ff9acda36046a04387f8d8abb0a3e03b583ff160ffb3ce8f5d1d8a08278c649ee69db6829bb3b6336cbe800a6f085d68691e522885526ae5d93d065e8d2361efab566e19810976363cd0ae62a6078dba1c614b3cc2d960d8a8875f32af3c3dd454a0570bf6a7643e6774548502e7ff0f99913a0cd75613f1dc78d28d9469da55a8fa96caf5ae8b86a34a65136af46d80d790a1e922cd36fbecc0adf8725d6c631f381bf82e091d0dde35b5a7cd84a2ec1f59bc6e0cc98d8d1d03670004eb1ca6e4da191d5dcf9f55a5c6db706e24ef25139cef0a88ac4691c966dbef378ee0a86da72409f152146326df77b7bc7490c2d79dd2deede950604b26acc0080388cfa7a0c5b3331ee5508baa2a68eea8fd2150e9113e26d8036c3757e3ebb1b7759da11e373de7eda215f7646e96d32a66c9e0e2c5684e72921d3e2ff143896cba35131acb6bc942b7097c8e49eb4c855365c8071a0cdf88dec999b550856eaf0ad5b1064498c1cfb15714c3575bbfe0eba90362a45c162e230355396c9f5793fb576c69ff60419a6f05b3bb2a170a1e958a389536442ea575c32059be3cfb148a6bbbb50dca15379a6d9028287c035d63057da7c122ce1f1bd28a69b0e11e6b78f94534b911a87590d089fee4d431ee8cf2c6024af0a9ebaa4a224c129937642ae2a0817a0213ec4dc85a8433fbd409f7345741f1ca181b963e090ae21100effe68aeb7114415adea44b6ba0f836fecf9cf164cddc07dcbd68802e10d97f8fa9773bfcc2ff07171d58764d9dde2a78f31750b0f81f52097b384c515a99a1fdf8369eca19dd5d47798a28eec0e922110fc28e6e162936d0ab21d1fef3d6d3008f4713ce6ab2a5fd3f8a0d14416061babb5010c0db400d88697566bba6e90d405ef0ad14068c0281deeb6aaf6d9c85476ed68ffdb6bdaef847c860243b8be862015de31dd5bbba0addf6271458a679660a6d013e3a51ba19a9167a1e745bb6cb1f8c0235d6d50bf2a1d498972c2178423cbe057bc5fe17e2155902cbf16b52ca27a8be3c341a28fbdb1f5450091570780c524e12597d8753bb0b93d929f308638b30b2f697220ac6b0756e8e05b8e5c67f080c60db32979f1fc2f3cf1f14b3454f85828cf9c82587c038696721e8c3e84313e2cb5f6fb2051224ed3c4a903304d913a4dee97495a32f336f1d762bfeb64d2f7cf000dd1cd9036462fa6c9b937b55dba8c9ff197696e3f8e37aabe023f3ee7d114d90649f40d1ea51e1b01c32e537f128b625a8a1c2ee30ff5207428c0263999025880ae9a9748a4adf68912300657bb38024fc15e8293b05fc0ad72bc62967ea3c5af655b25f119e095dbef3a3e0a1020e64755787f89ba1a8e1e7fdd0102ee0d44223472df24cf119b121e705ae628ab4116559b0702a877ba1cc298e5ea0bbc019c621450d97b8e4853a8d551e99ae6b2f831d4720e0c5ff2ef8e0de6a02b44c1191984992df0858b07e955519d2dd2ca35d69568830a86585cb8f0a7ffea21f133173ca611d1e8ecd9a7e155fea6c23c71e57afc9c8c87651ae76f07f55ab6de08f6fb493792cab0ae44269c35232f413e62a08667ef9d14c3c70fa807901c6b4ae0ecbe3f949521324fe1cff1f1439ea21e3cdba6597a8daf976be719ffd2be1704219aa7198520647167918b4238c4a510673fc18b395d10ba0f980608a0ddec87523c32548c8d3440be332252f6880c8699f82c0ad57636269334cfe07e102741bc669a3ba80181520173ebe84a16da163800cb6ca550b8562f42834afbf74ec96a730bd1d4249a0e7b6d56dfb02310c7442b3f5b8d9b591cdbe54fd0aa5138bd3c5325888bb24f49048986d1b09234d4499c81a11e24a4448f82bfabc373c3742460da7bf4a6348568386539365480ac3f4f25ba69480abf4ab201e9f6999f7ce57a5d0754fea3d550fded72ba6d06e0fe0322f1fbc40d674fdb6674868743dc73ed3f57c952d9b428c6403d8448f0385053db042bbfeafaf50dd5a0304bf98dc80318ef29d19b9917c4dd8fa8103ce9eecdd0610ca5bdc36df893966b96658405effb4b3beb8f3c62fd7d34b91cfaac02e838592be9c8643d4589d7bb5c5f41768c8d9855192c302b04dbb12740e2a2591dff60170afa1a3aa084f3c3303530761795f4af05e320343bb0f20807fb8ef9ab984af6a0b3160e1ce9ed59d81c5c3a72e6f8054b0e8db2055e21ef2399fb4f23ff4e23312febf0e5255d469816d638318be3d03626b2a0862155f8c31b81f75b709f41184b15b5306121a1390caa84d91332a9b6a18a75a821f0a6c691b0ea84da9df4f02db768ced0c98f9484f59baee2738ed0f37cb3b4b8a46cac422c8a146642ca6b5a13171591348416347fb7dcd87a281bf908950d13c57faa73a3a1342c6b7a3aac3fbec4003f0ed1300c6fae9197c4eef9c63df726698acba018044d414a0c2ace513de7c30b40a84e84f4e52720fe2925d0fd85ed4b5340b60061b773ea0eab86ff3a76fba620988bbf0119986c6b07f383c16d0d22bd489db3b085e2a0a724b317e6623d409d3f3e3143a738ad1914b27784b01e8604dbb836650a29c9cd2d91b0dcc6756f1f9b7e3a24da530ad3f10e453d77360ebc5c436c714c9391c5ee03b01b8773a317610c7b800cf196e6005462e80090e14b2a33d2f4c58a17f6ef1144a438b79b648f4f9ac2f113d1917754ac61391ff182885c04c43ef4ab8ff0990b258c3b21201b23e0364a49b9a099e0d3c9a4cc9cce37ea97dc5e36861d09bfac8ad87d518afcea6b8611be87420ab245bc36669f5925a95921a57bc94f2a148724523d9d386d014bb41d202553d08889bcd6ba5bb53fb4062b3ccbed56613b3b59b804795028f14b527638429fc230c4793add7fc4188bf618410b76f30286529ee4c2a61f84a9dcde0a72418e93d31a2eaef3ca71ba029723b7de07e355dc90ef80b3038d3ea52f629e5b039ca478a29e66145015dc4686cd5310aa7b551a0d2f326b81963f007aa5e59122a17f18bdcda9621dacf70f1280fefc368713198ef242bc439ab90608e3354ad96429842e3b1a7e2110cff488c4a3ca2600d9ac9371dd802e954cc1e03c7ed2c2edc4fdda75c0de73a6ac48bb6a7eea240a040c962467a4e61f1d6e82cebdbd023d75da28ee0698d9d8e0efef304661ddfd390b3d7eb6bf7695734ac9acc5eaedb17faf4ec36e0d20f59709f31e21a29be18e472b568c7d0130d903ac900781d9f395951a43ab86cb1bcda31a52ad1634d0079f782284fdaac11df5ce99cd3380af86f31c63f91ae6fbc09f74b5337ccef3820573b903a592689d3c77bea7427505dc85955b36f955cba0ce8f7d6445ec73af9645e3e3ac11fafde6d34473d72d12a09bcc66a36a72911fdeb325e514ad6024af0bbccd07ad5874e12ad5deab2c10eadfc8d0e5b0c2574d384182000d1cc1f803a201e2a222cc9f6d1568fb0ea04ac9942f8839655c56b020921213143c1b8ba6f29e40121a50b260c6bbb906d0d0d11165321f3e4cc7e72842ea94b9baf8aa133bee55bdc40eae814da0dc50de4945f537c16caa7bef9aaf6366c5b5aa60c9c92e9dd2c7982a7906c7b3bfa21d272ff628dd19ec5c79e1373ef69a46a60b6a3c9c930ecc07a9391055709f3e84c228da9ae704610fe385eda18ab7b9d29211077d2c55420695c8fd539e0940b1601ed3aa0e16db0d4e67d075024c0140900a3f37c9046bb3613d8d1944d02d5a20c5a25e700f551d38aa8abb1579d6b51f341bbdffe6f9f768619b55ad132146eb131079cb21fe09494c4825c67415ab6b95cc1260e0c54481468f9e053163b409316c62bc3ba48a70fdfc12754059d712beb91b87174971f1da610197409c1671a22b8c7a6c00a8de607f22b6b7ce5750e80e486bcdd2ce806200e2a8678fe4a8248176ae059dbdb75000a708ffb5a6334516fd81711ab98c967c71eed5454c211dcf842c302501992fb87fd8a370bd4bd649e7b62ebc9a362f2d03f5c521d9c3a8f59e8fc395600f6d3364397b9c0b022afc636328bedbd441ef83494f3bba27cb4106fbc7d4e9a19192ed391bbfe8cfa1a9a939150b79be2e8eaf8c2063f180cb503f2bbac755d355cb00ac19b300b4971e010c630552da2baa32a9a76434685d0cfeacf1e117703dd01503f1f7e8f9ef62463da8661558f63618352bee6db61da8b065cd65d34002901caa12265f58b7f2140481f499bab5319ff56458d7f932a81b5416fb104a6df0171ea9847e0d065d9449b837ef2e88f9e9db04e6678016d0e4702b7ea4fa6ee7dbb1c1d12dda1f3687340159aaa4b636ab1c219d05ee8221ab5372645fbfccc7b55f487365001332a7de31d57e95b017ad26e712f222afc3edf22bf0cdd94a5cfa95afafe559904232fb1057aff682abfedbfea5699f10937ca5a8f90c2ab81724559f2be5356c0a13919d1180144a8d4faf51c80160fbb0069b2845f2f92a4edcdd76705217ef6a4713eb36104b01fd293558126dd46208d2afe6a7536ac00c0a39a3a08fb6c816bf2a44b8519e447464aa9a6571841ccd0000ac228e7eeb330cd9786be4257e2e241ccd90add122ef185d1fe539fd9b06da265ba6aec939b7188fb97617da3af7dc94eb8bbbd2a74b2aee4535659480c7e6acfb77cd01768f7396d4c840249de416344962c6b61e1efb25707298f44a59fd0a262cc12b0651a987822edf8637b2ad5723aaf8762ab9a5701e2f6c7af8c06b11c3807063bfa9e1457d4834d76acce29933074530d133b786735bf197cb2226a48fe6916095e059ff6f59df0c6cd448a4a3a831fb6c2d4a3e0762f87bd779747ecc573de18907b07f119ec4b31b745e1cce8de60ed4ef7138428909f29185ea440f9bd2eed22822be2c03def2b7c1547e1ac7935ce368a0a9541ededc189760f07dae2357a731aac77cadf58078a9d45e2105cce48506c54c9ed752c1d3b0cb3d2a03076a696dabd93bd1b70b8578b266621be386b92f1cc121ce0ac4cea7811591ce298cbffc7daa9067b5da131728306bc369712ee4486ff7a8c9e62b21e3829ff8478ca78dc9bf6ce8fa311c0eff1805d57ee3ff2f8cc6944cd50bfc9a1545ea8caac2393bfbd055183989d22bb1c2ce8260611bbd14cd9efe33ff0ee4de17f82f9125129f5e8569efba50158fb1532e432ccbc9b2ecb4d700110cc42ba67be286c4ec6c6ff906863f69bf873e7ba10bbcad4a4ac4222d80e26be1626e1f8c879658f79b4abd53b41aafc12f8b0ba20181a1b7166a347aa318cfb1888497c38f2e4d9a41a235e6e2b6e5c0c046bae96e86781c33d01f7b29d24a4e90c6f40967ed781b02e3f2eebd32d7cd59cd5c408675a67a3d9c5cc5187dcbcd1eb36a56786443ab02b6a97502dad96801f016aeb002824e1629d81aca26929d1bc8d2687192a17c6a601aa395e33b1b8d3b4c8ec34a35e92806ff16c2c7eede9a52b1c02a6f46525fb521a3cba86a736c8bce143cc9edc77baf009f3a8ecae67329d3c26ed753a31076915640553f7353c6762ebc0482f37bdc074a8b536bface4c337506a686c45014603ae7a9c54178f6159bf8a2a882ba9919c40aaae2162a8e1503e51980773068b0dea7ac40bf0efc9aabcfeb32d509276cb3f08fda0d15fd06dc9d2c0789ab542c8545750bf00bcd2c392368f58880520b953349366fb3756ec6fb76b75edabe04c2f368e1d6c97acf16de6f0ee8eb08c28c9f8a9d578e7fb8c5cc69abcc557c9fa2814d11f666750cb80a5db50d833189d216c4c7aba2da8e3b580459da674e8837d8b8ccdb5330bdf1aa84c1e762591672fea681e5f410de9e4531190fad62077fc4f7859fd8ddbd2102bdfe0b53001e8b918105307bdf106077b3f1831a3208c7e7536edbffa6e96353fa139e878196f6dfa9503c16f2c10b6280e7cd4d007ecdac87e7ea730aeeb191cda7baa491b5c6d49dfa7a4daebcc57e6aaa4a9dd8917e71f222153f6aa0f47dde6787206a51b853cae15a8e953d74fbadfd9673c75f097eb69a4753098f731cd30cefd774fd443b3625e0ca5a5c47a3087610e07db0bf16789d4045c2aa299b31df89b80bff5b1022d4b96ce1399c40e0dcc3be0cf52e62bb17bdf595d08bbeb9f311f18ca634070006bc43864bb7f1caf470f9e81886861ac1c5fa308f3280345210a15be7e7023fa4a0801ca72cb31c86912ac9f6e906af71d6494bab8a30a4d8d2b2fc7fe1b6ed8126826820f26358502ecb921e81ffcdf53af48cbdff4bede2f95c98cf0861e8f55c1956e965f5cb80b491439a0c0e83fa75920bd686acf9a847fa1955dc6ed53a318f8475f016498b8c565b93dbd07903a1740a5f41d335914edd5c0fbbb379cf89c947d4972d04f43f20fec2b28d5f6af1bac8f39636335edc3a771896c05fafa5bb885d9008d75c3c65c74cee022e626281f68e809bf76f1269eef3cec61092906aee7bbd0d439185b30b1fde989e159dc2893020ee4919e8f06f4fa2503343bd57a913c7140faaba467dd48375cb947c54845c60af2d49953dcf94141fa07afb46400d7ae4f56c974ab3a9aeee12e9da8c2a704f91a896da6927b1fb50b40da7dbbdfa3ca2b7e2368474453b95fda55570f516561f7639d0a09ef2e51933ae279dec3f4c0da462c23d9e8b76631294fc54c4cd9306255a17775473e9511e2b46657e337a89952a1a41fdabcedbe7fd55ec5839f8026e047992c018a9f8868f2bb2defd42bdd2c9ba8c48c48d4ff0929bc22f8b656a5b8caa27bc02e12a798c3b02d816aecdd373e2080ada4871e63aa8eb8feb5c5a8f679457c62dea2fda255d084c7fad6bf6643d03e0c27a6b0fbf9ab04b7feaf9a4924139bc4731e8c2494ebc81c42dbba1985711757b57f5c566bdf7ee979a1c34f056207d2b33af864232e0037e9714b7a4d9450c7c2d064be59912595f31296ef3a247d4d6dd7712a65d8183dfe89fd73591a0799e34cfa3c3fe2a1785c67352374f0ac81980c0dfd9fe904f0fc17570f5d495e6558b8fc526baba082445625e6cd845f3edf21e5ceae62d02ae26b9bdeae76d9adaee6d497869287436a784af8a0baeb18887cd504d25b33fc0708f0f5a5b0c648b3022f66692a62c7122c4b3b492ead3e18bf03cc8aa2b5a8a7d598da4e459e91e7596a417376ac2116794eee00e2c834e06aeaf70d50c6b9ed4c45f36f4c1d4d0fda012ad4061ca8c4a935fbb6596c869d38ad62d7347dcd0a0b812702cf56ce2b7362c64216dcb788f2cce15130dbf3dccfe4c7ae74207d9dba35bf0a8f211ac523db5a1da1d11617c92a9eef0de1525a474487bc5f424f316dfe33e691c77c4750d7ba8ef998209043a0226acdbfeba3bf91b40da7baa46ee1db35043c0261da92ef860f8f9239c4a9a2dc778ea02354d19b1166950ddc87abc7f1000160884320c41aa297f027a8ceb696a3065c4b0e850ffd786957b5b64885a203b0316005f171908802d7f0d8989dfec549906068b8605b4253b51b3e917c252a334b77ed12d0eea2c9abf497861af0aa66e0537def320d8d76bdb3e6b96ace08863953b5abbc38a8d4c00f54ad448d99478aa9df8b4a7a544814bde46aae8695cef69d7a1078d0cb7b4aa4cb1798c00f914213cb9138b118f83b04a93f9867a797bc60b917f07ce9a6541615b8aae8ab7e8b73a71c048c1d61cd4d3f77d4bbd382f45853e523272d85998b624c432ae5b0cb6c13b04a03972fc5aa8cb9aeb181149e5db37531cd0aa7a1144ec2ad8a49f26343815cdc64e1d8f9a0dc47eac482939f9a480ddefcc1c15b9e03c4f95f6b0490f11307e459619b4a7779d5a05b239b015b4c23f1f80c34ddcb306cc3f18da215a56ba3c9364c460470faff606611bb6dcc63d21684f5c3e8986438a5f39126f4de55b97e36ff51e98f970e213821203abaf27b27297a737ecb256170ba75b1ba8eec05f95978c84b283b66547b7f365b3e7efef05e3538c957d35cc79a76578007cce33eaa17435ac2fc3805f2600f30458b2056618d73a534c4e7198effd88e500058e6598955ee233ac40318f32287d97c9ec129085f6c4e3ba23f90e2d0ab993e387d0ecd20c4f44aec0554d1bf1883d54b8294bd070c32df58956718107c3fc7f953a0de974f6f04db9a5ca96beb74139cce3ab42ebed63e7332c38734b8ae647a530ff6beb92bbd0bdf02ddc87bd494cc747d3e4f61d52e5522f3137df579d7864c9feaa5a67c465badde4dae1729de9fa71fc1688c81162e7887551d3244318f01a9633d7b363ea12acfa8a57bcd065f51980ab17679aae71bc9590c540fb03c4fd000d6a21f3d55dfd002feb26c1f4b08abd32f920e8abd2950ba0ddc63c83cf493adb26b6224be7b5ac14e2985bbe8b318f8e52a0d4650e70bab293d6550807b82f2d098eead33d68d47ed0ed23bb8937be7fd5ae2c87e4dc3fb21185581886516165f758c838ab9f9ac6f1ad0d554bd8cbfd241dd1ca5e0e7b5656a76df2a540e61ceda0f2b39e74e5bf15ecfac30579bbc561722a1f7934840b7761623f787ecb85f20cf58b1a5e149ab53c20c7a5dd3d3946b4a1b9713bcae7c93e1af7a6ce582e278e460277f80cc92be2f43da86470a0770b66579452328540bcf031e1192edc7c71537b73c743068fd81e48d4776c68ccd9209b34147fe4ddd5f8bddc13c507c4b32bb9f66551aa71d63cf465d9764b700274231bb466582715416fb96401a410ade7b5dcbb7aca3ee41e7d1ed086dca1387acd6c9c022c449adcd7f40532c24c9f92b13e94f8ebcb92591c9d82e4b8caf109cd9835b9c049fce71f67e40ab8907e2915b6c47748b6d481cb605c561ae7e2a69b85b3497dcf26526d3874fd4206e32b889bd420f2cf766c73de7b0c2389ed6814c05bb1260f5e244eda699e5c5d007d5368a1348f955570a5973b0e433dd8404a5d8035e30bf7fae334328a443938034202cf8878fd7190e7dfb762c63f8400315c8d9cb21e6bad2e8052ab2e971941dfa3db43dc1a83163a5eb65fbb7ec69b8512a6cf32249737103603730c3cd0fea55a969bbcb85ab23824c97efbe5956554a21159ad3e49511b66b580da1a6a8d8ed0dd894d658d2ca1c146973434e98b603129bf1aed2bc25ba7c9967829d08c455e6a9479c67d73af8ac1faf85bb76cc31b8539ca7415aff0fda8e220c699d2434316fa76efb10d5791ce5dd6c232f8945de3ea8f58d690e65b825f8816f70433746b3956e3a9e06076e0348674ba774fcc7be921d3a6c1bf1d1c233f36e94811c8f57f067bda346f64756e50cfe5336969c121afc4f680d6ae85f0625d36c8cd149f64932ec09c88f1f08508e38d7aaa7415a6b13c217e2b6931b983f9e912d6fa7661a8da150dbff24f22e8b635777fc667abc823b46ea149631372bdb6f61e1f6abfd407906ff6ed6cba6059fff4170baee8f13c677e671a2ffdf2f0eeeffb321cf6d7afa044d266a078c998059ebac308652fb89edd5543ed39ea02bbdd6f59fcac4e046ff86b6629fc24fd77e5398daa7239a11e55681316c0674765d1d924132dc7f287fe95803d50bd454a64de2e739b0e273b9cb9a0f95636ffc6863ee593dae190d83ba4e0e6b5a36f78671cc82ade5b365efa105f985e6656bb1f8538d06a77f2ffd09d4c5b533e5ba08b4739ac1ede4461a0c7952886c039a73c9d4b7d22221b44afdd2cdf328ba19c0862b357e78e94bf12730489a2c1c1232e9e47398bd0535e8eb80a5977540ed7a1ad9d56b0a93f0867d91495266b13085970f272430deb4f5175e7e6714758f1bb2d34afdb8914d01e6fe48a7d5d0e19a5e8155204046bab2da26c9df11e44bcb117f8c1427ecffaa37a0846868c174ed32e9d1a0325f063c5c76bec375190e2bc6c9a4373d3b5a40fb7e39d6cbb4c1a1a2a165ba86ac241f2dcb54a8039b046ddf454b4a4ac109d4d605e4f17deaecb77dcfad65802d9c0d2388934d4b5c1700abd236f4168b656414380367e30dabfb56ce3f54724fac8039bc2cad9ce1ee7954ec01db00a03dcd7ae5f5119054ccd25bf9dc63fbf7964bcdd070b17a50e93a942653c526e764ee9af9ca3be005aad8226cfc8286c47fa487974d71bdb6c36da3113427595de11a6e026f2cf3a87d824db7b71dc0868e5ca405333bd53cdd3487e9ed3cd0b2a1504f52299d76ec8aa769abefbdafd37ab7aaaf626273f7e212db2d5de0fbe84a63e72cca788a6df723967426934148f6870a02654f853e00f9aecacb6d68c09adc8739d6624688190a179563d6f72b9e9525a9e0f39a72c64748eae7530c0b985a6b52073ed0473d56baca3239f0c95d83b7c338d63b44a4f293059ae6294868e535bb1bf0488731c1aad85d905c2325e76e9155ebe4f3c9ce06656e367ec3513dbc58f173cfffe5e0ab32beba87d77dbb1fc9b606fc8598b8c66598aeb33e71e1d1b56b2380888184e5ecfbfa2ff5b8918504bbd7d742b80c7487beac924e45dade28d0058c8bd3ff8ae76f4e6b6ba30113037dbf5b3070466b687e9d5ef0f0cbac86faf2b3dd1408cc28852dddd5ea771a233c5e197d29c5ecc053380f0ef51359f38ab309a212f43c2a938654b407b5e54e52f4d1d8df780133fc2b40230ebf9219f5d311b1cd2ad30071104164be96a76fc37eb49b03194414294d9843d347a2c67250bb4e0b328f1ca49494a81163d94d02a1e170de61af3c699781a34c8a2240d54f6cd429e7f504677b55c92b2f6059738c1ea451465b074799d3879d65f15ac348023c1c4d1f453dc432be0a74e939ec4bfea3cadb5ac8bdda50b96d4a2cbf6085bb0dabdcfdb695d0ecd7db6ea4da6dc6fe48c6cfcead3f01072ce3c788711a3411eda09d2f65b1e1f6f35b82b3b0177efd760fafb3c20fe3da083977eb68ca92760672a62720dc40e4077c895ad462f5df0d759b787b9244b2dac3b018a7a2c8ce41ce83471795262eab069574c58ed45e8f92053fba6ac1af2c2fe2c46258b6f0b3641e53ec82ff11205c1907f252a8b111bea80efdedcf3ab004512801f938904e3d4c1f163eb048b77b1a92ee2f95eb45fcf9a5b99a0afdf203748beb65e9efed1ba407fa9b230712ef03f510c8978c519111599901481d12911ecb500a30837186a7f3bd4b0a1d795d28762011a1aed484ef4ac76f4d7c1ca3f75ab3d587ef593a9414e235bc4d08d97169a420e561176fba321a175f34dbda931c3447c925ef99612410213ff85150710f89208c1619d425bd1cac059a6ef526feda76209f93d6f901da3ee6fdf924d0590762b8895b6a3c5411af1438ca3a565d68a1ddead799859ed1678c5a7f29bd46c40ed33bf9a1d547437aef9ee5b19716c2e1ac7899c10a3962880becac27f27c4553a31917157d4d2767d61046c2eb74e13dbc30dfb6cfade1cb04772054941f53a15b7b03f82e2aeb4e137fdc7f236b283737127158ccd6aa3407d0867407d26fae0c911a624b227d11050415af72dc0559b59d9abdfbd55279ecac4b1bd998d6f66e3f88a848eb9f6a801d6ade8140347ff7b3c02a3f998022b7816de9fc2bf38f08116f077f2fd238b4b5f449018a5b58ebc71dd4f3c578c88fbfe577311621f142c46db0efde940af957a7fe0eb10b3c3fe1159f20ae09e529443068bd5ec249a2d6b1180f4436a68b8f3be6cbef5346ed1dba12b7a41b63555c37ede2aa34fda19b69eb52fc508adb6338d9dc9703477fb764916fb38ed35d04e6dc9a8b7297d9aa3e23a7d4e3dea14428e03e540bb6124c4353215e4f113f67a9d6055163dafa345d5e8cf3c25c4b786c52a5fe748b07ffea6329d5972389b139c1d2e9e3651e94cb21b288c8438d8d542e8616ae5cf702ea2be085d84d884466d9b263f675cb557f10fa2ca6e68a6c6e2098b2bb512e75247c06a95690c069cd45eb44a2444b8e61037a4e1c01476f0a8433f782b0dcc229b85e695c967aae8b0ca77452b6add0a147f7d0307a293de1d3dfafb6d55a821d747463dad70a2accda0b1917a473f16a9d457caf326f1099f8239a68201a8f7ade3c2e51c7d038a62c6ad9994c06fe4c6d70c1f05928a09321c4007f211fcccf657cdce75b21f503cbe16ebf0ea59d9d801b7f571e7bcd51db008b07790857aa77731de65dcc7dfe6fd4084c0280a684d87173bad80ac808193f0002025019c295f65ead0221bb4eb845b9069cf0f712948ae7091ecb74a9c7fb7c6e2bf305958b75526e52c5014d137a8898ec97f17d4bdbcf2be8ba4f15f7a0ef4e1de9f84bc1e575c4d5b29be788f1ef04fe9904d0fdb73c65789b1240bfead98b3d64522fa06edd11f9fb87528a32d681db7ad05d6f38ce3223237d335ab146a1b8152aa345820e8aa57fd643bd7d4834a95c53950373a099db048198b23174b2fa8901fb8832f65bd9b5fa2851f9f8645e88782dc70198cc0bb72ed26007834cee54ec895e0302a4d54fff405927aefbe35412f90fb192a20eb1b99c27f3cc8b0e3ae74aa5d218a28866743822c230e89e09e685be40ce3559b00cf3425b2a105f3f59c14c3523105f937bbb3dc7f1be363441d133f48327f84fec85461581f2f2f4dc9d897911653dcf5debe95adf145c69bad64fe54fd4481bfba20989b147d266e17b99bc3a8176be1b5f042b6a67beaa4f24a5603ec0f3642a34651ab5a1e99110c8ef34553a0591b4522883a87bcc60b43db6621a1120d26f0aea126ababa327d53e1a07d305620106b6ce2e673315fac8fcaf1633093e760bd7bfd6ff71f5ef7ef7e0188def9cb2b01e35ea6ec226032f47f58449e93a1412ca2b729e53c3aa0ea3c7d361a2b22aa371f66ab19ad0987aa19c447937aa02f7dbf61303f1f04abf65df8eec7e536041133f34ca12be211cde6fa964d9770954ef5fb358bc77c07b407d95e83777d7518aa63f344586333d641867dc521d2da30f4c07bad073b9aef5056e6e5a1c50a1dabcbfd29f12701785b3e30ba0b6547c4d84d13e28a378746b551ae4353e4860869daa498cbf5f6b454b6e41f6cfa6688be354bf59894f84ac50b8bbde03ddf53a350694e83ed62408601f0706968f9f0c5c25f09e782f47c72f52d10817829a5c48c5e6bb325ba1ea7165e0e0d9f2ffa54c829e8da3d5303f02e5cd651fd9645f720a436825ceedf1b4b0e11fd0ca4de66000c69ce2a2489fcecf587e5af9da62b363ba94c5a7de134ae742b30d8f5322c5f2bf8f077b42baabf8e47aa64f6ab9ce4ee92bded596906cf258266ac50fb3582e3c4eb14528aee4c91f0f8f394f6959c916038aeeb93a1552c3bbf58e76b6b6df900a6c406e8ac74ba4f74fc3342a707d2f1177a161641fd8360c3ba5b9e8da5e32deed95e7d78f22ffa8ef43a2c61a16efdbb98e93a633804f94b6ffb8cc54813dd1a706ec7f3c46dbc67904980019d80a382a0ffb5badaab94e2312b81f9f615352494eff28894abeb3e6dd5cf9694883d5de716e6939ba5974686ac7c092022f1655f3d4fe9a2b1da69231b67f165e69afee2b55284dcc00658c8c7dcf36de0033d65c4c08a32ba6638175810a8fe4fb7624ee9a0c7ce3f80ff082a06940e94cd14728f4f5a0e79d5c94109128de973f3dafc35b00832a06d9fb497c8c3856461e7597927e9c55876c54ee69a89194a8b648f66d1c48f62870d029c18b16815767a7dfe46a2e801a8e448815e76de714565f9440831c936417eb1eb1f468f5274606461f3f8fcd20e644866beb5fedc05328becd228cc0c97576acaab1ccfec9bfc0497f827d47efcbed0d2113870447ffb72c6930103f188655c3ce85f0805228f7057dd7f3074b2904f4927b91f015f0de82347e6a85be697254862b3d6dc3e80b0efb62620180a601bac1322d4a37febdad3f28da04690cb81419ad4b02170cf60e5f3d52af00e63fbb78f4c5e38e8667de7333d0cede033e380e866a8b61715cf9874e0bd1b2b75882ee07ea7e1e6753d41d3141cb95a4372e7098d4093dcb13154794e0e71f0dfefc6747f05d52af72788340abaa28356fc9b73410278bbd1180faea8b15e7e4f2839ae68f818d006a4021a20ef60e12333446d003e257aaede083430a8ed687331adb4af4857e384fe103f1db420fbc1ac1592c0323f6f783f029900fc19e49caa4d21fef9f66f43a415d9395ae3571edfd61b1409e7c02f0b6c9e14f7cf93eb6ebdb47b0fe335d0604bea81e5632d81dfd3623961d2d3fbd1a67d8a188a3e4d1b4837889ed91cfd81b1ea415705ea2f3d43f05047a6e304a6b7b61a93c0f5980b30803b4686a3ef44ef7cdde8675bb7063f13fe05d5123064687b044c97e75e60a36b2b131c5394211508911eaba797eaa6516b78c1aeb21bf05e03571feaa88a02ddc69bf48f67f03e8fbbeac2c9696d12652d86163b90a14d1b6509e80b4d807a923307570368320c8ce60c1e1da9ff9904e5b819b0ec0f726c61022981e5b00f83f74354300bfe480385baed0f20609af60ae64ecc127882eedfcb778b9b1b9bd75ddcb5878438025ac110000862f86b3316bf0f4f7a78ae21c82da20bc34d63c58621db47169a1eae46e0a6a75cf00da7b8eb5c458596765064ce005b08cceed67233adb222bc2abb7f9ce9b112518a51dd2568e6f9137c7241e0d73d08ccfa90607fe7587fa0260b4434036bcc9455e5f8afbed29a507e04730650d30032ef7d4cb293d5c67c4e041b08478aba0eac3a4e2cd32509dc0a1544db80a5bb4e02dc96086fd8fd2159ab49c79d8b2df07cd91f7f1c9c6b3ae1deb33784d10c13a505f984f489aa9806a230d454127e7c5e7a465b7abe04cc7143693c32e18dd847f4619d1238f7a68e63c72d14da4415ea4e8e296fb5a5ec3321e293e9e82d6f6c855af193a218a982db545039d3914999c57e373e900609f3588a419a7f1fecaa1929046805f6ce6dadab31b2bada858fc2acba7cf472401c6fad49577a2cd8b38d750448a41991d587a72ded71d6e3c4bd97d1f71a332b69d2dffa8d6ea8bd63114e0128482642b7ff828bc02a5d83a78274d1bf127602b1b8244b66e3fff033132c20000cf2c2dd949c6b350f5122abdb0765df7141a7f55dbea85cf2551866764b920715fd4c5294b4c0b216530bfcb61644de18e5e85933dda580dc393fb315e9dae066347a1973bf93b678319fc9af94fec2a3adabcaa0a4f0a8f19e5e7a709fc145c41d80567e31e00fa08d682bffee327eb3fe9e545e914f38a889e65da6f9046582b9d891acd6d43aa490f140aa9adba39e51e47a6525b3ea884d6eec7ab899305bd1a9038368517aaedd5339dea23c815453fcfd38d9911476ea3f1d99582088959b3eac801bd15f3be0bb39380f32ddc0998880acc4195a63cda1aa652ff9affd69267e418cfd745c21a55ebf8d8157a3dd1269b9a741a44befe22a44845883023a1c76d66f1102481bb6c8a3ec5a4dbcb5979d84a476f23ca4304898ef27f799e8612da64fa8802251d28620974e8e57ef645d85b7f5a22292eb33ae5e30158a3c735c3eeb74192279ed5d87cb5d6bdbbd01ac1cf6bb35c095c3be1b8392e65137ee04877d2a4875354c59979487fcb4b972c973eac7c5451bd3930f610eab5af738c38e680d2936b3f1d48700442c4cde35edffe2c7f6d2be9653ce7c25527f2e7fec0d144aa0c7ecb0486d2e9a23b177d778d2c01a44989c76f7eed2f6d92cd5894c5942a20e030797574fc297630d8ec7543a5e82e03a339a2589d29f778402daa5aebb44bff07b9418016bc87f4fc1d3ae69ffa449e1837497eb03743982c32f6c6e5129b3106bee30cd089a2209053a6ff6fc62d82de4ebb48f6a2026d23a2870b131452f8dd557696b943b9bef10ac4ea8f155c9548d9371ff0c3f669386c8ef9e2ec3a6efd2404253d5608b1b8419f2627ed397cf135794a78e18879cb270ff31f39be5a04eba8326e1088e39a2dd7bae335a65db973c482999978f4ad7074e8b64449c9fb66e9a925afb9800a3bb5986c6e6e293fef614aca7d63eec0992cf4974ad7075c4173b58c67582c59a68391df01726bd5ee81a7023030d12db1a2762f5f28b5899da62f4a8470b23b96b95df260b1bc3aa611d68a84c0eeaed118c950eba7a2aa7dc8294e5a0bd89d2487c527a8a4e6494c865bcd12f0dc0d23401c3904a3b5fa06867f2a4eb2b58090196327cdac8223c56f39aa308144395729b51575a233f6c5a68d3a2056bab89ef4ef336dc736ee9b487a7e70f750bb49ca3ff8228a976cecc728f13214c8571221da9d1a5a8189ce88a1ae10a32c3b55d6fc31e95c205ded23ee844d0738850d6667bbd2a6020bdf9575fa043d85e413cb4eb5374dc8a3024abcd9bea6a658addcd061c0ff69f549904667f06d75787613280fad3dcb73f56650846a0c06dfff9ec09fd5c4ad088a308017795b633d774c6df7fa00aefd0924174f0ede8bc1f49256b90cafc6a99108f995e37b688705bdd7cb8861188dafe76a85e52395f6cdd0958191e50292bd22dbb7acbf2ab193771250c7b5431dd69776a67cbcb815e498dbea24002b0b4b24070c6b5108e102a045476753c3e85ac15988e1ecfff4cfe3f27adbb9c819cd06a58c43fd62aeee50ff7814083588ddf09925f9061856438c8f91aba600ac087de6f8dbd944cdda2953ff654c427764f2a3bc73e328b741ca3bcd968ff2270384fafe56d6d3451c41979faf1d015390bc6d42c07f47034f2e6f08708d0667649e6b63235afc4667d6a0f0c3d1a614ba61bbe7794618d7ccff8cabe2f056498c0329f82fc8c456146ea959e8a1d8867b0d5cd7609b98a754d47aaa2f889572656d9d79c41aec5cf11f15b720d86ab86e52e41d05db7a90927e85ad89b8de11af658d3a1a18f97914e96820cb037da15c19795bc2ddff8f3304b187c8c8857f01f75a54bf6e6e1e665081eca905841dca5b4c2173c268a34147472838dc3ba614eb2dd87d1e015cf6fae236a75ba9450956c2976c3141c888ac208caf53f5c07879d4308540e6eb5952cb1e6d1a9eac6e3629595ed56a650a4dc45b080453b4d38d9d0e24487bc38fc23ae642a12504090f66fd1061c023c451d88ad4a79dd795f6c5b602bd5f4ca01078b007bc05a81b10787d1d1369f79dc153c24f6547ae6a81c3715b4164bd428f37e40140236f5fbfa90be816cc4d4e6e0a2c1fd1c41c579795354368d6cfa5e0a5f975eb42f9228836ed1980f5d60fe7fd5645226a1a6585e2857857c55ac1385dd490eecc480257aaaefd89aa478e4d5701c679310f50ef581d2bbef4d97e0b129f554def82113a538d435a4066d1be94314a065e91a924508cb0fe3c95b797bc67357e38daf98cdb39ef4a2af545dcb51bda607b117b4b94abb5f0a4258dd641dad2357c88ed8463d08f607747664b6d44561424847a491e00ab78b0aedee74b31da438b4ad508455d884bf606cd4023a2688f05ca86a9d8bc054d4d3be50429222ad70300ae74594419c77427b1f68dd3d8b07ef87de7692b6266b0bcbfad3110ac2db8a4518908c2c09a372b741a04686ba1cf5628d7c58d94d2c3f931c77bf89cca30af58f8541ad0cbff9424cce6db12343310a06333e0f75ca3a1993463d55a990671ca33964db2cf7d00713d7b63e9b456ed2cc6d2cec83998772b6314f22feae1cf7f88da4113fca65fa946cda9d72fbafcd2ddae2675c3c5e323aae7d7ead352f360df1968173fa02ccbbba7c7213d95191b93aa50fa13b9880a5fa1ed5c41fac282bda55f363f940f0f3b9bfd68fc08c7e7a79425d2b861d93fb597e146eea4612cf0bb7c6379b0c0f5a3adff5b010a8632c6b0908eefd01913a40e0671df3df12c241f4436474347c2f4a40adcb0218ea57b6981cec86d02bd233e1f977ab519403983bfd1de18966f0289a7b9e2072eeb827b085b40fae231c36218d45d473669b042dc676a3f9134ec83c773bc3217d04dd06398a10880220f2df807f8015c809b0813b1dc83634a41553a5ba130f5ad9fc25f38a51ee422905407f89d182ef7c951cb0d85e45d99b1ee67d523995dd56bc66d4c8837b4bb1dcc4465d2e2c7bdaf0ccb8e8acaed8af143b5bf3cd5393a770a9f20dbc3605d951635c5c674e228c62ba9e2b0f37d01fe79d323c70158f7cff103be73b586aa166abcf81634f3bf13b0d99907bcdc15774330d7e1a3d87c1d7397b90116007728198e077853c9899f9f42c3d47ed01b8d4088645a64bd2f3b8463b706e8e181e351c015bc3081fe67b8213b9d39dc8282fe758b8fa9b0b114c22e5cc1c04fba7ea3cb0edb5e0c7196fc703f3aa820439a3620623f60f54e8937ab6bc8752b726464a2d6e7a95413ae80b6c781b22f8a412547d3e187bdaf3f6acf925cd0a6c8533acf9ce30e4a1ca8528a7de9d5f2d0f18fb2d954f188b1041c5946059534c20faeebf54c29470c69eb0f20fa29e250aa73d453e4591d53ddb8db1208693a0890e5d870a64ea73c0b6d3a2f9d068b65f622c84b63c28f198b5029443f34da39e7906e89691bc12403835aa10c6a476c18f956bc5ca37bc5308f370f7222264066748053cc7a151669b1c72588b8bb7060469c0b37782a3c881dcf6c3f1a2b342f7fe4ccc121cf02e6e092e7d7358b937e88aed93228b2cdcc960ed8de81176af9d21f7473544b9736d333fd6b6b7be478edce46bd65a81c6351cb16acc4a6488d876f1e45e4a666bc557dc2731a1eb0f0f4e7c665e53a8b837755535f17bd2c814ca438fd3195da01fcc6e123dd3cd29124a9f692873001fe039df245cee1abaa2f6ac9062e3170f2f5c6009cf19491f88b96a49dfaa841cc91121b01e18a640e5a3b79f9171b205ef2a2251a1a1fa968e1703822f6d973a6d792b99133c9f43ef71630edeea76410259ae11e0160b4463a88978d841bcd5fe3eedd7764e11a84f249d683b1a9957920bf9e49c383e6fc254d91588646429df33b4accf33a778c6df6e9c83ec5a42e958351c2bae7ae7376a07960f55b549022e66717fe8c25d5d4e8e21ac67ffb8744dbcb9e9de37ff3728e0b8646ca55fc244793ed994f95f88a1d96e062f8a9f85c3b991ca14e603a7e281a9d803b54b7204602914271c96b531476bdfc27d8c430f549ddc0ba028038ef13b7402c6b521c43e199991eff5940fac37a4262833646ffd774261e4ecaf67e92f472163a50ebeeac0f8aae30fe7bedcbe72f0fcbf801aa003c976cb2ec28385ecda385128e8c45741cc06ffa84a8fa647afd1dac87c54f5511eb9315adf81340c2e315bb3a603b04591620a17f3eae7c0b7eb2db0d786660fd3c495c85f0f2489cca42ed59c9ce9c3c765656334fce6eefb120f7d07748ebae969f9dd4f540eb3bc87828b4736aa58112b714e0254c98a9b6a31e08ea2b90d9ab1a802f49898787a57d3a0b7c49812f8dd2346c5f180b51b46329330c3cd2a0185969547aa27194ccd79d75d1be0c40d80aabd808160b1c314414b52e5fba73884ab3e9304e00516388b966a21cc3358ec5feb98695e7ae8b1e7d5abeaae20da9573b42f987f8eb105e953dbe55904355000b2b3e54609106dcefac06c64b18224f65a1b9f4a465e74e78f2f8c6453b1fd869f7d256579cd6296c4ac842c246f2ac75a4506bdb57fa52605efa81c01c75a45f3adf1af2a6b1346f45a8fd8e71dcbf37ede04227cc2afdb76fccb29fd1dea8728e383cbd644e7b71099f541de7bdb997dcb66afbe6c6d5d5b60579f67e46927d5c737defc30f1aa9388b9e0af37ad81c92f1ea776d31b3ba3b1ed45595d8bc098929a89d9b39fa18c23e6eb88a805b48ffaf0b9119981c96c8ef3ba3b8191299af14082f874dbc28540261cec3b38c01b24416535273f28e15a7584e9580a1592dfcb8ae3169411bdf1615df2e41edf57dbb5d3a9916704721792724e90a3a924c92b51a239245029fe26748887151d89e9d8b95da12d0c10b910d0e219f214d457673f516c4166e595966d32d6a861df38e9404ec8b22526d6aa60d1003cf3567ee86047c683d7df42c2851a60591a2bf7bb652f48d708849d5bfd52e1ac875049d74d317811bcdca841996b6d15556a648a6e7458fdcfd13d3c5139eee1b57caac4714174a4a2dbc87140867da53b4818700b3d638c7f53e3f3705057137c9498888fc5c37cc0f63dea9dff2191f2cce07674a75056bf16e2b5b1a9b45dc9d6cc5b70efdcaea4019893db7692ba640c7e39975ebe2e58627574500603700d8dfe6031df9dd0fe2ad944c290a5db6be2af90dd0f43443b7a1f386b0b66e981b88ab9ec586f55ebe4b35d354a70b64db85f2c4558243a50df6c9bb5c8f0abed39b538224d242f0a6759eeef04d0059cefd39f52ded3cde116ec02582d66fd88836237676875ee70382833cbd9cf2367e85d55944185774716eaac09403e2ad71ed5964048fa2caa37b09ce7796cbc8da8c80822437a92e0d02c49545bd2aec57738f1f070604f37a65afa272672ee231965626ba2f6240c38449d3319c2b54a78f02b8f4ddf77f64c84c2a13ffb3f297d776201164b2eb6f25575da95fcdf2d521af80159595d95e1136d43216f223bb8fe50b0ffc072c6a7d2ce923ca3610e248c54248eb37f854dc16acf6c4e8801cb0db62a9689d7cdf3ef9938a97161b1866af1e1caf974a261a179745badf452f193f7a71c101f23e48adfafc24a08c0a7a89742d05c1461535de2cb7db5904d500354fb5f770901609b2e9a3f51c22974b65150e8cf43edc7def3e5a31bd9ca9350188531dcd3b5227a8d7a76861800104d2848bd23159c6b8bc11fd832c7f15748352cd68d5378f4b50cf241a17ac758158769bdc1237d5adffec5caab8c86e04db2672988584caba14f1db3b836d9fe83eb11c79c5fb15c52c1d20734cafc990bdd8d32ae9bae199673b600fce4bc6a0b10a8feb430e92a4fe35060de043d733d8dbb5b4bc45fc16e4385c0ef696b5265dde5da2f9c437b3ddc17dc84cc6d703232e106b9badc789311b0760e6a96b7b603869bf297eb8c9594206492ecd683efa24437cbf263b21dae4a2b48bbfe948ae3af146f891b1089a56be4ea15b94e2d6e5602f7c45d03558b60dfd0cdde6ae3cc68d943e1c317048f371d2a181d60a1255d26b4ac6904e76f6d93e8b2c690c07587572cb763a108ef87feb50073daffbd7a503fc73d8a4b7e0f8b5747dee066e610fab24c59eb76e34785e750e2d5188601f413ef1b01cd516508a8e0f2a8338805dd25877aa6f06b32ccb9b4118f16c09245eba7d9a99a5e9c4f4d08a7cd67368fa36a917011f3d1a06a04a2ee5fa79df0ab9d0cd9ef5923f3ccd697f648aa906a93f253f8780d97818d176110ed870c119733d1c13e90ae4809a65dac19552b1538f9d21874b592562e52b691b286b54e1b85f6df476dd26e3fc4ccdf5991e17d4918cf23643f2d65d302e03c3daa9bb4cea6ee87525a2d9842212b62ba4480ffe47f332173aa344106b2f95674fdbe5462ba3dd7ef070ca0b518bd2bf17b4dacb17f32de98c4c2495ef33d42aa6367fbc33bb0f9f39fd194fcdf5d6a8a54bd9ecd5c918ed3f0ff668acd337cb1c5ce7239e1179c4294f9a0d0055728dad58e2f30435548aefbd0e15e3e497ba6a9fe33162d64f174168bac0189ead8936a7b97d9745a138fa33e541b8b426afb3b45a8ea146f0adcc1dfb0f98540f58de30ea4663fffb625127323f92f76d505c8f78b20bada2a3e64bb73b3ffc73e07ee41483d83f0bc0800d91368868f2f1d880ad52c32f910683aa3160ec7b3e8010e03bec95bf731e006703c1d8efa3e0b9b02562613265d6ca0afb86d86cebb5533cffefa2396434deda157377639934c4fb4e3dd83799e04321145d56d7ff59517bf7960c844e6ef73f6c21e7a57d7c9e2acce5cf8294816181c3620b9f296fde8034baa471e5bae06189fd790b3e2483a01a2a2720a8c4d10d2e18e09c38dcc3c29dd9e877b4d6719d41f012a1ce6b201173492f9b51b0723fcf3e4857cb994711223bc94a28966c5bec0ebc20088d7f34303924d303e64a426ad9f9fa0b891dbce73e25d422b24faf790fca99639a9b6da1332a412dc770c333a9c7b0409faa02a3ef87cea488efd05aa1c3b7365bdb7000c0254cb434c14cadba3c63e4e98ead673cfc79a1cabc6b9e63c403ffde2e007311e92174b9218d5a0d6e51baf21187ab78403cd7f5f6f6fe893970d2a9059aa7d3a0f34e095a78bb0519159c35cc8d30b29f44e1894e2e9f3feec604f1fd2074cfbd63f4311270ef8f4c556e9032ba5eb372fe12c2482c822e3577cfa172ce53bfb83e9f8b9a8568abc9ffe6e580e7a2f0910fb9021c0186d0474df4184ab8e40f4428ad97586aa4420c5e87d06f6f441c2a18009c6163c0a3a143d03a193502324edc9336f82a9d7f851df07e8d3e5ea16141dcaa6742177e628994f572986d57fbcac413a646e439d395b8e73e8bccf41ae61c8ff970ec8b333e39c7bd2043f1a094cba454a76cad3f40c37e750100b07ad827fa29c5094be20e3e7285b024a6fbc26964fbd1b203a14ee145795983472d2ab7bd5462ef464283720eb514aff8ddc0e7cf06204d1aca2b7f640ca38e96fa2b1a9fe6011f9c84dba157af4c2eeeb8bd2bf2bc00128c0085b7a0b637462fa5d7e019232b2a583594bf742b183967e12d3dd6496aebe9043575a472d1c521d9ca5576ba778a312e1303d383cd55f7f498db33cfd77634f933637969ea1e71e58ba97f1432e2939e95fcddd80c02b3d13bf6429b4bbcf1974f48bfbbcd22dbb307a840eead4e3529e3b1428b395fe832f1e78258255fadb2447e516670ccc2da0b1a1be2895f92f4c337a4a964285f833f4a7400b8b0aa2c8570989e796fe5e087b4d5d4153d555fa080db7d843866e26d3796e800ef108c053c8f25807e1da6fa0f169cad76bca6b116494332e8e09769599bc091f96e5ec72b912b2a1e55e4f5061192acc1bd96834417a6f41dd7362b7606c884dbd964e30117823fd5045341f20f02c29b9658e6ecf0e020fd0d5ce5c4a4173b5e223b98be3119170f018697c00851caf408cd525fa7bfecf2af11697302bfba832bcafd7d4ea4950092d91650573b2a77412ecbcb1cc218e913ddb452311b157d77bcf012a2a0ff0f0deea6fd5c5ea3800b28a007198f8432f6b9d7d3b07ce7b0027660de6719cb00a6767df21b546e4cd36ae143dbc29c302214c68649bce231527c8538521af4a9d63f42c6600d6928dfdb05a0db66e9580659be0a80ce27fe29ba0459a44ed27471bb4f065fca30d88421834884d01e7828caa7ca926272a5076141b63051c12eb40709517f41eafbda587935ef1d38435c244f26436acb5345a1dee68a7a00c158a34f2b7a72ea3970c1992b4421fa0b700114eb8012fa58159c842c3b115977ec881af4c612e1bc23d9ac2777439829a17005ae11b1dedd4baa6e194ee0a1d3a8e4dbba293f046b733b6b60ce65e39e762e494a09ba9cfe77bae785fbe26471ea3a7116d743feab9fa2fbd537c0cd09c7192a794d637d4739324139a409a07b55a93696083f3bef879f1e3c671994e5faa53cacd317a3db45a2acb241d0d3727e98019ccfb1546cd192eefe6ba78b11192bb206f7a7be635d268c218b5b6ea813b4257015c819b8e00e46b6dae79cd5d4e0ab0bd81ee003ba00b6c063ebd345b993455d103e99fc8e688ac7a6378906f7bc268e29137971798e799a3a88e60ad89e91d1ba3ad1e35aa88f2a3507613745862fa1ab1ae0f174bef49ac4807cdc032ca45a1de4dd021c54a2553411da341dbe9e7589512f10f127a95bd98df03be28b6909997afaf195029ee171f901b667224b52f014333116091f89cfe4e77e8b59e0d0786080c7eb82e7dc1dcd7fc2b71c1baaf1f94336204f840eb35b4f58093962d7c7764adfa1b3624bcbe75bd41a4d2a2d456c0f4d5707b0ea3c78449173278a4b617be1dcb6cea4885166be898200bf1174088a827d6ec32361bfe20fd02af39c41888c6e5dc82990d026d7cf9bc5bec121447cb87dbf5a86e8b7746a53c38b54f3948600fc3778e15c073a822b341e1296ca2bbb846a292bc34634b5ede26a26c8f2482ba1062ecf174ac75026c402688156c0518027c90c25ed532029c2c024a2c693c5c30161aa703d6d818761819d2e098ae3e82505ee6be8de9c3849aa29181469a428a5971c933c818daf0b4000f7df6cfc04c570783a2957e9a1f9362c45f01dbff03da5f33f70167f0ee4fdb0a33d406822d134464efbda594322529537603ac03fb033ff3e76748a342259ce88902c91449604b4a44378b3a6c23a38b34656666666686535e2a95bdd02615bfb65731158e9378b176742f67f2f9b65008db50b9ccc371e6730b8cd29e5be8e718216b26213c0867a9ca8def09a18171a674ffb491a5f6e2a6396333cfbf3b2bb48d79c6da1478f26464240b90325be93c697ffb44c5563a3dc59f177dfa243d469f4609c94cd55454a442a88a421ac5820e947082b7b04d292a37c69719186e0acc96d9aa452199279383c8a295b5e9f496b63b6366ed5501fe7e66666696edbd80eed2659bdc5cc00b3b73d26a3d47428b5975aa6266e6caccdcadbaa145c56e4dcbb617292d0f774e2adfdbee8f273b84b9b7f03a0ca2b49b6d14a54437bed69751f7afbcd7de8ddba6f7bdb7fb6f7bb9cc83c157bbbbb3bbbb4b7777dfbace5afba5d813cee91c9852263b23d93696382da52a862984b2b4ba4e64cb2965bb8cfdd3b47a77d729944e4aa95b09eb94a694d2a6edde6ec59de7f4eeee97204c61245a36e761332f94bcb96c1a39ea6437cd3cd2dddc8b5a1156476e948ba39e4168458492ba53a74e5380403d22881e5a4d304eaadcae5b9591a9bfb8b30c5b5c15dd7a8848d4a6c3d633e262eb69551b3323da27f55a6b7f5721babbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba7b7bb7bf734f1e6eeeed1bdf4c48ddfeeee3e7f4277777729590c66d36cdb3eebdfb42dd3b67864b5f9b66deed1dd7dabd5ddd63a7ddbb6cd8a36451a6e5a46dddd2347a36cb3b94acd899e35cbbececf6c566d167bb623a1947443b225d97afaf6348a77dc6e2bf97996655915d3b4ad220d335ba3bf132bde56dbea6638d87ed8a570f3881e8da56941f293af2de1a4519a509f82248ee692df128ca3556127b2361022dc6b2f4731d0b03ee76d5fc4ee70af09354a83b9248e16abc238da16fe8442231c3558a3c0b8d2b6304ec4816131f210ee900f366aeb814f32934b7ab41bdad59c6d5773f647fbf1081be168ada698996ca521b769b282478471d592ded945ac6082b0adee2a53622b6161b1a8747a4b29a52c6121a594f2065b44a10619a513180c0683c16030180c0683c16030180c0683c16030180c0683c16030180c069321f27abd5eafd7ebf57abd5eafd7ebf57abd5eafd7ebf57abd5eafd7ebf57abd5e2bd2162dbb588ad19d2875943c5736d0a26c9fb4da4cdbb8d10bcc8d2901064966264627c384136866a0b072f98401ffdfa4e872116f7638af7bb9237d40e3f4ada40ab1fdbbeeeeede9d6dedb05dd5048b37c023085ba8e9fa7e9a39298021e1cfac7b64242ff6c632309ef2302aff9ef93b14cdb78e449daeeeef76fa70e10ac3cf2eba1454a72e9da3bca48826e4686092ed1f33ccf8bf13c3ec9ff402916bca98ec503642752e19de9411a15adbdb7ebde9484e585d02cb2e920943d18559fa54429d514891049128950a0016f239150c61e89d33cbcdd7d88b954b0ace5ec8d3037521a6bbed711caaef9e77ffbf69d08df2a0d84f1bd1af94966fe2f32145082f685be84f22d4d299a141357c546481940019e4a7dea534554b6f835b70df9c9185b867c6362f8249fc4a84fbedbef1b85399f130ab5e4afa81ed2821f8f01522921c94316dd3af314232cbb495353c3c45591543060300f7ee99c952292666769a5dee7a69aaea68674651436b8a0e59887ddb820a1940e27439506c26ab25abc2cac81f3babbb17cdc8414782d2930761592442240ecaa6c28df7212d5918e409a1269d07363dfb02b1b236fe48bbc079ec8e300f20040788a210bcd70a39714fe0618ee6db857873cf5cc15312594be14aa4eb4563abb53187b4846f44a230d01833483244393c5afbea3d295ba94be2825a1c4a5b4a5a4a5e4452956eaa2c4c5773a9d4e19a5a6b89a28fa2a0e6256aa4fab5597447e2524c495dd64b494b27ce0c972b6b445498bd2114a45d7862b61b9f146de80200882a8f9d31457ab521637e2c001dedcb0b15183c6e903bd8696317aa0e2721444044541042b54d98ee66b6805fae9d7b7de09cde0573dcb34d2a6f4b927b5635ff388f4a476b2af9e7d5adf7af475daddbdfe0668698a2ba26c9f92baa7ea7755744f2543ff6b3a81bfb6d7daf49d564b723bd2b8d4c653dcf8dcadf9202b42890a7777676e8f32335b7777777777279160a43ac676777777b632e56e4197c7dee69ccecccc9a165e2076c100d76546b64f0a86ae28049c2824bfcce369263ab367a5b3764721c4f04988ce1901939b62a550004900a3327753f419f2118a3e55f864e08794e46f56ebee1ed9c614f67ba67dd9bf958fdedda50b2c2f86215980642bf5996a54f6dfe9bd4e860a04c2004645218db184327355eab34d10ea2abb7dac904f14fa421f5c18494b6e0b465bc1f0c21599e5b158590c8ce25e326379518179154311e5c67e60623f2fb19f51ec878bfd0c218a4d7f8e330d5922f633c4ca8dafe2d8900ee4c4d634c516dbc8d88a792196a2c336921bbdea67b61bea643132bc139822d9cca4ba5cc6118d5e7e3a8b91e1a598056e5a36e4e78706291009f5013455eab688576fd96a1cb85cae6e46e689d0a4b58b69434c051eeb8e49e1b1299452a0560cf6c46352747777ac99c86aabd502a93c8940ad2150a0d613d4d64cdb5c59c0aaa387d6d8428b231461b9218b2bb5d6da44b5b6da2cb3f5885a635462845a5d8fc55ff14578d8bfde8aafe2ad7c95a7a25a6b8aab965a66eb1031f653c4d87ad75379a29ff2ad5a638c31d61ae3034103529f1847e28ddf544ae3f4ad52a1f4feae7b9025798278b8000ae2f2c5d0d092a1254343d36b8fc922fab7a0ce12d6d015444444dd8c4c50e401b233893c09dbc8245c78cc7d8b1311117904028a402388d902654b94ff2b435b7810e4a9546a0b148e393939bf25070956900e1111510f1d9e1f1ce50791ac0e0d0df9a4dc2472221d3aa21741b1e6ca5012b6a6a6e6cad00f7a3aad763697203248163251252ae140899ab83224452c024eefefc114b3688d28a4404184217c3738bca4f08410501fcd414b287da5df0b285b690c629320504af44ebcd047f9269e8987f24b3c105e890fa2dff77ddf0da36a94245e4065b6d24fa23b72f91fc438f43ef81e3c0f7e07af83f8ac1bfbd5c811591fdbc4192264da466dedf6d9f1bf5b092182f889e272c1a7701ec05f03e427bbaeeb6207910f609c0970d779b7d34016f604641029018f9aa696689d4eb75edde9c80035b47c89c3b45777b95cb469c7e61cc130df73bc25e472b99200b5aadc2832697551def12eaec45c2e576c0724312a28a57302b5624f3c4605478e31205c2e57ec03465aad96cd5a996d530d12cb9308d42a42cc02b5aa64da466db554e2785d9f5c9a8b4be66a2e40ad1cf464d5669ef538e2e0c90d6c70c40d4e6ad0c4114a6850ab6b0646c820064534018201112ff8213a768c0911632b881f262e68c10371b3881a5781c2284204f1b36a129b4978bbff9e882e08d95e1c7999cb0d55bca5031810722febb22eebb22eebb611a2ab49165d4d5ef321ec1d3614c782b0df4f92fb08285110fa9084071370365e5c15cd092744222490dd746befed58ca23d1228e00257d24147992ff3e0d4542914da44fa3a8132924a17c2d5d9d841d9090248e7f1f91d616c926b1281631778cc5222982f0003d37baa4127992b108546257a1ec19c917c81e951c420e217d94482098c764efa246c91e79922f7b8a648f6ce22f6b397b5d4da48720ec6838b64743434343f30123e10e9479b8acf4c0ce368b086b94f61bc74ae5e8300feb36f80083979f912662722f08d972473dea6281cf9215a8606bc13f07c4cb0faf2405313e1f53c2126befedbaaf04182b78182415906494a4000531f80421ffecb83f818c1e3ec98dff3dd094e07978137c099e0437fe8fe0c6ff1d6efc4752a343c8cd1da79000801c42ce5a10fc11eee117c187e075f81c1e043737dc803680013cddfdd966babbb78d2523ee4e85b8b9d12d6d78d2a0a7fad997b67bb17bb4bbbbbb0eb4c17f7b0609c6e5aebb8bc16c820cef0613baae8442cc9738b6a1e9380e8beeeefe4e05aebbfbf3c9dddd1dad84ec4cba4fba29f07b1b797383515848e915b9f1e394b373e0eede757777b7bbb7bb5f7777776f77ef6e776f776f77ef777777f7f66e6666668e71fbbdbbbbbb4de8dcddddbd67dcf73cf76892d1930150e13b398d110c9bc665b159dd1a9c0d111b615eeeb5df35f47efe1d4ec7d17d7b85761c3864cb4f878e1da91d28cc2895bc54aabb7bb6b7baf13da7735cf8c2d238d5a8d181f2859b1b608dce0a3872ec18c1c03b74340ee7f6c61d16523503f09c165c70c14a992cee23061e19dcebe13e38ff028c60e0210047239365ceeeeeee6eae0033789de1fa8f1f40803402dc1d01dd8d00f085bd60969eecaf216d992c1d6ebc492e4b9114a764883c1b6e7c07f89ceeeeeedeb3ab0613f35d64460a60776666668e3172805cf9b7bbbbbb772738206bffd9d1bb534dbff18682b7da4a9cf491855dc73072e3c7975e0a9cac01400064b27cf16d1a2793c566b59d381b22373ecccbbd4fe3d36947822123a352f5cf1b66e64036cd00e266e44382e0c847b6c20a3972e498b1839321ba251c1c46712cb0c083e31173ff2721c678c43072bfe83e154ea74edae05cb0b1714300e00d8e1c231838c70a3a68be4bc4e17450389e6a2e86f1bb380ba3165ae064b2dc1e734e1fccfcf3e9eceef6769a4d324437bef4c1c930822106ce070fcb64717727800ca32ec0f70c331ce000db8fffe287f38f7e1a367fea07cc22c618815ad385660b2a9dd47eb5936d6c111faa1e13fbd46332674dfc398a265bc4638cf1ca10d7f81742291004b180a43be5da08e39c337e005d0708ea00c11fd42cb359b519d08f4f64f9fc64339b74d2996559668567b65ad15aa4b8b7e6f4d8e3ad187bbaf7c81863046acd9f6935edad966936d3806a45c2f21a59f4c77ddca98f3bf571a79aa631d1ac4419fad432eba0ab5a41551795c3393c8d0a2284862f27b34fad17a451437a68609c9803138e408c43fe101ff9e1c41ff86b24d6081a843be4c71f248d8a5000c997549e251483fafab88d3e1227b2a64720465926b60a692b65b18d4e4e0f1d20c862b92a12a36e5a4ab29bfbbdeea6493b89d359cd16cea985d663927df5268d3176a64f9e6a8c4cf7aea8af6beaa807f106091aa7af8b1b20e1a297c13c5d05f8a380fc86f4f7451d5431879883378f10f9e1d0c0df17f47ddff7d1f00909988ca8f4cd1d97ae0400410023170000100c0805c421912850f3444ee10314800e416e367666443812472381381282280aa2288e611800611806196794610a2abb02247f52a874ee8b47d78a4f1dd00bf02979d1b181f2fa5d84f4300f805fd7cedd5b97baa8f22f124188804316b97024dd833357ad270f981dab93f8ee694aa1fb109b6897dbc4c650cecbf87d5fc66f2723208269dce4b1297f137bbbe389aec1dbadd09708ba8d0581c1257ec4c9c7701a5f5ce6219389b67e6e4ae99b60c46edaf3ec5211fff47b3d57b48b36017119c99bf8b8b94d89431335d5b85dd4e30890c2845333cd00c7832c5e4979f91ab9b2e3ec6e89936f71e2b47d486c20450af48e104c976fa030d1008d8c10d9e00e2f711460c3c445aecca1cf3b364a27a4d1a46c3dbf7ecc590b1c65d404ceffd9d508c4e3f44a3a5ce70135d080ddd276dcaf8980f10f56377117a461f91cdb2e4d28b3c3e069b3304f157cd489e3fbcfa7dac83b7c2d4ab027eed5bb9f388739d4f0d7be7f44aff60c5d88f7cda9f4734dd36971a743eed6f7c7efc96a1437e24739aa3214de990c83fb48e2afb63c1614196d381b9e83e3037ac29a2182e02f49c5f9aea2b5156c52ab1c815c555c630876153734075919c6c6cb4eadb8506d6d87f4739bad6b0d69020f222e92c5b1dfffdab9d4e5a80579910a238fe8765c14156671cf5a8223904f6af2002e2b107827d25a1c33933e149e125c1c606dad1f3d873f815bd34b096901b7349f972aee9c8beb44b2bab8f974a689547854b07b9c3c0964c9b7a6571c68b011527469363859b052a7bbad884ae571b97a9ad9cc2680dcd240c43945f92f8efb0e28ebecf7510a447d1e30d24b9dda8f2e680ad2bfb83f2512f753a1feb729e10aacfeb73a611c7184b2ba7de8ef76bdcd0544c413a8359e90918fd7c4b872dec2621cfca5baeb0eca8a349ca01019c77a42e47ac863126914ca3830a5909f6a6a16e358f271075fc447625e8fe7693065662d365fe7e4118d7d10cd7e4c5528980aa2f7b02f0d14f81acb5106b3e77a4b8ad81a017b91371e352c9d08fda5b521676d9af5783ba71ceefe3ebad43821c31e0e19e3b94b5ce6852f2f9c8426182417d38c9d68f8cad712018c1743286b35b7e93550c0c034d76b1185573aa10ebb6e2a1d40ecc4c857434ef4f424f87fbb5009b00dd0089a71f6a270cad42c029cfdec424a836dd1e8221e5ca82902af6c464143392ff853878bedfd6aed8e78f82543c9e375da058090e6aa9648bccb66d4e28c972ec401a31906087cb53caa36da292f518c442a3e5d2084b5ecb8c04f3a86fd7ad6909ccc29e5bc9468c6887765613b881f9f5848aa12e1aabc91b145899ea02f8100afd767ae646af4e5d4f640e1c5148bc95ff98daceefd3cff9d1050ed1279a93caef007cd47d874d109f6d0c56a6c501edd922aa1b5274f50753c59e161a64328342caf8100f80f942b0b407381eb829a4f28702d93c0c1d03816200d6956a8cb097e6ed87e33560fe3cc46f94edfcdb38d095b73b7dab662e486df86ec7d5d3f76f27990598708990d2f6f762775f20bde49fb168182dd73c3409950e88040ce0af0a090788d52e4a61d0145653a28d4b2e230e5b854943e50bd1323985b141582f65827a9ddd8a5a429c084e8a9592994d5de300dbf7f2ba54038e300098db08dda5c20ee4e7c258b208ca37cba96cc0d9c086812ba77a1408976230724366081ee3b22898cafc0ac09c4db5aa07010d6455ca04b7fbd99502183807d3936ebd39e3c3a74875730524733fc7f21f6b02737cb9509411f1eb2fe271e73cb6f7b496b89fc97ab7a3bdf521deb0a437c3b0dcb07b0eecee2b684e4d2ddad98c84b94fc2a6d456e92f30075ba93a309066a82cf8ae428c75b320b04b89ea51e9feefa309bf45910766a411b1604637148a38ee2511290a8a4e48368c44864a1a7b66f00d119baa57c2e43c012fcc50acbf1792f4468d5ce03f1bf77ea9c56711cee8512f1276dfac6ccb622ccaef717e4061ba70dda8485af253b511fa846a0c54c30905772a104f1618346d483460c752f0268a2c1a19691de62bfde389d0719c55d66c271a589d5def6170e064c2796587dc20341edd5a3d4a683b9fd7d5db31310fd1ccd330e63c41c44de59b068451e3d31071b99ba8ac79c55a546754e0665dda0561c91726bc49cccbaa1cbca8ad484f967d5fc5c4dc8942fac7dc85f107a793995adb528fcb219744400b2e21d92be147da0521eadb027136bc6bbf7cbf52dd8fd4b3be724a40e8aeb6456096c3c84b15585e1b81d45afcc5b468f835862d65cbbd82bda215e58c00a0f154ef478e56a893fc400d86e83b96e9ba26339480d391a052fd7ed890bbf04270e510fdebe21ba04ed26d5e9e07b247dc1ff9315590f9863d7caac2c57059d7b3e64cb3bbf070cf6cc403ac2322466a5b5b059d425b0330e2213424a0512eb4b8daa27c809991767c4787978fc352bab88706eb0401a3ab3ab8a99e6c575902dac725d3d42a9b31f62542cc481d166df23012ed64ce96a2a294a08158119cc781bffa9a91dc01db01b39c5a5a4fa1a2a9ae214058eb58d80f0f1876ab830b2292b80695034c0d0af4f7973554909f787ab64f602943ac8c172b7ec0568f3192910aaa8c782a28790397b08ab0e7fc17dd500d2564a562569579189cbded5de84e38bd5ea992a01b38bb788009c63d1fc445fdd492b53c6cd19824be1209217920799bd04273829de94628958027a8542ca8cba81a491d7f9529827d2f931540ff45046bab0fea5c81ed22fc9895f4135ba51f6d9405bf7100bf7ba6156f01ae2563e343fa390d27c13050cfc5e2023af8c2cc91a74c96ef49c39fb9cdb133b9eae0a9884c8c6ae1e96ac1b5d9d100b5530cbbf8fe7b75f982b3f2e1ca2f60c8f989d30dbc2d92fa5014021758098c9d9b9b90ca9da40c438c51c05ced175c40524e3aeb7d9b512b81d55fd05eb12fa475db2108a90cdc302e70f2d54d2c445e9e7e1084411fa9054ef3190c9d188b1fefdd0499e64160f8d1aa09d3669b933204c62206a18541c1a5b6b9433623c2efbc81649fccdae01d844f60972f1875b4ea3839f52a2307ffa9df8b03b4c679d9e07dbf20d36f12582a2043ac9191c39b2b65408d2b8d972c8bc7cb7340fff5a4e1c96c07cec0c074558f7dbcc3964d0488755d7b0781b6a86c642eb583897dea4009c51897fba52e2cd7e56cf487e81483a37c4e8d1020d2cd80a510f2e2d9c8abf298daf1d62bbbd27cb4dd356519530b1b28a42dea83df00010b8ce9048f075f0c3a5bd5ed87692fb10af0011eff4d95b240311bfb82122872c221cbdb48934c2b62ed83d80d56a0aac76a8ae1d32345989b44861b1ed92518719f5027f93ffb27f7c842e131c7e2f498d961c515aa12f254cc55967b6740f95c8b01b03f3ba76a9dbec3e68a7a1be896d2903953ffe3d2f3153481185a2b769b6f1678a59dfd45b60076ddc25404b131036fce9b96485506132d3eafd806394ad76a754304a6509f9f32891491351a21748615f79e960a13f2990ae587d8c5c9a56378e842c4b978fe1c167c547b8cadd94919cfb12a47efdf9bcfccc2b5402eb6dc5ad162cccac383c1b2156d0c6d6c881a75033bab77334b74600bc7f7a8e8bd8a6e4a336b6ae4ddd8d09e0ac0220c54675d2b7797efb42ee81ecebcb23e2d89285f5a260892df79656566051c66b11410c20eb125fdb014741c496ce52e89f0920e17af60d805fbf3c4866193cb1c8cd2d7e97ba0e9bf63aa87d0e6e495f2584cb58d083fd830c2d10e6fe5862a94552ecd3d9e2d663287657a2a6450ec44d69c253714f98de48a4a14aebfeb387d52fc6b2567795d9db297ce6f18d7ca74c8fe462f34c3d3a15a4c74c76d9e881a3f179a2aadad9eb7eca2310516a2b0c3ad0e54cacf4f636f9badfd29e19205c498e8f32be904b8746ef9264d1b0c1b4a7a383caaf05114ab39ab56a4e20fba604e1a24e2aeafd92dbb48590a1412527caabdaf61005c78d2dd44823c91b701deb53d86fca7f89534006ad028ef5ee0ff14f0fa49ecedc5cb873d155464495ffcaff73ae9a19a3742e7185c6a9f0709e610b656c0718c5fcdeab5838162ea9160a1e0d0eb7b3606c9114c3493d4e89cc8351a462c362e5a1d0faf9b00aa708e7511ee81b8f100477b6a82b62f77096c413e300133fd74b6afd4400792f36e3bc1259c869676cb35e32aa8bda2ce7e181c47047ce511b5fe71d87d8a1a56a80b3597b3936a7a8a53acf5b79aaea7abaa3c1fd9e19ab2100c52def23cabdfe5aa29f97167d228b9c5553dddc6cdccfac9e895374b5ade62f573a14daea6a1fa47dd444377c6f486d880eefe476b676909828ce2b52c972e68bc89f2cc770836e10216cff1d1f502e7c78e323da88d35dc642f6e243e38d072496de732a5948d93bf0680dfe26090fd1ac247f5310be41b2dabac7e5f761c6ad5ca523f73c9db750e7980abd7f0ad1663cc18274609adb1d31b58e89000a7588361d83819f1b4de224ac5f709c850f8f33a32e88bd92335e8f29bc90cfbab3c7d171b8131ce867606f20c27c1fb760e01a6fd19d26df64bfda80446e70c1455990b2afe775a7cdf65dd9a66179daee4552194b24f6a09fde784e1985205d540bc4a055ce060788695df4887c448539d8d5c110ba9ecae3f3bcf29a86eae21a332aba8105330c157a94721939ea5c1f141b90d153cb145a456debdbc095c10b5385c2fd614166bb937697687bbcbb1eaa25ac278a1cb7cc58dd933597084b9adfc0ad214da8631993766b917dd2898407dd41d14d0c479222d324693acfb0ec375eea4755c8a4394d546f5248d02df71d69749dc8553fb7d04d026b4fe5d4fc18db5281382e4da45b5d0e20753ac6d3a79af61a48e3cf38d46c31d51ce4b072e0fb10e6c8918bf1d6bb9ed4a725d6df943950dac41c8b599eb49a0cca12624fa925d9ac43d453781493c2e31677a15ddd66283622b19af30645bdacc7b80dacf33134a621f18e13f4ab73b757a7270cf675831983130254920d5790ba396ad230dac28e96277271faf54c2361d258b01998db0f1b51516d0fa02235a0537b5ff22ea05d9432df275fc961e95154a92cfbf3b1582a6897e07e236cceb18425ce4ae3556e313a57bc52b1bead0452a4cbc3ca9b761bc6a1a3e689c62123e2d2e23efe6cf16870d5fefb951992a7d2f9be754ba8151bf7a8a0ac51933ea7aa82a8472aed9089db868a3eb1b89c4498ae832dc2b9a2d82bfb7676bde576950ffd247050044c0aa2ca923087bb2fc698b5d71cea13001a6731be3cf5b22fcfed2763a0dc795ac3026cc22db9f7fa4be21210d7289a9bb2ba7db07fb7842fc73d4096389b0d36698bab9a4f7465bd407103fb925734f93aab9421db19440c1f1e2c9360489b326b4f8916f27113981d7a5edc742b69a27d21fc62db127f4c7c329173bdac032747d9ba5a9e9b12638a9b9826ceb1c6d0ac879967851e16b1d43d9de0333b062d112d097ce65aae2c6e825867bdbf8d29c0b443e7491eccfcb420fc14ddd4e9925cd5fe22c1b9f5c45b37ac6886088052af7fb555c5b3198bbcea401f722152faca33f56a292d32189992ae73b29d054b23fd8de1038c84a336069608c5e0643578b2cc9bbf19c9d5f0b870c8be58c9006653308a26bd85401323a462608e715aa36ce33c812b8dcd8133470bed755a05524f8e5c866389f72921b9f8be319cf82132adfc7d48069c59fdb91477d6f03745f3c5137e1d209c45e57406ce2fab5892f25255feaf09575df12e97023b223d9e75f72db78b374c8671ea2f0954b611f65ab2941d26bc47bec5265b23d5dc9481dacc5b5ccea2bcbae140f66f6bbd56404748bb316c8f68c82d6b178508668c86285c8c53123968f44d33ab3d84d885e544cb3162e24ac93af06dadf92b2a491a8c8979098a3a028186ca4cba80c47ddb426eee2f917e22d1d57048743d0d301bcc937dad1074a81891b33698dc70a1f6b80d46e38020941214db861832fdaed6bca6d6e79d4a838431c5e3587638abfa5ac546ec1a7c66502f2bbd865b4b8516148730b8902b8cd40ae9d8410a7f207f8cd8c0c971a5627d0b0c8024ae0ef153daae34644cd0b53057d398f99e615aa9d439c144a6a155502ccb5707d0087300a661baf903608a19ebc0806a22513047ff41ccc3c478656cb5fc485f8eca950dfce61746ccd6cb59a2cb10a9c084bb9eb6583e315d769860e57adfcdb1b800f39968727503b218f6eac833ac0cd3f834df517af8c796c7af3f92609828c68846206ec6528cfdb55fa513c0c67ca199e2df46589a0fc102114c4bff7eec0e26f3006bb19c5dd9ecae281b1bce0d2131cd6b15eb60c4f0e1419905479a30cc9dc185f86ca6ca658a3f70a2e3b7f406f395d712e8c96767840d25f748c99edb985580722d2b1a70509b2d2bd53dee44aeda4dd68f11cb6222b46495aa466fd25e7a585be627cd1680c8ec52a87dbee9447f1253d5f70f79d0f2d14cd5be1b5331931e3220b991cce942cbd64d858a4f3aedb6b9986fc92c809309159d6e2d82bd3ead1f98083cdc26281f45923f01f65af1ceae045f522783837ce63dfe163aeb89aaea66683184d1b68c8e0b4ca71f0a181922ad9cbbd5484ea74a521e27b0847eed2797354dd4895179370c5596f9d58a6c0192cbf1d153ab04bd02f499d6d855ff1a03a16796a9b2138eb2dc692dc55ecc323bc12a35ab009645cb913354f372a019a94031869601c5dc6c7dd06c818fbf5bcdf721b12150c6e8c900b4494545e3e9ee5946ae7df7d7ec77fb8c721998473029f6976fbe3c6439b4a276eae47ef69923aabb17b11d11316b1a036ed1c0107a85940d2d036476782149e8f091f1a32146fdc8d672ffbce049f12b15690edc63e9416304c444c4e2f864d078d211a7b67d385ad3bb5baee032463531b4fe1099208669fd54abd5bc6fa827cd9e942ce2fbf9b8702046ce161ad193b2a4266193629cc34689ec4b3fc56333521640fa4943b0ab81cf0e51b39e66df33484d7b7d0af423f96897ee407f508e2e373f98e8933e4647bf62b3ce35f7579fade13926e7818eaf3768adad45926344c2b22ab87a44db7e214e48ed183d4f0c59846162a5b024287bedb9f33083b68c3667c4c7c4c46d8defb151a318105f07e0062faed00150d5595445f1c7527e7def877645812001d4abafa1eac61e1698310562121431431da0f2b7620df2e40ab62a47168ae1f504c26ec74476e889942f954fa28d8789e411b93de7df16934acc7e747a00f1fa5867121a10884652a3aa33e6d49ddd85ed78289abf9166b9040b1d6e590beb49b623b4c4ed0718d298090f61c222ba5dd527ea6a28bad623653a88a0836119ad30788fcc4d60c3640a9244e1cdbf35a074da24b4c981590d415324ef7be63ca1900d5439f3911a61d4d3946f0b893a7ab1de5fe2b79ef3d4feb8f454da5a38a9b0606f56804911695934433339aea40210b851e3b5e7950e98332018c5b6c95647395639651bd1b6a2b1df165282d1ef68a018998f632987545b650058e76936d26acc08bbd491371528b5fe5e4686e098ee41bac4a0918d52639524826460a96b0998801b29ebedaa24b89b408beeaa0cea86acb795ec7c67a2388f1f6d5820659588cd95d82a176f4a10e2007ee1918a7e77dc69900c2004d779a1dbdf9977ef5e09b1ce74a3d191b07b21581a4b724b25315630993409b2b5814e0877bdba89d8fc3fa3d2801a2a705a3107aff2b93c8cbbb99e73a4943d8580ee6db19fd0129818faaf21cbca40bfe41b003eb27b71b75693faa58d500fc9dc2bd2c404388a5460e40832f1c11540a083f164e2955a40abe61f47f06e273c7ebf61e9551cb51b6d73d4c2b6cc5eca484cde0103a439b4cdd1a1d6cac6a11d4dce4c1d3e070ab482c899b179215c68d587c5e41b6c7ba937f85dc5c3de8712b9e9bf57b6bae260c486c4e62af18990ce1802a0d6eb70f514d94cbae129dd62b72d82236081e025115012ab378809e84a1cbe39827149fe2d11a64a0ff86d6ef51903863074209b26580392295009306fc98d59685f8a97f23e8caa8333ceefb970e132ffbaad51d4e7ee1b60e24e8af57e15b57e81332eaa1c84dd02fb5313bc40bf9e430ea3cf7c9a2c95aa50517d60d55d85e6aaf9c2a682f1abc42817239a3ca4203ffd92a0de9f3ead4e2fc431511c323f9232baf88709d9fd391b31ea66a82310abd127f537ddb7968c6c5e984362324a106f63a208a7d84016be9104e354658b072ff8b373ec0dbc79e86ea0ff4d93eff19cc2ba3b513fb51b3484a07ec6593c8f54b156ed07b4c0b75b27dd8d74b945ccf64057207181beaf0ddfb1d72acb3bfa3e04feabe95a388d825fa4a3dcaf49e11710d1fda4c198e2d94a8214e9fe99601d14f65bf75f529b7d401d65244dc1cecf8e416710c5c0f411e103cb10429c553893119ee4959c40e0c2716193da2ae63fb6b660956e7d4562046f333ede8984b69b653e25fb9b34308c2a143520a0ff19ae078fbb681acce0d31e917ecdacbe9a87e33881bf0c6b2ca223c9b9519022cc4646b88298bff0e2d2f3c13f642762976dd7d119467f403c078baeda84aebb76bfb61f7900fb556e816c79fa6dbc72326e2b87801e1e613ae4d2ab0f9d3f9e29b8e1b0f5225d52477e76d51c0351e257d371b1d5f9a2f4c11089cd7406609f052213285f7bf91b5e3307f27973e0432aebc82c5738a72542e449bc6c664c9c3451be6914e0bb0153d2012058f4ecf7acdcd02b40f36563eab9f4caf97bbb7d79cc1d9968332a85296a8015f9735cfacb38a1e102172de4fe6ff3e1f3e277e6d361e674caeef394e0826df59764d79104110ac7b5ea15ecdb12f92ed3477d78fc2d2314fb089bcfb6021858cdab9e5168fdc002f4b5d392b246704f295403e6a826c4efd862e52f781a96433bc2b000c21aeb4222f0a9cf05196b71fe60653bf0d3a5463564414e0d5969988c34c02062344cc80239d83a9c4fa57d61700916e99b213b75687cdba6d521c30ce6a6878eab2603dae3772239b96db35e95f6080a0a327c359011f40744ea5abd6b6c4236f4bccf8dd01b72af13ad1baa576ca1475315e2fe8bc9935a042895acfd05bc33601157ea27b9dde1107e140a0380c2bfa29433c54fe8bbdc1cf054fee7e604056199a15c1ff323ccaeebe4866ec20dddc4b3db646fd14766439817eeb62531905d7dd6519721fa8b990f893bae512fe241f210d7f135a8d165494c72073b1b5836d699baa03a3495643f465e3be160a5cb6ccd076ef0566d91c25d77af79899d9a67827bdb0d863e935a224015cd50d8f1d2c2e24c2443fa365d486e8931491b332ce09a8f80e5664f88b8f65290f8fecf1439a1b52a6195e502431e0bafb654384de6340fda9083214265405eac8e4b532cce676afd021ae01e35d0b2e892a3527e98912574073819457e9c024db5ac2ec466df470891670d06d05db19fefd1381af0903c911de452140d7f6cf332135e9bc4cad0c2cfb4d9675f78a2f73c35a3153a8f0bf81636c0abe9e4c4c6f72855c8176887422b81448fdc7cc61ec125c3c8690c873e3b28e2b14fe33f9b8809923903acdd2ecc43df2bd67560a994ea296624612116ab81fadf491ce323ac2fbe2f529799767733a027d726e751c88657704ae3b11204ec4a1c21bbe764e1f5af0bf7db0be029b16eccf0c5a68a042531e10c8b276d20af90bcc8339b2f4bf13c7010857bd81aa9faa37dd108691507fffba54ba0a997618362d61e4efc9fb57a902ed956ca32889a398660e1ba2fbc930aee90910b919e6547d1dcf6af3f57d485579662aa71c805637a23e30a2d6308332f3f25f2b84ef66749a902e8f89557c9fed387e29fd9facb2f27f72f31344e3dfb9bf384a7dcf4a9ddf633c3af1b08c788667eb21c66f95f8d312b9e211acfdcc46eefdf6bcecf3ffa292c2578d1a4e00273268c73ef6cd22213c5ea2f9678f3494b8b3bdfd7c2ba3f108153ee0b9a1464c7f7d33c3eda694b38ad6e34804d385476db186ede8a88c99b29228dbad637f0f870c34536428c947e5dec947a0c22db3daf06d0332fcacb77908f58bc31636a5d9c4fbb2911b0a4bf29790a22ed4b1a367debf39e84ccf8639a3677e3ca99ca941a25b466e89613a3d7a8cc524c18663b67a69a1912341505d1333111936f115369f7239508a1c75425d035a292560d06fc6361d0fa64e6637b55c586f474e798209777dc02782adf78a6ab4f6c76ba33d6acfa217f8ff8d9bbf0f295a06b22a01e87de03c2eabe7a7ce31ecce2f500461437e0a59d2730c563fc820a1d30483ce9d4c865b7260fdf607bd0258174dcd87a60ce3e65c3a0e011b0d938b176c4fe56ad1ea697d29c938cf9d74c3092ce4522263b40cee7e124223e63e4ba912bff9af29c85611988d87821e4eb5cf0570e7390d45e514886a134cf1f4bbda5fc0df7c982c72de7a09b42ae2b15a6d866824a7b257018145a781787727249c985e4cf4cab207a8f9468c865a4a03f61003b77ac6e037a5b13e83b9266a36d4e623a9ae1d4228ff1c9128a5c179bc5aeb549a4fc35cbe7b1cb3d1da61914f448a177d85f294dc9651b006bfc23b9eef25e598f552f240e015b4e2eacbc69205944098b0f0b29e321957a14136a7cba4846129c5822f3928d7906cb06174fde3d9ceb0abf1b18ff5183a681e1e7a6d5d4d9dc91245969d656c153dd4ea131d458b344094e6f30d087bb96e93cac1ab620e088707ba3efd78225cae5346af65e081d34af856c07b903e7133a92a5368019510df59c4c2bb50679391cc5c953ece9129eb68b4a4deda7cf5ba72dc4bc71a9fc9657bcc088e8862c69b326965c875d8f86e879c75948c4af6534444fbba6d6ec769cf542d203d8c060512a4d49ed30457901984ac4ea88b73eabc4aa624bdc3a90ddd31411e97d45560c8d180430503a5d17d5f8a63446da056728b549333be9b6932c46000a8085a29799227fa5a67accd6a38b5f144325e69537076a14cee1304af8ddd1e2269dd07e194b184ad96ec0d1ea9958a2b0ef9f79ff69498c12e7ea43838073854068e832f06a4b1aa7101d9b25bfae80fa3bafe40e987a5112e743ac029f5c851239bbb170a2e67db53840051e25477addb696e809012951175e07a173513176b9821ea9d768ef845bd905d0053992cf52d5852392765cdb33cfbe6a7858b18a479acb8101081d766a345dd0be90e518fd307538d93a0ba15e5b84bd12be5926801501b454e00760614b9a02452daf60774ac09cdc118af1834e3c140f990271972573d61067e55640aa43a80b4c7189ad2ad794b0a3211e24011e2e476802452e0d7734e1b03cde283c3c935cdfa1755a1ba5f0e6123e90f77a5f4cfc42bcad115dbe9a1a7ecacb0e47792978975af2325569db516c31d435fcc135780724c5e909038c3209718b63d4f481f749b3990b081d554fa3f9184456dc46122a8f46c57f0c4582aee14ff019e635efb21c715bc72e819ed72c5f95e5161bbb7cdce4b62ae92a4d84108770e22503de777fcc7df90de67ffa5937f2b8266c259ab8234fbc291071be5819114096cf033bafdf281373934778c1816900081565a1a2c1d23fe7db8728e2228cb15d8bb931b60be9ee49694a68bca1f6db9768c8621aebb2b4d3427ff561e3aaa6a7b1dd642439e24f410154ab4d02c58e4629d9a8644723701e46b73d3f85b7f62e7484527d6d5ee3e4b95837fdc480b6a16c6a76afe750aac0186168da29af311f414d4c9b6d8fb18f0cf4e57e14b919554f71a87c8c7d88b7403dcc78f9446020b8a4bcabb3a88d805eadb5e50aa41e37469c6adb40ca84a800f4e6ae02e99d0e91bd02f6f89f933021c7bb97521cbec754f6cb8c6c7f1492f94b4d591ccf3c84e92cdc9019c5214cde262cb40b0677632136cabe2c421ab849d452b84d09c17668b8c5688b3e525f534b91c9a02bff0e9a91b565d474053fffe087be10a3d74feab0749eddde4f870e3b393c5be63e4eb3832b583f58a64473c0525f7a853013f1cf11506ae4d9bb71c44084abfab871d9685cef9d2450f4d88b2a72e7942e7b4805203567b9f5b8f2fa6c8126ce1dc6eff360d961811642d63f42e0684afac64860c5a6595e19283e54dbedf485997fd79c42eb67cd209f4d8fc50d89d6bd527054366ad342b31589e540743d9ba55c2ba857a68e35f749619c2e37ac6b2628900c6f4d33950a1bc35d511218201ac7ac34821f843d5a31dabc866cf1ba5fffaae089680ffe85c1c763eeb8edb6d327d783fa945b14e04ad2bf17742e7ad77c4382f553c6448c37934f52b6b1232612a4c8420480c4991a26aac03d5fa7f012c096de1405cbe79f32ab780c051adc60957af5357844f1b5826a4a491b558a7a1b13df917c809cdb0b8975c64a1e569836b13943cf022acb2aa41b6257df2f1eded4e133d86791efdf2193cc978b966cc8af9049ebdf022bc7945010e870aeeb4b37a2ad4035e5dfbd963269a814e9d72e2d3cba96ecb4ae391e0bbfc8eb7685ee92f7d9d14c0cad845052c9054e4b32a06c508b3a794ace66e78d2c551f009504265171a7fd988de69ea78a1c13be4a8cce369214e2a9ffa20b3cc886320bb9a3e4c681d7537b47a7e23938aa6df0d7dab61d2ca562e6abb858ebb7fc2cff0a450890268f5eba19cfea5381f5ad36b5ab1c5af4990404f3df8686b2426aaf7dd2b8b661ae749c14ce421a890bb713472e6feaffd61a07cc9af99cc83b5d2411b22ff7042392d059edb1fb8274393a7d99fbeb10c9fb96d59e95d9d67c3816d18306f2f34f7754c0c92b0c68fd951cb5b51e800b6f8b80b1f717d234dcfad6ee4c007d9b97acf2622bd80a8318e7f5dd093d9a500606eb3a2c4bc107393b19e22513e1bb9d57f2ebc0532e69570477a0db001206365f9652f717d087f10a7627b4c6f908a45119a49a22e58b3ae568d815114c24ae25b31575efbdced0430f2f213f8e5615ed88881c17b0f3654affc39a387f566834f25e312344b5ad7d61dd3ef486b682ad502958d508b857f7163b70b493de354debc923aeeb9ca16efbf4a86b0c1ca97722b988b5bcd8e2a1a58755983922f9db5db01349a4157001fb36879a570868280b327e06eedd1148372521efe6efa6d8ebf94d3928aaeb2187211351054cabc5a2c820f9898def5215834fa66088c0e2e2daf852f92429c462ddbc9498d5a1065ba4a5fe5d26f4fa776e3dd9492e4c71b5e91154ce0390f7bf8740f4052e7a1d80eef67a9ad451d6984e69f9a20811bb2fef41f0163da60228f48fc474ee7a59c5826c8bdbd42cec4281fe10b80975a0afe3604274f1181b3559e6a0f7d81be78c8737b52a70c1f70e0cc623573ca635ac86182efe55d7a1ed9a94275e3b3742da5e2318c56604a1d2ac36f4e58e11dac29a5b9a70f6308ad81270cd2fdb638eff8cd64f3e99848ecd3af2541246068772c0d81b55db022e33d69b4c8d005195eba11104efb014825a2ffed38b3e3e530aa17f2c6806077c911dfe9ff84f9f1f95019f6cc392ba66cea6b604fdfbeaf307cc4ab3d1f6e055a775c17c504526e75d3c1d249f2fb10c6c7dad883ed9a3a7af7646332009d388a3958c411ec8d0420a690c1ea1a6e684f086267e0e4416f72413f8b03ed4c0d3d906e6bf2104157cae543dddbb8a5e56ea27a020a9f774ea5f09413954f0e57ce849986d74c5abf0d143ec02b3d52437cc7d7aa01d965ede32c6d094a638093b750c1b6d698b7641ffbee642c388c8c97712f8ab651ec12cdf899baf32d7d42382191dc3adaa7465897d21e165daa397871a5a0c02b797e29b7d6c84017834bd49c4dbeb8004ae3831c9b705bc67db30ada898ae207c720a13e310bf8d7c3fc88212c12782308bbd289a4c874f3344598ac09b7820278058f22c592a0a0dea17b6ffd6b8369448bcae48ea7933520863f8ff87e0e53f70ed67a90e1693c9b0ad4e8c2131cd78ee58f773ab2a6ca7c4feaa6f534f0f40aef85de4b6027846861b5884a19b04e386532beb552cc0468e5b4a3c4d9f2ca7f577de24f71c4d0d369629728dbfa086bdda3703b2be62d66d2d72895845bcc2a6936277bcc8a4c7553873bcc2d0c7202890eaf04bbdde850f7306116d59d45baacb19629e2d327f080843656416874f2376765763336a7ba959e4a2361563e184934799d85dd57493a0cac104329578c447e42a1dc805e49acfca1ffd71556a7d8ecd4cf536ea45d962617d7202857612b6e56b6c622cdd059e3e8e0b8229b293d6645e7c20c9ec43d5d6e948a7c0d51a6a4efe7c9ad202cdac1a119347efd3977c7abf11211d6f9cbd1e5dfa8bb399e723154b728bceded23a74dfd64f5315f14946a84a37dbd68762ff859ca39a630c11aa3651bce9e17820bbf3f141178f24c3fd6848e83cf80c29ace351bcf10a0e5cdcc70d991baa968271e7db2f5fec6bd49ec8e668040b4509c87633cb8fa81e1cbe6be4d409a145978c7c02cad82cd618ea498b9a518e6d01a0cb1f4496ebc1d646c55602b64b9f26ba68316f44227f9783184fefd3e4c02927e110a24e6892a7cb6ca90463ca11c87b4ec67ccca2f2729695ce18218205ee15375e94dbd897f00b0692be9faa962679082d6e3101f5461590c38a4748acf3f33a1fedaec9f79cf1b85f86ca0cae1fc66888a77cac4dae2b9e524ac62c2090e5c9fc7161c2fc5d3f3240428850d59ddd65a7542896bf02857417a7c71818f3ec7a8e5c8b8411c3cdda07078ac454178e02a51426f1229270967f35d345f5d7fa364ad542fe89ef3d214b347223455c1e8d60c951e6c4d0363d9cde5f4d20e35e1cf0a181722ba719f030ec12d79fab67a6e79447a5ea0dfd198c4be0b79da2e60a97cad1c1a01bded2de7ec64f8fb5595c4087ac9b0a5fd0f538012739bbe806082fd9b29fcae08a9333e7f1f4a5f7a1c19b93879afd66987c3bb8be70aad5232267c7c665ee2f976f98010cbc9ca85186996696a1a69f27c719574e582b97bc608ac56ebe39e34984f8ecd8863fb3486826c916a6c8f4fde15531ae5345e8b546dc2d25b6d9b2fe27cf8a9e9eb77bc17dcd726f0feaa85274de00c0682ec695102935cf40789997fb97d4f8e298715603c0f7ccdf5b03520f1b826402a346a58c6d228a1c73b78192ceab3ffb542fbb7db27548900063117b9262220ae4b64c36a33895a9a7df535002800d6158716595d985bb17b09f4235157943760828bdad6516032ace9876694e93ac722301fd0191cffb01af3a43bd2b12b67dd5bf3a71f4904d15a89144d7bb6a3a3e5a4160ac7b6dd77d982d11a59e7e0332b1236ad638370c3be8ab4b25321a39324a8a1f05b7881d928c600452149a191ac371b80a61f560f1668f9f615b25c76c095c5492613898071f6dd636d05fc23dbf2653b12545fd3c58ef985d8f07ba9a05169e46dec3d0370707ad5d057b82906b1e2fef65c322672eb80d33a970e0aa495e038d3eb510bdc7ae93e81d768e275dd86f7463a5db4470ee22fe5093624979ac42ca7f18c557c0270532307ed8d4dd271334e1234c9c4d1340c359ee1d6c0d369c252bee64526b5dce1a0226b4e041d719a3eef4778e3578d714a5e38cda0702eb509386f794057802466d05be6b06892d393b3cef1c88f8efe976c0098cc4d70db52e569caa57e2351870d906ea9dff1ff52465390572cd47fb4e69e852ac8a9b5b355b8a5629de6d89fff8254b78b38764ddbd2e4d5490706f46385f48b138d4487be858a02779532887f92b3778279ab558ffe15bbb4f652c5b64c92c79cf5d618d9777e748d00f75660199fbd5880923e84c2b6d02756a2d4dc545fd916a7963a6fd46ad6178c0d77a4e3870182ecf41bd1ec1cbb3a779bc72f8ca01bf628eb91e30c3cd1126ebf79ecd1acd72273883ae85c6f6e319b95e33f030d3f103b7f497e23a79ae27446ce8e49ab4f6de2decc2bd13998081cb583fff351442d4a4399fa42e723a1de465a4364d2ce3ac955a27b78ca6fb2918cc3d8f1d02ea19f4b51343d9cef4cc7beded84a033b5bedd2dfec31b6e2d2e1d4beee3ba7217a6b4640128117322dbfe9ce46e390be732dae2307f2468754864b1a409047e6eb92ce8e7fd40443a4e3bfc2b37428e98e0f092d58398fcdf18f2817fc4e10918acec18b63f36f0f6fc377315b8be53f568b3b7fef826726ac4949c2d7598de73db9ed3430fddb64ac002c3c2a27489bc1897dc04b12003bc15285ea2520dfe3f80626ec72b73007dd47b2f838e865320a8c48be20eead595070464dcba1b1e1495557d6c0351a68648fc2535bcc2836826d8c91266a95570ad250f5873fe35279fa61de8625be96afad154e6708ff63ce74b4adcc94ca8c9488d1c12cf68cbd9687c155162e31b439ad201c9d8474caa4a10ffd7b3a1644831e760d89f5babc837be40d15beed22faa09792df534e313fd7c64c94b350d56a92ace7cd72960a8b34be8e3b9c80fd2c2e3fcf9cee7cef3f6f760ceab829a45e9da374989546c1b2ac22fb544a0b778be8d509f4d4fbf2381219c95f1cb0f0d1ed8284412f711f5931dcc47254d95c37931431f827c10ba4cc237f7053b54013ddd66bfe1da20c426c66af04e5f9d8872b608ef6b8ba460b47e33996d52a3b235ee77724bf6bd81b168d41298c7f099306a2a41da8c5990023aab136ee3c93261c01b836dbac46ac169c6f58d7cc2b209656e402453e79c824001449f9a58af80cfdb630df26a779c4aa0339ad0c84d00c86010fc96e71a33f79b2811466864c89cc6389e5125700248cd4b8d7eabcedca1e8815ffeb51a2ecab542235dbbec2a390f3371857158f15f733b1a5938bf7df7f1997974a8e8be501802264a06d2ad21efe05f7081a8227830d20d475b24d9ad3f820b9fc4ab9e6a58f8d741dcb25ab1ef41248fc040d434a85447817cf1f60f7f65e0ad2389a2b249c74caa691749e29c4a1963133d26f42c6a84b9143282d73616539444237cde2236c9f9bb8328a24e092d45b07e519be667d168df2456e95d8d92cc35ec5004ce4ca7d2d6b9ba498b953fa0e480a1748c4c4025f8762e68613ef72b930c2cfb6fc1964273d59f7c2fd4be028257dc0c3ae6c629de52c188da8f83e1b9da0e28c717416bd63fbd8b695b5c85a05a0295d2c0ce4ad4665c4778a8b82e0910023841a5e1597116b26054d9a7d8e59166716b5c0c417af26d9dd8404641d8cf05c80547bb7487eeefa7094e986475c1d1758024a7aa979c54718e0e5b9b7c2f5de8b74aa8ae6bd3c83f6a0856463644e99964d95c544cb9d0806da468181e678dce4388e8f9228ccfbb9c64f00e2d395eeb87fa5642d266073e8528134e0f24e44301404d2ff6253cf3ad880f27a3be160b24bc73400e3c6d5099b6ccde0a2f4766e8af5b9a9421ee5c708718345dda708b197f8d91a4c86b37852e0f1d99563e71ee21bc0e7c7563a5f89fcf2a2cf593ce5d57d271a44d41a1668623a1588d4602f515d0ec0e597689c0991c165674d2816ff91efd9e1419d83e271c1ece85077998a752a29d418be8192a04c17c1fe808a002752943bed70145ed7258ec9503aa3788fd66924b9e5188a5e9ea97bf0dd2a40f574759fcf8a2b2353ce0103712f44cd51c84493046aa06a48bf791d42d12cd87c6b3a9db2e198d87006bd93aa9e3a8df363072ed365aa139988630a3e4cf438423dba146016ed0e4e3cc9b79cbe606b71e653ef0e330d60dea000649a824b60d6a56de9385df868f4c2c2b45357d08400b0d7382fc33e09b2af9012e87472e18b8c0610f281f409d3d859768ce17a30e36d44bf126cf430baf2c38f6cba0edacc48a229f0b5592b75317366b1a342f783fc62b4fa5222173a2f3306e8589cc65f5374a930e1957c4aaae0fca271e69dbcf96ad69eb20938e4ca31b25cde08321fea41e66bbe70e38b6c14cdd8d21b562b44dbebf58f3ce7ccc0f639631c00f1a28f84ce1a129285d8f482d1b2b49f10be5abdeb8809bece3965a531f3755de75a0ab93e89b3a5cadcd46971165d41eb25728c383af00f41f88358b78746730429d2a7820a687eb3f73e483a6ce334a398e911232e8fc2d12237f9e3be2a80390bfb8ec121ae8fd164eef08abf8a5ffcc2570ecb64869e780d951ddc7b1a1bbc8a7a301e6eb8dff8f1d1909687ef7b1b4f13d1a8eeca99f2cff61277abece4cb1342814ea0b4c36e2a8a227018706711822109e7e99a996b444860ddb8a15fe4b7b61bcc0c950ee2d64907fc15651f561d43361cdc172d3ff894c268476f7c5753abe8da0b27ec2b098e7c9273ba4bfe652ea04c4794826c4b91e882196d6671015c46fdc2f21333d822566af306e6b22b758ca05288b06530d04bd1ed5ec04205da1c88686b6d910a5e21563c0b0bfd1052dd9eca62f08955e2c8f989729e70a8a0e49d63bffe433de1ffc67662f4b703cc6fffce9e3405fba96cd8394111e0b6259c0e35e3681250ada567c6a87d2cffc8ac4f45e3075374b7c50c2496a0cc005cb180ee66b6c33dc84992dad3295124d7e311148dd5340168df1c8be0c036c9ff62f56b0cbbff7ffbbffa7de72f76efe38ed2883106f8a4063fa7d1ce4f75abe5eccb123fee35268673fef679e22470214681855518935dbf2c7f3459c5e60eb6f9fcb1456f49f7ae101e4456fee004e38f612543ab2f799139f63c05f3832018894c1cc679fd73dbe2949f65403f225eca6d13066627c1a7570a662c9e1db4eccbc7845994f0afa39f279419547a1761c9d2f4a5f3196f1acf5e75b30e0d6c2cfa7220a0d20369d7cf9b05509d5c9350064a65f565b5b47ed6009cc61fe0c3840d700ea657818cd47f96934fe466124487ebc487fadee23240bc90aaf8c9cca5f6b6d45457f63c814269b60faa2f5df2ad393c0136c96dfd9a9d03ba59f5228cf8459ec3dc942009beb6ec6b7a02e2841a3495ac87717325781c16540fe5d8857e912fdae31b28b6d3157bdb5f2f53bd5080c7da5e5146096043cf75ea2266c93d07b7095cf94cd4f28bbf2cf77ea6eda63ab79ac0c417fbbd8b3813106c3f253e23cbf8136bd687083960b618f88b0b0ca1e4de619d684b139e4daf1eb31d87d5a083645bbc1eebb3c7a43ed7f6c865e0bc10edb829d1424843d042baf154aeecde158841526ae5abd970a5b798e00b0e71b57d69b54990a0f0a0a94beb130d4da53a5b9f1a56cef1141eaad578dfdf4d46a165ced6781af25bb5a7bb3e0de6e1edc87fbdc5acf1cae16e36aed66c1ddca4cd47a3e78c35ace5bc3b199e0ae4471b67dd5fa83ed09f863ae77873aefaf574bb3c0d57a1e7c2d99d5b79b0bbed6f3e03f5dcfadfd2c78b518566e6716fced6ca276b3c3352ce5d6128fcda677d20ee66fd1934cbffb99264dbafb06f5e2df7c2d5be09a7ebea2a9ef972aa7e50a2b0466c4374de374f6d0e5173554b340217eab1be823463b3be432e34ceb9702a29392789517baeae5aba3a2c3cbabe3ce74e3113603b26a0f5313246f2d71613a947289e7f6cd96dbc3779c8b4809de53fcda1b066259a6be0d0b4bf1e4a6f4759669b14ccbe259f6760ed6d02049db2a06e5f0d2dca45907255b510f126f8026ece6033a264ba75b20922ae21ce929de654e742f32037d439a2910342cd919d43b44182ee18b2d28fe50a7af73789f72fa771f718779b2180e4220105585686b4d4f66cdab4cdbff55b894140e96ae27464482ffee771fc1b7eef772edcaee2d659232200a6a0a740a58fcd20b29bfa5fc9291d78be2d7192e35c61f18f1bb60fcdd7b73704f30c61863ec34afe12a45558aaa54b1e954c07fd113bcd8ba7043124e0eeec96d87c7074aeede7bef14174c422dadc660dae7a3eeeebc5ffef82e7dde13447bf897d1f3fb21e3973fa4f4e25f7d7e2890f2c70f227ee9c395aeb393aeb34ed47566fa9646fda9c967e9d497faf4a22edfeed579e3d2f2a1154b53859a309a1f32f527c8b49547b2933bfcbc941e822b7b412d4e8963e438464766b7fc97f77f79f9145ac4f52f2f5fe4f565695f34998f8e703cffc2bdb88e8eae4c75aecc6f3dcb73538e7e5efedfe5ffe555a5fe4fe997972fff5f5ed5faf3eb787eff826b2c15335899ad220885d31d75ddd1c9c79f1cb9cd751ce73cdd29973bf99ca09c7c725766b160c961c961c11274cf2f1fe11ce11cd9a3f08896e4b653b3e9e0789e90a4d8231c19aaccb2618f70ec118e3d3af27cd4dd7dfe8c4a49e2b2dcbf3c7e4fdfd46aab3f3f7c8dfe8bd6ffd22eefd22a7be4398ef3ecfbf6c867c88c731f73978f7e90f251972fdf4383a45ea345549ffa1efebafc179dfa97ae3397aeb310ebbaedcc74f1b0d8d2a63f35ea592d7a7c5393afd22ea5377dedf4a8b24c8d4f7e8b2e53323deecd8dddd2fd51fc1fd0534cf038ba90a52fb5e0f3f197e0ca5238e663d663133ee115c618c36067e28726edf229ddf244bc2f3df963e94f6d67263d7e4a97ce3c96fe04bf661f09392b951e09391b2b50c23f627cefb518638c31c618637c2dc618e3c718638c295063f093c0446a83ac5063f0bbb63487e118fef00c4312c618638c31c6382481200882f8757031621c821a83f168f37d68c7efeb78fff3f73f337a3396749d79baeed59b5fea3a0bc514ec5e69f24d9d7ad5d516c88d8b4bcbd75977fab2052db57963f8531aa5696e0cff49e3d2283a2dfb7806cd643b706526d4d2489416e6c8377d10f24d6fdf8416e9b16810d38768915391d4911969b24037d89ea14e4040a6bf6f89c6bfe23b8ee738ec7e9db9948f7a95aeb3f24d1a4592a827bf24552d658972f11a0b850b5666a300a2912c9009e3ce02055df199229fb1b68a25b26258237b64b37c5dd7755d124cab355d0b5566a100813ad40261a00dc561f765e4dffb21a9bf4d0457bb89e0efbefcba49d274d382daa2a05af3ed7bb240d769bb237df8b5f14b50ac098eb32f10f2cb0f427e9922bf4383981e851639a1f5c6306a7af045d28f1f7e09359546312481e6c974c4f392125f8bb73c1272467ae486996599fafb25b8b2726491a78f949ceb14eacce553baceec687363fa14eacc841ae9b929bfe507b3224766e5a7b49df9e9a45ead52a81197ebc73792fad5d7596847f0eb982ba082054830bac82170d98da09a4dc71aed54239c9c1b2e7b43d6c8a631746576ca94a1294353a6540a5c219257a831344de4fbb41a85a004359b4ecd829373c389e1f77ddf0785f4693522ab110f3e3404a46a44f2fef37e85eecf8cae70533b9ff5e0ea87a4d0d50f71a1e3e72b4bbdfceb531fe4f529b4480ff8455cff4283bcfe052d92cad895d2755667e4a8d2a56fe9d34a933fea94d922aa5cd05a0b7adf84d1984a63a6a58e90dc2403b79da7ebd4525faf16cbd22eea6ff8f72d8fcda5fe969fda1f2b85c3ee03e9e062fc3a3b9dbef442583fb2bec47a23ae3f7d9d85baf4bace5c9f405c9f7a21ad47bd8f36297d3e4abfde8e2710d7a77e48eb516fffb59df9787eaf17b4e6f261ad277f0d0939433d923c7bc1b631ebc19199a11e093963d9a22b3bfdfae95ba73f9dde88eb53a9afb354aed6d31f2802021bbb5f7950d5f03c9ae7599ad32c144bbb8272cfe2f88cd79c56c55629b2558a6c155b655fab821844ce0fed6c0b35e6bed5d6e6828ddd0f69f7da273689bdd91d9f1c9873ce76cae704c9d225cb23b533ecfbd6d23e9af7bdf77dffa1d5e6bc39cfd74dad66becbd7541ffe4b9fdebfbece4e9dfaf3851a697d0b653dea8db8d0d3434f20e79f3e480b3dbf3fbd6f7d9da19ef5277a7e289105d86d811c76dfc64e71d8897a21a93f5f08ea5ba83f51233da9afb33f79688baeb33ac33a2cb5f82b6d7a538fafd264a84f5f47202dbace3a7ddea45033b3c59636e29bc627bff4a7148a42cd1bbb0fa33195f41543dbae3028703992fde404d1be1fd677d4e2ae0acdf7c396afe50b31bf0535f27af34bd4484f909791af99cc41a9079576e804a27af383a8de7c7f132dd2e36810f34bb4887ed3fc222faf42557f64769f6ca2d21a7663f75d7f0b37b209d92521abd00b78849a00ca5d936cc964d5a776c82b83b9b2f25b7f597fdf83ae6cf52d9ffa391239ecaa0880be49f7749fd267f7fa5f4feab3fb97ff47754f0a7556335ff5302ddafc52ab801c99959fc29159891639322b627e90096c11946b6156aa1e46db59685ddffa3a9e37a6a9fa1e8e7a35d68c1a138495d9335028d20e2748ff3a923eb422c949247b2368084a1229fee340247b1af2995390cfd4211554d9f74f559a9cdcdd6d907b2da816e435af913cd41a3141fa3b8adfcb358b7e13c5f0fde6b2fa039ce3fc89e77c8acebe2cd8a9efeccb84143b751f267676ea52f6f51fa02b86f50a1764fed46f3b9c20abc3ee5b20aacc790053f282a893400359495f471b22a4cf2b903ea33eeafefea58da8be7cad8d94affad746f4ffbf68232ffffa4e9ff9c1ef3e64ed9001197e880e6009126f22f88edeeda6563bdff535d6b75eeb9e20aa2fffb511f35bfe45f704295ff52f6da4e5cd07b510f35b3e6b20e6b77ca785a8be7ccfe1fce633e4be9f9a57f5f76b77bbba3f5df7a8ed6ce5b934f92d9dfa539b9ea551efa24bbfd2a7ff740a7556ab999efc1aea53efe9f3c6ec54283e6f5a3e853a6b792120e09078a28d59f961e94fefa28fd066a647919faab5d0fc409d7407ee9b4ad5a8ce747071521d2179f945a82222cd1a638d58529bc136c10972f566d63a90083fcbf03dc208af888f2793b58244f4b8314b93f3261f26c478e3b664de7c328b32244cc4913f9c7c40f520d626992499f0a02a4973a50391cfe01b5090e40ccee1613234a1aba479980c0dccc4e1a5e4c5f6adf2063d82f9ef9e2f0d3384506faeb63ee92382f9375a0e83784df261b0fb428c0b395af8561460196118f62331c6d7ddc5186258b23da118668881468af1d620f31111198e0103513e822ced2a84a40af00992275c80a489179024410a024910486e48ddc85190650f72112996917fb0d4802c833c3464700318a2b80086140491e0ae42300c2104430e2e1082e1859d925cd476d0c3c320a9724e8d487c8134ed2a54a3e2436b53c61257cb8950d48e087720c95d856a4dc22b48d5ae42b55aee21c735a26021c5801477157a61c86b43e8851aec94249921f4c20f4992422fb0a03449d2147a4108a1176c9f1272b58638033297e1b1419658dc408e53c08008d2655721178ed81f102ee800ee801c7715724106d0863f207d904516599c91c519596481051658fc80c50f586041b21789aeebb08c176402447bbb385203131ecc90a4090e62a832f31408b9e0ca8e0e9ec842891fc0b85fd7e12fe71f2bcad802c70b2015ac3153018b1974e0841a5c4081e4f3c185864dbb0ab550c6b6013348a3892441cc526bc4430d2d20c3091a8c1803cbcc8df4e81c19d1844910604c21454bc9263d89f4640f4b6cd29b326c920f5636e949a30d096642dde283a38de8ad2f76b8c3cfa34d6849371c56cd2d4c1f8fd59dfb010afa19f298ce0f1b7c198e2eacdc66390739b919f949d9df77a3cdf7b4ed754d62a83e85c9133b962053738ab9ed8806696936b6445380e17d9df204872b29685254c3047a7230c30b59f8e00532a83b5568a7540bb5c699f0b0efbf724d0e9258820c2c423de4a0a31234860dd585aeb1efb73295246eeff644ddcf3ae0c1867d9f456e51c612bba2725b62df2443d452f0a3c6925bee880aba686309366ae849a28d4f882b4ae0d042ad51592b3b74b16f3e62c4cd054d2871031e5c609b91778a104ea4f4e4e84087dbec0ea1c0bd7f83d8f7de7befbd6e41a84285006aa5e2558a1c92808207393f6cffcf4163fbc3964cd9fe325568890f8474a0b25d6807226cfc0a2266a8d91914cee1857dff34dadc1c83efdbb6dcb1d3160d0ab0abd0f6f7cfe40f94c860fbbf901236b6e330c5c669cc28423626dbfd4da38d9b526ef84169880849cdce8c38063748d937033608a3e796a4054a7233520630e88c8186129c8f1733176bb8828c31c61f5766ba87ca7841a666bd627187da38c64f1a6db01d63dfc7f7411808d9f0c4f62b5fd8dcdddd83d6d8f7bdb20c7ae2052d0c1186132e08ddb48042c5133f28a1821dcc807eb803b15d6807db552f2053d3b4e64f0d56f6fd9ba9c460b33856c3937dffba6b11b4fd66883bce91e407fbe618c854345b4249a66c7f17cb1b5f3cde49a0ec2a946467a76119dbfe08bb0ad170b44393d7c7f9f1e92802aa5944d64c1a220ddd545988536323c84843d98706cd501c967398fd70c71532bd401bdb857dd1d303da2929cbb64fcae23398f4f6436bc5eca3a305e42561c75fb10d2e02d41d5037c5613f53c8ff094943579693a831fb518860b0ed43b1eda72423d2d095d51951d12619659f9007873c2eb35b10853e527c06c867aaf84c15a2c186b333d87842a090270c0a87c419be8e4bc263f3c9c9f1f0c304a849908e5b4154eb5ef0a59191c848d41aff6210b78522c5e2a4c05dc122c68793edd466d9a4fd271f3c22d1b2cfd0b6ffa5e133df51a67d47dfd1d177f41d655ac6c9b6ef28e3ac8fcde178ba17c8f490f9113ff4d95eaefbf101da6977eb703a9c0e07c776c36ddbe1743e5638197710a7cd46f4e6c6ecf831fb0d8821fcb41209193f44cf9b3ade8ce8e9463325f6459d735ac76752c76dc75d59269dc724df7ca2d08a8ebbb23ae371a06d7d6ecc7641f6bb21fbdd4f07d424042c1831a93520f01fff394b5084875a731f042a542c0bb046341aad8665bbae58362d0727098ecd96633bd282115dc4900318d6688109144f1b32108d614390129ec4674e7bdb5627fb64a0ec934361f8da559987de18214d6df73a197f1aff87d9b781c426a22caf28f7e2aee2ce33bfd1a6345b161625256db5a5fe461f76e7d187052d0882b52b651b80eaaf28e350180e4087bc76003aa4bf834fc40ea0091bfb7b9f810b68d85624d279a85b0f1b81a6ac31f7b1becf82a9dab743c9961b54a0fb9808ef23d3fd1ff7656872372009020936aa2c39b2431241dc30c5173390d1447a64d7c718472ddfff31828cacda20a8078d236c4012850b2f43d0ce718564c8edfb3b64f0ffaebbc7fd1f411e12ad5fccd7cbf52dac96cbd9d2ffd2df62e3e2f27a97d72e2ffdf2abf37b21e3af5e48e9c5ac5f5abb6897eb75dac5e5de07ef83a88fbabd8cde682d82237715befec84cebf3a27fefb7fcff9159085e10cc276e0805e63b84efbdd7e5f5077179fd689117f4bc3ffeea5d3ea3415afe851671a1e745cf0f0532feea8394c46ff91e1eaa4e75e66d53d759cb5a23958b8bf5a80457d6a2e17cec8d2737e5e8e7a54def6aa93ea5c5b214bf7c5529bedea512dffb5a99b2403090424a8b1be4a31b41496e3b444f8e6c3a389e6c2d164be4582c50c502b4819a6f824c807382a312d092dc766a361d1ccf131fcff33c4f4a3daa472eecfbb604472056e5d7d7cc77592886a2b0b1fb29a02a3eb5404354df4287886f6f37b67570216a23e7a75ea58df4806fa4f5e5dbadfad70751fd0b2dd293bf48eb552eb4c859bea87a971681b4befc20adf2413448bedbd3795ba31bc2301445510cc550145f0c4331e7fce54f14c5f0fbc2300cc3300c45300c431114511c8661288aa2288aa24802df0b499ee7a1257018095f1197081116c8edcf828cfc54dca5497c126587949e46860626f3b0a15bbb3487dd1765e25ff24b76c895e54c92a6f97f3a911f92e2a3f5c6509bb35f5830ac181e4bc3635daef38a4491fc1e1ec595b001b84f6a97e23ec563f743cf598c31f62c39cf65cfe5aeebdec38ff508502b86182e739b68b3ec7bde88e21dcf0fbd0943f24bdaf2dcd46a350b7463f7458bfa22321399c6da8b05a40f79ce7f6a0dd0959dfe12915e6444e6dc7673fa1e3e6ac7390f4ecdf4e38bba567af1843a8e5642e24f3de733980793e8fd0b23ef902bcb3993269afea7b0a1599df9dc9bd26c1a9a1bbb0f8bdd9cb3a3a6f05ce78ac5f2b4ebf52afff52dafd235924016cb033d56187a610886a0e7799e17924e10649da4f0237d5ffe3289442291c29314862412e94922b01bff09d64ed68761fd01655eefa279100692a00992becf2299f30a777faf57a819cd209a3e89a54f127a0271b9725847129a1639354b17b98cce67bd10177a86fff2af3f6bd00bfa42cff05f2cf40cd11388eb592fe475be0bad97f53d2e49af50db68a38d2c3b24ad7037095da10020ab8e209996db3d0fc5e12a65b698252da52177cbe53cad2b25b25477157465e8e6ca3a70836a5150a95bae5370b53e5596e5b74a97eac5563ecfd24812149476068bc466bbedf848b14db1f140c9fd58f71cb71d5d99c582e508cb11162c456a162516a72d0ea1edb6e3234587074aee670aa90af8a9b595362636d0567316c1918d57affa9af9a2cd66b3b65a53daf7cb3f75ea5feffa212fd4859edebbbece86d41bfbd0d373bd90f25da8919e20e7a7de48ab7c21a96f7d0b3572a6bece5af4f82c4dfe4a97ded4a70f557566d275867231bda8515f47202e5d0bf932260d0e745209dc09754225f122d48f2fe4f4243aba5e8f424faf33d4c916b5cab3a8e84472c1e1380f94229fa2f3a5f592024ab7fea4cfb7ac473d0cab3ffd6b3b6b7952ebc5b32254a54aa6814c6d516e17e52a554eaf7adf19bb0a35e1b3ad18f79f789fdaa22f8a8a8abc222fe7ecbd378025c8cef5fa170bc8fc2d5f7379d2bbbd4539ff12e495c24495592b5606587cb7def5435a3fe47cc7b9b1a29b1aeb571fded1e60675fad09b166aa4e77b23ac47a146567ffa1e9e45d6a33e080bf51f1a6475fa940edfd4a55769f15db489a4eb6cd475468a6ffab2458f4fd2e4d711080a754aa1d013692a8d6248c27d4e029968ab55789e2d54d9c24ab9a84c951ebf457c9636b5527af5287dbe1d6d4aa5f34bbf2a9ddf72f932af56a7af4ecff3ac673b9b7b58f466753ef6d5993f522691c01e6708d01e3d7aac56e79f9aa565b40aadb5a0254a96ce9b540aebba5127d2541ac5107524fba8067671798dab961657895f5a449b7339fd4801745e3d7ef9424a4f96be2cbd9157a8fa975c962defd2f22f22f975762afff442c427c53f896fe4f565267ded8e8f849cb9d8a23a6b27ae7fe92bba5abad6631fc9cfae14e7815e9f1bcb4139a2880c3e7159adc77c243f6bbdbfdec5e231350a3f5c35c67e4bd7aaa37b12db1182924bbbb54b3b400f1e3c385037ba3869b88cc5d2399a2727dca02137087637f1e331da64cd04e9136a27ad27e99b835e291ef307f5cd2fce79b85523b733e87dd0b56d0fbd41e4cedaea1ca3cd0782a12cac43415c1b56f75b1ae767ac1ddf2088a61d0fe690ffede67cdf0e1999ee669640996cb4095f36fac0e0eb80e8b529204b7aa9a49d926d437004182cfcbadbb644579340fd7af3bfa5f34b7f24dd32f3ae31c184d146d429e967e70bcdaf660eb133b593177a73ae0d083124e51cc933b513d65bfda42d80f705186dc01eee84f5a100c4ab495af4727a587026bea2ec105927eb14df85d67a30eb7988a206f7d5a0be57f425ba31928be5c485dea01b6365f40e7541a61d0feb00e28b0cd23e698b5f6bc7b3edb75e9a557190010860b3431fe201461fd7c6430c35b877645bceeb860b4f103f5067ede4857630d3b56db800d1d321018c8032e3e3032b82b111a3c5706066c0ce80a1014b03b603981ab0356047b0316064c0ca8019c1be8081010b032606ac086604f301ac8ded0f630366043b821549e1918bd972396c3c627e604505286287070e07938381022608660806063031807102660a8c0c606600f3040c100c13304dc0bc00e607260a8c12304bc04881c9c1fcc0d400c606db1f060a981f182098dc931d3c30443c30a21d301b4cae074fce0e9bed85f3e2e1857bf1bc94bc7078e5f0ca792d79e9f0dae1757bd5f0b2e175c3cbf692e135c38b86579217cecbf6eae1f5c3f67ff1f0b2bd6e2f1c9d126e2f9f1b8c4f0928d16b3b21e91bea6bea2b86c3fc5bfa6a4cbb31aff558243f7bb55ae82dc1d2c027bd3fa6d51aefcacea7e1b9319fa1c939cc67689660f9842c7d7fa831ff535f9a25eacccda1d2e47ce6875ad3e243ad71e9a1d6943ab526d5a4d6904c6acd89875a83baed40c37365377763ae43ade996d41a534ead1973a83517875a535262ab35628e67efa497082700eb7dc8fc62bbd1368f72d8e4c2c4819903138ba903b30bd30bb3e89a59d4187f9336b5a8315b842691d5be456d5e61dea0a44d2ccc2b35c6b5dd434e5c5a9f225b8fc347857f0a51272dd42462996398656c7ff38bef4f6d12b1cca20f3587ac4d4282c559d170d2176dfbbf74ad3a4870f97443db3f748078756800f1ea96ce99a55f4cc163a4ced3e0ce31fa786dcf3e04c4abc308b034296b272c941cc2c326a139478c04c4abc31c396262626ee48c70430cd20f05c4abc31bf1eaac9d9cf8439db87ee572e96b45bd5bd4987fa889804f8485bcbf67c1748263ce6a481ee7f17b5830b7f9778b5aa3d2a2d6b464516b5c6a4df9fe178b5a93ba41ad21afa835a75a83b2a2d608d51a6ca5d674b5667cff4ba5d698ef7faba83554d49aeffd6fab9e8023336b7d7abb2040ebfdc317a871368f34b361cdd8fea733b63f89c6f64fed60fbbba8b1fd5bd6d8feaa231f751ea3c690a1731935c63f67a3edf98b1a03460e238b5163dce5f52daf2f53af47e53fe52733eae48566a356f6416e63fb67362a0fffb0033fb7f4d17610cd4535c6bd6dd241626e6840a6a0ad54b275b94e8ac3ec9f3fbb03daf663c69fed9dcf0564c04006c48f94430db074a6d1683eb3ac9db01e64d19a20d37b833a9cae1e638ddad618960e210410c8cfbc7103860492401b8a6aad3fc7e6dabc20d36bb3b9b91ae3af802cc8f406e5b60755b943f74a7e0f7bf5e5010a4880ea878b8f1604ccf0d85102093a6402d08110687e544e821a42d34bdc699bbfc3b5cba80ae2f6351c0d353c0df77befad686caf96b1bdb49eb1bdae0b1df5bec71f76dff63a8d3dc59f7aff7d88bfede12eeb94854fbd07df754a821944f1ee3eb7d7d3a96fefd2bb71b62725428caf350188ac2bb8b5de7befb5d7d2e0c5bdf75e7b6dadf75a7befbdd75e4b831739d6676cd7755e6bfd7b2fae0ec3d6769eb5d65ebd020a5273771ef62c2e7380ddde27d16c20857a7c88d140a6590a1ab42a661c893890a65dad10b1139a31623186ccc6d8f2d85ada16efa039c1626b6bd6da1e9c6d5d6cb615c75a6bedf745f17d231811c5fe1e7fdf93b7fd1d81657f4f52b0bf273db0f9645ab3dc611e462c71c7473eeb196165a6e86a0e86aa90010b942fb00ccdbc0744b57dff00f7cadc7defbdf77a37286545d88a0083e70a1347a6e28d19d2b624d6bdad7dbfa63b4ea852ec5ca93284cfbe4f9a4344b1ef7f937d8920c30913fb3e4d0dfb7e0f9e20b6900fa61d20b6df5b458d7d6dc8ae9ddaf62352b418a2c9143880c224c9a6e2f3c212373192c030fb78f6cd72efbd374c6882b44214855cd0ec38c1da9c50a62ae88dd61b83eda0398188fc8791a69fe143c318fbcb082704c41738a1205e00028b12f69647a9b0ebf89248baf36e8ab7e3ed78f7e330115a9d946e8ac32e0e1cc8d4bd9d199047e6c5eba81dd12e244933fded686afa74b9eea703aa354151ecfb5d159f39edfbddcd469069c6b6ebf8d2bace5a9abdf65e7bedbda4bfdf5f0194d65e7bedbd349fcfc33568b8fd3282f42756b33ccd1dced22cadeb6c940e67695dcee6687c643a8b83715706c5677085c14e052080dc95d1c8c88080844c330d4725b497e418e37b3178ef772fd9899e97b2b0bbafdaab5905f1bbaf033059cc5debc5dfcd2ecba45abf9e78083b90faa7f8cd5dddab4e4b15ccd064bd77f73af7bcc7c59f76debdd8dbfefa7e2aa6296953bdd360e7ee612d629dde7dab8ba0873ad80a86b7a3014924af03c18dc32c7a3b6464c4b1ebf0b5f792ee7dd298808b8e40ba3296ac942ba56a92c2e60706ae2ca34182ecd803b2659a30a924af77c32b76f994afcc56fcd6a23eefed775f69b4e95048008a5de64a4a0c49a058bae1049a4bdaf7de7b71ada7abc16dabedbc2c23f3170587b9c523c0beec9586c81bff19ecc631c8966982245c6641aaa1288af9dafb35571ae4037868108ff9dba04a105ca58624701483f8eacd601ae469572120a28041e6247680d8f101082619252d10378438d77ca3e52c0610b42a382321b8224f089324c31f31179190387d4b7e405ccee929c9651c8ed8017d6ce01f38fc785da4ee0f1d70ba2c2373a170b948e64ce6f878ace672481309d6edc7129cd00f26dc8f1c783229e487db8d27c57c8ac2ddbbeffb7e20cd5dadec6409bb20ff8a78234f34c82d204f4a0c81c47785148500bd20c35dadecdc7a40aa76b5b2d3c24e655e20f3ae56846083740459dad58a10618c4c90deae5684d041b9ab952757c8c0bee93aad426be01b7a18a3f9ee105f77c7b67e57e81a531f63ef50ebd55a6b2c0b40d7d8352bc6f7faeddcddddddbdd65a078084b4e68d7477af35a69288b0d62faef16aec5bef6c06c9132d56693a2a0d63e0ca2ccdd23a0f7bdf777f6671ac2dfcb248560c785f0e1b858ba2506beaa641410a220494360a35c67f00305429406f556baca56d8cfaa785f76d192dbe92a5d16a4d157b08eb8deae8ed7ce650c8d4b4efecad09e0b66d6c7c3d07f39c83fcbd5d4dff9a7a50ea3f1dc92f0d4866e46cf724db6d9324b69ff039d9690d1a4aeb95249d5552c25eede3e2c94704e952807686cf9ff01e0cb1dd8b293958f1023460a821682601202db4684387273b6acc72a660a30a1d9e7002070c90fc00a5871c541086336952450c2a4a80386296da22224b6419234388ba2548910244305063ee87b65a2fe1bfff83b441c153d481a11000a950f425597a2b6792bc5f77c70232ad45f7de5bb46f0b67c895fdb8b1fb5290da478db92feb666a15aa411a431808073825a22782d8a9c5014971ad4faec316033e93d6273e1af63d62a7a2d5f5fa30d51affd4128bb10e99ad09de03d24ae8c347045c34eb4ebc680afbb2c3be2fa3dfd70f4deb7b68adf5bb5405d8ae3fae84d705cca42cad6412f472f7616f8def52a1752c0063f42a806eac661668215291a58a1af94e25a49206952ca49754400a22c55dad38d121bb906f70d9d54a4f0b6e6fad36070f48fb16bc36071bd5d1c0452e7e4c83152bb5abb00ac3b8f35b12e1ab628194fcd3c2d7026b59d064df9ba9c8b182190841d18132c6be4143442479cf3aac58c192266c9cbc54a8c4d0dd10520193ed8ff3951d66b8f7de7befc53809cf8931b2b0e2a8871b30e181227200430a347888410d6b3f23a8ec8c23dc48e5b8123a564c8420c2028d2a5dbc5c1094a44992a32bb25cfb15b185cebe28308492d0e1c6762fe140ebba5bd775b9eee6b2175a87eb9e74537e52a0829d763b3f299862a79d4f0a82d86927a503eaa4e882f6fd0e5bdb2551611db61d0e1cfa76b7cefcd4341f77e6631d1dbf79acc337877558c7615d87e21cac23021364f7ddcd67caefbec35d9908df8923f8a40f7f04001ca1a5af5706433f1cf8bdc738b659f7b87bcc73c3ee52bbfb7bd4adbe8e3e5e3a64f73dbcbb79b7d3756fba38647ebbb1fb21bc057249ed1008d6b2debecd71990fe9a476e786fd202ef3235bc580f9b4a6817e5ab3e84f6dcd2631fdcbd35c7b0ec1ae0cf6b1b7f7280434cde6abd09454bd0b9a9a2d68fa2d0f029ac252682a8342539a8d73dded84a699445372df40330983a68fa2294ca3a94ce91f4d692e1ebab1fb5784bf8f8fae4c84dc0b15e15d686a02e05b684afe89dea111c80c00b4de2311d0a37d9f758f6c2e77f1e35fa169465312bf0a4d4d17347da21456a2a94c0a4d69767a8f74367e54ee94b34f367e32b7efc7344c9bf46de8ca6a2da1290dfe114d657088a66f82684a6634cd3bed6e4078080f0dedfb38b43dba316c69b823bae1658ec9d62afe2b11830ac33120d3d2c5f2caf6f08e3e5080015971b0a4ca4e4b70973bd718987aa600300380ad812548d458ddb705155677faedfb77bc3e4c180000d8f7a2f04392d89bd1c092222aac6a60494f0dc0258d36f74c40de1f0e961441ee5c632c8a73b5d54bf7db290af6f572a17f680242da31857c63d69a6c1a300302be8a31c6d86d2eddbf68756b6d610d4d369b163bf9d01da6ed8f431be486471a47bbcabc2f83a45044e11505a60d9914d4b67d143c667f9cb0bd6eeb8d08e0b10332ad28dcf80c195f05eae1b129c8b402c914000331ace9912d6e1f6df00f08b4da58b4ab5d4fbb82dba3018a18d499fbd6e2f774e5020bd10e2feebc2f83ba06e48f5ae3def658d81d9a6bcc880071e71ad37929092561ed609e674706dc8dafadfbde7dc4b336498f9c55d0f3c54eebcff7438f178e49f36557a11ea02d65a7b0a0a190ac3b246b0142b292b57eadf56b8fb0de48653faecc969dcfe073f52d97477365ac4c721c769d77758bcbd52d17f6c4d2d501f8d0d5c5f090c0a3e38aedaf63288627c7063b8c3a4a952ee22b0aa9125f51c8158b7586b041ede4f5d873bc76be07e6ecfdcb0bcab6cfea4ef16a1036d65ec5613e4454647494e5d2709238ccbe3b951ae36fefcd5daed1a66be9d167e419737abbecf8e3a17e469eedff92ffe5c35547828fcc67868bed3f43546bf06312cc1b6708219c7abc997bd4196f14c061631a0037461f3972e4784521519ba5dd47cacf941c94238a009f9cefab6fb9dedf793eaf85cf95ab83c9c888579fac083a5c96d3215e4db2583919e833d6dd1d63cd846983da89eb4fedb61bf31bc3790e77f6bdd4d6136362461bef77ba12bcec302eaf2e6d503b61fd4afbada56b4efad3739c87bbbbbb9763a5f6ceeb7059ea1d24548694b9e9e0ba12f04a7bee7a8edf5cc7c7edeeeeb8d6f3b5409b87b3a3b5bde69ab137fe491e6037e3b9ec79f5ea6e9fdae2fc6c2533f219eff3d7426b3d245b924f5a134c186d3a8c4199535b2c8ee467abf7b7443e939db41eebec27580288af2824014459ad07c43ed37d01c44e832eed41377685c88b5c0c87b9fbb96af5e8ba15ae0027ec0284577b26e93c6c6433d8c70ff1ea1152baae4a0588578b0085c6c707c7114c06980d7683b5007301f602ac068301860416030c07870f70fc00471b301a0e3670f000470f7064c17104a3c16a80ddb0fd6132c068301c1c47526439182e1783938d10846301e2d5b1bd23c339cc1f8702a157a04468114a055a054a05ad825a4185502bd021b406e814a80dd020140a340a9406a81428101a8466816eb1fdd12bd0207408057a32c3831af1e0309ac1814351107366b6cd757315e1f271e55c40b8827009e1da710de122c2e5c4c5e3eac1e583eb0717cec5838b89ab894bc77573e15c3d2e24b6bfab0817cec5e3bae9f0b8b97e6ee80f0f6de4628078358e7d6a0fd25ee446dad3f0a34bbb351e9d97c567be5ad3bdaf5e96bb319f910139cc67643468c97e8c5ada7f90d1a0ceb80cc867dce6b01fdc871e749a30e1e1b6832c7775a835e3929c1c705062ab35654e96db3b4410609555452a36b6bfd3705c6586ea0c151aaa34543b50a9a15a63fb9baa315464a8cac82aa352abbe5081a10a432586a9225127931896b2ca68a5f281aa8dedaf6283a4326aa98e48a8aae8dbe19936db8ed68faa01e2d53776e80071a55141170574631bd44e568f57286ae8c6bc870587f9973022004411a98850379dc62b20e2c527b93b0d6e1df8ead70e75e8909191e9f0b94321e2d5ac7dae22205ebdda3a74c8a876a843878c8ccc68e3368761ec01b8514687cb1d5640bc3ab56dd0a9dd8aea5b54225d09e216eca24abd6fe15a78167ec5b1a835a51bd49af08a5a23d61a2b6a8d50ad69b1526b5c9c8a57e1543896d5a7de050156ef1fd2f0377ee2177ea5cff49d3ef2437dabeffbd8b0a319df19fb4363fb97be34b6bfe9dbc1a7c6b7c6f6471df93786fec8a831fe2dfa2ba3c67c465fa9bf2fa53fd4893495d0510c5be8b7fabeef3fa3cfdb9fd5325e668d5946fcd9dd5764810ebc4087810e84c17080e4579a21840082e7ad6c376ec0c0c0a01d76774f3db7dd3d07011416a072694940f983039fd7a1f8c264f988ca5540230c5f51eabd4e43586fa4343fd68cea7fcff16b6a876a3d44f0af9e48f71e468579fd04d4192f62bdbe3ecd092e737dfd03f88ce9ebffa835a5cfb6e02e7438fcc46fb431ff133fcc1904bf25590750a7077414c3ee03cd4f0a8779688172dc76093712a0d8fe2400d59a9ce3d642d2768a8bca5cb15af768fbeb9533985fbaac9dd4ce7f79d70b92fcd2d2a7456fce6ffd0bb68d594b44afcdf6e5271529c15167ab3aec7fba5bb2edff0edbfe8bae9547da29315d3ce010381a9b34ced1f856631cbd43d74813b1dfa14458c8fb525103e0cf82b92f953074b6bf631eaacbb374ea4788572a77639e02622104a92023332895d3a34d7e962ee16ecc1f08165abadd9867b0c4a355e840510ab74bb757297e260bcc30303e6c927612b274ad67039e3e1140dadb62a0041c110daeea701c65db4f65546c7f192e01b782b53c114420690a38cc879000b0600c1a00103c1d2209248c36f949f04a106fa3e5a8f4cb57ad821632543300000000013316002020100a864442a1609e246928ca0714000f6a9a4a72583e9647c32804629432c618430c2000000286089014cd3601d604d18088b1ba886f7ab0b5c00e88ec4220981b83266579ca0d83c60b29d06a2226798b026f23a7a6905a4be37f5be622c72e61a3ca167aa9d4f2c862b6d83c0c7e3eaef28ef23db04da5453f7174cd60831b0f4631c591d383ed9ed89c00ed88985037dc0c57d2f55aeca25229f80317f33925177636a2531e04791de8b3644df08dda626665de7ce281ad4e13fd1f0d366219bf97c18f1031673c46bc62482d81c17af12d5b2a98ae9fc14e14cc7fb6344b0856e2f42a6b1a53933cf47b4df73459434f728beea846b3b2733f68b66d596ff6a6d0aa535f9afed617c36603a663bc1b0b2f668d066f65fd8ee946edaed9a31118146d2bddc46818413e14d2260f5a18809557b33302973532f7f1c7dfe6561a0614eb3b4c18d78fac17e46b705fc7c2d1ec07b4dd821822802fbc6b26899f07495eb667bca85167383d06a6dabc5b74f605f9553410afe6f67ef65136209919c32016aa9f9eca9e84175d927f922316473f1970b79a7eb401fbf13eac8d4212f5fe328ab0aa2173542dccc7d79cc7eef6b90ca098b3e4ac940254c1868722d1104bf1e182f9c928e0428dec3ab0b91aa26fb129c9c4065368d9c25ad428591bff74cd9476d3b31160156cdf6c9f1da3895739cc8c1a8c93540df74db2ce3915773c079b382a434dcc8a9a67ce1cfb4fbb2c6503fb9d883baadb7085271619c6080a01db2c745c390de0a1b21cc8577a1e8c33f970d145e047e116251d8afe9e9d6a624502f9a3860bb27a3974db1ab605496f4ba6cc8c8031a13c4e5b5b47752691717a09d9cbfc268db6c7e4809399d58677fb194b6efcd89b248b2760d409069e34ed6cf967f1a5735024898f76432167cdffd4805d6cd7d5dce146595efc03e22108f3c422a33208da5ed65946ee605bef44c9114418204ae56a5479528218faad4b414f49024f0b4bd35860a5eec7b244a6f68f645354b7db8f4aa8c091105ecb2249ba83826fd3f17f35e31a7aca288c3240beaca5ef6a9292e97d88a9355689a992760e0dfc3f01627526c86bd7a002ec8b4294a63d2d44082184255fb7f52b37b6faaf4586068e141195ecbc42001a984dc6e0a4a2c3c0b09d7804d22d5b02ebdec8ec2c21df93329ccafc0a81fb7031884b61b382faed222347e7ce929f8620235a4259275aa911b1f250c6451fc4c87966e079131a0bebd64e090894971c24255eee62e77f6a24680dff8ffd130300c876a37acb0544a7119fa745815f0ecd53a5487f190f2478e3842193b089f41df016497769e3166caf2f0f6daa9b50a5a8076c59ccf6b669ee644874a3f3ca9e0a51eacffbb8adc725117db5578ab141d07ec6c68ec6a1583604376a58b83a4fd7645197cac713886b9cf7c370b240b93efa0fc22d390fcd44f1a9db8b60f4db67c2de913ca2b3f4405b7aec81b076b686dce1975abd2c95e8fb5e1640f060e8ee29eea2383a1f9031a3465755cd9699285c579ae28859c9cc1d18ec2430743e1244175fcf3a5c5f82d4baad36cc112bbcfc214786cf82ba0fbb6307febde0eed0ec8e049de21408bf55b8bab9b38a4dd8a57c2d9f11ca85258b26d230e296e9b36e3a70e9e8ea6429723392649b4cf52c0eefcf50f6ee2ff79e58191020ed7f5ab0de2221188c6bd673057df36450cb663db6de14f970cb3a306b9018637877b2c714e66f8d83571c82403d44c0026fdac22ae0c6bba17e708ba1826ef3fc68477935bf6de99a4624f34022d6ecbaf0a4ad96fab8a3714aa15e396d905cfc400ebd19ec6a25f40d82f69546742b87531163b3fb921ce6935a06a682a676083988a15da9819692e5fe16b2a552806a19ef5c8b45309b9174c9f1deb97a2cd46078c28a6f6d2e5a3cfe1f1d7036ca348979ef0ebe64a118e7208919bf9eb5b8c4c88e3c630c044eec03107d4c42d73f80cbdf7f865b195d87a032f4065bf112454832c4119bd7fe3cf223f3ea427fdda0cc33112cb41c842e17fd8dac60908e9908f41f6eebfec1408928e5546fac2fcdd30505ee6b52542863223f3ed97c4d284adff1b5f2ed698ea1b5500fcdf121a46c9d28fa413764b1c26c349be64134ddb75f6c6fc55aad5732435c34724f0b01a043a701062599cc7bdc0f4bd26d98090f048be6f4c044a52375b8fd729ed512a6b77e96cabdb06ddb669a69134717664848922a92a94c5260ba0d7f594e5d90f065ac85140da7c83c4a6e4d0dcf34de97b111cb78dc253c88c14864711dba89877104196d39a2048c6568630b4d45a89635b8a2b83dfffed3bb34b73639b0271f664b599f89d1fe9e7e582e95dd933090bc0db7c8ae2307e8d0f39d5ffa9f48029800a95829d7b9734049458c39de272876b02a974804f3f4c096512aa81230513c69ef0be30c091305da337bf0e4da20a0ed516053d9c08a51d89efd52531fcae8291c71218a5fc0597681d6d64b4ab5f40874b054b8aa89d58dc309aa6fae57ba756f56cfa3fcfbacc3d06686b9fd40219212613e8b7dd8bf949f0bc6ee2dd8d29903b981f6014ddad0ad40567f69c8884e9d772006f28de69b5e2a2fb962dfe113bf2c7c06fb0447d83da2e08da50bfb808ddf399f9e0434cb01db89fed71ba61db88bf0a7daa005595ab5a8a40c1b88159c2455fb2a355379c1c3c69824c61f8ed3c8482eb68dd2dfc14dc45cecbf99cbdadeda5de3ac90c58926797b6e1f8110b685c14be106b2a1298d3d94dc0d34dd4b9f0deb4ba215ea160fe91e8189e44e8132012b07ed7f7250d6526a063ce8eacdae9a46a86ccd08010f41793a35f9fc0319eca7bfc467a6ec742311a43f48d0b9107d21a1291f8ff2e3cba5d21fd2e6f424164d4c0b79463ce57b09ff000edf39bcdbc9dc58885868f8e64ad6b1157e879311c7fddc9105bac2762ed35db60048cb1dcdb4022cbe0dd17c6965e6c332cbf194318575367f6409fea94ea0dbd44a633f186bcb1001eb86f189d9e48bdd0cc61dfe48e90738c0cfd30778dea7454dda5077eb431c5587a4b38b2e74a5abae76495dea66e9f763259d2f62f834b42b88941d426eba6433d1178aad47a901cc78e32cb68b5a9125aacade498503f46358b59ff418229938890a4395499768561f67a580a376ca1bbc55505ae8a6527b5dffe1ad453318453699cbbfd49268e24baa9564e1c87cfd2fa317f6f05c47cd456fa6ae3205bf19b4fa35a90df97225a5dcac641354f9e4e2f04ae44e057eb86bc5dda50519393741b26eba4b641e5a4cba88bb18d1b912e0efca4f8ad47b4ca6520dc91cefad8c388da5be07ee61c820ff245c5753ab02c4bf920e715e5b585192e682ae75894877a75acaf17303673e4e139ce5e30d2549c50b39c1a375186f663bea0ad8e3cea3bfd0c0c9dbb3a82f7fcd7a90e7027248f92cfa27037c8d9bb4986db29c60df262a7476b4eb872c922114698566f3420725dca65eeb3dc122b0cb7ef90e7b4783da9d24fed20f3df6e7c5802b2704dfbfee82a1e096d9be73fe0255442d8d9efa8ddd28a280021c35fb19831ef20c2d13daff7158d663676b25be6aebb79575f40fb264fa9b508cbc0128e6ab54644476b4fc84b10ea79ea495d2995bfc32856baac2ebb5cd7b0a1d81070c1c78bddaa49663288dc8b40071d6709eea7c95b9b839a6e2ff8235c094bf5a738c2d9e3af27126e8eb0353b6b3eeaba12869e74e01ef4d280e235e177cb10937aa99201e1a61e2490904605ed524284229c113c2d2069ff0f004a6c65c15da8e0a06872a0742547024eb0e35c4edbcd7779c715907aa1d6708dc2b8f225311ce36188305e092282a690a879f671bb270007a368208d7a267237a704b7a36d03879052d512111de51f814e0047112c036cc4db21d9ac075286a13c834ad8c367cdfcc69c567f3dcdea56464cd54004231d45e965826e45beaab5bff969e87418d6fb914d44d69daf5ee0f0278ed418ffa47d3fc8b6e328ca16fbbf35184dff313ee88a900712be5097368dfbb2688cbf51c47d3ddc93a511cbfee9160428ce20454e2a58c2298c36e2ddd9fbb332b0980613fb214f66832b99ba77f45356728c703e71dbb2e66e8ba82b5f3bedc7fa72de0102d45eec813f03f1e5338944ca197dce5d50c320f0ec40a2db68631015339bf932bff7180f0ced82a2af49efa15431809e10a1f0dfb4e60614f428a130bef89730af0a2a62079243467e33bf67ed49517609ebce4822ec6c2b29d36f0720cb3138c34070b9337b15fdfa1c0bd56819beafaa1ae560e3ed5a8910cff91c43678ee12f0d6cf9c71e6223c46bc53ce74b60fff0d5245091d09e8d65aaabab974b0b4924e873b7ce04710c9c23ab9637d311c7ce210d5497834efbba4d0987cf39698aebc6f9b598f542b27c195dfc2f04453bf9973b14d0bced341408123064ac4e54bf2bd6a0500cf85ca84002fb9dac8c5ef974145bbdb6c73af8a3cc2c202b01541c772f297ad8a6bc48b88fcf7c6d885c9ac4b928d265296ead6af337b4024ce651429c178ba36376e35a6b08004db70cc0b35e77aa14d10c0a5763cfb98df883d4db6f9c7fdf487c70438d71fe372788760547738f93c427ed147ef08fe0db8e07993fbbc6fbfb6d84430a8421405f5e24ee34621ddb2ec250860535651935f97a66ce7691b68a3dc8341a2fb3288f94ee382bab2217c4b0e90755bf691bdeb12d805e9ed851c5a41d0ef3be964a53826b0fb5b246dab9812fa7a0788f1c337cd90f44e296fc36db446e06824fdb6e75303e5285238ba4ddcf44b626d7fc97352cf7456f539aad0c6fcf7189b7427d2c4e8c442fb66a6b83c6858ecb882adeead396a899f4cfff80f1fd4362bed8bec750f01c902c78206a795365259f64a4ed89f4acabdbe1b593f2224a26e0f403d76baddf66fa2152e120281d2247bb5cd18531a9096b8fd62bedfeca833c026d8db213d7ee0125c59468af354d26d6af28f633ab19ff2f7a304f9a762cc89202d28573cf36a7412999683dd266ff010e4b3378dc95c925a7723ac9824e70f50dbe5c1e478a943921275d8cb5c134629c8a0138d10640b5cac627a00724dc103e924135ddde0a6ac2a4109b0ec7407181b62711105042f0522aa510a4e701edad39e91df5d066479a08924b960d47fc11b5b6b1ae4fff3decd8d5facb11afacebdfea430a7a50717806e2c4a8872506b1fe3839e026166a3e2c3768d6b2d7cca74366a4bf204967bda8dd05250119fe3929a4d10444ece3d954a380a176a7519c1aa44d21bfd227c473e15db2de1f9382601aef185c8335b19c0a1de5e926f08a5fe37f621152faf5039d7929f88bff4e60314f3cfad2e220fdb91cfa54065f316bc1c3d79ab17acaf85315cca6169ac651d1cb70219145aa837b3c758430feca761db1569d2b89a12759c9370368158117ac04981cc05a8530b809fe78cd54a139e54be528da3d3b1d758f0ad1a0b242ddd3e3701830b760997f7157f6c653f3032f7c6371d3da2807f35566e70c1cb57585b0d4c0644025ea847933b0d381e01731f37b9b88861de7280e352072996992c7e29fdb5a3cca6b8dc8970f0b232ddd804f6feddf76aca1be82b5a79768c6d68da5f55904491fe75779a056ce1c40de828bd764f4dee14703c02e63e6ee56210c07ccb00c7a56e640cf392bc12ba5747194df5aa13f541557d72a308e4fd72cbd52917d0f788fad8590eb7a2121c9dd46a7429b000e4fc995d28d1a442d3f022bd3589a680231134b77233375f40a62d1a382e7913e9c84ef5426f4e21656a4a9b7ed40755f5b98d2290f7db4957a75c40df23ea636739dc8a4a7074a2e90ac3cf9a18f5c7c9321832f72f7c72a902df1c7eb274fe45b6b6033d8adba1c761fff5812e5b6211782f63e9b0dbb7b5312f1b1c12e94c07c5dd55d8d09fb85081c1e7b1842e0210bf2bee3e4cb35961122a48b9e6faf1aca385e01090af8c1e8220ccf6ce14ff1b615c9dc6e027caf1c44aa43c43553c66ef28cda468ba2ed655997bba910b7f52659f9ee21e58b8e45a9e3713efbb911a0c4aa98bc9e235c8ded3859d7a1b225c421437575a3b1c80afb8c99b2d4ad35645b4ebfb907c48f4d30b7994b7361d3e61e6eb6105a74954dc41309b6ea39b1c133f05fc2a6ec31e917f50f66cf7eb94c02e0309682774912e51fb0ccc78941904db444d4230267db77ca8e56da045e516a95e39a64508f7643a972fb01186c84f5dc343c5493fd9b4f91ef2d11a93d5e3f1571179f394cba44d1953d21ebc46236dcb6dbc5fa4ae4939ac4fe98c986eff540bcbc7c0537a25a58441e80729559ba73b23d12ecfda0186b425b6388139de307193ef55ee45d002c3c5b21f66b5d02204487b0f8b626cc2f013cd48a578a768961935d227487b426559f682ac74a3de12549f4297287b6e6a38a5fb936b6b9828c36b504949139eb2908e24acdb7ceec17e7d655897a0799c5e1910fb1f7b04937ab6da7bf497e6bc480df9a4752b88fabca820ed6b32244250650b27d32b3271f0e6f42abe70ec742b389b0465c806a39c2ae21e8de71fd5fafe61ce83e57748bb7c82049b2aceb83444218f1278d6d9a0f66704c240daad6e6b4703489dcfa5014e89b1176a95a18645a2b23ff8879036cbd4a7690000d0666858615b401b8f4076a93d4924f5a2e2c7da359687d0dbb4f206f609bc36bdb6cd35accda190b79ee3be5cece14ab6a29676e824503a333e58714913cb78470bf4b31372a2ef1de0c330185f598f82bf7e2c070331a6875efdc3224cdccf700df05059e2c2412a07b82cdaee773bde9a212524c0f96b77e13023a344ba78124a478d7b673474d555bc492ccccb775ec58f6f34afbe2c6af410ec820a9af7b6ed36c91c08f39e2555f76bc5641c91884b45402fb64a686fa07c7f8accdc364ba13cf559290d579a99ad9aff8e0b84535b640620b48a813bafd09dd45ee067899f7ce7e61ce1eb02c3a58194fd459b1e4c78c6522a2df222faeb26a66b2bac829c7a7540774537a8f91c459fa792ab7b723418d47591baa67c5c4928e981af52900442a1ded374e21427ba40886066a921f71978041fc47bce4287219bd52ba063fa92d480c8db7911a83cc5bcfcde46718f2b6907095cd81c665a776f13d1587b30463e882a59ec51081976e7a813f7f097f929fafdda5dcaaea69e565219961cb4ccd18ad3e2d80a024ba9604861b252b00084217bbf83462b9cbadfd0ac05e0d48ea9a8f352d3b59739d8b5901f9acbc360093d244e25359a3806e64632ee9355b2c12188cce494470186e0a91142006071232f97eb0c72c6cde61b55764f79b7324633cbe5b310afb937499e6d4a2a2111f6b0632924ef09e6da51309f56707cf079e5aacfc8356fe68fea6e553d30b889f298384967602f556624554b7a076ee23143c5635e1daa8fbe83076890e4a0180c03c53b9ab2d1c0ffc9d17ee806f26ac769db6d7750a08760e286059b5e2d45309c9e034db55f9e75317e9d501615da9eca0340c7025263ee7aabb3b1f8e4f05f5f070007f923df2fb077de0fc309cb92d068469d51bafdd8959ebc3569951e85a3212d80f6061801c1da7caa1cd285b5c92f453b74c38ec460f2e1649211fd3b6056a9982d7c504d575adbba8cc1b3998cc174288ea74126220a587457c14eda276731368a283c6d5215ce2171797a5d873c7d1982c258ef7292f591e83560ea6eaacdc97d576202f9573a9e96588c48e0041500dbc9a7689d578c8740250859c19e8b4ca2d09e5a3ef7ea96380093bf4464c5b1ba15cedbb13939d68d0e9ccf74a166d9096a7a699bcedbf15fc4935986fb71f08480fb98f7b76e688c02c46a0b1af669cb61ae06c17efb3b3f2d78096c0412ee334098bb4b589dc65536e248ecc2a8c0fe89bfbf321d4dba6064a0078213d3be6be684017985470ee97ca192e43580e9cfa4a968837713e46e2d05878dc0b4d340ac3ea071829855c0ac22c8c19b8fbef2711c6aaa06d1d67181b2e9ef447972704d6e8605aa6878b1ad1834dce40ebd30f2903072930557df009f11536ffd2e788e8a48ae0bed92e90ce2a683bd442b8e3a41112d588a586193982ef71b188b8841a5b8bc06571296974b12defd525f894dd42776fe22cf3c556d24cd9bd520011d30aa9d2556e38098d175059c2e5f7c040f3658c202d3e0691d7e06a2c3503f980a50544f52518033de4d4eb643d99964b4588e8f3d529c443c563cd86886d8ab408de79c6ae7f98f313bc59f96322c4804acfe0e471b1faac47638fe77a8aa2394ee2550f1011fa17d6445958c3995a4b0c26ffd3202bc7af272dc0d3fba6063d975e8fff06efbe96aa1de88d76dffdb3d1172545f3313d61fb5e1451903dbdbbd41bc0ea20871132d4c08f1628bc27c336c8aa22ca938826e21744184fd23d79622d1b7ee8d9150402f554f2eb1a344eb40d42d194ef3201bbdb5518c2a9a2a0c8ab3a981c203a3298d7f14e25a0802d41de59d1425f6774601c13ef781a087c854aa5640911769c2acd98db3c25d698aa1d42065ab02024123179303e8b8c985eae7376bca70957becfe6568f02d2af4eb0542620d1cc1c5472c631d814f5fc2310344719486acd2271330462e32397fa476800157d49150e757c017824b06e15ccb0722fefd491cc06d7a2f0faf8454083f29403c2c94e95281a2baa45623f9d35f1bf8f2ca1d970186738c8a9888dc119d861b669362aa16ad9f4348e667b1eec6b7e714f04c5e01df3e8ad90c3b510d54516053b6b988a98bed0a2e82a5a9ff3889d1fc47ba96b5252781710c1a7fa665762f6a6d99b6bc6a23de61438ff7bd882d30689e3e39f04b6455d16f2445d0b476820882ec296819f4f59e41c07de9a7d265843966019f4a40c2430b83aa03360677885170c78b567e4a826bf858188f8663df3005332398066e346bb92d3ec407f02cf6d024b231bd6835f6e83a642e5126b603f013cd599bbd624f4d8a49123182e66e6ee6ca1ac0300b04974b5d247cb353bcd27b5747199af2a61df5617dfd5c6308fcfd76ead52917d0f788fad8590eb7523d6a798b62286706d42bf5d4a49d2a514a80b995dbdc6c5132b36ce072c945a04f32d503752b8594a1a96fba231dd4174f358640bd3f975f0d72817c8ba83fbdc5413bd586b677288e1246407aa51e4ddac912a504995bb9c9cd1424338b062e97fc04da2533bd51f7d248199bd2a239d221adda4ce309f4fb72a2ab2d3ff8ef88e2d5b71e34449544ded6c4f9cc4093cbff004648104965d10b0ef13c3004a2642ce4cc82344dcac7f25405fc3d08e3b136d5406fe3c9bc759ad7cb25b4cea6bd52950627bb7864b7153a65932151f32f61df8ac6c7d1c36b8e7f616716acf8189cfc7975ae60de50e4926d65f344dd591641c4120a06f95e73b6b1a8086080dc7f27979588743e71da8226493c05c3460469166b59251fd0cc8c11aed1c5fbd56908d9dcc76d2ee2c689a9258aeeb6edcc8e3e072b1c19f0ff6ce966e03abed94512cb2f25f96908157d80f67ae3f5130ed38c0f201fbd5470502b1fd2db8bc81066e71102e657cb3304086f34e66b848c0e6733d56de2713e60349c6326adf66191e311fa94c800b309734ed56bc468f7fb7328d96c613e2dd908d5476629820679ed90bb908ac4186665c5bdc930a698012a8ffeddec34fa7b995fca10cfc51749aff17e9caf97e127d58cb64fc964b5a789b65e0e354a85e66822869a228e497547b0281dd1810f7a226623a8283f2e3b2b2328d73a51cb5c06cb30f9d5df64af87708dd7b13df494d6e9e681501aa38661656d6e9bfd32b599fa940a5881253a3eb89366e7c93311711e3f0fc808cd81ccdb6364ec63ff6f3b207f4b0ae20eba38a782378ee6558603bbd62661e2ce582090a0db06f10376197f38460bdbaf530b2e8826875341ae08b76a111c33fae2769d8b28149d7a6077516eb3df024d6caa5d3d348aa31bd8a6185f69c81c068c875e21a2db1c3f6beea16962709adb54760d49587139612fac4d198a09d87f8a2415d86a770b7838bee2902e3e28e6140d2b057615b66468fd0b7fdb156b3a48d69decb642bc55754a97a760d772ee74e6a68bf41afeb46c6f92c95085de62d401e946cf3bd9a16fa583b15f9abd1f23d8ba6338df9d98e61c2338d3c6ea05c6078afc0e1783259a2694a00c49a0bce31fb0626ad736349543fc8a21c62520ca840051e61a1c382dbc06690dfbec464f8385e1de08c5956d652be02123bfee23b96cfa4adb791687a70e4cfd5bc825a88e7d01a723ccd369c98a5578b30504ba5dad819e44aad6c2925bc2abdce4b9c24f539afcf49eafdfc345212b6e5a68c2206fded21689934a673309cf27280ccee1aa9563adb4017624e4979ae1a84900aa2167082dd658bf1584c1ec55d754767709934c85ced041308958a61443d090adfe48ed1b112f5c61fa229131d99ffefeb6462986e385a5038d52975258f24d4a1153b635b401edc5f5f09e1881433fba8348383a00d3491edf39bb09f6e4545e344d4f96d1ae162930676e2b7e420dc86f461b69cced75811c7fe1f90133bcf059bda2d51ce18d3474e73afb6931c039a3c82f0805626d0bc175994d4ec0952242af6c47df0cdacad8cacee952d893ba7e6a55209df9804608e1e13c72a1899c8199b8c72fbd349e3b0aa878a56e4e9b119b3695b7a83c7ec7c8c994760b6ea1bbdde66ded31911009effcdc11740d0701180e29b5806513d629dbb7b0e164fdc40ea2239dbad72cb99bfc4fa542f552f4cc57126f8fa9dd684c6af075a76ac6d5d0253534193280083b28a36ecb99052bed674aebfb4ceadd8f149d0808189fe4ebeb6305422dc8d8f010f37552980f334628834bf70673abcdb210a77470e308d42fa257111c2f704a57cd88aa3ce5a95b24c53b487df3166d7eaba2c99355415ace4f8ccfd06ec18c3630c906c9bebc4ff3370d5f0a478235407e92fa844081a24080d29be94363362ae40596f6372201f49a0657169e0a535d9ef1c68987daeb8b28ba12084de05af195589e427e5c7854b08f82b68823c205a666a114cacb73ac25991c45d2d975d54a0d0c4e5d99bd19cc0a52ee02faacd3c0fad2de528044bacb4b206f977bc0a413769f29f954f8a35cb0ff05b48fdea6362351ad7f44002e43b53d4258287f1b65341cceee9b43614f5999e813b9d12e299281e8837bdac6dc4c1fbf72d6d9a828d7cb894ee67493dc38006111e615fe18b92fe74466294067a92d535ebbda941498c22cdd61e56d4cb04e7482c41f1acca907077edd923a6734c65fc0dd61ce5bb1ca3cff101d195b091d40ec11625631c4222c148ac9a6eb714352e7fd8b8308b54c1acf855b1c902b839b54df599d9c4d4160e2c06475b6a3444332a102a08f878467d872d4760cc4f17ccc937cdfb2d7b1ede78c3ad26a05731abe8d97eb2e302898831837ddae8f797d85a017939e313c3c55ad5a6699275087667148e374788d7fd0829047ad158dc7623863a5141aab65953dfec8a5aaef1aa2126530cf91853b73bccdf141d259b48567452debbc374b5f4d6fae83353e573cf72ab1d2f94f64762cf431d9578f2ed4db8013740f15f25c727755c21eeb1a26960944039e05df7d7800a5282e8cb82ef136681815e5b451933f52eef401618a49c839073f31f3393a83946ce7d35d574e10753d26790abaca1dea958b8b3457b2366aae531f2920a707691f2b6f7e86d49fcb070f7ea86c19928c305453d8ff717244c09dbadb3079712578262f11f0004b535526dce25af52168919c6b8051d5a86eabd1d1e6db06c7ba8a43950baa212cd627585071393eb8161981e021104c8a841ed23fd1ba6846f0be7a4d6daa88ce059b1a029217cc6480386780d9f9ac65b458ea547b8fb6a35bb4f12e482df39a438fa693741adc0a50051946974c50b820ec9a34e45cd1e0403574978192996fe0858234c256bb143917c4af1dadd7e6b881bae78748f66ccb63687a53879f42351f4fe317845762b39723f2bb288829d2fb8552f89328ecfafca5b4557b84ee8e625a88245ef51dd8db8d2e4f93518a587a0864354c32a4ed33b4796cfe6d95a946eac8c370a76cfaa546e152d7a79e24d4425d1384838aa5d4f5721ba9090e3e5e2226ca790f1d626f32a4916f28744082aa2a1fe4617437852d9a2b5878d3f704c0752cdee2d9fbec5b4af4f202e2e5788d848b01bdef4ef86699bd06fe5dea4dbc7ff271004852f6ccde7ee367c57169e49063aadc997ce16fd93b9420ccc771797a575b64f828f353ebfc2f66b0ccccf717be69de6e5f26632ab338efe133718ba0bed7fa5e58a168b672d67f902a5c4a6dd5a86398140aced29fa3656f5b67016773ede8db8dc31c1a593e78c44e49a0111a10b2a9b7e620af04eb9289648224445c7711f92d2b9844c042ec65bd23b7856f280c986f64b050ccd69edf32cd3587093b5f4972f4bb9c96a54e2b310e29a566e94dc8b1f82dff533893446d713725a26b019de92d1edc92e2551b008982174027a08a2f2748711299debe549a86da50a8a7b74ce36d46a5fcf84b1f5c11c2e9ade6d9580b4da54dbfcfb2550c6b2e48ccc334053c6f33a5e091931e2a976d5a131d0502fa3f78d29c1aacf96eae485e9247454282ee3ed0244dbfe439b32c71c611f27dc96588bb600df9fea4925f88cd43befdc21901f8229486b16ec1f601cb044c92912ed1fe1063300be4fb9a6b77266ae3a67cafca25df36c01ad5259591ef8a393a89cd1ad879a22ee14c88065163a31798d412acad7b25ab176ba8c274fe80f1919a83bcf9d143b13a1eb54a04eb353c83de2e32992791208e48a64bddc3c1c031a3589f7c22caf49f5a6a6119d4aa5ff47153f6b682906f9e89e4918b22e83dbb698a39fc6dd66f454e82386794605779d4836d3a74b0629fad373270d2c19b8f57b5211ba7dd293554832320caa7e3ba61a4750874b698c26054105c1e6e2b72158474be5dd2db80748cd38cdfa603733191ddb6b99b8836c94545276103f9d8e7aaac6ae54f74170baf5227a768bff756a28892c0026cc8b84fc1925e6b374c8a6acc78ef7425067931671b3707c80ac4528d41a4938eb6e5b4c19176a2c6c4ac54c8f9844e3272981c5105b13d46fa6128544193145dac82e12b24c8be92eae0b2f21c9209ad0b15ae8f3a440589d0b76c2f8180751070866fe063230a1c6dcc18df3e4c13cf4889a5676e9d95896f9260c16ec60a3b0aebc29f832030ca49a4a3766c710a37cc5a53f000cd412782bb9ddcd96035616033cc5a618fcb66c21a1208294bf48410d20511223bc8ef674a872f96b62d0e0d34dc59f51d3227ab8208492eab79bdd29a3a66e2144b8bf5ee49c6bcc52a67a570ff2f0f9676f2711033334b24749b639c012b0dc206c97782ac52620f3d9e46e6fd2f6e18d21b6c170390436d929cf1d0f9625c16c98f2d10289f50608f60745a9458cf7efeb02b8b95ad796decdf4342990995fe7ddad25d60f7a243a1e321f304447e643d3fd304063a0a4f666e051aa3b3d6a4b2623aa47e8eea06a686e0f4465463651384cec9b2a9c69feb71dd2759a815a6b3a5252c05ef473d6a23e338700e08e12420beab7b1c1ecb8281392f305fe09fcd8b51ba71b26f7219b1568c3f97c8c9bcefd4f4c8dad218c4cb0f00928c3db51ccc35be6e5613cbfced4d5eee116266bfe3ef1e66c8358ffd5df19debb054a39474fa4506753a5f357e392b736f680aa196890a5972e3a7b051d6bc868949585e7ec8842fa76b94ecaef28d58903f6e43944506f630c76d677558ca1920f888de55b69d4a30534299cee94fc28a48fb9ed12818426f6034d307ccadca883b042590a6859771e65f72a21f91d5d395e6fd742dee1028fa6f735e693a199434d62d18611fc4a00e95bc6145ddf5985ca0ca30502eafd8eb25542e2eeb27c1926eee69479549cb7fcbc6c0bb681091b61e8b77512d36586beb849e83897b40e792f385f5162acefa0ebafbb324229fafa368722399c553766fee3e51cf7965d280660f415e0aeb82fb4b632b60e5e5adc740621d7b68a90161fabc39d598c26c3039e5eb50429346d78c861fc7b2d5d07cc387d889e55f1913080af141dea23b0f00e03fa44ab1208e39ef41397128b12bcd87cef723bdf251e8575e19d22f1aefca43e8115cffdd4b09b9aed829a6aff9dfe973b6d5abc024e47c23a45976ea140c36334aaa1fc5ed20f35d2248a23c13a9fb2d49afe3ade033ce4375ff63a9381a442c08a8925741b983953eb8062c242e8c4bf0b3159726a48fa3f4402292866e54e6f5e335ae61cdc594cc57780288e74993b9c73c9ced3868868c64ea145e13deda30efa572a0b8228fd904017d8c411f58bb6252790612191fae70259816a0321702f05bbe829383b012562ac08305d6a88a8597e516fa2ef314c7b69e50409fb6dcdc963ca0194bbd409308d407a377bf31005dca65bc1d71382079df3736f133e5aee019112710f5afcad019b67f6e0c84ceb8770c05cdd3f7a885ceb7b4777def540f0f95b4e7dc056aac1594010fcc62b84685b986dab9fb56feef84de3332f13d6a0c243f536a024d6da0db7013f305bfa4b40f7bedf3636693a243e744c4f748c9798a1145244bbb3a549db0cdf954c6de599339342f8b090b9d6200f21f737de4c513928d0214a8296aab25305c23032c530bc8132e8c3eff7c3245c85b7d8965a02802e4144f9f4f46f079449c165d204cc0f3ec377f82d1445b317dd68834283b8bf07f0a0c2c813f4e799c9fe5dbffce9810e02980e221b585c5e9b84d348a303642a8498faa623f738b859ba77b2e8dfd352c00c7973261bda01325940b95de2a2664365ba458be178e4089610a0ebdd30a2d73af30adf91eb383116b145073dc20f493fd8ec271061915e8893d5ed860238bee5fc7bad6e87bcc01c303e218309df0281a5926db45c60421296693f80d06cf0148c2521923d6895d94e16f497f4ae7dc3e8585b87b228ca88e08deb9eef763f801b1b5add9a49c61c80fce843d15f207405ca786ed6307cb478c0aec82487f4c1076e2dee972295b5025058a2052e5f38b0b61b990b9bd99b91f2a4a1cff033699a12474730d1f15eb4e72b73731381c3e2af9f3701a96c8c04c7c35957f3f3b4a485b9a14c4c1e6539ebc73d9947efef19f15fec84978e861dac0a5a7c68c1a5381141e2aec4e595d3160f1d28d450c2eea2f394c26623b51e1c5dcdd5199d6827fc512af6ae1b42a6692b5e2d4d55afe0be36de271676d4813c250ff43dcd3ecff3477c74ba3fc6c90314a0f347e84bcb53329aa826810a21b4ebe9ca08bafe576cc53a80347062a13597a632ccb0343fe38a910d1a491f0c21470f39058a5dab1ab9338134560409e97060c9c02b3e4732d524fef290d63278142201ed30c946ae9b5a31280842c2e80bb065732ec6427345f7fe8894381d263475beac3c066fa963c6880df6204c409083e459286df442da8470940037609fe088b6429e06dcf2e3098d378790b802e5dfc328896c2ca7f2ab63263b7041516fc7a3108562e882cf5bc5eeb329ac02b8992d6aaca2e63d604b584749a0c22f75c993021ac7b5090cd0a90ed20f231cd857cdb9fd2c1a474c973240f9f4c5036b99cfdf764260d901c8696a586b19b79347722c66563564f80240f495ce6d667d482ecf3456feb36a58d011994c67ba34bdc4dc84ee52adab92ff97e9c22b271c679f86cf828802ee27861792574ec8b30e4d9d39de909f9b2305b4bcc1d73aa45855b31b46ebeaf0111d5b6afa535a8d10a074a61a82a7df3c7b91851f37427ea15d53c743aa5f90f717191e27c1fe37ac6f04f74ca456e6e28ec44c322455f30e8b9a370b24c62e99b6067678a7794f035f25dc818a1474e0c3116e1297d5401883e427800c8e25eeaa3afff9b2ad738201f3fce016f9fe34b60464b10db2cc60592b74959aca8c16ac08a7ca54f86cad8b75299180b72a0c526cd5d194b95190238698b98b7ffe6f49be90abba9016c374cbb13f3ddd52a693fc6b94500c76c754ed0384a9e66823f3d6696615723e1a35ed12377eec9a49169807647801e6941fe148c457d652faf125e0689677e6a5575411d003721011005b5ca66ff3b1e863f389aded7fbd6d5e78574d8e0b2c6999938721ecda4bbad0615bff7b6123d406f14c0fe58c8d6d24d42f80376da1753227981fe2e23fa71aa431bd0652ed75abd7657754a9277600dd357ccf4d70cb91cde14d0631e56a23d34955eef23cadbb4f03016d5abdb610b8c89e97e682788f748283d92a50522823f4a65d369390da7dcb74b6d0098bd1d7056e3633af51e9d0671b5fd26197de1157263a04a733880091b431fbe5109dbe40887c4649e71bbe89c758b7b9bca0c1956132e6e65e0ff0ba1d298dc1a2f672b669f1ddd81a7d28896946e401f5525373001576be0e3113961e326b05de651657dce34d6ef69f9b2652fe87e43a5cd7e3661b2a26cbddb695f4193d81ceb30475ae158473ac574862d125b44252d587dc4807658c52257712a1aafc98e786c0eafc77a1572c97907c52f4373c43250025b50f9f575b4ca1f811b952d16a800b2139d63cbb00d565b1f1218bc548cfa7935dfdd995cb6613b5528cbf7f556085ff07d3d2a04587a7a56e15ba19db04d89d951fed06f848e810a86d8bc2a3fa03029c16bb8caaf6d4c68ddc55f43e87f427128136807f0b5375ede6477c13d886f1ca42b29d7f85efb604b5d7a5844c44b1d1d614253e6586d0bcac991348367f58d7fe5e832df4d55e2d7d8f53875c06665743bcffabeffbfcdfe7fffa3eb88fd9e3646d5ee1495a7b9b96c3747af799d0a08b7cf91fbc28e77f0cae744ee6e8be757d8f9b205735995192442ea38d9383d9c32a60495aabcfd95f0c88158e12f4cb9348af9c956ae3dbcfe2cc354e231524458c8b6373e85f27efec22cba2b112a8609c8f5461c68a6393c6f743900537a42b6123b33a24e12d970b0a4ecbf7020eec049f95b4341774bed6e873429151727db981aeda202813b0e0111cba25ff6123d2581cfc905608fa10f4abd5a92c2a8509b79356a744c94bab0c91d9e314df8ab62f4c81173040785bdae9542ebe6fd8f5da344c882fbc0f81ee7f673a16cf78f118886ab0a9aec827e1a7287789bd921aa89ab2642c4f82ac51a30ee2c3c2ba54ad912ea8d365cde098e1d0a27c6a98d9146644c3304f946876f4cd8ac0c9f4fc7259f4691994dc54814d151d347b2a6e4e68777d790326897bd7738e2642c4becb47ba9902a0359d0541710935e3523559f6887a1d6f544ae757a37db865060a4bdfb55d1b810ef09b2da11bde1933be9d66c2865a53889358b1362a3b5e7e356a4752aeaa0933cba8a6f381f9e96d71d7a56099e9794ec12a15cf10fe3bb7698f4b170bdac00410a6fa11171f2ec418a787254103c3828d962e68d978c5e62959a1904bc3cc8b8f779c9a8bda97ddc3ad89b9650b4357f675ae73138c60b9492fb75b4d8cef8c8bf9f10cfbe7e9bba9e344411560c280349c6934e6a324e8526f3c35df1cdda51e76eec62a55385f392f08e4183709cfa709618f5adde8b6a3fece4ad3a16e0877761c3c09038ecb8a9c9d874522531150e75e9f31cf5c2a6a92d2831cfbc42a0447b3d988cc05765f18b525e95dda79f2a823d85dd835ef346d12ccd696a48675cd1a92c1b23076ca6df4e82f2da726399664ca9e027bd4d2370b76b256a390ec677c65663dd0f5609010e39bcc8c5549f54bb5665a491915e16c4be7841bb5a678f19f6dc0780a5a2a79143151499b7d22015cc36fc0f1b50949038f825c8addbc428da13bba227af4071ce331a34b716f927f622abd46356aa2fdd0699f1d45e0e9bbbe7524e82c740eadee70ff48891bf3f4d1846715bfae469a05ee199e36036737ab6a9c6e0fe489aaf71ee8f216efc7cdd65c4eb1c6a3de39e316eb408caf0c9ea54c4bdc84b3219446b54dfeb48232932d5312625b6e0101c9c9377b46e26ae94dbea7463c0e8b28ad0d9ee8cf7613c2df3a70706919066b27a36aa58e5155515f2beb6ace999e53866db1849a06d026dd0b9678ab781c87b68fb261423f1cad5df5e4f1794c7b9d25a28c92bc1aab69230a82a015dbab9e671ebe444ee76e48325b85497057affa7001adfcabc8fa3e22f718a2e825ce2b60c94f5bd299f2dec0bb459ec4863067b1c3cc232cc7ee4567e426a64021f79d744dad0a70547a009ad1edf7d082aeda3f84892f8ec6433c9eff70ba9fcc59faaacdc90335a93509ce300db8acd98d98a7a3834297b8b9e865a21935e03da796af991f1e18b566364078d11d2598baf6f3fccc0dae80528813aa7686b149201808e3186fdc4759a8e369b34cc748969ef3079d10dcda80f2a00d11ab4456185be1d7e05e16a042968f08816325c6572b16d818ba5def54bfc976d56471e5fca41572626a2442154df4f0b090d60c97f66541429f81ae3f0efc2b11099527ab9e54cf9bb0c4ddd0a68916aea523f70f331b41e0a54805d371c6fa68d15384caa2b0f92991fff69f7374c2cb05501ce456f5fc4adb3ee70aaefe020e79075763645aec1f0bd3b6554a138f1d5194129a88c0a29a70a0755088719829a57dfd562af763030e9f68cb43afe97fd55b0f015b9deed63c125489110baafbdcff90a56bdee6bec95645199f7c23a94dea11776a7c7008d193f5237357470ad01303709032dd343b19fd44421f5a308ba15483c02bdbc6f74d7e082c55dc3f7914dfed75d33b735b20e17a1a845d91340d9f6b338105858e7ef788372dc3b5df8dcdb52c10c13b7483034b4c76ccf785572827db74382841bcb3d8cae20aea1f977c1f7084d78cd7c8942f0d74cb080b60e8773fc5aa1560898dc4ac9111ae3a0f888edda805adb80cc3d768e3241f173f70e1cb14b7a1ca70d35687659583b5244f4fc967f7d7f2d36f8dd8249647e290f95d84244013b821689b8c70e1d5032b8185cadebc24a032115360a3e51a9f58892b4668f68216f49d208b8759c3651065efb380e9ca6c5e6386d1abf1ccfc233302150b93b15351a990d5808eb568a312b141a9fa5837c9c36ddf6bee53f440c718800fc9178570827a3a65b9137fe128f4953375cf30dbea61035c906217419e5386d42e428084aef05a5cace7273e0a8014966020edaa06a06bccc032372203016d3767a8d5154647562ba2bc89e080296a570bd19ed50908fccfea0bb42ac45fdfdab38542c7dbac5e9420bfd6ef6c09c7594a2c508db4678bc3ce1393c8527c5fc34ca41203cfef1654aa0855320c9f24a2ae898fad1ad80c8f5f0537302430229a2e2e52c3c35369d137175f8126d27a2ab6f19e933bf0ba9e8a48495cdfed2f50f069842372e2d6c903399751ae55d6b36e0ea0f76ae46f0c3a638ae7517556e7fb1d68d7c5d0d15c61be5b8eec0766c5b83262c9df53bcf382110e18d9349f7b81f90c9df7dc214a31a40f954767c968b12d10c4b44d7f994e1dbfbdc8187ddaf61db55e016f2a68e9f96b6d41b79973ff5e048b2a647ac90b08d9657c979a052b0b6ec41fec7ca836104a358ddbc25567290ea9a5d4539dfe6c4119a583a5381fcdde82e7e9c67968b8768b9982a47a6265f3174e168150266a99b3556ae888a3f92157d9478f944a586966377c1c485bdec5b2e8c9cfca491b699099578d76a1768fefae40aaca15b9ba73bb5b60a91d0dbce95a18fcc4860001acc6e680607c19f1818801806d7d3b5eae2b87c419f0cadae2cca52a1965cd505db7da933564866c58ceabd575d503e1a7a0095ee74c8b12e80d3ebf87468c5f298f4a0378df660a761077832ec4c28b38f48c5c9e975f7fdb227c748cd27d9614d925d764d39402022b7e9aa8289dc8025740260ae50ca3ec21ef243ea0023f6eff93c1d33a182f6c3fe636e87e9604d34f348d1dca168d5286f43b43d358a8b464b4595c252c89515a8b69085ab4c0b8a422238452e700cd13425b6157763712bee015b3ef485459be132f76005be2d56a6ce1a3de824cf40648ba60b49b8308f842b6c72c6c98b8bc81e4b3ae1edc5c587234cf2c3fa96ede54aa5cbc8f82f6dc064c1fbdec256f76bf400cac6ae7aec195d729db97adbc407438efb4773dd06a1c0080316a7854536c3b91995d935c4a4eda458f8522610d42081734c8a668f5a05988717815f06ad0f407500ddcb28318c09a902cc4bb77c9ef657ebdc08fe6275c1374f9332480c77e73c6086d6ff9f03c3d5077405c640890be2e170d0aaafa4560303ce2430dee53fd1661c145e62cba6cd4bdaf50333f251d47046bdee23c7a6a0957425d94eb6129cd64cb7db78766382e97ce8324d0b93d54730e8718edceeca8dec1255a1dd1ed236af67a5d55f3da1528f0d5d425ee258bef6850c68c0736197eabdc2e0c8811355eb05884256b3b5e6c6dc410436e6461da5c16346ecd8e071da0df494c7d5c3cc65206d49633071c537de02029ff6d2c07c409a5aa36f09365e42af6e6a7be75b2feec1b6fb25a687f02c65a2e2cf522accbf452c7d324a838c69222375020a984880e437d26ccd1487d4ed7d87a56449ddaed75edd8fb7846525280380a5af0dffb63ddfd8571a2483db08a2ce526d44864e81d779f1ce840e664311ca99fb8d76e7cd9f655899f3100748f68fa389d49486d869ee5478aa667bbef9a3344eca32f9caa4c852bba8f08d160a7af2c096a6154454f3498092b2bccc322e99e4d5bc88907b42dd9c07ef9d6b0b6a9caf831d742727fa07d3bc8e83de953d927a85680cdbc032a906367105817d21db5637540b0f92b38388b426b6df249197b2f00e3ec77bc359e8088fd2545b2c5cb0667d52e4eccc8aae4488d7e58c3404e58a1c86c96683c8ed3362f30ad9fa9ea135af8ed8c7a6fd61e630f23eafd8c1f1151363029469490436ee52c2297c42e4e2d21c1aea50b1a2d195336ef0e3979036900629336cca2ffa521f8b243a66d6ce7630ae483d352164293589ba1f4cbd39522a718daf511055e95ba12134c8b2976eb4e8441c0c684bf657441d6b10e6adfd1524ee56c485a1dca40dfaa6a360c324d8278ff7338a5b898f83be097968cc770482d4a04f55c49aa11e948694255bb0b82e3c40c7794c00afb9181073dc2fdc4581c2d2d9b78963182f2dd3574257e45fa3bbe4f8469322e63da850091d543e6bbc0a94fb395c6b34f75fb6d9ec9bff734f0f0a8e49e3c7514475929fd0c4e911851c624f13b79e330e4fd870600587b308733b262cc70ba6b0c5c3064e81d976334ebfdd91248b8e3472deba377d367154de1cf0aa49a71908d8a042915493242243def376e3f3c5b0302efa593b7715f10ac08632cfe60d4d7d7b1ad999beeddd05e8e000e0ff0fc87c1394dc8ad29027dfc99508e1d12bc32266847062d80073e4335a115035a1ae280911de5efa443e197e93759ebc62e998ba25d38fe233f622426f5d092ffd0e7407688746f1b6ac29bb8a4625db5eb0336b99c7c558b7f159d6c719cc5842dadb8fc1991f70fcb9e826fb74600766f66063ac3e7c285e72ee39fe932eee7f56ad91dd9f5286b40c249cd371eee01d1fefdce9340c65d9533837c211438090eae847b81e8e7850d0afc3df9dbb74440b201337c658e39bce64d135e58c8a435a83d3d68e0358b142fa2f8561363d1df6935f28d1df219c01033c53151d41637ab78162e9e6d86c3ded0fb4e240c8cf226cd60e7842c8669b0ea9f504b2e9cc70634816674d21aa72a8419d733051afecd66dfe331f1a1b303d52bba9ba9233be03eb88e7058e6e59afa6cc35c324a7c8075c70c28e7230c8448a6230cd1a7347611bddcf47419316f126c2f58d3580e16df796cadbf9a6869b7b7fe59e316c3f08822202746638236fb488f0c65939f393e82057d43efbfdc1d4560fae44764fcc93eb117f899cb88a9836ceaee564069109c8c7d12b862e123d05f8ff7882811c9c1b1958027991f8138fc29028aca5fe75499fafcd91e1ce4ac4da25d1cfa9c2dab825513803d30318334f92082dca24d6d5f7b841236b4c09f6e9be172f8e697b244a87e5b292bf6ca8f9f6eeff307290c4f0e74d45c2bd16713f0f5c732f9e99618e20fa13f900dcc97c7b2a42eccf37f68ab06253fefeaad4f281de4458d1c4d3f4255b55f2ecfcce988daa4ef5a9c17e00022692961289a1ddc7772d1d77cc3dacf82c6499de9e341498c04471029cd94c3b1d4297db343e69a582ef0b718890e92417d90655c60ad11b8e3f55c37769fab22e0fe36c4962343952808c0041e70846b33d8d499e06fc21c2ddceea795bf5a289bf021f56b094bb876d51df7f7dd19890ca305a11fd535fc0c803619cec4fd1e8b554cddf6b659548ec440c8d8705b8f45c009fecd290498df99ef0443004f3e696a4e875b6ee2048bb00f4157a7ffad9b1dcd028fe5fe4111f8e595acc5c63721a7038c976fa47cb677a52f75515b052de48010ed7c7601318d3b615d220b02986772dfadb7890cd56b631c82350ae6519ff80c240f9df6460035d0a24131a7a5065e66568c4946fb8465616da1f4217ed83236248c8f4d00074dc61ff7bb4086e13df0a8fd8666e36213c9ac0b1b9cffb0726ce8e8429a03e14970d520be6e0331db4b59c1ab7e523eb41d714f82edbbad150e36ddd4b418d53247add17c003359df4abcee23f1c9cf480f82515200f52e30660499743360ec3cdfd20598fe1de129d4daed860c23cfca08b4120a6143fb7a516e08585a3ad9fdd6f39be3965fa9f1353a25a830615541dc2f67d7a0326a12d615843cdda0d70fe9cb01709e8795d186c65494e3aa73301aeb5ea812be1831b2f362b7b007bfa4cd3b29b7cec90966148a880b49be3d4f8a8a31317b59d3dbf898e1f7aea762e456e8689aeac5b0a4028f92d67df56e4f3d5376629089ac5f4fb7c21028e7280cd4981e8ecb7629ae1be6b6435cfc3ac4129cae3b2f0a7b2ef5411f71c59bb6778838b9259292ef6912ef86511989225a0ca4e6ce1004a40f52c1fa7abc0f967644d84a9ba9a920e86f8e7adc0176208dd10be62548b5abbba220c7d1d6875f0cff13eaaf13f161c3284654ef64feb7f6f5ef7b47ba4901c48b707ca836d5bd345a5ddc2c767c3da68c68baf32fae4220ffd3a0972a023222002dcdfbc51b0f5df06dc89915f75397a24336fb2d7b7d618e4752c7941e96656f7ced8afd8eef7ddf6386106797cd14ab1da7353e38b5d82e09fa4438a915ad91a5b7af558c3224f1fc9921d285ddfa51edbb385dc731ea260beb1c409de116cf85a5bf289e5622aee98f4a1c34bd73782e2c26279d1b1c17a8f2c8c3e4a911dbc61d3a20c28cb135bc737aae78b2b46532431fe984ae3142f9b97d0eff954b2389b103a050b8676e6ea8c88ae4a00fb7c773e753654ba398b374bde51a2cd28952f913baef966f9c81e6d12a0048793704f2ea2a27c6e6d68912bab59b80638fd39701e2e077aa323e9baa2874754582cfc1bf312d9ba870e031ffb286fda1da17c4d70a05ddd23728590f4b07f7fed9ee991c3e3eac39a833b911eee5248ecce6f9706315f2034a8b9ad5ecfb267b7ac81fe54f2afb18700f6b95d243d84730ed0a38334fe629e571c0ec506fae7e05cb118e032a731250bcfa7f17c986e190994224136c7ebfc1f1802105bfaaffe1863c563e4ee618517ae592104ee15e5e9178fc5f1cce733e5e271bf5d61080e46e441fe9499a719225df2d7c375fad90854e2ed31f68e3fb8a2254974218aed2352e37936f9c5806074e0bd80aadfa734a0d2b08df8ee91c0068f55eb7f34f126a61b460ab66035ae930e4565f76c3a415100a38b1a26758c95e069200c7cc8bc93156567802438f89c12e0fd6d33d0c4b7ee20b563a36406ed67197c98e775ae124f352d0a3e3948699d15163fe118675d5bbcd9001be102111fc02a65d8aa2e9b2643f12da31de145098602b210b33bda7152b66aed5db8d4495dc48dc1d15798ef82ce0f538a495c4658379de017719fcd1b3814c821072e6f6080984b26e7864155ff784a60f82581e713e0c485144c09887be7622aee1af6b95d5cc28b39264e82906d4a50df87537d8a16c5b8a5651216ab1c0743b1511165fe47a10eb6c040ba900e099b60f1f44c28817b6edf5188b1d98b8ca8068de053a28fb29102bb0557957ec4d04c77487884d91681b42360fab79a5731ebbc1134977a0151b3d046e8aa62a6bd8f70b5767f62396449b9612cd8b6e0c23849b22a91f5f022fb311c0107e413cc42667a546d9cd31c897215a475ca9f825e58edcf16c7df1de25472618f2a94b9eaa6e4bdcb1eda72782e8cffe745884121695caf7e183e4f87150d3f7b189941ba207328376ddb7733338251db56b303e1c183e9f60c58175c754c1cdffe71f5ffd1a6283c7af1fe839ae1556f9d979d8eddd28b899e59c83d2399fc8d6920733916705849a7dc5cfe84956ec2596ca95cb42a3f9e2719f13eca279d5408cc370f0af81feaa43f1b52b35c62dfca0d0a82bc0eb42585be8a759c23a2d4aa8f69ae0ce8c8c5889554bce6b2034e84512c7fb8d7fdfa046861441f480a478a7cdb2d3953176286e6facc15e96ec805793e95a3acb02e85935f1316a35ecf94541cbf6fb71e6cdffe913649e2f525c6a8d446f7c5ea334f3a632e6037480816ed2b3a8f48032a1cfbedc7cb9f7a662a897116fc291541f54b1ed7c35c65019d3304bf3dea996f1f91b3f7c0c82236b4e4d734d4f8ccd49338748632542874180f9f24589efa43a2b42c170cff906903662f6d3d469268fd667960ab8115c06cc55866fec72f0f9d9b26aae8ab6d805b0162afb4625090e98a413f037c99884a6085c010240ec05c0a52994ca0340da28906f75b11a1cb2b6b88edcd3df96fb1a46272a95ef57fa3b02edf7d599712545ba0fd967ca7abbcd712c9fdf4df81525a05d6d71b88dfe80aac81a04dedb9a68c1e6394d1cd06a59273521d8b1e16ebfdd9121b0728405adf3409f639b61e0ec1e6a1e2b4130a735a51249233d74e024a32169ceed734745f4e166e05d0c1644ff80e5616e04ad22893ce43fef15ee9ef5b211d4f55bcab0e19307dde871393b2527c1293e5acc56d3d8d43f2f9785e8a04fb334ba988105913b5785ba250683a25d699173760c30bcb7512f1e3c923b88859b228b11090a3c167c8c88aebc978261969f9444aeddb3f539b98f9685e50941025120fb0b763c7529059cb831f157cdbe3d57b5d33148057dc74bd615479588dcaffc64625684ba372e91818d6d1a402dfba2f3cda432452c9279e8f5df9e47e0e24707cf453bee4d1a526d52ce0ba39efdeefde701d5f1637de91553c15d141b7a0cac0892ae5264b150e450c7cdd625bec9648cfea6a00a2f127d2286b6e4785d35defac1d79d7b56310457936d5084ec4b0798606b71560b26fa7ac452191422881a7966bb164f444af16695cbb606fc712b2345e6808177f99dcf5a961dc2ceda611e8e0fa035ae3442b4c54900e1985c17c7677fc26bfe40c121cc0b021360b34d1cfa2f27ce3273a0def65a9cbd7c2eea469d1330559f3f13a842015d2ee154ed2786c9a3b30a94cb07d1a8c139ca98c7b903360c5dc010e4490783c9cc19c5430e699390518daa65e4913827809ba14555c54e38969f080844c99aba71f3157b9d4003ca82d24f90291670eec55d5b7b658e6e18837a67db652ed59f6c0d9bc3b95064e7926c21fb3e356a3fa9bb8469968b1d20f31d167475ce659eb15e0130f16c4a3ed95279698c33dfafdf5231a211a08a75d8eb72cf6163be4e604991fed7ae3762077338147dd23bba6d6836011dcc1335ce553ada9ffbd9c86347fc71ef014604562214d87961aeb5619ed6f44f387f508f7c42cdc534290de48a2735f4454d129ccb7bbdd9f97575ccb572cddb8a80f9feaf8152542804c7e3db5edd1f7b3d2287931df9fa3f317e1ed720bf9faa8e5e659773495d7603ac10cc63570898112120c264d573a798eb6bb8c955837d90194171c037d2250a34d50286d062b36a5c12a41463c634274bb85b1cafdd5a75d1eb56184416e3534e6a62a44c4ebd8ba00ad3eed59c6063135fd1ba04e8c49a4ad1b7b633835b8adb2486344e735ebfa6e94390eff1e26a3e0b7b7d3f71ab9ec032cf018a4dd8a89c0807cd2594a06641c608cec563b438d39921bd619e7ff8d7c5a3ed0c6764eb3e9e58dd27c341a39bd1ccc5a44271e2fae3dabaf5a447d9809429f198a4544c99acd5ac51b2485cd00da7b224d3294fbb986b852bb9dc8c485d9415f93912d1332ff4cca91be9b0c7208e90f0dd23f85522f00f9968c59bd987b1a4966ed7300517dc11f6c6366955c4ce88491732f4a97df85c90b192909a53abe495f69fc925c2bdffaa7989f6ad2d943b682c6224ce57687804c0f2e4be01c3f634ce6e8130657988a487949d38f2bec08b66885907153a4d68f78dafb9ca364daddf62c96092a5c891dc34ea07e8ed553a46d1b0792006d1373c7d0b47f604407c9041beff2fec3941ed23b0e164152e29e74436078a18a627eb9ec281f8fedb81e2e8d0ea284468e5c22af3f39dcb73a82842000e9f2f37992267ea3ddbb448d129337d1e78dcf7c2dbf4d2dbf0d9e5a5407e0eec18d647be3b7b37e0582d3a460c1af6d078010567bb625099a9e4c3a9006785b1e70377d956df1b0b7123edb016dee1a3ad1ad8409466a782531b4a59d29e909cc3f24c1d9375a96eca11ef05d3f2799eb9f260071b74696bb4b4fb6a2f2fa9982c162b0e61eeb995e4f3eaf3613bfbd692906c7bd6f4b78d77348ed25f5645479580fedeba536c2aebcbb029f971a03e0769b0bacbe270c5f92793d13271ed96c4145123860f669ed6b76764ac384c4b922c84ff210757ca83ba24821c294ed5e98255aae0ee3cf48d1df506ef3aac6f2a3e10d1676f284e7465db7e01b38fe0fccb8440c74dad1567f0e2b09b5489d1f371fc17935ca6f73148af88298a2d2934f3bccd10c4b6aea6794b4646805c3df92aa67af488ea5447c894061a9f491c640eea9fb33f382889b93fd4a9460aaafab25a94446d6cc434e0111d9f6b4ed6e530bf451c00dce19f32af488752cb5bbe9ac8c3317921162a3c75d9c61a1cc627cca2d0aa6a8d7e9db951503e37746f43e75eaefd17ceafb441f55ae8592eb370464465757999acdda1f5e3894d8349e92aaa21ed3b147194533fb2d6896f0fd14d5a13de1387ff7f86748544c74ed3726ca77057ea21eb5c7eca787e8d6ee515b1f1bedc5503e0838a0ec4c80767d9770122d8580d2e3dd063d9b0046cda336553935df5c1097d22e067f47332877325864076dc9b5ec109ad5bd6adb6f8a85965b449ca6efc74c6c3798809b04bf672bc98f52b47995b5f21312d9f1c55c03dd74c9fb6a617115461960a023f19aee228dcd6b6a6dbcf51d3370f2c1641154f79dd3043ebe69e38e9ecebe4d8c471d0fc9fc0fac6232b1d55686fe8b6ad0dfae9026be8d2a6b6c0f51960e5bb05392e8671a5cc348fdc5c9dc1a17620ac83e36bdd0068f0dabb70a37b33d12b4da1111a1d2111110f2cee6d2a1d6e02cda248e70a9d99fb694e902b515a61fb26b81586b71b37e82b8e8828ef18779ad1c7a731e765c4c14f096bf49315798aa6f14c39e92dc477d83aea90ae66800154a558f70dc4b4ae900be5f5560881a80e3e7e990ff679a8b937e1d0e57e8d85c3662cfdff9d0dfad5538257150b45d0044c32d42e5f843438ef27d8576808bbaac3a857164be7b596255dd88cac85eca00630f56bb1d1128e22b60b891dfc417707730854b568e67c2e7585331e08b69755a7edc4fe17ad7fe7d95adff1610392f1bfa165471453bb56ff4a95b95fd82df5005da41c8e836cb3c3df35042711ba5cd51bc782733e991a2bada8aaa0531177014d38cdf5e08d9341812a8be9b91d8266506cee522c50dd2ec250c7bf94c279b39b8d2e8831a97d8df634c4eb1a224d257557b053885e7194dc22881e0677a320ed60846b883fece5172624d287c1095ad48a5568608c591bd9e4907e9afaf0a129d322852de697456147243b64d103e356769563b3a5404ba48a3c1c2f4b59fe1fbeadb857a2f5295ea0405ee4b341a40d5e9a96e733206a4b4939d9c470347dd643228c8e87dc522b08e849f33eafb4898d279ef4301351155d5569ac36bfcbb6e0e0778e8d68c2e8944ebc5fd88c649239c077811a5707de7bbfba4a4aa7aa1b522a929fa4fecf7505c9e0b1cec0c92df458ae6a4e6ace9d5a00248da25ae11742a0dbbeca2282a1c9010e11b01481664f8cda9a74994349ce2d75e80c969d925a52e0ebe4b0ff4b4b2c240a2921f1d3dc1683ed6c411c1c83034d1bd4284d1f674ceb16d01ff6e50f13c8997f4a4e2805b83aad5c553020d7f3bdb278647b38f7db5405e585c6f39eb85353a93769cbde03a1bd2e5b608679705c6ac4336b4d7e525ccaa66da445fc316c5ea3f79d557381c84248f307594f18a1f8946f532440a0286c0c99ae7cc916046bb750a7597a3902532f860fea2bc81e341cc0b904547d4cd18351f4a830cdd34b7b1cef4d84c4c47255c667d6758b12b8cc0d4694ed33e9ee13a1710927db86261c3cbeacec0f04aa4ddc1a60488aca35717125e4d5f56b0e042ad94828558b4e32719310077740e69b30321dad42b920fb2f8394ecd6431cdc671b8933a36eed04794c4ecd1aeca46f19412b87cf84a98770f8fd3a1eb35a10bf423832beb20ce50712bd1b80227a0f8b05dea5d1caaa1d3e17ad4add6bcfa680142861c0b2bbd8778c847c8274ee68bb724108980da0e60a32765a8b5821ebf00e820a5f555f55cfa9ada83ea843dc31c86ca328601a22e9fec4489efb6a99353ea5ef1a558011e67ea8bff93d04a37fc3f1d2d1afeee81e4adbe00fa03bd748435095e0f3072acae0e33c90e2b266d6c76854fbf9e8a954811e799e6e730532d422676ff5871535604b8e79644db74e4e13b9745a44cd77bc1d22220c44debca54d85c864d0a4ccb36d3899f0812294843287b67f6903b002e104381aa89061db34f645a2455930a08dc0f0c715c185e5991024462a6c06e0b695c2325e066e4b59baa8c85bce48821544364374100d48271a09b60e0540ece07b4d9dd91496f0a68985c5a9e9917d12826a5290b537b4ea2c5da6efdad625ab1c579fb71cb71aa8867388d1eb6ffaf4bb65ae0d3fe0ca47ceedcd06c2005313db845372559dff9386f73d0a2c378825b525970e5f779019bb2bb43a837c4cfb5bebb047a23ac43e7391a148c128d9349d60d3d9a9adcee873c65c3866ec1232f2e8fb65efb3ecdf485fdae932423a9312519b90475c93827889ab3931deb7c79dfd62a013ed220eddcaa77ec661a172fc905b2a610e3e5b231db4c853587c38ea8323edec90e5d0363ba4d8194f80491c6160f426481841d4073d2b298dfc9af91a75f896d7de7cba7446b93f3a700c9562ed840f3f7e5e055f939fe108dec4deea440e8ddc714ed0ed16106c854c011d1a2424311bef205d5acecbbf4bf6a664eaf6853a008b86c53207458273bf927f1c54e18d8dcf726e4c31665dfd881bd7c7218bb6e79870f998deceac7f7b0622cc76c2cbb57051189e39dd5621cdcbaa1682632b0fe75e0fd677567af31b7f3f8751c0a8c7f9a000872f34dffa827722c804f107e6efedcdc971090dea0f02515dc174c898160018c308583e23e4d191a6eb4a9441d8ecbc962b385981549909596fd55ee04f83b246ef4ee94a5a4da17b64600f07ec81c1fba43f7b891343196388c738afe2776bbe80de4c6694fea1bb6b44fd012aa6920d3bad2f8794993b816106c65d6a618d4fb03ba12d7a15a20523a520789c7efea3ceb48238d6c93f04d0152eebcdbb0f69d7875c2cf394e84080722184451e06a1aaa8e8e2883a16110006028445556b446c5464b9f531831787e01375bf4f0395bf9897512665d02daae257b4b29659229070aee09be0998956b7c9f929c004b81b927c4c013c61db73c5f88d01d5bb41eb523171f89e123ada0f9f357b0f93b6ed3c5e3e7efd891db819b2e9ca023330fe7119a33eeb8a34babd6a2b5865ce733a1ae3b0dafe1fe3bbaec28da01c675649e77ba709ec7bf03c9eef8049f13621e4e1072ef53f09f009b2e0cae603309589e8d440fa4049d89a5b0a4451b4284d63cf527ea4f47c4a066110088233020b0669d003b61fe09b1e6a94d3c9c146402b3b560aca066cd1f001077ec515bc17af0c03d807a04f5a0f5a8a18ec0f23c321b8fc8c656170964cc1d71601f0e6cbac4a225080a3217e7c7542d55b341c3c1446a736583869f078e8dd974e1b731e36163866363d603cf44b17752421f07365de34da51c96e7b7b6b84eab4bcb965b5b8494716956e2be7ae2e1fce9f879e0e0e78123f34a969fac7c3c5cc18018dd06ec781d4f4f0db8794902db17345185f338a0933e6a42d4f12ff11382bbf447d40fce0cf503da9a3580a04bf3489211a979386324190a380f01627479ac602bdc74f1005b345fcdc7f13cd5bd607bcbc3e5f92d3042cedc96b41de537185612738a30ac24def26cd1bc236f8c87d333ba5c3c2317664102b5db0206b8b8314898982b63d2b5c5953f7276c695b30429776cd124900c02a10b901492b41d6184644dda7c208be4edcc95f248e25a5083db034b0f3274250caebf11776cd154afca815b5be6d8aa79cc65397e70478f69a1524366460b153a7db6437647ff71200fdab17247077221a7ed54b9a30b75372d4f54afb90d080feee8352ff29b8e19eee845d266368548cb11c9cb99f05f6208ff1281fc4b6cfd4bccf99738e45f62917f893aff1277fe25f2fc4b34f22ff1c8bf4424ff12c57f8901f89788c2bfc425ff1207f02f31857f8906f897c8e45fe20aff129bfc4b54c0bf4416fe2536e05fe20340f897b8fa9728c2bf44d6bfc420ff1285fc4b24f22f71847f89ae7f8924fc4becf99758c2bf4413fe25e67f8927fc4b4cf22f51c9bf4401fc4b24c0bfc402fc4b3cc0bf4415fe2522e05f6202fe252ee05f2203fe253ae05f22042080fd01d85931b8a33b007b03f084cdd57c560e2e03f08cb180a7ec873bce589ebf003c7f1480e7cc0609c013a8099e41427cb8e304caf31180a7d00a78d28aae0a78d698e0696bc13d009e4506c0f376e61600cfa314f0c401e08c3bcea33c9f0078e60680296c760580696c09a6b21174b8238de5f94a30fd4101d3d9ced01de94f9e9f0453a000601a2484ca1d29509e7f02a64222a6b41f6ec6b4860453db98f926607a04d3db14b7044c8fe66abe114c712554b9233dcaf37b30cdcdd57c1e5c61665c12708dede02a8bc17c17ae3f3ab8ce707047c015a808ae4137984f0457a121b8d2467085e05acbc1d556820aee586b797e105c8b5ab8de8400ddb116e5f92c5c8f80e08ad311e58ef528cf1701d75c08d8c27ab863cdd918b6b2b99a2f84873bda98fd0100b6b31cdcd1fe640b6483729071470b64852c6d883b5a215bb3369adc1d6dcd16d91b00b8b8a32db247164763e68ef6c80926dcd6c97830738289aeb9f8b005095915244001134d26082f5e08ed1085151a883607bb3e77b4b998ecd670c72ef633bb33dcb1fb01ea824a60c11d3ba01d373b6e6aa6b493c1bb7919e33274385f8028a514fc97e8a3c7bfc41ff37fe04ec807ee683464dcb113caf37be0ae06e2ce86e58e5d2d7745dd6d47e88e5d5177d4e1766877ec8eba1c6ca7883b76b91a3e8000f3a1869c3afe5f62ea5fa20aabf0bfc41cf373602f853dd908eee8c5f27c8cbdc7de8c0740412598e08e1ed08e9b1d37d4cbe91654831dc07ca8c10b6d3955a0aa89cac9cdabfe25e2fc4bd4817580aa263a7ec7ef009dec781dff1279fc4be4813d1a0ef684c2dc1dd8b3cdd5fc1bec01d9c11dbd5a9effa930490b284242b274616bd1640ffd5a53351964b6685d5ab7d698223079e2b4cae4696a15e5d9326a1de5b185cbb395cb1367e63a630f9c5a8f9aebccefb1c5756c9e8f23c5752a0af2b4411e4d6e9ab9be92996baa464f49acb5b8feb882e59b5b350f5b2ddab882e5f92bd82a664f49ea53259dedf71239c021e30079387319878a87f3a57838298833bb4fdc116716030b74d8a20527f08188d9c599cdd5fc220fe7e3cc8af27c9cd974b5682d9c19ceac85336bb568797ecbd62a6ad15ab5245078dd70a9c30fbed95fadb5d6ee3afb76713b8c6b04dcf1507e0e316eff5824cbc7301881e4fe1f385c97f2f5cee7dcc8bfd9b93b1f86d1b4db2927167442df59a82f415513e964be74a0b9ea9bbde78ae27e2bd616678b12f7f57eef779ad7bebd3fecbffda9dbf4818ce8caacdeb0d9185cfb6365b31e35ab76517331c82ec64fadcd95a3328fcc76e656e63a1354e10871472bb33f5efdf171397b830bb27f9fac2c65b1f4d85807f11fad0e47483f5a24b27fcb1246bb44f6ffa67c265fd1af784acc13bff770ec8adfcb1e1a6badcccadc25cf90e23a41f606186e28bbb55628bba565b7b5ec8e739dd1fa641274545c4e7b43f34cb08c2c71a62d8429bdc5f22b9eef61259d5ff8d2bfc40fab9a38f99748c23ea43775b4d11e651fadac62a948c811fc49b8860fab9a7c6ffaef4de0e94b58d5a4f4a82f3d0a549dc0a2ec7f63a29aefbd09acb6b9f21a84ab504b22635d420517bd4aab559bec99ef6f6fa852b4cbcd681bcbc920a5524e8e0822f4e8a152d970dc8e1297fe58836879cc2182c56d59e8c3439fdf5f933d13749c0ca2a57924e86334cbdfcafc2d90ec67ca59ad31993f790cc35c9b2ef7ae7be094b58ab8e30d2864560664e21750b8c9f351a0794e179a2bd60e376cd66b98e0eb9c5bca9efb9c156f71474fbaf0ddb8ce2867f6ec25920447176ac22541d77fac01bd54a2d8859a9beecf81959815180dcaf26b60d6ba2399b603e52861446c2162e8adcd6fa8dc5958a192fb9404b452cb23fdb1428b2225cbff3a84c16d22229ec827129a4929fe51d358a3c4d65a73b5b6d6b7dfd9ef4e4ac279aaf54f4a1a5c72c4a5e0fc1a9f539227aee3a08c41719d0e4ce11d2e0e0eae3fb6e23a68c443e93295fd96b23e85b9d4728149399354b66429258ec84a118d4808a80729a9f51ebad0592c4bfa33afedbe84c9d83785f4481cc7cf757715fa2dbec08c650bf87b4554c9312a4f641d711677a44f7c4914f705186ea62e68967caa43079126fb3499fe344b3ebedd524d284fb1048e4ecba384cdb103290862c0572db3bd02cb3f59beac212a2297e54b1f2a3f577b93bbae7b2f77a7155c746196c99dcb6dca3dc48a3bbeb24b201eeac058dca6353c707169a97f1fa9f5ee5cc93ed1680f1d54a1d05e6e105329c06b51a5805208c486e1e4eed802135409c048f63782648216a8a04a001c702f378819c913b7171bfce40eb768316044a50053084a1e5629c07ef71d1882ee2d0b1da86ad291beb3200ba59267023de8bd9c1a93d45c49b1d4a2875bec5a749adbbc8856bb55a765ae1099d942c4690b7325a9b4d53404950a83224bdc10640c71c586adf4d2d4dc16a64b3e71303669beae9d499fb86bc73477409a8cc5e694b24ba851043435ab5dc90144a2b82434cf4de1e0a4f2f4592b9def2f58d0896896fc7e97cd95741db25b713cf2fc00b9dd510675834a5e7ee75945a8b7f810eeee1320e54ea53c3657ed3189e58464621c19789498cb300fee049aa75fc6e64abee7dd9b8a6507c70e93a50c9a3eb1e9f22ae44a7e18991759ca31b2ccd1204be954344bfe9319f3503e35c55c06fa130f656cca4a637c154784c499dcca4d84c413f993269aeb7f9390903db8a5aab85caa0cda3561deac332a46bb24ad7e8a082060e028a7485d1a79a438098ede05e28e143773f236ca1b912868ae7974689e32a499e6a97487b1e6206df5863a82214378f238731437731437ce1c4e062398e0924087cd1538ca9b1ce58dda51de6439344f91f7207d07e92df0bc7be7ad48d21c0540dc8aa579e42c375d73969b3589ae48d43052877a21437f9fa28a2b45f626b2f7a07b90478a9bb95996114a70e78f33e739647fd721fb4f975e345d31b417a5aec3260c8435104148d7f4ac5c24b2963c73f23667cdf29752362bc84b0feeb27140bbbbe7ac7966f69916a0c925681a91fd75bc2073638a6bd6042b16bf49d0c1501ca53877fdc0d15cd728ee5e81e4f4a21c739dca822e883c9ae893593467aed3444848c921e431ae7c3fb1e079a914ea697ef43e1a948a49cfd54b0ce7aa3d19b2531bb2d31c9630a9d5be574d708ae97b95487a9502a4487a2992c09d47bd44d27f27dc22ca69f554676e9ae9e6698f7469b47065b8d70577a4b81548ef7d0cd3357353068e83934add3b733966341c79741c7994349fb9e9aa48c895bf168fcbad22fbe76e2bc83fb899189546134a05f9cfb2539c939121fbbb191358b1cc988f7c8a2b964a43864b61f30cc5f5576c038d7c73a4b0378427775e65691ef9b99f2b7fcfb548577b2175642a8c57c125bb8ce2613cfd62982ed72257fe5caa08e3472b8802f42ccd92e186395adcf181b8dda9594e85e6e95496db58725248969fd33c34cb9ce735cd51ea6a2a600e6b97b26546c56f52f268c262258feeeeded25f4ac112654a296508b93dff299bd58f2b1941c443114d767be2b182eb3fdfab09365cff1f59680aa6f3c8e17a20b5a2cbecfa9c72520acbf5bf225dae130a34b921a24453ef42b1f394a484b2d527b9fe8e13779c3249230177479f3971f17e7d59935bdc8502a5cb268edb1da279e857aad372fd9e24869aa7276d0867f9f23bf9248909c063069c1199d424704aec459a9f4243339b4034d8bbf8aa56dbe8029612e75896f1b0d637e2e5822a99fa94112ff571b97e1540f5984bf7690457f3291d3625e831a912802dc12ce3684c4c27a5de1324a1481a0f52f26842519f36d7a92598e50a44ae27d3a900b604b33c41f943cc6d22dad02d579944964e49da84181010c97331719b88f684f62477df9d3521876bbf898ec0e5eebb52cf345f272dd797cd80643f380feb77ebc81d743865d07207add31d8e534aae4f43a8ebfe368f457dd73d3d25e9683478caf0fc99ab6ac1396b966cca7850a932afdc86fc684bae9e0303fa6caeea77a00d8cbb1bb97b1907e3ee46ee63dccbe000e3e278e24adaf4aef3bcebb65ed549dbb97261f0b2cce30c1a250dec5e5ed9e23a9d3b0412d2a66b02d1abfa44d4b0e4fab5d65a34839a556ff5fdc88bb408ca9d25b797305ce43e256182c47170b9e30c9a555ca7f4dd57d4cb5312d2cf3cacd46173551f8718b77e9e6d2d332f61bac8202f61c09c3cdbd1ee9578ee5640bd2a475431a1791ad0891477e6aafe4ba4c1430e0a8495c410a8902c99abfa2850655ba459cc8405286cf53f4c010f6bed9b5fa9f5bfcf7e9ff779168b2c70d65aeb43575c56ea4a255289d479b922d70589442275a0fffcb0e236d1115d7267dfdaefbaeeebb07db7519140320885a550d03411c95d94aa050febd73faa400e58701483202c66ce88b5b374c10515d8510c707842acaf991063dcc00734f0c0a84898eb840222cd7fd284c22a0913656caeead3e081e6e5a90137228d4703aaec4b1105a2700c18f0b03e0d1ea6ac59f5bf219a87425c69495fe9fbbccf2b954aa512a9ca5af63998a21a5d48cf5da8d7297d257dad7f529d4ea69f41eeb291090d81b992abcc28d77925d759cbb5c88b2d799c5d729d45b97a9d47b9fec9f4b9cd8382726d31b9fe84f2bd12cf9fad923657f5eb8f30c84cfad27f7e2240e96514fae3615595beb3fddb43fd1c27c848397a42821f64682a4a308611596c280356a684e50c4b291ece3c69a4fa1ef6220f2b16329b87f5b304d97e98b94d74042d574ba3052c8026adfeacd59f41f5a7d0774f5d87769e0b320b6b6d052d40614a84be1bcfc8fc9e246496cf83ca1d3daf296a8223cdad30d7880dfaa5c73c4b22790968749dcb1143a3bbc1979a6a567579d465179fb4d6be6c0f414abbb05d69299db6ebc6c0ce08e2093231a1235e3acc00280ad0ed872b3374413fe8b4d4a006fbc2418a269a383a730222a60c9da005665c91ab8209a0ee06b52f5c0c94adf312e5861ab2e462357c898118012842b12e6604e18597ee8730b5072e4a5dba2a1cd4d2838d762424f74a962e4774050757807044634819038a775d677e8fcea5799cee3071a711d7bf654f0d58eebf4d6b56f5e13a384ad8cd4951b7d1a7de81d33b2253ea5fc5431ae42165ed70fd310cee58e9d720c7b90e0daaf46b10fd2ae4d1b67c5d9390558ac46d38b8b8b4e6f11c3a5e470e1ba86a927a89f31fe7d4e6aa75b8f26fcacaedb96ab578d3a2d51d74bc0ed0890e9d2243725a4042086f00f037a0aa09e8e34115dee11a81c80b09c27a1528c20a8457813f5e05aa9af49059c000893d1e0714285ba332fbe703053e7298fe7e12406f913df06b2d5220c54c9e9484b985a3c5458134e5e67bd4a6eb066c5fd11e351fff5e4bdfada6832c9c199e356bd67a6ce9613b61200e86618f19c5b3b4ea3e80cba37d17aa2c77de21244b1736232ab86fbf45fb50987e6318cacb348ac811e4040dacc8406548cb87038cf7ddd3bc93e77f3a30ce53ace3330a1c65463d9dd36b08c303ad8b262c0e1b9adb9a99feb3c1371e07ae799ad66cbac232be9a6f6dabd61aa2c181c31c0ecfb0320ea6a2b5476447604762d3857ffe911fd7a1d9c68c860d1aad59ebd6a2b5a0e4f9b1e6b12b1fd7f1138ae6d2a861c3c606f4b08c87f3c333610e4aeba715e5b13700c81167e4bcfc509b2e9c9fefa726f58b0b6c221144dea2b56a0eb686425b963b8665a6f0f8b04c980bcf348f77f79c00934168f0ca07af62cd9a2f5727c04e3fbf4f3f7a11cfc9b15ee34ba21bf1d043db743d88732f0e6da12dd7322eeac716adb30ae33cc5a30d3cb66e23cd638b36de5697d6d1d82a43aa5122e531c4c1aac7c1c1c119413d29799987383838300fc10020d9c1eddc815032ce274db35b0759c88889aa7f89481c4788205a5a34d7c9c935b6b46cae739b2e9f196870fce7b78e5c87c6cf6f8d69e15c87e6e71381358f8d9f4f32a955fa1b5fed5f5c9f06a66f0307c9fed5a8814df994bf69ba8169be06dfaf8151f9a393baa44d3b943fcda5c1f47130156d04d4eba4196b3b6b9fcef0757f7d6b6bed2bb2497e49be4ffa7ca954ca493f13165c674e12fa6f3fbd1e78bfcc129830c89e1a19a4c667dd99ae183ad7397fd9dfc91f687fe4914f607f942450a113d0a17d108091edfba74206f4cabe77e058b3fd2c6eac0eed97f08f5ed99f128f07a0794440984710e4ce47c2b0130f65cc031dc45f06829a187a9e18eda00ad10e5e3077400345914129ad760c30c600f384a72337d118437cf2a59f3ce926231f7af24c46b05312da0caae49a0cd07cd3ac7e79f2a9054e8b31465f3f9ecd9a2ffbc79b1b1f394696986c3745968892c7a699bce764c2bd79fee658d464b54a2a2a018521b5206704179c153dd8a20416a24b0fc698c00b09cee886002a63dad2030c45a253891c752968e42652828b4cca4da4c4155cbc1f6ff7e75abbdb62186aeebea95e075aa0d28967189fe73ad233911cc5c535ad6c451571e5cdf1263efb5dab9479d6cfe2ce35e9636fc9a7245da2d1c2edb37f1ba5801abd12ea4f78ae300927e9d03dacb35dd224ddddbdac572a5fc700037d779763fd0afa8334dc6e501ad1afdfa715542a4891f4333657ab153a50a58214ed772b79e42129e740d883666cca3c94673eefb6f203f0734759a64c77d813bb5093e7438902450235e852649991ce660c72e3a451ff4c06dfed875abec97dfba106f99351eefccf9d9aaec9abb5a21a05eb0d36ed863b1988eb74bf112401701d097683266a7be6b6f33d20be72ea2117125c6971a5573133dc536e2225a2a8e1122961fb52d98fa8e933329d474c123d1100072581778e32a79ae561cf2ef39c20082fb8f227080023aefc0ed766d5b84eaa7952cd926d46769fb279a4ac26ea3a00b0c1fd1ad799b6d289aa27da2cff95962bbf3b29c991010a83a520c3d0bdcc48dc9e0890a3def0f5190fdb27b7130ffbfb5bca004645cbf4bb2aef6556a160b3f79e6be4919a6a6dae68f3a0de73d1c0112287a60b729d5aa57984e89e1c7457447fb5e601b32b2725c5736a8ab8abdee62da74ba25d369efed835913b2932fd3ac65d3efc365dd706686d73acb9b74c410f949464dac9e14ca63f3d6c3308bb634ea658660fdb0c79fbeaa3d37ab87be26109371353dc3275288a6c68cda29fe3893b76311d638e0b358bfe093b115e4487f469603fa257a88cb3c41d6d683567336443ad102988548594536467ba683ca5813b8b631ed2b7a1d9d03cf4aca5453c30f74abd62677636a97b38a7a7f2bc2ee62ebf01ad9345a1555ca7bd1491cbdd954c6731da0575421d2dd3f7ac0dcd7568e793e9531b5ae7e33aa39d15b140793491ee0d3502c625e591c6729cde9b130a525aa1cf5e719def294d3ef53efb52041faeccf6c77a25d72b261bdf93328ed0a5253b433d7d0b64e97730d7f9ae545a1db2b648bef738595c5225916af5729fead7996a7c57f18e8734c7c32762d4c7aa7b38f0aceeb13609844ba63f06c954844c71919d66d1f71c9bec21810b9dddc53e2153ac794e4f6d6840641b9a0475e09a459f0040dcd18636839a454f2890b229e7846b50b328bd358b7e37ae53028b20713b59cc75aaecbc6cbbdcd9ece19a4915d35cb2a68a67fe6ac59e4da7145eb93e95f923792412aa7e8dbb7ce85f9b5aa66fb77407196d9cc8f46da0c8d48a5bfa6f76b1e691b6b3347410faf43b1cbad805ea6625b093951e8993f00b328f3597b35132fdcfeba864fa38445c1ca14e96e97ba0f5f1902af9c9f46d4c49f7a47a1e6baeb3a19a6916555202ab54faf58ceb58fad6a779bca76f69e81e52cec6890e42dfc3365b9a45bfc336356c331473978d6daecc748f0d960e52cd681e9b243e3585c6dbd0a68b06983357f46d683327c786666d682918715fa079b4a165fa5dac796a32fdee67ba4822fdeec99793335d5d8cde1e3fd7d33c29a139878a5bbbb8ab7be22b30cdd341699615dd636f1e45f7743658299aa7c3a159f4290d8dcdda846a982cee5ce32e1bc8a77fbf1188f2eb945648a88b358f0dcd639f7e7783ec413dfdee4947bf83d251e97edc65675edfa7f94e05dd73411a70ec5890e9772ae820f4e9a37077830c42ff84bb2726dcc97007a559a27c7b4a22edd7dad5dad5da51f190be9d4d57f7e32bfab4048e1d90078edd2cd3efc0d1daee065acab28b99706743b36805bb58b36817cbb4d6cedace4af92adac987409132acc19db9899410cafe34cde306b8e1aa721329e1822c4db98986c6c8b279a4016eb83b72130df9204ba7b2066a84a165942b7079a4d9af1893af0093c790e80a2a88aee892831cb9a7cb06fe7d99c0e5cf990093bf6962028afc5193631b4c5cc95f353956f907c93a59629583ac2c96982277164cd4903f6b468a99a0cee45d7267b283307866358bfee7991cd758a286fc914c8e4d65e4af64725ce3287f9fc9714d975c3a49f033991c97b4340a05a459f4f1294bdc5928a1831c865776edaf481d42d3e7a14328de723b2067ee187e4e9b55a90b072ec7c8922650c432f51a0cadb7b4ad8baa4bfa977650324522376d5c2744c4f5b7141c3b90db43f7ba713cf9ee1b5f60275b807ea7a47b0a52138daa0a80eb8c7edd5592b97c681332083da7c84f26e5266a0296a78bf3bf5285c55ca743419e9d1079be3c92d88c3b7fa2e669bea3c0d0430ac457f48bd00f1c6f05c7cff669b00f4a96452893f018e651e2510ee5f914dbf77063d082a6f1529e2f536a4233d153e409c5ac933e6d4a4d26f788b0f0ca908cbc39a60657e351f89998894473130d8551f299a2666808980a8ca88205410cf51641a4204b0db4988189d1219ae0f2853251c6173572088c8c45ca90179608a793d2104781623e361f2ab239cc6b8f7d664c7d908fcf13d7e97eda5e914719454aa992471fd94a165b0d3bf440872aca105d8b192a587471e24c9814880b28e24b1924be48c24a19d1cf98820736d020c50fc85011fd9d48580cf7c85634659730577e19d2b58234d33c54b44b48af5c1635cffc50da425b680bb3adc351da3a1ca5adc30aaa00e6485b8bfe3019344f7b5e4e4c8519eaa022bb2c6a96e700f1895fe2579f5a0b3691cf814732652dcffa485cda64170fb3b465f9eeb60fcad73e9afe7b2e81f731b247443841b04958dacbd21e45cbfefe93f4eebc35178f49395f4eaf0ca92301faa3fbc0ab4286b95ea4729641fdb2bf65ff9480eb48202a6de4d10b9abc9c092be9e04b1f90ae10e46a5a523361a16b48f0f00cc138478e55b3e653d02b618cbb3a56cd63a97567c242130fdbf601e96ac980f640f3783fe7b3d03cdde3fca450d062e4d95de499459eb5d6aeb964f95584f1a253c154db562b137711c15100034ee6ec329d83593a9f7a496cc993524a3defcacc64ca2c59be9723df4bb26a56ee2a9659a8c892a7055968d6cc0973493fa50acdca69966cdb9c739e56207d0913403291e94bec9efe28551dd8c47b092b45b98223b5b2962b963512feb9f231515f8019336599e61ca22b73c2dc2eb28c8756e49cd8b2e4a1e5faf70cca724a9982a6b969360ce5f94458541ca240c2c8055170098382e581062d47b93b944ef2044d27e8703df45a20656e8c511e4d2ec85c9edf440e7774fb91c56042414033a1ae354da8abb6c3dfab9c1088af5d87baeadf7845b64673a7d445405feed289af736791e77cf1fb7088b8dd359fdb8a74f7e118711b4c7dededd394050812e751ce681226672308b41b08a3833d8290e71c4274e78ff2c8e734a24fd28dc4e8c2822d6c5e374b4a79af00639253cad93de99c941a8d1933a717465478f1444be92de1195185ac0da2eb7cf0ec0cbc788194d28b148c5e9e5e90c0237921c32d954aa5cfd445ae4b24affb3a2cb4202daa8c998d99610c1f31ca500ac6933137a22fb420a22f52e69cb683f2821b6aad9de7534519efba53e779a42a8a9ca05921949bc88ab6224a6e222b9ee4b662866c06c89c52ca1a368cdae6c607860d0e1b1cf676bae148e148d52f282ea91ca91cd60bbd3434343b704cdecd9b243591e1f13c3e8cd3147ae3c60d0cfae0c08103ec9123478e1e3e542a958f1f36caf0688f1e3d4210e1c78f1f2200199b963d7a9a12242748ce153244c89473d23984c81022f4122942a4080d12244891113e215c3bae1dd21396ca1424ec90407ac274831003365373be69cadc63a4c7c8a594a6bc28b7a7a7e788092594508209484c30c1042459052e1f88836ca9c510193e69b5d51e89118329a59c73ce5a6bf5485dd775a41289442295becf0650ecc00889c537a7069a488ca13ccadca6dc445b0891e55329a5cb2d7c98537a5d25288f1ea5d3c12aca90f18208cc1630546e4c57f298baf19173b0f8fa5bca96b2a56c296501262dc09214ace41aff0f73769a1624a5a455a80890d487393bb7390b3097549b02101f355edee1364d073079a40128c092148600e23afe7e531fe664efc71de82a4ec31c0802d7780341593e85a189be98e58e92db469224f924922cc94ff6933cf6d017b1c65ff8d078912efde80c2543ca93f47944c643316437a64927b5e2e856693db21d6db992c74b02e208a8b31d1634e4a39f3ce2dc4728388a8df1acb5d6237101668b249548a52bd94d3f94bed2377a5ccce40f52cacf446a96cb800b586e8f24268c5ce3e1774af27da7cf748222660b992738c27075f08138d84224460a22314888d10111182a4462ac8809020b16e343ae114383f6b00be253f57bf9cbaa06bb59445d3c11726ae963ce7c507c76174fba6822313e794ce5de424c966f1243ca1c334696fb9d8a2d683063790b1e5690dde66183ed34f8a4f449abed3c52e9339d5034d744a3068d1aa631525dc848296bd830b2410258cd89525a73a386dc0d9b1b363293980f0c1b1c3638eced74c391c291fa82e292ca91ca61bd7c4ce4d0914307ce095cad062374a874a86616425b9081131263c6ab010893c96452dde0806a38c10e130d0d0dcd0e9c1a337078e0f0c0fde04a709325982f60885226323c9ec7777104068bd0c8860d1b361e7fb1ddb87103835f7c94004d3870e0c001f620a281881c3972f4f0a152a9543e7ed090021000000299322e0f1e3c788010d21f84ab7065cbf020d778886b3cecd1a3478f1044f86e22987efcf8f1430420648c68a290a721568bd522d3c554232354a515a415e446664af6930f417282e4502b7c5c90232447889cf9f80819226408191999984f966f2203236308912144de8848112245c2c0050912a4c80861dc9c18c1244488102123e8742174a2c94f08d78e6b87f484a542a7a8c1c30e093b24909e984146020f093c612091a584727313851144966ffa02250c2a39c8e0e9e1e909234a182bb84461c0c0c019657f9347a6c7488f9133606491a5a456d47c3152829112be187d5cc0d8627a028c2b6054d91103861430a264f92629064a765ab1e41a0f7b7a7a7a8e984034021f4a28a104139090a867820926904ca04872154636e41a0f2f93db07fad0d2e73c754b5ab9909d9152ca6ac7744673ce69bb2fba34516baddde7196df94289ee94a49bdfc99fd89b2439b9c8198121fae24a2fb123f7ad8a15dca808830913f4ed2ca594d2ce5e9a6f97ce4538e6903cefbd9b4afdd70ebf05effffcff096505b79f74c4ad919b680a2e3eacf52a7530b7972f35a0b960c7731d6925e584741b0c0693e14696efc9fb7529410a23433df2d85d8c86ba0ccd639ff1c9f37b944f249429a5d886a26841143388c20c9721a4b0810a298e9a488a5c9ecf82045c90e7b7109427519732797e0c33c8f325ac16eb214f222f67e449443405950954656dfaa587a332c2d8e1053224436470f8814a0e58f044ec88c8d34a9e527aa66932c57085166700e1c56804649441031a8cc850011426a035f842c6737017154d9d47daa253d3f452d4c5d6ac7eeb79d662953fe95f620df49ee4594bddc357f4e1ca9f56bef6315a59f67ec74fdfa6efbea150f5360505565cbd2d992beb42d91be5cde59ca813be32f612276daebc2f61950599f878f3257a7f8296db2293b9f2dee4dfbbd7a4f427d00992b9f24aa0939cb9f2de043ae8e4e7cafb0f0cfa1be95b2c812a0b4ac043af85b9f2bca701e57ebe793f6bdecf20ef493806dcd323bd3fe93d4fb5428b3e9e8ccd95e7fdcc95f713cc175086648fccde53d90c9a429e3757ded71cee3883acac33e3b3efe425564c53b913eba4a734d514f882aba4f30ba966cdaf4fdf6295059b49eb90e1ca9f3f7fc7942bfd8ba12b843250eef772135d01832b7e2e2dd7f9e3fdc24c3f0c735350d584f4f429e95f627df9234177b7ab595711ba492835556bb54f81f711e6784f31e91b979ee2f9124fa134845c9212caacf4f52bce7582e1cc993b48e6aa7a747e771645330ffb983579fc2a028d16b2c040ca9814bcb133928566d525be92a17518d061fd2ed696682be85c051d14cf2fd05cfbd625d79780a7a6b8fe2e0a8c3226639e873bdb750e80a01a25d72bb9a6886c5452fea150ae39c826fa15a585e8095996df06b8e1099fdcef251d1a415d84a055720a6ee9bf1fbb164a1b9240b0d68452ea6ec29ed7dc973071c73e6a2e9a199307b400c31342e199da6d0c2e27a5bf8f4cc3f70105cd9149a6f17a499a45dddd3d49b3a8bbbbfb964c03d02cea94be6c9efa746c5c4f8dce8e87949228e94b292009c01226ae53a58ceef4d0a725120ef4658c926a3559cfe166fa543c172425ecd1a8ad341db2254d24e04210adc8e808976b3a3b4de1c1d71f8dccd25f49dfb6b3adda9dd80443ccfbeafd780383afea8fa6d3741409857388271bd8ffacb516abac0537d0ac6aadb57603cdaad65a6b2b0ccdaa560a5df19036e4abfa27b925d7ff74a490bb63e38672ad5fbf05294396b1020cddd3a35e0a610086185c07e6ae162b0b550ab9055a4716d161fd5a7492456060ba52b55e8ff4994e96c6d49d06d081d382260c5c145ccf3b3b24cc9d1dbce5d6a49a2703cdaa5f3f870da911d0e83272add7c3fa28ece169b24ac22c416cc6ad3f61680f3fb0c335796c9c9fc015dcc6556bed23710cc4506d7d5b3b580c3e5226a3e072adb5560994eb7b9d35dd25ae33d6e4aad341e937dd1ad7993580a8e15c5170da3927f873d5518cf46f1e55f4716e2c595555c0664c1e25739fbe53a72a0150d0f30b2ebbaeede36c414a29bd28b04f41ff3a769da906cb7497338ff5299db6befd4e425378094085427d99ed5b5065b337e7acb5d61aa38da8446d5576452c99a119090000121315003030100c884462d16024cf1335963b14000e819844684a9509c5490ec3280c820c01c620600c60001863a686669b014973e86fcea010a109ee291fccb48cce2dc87d2492e3e15ead278373b5944565de453b1ddbbdf1f8fa40f10386c7f5209da2add180cb5ddc9750b09f2b50d8cf8e36d9840d60155bdc7456866e6bdf3cd3b2eb9a9227d023f625a9e8e57d3fee40bdeff010e1e08fa780d6ee8ff047c3c3521f648a921aba5513fde5b3a6b685aeff60425c07ab93e5cdabde5ff4c66a3a95d7d15549f4df8f53d26deed5c216fec844070760ab88fda150922910403e928711fdf84bbf3827cec71ab5cbc65fba745101d5869959ee7dee2e85bf6431e156dff1ce6a041c298a3c06a2906e13a41139d0470402a8679770f98fac91456fb8e3205bad8407a610e35bf79b71cc763b1421aef8bfd94cbc95202106b2b3a12f440d3997b6dd346316bc018b09e867b65d9fbc541e0269e59763c0fab23b691650a590f3210d81b06b1170f6a4916e67e2c360730ebad62a2d98afced5a2dc1b86e46a09071ccffb4fcbb782d50999047dd0cf1b003a525301b3e8f0b163436dfa4e5c550346b183bb6cea7d2fea176a2ca8525a1433c4fc3d0729f70b1094c24aa1cf0537b23dcb1d336a5501ef36fc8e6e946557bc921645fd368d34daa4fd19b25be1927dad789aef35bea7cb488b6a27c5ce1cfb90654508230c3f74570410c3222eae7d45df953e568f1dc232bfcd522cedb2d277dfd6d225b1771d4bff24fe171a05bc78a0712375ea354d8735d0c829cdbfa59e1ed25051ad8fbac2fa119dfb389ff403e2145a5d7fa466f11be210fdf5d8d3877640e249496db306654422e4de12523c852925466ef1e92d8f7a75d4a697241dfd663c1afa03e4e6baba67402787ddd7050493a4eaa41580e1a4c7657b60c83b93a5aab97855763bee04f2b1dbf877a8b720770d05eb085489bfa0af75d1544224cfc9325c1b779dd06325da0265a642795d9dcd1759ef9f90f4e96f4ece9e06900e87745009d027788ae61721fbeb3ea1ecb93aa8fa51a0bd49642a37baface8ff1906f2404d52799dd908ab220169b9e79f01336dee05ca819f9887fd981dff6c41685c921e3b5f4563b9174e842d88c32a7750748760984462c50dc282d03a1a055a62c4ed8b02b6b3aa546d6e903f9047ef8e161b7ce4c6bc15bf404ce0e581926e4b9993d09829c3ae7cf1cd210db551bbf048989badc313985b47430531e6fb39d15d846f016b1d2f95642de55ae730569e51d5051cc82924b06d9b8d7046b658e6bda7adfb2a39ea135ce7dc1767da83fe49b92abce01a15922e37aa8572e35e15771a0e821d5d00dcb287bc70e12d8f2a9513479c63d6d221cfb60e785b97ee60db503e0b986babf111e30933b12bb563c75f417169296afaf865d681ecaaf1d5652342b199611cd41c3ad4b0b215070c73afb6b7cbcdc9700a83fb7f640de3206e3a008fa2843b433f6a50c8c40727abe6e3a25ffc29622cc9374e98f1461354a71f067d847ddbc66a71745b5f4783a2e4d0bbf9a2f291af33f4984f9e526146ddd32b8c9abd1835144b8711a4dacf49381c0aac8dc51302c094aeb088f364c3e24ae4b4ae54897b648f450d611f5fadab1895ee8105b83a067266221437d1f28b09748decb8320b2445d06693df5e83f1139bbbf0926aed7fc3b6f4a849ba4a4db9c1f89249672f88da463fa3cce8b6c30192ec1e62ae51788cf666b99c246a2d09328150524f27d66fcc6f8b9537d64df5ae0cdd211259ee69f7975bed9f62139368f46a478fa2f06ca79522b7311f92539766750e72899da5ffe602845a4c41acbf526e8068b88be37a554e839445b190194b28b2d445d07d2bdeae81f193f5310a2c5b4fc322ace7bd10576a2480434337141d4ddb484780f88f0d2c20c4812e10f01edb5633aba2d84fc4b83ccf22215dd7273db877cb91081a5091f02dd1b47e4fb1d37c992abf921dc6a2d936cf0a1411b0a44ea21060070e0fbb67b56fc769f09b4845d92871c01d8111d6a43bf29448463a9fbef502edd60d5874f5ac3a7c8687a53c48a8c1daa4ff834bc5c994987fe28271ccc111edb81fea1690edd183e86347b4532fb600ef5ec3f7cdf119ddf26c412f596a1a1d4e8c6212efc6c391baf01b877305de7c072700844b5b0f190e377dd971cea9afe7c180e873e738f91c0f186a0c600011591ea9996195810e95bb7e96e1b4a8dd9e931286137141e36b4b837551a94e2ae5743736500ad3a24456f25d2109f2963af067f26e3c89c67a8989b1ea694f99428868a06d09dcbbc976486de7ab09293cf987ddfd2f4d6b747000da5667aa2f5f51671f0b5a81974b88d29598ee2f7ef05b233d455204976333eb840a9776ceb93deecc30d3e4299465ffb9abb36d2a6a4bfb0c342521704b6dd98ba414282461100b43e8c2d275ad91f47ee493c27de8a33e72fa75dc971dbd68544694ae391b1286f3d9b287d03f5bdf6fdb79e9e7006a7a8b3127649a16a1c741220c5a23b5c639f1f2369d80c0c792615c0fc8a93427a2b2166ac7c25e8a2139c714110eb826a24a374c804b084b9de2a8ccc5159480e48253f824df7f05cbb3f64aac93f3d26349a80cacc6a0b7e4f3ccdf5f67646bdbb2f3fa7d61c316211ba947f660a1bdf40e2b80f8c8e0d54b06d6d16c75965e55c6c11f605ca406e0c417f91ad7310bb22bc94c6c3f394b80295c45b25742641fde1c464001d6a1043d8b04ad106ce7de430a393c595370ec764c099636301523219a148ad793ba0a3f3dac4976ce5dac842c01687499b61a34e57f0fff2ce83450f201159d5be4b7c7f0f3fe1713cf442c50376d589a61a6bc1c00d787a7f812b000fb0d7519c39f6256867ae91fb731a5356c8556ad3b6a23e5e38b267311ad4f265acfcbc790943326817704a58783d85f7a4a42e86b979c75e5eb202eb63c561f77003ab8591794aa40408738078610d22ce49c08a270f76a801530ddc3cfc29a29585643358d334907a02c97620ac675aa16d7c7879c4e94f0f884c090c8522b8f6710018726970ef0a184341b4247c49abf5a8602316f9707673bd50b864e30a8fc7d348f6b72b5563e12764b078db0dba20592e8200e8501e297e2a1a7b033aad739150d41e2a5a8880f17bb898160a009d73a1f4d21741aa44139e0fabfc5d90b1c971f2642d3d636316857f4b028ec287eabe044b592748d4ec6d098122e58595318f321a05e44e57e653344e021ee0837ac68abad1c342438c1351f3d85af889f67f4466cda0d7eb9cf9f5d306a54ba6d129ca5e3f7a26f387ad3a6a3ed4a41932a9e8b6c42ca37695903504f24710f2df74eff1fb808e845d95869fbe3ed57299ada1c205511f4db56a24ed109814747fe762dae1c9446780711c514847bc8ec89ab534e3452fb98aa6a36aa6075ccc9d875a059a2b45d4893caae5d87a95fb361c243b25e7df2f7777c473b4e98ee0fa5037ddcce8ba24af5f1859d632a8171e438fe9df415ed09904b81d2b27414531cd7f1bb0d3c697fbe2f09eaca26313715296c417dae08d26117f6dd1c138a4ed706cb75667a7242689507dbb6c85e39738ec9779743b8cf1363a35e9fa98001be5221a0e40fa5bc347f96e5b86430f75afba75e826eb5694681a27d39725fb4609a23f603f9f68f5290c91049ce256a0c3109f05fd1a89b4bb552649718b59b611178c504022238f78ca6b7800afc4a56fc492dd7e21aba71b92d1ebbe5fda02ea54871adaca6b254432485c52c4d69df032bd0574fdef710c47cc22182f4ba34ec35b7196432c95f446baab75825b4a9e45cd2ac2f5626a615e646036a62250500eba8e8deb929f269b822b482c784f92db7b38ea3936406f8acf24a0684e1abd4403c8edb79bbd5d798b34306fc681b0ec3180773080ff726825528e86d770ed6b5ff775ae73ad6b5ceb75af77ed777d02af65b0a3d4912fdf0682202f3120984a63324904772d52e1ce5ec1aec2bc7e09d81361ed2cf5322400aecae107f90ebe722fdad16a65406fb0557153c64fdb8fb32903b8961152f5c8d68d1e840cc7a4d2308e7cdd4ee2211cd4d79025d8540575e16abe9c70104774b441a287880eb7c18bde67e412365e85e346b181c379831f9a19c53b30e2671e888f39740939c32e47a3543694b6abbf97753aa2f8db0026760933dd4027f903855c0d23dfc02d156bdef98a743117d3a855b28a5d519b39d54d036781551b8a74e5216eb1ba9b9dbd97d14e054d4ac9bf1a80ca9875a65db67b59995248b5f91e1f2006f8a0c5acd0be3c543964e2ac5dcc0ec3d01234958a632ea5859c60f4b0912c83b65fc02f4cd6517de01a9e3bff655483c4340c7396946cec8aad5b7f46d5f3a78c0fdb833cca8c5c369c738fea864dc27b8a113c76256c90f6cbfeff79e6a56cb0a9f6dd47ebc798a6f908d5b81526244bf063cb9ee62d4b67f283ac0338b40d2a86a827a6e58e590ff98aeeaa43d5c19483ec94141e348d4ca0558749bfdf87f28989fdf1f65d62dbab3015c54a896fa0fa82cce8d09d401ebd8fa4ffcb1563b16f0abf7e3e7649c19a27757dc1502f209a27fdffe6ea68ddbda330a4c42bd2435aa2185a82a6aa129d629b05dba3577adefbdd7da95da69eb0897adf110e69fb8814607c7fc85ade2af780568989411828088dd1726cb48a54f093bc67f5679f532c506be5656aa90aea527c52370399427fe36b881f60b259e9764008a1866c88494b38156a9e5c18bd4b0967386e12445e654f1970b605fd460778deb6ad8e62f4de41eb5178718f236edaf42fe6ec642daedeaa2436bba25e137ce531e94106814b26991e102dcfddff30ea82cabd2270c86ad12e836c718c2c634315b8ffdccc6ea4c3e72a82b0040cfad0a5dc442a8d522b147c078a9473f6a203eed846a1125d7068ee2205a7df86d1287807d3602eb747e8a15c41288696a1a10a09ffd59283fb3d0ef29d5db92263240b1e2df772bcfb03e08c58e2c651a99000a6a0ec886961c0d7132f3d3925ca833ac2f96da04f390c955f730181b405576cb09c0972d0ae628aa436bd7754024afb117cc04e4c59164b9e501844c48a6f25ec64d51cdb202e6d55d3e9e3bafc6e5a450407b1999ef7c21e40d524e98502bda26857216d03a81822a943c656ce9483de7dbba9a3a899faad2935a877b62496af5a7ce11ca16d89c72ddbb5e8ca3bbe9e30f725a997824d38f68cedaf5029b9cf6ae538ef9c5cddd8d52c7899b235f6ae176593a3eb567a14fea4f2d41e6444663e6612c87f6cc900d6aa82f4dba1e5c35429af3a7f7e3e9b1332b5f9615a962feb3157accb9e5668e634f1e846d0421d8066819a2b017171550c4ace0c489cc905e9b6dc762713701bec53afb485017d9176506b44add4f9102c136082c7f67395e1afee064d1e728e2a8fa23a6fdebf16137388fb49cd471f50de2529595f1cb014df24ae4f98dc892c485dd2318e2c8036c2f87b77c3e08b37065e6bbfdda615c68a808e53415d0c1e443b1ce0903d21be7048886c001471b9fbc23452b8410dbb2c2061da5079c19db4d2ec6239de994389ceaef67f3ce2dce955f334382ff20a1f53d40f9427a4b54b1ce70a8bf321caeb978544afc04cb71f33e24fe6582db5d62a6cc34d814d74a747cb2ade81b0536d6e43d5a15b82abbd4ced55bd29069b00fb8c56d0020124706d14ab2cbb8b6bd3c2403781cd295df2a488fdd5b434c1304eab2229f07e8246c17120b06026ba24182d4d84892e8fbdc95dd4e2671142f8b8a6bb137c06743bdb45974cb2ce00a5dcae99cdf54d807733ea0473a569a154aaca57abe4cdd3928cf78f00de5bced4d78c2ac16421e19c5e28fed2a8f5f6119376f611d084a62fd1e887be907356dc8002e6e11d500c71aa9dc2bc4fcff0aec1e5113722b75996489890205e163b283c88ee3a1ef7cc3a1d90ca274430876debf52c0e7300dee26eebddbc50ff77b30c4cd073b543670f95f3f9f1d837407b48c9ed4407fa242bb3221a2e28ce70f77522da804814ba0e1306caf36e4be2202865ec69db8c8848a404daa76bca43e2c2261210b4d0030dd60a2e187a9149222b3e5f7a1a08b7616da9aa65eeb9b8cfbefc61474299eb6855450355e726d1dfa0a570899dabfc1fe8ea2798100acf908b523329c6f52e838e8a37bb9cb14bed88912c3f9f22876fe2f90c8b65361e111ad10802d1a0964105f04ad726906168b81f1b2eb3624a6a54a7d47356bb793b109c6c210c1664e40c320661295e50aac2c108786a296c99e58db0a63925cbc6133c6880f8b2b33aeb662efa6222627ae9ad445b3c9c09a962136a61bfc260ae7035fdebe26ee59630e2536d881589f83f565df72406961410babe20798d2d0dedf44a9fe20f84d2d616b5bf73cca83f68ecc7d2a4d6cc1e8812188a9053c006f2ef3361c7505de525211cd474cdd5beb6e1a6010157418bb7ff6a233d14f17a3461500dfa5cba2849401319172ae9d2ba3d510274dab1bc99546ad84f57f81ca7f1c0c5d662ef42d41cca2373478b38de21e3af9c60e51c31eb2834f4c4305f0add47ddd4f8d13d4832fa222d1df00f294bd0909cabcd1c442712551a424dfad3d12522ad216054579de9ba7b67952279ada6bde31e29652688188b21a3466e288158762a0e8a401a3ddf1aab99f4148c8e9fbd9ca3b70648a00a443f0d921a33e56622646b1b3c91c6645d20ba383f17ec85ac7ff88797173e4e70a9ace4fac8a8261d060e8fff47404364ce4f64e9fb27df7da82790ce04e2c17927246e080ce5bcc56c44aab550c152d0ec83bd8c086e6017bc776ea91990f709a1003a919bf4b2d781137254e2503c419134b9345d0fdad87533dd3bfdd71914cc9b69b8edccef620660d166f19e53e45acf456eb59599da5b2d27e4cf621dd1ca7d44be713d2dc68e95d497a3a883017cefe08cb944cee0d9de953458b6a7e0d9cd852c209581340463ea706bf5987e1038841d524a1bf44a892211455287e66097933fbc08c0b9c79026739e968d52871d86f132b42ab724975ea6883f1d339c41e8c4be3211ac72c2ef034f0b5940743703d1c9a13d616b18e7539cf8f9b8e8470f815c56595f79dbc75204704bd68ffb7dc3987d6ddb9d5eee4062f618424a6f50f41682fee8d29831580e36dc27d094789fafe8427afe9f3db332eb4beb9f2011db07284ab89b6533cbbe604f74a0445bacb5c9af9663bbe53e35c5695a098227b1ada24a86c42a6829ceef118cce8b435c982cd730786c6f4344bc79f5b9cef974a8323bdaa8ab55011f977a4b795e9f67933a7d1973db953ded2132e8e485f5335ccf6970eadf5baf22964b3724d92a39010622b6100f0aaa5798883883659c9c5d4053f204f459996d2be08c79be809b5d69112bf25c67f1d290941a6590f943ea818242bc42597ab28e69a460fa2ab59eb003159b1f1707d27a91aebc98fc6d7c9c891c2e17f9830a7cceb91b49ac7f4f8567d6bb890268c06bd4b97fb92c60e25682f83ba047ba7d417e7c374df493bb30497d18d8aeb73ea75237e8aa1bf1c3bb8688b603074d60c18752462d599108c2c43d2c66fe79b9e60423c2cf5c5793d59359b64ef403044599b903a356bcc19d8487a762b0ae0c4a2e0c6bd8f6afe129ffc99fcd39a61a4503b58845292729954b06a11f8ae439a6c417e9d955da73181b78c306f2a1ae9c8cda9cfa64cf84297d1e1b4302b81a65e123cd829ac50664d0aac68efbaa4fd99a496fae16982d85291bdbe1fcc23f04a4c163602eadd5e38606e181ef13bf43a6bfed4f52105e6f7321c2a4667263818f5a83ae1446f4f0ceba127a37a0d390ffab8b3924bff473f8757052e437c50fb167e20907d3aa73aeeaab0c8c9adf84ff740caefa842c1e450b700d0909db09ff5bdc3222ab29f0f1aecd81c2008ad0074c56ca0acd11cd3f981dbfd09d4e5e3a4b6efa58c904844b67c968748a5bcefb67fcce2e21a5faab5751f2ce70e82f80404f2204f71afa2465c11f0731920e05cea3815bf2d17b6c8ebe8877b3bc32abe8f8766b56e0832b95d210aac0c337be41097603a981154b2daf2a0a2ccacf715873f3020a529714bebfc84e3a41a0a526c63a76ec78fd49d10471b8b737c943dd10761033f907e1d80975b5410e87050fc123d782d1df47642636940c2c18b3ab0f1e761a412a493a80bf4b7dfb2b558dc907e371b4648b63e8811256242ba7bf92146f67305c13e0dbbb4daa3349caa10637642d68fe238d1b9b1891bee9639f0889e5548675ae6a6517ced1ea68b6533d794600f9dbb4589419bd806561805d54dd2849d7611e3fe9008d6b3b28b17733b6b0b00a47b036638dd4ee46a59e82920b7d3452772b5a613d4ced075c8adaa3358e5a02b40f48d0ebd13ff54cec8b508f7a448fd87ebf7d80ca84b73067c53e3387fc973204f9dd89ab2046b54cbd25ee4872a4bd9053d6132b7147ecbe5db9c3cd0a33bf0b1ab363febb1d916dfae68027a89cd9914d36fdedb5233ec49990fc2e418003c9b3756906fddd43473993923cb1c55021ea269b1f6353fa67c7a1e10a9e6aa042e4e0fe01a6e590bcc6bf19e9dedeb58072ead7e59f745f09084c3bb3dd642ac8d7533ab047a073a438f025d815fbb83a01b7d5a7391d30d5b2ca9d1ed8dbe163f8b2dd193ee28facdc01213a5119e3d69da0939bf863229590892464091392017e998c01c72157c8e4a2e6e47bc807d93a7629ac0d94b36a40290d13c3cb69fe337cf6c5563050ff1a7c9ec2fd3cd84386bc80fb19bf395eea1960e82e59a90e01606f92ad7819599c87ab1048260869d9501f958b4c4957ba59c86a41c8628d4ebc71fc5637b6fbd2f99b2bc62cda1589d8f9dd21055a0a4dd132bb95c5e7feb5cf3c0293b766139f41caa31321087566e888fe8502741512971a84cbbdaa826377095cc4d04eedb4703a1583e3ec3c62d53d349661a773f9f481671d93ae188dd69b54e92b04485abb0a36822791cbac80a1acfe9e07f49003382b1d5d4e68b1af95f396af8baa738b9f5ee7e7d6d48fd75b54dde2198baa33ba9cd57e66fe90c5f481afe0c37a4a1eafdcebc200d45effb0f3847b8819ac24fc4794ff5a0b7aa7b54231223ea9d353c58fd7431ca754366305ae2d449f0cec0c50bad20647656b0b118314d718782b39f0c9cdc37f18cbfe884b17ae19e5ed441e400bf1a98b95b7ca8ad231720bee1a90f5fc05c2936ccc479635952afc5e532ccae4f02c1a396e43688b0acb65554d240e48e1d4c5ad4a13990b3162256c56c3a5acc6749f8771f409623b4f9e70518bfc0656f4f3a2b1201f037ef08b29d0773d94af09f7d0686899efc304abceb020dd14b8f2e35297a024c0404cb33308c9301d4b95ce95d4c9cb7bb5d557a92e7af541061cfc34e9bd4ec8280fd3a33ed2ae4e88004907ba3f707a263b749e72aea72789e616665afd854391b1884672af16cbc78635cf5b2299480b7a3c07dbd8df4e0359c678e510111230ded3c81468cb502b584d6d387ecbddcdcc3b8cd9f5fe2a089e7f93582c783de25bcf56c80cc81cc0a7fd14bb6aaca06a9238164bec65731a3142ba65246c7f7f107232576a8a7f9fe8588b7d283b55ebba48ef3198e9b5d40607925ceb040c4d81a6a167dcbb3a31c18cd79f68fe4fb546800a9158ebe194eb5d6b1383b9d5c0f1df43a3ed4f013c83a28d5d88297371ec45748c09b8c3ce7e84a518090ec8c980e53bd494026eeaca0da86d79a6cca5fff93437d23493d6df0430f105661c04f23b2a714e7770ca5cbc321a4fa832ba9d00c89a355a491bf64c2f9b2fed4a89a4189d2556577737dd983a26a37c005251a9ce9d3713ff3d19253f83ceb733419a67ca5c8c5b1fb966afdfed8f152b5a47a750ed6aaef8b89bf3ebf29fef109abddb2fea07c8a1cb6643fe50e4eb2d7536493e106bb9aef4f08491b3bbc0ffde34e3386acc8e98a7ac72e07e553c7e6ec037b8ccd18480b8c49abbdf4c9e8e2f7d3ba1dc2ccdd46126f0bbddccf55545ba096fe59d5598ee116a9a643981c722cff322dab733ecf209390a4628f1752223b7ccbaf08fb3bfc9ed77f52754bd6b4bec8b315e64cc521a094f55ad3c729c16c1f535ccef0268059fdd5ac43d03a7333dde0d276286548c44ce0261d22d2f823ffe6526c7be4307d44339bb713c8ad13987d34431a668a9f255536c3434a430398e80d557d94e3a2df723a80e4c5c851dad855b06fe421304ffa0e63340b359e0b8bead86f1040d51ee44f8554601d9ec757390da69171fbf17e207b1a1373c32a3eea4a02bc0c2168fb78345db709894d8a8e978431736a78cc80a19ef03be923d85c02b20856f8d7c0c803ff44625215e2260e9f32256c29e2e79ed0cf5706fb3c2e14cfd107af09792ee95ed0e1d55e68fc3c28df59b5f8a8d459f1f58a13b6f0b65f712dca449d78c131d05e8a9d3bec401636e3f6850e4b5bdefde3fb921c0efca9704ce477a2a1a39edf9d2087ff3769e3d7ea70914a2d95f1a6c11e819ed08eb3560d963eb67df2339bd9fb922216d59f0833beb755180bb6d0fac4581a7616368c738979542b301b03c73808889ad2922b7ac518ad646e64a2e17ff2e9885820757b7c737e082e3c68348d3c30e126d68a8d077606139aca8bee4f40accfdaa6bac1c6fd9063d84e8362dc162ea526c2da527a512c47d50c4e5c02a3b86a8a5ff3a50334b07acdf9ee432f634169c41858e7a6a24ce7431ebc3258f406ac5997208e17a9bb6b4d1560ba5242667b1e7522b9001e680644bdd82590a8f5c496f1d1030b0573682dddc95671b3b5264456be069009f0fa323a475b83f5690b6973798158ad2bb7b659271882563d3fd8dbe89df06432f9d244ce9ec65d1f77ac158524a135472ef122e435cc90521838b75a401dc134a6a32e3ff8b929ca6d5941d640fa3f79d3778ac1032547ac1ee2516241c6ea70583078afbd486bda848e015f1cf2bfd8f520ea04858a73fec6318d40d5e8a018aa7916ce13e5578ab0edd4b6013b24afcd0318871457f48c5b31f75bf037ef9b31f1d7c318ea63dbebe3078774a3c9214c5ad4e5405f53b4750a028b40cea65c872313bc9b8673d057db2f290c68cd85eecf6f4370bd7cc2da59dea8acbf110cd6882e6592d348aacded5978a444e86ffd995828cd56fca7f8cea9ae3ad2073728595d23b04d6fff9c9b12cfe53190a93dbe4d08ea2c2357a013d3b12f776869e3107ed2fea13990efa7d710c5812f866ea3e21a6f3e583e205ff772f0cd0b6348cd05adfda8619b08aeb4a9f65cc38da1e2bc244d60f87ee77889276f6272aa2c0745b58c89ddea81f41e65af1d42b07af00be444cf29217658be9921e7df0a07e34305f012d8935ef03a7685e8523d70d107f9085f23ceafee1dffa99950d4be13e3dba125fa93a764c22d22ac13fa4a39d82d6e52f01322d10b1f7cffe2ee9862fe25d597078a411684db53df830fe78c4c8853d2cab90907a6dea0cbe14ec4aeaa718d25df350bc29fe1388cc1b60fa3cfd8931c433e56026658837b913a418b253019503dfd30806cccff2f191625386e24051f3212b8455c1e1cfe95e7e0120843e8a27e5dcc7f50112f8404a61cbdf009f57c3757a99a1cfca1ad3d1b402e9d1e3752070085827d405112a5441c8f508b1728fc0247abb95c235bf2d0a05e79ea94d76acb4176e110d59751a0e75c901f7f9afa5b341dd6964d1bf4b88654d11f2f779999b375c014c2bc6815e57c14b2a7aa975f5517189a9a342e5291b1af4419eeedc5ac113e649134678d41e3bf07087e7b616387bd49cdc6d3b59fada1052d65d5a4b9e7547dac03c0f2312ab4d2ef41bf265bd4288176229668b8133c895117d64feb46a8e46ca6a5a2b70a369c7457ac7e7018b90a3bbe2b67ae3c099e8b041ad4c78aec264d74e630adfe8e6352a301162f1b488a2539a0b8273a381085fa7ca4db65da258e5b86a80ca5a5d5030a225672814e19900af39038aa290b417af7fe8b4c8a92d2600a6dfc465cd9b448e8aa11e7151bf33d24f99320a46b243876a8d73031bc8f3134cd19a46f2b29763cf18189db91acd062acaad1096eb99e09ec72821b2f92c8e402867595c239e94600dfd81fd97bacc06e8e86f17dd81479cadee0049678a743bee3522743eec57bdabcb5f1d6aba8d316199469fe2f1c5806942d7a78a0122439b13f2b63eed7ae14796a3c2213f01d156c52780663e1e28937b6acb0b637e68ecd8f20248b5798c213c054ad7990ce01b098deb6ca15d65be197e3272552becc8e49a207a0ec694464fd63004573819fc8f2e321d1686ef466212937502abf96d352cf80876404174a6a3ebb51f9cd101b1e543e8e649e7288c61452fefbb2f4df53a63257839a6cdeb61a70b006382209e29b8d41df6c303dabc4f41ff67cb7e022c7a65bbfb5218c7b6648fac615db21cb7d80a698c19db0aebd7e846804328f1cfb0d8e1ae78844cdb62b751583e5df256b7aa8c3cee51bfda34fd87a9582168e66dd82c0e221abfe3b65ecb309b0de9d87471ddea99aff073d7a17f46c1512ba2b5ec6d2fba2b95199283934d97eca89574cb4b46119666f2eb64b8df5cbf0afe0d2beec38f326606ef0ecc9ffb8115f75fcc9dca9e2323abc67d66287c3808989694efdac4b54928c1bf3f9e7c4a3c0eb9bf351836748e21c790e1805fc7d19899e9f4ea3b3767698ade1b33650956a4287d7e5cc257d59fdd1300b43b33b3071eb9d878499a46118345fd99c5890d754af4f1623dd0664687851aa0b149e01a81ff19ba4cac719a4c8eed060ae2fab8ba2bdcb6381ff7bbc083a59e992b1f3cd828177178dfea7dce5b96f5efd4118fb9c38a6e98864419985ab0d902945a8eb48cb3b25afdfa17e81b9fadb73c1a36edcb77a8f94d70e9e11631547a63c26629b692f0c4dcb30175aa6eefb6ae9dd41452356b5d964a5b2ac941770e564a82931af8837da45a5b11a8f371951d2a14ee0bcb92f71e3d6a226355e6a4f328d6f4680e2a58f2a1ca7083ff5d8f13776e7790c2eb24463c553eed92951c452ef605ea4a234169325f7453869ad3621f463afb8b598312ca073de0eb4d51350e683dc648bddc950a5f54dcb7e46e138efc42d7f995b7675e5b7dc2688253c365827932caf7c2b770598de2a1ec6337b561b474f9a64176d337ac57ead085548dc8aeeca8d3bd844b059520f6f7f3e51eb76da1d7540c533cf7526f3748935f5ffa0d9ae887845961f10b5a25cfd7dab7160c95cada3ddecb20028f8de87900f474b6b1c8f5c5cce7348ef4c4fa0bf21a45a6f565140f9a04ae561137807da938473b4483c3d2c1e3424a7f74809ca0581633a5188142bcbf897e0d4c394798c3951b22cda1baa19efd0c48528167f196310ea06d55d878a275151fa3d17f1eb4147871a9f4ba4c82a70728f1148d80db3fc03049732ad00709afe6cc4ed655d8555d157116ddab6f166b72b8afb8a5e028234ba179dac4ee7219f9bdaa349fd4806919de498d84b0c6f436d8406522792fd01944986eaa3969359ce8cd81d79acc7d232ea3f123d4998e273781b3dc90b81191d022e92bd4f5a0d0165cc3b2f7545407b019296ff650d84782a5953a8813500a7672ffc4392a8f7e34c2d907777d6f414df239c1a5bb506796615e69f8db0b77c1f608c08740e8b294614b9083d7294a5a3409529d94ac3b90734ef14a1434d1a969dd268700907ef917a9e96007636ba8837601e989bb08a019779e5b8b2571a84f516ada75cd927f10464725b334f0b42f20587b48dc3ded3ee45a4cb383871751134201fa9593d2365d15b620836a7e25e8701f76a78d9553515c9fc0e3fb0ec098aa83a2dae48ce1a2097825dd5c81cf205d5e7565fa0bb064859b44caae52a676124bee5e9d8e8585ba480c326ece250bf046e8095c6a5b250e340e38c6743f8ee477307449556581c3a408aa4e0ddb9808ab7cc0f18a85bbff17debe23c2bd0532b2317ac7f818d13136a6c2a8391d8cd33e12a442a603ea4ade0f7c321263f01dc824df7996db2b658495c3a748f3b6636568c4aac65aba0331aae843183714b4d29f447da494fa8e663b38358447676e6cbe432c8d36000cb48aaa7533a0cebb834c5100d0fac2c0b1429904a410853696c4ac4b2b69c0467166077ae7a329a00e14d9e670acf614e5bd3f120e7792b04abafb8cbd56047b42144cf7505996075b7f23981c74510858c5919c9595a6ebc866da273940202ef00be513e59b0a8cecb7fcdac0a5b791d1c5e5c52fca71d09c2111d7592ab3b9f1941bc3aafa40f9825fa0b8120ea79ab5a42f0c07b3023dd7bb35520cb55afd3bbc7bf2fb78cc7703a6fcc620e2668d814e5e17ba384ee69986586aa221b0c1da21e89ba86f23e3900c928947e697aebe8598a5d2759934188a02a5585fb242d147cfcb35fa9014c21a1ca3306c88cfb175cfc33884e0b1d8b1974b4bb035ca8d9419d0dca12c2e1b9a5844b91120cf26ff369b132ae25568b708a187232b042dea5ec56c1cdfdd720c2190aa8245c11224bb200fd339464e0ef64b1a8d92109a1b9f427e4ad134be6315030938b169fbf4de5fab7031788cef6762fa6f44cb476901f36be20795390c6dc7f615b31bc06fc7174a9a80ba153fc64087843f1f448a7d9e750cc460b4063586b7c8ecbb8b896061893ad636c02e185ea11ec62e7e07e1d42844a8548a06fe0bc4087530de211661504774d779504a0d3abc762d1c32c66aa06f864d31284189d4312ee93238d7e7e9f33715cd020dcdcf8ec5c669212039afe6e711724a1d34bac5161caf0039bc1548e3b348ac8da702977d963881cc0fb9964d2a9f671ec63a6bcafa3f6fb46d3e7a2ffefb0874d899b55c7130da5e694831e216c9ed23d96f57bb766842388e3887060e14388c26bf770143047b2bf6bda39ee3f5efc53690ce9cfe3ab44cb84cb241629e548866e0b1c034d3bceb4e9e26763fde53aa470343ce2fb171e7b98a195b41f507c492caee268db59bc1c3b76c6807bf23371e458a5eee1e6fb209cd38481c8e72b379ff8060080cb6bfc4b583c324f32a340ef61bb12c80c105bf4e088306619be497cee9d25daa8ae671229f9a7bccfbacd3ff94736d912412eaadb93bd676bd00dbb35a6027ab1196b77e90bc1b21f221ad9fcabd0a3e33cd5d3ea0a685b208890e608faf7017d0c4f479001f47cdbbe608b7464722f00cd550d65c92ad3b0cab311b1b6768b585b6a32bd6109ad2d2609e8b298a8684f1f0977b3952e1844b1aa07ddd36d88d510cf4755a2be51ffc88160be8c4690893fe498094515b39f8017128d598f656ab0f82a019cf5c14ab07932eaf86b60a3b1c19484498bdfaf05839f1ec0f01dc5c480212210d62ba10a5668f41fc5a8af31142bfe67df87f4d4d2938b190787c5edee33c4d9c95056a633bb9f2ec610afe1c1b830c926d144dfcd7676d33ec6dd13d5cbb3bcf2df67653d4cb64fd36fd4b9ce8ca34734742285b6e9c2ed72edfee21b13b8bf5220c8a2863f9fea1d20af64519f47561cb89582a04b17c1ec54eb638a89c5d5649ef693daf3a1a1ccd86ee6bbea19fb11acbb3df80f983f36463d94780449fb1c95d9aad8d6584d329dfee41b404209a1b88a08b2c5a35a6f7d0cb01037bbd8a63d963f42a2118c69f9d1a50702a8a6131bc93a3d55688869ecdcafcaf2afb6df00548c3759bd202266430cdd3c392fd8b6e0963727c72f1bd5776187c1e883281d4314dfc715abde443e6c49a10b0b29b84345cef100ff0b17185f4d44ebae2ed2a18d15ea99dbd50bf085a490398c2dc146f6926a9263a55c124358363b12b065e3c5d52e7e69cf20b5ed76ce996ea6a28530a34d97517cd86f64563cfd96b1c5f08527fa22ea863470a19127ceadcdde68d76d9b143031a1449587560e726a377fb7bf1033035d693a28eeba0c30e2e8a279f640f7f9ce522560987748d9ecc004f5cca545daab4ae3fe4e41823adac70783dff5a5521e23e730bf9ffaec18d38ceed0a94fb148c42774001b006ecd227a77190b3408223fcefd5612345171a14ba76768e03cd1a31a1ddc28f92954daed7ef6c57f885bffa047a0426923ffba53b69bda0cbda2e96ddf51d2e2ff4f401b2db2d80e0b724c8668cf183265f35d40e9993be68657aad30f54f538d91e5cb544294b84b5519a2ef8a34c71509281524336d4d48ab77b215488b896ab22c8170e6bb9c1d2a719b9629013a0b4799b4982024328b4be74c026d6d485514ca8532d2942a1205a6b4abfd2b2e8e8e84a0f841dc3eadd76811c0b523b32cdfab405ce1cddd4b72c2c33c445cbc126142ef25f8a30c9831f6d9e4c8e03233f827c5115cb59de2c555b3ca9233b3ac74b7270219a0eb6962535a36ea400db4e494f3ba9037c915bf04a34285012d16ed3a59cb1b77cc0efdcd5f65e35d4ed078b5cb763049b358f0df22dc7b2569e85d78162f4fbe5456d0b1a15f0be1b31adcdf144eb6f522e11b8d73f96b9dbcf3a60e461cacb0418175c47df2360cf42ddaa8bcc14452f75bc36066a96ece124db93550de804392df2840c8a5be417a4077fc7aea1e0e4105e4ce8a3a062ccdcd0d0a6cb7bf2ebb74530171bf2c8054343bd1e39143854a5ee0945545739b84155a2244b797bfaccfe3f30913f41129e741e6404e5ebba33a702478ce564b68abb8e0ae5c5654008a430a77e4519433458a28eae25cf8112cbc03708495ac2ba25cb01e0be6c8f2a03273a1cefefed66cc912a7521a3782038c9a94fffed94701d93d625d2fc0f7b125890e5cb180b212ac19ae13e5970007991e014633b136eb2a161f30b880ff310f774488e60919f7c2313b39f0df733ac41d167abe254bf2a0f3e8709477620e32e1d9b61167b133a9028fc31688705264a76575f4f7965a5199c0b87f4d496880ec7ba2e6a13763f0aea110672f85723f6753bc6446d73465d08593002de0ce925b68803b22e47238d9bea137adca2285cc46dc7b667aa7407f33e81f2bfd90106d4517d022ea7cd7c543fbfc7980b3a7a31eadb53b2dd0d53174cfd69369f6e871f3bca879fea4580b35efda4212afeda18e5867c80e7cbbbc810b8a9cc7de57b777ea098bace9149d4e9e30f9d3ded4fa24f870b6882ce3e3134556c5c3f237d12cab620d29c8a6d831376fe0aed295c4e6dc1e6dcb2c6cb4c2a6a8c010b007017196737f67626c22817ece6f254e1d8c7d654b5d0c9821864a9a7295f5b4a11c2f65d4445bdb9af56cc5b94e1d3a66858ae189e62d261078e86f18a034531348ab2259d016a7348adb4d65e7049552b1e89c555ed617cf71399a65687f8e0b2cc5264bf83292ffea778dc578e95d4401618efc4727fcb520d199991d351e77e69edd6c6876a1e394594e4f5937cf38cce88d24b876ecd4779039e879bf1fa78ccfa53f368147ebaf6836e411df4ff57313b3bb2a79407ba55558731fe4f0d96123f6b6b35a0a0f3f633e1bec9c9e88023ce031415ceef95d1805416efd890761a2a16c53881209d200f37f53a51004a077545f35faa8651207c53fd67a7587648c2fb6c53701f292a83db186f4ec7f359a56f7dc757c498c120bd243dd940edb3c0793cea749e316504ce7900018eec58cc2096a699a0bc3098d0aaedea1b790125c6d91bade695412259d70637c296ae1f5d8fb1cc76c8187a1dd305cfbc7711f92907ae8bd1559a81140b17909cbb0f2fa3eede71ff5f2b3756992f8595b4bfc1d0c047e853cf65682c25748246ac82ac449060f686a8628fff15315127af223d1cf85d98a9a432d49a73dcea7f37ecbb26110926d2c577e4eb54ef75a9f7ce1900f5168f98c522062c61f8460f4bb50428d03ab0612760c2e2c55c6063926c33b47580e99790c97bdf924d45486e3a7f0587c7e0105cb9b1ae6be55ffaee34280be7119290ca5f1391b20ad13df1710be0ed768d2136b2c1c10a1fd9fcb3c17ad0ecd431da24cbc3ad7bd0d1d76937cc7c063760784d28c58785f31d8925ec74e66789cd26bc8576265da8bc9d716298f9ffe792efdaa350150f6338922f756013e2e98411c912290377bfe8481b0da4cca237b6a08f07d637d959b1ec1605628b7793f861358075bad796508b504c5b8b0450a69fd0ea159e88cc474072abbe9c0107f5d13d267d7853e7c7efb652372b20d6d62685056ef5b868b364ad6a1538ab7c6efc5c2395ab08be3e27e4a6e77ba485644f792edbe855109ff387fdfc77f446abc3e0c04ec1f88f8870e00f66ea0b567fe2defecae77443003cf3bad9f85f07938e4c6b41db5b9cc941dddb040107b2c91d0d1f5d2206be464f296997b4b61ec5e47b3ff585861e601509bfb8aa941d8b3fa86d66f50cc9e3479c4bc1687c3be27960b369bf5eccc026704dad48ad648dee82336a2db999abddc5b3b8ddeb92991d903e528a385a257974e5354ce19e06352a6a5b952bcf78e62dbe3e271148e70a84a2a0e42f584dfdf4f21a87fe2ba73cbf4cefeb0bf2bedb17613db14675a855ab0e5f23e9050d571a428bf2514037d3693c0cadccfe845c2cc3037e2afe97cedeb4fc53f9448d253dceda330113e2b1fe5cdfab823878434bf4127c1a2c74e3f06021f544c2b2e4f2b73b1c7e051f76b0fe7057a58052ba85c21f89c3a7506690a8b40b50bafe40793f3109e89ff5bab3a933116c28081749b781899fbf369274870999af800a48dc770b6a3440f2da022d817159860b92340c2541123a55ec284a592d04cd86f50b7ca65fcccd3652bb4211f6fd1b91d810c514ade6414720cbc30146e674ba739c5211cb84cf13c87b145e0c2b7f0c119351090ac2b9a76f188668f9404f6286c42d3115d2e123c9c98c05ae6e4670e3ce6f240755fc29d93257b1884086da7085f7c0414205c2fd77e63798a6a01a035c062bd161e0912503ea9ec34ee01ad06b670794d423514c99655302a27df2b75ef607281962667d4b6b1a9decabde8dc37295b3bcad2c31c4080075c30fe3f26fcd374dc4d3ce8d52042ad90b54f0e4311b7eb798cad8e9b2a3274d4d7f4e2643a795f9b5b9a716763f50958e5a4d2b8bb5646c9206805f71a18bbf0d8cdfe949d72617a5685685a2ed8f06505206f0e330c5819cbb6e6b8cf9d8fb72b6bf1535cc16926607c890a9b65d2ef901e58543b98848508a7745ef301ee66458bcc87ba7bab652c1fd048ea30ffe0878eb6e5f22b8f52f0e1e800e2296487c313159252fd7acf0d1cbc73b9873f7e4b93e8dd13453ad1b791a22e3387107ad6db771a141bd9abb83a9b7239384c27f437ef790005ec58bb83b98115c1920f76fc4ca68fd87a0c808a2de72bed327ba3e8b01d8f33b2d5d75af72239364e0f389762912381b5c248001a55810c9dcca1cc24ce8a5a1d09d4fa37cdd27243e270c7616c20ae5ead07b78dde8536b42fe518c3308b1a88a54d5ccd1a09936b5bb4f31daaaad2383be3d657c33406c12568b792a3f18f8c9010881423b473ffa6a8c2d01fd77bce3fc7f894c356ee77c27f02bc40da9e35b7b08ed2feb418567274b7a6367d9a99024df2b99f906d62862f82514c5d16b44c98e38d7898ea5889747215dc51f38e30a7f48371797d55ea596fe0319f7083e2ff7e626c36e6f413866121bfaf64e273494ef643292b9fc8a4118f7b4f906d732553108cd32350104f144388d7094348c908102b77258b4123317d1a26f07fe88008047b5d35bd64dea7fef7e3a3b5ba8ea7e057b1022ab93812f6ff6b7dac22d530013f144e7e6d812d77396ed182b26daf3cbfc08d2e71d90c2419411343ecd44afdb2f8ec72a9366a63ab8495f809108efcb92773b738638cf71365451ebb989885b1f2cc7a2768fdc057fcc5d81d2f734f7d5df83ff9c46ac862d356f87bf0b023af2017949b9f2b08607d691a2750a1eba393e7f3b33ee0a3c2a9dcf1b70e91152eabe71e1fe061e0c40540b40cc0955b518534f34381ee2fb3f087cd9ad63e68c932bbe2e396cf7a077722fb64b862570e6e812a5d000e2b8a17b9c7e352984643651891d0929085ea7c979f7d7c397359c00113ee97239144847f82bdc4e683e94527ad590c770e6821a582e7140d01f034ad14d36f5a344d2526b31ebffd237aadcdccf07c489860912d0878ea66024dc997f3890d4d8d88286f57197834491ac7ed3094fb845f71f34b6fb222c4767006dd6af743694fb08816d41cb916e1243dd69f401adda7870ccf69e8dec6986012c58db4378c00992567897a4d43dc3824f9b58d0cb324e77c907e4c10a6af7aa1804d22a81577c01a32ff5cc7873252e0ce10071f2c21932d13c40bd412406de7bdf26b508caf543e011202a06bc2b167741ae90dce19ab5132db7192db815c6945318fce53fe112842a99ff42190c390c78f8a8ad3d410399c6e973c904c7b4471596a30921a5c9d483f337ed939cf49a1fc6a53f48fa516c22eda712996db3213fa96a10ff44449445ebaa0a25fad50a45af036e74bac600b573a5f591b901a01bb2c65dc62df91c6c8bea21ede9bfa7a9b7fe656ada95a87f688483afb43f1e03141add337693b4671c73da7a42a7dc9e07290ebf0108cd3d93cbc41acf3ea9e42c22bd55d9e10445b741cfb1714b8174c405b5560f638911f367a9df1507d21daf7c1a3738dbb8065fa882cf5df66ad5c916a14f73f499eb4d868d66e6d2ec684e823ee2d7cc5f26ca82596e7e062ac5612368366790f3eb15f79a55d5f83566f2e821d45c2ef4dd9c74b167777f52af98147c00d6965c702b904fafdb66ffccd1e56fda73ee3c62d7dba0c3a27ed9121400e9a65631833fad713ece886a0344b1b2dd7157c12f8550528165478b6a0ca94182bc004dae7344e8a8d8a3bb7e3fa174af9dc212158a06c167428ecf3c2cc4aff35ee005a4bd6ab9ccf8922119356a6f1b25e85236f39cf086613caaee6f2deae402e2bd67aed21b3e512589ac4585f49ca567be8898243288aef39e7c264afe42acc391de890abf30934e04a426053ea2fa9fcbdf7e77aac27c467e1da6a0fc89dad21984c181633b8c706441ee5ec3706cb2806b40ea4ef3a3d7932a93cd9b6eac6c6838dbbaa2844eed8fb437dd3d603274f87a3bb9332f62103809269849890435e376f0ac00e805646b97d85e984f664302781de00fb95965e5eca4ed49f080b3b24acaf43a844f7f4948240b1e4d6f7a2c6ae298d41b969a0ed6675fd455a54c99106b3b91f09b4d51680d3caad7feafef1f2a37dff0167baaee1490058498b9de149eff85d717e6de0be2bf9df51c71a9847c9ce4a79f6e0bdb5dd3665cbf1ab930181b8cb465481fb6156ea09ad7ec43d081165c974c2f2eb9a96f90e21cb636ded95e1e9bb12e38c7b4e69db4e542c26ad9ff59d3f7d458285996405666af1a9ffcc87ab26f8642e9c6e0e860468737b8f78a86145cee545267190914ee00104ff62de92d03ca11de36639890d6c78b65327a5ca639703cd8089e1d960e94d916884051c9088464af5e5ce926bbded3537664696fc96267648c25e9737640d2aacc46a7da39da3aaea84d308f135cb5b2bb6cec0cf91d671eaaee31a14fa48b7ae8e5176af8c6bd448b2a85b70184a04f5118c4859c7948b87926182a0d152423d043108efcd47f931e5633252293e30cde09eb66e1a5ff04b61ad133e270e18d42f841ac6798baa2593386fcbb084d3521e27ec38c28acd3a8d85141648c26e410a2b61ed588c1a48121655ad513d8ee467d83edaf8e98efdca51c350333481bc04edf0822427e3f5bb206dde11822ab56a05d2d3cc64841ceb41410fa10ceadba9b2c73e88fb70c750487c18ab58e86c2d834c27e3221a01b80c9862d739a56fa4bf940136bba205ef589cc9426f65fbe39d25e8284fecbdcd5356701e80f2f734d450bca28f0044357260336e50f8554e5376a118348e1394531cb80a88fdc4b1bb1c4b3f4a5a36fbb167fb26ee2f9fe847ce80045179becf4857079a5fed29627d3bd6cbf0f35a3a08d471c9db770e54ff2b47fd17fecdcabf2c7336ba32238be81a5dd1bcd4782b01925a1f6cbd89259a6262706aa407372812e24882a4ec08dacca6eb942a03d95066e1c14cb18a7305102a471eac525db25f2436ebd3282c4946ceaa8f59eb51a9678375477a3470df781d778c9db8b084f1dfe1d4514e662fd0ec3de1e809c79a9218867cfe21962249d60045a8f20382ac3deb626d02c5e130b5ee26ebc81c14d3ce277ade1527043c7a2415eaff6d5202c5922e3396cd06141362b11b036d05863888d0364e27fce36663135f530bd8716f70cb27902080850fd4aebb078a70183f8f34ce6d54af44048d41d462421c5849aedde6f2241dbacd45621f29a5a2ec19a13c037733db70bbf97289b6f525c5ba2d285378c54b03ebc2275739bc6b00c382f90f4fcfffb790e6abeab0470ee19280c65bc7fbfa712435d2eacc7085863158e3a9231ac3d7c63b2ff6076fa2843d20f684bf37afd90eb8349428ab38b8274200d46a52f5392d5fe4293a08cfa978f62180559a1c7d3f4a49a8a287e408a48803c0a478838ce1409f1688d5c6ae06e513f9948fe92ef744d9c8db8f5a810c1aeff2d50cf2c10aa436bd46e7525f8df532b5bf51b7d24e4f3a609632ce03ed1767e7fea2b1649f981e01c689151fb2d138dba5efa8a407ba29fe90ae6b4e38d4c919fc49bf348335c94992b656db6b248970622d4b1b50a734d6a0125ad95db7d0ac13a8e19cd0ee148b395690ed70056a81806d56b12370f22b3ef72e50aaf9adf1ea02487b52afad68c9887de25459ca400a46cf3297c380f485a0987ec6d773ca1a63e6163426c7d13c7b46ae71f95e1f9b165965fac142b33e786bd3816c70682ad46aa50e632c157ae9287d52f239432436138326ceee861cf6e5fc0656226ca6a56dc9c1b1f5c1ba4e22bf1d73975b5b1369503e4278d1085b123f6341b312afb21730ff0aa9136aa4c9a0b14ec3eaba1c51f442b7a2e064e68f2f7a275c9aa664216cc772042c5c98471ad447e817ed9035572d39322d25a85473f3ad2ffc9520160381d32b360b50e9818fe0ae65284f32b897664edee293d318ccd356d5be67f87a8ae4cdbc9eb595527b718c410338ac0d6340f5c8777206919144eb419467c081311f4ffd074ed688c6cc4dee411fc7963d09462dbc41bec3815e387738a8dd624d1336c5a2c43e63d3ac58a123696c7708b0a863843b7383049b7fb12b83b30c938c9a3e51656197929a60fdc706cc436b9483d5e4f7532c720cd5406b5d7cdda2a69d366d5b066f52c004cbb3889dfe19852cd1669c35524214eaff747d11779bd19429974fd5de5b180132d76291122da30d11bb695945325ef9ddb85ca738b4354773505b41b14dba419d669d8847157401387a27370ca965ff963a0907fd2a46c82ef36517ae42f1b95695ea6aed44f25ac800e3853eb084dc27ea1f889f3e7c50a83da31d683cb525b9d7f3f490aeab71d375a8d7ef41aaa1561c13ba92ba971e3d3a745199c6003ea708635012017db6c2ced6a369899ad9e12004170bad31817d9f1321101ac396db5350efd923eeafae20604721c5b2300d1cf8c75adb7730835ce384c13108bf4e5387caa7fc9f8d28a30c92d1e23edf82f25959ad020fadcce86b821af2bf3409353eadb3b043181f376c78982c21697cea7fe96eea48ff54c657229a25b53db28e0391cbf3d89babe380eefa4bb1118fdee10a4c2839dbe0aa2b9015c59ca18cfa2f62747f8692eed0462374c41c15056616c8178e25e19bc06c8097c9c504eb70c9fa6e943e284234ae12a4952b44aa7d282e37f68f8d85584cb07cfd67b5084d7ec9904eeb018759fdac575d689bb94caa59f72060786faa207c2e570adc270a154d0e2f0519585a6f587baef9ffac1784bfc0ce7922d27245e3ef508b39c165afc98eaa61783a286f6d3cd8ba2559611e741f141d0d1df72bf2e71342a3fb1b10edddef5292e496906aa76f643e8478e97dab04f307ef1b5e37c2d6c5750ee96368ec78f798f00b50f938bb2ee0ad99710a534629c564f2abd0edcb89eda3a509b41109aa5642c410a408179f6621d11a9add63267f4e9a6f8c6c46f7ea78c00518fc8d289d2e90335500b98459053449e9e70cc9a6419fc3b7d0ffb23c810034c7623cde29f7eaec61ae1fe304a4867310a10aafe715775b47977562cd21d1383d263c7ca94fcec812578adbfdbed04147a6b4e3ae701895e68e5096b5b5f072d7b21a866e17d8da5390d738c22e39530916e0a5db166064f46097b8ca52f8c4c6a49dd1171256aa46132f3a8dd4e49098c937fcdc88c64abce1cf00d63829614abfc736aa22e9c80febc6e99fd2d666f467c9f07f556d4c4fba28be4314cc0f8b208bf252e61515af6eb43a23c6d33eb91b88d430adae09915b0771eba15c48bed599857f414a28c2755dc44130240d0423c64f192cf95b5075f4f3fc3b2c44c7ebffe04c259a49e114894ccf7f2e44225f4fbd81bddd81cd883c6ac64eb757b6afe0f16f67c9275e3e55c40755978fe7f6bad746989105491b0be971a2b026f45ded2bb061975d1b1adf3573e8172758c7135b6820432b603e6c9c087c4a49a8d8269a4862b7834b75ba0d03a8b5752a38c7aad48e07bb22c3a530e7a9d2ac7952a1cf1c05b07ce455bbb827671678ba09eafe09fd681ce7adc07f3992638fc0911ad807754d6ca7dcd2898b03c9c558ab09914bd42363351fb97edf44ebbee2af3f7e5c05c3540d231afc4a9dcd44cee715e0eb36544e9d8ff34891a8b70b2f6ad9c04a3f250cf111fd32ba042f5dc2f14c4d7fc42e76487b012ee5afe6284c393ed1400202072621ed8539e046250b432a18aab205524b0849b79e75000159ef90919e000162f5126baa8ec646da14d8213fb23505491d63bd55521b86a0b1c7448af38a44fa02c581f822b59d100cfd6f5ce07323919607852417f8208acda54ad98bfe0998db97c156d56d5ced6749dd936f80ba77d2bef81d6a4457a32b0e8c3a16cca146faf00877a53d901374c84593b0970f6f7ea12f983bd70a842a307db820422925d478d9ad2a0a6c74d5ce76f4b2801361fc05aa4ccf28389584bb07313bbc98d52d8c3974059a991393d1d96eea8b7f13666e59b8097bb33163f5c31cd42f6a318a3abdcc2e7ecdc75c0f8f1d26550baf1631304963993ac842532c6984b41589221bd86d55db2b362a4c556ceacfce3034932a15b5103c8508e6500d9d7df2b5c10b741ea443e683d1731e780811d4fe468c98f9231b3e269afd3e43c8eaa7377d1a9c4bbf3e8a3d6d9c3be7c2032ba63dfd6b9b65fba5d1c3ea7e4eaf6fbfda12bbe2adee3cb49230d6bb2866f33e78ab083b663d3ff51a859fe95d20a86743034798f6bae1e8a4479907bed5a8e0aa3172a85442ab7168d8f5e7bdeb36ec0c8a3343a0ec7d4a2a2efc820807fdab806becc8f1bf9508c5fc94042b4f5b00538f26a8c7b277c62f5454578b98be2a4bd38100e465d76104b37a43c98c458c0c90b06e626a2230817122aa964d1cf6de37810e1edfad319d754dd2a1c22e04118e4a493683de501aea73bc36504800b4653a34c7123abe371e69904ee616aae81ff611e5948035c9c7b721278ac6f494f15b1f90bf5c07b4d313c6529d8a12a847c346f093f6a110b030a9debfb71e92050a18bf675164fdc0f8936594ed2d73a93e93ea499086ef8ad6e8f68f6932317d25967daa8226a8d527ff3307c3236e7921250113b3a93f31d869471cbc11755b52db9916a6350f754947c374c97c9544ed090b807bd02c00d0f93faef29f5e91dc0c78051018802f83f3160e48e1623570ccbe946556f392aeb47c24ed7cec997acdac0aed8d1a90ee514c1d39045585fb5cd6899b0b9263d29e5693d9d199748735a1080ffdf106cb5b2135dfc717fd516d076d50c7066571b569d5335958a41e108108de5ec5d7be2a379a2e5b659b7494dc3b4d49c747048eef2fc54c87f846dbb6404d96f8923bfc52cb49f0e4efdaa7f5e642df31b50637f4a08d99cc0af86a2c6077b14ef157a514e03f522ffd41937e414fd77f3a3696b9e4d27f363c94720e35ba3276a3a115f3badf3f077f0d89817e0d74e60e1ca1fbe720aad45d3575624d0d5e788ae807083661d853e2aed84848c6c6f815cb842f6a373f060b2e998ea9ebfd1a9021a62b8dcae228aab0ba7187e2473e0d4fe930a47eb4493854729fe5043df50755fad7a7e7f22ad85c9136aee161e633f8f82dc11a919b8f0bf1fddf0504ef7cbce4983e323f90346b6fce17aa00e38333d05128b350817958484ce6d3c904a96abfc3e38ad1bfa57007e0a106c2947064260e77b5312ad50f6773caba298edbc5d3a20b7204903794db4c147d6efda0fffeaea72679686162505bc4f32eb33a5fb564910264a5a5a1338b7efb90a896ad2ad8010894f1ca9d7b0f442ef73b42c324c940a5c7e7de1d732514661d9230b10e6d76e6a2d688f074f09e902a9abe09f88018a7c216aa5053bf66f8e4a6220f54416acfd2257248480513bc8e815f08b8868ab612ba4058906fab31be998586464f81ab8328e1a5414756dd24846990c3d99344466e199d4f03522484c3078f5c7d605e8f4b46a50268cae6078c44e6fe9b48f7e5c07327b507bf12a02e88cdd1e0f9697698ece5521e6a177404a175e82bbb1c1184205585d0e0997af0567adcf807281a01783eb2a986eed761d6e35762556a6202f0e22a8409605639c436ee44b32737e2e65f8c743703250474b75ae05a4700a4d8e70840171824a171a082524ea8a59f9ec813f59e0ed4f441ee6a447e7fb9141af2adcfd17c82b53ec3803f22a4cb3fc2346b0213970cdcf031ba04a4a11e0907b623c60528886d234d7f49627bc6475e505a04977a27bc206fa4e97717b69fdb1eb6ac6cf7181ebae94113f0a11fba3cd3bc27b1147e84d4d455f407fcaded983354a394fb68fda11e33c611bc8293ea4ec5e4d4f6cab64f1e93a1352d13fbe7ce93cf2839d8e0c6fd342bf66d16dc4573747d4499e0198e57e317b85ecf30ffd05f8630e765d3fbb8f5b1e8396e7a8a3dd6066114e79c73eb170e5d361dfda85c340a351c6b5004adb4bd45eec95962f7b3eefe3df9f9f2d1a3084037a8aa9386c240bc3fd1559e66334d4d95fa0cdfae69ccb0f8006d682f1fff1f63b513bf6325d799752981c1b0490fdd595fa59d6c455ff5560dae481573a5764ac742af72c48419d729f5eec36dcf420fd8fdb9094d25f95209b07a7ca92acb563ea1ceef479cc0dcbf861300da7e0f59b58501ee2b4fb09d08262abf1d497ce5c7f5d7580838fb28e79bbe372fea9b3d98e44d2cc471eb694901b76bf0b440a32891fd6766dbef2ae73facdff585a4aabfd201d8725733bd5380264fed1474a7199dc6e2187a72129fb9ecaa5fc471c573da609eec89f0ce9f321f833add7599d69940ed48fd75496cdffb97675ed42f9b5cb0a928b28b6d0095aa3b64ad1ebb09d541c58b273e932d48b246564d8c8de9d47d55253a4a7cb655be9cbf33d0c47269a0260fd7535e3ddaaba9cc88cc99cc8ff3fcb7101f5a0173ed78c848744369e678c19c53cc44c8b80258cced6645f86446defe17dbe8cb27838366dcfc19b411a00ef8aa7378e5aebe0a9439b2e04198efb81f4afea5f9ed3aa30701c4d5ab4018f6c6a4b09c7df02a98d131b51293e85bd59b3c2c017680ba7d5267e08994a8cb392c31a85cb79003ef5e68ba039530ab223c310e3d54c71896640d7afadbed0b31d638791cf9c349c49e918813b51240d0ecefece69a11309f3fa21a950509f8e798126ae659b71304e471a6e5fe50f499d1c89dac0e72f82f495e1a880f7d8bc8ede366ea837e2037cf2777c57638f90e61647460363fc77db982ae8ee929a272084201c2261694e69a49bc36b743fd581f22c7fa3959c7702a2fbb5863e24b4c00daae02e1185e4c1bc36cea8a701e7ab2bde52df3b82302132c4cbdc630bfab317cc71ac5d5d1eab9e29542bdaeff0fc41ad1bddbbb90d09208e93f14bb38c8ac7998cf8c0b16d745e8928eb066e46d895286cc1ef355805c3a3c54884e41483e7be850c6898c1d38055db471088344a7b3aaf57c7d95f0e32c6cef4a3d62c71e86f8e70ed369985c762e1e19d2c7e525aa820048e5f7300dce748463dbe1ef88331b61dfa8f80b6860c1406fd9ab389c0b5999c3b825436da5d0d4213c229b6571e0c4385cb278ac1de7970d6f88bda5b46ec4ff0c63a76c0507ab64a2ab9165ae07327a99609099d83246cf5feff318bd3327bff73d12dabffe28e615e55625a865c3612cf626026f50fa66c2a52ae264c0e6f15916841621911cd96c414180583aa0939bdee49e6a374b79d5f3184cdf42d8452f6b23ad490c9a1014b7a11e20a174690a6dd9afbe71922e2c6c54df557cd1e35ec301a245ad0c22d54b21c7346f9950139d87cb2dfc7883bc066589b9c6c902b25e62cda25a0173c8025b6f9a18f0e7ee5291a51c9442b168255fdfe3ccd4734e5e81f881a1d82630b29e7ba14f7ee56ac4961ac5beafcd4245af3c223378fb992aadad50a5827c4951d2752667f06cb8b6cf000136077e3201e23617260781ca13c2a03d83f2176ae47fa5e41aec43b7aa09721dbc8c86074dc2b145f76f22398aef3a6e301af751df4069e3d6faf8701c457a01b7e119ceeb710115c301c5a9b3054bc44557033941c8e7a1f862ca461f8e37241ed6cf39366301408786c1b343817a6e0cd3c73e5258a662af79d2f9e8af4b96484cf4addcfc30e024986696455b1b1747bf4ca845ab671c34ca2c5ac9be78a0d7c8170ec2a0f1dcfa88a7df6342aee6e027689baf2f3f39b9a5d8e3cdd663b8852e11b3324bb8ccfee116ee7d939290dc5854fddaf064baaa40cd158a3cf5e44cfd24e991edac05656c1e6ddb081938d98fb6ab2e7e3866bad9a55eb2bfddca1e78774733fbe72b290e28458936d781f80bb2e055ca217d79d53ad66241e2c13b83469b4f3c718b72ea035712ad1cb6cc337feb94088bbfb3b9244135d3179d95d085c7d6b569a292cb28245b6d919fcea57819597adf6aebf0ca69e40075036127386b77a8c5fae2fa26f6f97f9a8d6f9767a254561c1af541b06a3494f08e29dc66334124b055a396812c081981ab15f2b2181681fd6f1f6ed70bc79f7b6b1d5fbfbed71efb6161236f2c8398df022887968fc4d667d359fdd494b1e90db5933dd729ae39417a849a9293d15024d0acd86d00dfcc83164c51f4874471e9d2f79e2b430d10a9e60befaadcec90d8a4df077c3a192257b579bfe516186081966d989efcf638108b4df55e8f65a541a9692dcf02c294bf0693c77943302542f72028135cb0ad3dc522f107981000a19a1f2e93a3ca16b80833be3c9c83307bfa8a96edc69d11a1497a0ff3900f4dff6737898fc4290ebf0cc941773154f81e104765d22881b1be2ef4e71e99e8311661e7dac8005f02cf344f6a4aa244cf230a5c6408552501e69f870887b6a984db5a4150c4a9197b5da8f2098c15f711e4095606b7a91b92d5a483c645f02953364a7d411c3b985dc574fc4392c4a2202db0b5d70463fe4018920ecb4022705dd995cc77e54340448c1724d9c88bc06ae62cd1611c5cab0965f924c961965a24c9ec35e92f7eb7fa926b6773891aa0df8bc22a03c11181b008cb033574053415a3c483cc0fc54a070e17f1d2aca80517a3872c31062264652a115aa96dabecffb11e1f8cb7ee7d87a9646c1460bd98a1aff562cd32b29cc89058c01800a3c65bff00ef8765af560ff057d1a30ee7d7b0da5bdb2c56a900e99f95be87d3378aeaf0ef02dabfb4ada77b7c3cfe61fcb6c80d6a6e26097f248dcee17830aceead9cac520abf85d2babbf4dbc99595e3b27355cdce423a937940fed444a3965733afbaa786ee68542c7e6ef03346f3540da9202e996acbc8644be8524b35f6552e3bcea5132f197b7a42318f95985c8d77c25cebfc59db3cf759d209e35271f8e28cdbd2831e9ff1ff281e78c7b1665ad33f9648389baf3a3cec2541bd8930162407a764b086764307997311fb73b24b945025e5e6d74e0f7d85bcbd77d56113adadb3e4e0d6462915f3c51a4907de2e3ad7144244dacc836f3b8ad759788171fc1cd250d14663c7640afd40c0aefde089d611458aeedfd2209972e8354289d1657c388880ae58f05b239fdf280f1c54fb9fab8a222219d7042711d4c4906a9d0ed08a78cdc754869bde4bc86202b543e2f37f4c19c62791b23a1c8e6943698ed651de8d47c202c02d543f0ec27eef5078baacb2103ee899db014473f6f53d567ebb89988d22b14096912fa9c215e34936629510e24de92ca7868f686849e699b519dbac19cc54f1577b8e7932512f94fbf0e5a1dfa318e7b631e61c7a179bda808bdf8ecff8d10dd30a171482fdaed1dd4b08a7c843520b9a23f2dde0010df93dfc76dfad038dae8e558c867d99cedd3dddda3821a05dbeda006a43db0659fbe52e6285841281517570aa51c0d7a310a01207d99975a8fa912434e52530878834630045291f344fc66040b8edb2d27d265599bc19246163c122531985ec1b2679489be656305f97518ba69bdbfbddd239bf7141241c535868598462d0ac87aed3c2846cc1dc922ed154c8df3928190d035d12788c46e919b8cb7c5f225884ce133b6bfc1079cffe111fb960f61ab34b236bb5ed9c03f8ff6c4439e411eb0c75936f346e910be48cb625f167f9fab66ea2a19e537740d86a3b174b96e7622292916f16c21fc18ff08b2cbb1f6ff012e1dbc940d1e848f9bef5680881e7ddf15111b4303b4334daecad22d8383eb001ae5d842a263f8e9dec931ae3313fb937cf5a6239a745f65b16353fa14b0116f11c2ad6eca9a5d65bd380d98c5a0603a4962728f221136f1cc0436290b76addc0ec8c4ab0ca3322cea05277c9a4295234074a10a4ccd4132cdae6676fe4f44217771066ca12c7abd11d74424feb20b13c614749ed941b7d4e08889d34305c6e8d71525982c88e9acd4bc8d0ddb3b801bfb628d19b7dabbff0bd6c0cb08d639064c90ca8097a732938e2fc5041202f424fea910f543143920d571d2b774a043bee4a4fed33af9d7f43cf0383f1d5348ecbd76ad21e7991be18fcc3e1f6d15a970c4d92765e47dacb2b01d4b5d8e573b64c2ac5f6a656b711495de8cbe199641e53391e5e64de8ec8ab6f5974a3624b37629464bef4f88c95471b2a4d2595ebc250234b82e51fe9917f346754ae52c51846ffdd58f36c8ee26a1dcb67140ce21f83376fe45f151ed5e522722e3fc1fee406d42ff7a22117ecd1039adcbe995620cc69950ec3f2e0c9613124e1af9e8f828009a888133876350e56090c11f37ed6a03d3e53e6093c491b5e8209bf33087e0efe5ca2092652a0ba7e7bdc58c04f3dca47825ce26fc4a3f3e84b42f6de7bcbbda59449ca570b1009d6084d7229d830c686931b4c8658c13664200d111ab4bcb0254c0c290dbc34a9d14547ac47924a439e185c38d4a0737527571b43058455589427588b05838e50b5a9da2232a8049b53a5c79c1a31dc602e1c64b001e28e1a35595652747b32c0a291a7aa062e313b59b48c7c11944317b115a44a54598999c3821b2f1cb0c8c0e68e9d313d5c08bb13003d496e1092030c7dead430c5421f2f69aaec11233663c61f22594f98c8f012e362c074fcf96a41ca1a214f52fcf0520706183263f05ca5a8387215e060a38e181b3c38b17325c9072570b4d09019e28fd49a2a595778e8d4084284065c8f3a506ab0aa5126470ee725cc8f3f5a782c496365033d7868212363cc104120fdb9ba8124060c3036554a50e26503191e3f28192415c42a481c196868720553792a3276c31d205e37ce485580873949c0f040e5cc9e134c55b5708535654b082066726224f8f843274f20225da866b0c14a0c3635340163c295b321e6aa0bd590186c744cc122c3202e5b7a0864444b0a157e30e2e52bcf202b527e109363ca131c345c89926383434613332cd88912450a060f316ca981e6cd09724f5860b8e08748952c3264c0804c1c3e7e761004e58fd48f2559826861b57045c75d610ac612246258ac6cf9a14f8a263bdcd038f2028a0f65700c7cb648b911a88a0a39a0acb0a348979c1a65b8d0b0158119593ac8c9d18293ae373650b1214c9121ccc081a2270c0e35c282081292024d2e57bbe46e9f146131486122e6861e5af093056cc162e40bcd989ab11c17283dd680e9e2e5871f5a6a5e08d2c31bac3d43d8482182343a4809424f8f1a345e78d2831b3654fa1419236547089b301a6d78544da15a5335b8f89055430a90375a529c48d2e6cd1c2f1b5e5071d2154687355b7c0c4ac366480d4d80c050c16a8f952656e48c7df119d245cf96f9e58d8f3d555f4200ba01862d78888481f2c296ab1c07e080f11a32e3cc1c1e30132b43c480a68b0f30e4d810830f202a585caa88a0c159588292c0e16aa14c93145a5a72b4cea80132c30ebce4033c40c6d828128847ee0c0b42de0879022886987fc5d832360889911c7d92a4983f70e1d146c7132c1768c04aa062b480a5c60c1f1e54722584142142e60d92347a924c25a9ea12e486851d625e73fee480860b0f5d5bec2089c05815192fe02843a5ca14963e75f8c440a7881321aa1933696a780186325eb6a4909263638731279811c5cb91a23661ba7ea0798215640d076860bc6043c71e3c4a8c6450d5c3c61e20435a502375001982d821a54e0b47f2bc304523c95890af207ce0a993db82e5051b2d4ac29af480b5c398acb13c33dce4e992028e9a31778a64b919a4032e62674e8d176690fc10632345921ec888d500a6c219222570fdc8c203123b38c0912a21670f993c3e92f8583384023e9011eb82414cd51c2929256edebc99614c0b4de813413b1479e14810787a78a1829a3d3b0009140347202164eee4a8f163882d273f542847b8e478d345cc5590215c34a2d8e0b2aa03c64aabca4d9e175ea0021235c6cd0c6768d80108945c132f314c6cc0c8125403fe31bd0831a4871e90c81854248504060de1674d19219848f121c688901a70b0aa61e3053a3890e1c24446961568c03d6657966009f1a2c757969c172551ec4cd903064c9fa9430a1e36b89005e44f9b3c4f5c68f183d50e4adc68e18145a9cb932a356c21e2f5829d32450546870a0c485458410a0490f0d0429c1b5ef4718279cc3d58e468050194a40ed6ad03041018a0352b0051754c2961c20450a024718ca0c95dc9802564c720233618d97146061b64a27c55f50932551568064083f260ddb0051f09b9aa6189941b72b8f13996604152638c0e6874002147ac0f97952a345f42cea8d0d5c525100b395ca57182830798913a4c06a5e8b3664a9a1757396425c1562bf068f9f8b3a6c9098ef2c4e11286a78acf0f0a05016ec8c088814f8d1c8690d20015141d68da3c892307b3307ba80206ce0f82728009024c97285084d0e823c49b1c5350fc609951c5051e5e66260e2ddc009206eb062f4a70a4c072e3859913f080039b1c0d527a08136383c46ad08d1c781c9951a4079c2040721c8141d00e42a084798357d03308ca0d3246bcceb44931e590d97a6125c70e7a64a82de4b11945ca847541e205480c1a8624a9a1499123d8c602764c09e4431638517c80b2a586236276402327876a47c7162b51ace0b420e6248590989a207638734589155601cb2813031a4074dc8449758913e7cf103e5563bc502759bee8d9128847981bcca4b0697030f3c30f586758a862b224c7931e7c70610e1210b01066890c2a7079c2a3868d3d66f0b871a3868bcd083e75aa58e9e95345088d29ad212e081aa4230731b12e205be454a112488c063c038ed59e2d1d6d84c01282655c5133084f11237ce4bc9172064e931b4270c881c56bde8983e607a02f1d3eb8e06a2a68a365cd179e3f4280e0184c31f0d8a9a3e3050c241a18d1a2421f307106cd4006c914365b72b2d860c30bc30081c91f1f2d5cd1e1844fce859882a2439b1c70e2441943c707c181130410179e8459b1d36de9d342d80a7f846499e26127c89bacb12e56ba78551cb98a03bfd814cc191eb23ca9810b0d36746784dcd91387089720534bd8f8c11a9467cb4c15a832c7c1c3c31056a25459b19a016afe4c31cbf9856a97b7bde5051a185604e9e8822a7f7a40dff77c139c946cfa933e9e5de63cd981046ccad60f28fa94526a465380b391fdf163160ea3c9ba92a56dfba0fdef2f396b4896b8166e1043be4f1b705f8ad65761db52565b0712de2ea69fa3081800ca65ede9db688d4cf29b20ab513626340602c5b03174238268beef4b88a9642f09511704bc3eb0205a1f628835841126d753ad0334f3a4afd5bc2ecff63ccff33ccfeb3ccf5b1308cef6c4ed795d572be14ab84faaf9cdb644a96a7f2bc09e6b0261ed6ecf3581daec122794279c93cea72e1447072543c8a0a273a0e05102c448871862dca1f22332fe84e19a5fe208e9c1ebc3d9b592a9e85ea76a9a70e2790b676db222b88910aa236954b5cee41aa96a12fcebfb570b8250ca59d4ed1a8904eaba45dd52d36ff3a728c585b336d9ea50ee53ee9c2050165425433e4b576eaa429703870a540ae21e17d4489a2ca8140460a30a1728fb957431cd40a530bb4059ad05069018540ab71a7eae2694255d4c2f5d585029dcacf0ccf0215dc2d4f8820a3dd1922e269841605029f816a8e975f49b210e56ca704155322403e524dd29f81475d7ea2e0d31a84085b48797309bd7fc866b24120a17e395952f501d8ace45b807aab374de125f635b50970cf74079143724fcb941cb1b055ce5d296e44a5e0353a35a6cf4d0f03a400f69b6a06e58aabee8d79d247ea0a89a242b5441399904054a87ae3a5f504e5600c571fc80c607d46cf3274c83274abec24f742414750a2a043ffc791d281ba1eccb28151052b2a09c440a022a854a9d859f594c076a42cdcf355bbd7af5fab6fe053972cdca0b982366add530eebe2be3c9e5cb934bc5006c726e7ed93e1730659d7aa932683c94167e4ac53c4788b8d65a71add5302e71d55afb1eb6ee2e765af45bbd34bf899b7e12cd99c45bfdec379a0878af18c1163726696476d5b9db77806468cdfa533b55a5f9d600b8cee9c1b48fa7962db473200ec219ce4467faaf7feb15b1f7791ee87995861b83fb23f3adb5d65a716765577f3e671b3b5678006dcd116ec2c0ee78ddf90216d65a7708b269e40e3876a071f1105df8c7c343278ee779de57bfef9b93ce964a278b1b179b5cf48b14bac39b9e642e7a9701377a008532e88df193289608a7c0f10dac489778539a2ef3a644baac6d3aa4cbdf544897b74db32e719bce74e9b4a94c9758d465ee2897a76ba02e3fd4e5adea1247a72e9d76a5faa7af7192261f499798025de617a1f5d748ea58f38f7489e71be932cf2fd2656d3e4d974fa4cb9b2e7142142ceb12cf9fd1f9326dc158a92abde154e2e683babccd9aa7e75fabcb3c2b20a958559aa37325b98845065df8f7de0bfeedee15455de61cd01e5fe88548ebb78cfd96ffc3ef45ef43f13f8d74c2fbf0bf17df4713de87a2f8a3f8d7fa4df6e4f567ff5467322f0cc17bc57bc57beffda71a3ef65bf84f0e927387201882e287e3f8e28763188a2198e9f7a7ccd1d1fb32673df4d1fbea4c9e0c0fec3a777529f1fb12efaeab1dcdd4451e9fce29a8f1735506df67f9a31813512cfb66a40c2447b2acf9b66fa5ecd7da855555379c09247aff2a22f2bb1ac9014444441a0511919e82b29e2e3127838f6b130a5ae1a3407ba2f78628d1a3a011851ac590a6611acc9f06602383fa23b1d0ccf1931097b9e9353eed3ef4ce410f1c4972da6b496ae9fe9e96b9e9b5eb78e27ef8202975351209df8b1bfc50239df85efcf0c117415dde6f4137f8e421d9fdedde26c1d87b6aeb25addf6a9f5a6badf7de1cc290c5ddf5e708a53d9734d873d6eb74db6e4e5dc9b2b6ebc5137b1d93b5b5e681fffdd4a1873def838b3ddd39dd52f33b4d49d4cf2e63ce0dfc05b99b1bc91bdff99eee34f65858ca03eec31fce799bb83cc562f2fe1c1930bd79675969205aabdd94524a29b597526bbdcfbc775b17dbfbecb71a8a774edbfdbd5fab37674eac35eed33219446661b7ad899966370bbbed1e9b8e3c1490e8e10a8260388eb6e6ecb7592bc885a4babbbb7bf5f7ed47209a23474431d709c399b538db15b5d19cae6a34c975ae5d25d96c5724685fb6ab2bb1fed558a3495899beedea0a48a6367a2b69361db6ab9048d8249c7386488c7485eeb4d205d88284b39cad873f301ca7be92a630f56cafcd64339c5e89888888889ce2d92882b7718ecae3899ad01845b3a2f5998845cf44345a5151755a549471b72259db5ac8e5d34a58e50bac3256766d2b92a7df400b3eec751658209321a118a1c29785f42775a7d71dbbbbd756581174bacc4624bb361aa38ee8d1d1d1bcbe34a9fbdffa7ac9e23e09e35add3fd0bebbbbbb7f7605b5650eb7f17bdfd968d9affb75ef919d7ad1eaf4e8a856132182020a90922aa8c0020b2eb8e09fc41ed9912479495b9d92d34856bad8781421139da4c049a4db1c313fca7dfbd7394720b9bbbbdff77a6fcd47054e2b404ab2c02db020a982fffaef5fc193165870c105ff24a9350618042000d5e967f39e43f2931a035b756a2331d0186080810d003903cf806670ddafb23b26c9d76394ebf0663318a3e8677053d260039bbbfb88111c580e38e0a072c081734039b0408684a202a8f02d5052d260830d9696468c702a21826f122470011035c840dc60892ecd2a2b53b009c91b6c309ab02656d0a531ca6d3f320753236663140912d42e2d09a0ba00a80066272ba736ad03fa95525aa97f75018c517400250830631aa3665393d744415939b597bc830e6c4272f94ea76765e594bf454aaaa0030b2e78b2830e74071874d04107360a3ae8404407b523a3a20e402f614aadd58a850728a5d696784efbd7bebbf62eb389643646d1b28bd5dece7301cfffb2e688f96028d2f22893d98264fa333ae7d772ad35b44244e395e224919357f6f4a2225a746544b4599151919191118d68c8c848281b1919cd8c64a3919191b824db6ba9b53cacf548e8f6d4788eb05f27694b92cbdabd162b6fcf96246311677da24d877d5b129b0e6bd3616d41f29cd6d26c47dea62387b3db6c8cb2dd3e0bd96badbdf7e79c73ce69af1521cb755b54a82aa45f35f56a6d5773ced97913cff98576da318b639418ca6463d4dc319b8d517347b65d2d114da21b6e0957e2363444cbb49a4844346999561369226d8ca2598b2d166791ad688c7adbcda9b53423db153d9a4773ce396d57d31664ce396d5779ce39e79c73daaee67c1b903ce79c73ce39e79cd37635e7d4658e8a4d5d4af31152a7b5ba90e73fd5599d3aa5d429a5f48951907052aff6ce3a4fd480875cdaa92d96b9d79c257ce8534596b24fa976b927178f409beef9743c41a9f69ca2a237cda63a22753f65546128fcdf7b932c5340e154349ca0bc1676df47228162edab57d0b17dab7b3f378a0c85bb472201dc9d5e31db572fc13fd96cdc2ea7a2e63f55aa8d67079428958de2041843e32383cf54d6fcd293667e91a0dbb3a3ab80baf8df964ec065b8c448b991a9893d4a70a5dc3521e002b900815c2338f591e164c990c0abdbe283a4fe9a39a7016cd5e2957b3ddc9de7ed7b4370dfa7f75e7a2d9b7b801d39a45d2bd64bd258b8e7bd7dcfbdeebb9beb0faab7d3d98337f969dd534a73e7b4a7eff469ddbfe849dedca5b84fcc762dc54d4bec12b7a7dfaa9edab67ad5ab9ed3c5d6ce8d6272d9cb83bd5f5a6bedbcf7de3a2eba2fabfd3932a06ea9f9dd64e17b4e4b7dd035aad77de9799e47e29cb8ad5336b7bb7bbe15b52e963d1d5f94e98971032eb5f65e7b6fa5f7ebbd23ee83a49d23ee7ff8eefb5eb7af87475aa3b8bdd6ab8feb77d8f3bc5abd5ae9b5d78d0341a9773d3dadf57baf78495c3d49f0ed55b2d6a48fa9471f7bff74dfa8fb0da0efd4a354dbfad399a46c0955f9be572d050cf821573abd5438e59ca83859a9b0e56c5a7672a9b059614f05893f47eeef66c9b8cb9f0a727b9a8590821260d4169796dee3f7eeed972ceec62f92184af67e6ebcade306b4a09b6aac5bdcdd6929fbd7adc2a8dcfcdab849beef3faf96aa5aca4df0e44c360cd7396708de44c3c21bbe03e39c6b35f72f4f2346a038a7edc695fcb10f4a278c8a2e71549cba6b2b079b3e133e409e5d468c98234008cbfef4c5e9817f09cafe54cc6feed94b76f2c64dbf08579001b0a94f718ea01f0295d8e558944a97744fc974533abf8439396dc7b280dfc232fdd2c98d5793e8ee4b76720942890d3ecd99425dd21dbe7f5fe27c29a5ba04bf62c974875f8a3b24e906c9127b8e26ca5acd9deefae91263acab07c2df76c5cd3a7de7e608ff253b20dc227cf61ce9c204069c312490b952a7aac709be10917a4057102fe6f8d9aa8186983c65c234213387491632b90e9c7923c4a01739cc190287e952c66b099119a6cc4131884d1a15d014a1e203980b2c11d3278a9fab1d5ce82050162a57e2f8e982f5658621553eb49cb4a1a1426e035b0661cd90f3e586162f5840f8c81264d0112bb0a9204994e06062860a113f5db8c840b93225909f3729786853e787d81f3c6c82e0c245051a433039a2c32a87204bb678f13026862e0ee460831715b488a903442e8919167e706de591b2c34b8a3f3fb850452c479716185b8a684cc981ce0f30e809de74c23f2191149022c81a79441a9145e4ac4a2310cd88e2083a4dd3446262423aebd2e984da34ddeb66321df65131af12a35f61615e6544a5d35432154ce523cb274b3a48a47d2008fe188237d5aa1213be81cee55955c93fe7992e6b325dbe67f9ede6f42bebc338e7eaf9286f625e75ab4db579a48df4d79e59b45211f968077c3bf3c21ead3ad92554e5eac409472e45dbfd50e6e096695a891fd4b9eae404093d7c64ecfb96e66840d839104028e1e4640301749712526dbc432a362559f96d5e7a43049ba558df95e9febe4c4ab2f4069d1e2623ccc33c8c6e5c77d01df4c6575595d3cdcd69536dafba39cdaeeb9c763982d3a65aca847d5aad13d5a59308fe552377b56e2db912fd9bbbd9d4cd76518739130dfb546da794d20fa80683e7d818a5947e40ab7e451d1bdb756c6c6cac483873365bd2bfad4e814ec53096eade6b6177d8fd685778608b512bc42dfed8bd48e696b6f857141fff388ee3388ae4dce30a048c8d0d41c2d22e51ecf19f5cc45ac5d21eb5d47dfb7d4b7b5cdae37b6499ad7b2546880a41031bbab098b7288a8fc7171271a6e559526d7c3a6a6cc589b5b55a14bdcb418408115bb9b4652dd7c63b0c355825d30d5aea4dbae9f771ed52e88588adaca2dbba4e3a72097a4d0f92b67fd86d75b0699617dbef4fdca61a89abc82b9701a0e2da01a0da491bf49a23402f8cc4b5fd97b6ba1a493b979444abd592281d2bb01225caa9ac2d15bed4f7dd5ff27321da3f8d1422e7902d1c4927ba65ffe4a07ba8cbef67e43fb9288a22984570f620c6136711bcba0cff9b91fba9ca3e5dceaf12ce64f748371e7ffaf8ef4ce18f3fbd691cad36c5982bd4a50dc37b5fc5fcfafa0ae9143929968b8f43bd44e801136a4827404ca67be8859ef6445fd6b60f3ded2330f411107a22fd5495eecfd10419435a88a45814ebff76c372a21e0926336229974c46aa98605beabae84c54a44b5b24f1065132dde36802a871485ce952ac50835423c1caa2564c9e144ac59f5a511f9452f033c16ff4ef3fd551b46d31698ba28b2fbef5a6d98be296095867af4cb75c693ef84f1e8618a7d920a8cbdc04dbdfdf8f9c5bc5049b6013cc03d34b8aad4c2e71db9f9c897e497ff6feb5fbe4043c802b356162ca35e60871b7a525dce77e239cb6f273b79bce7feffd7c655f64f445af357b174832a3994671f4466fa45d20c934920386bee82330f4451a052d14464f7b148a7ee82340fbdad7340a46472392038a7ee82760a4f3cff103288cbee8014826083dd2032694d0532822a2a75044455a0be984d4f8323df78412c23e9ab07e033ffcd045d2e6b7ee69241199ab5227447676e696cbd617bfd3e56c76ef6cf6e0379b7dfe7bef0dc37b6fa8e71c3123e7ce3372ee0fecde133b9c9dfd25671f62b2c4619c73ad866f4f3e9fee649cdf7f5ed928dea6f069d6f465e4488a64f93b7c8f2c6f1bd71f45f033a3dd0c9d08ad6ced0fca52767a80dbfe1f826f495097f3ab84aa4cc59ec4914bffdaee5fb86da9d809cfa335856bdf9ffba7a7627eedaba5acb6531ff541e1a443f25c33c8875d31710bdf521863fc7d7fb3333da08d7d6c8087fd86ad3361dd3dad36eb49624cab0a15ec8a49b532276341b78adace4f2db0b18c5c41b70a71675d9eb0b196f25eea7e97ebeb3237bb5a16e90ada952c365d4177a755889b6a29efbbaf1477795f26c358f6e08760974c37c6619e8d354fcfa49de9926e8f14db23595aab6e97748789eebd5a37468115acdb43ecd275542bd761adacb6db2aa224b9bc55b7eadeb8dfbc562c94d8b91225967025ee14e88e45c30aef0ffa764be76ed516fffbf023b1176bef0fa72cf66fac89be30a6a4d47d30142d16da8edf6e4d0fe863fd7d342ccf3aba914713f73b15e296badf89fb45117e534df4d524972016880522f1a6f1fd655ed3830bb6dfa7982c89da6c7f4cdb0abdd331bb766e76795e687728ee90b6c3a41dda76b8d434f465891d82b0c3101c226d4934d1ce2ed0bd0cc5dd4c97537bf6f8a3fea29c623b9c623b7cd987540c49f031e9997431630aaa04f95130417e1a142a6b17146a5625fcd8139f92e3cbc8f21b29d5395a75c2db12c7cf1647f17baa554cb12d156a5027616d7395798561c505636363930be7040208dea2f3a63ef7292a703b87db7576b87def977813914f47e4d7a6a3bf370ba664db3e7a8cc323925acdaa843424f41490df9086b409df435ec0a8a8a85ec8a85b83eeec2f6f92315269cd3542c80073a64a27cdf6a2ed4ff538d35c33e84add4d15ca7f48082ce99509e648d8896333dbbfb8bc6ef045a81b049fe8279423811ac901b437fa08143d914681e88bde48a3a08582e88b8c1e85a2a76924f02714ed27140d6712fb8dab881c6221d7fe688c1a12fa21d249882cf4e50473010a3d480a3db5f2172233509b8cde8f9ef6335de6a29a0627d8572550cf4ad32091762650774fff2373f99e16b5d54254df0d948b6ec095fc73ce24ea9990109967e4a42279820d996ef1cb4947ccd4caca416a05feecc777cd003119a8df6f5ba2890d9c907326ba5d68a1185ff6af552e91bda692bd4ca7901f85a751e3c2f0c32fa1c6ecc72f2757d65af467da041cd4f8b20f29978c1c490f54773f7efd607d7569bb595b8ce34520c973db8d9d49856d4be1ffc4c7519e7def04065bd439dbbef84520c92a2a120fd46545b2c524a7edef7beb4d35ebbf6ffa219775ccf69fb9f7b22cefc79a05ea12e33a066b97768b2f6af02d96dd651d036a4b765ab43a579174325ac72c95cde6eeded4f67459c99b934c772782cd6f6effa9762fb62543c0d53ac36caa5d523061b6634a45c7fccb9739c2df859c54cd6cf7c718572f2bc869e79c76f717632ccabeac6df0b641dc064b6c5097dedfff4857fae94aae4b0f93bb6aeb5aeca63e77ac309cf53aa5f5bda49b5a2d45dfe9991004ad0dadb5f6fbacb5df4fed616bed7b1663ebf5afb8e4375b4e2d81ef3fc70650db75b576dd7bb8ebfefb5a6bada0f71fb922051b76b831aa0461dbbffe955cf25b483b1d30eeeaba023e7d0a7ed52367c516571266ad1ff53961999bbab2efdbd9d585b36bdb5b820dbb837f7daac190ec5ffda56a02f29738bfd45b4af3385e51bca2e846fc298a266c220bfbb44c0349f19ffcdeefc125fdb2ef87e4987dff46ce9a01396b00c859950040ceaaa4e983e4f74ff5a33258500c1cecf114c208b4a75e5e228a8c8e6a226a474645b38b4634443a4d2f9ff9b5e1258165edf33e640275e93df8dfe789e17b0f8261cd6ffed7d21322c6d4895263187abb674bce347bfda50d031b009efe7cfa3200689bc640cfaa047e8f935d924696336cd37e7a93d38dfc12e774c1fce2132c3795a024fc4baa45d4bec4475f8afb855e933757baf775992f70fa0a74794b724272b295c0efffb58a208fde88b49b02a3af7d088e51354a8ffe3baa1d1985543422eb0edd4884c57bde9ce87c23926eda137d68af8cfe931b91731b99a0fd10d1dc768c122287746e86edfc773cf1e95912c3ce425963bf753372c96f5d08de775cadf63da4327b2ad290123dfddb92338db2a7df2724f44377686828ff1d8548d9d371f6a49dc9ded22d6a7721b73dc24929d1bcf99796dadacd6f4c1bcc9bbfd7e8069369ce27bbf1d337bf7d0f92b77bdc390d2101a30327fa6d23d24ddb9d9531d1ecc1187ee9fbcbfa41fef26e5a7a98ac9bbeec33fe2c1365249d325d8a24f08cfa27fa0ca47b8665f8c50ff11825cab46ffa60ddd4ee39e2ee4b1bc08f317566b49341dcddf7a5fd3ef1b35fceabbb1575b284aa5a7fa4534e573cad6a3024d3ed892b966eb72467aa2b6c23fc56e71a207cec4bae9873c4f7f727edfe23937e8ea8b94caa61a1eebfbfef3dfdb2e6d99f48f6eb6ee7751ff89e45dd519f5ee16da9efadd47d7c3d8c3d11e65ee1edee5bd4dde9f2ea155e8bbafded0cd62b67a77ccb3f3d7beedebe10995d89e28cfbed74e3c26dffe20480aa6c6f7d3f21d689f2c3cebc02b26fddf3e807ddd7071fbca0052989fb98b4fe5d54b5d79e40c0d8d8587525b259a51457820efdf7f63bf2ce664744b47bdb5497b317ff889c4645248d242267991c7f1625cabab7b2f1eda8bb7ff22121b2ab78cfda146a507fe4fdb2bbd6598c2766636363bbcedc82891efd285847db75a09e5d3771e7759de7bd4759f8d6342d621aad9674027bbfb32309b4c39b8edd02a64ecc6b4fd0b1b1b1b15db518249c367b730dff04c16ff5c92738e7dce0edee77e48a1476d775a30876f2079220e00a8018b94cdaf5e6b7fa32ae4c4b2a9392de96b547ca17405a2670db03e866026e0f921c0e03e41e3ae49727ae3d5d1d9809dcf448b9f1d993c629034f87c53da1c6a72b57fbe2c2ead9c1c2bf84933ac973cd989e8ddf86677daacbd9451563bbc658846c5faa3e26a1e2b0c4ff91e0db4bfc9fb694fec4baceac25b6f1b62deebed8ebf01ec7c9654fba94b4e4621b372397f8452cc3187fdffdec376c7d05a4ad6eab83d26d89efa2d38eec3fbbad0e8a89a42d6a906b8e10bfe84c2e41ae2d663f5b9c7384a8b9ba2da4ad3033714b798fede781effdf781f5bf705750e744d2fb3ef0bbfbdff77ddf07767fefb7e9d2feb454f7b75cdadf5ddadf6372daeff153fdb4f59ba7e7d5a2b8abce2d6dd7d80c4915360dc2e1be4226948ad09a5f4d83702193a23033b9fca2b0fd59b80d7a158591545ec422b0ed3fbf4471b2995fa2ae19c9188be40ef1bdb7a309dc16354862c96588156285e097f9550456cd843357db5edb52f56dad91d9661364cc9877e2c410e58618aa708c417d3348c0d12223884a142c75a0b09ef40bf85d0abe9d81e0cb64322932dda2db332d25fef84f0e8ae2cb64df0444f60f7ff62058ab57f1edf7b42f289273876017e5c718aedbd940b2c7475431e4b93115c39decbbc758864f5041dbdeae7b113164152017a6a2538f5c62fcbde7514025d5b3bda7743cd97bba84aa4cc1b6b7b5655accba924b91cbbb8c9d6c7ff0d3a25641c5b6d539906b577d449507cb494896a5af23e812dfbed86c238460f7f43d5043b02eed4a7758215976dc4bdb575f7defc5f2809f2f8f85b3fc582a3bfc2624cb8ea99062abcedf56798ee5bdbd41d668716ed01cd78fadba7e6ad39cf3faf1e33bfc86adaaaa57d3a8dda5cdf1d36a3239c7c49a5813ab5e3f9d5557258a2038444413ca4d9b3e01e607069824fc29a5e317914fb31f22c391cc74836053389381250246711cc7f171cef4fdf825a607f8c75a6dc21aacdd485c55a21dfd3e9245b7b1f664de1979293b07305dfb8e26eaef2b93c9fec96764982c34f1f804f82138bb2cdcc247b7339e60957982550697c30f87ff7d9f5661db544b85e183325d4e6dd9631237fbf24612d1846e7ebb60fbadb4ed702a851f0a85bfc35048e851308190906c74b7d53a26e1ed6db6dbe7542c9cce747175f003e947bf6b3ff04bbb5da97eadb464b12dbe6a60508364db7f722b6eab3f5ac3606a853df2bfb69b04650fd4a6a177d9589b53c9fa57fefe2e78756e7ad51f63ea60edfbb4c5b51abd6e4993c693b1a9e7652d28e57b4c55df6251592c2a517fa8a93c5dc12a5805ab60207dda79326e98d80dab4d16e39cc3327db139c25f006b2c566dca32c7da7966a964966aa49e57e8de8d12965cfa2aaef57647a84d277cb803eb6f4ae6c811c2f43a3d823742adb6ee56fbf77657abb0d191fe09b589b23095fc7be0224b688e22140acd41c1318f31cd2008622e8c276d0a1fd75c898a2080afdc3dd57a451c71889b70187f5ad6e2465c880329ddd68aa2b8c5b7a29587a02e33d69f1e4f60ec374f5f1ce087db94d2116c1abef8942c71fbda32d4f63fb2a4db367ef922f297425be8cb6fe84bbaef67f2564713be67f8035f46969f8109fb82a1ad046a605063b5efdbfde1645ee550e1ac2d6dbbf47469dbe56ff045671a372d7d873f2793d0972360ca5fbad834049bea129421d38d339d93841b60d39ffd9465b0e98b1fbae85f6c1bfffdd0377ef001f9d95dd7690ace2f1b9cdab1bb1f6d1bec4c742f3446cd4ccea9676439ee3283e4067b1489f6e87bfc7036e53a99e88fef4d26f0c79ff383254ac27f1ca9c4a9443fa093c4fd0ab6d3f6a594524a1160dba5056cf9fb30a493d62ac3ffe4f33647d832055fe82c34f4654d469ffe102944e6315b59bdecfdf38c52907e14ebd94cbb8851c7c6a0b44afa27e8d8d896ca6915754ce7e82f99bd2cbfeccbc9a5453fcb663319a5946a4ac21b43c0d8d8d8ee3c30096c713fa77496766e69c976bb2d81ee379c8b4aa4e1238cdbd8696319fe1002a14ba8b40d164541eb14b20600008002d314000020100a074522a170382047bade7b14800e7d8e466e4c19ca63418ee3300a8318648c3184286408200cccc80ccd080413819b2d5b11875bf59d4e077a2a38a7a564cafb79d01ebce897459c5d8fac10b698fa530126e27d7b250c66bdbad0e46cd30cf2c7874e7ede2db8ea7a7f17080d104b8f3b5b865e17f503f16b0f4fe7785d80c080430d98d9b167be8e4373ce092891ea58b1a4719e1aad71cb9416b3ac9862f9a88a7e277da9100ba8b1761bbb32cb4fc62bd927494f09153540b8501883d71952a491c78d78f2f5668cfbc118763ec285190129d4e8f2986574538ba7a7faeb4d2172196c7a22d494a64c9be90dfbd6c51237e457e4d4c55d162beac802769d2860951e357c8b1ab5366941af335f99718369c4016b9bde5192c9bfa2fa3071fb98339b0ef95790906ab581c68bc6f3c7d1b86d84a394f7e50837c647c73726b7ca7c6cd397041ae4b28b36f5b5e93437924de5e8dbf1c7cbf706f9cd79a845f020f673b3ba6e59212e3c68b555e56a13edbdfb1fb4dcf8fabd23edc95124dee6e01f9a138438cae36419e1e95ff5a8844630f30f9846605142ba56acbdae23a0cea6d3a3dc6646fd7e1970214fb8a9d47807d12fd4cb5e9dd542e745e8c3c93783e20d1f933d779fd063a4cd8baefc0819c9da0731ba582ea7671cef5a5676685fd3c770618a61ff30707a4880b89f8e13bf4abafa063df526cd05639d35dd347954370dfcfc5421cb372e80381ee0afecef9af9fa89dfb0dcd693506023b40739d717ae51c820796958bcee94e6bbd91f68be41d9113e147df24e0aeeedca81e57f170c50cd38e46170e170a5cc2ad6d7a71bc119ca1093b0e61e9707a8dab57f401ec074110f5d000c8002ebc1fe6149d2afb93b64bfab0517a89a2e2361a8318c48c07b451c485995b9bde7700d2d08ad81b50277cba7f7ff38338e30db45596b2256144217d49d2f7980392946b6b38e2e41c14199ca602761929d73430ae3d289dc1fbfcc84f0fab9ff4351b13ed0e1af517f2294c30717a7607336f7bcc2c3abe024f8438c8d8e6d2730e60b6410228386f0d27b82d02ce42ea66aacca2e29a9d52ff8a81c1577b3afd18087b36dec8c00a41695c7d16ba36fefc0d854dc18a41ebb65fa7b28d4ead7cc92b8b3aab790fb26632d15a647baaec3cd589cf8d8e9b19fb61b302de96dcf9645cd3676197b3aa3b016a381e6dcacb82e4342b948d161a954cd864b10a926265b1d04a3722713c0b8eb5c90ac7f8d9fded28ef487ed24f8e56a63acec216ca7a2f5639f72e1cd5d73657b6b9d5ac652888c031e8d2e5cd1116b0c62a00d72340c098c57d723edcfc8c4485bebc77af123edb91878ab2b02060fe66a257ef35f1d29c95beee5aac75875beed9c414cff11acadccbeaca02f66cb54944fc12860309448636cf2b99457022c0b643a9c943a7e3ec768a880457488ff12501f3b090593f3b43e2ebbfb914085a2b1a8faf96d70a730696d2852e69ad863ab74290d40fadcdb1d43107b190b77cd956792662129195ba768b32a90114fba68552540057f10bad3c525868a1651b7a1dfac981d7ec610cb6b0d13f6fb66dd4f428059b20e7b8ee50d87a9cf2c249ac2ec4798f19e863968bdcc42b2a2ddd49588e9355b68354ea6a3c70d0e001f89d418f0d50d347a42673a98f7e9dc6526d491aa34698cbf27a5db6943af8934f40a23815cdb16b9abd4065bd08df19bf4624ba9b1fb1dfff573c98833976248a91c86949e0b65a2846e9bc25a971e8255f283bf215ecd521e4eca3f9858ff15094ce5e70ca62be0f6fbbeddd570e2ad3ec6bd6294d18b2d9b9cfacf2cba80f3bfe4ded9f7e1e91ffcb0359b0673689b6ba1227733ee95869161e116b8277b9949b2a1b7f6c5dc4465ce63fc95c476973b3dd244c967136d341cac9c4ed456e52e6f17560a6244311c254cb1fa6dba5ed260644a4a4dc9a4316f9b5a985fd2b8881d81dc07073248caf4aebea0eb95c250c0be3d7a44bd9e9ed25c9f5aaa058a4f494dac07bd1d3b9369b0855387f3a51b40b9c83417e99ee7265be4cfc2d7786881103e19f2e1bc61c3286b5668c740bdc2e5cc50c8d93a55223fe1823de7fcc6a0a8f1f4d354edc3d9cf3b4558381c1c2e296ad8ffcfb96d630b28e04a303930df95451c1a0aa8508dfbbb69e23e672aeee36c247ed9ba66e2b16c8f422cde976c078df118f39b274723fd5e8280a531ef3e9c718dd89dc6c6ac8bec17a92839795b720e52ed288cc34abda452133b90a7ee825e86ce4abeaa3af9bd5ac752922cf076ac673fb9cf09fe14e9114d0a2661f49c90c7a1566ebb0f66bd1d928356d14008b633e7519caf072c29caa828396d42a54ad7377f2f61905b4b7d7c17c223b64130d66f6b20f85a4ab94aeb2af5c875bcc77c0b2ca89904612e48fc59c6a17c7a360a5e8cc17c243dd12b8eab95c48dc7378904ff8d13077bb0120cef6843649aac1574c20ebe1a91edc48538b8ed69f907029abc0b660f290879c5e8bd401b8b4cdebecb4cfa059058657d14a28b88734d07a95d53e676f5b8da746867864839d1cecf3e620f414f0f96da16b85600aec0c6166c7abb463d91031db76a663c3f972c8aa81ba71a330313b089f7988372fdc1d9a0a7e720505710e2ff600b341f199d3fb16e0032cec13c0e561a02927f5dd37216c7847cd80207a8e185bc6ae9c9bc9eed02695f7b661223d08e40c42530e800718efb1779e37b2b3a786b29e5c074f3f55f3707a8eed0fce13aacf8c6fcb776b0cb5b9093666e88df00ae75bb4deb16af6027a70162d62bba225092692ca4c41a7fac736c5c4e7c2b7a0303a797af03bf65004e1cc141e35ad6b3e388938b6cb0fd066fc59afd341e3608171851f5a96bd2f74ce3de42b6c06b1bad02ce38e68dae6070cfadc4641d03f2b0589174c7319415cda5cca910ff519afc16aeb61674d6805dd7384e840ef110044827176ec96eb34daa5a4d4e39c28413d67279286e14b7955c91b66d5c4a9eb3a645b69148d6c0246ddff1c887064c11054fa9aebdf37aca2b62ad07094842da5e5b8398533f0c6c495b56c9a34be2f212f0bee68413e440dd6dbe8806d74a5393ad748ad2f1f4046fbac1c9ea7dc390d1d9f8a018b04875b9d85b2d53f569d7748a893dfa7dbfa8a3c1a296a064ea64ff597048de4bb6b500786f2d2f56969e7ab306b918b86704430fdf070e3fd7ea242c496d9d34fd487e76de4bcf430da26aaba4f2ec4ddd472875a16175a98d9ac3d60cfd803b2fe05c3868c7f85c9f1e7df106a711bf623098b391bc84ae33156b09fb23566c42bb47659d16d8c7f1ab134cd538f4fd69727ba698d2761599585d644f19d455b8ae1541fb1311705be886fa0ba0e54648f408ae6ab95f0207c7276ceab572ac2e9fd46fb5a6e25f0fa5b25bf72d55620a7cca0252c8d26d2c58862f15f2c562a30d2898d4a0d567e45c4027cc6819b2af12f93b8374ed71de6af1a731a79f2124b7fbaeb6e6edac472cfd1b9e0744a5f92d9aa19042927e76fda7ebc7729f409a666fcf190b4c4620d2024704b337a50b6d45c50f6d71bcd54b880e7b42fc8f1752f214581468759831408f40c04a0ff89f25bb9411fe67528653a16010bd198985cbbc5bfe103c81ec6fb1f5c79560670e97487248e8bd7d615729a0795a6086f787f60c950a3a260ad356c891c1ced7085cfafcc70e156a5eda85b9efe906f5ff8709804502fd4bd75da3a8e83182018b98e96e1c26e42be27c33cae2db9b289ae0d8879eb501a5e57c9987e7c059db5517a55deb32ee50e16d18c10cd8191e304a4743dd642c150d0353eccf38dd7abb86a6b9d84b57a369be1454f31438a1ab527c79439cc763d284e551491ca1e5b9ecf2e61a7c895666387755812a233228f2e13a32d02d037f83473006c8eeea43b4d1d0701eb9b9439b759fe9352abc73c5807b2f439ba96712235e8f2b1ada4885f74c1ce5c1ae3dad32b770bfe575eca25413be965410baa46053822a9b720e9c24223c72c371d1abc8d75a1b3f5cf50658b8d08dfee5627c1a5f5092c6996cf1a17b64dc77ed2b8000a9b5a9b428166847fb5e1e15dc35a39f3d40e7b892ae48ee9e3d80a22c1922dcbd3d2fa09ef2efd5fdbfddb9b9f9d824a8b7e3c95642241cb529394197bf7ae61f0f7a6ce69ce0d53316512786a27034af1e533ab0b2c46e357e46328eb4015e46bdc011c40afda26492c0381dc9d1289586571fb298a1c38f829f1ddee5135f62b90ee5f05737e66b3d86d2f4353749e51f3135bf83ab2f1fca6f03af00f7af46d6782caef4a68f3149e18da35dcb61d620c0c2f70c5144b63f0f333cbb332531f47a351e0005d169fb37bd571b357d912834d3c3a1712403cfe9d99cd08a88304233a21dff2d5acd063147c2ec999f245a97e0ac3b9744c2b9aec8673806c070acbe91892aa41070d8f390cc9c5e968ada753ce6872777cb778601dfe03950e4f404fd5c62c8b6bcae62941c62e7a9a07ce60f0ca37feb3aa9e9d36c7b1ec38d4867e43946563190b5765d7a648969a2b7b81967b2f4803710a1382a686bec01a40768e8f2a66345a6147bd98afe8994dce8119863a472d047cd2898fc964e4b1425edb355dd657665101fdfac11b91d50997437b1893fd85cc7fb88ab55b500b959b38e9f41da7e5efede95e180721608f3fb96bfc3820e3e5247038f2a6ef3ad220bc79334ed104266c9ee9965ec288566a60ce28ffa7dbefc4572e3412a54eb894fa7fb4d37e51eb0b960166a67a819608b07f80efe38a3abc6fc2c02e2c4219dde50e160891fb4350df8e731f66e635cc3e52c11324de9c149f511324c775a5a819a40c3b5a8aa4dfe4b922728e9c77ceba57d95f417c3cd2a60541c404bb6d2d1177e3ab07e79c3ca35c93bd1ce889766c5a21d213f42c710088fe25ccd416900bb6e0e8d4fba5a890b0f56b19b4d19ec8059153cdbd39cc33975852611d24e07863f2a6ebeb2156003abab340847d938f8804646ee71ebf18b65eb9f1f5d1e5ca0e77e064b32a79867b6c3770fe2d577a8f915d1b2fcb651d99a355651bdd8e17c6a506f55bcabba3e0d06f27139e7b5c53d0165f33ffd98c8596c44090e537892d7648e1c9645126e84e4366c465f05eb42063b5a04d00f490aea10df2ea5258f7bda087cdc729f98b60c203e1bad4cf37959f0a1ac52fb136b0c8253e3add26e54cbfd751a493c000e2c3e8ee6f11cad1d115f11828786d5c3398ef6e15744e647d1f28f8ac8bad0360338bf3e8631c02e969362cac5af2868b3a5cc74ea4d4b0a04a30aeb5b8706e3839ab24ffd0dfe47b3c5ece5e72c41762dc8b226707b816fe91b224b0f6ea0846405ce7944cf69b78513d31f3da8a37117c3b5ac6e4e1bec41dff3c6175d2e4e47f4afec3bff604d6731a8f33a814e856e08f7925bfa0c500c7b0e484a6e24900fe9a8ba4d5b2cfc4d6591961c9852fe1f2ff81ed6fb7e748545859766057b527e4c1ffc5109131096d9e7a9a6edacef18d0a446868e2124db0b2d0752d413ffbaae5551747601c5464bc792307c6a2cb186754d412ebbd39506012c6792af3ff56a0a9642a86e0d9aff35cd5599843916df0f7c58710f8b77303f8ffa642c25367f1c487de5860452386534e35c43c706da2f78b4ac8751626dfc9e8170dc439c31b4dfc04ca5434af89cd9f244543bb405216057f40d54be6704be4fbb296151822010bebeab7af4bb57fcd09bb9d0e707101908c69383645a193e19ec322c8e3cb9a9796e1a3ac752b6ab4759d61252f09762ca0353d1c452370fa5d860ce3a27a0519259d938b8e88cea2848e3a0e4ef705ddcd60e6415347b8a0f18b391683f49e8bf3d469487a86cad9583f8b9f8926c9e14264276d92790d39db5bf95c31346103854cabe0eb7e5297c9ec7fa058ace521f79878ff2bbf55ad27b1946c56e0086e8e5a9ca0547961455ff743aeeec9782760d5c62e55ec3f1bd950f35a14095c6db671110e6b8dc6bd37da56b780e7b30309bfae27b213b3c77a2eb409c530644af2b20700340fbfa5f97e4c2f55c28a9e92b09fe3053fa8347d468b3cc2bb2f627c4b3b8dfbf49e84499919d697f564b54b9de86cb916ac9831081b2358eb6dab3ca0ed1012dd9d3146aca6c48720ac39e5b6e45018ce61a29b00cac9387a4ba5b3061f2969583481ab36b24ed992761f7fd34f7915348f45bdddea16927f0664fdff17dffce8841914c834821e4981dc15e4602876098644b0ef0085d472b6def97bceefdba318bb496e0d07eef9586146de2c061bd216f2632cf18e9e32cbee949f8b9a264f1c587118e6dbad3ae3195d12134bea360cae29deb4e76ae319c60d70b14b2ab579d6d54d95abb83623dffe16c567a808bdf1274d0d45a152e34de283d94f0ba00d5f6ba5b50e8cfff26f30a65b3743e46e8ee1f47ffd61080b1e32dfa1620069d5b7a4540cc10b645b3c218e601bfae973434b82e98d73b002f797e28270a697db7fc934936f950a09b4e36ed0c766b2f2561170556ec8d04e6354ab36b943d57656a1534daab4ad7d9a840d3d5626901b22c5dd162ba92e3ddde59f057f3f8dd69112e771c407a9240504662a58073215b7b167e08fb6b93d6c1dcba4377aa3ba80dbeaa845d4085307c6118824befee8c9d2fd28a16f2898f7e3e821a3ffb1b174ee6d565c9c754840ba20ad0074485366cfb52c1c6bb26fd24af42cf2eddfa3d3f7c217251f17d0166f79e7fb53c5cc8b438496dc961f935d0e8336b6fd8cecdcbc79d0da42886fe4fd7b68670015f12ee3c4ec4351a3407f68740c0fc24394a76e89463b9dcbda031c3b50d4d137e98d20ccd51f5eb720fc2dc0a8662ebcd4035ffe5e71964989cd471b0f47c096e4b7a0444182acdf5717beafdffbbca7569250f92178d35b26c5229eb331f339e2620a8dde11400dcccedbcbb429344d844eb8dea6997a5fedb103d131b8a755d047f543e98d42cc96c21392b782a274c7eabbd9af00e7943133a1fbc93d3d3b2273e748295b4492271e62b28426c742939733872877550a99f4d29390a82914740ab91776514f882c70a86cb0d270d2bf43b6f8f08a703e9c856bdd1a1a94cf52391de8936c9b9374f2711f479afa8be020afd20d2349d307a916c9245915bdc9ce1244f668d100169f9fcab1372dbcc178b01b0c111e2c5460a401b2ad135d3068d1830995d02552d44f6e56e4dd6fa0db9789f3d7aad9f90baba253f038f8fef781f454dc2dc0793e8e3e6b916e1457332087f3cf6cd85f19a3d43b96689c321f2a48a7315d284d96d8b5285641816949f9ff31fa1f89eebbbb3d425ae76b0ab2d9b56b7e03fcc572e76a1ea1ba629cec4abd9afe3aea2eb867aca372b5327b580b875ea5dcd60eb23b0dae5d52496d2a149398aedfd327fb2e46a97cff9779cc12915ed99a8b32c6e170aabf094393e7df6bc4124815e3c0c4ccd91095ef048e84a6e3992c114d79579e64bafaca422b36e9b83af8acade23cc90280499d749a2505c93264904e78321341470df9732becb62a72b6752fce25d3a7eff29b1044b33feff1ab16e1c30d23a299db3ffdb1909a69bd9af9b7c1a630ca39a6dea852467380b856073c2763cf8e0adf666f278a5af86c719d22f9d3f870146701f5b24db0f264f88d59420b43a70f2b2cd1d16c94ccae0e6ec0b5e8f51c1a5fc46ec4ee8097529001787ae6350ece30291a1db9a710dea7386d1a9005136126940dabf4b35fe9a7cfd2e2121573dc1006bb007b5060367ae279536933e74c64e5d03a045f7b6f58b39a733648fad5f9533f028e53035ee6ca026347655b604f11d9520055e2365d0a0c6cd129a9e0e5afcce2080a8f2d48d2eb06212fe96f3a331d60cd60857aa4270013109faa82630d7920d49b4293146085d514ffd20cff831c13d0299b5426eac6325220e4e38719a4bf7210af519b5388516927490267c4ec6921f8957455c3984424485ea10a40a13e21c2a7126223058fb6e42047eba5a0da4b54f541c4075d0fda1e50d63838a563503334108d3d2da7c35a64bac79032cadf84011de58538bc83ac5e4cd8ab537c0f1c1f61fd9d92cfd4bd046866b9753302587407be278f6d7630750e7f550f080f00ceca1ae0be49229093ea54f26f0c1b012f4c62e295e5167befd090776321e980bead90300668e543e5e92ccc33f6340c09d6d710c287664408ec6338d8dfed0339071e6df130984d0a97cafb0a6cb72300e3558a0ece0948b09462736a93ba9896db2ab0128400969c991d37780adcc93f98c07a01c3b84d86a84869d3fea4500f913b880a643602c8d381f29257dcf98e1f5e9ea3a024459bdaa01758bc7aafdaff966a7ac898c197c5c4ae3d457252b400ee5f239f69a4d93000bd073231e523ed40d753c4068763fc8b5acc4243772877824c9ea0888b20ef9c3ef0b9cb9cfa0199adca322b39525097cac207ffb52d10452e9bf85f4a580d51de20b5a0deb905f48a4a7c491c86299e6a748666008cd3b3bc88f255ef45d4c4082e64e16014fa94c7d0f089d80b09042e34171341c1143bcee06a1002322992d000267c9544587152a279cc8007d0387819bc5e2d6f495f4d446084b449241583b82841942543d08d12510a20e6921f246d20f6dc0572119b7ccdcba6c43ed245344b26c82b7a266c5e742810035ef1d14a984b98f46f58c2308ee227e7255b4810f665f8bbe0ae71747ab480e72dee6fc06a314b9ee5049e68db58a522f91d5e20d4ce95bc14307014aad44a37c64b0360497e108068173757a0aea9a68f0e39e766736dd3e77c8a48ad4a0a9007f7d96293ddc88525787a1895690e538e1e83df36818f86b1d186b34e121baea41a563ed172ad82ec032c2e46aaeab634994788d2078faa56bd72e792276b8a59530621053a045e6715192f0405332811958de93f2dcf41814376cf469713813c4b7163711c64323bd580327be020f1b1f5f1874e3e02bc3a0b83bb9b2111ba3e48ce363cfde68bb599fc5af1eff585f43b07663e50b31631b7705af852550194afe9b56456c249beb371bbb2b9dcba6f8edf1d3fa53907392842dc5a7bc5df8c351cfedeecff0982457a71b74145a1a437aef83436a0556f3e197152908403bcd3329e73d706c0ad19a38907bffb6fd03fe808468070bd93df36b7eb8b3812081c66abffdc23e0597ada94063308c912ba8f41a196b80be5e70aec071812a0c87067c3cd1a297cc8ec5267361e0d75e3257ed23d061a4b0f44459cad38fcf242aa950bd86f8626d782e881d91dbfbbab83a0b7261ce01ffaf32b31fea7ea68af2a8bc17819fc06045f3cd64bf4958a1b12d3df855993302c2caacca146cc0f7135bacefaad75f4a8555ab203e70528f599c35e72ea849fce2818ae782bd9dfbb3778e5c96d24ce0437166d04b76d6c08c8b7293126ef11ae29861440c7cf0fe4250bc48a12ee7ecae6f8d2b08f4f3e555978d23342ab999217f807ed7e2048919d274a6683f1c230ce833c8640b30749c508393eb33dab0efc68a67e95276e2059ab7f8a50f82037202ea99944a6b5f96bb8f6fdf07fcd51c6609b5a39302385373c6a9a1c9dae2682668cd6fd72f13dd7f7750960ca77cb15e53a5ddb2bc02d713e78d1d8f07abef04d651993fbf90dcc0c941af2a99fb3ef7966f252bac24ece969cb2948450921ae45ec75c05823734d9a0db19ac714c7a3d7d410c8ae0bb01f2cef4d0bbefb2027beb4092c704c42a01641243b1a6fa6dbd808600cbdc84b01d66887b6ef1d7bc7545cdff1acf8f09a85b6d46561d902aeddf0d25af992540a0921a945b4196ccf2862842cffb72cfc0084bc85d9bf8b535753fe60195f5acb7f4d2509d2e78c16611c370921fb3d1db834c5af7b2150ba57ef65dacca8b9b280f26398dc3b3d1ae04daa36060ccdf2c99b2f5a490fb9890bed53a42b8595d1d3958455f1514d5bbb1628b76e69346f19425791ee2b82e22d24adf509e806d9ae87da002d67e125902f9e0d84aaafb74be7ec7b7d03451ed17a6eb489800061a94658c6eecae2676470ec0525d0464b501989597e9d1551d6e4ced9bd0cbebeb8d1a8871970a3c9f051a132e67fbf8ce4ba736618f5f592ca7ecc6620546c5d38e42f03475635ffb7974143d0710f222b3a6d34b51838145cf3cbefbaacc29d6b8a7a0ce5a021e7ca119cc3e6ee5284b145ff40fe335c4c81a4ab4b8dc28500841cb88a1e346d65d805c11ae2afe0b8dec2ec1d2085d8a8a6e36ddf719de005ffc93bb36593470e3cdb52ddef0c59baf5efef7e730189d72c10be4063cc567220d2a0b4c859fd52282c2b153860408616cd2f7cf17d742b882ce11f429ac90ce7b799f8558db2f79bc6bc5033aa3385b710515076f4e984832a5c8050a4e5e702af6329f9bf2a0b491f9303e03fe5f8796f1a3b9a90dd716eeede3da33579de590b2c054263561f73b26db5e3e4caee38a584c38c691b3b305531b0717a31802eb6de0db83f94637d75453df2dfc8c214ac360a6d56b9f762ea6870aeceb8ae808a4b5f2119ac67dae300c12f2b9a7a1b701d6483307466d4f7e02321f416c5dfd2d49bb81aaea8d002124d7572c5c328c58ec6b83acc7cc0ffd92dab7675793efa3a6b205141c4e73a8fc060d254d2ae4428ee424b29c1040e6d2e4b78d94aa20c9ce71571c29eca9c2c1013e101b2dbf0b8cb819daa31d2191f9ff15d7aa69aedd2aad19877742380bf53c65ccd18055645ed0d0eb27a592dfec6f25d30082ef99721133e78d7d3dbbc9b37c22ba401051d2c63c9c5614ed24572249cdc8ac40dcd2791e851ee11c0dc535202dcadcdc0790fdc36012a027fdecf5d41b63f88b8091dfa9eb6db9f26fcc239693831874cd136750f3772e8bdb745b2655ad8cd96e80374f641c850f2e1b6807155d00db2820cd6845c8b3d67f98604682b4a32d41c4b45f9a843d3f2990f29c859a58ba37568670b06c52de12badf609d4f64916578f1c48e9539fac4dfb36eab6483fe08b590c797c59f80d3de1e26b22648be406422cf2571575b9515a6a70913da5d523c62d0cb5023c5f6db521fd26ced41c088594f4eb83b8352c46b05609dee6d1d03d3a12e0927ad023cad221fc401be4be2fc8c33965ea4270aed881825b992b95a1f737b67b5b0845e1ae00e55dd1faeea2050370ec97b85089196dd8f24e6d87474dc6a3d132d204c424addff1e0eb78aa8c45bdddcb03006d2109dd0a2419f4d47ef31508f6c364e6708ef8cd56b9485a9b2631c991fabb0c0443b31cb1153cb09826d72db67005c071e4070df10a0353e0c79a46498bb6d085d7543b04fb24274d883a8f667136a94ba0ae2bbb76bbcb7c059dc1104ed2c3370a5d0c8f1c46042e2ecd9b9362a1a96a269f46ae7c7975480844418d7795a32531e82a0c9600211cd42b96ddf91e464e8d4ef385deb2f624ed30e2349512092694e8dacb990291bd9f2486a8fb14706764303d7071a9f94b09863df97c1e7dacc1d35b50c762aae91e28b528d2c99effc9dde9354403ef9a18f7e4a990e64052e0bae445ffeb70cfe180fabe407a03814b3770e6fa0bbb3eeb37a886d4f8b536c82bdb06ae4848ce70dfac69132d51ef596c9785945d4ca8f96dcf7742fa4e518542084af7ca39d308949dbe2d7924818fc3757b102efcefd42919c627750be4585eae8b0e04568a19bf7a014d8860679ed811c66f520b93b76aa5b901c346c1fcc6f99799e7c26d3ecb5b10381044597ca9db2f88a833c68fd1af705bc4bc9cf177c0999904066a7df1931fe8100530ba24f19661d08210f4913e7d65ff572d10ba680602ba02423c0115b180f0ae5ceb95c64a3907737c5c71d8df23a120326900048ea4d66950270fa813368f88f68a805406222ee9ca94058784cfaf0c3c27d3b66fb603339726ef7f0ef538400946da99e8aad166599ebc18b70ed69d39ebe3d9c66679b6da8bff1f4d48853e396ef618481b4860b1856ee5ec79b4ae796ce5b103614ccfba9d3cb63222f011ef808f4a2f553114d245424891a7cd29d19be33ecfb5a4d82d6fabac15d687e519b3f6f5e1e9a6833733109e1243a42d0a22c657b5dfa4cda74a569a7b7154ab493955ff96de87668d2cc8fafb791301d1231c2dee897a8cb077736ac2b2fc70d064514b3bf750de50099556f327ffc5c10f8c5f9bacb338e66c5f4eca08d4b9b536cdb9a5c860b58fdc136119ee3383c09fabed7713395ce6ae8b773f25eef349e360efda2c64f1cb19ae4408922c5c946513e7825931499b052e56a42362aeda8956f72ef5dc8e43edf1ffe9b7260017b57a27a7ed2120b7cd623bf5ecf9838d172621f4949747bef95646b87492b446d6a1446aca3c48eeaf60d3d44851902074b6d1a38bbb5db75cb279859d6b6885ed85db4af1dc8582ce7719ba2043599022c4b0a011bcfdd163bb025f03ef536565fd00ddfc13befedf439914018e125cd809037e070d0e316432b91847648f33569b69448638ca4bd2dd6cd40a7b220c2913694f376aefeb09161670d54c174dbd9aa529ffb2e771e8d066e9eae41944d47c26c771c11e8e68c7c0ef6878ed444bbcacb26aa555a459acb27465d27056ce4b792ea9a94cdc646640b45209e06ca68272b51561d3b3468cff626968ceb70410cd1946724abb6f837ce1d49233ecfe39d1a61e69e10c7c1628468bb6534d84101cdde4e6914a6babd26c86ad54231a5bfd9c0ed9c0835e0e1faab51bd289ea21bc87fe737e88298180680cc3b1091c0c4c9b452bf9f6ca58ba84adaab3ef19fc2987ed253ac6f8c85059dff59aef2d37a88e950a6cd47e83e2d56f09d905f5969320924872131d1afc3bc3e16aadfb5be9d0be8be47a39d757a1f0d0a1158d58b77c3dffefd8441e3d1e69e1fa227cc3b849214c63345528f4e52f83cc81226b047f7be8408a8907f95368eaf035c42f7a8cc1010148a1c7d3c35a43cfe066e38c13eabf038e0f8fb28ca468416ec319072ddea03413e16c7f78ca6afb594df4d83ce85c2a7821f8280efc232e2dae88ced5debc701956512784a451f517484abc2d597cdb785d8ca62abdcb54e0385fd8eba04c2882f524227a1d5df0376e69594311017870b1abb371ae56a065c6dfeee80557faa98eea3007e6cf6fd6aad91de3e40ffe0327eb72ea4c606d4197794eb5aec5776b936c97e242a45544b0b798cff4ce30f7f2413427a5c8c5139001cadf9da1468a6b2c9d5a440f70bf1a12a352b50785ec8bfbd0bf7d5aee9d2f6ce25c0ebc8777e056cc0396435098864fe54b31171233268d3ae352032ec2fcf81082c71bde88c2b0b3c13dbce9ba90bfea41c56145f5d9cfd68c1f2a0ab9f240d2643048af682213b5f61f37100c0e153328f8091daa7724a05b13b33735711a71560dc537f047a7701da49950be3502da1096796c0cb73048b668d432353d2edfbcfa661de764c6c772c758d5ca6af5640011b1a0c85ac67688c4727127fc71a5c938c853169fbf8a27e8de92e60219a3b73a639953fe1474bd084d365e757bc3ac67f76f9b28b96f207d1818264d44eabca55ceece7de92a7d8cc3af646d1d40db8c46a8eeed1895e11901fc23082663608d8cd4c75e4b16a85c387e7ae4d1f0ac5f88ca7a38f431aa7422f9b37d3cdcf1b6659b7afbed31143df76a6cc429204cbe358bff9c239f45c02c74839b23cb34e49f47556f23f9784401c8e310efef8776c204059f0b65a42a179e91965c7a5077384e51932ca8abbba6f597c319d742b91e5d36459ea77840ff74af17d1803fe49c1129a0c6c8c661ecd28c9f5cb6de7486c567ed95ecb93bf5b7d6b516caab22c8e4f4558753b944517e895eafaceb5901f97da050a1f5ef0776bf14197b6aec8b88ab6fb51a7ce9b50a4bd7d92d02190db18fd1c8cc62f6790457184bbf044d4bb59e52474a68bb2c9d8c6c7df1385d1d7816a89075de1811e0ee409fc4ef054ef8d78ee1f8d978826bf7fec6ca51c2e5cfc1e9ee0723dd18e186d517740a1ef31900db20c1c5c92937d14e4a9bfbbaada1d551f7cd559051b559d331e97f03b2f4193eaf472a034f12de2902c3070a506e1200d25542cd74d73435a2e0d761d9c37f1e32fdb9cd3ee39561f22821b6cc3b12803722de8b0ea503bcf16d5fdfaaf15cd036712be31bc0c5371376a0a51384909b7fd4756477f6916788230c7d63d49aa302c53738d31067c5e0f2c0215b86b36d42e62f3aeb8cedfa048dff8af22ca57ad22aedafd24a33c381e8ff292df8e7befbd3dbbd285201b5fdbb13d3945112b47312b7cc739fb8a9785859233ee4eff744c0df4924e2a5f11fceed7616907a05407c0bfb5ba469e800a743ef785b478cae59990d9acd780ce90910961ef1d174d8e65cb6feb313d568d9a19644668f316b7a942cdd90b05f46eeda68fef596abb177e282d1ab2783e25d685cef8da07949c5eeeb36a6138ba5c18674a65c49929c5739577a01ae047c691207b8b7924ca85d014671ee65687448d8e8faf31bc2701e3dc750302ce8c375c633d07494dc138036c88857062b0d7e0c54c7959c4eedf975b919aa65e872c9c6546bcbe8ce903002840020d014c6eebc2cd5389bba7943fbad992485f5e422a237748c9de4efbc69ccda303a6b8b21711fee974043cb7561834071462534a4f11ce250e669ec970544ce0a5b578004b03314f0dc588477698ad02bead4625e3125096fd3694d0cf7de334b87db93d734adf6b05149996c8ee04b0d433a50adf419387f609fb5130705dc6b21a61fe54afc01a3ac296646f2222a43e533212f9687d2c54fb5c501fa0ede3be8103b601edec7c8f5ca0b214ff48cf68e238f02f44235621f7544df926df8c74151b9442908f55c7b7fc05c422c31c975d5e4259bce712b9d4246fc94981daa5ba8adf1d641688ccd04cf8f7b539204f1368be653ddcf31b851f655f385920348e7f1180023b284933d240a0eb4aa4eccb17fed8a67f2c3788d786df9a883867fc0d58896c220aabc4bdc4315551d0e4a3fe6521d2a0814a3f6df8ff8341256ee61fa8f73db427629291b5eea70fc1a621aff0e3a67a3974b8848d99b589763f9cf47b5e7da303e06c30e4411bfc15a852af4c8d6a6ced30f2b7d33c9b3f6b8cfd7c1e5a6c7321bc5fe7ea9876b75323af20c6ef4303c8025193c8dd526d2fb3e65c8a373c1018107188741ed16be06b704848f47a6822445964c2d8a836205bf042acabf5cb1177ef732efeafa0a23e2c40738a9e6e473bd878aaf8fd063893002524f7ff44ab1dd691a84bd0890308fd2a9a4457f610622177c98800be6e051586d580b17fcb9830e26f6a3d1a9176d9725036aafa8489c6c29124df5d2e72bd12489bc72b40a049c7d171e15fc3918ba7140885a25e432c887a9358089ce22c646e822fbdc99519f5cd03598c87764a590aa13ad012e50718fdf01bbe73cd9cce6756e67b4fd26566eb5e43333c9171a7add1307d84d9d8271634f4cca10ea703f1ba080c05ac567f396b4f374bd3166b648ca1cbb2aa083b8e6d1128a0ff08f12ab99ab8fc1cfa24a29ff7df4a58b22ea427527575cef90c72bf541c8f12b1f02af0ec4d1223b41bfacafd12ae5908a15d8cd1ad09793b8f1f0c000b05ffa7abf837cbd170bf78b203ee67c2d947902b799784ac1672e3406e6f674b4e80bd90fb40220078c2103e1a97d7f9bac86123dc83427619c59f31b254cd048817f91d635ba89352265d8788efcebeae67c4bb33a08430d8c86f9500690689d13274d90d02dd1c8d9d9ab04361bea8bd2c0ab5fcea00f89964222129abbe8922f0d7fbf8bfe78310dec0c04220933c8f807109826237217e4ea3e21e2449231e50ac70e130b3b2383feceb28381e4033cfd08d2380ba7b9c9f5930cd0454e9bde61c1f964f17fed052f94cddf4696ce83172a798e75723544aee1f412cc247f1f81c4e2f86dd0b3e2390485fb29a6790a7ace8fbd88be0243ee13e0ac8f987e16749f81dae409dd7cb401283103c857b623de36311066ba01c0a9a499386f093413bc4e4798f35484388491c130dd7e20c518a00899a779448ace063cc133d464ac1b86f0cf46a101a8010c7129dabb1f28a70a244439ea5d619205480849dd53938ec6f83a23c21d72f051edc0ba6d8d987fd8fe44b9c218fd143e10be46befecb43b21618a2533ff96a47149963d29350b603094952bb2c0841efb20db5d4d46fc94624d992572cd762dbc118015536274a9e34b18d8140dae1172b73d97903fa113ae6bf346af1b1d18a263136aac38d1e5854bbe3f00899eb56359494f11c72c9a5a4a5437bea6e7be529a384a9a1dc51bc2a8ae5edd355e6d197bbdc44f4669166db84b01ae6ef404c133a0140a0f314c109022c56425af9aa553b8d3e541cb679ce9b04106faee5344e11689883b9bf7cb105188a77de3fd329defb401107ab9653ca304c0d15f7f7e8a0552fe5198e4140db12a6cb21c92013bfe727828be3b4c697139eb5e486c1cf176ad3290bc660621b98016e76d6d816f9ff9e2de6cfae135261e2e2db82c5e432a1bf430404a1469872f3a765e03b7faafc95a5644fbeee5d54c0d30ba1003cbfc38a19ec7032f3b67893cd609f832e042b1d60029b392df56fc1a9ddfb282a23d44b53e653d57b1c648d8a8981dfbb6b03923cbf9684d7c2eb2ee571cd31ffd16e0a5afb55767f26046b68290369535d8c57ff78903696622cb740da76ee0459a7d49ab9a301f2181c4389b97965bec5d9c57ef571ec6faa9a7aaf27285938e4b38e47570873fe640d6b8519241b2174b3387eeb4c4def9246667a0f5c753e3900c1db37ed01377f5447553bd354e929d30cb1cd4947f0cf326a578b13cae8f460c33bf6f45730105de42321c442a8d698f864ecb552000269d0b0182dd67e232b7f4d04d2bc835bf851cb0acc4fa95ba735a072028d43440445f5f0f1057f9fdda7a0be88e4ae80044d87873daa73bfa248625a09c97fbe57bc9f3695fd445a13f12cecf7947d4fb31f321bdce7d09a01830051567aca61e34c96486721fd75e90a44c3669c9752353ac286e5c453a17efc7d76e0290f77a9a2f66537e35322077ca9026f347e8d20e7eef4afc71018223dd4b1220476ce6fa3b69a44c37a719ccd7db3c7375b875862bcf90806b4ccb65456f210b139607a031bce60f669d2e929d14a952d8fe3eb97e3c81c4953096cb017a41b77c469a9cc13d7860a58ea6e8267b2613cb4d6a8206e4bfec2360b940983c5e813c21b98cd87500d126a13c956d70640671fff40a46c0d52f8226a1c58b81f4753d84d974668dd9a307af83df2a05a7a0f30ae028380c8df1b4a8c82fe43e1a3753520457a04365aa65bb07ea95660996ef5a56b78ea5aab1275703083866b68d0709513ae1352d7befa51bf3d85c8b12570d6f3dd763f6af31d0485d087f8651c2c8e167c65f5400881ada26ad02f6a5099434e046c505bcd6ef489c3b9006300b60a92656782db12e3405db5b37cf81e04868a8f37468f7aabb527a93052c81d981e5a696e23d672e0084cffd0d6868a7433e2f39d4a7faecc2ff108c2dbaa5582f3642cb3f60382fc0e6dd44b5b075b0ff8220029a1a64b9ee0ad081369f9a277202692b489883834955700c49f3efe0deeefddcaec9be24d7407d8ef812242cb6677a15f340087488dbf5b044e358c17f66d868e93fe4c650d3d7014b1578d2e26d2138075a6157130fd4b99c84f4f7ac9978495dbee80b253879153bff96f7322a94db8999470d11db5b60ce7814cbe73337e939ce4063c0cb961d34d13387f6be4071821c12ac6162c5ce615ae8b06cf0a31d00b479427a0ff921eed94b5537cddfb4f94ce2a62daa44f6aa4fe4d6000466d4231a8be58cf55904ca78d3e57cbc63c7bfd1f4d6098103751a05e8a885743c46fd4467637f6d677970af365f0bde4aeec02dce14fe12fcc768e8ac27fb72520fe276b60aee2f11156b2089f8a8e56105d0817801f2da69f55b2cef9560949224da5caa9907c6b197502592a017f4090b90d8714510bff3fc734b8a712c08c822d8f84642a165901856ca13e752586540c319cff82f69940dc4a91a310125d996db13187a48684700c3de0b64767a275db430324ca30edde03264b0aae3c07469c3426c410a752e519b1d8f89d1f0f41f828261696c76a08fbd584f30450aece86256f82786a070483f80161ef1630fd4e6fcb861b0e3a9d25c55dcbfef19aeb1e279176090993da5a593a9d5368113427aa63b54fc7038adbbf5c64866f084a19149a985218d4f108c8b1e289b188e3a41fd431784c33ebc01a146be7740078c6e149d07132ed1cdad1eefe9e128b0003873f3b8628c5b921308f8a733d8b416bbce7142219749ec482ad1e6a01222bac37592f83ce8281cfbff1967cab23986237b1244a8226559d0af13d62e89344dc0dadf102d21ec7c106aa8d586dd9e0979fddb72b445f82f039d5b499b86acdce795db769d966e40145f789404570c39872597a549ba774acfdbfca5c5a3163c0cbd1df12be0ef8c7ffbd089f4ca30042ef3422a80f07de89058a87550e1e0dea40896e7bd5a5d7ad44526e19c06f6ae137092df538c6dc1ea36f0c7516f5bddf18265ad4978063e8b4e82d057e50a537f4e425f887844b9453f45ad0ed07c2a0169c771edc3350f17f64e1d8cddf3a31c1163713c16f413458ddae2b037209596420e56454c16fea6cbcd49020a8f4fde8fae4493169f1a3cce779b2e05169580014b4580e11df84d44f5e4a1fbf2a207a2583dfe032e6e1b29fee7b95ebb4a0e8e02fd864c791401d1356c4eadcfe60a2fa62c55efb91730639dc1f852bf00f88602876955469a76740b342d73bd8c5c1dfb19253cdcc2fe5c46ac6ad042716577adbc1f8aade4b6b988ea726046a0e819b84511af6abe20f09169585552b1e4fb59b2b5192fd8c2c83d1b5ab3ab985b012bbb21be42b316824e88ad9cd30f41cc988051187ebe6b2ea04ac4238dcdc08c657f97f432ef78615f87e5b3470c6dfa715b977120f627c47fd53ad55d72a11c5ade2333e1b2167e5bea70702973a2d9aa2f4270485cfaf5ec71aeca0b1ca35113bfe88286c08afb3ae0500accacdf168536d10f93db8249420cb0441630e2dc931841cb0f5c4e24e730438c7104a3ec69e8a50e223222fb46b207ce161fd4afeda8ac23104b8c5d49c13c5b27319a1ae33c173eb35546f6814ab560e89a1deba2d80661e2ff2cca19ddcdb26b0b4fac2fb4622fc0a84565f08d6fcf560ea0b246973247512097486f18762cbfe888bc1954f85a244fd860ef63465e8ab1e6b68d03594e25560fbed57e7aac8309daddf9630fbe21ddb28a57ebe3d9e0bc9ce59c285eedd356773028939ec2b492be9d9118584715350635145fb4c53b8d9c6365d99e671203bfa2dd911ea1093a367ca0376a855ff9d4af084a4d82f7d5b23a9b1c923604515e4dbb250c6bd05d53e67c14f18374adfe44bf1ea570a2aa191b233728596e3266c32985fc27e5dac59baa9ef98780bb2810d2f4826904448c71ef740f6fb31a209681bf4c53657d246c0107d59508fa425d3e3f7aa8d9ad8971dfeab05fd80ec5f5113327468106385679878163daf50f00a667ca504607b1709003903f2ed827b7e79802214d268c39e80283632941d9296bb5b866e2222a669db867e1796231567fa6eb7d3346e07d1e9aafc8fa86d1fae328f1e9bef3baf270b253b41a8a7f493ba093023ae60ffa56c924ec9e8e8c9224477aeaa9b8ad366b38430bee8bbe167aa36e82dd862d6eff00adb4cbfa3d0b4b44fb57af918e619308deabad39fc3f75bd303fa8a8d5e3b56c2c18a7c93dc84c2a1ce1602945b2da5d40b54b23636499b4ea4dc326046963c4b400365200b913ef6cbdb10f3e67bdcb6efbf48d656dbedc126000c57a558250b72fc1cec0407f5153c4a4f9b9f545df0dc4c39f50ee136cd90c6363126bc1712fb2f92cc8c7454518a604a814b4e1dc317238d7f9a2a97d7ea18d201cbeb40fa671b176c588a3349fbce3e53ceb785d0e18a9741ab57481f87176e56508f7e7cf917f5851e03d2fbdb78c3696a7e4aaea78bc95def216d0db85043cf4ac55bb8f9ea146b9a9cadc4789f7370cdf4a8c1d0f3587f4bd79cad21a04439092d9cf7c5775e462a98daf7fbd47c772e010a9eae8718bda124ca831ccb87cfe0f6febd6bb531ca47bfc7a77c0ccd2438435d518bfa9562d8d5dec67ec7f6d7cb6092afbe996bb6da856c4f451fff401de50507eae7bb613e1d2c1898217b332bf7180659ebaae85f8aead915dcbeb421dddd42ca4ac671c135b215798c8b07dee1279901852916ce8f9b54c5237c39b4b5f2a2e7a70689f03a1463d302bc6923b7e4708b5a7569fe87b32674c3ae70bd18b6879d1b0dfbf219dc5e3f7d226befef1fd7cd4ed087ac74b37a90da5f3a375136dc98b350d90229e95ae0d652724b21e4ff53b8a20fb9ce58e114aa41874aada5365bceaa7b0728c7eba0d6c478cee952445199481b938978d6846dc05523eaa246a1cee60c19b73930cd26ee62e47ff76d8083cb464492b9ae915ac90f08f14e81bcfc7ed4e3c5ea884c844294116b64e4aa5f2dff0ef4927adf7033a7b6122072d041d04001d39a235d001267e2aa290e20db1ce4e52c2373344847af8b3dcfd527eb4b67fb0650456839a94de0fcf10d26921d11858994c3b4c8182c4239e9650286820e5b36ed85f461ea923c075eb324dac475d019714395e7f8b15b458739d931da0e96748a4f8b36d44159cb72c88c50ed1b4861789301fca9ef0ba94a7d7f814f82b49af681993cf12ac86eb9726131736a5220141ce4500b5d0e0b712854a473bbe49794c80ff03522afa3350e01d78d9c35bda54a3b852244bdce02671afc3a00f33279114330cb8499194a3d07e80481a0921d7c70f82d3b101cf101af548e55cd74a389463bd1a233fabaca55c7eed93562b915f0c84c7561ae3e374c622e297bafa496ff5b47c6a0c1d6b7c75c176bc851b723006d67be31e8d8bfea6f1c0bd0e8e46dc0a9b877db3bfa6437b8466a125f5df53358295f9ac339a894dc3a535f0b5774cc4ebf4546817fb04dc58d121918c6afa4c7861a27a0684fb51c8e032dbcfed82b0529667c5824b9f9158fc9bc346f534149bf55bcd021b3a9f1359cf60595f6e41799b724cd93f62a23145d3df9add39f32ef6913b143577866df1dc192abe4629ac0f55878e034dbc6902372690fa5bec19976d0001a9a16ee26874b8c92700bbbaec20d42152a2b66eec7f54452af311a36f3d8aa0e52b5a15bdd85238cea4772f28bc21834e52764237603466bdf7ba0f100d3c6c9468594d7bdd4f17f045f62ed75f07167296c65223dc05b794b28c7af05dbc66b17e28d64bf4fbfbd0171056f002131533ce8ed1ad3833d472b60c0cb6db1e4e769277ff68c6fd81cc217e2f2e85a979de15138cfca7416104e1fe0ca0b27cf11bc40505560b73aadb660e039bdecc2acd63ecc1ebcee3247635aef56538b419abee1a70ece44fcbe36d4807751283e06e11830bddfb0a3c3900467c2db468af1d0e7e9f658ee41108ea199903e778c0982adf6a5921908964fddba66299d26f8e9f2dcd979327c9e0a4ca1ce01a5e2ad7ce260a7b533373d3c6dc03e178ce69f92ad769d7e05ba7dbebb67a09c8d20119e292614064751fa68b9636d11ebc20a6f9f01736dc75528fd61e54e4155ea12d5c366bf6065609d983cd681ed5af6414715017f028b07c36696a12299205db6bb89ca271428f8353de04b35426a10f760599b5622c4db2348160915256c8ffc2ce0a246084e5a8532da0763548ddaec46a0e2ac9493189205a5aa2144f1cda9565d309f289037348928364c82789a59bd0235f622f725fa85da5ffa7f683961e8479fa126e41bb178f4e57a1f5a7e24e86359d42dee101b3e17db5b65dc9e0853038a6e34639d5ce65c59934fcade83a8066875c615f73088037208af430ff5d000ca4e63d1d38a9a57ed8a8817743690a91908ec728e0db05fd11a278a5ef67161feb202c08f48ad6186dfdcc3998c284861b64690c492485208f37ac84b8d1f17b40a8f2fe98c17e090abdb88d3927841736403ca6772b229818f72a636e1fbfe625a108bb36f8dedcd72e12161a423e8205902ae79091c11ce04824c7401bbfbfd70badcd825ae69fc3c88f21e7fc8d285e807858380dbc92e8dd1e96ce84efb7c3c73f85eaf85d61327dfa6980e67e5e7743db32701bd76f231bddf97c80267120d321e5983c6797618835410ea0b45e83c92c56384207bbfaaebe85169948c29d09977a89152e7d9516a1908758d067992f80c94933a5f01a75dfd48eac4a2fbe5150353f2ae5b260090c6c930f1d23d25e8b22f8a4ef186418d8f42b0c809de15118c28cb03e1339e07abfdc7f56b95f7d093686d84a8354ed7d49815afed2f622e1027b810c00823731c895c1ac58653eaf4bd9a1a98a958672e2466401f243a7b59944c2e2d8797618fac23e5169e6fc18bf4cf9b50e59bfefdb77cf364005667ea903aaaf35d5d94c7d8fa697ce7fa42ef322cc018ec66f2570dcbe69d4c745a2c647d01b687775f21ac27fea11916ae7c82c9a4cb9de4207ae5751eff71cd44268b335997dd62257e469df993b7548029ab49379580892d64fc6ea8a33908a1869caddaecee9e2fc5ae03e6f05084b689c0fca97d85e82c166a3164e37b0f6d81694325e48b352bd0dd0fc3893f178b7433e51865243d0e6f809c1ea4e8e7584ea0eabe96885f2c6fa069f69739485c2ca1f19cd7d9064ad4396397834b02a29dcb0d7b70832fb6c9442a7a54278239c1959cf53b2437ee44395b3dc9890c3eddecd6a90ddcb12db6500f876b349bf078fa0e4aec3688724209487ad1fa43895a31373e772a238b62d7cf1cf98f5f3862ab37c4a48b466700b2de480dc11c82b104a8cc2d384170c8c2c653c8dc311636426cdc8c2ad0c6a682757e21ae0d8d01e09cd6d03486d1c6018a48682d9ca14ab1068c21b755be012135c2f58cc159443d72fb2c787f618516dbd816fbb8ef072324126c01ae9814a717886a6188c58b89bbf6c28a8631b8924dfa217985377617613563851b7422f86e2020087a8f16be35ae61dbb690b5527330bd659cccddf328d96cce45ee67e6b54208cc87b3f2d4c7fbb085e2f02005fbb7eb27d67ac4992ac790c0541a388a39a167229299bca767ab6a1b7d565969acb409e0f8ec06fd3adf9aedfc3b735f743e3009996efd48e120231eaa4c8fdb5dd55ae37b5fea119041a4b44aeb7d58d928005c81f6780287281a91c57d6a8843d6bd9633ec7d98d6d9d3652ee42bc8700579bcfa6c4c79485b406b6a85e28e566055135b937ebe4bdb3031066d8ab0aae0c843c3022be5a3d24a09c0c642500638a0c4906ce822dc5d4618588b1ef0d9d17db8ec0844d10525b11e4c31ab3b908bd882bb71834bb9b7bf3594f5e33cf096385964c75cd4a7c65d9dfca900813e087f0746c2537f4f7a693a181a2b2f3e3e992a75e31eb9b959ee3d6c411e2e1e38fa2c0c046bb1f12ca14e6ddd4024fd9cd3354c3dd739a5fdca129ef1c0edefd0ada1857d5b3b5ded6948bd5a2b6bac0b6551155819fe871de7cac4b6e39035d5ade953234341d30976ec2a582d686007de29ba4c70dcdd7396c361c7f79b000919e2fd89380b4a8e31563d5d5332155265145588b5afc8f20b104ac31af34a4600423d20eedb5a24247c63427d09fae480929afe85e265de231a589a51298c707525d916cd80f6b44076f9049fb881d0024ca1b1be6b1989048f25a9e1d6fd441c6a7d2d9bbabab33d52205983afe04e599b43450400c028588f53bad36b6f39d94219fc62b883b455a43ce4fdc201214adf867ca53d632a9bc80ac40b615fe663595c79e582d7d9968c887fb14aac23f09f9e4abf4170365c7316eaaec8c441a7712744ae1c2d8c105262894154c009a8fe678881f01be9b18aeb1e7bec83095f4e70ea0d9aa87e807f738f444514274771cf52334b199fff91d332b168d89e708f98ac18296184701a488b6ac70385eb099e268d9e165f43f7caa03ba38e0302250e0172e5ae140dac4e67faa3fa38c966374848d7582d1ea25ac0b02ded25d23ac7715e508776c3c45281a27351620d3df7e7cb4f56d5ee09e9059eefea14841615e334d43d8bbdba1aec86e5eab5ad79b3e39597a35ed0d50001b1a28f6cdbabe78e7c7b59ea57190ed3ad92fde115fa878a9cf45607092ae3c5da7b9507103b56df944829db0a284634daa27e6148b0ea8e79d4f2caf321182d79f8c5a1c9d1df2a64d71fd7a6e65c092b4c472151a0396fa4d9ed746b1185b99f7c8d5f1709a03714865d01902885ef62829a3193545a87a5598e1de12c0fa88e159d4ec39fbbc3a1b28ac744b75189958516d00ff512397c9ee03cbd3718b6bddb0413828c003c97f2350b4ff0b9587d1cacf048e95974f172e6fbcb677d75da2916cded3573d29d960c95b59bd8872c4e527f5ee157fe2ab828f189f57a31913780e41d39136883db98392e0eaa3072a600b26bf0663b51e1b03b482309078aa1d9c91796520651dc8b10aab9eb6add4c5c5dc1d20e0ff8f7258a6c0a14485d29b2629ac67f8fda9150832cc704f301a72258c55d65e5b8c5a72cb7c4f65749f681bb5e982e6cd8ce87bd25421b31e4b3dc395e5f29af40a3cf1a29eff521634ace5567cd4555c35912e295e2dca850dcdf869c60c88a1b58a75034c7b607f9f872d230c5e0e7fe9854335a56f1e83056299724b20a0441853a4e9d5b81b5bedad01b9988a4a604b22df2f5c17f4ce1dc691ed68be7f5692ce45808efb2243dd9038896d748c2f34c6c3a4c87d56e33fa681f006be889c253054b582aab93a3608ddddf458ed566d5ca2854a82b27c8a1b1276fe456c73d0b56c3b3dbe6705d33c3332205f60e335c9a35f85f1b5d8a6d8562f529f994bffda77326b48608caeac1e6aaa4bb7961bf921a1989d6a804e77a95ebf7ae78fa8870102f8245330f469b49519656b2f9e2f5cdf39a68fc07ba58b7ce6a22de87c06bdaac46ea49cd6c2003110bd8d78b58877f2031e95d935f60e3282bbaa47a12f35d690887e7193f96602c923cab95ba10ad35793b593d5de5351228b345e9f2c7bd39af6ff607e2dc6c4df6a453914855756abfecea80cab6fc80916dd504c96443376e2056f22bf1c8816f1b8060c714b18d59c6f4585dd384c01fd793d7160cbb311c15ebdcceec276030908bf72a78d4c12c5097fbe3bc7c1c9b7352b1d8cb40b70bf23b6ece9b52f9cb940d249693a1515f91a0f964750fc172b52b48173e964e5466b98881b512f153f3a39f2b31e6cf891d1187c822c0c97eaa4af291a69c19c9f6c6155ef2d9a5f8240f0e992cd20f63557869524143fb8d8a8d01d8712c7d1275aab382835034a73e130329995e8b10fe57c597f06c6d85498b507b0f918bc4aee571a06d5706fe114dbae9764dd78b95734beeb08813266923937beeca0de8165896c2195b94528775c092515d72b05c64d32e2eb16d52d7117af214d3ae23feb0b8c53403ba2086788de1d2ee15f7cc6488aa4463c9dc8309634007829beb4842ce347dceda115a316a64c6b8a1a79e6b1e2aef666894efae9041df5434ce181f5c2e04c85a13ef75f346b6efcad7cd86340ea76449faf47f0c53e1aa68c9115d7340fb0945c9ab0e163af8eef204039d1989718ba7224063cd76603cabb1a674d609630d0db3c496434c627368f10bf09b53004304e518c88cefd6fe067aa29f9a16a3042a25c5eb8849a07c8ac010a75631b88974958b849d4fcb7cb9d1580c1ef89d3263eb2c2d9c7123dc581aaf0bc7b0c21efce3a70a0926438d0c96c3a8c91436cae030cfee473b1e5b6b4618747f966330262e07e3da47a30796a00f535388a70fc5a669fa65a2e15f58f932d22b482dab7388d27db6f691f8a3e0d508f516205146b7058c88f628c7df30cc018b12aec1dda66caddfd89378e1f46db641318ba5dbaeb2de3786211226b7fe36353e45a2c0bde89b3a3dbf971e791cf3af14c2c9db7796e7ed3fa17d77dc89fed486d713c6fe53d17f539b85d6b5c39735af9b63fa8004cc94fd9667b9ffb3a6b412a11161683840d9a2da49701434322e9d54b3bf44ab74d2b9ff006804cab47725fc238c7fe80baf21644500cc43898efce1954da8211422b4b256ff246b15b912996a591227068fab391761eaaaf0e7535cdf3dfa2e1f8f274a2574387befdf72e8e8b4d3f9338193a6c83bcb13c0f9b738b4d6b418a110e5d356a654ae174b277e08f222ce2d4ddd6e5212d0e6f4cb6c559fe0b38192a723784f27aef5da0ae498f22882694bbc04d923d4fdb4e91a18ae906869d94aaf609a011469d3e8197a1146c3adca661cbb69e52d7c082feb7a9ddbe8998ceed1af3548ec2dfbb3f77dbce25857852d12f09dcb19dcc0428177118cc968386e44fbc5d244da7e621707109d6f7d2d305c77707975bbc2b403c84c5faf71070dba6a9adc0e8fd7cf3aa1615dc9121785e5db0fac69241d9e007f138725a6c500e5663a613aea896fc7bf6c50947e43e38eb8078208bb5d83bef2722c75e93feaec08a7d1872b3fc78c16cf92ff38569a5b95e184bfbec5c7c6f32d4d5ba9452845896487f3a4f6a52d91f75f677083b24f27ae5d9e18fe65cd760d1d2f6844d856976ecc0dadf70ef4f157f63d9feb546bf40ff5f95444fcd11e0fb0fa05fcdee531e7b88e1f40367d23c4384c34a15ab2ae2fa0b24f11985792a7a7c908f75393c986985b09f22c127eb9981697c09d5a868759c4964326f10f8e672e6d0d57bad68971ceac9b4e61c1add3c85c47faf4dfa28a175b4995691a614f05700e2ffba9a6ecd3eac84f4af18825d04f775d521ef929d89cbe0565147450b958aa9f426c3cf26f1f7a03e65336ea06cf34174a0d5ba53893702e88d11c45fd6067146d60382c8e1d5d1804abb16d0a36fef37429236a6c5d7e5521449329aeeb42d050e226eaaf1c96075c43e142a0d2f1670ef3b56a2c94f61103482073ff20011f9d1fb86988a593175868681f8a4f00ec96e771b5b4cbb328c25f6fb9e51d943f704280ded67e38d9b1d0f56566e47bae32b227da1c5d111e3fbedd5637b56d2d5867b603b06a48b2c7f2f44b4ff542a516592c1507f19bbee0410e802c916b22e99f86968a469fcdf6659735104eeba320a40cd8815b95d9ad894625706061bd7d6a263e30da2edf71861846a9c5ed6ddd258b59c0aa881113a0c3b7450dd9609fc1aef3ea1af0b087ad3956d7469999a050356520dbce63f5b6a754a3101eaf8bf308084e251b4a1bbd66ea0622d1ac65835567b0657582fc99c62a44a3b38060cca6934c3305de6f96623a660888df0c1a699915f39d5954c66046e09bcc34e5ec349b3e3a25493bc9c174712300a20609e1bb128858a0ac99edb097884bfffbd6dbb6e0c74e527b584e64c035ddf7764d9efe67e6485a1a7e1b1d56783c1de53a085368fab09d51b63e70860316ebd2be8f53c9509074eb7fb1a4f9a66afa0049e63be3cbc739bbee35251d8c864d3f6765dce38732e8746bb95a24d439483cd4b45e8129e5953ba79c2b0070f972fafe630d304dd2e4284911fdcbc4a908379a2e10a15eed80f0e009c81a50ecaafc3abd78f4a0e2b492ed402cdcbe5271499fa5d70e15786c58bdc39616caf9db8745bb96a74239fbc942da22a8ece7166332739e39364d184df287d6203255780ea080d31f29d98c37d5d9b50ddffe7c0fbab585c7ab60aefc06e764ea5e4d26c78b6cfd9cc763c192be45f0af66c5eb123f9ec177189209d0c4db82aef41e309fbaa27d628e0ef33d5582a0a12eea36a7b316296b59f08feb2501079c7ac4f492fe7e4fd8f5eb8798f7ad2ad60ee1cda90fb4a6ea03cd06fe28ee79ed3d0141a43e08f6922cdc3e6399890d210e839d92e8da3121c5391de3bd76916d5ea380e7347c3a373385efb917cdd05007a699681aa93148a47fa4a419eadae1d8336b3f49ad81c9f5564ef3f255a6ada131cd0277d99a6a53d76d58c6a2eb490691263d5d4bff3b8df1952e8d543148252513f4c5063f64653e2adce336e04215305ee83096b052141c7206f90bffdc1a4778bd4ebe01e416787c864586deb1702c1fc6a954a28caf2c7c9e83206b5b1d6db1ec273e9a28fde402840571a1d2e011cb15aaf319de27199d6a3cb2b78586ec07ba374d7fea28c5495c840fc5230f5294f935e0cf1f34d6c850924c3bea3918bd5806a9c1c1aaa42621eaf0939edfe04e487efd605a6ca428146f50ace4a5c8f3c8b8840a5789074ea5adf2af27e842a83bcf0dc8cc4455b5a5e5451c65ff8d62b0beecfae6f665bce3f7e023f4cd8de2ac06456c2e8d32df536de5db4a5c1d40fcdf81d120034571b9ba13b6f8d52caaaeeec2d87e5771905ec14a1404ea8788000bd3b326d0d358cd22d879ee3f4208c8cb14623508b5d4eecdff897fc3e5472590955aafbb4ad1bb4fe62f83e629e83ab23bb86eebb06275c220da975c506779c3d699021b249cd740a40010c2ae5826020b1a80a431b37d8542d0855983098f0700df0f7065f0801ff4e830ad72360b47a399d83200fb0723bebdef2f9e50485e56c3dac6356925c0806ef605b119331da24144e9fd6ef87c46c3978e8062606626336c958e2a34241189054ea4c3796fe85f5e87635468f0be9a30d94972c8c51149734216eac6c40c1e2c5083f1589086b7ee19bff71a89e8746d1a7e24c2c58a04f74d527e6321374a6d30b926d2bdff83312b4d14d4e27a176e68f48d491b1188bc48a4955ccc0061e21fd31d68fd14fed08586294fc7b3e8704d6e380ea5ccf41b1aab3aa5477862a09c7e6a672998810eaf5ff1505fa08120ff547584f3df46d94afb1d4ce5c00d8396df4d06a9e9dbcc17cf259db4b6834e70713c9c87a7196c743b77b901a91a8fd730764bcd2802ce38b74597033ce9fd92df5de5f86547ad181242744c24f87434800323e8549062a9a00f60896c99523f3e06cabeecb321a58fc96ad5a6ebb474e734738031bdf1c24c0c19a0609c3d75930ca4d0d4596126dca9c7cda5792aa5a9e8c4476db73fbe52b1c20fdbd5d4e0edf5da026986de031ce10ca3d2015d21f63bbfe32fbe0b0c982f65cbd2b349f86812048f48232f94432b7fa641d64dfa9166d9e95ef7894b03ae5f34cff10f91c8af30813d6e8dbbbd1d7e5708e8e2acf24360de9e810f68a20ffcc668609e145aa9d1d3a88004070f7ea0afa84e81e05f471887ccdf25a0dc189f531fc17af0de84adcdc8245aa27bd22929d0bd8e82034266f32d87f9f0c375986f1e1324e717e78c188bb2ece721e87a5ff00d1ee6eaffbf3ae571abe0488e9877dd402a8f582f09e22de5bdf161190f92340a7f9b04ee51633ed590eb55681db42fcec5a4c2a164c154d5f3c2ab68668c2beec433ccc55afc19a38b9d31eb6998112ad2f61b881ca8d5aceeefa7fa979c82ba10a7c40431fda32446922008d78da6de8d0e9f85c2988bd6446ad806552ce742da13bd7b242f070f541b86ee060124b41a0a6e1a97e6df24489b67f24983dafd238688feb6cf0245f1ddcf7112dff262a593295e6c85df81a9c041b9cb06998b7c6f90dcfa5c5bd5546050d99f423349889a42f5cd425a3fba30dd275da870972ec8eb4d178ffdd68512b7ebc2d974a5a7471aa47551598cab3914684a265e84113a0204eeb78949c1be776554fb42adc52c024be1b6be58f757168a573150028922d136a2502672ce87e72748847d6c187dfdd010ff71aaa76aa101400df1bc9337e9c768918aca77225af6a1823060ba9f776fd9b0aef7e8c661636095aacefbb31c599f53614d53fd298106e42eb10bfef41a34711a121ba1d2a08ba3bdffb1f03a25075dfc009b411749036ed0c55250cfc09fa1928d399ec5ad8cb8c2e0771d7f5db0809d5d636ea349f585411749b56ec4cba08bcf4ddce4ea3e8a1c7e4dab558ef8c941174e3d2ecfe48e60d478efeda4d5b5be0cbab87942906a3d1f74f19e2a3ae822f2c1d433a9c24117c13a272dfd08f4fe0d728bdf50228a69c24117f6ac86413736c166e61072885a0cb23fdddd14da1b631de1fcd106c55dd52bcc9d6b9358cc3d1780df6592f0f7a729f106f6125c06048abfa68656201c16a503edb8681907603caee432b1476a75271ce3a4b2f3328df2fc9916106597e76c1972c3bc1608860b02001908182c4449a0bfb730cfeaec6c2778b37791cf56ec25881021666a5849c8de7b6f29a54c292519610816081f082b8970d5436da3d1e847231f02358ddea78e821e0a8542056d41a87d911ca1d2105500e0b8018542a15028f9038c89f0695fa8ce3ac50835dda0ea110f26c3768afc231e8f9865fb248a23be701b54851c37c962398b277ce22318faabb235a952230e3cfaa350f5c18bdad9dabd218e82ae8e016aff067f351b546dee0819d0c74d2ac3261cd3bd2a4478fc20a476ab2212e68e1df1e136db652e8069223703032a049fb8c7cc1276ec28f9733b667ac00f40eedb0506b4fb1fec51a1f24bd6bf397fa7b422d6ceba4c379665bab924e69314a1056334ddbc8ca69b9ffe726bd34de462cd5026a0a326d56dd020e4fce87d1d529ef4a8499de1a254fa3f9d464d6af7464d6a7331c51072765421f8c4af630aedd7218576b3361774df07d314193b13030ab32be33ae9d12f2398771c08e4bcbdbd1dc79331c27f6386847a374a199d8901dd8f1f5065d90968b74c2c13160fc74c194b95be9a3d966d5df659663d100b32866d1db6bfd7661521b72217e0d3a6fc04a5d28dff5ffdd7c5e4e23a23a46abd0e4aa5ed6c9e3abae4ba12c7f81a40c9d360bfff9860bf0fca766217f66f9b6d8942699c31c6455999aa2cfb411a7d0d960d2b52479408466455b2588556a9f29e54f931a711df3246d8a5ff47f7b7937652e539a9f24362115f5a40b3237892a8db532d1da02e5064070b81507af0a9a5c2ed450c4a29a56e7df694637cfc88f01772261ceea5053d92403bfa2d7c12c2a7212f62d07d38852b466db5687d6c5186bdc6755e3516160da33f7a16ae6ba92cbb2cefa3578e9ee57db00f9e720aba2bb73bed3111cb8f44ffb41af1ad773e8d364a2a3d8a4f3b3158a506644af9207c9002e9e4cb3fc235476e1968a9391bff69f281b46f9ab7f08965e70cfc4545bb75326394fdee45a176bdb3f4f1f0ccfaf7f06367c57fd1b241d5fc502d6883aa3f5409371b54f54ddafc5021f74375220fc60bac37cffc239456b873515a968546d75295284195bf6d84d1683156b53b9b561296257d709244cf2785b3a8dd504a7f19236721a5da10621b06e253bf8c16e8fe0ad5e6950b64a87b36125151261259cfc2b2cd2bdc69d6fbd726a56719cbbfc7c2e28333d1fcdee6cfc5469d4fbde853ce84039fbe0d7cfa3e35db3aafd98fb66eebe8455bd7534599f64f13f954d1c6c355e380581dd8679b8fc636e9a363f792cb608d9c82240497547f5212e8d68550e0920a3730f8c4df9596d46ea69284763503da956e940185bc0752467083aca315746beccff6a111fb05bd07e36c6585f1755d8f3dd6d77718d0e9f1607866332d6a917bc9360ce8ec7830eeafa21e8ca6ade68eb9733adaacdab5b30eb74e035d9debd6662f6ebef5dddceff65d2eeb5139c37e1f03dbb0b9ce6b377718e8bf747aaaaf4e579fc176348a4fec1b0674605ef8c4a737bd3bf5f5a66ba1c329e0ce2ea7732d97e33feb35fbe28e746d6ec7391d59e7eb24519bcbe1e9aa81ae93eb7464f527adb0a0ce39f6021fdd403d8176a7d7d2f55b4185b871c3abcf53e5d3e974e3a37b9bfa7d6aa39e40f725886e43c92613dca1d4a7d5745468bb87e83e10148671bbbb2e102b7c7af5853bd5a0425b788b913bc2d57f3b229bc7703680fc385fc64bcc66f9ddf6f0c4fc073926d60cd3d4803ab7e3b52b4d6ef260320d309f1326f2e7a6e49f9394076a89a606b4f3dede825cfdc084fa70cc8b259712c208abe9c6bfdf39ca4d625bdfa2521589b8cef2e10a6a12bd4f15edf77bddac31d2af72dbf1addfe7ac1d0db5796095ee43840572a427530491feeea536bbb47ca9b4a37750a6ce65dd8e6c631a709b39013df18949bfdddd1ccd9cc86549ac896cd02ec6d5ee9161e6045090219b7446ae7bd49ca8ff9ee5a0200eac8e135032fc4432c0a8fed86466fe4744e4787a8089ea8f46f5ef7cd604f44559824a7df5dd989ebbf3c87f0fa6f3a9fe47e2bf07430413d1f9d4c91df1fa1e8c697eff03629a9c8eac5347d68c4f269c53f5776f2f6050bee71fa4df5f675461d5ea3e9896bb6388946186ed5a9f69a69bc931310d195db922cadeea2bf259dbd7749637ce36af9617a00a5a053f7c9f3edf392b4ddaf9001c42d8efd51560ab0161f7f97de58af6d7d6593fdf398bd3df0661baf9be72a55edc8b9bf653b63679b64af918ccb48debdc1e7b01a8a03a7de50a748ecf335fce98798df1ad8ef82b678f4e038191e371e834f2c003535a10c59494c80929508c2122c114163c91a29d21ea428a4686680652fcc130be1069a189618a14295a192a908283295a1a4d5630e50c53608cdc83ce4b8031250d29614c114315631051e149f911251554e547ff2e3e7f2605f5cf89eff1a594b293f2a7257fca183f88e43afef8f1ca7bef2d0089924fe6464025d59558d74a8a39e75f977565537e2d41751510bc96afecf2bb71e9c106946b4ed51f4cf76003dab5d4e6fab59aaecd3b6e5caac874e3dd53df8361ce54335d852dc675ce2b8af5734f49cf1d8a1e7316ef3dda80767f4f721dbff7de7b0f4ec94de62260bbccccbc501c51735eca37e79b73ced792f1f893e89b576665f57ad694338354605c67a4a5621dbff7deefa683c4b7317ad4b7633b80ed3e7767e6969874ebc426d7c90d5edb7b305db1cee4c6db5a7342e9bb93ab70ed5a3f389867965a8607191dcf3fd332a8ffe18110c0f30bc131dbb3cbcbf4f0323efccbcbc0fcf36f1a1cb3830e39bc0ecfdcefb0a5515a27fb64bfe0188c636888a9f12ccf74c43137624c6fe3f9d7098ec1e1b974830d35909e9f48cb9c3ec7330f2f0020b61f36d4a663e34109951f806db60b7c6e7b7c8201a3c27f9152e1fb40a5c2efc18c0adf654363e33a9fbafd6e2ddf6db5bef36a7593fb1c1ee336c86d5e5bb6f760baba6c9d711b73dbc28cdb5edd61b3b86eff63c5f13e7adb74c801c73b0e1dde75f8a701d1814be5b0cd7a637b7c326d8f4f36b6c7271c36f8a51b6ca88104f435b6c72716f874045fa4390993892a30ede13f8d7b8f71b65a1097d82ff71c4b55e776b287610fe2a9d476a0c2acb36d98658e71eeb3df2d99d15b56cb8f81c6f7edcf388661324b77ae3ba2babb11d5b9ce9a447077f78d1edbbbe5aa62d9fc52cb8c7ece1fd273b15eb4595a7643e9c530051fe3678fc71433dab0dcf5c7a37ff7c750fb5f1acf8989758fc1a76559b76f04553380aa3916aacacfbe3382825a8df5f363b66500553b213527eb508daad9fb5f9a88a5060d137b1a6ab0ecb3a6c49a0af1b16d5a5366005521972362188231ce00a5629eb933e476d99741a41842c11863148272ea257f3f83ee2ff401376175f0fbcb14fe82ab6f3556075d1d53a88dd571a509744bab634ac909376eb4bc159635af29b74b4af998e472e6cf8a59d71fe97a71dde4b078439baccdfda711b11e27d75d515ad2fa392d4b8461ffb4695992d3b1b81d96f53223da7ae4fc807a3959bf7ffdb4a6b43693b42e6b5af2fa59e5f5d3b2b8ee922d5976fdfc7df9f0bbd325b16b3361f3da6b67cef9d7bc969347fa9a990f2ca694f24857c93bd8757d8417079bebe64f1a61a6edd5c550f57a03945985a94809faa29f8362584ab57c40774e197706cd4969a9f47f0ae22f180acb5cefcf41a4210806d64e6aaff8d45e5b66402f2a5795ed32832f34f804467582873a97d8984b6e8022ad6419037c3b1921cb3421f159a9706b81c23d3eff3c5e2205cd1a0a5ee2dc62386d2925e71e277defb49d44e674928bf03bcf36f93e1583d64724fa825b47d7b9cbfc316ccb1e7692d3e99ab3be7ffd3531296fb0975c87fdd34c385735e1c4577d27256572b20664c68d0b4d1292607fdc4c3830c7a5f4823f661bc4fc0e49c5fe6d10d7635b5cdb115a77e6f3d0baf3069fe2fb8bd1e20de208ad3bfb3cb46e10fb96f5aba36f3c95aacb753c7c8a5cd07e9f8fabcd85d81b49136d451ee4ba06d415690fb9ae88badd902a9bf866bad9ae089f193e59ff4c45b066c3b5470fbb28c97a56c9aa90c0fe8fb81e0c6abd955589804ab5b6ae875b911690a7179619bdfcd2be9822fddcdfab73a61bef9ec78a0ac011a83f3bdc441baa5df8350bbc97245ac647bb14e11897da2f60506fe1d3b6ec6a36566dae048592e5c5cab98ec781f64d08a7f42675b51b29844f2e840917e75e7361fdce24a1dd4a617d9d1cd35d4a482828080a94ae54bb7b5a3cdb7b331ffee472503b7e1662d81698e7e0615ba02a195bbce526b8098e99cf70fba11641eb23638a242f118962069b97f8f77215e0ae920aaf558007a89155526367649554ec9d93f1779560ab642f2de3de83c1de23844b54f833cb71eea59a0af4068942c83b7accc03228757883045170e3df6bed74dfd6b60cdb6673b3ff093162d8081b4dac5da4fd88ebbc8e3ec691f6a329fcede8b5c7d867464b37be454619658c4fb2d2bddbf4610aad861fba8c2ea5cbe831c6f8baace13b6416688a1492416807c73c19265c48058498378490346ad79e92c44a6d99a6e98f0e4f272950a0c1022ab5ff4637a1b676d357d2a84c8c7ea490822ad437247780bd96ee0e498ddf29011f9b9bd53e48f85422e4c76905749fdced8de45e6dafd866730bd4ebf4d4aea7e6f4f7cc324c5ed29232bbc2e5bfe6e0d6db5b6cafb5b667438b23627e9cd387c073528e198db291c8e78cbdc539e5be6f3bdfabda56b9d599ced8dd6f03bfdfa76e4f5d96c8c201b13ae6fbd26d8fe84898ee48571d59f73522b2ef34d0dad6693b3ab2ee4a20d0881d4eb511fbfd6dfd7b30b3b1d574f64a8ece5ea94766ed3762875315723acdb5f0e9c6697bc9d91e0cbf113aff606e70a5fefdf8fea2ef4aedb03713ecd8de30feac706d5e3dd2b5b90e7247ba6e15c98c5e3d195a6e75fb4e3f4fd7b67af387731ee91a65cc20ede4f0748def5de4b22affd2028eca1ebbcb0931c40f3e954aa57f4a8af0b152678454734c37fd35722d2717a34486fe39e41e06ede84b1834ebeeee6e54dd99da51fa704e4a1b767346503835843113065c0f032a938f6ea3ad48d5b84e56e1d8f6efe44ffb8ad65abfd12dcb49cd269dff4ed65b96258bd82ff2194327cc49339cada4129f96c719b423d958a7eecde30cba2f3405e62ee543991913edf75dfbb54a9da986b79a6ab8ee5b1b9121432ef09244c5b2229d8f8eac5887a476e7537dab04564711ab4302ab631fbec79228d25fc447efd3faf7d4c2271f1f7ce2e7130fc12e2cc43effffffccdfd0b4edf1eff0dfdf1d7ce2fa51d08c5fa07899f678b60281bf9613f7291ad16c45a8e993be686471741b6daf459b9452fe9372766bdfbd9db87b196ad1d2d203f512057d39b5c08dd4a15028947b298a524b4901ed4edacbecb1695152b66fafef48be652518e57b70eba055edc7482369c94b625248cbec9221b8e591542cc946dc4e5e72e22519b7044201a1885bbb3d56e9f8af836a7c212d531a8263e4474ed37c272dfda976a5cabe4f9c9f54e113153e49e153076952880703c41768e74b9c0ac764eea7ea4d854fbde4f1d81a1b4a852b4d0ad88ba1d8cafd6f90685604ba7579a8be6881769452ea43b543556c85eabfdeaaefd44974b76733bba6bf5312b3af309a9f718ca635b522dbedba969b3de76b94d28789e068347a1beb47dce3d348d45bd7d311a999f64feb176d3eb52520bd36ec089da0a0d0aef456bbbb5acc7459f656f569355de9210739c875a83a3303611c41a1fb4fa09b5a822c83136710aa5d890c4b2a934155f96fb4547e15dc649f65261c99335ffeab50baf4d66ee44bcb848371d57a8759f0737b739d5678c237f2ac54f8eb73eb5aa89b5c25ee90773cffa10e8eeedaceb3b53f03cf4ac542a8f65fd66719f69e447520d0adedfe8b71b6d1635f5ba4730a557f2ed6635bb58c54f93c16675467a2176942f8c856abb13e8888ebde5b2fc4e4095627f6be83d0ffe55843f80ca1bef7d2594458dfd6e3baf717bfd521f17a78c2fdf96d881be37bf1bde8edfe36fa7a4a9ddf3da30ddd0d1d4ee96d5997654d61d78070b79b3cb6fb63668eb1fdbbd99bafb59cd4c036f46a35cf0cd5bd638ba8db40754e5e91ddec8fd9672e07c565ee5a46d83ca7356725f5f3feb7cebbd3347777ddbbbd396f7feeef0121ea36f0326b61d0dc8ddfeb7ebde9b2a6748fbe4c037fce9444a2fe99cfed5b2ee043682dbf247c698a3346b9dfb1e9b296e78c71c618afc7b0cc372219f6b0b64bff7bf9dd0323cb026554bb56e3b50810e8ab4f7ba20d82532349b1da8fb164bee508027d4f6306cadf5fe4f1b86a3f56e3f47222c382d4fa82c5513328154634946e94c8a801861a5e602165d47dca2d93df4dade69951dffda319f59ba4d54cce84333f3e182a8969d082c49f0fe76565a24e0210636cb1c67c13753e35e02eab118a44f0d298b5f554c18fe4a2b1b08779f6b4085c6f713d55f05fdc6b977ed770acca9cf5372c55abd9d7f9702f77f2998617a057ed50bc834ffd5ebac1a7decf766edd65359e66bf48ce73ece0c69dfbe1c1b496c30adab5d4c65e603886d6178e79be9233c052ef977f4ddc9079dbddbdb9a1378e7790ab7d04f9e143c8efb59ba68cbeef3d9dd7bb38cb5a107edf5f8d887dfec7af0bf25f0b46e2989e598e1fd0c74f825cb7cb360178dccf241f5f533fee86efb94e4f65feaefc6fcba47c30c3b1a216a4bd9f7f3522a6c5dc472ee38d4dc0725cf1dc7c52161de3bf0873e2c3c871be5a60b362fc190882a005041e4dc62981fda3f1c15c2d0294da87fe97c307147b4c66bbf5c04772d1604f820c78da102c6621b19fdbbe2e6a0250adf7c10eb94e48b5b420f1e5635b27a45a8f5d994f38e594db560d52ada7737e26b7fdbb89595964243e758e2bf87dce097fcae8dff15ff34d96c9e79b784a28a186131f3ea665d866e2a7c17a7ecf67ad260075be6b37d7d46c50d59a8fa5b01c5950ff9d1b610a13a2c34c4808e11f3f010f090de0a891cbc1de4739b4a0f085d85c3f1fdb3aeb8d5c154756ab0c2c5ef0c510af0c2c5e90848a5dd5ba5a0b325f6b1f7c3db43e3ee598ebe35ba68d57e7d5bf83d65f9bc94d33be49c64ba7a7caad97c4e4c79538f365eb74bdbeb59bab629c9c2f9fc431f2f1b6a86b808c3e726515d86bf1576713c0c40f83ecb37fbf1503e2eed23962fea6cbdf64f99ba6c71839bec788132be033f4828c8b42fbec1dba8076598d59b6d140fbecdd87ee092909aa3c5d63169c050d7ca8f0c51740a085273f3fb2672d013e1478effdc898071589c8690087163dec23d9c3a06db69b653e78f7b32cdb5edd0c1b3dccb62e7e668a70b5eb3bcb244d98c9829b6da6c12c9b2fdf74037f62a31c3ca039f03da7835cf7bdf5648fe4a2e92775f059c381557bd618f0029afea711c1e18b32b078c1176560b184a6736441e1f7e7c082c2afc11ebec38f57d538ae135231f8d6c36e27a9c63174777777431d4fc07be93ab83ef09b979b7777b9b9b79b6bb96e83117cf8199dff36d3e49daf83ff7e3793c56f92a608797797dddd77f765a605891c255dd683c96105e57fbbbbfe5ad435a07a108e596cf27ce6e6efe3117f725ce7f3e4269f78c7473d12eb7edc767c5255e70075bfee173980e8fe7c64d49dd79e538e79af01e9dd1e029650ebbbb9edce9d903ab98f2bdff994d5d7831654fe7a00baa8928c2afd0581de05763d765d9890155254b732acf3a95884d8d6698f99b4eaa335aeeba9da4bec7dd7df899ee59b9ea9e59b44d2b2fab1871acee8fb3d18eddf83113db68d38d1d6613fdf2275af6d1df61d56833d7fd62fb9b8e5408ee37cb4856660ef37a3d5ebd39e0f86cff555dfb6cefaaedb4c96699a245773d57d30ef4d91abb92ad7adaffa680875b6ccb9e733979f3461eef1783031c44d84b0766c321b20d25ca12f0a0852efe9101ab9d92eeb3466a06f8ca127b5c3d104f0617bd6a79bcb08fa5a7ac24d400214bc98fca52380519f80450a546518a3c9193e4f84410518c050ad8a70c6134a2add7842119a20041fe0204a921c5481a6fbca6154fec73f2f90832b60c10b5f5ca1220a34cca8fa4fd609f5bd1026569860891e50718614c2a0f1f959f2840a099890410c56345ea0f4daba967a397b4f75aebb308f6b79b4be4f992529766596b470d4c9755ead09bbf013bb308a63aeeb7aa9e13ae4fa930d33aa95448dd6b436538c5887a45aa61ff9fe4fc3646682c1eab03e7b372d591d6e69402cce4615130c56877fb6ed48c2f483f966fae1934fb5302bf3d163f3c1279f21dc0e223cb3f9d2d8ed21b546b5efa8e558b7ef0fed8503f000ed76accc1ecb38134efcec6de267ef53b7eba9fed9e5531d88d521a5733ff8b4bfa3c5e4dfdeb554ad09ecb574f107455fdc32232224d06e6b67bdf6fd98753d0df4e1f6d756352cbb56eecaddddf7d151724d059ffa874f1c06c5a4c86cb8fed575c8e26fc3167fb4c96f273886e4cf4c6e78fe5e72c3e6ec62c30fd378c578c518f723d75448d1aa66e2fb5a1afe693634fcfeda5053c3dbf071abc1867f5a8d8b85447a0c6eeef099f4901b088b73366c5dc3d625d8568aca4fc34605131bcfb231c1e1e9c6e4861f6d4c4adfa93971a0b4542ab14ba75844ab48f4ac011135a3512f0e8785a860a246ce14316cd3180db7e135def0a41b386797f88b4318f4fa3f456d631211871ad04e0915a452a3c45efb6e613434ee717ce7986c2b2d5956bcae783da17a5d574d4bc6e34fa2d75f97914cfbb875a51a63c4b498c578591960346a8e7f7c26311afb58146f90e24f0d8cc30776f6f0843b101de85b56e3ebf8d28c44e906bfe7d4f17fda1336abddfc8b06414141fd5ebfd7eff57bdd41414141fd5ebfd7eff57bdd414141fd5ebfd7eff57bdd4141415130de9ebfe690788fa3cbbd2f60afa57bcbedf08225f8c1d0062c30ac376c338c33acb3de3088c56cfab603b572442f919c2398332d33b91f3fa608a83c1eefafeb7a9f19c908e993d4965e9743226ba92f7bf0033ec48f11d08df1a901113de618e7342eb0d7b2363651ba94cd2b5bb3b1d16ca6e596d5bc56d46c341bcd06cb3ccb9a37bb341b1b9b11754a9b978a6c341b1b1a9a5035a152fdfca89cac9cac562b3486d0181a8229981aa2a106cda699b041b3b941b34995542a1c1c071c9a1787541640ab15d06a05d4545aa8857aa8875aa8095513aa9f1fd5cf8fbfcdc94269ada67d05dda13894e831366f7428d0ce798a72c874c0300cbb6c284009ed14fff00d2a7393d5d06ab55aad564040404040402928a9548a835888abf0105bb180808080808052a9542a95c2c1c2c2c2c24313435638c54a58b57a02254868b55aad562b954aa552a95a08a85d18080808886f00c44d78c54f66af56abd54aa552a9544040404040409f030a948715acf6c942d920a12aabd56ab552a9542a95aa85868484ac708a95b08a9748954aa552a9845aa8855a68339972c86edcc821071d74c0913d8ecdb7ad793715ac6a2ef9b9c1021559ad56abd54ab52b954aa552ed13281b245465b55aad562b954aa57255bb0a8756f35cb669351ba7d5702d3bf0e03cf0d0bc3ca4a088954df9d0906ab55aad56bd647ff6060bb44d7cc88756abd56ae5ab1db81db49a1d5ab49a161eb41a1e729cfc746ade930a35677e563f4f7e1e941f1f2a723afd974a94ce59850e953e057fe00ffcf1a139292d41691f6a69c9de9683070da7a5e0133f007268387d0240ff5497131210884f0cd483f7d043f3f6f0388882aa002594a154d43307c19f968150da859fc2871c84d2411e4e60821c61d01c194331417d8f0120632898d59d3ae204ec04a96a82a10abf31f66e336cdbe1f1bad6b77663fdb5f3756e9d0f0eea1564c9507d5e70713b5f2d0e02bfdb20f08f6c859fb1c99f1f3e925ae3438992a7e3d5f774ec2f7f3b14b3bbbb3bceeeeeee6e776f777777777787104208e7840de79c92f3f8858410ce37dd5c75723aa3ba1cefc2c72684734e9f703e9c104208218410422b5a1f638c9615257c87dcf1f36cf516b872f77fcff088577ed3cdfe54e6da47efb21634c68ea3afea91a879d586ea911aa3aeda919809d52399e8f1d8597e4fa52a3f4d557e4e7674de502a55796ad4f9dd3c59d5821c51750e50f9c1ecf3c42ab71df93c116702550787ce01ea3e189dbd52f9653fce8e591affa7418f5eb880e00b2b34bcf5c65941c10a5634bced10166804608525aad0f066aa01cd67b150407046100d92cc065b0e626c0cb8d8c11234486213a65c41d35b0fa7010215a86890b050a1c7654aaa090d12098431ce40d35b8f0b5141822b68906057d04c1ec0feec7caabb110f669f0b18b8e00634bcf52083c6679130730ab0ff1b259a04e3c7f8bdd37b1d9e3db2af234f4e7d7a3580bd964837084fd50d22a66ad480c46c09f4bff4fa850bba6a227f525a6a42d3bf3f2de351461085da35722c81ee5b96dfa94dfda976a7da2b8026a8f53355dfd377b11821b48407d621d0a56299e85f291c0644480205da44f75625a03742f8d443f0a9a78d107c6249adaadf194f44110211ac200d296680136f22677ad557d5bfa9fe55d27256c819f160f8e55a60608f0541b505a9ba1c4fd7eda12449d354b1dc3e57242604b017436dd48d8ffbf1be98efc58f445a669f782ed1091e04a18b9412946c18aa75e2c1c454075fbe432b46fe7ef9f22f1daafcf8336f407560834c8d174b9ecbab16766d3d3c41757022879a23ffe2d68995c2f29e56829154ebdfe361697f5d9dbc389daeda4bb13f3d3c41b5b7118b6cebc4461b353699abe7f26a47ebace2c9d3f1ea7b320fa802e8b93c1bd507cbcdc6f513c7aaf38b14915f049f62113e45223ba89a63e4aa169781abcea743ed2011967955c80ad7866da351f6224e09d1674a680eb89e724a8cfe7a8d53a28a21a3bf5e09161a6c1bbde8878c5ef4fb22d1679c0f4d4ff6230ec3467f7d0f8b0fcdd36a7830f34dfb3e34d9665a6e6748f6749628d7d3f3684f1543587e344a8d38244af840b54b4fca03982ffad177282efb0ed3361f9a6cf3a1f1dfed084ed74d65af713d3d47b44b7fc6ed30e0d1e830e0d188b2ef3695fda3d19eebeecfaa7e96fcb0e8b36df418e6db72475687abff68db95b63364f422aea747f4226e81daa59f018f8609d1e8bb5dd51efda3117db740a3c536d39eb61cc948a9ca9726e770bc089f168ae48903911853fa1f4762177ee6489a1748cb2b024c4475e86f523f89869ac34362e57f8008aa3c1d500454de891fe36d089fbaf23337049fba5f50e59858fb87e0181df85f651db2a8296004d47af926ff17254914ea8ba2e4a746cdc67a93735ed475522326810003edbef6b7cccc7369206a40bb99da3304e0f16466af8ef9dd43021096999999d3e226375f48375ab221f8f4db83e9871bf760fa675a6687d709a0f6b70f3990308413d252b94a71d2f3e7c2dbaf85e8da095d5e603befe7d7a94367afc077f6b7787e2c4deb91f87483f2298711e8fbf75b88c2240c513cb045c5515f1426516a8dfaa224f1e2311b39b8a09fc44a08940461315b0d08f6bcbde6117ddc6de4e082c2c730c7dc2f7fe83c8ef1ebd56e64bd9eb780f091d4b6b6a8bcf13fcddfbf6fdc6475f0e316884fac0596447dcfdb164149aa8c5e35437c416675dee2f9f3ba36ff692c6d5eed979ba9b9c93166809caa65a89dbb7b36e5e794dabdb747ec78aaeaf42c71456a8fcb5104ba1042c8298e53b5371eaf3dc7a81df736987dfb738ec71c8441058d0724c9e2c1bc980724017add832edd0a5664e18cdabd77ee794b4d8c9f6a454992aaa7faa27ce049c5b49f5ca1ffa0b266c355ecb11d42c5980815eb2254ccbba858ec2588900529f5bd3f1ed9bf878f07f68f8b15e2c09a931df126556754b3c76216848abd05a22f4a1255e5befcba2e785df1baae9d36449d8f142f4a1220d46bc366f744ef7344ef3beb475a275f0ba683a8548eb66439e9148d00000004008314000020100c870402a168442a9815dd1e14000e8b9c42764c1a8ab32488514a2984903104044644400064000c800016f567ec6bba7e939f3dfbc4dddc2998646181bf6be9419efeb0ebcbdad754fd7103917d227e7a725eb998c6ec16f4664e9f8cfda6ebffbff5ec8912b913d8ca82a57d77d3eb6b7d60d5ff607d540c48ff71b3d2cd0588e1dbe4a9da5730434b95af7e9ab2d61ef2bb0e02e0417b4247858afa44b4e74eb6a3ec2d6b9d8dda0d414bb308ab78cdc96911e7059b6a17be825a66f83067e8f28b238b2a81aebbf2a8d8ffded2822c342e99fbd1275876912cfdd99130185cd4e01c6e39741a17db11ab66daa48f6d34bc7350a7b953aa53487de6e5489c34a15a2da0cfd44fb587df4d7f884713e564465396acbe7752a3feed287058125fe967ad08b5f32041dc822d07136b6bbe6961d8db11fb738e8c9dbbabd9271721a7833832e1f9d7ff8e7e9d6981a3a7dd604ab7dbae8c34a58677622dee1b5e5649f202e2f83b169ada9774abb9aa01201490357ba0cf14602f7b47548074c04f6817ebed6b5e3ec5852e2d25b846ed2da0709f2c2cac31cfadc8cee5d3a23044329b40b1f349eff31acde347ed599fb577cdd1348f067bf14f3f420bf618eed4086603812bb55440a958dace21bff01aaf2b7177c4ca82ae0bd650784bbc175a10b5524801bf8611160faafc04317089cce779f751963bc78d4b7e44c3326e8f9f65d1d2d5712b4a44c2b5ef8f4b5dcf1793df96ee2db5bac8dfe2d39658436e85a88748f707bfb500de06d8cd65fefe035a67922c624b531f4fc51c1b0297aba9366b62c17647d15e245429c215e2edd1bc84ef2b1d32d4e44e6ccaf7306a5da6cd4ff631a23e9fcc0904bdd604711956458344ac80027cc4229fd5c0eab8a8e423c60f10f9e453c52a27fe8ec0d53e615232a786f227a1c8a8b05223a7271e66890d4ffc73f967ec351a45265866a24963c515cd8e82067e61a6585089bf09f6d3b187a8f41e182956d61b5c36b06f7b6c98312a13193cc6a84f120bbdf9f70f9bbb1eebec235881494b55abd20cf654d9b53056aafa4c6c73b9ddd099cac273d14fc70bbf17fccb03861e4a24acc40e0bfd164ebf9b0f1cfafc5dd839307d2bc9fd823e0ac1efc603807e7af3f60b0f6bbc48c1822791b04b6f4b1c4df0ab4d2adc775002a880c418c7232a1b6ddc2580b1d43c695b51e0d62ec6e7a1e5df8bd19b15b956caed1dc6113f002901cd07ae52b273fbbabf765ca847a108918d1e3e45a2e7116640644df247ec4728cdeb8236d8d5565dad55fcf694705f07e6ac047175bec6489aa51a8b2344449a506a79d2cd4718c52e244d60414caa8525111c9095547a1f60064a7680598f01c30f1ae2e980b10b38c3dfd581cda36d84876ec3a82d0b82c35771018c3348eeb405a83b64fcb3de1129f45464a67540ad54041e172b2c3008bddc2fd3cb29b5543490ce01766614078b832f1e07102ef3fbebd33a1e3bd44a641ee8e2b920095bb447dbb045f34fc14374088433a5d583ba9a2663ec43a04d8466ff45a53b65f45b9a8067d526373e28e5a59968e8a19fa0b3392c93c326939004e4931bc4301ec4e7cb1fbfced5e6351b8a99aec42099bfd31d9f58094ed882dfa7316ed6ecd35c54d34c61ca1c8a2731eb361fd4d2f0412de41e52ccae27c18f968547114f9904ea51af4d000f997e2c2e86f4f52a05c6af6637e90e7499340d594ff0b960d42a6de6b4c649b7beaf0372f0013f9f29e5d24e18faa1ed75ed6c5f0467fe59775149b224c03eb454a08ff0ae2a85524c3474a09fd0e577965630116a4a7b4b30d580204241f9d97668dfc11e4fbd2a0d998668e07647a5d0d3c8998a7715eb15630a936bf75991e8b745c64228be3b269b6a6ab5ce42cf5cb3c20527c373c74eba25564f9ba10e21a5143ca29ba8b9037f549a1592a14f86a78104313cf4b784c0cfd4462e3ea15e3c0415e9424243f940f1406f5632950e2885537969f96305152500f55d1a029e26db4a714b47c67556ac4c4c7eb2de27c2b7e2a62210b1e462459a463ef1de6435a3766bdf20a7d099d2ede8ba7296f8c1213b54fc7295b4c727d6511e1ba4d2acbffbaebbdd655bc922abebfa34691c12ca48df25047a86f69913cb7ca254a5d3096db070c1e0e3b4e659ee116316c2dac5a1952c27a44f95b44d1bc313430e48480005c50c0ce0f957ef9e102b63927f82caf106dfb5e9f97b6352357eb9196d47a107369619e8b48e0f002868abb272d4651007184ff1ff38c37d148b0241f50ac05b7dbaed4a3728148c98af7249761d3889a680605666d7faf1c03e7c45e029484c4d0ac626cdd398074aa1141301fd42ff266906d08f95b2149248612efedb205e2b6c02009c08f1d930a09ae52746a2d8c271d8e08a0e3222e58845076a222481a1d9868b34f1bedad35300f24ebef6d3a7bd1cde42035119bb6d5d4de269d9e449c46434a9f4644fd243813de6ff976288421964c811752906a5911122d9449a076ad82ad272b73495d84f8266150d8249e76c6ce9c2dbc5488a12682f1565cb07aadd9f489907c907ce6f2fccc24ae1ca98e520cb16764507daa8cacdaf602a7cd5c06d3845e97234f2308827162f2ff99d0a9db09f56ecf54567c289c588d809cc3c6b95bdcefbbdc689bac46418f0774a1ed5f615347a6138aeaef4174e4495b0bb68fad5ab79d246db0e47c8ec6b2b7e1843eb2c990b0a28dcfb2ae4c5b6b712179ec40a11ad03ec224ee6651412cd3cbad2131c1678944640edc9b8e40bca1c4d2cdf0a9d2b6aadbc2cce0b02fd48c74b3666f1d8c98d50c8fa0d9880cf19453c9b197cfd549e468bbf46f5947a723c48ba280e9836f1f056944f8003036675e266de5e2394b976ffbff48c316aaa22bb18098733ba9ab55a64c1849337a69f1384cedae021e3c8adcc9a6af93f4074a628256de3b82542255cc815c85d2adc5eec41a9e267225234bf2cd01de21d37083f4833797c1d8b19b45fab523639732719ab03f911e4cbee476eca049c8da206d819522a5daae9c99443c63739696f923b6fd097d150ed1fed2442d58c171fbaed63803dfb0c4fe5b5be476d4feb613268b74d132dfe7f39f5b0c0c6574317118e5757e00b8488cae09237c5cf6f597372f2d1b2354f3f493b8ae53960dac449c3573101b1550ad0904765a3f7bab7d04e19c152fe2339bae1007d9fd05199de983b75e64423fc6677257414e77668d843b62b00ccef7e3877b1b422b0561efec3f95cce966e7ca5b070d899aca31efd68940a2962b98d469de93cec24aad20f916caa686e926bc54c206f170551259054a48965eb2338fb66bc8268c401f0e3cb5f3dae3a391f4d7b80c220930936d415f286a887e065a7d34aea8026af4d413928af340dfca68d810a8c2853cee50a5b78b66159d184588bdbba091c77cdfd639e281192941bef71be742a685524503695d8597617ea63eccf4f40c9a4aca7b38220f46cadaabb5b14d1bb990a9f207a71750ad0c1835c249cb6089277849716971ed250481c17e4f06b689ff1448b54c6cf833624831bb61243dc9a6e74567561d79cb5432e9c7689c9f3e860659aa11d122b078419048b4f3e4b2f293e224ea78c7cd2840ba9843ba895710a7dda943f5f7081093d0fb024aa89b2de10fdcd2ac70a0309206694e3dc20c141555b0a4958007bc1ac7c9b57f6309935aef88369e4d142d2111ae105627add625bc938933a419a1c3cdddd22d3ee629addacc8eb4e1cb4e537ee37123a9a8bfbf6aa0f78a40ec6f53aeadfbd7e76c69c89026cac9b5c363678186a8f23433b8274ebd2c008c535aac379f40f14fc651b4bcf0ed15a56cc1052469cfaca8beea465e7dd3eb68dbb3741984cc78127e4191c708e89e62dbac8d10ab8fdcaf9fb46047bc9ee5a8775f89d902ef90d56559b1c43b06055ae1fecd87a12063bdfa7a4f4258dc41e6857c25fc0259440bec57f7923a984d2cfd1c47855a085dacf48cad5dd97221701bf0670921dea2348c48aa74f10cd770754b808b632e757a8a9174b151c2b82ece6d26dea6f87f7a6c7ff46bef0d970136cbc8ee983285ff06dff6ce2c6eb446049dcb219338ed13ee4da2ce5de8dd61ed50cee340f2725d0c1695c45a3cdc5f9e0ae5773b707a511a3164ca8aef78413d38e19b9683f02494b9bbc48c44252f2641015bfdd28e36f2a0399ff0db5b8d32aceac3e87226e4647d7853a2ba373400475539bbf4684955a83a47430c23bda77456e6674fc7cb983281aa81d195435ca9d60ad0413ee81e933e18d4da719d3152982fd9e7c259c1adc76120640543b07af77470397085f570487c7e6f2d4c19f02efa369b285060c81a4db349aac99b26c12258b9c024da127bf9ebbedbeda9dc28b453b7bd9c48c4fb3e632918277794ff002dc87ccc59ec28acc45a89b05cca103c1d1034b3ba79a2bc2f5018788b3c09344d538983f1699468bff0ea6d02418421b3e32ede1e3b512aee063c5679f360367c997c1cd34d52e223f4311e7d5645de4fd057adb4b4b4372b1c1fa959b5c17c3f17a617c81dc6f7f1c250742afe08a2190f6eeef0dbc6384d3a942c684b8c6c09b31e132d2cf58529fca4d4cc359b04a977b64f1e67311480cc0a695c72a4aa9672632d999892d6a8b08c8341d453bb34227e800b69ba0af26bea74f1b8a1be4267bad3cbbf14cd90d52be37c93fad2a55fe1b3abb3d1e22b12d5ba079207b61f526c6760dc5f13c5869f17c8cfc35b1a3082668123ad85e441d0b13bc1a6e5a3b82b7a5af8c391ec5aaaf559da4fa7008d62a0a57d872f7a3831a7ef05e1e7c0066a9e47a22a4ebe3aeec46cbfc2808b000dcacec3200c93b116ff7db1587ee9d223ed74a166f82fe05c766d585e00f1ac7b67bc069a51e8133c256192a23f051838816bbe3475407ae9f1ea4e837496324dbf37175da87240235afe808699248667f38415fcdea2913e42d68891aa97b2c907a9dcb0f72f07d3c421fbf69082c707c3bedd2d0947d59f4f0596e22ad591f10790edaea80615c51b2b0bcf832e70a66cb543a9ab474a3cd57aecee6d9fa9d2ceaff3ea149928a94ecd39b4f621f27b743256cc85d48c8ebf317734140d4fd71e29ccd2fd6c8927e7e4ce4f1358425a6c1007cc49ab387c53a42b1b3cc9aa369495c12aad59f5f904e58122b4c2ceba615f9154faad27c43d6b2cc166166537ad7cf2bffa35680f8fc953be0af749998ee5a5d59d7e0fc09fc28a5871b77f409c40cd90e492ab9330344af4457ed5b0ae5f9fdd165673f1854821f6928a7c52bfa54b655972ed95e2188278f6d9993c681f32546e43a165a452fea62aa677798124ffdfc5e1289fdcf46c6e66479ce1ec6b0b7f51a904cd6807967e90e8a4ca6c085e6f7019b9bee321d13670bd3bb327dcd958ac00c82ae0b66959216e85a477cbbc999ef89a65a54508903eaca498c72e9a15d93dbb962072892df1f4b4d7995b23caa517ca69e027b6312f38501cc65986505f3d0ec33eee6513aee2af73e09bac36c724b68987a2f4b0a77acd12c358dfbc796daa902080253b0e14dc30b149adfec46c5f83d13e12f27ae282af2342203b3681674b28196d0bacbaff379309c19a756a8b1ab3908a49040fff237bb8bb9cb38680fc2f30be25e1e5548bfbd3963687378f24ff5738c816ffd48fd11b82ffbabaed93ab12951441d3b43394e9ffb9dfea4afadf9ca2b6a2e6604810cef86621bb8883b207bf2e02a29413cce9bac40476168861ea08b401b79881c345a45164f29f3cc50b71eb45db126b9db3d44bf5bc1eb6194145a5b77fa8a3e3c1f7b955e2eb1228f5a021464da269a261c3efc18201e6f3bc3a9d4cf0b3649f18064bd9847a697a62bac5ae89568e2b3640db527d108ac41d0037418733d0db22ae1610dcc729f7bf92c95cfaf996a52311bcefa3dc8568b7c79370306aac0e688a27c0662c5d5abca5670e23108f2b74ab95f651f2fe81f5c10425894c71c61bcdf5b7a2e385b3ece03713ecc2d614e1d4f692b05e0607125db159f2b2d42466569b514cdac460976233650aecbad3832724b05dbcaadfa5882f7ff1f0a3434890a5a957de66869b3b2caa161e199a5cd32f88a39c196056157ef7b665167ff82b2f1b100a9db6e46e61f74f9220a9fd5c0b21ddf58ecb1f76bebf3f00c76b2dd16a69ffa6ad31d22b255a8e9bf07c885151a82358bc71c05fd56d9ee664f639a4dcca0eceac9a22bfdef0ef414a94b931b6c19d6bf26e3e7e21cf1d193817ed4951846a623ca75c2ae52f0f1484d145072cf700842deb85e6e157782e4e126fc8c820231ac1373a8bb22cf9ab10d0d64eb72a49851b1872d7d3f18eca4d44096d839b910eb56ebac1278e69a2572f2b70b1500dd7deaa82ede3a532acea8d415ee74893324453122a5cd23a62feb2a0eabbd2d35f1847265d542595bd0a24744ddb24abd412dfcc0fb281dca3fb86a06c75cd6df6c64b343644386a64c6aefbff760524d025b8b85f5e1d1dbbe111339321cf2a9b3e475ab00a1b558ab0059b03ae8655b55e2d1c9a3c1d0f5109f44f56fdc9e1236e11530f3d8dc2bd047b14dae22063d708bf37101a4659434032d12724bfd83406d62b04dbb99085a48c355a0b382b51ee92be4c4d6f7e950e960063a4004938993b910b9cc1ca4958b1265e454406b3b34e26d89b02685f2c695b27afaaf855960fa823c783c1362239de01d020472f0126300179cfd1f14f48f6ddde2cae27afab9f5e19d514a812cc5bf7b7d012b26b0140c4f0ec782328c3ced490e405baa6dd5faa764562349d6617a81736219f5613db0684357c040fab3283a43075ca7aac11887d3bae4651db757c43aba210d38b7c7f4679e87fe4abb43b8979821d60f7d698d7f25e6030653783c868a3b4a15f67b140e77303f68bfe8c820b3a65cfaf01aadc65c91f65b523a782c3efe057a5d777f25f38bce77c72914b57f57b0ebfa5ef878c2029c977385f7efd25eb51ee081a3604d89886f85f470ed05c0a8198eba0e37b08f7dfd26e4a20c128241fc5b61a6ede070625d255f2c0fb1b0749bed9b93d17d3f0bb0320bc67bab5650df62815f6b3826a5913434c745304d0984e7892b1e334c56d434b91445c7f8a7da3d1249d288f2f56fb3d37e5566a84c9609c0f0d921d4e6184d8026773784315b504a12944d1140722408282ff15e7fe19970e580d746b11e2aaad71f5591bddeae3eaf90a2f1961dd430041df767172759640d6e99d79457df1f942c6d57577d33710f3361201606ec255a652412d51ce9d8e521aef343e5888bfaf39b9c5b1a2b459cc90ecf91d5fefd41195848bdef70b2f8f2390346a173cb1e145d99e9588b3c1a47601a6c8c384f0dccdcfc837ae4bad2e33678403e2bd7c8708a1b4b5dabbe1c4460d192d76db1c266b8b727227072ddf669266f3a4ab06e69c416cd8c0fe0768cf7148cc032e98401b99d0dae6df461dc3c17a7160304387369011400aae0dea5b5fb1f40fb02d3c4799ce83c66c1b22fd95e2362b150222b61d848768e59e228510814cc04018334eb9d1e61a5d969f306833c0b0e8e62b803cb9d1f0ad0cb41c7517f171038a7933fba1df62ab28181df1aac8a6e03fc3e00b010fd83950a3160b281afc6ce0f7e653d5437dc404c7089360a53ae798b1c56d73854be3717da523e25a9c4d623aa4a15bc7f1e9742e48ca099d5fc91a62d2040042d6af9e335e32d6dc0ec2de9b991b525fafb315ac60013241f4c13ea66bbc1932555cebeb9ab149e97493d8fbfad1a5d0d1b5e852282f15c8af2cb8435fd851b882c0d249750816d8f70dff16bd5fc255d4fd4af1d59e0c48eeeb8b3c1ab17f2555002530ce7c5a2d0ac46f384cff0b5d069f1c2017f427f2d0f87005987b28554b8f8d077590b89f72e5da26b6c334562cf4a2d4b2386f5630f7df5f8d9fe22a6aad1b4ac3ca8939184c79aa872c07e87d4a6781d4b651802907ca7fab219e1e9e5624c5e7b46d12e7eeb82ba003bb76a622f177fe326be220924de49da29f9e9264b00cfd88468898c9553b09d0256c261479d1b36d11fb2e45784521c7a427b98d8e383ca3f46d49bf9027794bd53714a10ffef87fbc661bd436e680b486bab0895a47b053f1886d8c0926a9366c4269f441613a73d16bc33d545296f091357c96479440a6547cc82d34bc484babc5be22dd1d759650e95337b47de51fe45b568d897828355aeb581263bb2634108a793810f8ba2dc921ef793d876ac65405309a072ad992b3b8cdc3964765fb7bd1138e4a09a765fb5687658325108414005039a26931e1ec36c60fbd8219a9f12b186b50aec0bd5764faa6a118baa943d540f53c4d1b81d81fb26f7ddf95edafc70c6aaa95c53480811c956f804daaae650868d9876b83dd21ff361e21d8ed64321e6fb695d0f0c9fbc8aa6c1c2be585d823d8e4e9367c53663833715bee5e9b942c7c49260e1e7233742a5870815da3f955a1b6a0bca9a17f40f5be8de533fddcb6ea157fe9c08221a59230c3d9b8bf72787f09ed3c3a7ad086bc9d46a96a33c83c676c485b581b4b18e46c8ceaec88fda172f7b850ea8cb871633e4836aaaa0c78f9e6f6ad4c06518b4a8e6c6c69ac0e60ecd3e68ce6cea3d06f1087c4aa1e7602d05c2668f6ed1ea136a4d13b8fd1721433e8929857e172d1d9318c89930fce7ff7a11e03c45943c054a749e76a31a841282d4ea1bcb5d890303b3f5feafff045b22cf1c935f6b94dd983a0800cd678ab242c529cd0db3f2056526a14317c40fb13ed843a245b045c867ca38e7f9afad852e6c622eecad6d64f91f1d7a0e548aacb10bd557e24c35fbecd6a308085e96f6ecd79e0f1d28a85668f88d91258867ca8388cace0afbb1ae6ff77f31174483f21852225bbe67a9aceec750d8f99fb5e3f2a990ef115996e15ae861a213ddb6cebc781740191dec3d29df2460b36f022404f6ead1a74186729ae530f6a5a679684c77362045a3c7f004c7e25d66a168b6ceaced099ed4792d12140fcb1cc26f9de04be53e98337603d1f3e80f14a6042a27b4ecfc973691ba828304edd3a77fdc22a8024a91595fc46144d09a8ae172edb3d3021ca51428414bc8fea20ca41660bd102c0c0482bc1e2ca889808b3578546df05bbdbd6183e0159280a1c84a420a26a7bd859acc45c851b1aa4f036650dbfe97b4ae06456ea1db77eb2c96875d7c3482a3f5ea25e761f56a9c2519cd78a053168141273f65197aa0b94209bcb42e61e6de7313cd55869230ac97e0e56652929981d85952120da7cd2d5cf62eb99d2abdbfffb1eea206f361275634f26a6d89d6791361673d2ec4c95268fd44021a009155495faef90f07ad7a4333403a6f08666070a4a4ec3b7fad460c9da6523b4ac4110530ee827e4c3a651394944a1edb6f4bf59c69e8eb8d7bc17a96e6f5882f1e5003817168dcaef354bcd8ecb8dedb360046883cc505952d4a147c0cd87191554a550cfaa3649c82afbbf9a56014bfe19bfeeb157ed94ac16085e3f0938793e0356cff021a4b6476bda36ee21c456d5ef16fa7c91fc41292834be1d7380a63f49c7aed8223d7e67f2d29d4bf823c50bf557ead3c2a5d465b8dace89e186321d1e3d21e3c87f40dc7874f158e7de41cfdcb173194aed8d2aef8ed71eb5db2aea1bb13f9761803016163240689c94b91d05fd5879f92d3ea38454d2054c8fe966d5ef15efe31565a86637d548bac60661536eb0a697815dce67610017a6717f0aaac40b0486c5ace9c6057d3c5653fe5cab1275b25c81aabe5b37851025ae67f49f65e2a11ae22f732909cdeda530a80f10600fc7e4bc631daa78952cc7c96310af49655036f01f38f666bf49f71a793e301a2657dfb07f91434dc437a670d59c6930b80106b16495030c15cd66bbc6b5b11e016d566d21db4984af27de32504f250bbf1e1ed9bf0c8ddd74824db672bfb8529c565373856fa4d0b172af1cff39b468a3c17055fd66dea628863d052ca2782ada66db67c9ad6976f94f325b476beb1c15faa61b5510c61bc9ca28237c672bec0e080174689b77d312fa9d80850186e45537fa3c906b42678a926c5f671817776a705a3d81ac6ad0d38ab39ac9e43814b292029b48011a550c39907dbb4e6286ccddaed1703d0849b9b45cc067a2f2365ae4f0477bf20abb9683ae045d69bf3f54b128924a1d41f59e2f651d3f44aaad5daa1a3a9daaa656674d596dcec6f82f591fa8528ca1a2c6aa2aed47b88520e430745b389f128479b297f8d0f0281227c013fe9d923a48a6a4843e2cfda8da4fd84b9489384ee2126bcb6f699bb8e1775aecb0d78e994f2b45e16e2f5d38737da8922042ee7bc6e4899b7113cf7b1ef818762e0850fa51424d163bb23628dbc2373b0c5e7cc5784703eb42f34f8f53331aaf7e922323b1843f3a8e1bc4e21e89532269028286fd3d6758adeaa539a12fa73b5512e61084ec2af9885cd181be61c8902f7d6bf60ae22a07ecf629b8bfbf18e8c7c10aeccb64d705b5c57a55f7969180185462475f819aaa157e7de834b4fe41d785946991c6e6c17ce0141e19aaf44e41a161cd5605758f77d91fc086ee03dddc6adafe66c1021cc7f8d34b767f0732ebec15822603f94ebfae2a0793d857acc9b9dd9ad5eaf6081b3a84234c16d1073fe8d2078493fd0e684b0896f9749bfffaa1fd10def302527f5a7ee34cc1b0dcae1ed3c827177804e44c9a994973575a70a9621f4d5ad8a4aacbf8749af2ffe3c7b1eb1a3d3c50dcdd9812f41408924769daf2753c001a1fa4451c9d4c46db801c58d185c6ca16c5016eeb3feb021365cb025563e1ff4d251abda8434e66bb1cc33aa6dbc06eb9f2792f45637db5c6d9c88ab5cee891bd1cf693019731edc48076e0f3ac4d9159085d33dc992801f666bc50e1bf5a0c8c42b54fa123d768d11799d5c4b81baa55f91f85dc54efa654da2d6f475742fd4f1b8d8d22d6f31a75f7a2f52e69d368c512a33540422d5f167829ca3233e6fef0b8971f4da71142124d70ed63f0bf6dd6c9d7e8fc6ca549b7cbfce618f427faff12cbdae22e70715918d217a33683244ff52c1216a0b4d7cd0c12f33405476d3f5744d24317a60b11d846b46079933aa069de5e35938058b04e2940ad921ce6c05437c82e64785140dd7e5f092d105373735978fce6eeaf530b69606dd9f131105e1121986b9c3f5a272d095f2da62509bc85d26b89d68463000834d1340a8d87d9dff63cb2384b1bc6f28ee873569a0d3aa2181f6e3d87ae1f6bc10143090944290b0b81f1937bb94a58473ed5e93b48a536a90566c720cd31ab41cd73108350c68c35e47a8280302be85e05241d936c5512632047a97dea838680d42dee5dd6822438a42a4534a7e53c8e6e4914313093ca3e1977e655f5e7aae3ac106f096d1dd691557524de35435b06b1fd2e417a831df9114bb6fc23fa019f46cc2ebcf3a452941bcc7f367f7571886e8f897902a54471eadf4f9280f935c0cbeb129d5788c123a24881f502fbe63683af3c158e330c8c5670377f0e211f7802de0a451fc87d700be9c42ad88173506befe497b1c6afba06b4ec4a0aa023c7f8f8359b2c92901f9568e03410997b29e58ed25a307a963986ecc2ff2ab5908d1814675808f3c0c88062d608256c61a1c7b6196288dfa27b27c7256c80b7ef807dd9b1338d50152834dcea475ae2a7a5af7856bba9cc71781bfc11634fbf56adce93404f7f618f91333b5d45722b0287a9da6847c46edf710aa9d5cb05146fe5296d2bd5524f58f9d2949e8ea1601a958a7271b75a33283445f739949e238e3a534eefbf385792f04e5f29e6c9b1a97a687eea5783b25484cd24bf7a539164f53a763cf60dd1ee185e0160766bb3b8fe286c574b76109e812869d869d3ca65359a70319f06d5ce65b73c476d69a28f60e5f367dd11e868ee28b01a479ed19f8a66d1aa0dd29acdfbf244a12cc13465e66ebab46045b754d4076b50698937a6f066da4fc4cb880b6bdfd3846d7c21b10fc907c27c6130d299e73e69e1d86efd7c14f21fd0f293db3d489acc7db5de46670519a46672cedfb41b9c5cc2a27c7c41fbaaab121dc06c845a40575268ccfc3f141194fbc53d88d82b876635a433f0bcfb342d52db23dcf6166eb3a6c714523d5408620ebd841e20cf171a3204b6ca0c78c9913a80244b5bbcea8ded7a855054cb67df49c2d7da44b06392a9a77955a22f3c590fd54daa3b82713338ce9dd05962bc3a75990aed4d64e61d1e307480868721564447c8b1d69ad85ea12cbfb1f1f16264d1ff6123db9f2e867f777072f89efa918652550a4197029ee95ca0b8b4b1397a09af8d0cd30ac7ae1907218c78460cf24c5e21d10e50458e8ea1f6c47b2eb139a55bb3435d7d11f4c4572d01f033a032433271ba8b353aa7f52c071d46dc2516ed8a3719ddf0ce5b7d5b398c39e049c7e37ce1c632d663e164cac17a3f78ea3bf2308538f28eca1788adfbf8bc2de5a5ceb8fac13b722a3c773e3c5649633db1490f0a75b1745c77308f1f53bbaaa6fa2636fe484fe8bfad7ac7074ef4cdcf7749efc1518f63b4699d6d2a099d639e93b63b5be3f95ce460942408be0bdde7fda7e3761540b177a0dc2b28f098fe2ce414ac7974dfdaa7e8a7f116a29fa35bad5e6479bd26bb099e69742c8d351e14b83db8ef72230f5592621a5ad96f9f87810b257b2af0cf7022d2b374facdafd02dd5ab8e4901f518537e05bb1dc711498b0ed8065565eddb14c764b497cb2a64644c778c8e472ec9916eed81e0644e45be1269f136f2061efaf6c0aa31968e37416512c28e87a055b50478dc6e069af398b9d34c383eac49a56163a5e527734eb4eaf2bdecbd3a50b45c9a079040cf8d912918dc79d9b3fa52e5954e38d69797c9226a95b3ea6d9870a2937c8c72266b36d4e8987450dcb5a881efeb47eda960bd2a13f78bf775fe8b8c7f3c3f605942bf8e0052bd26c723a2b27e1f7e05aa085af6eb1f45caca4ca3b11f8c641f7d3224a4049a95490d283175dd18a81b28b00e20850a9d9ac03fbf78bf1426a102af925f427d69d19847074095e302fdf4c3cad48e74ab54d77f9ed5fea8661b10ebe7ec92bbea5964230e7a6bca0000548e5beffe68d34dbe96e276f954a65e8f5a07961bd2b9094f5c4fa6e2d52ff24700b20624ce06e981c35010c70979c66ef0b3ee590007bf94832c66da5873bd600d014503289c79ff82b0a7ed4fe33599933de386e399f73f919a1443f61adc2e907fc57cb6511e0a077af2e3fd0cd8fd59d7bf50fa894985641e1ce68f41ce3e40cabbdf7545470c65789905bf3de4f74f58bc31a3d85053db9c8d2870adc97bbfc979e4946a7b912a4e5062738c0ef75451b128be31784be4310089288bd01a8a4e310b49317f211ebb09455b106c6425577a8dc909b8458f85b2095da99fb7908c275651a910cec12885b10168a3606cdfa01bd9653d1d679014030c3d518deed1d70d367b8d13b56bf83ba533f3dbd0e4c7bec1e06e7e42f61c4959d083dd8cbffbb35f6482b5b821f94bd0b8f08935b6a35eb972f8e859e4dc2b98e95dba49054714c49a4856cb2c879f02f710ca7e0c918304c112d89c60ce604318bd5d085473041eca8b8a735e1dd08639015c48e4996ea4bac23de37054f19cf1477b5172df1cf8815db06b63db9625a1e8362c6cfaf8565e4f54159dcfec0aa6b7480c7e0db4288b7b09d5f65f5f96175c08f6414e3aacd338489e464710c633dca6374d97ba8be3ca410d6e7e2519d88b6a2b17c0b6fd112868da9496bf7c722753f7c67f364a387c752215625e697a0b76f812286375bf988d2a53cadba533cc88a8ec1134154713df816e55e9a500bef4d2e019e32e05758b9fa630488b0cafcd33ce0de7c93154473ec7a5338feb5fdf30697b5391b9d94fd68275d2e5d248cd27784a3816c85c7618bd75ebfe001cff5035b0687dabb1a22c1efe26d342d05a50c05d0b19999a8dcd7fd3331584cb5ec393068885e2f1a3531ae99322047ccc145e713f6d9abf51a3378fc359547f4f0fc895e17db169adc3b34609b38b46f3ed8c886868f5d2440537b590665f83964726a53229682d9610e51183671b7737dc6bf22c8cc535c0f43a78b6f1da7986b450f46e9ed60d6f8eb08d6588e24a0ac420b9d8d19b35d9a6bff18f008f4d1a304e523630e7181b487df67613f4ea2acb9232a1347c3eccded4108f42f320ccd80a7239296053e036137cd178f757a1a3d619692488a8e4dac79f69b8797afc626a6d6d099cde77d6d4564b4fbaa7a6d31d53afe588b2156fe8e2595f394fb8da3d7886f472d1ea695a8331de4344f6dcf2681843ea109a0589e5e76c00c69b9f437f8d5d5f5feb9225928729bbe6586f4c86a0d43de7f562815e4d82f78793be954eff2d3dcaf6ef6559b3cfea4e002e8c533b46f65fc8d070b72c11cc602d54a088ef588b49eb4818efe66ec929efa6285109c45921ff62e34326a77bfbfa2d193e934e5ca911fc77c02d8184381a8092d92902b8185b701310374d012a8483546a0ceed83d0bfc6bbe15aa86bb77762e41dd81787fe082d5e3b77f343e61f842dd28587cbab04b14f26594a0658b59a158fd9124b2f91f5e4dc267ff3921e523379f26b53fb98326b3d723add74a89ae003d8214119714b3e78bee4548f81c38bc60253aea35b100bdc7ddd2d7785c920ea90222b350b358a6050be49e22cc9da49ce11b4aa9bde471efeffd351e3b1ab4d209572cf22a2e653f8edcdffd3aa10ffb2a616b1c75058d3db94b19fb9fd45fe858d096e7902fa68059e60970cd2c63031805d8a4dd1e4b7a39e917e63ee772459245661747c23643670fb7131a4aaa5550b2ba8edada242edb14cfb498bf22e1af212e4787bdad88babd2ac1f656eb58f3e18c196898583de7625847bd395e6ed437d5c772e835f519d283a15547364d0b3054bb89ac6ed9a2dea785d3bcd2ab9ae1cd788f18813b7c64cbcd660d0fe11b9d1d8c01c44b11d700200d47eeae1f290ed8b2e3a8372417edb4f2020e3e1039f72a3426b1564c472805a99950faf578c76a8424c99ae958364f1799e01e748d4912a3857f34631fba1f443667de9a5fbec740dc9c94a213282cf79f0195345857d31c06b3bc2e8e01ab7794fd6de978ea3d2e0fe807511138313e8be2ace48aa490c0d24c8e678b28759c7cba5cac75acc3f3712425c160d00ec2a16507ca6246c385f10e6723da3b4e0420c2b7f155303683129ba73b422490d05edce4da0a086b00027f262dde628fef484a426eee32b356145635501d3f82e61500b59f2e51f78b7ed0cfa4dfad07e0c0dde9478fc1dd822e1c3dae4db3bb8d5416e52ab07bb4dd5453fd6159270086dac2cd5bd091ccce92012e5d2c8e51a8f49af150be8b6bce08c2be2e560680380f795ef7b69683c52bb8ea4986ca7994239743387ab73e007dcdcc3797a204edb64e16ef17eb6996c47c2f76107249b8b7cb6622656e16eb61ef37ecc2483276a857d4ea3a34315bfe58545bee9ceff2a4362b6c30b16330daefdd579be7185e4071470d2dde359dd2d2de7bedb974356a1467376ad01228aefd50c374c7e375d9049a840e7cd3aaa7bcd9554b5e0bbefd1f0b856a97790d0a7eba1b4e4f6cacc11816b31e1d251e593c58cc3b314b87a034ea5c5a0bb8b1c893be002b7377e1740c927eb05c99bbc1a9d1538c133d704862bf2bcd1befcd73fe953daa5df4479b1ac00e71a2b197374f940b845a931c563a0b14b59d0d4d4ec9d26e9fb4beff28095a5f09398f303f57270df677cfbc527e92fc13f79baa500b9505e858f6f925f32bbaf58f7be3ff1850d3c7eaeed7b3bea9d84d1a45eb59d45e6bab42835c35202235f76595bbd9fd608801caa4250f23da10827429b488d450e2f62afee159925e9762b23e3e94068f1142db6c88ef9517944603c063eb8cad2ca45cebaccdeec8176096d2640cd1c4adca934864fc75d1a8b3c8047ad13d07cdc9008efaecf39442c61505a9b49ad53ac4303113192e8195951ce02a3202448a1e79bb3a89acc1c5601fe273059653377cba512659bddce44680e51cde3bfa7c91e8c8a1730fbfa3864eae62acf7fa7c9eaf9ecc3ea04f0145504bb6ed1b4bcdbe762725ac024a7d134f6c997194972c13e61097921019d9f6750a017f0f18502449be287151077d6a69057a0c978c072e74a4e7bf0ac7096270234a82ca57e38eb93a863a4575fa74265bc563ffe188548fca15fd05fff46933254569f8888cced6c5a9bc2b5182d457538d4bd80a68f42e52d78c4c8092af721a920e003fd2d6902324165f0a4522271ec3315a7658f73ca7efc3ea94bdea1529a8ad020c0fd539703d912fce4536096e4dac00e7ab52e4337fe8b042796fcf0663d3a469e2ee6e575d3e1f62fef4ce1757a76cf836cde7984403d9fdc212742e7af1f14d1f5a0b657fabde0cd636bfc1b16aed225850c02d0334f5018ad2f289d1b1579a6478766037912c703e518f7c13c3aff89db2250e49c20ad10b95b160131bc14a71e79734e6d4015838c6536ff16ce50298a30c36024c9954530b97faa9384af0145ab07eab15a48325ede733c86fe39c8a32de23df4e8384b9c99a323c2549f49b10c6af3fe60c8830b83e088449612dab10dbfaa1b926d6d4c72425fe2e17018d242699b2c31518311ef9bc92cc0c7596ca98e02efbedb2a292f923680bf3c9defacb4a91884baf5e087bf3069e0f16386856c518f7e2344da7b9322515ac288fff85e41250477261e790a426929cc8e9f25ce3352d06b199c7b5041c11329392e3c414460f0de42681ae4d6476865d2552717a75ada2a47f63e1844b562a551f4d6c8e8b7b38b898c8c27971fbd18082aa048e6ec7e11114015882b2d73e0545c210b80a492c475b80247af240f7b3c1a83e11983917c4902a5aa38dbefccbd93b8bb19b65752bb6ca85cba8bb3c2a542cb2f2221e55587fb39a243ffde85e7f1c1123f69613b1af294ebe67daaa4cace052107f520d5368e1d3f186ec8fa2f0d660f97fd27b3f07fa932585760d85b62f5fc633e979e3445020c54bd1231356bf311acc8fb6ee5ee9c1bfccaebd69c0a513e05921a7652c89c8580690e4631059e52bef66bc8469ffaa007fb790884907a274e661652d04293a7517af80731191d4024b7a3d1041c6512a5a07b3cc1a3373489cea1570aa9d3d003df1a21b94e1b0952878c2bb504ec17447fd57b638d5b87f40283b7d781e18ac759684646a502a4610cbb8dd9f600f225c29f8a640b56073f3cb92eea303480decff63d8706a280bdf302a51c0de6295e59a486332ada28324c78c6a93a6e9d4e74ac14539abdabca940938794c46a91e533ea066ae5dbe2853a048c11f31c3d7028274a7d49ab890574ccc27662d8c873e92b1f96127e3cb74732f3a5b7f7b92112977c898af117a864a925e7a62fe1809b1e8898fbac6806c82666a1f32ff73876981fe4d21da75500f98392798c30738113af362eb7e6f2b573146eb91e2dc1e058eb2dce6fd57741c0c5d47d483badda50fc1936c306d7168fe6697b814bcf20ab4383629f747e06fec4a27a704b7cd322dec5d733f56e1f3eb44868f3e90ca291c73117ca70eed50ab5e187b83bb66513d9294f0384ec463a44216604cef9076f497bc2f8d732c998b9290479bbf7a5aab7f74887db7c601a7f4f31694e4bd1a9019efa91639a1a226b83aa2b44cd274c197fa2f0c495330d1d07cda8c19310770ac65f5877758a1860ad8057353e630c7a27d211435748619954bd0c2f97e42c2f01db7c5f5d143eaee1363d0382d795a205f614e825e7b2142b976f50a69f9057f3d9ed18f0d7d497820e18e4e3ae15aa7b6826cefb45076beaf1a74284ad3f171dfe8228510cd34f651880eb69fc7a52166ed3e7de359241dab7b7f111afaf84d6ae703e9bba61a2690a0d108b6de5d810df3d6c8a226091d86901fec8e428e62aeddeabc658302f2dbcc8a710d30a05ceba386282817bf562da56e8b817f0c55c8659c18c1a2ac1486a64c7c1c133cc17a9260afb7237a17f6bccb2fd329f1c13e3e2ee9bd8279ee88da4647688fc641040b74cc8d517561f5692a8fad03cd0218755f7c5098c1387931d576e33ed7d6d3e59da8cb44c8ef75a149f8eefc78ee744cf45bb8276995ecf3f639756b04af7ff85c8f0ecf79454f9753c07c14c363b9186c8d1876fb0185172f6f4e6a7c7b154bb761d53d59c5706a62e4dfee8895978dc853753df238350242a3ac3e3b783ad7537d3b9b9bd2cbcd0c162ae41d084e174cff5c60001a49ac62e776c82eaf18bc834c7aa15742ce49b8a577c880af9b4999e5c4f5e6b0d45c77b83ed7ad5283486513c1f59868ddc9e6f4b8d13b1d240fd0e60ef23571d93c709cb13f8d8be42a2b92b69d6b1c81cf6de7fdf71744e962761fdb28e177656d98e4d56056ca288f351da5e1e6ce710ea5b8237fbb04a35490728e2f87767832cc944514c08a219869a64ac84909bac76e3d3a68a4a3d1f6b346af561c5b466474e9b646455a6d281f2d4c9dfc0ecde583551a7dab423b42d3e8417f51c25847345922c8ab781b110e023f313a990138926c70aabbbe871d32c4e6fd8a2db34b148ab1d95aa6023e6eee66205ff91435f76e2524174bc9cc01a7b6284947d6cc110a8d5fc8d32c4f08b5fc3477edc13c45256534b946b05f24b222d8db79a12f8786121e4a5884f2d822368e211b473fdd72cc8d07e39e21194e96145b2f6705b5d50bff98a1201f69f08d9e200cb8e0f87cd987a0e9905903363d9ce19b1e040a8009ad1a5939cbff9465c03338931df02a105f8285146e7e9fe44ef4c7d7dfb45ea963d3edb7351123852c2b220040161adcae5737f74ecd3c3dbad202c01902862d396b974b48d94153701ade8ff3106ac04a89f520f68ab72d838c1b912c5feb0f3a2f34d8597f3f4143260480acd9418f71b05c7130559e1a76876db20030536251d8298eaf2e6df14da7cb022b190f04e0821cddd50339ea1c38ea72b9b095d0ec60370fbe0f7d5b6e782ff3a849e1506f17bda45d1068864e57a7ec60bea2f64306a8c806b27c7a6874932ee10476f10457a589956674ef84ba12386d31b929693d9459f20f62a8bf6dd54b1669b102655d05ea6bf9f8bb7cdc85ba2c5443c0ea05be3dde89419998d759960d3561a75e01b97c650ab16b19228cd981869042589928088eed355adffeed72f9cd18f24fdf895db6a4c661e701ba32a7144a056ff43c26daf925cce1e3eee0eede300628e9934b1b823c26ccd387ddab0f507e7acb7a2f1955fdac484e8079e9952f7a74bc3711e6bcc78680fdc2b3b412b28cc6212bb5b981a75d0e65f3c091fcfc11d41e6437d101becbe25a9dca0c85cffc0bc52581ca72fe939cf55204a267692c2dce9e7139958717214462cc4b8c91c42cd84af31788fc62324120a8c4e6f9654a87f4927fd102d097239ff5ed26ed8d15f3b9d4ddd7109bf4b1e155bba4ebfe3c732dec76e2ffe9b7d30c29c76401dbe60fc1484c3ea97e4f35546cf2c636355a0b49903ae61c5b51d166cd5060c2b94b9430464bc18b582ff951915296654ea2c4970983b8512caaadcf76ab917f20b3a5d426f1a219962be10537f211d32422a7c0cd90cefaf304c451dc01055d2d7dc3095274a733f4fa37185f01a9eabf5bc1d225184129ef366c130940f6856ab5b8e018ff4c6c62846092f23663127e5e4002de8362217eaed9b96266c2b150a8c6ecde45e14fff16c00984aa43aec9fe4c37464091431ac11a0d31ee8dc414d3ab663914204edeedc29a5bcdeaae85e03b9c4e8f1167272aeb7d4cbd906762243df5d8b6b233b9421f0ecc7037024983f73be0e1fa7752eb9becfc7519b2b7010dbb549012e45a532200d1e777196aef9e0c293cb355dfb9a04321a209a98ea65aa894f0603bdf0854f603ef75da0deb45369b372bcc421c301ce5bdf172053c9de9ec1cbbda279b46553fdcb568aa3fb1017fb15e138be9f9dac2348c742976407646f167e4e0a55db0f8daea4bcdccfb5f4be516d34953bc2dd38b042192a7cd6785437f3d98e6f23b46964b94220e985cea10fc7a1c9c951de113ef9bebdc211b7d1c2b602ce1930c2d391e5c0fe46e80278790ea9d18f68e56ee311d67ff13d6c0915c26a2e1a98cca82e5d904c22aaafb8c42854576b745e584d7084f5392533f5a838b82ad24955d2652d1eff60a24869e2731783656b9d1421dd27eb61091448827764acb3b71ff5052a2d17221e8a5076f7709fee75ad161ac8a1299e7663d5aca1b10fa78540eee143b3891a726e9aaa32fd705e8d212d4912c5892c1a66eaff5aefbf5c4d77892025cf0844844152551f4292c54729c21b09d0e6b304835371c21c5420d6dcba982ac07ba86606f54b5e61cb01a3d9847f6146448d231254ae603a4c6b5c1c95df17e3ad7a781ea575d2a2e9cacaf70b826665a6dca1e3f29a1b009eb0bc099a117d3d0422a9bfb34706e64fd3ba9a10d955f0d30f8284041ae5bf1f0b3c06a95bc8b5a693565cc74ccb678e5dbe3efd6c09585e7c0e80fa886455eb8e1ff434b49de779cf1c75eb58c2cf96485aad72db2025009154911a47b1a4acb844a232bfa946e2c006f1e08c405a0ce1901e7cb0475d10883697739737e0f10393729d96a2f55f0aeadddad7f32d1d2513a5d4644ee3a269fce22b2d52eb18a0b49b65db69fa0cd02bc9189feb502c5bf6457c0d7e00198629f9134eba9718877100325a962869ebb0b02f35ac93912be01aca74aa0bc11137d940c27a2dec4252c8dd9db879057c5be26f9621248ae7e41beec8f29d5ac9b696786596be7355725a25b7a540702e8a68f599d65e941e744b051efd2110e526f4c484a3a4505558a4f42f52008c0615afe324d13fb933021c9f2c7ef5bb97f44aa5132888b360e8558eeb1e1d0d6f238bba83b7a771c64c626a2133c7a9c5c174b45d0b024a71be1e59d2e056dbf0e41c3d65ad8b8ff6d0687b67f570f1259bae0c1a639e6fa8a63f29269df93e9b3d53f31446dfec38d1d414c3ef50002e2ac249c35203d3180ae4174429ac1bdf2d6e568ac34f532c0057aa4dc200b40a48bf365d90d2ed8faaccef59461bec2450d8f081032cb015ae995475b32bc2e25aef2102e2eccbb53c93b6b8c4b9ff8c5a9058813c139e7b323982454733edbbdb9f4cb90f6e042e6cf06a2a09ed30b82cdfda7d6acdcd13f38084ef13ce11432ae9124d6a8c54a9278deff85b55556df2d48b4b71827ae2b431ca6dae014a7c50dc1e0e7f10a62deb7b6fbab8baa5f73b8e9a393083bd8f4f04955338edf8cc15d83430f70046dd66f53320d5a085e875f18c27c0dfae0d0ea943082a24e7860051c208ac903e6fec94ca4d84b25d5c6ea188163bc2a03214c79456867d7f8d784b2bc4e5a18d4852055ff548e8cab6a6055ea03547352c1866f8d590550d2835ce4d543d75bf10915f869090e366e77f8e88154863d6cb8673121c0b314c7dbf9ab2ffcc41bb4362b97079cb4eed5f9cf174ebf7837746af976987c99cf1520aa74467cea61ad062b70adcf93632a708a31b81e250e2e191d1d7b4b0b94da7225ba6fca4a3e01b471d4778c33fd417ebfd7321f47e196140498a966d60bffe476ee42af480b9451a441385c015fb026930ede8a980b8034c1f06bbb67bdc3bb40933232cabd4f8de683f5cfa572eb11f7d929d295d3b7a9f7fdedd0130dacc0d8d0cb19d0c3188c98f80b665f96e7815b064ac04e1581ace9544847586f1ca657211bd942660c9e1188e2231b0dca0d8388857b7c4ba73246d5c50325558ca64df0f618a6e75e77a5cd8260311ccb59bc8a7d4a3a41d15137c690e0ca6840fe0082fa93ed228f2748c5ad3e159ff2e314cc4ec651903a67dea33a20942366fa77b65a1a821f3cd029ccdfec4193c005ce10d7efe9471b9a4d99dc6b602b8413dfd0a124e57b11d6beb5adbd5ca72788f5fc3c9e4eb6a8f890566ffe89270fb145dff2a7dc545320431efee5de658cb0e77098a0440d0faaab09916a0846b1cd35338e75558122e699d8b35382a617cc56ffe8bc1a2c18793d1137ce6690b26bd2a23ed06dd0b560909f599f18b446ded67bffb0325c0f7489ebee4816f5f6680d8d595a879cb74365fbf23c772d9bd2a52813392d45cb8cd4aa9b2cb472f93609ebd70dcca50e98bb3e1714967f536a87206396f1c22c8127452e78aa361a7bafbacfbc74504609dbc3cc3595a595e75932f97159a53351d61a1b37993f66f094fc31375a706cb7335c20dd008c93d04b1ac3a51d55f7f09c3748690aa3a1be1e313c7e70fac74415ff84d327630850f1a2a769144e65fe8c0f4d9e2fe943c5556a87143f74de2c291677607e2d677e94041c7bca666230fdfbe2a0007923596036cd95a00a020d6fee7fdaa273ee000dda65bd92d7ec1d8de030a604165e9246bf5e56c3e89b62bbe85a8da10292a5e9e8a7f76e2b240378bbd171c778a30d64093de8bb36a1ba3116774dab13baa0346895fa7e48b804b40ea19483d5820150091e25db895e447449122eb542a12fd7b091a10efcc1f584f40ec69062b7c98720ac8fc357626cebb3f73dc9c5f7712d01769f71a98c85a9a96f2ea63f06d23320d78352408136fb95018dc2721244c561db627442dc8e7988e268adc103fc33ae1982f5095d31f7146aab5e96f1279854b2bdee64311d95f8b2e3dbbd1fc5ef0a499388a45cd65b5625a0acf7af6f091453d656fc652e750f59a4aea37795900e5eb2d41ab0391c8d53c6f071382dc58203867ab2f4b93b5b9a72ae100b5708ab5f42e8800eaf90a2a79c119a765e7c6b6d7d4291a7134833fbe0d3481b97c6ef60a0edced4e4f3bc6b92d0aa4d19beb7f6e208a7334bd2045eb3051ee1d15d56bf56cfae19096ebb00f7dc2cacb78b667124adba665169e90b220ad580df143975216837265071606695be31012f1903f581061cddc4e0d1a0688de12d1b49b4681db20d885b1e4b0f4471173edaa516ba73b631eab770911a2dbed6f5ffff1aa7b8abb113a97ed336eeeaec264a00818dacd62b5ad236c43c4b60deff6d96bf5b79e442dac3dc51fc7a83a4423a38327d9010c99bd3b215b31442725a283ddd3569f0eeaa880fc2286eec9c9445d693fd726fb54f2bdfd8175062589057949941bd354d540b83064e31d3742a84df501630bd512fe686baf41ee7d1cfad244aa812e77cd6bdefcdaa544da54c26161eb056d437bc865b1934696278082ea08b20cb5a939e89fd58996e2f4e0756d8eff3434f0276a8cfbc064b6d23149361a6f53e5feb94b223e8bf72281a6dd4632d067564e94df162b16249bbd752382a41d764875b0faac82e5798cd9511994594582d5c10ec954f2f2179dea741f47037795d5cc5be1cd73818ed08a92cb615efe67602435f2c4fc8675987a43951a8f016123477efdedf721ffd00c3ec67f69e94fca09d77cf9e795fe9cbb540a491fddbd8a08ad289107d4b7aa591470667e8b0edabcb752d1ac0a625c04600c1bf5021ee63fb7aed48a9e12c4c3219ad08cc6136bdc757b60c6087748d47224c10ee53e467179fa152b72e96bf8c4acffaa6240113dd6307594fad7fe7baab978f5e13f494337ff668d82bd7cf8071c15d60804ad7355653615dbbf31481d1b2fa8c8fe540853c4a7c5b3895d1cbb484d4e7ac28866e03559beb6d62752750bd8ce2e8ab900e44af09cb207e4582f8442926c876df860432a9b6f128cd48b7f81117ca75e8dca698d85dd2206937a89fa80aba4cc37f7360d6768674965064d57e2f640b80fd2309fb7da91d93977ef6a35ba007168d34401eb765f7533afc8dbabd514e5fd364cc5497e63d0981e14c995b09419b0bf290724ea0e2f9cbb7e89d343995e20d71a0569c7dabfb6430f35c97e0062bc8dfac54c0d34d17f8dd20f9dce04cd463a570ea478c79d20616a9851716074e87588dd3dc7b1103bc50d7cded84ca235a93242667b112604a961572fca799c0a002830db5a6505865c7bfb4eb20af02d8b140ca31ff7a737d75f3349e64fa41c88eceb51e5c6fd99c7fca1dcfe21dce95758c04d33f1efb664800724e21649ac679e143e890f685a47cdf4201e2b694d96c371dbcf565f320221572dff90fc54b56dc56ab21f75635b05c08f85f6e12fac91b6af9a369ea996e932c07711d0662dda2ead25c6b9258ca9202a3970fbf3afdecd61f0c64d9d53607b39065beecd8b1919bd2d4c85ea0bd8b49aa3229fac90607aa14a417368077441be1c472c46a94d7ce184b4818e5c1e1b99da69c9c9d245d7a543305396cfa002c32b23a966e98375dba1d41d897401dd68b8d5771ab84ace4db9aa81fe3ccf133359059124c32855298fcd243f6480511081a613c122d91b49ab6df4c10e711dad23eeab8209697fc5aea812574ad5d695f1f05fe32a59ccddfcf1e51f39576a5888f3f5b0d2703caa704c2b67cd08e4824a32f831ed81a0e301a415141dce50ae149a2d27d767fecf2e48e81ee62d86f0ef7872a4553e7165a4fc09c2b54bc040ae56928a93e87d17e35a58b8995ffb2286022409f81439eb2e806fcbfb663ffe2fc0e9d3c391119d53f7f74e6e075899101851614571395c816b70d465eacb6e0e286d01610236eff441872d91ff5ad2c87505995c08cb9ad38745122b89540f5e65c70a44d5efb1b643cec8accd645cacf42390e38de17a5a18d7063ebfe945af8b3f95f9411e47cf8f467feedd471de0b7bb826ddae352c24d94c151c69766a3d1a7f8de1029b94a1f768278a36deb18059abfb4beae7f88418dae3db3c39f4351b4979b359ec28e9df8763468ba5a29e5e624cbe805a2328a2e4b3531170499ebb283eb3e6dce07ab16d29b60ab100011c14c36cb52538cc638f05b902e32546fbd6529710bf2f35660f88d6ac57e5958b72baac87182b5149f4d474a33e492e7f06fae167ff21a5c7b0d70e967124d86cf832943a921e35ec2e170b1053de47bd112703b0cea3ab47ae8d2de8267fdad92527ed7ab5d0759eb6ec391edc7a0e8cb28d3334784c9e82837775ee7dee1d778f8f41268fc93b9b0209b7357ed686b12ffc82c70179f7f81a271d24becf6050bee7ab8d4aded45aca491d4894096e61cf988329ab87efe5dd6233ca6780e6204e54cdc32a0b7a2ef2fe0291260f0a63dfe3e973e3748101e7d6ac22cc418652deaa8afe80705dfac0e356373f0461f4ab6003f757a353882fa77300f7f80d02e95713390692263e9cc8852bd63b9f1c084e024166806a27f5bb022189e9d685883ca660423217b1a64ae62aba3555c0244a5a5b83931ab9fd1a62e8f90fb0aac8c31b289286035f20103057d23857cd5bc1ae0b06a372d5b15309dab1cad4f29fba5aca32c33339131c39a43c8d03e8295fb9dfbcd558a55ede7a724138adca5074f10a989afcb2c683f601ad7fd9e223df01f91c80b219aa1f7c4dba188d954ce6a9cfe3b3535ac19bc003f39780cb1544c8ad921e68a8f39c91de20df726af85c9acc754acb88844a622d9e70595dc19c3cfda19a431539fecafdb3389ee647b17a652d51a011fe9a96b663f904765140690f46e4fcb6df96d4dee9f56884e06701c5a08df0b4b14b7d99c319e6b22011238ef2572b96a678160f0ecb6efdfbdf060ea52ce5af56f04540b794ef82d7471605e221cdbd10f6a61b09c6bf1ffd598ba151e71f29528ea1fa08f4d19a09b49b860b134dacff580f6aad04f4b7eaf8d8527418f9ee88a305302ce6af2ef0a2a7ae46f5240632ad12581f3c01b12f5c3e36244316130fe41d8a8f3f8c83a54804c0c9a10c5198c7e694a927ce76e4e733088696f75e76ca2c653a9ca755197035fba7c88dbafc2ef2808378a23d2fd1cc371f4a7b190901a78c911967d6a5e96e2804f0f50bfed1504f78c436031eec73032afa480e0257eac7dbd23bc40beb040d70b3202b173ace54c887acfd44b78dc6c4563518f027629ddc76cd45ede0a5e8b2bf058de12e38decfbcf6bb246b1285695f60a8b0d09502cadbf42f686bddd2e051400365cf784cf3d18cdae179556070a9b7340517a0a538c27326453585ed457f4562d3ccf2e6c2e8ad2a10a206872840fc93e2fd929d4db9a52210f93971aab01bbf04f9dfae38862d10becac93cf2c095f0b1ec77dd7c7fff7284c0ca1ae1ed018ad886b0e65725f4eadfb9e7cdc47849f7fde4efbd2600fc64f3725e43478fa77f19d15d3f4a79a4d074d70654624c01bbc72131f3b8b931804121911df499c74302913bb7e487457edc8b5e5a299ebf69914da34ea1a2540123024c03f87bfec89968cc6d121f5530f5f169eddb681e7a51c603154abd5b5a583318541c9e74b7429bdfaeaf2d0150eab186277bd7104f7b79e23ee7cd4c1234d12ad848f4319fb409cc90fe125e7a6032992a9ad3fe756a57e4f9b3b2e134713cae2e3d5a64128155c580286ce3db53eef7311f344d0c16e003b4efe1bc75e5545fc5ef7045e82114e5d16619e37516c3a9480d9a28cb8ec5b63d18bfe7e0f87e6d0ce2fa20ce0d6200a603759ae9d69a19c03eb330f8c69b00f206a82c33f2a4e2032ca0117472939aa31dac50936dea3c3bbebda3edfb358b963b68e2f266326179b4023ad2aa5948366e29bcee005248896fe6a67319bfb48df4b376b2498107aa30728c2dcedf279bcbc3fb19a27dfe1ce946da05347570585bc88293cd3caf3690a78a55ce40f80a92ac9653fe96d19fc16538a680f2d36d70dc8c5a520c89c8696d1eac37aac9923695d3f2bc2694ffed04aff617b20b2e0a614788de4790e5967c7f0bdd7fc44db65461fbacfd78fe7583b2a420f358edc6b628480b7eda81ab25fb14718fc98894f8565586cb6f26b2e79836f7109523ec2ab0afa55661f168271ad59cac0a5fbab8301627abed690b6ec6dbdd645f972dd4f0dc9f54a7c6733e511d92e772d31c21f6a622becea5b5757874713a76e66dde2ad8c596465831fd960dedd458047703c06bb6f0d217121a2b675c15bdca58c9d1323a428c0d0ec112de09c3587580fb7f507009044a77315f96492fb6c343f36a0904166c2b5d22124121dc644127ce0728563aebd320e0778894a664d0c308fef94f9d6f3d8c669f12e71802607139dc54916a88a2943d8f46e68c81a15bdd455096b3d01d8082ba95321ab51d1b16cc9909ed00d746ab8625a4c2ddb43c950318f3dab486904e9a0090b6394d072bb55138bd09842470b416c4365b5eb7b0116efa821c2866696caabbbbf80ce36c8436440c56db90fca0e5e7138bc71442d9596b837ad4f50c96a3ac18800d8d900da287e383bb859a4038d70d9546fe00f8715cf12c29af2cc3310733b5e2b2ff09be04819aca6679728cd83b0f26870db86927a4bb594aa52819f8164cfcf11347dca90cb829b5f02240f022e595ca22cbd5a43400672a22e2c62a281bc732f91a0baba819fe553b770a35a1ccad061f793e322b5b7025c1a33cbf999119f367a18ff0765016d2d1ee64690c2f0ab21263aabc470e7411a72fca2fc69f7063c6fda5a8b01a749fd7a6a18ecc071897ef091bfbde949525c25719db3fc261aa1aff5b9727ad7af917ba6259caef8ff5d422ba6f5564ebc0861c8c9a3536b9e4d99baa8c2b856ebda981da9b786d4c76d014c12d2e1ef6d1e85a62f03f9faa856e75ccf1f6b637c282346414a9b1e9fd7e824751d33f41dedd4fad5b17f01283f58755085acc3dfa5dd2b289caf138e1fd6292c0e3a2dc864fa6a172277116dd021222f6eb77197973e052255523ee8ff97eb45367999bfc7940cc05f952f11d4a895f607e28a263a6566c4ea314b8e2efdbd51ec627b87d66d1eebfd2ad860816755e6b7e84cbe848b510c00e95d4efeac18ec1a689d9a9e46514d4d8c9cedc05692cb698acf470505a6c02296c89b1dca070807127a3da4b5e1986d2382556a8e7f0aa0e72a7d463bebf24ad6609ab1742a58422b598137efecd83a978a68021b5f0f79315756ea66f83d984396749cc6d1fdccc3f058409540527c21cb45ec8049560614db912a73601b8685048d14c64ded00ff6927c276f05eda06785f2ba80acf74a07f31db7167e067ea9f051d247f2dc6fa2098de3f156e93ef2e1484ec5fc58264821910082520590daed5709054b9dd3dc030d5d53c6f69e1111740e6eebefbf35fd11ee29fcf7d52c21134b7c44adf1d6deede86c6458f3aa55f399c4e1c04c15957162a756016045d873e0ece7b0c38d25efecb7a83cf7826e9b2172341eed66e939b6e579259dfda51d845cf53ed812b166ee2c55fa8dd8270ee60071a75927d51c3337e63b85ea4a79c2c29d2ce5ebdf4ef705afd9499482b2031d58bddb4c6ea7f2cb0914fbe5f6f969798e555845f07b0d5367f6c78aee085c24fe11c2f073f9cc0c4f4d704103869043fbf09df59897948aee1e658e8565d601143528afbaf928f843fe497753e8565275a87f7b1a9fbfd254313ed7fd0250489b5b3930b85407d1585dd3d8fada0b197d47796244283d6093738ae43c5df3ecd5245920903a81bac739f4411a5771cdc76222eea6591ced141dc5445cae8af1fcbf70beb650ca7f7fa6cfdd0b55f3a135dad7721e0062e5adeefea303cd303493173d13134d4bedbcd43a70c36652f1ac1f0b2c89990ec082a19ace51c123a070313f0adc2888391c89dad835ea1a0f2b936da0c125e184725836d863db2e998d07325ee4369e26467c04ced3d18fa3f2f2818849da84decbab55d13baa5a92992fa5a3230a55a2738244c01cf1c656648815bda18032ed0cfad69c4f99b3bac2c2747aa61c50fb6dc6a14828c178bc13f6b57a0eb18cfb6a7b7bec8a5f045d822df1d2c5ac05b84e85b69bdb53e9300222d1fbe4884fa251cc1f5d3b10e4da4bf0d4937d38121c2847a670823739bab15c53d7345b7723f37532b48b5f6687ef747f0c3e5308f0274937fc34d07ec2ab0a5fa4e684e0a0f9dff83fbd1885e50a20f7ee53e95595301a84ed8218771603f03f1ae26663dd0d63c72726da235152abf444b43f0157e7da5d9b0570c4e20ff637d9b9d4a49454e1e80a91828f05ff53494882b8017c6bcfa50f455adbd925cfd913f45a6fe792ec97eba625a2b99105c5b288df6fe8e7cf3dd435e8d364f4d02316c84fbb84c6a71cfd5ecaaba7a1c4b3450ba8183f6d3b680e15b25fdbde8babe28623a584f2018d703f52385875243e855c890a9e75358e95ede22914861fda531466193d65316750784c270d8a04246566ec25b7242b7112a14e14f2c0a0dd515fd03e722ea0c0f2b412a00534c8e96aa76c2e07a4e4f72d963f516ae7059cc6ac2565f6ceb472704286c1bf57d239c361d394f8a29801625b7f27ceae2ba479947518633bff5db042887376df01dc14f61d2bfd2b8602e908f340b86c1e2d928e83c500a22f5ead92801274ca3a9d0644486f90019fcea083ce5a5137492494b00a78531362e7e9853c0c5e72887a62626ebd68e2d632d1177ec12762edeec15d34e80c9559f67770ef4611a3b30b1b43465982e15bc36c0ac7766bce409dc886d888c80504e0db11836c0593135837a6a6a568cc296d28c4c962ec0d489c7d738ae602756ac87cd64feb07148e9acca9ab146ddfee7fe6d4b32184e2745f74ccaeafbd1e37122b37d7461139b2b3fe42e880b3a8080482a5290e879b92ee46a2390a903782baec1a212ec430ad257b5deb8ca26fec5d1d153b6d901f2b79e0470f45af79fbd78315c0248fe703fda1dee9efaedc9cf4e57e703f1600e643b400322bbd0bce4bc165a7a25b7fa70df6cbe2202aba25469e2196f09e481825c2c0a29bf85f04ca9b1801e50d606f2ef0d0e1cae33780c5b17764db0d0adf84b916f5d3699c1d0b046db8ed4275d6ce55c4c21535e4e7f9be34617d5b39085cbf448976654386358d6485826a6ec55a5d2c55cc1324fcb5c4f8b4b38b50060461a66a9506a00eab01d12e553f4121f3099ba5d5c3d1b9b94e2a649782faa1c63e9418e4b5550df1f36135f1d112ee77cc099b2544341c92a44c79e5ff77e249bfdf6baa2a9617510c2164cd0c07a982943393ad1a90502d6fd8c0461434f60e1928f66abcea9f74346ab61352e4792a238e8a146493699aae6b363e2dcaeb129bcaac553c56c075860db0ef59137260b8b1be3d76c3197b36acf1b5d8ab1ae81806f4d236fc84dd19327f3efc5ba086886e0e3f429d8070d380f83b4568d4254d92dc84424efc53adf228471ca85e3b8f92f990f69e34460835ead90b945673f21771fb1417ed415a8e0584a6c09f7bbc974f839980075e3a0486b62d9c0f5277808be5e4a1772c065e71f629f0d94d52a03afe6518ee0f66e4f4c33329c1e6fed70a699538c6f3eaa7901626570d14c0add2afc235a8546242db0f9949c4e2e58cca6ecaf08fb3d69bd4e86a862d5d641c266eb22eab1a0e5e4b809e8e0d8395fc146bb8fd87a78f182c8f1b2a67d91e63abf8a83cbde0457dd83ac9a24b8ba4be8a8cd7aca122fa8f36a81d06da93f4750992c6fe05a2f2e428added7144c8349ebaa8bfc2b8a52eaae87c2e91bd721df2c545e9c9ddafa0a0c6b7fc194b2d6c85b2ac2127dc8c23112360aa0a30f5358f7fb2ba7c451f741505c8d19b3dcea7545bd7a1deaad20f1e82a216759cba522fa2a9af2ec368cd623db2b45a88a6a5015a5c185fe3278eb4d361148f2782556c9339d5dff05e91cf659bc26fbaf2f4d9a0104a514a0cdc5e29534aa88a62b91addf2f86634a4f61f44bcfe40f792d5ddf4f8481ce5227d09c46f29a55894e6c236250b27f8518e9b8cd1010f9ec7c47b461a93a15372b90c3808554d5ce7213da66ca7a4b332743176ed5a01088f1dbac594a2226b2c55779b9d2c0f2dfb794608586e4baae839986f2292685a951eca06fc0437b954ec8298a2644dc7ebc93e2e2bd623b840fec83994a6df30dae2e5139370c9014e5d4c0dd61443dbb5d771e4f9acfa40c68ba6c55317de7a8c37201384cbeaf37c1f14f6c92caaf7aed40ef29b3ae8feb722ff1eab0efd1d9fc6280338b57219c8a7568c614364089a3b78793569d639693d1b8af07d2c4477272b932e2c1d32124f3aae359eecbf87896f7adc5b4a6ac37f11a1d4c477f99caa60fe8d0673c1c32900cec7ff4c029f915983a90c797c2201f4bc4156e3a732aa2e8ba548028095d0249c8d39f292bb0256ea526008a6dd256e1a9d820129af9e09e26041a867ff6d2d35661a7f5cd0887b2f5fbe9ed091ed62705385d99671ef31e5301931340c681f352a895f3b687ed707e794307d9e29e305e2e8162bef84621002c1813624418b1afea2818d7c75bb85e2547ab355ef1f2292b70c2133e6db83530fbae2d2495ddea1224786de2a1986d4d0108eff608ff182723e8b89e38d5db71ff565f3390b706d7626603cd4d81ac408b3cb1964b9cfbfbd91c7333a555158eb7c69564d6bfc8bccf4c5c37ff547b1a3835fe090b4047c25d919e3358d97e5b523a0c20df6629d43164575822c4bf64931b087f4d4d5ffb2a9aae39a66f3920023d93df546b67c804318da75a5b458a1de4ffd92a4459ff727f7bca3e44ab565bcd86c3098542bd4b041e7a473470d657d14eed00a298af6594b4a0d35b58c15fe8a88ebd82186d914823c8685f8aabd0374f481e51c6417d159d5f27913f38aea4923b2412763f3cc718db496382d2c384e26470b25f7a0357cd796c60a516380bc8735de22c6fa3d1370dbf8da4a1d3ee371a0fa108c1612af9c565aeafef261db788d910d6f337025d5e9e337d8555b39cb580f3db44fd534db8515fa8bd98179cbb3987b2af2709b488888e3d008e60f1b43bc3b36317c5d09bde01a72eeab77ea794443ca8104f8364c7cc629e98cdc4f23ffdc03d4622fb0a701192a754a662ef8df769415889c3a1941b1040bc9fd7eae08fd6dba864af10b9f15d4bbe6e45a51ae32543c2963c23b0cacf39e21cb8c61efba7ac13b1890dd79c849c8ff3134bb883612db03d98d45d64a3a51d315e104e72944d12be2d938c2f16c96d68c0f840d77d0a7e314ad49d89eeacd7492a06ba5c79305d2d84c2715238d67e93c03b9429e7a856f61e8114af0692eb0c6addd441c2f0e4d2348de9c0a3f15b369016e78405cda7bca0fadf376067efe5a5bae20e7c0a64c0c5441da9f0ff17292481ecbe84084f8970dabb765510dc6aa5a6d750e75443c879e7348c3b51e71423a59474d272905eb5af36965e29b2d27d34bdf8c6fb94bea15bf6111db8d1b1e3d3493faee9d1086e44ecc37ae593a02f7003d89bf129b8fc3c730680a7cd5e93d44e35c2a8973b4bf6687ea754bf584caff24e65a4a1ebd770cd7ba30237036ed9c7e9c0ed66ec428f95527c16ba71a36209f4063df1e174002e525c9d705a4ec5ae6aea629ad82ca831b5060068196176576960de6436b94c81f9ab52d50a061bc54f4aa1aeb581b825b67d98deb83cf6504f247a8a5c2c89265b0b822cb5d18ed382867661d12dabda17982859f576ec888ff9f116d52b93074fc331f9702e692428d042d29c740dedf8f1974703dcefe673c0e275429e121f8c6070a5cb1d08cc408e3660d557d0dd54370c43c58c99a7cc4a48d58db86bd859309bce3e29432f100867926420cb7365b950446204128e626ee3fdd10fd45ca4e78da582f93d7694b7c33bfa888d663fcd95dc1bd9757a51c40ce7cd751885a421980951acab8e1daa82744778c395ecb0859342659e95fa76e467b26631bacf10aa97f6127b7c6f98d731f3519654b1ffea56991310a2c2eb586abe796981d8a56e4abf9dc75d4a7a357a862fab61724656a1e11e13611011c76438659e9b163f028e8d4d431d198d1b546523be4001e9060feee722c2e68cdb24a621ea2011234c377a4388e59bc75f3d39b6b5b7f16f1c25cb651bdac902f52b086ba9e80bd62ed011b1647ac35d28a87b72ea356b4d878e588722af181530da266a695131bc567837a2869f53fe805100c2b1771f1654735af3276bb2aec76b63b9825cb9744471d4654e2446fecfd12614cf2fbe47849caf18b68d57d3fa290ee7f0a76f0c3c135e8e12074b6ae3ac15d564fb8655cd75692b98062143da334bf778ea8d1dcb51504f44199f9b7db6d3a85285eb7255b9f3cae16a821943e6f5b067d3c30c26c01a2b62d04506e72462c3aed84b45ccaa37ceba09684f262185d1bf59a11d571feef16549bca23102bd053aed5038d5765b98c6bd8e412c1fbcb0832050734e29e841e19502f87a50ef4fac69a04ee80f7850604def4a50e3c4fe3247984e6b34bf21697b680fb1476cd39e6df52db0fa33d3b307b9fe01a973e40bee23d67f8ab84af3ec50336125cc12ea629a66f665ec03bf5be713caabcca2c00dafa2457824c74878206119953160d2ff71e9a967ab142e5ade85e1853c90fa8e5fa881df81f332d401fde400d458326b2318a8bde4e82e346e8f46bd901e572638b77e6261b6e7b6fb7a564f73f554598260d5f8e858367344b761bd933e1102bdecbf1e1b1063ec67f16e80dc34da2d34851d27e83218fa9502abe6ad04a2f45ee9bb41f30bfb17e5afe178c6c2f4311e9eac9befefbb13408050a581af719176e323f6df1e342bd72d3038ad7f786659530293ff4b48cc65712f4a9a631535f7444be3128674124c424525be7eb2b4e5dfc780fffcc3caf60bd63ca98d652159d406d1560e727eda1a97baec4918652da915eb23bc607a98d95fac4d22fc69ff187d9cd0141396435e7874ef2e849be29d191ea6d647c5d4d8a5a856673696325ef20fdcaa9b421b553136fa273ddb9fc568e1d7afe08ff091dd37654b3dec49271c986ee9082d6103648ffa8824dc5d1e85c670e1097edb4ccb94f57fcf8dbf63af88e43cb4989116abd29f84de343670bf2fbe45f119d56f70c0eff25ffd0ad6a91f1cc88fbf4e0250848f3497078d42e3ea8104b1012bc5fc194ba28f534e9f78c0faf8406613d257c3ec010ed54a494506ff945849686217843df6425ea075641e2b6aa27874550343bf21c8a7d72afa390a2ff7acfc12107edb915f66d4ff4ecba122a85d146a4527a920cfdae30d8450a5cfb989fd8765d0b7e72532a7fe5faf691057dbf82f3ab34728c2294fe9537df28302ee2868ef23a31ae406d0ee788129c065c59fbd285da92d8e782ef1475cb9b221f196dd993ccfd05ef37230482cc0a9767251d69957753783c9c5f7aca4995666086ddc99039ab16a8d58200eb39a0ef595a0e29f0107d8d7d0e69689ad29cb8a89ff04f4c33bb4578d31f21d524ca92c9b848d19fb5999787e00388785fb33749c956db52d8a43039a34986b51ea85ccfee05b2b22b5d842dadeddb6dc52ca94a40c9508e6089408338befc9156a060e89637fa6166529caf6bd0fbe2e9c99a35d334c12c77e45c2e0d08f334cd9fe076092cee00c146a97fd12a8e0f9a71fc199119525ba62251e49c410482873f73788ea4155eaf4e3bbff11e487fcbefb4f0cbbef662a257ecf751f4ff7dd0309652e61089fe6f71e77df0b61d5d4a5fbf59efb117606c3ce379d3908651643997bb06a680c10ca581842803e38cbf6370847d4d0082ee50cc2ce36adb0b38f1eac1a9a99954c181386bd0251ef85e39c99258fa070f75fd8f9fb46ef6fcbfb3c4ff52d55eac4dd198072ab09f8dd83df7df79ff733788b89773d950a04c197295ac9803e2c79e4d67cd387fb428eeb382e1ce99842fde8a54e288f9b5d8faf0b8168c1f21684973cd208413d33b2e7f76737bf4f1c29903d911bbfdcdda69965c9810d350a0b3da5c04167641cc789ab30edead311c7d193ad5d27240c1b576152578a1a765190fb534a0d934954bce4fed4176e67c6c61498dcbf0a93fad22e206f601aae55eda5e08f5f053fafda4b4fb53770cd028f37d3205692ce5cd195dbd109e9646b5797daec9351bbaa78a2e2a9963a1da594dad50f07ee1f4f57ae9cb2346c8b3c62d4303f69c97daadd19d935c29322cb5fb254ea2eb5d65a29f5426f595ec992284b2b5d05e9c8284bbee244352d598a88acb44bbe135aabf8336bd8d3516851aa649b25cf2e724b4f95a176c9599653dc4b96b76ca75df2e40d03369d1b5c54f044d22e30090f8f0e902cf028bb8c3a3c42a4e0f13bc1070c6679c340164272c0a3ec92fb6f187566168203ae59de8608936fc827f880bd2c6f18309a563a6a94808dcd0cdf7625510115a32c93868a32912c938e8841ae55fc81bc812b1017605badd42a95466b57add22ef7028f1529fb2335cc65d54aad79931ca9ac4befc81a9886a56cd9c79ea33b8c4b7121af42bdd0d848bf74f1f2054cdbb268c9bea591b2d764b2b1ad64ef2b5da556e917983be7b8c2aa5aa6e42ad9e75176f769540ba211b5bc2136ca26d92cca3e6547ee45d9dd885aa15aae64a15bbc64ff727b7c89646577a6bc236333e64fa734519151cdff633617ca4eab64f7d046e76905483c482f6495a6054ac9071620f1502b9d728a73522b299d2b36b04dc3aaad95e60f4191166099837017a1038fb2f6c997ffbd9f4e09f0a8236b3c48fc0313b4618bf92ff972fc7d747ec03e88c0c03b42070d9d5bf491f0e4161575dae5aa1ef0e71f7f28fe3dfe4b9c25717aae20c908a33cbab24c32a2284f9d3c3fe9085996494630b9b24c32e228bb7ce7a7dbe6a5e6036181f882ef34600ba61eb684f902cc0fb1065cb1851c4a4b64c1e186d8fc1f28408ec0a3cbc5b324470726c517722b41e51f89337fa70bec0fc40d3c7e1dd250733f131adefc29e78d872c371e9498d5d677e2f21d27f235fffac8721149226930894c8ae4a4089a6bca2492fc320bcaa364f29c868d1ae4f9f3df68c8bc634c0da608ef03c64fdaf5e344de39ab479ebc71d74102cb0af8ce9d3fded9d392abdecb3b45972b67565b63c8f4ebc5a2147d7ee47eafc8115622b39d9c3836712d7253fa45e2c094deebf8673e94f93df397ccf7e451bff438da6dce8080b03cc19f1281528f4520fc3894311af6cf00943da74219d3c101a71e7fcfa4fe34ecee09209b1f623b78acbe94364c2a54660ad808c29b374036cc236010ab2216570c36330d2d52aa88a934d0d3bfa43fa79f87890dc2a85234a875032e354ad10c02d37799f4464dded41098ea9c95de7e7e9cb0d510098f193c3f42d868b7d3893fb6da8f10b6ee740a5dddff1aff237166bd9fc52ba9543baf5d0502f495bc91ffe33b32266f522943f911c2f62371fa02f1f33f7d33de9412254a56337466c67bcecc7c33355f40254aaa920f26a6dcd55a4aada5d45a4a2da5d65a6b29b596526b29b5945a6b6b94da392c13a5d43251cac9389965a294b3c2d128a51c8d52ae882be26894725d381ba594b351ca29714a9ceda6663cf4f0e66b5b11f776a7cf033d10f49ea094b04ebafae7cbe4111765ad1619d5da51b5dd68341a8d46b3b3be59fad5afa4e56ec98d3352eef642c57b31ab7a1f884acd66b3d90c2b5525a5aa5495723f901899d5cc473303b65095d5a03aab439556896e4a4b4c4db636ab45b3d96c36ab46b57a64ab3799d50c4dad56abd56a66b3d96c36cbfd417c7c3d7ab43e1f3e5a2d9b2f031b0d400d1c03d4466f4a4b4c4d341a8d46a359a65a95d56ab55aad06d5591daab44ae4a345a3d168349b0c6ab55aad56cbfdae0d36f8900350890836e9e40d784389a0344a448ba8918b1e317134cb446d96898989de9496989a3ea4d168349a68992c9365b24caf9b1f4080047981af97f77cd52198bc8906d121ce66b3d9381b8dd2389aeb59344c89681135a2357af403088d46a3d1fa85bc3e974bc8f77a0911d2c137a4031c1007c77be2d8594d7624739bcc6f325792f912676372b9fe592c8cb9d9f5262c6305fd6ce8ca642fce76391bc7d92c67ab9c8d76d00198a403b0894bc1f986804986804d7c8603e2d02bf3e02342df037a67779603e6e478cf9c3bf399ef5c99d7666ef39b2b49253c5fe63bb788754599788baeecca72ff905bd43dbee3f762cc9ae1f84c09fb4ce2f4dff8cc673e9b5da51a72489af93c210877c173fec0b2f91bd9e5b8eeedbadb71278febb82e94b2034fec24721f74639ed8dd50ca0e37d67d104fecf4dcfd8e524a2f0d14b39d563bd6a7abebeeac4e4aea59a7d73abde26d29a59452ca4fd24bb9aebb39c39152c7f3d616137aa2edf23039b541353c2f5e8078b1e2d164a129bad73da705f5d2a712a7ae5632d873584013056ea78902cf9f2ea594b7bb6b7840cab8f2395ba90329034819726471af2338a30221258eb59c730e04772fb70239a9fbfd5632acdc392e0dea4e2b10b25ef733804011e12ea54be952ba94ee2ea54be952ba94ee2ea54be952ba94ee2ea54be952ba94ee52ba942ea54be94e6b52ba942ea54be92e2b7225295d4a97d2a57477295d4a97d2a574bfdd6eb7dbed76bbdd6eb7dbed76bbdd6eb79b4be952ba942ea5fbede60145dcc0c6161c88c92d53b4a0888d2532c0840eb366870a38706508388888b243173d90a00a29de68630df957d234102af064c939bb13caeb52a994c8cdfbbdbe181ee48e3df297ddb14bfeb2b1dc83c21327cf017b74b4a402639b3c141424417e0820a502718f9813b702cd6ac6470d4bc6e6041e23ad115468d2420622b8d074006e7684050214f900766577c95ff687104941c80f15754177e92edda5ef0aaf93f90b3b73a81e2f5d1bc0634c515ebdb70a6b6a429bafe9e9165adfd39e4dd86353448233f87cf049662ec2c24bd0e7c8f7b4d71392f05ecf4bd0277f4fff18c2248446dec9f734fd7a6c28e813e43d23abef7bbd0861f776e92ef98e4c6dc8de8b318bf5ef72dda56cb9d99565fb3e44f8b1a365fbb6c977666cf6c8776698fc65df363575f0e3fdf9117bf023cb7eee018564622238c40c937d0fc491f52376208ed78624c80f01c44079282238b34295bd6965a3461b328f912e4670f6a49dd2514642144450e8f6848454f626e78404259921992a32b486f5a0b2376fee0941212ac021dfd3a8a16c8fb04080221fc0c0a16c9fc810119c7521a4e7cb297c4fcbd47c073ccac971b9fe59ac9acc51f69c8208cec038c1c6cbde3cc9d864192104859ab49041085a69d729b7be2582b3296c3a9b2b58353e6a9066be6fc5656f82342b2786409bbd89928d1ab9e098a2982c22842f9488070a8a0bb79a3dcb798f09b56a7f9e48db6a45b342d7254e8e5c08a580436dc4853f800b2258a55ff677f815d76461906189e6698e4eceea850528ad56342bf020e159adb0424c0f5cc7ccac00906c8af1bff91eefdd6a1f40438f1e31d835c4d50363300487daa50ac3cda02941e0d78febec59c72b3c55efdd6aa74c8a8c53fdcc1dd8a426abc4910219748ec3cf715f411fae0b59367f394e954a5d4e5c815740a17e59b0ca2ddb9f51caf6393089d7cdcca12a43f28c8cfa2e7411619954654b9637a139f2b4dcbc9f47bd5be94ce8aff7335f0f75bbee71e7792894f7a8b005aa5227d40c4033a3a4e755d62ae50d4a5eae135f76c864914764b6675470ce4ecee0735eee6b31b9aadb19c81b780467f75e59411f2ec4b36c94ed4ff07e8ee141ee9c6431440dbb7f85c8f6886cc7180e64fbb84bef9c6878a961326f1f83699800de3e66f29d04bc7d5550c33278fbaa290d8bbd7dd5ac614ddebe4aa8614edebe6aa8610578fbaa2a0d5bbd7d15ad6142debeca4ac35e6f5f45d4b099b7afbad2b0216f5f55d4b00edebe2a4bc368debecaa86144debe4a4bc33c78fbaa5ac36adebe6a4bc33e78fbaaa386e5bc7d1552c3586f8bbc7d55978681f0f655b786f978fb2a2f0d3bf2f6554a0d0be1edabbe342ce6edab961a36c2db57816918eaedab981a66f3f65573348c84b7af6a6a1800debe2a4cc37ade7e8c4c1ef9f1f6636e902204e0edc7e420614cde3e2e6a18f8f6719686e5b78f8d1ad6e3ed632d0de379fbb8d6b09db78fb7340cf6f6f151c38cbc7d8cd4309db78f6d0d0bf2f67193ef1ce0bf64fbb2695e5cf85125cb764cd5b2fd1451c308f0f653571a06e5eda78a1a3680b79fcad2b016de7ecaa8612cbcfd9496863d798fa896eda38c1ad67afb282d0d43f2f65132dff966feb24bbef31d856998086f1f6c6a98ea738a5c444f630de1d9880aca4cd93e386b187efbe090ef7c37d0d6b013de3ed8a56128bcfd799bc2db07951aa6c2db07bf346c85b70f0a35acfb1cf0c895f32ed66316380352c3f359f2c838c3ce10902090ef6921ab2f61c8cc4bd02785bf1c77efab80f29ee3b8efe3b8efe3dee3509df19b4084e67dbea767f88a5c09fac0787a24792533287925324bd0e7c94b70061f1608e0bd92ce2d14ca6706ee27e8b384b3794f823e4d5e823eaef7808432774fb9af0355a993d72d814227e213d87d09ae95f7cd7c3138801f0deaab497d2cbc84eaf311f3c5c87c36ab2b666a3e01bcc7fa6442992528f33d0d249cb984308927e425e8b37aef25e833f39e1c2a7c833e29bc09a1cc3ee1ab4e2795ea5508a252fd8f3f9d4e20783a81e04915cafc63853fa9b0c2f7b42a94394838c3cc2bac80c24bd0e784ef69222f411f9af73e7809fad41479cfebcfc837e803fb24a1cc4ac2f75e823e475e823e3ede6be1bd27dfe00c3e2c7c92995b78efa17c4f7b23bc047d62388ee338ee512390f05e17ba9468e2a4002148fb367802842859bbec43095103085141edb2df42889ad22efb2c84a827214aa85dffe34afc628a628a628a628a628a38f8648aac06bf42087e69977d154250a95df65308412fedb2ff1382b776d9472104bbb4cbfe092168abf9bd18b358ffe3bf4ceddfbbf91210820208c12bedb22f33147ef8e1ef7c5d88c3944799a66c7f3c19653bae96b2fdd123caf6bf99efc414f977e43b32f762cc62fdbbbe594c51b6dface828dbff6ebe2353f313cd776486fa65dffe49e63b3336f9b29f93e372fdb330bef66fd9e29619a2dd8b5927ef73f21ee8d3e45da1cc62fcf032f0beefebaeb879092e1163404ff5a93c99ef66792be2031cd078349fd057e3b53e2570c82e1018e025981253e1cc267c49bc252e256c94c036cb9b50982c7bdad5c1f72304879038f6031082444c22f699ccd8fe2deb47fc33b68c00f17f8649e29c80880e15e3c792a9249c39c9f4096736618633f65e06b19a919b501619e47785332be90ce6313e807559de8ae8c2c8d7853d38a00f380b67ee210384104c32f3cd7b1e7c2484dd0380834e0d0e788aa0e27bda23f28d10768ffad155817f8450b34c0241969816924f814a3ab7907881b93f32d4fa9ef642f88088f028504967950861c0444865792b22042a10be2361f721bc7cb8a0782189818f1ea1cec71376bf030b412321a8138256640f2d78049b65520f5f7a7c17bab0e0209c19c9107086993978cfc85724ec1e040f585f7840424c96b7228458b0ef83b0fb9c9c9a27727a84a6d41009bbf700041a971820643034386c9c9f019574c62238c30941213c629c1cf87bdacbde91cf00e18c1d200487fc65df0570f66a02801130c9cc2030c07b47be2161f71decccd4b163c2cd3229892a33dfd39e089f90b0fb571882182604cf87cb320909397c3e9930c8b364443048f8ba4326f9bad0b504a659de88b823bbc229f33ded21f9baf06507e67ebe18ceec037622902af07c20a1cc199c21d65a6badb5d65a6badb5d65a6badb5d6e61ec261b0b59f639fc7fee3d4b103116a6c3145134bc4ec6f208fd4b7fdfef6e58d1563a033167857524a678ac56255f71a83866179254b7acb17c2f364c3bcd96d6bdde16ccbfb51b26c97ec28b57d0d295aa5922e7f391343ee9faecaee80dc3f553d1bd5dd59ba0e4c51827b0796c932690a1060992f55f3b1f0b7a21f667dab297eb0995a7e98d882bf2970e8f0f7b3c4d1b772ddacf0f77d2b9b1b1b8712a6c932a98830f298d38d816bb24c2ac26827cba4236622b81893214399c0332956df76dc8ac43885f0fc28598654808506ae28628a160a9875b1a3288f3b6e8823364e5909bec8dcd386e17c89820c20565007157130c15825482257303e15c35c391791e203b8b28065bb7926ed1005106ea4c08c3a6e1c18b3222e5888600323e8e9be65e4e692466e2e7777b7155366c40609d99f1a81c19c4645e4e6e2d35d8c48428736beb8218754c38ea42d1940e38b172891a124850854b024157dba43093648a083135fb800e107235200051056e4e145ada7ef2db71a4064efeb19020c704cd67c674e12ec9077b67c41f2b882e24aeea71d4550ee28d2c8fdf2b3754e14654765f91a40e123fbf790ef70ef738ede9947fdf266d9304da466d9c8711e11f9f4d79103cfd73103cfd74903cff71ab0d4afc17ef700c8035300e4813b4b2cb49d2c93aeb0918f8e988e9892a0b22a0eec3ff472e5f8cb7b5a948aad14c03ffd13f04f4fa978125bd47b2010043fca74c241d83ef70d803cb0cd520507fe01610eb552b0dffd13fb9dd8a22f634b4fb8bf628b8a30c41ee0af96f97790ff64f29f4d33c85ffe36742f6284aac8bb3bc2388557323975285597bf583d14bbbab6baf76bb59e1a53083fa8fb74a743bea6d2ca5a45173c51083c7f4e7715a4df9a4f7945f69f3178a5d2df8368a7d572b7a31e8b85b1bc25401e1d1d717425c3aa9350e2c0f373ce38794c38a52ed7bf604126ef7db7a362054f4a99604aa90c4c56f903bd5a7a45a656644aa13875d141c75cbc49abe56e77f23e13842077e6d10f8993a5910cf08cfc0ac559ac2ea2a82f21991eb57c315965ee5ddcf53aef1c2f588705f48ecb5f8d7b8e1f51600e64e2f21de9621282413aae21e3ea06c573611e0db9196d56b62572078bab0ee023df71b930cbe5b2ab2566e48bbe17d21f991a20bb7dec33ce6426fb7ba88fca1d28fe6ac9c914648a84bca25249f11520ae28dd5cb95d118106f0ad225367dc952974c9e6dcef2bb2cf7578727278986cfd92f932ddfa25f37831d31b4b4af804388cfc252f9e494d1cb14e78a3c85ff2d66cf81cc4812f66d52c939a18cae37f2bb0b37677578ee33e1000a1833704b679801ac05f964953e4c8f33f267cca32694a1b79ccc95da67cc9194013b3205926cd90c834cb2426b4a06978f226df0cd161c28adc3729f7dfd41058832cb7e062288f344f1e1e2c7e1acd9fb020e6c8ee45f67726e65c624bf6a75988f98590c7552e92471b10c04083ec7f8bc89e44744b5a6288ec8eaf6c42c30b1d3e7c2fee1ff0eae2da83acf7de7ba778c9632acfaeabb5565a6ba3646ed530eebfbe20731605fad705d95fca7a65addca59cb7bd523e7d69e74a5e07ca9c387ef70496475c4ce0ce32896694b9a74ae60f61f2e43c40050b31f2093ed0ae64ca8997b64bca237d2dc7719e7d8e73b0498ffa018f3527a5734e4ae9a435bbdfef7a87bdafa53fb3a59cbd7382de853d24ce77e218a59ebc3aa574ac9de52a9d27ef749a1c6d988ddf7bafb5dcbdf77a8f2055eefd997bba824d7ae4cbb9d794a91452079e942251035b59caf4fd6f3a84c934d3a794524a5d524f92d3b05692f7fafe2b099201b97ab9aa037fee2e8e3323b9826320929b898f200a3553514e22f2654e961348419759a6a1c7f9721219650ab4f0926998367019886189808b32b80f3a38f1813c5f060bc071861c52e4f9cdfdf07d97e2e9fede10213ceae42212a77f08155ca46145bcdc2c54bca094ce905f5bbe4e13a047fce5943894dae0b7a380773d53b45e20b7eccbd9ca51127c3bac55c3dadd7dd5eeab76775a5dddd507daf49bddddfd2c1627e22fcc4d5e7c77b7b456fa417e21bc56396763afb4dba978521ee1ec579f12873aa594ee70f772fea22e5bd6be433c20c80c53aa06ae94524983d30643dd5b52ea9356ea12895a834c91eeeeed9279841b1ebfec1cf0240ccb2d79e671ceb27cf97b8fc4f10ffaac347452c1904653bbe4964c7f9cfe3e3fcca3acd524ceecf7f6f6b6c9f4fef8e9c81bb923e977744b9e45d605547e3172dc3c815b92ba1772ce1732f7dd7d6be9494e2ea4a1524a6b9ef3a98fc0524a294be2d46aeb5be72cd762629f7b6eb5651ef93e89237f4806307552b30c37f9b64bbecf33288d412ed182577736ab3f177bba6574d230880e5886950cab09877795521c69f7b7b2a1eea2bb9ddd012a8ff8638963fd459d5e4ece9e79f2e61347cad17bbb7befbdd4d2510617752a5e77ef54ead75f7876b0827ab94abd291ddeec6edf81e10123ce604ae2f477b0069e3fa6aa7c512a5df4d6ecd4a350ca94029c94d210717881043ef9712291665c6cf1666f78b1e5cebf21903d9229c2cc13090b09abc511ab21cb3dc39a093f2ec0e025b3aa12114c48681840228fb2cb9c124c9ed4f1fc954d5206c0b0babb4de841c286916c8923867af04225c6c21b5118814184194975c8b04489cdeff157fd28b11f7fd5fb39feaaff40589ef8f703617932df1f08cb13eee703617942ff8a40ef2d5211088b22109074e92ffa8deb1c732413125e7d10f88fcc4fb0d8e32f5a4217d8b9c7f2c46299f33911688aef2ffa56cc89cda732265b29f8cf6fe1478a7fbf119ec4912f61fd5409102a68cb958c02481378c41d05963904a2054f1c5b7d86ad2add5b5debb6accf59ebacb456aebe57db2bcd791f270409d9400cf44f398631278a38dac0e424e9d31f652855505f86f46bd88448d215796439da30caa437987203e4976cc518649060cc32151b20c198f98ff724c19865f93931e029e3882492906266937283461c5c0437b97e17024d1f684ac86241c0c0799c323bb10d5778ca66100821c0fd52086b0045fd39a5abb4cd2a9376f7454a5efb2d8e1f10ea813e20f04fefa15a2005cb8c0a250c9ec8e348c70e233de880c1ba2ca0d383cff21dc9e4ff5c10244adf93a153360f22c594b92b1302c9fcccaf42209a079260e860e3165bbd57a3846db81e33b0f7390d9b59a761ab7671e0cfd4a31e7b3472cc1b8e1092d5b8008fabcc15f902b31a66c55693d3db3f7dcc73bf8a095d842b31088acd8432a613023c76dfbaf96b17f73ddc2fe13e877b1eee6d7232a72493c93e10e338958845140bc7dfc656442137c1b49accfa9d65f8524c3dbc1a6820d1befc3000d5f76a28c3f88289229d1b9eafa38467113bf018e5a35f67a0e8271a5a72e7e820c94d7d52a539e794b18a72b1c8109e4f041a48444a99c6664f9f523464a5480b1a4253b6a50a5116a3daf49e32ce29594ab70d83ac608ca1d87442090f5b8cb5032eb20616d2c182fe0c6ad894297bc1776cee904c7f8612874e22fa354a78ce3ee831038f3a48fa6b172d4207ee07818b4ca6ff29592a9ebc19a72d532d5b88088a71a18cb56ae5413667552651c3b278c9740a652abf6414a575ba1389b484de225cf03883b21412366f902e23fa3a3af762cc62fd4bdb94491c1058803d2a748616a658902ef0b479df4941be9cfec893a9c4a15f64099d3aa60e183cdae4090ac07f8a20a4818bb400bb4e10a6b66eab028fd28a60416764915de68cd2e618a74ccce39432a7d027378d399780c0061e5d2edfb9ce499c7e10b870738b4eba71746db71e6fef5477c77568bbeb15f2ca31674e9f1e03007ac093bb9825adbbbb4b5a2df6dadcbcd4a5bbfc54984929a52f2cc0399f634ff61ffe8066a2af01d430b406e07ecee66cceec7b02327de7382661b676ce394fdc19148876b53bd94aabd393e7de773a31e12e7e1df8c59d565aab3d65695f5840c3eacf87e16789872727c7ffdd7237d2651ff5bd07ca2fb45032f7d2656f5c70f7ccc91c765ca6965afb1de863af5bf7dac170f2ea7418e4110fbb035918b8ebf5031dfc60f8c255bf2aea83411ef1be18b46c6eda18fa4edb71dded3a71acf572565258ad4ee9ecee8f7a6d3b995039e55784379b6bb717cf7f4ae97fbbba5ab75c7377dedb3dfd86c9eea25ee2cca7f3627153d73bdd941bded7c6108a0c95c7c60dcc82e60446f67919414ce74690e7850aebb2c0e8d414722d20ead4a8b14b4cd70c2f687edab099a125e5c651ce1501e83a3c39393c357fc96b4612a81f304c6608813f4b4466f000feb8d17431eb6b74f80167906592105f70569c18438823ba3b702b0c171ce306d84410492731702bcba420b470461fc8634efe6841cc84649934d3a27ae02f3d627dce7cd67d9ae723f15093408a21e30537655029638d87828c2634007dba88fe469b242eae243b6e62f8f4633ce7bc39ac614777b7b569813e74262501a145f6f701faf8f56addddb9f490ddddddbd07fd563637436e5090040af0501a038f9ceeeeee31c0c88d737777770de8d39403d9658c25b23fcd115db7010a78f2384407c9162e5c889144eec72c316ab9ffbb1891fb5d5de0c8fd393c3d3e5d82d3c99337364890c06022f7d30e8387dc61109114c61b49b624723f4fd209a8c89dc4c5089f760117289920d9ff623072c8fe31a08fb3ee2543ca4ad537b987e8709047241d789105121248717c91f385921743b91f833ead04195b988089304c5047175ca2f0b064821f3460c4510cca889284154c6df0b0850a1e69c4dcda8bc6cd09777747813e4ecb08c30c33f27893c7215a54c9ad051d5bd8b8e040ee7f2eecc87d34460e152c1b2e43b240da82c416a6cca2f41201a68bcf874e5508b72ca6c04205d9ff34b25cee92a7c7e81b195fb4a4648ec02b7944663afd2fc682892bf06051b9e2890d5cf1436e9f36aa792192fb2be8d397d29b030ab09ce8491ec9a34d19b5a15a07aca822bb3fc60b486209d913415a6c008f0b040901d1a405145018c52a4fbb613b527df8f25471ae9c344c8a4dab8023fb17d97f8ea0bd33a8f0921b072d55f45085900757bc26ddd76f4a2595b2723fb96bb9b065b9ca84b5f56f15ad2873f56c7283def73403eadf77ce7bd69f955be5c6a7afe2fcb5ebda183aaf6eefbdf5bbb0019e5b4d66142ea457098f862053f07c2ac3975d3eeff09cd6b7dcfd24335bf9d9cb9dbe8ffa40bd970d9bdee9a5779a9465b31a210e7c6a174386368c84e820638b174d3cc0893742e0011e6a62b071cf48c2c3e6b0c116a72d5cb085d7836d6e82304e7c1d60e5a004841d6490c10503758c241003072fe868038d395ae92686ed1602568d13271d6e1d54349147599b828a24f288f1a5c2080fcc32898a1ef2e8b2dde6a44edb0394766ea9776e3bcf931593f8db7bb23fbfbb1cc7d1ea5e705395f665a5b7f3b91c4a9ed1645c2ebed9755ab0cc3aa4f8296dffed3b46e01d99204b17c507126ca1838aa61a1c2e00636586812754b0450448d7cb14d096448595a4a569a240cc32490b0a32ce3249cb167974592b3c7933c6d072cb969421d0983a4cc364165a52aa5a8ec82e9b82298f3ea5671ab9bfaf19b965a7218ff892efb4e647899dbe5fb9bf995a93c5735d9ecbfb7b3acd79df7b1dba3f55566eb5f0325f017ff5e79d1eca2702812210d092eb4529c0e9bdf793d8f24f5cfde9ddc52733ef8940dfcf3c10f82b3fadfef42dccbc27d6f0fdcc9fc41ab03cf97ee66b007fd54ac1fbd317c043fde90b907ad54789e11f29a00884e5e77b30f6bd045b3fb32737c43cc85fdd4d1e766e299971650e3a68328fe549cc7fff7d0f3e167fa020e9af49f4e47b191168068993e8fb71067d4344f3e6affe18a0201262320f8a352250cd83a0085423ce23f16624ee30633222388dc0afe681641e7c202c4f68fefb25202c4f62be46049a312f230289401d240201cda57e19a3f9712ead62be8616d7b2fffde96550cb3f4aaca90619b1c5892deea3c464de7b19b1c5893f52689ef5516235ef7d8cd8b2622b854f8cf9d3b7f0bdf79f28f3331f25b6ea21b65cfc911225d64dfe22f257b36ac26ea2017d66554217aab097c26ef2577f2a2ca18b361a7ba98f1a8b2d010b96312cf4650c4bed9048ff2afeaa5d53c6d06ccb6ce1d9af326349a1356cdcc04ac346d650c3ec6da266d5ecb5d65a6bad0da275a8f40c193535e810d10000000004043316002020140c078422812008c35094e40314000b689c466e583e9687a3498ee3308a42ca28040c008410222342423322012d5d5864261d5606ff826affc311c9660f553b225977adbdf4327098f5822651416004be000461e2afddae9b2960ed210e728339a71d024d7a2b719bd0776f09ee093499a71942b32dc4977aeadb318ceef183a2b482a3b70f9ae9456d88c7c365c1c91583d5b4a71e2ea539b1cd82adac1b257f2b4a858a4faf3c4e71afada040a733a8ba6e34995935208acf2788b389892f25b2d721cfd1ae2aa4b9f5284d0f3697bbc65494ba99b2d9865b5a9f2e0b4a9b189daefb1e06c4c1ab7377bf7af28af84a810ada9c6035140858e2366cbfcad719cb0456e9e7c9ce54bb26aafb91f40aa3c52a58b9d30bb661a908f689fc98444809123d4d1c0816dc4ac56cccdf5d0e69e08638c6d7122a8ec3d6398cd4ee04ce6e6ad2558eba02d71ad19dfda3145d8020a15c9b555d44181dd533cfc28b41fb9016ea328f34b70ecdaeb5fd0ae89f867493505c2686a091ac65812b02947e0387030fbb2e7c6de0c80f4ee626982fa278cc17e296f9e2f7db7a3998d9f34bd5714f6c502dc947d3c8f41d2843e9c7fe6e4f02d9c7f51406a64c5a956b96d0b2616abd986c33a010fcc564b2bb93afa545b3e2204e6ade49d0275348bbf609c52f3a1e0328c2d4b56b3c95768a60d9ae8ab94795b63ecfb259f49bade78251bccc901490df80b72b0204774177e6403577002cb8ab27c188d5f73460a9d076a563155a642a272bac3dcd12bbfd252434bd656c167dcf6257e3fc7e92dcc9c344562dad807cb0dac5465eb6a86295fa263d1f8b06434ae219234a8f019062057142987002862981d1e59184934157ef443e81805d3566a173e5d4b7b998e474178720ef2a8bbbcd83a81bf5eaedbc9e8e1400226ba3dcf1ba9724e87190926cb78a24180209298a798c4caf7bcae6935b3bd680ff8ae7e5691405b63e82bbe02579da8c48e0206eb25902510f2c94e668ad85f7f868a2e0cfcfb40245e261471380b006965518372d42b135fd29b35d40087e6fd47ecaa32b117dd01de2c93a1acd371ef2e8baf847d6eaab003c3a594869307de0027b2ce3820fe2755a64c417645f9f15c9c83ae6b7269b75153d9bace1c89fa4605f2a89a1717497252cadcdb12b8ae02c49e82f85c6179de36e9d322190b05a9b5124f8ad5fb6b1e0e2f97cbc441bce8f84961e578070314149c2dd51b948244dcd7a73b4aae348a55acbba4a91190c6b213b47157436d47cfb129bdad025cf0e1d046eb35a6957fa828e998a701190c2b60d29613fad758695d1d98c78c4e2d4708e2b3e1c04140cc1a4416c8a0749ad828a24085a98955333313daec03862fa0701297662aca1ca041dfc1afbdf0cc98dbffde1bfa3923621111fc9d8f4f8658881f2c6a26fbf60c7737bf96856873955af57a662d33ab3546c1b2b5c889542c1c29a6fa112c90584b8498bde83c00af10932e6ddbdd687c293082223103ae75de992f0c887a1b604129f2b6ebef43519f1866ae6bba29284148408d094000412aaa89b04fed7970049af002bb4020dcd3e350a8f5d2a550b9b0d7f7dda6bd07d00592e76c7f3aa22c9278e09e327ce8385fc52ae65f87bc39d527bb1c5e589f814177061422f9a003c78815a23a223fa623a16b7ff0e4dbdad7e5b7c8a10ed6e6ca0d3140008924b144154ce0539d2bf2d1af9b634d99998780b3cc8f9645fffe6e0222d4a862b97e369de9e44e6fbc972fbc0e90adb0c4e4086b3b2bb52c28c27477099c1a6041024055a16b6239b75ba86b731065b1b9b49419f1e3762fb45f454b6da5ee50a73ad3e1d6f86c472c332dba6913fb167bbfdc960f747d51dbf22694e92a501ff2f295178f9ea3922994bd79a0e944473bb8dac4dfb7e5ce55cbc6bb86ff574136eda126780b3ae82521a4a38f0ba7a1b0a9cfeae6569e279febb72a09310f1b05ba93325dbe1103c0ef755c1746547bb98308f6daf3f03b7b0b45e7d7697151da9920da898806ff938e88051188aabeebd787c6fd7f8809e7b38b6f6105234d69ac622a194685a91e8cc214f348ce75d1afad268dbe6b2ce606539d6205613171312afcfa27dede06294f57506d7ece6ebff58e41a4f0792b67ab02461e0b7956a35636e9b868557741a3c65d3a5b1b5f229a17ba705d9fe60adbb606b163ecf98b6d571980f3242eb207ca45799d63ede2d40b39e5f7b43c8957e0029d1621e3db2ae9e318c5f531eb73900366b700857cb545e5cf15829f130250583596216ee1ae6bfa6e520835a80847f9bf18dddb666bfd6baa4dd83fd4417d8fa0ffcd6c9c2f05a1495419d8cbf89866f4b3a67230f374a8877f340c0879cea0cbb067d1ab3b7b308c6b777a7e4cf88f0642d7f9a3b2e9a55f9949906a7e10a20fdd356441fd3936860b639c5f60105314fa8f6a9f8d5b9981f92bcd1062c4569e8222db71073cc0ee31a46a4b0c11ef18e2a2afab6d4bb70f3b122e58c417e9e0d4960e6ccf38d1528541962cbe333c5086dc883c35d7448b85f752c9b327f75a331619b19c32e0c2aca7c82c3cbc8f7335528438934b21264840d50d2c1db6ac9d2fcda0ff30a38c13c335ca40d0d0598509c9445c942a19672328fd2c9eb3d61df68960060c3d73ced0ab3f6da95a2c4fce93303756aab50b8e9062b899e8484cf76667542d68f38236c0b123b806b365549f03dd8aeb7fd1fc140a7810b5844fe36a960bca4223af2d0bb491377a27e44a6bc59e9712ff7ca15cb6974bdc3c1ded623d41a9ff17e615b1fadcf481f38f2aae2714830440010e7570e04c8ca753d996a056f0f230104ce3f9a94008007c478902088b1211f00a8c7ed6225aaa23ea304434f8392b633011b45f17a1aa7ed66617e79f5042e8a66ebf18d2016e58eb7a157a1d0f8db083706e017e93a3884b2168865c6a82d794d176ef882b319b9ab63c44363a3eabcc8166298395611497704f845e94236e0268178ac9040b90e20cedba8e516d14692afa74662a507c0d6d5d17a0bf9d223afe3681c26772d7f591c57a3e6110b1fa2a59e20807a3d3835f08f42ace10cad326e9c87645b28ecacd15d1380924043f0139ffc5fc92ca3590edba6a30ec90eceda34b6a9d967390b77be29b41f7704e929fc65c0b8a060d300602e448489f3ebdd6362afe06553f7f7fe2bfc87db9c7cb05df05487a39b9d31a1e4edc23eafbb1893587d61a2789b7e3d9fc8eb1dc010045b0013175e56e74623cdd75b6365e24eaa2043b5a89bb972167faee1b61fe00d19a7e11f8f6487ddc8186d343c8390fd96686238b24833232c83efa393538582c319b6cf85ebaeeb558705f03dab09fe1f3372a7d7f5616a02116f183afd0da376b1fe96274ded8711eeef035a8597bcacd3766cf01c88846f43f63411bb0ef64b5934cbd3725c31fdcfd439b16322d352a80cf7b4395f92f30d99e9748f524a81456f1bb9be16fab870e5e1b0b95e366670b40b58e5eaee62b2623551342cf860d962571c90b70143d13bf7297110fdc332cfd6039cef822e66ab3fe051abc92f9e6fcc1d67a6537721d3d35720e793e7322a739c1c91d981a0e156f3785f4af7f2a651d2229a9d1a30ac46348fa2b83f69ae64a0daad9a08a12d888877af26c157e91fc9e7984010d6fe0362cecc91355ab45f4f64ed7c6b22b646452cd8819e4b4431ac0f63246bee195a228c91536d9317d89eb4650d63c9104330df46cc9743741e41f36915b1f71d7ad70aef431f4245a0da74f66f3688be57a3274bd33e235f658af6fc2759c36c62e7c2e18e8a2123d3560547415a85cdd55f2aac2249d37d63283f5e43df28d10f50a1ef62a61ea0515f845c7bb0c4be51a21fa042df98120fd5a8cf32a7250f840fa6dc85a2559a7013c2effe32ee5631e5e1a6d8306ddc3cfe719242fc709ade55f87444ddb7ad4476f1876bc8b0ebef1424fb9973f39f9da15a28ac983413a4358ccdd63c409f9c830add688b4c44b946a0d43678d09dc68bfda70f4aaebe7006363d53ad9e319fa00e1938890f15c16bbb62a6165e31852295cfaad991fb0d1184b3997f4f2e19a6a79878f644f17c9bb88f62b4f3693ea94e4b540f1e0ef9cc58eab7f707b34e4ca2a0636d662219f49fe200c98530e0225f6834bfcaaf654f93e7cef2b993850b59eec35b1395faf73fd6b254d2d1ea0be5142b1d82fb0aff44f563e1e728f868beb98155fc3aa1cf909c9d778437c8cb74f89c70b2b5d2e16bcce7d2e459c4159f5289dba5adba117138bb5420e0b8019ce4a5eb8cdfa6d26d4f170a4883327fc11d14a8c09e53df1e720f17da01579f9178895e0b4f5a0b820491ded98fc359b6f37edfec8a9f4d68de9d27e58471174a0aaa884962bb4d6ccd37c53a5a46973bc32a04809001b3d662eca8c5d2b2f8006a371c0fd182f8492badfec690c3fe3689511f5e35fa17be6f5aa16ff80941304192b0dbf438ec4dcccad59b86c5f6f4e2bbdc3b02fb689789be010db8b4293b53c830af64e2105588123865013e9da36a4b718c7eca5e45be4a69cd51b01973728e68037aa141617b79283e67bdd485a394fd8d440a0d0923395c66d8601e47ae92cd3c0cfcb0c31d3060e6802a88ab30a8d7c0a82d99b503308b5f4993fd2fcd880d5554b36e1892c3dcab7626692309086120d8c20c713a66a2236e2a81e9de7d110e0cd4368eae4efc111407e1b4221480e457dfc07cd0fe92a115743190f05f099816cec59bec115b277c0e5852bf9150e7f946bfca5ea11a838ef456632e1049b2402e7321c1844e97130f36c8453a02fd237c4815567476902fdb0ecdf5e40969c7a2bedfc4ff620b7fcb0ed53f9855721c2598bcd8677cbdff0bb84eb169e50c6d2beb0720a332159c5a0f0e73c6dd591883c94e3199e7cf6b6ecd4d97249426394c4eaa38cc8f4fd1a4066768a51cb7d1aeea210f840d5f79cf59d0d0b4b46e35f03f3a5e4fb54d40704492716345405e7262b7f26a157561d40b51f643a3dc6d713e67705af2242258cff2020f116b8b5883953c22f55ba8d5cc3d78b9f64d2f075aa3b9bc0192f58dfee0ac7d9bf4728e5f9416282971b69cf5f43f987b65f67943f8d8333015499d698ab8bc589999a258dae420bacc574e4d130e333675dbe8d8e59a1c15aeaca9819076c027f86bbea07640968b4cfce88c254f9f53b82e18dcedced54404b02de5d5db1892e1d332d2068d59988cc3e0e1d4429c95ee36fd3556e44eaba425b0ce095852ebb32721904493c374535d1de10c5b8162e3852cef8e464766c64da959c577b3caa69340a4644216b4a811ac1a9bea1fe1b4f66c0beb10800d689f2082492b48ed447e3c9e36b5e2137cfbc13f08035593d718e86559a7f9aa9e829a225c1ddff83c5055d2722d0af64081529c9e1b2fb73c212123fd64ea877020896ecb5d367a484f451c3c503d5af0060a77e205b66a209ec40f0d0781ab7bd8fac792e8e43d1cd5eb8e8f04cd1159372a3afd7f62759fd1d68be502d35aad0ff1cd82d9a45ab7eec8004e6d59037d8997b6057dda6458958233f600916825417f2800a22de0b4e67134e06bce7723c2301a042e2cfbe84174ddd6f8d7342a0bd9d20e94d090853b2625777cdb6ee35e3a80d11753941676d39460b15e6c73b3f3117182491dfca51501994c12a06c1ab275bb1b5525ccfa19b89fa83c9b9397b4c139de4d12f6ddfd0049e91e341e56dff561c6d52f2997e163b51db4b37eb5e1faa395980c1fc9ae94e1cbb0530d23878262a3c8e2b93b7cac3121f7d5f952c9dcbccaab26a0c7974335f60a35cfb8ac5acf832c1fefa5d2373c68b2d3252ebf53cb5499ba37d1aa8cbcd374b5418510260ac0605926a5f9816e0c7fdcd0728f11b077d2dea8609fbd52196ff82150696c138f8dcf0b6f345158556655dd740edbe40b436eeabb8c88eed853cdb7d68390a9353ab861d3e5b62a4452ecbc90550928bef5decf1116f2503787513c4856a586d3e2a880e5bb8cd6925a6ecc5d561f9baae42bb58b0ef2517407b7af60eb417bc642e914488a61b41d5310f09a685b4b468a4843c80b11a8c2358d5db743150ed0f53a6a090768b565e276f732661a1ea33b12a4b9b342f7ae0134d31408fc646fb4cf626e49e9e9c32704f297cdebd7d98282f987998fbd9acc4852be9541bcb4fb9d39e7bd0cb8c1611451abad99922cd153780c19e14759c24a784dd62f68d2a3b9a51d55ab1bcaf727d2ad04812faef51b6a535fbf79236adb10a34e37f1d102f657f643c126ea694563a4a93fe45748ad50bee25d15f1bc180fc7dddfa2030822e09d3fc5b2686561f2c1fbd168038005e37e16092ecf06b0e472516f587ccd26237ca2b40c7d548d097f0f9a6e58551cfbd0801ea6c395d4a6a392005649a755c5c077a99ccdb2117e449b6f0ed76fe9362bb6b45d1c4277798f07d058d3994f7f40639e620c8d2ad599e7bfdb6763a6e8a960bdc6603ccf183600f00816831cd123dbebe82291c253b817bc72b892a75c8b268d0e21c1e3b82a8be326c953f465976105afa74cc390e3b88a10dc713935c82c5d091c31f6d2917da171ea10262f6a0beb40cf5baecc057c781a616755fae5ad5c6bef687d0cef401d5d7ba8f5ac82274891fc7e23c618f9020235e2b53f2386ea1d94239c1f2e9334916ccaff3215408a871f1c4a5690a894c6f74f116030e83b306377712c40d19313acc99c524aabc43383c84f8028e770072010dad28fce012d8734e1ec6bb2530bd3ef97f7ad7d870ad180c921501f9de1946e54a8638cda59a89f6e6b81e05aa92265b753f52bd73d62c2dc45dcc9f031df927292d2cc92046b5bdda42865f2482c1e43822e18dfb65569280a1d022eaa2271e0748fd6237e430c3076b597c4de24d055e0ea224bd2b4fdccd4281ee919da27f2f50d43a45a2743d65f4bc38fab385ad902be82bd50e2ad9098b68faa1b6d557c8702f9a057f5bc6eb32c7c1c747c37c4698d58f4078e3cc06bcccad1df9c20541c9c91652473e019b63d21e1bb2ec6319130c3436c89d10d4fd4c3c4abf5fc9e46855ab1d590dcecb333a8593f4be00b2cab52d29c9f691e6bb4833a14efd57cb844129dbaa734465f9f2a280e4ec26ca46176e4fa3f98fa07a6269085c1ea002e44ba53d2049a5bd043e4769bd1eb22817ec43c6eb6cdeb1d697caea08185bb953a9e22e6017dc7f1e43504c3c0618ee56f571d1e6d379d282c20a953b524849f844f2131ad7f7624a199d781b7fd3bdde52b3f7a72fe0d4423dc7e03a846e06dcdb14b6cde02c3170558b5d3c35519292842c1d7a13bfda3dad7c259c2480bd0939b5d8fba2d6c1cc5bfc4addc17ac1b10513cc07f8807fb33048fb552fd019ed55cd0f9723b0cc380de401e514a769b5a68a564bb6d6f37ac974f981aedb09a81604956ba6140ba10efa1dfa26be4cea5f744bbce01e3dcf2e9d23d3cab0099cbfc383119215d83a90774b43ed192bcab206f61a0fc3f6c16e89f2b96ea68ec651924a08503d61058335560efc0bb80370ffadb18c14bca293db925e79705ac7caec444f2a26c17b69f6f437fa44183538a28166df2c81114e19c4776b5d1ab652cd14f362925e21b9701b31d5c86ddaaf164c15428681ce824c07b07a63205e957941816afc981e6452d4afb53cb535296d897c4782d8922ccfc58c43ab08a8438bc295e92e443be0a2b4ab14918f875317d86624da11a7fd3f86e1fcbc7371d22d55673563bf20322428bb8767e3e685ad72b6f3a02077dbdcb04362a88bfe22fe8c423046a5cc532240ee592bac4baee5ac8dee5b574a91694d7e6e0c4fde1bb80abfc21a3c84e9c58fa405121747e12cdbf5d001d6fc4a510fb359fae1a1502e2ac91e06255bedb11eec240dd04f66afdadd058e47c0c2ea0440d04e45cf89c35cd6466a14f3023ab2cfdbcd29928646e3125cc8f2d9bb3c6da2f2cea8f89b8a2afc5cb8377c24469fa8af7f9342b006d5a1b43eae8b09c4bedaa193b4ccedeac8ca313b9d6504cbd2643678c1b69fe09a85d491a3e46413ec3ae38c0269dd6a30d7f510c60de2d39df3891e533e86d4cdba320022f131258585a536888ee3d9e2f0e89ae235f6d349805cfece9f24b5346b6e83763d3d1a315f3f3e6ea134aefd3df0e0ee862c340cf33ef0cb443ce59f8766efab2788475a8f8a53b9cdb61625b6d8d3e451516c0ddfb448362c62311240357434667ce41e4b090db782bb8f1a8779f300011aa22f2d0f8ba74eb402d3f23198ebe6547b12d6996f14a36ab15b6ba00e2b43eda1c56548108681b303b4ca37a56f0e97ab104afc7ff919da8dd8830c8350df3dd573734a0860b17155e375b39928e32d48ca5b074c8649bf4b3d3de53cd6044d8319fb806ae0eb21d8010467c2db582fdc6ee36f626c9253871338e623aef18098d023e3d1a63c2e6041ee9e67fd0987a9f679b8e20f85b1decb2075d5758aef3ab07783d0c354a4f9d5943b22408c21c96990a5c6f344d41101aa1dc62f73aa7c7cb0e777e3f04c5f243704e044170a7b8d7e3a7606b4ab37ef237b205a1bd736b0f10a9b120142876e917670ca48bdc342b0896794ca436d4ecbdedc5e99be386f1e4397aae763a4d6057a4f9680e0bb68754da9501685cb687c94dcc1947766a389b90512a91e02dd793cfa93846ffcd302707c9d73dda69fd7f2224438b1c1014c71575eb79b349d06c075709a69893ea3e30c9190c24613399502b6e4ca61385dc105834baf0030e6a2b13520843d63a13d42132a8b6e5f320047291d43f4b59d6b6a6b770021edba10b270a2344703b1ce485bbc8133016a46cc23ebc555701eb1032f808632bdb251544cc3b73b640841118d5f6344dd4d3aa3e9bd32fc733290d239e4009c2bae933f044ebf1dbd798d69105e82ebb30f4a2c6ecb98a45c953846c1a4a063a8a2bf70530a8a7b7a0241146b58db365323810385e6bd63d99c5cd4dc0ffcaf77b4a111c0617f9c9cf5e5a9185cbc326833c3e30124761702ceb28673148126f18457c256925c367e0a999cb46a80d23ec550a3655522773a73e59c7ca8ea24140ebf81cca6589f2ab60b19d8f5d12cec3c933f622d6b8162ffcdd526f1c07a0f92c8c538365c70ffc0b62c99a5163b435731a0f7f1c692d2f5a8e96fbe2429ae6dc0d6744651e0a6a93306fa491a46473649ebb649c2bf5641437fb1da475193fccb0e8c5417fac11cef68724c89393a00e5fcced3eb8123a8c44d12c74a3c2a4e2430d29c0756bc1ce2bdd852a27eee9c189e58047f61d255e2cf7bb0705061b9cbc82aefa3fa04d2952809399668c0edb89b0f018456f2d8eb27ea585a80c37460b0866dc38216335f522566578dae5c80150e9237b56f3c204800a1507a560313299092a002852ab0e573da196ac98847bb2f1d2db712b381bed102d01482b980593fc87cf582eddb499d2afe28e891e5249736057f6f0d6a3f6322a2ca49b726505095f136bbd03883b9f3b30318154c3f43a315b7f8a62d64508739505e377415110c68eebcdf65f2ba83dee2972c1c3f85c4519963ef72c9eeec8a0cea7cae2ea428eb8cd334245e2da6a91f18ab5c9c6e4a260741e7b97fb0ea36633c12b4976e2407976e31024a101a7e0d3f3da60f7f4dc993d8954430c876ce7dbb8a77a30d08b3bacdaaf778554c718c840ee64a018aea121b01162af53c6e97e61c3eabce9c8cff22ca9465aaf8be8d852c738c4f1f62455f6acae29c41023bba44a9e0e8a605292c53a1231ade98bac8148b02b40290a45ce675c44a86ed72cd977b4416fd4d247a88a9880080901bc6626c8782eb2b374095faceb588dc297c0d3c9205a2605bfc6b7783e848753b0018b2573a0a08411ac63390e0464458ac4a65fe89aff7786312548c6948c1a6cf943c6942a3916255342d32631a6c2efe343670ad9b8cbc08f44bc42dd08e6868e9c19d1af78f6dd5661bb61aa79835b125708f685ee88c4ae74e474fd6af0c3728827cc5e465917d3ef3b2e13cca574e3b83b15f278d4e27849aba080a18e215173e8c1ed90d85f13432de080ff1f1d7bf3c0a9f46024a92127ea6f57c8f124bca141e4bc9efba5c2ad3174d2ea6d67569879332ac5372ff41c9c0f1a92916cb755bab18e693a2f83f2f00c09c5dddde90ad5e639b1f7633c8aa4cc90f6581d9acf2484ecdbbca8c3ffa32e9691fffa0d72fdcb5a8dff69ea57b2478d3c645f060fe0e117b7709236403416dc1d538d74a1d808dcfd1edaf8542077280e07a366e036792f3c0b461ea9031c5cc3442f56cc301a458a714f080a3ab2327d4b348a65528e7515c45b3d009e295da189fd4830e87b8a2899538445de19bd8c4c9e120ec6a85b53041b344ceb2630b715cbae70b033c199b0669e4dbea3c06be40873d4ee1cb330d7744c80cee3dc4e00187c76ee2f68f3e1fecdf598f28d83c38a81d905a6d1fd8a9dfb8c894a479d948e63a95804c91159e265493517d79cc63caf03d3937e4ebd5d3ea172a9d86ff832ddad548c45c8f9525fa7505e9af068437055acc05aa7ee6d93f624b36f63691f2951f107de53a128580e58007eab1b97ce02dd45b35e9f18957ada104c07e58b9b5bf949b391f6cb3343cfeed7ca71ddad0919ee56348a2d4c59d7f95ec8531570cc5a54edc0d7025d7f5748908f46624169c538b2c765ee23e345b052386209f4a325956a6e5d9b274d670a03c8208039b109d59a8198150ca0394924dfecc07193852e55e32698965840c962cf4e4e639bba027818ad672334ca52a46ca914eee99323e9e09e2be56b33e9e33a7eefd323931987b239426dc9657a1b23b12dd56093089d30e2856f1d24974789ad39b09cd243d6f6acb7ba4307a8a68fe6aa3c0fc7c8daa4d1bf63e85cae67a196929c1288605c2cbdc3c7399196ee8a2c13594e88b1cbd1d00b9123fc3c3eff670a00a0c9e5a2e39533c421b1c587eca23539c7e320a91ca73ce6700d9f388f946662244602f69c9bda45d6a93a16f215ff2b44fddf725a3c1e796a3239d67bbe41aebc0df0cfdf3ac98e273251fce50c9861f2e1ace748d222ff39a71b126339b2e0a513a554096ccc1253887623584a0954ceaf99964bf5b0dbdbd6082b8d81b45d69be34568b3231e6ebed5c88bd07cb93aad559ff6b5e7bd3798265209895e9a2f5a36cadbb75ec07306a97ac3ff3ab82f65fb09d61c9ce6a043aa1173453b17442f76364ce2c2a65a9aeb3df8f06a48a09bae53a6c8be697def45172d3550f2a582b0418ad84c7dbf2851afcc6ffd606c0d3fa4c1a5ec745363355354148ed044328a392adc95ce8cd9ac421333457aea34dfb4be0dfb9bdb0c27550696d60458206d9706d2a3706f37a1c6c452e6d59b4198b7ddca177f0de9f254ad0648a16b105dd188403a73b749ab6418452cc61357af02d3677544570340152adc274386a29b5a7e18de37bb4b6a3218f698e39ca61421184420245b0a043a3b824e12c11c9cf7d0d198e1237b239f238e9042485e88a3de736c30e99a550a32e85c245a268846e0584f4540526ec8e78d457c234fbfa1b59e4922eda50f69db45040982f5bf3f25460d1f757a9f6cfcfa89efc56381e40f759d92542e3de56380b7b18cd8e4a6d3d13f701efe7f5ba21c25473c1818f862c6a9f21fb4b0192cab3d9f96d2b147d6e141967c21efd2e6e44b4814d96d4d1bf78cf02b4a5cd2120e4956296534ce5b0a4ecc387873186616de803e1d741ffed19ebf984945fed65b2eacee713d4911632597083ecfb6f50a5796d5aa3cd487dd01221e8051e8b95a116c16bdc84f1fbaa77fab50a87420d83b0f076e1843d2886f32ba6346ffb72e765a590c0ee4ff2fe08086c6dd66ca751840e347bf3614d34bf41ee3abf307b45f03fb0eb5f05ded71068b16e0ed6de54ec280de8bd76114ff640f980de4732138dfb763a7dcd6b765bd1894a48f0d5d0359af36d02cfe973e8bc73f2e467882b28d46a6dfbfaa241f745abba0c1d7e88159f396e976878e03d69b4bec35672d0f5e9b9e1e3c58d844e8c1dcad0d0603a9c450f4a86d4157a1b56a2755d8ad3c57acad0c56057bd07b49ac26b7aa89f8612a1a1a91e885087a52fee0bfc4d9be1a04ff0c141faa4e33e37585ddf6136a2fc96fc3cdd3d71d41bdb11249ee5ac467db51575a94460f2efbcda17d61709a79c4a6fa3bee15c0227d40cd624decf769b24efdf14814eafe21cdc090709859d659d7c3288d9f7eadf070b9ed0fabed82aaeb2e8320d04299076ec6cc4b970a03c84f8f4beb7cea6cf36495852babad21306a65985a2ef787d3ac963b1b30786df509d1e6e53e2de41e7527307d943a1e123cc2b19aa70e026e2b1a42d80e26642f1b33a29c3c0311ad1f088cc6b5ecc2f0031d50356e855efdc32b8fef334345489072844618df05925c4bd4de216c68d8782e661ae75274ec06f08b34b3c38e5418181867b8ac3f285f496276c9aed00861707539e668b148adf67664db3372866a098ba8e17301fcee545cf598cf94c30a344c920fe36d455ba9e109de2d4b3de42b1156ff3fb9b17aac20dff468c24dc8cc740023308ab773610b6e69dbb08e61636e05de449705a82820b9cf47371f566fe362bbe4399c6ed207b76d89e8505e09a8f43628db47c9c67259381f20c68773266b0599955fe2b7a27a2a74a80dc46400c241ad5bdbc6f864f36a56ebea05549814e7cb39063aea2b168c402173557a1d6d65d410655d72fbf0c53b42e6b7a614c691790b8755d27591fdec03ba3591c126b14218ba85805171e41593af4d38d68d19b046a4333791ce00a401dc491f25ada411439da08bcc6cd497dbe9da7dc64d82805d2d326326663503a2d1033f1584899ec8e8b48897d74bb33f19e811138fb55570fcb8bb09bbee75b55ac85a338ee8bf4345aa5b5f417543b1c0af050e6ca968d0c67433ebeaf4c5e85724231a070556b92ce17e7465cfbc4c51c123b11c91719371c1dd46aa6048c5f7547b447a637cc8bf734906bdacb903233f44e8decd27a197a5685e6884b49a2b8634a5b3bd199b588712e7f6127cc8c1cf271cec1a7d8f6f7cabd54d268bfe7186a741b701091719d774ab3204ccd3781601877f1af47778ef522c7e9b7ca43d803835b5e01e6e252359f6ca6f2bc9e32aba2dff95c2ab618b8bd540d3d695c37442433c220324fb0011c35210f7703bf3b5498b29db093f33782816d6d89bafd1d89cd391c78595545a94fc14d016fa46ec47461f9f72ec393eb6ab16006745af84fcc63047e821067652f17b22b37167a647849a1059e25fd49519e673fa9a374e85191f9e02a3f0ed0bbd11828c9c76712deb316946373e348ac52ad9515e3b1c9329242dccd74ac1fedcd5dc52a831cadd050961bba6e5eae163204b9dbacfdc4ee8f0cc321f48f0e015fab84b465e84eb9dd7692b5b382e6daca51092f67ed4b9d40d318e525e3b069d71217de95a3a93bbff608249dd8d88a1ca715590f72dde6338d6579e4448b7e4e050f1cdc253c9cdc6f1ae814779ba6c5d9e1dca3e421381d947a5971b302287d777485ba35d35224f0f3f0303201cd481140d6df4dae0fe550adfd77b7ae0bfbfae8a9d33326a094561fd48341f4a72442c80ccd9bdabeb12ff368aa90ec0082c8a18528d738af7d3d7c1e087faa950c79de5719bdb43595b322bdda30f5947a8f2045a88f654e404ca6a0cbd5b75206782055140e7a7c5071db049f92a5c27c550c88db1a3ef859b9fa1325f04cb671884e7fa0692fbf8610f63f8c1af7ecaf27056bf77a40e450af026adc394a1cb5af5008869aa5db99f672b7ca992d327e64ebb59f569e7e795031d312954ca9de04171785ab91744fa1950d55ba987737543082b591b5a6c8404afc3ba4eccbe4d31864c184931b6100406abe07e28601a6b82b220b774395708b455b6edf3e18e8ba8329af831676799e13b44092a865908c70e5415d603ba30e50cbe024e1caf889cae014f70c752e9b42979f92f48bc44c138ade0ab3a24a446602969fab8972a4301433934bf6d4b3d117c9e96000e95e9765f0f8ef61b2f03f04fe7b228301e156ddfba565e559aff52cd1207ef7c163d037fa1bfbcc546d25a2cc30e8934e8ef7012792d3267e94891c579a530fe784a90da0c0682adc3ba3146aac436b706f8162fa141e8fbc301e0cf3f6021a5d72a10a2959a3c813903022ac8f55dea000bdfbb3db22affd47139633b4a07f0121d437c9810e5565f05115f89a6b71c1cf68f03806fa6d378f87a8c3faf3aec9ed8cbb9d1a482702a6f753c7fb9b553bc18cbd7bcb0fcc8a080f55d9a1e29a02276ff21be981cc31ef28ae532a939ecce86b5dede63864d1a483c01453562052ae66c559880e99e0c0db928bdd5f8ff1321c9443056d1cfd2219b4c86827557d44f24d20e8be6938cea0e791dc78dedaaaf52a1993a5db55d467a5323bf5581849a604c7feef1aaf3f4b3a8bd1c7fec79500452a077e5056706202b2180f835865c6378b4b3d951e32c976882f8a3b3585f3c9595e3742e80fe91693996e1bcfcb16f04f3c236f12b28b6c9237f182e1ef04f0aa708df5df7913117c69d91fba68909bf2649c464dfb9a45943854ffb464a27edeb8eebb511458f92ce267b6d7580ccc93eac6749036bd9d363345732befd2d5d52edeb5e7927bf9dd45a469d2b75824240ec6b7cb4083d31725a5f55d165cc1a2462f8c9645dfecaf5852ac57b12041849fb913390400c4dc23f5495a6f0b8c2b4f7592bc2094200348774a652b2d36941f66167590ef4c50e877386f6820a2ad355983cace7ca0c04a009871a03fd759ea29f00c441e7d64543dfdf9828c54eba4a4a5fed482ef14c647f199bbe72ffaa3bd6257bb76bf9a5601249a04243513153b206ffbee440b96ce566798baeba41c5bd6c9a0fa17ece1c1eace4b2a0ad2c8fa9904d955d2deb43cbf28483516757f4c1c0c6cbe6e7821eb70d499f3de0c71b14c2baa75c366db06cf191c941b5722ceaac8b266f7c4c8bc702f2833da22418e4ab417fe2a9ec093a46aee63114ad4057a491293e229917c8876f9e9fb480e70a0cb64cb87e3323c95422aecca912af09287435bcd16236b21dab47218118dfaba1f298fc89b9d3236b9779e5bfc3797cec6e7809304b53bd4270f35c97e5b5ca95d189f8f920724af8b896cc039dcb22952db958da1d285f79784e835de4b90f44d7bb919de5f751b957128263c437cbb5723e11b83eb739d5c8fdbe040be217fea8b976d4745d2ee1ab06dc33ec5b01f31fbe24592d942125e461dcfce7f8ba69fefe6d974256b945dace3e9ddb72fc9250375c36a9404a85effc63c72aea55ca5291fded83363f7e9304810506a15af87961787e1cfe8179e9db8b8914927e3fb6267a64266954df609e1766371785e86e43bbb43fe381757eba28a077359d9bfaf9d411b3a235e384c7d2a8a4e7fe82a161473d2d8ca072ebcc4728e2af2126ba6042f24dc6eadd0fff6a25b474e1f8a79bc61fbb69c5b05178878ba5a846bb2aefae6c10d6e7de6c6a0dbbc05e61e30388d3a152319a183f08a9b59401c1bfb4d6d7b04649fe5194f73f014a709f58504124bf9b72c5a4c44934ccfe1369eb620dc3a561e3efce017ac9ba30c74acbc4a8f904ed5b428b906bbcea35295c6ed4898e343104360ce826d2a3c42368dcefd6a4034e580dde00ae47450b4b20996dce36f39ba5e5ca35f4dbfe1eca78223029f0022a3133fa3efb8a12b6d8c2ca37fe61838677f12be4e45dcafa397f05e58057a60204a148f2b3380aa8b77ec5620d15ff7782fcce37c26b5ccf148802cbb6c13c63bf4f4553d0827821443b670ef916e1d253f24c423538de22bfdf55791ecfa24a8d642ddd19632ddc1087a37ed13b48de3114952d18129d986ccfb302d09c49449be1cc39e00209c60e66f84ac359e35339d4ca10e71caa734230971c28192b3d37d715028caa7865ba253232059b32dec6252d4a3eda7de2a0f72f5d5710d58859908a3343f734ea0a2643e5b006441e376b4adcabde1a864c03d5095659d6125d2fae991c9edcb0ef7bbb4f75dd8308c70ff5a846ccbd0a4722f59c80201f5508474aa921990349a31d33d4867c86f98dd486385bb4a3e9d2eeb648beeef07f3819fc993c7e905b1bffcdd03c36121561e93ada67d27ef0c3871dc5de154e9e7c781048e454856648dc8485c25c8aadd3d197c8237329bb4f76c0b0eefd9c5558fbe8cc438ab8ef0caacfd90ac5cc62d894c483e5775f5c01dbba544e29e139ecf5c223d92b50583d498eeede32d8e66222b27639a7ede3ff068b9dd373cdd5459adffde51071b6d4512082ef55c7aba08c82cd4db56e48ba2b2a3c8c51559e1aa881d6664eb63dc53f3d5327f4d9666b1a62bbf3436bc343f3bd4f001929dc34873476e1a7e5861c99a2b123b27d694253132d9bacc95b1cb3fdffb3945fac8c8173f2ce13b0c4bfb7d20b18eaab1a151cbd47a77bb2848ff6256314ed5ea4faed766b1f4d6336ee3e24caaa50b4cd339d592d69a05107c669909467b7a54b60457ce087ae017874bdf55aec0a2dad8de27ab6fd69e166624325cf486b734c5d64611ddadf8a50e97278d53a40316b36847f99a4ce6ddf4ab90796f4df8110d3a30efac964b205f4b604ad277f77bee12c02c4907867880cff9be31938daf8012298dcbff43af7f852beef112992f0c164552717e759877e382244e3539502cfafa3c9470faa5de1c284bf65a62cba060d0d30425eb67b5977e86b969a4c6b9b218dd0d7ce1ba4d215a2dbd4ce500e9d80923b059e18cea7a103d6a77dab391aa9fc9810252b81eb76ae9bfba0cbff556d3f932ce9be875ea3dd61845cb47fb7f3cb97c6d2b0bd49bc2b4666badd65b937a6c96f4837dc1f7d26a126c0301fa23242818ab33f2373d3ce297b638a71b7f13c8aa253c57ef8f5fbdd8159310c6ee70719db182d1c0324c1dec38132a9c69280ccea6f5f0f9d2c04c7d90863f2f7abc7b8ac24eba52c93c67ca9e140984081d608223d6e0bb93e29ad052a58e25f3fc438a83a63ed152c1b11e82ff707f68e31f493dd92295af0c28a4bdbd81040fba7ccf47320109c09dcd702d9fe2f20c1c13077ef50397166e64ba098c5e4732b3da0a8e3a9c121101565ba2fa0db1fe47b8c68af03de8478070e7fd015516445a25f63ed3dac55667334ff445a411d11be4bff7d7d2dbc07ca2183cd4b9de21087fa12fcb3a3171ef35df2d578fc61840953f02b35662f20b042c488d357989174b020624f3dedc6f948c7661668ed3aa5e2852406556af497430486bf1ab87d3e2ffca6a2b14c964f3b1fc687043802ceaab88af45edc2b85b1532b7fc05ae58ea81a6957093756b66af06369a69b24c7edab2e5919ce5a39198590b968e0ba562de89981b1ae61f12e6666279d157ae2474ba96f372fbf5ab827a87af468ec1ce949148ab3874cff0a265b948e1a91afb09c92da5d692c245b6cd2f2697a8b629305ba0882468edd1b2605da79b1692ecb2a259f8f218eb30ce164c94953ea1af8736bb84486da9d8da3c4cce2271201d661d9cddce3fc4bb5917733b720160b1556d00944fa856a5d1d4ae3046c33c662f924a76a9c11c156d16a4836fff67867c994df23757805c94f1ce710c9a6fe70b48798f184d37c55d3f513e73cf5fa29793ef173df903263aa8f3b8397919adbb9d1514722cf536ad261274a28aa04082e900d69cff12f030658a69d56b80b114c21a2f8bca20e6b94669fa13fd462062f343157273c0254c1aeadcc08593a64d5095996c5e9e1237ce27ed1a66b54a22186f095548f6f14a0441656c42d361006b35d2ad1b42a266b2127eb022f54a58862f12227afba801839c9895427912280b5ed2e2cd6672f35a0d80d9197832dbbdd7656438c330468bc55041c70ee9df2d02110c20f48ede8848620a8b901dbc5790f9eddb75440529a30915c14519d3fe902e293416451dffcf9d88e4e8385071aa296d1d231337c79e2da7b995467f821608ba1da3111e405f78906a2e79980696ed6852802bd16753c6968f88dac93b9bb06be9975d7b13ec9788801e74b28a4f9cab93202e3ad228fee9b522d609139bf673adf4d4c96abb22cf1282cb7a46bb1bc150ca2f41dde0c92682a0a73ccadef5a2858e4af9270cbf79e6c4584d3374afd874a75abf764e4c8c7ed94674227d3c257ad5bfa946b75519b79d7777873811a2788f5bb0d50c34bd76da3c8d88fba9a780f72b2e0de6c95259a36a56dee01fe0502644f7477018386b772cbda708274da118017ecb4e4363f6ccfce50c219b6fd76451954c718373bd2384f84cf09e761e369807b61593ade774e6f65eb1865b8c0e21442853a8909925e1f64b487be00266d0a5cf92c19c7d86186a46f51935ce54acf0e83977097a8cbf8e0ec25808535091f324cb1fe0a1c9791ba6f792d85eae07b09f418cb84fad4c862eb78a75a7b06a45afec73be2a07e5322069b4d81e3c64df7264d458a945af8edd01362708858b23ae0190185318a4ac14edb7e011854e69ad943d681d879e32b0e7606a39371e2810f2e5c691c8e95cbd0c807bf24f177a3ddf0d1f6667ef615a6444f759d8b217c40616008af43c0ad3f97da8cc818fbbb380486ba3611db002f0ab6612b6a216f58ce7f229b48110d00425b51ef921ce285bba8d465282af1501d6c9bbf42a4f90522925cdec76803283ba8aa08ec7833acf175573a0f5900e1d46712d70a1394cdf333c212f3d489c88538dc380d40369c1f01a7d679198c18622ebbf928704afa152281a815523664ae9f359d6528fdc102f635387c58dcab814b91249be6e09aa16bf92287dd7f1eb10b582731a7f53bce23a6353e496acd13ea28b3bb932a327cd00082a8bd27d140dd50edb1633747ab992c012280411b73f0e7a507e233e33d3259a1f43b3d1e02bd25c2be5c6a829511a84a3132af4a1c89193b478881e15b097ce001082a1b4a979eea02141b2744d47f2f311ea371226ff39ce5543dd878b47b8edb3843301d97dcb8613909bfd2117184121e2ffa421295f38f309bb1e7d4a18d9e62a80fb022cfd9a4fc76bd64ff2eb0183d406d07282fac0019d5ac2e3c8728cff0588880f23a09664873a491ba992bf8edf5bb85a8595c914f131c53d4f5fd7fd41fb325619437a14d9723fb8610ce99a8dba02bd0efe763277644eb0dd5af82b3c6492c251638b5cb06fd14086617ab47b0ce1360269b5fdc6adb6654b79730e0e9cdbdc149e0095759974ae77a3b8377a88682c904d64d08bfebdbcda9362fb76c66a447125a4312fcc4d3dd31d3b83d0631be2772c961d629851c4031af9095c026a6c4a523a51222b8a05e508f96da66ccd17b14388b90f31e27a6aeaa22e1d3ac84d7f8a2d1e3291a718b66dd6bb432b8a3f031c41992d670ced6645d7001d29df59944b1152a0be16cffcb87077c3712614ec96b1d81c9a1147c3206589a231a5eea10423495ea77d3835ce21e7a7766430e31df1d30a0ddc67282d37152e1c04a2068b0ce31fe60d4ff401f8e536d1637a0d570fcc671fabc7272c45615b864e5bc4e786fe962b0cb3252b9b3f667931c133a28cfad9357c88a996fef1d9eab9447a96a22859d986af1c92ba05a700031e205a75dc53638b3577c95f87e015e800b26533dc11a5ca2d7045e7ee5880287405a4cae95a2da3620b67e334556875d62513ef20c5c45910f67b1035c87b12fdc07e831d873c754f9b1eb5a64c7ba297e265f20a1441782cf029b61260039328aa23cd21e034bff4725b92410616e8850eff476a0225af51f8d65e3c4d1b74ed7409c84ca09e810b8ecda680354c3db9f90170c5787c0b5602485366ccc5321b93d779c016ec7d5b9d605452d043ec12ac339d45c6444163a5bd1d802081d4ffbf6d684578ba7867fcd249313d1b5dc26dfcfe679540f3cfb9a34b423b3693c16ce5d34bc966cd8b119e7dab2b4cf4eacd4dffeda3988da517ecb41c6b6c19d6d61d4c8173a65f58b124ca64d9b6d02c6fca3c4c15e6f223a271385107af9b529e73d2472b088985030832bfb318b7312c00d07650f1baa3bc7f4eb662860081757ac8af6a7868ef44f2f682c5d84064faf902c4218b9004b2628670ed2bae49ce8cfcb53d9d3d8a0edf79ef8da862ac01d45c2d586f5ac9ed92577b4e86e86cd4e7f1a2995a84acaff330390c24adde97c18eab8cb658aae8a9a8e4645e3f193dd5b0e0c6afebb67c4b18ddecd052b57891f06ae22941e715086a39d29008fe34970f00793327e448bd04267c50e920d122e5649c1310981e58aa51616da5928bb40bd2440fd46ecf46d28d7d500622e0db1c39bb21866462b9838a10e821be5f650e70432f7d51f8c7c6eb09a0ad229970ee37b350dd6ae14cedba323206219d102646d72a6f8f559d162fd9348a37031e454a5bbe17203be2abda0f26b08f59c561f49f8105409fa2291aceda432377309c94b41d54222c83ed46a3ea95770c9008c51e7681624c224de8a42f5c1939330c85ce5989360904f3f8cef25895de580e26e627f6c76f3c7af7e802e1101d219ac9721d65dcf95538d30e65e0ddb71bd9678ac27d6987234070a9775bc3fc63aeba585745e35fd5eb3c28777cef10e2116514761580457ca9c4dc84b9fd244e583639cee2219f1b1bbb10661fb3eb45535199841f24c7cce0998ec3283fd13d752b6b70acc1b44b50e77a07203a2d69fb669f34b41c2ccda72d01ccc1f4fca186d158cf888ed6a091a2e0460c84b8c4cb7465dc8d4ed2e8897ffb33b579f0c46199a6da3ebf98dd22ace90bed643205f78f5da4ffdfef58f9fbe12099ab4358734d805d89cc992c8123d151cf6e63cb1cc6e5eec51a1215ff2dee7796e00bce1289a2f605589bc8e1de0c1dc5683de567bee0f966652e26ded2dcb0b9b6b67b2f871d58ace13624f757383248574fa5b74eb64f09c409a81b597cb5d57094eed088a871b6f72dab7d6ca17289d477b7eb088b4da2e951b9f279e2a89105dbd8ea7e625273484b8cd64036323c4c9c18e73735ee791dabba694feae155510f05ba04d0a1e36edba3474d2207e07c00f0c412fd9fe47e64f0a77a23fdacdccd88682d6c057ee7e6fd2ba462a01297ba737c92c6217446d36706bc38e847905df0d796516ffd7596dbaec48cce7830cbfb046ba1a651089d14f521cb5eb438034753e4faf0c7eecb68011dada26c0591e460eb63097bddbbf44543ac0bcc7f7fbf5aaa64330dbf1698075286ad4e663fdc3059c0239cf6451c6cfdd350ef72dc27b18e125b4abae9f8545111c07f567fc4e3ca0e5fce08184e723147e494c98531404e01ac55ca6818fa22da7e39c1093ed5ec185c0c62aa4dc2ab56ff5f8cc83713292affc3bd1962d1029da88e92831897efddafd0ecbe7435595b88d21a68e954ee4e8abdc76a58b7b2fa9e514fec9aed3e7e51b0b4fe9c4d3c8e58a91b3fb6d219e13df56510aebaac05b478d349563251274c25a26d6b9b4ec60f418a985a2382433ff566650b7e003b677078ad2d43289bb731cfd1c338400ffd354f72c190eb177db95c98b7220e21b5a71c16020751d06ac418aa03ce1eaa4c6e8ec18e52c682e62c1d3f8efd63bcd8a927523607a30d217771d1a860d5b92292aff83a5c12bdfb3fad10f2fc329d435b0d9f01ab3c6e8abc601fb66cc7ed7974d50d007462aa6878664bf597eb1cc420d72d2b3b3d428cc6f532e1b31a5da76fe5da7bd0b588c3091fb857fd45fc39580d4d6b9bf0c1321e83a6c9b0fbb8ed2d2bb37a32d6260a0888a024bf78284c26db5526d5dcb94e6ce24d117fc195963896bdda1539b418c54d7495faed8ba1d5c73c66b9307c5f0534917cf5865b9a0929227c6cd6903707c9de8a0c4617e37006c7d28fc1d60c9a047343d6dfa238f29ad0aa73d0187849136b260807e535ca6c2c0d56acadafe4a9668962c45223612f9b1fa2138a258241bd9bdec4ddbcec747a817fdbabd6a4d47aa7e00b15192d9e4d588e24f63cabf93f1055de033639fb3a2e9f528da9de893e906959fe7138b70702b1a2834c3810f90cf2c843030792beab683fcc2a8fe6ba73d5a6b8b6b0ceba3e3963a032ee7a4a18b76a346e53e1d4bd6a0799c834601a5a48defe83e3fe97947cfbed084e2b07ffd696e0b14ecaaad6ee49c9965f5d0af173a8f8f15a7adc0546d206329e91c24c4c1bcf89c1ed59363426ab4a82d9e487571406f8c14ff732d405352cc352694b91380b6a9f8b9f96b48f99b2302a2a18f46414b4be49f061c25ecef4059432c2b35ac153ec2cc939bbf07b8b61674a2c1a442d800bb0562c882c784b2c8d889d3784dc3451aa354f3d71ce5fe893984c96c0f83de3c7c42ee0f2a20e2d9535b63df48a2d71e3cf693c4b0db04f4cf7ed60e32a5d386179c6578886732f9c3fb2c444d32d7019d17fb9876d4db5dd5d36167531149a036937a1df85ea180319f34096330f275f9cadac86e00207bbeaa86f9d9a481cf2215b9074841255c9b9440cd9576051f40da5d319e0e51c11f0be2674a319a1626be6c6de4af03c7ec33bc56e469d87fce12c013b95547635dd39b0d96f2355bfe5f9697a568b201be5c8331b7afeabf6258d7211b677e4a1215b8f246b8a65de6ca4568d8a590378b215d0821b8022024a20b2adbb412ca097063aeab14e39b76bb4c8ccb786967a4a3ed70900c029517391f69011bc4064b0137069db0eaa3a7e527b9828954bcc63ffa7c0245d3440516f508e36f0eddb1880f71963c17e43d26aa081325007dacca521ee5d0604e46b90b8bb624060a6a0ae3c1751b659f452c80f300436a7dfead4ca36a7cb4f696587648f83c855293c0247d7e3e6e9e614b841fe7f9c620a39b9a97e4e04b34f36ff87b430edda3ed95e58cca76d4fdcd5dcef2ea0c9c74b45fa747c7151ecd36cd4d4086545532f03cab6a88adde4aeca5ad05460c2ac15bee23893cbc094faca23430d701a6782da875d92b12bdc20dd8cf3ca407610b7a3d9f55160c5d3a36019720a0e24a54f31ee2f7dcbaa18aa5d8499df3e4687477ac82001a98be7fc1afbe8b35d5401a190af5453375c705df36edfa9ca3a6efea791f6b6e9b272b647e0e472204198de14a27a47c1d8b436e6a49ac2c5c7a87b160a06fe5e138e11709a3cd725711b6d60d85fc4e570fab7c832ae6cd60e0ed81376cbc7676be1931590b1fa0625bcbdec4bb888205b06db467f5abd57ff9e1448030a974021da6f76e557f8405848edf9562ee5439f68f199bf2ab68eb858ff446fdf36afcfb6803f91b9242cd480105f7b0419467158a0575451d9828945c706420134b361ebb4c5ce0a35a9a1e327820858b3622dd0fc1637124e7bc38c9c67cfcc5fff0a391272a0c85dc3d162573f1230a6abe95870f51c325d9ca033a47fa5bc8f419ced8cce1dd8838f4f6f2e858681380b2ff443b5a284197a84402d5cd567e39b2bd927ac6ded60b86181a288156a83634f7d0b39b641bb203a70d51ae4dad03fa5a1c3fb9fef03c5ef0ed7bd1e3b15523d4330e2bab1c47564d530937c74bf38cc7cd9edd759325dc09dcb6b4aae12a46264d91eaf0ffe2890058d8d8fc0901811662b99d89e064aca35589daae5a22149709ca81819cb857733514c3c4015673f4a3cc73809af81d4bfd616e37f95a714684e9a5ca59b27a6ee8cc0048fbc2c000f83d41023816d82041e1b0b98d3ed906acde0b5e55bda4dc254554bc112356e6b4650288f6da9658fcc5dc91d50a3b82f4850ead967bb2973bf0ec26db07add444c57c0d08e5508e9f9a4af27ec0bf3be629b0ddaa2204b39b141b712edc24a32c9be631be2e43f4c0b6aba2ec670ed5811bd44cdf5c0dc671146a40f64a95b7363d5a7e3f0ce9dfe759ecd0532269c04ee44d5d3aeefbf685ffe11c420360ef724723940f8efddab9c35317d24b84ed3e0e4dd4ca2d7591f8206c753a973a168ad570c18d121bb05f2dfbd4a4b841d7d5e6eeb6a6b4eed06fb08f305af578659c65b3dfa5473fc43f9e01574d0f50af5537344df8755a068155c4cc5f11324c1ad6edb8992901e8f166aa1b9350386a1b9a9d9b13d7bd1f75c1047bd179545ec9139e96b6106e2a45978322d6dbd75cf0c6294354ad3b6003267cdbf44e40c143d4e1c380e41e3104119b1da9f2853015e3440706c9b174edd52e003cc29bbebd945873fafab66ba7ab19f16309296912a1312814586f45264705eec8b858086559816c00f8d1d997550d8ab7f5cbacc55c7505b2f725b358dd4ff99f1354f6104ffb5752b70e1ec8c2a302b0dace67d9a2f53d585224a24c53ca54ffc93835688ec6d2607ef62b8d8571b2039c0e33fb0c4f7cf7458f1428f5c76603a784077893ab9381fae3aba6f2e7a1040566c78e3f28e969c2ad17ec38bf2e613b6f1454dc0ed9ba22a8c6f056414b2ea2265e1a4446ee435e16fd78f50d358acfecfdf34d2fb5ba4f6c88f174fc97e24de4af09b67a7940578187a1535e4967355c5d8bfdc9a66c133ab66b41ae47a43fe1dd86e9410636a600c483a0397d4004865776b99e318a536310c4aae419801b5d450aca7437a439ac848801911c1ea0c08b8c9f02e3283a551257e5f28662d30cdea31e6947f1690994b5d10224e90876db9476cd0b5519d28ff0f311be5db01627583e50c6d5c7842432f7d3bd4e06ca5f69add2af9df1b2813a2c059a8b29c0d572b0c76ff549df9182aa10d4c95ba368674938b07af2a6748d98d8f8c6c3cb546794b11cb46e89abc4bf131b996c29eb1b783ca38fd7cae11ecf6626cf841bc712b5ddd1dbb16d535f980bea4098301db5bd792acc0926e636f744d06ad26f8a04e6bfb1f2349b4cebb99555aec9aa74ec3a57f66590e9113506dba97d977cd4ceb51f5d21ab2e7e6ea5e8cf6d780c9cda18d6baed14a268afd8ab09dd2159acb4a578c5c1d42f0c7ac8fe5f07c6728a5d8c704e08b90ecd09626f173cdd79935a2fccf174287f8925374f901db584697587f8a515b8a9e161a9bdae96f346699e73361ac3deb4049a7e8aeffc990e0a06a7f082ea94ccd7546eff24f36016775fc77e15ffccada56a7f85d7cc8a2c0b14aff08b06fff6aadd03964571e6469706295fa22ffe673d6d976684b156b099143504207a629dcdd79af2a1d93f25e7e8eaaf15e097eff1d81d102f2d4971d1dc37778fd85e8ed1857cbab2916f5b31a404e593db7d59cdea3a3f3c261d643e389e0b3e14cc3c19816d4167d6c935326f459f641d5c675228d05685fdc4dccc886706b56b0da71ce88d125e62970cea243b8ab264cb37e7db81b25c20f27740d92868afb94e8ae7a982dbbe5706f94980f1cc025481a2cee5392bb6a61b7e8d7c3ad51235e702117d06880c69db72ae029ed03bb7cd39c588da9b26badfef7bbe79065079160034ef0fbaa719f132e7c72058ce70312811bab94f76094f8aa907378f29da0b8c07df3895df67433a77955f4d448956438bd7ac6748307713695efed18b82aa6945555c04345b16941a020ed8f9f344f152407e2d2a9a74fcea382e44b120269fdbc844752032434d0bcf168f34c460667a1d9b0474d30998a90b19ddbf08cc41575c2138839655fa01ee249a6d4584fcff0a1cf969a9d58bc0a89e6a844ecce5a204ddc80f0b203770a90dda376d7beea4953041aad4bd9601330054a37c1392b78edb71f77520d63961e49a1dda5d18c3a355473391b1afd378d148964cee2375bc8865b77837736d3ed4eda7bb5580e587ff3b80509ca740194385362b5200ba34cc1b0f0b3ea68ed398a098cd899df21ed10d2ed2d051e8e9fa8ec2881889c490e1a2f74cdc93182ca7a61d6df566f9095826ac23ad0d4b38e9d5cd58714b286d458ea16078d5a5f1e9d07dd40049a69fafc24f23c8ef4ac12fb974ccf79d89ad0ff984f3795d347373980c51e020820429469ea632c9453818374b3170bc9ed6df487a5a68fec80f9062542f15fb2845c76fd71cbd4a4468d82466823cb6502332589af0432060c7df7a85a7166fb6b755d9ffb52210a1525cf0ae849f704a491aac39dbaaaad5e4db54bc7ae58e75e74a773eeda1b89a3dae687f90e929fad8b50148a6954ec2dc47bec16e7d3d2cdf05904614d5adac4cad45c53cdfbf812c4ff71ae739b72bd7104e57a8ec15c79c936090b262c8b068d35641a90642211b9cfad741c2558ebd2e160aab410efc9d945e7d7b68a1bee0bcf6c7fa2f64042ca56b5a16c6a71a4779ce830e69aa207d4f88727d8934f69a11806f71e5604c7671d65d3399cd530b24e705dc95e75e9ebe618ced553f663568af78c98986e2916eaa9a156bda7d80e31b1170fd3e8019042cf08c62c59f6c479fc49dcf4955c9fb78dac979ea78c033bae06581c7cb07e9c41fa71f7380709a70020b39ed5bc3fd0918fef79ffa10d07f44df476c166901d60f2dc79329819736c0b137fa2410c10b2197e5b6e5a1162b363b676465827e003facf61215f517b052c712d2ae5a941efc13f84723c71f091575320afd454db5624bb1d9409fec769c7615009d4c65c5861740395eb24bc1c07199a68a2a1210f54b1207964a44a4446e1f093648c91f75a7fa5c10c960130c6e3138fc7e6f1f1c4431831328139b79683279b1a6dbbff536136effe8ac58c71c83e312c6386816a75acdb55f737771e2612f558710280fed291aebf27eccd1a2f39a108a427f35dd64a62e4056d2463af5e703345a1cea16946868c1a56382143d7b0811ade353905f0b80f9c38664910789b3f4545c2c320ca969725e7856a7eea0e92b972b5e6ec7c1c2344770a30456a6ba95c4949ef68295423372c12e34e88fcc96d56b7bf2ab65f41f285064d6dff81fb16f0262a886cae8f23065d933b2341ed013d54a16253796ebccbc0eb462ce4af657aa647d6b0d7d0f17d5e997ebb855de9b8df31634b515eb345b2ec4bb76adfd37da632b389f080e0071aa310ddaacb41e280ed793ef8970fd284585384cf9e3d57a0be1d406070e2d12c627cbefc6d700cc3db09ccb97e7e72a4e99b172812d10ac5ca78f3004ca49e90a62c2dd72be26beba1874fb8ef674893da695cec7ec38fa4d9bb4a0506022bae03649879c9c914eeadcf0b72fea55e20d24d0e09f353e2301f14ea028be5cec2373f55962f9e894b63b684ca0d1122321ca059adbfa103f8aae70107855a755fa4ae75a1de2c91c64af42d12926742363ea856c3af6aff293164d2fe66de272cd9143e7014d0b3582ab6bd4dfb1b4108acdf7af06f7245a77c355f0144138c06e683f0fe4abf0495bfbee67b6b8785606bb4652e06c09850ebc3d1106a1255aabb757e6f9280c1c7a56414751b3c88a1ea0f3dcedf78ca774a2894a714a679098303fada7335c1d1bdfa0000d12a873e4c9dcf07efff583ef839434c4543b0f9d2a4014e0236d8cbf3b1ceb1352a2ceb439f5bc2a3f47d1d8bc04414fde47f1707b71fedfeae191c054e5ac4d728d51420b941de618fe00238e84e0333b2fbed18e76910bee217a7a9ad2a88d84fcb58be66b7883d7a6caed90baa6d12b06ef3981f2e00b02eca636c6c92fd7e7850d10689434aabe09b24435f6f309536f8ae7e6701a64f269a410db9098d46466a696b149a2ea8a4c91352f15e34e23141e1cc191d0b401253b4b034a801a1666037b37d48a7e77d0fc441ab0664cd3b91cb6bd14970543d8d2131e7ed9e3aa60e10585c3a1a1c479095b9c746dde93a171d24f34674f033185f3a35f8072e2abf0bb33a261ef163dab897aaf0819bd0fce9987e41a11f88ca987ca99badfac59b208ad1f681087df8b190cbcdcd825ced625e9451046416d549717d351f8ff8003de8d6bf1f18432079b90c22cdd36ea1be50ccdc8a689a4709b4029b1b56fc522ea2251d8ee22559bf469181714f986574b0e33f792837a57305acf291147f6fb67ba2cb75f7373447990275b003bb02dc1430500eef3d8b32a807f05f70eee4347e408efc6b2e322cc6108f722e6d931a2f0d695d8007d7ecc4bb90b53accf31cdc7eb2aeb5d193c3d11077613d750747ca7ba2e119cab79ede8107d29c58b4b4bebb46069736425bbd3cbefe4ed4e4fed9d05c36206923cb8676e05b9ef15c84deb80544e05b206543620e1ca522b321390c68f9931ef8fe322dcc02ac86483d0e98edcca7608f1af07c23b4b2d3d4c38467c0d160a0cddb173d209d6584823772cf44a615304420f27c33c84c824ffa1615cfbd36ca907893de1c75883b506381d496899be10f5caf6fad2d19a435f8e8ba0bdfc0851563c0daac5976dc244c183e8762cfb5488cb1ed8082088df0ec1f4d9146c9033b04466d3367acc1d95f0e1e35ec5f629061a7b387666b42bd71691bcd17c557b44d3bc306ffd605f8a63119fbf9b1d18e670bf5da0439f37235924f849fa89b728615becda586af1882c602b0a9fba74e6288d5a80f76ce613ee95129b425ec3ac342d4cd66abe6a7d61583ef62e1b9cd1f7dc430b6b126ee30c77ca4a7a2d06df8d51116d16f34ab9aaf56dd6f2d98470cc6356ac31d5b8c8ffe5404da193bceb11665f3996a79b6d42da7120a865db1181e87b6617a4cfb421c6c6c8a3279246e8fc9e31aeee92186928dfa708714e1951d95424bd75ecc4447660f25ca35c4e7ff284512a5fd509fab9b179da99e9c3b93de3c96a91bf1b6ef7637d5238b657a9ba36ba297bcfb5cddcae84cf5ccb999f4aaa542b4b124ee50c4bc89abaaa01b64dfdc352555529c5e032a9f96845c30d6954d07f9066863eb41ba41124591953750ee9087a4cd14cff887350e4a02519cc12ef5dcfd0be27a7c61ec95c73066eef33a3008c1f4506559948628ea7155358c564e976475a3d84a3c2ad71ce2b7247bef6e5b4ab9a54c520676080d0843083f9ce807251b68d0c171a8a78f427d4d1698fecdfc21c11dba514f5d3ccd2bee22cb5f7191b55fe164f7eac1df7b9cec564c2e7ef5297913d129193fcda9ff32caaf3cb702b2f0887ae575a25e79225acb2ef296dac5d3bc13a0e9af64ed5559e5a347df4526a26916a26915d097206bacfe66aef2fd943c8f68ed51547947269ad31e67f9a92cff69968fb3f6a94cbfe3fe73911f641e71e5fa34efc847813b2c3deaa35020cdcbee08a9c04a78ed2fc3d1b458034e010524900083211851048756b1040b20cc6008535c4008877e8cf46fa49445c485e432a071f252e9b5d6cac41eb94f498dbc486a9af47f21893b022eba504a2dbdd3655eba191d31b12dd663b1eab6a1645d61acb97030a32367e2b0246f72a12e7487cb45c21217970e60a9b9446dc802c1164981a4f7cbfbe1816d02ab74449222064d38a52392142848025f7c53974bb9abeee2d5ed56172f4109ab686c5e2f1b0c3461c0490aeec10bfc43114a9294940f4eaa2518617d1948c24bc0808a07440a8a287e06451060cca050a28282055f0d198062042935fcc4a00042e57374ef2b0b55edf0bdd807211f862e5e5ad282300a8289e3a522d4208412124e4b2ec0356820686988550d3ff82cf5bca8c147e62a2855cdb270b75a7536870ee31977ddaa05003a2271c0c9a5fa9c42a3ee306974c4448693c9d17449e79c9a27d1e9455e63b58f347a928efedb8b1c46522d7a48996829d3db67d461ba9574d1b3235abeebd2e099111313a7d8c49f90142539d24a927ab45c525aa2e5bb114ae445e8d0131ae4840235511f2326264e4d9eb62fd1f2e72ca62429c91192222344b2c890fc1192bfa78f76aaa4d2029796f2da18dfc5f283ea088bef840813a170a3d8026320c2448d00260d4418295db2084a0849f474dcdde54758f53cadeb5eca29e0ed40dadf256c3b90de1d02a218428489481126ea244498888028a28830517b1dca6b0fb8e8427d7e27a32140c4e6aaddeb71b5f69f1e4fce7cadc6974c3c945fb30e1ecad7f2901e19bb4041311f1914d45dcfd883d99086a48422202981280675e9827f7c9c43970b2613c3f9ff715f970ef07b98c46ba24b20f725e00e5d2c165001187043447ac24847a42798d0f385a8748a9e7fc3c3a3ef796a26472d2c61f9d2053ae79c73ce39e79c73ce392ff6d06500819de6eece959ed2e516c4e925b31696b0bf8c4917e6cb973321fb65d483ac999130f251281414183040b0d59a89bd5eb2c60d1eca973109e4302c7f1c362796eee0ea2809210e1e31c6ffde7bdde79ce02a12b192fe40a31a05c208d3573555fb5d41d75a82f027b0177922062b3e4f0cc1aac102444ff8a82c3172c2c9aa861e9e9c7022c5091fd4d0c3843a016ed111c90350b8f4e01a794a84b4fbcb2524277a2ee0a4e9bbcf194ae0f92c3d3439f350facc8b7cc889a491229e8e324d032fc72af2fe43434d8f34a5334a29adc14bf4594bbc264ad9114a29a594528ac4873ca40fe432fa2e44df81e87b500c5ae04e471b3fe0cd1a8a31f4297d96cac90a41a3f5db3b14814e9088a609024f2da3bbbb4bfb6d22fab5047703154431ed734ed78013907ca23dcab9c57d427bcc0970d1120f7d16637c0a4d18ff1813e07983c39ab43f0e74be62bc45f828d21e8ea5592dac8bf4c4896ed111e94992beb7c3ac1696e4810091dfae961ceb953746b9b7af38c41732754e0479b438411e3b411ec9f283eecca7206509200b6c3f6a56adcf0277e8dbbff1d7891a056ee00479acb7547087be3f0e42a69e33fcb81d98cdf099538787cee9f01a5cb91f422274c4439991194370d21bcbb6d5c825404f4f8af8a7fddd88916cb3734e200ef3eb34676b084f201e7a94ddd384e0e219485822413203094b99c378aceede3b30f5ddcb2432898740e09d01cdf08e37cc9a956a05a29e6e692495957602b40e1e40ac10edc6e592ef03e50c4be1eef4e4e1a6415afe121d34bc4c71249366452f20c031874d50276a2087b1c827874debe33f0eb3a00e330bf1d0ff06d64f0cb33e80775cf2c4891313b09cc9990d190001e2a13f0f0f81f480ad8e0e10080dcb07bc6d24908d0d3439c8a16f6ca641a1805040282027183819e12d9d9c388e7b9a99164768ca42094cc3044c13048c1707b0edba0e64b1d6be85d1d004815dc3a801056c7f7bee061c58e02d6746dd17c0f34096ee6d70960efc4ef5c30d34ee32523aed67ffc6adb660cc1b959d84b8b62cf4a39e55876b8f39f9cb271b37c054c8439fc148c245974d677afe944a3c9c9f64c6113672d8919216ce738e1cf250c97c1e491c169fa25364faf97e64be1bf19a88e33ff36f1c169bbc26ca221c99a4e789132159d09c9386f905987f339f870d2c9e5e6b230a78fbf40b6e3c75d472c45a7a0c5a60d7126cd1f367b7076ec80e47d01fb2c311f7bbf7b8b79930fe9a30fe3056b4c011f53a68cda51179e89ec443f7219511ff970d2b0378bb3c9e1cfa3bee774f04075f0f641940c4f988e383c4f1dc0357a6c0fe72d8960f0122fabe57a9e9fce9f1e4d0ef72c4a917944f1eca9078382493bcf6cbdf8bfc7dc8896a10f7e11836a061016671cdd20324a2710afc437fcca209c235e75da73d062df0f46665991f44cb2cf327b86382580afc7169fadfe0af83ff8dff8ba20c7304bcbb18cc74fd141e0839e170581cc524f52b80947ce6a42c730639cc757d1dbc463a71faa9484950a26b8d754a4ab79cc38027923c8ca88c671c61fa3bceeaefaac3bcb56e561007dce0b0160febd717e2b0f9f559166080c3f67c79c4c614b00d2730273f3ee909d4e701ffa0eb0674fd1925eacf0c81778bae2f658bc3a49ca184785214462149ff7e2d9eb4f0dbf5904fa91432e9743a2dd0e1d990edb98fa8ef3e7259c6268c168f6870d896f149011ca6e1ccd77e0887ca920a183cc9705840d8bfe708cb9d9104a6bf3bbd65aca33a34a834ed6f66d9dcc222629684100e4d08f0964731cd6a1a68436d3d01eb18c17d058d4071a08bc368af81f762eca235cde5039e4ecdbfa4a743f3ae6fe5d7dbecfa99bca99e7999bca596c981c7ead6c7186379ac7e7df5725ce0ce61ea17b85b6fff66ce6421ae65fe66dec8b5276a586e21f358ed02abcf0e1291d0b08f799abc71bc7dee763772ed893135dfb2f91baf400e7315097ac9ac64c020b148bb7ee5fdf88c1055a15d2f972b6fd7bf9e73b9be3a89312e17589d5e79b7f0ae197013d133ffca5bbef296799a191999bff1aed7ebf52f70cb3ccdbbfe66dec83c43f4ebf5372e339379a66e7a8195a98506f054a618433fc698ba4403bafef5ad9779ce2533d37a57669979bdded572c97cb679651c5c2ed7cfb8c09dd65f3df3caad97c95b27ea1a90c76a9bc701e630b50db85d3f03e630b5ebb9ada3c9d5c7cec0d263e65b3ff32db0db74f4ee8d8cd2301081657ecfb70ffb98df55a9ca1cf61292c9f307e64bba3e0c325c95ea12096c80d4f5515b20f57f7cf4f1ae8c57784612b8f5321f3d9e1cd79187d436b14a4b3333d9f5d0249ab2296443e321f58938ea528ce97e4fcd75cf55a52bb0fd98c32cd8c26d9d6baac4ac4968d7264deb93a64d437adb1e4dad8f05b22e73d85dd2f43954ad37b2d5d163a560819d7848c179c4433a6531867e0c4df093525daa4cad2c830fb65fe35bad149f392c86a7ef4b1c76e329ec290c4f5f789ac385773dc5f1b485a7354fdf9b1c66f3f4dde9e629cdd3d753fd948531d30a4c1386fe0aacfaf5eb034d18fab7d54387c7d31d4f739eea781a80a7384f659ece3c7d49639ecef00200f30301378bf503cc3ec0386b64a0f9b918f215f290fe8d7c9178481f962f0cf926f190fe0bf91279483f47be4af29d7948df95ef120fe9e3c8b7c843fa2de46be421fd9a7c8f3ca46f932f936c9978485f679be4217d9a6c99f2f561029fb2f0f42b90cb83a0c6043e0b9585cac2bb7c8f5c973ca4af932b9387f479d0df916d4eb63ab20d004eb640d9ce641be4217d1bd91af1907e4cb633e4ea3461e8cb90a74cc687a18cff582c8c657cd43ba2c6c951eb1cf54d761d438e1a862cf50b59ea1c396a1772d438b2eb16b26b9b2c754d760dcb7149dfc855d3e498ac691bf9330203313d9323144400454ccbe42804203d43ae4033e2f059d867fc7de5ab652c578e7ac6cb90234e0bac4a1ed25d872a519555211864b87e8d1cf300c83b883fe9d657d06619f390aaeab3b4f694b5c01dae5b55c96be2108062b1180f4d532ca1e95727f5a967098aa66f7f1c1691a470d2534f1cfa2d5b871cb62393298b69aa8140d3883485124d7f22a13f93549b69bcf45a3134401d3ca433aac0addff1a9056eaa2b0d70eba069bcbbcbb324a241e36fdc95f70ebaf5d2cba1f19223d1cbd7fad16bfd8dbf58290359c35dd6a8dfca5bead6bb9481ac51dfb672d49c0e37f3a5056e22baf5354b220feb7bde44b4b7401eab5ffec6fde56fdcbf95ebdbfcf2d1cbd9af30ef50cf00377dc932f28e4b5cf28e4f58c85bfe80794b2439efb8e4f3963f2be42d91a890378d91776cc93bb2e42d61bc604dd9f6988bbc5f25ef38534ac95bc664aa5d95aad2f698de5549b66f97b7a6e93d7b347d54edd1f4b72adbf18906231087d50773f8f013a4b5d7ac9932d9acc136b14e197d17a555a93ad5a7aa54996a220ec589d785cc87eb0fdc57a165088c5f59f9157008eb89e0dc59b3420c965f01596c58f917ff021cf2e2573ee567ca5ca5bcca53152fc785fbd6a1dced51502e0a1dd29622f1d0ca3ccc2be43b61eccff00196ef5c97f1fdb9400e2be2b0a06bb75624830ff6eecd3846666d00ef296bc93f61ecb3e470c2d8c7f10356bdc8740435c051210618461e229548e10541383bc4255ae08324708ef05ef8ed6b46319460fc42a6f6fefb3ed06196c843ab2579e1819a92171ef00ed26994ad25d1d6fe4ab6c99e84048c672881a366a1c1064d48dbb7f6b5a324fbdaccbe56645f137298f7f635240efbdea6deaa6417995e006b3e88b09dc3d42a5a10220e1eab55c0adf2394cbd7aab02f258bd02e91287a580f6b51945628fd024dadabc42cd887dad887ded47ebf11a4c9fd8263e9f262572989c51255e1371ecb5b649db689d9894928e2813236d9768eba1b53f67f66791fd39647f12d947c9579569f2cb95bdecf2b9a59369eb336d366b6c1cc67f768bf0112b2986f1e534f32207b2320fb2b127a5a127212719930325b9cf91c78a9484869c486f6d46248bee7f24838a24d0d09390938c0928c9e72856645f258622825da50654cb1bafd52816d9b893a3cca02270e46b4b0ee398b426cd49f3e7dc61dca7fc4d13ecbf7febc13f2c172afe2b7f727be64fd35dba4d9868ff6bb444897fe7eff9110f89f75c11ed3f2cefc1eeff352d35f14f19b1966025ef4f4f1e468771a13ff5803527d045de73b667d19e475a7eca9e495a3e69f95f26da3449d3272d7f5e8d9283cc23babe3b3971983f81fb7a159c3fa83c5579f67828674f112ddf9f801ce64eae11d9910bea4424fe92c8612c0efa92874d333b53cffc113a228352344531c674e3f71bffdeb3e7cfb997ef7bbeffe5f95ebe94d2778a7f7adef1c7ae699f7a8cc119d3578b5ce43cf5a5beabbbaf0377f67dbf5163e97df474ba9fff657f4abd9777babf1f3d0174e0ce0477587aa4de3f95fafb373e631ecaa83bf99e75b89f99e5c716b5d76481fd6fa6cfbce33f41961f17dcf1df9e7bf560ef51bf7dc973ea6ffe1ee7e9defd4fe5eebfdccd4f65ff2fdf9f9eb9f732113dfd83ccbff93e07fa9387f251d99d3c9433efccdf26b8e376c63c3f99de0e271eca775181ddcb6989317348fe0c72d86b39e5cf241147c47222d1d2dddd9b5298f0c628472f8ed05c7080f7d5b09bcfe1e14b091c6988f0b6713120c705093ab4f6a04e0112a000a72fbdd6567bc14d24563b29b5b6e6c0435f852c585d0f7a16acfc628155fc3a752deffa5ae599fa5e6dd2f9e3eb634b678e6edf9ff3d9dd2bab86922f35cafbb1c2711c8d3132ba9743638c7c4e7a9dcf3be7dcf2a7957372938b719dbfcbcf17cd8d8e1e9a8c546fb3eba2c354da3de6dbdd2e55b5bfe3954f3af381189451734f47497a3b9c66ab2352cf11ee62bc54d3e66f1ba7ddeed5aea6bdbcf15bf3d4d2d38951d08e04eda0a6da6fcfb9b59e4e44c2d6ad7868b7793b621434e7e94429cc4e769d942edf96c0df4cd4ed280657343fa7eafcde38e739f84284e373f4d21cf5fbdf1d57e9a897e3600086c02a97079058e4ed885010515db183aa49e5047681b2c901c5ea092b2b526217cee72e91a73bb8f07638c8f2c35ffbad022a2b1dcddaeb1d9fb3d54eeb96da9abf4da488edd62bafbc574a1914f09f5bd3f46dded15e3be8e0cb0d70e4240c135c41748590154dfeced2b3c3ef306b45919e9349cfe8c3cda7cfd9f853239afe0a47114e4a29b522a6298d33c944fc8cf3046f7aa3ff9c31521770fc9d27e7b20914e08db55f105451a47d015cd451efcc28bd7b63bc54774e9ac7ea1c503c97ef12c7dc99c04a4a474732999f8083e15a66749161044b19a3bbffab879aa81d072701109d7300961f91a85022e347bd634ccf8035fd9973a09a823c524fc9012c655c0847607df8b289b3232a0049b557120debc397cb96009298f5b3241e90482709a42393a804d05154e261a6a312fd4ae20149120f424798704a5724219a58743e145d1d937c18f241a6b7164bf22104baf3927cf8d1120b2e003808001213c0f2af872a42360532d2283a2601cd404a3929d00a28d59c2c49023272020e0bc111c909329dd483928ebfd231a907a3004c3a291482a4945483318539e7d42a12164c54d3b46a91b04842c2c206a0b501275ffae4a148120f409a873827147252ccddab45ba8209b5446749b1a45aebdd92624574436da8a4988e48442cd16e0418c5a138270c25c53eb07152cce73e216de104698b25a42d9a206d9144d779484e3842daa248afbe2470e105986034c50f4d6c9104a4228ad0d0b1092634e142c72478e08a191be244b340807d88137777776f7a898d707c7edcdddddddd1db3e25d79029e4ef4092b289d4de40e5e4bf0c6dac99c3434d0a21314170f294a96e104ef96bb044d3f74bd74d01c9a0af19a381bb27172db1e108ff4cef6d6fec6e1ee77486ec2a811059c7a9567e5955fe58de50ed269211ed2bf208f25bc63d18e4c0c40a9cc1abc6d6a0c80f292481b40013c509eb2564f9f5be59567e598b2b289ac268b05b2fc4079d6eba03c4b25ef4eabfcca8ab6925dacb800a50c648d949457c9db45a7acbef7a4a7a37a7f149498c963b5e7bdf733fba3ec1ddf7bb7db1e98c3e4c0581f95ebef20b78278c7552477821dd66553999e3f230bec1c90fee9e16a14b3212511890a6fa2e79c6e84325d49cfaf14363b6bad7d1daa6d046f7c30beefe3b0f8f347cf17faf19e39433d5fcf3993583e914e64935c924db09cc93b8de69c73ce7944cf77210fe7fc10b3b8386345b5f1634d1641b4b77927be8d6f638c4fdfda08b23c9cab1d51860282b2e24ce7096f1a1a9f4f57ac161ac49bf893122fd052ce8d5a6bddaddda47470476eeeb7086e9bf7901fcdfda3de660edc281a8ff4f632cb1c641e09b2e59587b44a704756b045a3f3a3b8dbb67992c3ac6c7309fde535df479cf2d9ac5181f469d6a44099c348d77e9ca34f32f8e0ed352f87dbbcdc73840c3ea87bef7591c101bc3b194060e9421c2669ca77244f947a9888a64cd274b454d46466b44489cc48ec089299e4848849d08f13d393a9d474b45434335a826a1a428c1a601b0f270d8d872eaaa710de544be7a666fffeaec942a3bfe51ded37ed37cdbea681785e171578d3ffd7f35ff3693066b16c503b2bb07c8dbedd36223559606b3770ce200f2dc53790af696fbf260b2c77eac708b2fcb0daea074b7083ac1f1c758b8e0d22840842db1e957bb847d56481ed8eddf16303777e87a5077dfbf4081f1ee78879e704c11d961e51effa16bc5e053b6a83082c7f1e9169fa5c6cf29a1ccec361a8134d5ffb988f5e4eeba5a6f1725e1ed2bfc9518338e7b5d65adf561a2d1af986e351abeca8b703005fc1ed4fba3e8d6c5f3e49274d4c2da1232db0ca3ca45549060efd0dc936b425d98836250e6bfd2bcfd8d3c832f8e0d6d3781fcf512fc747abf54f23b728398cc6d387313d8c5b0fa4f53b6c3d4c0bdc36bafea76666667eb3744a06cb6019fcf8f5fa8db5eaa57ad5a3b87e5f8de2fa8d358aeb374ba33c8d4a2385460a8ddf57a77c741a9fd2facdd2abd66fac57add5af545454549e6608d725d87e39396cfb134d1fb65d9ad2ff41838f9af7f1d4c703a1c1c7ef58c483869a1c3dfc01d2e4e8a10d3a3ca434efe3bdc86b68781f60103fd23efec647d63104f69103d4b1c980e4bf6982ebd7f701a40a80e9356533e0ca6ca568e568658825c492b164401610cbe745ec056ef9a4ebbf70815b26e9fa30946030c17082f135f588a58865c6420364f9e82d1fbd45d6d202b70cd2f55b60e066b16e801be31ae0bedac6efab637cf48ff1345a1f13636ffca631ad1c3dacb288e3c65310d8b9d13ce7e321a521d7220e439f265720104cfa4d2071d2bbca1cb6ab91e6e4b0ad316987a9f0f46b92c324ccc62690f468faf508adb20b85de5dd352530e3417250d7044b24011cd45189679aab9ad8b373fe059821843afb639461c38d8d6b72cb85bdfc2dff898bc23123ac67a02683dec2b937a64e4b056d00bbf5f80f97d23c7ef1817bf65b8f03b068edf2ada7adabe16e9dbb74f230e18de82f66b119b699000db0a04d6a0d6cc4f9f186362be7a33cc9faf4a314f5bd031ff02b86d6474ccc3c47c0e708731ef22e65d00631e07b8b18e79efafb7c3e6639ee3509d0c548b2aa8164cf434d971809ea418461d63488508c216d3f539d487f2efb91b97dfdf20c4612e3ebe0ef8a3cac715936502ca4fd2dbe12f48589f27ebc3a46d8f055d7f36f5a13829e597ed73392abf435e2fc76e3af36c76ed1aaff0e7a8ac7cdff7d4cbf9521f2da27ee564b779336855fd956c9d3cacef225b271ed6efb27db24f3cacaf926fecf67888f2bb06e9fa1e146cecfb8e48ea54aefd98c0c18fb6ff3181831efd59d0fa78586d2cdb1e1bfb549b97f361d5f75c8a2af5a17c9faafbbe477939dfb5a9e72c4aca354aded647d757e57d7dbc4ff5bdf77d281414172f1cf5a1be0c18d1fb6eb1dd2d86226330c163ddd517081708e9611e5e495e1187c42aa88d2243fb6f18ded148ea5e49e69c1d9594ca239c7c99719e60ec04201d919af0a39d0a263a7a393760f96e33378dc6ac212ebeb0b5f3d21f232f5e680bce4dd600c7249f267d7fa5937c64fabe5fadc690be176b6c84a14fe97b3a2b7d9f9391e69007d805568e2b85f6240c0469a79e4eb883822fc3086f9ad7e19fc3862e89f110ee00e7d031c9674873f5b9cda34bfbe8f598f769d69c86748c3534d717cc5ab8044f8f291cd48f2e5c65d918adc5316e966e43dd6a6df4ace7b1f4a8f16fb5113bacfebd7693c2cac3fb1dea6d6641552e8542e167c1b5568ebbfffdfdcba5ee5bd4cda11138eaa8040f33cdf250fb9587da4fed35cdd37971e3d4fbf1e2fbeffb95c3beef822f48e0f815d5e5a03a901563e247218cf45e416b1f5128aff5b9af39b3dc1aedbdddef2d6ea8cadd6befbdf1dd51e066ab06eefc37442918e6604a8c92e2da14f6a27424a29df282ef021b75ad2a55d7755df75cedfebeccaef47252bfc41148f47d1b55596a14977fa9fa3a158beaa38eb6d6eacdd0791f1151a8bc8c53305460cf72a9ea4710a1ed735f74ff7604b0e554dd5d759b4a85f27dabebe5d8ee5e15a728cf7e5f2a6533a02406d0e3aeeb66dd9cd327a702bf537b2ec75a4d9baf695ab69ab5d65a2d5bcdda6ece3971776fadd66616ce436db5d62b35d5b44e732902969ad6692cafae2119a144cfd7b49fa0cb4377f1d06ad3abdbbcd9d7fe7a39dab5a97b3dd436abf6bda6ddd467b5edb56d43a1b66db39bf69df57234df6ed45da7699a56eb758921c40d6edc3e721f515d949d97733f7edf77d9c6c3cbc1104105af2eb6f6deaddeee51282ddfeeee884ccc407966ce8d2814e775df75bfd2eef572ae66ede59ef3501badf6a2dea250f76a14453f3a9be8a8a9ad9ee7cd7cbb7befbdf7a5c7fda597731c6896735eabcd19b49b638b9e0e4d47841b1a5144cfe65dafcb6111dfcf956e66d5d3fc7d54e5f95b96304a60c961951abac21c1980988ff274eccc610afc7bce930188a9af6b0ad2d85814957d17fa9ccaa67deaa6b47b3d7aefab74d7ad8bce66ed39cddad971b987c66d74dad9594b37d436b5e75e7b6a3b6b2db5a9d4b51c87d2cd266bff567befa5f46a5446157ef1bd4a6ea437e0287dc72cbfdb754cace13f738d18fa631bda81a05d072e78ae18e34f03c925a7f48cb0d6437ddff771cf49f77278509ea6524deae5f074af13350ea8f7fec6bde9bdccba6ddb3654ee9e2bc282e10a3a54ce7b2e5b56bd97a346e578cf79282f67bb36354411948ed4de4f4f0620308b8e4d9c1ce9b0e8cfe5539c97b35deba93e0fa7be0fc5cbd9ae4da99ce771f66ff752735d8edadb8668a2df7361e9ca6a8938a4ae97bb46f4aed1c9151af870d1254a1595dac559f3d27d0aab503e7ee872d80aa6f2f1691cf67d7c1bcebdedaddcf2cbcc355551f9bc9b82d44a963a35e55b305c0196cf5d9bf16465a971951a4459cfca7f91a35e719dcd9177eb568cf002e5c47536ab3418596ad585c1a154962c35cac6d2bde8c1eb6c4eb12d59ea14548bf77536afae97c3927ac5c5f840186c9d0a5845a55321f5a208a86e852c3f6f05ac6a919125ce8cfc13a6fe4b8e1e2b64e23342860aa5b3d9fb9bf32f586099f22cf872032cbf08a1942c34b79a3a221911d39c37a956eddd505cf771df8d18531f466733f8f7c5bff8a8352fe71f054dd0d13342c68b22e8e8ad00ea88840218e8e8a9f037ced211090523d0d18bf137ceb1a0a0071dbd96bff1eae5b03cc7825484938e1e8c173a221531d31e2b67e539960aad5e0e4d8ca90f430cf0bf60b5b062a834aba2b2faed57ab9cffd6486bcd37fe39ea1572d42ae4a863e4a85b72d42c396a1839ea17d9352b47bd2223471ceee9b4b6cbf6bddcfd8cdc7304e7f22f2eefc3e3b080da8c90f1374e00c79101b2264c75c92e0e539f851cfdc676e9fa6193fb59151fd495964251a6caa56faebb6c5d20716704121df5cdae2fc8f2b07e0a6c4182378dae34361187e45054034af48ec1e32c86bfa8603531c6ac0f5f3ae23803ec3e3b219e60a7f0043b0525643d4a90200a16e82706f5b968adddb66ddb3647226e484404e9a8b5cf437ddff74dda6d1bd53a7b5f66d3db71ad557d1ed7d91c16c1793a36e3bf3995f16b18a609f8e6d814604e47242264fac655bacee6d0082c755c4206317ddf2e11fb800ea72f187a5877b87e97e754b5fb6e8aeaf3507e7b941414cffb3a7cad9763bbeba5a24ec92ee5de73f73bcf5afb79a8d46f9faa35f5a9d4af1c967af997fb14076e22b6b34d7ad790d1daeeadb5df6fef37eaf3509c94f7f5491855c000d37f1970d461f4050b3c29055f5880a78e4a50e1a3e573b393a056a79cd367d70347658eb51ceeb87843a7b1014c579cd36f4f404f9005a303bce9b6da8257eba4ed68939614a5a9f7121aa22f36c040fce8bd82f697d8617c7eadb5ceb9a1e89cd6ce69edb43fb715be2f4860f92d5061a9b5944a296db6b7069df6a8b48cd7b4410d15a21100000000c314002028100e070422915034204ad26a1e14800d8a9a4a70441c0ad4248961c818440c01841002000132023033323316ad2eb6a0ccb07506deb6b0b6f993f8abe8fc205821c3f029cc7dee6c482a57e90360c5a6c8b72cc8f770e718ce10a7bca0e63c7b9938039a891494a6e51653b2786971caa6fa1122991ea92d1452935de2d995b669cd3df014c971fe825228aa445402a31a3fd7c6a91c6c85e5ec86f94f0fab63632aec643d7e290646d40a7d65cc150c3d0ac221c89ae3816171a8b95a16a216c81c378aa92584bc021f2124ef45708727246c1f2100d24a1ea519cb9658ff5260a77ed18f987d167d1046c1387ac31faf609b99c2dcd2fefc97e9acfdf3706a38346e876627a4768a5b289a2a45d484250e5820e0487f678a4b0612a10395812846e9b29b470b7f882c751b09d1c41e80c653e189040b8d73bea03f72c7f292c5894a5d7067367bb3c69250cad318ccd6eec9cb9329a8019aec85ef1c3c9a075254449c7e547c25b8f7a2eb92c631d9071779cf06a5c45c3a6c75a5ffcd8a858b2c26ccb825ba4b9dc4500de212f85b028840cdc8cc930ab8061aed3438863abdd1ec85f2e70cc4f8ade031438c4e87c730620aa0a0c411df65ad6dc71ea81be265a33558f9f3dd57aa882836e66ca5b83d50953a5db2dff0666070be9601fe4ef86fba1f82399d0d9e81f352072d0f7b6d47ab94a9b4fc11a94dbc60dcc095af18ce8cd739690aecd391338ff44839b5192c198e33896ab123d57869fb09c5d7586f5c3075df97fa39ec184cd8ae045bd88bdacf6deb339f6323cf8d355817d2a539eddccd516ecab5eb4ad555de72693b0f98c87d94a71b7270dd5aca2dbf9d2968d65c5e68df7d6ef2cff56fed1c08daa2c4bc0098a3878f411ce3a97edfe57316f35f3f5d79f61210beaa9dabfc3440fde596dbc7b47c8455306c6362bea0a7731dcc3ff460d45a7789acd4784952a4a6671207ca3aa78e3c67e78b032945982d0b5f818928f3f605d0b19ba32d05300c242842147485574d058bc47cf426619ca2c5c256f71e26f62a298fa0d750d6ef89e9e586b1d58d784dabf5ee388f07370d3251c0a8db91d45ea34a39067c5941753c5fd32ae0d406e3ca1f63baa47c8a75b8453d034e47111929ae507161c61def3c1b7941af92260eb2ce138e5b8a00d2ae045fdbcd9ac9c844dabdf629796dc047f0878142e261189703f4c46afd303155e09d0b553fdda708710aa33d59c2aae8e5df51045f94d239e969d22ad628afd40a861a9169a3f53d583b9c28a643975ec49a0bccf0d729e4d3f33e032e25978a4d717852d2b956adaa832d117e2d35156586b1d4e39ab0acf1fa823c1f9894435d2b6510b7e07dc641d3898203b24777a375ff5feb2ef735e6355dba80d831c14ebc28b5f565da9e78bc8247f2fd2afc4af7b527c6f502f6fb8dfee53c45ca96285b298e0c54b653057b48154c86157b2eac1da45bc6a4fdc721d12178224b9c1f5c95667111433d3eef738a939854e0f663a4e14d58f8079894b76d478b3daa629f01b3eb40ef634ecdec1b008edade223e2af5847383dc377f948d0d9072fc278e7237d82c66abaf746c83e3f178a80e450791001d92b59a034ec27d448e1aa2ef521ec2f371ec4c0501bc8e33f0b82ee75d15f3341f902b93f6524d9ee780a494017479278109d8f7c5f0ff6ea5de81c592ff7b2bce747c2a11d94f6138ecda61efeaa9948cf4d11c0739f3a951726daa0e72385b18c84a8ec917f923a548762148b21bc85bbe899016a2ae17556cb450ab8bd82be107dea259417d73286f5fe437d4f2e7e8c3306e2a0a0043ed8ba97c187f8d9fcc6b0fca1f9247f755e2872ea77490d202881fc932708cb22911a647efd85392b9440f5b4de170a06ece36e18edb0004ea413220b918276476aad9e3649e0252b90f5953221cb6b02094a2a7e0d4339a4470c91d6b67c07381b64ab93fe214223e6b7ff440a07bb19d8c9bf7863cec488cf7a01b7bb0ffdf029029b8e942068e3f6ef0ffd961781de080965c5f9442400ff70242f7a4877b0ad962b1bc33dea8cf328e5fc8ab694884247b7628f62775ee13dc655522572054650f95a008aca42e4e48d5f0937ce3b9a17d3ead661cae0ccab8f06c35752e3beb8424e5e62d752ab5fe41093e26d7e6b8cac31755812aeb2d3c3f090ffd94a16dc8a5e2023278ce18906594b1846b861b0a7c9cf69628d93e4cf87192da0dbc1c02ce463d466e762687e047bdabb20f2290185950f9102cd4db18d91171493c88bd219df633c2e015942fdcf1ffbb9a1920a3d2811a8d250cbb3bb1d637e33f7ef318b22392dc60946ede5e1ad83e23af1b59183c941b76687414e577463ba6102462e74260ecb2d67f7cd76dd4626333bb6df0eaa282f60ae665f5044f6df1d36d8bdf3087c761b210dd914752a51d80856393728e056e0e3e97e8931cc5a24c870d3b7529ce9db85c78bfa8e3d8f916adf291253ba721c6a3223071834ec84a93d9df833f54031c1889fb384ad31b8c4c9c3556194276481063b08ad8ca256286fc0fc637e0e2f4e56e9a767b840ca88916c12a62044cc34cb2700483e46d90cd584f7326c40740137333351fc8dfb5370c74df085baedf62cc615f663490db424331a53e768bb1927485504410e27dde8109e103ce795fd11cd1a11b10abf72c81158704e590eab7183c4f1fd011c3e77b6e6a151a41825038c2678e37f359c5a2cb94c219f5dd10a12304ae2714097ba2d96650cc3a3fb1965a188f73ed94df1dbf0876a5930cc976a1febbc78f0c97787356518905563fe2080fb808693d36baf9460fd4c3fe92a23766ae703f272ca042446886f57545a4ad0ea363e5b97752a507813b6c8e9c03c5799d51fc285f213be24cb90af98c632dca9ad48ce354366ca45ddb97cf040d498bb261e54ae50bf237cc4dde0e30946496d187c30be1c94591043fb3e5b91184f93069c2f627bcdb49254d0b5617440411263bc27cce080c02df051c35f1b87a9b710ca47577ee53777276a160a19160fa73f2162851ace5cc549bd7acd59edc97c2c2745e852833fc14d7450b61e677144b9a89595bdb992833488cdb47606ada5dde1c166285194e1b816d6eaa4e3602937ab2cdecadd023008c15a941833e0a663a026f82d5e676a452c31b81a30fb0c8fd878ad525814b8dc00e66c0f287e859bd64f5ab16031de109204d47e01b11beaa01f850fae7a69cf7be0091dd26ee1a7f1117ecf6b8c26edfe03ba06b2276584489b4752a15559e1cc8e3e708b0b8b0a66a0383b779a2af45fec0e50d977857d04e163dcb0ace08f3877b0bad1badfd61365c8c1981ff0992cbe90f6f2b0c58319122ae378e302c47604604fdffd0649b88774d4fedfcbc58cdc4f35517299a8cc05466d55ef2cf0b084c29ef743e1165cf9168aef72cc56faccb52d03545625595082074325a7413a2044d6acf8a411e41542898069759dc521f4330756319448617f06d77d98cf973f237e4aa91a9d9fb0b32cc1a8f181ab7f0b7adc547dc171e15b755eacca2919b010237a989709643fdeed025bf0671fc616c0efc0b8264eaaa18c20826635c865cd16900f9964f59fec3a0f50dd6f75ab1149a2262751608b3c7a96d132f60843ac42b7b049874b69431e9b88eed4727960a747f8a4984d2db42046d87e82e3db2307d08ced1328b9b1a973d86946b239105cba8aaf300ad05707e1bcc3c5f3c269d82054d880c101262ca5bb46058e8dfef0859788138be730ce52cdc1463ee0084283bb27c88fb3326895cdf820ea4bb120e55a3f126106a1c1b08c1e3e1bac2b2f38ed7e11f8385bc4c02b155bb61423cc94c94d5eb5042a8da3bf97260cc67aa1ed59beee0544b17d2189bdaae24caef3896a31b9334a00c7022f64b14ae5ff50689c39c5a875d2bbcfb7ff603c2f43c3721c9bb96c13693b20eb3f76fa314393d26e2bd50aab18a9a2e0c2b26db4c17be4d902d8d314e95fab1b8d5bf886dd2dc8b6ed525987b5948f901a34289fef4011d72d070c0525b718c435765e036fb6e36f956caf17da0e464a8acadf65aae04e509a80496babd706f323359e303d8bf096411c3a89128d4836d2e5268f3bf82862bedf84a448309b65261b1f4d56246041f2312312fcf1b74d2e987adb7a6905a36722c376a20bd207c4941cb68158a083d22e743b4517a08e637e9df7b2472acd4d25795fd744b3f4458edd44067ccbd886f56521248bc815390f997e5c7137762b39761c7a94949d29dc584b2d4e21c70c5482727c9751c8c1a6ff489159625fd1490bc2665f53382c1d264bf441026090f5150f9d0f7f5604c2bd27f881f2a707a513bbf03e78e329dfcc20684903af143f8516cfd542971eb910a4345bf8b5a1e5dedbb6c3ea0649ec69e59775d7e2f2001e085876439884236d1291d944f163054ee5489e5eb737d5fccf6ac912b093ace4dc501483fb4c016ae06b209c861cd1b90741ff44f6962a8f2124babd8a8184dcafc69b385a5d7785415c285c31471b1ee75654c8be87f6b1b8a39ea0e40496a40b2031f7325bf194219c6db817e0d4ede39f721cc03eb99e8124643f82345b259280acc872732e48f5d65f9fb223544707e0243b23094b8f5b3c3871c1c2b28908c2c11ab032d3ea8bac10e2991c618274282af1f6f62f900d4519e23957a8c1892c521c20226c7706e9dca40ed08b7c00b08517282657447881bfe6dee638b4aa7250bd3c0e34ce96bb152bf29139ad6d3a2c8f3c627244b65cea9237967b121bc2bfb346bb0f719df2ed220e6bb89ac521661916b13cee2b6626b1bfd789f471c48bf19583ab8d6f66d5d1d812439c1b5de4b201d21f07efd99d5ec8a43e6178babd43bf4fd5ab6341e1be34917b6c5b9f568b3bf00a1527781f914ea845fa43089b52b88d414decc55568cf909daea690cad88d416df344f51e5a7ad15e6b19903d93a10c3736db6f4ff044e2c32fd2f1d99e2649467c0a8a7ed7c5d2a8c7aee547fb1f8dce2a705be4bb7146a79a78ddff5af24374ad97023526c970f3a6402d48860d8e4b885c1f7e1b71b3531299d3a2d27437e04e17f84fbe772867a8ec951edf07a9473e2abf81a6b1f7929cb0ba105969ecd91a0c725379d8aa11384c07f21868c8c0eaf4d3dbe89ca72fc2e517b89fcfad761a4063c1560f572352d20498abeda1a44e7a9de78b6821e1d429127dc5323ba916fb5523cb40c78531acc5c01edf28fee6a6cddc0942297fcb2108e3d7bf93dda1c189613381ffea2646dce0885ee6a6ad9022dc9ec37dcff7bd5dc00bd5a8a582a5d7013ca3cc670e58241b4c56540562f31fc97f5d89add57a70bb64f59c5075f654a6d190921b7e06066a03763e24ac7ad2ce3101c1b569731025388850add4f6edca5c04e3c3f6c19472efa04eed0f3c277aaedf90c8567ffb6192ae2bf89c13bf914d34ee9dff3836a51698ea9581bab15ea3ac10c350d378428e3e3d4d46c4badb52fb7c719694b02e05236b78e5e7a2ddd65a8111185008f9462d7374469723a08ba4012947b4c36f5683d3d7102c3711a1db4ab09ece58e35155b119e932220ca17585244a137ed8a2e8575a892c1afa5554aaee1acee1836354f81e356b433324aad05ef2955a135e9cd0e15e3dc956ac436c75638a2f18191e05b35fa8cc53a142a6f99c1ba0b542487037f8dab0cb70ed89b522ed5fd205afaf301b0bf1c7c56ee09888a8674899aa57f1236c0b07e4f560e73308785a3133ea3bc069f9f45ec07ed21339c024ad86be983c93739801c7928a899dd9410e6a4f6f5f5ad6a2d8569d67dabb6fabf53a729b169251f564346795876734de7972d1e8137c46e32cf3e332da6494dafc80f4be2f4d5f91350b6802f58d0c2c8d6009669dc82ebbe7523f97cc3916c064b01023fcbf8d8cfbae294173a526533423c5b2cd419bed8eadb061243ab75864c3eb67f3d45e8c642ecf4838f40e01172f3727161cc903a27fad0682be5a03309eb120c383968ad0fee7144a67f09f7edb7e9966b52c84672a5511201e6bac203e83249f84b50bb82544616b25ede8b25967da596118d466d5b9548c7e8e34127a207c35c2453436a7e6884f9411ff78345e2885670b2aa93765f01ee5095ba4c1b49a27ab409f508a30138b89a2e0a4ba708e15b9ce71b8470f41c2079b61eae897c1903a2d717635bd1c81c18f67a24604612e176e177d8f9dd05ebdfc040fceb52faa52e18e8efbb242f75ec117c71ac7421a524de4862901c5eb6991210e1e03a87f4d60b5815af6c73d3e3e6829dee875bbf0c81d737296ec4f4ef92240ccea809a54a684a63bdb09af548eb6f80a073486b6eb76419c66210c1c8d433d379108e01c1e7986737b7c6a8b13f3c17c0a226b0f4f9cbb2003821ec10efc4f3c74927e7554c2353c308d41b0402b8627b5b34c6b0772209f8d8484faa5f7535a892b710bb2b8ce9b009f3a34ad63351e66c3cebafc88048409b12fb69fca788fcb872190393c93b9a183b7f1edb54cf0c28f900033134c59ba21e2f34bdf6a0464a4808dde15d7021a3fa27082f56876fb52aed1639576a5a7af2cc27d3d40ab592d122d7fefad26e288c14cefb2e64620f4ef126e6b2c5c95203cd898373db02f8f755b07ce93ac82833f4e3b1c2af7e76e654b2a251158410bb08884b7293a449fe2432b899ea4ea394059f7f21da34ffe8848184f4192f7c2710d729033b33cea9211c8f30ee6748edc81156f2c30bad5da19343f4eb326f5f0560bb38c8af2b3cd11ca1b06e2d942b97050b5daf88dd1e64167e739bf00c6762e27ace25b70b46231a439688fa986e064d53e285bec749ac3c6ff3a0b4c50964e86908899181ac0404fd10a51475ab9a55c41c7534e13cfe261cf7c9663854d5cd64129944e1fc5c0d467b4e60c4914f64051d2e37e98d71653325b3de224485799bc2811ba92c37ed6e48a73d00834b9ad4fec8fb5be1801bf77078a33c014cd501886f4885c771d63ecc8ea3f2cbdbec7bf09e1870aa494a7001ae7ae32f42618bdd4be5340b19ea1a3545ba56759c186d0b8e23884263360a38281bcc77952b27cdd575e5d4fed1455e50b5b9722eae61111cac621c7c5c2dad80295ef4bc9d23133a44b4921cd4b071fe3eb675e991c7a99874a6d5ad2cfb03984e4955ad80fd912064fd91834c0b82ba110e48db9194d8ce43102689e3ae06c3a7ece595c64eb62c5e5f863af79d04c897adbcbc21362638dffecb6d1252a5404572eb17a04bd3aeded1f76d70f345ef548718a5af9737a560776e65b199229629c35860639069138d20abb42aaf34f3e96d835f0a335ec05868095d00a2564e6bd951865c417aa851aeb0b699ef7b187dfe1904a3bfcc2f07d787b2e3281013ebf81be4c8d993edb516bc4a5f0a022e68bad476009c3834b77f5220f6932e0462c8f6a1c5a21a5d13b9e57ffe618ba99a04d36aa461a49b805470b29ef6dd90616697551c8e578e36f5acafd5fd690ebf77e769fa506c72100d81b50c4825ebbcbdd931579614bb44f577f9c9668e98d3dfae1f5b26a4f1d2c1505e6caaeeb4f03f46212ed0498c11c46423cfe89f27a8cdbd17d6fbaf1a72cc26f6ca6d4b707bbcb44b924aeeec9695fa674967d4d826c28937c0e984c91a10c4c4fd414d8fe7497c8ac8224cc73a5bd517bc8640a61efceb4ba2fe4823882519f7299678cde2a917ebd71201c1e52c2bb518e6958e25015ec233fd9443d4ed0111c84ea47707521100792d585d76e6d497bc761bebd61468d36111c021ef162574d17bf88934173125c879870d27a54e978e9a2e99a5a45da4757fc5d32a3653121caf0277b47e22262675940441714e66484b7eb4956ef90dd5ae82c5f3598e6ad0cd86bcb2d8ba36c314db5cb1accad67fbd7ddff4155054f85a14b171707076c254f751c1ec7ad748d17c93d4844199ea0f52a004d91f0a0af8721375698cbd2574a198d8d0a3ac1b73e12bcc664f053e0097bfcc4414bc0ba3597003c5157e8d5e61ce35a581df058d19fc5b09f70d123233d4694245a417c76f04e26ede7cf40cc0f74d02dd481dce35a7fa129e5d22c56c7b838302e5b30a48e235d27a84f2ab09314099869133733d80ce001644512290adaff3f8db067f7304a7efa82ef09c8fdd009620b8e70633cc4d023ab9e8292d23bd6efb592c00e30c74794d20f569c83e2bee726128afc912bb08e01f11d22a49116a54b6488628f9caa1d1dc48e44ad1088c350c7ec3b3bcca256349c17a7f68099d7466cb09504984c2a81c92a2d814187e8c659063128da7698726096cb9a48ae6df30002c4d0df9f7ea80ceac9d0e94da7bed27e896cbaaf700bd5ac121cb612fdec20fe782569ba3dcd99b041fccdf7548dcfc3d71478cc5d08667dea864e81c53765b07a9b07919511dda09ce9e0ac75ac6b70bf05888dd092619622a3201fc86503189ac631c71b8b080becc1915d61c07af299303c9b374d0e5e09aa80135be8f03720a760825139836bc64d775c99604447841fbe18036d0d980d63e25ceeb2565c5f2b8ef6212e8277f808a8710d3d04ff2f33e41280411415178c89f475da58e0b4aaf575cfdb4b700530dae556cf3b073cfc3a77c9c61c9fced909c89133288c3c6eb2f1270ef555b08fc3eae4f196ca809bc5afa6bbbf16109e9d49fc6a7732b7785c1c9ad26a62cd68008173fc5265ba08ce9fe5db2ac3b4d23b4cc3455ae699731cfe504297d9afeeedbf1b1f7ee7f4c5b4cd8596a86fd3a0992d5eb4c9d15210061567454d5f41e188dac4c7b13621154103cc465b0f190a81647f3f578ac51b05582db95a111167953d4b05d64e6f88fae605a53ed9b4f21d5029800326ec6650f227ab9ff3c53ada5df3a566597e072cd5c667b0c17e355c08b85ae514c94b820a94be02d37c5b974d9b6e75c2d55eed53252ce97eeb67daeffa410f5d0f012904c52d847033dc3e14f6beacd7135c365658e860f42570e18abb8c185130c3e4cd9c642a7a98279d935c9ae400061b6e0dad8006ea9591e08f6b906af9e608dffbd8c6bc811ac9b441a8cda71bc65e98480d3e49311c7da01d937aae83aca9209ee8aaf0d300324eec198480f8e62f37daa5f5ad55a6774f60cafaaed85db4606ad0a5649aaba6294c3a1a0329287061f7ed4f659705afa1d4002953fde7d8912d038d0e54a2e0451c7414d297adc7403eaa5f8202010071c38f85fe8ae0a63f9dbcbab49e1535decb50b6e236d7408c6dc974de0ed9993f078d91830addebfbd4a25aa08f8dc8179945f462279eb89f8c7009566e9ad4cd86ac922f5666f6389274c305828f20e3b582c57e1415ff8e511330402d6aac84ac1cd6637ca3da6669985fe622a5caff852ad1a43c1a825e2c70326c2ae4c921424c6bc748bb2ba05f7651c7e7bb2e53b3f6463c52df4e17d4f81384f3dd6f957f9bc5858cab849cdb492e6e4682617bc942d8b9af0059917cc3ffe7bdbc8ccc6f055937d20c0e895ff78a54cd31ff7f7f649847e68828127a2c9982a7c9094c17c620e377309891100ecdb23ffda388918fd80ddafa12208f6f04ea76a7ef30eb416ed16150e1a95114668b8522845246bab73b960299dae85cceee9ebe04628d9cf33ed9b4f053eeec881636bfc4c3a37594ebf6dc077cb037f0408aa670b8d533614e02b8f0cb4317bc972a318deb6dca1ee6c8391752d1a853aba17f1aad882f090094ee709adddcc67cf8092011781ac45c950508d255fb9a68027eaf9968825c4a6a9d47ada23bc29a58f3251d70c49aea049bdd1f5d809728d96f9b200f2f1fdb0de354718fb6734a6f5129cb4b62da3c5bf7a01f841ee61046ee6d2088b600ee0471533de3c343daad80d3ab8afc9d4ce6a76fee3fa45295518458f300e9251e90810759b54a42f8c40aba960468e89091ce0b7cd1faae699288b765f8da75242926e117af3e2b1ed6d42838c65508c7707ffae5f12fcefa27f9af7a42746708ca99a9606e4af8e9482036fe5abc79e834ee84a60737eae9c9443a9fad7a16a4b96b71a5cc1575f52613f33c760bf5f1f28f7c88066906139ed06443cfc4fb744b0e233b8b91ee00a04c741f1d9fc52e859e71cd106aa6b3ea82c60ce2a5ecf9244c37f87f5cd93dbb358c577f7d6f485b2da2682a637870a257ee5d128f15ce53353057d9aa6ae138fa3ed703e9156b9113f7c388830cb19c984a6743dfc9a139fc77e0236e18baa82b2f76d2f8f49c218b258610b8acfc9253c66d15c94e2f3f02704f1e44187d955a6e27308295b83e830dd7b1809bae2f3264893311f26c5fd9e3b1098b7d23a1122c9716a49429dfa4860f179426182135b4060826e4e41cf7eeea22cbed5dbfe899b8786edda84f29cc9cb4a9997d938397a37d6fb93865fd249fe65cb790d8a77aff5ab20954f713c2d15d954e4d1eda4bf2acce064d625ab5f772884d5f82d6d0860bcfbfefd41bbecf435c2202671f5d1dd397dee60b79e22ce6e5d92b11be31f4780d8866dfeb458833f5be2e469164bc574263cb7ad53fcf50f694d2da4db46cbc516d053a6bbe02034bf95112096b814be58bca334ff95128119ddcfe19e23e73ac4d7f7dd6654cb672982968f865ba2da538ef9b7d04aafb19e67fd591ec5d15787b88c85ba3aec7ffb073d696496117345111189b33f9a11b5db2895136f702c7493f011836d4d380413cfe1d8b85ccfd06b2d3b348ade4f59029ecf77f097681a44598a14483c6ea3a838073d384dbf720962f321ea864b6e16b56522fed1ef8012ccee6d9f524d0eaae449e1b81cef48edcd5897b27d27ebd7ae56b59af26fd1de66109f5b2075fe94b71b549ce1e851dc39a3ebebdde70cc2a50bc16ae1d4a889fa641fdda4d491f661cdf689713facba75301aaf4a7e00bb7c9485c2f4b60071a1880e25a4e25986fe6b3d0bf1dc60edb639c9fc02f7cd99e09ea53b3cf0d2c92152dd909761bb44afcad7ee9b0e4c34d2e6afdfb856a8cbc888a06d0f8a001713ba4f26f06b26ec0f31c48b269c9797ed5045d6e78ccd60460c47155abe41e11323062b3caac95f62673bdc387ea995df56a9baedc62f691cac6576828ec22db34990e15c16806ef536d13667ca77b8a5db60e8761ce64bca4a9d93963a0cbbd4495898ba96561c393b8a5fb04bb1c949bb99f0aaa1a89184909af2b01aa45334620bbca79c78f9069859168a0cf0356ae11a37b8d16088bdf11e4a8eec1deee01934a4cca16ba5f484d062b9355b396318b289ab938240249c8cff544d3a9a92d59f2d3f4ae8f77ad8ea36b1e5e40a5ed0796a8b52f5493c42926111da83b1ed1169cc70a60b5ecd2d7d8f28c65ed38df5def63e7d65e99d70a305aef0f10cb4b08550e4bb980fef632ff10abb1843dc3e3ee04931c8f7e5b4568fa11f1e205115eed1ce07a2f32890c3da2738fd01a2a392357f7e9afc674b4b3159c40fe274a43ff957ef394f53342533ee39c60fa1360a5485acbb8da0c3940a61fe27b0611345f69776ec833e98c7da493ddc63f8b87a0fc4ebaeaec6ea83740ff73894bb74afa69e55d0e373dc1fcd0bb9628e7d61c4cf20b8d677e07efef9d638ead90541726f6d8d29dbf6ef7b492e680b65dc2cca8109ed3d461a28a7230db74c5bd9ce2ea13e8b24cebe6fdfa49ab3261f08505b8254d42a283a5621940dc67004bbf4aa0e64478548bea1bb359e5c4d1a4d2db681832188cc9c69af3f11fa0c4b40c9eae7b58f9bcb488dead29f303f5389c777ef04192c4dc5c732c101a71179985004f51f6190a6fbdf5928d2ac3fd8e49e94b9f1c3dc46702dd669e92ddb2ada59c7d29d76df3f12bc09adf295e081a8008a0349464dfb82be6b20fceb4caabca8eaea7099cb0a2cebc116f023e0bfa767ecd9567265e50b8cb4749354a81d004112e70b94826cc8570476a26aedd9c23a4699b93c4503d8c2e285089232cac48da165058b736467c2d1f0dccad144597879965ba903e6581bfb27f53d01f180b5dc5b113bd0fa4c57fc66460467fb37bc34007f3c3952cc4526a29e6b1731dba929dc21086256764069292389919bdf43a717499a500bc13f8461ee90b335e110670e8cb1bb83c9809f4e886b8abb140716752c08431022e3551e9b59d63f5c93c26a7955a716f52121133edce929d5925a6c6a31d6875caac0e1bac1fdb03ea42d272129ede60965fab6cdb35b02ddb812909a978aa0ec8272fbf30584333e0d09a733bc97983ba2ccf085ac0f7db59bbb002ce4b32f9af528162b0a8a55a2c85a0b20c2a3dd5852ebd32889ff96a7b0e741761723fba506be449bac63f8660aa347961208870e54fee69122802b371ebd2e79124253aaa6848538e119d072a7b01ca4eec75c44e247b450d59a04984231908dc3693ab8865f1ff566c11c9bd321409109b878cc31543699e3cd60d513c57d5ec6391b2177646b54ddb4fa183e2b9538a0edf23cea6e1c96d334309af3ac6970a2491e4fd6feec2448095559dbae308978635e92d3a4740ddbdb94213ae98c6e324b7a49989d350a7a62fa3acda5caa785155fc06fe78f93bf3bb9553e3fc5f71a11078e9a10d13d9f5334d52f8c651066f7c923ddac5423a33ec1fb3380650a8efaa37d30a47757d7bc5dcda920dcdf8312844821b59d7b85480f9ba648c753c5cbe874b400ec95f4521be4661e9daa18682a94f081258bbee2079e0289190b61272763c2b1b4825f2561cd456c0f355e4ac47a17b06676f137decee689d9aed73281676ef2b66ee8766b9f4e26cc18e8598a2efb03cc8201d08a43ff8074ccda74bb019bdb7e45926344f4ea55445c4321eda97bc22ebbcd87c59397f6904a7a179422403a48d56a5dda3a24cd34de98a5edbfd3fb82ce5a4574896d59301c5ba75899ecc70c686631aaf9f67ef1e9ce3c9739eaef80a2f7cb2d871c4efe113fd9ddc897ed595a2eeea8b6f520bceb80d49e599ddaea1eabdfaa7659b86e0b1c59986c631523b7e451ab7b9acdd67926beb2999191fdaf050f80a77606a8f3b93c09b16d5b578a68946c8f38864deb055680df75bf1add8a7adf7c7668cd30b9abc5575ddc26b3a67a08f617403496f52492d3c5552a153a9302a154b856b1d975e04bfbff0a93b8e6a3426250cdab8b1c5f3563a06dd148624efd7cb4c30c8b52d36f23a498c7b53850476fd42860eda216885e7845b0c2c462be3ad7f916b718014393ebb8e171cbf1942da753ac0b53be4f061650aa44ac69b8259c5331adf083e1c4434d6a40147aee817799115bd833abbfce763b41ae9b1c9284626e1bfd5ad4b72fe2d4afbf47cc34ae2b2a7bdc172d11b23e950aff31a557f09d0c8447f6234f8839c3e81e8ab508d704ca358cbce0dfde462c54a0b7010cdfcd50fb3f9a369756ee9839cb46fa5ad091174c48abbc73838d926df4b9756fd2c08c3406aabb3639175eae80ca923319600a0e8d8117a42696ee2eb05cc5ade632486d0958ec71a8e03e4f9cd36a07f3bf79f991be4489847135718449417a11f585ccbc780679b7b718222c3777deae0702a701355af798c9f28776784fb74747934186257e6246cb426a25ccc376a8ffdf98a229539617acc63818b577d29b4e1de1f23d012f3ff716f7a3048415bffe897ab60068e699b5f2beddb6922f47ddf8e30c57ce9ce4c72f6b00211436bd39b9347dda4925254651dc2361de76cf3a03fe5f2762af953d218b12b5b4a45da3c093bf0eaa42fb22049b329d8cd13933917d4f18f1927d94f05bcd060ee910469f3515cd0b409e9060cd06ba753892d46bde784430a75d09b64ee4ca4f34e796aa97790f5116134004e12a60704fb6b1d53fe1f7658e6898436127f6c46ea3c7c56592ab499b9ebe7da2b7d03c25dd1b19dd16b47c3a6686054714b3067072abdbc24179b0475ca04b346e5b83994b72f3381375bb5cd7fff8676f3a12f2eb1b01f2f40c5f12d08d478da149b7fc0aedc6eea4ba24860f6a36313aa038baace4d244affc0daba3cf74cbe3a86d43118afeb22c7baa018253b6b3b2eb480de988c3beb582b7010b617d975bf0751b2f0f50fe208178d6ad740358c3da452ff0aca371b2e7c4a04e466ce61f8f4b9bbffa41ea23ccf51d7f21cb41b48f4616f8af2ca63ae9bca8100bc7b8c100ca6bb80a59f1d52264b77e86f5420ae9f4fea8642d32f19c1ed512d8b094e15ee8ae5b91e15e374ed2779dc0734e309e47a7566e21d9bb029619b5c5a69125080cee1ea78a9ddcca104e3c0122db369c1e6f041875a214e980a0ea68f2a99c158d9c10f3582b6482b34ec0e316b13a01e7a6414f6eb702b51f2a0bd94a9e785e1578c90f44380345695bf3e76ea66c1f88bad84495afdfc30b2e6d630e74c5c562a1b26cdab3c329515922bec578230bae60d956cb66f18a33689f9feeda2bedab153239317edc13ee5cd642b1bac906cafacca6be5ec4f796dcb72489da53d06c5e7158a9b4c563f963e7ca9c061bcf7d46ea5ca6becbc1655cf182d999b446f08a6765b6429b562c95f24ea5dcfd162645ab4750ab66d75d7a814112b1baa12fc1166298ee090ee38cee191ad39c9d630f0d2954010a4600a43da2930cf01c7299e93eb42b28cdca6a0b057847d5d38dc1b9b9e8d185455f7f9506132383b1e3c047b7e8a455c35ef196da46cdc158026e1193c8f1848300c4e2e341bbaaebfe2e850de90d8fa5ef411094ba0429447027a4f4f7a553f1a4ffc4ab3824e7195ea1a9536f5bc0add87a13b42098e0f251b1b58725f0d3e7d79294ee1dad0d9f41d0f9bcf7d1c83e084d3f877f4b9a6d7965304876315a1f62d010531c2e7c727d5ef45e6d80ffb98803ab9b0c06eb01114635ea1fedc2b10a95d0379106821cf4c4ce7bf5f32353e74648b45dc36a8780e6955862d71339b55794728fefb1f72cca54b3e8f8534de9d08a4a8b626d0f86d7bdaec0f523bad080f1705f37cd33b274a9ad9601975ce3ec88d25aa1dbec562f30c8e1a0721ef102a4ff1e3d32e7a3f8cbd4e0d1e40992578c1c04daba25b1d60537f7715ec15164a6d29dc5ebaac8c4d2d3c09f40c39f98b064e0805d22f3409a2133ded0ea0b818ea724574d0f18777ea4d11ed12a4bbd05adf76fffaebaa9681d6e42e89517756d52a875d29f09fcc4f644662a825289855454dc7b4783848aa1eabed6ad7b5728936b404cc03fe0a645d88f20d226f3330abb6790d57aacc5acbebd5f2209b29dc1f9a4023bf7977fef07b1aa69165ecc40b161d3195f66fa72f74464b4acf43bc7b56bcf46a18b2a546e53f29d831b024a7056cb8d31c6750a4f3ab4c5fba7fcf58918c74c5c8ec3e649a49ef41da43ed953f5e07accca76b2eb7e2782ef90bde830ef9b55fa689d239c119d00263c63c33c0e775ebf847f1f2810105820175eea077771873fdeec461132bed3347965c36557808cb27484c3f4365d91bb19fd82e59d227dfdf36b3483330e7cadeb9b81558cbfa6b22be9e8602e2002711e3906f476c5a464fe9eda8174346aecc88e68910ef5d7082602c20e2e060eb87c7ed1dd8e419ecbf1e0625c8f75a38bc06f37814862606e5e7e82a82f38b339c7c46a9fffc779a83fa5da013195b996e8159c54d71e065bbf13bf9dfdedbc04ae00a89bc2dc2fdd0f39f83995289d62511d96b136848732a0dd63fc96ee709a997c93651bd8d47710ff78bc79a631ace8bc5f2f65621fa80e455e86fa280e58e91f38983f4de90df87ede3483a6938726af2d7f23b3dd94a0fe0a556da059a5fad134f7705a08effe27d1b4ce8ef85e3f1c0b858421079af7b50341eb4d4b3b72225e2fde202a1365eb2e2a9da982f2d863533453f9474a8eb319be7a5c8f1ffe8b5f0b810094d639bc7e2c43b7f00e4475fee9b8f782e44777b28ea71273984cc044b21d734b58c5dce5d748e397a4f34e2b848684181301bcfac99f3623d304a184f92aa49f9d479ebf401d6990fd51648416ab1a795ec2698c9c9f4d98e174a50b7eac693cff88ede8a7dae369637c934d4d88832ab8b91804abf83e42f024bd03313fac0c84dccc43cd6713d7633c102064124ba719c1fd6f3ae86c89062aa18f5b4b9dc953b9562054b4442a6746f563efccf2b0c209b1dc602ccd78aad5b294401e464a8ffe3c02c70e4eacae27573b19fd5b1af3d4e8c7a8f9d7577c332a70b7ac3fb2e3f3eec78af8923555b82422e19b707680ef173ba749b19c440e23d9a04b7566d863adec3e14d5c5eca1bbbd2a0fb58d7bb6b1361fa8776b8f3b43d8665bb3665e318ad25d9612667badaa706c78020fe13a19f86e2f499c134cc07a901a81323dee15c47ff10e5edffe72402cc4b094558a165fae879a15392662ece4f8d447461f9a5ba137667353fa587c33b928d0a9c37cfbfdccbce6185589394913b103180178ef1af0d7161fbc1836d877d8405064d72dbd7e07e4b9af205eb684d5cc93cb6fa45fd94f1683822f8c14db101683e2b1aff242bd5122d1ef258fad1c7e3337d9f346c518dde3578acb865fc19ff165d6893980794129e0a22510b24ecf7698326ce0bff66aaaef9f4ad0b9e6334f2add8d10635a7ec907d508a58cc5ba1b493bd458ab2b72207add20cde13bc85e9af741d9437c81320e849fe737a74aec0578f3014afcf1a3bbfdedc299802f122322f8297da91fe2e43869a67e372cbfc55994dc7bb636deb87c54909c9e810e8c2e2b14b727cd47360220b95e2d29429b61cda4b9fd2f4a70234a9cd61fe59ba41e307ffe925e4f76fa899cc0a8dbc9fcfa2cfebe94158c264035923f7682577033d42bec971c3f13a17d2dfcfd2048188368af39c68ae1ceee15bfc4dab42690056879111007271b751325ac7e6843f17b3b707292ae4c242381c5f776c75f97b2e2225cdfda618e53e0fd75033e4d387f54a7806d3e24b12a280c7066d5cad4a5c6afa901b61ee6c2108169b8fd3bd0fed9c714e41d2335cb0bb113ce0c98d22afc5f679a29059fe6d132c9174346e0f8ce97e12fd4b3b8de3e82b66372770a99d9361799e8be34805d2616b82259b34f1bfdeb884a6d8126173502401ae02556c7be65272f26a53484ad549a85c050efd45454ef455df610006c2ab295f5a45a7633ca089ecb75cec61a1d4cc5c540d42a398285e82eecb4edae2e119ba057df58f9c8d07e39458b4d9c8f6fe6e73ae1b140ea57acd8bacd44f2e420580a7ce8a60737d884c345a130092a824713ef6269d9e90a3edcc687afe6ab63379a99fedde0031c5066a7a44fd3028dabec16a63f3f51009adf06975f080969989f24269b235ef54288b3caef45151ed7c5d3245b060045d2a545e54c8f21edc0b770ec22f4b591c81363f842927fb88465556cb35d757df29d4f2ea0827100eb0f82ec5f367ad0605e92e89833dd465481c42e6cd3d3093a88b2599c7112d73796c511881bcb3cc881c5592a3abbe2cc4294a07aadcb22dde3f947f9cc8acb2e3685795a4f3f1a83cb86afe4d78444ce8255d32736ede3ab601cf294164a17027a9cbf5b794b27528fbea7724a8b952e306c17d3a4dc119efaa6959a08a04d14fb0f77955b7986778a5c8816b2de6931124933ce3f8f23a091bb18dfd3e812ec1222697a1d16ca09a269062ba20be5fcdc9124ed48a5fb540db21815f22c55dca49dc13c47a20a1c9212cef6aa0b09ed772c4694b00d790906b748222b816a7c0e30fc6aac7fb1797cc13c05ee4190f3325faf55d400280682dd3dbda769976f1d706f5210f67bf9ca095c7dcfb4644aa94997c9241409d4a605b6ad9f041a3deaec723f8a27a2cc363097c50fd646877268c60a8744eaec240a85430b6c65de0fa4fbf229e857b6b6dfe9603acd60b7c5429e53023fa982241e0573ed0186b49f1fa1b6b25cf76e5eb88fdf7cadf16429e458f233c539ebfaee76dbc627ab900eb2385ae265b97264e61df8c4e01941bc825da8ccac594ac4b289da8425efbc8bb1729cf801bb5dbd2109decc52ed1937d1dd9318eaf63ee76c7b2280fa2e8ce652adea7c05a4e18d2e55317546d8b860abc27bc62b33cdd3da386deb103f7f920d595c099c1e9d3f962f219efdca0539c0b23124e5601d9ca2b74be380ce38ae605c503ecd15c9adaa1b8dbc6d275ea64ea40d83cc1f615531d2021589942384c8a1a284de45918f889c689190a7937c5c8b7fce1e8573cf5d3a18fd4981d12b3cb12ebf30ef2ee906894a76baf86022ddb3b3c9a9781181f7a26344b13f236209eabc0ef3a53c3f9d0580e26ed34129824ddf8bdee077e3d6ad350e4544e93b85ad524f1429b7e7bdc3066b32ecb9d56079dc87d3e30995bc4073ca83eb810f9530a784ea7a3355142bf2b07b5f8797e36b0a9fe2f00e3fe0f901e4b260e14f7299eaf887fd9b2060514e3fc1a3dcb2b975b42c06098e9f2d782404b21ce2db1e34e29dffd351a605dee3e8ae2a8d57a514399351e2f99c20271adb3dc4c62ac03ee8a0d6dddf6dc165ebbb351158c43ec9ae610d590dbed2305fc520cdf507fda7fcade78463cfc0420775c866895d56adf1a14f90673c61da4603b8448a55f8ac4f0ca48ec07766915036d322f6192ec93532bb01f4cc4ebf18e7578c8f0be0fb8544eeeb1130df4075e581782bb5e92b9cbac2f665fca3bbd9d430699dacb45614bc75773c44463821ac86e1085c5e55359c0c639d9cbc672a8b9be9cb688e9c86fef8bf693e0831d71d5280cdb4880259e0d1985d9c96ef6dd80ee244c8059f339ef184d6bb19181ef46737478134fec0a30994199634d546430357aeaf40604eefb1853f18b63e0c5701939fcc63a02e960c4a9c12c6d95516303b11cb67f709877017ed5b3cc41cb56f692fd898158625a9bb3a0303ef087c7eb26b9be2bab6a9bcc5087332b1c5cfbd9516e91172a5ddd9ebcc5a358b90441e532abd403f9d1bd694445d3786afd88a9e677a8a6d07f266629326943b823815ad749957887759a475bbc884734c74434a3a58d0f0dda852e75dc28abbe31ddc8c8b52eaaaf8e669126603e50dd043335d9e2d649e6eaeb71206ee6595b38b3186b362c80cce95c1a83a31d44ba080445a72f32553ac75fb40cdc6017fe9b8b3cddeea6425eb70d6448ea6ee9995b2c9321e09240dbc452045198a90eb1e23fb9489c81a44edc7ec479a461f9d3ae0467a9f4851d650b5bc2c355af5724b40db5f52cabf8ad7c1d634618c489da7a0a8ec59d1f5f30fd552dd3207744f5d076ed64445c01e659cb14274f4f55d55fd693fc7b063b0905d7530b0a4ef10ad1917ef5aa3531eaf4b58ed950b8f03db5024b7777fe6cc42df71a30d290f3692571bf4239b018647f219dbd1a4ced027dbb8df8956d7009466d09932e54b3096f76468cf5d3750fc96b795ba9ee452df62aa29bd9f9353bbc1466c0d9b243902f2ace9a274713ff3ab1d24745003bfdf94a378347a9b8f668e34bdde84d4052aa692dc576c6ab23bc6bca83fee58aa958ad6851e2a4ae1eab14ff2d8d25c8fa36fe76b87668c3a0e986a05c7a21d05fe7bc00641e14446145f8a7e1ed8f31ef04e47835fa13eb9e971f4c0035424e4716eb5e9eca29fc7e4775d9207255d5992d9ffc07f7f93990250cfeb3558e39b40823f2cdf90444c12873096fccafc6fb4c7bd012674271606bacf613cc489c97cea3c9007eee6e62634d2ba48a1dae486d2740466d11dfcf82428d64683cacaa7af00eba73493d0ab12c1894a57d22ab3c20cdc0c8b71992b699569c94e033f4b4da0d439a8bb9aedcda7df043733204475bca1b024a0148ca0a47cf23c549c95342a2a0c3ce1ea311e1a7897ed32e4811ae9fa5ef903aa75a2896d5ed3f139e3f116cc0544183ba131128f638ba90730df7ab12892e58464a14505ed6e2d53a974041e456d564c0cb38555bcffc4e567318378851698506aac04576206a908b681a0c9997338ee0d92ee42c598ba790a51a83ebcff49893ad125515ab36e196704d28792513980616009c05dce8de164e6b84aa4205fd58f1af7edba04d3eccb83103ce1b697d48d0d8d43a271794631ddff71801840a130d5af44b0de6f95f76ce312ec7f17fb9610e00aa003c515ec742c6d4e50159d60e57ef20a8323074e68ff1cac96846b7156111bb9154dd6ad69017d83f3fcdd2b3941865ab52647cfa593eecf45f76475a9c8531aa227e8bb1cb13121f16b8dbd8b375d01f9fe6895cb9ec8c27f1a2bb4c8de7154d76ba74fb35b9ce8a80e6d745d9e745dd55f6b199617a758cc5ac3e35f17aab5b351234bc3f4ca3125e324c455b82a72fc4550875b5a31745690d9b57c4bc34a92e3b4d3864315498e97dab229b062653f55281354a868c14c4fe18a8e61ebc00409f93b702c18f2c2e0b54b8feca8909491b44d600a45a11cdc54e24ab233256403478471d1e652f4a7300c50df63b434134c228b16ccc4042c4a5026474091aa92360b167ad3472107898c52036558f7074bab81e809f0b0ec4e45c8861322d37eb86a57d5b435a9354e396b0f3f7033e2fb796284953f38cab46f47a3488221e9d8863b69531ba1aea110fe6a42511621919e671d2412ce17d4a44af8413551dee1651df449dfce69cae715fbfc19b682d92fc1dd7e1aade7f68a26e15d5564b7b90d1ee34f200bc5d4e977c90b2177476a86ab2fdd16357eaef72a17662ed9f9fe769130768c1e84900e06534f9246de0ffcd32033c828cb173a3a754a6f7d107ae95c6ce5a30f31b96e8094889bd4251342d35e90a0449c3d0e78d53694a0e2229b8e6c0a137dcbf3288fb124a98eeeb5e96a848f97bbfdc0a2631d898978f72ac53835466a943a50c8d2d65e0a3fabdd73003d16dce9418282864b5d80c94e6ac663e09f356072ddd23fa9f7d47cab4e2ed5f711fa30d0acda39256329f678e6e249f14c065313385c1d8c445375f7eaac726c09fbd69209e101381a65e337c9facb4eab8a54a7ab41fed3ffe9001c9a3f768f7060a295aae681232fb9c140da416fdd7abaebdc8eb5bcb45c899feac3904c40e43ef06cbac59626fef9e4ccf81ddc3a9618f12921eade3f7d2bf4c557714d422aa42821031b97e88ec628f547894c72dde494f8752de931f28b5cf1d25401229dbe5da9d29c3b404b6511ccf5200221e98cb2ad5f90d64cf256dd999d46f5b476525db6afe8b40a83d0aeabb90e706dc821bab9b42a4593f30117871f7880ce65ac4b973fc228f223bb7fb48a45485d120c3f8349df53723a08e98a23b3f51cb1a7e6ab88981bef47826f94ea48f754d0e6a1bc7cb04bda9e90ec29e5708dcd97dedfcd1c5a1006b420ea069e6285d66de9c1e2cf1fc82fb5df524a305839e811044fb59a98d1755e32f7f92be756c900f680b82e63a427b7c869ca174cdc0e043ff6483b8ddd9f39ebdb06f8748e5003d8e0053764b8739c486320acf2709033f81c245accfb65d84a14be19374eb0f6297bc30343b7c6bd2523f6bb7c4d637b1ebbb6fbd4d5c0e1098d8fda51dc63c44873d8e95ea48a36361a7466427a65dfe429d2af3877463062ead72c9624ccbad7f5e7305f54d90a53383da0ff30bd31780074f25fb44b3a4c8e9ac8bbaa38464e36a982ebb70c59e02f846d56e226d3cd41a449b0f27059d9306a39d2def221a40d036ff8d91cf1670b1025695dd6eea6184f8d8f449c2f397283468443d87589f983f2769daf275d325341a3f9295e7b00bdaecefefab894ae6323dbadaada013b7da1f6c6584a1395236d2d983240ec6aa5d24c28722755f934989931847fb11ccc9709925594d4f590574d481b4b743c4a1b2322faf6d738b88d1eb0f098b3a95477ac26a50a1bc0c4a6427012a9946f6d144fc58b404accbc58ea6bb8ccece62b1098f57c966dcaabb0a6c99e77701e82520d4139a5e8b825321d08ce6d982be307af20cfe194c055ba9601d2e4f9412901926278890a43313bd4c8a04be631347a8c3a45bc21f129115fcf260f5ce517db8c5fba1b028e8dffe02295024aea12cf6e8210a4185c9a3cdd9732aa11ce46708a6e066c5602284189efaa430b617358c010d46c1edff2942d5d10ff0321c42479ada2dd3499a5d293d5500592e4a2a26d940c9e598352da2c1363fc4f146ef1dd6340111320f24d284554c382c372f4d074fda9989895287122ce727179ca0008f4d97c564a94f42d715e96a17cfb1a9147e2f02882c0dfe02ea6ff379b59118750c892bc0814b8003c802c49ef40fae6098fa44c08e3e1fa66924934d1e7d0ab6d95850f057c057ba021a69ba767844601e9e88b5ca699a3d8d45d19c59501501f3da3186112006d9f14401cc0bf5483445f7e7a709667615e830467dc67e8161039f450fad61b0c94bea8343310d27e019aecd98be43e2391722be7a5a29db1ddd2b8a079c34ae9ecd4a3cc48a0a296a0e22624c71eb1d7a983999fc215299e886d21af604c4c60dd04110794d9e8efbfb0a6876e2caea65b436e052617631791c7d2c0e8e1b2f717443ecad2067a3f1feff3c96a4b280affa5ec6e922848874400ab2b4778df4ebd3060071d87d5e18c09826d74c5fae3ef88508ecaea3028f8a8be9ea9d41d0edcd8c92e865a34dda0733c7748d1c23e93f432e2879c87ec03e9c9cc4a2e0f647ad017d0267d967084352c8bfc3653d699f275b2d4cd820b1b51bc291ae6b19b3c630b369857c23499bcad3e34466f63c80085d41b158d2c56e320e2d1c2bc8e6d915a1822a590ec667393574408a766c5d461a1fe4be13bc95398d0bd227a40b4b1ab077311af6cb5da0e64199d64ed1831b0fe8957d52eb198acec3e8fe2d9d4ec4c4cd326b0786dc2ffc744ff60c40cd2b5e9130c1a227f7607e9cc30f362e022eab014911b91884684883765d9366c6136396b588ababd5ab15523fe64cf7e3b1876b93507b493c4b4bea578fbe0eeec4d87fcead52f1b773124d6f5dcea58456286e27f55c8604c79b550ee602000ed8e1364bb4c6d5a4d5b0c828fb0eee76c5848eae1be12561572bc87b81fe64e2a25770d2f256b6581c333e03a84e0300a31175086189abceed9ac97096ba847e63051488ab7b56b2e769b248e9f79889fe830384aacf0db7aa9f9e6602e2c8f42843ce8af2cd1241488bf0c5f3f190319243a0ea2a10523573ee2e1286e4a213bca588f71043e53965d8518c3a4d6565c5f432e3f00f22aa6657979dc101ecfe1b85ef0339292e4dd39054113366b39c6659a38a17cc72260a9f67b4b966100713eb848c769906d0665c958f4ae3f75e59b25cb0670349f5d2736f644c27fc44d00d04cc3a8713bcc22752dec60bfc980e61c21672f2799ef1ad74cdef90905937618029c1fca1afa224d7161a731dc4c4aa7c879fa5d1c4f574bd6a6974ed5dfb8de14f387804bec5e262a84afdd83aa8f5766371b4a0cf0e26b5b223ea6e90274474e0390e6ad47e81bd7e43b49a852a03fba3a0c3ca5677adb8d3412bf959cdfbb327d52f974c3a76fb402c96dd848b0689ad2c3f3ccb3d6fa3ee9eed0273f678300099e512d9d00bf5316fe6923563b4703473c372789044ff759529fe4600a1e0eded0586bd094788645cf4a4817e9b9eb2255e4e71c2e0c19760de7b7d84f94f0129cd161ddc999005a5eb327e75eacfa4106dbbca4bae7adddbce09f259c5cd2c98557c787c11698b61506c0b6d27f4fe4d5adcfe61c81082dfe51170939a8656c180c316a8b5697e916ba6f8aa213e817b7df6483c3df3355c7e43f68f45987d53818d2e5db1c45a445e97763246d0725c8b02d272a4888679c5b49e86b73949ca71b9ec3b56aaeebaad01b5138a064d646518e2c9fef1204a3f357290ff340305cefbaaf4343446255a8e3ba3b86770f6b67405e3daa05203ad3d292bbf02ef650be5038bc448a7ae6dbb2a9ca4202284b4317a27af8506caa13bfba4332c9ec0d4911a1667d71001ee1af712184e40c141b9462df43d75fa071443da623edcd4e97402142cb188c41216df39645e653e6bc6d66502aa6ac0bfb0257d1ccdec48f454db3c378a0b53bc5b87814d1a0d1638e80e297029ee880e02bc4e25057de5190717cbcfb9fc93adcb74ea4f02ac011c4cf46d10f18d919738d4d66b7e91b338955bff51bff03f91ba8127cff6ddf61aa9f4482387d4e399beaa244aa0a1a34e80c1a383554eedf82815e301d13fb84edd7e00a97c1aafa5109353fcc09e673d3fc30bf1cc40afc1f4da506ba6b46dad1fdeae3b1c779b74b64b905d535b6c908ff9ed0872b8bf45d34574d8e2760c5444070467ce37160f0cddb1368094fabcc151c08492223a25145480f68ba510536215bb522ab931ada60dbb41968700f1508ea6532c3118a27e62b0d6341836067de93053e4405c7776491c658bb65b99583d4d04daa82644364c04208364117b9e13c468806f8962f47d69adda8656c1cd81a4dc91092564b3cb37c42aecd1c564f912022be1eb1b2ae3e3f1313d9fc2d5607d7dbc8ecbab4926075790835edb709bcf64dd25ea56e2389d05e60ad485ed86cb7cd2c50ec8c933f433e6acfd908539b0d8fdbfdb29e966a6023dece554e981ab74249a53e403412fb0cb42ff259b2895de69aa2013e5307310704aed79f835988ad5afebf5f71361ad12ff6f2d99bed857f45ca4ee412375b75511a47241702d029e9a46328f655944632e42b0c43fdabbc35c8826038ad507e696c99ed293e0bd572197e8b65a125b0ade439b598b7ae3117a2a3859d5137dfdf2b681c096534f35e0fb01a2e760460a6029a2da8d8a2a3f8d49230181282b260a04418022c2d007228017d80437177c4e18596ba232eb6372466780c46c1c4563bdb65e1521bb8d75f1cc04f38d392b4dc0a57043071bf16a03d5a354494002f8ebdc7d8dddb577c60ac9968da26ccaff1e458d6a6bda99d333ac515a6bf48d9a0112cc91790336637f4ba34685678e35e44a382c5a3a8038c66192164634459328def9b09b4e637a766aa0e554a7c7d7c71a44ead1228d9c0b24c02dbc8c403c18171911c6d953608cad82d43cce3bf760456aebf4de5b25bea6cd780c9e5cb1aaa5c79bffd39018725a23207e600901702b8ae95cc8a3b891d0800ac78e120ebff7cc461d2f00dd2e070b3090ead1938942000741ca179767557c08d684ac952bfbc6e8e1d95119e1d374626e7269c7f70729e3ae26c0e398ab34e7669f386add40de4daef675870f1d2df32260c20bf653e9887e78d1aef9a4f440d39dc98ff418abb59493020d93060463160e35f08aa1bff60807ea2a3079e9e9c06e8ec98c661118d27b9f2a7ec3088b164563497a4b50483e2e450605f125e34a814239e3a792a7e12858103c9fd3e568ac2663212b14fb7ae6436e2510d50054291a92cce698098c897a2b810ab208d9ede3572b566921deb46b0be25d88d987ef4ee539cd8a7e10f9d7dc6fec4ce0190ab1969ed10f47ad5a16b990ae57a8f212397eda6582029d1f680984dd4cbbaa74b6b17ba62d7064ac2149d720eac7c34a397d381ccfec006acb8a07a720dd457fbf73aae4ba90c43e6f8df64f9e186a26d31718dae90798080b721ff590e1ee038f6ce8dfd066064ecbd9b18ba31d1dce8b7dee980794a8a30afa3b3acc6ae2a387ba028bbb42fa58d8b4068096c5f01360f751eab01eba0a55be7f8b318fc9f4be3547476184e8ae567dab9da32f0e3a79b6eafdc6a4a2d698a7d25a08ce8b8d10aa70efcc9e359abbbb148a5349228e47999f09caf3eaf8ad95dc03c8163771ba25fa5dcc7ca13153479c234d9598be4154fb89d6deae0f452672c40242c7c2619cbf5fef93062aa0fa603963b75c69d16207ff1093cefa8e37d2a093af602f1d0a3b53d6e07747bf4d27295a4971681cbebc43fcb04487e7f872a1639df5e55892aaac3372548776c3a58637ec6d1a255780da6285b7cc30951350f583f7f5833afc9ec9b02543393c779c15722f8f039a6e41c2b3c3156945b0e2fc9bdf20fb9e72f24abcf6e3e3d9ec11c34a9798967f0edbe60c331c368e5a4dca0c44455a595ecdc60559121f908c2eed927a3f7817b00fb77e813205129cb193d58800b5b8014855b02ff1aec1f38f4b17fc60edba5b1dded61ad11527770f4edc0091b2d9a64749443255a9a8210c8e7311c69634d7e50fb865dcd65b7da2022a8a2dc6cc26b24d8335c9286a22e5b1421470ba8b608a1bc20eec1baebd6a974568dfda737d18acdef63370012223f115033c94f78ee119c76ef19eab27706f2516345f65d43cf31db12faa00663d86fd1a6a40cabf5dc6e2803dee5ccd78746fd2ef73a30a17db3fc91bc01dafb3a20ea530412c94526605616cebf12f8e9bd4d7a5849104304a54f58af68041e514ce265ded886fa341307b7d092509240fd8e5775b1ea9825920df4496256c39d9d593b4340d792f8df06695d8c45e45e0ce64f96ebf2c3b702261def26dbe22c143fd408ccc65bfdd363d93d652d81b47ca20ccf300a2fa8632d0b2b9da30ea29726680e6999a8dd08b3a85881e196a9008588d51efb0eb004f0b6352112e2bfb5eea5c816c12857e324979ccf9c91fd3dba365c431ec5212e06e63d829120f4b72e4a628884eff4b90286de95d2187cc2c5f2033d4a740186f5e87a0dfd983bbe7cd3f0ee78090d25455e2eed9051c96d82da20a142741f0fd97ee80380b16050a1bcf5e96cfe7b1eb1f78c9b861452e544efe0526ab0f70fb0f3e8417fc0521cd4740f60ea9edbdebc7a737a6ef0d57199dc20ee8abcc4f552251085d593dc068edf3e5a33a693a99247e237cec5135e6363de6312dc8141586a8e9570e91497806c3b252c8759337c9bad02a52125c8b38f8e3acc357c560d130efe1e57e7213ba0359db0cb1f3b10b914527ae16b8d055a9b2ba0292cb3108ff2eef6440975342056c0efc0db49b68f359c765545af15564a92935a6f98590f8f87587bbb61f24c7c099c7202da96f94e584018daa4033f10a1fd5477de38e13799a507e53bd51a6f6218373b00b7a2f241a0ac5e384d2c65f860a2839fcd3a117b19c7ed3f48722c355f7c51866a4baf2b43457febf612878e39d6d41a9164ef2db794324999644a01e204ab04f304335b806814d766b40855ce21d1449d558efb69460994dfa572d80d2be8bb7808112ec28466dcc409f5040b4ec2e258df9eb3589ce9db4fe62796c65d0c45138c4a1318981f78bc10aa76f0e149ab7660b57f8ebadf03f57bed6fbdff035957c6cf3da7634b1ad1d29143ffac41b5835b9a5c3472aedf7b50c2e8aefb85e43fd79594714e51fa53efdf957c972efd5c5d5a5214f53d7a88a846954375cbc6b22030c6774e72334bf80da3777333b37c4d3ed726a13f218c589c2216c76a38a8183927885a12dc7268a45a5d1536ca899900e8a9e7617d653dc478809ec28030810fc26a7aa611c1837a0b03f20e5858535bf5adb7e47187fcc98d9b7c89edd0482df643e81c9c6474c7eebd6b8654ec014206c8f833525c2940560c783ed4d4cc87ad35308766432d86d03927a33f374d739a20840e218418bd62ca0a6a7c6b537edda062b9723fddac455a6d5bb78a4090d2742535abc1adb3fa6974cccdecce9099dbd160b58b241891a2d0fe8cb6cd96e2230102c939e704816655551555f58422159150ceaaaa0a64553272955389e2545555f53273a2aa1daba5562e72aa763039427d5585bd1c81de3492bf0dd58e3843d557d5bb2aa7b2ae06ab1e685471254bc94cd5d8505359d7d68a0b2844282eba30c3864971a5c37ca943ab3535a04a071ad474992fe7acb181549d8463146302336a9600195f88011328ad2c4a2dcb9a524a4aad2ab65749272c2493aa5243530ec8aa604559d1aa9aa8ae4f1348e8c015f4b15a0009a8a8ae142c5054f95352fc52570a161a54f99346382f50437246084349492988529808a7175a9ce4535ca98be592267aea560b62328de4d68c27a0118291c847f4b304a15028e4780859deaa1c2bc6faad732774775859757d968882e55e7401a521bfcc5318a918b22a0aaaaa18adab555755524a297f36f8042fa9590d3cfd5ed069822a55b83062c401465ce08c74515953b5236b44fd4e8e82ac6932659e26e8e795137fba74d80a7fd4363d7e6284377a6655f106fc47933213b606ffd0c55196e4cf4ebaf22c5601f00f0df5681bfee98b3effb4cd0676c69f7f360bff486a5111057d200a30fe349214fea11e5f425505b2e8cba721fa12e13a28aaae8c9d50fd1b9473ce09fa78e9b039f02775cd1fb54d8c74549dbae0cf899ae6c5521a89baf6a66d783bbba9d40d7f71b9c498094be3afa3b11211623f4b439a82b213a66271b852208ba2506046cdb8e9c8c0052a336aa9a57e0b2fe6caccb55c2ccbc6672419282a1ac530434ea46fe5c84161378d242a422b9817a9088a2e968b6581402010e82104b18b8b132e2f2ec560c31f8dbfb834c3a5430698dfea268e3e74717de1ca41e578d4ac203753341209892eae2e2daa42a124442f1757ebca51ddbc582e4c20d1d1649573437338e885891cd0172447ac706b2727b71eb034fe342878bdf053f4a2df2a5ffee5b752570cfdadb30655d5f5397246ad928c92d0f809438d0d35313d782c8d3f0e50501d8de4fea36a47ab37396e288a04a98b0b0581403344ea5fae564557aba1128ccb57a705d7f94f10f57a64e3e5b311086459558fa5e12aa747837eba50d42babfad90f344d17d548d5bf5c335c3b4c40312f43cc0bf9528d69f436462fe44b30585485f168247f277bbad0107643b11c0c02c5d498160599a042dd3a97d2986860373de33f5d3a726833fe305cdb0a00c2b2c562a1f0e8e13285a8a8d93a814aa8dd608212c21805de7de3b0bbbbdb766bed22c9bcc8c6c8895c638e3225c1e188a3a22b92e50034fb9b9b6885dafe87c8cc5c41e739d7ddaaf879efb5d65af3d75a6badb56e3b91c2a04d34edb6d65af3d65a6bcddd6d7377f7e6be3d3d45d4488ee9440a83fa4b11e5e69ea5fd37befbe7ee97bbbb43f8de5a6badb5d65a6bb1b5d65af3d65a6badb5202a50bdb5d65a6badb5d682f8a0fa770fadb5d616476b419cc4f72b6313d4161d5bf7bd11049e1d54d796db82bf38adba67f7cd617695df699061775218d49ddde5d2b8495e15690bcd687377f7757777d117677777651032c30eaaab91f9f3e110fa73fe1c961d519fffece5dfef35379fea4e155ededdbb2e8be68db9bbbbebdddddddddddd26557ec8fb221b23d72043f7f7b62480894b8a69858ce20b2f98d47d57e34610e854f70b2f98e846835014b266e6f7fea9fae020fc59f330797b9f83afdd54797ace757719f42d36bddb75fbedf56eefde22dc9cd2bb6e29d2151a1be9c615ca8fe30a5db7ddedcf9b83eeefc51f1cb2a0ee1b07099997bd0780eae355211687889a9a64fa9a9a6d153ec81140e2c70993d88e109a92fc212fa558533351cd5e2adc91ef65eefd6149f6b78cdacfd7fe732e541ff405d587654e8401d91ff54cd72b46a49881144da8441d7783133001822355947684d094f887bc94f67784b452fc213894f8e53504875204c284073f901e3dd3cf0f84090ff91103b243cff44b0c08131ef1190342ea99fe886dcff413fe6c7f168b088c90240b5fd8000c2e484158804515329001107e743046c5e375744afc52b64e8117bff79e63edeeeede8d65ef3e844fa916c30183bee7c7410a83b61b56c6eb09e378feccb17677777b5f20800ceabe494fa0fdeefac2450816dbcbf8bdb7ebeeee51f8d1b2ceb9f7de7b53cca7e5bdf7207cfe53f5019fbbbb3b961db1dffadde3738bbc1990dab0cc6b8ded0688e1383785bbbba8fa586c5d730d560a5828d4c692c0d7d1f882fcde3d07311d6efcee9c7bce759731c48c9afeed5db642c03e3358417d55a0ae917c6670a46ac9e43b09e5431ffba2ea43ae5bd79d2d961d511b4b327f824069faddd62d89078ed82c8a9426a6337d06a44e9ec06651a434896a5c08454d6000968070a78363101963e70a2db577bbbb7b8bce5ed23d890a34f60c7fac2b450c2bd48575a5880185babc34fc6e2d2e62bba18c1a378230032a75979b15db0d38b8fa73acfbdcf57004600987eeafa6899f1b572868ebee73dddddd6c50829f04bc00c7b5e7e7efe2123436d2c37869d808dd745fb66fc8626ac7ace5ef01e8d6d0dfdc19d4fd3652c76fed8d1ae9e2da1c5ddb6ac9dcba32199df26610385a005d50219cb0c335ecfb7defb9d8496c610b49ae88828426519060e4850816c0a06683d1f94d739d74b2ab9cf7eeba01846a871240e4c53a3b6b060f711836590986829b34d216f4311cd9184dd8ea8cd0511125e19852e6f012aac19799fd645ebf87b192466a43da864b21b9dc5612fa9262dca467485fd08c952c0ed7f6041239a305dfe4b8911749499d2ea54b1ba494ed52ba94eefac997eff93eae414b5eb238f2a55cf9af7ad573b5434a79c5cc294a29e584a160aa1cf730d50e1f249cd46c7f5cc5007f4ed4272af51e74b113ca21c1a44e48d18b4ba18b9dd0f9c404b5870558e02c52b26c714516297cb2287177cfa204195bda15490616aac8b58022430a944ac61575c9f801193aa8a246e22ab3b969777777bf56e5f0b61b5ac31a4ae39ef681b581710434052fd019fd08639e114f8d1869d0ed99ee699b207ac6fdcd4d4d0d89f43f1a6df7541ef7dc05cd780bda330533781ef330cf2f95d0bff6914541f406d64492a44a51e8cbc31f585105153e98a2074ea4e0411450ec40074f34c9010e982cb9810d9c5092a406489a60e2080d16876796a2500763695c006240b3c81379fa05189eeed919f7a311bdb9a9a92191fe47234a5de42945a199ebb4cdfba853bf33efe1691b486567dcc360598c222ca3940a4f750fa9e4ecd0ec412ad551181eeaf48c5b1cd1bb673016e7f538c8fd214fc717e9200f843c30603a2f603a30984e75226c97268465576d2cc44f702ea1d7d3360bc27a2c2c1bb97f54da6686775f61598ce1292ca313cb46a39fb0ec635e62192962590d8d875876f36d330326c3681403a536628c21916ad4d4d0c07647d8ef4cdb704fcf3847b9a7148572290acd9a8a139a30454a942f98f0e3b3042fa074c1c5165a28218b246081842318e149118830842b841004202c4ecfe2ac02b8a0de58c63ffc15c005ddc1cf251fcacef1363f612daa6bd7b147d46a3081458a862507adb5765dd707cb92e5d685de28168b0c7cb0ac00cb081a8b8e73cec9a94a45c5ddaf68e173e58a1863f583cfb802c595253e578cf4951458a1ba3e5774aaaaaa18d4946aaee2757dac54814a1535928f152855d448a15028c42efd42355bf9c184b2bbbfbb0b53d7678c2735b351777777e92eef60eea8b588851018a9ade60242000116b50961274b6d323a30371c4c6696827dac38c13e568eb08f1518b08f1514b08f1521ec33861608a19cb24829a7390618cb3e634ca9a246622fc1c400a5f3ad7449e2cb6b8749eb8212757db8b0a40aa0ae4f962df5fd9f4d7cdaa876c1e799c7c47f2b1b45e87bed3d0d47a80d756c659e14ec0803a1fab777b7b70fb40fbc16f43c86ddfda619e00003dfddddeeee0ea216f1de3d776f880c59f6e2ea02d4d58e57a062c50e53bbbb0bdddfabe18273ceb9eeeef7de7befbdf776b1f8dc7befbdf7de7bfdde7befbdf75ebfc7572b0347bff7de73efbdf7dc7bd5fff91427429a542742a2e08142ddc791d9e06f383c50eabeebee6da4b658004440dd431c9e2775e1f536ca3b972e4861d0fdb8ddedef39d78da140db6238bc3b3a2a3e576bbcbbbbbbfbd1f844480b2e2e78cf8bd9efa7f7bafbdddb7b36841036ef6efb90ccad5a965736ce40577f1fbe9506b3f770fd887b6de51ff35defd204a9fcecbabbdbf5837abe5e94e712a33548dddf7fed3f3ab72b86fbdda06e256d30fbcaa69793fc5827f93ecdb9f3b75f547dccccdd1d4b523996a47a7feaaade2f0894a8ef766e15f5d46740aa63598b2a15864e855f71a88bc9c464ba8c682dfe44d454f92fa8fbef07acf0a6670449d4fdb765eceee2e0d822a58c7d01074d58a249dd262cd146acd41d23d5bf3590db68fec9333c747f7696645dbbffc6061b5ad36ef88c297f467df03b8c56c772e802e56f9fd9a8fda30b1b8996a0976844c4f654235afdc166f0e2106144acef8bf0daaa5fad36f75cfde2fab01febb698d215c09155a00e715db57b86c83a2e5ea6c040308315bb6fdf7b9fc52a63cf44e1bdbeeeeeda652a3fe4ee6ddd1e9b3786eeef492831759730841894c0004dfc709bdedddeeeeeeedd716964b645361a1bb9fd4ce4bc3bd596264f870c0e567513e3dfb4cd0f3771a2f84615d3ddfd3dea72cfd57beaf277d6b5a577719db634bd4d49400f2f4e62c897ac0f5d3b43be04fad91ab7c54568f5acabb52dd233522891c5e14865d45ee6df83ee8d6cc417dd8b7392f0797477f7e8dfcdf05d9cc47cf1c59a697252e288fc9e728709a102181ca992022e22c410f335a919e7c06a7261f1bc348bb364c94e95c5914b13677c10777eb8b5d61cfebb72e2bbf85be5384949ab699b09f04cfb2758a1b615a336092c0dd79c1e4de2050410a4253f0e06556ab667c0082302e689fa215f8725627e8ccf178497fb07aff72e36d5964c7c919450f4f1123b359b417483ee6e083bc618dfc7c70c1f8b29a54bc80e42d9cc9021e4aa071ee3882058f0808c604897925d0a470439e2bd181ea8bdcd202b0b02831a5f7eb76bc9cebdf8f0e51533bd6e2859422c83d261197c1f3489d902d842476d47abb44b4005e674626b4e8cb932d0896c5c7e1fba9fedae1d97170141746d69abcbb5257981dee57a79d125e44bfcc412a0c1f40f3cb478ad4e877dd34837333edfc18727525a21ca92db9c978e1c7ad8a2f4a5000cc34158607aa6ff6890046c241ca41d3be5bd1e40fc789c28bbab725e8d0d35ee7a627781c245d104428801bf8aa8b2c324f42e3f21e5ef6ff4d08cd9e5da12ffe46afe7af310223c708c6f5d8c916e40e34f67260d81d250f747045754be4848de454222e44b48708949f54e42525d5bf16002492854934f2f2cd9c90ef7a2a0b1ab87ddb082c6074171fcefa708661649a208a85a0009de4fba4d29a5b4412bd3c00bd4bb484ef08e0590e055c6d80908e32650bc80c6a76288d2d9d1a1f4e7e8b1126c4489d62c0aa241cdf9beaa72de06ae2c93a23f77c65014046a94f3009d9b28976b4b520a31c4ce695539f1e3cf10159f48cdf8072ce5b3f3e7ea5c424839841052ccd304f519f34cd383d1dd24a1637ecc31e318494a484650c24ba61814a919ff809d9b901d6d384878789ef0f0c4e7ae27e4ee57fdd2a639ce3917af0773dc4fda3631d2d1e2647c71f50b4823b50a59c7d53cae5e47abb00d90bee8d1361de099f6208824500149090796a66da008345b2d7ee0f162a0456d6ead4d19fb61b3c12061f6bfb732398be3160ed567d4080135349586b5a9e999f6faaa691b1e32845611a580fa67ac04068e6c8c1a3615d1f74838e667a469c27a882166156364d99cdd3121b8c81441e0a9a680a2cd342a727ea81ad04a15c64a7aa6514109db805907b53129e329742e92127662691a2b599af62421d06ca9501787ab51e4185f67fef1df152321fb7b0da2de65044aed9fedb1bb8a5f7f47a9fc8f25e4e8d1dd9f73916516476671bace16c384cf16674871c692339638a3c87bef393c43e7b98ee1e1d50c88076a635dc5c675ec1ec85c1996a2444f9daddd74ca359b1d2644c02fa2eb2382df08245acca82f757db4ec548e3f60115d1b6ec1a2aecf162aea00eafa6c2152bfd950399ac0007eff58e53896710ca52412db36f3ae2492c6ea07f9ebae6ac3c6d22ccecab0346338187f5245bc17d1f97cfd38a25afb83ab6555af72adda76c3f6ab785a936c11dee0a82e1b97cc456aa41c3afa1b0713348bb420e2830f3bf06ffb9eb9a4867bb19246e226da26889a518565a3d6d1a9d1d9c1961874a1f02c9420babf7f348aa311a53a46a8ef9b14f5a26149f1772602953fc697e6d1501f05dc684429cf03c2350602a2c0274b98b4a8e46d7a8318b299010000a000d315400020100a0704029148308c1379950f14800f68804c72523496074449102331886218630c21c600030031c620a4cc4c59057996c4060c3b95eb72012ad23a83092c6d91866bfefaeef4a81313fd5139b0b4e22bacf059c960a798d2b2c2323adc8bd10c00fb0ecfb6ed6df49ed8298fefd2c1f46677622eef3f81f377b040c02f02502a031da2255e576431cb01165b8b5e33107d25c4bacd51ee4db0df3a19f1b88455ca164482667fd923d6b94eca9929bce651c8d2111d4c06109d62707884d35900747629a1aefd4be704c9e1e3b2db60fce406e43eba94f42648825ed99e067bb44b07a671f724c02507a2ec6762763b7804dc3bec514f46601536d1d853bc181a69416475c2c7573d4f0d5f47d630fb46d5aa5bed7fa0986592595a6fe6a283dcd51eed9a8c22960f7d04bdd3c37b64522f97b157a040f62c94b6e38fc811927a69027b7aa25c23fb7135e3de7fa0b2007f5fe18b2c90119b35aa35384d9f2825974f6e6d5d3e6a545300044bca6c5fdf70eac6d4a8a2e26a33c598f61a35000ab04de9e439e5283230efab8cd00925cb2dba19a35681fb8ac06ad1e8cadf448a76ab80f63bfdc630f31734c8c175eed0bdba21977906de3b480c37b3d3a2c280d211ea38a2944b9cee70ec62193c45eeba0cd3c8a2c15595027a73152957e5ca1cfff5979851ee7cc510e794277f110ca92ea92bfd522ad4e00ad805e912ddb067f1b572349268c72d5e49feb604814ded7d98852ab64de33845849db9174a574e22c58ec69f249b532f0f8abd2eb34ae2db1139f88993d7f046897f6052ca930b1d8b5d0e3724a1a255e561fde915d56c67bc54c19047dec5577aee19e35c86b5508ab040bb74a14b841981f683d65aba4cfa90a5907cc6c7343a4444ce65310b120d3552dfd98cc17fa8aaef1ab6b7c11e2a0aae03754bca0f7afa2acd13cb398945b5e82291d459ac17d672e19cefdd1c63ee3df0cee97831fb02b39de2d3b7888634a2379d2bdcf4c9717b5910772dc20d887517692f7311aed455f49bd400e796d8381e1bba6cd373e2849c73a2af1c034d9734d72cd9d28b0414d1067571fe1e499aa45ae16678d93477096aca6da06ced54d64e61c70d25dd595a308c327e24c0271c5be57be2f994ba33045dff8202d6dd91e84a7424cd44da84e0ef7b54f38ea438fe4d206bcd97e1870b36b44d6f9f1ace88ab07d2f147a040794c89e4df8b71bcc7162147ee70023be9e142bfad4dd1cdd1925da3834a48a91fe2b2e6fcb03deb71f70a129d419a786ac371ad4b534b42daa7b07bd4a73aa80f891f1fde4b24c5608c22211e85ba65150e0f3336214d159bc16b91dac583238bde123d868c8726f6d6955bbbbbbc189a4730461d365251df750bd23100634ff51ac2600eaa092fce3b7386ef2d8024b35f5dacb065996a967111682c172d038b9dd5e63a48a198069ad828e3828ac06380f2589432967d2b35b8ccdafb40c0e4cf34d5a57759ebf823938131a9090270842f767f728c00702c98909a133ef4d77dc0886f4e6b712e2d4cb9a86942dc39f79153c053411c0cdca4ffd5fbe54c4c4a54d32ae87ecadc1ba6e5466fdb6b3d17a3b4063bd7bb81f257da1856caccd29d6bd345d11e3fce45bb167661115d1ec036f87ea2da3addbf841735f2fc9f285a878e13170242f48810b239cc22e153b794cd60872cfe8a38b92e5ef6deb5e5d42db1a258f585ca9a9c1ec96bbb54170b46cbc9f70aedf08d9665b367f57dd41b1a07f8118ef230bd56f875ea3e694526511fd5820c56bce905b667a98a73c9a9e69828fd73272291f7112ce49162920cf5bf077143a32932d6ace618a012d322c8cea2cc5cbb5840e2acd1845c457dbd074ecbe11f701667b85bca2ec0f19ac1e4244a66610b1523bfa55f0136397382b48aab483a98d33a0e86b68c73a4a93ab56f831eba9b67a4801199d14a5a66638475e2fc4ef3925c0ace3771f86dda0aa541a7255839531156f4575e4d2217c2b25330d4e896676d69016aec71e198b58190994bc4732d22b9ad9e164e7aa4c310ccde697e23c3ff559e0b0d13744b7df14ebe3da48992d2903a031cf0c033701c3ed10307b3b6deca97c8a07c4a41cb64894cdfe5dcce4518a034c8c75dabf7d129f19a94a9e65d91266056fbc1c49f6255d3cc39f1197a8e2ebcb272459edc8cd69ec75a4d3e16084f8f125031c981aa755d0d28c251bdbef31c9aaa247b48ad504838f1ef2ae439d9c7e721b0559e22f5c09c72175dcf0fd22914e8d9bb51047334f84e608e6dcc30fab10e158df8adcb79294362267a13a83bcb86791c8900466329e507a5a1135395b56491e14c8dca0acc0a7d667954aec7f759c0d07879a8cb83d3273091ae8f4b5a7336a5b878651746216a38f16502a101fa6116026d7bc30b11a56baa2a05886eee13e7594999e6095aaaaf02762943f1491dd345d14e08c6bd897026f651ab166d314b6d90b5d6e8a760cac7728fb1f53908b14b0e253d2c379460800baf520cf6107608e154783de689980f0528278ed964e42180a921154f198b578e2a78442a7b42e4d38a1b2749b4045e0265e725ab9df55073e84a635930abf4a544a99aeba2c80f22740a780bd44e73611467007a4665114a20a911542a6e80d9e9474fda9550a9a66bb0cd8261eab3ca987655e696444be6ce3894036087796ce4489c6065603b7325afd86732fc4a02006b7042a5db40815242a7482a2f9060ab2c5e6beaf700c31cfe45f0153be55c5f20618f14b3fe2a9df1b2e89e45c6c86dc7fd79e0504e60e3b629003ba2440da79d440bc2f3168aeb3174f8b11332b6f4521bbb07b08a5346bf5a94ef8377e807159f3e92ec63999dcfc59f671b6a4286cb9ab1e11c90c120116b630f34fa8d51b24b473265909bb43e233734261bb6570408af42d4f12255b58b7d1d5d1cf3b4326ee07ebee9a40bc37289ce9fd412a6eb777b210fa23701a03d2c73f563fbbb586fbb6231b9a21ddf3141108d0fff59c09f96ed161a98c525dc020d00fef9cc0cc555ec6bc4665600e6945058b40424a59afa9ca16c7254800bb3988c7432aa33960141af41128c58cb2b59dbf20a4a464ef4d5624df8cccdeb02757a8b3684f7ba9c22a0ec3d0f4be1ae90d8121a8c3265526ee8c9328169b438d1b61bb37514b2fc2b488bc7ce0c40c0d14723abde44254b2c2da6e82706866961190605089420046ad0635ce1d6bf35eb14628350c0662198c56759a5abc1ea4ca38d6688fc876fbb4f183f0b7fc14c9df2b821dc64e8812a99357b6cbf7a720d7b63a38b2a3b1e5651c5254bf05168ed07bca4512bd9daf27b2e19e7e85c59c2e8f8781131a892f98c5f7a411f7bcf161de18dfdee5477e2d1ebfefde7d20c03582c272d841a25c6001f2696168a2fd01dba9fad8c7a55468cc9c95cb52e8c9bd971df5463e990e880592d0c58190c24313155a221e09797b33a6d57d878384d56f410ff3c218a6f02d2e3901460c7fec8265703357baa1c420fa4554e14da2d2962b325512a7090de8193331dc82023280d5ba0f348c864a1c426cd9d753387531032eb0a2e6aaecf3b233e4271632a7038736c0753051a596e524568215e83c8f50b506ad84317e5240c591d4a948d11a8e561abe5217e81b8420118c99d1e5b4bd54cac22446a05da87c6bf264c508f8a2c0cd1808be5a20f017696bf4168d07696cfb7e31a4d45f19e05b7179851e95ca195378e8c76759d2d87fd1ffb956a8bced433b21e96b4090e0306e096f729b9a11cfc499b4ce97195bb6c6d071427231472207fecb6350c23b92db2bfbf81fe362ff4d17b0cfdf022494e9c1517142bc884acd6f2adbf2e39d4c540e24729f325e410b2f04fe86378e6a6a84b6f230952e5b0552094fb40b32b6a9238cced6186a0714ad44d38772d78f0805e6f0c4e1db9cfdd0f2a89f75bc1f6ec1371eb4db6e9e0a0a37fc6daf09661faac952e19fa44090a15b80ac37509d6956ce33e34fa2a51d575f72cb3bb214d48f8499537aea4a0ebc78f376d913f31a17b9c3d52059c0d50e8c458aeccf11b2bea179eac76bb316156248e1ff0e211e127b832f8f709d6d0cad032990a58569bb95214f6ae6b0a3746441d0fb0e53b2cff9852186836f689c5c3b53b62c22b1411198da2d1c18181b3be2a75841628b51af1e07a306f94f446b387bead2ce527b0c8a3912778e98cb89a507960ed3b731de48fe79092613294023a19c6592a43f80069ab7887beccb1870d7cb77e6c9d9a274ca1cfcab6c1a356c7830885ecd86ac80c679673741d8c0045e2a01d9b2dddf4407a3c8e2b758af4b8b6f40d14d326a1940d52b4f0ada928f728b14dc0949956b9a4549c005c173acd79db4194f47dec352966719bffb99a833dd67a8b43215ce5fec6eac4e38be70e2d452f17be5dfca84aa6d6500c77e17a6584aed903340532f49480891bd9679e286bd0830a25c05e4994fbc6055615256124e01ca2328f860ec726ca72d71a91e27093036dfc5dec99cb6aecb972fb7f12a081e1c5334125005077ceac228d3768be1c2fc668cdd290a62c5af8e77094e4c8575c53c69d1f20f94522944659a06273ff92176f04d11a12ec351c1e9e174caf6038ef10e7fed80d176c2f7f6173a50ab1dcfe0bcb3cdc6269515e99955489ece086e60cd66762afa22d81b8b79b779bba5ef3daa9d89bccf79c1dd4c7adbb98e3bf5885dd066f4a3f3a93e000033df72e891adf26effd7f61046b45951245b83f506af7127e43dbae685844eae32dd1a0480bb228e7307c2381d69ae4e9c10d6dc83f9a9b4aa97e853eab90d110efb8ee7853db8474b245bcac2f5fdc6489c1c8ddad3a70e29f99b2b0d5452ca9a1143ad305c04582f4c10a0b84c6fb4b5bd4952405453bc8486b0b4862066ff7a873c5956a2ffad8ac68b7035217916320da7510c0aeb9c153f86e10c91a02e475bba2965752663d9da8e6cf266b8fc94e1ba2c172bb3972b1c6bda93590a5b18757a2304a2fa738dca7a91d70f9d0feb9f89cfb36d165c02d4d9d928a96df9a3ad3939b180f648065bd80d3dffd87b7a64d529cfb57ff5a0a3839d814ff7b46f42e3e7daff3edbf9412a54e21269836519a1ec1411ba8b17075979e1ecda8dee79e7fa6eebca8366ceab26196b8d7f0e5ead575f30b253c9689d3e9395754ac4e22bf47803b497330102ad631110b06882ff7eddf40c40cadfaeaa8cc0a3ba53bdae3ec02bc550bb45aa88920b8541a28a2b9e46fccca669559931d98cf947fcbe3cfd2642d03f1cc321878838ace9e56ac2b1a2a6bb2768bd45d250f5b93b2b6e458d5eacfdefd6805b03688bff319f60cde92f2371230964772aa022a3ef072d0cbef79d05da98e626fc08569d20316d6b1506e5903860cebfbd1cd4fb9a4bf9d101549f6d0e73f82d0d7d5e955a02832c7296fb727ada3d86a4d79be8982f8a00885608a758ddb7912db15d833b07f77ae1666fbe97d0270c93acdf1d14480c9262716b4041b7fe13dae1be033cb687dde5ea6792f3a5891ce55a9881b621bb6403ec62e6b2b67dc6662af292eef853de55c87072bf32eb8d48b3019d9607ecf47e46742da45804862ddbb94087dc1ee74fc76915cc792b90094c7b473ae6b7075c93b1b7c63472f4469bf602bdfdc77ce6428e35dd9b867e33eac1ce1756c6c0854f7d0abd515acaba3c2d40cae1a65c56581dd43c232c0fd9b59c1d1c976f5200d7315e9fa56237b397a1101bbdb6988d80b95fbd0473273c92abd0ec23a43850e650d5ac210b3c8294e1a70eb72aa4c7f215af5019e5d7ad5d49a6fad5dac47fc79406373cbf15ccfe1dfad39f2cf94cd501e58ebfc6422d273c93707cc1a827927f027fe0c00b0b9bede24654092da5a057fea1506668e1adbc8237227c7d299c2292eddd043ac7dc6dd534c1926e984c5079372a401f7c78b89cb4d2ef24d6833fd69ba0028b139841c47d83ca8e816f3c9ff0bf378a9d3b377566a8918c427d75fb819029fd9dfaaa6268f43486e54f68d9c94388d06965d4bad928b1fe89391db1d37496a2b3f79ae06c52a76ec03cb94973abec94c133be94cc2e69db51356bbac196bfe6a95b5a7d2620a1e013243de30c7f13aa7e4a4da77fc699f56d82e47776754ac5d5a5bfd81451b25cead366004a8c4ecb339a8d56a2f71137ab734a86c6dce38092ac5a3630dc5401e4eb8952483a4463a74f545c1f1632ac10b7e61dae5b8b7cd7b346d9d32e346b046fd85617e156d9953390b597d618bbfe9aebf306cd938371fc6032f0dbab9ca493f80d91d8089069b4e80c4bd58b541f5ec583cd79c6c603b25db81ce5991b7f8e9128421b9e27c49a84a9255bb074d93c1655b6b6825dc50a301f54fbc9f837cd045d59021ac9d08fdcbe7a3d8da9e09d82536dc4f4f3b9260376cb62b62b7647647f5d3abdbf28b5acb00a7e4f2d40f23a5fc73b493c1d4da206b1add58304c1c1e05072668b7483284343529bef967d0371fd0cd33709cdd1aae75154e701c0ceaaf084e3fbfece0931eb1394d513aaf749fdfcbb232c7998606238af23b8018dd8a4ea4a2239766e622981eb902fa920101c955246271ee40ee878536b6be5e702076737d91f64a82a98f1d9b16dea2293a2618d352bf57d7af4100e7f983877e3950ee6b33d1d53fbfd8c61438e912a9a67d3ae53e30dcd61baf718e632cb37e575062b867b466b9ae91c077cf6149e29eacabc40182a54e387f21f6cb7cb4539fce4622890f9d1da1310cda4be97c35121dea0c02573d2011f0958abdd91bf124a7f4008490f7505d5a6615ffce608885b64ff13008abe52db38e35b5bd7cab3862c5ae0e5d07259c653ab587d63cc9a3e61959db961c5890b9263afdaeb5a5742e3acb0297eb6a7e0126dc2d9ab5645853ac5096fa5a84059040958e2404fddafd3c0adcd1dd79ac19b278e79651f2aad1a40c0dadd2dd9e5f2bb177393af2d8b9bdb2dac9b1c550ac9c035ce6610b8f1efab3c97ec5bfc010b2b1a0f095011613077e1613b6cd9ec9edbe253633dd87bab19a5e6b274cde713c642e8d9eb08de521e9b970a0bcd4b069216dbcdfeb2b2259bbfd43b988242dfbcd2c1751a2e0390c1dfce98de051e81d68a569d43667d6ca1cd393b379af7df93c00b72f67044aaccbacd3c8531405bcefacb7a314769455996cddaa3fb1e827da5b9c2b4206de8ad4035d8cad3fc94f0d935331334c545689ac3aa408a2516f3361b92d83d0788a61d6ca0ceef0ee930f772b3ece967e399d78cf1631d74458646ad0314f501c120e5db6cbf73d4daab1388925a855ec4c4754e2b877bce439ae91c0f4cfa18e739e0292f5be435286cb5e03928928830d1bbddb167618371fae64c3e7712ff6a27af17bbdf96127d7c98a83be6dadcaa498d878457324bb1294f670b8ec028e4ae158136cf64106371fc8ca0318b0bb1af8eb575a434259a9adf8a27c199c50fa4274c4c066eff22ec9712b7d51a2440ed0f0fc01ade96d5602e3379b63b1bf2e4a7f888528395a63423a55fc05c00f6a13bf938a931b935b1e2df93ef12bcb96d3d114cfab44a23a39293a431fec4d94c28dd260917d772715e0b8023ba2a8a79465f8766faa067dc3f4565e26a54751bcd346c58a7c896f740fe941d36893e8f7f38148a3429b1034df20013ff4e135b05fba9fdc7aacb182e0bcde45ec5cd0cdfdf60cf966d1bcfb1b25b5995825eed665468584a38eb5d17b3b20ad94d90abadf1256155da8f54432acb14e457857e26234560538bda6fead9a2c468a207ab933821c4ba7495eb26c024f17852bd8ccd5a4d6ec6927af09c1666e343d170364c1f83a5c6ce6a2dbb91c3a0ea5866d003b0173ee910dc8a662f69613b344c079596e91e37247055f73adeb5ad7d4135a2dfb34050cca9ae01b8dab0bbd4425b431a3627c60fb628422f7eb7e6960d41033bf8138db0c2546b10ba432e0497f0217388c57295b6bc3bd70bae78dc8ee0663f0c9ab14363701df58dc3b1a449777f26acd5c74ccd3e0c192e6435bcf19317e76835f6053ca18b76fd5dc8ce92950051761fc8206ee51020ce140da2758b27872d8d643c0fd629bb3160419ce6182be50f95a8423ce6146aa8f3ea840eb4baea7ecc2a8ad042f1fb5c190567b16000e94a53523d1cd3d06f38a54a57a3f0c1d72685654451b3c43567f69fd041b5cd12be73be5cbdc30c7267fa89d5382be219455b949b285726a4dc9935acea3b11b50f459c0442c58d578ee74d7fc9024770376f1b502b8598275ed9304ce4a8b8b12742027a51b938b5871cd0f75ac0510198d2778fce376916f41fb5944d57d4b3574355257b1d5680d9ad3d5182729a53fea758f1c6d4672c596c66f5c0de2d991c32d71d74d78ac99cc8895444142ebc97470e115d4e143a19368aa23dd03d2b85932416db178209d2320dd3dee383307d22556ebdc81e309051ab1b3957de9d43f91c0dca55b56b832b367ee592792b4619102e0932a7a3622f8703a68d8e8944ed1f01456e9942f24b64a3ea8988a69d4df513d474f8a70f3408a6127378985c0e70d0b3ccebadc48641966c388a6caef264f189cc06010143a073c91da1a8c2676607176c5e793bca37a9ba8982c449ad413d71bfa57f1e5965b3350f18fd7b19f7c18f856d5b89914d34e36311cd97fa36df21b2046058befbb819abe7e60a1a955a8efa34832758b3e83ceea60d679084380a2f348361daef6534ffcea56f8e596d02d3044d1fe293fff90257a04a8d7779cb9fe829acdaec54e12d244dae17d0db6e3a247b72b7939fbd4f8780f84045643fe2ba72f30f00604731113d6372bdc106cb48ba36c94009357ee675e2a7802f2de6aa66fb25a1884e073be78ce914269084af677d4346c4722a0581080d50123d0777c9421ec6753c0144ab2183d04dcc0c23907f3d9ff9962b30b6f9ff6c665783580add0a09f867eec4791fc660722504dba8a65856e86dc16165cb01e451627f718db0d340e693909316628f452276428913f85da97d6c8547dc84e014c551ea1425426ddde41dcb8f6270862b184ebc13cd1bb323d4808677aeb6518004384e84c8349e23488ef043de15f0881d31a3677538c289d2da56dc42bd4fa394e0d462c830a9f0329d029e5d4a4b47e8d220b9aa10fbdc0f947e989d095da91c9f23e7be6e6f90a01d543eec4bad7a788db47b11f8d355d818d4963ac8404740e8c1aea9ded1d854369eedab74c3d6584a91e5013a4a54f334da0a3810e23123b93b856f2a0464d4fd01c030d85a343250217416fc3d55e1630bc8acf06d25eb58397f805afc5778877b9a0a5869e3125eef8648e9e0415dcde24c38255e1cc1875244a56eefbddee325840e36989f6b076828d69ccb8f0166930eedc2b7e74178b0f2a869279cca3ccf8bb59ae98b5e1272b36d3326d1717d3b33796f455e62e8184532ced3c700e74e2067ccbb2c1783e8d2300186e77d928466f849b29575da56a688f0d58c12a0bcf1964f153346c68ac4c02254f8822d9479d75b819f306d230c3eb78d2fca8a3c0e2fa8b3e5f2fecf3a3d3c8a28605958dbbee6defd26394e863e0dfc22e00ff19bd52ea66ad615e7b243c3395fae4d8bc116d30fd5a63859dc6442ee7f3607589396a0c0314653718e2f24c6a81345a79bc7b4e696beaabe5c9671bc2ac5e141f203001011eb9b9ce908d35d3815358e84c5b087b70d881a1f538e6f1b509d818d2069a5e4e8a6e258b8d970a3234880cd956434145b470f3625645a37e34653d2616c9075a737300dc07fbeff98c32a83afdc66d7094ca97b9578974086022bf4f5609023891cd32e89b835b89603762e338adf66aa953a253cbfeda1a39977168f4dd9ddc4affe28941fb01343cc0d9ec1d7329d2541ac5cf13ea369af640b2400f48f5ede79c5e45148673399839ae50d704ab1f1966d44bc8ff8061afa3a6ab02a3e55d13d1b25843adf55f63206574a89152407a52f6ca0656d8e51b1f49526fe6a945cc4a2258360a00af095f687c2e784cf0cf4a279b28b0814480594524e11603de78c7319b61880b86e73f79398c9989a7249b8eeb0fb9da1ab9ef5ba0ca9c356ac5b7e7da9cc94975626b67589a844e8b0c708a492a5fac64a002160cb9df253f7955909021ac188a6c4033bda6cf0748fb82d7109fad80a2be316f6bf4f210fefeba9bf3ccc88de62471e2a65e74ab0d9e6ea0cca81a6f565c969e53566d1e706b21c5da669fb05bad36ddc6a7db6b0570a7e01fb0858f995c360fbd94006cc3523b009466330a1a933ddb4183efdcf383b6586c36b031451d93d0a7d9eb46909bdbe0898ed4b749483e19d1f17f20a9e6ddef3bebc34c6af8fb9f4e7e59f5d977eea7ff0700b24d8305fc5686e79db05dfedbf39131b9dff63b4b2d6d213c388d8d45c5a29430e1fbf8b7b628699f1f47a50983efd30e8dce7b8153b428db2a70cb411fcc057b0253b9da77ebc7940090f4077044b2ab685c0f2d41b768324ae233a7924ff4995e9ed8625eb65d7fc9d2302d802966b56668139d58b29c935519e8b7398b3c6cd72726415ecc280d29cfc082b37cd6c7c4a405ff9b03fd41b8bd478ff59e4c55f6c70fb72516695a8410adc1ae80322853d960ac6ac862dd4e9d258c6c2abb2a829cb79a0a3dad1dfc5bb55a81e59638107ddf865e758c7fbb6ff65eed1500f2492bc17ccbe19c5c07bc13af555400273067a9ffbbd74cf32c0a5d1320ccf1b4cdbf06011da3c750edc087d8534340e45543c0f512296f005ca27276f831dd75de1e62f3ec3d7065dd9ddd47394035080a39777066e1743a76d77dc7db1e45597934dd89d1167a61fa512f00cbde2ab0d3b61de3b6c6804f53478dbb95c089e8ded36bd8d55a5957765c80e9b730ce1fdc828c1ce1911783adc8c1b7ce1235bf69895af42b0cae90c6983d87fd5194d04d99ef8259025f0b10548102f7a1bca351f0f89f6aae034f42eb9588d40eb2c00590ef74fc900b57d78eaa96a06eefc5f7508c33ceba0c2e8238dc29efeedb3e6450a00f5fcf6977811cb83ea9d050be5c3a865ddeacd8fecf5dbc333201474ed1662732c524787806f377a10aee65f2e8acc6271ad91a76034b5567c9ebd9cb6eea28b342a51f604fae082b9b54615ce1f86bd827350847ba41aca421d8fef391e9c148f4799479f297d3f2e82ff2737aad3a7df9f6691f3ae2c04cf7fad52a149f97c2f9cacbe69ed805f098edcc301fa7472067e884513d0512d2f0c4b1148ae4af670e94cd5db10203a3d5c740173746fa7855cc7e8bf36b36184495f0844c016102091ca9c5bce294bbb246a00aaf4d5210c129dfb51aceb38209568937274190cef76a81d3bd392cacf75c5a55a30429f18b0f3bc1755a78dfd5b190495ec14ee46076124c490b1485fc201ef095a846b9c20d315706a40f112f0aa196c535195ba91e4b4857103446f440dd00be7300d36e67822bb89177e8cd19e09bd48de71654289d9da1262ca76e321fbfcfd00daa05138cc9478014bceec0db6363722f2bab4fbe3b656c14cbc90b404d467f37ba359f0da31a6293aca43ecd5903eb842f3c0a1d23f78c9711c0d5023663e1903c778609e3f16054f217ac7ab4e9edb3b11e5a3b7a741f10c4d1386e19f0c11e785fb5da6911f4d4bfa90af3a240dcdc1eb3be533e187d4620fed3db9f54af95ae2611d5f9b0d38e4951effcc954ef2d1cf836d315203fa191d006b290b45a4e4608ee65b8e684ae244c1885c13f0fc781a4bf9072ddf87170c2dc6ca6c574017310f3e91c628433679470821a1ce5e6ef25bec0b1d0c0cd7f9bd3681b582b73b427564ca315f4a0b255e759af74a06a8b8c83a3007950561fd2fa982ef93dd78303f2549f46779ae735a7de0c6f79981dcc2a280ecc516e465db127098f695250fe17e4ec3e0e3b8ab9af84fcd4105cbe301208ce5054f1c00cf18a0cbf95e1fa5cb52be73cd0d72bbfbbdd9e30c041412fc327b1260da437e270c37a9d319a08ebe31ee5e84e90567b3ca0930257756b381de74376c5ac2555a9427625f3c68f16fc18cfb275254e6a664ec9639d400e0ece635034ee6a1e932eaa23891a0370a466f94eb5e819d45f004e5ae6bef25252ed0705235a01d4de3edde5207d6972f404a4a23a39437667fcdd01d27863a07062859e92f7c6340a208d7a53a7fbcebcaf7d6ec55856751e5f2cf460121f9e665ccfad878b917fa0e1a73fde255b9bbb5584d97866713299a78dce49a5f8985e2c1de351cf15f43e90ee2595fba63207226400124345f53d219c6d28d47d0ef598b461844127baa32d055a1bd0c6cd9f36a8ee888b8d3eef9bd8cf9853de4d30c4260dc2330b42b5777011d7a724fb0111c21cd76ab410ac20a82867ef3c6290cfc948b30fb8a2145be4c1f7a6a6cf9c8ae71898c567fb8fb07b17d51d8e85e9b2140d9a9b0b635c2883267850cc4b0cd140d668ee3a33f8e5ff65694db364351075fa1bb6005951683a601a0d933418222055a68f34fa044fd593448df854678124102e123a9fa44436a92e08e317219118858ddebb180ad956fe9243771feb3a26f0d2c0bc828c0ac7f1c2d606bb4877bff83c29a317047d2b285c4b904b0908a20bf74f1abf2ad823cd4a1f838b14ae70e0a43d747b3b26f508d33d559f32374cd3a17a78aceda62b840c1e232ba50920d2b980f8fa9461d8c88fa87c9edd98c878e5ac376bc1db5c0c36b113eb2aafb77ed76bfdd81136c16c0463d85435189abc20d816bf9a4b6e277d995e581b35d15299c015d4a0ec8c680e07dfe8dc502b524788679507cfeb80297a91dd63af3d4a4694bfdbeac7da206d0630c091c20670e5cb58299a07bbc0cbb594720352473f1042e6ae7952684a22464d5da333de1dd0d873794564571d80f3fc035e3a8feb1daccd7de533d00caf633b25a7358b73f4902c1e86bd2aa6d7a0c58cb085fd9be7c6823d5adec75666310843d332cbd9c3567027c76042b1661b869f59a9cfe021aa2f2f22f09a4067fd17864fa7f3f6ab040770348441d57462b556dd1311e19cbd7893767df7e237dec237fe77c7099413eb352bebed5f800af63384ebedff43b2002aa820367370b52deb7c341e64a7104b955163b21cce019d016fac25d29811b9ff7e082d7fb54402269cc4cb593b85a870f96711ee5aa913ec9a656bc9b885468ece076cfc902a27a00f77eaafd8dd8d82cf8c03918a9e1652908a804c14e527fc4c12145c524c78e675814c1914f23f4f133271dd49cc8f88c433e3898d8d8764ee15f9d1230a7a4e53c9d57fd73fcf1566acf0606bc1f3b5f2cb94148cd5c44aec51906a537ec1fb50d42081fd1307d849897c425710d10ed745c7b8632e8eab52dedaac435e058243f290c17505b7c0b0e0bb67fa60425b38c4896fb40a09044f15b98628f45754c6cf6d5d8b8b88e803b479b2960886d3ba8dd03b854e36223ff87b7ac7b849ce3677177fd9c2089122ae8e165f49018dca2eedba2d65d8e3a5d39caf3a617409c03a99e1eba5ae24e4be30a0cf9caffc0c9eedc3f4b48301f842d7250642f0c02a9611403480b16416f19ac6a84adbe86884a8f7414909647fc3b655f1174285e3141383a601f4e77a656d03688fe7386b7bad13fa1344538ca3431ab4ce0a5d0e9c9249480d0ffcd10d713906b0ccc5cfb12ccaa1998e2244aba1537f04444caa99faa0058ae0c42c71807055851a131a86b3ba358746e727f0fcfb26ba8ad235d228fef08ed4013a3a1fa7aa98c0eefa6e5c13962f1361a961c2b944bcb3d4f51d3b7bf0c46d846d224fb7c92b670ace9f5fdc9a52d12025aea6801461394ba3a992fee12f165e75e7804c752f62c12f4e0edf1c4211c4a008ebbff9e4661417d2f6f75b9092015901fd3ec10fbd65104bce03d60351f416b627a3df5e45753a0545cf0f883e70f53ccf7a57504db425ea8f2ba34729909891edb31e406a1975c52ea2c8358f3617ed0582ccad0e20358a9d86081ebe8e24d971df237614868127ed2994e579312be2a77e6ef73f4b0e918eeb30b2e8d9c495902d5c32521b269594b57a48400e86493d61a60bfe1d89b6db4a08ffebd92537c69c96d28e701a94bac6c066edd3482c8ce3d518819be8458f157f1cb88faf746502552c896f8055da55fcc8dcff204af3a6d7269976c42b396aabf509f95bd99524400b8fb145bd8cd2638000c415253d2f8ccf2c31d658938d22665c3b375271ac7c07e956d8f81ad8467361258931ebb00038da945ac653e1dfd2c1143b8481c4d0988d7a7db562442fa376452b1660fc0260eeef31108a302f685b2d289cc26d3d3849ffc42d3293646c57b7a04c7f6463c71434f0d46a4aaa24614e27fb56218ee6a8c3a443f87d8920742a650539c02160b037362d46e6ed453d4f1cb32bffc325114b24f5b8e5498816a5f154712f3b5ae71d2ee0c498f821eb387f46abb3a81a7e3f34c6c3edf37fa340a632df4a135420d75f473606b5cd19c023b8b028053471c1dd19f2af34d57667683774b8ed4d6a488da12d35c91b21848d3ebe7dd023b742a4753fa53a8d7e2e456497a9a130c70f6aaeaa3a95608954a61df8782cf2f26de68bfa9c0be474ae828c93192a94a780fe70700ba399d335cf7e3de5a76ff8c0bf9c3fe506c9836b68a37c21d11f057ec0bf09c25c9712650f4da19a33b01796fbe172087e1908b8b4707cc059cbb95d02fa548faed62e2a1e0eb40e61e55c578dea7c69dcbb7e48aa8731d4ae93835ecf45cd5636570d2851cf1be3c9283a903a1dfb61c70a7eeb54336c7e1e7f57706f146025197b5d1d29ba4b5c59034ad742d0cf28aa3dfd07a9169ab4d5a3b0aa760987832366d3f8b0423c065d5d6020a25a002499ef07036c94146d4b8a7b66a0685b656ec154b43d627870b76de16451544a89835cfa0b2a5954dda271295ab24230f6d264aec06411c439c9f2cfa50711b5c063a65430607735e5cfd10f2ea4f4cc15d3948aab837abb4b535383f344f8d96fcfc28909b4e735b44b8e426205dcce23850c284038484403d8866e5dafe178ea376636178a060be8aafcd26b6e033f82d32939008015f2f4bb13f63235edac58f0c0c2a780a9e3fc26a2c25a2323eb27fca7d85eb802fb1b5c31defa80eda65760f84c32406282d47febf5ce61fb378358fa1a5d8d78dfe20deea526e8d1a6cec3f3be4317a2b17bb5c3cb6c4bf93c865a35bbeb1ea6685eb4638a152efb5bac1c390bb287f43fdbe069e84cf60b70e92add940bae3c053bc886ba96e67164ccf7d1028cd5bc4d22ca8f6b1fb6f0bb7fd1837ab8f58c4980be03594e00463b8b9a3b97526519232049dcc16336281449c0b8a7dd68f9c177b94305de5d9161d955fcebb72864c3ec2b60c96add5a470507321970c07fd15cd511db60b7a8949e7d7c95dcfdd5dbaf851bf9846859c1ed94f64dcbd3e28d90293e1e21506003f6fd762162d39da4d8971b68aab4da6a226010b4beaedbe1191141efc1fa6fff4e115bda11b39dde414c9285c9143e514788d41356d20fc4c41c0839d58545efaf6fa9a4bfbb9245e603c5586da38869e36bfdfcc829c324efad6b17f1cc624cf2b513d4822b1cbc37f0e5e36cf20425cd291ea3a320e8d9e1a6cd25709350d07a7c978278f926f2dfdf46e1da857a3cf5102d9851469dc96b16e3021695f3239187b215d310b441bc52faa023b5c0172dbef55e7c0677c05e7060a24b015aa9b0716ab1179795b45d942de77c2a5d089558f942900c22c900bac000e43e381a12bc29e51da414164e6723a065a39efe265bc450925bc7165a80c539386a08e41079960f1bc6981f806393071810c60f4339ad232259e35533dac777ae59436154a6496c2a1222d6ba62f5491d21c43212f38fb89c1396eae9e503269e806b94975df003c5cd6baa01773134e5174825e33c35b00a2bcc3ab1a8d1ab57555f6e4da0573c3dffa9bc542c844f9c32b36b9b907f3c61168381051f24056a09f95d71ca8dbd9a24cd828c665b2e5ee3b82080c934c21a6ba353bd8a56c9907b7ee9e787842bb85c58d56ec337954a4e76e6ada045783d5246f75e8ab6e0f34b78e86056fce0e1f1f9d63bad77d8494ae9ed07b8a0ccb604ffa3b1760309157cddaa7a40d7dd221687053808e9b04210a010b699bffa0546fe254df20f025c2d818096ae63cb319de2730c9d528d8109fbc46913701fa755659424adc0c375bc21c8d8bf108f29f38ceb725ab135aa2e68645a7090ccab41b709fc99c128c686b556ea01062eec1b295775d68da5b99a4784442f5e5688ab764b539fda5aa051720fb16655511a418ff7387d9038703378879c5c8c4361b056d5ce8b1708eefac115578636ce2567abb60046ce19bf0389f1989898349a30523da17106732cce416a46f8a5003da21d88d90f4a0dec751cfd46724b3a5bf47a14b9430b85b100b6b7f741f559d28dff4e7f12c67063e9835b8d6266f73826b12e0dd1ad8c125663e4fcc7d3017a67bfe13fb83d150014244d7816fbb67a0d4689584a2c0b495fa23272eceab04bbdfa3c3a2ba3fc92f48a2bab4f64a878b5c1a85409c8da784a178fcec9736d62b4a4e28314cae01e3626300e36159dda6ce399e23328b6c2d60954c5ff91143ab58ecc4680dac2d99073e96190792a8411a0199bfedb1a6f72be1f69d63cce88f3610c0ff0b829caa3c3d8ed4dd00713cc4787c79c48710255bb6434113e60ba745f10d5ac62ddf4aeeb679215f105d70f2309c79e4e33cc1be51843c939c2a0a829b011a0a6787b4b5128d6460b2725a730525fac4ffc7715e6bde63b0b66be2c75ea4c184223009e4b6f287e845e3ecae1fda481647b72f65212d155e0bb469a85dc65071f8bd802bd45dae9aa185cb1f42956501b4474a228776003c1dbd598e1062530cfa8a2d7bb98e91560677b0d29057e2b88743acbbb6c30771dd90cd02e8aeaf3dd5d5b7b6aeb50726f3a2e0bb303c8a0d241a6997f3bb2b136b0263b76a7be0811faae0893f0235cd52f79f1f9db78a81cbaf231b1ff7047f25acd252093801f0a0afc550e95c7695d8d98a4d0f9053c606ab932897d49c6d2331c467e7d2881d9f6a2cc8aee4a0fd20933b956264177afa701dbb7a36d6592a58ee3086ba9e5b30c134c7368a8fd816b7d46fbeab0931bfba863cbcca99a5e8c48369633f70827bb972c7394bab23d04c54a71ba6efa8958430ca7a102ba892554430dc27753a0fa5598d0b90280982fc90a2974d6a72e0489520056b42f3bc12e1c7af4d43b28369825ee012236362f09740253206fa4d0283305e650c671d9c910c4a0e68c00676423d41ab939c7c276fcdcbe9c19266fa8975ee43bbe251295aa0b0b747db70496a217b716e0929083756f4196c52b6825bcd34c519756b291a266645ba2553942a63ad5956313383d7c87d4deac006785b4612ce2adf70bf2e562ad35b7e695a3b1a541e9b4a353daf962f115733910bd5071e2c7753354fe6de945268f3b21273415e1797a8a1fd44a11f4142510d80ee52fcdb14399622a508fb6f53eb1f1f3fb361e0a92b4901a966622b71684d6a9a41b1e6434b4c80041720225803a1c0697c6f73cf11ee6439eccabb11a8745d4a9abb5bff8f489c410352eec9fafd84e3d25595c0bf5659361df663fe2614606855b5418c0c1290e3451d42f1c0deabdea03e715997f6cc1fc68508b9cef4d1e6720f55d6161d6902bf3ebd71cc67aa08d200b8a8fc27ee87d1e3fe04468c5ab2223c24eeb9b4b30f204a2a03c3220c2a13167b370b1b729d21e0a9a04d0abeb752b1697ca825a4541e75b063a2eeb3359a8c956d865aa5517b4f5302559dab1b7a7e3987b93063261f9c9435039110328303d4830e02b50fa8cd22e4379b5aaadcee57e20495982c00d7c229ad3f9bac88d0837f839e0df72e5d89b75d498a7d800de896fe7e0ff979402888d099039dba242f59e52ef06337cd7890d8c68c80e4c4e59d75f1c72c7dcdad49ba6ee33174ea073d966f64a908c78e7c2903435ef1e82fee1076010456a4518a847b40c3fca45b88021e2c950b6e03f924e5936031ca28e6528e8a79ccac711dd68943e9d31dd99ea96cd4018aeea75e8573496f2552e8181c89fc2c9145d36d8f284e92e5c40c0e7096c196dda925f4c8e3e1128b263a44d6dcee0136f7c948792cc9b9542d80919343c585f3c825a724aa01e694f700866388102863bc75618aa0bca1c71a19acbbcbc1d11b85820c25f43087ca424072d5f090beaba748cd168337e24f018c990c095ae55603d069b6e96489ca2b0f723b03e21e878106745804a20a5eb07146a8a9087a7318bc2ad0e7958737a3bd510939cbd4eb30b56130c2729a2f68c9c3cf1d0810f774e1d7b3219e978b27cbb4bf096c4df2d313a613ab0288907f832572348a9d87d142a4820acbdef6575994428d5b45284ff39f77124e44c822102979e45e338bd84c415128c2971ddb5f7ad75e538a624ee708013df195957824aeda3cbfeca7bb01f20a40f97c7af744a33d5d18bbc0ec1b36333b48d498dfd021ff32e7730e863586b61d2b7b05c7de5a34e733dd93e2e1246e163f409f62f23902b7d5c7db1943b5da5c5c6c4cd76b8a95f7dd9b83c8d539c54881fcf0de24cf916a53967343c015a78e1ff260cde9027b05fab00fdfd08285646c34467c49e3d2e2695281478ad500dd53ecf630a865779eca21ed4e75276d8718190568ad9eced7f444e3fd446bce032356dddcf3f7ddc26102da5f07db77d9f3f8dad8c928f1c8322e0e41bd0c7ba093837b7d40e4357fd930039f7f03588a1afe020c9d43917de62585de5a3772510591f5123879ccbdc2a5ee3ba5ed52f441fb9711958f5d103fd07b198880b11eef39faf7e42ff4aeca94f5d55fd6125d3faa45be12e76e7061a137c735b7e66c324cdc968c119c18afb05b4b18ba65c1922a3865355dd76da64dd029280c3191d913d2abaedfbf1d0bb41a3a1f41d671de479f333e37002f77c3a0e594b4fde25e6dfe3a6b4f309b711fde4f9f20b16ad4bb3c503b0ddf984792a3cb8f7e544a80865352a0e12c4759cf46c9f469c3f41025d7a49e39d37a462051a0bc870e00f17d06301e8c41207a0f8b513d0b0f6c887a40a9637f0b3eb53ea450eb11dd4c27ad7790ae6b8daae17fc5948d0039f0293c7117105c98488d2198cd26b74972146c63f035efa93cc59cd1ff3d498e637c113f652594f30f45abc1e50520814fca7905ebea2c1f8893e1e3a36bc824aadae07e78c6ccea13f10ba2e5a20edda5f0b755cc6b3e08672c2cf55c10f9dd797156043b0f34dcd194f63693c7718e8f10b0bf403f87b392fbaa84a9de769877341a06de9a46ad02a0613ddc7313c980ac621026c92b7a2008839eea6fe4c79d448fc4344dc36e2001ef447a8bb2bbbbf25a38020c2239b2d480ca1cea8aade033f0b01ab1f904a9911af669c19aa09c1942f2720c7861e768d74a14f0f10d7294a07da89e4952bdfaa702c90bad1a4b69decfdd85468b90320147d0b38a74d6d4ee901861f731a501a916ca5f0e6b72b934ce300e16842c4464463c5fa65a0ccae72606dc3e14fe204cecd143cb9893dd12f826c3e48c603a30e81666b9ea871903174d9966315354b28a46c15df1646b70a2a011c92b197eb4a9b3253e2187e9d94805481a06a1572beb271576b25b6a5f98d5271838e4b33e07cfa4a08b7cabb28f84e39eeb486fa2b2ed65ccf6c6eba581aefc47efb2ad718348698eccaaf1bc90700449716b17e7e17923b2c3eda750053d5038d4bc8d1730b42e635ba08928189183cd1b54639a8ae2dda253d8da2ee2704f4ce3af24e1ba785cb8a7e187f4379a11e66891d80857467f3322da4071c7c549a64693305fc3e16c612d644e62766311f7b3224c77c2346b6fd83e5f7931f3cebac142852d55db038c34e957f6dff967ffe8b2b12a4c5d2e3d235ea5b9e4e00823a21989e005516b52d0448cff1f720308d3c2de9fe5d7f450a3e4f05128e84535efec6bd85dedb34e49b8ad840e0b0b106a1cf26075dbac4a191bb69ba393d4714475a16bd6ccabb0a2928748f2bb8b8a82a0b1e22353b54dc90c94ac937d994233ac48f5a0bd5006089d575a82016a89623f4d0510376f17d8a1160301c2edb6256028d80a1317bfe08d3d66667bd9d0b197173df00929da75e80ac65a9bf528476961c2226f8a08f5e11002759aa275c360e65555954cdfa510c85cf50cc9792491689b08292964ca28a7cc65baf12756f4b8278ac81344ff550fa0f0d64ef08339eb93f307125f372225735b18fdee819f6efed580b352488d84660819f9c066d53b0ba2b378793a84c4ba398fb62b5f1bfb8a4a5c1b07f32be3fe03ba972a70739281e400df1474de6693d14b35fa6846c4f9dff2fbe4dc3aa38a9abddb6cc0192f821aed18d24a8bb496b08795a80d832ec2709133fc108c91433676b4fbc336532d8eaa701d0b1ce757ea6e00acded9ca30841ea279f7af34478386b4876818c62cb464c513de1b8241c394c5be291514311282b731c549e18c152be79eeb09adb20069b311e0c3df9ba9643d9bd8339d2a792588fd8a6481700d215e686638791410cfaf0b11f9cfc4edcde73fbdf578012f92e9b9a038d30cf5968f930f23520a9fd180878caf0d6bf5dca8162b6dc5aca0db7946cb5109158d161809ba0de75dcd674bf6fc40a022cc2bad90b3b70b0498bb5262164102b2b9e4914bbb2e8ab494a21883ff38a4a86e8b6ff27e5a08cfa79eeb4c9205d677a68c88ec86a3cb4794e772d9632c1760e4b7a14879a20340311165d62da6e4a13d1dc57bce7309b5789389021b6a5cd3fc32724b475045e4c0738fb02eba6a73a25216e40cf04cb32d138714a8ef897a40dd89d537808c5c79a1e9a157c25bd84cd31ebd3ad0279dd96d30daae76cd7124f296f35e1835f766f91240cdc707d9274250ee4493bd86c019fd65623f7aa8cbf6943367480fa4de3f9cd850a881cab181b4e0627d157d7b407723937f6207d20292e0b71ae3bdc1cf53c703b1a0e55c089ce101c8f0ba5394a0aaf7cc01a9da6860c33b94b83e800adfc75fc46637384099c1003fa732e8357200ebb4a076d99c64f4019fdb5cd74b71d4d99224030b38b687142e64a1e99768c558e70da685e89f3caa33d8eb509b888f17a9ce733ca963883f5573754c3fbc2acbcc5adac685b5954364436d95b6eb2a5947bcb2465ea07c70712082588e24a48cdd3704e5a6ba59b46b15017dd270688a96c104306504c56841c40061e90a248e5a94feea5183290c2711cb7d56f54026e53d66062922fccb0c61974eb6fb480662bb8cd44b0f2818c27811a46731ce0885faf66e2f2e34bd3c050b1f1848b00ccc086928cc9973226b98ddb345b9974235481f2b5976274704963bd138a0247606186a26ad4a21d41c6ec662d7e8b2590b53ee2b71db36e5dda114433406d84b7cee33fbdcd6d73f963fb055ad06be206521b4178cd3b310a388aafbd18140708e3f11f3ad239fb95e7ec70c4e17bfaacd5bbe7ac5edb8d68d7be421dcfa6ddadc521f4515452a29a6ccc28a28db74e7db0425d7355d5ef8bed356a3d00f4405dcbf4bb6d1e412fd630aef852fb8d36bc0d6f8bfd2c6ed3cab0da7f8aaabf5ad639a574f300c7da5a8bd24455132b16b6190189dab2d675f33be9f4b9516b32f4d11716a1b1dec41380468a940085065914022a6fe7c6057598a6c93083184ddb66bd4460b26833d262cdf53b4f0b7bdc7b6fcdf6c1966d9b87a4dd4d636d3e9fb54dcd825acdf4bd4cbd2235f7b7bccfe5b9417dcb0ec09a63ba791846b7d9e2a10ce8a2d1f2511c4b4ebe882cf2b4563b20d7b75e112f56e0bdb2c8ce7298a63a39ff589635a3545c67252d7652d594313fce222ed774f382dbe4793f5afef9481f7b3ee6ce471d2f7bd0e848a9458d8f12053f3e4a33787c942c70f93899b88f33071f270f3c7c9c46f4f83891f8d0c7e94484c69e2e549493d984326b6aa231ab7b55256694531556659538a331304776304746b24e840e75138dd58eaa6a6aeaa6a8a8a8aaaa198dd55a7d36a34d4db3d92cc7cd593e4581ec2e4581142badb2535351b6a36cf5aea243f5eaaaabaebaeaaaeaabd3191daa53f782b5423535c1aad3a831b208f4eadd542b8db2504d50dd549d474f48b79f5ecef32df69ec242852ecf3e594a201983a2e687a75ed9b035211f42957e67298c07f6958777dc56450e448e87cfe778f0d4b07af31fe7515343a3936d101bf86aa798ac7c75cb34b57996490c787db44c36137c816db0686872802f0773747993daa2b62d1bd416e624b0ff719f9c04f6a1b37212d8fb384f4e027b772e27813d8f13a143d48ac6aadfad8a94fd78f5ed69cee890766f5ddab24859e8d5372859a4c3ab6f5048997bf5ad8b94f9787d9a51744893a25b6451f6ea5b942ccaf1d4f42415251525c5e355b3eaf1ea3da3d561553d5bead9b6747380d26b7d5da5a3553aad4ab755e96a959af99de74237eb151db253307b15ca1964a75eb87a4876c7f17c6d890ed5a90aa549d1a1ea44c6aa4f2d413ddd0b4a7d75cd8a0e6d57db121ddaa6a85575d87861d48a5a5d7da5565f7dbb22a7060ad63202e77b29e6c9066e6ca47764fe78f590f04f16b3007f80a33573f5d5ef93968d968c52cbc6fbe442a97e977a681e55b766aadf59cbc84c9905628ad5eb8e9f6c9d4cb1ba9d021d36eb55620a62cdb438f362e6abdfd81cef706079be4b47383535358503c2bc83cdafc90e050505053b927393e7d3e4f0a94e725e37dee9d8e4f95e0fcfd5d5d595ce8d7764be8d773bd866ebe4657f9036886c9d4cd10af31ea09c3b30efc8fc9777d6669140d5310cdb6c9b68b14249a0ea9b0740fbc4425926eb84097b9e8e0e0f46a1c55a6d8f946f93e5bf409bfeee06bb703423202d56978f320aa7c6e7e3d4d058fcf2b6366cdaa0f14ec71259cb62b9b0ddaea0a0a0a0bebad7715a542774c842c1aab7b205620655ffac93af0ee6ee065fa5b73f58280e5c49e2eb105fdd567f799649025517a5c071bbb24c5f7dbbdadad8f1a9ac8fd583f10f5cfc788ba0dcbdb957d872a126e7a3b4e2652782071ffb9c235d425236251afd44634442a39028fe28d44fdedd299841f73acbefd62a4063486bea14cc1f1ad50c6a2712121245f7a7a6a77eea14684d74a85ad158bba63555aba66aa535552b228d891cda96a8151dd2ac688c6afed89466503b2c0aa88125db04068254b3babf29fda8516d565a0552fc58d5b0525b2083da6dae2e90565dc0b15a51180fac9d63b1c4e6383bb53163fcc7ed9c2cad6a890ed53366ac7d8dfac692cd40d3dcb294e258d1f876cdea05af347fd4336650bb6d3263526550c96c3bd416542badcaeac7782d29573f5e2ca0eb42e5343af923f46a9e211f30c820fdba7633705dee2e8a2d5778c18081212cac73cb40510ac017682b7731cb9be3ecb4de79301e989d9395bf6e91aa1dca1653cb14db6b70e2dbbf2c65f14d0597052a060585bf367e9c6a0cc9c090ab9e2fbad664a3cfcd27ce97f347f59e3f3a089d32e973337e73ac2fad8f1a0e3f2e71e2f2554787af3ebd20ae2f5f3d21220411a1873f22a5664728131dac7ef3fe6ec36bb460055c82c8328af8ea64c04165a50c22a409c8f80285ecc20bc9851741641657b28b2f544a7c6d614914647cf5a02ff61b533002280c718d20610a82ba10a189cc428d16ee73e11881167cf523b2cb8cc923e15ecf85a304c07075a023c3fa460a4c7de538a16faca10a21170c05cca4d03f2691420516165089100542ac195fdd7a413621bedaeb7da30562f05508ddc25d8ebb97bb97e3eebd1cc7ddcbf50abef1b7285f55b861542f851f5f2ff8a294403268bacd54064d9feed36bfa41a40cda420e64500b13c81ba0757a444e21a38eb73edf8624f5af23e9af26fc0da7045261c95300f648605feb160a4d211d4d020269f1a70d70bc2c4cef8f4c8e063f349841ed578291d43259e6a2f1ed4478a061c894094d71fce0dbefd88106f347900c6aff029b1d7ccf0e3cf8f69183ef800ab088e663074f84861b377110b95177327cc5058f879064de8180f11d12ab17133200f6928f9eb51211c6796e385b1f5f2bc739cff191d36ab5608001b75aad1f18e779eb083828cb1740961f802cff852c7f4896ef42960f802cbf852c9f852c7f852c5f852c3f852c1f85dcf2816439802c8fa47c12b2942f42964f94e50f65f9b218b23c0a218fbd1494e587ac560be7e7fc83fcb907d92906072106a9eb818ffe01083e0af9404056ba820be03314c077f02319fc0059e98a25801b8000be831f0d40287ce90901211c85843e084751f4201cbd35a558a154e7853d73e29353286f89a197fca517e4461d94c9c8e1d3410f100f073b1be86890138389383dacdcf0b062f3dd6c715976bcbe93ad29e9b723ffe8c8bdd462cd77d325432c34d9e5608e96cf877101647091cafb4eba62f8b2f518c29ed158eda566ea58f50164d921e070ec27b8a7e361ede8e45e6a719f03e6c22c4ebdd96cb417ad699ae902f1d7c4145783612bb5979672b5be160efe7e20f3637bd1532ef400ac5c2e4b47f88aaf4c042956a42eb3a3b0daf3abc5d7e27b6febb3e3edecbd8ef38eabf5b16ed7d9cf8dfafb3ace2f0acd42aedc35b253b8d06e734dd79cdb86abd7b9cd5d47bff56955b829b3bf99daecf472fcf2ae9584f484bce62139d178d76ae59740d5a567c4641ebd320a43bc1818e0f4efd278473385c9df4c9fe501a007d07a1069c6772e6cc309f9106a6f7adfb8e469bc20fd945531e87281def7e5e09be9edbc763ad4d2aef324288be85326333fca322eee7c860f535e207e116d1084152fed6aa0072e5aaa7ab0f2a32c8307f6e23122a4844515931ea6fc6802882fd832eb18d4008e7b417c615a6c0bd83ebe2e28356baba6d1e6accca841a60542543f06594ba90667404afbe913a326a35edae532d5848b1fa5172f10bf8c886f1d7c696006e317881dc604386a30fcd2ee14f7022e2eb061050f40273b596bedeeae42e4d55eeb14664ea2c932a250f9232deada10e0e6f27b478525bff992074850032494015f2fd8f9f93dd376d64392af970cebd5666321050925b0d082b3f333efcc19c898dce10221639200586cc0a6e767ee192280973508e0e58d3b337ec1ead2567dab257c00a4756edbdcb68d7ea1e1abb96b38c6f482ade0f5130b130b03d69e4d5540bbbb350ddcb66dabdba685c7a8809d26a5d4da354de8a5f9094dc0cd872ced2dd325b329149d50cbfcd3a2d69a777b9ff003785bd4dcf390e4d6ad757835cd35ed05187320d4afa3d1b1af1b75b52febd44e3aaf754badcd5736ef6caddd5c4bad56bd5e2fab6d6edbb6e14dd391e347ec211f59fee8a921d1d6461df3d1229126ad8a48cfa5551139350406196618b74ddb1e4097cc09fab885d20a74a3bef6babef99dab774c0137cea8230335461731d84097aa2e47d459ddc46b98b1c60a587646d9c72ef17cd25276c21278420e9d4f288d864f5ae190108c8d01d240c3c5f699a42867602308faf65d90c504577690c281315347d4b9e9a27e7f48cbbed71c06198038d29c48cb36898d80b85ef3aacd4ac66228e24a02c9cdf58598afbdcdbd6c2163f2c7fa81ad0cb67cdb3e9fdf04c3590bc4606eb5dca85fafd71701458bd8428b8892a2fc1144a2afa756be3456bdb3df11379645adee492b1b661e67147da13b52af74db86b40d6c59b7426d6a774ebdcccc399b4e7ffd9c946abdf59c74d2b90db5ad1de86dceedfae621b593200370247acd62310a68b1c8b3812c4a027eb76b2e5e232039c9fd5a67f737128dd0a2e65b064267181303a43e12110119bae1dcb6b96ddb541a9df499e5534d02517feab2a89ffa4fcb3898736e4f1d46b5ed476d6322b482ae5dfefcfc68e3cf6b3e840e19694ee4a3df8848555553d315b2a88ad7bc4875913fe6149aaca2410275138902c729c6aa8c36c7b44cba4c86525e5123ddc44e9e5b7c6f528b5de36eced9ac76b3e7173348f30e47252d6ab333607b8b9a7f317fcc30c278cd6d38f68ff38bd7bcb32157efecfa79c6a4f97946f5ce352fbd15b2fc9bf3914dfec6f2ea21b1ee91f9a445cd999266558b6226550f60fbec094588d49c045618b551fb540137af2e46ccd2649a4e5ad63ecc26f2c76c92419a6b238f066c80f25f3f97387d353fbfbfd6903ce27919e68d27213cdf1d96decc0438f2bcdbce6b3fcfbd0e7fd9dbb42bd3da6a3becb5779e545ad4f2094c60d7588c02264920cd83e200cb34754cf379820fe0d252b7b0f64c53a80a709c4f5ef323f6378f9900bc9ecfa5f9441bf2421ab4d768685123d2a2d6445a9c4b73698a9164c4c8223aab5ad62eab798d4ac6e4f70cc6c8989c810ba428b59a9f512ddb3427d2b2ed63c8818acce1c908121f2deb21ad63d235dab4673a6e9c0135b951ba6ddb46358dd2ea9b56374a67193d9839c3526dd65a6b6db59b257347d049d086ea9ae65b963cb8d0f6a8731acd3cbad40cb6e8813466a5cc2476a3c6e1bd1a47840f4c44444242a2e80e838120ad6fad0fa0b57d845d7a2fcc231c3a8d716135cb08aa65eb537e949a477960afcd47e9850419c253a0f71dd6694b3ddd2089170d79602fb721902ce0883dc7b7bfe6d6aca9261aa594528da661cde8ae9c36c97dcde311a55d4dbb97c555adab68b38bd5aec681ed19ef26c143d34bcfa8358dc59222e6e570e1514ab58f52aa6915771ce7aa17df4ae3c2a651ea215da75d9ee2c8619e393a3a73857a23b94f430d845cf1496a20813a168b021c5d16cd6aab166606573f9a7069ce10542570838b1f837efe749e6ddbaeddaac51d4d4f7df382d4293c4a008e383ce76385d2df854e4b7e74e34e38ce65a71bbfb9a730b5ac876e1c27ac5075cbd39b5ca774a5529f5ab4d222edb04269d10c086b915628b8659b079e7a85d23229c6c99496cd198e954ae3a89a6ec00eddd34b17d381ab9721927e0ac0fe91c04cf02a2f0f0c666f739775efe5ee8b03414c59d7a74be91c8be33896362550bfa66977ab75eb28f552a0a146a5dda94efe8c42920706abfd02415b649f5e1fbb638d2f7509a4f9cd36b704d2bce63005ed37aac9a24d6e52a32da5d46a11adef6bb55a2d2955f075470f06c81f0c9041d508080a2c0c8141861988d0208b5a3f3cc4fe1eef5af390a6b77948d8b16b1e8d7f2c8ee338d6877974f9728fe7f0aee330c698eb72ece4cfc5ac748595bd470e9d4756ba82dd77b8efe0473bfca787ebe8e13bf8118f8ef539b2911c392734c2bd9885e55cbeac1ce6b05f0392ee106c58438bf5ca268a61911a7a64243ca499eec93aa1087a2410111ae09d3657c807ab877e57298c07367b6eabeb589cb53dded3e39b87d4e33fde2d9e6ce4130206bc3e4a2b3b3da4efdad6922c925f3d9fd6c7eaa6cf9c2c5c3dec3663b71e87370f89c63f16c7711cebe3b1dd97b91ee7e9c939393e3d241a9f5d5bcc791f476db468d895b7aa8655ba983be2498793e77f468a78485c873371bca3398c148165f917e6dd2b091b1eef6eb0cbe5469d6304d5db3c7730670495d781bbbc0373f936efe0b8fccee21eb71e124d8f8fdb9eeb46cd59ef9efcf49c4219e608a5979e53f6243823d478eb3760b884f4d868b1e9582c18abc72704b0ae853d0fe7f35ce07cba1c983b820a8e1bb59130cf23b187cc81137a4783739e473c764ccfc9ded5609f5c43d8232ed1a3c3c6e1791efde8a05e11710c8ec7b9aca3e3e305997fe3dd0d6e650748a0ea9b574402552742e387c705832773eee51a5aac9ec32231309933428bb779f6d881794845e6eff0f0381d5e10115bd073b2fc1c0fa9c8cb881587bd20b26375dfd4410255f7b1a932cce083b93c25507511ca8035b4389582f4173122addc6587c01072dc8ee7e938e73a3b3a39393ab0bd37c7eae8c7c9fd61964739cba31b8dc635ca32f2a8c32e9bd6b1175f9bfb3fea217db7c5c3c3eab81c6f2e49a0e921cd251f0ce2eb217df6761cd79ab3d3c1df11645efece94f4b361112353e9e7928e1e5b0c7f4130fd3883984e749a8427d660630d3638d00607ce781b041773b65cdfd76ab95aada812409062f5f175b1508bf5239ab35b018521535d176f8549e5ab5723e6932076abacfa596a6f0dc7b95af776de5d7cb177b4460b47bf5dd7711f8dd3d0d060ceaddb7b39ee7279c7d5fa388ebbd73be73aefeec5d7264f281d42ed2c98e7135bab0782942d408a95488bb5088d55afd3e39cc3d9c9c641978b62c0e5d5935c345e69dcfb6cb2d215f0e50b903229c532445a9624c5ea75d6b1ea368b4908a99e10fa5f389b2450f59a3c9dc4dcf03e25fe952714ea85d3c97cd20638bd5b9e8d9d59a146bcf509653ab9fee3acd6d76a5deed2f76cd08cf0ecf77d34b0d6f7c21608333f4e2c134a7c22082a36d8c822e6850064f9727fa0ea5cd2219a9a3bbbc34a57ae8dd3d878375fafdee06515154c6f8f9c6a9c86c66d687cc98f6a9c26d784345ee3d5a711a5a96de3350e038dbf68bc0b61b0e9dc26741aab4bbec66942256058bdbd15b8ef425be3a37f7dd151fcca09991cbdb8d35a9b3673f26bb93ed7f779187bded7759963711cc709f9f08492f0b80c83c7711ce772791cc771442378441c87020b52dec7b15e86a152e6378f0bc328a00c3078f9ebac88054dbee19013b08032c020a7382fcbe7c07c71c2fa1bca00c39029cfcb92e338eee626dc813b2b3f4a35ae7c7ea8de4decb55a9e1589bc560348e928b42cc7a5b3d0321d0f3fd011e41e38082e7d2e31b5cc55e3f235e5c6258e4b98cb1d973c2e7b5cfab8f4c9a565395cbabbcc2e7f5cfae4a2653c5cfa9c6a590f97a218aaaa31566476b8f4d946cb845c3a587d1cc0a513a143087099b177527e30674b31984797bcc3bf1d59c8bb185c7a47909c62a8415f2b6803e1fbd0abd3a1792f08c260eefed243e2c246f2c0a78714e41d87f1bdf8c37ebf7bef14daaa6c2d0f946d32c7555c437688558586e812759d87b51a11381170f7e1ed55c42af2ba16ae363fba1f5f07627b33021ea1d5b9f0c521c12301ec6830072be12bc155a563619d9a1c971e9209797e4e98960934dd0b773b46a0514d678331cfbbfed5dd60afe788e6c8a6bb8921cfa30318a026869b2a1d0e1e402fb593d70070ba1c0cfa9c607302acd3c1ae1c406e80e4743b98c6917090743a1e5c9383c082ecbcf007d95a2850f2743ed8e647888e901e6cf38742d8b35710a00e18a3ee7c3ac7383c52e04921479731ac870a3d2a7817e21c71059f1572a703ebc458c8c142d8fde01d0d5af01674743b30cf0600c800f8e978e01e0e5c085dd8d1f5c03e4043740ce1d1893847072ffcbcd0a38b61df11b6d27c1e6eec08801b35068103cc79e0d30b0a7b56c6ccc6aa0455e936c0a18724140a20cf17a1c05221780dc143f0107c8485e0217808be810f973e722b3dd16303b06a832b64007de01d602ecb0f4337ea2ecb98c718049f41ce44d5773dbcaf05ba686a5e363738b01c9d1d9e1e9f1c9e431d3f3b78f4d0f1351612a8ba08783ab9170461307751c428380a2e7fb34c6cf1d2130013533cce9389a700f8cb304c2cbdf0bd3104960217be0000a7f3328c962d2d70e0cb305a5848428b94c76ed4b1355448c13b2e4b172161b26809b37020888e359076c200c9a1e2849ba7018481e280530c3f2f38ca11f3980ba3d71613604d2560d18184d08c117eaaf881f354b4c40644089ee730f599e94710031c1b8a51e3a87e92f4f3fac4931312440c31458a1051beb03e218b6415539d0841134c68c9028565892b569400419527a7a796b53e90041524a8d7236491114db2a8884ac41053a408218b641459a474a5bb7a6af5d427f5a64e983a6ca6274f5aa4ee0489e3c6e91f67eba6d11ea7119d4792ec77566434f1402fadc8d8e1bbc64d1dd64da33d6591e4fce3e677731fed29dda1165960e1e50a2bba445541c5145ca488028a2d4f3811822698d092050acb1257ac280102595445164959d465a79b9743a1b1a60b4502d19813f8248ba25a26d5b2d1487ecdb978695915f983e5650651771026698c256b1f352bac2c94f8cbe573ea6da5a1ba89ded250b4778239979d707c66a71baf4fb427eda96ba2378d1ffba90a46035a96876373d37a55b1400e754d66f8d89d79dac5e069a7c6774df47ad7340ad5f84834a5a39a3f6a141944fd15d6842311912b1c85c0701412591eeea43cf519523df5e9552812887a0b5fc09de9d6e5efcc30880c93012e65a0b8107e57281da30eb66b5b80234b8a45c6949a3f689c3a6b8b29733975d6973984e3d45960e6d08dd391e5062b8da72e276b053f4339835adececd2ac40ca2ee9af2340686b2635e08937a3ad6281c8efe855260e7dc6479993faed20ca24e9d95c5dde1a943e1f2d4594f7488752ff8a486f402e05f76ca712e3bc17c66271c357eec27ede9a9b3ca50edc9fcd155cd200aa3d48fc400c9fcd8954a9d428772423c9331ea44444242a2e80e83c1ee9d95793a56314f8fc280f3c7aec9490eb1a4680c09296ba739705a5dd3fcd1726fa2526c6749d1212b6355f3472b94df38608b25d585a1134e57d565a71bdfb2ccb2c556b612d6291da35e10ec534857a5442440cf473cb3d2b2ce6985327f742ee6b1b777413a1cbf16a77f8e33122a3d173015a9c7fee5960b38e452d81e0719ab946bdf59be7c40fb0c77ba4ece1f401986098cffbc7ad15ac43e71ae4fb95ac90097d7fef3ae31febab07ae1726d92922c70b2f248ba4714b0e99c38dede562710f31cb0c0ea04521a072ce08005520550303d123a260e2f3d638e70c2d9a3c768608e3a9cbebd069e6fef11051c43147c0478fe0146342e9ef31e51401bc2d9736104342ebec323744c1c4dbcce976f1f130795e766e8b4247474e35cf880769d2f2fbd1574be7c87429c6e423334f0e491d0ab32e00f475726307b86e30d4f332f8539ab5c4820ea55aa651dee04e142ea235801c7ae6976192f61253c6b913a9516bb05650651ef289ed54a8bb436b5485dc8e754fb9cbbe268fdaf8ccf71c4849f954bcb688bb4726991b62a1428f307974abd7ae9ca852c9a504d6c699994454d3589a78e674b2b6843fc88c4c9ecdbbfdcc2c1cbb796ffa2a0c0e2d48443141c82c081071c987c8f37a47183982f376871c3143734718315d88f374069fa8f044ab81c01fea844886f254b44fc8781135c60ea024f1768aa51169842e9bf326b3801f5eda48dff666d4cfd5781eb46922abea7de03f3df07921091a4035c99099031011fbec53c68a4e6014e0e08c10d5511271a0045ce160c7082062a3d54ff29c007591412184853343f227941cab2e347202af89ef2239013fc785475f3e3d1cc8ac78f5ff55b4a987ab0cc1b11c28f3f33dae2bb8b5114264cbd6704829a1f8d903002c2a807a3d937d57715514efc5705144baa605a52c54c8dd97f0d07cb8d8d0555df53809982044ba6e882cb7b53483175f56d4555d515425cf1e53f2f56a420c1122936d0c67f5ecafc87c51bdf4bff59790f8baaf7a2e8c0770f3f2e79a24909263166fe03f3e3922366df54eaea07378ae0a1ca8c0aa6ae80594284130aa8fe5b4244936f327e5c328417df8f4ba6a4b164caec7b8994aa0e7e5c2205cb2c2aeac72542447517536e8002e2db8b32ff81a17a2f0c951f6f789a01f1a31220663eb8400c2f3f2af101cc193f2af1a187191a4d50e0fda8a40918254da4dc886a3205991f953489e2db053f2a59ba12f5a3121da0643f2a514a4389921325395c7d6b5eb09e00e33d23bea79839e3bf1c9cf0f0a3921c7a6072060e20fe635dcd40082663747e54c2a48a198cf94f091321807e54c2240822fe5332aba2e28fc83367dc5842c9ec03f44c9592991425330f60e0ea8c063f62e04a0618b8fa72c412ff992004180083c52b11c57f631c517f4ca2c2228c1f93c4ccbeb5f831290c08aa10f19f1860c27c2781f902cc15df631218296470d93883e7c7a43052100616614485e104183f2685b1448e182abea0f285d2195b90008a044ea6dcc8f931690accf7fd31698acb073f264d6929e1c7a42aa666efedc0d165b0c234f11e6502cbb7cb24248a88f2ed6312124fa8da78cf4c12123c203173c18096b1fd98748418df63d21161743f261131cb71e5534374e07b4c9a32fb4e9272c5fd982465ccd47fe11179e6cc0cc6a42527de910bb5d405f65f385a808907ef080d932f1c2110464851996f210da605df477ca6830856f4c0e4917cd60b62cd70f216cb15f7de6bed3dc03726214165b154b1589a7cbb1a4b7881656989102cc10138ec125fec1531ec952edf0e822c6c1529be3dca563942cb16ad0a15df5e258a2b6f582c56201db9aeffc2110364ac80e32ec771148d6f54a2a4a45599e2db0d2abc6f54d2c40ca423af990e8fe4a3f92f1c95f870f5ed6e4ce92f5763a63856cfbe7149d3acc1585138e018838def318af8f613a81106d5184480c1248233964011260c31beb9cbdd047ce31229cc7c7b164f5774b184bca209cb846f5c32c50cbeaf58f29283ecf2f46d74058be3582c16c7e258387ce3922ad4403a62f3483eedbf707ca7ef581d8bc5ea4af8c614de30818b154cbeb319ff008b63712c5605be51015308f161ea6122080f133b27c8898249f168c179722315e445c6b77718779e909a32beb1a77de303ba788d01d3c2c78a6fd7bc166afe0b471ba2845c28b66facc0956fdc751dee70fec6241eba1d5ad0f92f1c71a852c196a92143a6c3771967bccfa5d7c217863b41da93dcff5cfef77dfd792bc8339cd7f2bcd5ad6e3992ea0211afc5f93776cebda0cd6ec21c6a98cd665d039baaa8140c582ab39832440301000500d3156030301810880442b12447c24855e50314000e6e9a54724a9c0943a2204781100421838c21c61003002060c0cc0ccdb00291b8e09d136dcf576aad687f40cf8ed50f711e6a8a33584481a5937238cad855fe640acd447e9a11b7cd37224e09e1b5e78cc22310195e035b4129783a2421692c004ff12752ad986d2a14c643f1023675ee1e3cb593009314aa222c8c97062f9710cafc314bbc4817c840e51a98a873eb4c67d4fab0ff63383cbf498821a1d3be843f46ddbd9da6abbb70a01b4677b42a16d63cbac052517870f8e5a8732287d809395e684529933c3bb344c1931311a9440ccb2cc3438a82982f03bdf4ee7f785e62907635ed580d02012cce4779d30038a35111441b62f8d86a13729f5711dc563332d94ffac31097c9dad5d3e6741c237326c1b9c8e298a155f61c4e48ce0a6ee1fdb0f8b0ba244209cf511ef414528a96a7d402004e82b8538226dc117275d94a6042c347546ce24809a7244aae93246560c5b5b26e7decab9a7fcead6eb1767627e3a64c34f03e62b1a0004d6ad69880e467a43d440240f4c1bb2b9a7a8a1ea9d341ca13980cd769723ca7448baeb7f5f68b25d866386438c031a4a714a9ce2e88160790964dd81a2fa9b44e225fe2b4c66f5ce738969bab761aa0ad5ba1d25c8b068be52060a7383b48bbe952daad68778844f6a9272eda5e496bd3ddc89541a2a5e08202f3ab0f86cc7716c965d92cda0ed97f0c83fb3693f9b446c6cdc41a38d078334b8de306e59e7bb0ea87c0eb39576cbc6b5227cd87a3e24da9aea54b495ef42d55aaefe45aa780abcb0e3b10d0430cf6bfb70bec6bd4fe3c3d8138b6a0f2bd247c4c6386ad05444dea1c278dc426b7ab0594d7e6a5a0c0565d922a55650294be98066577de884a9a0b2986b04a210b32a0bad1b1a0484fcd9946225a3f1819db13822c6fcd53a1276284a2dc0e475e0a43ff973a237b7856bc821ead6d6b2277a2bd17877db5cd3f713b10ec3dcccaf3559ae3a24f565616f0035780746d692a9f39d9a5406efbf6e918a03caffe9cf78dd4e498401f586dc8520961c07a564007e597f03b7c87f5b2e55258dde475b3e548e617f2b35d7c05f77d316fccea7388b1719840d718ad203422a13fe3aa34b5ae8610f72c49fc1a84632012287997fc4f9ade8db27892d4c0dd584c28573f11eaadc580708dd08980ebb2a635b4cccf95b8d86393c54684e265a8e36ba2dd39a8d14f498c430c63e9201474f403f6d0d22c82264d307da196e03a43b22944ba0beaf353322757dbb28f76b2a4ad32541f2a3a077286a0d229acc74de301f4c4052b7c5599f1514ac3751045b4b68f7478b9340c9781fab78be8e2e3f1c2c0ccacb3236e35b2f166b373e73bcace7a5729fbfe5501859e690653d3b428a0c4042e5604e444bd94811cd70b393fb6247493e30bfc84251b00350022b96631857c0b766c27c1901028284f72aae600b2923f06409745f60b833c267cccd54aadd2975e044b64d09a20ce09dbfb550a9d7c416f46bfc35f7c1c6a899d02af5a2a87cb1b10950ccb429d9d9d0ee0883621aad4be22120eb24448504d77672b250f5cb4a225c8eb44a6266cd6fccfb387dc83a1969aade2fbf078d4d62d30618166fd743b7648ff234f99321a4db09001360288ce3b4ffe55a07ed437ccda26e35fb0a7b972f3a23b904ae173bd732e0981ab1ce6084a09d06ef318ac574ab63e64d768725dc6c5484bc7504ad04d519632fe15d13a842a4de46d06299c8636e13f0870d4ba98a4ac7db79131fcd4f88254183fc4ae92e737f8746cabb1c8e359ce5d80fd0934877411b8838d0520f1b0df902efbe4a45a0871bdcd624ea756b63ba0664f181aaaf932f65e2d74f8f5a8a0d276763fd1f5421bdf8e99bdcc289cace53157d8a3680d6d49858e5cee223fa1736d66287e58e85a1480bf116071359244bbc5f834564a7a4cbbd13ea737c72079d6189171a0bd2469bea9c8ed83872b907b3bb27962142a9cf7360868d6075104ac00f82ee94c43156dba6655c058d513fec7eb8ba351b1e254e7e2c7a2a4b523feb876e512c9fa2528f69588a27867a9be31978a4ea82f33bcd0ec97d353d27262b26d2405c4225c581dd1ad603994c99d7c4d91ee69d42acea818c01b38154999ebac4b6e240433459e754bef1b7c360569bebef9307e80ae4929210744012b2661f0479042a96dc525887a7058f40cfc07df99e19996aadbdb071c0f8f8aabc35aeaebd2a1703e8844021ba0673fc6b7fdeb37b153201adabce8a73a071a2b3d23861fd8cdd78e64a894341fd8612ab46fc03c3822022113eaba1ebb14d28c3a67acfc55a904f67d02b2a99a2463149d1d0045b34bea3112f335b58742935c3046dd4ad3a95a9aed2227ecfbf81cc3ee7ae11809af6d073118d54e086c48b99da2558e8e02b751bcfbe3c331f2666fef53f7c68f1753106723459546f05569beaa432aadf7321c70af67a094bcc78adc317b6ee0df21d0bb07698cc17985fda6ea808c28e64ed08536c01958cf900d4b74cffd7b6462d3f4c46ed5bcc87883eee57a679564f76372057e6b32134a16278eb69f291430d1fa298d82c62aea899017611c5d9cf70422d3a20227f9d560374548b0324904cb08c69c757b6f964a3661925989ff6c7103e4f320d4d236c46df3422dd15b6ea29d669f743209678fc5e566f302cb69619801c56b9179872d9bfc28c8fd26e60d49132cd2308040b38d9aacb11361b9b4ebc19db4816d435c0d4ce193cbcc387e106d74f40be8b362265dc67edc280929b6d26750a38171d0c23203fb13124a27421e79e104d80b9f7c0247cc565137ab6c72e27d1532aa2d05bf340f42184470fcef0f26796d407960e72fb6391feb0007848e301b41bdf0bce046efc12de12441089c4c4d203554b0fad674cb5f908026853a05f74dbfc1d80bd956ae4d443b9f6eebdd822d068386b91ca315e36500a12010b714532d29ca61a25204f728f12637e09ce1b156899b7731cc233e0a5a9665aef54c2ff549a51dc816dd3d32acdcbed0380a6afd9dbb3e6b1be20fd98fbd965fc5d463af992a8be0de603393015dd10bc9565f707de31525f0cbe4bc7eff064d5cd97a29480e45cf443f000e2e32a6dc9afd5d61bb59bbea1f286d8646f1d90f30fe42135e62548f16f4677f0286eeb9e96ab5bf34a6cb5102d57a122bf2675269758a1b399a045ae44cc961354777c4038193855e9d53f67c52e8e95ae8602c5b070965660f0c8719693cf9d4995139674f2f4e446fc38d5d50ddb955480b7b884f243581eeaa33bfae00c6f922cd84c4d5b0ef48b792a82c73e9a3aff05feb4bbe9fcd39339cfce56a062a800241cda950175635a793047241d4e7aa2f1f30466b9783bfdaafd4d0beba17cb8fbe81adf8e73cbeca12e548b51164a346c5568ebca1010785ce855db784f8c65766356574a1b02e5f754412abc24ce4514b3c72c420a43cd4fa7f3350d5bace437a7422f3f65226c3568064cf311c1f2fadf28cdb62a0a8d44b933dadde3aea737275429efe147a92db3200ca1c2fe7327fb8431b72f736ae5c808a29da31adb33d93796e687c5709e04e6dccc43a433c8ff8fff7c223ef47279f88a0741339ce9a3ca641e3edf4ff07ce1e9bdc88fd0f52209b1fd25a55b05dd5e7d8ebc9d0240e3f5a6ffdeed4b07c18ff713d0de082fa755050a7225ad7566b0ee69e1c19c7beaada3a53c1aac9fe3b0a1b79b2e61d366fa0ed5748c28c2b971c65f1c27f4a278b12764dbc9cb686233176d7428420a45daa872d31726fd469b7b7fb46dd02530e61355a7ff49c99311dcf735f85e5abb482cfffd91f327f7c1d2bc014dc86b48fadb482cd01032123b582f26ebb9879f139dcdbb7b374a268539de1382e3b3e1a69773fc79cd89f651c20a00db9d8c54df788ca085ebde36039612a5002caac3110506fac4ed03a709802df8a7a4c678d9912d2223a00041c3ccf4da531c1e73c73ebedfe1909710d7eb2d19d77b1ac2fe3fdb8c07a9490cfaf30321aa4825839c572673e5ffa184094b3c74ad54be78468e81221eab75d68d7dcb3c49ce795c81538c27ff7f371a9896e78d8288b428bb65c543a0d45a18c9a2494a67372987382f3b9285198361df3ce7d4af41d21b0e2ca0c7a6c3215cbdee195174643dfaf89891d7ed2205650ba2f6f0b1cb86c21e8b074c3f6405a2614e5f634a2b57171562c2e5f485afa9cd78c466136ff79f986c0dad89df95e1192387f4dbc9705e5de2ba6dd38ba43458b88530a871342b9f72c2bdc32fb7c9b9ff3a5f0a34067b046e203453df61f9bd76215d91024d5f809aa903eaf77f74bec2b46775059b345eab524a4190a451f6bb910056c61a69ea022d150711f0accecc0cac1539dd4875fae0f916cb69e786590fc6740af49cf80ab8870490b9997e3b3854cc4f0b651f85355871b1f33ac61f8ad303e13a10f8d2147a120dd3c709db368fadf1444a29be1580e8151cea9d539a6b396ed173eaed4bc4fe3e5ae1902deefc2d53de604ce036b314e0b096ed6f84bb6d650678a7090cb87a8f3d87220f05a0eec71724a51235b5441ad4498e8547441dde24f867049e2c126915bdc8729921896492c99497c6524b62989914748d4141bfffb4fa7facc02945336347c389deb43684a3ae02438c150c043b30e11258146d983204421c8496c7d16be2ca107ea8082482f94b4983e7421e72f37d6a7ede9ed0d9100f93a4c201d142947fc4d14d2703a3d46292f0e0002fdd0d25c9a994fa8abfb4ae324bb2d2051a29b367610cbd57a9e24fc7fb5e49fcd4cac4610cc4d4d48f5330e8b03bf105b74eb3f2294e3708fd5453d4701d0cb74d2f58130e912ac2f980388b2e2a5927c32025ca44d22d9b4166ddaa5140548851df6b945ec8b4c6d3f1b9de2ca2ce6a4b825d037d3c603664bd0a08e3fc7fe79410e7edda254d4d8fcfa72177de5abb016bd8a2feefa85e46ebba1819379a230fe0a4e55af4f5d1f93b2a887659203911c4e8f51b3d7864ae53b8049113cc1691a653a5504b8a3b9926907544f1f0068ffb06aa4956a227a72857cae68432a909f73fd0e829c73800084f7f658abdd8dc798609396f029e87090aceb7e163e16b033ff0749a23cc5f44080a977b880b1a115d4f0f69db34826816efcd552198d44c61f6447f1092c5b4380cf3c43a5824f88df34665e044004747328933bea0181a82394344c331964883595e58fefae0a48e23a5cd911fed1b994c2cb21bd2134fd0dcf83f315e7310f9a201a5a585adfd28ab0cfa12614ff4b7e79b2e1d36c04b3b4c4eeb7398930df49a4c5bb1489e66efbd7327a34b84e40deca21505283899fc7fb804d5bc38f910c1b6917e9885f92829f9ea6cc49a02ac017676a00515b5efb79336672ec827b00c3386383a345bd503ae11746608cd4e884f7b6107117fecfbfdf8980e92082d4b84df659848a00aab7ad1e4086c2b382d16fee0c02b1bea6d62d633d026a8fdbd5d98b868b81558d71f6e56e8817d04e29e61a6880a6985bcd6079956f71c318585ea599969b8dcb3ea05e57864de407bbacf706eed2803c8a8b7ae71204090594c4b37d44957c17a2903cc3099476cd56141a5d0a62f0f927c18aba18f653e4f09404b1096f77ac52e57a0d776c0dfb78ad814c203e591f8deb307003c1619501ef6d6241a3f961223580f534c4952e129a731cf2984ca697fd3b51276080f00989eadf77351302e17894aa10b32814fe90b4d3f659bc8f958d7c41d54da273fea2554d0235c8dd893e9a6bb62c2246d128ddc26a69626186be22a41138284f6b25125e0cdf1abc054ae93518b8990b6774adfbf9382f41171057f393e9d4299a5ea91ea0d65e3b883e537aa94e445e56e240b2afc649f3058cabb48677af885ab6465f8b340425068b93d67646ec3e51e329551e847c90a341aba7658ac3b32a9404e92e9e1443778aad5fb4dd97ec64f5c4de417b44aafdaf7b0ac33a131958c47b6cf10ac8908d727629909ed908c6507844aff9610ae9f247193d5f448aa74152212dcdaa111e0b9cfbf0823dedc248142f69e387362e8a82f99a789212eae6fb804cf9ce28881bbef1d7aff82f7e7cb38f36cc8023ffcd1055ea97a30480487fb38f040434bc7dcd8b287ed70cfaed9dd5c758444bc79f17369278d77edfc483e2287d3f6b850f7fb810c4990af00b32bc28cbd011f2e0a12a1a94e38a50a7f78e048b64391638d89b6154f7c458e9194529b193bd5fc4c18e24507d7be010a9ec505d6965e208af0996a6097a91f5ded0387c06bcf42766e44bd44f5cbf3a1c65046cd1e9e1cd05641b85220f424a24e6179965f85a278600fdfeecd52f95c2f7c7479421a3ee0e271377f287716de5e708bc53718e3b57c41e14a214f08d0a9fccb2868bcb01c87fac150890b7a8ba50c91b028470a71292828bd3d155095f935d05bb0f378b28ca2d21864304545f7e2e7f39d9477997a28bf118885afffbed0a3b707f0d0dab621144dc7f8d4ba441e3c03fe02eedee2a6435b3be3931167424ce2457ef268034cd7e6e280a1f03614ecd72d3d4376f3490ebf0e05296cf955f1e061eb83ae8150cfccc657dc7ec8a2626e243a00620c005b4fe7bedea634cac7af9fcfa0880a08e832d47bd23ac5b338d03c379843b07a0bff38be6a0d17d970b3f6a0fe8ac89b668c425dae064c79ec58f0b026c0287c038933d485f427c475417ce38b025ad438c7f5001caddc89006a3ec68c1de0dc241f8e200795416a498373e5883040cf657787a8192593fda8feee1d16ed9051acb16abf377754fce5f474909d622f0d46ea4a396ba9ffb7182acaf91904172bdad938f28f7618de31af820c7a88ad8b2e3e8893b3efb042a0808e2938602f13f01efec7827b904a9c1cf94c4356a7c737826e1a789236251f2e871e4f338b352d738243ec5547a0c55fe09a6d4f1e9a5a33da298e742f9f91843a6889110c099193aa46b6ce4dbcba62778e2d91138855a9d35f0b40d7e01421abcd506dfbdad1f5eedc9a2b0c12fa451b3228d707f615d349028eab4caeaded7592c2a231b6c53c6f093c12f4cd49a7f112379e56e4411cb06c24104c61af0c3ac1b3361620cdee538be56adda7718bcd931b363629db8f63a333a0a1de69813dcf623894443c961c1e7fc4c12f7a5642d6a80e4ca7438aafc48859e6fce328136dae2e94e6fe08ca6d4a6b37163d45e6ec737bf9d61cb7e2c7dd7db1fb376f75bc7e2dc78825ea6828e5503362aa4dd5f291b8ce6104e2da9dacd61fd29f5a3e9a050d1a604e75701e6ab0a74c77ef54823da85b04f7f50240fd2a4c14934985d05d42e477ebc015712afd59b825c0e12d14b701b1c19402f621a6bb400bd6aa98f6f7c77617230d2eb1d9f4242fa66ed3420bd04be5b1d493b9453e72d2a82432cbe72da58cadb430d3cb2b59350d165c17c0049aeaa62879cb7e8995ba59eb2ebabf2c68f82a954541e5083b9bb6ed409f6d6cebffa919201cfad17fa07b74a9dc1a6124014f272aaf2761024973401d1f656792bb0ea71dc7cdfc7aebd3bfecffddfac70dcf766e678737b1b6f4118e617ab17eb09718bca7d65e8ed7d9823e3a32d9dccb1e8a9629337cc6c7af9013276260da03a6fe22eaa81682466eb813f698ebcdcc0d3c961a04c78191a147e7f9e6caa1b8710355cd0a919763bb956a9437aaa4916847be2d4e94f1427e2325f437aba90865c8a5a4979c51bd802589f480f0996f08310e9a9359dc7601e2cad5d0dc26dbd1941adae1fc039516177a1aca5c4dd21bd55323fdf3d98346abe578937b086358938646dfd25058439e3dcddb020fe2c52eec67c625e902153a9d87682e845e25c52af54292f764b8c97840a32b93719f41c6927030fc408835ee6a8996c5c71fc5811cc1f2f0bc93e3083186477125bf68b1b21cc53b5ecea442f8f3314665efde192b8501d84542de280dcaac632b1f0151594e2a30b574c93fd192251dc95d460082d1f88317059b2c129c8d320b17bdb5ff73b3c5404e43df31c9c0c5e7cc860f63ad2e0a8c9d81482d5a91cc5709b01e26eefd1dcad70e96b9fe71787c2f4a707d3404a12de0897a76f725217c46afc6199d368cf29651c02226aa8e5c2dec83e2216e629e8302623373f07797d7a36dc042c63cea6e3aeb247260d4c8040523e7a6c6457a455d71b3fc6b1b0854c3f6e8d933ab26645089dacf67d00dce33f2d259bf3049cb43223ca00a1c68b7480eba4ea6d858b02c5c84c950b167c20bc929819c043051284bbaf7d959ebeb0cf0f7217d768ca972cb935907905d649118ac212f4f7fbba31d3ae00cafe73ff01a4dc99cd3ef1a315a546bd667781650bdd148de32e0f216b6f7fdf5d487fe8e5528c572e58f37e52af20da3b83e7a869accfbcfaa815dc8ebb0e79bdff9b33db629ed5f1f6fc963dd2530ecf9583a374a6f4ead154225bf71b991c3d1579c88dfddb293a73f181916b70f6a0cca27358066024abee7f1e053ef20e32b2e41730114479b6f92d7080e2fb0de635fc8243f9de195cfa09e75e5f10ef7bdb2730d4ba29f56f3a322ae958188b40c775a6299dafb7249f9b8220d352a9e027ab6a89d8225e9410a6389f7c9610bd417bbbd0a9a372a5617d7efef1f7c8469974bb9c8b07c1ea24a208548a5de99485445af929aa89aeb1e7ec7bda76e4613ce9752adbb529ff5d71a4a1e7826290f58b0c62d394dcbb9e4775cb32f118d1569e1419703e721a92f97643c94d474c4f5c3b3358245a6278f0dee3aa70e6f743ac07ef6d0da125839813333b7b481f45e75338c46e4621f421611fe4c649815e5a5e3bfda75296689ed23527c425c45961da0ca7b5f3d9fbfe6c32133c1ff1c70d68e94951043ac76eddb2a299ec67ac4840c77ce2d95939f22b8cf5c5633b6285a836e627cec68811fa538c6f1cbb932b9c9ab11ff1764c8c843462fce3d8deb8c6fcc3eac7d9aa53e1929f0cb008e3137f9ac96cba4982fd2af00fb5ef6ef14048952f89d094c3568d8a36d07b72d75cb51dd5cfc90782e08fe8ed041a2e43508115c663dca36881fd7053cb11163a4f6e7abcfb3664d6a8fc7a97e15a01c63c6ebcc28984cc8f5679669f7d26a939ae33a749fae3dda29f9fca0d8f820cb5ed6fb28faa5dae79a357ae9874f204c83101c7d33a1941dc31d80ac2ea71fa06d7968aaba5e86e3e424d9731dfebe73007eb412ed5a38a7123d6df5b8f991cff863c460087180787c08120236c209aeb6da7968117d43d47b95cd3fa181fcfd9af6d07deee384bc97ef349a559077da6f6eb6e80858bd451edf2a71520cb780e4bd98f025168b720026f80144359df439a9bde5beca6a969c6bc968003fd8ae2c610f47b2b628abe2ed640c658a65d1fb03bdb5f6cf011a68677bb60e99946606b823d4aed56dd202b81c5ca7860d9244bb10e9ddb324830daf84ed74db2c8893c71ff9ee854a9aa907d0248453a28e40567af4abf3f16f6695bb5fc70c2a2604fb10e22dc138cc1d3b0c6abd07c09598c8f68218d7ce1a0fbf4abdfd9d0bfc89dc59e9e31eabbd911e8a049c11e37a754a105f80344e883c340257ea3821eca52a21ec8b3443daf54782a925c9ed13c4016af0ea7d1b5f268d57ed9d7bc960fafb0a7c1a0b284d55c9a15a72c5b788214991f67b2bc6464b330e706ec2d770201acc82ab060bff1058917a86adba7fb50caeb475b30bcccb71deff06e4ec60cc4a65bac17afeea1d8a25e53e9690a93a5dd5ab134918dfa287621b2dec6f96497d13fe72b32ef4f50760ff23dd31bcabf851c5e4c35e424d7e9cf3908c872250c6901bcc9478e1ccaf5466b2ef577a2a84c630039a671a4bf9f61467e228cc0b08cc046f68282cd3705413714ef94e318d67ad5ad0ef5aeaffef5ab5b5dea5b97bad457f7a8c0a47a8e4a0694e7b35b8bd0d2c6a42290658906542053b84fc9f5f6834e62f6c4c2a227f4f9d864d8dc76eb1d7c5c478ee31a7cf02e836299b60d05f7ee06e7b94cf04026e638280df1595ec97498d36f2f38ee57f20fe247d53bf1a98ec93910640b35c51ee4006656a5a0786590a23a92f1816bdafc18be702d084a6305e5d495d275a6e43a515a5d29ad0e94af33a5d7bd288f3e42464b72bf8f412c9dcf0598b6b1b3a10280643a48da71ea26c1e5c77c88a35881175fcd1486896068450c7f549c0a0bccca19aa543e6856140141f9cad2f17a85a7599979da2508439fc7f1e297ae604101c06f196ba8c5b368ff09102865bc55c0c9936673c32173ea8f939841890ea1228144f74a44f566f78cf9ef9610e47a2a8af9d91184338a2cc4d7d0a42f63fe9ea5d9570ec455a63cf001ca9a3eb4e34ec5c841c2e590c78eb60c683c02c3c4be81f359eb0f9aca367de09e3b81e99d0e70a20cb0d85bf461e44ad9389398bec767d8bdef816b7f598d0f7284faffc5bdc6ed7dc0bf6480a9e14e509358266ca3af78290b708300f251b35ecaf58928f318ec06febf3f9ff78169bf5a548bf96c04e195c01a295d47b8a494a4a8eee22fe8ce0513ca5ed12ca2f2188f4db9801528934792b5421c418b50aefb50af2e2b8f15ffff6f76c02bcb06fa59368d4cab1773cb7d00972e822423e427226a2ee1c368fd9662073a9511033817f60889280abd245699d86504ad013682ca3e221e882ee64766d661c05a6c77345bb5b74fedd861536d2015e880b54c0987dd8d8ff7f2718b7f4e9e2f60d9281f612acd73b3f172103cf6e80701699b58734b27f884c07de2a01bf3fb25c1024fe782b51eb99b9ef20a523b578cc64e0d8f73158a42ee2f616d7e76cdad51539c9d46180fc37d5ede3a3077f6885f42a1b797c44e1360c93881e5e36fcb9c223352de3ece205c59d805fbc5a559203d117b8bf9bfdab2d73eae2293967fcba625ec12216ac2936cacff2c8e8846c6ae7fb02f739421077698d9c00a2d351405ae887d2de993b45c2cc0ab1f31309bf650fc0c6577528b25f080524e59688178511160017e9b2508fff6d929a8bed785cf5f950bdc6b9413195c9a2e4e50f9afd3d11eaf32da5ae41f7b817d223ebb03f3b3d775061a8badceb5956a88838ed86439273cf36729775dd0072f55fb83b1b7cdb998d7001126c1ca96a23e634c12fb7f5044cd5aa3b4bd0d40bd1a98214bf359c7b1712d44d007181b3283a239dc2e2f1ce7c3061e3646322dcb54f541c402620231eca107975b0255662089fb2d651401e63069ac34d02fee3d074862a583022de9191046650a0db30e9c3fc97935a98abd9068260cff82f53556624ce9e3253dbb87807c83d193fd6eccc3219b34bc48023576c37edeb37d139fedf000b39fd7ccb3a557af7e8c801e74c43ecb39a967ffd6cc140671ec2c900796c7486e1faa95d4ffe19f8f9534b431ae12a4ed0641b68ff4104f64775ca358539b8370e454cca94525372d8ef6287691d947f1799405a9523d2f554d10cf2dccb0e993d9e34a0a4955139c94fec2d0f463e329a24ccbf6924f3a2a7ead9bb0ec0d4329dd80ac55c4bf1b5005bf51044af23341196513a43c65b525912da8980918cb3bc550226165810ac43b433da3d410e328f96521cafe517aff92491a10e858eb0918803c44479a11c5c300289115047f22fadc406ea01863603476956c8a6275b8b7bee38895c1b1f37a551b2ad20d505d88aa39bc99261e181053d84221ecedb497f6f730637a686a1697ca78b60dc26b04e638816d49c9372656b15521e42a48590658ba001ba3316534e1bb2b0093a107f6c65c22c0d290705034570582690222ae979f45c4f45b5812d8165b8dfa4672fb8e44a17e5477a420823862fc723ea7239d1cc8e8e7badcd05ce1bdba93cf78a1c068b7d6cb2b5d2ddfe3b3efbc57db24c2b6d6a2883db2a8618336993b3e634b388ed9fb0012494d1a57faff816a348668d94eeda9445611096a2525538cc62081351d9ae3332e00bd9a80419a67934a975811cd2aaa9585e3134e06f2e23d0f790386d06e90707922b4c8737a7fdc775f496e818bf37025a02a01de2af637a0d72a2e0447bf41fcf90c30ed56586da3c12e3df1559318f49d85c8f3b1cb18e50ea6a7b6954e70934e984a77d1e70225abd6a978f6aca8250c6223abdfbb54f909f952eed72f3880a1c8cfa2ab61c7db30bb89e5c4d0f2c9dda8ab63401f801130cdf7a63dbb887a8e04665e9a5e9b09d94680df1c79e5437e596f8e216ee60ab04594efa855bfe67171c7228d0eb922a21fe907703d09b8ac4f78da760e9779be5dd7990177a380d3d84653b38fa6f7094c53c8e232ba6cb69417f0844d0a928fa20d3e00bac9f974a13d939af6bdc07fa5c34e461a2609e1c55a7526ce5a334c2decc92a77327e60ca2a19835ed092d9bfed43d226e2cc27018c381783bb1a7506740be081c6ee50f7734c84aa382b41af011dcdcf2163cd174be7a50adedd30621c7dfea28ff2748cd854b5bf48a86ba5393e4034c917e6e851b284a0dd9bacf0e03db201240cf6d2e0dbd169d821613e4d6beadb20a3e51e1c9a4fc10a90aede7ceed0c1a509909a5e40c8935b331bd9e2e607da1111ab1534fec234d0fabe9bff1378f840044497b9260894003f11a53f92035478cb06cd238c4639e6431dda4851e3c493a60104358406f2db684dd67b976cc05306a6a9b48fbf904564b06b3fb6f0eb449811445a887b8fd5f0171dadb01589f46552251200f871f2d423c138e8eb9330141f9aa7e192ca515c1f13c6110d584e6c80136a09c1db24ff9f9a3b970349e573602bc4bef404b06235e9d1684808ab49f792d9f8452c5eb1eea763e2f410d492cf4e70838ef2c10854f7a40bdf65e080f6eb5137627dc6f999c46b770953c06c95deb5a708f6e0ebe1597b9947816da3ef643669eb33955dd1041646087b37b341df000651c71f0d47604960af5576bd0659f2afd5bbd022bdc3b93f62012410dca4b7dc76e42d26f7c3421ad9cb90dd3f5f884f1791c75acc64daedddde0815dceb9bdee85504d47a4249f6193a6d787981a1630d8d3e92982680e6e8f1b2e1f375c44131d8285de3b576cbab011110fb8a2f51795166c7dc1fa0c734a02c84591d83bf7621e046f4235f398ad4e1feb310b03a6d0cc3ff46a2bc05c0f6c4f741d7dbef3493710229b1003c8b97beb3a4439f8b7e5ec579b3a4c40d2e3333d9b70262d97e69fe4ac9130803d598aac89f067f54c609ee5ec0321e13b5e23592bd5e73181c08ec884c38933a832e1604ebfb0feda9dd301b1af7ea5cf6cb5342e3b40160667e7378c2e78cd997c32c83fa4fddbefd4e118af401017113c202de092ea63575a3f75f9880002c8faf86766bccac8b0d1c7076ec838a225c52171ee38476ab4469a6bb61155f799d5245b06f821fef76203f09e350b66727c0be2222ae4f8688c3e87fffa6cd503312e12f5c97f65f593e976f81b10b160ea2b2874f55eeb2866f231531ac385431320ef2be408123b311a3c9405d79e7df076dc2b06cfa462198901e973d656094e0032ccba28104c41c452e37e26059ace92cb8b3d9941e8a3aadb9f52ce60ef6e0ae5a7040d678a3adfd3ee049eec79d75d000960b020de02ec95f0cb5661d77f6fd74f675b9dfc0d37dbdb36927c3a270ca945ed6d20abe14d281eb0934e41b289139f4875c04223fb00d7d3e03790089b6e0e524c3d9b887cfec3fddd6636eee0b71776dc09a4df9c9bd6d2192767425282055c3fa6be0a14e0ad1814940354ad1df3890f2e5a9f71b6efb23a97462cf6ca1eb8b70467ed0d3f9c2a61a789c9f0ac4b8855760d9fe066a8add4ff06ca071adb9ba1e2bb78b6944812073e57b9752f69085316ec2f752b4022053a642a2922949d362eb218667ec09f6a4856b0ce2ae5a8d1e54bbccdd736230fb8125b8dc8b51898547bcc13972926071523b073ac1ed1620075156159052165642870033f861b152427bb9c40032fba7569037e587b477a512cfc554be0e2c578eee074603d8bfd354720fa832c557e4d5eaeb42e0ae3a4311703d9b850fc2f030930ba7dd5acfa6c97c1f6744721ad0a2c1ea719d3111e0393048ca8fc1b024b57fdd105d3a1e61350fe817570618b9f1c5ee5e7cd78f19246410605f96a96ddd632cf21c787735326d22835e83ecd4dbb69d444cadb7ef20934f01329638c0869804f668b19c57a0d57303361625859a92ff4f12e469ed2debc820ffaf62e5e1e6912eda64e0e08fc91e35b4c312062ad126567e8c31f584d43b4fd27ca21dd89b9b2af87babd47aaf0ca50cde770b2385974b08193c22a531b012afbd489da5b8eda21d86730c8348807c75da14d957757e602fd367b5af8c4e5603505e1aa0de246ce5bff83cb6806af2b00b0c31a8b0b2036900252628b8e4aaf7ddaa0567b66c6861043f746cb96cbb068a7c53d0fc67e8216156c5e339430486ac604a8f6f82817f02351752fc842bee7cb4145204be7c924eedd0e5fc9b6089baff3a04f6190e653247775789064f48b9542fdadfaa376d7c2408db627d4822f7450bde56fe9ab2d21edf17e02060ca9c2100c550a46546a9fb421b93540e73ee2fd666a25fbc165e6129dc88f0731a854eff772519897cb77c3a6b9ca6d92385b21f6910d1c1cb50202e9e0c2cda4004f59b5570fd4c267b07e2d6d6c9e037ac945259c80ae20ad476a486f8ef27e109b5da849cf218814c303ae59ad4d042c5fdba332c485269d1bd98c4ce1704fdd0e65e803b4ce1f934fdc4b78f1e010720db4302289f1d28fe194e55b79bd07edda0cdeadcba343a9c868dc755ffbde6df722f7cd4985eeb31edaa5ceee13ea5dabeedb0006aabca93e6fc9012ea4341a803394ed0672080d9266b9cc336c50c788920cb05833261091c4dea4ff3c1c1bd66082376c967a686c4e1930a663a4f50f0725d3149261d3ffd7be7bdeec84eea2e75af1c777d47d9092c4df2b2d4db055c8269d67bb8c04470844f9d623f4b7d8c0800fe134f3c113142b01e97eafc59950faeba0592f75d30857f5f90b49f63cd6ea433bd3729fa83c37cfe2ee434c028c9e0f32b02aa556fa41d6292d677cc78da5c3aabc499fdbc23f76197177518b0825795e7c776a9d1a5d8ba4a64b879dcb8f0382bbee3b9bf50a49c9c25ec668969b24161c73aa31d12c9bce29db331722fa66d022f12e7e4f699c65b7548d8b05280c33c38df93e37a0de99c1fe4b5041fb3ece8871da029d3872ff16f6950b21b2519e387ca9f77214b9bab4971505e2c511a6416b5ee4502c9f6eee2ea839ec40359efbc3241ba5528a0f7762831528d3d5c81bee4ddb15b711db9558aadbbd66ba320034da32bf67db17b554e6ea0fe248b4199e9ee5af4fc50709267e71985a4ce4794b38a6b1c017a957de96ea5eef4eb24f2aa8d902753fad009fdf7e6b0afc69d32a7fdd68c035618bbd22cc382c66abb9318227e39017acebb837c4b57fcb01c57ec74b2ab874967a5814a57af9cb109548a7f270ee52ccfeb6054cf4ee4e4de7ea9b3f844a700f59aafd829964b6719993a0cd82fbac1268318cf7915a41028f1729742e5f3be01e2c6cceea54873187f47befc8bc3cb54d0b22e500289d4e3141a9e804f4d491f958e008813649b03721906c7175ce95c1c0dc0552946fad2488affa442e99d8b448896811852fbed0bba8dcfe62fe1b959d8569384724324bbb2418b088378c3ca7e09ce9eb7619d8afcb0b2203909c9aebaa557d15bdb13d70379b8548986b96a4c7432298c8482b0d5450880baf440908398c18030888233fa5387f1e18d76f95430555d978b94882928e9d0cbfc317509f2f29d80b09a051c2805252a98338c5769ebeac5e9bb35835138f701fb4283bafa7edc07c2ab093445850ad3f580c6f390d963361b8571aaf030c1228bfabaadbde772a7a2bfc64686b5922459c31b41005640edf0207226a8c69533b1f42ab5241639b4e824c3a2d882e1933cfe56c57310164b9c0d2da9c7b7c155dac9177659999dec9703b4ccb9b0e6171fe39b8228d10e1a0fb8b4241cc8ee6c5f63f0cf4fe609bca3f62991b5a6ae5125ac441e9e6a3ad704a08abb9b3a26959bed962c72333c64317d52084050d2f5dcb7211bd073a2d2b7bac44dfcd39bf1cd9057dc5f0833d56e67cb3466346e62bf34c7a114b7643260ebe529fca2d4a036ab0153fe02c26faa139c2f21db5841b21016f1eb03d80bb2e4b62dc97f0484d47e9cb132b204112c419fb5d94967bd52c14f25f3134ba6d5fde3e64cc2b1838fd588a67fb597bf7aa69005441c1fe56304d8a5d625b21ca25b184f9272806ee7deb6932e7e550dcef11031026199fac7d28562ab02684d52e1330aa399aa8a42b7651a0fd01a6e5fa75fde7851f3ecafdf4dabf5d171722e4ac78bf27fcb8796a4c4537da7a3d392c05d4cdb4bf4512ff01c4ed7c44bb0b515298ad0333765e664f8c5430e7874664131c301e23f97ff559ff8cf11503fd7e9a344d5c1a48c3af93f3056007e6d027716f68e24ed9d69ac8ddd58202d0e970dc38882318ce2c14ef07f89b389e5c4b4bbfa851153711199a9ef7f9325a0a3a967f149893b0fa871d3830f2323c96c5f946d29184f686cdae8b39b35e04d98a1b1cfd21d242fd96f22e28bc6a5b5774f66f1d936748cd52e50011f54fc20b033e349b088fca5bd028392a4ab87d7199c5ac66b4b5fac067ba2e2ee28f0fd3223e3adaeb4ffa59e25b04d5d409f153962cedb4df6ac5feb9cfd88eac0399d140845bc6e7b65d0d6e96208f45ad096189d5034abbfa6f427f923b3f9d4db3258b60d4972faadeaba2541a842fc52a4f1c1cccc15ef6f699d672434cfb09280a3e748e5503fec93ca281dd4e0b2304ec96261943906d1e5e6a4a6edc5bb9f1960e24127156cea8644dc4f07c5366e23d661eaf81fbaa39e9a530b7c18cb10a50792aded993875bdea5a8e50581b6cfea6f1ed338d41233a889f474a5613cf6e0c1ba6a7462a8318e1d6e9332d14c01903243a0a8d6db979a68196ef015f415ab7ccfc9112438c0477ac585c95e209a3783ee9aa2d0187d8f9990ef2ce36d232c990a8b687bff640bf9388dd840b2d97bc0de9a8f95e22a69570f0b8d1248a836258092690cd6f9c52195853a4c6b61735ae206c7f45f3999c49ac5b466fe4cbfc664f64b74fb8bf6610a0f0974a8efacac1526b1626ef4b40cf4a0e80908c94b235e5130ad11474252e090a9dde7c0067bafe730905ae0361cf2b65bf2f320f17f9ffec5bd8abe26e2b8a8fd7c924c11d24d5dd52342532871686c72086f679e81a0622aa2a925715e46b88fe3e83c1ea65c19b4f8230c00b65aa9efdabedd7874d7f3e5c0046ed03fa9e6021a459bf8cdd211bf2841e68e672f97b08c2412a8f360ceb5550cbb5be204341ba4d1a456fff48e8f18a0b578afc11b4507928c4d806337536668ee3120fc3eaca084832fc9e950edd3fab72edd2b22700d15377fb4bc378ab153270417a8328ef772b87859f06bb91f4e90dd1852437c4b987e4c4fdd80082ae1888041f9ca3e82ec4c61645c4afa785b7c1599e474826710b302e04e9d7a54cdf81476aef6add35895cc4d0b1ee0a3923981bc0c390ea12ff81def599f38a978cfcc444ef0a15372b78e95dc18825cfe180dca0d7d08961da5900a47469c5e124c310b90af7d7e03a8296a5896d44d0978c65d3e0cc0127f7b1a095ec57d51bf9d8dd4cf605245614fccc7a8cbd70752733c4b627e99d3e42ea113b1b603d5340c39c86bcb7cd5914add6f1d1ca778c2a58d603c0adbd6d3886813323c54dc228a302356978def2ac87161e1e17cd2fb5e94f313dd074d7de964089d83dad320fc705f04bff5ef0b317c729cc4d0bcd0140ccc8ca1df50340945d3fc822b040909840f528700d59fc233076ac0278720a7afa9e0b7b5c3b6863e915be9fe27116eb86ec82f81580d0e0f88401a6985eccc5e41acf12f10d1d250568b897f5706398669be38a2e8cfb70bd0503f7c4e3ab039c8b3167707b89b7c7ede28b3222ca79b62cace88f6d55b224bc0c70a5aee6fcfc2ef9b4d1c8ff2fa8de96fa65802e16fda28385b8daf58609741fa874c8b86f3ccc8caf5b56e9deefc5e1eada18f076cf00c4285b8a4ca280f6836d6314abfa051ae30b49e6c077192336037901fde718cae479b7936131e04b793b8c3b29c26c8e71f0786f6686e3de523b8a01d0f20d493b10cf99cff45715d67da383d07c50287243d5ef07efd97eb1f616ad86c3f2039902cb1e0a57a435b12c5f8e8bc3147fa9ca4dd239f3830f18e24048ae703d371444cf677ca0c2f007e72bfe578036902df99e81f118b656671c9d3c2739e52c0869514c24a966d2e49f9c89258fe4a8286b00d0a0177cd592b9f827dcf55a6da21458de3ee84ce8a127aebc7af1804b1864359657650dcad6f190eebae096ef406475da6f1a55ebd540468a369f54cd19537e07e03cbdfc819e8cfd4fe7b8c7180c51ed492b7873728c1926300d99c06548bb59cac5b27bcf98bbc90ede4eabceb5ad9e57832a8b0d0a9abb42bdd0aecdf1dd2c7b920b6949ecd557a69da715fb2eed65e9814bd6e59d29a8f373a11c2b3f816a117f084cddee7d8136234671e77275ce40ceda7f6e02ca9bc98e53443809b21cc461b87a06eb0d3702262b4904fa4dfce76d88377a5bc176db7361142a625f84be385ac772eec3a01eb7da87f762404d151e452e4d7966c56667cceb0286059be9823fd310c5149f243c6e5da071c9e21482edb2608641583fdcba437340b94f3cf5c2890a10dc552151f1e41e738fee88b0e0bb438bbdc7c8cf5b16485cbe105a6d489c0ab81d7a178950aced8915ae3dd3745afb2e90c48776e48a756294c492a7986e4d1660d97b4a2c13eecd8448077a92a1355225397620eeaa9742187abdc48c9fca8b467551f9149f9991c3ce49bf2ac3c08179bcb594d053c6df69c486c11aa556317866649b2fff27ee85bbe5b8632dacc33d1268487e59038d5794c35f715d4ea24bac90c6e9fb8f0247de29f4308c60236af06d29ea3189d1f331de6509efc940948c99c4666132a429a85a214af0064be5956bad6cb2682fb6a1a1009318c7e7b9fd98582518b2cd5b8d04fb6698cb9daefa646d5190c2f6aae6bc61660e039e7ef67d261de18d1c6acb1e31f81b46748dae962f9da8ab9c3c9c4b71405d73398984bfc2abfc0424c79b16bc6cbdf2e73fa654d41c2a0b631a2c825aacd9b860714fab855ebec5b782e3952c83e5fae3b17dc16c5797ba54016c3437b144b92befc02e886e9216ccb07d7570b325e6fa4bc4ac2e3d9f339de2b8a2627137207b41e701fa516408c6188d85ca5f98574906b156d8d03171f2c2d41b1d98965df6e1ba2eef0d32fc87cf2bb3a6cbe03ebebabff87ebc7336acdab1df40229af0da2a037e0b509851cff91b522c788f1f96cda9bfec94987c83f1d82411932b89ccab8f3165a82d9ee7c9a83497db91267b3a23355ef743537ff2e0aa29bd5b1c5688b4d8c4ef9224adbb0a0ac8e2aa9ae1e50c4247ecbff207742ae0f24647db8e9dd05ad501d57ed01cbabead2de90979528682a7313c63a06beb2aa6ec3848b342db49331c0c5cf9386b061c923e0f353ffb8594404f5e9291eca64bb2cf9e6470724ff520b10b484c839b88b7e6b9218107bf0df6df689fe40f331600911e4177ff8ee29a4d3f84b15445c2780918ad8927f2351bbb52c4b30c1a48c026e61e43f4923415bc41dd98fac0efd988b27d3d20e5e464707df05de5558027e34c8e6d23d5620a8ebf6d5207ea5673d5c2574ff9ab60ac087c0947040f08d1ded5cdc43d1b890cb700686dede2030e2e26ae0168e1d92270cd7c43e92825602cdc90e8abba967d524a461872708e82d0ac77555be0c3405f3c2914782b1cfb16eb84bd83949898fa7841eaa66074b9f53191aaf6748e4496d8754bb80c97c89ddfa7b1a0e56cb128c0c2464f7ebbd40710461d320d2d3f3cc43c638d9da596519466954e05516fec605c6a145f7316e3dd8010496f484ab78dabcbbc98de175b658c76e6a41dd26b82b7c8e74ac5606c46a00dcd6d416588b5b93fd0c80f6875fb5773fe961ce8c1b2627c965e57a122816d7f63cab1bd76ab0cc3c53456ad3ab7808d2bac93b9b14dc441e176d3d82ca014e832f5d19441d6e470cef2fb317d3c55596414f9ba643a5247fb023653cee996a6114abb23cdb1639ae855dd82190155e7cf3118cafe2824cadd25b99efa58afed82860ada6f5e0d9896ac4d054f4a7551f5cfc60a666fb6fb09b80d343c7707b723cc9485ee29f0f1ed9c2fd0be0443ce55c912de64e0fdee040d745ff013da0189c15da9b49b0f0f18a232d587937e3dd814917cc241b09d9991474adda52107f1b91c06ab85cf958e8786a0af07165a131414fb5bf43cd610d64b1eba905c1f8065bfe6f5dafde0cb81b95fcd1655b49234adc1d248eaa40f96ff1aad9b10260afbbe5fb0854f3f1faa9ae65167277e146a90dbc3605a07c7cdadb24ea33943e30660f1cc0dffd1aba2ed889d581600ec3c4239bb32d465dccbce78ec2ab547a528690cf567da7152bfc9fb554597fb55bdca2824749c9a54de743d53ed64f686c7ad2eda5ba11111ff21fca0b9531d8b18423543d667803f44b5ed09fd95249c87ba9bcc5d2395755195f326237cbf7215dff368cf895c1aeb20b128bf858ccbbaaba179f29e1aa3903c9aad33691f02a82f2078eb113e5f7927b218792d6d31430ce2c285ecfd6cef51bbcee49172f8456fa4ea843be0c86b58f08dd537689587df888cfdcfda7413c9f64694e84ac1a633e57981923855302e53deedee49b529d7c15d2e6b3ab63c4b3799655574d329974e97dc902dc5a7ffaeb685f5de16ff3d1d13363efdd7bde1e6661606e5e1545eec5a18ac5fec128e8e1dc7a04c4ca98c446d15e568e8e20a1af297a6e69c786a5db671a37e35d4aee308ed12ebbaa1274f6388878079efbd8c23820061169c6cbb95ece71a9cef9cd94396166ee18067ff916ec1161efc8eae2ae198da05c665e3fb0832bc78c8e5f7d58ed641a715dee80581b656f43d79339b2b05afd6ad14d841e06fdbc08b0ffc5cfe07d6ddce5266458f87fa815593dcf867240587a11d89f513604981f0b9e6ad0036057ed9fbeebdc34ff97b0d5f2928263cf98be20b1a316484ec5682dddf6760cb5c82fe61f620948d7df257d775087e7df318fc9a0f4152b1844a8f9a897d4d2ca8ae1baf478e5d34122848a3a5e91c5bbcfcf4bd1673f431b2fcaecdc0616cc0c471ba96e85a638db6370d5031b4e644b573e755062e96e7cca1bfcaa70a0a1e44b3cedbd826bd1fb5278425d6e744113cb16dc4ac6077fb6519f5a19500dec9893d621d142ccd8c5a29f671c1d19d711143ce320e1a38e7488d60c2fec2bf83569542c66cdfb938c111d625de8d2a26a50b3ef7c4408c79615d140834f7cc7449d2ee4a77d9bb2c7d6266fbc007bf4232d1bb4757138c0d09b425a0797b7fb6af0c9670e6c1205360c71b69623ddda83cb6c18631d3a321627856a0ba91c0c599d0b379381e492bac8d765e778496ca3fd42be3f9b3ca3b5fe6804004ffdc341a2b951226daa3018fdc976c3f2b09a4467c2952d40e955b608f4a4f455138826a4003a431d41836c8504ccab99b17044d564063df93f772e554f941ed12fbe5363dbb21af871dfb42f3b659985c8b3b58a82319e5fe9a167515b2d2fe7dfafa5d0dfa1d8b3a4726505efdb0591a27ed648a763f73f545ccb996ad732d5ac169ccc04ca19d39623f53b7d1205e8503b60d0a413bbbde5889b5933b001f3854823d805f6c8133d63de3e5a6af7651b6cd5eccd744ef1bde86f892feadcbcdedb3abba6f40fab3c8a0c5b7342d82aa7458605a809d8a8b0616a0d16ec9609107b7e7b5cb4f045fe4260afcb2d50981bc5132d715b53694660be7b5da93bb7c8b3de60cc50f1130d9179d0bb7e042a4622fa3d7b8d1c75e92420af55c4d3d437c2f66c6d7dd1d48799b6bd6464c189bd001d4e0e21acf2b90aff36f8016db7f66a45941febafd81b9ed2f202891c3ddf824c1c71391bdfe846d65ae860007a1b7daa12eedef71dacab7e88491d2d2b4c2db089be39a1fd16d7d58612dd7cb54364ac4909f081926af6b3221e429a9743280da5177a2fc79f32dc6c6543b1ed6f184c338ba94bcc3963beba29eea54d4583ae21b1d90b2d05691c4ace2b92f55fa027db2dd1b96f558b3f9ad6a0d786b79288661e13e42baa6def1ccdb60def6631231e815f9c1fcabb76fb6e4a036e78a120da087c2cee703ca5b3f64681c21c655cb2d702832091698ff412a1538fac1c6b5866cc72a856761792507c49ee1ee21b9f5166b7e14d020e727d7406874456d45d7b00029239fea40edba768c3263953f9f1059ec33f4db43c63581459214a0efd0ed14c0cee1720a983c505f4ccfc28e5bbb721828200ab7f3e3e42133e0ef1a788575a9bffdd2411c8bb67ca3b226f3995c8328b70c189fda4dea13d4cc0006104cc34bef8d6b6128ac3dfc7c1346becca3763ef133bf6264a601ac9f9f18ec4d3e89d9c61a3c2b8afe86e0dd45d2ba7c92e778207c34670d8849c1473e47a9583d87a89fd358696a98dbd440214cc00dcb00d8b400cdf9d41f4306f71d5a84be5a2a086fe64b3d3aaaf68bd82d48793063fb812341aaf96ebd40f0c1aadcf471712ac137fafa0f3564ca40fd495c5cb22b7fe8a48f971d7d7a1e21317b4ce806d6510c187cf22da14ae7cb346755502028d76ec65984130b8566c6fbef71d552eac17cf9a259d397ff113635e52cb0af93a13eb23cba0aeaffd60c375a5165db3aae8c6815f071fcb6ebd0b34d616f747327338e2bcabc2157ce6ed30e028c166b6d1d2e061a91a6af583df849dbfd79eb7bf7473a66da21369ebd134b0fbe1a79a0cbbb9fa0f10bd41c2c783580932893a5636b601b6df2f9f9357d5397971583e475058e947c5db5c335ab2124a68aac3e88197c42ebf0ebaf0cf2de8467e6f8685677988a87b8310aa1f0f62a05a3126f5871edd46a7af0f5b7bc6502dab626eea793a528d5c296e588b23bcbae6d91d5bea041b416ad6a382fbe46654d142f5203e82ecba4c29a39e8b673758659a393df86ecdb7aa765b5db38e51220bce720a52f72eeca3d110a055cbb5ff59712a0211826ce0582c4d2690c6044c037a4263933600dfb231f186d74bf34489d930ea157a3a13457c2fdc8a8ccf1f557440b8ee6f6644100a9d2e689c975f0fb8e725de3cfddc0718aea815f7f312ea170b9beff78fffad447ba2ba40f4221843b65feb00842ff7d40ba44a7cc8588b09d83dfdb80a65cb7e3791f2d791fdf111ce3f52b32d0e0efecfc6fa6757aaad189201a80b2bf8d0df3322d4c6e0cc9a52eb49f46292fc1a70d6e367be74123b46d383ee245ec4d669818a385f770e0d71795118d1719d54f1fdcd9c786b8985175f743c0605b54d56cdacf07998477ec46d8d11e42f4194a02c4fb036a0023975930da55a503b98993898298b33035cd0e6f0f3d89bb036f823a39d1ef302b4c57751b3e9237a3fb713fea7dfc8b95966283f00b9825b48592cfe47407422e164f1012c0376f91da4bd17fce3ac3364908217b6fb9b79429c914aa093f090b093176e4ece773a8e1896838896c0b89285998839f5d083d077ef6df928d0b8fce833adb163d2a707e3f2a585fe737051329efbf1f154c7e6be8b1ea72060ca1576f4d9a3e5d7288be1849c6a900221ef3b8cf3ad831979c8b74e818e722dd63bf3a17d9f1f03a896d61664b4b0ba79a77db5a3894132e9173893edd255e51732a94bccaef47c50e7769debe712e9ad7164fe3368f2e9a7b1fbfb6f0f07eeb6c50d968aec5ec50cd6b4b100b54229e9d88df520ea9e7d955cf7bc9d9c0c51e440e0a0e4b3a846c15686d47bda082d0780d10f1dcb9f0f8d80181cf0ee110be15187deaf75bc10fcc2c995e4a1c09e5ce1ba964735ddb75518da324f66260c01058b2e9ac5b20c740b4a2aa5767a44bd81d91dd1153173915bd7af1a5fa0559e51fe99c94ca920d74e8ed10c60833d92bd95c715591bd2731490adb321368efd0f519c2aae4b64723c8a2e6a616b646f4e5e611b411e716d68b1ea1111ee3d9a1fe130a5f3316f4e89a10b6661d68b95ec1d6880eb96eedc8a8c99d53d727af28ea33aa348e5dadf8d21326b4ab952e63755877b580ba296797565914446bc66a015d9fedf753c111198bba375333160ce3fdd90a8ff1742a7abc348db4753b198b05bb8c1551d117e3e98af1488c47e86337417fbf96938fde4cd096dfaf45044d68e30cc96271045b3433eb4333a3052c7c5d9f2ef08028091774e10330a2e4a834444011842b4e1003293d7082680bfdd05f7a895f9a19f6f95bca4212f3a6adb8a2c915990d92c8a00b244c60c51021d840024814c1451844b2c8a20a574841c4099e58f185114b7c518a64428ef0021d28810b529a1c610241249e6b60822b4461a8a70819e4601868c1064f4891c5cd0f72c80cada04813522ce1092f00ea21d888a0c8113e23262780a2061dd8a20b18e800670a2742f68a56139d2e34e15bc20a32253e4c618510166c21888b1610814345110f8e6e904514807a07334480a206453fa0220928ac13ae5802075c206a12e4822b38a30100a2b0905021095538c28235c20b58554cc13a6a710151207360816eb06413802a2869c626d07d18fd0a4015947fbf5692aff161e5070217a677b3a5194ac53925b33564bea040628ca09f1323e4d9638a882982e5a117f1f0b754c4e3602457e9e167b295537af81b1bc92857563a68b43572c53c3c39df4de4863d167bcd46bd922d04b4686d1c1f458838b57b33b46a9c28bc7229710aaf689122f67290f44e03b54ff77c6d9e66f5c7aa0c68044539daa350af160a2b477b13f567c4122ee2875590f5ed2c96101fd64eaf6693287234b35846e0b072b4479e4622477bec61151f7dd1b75fd714df7afb3cb436f657ae9c56cbc7124ca8947884a4916f1762e98ca0fb2dc1fa6d6b428a4d3531036c7b253d97144754f1e4d94d5112f950015665df5f493f80d54c8b88088c10e243c49383bd94b1b4134e384162a13451e87e45b4f0b5718ca41c39c1811249b060c1155e342107bb362fd962a3567b4ba024bf38e66ddb34dfa175996f5c9d37bfb15870b48411098a2e23888af04102a888505cc10bf1233c257e6315fcc61b3377b9c62d89e4977c92462a7d2908419bda4a7fda98bb1dd8dbbacd4f1bf39ccc73f2c6ed6b7c8226156dce39e7b6e9d41051adab33af7597655ba769d985655946c248251249bb369216b3d365aa27c798abbbf98c245e90b343433333d3c2c212a39bddeedc7c3a57bf4a36a7257a13e9c4cd3739930f024e7001024fb0b0de81076fdf36af8d6dbe55f6bacdd91d6199dd1116c7c13166e2e67336ebe10a694b9baf702cbead38b3e673d326cb8aaf78f5c06f5d655f21b1702ba6156e0a93c964248a4ded53134f4b6700cf317e069bda1c6c6a1f024ef46053fbb5f4ec2a31c0b8023595b46d6a73cea9b1a6e9b0277776c813d08d5bd3e06bda8aa6a9c8d0fa34a371269f5de4db4b262f4daeb2909f424cb2d538bd5a61d750af751dcb8f50947dfb5042146648483d2497ad160a871ea18ce8eceaf4138e56e14a8e71d52f5965ab42d657d9aa70e7ab6c55a7b5714c3f58c89774e82e08617d0949b3143662a3971b97bac91ef418bf59c0042140e1d94b118ba2f251640aeb6138ccc33dad83c916ced6e4b0aac52b264d3e8aab158d8fb4969c6cb1d78dc3a9cde58e0e7cd9d271b527e0083a7d6b9cb5d1ce9dd4618f0143e8b699b618b6adeb167bdd3949985e1be75bacd2c1ba79eb9c3b6c73e616687d6862789d59a118dce6cd6c2dbe2cdc0ab749670ef320e05f28465d46bd5a9f232126ffac9a60cce08b42134820832a9ee4e0fd8b9ba4679f5d350e50e3087d3bbb922dd942225b3cd299b52b3632e221463c8ba474e8b32be6d954fba472994732cea6da2795cb38d26853ed93ca3592eec3aea0d0a6da2715920b7978760579706820ceae204ebb519123482d085f1b675bf255b64c547c6523cdc8571622fd7e455a5f9987f43142e855e42be3b409be4223127c8542456efaf72b22e4593b7628929ffc1acac933a16f2844195189e77b46863d9f5dc1ef03fa84beefd7e1ce763764ed6a521f76358ba851e3d8958f4eb5d3ccf89236d53e17e8477ebdf2e104124ead0f2778f6f773c0a3ce845845ea2162d56684f4f56a03ea1477906857574fa7da8b8a8c8caafcd6c484bd4c48e863f2654cd86b0ccbb05256c260465484655896b13223569592b0d71a4e2909a947c3d98c907a484658b5aff1b0f71b107b3cacda971f7b40ac5a8d3ba27273746aa19f1c6255e61a8f4d0ee51132227dbd925fcbaf579be363277d1f941f774cbe92be971ef6484b38d5fe826ae12b90ac409d1089f23dbdda9070aa9d345b28a9e786480cbf9f114f7e03925084b60ffb36623384fa570dc7c8b7af3077957b760da757f2db543b0a45a9fc70bedd0606b4923e1211abaa860385f4b16a9d28f17d3b698855258da753edcfd32bc89e61507ac6f1f0f06838188661391042d86266d6c9b22cdb29954a25232693c984e4743a3910d49fbc85102208eaa907994fa903413df5766d8876a3b1b229d99194cc885598b76b445845bd8fa8d04e0e718a213c8247bd92439c6ae7e6e490892b1545f9865c3bc639c029273f39248924145924a34823f6da314e4a11a240dd19774754342efe06e525911128e62e2b2abe014ddaad24d2218734ee7ae8cbb03b32c473a864508eac387347543c13ca98f04ac5db33a25ead74d2481e6545dfaec2c921094516c928527e5368169401653fd912982df98c8a88e2931e21209f76c2b0057920125e024314aa89200d441006b1d74029e014f8e815f7700a0527c859a288123826284112444880c4114346208210dc185184106685d1052e4cd98216b6260b5bb32d878ee4c75e3b0d5036a1a06f03d278a06b3ced3142e80c497edf35567804a7c84f8928df2e8758c5dc5509e5dbe32cf12060044a30f9fd8c98f2f2fbe1147dbebb798bcfe07abdcd27b76b63f313b739c76deea7df5ce336c88021da493b9dfc4f27dfbcc21dad529f3e7d2b994e34381ab33bed8c0cb037bb20f0677475f31310a7b964eb6126fcbd107b660f1bb1179de3580aa766f8899beccdf021b623525ef3936f271aa402040414a1c8e0d13d7a84128de29164c5a218254a89533e72fce21091d62d7b33bafa83f42e41c0df3c487ccd8338bd9601f6624907cd4f5d10f85b37047bd181c4709884e754e710439c7400b1ecc930d4f568426bfce237c365e848f1e354cc11280c5e7293b76ba7243d268f302879f843bd47135ad708088821e0d30e081ac45ea4ddb247d9e3748ea1b017dd392ee254f418643854027990f48caecee8383a06cf4a3ae4cf0eee6441377ff10a99b4c32b225e92d4b9e2952eea858b435c9cd9667a05a7d6ad4b173fa94262afe415eed4f8c1606b828046cf5087f6cd638947ef402310c955e2d1be390d029f3a8ea6758b32b88414836be184c0be4256b37475ae749546954e46e67da8c00f3f5845f2d92953c969786ea72e9a38c7381217372ed4a1fbed48b91c6ba15c9d44489c17f67c10638b9457fcfd4a7a8e4e8a4ce2158d1df7b46fdb321b6de2c5415041d61f320f5d85c3aa08391b381a567134ec49b77105ba03afa64bf7b100e9375c37704a420e73b8c152176864cfc8ce0c4d1b9f81425bacf2e131923fd631174b3a2277c5af3be53d20fd0108905b8987f561b1a011f6e4ec20124e498f4942e14e0775d88b918242d610acdac187fbc02b9843d2f47cdd283a46beae94974e231d07af36870c6ade7800a7884e05dd8f47e7d94f3c49deff72c9f3d0678840eb7cef9bab007beb2d9d0f2fdec3cb0c4cd04a7f77182802e1000578f61a2d1c0b17b3042a5b51be5b58a35058d7ddea9d2a2f5d14ea62107bddea55028af0e1d47e028a00626f9fc9d60e62c7c1dc45a05e451c9cae9e3ce6b0173ff0a73ff906834cdf382126900af3ec5b6c755fde0d04344b3a707ff94e6bc555bcd29071faf65ed545bd720df1c7b15dc59d4eadac70b1b5b2d2b96cb8d134b4d32be8f1a7e42a5d45d1ae7274f8350201b584c1d644872e976bee72753cbcfe614f8855dd9a93c65f5e695c9d8e66f891db97254e08c87d2d76c8ce3a5c0e047bc4893832e6746cb18a3bb85dcc612fb6704e5e23cec38873eaa2fcbeade997d80c56d01a592ca423d645d636c7c1cc75a91b767797fa9a3b3b46e2939e29df1ea5088a52fc3cf47883042af9cbe537c5cf47e78f38bd922c9c21f2863de8ed753a07443b10d3e3e4ab9337f099d5c921710891add9aff901ad92f5c11ae097d84dd3b4f51429ec1d612da5a5c82df39f0d1483a027b45bbdc4a7d52b96aed56ab190b8c480f841e0973a20e21016ab485d6dbf61d5d601d11e896ccd4c626b82387d7315c2cf4a3a4497d1a59c52b4ae8fae29407d85741acfbbb5813a21e05738248b1f0f911a590f7dbf18fc10f906ea8105ad31eed4cc853b0f4ac9922cc95265d2639433659d520ea9ef1ff6a0101106b1d7511e6ed751d883314e2810ec40208b0584f496446412419c24f7a427cab7c7e8fc0d11410ceba08864271a610fba7fe484e0afdd576c8d10e04ab23a058720e1616ff1d017f693bf626bb07a15b5d81474270f594f7889f3900a2f5bf1db1ad0638868942c69845535ee3c74e892256fe41089a481b606f49de842c4afdd32c2aaee5c62ff3c125671d7ad8ec22a234ec2a6a0733197c050405506e31b68528a6a3d046215649fb023c3cd38a8041eb129e8d96c150a030de80cc4abcda1ead14574e92af3ecacea813c0f7b488c62d5755d574b8c12a8943eec6ae31e29e163baa02e3ae6efd660973a5c1208971c30bf1cebf6bb0ab34e7838858758781886053605bd8b2d194a6972c9e163bb2cd9fcc05edc1a706b9ff1b902c1bedd3d0f087f57a573cd0ee8d52d7b3b43045abb25e305addd82616f87552eedb0c808ab5cbae3e17d7b771b05099f606bc01dd8c39870ced614419fd021bba35094ce49a97c391fc26d32844fd01d0f5bc38b19a36f5d28bf3d489e153680916d77771706d98ed0f58db93b46934b3f77dd6d72c9e1b9d300e4d9b6df2e3aeb2042470c141442e81d696b5c1e3d77148a92fe92e941d2308556d27422f6abfd724884024c7ee00ab02afae513d81a788036b606f3cb214ddfe0a1c643bf36e8afba58bc4c0cd37d8a88f2eb23248a8f901efc131fecfc3ef101ced3f0fbc4070a97e6c4ba203cf0757b69051cf6a593b6a6ffcac2b630f5fa683ac528a09e392945a1dcb965430821f45861ce673042280357e1cb002769677e40358f8101dd7eacd043cfb66ddbb6ed9b0b8246186174e1a5d0572278bee3c620a1576b490f7b4cc321c7424385882cda1ae8dcddd59246acba7402e015358357fa2bbe5ce7afd0f0cadfb212c35b7caf9c8657d005f4f5f219cab96abaa030f81504e37502a0f33eea9407397701edd7ebe7d98717807bdb78ffac00bae8c35e43c8f12f0d9294e71c4845168bfb748ef89dbf3147607734b9347471dfe701b258393c6f8ebf4b2edeed90ea8ed62787d7c556a77c582543c9bb1adf7d8b81820ac021274300ddc217baab67fbcad91ad89df4618fe50f7bcc01e82a6a86ae520ee534baca1f23a23c86c3928ef8b0934b68f8966c38c7c1312fa0f169f8954383bb38eeca61cf67f0da7eb52e1de8ed974e0e7bfcf3a3c3aad84ec3af1c1a4e83eb84980f67e066e0160836f81e727b81c144139cfc0cdcc9b7489a812bf92649337024df2ed20c1c182180e2842128f185931938ea90e35e96765c343881109ee8d07191e08a2a8c14700d41892f88bebb5dafeec7c3e4ddfd9dfbe163cf1256d1f0b8a21e0617aff461707171183887e9ea04405769178357bec1731f6d0dae8c83f3e25c57e78b7b57e98bc3ee674e4a512877cf9b31c3697037b007dde370c0c15d5ee30b576385f90a839e3d06ae4218b8ea8f924b963cbb0caec617b80a1323274708c8c2d558492a5c85c9e2f906b55350190b37d06077b307ae40a579863d3f688e60a88275c2eb0eb180e82be4a179761a1a1a9afd74867c450905805d7a66d67bd4a6a06f5cc5185f4619168dd0613c1956c9a8f20391d177f4e8337a738451b6145b0e1d46170ca0842f729e9dd9995d092df0620b4dd0c10e25d1c28be722e060896084e7202314a1c70b2d7cc9061a0009c93b6c14a146131d5e15545e18c08ba022744f6208814a11ba27069e400476f8ccbc45891c3553dd007be40d0acf1e159e2716d8129e5daee049f7c48eb13b76c7d8dd3106d3a7c6edc0decc266f8f217af9c260710a20d864b15840301b57a095f40b99a3c3fe6664601236c8a78d81627777d73709b317dc5dd85bd096ce09fecc203c45c9334924d1c93c7a1b3dfbc628e9b58f1084c229f6cb47763eb3f3f1711a9e406b7c1e92ec19c460843d4389ba9b517a2cda9a0a9ff03a641e895885393b84028b4a3c328fd3377241e0cfae621d6774c516c305cd3666e6d8108600e7d999a082f687dea0320ef3d2129b7591d687e4d3e2f3e2032333a5d0380575138f727e3d46619f5e654559918f8f8f4f1645bbc9a630c9a47c5994cc88343f262fc41ec498a0150a61abaca853ec9911a528ce8ab2a25e45217747a1b222a18c498c12a10c316177426307f4d0193084469faf34060aadf45b28061a135049240a3d4b7642f4860f0fecfcc022223c4cf848c7879fb786252b87d44b24ec31e45ab2ad812d87cc501a940f92a6b486656bb057ecd749726b50591bec4b69f882665bd6c28c92e1962e2b7ad64a506e24282f1c16d21e5dd01a3f362f94260d8745f68842d95d8657375390b01787f1ea8d6f2671474e8e9d7c7edbe14ff2289dd4c55e52da20417418b57df6db27e88362d45386e4ec24e9f9111a2a629594edc4dd4c21a3f79229d82515515efad643f3d8d54ecad29c4260be03fec7928da9dbb551371e251e1ff86d89cbae320f8dc716b7fdd83d5d6d2175bd844b748b6be321bbee612f08fc29706330f4ec5cca81eac041f492f6c1d668df245cb8529aa2d70ff40f7bdd3e5ba36baaa0b595f87cf72c61d54ad6c458ed4994fc56f1fb4961f45b0c120a8bd89b311fadf37b182b2c7a861d84c25e4c16b44228cf8ee5600742bf4f96082d31b24dc8defbbb31c4182129ce8e5da53ba89c1bab884102ada89b2984805901a6ef76cbcdaec2fc2e4b07ecea43a720603d90f90386b2aab77255e67761c7e94f90cc9fc38a912b96f841e3338609ad2b74f90ebd422bb4c5ad61a019764b0b934077f47802853ba06f17fdda81872e2dc0253a9c716679b9be4872b92594ce798f2d288c51fee2aa17615c8ed041f0abf9931c48f99adf2739e8f90d927c5da00bec78780f1d765ef4ed3105ca2eebec907359afebde5f1eb7e3e1fdd5791f81c48fcfabc13072688e836558053b19f65a405da2afc7d8f1f07ebb4e65357881d167eebf9d58d36bcb74e8308310cecc2d6610720c18423387251b2c8b5d82accca7670008ab7845d3a95934e7cc815c05d89bce251d3db0377dba9c4ed373320d56dae19f55f61f58357d62dd91cd5be69c3e337bb575cb29e8d36736617ecafcf485991d1070071bc166238a93226e7e76bb09888432c1e46342897f2d1f1b5190c21736a0401b07df529a51b8e9f916cec176c3162e40a7d1730336d4cbcc7ad0e3cceff03e88215ab47d7fa9f05b05158c1e7e9d5fc51472beaba002936f893c3030b6e8b946d238d40b7b11d512002232acaa2c5eeca2b36ccd4ecda563dce6dbd6b9e0b0bff98efdcd8978e6aad7f8d30724ae4cba263febba08b421895ec62548486825cffd7e2a78225e11c3ae920dd6b2b18e30dddd91d9454ec18e10c608bb679a6cb23bc6a85a2e9868fdfac6e9df37f8f61708a1cf853cc5c420f7bc51440b4bd9dd53ca2ad32d895e65ae0563eed49c2814d6c9ae420f09f8321ffa6c155d79f82d7f20da5141df9644d96b566d67e3eb762d1dcd015d79da62c4a6f69709126c6a7d30b104fd5de196b45d4d17ddd51863ac3f16c296512806c187972dfe1c6364666eb98174d855e8e4a1cb16ada48795b9731ad1212ffc019d3c370bc56e8e9223411bb085657757638c2ce7ecb613e285e7197477b737f3bcde44b7dc19999f734e4a2b6a3be7480c2923a6492961d42476c918514a286587b98f8e814509243e748dfe25e58f97416c189ae6d14f0e4b3693eb6b93d224a594525e2d724552296fb0904ca46b23617ec5f0eb72ac856545854a2aa14e075b50853abb0d2a9d94d1b713b78fc528998600c21e7bbd9101f8302c5a6fdca0b1413afb299a4ad7756dd7755d1706af8b48eb74488fbe130b12ffea80905d24b130ad4267ce7eaa406405229f7deb227ba76eb2772251f67ac0ecdb463de3a82f8ecdb62c835186b794e172bee0970cee052e06b79b2a997cfb74f28aa299c36c9b9b9fbaea9f79779d9592ba8ada74685dec96bdd9d589fa28638c31e2e06962ec06dc10364b0622515c0ece62b178c00e4812a08f93c6f5c0dec9a3cf1e4a363ed89b44782ec08d1819d08a42b1fb105ff4e89546935d108880305ca213f1d147a55165fcceec6e0d33d006fb421821841042b8a166600d3f2055f9c1494b966c8ebcb0b004fdc2629cd2638cf1e45246cd7568a7a979ec687c94f1d14fbbf2116384cea5138b57aa229f87c29965be4ba72ffbe6d37b572ff8f4dd1a7e401b7cf20cf4eac6a6d8d9b7a5ab93a5ab54e5c68a8a0c3f22a3db15127ba88fd237ca21603df617b8d5a6d87d34fb0f58c38db5c1cef44bbe37a876f4821f79e1463c75f07213f7f5c6e9e735a97b3395e6e70fd247bf28cb769b863206815fe1c76e429c16a646dbc2545e0238c103dd43b0d74e0025a80b0fb9fafd74825ee360d8f33cc0de103fa0378ad00a85de080af50af270aadbbf8e314287e8d5e6ad699a262facb2cf6b1ab35ed3344dd3344dd3b45de9588c315e28032041a1014640a1cb804249ac82be830307aba0efae6f33eb387a25af9d54fadfc02bf8c3291ff6a4d70c51c8924e6303fbecb0aed24b72c96fc0c1aad28e1b480dfb63046e629720ab83379c921e9384e2d0dd408af13172a3e565060a4da2e85b8c94a23cfacc178b50d4b51933dcd737e766346b866f7e3acd98e11b24cd801bb7356906b76d8fa21e5fd08d448a9b6499a40a652f6bd6d670f77802ad34f0d49d3a1acaedd8fce491552e118b343608d955fcfa888fadc447df55c1c7ed7c0667c3d72b1c9186d244a28e86062e28c9312fb9a99d55bc829b926133222a392f038b5537cdea3a73d8a337ab877013699d36f29de42956122207ee67b80c9fc179dc89763a36cd23976c4ab0a48308197c6bd246824c6ad36e0d197c46469ac10d895bd0cca757b85365582f43b7ad42622ff3f656a1ec91bc9d5d06073f020505611e49be9a6d72e2e6893cc181ceb76f3848f2ed1bd796df48bfc5e02158c11d0f67a39b935875f221bf4158b27171c882354c8f0e8bd81acda343235635c3a37b9d2bce2bad69094345bf4443dfd0921b4a4034849f5fa22128211a422b015864ac6c33659bc9bb3b0717b4bb1a8fb070052b4801a30a54309a8214a210050a5f3ca1c8094d600294253c7142a4042fba18e2620b2db6663798ad300ff374aac7a4d249af30de0cab34d75cba8c74b82bc6e994649cf93bd261545c9a5c4269d73612699266c9492512a9549a139b1886611836e1e42664254c23e348279a45543ace4b255e8091f3eb0518371fc3af1755287ae6e915c6c286f4f8bc3cb2e29b897da4676d92deac844b36ccf33080d3c4132f12e3f42aea704aba915654c248e2c73cf4c4445e7ad441297929a59428150e33cd38a4a5c7d26513027a4d79294df4c88a7303a44471cb3d4a784c3ca695958e95708a7b58092f611ffee120f624c742ccc393b15c8a30855efabcd99f5f08f430080a4126bfce53e2c997ae78cfd9db0ab78fedc0245f3be784b1baabdcb74fd99474394f5485ba8d0c28b6d3ab1f50bfb2fdd050eb368fdc0a577f70aff9c6ea15b738257d9eba3a55a8746ca7492552a99495b2ebba2e93974ccc252ff9964c10b267d82563337be6dafc09bbbbbb9b61160476b18eb0b88ac6493fed3694918b0f4b363c6588bab84b5fbf49d216ed441f2a9d5bbdcbd2199181966e39c57df3b2592c2c5db33825ddc4f50dd7ac1ec23511f6a46b5ce3b0273de3bac55e4eebf09429f40213a00d0d1966bcb8c400034ac60b315a585654e8c954226d5a36b1adb135b6c6d6d81a5b83b9bbddd43a33082011ccec050d93b8b282c6189df222692775d30abaecf19c2894f3926de1d680fc271b062041d9eb64afdb087937df768324d42e80558e03ab766015f4cd79e88157a84e6d3ea16cdb46f7b123acdf28bf1f1439bfc1d2ec22ac371ede802c575ed3e3cfae82e031b87d50b0bedaf09b4b1b36d5e637b08a7d731c26aa577153d037d26c79d978a143cd33c78155be0056b10ae8b71756615d7414ab30df7c61b60e08c8bab2b03103bd7ac12f276d2f707053add2eb52253ab3b686fd5a71e6f8d908abda19f62cc19c39e818b7831dc22e72c31e5635e523b08b55f017d35ecdcc5cd70597488693d4f222675c0fc35686c583c45ff1204e2b4ebd7530f94a17043e4b578160c7ae1805e298a68cbce42fa2d30ab34a5d9d1dcb4a47bb8de5b148eb35eb9aa41dddc1b007717ae8d4e4b0ebfac39c59d0ea99a00fa72ef7996be62f1ab8a02c233dab16bf9c9908e7b00eab82587531952cd44f8b57b095e44d97b798389af5da97094fab573f3b413c7f41134793f5f8688d51b4feda2f0a9c25ccd248cd22f0ca437a86bdee7a70665dce37acead3a99b610f5638557c3f24375f610fec195a625457e80728039dbafc3a952877a4c54f5c9d6fea2a9081f66b6e977675580f19b74377327411793a02666032f67b3376e7c29827e8942123f2c4e4bed088137a84b313c21ff3d8c528e3f5a5858e37d6c7070e3de0087af619a8a22693e9f964a2410b8ac3fa7012cf0a5a17a8065a7d99d890f5fc0e9187f079803548677f00ac613afbe602a2d79c7f8b75c6af2f7ce1f77a8e4feabcb7ae9d7ef597f1dc2f75d8c43c4127bce0dac85c72bd3632f7ccf9e533afabe72ceb6ae63b766d68be6ba34a874048c77ac0d73ad909e19f01cddafd458aac6a6d6a1de47876bb35f8b16e8705e0c03c48a1d586e721761cd80656f5f784118f3d1d303f9431193454b1c748236d22dbc2b0caae3647dc958b229556d52ea58c3cb8e0ce292333e916b1c8f5c80275e141e3d9fdb973c9c1ff72ffabab1837c391995dfad5dd60af65be37680197f7cc8dcbab4c5fdd8d19f6baafe953e646cbf34ef684640a9ec879e6eb0923175f17f3c5cc7cb90fbe16e87c2d20f2b5408894af09277c4d7c5f13405f1354bce06b42e76b82c8d74408763f26b8003f26a2b0cc3711260aca5e6730e8139b1385ba9c27908b7d7214425af016f10202a36c4120cc000cd992d245fee4102884279ec8217bf4f344913d62dec2080a0a9e7836daa2f9e32f46d6829bf0a9a78a287c4e3d5b34f3ecafbbfbfab8bb9bbfa12324d0608823f316dddd9c057fdc84b5883e510be9b285bbbb27f67577f316ac05ecee66ee2f7291d01596d042687db03e3811f5a08826b3bfa38853c511479f13e8245a0104254d8ab2284766b0452c8589928880a54c71e24689291f9049a7a70a4091855a04445420f4fde07e70348c30ea411296486b1205164b24446a020d5620f40d29420c8c78e85f1be939c2491bf9398de0074f7ebed9281b5486fcb8e0870db3b1b8e08e100c2e9e2f3216b1b380571266d308813f5848774108ab49f3700c942cd13c9fe6b34e7e3002cda7081765b158402e2c66630171b012e8e000e27cfb6d47c8416bbf8e1f7e0e329860043f3f3a3ee2a12027f8e89b33b2582c20732646144da498f9d14200150439e1470b164098592c160b0867f14346c613526220f30273459117bcb00a485c9f98050f0f7cd0039e4fe2c02038e146e27cb33d98971e2a4081a101d2403a8b1b2c5f119670c38321a8094a3c2c7ea0629a4481c50f14699b44d1448a1fa42ca4cb920d7730861e596018645b5641d2fec2189a63b7002258045bdc6e0b805d12c227346498f1e212030c28192fc468c1b060595181b2c8d6bdbb7b3295489b964dec92b1590a522214dbc230777733fca2610d3628f3055daf13da6c6b806de60714665bde365e0c6c1b83809018b961110d2de969e54831120a4a8264c80d14229f253ab075b4526664b6c64691396cb39d505012247148bc8142e4b3a475ba75248589104f1226c2438aa0fcf8409d29471f93182650e66e666b78427d83bddd1828284359417052c1b61b77a2ce94a38f89129ec66922518a807e8cf00eb3a60c7d3d4a8c7ee000b3c53081c2856dd2416ac73ee61c776b4c6f2ee323255ff7dae7a41485f2ee16fa828271f6b454f48c8b8b647312f7d21d4ce7d7d1bcdaa34b773b781a0cab706698f135c6479f19a253d72475cedef5f5e5af189beb81bd6b47f48edede1c63f4d103ab32bfbc357761af5e8cdae532ec5d193744afa85fd3747444bb7875bb9f0d377ede606fc6924d572aaf867bf175995c72b82a08a4cf549a6d19ecf297abd4c3fb65afe79c73ce9d2a2d9f14435ff7a8e52fbf7cbd05e39214645efa10325272f487557bb8e20ba10fe9b214e3b7e8e58c5fa3b835a4c71051e92b7d06e606ab64b6865ffa0e3c480859bd23a394edb281907e6476b28b3586daddb1a5e36e062b28f49a1fd068c3f2aaf15d04dbc2249418f9cd5b0739bf793be65b1668cd7eabca2f0cdf430b7a39741ab040ab3fe6d22eddf1f0dedbb139e962ee659db974ccb5d98eb9b7351b077f67e792ead1beb9cc58caa17deb5c66a38da8648dd585510b19a2910000007314002030100c878482b158289ae999307d14000c8b9e526e549a499320c64106294288010818000800300000646a840a0086fb23a4951b9a3bbac637fc9388e445f3c6d6731e7add254fb730f4f78017c70cfbb4da581a4ab49e9d373e317de642d3e7dd025af43bd4289fa25462f3910a6d94cfbd22fc5b98bf0be1cf62fe29827c8b031893968fbe130b4c83c65a241e2faf367ec8ed021e113c71a7c51f87b855a49aaaf138777c21fdd856af0a43b7764e783d18f8062b0513fedf16f74bb2aba169192875fc44f21159ed574f5e9981b3586d880eca4cfab8e718adc30673cce541a366dae689e55268b3324071f85baf4c66427a01ed8862090f110c7fba1bbd69fa01e50b856ac7386d31d30d905bed91c6acea3c654004b48b9227dab7ef8426234fe4fbd2e8fd3c52d47dbc30efe6149ea65ab13baac4eefb30c0d9725cd0623645db65b5100d59cb5067f511a9c0ca33025e5d4e593026d4f5d2cc9aff9702093fb89f03a5b51db7866354521814506f8c14cbc0b1037a6c2cac9c0406acf3f6a0908abf17903a12058ea9b278e57ba80058f4a28f3c422a6a7e4dd221471bf05e5098251e72504007883e2e81d617ea13c92ff3228b2c6ff6bd4196e8a0f17650b725ef091ee0858bda05b13763fb7d848d435f0b481b4008d5ed08bdcadc370025f80a312f945ffe4da2238a58d9dc4e08da9f2be8e2ff3990bcdebdc29c72a2e5367b42f1f30c83d276e3a2e3d6d69d88a5e04b41c3b6b0b041d252181dddd41cc3ffd246902b8a6475d514042e45cb07b555e3c5c198d6089ccd9bd1535ad195b60e92e43ad99969c46dc00d46096601a11b8360c321e22386859d11f0bd612af999db971a368daeae858a78880ced849fda2867bc703610dc8e9b6a3736d083c4c509ca6aac2a48623d3a225cd61b6a8c6b0697dc4299470e174ad5caea3b0210425ad51d6ea1a82db80cf147634ce6aaa6cd14cf94423d2fc240bddb3f7a98001f98944e4cb8cb9ce3d5808e35f1690adec2596d261c0f987bd535dbbc9df91417bf66b61d709d59ed79256f7ce9d50a5638539993e771fe6f54456c23da9c2d0c13dd5cecae78afe404746868f700316ba946398b7944f4119ba41a5f946e5f6ffe851572c484b5da320ec672e39c209b4a3fa8be50402e2796f31d81f0a5585ab93a8fcda54a8a9d88784d284a00c77ce6229a9b121672e8a1c552abba0dd52e3aa67541ca943fec0bd79bd297ae52272146b8373a44e400190768070fa7a5f96ad53a395a6b16cb5fc6a618a7bbc0a2ead46507ed11fb5c676af6199412ebbf896d3b878f98728080837e5730e3061fcd9fe67a03438a4becaa37c1592557bb5690927bec24e8d9d6873da8d664358734c3b942b88bbfe05b8974050e2005c806c86dd0de7221c2392648b1cb3dfa398f22b827690bf4bcf41d3afc1ce41326fe002a23bf066790ef330e29a59c4637a00bfcc833614cbf97600574f8cf493173877b741365094d2a40cbb7c853dce802f96e310ab756debabe7e021eeb032eb5d641ee3c86841d5cfb585cec35824dd53542566426d60048cca831bf713432d54499afa050008668fbb46e37de4cc64904345aa090fd03cbbe60b7dddf2ae454f9650cfcf3f596f8e8358eefa7a491da2146e2aaafdb459111eca27c8c9d2e414d60481a607249c1445da32016ff4c1bce3785e43f236008c7eaf25bdb742906b3c842a2b35914af7aadb6055831c0d5adb304d486ac33d7db6e42d014ab99e66ec8d9c1f4e45b72a101658ece88a044cda655969a1ec44524c2b02256852fe099b680acb6ead507aa3fd66aa62fb4f46065ff36d3857cda75a8c7036e152eb34afb8d87825689a017c4ca9bd1c64ef90a60668819a7f85f7fbba52026bf501dfc03b9c75af0eaf8d68d5f59ed6b31176d50060497593e2d7d861f2360a181f2c766e7b093717dd8d0757adf10cd8d090a25c3ba0039649ebcbccdcf6f30295b95ad38c3ae8a6a17d2ad942930ee67f5e7b1c15027858777ce244deb19000320ddca6333c8d669a93e39508b60d72e9ab14b8df5a1535c2c0f27901488c57de92f6b50784ab34730fe60ba9ef398a026cd829436106f98415a7aaee57512a324f017141af5d028451a6ebbea03e99ff8fddb4253ed22e01bb506007134ab0c8fea8fd8b722310726a1a771aa91bf5b322b5591a34ba5ce16329608836c4b97e2f2ae31088cc1ce17e6dd16a4c2a035011d00a58f77cadf9f76b80ba6e894bb1dbea310c9d6d098737df982084af69cc4878fbe5139b34aa15b1b74ea4b46a88cfe46e93130c51e6242ec7000605fe09c287d40faad85e6935e87a15e60e3cfa8180c67a38a74f5c58ae5724a0a5922b2d59f8876ad6520eab4c4838f29c930a28c05c16742f0332db4774589bcd23427a3e321797a36e742adffb0480a5481e735d9f02a9e32c7e94497743a067f03f04efc5b2887773a2cbb856a84f2a4bf455b60d5194c79c2960443b92c6d5308a764de31fc1ed62dca7c53a0f8ce5ba623f6fd186e493dc229ff09c6840c3569021e35ea186d0ce984b4b6acb25767e6e2f455ccf5ef1084e342139259f4432500fd42798060e7941a1556096cd4da803c727aceaec17e6fa936802cb007e10eb34b3c2982e6fffb19c622165bc122838bad5833f04fc50691f17fc77888f57dc142572160571ab4fed8d481715ef0d9042f08b5a0f111b0cd3f0c839c59f27ae36ef7029ffbce259cbf34d682244a0813f4d6e775fdf7a6d80d0efedf56db839d1499dfbbc756a8359cb84f1184e367a7c01d35486e8d13d2ef9d1260e1a175380590b0b4bcacfb1fb40a900be62739f4404106f10c431f742b895bd82343ec857aa74c009e09a80273f9cf9cf0b923babee660e9b3ced64abcd5536ff4c2dc2865644e510556d8e10011fe795362d2dfe4df205b1170e9ab545e2f5110c23eab9ad0eb162470df118c41525c2a5095bec099eb67cc44740d9c00cc9b80da918a57aa8628147adb4d79b5fe5df10c9dd2050540e63d62bc9d8010dd2e31106af8469c9b2047b9b72a0e3b6d221a0d37a2c1922f875a87912d43d91edec28866fe882c106db3c28aa649fe7a33615ecf499e865864060e81d1e25a2b931a06d060f642442feb9686b12627ba4e0c43645da4f54825426dc4d36c24212b764883d421786bcb5c437affeed6c513e3367e54a7c0a398032d0ac3d815d8bc0c56c18263a2bd766f5813a29fb1dd1e0960e56a2189772eaf826e3dffa7d38583eefdfd0ed9c9468d36660517a9df35dabe39c340b047c5f551c81be6056c10be7e55f07621b35746feaf9dd7983340d888711e1f4bb6885f8fdea767ffa2102e7d09116417df332a0791c88bfae0f83886dfea6e10bc8cc9beb498bb2c6c7c9ce30834ef5ec85687cca33fd4b0465c7d2e80c459deb6adddb36add7b58bc1656bff6b335f09a9d33400a946c96199458ce8029f7365fe8b4da8adc589234b29c948891456243be0946be0b8033818b2c6efde62cec5f7f0c5da4651016846060f358be64de60ee62cb6ef400aefa36af324da64ef50edb1259af53067e9f1bb0e6d3a702911f6fa5bb73ebbd2bb5df39b84d530b78be100c12a3d2cef5ab3c07d39740556e0630163d3aa4d6a0637215d9043145448046d37bb6578d9e93231176365a8078084d9b6c333a8f04e91fd9da116ec6d5969e80b2ff090dedc7186d0ec12392bd9eda831db89f3fd1417f5c2207eb23e5fa54c9d79b3689661a6b8de4e46b24c389a7a238d1cac1278d31ee67ffe04f9c6ea46f4810fdc7a71a2fde1fa7d519a6c9ba95b3612acc52504e7b0523322da3a31845b9d1268f0dc02e706ee907d15388b6bae9a68d313ebaaa480086c0dbeefc8244913167434fabd57d44ff7939346d626f790c4491a5959f841046bb61b89496f5322a8652083111186f6d1721056de6873f525841c86e0f33846d9e7e8afd4fa2e315823d749d85aecbf07bc76eca5742a38f1dc8ceb49f9e02d91c10b61ddd94fbdf1d386eeac35212f122ebb833ebcf6dd318f2567f0104e3f0224f6df54cdddb1c73f9d63d7bd37a1466700a802d70242b46c5fffb8e14b6b3db5d8958d6b6c0894bbacc3dd481720acef6ac707b0cb93f7d54f4142f465529623d79ee11ff893daac313d0888b9dca30c13d9fd78de32a258e7ee04f7e1b7956fe72177ee7a9273ab5cd8968176e41d12072a215b731a2d2fb34fcffdb52a3b59ca9ec39655b8f31d12b0c5795466d7fac31d17f774a8b2c2dbbcac78973d857a9d69c55dd4351170a80adeb728251498a8057e9850b7ca2c7f844cab4a6392ff18faa03edf9593c9fd89c8ba41fd93b16a3331f62ca3e90d2e29bae989ae44e5b4170f96616aed7c17f02001e5a24c202e248bda8b943271059a709ec4b9dbfb8bc0b038d9056874e3fd9d0e70f8b1b5cc61802513770f3c74011520e524bc7c60916af56f206ab4f8b0940c31143425f1b4b3414d83e2ba49d8f19c15a5ddea8c1060ea77826cbca7a9c93d8dc5ceefc32e719f06f65d5a322868969064422e2d5c0c08b1c5455166fa16d9fc8da95caa8499f6537dd62ac03901dcd239e23b7ad7058dc881c7081c3e7714828cbb82039d3da70ed97247c51799ebb2ab90e5c220c71099c71d23a8e989b6faeef8a89f622a16dd2a5ed93468e2680d07fc3cd16445c0741ab1ad777032b44b6c11066c0a3dab00913beeb41c694b5c97421ea3d9555c2e1fd625b2a168438cc2c11b91826d4a8079f904130ceaa9e81e08a63ac0ae2841d579bf5a018e7b768f70ffe7ed16938aae5426462cabebf119fdea29b942ca971f2233cbfdc4fa106f4b79fb036c391026c294743deb032961dba7aac64c398204f43de4c7d947c741bb62a4ccb05d281b8e786dc603a8e98062c609526c3fa98bac3fb8a97814f8655855525fc025602bc8645819ddac85ec42d74fc2ea1a28a2f7160f1f526ef3827326953bd4176811ff87104a0a626b276c6db93ea721eae10483f1db111c7751203275276975afcafcd00475c4d278c8a043c07394a6a48d02358fd6e176a2e9ba303b71eaee69db0323f8bfdbc4601c48563b2ea066063081d93665adb05d4bdb0fc61a7f2fa1ceed49f92936a8f2530ce1d1fb963f7b2b5c88ed66b75cc224e31d564bb71607ed998468705145083c9d98fe0f45b845bd8be481491caf9d72f88d017755ac672e6766024e2b06e26d980005bdc20634f3474cde992ec856a0cb83ba2295278e7f7622c43a2e8e7f3d8fe7516a2bbb0d98e7502d265e0955e33bdeee7926dae41068275fb568e3692cde6fed7546164991a5ce19f4cea4c23e7893964fd6b2370b053abf4b1fa545542e71ab4b4c1464a37ce693d989b8c116d30b42dbe4edc1801d6ee96059327565cc070e975a1419f7545fb704003640443af791fd8631538b1e42e70f59f102be915bfe807aaeca55b9907db9d309db3e363fc077d3ce0deb8465a74fe0b704b42d7b6b76c116f7e4cac24a3618820a1c2ff24b888040727463a1e3cbf6d67ded136b1f881445ba1112ad19d36d8b7cd8cee39d3b2ea29abc4240468bbc137115318de0f4f55057aaa41a30d66329f92d35a0f461b6dd46dec6373efe30bae88edd18a25b83d07e98377213eb8d08b6da4d4487c58440d64fdc311230fa26a2814ffab904b05cb81ae6bee82df82ad6263bcf84b6287c93daba27b8d125612b83ffb9989a65db36d3dd860296fff4df912d9bc2e7ffca2034dcb9a7bc783b0806e71f61f7cecc529a2c3a7052701aa305edd57fd1c50599215fe95c7763f233d3d266eb8d13050a2f4e82895fbe06ee42a8fdd6f39b2227f48acd4a8ad6d49d1568e070cfaf9cba4e57ce8b313dc938df5e543c5f525bddbdf2c3275911ea6b72ce4038c495c125936d673e94b48eb9195ebbd011899d463b91e374a06eb1c2b67f75bc44ee63ee2b1f12d2a17267ab5f9918419b8d2c74ea1a8c9eaec8ee4cc47ca8da27964da35a1f2d2b3b4f4a352d8c43d8a3d6fc2565b08ab2856cc46db33505bdce2b19b97539071668670c31854a27626ae2896f9861e467366c3d1c72d363658185bcc4b2759796023fa319cec41602c9617d9c2af82b5f88a3ae0a06421b5d2982d0c3d604bf583d9fa44640b65e7a78895dc54bb5c66ab912b3e960edad56f884aacdde6192070c7b1cf77a86434670671b7bc5bae6d45c3b846b52ed6378b3457b14673ee12915b2107742cd572c365647471e6b683af471104cace3c4a5bd17b2de2298264e8f76d539a90c927b8e9dca23421134fb8c1c87e8a95a60fbf160b08e0e6ac2908ba243e91bf4e398c5717cad1314a59ca94b88126d41d63823be4de8fedb942d21eaec14ab4c25e1e682c96f452d71489ac738fb818d7c027bd1b69a9cf07b1ca1257742c9a74599abd79d6bf68e0e21cfb274320d1c28d24565c1f2c4fa06ce78a8a7dad0f7564cc4a766c696c70b76a86314253ea8cfdcbe54ea93a663248506c386f3a72199fefc4be9117f177ed2c95df8b4a4043718d0afd5b77f5e9fb037b83f2759ece7cea76d89dd060d232d061004e0c210296b26ccaf0b35d8c477a7739c6c5d7f551720ad021c460a64c8d350fb9c2e6ca221feaf0ce9d45197e95f0390935fa7ba33c56c68e4fe509f164bbd79a97ce42704b84cbd4e9c1e42cf64334e275ac1947edecc45390deb63b61048b888f89ab3aee81db75db8fdb75ed073f18597ade2e0955d0d70f7be09fd88a389b7a32cda57d4532a520f8054e409118136eeab30fb7ebda0baed7b72feeebb48fe370afd07d297e066c50093d1b64a831f6aa4ddd29e31c19d3ab9bc8e3fab4f06c86a2b3c09daf5b0c3d3eaa56f8e24fed6bfee4a86efb079f51dc440885e7fdd6a35830b224e7322dd98df483c9f2d05d6b456a981a7ee541ec81a96cca0bf0e8140a03144ef01916132bca0601fd95525682f0dc8caef34a71c436202b3aed4a7949ee60dbc6843fc1960758689b4980e75ed2e71425cc919dc60402bac0412b00500f18e881065d00401f20d0060c4a01807240a00d3841cf2d3046ca551f15d55acc255c251bd7c7273b0b252d85beda1f21126cae6c5ec1d5c34134e3b618b07cf3503284aa2c1d64d6c6efab2ec29fa69cef5def5317c17f539aefaef6a94b7cdea5f9634afbaa2b3eeeb2ec647b32200a0130d02b01998b744a92caea9be1b7e28ac4b8da85b6f0ef82013ea3458f57e09a6acd92918c9aa3a13ed824339fd15793da67018175aa4ae6a85d8f921a79669aec3f43ba2f090b1b46a92472dd6be8a8b0b31063d6598a242e310fdbf0fd6b0bd2724628e784e4349ce729a29c269333c4db565cbf4c4a0e9cf05439adab3fcf0756a736cfed8284b4716fd9e149a4c87680307814b976308af5ec36fab4caa327005e58da74d2ede4d72602475e5dbec52307d22fb07b48b41e1978ad335c1fc2509dbd64da4bbce3d88b4c3e4533b6fc2c4157916117dae1eddf88dbbe293bb98596146a5691dd7a90bdac011b7f5c24aea21b58d4893ca8b1bc3e3be0a098077aac32f942cc427a890868d7f8f4f6ccb60b21c5f776b0867ffabb26797788aacf4f25935c86aab7912a8a925d70a50ab0c9d5012235084e7d3df5ca671c08b1b2aeafeeca30948a0a83aba02525a98bb4d4bb9cf2de8328b766c6d630805f5de632f34cf966a151a923875553575960a205f37ee0fdcace2167b6bcde69b0f72f364a3a873ff9ebc6db5765275bde526e8bb0833f4ad1454a5bacb0f62bc42ed5bdb3c7b3bec57e2e7eb62bd30420eac890b6d91c28f6a8eafa6763038d37d2942acebae3686f9717fa56abd1f8bfca84c3a720a27213cd2291eac89ce3a386946b7d8840aaca4c772a2b1add7fe5a2da89f4a48e437e042bac8e66ef539158a534180c4093e816f3ece09d9f34263206e932fd00375727509c25641d2316b7cc474679bdf5f56c1dc6b6aa35cd66cb1c7a7f9e4241e084dfd5a54f03a00bc412e1f9d4deac9f9394bef726ad5037814de9f321e8d3791ac8f11cbc9ca225a1b36018dd869cf77c4ad4afbd8684aaaf3de903f467b3d75e72cc68603eb50238af73c2f716be4dd086934d525770354dc6bb8c2557017ad906addb1e9470dd94d50bdcadb1e42cb3a22a85232b77e3bbef4f8ce0d6a913c355b0e6a6eb031abf5f8aec185408fc350a67b7cee43e3f603e314698a7e845714028633c114d23b53f638c7166662662466da293704687951da916bf926ad880d32f0b941801df08f94233e2cec1a13f5517f5fda208ea2588b0c04621f9325eef6928168439042dfdf49317dcf9de040015bbdbed050f0268994ec63df4514fef16db6c4204e6b98de2c4252c711f686f5be860fbf87d73768446e6ce0bee899bdbff1c5e35a559a8fea27c619b2a6ba65759ca6384c90580c575136ebba4aa91f17e52fba18c6de8fe4f88c2b3661290ff273fd2b1746e724d1c782c0a3ed88f10f7d430a9357cd10009861a5a7cd0402f727400c6895366f89cd0b4148ec35ab3549fff642f1e073bb798f923926fe4976b094f92f0ad2a5148e15401c9bc0a744e716be88340af3676a486f375aad6b6e4ca79496ed6a42d3156c552c6202b19df3688bed0ad0fc88e214898108e34bf86c6ea402d4c7905182eb695546e63889435f7ec79d436cacd25bc3950d382e944dce5af1098f987880139e4e7e405a8952d8974dc7ea48c3f04657cbb38484ac6b2b664ea6aae16c9ec01b9c1b10955192011f11798d2bfe68174e0d4705619e5ce4c7c9b19b9d439758d1ac60ccdcfef6a257e646f54b5cc967be4494e0f33de91c19819e340ff4725d040ad173c7ee68f7e3a2e52199519b89f6698b79c71973933095a4c98200b07b3bb17833ebb85f5a38187ad67b33079d5189c4c305b583deea11b55bc31772ed22a8018c7f4c2e42753fc6df45f150f462558a44f4a58b08bed5f6c6fcb1a075fdf0bad7bb116109867d625d098240bb0b08bc1831d47f8a12ddae08e84317aace77a9c39160db02cedc82e085b170385cd760601bb584882479c9ce928fead1b24a82ce20778eb2aba7bd4e8ac3fad499fff815108d546f8d0e90f5823b4b9f0807be5be0394d3599f2a49012d2b45ecf0c96c56a5c29512aff796d591bdaaaf0c9da79a70f84270ca787a57b2be63c853215687997811820ddc022854490e0e21303bba4685cdac966a08c27de4b6a92978e99af525d9e1cc359d401b6f917292f8d150a4b810812b23ba023c40ccdcd71670dc1938d0e2837939051d3764478901aa9694432440068533772c5df14e08977edf859bd30b52414201416b34fbe9916fdc269e16f4e1e1fdbd7609056674832dcd9db0bae53d4890131eb4433ea2e3ba399e1c240e93b6998dcfdc96eb063ee434c038e388a79dd0c6b6863cecb4e8ff87105769378038b01225bd2be0997aae6b7cd5b99cf2c986eb21d7bf5547798609eb6bdf2976aa3a0cd4d38e74c3cf68802066477c2d1de0962a015595900b6f858b19e354359b8d3a8ae5c410cc31bd30f56d4b4ed4ad1162a3ae37eacc0b84192856897d9dd6f1c7d06dc8a386db743fdc94fe2167daf8b0608ed080c45cec6d782932b5b7edb33e537ae5d360bdc2c96f47befff2961d3ac8627bafc04353c3d60bbfa49fa56f1d1955091531e18b761ceea8f6c6543a449b4180b246252c7f184b107da278410fb1130eafa47da2310455c8deaae26008c3dcaab5d191634dde26ecb251e10b011c556241d710f664af2dc55cc186daa9926faa53202db1f423db1ced85ed194ac09561c6394a7f53f332d31e7cb5c79fbae6e20c855f66ab574d3bf96516731b97cd51e5d05333b90fee057920d46f5b0bc63ddabcba1d9d6b4472f517e231af3b9ddb44171fe60f08d101c22a8ca99041ab04e48d7ab6ed49766934375738494b381d09ef45a6fa1ce1dc160d19e3333f6b0400a04579f797347c655b18449dbfbebc75d5bdcd58e306b583c95087c405fc5ae37ad8ef0da45512341e7c07dd58e374ecbff32fd14f26459bc75e72a24ac8ab08bc492aae861cb413318dac3af5a08a702d186a5aaa1f5c4011b2c06620d8e670a3be72c450119e453473a5a34934fa0c1e48d5bd0e8c2dd588833d2afbb0796d98bcce0c3907ec99d4efaa2390aef5bf48056596db23227a972cf180bf1294b8d0ed9c1794e6ee19de1d2a0d65ddb350a688980e64ca7e68a1133a3dcc6d20ead54b773b54ddd4dedea27c276bb2ca14fd2940ef7ab6337df996ce5e8f3b01bac627d8765e03a00535339f0a63e581430257f1dc01bbcedaf41f2ce4b1f3b25b28e28808b5c1db7461c4cd1f34bff1ab1002360e26b3a800121a0dabb1d5a85ee6ebb7981e87a982ae95d355315450e30b88d29050fd15809f09881062ec340559bc34900cb04132bd6edd3931655d4d33bc93f53d0fa25e6a188b1ac5c6a736ca088fc2fd5c56f20ea8d93277696b704a084d7a83ee5c0fc5a93e6838453abad7ff35284ef763648022a6c05dc5551939ef0fedb726f78ea8af0ff45b94be8be0a5e393722908ec5fc53ed438746f86d2b8232eee0b99935d7d332c713bce85d17f90cad34419c28e31ad4491cf2ee02ba5c170eb64c091ad2568782cf9cca5e1e782286419088850730c6950c5d4bfe9777c4257e1083c8c3af179caa2b94092cc1e83e500d1907288a23daf327a7dc8003d5d3a51f253848c4682ff56570692abb7915ffde09968ee9c3896bc17a87e51bd840589ce089796bedb284d2a9eae488722b8e0760f89982965f5c1c088ef6aec51aaabc24ddb4118a9801e4c2c76c32f05a54eb8b86b355f48981e63a1207c5c7387a6f794f2867ae986cca7b01af5721814e7e2168aaa3305961ade4c30b0187cd1a8f0588b85d9d3121e7a6133ba2c0b4fb52a80f0959c57056f7d37b00a1070db33ea37f02ad1aed8cf68ff2cd251641f44c6f4dd23c1321295e83fe30b9385cd6095bb48c848982e0a2ed2ca8b9e5d44104ebd29bc35853a1e2d86385e161948a5bea8e6422260b64f00cc423624f46df33a1c39b72cf7d347584922ca69ef11055541f5c64573087913c158ef3a5632d7fc2c96a592d4ae790cd1d452a0bdcdf446ccef803750b3ef3219550b73330283c8007c0b000c1ff7a5e880571f7e6c7bcf0f63a94911b0dc0b6457faa1f069f8faf44985501c65f6ff983b3376160cf21b176633315cca0bb9ad84d98e4ce33474ae0c9c23f32def923d990f79929ecc32dc3f20bc80e832ad265942f24c72b0e59e5e9fc563fe2e7016ede9313ae74a30ed7b4a9af08f9be172d68475422f0af5f18c24206695f3dbd361d8cc6d6b11ce6a5fe7af5a66605e32bf4bf4ea389193614555fe36568858320c391b272402331425229aa2bd778a34dd5622d5cc38b46db73c24d8be44e7ec9927bd1b7f21f143c709b426efbff6656a401e2222d6db24b22844c395b50e180ccb80a8c0e981167569863eefbe1710851d1aafab7341d855bd6f3a17a4d867b79095ae15d48de7b81bdff95968dd78b19bf793c15313e0defb9f5e4918373a3aa61610110d4fb45b87b3bf4a2fd5d531b2e22cfd3ace9707c74d4f11b22bff372449400a715cd625175d598b714280c3580274776931c54f130c93531d92a68c6a819226da88784c9f09314e2bfe50c1379368debf26a3d542b968a08bae9c0108ee114fc59ea470f4c167609b0fe479bd0c9095ca1b016b6dfbdead25e1ad2ccba350ae75c1dd5b7393521f05c2517b0acb0ad6e24725cba378a84a2a4c157eeace83300d7dd49654fe6d370d809525023df4ddd2a634c2ec6e01f2bb17e52339ed7859d636d2801941633e3a392192e427cc51339f748e0a246f1594df015d204ed9b88178841499d013afbbafd2f8cd9aacb36f705fe9520f03937e37db323329a2df34689526fc6beda1c45885d662fe9e4de3489b41bc6f955c6d80589b45d16125eae87c42b9b556f582a069c15526bf93e1050b97ec75a68d61968a75fbc5f5616773380c7b4c7d30c129c5b89b24fda83542c808a70ecc89c0522804578145f7a8a33f31d60685a95333c1ba022cf6e39e83d8e34db655ca1276d2d09710c78814903cbaedaf152b6cbad301beb49b613684ab2ab0e1c81a5355a5804482e2f954cc0ba5c270b7be44592ea9e51e3bb59cd2bfae029811db75650e399d82a9dd76346c50e09c4fd9d16fd7955239fb2532efd70205d07d6ce1586f5a6b1a455431fd1071f7886204b088e989a566f8a828f0e1f8b0161689628c663e0931641cb854d6209b9852f48f8a75b860532438fdc7154f2cdfc1a3114ddddb88ee90ba89baf9555b0a85ec599630f0a31705ba00c2722b1381ca157a08868067afe2235e0caaf1e1849da6974ac2ebe178db9eebb8b5585921bf6d4fdb857dec8caa88348d8b5bbc23723f447166cef3a69ea0ef96ebe0d7e5ba232c88d968cf642881ba1c124a772fe1207c03124457ae84c89efd7aad9c7796a863c1de541c0e0a69f8a0441866f55b25f389484a4611ff757d5a3a6622e27206c3dcdb29328e1b8c942aeefa2664d237d6fe9362faab5f095d9d284fb47ffbdd062b7d8317e5de6727ad514f281d9f491cf30bedc2445b6ec4c50b1b77f40a84e962336a7c44182fbb983034af041a3a00b18c09a692cd45e7fe43a89d3e9f2acfcf1e584301c733c60e7ebef5c1b61c11ae3c334de4d267fb8d52507c954e7441756b88a7d498d2adcc5dd2899c63955565628f98e58c63282a2d1c3dd708cb5d62821606e0091df53d476247dfd52c44fc169a8d5814b197d68e009f87e979d241af42d123439efc988825a10a900e4ca2e8bbcf29d52d753befd9935e8e1c068745276c18891e91626fad2a0c3d560b102a43d379f0662a61d9a89bc7e63356a90eeb75c57a9116e27bcfc75507783d05dfff099e52ed268e55cc1c1f372409006a438739174b425533b990c917d1bc7ed00f64aa8f540c457cb4f52c829ff90215fc48d8125c4d0284157af4f0b08dd4ac307192501f515390bf2b9760456252362d0bbc405724fc4d203949f5c078a22ac71ca68aeda6f58f7c94c6ff000a3ae5e81007af35c67e24dff39c9082e75dfd675e1c3e94f80f6075b90f8cfad6177a7af1fb400d284c8b30dec64b5d88014a1cf2d90893cab72d473aa69228dccbc80b8d55ead0061359705d27e4f99c79f0cf96860b0f5ef8d43517956c23e1fb65a93217bd1e80e97f4bbde5e7d5dc33dfbf9ed112c040f8a307315cff29be5b9c2a2ca79d7051de11c8ff073d2d62483af760c4bf9c6a540fab606ed3003f0af49a537df981f356762990f6e0367d65e83fc54948b1d20ada89f080c3867e3b87ef659ff333fb110dd9bfd89b1e64390860bd36ccece8d3c084cb4f790d3ea1e112091cd56d9e61c57c000fa34b77b54476874ed0c17db9a15a4f7a23a3e3dd3e8c42f87260df058099e974d9e7f3be44c8f4e9d8e70a7f4e7eaf647107d6a2a9b798ee8cdb1267f053b06872372cdf1977ce0175e5b153b683eaab4af88e9a1baba1de9b28821f55c449327708615c6e3940d23a4f7287da15ab785973f03aab1b853b958ec771dc7b17ed9660565154a9c8b2e44d49649920f506c0f327182b31540d5b6b1a13e023e262bc3c80e2ad732a5c65262de78d4deb1a83e92a9b77baacdfe9359544482dea7a0953f0a1b029e088a449a5a20782250f2ac40b111d5665f8d31fb059ecaeec0c7d501a6ccc7f7eef0e7a126cc37c795c7c366be956bd2319f7ca7bd9f09cbeaa366ffd5329b8d6560059ddd10f8b7837a0818978d4675e448049d791532704063954049c6fecd6c0d44b3271ccb38ac9a05bea5c866763be408ec0ab1c04e71651a53f692d57dda50174eea2af37f6beed8f574dcf7aa4d933b3319eb2bd3fa79e728dc4ef618bca34bbc104a1efb7083d94fd87bb9a013271b43be1c3cf3ca54dcdaa4610087c261a0f20351e922414f608d9a916b2aac96bed3212b8fc80216d5fc909c2422a7fdd49256f15c64719f9c5bd07130cd8eb29c1c8042154cb9dab912e6691a05df8eb6b0f1e10af846f305cd779f4d36bcfef4ed7226703b65079dc7da10cf056abc14f957bf61b4c7de9a51e2b142f8e87c5cbdc6a317cb66f9f538a9fe14a9a8444fb599a307107bf0829e44ae51d6559e8821c0310113dacb068c0395fe624fc5d50afd99aa93cf6d2844fddc327025535f9037701594ab0fcb612a6ae54a8d94700a412e7f022ada2b6f1a2134c685d1eb098bcf90667380db4aa1375d40f18d7ccb3ac9f0eac496e839f806ce3e3e34b961835d99199d5460c632a23c061ec2111fb6b5342e77b6b63d0342a2051c21786ca713531df32193ed44caf679108288d5ece4e52e87b72be443481b44cd669669e15383b4ca621667ac03edbaf943dcc38eafb198c8282f7dee9b33e4f0263996d34fd296bc508a43dc0207f456bb3e370d70082cfb1f24ef20d3148b1269b34959f2e32544a44a7f307af1aa2a5af82eb602c3f785b64744b3312f1c61eda2fa4e90208b461a94466e892acdb52db058e9504f10b31a21c8d4d9dfc9c9cbadbffae255d69ebf45c0900ccd49561c720cc036d675b775c90aed10c695253310086a59b4c96734c333c71dda6bb313a2bc17ca468862043cec18c2195e4d835064abf7f7f4232acb6478bbbbaa4bcf870d132f3463938055866acba97815ed3b935925cf55005a8b337cf0468cbc70fabd34ad024bdd4ae2361ed41acf9818fd066f902714fb581e9817ecbf590179b7aac52f903e9ff467649e8674d3a432f2350ad368e0fb49a4f13cd8051be198c48830037832eecf03a5aa2ed18c4505674b7b030fb98664a7b53c74c3640d485be0cb003d54580a85c94e3e52e117f26b99e981ced115bc284c1706ebf1b4cb1fdad1b90c8f7517eccc515545a0b0268ce61370a3f1c518f6c655d1e6b27b87812a63d81df650561b20c894254302568af4a4edefc76ec390f1ff1fe274e5f18360ac1a74c491aea411595fc3b9ca889dac4289f7d26ba4c8f55f77bef334451c8dcdadb1269d3a347105e8d69ea6414c8735784db84ca22c81f5f9ff1a5faec7f1000304a37b1c2a0cf6b2220b9c0a508a554dcdb46b9c05497864cdaf7e0f66adb849a814cc9b39781e59c9f29ce529680dcd50c83e64c8a32bca678a0f6d738fc2b7bbb5ff18d9af8f30a3cc73c0b03a59e4bacc884d70f91567d74d4e304fb534cef2e445c612b773ca5633addfe4276febafcdb1e157f93ce70eacccdbe571eae8cbe381a93b949218754e13a95e9488506f5310e73c35ca28dce03256083304da47bed428e58fd48cbd64e3f02035fa706c370a741ed715234c8197188edd8111b4f53830889595ad32562ddf78ca7b110c78b25df5c4153ae64ad4dc185629a1270443a3bca108d873c22382b9abc5b62a420e6f4d578b4575db30eeaf851c8bb50495bcb76fa13d12b61464e01726023f6606c44251877a2a1cd42b8e71a3e62a84b4bd1b24ee325dc52283a42bc105dcbe5746a101b428eb24a501301dccdac048f4496670164cfe5e259ab0592622634ea2b150e2eb8a4d792777c09c0297b4dd94a8823f609c82c6f5be12d6752c06019cf98ef5d311493cb2ea6bedd536f7e5ef1980ab606a7cc4222acab88b6529e3314cc7c1ab17807a228e883c1a17b31921c9d0cb2dae129e4a1c494ce52c2a99a147c3ceebc91029fd86ef371213cf76d147844e6c5db00088fa603f0459e99cc087b3977858966c3a1438177776e6596e537a30096770ceb23940ff550282f7589b4319dcedc0ab7ff6f491f5262411c65c4f397db70b2eb0c5c51a30363233c220ffc985084756368bd119d6bc9d8760ab17dc3bd8d23280ebf3805b6c64773444ddb1e44114b8568296efd176a9dfe8de8dfcbe931de8a9db794763b58447bd47fc98ea7a7e49b139649548aedadc815423015edcc2b3c8d64caf280e755e03f2e483e2fa2690422f5d36cfdb0ee30cddc1cb87ad67dfe078dc2a785edf8386244d392dc755324984a80b5d4363283c4b5aaf7157fd8a4c9686defc2c13204025e121d510b742d7b8cf6fb92ea9006ac43a34240a1e981bb9bbe42127bd45485710de42ab3590f0cae0a5dea46611b309f7efcd2e9a3ef9987efa2a0f1d5ced3519ef11d00e0c8514f7454bc91559200d768f7f40c28a99390b96190a5c35809575901480a02eae7801d819bf34e2185994a3cd1f75f3c55203918576dae0b0071a89a5bf5d6d51f5601e59c8a6cc9fed21cd734a5266d3191db09008280560e8846d54d2baf5d11a8099987a2a54f4601ec5cf7a12cdcb20ecacd823b414e2267d9a9f52a2ccd026c33222b22dc6313b8f13618ec4cdc964f9233766faa0b6d4b48a09565b9c21b733d2259d07875e8f692a23ce8211b7d4ace6481bb80e12c4a3f442d529a5c1fff6bf11c7db8221442194a9c80153ec5bb90d32bdaececa2535ab9903c659cea8c17d83e9651102f6f8806cc968a2d7957c7c437e8950c296ae29d5eac9240722c29a0715aa275b3828bc6db6f6a97876845eb845991354f595181e2d7480cf335f21dc6a14540f045f4bd212dba6d8d594bb8ade872b9ad71867b3bebbb88288996f2db05d8c1dd1b52b4e23a176fc8f791b10806364d76d582d7fa975560c46f2b7758e114163b212494ca84b9e5f8cd0ff73096442be1ba0cebc4829df6abfcd4a09f590e4aef85f0ba37ad77cd8435c8eac564c49a599118e5e6ae659b2da725dc6b47cb36abd9260298d3b01b6e1c82b2e3c2100de04f7254b05313b38259a5f70c8befcc33ab790c296ad1e7924b8d5a2d0de5d52e284a6c76955cf6d04aa522c5d68b12a60a3f28ac615e55c62a18d1dc00f0a1e50c5127a4c577d2ee7db4995a9b4059d661460ea51657f63c6aedc1ce69733d0ee16f9f1e5fb94ebd001dacd96813d1e6170da590d9302423e513c02dc55105eee82b0b35e009f38d3307a8dab960a51a9af673a530d9bc51f66bd583f92aa4c0211593a09e10d38e34a2b7c160f47ef415ba91ae901f1b8a103a3f6631a63589d6d222279286442dcfee5a5886f3ebff10e21d5fdf0c69cdc13e2c4e1dcbe41eef80bb1fc0fb06b3559dd0ef6388cd974ad67d462504d521797da083e1265e4c324833176c7c5df1443fbd3ce126b73941ad3c056ea3551c5b6c12e8ad0e8f0c01d8b2c59fbafc13700405f86a3005d300987521cc9f027c4dc8a505eae9f21dc934e3496069d4e3cf15503b18dce88f6fdaaf676546a9b5b50cfea8ef2e5269c009ca49a76f971cea62226da0046afde8aa1c356be40ee39e41c0d4b21c6bb0d0d767a3317b56d919462ef1d2139333b7a1af9486b1cddb178e2fc7da2a91cd1be6eefc989418d7f65f157989c2ba07504a2256355c0e194266b7c0034213c280eed08a129ca647111aa117453092d6f4fa81516cc3257d200ada810a6cbd5ee23f1ea2fbf8d9582336e6b52290ab25b3bdf1ea2e53513c4c2ae7b53fb08153af6592f15682329ef87a5d745b75bce516c3d901dff3729c09cb829a429efdf42b46cf358935a22bd86e699942c7fb5c4ce36c51adf85caac459914aed80d5fe6d1471618c5eba30d1d9d0fce2602223f2717d7c021304e8c520b9d83b3e8b069c7ab0ec5f3e5d05ab3621e4881c2173c5644e93ac11ce981fcf2953f1136062cef9f7660a051b15cf91591b94e3216c1099719a163a65bdda771cd635fe86fcf58fe695f7520ed68284346882a5aff9e9b99c64bc93e5af8391646ac189259a641492525c17d369853bfb5d77e21c54cc360100de2dd745937b0a60a9e7a7f05f5153b552b585f0e095b3b7674e3dc61cc7efeb8ebf1d78b982b784b8ee3b55d0f4b692a4f68d0edb3f3eb42ca8e05d4ef57958d3004b532c803f0a75d885a03745be0ce4dc04fe93a29dbcb60aecc039fb892686e94664e0955fcde4d3425d4445c4286a826ca57478b70f00d02052eb41b26e18bb5b53cfe9b60c410a6a2ed36afe22c0cb6d792959f0ae3cc19f11f3e720d5f0e899e7f04b10fbf7461847c86c2f333cd5138baf982f01282fa43e132e61ee5c1e2764a019426686efe9d65f734be3b05709330fbcaf60820610fa79ad8ca0822e2646aef1068e07b8ffbfcb5949c245c612071086b6f5c4852f91d54888862af54103c6b888abc4e9dc9e07415bc7242b650b85b56543439be8f89dbd8b098800262b95fe9924c2fab206be801f1bd9b55a6af425a81a5968fdb0c2dd2c6ac15e7189a0696008e22ecc19bd7a870426e7c533f86ac310506406d770e5a285af7faf7f62f52889401ffce743bcce06f48dade010df2d696538acdfad8f4dbcacf34ae55f9a21db285189d1fcd1e0dee96029c783ba6600a88211d38430e1c975ab048f6b146414a47f101fe7a5bd8b30b5027470a9dffb5b020a2294ced1e5047cf85db643ca8352beca578e096d715e41d80c159f1860c4eebb591bbd2e0615c8e6646d7e0750e7bee81cf0f3adbc81823260cba530bff0ccf02af3682a8858e27226c01b94d72d826863e8616626bd2ab54293270679a25c51f0db30ef9107d0df755d3e93f27e8908c37f19def5e87d8507d31ee40357e8b3b77085ec1275cf28b1e8154c106d3fe50e940110b607ae506be1878d56915a62dda4c044e07203634cc20006fd132cb5406b5c54b42b923e93f4b52ac15b6abeda8cabe76a97c3ab5aa748c4db96e311e4f7296ed01b4c68c44dd03fd24663641a97da7392ca2e65d4cc5ad5ba6f739d05a80762661f697bf789b0baab2509afb8749f2971e773e4705784e25d71c5de42393b5358a739efd6206f24636b59a1d2d0b9e2a24c1e824e9551c96e5baff0e678ee6cbdfb28c4a94afc77ccd9814181ee56610f31d084ec999f97fb349237ade914499d938d07d854dd7d7a05f2bf6c13db6bdc7c7a6c2d403997549be166895779b8588235b5bc81683f5b7fab9184f3b33fa8efbfd88df0764baae8b8369c62d0b06124eed54fe2c8a5c9adf41ea1053618016aa3a9dea45ffb1955daa00589bd5934bbe8c941e2b999663f4c5c479f70b448b25925729d6a0efaa110d1439f6a36e132bdcac90e88750d0e0d99d1c9c1092eb329426b87b4c598d41e1432a1d843b0525b2afdebda6fd39c50894c139a0b36e72f97ed902b74b9f526f226b4364ff133e4899762c61e337a24b6b2342d21ef8bc348686fc448c928d369b8364f5d4feb5d044ef6d424672e17835867bca451478dffc443bf18ce6bb83f10c570c40f0cd805c15a278e44b07304c87751cdfa1e00f0253d4a8b7739bd71ba3a86003d6b7c280a3cc163eb5b6a108cc139023cfa5ac181b340a0cce7c2ad11e3d75084a900049ed5330213b3721dde8e1e6e580c93667bc9a1a94e42dc6b0bf61c56fcd58669eae68b48f494489999939e231b2d3ef341233c1c694f57504f2e3700ef802c4926efab32f13e59201fdc03d2ca0fa02d7512bcee47d67f8d8069da5bb80323cddb6a1c5736fd2dff412b94c0cc1c008441e22c512a6904c588884b86cabfde33aaaabbb81881c539c838b245f2aae105ebdc7b475cad57196baef8dc109f13d3cee8959a3204d5469427d623c408f2d786753553378cc8de37e5fbab74a73a753b529f7aefd1855ebe96fa360e545efb6bbbf2cdb32a7f70aef20cf2d57865441c7fd51c2d90b4b936308e55c7a0ecc6d85ec375da71786c2805e5065b0c1aebb47e14efa00b3732da639aa72e5c1f8b37e823851bd9beea842dfc31a2e89e7e6b3fd03aa2395c75c40846c28006dba7eeaabdcd0cdbcbb74267b16aca2ccaa29daa73f4287f318ce34d587e663c92cb4079b2ce6a1f704f27ea7cd4971398995a1a1bea17aa268b00c2f4a9786fa2dbf014af4fbdf4c7772d6da91fac4b85f0b347e09ad8fe3ff591a9fb7e0fbf9fa0f2d12f197844d2e75464c4e4968a9fb95e096906ae637f5c4dbea61a2438f1251115cf451ad29c07432e19557e1ebb6ccf711b3436919ed28958e47ca4fffcaeca7247af5e6f4c2a1b3df9ba12f4b579ba401790d71eba3bc769f458235bc65c2bb045880c95afb8365e1ff97741000d4b8beef72489e5cbdba983afaff241e25a7c3d88ff8986d2fac2aa6fbb96b7d1929a3b875136617b01e180eba9923b8a6c0b594a0f865b800e57f97400c8e798c9e817352d71104f47f4fb886244af698050f370d4c61a36456ff76e2067d526b957790d02ad5c0b26187352e99658a5483f41331e4b5aa022817e6fe7a9ef6e4e24c83ec1580ac3734dc750b57bd794f038136bbe3356ab455e985197c458060ae4fedacb2ca6762ef1f211e94866051c85f57e6059b8d850d57d002565ab2e554644b33003d82ecbc6a71407304e35e62b3055b8cfb2d4fc05313eb8bf3c27cec69bd9c2b49b50c85e4da352f81cb6a469106d83ad5b14ef0bc026e982d75b9437a139c5f967ab7f58221fedb4b3b5e014f43f71d731d842b13d347baef6bfde7b0398f18291aa2950bf2f4d6aa706a6cb34441cf47639fd4cd8c61cfe2b1936cf38b44731a7860beab48fb25e53c902f38c43263ebf5265c8abaacca69b5a3939e6824dae381528f66da7ad61ff488ba48311f40db9bedb9fa66877054b52d2182acf31618e9d46cc1e4dbe8b887f50b2630090bcfe73df17eb356f31253f64ab46c404baf04b7a604e6a2071054d9c305a0f35eb4cf041e9e0992e4a9f7611f84cd1813309b6c168906c08dd94ca5e52c3e856b6f78d62c727893752a4c8b6f01d7b53b54e7400c4eb1e1d5687a300c33db787efbeb16882dd5c56b8ddbbd86fe3ff4891c39fc31f1d3276040fbe9792bf89aa0e9904307ca1d5ad6466d7fdb5b2686c99cd9ea6d5a488203600ec60eecc2cf6692a3dc978820e432d9f615325ff284c286ab52a77ee64d14fc2e2650da0befaf29a0bc31981d4c435443093e33d574ce89ff8eb30e52b7d90bfdb34e949e57276222bd1fdd0b23442ab5f3b7b838c1b627e73e840c5c23708c56cd84b55680faf497cfc95046f4ed9b42e96e5521e2cf7be7e4ccce08182ef90f8566acece2ad212aeff06d1a098b5a5e3c47bf18057a87cb479f3587095da2022419b1118cf4044119b19c60300c1c7a096e5b293c5636c5b1c23f0c7090ddc4b68a4299b9ccbaac5f13c8425929e606c9bb012e97cde413a3df92374d5c3fac0d3e481bf8cb32a781c7e4563486d31a55e9e93228bc97fafaa389b8e8ac981feadabc72ce5df0c6859c845ad279120dd9d31a94091fbffb59a4eb25171ebb7f21671380a6a338ddcfe33c8dcbbb1d8e1d2cd0654848cfe4540453950047d1f5456222c00f25c4a39c32bfecd09fe4eed254ec2e7b17053977e6516fc47106e409283a2d28553270c062d89a383ea52d3f982466697f15255537704ee3ed35f436326d249363896957344b0adfd0a53757cf73d6778d1bc5d6ae354ae501c5f3cd9f204b39c715afce3a9333f5063233377282d5936dd577ff0d7f6fddba39667fa520842b50e28c746347bfd1f4935eb044b772c738a8fa7cc223408fb1c3f5ebc02c0b79d6765db227ce0cfe9cc9956063bff34f9e9c9b8aad96b1dfd61238223489c46b27ce4e0470beda30a4200b1b0920d6d472f149c2dc4bcec5d0104530b19f3ba3bda9137aa498a74aa897c2e41200a1e2dc321df3523ec086f42aa79dcb128c7167e0b83583ce97313c14ee41daf613b12c2c103533ff7394e6416d2a79732da31b7fc82bd9a6a8cb1827d158f315a2cb100dec1e264cfa88736784b1c3571838527fe77de3e1ca67859ba1f0effd795afdfb16b20b187253872f266bab60662e77b4f5853d141acd46231f40f030294855687839d8005c3a23558d2532e4dd0a99cf70f85b34141ab42bd0872981c47ba26de5ecbff0968d34f168b426554a567923f18d23d5bac164e48d64360d7cafdb5c17c23891f28689a10e8282d1ab88bcb0448c7e90fea5e1d8641c72dc678b0d66702fc219367874210a92b1f5946794d60bb6f51ff914063fbcc55df4e8672053061f105432f87fbd9f8497212b41a0e70c65fb4a4043aaed11310020a39f89e080a116dfef810d1520fe6ebe5fadf9d668511e1d83149f5ada9e03446e1e68534f87aaad1054dbeda754ba0a688609ab386882ab8f7dcbc05b548075a2da6f4dbeeb650d41a9bd220d8a3af9fbc6027fed704a988ec57c321b7c7e69695de9843501778ec7658851aff85dd1c17226a49dab514e4dacf20fe8cfd5e67415b25005b8e78e7ace76412ab7ca7e54a6bbf34fa4b7eb74a9c39b4c60ad378574ef8f10a906b28cf48499d96e722b04da2a22b04e11dfabcf1ef3602624552af1c461172271f36d421a0271e8d39b0c82328641e5f1c65a693527f4e9f479cce50bbddfff052004e488bf4ebc4757fb24f00d609c8b9a961c40f78609fde49a65cfa5c74d1c055e1861ee04668f54169a4f1e9ce97b441eb9a15509dcaad5cc17d9f5209381ad6228e97136719d471a0142f2b1c0dbb5b861bd54162de325c6aa6c4c30c5e8067cdd5b20d2df9346a6afc4a535fedd210dec48583063b40cb0fb08d37a81d0ea12f5ba4b61e9aa3c7705cd217a9406c70c5f3ac6dae877724690ea9f125688ef1136bf3bb3ee094c7daea2834ce31de25ceadf154bd1ac5b37419cda806a3567060ac05b0957a521984c0a1b6e590a236be15f480a0adadf64aaa641a8fcc08f5f12351acf3f3d309cdbf8c92266c0e22b9b3ac93ddf4e7f61c49fb8e5a84ba2b3c08cb651ebe4a86a381e9925678848a7cf881009082a982b9b74c59651d07e79d121319d58b213c28ef9a65ed1125a875bad73395bd72c081c946d417f66ea604c3c627eac2caa346f80fdf0c1af2ef0c40879dcef903ea112d083620ead0a1c8c71208ba0400811cc3615bd2a21736289208eedbc5aaf29047ee455e2b7e9a402ef26f84b59485e4b8beff027a7f0e254438acef7a8a57ed891889f9110aaa201e81a3bc5bc4be456bc8c95a18234fa097b4e4a90b48e65567fa3b62661bdfc3fd83993f2df0d3f293119805b5ec545881e4372ec8a0fb3897f3e7786795ec0ba262213a5ba730862ff03c12f01fdb827ca1cc540ba45f1fda17a14f8fdc9c1b840b1b0ad5840f5d50b71b01011a0e1b23b02489bc681fffe7f806bcca3e8ac1d52c898c6b8c811c88524a1b11dbc925f7223e8293b50a61226608911e79d61ea4eff0bc4e8ad921b987833923a9565f24dd85a8f042bed9d610e96892b8391890a7a41f68d40d8592fa11e444f38a042a23bb7142dac60dd13c589d153bc7bd6db30bc57231b634060ab3edd0fccf0aec6e04da91dd1ca1de84854b4bfa13331121e6aa8917eec40b5713e064a9a6b4346d3ca46b85a38bc4032886e2b97b2eccea19d7bbcab1bd2777975339c8ce95b66fb09267123924f5a1a2701f709c2ac8865996d352e48776aad3a5f7e46a0063de3668aca46082a306999e1a3ac3e4d6144edfd3467a1e886bb5268fb3338eac503890e73cc202dfd0dac71a6040c7ce9764a43b10e27a7fde9526eca0e586b7ab987aad0a6c691d8b253e3b5a689412039a89242aa9205b9ddceb11222c1f8fad062be3cfa0075c3fdef2c05c1de6fb0a1c0962f164f5027eabf656d29679b1feedcbf0d83b8b468d01724a3f44792d088a1cc3889d3644897f3f408fe81ceb87b167f49ae387c6473abe88d3edd2419a3a9d4059d61c703cf9785852f44a7761579e7162467a685fd0f9db571f832fa4955f8062d66e9391c2017406eaa84414d5f0d98f1522be344c868dc0d57c41ce387e12a49cd08338a438633336e5c96ab0a7c5d1b549dd9a1027036a5f915b35893c74d61d1eb1452c6f6464be077ee17d4c72af14159018f6c8df19aede7987f6ffde107805acaf3fe08910b50fa8193239a21590b860f62e30e053ecb8e0223a3429cd5b01ad67126f9e9f6001d76fdcf0928fa8a15b765cf27d19c3c7d9e5383e6e4f30aceab96ac944721bb741dfe82614d4970c413c54f482ba62b87465f2b2f813d0ba9f4bb97c02ceefdf81d639e1d8d44bfd9863e1204c18866282ec2a00f66a48c8e99cdfdd7714de5bf9e9e88890534dce74f2b02b4b565bd4bfe58acf58a1478bda254878a84d30be1629b4af36e6eef988578ce58ddb1287d9b240e7b1084bb7fee6ac035facc221134a2d69a57d69ac84ab9200cafd726c2ab2d30797ce6119382b1e8196e5b05d3ec7ed600e1aafe4ec013339a336537a8d828c29e72d49cc4ca1b4bccb809f49f6dc0e4115bf860f5de0b225ae100601f8cc181af13e3cb6b5f8fc587615cd6476d84d2924862dacf6bcb2e4f3628306f75ba0f3d6105486ffe45029fa1385b6626f442d4d5bb96d893b689c179a9faa9350daeb463659a8fa9784045a9a4fc28904bbcfd6de374f861c6907394001276e58b78884b99b35a1ea5a10b932a97def18446b899886c4c8a3430c2cd91378e85d8d03207ad36013d8abf564a58bf20445478dca7b50b184c4de01ea96a4a4f16b4f7329460e7ede730eb82b93aea1af22a0350274d3c5205a625229f88cc4b9e21c356a8524e4c0f6e390677d74a6bd76ea6505328e47a239c8676065fadfac508cb9c52aea26c10be7c7204a19af3af4ee03d1c8e1684daf935d3a0fb2c53818468eae0e2f08d1135f8cc3133ba90a1913d7e4c22258487d991ead6ae5da78cf479a64e6262728a345a7155c2ad803b250e1c08a83adf860562abb2fc76194b4fd9c3bdde2e07aac023dacc90d19797d15325916c7f0249aa7e51b6f4ec4c5d28678905e452b4eb46e230b9d0f3d3522a03b627181d8cfd6c4de811dc7070eb383767ec254feffa5ff1a1b837b4e5a9d89118842c58985ee9069628bf705479e8648e957ed2f520a4be6d6810f46ab1b86441efbb5b7a9005f52acc28ea65b7ecefec804644a4a43f3e6d9daec670ce11b7843fecda1a46dc40fce2dc6c7e11c7bca4a5cd41b2a5d6f709d03e4b49695d6f7c4625545874c16765c29ae2745d174120813b5f351136ff294bb2fde7c9129685ea3e27243f85a445b393ff500d00097cda7ff559b84afe751e8f7926a51af066e469bcb3b9588e6244d38da6bf680a4ef19eddb8522afcf577a73f5dbf9eab3057a85394f959a929da44b015f00d04e230a8fee06e9a185a99b574b511880a5c2343f6ae979fa09f8177a8e9977c1503942036720b244190dce8028c81b083b2e0567644a255c3d3ec0d261c97b3c3685333bcb22e3ea262eb3955a0c85f74de38b5024db374eea7398ad6bc415eb2e7e0236bcc511ad716cf9f16aff8b04857f44ed958607a831bfbb0a4c6fc3787384e93cc266e0f4c6261387ed124be0be8c81d868862fd21aa166c233ad0f0038ae708c3d543c48054f19bf9e6dae40c87626bcae63d2457bb77c5b0848ecf193deddc5a193a459cfc9d95b692a08059c72b1a7c960fa96daf9d308a0651feb0d5e3b47b728634591289cae9197c26b80af857106cd71bbfc708b2e5f4f9ee9105b7272fc9f52f423591ae9b8509c5744aa4572c6f0d2c97dc9323d0130676d68527954d479f866c10dd125b262ffcb2535dd8cff55b5a70c3801ee706a35931cf6f0caaf71c7d5f459b22a0c79daeb2c7f1468f827f28d16017557c31f4ec2ac6b9d72dfb8ffdfcc65adb978730f6ab2685c1260da3963a8abb1d075423017d1747405208c568ff9c0f2841af2511053e569f0a1c0663ce0893e1c394bcc91217a3b742b4847d0ef6f3c593066cccfe0f64049f63407e002b108a060909bbe9bac1548f6240a88bbe11f6ac97a0bce4a948de693edb922e49215cd8efa4c74fbab93e1eb2f63b06d845872426e734985b1694e07288b220ab2354de631d2a9ad8d49986013dd84a66eda4afec586358b660de89826221ce6d49c85b2c249f2886c14c60298627d285514e57a06cb861afb0f62420ffbb549a36e5b5eb24c0911de84c6c561458d4f8f79aade65c95bf14d87f2fa658b2f7e5984760ccc6e71c8b4aa713cf86ec6fbe52e4e0be8627c6e2a3922f9597e55176113ccc81ac79a6f6ca95f053e18e3b67d87cf442bc721325b71c78f12d3c95c6f1b655e4f9385c49dbfd83c707d4cf3029fe7f362f5534dde07e028ed670feec253bebef857df6233cb878350624a74b7118f4c66358c29087d0082da4f8fd4e8c2174133259940baffdfad25938c7d41ecdadb14c4c211c5ffd95794b8c650c5c6c81795a948b11d4ce7932e281f975a689c1ac2015342b46f885dbd324f764ea09d95293690a67fa6bd0dad4aba57fdea42fdd53e2d9e0259f9a55a17a9fc0dfa6638febb14ba662a3f44fc1ba92075829039b14f2f45609bec57e7abb71b62183cc24dac78ff6eaf13b85512a52fcab95d86c2112e77e391e62e669f47da2ff841ffb38613babe2975517139e4b685e09d5c0c87d9878413ba6bbf66c1ebdf06a9af891f9705ec2a12784ab9af6badfc8091caa7420d6f1448acdaaa0c1a81feb448c48e1e5b867439c2228ba46c309b5d1b954c683e8f5c60589b169f00b34092ca6ac251d97c87724bf075ddd2f861ebf20cfd56ba579a6e902f7d38a77e9aeff0e156ce98f811a53089e45b152ee91c0f4ea4445e301975b9fee3ad7f5d288ad0ff74ef1550c311de5265094bd915dfe1e34066240a1e27ff162de022002024e7af688754f39a7da1cb16158ad45fe4ee57207fc7aa21c92abe2897d2292b6a3ed1630f608722404ea0afe034db0ac0119e9c7ee4da0d29c2c68dd024909ce26390548ffb5bb30424a867e2983d164c6948387697beb7f13640e90e75f495500420ff242c31dc8d710ac98338754147815b179ebc95a340bf7e8363ede38b20d9c8ccb6e804817b737eae47dcf1376e545d8b09abba5d89461f1bcb974cff1c7940b794a22eed106812eab8860551d55c48911322fec133872730e98bba0d41f63021f7e479ae55fdcab5e1699bfde9fc1b92ffae153d07d3611b6ad40a3384359b6af74b0fa503c54d1acfeb8b33b859e379fa62658093359fe6dbf8cb9908ecb4dd24e05134f2ec06c8dd2af2be549740540f611c42cb7e7943fef130dc1502889442ce4424d3dded7283e5e94c242687ddfe8cc7023f352e2d5211ad6a1e474890a577a5fe504a5a9294b03d31cbb74bc0551e05d788eeb86d8867d70ca9f62a85cfe2f493d4de6aafe9f0bb117bae466686df81933f07ad0e06a181e8d32e483359e07467b24181de5fcc10e1c79f07a101fe4deeaf6306a11bc9a5aeb2e763a0a5aa0003b6f1ace13d5a8d1a5d3c60d517f58a96038a20eb7e4c3093e2c99e02415e3b3ee9f63fd587f17bdfc07dc16d6461dc6f4d930496a631fac1a50ca2a362c8720d9f04d3596a8dce4212f56e5dffb4ac246e17a28effbc24bb2c63b3a2b291d7f0c6b6c54d6ab332704e616b4a55251f29abc71c30998483b105a8292f5be6653f6a16edd65c409af9250d21a05980c34ef2348be92b72e59b3998b00702201fe8f3856cdf1c7cf444922fd2900368728be790818a5ff3ce089344d016672688d3dae1760e17fdb468952e1597fcca121902c75cad5d94a3535fe52aaf06efdfca372c2ccb8cd3cebca2213aec3dd07397c436c7a2dbf35346ae35b5cde177756a49cce2f2e8317a4ce64e33229916558f6cbac9e82394545b4477c54a6a825a27d6c8ecc2d7846cae4494320cf8de6b9cb4fc40cf3ab6c8dad15b6d5d745ac228e29025d9c155e4b86cdd9a0ab21d1fea3aeaca089b52f19808afaf6c04c332eddefcffdd7da535b6a4ca26ec696efc2a97e2c182e98faab5ab64cb3eaf50ec9e794b0521807d8f1e6955d51302ecff5f2dde74512ad4ffdf4df83f7cc980a36650e42395ba1b56b4af28149e2060b05efdd0a9fa4be2b06ecf2ec2971a117520c7a5ab50bb8866383a0c293f9eb657babbededd85a063d7c1e05e585f253d69cdd6df4414f9a0dc90b3c8267419cc9a9bb4426eaaed06a2bfd32252ee1d9a346e496cccdbf32e71d6390bc5ef0f162bc9839632e14f43828ba4e873a80528d431f8d10ed10fbb423dcbd74056504f30eff712a419b09d634010e725e3ebe59feb4734e744013a00bfb20a4642fefb96fe7286bde1c5e1d1741a8baed1c7ce30d28db768756ba9927b57da4f16d00eeee4de33b0e9d22048c9001d011109916aeaa2cc700e5877d857988224c85c8de8ce6e825200d848bb1e5823c4e226d5389acd04cbb7f3e82be8c55f50e43ce6c99d2059d1898de216ba701649e2a5de197fde33729c1d8e9c4a1927d564121b6905d2ec8a52727a2662e76ca1ef2950874f9b59d680f017d3fe0f238eca1dbdfd96fabeead96a114fcbd280331f223fe568cdf67d709c4eba72e328f2bd4f6501b9df8719005c2564767c78f5ebbae1c0a848cea16faf0114d02e6f3fe4ad832e00b597cac3b37e49e27108f5bfc1998f6fd142fba77d1e843484230c2582f6a6d9050cd672a374d454db21a79d62819db994276831419a6517ef837291a45514d8b22feb1863272c6ca614694fd81124b384e1146948d32cfdfabbac84b2a9fe2f94d859a02485c236118d319e2aa7566c2c9bc05afc2d59d9ef49a0e95515de161c6f1ea4d06b2d8cf4b2414552d4ee897eba93b6dc52e53ab9309e0d765e03d7b6a1f049e90b6f3ffbc749d78fc1b6531a948dd6f2ce5d9fd1fe13ce5142531caa12aea0a5750954f2442bc7ab10d697bd1ba7106eb1f79456bdf08156d316a096738cddac78797e777a655ab541ca361497063bfd83f2034e4854f026b7e4e1ab2447cff8b55d93b3e8e3851887905aa317a541446be56bb3ee05b1a1e4acf7d51ab09135aff65e7b4810934f6a8a5b662105a180f8d9a6413257f891629d7e922f44bb7a76240300b80f1be7f8861f07886abadaab40f67b8e0d763b558ef33dc205ac7f932f0bbe7e69557141146e48ee02af3093dc275f2fddc5d3a3e7ba342fc3f3faf60f12f24fecfaa5b6d952cac7894b8f544ee41d06013f22749790907dc1848f8ca156e2998486167f7a69464927aa1ed4fa6320c98b28fc278129c41a1155a1c43317076cad27d46393a11242f0b10e6c214c6ebae0ec5a9490ee1250c1974b3ef1068aa46cd168b9130e639e6d2fca2cc1683ce6824427d209b0929bebf225c34bcc951a2d33462b5100e197e6c2db59f9168523fd96650b8c5e67cca7a03a2180aa92ae9956240fc6181b90d2a5da7dd53be60149767ea6f083c8371c0e783d247f4dba95b400afe8cd127777f6605974fed6d610743a26b6e7b330ace2ec0397a43818156d600958dfc2028838bd081e84ca246e52aa5ec49c18af3a289bb63af1c93034600f55175eb38d1a9d5602dca3766fd3a048c48170d90508d13ef1a4afec2e39ef6c9208ff009392272d9d826a9bd8c5e8f1485b3b2fca014f81853d1e9c731c955b971ffe2b42224e938508343aedb58d8115d795cf4f7fa364823762926f026d4ddbb16a129d3d4af2579e9ed1ddce1c590ba5befd6edc5cc79fe1324f6d9c6e175401eeaa73b98bb75d2fcf540378a9b45965c94a8c5442b9d44858b36fe78fc6bf34315c53ff62a7d70796d1b1e5cf510ae4e47aba674251bbd41b0e0369741d7169fd328284800f99e665839d85b1e26e6232383c4044b8c329775778d9e399a707e7359d152cc334a0955370562cabbb7a96729c083b48f908f7f6d1cc239b0bf5067fbc6d8f9285408df5229eb21f998b2307e82a8fb59191d6a8b04f1369b200fc3df831d09331f4e0392a11b7e7a260523262f9513c591d5b4dcb93db65597a22417c3e146d94fd81a27ffd9d39e1557d53745aa3dceaf98366e380e0b285e84fc2602f45c5e7146f708b60023302740529b6dccf653101144c9b68a6102fe2a42677ac6a4575644dea2655a8372e57e64abcfe1ec91ab230c4ec51361104c80d35d575bbad3c2618c8b9c9283566271306bac6b0097129d7cdd2d67388cce893be4ec76fe99ee3d5667944c1671bc4702352e7aba69cbf55ae8da2a9732cc8420350bca475e7d7ccbcd3a36b32be7d95e24b24d0e54bfd459af84409dcffaa3101025a24d85577e7b20180279a4f60557314ea7f9db5e4e9b6423e67e5a3910c50a5ac0d804fe8de41e158e14a69cdaef4408480f9ebfbb9d8c6855a7bcd37e44dbff9d1e2280bbd8816c89394ac90ac90e7139608ec1b1d57fd54bfaa3cac52c89f6b4a98cb801605186aea54244505d6c6c538cf03fb3100144610642841b090422e213bf76e2741c12e535dee0be8ced1044582615517c8606159a8de6a71bcb13a91e20b8901db401c04d6359cc951cce987471defbc0f76c92a1578551d5159ce110ab78b0b8eb0e50c712faebd49ee9c3e1db9aa2e303775db00cb47f8937f8dc3d41bd2d660d455c3de8fd1fdae419f60598efe6a7e57ba6e3d6db1366a099c377493150a2b262ed5e8f5d4234e93fbcfe4e0edcaa9e10305eb6787cd5f69c9f4727e14537520468d345ff7fc943c1346396fd6233c702ea4d22d35f5d68f187a3a62fdf402ac003791139b12ec2078305d3f1c227c21fc533ff034a4cda19482efe08e91445a2f1a195ebe20f003fc25d30ca6bcea0b9d554308426c69498eebf78367ccd887a44c8b3bc7d8846bf25ff39c0b22d39fc18f1a17d6b6b19fb4f0c4fd085d47b86843f6e3c9cdd75f96e1c19794917144c09ebb42a36a270b39e755b23ac67401b67fe76fae6730f9c92da0f494172952695fea613d56a808e0fa5eb99b3d0b80cc356901e02ba64255f8e55d23a9102bdb42cbf3f2f3cf0154da1585ddc49660507b0fb40e80dda286186de6e4b662f1ed77ad7ac0c6479b8b8312ec6a458a288cbd3d028727cac8d3ca6a828c914e46776bf106758f2394d9b49b88ac310b8935e155c6bcaeaf4e69e1e38563eb636cde941bc72c711e54f6c59fd5a230be0c394c86282624254ab81ca0b43f7021a872dedf82edecadfafbfc75af86212eba38e802c1fdcd0fb3838cba9fa640998ce60b78b2c189e34c481588b278c04cbf4ce7065939d4ed999253fd88b5228bd9c3d568d22be944a00cf03ba16ed15f88a462b823493db63416f8a1745e1aecc6dac981cc502dd4f5ad23ae4e36e2cf83daaefc78fed4c08cfb3b0beb17652f6dcee17797f8279f3a309bf8ff0312191b057ac0f16eb02d5571a58ad2ef7bd4a95c995aab659b173c46dd3c07fe56f6ba1e66cf1adf902da96eedc43d335300d82d82bec3a0dccc128a732fe024048d16ec7d031178f83d18fd3a0a54dd374accbd216542d4291ce21ac1718bcb6c2a15d45973734967f49746adce3458238f9a57c9913c68f9a10851cad511ddced5b2baa3576602e5b4eca1d6e82fb3ed6612a02b7a536417d2089987c1c233153a60cfcc0e3ec73c7cd6bc243e68522fce9caed8045dda80c8ac4ddd6e16f1a8a8300c4dd58f6bd4a780cff1d56c2d3534b833e7e1f4a2df195bdfec058dcb5e821ab9f51496a2b51ae769e024894f72a3ec3499411bdda8b29cccaa45967b342cae57847b6ed7e5c45bde99359b2341405bce60b36130356867e695aa684003409649afab8358f9f010a6aea2398450a13d6d5b95c962d20c738d175156126ddf8b39d7e1b6ec1d8457bc23f89687e9392e567c57731997c3469dccf3cc023964426020f5290252fa5ad4b24691ded897e095b84aa77c38fe8f38608b15b697840015397b0af2e68b55c8e15aad22d00b3fb0902f904bfaf15a15a846d6a0528088accbbd5a854ec22be76d049c3e48ddc187b33ec223e1a73102ccff0165f657464922b87445ddb37c06ffaf79f8dff1b70a74daa03c76c80547435ed0dfb7885446888026de11a1040cb78b37efe33e6dd8e05de81fe86e9ad5881cf7b7014fa364cbfe2057a2eef9f9d0786be8e7e4cfc2e45314c7f7984e049d8e627200e067e5a8241cfbfeb3049ee0261d36293154c0ea6796e5021c4c71ef9b7ca7a3f09c4ab03c77e4879bb01ca20914f019d110510950c1ec332af903f3d6e649e455038f3b078c6d00d140e273e4555f36c5495f5a688a1001e19b067b7366593bd39c3ac4bfecc9e3fb9784113e0abed7a06504b4995042672c0dd15515fa15f074ec4f78a236af3f148873b4b244048504af78dee7ff30b38f2ab5a4b0569e1ada7da1b483717a6c0e9f929f26647188556b9b656d20fec6293561c6746107216bab930031d33e16f35cf763d1cad303a237c79e32fb78549f1d3b48aa9366b2419916846d024f1f6040352192744b4039ab8ae8b5b3092aa9a0e7277e4f3a18ab6cbac11968337ada3030aeba81e51618f524122067b72a91093da235bba288a5ceedec257f23b7a6e9ee11473e635738dc0b5e7e6371a59e149556dd1ef45545e4f1714ffeeb6f7de5bca2d654a520691087508300845b62bc2f5bdd207beec38d58f670501bf353acb51b5ba907c6e0b2bf696abc0ce9503fa75655d476b66afb6719d57fac01516170e1272985c74bcc0ece0d1e343b1ffab091df5ee721c55bd354e9ceee75e101c2fed7c78d8d19133f5b7550e92a6fb81d2ed80eb773f76b4a3256a95cca9fb1f61d7d341e9721a55734497cf4d62fc00f0df67c27fdc388ee317f31f9794f495f01fd76ab55a9ff81f2724f485ff71aceffbbeff8f0302fa7afcb7252525257d3cfee378be1dff6de398347e30ff6d4848dfcb7f5babd56a7d3afedb84843e97ff36d6c7fa3ed37f1b10d097e33f2d292929e923e1bf8de7fb70fca78de3387e2dff694848df8dffb456abd5fa58fed384264d15fa56fed358aceffb7e7e9f06f4dd711c47a4ef227de07f3f830cf2866bb55a5fcb5155e8bb42dff7bd6cd677599ff79fff07f43dfe92bea4effbed027d9f4dfabecbf37d5f32c123f20160346108e01733268de39884eb87259444ae25c4b5b816d712c2f53ff49e6371401c8b63712c0e08d7efd1a3e391c4f1242525713cb83e8f1d1ccc366e48df366edb581a9170fd1d2f9b8eadb5097dad564b08d78771d14c1b6b03fa36d6b6b14a1b0b08d77fc97149d092369e4f4bdab4a4a48d07d7d781c3b668a386f469e3a68d2312aeef722363d15a9ad0a7b5b496d6d284707dd3ca10c08ab395a2b134208da5b134960684eb7360f8fd347ddf2766e91272c78b74c73bdef122e1fa201772afe5e0aa9881006909b55a2d218c3d122eeb025dd6655dd605c2f51d073da1db428bbd65c74953df85c2cea7ebe976bacee5aa8e073b3e81e1caf3b25ee0fa3e88c07c936ed2add22a1f4f7b5a654d2851a0133ed328b8f4144aa74e5f7a2a84c4b148319fe90a70e9e9137953c2979ee6b4cafaf8d01d1fbaf2a1ac2a9d7a35248e7dbd8c90246f44a256d99d1da39d294863a7422e248eede9e94248def4f8d27bab55592ce6aed82b06c325982fbd3321712c0c70e9fd47def0f852f67af99397f794767ce9bd0412273332f226b8f4ce83bc79396a55e6e393e4e3393ebe33a553261f489c2c280808b8f41d93373abef42da555d92ded1019bd3ae54285c4c97a7aaa089237397c5a5563b19f582b566af9d2f7101227d3e92270e91b8abc21e14bdf3aadaaaf57f3f06a9e27b884830d89538d8c8e5045dedc286a55f5f189f91cf924e112cb90c4a941415f8cf266254aabea4e9094d2cfd67442e2d49e49537b9ec0a59f40f206fcd24f56ab680c4acca7b4f9804b3f7b903855c786aeffaa624405973e0312871acd95bcf9be547a19e48dfb1495de85ae1f74052ebd91fa60105c7a9981e0d2cbb48aeeb4d029ee4b5f44dedc2ffda953369f804b8f4bb1d2cb2ee9383641e2d09e187943bff4b7551e2bfd94385467d2d42f7de97378444a2e7cb2a3453a41b4a31ded182322e1fa25885dce11f8bdf579599fb73ed6e785ebdf104ba1ddb13d76e7ed8eddb13db83e4b0f0f2666756230b198d5c1f55778743b5e462f98d7cb08d7075f3853e61394f998329fcca7fea76373c976b29e6cc794ed643b590fae5fcaa1b5c4329d58cc8b653ab8be47c2c5f1322abd5a5edecb08d7ef6e5896ea135412730705571f1f9f205c9f5bc9babad363124b620faebf8175a3b1aa4363311aab3a8ebf2390e26ca5d097d1ebf532c2fe537307822b109f201f1f9fca5d3fd11dda43776e48df6a3916c6870fcf080a73cff9e8b630c31d9a4054e7f296d0c4599134f5ab0c786b833fa8805d9f727272726cc01697abdae5a2cb89bcc88d304cd2e5b14936c9265d1e173b833aa57dfdf96a950fb0c5d4a9701685d3a8df63aeba494e75260e5765d2d4afb1a418ae5c155ca90ee61aa6d3e953ed76bacac4e96e9034f53b2826137893700d819ca99fb93670fdadcb9133f57f500169fdce553b57f7f3b3829562856a630beb54388f1ef5f561fa63b81f9de7d2ca53f6a0ab388972cd7a23772e5c5f6b8a65bc6ece74dddcba7f8440c29a3e818daa8f2408603602f5f7b9999e2e676ac99f622d9c42e11c1b552f2a3435aabeadb5d6ac3cc7552df373fc695714d334a84082491e4fb19343e89c734ad47c1fede9d67384756039f66c813917b2e46e473e80b7dfde855da45fbf48a7b40fd37799f29ed2b752e582a35a669f4258a4489f7a06673f43a71ef77b35b83bfb8e3369f753e813d5e28a45fa445d33f0d0f7b497ee82ab708833f8471d05ae3cb722821f154be264f5c94bf238133d10ff000278afcc7430e48a744ab39fb54fa14f2d5dda0bd15cda7334855aa453544c41c8b642ddc4ea3e6790378ebdf60d55b3953616f2ae1b1b801367d24c74ed39eafe419a7e8d8dc4cd81f9630a98a9c729e9549b4cf752235858444a33abc4014a24cc050993c1fd2d9a5005d82f8f5c90378d4590d215204e6998b84a5ac16ed9818fd1872062de11ee7f8229a644fea4f2e07c2f91077546bdfa90ae4f6f9aa107f900bcb7bf732c25ca5f9efce54f7fe9f331f5bca30c8a07932aaa5157465f38a3309cd1314fd70db07fbb10a086e5c87262bafa08b88689f374498133d79402676db50330773fbfda562b289b0fceee67afb5781a253f6f399fb5a42c83000e40e326420087243498264200871e1b08e0f0a45112e71a6d6561f266be8575ab58ab3a1fb747f2867ef6360ba9ea7a90a80c86b3856949fc683c43902aed0789cabe07670f13420d9c75ab6c8a197c61ea125b18de029c5c80d9c27066b11c592fc059fb71951c727f4cdd4f37d6743f38cb8430c23b13677ef6d908a615f335696896fd942aad87150d673b384fa2192455930a2189c2996b6a016aab7badb6c21eacbb9302fae954536363f357d36e4b97565259a5acc156fc77716a725a5bc50c6277f73b6b0da63c40e97390209f3401cb196c0a759480bf4fefd5212e64d2f47b52ca2c8a86b07c9d5c356156fc2401b81f3271e69449a3e3fb4d2ee68fbe17d21727661858fd3965e2cc2349d37952a1b8c58af9f33231df2a52c12d04dc54e44cff1030a8e49bbd8d4d4d4dfeacc6a01471930904bdbee0bdeafa3ad1016fbf145239d3bfb188a71a588b3174623fe9937d1b26e6c4668948b80073f3dcfb9e580375a06675ca7ffa14ebef2e68fa937dff71554da3faedfde150e8ba50e28ab9908689ebab51f6ef054193c9944ffe9a984ff6b7eb1d9962272e99f86a4fb176dddeec47036d70b2532fdda20ccb3bcb3bcbfbfc161f60801954a173c9294bd2471960eb82ddd3f779e4287ab9ed4d55321ad4a752bbbca95e7b0c4c9fa5567f16f1a5d6afd56b29bb52d56311f83dc630ff71ee9106f5698af425b33ff1271e05d36f8fd227ea2c39e37295177951bf1b1d71f1c80770cbcf909b2bcf496f851b3fc51c53c3cab37ca9f49cc7fa6937cb8f40178f519736758e6e129a67d2d06f3f7214fda62c3943ffc991d3a73cd345cc2610c4f12488b9dd455b0d79e3fa68904e9f4eb447dcef13af788f23ac61822165c53a95597e3e6579f0f37c969f49583e86f95ee4459d6279ea461dfb2aba519f68ac4f452def452da2c7fa44a9fb98e9e7f925910ac1284ca4639fa8943319914a3485e8d8d363a10455e677ff2c75773fa53334e755c75ebd9d3a8cc2288b3e7dd2a959b3daddec526662848e67098dd8f9213a7e8631b06423f8d9cd58de835e14a623a4428d62115d4a10d7a38e17d25da55399e72a1d628f3df6d875339c7f23ccd485bd771828d4a92ac6008e2ca1c44e246f4abf923de89abbbb07d5ffc457a7a6f852ab14677910199d9355c374d628bec330a57ef4630dd028e51565d7a9025e8e85a5063a85fa1483d4274a617286b2b00dd385e93bab533486fad359206fba4bf3bb6bf87ed427a42513bbe8494860f615a6f4e9fb51a75e728f27a44e2521752a6b1f248a7e0a6e112012261834d19462761d4c1b09d39e822975752a88bee8cc73e5ea137d8faee4ccec41a2be870bbd39f4b7b089fa44bf28c964ea3109c91760a6304c85284cde644f9f66216f3aa4e1cb92f4cffe39bd862fce495a577286beeb744a1365da9bc2d0a78b33b8c2149433f4e79c8da4bf7dcee9b3fb49689a177072ca29677b8b5207fb9c0f9b3dd827fbdcb41fc4c53e0a1985addbcf21b65fb350863e59fad90ad9d7eceb572d7b4d052618864e69455ef6b5a7a1166a627badb556add23e550d08ae40e8f44c665ad7279b4410ce3286ed833298fc5e106cd1b437617bb5ab5df944f7b3fbd9a901f6cfcceb6cf6325f66cff9ef2a79c18d9b77fbec3f26eb8c4232bfe35eb84e7ce1b8e7e492893951a64f3d458a8408ac4fdf5fc2287d4a29a594babb53a7f429a54e29a5ff030d90524a29a55405f46737a532089576dd847139d8dfbb186fa9f707beb96293a6e58d4d1c6d3569dcb4ba31eebb2151935a2a4d4eacbcdd8ad35abe9a261308faea9337e429070b7ad08caef006a553596b21b1b3b1fcb7275ba51e9de28006306001375c48a200242d2d1c61c1c84a91155420c292420286e04f08020e60003008ce4d013c1b558a0025200310000a5c0d4d00663a948f1f322600e08493b6c59420863b78f4787b615e74b8e02021872973400318b00017922800490b4758305264051588a49080215808020e608020383705b051a5080064000240a186260033323f7ca04e2700c0849812c4f07bf0d801f3a2c3c59483041c375e2d38708899f6b4848d6facd01c96a4a31b37c4ec4478365ef95ae0ca8a989d07cfc69f7754fa3e31b79452d8d8e37c3acf1373ebe0a9156d1c27e619650b1b6b768e691cc58a348984e75b2b61998c4ce6d83d2a8454d534e0336501033e532516f0993ae142b37cbfab21554a927ca63728e033150192cfb48716fa06175235738e7c763058f8ec3c30f2d98350e4b323e1069990aae9b3c267874285cf3e0591cf8e83147ae5fbbd0452356109f8ec3f0cf9ec42e0cfce0221ef3cb40fa46a22e0730fe1009f5b0ddc7e4390effb9b0aa96a288d05eee6a2009f1b0c9bfe0e9237ddabfaa5fadc2e487d6e26724301a43d36a4aa8f3a872e41ff50f3b38abcd99ce6f31c23009fa70f663ecf216019eed4130b1f9f27159306b87f3a2155ee7294c74c179c307b90405a093d73c02dd99059a281fb33205574e52887f92c633b3ecb31f0508f7e2352455b8ecabebf88bcb1fff2590619c0e53301f20c6e7917dc2bb84d902a5ae428afbf75df0688f9820c101720ba20e61e9e44548088446c418e39aed25647c47c5910336824c7bf488e8fab6e6c05315f15c40c12f1f14f41cc3dae2b0162be43c40c62980bfb0b11730f7c590810f33d80984103cc24ff2033c955f6c851fe1747cc172c80984d47d8df06cacb55f6a512f34d891924c0cb1f88e83f00315f01881944a18ffc6bc4dc0367341e009f711931f77058e6e328ff1f62be3ec40ca2c46c8261ff93eb9e20e60b0240cca0096236f9c788b907a62b576539ad12c4dcc3248ad9048662067f757b88f9823cc40cfa0e1831f7c0b4c855f5c751eeff22e61e261d6236812e62067fb0bf8916dd1c62be200e31d78da5d505ece5927243f630812dd4e746d898455b2de1a341d158546725a6eda0e5241db1b088d98bf06c0cbac41861af28df65dd27eecff5b9504050e4baa3dbe4eedc9c2424cfbecc281a61a586e1d9592852b47e7c92c049f6047665776c4ed73b61e32d6ccc5d189558d168a4653e5915992b6b653fdb26e6e9c2b3b32c275b41c6ca56d9ce7c62c7348e6245f7cefaa38397ab9589590a6d2c39e35b1012e5ef5bcb0826a0b8601b02fbe7bac2fe3f88206766ab3656775b3419d4b85e385aebd4b5f6fcbe657849aa786b77d19602ecffe30cb05f6be18da5b5260e9e3f371f6c6580e40c309ff034f94d67af0de832bd1eb6b1fc73ad69d5c66a94e3c8d3fc1a22409ee66b2d572540a2aa4605f62b5cd8ebe76ed23abf223903cc94851d57318380cb61c07c010d9f235a1874ffefe48ccb3e5d3ff24dc1511e98c24c1adab5a78b01f6fb0c637e95389368d2cca7f2a6fe9c53bc7ebfff8ab905bbc9f39c4413272c41ced027bab88a2f6784004eda9d1e94270b33e99b3c83c1b4b34a6bad33434e9c1872d233e48467c88909869ce430d4831a433d20c5f88d810111d2821298221919041322328a81f99a0298239f810d19f6af54e6e039a7103c994491344c897950951053a4f39f268400e32d1dd838e8e6a45d06cf904fcf90103a0c3d490307964340b031740227432760a2d69ad9a11594a113f87076e8c90fac16dc500b466c83cb2ba20c910f4e1c9982222c5fdee058a8f6354dfb1524d69e09be617e7c65985f1801f8f285b40d9960993911969e9c587ab30bf7195c896fee5b7be76d5f0a3d6ddb365ac48556cde0ddbbbbaa13c114bcf36e6b8ee3382ea3f62f13ac8512df4e6a5d71c03299016613fd19fce89574620e225fb1d2770f865d44bf7bba7a0ac4c4f188742c6c1f06d32fe28097aaf4f4613aa65557a26649046510212974aa2b4dac712c48ad6df7f6efbd9ee7fd0a127ba2f713ccc2fc397bbb3dd7854cf0665f0b6df655f4d5d636c767e600664162a9695bb6c1b76dfb1524de3ebfd0566382ad4881983494a833b90c386b435411b5c56b86cd7ec9c41904b8bff17c69031c88b0f48c340dd3e064ccfcf9d39fa32d75d4dc005217268dbf7c49e9aac1d4c70a40ead56b9eddf42695b34b99894fe94eb5b3dcdddddddddddddddddddddddd4d1568fb7335c54e1f6c5fc2bcbc0e17d3cf9fff9d22e1e7c7740ac7b7dcf8f9359d62f939bf54e9e7a750a405173a75ebcf57d2aaf0e7bfd029af25898ba6efd3fc981ddfbfa3c5539f6ae8f7be175c61977797f7fb4d79bc176a5fc31d7fc3fa59787f0bb3e7c2ed4b21f75f587a30fc7e25049f255cf91b21cbb7b43c096f0a73bc4b68fa8e0610e460fa1eb6d70e26e4f12f21ccebd0f13a4aecd051730338e78fa3ac690ab6443dec4b79f39f5b889ed228fb1e5e0c822697cf27dc89791ef9f71417319fb0173ed7239cf8431a66c0dd572f89cb11977797f7232e9ec7236ca4a42a3b420f9215902898bcb9537eaabcb045015b18bd98860d133652d8493ac2aee2127a4ee83a7db29f23f49dd07184beea93fd96d079ecb384be123a949e3ed9ff42f7093d09ffe91350ab4f515c7db21f861ed428293de5db0201c1f66f7f4601dbbf48faef4bed6ea276f2d102305f6c997c7777cf700addbeadfd7dedce16e86afb3d85eb29f2467bfb7dd4a9eded4f9942419038330b494345decc2de48c0a176be284c919fb3f84006adf9fe7cf8ffb8ffff8cf844dd82c3ab2a71f6780d9f64a079b30fb53688e7dc1b6afdd7b3b98960ed683e95482075b39816c0dccfe057dfef4c9b6f4e95de8d37c51662ba63e350c7d9a3f0e61fb2dd4b04edd7b1bd6423ddeebd24dee301dcd63074ec6e4ccc6beb419c1980cb304ec96beaf6d13c793f7b92fd5da550aed2405ea54bf66ff7ec7fdddb66f1b8ee3b84b77467cefb5b9fdba3dc4ed216e0f717b88fb55aa7a0889b27fbdbff75eae7a492e774bcf7d69e27b6ff7b4940eea280dd44980ef81623e859ed83c47b82f894b26fec43c71c73d27366bd3be9f70af6d5d174eae3342c3ba8af59e27ce83addbefd3ffb5177661dddddddddddddd3b3ba22772627e4de434af798e70afbdf58cf44bf1569fac13bd035529d87e7d75d6cfd1ac3da52b4d091dec03cb318911732078c3080a3b519f2ca5dd393a2dfc69f14677b295bbd874a753a9556bf5555f550aac4ea947fd9df7673e9f66dfdde7fe727fb9bf9effd5fe6adfddafb47bcefbadfbfbc44c47c3ef65e9a59cbebb9ad6fdf3aaf9d3b476dfdd7f258ee45cb2f7cf4e7deab6aeb3cec5bb64e24dccdb6b6ff29274e9b92a65fed8d408613b7f408b4408e43ecfd8eb8a997b4d6ce94b28be4fc387ef97dcfd3d2ffad10453cd9cd6707dd500f11cfebdff27c2f4c9af90b66b19dda552a9542a954aa552a9542a953e6bf1889466aca6e3a14ff66b3c23284c7df400ec8f098bb80a6c9afe59e54cbf176693a6ffeb7057af93721c97755dd78d0e73d78fff649da9f3be7baff39f7b41d094751b0eef48d655cf8867eee7518edbae73efafb864134b5fffa33fd800737d6535d800725bb8e462fa5eb8a4c2e4cdc4f673cd02e7f092707fbdc29e04ef08f7f7bd18c0d0999034f6bfd0612067ec763f737fb779c33be23d272e097f1081ed3f134762076a754ac8472eebba06c916947b5aabcc202aa46aca2079d37133889b41dc0ce26610b6efdc77a194339c77f3fb7749b68e7bd033d23d1743d78931943891fb1a28e5410b65766a28cb87a3e9a60b612b4517ea939552f41f39635f48d37437b47886fee34c78130ee42d87b9908f7db2455ce5515c0ab61e74efbdf6597efd6daeec401999a2ef5f2381f8bbdfcf4be2d7bbbfdfb97799f69e49ef8877e215406731f7958acc9bf0aa2f89b22fbf5e714f44782098ca00bfc0f6a5944d3dac2289242055534640debc8bcbca8a24c2b65bd49e86af53e1df24da77223862fb5c58b363569866b25f916ca660fbb9e6842d9189524a33a59422118a11edbcc462f226c356765d758a8689bdd7ac66358bc4739f803da624b0ad40354ac76ddd73e292893d91e3d17161ad52932a52588f2a4cced8dfc29a859cb1ef85558b492354c770c9c557cc728ad8dfb92b900525f389b1309e0a8d8d206f2cb64fad636bbaf677268d986588e99e860f777f9f2b851273a64e719b18e026768afac04c2f30dbd86f9a1363da01e2c03d06b65fa5cac790c9f0b679495aecedbd97d8cb312737b2da67aa83ad57c156b353b07dba732f08fe8eb77d33e61df17e13974c5c7ab94ad21ded41ef3431d79d183e711e79e29c1253448615d038ab4009ea180f3f429ed4f8de70c6bc24dddff754e0decb701712e9d7c2faaa5234d8bf0904ef3b27e67a84edc7bc23571379542972c63e0debab4ff67f5401b3aff35708e7519fec7ba10d1377e29cd227fb3744c20538a7d83762e5edcfa33e004bbd63070801543131315262babbbb6d6c6c888c5853a0d02620fdfeacbad0174831136726d549937de0f95c0603068060c5a8c42a8102ecf6b6305edc9720b47b91d7c471d1c815d30a1b1b6b2304f2344bded01f7becb1c70e678ed78c9de50893e3d6ae90086b5d5880dc428815a2059867cc9559b9299b3ad2e8b6f6a50c982c5d3132d20544babad1705f99c2030ad0e7ebe507609eabd5cf1724aced5732715c9c43cc22bc58cd955503cc727c2991e3381f8529bc8522ac2234880d0c0a90569deab7719bda9909ec3c93993ab0383997f56713d8cd972d4c2f7fb9c9ead0c19df3850cd07e1541718aafee9904ee09845b46d45e4913e051a7ecbbbbfbebf57ae5bc30ca5149c80230dfd77cd1f9f29b99e4fcb8a152afd471002bf56961b000f35cb9bb3b0cf9b45aadec6ab5026ff7dd02fc37994010865c23c55df6e55cb584b86ab2ac38573200b37409f177c9e489bd03f82467e617ade060db32939ce94c74799938dcbb5d39f3824666b2b5c6d5839639353533a7e9265e2540218e6abf3536599b1c30bf85b84af4cc044bd70f314527f80066d3f5f7204070cbc448548b3031389bb4cd7e0ccec47cf126abd82a2bc6607f9898223a86df2b3fe663d000613803f800cc2dee7ef296dbb48a57a2fae9a7e8f7ada168703d67cb39b7d6fcd2fa593e9d2a6459b5f4bad6dbec5e32a1f30ec1b5b4dc709fde9de53499ee7517a5fccc07e92dd865c0f42715696d87c18d439aa4ca55f57660d49ad11847b19438da6977947a442875ead533e275ba649995b5547f6225e6bc2155421a35df532fdd4dadb59a139637040d9a1481063c8c34d801df336890c344354da185225d4f1474cd51143570ff054d23132e6cc2728c32e20ecb318a140c2bd28826097eb8a821c2a5a3c4182600420b9eb09085cfcf51174a14218225baa10b043d428a0d24603f530401bbc1688b134421460dc4f83903342306519e4811060f59d012e8e08b31443044133df020c72e01050c2510411a3a280145501b5400e10261fce015c60e95a31e2c214507c4514bce103a43414d3c4105114ce08217153260f004064a70422cc1f13053200123606138b14194a420d0b0841955be98011639e8c95e170b8782a8091d8a8a7ed093031f0cd941941a4c29c20f35f06972012955bc74d8c1d88508281031184110539091840d725edc88eaa1351482293d37b46123048928b428c20f8890c60c94b042d3020d9915bc7a887862074439804287289abce0091bac8288d2d0786462e8144160a1450a9afc707484cf07625004d21a5d9491c31013568aad8a1fe9c8a2076c1425456981183aac31c414641011450fb6185c110595327640010be8174c728ab8411a46f8014a50cf125d10dc0e14a98c36b81863bca1491a510809038929dae8618c2f609c11444c0103151c418420681816a092031f1f2db4c8011196b056784c381a23c8a28d28517c1183328a50a18b9e112481060bce30c1163f31a79a590212089a5ed456a0633946c101ce313807b0b11ca3548173172313f38311193e3c01b2e2091513053738c21858e080051654a8c822932293420a3c676da28ade620bdc2f6fbfa9bb66bebcc8428a1e30624b20ada1e388580f0f517a30420c2d0c1c76a8c20a20b08eb0069323ace0c1055eb07104193910001022d061cc810d307e98420732868e585698e10283480d0ab8c868838a931208c1880ddc5044153a30e2092290beb0c1de5c24b5b88038c10c8060d00334c49becb888e801174ce87861237790c4e407239ce104e98828555e30c49fb8a0c91a5e10e5b0c45067a1c6c562182129a66516004f318c106b13a631362a1db0637274a0e9bb12d0008364196ca677608e4581a2b343941c5031a4064210e2090da810c12b05437cfc93cb60f3a30928710d903ecdf9259c61ea1c83bd0b9c6d807c868046123f1ca18c2486c400e444163a70a105124e86e4131320927cd0450b053c2021148506d85d0becff5160bf428b318c68830d1cd49032c487dc00bc5876c7744a8e519cc017afc1c9983c8900b38cd1afd9b5dac6759ed7719b26afcd6a8c6926d141f80b1e563f2c0104411fc02c634030f8f867d3e5628fe505654ae1673a6260ab002f9595aaa4bd3cc1b3eafc743a9d622757cd959f9a013da424c2e002309f707fdf6f72e194d1d3c9b446074305f4c9ea14fde9e1901966138e7f4661003672a61f8689e3620124ce0f4eaa52d8436628879c5e84c02c6335a5ef2b9370ac244b5fc27962234aa2074030c4753202377ad1e24628a4acd0179b7d0bf48b74aa553a5d14440a1039afd2f1a0b4c82001b7a2d88c829a8eb603dccf35a594723586ec33b1650506315646dc971e11187aef4f9846656f3f136fd6e179040aa4ba006aa4008000f135b8492da5b3ab87fd1ebeb026cdd4119b3fb1bf40e913a5f33bf5d4495b5babb536830057e7b8084c9aa6dcec3cc904264d3fd7a9d9f785ccc469e7ff28e03edb3ebbf7938eb237cbc24c2996524a6b6bb6815629e58c516aebdbdaddba736db5d6566b6b156f256316d5697404015cda5f29a5951ed544fb37acce62f9ec7852dbdfc9d57be946617d5f4a79adfd8dd2dfc4edab266a626fa10d156b9adc346dbb55beadd4be90a6b5526b3f9b5e5669b50111450060055f14a4a4d64a84a59536abb586b348499f66add3a86b93215e49130040818be338e9bd7b7d17a7d79f3ded5c1cc0d78d58ac3199f75e105ceba12dfa99644c9a893980fd6958a7519fa8d730f488541aace7cf4488bb64631ab95a3a7005606e31c1f4cbd400b16969e97e2619d3489e00cc26046039c300a7e08a38ae5fce0905286f1084243ce77c599fe399b4869349cf89ddc9a4911ffa6ad2cc2e722793667e3b4f3b4f9f986049e469389d9ae13c9876672a00334ce3f933cb1083fda74cd177327124a63c386c81f9a7ecae096b80f96f0771b5c6903de582939daabf3d67dfe69a5c833dff42e9d9bdde77ff004f948e7a40e78ba70c35fd20a84cb4a6636499a44dc02c8be60b455f5f903735f4f6695a51899c914dc07c71d35afbe96c5d7953335ba387c171d446a68a4c952e7db37bceeed9b37bde2ea60534b598604053956e7a446e07d28f8886a1f1a1bb5ba6cafc9a1631381923a5bfa5a16bb58e2e50c0d93f813ad59a9809cea08ac910faed11a1a1f49919cdab44a609485fa609482bc5418eb88a742a9133b406d3d791e5a3805d84d123b8fee764c8c999f9f25fdc3b0636e79c73ce39e79cde72ce699b98dddd37f2279631d38c211f6a30e4c313433e2831e443cf900f3c433ee8200d39898d434e60434e5c01a2b2a8646df65541ecd4d400000090003315000028100c868462b1682c8c83514b1f14000d80904e6c5a9b8ae330c7818c21c618a5083000000040004604648a230046b7741cbd0fe61a090b2c5c37285a62712c12ae8b4d6ed732039445ef7eba5d2841d9527cd23e064af9a262f7a1a48a37e6fd9dc14498fc52c64795d5ec0738caa1fe65c97c959b576694db6a5483311e341946f66281e1600fad5d08f69b6b95aee995967b99e97a3c163fa40c8c2909dbe6abd032510ca8908d38cfde9fffe9d2887fd016c6864dbe0599c4987857b00edbcacc691acafa828fa62e61c7b66b98da1ba02e269605708ac9afd10e4eb23af62c89ee05706a9ce8d88300a633b95bc0e59ab27d88ea3cdf8cb0774f8dc9ee954eab63c5d7a4a7a28ea053abcc340ecfd40d5073c8a7d4705f4b4899fda30fb3b2a50393b598f9c25bfcf3d8d980302ba047bc0bb35efa877688c6f56cb6fa5dd3ccfe61289d47495ef876f5f7ea32e927a0c3559b22b19f59259467e04bb57f56a5f095279445e9a1a4405e4fdcdb06b1e38e9b8faecfd86c2412d1378dc423e231cdf3f92a3d8760c046840704a1beff9a59ce1cd821c90ac180e27af3e41b078c97aac865e15a3eec4250e1207538f0ed1dcdbd139f624354598f7bdcb8b12418937ff0a406b19848fdbc4e5aba6ac2dd09646bfe9cf7fc634942e1a6243aa1f86a8e3859357a57a29d0858e6a1bdf014cf87f577316a1b051a980ecfcbaa124388d636b9d632d2cd36ab0e776207d5b377542d5aaf50e98a169ffb809f67f2897d8445bfe1a8c2586b17e0d590976b81f38b2af63b54432eeb27cc4a39302738353a9a08c68a53ab872852340246b47ce2bdc009496eae837af2c1c97a7c8df23f25ad434f8214d528f90db00ddb247518490f0cf348ca7e2e7d4a6ae6525eff8978584967ddb16625dd3da1947e85e89e1a7c4089a7ae8e735b1822f32caa709a77f8f08838c659ee199c1aa4f83f686b518a8d6d5c56b2c342a53436aab34e4de39a666aa518392e937225b55432dd4e1ada128c88e3d50ab4fc29bb136ec32a13740122dc119bcb4854ac8ac53036e12ce0b2a0245e7abf61453c003ffa0df6ff2fa211bccc80205e4ec96b55e2141f1b0b01d03f401d872d185178ff7155bae85fe71feee06eb230d80f358fc41b22b72b2ebefd58213db27a0a3a48319d01da9c65c19a7b64903cfafbfaf2d87ea66f6a8a18cd039adcd263fbcead489f986203de35c2c4a74a24fafa33c0eb55c3043d22b1c3c7b5dc3057dfd19f11f37b4eea00f150b7d4e8bb064148d975864a1a0d8905c8aaab1c05f7ff65caf8d67b2378e17870f1c90e5e4ab87097fe032b3c25dab41d71e7b2e8245c9da983c2966da129b2421fe1a625be6eedb8b76371d407501b8d304691daf4ef96f5245ecd71555d756dbbc3059677686b0948ca9d12a464aca9b9316b07cc1ecae4130feeb0e4ae5cd97a3630ff5b3d3d123ff271e67a8f5255515e525719e268f109f06b7ab4d302c999cbebecdc4409c35340a9cb1b5aec72ee6a4567597d3edb04ae60bf365ecdc93781691683330ca0ff88c8f0dd0da105d84b160160ba9e298bcd4aeb1a8d5ba307f3e3dfd6c1a437f28f6ba0686aaf611a89d1761587d3b6ee07638f3b3e6594463600c371181cfdb8a9565ad6f72546ff9cdf38652b6617792f1e60966e16cb12e7fec854987274a3cb20a02de33f01e3d60e2bafa72935b2a8d45141fa5a2995af20fd78d594afc4b3a57a3ae79f42691a976aabe8565beb0ecbe7911d578a1061318dca534e0de3e60ac00d559e4f8e3db4208dd8bef4d57e7a9a6904fadfe9dc20cf2006a262b197b8c3a44b7095e36b5780854b70469c6996ef5d3d0246c0c7c188a8c73a280f3531d526580f5be4e0f5cc408f13191f30e18b5157985afb3f6fef813a988d67f1798f757a741618485fd6b97f66be8de8a03e4536a8ef498252eb3e40602c14340d25c19ad61fd9717c7010d2695cdda06ed3ec3643001fb2a6c15db6ee068694f5f4042acb1ed06543c14e3e687e70cca0ed883ad52256f51cd8b649e6ac014b9b5819c39fd185967999444429e082c2313f48aec1bf9a1247d788f15222c552ff632a67b1d8bb3afd87e8dfbaca15db5ca3dc73ca0cedeb6ef05ecbcb46a7ac635e6f10353934d4231fbf4f77803c24aae27347a5fb1d0404ae53d3a60de1f4a3733b52139e169c2d2147547689c0c7cceca447ea8625f3206950908240d66307a2708920ad4f86b1f641808f4cc2a1b4426236a12d965c952518de5287c112edc65b22d73685dc6307e6c51640236a1ccf40bdcd1a38eb6623061cb2c0e3180fe954effaa990e86dc212e83cbd72a763e7eb1f459450ec70d63961cc622c5d6036c117d50bd6b94e5a8b6162d5bb02f23bdb1325cb2ad0356432a65c6563099536b933d2b3d0880823c799c9038e9acbf110d3d930c1b6b1f1a7689be61d0612c23dab63ee4b89d0cf91dd8e0419291a7b96735f4afe4bd1bc65234f20b91d708279d34acd518154bd1ddb86f9f9589c16a1897f8db0cd36d1d79ef68ee1a15fb50383bf72b78e8aa0ac182ff95b2608349ffc14ac6d7cca7b49e3e892fb97f486ec021cd3b57117ca7f18e042c68854b49a3b16e0ec5e179ae66c29b486d1bdef088bdd6b4b34928aaa126c01148433b2046e9b0f534ca82fc279c0659bb999775b17fb8b24d7aa49adb24923d66a0954098d3a9386225d98b19b191a7331fcbee1f556b402bb3303a24a7d4c3784f72030eefe33741020934b1b2587067a6b2289dfa760d40b03c735e75e93094973153a00126ffc94c3eb6fdab298884d3308308dd2f726ce590ffbd95660eeb56379c2cf8dfcba8951ded270c9529146d0838bdac662e0c5b37834a933149a988676f77cf5a88175a455b5cde3e86c0978ccefffcf096099104c3039bc8f669eef5726c8063a71b1f546c0807138003f034731b6e29eae53cd2b257434e665f041ec5bfa156e6657730c60878e82ed9838c4d69ac3443a1474d989bc2d4c8703f833380c47b0cf628e849722aa7394161756426ba4c8030eeac0b121aaeb8aee970738b0f17d66f567d57e1a8c502b16384ff3157baf8dd253cd0b386a026a306118e32b19c1652d1d203423a3471d75f3c4b29ea3347e98d056249c60afd659e2d368dfa8500bb4692a850038a4875149015e7c39ece11889373d4a08db03e5d9184ec570730058e6974f196ac28bed0eb7af0d0ce8fac569f1aaac8e026ad447abf8b8d171a22bc981659bc5b624ffce7418341df4ed06bfc2e1d0dc76739ea7c256c4a704a4e239b5c685170285945ab76b3f15f9f435536cd3018332bcc0902f8208bb923a73ebd54aace06025c300488566b43555e878393c4277320732267fafc65be488361df4a55c05da7a4b521fc5c9f4a24647d291abb6f60acdd1eb05397cb1df1f8244e67c0fc6ae0341604420aa11321f72aef08c0b7a11ad7b27b6fc23794a869bad37976d21503b9335260ec8e6494cf3630a24c7254aad3d83fd37274b254077209481fe6a9f9b755f4a0a09455e385341fe2d7fe94425bc9cc1d833f7899851d00301c646bb8a746ebf209c1c170e714415257e5618a69f8987e0a22a77a44f3486ea005235ae728048eb6b69ef6446729b4c4e5ef3abc3452f75706b937f68ff4b89687844d279c1bf4c17f0ca275ba18207098b4999053ac8255197904134e131131599ed49a41e199cca5c673cf93e06cb3b4147f7f1a9111de5d3fed3300d8a4eb762cb55d1988ea6bf3bda0400a092d637a5a621b6f831895087ecf40143baccce30b0014316a9e1da048680be6c7105e0044e397c1cc906be3f762017ff83cafe39db878af84d6025a94730d6166bc7e12fff7c524685a3421986752858731a738949c04fd2c79f38e98dabac048b8ca7578d2c311249aada61573ca547732b75d7ebb42683bba1a71e3d162d666b5976bb40befde60808ccb1bb57f4a44272ef691dc1f075c3bf96290c6528fc4a9f7aa8428e812ce00517adf1ebbfa9052acadcf8a1df04e75e79e5592eaaf42a1b995933a93cf5d916e85572135b8c01f19753714c9b09e0992363a5eea9f7028c0d5930e2b5eeb76ff1824fb2663257bd5351642ff496703d67bed3ade7c4d71c5246bfe0b0f20b3cfc661d628881a7b0e87dd2c30ae90c442b0aceb23432fea6b32842578ff418cad2ba577485d521ce34af45b9fd8bbe354e88ab614baf877e1e17378e681dbe310baf7c438d5838eb291e7d7ae86185e31e31779be56fd53b02e2091c1d3de9f1caa2b91689d0f66f6208931bca415323c7556fab1993a17f7c2b4b7ba11c0920a5e3ed65281b85843006f5c90c6d69a9ec212489f34ad1128330a972f841f05a4c8bf179b72e0a3f65fcf9421b17f2f7478e5770f8586d1a85cc280b7a0f00b9159431463e065243e07e22da0895a528fd9f9b3be9188062aba4328aed4f34f6ec4833d2c74514499808cbc02364cd769e14e73e39be49cefe0be3b4e223dd499ec6a4fb67bca35a7532ba738d894acf7e73a571b3555a48627dba3e06e1b64105d23150a77970ddfa81977b53b1e6f1d67d22208326ee15d5ace461264579bdc5e8e508fdf64556741267753f60a911671238f7cd9c458f3635ddfae53de3e2ef22541951f9bf932524f319f1a7813122f11213fa25f93ab94d362b7ef04361e2680984bad7ade8f022e9d22f03adc6e111b95471c851c05f76383532a88dd00f92b6b6e5be12b4c9dfd11fc49b805e3962083048c8e2d708c75fb2292dcee6786153c7629633425049252768fe373559331f08b7ce3437ed76cee5d6b941d85dfd082ccfe08e2a83bcd3ec958085e72c942abef11f3f765c978fef87061976e665499249b993e2c35b02bc22905d8632591a97a73dcb2227c4dcd83134914981b292c58aa5eb6d4dfaeed5b6fe6abe763f8efeb9c506d6d0ea95117612dfdd0b5d1cdcefe3d72d6d3444db1caeee92d1d8bc04af39aca063be441fbb5335b7c31acff2cf21ec16fabdc44c6c1a750d7e0ed2631a851c2adacb0415ef45b54b7fa6fd9a5b2d4e91a49502a47e6e901d5f1a09c1cf8c34c766928539e1e95f597928a846b72156e79e7ec4a409e9817f1b9396b854aa0ca38dc112dd6263c4e94212cc6982020df2cebbd0834b55f85ba8389574241402a8abae77e1954570ae82539d0171bac22b80e2052d1fafa57ee063864e8f71ef003fdf69377eb5b4a733e3bb8e259ca2d338e24533fe13339256a8ea729d7a53eb800e6ca876ecbda848c8e6ac681f3e1583b00d3561b05c54ef1c786526bbd21974ec8d4307e66b70e59662c852551be4a805cce094bb99b7ad3133018d09c4ccce5f2da0fc492a0715eb3b71c12bef3d4c1b420d6eb503832b4f8d5009c22fb2009b56e27ec8f425167f5c8d3c390ad406b2ac55750e9c1ee336c074be4e94fbf2fad9660bbe41348ec2f89a9f96a4e0e5c9f74ef1cd5c926c4b8ac33715234e37882ef048b80f56912bcae57e2363cd6c3dfa9d183f04869cc564c3ebe79b359cafcbb035bea46f7ad2050998086feb11a37870fa034ca044f24d08e2b8b47e9c31ebc70a5923adf17dacb00f2d02c7e2bd94a0c63e4858a5af063470b83c57861b77891c0218314517ea1b53179dfed8e1d2ab358bcd924a6aa9db6f257f5867e891695f6d6d31c8b3f406dc4b7fe9d814f59f9ad667e7cd66ba70623484df106b1c5f575c6c77700ac17b790a726a1e8c50444a108279fc661b24baa83df943b87c472f131be5563985c0175ee77aa314a4a738c1c3d59a7bd80755694973da8ff131082527adc42f1f4972edf6d1f56d5599807a838eb100b7a4dcd42455157cc3516231f8f2b7586f36dbdbad619fb177b1558eb7a99473922a5239d8948ed38a6ec24da275de3f5655f83456b266fd8cd937cb1955e030018b4dd416ccbfe94d114499b05ea41d71cef3d2e27fa451839b200789a0bedc3e16ab442b82e42c58d5970d55cbe76d04afbe133ac53a9b64faef96bf1ed80ae80fd7978e633e9d6498ad0e6572a93e3949a4b0ecb860fe017be8180d519a0083a74222e946bd7b187918a2a12a7493ee3e2e058f4757acbe6392e1e7538ee403923fd40013ad79b02971c6591f56be2a6094ef2a91d9e2b0a05483c9636b64caa7b406f9a3fe2ef59416836f79f5d39cf514951ffa665c98807fd402731ef42365820c8ad5116e2677bae5af9ca989b27b3ca35bff3f130188755018c7fa89dfdf86120832f112e850bf6bc353408c8bd3a5021634108373b24126530e1432f16b6421e25052ac0b01901912774815170eb22237edae7b120a43080757e76b77ec0685c96ce3b32b47841efc82d4b8019961b6d42092a80315e50cfe0032c360a14212b7cd1d8405a810b6adc700ee323c7f941883b8151da186daf25fe21a8a3f9c579f2332645e5d0f3aee5e87b18c54727f6c868af52294441fa6e1a01ca3868cdeb88e817fbf7ac1d33c4306e97e3751eb17a0d089590087840814268e45602d3f6437b310c0b089b1e9a186ee0d89cb98c0988020e16d7dc40ed036f3fa61634512edf5d0066ccbe87d18aa4045e621fd8e5364d29681b71267f3d799b6062b1e0e1e04ccea19afe3d438c228b42f9bb3176d3c3796cd200d55db2eed85122a7f406a2acad9b5c8987aa1d94951e5534c9e149c112ad528442fece547a5a4b409e3fc9cfd258296f125a99943f9046f66b866c2961d6cd0d3afbf12dfd664c3ea85f291cfe2b27d494da78db325834da5f11290ae05126b739abba715e6f13a534703de1566ccd39790fc524251aca5cfcc2692a77f99600dfe9f7c249f03bd21c586b294f5d4f8c1abecc67d73c94612adce11f7f7ea5e898de8a4d0ebb05e8ad9a6a2c11c827a907794c6c726f96904468d235996a4b18833ee39d628919c086f0fba6338e5a90e4de27f1a9349dd76aad5d59624c13f7a1593e4b16a4b47752134d2dc8de599066321710cfa06282557c77c49b58d7c79c5b9957fcabc8232a4eba8115f35d86d42198e855f4f4bcb964110b3e2d0adbf932e2f24820df89c0cc94171feb8f1dd30f4b2240e2ad02d4b080202ddffb9a12f06dd6b23ba318deb4c7bf8071ff91711c78bab1c3306f166de891b6d246f93cdbe332d90cfe131f6684d0738195d40f779fa1dfb4f71b2058dd31b74063022d42b407f4d88b9d31402888b71e31fd0fe80c60203d751ace66e637303f747e3addd9c4fb55d5c4376ae6fc0d0ff272430b0fa79e52bf6dce897d8f9006f7b1488b8df9c0a2db4972b45010cf4fcc441bed70442f08749a077852c1796093efeb438889159a50d35afc325a22c9cadb1fa71c77615961efdb27b1216161e47529ac71b3e602144b03c858f51fde39c27b04f8d21c20bef39f231ad849087768f8c2cb67c8b4103fb2addc5b16f8b0076291049a91edcc9f9fe9f2e5de16052df088313855cfc9235bacf997db0864db875fe8df965f86d6ac7809dac2fd1ff4652a2c6a0890dc12710f3bf74b7c486c61e159d40a4d980354c87fd6fc29ed0bb39285c041347270f128001f3c6245bfe7569a7c08b4fc6fde80404ab003bb1841f1f7d3b2fec74410fb9717d0f7d34f3c7d36fe9c3ea18802399e8d304c3aa937bfe6540ec9fb09712e0bee416ba1f33bfff0c10d66db8b8e7775970fe8fc800a19247379c6e2f00d860566a991fe500505a3a51418af0cf2706fd1ba739daaf80ffc7602d66b84e23c344ac4f5b790a371c45d0d05d383e4725d67072c48b743396445da4bf81f31ab11135b87b8c606dfaefc59b83580b2249cfd71bc761395af301a0ad3eedf7977b59b76dae7df625d1658abd7108da44f9d37c5752f64358934270d0fa42239c67a3d207a94919be467a95de3d719f7eca67f3c64104a0159db6cf6af9caebbd4302dc082b21a7a92107e948ad75ade8326f885ff1310df8a1bce6546afdc062222c7e82746ca36bab3c10dd640207e500488954850e700bc644ce341415418c81f3ab7f7dce426c372f54162fa38fe038da4497ac89cb3a6f610c21f07f375ff4aaa6ece8e840a5c2dfbd2280c9b56325aca3d36124a296dc5e5575c5c73257a607bd4dd37ee4265984d755f33b4e41f8c140be96db70cf02c9de18452d5a00bbabed53de887b536efafdc31e991e6f9bf8243bf575bda785e43d46308eec8cd969e629418ff8113b40f5b56d5a37c215edc196ab434eb6f8cbfc73c63ec1ad8988edc1aff650f4dd0e570c359e8905f399a06d9b407c00b0462fd83f2e104638f029893b72955b28cad680ff385cf0716ea3059c1dd20289e1725e70873a102eee3c6ca1939af3f23a37244d2eec42a0ab917461a26922b25313d6894bfe1292e721000e0c71a7aee30de6f8b73d0305c9e073bc00d50d682d317371278fd5c1dda1be488183d3f2418e59b21e970f8490e3620bbae7599e5bef4ac10f3d4efef2e437a6e3d5c6644555344b4088e7212e7e788f0aba7b4421b57abb27a766147d872927671202ac63ae257f113311ddcb8594eb2cc1d325e4ccd01a374ae88085a097077e4d78074aa9c1c381b69a349552a784e0088eb5c107315e37e087705c04a12188848e97059f74e4ef9c9da7602bb1e131db17e2b0b8fe42a699cf1e1b035eb185b119f252fe0a50ef89170d24a727d08e03043302f0837fb8b36980978c4031f187ab5291c9a18876629d0cdb0303ccb4775ddc18adf6a4193c4688c6eea339f1720684e368ea2a4e4e5459b0995c7219b12b79e8c242aa34f8b33e7c952ea0aea90fde012cbf25883bed21ca1fc5e7b90e92ae94a127c87aa9aaa60572167dfa58cca6957aa1b760be6368ba7a45d5b45512a9bd372457ac55eb396fd875abb6377ebf25ec63f43af882f0a16799108be6519c650528abdc8177abe7ab355967124473c435fb8d192be5c11760a8f13d42517e3868e66be234dc42bc72512ce8831250dd8eb8e3e3a187cf09538b5ddc69f678a9024d561416fc9aae8cd906f126bc0361a0711c97f48a3e42ddf4f7d3a326103e3e29d40fb733f9eacdc9eefee6358375000e436598c25b1195e46f2c2c2a2222649a5792cf9d1fff3ef9da2591bfa1841b928c6e2d05d5962433cfacd882f3bf842a79ad9339288950ca8385aff29741e636d7a8727db3c9af302ef8edcf157b28b7ffa3861155b393c98f5ae3c0df317e45ae7c66c2e021f7dfe6fa6e0b8fb8aac7de4bb93a28f0cdec8004df61f0ef5d5730e880d0be9bc21df90fd897fd4cdf5909315036cf21a9745c7ddf085c5f615cf86f7dff7108492b748aefa363b086ef4837801f63f813a86c4b887a4a1e9e625e24f5d73caa7b1a0c382e4f45ac6ffd064c6f0ff001f67aa9c49feb31b2e15182d8bda13731d65bc24060680101b4557038c43af773824c23479db272f73f52ff4d898fca98d605805f51151160619ccbcdfb99cc1fd430a02a566ffa55085049ffd0bf52b625bf32e73b07a457eda7974cead4334c27a01d90d12ab61978e0e10cde05bf68108622d1ada03e33889300814f2de246067cd155f6ba85800ca7ff1adb006a19c3c101f4535700138fe63601aefbd6d931701b75c0b703e06f9a29bd38b6d9fd716939ebd93f11cb69ca88a3d48140ae1e7ae506e3d069a6781f7d72cc0a1d987e6a213f80b59326e2a2b4cc9993467d1befd56f4a1cbf05419333545169983fb66079352682c70252a1a607026e22150e6c341741320d921063ce6c3907249b3d07f8fa21605acf621ecd8a6469a4dbb47f248f5287cc0ebd4faf11d80d6ea95e061a75bee01758b4702847c7f7ca207461b60c0e99d265a0a2b465c49b45079b521f8bb0a1371c2407c343e5dd005997c80d8d36025b2fd1cd2735f2b61a39512b01cad95bd9b2827b3f5746b60a86655a13abdeda71f7c1f41a831d58078594857221a2ea741f4e4dd83080d84fa2c28c5b9575e5d8cfa5ce0d9338a431c0cdeed0599de0c65a2d9bd15e01ecce6db0ba6687694d5b18fdc692643d5cd1a07dd3abef460fdfd68909866f2eb41b519c27093880f125bbcdadd29f8b2b69ac0293c438c763ceb9631eba4b39b1a0d262e0987643d002c1c6640ad522d22c259fe55fba3307826cc6b0dc71cc3f20a2eb3748391712d13789c5e42b96465985511b9af3b2340397f37687420743639b0a4de22e1b50777c0810575cee9626a6670c87d627edf8bbb92a5813c13f71212633fb8df2914f7d38b30105bcff15228fed7a4b23726466567afae0c5877f40c1e99014408c7b07e5a576cb228d27e0bca8e7fd4450e019e13108d92af544eaa58f6f92113fe9e977d2c637e637b4a065957d3ba61cd74dbcd01e5732cc4e853085798aeb35e0e4e20e0dd7de768865f9c5c57f7b87d8d395cab7dc2338cbcb2bceb3fb4fee3d262266c18dec38b4f25a3cad41aea2902566b836f23d53e43664ece5fef0e49ee00a0815ff3bd1ea75d3a50768e810b03cd885ac603664423cc9242422df6e4205f8579de7f2059a65fefb0bd744be7709f70b3e22dd1402035413b0c620d333034f16a84126f2d358015804063458dae1ac66b49da96581decacc298574258e75ebe5f61d4e7b94e28130aa455ea24431e82a16693b069db477169c8b27b0bc042d3839030276d3dd928ec4ea4a7e3ab2e9201d4ea225d57191083516d1dc6088740c9d8109399c0e0414d6438e6887ad473eefdd12316471e21db2705e8a6961822cd508aa6306d855b773bba459e091ce23b648f74750a192e2c9740223894dadf2e2a8339ee068d7851c392d45fbaec8b00bbd51f1f6d4decbef350db1a96b6861d57090f9d7ed3886aa275f2fcc59387ab46a2e620a5fe42803e627283931a9c2c5a861f9ea72c3a97b019254e16f269780ca3e466665c57e56267bc2014a2273a319c9bd2de3921ec7ed4f08a12ecd8a61c2ed54f75fcd3545abebadd4e79e07236b94ebd3d56220c34bd1d5a10415dea54a62dbc5430eeb55b626d7099b4e8cf86cb3ec41792cf8b81d9518fcfe7a0a7c3dffcbece8011a0357f72d25750fb1982d85dca7d189f4b75b6843e5148541514a8a0b3fd4dcb1bb96bb9c708031915b132e65e6d8f1191cf74846e041f40886c4da936da636bb7f0e12830efc33291a3e9cbf5c758fc55028f4901d17aa2481355f151f3659e58d5a0b4d394a93697579e54df2f93d88909dd2b19f4009f0c01777e3f4eb181c613b113e79d12c916bd05f927aea3e0c74e676883f7268fe118eb8c60a464c2f40077d7e12d5e6cee09c3ae52c9af90e70fa11001a0cd248c6d104480580a0cd570d2987f182f77fcb220d99b8b3ecbb7f7201ba790cac7787a3242018e0e330d461343997c276b48db959ece1415188ff1207fd0e42229b70252414466d9f85661a451bd39cd81739a7feeed6629c8822b24418abe1de19d7a9eea9fdc2c6fc61afbf53edad6ed3867cc0fa259c6d33ec3e7512f14c664aa6fd9d1a1b7d12f8396745a2d4078eaf27619fe2c3a36c02a714bf5c1cb43ab22f883cdbe6527068946207568180cbb24e8223a3135a32eabfa54ebfc118e5d905c667de71cc5009f06429096864df9f205c5b775ab7b34de634093681938e26b073f51b0bea8cd3e1c76d68457a4dc6f8d8e1bb0217dccfccc410e98d5a88b0edf4d772648476740078101162bb83dae2688c820664550ff5274f68133b8a015929e2e51ba0ce0125fda71f68fc24595fe6baf04849c56784c54b176d2361309fa55d1db8d937b4b84681f31002a199925499cdb3ff4bb0a2a81811d223bcd24f5b2e0e36cf92de98200f8e0c447f647cb81a311d03536c82752ac0a609b7fb1c65fb390e99d4d7f709967db2f6041b0fb530ce55bc6709704955680da36fa4222df1c015c4b5b9bd561ebc2b1f04e7330888046a672728dc3ec3763f8d968a7bdf48338fc70944928a92eafaac15e38cdd8fd75ecf3936878ff7daed0c9b57085c536b843eebd4eb9113dc62fe140522e6e4a580281c36d01c9151027a31124689cfd874c6a94f6cee3c6adad18bb441de4bac95c4b4643c22169946d09f518293923ec257be407a1eee8562d1539d929209dc1fb7121964028357cb9e4013a2a1e0d46e3013a49df8f4e177a279a0d1aa76af9d6026a3d0fc7b08987cbd91dfc691e797e120073a2d0bc72c609c43153a173eb7c14cefb5b1c2846b5e68f684b45bd76bbd9243014128051278b602cede3ce4f09b4cad5c84e0b793376d852912f681d6f0dc3d6974ee61b1e738bf39a03e87df65eeb7a10a56bcee1ae02dab226a8a4ad720db08e68d851bc0e7154c95da64cd6ed8fceea2378e248f34e748ac5d6a933ffa244d18cc8aee70a48925077342e48c09c82302e4129052ad1eeeb48ef232c10eb7a7196a76debdfc018d0ecf99f28071661f9cb1dfc83040ca849c8c1856674fa7f06d93ad4522a6e8dbe0e1f22bab7896aa2fab7021868a3eb1c46a13788d2eb17e00c6047b088cc6e718703e8e40e8e11fbff922a6662435a4590bd63d2d59222fd6b3cb142cef7215a761d1a234c1385b44f54ad1e520ccd9a5e27d0c54d437e32aca0b3057924214a558e4926303587f653370720d77a378c3ba2b6fa582aa1f3ad6d8e7cd5f28aa3e956cdb57c3a35af5cb97f95440863b8cf3a1e3b9b6c6f866a31e9021d0f0bea12a2d766cd2942c8b554eb9f06296c58e0b36d4f16d524e616c49adfb03afeb4c9d6c0df34a4055d0850e42f5044d61bb91820fc8460538a51a03374fbb4f7d78bcdc14e88be4ffd872b6b725e3f0641ed8cadd1e1b54524f2d94b43386634a8ffd4a65196155fac93fa54e61e1c72c092e7b972de101d6890fdbf0cba4201f2a8a4b209a0f5fcdd69551db666bed018f44413bfd30470e015cd68be0cdcacf65ff6ad13119408217cd743ce008d602c943756134fdeec97fe20773152394cb857d553afcdc70bb3ed54b0f8761ea145281645fe6abca41ff7a293631d0219f0d432d7e40ebade8d4261a3229f0332061a9faf0e20b1346276707dadc3b9be238626e1a94d069d6f59c8317d5c3d19014999818a7101f0c9103606fbc68dc5bd5195460984c15b96878ff7eae9034acb7b115fe78d21bf9943e6ad25a00a418fbddea60abbdb0ce06e070d054a6dbb0bc9b8b2c36d68028688bd402ebc9dc7f882621658f3b027e6b44216f8013d7c647d29689508f7febafea06ee73b98d56d2e085b887a2d13d7da8ccc64eda31956cabb553b6893a4ff5e9ae7bda8f3712a0c9e02d46608fac7ba586b3338ecbfd4cdb3770b29b100f90f920df5f9c9d4504f0991eca0ecb0e19d59d4460060b835dde7a85fbec0877be3743d1cd55b08fce6eac2df07c1846bf27c9f12ad20630857074595cc3221aa1d6eb378915620356405483111f3a17b49c8cc15b82b3deffd57701a0a1196b6c4a9f8cf68277ec9ff5d354dc8aaabaf793792bd192d84dfe4aae05156b4a7a03db1a23b0bc55e0e68dc5a56fd2be24415846d8b278d0c25511aa51ab4100ab3c1ad8298452262bff7bab78de78b0bb952f25183a30e1054522d7c0a9796b927e8751bad307723f5f8a472d76830c4b56712c6f0c4a36cfcc35d19480bcb3bb3a1a512189d60bbf616d2a5c554acd9a4a216f8e67b8c72eab58090373830ebd88c94ec415e0c32749f7d326bc6d97ef0bec15b6f8f99233faaf0bb5b19371fa16f50bb82a8ce39f9ce3f4c94fc8b2adfbcce9a8f4aec354c7bacd4dd73a7ed42d91fa712b60c7e7d780e52bf0cb547b2377579b77e4d0f278336faf2e3a13bb4e2d336e60375cd4aa143e67be108a7d160ceed4581083d9eebeda5ff4f292bc119bbb73c0f69c0df3e562b4f79ac485572e3807a67d41b10238b2f983037fb8a0b2a87e901385fd1927f99dbfc8d6db5dbd8f8ebbe92b9c4b0f1c62a4f30d6bdc54b2fc3c30675cccc26844a0d9d2ae2d31b55d0bbdb961db56a9c567955f788e8d2da894bd599c8df53a6d45055b3579c7ce9b803a5d6c85ef0d9154c503598707ddf53bf7c125d2292fba2cfe78b21e6924b04bd9b8a461acda7a0dc2d086782c0d5de4125d9b7d6ae100b6438f7c5d82c22d10b91d88fb29b3a602aeae0002bc225b9b171759da20e7fb59a0379169a999f8c7e82ba6b42e37257d6f354336253ef98ab094c4fec2670aeb7e6a07661973a46ff6fd6d75820d7a27d0adfd820061633964ef406ff03f2f57fac8c7cd85c196ac254d4fcdfab521dcc7f7e6e1d710683aca7089060d33f49b8bd7a6114fc9a3587797a710bb47a3e9ec1aeefca569e93ea34a2326c6ff31c80ed422188edd3b14fab077b75c3b1f3ce78abada6cf463b21c4fb54645e952c6a2c3f9b951edefda91422f0841bff691fc49a77abec4ba8ff25e78d4d9d44898ea9987d27f27ce90470877c4e72a21b70f7ef4cfdd0f58161bc5040151122fade6707ac1571e46b91658b29f828d668ded23f53b50cc59b4620c521833b34950fba4c849b12f244659d6232240f9f545bbf674fca9006cf695ed23749dc60b65fc11771c021cd0b03ed16d1c1e4716ff231a85a8b00e2181e1af32e506b9c4cef8bfd199393f02a0e4083314beae1e713261c2f1882d46064cfc9e4dca7cefeb67f790e9088a57df414d8cb621a690f19d6b73a4d40409dac3f8770fa03a62aff3d1f0438bc105fb59d728ca0a5f395cc8ce10b38c79124900caedc263a852d87d2aea2021c6084b6ef4fca5a6dc6cd46347962be76d1fa106230115355011970106207ea4b3600f47e0d2e5ceed417f8b59fd241e90a129ff02b9b9ad7ab2723c219fde185fa5f125f1b2c3a8c951f2c9fa2f08f7911133dbda95168a94ec05e5b8950c869dbae5b867d67f58c78d76b0f3770adb2d70088dd225b67b78d5cee01d3ec92d15f282ae70f3a40dcb08d5524447632cfd93fd0bcd8f65cfa7dc97bce05e0764514c1fc5ab2336ee3396e840b9a68d1d7a20147fb349894add837430e5fca09a1bcc1a49e7fd355b2c9b99fc306ad48c9bd2531546e1d2ab53f26fc7c2151c1ce90b557b93eada65cd75a97faa11b6d8b7938764aea1dec9c0337fd1beb60f3f19b034350c3141c1de39a354284ba1042f54ff12fb27b3d1615329abaab893a4f233299f17d962ad7a86bf61489f4520cda9e8fdb1e3e6cc3145bc5582cf74eba52f8028db49dd4c5cf456a05584e0a509a18be2d61c6a0554846831a0d6c365703bc393be5be2aeb83b0b8016b3e3bf33d992847aa663c737905a8fb01200089accb1f1e742798226c39713cc315a776046da23baa12b2e6758f9396cb05d6890bd5c89efbce514c1629b1543e4e68f4aad208d4b8c2c0b285a318c8ca6ebc07085a643bfd451ba967f1c57935257947fa4b4d51790f017baaa0584892233585551c4e4dd7da97bf48b6125e6cae98571ae9b75b05532dc783e84060bdd05524626ffd1337b992ce70e2a2c52326ff1184da8947b233a90cbf36770fb536c3bd7bfb0a3586f6aa10313222a2a0bd7966e6984f7daee77593158ddedb6cee8482bf7dc4a12c54256fb3a23589cba6d30310bb5e74f54b4257a32e207db2f1bdb8a1c0a5d67a327063b893f766862ff38edd8e87e2bf4dd088e2a8d7a7ad2b16b7863521fd7b0c2e629e048858022d7207fceb352e1863d31a1c4230162b0f47a53e7490efcfaa3a898930ac8b9322a5f709947b6e3e855611687c0ffce0e726e3aaeec2e08e54128a935008ade60dcd8a858bf854287a816673792b168b0e4485d0cb242b8b26a42c15d5785cee3928af60b7d1c0091768c2712948f70b412ac28e51a21a17e3d29240ee228756c9361fca75923f8b81b43bc40ec33f42259ac4457576b75e9a0c2b6b8513fec9de19a54b0788039ceb38a7c5ac54909482e50c8f70bab7ab5325327b91cfee24ed1d353550c62a7661a302513beffb5ec5cc3d0d3f122a44164647f5a1114e0153aca9d4671cc27c3ceefc0ba5794989ae5920d7963e3e54ff9cf6584712137a4f8db0dba73ee113b632197ca79405ff513fa2262e234e53a922d6e295148999721cf1090ea200f06e8f78a3f83b3da1b5022a3d0bd1a6210036df519e043cfc2a0d6d352061f411782edfe9679ea72f75802b57059ff3732abe1084120b879558f6ea0bda22a9547405ad4af5bfdba0864370582b1ae0b1ab08d67fe9776ff13b12102a6d2f2d69537773db29bd443a2a02dfba53af0eb6022b0d74f34a24a54ed46299d0dd61e1a9cebe99f9bb8ebc90d0207cae5620708b452d864c819bd4468c2c13a8e7d9edd49ae7ce2ce129c2612a2f47ab62c1c2b0e1541b2985b1f39abbc2461b5362b2aaa896bd16cd06443c008959898c2d9959df7ca86407c2919822f6c6e30642a8a40be8f6814a80c1a7755125d10e347455f435eeaaa00517c055d8986ccebfb52a163b3a91bcc7d5bce2cd904afdb29e80003bb8faeb1511fdce9d8e851f55b66d658ea08c45944dc66ee6a1a11911f8a36cbdedb4c33aedd1be0962262618b81469d6ece6d65a79336e6cad44c7cbd071fce8408dcafa94dbd07fdb53f2d6c78687d6f8a775c0816813f21bac0bc2d5c4dd18739d9a3c61f1b36ec06c566f6e4515237fd955f97d49826f8d8aa47164082b9b96e3ae1a6c1daded043f676477922a5d1b1d3f2228b36c4c8805e00084840d0f7ce1ab6533510394e2e90af3f3beae9e39139d47285433a9a80d66e5287c581ae8d2b1cca9c1d2fc248ecca0873ecf63044e87df435add248df69516340107e7534409eb3464dece00d7dd41c0da62cc1870fdaa564125ae13d451bd24c20b7b0b6360408ee279ec1fb1c39001bac24befaf19f6e52d862547aa4a5b730d423ba0a2e75581dbfe8426856c9512b316ab38d191680fd893b03e0a7e01ae13d296bf1f689e738f54929af8dc637bfce94008e704f4fceb948c2580da5a9aeae919e1fb97fef07cf6c43b520dfad984b2203056d2a65440f50566ef81ef4a0a07787efb0c895e929b9fc09021d37c8682aa1376bdb8bded08666e38950dc7be626def5f3f1c955012ea68c3e98b74845708853f1915b407fd65a3cfad79103a0ea44aa8a656b5d03306179fb4a176efff393cfdcb71bd1e19d84e8b32a475bd7c6aa1e2d8185ea20f663bd6b2712caccbbc45949dfe95d822e59581212b871eaf3c99daeaecd506bfc4a7e250ca21b38584810d8d0b328c0ee5e1114b60699717b823f79e7bdd0498cf552f8f988353cd69ce4cc798c67bf3606986cae31366783dee40efa05b1016a228c8f947d8104aa226065ad7504f64d3311664124e21135efbe2cda9d978c3d7a8b48795412df11817ac186b4972916ae1e8c78df142153045c4c9966479b08eb16d74dd7555ca1b4c249fd174295ec5ca3bdd46d530ea2595aaebc9f39de6f4ceec1571228ef21e5ca3802ef6e70833d967685626e5cb32664365c7669e84c268541a4c81b8c335793282743cf28183e41474b6788aaa5e9025112f0a58fb5b511ff8d452e81975d0a9d35596ab76f06842dacb966e0f1a6054033df8a7979150bb5205310600160532c0a55acd6cdd4b3d811265dba673c2784cbfb01fa49e29cc34cf29bfaf89eb51400669815ce86f5243705705f903206873fad26e872b4126446054d5bae3f5f5c262f65d2b472d41026cd22eece590c9aed27ea650242a280faaaae7ffe2ef44a8cae1d11589839955aedee102e7d5b228f837ac050b2f3aebc23ca12b2eca4a040cf4dd4fb1397597e53d90a597488388d6ea32927f12ea8fd8ee09c5d5362f69235ee73dc3022404d76f5e6ffd93e17bd2b0065a7f0fe642e03a21ac29c8bc00416e3c6813c94946485273efbad6b91d2a47c2c934982966461927d24a3c359ecccace4d00b55b123deca0d1c11c7bf4db15512020b83e7f96c033040c10ba7d34bf8a8f65aaa860804e0f76324d95ea96a396dfe9610bc90437899a2772ba0f52baf2ebb97210c5072d6de58923f73a6c4f549afa4163956f148b63015cf1186cc10bc30a762a60ccd4b11fbfe5cf0c235ada55edf52ef59b783d38d4246dd0a919d261b731202b203ddd30e989350f02f38ce70f3b888f9f504ada6ddf0825beb208603b3a73c2d396078eecf478fb78b177647bd3e6ef10252fda3c468d6257f446cf182d67db368d46f41d48e90ad7e06c9f92708141b4089628c61e9d0c1ccd38c97deb1a72195ba68ca9e956ac1702a6e84ebbda7422891575704a041ddb98a0ce4053dc7b37a167874037a3ca1ee86703956367e253650350561418dd314289042ce797b89c0c0fcfb038118468c2fc8e03f51afa7330dca75abf6e6672e9755a40aeb4194b1ee13e3cc84744b9be72baf608f90676913f4529cc59b940062d1a13f99b3f45f3ee506066133cfef82c63ce7d2135b3380962e6d63557cba266fda9deedaab1acf31d9a62c1323686b991992efca7bbd9443549e9367cec990690dd013554e7ed555516c44abc38531d18418b2c61cfad55de79ba9246a109164c095f45708c98b4138d0f10c726c5303a498037040a1eccbe3814013eff4c822a09e500eb9f0df9946e97c5628684bab14144479d5ea30a34fea9f8880ef1221c7231f349afd6fe78359d9c0c86ce96c3ab4e97f3257a847df64439a7255c841f63947b2e57644eb4b077f01118a0361f860f0c7c6cb60e3f9c032024252600442a1d4905e6945a29965f3ef67800a90cb557b2dfdea1770031373b3a097eb3e154017224014bd569ab5b0e713845a7eca8301aa106531d8c945758c22ad1fa3ae49b718562cced34136f0c68a28e9a8a462e30646efed7391540e9a5f2e6ead725c328c9cec195622f1dbefcd88134a12288588eb32b0d5494bc81184783a71e862789f86071d7135dfcdb3e5e433a540e10a0e28d03c1032150a3b73c9f50008a87a0fedf462a8643fc07ecc93b84ae7e48cb2079f9d80dead21446316f03cb51a9fd91b83e461893132d0d4177dc368644ae46fed7213ea6102d89703054cc82bae564a2b8453b9a64cc6306892b9fd2efc0efcfa135e87a961561e38e5de4db358a4419a39d80b8039ff33d5950f6e36695b0ea415df3ac70015ed86ccbd821b6e1f2ee272875a993b7f689263b8ab319ce16d6ec87bd0991c00984ff94277fc12f83fdbad2d82f651890c785630d6894b8e4149c66a92142ffc08d6e4916342ce081c3b01868d97906b9222a9b41477031e2d3d1be685c0b324f4f900a222241022addb51b551179ea0a98834a9bcf231fca1fd4b07bfc94dde5817f98b8f8a4b34e0e1c5173a1a0a9010ccd7f7c4da4d2ebd176ff9d85bb3a68c0827d9c24ac7fc74973ff2e7da434e4a7f3cfc29120da626a6e70d887dbeee33aa620e8554d7fc2a7c342c1a7395a2e2414cd26c4093c88925a87568f0f53bfc668b2550b2735ee2981a11194c0bf766e76c5f59dd5a2925732580eeb7652b9d41b7ab1f706cb3535d1addf01d10a4d219001d877cc83fd723fbaf5c0b1bfa5e4c1e159a0c8cc5c24bfa508c50c9c3dadd98e39c2f2f188abe36d69a131e927caa5008fce47850b3201909353bce181058289f2df88fe4e02ed96fa426c3d4c8256ecf80acfc24d1a036edba2ffddf6fd8f9f5f13b89df51528a5c47f50870956a1f76f6d079cd97b442032602c1127a7d03bdef5ef5498907d37b897b8883d1c70fab6ca7e1c98c101f7d62e7ade6038cf6ad01b2c15c4306f819a3715e6400c87a14535d0fca6e490fb7db64d8d86e6cdb57c363ecae15e72210360cef36e4d3419cf6f82fee71709f7e19ed376558a2f99298af5f3317da51160236c34a3ee37749ab3553ad324a176a0f43c8bdffbd3ebc322e38a01791a03ce00528be6f7350c3147b63436b3a38dda1b7749a1ad360dc85e752598706e59532b3613442cd0f5846cc03333b5cfb2cbe8e92718122337c122ed083a3fb428f921678d43c7448c3d186a4295cc50bf4d0fbff6e2900008d1f0267cef099166a4333fd3cd187666290aec9b95c25a1eb3c0e823b206129d66482953fb7d43f578e3120b3c24996a5495b2a32e85dd10de1f82677dc38e6c7b5262666b5c179df475f25fc62192feae83d6700331353a08b4509a4e5698e1e606613330376a2985203b587d172032e7ab8670a66a81536f4b74ef9869191c38049b3be5ba76a50a844cc8b828856a881eba0102a983fed5fe71a268c35bbcf9efded368b12e43ae857a0bbc8091721c0221a6a20f26f8ed7d2ddee4c7dd6173efbe44975ed35e700d497a5b3dd1cdbfdf2ea93af4af0b9d517780fc0f57e3faed8e2705b7dda9e2a1e29cd7b261b76aab06797524b23c62b1e505ea330d100d0a47d8794b8ed6dd547a6df5dd5efc7aaaee2669eb9dbb68ddb567de3e78d6a3d7e800fd1585ab44e4da9d184e97e90c238ae743a133f0f3c1dfededfdadbd36247be6277517dd525952171e6e2e8486e2c0ddc9e33db999b55db1b180d36274261332f9d76ef98efd655d00dc52362b3c3b847916a6d7a72f33d52b5f4dadd6c7559e8fe34846fbb430dc6a204764b2bc1829173c7df1c580559acd83c53c658b57cfe6c8ad69dcaa6b81ce6b3a043bb1c7bbb9c7a616e49e074f9f30a37366e4fa0e74d756db97a94b3a32fa858c4bac9e44282292a8a63f645ebde91368dc4cedd26596ebc1fddd7652f823e57626be24f40b7981fc54774fef57fbdf53d27dedb7b3b443155d2f1c4d70b83c2f61d1b5816fdbb55c7413c7ca3a729f1c1c588306dca33af008a0757f8954dd6968845a28e28d1ac6b183ebb8a0d5c8ce440491d2be790b491b94a7250ab95cd640cb93ab660fb79a33449f9c00501528c82eda6a999b742954df122cbca4da9c4d9e5812da9a840ced0d7a235c91bb88ccc00700df503c215b26b6cdd9eb64caf9066a1ab425de80ff96a0fadc650d7c415a82a8f1ad3571628021a985fba9fa8a927c5e719d20af0b646b7b4e637506cd61c48f155b41d9f92868197e6d055b4afb7409da5f39cbc2e963b20c204ec53f4b93d4b1f10142ef8b2e9bcaf4874e6fea2f34063f3992c21f566fe22f29866c3b34c4274ccfe42f2906ef3934c4275cdff46f3806ee3937c624972259482f12a46592af0aa1851a69799d95fd26c818a5facc9f076df418db28cde7cff7bfa4b230dd5c88dedb7c7bed9f01efbed8306f7bc675f6ab0d7fdf74d437becbb4f37dadfbe7db0f1bdf6da370dee7bdf3ecd8a6f7df7c1773e7ce8a35be1930f3efada87cf7c94757df6c1379f7cf5bdd7464562756576e8e7d5172ea98c58fe3f542cfb43668bb6d37907aa074de3c253411f7f2736d5fe28a1951e303e1cb44149958afd15d96d3fd6bdb8e43262ff0bb25bfbc329023020cfa02644b62b7ef8373769e273322b3cd7fea81ffeb340fb16f45cd334b32d00a122e9835a5cd20b89d6d35dc4e2352d879070e57e49e0fe28b9ede039191d9371387ce7d559ecb96916e02d5d421e0f930f1df2e688dfd3dda7befe8021d6730ee1c33023d4b93b839f6b147eb788e29ece5f4e34f1e78c8fb795974eeb959ececcc77a587810fb667aa83a5e3f348ce5eee771a3887d3991887d91d3f4d0037139b7a2719fef016f2c12f22ce743139df323fa0fbc580e399a8e2470147874dce8a77b7c23c601cc9edc7ea65ef14edef84ed492a43988f046e3baf00e67aedd51ecea83ccc9c857a51d246814e77221452e3279c3e409e21b7023b48480b45b047ec21d3edc6d9e8ff834a28791605801208ba7f2cd1757faa7005c3c7583f8048640474219c6a838fbf8dbb924032e765e040d7a060cf6f820d11c718586997639d0e2d228e80392a422b437c78d61f56f8f4692c8d2e8306a7b9b9b136ff40417bb60e277c8af27bce398435ad98acd620090e414ea7e9b02c65351e7acae46b6d0d6986e5897c6ccd8730f544a2371a0b97311a90c793629758fdcbac460176b3dbcb8539abbdfcbea774f1b0f7067d628bb9655d0914cd6f0063d3364411dbcfab458dc70a4be3ac647a9f93e27ef1d1f6d32c559925d39a6ff14cf1bb9af9026792daedd6b9d4a6051f18f6a6ae977be04d9dc0c1e6a1615fec862bcd40e7bc674cbbbb7abca506f87bd3eb34d8eab4d3403c61d9bb87e5c95dd23902f379b4b53da6239a0b8aead9f46e89bb093482b25f9b460f92efb3ba8a4cdaee34a7090b586bfb6c4c342a273d0293784e29ccaba95fa28bfb3234427955180fe722dabfe672d16f2c1435892416a3531901393a161d7662badb00d46d17f2b0141e674b35d9ed894e2ca156852c5066c3287ea2f49d0056da371f887279b0b7375eda8423099370ae32629a5517e1e1e78d2946cbb5d283c4d6c9731b359ff9d49baf6a1be9005818ed80f8ae89dbef80180819686d0db015e2560ec83e24146c2fc007f6b716f25de5754e8ac16fbf99524be29eae5a196140fac2f651b0c51c853f06546ac10cdf2fb0b02703a6ab71a77ac3710d2123d92090146375e84a1c0e9b245952ae78fcc50df35f30921961cd8ec9646a243d4d174213493ac4b16e205cc2cfe7b448cad0b307d554e15d15b73e9ad041f6e91298ba8e238fb7f2c02a0e9aa15d53ca3e60eb8e43f5578892996956906759ce290a1dffdc07a12ebcf121a31a4c3101ff025c6ff12e289ea5e2b0b0211f2fa578ac018607625fb92df4efa76870ccf9bb5ea5197628696218820f75182d9e63508e1d3351083662a27c223e7b80c11955ceecefd4ee14fa93e86b8f454cb3635f7edfa99b94b5a9dca12b9216b6e42857d827f342a9c24352adaa7b842c9c809b916cda8af157f9db1c04be9ba2d89b2aecec28ccda6eb5db78586a8ea55413ce8a8c1be01e062320e1e02d7d055bc54daf4835725c90831e0070c8ffeae3fb828b18b565f6de128433758872307a1ab6f1fd2cc60830b63a54fac562ed5619e75576def525077ee255bb8b5604e07e22afe79659cbda5c389427b6c2908fde752d91d20983e7b1a6a3d92890a6a277d5022b556a54052d3219b4836164050ccefc209eda0f14747c0e4bdb2c37fe75b12cbc8947e074342aef1662df1f8a1f877693f65eb9494a8a19e33131139a8d4803f4257f91ca9862f8cd762532a40351ef1c432207640646c1930a93d28630e46ab2a327d40681b3288528bc7fe2445fb7aabcb78ad246e8c76dbec2d4906c4cf8322a8924f328708119c9a064b5ad49167556893e203a1962b8ee57286b58376e751bdc2d1d9418ce8faa1f4f9ffb3b84744d7fa3fdf414dc7dfb776ee0c1f8eb2e816acd558bbc8c13c0ced8d92d309696487f32c76325f28a4a677cfe4121747a3e978e093a8f7756314657d48b03d3f7ac38730203f30cd3fc6db0752928cc3d8b7aeccbc65efd867c4b24029ba829a0b6c647c6318ac39bd21da2fcf52ec586818340146249a6d0ca0a9775077684df45be98f4ec908afaf3ffbf5d6b6853fe1ea5692744c008b0af952e1dcb2d18a1469eab091b16dfc9d2d6e8165a9e15d8fed4a8432094d726e6cacab21ed051734e5d9f2419e359215e52f092b47f76e2fde2333f1ce6460e8e3aad0bfe7960694b6b5eaaa4578acfd66066b5ed9b6697c31559a876a912d92761c48cc604da10e99da46bcab446a1941e8c5e9c51d080a28bcb4b3645d0272e039c42f6aa83034967d2ac564268a99b1dd0ea0eea7b735eb6123e3060c0db14d167b18356d3e6e516bf98455ae66ecbc5340b3aaa4f358707797d85907e8f8dce56228658420c68b4935a9799cf702a1f26a8ab4278b1339413056e6caa05f739134e5688a8ea94a1bd0222b04048a1decf828bd6978e9f816771f7d41dfaf1f8c17500f796a647f5bb04d55424b24578c395cb65447b624016209ba659a028a3da8446ce2e495c8d5e0ad668710d6250f851e572fc6aca7c13340125d3c36c1e09e46a221e039f1997441be01202c382ef6f89fd8d124fb9fd12b0e608014ad8a1c0b56b380250b59b3886516586285c5b21cdcb22ee8a11ecb7c8559d5a35e5debafa7ae7aeaad7f9d3ad5cbf5f8eb2c600c072224ad7a55467141927c6391f39a8660e9a1c130d3d0cf95045bb9de6cbdd1addf1933cb142b419a1f1914e60686b1d1d5bf323c95ac663fb66d46b564c39eaa5f5d586cc7b8fd7e17bfd7535800836587be1847e12080e92661beee711b135636f3419f2e61ab2ab6b929d0bc887951c6d73d419c2bf20ae334af40707dac69495dd6c738f1ad177da9b56cf254d45e19c3ab9fd2542e155db9c6142c01c043df82b4a2fef97e13560ff531d767fcdc89a870b7ab3e9f31ac4c6583f1adc968fed4aea860bd5f0ab9ff40eabfc1946a5179dd3ff8d1b2a2dab37fa17bfd89c57eb4726b8b6a4bfc4dade42225c40ac70afc09be9300fccddb002f2a75f9c799122d2a6f7e5f76cf7ef2e27f1599a4a8bcccef8b9e3adb245654165f237b205e2ea312edff449e5e51791f7f6ad0aea2da37fe4a4ffe1303ffd83f1b8b6a77fe2107d013225e14cf16155956053796a1060c4d84a33acca2529fff9b02bda2f26efcf44cfd850efc6d4ec47d51dc0df91bfc155530fa9d21fd3fa4f2cf90292d2aafe8a7ccec5054fbe6aff4e43f30d08fbdb5cda2dadd734490cba20a6abb8005a4ec6c2bc3f254eec4d35054c4ee7bac2f0019016f748f63c48954f2808758eaf04d78e007b434e28baa9d2c4e1fd2963aa86d9896a54b5115dad75ac401c6d1f8d07a1a66c4343714b4a23ac2bafc806a50e2a115bb5384a29a14d419c0fdece406bef7d9df1922c9db207d5b7b82ecd8ca29f6a0a81609225ce782a6a76c9f2171b72b3514540428a21729950ba48ba94a35980a9bc68038b47a8f119929f27e9084bca5623333221331e338b3089b0603bdff4c46b421f9cc0d22793e6058aa20809801f186a8ae3b9f8b27bde8373304e36d8735404b56579d7a839ef40f9d279405103320fe08d564e733d084c7983e9a897146fd35be200b578e10da538f2a8cb4fc44dd9cc70c36fa47f3b8456bda1c5f07d470f3727c1a830ff65d75a97565d045a3fc2ba81ca859330fba8df4cfa07b5d866f779a3e43ff0a1483f280d693c6598688ba8ed28e1578219f970b41ffd29269dec462cc03e89bad04a88a1ee45a7afb8886f50fa0063477e0869a6cd7b6ad25022e351ea2f6115e11911abdefd00a635b6a7c235dd1f29d2ced8548038af7ba4574b6904131d09c87f6a87e361a4c902fc3605587678437ae47771b1de642bc1e9310e35b581fb05b16a16943d528055e88cb68a9f5c9de6d3fd746f029f08f61170ff4d2a26dde7d70e2cf1e40a0808a930ddcd5127640d3c6581cc05d411d07803d71e693d63230f0fe91830b92a3f3fdd8ecc111ab64731d6d9f978000e0930cfc7062982b694d65ea7e200332d289cbad4602f1cfb8a90bcf093b30ef3f305072ee0cedcd03656213f8748d7f79fd633344ee83822803f6294ec398392a76db36bc6164ff82127777797b41f9c685d8cfc2addb020114fb412ca42d6efcf66e9723903e024c2a4c24dc5aa2cbef44fd3f26021f768048978af52a60b892c00a7c92fe15fc20e5df1c6b49026672cd4e7559e7b0d4cc4b29da916b01bbb4049ecb78b4862f8c7a47825a5bd77c11e83fef8fc0466063fc393257a13de33ad6c5da2ae48906a6aa2c789bda7f394297bebd10b91700e342804e0da36520913c916f2e750c92a0e0e162b82b098a241ddb64d06fd20d89e8fbcba935315aa6d14b47276d5a22838801c1014def1d3223e95451952366c088f60b1602a144726b4ee6630e287524ad607f1d8357f8eb177b347294b5423e028bc35556889d5fe411d72ebc8e0da15f592efc1ef837ff789d40f36eb0dc79498de08cfb0b56a85fd82679e3aa5ec66466c5c4ecdb71c6c2c140ef3f93a1c9b37e0437eb58ab675cbca4dac7225054f5322633435e27b4499e104ef5e24dcc6ab3f0c9ce5f892bb60016faf63380a63e833bd4f31e0676f79abe904d0cfa0b78a7aa5ec6646644d621fddc0d0a293f64c15dbd91919831220c84927123a00da44519b6b684850092c944e7833c807702022e1f8d4f808ecce6dd14c70f9080286d0a2223362fca19ea3ef81db8665cd05816c9fe4c8bd29cf209a723d19beb004c39ca93809c882359857ba49f9866b2a619385be6e55c321783e3a8c1dbfe613c93df3809a241528ae388adb4e16bd461cd30ecc9c6dfc80511b51700d6fbadaa12752c169570ecd4eb0fc6e98b66363924f57a6781401dc37b06f02abcdf6bf4148570f359b303c3c9c8a2d03e2275cb7772a7affc9c9eb63f5b2d47e354d06b172e757ea03a9ed8ee81a09b3479e9af9023fa38ef1d650b1d2fd0a01e354282c125caed45df9872638745696493f48b0e675135ee885202dab5d61b5a6db5a985468248252444186900cbbbd2a1ff5a5f225eab47538eae896eb9584222c08ffd7dfabbc68841ab4159aa3d3f7f028541c78003cfca4a232df6650ec23d7fec13ec0d3fc8cd7fda8a344b6f86de233229e6cf863e8df35fd514f701106087640b3c8340b3cf8983a41a56d881da4adac72018956eb36df01b75083cba300fce6c0abb24929d32bffe719102c85870df209875a2fd905470f0cb44f047f0ded58c21508410ea409fa4140821e85c11aa2cc12d3f953df7a5dcf56b295134ba0de3dbac8d7aa40c7776cc6bdcd761b5226db3c7bd5d4322e863e3f2d67a1f45b712511925e763c0713b108d4450398338f685abe91e2735cdb2324e03eba4a5c565014ed5c3a4c2008244846394158729d39250285d1cf478f650cc0a8d1e8262ea2789c6109a4a5e673bbb12cc91abe3594923562e867cb88f265c30642036b0f7433180b18145482bef33968db995a172917df2910a0cc0b74b20861512d40ff6eb8048a8907a8f13f3fb91b92ecc734021416ff223225f6f8c8b68995738b20c960145927303201cdb1323842905323cdd6cd7f836be9eb71be268cb0e4ad45193eb93ab1c08f10d19cafdc0839fde322e9dca10034ef3c7e6b687d7b60914627182e50920a558ad8d5da5ead3845a439a6965b152225b13cf038d08fbf4340ee9957885a126ba136ca790253e05773ba840955920681e2b9ff3ce8f6e7f86790a2310a5215f1944cb6c10ed18441516e2c25e764da374ce1b428167e8524244455b571052dc8e939084621c462f95f61b956b8eb23cb275559b471f3372bad06d2ed1790e5e8a5dbecc380389b544ca97f8dcfae134db9f1585147f0156b4851ebd7339077a2b24c1811afe0809103eb34342fd61bd98ecfd3cfa3786585148f6be889c45866126d11a2aa9aea69f1f01050ca5d09e50fce9aaaf0d80d22d7173d4d26a55308d3c6f8b3ef755060815522231be93a8c3d570e5f9f506059bc349008773af0002580030e047c78994fd7980b0bb3e7a047701b3f2483164790b170a2646d17e52b701c019713aba1521e3eaef48e885e129ec915154765fc4fe09348465a5a501a36e26761abae2d44093553e40659f66e108bd1d51c76a5ee4e2ff82389630ef9bcd2930f4435c118fa5ca50f9a932e0ff11c79e49adb342e609c49c83fa07770e0c515fa4fb8eb48d87cac4808bc60939fb42496a98581d9e1830c9ddf2f53d07719c0142aa272c20a5eee1ca5249351fd90216a268faf9e93c1eb313e767901bfbaddfc93ba3c0122c6aaee1fcba95b957e2d896817982718da165ebba95294de8c4ffc1469555ab455d78bf16aad306909595fbd2983dcdd7cad8b0b5b1190dcc490854b949c2b6f85f9a001d89f66a415ef185aaf8b7bbcfa6c5db8a1b1b6d6d8406bca925ac596a751cc87fb593771f5a12b29846cf283fefc34210c0053e9837a8ec4dd05267fecbc9d4c2a6a6d18a71b26f2e2bc46bcff7f18a69644e986883053aad41cadf5690f53912fd5b1bb3bbd3890a9314abec7269429c671187dddf81588c21fa7d0ae1a0a3bb8a4c8b31ba71486b6a29106b7d7365040d00ddd0e47573660139c1a713c9a264d1cc8c827b02256c0887dbd7a763f62830c9d0c97080789e36a631d3f7c3a99a5c3f27ad8560970712b7e16302d52b78811f0a14bbe73fb89f73cc4342223f158878806c698965aeab582a08e33e90703d9e7bbec2d87eb8da010c306e70893ce56f849857055b9ae360389703f88ac759822e401d6265b62eedbb224ffb89340211111d50fa59a8eb4fcdc21e1d011677697f86968ea71299de0ad7f58848a6e7d4595811ed59b3906d2a62ee5646f728adb823385a8947ebdf364199d66d1770bc5b9f941f701092e434597e83e8bd24bb692fbea79fadf4ee414f10a2124019eebae53efbe4bbcbbe06f5acb606dfc1288565b00795f819445740082d4c32fefed2b94b7fcc1ebeb9c4135b80f4b023131f3927a4931dd28320d2fd103d93aa8aab38abcedd9e15753207cabc3dcffc7dd9a54042757c733c0ad897043158d2e38e14584de7a5c58582b08474231717ff20dd97b24d38a1fe791559683824148b43bdfc0e24a9473cbf989450643c38563836e63073351a096fffd80186f116413bb00a6760aa42d554350c95cc04db3e0111efddf3835779800ae7f1f6d21a49962749ddf705b692cbc311f985cf46703007aa137dbd05009cd482fc2b82a7c5bd45ca3b47cfec91b6a0d0f952fb70a5422b644cc4ea097178f0a3ea776d8df494af758e03591d8d3354c74521f042748da4031888a0dabe865d51c69f5e3f603c3b5682deec0a9fc6c416163dc7fe6628bfba431a1720d2d948e1d5a2260a924748d2ad62a59cc03063920d65982d02e8709bab59852e0c29a28bee2c9762b18039be4c07002c72ff304b78f6edb1f59a4e0370ac7f8d5e6d87a815d4aac80afb8ec7b33fbccdf4740672d73bc5b1fa466aa5972b10bf4c4db3554d6fa5665ff04be150f163696918aa91b3e5576d75e757f67e46ad24d335e326c7cb906a306719f7b2b928dcf734d41b0bf0707d28e6f01983ed0e03c865464ff07df63253bda2fe2b51f329ed89d3f4296f2407fe24a3dd13f5c3985728c7ef10719b3aa51e3e827a053b0c880b7378a415c29245f659b4927ef3e3592a89634566b13fdea181bc345059b2d64bdac2edcc8e6da633d82a06732915ccd45a0b57b66a129c49fd261f13bc02cc05fe845aad7832c7b21f1d28ee9a064918ba88dd2ca3d760624d73562d57c0533e54321b971034b7ddf283d0123f8b669d177f4359ed959727ef5f0d7a0d1e05a6ed799ced9aee8c1e147cced0fc9ab493a87748b8cf3b2342987e78dbe41dffbb1d0f8b2ecf659b479b095c5bc82bd8711fb30467527a23307e822dc1b4c7d5a0c131fda6b1029c2b420d9973287e5a0a2400b1b26a528251b32e7fec9fde26761d19a6307e6f892041764416b395de1b3d2a7d2a6768fe4f0f99b4148ec907e2216fb6e65e42ba31925e244818201a1152a0410894d25de2af87b08a408c2b1654f81f989105330bd7b37ec99291456294fbdaebeb04637d4d536ba4f3ee49bec920445fbc368f04d585a1aac51e4214f36b1c9389d6439f7b1052cfe4c7124db9be8dd464c996f34b3f1a27932156583f408320e801d3f6409856308047803d4286549bd8f300478a8e2e80646ae56cb8fec2502e8746d88b2963635e78a26173899de36f783308c5d42061c643928ae85a5b474f91cddfe534f6fd527eb691f9dac1310540a2deaf96c8cffd9871f7e8f6dc16dbe14b6ba3df75b7e350cb8deeb990011395f85b73e28d7e41badf7df2542ebd0b6418803d75798d748e6a9cacf383e163dc5349612ab0b6e2b194654a3f9ef4b5ba34042b82048fffbb193f015c6ea1c8e51e800f0c308ffcbccf611fd0ec99fc91df68dec6fc1be9ac9a11a981aaeb4cbf81a99ffff433776e0a4ecb77560a7ca7bafa425c9e01a987ac9f47263dfba932c2fd3e97a632d987cc4683aa0b5f540f2c8bd8f297e49b376d0bf494b929d87b08b2c5d7dcdbc831de19b04d493b7b81a5fdbc94351140f0691d96536ce10760739d0f4c57bb9ae7f8a20830f3f3cbc13f2fb88e5dd3a1c7984b8ca305e6ed83fda1281bd73d7e53d460221335e5da04ac1326438f509fe54cdd8445dea390a255cc71a538f3632206648002aa8981515e40145251078921de501815e930629533402f01d05c93c55d393799d02648b9a14ba748d5332abe9e52ed88eadd8a03ea833d7b7e73674213ee4e48393b96f1f5a520de68d2da476d143c5b15593ec6a2d637875469b29b6cb9a59432491905050905e504d6da185e62983397970eacd8e518192e40534ace9f8ba208e6884144b1d0e2f2021323039a407005b5228a45bc95c755dce1aec31db633c797327309f8e2ca8ac33586474c8ccd76fa2d619325dcf3ef4e375e9cedefa5eeb4c37777c9db0374775c4571b8301f4fc92eed06dd5a97f1e562e308b93a18635c846ce7c7efddaf85ba23dc36366f802ee612ef7331bbe8f7b970012eeeeb8ff9eed4921520306d7a1195434571bd3b97c7539d0da9d65a69e561f455757776a6183d0fa31fefcef63afaaafe72bee50eb01d72889820f2f190401081ccc10d094411268864b2089fae4606118425624e18215901d0a181088680d0c110ca1e4c3fa064a69d7b57503746154ca66bba428f281ef71dac15852f071b69a8dbfee5681c131c1037e398d093c5b91947e3682588edb1c72dada0846362cb26b652ce0968f886bbc044b8c45dc430591c97f8866f97c89b5487531d798f34d07f6cadc5f6ffabd71c7bb4b6c55acbc9aa0ab5a254a8b5a5d65aabd7d2c28537319773676d04784440066399237c3da37068880ad19ad0d0904fd5e89b4f0abd9cb3b5354835417d79cd6b3588b5b6263b8ec2c3395b9baf0a144788a2381c87fed75a7b31c6e174cf118ed75ad2cdc2b3aeeaf6a531fa03ed99f4073b696c069ef6e9d93297b9101ea3301742e6321b78935513ed889ae0a4e1e2e0a420c82b0538f665712c0e0b43e1a150a2f8df63654bbb853d626d768bceda6c69cb20efb62a6d739e26c7d55a6bbdb35b492f5c24288efbb6de1f8ac35bdc91a8b5c6b8329a3bab5e6b6e718c4508686eb71b474353552eb2199aaa72c1b7a5aac8408ff396a393399adbed36e77417c7d56904a78316599e699ada7d44de4c2949510435990108823e206a95651344a150252228d05a93264c37780b95140c500427aa10000441531040941d4f38c1657345a9c062443641427ea1d16818d79679c3ff65efa009140a85034df3c35336f98576410edfd1cb8691cbd11b8ea32e19d46436f9be00e6de7b654172d615ac9fe7cc32525cfc0adc379da82dd11b8c65f8a1a23a323d7c501b4f4d920872bb8ab2fcf14dd5ce26e3f0d319d63d0fdd5b55670a79b88a4d0fd8be67ebe95526cb44d52b736354e60dfa23b83b9acbe5c22eb0c53dd30cc6ec72b96aa63778090a97cb85b1054d682ff845047a04dddd5d2e97cbe5c22e106cf90be213a883c63477f749e3814fa206e2cac4265085102fdc8b107aa4b116514cf42fc5b44b662ba808bdd74422a024a295d7070d02a88eab8570e10bada5856fe9b532414bfbf5a585eaa80fea5415eaa30c8ac562b118b6316c6db4c7aa8a7b148eb562ad582bd68add0411b2c1cfc19d8810b23d0736db9ffa5c7197ace08aeff2a4069830f1312f908af4de9898187c3f739323b112e75fa04bb7f24bcd56d277eab3573da87b4d3650beef7ea6d857c5aa42dfde8b4a6185bf8f831ee98cc655e8e3bc7cda5aad7bef350181a6aad06fb9c8175822c4648a4a45ce95eaa8a396dc12851e7306f2ac6c42c272f7047a9cb2191f5585fe6754758a83be77738b4c964f59060324d1326f7ca1c759fe9095e0d7166fcdb8e9819a523080014c96fad681dcfc564d3650beef33a13fe28b288ae2bd345fdc1ce871de7268e6ed76f3db25d54c8058e0f1d4cc01b6a8c98f3b97c58c270f3a0a6f5655fdf95e0c0451d04c2005e2035ee4e8ef8701707e500fa000080eeb870d39092c3fadbc00747a01c61cb53a9d15938c35db869355436d70a735078af9943a4e74c48f0cf950912241b43464069c6ce4959e22f294ffc07a3c452917f354e7e329eec4f1b888738bbb5515fcf905fade3d0d47ba52c4cdaacabbb90a5e29d20a20428f36b6472fe629ba3996199b7bcd7193cc79a5488fdeaddbdecd45fc378068eef38fdcec06d63029996c90623871c10bc0e64ea517509b7bbc391ae64d29a7e322e668936506e429d7324a30a1841403475240cdce3fbd23e14e79dee0de39ce398eceb04287a39ec3e9f070393a3b9ecab9c553842eede8f66ab5bb9ffbab4af7dcccc51b46dfd5bc1b7271854606f98fc25c43f8ffddc9a37c78a2b6aa82ff4f990473f228a790bb9d84b45655bccef346374709206fd471b3ae466bdc8dfe49789f9b0d792a53db8d7b71413c85635d55f5e284782af46a1e19e29acaa62728af51c293d086b7e378bad3d883de763e8d3547f0116c3301e1a7d29438026d8914ecf17b297184642daee1218fc447ae11dd50157bb441357cc4533342e410b6798aac2ad3e3f76a5565e3f173a10f8a5fa14c55c1cfd1f76eae3281e1ff5a371f8eced0c6319e8d5d66c4e5dd3626bdac08da23b8478fbca2688f9f908dbf9c8df7f8ed6ccc1a3fd8c6d4633799a7f0883ba18d4bb0c70f53b1470bb4f18c104983672ac66fc33e7e5c82ed09001b700d0d970014de4c5929d2f43d25800f74317f4a103dea3df25256c0d0591c4197aaca0eb86f7ff4a3939879183d2affe82456d54b55c99f7ff5e252553298a367cde5cd145af3a8c9686b35b40eb467b07b8613ad11a93db455bfc561bbca5c3987ed4914c936b767124682e058ce72b044d396b872edfbdbfd744ff2a76897f6248f50c126ed491e71b347d176814b46e8719638d69673ce497bb004d5514d46b0a62a6ea90846a5b00236957a9c25c5f15196ff8f1fe7fdcbf7d1023dbe4b0e16fe7d4c2294e01e3dce52f6db256bf045ba831905ca9b56438a124e59b3d633911739b5a137d4748563fc32010ec283a04b75d267ed9eba20259c208d9815f96a64104650c2892e6cf99003105f10a902042cbad3811b17c0689084155dbc9230398142a15aad566b075555d4d56ab55a39e81115b392a14a5aa0501c0a047aa42d140f6c87eb9ee36a0b0a85ead11c572b0e7aa4ad0ce4a9f151adfc3506854a41d174cc765498726a2b0684060ba2a2a3ddb8c00111415688608b2134c044163040a20a1fd888946a90a22649f07bff744b49d0b01338de350db135d396d5cacae0bb5a55151321e891be62a49b42504d46b446cd2c0f6e897fd0e3ea7bbd5e281aa32f9a485fdcaaa6c7954cca8a7e5eb1a4a4702956e871d583ae56997b9f990e8da7e7d3b51a40b8c90fc47b776a704b58e891ee501a0dfa9d9d9d9deb2600e7aafaebbca23b2524b46b6d4d62b7b433592a2ed93814384e496d5c66a5d4b109a14ef3bd3b35d05a8f408f74475cedacfe4199796b759e6323a7c553b64e080d3333452347c65323f52186870c99055bc94ad6a6175139562db8cef498b1cdd860190aad350ad45585245fa0b52ed19ad49a870c0f3286cc19a90034a5b8b5da666b6db6d65a2e706bc68eecd87e8ac4644034b23654c2c2d8e1e9b93bb09923f6a5cc5c02beb8825ac57c6e2c7663b8b5843753aa6bf45b8dd52095a7ba84d49cba5361b527e396a7c63ac46f5e546daaabbaea4d75555775555791143df56b7d65cc4c41ee51eb120cf8bbef669eb31590d6ba446bad5f9d173931af9717b8c400a35f725589a9397f399339f390e141c6744aa478ca5384404d167799b3154dabc5532325c18a8504686b7de698375c607ab8bcf09099f14183cd31b85455d6ce219048d4f62491a0ed14f6249110b2470a9bddd4c13de54e33d0a037f723da79bbb334b6ccbc61ff041cf4a887ecd793e53e8d7d4ff87326197d8b7f5d380385ed1e9336e68dadb51786bc399f37a8b7aa1433d79a195fd4d08685c68811c3022842dc9cd55a6b433ce79c73be2d29316155abb516a585f656c2a0d957d6e65a57c2d0f4e75b6fdfb79752949139e79c231abe306eb46eb46eb45692b09284af95488177757be2dc042f569090398c6be5f0e5c0b65fafcdf7ae206144cb3ea30719fffa27cb44b9c0da17f29edef63ecfbb81d3bc599a01e8e1e20cc631a019966dec33621fbc5284edcc438107ee948617c8dd67dccfc68fc2cce529fadc5f998bfbb3f9825c9f5d74632e623ac15bf55a3b026cd1533baf79aad3c276c317db175b80b1f9862598ab4f7ed03bbacdbd9f30cccbd9671dd77559e52584235bdcc8b05de63a9ba7465b7a6ac4b08d6f161b775974b58ee8c66608e20a4b0e30d570cb9fac1b961c60a386596dfc64691d4e72a037feaf3559626cfc9fabaaeea986fb286f4f35f400731fe56bb07ff29dadaa4e4e25ff93af61a19c4a7e2a31c0fec9c3d83fb1f454f29fac0ba25042cd025ddbf84f42dbc68f4213da77f648677a78aac6e7d4b07009e6e4e45471885c9559475c35c31a1bd2efd1cf2b7211df82e8d1bbddcaaaa22d132292a724ffaf35eb91224fd578fcdecd53268fc36a73b10eb91823c6bbec36c3bbcd98f1d369fc741a34de430b73117fc5c9c129c1dcb73b35ac1df60466a4c8626173aaea1fa33c2e3df64c786e56a3060eb405e86d57a0fb2efcba0f27ab148e1e259c2c2fb4b119d625436e36911d5ee410215b867f3cce719ec42b46a9ad2a8facb11de2f64817f158e37968b79f483342324fc95240d3534e7f4668464302d8847ef624b93023f4332304f4f977c0659684c2108d9f54da18d094cd08c576cf9ea417b830c298118a7933423fd35336e719a11921a00f0526f4d8d5c212ccfffdaf61a184251894b7285fc3b2a71ff64f4e2f5505dfd38ffb272797aa82ffc4078d495ad06e7dae165e3cd0a6471bab7536ec6c95d2298364dcc02ebdb07db26684662ef3b96784ec8c50cc53357b6edacf9ea41666847a5c9c7bf46e33423e2418fc34231473716eaf9c2c748bdb7b99a7e8e77ac28f5d6d087cae565574881ed94e89b8dac64f69adc67ba1b8473d6ad08f27e79b6904cde6252427c7535f17ad8dffdbf194759565e1cf1c2dede8362de1e736b265fc9080623ceea868a926618db0c768f7e8dd468bbf8e5d6de3a711ce60f78c70f49f19ec36219cc19610ca08c78ab3f1d0c6b18d671bfbb0adc93273225aacc4a943959cb28d9fd670ddd958dca3cf846c3cd61a25aa55b8cde8371e04df6c8c8baa0bff58a9d8f6622e772313cd08d0f7baf6366ddd1542567837fc98deb0f17ba7d1fb82e6878bad7903ffe8eb49e90274539c7903ab60e3ff3e27eda0b6aae25898b395af20d62524c3806857d6831b62c07ae003506902aca7abf9784e7a00ccc92bad8dc362976c727fb486164830c418b25df84e765627a19c2c0039e4cba9af605fc00605d0b45a2d1f763e79442ee29de70deb62ce5de7e59093a15e4139d4d6e5d75585f2194557957ca235d2cbac2a79f4dd09b6f7a34e662d37ab95b6bba7a3d0b708b677ea3ebbe88ddfa4b406c9e8f11ed19a17762fdc9dffee6cc5cff6a71e9157ba38caa351976b40b0197559e6953f94e4c2dda32ea41f4658f47355c13c11841192b8218b151031c1288cc2288cca8ad8010c060343c3788044282fede04275d40a83c16073e279a7a5307f0cda989ba624d55161309234bdf438c92478a88ecabd0b93c5829684d9ca18284a323d5218498b54180c0683d5f0105de723768122085193e9644c5ae891c66a37964f3794f8364ef3dd68c907aa2e663d01302f30d406109a6ce7a5aab4b780b29a0375f1a55ba0acab88fd503434466b3455456555c53f768b7d4e373d61a034d3e3bcd1588ecb382da259a1aa28fe5f17101c84b8d1743452e891c66a35165c857e6c16ab32b55a6308ddf371f0ecef28d99934ebbd2144539a2d0c3186d46a87d43963cab22c1d27a6aae8ad2ccbb2091d83c94a0e016706eeeefe03e403a7259035a95d930f3ac07138c82656c868ad55d6df99583073c71995c8c9e281354a39679321e4ef72f76db142aac110340b29847e3027143d984d1cb14130085a6c8a4312e80d5d80b1e9a4b30857a4a0b3dd003cee3d3cf0a13724608d52ceb90479acaf5a7378ba91ca537d4f7a15c9ff478b51328136c95e868e4e0c5992b494e1089197e045dda93f1b27895377724c28bd68905944b3b9a13aa5ad46e69465c99565599665498972d75aeb0c5314d9d2a8f9644d9224495b24ce0931313f1af56f2a7a99125583e3666849012d2811c8182e86881e27e942ca9296d904761dc6a70406ab863fa6144fbc7860d9308f28d2ceb383ce8de5610a3460d91f6bea9e91208816cbc3cf96014f061446472f1b2500c8477712f659d42898535bd5b1f1819bade5aa2a1f93ce99aa52f2c0c5dcc59c0911361a64392caeb8aa4abf70724c3ad808c10c9b78e0321bb2c248505090a9084174f4d8f6f794fb131fa97acc55325729317500b93f3175d8f706501cf475e8f24271d08f119284a4f00bf3289b0875a51f78109b4d1445530eb97392facb5e7c44d6a090cf64075a83e0e76a4b3e907c408f4eda5a36396bf063946edaa64d2a9061824109a529268b0936405052c40c130968e860dabc05eaec6ecbd9819d60c24506bb8e460373cecce4e8d14927494a9d54cdb80afd9216d9b4fcc6836cef4ef9e4d530f1505b3693a5becd045f8bafb57103beb664b3d93a9bbb7b6dd9aaca6beede9d9cec428fd4f6b2d96cd46632d9b2b6d17537f208606cffd1a1b0d93adb127a74b2e5a971daf277f4ebfb8d5481ae42bf06d1d9fe7956648f4e8ed567bb17193ab1612a99d4402129c1d860757fd29d7ed8c0ca27ec1028722b6b56d5a9aaaa47a7a738d85321aa836eeeb99fac7c4b3ddaed7f5de5fefdfe5efc3d26bd0bfe2412c73de646f8bb70f4b1b16de74d499c0d9fe6ad4c783aa42cadc3af2a200e02bca18396f1faf38fde35b57941b427e9c5d03ec09ea41732d8eea2177e21b53162bc0bf9637ccdae2149178e3f76f731ba8e0a511c5ecff6ac8ba3dfd9c5d149860e6755e9b8cf274d615a7f4bd57a62204010616b05428f387ea774d972165f9b5798f6501c3f9c78a84f7833c50b29cbb306332e428f734897bbee7f78a7ef3bef44fa1a567e92af617599e461bcd1ff38c1784ff224a71f35acae9ebccf5593d5618ee36cc8dd9d2ee69c4f5ef378f058f3db9ddf22a523d0d2106e229223471db2f79ad84086b7ab7b2f2a8515feef9b0cf1396e2cbe2bf85e540a2bfcdf2ff2630eabc19a0f8de7455f37f426579b7103a4880ee10ba298a2880e2111a4584108051ec5d5da5a6bad38871df0e9ddf4a3ad0ef6de4be3e559f8d0b090628f22892c0b27b200e22e259128b7533a492f84fbde7a0398a9a844eed7e52c64340200800083150000200c0805c562f1609845a2a8b50714000c5e743e7456389b084391500e05218882180862180020648031c0186390628c0bda1ac284b46323b2dfbe8f7d5e5a6d8878cd3a57b43e48874da9ccd0158fe4615045ec962605509996a3099fdc8e80a398f018d64a42e7d9975885e5b1079ed0a58598f43545b5892a5f90fab10cf6489ca56c2fcdaad1d0dc541568ebbc95e152d3b6c4150ed99e9595cdb9cd224ab62d9bda0f8880ab997282b28f4fc04faa88ec238ec9296e8af870e2d3a34a5ed18ac20f5a7cdd74ba354448142c8ee7bd54a4f720e81e9576692dbd406a3edbdb9df0559e74423a6a3c219c6d2c156f354cfdc8922cb04865f4cf10f80b3a5b7df716f2dd9394cb779f447ac8d97c803f47ec033af52639329a9415d0b77ec4a15af2c2784939ec4a85c103a74c35b9e4e0b5cf04b7328a3afc9b9edae765a6040f9e20f15397b8602b22ea21be07e55303e97192473a558daef5a1fd7d59e760bd314ad58745b58185dd9922f2cbb3e3dd8bc70fb0be79969c65a0efc68df6869395cd1e32100d57dadbf12c42c35f6835a7cd6063c859878c1fe8f7fc08fe1a3cf7667b298bd0e1394c6997607b1c08af5705e668b5ddad899090340d95e1ecdf10801bdf898fae1d72076610677ed123517164d06f4003ec26837d16eb92da02a0ddc18af30026e16464e325a6ba63084381b30d80d37362dffe6039539299f202553802fb140308420edd5a2cc0865eda405b49925dd2d420d6ee9b7f14883a96bca383d63500acd0bd02ed6c04372dca78a8da02f632118cb047775253d64e22b3262529aad8ac34dfaa92b57aad066c55c22c8700b85a0d9d96b025a6bc19dcb510065a98c1603790582f4784b907786e6f600e802993e39aa45a0a400a293b421755de95671faeaba03b1765ec4ab7a50bd9546cf499ab4d4edf91a3b6e6680ce363823e1201b5d8430b3a0af261f43d7b956d08939c8303db6e64de2da8e1b797152ac515ee2d91b42d53698167bffdaee182b85c5ca6b29b935836ab9367ce3b974cfb3dee874e98d4ca4e7ff38fada0cd61c5db01af32ecd1a1c5c5a06b6df5f484b2e09cadfc22a2128153da111c9fb4ac441958cea003bacf207e2f89b23ba22db6317505a3fc8ce846c9adfbe995e88658870fe71f8fb71138e0f19f5632af3ba5e0d25ac4061bd402b7b41eaf9e9fc91d7c9f777ed7c5c45e8fd41f23006933cb7ee0f22a23fc91cc8e802affa49745273cdae85705dd2b5b944a2b1a2c8f1310652a02b8db5ef17aa7aa7f59954e34a063431c20753bb6b5d85598d710c4f36afd51a9b9ef09fb3c8150ca5b81a2a54faf15816201b066f25ba5354416a4d49a66aae9d2527bde267e63b53a01a34a09676bdf6fa14a7d232e8dbea1404b9c8595311ad38d0b18b1dae4ce0efe3f08d43c9d37047caeb15321a97b76999507b0b8ac90266b39e4c534041518febb614cd1d4c18e54bd8cbf6dfce5be859bfcae6e9163b0b90912f80f4ec2640a16197686b0d4240a2b2328c1d1c711e48bd38068895ed023d8a28160d707959bc4ec625886f80cf7858e7907b07d3e36a66dc9ec7b49cd1ffd7006689c57b93ff18f67a2008195a9b3be6caf61a1ee0be45eeaa39fa57df21b0639aec711ebbbfc2c649a812dc95a5f0e0afa490c0c2ad10c8bc4d1c6b996c84351ac15611e52edb38c01cf12822587da826e44d21dce7fba1178837a946817aec844addd2daecbff748148b0db6511f44e173cc05602931ea079c6800687ae9e71f9e4fcc4fdf0b8e8727fd4f31398636c6f781d22bf35dc8c7a979938e238ba8659a42e4bd8066cc28f60dc2eac60949439914ad0b85d4de47051747817907831c10cc2d684d532b14d515e7d85e9c70e8aa2b9a7b5701e790c24dfbe938291772407395899fa09ddb30da8cc620e174c913f4e77929eabd8cf1dd72a9bd625f39e0f5fe567a509517ba19014621f8c3b8116e04fc68ce42f011adb40ca53f593eeeca0014b473d07ee919729761361659c4d6eb4935d022a509972c6763998c7cc2aadba5ab44c619101ee544e8d210cdf26d05e3701d472daebb3c14c0e39ac23b4681976c595cf1a23f624d495095081a13ecd44c489136136bc307c6d5a9871cd0b693987e188c97ca763a974e420ff83ade7ce6267ab89d2ddeac2e75d8072d39373ac2202023540eb6c7a45cd720fed30a6f274e82478ca295b1e5eac9185a13df4ceeb85fd3e2d23e070455d9a9811d8e39c85a64d0b54497de85a190c251acb7c5f02594dabf81a9e883ded3340c6f64752e74af0c89dcee6248487caac02ef6a9cf3b9c37361b078d23a7711f96160176931e2a587319d3c1e480957428bf091f16c36633b00c7c74d3ebb4a4dbb9b9cc92ab52fcaa75974a7250550d9e2dfd115063d8efef4bbdb88d813b813df6cd7447c0132be36278e3e03c1b91724757de2dafe3837bafe6bea1012749a873417606ee0282d5cdddc4c35d003d948de8d4af82614a87c406d0942bacdf5d31b47506c8fe03df1aa6b5daf7df859798c03494feff77b91c1e9a6f788a1646d2bae0fc3b06eb99667bbf1cb716527d93109eeedf4136c3e1c76739ed70f4ece4c499149561c20a80eec54066d5be967c5348433d8e0f9585a7c73445dba341b4891baf244e98a5f824a328b26cfb14f2c06725d0e985d8f9edb8d2a9294265c38c72ff7ca1d39614f8d0977fdc01f422529c1da3cb32298e37b55b421190159b1e891d117ad5bc0d536b12a136244557a62406bec2754471302ce16ca0704d6b4dd0475ade8a0a0811c7c5b3954cb2ff69facadaafdd5d00c3d20fff863281e04e4da9d4f865dfae3f8ccf32e9d1dbb64e4cce164b9496a10d59bb307e906e7f285f0d65fbbf93cb6671a4005f26b582f8470ebbd05dabf05b4425d1aaa1fad44d79a8e470a2ed4a0d4c9394f7037b9f1a98e1e75633ff924b916633245ce6a834c8e2ce590d90ce472325131298d8d45a740ac046a7cb9c2ab2a3a2904082196214d2b8cc2fdd26e423f36cc7e2a664f5524b32216128746fa148993e725af5dc85b234a838bec96e44d5247a366290b5931760ba3809ce904de5b07b718bcd9c7067941bd868d98d7d387a454b88d61040a321ad9d86b3619f01926e9e831239f2e81e88b14b1074b330d9b34ff3015cc8bb192e81c8cfe0ed56295a6e060b55a3546dffbe8b1479a73858c8f182b1f2cad180ec5171020b1c8578cb65bfc6c488f9891f4fdaa48581768beea3e144a4cd72b20d324f4fe329038d5bfa64d86c60cb2c8890f01ea0a899eb8e4042a2570e1dc79ecbe2ac42cd78da9296da094745ae19abda12e0398743a410d0b3bd94c550250a63e97692e1815cb53dcb91ce029b3dfbdf7284bd9fb32ab48518a91dbf2d38af7533c5e033992d5c962973580344e05052d2f48346b6dd1c328586d81974d288ebb246a11ce219241a8cb1b50deaf7b06f05e85b49308d3f5e810c88895e5cfdaef6b268df7f2c152d0f075b5510b265faaaf493df10acca345cde8cf4516e8ca4840e1731fb43e6262ed523f45629dda96f361ae033339ea0e3748bbee8a96f4fa96007d56bbb0de445cfd7b5ba7c374b3f2c87ee66ca35b56a26fd7f890520944abb703ecc67b25f98123ba3b655983796afc3d87e7618d59570145ab16e05415715fc8102597c149f39da73a9f71187c3603bb37ba1d1f6208d1bce160ba21bfa7ebdf13b36596c4bac1d2e3529f74b66339c87a6d886a714858a21dfde19dad50aab0fc70862692d262d6e3524d6f099db1199cafe2a0f8ab04f7fc9ad0fc1de52034a740c0145481784437e392a61c380951c9093e00fb11f2761481feb2d38d69540e8ab00f7a01711f57edd997b591e234a1a7d5355f7fe84817d6d51f68bc67afa23304ff644fad22769210ba8db6f58415d04dfc581ef79145c794a569c82f0798f6ab547be15601fa4cd2f874c8206b645c2082598a55c08fd0eb07eb3b1b512d9ce1c8221dd00f7910f26b0419cfc94e1bb59a526aaebfc5e623850ec0c845c24f0e57dd406e40c4572254f92db05c2440bd51f721904ba37969fb4382f28a9c49aacaf76d0bdda29378e399ee9c3ae6800d637861b80e64a6c73f3760e5eabac293f91096f1e1dccd6aa035708c623e91b1ddbd1c85086d3898148a2de48497a035bfa114eda5ce10fca6153b878e2ff8b4f7d5f0e1be2c1fc9e28ebe72afe58257bd0ee309522b5b7f160c76eca5739df411e7b9cbaf3d8311b081c66182d93e1cdfabb7c05ced1cad84c550363958dd1f87868243f9363979b4aa3096acd907f15f3bbe1b644bb609319006a3f86a530747687da2b6c8c6bfcbe784168263e0402af1269ef12842f0123fe4b03105d28a2a64eef81db8b84c2c2a12f0cef0966115a7d70445bf7850d671d8cecb8cdb1770ab006472841516f2681977584d7f85e6d8bfe352c69da92378b01c447ec787b478dc066651f2ccfa051aa434595c12c8b1692c2eeb4f17ed28ac46b4d56051f76629070f2fb8a220b3272ffeb935eda53d06769cae94bd7484d018d228fcf31e1a98eae1fe90f54a11392909608117006a7f035d6eb874c0e3fb040f52ad725370b1c20e40b8813648ccd4f6a4c27236d659235d924cca16a723523f5b35146c468d093510621328e06b33cfc3ce753e42f5d7571274f6bd223c11d4e3b41c0e3a6b47a152183197c9ec0652fc85aea556d33444ff00f710595473422ec769bf3fdac232c86dab595e8923c6e5661b742149f0f226323d777c3b2557f5653580c033c5f34c82567fdff6008196cf39648d7660d00d0abe7fc1a32994cfb42d9677fd70ef714bbbb60baa15615f07be25bdca50b6ca9fb52275a3a9dee308c5de81422414d7920546b0fedac0f01519d91700ac5823058e268158f21d05c563878cc2473b9068973372fc600d03c5835c5435866dddcc77289ed1cdd7e323128f952449e8d7c7bb34d69be44372b0f60e32491ecbe480fea9c8b3c8a9008af53421c976cc1718518d3088c7a36e017ae4fd6f4a043c7344e3a95b015969c47c9693ad2688a47ad78916abf8daf1381f6670914404a006104f13e503ef3b9ffe2173764851ffb0483c9153c8241fc3b798d2c2f269ace0a4272725faedfacbe71cdac059b616c75d33271d6b1f04afd0f81edd5215ade0b5e101256339be122f747c1ca35cc39e347300a49fa72195ff75429dc645efb809471a665371115018f0ba9540d47173b7bd3d1475ef8d72840da4019c8a0cbc485b05f2593f15cfea7e8e628a6f698aed17b0709f52a1962ee97fe257a130743e8ecd80edd2612c907147c87ac40120590823b38a503654902946d5da11d26e1c473f1e1c65ff28b98549caba487676497c542f78092f9e54aed67b70907452a7a3f2cc9785854e529b4209a7044c6c5423e34e9b27de054fc7a370f0ab4c1730f11c0e8c4b440c4579ee5e83ef9a33fac92cdc6c3c0a821ede133f8d5ede2239f47e2058c45e3e2481c816b1b8f5d5fb1241f6c9d7b01fabbd9f614df75353351290e74238c62dae3541ac2ea7a711e313c7d69efb14fec042134f6fb9f750af0956256bc7e406c4251425475be39de12db5342b5cda94198526f11835a38c61185283b8baa4161de7f4896ae37e94574693615d4081b7c3831380a4706c44d5aaeb14d685ec0d173b74a390c3f85db8df88a95e86b11bdb01002be5aa8f61a1a112d714825b5077a7e86bedc510f94968303f5ba090f38c555d47116b8f34d9a3a20edb44af0b1c8534bfbaa0ecfbe55f668f19ac505580c44a2a084549e46cf3d7bc07121f38359de2dde0bdd0552490f3a66ecf4b2cb011e1baf1a37627db1aa7651db6c74ab4101397885991e0bb87473556fbfb45e709638cfdd1ec324b90a6f3cc6e3e6fc995b29faf5d640f15a69a45a2976a6b42a248e65234396d341cc66aea8b98a1d1795c7c72b74bb5de1d93ca70a737d6e25ba7c27db9daa5389a5b52f768353718d9446b238d5ed2a42a17f5088127aa56199db7aaafa351212828a29c9f8025e600ed7100722d5ce1bfff822afafc1d53d5da7ec44b35933ca037098bcacc9118dc1b0522dbf6912fe8d3ec3abd10ec53a1487b6cbf2339d1db68a637d4f3a8a8a1f46ab9097029c36d751e2f3aa41e5b7442599a6e833ac0994645d55d930d9db89d9e2f8090ba6a4632f7a726a7aa3d69df5c55c1c3ddf2f9caeec365f692db1dc47cf092c502607aa13f3a91e7c40e9d9045f30e5ab99f8d96b8a06473216ff03c70c3ab2e77a195ae828392f7ea64bb2ddd3d143072e1f7eeea266c1228899d5e309d2913fb411a73713943bcb429ba2156d15856cfa4d46bd1255378184489068ef2d4b027ccf872ce6d3bf43f9436b44351dda17086bdde2a2bce81d29a0450463b0cb53c66be3ce43042ecaf3459c334c6fbad0b59d93ea047614b8189b3b083f3c526c1d6d55749191065dc9116a3642585a71fc831045f038cef8299ea74b160242973328f51ea9635182a5b9db6f5bbe1b2e48e620f6790850db556a537741289495577daac90008b82a1e2df2c0e44bc527c2cb61234e2373dc6551a31d61abaf67a57a255120a1030f295249592777280af7e734664105fba05f075bf777a470df73d60f478115d6ebe81cd91ceb304f9166a6b02301d0ba1dfd9b98821c10fbe498caac0b4438d481ffd5eab2b64d382ae636d43a72ad3a06d99a2bf63ee80bb77daed55b32d3a5b18208fb78dfabf1a0869c2daa75ec30fccfad5721b4e8f30d6671021a8431c23516ebfa2448ed252ea0dc85b42061965127dc23296db9341be65dab9ca864d49e787494f0b2c22d74de03c8c3c026afe9f89f09ff1a0365b50f3d651c4bfeabbc5232a7586c71c8be3e32a2cf70024fbd05061055b8dcb7851c828497b6c0df0079011cf331574b9a0544269431903d3decf0ab597955405ccf3403a7c37f8506072f9b7cd05fa5ee72b1a0eb40f56128c1e03a0d43a955c0699c122963fc3415786311cba4e06f1faecf6130959d39dc09b5bae4bdaff1c42a15bd5d39facd48b393e6982ff94e3f37070544c5766a20e8f19a40d673cf79de0a505cef80dcaac27dcf294c9846e0ec72b7d971aba3e01c209af71407bfa37684e28a4a346b8ae8ddb23136a4253ce5bdd43c1d0a04051eb60f12c1f38870270837da9fd7d2d5595924e02df94b2ad522de99df2ee0be0ebaa85950010be7104787f5f6d373d599ad1478904d3cf7332d6d471fb9a8fdfa5c6a4ab6ed917956d67a5020958b993aaf73aa7b22dea5ec52a91c9d75d150dcb415f44439f0daa15d70d083747a2877f0f239a75e8e24c67971db72bab7c619ec84f99d647804447d9a0be89276cdaf6d66346f395ded7cf2630851bed60a53080f77ff0b839d896671575846c304e7f5ecbdbb65642aedbd5170ab8ddf49c72449e71649ec823e6b73c6e882dc0f5ad1ee92c1fa0feec19d9e26ac001c27289eb2ccdb1318b917d36127b28f8dabd0b1870ee22804b37d2fd4e0e3de55dcf97520bb5411f181b89e8ec7134509466c4cead166213ea0e9f6bbcba99bb6e316ae2d4077e24b447b90bb4708a46e142fbb18f5b6b867606ff2b90e0d43df405b0d7bb34e7f71b34c5ae87e147bef5a59f1d41430b865ca7fffb34c34892de8add46b5de6e4fdd907ad60749248d3c51ff612fe7b71c39c7d12b8a765701c24a4d1aa0a1f994c2e1746a0f4ce754d291a024e80423a7b7e1e3b0474266da1be71126ff09d114627b0b03d7c1d70d82a35520540ff43a908d6b637ddd01fc5736f5300941bb96cb8be502f8b20a2f18a280a792201ab2b5783f57b93d99dc8a5ee05cc842d2c4d23ded7a652cc4b936128f3cc0c751c02196e27ced522f99356c84c4c66803366c94f5ac2c7623e2d95675bf5750825d5651606e5083f26ae68a832928172c11d3ba6355d7b7eacd3d53e9b09c9e5e6263c6716502c9471b926545dbc94b1dfb1db22d5264fb78ecba6e21d012e0d99e908856a5fa3e1d291a2aa132039413db106a17c4a7a5d709ad7b5f424806fd7fee47a3b6fab4e334fd980edbe90c2befc741df68d22fa9175863438cd745c4dccf3d05df875a54be53bd0c1c2d13a46b46bcfbb1e5a92aea681a78b63dd9afd948e24f36515b9eff5bc4b22ebc36577049509060e2e082bcee00879944e4c83e6522833bed6853c1b31a85942d2ddc03312c76f694781a513741114afce9b02ee38ca35f15ce7b0a3c68595bc019c62b4d72cda805a995360259587305d0b3d6eca54599a365a800be30a0000ab0a58927b1d9ca857cfa18c2bb4ad122bca489856c2c12a011f1aacd4ecaba0ba2b0044b81e3ae2d1658cd3da9a555585f634f0eeb10a5016f5ecea552c251fb33422391d9bb296824dd213569f4ab71baecb4e556aede91d488c021627eb17da87060ccec783ad9b5d2cee066054526fb24efceacbb5bc6c562d24f53c618dabfa44a8c158e463630451b2b94f214a27e6d07babc6f07536994d7150b7e08a7b7bef757fb2ebcec8c8fd383525ef34584bb7935880762ef7e3268940b326465a4e50bed02d0ba62f2bc3ff99fb66d417d9a4b0eaddf08273ca7f5d9439f75b3145bd1a2a2c1816f39ef06b8dee2d088d9a366afee4046702ddd36d491026cbb625386b557f676ac20f1970c18e15777d949ad18f39773a5a2be737f00424aa18fde82c9c7975b5aa10da5511720d9c6dba14846cf9fd776ab4e4f57b1ca8174f2b9953a663c6b20fe506ff1d59d7f74684830def300a9c1758b40170c4896c072ebeae067be1fdedc180c04a7b8a9f1fb696d0ef2e913904032a7d6bca7baae8a24d2f954104212c6db35dd0683c01ca88c1cba44ea143864532d69c7ffe5169c335dba3a2f234f7221cf82f1990991c981ee9dcc041f89397e408a85da9f90f078bb4af8c91ad7073826ce758c39cf60b68d5857e8084415f378fa11c0d93d3e74159c7a8722e7578ade2424ebafc70d906654f6e2bda0532deb4513c20d8b20d012d926da59e87e834ea33de31bfd689d838aaf8d67e3aced31d177945e399dfbb1621fe1fd1ba8b8e920f1e1da3f96e125ce6155fc54d7e61c5b41c194e4b23304e0b1c7b0141f14c6e0d0c9adf13f6d5214e5e35f57b307d880121ffb41fdd0b5d032ebcd69330772dd2d284eefa4e7926768ef35f1a37648afbb832dc2004cc78cfb17aea36f749e5359836c9b2a2d2e7eb87ea3956624f87846d8e3f76413b85e2114352e52fd6575d68b37ec83cb52a7666f284622da3bb88370f571993883e80ac569481d2ecace5941f706bb63cc5cca95b184035325b5f02e4a78d23cf5e4038b116072f8a065e4be87d1504f66b28c460f6784878b52c67082c22cf2814e0a360dc4ca2cfc3e80857fe2846d27d41d44a900029c0829a2aa964b5c44f61e63910175109496ae5698cbcc738f56a1adaa6353e3647c3e268c28e8c5064da9c99bbfaecc4e9b755e18cfd8e9d806509ec61697918d8468d26515a2c9bde025bb5b135cadac725666eff00e76a0590494604c5399a2d5c9605934dcbadb3eea3db9f3e8e5ddede3046b44fa1f76a31ef2088eb0a14186f7e3798d3e905b80f1956e85d8b5bb9bdd245b51210ce494d31a957357cf4b1bab048075ae79d46f867b4184daea2d758883ed389fad1d5dbd1006edb22d88164a4902326c9c63a535908fca9902ef989954de22740b40ed9c0270945001c47e5c00f13f2c809a1f0b207385e53d4b7dcc4305b1676775219144ceb88c78914341e33dba9c4581265e413dccc2bbe61c70b780c0d67bd30b3dbe8f4a274ecbe789f8ee4a799bf52ed84e2dca2bc80f0fa994e940933aba6e38a40675228b6b70cc5d6ab5db25663e2d52d807d68d115f6fa7b4bfced1e38064d9343b9e57e4fbbc728c836ed804743267eb940d08b1858527ad5f07435169ea2a332a2ac726052f742601994f3e09205c9614aa9b5923639ee8c73da45c7e83eefa3788360c0302fdc11e09244a9492138f12e856ef0b00a814722a33258b08ad1bd425a23d51171502029f18459e0701564076a1e916ee78509fbf6804cbf9d7a79da453928520c446400ed47c81494eed86570ef7c37bc9e1f9387d53ebfaa83b744d8d84f94a9397b290188251f4fb9c1aa561055aa10ab66041665a7d4409545980cf4929a0efb227b8c4ba7becf201e9788e22e2817e8957189541f221917c91a426eacaf505047d60879d62fa5bb58ae4b98c629af40679e94dc2d54e75dfcd693dd01f525190221662a49814a6f5d9e637ee4438a77884d60ea8e8f6db94cdb57bafed47c121b1a4690ee501f456d6b30b1914b16f9c200f8b909c287776e42784776d96adbda7ba6621e5b5e2ad146336528236de76678d4a0ba1dca2f8f7cd89cf03882f743c0f0ec4213252959cf8e0d8d402a4de2e5589a798cf273dc9c8cbd2a194cf6687f4fca2e01ac822c249cf04f8fafbdc8935bba7236ce88c0f511223d147011b4775ae270b503955f10f400da58d667659d516a64fcc50e3097c75b8a2f743a5501ec3fae78a7cb7d7cad73f08ef0260e6889cbfb08d27830f7e30831b9858551687d4b5ae89ec19b930fe82fcfec33de6c300e7b5d04ce0858635dfb76fdbce04c742c787b8be043036e823a4eec75384af60d358bce1e63c5b239d2c52d189fb15b7142241dddbf9778095c303bc451af0a26cb4b53a1dc4bf723148681aac12a6fda53f2c6168916bc9c9afa3f38511382b54282bef5b8c6ad8b613955f27b660522f78603b78f1ade977c79c08665f8779ebd3cb675c05a5b7df5343c8b1bd7e8c65eec2dd074d1d75701176c6380f6c1c43141ad9f5513af6d52db0cff13fc305c8ac15ffd2b9d8ea3729e9fbd5674ecd62708a934c7b0a69f10d4de153f7b75c937f4f6a48a014f1f26bcd25e8fde654dfd7a3320f6c1d85c319fae85acc9b6c32b44e08354edfb453d689155e41fc98fdd8a875480ccf5e165ed29cc7f33fab98fe728c9ddf2f5ea76820dc4e8f55781da84b35a61bebabd169c4a2d68b70842e53eb5dd46ac02207464f40b59f29dd3cc3a17b2440ebc64d565b70621228e9c5e1a9bf78827fdf05392bc51ccc473cef507f213de1121937b13b58b1cee950eb2df909cd6d53beb5bcc69087eec3e2b342c6a1822e140d5d5084d30f54d78002e2569d4bd4bf7d6db83ca59ee77f1a708655f326f460003cedd2a10b7c35f7643cb543d128dc4e484115db572ada39d70c5e5e19cf66a3b760b97f6fb1643ca6290231cbf6594c8819025f8773bffd173840c89ac72d91810f712db006fef1b33001f5a1b84619a8daf46acd17933495061b11ef4c86de05947bf6bfdba440044bd1dc00c328e706cb770929af10fd0974593bfb7e85b5c2caa1f3785a5e363a3e6bd8b6710b6b227e4501d59c21366aa80e29b0697b29894499a41e2b989ca6426d0d700999dccdf50584ee99a104d0202883fcc5ae740b0c6fbe33a7c0f59e0720808622ef3e0c4288e189dddd8e5736b8bcb801daf49d453a0484896f75df7585446154647ae98da07e72ef37082ae9e11547bb2aaa01fb710c7ece16ba29b42f8ff5e6803fcc23af911309a2fe72f833dca22b9a664dd12b61d07845e5ded6be35e0fdcf1da6712c5e94e8104a0b143f74568bacf0cab13b873862d55bf15fec8c00c4479f44838a10a565c878e1b1f29733e2ecd76874c87472f166810096ef421d762b91c9fb482b322c01b19fbcc0ef2ef3f26c1d8a7556391aea054288a2f18a58b7828bce24bcf66b05cda5b6a78b330e05137ca1ecc066ca540da20bca8bbc75b07606b619063eac26e8809830636db9afe16a3d974bb81ad792ee2fd1866c11f97f0e45fd3f141903d0b5c2d0801a9b8053697845402db60128f38ad658f98a9aff2b328b00e32690d0dd38968910a9dc99fc3477c49da21a03782e33c4772c9d293cf8764ffe6eda6289036a74e7fa35d260b77c4ba046423908377ea0d594e1aa88a5eec1f5d27b5ced6766f427cc308b1409771d477c23728992a340414505a7ff195c50a679a2be0ca143e62adfa3bd9a55b1d1d26d3ec5637ee9309a9e61f506a1452ae7bdc4d2fe5303ab71d37ab38db7a980472e775add47dd8578ecd6c30dee258d6099f972493c1f7f89c6b3f70ec855979c23e4aabee65f6d1eac737d89ad519e66781ebcfbde140ead3cb9317b8a47ff69090aa871204e6dae25a077ae7806759d057347c30d113c587bd25ffb55783cb0ee0a84c1f1c926c0b2ab6c0e3bd5e0b88e977489016e802e1d6c09c7ac8c8c140b7205f3c0778e888e59ba2ecc665babf9aee0fde0c1c3f96c633747955ec372b2d86509d98abc6cb938c2fdc27f462ac867549c5245381ce1aef1e4f6d6593d7d10af84d6d630e974bb6f4dd1911b606ba48216e89a9ca37711e2a281d4bd8a615af8611725237a4c54608c4503ed093d3b438618845336363ce95879c92ca56894eb38a6aef6ee9198081bf09a21097d100305354970c2438aaf772bb02e120083c176bef3b97ae7aad1d12a5df7c17fedd42f4d7cbdcfa26e278aac7f089f3e09bbfc9da2eadc49ab682c6dfec64f7612349c0bca92aca4ba8d38d04051d880d8db2e2123c63ea11b4cc86236338b8b15590919b9dd15cb6629f84ff25b5b523a092ba720f582249709ec797a7a891c5ae660c5ed646917a756f8651e19938946dff643ecad84e761b06c7b0ab1b8da56a50290b2cf746b33963623a1e07da6e55d59cef3283179ba269b11335c86b152c3720ca278d3e05af5d5fbe5618c6718db0185452f1027a62ba1664a8481b7c836c02a1e013b80956d77fed2011b88f45e07d1c6e01929bfa632e871cc1f1e233b9896e4e74017db18f76cfc2254c43f5e4ff7e157e8f3beb22fb36ad3da1cf666e66e92046a33fcd9307e714e4068d9f851be896f762c8de210b1228329af1c767f4f92585767352ea5ba2e684a49ef2d744d287ec9870f7bf19dad5895fa12b1d212022a08ef9bb33a83f452ac76d27986aa86444846d5df28ae35e846a7d98669005864ca080c58e891de06c7b9e924f0a24be2bc31dba11477d91f64cc1467ef3fc8509dcd961fb2cb296646cb76d8fa70e78bfa7f15f92fc1c66e3f4bc02860c4214f70315c9adc22b137a9f41e5cf05ef9e333fa483addcab1b038e14dc6580aee1913eb6c42e07ce01b2af84c6221be3ef77ae0ac15481b018ac098ec08a64bc2f6cf698f5366f4408b4ae18e49df31adf365a5ec96e6236a2c506e993df0dd6a5adba9900fa2b506655d878cd526de5c0bfbef8d4f6b414990f1339aa6aa009b1bf92d08ec31c944b5226179058079898ad7bd9d843b110ea32ba3c85b2fe045355cdd9859edca56eda5d0504765838176e4e50ba2c3f9ec2f6a3553aa31f0e356f176ae7dcdc9af3f0fa4b00caa982b28f02b6ff7572f8d610f41344980a95e2bf74ef8f58c0192d19384eb02c97a80244705c97563a66eaa97133ffca309f66218a8b89a6b538275651f28b8802b60f06fff8c407e4beb84f1b54e4f8ff951d833ee7cb7cecb59a81df13bdc47902356f0175dc1d1b02e84de31ec667e4787ee158eef68eab595f45b4d4a33eb31ebce612aeadf8e4928b45cd422d8eb67d0f3a4db5fa281ca709bff5e1cfad0c1eeff51cc9676a93d76316c6fbb2d05d4bf238e51a93bd2ae8e1511ac459e19038af212c5c2a158260ea427118b2c645f71eb5edf1bbf5ceda2161b0b1c537336698ac911873d9b29f1ce45e62cba555cc356ec0e35af5994b7cf1d27456a9723605a0021ddd63dfecb3d64581967b2039dd251ad9519de63db3b97b4fa31a738c40e05dfa09c7941730672ba14ef7ce121f0a3ab25d9132e4dedc261b77eb78ec98916fee692c48a7c631f054de2dff93490b0bc33c1ef4523bdcde0b0ffe59fd6e75b0073fdb8a8494ff9f59e798ac3f3fafea303d9cbadae7ecf55c7381cabdb894c7a23ba54229dbfcb4ae07372b4aa13b223c9592e6dde31c603b1e2d59ff645a7d91ee5126817d59f786758d4a04fb802678431b51e64436cd51eb1a4eab7fb69d8fdf86945150cbc44615a78c787b84435e5ae721e7b27c0deb4883c6b05d1b71126e3fab7122c105f08c0f795af5e1fcd413c372be6974d91c9db64714d004508e848da7fce3ee6134d6d302946c04aebec306a14da2c74dfc92a4b42334b5b58db18b55d7a4d0897fb276773b0b8d7eeb911d3958f1da4cc47a21425f923f6aa7f457b99d35d76746ce505636aa3f89a179f6ca48c946441ee1242dec7b34f1e208ca3ea2b23613184b58825005c403e09ae535bd292644db01c3f6a3a249f69772007655cd67eac8cb67114bcc2e3386485a51fc77c4f2cf0fe622a2bf6b8419be6603a325d08878533c789633bc57690286c5e1e4f36573e08814b0095406cae6c7443f0773152fe3787bce949acf2e31082114cfe302f7213aa3bda188ea2b88be99e444d88888c14ddaf06abf6060ec925946634cee62db549ff774aa427b53cd7ebf1269df28bce92d08128c33ca67590a4c4ed6107d29669c52c9251282d769bcb5104198d91f0d74a4142f675f43fc4c48acb030c31c3e8440f8ad8acff2a91ee358843b0865f2863a177893f627710afdfa44ca02f268d150f5ee0a73a95548343a7ec2420efbeb86d5e5162f54037e1274a03faac1befb95b1cfbadfbf5d74ada5f2502884a0af2471c2cd5c232349966517e291863741495d2e84a81700ec785cb8abf5d48e4465df7cd11b8561e7b4ca9d1a2b9e92dbd8949cba93581bb5c557cbde3bf6259940d39f9a2c34930679d0d5021fc7675d62a7ee3925753574795b9b3e39107d0bbbe1133f26a5ae099b3cf903bafe8e6dbb7382f3f7f219203593f692202baa34ae02ee48ddc8ea660102ca420c9a3b3195f073d2c6a97a378b7810b585e871243c9888106ec034ceca7c9a8ae69a9beab80bbebc0f7d7c85cb9cd724aa6129a1f6f59b9adfa8c87293ffc30e15a7de3755ef5fd15ecf0935871f3c851aeb610468eb1d29f71e1e5b822300c42c01de36408c45518e79f254effa11db323984e5c72358b50719504976be429eabe474e9a6cba41de907d1dabc73e41f92edf1fb3ae2555eea50508bac1bff610ae0bde9f137ad924698f655e5b049f1383106a320baa191f1bca40293b3d4a522029ee6ac926b6a0a496d0da7bfa309e986132dcefed066874d5f803c7a2ba2bcc8f21cea0948ad4ddd51cdd10e2d8ab21759f63ba3008b46fb56ebdc8ff619f916029421070c510fe889cfd0a972ffb4c2d2871a25f865fe9b12b23fc52a67873f8801d51ac8c9c83cae33f13c4e94e24d4a86f66d4ef84eb741d2714eedb1472e318ffbc007ea567021c1af5f73652110e82520985610991dbf354f808f56f120e46a59a087127c82e09770930ee4dee34f6354b5f85f8c90877a42025cc71d99a99f83ff4d62f85634767e555c552cfeea5d34951397982c92ac4616121487be324e6d631112bc4baebb1102b2e1fb403238ce49b29cfd4440f5adcdec84ca932165bb8f7a0283e26db375e38c17c06eac8dd285dbfc8175c0dcac588cd38fa2cc3dd319fe436c35eaf65038a284d91e709127f06b268b9314126ce0f3a0abb8cc7b09ce32836c1382523c7a71876993b9e29cc671fbc61d62dd01797ecf98d81ea913ba785cf49e14126d232cc2a53b027ad7032fc351131a0105173dbf5bf41616062c1321b8713bb8896c459a2dd5e110c4fc6f1347736efc2aa6729e51b594ae03ccd1bc89ecc529e8311983b2a8540da192927ae3b02445449b19f692155c17f7d22000ff1ab395e39a73f132f53ee1d1da03a9de7a1349b6ad1529aed2a8dd72c3ef1fd38aa57e473e947e1cdbff33afb7580eac1c6ccd2dcb146f13c3f014187644f58f1309f35a908eb4f2f9364710a767df91a0f8d41bcc8f4e82522a82b1bf46f3933dcd93147e77baeaeec99213e195a8547bea6f54af1ba276954639b21f0b891ba5b5b7ac7f659b0c81710847a70d3dafe0bfbbd5bf2aad11a54ce3170f12bd3e1611a0eba8bbaf338b9521845516fdd3dc7ee24854159dc4f112a87c1a49012e7724588d0eaa52fa975a6e14c3851ab40037226f96a4cdc5aec2bf8b8d73ba0b0f996a8f336730a01086bd356253dadaeaadb5f595ec78ea2a62d9136600a215cdee9da4dee94e5d10b1ec92dbc67b4f7394df29a1fb9f8db95161805c1d28b2017044d836919ed817a0038ae03d4135b6dfbbc3a9d6234b2df0014124f92c853d3c365b5449d8a86b3f1697811f4a93b5aef7578c77e884878f37a0408859b0ec2260d843f446c95fc6d75b28d71e02bcee0a9163c817cc0fc98e843b3089423f985dd989be843c274dd29e781877bb8f729227e1501f37b978edef3fbd1b1c54f5a5c6e3fc42b1ee37a338ee89c465eee268182beb30aa4e3cb1411ded48930f533172f0e823f19ad940cbec2a1953b093a7c990a2cc974e9b92ec04e60e73b0db475646cf2292436b89c3695a416f3c1515a7581fd559c64236a3a52a01319241e2615ae50240253041326484903c67ecceda274e2e926ed6118538c195b53befb505bc5c0a65f4e3a830b64a3ceb002d9f1958c55e3f8c49840c220728dd39f04b1ecb48e8255ce1bdf6288b88e63e2ce8b5018823cbca407d77021705438239a80a11997a1d538db17426d00c09ba20a2b984564d872b28da2d804aa0a0517294154a551d4c792c5ca31745d58e9f292e0539cb63212e762367213ce2596f7268e04bcccb9bcc92e829c7c2ff453321bc218117c51cb8b5117cfcd28fdd84f65c5166c7836ba4061d9685a65e21c23027abf1ee7a2b9cfcefef04dc31d0edcada74a55a433d7735393c79a28735fffb4a60c2b38b4eff289cc6095f235e3075230495426b323c17cd7c05917681101a10e4f326b805c51b28fdad0bd9fb5972f7435a4b5ee8874026fb40cf4178fbcdf4049e45bd6c10081abb1d8142ae0f38221aaad324bee8ff2b0030b66c3014106710f327ef1fb5f37683f0065531e168347436d13fd4121d37a3c1ac31d82cb3887a81f8e136d54097f92c7a0807b40410c184671c20b39633e606c3e9e4f5660cb596103121ece84f34aa84c568aa5a3874f07220844bc40991c612919145cc61b61bc57bb245265b5929f9f6d506c0495b5070d8402c25969c3be6d67bd9672bb4b84cd1634cf28099813ee16ef6500487c60bb0fea968906f6e59476b96b1154ea3da22015b1f8fa45b4af266072ea4a13737a9f3ad7fd22e0efd2595a8b354f5d028020748c967cf6ca19e68737a2dd0879a135750344a61de09b815e3b80ff5745d9ee1b0489fb05b109b64257a4eeab708fdd1081f0be414254e2afd710f8ff672b8a5a25428e30cd64192bffd435759d82b77ea92710fa50d7811912327a2f8aab7ebe19b11739f3aea0ebf78674c1f2ac39821cd4e626bd6c80ac17b922c4571719827932ad342b2b1dd004ea11ad1f18ec786455b5a31cf5606da298fb24e6a2fafacd2e546f42a6ea1595cfe0cba0485da175a68973f61904c29b3781dac43cdf3af32643a027a79556b87d1a07a7054b2a02c04495a45909c122940e8d152ec348de5714e0ec101476ace5a577e0fddbee27c6e3eee3f3220a411085e083099615ba98ddee1714fbc180a8587878a75808117547c44eea0d960021a2f0858935a462a8fda504f73b4a091126dccf21971f73bb6e736f0f378c6aa4cd634c653c6e37539b75b7178697aa37dca8105e664e88580a333b1d8caac32a7b8fad697fb4d4a0be7d5a9f7685679f55c3b3bab475712381ade10fc27306a936a22c36e2af0c05714f7a858cc57e5a7dd0f965282f433631e083d570d72448840b0bc3d1465063dbe37ce30698e4e8e1c83c82f93aabdfa21472339a00701786384d3b6cf0b2984507c9e12697f2760a3acd8ea50af358559af0401f13d469f5f47799e17a97cf045f6bb3892306dab11d926edf12d660c4c76b0b3528eb83875482c6d3b7766b28956d38f6a81e0f3ee7d668397687beac0c14835d76828ee0d6c2f048c382001003c9f64f0d487a5ad317a8ede7edbb8ad75e801787d1a1b55465637b7d0b63292c10029db8a660d63a37a84a03ca6e0f15434dedcf9fa63d2afb35b2ee364ebb027162cfa6d9d5847181101f7af3ebca2f5a543debdcd8ba3e61744ba1bb30e25c658ce6083c230ed02dc6816540ccce5ca73bbfc5e4f6ae35ce1db886c77d09ed13bd5f52b7ccb1ae9b34829803a2315cdb000edc2583afe144e621af7a02370812e47247516387bedd497d5ace280d6145d4e2c686b69fee3cfaca5e9c8effea8a49220539115c6b84ea03d056918cdbca06f8a0e8dea08c71578bdf05ccf61532d2c1c3bf302dfb50b1c2bf7ef1fe0edb2b04208f3260d9b5ee1d158f5a2f04ead2f066721c3cf479375370a7d20dd58d83623d7cbeb065a80c71b8dcf78c5d0f75c41085d72b2deddb8d84c0b10d42db3090335432ebbf02a29c540f8cd2063731e7256940e0aa202e726f42ca20aa31371822e60ee61b2a4530a58e8c997864ac34cd2830819ddca842e3d8ba3313e2bda1fdfa1a06cad06c0b4b4ddca87639f47d944f1cffe024d524d1415c0e5a838ae5a4aa9e09d667c589be2f60ba7e4906d49228ac774765e20841bd88994ccef5942807abf2474c3c790bbbfb469f4f506a1dde08bc67b3bf4ef7d1b0df5a4e4c29680577578a3df5d1d8341ae0d505994db270598620d1e9688afe810bcad514994bc7748e2702d8908b43fb0b1259e042611d0647e17ea9da285a41ab7570927c3b8048ac110ac59438569bce66c47edeb72b6fe36af395dfa547b8dde8ad96b6df61f4fd7ac5ced8aa55fd5372e6ad669f61f5c0da8c409236e2e8b5d881518b429271401052c17d58bfac2c0d5434a089325e4b63f16c2d523c84ee53461224a250975f0b675c5d635b75a33201f7d5708aacdf2be184209be01a730b832f26a1b3fbede7597d151251c26bf2fcb4d6de5accc72e2c046511bf9b6940444819ddb6882bd8ffa6b0482c2c8eecf313642f3494fa2a7ca4ed9a3b61ebdd9e91d1675472040f4a420b53b71808841456f4e78ced6f0c271cc67962379696e876c0fe23d45cce4a6772cd03b1f17473280914c5bc6cb6044e4cfbb94fcdb9382d1579dd06c863dd864de7c4ced77dc985068bf0725f358c4f005c0358671a33a828d17a4c4fe5c88cdfbebf07897bbaa90b339a7d13d98a980329cb6c2d3cd586b0428c65a6bc45f00edad363ec6442e3561fba67774deb5ace60814fc6efd0d9711116ef3aefac59c7ad480361e86a896f36009ce1e1511f38bb5c1a2555a74e7a97c43c4915cea0a3aa854f2430a9cadbe6d7c18ff488ef68a76045cb099e32e8e8726517971b30b3f53024420397bd80289c12fc3ae7a9801b14867537e4734b62606f0f062ce0df088ddb04a6fac9668885c169c07220fa676e9c84d13ee6c01ece5f0784ae55d9bfc2b45f4ed758be84f47fb547191b399fea2981fc9f1e199570bb953aa429d3920db3d4700a22ea89f4db267686969c7ac44f0c273e5e9bbbd416f8d823304f557f87b14732f13c03f06a4b964c906ead6abc46e1e40836a6749b348cfa4ca09909bb4d8c326e202d0c989d9f96068acd9a99fdfc63fe50dd95af99268648877ac5137a193d30632eafeff9a19fd3aac3bc6c2610b50ece2240b27efd8cace542898cdf7717d1db3bf1b3dba7157b7a180a5bcdb8743eb2ef132cee2ed84a0ad881a1b539766a12a716c04c4c3fff47df83df4a7760519cca0829f39859dd2a54bb131b44f71f1ae888ac5c063e9feb36402fe165a1b4db4bb7ab0deaa7257dfb7e283b0fbfd21c5e35f7790e8855cf3a470931d38aabff3bf910722e00ce3008a9a3c71200cf3690fd1782053a9fac78b8ac72c389c28dc6ab85f3b6fcc02054870b4472cbb2e5eb7bbed40cd8cb2283cbf7f91489e78815c5265baaa59daa3ea708b46ab6f36c72f29bdb4f92aad924af5b7ea6eb4935dd102477b6275bf6016b56da9fda521260e106b33494602d258f6f641c24090bc82f8237460e38ee630872722e45fe572b31644af7afc2036df732fa1756f7f27ef0adc56f04a79d11b15943465824d533d1a40137e72d771e7e55a846472a7de9c95c6436b2f73b21c2216eb1872b464e367d144ee9a860fd64681715ca771eb6cf4988b1372eaa52f515253df63bc4fe00232ff34fd135a5e3bf31c60f864089e7ec4121bd913625256042aeda065cde4053106c6a105be62d18e3af15a5f3cecc58b61d3e43d27f846536fe7907ee027bc549e0e4ebefd5d42f315f9567935af58726dc0865ac6577ab377017ab339128a1eccd8f64cc021cade948be84db9a5c62ad1a7ddc15ceb4ae97e3335ac070e5628ece76a12f95a59ff4a3b5d03d8c9056b277b5d473f96f2d9cf6953c04d4e6948b1a3c19066376d801968692b14e43123813cba04d0e52799b4d948f7d0af8c4c7d7a4589c0f1cf8f40357bb811635f8f0a01d097e031d444b985cbc090746472377b2238f814264c76340172afd057c7436071d268a0eec1f0fb2221526eee442d628d5cec5144415e6e4c0d84ac18148b6229aea97d3693aaaa754f60589117308934755e81e4b222cffd24dc8d280c8522b10a463dedbaf9285be6fbd44ce6d9b36f43640dadb5cb3cca977733ac2c12c95351a2ee5da001df5c40b49dd9d400e574b32e4ef1d1ba4f443a6e833ad4a98b061eaaf2a4c90f53d7ff70dca9d86203a0973a6d9493fc5cc4e5514f4150e908d9f2ca3203bc3ee68aea7008e5cbc9aed1cd76a5b060660a4733605f5facd8d1f691c249eb5912d594f1fb82eeb8f0b06605cf02617cc073aaf51886b00bf44ae394449f13e12cd18c03ee7fe89385e145f4555a53fad3523513ef2fc3c527752926fea92910fea388ad36d83dd63c1cddbc862e04eb88ada28bcd694a3cff1313d6736e0128e41ab26cf9f8bbb18ca060c9861041762e63c411d5182b9ba27bd304d5e55e4066edf722d1ca1dcb842a9becc08e320f30e74d292d2f4a91019afa2e8a83603a9f1c9f25e066e79205332b39084969572435443760b0f79330f11443d1c4e278a0c5ec2cb165e5345092419fb5059713a310d2b2137d3d39868752fe12dd2b65d6efa3ed7b9687e392fef0bcd876a71b3abeffaa488ee75d87e722aa5aba3882cbe7d7bd91f762231bdc76d52dc48a6e3cc7afcfe066857214c691f84a12a9e525ca1be1094b60ee380b65a2091ebffd8efa79aeb3344b048baf71d72e533a5c936c0b3822bc4fb47af43cb314ae5fa0160744434b68ba8b6c6030d3ef491292baf1b52aa2e2b3eb2f208ce7d7da238097dbaadd869034f3a219ebac9be9ee3aef724cacf38bc467edd9ce6732a6cbbdac89298cc7cc174f490250ff90ecbc43daa2a44e8018a231d3d5e400e3a9b0e2d8db2966d902220a910e4d570dd4d378bb952946369af4de4738e7c2a2872a32269754cec39ea090c306f1413cc5d73e766f509d6051855c250af00514af52ef7e276c19f3ddfefd50345b845184611db6e6b7b6f99529232c503bf03bc03cc546beaeef65a59a80ae1c0ca74eae328cd10e45a7dea736db120b6822da9d11226b572a49341244922c135ae718d6bb37b363f3d518f454172bf94c2305cd25f8d95808bcdc0c5f44fe2b89e8a5da21dc7559b0c9a6a5c8dca96d4683e19914646547896a28c3276064083ebc11aad6e7def025a9448d1580ebaebbcce1b62cbcf7174f447681226ed021c4139841c8681a3a3a3eee808e888731a6c498f5ee9e8e8e8e8e889878375aa44bdb2e0e8eeae69a92d535d670407131c1d75474d6cf997816853951cb587f2dfddb54ae5f6047b82abce557f1de1ea53245b4e261e3de80c9a4c4cb58180b0b29e6ac38e6ba6c9c4020222815ac75b79ddec1a980b3b3d7cfce038eb30e8b03caea14e76e8602298ac29c4fa6ab2a6cd9693894733b158ac31464688c99a462c8f1e3df55d5c439f86296604464373103b78f478b26bfa3bcfebf9c18bf960cba944db61ad7b19e096540f8990de40576c004ea0b8980980fef021842de99221261fade331c72de176d0a46c8eecd2a61abdf554d3f4510c32141515c5a08aa2b24860cee86ec83660cea867c392e444a02624e738243ad01d909038a4397b31b1255d42919e96d00f4b9a1bc54ca5985271554c956f526eaf5cc71e536fd5bad1d91f12e8fd5a3fae9807b65e3e867981a1cc30cd1406867b295d59acc5919138e4d82ca50f54ca1e28bd4b33248b75ddd8ec5f473267e44d161b86e1476f7c70572f428ababd87c7ccbcc3ebf65e6eb0581b43636262dc76d35a6be57287ebd2f7ff3af7ee953be7fd7434dc83c0f253169b829efd8969dd20afc7a40a1532322ed74c07ad9fa79f154d3c3b324297adf27383ef8e0c9cf0c783d70be675300e068355184ce6065f189067fe9ba9f58ae571c50b16861e78f07ac160b1180b16ffcd74e581bdb1591eadec5fa4e26c8fc96ffd80dfb2d11f8cd8faa12f8e2d685ccc7ff101cb230c18a49324d924c924255bb4a071e1e2c50b183048b2a6c6a605484303ba78415fb8005db47e6cc8c3c510cba38dbe1e932f60b47e4892a42e9335834041981c69d3fa01bf32ff4c24cba36c16e3060707e76609d78f4deb06dfbf59c296e0ac99ce172c66c3e20300bc8d8d6833dad8d8b4f0c0c626b4b161b10d1668d1dbb2dfc56448db043a8616a4ffe3b4a4d4457a41ceb96269d460f9fd09d082a52f53b24c9f12ddb1e42597765117dd1eeea78ffea49991c0961e7da25568132b750dd3189a4d899bfa997b7ed99e91a91f6e49138eb4aea19c114f894151a341533818125bce5a3fd5700220c2ffabe065ec70f56bb4db51a242cbcac89100d1f43204040eb4a800c2c310254a0881a203420236a6420c132a5e4e64623ab85e48ccc48ae83a10efa4f202166e497327393f7cafeed51d079338979330d1986c9d1e1c66a55e116b41183be2010b175e300ec05e3788c980850e1fd40090e4a188b02caf265ac082d0c446a0c3712e60542f622b80e10309b341cd4b089b1817106eb257d30ce61463871b8e9b36348ef67ac2966410f92f98c221653202f0021be106e796407848e103cd8723f7631dd74b10eb09984bdc134a20dd236c84921b81dca6411531b9dfa43dd8a9440d4f9700772a3102a54b832abadce27e32f9e396459c535e6ea441153139ef50d3a086888c8430392fc7d1a08c685043260dca888b889a0645343464ab6272d2a0887aa4410d3139ef27f15a6bd7d55a6b6d41edbaaef3405b5b506badeeb5ebb8eaeed5b97c9f476161cb6cf19207b602987be5bcf607511a5c7ffb946eef6e627d04b54eeb78dfa2d6fddd7ef0724f4ac4ace1a78231835f22b472991e1114a48197132147bffb29b6df9f634ff44b07ef3a9c0088f0df7d8c899fa487b3a56fb5eb684dcc6e56b1e5bc1d299f8777a8701492996140254c0b3d00f5500503e4738e73202018865ce8a0b7664996dfdfbbae32a5dcf2b17651e1258a0a30464fa01842050f022c3801e50429a8627b81490e1b4082890da47c808203d3ed163439f6c3d36dca9bc562e1604bf8fe42f2749bf2faa23284c56215d19e6eb719ecc77abaa46f2c168d0b182e17cb15bbe2aa5ce7dde64806b5f70aa6e49a59e1eef9922de7137f8c880ef24569f090242f310d0fbda1efa28bc6acb0e7e9985024e99145944637521445f8414a67b0a5ed6ab7b386be04bf2f5d1ff7f57b3eb1aaae37a6502fedc614f85257626dec6948a1a01c6eed15cf73300a6badb53b96077f120aca7183a5df4241394250b2e10a0cc2f09f2471709e9a047df46403108ea01c6477a08f4470e5450c4f4ad7bbfc5e7373446ce922fb83fa81fa5d4db89562b065d85db9fdfd9f2d43d6fbb7c08fb9a7aba9eb24a8c4048a9fe81fe8ce1267f7b48b9433c0ce2d819e29498205628882c5c8f59f14d8b95505dfbcf49e40e9e7df7702a5e5577ea37bab67811f489f765d37a6d0d704eeb9d15be8a93199c21cfad441236b415715871c72f85d6a49b674813b3c3d35c229832dc3508afbf4b2d46a403d35269312504f0d1074b9a862cbb0d6433590803d1a27664ec241f764b0def3f34f07501af352ca6364bd9bcb758bacb1f4164b7bc38e81965d5ee975cff5747b7f424f31c5145523ac4ee8bb1a53e0dbd533c1bf69103b01c93d15aa4253586e1e1e0f58d6d9e11afa52545544b78eb6a9711c400a0f4fe519c296b329257977547c3f3967ccca62951eef748b26f464c29fad3ac24a987999cf31f3321dfc4c38fe58f1323d5cf6f0fb0479c99e4cdfe7eeefad1f6fb5be8779588728c8fbc87c08f3fd3538e7e55b333332a20a30ae2f29d22dfd5b2d6e3175bdcc2f20e6675c2f13f3332d0be4f6f06b47c6426f5adfc3884562fe452c12b6c47965c48fb65a23bf8b1f267c8959e1eac0e87a17bc5defe680c2cea65a544d8fe5640241b0f53bac2333d5834328024786a47a696a4a905bce9a11596e39ab00e082ad4a8738a78d6002c26d1074d59f13613e0611adb0c28ce9ff3cb0ebdeab4571fd5c7deeb9e8856a743b3107930dc4647daf20cc5fe6a70fe723ac0415effa05ccbcccbb7efa947409164a835ea2a2f789f998e7d8b96646941155882eb15dbffafecf2506799f1c58658cf803884f4cebe71b61b0127e01af80e943b402901b6e4d383031a4c4e5053eae7176cd0a4076b862022843371f9e5cf09119e75521fe50d189feac075b2ac498af229096d8c32f38f20bf486f59dd8d33122118f6f7426572b0f88c7a4f7e005dddd7dce39e7ec2e7748f0175ed1844a07951459b270d5ddab7399d1409bd1c0e48349e6821a3217c892846449d5bbdbbbca092b36db4c08eb3f6f4eb7cbc2c92c817887ac435393edd4e89fcd336775af41705bca694e549cc3fda534272a272aa72a272a27a94b7392e21c779272aa72da4273aaba4273aaa262a729a7394d3949394939dd429a13cd498ac979b1b43bc7b9bbbb77c54e269dc90ebc48b19264c50a1377e7a1ae21dbad673bd6c5961e935bce253a846bf893243972a49c4be55c1ab2c4354d29a5b495402d33186833186637f0dc50bdbbbdab5c332b5c332bdc6354b67ca0560daa2425910457ddbd3a9799921a332545866645aa77b77717a7cc3012faf6c8ccddeecccc4c69b77b33a594699799912133235da0e0014510414154cd6688c06c86155849524411456c52b6285b944dca2665a3b249d9a26c51b6281b956dca4665db62a3b249d96eb69b2dca16f564bb515b9495a4285160b89f41d07bf0adf5fd398e9b3e9b27cf39e79c3dd999e84234876290040a14aeba7b752e1cf79cac725e9beb6feff63c286cf9b76331f29bffff6bac1aa62cff2c9aea3245c714d9926ca97a777b5711910404105c75f7ea5c68d147834a22d2e008448824251de1242244881c49423a62e40893f32239928484448408d41112256225c989136b390b03c2f630dd9a9e489224499c9808d80630307386d739a38d83bfa62a6c072e56eb4ce0c160c571a48db54dd892e4ac9d640fa61a1137b25e4d3ed810188b6abd50f092040ccc16e3a431341b12a7c02505548cc04328783feb7207a3e0c5cc9bfe1ee11dc18499316692fddd22a1aff79d02df98dbd35f6c05441ef63a5f80b9996ab7df15c03ead0f67cd64dda9e2ced79dff8112fb3267cc309be6709b2ab9ed32885811a8582a4d4847add3fa06bfa44b28d3c812a98fb5b456bf25b2cf4e33d3caeab9d33531d928708f420fefd66fd124aee9964889883486496568d978b9dc488fe6acdf0ab1dffff8a828ad3034e4d31abd9e33a643e5505be2f47929f2427d5a23a59fd82fb4248427eba3dff3c2b0cbb0f43b87863070add3ff3a98b318eb783273c584d96faef872e64ed0baea97abaf00442ad0297cc00fe2f97c5f14fa7c4f521aab7187de701d6bd09b71699c3167a4c8f2f95c94868c0e84647c2350d78ce4b3c67176e1729914cac104664d102d97bfa19610e082e56ccc00148b421ff03fb1e87dc051a86b80680da5a183de30413d69d998ad1b2ba6be5aade66ad5ac17ff1eeedf31674d2cad02eaf28099c38099d3e30e26790a26da9cf1bb18630376de32fcc45891ef678b043a96f346e31c1ede4d9d2cfd950cbe4953c27c7e6b13cb8940c5963b3b3d3ca04c25a6930f945802cc1d9e3983c3238808e2f2cb9062e90ba0c8d6a79d0c29965e6ef4c1a3a77bef7663e3690494cb2574084f96fe2bc6104b1f662acb13b22768ade3b1a7bdbddde3ba3d580bdd1d85733a0cff49b2bb73d0b8e82aa243d47e60766474d4452a060b2cd45aab3b57ddbd3a97190f331eaa6638e898e14084e59f4844741922c7103229386452aa77b7771573ff60bdae69efaed5dd2b333333332b31d566e6eeeeda5dab7badddcdeccccded05893164630c15212ba24a0b4d8badc726334287cc081c2491420aaf75e8dbf0563ddcfd4aacdfd35e3867fe9de84cfab36862df592859faced5ae9b513918c775eeeeeeeeeeee5c57fddddd6badb5ab95725cd7d55add39f74a73929a4f2ba4767777776f8badf1f10659941e5914d99320d9132a83bd8013020b225be2083580734a998c73b8d5f7f7e3e0e0e0e0b88bde0ece0e0e0e0cd50c893643aadeddde5514a8bdbd9dd52b8f59b0256c399b86948896681150eb7cacefa7426af408851d4b0cbb86592c9a3701275a8825c4228827a127a1264a2d0c37a892a4458b922b9c591172611886e1eb085b86611886210d29a594d2309c2baa990db2990d42d410a27a777b57c9a268802c8a10200981f38db1701463e11bdfa8103b9f60d972c53b9f60a172840798c0f87bdeac09eb62b2b9a29157b5f5c35af58b388098ece758600392f2a8a42d1bf9d2d54800000a13160000180c088504228148244f3359940f14000c606c386e5a3c180b4381380ee4380a832884610000411800006288310a19e4e40e405669946ebdcc303c463a1826ca733035da8b761272cd5800eaaef6074138537e258cc7c90011108cac18e64e4f3a002e28441c95f368b870972293c65db3c7e7d48792f9fa34dbdcf54b3e282b482e58c16ed6252f3044016d102e59f68be50263c50b7f4fa6b7856f39910f3e7da70b29ac828881ad0ffd5224a0c2bb983ad7ab911b016079bcba551fa7f3247be440037a82887ab20766ce504187d9a62fbf024b1d1651574388f77408b3c97fa67fb50286061878a8f4029d7289d5626817159d094b008aff5812739d11b297821cd290c046b5cab7ffed46313764018850078324f2d8326b389f305855b15a364c5f5f1bb7e0d1d1f3f56f8cbfdff84d29f8b412a002e7381aaa83579ec167a770bcbc370d26d05e5c2229bbea04b7a469a12aa551c59fe18f162b905f38cd345accb3ab781cf0a57483e323ce3c0b5ed53f6611587c19a75b7a0449c37aecbbde8b7e6ee67c5cacba3ec9e6e10eb36806855cf075a0f120d3c285a70964baa8fb5bb2f6ca31170261d0c9a59771b6830cb192f656dfdc41d16f1d56a2e455302757606a3513e758db259dc510037c51227a407eb7fec6d525e59ba6db9f09659283b42611807111917e80ec6030f7b8389689cd0d5d899a94c6f81e782d976248cd10d6bf72a84405fe87027d810451a4fa2aaec8bd8fa841b6d4875170cf4807c5f5074b0180bd95e47df65bbc8080308f429e064080d0b012908ad6ba895dabf784b2dd3141d07bd38c812f6df9728d835f97fbcfb3f681ccf85e4c21d8cc06a6b5ffa39093a7c9fb39907d8fb2494701a6e3b2d10c160fb469e752e6f894445d72602ffb2f0607694be05be51ea93b65a63de1fc90f51ead7c7fce7a01522478f415925ba9925c456cb202d40e3a02a2c4461213f82a626fb1ce4d7fa0e90c4234dcc15ecf25c16f62e4136d0c377fe8797c6866afa19dc148460aadc321366b92075a8f9211a801d98e25f38822b5cbc06fa4de4119e2026cbf0c18cc9334191eebde72785b542a79ab3e3ba18734043a577bd2dd313ca58746b9647bdba3110f9f949695a042c352c3ca9169d819b1ac15d0db3090ca4367bbd907a9bf90917ea148a93ed21dbeac2602a37100bab9fc86444d622f39c9f1ad8e56b7003af00c87a9f3d362204649f90a97946dfa4a79d91487189fe435464999918545d2b4463181dd228ecd88a544c2a21027c9e963f9de6e4d84a7f1a97e0e97226b0a659099aaaea2afb4960f1d91c52532ed2c1e4f233d690bd7a97bd7ab8828a40ca58f1fde07f0ebe2f0332c75c5e5381d29545951f9b08f3dfe42d19e0d2fadf97f1a60d31d2bf8a0c39e043dfc3999249f9be73d98e6ee514d09872164f7c488e7163bc4a748823f376ef31fb853cbb00bf7315367e075ba4238022f52ff1982b5f116fc7fee405fc85ba51df29eaeac98d74a23431beb3a96891d50691dd79ab4441718e42defd516a623334f116d17f3ce6278e5b517cc33754b32a30488649fbffbc2131224fb1e55cedb6a33472d6221dda37b5b77478de3a46577356a13250559ffbff6ed442e7578e2b54b0449b3013a00bc9e9a113c85199fd5cdce486fbee131c6ac810cf1469e43e92003c9d420c35de26acbddf7e660d752a46aa5fbf89b68915bd872f1698ab3dc99afe3684df0cecd9c3bb2ae55f9fc6662e1d59e1d0944aa01c7e419391b2994650852408d14635af642227153295f13a147244d91f1d48b717c6af8c2f77909c9e877e96a589a5b08c02ca6bbd564aad191df48f1cbf4c1c63cc97233ab1d1d377c35bd02eaeee226d5a9e16be578070df96c8a17c6ecb98263bb063a0875fe6ecb7a77b9dead778e75df92cbe97c66503fb2571c37bba6b665d5cecb7db146a0b33341408e5097b7e2a30a6e59b8c770960500dda5fa2bc788425de204ee8f04d4d9521d07c24ff75cce4bedac1bd985272a488db162a878f474910a77ad78b974e524dd40ca20edbd723a333009feac94b139bec16d1e6066fc4d92ef8df10783738416ad003044332b89a6d09bc099332bb200189aa14762dd6b49e8a193c0e5ec26031243b826c419996cf678820389f39d7902835954b17e707a5449b4eb5d105c2a8a22eb9d13db8030c3cc9cbad9132267dabfdf3f00507a3fdaf672523d161141bbbd0562a87cbbd1e233061e496808655a6e32a7239083b69545638f39b7a5d36e3070f1aff520558473aec59cf07c143b20b860fd04a1ff414e51045388b1f375bb01af30b3f9eca0f498cb35754e88b04d54426a594e573c916a128c243f5448a87b310b5a42edcb61514fac2330f374fb0b17b417caa15723c4984161aa1b3ef913a6969d41213d95306b66efe4205103d22d12c89f0bcacbebeb0b18aea06c7c195d02c43c2ecf4acde3953a180b4ab813a4939277542f52526bba50f1d9728532ead9d37f54fa16dce5fcbd745cc92168348ffd38d236618788be4eed0499c50db5d3ca0215d9ee5a124b578bea4cc75b00cd23dde418722c75133730657583625d7cb2cfd311e2bc9fb51346c4f4628d5f7a0872208530541788e215b74465d77f3b94fe1be58b236c214da492db4dbed265e810641c9c4a50a0b631514986e283c97390922fa5d27c03cf925c6123c4cc6ba91e8ee76ae8034308a8148420fa3e62f76b349339073a12be48f097b54ed6f78bd032d1bfb471ef4c5952badc6be6132c76a6e38a6da3a7b01b7ee164036cc28baa0644a70502e80cb02a8053c18825625491ca74bdd3e2c51853a2a6323865ac1864902d8719ac616f99435b49092ffdbbc71c2b8a2b7081ac18f054b0c0295c13d29d143b25670f98e6bee3bc015066dd8c28a49ccbb1fca7ae766a2ad76a944461e3940241b2b6808401ace74e53b1879f1cbb359564da51d9fdfce4c4f35442e9534e0654acd3825005e22c32b5e453a9f7190ee52cafb2764e8cffc3c1000834fa222d6589543f809cac9b241bbd577b0fd7a249b1499c487b7d9ee30a6a9a51d4c3e502a4a648483248801cb688301c88e20d7cc28fb6bd47947cf6f39cbbc0241796e4feea423af61a080fa49e2a414fd869a2ca9d29a4e6c44fc785eb7496672b4ad0fcb7d37b794aa1ab4f7400bca8ae295d3ddc411f1e34fc34eefd76cc448f6ddb0f1181f443d219197a8dc0cd6c750632c230fb29cdf4da065e8b28b3888e0cee2b4e00de666ba24d531a89c244c230e882a4506047142921ed88a3425282ef6bcda2278242121b28c5f8a2136de45ce4d83fc27822ae8dcc525784ca14933214b889e92116abf434f11a16e2cf460d243ba886a7371a12719b34d88c37e320a834137c9b9e84fd767fecff9f6b5c627a68cbadfdf36b1fdb21d5fece9dbe31f6ad6317aa63deaec241af78cef44d266af0a639d62786632d743dc55ae2c07c55509dc8492043b196d4880075f4583a2e16d035d24a212988ff060dc791118b52602b266a79bcc6ddb0441b5759887539c673d4f03338ba066ad0f63aa8be9b28816853b8d00532389dba029aa7988841ea4e105cf9f64fdcc5a6d2d917be79ce2f764fb5213cf281c306ba960887423367c241634259839428e363e2a93b124939de4f4adec7a8fccfa561ab7c5ed0ad69c38d795242615b4f1c106269cdd9e4776d67123c5d98805230a64aa6d07cc586565c44f582228c3bcd0d850bdca086671f5f09b2c4a9ce33e87f99fbe631207070ade475f75c848d80aa16e0a2e6b28d08aef0734b2dcdd4ed85c379e600268f8d03917a1bd98b0945446cd5f9461e11d4bdcafb529ea79b52e0a31da2f15e44214814f522efbceae98fcb34d850b0928e809ad96920a2621d6cfe1d99616978efa5ef4a403984a9a55cd5a66d5df904d587b6ff1bb97606a774f27282ffe2080d2e59e69d6bafda57b03f6e16e21ef2ebc74c4da87a4cbea6870709638a9ad8812c0c9dacfc3c0a13e04835eaa9da7e06e8d7cd35c498057629c2f63bd90b1fd58f7bf1b39e508940f93727e6569948c29347caef3e171151aec25a1d4fd578e8e846521040edfb3c228663cdcb35f448c8d00d5c59a6e888de02ccc95df0ca10682f4186d1c7286fc14f70188f727e73238b9f08f48573e6a8732bba8d1d3ba699f4ee219a816b2195282a9b00fd2a2b076293e27ca991e4845dd2055aead95ed54d3ada025d9f2d5d858ee2e3333409a7c2d7d895eac520371f680aaa37d98554326035671a6155ffbb706df5c6a3f7528aeb3ff3b428057fb5596eaba4261b900eddafcdce43a4247baf51d0ece15b5424060111d84f9f3313c55c5d97e1bf0afe3eda3214322cd67e2b9a55fd101a8b3a541b7130f685c2f2a34f1667ddf99c1ef1e2be7a4c367beffc125ed5d3ad71700ee30946a84dcbdf000d1c090bd44af8ef1578ba4d93283ccd63bb46f5b081e796af0ab2298656c741bc110a302a372642aba718f512ed7d00c4b68cdb99e2fe3e93a18ef397e720f0fef5413f6e34ac7e1ff337cf30149edd636322405bd74971394f323561d726bc30e401d2809a841a4de28eb1ce991b8d7db11f806817d1b4a2fc4e765279f61ddb0f084e63128dda483e50f3919d900f69e9fd48311feb08910f9589d2b3fc2408dd42015bd334b9b2dbada903f4c306ca9194f74f9825e0bc9159f6445072cae47f5d8585c4f5045f2cb544e8d8c9867d533811396fc44f00cc0cf75b17265a1f990dd3cc524a6ac226c14efa257eaaf5747f45e8300f6b6aada365bee418261f1b7fdaa27e50742ab03926e8c922632e5203a7c3494bd27fed958ea264c8365b9eeafdbb8b45bdedc69c656a99cd505ccc6f51af2948f58f6aefd93d0c1f5366f2c187c1557e2d00725d5d55aee1b03f911db8adb23205161473ef20a748a97729a6a129837bf88fbe3c1a557a4eeda8f73a634522bf0c57997df28abd284f114d7a8b2e4ca5ec286c90218719439de4146aee6b9047233023e57978ab58494edae31df7e859c9c74222da5222e56a6276c7b6e297c4158d8c6e63ab09085c890833f05f11c426cb14599be3e129ee399c1b475c5661d0838d4082b8b900b1eac3a06b6a3294cff6e8d2af0688c24e00bd544125d8dee1a4d0693cbd7d3be27becf6d6b634c34c1371764d3a3078054ddf963a63fa6d16441b00521d8021020a6ce3ef088ed70245faac2f66966df09e727f60edceac6246661020e54f45e75e390657104846398212bcae4edfe7f93ec0f7766a442fe628b68a6991d9e1cdfa0b6f9cad9e22c44de0ca9d3401041b53ea6678e40a9e59751ab335a042abc38c3e8168f76184feb603b87f92f3ff46004a06a1592a88a03c78278b9374db4727891a0ec0121c592c856b42dc1e112cb6277e19744ed94531d6776db491e724707ef954750971c393545a7c2e1df04cac5281d86948afd68a731287c7cb492fc0a4a8551337e25729b73de4ab4b1968495a55c4c273984a732cdb2c557c47e47c635e41215e61482271c96cd26f51c3742902cbad1bd988914a86db4189d8db0eb48c46b9b3590bfd1898a0a14ff03502b58a7c6b1f90066a83047c00da78a75c8ea3b001ee569babab6101749b01b35d956f4dd93cbb712d579d15815704b39ae14ac17baf598b5e11540994e67b277e410e72150ee146140e26c1cc25a10ddd849ccc3e195074b86b2202882b55929b7031b16e0c665202e80680f22f602bdbb586b9465ce771f239820169ea0621d84c62cd27c0287f10f2cc81cd9b6e54663303951ec26e00d385028c0935c438b9e4a06c82fc06f3ff948a60e57167e77f72712880d4cc615513ad557ec25cfd3ea84ed17435b4011feb7b615f9e6ebad7f068d1eb618a08ebfc2aafc76e9c15d872ea4592b77ee1d589065561858f771f8f0bb6f06354dedb553e7510c104c8636715fece9a099f77b97560e55c8df2b90df64006b7a75b39f985f0c0e4a974e0cb313bf8983636e449508c958fb8c8f7814b119f3e407f4d92cce841b888514acbeb569f1620e1249094163d70f4b417926ba9ee601bc91eda3527640fd16e25f7b312b26f33ba8594bcbc2594e0c848def73ecd9480215579e9730b106ea345c4aeab6d32dc1a1e8c110c118cd0e20a6f8542b900ed3940bb55c7c0a905f4728883f12d592c2f770008b9bfe49c61dd1b591949c6ef09e38d242864af4431ce77696240fa886b9930929046f4bcb3c02358f751e9a38a8564f73d3637859e09775f1489f79d67c4f36a03a7accb1040af0cb41969e4243f43eb041fc79f0c88bfb0448541b8f60cb20b4857e3a22022ca8584f9865cd43112e9851c7a354bb39f8fd1756aa3062c3711cfcf339892215cd136b864fa09c092157c0d0adc5a9825168afa8b41fdbcacc6a0d4966183fe0ec2b10c523600cd83fe0403232e400283ab1ed435e8e45901ddf10629930688d860bb300c90b8b7aebd78aab9a8e039ac68ccdaa46b10d709bdfbaf59e822ea623fd4318fc29a1cb74759f918f81d15cf1341a1b351beb88963266affc6baa689d2fc47d8c5f3cd6b256c6ccfb76fa0316b9db239eb9943e814887f5ece48287a2defd83968ccc36f4ebae2f7a8673a3a7fb3f19d0ed9f08e6366ec71cc478f7b1a17c684c8162724be051412034821f11bdde3e51e0d970fc7d909f6cd7d7a52cc748830f1a8502854782ce16dd28ba2bbd5db13388fa20808d1eefd5cedc85cfd4e168ca38920c06174b033978fb021b152b57ca75a2d284f5d74204eee635d1d4a78c7de9e7e23b6208f3ad0f3fd1d4a99e9612233ec9cc81a774ee4ace76466dc69426ee9a48939e1d976d2d4b0f1dfe93bc486cd8a25a8cd1cd84044291cdacc3578ad7d1c012c0926c971993a41d7964d1b9dfa422d277465eb93109891b00d9ba08f15b9b5745e725e95cb9efe17b871f321257d9617ede180183748deac7a3d0174f10706076e98840c3d8813a1e93d07dbcce9b82a77754537c1fd2f9e06b28fcdf64b68cf21a3423a2733eb8e93b965a7c9dca2632267d53999b33d2732e36922373c4de6d66332673d67720ec2aec39488b05756d9f507db94a1c3cace605b75c0441669df794233de633147d4d4d58c2073273b07a6b39403799433a01dca19c8ce7216446729077a9664603a9573209d4a39e8b1a52a7222aa481e42d51bbceaf026e98c474062d27eb4562d72920c47296ff55fca24262114c29571925700f10f1721618cd4e38df8f1027be44d0aa5fc99e2791979816a3911fa21cdc3204f689016c49a3b3d284fcaad3c7142fe99c36dc108149cf279a95c3b3610340365b24fbd44ad01212c0fd7843839655229eb7a0839276c923fcb645bd3b803c8fef2be69c936d544d03a1a31c603ffb333b5e0799d55278b266bdbe4bbcbb95d5ca16e9d1832686957037c29897ce2887a670a95a2f6806e37196198147e5014b490c4decd76f8101a57cb902c4603db405628e0834a97b2c9163e9c44af90210aa1d4e4290811c98de15b642ecf832b5142734783ad9733f953b285dc18b767cc31941f52f97bddb18ca38cd15760dae0eeb7b3323bbdc60f04cc08295bac3b0e69dc024de078b78e3532d59ab9c58f0842243e62fc282ae7dd533b0d90c68f19df2b361ed69a7670d9615592870ee0dc96691a7dbd53aa33f318402bea89333385a1b3a9ed3b9cb54315198594167a51582c50b9efd6354661de07adb44e3d233a62e538b477e7b9d760c84066a42bd7bddc8b30fd5d57b275f0b7300c0244b780c6ef89f22edec7bf768b18851b937ac106ca8dc8a4ef33069cea143e160dd87919dbc5530ca3e81e50c669ffc19a132a849c5d3eb5c6635969ee0f80c3c409f0b06303b58682800c155c15785b35474488e86bafd345e697655ae0266e698638aa87570a18209e926c52f0a82121aee47cac978761c4c7d85dd34a6ade76de057bbf79db9ca9ca363c4c670ed32f4563eef84bee06d12bd01b6f19221b7c920e6a22b2a2120710551e3ffc6cc499e0bd5ef2643b76f8009cb393307dcfb5349206ba9aef0472cab9dd918cfd56f0accc698140ff1706c338e81f0082683a651352e0abbfe2e590262b0703658382255ba3a8d82c3a96fd65a0a0bdeb696a96e6f56e94ac2f91a1af2089bfe03aa60c0e18f53dd7e368743acd09afb5db332ce4656171ac367124ea7701ef4352f35f0a9b8ec420879a731237e3ec490292892aec8f39dcad72a14ac462b137b1e45b9d032fa0c763866ccf748ef0129b1d4efa129af74986e0e0048db94275025596a40cc87c9ef064d4d4321fdab5f80f6ee6302dac580fc7e306361e8ac084edc676431d8ca06011e10d5173ebd181e0de9f86bba88e7bb253f4525b843d4ccbe0892a0387ad876a4b0474c4f0480a9c1b027413368701a4952e6a848bfd7803c2365ce4957ff6d6e9db69c8007eea7a244f5df25f1342d49e532951e0def8c529a298118cd4f44f0dacb4680440dc90243dc57591e92921a3cfc85f5998bfa30f0785611c5754ffb9bbf5b227c2008532e75e85ee46b25edd70faf766747b226973032b227816f824641dd588acda13411884ca19a2ac853f699c30c708cdbac79733e09ede1a0fbe8d3b5190d3022b31f1bf634fe5d92e424378b290bbbea034340489b154aebda07035d5c9a47144fa1cc80217d8a58c3b615dc6710fbf4e6f609806ca1ad19a91a31d59eaf59dba9276adaa6b2aa9bb8a50449beaa79976e5a872f41b2d20185dd7d7aed42d7b07d97b039f5fecb8cd50df3f4f055f19edc5caaab3ab23b55d30779c92d08d5b1d7aa9124c32e9882d9d273158160a208934714c964b56208410dd4a1a96661d86614dfb423eac4543ae322560c79c5d4211e73d0ee70fa5a36c61929ba9684843d2b01ce9c8b32725b7817f1e5d1c5a4746f41fc566bb231f7a9f93c4da35cb0149d1fc0386641bf0445b37f5428439bb539e9dbf82785b73ba4fbfd05aa93349799130004e13cf032b6f8434004c7f1759c296a1ac4b50f7482c5dbbfad2c8dcde83bd56f7b5ff9967b920ca8e890425b7dfaafd2fc064d849cac660aa3c827b23d622c86149de35450ea124339f4773100f132fcea902d253977f4d3240d12afddf1ddfa06d3a3f0f25e2ac17666be431d49f9370b62502aaa9aea8110143f1d152a0b11d55f65ec19086990421b6c8b3713c68e40bc78afb4bc83d0573508cd2a72400fdb9228dde550475ad742a8fbafc315ff5410a4ef8a7afef2c12a28bfefaa018c4034cd3d54de51b90c9c84a1e7b6ce525c0ee897924240d23e925040fe4074e4ecd1f724e9f76349398a51ddc7fab2ef28b433871f752cc28574ae4ca9da11777982fa63cf18287050acfc00a6dfca96060f0f579325149525e9b8965800b8ba3923cd47434482c8052de7e551aad5d0f91c60a78641063f07b6ef44ff5663bceda2eec5cf472b26cbc3730624502abd743f1fa08e16a3c12e8538fec2c8d2d6479a683b48ea0ad0e733eaf53668e9e97ea62dd79e816729656c876283eef87e5635f9f2f4053847cbfd53de0e921820ef625da2dc722bbe96150c0fd44fd8aa5bb0419c245c3f8a7e529531b306deb4d1efb77531133972e09170cbc9db23e7d3c26d17fa2edae283a6c8dd75461e37f0468f70549ab289517beb434761e0efa3ababdb0c9754f8b821340703bd78d85a79a38403557c649e4c688e6150246d4c82914a5714ded8f686d6c484f45245fd13317150a351620ae169a3ee91b9ca641e17e913c5a0c170661f8102c6dab5041900be59b066416bc6d3d5cfa4e7757d19f45410aad42b37b52c2436f2567e1531457f7c59a4dd5c7bb4a950c40f5f1f41923aa47b643bd3ea01afe4a2c37dba85a2a9730d1022d65240ef7ffda817820681ce7c23fa72cd6040e8d3611fe569e5a7e04ce99fff8758d30a032541fa20b66cb76c590d4f7f9b507e38323f6cb2b0ed972d89a00f299f83c64bacc796a36b0f4e7dc14c2faa22d5346d9aca7a7604872aa8bbc32a02f43e7a1017a457d816d8b31b15be4e75f737f4e013a56824843340b3d4646e1974289fcbd85499e9a50041064a6a67a7d6976cfc0e8f5a67b2d02175c907b925aac7347e4833206a48dc6c680c747b0212e897b34d9e565fa261b38fcc69c1c1e9ac95f6b0f96b685456520e63dec6a47ee58a3157b92e4217d7b263b5e341c64b052e5a661f2e9fff40840b75f6442c569b1a1821176c5147687826ab1f8e37e4539e48ea545a64294c998717456409c80d6591fc04cb40451eaa29ac57ab240ea6f0df259b5a30c98ea5933a9381745b2989e5cdeb0dac32871d7808552e17710e51e9f5adf08991068065461eb040d1f58738d581ea3fb3fde1ce9131f98d6ab0d9f76516ddb7282ed9f4461f4187e83866fe9983336783fa4bf638d716a8145e9972ca12b3aabaee6ebab6e967db4ef4c41b36e3464803970802a7c3cb22763bebb8d7eb3ce4cab56cbb5ed832ab9b9bed2773d9b477553c73e16772ab06f614b8b75c55491052bab3407048f323e6b295943e03dc1fc8b4ac508289a5a4debba12f78a58810dc5739d4ba72b35764f922506b7f14e6d4847883223b494e091c85eed2791eed73bd9a004b776f7b09152c73309cd211a30b33a82b19b4564ba99ca913d430f985698f29bc5780acea6091a7b938c67ba428b06ccee6ddf75e9af5d62906804de57c065f4dbaa5d6ecc7657ac21dc19e881c22411107560206bb5963b84874776f35c3143b1bf060131c110d552dd7e0cf8b2534bdc4adbf1d1e0dc8e0fda7a7d07e7595b596058b7772ae7acfdcb48482991da3dcd63471c6db76cfcca8d41d7b6bed4671900e0e47adfc0f56176a7bd6f804fd528c0fd6244b656d6fa664a249244c462c9f5b77f5eaac5b8f3a22ce447e3a805d5f59d35b2a0d5e47f816a11b685e3470f346b06e39580632282bf6626e516f8ac12ff7b6722202a3856a0871157ee330ca76c75138974237640acc216d34a36d0e92ef78e4ae23583467505322c469098d5e4c0f71b592f0c55d9f4073692fdba69fe9c0743977c24fbefcef84e4ae99cdfffd7c8d6507511c9e67dde692eb140c43e81e638627b98f4f4b3820284f4ede549ba39df9cf284072272190adc0886ab32849a311106714968e35149fce89e8721115cb72a3f776491e8de4cad307ba81bbec687881ac8fc3a9aba6678148d823cc3f0a48c40f732c3c0c0e5600dc86f22cf217880acdf0e19de5dac7eb83fc479e2b8221079e298f2b58dd179e0a253e0e212373425261ad91316d5dd4f101a57c698732c4bbd59c6ae7209f5cea1757331d48ec133683f2e218062e780cfa3324ad66bf078e7d7aa86da5c504d92fe6a6d662cdbf9f708a4e4466b67df9c180221b586fc93fc6f9b34a66a52e390c837ffc3d026fd5b2e12495d946163090f7b8b6c19760d97e190aca0cc30c4db4dc18a2ffabaf3135401f0d90b0a52e51db8106e7a4d39e864a8a1b01d00177a038d33b6cfbbc0f59ce3dc2fa62fb4206138d506843dc67342c1cab36e8e67c195144f8886dc7ed219b5026b2c648549eaa6662ab405b769317f3339914366934359131ea6dfddf38f2124b94d9814d9276364607a8dc3d33e55e486c5f55264265477fae49c89ad031ed20b0feb081b6b824cee9e53edd194a797846421f4dd3ec4ec10271cc57afc8ea7183ed87212ea96d1d4d064f07363dfa7916d69c153db9dd6890fb15d472310b481eb3a170e185b22183491e0aa917bf66904c700ecda6150a25758b13b0cf2e9151682a434c987dbfef8ca8c8d24feef1cb66456e1dd4aee6de4850ab090abd2fcb56f8e1253231f3566007bef9a8b4cbe2f71d84b9bbf33058d37fe76e2a412840eeb5095db626ceea05d21e22d8b3b715f7b026f7abc1b6687f955e9876762dd86dd50a355e73b797ee2969e5b447cc841626d0adc830e424f88f9444d62d77e917859bb22e28b467fc52901696f805bd531b4d0d18e2814ae9e5204c79eeaddfa566bc93710820f40b0ec5e346abd0ab555bd31a4bef4e26cd7370e9bd46b0be61e1e20ffe030a3b7233220e3d3ab4a1bbd2ec53d9df5ae32f882cf502071eebddc7478a2dcfa10cdd943a0930b429d79b1a8e4c5e329865a19e1e51434c91c8434ba08245a59cb46445cdea9037d89736a7457aae51333eb7c71bb722ab4a6d4029463181f40f4e3725326bc7188f607a0dc982d336424b81a8560fd8c1a5509534a2752104e42532cfb741b7b2f9e11846cc2177152dd0eb1ea1bde4b081733528421ca18b7713ead89cbaaa6fc5ee9f1dd7b1bff40407befb5a34a799e0d4ac37bea01c91a41d4d908e100604fb965b7c04eddaf5eece2c7934e26bf118427e860879b28ad0cd02d4d92c14e01df4a59f8a00882c44ec4da5aa2f8f4e8238c6511220f66bb4b1a86ebec085d2b581f150340d2351f1b683441665fbb7d0c662b24538825ab917dfc5b291e2d859070115bafe8f84f0a0c3daf2cbea69b5971de5a5b4b5a580085bbb069250a817064a5bfd0b66456b7a535c41b522c654d0127a458e1bc22f8a9450d0390444e28aa1ca602423cf6f9054c02af40b35389dcb9833e4fb941b8dc3266e8cc0cfd495b43838d4f0047552484ad9d36ed64dcd58d582eb581d0e7d62b39c3ee045dce86877ed533d84a420064809738b9c96a3e97f84daed0d49cf3a04b10a53a07ec6cc561a9b2fdf10971cf37586ded0a6be8919006738f3bea5b88602815b6c4bf7ecece4645d005a193834bf0a3de4d813f63608c256811c41d975206414e280a04f8ffe8a762651d0db42359530ce454ba8244705659efa24a5159bacded17c6e3f2cf3ee4cb880402875fdc2d36895e81cb9b5ee1f13c4b4f82682f49d3501496b2ad388b8f2b92ce0e35c2bfe815e919b3447e8d533b92a099b266f30d63fd937f20b81930b215ad54d63e66b08d0f7e178585ff2c34d8f8e0c41bae380ad8f8004d561dceb1bdd19f678e43dc7541f47c92e7a788d6429bbb6a1fc3a6787953af60fcbc44a547508f3fc3da3e858278250bec1b7548a2817b790b473f2258152ecaffc00a4bf9ef21f27ff57c58c1906310714559e4c9fec510dc14e0ddaadf600c3d92a4ff184df5fb0117141c10f06c9fc0fe5d27679600e7ca49f03bf13a0872588eee38b9f312298c06df1e7d8aa659ab4cac587a46a694fc94100675e2d344968d68ddf64025c4d429a389e3eac96c7544972ddf8952484477bdbacdf0bd484a9c2fa9dc0cb662e5b0d83680043491ee8270b071a4fceda320f818252a3b29c4f6c72dc5757dcd00833504470eb0cb4543f9c511ab34152e1dff27d76d75d0aab792cc64e23cdeb927c7c85430d82f0ac129856d32d47cd0de7ed2cc094678a7ccd19f0b4abac114c89e7c6e44f298b02870f94f82f3cc94ed7022a8711344664fa86b778af51c4b290ed207e4abd7c37b1b42357d85f27acfd03e8158bdd76abc6e0cb173b391f1e343b2a76bafba1c9bcdd975bf97332750d40ffc01652c9a7042650b5d378c216de8474536ce6a0a5328dca024529ef2b02c3dc93cda0fc79d5f8632705591c8f878417596d317e33d6ae4ce99e7ce7bba282d37df00531a99ee9792192b5f5d45a6f4bbcb7115368b1cfd253ad67c79f31d95d8e63f614ee6078103924d82db99b46c73d82318441170e4607025e2f931ca1bd75b1469a52ee3df14313aee534c14b71fc04ff6040494041dac52bf79bb01110b4b13ccfed374e09db863365b9e53196ff0fdd5d56b10cfe9f1a8a531434fe110849f3a8a2efb25c252a2f1a904f3aa35fc6a9b7568cf1514b8c7250548b113873e0030ced793d1d7951b660cb5ad2ab97b9e5e1bc5a0002c875707bee57569bf98dd5206aefda8240148ca60897529f55c91075ee0b8bcea11ec820ace4842d2d0912b733299b61ea03665925769e51530e8ea43a2dc647e50063b607b290cdb1af0658f27ed304b794da950805c050ff18ccd2321f1f4b1ddc62f605fd2b6b11de4b47f341c4652e8405d7910884db916c4bda090a3cc86a2b111544d3c2742b8bcfd85043c2de4520cac19ca02f1d2e6a7fa2ca6fa1121b6d32667035148b84f610769889050d9fb521b7c68e3525ed846e066e926d5df457081466c0fd3d3231d67993368b68764fe1ef2cee4a3147a0fd40ef835327fada78002d1f4aa2b7a088af0b26cdcd8116a62262a7964ccc4ad4357bab18bad804ea8da7625c06cc9627a4dfa81cfce6dd2f1b1ba42b7029db000c5df2e2e4b03c8955e20c889339146c148d6a931ca1c5ff6333c575c2fc2bdb15c8f3015ab1b8fb8a0c10c4f3648fbc73fb2851c79fb857ea8c3c2280f8622b20cc2f8ce2ca5b541459d574ced58b0968744f05ab837d2d31ed7a732f55ee7fb7c8fe74ecb286ce785ad131d4e5d9f89b96c1deae0cf7811a51d721c6c05c9479f48facdfd521620251eec10886f7b162a68bde5ef71de04201f8a8e1e00e75859c363a8898e9b162c3803227c92d25e6a09ca00c30b17eb6dd18e1d8da252e36c0173d197b968aa1817131a98b92b91bc9c0b318f3fbd91487b79021f26d903e1ac660a6a777f49578710c4915f2e74a1c4599b3d4e742bba1b3fc619e0efe60f2d27e36cb2bb281fdaafd5c609dd78bfbd0d13d89a688c87ab1d8b704d02e219cc23fa5da7d828293f854242baf829bf16b0f5132d04365284d2b9b1c58129f9f263d2d6038c32c49e1bc60570afb3ebff984ae197f7591aa4f300797b5d6a5c3da90a95393b57e2077a5a42f92891ee7dff4a2144b3fb64a073fcb10f57fca9772ec03cde52fe27515bbe9d707524af9770cc0ed7cdcb5006aea401823b3192309cfa0f662e480c3ad53b8b3d3819c62be1feb428e77993968397d0ec58f93047e751c238f09a4e852172d275b7137d2c34641d88c92d58e2d782fae3fad863ad8b46bee555536f2762a9ae0e50013a455980f692f15423e38c93f376c20749126fe6f75b6a1f389e6af386f2429467e6e20906e61d55bf078275db534b39fb0dd77c4467aaf8c17e67a4efc179f8415455731129fe47b5ba241a43e3eb3e00ae12b40e563c786e61a878be7f4e3817e90547a070da52a9a985668cf200958fb080edb75c593a092dace1ebf23d3485d432619ca1d5bb6e272e1c3b4b341b427078550b756abe78cee7db09f7b541cedd5a9a2236b5817fb475f8377e856c128ab89d0878f424d36788cf61b1f199b475064c70b2f280d99acf2b1ac7c1b618bd0c86ee2a6aaec2d844203369af6ab2685ab56965332e7a0c07c486067c9bf40c636c27f4f08d8a7a0c3331085adffa7a081550af267f0d01ad910e1010e04cc816d6e62d7cd1c6c1961c3a7e5d0f5821785a075f360ce778c60b65528d861b4624599d7a127db85c5ff25948afb75bf5c48e8094f0165682d369879936c0e8d62dd94744435dbdcd9570b90e153547b35fe281d37cfd20f541f1d6fe45eec8909bf8403b7cea29dabcc511cd4c6b055edf23018f000f0b5c43bfdcebaa59d2145ff3c4bb81afb9d0d84a08fca00f41993244ffb04d768b95f37ecc8c015856933d5569576b62269907874237757c9af0802d84b9e032dc600b9cc63eb80898df3808ccaae6fa31082c7ac023a2249970e49d9c0d58d80c938a3013735ca69c709113134a7f04359d2447f42c382f81e46bf9c03a3fba68bf9310e807e965100473bc4aa25fccc7da8866fb11168040c3c509c269ad4c91462804fcf8c7f7d28bf9d62fb07ac2d9d7c9f3b1bd35aa6d9747972bb8d2dbbf15a3534fbc32d2fce735c6bd6f7dd69632f584262734725d7c8ff4b65860b4b78b4be41382331d7a38cd5823538627a57f3bbfb1453f274156e72418b8efbfdea250b61abebd2bf17a0668e6f07e12e9ace85443fb13daed94aa7ed14efd256759a471052f0e19e346bf7f0bd8ccae3c364d04eb42ed2f48de15be89c61381e02603c361ff3e3780df42af892c888c60c887aff36cdf892326a20a7b3dd65d26310aa206173b87aaa64cd99a32fa9b3099db48a28b1a7b4f1156d2583cc4073f63a77511a999a021be1df167abf999aaeeee8601be921e07804c5052a131d1622a23d0d5ff782753c066883b36a40cc5af642545639d09e30b979d1b70e1118afbe284ba2144f2512eae7b630cba91d8023e6297846f9b68cb96211368a20cc4a4db84c054a2f9e4ea1445a23008ec570da95dc519ba9512e8ed9e6a0da47638bf30b75d71dd867b4047de621e3a9c3abd40c32b508786d1fcada17dd8809901f5c1685f480b7f269f6ab8c9d2bed3f9a7d62080eb81727313b3a86d13eb2256197bbb13cbe4c4cad8490a34926fc841248ce3d9f8d9f8d5d77961a55c01a23f95511c0c1d46b1c3ce3a2110c49813bf69543cf106e559f4e976807544bd36a9cc9cd12bec1f04daac928a582092ba4a074206106ca6babe84fd12ece2cea737f274edd8ea81f3674ba0f3c05eab2fb8a325f0be423755d1e541c416d955dd6d10044cef62750fd5fdf7e30ea0769c95b6b717f2cfc0151a5d7eb2f7265bee2d654a5206a6087308d308df558ad56d7c43dc076a6a72b8b41a9a3be3d2516758f5d3e1491944ab04be77d878ab1ea01dcd92c51fa5a0146bf5a45682db58f6a9b57dd2aa511e5e6bd69edefa72a717618fbbcf087f0b56575f093c640d122295b21e9d9ef932d645534b46d1a8514a4d89fea506cfdff3136bb5e27cd5c1d72abe56bf467c7557125fa5d6a862084f7f5aad2f37cce0dba7757171eb09ee947d17de05e743b7c410a0fd1af1ad0334be7d5810e3620816e10c2f5abeb5f8e6c1b793b0c3bc2c06a0882b3aaa697204292ed5b410a6b873873b2ea95e5c761cfa4327716687c34377b71031574810d4888786f21329d45068ea464ebe677318821757fa487d4aab4713df4e84844e003c68c9454810add33a55abd56ab55a09619f7189ac7ace7b84c06ed561b13970f55d27bfba6ddbb67d46d8fa4a56fdc685f03514e2c59d145c41eef08c2c8ad5366f7a76d3acb5d65a6bedb476ba6db79e5b6aadb5d65a6b2d6833dde8a79d42d3f322dcd65a6badb5d65a29d49eb5d65ab7d65a6b37703a69fc34edb4d65a6b9bac25e240b6ba75197183886282b7ae84ad6635ab59cd6e76b39bddaca66ddb0852dc391a95c04f29676d57adb5d6329d9b73a07c6edbd6dab41b7d73deded65a6bad0d61893bdd7e35b0dfea4fe7929f26cfe658f8b57937bf471397bd901bfbb07e730e2383662c8da8327e63a83098a5b6ceed65a986f5141637eb1d3885982d4ff56bf386228aee2ed7268514d0425dc852fdda7ce4277e6a6befbd4fad59799a9b14bf755337d36f9b93220c656b9a598224714721bf110112c23ef3890c5a810ca2beb9920dc9358fee4ca675ecd54e9b2d903bd3895fdb6442f26c2e4723fedbd6deabcd398214b7371b76a337926219cf586a739eaa8179509b6b93b1b01666612d3a55779c5ba696b9c458bea7598254b9ec214c71258b42c2dc9195c478eaf30730199e52c781e670e738ab3c35e2a97772369d53f84749bf66328f867927ca5868874e2c86f0e432a54e7d2a5177b994686466b48f365e3a8d1c7223ed56651075efbbe9dd70de3abe7decf935513f13714d649ffd85b9c6f3903bed2fcc3588369e52d3b4d634ba62b1dfc89df611a4b83c410e5c4d1eef520e6d10a67b2383e83f3de1f206373cd16e388176030d1c9b51451818306745eb5ec6bc20b161313b2a57de0a2070d971e6a57f7208092cd82eee17520c4be46611728476b9ab2a458e1b3ff0558a9c77ce89e06b9593591c0722296231052e41f2b09f2077761471ad65e611fc2a819672a7ba4ccb845d065b5b4ba1a24c1a1ad2d772dd5ba4b9b8828c116b60a1064c8891d812040ca054f5304411348a0c5835c8d9d86d575531f3825ed1058cd62b56c08396194c10060f240da20451c3b6280720a87a60c41461dc20c46ecb2c61b5d8e084471b56abba4fca8f7226c7a9c4841a416c21338564832550e0832a26386ac24a53124263cfb384ba66b8208b1c4049198308a12e6452b0e54a0a96d068c184e2c504940a2f3c789902bb2f635dd278aa1f450f096f88a71fe9f3959f445cc945082d3f5a2e432cc1658823ca687067caf5f9a195528694523274ce39db1ba23a55b79d526ae50e9522d56818607c5175aa2ef5aebdc79bc719c2e1e1b617e90e6f3ac9a2953b1d5ab963021957b22812693f2b21ee9efaeedab5521a3535e599b9c2a69e98814ded60aacac7b45b49cf52fce84dcff1836f86bbbd8c750943872e3b7c4bdca92e52b12e4ebcc0da8e090d29092d6a693b810a939277c292d40edc518fed72836d21403d3d404540f54b9ef1191155c63b210548b11c4c69271801a55fd24a59b6d745a303992b4a6cb9352f6357a67865ee7d19bbf2844ba28934cadcef65ac09d94fcf4193a659f0a6822e2aa5cdf132e6c4184f7f743d7d915c9d1c1a6993879093254b71ededf93e749dfca8b52e479b12663f7bbb57a3265beab5725676d3d9ecdc1c8d8e492795dd5d5762a6e42a86764b39ea98b3250e8e569f6690d5da395b406b6bbc699b56e76bb6d65abf989ed77447efa7c8f48d926cd045920e6a400152153b5b64118319bad080032965ca6c716bc268eb7a3a460b9428228817f8b04568ec79ea77c70c072bcaf0c18c33c04872c4732e8ca75cc200e229f794524a79b853a87d72a94283ea6437d32b5bf33b6682a6ad9bb6554b7bf51531c8dd5734d96ddd346d03aba51cd8abcd63907f82d3a7fd4c30fada711cc76267971fcf195927ac9bde94329cada3a3b3a393e30497b54a6197bd08ebf08bdd6e3accace3383f5c760946005b8e8e4ca4ce614e1727835828c823453288bdf8965c7cdb761190aef559f3c41dc56f09251ee9e67e6d3e5c9766147f84282e9ddccd3aa273fe5460a1ce574e583c422277da3f9049027c7cb7d75176e1913eb2acfdd029a085ac6fb949acd4f9e47c2a363212121292149a424c14e7090a4a4b145495a20805a50159cb424aa65bcb34133085ac779a0ca7d474f264cab838c5a66c56f11123695522cd27312e4d3f4ff0a3f7dd26593f637267ae56cead423b9926d2ace1e172bef2c9d43f47262b71128b50403e3ad23d67ac5fd38bb0009cb8d2c7196398f745ea39012cb4ea7a87ca8d92415b668c9dfa67e533945e5e5ed1e2a5cf1ac821d3cae46197d29176748cb9b063d38991accc21ec64f270d731a48ac5337bdb6ba563cfb63239792729e747a40d21e24e9758206151a536b1d86165d281c19d3e56267662a1f915b5cb35bea99146a5a698e1a197ddfc4c78baa37d19f6f49ebf7830d6f96725250a2952b48595d616d996df828c1f81b6c872bfb68d9d2e6ae114b429c1ba910df4dbd8507695eee81dba6e6ecbd2ade9bfd0afcd351c7ca1e953a24b75fd47ffe140164f2e986216861745084d07923f7216a588284e2465d10194d04b2aaac0c1336864e7368379c4cc230e0f324b114fe58d58808215a0c1d4832b98484368149f59d8a10633ca7c69e2074d42350851832ba004f18228a64c900228c248da011331210328a911850e335002063808c9339e9d3611cfee323c7b911ab6d0e1f948688a2bbe8c6db1c1d7bc8c6d79d276c03d335288e6e2019068a08cfdeae93bee2999b2802aa8357d90315736194dbd49a9476dd7e8e08ed4b35efd862a1daa4a44669c4e88dde946016821a8573df669aa6da1f75587531be681b52344ddd15aa1736aab4967984ab5ea16a460a466139830da1c6deb8697b4922c83765aee19737bc65cee762e1caf063cd07f0408345fbdfc52a05a0af249480ba72f3173872e170dbb273337cba0933dd7e270478f6a9452da1a7be8d4386dcee955d366f5aeb360d57c736d7a55d2ef4aa51383116cb8d3639f71ba256279364636662c1c781caeaadcf79c95296d5a6bab7b347acff64bcaa0feed1b6adad2266fde6d7962ad7673a6d47d2c61ae5a2d5c223e0d8d9ee59e1854c630fb46fad972f6919d6f586cd740b3d8be53c492467aee11e333de4badd7487e65765867ad7386e97444da2df6b8bd3af5d9ac6541af67837cb923fdae9ea6855eb53161865052b76ff4cd36f4ed29ebd0de20e3de30e38e7452a7b3c371fb71c9114ddf847f0b4a2905c7d00e836e747369dd8715420487e973be6d1ce7ce8594ab9cc6719b566973d31c54dfe426a5f4cddbba9bba6d16d32bb72bb7ddab5e79d8abd56ad5dd924a2aa96dda325caad526f5a733e1a2a3cf392d756dd5f5ae7679990cb53d529e210df96e5ce86dd5add7b116963bc51e20f992cebc6ddd24b0d8ddd4059d946007929a5e724982fde8bd945c929cbceca1eac7f8e91e043ad9cdd04969fbc8645e6cccd9b35984285996e799658e938c2c9a4a32934049a81468bcc66bc218c219d5afe94642f333326717c48a39db3b9f54a3dddd4f2cecd3ae55d005494527a59d239b4c64a13d999a8e622c9856784e24a924f368cc08cfeeb2e25aaf711adfd86145b33b4e2719d4b5a4cf0a56a090e5cef8f52c4f4decafbcc2640d0d28fbd5643e4ff18e63712cd6170255d3b394a27afa717ae9f1e3949a53ac8f83b1bbc06318367ff4222c5504c61da7d37492419a103b14079adce73ccf7a1ee7792bcfeb3ccff3bccff3589e5704247267c0973cec1c78a42545a69122bbeb8a6b439ff16d06bca0e6c43f02687a92fff43ca37a10e359297b383fa16e68a3c2751aa7b9a10a337efd86239850fd9a3e134e2721fe5847142927c7da8a39273710505da69433be25469322d5ddcd454a9494174851012765ca4a4a27c5068f4be35b91a114c654faa2b4e55b137cc945e9e95b938bd20abea544444ba9871b4a34e0f870e4f8618d2e874786cb8b6fcd1fb6f8d6047fa8c2c673c18d8d8d8d0d8f1e3d26e83563402fdf0241100c41a802041fa0c0f121896fb1387ff8f0ade94309be35b94411834b142edf9a60142ddf9a2d914543c38e1d2dae9c0263e57966b83e672cce27f6a94e41b0b81385d5535702c6c9a993f484d5d310c81b8181aa609c340d8a453a658fd101894022900824120122b2fa8c702f59ecbcc99a914f3a628f4e8f10b1a6755b2ecf46ebb65caed637d472dd504bad2771e4077ef45ab7e5f25c3b542ebb8e19e93bbe21178bd26345dc5cefce161090741e3d7c481c1ec477b96c80498ad29204c553929c929296b2bc5c6a6229896fd12858a2347d14d8cb283e448162e9d412202aa364e8142d43653cb0c24fecc450f013185d3ba51ef5be5a75aaaef81a2b090bfc4024fd6a6ff08c3b32771d50102be6a4cef95cd11594b0cf1721f1f69c8648c01458ec22169bb69024f4e1caef0d5c02f4956d8f27ee0e0aeef423d6deeb72b98bdd9a105e16661cf1a00322cc0d6a182c2c135398187c474c85618209d68d91841246703a841942c7cbd8135e5e008a42c45893d44bdbb24e509e7eba5cb08f6aa9ae93f2a75276ddee90b952b6017567a5954ae616d36a21d9945da35bde513fa21ecf39d915140a65a5b482f26c038a893b7d5c4159ada03cfb84d2a2507493c7f972a4016d4a70a3ef58bad14b09fe094bdcb122bd9cc1ccccbd417583ea4e079936214dcea9a93a9e3fb47d86574adb2f0975a77712d395c639b58f9f21e74437cbb4add73a55b787d7ddb52be72483a837f7c413dfe101902ee7f46cc4c7d3b006893bbda13cd7754bd72c655bc9e4dbe7fd8638aca9c21cca15cc21349ca18c893087f54f23cd57bb65d86c2409fb666aa67e1d49ddb191a860eaa63944736aa6feb1d3db351ee48ff6d42f28e44efbb8d2a47c6b4420f1b4b51dfcd84e7308f7a441218338292c173f6a3b98e2c7ee2dd829f5ab838d1f95ef71e6a97fbc34faabe1c9045ad47794fea67c7ff9f6ac4c7d7352c820ef8adc799a433c2ba15735a4cc1d3b252bdf297d7bf7207fa617f9429a43660d64e72077903ed5bf708541c1b7163f1be9e51c325fba376b642a3e6a6e8912b263b626ee0d19ce0cb7f3c28b010ebc24ee0cd407c46541b19a6241176098740006b6c2e1725460942a950d4c0d55aa0b326a9298baf092a3280a52175b6c510fb02eb2dca2a4a82e882e4ea8e0c79e0f072784d0ba38b1c326e5722f634ed8d069b9ad313aa830de0caec47eec790bc50c7a6cb8dacbd8952c4f57b038e130c7c9d49b362c77a4b33ec8779a5b7919da70ffe239ade83abb6975526666e61ec1863b9da5d46961b922ad35c4619e2c99ef0fbac94dabb6596ed579d6fbb68fa5b1662a27a504923b4cd0151010f7b4aad911bee4bae2ace56a70d847d491419546c7c7447839b3738371d86bd86ac91dd6b75a32487e4bbeb8d5e26f3171e7d66ab53e96e2d6d898365a40402d4f0201dd2f3aff6ee67cdfd1aa893f3ec81b7db77913b4df596f5a1bef596ff41d67add19c73aaeb9899993969d9da8d366b1af568a87565cadca20e0e8b6cede5e6e9232ded66e897dbad28eee4296d28d175e00f1628b238dae8cce468e33df7ab1f561406ae3a9d3406dafa866cc440e99cb4ab464ba0395c5a0dcd2dc15d3a6ad3997b690cdf5702d5419bb280a034064a29f5243150975436ed72676d014157ad252637adda66b955e77dac994b53e3c9d60dee060e4f4a97aef08703ac04c308b4be211b387278947d562c0e7cfbdcb48d933b75e5819e135222b8d953d34065f12d250ca4ac4266c12185f140b9e3360576b9daec8867874b5be98a973131a0befe58651c958c893165b28f7519543dc737971c35876c21854d9e28eda85feddb4dd7f430eee939a8a7302e8a99c3c23f4042cac45c96cfa14e5abeb790c274b863d5f981d315c82114368b5822ac32aa59a5b039a4a62179dafb794cd009c093f20788cb1cc781fc0112feb85f3e2774b1986fef8470b327521ed00086704f443ccea9bba5f8942e7504909f7705f0789edc229e8cb23c4f2e8b3c39dc51ca62e09f1c2835079426a0c139f575f10b430ef3ed3c25b8e37cf23c385c0e73fac716c0d3a9ba94c2fac7d50ee40588493192132731a922458afcf099e34c3a09ca4f67d23e9de654bfa60309a7530a405c74318c41f67420a1e41f200cfd6acf018ffebf21d90f244c5cb0872909793da6b8ec39fec3811800a644818037870a694206f07a6469fa66d276a65caf7a913b03782488dd90a75375c59d29b7090c72a7bd33129280638847349284c529fe113932cd882d2fc12cc504f012ccd2d2cb645526f336f046a57272c3f92312bff6e0c2fa6670647b0e97d227098bed38bc5b400a0c50a1012bb0e000160b07d47ee663f9c7f2cf79f09899f93e5668fd53801755abbe9d1851f54d6f75aaee8cf7c8c16df9d4e73d6510cbdb99c8a095b7c3808614db79e0c8fad59b7b0781084820c904285081eac2576424bf3aa83d0b947267d6705ce2fd0073c026f4061c8dfec6bb8e765ded7c82d4bbead629e844bfa16a23e005b1823974ee01f6007b5028ae1dae1d2e2fc2d4d35165db6c4343fa782b0f0470347a10bca340055c68cf0217c080920c7cacf9f99c737ea1e653f3b16d3ab84f870e1f3e40f0eee646876b20b8830738f6bb94cdb86ed866fdd32d2979400b10888004924c800235dca6586cdf64726703418c3b72339a1aa7f1f6ae0afbf0b7774cecc3ce34ab679ff2874907e44fd7f43a55d7041fdc1f39ccc24a45249fa774adaaa21dcd26a5a22faedca692f08ff70fd51d7d9bc934273404bd478fd08bf00e77f936b347369cfc6dd69ea402d287f3c601afdca91bcd0aec58989e031ed05e0bd48340f522a07912d8bc245fd1c7b272a7fae75fdd585bdd78d334ff40f6ae56f68db9a3dab66d9a83f31160df52909f6a5741ebb6736ef5715cfddc3bfe867ce51d0f1e2084363d5c7e186a4ec050ebe1ec232492df23e401de84362e976f13d6d98eb052b99c03758444f25d610e70ecc7117260de0047f15b20e734564e9ad7ef36b54dd5d0dc4ce146e221f98638dbea573b33cf2466289ba66df33730062d6cef18e4f1813b3e8815dbca37ee586339cb67bc9bc4c03e9f6b2c507e54734e4ab78797312aa9af1c05c316f6e1c63047714e49d427128bb3ca2a158bb35ac5e2911316dba912993bad30736dad60fd23dbae603970d89c3125c7ab8f3e8a3fc26dd6afce0929377bf2edec85a3aa6c71ab6dd69e446a365b217d7b67e35110c8eff8885e4f439b31ee13f619b9d9734efd6acee98709bfdaabccf2d870258b9449124f0d773a95cdb859ffc8d9b7c72dc0c7576572a79dc7c9f6c4847d60d3a7acecba3827f661a732680129304005ea356005161ca039f5f664edf6b4a5e0d1d7a9aa32198b2dfe0e0ee012fb30c093528506346085153ce91d0b740ee15e3a5bb9301993e64ef41a605fde0a1b003c16b400780ea83ade03e88ed74207f120b07511f0783e138c3e648ec55e2990cf481225fd637b9b92415a386572c7011446617489c88d187794b22426fdf3c3abf8c7fb11bab7724257bfba07b43fe01be228169b52de12724c8240be9b9e7c3d874c76483152589579ad163c9daadbc26784fb1e4e5cf61f0ec40807cb710e99b8602cb60b000808f803d4c2d1da7bc31cb06b41048ef9705404bca2a95b24e68e555665eca351cd06f0510ffa8880345b44ca9a087d46c4e790098bed3c345c1a522616db67013e23dc5fa63012868c101d29c184138a50380002902440010bb0b94981013c7aa8d080157c380ba0037aa86b4fd96d348d09ff482b64b24e7dcbe69294c964edea4a65ec43c53e1c19df4f214f306ee864375344b9e7f0b2389b3a89d301511e5ba39097adc3afc96dfe13aed0b15801922c81817d9c849155cda38904a5887d383244dc5313c4b83456a42556a4a5feb450c31562300d87ce4e4b7d6a0d8ff0ab9d29f32c80d4d4915265aa7e9464be96b3ef4975d8a7c14c2020069a3f45d636f55b7da82f272e7bdf1b214556eed88383c3627bd1953be27ccfb0c70417dcee39254e3333994ea7ea9ae003ff91c36d099937dec33e1d5297d4f1e88a16a581c215d658e35c93456a5c5944c61da5541217942c61c23e5a48249bc0104375399d78d1f916e657bf557eb54a7574cef9421034ae95bd55090641e3da50ecd7f4aa396327fc84937ef2949fd367d2f7c86ae8a6d76e0047ae03c43ef4ab93e0f4d565ad6362649e7eec2153821f897cad556359c79094ae68947c9979716b4b8953bb871f4c79b9f492daf18e2ef622dc367453842a773a95b25f72b43e76f79cf54bfac4811016ed8c8c0c1e0dc69ce1bd8c8d2933041931a8262d7670831e5e6ae4b0f424841032192786182d3c315f384e0c9426068b6a69df80b9670c9931613cbb6dbd8c8d898da96293810b9429574e7004134e78100325050e186a9491c60c7ac003273859098a929a28c30c187c698119499cc424bd60e6031751d070850e2f606aaa218920da490f4d3c27b8e20c302bd092c4451433317c684118980d475c0f2c0e4eb060420baa305ea696a8956ed6c5e2348a028c2e515440c3132160b06d2144124cd8a08514638472809ae18ac653cea90418333ce7bc8c7dc1c5b35ec6ac4cf9518c6aa2f40619ddda12a0dad44d2f7198a900e18cfa6393769b026790f29126ae65f10697d2d94a58cb0539c1ded5ac88ecab95cf2ecc6ab5e2382ecc487d4c576f8b8a72a7a35d9396a62180ba06b4b0e51bd8e012ef29536a65ad3a31b8a35764c43d0d471ada9430d2772df1be9b1e95948673ab0175cf6bdd96e7d196773b04b31b65dc9677eb2fa948df6530996fc2ef7c6dbfc6e67aba9ae7749e21bf9447f0cb4f05169aa1ec979ccc5dd82f9aa6699a77588d9e03da2fa99e25e291ff3c8815f7c806f42c9fddb629a1d5b72d4462c1148ac0165860922ff4e172eeb9e64b802868339df38dbf191ae17c70c78b02ec1e619fe95b48247ffaf46ad3b92492bf6d946ee18db3487d82177401b148bd88cc9545bcb9b70a192677a66b9ba655a0a626554f5d52ea83294f85b4bac94bfda2317adc193fe23ced7a7ea0fab6f90e0a2ee7f38fb04f8dfd23ec43f314dcfe08fbdca7e3075ef32348fa877a11fb58b7f7ba7c0b475bbdd557e469be81f58fb00feb29fd239d76847dbca747d8a77b3aff08fbac9e82f28f6cae754cf344375d88b91465e63095783262896f355d3aa222fbd1be0c4288a96f51e1820a0db850b942858aa5b203470507cd055da75375294b9ef172a094f20c95f3a963ef7a7a7a3a6b544b001010eddafa11e867cf12d7c80b738d8fa87bd01a99489cd45003112877a68372c7724446bcd128a4f623925294447334faed23ba97ba4b014cd4cd0c51ef3cf63ccff3a6b42cfa11857625e7caae58d5b5508646756a5c5029294b7ea2bbe531a5938663039ea174dd0e95bbe565d427a59c38504935b661965d9e28a5948ca6a794524a43da9427f5d60f7ef49ed2eb4e9b4b27bb19eeeeeeeeeeeeee9e3ed568793493634dcccc55cfcccccc3ca36ed0491c9e1207508e8e8e64f09f0e4486979f38622c0921c2c453cf34825871bd1b1d97786fcbfb1b9daed23946f5f18661b842ffb8cb8a4b59f4d1afcbb51a7acdbc64c30c4f0d97b258a463ef184c80026612c0cd94522a6f58cd54eaab374fd6e74daad9fc866a5c7e2f0c6d6e643eab5b140bcb1ede7fcffa8e36dd58140b8bd567deb3366ef8e8d5d6e4a9eea4038b4bb5aa62290ec3534c867d64ecb37975a6aaf1ea2d6b2af6b93e4343eac403c49dd5a78cb2cbe52e8ab4c2bed61be4ab7adde1eb0f9406b0d7001b0d29566fcd213dc32183cea8019b066c5953fd4c38f24c8a0572189ed2402623632a16399c54e09c81b36aca583ce342891551abbb58acae3aa1d4ba2335674ea0f094a5af2e6b65a4af6564f991939e99bebaddb4d6a4f8ea2ed6590d3540a5be78545661b4ccbdbe6d6e638a92994356aeb166441041041144a8a134abb052ef344d098bed4b5cb2c8b5b5d6d6d0d03b7d061ca5971f8950aa9fceaabeb5533a45a6d60afb0fb4d486eb5119e51e7fb9c0ef3a979276cec91f2a5fed5dd775e1b804889671598d03f0dd7d99c933c53e54d634d30bd34932df4daffb898c97ef79498517559e656fbd98f2fe928a1dccb60f0134e1389fc647cd5b6ec18d739ea935ec7cb5722b836a7c15deda39fd88aab3bce3caae560bbc71c9623b0ef006e8695e8d0df6dcb3b1b917c3bc1b9d4fdff9f60d797773887cf6aeeb64cf1ae2d0d670bf7034126d09d47bc6e19ddb957b9e5b19c4b9d7b9364e1ce00d1001dd7761c75a8592450bf6064ea7e3b432b1fc8462f23431147388fceada37549fd849c04635bc02d3f1dc7047d76baeb9dada7b5d2e7751bcaf89d4a9ed4bddfb67e56007da7edd6d4b81913871b7addedcf04f0afcd290b0a8b9faa74993a22b9a2b59c23f372e16b54df3242e688c4463eeb77954d7e8248ecd09bfe365e55a69084d476e847c778fae9447db1ae349751267ec788bec789bbaf7ca4b63a3a68646d3b435e4ea06d76a078f47e9521847454501c03e79d2257141db2cb7eabc2f09e7649fd04a6135a44b54a3b4cab715a571350d852b55a8a5b6fbc2f156a9c262911a4764d86aabe566b3a8cc1db759bb5cf382d8e04e6b6f0f292efbc851345c8edd1b2fbdb375ab5ba5543bd29c6c74a361a56251ab2085d125ef7b892eb1c884e375aa2ecb1e4da968cc1d296cacdea7f9f70de1f08c9eb258df5012e6e9e18e9cd30fcff901cea3a8cec6379484c52df57b9bd92d36e6857de6057a2d2210179ded14f255a1a475b251ef14448d3b6e3319eedcf9762ecb28653c3f9c209f9e478f3251182867392047890c6a75e32d2c8e19a514d7252e326902c37591c5fa86ac7b33df90e5507861aef11eb88fe3333a70dcf39573ced3e59f6b4e3bebe1802d16d927c7d37ab5cd2b382e713dfbc6844516dc51ca5c1f4841cbe2cc0abc5566a582f8709783c39db93435365a37704859292b65a5acd437fb481a8fc72a6322c39dce3c3e3047b1cf7c6666a6b4d21eeffdf7acef766c36ccec5b38724f1cd48eaa3bca2afbf9f193036e337ed125a6558810926ebdaad1d658db587469e629d83e6d1ce11f575187c5ad8a4511e4663563ee28654d986c618f0951dc917bf2eddc13fe29c2256d2ea019ffc8aeb31b389ca6bc7172b9595318bfda99c2285318656ae14081142952a67cfb14d8128e1c2e1d3b6c6e78dcf07c7c9783a392400209245a72378b7aa7c323fa9e56f9bed7e57217c59e9e2a5c1367c5da7b71f8e08f8e8e6c1092fe4939c63793c9d3ae3d9339842b43f2b43757c6b794f9f8aebd1f2ed9566db36e20a16da6cd62e7af84d58f23780e5f986b3c0a562eac2d8ec7e29c7e90f4ab65d0e6429412b993e34d0890e333de44e26b21933566fcb3c24a63ea9aa338ea0bebcf9cc2afb00b471710dfc251ca88c88488a1ec174ed83f4042d9b757212be439baa3948a7247cec9a78a7d680e978e1d36373c7a24b19673cae1314c06b93c9e3ce708447eeeb0719b1b296fc22372bc0833e11b0abbc17299478f1edf105d62d187b49ae3511088c7937447297326dd95ca26cc1d298c458fa787d70fcff19c1ccf71d1735c0afd0080fff01f610c362afc70200e241c810d874700f11ffef21f2e8500f01241206095b1083d14008fe704b7dba172478ee2e18edc0c8803013927d0a6847974c23c7a0eb92716471073470dca77185a16633065f1533bf2c11491b52e97fb4c49e9a7b00f67c61851dfce61e1b23c47999ac2aebb3e05b0900e77e49cb819bfdaadbdd7e5e2669c930a4a5c7e2a24f1223ceb9f9cb0ca7e7094176554d5aa990c62ffa14ffdfa81fcc909a665a8a44e7565b9846a46000020007314000020100a878462c160301c0792b6fb14000b81964682569908c428877114a6903188104200100200023233336301c17430009f5db9c9439c5a986674d56f0da793278d938965f1dcc8b9e2b9a78177738f3ca700deac242b0271d9dd9159fef07ca95659ceca48d25eb87673bddc0cf91f87314e50a83b23d2f88fcce7c12974ce6b9ba74449bc968277dfac6c0569175e5d4458a5112a1ce94a18cfadf323bebabc6beed9c0864576328849c275eab26342426b10f6d54181cbb3ce90f28a97675bc441de8bac898cb3c5459a4cc1423d26439eab0f8bf57057bc951b2d11dd5b120ec0c1d173c59350a85589352f6caa6442a7708c9669d9636e2c526d24483ba3d91e4f39c9900a30aeed22862dbe8e0436a3d5278012d822b3082de760c1a1d06d37f6395ebb4d538b440b73a8a6497db1c73185c2b7b9c0a62d0c41abdcf0753c54d9dc6bd35c0f44ef9d12519c016f7ad15787732bb8f0f843b184502b9bd28b181338ce35eaaf9a1cfa15de9e7bbf1c3a91657b8c6a481d5192b0b581721c73cb741079a6b9b19ad1e597d09b2126e90a1e3f99ab3ef0f20dfae47743a50b33243b08e16814466116ce04e592877532ca65643a9b215ce220263c4cff827163e3c9f4d5380adba7f155aba53788bb274543d21de19a80be01e79111f60606cbb42d63fd256d2024a25a92dbb36f40366c67eb829d1f5226af47c20fd76549d4bc94a25eee224927f67ccfc5eb9bddd76fb2da29bd11722461f29390914bb0c708870fe20e80a55f90d6a6b50e327a6c3fe18025c25bff04f785dc5aeedc242c9071e5c1192f4984c0fcdf0a749d990f3614cfd54ba74b3b6e80905b9dc04b6280cc7b42fc91d16fb1c910026bc13bcea15e900cba54453445a0848dc3010549a6655f4135e8f853d0ebbd9412d780686e9861228908315fcb8d16f6712188d9bb37b803058d06f9d659dcd7c20e6cdab2e253bf1e6c9999090a5ca3050d831b4853a7d5dd087e9b739e0d27dba4d365b11859446a21193988a6c39a6b09c65f848ed700e648a0e8214c5b351d0e7db09c0283d1a08f2a9876e4d41753310873e93689c238ac005009fddde9043f2a283d51ad0e4ac2df39a59d03eee8c300a99b701a99425a7d88f1f9e3a43090ccb5222a7899990f685b5665a1a0c9f7a17545caef8aa5d88fceb1763eb68543b1fd6cb7a7ef672a26b2e96403c623abc874524b1d071af886c66910fb314f78c98daa22d90c7bbd589ad77d91a772779e0df061e44c32400386d91ed5b1d96ba8ad5656f0e75c5891b297326db3b6cc4d0f646e2459292ef5e1e499d08e85953f132c589984df063960cfa84d740fae77cb7f26fbd734f3622019053e2b41809745873d4f8079d06d85a7c415ae899cddaf7c52b8551652e0fd7f00b0a805a75f90a008162c2375c111a0e6c3c6507be98471d5269aa2da6bdce425f6b5cd41f19e9da116a2474cf836b5f48b7e78c2d1c0bfab26cf5ce00557021d59b83c8f042b4e755c40c717683c66a325e6afc1068c981273b133b7dec74cb17831406614ac81b71b9196491f2650588a8023141f3e506f606dde8a7436be5cd3a86d6ead6ef66fb3cc0ac17d152aed23855f107ae4845831eb9f15d6d5d61f7d5db6c447cf6adf6a71e004783ed7dec142d8b479d4cd00f1a94069c34058a7671469f6ba46ef32b1f5a04d29399a5759b73260ed177cdb615abc50a58ad68dc091384a48a94d65ecdf5b354885e656110f25dbbf8cf715f7b320fd19d8665993582e898a736d93a50dd633bb57771ff30f06bca634367125ea60ad08cdd9e8062677e7266b39c504c0ca426d41a8b706d1818346e74b14be22db5f6b541623863a0ddf7cb26392794202fbe8abf34b24933236b08500feccc6e7fc354003300c4b014941db80e11d7c5c35ae1b715d0b21f0c07f573e31ee9ae091e494222b7e676824a25abcdd04aa756462c144fda1dd08ab10dc8aece0948eb875526302bbc4646eec4edaa315ced7c07acb319a12ffc9bdcc7854559474131f97d3916b27a20cc3c6fe6725c74a91236b9d3377c41a2a69118207142d571d25755ca7bb5cc45d57bc6c921f76c589a5b2f9c0f3c389f26ea6fc10d23a02399cb1160f0b42bab60c7d6643a8827d1db4fcf2901615629e157ae73eeab9b3c923a34979b9bea5ce2c3a405957523c455872b726498d27d34d11c909e5748b26d320b6e5203a7bfca80f285740d41b6d97609e1dcb3791a0b2132fae4c7b26e85134f33d05a3a818ae3486b499cc78084266bbe89821c0e2a72f5a1e2210150c14e3232659c79b63de2f36e45b6dfb2d8ef896e1aeffe1d13c0541613b638320b9231096a3a574a7b5bac0df94fe45d844f22ff34dac8e6928ba9dd8ae797eba2f9d014a3daf7cdc186d7cc5eaf76f3ea50907a34077d24ca6decfc18b3199b671f8754d29ae057479368c136478802111f7cd9571811e97b796c11d8bb2f5e3e451056cbd62df56a132eead0a5a6b5d8dc296e68617eb0c1a6f813d45b55005f80417021bccd0c9442203364c5af18043f84c413e4383a8da4c5db9a02c7ee8e7de1c20d390b2e774aede08708ee334602569cbe1c695884366433bf1e58d0032c9e97e9cbd520766b7fac45f12601bac10e9a7e5fa25a85d71241b79217ef708b09785aea3c7a378b3f0db999b87262d744e18054cb9c448fae28e96fc10fc23d9adaebe964c0db02b3b04b6272902e07ea88d2f6d64f7d2f257b79e95ffba0abe9e39cc56f1c8218f820b2dfbe83414760f8ed7b9501eac425557dafbe62d6a16d8479e25013b14ba209f52779c8bfa391d3c314692205f64bf780e00e906e9ab534b81eee6fdf259fcc54442e38507e178f88ddbf1168f18ad6b5fc36e36b20317e894f64911d82684dad3d6ebaf2658aef2e30dea395ff4f64f9e5a5aea5ef882e6f93672733fc93a879dea836f0b0f1c2ea0e75ce9e76bd037bb49ec875249495572496c12cd3055f4031f9e562226d5bca746f4c43e0aedcbf4e30dc769073a1008e4785377cff10122ca03e8ae6a7c4b205c74291615402cecdab38a1c11a88094eee9c3a88bcc0a7063780c3f3b11c4c117f7917a9f2620289f9fa66619e64c84a632015ee90ef765d6698fbdee5ded805b6734f5ac6a7a8299025c7c57f1a6791f73ad1099da43bbdb67639c33914fa6e98160f6915270506a070029f9682e22395272a8fea8d5557e99e6867378145d155afac96891c54ebdae7b3bbc0c68b36ba81b130d778d7543c61b185b79938c4ddbd68befd3f5327944c8d14a06c9ed8073880714e6fbff589f654f5b66782f05d87c1c792d9b25340fc39412d3ffe7bbf5034356e8ac56899b1b5cc53c7a483df02a13fb4de33dd29247ea231497b1fd6fdbb3054ed2a9624c372b05d014b43d83e64f6cc17a52f86799be49c5a99ea3b2401a6f3558ce68652ae46dd2a68ab092d57a3d0b943b7a5859dd4ec3092b84829d7545643f262b2e9ca856ffa6e6a866f99dec8b3e54af47e33588499455e52a9a75b12cd5f74da40c9b13a5a2eba5c30cdde6d1af00ef382e807ea87436427ce9f2cfae229c144f12c1200aad87b5e8173c160226893eb024242bb5cad46ee31e7acb1cccf5685b5731589acb48ca8e7e754ccb92df869ed250ec6948152c7be1423a4fe8fb11137770218bf7484f275998ac483046901344088e080278bd2de1788372a96842a4afe16ae989b7bf1279a79f3ff90619fc57e917f640d594a056bb527d14fa9a28d99059982e1ab754e9ad9f29110cd3fd6009f7f7a8300983420c140e0b287c3596d7fca88c1c039d1fa6c11053f366940b701ff83b1bdfeb834c8ef276a9c610f228296b97181b94db29c3fc15ab65e76d4c15108aca1a594226200ec8fab2f47112378b389e092806ec83a88f2bed4b7c86da69df98d18035ee1ad18db38098654c9661d6be2187988176f16886cdbd5305de9fb8945753798cff63d3459c67efe9dc7b694240592fc7cb038ba3f34926bace5480dfddfde84706ec1d746b81c8e33d92b7cb27044b66777cf3b31d666b4fd24ace6861e0d1fc39bd55f6776fe473ffe7162125431820008fd45eac35c2a79b546b9c113c0eaa2ef6645a0ebab426a0fad724c6d0261d120c144fa38690fb725710438473537896b452068450cb62ab74e11d5ab8d69053387827addb51b8e115a3aed304ab5f4c713140915c5550961c58df66dbc578581fde220c98e8ae51624c02a150a120e5dc092a60bfc6d14d951652535aade8a7bbec8b497f11a2289419768db90b87b74bbf06acf8d1b118d8470f97eb272dc6882ba17b469c1adf3ab657d3a08c128a1b0a5115de0fa8baeb5b471920d0c6ae83ce44a3b990239cfbbca3914016c55babb81a18122cd1858ddc79e8dcdae19e7a870189aefa08bf51ec7fd2c5cbeae2eef8e12c20da49cbf32a963a53413dfed6a3876ec95e01c348310fbd071b6f96154d763766006fbc427cb6996887b5c1640b216743a31a3b042d5561ac76325c893173b31f6cac15988cd157138b5d05877bcaf7fce1e7417e70ae7d17d51fa79eda009db4e5d7d7466a6b871a6d018b008e7383895b2bf6d7a5a8dd74ec5151883d5ec11b7d16e24a7554e6cf9092eb0a98ded35b71215285c6579012708eff5e39b1cf235faccc1367a4a30d9ec209f1a8bc3a4884850cb9471a327389294c91ce5f79a6537ecd4f67e17bb17e67d6de43d674bcfc1105213055073c0682914fcd505f7563c3a1ec0e305a72ba1ca0d39684ac0687ded03e9f1cfa096b5cd97248642e12648a0eceffc23e0a0a6382e21f792f5f563fbde51951bce9584516ffab86de3568e4bfc2ac4ca2ec063598b9f56b49d9c4de251ce985ae870c2c4f8193ef58b56e36f6f89175d07389dc6182fba6c293cb48a742dd1665e19b310a019f3d8edd91943443961110c521d503c5af8c0bb19a461edbb6b4ed28100a1aea9d88166afd2682b48075910a4486a6dd4d2380b133b80f89005e88363aaa115c78918ae383767e17bb664a9c78a42aa03fd1a363ca54a7e8176d45d2e3582603c0a91b2611e9e46e5fb658e503bb99274ee94de3de0f565cae2a16d426e4e0c073229e4bc885d34c2f80cf642244cea45869052f761404b09dd28c6c52fae5aaa402559423499dc5e9ea1f697382d13dec83883121eb54260f494bf49235f63e122ce85bda8000fdf3d8b51c9bca48951fd0ba11aafe26f5073b6b33c58a873020e1d5ad369ceff318331f4abf8a808f00b2727b08c82573ef5fdc02b201b6314ecb5d22c606b1ea8465da2e1754a76f819055c18b801f2648fc41cb83e12926cc2ef81d513c9a90160d9040194d75fb5aef2436a68fb7818e12ad57077f1b7752c22f3b866328e3e5416d684192e5c07e2d2c968d2857a4d30e0b09ac92376663b073a83c7bb41bdb1db57611eeb8634e0f9799968a076866d97a122497080b4cc2a0a44d3132c908d94e5c8b5c87ffb473850febaa146991425fc34a49adbb42b32309faca32becb44d19e924694f747d42143a915b2107f29ba85d40df0edc2d7ba664e61c496b06163344f310fc181d16915bc6b024a1e03baed24964f5dbc2f0a623924a558e80ee28c2947733fd8b055386d6b20a4e4a52504c84f2f523d0493826f2f55d70ce912a0e8204efca065c278c67c629cd9b894e3720e26ae6cf30a468e04ff0b7855ef699cb054044d9233318b126f1817d6903b08030f0bab4822210655149556e9d6796be8e7c032f0351d65213a295ec1ad9af0da17dfbd274aa4b771e7b844130b2fe4a60a0783fbb28dfeca92446e0e9bf1dd5d01ffcb7b4028d34f8e045c381478794f7f3a32ce76e29ed3202f281e64e3b21f5a1d59c4fec4c9b5feba163a6b9f2c5920efd8b7e8e925236081d3d2c417976e82eccffa8b4fba7484dc3fa9310f3a72440367d5e6458801085032bf8012e58bac6886b6065690d9d002c7b74440e2365233254defde85c1a28f6ce400befb0f66d9ea55493a0a2ae82f50d678f6b41e7663112a196084059688edb21c09f4906cec630410cf5cafffe5f7460d95553cc519fbbd568f613ee1e77fc51464ac4d6e3fade2d211782a792f0311126ca37e98bcc2781340ead61337e0a50e09c6b9a201b1efa732e07f57df19c97a3a09d6621ad9d1ff4b8b90ca60ee89578e8d914eaa14871be2812f803a934d2129fe2442d36dfdf84a63380c6a6b3d69c88a77b3e87d96f39d4a4f85bd13a893b76797b0934403e9ed83bb1d37f5ec6a9f0a324f49cc5219977a9e9b9f72cf3ea508a3d51e87e61168757be00607d0e91ef82d50a2316f08fa35b169788a290c1992b9bf188d2c39a24f194fb8e37eed4d1a77133a1646a298b02fe168145f40e78707c6742015e36687440f8cd8d3b34c8d81c8f6830508516d62d970029f11489eb7fdb646a46e994dda72160989f3bac23c8fb8ba080545d706044814be7c13efdfdbe7519b0212bf2a25c93fa7523e38941ce70bcd149a6d2e5e7b229ebab568d491d4d9bc9ae09c050c779c4e6b67ba2e6bfe5bb26e5e03083e8dcfce57f2fa0389b0319de6cc81b9b643f3b3ea3d055047be13526497db53679c2f4e4c753da03ab80c583d29e5fcc040e0b0b3f9ca8344b99572af269898d9e3a9f297e50cdd9e01e41215ec37449c24bce95fc3ba48834e851cea481cd60257461201a88620d11ebcf8a708a28fba0d38faa4580b07841bae486c980fc41892cdbd91d3c98631da93f6dbbd44916f18e1b91494edffe10e7110aa82b9d4564939efc3ab004fdb9ffcf7a20e31dc012174255580dbec1bd495b9b3ae148aefd1cde365364f81fd77748f32564e68140724811211cc50ad8aa9c62a91832d9e231f6d48236ab88740389e59f25953dc882dc2f630c859e74dc546a01dcd7564a28654dcc8ff1cb0496920af902e05fe896b96e0ba3e6028bdcff2f762e5bd597a1f5020447daa5e41ab245e5bcb1b3331c7478d161f8e871639f9d913095bafb218eaadc961f2561996c5c173ca0c4854503d36756f2379de249db55636f89b3aed004c53c258d53a08b02266529699b5a395cd04e119dc5fa07a1c49252396762e344c4daa6d6dc42ba4c9858449ab1bbc067f95cc1b9e421c5c212b56ead2a46fb9c2a652f2920accb8528296b072eb82c190c966982a613e5f303074fd2da54574774f057ec0dbc4bbadd77ccd43db0b8910e659528c6d4f9d241ea9caebb1dffa829b64ebec2175060f709ef43d565288f015ec90c68ab28b83a58d32e32d2ce54641aa4480ccddc85101865367d9c2b030184bd285556942bd2643431ba152653830d7e71e6472763f8398f65c041885a4512ac71576776bc9d5599f179c4fd9f08f40c2150ed0c387d20a294b21525b8bff4380189eac849f9ac21a908b3493e9dd4b2973837820a46147f241f75693f48a033fa57fa032724fa8162c0aea9629c1f563f33b1807751ccbb168db0d841e324a2dd258ae2db5838ee2cbd81658e6ecf8e2c46f2ce331a20dfc25ab8bb11f13d73084ef8aa336252cedc920b5634e31bab5c4ddf6147835dcf951e7400b92b60e3686f27c2b305bf2fc477bab95d936dd14d381c0407f3a583966df2cf2fd96244db8fab4ed26bd1545bff185dd309b5a398d7ad7c6a3f9d457daaded7392adacd274b8b996b1ea0325834d8a38e5953d6dcdfe69086a97b1a8159381a550eb81ae7822b895f4c1fbdf65d13b59f36e56fd5eb08ec4a80397c9e6ae5deb27f87ba8d19c21ac21d9e8f495443824b7c24c550016476c6d888705fd06547c903ae07cb5a42b2c524d97eb62d2d0a248bf94b1cd795a772bb52a5b11a4ae781d5db4a05f311197f74451c440e43f34264117044cc59a8ec28fcc974379e60df197fc4e747797b3cdb1b3c72563fbb7753533a9892e9a000c2ded074039ff67ea7f9deaa2f48e86be69cc7e66f956ee07c87c436118dd20e85931615d970b34e40d0eda41a1050f591474682241d2454a0af12fb6f934841e65213c6fe1805355a4913c2abf0fefe3114ee25c55e55f7f18456f4265da1caae820a71e7b942c5a7ec55f6cc5ac1401bdf253df50437baa3ec25a19d4a3203671749ea88383c6def9200fc203f90e3426719596e9c3053ff2eb2d797420f30e7715ff34f2420509f87803fb3cdb6ba1b88c3431f020174428fc403f14d7c3aeb17d3724881e189b3205cc2f85b8c5591dfe5e821a05fc2adc1cbc4a91740fb9783e0443d74dd346773eb6c9363583b11aec58f2f66e4d84e83a1253398944e905b96790956c261d9765f41b84e2f1d67d45dc47955e36add27cebdd8c502e377af9a8819675d8196e82051e63ef1697eeab15a277b17433b6426fc6577b34639e834d25fdc4fb747338876143515b6989824ef237166854cdc8aa8c0382677f65c0c516a5feefd2f70ed383bff0493be68cfc50a28b9c27ef1e424dbc073c27bf21b54a8244fe51fda6a2f99de4284a2054fa745bbd6cd7b7149485a7f2333b978c1e0cd080dd425555103f35f347c8997e8ab52bc1f2dbe079c6e4b46cab7ce00c3d37dd123805c80b35b2b5f7de6b211ccd0f11a30d1fcc7bc846cf240366da745cb7dd3b67aec1c3070ced283b1eca38e2a098af6aa5c609ef93db780053916dc8bd563e8c685c3da130b8b397514f71fa888acf896826fe5ebe1f18db9631b5550bfb9c141a30fb02a1607acdc9280d3703f91efec01ced9c73dd9c5751166f7760dda71e1a104f2bcc975e6e10b912d8235508da1578c0149a7f32fe305cc8fcade89afd0d4544c3e6667bbaa8df3f9114215dec24bc026d04b708d777a83a39537d27400e25485b354435721a9b1e6a0b6bea798169a9330141a7e07ea91fd25aff0831d81f7978994b59581a403627d549c4362cf4f19a3121a96879aaf3aabfac6a0ed791687d0e562575e61d3df4e6332bac7cf89d08d01a7037e092e4df8e61f2a677560d17c6466f15351727473cee502c21a4becdabc23985727450ae3248c69568d0980930c0f90d97ad6298155040eb8506f5a539e44dd0a98d21924aa117b201a9002017c16455a2bc0f02e0503421836a80e5858c06498d78c4aea4c62c18b2cfda6afc2cb016d075f03b4fedd9008096d87ecd05dfe6a8197a0a75da5238a0b1668a16378faffc19a530f48168b8ac60442ae12e78cc584d8c4941758a95bbdd12c58ce24ec633d9be906689e0a86b015213b4452c532c1915e4449441982f577ff0e2f55f2d89938ebf2a63d41de7d1dff2fd8f2c0269a35c2d9474fb047baf8072fa06894380002e238a907a17ed1cf70c7e36e3449eef397bb60a2612eabc387d5abcecd36ab5de705db2144ab9b14a2e77178808e923ea065e86d113c2653c7cbf791d857b78dfc848b9d8f951eddbf220783c2f4ee78c55c2102737a9b1fc58208afbf0f7e59569aa452286cd06280adc779190f48f15bc9b1b9f81a588a2f630d44285345508e70bb58d1f2be02c8362205ef6b17e01790701520d34bd8d35ba98ad1a4ea1a7dd4cb45c99425e68fa6897f3f71aa27a5e95cd1e00cf3b709d4fc30f57aafeab3737031f31587c18807a4f26dd26fb3e39b12f8a2a6a3649d20d18070265c198073f67c037a77b99c4b84d9c9378d92c9874b610aa45c4f6377841ea597861cef17f53f54ac49adf191f06f2dd1963ef2d43f03f8ebc5b4b6844609460770258e5146c257d40b402b95af4909454020a05072ce712e7bad7a10cb39b815984384bae64f3f55ec4fb636b06f2fc1e2af17cd46335bdc0444500ebf3abf07956bff788e74e92a19a9661426a2b4c02a4780545ae04fd3761fe15f085591a806098513b1d79bbb74ae6f2181515a042fef2e597837850fdd22110ba2210338e5bd5ee4a4b0097cd338b83160c8cbf2c7f3883e3b3315b4e79fe0686f2d79eba7bc96aec501349073f40f35f9c2d68c9feed454a9d8d8d065b48b5ccc883b6578812c4ce3785edc63afda6035a2b596ab69bf55f067e7c131d64769f1d97e135dda2371f46cf85baabbd621ac8d5e23400b63662095348b9e48e72c68a96d024cd34d067c2543ffe61c244b10439593836b24719d04eb3a7334e8a6f8c58a81a28cd8ef76a938cb815cffa9c0871aa47675464918c048d33191289268c4285ce3309813634823ef790883c13be609db91e80ccc0a9a91c0e7ab930f131d6c2fbe672667ca0166bb7e2895e426dd1d134816f06e3f472a0b84b25c846ec9263759f7d93a20e24ab47a699ccbb44b33421af79132f096a0db79812a615871b6cc12904443ddef895141f2e81c03944dead5070b2b3ab042be68c6548b09e9ef05b9805f5e22964bb864e586e9e8c700b46705f8daa05c1597497be320b5dab0682cbbe178c24515781e32e95fd4b064b2469222cf175102176e682e1ad4d2412100bd1aed8feed783ecfc518634b6e8bf807b0f15aa532de0d3415c6fa16608b79fefff4d6ba787d545bcf4db564492f187949769e200bb4542c3a9cf8da292439113bd2f8db80e46f1b2226641eae102fb0aa1aaf5f3e5244478ba30615af0ac2244f0fb87e60d46f14ce0b06bf4af06188efe5a90661f53c02e43dfda4c1bd170477506156406037c6c5c6adf7119a1f7769a697887166c4f7b885d2226f9da19dc059d4bfdedc3168c34c2e9dcfc5a29eefa3e17de5f5be61966074febec18812f00129c5e05e41ec9b9d41e73a5145c077062ad9844805ae8c44c153bd5a37ec6a2cf73bcc28a4295ea72c075d39b043b401d0f2cd93b7229f300cda3787f8b6f51ac6415b4132e4fd3cc2306e6f4618062cccf88701b4f4658a2108c237a3fada90c8f99441d452934b961ad4c352eff02c6521c91e3f5c774591d3b08cc0cea2a7b5f9838c1cd8b6caf0307c81106754a11f27f8a9441af2f7029aad3b633369a91e6c94dc87128e99c9127046e5087de33e4b33ea587207126d7011e3c1def1ec1aad1d6fd049395a3fc2129d921f59cd92134d2eb566f107e58eec570eeade1c93715e2cbeae9af3e267934b672a958ff4600e5582f172979e695d7bbdefa7720d9dbc5b906e690c743ca6c83cc872d3ffbfeeedd00ef1d0587cb3a2603f4da99db04788873882db92949d73b37604e3f7af441e54cf709d12835df7128fc8d43d430b7acb42d10e813051900bc4afcb6a26512421d8bcfb13ee00dd20a3cb8428438c54fc9ac3ba335bff05f741d7a005345841492e60a78cab83eae95ebf1b424eed6f48aa5410d8ab0b1e7b42805c0af07c02eab7940e81ffaabfa90f239e647a0c3ae723c9058fc01b85edf4a7eadbb9ec91c8e022c47d92c265a9844cda10bf82022e8691d0b8caea4b9cb308e8275e96fa00952f427145ead94f2425d74024521ae193d73d0e9eac778e9842d1340e22830f1be34fbafe986943cd6e850384f86d32a237fa397e40d27dc9bebcb2b9a32c43c730ae59ff217d0c652a7e3c663ccd42dab3c4192f85bf6555579a5f43abe5c4c26ec090eed5be8c3ae4fcd8fc6b60be747b60ef872da5b9309fd86ef1158122870fc20366f42cca8936fed0cc80ffc8dc5cbb35dd7ed1601b1d5736002b203f61ee183419ff1077e2474a58c483e8bc4c2e18d669bb9ed04b642ea692df27773dec9fe61e98e0da1480fa248d93c9844e9870638e4a019193084ca60826bd07cd9c42683fe085bf120e148f9885ce23912ac1aa916afda4cb64be38c388cad009e8fab59ef505f5a9e85800a8591b074610c50b5f404b55b0dbfb7f761699ab9b892ca00847e80ffbe7bf5268dd587e5e38527d03237526e25ad8619277b47d03fdedd35af5f1271a09d325af231e8fc52ca77e07cfc375e01875c176c8ccb771260bd737d79d6c15f37b48cc90f28afa3103330cbd03d28a290839f9204e7370d1a267e5b759e72723a0800171312da085ed20681a091e0cb9862a641472940d2e3b17cc688ba027a29d9223c436b7fc4dc3ce3ae3a69c304864ddb2d5beeefe084c948d3b5ab8f326fddd8c735edc9732cb9aca843100f3ca897c9165f471255c4b507410f674322e51bf263aecc1ca4858257655e453ce238bad3c2f05ef4ea6e5993a8ca68278abf672e9b2941b2fa749cc0e2ce75239e92aa48315fc9669c53b69b45f58d7565fa1429528e511138ce0cd0c8f41d6e4f9401c0b130d732f34ee6ecaa2699199429be1832aa7c690a8362beef22d5516bb19dffd934aa1ace448f4962870093654379352c2bac28dc766c2bd27fd7c13bfb031382a407e3c874a73cacdd815d31d16d29d8a5221b9e66efc904503d1335759879d62f93b0bc2ab8be52a5683faa573e0301f0a545c4e0c1e00227b98257306c70ce3185248436173b0fc58437f9f2b0fd94299330ca54c4dc8e0ab10f717741ba1c1328e1893aea36dee4b4c5c7b3e1feb9645aaadeff866f883f6dfc7aa41bba39f702c7f9163637bec1a3306671efdd5142a8870ca610de37e4cfd45411f34edf89905de96fd18a7cdfbb30099517f0bab8e3cf29f98677fb3b678d56f60e9b1c2f137b3bc6bfc608a9dcb8156e5f597cce0def64bda224cbcea0cf16019046c9750fd3c25eb0425728f9433fee0adf6fe557be0f276568d351631e5f83f7034cbe3b00038ef31541fb8c571c58f9a6b524d3e5719ea2e28cc7ac2c0960c00e86cb67f860f9bff6156d6aec28d1c600306d2f816e6d4d1b3edda2eb27583221d7ccb5a8d995bf1be7008e634e3bdd8d02f4b8930cb65a3903fb2156472e1509f5723644a42d6bbc02152df7bf770054fa8225d2211a921b58d44385faa12519a56c6301511900ee31a9d8b07160d29f90a1e0a38c93e6bb95b8be2356c18c23f268cbc86c8700a76fcf46ed4f291344ab417141c051c1355e175e8073fbe461c85b8f5b7b890188e691b22b9a22661914119df4b5cc1de6d2d804b4bd40c24ded2e11a1802d2d95ba4e57bfd3c5d1d8106582aa4b004340cc66943c5186dc178d4e97b4d330b80d701d20a98113ca964ad3926791fa04695cdc68470491f765661c09e50d78d73a1ef0722d09c410c5be90808242d3f60605d316721f9b439101733a7df1d12a1a79808a308a2200cfff20d4ee82e63ab385e2f2aeea101da5771749a3a49532ef68d3914145ed552d040c735af0a4df9b7fda76a63b7663510b64c28613fca979ff55552d74aafa98534b01e3fb36862bcd40708458e78080c5ae0c0892c4816d39302910210befb56f59ada312d4a4441ed741ab8203816ff670378e538b18e016478689e4da03a408564ba4311daccc2005dc180f1c56ec069a6eb8da33fc7473d4d4ce0cffa3a767b4f3ad07cf713376fe74ca11abd1754199c2493c89bcd2a2e08df1cd1c4aad736f5daa7c371e46861cbf3589233c63bf3ecce03009ebce8c8a74dd30bae91804b23d41ec0dc0013598bdba22567165f2d66d032ebfa36098f1a75502191405c2dd7fbbfcc168c7c6b5a72a5aaac7bdd1e5812faa05cfdf4791811d32ee16afc52691253a0cff6901a8d5a2ef10277e78367042f529e932c965ebf458e3633487a38f0d6f3aad84e274476e21ab8fc8a79316eb8e7074b433a9f7567c63a4b7980f8b30ac4f59a50ab9baa045da442e1cd0ba863eb371999c75dcf401f0509dd5df58b63123c8aa2e83e79f6b97d57bd5a95f2726a7d2d36d8b3cbfacf73c821a0954a36c4ba436f896ca8b20b28447a8ac979a478d10d4a52b16f9e4ae8460bcb39f33a216349ed33bf8f5b592d6b3652a7932cc2fa44f65225f269ed4d535b8447c3cb1c459c5d4fa40c9a3257acd4125201439c056d4aae798a58de09eaa4e36dc5904c162c115ed9dff51dd607908d90d7c502ad74f0a4b7fc8165b40c7f279d92c5525866470211ac16b5fdafcb11b329be18bb6d3c9de94a6761b73c8453de246f00cd0a11a429ad76f690417700fd626d9ad769780ab587603b462517b63e8d4caacf7e4eef16c1dda84898e4b3a7f9582e014d2305af18b80dc3c0548e0246a5a835f9c026e1e46d508a02a5d26a9a2e058eaf1f6f4997e52937248bb85728e362a925a05e37a609924894f7dbf882410a47898a18061bc0e96164c642a7db5f0a0c7b029f711ca43ed824109d8aa57ea9f732e375b15f4670131b08d9713a11b9a40a586f78e6083f5afc2ad6a799ce4e6eb54aa6d3efbb8886b0e9e6caad70ac880e2d41cd64208159a85b7915e4c4fc8a3a8b21c16c8864bb24e6ebaaa1da2129c8106488c74ee74268057d273bad741e6198ec773713a7a9d309b48b33c133f371a3d1cfe374fd1901b4e2fbe39583e0b056992e9f19be4faeaf99885153b5bf6996a8f5152730db8fb45f883f8c53a4ab9fe2cf2de86ea18386f45f04f25c10fac4e9c8d8115d535751ce0038843c990dda18e5b870f5380c69eeb5a9e1e7cdc2b0aa89c72d6ea7f382d0c4e7aa1dacc82b683ad8b3fb93f7ab079508a389637eab17683495620abffe79898af58208fd6eca3c971c429eb521a0ba429a59f61e8c52d264721a2e63b3dcf9874d8648d9e498335fd0a2171ee301bad8105b2310b47c59f432b91eec99fec1b54ab16b1e8383cff233c54e316042831b2d4afba5762aa853413f39d68dbeb0d16ddb7ba86706bbcccaa11c11c38c5fb51744a5dbcc4a1bc15ad1cdc780479223f1f1a8d3b354e56c54ce9aff9a846ec7a6bbdab6c971e2b8f99a1fbc68cd49ddf2472fe2d99009d438db12441eaf59f3f32add559db3644d479e88dfa90f3cdf751fbbafa9a605d2a301a9405913ee9d00848713847e213cb35a814992ee5344951badedd3087da898c39b47fcc2d612656d56e1b05b5f4b143dd11277af859d6a11f13b0294c7ed3fd7fb334e106324a49cefcf2b0d95c5189693cdae46c352e0124fea00e628a689fd8897397bd0b0b998b453dcc732141fa604739088c0bc57192f83d8898abcac9b7ebfb2b81cdc84a154705802fe14abfd0502525d4f490250d1639b0c5bc32f6d2d52459c1ef570a012b3319f418f78623466aade3467dd25e7e38472b6ec6ea25a237505b624ba9a89f67d442c9d8e316e4ca26a067029063e0859d0a1a8b9b970010213802123a56590437f86ab7ce8e672c6b4b02d4896aa564760724ec66c7aa8df7e919458582336fa08437da9d74d2e60eb4930a99be2300169874891cd571f104b683662fcaa199771dd46091580c40d23d32b51df3097000818bf8a8f327d77c01e37fa62821dbd78718e462238cbe5527b5e9274df6270e8af16090bbf537b96b75af7f50377bf16e7748b53d202c98ecae9868e9483d026b30d467bade5074a4e45426c79ac898c40602bab69567b27d7e2fdee0557936101031b3d5a4eb77b62ddf741114f715e49bbc99b37f3c5c4b356bf1d008af28b759604400db65e6c5a63ac7cedeb116f2910717a7b6cd6223df3653550403455d38248db150a8a554b6208069381ac42014ec4dc647d948e520765be4983bc0ab0aedfbd02d63b69fa1096d73bc1cabf07e424f8358c5dc26011ea656d5dff8c42bef5a827172491431e0138673a356d2c57a49e2233f7f2ca6cdfd8cac62201ea6f33c68f2cd6e9ed6772521f0b154e3b64a1c8ca3eaa972d789010c79748b27d2692f38725f4be53b4cde56f1670947dcf05d43cb541a3ac5a06c13534dc9689545f99bf259bffbed1fb6991026a599889f95f9aa2f52f9ad01bcf51a49b12f06e92eec90d9713d89f830c32b8b41011004026ec52897a22c79302558c530c08ae8c462a45b6f185583299ee0a9fd3bc109cea98ded50959dae58037f230b8d33b6346e25a1b7e6d90d2cf70648728b42387b9f0068995f4745ee584a918bb22922e854cdfb84082a42040d5444bc8828349b3712647511381af8977d528c5f1912396218e1b7b6010ef5539d5635b7d341efadee89da987048e3c5fa00b5eb026ebc6c0b53c44018b3809cd8df44a18725e4b6d17a22e6f9478bdbaff2114a1884e743629fafe198472e1e0fcc00207b0743c5600707234dc33702789e57f61d48f939c805ab0e583ddfeaf4af55c352f8958904db3ad5a9e274c35820407610838383763015675a038efec66c13e3a41c3872a603fc04d4fad2d1f2b69225c52ad00cb540871fd85bfbe9f4c18af438714dfee10a1fd00a5bbd8d4f67b8ebc2b4b90179f68da4dbab54016a6c0e090973a9f1bc58dcf17533c03bde7969e273a9ca5872cdfa295e2dccd668526b0f8f1ba370c83a4a77301966ad1ff321c8f3d4553ef299421f8e482b92c4408f923cdb0f918891efdb7d13192a65c0608047ecbd14c79136f8c5c33258b14d8d22cc98704d2f705147363d5d8f7f31be418009360e7703ccc03e15325ee20c8ee213ba3ef548e3235b30f97215faa6a6c265137d89d03f0e748b9e911df170ce7ec5779683521583bea5285dab3b54ad8e500b4632f6e83fa83608781c5b8898007dcdb8ba84525e53fcebd59b1ce7b5b1519d7dc56bf5dde00e5d512e4d5e3df5379d8bb77476c3423c57395fa15de626e5e50d775d19869a6542d2c5618232e429783e302837ce61b9e49dfc221d2e838d2c0f8d0ca90cbd0f2b9343b3becda488479806654e0c65eda5e3c10d8cf23d765c76fc66f0cc3346db3a77fbdd3166740e86ae3ea003c8722268a83fdaa632ba94eb4493022e0dec373577dc85672a45088930ac23bec64e3ee643ed41e9726e785d04ea8dab59349ab917cccc0b1ee48927636de083075705f29f6c0df4fbfaeff0414b7eeab75968c4bf5ada31035e1cdcbc78cfa9e2e2356548425fdeaee471a6eda45e01c150f7b8c334ea1f99a703668e5fbc51c9e2447c30da92e3117640871a0153b52672f086bbc3d530d3b1722c9249d3422cd3bcac21c7763cbb2a6dd62e717be78f02ae7718f07217674f772c850e45131b5bca49b95702c3b3d148f3254d07c543d8bff676fd9078b2be50bededd74b3a702e931acff964ea931a8fac03c00679584bf7c218bf282fcf58b043461ef9100131aaeb1089009d17470a1674f307f11e32e772ecf29c41225270f3dc61c6f1af138b60fbd6b4a0574f0d9c59d7873e641f1e039635752ee6eecdaa8f66188d9488561ddd9f42bc8ce6f043e3473b8ab08005640f9a2192f9e33471a0f34638e7c940010000da0662f9057d5bc99ca009034da7bc4ea9e6d25c10aa2c6b2cc0bf373bbb43970ed3f120832cfc0c66872e5f4638a2d6b347d3fa658373f838d6e5a42a1000ef1b7b0748882a64a51b70e5073ab09dbe6ee5d85ec3c101001c7b42dbfb3cb693aa193462e47d5f2dae3fb312a74df66581a266ce8eb0ca07edcd8398854f923bd2b062f56f7019e2d92dc34ac1c27e74897aab5472b2f0be4b9a9a4f506f57d757f2f681ecd8eb38ef35e7652977283f627c5f5002f8e2cbdcf0a3db30c07ab5b8afb913318aad3c6392ea8fd5de43bcc1e6a7a6c9b9a050aebd069b7146a0ddac67ea6187666811bafb48b06bd1797947ccd13e39e8f9d1b97f758b0b8408da2fef9dd8e4f4759dd476ad755941b12a323fbacd7412519aeacb192343279149b4366808ab5c1b17dfa672142d2a3064c79acffe0d6bc28b92b7ba72402921f80d7f0743af030064c71ebd74478b9b2c227e18c290d979a8a09294b95b3ff45fa0f313a676ac9cc37800aaa41e7191766d3e5c21249ddeedda67dfcf49b18b1070c3ab0790a8cfa6d0c1419cafe05be1eeac7fee2675d319b5a1d41365fc7c5fa652b663a29d682f51e138da510ae9f078b2e5e31cf8de41b85e7171e99e5e5f396d2d1c4f189bb7040d4ed8732786b259cea4b87787f9cb7ee811ce2580b3df8c9c8ba54f710b36250ef9e2385d7f79084ff5d25be4693fb7679bf1dea38e750ed98c728e31530502834e848b33e2ee07a9aecd0c6abb22e8ff06ea500ae693d4adf4aa24fe2baafa1fc7137b1a57b8e2d07bd39febca6a5263a571f7d846b15b5e110621baa280feae9726103002009fedf139e1b5831c7ab7e8cb775df8d386e346844ef1c5f8727e7be2f9d71a660402313f58591687ba91a194dc5560b0e4cf09764fa77e0ce31ac3ed456aa2bb8cef6d63938a80656b95b5091d054347e63e508e119dd84a1e1af7cb13063c2fa4255ac009baa1e7a58ccef9cc83d5f6416acd0650fb691950cb180f97f6d311c3ac93b4278953af9974000efdf10779084d10915612f3c928f3fc310aa5008297089287425765f5db4520a5e6b9a3f5e6db107185aaf2a193f688eee97b560dd2c99456170b2579ecf29c534f27e8c7b9161cbb4010b85c20c8cc9a6c8c28542b45516094a56e2e20420110a04a92404c189c10d6b3411b8cf4b9893113feab22831cd51c4314cf1b98e20572b18aca9faa824393bda421646d453bad578e929d710f75c9f0e7e03a21045184c9730260c37153bb02badc25b660210118214c1f800dc24a60d1f865edbe7e18f96bbeb0e095938f575c9fd5a4b0ca8e767b641291adf30b4e523781cdbd1ec8b230ed8913faf7da649bdb8719bedee0fd224d8d94421f7a670f673355f62a9a7ae88be3aebcdb1e8170fdf83ad55fc875be3635ba00f1c74d3f956c7262213681861d881e4320f4d93ee68c06e675616c9be8eaedf29117b26dac8dd1a524968b5e0d4e4fb8055c481bd5574f7e17151fe79a4daf97ef8984d2646701c3f0ad790de597e1196813d92a12b7b3e5efb932bbf0fc4bf3fece19cdd45fbc1164b3bffc658ea763d0221188e597552b31bd8bee80d513b8ffa58a3246531c74ff8a6df931bbb920efdde4da7d5d6e8e75eaa1617b1b0b22f9daa3b803c2c626c1affffd1e4209323ea86b430e797e6fd67e669b20ee2d070c02e4be0982dbb25ac400c423dbc322b7f9385bb7fc3d061c11feee71330debffaf05f64ffbee22136a91b803ec0f2ed4e3b88d1c4fef58f52f46879042277e08474732ddfef35764a237e0913f2b38028dcf531f7cf7eb6c43bdce4a43416b94a1c6f07b28a3d3dbbe00031ca46851a4c18790003b918689d86cf096133c40e83dd0aaced020335651374ad2bfa157d43bd8da483803279e9db6f40239bdbc663dd37a488d591a443861524652cdf49a19e01a4ebece080492cdc9ab6048dd37ec3ced3d8317c58fd7a1cd2446e09306a5c6eb091eaa4f43cf87c158d02d902277b7bcf318544e48b34d0cb8d77be56eb83e65c7ee4ff4d4856effcedbe7d7347743320a3d51b4bc24c00b5a13778dacfc9bb9d3573e8415a80f821f5dbc20786905cabd15bf54e03d0e047d6ef18099e4928207ac3001f44edd3d14c133d8e00297248eb1a726c951c56331c07b1886d1c629fbac9e901232e1d285c9685f470e5253bd5f181fef4cecef9d24a84e432eff72da76cb27c5f6a534a5516f380aae63a75dd4685fadf699121311db6282ecf0e513bc28650072add8b203f95796f215313bda278d5272a19e904ceedc5ec0da828bc6de7b677243057f1e848bd792d1b2f5200dbb0e423b8a605496657bf90a0ffd8fa241470e81a74d1c6acba7cb048f569906c943c26d394274f04ff9a55a3a5f13b0c9e8e2951999c6fb344d23d8f78016e0b19dae0ab745072d6f8c436385778531cd570fe812ab6aaf924851a98ecfd2cee4d99e3bb4f046ca9ebfd6c2bb783d6bb285b7fca18c4ced99cbbac53ce5780792ad7a9158119b7311ef1978223f6f10dbdfc834e09df52bc7dd8ab86cf06cd3ee0b76e5fed9a2fe87a0616c75f9b82dc745b434a57716f8f34dfbd80ec489efbddd067843c5a7bebe35c15ed65af19b902fbb7f5098a1d4ed6d54a6362558bbadca0fdc5a37d130fc2962e21a2ae436126a90a3ad1b15cdc81fef25576e7107638eb4c5a346393b1e90d542c725069a3a3f9ca610855f1851dc09a18434574bc93f0a4f1ed5904d36f17ac0216843a47787c5495bf252f4a608bb130c2034dc83464169c8b5a039a0476fbf0a336d0672b2ac4aa2739c4dffafa611b31f3b2fc9367922d6d28d0d29cf63dd6bad135577565836f7b808d9db8703033e10dea74486451f63f37147a5bd2ba7de921a5668628ee3134bbde3b9fc872b5bdee12b27fd5e41465a9cc6c85006d046ea1aff64b152c0b01be16543f3936aed2ac3e64abb6df9ff60034a43c56b1827c1d84f9ead9f8c548e398ec14c91a485ec6471acc98339258da5466ed794852f4b45eec35c224646861e18195df21abb346122e90ae6de7deee957c314bd9205d0ff50b19ed23a1b32edf7111dadc3273014a6a0c9006daee43dc641e3e4f51c314cfe5d55dc48ddb628ed26781eb88e26cdd20fc0b00d0994095e79d3ff2a0c29e1a13d8408bba69cb1a8b6d50f08a75c4372d3785a00f55a0e8157249e5269bf17cca0049e1daa341206ee76058711d3e968537b79108262c05cd2af29c2ffc99859bd8777fabcb5d8bcf1444711315093edb50efd9b412913d96a519cef96415bfc2c0893747b6b1961ee7199970e18f5da93b86498cba9bd04d9ae56135fa3ddae85008bf8fe0a2f4e89b371237b605b73783dabc0c0fd4675ee5e1eed88f89e663f031b0d437faa890f0dd14fca0c9da570dd649563337ebf866974de1328c9cbc9bcee5a82bc822a78cb6701238fccda2227560b997a9b2030d72f51d9f522ea21007ba5ed61d1b43d693b64ac94986a3a65261c01f0f944e252151a79049938a6c4cacd47930fd5939b4a7e7c2e4ef354316ee66f3004a8daa942dcc02212736da7472eaa3f816bdb0b4ce5900fcf7bf8142f68435cf709032744970467d70ff9a68495ba80491807034340e1d8e7b3570236f5efeae218409502ebd12df61d7cf90b9929544dbfaaa6a8c028b596c8d94d02aa5c442ec1b19b01e6cce8c4dba95dd9f46a0ec8c989b50454a5e4602e848e3cb491d55423f5422c349000f293743523cc909b8d0898d8df9201ff5198f5a8b27a87cc126cc4ef3418215ed489807bd35c6273e1f204fdb4e4e8b59d53f39692f38046409b23b827b7c094b40908f43f0931830dfe41099817607ff7e18d4839d2977e5bd5850654ef7677fe86e9d3839d0e082f0bfa86de2cf07fad1fffe42a8a095eda84047a22eefe98297897a3405d7b5adf7ee60a6c128efd5584d942c18f2a9d688cb611e7c661920f57ba032fab515efa5851d76b813002e2c7f4c35b150c272ee8062f95ac748aeb8ccd0e0310a719007d4595b07ac54d100074c418560323629e73644528f8c06b4e04ee4300407c32ddcad537dca54396e0fa7b12c928ca1046d323a8972c58a4d31cf94bae14d21af772a0532760d173b8e9a659ef72d64da56079ff0da7f9940a095811c0ba70ca5c5d7b70b1b0514cb1c830b900a7dd548b603277b6e8f7f8ffcffb196624476aa568210b0b3f84e8d80f746da26ceb1e1d611d6861c0fcc2a591430629c04865814c77d25f2bcd024a162e225738c5462fc06934311c64eb201c1f648935d8be2b638a713dae98dc3ca345478933541f4e1ea019c99bd38ba16e82c089482f86445e8d146f8dfd8b31bda6399b19be63f2ecfd28c5535fe67aa4523f51227675eb974c4f25bd32120ce77773813083713eecb9c9bfc34de553541938d928b44618f7093271581809e3368aec7b471456ce92c897cf7ba43c3f0d01f2b2460e3ed830f345e7069500bbacfd8dd25a311d5b5c17b8bbdad2af6645e8e479d14f4cc6e1669808e4efb6afcc47c24217298165c222b44a8db24e7829268c49eaebdc3814165df7000bb59d8aed366502b84c6bc9f6f369c17416b364efd88e7bbeb03521bd4fe2dda10f1e89eb4e75196997dbc08384b02e6e765d3928e605600ef835fcb5ab43867448625afcb898acb73d71f97ad1580a0b99936e05132b96cb2035e6d10a30e69cf3c8cd7becf43adcccd3a9532b13363a34872dc0ede3d318c95ca3ba4787a3a735e3c84b63f4840ec1a4fced0198a68c47a299aae35891f4e48ef25369be04fe53a59dabf57fa1ade89f65575c0e8eac807b2867ba79d7ddd25ae26da2bed4163202febc930c3658fcc9a455e15cc24f423357c730537147abb786050ab53676f46e10fd065475997d96499f8f5707c9514f85fa83493c6085b8a742a4546ebc2de173fe670777050c01f44cdff9ea6bd886bc3147f7cbfd6ed6b6c61ad4ea0387ead6c04f6e97eb0367013e06feea4751c6b5144163040bcbc806fd8f2d362cf9c996b68a1c5999bc5ff9f37fefae738529d63e5a9d70cef301ba70aa3e921f980ceca8b592c10f7c44aa83bca3171aa53ff3eb7fbff7c6e0d2f59fe74ff31a959a0f520718557380aecc760ee4cfbee9a0b5b2490e7c68ea0111700c4ac95f075f0c138949d89476c3f06bc675dc1d85720ccc8a0fd7e95a22d7dce891e79f81d680c7fe110bf72069aa11a29b541748044e432bc29c50453a6144b2616f58bfd69fb68b92795a4ca0b41a03f33bf7dffb1d3704f1940c67eb0538fd2df46be55cf297df7b5948f2c10b8505813fa1a06c146ae2e35af33cd8c313ee2b658dc0a95ed1dec951e85c478c2502464b844377eab4dbef5590f0c95ed07823cb690c51b95986aafc5628070664b4388a2968886c6c5ebd7c4f53ff116a5f774df40d6ddecd3d38b9cdc002c57adb12e13d83c1527325f7d4907a0a5c2a5bd17573cf39a464079e8186590d90e907c29b9e25437c47bad23c8b880ffb33bd303199d5a4d56361ca0d546b4a3ddb2f8f0f24d9c7091f18d3575b47a1fd5e1f0d42bed84fb6091948598fd81b67e024c126c2dd3af89ca57a4f12c302fa59f8597a8941f11788dfc78c0c18ca05566ccab80604bafb3441152e3314cb653bcbcc8a9dbd954ce3efde354564cbefd086e1b175f6c049e998cf8be682d62086072c40e71ed7741d0f4c3124c3428054c9aabebd9dd783f4834a1de8030ab2affe08de70c1f063d258e4cebc72fbaaa5b854714c818f2fb63fc019997d2324ec16d8af175ae3c821ebf26071d920107d1db95d9d0d58ce22549675b59db8b19b863e3a467493171ec2b3a83edaf70780684924568562751de54ffc7b0a5a8790c6c5320ca7cb0a952cb3f6d1b0530f0cb7777ae7df2be00560cb5e791496b3aefcc198b7fa337ea2e3511e0ae2b16e058422dc1de742978d9f4f344d85ca18c6370b63523218fb180788bcf2a90001cf0057ebd2e33c7c5f484b96dd944ad0b1866807b5638e42481cedfa797ad443fb7406cb7501c9e0c28c89e7af82fe92d6a5af6daeebdf951f6b48210920306f405a3fe0e2513a9aba74e2c64b1eb59cd8cb887ed47d0728c03b33491c95c4425912cdc592b250ebc59e34833a47f2ff45159901de5017c1fb4bdccb46a409ca6c977bedc802e2536a120cd0719e61eb484d38cc50a2630af6c6095e750c3c5004bfac3de8c5470b76317a1e4e86622625fb356e2985652d41e5cff365ce64a478c95f2d378888d3d0d553ac56ee79060a2359303205b30ae3717a4001ce8c5e929ee2e5947331107e9e7a7e42740842e8e888c494906ff9f82e1b716c72459fba57ac9efa0acb9fc570dd6a8c58115f206757b9145d3fbe4bc1ba0b094f308461c0ad6c63064fcd6a5a022c70918fb6e88ecbb534c0ffd77529e078545df7e9b91e5c52e5a2c7b6f45bde24d88569036e2a6c9edb6e3a37ddf9d9229fb586f10d4a787eafae03e06c1a8d448f89e9b726522ea94872cd1063d891d90345dce56a10bdf484eac10acedaa7e007c71992068c2ac1c15675b5420828998561bd23d1df14b95db2e8106654c8f8bfed7be4887ae3969e779e53845376a89aff5a35dc4e9cb67bd8eed387d320b20c95657d50215a5c7b9fed3841a1f2d2fda23eb29b2ee78b7d1d248ca86fdec9146df67795a32bf99a59ee7a4ac731713b2af6624a7d2779aa951c70c590512afd4ac7424142e5d542023f2d1655eaedbd41dd51da0b487c56b2cfd0a799fbf6600666187120c947dc9da87df2470c880aec563e09debc336aaa6410c16169d0cd546e3b6832406c50630f8a4092ca4578e997270eb874251f0e2b4e1b5f4a6b114628cd8126ca2cad6eb37c93dfbf89899daa6a7d1ee4d957285792f53c2d2fd002b6605cef38f29a06e05558c86d9869c132954ecb3f0a480c7e3b2d16e87e3d4b8c39e004eb294948bb6b4242bdb75bac3fa8a597515438c74c56e4d82260703dda684979cf074b31c215bbffd456c9423a181639e29ea08c857e0a15c354b82546920788d207d9e27962dc2693a3281ddb044408ca6a4643863aa9d66dfad4fc605bae40dda1958f89e6528717d5d957192be6d8a7dcf9be2bfcb99c3fc969671a39fefc91b1eaa31979508d35b0c0643c33e9e1d22bbeb760db742354d78f3e1baa08a5ade23387bd9f5584ba17235f818b7a6394ac74bb79f99b70f0afc9a0c501be0d8c26e216865ca6922d17703dceb580a144d651d323a1e386e14582dca71c277f1997d4a88a567b1a2d24a888bdeb99a9a72771e40498576e30f5d6c5b7c3453b00caee3317c28054a8b44667a55276aa211bf75dc5420f96781a9f329d3f3ef54249fae0b0c6fc131cce9030d71a6a693cf96b860dae4609fbde7ba40feb266e1cc48f4eba3cb99ffee2ba0ff6cdd45008441940040c391d8c19ad17f41b68bda054afd7a5571caad7ab35b7cbef8ca0569e38f82e28dc4e91ff18f202831ccd93a9d4c089b27aad482697f4a20b8c54a8c70eea220c15db4b32e734a2435724c20bfef82568a76d2ede13cdf748377f1454ede373348bd1e98ccf67f2d5791866cf8848d98af0e8329ef0e2e94164453c73387259972a0eaf238c7a99d4087a138b6183bbeca8eae1c1278f900c29f4163fd46ce4b5f06f453f8aa1d5fb52fea582f791800be83a91301c84db651c74086975685417f0b496ca3a85b43b56b7d2935fbe9fae210f839b68379955063a3d4b1293a215883c70ad78515148bdac33536cf658bcd735e38b426fab6fb33c76c5488f59ffab86ae517a672ede3e0034f9d44195457034f1882df4177ed9900dfa46f2c9cf85784cb0fd1c5995ba29f71184f91f358d94b03854c3be82c22ead892ef76b4d051f99d6ec37cb85f7d8b7b0a4073f0c6e303acf7a8e8e26ba8db838c4e282513ac2c3dc83cfd9a0eb53910fa4283a55fad6c8acc67c58520049927c9814e424aa29a15c048978613615c2eca4050283aeea8d4931faf97722a8ec0066e1003747ffa90aebd655f02e6f7449b51283af9bff0cce3ef1a0022f16baf9c09e290722833755d7eb4f5f66b04f8ef55b4af72164b97f2357897a37bde26a2053e24698d54f2975ebb08405cbb11fe93eab3887a06cb2c96f645de165a4d84c1d5019341d62546da2fc7abea211df14fa539eebe3fcb614e1c330228d37500ec0cb0b906cc37ac73bccf1543afafc11ccb760749e191da36a8575f0e2d6e86fbbc2981465fa14fa45e53b60505708637301ca7e35845932e8ec882dd1451cd28d37231aa84d5e8c9dc8c4fc49e0770359888ccef35e94dcf724cda3f50664208ff84adf9307e0eda0bf10c308906f3f8e3e4507fe2a136306d8d1504830499f705f54c3ef4c4d63db7ab68fc84ad3a88a3a0d9f9f4f4689f5975bba8bf7ef0f3ca0e6bf645ca31a642609014e529ba4962b25238620e47086f0ed5e114b9ce35aaf2458a711bb1721930d378cc964c30bc87cf2a11d39377efa27e7b891cf711f29d453a915cedfd6f81ee831b42dd9cae751d6dd373f69d0d80ca9229c6fc578b5768d6ced54ff39356db87a6414b761bfb9929ef594f7571db49926d499a42e3064856fd8fa9454e339aa4bff750b8e443a1a713b2aa52fa5a744ff5a8e2a91d229ed21dcb05f208b50241b5ad904963c1d2fcd25a12d144952dd4b06fd8c1ed4f733222430c3fc5b2dd2c9b83d4547ac6f6b400fd78fabf9c6353ea8b0c0937a3bda7cb9aa72b9981ad2ed40c29ac2d4be3c4cb5d7506c764921fb0bcf71bb70f6703226e12f79882dd09d52ccccf78ed5cb2198144e10f105d34405b1375fae7be631d4ca5a92e525e1998850f03f718141dcc5e0ef6d28429d6eda31bf01539744239a920cb897ed970cab22131eed228e704d89f2b8d9b2debd02d79bc9614da7255afd4df51536b505b2036f67aa8f905b2bf9c1f14a86d9bde9b58f35f440f5892f1c4a29a009b233e95323930e3bdca942caada97f974fdc181550ece9ec39c985e796db5f220984b336aa46ef375ad9d80265664ec104b34324c8c48e2381a73c3e1d302c797db4b7e2c75805b8997c37366a654aa8dbb6e9926717bbf785d34bccebb147b8e2e9a0191b10a46afaf2c86f1937330b0fee0542fbf46f33f568a20f029b83cb5bcdb889b72122161649ff06a6867612a5164c6156991f69ca9e3f740aa38697a95036adac2299f301bbe05829c240a9e4d1d003955290176a4fb10bf4e3c0d0285759e254d4e78d98a8bb5894031b2603f8bddf5cd17b5bfbdc5f064ce6074693ffd350eeec75c8a5e450a84495779abb3b8761957d246dee2e894f3fd1f364c134522e1a1acce5b7649e3c0ca5c43a2c7f25eb677d85d269b84046b54a797137047c6ccef480f3f38486bb2fd2934740db88d3106a4d042f24ca52f0227e83076910188a78bb8ad637b8343cece8aac136ddd6b5d295ad8452f7dca99916598f240490fe37c20c99dacd9c713534e9e20ef336e94a782924f2231877dfb614bb2084a7d6a41e5b07b881694e4c72ba775f2a5b85ecf43bfd37356750f5bb84be0fa770df652dffed27d733346e9496adb7643d4528c49fbea14519d0d08084956f2f309d440ddfa650de8c5351e32c3b3321f9c67e6dc86cabc536de4ac47b5ffe71eb63b3d4ce0b7c9799630f27c7f9aabf7a362f91d6f4599e80a372ce46b1b36c0e3f5f8ae7c60be3d110ffb571addcb5ef973cb146aef36018ea9de698459f490c5af1b27bdce61db297809c68f84325486a0ec13b1f4d24bee6523c55355cbc220fb43ff08bbadc2bf09149fa52c0178bff8f8aa73d7427b93d5b1f139442f32d4a5c08e01091696f57e645a0a8b646d02407dd7aad42819a8060f99dc7d03626839bd86a1af8f5580a5d9b8044d4013c2d68121e371b9bd428eb613533e6e1fc33f5d708812cf2703e4562f7de947fbae6ccca6eff35563d1d61a9af91734f95b21c91b9148878a4b1d4fb6f11c92fdf2ad794c1f21d5b459d36c364b9c54cd8d0a47e31604e4758436f747b813fc375d2fc739e2b3d65189b0ff2440f706575cf71a19285559258d58eaeeb4cab676d3c8a7e418769b46ce39c6595e6cd14b2ef195a4b72ef83448e15ebd6bbdc816ec1b8ae6d3b2fc059d590386d7c4865e57af2875b9d5bcbb7a4e71ff048dd1c34af064c0be1ce616baeca436c95dba29751e32fce315e69d5df5b228f58d30199a24cd62564858c412d896c9eae24447b024f4ea6eb143f325e0695f377114126eac7cf3b00ff381fb92349130b115c67a881226a217d3ca4b6df62327a71eb6f123922102361af3b7f82685b5751b0b79f95093aff6ca51dfda385b0381983310c15f50e7d16c6f7d27d0d8fbd7f9da2b0f8a7fd72142adff5574a1dd7b922ae180def80fa8d51f5b876e9620c7d6feeaa9454ff69371ae4cbb3fa82abafdd156cb6f461401c3e0304f6c1fea06c80aa4c407dc231200ebe1e02cc8964871d2a68af1fb6f73794094e027f2803c459b0561cd3f9c1835ca712e939d7400cedc4a56082c4c649dea92b79346c3b8cc95ff76aa9a6347d267fa4c389fa1c60fd2354ada624e37df29af61a170dee6024022aad0a0a7ff345bd4eb81f8e3213fc91813785fd116b09a1210f7fcb144a82204c94e38572bdb1e6620e70adfb32194efba7f8db366b2a8ce504f7a69690b1b04df5b0d142c2d7214b3ada0c9a5418b3f7d09fe1f1b6677816783a000c8f58f0fb7cb489a45e1bdadcb79b80e57e26c162be0b8717a9410212e9e1ceb6a140dbe8aa9e85d8b5ef0466c5c60885180e7564fabcf2900a410fcbc63c09fdc1f3f51fc2495d9417b6fefd577ab510e2b262291431d3c06a9c854d6d22cde09050a22754594a0f2dc0f0f24ebe9d17a8d2bdcaf3dbb6c65501f6b4fe5acb3824f357066f6e4d6336a8f1d8fdd1d0b77fa02494b2403a165b38c51ef09996f569e7a52250d30716490524376925bb83ade1f8b0b2f6c71d149a72ace85fb35283a354d936426052b866877d1e4ecf45abb8640bb06c768e813598715ac0f6cf97305e579c0ffc79291bd8180a78fb4093cf8d9e785cba8d5eb6d5ad84d177f1be7d930ba8dd893c68f894a3ac2dfce5d25ee56bed8262f17107410fb443c9f20770ff1756c2dc5c7bc6fbd55d0f749d122cd2b8836a44410cfc92f6c4af1244cb1f2b842c5cf9da3daa855483823fcb2a1fd1cc45c78136046dcf9df3f09d8d4437134c5ba55a51cb97d387ab2ff645ed0c82a8d1fac7389d8f7eaa41f96c8bb489c46986b7d2c246dbae0e36de9057b1f95afee2cfc430cae7da9b28d2a0e3aea0622122e0f0b87afa3e0db57fd6b359d6f23d6f5780b3b5053aa8185bcd05b0aba454295165e8980cb5db24bf354ee15da918fe2ef3e5464bf5db713210e6b1318f4b81fadd3e58ef648b272a351bb15539b2b9a24b3502b2e963819b15b62673fd2b2b1b5c71d5d45957d5085d31206cd5f27ed2bfd3825277238ac4a4a43738c466119cacf18d70d3ff5bb5ec2c2bcdb0e0e1abae0a274ce37718e99907d95c18d32b993a530bde117edbf00ea3bdde3852ff247d87a7abd574b46473358b25fb35ac1f6e6551aa8a0f2ee59bd437c6f32ea5a09c6caffc2067be518002f0514a48490a1b37037763ad574ab648d60eef4efc0046373ec37f35acdffcab4c3b15d61b7b818c70ad094f26518c4f5e27c87124d2dad5e19e0020712b9be9cbd7c6de4dda882c9cd22548e40be35fc18017fa86df697bd7f638d130934e32bd4f546074f4c123b10befc0b5aabab5c41cee555534d4b14705638c1b40252de7e242666b0a5857417ab16d68436f8b9acf6a8f0519ba21980cf025f5aa21428c79a0d146b9ba28c3d0b231f08f11df644dd681f9c8ba8753d7e705afb1ae580d2467ed29bd013a30c9a2a24c466e3be7627ffdd675f439c902cf8fb75d98b89caab0ffb79c654c9d83c8d5b56e0996620284ce003e3fcd8b32ac96b0b0ba40c09944e58dcef67d40435e21ea912b174e15a9e4a8d718d3ff9f9179e11f3af33d25572b92b2b476af6685ae9ca82d6f32bd158b14bdd7eb6a5357320be6df6841dde76c727ef466295dd1ebc1140122436ebf31b80c4de05523a9065e5d171029fb9e18aec0d6c6c9f035ccd117903ce03cfba071d83879e5bbc6ea62537d78f8b9c8a3a7ece9869d34557555595e5279dcbee572aa8fefd5c413eb4b9c96f0a6b1e854e8df7d94d825ffad8c17b299c5ae8b32b11642556a03275a7a56ccfad815c7f08f3f8c678f3ba070166d57bd1fbd0d86d33e8cb8d76effd52fe1e038a10f2c92e983eb60c81ec9784f2b985ce609c1942ba5edba225caabdffb14dda339789adda3d990660e28972218489e756805197522ebaebe7114044c933a7c1b0a52608a00226f62efbfdb0ec94478f1f38b28d80aa69a9e11691c5ceeadd0085686bc855b2b52c46d121df1859ec3287c28b354c0b9832e3f7b9c99fbc37e1b9080c6eee8e05e93b143b179558f5fc01e3cc72a74828309fd105f3df4ba1dcf813d165bbc847ed53abaafd458ddd172f0df4150d5f3e7536f8722f932e442b3812807a49bc32e628d61175a2348715fb1ebe8f9dd69534a5ab610e880be1e7226e448aa892c36884012e8819f9405e83e490312bdd8479c199d2f550da1b61043d60094d6908150f4523a12d5d7d36d27c18678b2835a4003e790e6a29f84b2cd7cc15de83682f7a5d6fab8c48462700fa2cfc8c031bb1db128c5678a985cb8a66051b8862f9478deb6d3ba0ce0810d37ee66224484e3f98387e8d2710bfad21751e558a3a69c3d6d7053b3484b2567d7cf66d20a6e8f2c8691e0d84d0556936e3ac730812119002b15dfb5bc124d2005add928f2c475a10b5f8fe6e6367a2690f0b632325faf57cdefa06e1f2834f399dc9bb565bafaed82951bb8cdb88a31946390ca8670a869b070349f9d91358ee9d3ff5ecbfbaf810d4c3d98f129c0dd0ebd36bbe3954a6a379ac477b75dde2b3a3596ea0c051c84473238d8b120d1bfc212903819abd3a97f11da403c8b33f4e631f09e3698cab2d8f35186bd2de4eb5927e4c1754feaea287f540a68d5cfa0281c10018cfd3929a3439bf058f38df6b58b3a49a88b4492ffe8b94d4038fbf84e950433dcdd2e6e3a4708128f9dcc78708770903c2e7778284374ab7299401a7f9e1e5304a9be228a2bd7c1ade6f149cc65b228e5270c3986d093b5bc3290d1e94649119e3149d9329d2c232bff8a4c8034ad67b4a742c2c76b944155c6a6c0aaf515573dc3fd366f8c2fe6abb41da0b8aeddd9daa33e5c3d508e81fbd8d849e01f6f4cb08883555bae150e910271d342379847e5a831e69ce59f112184bf5642540aeaba9b63120f864794e698f8b1808178f550b5ffc250e01651a9e5d2b794d32876efe3ce5cb04a1b73371a23dcc5e9718e386c1412c7d393d9b77864941bd87fa1c0a225d30c9d7fd26583d2f52f6aade02530b9f83697f73c90d16be72eb7cad8b9100bf204ce6afe9e4a7c3a99d838a64fb5f74f0634c06e2e850c4b2e694ccb4f0c34fc9bac44a0cb285d4bbb4a75c64400a9c308169e02b0741b11bed166b86ba0051596ace61cae23e952c517458f7b8500e447fa6ea09937532be3684e3c5a7421b4e34a678b24d41429b53da45ca3759165c23689a45174ab3925b7ea442408a961c7a582d6a6aa424fece87df5e960676bdd349d65a475413e1e56a3f431c1a058fe631ef1aaa4bd4d62c355d07c8a188e303d20533198aead8ffb4dabebc7bd8e6821d3f849305fe95cdd46a1f8904b21556896fa058136a0d24ea1bf3d1b085aa3564a4a57bb6ade7deb32f935e740480ecf465d747a29db62aceaedef15611bccd50e9da2c5e0c530efee3f9d1b6eb9f0caf86add07cb8adfa25828f5c1f6cab7fd1e003d7876d955f8ee736f8072b9cdfbf141aac79a2e6a8a1ac3b6cb17bb8cb3a785bfd0be3591b12e97f34ecfea2f0478a181f0dfc6e69097799835590470fc77ee7da7292a7574f0189ab9d71ed136b8435fedbb9efb8618c3ae257324f8169f0f65d4f302f60c9ec212022470b67499fe42572dbfae01bc42364fad97e53e624478dcd7940af9996e26d0bf30c686ea6e1a1d46e8ee9b86af98373b799a24ceadbfe6e9edb657c90377bd895a1291aba6a50aae1e425e13cdf0f6dc28e2e88af0be2900bb13dfe61f6de0d435cb2fe00a6a56e2429d8392ef4764b38670114e9e7c6b385e526cc00932e92ff3d617113e724a87633a7219219715e8afc79203ccc222f6a69e78bf51c677931f7f41783a8900a498547841d11133b6760a979b9a1b0ae0019a3b20df7229d289d7887fef85648b3283fce61ac73c4ab957d24d808cd5c7b1195ab69e652dfecca3ce6b657527559589eba28b03b78986de318c6559241d0062ec14087ce1121785400d31811b7768f1b77f5329e528d0950f69c06d74d8f0ec635d46c9d97f1b966e2e119226d3985845e9d49e24441d5b5c2b163add3dff08871bd722ca58e299ab9f089329b1df36abac94f8c3f07f940438b67dea4c8313cd45092f847934d3b262cb9b1ce90f16d4ecb685644f1672ed6e72866ff4267e5ef10c8130e3e82347ccee5d79a52c779291c13cda0b59dfb1e896683ba24524d4f4f692c81db90ee2c595bea56774f1b3289e931db728684177f777cf3fcba215ca4413183e09b0df2194442c678fdcd8051582203f6a545c622b67de1377675be21c6838c7c2a8639b9bad7cadb6a6c53f85bf37029da3c3b3c15fd2278cbfa4a901d7c9e6f0082b4d0b0be2d3b67d7baec0652c230d57d24c1dba3dca03adb68583993f651516e46acb349eb20da8e2a27bfc8d3ef5e12825d5ab3de0c22a46fd556bb556cecf56cc9ff47bab77c06d4881a3fa2bbd20e96b6a43dd6366ae71b5ac40581d390c90360713ed91c4d48db4ac9c7298d0df07b2bf02b7d2608db543705a46d31f09141b092dbccce14a9f76e183ae75877718423b0c775ccb5a49ace0c714ca697a08d2543b23e90aa69e969d539274f353d18672c33479993c6d0075fc83838be969cb32d27156e627a1442517c2f1aafef5657f5de2beb7f55f01b333120532ac88898e472aa9ca3a31aaf7689c4781cd43cd764919c2fb7b99ee013b62fdd50f04beb16fa7e27f5c7999d7981ee6cc36f7db5d2e0a27a3824c5393a3168d146377ab1b3b0eee7629fca5fa8f3a202c4c4e5648acefba56a02560ba6205e0e29f0674a21b74be4173f1b7615498e694bf821311d2d4c10a2b2ee9781a0556e9be4fcd423a0451f073582fd1064ad71419fcc74b03a04f4be1184d9d3cf11434d99055c4889d8ac7093d90bb42dd2ce56e65ff5b78014f019a08b536f025b862434ed5f1eed96d621050397fd840bb6156970a59b75e72771eab7e7cb04f084b8b33f4909ea728bc6404c217bc7e384e69f9c5ce42d8879b8953ace66ae6065a333c78950fffe84bccb8671c89a30bd423b008b683a1abc7c0305c816433cd1d4b8ca8d7b8c8264bf7ce26e8ce72796089fd5967bbefd423d8f3bb231f8bb05e7926c9a74a770a16a493b3a5c413c961d6d38cb8ca6f8a1df4bfff46295115f245aa5497c4fa99a7faa85b10d136c9c2fec5f72d7776cb840a9b57d2a8adae357235c86cce5d4ea2c4c39edb279cb4707dc902ab535e7772f842b473d0b6c490d4b96aac7a76277823a097cd4c9733e2b54472b7dd74420c49b8f444b7a9f3e37ef7a0aa7960b27d29a38ef87199975627be676102f0425f96fda9fbed9987dc4ac61689b67f127bcc925b615820e7364ade36b1ce927cc786749837d36bf6be8d4934957d732dcab91bc69275245794b0e3f29cf5a5d253f1438b1c3e082b922705a446176d20745e6bf4536c72d8a4b37b9c74599b1d1d144c23ede1fa4dc736350fea45c6e176daf78f5fd289b0ef574f7a05ab491420108b247f031e93f543cfad9bd1067d1a5683f54db2c127a5ee9684b721f63da13ffc194681c819b02329aedc26c7e7c949e0de10e4422fc855b9ea43874913c4b909e0cc617dfa5381c6cf2ff06d2ec2b5e36b9c7488cb2f24a2123f4945a824d1781ee2d3032bc20473d4e7743ca2f5232c167531ad82554d0e5846b09b8fece79006c9b52c8a4a1678dd53ae53bc64545d474d1dc55c1d40e011d5b3ee63130a09bc21395cf74fa3d0ba51287cf1fcab433ed0f86e7c50ad99444860cd461a27e138311fbfe8611d0dc363f6e6b2b884ec32ca2c3b4f94c3ae4574de8444c549446d47f7470daef1dec073891a04b63dd6b181ee4467fa34a49e53604c26d3662f880e438c63ad91aca3c9f02be72b93374e5a116a81d3b2952878080598a96fd09882b29c69a6b32c9cb384b33e3cefd7977fc920c68137946e0673bedac3e7ac7ec8d0e8afbdc8cd20d00b402faf920e20221369012c622ad3d978040022e3164fca5464dec9aca018ce66e7e7d18672677accad15595735da2158a8da7a5ac9af12f0374565d370763d7a97215a4c3e38cbcb47bbfccf70528d9f7f216511d220faf320f81bdea4456547000fe578c714860e6f3d8e42484ed01b957322a1a3730bddadb9f3f8dc89d2c8051a0b08de813c72820c9f63e75ac182280a22050bcdfebea2e74e8f087f789ce92217bf64a206b36f8acf0ac0590891753c57db9b495aefcba54c7f72bad4887ca584897189bc8a426826f7458a97d2ac6d9149e8483e71bae6e8ed6ede92d9302e36362c31371a320e2d908471b4edcc9f140fcca8e587a29ec057dd275c0bac3feef288549c130eeedce13a327b80fc301660b19ebdb87c1b7e25aff547ea2d142b21db54021605b57ea218af5c5e429a8838f0615c2971c53239890ec55f5fa0bcdd28d6f43b5be913a9ac0c4494d4b0c2518013fb52ee1b94f70d7d99ef595782c040744e6d4abad0ab2267b1a0ee0749c4d687327d657ceacc9f6934f69f85500db7ac28d7496a47d513d11d177189da992c8a7d0900ef9854159e7118ee268e92116254c95f55ae1b1b47bc7f21c88d09145e17bf47388be0b811241485f51e47d15de3e24c83d0801854062b040ccc2b0e1fdea07c097714524beb6bbdf481251f347a821f62a2e8f5daf19612d5cd2f1252623b09930b2acc322aa85fb62b9d8a07b6f929c93ea19788eff937bf56a7a0401cf853c82ab7efb35f82b48eff3a2464f4bf27f83d9b52ed3a203098b007e6b5354ddcd39a103ec4d46b8589d892a6b7e8713dbe5c17ce3ea4ac09638ae564d23a8dcc8ab48a859845969a51b652ce0afaf7810fd2d52e369ec66740ed2cdd885d2361fc9d3e71681cb436c1b25f62d2f9cba59bbe07407363be38dbbf08a66ff269cb33e1295613d4584f571c3c606be59bcd75a9870abc6b9b68a517a2fae5677af74476523f0f1fd0ae1e4e1ba1d22a3537ad9ed7f724ee917f0199f7d89036c48923322ac65c7cc5aaf408061a4cda0932e5f8c20713ed5f008d7e19b3090e6e3dece76f7b8f19ba6e01be74480f95a4cf62f5441fe32e72b4f18c2591a5664dfeed2f74a6da91287249614a3abe80353bc0e732973be343097fa780525dc7d4828b8c45b9c06f6b31e993b9d565ddf4fb8c1e240bb8b3208d33e0a983babfc84c371464a3302101a5c6d3d6546c08f2420841e690c63bd144dd444cac1ac90f2db51ca1bf898ac08facb34dc7403bbb890ea60cbe6ce4ead593ba4befc8a657c6775f62f4c61b8d4b9837f5c008fb393b6c5881173e308ba1c9324890b9ecc61cd5d58efaa1fe4dfcfd15cd40ec41deffdb2f721136a085375d98a839d6f1a2f66e0acf44ceb27f41c728725ca00a81d9a35ec285bd2abeba22356322e30cbe359be9a26e7a21202fdd81d1e3c9586ad587df16f6c8602acbd04ea82c7b25620dc55a503d9f8c2330f3e72cbf9856776f01d5fd879632ff4bd924e01e50db3241115a1515c2bc4cab0867d52009122e04ebe4cc89e4228c55797363d701d21b8697f48c5b5250389b6ad89d8bdf7de72ef2d5392295f0bff0a0f0b9feb70664212bc10460bc77f1f0f9cffbe1d54aeea71ba887970be59d6061b4e1dbbb221cdc1e26043d4dd72ec0d168718d09b2e6ef8f074bba257f976385d158ecf07e07b5ec76ad5d3c377878e9a52d923f701f03a70b04537d8f074430f406d3d4ec59682627cc7f8f074c31914e355b5f5b7eaf800542cc955fd3855e55aec4847c55a15c39ec0b8a0de85ca863385f22e3a7abb8acade5499a0498479b0db3f892692d6b9f9fefffff0ffb7efa877630a453dfd7af855fd0d163474a6abe3da1f1f8be3871dafe375d81f00d8d40ef1e23c270d61a9c54828c1500ba8852374a6dbde45752ff8a6bf8612d0980f1d474da97e87ca1291801cafe3757c0fb7da884da9fe86c7f13e8df38dc3f77b93b3767cbf8cbe494e94dc1a7ff35db7aa72e3f4884c1aeca7f97006611f8fd577aa1aefd14d3d0e3bea74b9aa2f8e9d415209540b6a1d1bbe5f23d23a37d8e9b2a14e22760635d88f831554f5752a69701a35c8ad7264c78e2057b5cc873348e6e312bee91c3c406ba6dc908f6a18af8d37846f7080c8f13a9ebf04f0fc8ee7ef879ed7617f52aaff9151d2d2f1dcea79fe7ec0f13bec4f6a881846ff8eff015f0005526bc7e3d051b9a5aaf1eea8d1092920b5bae8a92adf1df587bbe044085e2d24b02cb474582d54dfa92a101cdb03dff4abaa0e2247d7a77554dff5bb2ec6bb61c3786fbcea7dba865a430d3694177bd5cdd3f8f8f950e36f50df0ee0cbf7f11b3588eae3f5711a6cfc0c5555812e586d3c8e9ac25ec7e3f89e9ac22c11396c414a155a3f381e099520c4a0a585fc1ddff3398ed07006d9f819d43a610c1dd8a837564235ac0d0dfb396c2adf1ba440b30f651290e3777c7f09e0791ddfdf0f3dbfc3fe34184a5a3ddfdf0f385e87fde9611285162d1cefe333802e8eda533b22b46a0de5fd1a72524d0d7b04b79fa6862e335549544265d490de981ae6dc307a17d813725eb4a0a8043b72b9a116f49d422d28ccd1ffd530c7f5ead18441f8dd70061181cda844e686f3e321bec43eab328c33e8e5ac09f0808a32bc9c64810c6068f54f2167cdb0c2931a04156102084aadfe19d43f5d1d115a396c4fe55617bd1e06e040840b4d2d1e3b71546e6151d070c638ea80580d968199e30c47dddd205872bbbbbbbba3bbbbf7bb4011bbb9e3fd6f6f89127be4ed6f00c644c7dd0e1e030a1ad27f009081c6cb334aa02175568e1c3950396e8e283a19a5741b1104af24e9114af439025bb040b3d73aada28268560d262186144172d4dd42b71f938ee282dcfd7bc8eb9a0dc255ae32427d924230f5130064a07df953f4ba5016500cf417d11f44bf1045da143a19a5e4968255b478054b175c47131aa594dd1371f8656cf71ef9fe1d230e7ff4fb032cc3342e308d060f5ce48f943f2ee33312377ecb293af747c51eccabe782021a455a68c4f53ee276188358071ccb624f641cf97cc475d72ebf4a08247b091b0da87759c9092638a326b8b00575424b83018afcfe2282210b30206915df70d2268e36204d475b644b5f4c59821538d7174991e7cde524264a1cc10344b8f1c6a08cb6ea49942698b8fdb29d45e516b7e5076e2719c10111155c4cb105125a211fa19ec0820fbe888204618c210899269eb8952e45226044a01800f8079c841b8770e30be19e17fb29526e94cc6229cc60095958011438e002530b7b72e59552c3c2f527cede36af1863542a42e4c62891949c2042547222499c89de1c954417976e997322030de7052288c8cc7c23b744a1fc0c883da91f1e461840c49ebe5c74c376160d625374cccccccc1ce38dcb2b28c2f685cddc81cce515c4e05301af606805afcbef97955650845b0a55082d71972e63e1811470416218c635432d859d74c49865dffe1e7d1bc330ae2f57936e8ca717c6ec96126c9d8f16647b23f503e3c778e09b0f8a2e24dd0c06759942bd9b07e6891edbf85919482526842e7f3f62dc193fe2c080f65fb619d8817d001b741f6efc00ba6c6d1ae48f47bc1139c5cca2599200067e945c7f6ebace51276426363eae93f22b847143af0c940534087f21fc81f803e1df451bf00695a2935ebb7b32039e4b1a90987022dd55482e3fe092f55b27f5437ef6523ed095321d7b2b422c1dd99d9c97ccd955475b47da23f299982defa3e73d13abd6f72a1f553e4f4a29e30e734588a506b5cfdad3708668763befce2a10e362563e210833b8f1fb11e34a3bb5c8dd757703262c62d0656dcfcfb4a664af302832bce1dd9021036ae5e363b5c33530dd06a09eac624c5a928c925162e2856266fed6b18ffa6ed560d4ec91eda7cd69109555be5eb3281fd99e366bb35af433315bdb47546bb3448830b16ac5700ef1b95ac336c4dfea0ce310517c13a5076eaf1a6cbbe3b5ceaac1f8462bc9316e4d5de41b6eebee3c7dca7cc6b65f23a594524a29adc49a64649e307e3e6437dae79be8cfef2c6e49cc3f2276e88bd91486c5e6018dcc23e5b70effcb1d5014db505e219edbd40fe6fe8efda91d52b26389755fa08e1d469771265b62d8951d66effd524a211e51dddacd64fbe5c15fb16e771eac6135f4dbdcccdf1c397a2c5b2e0b9529c961813628231be5c2fe32b2fc7865f4a69418ca45d37c48d434ede367329c42bcebed5e8313687c96eeee42041a3f9497f924a58bb163f7cce3b6c9e07c9e43f8b72ae79c9b47448bede5cf20523ef6f1d034295f66f16658d73986fdf09796073927d32c0a24e99e6d5b8c1bc76d9ecd53e1a5cd53e1b14642729d941cf7f1c8a686cdc7304cc3304f73e91a36b7cc6593da4f6cca1865c6f29d6ff6655682af847a3fa78ab76a9d6c4eca8fe302ba7d19c032996152622a59a6c98c41ec3570bd330e64f1949d8c78f2fb4e9b0f76df615e96651f0f7fd7657def475cdff236ef73299bdd55b48f8776c4fbe9cd18df3f105dd33e1e5ab665736e736e9eccf651628eda6e54504bcab84065502816e2695e8740c2e375ea1a9644bd79e4875ff76e7e3cf8c56287711d67f9c8f79dfca494b682adea6f1b28347e6813b91d639e2e7fa41297b70dcca875e0c6f78861317a5e13990ab320d9811bec31e7d74300a72178f8b0b78dac6644791e5d6206935b628917dc70e5b5644b698923426c8e503b3939569be722a3b4c41537b4c102e7dc48a9d0f910bac085cdbf9892831f188dc08da0f2f114147891840893132a88a09503188cb6c0240b138ce0899c42096f085710c127bd071f1f14f5df65a525a2d8a2a06d524acfbafb0634bbacb444910b86172421aa5d5622c2e4e580cecb4a44a02c80c892a66d1926bb3077260d3c2c6767b5dad9c29036e7ca8a18e9031682322938f7210a11a644640995f6610b4172368b99a876e718ee9cff39b3eecc0f57ab69777cd04253ab3868bae80b25f443ad6aa25671ef282911e5e403d31783690425dc70b5dd80be5c5652c28b8902ea72594909187c2ca02c979594b8829382d2cb4a4a88a01b0285b9ac944418665c4eea41d211d3cb2af92cf7bc3a71aeec9f922547ff1075a913989d7c5384fab7765232a4c40223b6094f4b373ecd0c706e7c50c53cdd8a109ea001135a50022588b4e2d00ac60086294f1ca10b2f5af11fec9e6928def83d30f1b8c93b99698e9fdaa630339f968c48a52450b021411289946f1c21212747174c8070436ef251fe862c25e7863ce5861b46223b378c458c84b18aeb310b3174e1660c43d71f350626d7ffa714b9fee014285cffd50e196470fd7dcaa0c4f5f701a40c3db8fe40841182eb1f8413aebf10618471fd8bb8e2fa2b0519c1b584100eaebf92078670dd897464d0ed1dac0551328d34909c908129690a25a45648ef07042e4e208515c0a0020f5a3220c20e8458deec88c1076278e2fabb0b1225a8608115844084c9075b4881065d48e20351b45a52e1b652129c68f5f7b00a0a0af280bb4b0e61500a4316a81f2421871bca341171b9dd4f859ab470bbb31c74b38879ece5ef8a98c7a68614b85cf7f7671ebe3d18d110ac2105b43f6661447eccc35380e0ba48891ca7309a0209f3145938e958d3e289d65305e22af9735219d24dfa8ad2a8076948efcc9c995506c76d988c4a6fb779d16e98cabcfd1980e6995591e6fd630f69f3a23ef4abbd5ce53ad86b45220e75992e61bc488c183f51fe72d68ce556bdf8cb87d391ccbcbf0cfa47a18c56569e5762bc17318f7cb934dfe7cf258c0893469834c28864deed74d57c9679593ea4321fa22ecb63482c2ccf8c21b13c3babc6ceccd7266aa7a5657ecb4f9eeff2fc695ec483b4478e98799a9f589dd27a11dff8cfea49bca0349f009affd1625a6e70e63bfe7eb0a110773e0ddda21694915006a03bb19fadf39d0c02244187f8e564bcf6d3ce06bb97f1f3629c069cfb70daf83e8e5519b4c1c91286bb691f44be16ae2ef6397e4406b0ab344be34986bccb77ec089b611157c6d89898fa3daa16b9fe312a1111c68ba47f4b0db51bcaa55012b9fe19fdbeea49b49a80d89af9ce8d5a675aa7b13f334ff3e11097a947ccbccc77b3ba912769d0dd8b1af49f332f235353ae99076a7951eb689f7926351be4c88c3522953d0f20a9d477e1b421d04c9579ad66dfb587c4d56458c41de237fb19cbae9a41b6efbedb6a90f97ebbacb2b3663e9c0598b143c4232e67c3f972b341e6f7f5e9ac06993ff3d8cfc81c3fa0412820ff2fdfd08b8ec87c37535db135d39a79997a44ea87999791791f9fa92e23641ea80544c6b2abb46cb20a7bfe0c105b290c297b6d40a8a6410412e9761429745b5e215fee3916ee82dbcfda382905b3361b8b7054dc7e2fe243eee243bec517ae97c4a250bbbca0dc9a1c671d8a34225f593492db1f7d8808f4e5433346233e148b701cf75d7c75f687fbee08eeb7f88a45a28bfbed5ddc03b5e2ab396bc4f67c7463131c9d3411e641721627bfa178bda274d3937e22e20da3bb7b3739cba140e92628dd04a59ba0f811666d2f676dbec56de7e2babb7bafeeb5bdb828afd7eb258b482253a070db3625d2497bddfe8e9bf9871f1fce921ee75c96c93097c6867c521bce937515fb5949854b82c1507ac04b37b82d83dbcfd910e5821d2c866413acea8782c80428b8edd2c537cdad5e61894a306bc5462a98c532abc2ae2b1acaba0a978e2eb8dd5188551d14e310bf910a6661181677eba22d221bea211a488311ea1828a2c1e63ecc5c8e6150d050ba5cd9175dcc13b1a1210dfabb0b1b72e98b01cf59b22167b1d86ca8882b0a394b16e97eb7d2d5600e289624ce3b1459aa2bb6583ed604c416cb771851ebb8056ab5d81f966ff97088afd4ce2b46d460164674a8c1fe1f587ee57ddac75b2ab758aa8be5815ad850ebc4977688df68831c61b146ac3c1f5dd774b97e800d392bb2ca7f235a29ba2d34a710ca5d4798b5f2fdd2e5ac158b6d8171711bd3c16dec07b71b4b02634e70a1b3c5ba50ec2a2fd23b2b106b244c597447215c08ea72e45639b2b2f23a35cc13b2d8b299f1fc33be7fb625c1cb67d09d77c9d52e2b89e0e876ed5d55ec207fa91e1b03b36cd836d22a5775154a5ccf3e204ad8f81aef1971e9edca201a8c5019740a8a62e47bedfb7ee5b8020d81826e98fa77a1d1e56311e67979f061dea315d73f5ac138fed83f0a456936145f2b105cd2fe2acfad13e445228e3fa5dfb55494647255cbdb0f67f510f5372e711626d445620fc684e6c31528f3e1a3a87b17d981c95aa66a99de86a81acb74fd31216749a2258c49ec9151686cb802ff51291ba2a8bb58a1db62856e634c6acc4b22479244920885a2b4625318f41e01cbcafb6348ee8c357d81aabec6c0e6a4947b49d4942959ad40707319e5c66872ff4c49ecf16e7225d731246749a256f9cf4929922472d5bbcace195e537d886aea5753bf9afa85bd502ffbaaecaa178efbae3b976f19808b0442f53f5ab43c8def5a6c28c4ed57bd8f0b415d3a00698f1c41e3554f43658fa8619988ad1a6f637f62cbe66bd4d8b2a933586a88dd151bbad04a443c5597cf7bc95b5f5ed4b0a6105cfffe7e503df83675c677aaaf518f503df834aa2bb6546fa312d1a22d035496c683b6c633115b36dec76d546ed5a8339e46751931e3815a9d7b363c80ccb03212c0456576f42d034ac73643455db3bee70701b33edb59b4aa3d3b24857bd1ced0b3e836174883118a71949bb58b6b577882a2a38b792426bf87443074fdb29208aab8fcf5e84e72d6c7231144c41bf6908b942fac051ddb84b4e83e6f513062d4d22ab77e6484f093538226985af3bb06fcccdf5eda0c00a9a109f46f485f748812bda810a54848cc32b4b49f1589f95d1023e168e10fa4597c8557ff30e96e0c932f2354a87542d450eb843294a8755e348bdb1fcadc90be2e521042000182dd579dc30f7fd9e10c518b9384fa5367016955ff9cb465c0deb90d646509fa178724f4a00a2d96e4c006452d070ca940095008d28209af563f45c9ea8262ea055210fd42f403e907a2bf08ebae49c7369d4ae5e13dd3f7e9784f1fb7f6f1ec3fb334b3216a05c62256c9c72e2b61410717b37ed9074000639e7e7e4dcdca59a91e2dafd954fdd18247eabbfec4567fd73d6930c6fb379406e5a7b84d729cab5931fe323224e57b51ebc05cf99ec4c88fb8ada3b44ed84957cab0972e93fc6e921b911ef266bde4ac8ec2655b8c0cce86dbb6759479b318ccbacb55f2a5b4ce66e5cc5a4aeb6436dcc0ecc38e1224b32da5a310691dbff23b4aeb9caefc669222337739ab311936a4dbc7d88e12a3b6142fc2de13029af92b73579466d19662d446465d566311dfc89fa9ddcaf980bb9cb59a54b6511fd956e2ae1799facf5f017ea6c656f7d5affb99ca2d9e91f92e7a0f44b766603e1631cf0e7db330581ea616710d8768177b96080356c9af016a07f18b2b1f75e55f09c6a22bf8c8f7217fb523bfa6469a1a8d5c257fa5c6a3d84583f2698d4b1a947faa91498d48ae924f96407ffab5c0befb8fe840ea9988ad944d716bba4aae6041e3d112f9b1486ea96d2b6ad64a905117126392f2b9492e5d09e5cadfb824ee8e56e72cfa2e16c94935cee634c8f28486f36a1bdb2198361d2946a79a70e267c9ea922df95e7fa02de96f8738dd23327e43fc10f47a3bbb4b4c765337f594d689511af408253ee91b4403e293ee688994f30937e4a66e209c25812cc35e880685601260b221d5a290d6c1ac4f29a475a475211a74210dfa951f445a210dfaf393eb2f012184442667edec303113ca55fe3730811e49fdd02f6d0ac8f647523f9cc208238c305adc5fa0a076757d5775dc85718988378c4c3e6d8bf863ef3e58cdb1f3847863866dee2eaf2b85a08aa01bd0c03da61b08c16f30e430eeee3a212afc211812380ff01322a71ba594375ae77423f700618325300e0f10366002dff00d5d9eee3b6b0728e85667e7e0bf8205ed2067cd38f2455015bef080161e68f9b7cb59334f9850640b5430ad60072d3f49b942094740002304442d4612c11760b00526269690d0f2a0aca90e3ab609631cddc6f13dcfdf3953eb48dbf100e2676fadfdac7a4dd9bc7f8e15349c324de3e3c743a6c1ae51e3a594524a1acf1f8f1aefd33954a0d9f34780786978fe6c6c7c376a784c5583dc78be580edf60df31c637d84ded3b63461bd140436347377f53e7eda7894b649ebf19dfd90abd31857eef91292245263755e63be9e59080625d1c35d8bea4551f0f9c8fa91ff155afb2614e541295e4d478d460c72e723ec7c62e1aac2d1f62476de4a6ffe6bb9b9eaae371d41d2a5a12232fcd86d3af4e376cdfd50002aa7ad18af04dbf0bcbe79020879d3fe2fa168eef9f4b304f087455df9f434ec5ba68b0b1260df6e77c881db1be7f1a6956cff7cf22cca3f3fd33290ccc93c30769413dda9488d3cfc17cc7aa914983ad53e365552d4823d2aa7e1a4dd0990fb520568d55a7f2d582a6c86841323f856606dadbf0abc7e16fd0b2a9b9cadf74aa1a978080dedc549a1c6acf806ffa736aea47fc9ccfb1e18e3d8263da232eb085c3fa120fa84a63c2957006d5e52157cd0cdb00c073c3d090a443bf42145374db48d6105777062e9e62a183db2eb82d23038c1e61bac5eda75c64913595d40ff0fa73d40832f8403520afb4f2533fb82bed10a7eb6c8310baf871931c675212247793b38930225d055880becb736dd6b7fa7df4c03ceeb1134ad0746fb40ea7848c4d6c4191cb4a574cb97c05d3fd2e2b5d8174e37b11e8dc6919baeb827750dc63e425e699841521cb98689a1733d3c11017eeec31f29016432818a282721cc775de50149a920e07092e5d1a59ba42486212bbc27505911348d9aa7082252dd34ee0a49ec007776e9c928844e904435996cded04af13045d97b8711b6705d3edf72b784ee03aae1b01a684702a59c1c4ebbc6d5aa1e4b61546561029592145d775de578590154ec44b71d0e134a946d0f845a07c5929054c3794f7000d36491d2e9acfcdef22aec774811216704f641271e4ece21ac58f4cf127ab227526b3f625229a360d0a4977d7bad76c1a94e08d42d2730b36490141199d90a284e6cc4757c4b101bfc1168a79d729e65396dad3a3accb7d5edbb66d358cb1c61cd1946851d6e6c1d689958888c9296c253f64e6943af8d86013b49992d37e6275887894fdfc2dda47a128256a95669b8879e2dbb080b989b88938e6d26882c8a5593e32d7870e9e4bebccb0f5e5c788b751cfdf36a32732611cf931d84cc5d4edb1aa7d2a0ad3b501c201dbd484a4e677d89c407aa041050d99c994b16d1255bbcca6a21a444dfbf1769f37e3bf8fc7f6df877a1f5a30b9b4b5f9f81c75f0d1a0fc19c640b90ff9c8c747dd7ed6196f53eb6bc12c070021c4be56edcff8784cdb03d0b5df7117c3e3cfc80d99deba477dccc7dfb82732451ca99aff2a62c475031a461737edcb0ff540c8482489484cccec7efad0a53ee623f7d1a678e86c10ee236783a46cea477ced637cd9e88aa9b1888d46647cd7a441c9846fe4a3e4ede6fb07048d57b51053ec894b66ba1ff06db4d7424b624fec22e2c88f5dc4255996753713a6196cd40067006bd8e0664cd3fa88191e8c52e61799f86646eda2da49b28f7358818691e9cac8c43cdcd3f035e80c0ff3cc3df35f68a0a16e95192754ddf833546655586f7c559d7c135f9d91f95895f131b58d1a4cd2458da441eed805cbcb15960f5b7e37911528f6616442f4326a6873b1df84ac6e1099ff017f86981a5fa3aade467519a19ac18665420b4d657f620bfc6ec6a357e6b99ae221667eccf395f97c88f9c90511b2baa1f698cc7335487cee399be261c67c18f3d106c1bae7b8f769998f47cc77d29b5169ded69aaff51f03ce8a424862c0d8a4e69f09f3a05248228e7cfa5abdc137f1bfa6ba500ff5d26cea07f7da73486266ec66e34bc6c622a988e4db01f5ddcba8d8b41758dd20a8ef5e07f5f2a32be6e5e5388ee32eb0badbec7e7edce2df609ec9372bd4c7d41ec2f8a8df6a08e4462b64c547154883a88abd7f9d9d7c83fa89423dea8140bd7c21b167631c14a392501c8506ca0289f60712d0f82133319a9ca64d1adb9c3f81dc8d468c18efe331aaf730f5a5867f5bdea586f6b6582222ad4c4297dba9d44c071f9b101b19a32d44e17261112c3ef241d4486cd8b0f15d17d5b03f36bec63f8d7a848da7f15dac5dd4489aa8896c3c8d1a955b36aacbc603b59aa8759074d1dc6c5823687cf3ce6a7369fc4f111ec7717302b94256777b0cdcf821123708f71c07e4c61e6ef471a38d5ae3630d5705b0f1357cae8d1a3b2b7140c326ea215cf9364ca0e16ac7c3d52a87c6aa860d1b36be463d22f5838daff1369e5b355c46d4a8b1a221c4a69134a0daf748e3e19e7910c0093a91900c9014dfc9959f81b1795df605f77892ec922883dc77d563907baf4e0639ee3d89e392629c0dcaee55648af4b83a8078bff75ae7b3dec63a1aeb4cd6f95887a697b88f324ae94ff34dad97b0e6c27899c43c918b9c9535ef91d3ecacb101f38fabdef73eedcdbb7dd7d10665f7d926294c51a0484ceb993ff8be1a6fb604fb0d69254b0ab3a52bb12467f99c9f0d815932294bc2959913322a5c99692103c3955918576a1f70d604ad0d966b6c0fe6444ae951aea4b1e17f76272926611f764fa7df7ef6a03ff39dd77d343a757b9a9d9af3ac9ac3fb54003c0d7f35ef72c5222811477e2c721a6ba160516a6adfe96d55de4eca97828ae2919d1cc13db1887f6096ff30cfcec7f7c12c9f8f0f847558386eb4e1c69602abe4873195595892ab24ab975c255fc7069a9a2672a1c108e57a505483325e197b229188231f0802384647da502311ec31224930499e9424bf975a0acc42408f05e22af973521a62493162b084f3c67896e746a150a84ec5c36a26935a25ff97acc0254ba4ccc5a80d7532883d0b7b1fec6b2a33187a17fb1d0cfb168c05c3b01696efef776a24525915089d0afe56b906b42afe94971205456343a51c1022b1675b8152862d7ffb10e8c69f51689a747cb4e1e392191ffa8d350fd68f4911477efc682347290d82b2294631a2314a6ce2be04e0781d58ecf126336cd83aea4f8eef7962caed4e5e4ded8bd5ffceab1952d6e4ab5992f4a423451cf9528aa0c8ed583cafaabeab33fc57697800d49ecfa1e2f039f5868f2eaf21ba701c4a7477195d621876c48ecf2165920c02242183b3e0db186d182f48f3f259bed62ca941f960cd9a3428bf86a6664c90625ec67cd877b3d912be919fe30a14fbd0ff6bb65579bbf8152006b92a14125f177ceef9826fff27c7eff0e91f3c367cc71f4fd5f13a76d41fa0568f65420b1bbe5b3aec4f6ce5f8f8f1b0f1fc1900c7e7f826cc73c3cb9743ceea79f992a8757058b94c8938f25d703e7c14eda97af94e03f3d4c87cb8026b7cf8289b79eb877d5f885c255f7bf99e8a4305527ff8267e8e1a835c15df869a8f5362cf118c135ffe107f65a7e0d8f06bb021eac68634fe0d2bbfa6d25069f5eaac524aeb803648ea07f7db7336462172964b3b89366c0874695ee6d953356cf8346c88b2b1219d61c3196d68a3141bab75f29586b39ee484c6fa5283525865a0198cce52eb6ca190e8921f638d3bf1a58da6a6cafcd703d0a5b142e2eb72aff2f1a03d5185d1a5a9f1756baacc57001cf6196b156e091a9382c4dfb89a973f7fd4d80d47982db921cdcba76992d43abfcd069168ba3433359c37da99f7f199aaf232355ca56a08ca975189883119e872616a38b5a42b7fd65022b9f208577e4b0d254bb6243b425579ece3119fd6e66a58c45579daac1884e2b22519138eab0988ad9eef32241efbd3f33cbf3d8e7a44cfe3f82ed66cab1913231a3fcc96644b70f0546ef55457cf03b5b225adc3bddc381be4488f3502c7f3d18d31de79b71a832e8eef42ce86b1a7f2b4e7dfb9341bce17125d777b7655106e00dcf367809ee741a2e946aef6eda961bfeeb43288f6f16a395840c36c89166a43b8f2e5cfdbb9f7550d683788f6db7b5503da8d5d3787000aba71086ed2b48f55c85665102009ca61dc70bbcf55ed4e1cd88daecb7d17eb119ef83d3d1f7b9ea7e779bee7b9c5f33ede535d46f0441e6e7bee7d5c4874dd69278eca1a520edde30bdde4679e365eea6994bb725949044957bb9495a07872b59f5166060b66c9584f32e3452ec011028d496c609ef95ab89a30609513f516d79fad177d41439beb36ada3325508e0a2da6b9a1da25d95f7abf2da075179cdc66f00f1aa7433e6bb6dfb78788f9a77febc5e4515f3851a04bd8acaa38486fe9ad65f0ca0f9199be2fea7e6ebfffb34dfd699535a1edbcf2aafbfe40f4dafa2415fcd3934e54f99646a3fb5d5904c12ed904ca2c91919354d9b6167d828a526f3333f8198919199e97a88bcf1b5ff999f9a4f719687ff016ad53fa25a26b4c0be5bb12553ff67aacb887fa0167f40defec456cdcfe7af00345f33bfb342ad136d90d40fedb1d7acbf1a74a1cd8d749c7c19cfd5707bb9f590ab9d17fbd0a1e81d30c52d0c451400210266898837c2dc2841f9c1c00013d30378920065912c5a5af2571f45231d13531c8a4348f11928c61e3a778742154dae4b834170a52abc70a52a6c000357aa8248d33417c2c107e4b66d5cacc255051553ae0b8791a1e39f58d2937b33a2db53866fa3440592db2e1714c3088296d863bafe9d94526e4557babc0966b9a3e04a69b725a44dc6d2f5f7229f364469360c225b9a4633c92cda84aeff5fcc664d3628de90abfc6b9082865993ac49969439f19888d0b14da83575501371b52b0a06850b94e3146f45266e61505a39b4808671caf59fdd2a0c2b225a39a575ba89684bee85cd6aa775b4e7cfd13adef3fbe8e0a387d6691695187095073558a4419fcc93bdfa1389f8a050d42777777737f65996f5b04cd03047881012f072725028f6ce89afae3519746c136eaf1b9fb1884d1a8c11896f22f63edd46cec23ebebbfa28469bc56824a534e84c7ce3ec2ae9baa10f61762eb9aa062968465445ebc4ad880b9fb5e97fd64f1a1cf9e8e083d99d7cdfa7c2df498dd6775a95d050d3c1470f1886c9af728b6d9c6b7741f7dcddb5ed57d7787644c39a2e74f0d1434d2339922f7ed7c568d4605669ab3cb3010db5eb1fdad88037b48961fdb3e76bd5b9ee29d86bde4e06149b1a6a108b3ae01b4f72c366b26406346c1d1c5d7fda3ad8b6effbbe47f6dff740b76b28b9e7b0d7e519405d74149c38c7f9a63fc3010dbd33d7b810e8663cc8efbe87fcae7ba0cb69738b7da7bd21e26856c65e424399cf36282fd010b5d4edc37b5a8ed56def75daf6f1d8a04c191627d963caaae82ceebbfb30078abb258013316aef58362bd075e905adb53dc659a55df7b4cbb66cdb366e6155a0a1bc9aa6fdd534eda747e7731c773a9d4e32dc5ea57afff5f56c57c320ee7c1fe7e2b709b1664587bd3ff7582d72c3ee8fa8085d795157a021eaba8f835828f3a1c7f2a2135864a9bc7fb34eef558756b90e3e5aa7fb78f8e8203ba6be0fe27df69ff7d97b367ba03be472ff61f30af1ee66a3131147b24a952dd98564ccacca8822034a6a8a26689a26654469a32c4b4d11718e58921aba3335c482d975f3556ab4a82dd0101584631dd6611de63de6619ef4dcf3bc57f1eec38672fd3d2994c95cec6f6098a59c43e531ec849d3a152feb0fbbcfb6e73849828893216919b6a4e33aed3e6129089f937dc81c5745f3cad51b96b2aa9ff5bd94df7dd5f3bcefc1d7b3de3737b9df38ec4e0dc362d00958ab37e4aa751e20055e9a737a96650f741f1071786929c3a2742aba8c51312814a54fb4f6a630e7f47e92699aa6691e4510d38d6872061914a0f02426a1110a18884f8a90355dd96158a046b78198fd4375bd63ac0448823212d317624fe4119b3ef97106dc336392c985049ac4feac07b487d83300c6891f72370e7d60a9a33466a15f2efd84cc1832f6fec8e95bc965e641318186a890c12b7d408f4a6ed655af55f2b38f4536883df1b692cf58279997cf3ab44afa90582bf13aa5f241bed75ec512c0099afaf1bdf69fe5063f50251b72bb57e91ce87655887739db36487231293f8c9130244401430adb74d99c1fceb973b35fb5e44883d813a51368285bcacea53bd9ef7d8f7ecf7ba03b6be8dd99d55086d9631bd755a09b0de9bbd948838883fdf471cd28c3a40f219bb1278261b29ee36c8a07edb9efa13d6739e284f372f2b9b90d8977da2ce2f8ff16bb0c9d7c169537c49e78316c294479dd8f85be7d8ff89b05ba18a6cd217d357b43c4f1f7f12ce7ca1b3f2cc75733361618c3302924e4848b9d1012c29ee8e477d288bbfbe03b1fe86a1fb1fe0cbbd8d26dd9201b75dcaec5cea678f09fdfc363f817eb9b598f22e23c0983b82d7380611866533f80a47c4c0096bdade02cd3b44ccb243bc6ccbc0596cc5232c7b93b333bbbdedddd5f2817ddd7d00d51322fcc136f53977fe288142222510a1ea881153c65d192bffa88290e211da1eb6e4cb9b102e567cddda57497f2f91b41375defe68207779405163494920723dd6041d932aa93e9b84fdda49bbb09c6bc2d5d8e59483924bdbd912e7f4e3386b1c6213fc9346ece8c5c9e5bf3b671b39c5d705dc71f9fe48993e27d7c627e2f8b93a7a2c2599cf84fdc432b2bcd452db2a5c53bb6f45083fc52a4307510531748474847d1487cc5a1f87ac2c44b4c41c49ccb2c57dc2eb16cca39bde39458966993db3ad975deb1d3e6b6719de77d9e8a5451f18e2a9de7a978dfa7424f2b7265c53bae7c2aa713a52b2c5e0b0b5d6169697179f1605ebc63c81831bc638c18cd311e0ad58cfa76886d3320e3db21de7e19cd325246c63bcab8bc785d6378303052c6f87688f1f1e0b1f2fb37009711c329994a79c7d45449fdd8a6c4cc8f2c2ca30f181d7767940409d15015465e44a614c124e44910493f30f191236705daa0dc09cd7cd4458f35c7ed2a992ecbdcae21eac6ed1a823da4c4b02cc3b02cd3b439b76d85e23a9477630a0d579e8af71c633c9d3a4a4d40db862e2bb4c11b5368f82bde8ac59182c6ef5abc1b31de882b9793cae7b978bbb8b8b8c415865109812eeafee9b60d2180611f8f796512d6356c27281e1adf685ed7c94bba8632f1468ee31853e18813529c27d04ec965ace8b20a94cb3db47eeef3d179d3d33c2ff330e9b9d7d1e357098db8a91fd17e4d64c4a106aab36325093a54834650c4a12f9ac46db0c68d5f83ce0edf241659aadcc019752bea037e6cd1156dad6640c3ef603edc397214bf0ecca3fd6cc154d65a30955b390dc62d6bc5ea5275e09b979797179718efd52331ac3c42eda47ef016cc1118fbc381d68bf515f6a29102f3210ab5438968e1cfc4b75e369cfbfc9d5fe96dd25542a0eba887a9ae6fc1fc0b8c757d0b651f5ced781eddae4796355cfe2e5bf1b36c40c37903b5e468c79db6af7cc023ea3b0fd2156aa87d75a421f98ec3a062e8d070573b13ec47d119bc38511ccc8beac2bcb8a48046a44360c74983a640f28d0de961913595eda3df73c6f61ae59e94524e15695568b4131b54a0a13c79bc458e79a251f0cd8def5c7ae82be2f86fb5af8c978f876c69f9787097cd6ffcc55dbc57a4af550eef86573a03ca8ea615fb52630bc60091c59b4e290af520582fffcc185a3cf6a39d15485dfebbae29f528cccb8395a5cb0b4c4d7b8c194adb5e2a8c5b6ee2253e919c26d1f012144ec29de16fe78639f888e59e965e41f8b80a8af778ef3118b7df931bf6b96861274788ba3b51786090068e46c0815e3e5d18661b96361f497046fae6cb8c9457da7088eb16c67b429d4c6ed2cc5e741fb20f90bac8692df05c392d6d3df2c36cc658a5932736700e3b889d0f6e7c99dd50e3b4a4e30b1d1ed470e3873cb74f5ab8d869c95920c8baced80cb75147789b3d60c49161b974c8e91166e17007e2cc95bb4d7abadd7b05c3196e639ca978cf1e11b7b352e576288f7d07c482c17e3ab4c1bcdc0da65257c57fa9e06a07d5c578ff2814a54b6470ebc4a0927889bbd3a0952f398b839c455f412814a5a7a597b3d8510e0ef9cbbf54f952bd05ae68ea876ec17cb760eccf11ad173b5d95422d098186f3ca783a72b8f15e2e7f34869cc68d7f93830e14e89e0d519bfd664e463704599250d9ec45a0a1acf16a68b60f672ea72ea362842fa70f5be8872c975b22cb4a4b37e3e3e112ad4b8d97bf1696157a6ae19baf32dfc0609a0cbef11a161c3db01e0ab55aad5cfe6e4612cb15349cd7c6e3b6d99171f126e86ee5cccccbcb77e387df65acc68b8821b3bfe9cb550dde08b14cbbfcde9d57bb729b2a9d56371b4fcc355bd097b34e4baeead3d25451f12a7b256208c501e7b4e4cd2728b7372b873cd2bc00e5795dc771dbdd261682e18d8bc178b2c6189e9c2cf926be0df6c1ed18796e08aa60a8044e3555452b15a20101000000003314002028140c87c482d170349ac78ae07d14800c88a4427c589c88c3204729859041860042880008c000c060b62100a02829574c2bb249acc26fa9fe4bf6aee2c4cedcafb3542fd0abf53d0a5c7b4b73b0a5131ce64ae02dd6e300782963bc7bbf29a783aee8c45007a8dc0740bd08dddecf4924ecf7821206efc17e540b27679be3187833fe0fd49754a27a805a1f89b417517cf913d2be7df444d4a99556d948feb94ab944d9235e15e90b5bb48f0f40fc0f1bb21383e75bfe6e44c11dabd903c8d67a064164717f564e87d05dc2d669a78ef4ec346c36b216c58de331e82f64ebb96a829b108f5545c03986a94537f31c308eb2f55df6bbc5d4d957aca1fab6ebaba87ae5f77b7313e478c8eb7caa80841cfb3e15447569f35c00c41d2362f4c11b0cadf951fd1f8e27918ca3379f76994d53546561b4bd2742254bd5a9b0b0931555b5916947e9c26efe636212ad3b02a610242297ae3dee6babdf2b609ee80d185fabda8ee75e0539e95eb792c4ea67bddfd3d4cd530bb01df91b304a4b567581e185f2552cd55b2d766e6a9e4ce1f12d5a411e2aa420f424980e1d2cf6b39cbdac0ce463b293fc509ebf47cbc3606fbdb71c50a8b6e7026854a3f072f4f3ceb00fb3115651cc5118af4dd326f4edecac73b00a308475b166a4cd967b70e46d6ab10283720a36ee099ad9be04c904b540568c6cf838d9d3aac660ee071ec3d7557991d3edb130ba7cfe545b755f946f58bff0f1d063d9b2ae9f47a25e192cde59c27b7b83973f0324a09384665aec55cc7724d1acbd820b88ebff66e6977d0b1ec611405621cb5a3398d36624b3f16fb6bdfc2278ed6b65ea246e8f37c67f7810bc63d675d4bfe900f6d21a83857428149d175a6835ef0366adba2e7411a8c94d84d7eb64bf0b6549a5bc9399e9ba9bad28f9c2503617ddfc9df3ea9fd8b503e89e37b07b62e7400be4b6ffa71ac860c884fab418f02796709cb4409e1d2784512589bd4a5a3b1b3c6105def9dcd0b3cc320bfc8c215283dc7247c65474cf387131ee403ca01bfa2123c0a8f3faf6b02b65beaa58d17e98fdb669704982cce61ac1412347af828f443487aede8df292c763f6d475470812f1d115abe0de853c6c734a4b7ca74ccb22deea3b528a5d4cce9e3c670fe87111cddcf526bf8efaf24717129ffd18be03a209dab1c8087c1e910de3719b4ea4f10e1de52bf8162d1ec26847765cf3af7217adcf16339e9a9fec21af88f7e9995607313e1fcc8d20d88458f66ad51121cbea95f6f3eae2b1bbe8dc07bd034dd112bfc8e54a9940190fa7ba08f44c5f273652699ffad8a4dbfe9661bd76580108e3e17980f49ff8309398979b04425b082d5d9081bd3d5749289e65641505b77110ad794cec7f8aaf03ee1911e4d452fa03e257a136e432bae119f0f305a9a8ce56060e891ba3cafe51024f9fdd6519b87d7879d57ac15038ac9017a83e89e96fc7fe1dccca240701fadbf6f5ade30bf297f400602c722c22a27c7d1e04980aa8481fb98b12d0e19ebd5e78b565c3f98271eb13a6c278740170e75c64b6328ae480033060bf547194f03024b9b839818fd907fbf562b33906ea0d7584176c1e3be431cdd7f6dd5a75a0b95890bc9af61d8374d9c22e6f961287a709fd9fef026486412df41c7254aa41fbbb4a8736305f3d413a145c73c3791306508d3b42203738c26c952e6a62ceda485793f1d3a2060f41739fd57ab1d58f5d0e1548413a430993f29c9f3580ebd0351e9b464fa36d8fd1b3756612a832c9a03b845c68548f959cbec3ac58114a41ee11356c8a599757ee0773b39511a1be805d3758902e7c94ec5eee2e92505c5d684631d713e6468ec187f828e212a21149337850ed174a19580c4ece5e4a105a6d1282cf435fd903c70844cc1abd28d4a6c9a7b851cbc6b54b5e6e16885a199e20e4db4049f4e94f7e51d54d871468aeeb785fec88b15fa64b53f80918b5d19218e2402980a9a84181ffb826953c558a1041a52168832e9889cb942ad65b938bb347af08be9151d83a6ab31c2c4d99884271dfbfc5192d6c0728438f8b0115f679be3dfad6ec3c3405fc7466f33b65a19078815b5eb19926009babe3d3752e962ac59b89d5db6ee7a8861c6d795e9f426a7a3282d90e3507590ec977a7076a81e58cef0e5be6d3f1521f6b5c8f54880887f165fa2b9b5875d9871713ac183a92d2976896f560683205f954197cd4a108acd7db42b02370c15ac09b56881bbbba3cb38a11d097b1528950184776bbd7db1cf29b619483c9afa994a3fd76884906297a62e8c5dadd2a6ff628a3cc4ddffff919c86fb1e52dd97a5b85ec323d2f52461ba9c85fd711a446875f5059e272323273a62987afbae31bf861da12793da420ab9ab185a72c1cf559b7a62081aa8f53f0268a59ee63f8fa21be978b128a32d7567a5fa5d924ce770edee47ae21960b8f4511ae87450355664b3516d167751947089efd25a880ff28e8187bc55d3fb8cd7915cf694a3cc7fe4e29771d69cb99608b49c382b99d9e8a33c20344de06578a3b00e52408ca9d175c4ffe0db14b8acf2ad0eefec3cb9401ce5862b3a0f31fd4d37e5fe1f8b455da844bf9daca8b774a92d9188e8aef85e9d4131285a37397f3ce722ca6864958ba8105812be18d904b81643c0855af0652ceb4842b35c877e2305f5b5508b95ec12bd154d11ec494de6986ab89d07a2e71e1bd20d2517ca58a90a57c20218c16584607d7451f43dcd3239b23c913f9a4259100f4a029bcc02c008b3085650e61c1df26e99d3688a18becae42ed735d548614643dfdba3a3e5aa72c86210f8d5634da60eaf879579cf161da103df7b1987130da61421fd83faa9b5099bf2bc39434cf7a5745b45e0c02f2979e14b890821695c1acd5b1679a62d091896300c4938df6062e40d8eadaea81e9fc2c6c68b13370b16619eb7081d18d9672f688ab7f95b8082d442e36501dcf2f0202643191d10ced0c5a65a0b702cae30d6f36118a6d6d78f714c340dc3c92b3c5ff8fd83aa554ee40333a21903d8629e6b7c49a361e47c0a39f567b429ab52b1f428b03ec2d11a910532c98f4e23c5d42a02b7ea632d10d87c512f3483e738bd1327ff8353c33d0664c27756e1a8190efa58076ea6ede9abdb6dc6670c87656d6f86aa2af36a063861ffac2823f10ebdac33003b7113a0626059cf96b21b601123341636adfd84ce15def536afb32b4fdb2bb96bae71a380d88f222aa1db13a48b7d5019d25ee5cf161ac69e50cfc35de37c360a4fbb04e5da85b45a08d26b3f5665c426107a77044020daa28a39da170cd59afd83714a461929ade808cdc2d6134b768f3d0229582541cb7cf13e8fd8a30e7de2da2ef2a927acebda08d9eb79d2b4a9054899c7952dacb6d4e8242f3b15de9f0b703ba12f325269aab2ae021ff9aa540b6148db0f8be37c813d0543a07db98760e60deb4d12132a8c0d22227f1f650bc08220de10d0419e1038c315827fa5cdb1a6a3105a148ba6200cc99e33823024a701359764bb7bbeea92d0d3f0fd143ec9344aa06f40352cbc7fb5366a492233ea91bd284ded37cb2c5591baa0ec64049bd6d61bbcba981a9c42cb5d4865678ebe30c202602f84d017367c9a77f9cc76ed70efa2589f33b4de1d157aa307328c8d727ee99797901d15e65ee78b3532011d6af3ff5e1c6e75e7b49f0ba7ba6018e1cdb3104e500958fc412e72e719b6454653d583cd06c89db9f350969e45bf4075e47771fe3bc764d94c4f9ef4920b11144098b1b52f2ab42760fc6b2c417c77bdac514b0a3920f1922be29637b0fcf42a1cb0564ad28affa501b61ee8be9f2c19c3910503860149dc7bd8d12213bcd803b563995622b8969c49a0013d46c4859c12e8a62cfd427f615790ef9de217081aab3082c25e648b14d4c43298d1f29e813dd6e91c1f5806370c32c603ad0e1960f1757f704a5097e1e04500e10c6bca13d30be301028f4df3e7c4463bf84aeeb1b3944796accf47e53b7e378c2123e32d75acd45aceb296edfff276f81575e451dd7f13d2d13a010ddb1e5bbb1a3a242a2ebcdc9118d214935f42207337ed1dbc5121b5f18061507685204c96e82d89e24a26632e0922ecf21b5a96387d62ed472c8505952f40bc6077c44f6153c0d5211e73ce5f2d9010fa664136b22d41aa7213c85f8036a9477d39e807848e629fd8e05204eb0aafb133e322983cefe2e1abdfe723d5a409dde9314cfd178c2956150c3c2ca060bdd5aee5b3aaaf02ebedea39cd08359d36147d9f5dfe6d82136e7dd039865b014f3f2759818d4263e44ab2e4473c766bd51e3d5116b482394d8d70fa5deed03b4c6f9bb15112469361416ca2f22bdaff71b0c24b183a147ca3f4e2f8bdc5833702e272abf2d5938a9c65352d8fbbb33256a36a10facd287b966505aedc4451d1e8807a319433527f9902052f3d25e5412bf930dbd1c9d0cc854fece4d8c1679c2f64bd29a6e8065b7860be887f8f61283ca498a2028766490fbb62bc824b373f512e62410a10b2dc08fecee8776389848f29dc5868df96974f5d740a00dd55f365f104ee9d5078dd9296763426f63579412978aef06051db496e534dab52678fabeb13578781afeca209ec847743cc996513956e480fac431e4e90b38b75095d2a4ab71c34826e7be2d346aaf9e74150e0cc3852528b33bd5794b2c5aeae6948060c01d13730027c62129464bdc5b24d38a1fdc3a1589a5bbeb89e05bb42250411b0560693526742e94d6acdf04ce60413744afb15d0c57420025addfb8d3b01bfc2b5a621f2fa7ce096e3c66978321713f86b4296c11f7e5e4402b869eb8c688be310dcd7af037224c8a846b3643a89ea4b42467ef653f5af00a7f98d52aa9f4d6c740cb5aca290d7a5a23ab44cb468a628ebbd624f27ede830a38805928ad8768a923b778276876120aafe9ebd3bb8c0cf302a43477304a1c8be8dfb56eb75711b78b954f8f4a4b9489a91074d35a1b1705d722077c3042e4d20eaab5267555f4cb1d124a752385a57954755e0e318797679b5e2cbb4567bc4c4e48ad3af48ab3ec8e80e0cb879d587261d52eed6de74d0216cf2587d836708a648de35f69614f87067101e6e9efebb90c4637027a0623d699a10086e14927e74c61b7e569eb816443f634b3bc446a49969d93bb0c14aee54be583f7adbe9a410e5fc4b6cd5e8de9d90b26b2c72ad53232cc16a643f5725b51bd4e71c3e9648d170d8a5a631df8003b493df89ce3fd1e7bad3d58664695644f459757b530089611a7462e363cb324051ab19d531f51c688a27d16a5b1da0a80568de2af2e15204cdd9320a40e2e34b9b1d142c26b72e1542200431395e2b35ec0b22b927b59e976887f13b459456abdedd0948f4dca1bf7f83df5afc50c766f7f3b9c36584d65fab0b51be943714133536a7de77b08e9cfc642badf15d855daf941acb5232ff2dd40bb6fbff13d14644ca1b52df8d270a370dbd1069678f0713066534a612c77fc9435af77796131d897a71d436751d7a4816903bb1a4c6fa986fa426f7d778081d8b329254530434eb896ea4bfbe39a518c8f7695b8addb062ac985c75802fc538c71a19b45eb020b4ec9e7abd15fd9b98c925248b19e04478d9404473c0aad8e7448cb579d1f32463430327444bb6464a0cc4525825275b8fb7c32da8746cee79825f3524f2c49f3203a3155a9e1f6d1d59a1d40766291b7a1c40eda45b5729c5126ad143b3c692a560ee05c91b7233b29269318259a1c650a0358d94989ed4d8fb7ecf72e9f91bdd26530d3a0b62368de6ff00605f9ba6399ed283d8cca676ccaac4ac64e5b80ec2cfe6a585d3d69ed41353092cc8a476f5e563d548ca1fc1a138f35c010e8d8b3345616a431353392334d87067b656b377b9913cd32d986ab491db1a7eef20ab4e5bb8a76b1884224438b0327a8794afc90df2746513d41959c09ba6e5439c6180855ee806c434e0c04a13b354ae0e2e9f5b8507852cc3e854c7c5b809a9a2f5881a5da6be14b24aef19508a24e83d1f2cc903f6ee72ee3d9152cab256bdecef852a42c316781f0b5cb195168d90d24a2936baa99f196d4fa5ce689e8a4b09662a2ccd3d15a1c1a339b8626a9cbdde258f3bf8a282d4fceec7aa926c4d17c939a79f258b7b7f9c4547378685fe20d2448138ba557bdcffcaddbc60115a5945ef3006d4d50c8c0e356f953fbf5556e375b31d60e0d914c410cbde2e556ea46e52a3d2f894ff68a454527f6adde1193fe3a614eeaaf760dd69abe24356bc97b873c4740a1cf594a13170aa744e3172d419bdca36280ca2aa49e8d90eccbb10dac0dbbc9831402fef441d65bbda9ba5484f4c681dca0dc5084db1e29843a4e75a0385e4fae6b0b8ecadea8badcd3d332f656013c8f2d89c879a3d8647db95485f5579c82cb9afd2cbaf1a0b9669e389394376f2c2aa144ca1a0f9738c4d0e7528aa9c93405b33243c3b61cfd1d18dde2d06069d18a617bc9de887aa69508d80e1c1cf64d4058e8550b1c515e8e709593e56c8c32b8ac152008ab5a8f6593f24bda1dd5f191a1a00a502d4222bfc14fbdebfac0c7fca2f6e8c61a55d1a4f56a9df01c6ea15c8ce951937deb289ce71195282ac34cafcf6e43e5aa7afd7e43e5f433d92d22154395702093f75b2ac85532775a6a6fde4da5c63f8bf6ba6c3728df4c9491813c034d363287e27bf7cb45ff56841e40386d3967d6c6f9187a7283f62a8408f2c54e9cace19ca583d74ba2cd2321d23d3e5cc494b5713e3b01a7d63b63cb963435683273f2229ea70b180443ea9a228172ac62492cc2c55a583419106976e5aaed26c9dc2f7cc1691022be667674666e3591c77e5567e9e29322b62948589bb2c29be3fac26733335bcffb48d90b784e60e528d7771d339abce2d737fe6ab838d252ffc2fbef6f1bad4548b5c65c5a917899ababd0c1eab08e00a451fae6cf20f40dbedbf97cf2dffcde8760aa6affa7f741e7cf5c25a962b342f08d6672a09095b01688ce1c601b65cd0354ae60a81003c27363354211af3630cbf81b2a29c71ee0ea07909c0b468764cdc9458e7edc7554bb1fa94de8d08df11f4df188c73620d45bae332e4ff1dae132a344140a9cf0033bf349d982136bfb860fa6084e5905faa0b54689c1bdcab59ce467f693becdcd1b2ac09058c0c3f87954d5581085d9a581b7b96bd66ced60fa1f2e8a1c4a9bb2ae24af3083dddd5953605ff4cd306ea763a35dd62cb893cb47deeec76446eb6c65bccb20261b17f8495362395ad4e405753c2a90bbd20a04aad32071adae4812f1f79c433ed0f8d5c15c3bf2f3a20b27f76b8ae86a861869cbbe44562f6da9596defc5941f7f65fa6d65b13236d71da6f9ec0878d67cfb185166229d317cbbb74899617d5b87137286b30e5200b1f34647d7053c8503b32659b1d3bf873b85cc4f5a0451551892365a09655489452f81bfb09eab26d50236987f6669c8926610511b0159dd8013b5fec42aaf65d15031ac9ae4470028df72bd4c25e446e87693c1252d4d5039b22ec47eeb92a47f697af3a11ddc0e24b6cebc104df7c84f128563ec65437177ddd6691b9d2cb9fdfd93f06b67cffa4fb2a0c41330a401baaf6c5e5b944f5ca8ed49c5ea163daa7cde0366e73c129be6fe84d6bc5ffb050f64153cf0e006d8c9fa1c8b7b4d907f8ec9e85daf58565513f5ca8bce7a69bf0df7ae9c1be1ab0c7bda05363d7365d1fdffd9325c757f5b56d96929dc33319110a953a4794a68eeeba80ad048c0a85a303c88b5f42fdbfe7ea3b145c631ee52b0689e0e227e28bf602aaeca0b62dcc58021a4c01b7aceb9fb4aaa220c631649c7dc659ac2c41f4547e0fed41955e89c72ebde6599c322f3fba2760b013ed72478e91149e745241cf0c6fccdf9a8fb344d192905ba64c9d6a8ba5abb90bdc8e4c048b0b4893cb7224a6c1af802380f79d5e8789aa11e2a8e63d742982957d2dde4247d8fb514d99453c6fb15268050839d5db239f7ddd854e880eba41b39f8190a52ffe8ac398083ab88cf6d417b0031d2cc1f2ec1e61cba332e06e45ca6f7734c2d1b4f672a40c52e6415216ff2aa6d175123ed2f37418ba7588ff3eae390e028203ac27ebc56c8bd32c30fec87c8f4c3fd369c60591dcd142309a789669b142f3220e26c28bafdba37e8e884ec51695dca0de308b1ea9eba317c708e2bd0942d32198ecd2fa080102a8ce6435b8c4cea3da00e401cfe002e60bbd8944d5656e6e7c399bf8eca6f425e86ef398a89990c2be36ae5ba76192b92dd6f3ca9c281239f6cc915317a321195f1b91c4869d4115ed7a4161bc8157b99bb336a4ce0f3464cbc70d89739d6eee666b627e94f21bda23f7878182ee94f9cfa6fbcfa171be54d96d12c8792cc4c47157149b7c4c63fa8eef35d819e8de4ecb96e034ffcf2363890acb34c9bb90d43d28a03e7f027af565af351f4da0fa0bc059d3b7f9bac7787d1b32286f31a63b029925a55e4cd3c69eb051a05a31de8588286cb2f2ae8688d74ac554f4fc3468b1cbd3e1fe03dcbbb554cc891fcdafec18e6954b97ac70f30b3acf46b192c301bf5a8395c1d86a1d6719c9eaa45ef121ad91fa25333a3424f92936893da3d67503adb76c9bd680f11ffcc9439019a4deda98668eb8ddb9498d1e35022c5d63a517ecb31de2f4f66cadccb825e864a6fbdc962cd10049500b3ba7d6316f072305a4237175b50ad9c1ab7d49737e2ded19486444148ded7555ffd8701d13c47da72c94304c842f009db0115a8a48ded35ff22d7788b6a4bfc1cbfde49670dd1cc160088e7269acb1113586bbb089dfae7320a10f2972053fe8dc726b1f77ff11929030d43ba19bfe0e19e9ffff09a753a00829b15402815798e395dae24de026f37931b6e16f34151e5fa9e1733d6e9efe6441215e6373d57667fe81b7d274ba3baec34ea93653fbc08391af1c7431e6842623539f5766db23b1bee1bc7a6df107883a46f105ee031e086fdb7aea167ae39a631f52674df488ddf0453df6ed934dcc93c6995876532ba67209f3a317db0baace25f29302e7cdbf0d9f68087578c0890efbda3c345f6c2dc4505d8f6cbf7ef73368b928caf4e7507f0ea8069be89cbcbdc46c55c008dac84bf96c9d3dac860421b415fde3399fd31260fff9af2156fc294023a346ba4972cb0867901ca8aac4b907b03e0523d0d20872f43e85b9950fe3aa79bf8537d31c93e0dac64954c4ab1954f64443398c0daeab32682ab0b6c74974b351b12c39f6b543f464956194e359b36dcece13aa4998fc11482ff9b0812cf825cd3acfaf4defd4382cc02500428d426cf2fe48b587205454bf975848dd7eb16f0813fbf1da2b8eeab17a0ab915687b9890f6ff7873981c0a93758557d21d1c0d2cfc16d4979b10e299750e3baaf6af0f80824e30e0fc6be562335912840a02f1c97c24e2a758ccd84efb066214f44a0836c28c6c1bd6567844328567d815cfa7bd30d49a901f2fd69022652302ceb5a089f4cdaf01a1b9525ffe621b539a5a34d71c8c957fc3c09992c85f15eba663bae000848d73961c383d0efa3c7fd0a6588871bc21856d2e6576f95069b4e86a60e3437a802b2934af384e7e096d6a8e33419a13718c7e3b005edcabffc74eec0a5a1f808d8525c43e00a2df80275253a0b0965ec12c4a09b82aaf9fde2c8c81e8ac527f44561d9bcfcdec602d465f97907676256e94cd510702c7a0ba58ca4a9f46c69f7aa616eb5fae577a098e207ad35140f143da00c1d8931b837b2b1a92673f8d227c503aeae08aa9346911839c4561dd89433670adbdfd3222194de12fff92383d1ea8154bbf9ced791ea503bb44d84ce02aeeeae83b6f765a43f5288c44ba799b4414411420c19a5d584e77992fb19af109bf39d8febf783147e16dc25c2e88f7fa0baa7cb259a4714ca67ff63fc76fd2c4ad62af254fdad7b6bcc06b8d232e69b4e466340139ee1c6ea38d3cd53f8fa0324939c1b5ddc4839e6fb0610c02f5947e522546a82ab2df9339ee5c695b6ee142afb7f235bb986fe97d24c434938262ca16ba684caa2794bf9922658ab2609ab5ff59085edb41b4bc36d37b2abbeec9e200a6a589209accb0529e3b98e0cc86649f612e4e51782ea602eb1ab3c17ad161eedb3f394a6ee65ec7c0d14cef6a620f67ad4be55124c76e7bfad3c3b18a775e4eb68ae75b092bea421a0a94f2e69b409a4170576f6b8a02c8add825386e00c43a7ac238b6e0a54c91c99a78953466656f081999507b1383115f1a15903bb37b82453f1cd33bdc242eaf880239d84c745f2d1435d19afbfc223c3956a361d61cdf085114bc2044363378b99b9bb59867b89a1d1879cdc335ff6f99b3f63de775bf683c7cecb87bdf1c5039125eda5ed974ce10804d5653ceb4bc34594efa085c69614f0b02e1659f8070de788c194d718ab97a06c5f2b9162678ce0aa78c85a067d18d48d804f13d620b5b9e398385ca5b69e0a6399ef04861d2dfa8bfa88500a57649c0413f31dd7350fa87312c1917051356ac89dd191064eb075990489838340ecbd69beb87ca66b502e9ee3bb0c7f684548aad223f10980825d07ba1772fcebb4d60d4769eda6fff2e80f5e7dd14d4cc204d165b474cc554e49479599d105c16b1b4b68c7a3ec327fece996acc80f2893e4c5ee54e2d45b231e84b08dbd4fe5c61290713cca124cd57d31cfaed53d0eb60ac7f2baa6624de7e98335ce45efad7055f11df14054e2cff866403169ec3689364fc272415c1771fb5161092f844a97ef64b70e30121a6b9ea94e951af0d1a0133825b5f3a13191e945abebc3b1305ad11157ecfca99ff0e0d2b6b41ea418154af72519d7a03303f89e321806c6302708fbeaf96c56ec5ce2c6c7ce6a488fd394c822a46f25ef98008dfc30e2bf3e76748f989388455e0670a0f91400aca8d203c5f1932138cb77e22f4424438519d6ebb198702875191c5d3282178fd3b42596cca737f780840b398a15985c3014983516987405837410d41568d4414e7664826d5d8bf321273a0fedf6253f174ddabff2e2c34483f218a6a50944fe2f444600913366a518709b0a7f1fcd4c29e12e983d39d0f0960926953b49954d254560cf7a23135db63c092646d0feb83803e3a8a79179ffd539611f26aaf519d4d1560f3395045b4c96405056fcbeec11f11418c8e4aa1720717c500e42e48603ccab718904ce2edc0ae2e95a07bef15306752d2d418256ed4b86f13386ffc3a8aeaeb8fb5ebf198dfa75ffce803a30b551ece497529f383ea66e3140740dd6e9394d263f3211518627e21363ca3083c2704501a40b4abfa2ac900b402b6590c21a03e4fc5721fa242975a0848cecc738685f97eb319d79c1deda17736a1252bf19ac43979cd28c91539234572f03a161e51ca2802015739b300cf0cd33548f48c79f35ea9a53625760203a4a4df1a0a6067a57b7bf4ef994670792453d6731a6be1e6fd3d44f23e31bd321d3536c8bb0f6b04bec86941ec9fd1fc3c3012571aae9adfb75c4280392ad7fdcbac053427cdef9d0b4e459dc647056a93b3b78dbb158cf186ffda873d7dc47239e9ac696113821eb62ca5d40ae4b2506c82dcc7b51088f9af333f9a63242e085eb04b7196b028f973a7f8129514b0f86ddb3a9a492cf1ba135befd09c53577ba148e196b93dfd670a1a4a803119b0035657cddc38564966e255b9c5a8ed427fad8ef3031dc59a0a9912e0e2839f280a5c0384e6578d6b692012caa285834798044952d765e46e4876b063ab385006d7011e528a415c5b0e4161877df3347599202be2e8b5c08e2e5542587db79ee35fb580c86f47efd8f7fe6a7798745ad9fdfe072c064f96e9170b2ca742b9c79b34726966573be5212a8df512e3e1fe283bbc561fc88a40d2f5a2a6e730d800bc908359ae87bb7a34a2e417c5952b725603db32bed41981f5543c159a730b95c37b9ebac2c0662667261170e0e503464d58289f45c56a27075719b7adca6c0d736d2dd0d7f1460e0290b57bb3b387be4fefe52f614fd18f145e6af0613e0b53236a1efa9a352ed5979edf8e4ad09af94c467eceae8ed56dc63d2843521bdf058e4a34701e37800bbeae4a3dbb6cbb49dc12d145b6a3ad128b7fc240ce1bb97de526f626799cbb7d958407562543b12489fef33dcd8ebf47a4654dd4932f8af367fc54917be833542779a47d78753705e66d37ad538c2e464c50f1570517bd649c706924a1ff2d5cb95f459965d3cfa8ccc0c886c412b07144998061a57649041147d72de68a581f3b6c22206eb11055a868363ff4b0dd630c21ff796a92a056a841d73f2327779647516b2b1dd2e8c4d304a349a317b58b359f3fdc2314fe9630f8f32f943e462dc5429430eb36885f2eacd4520b49790b66703830467ca92d16f731d688499ed66f99d294de91bb1c3065e450f1e3dbb76ac6f8e275d74db1319137e921c85db5a06034344ff9055e1569a9bf79b2fbd97ee5d2712dddc8daded6389986874e2a6c813203332fa8cfee62ca44b1a18112d8b90202405edccfe3ea21495f4b3ab642ae183359c487c37e5e0f87b8f8a03893d76b4cbfb218f01ae300463e661b87cb6d82511c3e9479a6721611d36e52e878ebbc3c13f7e0fca4281f18729cca2047fcc557dd8ccc5042b8c212aa56c2e9f1701c415f7a730ef748b262e596f74940c5fcad3e5587e6aa0c11563135c22a12b3ec4fbfd91e80eaea378b8a03006bf29478fb34ef111c88cdadde1ab0ed82db3b576205a32804c554368a8441b345d142641429bb2d0e68b420f96ece1f26ad1113c7f73b75522253ec03010421f09397c20d39fd55ad800c0f66d057195995141c20ff3bbab5b297ebe602cb4bfa9aab8dde5f6b7251fb4522aaf4b535ae7ca8586ae19029abc4f72b3cc4c3ecfc89a1c81eda1d40c67c01639cff0a2b5d14dfae451fe2eb9d605de7bc3ee95486b4f77dd4329e5888a116db3d6d31dd14992bb1271fe19aa340d6ca7e7b1f15e7dab9138f0fe0dde525d9a57e83a44a359b96ec0812008e9479187465d5e96f67aaa94512d05979d3dda271afe319d1d7909e69b189c23d949d5e1cfc7f9325b7d19ec40e570c0cc10bea404b50f0372e7e0c004f23a182091a6ed42c11dbe3d8694c9d72fa1ef5ddc8ea72a46bcfbbb0c310bbaf09b2cdbff6844f820907f80347eed6161ef3ed89a4bf111e6103bbf942ffb2324ef6bae598348e1ac3afe26b797c4b41440abfd8083f908c9f147f42de63b0aee7da93228224a96b04fea5a80bbc9f586553c4ce54cae0b09dcb483bd1e42fd644381f72ca71bd61a3fabdfdfeb619ec63cbb48c24db87bd784a3e2a16b3cc5e20b2986855b9588bf9d24dfdc6e0ab48894f185d89b10369147f153743540e5dbeb4dcceed0ff87911a562da968de1a352fd72e4e62406f7b22729c36f8e3d7d2116f0f36675839eb98328cffa75bc433a72882da3bbd89061b3462394a834045e3fabe386581953ea4582943f834bd22d3e6c31af04cdc888ed5370c195c6a737da5a2624c7d7e5b6271d4b2d07ce13e13d68c707b35c63a42578301025e3f3898f34a2d662f49dccfccd04c3a353a854c286263696d86b683eb25b88e30115316ab317a22f70c69e988bf419bf7d4176de91ee22a52bae1b39a279985198c1ca7721d7f87734e5b8b934ac86f9b5fec79a5489ea541a9a05b49686de1917e5eef402966c6147cdd7e8effc3029a781bb1d34b5880eba7a621a7001636880d0efe369c4baef6b0dc41101e14d13274934a9473510ebf2488bfcc485edd5d05fb3114028fde5f4702ff40ba149cc0465866675e0cfe5a4717b1058229721ac951a106824d8e68bca871b2f29a50dd8029200dca49b6409861c16357a44c04fe483ed6886eb33e2fc947b7fda05cf3f321dbc0af5569f85b76df890e75c81e7e4c3f5bdb887c02ac9bfe4c4c63918570d3c803199799f35cefd044d30be3b3109b5783e2b864ff1f98b6add95a26b87b5cb4258442966cf812fab8bcfbd758f67003ad54c473228c8691d11aac7bd72141729984fd38486cef608de14825f308114724c826fd81db62c1ea5a9f13a2b104613f0baa1fadfb6b3c77093f1601aad305e021203a6903ba569c7fb92a8d18d462da86c6ba81ed0ac221912c70a513c73b606b467ffa428033936abcc41a047aeee21ba761322017cbd5c4f13cd94c80d02cdd7fa0ebe1dd07cb7732db37cb02f8c0b97d29e359c6c2f144054413cfda1922af1dda158807c152f222b277489622cf262f1ba8d9a3d21c8e89af25cb7d31b5933cae8325b226f6b059603bae57424e2d0dc5ed3e794bf2947ddfb5fbf4a823acafc7a4cdab60e7466e6e17d0c66a64f2bbcb1e8c7b62a41a1286f15872559067172d57d67e005a5147322ecb11fa969e603cd94cbc849302e1cd12472dbf29238653c34978518f28d086c99e1cba164aa6696b79977018b70bbf09f0dd13858b8f4d483152639ac335c82ef0b36e8bee2637e3d53a4291f2f0cf428a5daa7ed7959783c3d6b2a60957685f79ee6b3d8e96bd549be590789dc3a390fe23cce2d3ee572a57da441cf20058816c8b4d45e4199c48cfa5b54d284bc8e3e497580fcdb5cf8f1268c6c2ae5200264763626d459a96e6879b44b55cab771576f38727b836dae0e7194b8c421662524f91faa35a1aca95e1c1a2d7ddd124ffd85f628af4e940d84a5cffafae7e79201969361e56bfd58eacf90d5233ea08109699b6e0b6c5f9e398d68a495935bfbd259483e6844226937019ccd67b6cc8072b1c0a7cad1bc146c027f38e55216fe4a9d19fcf09fed71b5c385c8b9de67e16ebc9c2de8b6246ed188fcf605aeaaf8497438b2a6a391fab0e9a02dc6a87699b34236a24c829bfca86fb81d8ed5b5f86a46225e579c1fe23a63e684e8883830c24135317f195dda1e8a39c6b0ded297873a85052f1daaf2b63d31c20e44da1674cd00cdb8093d82dbb0f948a1beb85bd2918f14bd17e48d99eb71e3165bc1e528df6d043bc7b6f18225d31d57f773dcb22bb4863237850d5f12c3111b1a611bc472d30fc7f7d3de5607e9a555e9758e0a646f823ef0843f464e2ce422710315e6f5ffa5f5459f71c26a844714da65e661c381314cbebc9195ad9a5125cb4fc83a5f5490c0ed00d075f98ea7ae38a549897c0d55f5a7b003d345749f2a42c4a46e7e099b1fd7957c82afb18b5bb3b4c2ab129fb13c54809dacfab04a4c07e8e760fe40f66ba610b63672045447c977e6b6221f614cac67278c62e408ec49b35cae4d1ede0ea61168b4ee5dfc7c31f4457a5607269afdf5e2dbaa121dbdd8771ca68b5d40e69774b794c7fc3b4d01ad304042c164938e6f64e943ffccf35eddb5d1b26b9f4fb5f13e786dcec7d82d9af4664cd7cf62592024579ff5383fb813baa42f112bd74a6a81f6367404521d02a1c6a08d685518192f4c0f7cd84dfc475cd61a9689f800f4846c780f39d7cbbc638fc2224563f19199f555a834442337e9d4d8360b6b6fcaed4e786c3e50e3fad011159dd6a844355736ee4ea1131d5c5d2e4e5a6b425bc6dc42cd1c4707c07f8a46d199564295997481764441b3265feb8537ce5e55ff6153aa090068f3b0107489598286c50fa7e8d9ba142d3f755dab590024a451b34220e938bbb0f2cde8bfeb1d3d7b76b284b25872093b5b70d411a8ab1c2b60839c8d34b92f25523461b486b5f5716a0f9093f02a61a4104698b3d1c3355d37f22996bcf073b5e067087479aa86d8542e3f6d8867bda604ab78fadf6d8095965d6606f054f12ec5fbc644b2c647e227369e0462d5c733e272660cde565a5a6d7b27078d6b93cdb93bd1a482a4bf71551f6a332e97defc146eae744a27ae96beb9a01017a4c2283ed88de3350f1f30f69a41ceb6b44713c387d920d982a3f8286b8ded3860848f1ec0bf61e316335d06945d2f3ad7f8e8035e4e90ed133eb00951467c0c372cea21ebdd2088888c128fc5c8c38d44c855483a56968408191d145f9f2c34dfa0268220c718e2a0901ecaca89452b0f2614527bfc5c5615bf5de73c50c85826c9eba0977c761885c242211fb9c58847bc27c9a38e208642b209af444bf0cba023277726fc168d421ae37131ef777a3f45523242d842243b9f87ff252e06f396fb13920505ce419442cf822442ba7e3268b59567be01f9deb67260af9a228de73a159b9459e707a93c01be2706e402b9f881286401437af82b87dd3a41a2eea3ec2499552e8955d514ad484284a0427fa12cf30dcaddf37322ad3eea335c452a266451a4b16fd057e5fbc638e4fe096191c0651142786f827e214b7eaa3401cc17107235e20288f442d9080d01426d254d3e2625401ab07f547f70cd300790fde171fadcb0882762f6e42aab3425d5679a0d6921d0a2434cdab06a6ff68bf45d66face9456d43d2eb2193f9966b24c04975799be666d348f999211e8bc923c2027802928fac096355235e12e12e6165b2e00b2778d931fdb68dfb1392b2f5471ddcca0cc64f699813706e5ef7f1b9c3318f78381aa2d423e0a84a857203e44b605a43a612de244d8d5bd1e31e6fc2697aa5f47a32ae116b645fd654fd39c5bbe2b63d08672431fabff520e9a4c09ee31368a769a79b2851b3062f02203a90bef61e8b1f06e4958f523c628ca17843bbca7fcc6312f1426d04783b50d8994469e8a8fa395cd3479cec4745ab2f9c6a5314b62ab434846da7e1fcbcb7ebdc24a074339eaf21d9531cbd219000d3bd8d4b2ab3061f93a87750b3cc0a38b102c046739099280604368ddc7c8b0ee2d15c0b9ddb6efb0c878253dbf373a439cfd6fb682325504914b1a74d70c7e8cefc8c6cf2873d2ba8254d62c8f4b8befe216c5dd7850a3c4811e036778256818ba02e076ec5cbaf8ee605494d2ebbce16d038bc3ce633e2c10aff6f4e285f187283aa011f948d6075d5d2704c92dee484a53cf32b0ba14cb9b6cd8c3c8939371f264b692e4b2953d5140292d97ece8b96aaf6508ec038344dd93ab115d039bb8faa1a8e9a203dc4affceafa1b71d2523dba24acd57322922f7350dd1ee0441941e6547c23c38fbb1bb8800353f0dac49c1a447f6368bdbeb5bf0c299042669526bdd1f60b6b3e2d48973d07b3bdbef65e25c4e14ac37db4d5ccf7f0cc31b3040df05dd37150d7bb1aae8d1afa8cdc3fcd3d038d6a32da85d0e6220e0bab1de60e4fa6f185b9349affd14a6515ea734dfb03c81dfd9b4a460cf6101146fd6abec1626c751edfdd1fbf4f1d4be376b657d09529b6cb1d57bbd8a54be166ce472af2e1f0dd0442ecaba4ef3bf1d82ef020f0e901778982040c22382bcf0420bccf33c1c88a9fb9a7e5d4193ba68d8b03c8ce0b1e1d869b32b91e41b1bdb00df05569e13340c9093806756c047fa1f42abd6712ca4d7fa22221d998e9952169486915052a2c5bfbfcd4e5b608a4beef99b1898fc5cbec514fdf843c33e3f2196c1aa443c4143771ead58b089e8c262e00fed1ac3e4893deb0cfa603aee71550b58fc9bfe667f8f68157a2e8f612a44e31c473c1ea89b0e52c4b69c7c6c692a61e4878f109c736245c46f201a3c9c173c5aee0815075303b2d39569561dd24d04056e9f0787053a208e672b7d26d3a6a36c3959c6fde902fecb61e697bace526e4456817ddd3444f82b50024bd5f7c4322e1450c201662c6854258d2f16128d136e0aa793eeaff0dd8be409e19df25f5a319f4a05d9790661f7b67023b150c5670be3494a020c47fcbd131a72f6692a27b54cab8779bd9705bd1e336449c85a826960c28400af6b89425eb48659898b65b1210daa627f7001d85f4493ab111e836c11c10f248d3063b1b9953fa380b445da1c684b8c461b0172a0e3d72cc28382cfd0c81d25f50f13e52caba9e47dc469b3835088a866d660a56df2bd787f2163bfaca046aa0ad88954387b9626069a8d4803451de83a6545c9adeff1934988ee0a0e098a723600d6840b3840cbaeaffdcc57d9d5dcd7983d64e1e6878d06842e40cb6779c6fedf22016c0fc6e20540db42ca629aaa6a879401612b58fdd133b914ed7203fd1efeef7de5d8bd877bb5a41a311d367a9fb51b822270cf892a83c0c9f548f08140072ba38420f09123a0892fb4dddba812d3134eb9bd5a839d9ad28cfb5d703a328d147c63beb1068d78bd54b0870092a2c7772ceea8623b6682c1e31e439f87eee324f2caf29177a05402d0d7e0a78f12da9088142333202cf0488eff6e03b2553438f4d6918e9f58e6f414fdb545892066377acb1e60fbbbc3c8d5b3c3f2e99bb96836782e21eef501394a84bc945f2c4ae2549e19687ac36c2952c862dddaf892c921cfc905b7ff2575581c9469d39ed16bdc232257a27e70e2acce0f269fc311ec70d05045c2378117ad2ebab596671811961676a08d11b585c8d43148181a3355e61f18c1cbc435578257e0b3eab14cb13b3401b2f2bd81ffb48b23f0134582f10d89300a62d7ed8712c44b8f0dbc4c4f3bc821021ac8f71fc7e906b8acd55a0a7cc7ca6eb5e1d95eaaf2842286d7d9108be46db288b323a6737646b8546d045636e1d4d626427ea61c27eb38a985445b50e65223b4ed36bc7f39cb37d1dac578c4c8fa322d9b194834434cb506e1399c7ac4ef445106abf21f85fd97eafa7f4556fcc006e20ebcc0281be4a13baf1564e72d323feb20118e3f5eb8cca518d3a57dd811d64c9c30a36ac44199769663aea4069668490d44408cd20ac3c26562c1c29447c75c12d02e388434c7972fadaa66be62efb1ab1a699ad4d03a60379848528723e3ff0fb327702d9c80fa983d41a079499c31a8c690056d9722484663a14a9d36293977bf39bf70e2441a662c591a71e46f78c381cfd2de3ef5935c01b555d3455e97d5216d5b2efb3557fa07fc1d2dd4607b5073fd671af5adfe486453c00c934b45a653b591215f2733ee7ac36538ae8a1fb111bcd22a4a5b6f502659d03555a23801c9722c74e89f1ec9dd492b516494e6bb47cba9f5d1e6853bfcfda81b8c44be6337805920e490e21f675b67d47b04752dcdcef50d04a89a17c2fca4da806423a2012588c116c1abb08a51ce70d88a2ff9702c1c8be372afe09aaf238329a81520b2a43b8018fc41b3e00c6f1fe94ea534a872d210c20e5213c5af4c8221f37731b93743bf8067f65b49a904228dc9a166b3fc04a0fa5f81c71ebadf8cbaec98fed8a35e30f99e6b2ccb456b6abb8bdd5ea7f391b19eafa68d8ca8cc557edec8c1800195cef72f90b36c5d7760e2bf82bde467222de1e5f9496310b6d208c7abed17cfe9db0a7c755a1f52aeda70848af5c6bb0008266a9e3a519bc1fd0ac50544b28296a350131fc31b727e3f4a3d60fa22a598ae7cec2b5d586eff029b3d1f0cf8eb76c79488603020692f9173b80d31cbd456f10462332c081531c3560c56a3dc25fa4b0bf932e07d73759cf7771e4a8552e3f615b98d1c408345b11099d42a38c3cc7f6f0173d3dd13e25cf10eaf96194999636887450ae20ff2edacee26084671e19a049fd5005d213c6c0a15c6bae30401715a260c3215b8619b8135d0eda888541fd5c09bb285c4eefc60b17b333db87354d41b839f1d31dd0bb7b54c030eb3f8463593b7999bc8d168176f0bf78cb6267fe5f8a222ad689e9599df9f1d45ffacd173cf36e6dd6031c9a4efb2891f3dab8b675a20be5aec4bc14f270fcf89128bc13812411b7dca423311c9ab8c6e4cb27da0450dd5a5eba001580fa66f1afde954138c7fe8305175d301d0c2ea1402ed78703611d4560efcf26ef838f2cea590c82bfde75bfe26d2c1bd94b23e27937bce9b3e4f74c403933afc48cb4a3f85fdf6ae564f54fd79a900ddc2b6d3c8b67807dbcf17c9460b565c0dd23b219083b101c451349eae2bb3975d45ca715b0ca85d38fc75a9f19db46daf1b12c4195c08e81afa4f39ed4b3325b61990e62e0cedd972ce46b2b58044753893fdd28d9e2b8b6677ac7886b3de4d85941cc2a7ec2ea650e3b46e8fc54783ec49c52843793f86b3c3e4bcb6843bfc1ceeec1571a06dfa0127c93cec773a63d60cd50318f16347571e48000214c07d17a0ab0e54f36e685b37daba0ac0546c54cef83cc7397c460ff72bf6a5d31005c8db6fcbd12303fe2cf6c5645e4bed35eed3558d9403289ba7041b03787a4dae2760c865b3b1d1441ddf46fc99b5f7cf0e4101b706cb8fb193bdd3819fbd42f1fcbcc0b68f5a5d062f7dfd6063c4ce6ae6828fbfe09a6f512e00d4ab5b65107f616182b27f63d73acc59b9fbd5ea578ade288337313dc2dd696da842ef81dd00f29bd4f9fc4d26b38a4fef4fc6391ab60ccd8d0e5998be193de74c12b796a9b6d18b455fa45ba7f0b3cce67cdd72c23ddd0f0fc618a23e3ee965482d8d8513e6a4652a6f801e1f7351a9fc5ab4b841ff314f91d5e4a3ab3dbd298f32b5d0ef4d8ffaa8c995f3c4c4d966ef9c01f5cd0a4c4f0684351f944633b767625fb780d549612508b87c9847adccf7907387509483c79d21fdc0dc02e776d933922ef7f59988601a8d21e77f713b07a9dc1a2f2131f46b57d26d3feb8ef76cd346f01094b4b5cd96138a466beb2c0208bf691b68cfd75f5f4b21959ec984fbf7ae52a1bd1effc786972d10f83cbbc54d57cf21504b49fbc4d42a34edabc49c1605c14943e5507c2ca491fb1316610188e70242a6dc1fdf08440a78ae2c5ea5872e61c957f51146ce69874169d5e7d07a4a7c29198b5bdfa80c0a90461c3720add16cd9781af5bb2689f79187b4e6097d8cc49085f1da8540742460e8de7a21ccace49e08d3526c21fb36d308da2a08052dbdc2116f91939a1d12288c6851410c59c877f72af6812cac179ad7ae34801ab05b79046f176420512204ecb6b63fef92259411e5ec11d80c47c0e4552353940d861347cf8edb842970d754ff98d11253a9c72564ca642a63db99e55089518702b3f95646880347e15efb6a6f354a864064ee3514ab19676726a272fd6a272f0c7cc47990d1af77603fd14fa44129ba9991c689e424f6d6598628b68586ac25c9a4641fc8533740e263e7d602b73bea0e191931f88a2c5c94325c438cf50a557e1a488179f8b3c4bb5509d29b0bae1fcd2506fca54e8b220ccfb72f17b04b8654c18e4885673652696b8faf34eb56488c0576e0ab80d010ae6571ba2dad8f9e8904b7102dd6d57828a1f6ce09415ac3c21f2125cf3293db5acc72b49ca20bebac32a0586203560d98aae8a1b46205d9e9b76a610ad4d8787e4e79cb138f0f7cf0149349384dc64ff0e015bea68467afb268f9ff18d6e1b7382b3323fcacf5e78f41f9b19c6737f432711a22ba1783c5c34d377e471ee4817e0c4acedd0cd85bea28922a660239f146aeb1859c1634e694fada86a7a6568c368e49932ebff31b1cf81d9d40f130b606a020ef6dc8e95a1a2a935979c64e65890c6b16010b20a8b3e20e4650bd4aae2cdf5240bad4dfa1fe84efcd0f726055d96c8c4bc216e1a45bc8084af1f811002641f42ee4e2ec3bc84ea74e162f5d6533a47b89229ac6e09fc6bddbe1d410d216ce9a401214cd583531da5a7e3efd7c5fe08d18cdfb2ba14cf7241b8c964dc34f1b47e8872b371b3faaf31ffef8f41113f4ffc876e5ac891470c8c2d159818ad5e490d174c4688cdae5c95821ccd9fa07229f0dd9f13959b65260f86eb91ae9aa14fae9d18974f272b9f89b6ad835623355aaa05c7dd79c571d29a30364348fdf895f6a6866a65a8bebfc55d9efc177dc2e82f2f1de098bb0566f45cfbaff6765cdaff7ffb1199e18890ada3701c4e5bb3ebe925ea5f9461808370e1b163a3a9b48a7cdc76856b860221b4e8ed6f4b875238b554f8ec982571ac1335ebe2413303cf41f57c76718c7c7d4ded4a4e5549b151c13dc1d36b2bc74998014407810011357766eb264d132dfe06af05138199ee399ccee02f48540e95eae69eb702d3d74f7aa96ec9b8c466072d98e3604cb1ad6ab713348c66a4ccf2a52e1c0fe1c00b1a03c7adfe02839b382c29d51d623d201202bdaa8eeef0ca9682f435edb3838c39609435156b49d82e9c444c12f60d9a23d4848bd0b932824509342d7f78d8653bfdeadbcb7e02447c808707b7576c23ee8dbfb55672aaf9e136de7719f27f3c5c63a11809ad930437855cd6ef83b74da70cf10292f05be65359c3702afbf13f5625d896268e52d3cf191d4ff4b3488506fc49b8fa72048bf263c5a6348d69bcec9bb1a20c491e7089174cbd7a38a00514c5565c86f7f0c774039c536054790c32edd85c9e0aac1735847ddc235f49a5aa68fef2295ab1dfd659a8ca80b4a56eec5bf08ce16cb0d47caad8da635d386c776ae875cd731dbac15eb1e8dc17b7da095eba6eeba55c48a74689ab25e7c41b97143add5a0d934e6ff12e84d5ac8e6c79f2c0afcdbd9ea899ce8af4101b54f9082f3ac394211dfc530de7898706d64aede9084c908717399dfcb8fdb70cedb682a8c661555837d8793f7e9d85d6394988d25eea07a4dffa0341a3526f2cc14e487b102aa2470c82ba4e7f4eba0eab51fdba2a0840879ef366e3b300b7bc7d3de76c7401b42f6e09a6bdeb78812df3a9d8ecf6fa02442bed2866c25d9b6ed64f13d4a9221a46e3dcee0f2f74ba1f55e897a1d32878ba78db1748feb48201812555ad15ad4d76534de21cf2fcf0711428a97a1783056d1396d4a695d319608e60411df5860e8c5b404a269519b333606104b0ea8d85e2316bcb9593746950eaa2b0607ef00b2d5169d6ca60c305679103c914cb3d1be50b3743661a94a7b18f5dca62ecf960afa426371c24ee8849de8f315a852d04d3095ab177a83e1ff46d6a02faeec3be8c62939ed03f3aa682196d38f029a396bcfb0423ff5092521a92e4e1e7dfab52978c48c48da881cca14bd4953fc6b021a1e210ca0af4a4a223a1543ae57864e9fe8806f611814ac8c4ea624f3d6d75a14289c641d374e188d9a34dacf4b742fe2cffd8c4574693e99aa251bcf27a9ce41a7fdbc7b334deb93d430af0b72a80e7000f8674a398bd4f95ccf472143869194278cd0e5be9f56eed7cc9cebc2d841891f89564d46563be755a448a3aacd0037cb616a8dd10b24e169d05e5be5842e332d8d5b92e87ac6d0a5b8b84b077b78e39182294f7c1afb49b722a8a93fe9fd208ebac80598a3f8aaf4c221c6d9886401aa2217c4be5cc1238257fca291f915a111365a8a3139c67e1f73f6063d9ca1b3e34a98bb58337aa604b251dbef3de15164aac81109da36e4028e583eab5daf2b850afb443441a75c9f4ef970a1d486e9d16942860614ff27693af5b473a75247f0d52fc06352e4a8a6b2837a8fe865510fcdda51266f8eff786992036c2d24d0c5eaa508af0c410c1b6100e37284afe2d0df3ef7c8dbb9b012953553e93c0c6f7bd92632031645e675e1db90518ff8e2d06f072c736ada137925b6e59515b19d0a759b9d5208da596a0588803f334525287c2e049d066cb277603770504a682448127f0a4f81e6bb50164aebe1a6de0fb1023a71f374a929b58bd6f9f00f7ce6d55caea523f2d1c429fcf52c49691fb8cdd79f2a19ff4f89b7fd790400f0b2d6a8d7f3a1817e068caafdfb7a98614d1be4fde8c143bb69ddb38cf41df3a5990b79530a337f957b92fe5055160fc1334f148c3a247bd3da6081f67aa821db4e8112bbc478de9c708dad5101fad4f7750d055bc6b37ff8723a11f32e3b59085a22039a8344d9f9ae29ce84e46f68207b0d02968ccf9b2dbc889693959ec8bbf9eb16916cf6d9941787700b75e444db76e8a4725335bada0a4d180f36d3cbfbee436e153dd92c367c0d55d62b768b91e53aaa4b20dae83480a4971dbc928dc5902a60cc89f246a2d89a31a7cbc0ba2afe46e0ee988663c5c1b9e308fab18e0b7e02647dbcd6b0dfca2b5d3b673bcea994069c9beb816e5f09310f35a199d5602e110a9c9ab7f46b12a5df2f17017b76312455de820da2fe62420e694747221c4a0979fce44a6128887845e86c868c7f903a8e59c0f018910630da8a10e16fa4319ef47f813e4a303fc5ace31eb94da5a68398f611ed62d2dbce2fbd41e77cc7884904ca4957ec74e85e49c4847dab6d0361430e9f9705c9b76e01a514a09297e77302c30327297402413304133f694568ed47074d27f7a8c0c06d1c79f94374c9ee61d44f5d1be9a8dca5a9256013827697258a47fb4782a4d99c06101198060cd7b4fd0be1da85c4db033da483c653238e25c482635f420c106bdae2a4fc9a8c1502f022df15678e6b2d4d3f1e9b37861f011f474404023ef87ceae6e886494cc143b10e64c495bd972bdd52b5968fcc02df664b609b874a69898d6ef88b8e136a220a3160a5287e16280bcd303fb0e5dd0057efd58138150abeac958ebbd9ecf685b925c7a712596cab1332c956a7890315862a96d63fadaf5fe8b560575a341b9ae100d1b62bce0ac7760517b8cb5b48c886f01633245104c3837c5db335b6e664cbb8d5b547393518f7d605b3544a5fc3418c711f249c2d2ce880b2914a4725a1883fa9a5d4198a9164dc75595c5021e9f1b8b0ea76434597e05a043725a18403cd81be001e233477a897dd82d241449411ef6ba1a244fd84b30adef1b7379530af2525ec697b2c7e7d06278554e954035dd7deee9c6a768fcbf4d62df4b910cb0f4b0be29a539864babb897bf4c9b0ee218d1948c468b53751448cd8ab647680b6051da04cf3963f1d22345d0311b6bad94c52e378f9b09964698d63486c7e23c149d8e9f8886cc3893f249201d81fa6624b05f3a35c028ca20fac12b89b25458088f843f1916e5b608b82ed240956bb08fc1db575dad780ff4488812010ca84e5adecc6cf54891084b7b8cf42d2016c491cfe19b749a58b1fb797bf00b44f88c46cb2285d9d0558b76c334c68c3de1cbd614467a12b029962f880a36d2c1468e54f76e2be5f0e9233f5a85e76e341588b715cd42c81129309b906c853e677da09450985309692e03e1710b33cd52e0be1d9f86f1121b6c2079b88f3d613da6fa0755fa53246cefcc818a4519249dda550e4b45e6498ce18110a209da520b80f5b853fcb674489f18b091a61530002eb8a45ace77c867bee8718d143d4ab1b6f46eb6a60a50a4a45e673fc4729614f9e4ec783b95716fafbf67f5a2603c792d536471dec6dda9308a9874ec503b5828abe1196b053c9172fc8c4db2e8b1efc9f910da6983a606f331e3cb0738028a053534dfa56c4c8bccc8be7e4a0cd3256bd247a437ffa0c4c3297c6a1f099d63595d2d5de62b550c731ba4c26ca13233b445eacae2b81bea6a8e893130ef0deb4d8cbb6e2cc3c51d113d14f3f179244ba02b08a1e68bf5f695ca3dd63f5233bbfab094f7a41a3523cdd0fc9a6a6de92cf9382f8d2a42aadfb7f0e3ca27a7ba97bae156d2ec52f54be19e6b1b439de1f6a7918742fe753e32d91fba5c4442c407a06ae840330650f5b82edea946ed90c5e9616e46216b08dc5842f32a7b1426dabbaedd28a2627ee9efe8f19816387699d9d8ff053f485cb08e65bfcd72bb89268ca14a809e1fd407a15e5431550f01bc1b3e4263fbed75a2703255b58f49156e1d2be884089a3ebbc53c6400c4b965362a850cdb7e6a57f21185c50a992c45b17cdbfbdd0b1863d346e9804f4d6ff3f59e44feb02977085cd575700cf78e8a20ae9931067f48de92522b2765da08a255bb5fd7281a9418da4a4051fc68f49deb77eb6de1bf759dc6c2da97d787c257868365779356c368249adbe39531b3c40fef7f9bf36939a0b3263b1ba3e8722b32595989757cda311f0c49d90c40f0535160b98407a26512dc64e94c9afdc3be6131e520c0f06cb99b6df70da155232bc1c0fbb604a9716e39d8fe8beb01f1bdbd50d222d2d4466409f50afc9e3c0e00a37fd205ee9d1f27deaefa603bb3f0f97f80607da80a2aa9f2a203a3ac3d74499a738f3a4b9f409ff3cc56d56a0f5eed2d6e3866bf8569f9c5309b074c52a3a96b1e4f890af8552e787e46ce80bad97d4e14714386848f832cde2d759e30cedfb350d951443d3857f30edc035dd73de0ba34f1fae0da0e54ea979051edc1ac07dbdfccab4aa824c5831de903cceb0b4c69629991bd9c8336dae28f746b6228d93057981cd12557a5b38f877496521d16dffb11269d9544a89f6c975fcf6372a3093b2990ff4ad3c50a9bfcd61ce929556d745b63b9046010347b7499d2176f37313800b6ffb713526294fe3055ef683f6a214aa52b1c9926160457f926a1c24b21401a47b6cd5a332240249d5c72787ca7fda01d211f45398623092ccbfc7486264ef719315b2fbc8801b898391860b63e36223ac6200278848ba6be0c0be5feb788cf15ee46dbf30fec60c77f3e8e0838f2a84472e69f3bf34c3f34827512ea3bc2f690c71d6ec3e3e21851ddf4e41fcf55bf9cc8045208334a590c2951127d97ccf035fafce5ccef10085731324c0a4004a8ef0862cc62797e421d3836e0deace96fc17684d57b72e4031f08609ea5771920cf5778f0e7e05569ca97b0a84a4a88a58bee7d71dffee77ff385e80dbc9c5f659677c7f21927145a2cc76552a669f65f23ae3df1b61cce02d5ff04601c345aa6a0f04c5e5d71dcde32e59832f8d1142321ad446d21ea7238e44f4c527558cff05e0f19dbacb03f497fb13499e1bd34a4c98e2a64bddc4c64e11037f5bbd42e99ffeec237c5845c01df2507524c977c0aa8a58eff028f2a08a64bb0b8d1281919884c15be8292e0a195e9c183e53694a978964fe4cc90b3f69d30ff493e80c6bf72e261257d69153c2c2dc5f4d033dab59ad08c78e7c03ae8d1e3ee2290ecd24cf7ef66e404b36e34517df2cf0d88a374431c06cb974629c54aae8b6cbe77463aaff690dfb96a35c643dc1734a1c6626a7fb968576757210f12442cd48a19071b7b7da1095f6b49823582f700c531436a5487a4a48b36b888a9df493a9d84939e17540e48110c12a9d4750bd3c8e7e1d80dd4484687421ed43182494eec3b22f5ac2a83081266b1a74dc2743bdadb857f4bedfed1dbd927070600ee54b8d58ec04b1d12b0c183e76ffd27ba7239ff743d55c30cfb9d63bb834c040ea75800ecce9986afa2125dff6e668a42bc68ea2a97bc59fe44ae75004d31147c2e8f2e2d16f7291eb8fbd72626012a4d10c5027e81203c9fda74ea19c6a96d34bc449b600e4edfc6123062195e58c1fa57e8f8dfa72697b1d90b6840ca22df9875c3238b1598b8e6b8a326578d18f54a29cd4f689be114d7124eabc3ec110ca556a4ee345fbbe1b3dbc064dd210436c29113c0cbfea12168b0e49399c5b331f9a872819ebb4784821c2362107954c9c7a8a13b659d731e5af21bace2261a012b644200ac1553868144edecc4f8c2dbb3fd30650e92c5e1ac3c26de21a97c2e95451578496dd333416c75e142a15d535115c2af6ba62d4e626fd069499c8610dc1a4e8fa2b1cd14c247cb10c05876fbd8cdb4e8c4934dd2af9a55a8760b8de2333843979ab2f9e5df0ba11b02c39d4faf0f5337abf802ba1b946c3df7c20f34f414a90b453e45663381e806a766ae4cd7d8919821b3bc97ba8ad4d217e8db3d6e5792d40a53d0ee39baa384226a7feca822a5a24e41bb71722bfdd472c127effbaaa11f0b3083308133b260a0b57de73b02cdbae7984b2361a8d96e7004670647608ffbdd52c1cead310adf003f410c36cddb9085ee64dabe9a12f87bb02f296973c956895f56f393f08df0ebfcb2eb2862eb4046188212b9174d57492bc8fc51b029c6fe8977b9a39186aafcd82481c2c694db0f975e260afa0fbae26dfe9fd7217c81aa7cec06e76cb5629e802778696396381d8e7c4fbb9ee87ea9bf360f2f20608f480016acdff8e4dfeabcb55dd61d24de26bc90b5badeca30586c517e31f96221b9409689b2fe2fc118db80165f29f40cbdff415a46674644a12951ff89759a969fa679b91f2e3ba0dac424de1346f759cd6b82e4d74d580a59a28488862e11d521dc27c33e14748b3cd9ffdbb19d600b840daacc95252b1b73d41358568b636181497791e576743f21235cf3cf342d02e43e32b2fb2b02714a2f39529866c5cdb0c203165b1b932e8d9b335e228ef1e0d5f6ca6485be8d24a5231cfb2fa5d4a24261d688aefb0c0bff0760dbae6237d7b8903997ca547fedb38ed1b11e67ad31e90cf21cf06129ee8faa0812e066202de0719560899cddebb8d023c355066e74e54c94f61d577f07f39892fdaec55435f29a067eb7b76e2a26e547a2c7025515938ebcd3d34d79f1c14801e1daa1cc684b02973d99266389528c87cd0b987c7180120c5c2ac7fddd479827f4513ad5f2e304e830103560b3946e826206e0bfc113b360ca3cf38477766768f1faf7d3f19b50cb3ea1dc2300a40b18697454299f92824c9c63f4240f0fc0506573e8560a7f28918c32c0237b7fcb53eec9659be6fe775ca47568a3d9588915e7bfbad4aafe51369a2ce684828ee7bf14fcdf379a406540819875e876b946960d79659d60435d05cd60cf0e55cbb4b3f5e1e83e493d0261f2f4e690ae904af30a193e74e192ddc952340a8a75c0d825713def570a1335c692f7bacc8b835cb7146ee5f9cc7ca3fc19dbc2d96c059d6a04328c2a606c24fed0524e3e741711499f765f2c3221381bc621302f087fb7f44a9341bbd80b5b5fb22473516eb82621d54d233112d17231c06683505556bf9701dbbb2f7e8e64d8809f089451c594ba7e0d300307160faa4bae7f1c63b5f1b25b173410663623bfcc3d839d10c40f8dbe69340823fb2eeb80598f2705ba1f5ed11c066a14ea456ac883e78fb505408e13b284aa08acf2c7ae8401749994e013a25aef21583f99219ba02b297d5415c9c4a953aea59de10ee46c315495ce5e2ca38aee1b75344a9f7f558628158b309dbfbf07af73c98a438f3f00df1370d1abcef7e7d2bb44e7950d4162a6cd92e10f39aba0c2c49a04ad3f07b784395e1d24190f10505ef7eb43d13f5bc1e362bfb41074b22642afba1f90a405181bf2362d47f06dff578cc383bbf81314e972e5410d5a910f0a735ac6ab33ffd3d819a40859fd8d90180d2ff4ecafe7b1a68fcb3779ef8660d10007ec218713e73b94b105ac06b4b69b913fc1720da1861132ecade887b636b81dbaa00979de7ad8ab683014a8157d5cb4d7b2108a5baa9f7cc933851b8f2934707087ff0826b60e4670b369c59d761dd21cb92560afe9b94e3e71f15a3ac40680e9507dc37b8fc143cdad788fae5cfb39aec9bd7571ccdd325c5095c00b44ae0510c245f2643af913f6681c76b81450ba0b2adfbf70a5840d711957ddaf65eaff5a0e39e06dfbece8470a512a5f048b31fe1db13d14f347a2d0e4e9a834d79ce611cdb7391deea760c36968bccab5fdc85dd9405b8543eea156bd3bb0b5d53422a4c7fb9851b8f90d7e7faa402549e22b2c137682df1135a07e36f7637683a020a2364b62bca6edd46f42c36abb5c92da0798fa4cbd889c2d506461c741e713c3392bc4c78885e8235266720f4ee82d4001e564d9d1e484f5707e2f32fca02d7b44cc21ab4fef0fa091efa126dadfe09bc24645147e2807a427d88fd4d5475503731a270108b317ba8108094fa55e38c9f91e29b16861ad51e7b753e0bee5c8fcb7360b29f19e77b5f1301b9e80762a55081494fbe8f3862eee53e00ba0db42b18ab083ddb9ff03ac71cf3ad80c2a8f54861ae3c2984f61f5fb1ff19e209d1d29a91d7e72edd2ceeb1b2349b77ba2802480deb63ff1fa2dcada411ec88d02843cb405ad42100405404002248215b8ff5236f9fa40ec7b03c1f00944b6e683ed013f8c545e8470bd9075e7826ea5e0b7ec810a746e53f8cd79d92d6567b3d34370c26e20ef2391d1f0852e73a88cf44d249df71346ff1a421d475d3fd5ea3af51cace72b2dfd85509d3dc38c2343314628b4e7b907b255080b4b1513270ff543439f225b88f5da68dd57fc6a71bae21f5a7a5c58f52e8e4e403854b7ea19b15ad44e72247747ab2ffc03431e3c92ac942de3554bade060ae6769d89801a1ea4fad371a0e5cac7d491dc39e4cec37e25763156c81cb6ecab98c7645ca4e3b69a1d3f222d521664c5a9d4b9540b596278ddd1bbc742ce693ac98d35b2a0f903101539127eeab89a110e11a76a717bf3adc6c12f882fb713118cb76dde62a0c67c26e3cfd7ff09e3089120a417c40178834264ae3bfc2c68b15857a1018b531a6bf91513a966bf99e4d1a66bc88658e27846ae516c3d7e0b4ac58a0a82c03be09f0ab2c31917204977aa38f0c93e92b4185170e228c098d4806d56eee2b83c2894cccbc0882f6dc3fe5bd9e743c9e8b6eaab93a17d42ce1758c9a9f073420e3f0cb75cee3d9a3bcf41e52817d194f07f62b22fb6dcb0f065305d377f168d1eee0b4307983a6a4d5aaa67fb194402139a0f377f1e75ce3dae0b23332ef582719ded60bb4c92e822286f1f30f4636b71c283492330e3e0fcdb679a9d6b30efa6bf0d490b7452a831fff46606bfe444c6d336df61bdde648e2035567056f94383b8553721c60ed2847c6766a11c664360f2f0c9361063051642126f54e020fb86014cc87e5371b753da968aabe1815bc218a438720b51c17028511d36a2be1bf19aab0cd88c12e4197c4d7e527f2a911c6879568e654a23f05e3022fe321b255f0671fe23c1ae382f192a5532be951700165fe1e0b76ee46bbc81245afb17e29eabc5de32950b3ec2b7dd384f11d97e541d2c4dd8e110f493f52ea0a5200d9331193c3ba596d85c82f3e7961760fef9e1d7cdabed2d34ff2edb67d60639cfa7d49396dd11a8d0cd419a1958bbf020887830878ad67642262fc7a062f241eaa27d3ed8275032060b93e018c52cbdcfbddcfbf0cde73190bfaf2d974378a84999ace86382ce6a695028730771332b90eed675bf86ac3b89d03fbf9501499e962298f408579a5cd928f8765cfc015d007a72784d0207d738a06ba86ebb176707944e1e4ed5401596b00774e62807755dd4fdd0528d37648dbe98200cb0af850d1590dd5c95405b8d7dca65999d19ac5c4cd4fce8c9f5508e1ddbcb47943033d52772ca5224611683b6fa551be19cf86ddcabd356ece1f9809b4f30916cb1dab9be8c14b43bede6d334b32f20b38257fe5dc7411f6c87931bab699a1f499ad9ce276430dcbbfd664ef5838095c217cfeceefb31c8c9141da22ec47886f34e904f7785e0194f455ff37b220c97dc7c96f0a30501fcb7c4d36aa4111dc29883e74535f930f0335087eb77c279224db464aa8da977e0abfdbd043d7cc1a6851e34001a13878914ce44af1fe6b6add387245cb1a07fd5e23f3fdd555a21854b9624711b94b0bf869a690953e8aed63ef4bf5e21073d96a84edcc0fd6655f9b8797f629a519892141582f1b0da6cc4fe64d0b5f47001c906398dc7c5b7f3812ac53efae41e51842fe6ea8a3e98df2ef5f3e14ec14cb2b777f984d1fd268867279f1971027c5f9dda28a3530ee7c024cf05d00b5e92d7968b99c4a306ca522d09f3bd7ff24f2319507e2115b0a9fd8897cf6fe6ee7ade30f629fd66241d8f3758c1e7139e1819133e7cab53ba49d49bed2182fae21f60cf20f8e50e1f341fa9fa28fef5a577ff57a28b228ca46cdbd606518e4b330acaed8c179b3604e0fcead9b78158861b7b9f774cd8f898f31e363e3905688cde38d922cb8f4a39ce0679c59d339269119149dbe753fa39fccd159f9f9dbf8c3d670e092268ff005024858e9786891f273de52c774efe4e383922aa86ac29f6868fed79d183ea2e8b555a0ab2ef3bb44b12745c0dc72d6399d9cd311645fb6e1a2231518be7b5b785707a8eb2ad6b4c945f09dcec0c6449779d8daa1f10e3ec03d800b64aaca2e443e4655f93e07558dae70edd4317747017344db7f054dd33013366872356958f0a3c85cd25575cfdd816b24d21036f487e756843bb822eea4b3cb66bea60dd8742628b16358d82a8b07aac7a28852a90c174bb5592981d08e0e2bd886a6550365b46b135a895ef0d712a97350ebadd5d937ebd471eb88cdd97392da124316cdfbadaf663bc4d3f06609d12a90e3223c7b2e92f73e2a6afdb684a5075c6796dbf2d295d96ae6003e51b5be719b09bea8277e8be6b6da53eaf37d0b22e5b979f5378c04ab9319c9e945c14d3a0b5b2ba023b588ed9306f56f2b35ca89ea76234fcb3eb66c68d0903d83cee3ed3979d292c1c2e0c6106bd213b6c45161a12de2ed03b2e1ca6d0133a5f0f8884bb5d766113e1c8c36fc2c3eb95245b2936399d48096f70f774d552c68e29d6543793012b7cf2bb6bd8123db19999efebcb9c92ca29a4468af2ba3fc7213b0837be50a497c269a0155624bbc5ec5d12a2f8ac493b5ee0ccb903e550484ac886457bccf20251aeb39f33f8f3aec3767b4cae39cf7e65eebb679fd9bfcf5c1e309717014c265576ba7363ad58a38ed7e92a5ceb06395f1cbb8d4fe4942e8cbcb1f161d531273b2593bcf813a67779fddec7265e64153b37b0b0cbcc08007a6b73ca317a7aa74e751cbd482313cc2079be2a6c28c8e93363ce5324ffdc949b4ecaddf0941b153e0adf3b93ca289c635ce7baf019aa6f350744ce58b112ab220881064c02f19f7c03d2292de8840ef8787a4471543922546a9c02b082890138f204500b212e2196b8a9762491715395e05be5fdbb031512fb510b04f124ecdaf5ef2a66416d136d86a67bd3fe0e3148d95d65f6ad8108012ec197fe127492070c1ed77cd81f408712c02dae5bb012fc4849980bf62500903bfc666bcf7b139981de72b1a4e4d3d1ff8cbc47c01e126a3fafee076e3199bf456263f12da8d038dd4e9f3ce1cf369a858a6faf770b034c175db2d53c77360dcdd0d365a84aa3af8b196d8e57d49d0d33b51fea419675743d188ff1f2dc96692c878ea543851361ddf312a0b4b419f27f7d21901f9ce74efdf9173bfd5701cb5b7e7da7d7fdf0aa4cdaa3738bbe730ab8fcf79278ca941dc40d607d6158b6d1db84db30175470202c53913c441b4b523d1c60e4cbe98811ce4ea55086a86a47019fa6a36a5bc0df440bd904855a56129cdf2b6089cc8cee4a4d0e2023c37aff8c73f4f129e2baf858ef1fb573078b88e2b4c3ede14df2fda345857496fc7b8c97071e32440207cc49dbe3f65375b9912d6d737dc55fe2a57f41b5e44e24e7d754df187318abda536379ad57771a89336ca31ffa22774fa74edd095fcb0b66f2bf89657fafe699b6984f3eb5c1112bf75dbb04e026a702f9b8b183eee14fc9a20e4c067b2c06b292ea7572804bcc379b9c64401b024d4c482387229b006026dbc10bdd83633403a3663b4480f573f8602b6e5f3faa93132614a8cc133d395ad912b121ea93c7208994a71e95c29b582b68c707181ca815e2cf5aa8d96c892f80ccf5f0ba01ee2067f361d3559929ec4a72beb80e4a4629a7ef1d2abd97774c4cf77e4c9a55b09550291c57abe03023da49c67d89095ca08b0f5074c00fe269bf1c23505d8ae034eb97b59654f06679f0031cf8faef263245e99c4cf6274ccb49bbb0624fdca1fb8a0b8d826c839219469e8e42436ebd5f4c30eae0ba3eed369aacc56c9250dc6b28836d5bb966e1135a0bf353b2f78d70917b2a8231a83fbe43114554de354a329d78e8ebafdcf90cd9b8559ad3780c0ac4c6f6e0f21d3a62df5ba873883a299ca614bf718a6d4075eeaf49d3fbaeae9ad43590dcad3930cf709de674edaa8020e000a4965f9f770afbd17a87ca054eb82188733a25f0ff33bb63eb18acebbce1b04144ebbafe3728f9dfefec15732d24b819308a301abb8a4eedad3eb9a1194edfc01c8457deaf4ae1644ee0548cc5199062d20460a73c782f61092a4d07b51d832b348fc13513e51a97b5054dc433ba047d7079de76b3e1f4cc34f6f07637fb58a20cf46e24b8fba73a5a95d9e68086ae9e4a915910276abfed5c7845014927f613c24014a4fc8dae2d3ba18d86a202d4f0d4fff74659181b56f3d421d779eef78985cf76602f55c4bd332d601044f84b68ad27527951f524b94465755646def90c58869d085191c27722fa9a59f1510602a54675d8d797d49c7e019a7812f70bee250fe53250be4847b82ab0434980a1d9dd4191f61f9f862041a77859482a15c86ca48904664487838ea4d9300eb4f4e56f77d726facd42da1f6527dd624184071ba2cd757bce254d534b223eaafe902607e37e395f98d8d30b777957a34f2b2d88c4ac30e8d5e54b823378b71ef0d492914d9e0ecd511c21ff6fef97271963585ac035421f0090bf598e5b5740aec907289adc1940962fdbb5ba0e60265b2802906fe0422fbf1d71a03ead2937a6836b70ca29704189890d6760256b029fe0973e2a955cf0a85df68e9bde5541e67ac7392a6d16e695017e5114f6e4c7fb414a11f3477e3f1ba5ec022a44574944bc00293161cb1b3290985286b54b39e413bcd58d826ee109e284973fae3482a6ff2863318aba067ca42d732ef7e058c3275444d44a042ebe9ad950d8304a94f120340fbbb6be94c43e46c084d00994c07be0268ca0233649adb6ec9d6515961cc5cc05d6671e888728f23fd39589e3149cd6fde1848642cd12fe5441f833a8b09ba39a23f082aee2d22de408dd7c046cf0a29ccdb227a157999cf1b3e71672a409aa1e014d5c0ddba720b245ee860e081552baf5c395fe017b0b0b4341f2eb3e506b981096bb0e0013927e44592c9695e875ed47b3e9d04e040d11a3bea258afc2d7b7729927ff7aaffd1ef97f78455fa45afa12b68aa2f353e29bdbc4dd3ff9b2cef661fb00df080317a7c56675fcfc01f8becf25c53ebaa7f4d3bb4c672215c80beb9fe689653458061c27179a97872ae5b8d3c891ccafee419d3298ca9c91fcfb6e1c66821eae5db6bc35b0f13e30a1a31afa1ec2c6bb65dcd87c4f875017d1ff62026109d045fa42a95a94c6a2d5815df74b085b0c946b70a766e749de5cad353cda84cbe7a904273d62bc6eb2e89ac506671abd5b6cbe1aac2e51a4e3d028fb8d2e25e0a73f6136e262f9cb8438238153dafe5cd848ed094674a13cb5db9c5877e164861ba7bc70f3501baa533492459bb649e896d6426aaf3d524fedb821ae658ea99ca27bfe7466503a46457e0f09d680f74dce0aebe884f3631a8afdb7776b9aae551f926b3ef334aa5eafe42e268c481e328b2d898a9914bec5934f9324c6b5100b1a6523842249a7320416ab2c4093a43a4919e08a893b30ce78a0bc8e98cc558cc9e240e3877490f83e0f9dbc55534d35577dc710ecae07c3dbbe98a3f2ce87187205606003c79c50f7767d78d21829c7482870510086250e8851feefcbc1ac8cf609fee923dbfacdcb991ffbf4d8c24d0d4849fa019f18b2cb0c16557c3d6b14ec14e7f57a0c0415ffa10519df069cbc54013ec254149e54ed1aa780dda2ae948bdaa71d30b86b7431e80a6ae4f3801cab3b495af49610582e3503e48df90a41841107b52c1669517f2eb03599f694917722852057eb16a44823311dfd3b548d5763fac4ec5d5b218e6ed9e77b2ef3f11a7bb2721211a7b70fef6954ff6736fb272bbe12e85d08173bfe662312289eb0a0f8a41ba0a5ca4f7ce4a99fecf8d04be4d9e2c71a050d89f5234b0294c056c0d0bf92c0052d794d3777e1b868806b23c72a97a52a8ba0cd5e2bae91f5e375143409d1caba7c387d4b63b64dbd9590b2b079f69a9b24da5fa64735a23d3f7609524f0738c624e9bb32c64493755ddb82d53e1d1f0f996679a4196a52fc3c829e985b42ffb16d8e8275110ef6a70e41259a4d4fefae6db6bfe62bcc4c349784f6d512b618da4ddb4c47871759a1ac970a75e78377cc3289b6d3d7909754da2f14e41d53dfb46a1595d96482aadf0a57d08ac385ad2f1a401f4ddf2b9ce7883ffdc11d495a5bb6f73668505b39725c54757dfca853d174c9cda7421d729e4f535e1dc8147663e5ad6c28a9496fb607ea016d5827282d8d4f960ff4dd22dd6777516f3a3554e3d698d872d039d3057d0ce1ad430d957f0ece49afc54bb423a492a70334128c950aa572db50e4257c1595a1f0814706a6988c81091776c915b6aabfe3a25155d5c0e73ab5d2c464f5709e09de1c75034190121aafde6725905a6270ef7dd950b986b53a0370f6f0ecd574068a05af41f95620d9519354a0ad202833b40bfac40693952a4853fc89fed85cf47f72417b6367488ec4a3e399088e8b7e65407588d3265c9c21bd06921d3021feee8c27489c47cd6df8d768c22792d072dacb3447dc8ff50f1b4b19e121a88c62d36b062b04c688a56f1b6e5531845420944cc7812669241b04ff48de23f58274c6400e193f459ff08bb7044e9744e7959fad623a7881829325eb6fc75afc4d84df76ce4068501564266bb48c1c7abe09c45863b8b17f4a9f0d8ebe945217e887bab424d932a293423b57e651bfd845cac3861e99b3aa46ef9611b85538370ccf8d6c62a9cd9b47553f8e064e8ca7d7479522ef15dab77b808e82e3f5f51bc1a61919a2f8f83d0e6e49c7c708705acb489f03f8567578a1829e4bf2bc85c33af319f3ec9902362c155d72d8b8aa9228de0e570a1e64ad510f0f9f2a21d4239dd7fd99617251fc2f79e4b0873dc5b18243716821dc35a0d6df0cb0b0cd6e9326e2d86564426c0e545ad5cd5f9efd37d90c9d3d15f4f916b1dde66297db50cb5e98c49009cb1c5814dd6d79aea37c8aaa6e814a1bcdc742161a78b700bbade52791b1c3e5c3214a6fe042ad3422045d319d964585195d1ce95115243d2bf7da393f7e2595c07789f27219a98a2a50bc595bc499ae1859ec41455385f57f60079763a952ee01d0e7a9e7619e38941a35a139f72917fa121d1aa3df35b7352828e0dd9b34972a8a34cd0831d649be5a04cd5d81f5b1308c98a7bdc69ffb59e3ed15cd1d059fbb70ca59fac3b0c3e42c87ac7226bdfd15abe336d914c1b19e56eea3ed5d38bb72a6ffc7107b61050d557b0d115c390363a25a822b2e2bd4e6862db37f8d94e8d0ebceba86662f7cfdeed06294193e0fd8a753b806f9d7ac8cf9de3a984a3e5b27d7994cd99b0d41714baa718015f5e338f4902d5e31e61628d9c68b44938ed21d23a025e3c6bc9a87b9d2323892cd65623c6f4f9c040bc8c23ed77cb76a0a7952f787514c732ed69fef7b47d8da4b4fd61d21acf2c40ecd1984ed370e27671c6e1bef08aa637d4271e96d9c53d089e5277867bb5287b30305a97d62abb3ad3faac85a7387e063b9e4b2ceff4f2bb8e3fd2d68daa5461b048c96c76552d95fe5a0b9a744beba634c2dc9ef06c38892fdfba9d100bc596a14ba0f7d9268d28bbfe7fb7762defe4dca88478df485b448ff27b0fab65c2e40b78644ee6bb4437fb1c97d5cfacce6d94d46e9c828b5972cae7311534a302571e4ade7b00b85abb52ee71e48f06f1ca413b46538062f75392d91e423e73d8a3a32a6452826d11505e2cd36820e54ea956fee366d812cda640fd7d523bcbc68f8711e7ac7ba3bd348dbcdbd0e5f6e8db6523c8eb3fab9ec4a39e251c6e6cec5848df0f0b94743e4161218ac0b1d8c4e3af49532b04cb76681b1bd01ef7e20d2a1f441f4bf1fd38aa632c300211ee518ee154c700d3c47c078e20cb168b50552e9c45a804e0af4b1b5e63e29201036e4498be10868f975bfdaefbf01a7d702593e182e8613a1b7e7319a188643fd9651bf172ecc672b006c22f72d02bb9fb6b6f4e4e45a15136e1cb27c52fc6a0a9c09aff2c67dd56e9a5a8bc2ce4cdf283a0ee00423f57c42c10e888b536e4d3776d0947f84d0c85833fdc138693f4f822f92095cc6e15e0c4ffd59b2532b444af7678d3b8d05ba7666795e5aa7d6241bbf996b109d0db5c9a2c215614e5c4af0ce03cb91bdd9526f08aded29c9fe3b606146de6c7a7e8485ad0f820f0a7df59c0af998f967163724770210d934475142b90016a8e938f6ad6c146c8023c4393ad2308d8e55521b0f83074fd25fcf288fc39254c748565f8f3ef4ee44b7b675082cbbf2bc33de7eac5662936e6d6f81ab5788aea4bec1558e293490ba751c7e2514a87b7c3509ae3481ecac342f57cd7773caadc29810071110281752a06b8d1d9494175e690d452e890113891147a0af4c13d949020a323d3205b5df26b42303ee17409d694a16d5fd65f38bd229c2273cf62a2cd620ac055e9208a4875303533ec80644c010975da0a6af2bc4032ae1f2b1ec419cd83d9266466ae4619e3abdf5d51928006e8148c310d97e819e4fac7538b1ab01705b53c4a15ae75db26ed5284b80c3d9e04c235e098b1287fc5437cb7d3ce7a840a182b056ac506841ba7121ee2ec9ec5a8045f54371b4805d0c99391897bc8acfa336e267cfdbe42e0bfb8d1f932f45304d676bcd29afa965135502de4ed885bd19500d39312acdad47de993450fd3bbb14a3ae0371e90b4ccf8c65111b5fe7de44b1eaee4f6b43748a598e309d1030ac0582dd78b0b308b9326e5ae6bf66b5333c9db47073da324757f306aba7274dc6f0b4d9e6b951199ba6099c143bcad0240b036a46de775c208ec29a0eb5cb079087ef022cff0637add818a9a3ab7e8a376474033eb8781e73f4a480168f544434e1a0eb054a138f0e1b90dc4838403940e038d61088259a6bf3ffec812c1a731de491c9c31fd6e21d5eeb464b9adc524a99920c16072208460722eb6f576cb52e0af3fe00f20ea5d3ffe7e31ef7275e80fc2182e861599d4af1c9fb24971b139939c7bd5df1ca97a137b290ad10229ea9f72ff20ea5d343982a74f6a4945212f1bce4795e9dce204521f2eb7b248815df6a3e9b32fa62f5e4ed46b43750ac12af30f35206eadb7cdeae589fce3367bc7f8820562c678e9174c287d8b8818c43f50251126047062aa4442f2c688195e8e12c8ae8568e60a248f450424521e6acac7812a9c081044ee21546c01489206cc1ed441a30185143514e6c411e214a164c8639810a72a287344c50c447a5a452fe74f93b944e9f21f88f524a155a3e11e721429648b06c9a79a287ffbfef0da5f85197379df5f77fb02ead479e9c39f6650eff97229d9eebedff5377af2fefff658f9cb9e093384df565ab5210acad2d6b59797ecb1cfbf563d55ca026cfd708311faefffe870bff9009804108915d261289c41df75be151ebc1f0e843c00cc014e4552632650eefbd9722a53c06d02ea59c2f180bafe0f5da277223ed777fb795ad6b9fe82b13c551ebeeafb9ccbd1bdb5c56ab3fbb661bdf75e058c361fb9973ce1ad5145e6ab55a717866f4672e73af6f43dacf7604c9f367b4daac465d078eb3594d6a26a58bd992271ec1a829f238ab02e27329e9aed3d25a644ff53ccff3becaaaac51ca207b6bd18087c74e41eef777c288170e8899a1ad8a7257ac25f77b9f4ea7d3e9eac4a173fc779072927d9220cf2730d9bdeafdd84a19903df5fd5e10f438c81e96d11f65d2fbf618207b9aa795668e7b2bcda934795a074e25a556d2ddefd67190ef8f1ce4b1755af287e70d466033b970339102fc5eefdf57b2a74aeb7d4b77b695cb5caaaf709371ddebc7b67a2ddd3040f67c7864e5b1ad58320579745dccbeccfd54b99f4a27320c0b2b3e7ae9ebc7bc4fbdf0e6b02410659186630bd313a220f4c52d736a654977ef0a9b7805cf1ef568be61d30aee455e9367f124f3499ca6f942d441f097425d7481dc9a52a86521b24c24da9f3beaa7d0678eec23694aa19689cc3cffca1c3e521e2ff2fcafd2d98f6f9d2fa7bbd30aa34d2b789e13dfd7bd47fcf05159ad935a2237d9bf7d52fb44ae7fdb175dc1b3edd9a4a78fe04880d4e5da418be69dae397f62db1fa8d0d9da399de25ab3d71eba64c9eda0174b291b1530c4a3eea0452a78afc207edb977b4f7442e7dbb8366af087df1a07976c9e294e713657f954094278ffa2b78f646aa80faf385808aa9cb26be5e3b99efa3692a6bb094b2a39079c866090a29b1859e6282d264c86381d8828d0fe2c4639e3c7912251419166c118766524e0657c4165c60a8aced03949d95e861ec8bd88277d740b990f1749e94a7f3b27852148744954c8a543571732a89a2d1683a663a684182543dc0840704f9a76fa9fdf7a1e66a75ab3c12a95557a954a89aab548ceccfd05a4a73595a3b76a6e1ac3f9852079573d239a9ad944eafeb13da5ddbdda7b0565f4ec6e3102995adbdb257968cb5b231b057f605bfd55a6b75ca8d4722d3564f72eb01090969e27a22cdd8d53a678f43fc29a614439a11c321a614c6caae77f389d21ccde58a98329f6611ee33970b4329a59452f9d95aadadd6deebd5ea596b75d85a7558db34cfd66bf138b352d62aabacb2525aadadd55a6badadfe9552ca8272821912e038cb82e2281255427114041489227d8046a3e998e9a0d1a8d4aae4d2776a083580a3ab5669a752d531d33195a6d21034acdf4ed5f3ec7f2d5f9eb594ba8d2470a4edb31c38ba72773f8e1baf62af7eb6a3e44aab53eab6fe0de9d3a7fea056afd6a7b8acdaffa6f5bc5f9eb595fa9c74e27799ecfbc22c27a577c67d5483b43fc08407b807a9f254e57f1ea597caecdda7a721a2c8219efeb6450287c3b9073c897bc0718e9bc277bebb4af4325da6dbc36572956e0f97e932d1fb737a38052f5ffaf3d297ff8c5aec3b9759cbc565d6ba88d0b701adf5fe05f3bcd77b5e0a7de910bfb24dd6875b781ce2baf3c9f33cef3eddebbd0fb1439f9e3c0fd65f513b7d2142dbc9cb97183ef925531daf17cd7dff60aed7d121dcaaa33fa8adffa40e1a6fe3c93cd66823e868495aadf24b6e950064d174dc1f89b88e0ea1fef5b00e3ad291ea78759df2f50ea9bdc060d545efbfbebd547ae97fed85521a2f5d4653bdfabaef0ac7dee5db5ebedb551d82cc7e77f73a52fe42d79d0d01b67a77ddc5d77cf572bf2ac04b7f50dbebf6d25e8cf8e44703dae427d9c381e7ba8d5db5eb9d91801b78cb63bd65db74f7b50b42b44cbeb78e987c6926533326724cb81c13a61cd32dcf5e2da9e33d4ec0d1d536b4a74b302b00921ba923dddd5f4a1b22b2fb0edf9d7f9303d83dca3c0ae462e939f5fbd63ca70664f2d87cb868f14d0e60ff589b0ebb52c75ff6a53ea1bceb251bbb9c26cb1e99957047ba507ae4c8111848236a646464646474c5c8c8c8c848ca23478e88c0881123464646468c18e922e915ea247b240d425675a1d4885223232323239cec91f303d2083562c48811232e0229b3f8e6cf2ad923bbc82502b6042f748045591450503627fd1f3ae9db6a2ea3403f1468ce39eda44094da8068639f190d0ebcb41f1a9d9452d026678c2ca960c09429ce72431e650e8baeef386ad47d6c947a38eb9e3e1dc7653eb59a8fad66a398e6b259ebefc661dbe283e3670b905aad46660699ce9ad5e988218714d0d66a73d94fad34daf4bbdf074ffbde7f36fcf1f1de7d7e26aed12740f7c93f7772e9f79974da644945268a4ca7955d1e7d72559a349fededdddddd2dbbfd69b596dddedd2dd4dfdddedd2eb2a4da0591bd5b5952c92283133449ab510138bfe9a4aa820a2a59c4e491b6645af5a4cda3dbcb3ce699339e0f507be2ec759e9e57f3c4ae4bb3cd69ab0155100441a01f99a3d306e413640227ece8bd3737d42641490526893c319620f2287356b63d1fc444e949bb69a574aae00b79b44ecf90c7a420c80f78a48e7b14832065fef4f6a5491d1fc1c3b19a2b76d59c1085a4511a0d87cfbd3d6937ad944e49e582268a24952b30c823cd4a7da0947f2379a495324fa298c262c60b0da27c29e55f295f664925ca4a557292028393942851564025534eb274d14104504b5252f090d48409a0503184ce6148293d4501ab2201962b1d601951840d4935bc008a219e88107bcc9119925491a22288a2275709cb0af734042e082e4a2e0c314b28118416b829ac643133022b313a14cd0049952b655e5255871250b95266e2aa90e187265050aa90c245c509b2b0e286324cb0b84a55435cc19cc45c49aa30a2b0720405940c3388510095942098dc80c30a6aa09ea5681f048dc0cf73ceb900291ef9f74ff71b5e5952c172a391c2f2527a72c3727b2520cacc13173cd9900515621b89b2428a2436145144c5c68a6a882421a4a87ce0216a8afe8babf27de17dcfc72119e62e6bf37a56e8fa97902136d9f59f8742eebbef08b9978ef761a3d73fc20b8f43f2abf55f78c3b149688d447c884d8eed70bdf7aef7fe63bd902136b9f5436c32dde1bd0b0bf9befee8fdf7f53f2ca485633b64a66ff3db2f89bea6305425dfb95e6d7d4cce25b3ee6de75633c7ff2af124cb74cbfe9ecd592ead5ac7e4fc4b8df2af3baba8a2a9bae35277d34e9b24f5a48acc54b64c4952d629a79484bdb9ec4f5d452d73cee34c7ff334df3f731ef05b378f320cf3880147d74d9ecbe4bd5ca95eb96ce2668ecf281ec579ee659a3c1e35654a76d75da6ec7fdffb6ed966b227e006da973849761f638303e0e855f63679e694e7f873c17d419a6394c8bc99ecf676649f9264f7bfb7292e17f7e5228dd945c9fe53aca0ae72944e49f67f5255996ca94952d9df6322e3dda6b27f925c3d7a32e33446e90b52e682f3b73bab8b82ba9a62f5a42afb96ec49522e265537f7f2960b9cf0e18b133e4c512c35c850a28a7245e5a403951323a89c6e586aa012e2d602623a8d31a209162838c343047ad0c1055d9513199cd85f9f346df94149ea80b2678514bc3367aef2c842fe26a6a69e1f227f21ea78a8496221ff8987e60ff913394d1e29f6034d9e98c4311ff4ebfff09fb8c87cff8a8b3409cd771c9345fc298ec997227d29d2d0e8ea94b428b3050f2bc0ada0a88711b48004518840c11791c80519c248a9e2a4c38284f8c10f4f7ea0920220984012fba7b77b10574d389b2595981e6a928cd63f7bced0a7467bda9c73fad468fd349f3ae9a4f9ccc6b3a9da382544a3b5200bed4a07f248a347f4accafe1f2401f64b50051761c0fbdf4e31fbdfdfcc0a63f65d2fdf4518b0f5dec75e301c7b611258c8d3f5b5703fe18ed29e0b5de7b21a1fc08b6f722c01e5dbda4f1de567945aadb5153b5899707199ffc573cb9cda028e738acb7d1f633b3ce79a6324cc7c3fb6e3486e235976994c52a762cf81388bfb0993537f8d07408a7324cd2a4f081c2cd01d9057b01f869a98bc8045863352a02c5135a1b2c40a94912a9a260d2479f18015628ec0dc846062a9892555583521e54f6e00c2852e548008411726606441c40d8ba8a2245a44a005f5218a2d70a852c444431509c060c60627454bec80e439915e6e5092c4cca0dbe2871d5654195d61c4c3922a569325aa5a10e5c9852b40e8e080a82e566439924569c91696e98825a488021375e48a2c443c9c71d2858c0b60c8418b337589ca135880c1a286245fa80c352165862338c084154ab47ac8414c152166d8418a289e204284165d12142a3990b923903b27a87cd8c18a93992d57b61873c4911dce1041c4998f899616b860c30a944a30e60a95014bd492264f3c31c5162e1e20d0840e21586288259ee0000d293344815122a54b921673075d949d144b94d191d902a4c9541550478e38d5b0050863aec8e2092dcaf4b09b22d879d19e2c15f1c0840431c8a082d20f3e3039428611bcd0812fe2f8b539a5952da6b872d205696a49ec9fb5eecccc92fb290a16323428814942ec3055649144161e9ca8828acc752fa1f25cf20acb0d4eacee8a9b8b0acb4d4696545920e55696546596a845589912833156b65081a415821934bc0005502821c11524765e915714e95eb8428b27525620ca974374905f5eb8024c0cb24031ba5ae26387a43030e870a32215f4b4850552963a000505d1912e59a05c31050924504b68992129cb208419a6198ce4004395d821b0610646245182858bac623b00b53f0dd298b61f97f5944d8ce0a553a269ce39bd9fdeac73aa20cfbfb921cff9cf24cf16e7acd5caa6a10547a5e50334c02ca9b4144995b13bb472d8c0933322c8620ad5110de2f8b95b38e4066469d282a5a4236c8881e8490b2a31594ae0c4861840a0861c10559638515acac282253e9103279654112607260a9de8ad1bb2fc1eb5a9d382303934011382316244f952c877a30b28a99a76544d5bf2786f683c4eac07eb6516f222b1f5e0e4b95d91f55e7884a416b61be7b26a9f8591dc8baaf7a3b5f6ed37cec3b5da6aabf5feb61297557b9fcec635521f791297d577a4d141501d04b9be83a043f0afaf03ab998ce43bb6da6aadb5b67132a77eadb6568b47d0955e2ef824ce509bf9d642f6b4becdb49936a37319f5e6d14c326f56665e0f7b181e7a612291487c85b1c6dfae87fd10f8af2772750893b07fbdfe85875e0ff6bb9e486cfd8344ce82b15edf5f87af9af77718cdd7e021d8d3e01702ff056221d8837808f67a852700a193e65fdf58c8f5201eaa89f980c15c72279b39aca799d19aebaf87bdd0eb6172e6d4660efd179633e77ff2d0bcd732fd9a100c75311fe0bb5e087cd7eb41f069f010ec41fce0bb7e04c17761a1d7c3f090eb5f180c3b833057186b8161ac85551002dfe502c197220c6cbd145f2e7558b0f0ce1cd6bbc29b99c3fa17a8f31dea46d49e7238e530854aadfed6b3248fe3be655badffa408a06ce24c51beeff7efdbecef419900ec7c3bd7b21a3094f315b2f0fdd74bb1f5bdfe07f82f5ca449e8f5b02fe27a10dfcc7a3d0c4b31d67ad84b91f53f79622d1cf3013eec7f80340ffb223f603418865f04736ea9d3b7174b80a3e3b2cc8e9be0bd01ff46f6323c7a3fce3c335287be0847cc643a3d6c65fa42c03ce338d6cc889ccc62b19ef5a3b358a110c7311e5f0bc7767cdfdf22e1b3998547ff153adf6785f77d848ba5cbac6ab6cabaa2db931393d295d4a1df475de438dc750d70555e74c37de43b3700074a8cf11dcf91a697e977958bff62845294e2061c64183d6c2ec21130d61fc61ac77cbcf819ffc3c5d3f8173fe363844dde7ac7b11deec40f56b455657555d53b18e191067ff336e1918c8ff11b8447360f8389062f236c627d8c10c98b1b3c8c10c98bb1b7096f2f6ee048ba9ee2e25b5cff554d1d35c11ec98b3693072b2177dac9653ad94313237c19a333e9724f4f527e8312055ec1baa78035df55b34bcd7c3decbf76d1840d0b973a7881e1120c6c131e21996ff352bcbdd8018e4d1cf381f336ff03e76d6a7c91178ff33f6ab8f81a2fc518360fe37fd83c8c185fa483b7c1365eff23c6dbbc0d2e02e363bc84e1a51a1fc2782962fc1dfc8ff061e022303efc0e70912621181f7e910e1ebf14658431ff7f1bff43c6dfc0455cbc8cb7818b3409b978195fe4c5ff4b110c976c3c4e787b11e76d70fef6620d4f72192e0cbb4a46d85636f057791987292b4171a79943bd28a77b7aca37a90fa5282394a29761528d5df772e17ed24c55937edf264f072e5e74118c0e5ebc0b1861cc1dab2064f33060d8b8b0c14df7a5f8e2be681836319ede6ff2ff905c96a4e422b489116e103a13cfa14f23f417a1741064dca48330e3e9080a1a60c745292165f4696e9b508a2f42297a28b38b8b5d2775e8df5c5595658d166010c1dcc50e9fc40922a33ff104ecd7a3a6cb7a97061bfcb8cc959c89efd4b8c04fc37faac10cb95342073ff696b1772d1a3f7a900847c09a4719f5221c016d8f20d903cbf45f70015f3c48cdb8cca3607f82f1361f0214f0a829c62379f183a736761a270337699e7e5779d05247b7173f78a6dee5a6c19fdcfcd85739c6dbb2973301f89d933d297486859288cd31fe6b978d30007f2314c0e38400f81aa1cecb08bdf7259c1a4f63e36fc2251b9848ac8163b0aff144e2ed451c1c83e1988f9caff14239b01fc2f99c876121d9d7f81a78a8c6cb9e48f4e0c6db78a11b3f64e36f601c34ef58c883bfe1c113899fc7888197647fe3c613893602f0365e28006fe3fd6d08e06fe0a11b2f801fb2f1017822b14618f3c7f144224e18731cf30180aff14200f81aef5f030f353916d2791c78a8c6ebfc10ce03e089c49b7009c7e7e4fc07397f7b51f61e840208754008c005402823f4720e7d59e84534348e2a65fa8ee4e518a1ccede441ae590261e04e82fbf6e26dfc8da78fc2e4a9f1f4c79bef4678670e45c01528c59688f33562decb660e7d22d14618f3b00a4236fec62f408a3f73e8dfc043373387be0d4c6dbc146bd8c02e5e8a38efc2550327c40937f81a217ef902bdecfd0dc3f04350e67807210794266c336de54535a13309bb152e6d70955de152ecbf0d68e0cecd1cfa3366bc0633b09c315c823fc9f4691329a36028334d78332c94346684527485326b50c2cd1e76a69a25d0621bf67119fd1c2800fd3d07c36bba3471f70772d984faf109a234088842d19f59d0bdf7060141fd00054d77ff09f209a0e03bf47dc8093c8038acac26f00375e985ba5a328582b24de80f90ad29a594524a69a594526f4a73ee0e144429a5140b2e58965879525e1451a5fbf66ff7eeeef606334a3015a8356d7a43c9d48065057994505652482a182ca942c185aa39020aeaeeeeeeeeeeeeeedef5d8edb098820356b4b605d1f7ee2144e94fbfbbfb07b96c820e3ae8a00bf588f20fea2134dd3d48c81bfb68600438baa2827242637ae4808ce90f8a02a3a860104376ab24ac7e80babbbbbbbbbbbbbb6907f19d21bb1c108d46068b2b547994392b2ed60a47ed072808eac727280808ea6716140404f50314f41364a3fdec46f9a5c7972f5035a05a90a53fca1064b63f5050649c80726549c50a973c4a28ab3b744e5a29ad53ace6fc7119d07c9f53da80aacfb7fd00550a846773e672b6aa9f2aa0a039dda7bb4f9faad2398a00fb11e0d203243217247526cf9d9a1d0147b9cbf7fadcfd8c60a302c79bf0464669f8ce8ce6f3da04d53801efcbfb7e82ad25fe01ba42fc6d43807a747701b16e6e6e6e807e72b61f20396d4017a3007612cf757727d97592a04e62cbdddc8da2ae7642e293382c6a33e7f4e937fa2140f1231afbfbfdeb7fb4300bbf30112b8cd9fbfafb3fbe67fdebef7f120fbd70cc7ecbe2988fd77f2ff4c2434d160b7ddfc243adff7ec8f5af11c817064121bbec6df36bb171cc7f941ff366c2214d12bcbe499df9b820b7f940e6949a73cef915e35050dd83c2c7c77770663eb61f1f1ff9639b01cd7c7c7cb4f8f8c8af4d1effb6637d49af37a7f47ca6b4cde96393b2669334d90f172e128c41099f3e5a407f3a93401507f5e8b649f7f707f21e413aa0a01e403d7e24aee980764142eed2a54b97efeed323c8470848e758eabc17bcd61b3c69ef9714f0cba2accb03e8e31648c865b6db0413804c09d94cb8b9b9b93101c894101013844ce8f143a48bba680eb13035d545924c5190f99388d0d4cdcdd44d0c535ec6dfa9cd75499df93549401a394c60b3c2371df402ba6e8e2a40564248fb023be79c73caafb9cd1e264819e45e2a855cd6534e3993f4ca3b01202e9bf3ba7a67e73a6136e975a1a5d764ca6836af03b6e607e959fc220816344df21cdaf429caeceeda9d944465994cc3776e64cfcc4e399dd393ade9a520952eeb9e72c2c61672e31b1bf0c6650455729caaaaaa49714779a739294d92e9ac9265aa5855b33a35695759cfe2de7db1cf8110a0df26cf18b022fde7faaf079f02f99ef5405cdf7a9bd3100c63f415c6e8832f459a7fbdf74e34fff2c17af07fb01e6c7d111a1ca3cffad17a182ef2c2318a6317fb60fdf742ae6fbd8b0f8072e6b46a8e2e605749b5d3948add54d55aab1d8b648b6752a7be6c86a3449da5f4491c1c4aa84dead0f70009bdf21e81fd6d5dd7267bdc330e25e04873e1a9c465aea7af11603e4fe028636148267b6a069f261c89320d8ef1787dfd125e5f9fc8c71fca352f5fdd35e03b08ba9e2684e1da082e4cfb6a933ab9c609d8fafb232dd3b17ecfb818c86594565a290b2ea3de4edddaee204a8182e64f101d7219a5b426034429a5b452095504eb4f0561709092524a29c55ba305ecaf0dbaeef520f7bac00b76128a5342699079ab62b8d74ad9e9f0ba798d54d372b9dc2b614fdaa049fa7b5fbd3d2775aa4dea5458aecf8429e7f0025e70065066d77f3ff6961e472e8cdde639ba80b92b2b98b8b9004c81f51dc977241514955cdf937c47a9af269257e7c4b93ed844c993725481f4afbcf798585dfffa1fadff7091ef5bdf4bb148eb5d3836ab58bd28c71320d2cca9df0a5d7c0054a1735398d3f0868e6d52a77e06a3408b7d6a395a8dd46de23e554771e5d25fe657faf6279df45542d5499dda3ad9a384e469282a4bd73aa0761a9b8b8b19c0cb25d71fef64927842aa48f470acc75093102b2726f43d385861ca15891e1e6a1a976e2d7aff8303249444230538ca892d70808492e8e12237cfc21c20a124b69ef5097881856533a77e018e72622bcd9cfa575aac42678b81a44efdc13e6de56e77a8628a5b03ce48734476be9b3974377133499db7799b38df91b7240d42ee22d9b3fb9c000229539fd129202b8fbe93f104ceffbc9def7c6741108072e6b890414ab95cbe933d9e9bb8893402cd8d20f52eabc8755bef4af3e6855d3389cbe86ef238d454a6515699fed73beae203605b8deff3c3e3cd0d78f1085e1a854ea14fd48bf0eb95000e80f3c6f2dea19c8706fb6ec23096532eec5c5c0e55a7055978bc975a6b8b5c061802ec9c23613779260edf1ddd4d3c6f5287be172501fa2d0714603fecbb683e9df3894a9df91faba9645158bfcd49a0150fb1e0329abb0e2641c513c7717272aa614335816343e58e6aa85a6324cc5c5f32916599fc392d818290e9ab042f8fede42475e817600ae84ce41c92e7ca9c59679312c063f593d0f7adbfdfc2434d170bb59e8587ee4b71a8758944faa011e8e18eea1c4f80d26572e6b4700358c072e6cc396585553c933af4c128b0318e1c47e0b4540d53738445151dac544b659e5ef7bbc4f46576ac6fabb53fd2b27d9acb280e4a29a51ea5b43e8d52a7f9d84a298d5221fa97564a2b1e415a15696b4e8882a9d21fe74b1cb6e79cc9b7f98c35492528a594524a4c934929a59452ca9aed670b1059f3e9360c99205ccc60074394d79ee7d7fe8c7b2bbd352744912f2d1ced7b9ef742bca7b9ac7ad7f33c9f5aedd36ab5bdebf97cb678566badb5be50adb662f1826c2b6dcc2771ec74fd8c30e990e7d497ff79d662bf3deb4380f23d6b48ead4ff5c10018e7ee4497c67bc7ee437dfb14f346280a871f782372fabb821d90313e108e8d9fe7d0f85d8180ffff922a1dfc378b4bfc2dbe675bd4541ead4074241f678b9de97be5367b9d65afb4aead4ff9e75f485a37f9c46a874adf73439e914aa110000008000c315000020100a874322a15030cc2365ac3d14800f789842604c17ca43812409821804318c41ca18621021c01083cc14148a8c00c4dc85d636d34937e969e2a79a0ee4402e637268dcc96b3a1f6e03ec98a923963340095caa919c29421944f33e7ece48463820dbbb8aeb7828e6f2c8ef61e549868c72125824d33645d22ec1d6ebd150c9ffbc1c212e74c73ec77527edb50cd69047736c79b9d9e9062c2a2d7d7f0e282119656defc32f82a1856b71413233f1cfad2e830db8267e3cfb9021c15e02dc70aa87607c7ac89359032408ea472afe951f9a3f5a437152914c9addf9a1b3591b09d958c87f4541fc6e68912f37e132c1cabdf313048c7878fad0265d8a3682ab62f2fcc9f4c69b3185a025f4506f09cd06e0c5a5a99b611bd3a54508848de74eba823a2c9d3345a6d8b5fe6f0f28d7a67b60f710b32ee05831e0e98b2d95d973eff22bb926780f388ebe2fa5c769a389de6b3987ae74b1455c135b86103c3871001eb36f3ca9407f461409c1327f14c010037248c927152a9952866e04a1018252380cd844eb26ef336d1e8931c63c724b1d92fecfd15f34d6c1b52d1157dd9b5e0ffa517fd278422f66499805d488aacf3b02e1cbaef913b93e036e9dcb8e01514bba3a891e4607470d884a58102dbc83a3240689f7bed5d31aca6d51c533537cf5118efb6e0fd1fac31ae5e88be0b7244487e8d4fd917c50e445fdac973e70b547e4b1f964702e26444daaf0b05a1c625c792690ecce4117b0f3c6af9c29e21a040d2557324f243a848cf2e116fd0271b48057ec235b7996e9109a2c4f8bfefa149355de7a9843af360aff3245370ac0e2587b50ce99595da4504447179f13a1edc9c16c1da39e546f2e760e771b9010be352e10f4e84a2c80fadc4edc258ef1f929d4436ea68bca100bc44d7de97bc4d07e02e44e7c9cf485e74a01a1e20544960a39e925f7a880b97babe14611588002932c2438e9019f22eff4928c460796c9c37bcf749ff4838954440b1b4b6ff3c3568e39a8fff67b82826618e94daaa64f270179438056c81bd4ea7129f7e59865cc615c954cdea3618b9a500030f38efd5a4e86d948f6f834f3d88fa4d835d7b82fdc164548a881411a3ce70dde2c6fb3cb7d49bdbb3f523bb729b503a7e4dd01d57aa374cae32e75b101be2ec4db49013c241956d0e65cd29871c27d1923bf0f68e3158b5d15ceafe2b8c6e35d63462763a9279a2a54253a0fd4355540308486afab67c8aef1feca393e21c5a55f4d448d94ce58faf452fd19a734363d6735c467147a0f4880e11a1e3f1e89753572a27127c0567ef179c996e4de033e169c82a03a979255672cc9f61a0382f13bfd15076c87d1656c13c3e2b46ff23c560f077d1c8f23860415beacce870b36c0d68054cc44921dc4d88f7c88dd3cc618a862994c72e2c300cb3490a6e1228faa8aab766c552603487c18784b30d8f5ef13ddf30faa4fb5130d55cff10ff18eb1a39b579c191f5640310cbca107019947dc6d8f604e8a6b8dc13c9deac303d584a17c0d2ab4fc39baa2631af4e22db5c45a14219c69f002b1720c9c3728b6ec3e9c7263f751894a4304083dbcaa1bb56bb977eeb58d9ec42ea8d4a24866853cab938eb8f908070cc8f9dfb3e7dd6ee7ec7a261c52e02ec2a1a404abe9170990a7fc76116dc29ecad7c3c21eaf28ebaa11918c21409fee9931bbeb886dc8a873bd79a77601f97e62974055fa0e732eb12c9aa5e6944029f0404ca049c7bf3559db570c29d674c1393a4a27095433ed83e1b3c5e581d1f0b5c63479ff4b09edb6f5618906ab5731b11ea69a939eeb2f4f840ac99def92802bfbd3baddeed1b2779730bc15d23cc4b0b1f7481f466c7cabe1dc6c94abd25eea1ecfa5a7382c28a7f2e7ef0cacb8c762720b1d77f9d5110a86143be08182d2d0e8279a6c4292522a1d3f4e34f8ef333c6ab362dbfac4094a599a20e556e5201404223ea43ca127a4e820d22432b377b0225d6a6ca9ea9aca280b54460d62c98733a2eea84f2862c29d5d83ae8f15852833f27b7ef23cff4cf9f6360b1cc3f22563331c3e59d3ddc426947d3d19a3f982291326eb541aa07c5954c06a45fc9c7a908c018bf3e126b6d3ace0d2945236c785910539cd41ccb6ad91fad6a314105bb2ce5d5f10174759c545c9891ba2f299ed8d5bb35f35ae1ed2b704dfe257d2b3471dd9843194581b48b03ed8b7366c2ade533a329e7423793772c89c10b856714a686b985a826419e0b85e7f96c66a544ae03496c3da87b251d347f8f953af4c85a7e46fe27c9f4ba946922807edd0ea75fa3e028b6203916083d9bd03db98e8adf5605c6010195cbce013685b3d0f1145f219304bbeb17343e11441bcee6249337feaa18d370dd89f2d0c60a4b3f6f0acbe3747304569b934f058299d023a820421a207d10da69df09c4bc849c07ed3411860f0125fc6b7a061a3e8bae11a6bcdfa12842845c7a36b536b21de8426ad8c22f9a1ea8728ee7b8b631e3061d8830530448d093ddcbc6c9465e43494a1f0ca564d1c08c55045e06009cdf8249f1965c36ae150cfd8eac0fa2c12cf45d878c8e273e4b22015a3cb214bc46602d7f91f91768bc46f204d1ba002c605de4c89bd2f3543f02e0b0a6daf0055cb7f8862aa51520cdb445a5e0bdca844a6a7b58c32107f264a9ebc3aee6003b98cf6748ba382098a7ca99d54e46a82ac259909b6a162bbc1992c3dea7864a9fd4f6073708af1fdddd94574188c0f4b1e8a683f3af879653b1441c8f7d277890e24887efcf024676d6c395141b6982618a6efc8d95a94e98571dc5f588394cfc154971d39fcd57e1f7a64ead51c2fbbb36b81b311782f458d7366aab4a7b8d1edc4446043bcef858266f50c95a607643308cb08aab94ef7dee9106246d2e83bd61b654103761ceb14ef44cc6623090761b50c3f81cc8cf6ad36e47c2b72323fb26990099f3f2900c84cb5d01f4e0cd00992ab85b02f72a08b44e1db1a73d206e565f41dc9dcd0ef3a6b2f1d980ab98d67053fab2426ec38e0a7f457156d8d501bb365dfda3457a4cf3d30a229ae6486ae4134cc79b842cca3e3dc208780d89498a24f4fc524f452949e78f8ebfd4f8d72924fe008b7611ce7a53e9cba3cd4fd2b0f2c7254366ad04df66e4ada3d81e34483da4663080b03fe45a7e1a2973759fd0409231bb24c0668b0788841b4bdd3d45fcfef32fbe48913d6887ac74367af2357235b5cdbec434e42d908446da26727714ce77571ee9a0f02ba8aa293d9596f8c9cd522247b4c2645f6726fd843e6a072f14cf5291f501e10d16f4a2deed0dc5ad158c17f0a2abe05a4150744c0a9d4e264493a77eb07cac326a97a38ae2a374780234a238a6071c0556ee530675fbe3db7e03f160626fc74f84f1738cde3119b20cb64b9d8342a83d34f5e95ad18030482b840ce9eea5e960601495e804222d112945d0e3b4257074508a15da93129e51e1bda53d93181048b9b23e6b66b255cf3d8e0c677885de671ba7b4ba1cd7960c0638d9e871e637a95810b05e3fab748dbfb84f3d7b194b02b81ff8289aaaabe5e1dae0e0ba95cb7430bc78895f6c1d2b3a81e96a5488730a426ae30e00b7ad42269655137cc479931d544ac707ef1c294f380839789d2c0c0cedfb928cc78f6385db5c46b7586fb4cc53e4e9a22c50ac7324534ba38cfb1c5faf68bb86b51f81fdc57ca8e9d45dce02fec68ed9e88389d12abe45377aed190633330bb850305fbd0a536f7f73224b299fe233c6ae38d2b5f162f5f60e5259037c20ba730106905eb74cbf80e795994157eefab5b1bb4d36dd31862f56560f73887bb31b65019d4bd6bbc2cf659fb6ac3bd232cf608cc10d3f0d32f86c86f14d89de4bb30f1ff976380a050aaa78ec7101ba323600ae7d34631098b47d2e72a3b4bbc0455401889d908da6e48a7b502d65d5997974b8537b3be7395e28568ca34ac4aecaa53b7b05a18cd75a212cf9c4ab42fefdc989f2ef761bcbf9f73918a14504fb40c56985b08f20db8af48e7981107ad94e8dc97dff836ddb35460eff66514c8834c89904b8923dc3386261cd8a4a013db580e6276a580c543e43a144a7c0f1768146f5edbfb41ab4c93ee85cdf91f835ce20717bb39cbfa29b41bcdb367b59ee354206c98124a3c5280a4bd4fa9c2b87261c3a13ae820bda1b8a8321550651c672c91ccbaa02d483a221850add2da0d0aed92fa3c3b89f82967072e573d4fd4b10584868215516fdcb5c2fcc2e58fea83443f41aaa7e37c936cba87a159ce3b2a68e9d725c3157dc7be6302aeee660ccc726c46671bf6424adade87319a889c04424b841c4d616adae6bd181b2923403a1261a7cdb8be38e642c90ceb0afa7518803327d2959c15eea6bb8082bd1eaf705bac290541b28326bd552ad58cc2d8991190942ad0aba53ab519d9633a66358246f0d301bead5ea5fc34a5d6978896775f706f5e37ba325e255ca451c9bfa6fab0563c83a580bf0b19acb38da15510fe4e3dc7d0f258de8397b6da82bced681acb5a6561fe336a7b7c10ad30bbd8c578b5f784ee11929beeabd60c61ce7b93f8b49852d23058495d3b197d5aa6dc12d7525876da824f27e5c5094412e366650c853fec7f36c6e47ce30bfbb55b78747e8fee5bb1125206f18ca38916fbd909c4819b038e3886abfc89524eaeb33e47fb24b5c53b888b440d9d982e60ecba6ce68e68054853bcbf4e0af4230de076a6ba10e08bfbebbd95a95bba3e37c6527a8e747ffa587f8462d2de2cd6ee8be8e95371b42e8ad648caf8a94d83cd8d61f2ab7a8573976801dabbf6a1167d5674be8694c272c7f07a5da6b75ec8150ed26d1c3a4339baa48a06080073c2814f6ddc4c004d1b53dafa22a6a5b3ccd08386f04fba5c20ef1703678b23391c92123046f78b5da5b88588fbd40037aa2b66f626167145d56eaa8c482dfe1d3fe9c26e0561e6a222f746a96146afadc07694d2e4ed87774a55f52d33de1663eb45b311266212bfb576b197cf8019a216a89aa50a010ff31251835982914caa097b643ff1bfbb910293feea2d030bdcd1dd5b4c683fb19428e169f2564109e2c8a6e201351768683642f1f19c034094d7957806d30b8490337d3424e485ab71dd40c3a0c3a0701c34e7d248d79265a21eade500226f631a6611cb517a210833d6d061c96504af612a0c80204043e3970000ee2f0774647f497c8c58cdbb921053db7b3a4d2c823cea841222e882057a7ee17b16efce3e8564c8f6cc1b6d1440a0cbb0e76121bfa13fa85da4d3f7a36d454752686f717b1010f3b48eec01a6a2aa0793d52f1801f7c76e62d7366804618816005fd42f0e27f4e86d6dace052b127596b457ce8287bc5170f711637e7f902d8922c56eac6380521083b4da8fc2269b84ef2ffbeb895e1052b14c917ecfb9554146a0dab11f1a7bb2d9b1a81651f04daa20714522995d29ffef75f28bf52bfff815b8ace3a18a20875b24c724b9f366c01fc55f238dc79b8bea5ec4ef30cdea31321ee3f03ca2941afe91a227de91486a6d2b92c2f5ab46174a7fef4e3de0348136c19a4281767068c642c7935048ac0e2db5e18e682b27b10ea1e025eb2f3f61f679f0a693ca0eaa2ad6569261428dd0dcaa121071c44af301ab27761ee09840a9d5679b103acc6ec66e3e818f95775bb9b813e5112d6c7097bc903d5877751b2797781baec578619db8bdbc27824e205733c48803151bcfbac5c3045ff8b36c4974883de184bfe2dff81c0583f4cfa5969c48e054b22e8c16073805da7ce202b90f9d2fecca5ae48c2c2afcbb067bc8b675088625e5808c0c5739f138eb2a936d4bd0ecba6d29cba51063762562885d95ad611897c8672249ab5028e8d8ddd732f9c779cedf2424c4dfbcfc293891ff12c3343a643e744444caef2a16ca6d9d6f2a1c455243d08c5358aeeca57a92e7a08b25aae0443f1877c0a0acfedfc48c1193da31e292088f96cd213ac2f734198057fc46123c460a144c78106d168ad32ec9ecaa1223060a901e01e440fd5d709e3e2707cfd61b95871ad8f6d6989fd83eb70a1dc753fa031a546b56c733b2ffba3463f8b42baa98eabf5fd40b21793bd31bb5896a6e399888fe6db3cef805723318219f7006eb1f1ac6d136d1e0de98fd318e4f024f7d4dd373d9aac6041c2071ba5b1443788f0e435d3337a2af0536f4c847ece818d805598085b2a78aa91c9c5c25111812d57225dffed8dc736f6b8d68499c32f4463d9deb1c298e14ed801ca3b738fd87201aaa285477663fe3d4781abea6ac90b50ad7e5944dbf7e28ff1b3131b84fc00a58a8b5a298ce1fff8c41b9c2ef0669c9663a25f127a8e2c5d7d271b2dd64e7a04eddf1a37771e4684ba0972c39b15a0b5a8d41522cf2b7cd866da4a5974b80e3523730e81975bb363b7222c2f89c31be2cac86f6a0dc307689b81ad294543d4f98909614ca0865e345a6a6ca5d9c06828541a11360da1672d521f7af3bb5751892900d808867f0c63ec77421a8225a6a212558b62036513265fb84d85c1746c46036e928cb1da28778b250536e80fa860182b0b51f09aee900ce294ac0b43d79557a2ab77a8a8427c6c5f86631fcc00982e438800f00883fe11a57d5575bd150390fa771451a65b9d36ee6909205b332ef2ebfb918d258db47a6cf64bf53396b6b478a6e0d0a9fa65fd9788b26eff3932a49fc58b5706db4be11a97e8160c219fadec09565c01353a5d33eb0289e073df50512c0c70d947a430ebf6fc399d1f2b320181fe885cbbd515c7c3701574c3457425ad4e4962adf11308e4dde014d4cbda7844a04b0fc046ea953cfd880e6c10fbc59aa4a9746fd377ed2e8637da77729146b8e32e4089510ceae3f6c4cb0c5ca39c50c424eeefbee3f094b27f48eef68a4d0a17914ccf7e3b66ac98627770094d1deab3ff90bb2b5bc26c0ab7806221cc6ac01bd69de3b184a63380e45ff92124d64c082f8731fc681e9aba2cab13aa13d889d0e5705252a459bdd1852776182ea16a5db8dee6e81279a90467d3b4301b267508a543283477871173bb0c5e14cadeee3e4007ce5a497afaba0808f4ef86815e3c2aad31247dd3c3d91d4e96eaac833bdc6b4a4365ea2f58a472d40ca961c1e01756f3fa705453b6fde4f7921844e4c1103e5a8b66a1f47a3ae556c6991976b02e017d3297f8776377a74ebb747311c435534670deb7e85254c4305e2d11c430d2caccb3c7c0b4f0fd5944a4f17e33edd938b5fa60a17d4ed2a98d1af35ccbb912f86373aa6a58948d55ea83bb610e6e5c1a5c74addf6f6e4591f9d8be72be0174ef1b72c953a13b7150e5feebab40fd7b5972dc0ca51a63b89935af7c623ee73c770f01559ea3f6ed5e71e0b123feede2dec1d05e8c4ec5c0c652f8902d309550563b85c84946800f1a778e02a0de745770e23ff735b632f70a6def6e822bdf445c710fad9456670d65439bc54724b66f2869a9892b3c08558f30c80895366b077245c7599e1d21b0592f4a49d9db71c141ef7d164f40af5ca0ffd0f52b2f13808a5c696a3e88d63d69eea83e6a9ed974a625ce1571542b9f60c0406adb5cd14ffb4ecf6400ebb32647df3a3d7d847bae27b8c879dc5c2f733ace842e5603e5136a7ca15f0de02931cfd3b42cc9d6b6c7dab6b5c099976f337c8932aa39648be86bf5ed88e1caa5b2d9e20721504c9e875a1075b43e227aee2781b2168dcea1bdd8f08d975359bfb0a7d30ce935c5e76212f1441fdd8c6eb0b740788d44f46783f1e5f93701ad73c5210268c7bce8e7a4bf0ffcd77c6f90140d3ef8033e194852a2e3501db10ee152b918a5bc87257de511c688d1e66c821ec4df8fb0a395d97d6e933bc128eaa14e7fe5b353c8f6ee344d4a5944b1f5fab08a077ee84d34291ac639439fef90ede356de17e8ca2040c15be8af99705419e948b737656f086b06567634b154db5f3ce10d49799bc0117838f387799442bc9e07e5f163dc655b243eca22e5e3fa0026b2c57ed84871cf536a99ce4da110d6ea1b0881b914367bb58d9456672670f258f0fdbf560765882e3034519c306645713255b7a52954a3b70ab659d5cb738efe73451cc2ca24f559a2a1a242fd7a930965cd69391d1f251ad69c61447fb770de3ef69dadbc0fb17ca180c800ad296ea9bc2ba737701d19c519c931acca74b8ca63824bb28b9eb19162c44596d9a372b9aa1423e804cef65fa1cf71b95f4dbaa33583503044b44fd39a31984e01ad58a1b414bcd94a9439bcf2d0d5c5c14373472240d74dca100b33215b6280794e6460b6ede1cbbbcda6da97778351c147865d8cb04640ee8c18c3b254910b96e44f6b83dbbe9bf139ca618bf00c20a8bc004ecc472926d54745398ca430950592537c0948054292c7e7de1a60ba39131815836959af886943d309d0daef3731682134d2fd6502c397bda1381c4f0122a716077fc4c51fda3d37b55c38800baefe504f9145314b88a6738ff097cecfdecc688ac63532b81da9aae95fd9792e138993dcd51e08c1f0d664302d19f80e9a7b16a27ec70a5348b66253fe0c0cbb70c436c8fc23bbd89fd59c3a96e4a716a60e3544d0b2ae6895c75f5efb3d891e432313d0fa5ec58f47240b08203411a335bc1b5f374d4a970353df9061450ba30d09587289b90ff8826f9e324b3fff0d41bc5caed71d8cf358199a96def7c548acb2bba1bb3553194b35cd66494be808f3c96abe79c18a73cd0ed80f4bcc7f862311e7c4d3b511f2689f7d6d1b659be05127365473ab27c6135cf563b368a4a1ff4463f54f5b4440ead9a3235a9e3707d43141197b2953299d11a852ffb741cec620508f0bd276fe9e5ddfb47f5fa45623c59f24b9d1e46f1f34464fe9e040aff66ae51b4822b126f8890476daaf421dfb0aee24b955e7c133a8817973e6010ce4eb20ce864c431a0295c29e507a6d22a4036c5b63f54ed87215a48e86e7f8ab1ed18273fa9122574a2cf5e2412770ab5621a4e440b8fb19507e4e155fdd596434826ea471e1239af58dc843a52c2026783616f4a64dbb7446cb1a96ce506bb6bd212d0aad981fb4d3d474a54c30528cb52886af4361f585285c6a31f0a26942eb0e2458c22f0a1948daef2890e6c7a481f4f7c790d6607b0b822da5bbfce786a230cd0d60721f20fdd79c39b4be554b14959aa5d71488cea7820017c5667d99c3b7f9ba75033a510caf3b29af2bca624cc40502597f7f53f688f105f67b1067acf7cec4cc4a24e630296b0a583cc4b71397b34659ed5b0a4e6fd0f3a760a496838f8e3b45eea8e8b090411bde4e23203e4808114624eee10a92e343600ecbc73f4a872bdeb153c81838d5b167f0a085ca85574d8a52ae30d221402a5c51ad9d00dca28057951cda9dcf320471f1c46e3a5ae9317aa2a6c5c92af4f4cdc5417dc4339ba7aa50734ca8a8570770ba2fc1bb949c281a9f88dc2e81eb2664f58901ff691353139edffbed205f5520db74caa41bad8a587a22e2a4b784928786b4c507a3dc638dab2e0fc9fc4f7b2b98bccbe19043fb951f713f80f6e2bf9b23e0f9dac49e3fc7bc35e4591e7b482df6192b03c551b74bce50be41c6b71ca6fb04cdda86a2bf3a56b1ef521d26003407ab804e77ac798741224f2a79448895a9b68af5de4ce9d1989ada2557f99750f3ac7b7ba62e872b8d4206d94dd186256b6b0558209596e5e8aa15d516ca0f1af09466bfddc3d0f009945ccb07922a5d6638db25870e6a109384ae2a1875deb6e72b6cd91f366a0069871e2716d3119a4c36d49c90a1746021d9d3007eaafb3db55a8bfc923c6b28fdc7ab9dbed13230b4aa9f15cc86e4ca13fee6c4d2f54f11583f89a73fb771b780eb9ff80f3fd0a8438b95a365d33c3a3700182ea32b4f2425d0d93aa54a76140ebeb3206bda5ba9bda7e058bce603c76f1d23fd46735316a34cbcc25f77731f64bdc9ec8b15a67f141a88091f00c7fe42e44aca5f2483b01c3096deaa70deb5a1fd3122b509931d45031f5de4be1d533df9ed13ddc6fbb435d62c60e7e2d53dacf6f08697c0490585eaaa3aa8a38e95de18d59e9ce2fa34c0d5e981a390ef2f5ffe711fdbc67be2a1d94c7a69b02b8fdfa14c2c0c548b764b0facd4c083ff23b59c0478411116399c1f5acff3b535fa3b1b311696c3d62b741cfa844f5047fdf2f369bd4f584508c5e1d952655f2a037113822954f9e138384e9887af1b8f83903634d76b9c0d6ab3d37cdadb38c23a92494bb9b6908a50c1689a29c1720c565292fd676cf679112a153ca90ba37996f8501f9d10303d36b7708bf18a3d2efaba1e2e89cda063f8a1be7a726e72ec20ed3bd590dc3c9ddae5ac960a3f8cf8f80c1ac7d64dc713c239360b9ae5534fd76392f56d73b99cbeebcd98dff8e290ac9ca3cb05bea2452b078130929d4cf2171c6348656956095d02258306b0b23366854f17f82fd15023cc1934015bb901e67b1c8c497117c5a07825a827588cd495be51bce3d507fb96eb8e6a6f07fc17c1ea0780934ddfd63d374c205816a67c422aabda375f48c631ee7f0db9200356dcc73c3526dc45dd1011acae37189edac006cb74fcdcb6def2f474e9d2cd04f0403454191f1e37efa943323981e6882e3f791d208900dd21a7b14839fd8586ac6e3516c0d131b353ed0843e9cefa32bac78245712ac78626805f2b31fd4e81b4d6e02faeee9dae0ac2becdbee1983c508ef2b06947a5038b1b2dc9b536052838c821c7b50298b22122d45bd002f938d78a66a546b59631810675e29267a120ed901746ae118d08e4c4c04b31c3f425d83d26db5cd0d4126062cedd720701cad41097d72c2adf8ca5362db960e4dbc3a75ac81cd56166bc4bdd2e11e94b4665084d9057b6af8760a0ebe1b2a3505d70128b1e491bc5bff453aba3e9313d65cab4efdfe752f9583f9515dcce03b9af8d8d9a3d18c705bdfa94b0380a4a9dd827d0338f2136527092d7737770643e8078e714522b61044d233dd773acf2275e9a9f4ca482bc00d3d9f44dff1e9e81b540a0c8869d186a89be7208d4fdd7d02b347da20a6d517033ada564a49e553fec078dd467b565820fc43cc9c99f1382190e7704de8d9c4cbad970e56cd4be1913b7acc4480384cf097492eee1170a36d92542e13736ccf126c4ca6280d905091950cd219aed8657dbb2c757bffacad4264215634afaae766cc4ff058517d6051249074f861d2c38ac4f11bafb4c60a2d6b39ebbb4b2c394745204901086de9820977f281a854106f31affc3314fd2b8d381b9b8f80042e3c25ae346b6b095ada04d5c91ec299b25d540dd541b7218423a238823d1ad556142a01e4f608ab5045499c43255bf88083aa3dcf97cf498273194e58f0ddec258959361d665c45ee2bfc73ebcc6404427f41a020498e8ee9f836d0c0ec66e6cbb721e0a7f868b5b69e48e6ae04a67fc9ceae770d6589126659672f91b96d928bd9e66a901beef9318be77a624ddc14b438b939da0d37964084b3d3a44dcf94c8d22812a83f599a885f9cad43ef65f861ab7679c376b47a2050d1ea31ba4429b85a1d9927c80b968073b9082376767378b05b8fe6b32e9a6ad68e0f29b699883b11acd62e90e362de100cc93564cb5e358598ac653272e0286d1653d8f152233e8539128a89f6b25517a15bfeff1f8d5c422f335e246562b31f8e0b01fef8d392f2024576f85d0d5a2c0875036e1686f4aca77f5d172ad1b2098f0a6c45aa6959bb939e53fe938df1332f7173b463c714dde933fc695c49ef4c344ff5ca70c57415adbfb781782893712c779d04323856267f2fbaac1df6638e541062775ec32d4234a5c8c4534244b0d2ba487abeb5bcf6456a691dadbd961a2e66b7f908690cc426e88d6d9d04f022599ecb291d50625f61719c67b8d4ab3fea1a6d3d2f032a3206901c782e6a65673b39a584874f52447e5be81a694f436a17bccd0bc1c03a180d3d0bcc7ef4b9cdc0724ed2254efe9c00e0644cd7ae006350d802a98cb412e2569c574da85cacbf18b0154135322ef50956a7065e92167e4ba2e8748cb33d917088ad0e86639e1c25db163286a336110194cc59bb3c8c46f09445045a53a8479ba3ea70a72a67ac8debd97b88ce879d96cbd5c781252115848d4807288e2532f5cfb632907c03cc9a8c090bcf8e5712a545f439b45244a9cf2225a698b656b43aefe38ff16f67db26f25cd8ea01e75057c2723e5b6ce6cd0a138b3d260bcb5fe98fc7a5e671417bf295b3360cc46f03d21942789dd9fa1b8ccf17de87e629dba1f6616f510d4aef4842089a67659cc074565f8760b8075fc6bfc7cb9fc916df784bf9441918e08397679891178ae608153d5787e0b093d888af08a9d9fcf741ccf1f140c2cc7b41f2d9d28ac01adae245a67bf823bc0b37efad46cec6ec562568e0e8244b481327fd15a655eeccba4c31d964c92db87dc099043f5bbf100f107481e702fce656d6c67dcb9e217e301903d7d91c1ee1d6de4b01e74b80f7720b08cf27ac99fa799cd0676a0327cbfbfd42004cdc31be1aaf88739b15cd7ecbb9e96204658fa570d9932739e977349d014a56d62406e76e0370e8ff92c2ce3f1c103e9cf2303444e83009899a16aeb8af498de1bd5a2985fab487fda5c02ea4a6b84201322c7142a162cbc2889e3713e06718a96b9f6eae6992091675ebc16f807cb0066441308067c2812e8f80309f36a1d83c57988c5b65e57b0eb3fd6d66fae3d6359f885a9529ad54ad414dd80ada8584aab1934838308d296975b5715d833b1ef2f464aa674b080309c2b30a5c493523a50acd71ddb0a491978d660c2b31b584a1bf63a4900e2dd3216b493924e9f8399de34c9a0da9f688fc6379052497626de04ede37d4595022daf62ccfc92916bdcadf840eb8f6047fcad667c06daf8005a4eac391175cc7d36b1ecaead6825fe64411ed07a05a8c52964f182ea67adf3a86d5e84b0a0d1f2df971eff8e6699e11890c4e75eb0627137da3446296f94de510cd7d54e1238d9972f76604f2f202437932cbf6d10b4df18e70ad6d20600d03fc2db62dac6d47cac75bb75e3b8a451ba45012baafdfa787c59d75e4e6986d2f8fe10149665a85a6e0eb6e1308fa72901056143037a2decd2ca189eda80d1db13ea04dbee44a1c96fc7c21d0a796fc000ee09295d7d06e470808bfa1bec1a2865c2bca2a99f5a60ad7c7a09c53dabc8f6e9a00cdf28bba518204fd7d60d3a2018ee80a007dff94f97857b05fa5471e5206f84c8b07dfb4bacd1bbc269ef75e5c2fe8281b0f41e443057c35aacc28a114c1e7bb0163df2527f2258f162384854db646ca1a15ebacee0d66f75ed06e1b0a43a8ebb32bdbf325248a830027b00d1766e7a91238c71f166a89066501d8ad4c8179eb069f5974490e7d62b0edcdd48920110cd0ac571232efb873d7e0d4b24b43764b4233275a7d327fc0fdcc4f0e0161e9ee7d398b539627bd919e906ca0c11d236db67caaf6283df4007628b152548b5e182ee2ed31018d9988a39c731c3759755087782e8e2c4b0328c7417ccb14a7f6e20c9132c2587906259ce9179f4c0a432ba5b8179fcf3347ba6c082a9701f1bb01f48745f6fc4b8df44f7ecb83f2fe25ae112c832b76c75e24b2431ad16afc32fdf242c3c8159644d36e5d7e3f0b599967b3132753c6e93d5359e2b2c95e74a1740e532ae47cb50e5302b618c6ef95553622b178d799a1cb74d804ccb7ff5a483350192f44e167f1ec595e79f6222baa05a1e5dd08239e49f621a08d2431a6aaf9fefb1209f725a057e30de18af1e72ce508a0dd7ec4c4bda844d61e65887eb4c310e508791099b515d325ee591dc284d86b1b5dfda5fe6c8affcb5820bb445198d3307c7f76d095054fde002c1224d1f620bb419313c4ad6cbb46516beda2ca37cdbb1e85419bf7d47eec9538ab99644b6414bd7355e1e903f858351dd6083556cefdf832204df5cc6be75787e04499034c699767b5cb07f97bbf79f45339eee3ddf08b68d1d12a5169fbe95736498da2057531dcac58c4c7824a3ed386357cb8a634fdc42757dc06368a09829bfaa6dea4a2c70013b04bbf9aad259bde650cfaa80e8ef3ecd30858285ddab524b343af32edc94e648e93ac7b77d5454bbbb9542d65a35ca7dbf188d79a5c13824850aab48241ab656ac0b81eb0706243e3a6700c94a980705462e2821ef685489cc5eab156ada0ff55e095a04367ee9f56f0b52afc58a6fb12fb40515e516d64ba3ac7507a5d7e5a9ed64423b6d7e12fabbf6fdb45afdb84cb22f870b647dafd9144a1a40014e79071881d9f84bc2a324255f1832f37dba5366c0ce4b6681545840e64b075b2cd822646038ad650f831111ad4dfd70b64c82b66f45a9aa78a03039b99641063bbe1b82c51cd9e0123f1e37c51727cf3841fe0e7d5ec179bdec328f5c71046a326935134f3d83ded350788d1f886212a7274ae2570377cf5a2078f62868256654e949aec91ed1652ce638e20fbc6481e4e1d614be2ef80aea0f521701368208452d588693212530c45a93cecc249c3ad84260f3e60f0e6fd3cd422e0247d5c6ab2c0f9a79365e19b35902fbbb4684deeae171819e34a5b49a2bb806ac5e808819ef55cd21ccc2675eb0d90e8036d8e758a4d0ce22a06cb4083cbdda43a4836237d3ccc1464337ef756ab0d47fe110b948155af563fad5a1757e58858b04f76889d907fb7648e34558de16ae33d8f351c58d5ec69a99117dfa9d08a386d6a9534cb00d69df9b7262e4bbeb965ba4d3c87c7a96beba53bea968e526d165f5d23f42cffcd508dc2163bcb5197cbc8ed1a6847009524779ad52075b71bdfb5568448909e58c5ed8c8b31bd07d18575b81de9b142b4180cfd82c4ac64a9f2bb8c0e93889b287ef2d1fb726342728cb269833cfcdf3c97b730d039a57f27cfccbf5adf936e91d63075954e861c5b73af3db7a9f6a7acbcecfd11f13e2281d933638c2710edec243d7a25fdf0bb7ea01ae2466fa3ff8ef0f932eaf8aac39dc2827921093b31711d680ea3e1332ec997642a8d0cb009b6f34eaacd70956d1b03efaac63d820469be64ea370ef82827aab13b691ec9a963c27db7b9ce56469ee88afafae7496dc885862004a6a96582458dbd70e74abbb235ec1e9d7bcfc9f3dad1cfecd89d9027a124af730f69127cf9eee4e05826a74ef8f1220e282bb43e672591d9f7dc4dba1df4589120ceff8f3e441661c48e64a8e5142eb0090dd097e5f24fc8cc2577124c08020f9a9a5d084c8c9861a0022154d46ac5c0e9b1a60675306a684e2d2b500a8d0faec7e4d68312fd1fd5eea90977f455b12d4c61d1427b05680607ed19ccaf6e4360e928eccc665244d38bd4ac37e7511fc1be7a53c2731a90742360dc7a0f0f24bcf4507c218326c33177a9b6102b283488b6968f0bd660751b7651f9735c440df0efca84e8d175a5ad9d2b4bac07377c7dafad813a765806a6bb878f4e0cfdda98e36d95301a2f642d6fac186ba46ecb30398bd444bc0b6c24caafddb130d28830766505f037947b8302b3242518361147f67c8c050d565d254cbeeecd0acee9650d90184ec4324355f1be964cd012b7bd664000235c7cc153c68ce0893a9eae4cdc01d82d610159b73d221e7670a337b88d0f2cee24ccb28d12625ba02d223ba87b354987bd840f81f278384b79976ccf4324d2a748a1bdffda50fce2e6ce854084a784b5fb871b531449f74256cc53fd71be844eb3b2fd53e6062fdb95cb9d06775f8781f75924b931bdffdfbe0dedca6255e8907dc3ce80ab9e79537618afd6283f6ae4c5b84f6a0c70c2f53a5d73da179d0fccce409cdeb9ea37968de4c1e54b9d1e7ba3d2be3e3c5c700dda1d5b4fa2707f16f62e3ba2ab1d9ddb51a9ffeef69fb9a841bf469d78aff8905771e55e8ea72d7a2adb56e00183cb8a0b2b3cd8c3ecccdbf7e5bd81c890a5c4107cd44f11803f95a636ed64b19eab96c785719417db83e4a18f3a66d72ee2f6a238824aa65dca72b379cc705632d768b8e48ff13314331ccbe95292204a4c63a71a3ec8bc110f74755d4b96f46acbb41482c169c0fa2a437ab396e0fe40b977fec30d2d1702afecf9bc1056fa01b03ab1066c157cf4a6bf4dbbdecc134f886eb2b3e4602bb16fda4c4f5b1ecabf69aef485fff9a9efde1dd3790a7fa38e7b8b88f0cc254bbdf1383d4ebc5f765a20e3bf40c804c13ec1441218c09f6829098c8506a0f4d7819506424fc913d8228526b10fe63146049d5d1d62b022c29885077b210881ce345a6b8d8c847f0a400478e974a22b94c70c7ea33e28b0e3e6fa9b4ebc61bc9d6c88a2c47f09774cbc9413fde449c46effeb3e7c8fa4270ddb77b2b9e13985060ead5248b4ac7d57a1ef4ae87ddfa3aacda4d3647bb21c4d37aa8ead7517c621c76c737ca6f5aefe7ae1698ff9625d7d0d5688a5aafee03e1522a7152328c6101efb54a34077ef6ea72b3165adda617817ca8ab45e5d4971650bc986b8450010036644e8d830efe7c6be7d6661ac91e67580da36e175485526f9c3fdce2e0e27f193cde5f4f3f0f1dc579c1fd77b2212f0e0c7cf99324d74c3357bc378697775805c4f6526c50244c2dc1fcf483b23ea2d0070872dcbb86f220c9133d86535eaec18b12881ceceea17319948bcb042698ff799b5a88c47918834e9ff39f21f05345dcca72fb10413d044878cf9d3947ead3b12e4cf6b138b80bc95e17837665668b4d6c82712013453d4a27f105ff050e86d71367b9aa688f5f62b9a34673d00d19249bc00b812386b88504c03888629d65ec4e64b414e921a998096f01b0fb8a8dc4fda34b60acacf7599b03c2a8de307cd707c6ce5add935c4b7533163aafaae7724a24237ac9a2abc3262864a05276754c7824201eb6b64282669249772a00d46a9c7479425527eb71a4a0b2db52dee8d8e7b205ae03cff7e1df319ef9010d0845c4e9f041c9b5773f2ee19d392934a424e42f69efdd523fc809e1281aff4868e3ad470a9cbf1079b31a82eca15c0d7508bca78458e835d1fe0fb5f17fb5bd7939dbe765dc001f87110396d1933b318489c974b545b2e839876a65fafc827d3538452b9d1ca47c89013e873fb82e690ce7c5f15417e54aca06ce9a6b1792262b904f12946d02468e8699af1dd85c8c85a42fcc5e403a8407e31d8b6b831056981cc5c1e50583e47d82965cd291f531f3c9f400ad0910e645667e9ac30e60cf47a1d7e64c9b0a8d00bc022ada8ec0085079d4db942dcac378c9d5139d4ca5aa1d233293c5921aac07b488e1f84b083013b324ae0bbeae4b70041bcae5bf381ae541e9f397ec6462082124f025a8b5995bf2de0e98a7aaa39be4098024c8a10d0c79422591c49efb9210061f5a61b9e41d046362c37452a2ca2b081e20270506ab1ecc8d69322611aa95d52d494c48de4052f1d6fb051c60bfdcd467a4abb85a8631c36455ad390baf5470ade83c173594156014fbdaf4c1bf560c52b221424d8affeec0a6213f2d5cd07877e7f5d63cde8363ecb04793f414963bee7c4996fabfc4c4d0b884bfe59b348188c637af3c571e50686c454f42e91a296008227c90a570b2cd0a05ec05d97bc8f28a60bd768ac6d7efbf061877763698484893e5c7d5d71cf06e2499ab01caf7ac44ed1f4a83f3f92ab6f1e3c428816b6942c901c70875585bd29623590ab46b98c6121e766762846e66e1d9a405badb81696e062a606cd438b7f089d31691045c88c277c4cda87c9208d63bd6bd1c78cbff7709c272a664cbdda004642204adc19caa5294c2bc55ac7e954876ba765d58d896c363d030d75ea37fe83199017ad94347e6c4432c2a559d860bf88c3499a179b9236349fcb4af15cc224efae3d02009da52814ff650c24644ee1399c01b71b2ae8eb5b615007983721123c9e2fdc63224a744c1777612007b4e3ec134af25e09eb1f9577e7c786ba03ffc8452780f61ab2309316a1a1bb4f3369ab84c8b1e3ed9277569a83aec3ee2f38f79286602733d088a347d7ac7d9bcb37a8bbceb0580fe374b1aa6c39d8c052c204ab69c969ba7cf99af74fdd873806926bcca68586402a0bce8ce398d03af32ace334c9b618f21fa9cc00d5099d6608b788d523c13196320e766f0b48f0b838599128c8d381723f5dae0e31de42e77bd001545687f9080d2a0dc7757a1c6a0116c4db0cddbcb5001944de6708f727a84ea2693fb45deecdf85ddb83d36c8a767c4df6b2ce5c7e1c4143d4823195a03e5839d4e3b7ac9668c973bed0707a54fed09841c802d46ba385749e74ac7c5b747aed43223fe000030cff3b2fdad6c8edd8a10ff4f6ce15906149cc776f532346e98875f244d13432a4fb5abac15fd40037e6e432e8b50572b3aa8a92d5a3b4b5270f2634125d6232f5039624a233e667227902cc4f2b93c9695e9fe23b89f135645474447a364a0204d6f1fe037db39281704a3a86a0a6fda6ccbcda51c40ad4a9cca42c30d7f8d4f5da1c2e2c3b8d4d3c7d0cdba64d259bac024bcdcc91c479d344e279fe9093a43e2a628fa2bbc8c6631e171a4f94c7b205bcd0d8fe51f0382edd7b7182fcd2cc79811240e4380ffa930610cf2a1a6b475da47bd0e913557a314687c58f66553895796769cb9b9a8d97c916c4c72f48c2cb795d6a03edcf754355d5fd213b200866170da3f8d713d0c5b929083c716ac84a15f94b6f3fc20e588b537882c6587ae7c82f100c612b13c1f390c86abbcfa488a9146fe39713242fc85c6c4986a246a11d1a07193496fcef59b20a6b41f2633f73aa744edfba2b7a416ca0ff18c6c35c234bf80f1ebda1606cde69b713e226006333229d8975ec88a978effe8caf0bf85faa8225827d4b194d4fb1456c0a041677bb37155444f8d3dbd7a675271ae5bcf72b87512a89c02729f8bdfa2b7f884e8e0522c2b280a013153ea67409917237bde2335f039c01404f82c6d1c346b5225743b1d4f4e94fa394aa997dd0da6cf50f97566c68617449601eba0876a37ddbd2a7c4e91b8f9fbd80a1cae5ab304e05120567e291eb8ac09a5dc94c8dab154ec90fad1e03103419a13061d0e3626a11128b76991d58405cbec06dacd2a245e3f0569d6c555610c143940ff1bf9437ed47a051c6a256c99ca46fcebb52507fa859978a05c56b6186d16b56008a642d5af030a738803a778f37802f48ae291e7403523c0391d3609cff09d02ff8f0323b62df3baeb85dbfe8f6802dbc0a3bfcac613c28ce717e4ab27e975ec0c057ac2601f6b0fa20bae6cd27d248a1c24cb018e283815d763ab78a0c456f08b4b20f162301bf19e7e956d08a1198019926253c62ae396d15a962cc348ed95f222597c607a85152db149004a1408abc96745e0f49f3ae5e6736413dcefdad488aebaf18268609ac89b99794fd52d054a029cf9f961f9e13622685d877af3f30af4a2adadb26c8c80a8a630bbf6ade43b2393375224ae9ac4d3f6c20505d033863bd0524674841244e6df41294026ad5eebc561d8c309a600677348060566d7e62bf3a9b492b8a7d09b99344d898013bd7e03085c209624c8d086c853b1a2d47963e408cb91280f0c5a54f3240f01273de87d4cc12408c46175c5fff3ee9800b9b4a81dd2f59f1c9fd3e5bbc1e01d84690c48a84524a093a3d8ea6750c1f4a33b5af7ba491309d1c5011146b3f1c8247d5a27884646608dd6ebd9fc1f5de91faf25cf1d97fba907d9ddc894b27ba14589be5903cb88d391c8385446dac0f8d017f7a6106ab2c0930eb3b5ed24b58562d844a85a96bd233105ca34c209996631f35bc6927846094eb9f191f254415b53170f2391798bcd30410ca0cb746e0b276b65849f3e99d7c9d7f50935701a8a5ef25c272582f542455c371c822868fd96f9f41ea7fc45bd2d88be00cdc7d82f32566cbc793e360135c2162c8a6607a6c8ac298469a13c173c17f483e542f1f4e4164bdd9f88a632918900c2440b6023b197f8eeea7e2cf979df19a9526f9d570ce997e641090a4d9848ae913017807e2e749cb9607a856128d760fbff3960deb6dd0a75f8d68e8e4ee1e52a79e660507b40fcf6cc2927d3b8a63e8f591ca7d3d03f051a799654e4c6e2a7e389584dca18ecb6cfbe1cc5b2ed420ff7f81f6af4a203cd0ce406f180f2a2b0214d30deadfff13d03136e809d713d041a7fa9786576fa8e34065259062ba81fddbbf047ac6053d613db176ec547f35c2d00dfc38d0599040c56cf1a6beade48de7af672b52c14ea58f0569228d26f40ac0c7a00dfab76d2e261b04daa41aa8f803c6efbbdcd8fe5b7d6cafb164bea01bf8ea86fef272a177d6ee6042119a9c027491a02099320909c11264b008e06c0bc3ea18ead772d8bf0926c253e316c1f45dc3e6c8050956068a5b35592f50b721c765f209dc2e317dd9f11e1ef065113e74265905788bab15a160d880984af79e61970b37eb6b9a493490503b42c20e190157e427d40a490884ba59c9da635f56e990fef44820649f7e363fcb404c760cd96701e0143b17995a3f174119ecf92e8258ebdce528e49ee0f190973bb87fe8ea43c2c522307e7c8824332108de96da45eba12e9f6477833b1a931a10da24d781d4c3c638e6cd36d2e8b426394c9cefe061f099167431be865582e1de1793a067989635e0752f28c3ef1efdbf5970476192a064f574e6bfd885d77039994b620d4ec3ca86475307f3d0de595f199755e41b5a1eacbed3a725c2c21a389d1ba2e2e8dcac244aebc587459c7787ab01220db4661059a6477ade444705f7c7dd0bfc65bbee0eee6826b244ffa4dd84547d61cda34885e913b133eeb5ec63a166ce09aab5eb3e54daa7cf74771f75b71b09a51fa4fe1d628ef75bececa9167d7316b3cd3655bf1eb15762023e8943a0d1231adc93340a84d65ee4f53f1a90abb0f92b9ae0b57af2e277f4bd14fe6f07bf00c361b5d2f5df50ed7ec03607081a3a934909421a8db51cb27c7062f8fa3b9c1317130e6936ab059bd6845741cc43ac40da262d4146c61fd39e46c3844c23e3d06a160fa06e3997da07b2e568182e4f212f9c5dc50e8e582e31f1c48213d6605c6a79ee8c4d6a6b394ceab04b213c482e651233a2697aa2dfd4fb5b657a7999ecba6901dfaa29153170442d8a699281a2b642166e14f5f382c86e5ad156e4a96eb9143a1f9ffd22d93c5b330a563ceae3496aca1cf33706f3417ce41c261acfab23a51db6c8f654037fa0823c8e72554103ef284c7254e584764339242b77472c06b0925d842f73ac82cf440186f01163044df3362328b375947a87017e6820dc28ff993481df0db762c91ddf48a615794f176304d77b05e04f26b3ddae896f77fc6b6afed8e5ce3dd23b888c5bcceb2b98b2ede4761033940cf9dbd193d3757ee47edf682b1761285dea141917d3bf0ca8faefb3ddddd132db7747611a19ad6f57e90dfd36b866141f53d08d442a34bad1656cf57a7fa94010a5e5dc0c84a1c5e29be63f4415b3a448e2f5b1ab470c60c2a38eaf9f178b9f032b3753b0bc01e1d3245630eb0b52eeaa9674225f079ed9055d95deeb2843075ae2165c7240538bf5834b893d443ff42e30414ba03c9380c95eaccd7a8e60c32c15b62114fd7eb6bd9264284045dff58a8c1174ea54132d830e10e99c2be77b08f862cab72588d26f587477b1074455bea2f154f1fe82f67caa48d85194b87408d1392a80321227281973c73966165913a1738c5555e4305040ef5494fd91459702228be20d8ad2f78d478418da3263ca738b5f16defffe96e00c6d69a39ff213570b8fa73fefe8b2cbddf98e34a615d64233c5dad26e18d04059e0281edaca23b589e41ef5fd226092537a02d34b98d57a22c9fa9b834a284d411b03f2b378fe168ebfa686371c20fb7f35a469874d559ea849fad476ccb153955d960e06f0f0d7e52cf9c2558b9799c868ba1bb349f0fb3225357df0814c67e1475ccb6dda17b099046777596d874080cd801ca7619d6dc7d4a10740cb74406619318297af8e218d21e4d7f79b371540e15690dbfab17bcd80249bcb59067071d8fa62de2f70072bb841b8ca585877280e04bc680ec916814d8585cfd80be7c05b0d10145ac874b2920d447901ba6a51d5c931172c7cd2070c23047be3adac650141bb754bcd357172500b9619564fbcf649b10bdcde354cc4ca6925f49fdf79a60e6aa36616c815a6c43b1cf021d500374ca355c18ff4fa7e3940b0b0f92be93edbb31e1bfabae3fc6fcb2d1f005d5caf2dabb676c89eab73101325efdcfe63e2c6ebfee500c182864a575e388de2795b2b658b7c8071b0085e5d2167465e1b108cfc2db8145e48ad2b3db6ddad000c8d0e83c4b678eb48c5e8d3f596fde98e0eedfe2f383affbea87fa85590a9d683f042499305b7991878a048879a8679ccf17507946717f62e851d3ca0f4bb02cf7b5c777e6cad89e1cc51e1f500c210b5831fe3880a3fdf95e2c889904f3ce1914ce63b6106d6c19c558322df0d9c06b658b095d6ffd8368e7dfa1cc8408a4b0030354c3d53ba98cb1614bb69a9f25a9c1ac3b3e183cd77a36efb442d5d8e216851c55d14d000470049f3a35c43b69e7183a4789d3edad4ca664ef29a659d2a29b178213a1a37ced05323764f6f6515a3bed138fd05d2051c258c7078f831053646346e703df3c28853181088e22893069db890ce486dc9629c294c97e3ab0b2d8e8033cbbdeccc6a40410045fea96b622f169233eb56bd21d6cac662b037c4263b63e76e19d623c7d0374485437499e95acdb0aeae07bcebc7cd0a965c492fc7df2058e09ca5df294cd0297f9242a884261e861b2824eea8105c7b43bc7e7ff6a0b193e45d69484dc5f8bfd167220c6707d3a9f2713470f6e70fde47ad1e437cdc7983b6ab07ed83d0821a80c07db79a764187b56a7d4ba4603f16e24c994a21b27309d5a7e09f6966c0ec184642d812029bd0bf2e0f70155a60db2e7cc2e7032e26c80b446426906e97634f3f1f3e5e320ca45f176d3fb7573bc54b53a43cc3ce34107c048bd62f2e041d1183354747be771ac8f4cb5d999c43e93a044b69b7188762a9e7d6aa5bc941662c03f951c928b620d1416072c2a90d5a8f8b164b7beeb1cf94bfa5b53500b338cf7ba7fb0eea9539a67b2f5aee78fb457e833196d5742265a8340b4ad26e78103f995298570d797504197154cdb4c04daf52a4b8664580b0637d927a5aa4ce686b0bd14fc76b29692f74d723a2b8855cab9c8e4eda2c893edaa8fa8cd06713789380678552e97c4b9059f388f6098f4128c52710ccf1bb072004c9e141622949d6ef0daf07da02ec34fda21a8d7da19605e0e30862fc0a4218df09935d2a3a033f37ccc127f70c5014fc9c08ceb85275f769004c9c135c099da6d3c77128c6eaaae2f833aabe1a7887b00fa1ea0740ecd218bceae81bde9a5b3be981b96654aacdc4f74a803bf812944a838d3f842f4d1b0c0a5dfa985cb991b925b37ca04f723091204aab10d628fa6cfa4161401df092c6649847ad8824b851413aeff914f4f211105dae3319513e2c47e26515c1ee04068dbe8c84a07e8a68abf5acde245390bf231d3c543d7d0b95112b5db91da3d95544f8eaed3f529388493ed7fbae77685caa496fcb5cb345b72e8021c5fc652744cf38208855a1c322cb9c5e5f29b66471ec813cb93f8b5a1dc363ccb495e5a9ee671fe196060cfb6f0621fa7eac73d86f094b07186332d14f23efd4a94799949456d96e58c186f356ae77852de9f611fe7d71804c4475c96c5ad76e8f8de0d4240a3db6fc970e6387d3f0828bc952c3bb20555236101201f3ce4ff244d4be820075322d13585ee1fe3f6fde02ad5f9fb54d8dfbd40e298820ea3b9901846cbbd27994c2fc979f73df354b5a082672215ad5e9aee63485fb2f000191c7bc0a46711414f0fa80c26287df373b3f2691af1f163009a8ba2581d24027127f4a9e4320ef664ed8bd2e0a3aa702e704db7e29297a86e0da60705c76f7a99fc20728ce9b3e93871d34e5ffe8b9d64d0482cc80940ddb6650e499980c47104d1ab20d34c466b3b58713fb5ef78f81ba686e99290311c22adcd097fbc01d99afbc6e36126e7cb8eeed20334fd240e3b6883d92bd1cc25886cfd7fde3402cda0a97e533b3d987237ccbf4b1ba77a0bb54da97030c4bfafcba3fa07354dbc7d9fdad7373609c7bfc35f3e8772e79bba74e12cc43741dbf6cfa008ece9854b49d349d3de0b6cc5797185e3bb3faa0388397675416b51be1e3feaffbe39a35dff6694f6e8302ba315c60ba5da0d99dcd33493bb10933a245ce576743092431021a4dc9425e40121aa903e5c8b3b2be54b1af40a9bd1abf60607e9d199e4d08895ee9dcd8f39e7e2e551df5ecd1839d377367a050770a785cc39fdf3951fb8e32be409c30a5082f97e56b0d58d7c278790147ecc2110eaf0cc404e497a4db6e29534a2912040c041104a96f649ef517d437ee6d1b64f94edf48bd6f5cfdfcd8617437c4645a6e9793db2f8ad2b390201d400d0e41472f8570dddddd9c0773522dfdaee4c2cc20549fdfb3642281063a7250ed16032d0cf73ca1bf1fde577a0e0808e801f349df624d59b9671b74a15dd0d1cb1fbd1e6fa4a29ec743a5a29e4755de9ecadfbba9e86da5e4a6c4f3964ce191dabbc2e5a9ae928832ef285dd97e7eb7372e98074fedfed1f7025765a277a288832c268a3eb2f6f64e1613c5984c94f9f8c121c6654b29a57c5114c5da3931adcbcef8e147d77db2596d569badcca9babb9278a132a02e12246030a57f093b50aea3cbd5312b30057604ff1cab5a818581dde05237d09d203ba4ef9e7b137867a77bd2ef94def45c0add93de46f7a4ef4a6f633e09e2440fcf4cf7adfcc5db082b72e06f95965558a13a02ca4f43f6a3fb1ca12a5b9b1c540f74ba4633d499cd66b29c1b3ad273745e2e20524a29e52c0a12557e50f4e0cddc4d250ca1be44a767f97e8faecccafba316963322996042ef932d0caaf48dbb05a903808d87ae5494beb0f2e9d3e7aa414a552bba22a2373c6c7078f0d8177f4aeb2807d3ba8c5cabee2e7f5d462d610865e9953084723fb20f19e12f6c67b81545912ac7c9a83e98c671a7d3db5859f9d3cac7e27656defb58dcef8cf73be38f43478e0e77f2b68643478e8ea995fa0035bdf7fdfda459196865845898cc5ffc51390be3ef710f8751605f7cb555a0461ff7a15e30e79cf373f847078802b5746e34e8b5297374d89f7d308d866935a01a9013194401839aa906538dddb99f2184bbf39a0313d77a89e1113a7e7509c3073afe3b2c7487ed0ca45b50f93cfa39e7fcd0ddc597c87386e2fcc0a297df8461b80488501dc3910c52a6ace8eebfb0973d31fd2fe5139f0f405d269ef8a18e3ff31aa45c7183271d0ed35fd3e774e92ee4d2b54bccaf4b1559ea22b12d21f2f0a22e92272e84eed230ea219d9d8c9df1b223800b53001f3a7631c295a1379a9118315cc2580df89a0911d18c741ef7c3ec988eb12ffcefd231f257e1287a0b98818edd821c81afe30d7a9b09b1d43147edef2a067678debbc495cb6c993321d9713c16942ea50552109985b3c7f4993fdf77fe325d266d707e58a3e38fe6eccfa5c1590b0a83421b58a78b9bcfe2b81934232a5a22445352b345a9f3e5adcee7d85d4af92ea559b7fcc11026996cb5cbfd614bd62ff38b4d93cb7fcd96ff426146405677f912a764f992dfabc1c97df3d7c506c325ef3f56fef21a75cc530f1a1b09e8ecd0d676499d51a6cb6e078c26cf64a19b2b4208930e4a947eea9451046df5388cd4b34f6aedbec8d9f419699d40b53fd2d08b2de8d8d5d94d9fe9d3307a9b3f41cca08e1132d229a8d3032a7273a28e13a8ce225a28a9e32452e79cd53927adceef4645a8e05039ee2ffd5061d940757f728c95596766c9eecca6e91d524a0ee2209d194784836692934133a9420fed121934675090fc3888de3c1e54444444b625b5dadb6a4b9808ed7e64222222eea1ba38d1dfb8a8d96a9c7b1aa3ef5aa55af36cbca4e6ff31560fc5659a3946231c0d7a37e38789c39583ebda009a7ee94f467aaf499e6b654e0e33bd7bd7d269d03dcf337dc97b1ba4f73e93c7ed8c89ebbc1276a05d4717f71541bbbfa163818dc9c082dfc2f8975acc83836f3858478e1b0e1d3a72dc70e4d08143876b898e1dbb04c7edb6373609e951dd67d73e965cd4031db9a84889730b9585d856bdebfec6390016e6ed4bbfabc697eadf28a3fa8fecd342406aaf38a0eb37ee60515d880895a3d20de9bd4f96a004f58a63fa4a1fcefa0bf7edf7ad16c6ff53c9b802d583eb39e4f27f70ff637eac417ed161dcd7f50bfffc98b7c6914084ba48a2c8c0f9722d8ed5c81a99cd6ab55ad9d47039658d8dec1a3637fe35abd50e4d1c382f0bf293acba489c4ca9cd299062c3a88a234c2044889f8953aeb6b7576febc1bfe4f12fa409174770fdcb2169e2c40c4ca08caa686f0f7bdbbbbbdb5f61e8dda1d8ae50021cbabb3b37148639bc54fdfeddfd5ab954f5ff4d7ca8fdfdcc931c4162b204054c102561014b09a6fc20644a0c8862602f023497507c852128baaff80ac397e81d8a2997cafca487700c69cec5eb452504af97c4a29dd8843cc1436ff76ef76eef36736f6faf098be4099323bc5faf2c785e2f4903245024d1640726627013e2dccebbbee28aa1ac65dd8a89fb62ac5d94b158f9c5a2180db7288a42e88ca3e1217b8070a8ef9c660044d0e515d4c002a84ec3ca987ec5c4c849300f3931ef50fd975905d53f7418ea532f4443f3262c8c3de0423b2d9ffa1dd5a350affa9dd4b7fc0eea552f9fc57fd3f2a9bf513deaf94ba1e5536fa3e55b4f7d3b82acdb507d61eaa3ac431028e42763a8fe04d8190cc38ee09ffa91b6b8ac8ce9f9552deef1177f49b55400eb05e4939ee5970e3044b9929c7b68e49be40344a8a495f7c80bc89f2c2357161668acac3c7d144ecf4fe3f4fcb92c0c7d1658355bf9696ce50f0232d0a72cdf285f032c54d293fed4d2d1312bdf36b832a60f5c989efc15b9fc40fd3b8c7bbe55a9252bf7e44047cf75cfccdcc33d707a9a7b1a467b700ff748211c8771cfbef86f916751abdc73ea54cde588520e5786839928a76ea03bd32f73d82ee9d7f9bdb640ee13fd9b2f73ba49bdaebb4139f7cea3de1dc5a123ca0e15ba6e36eb665dc7d3d5108bc929671d63cd9cac7334381ab1ba4ffdceb0ba8f9502cba3de06fdd4b7937afa28fa3ba867f99d093b521d3def8a09a3d8ca9c760583a40347aa077dff1286d06e5f5edafad6ca3a297d236a6ba4f9a398e4385e59d7759476726537b7a36950c6aa9c2fe5d2e4944c9cf9c5ab4ebfee7de9532c1fc2afc300f0a8d517c237328f0655dfc82f0474b5fa07c19b73e73d248d6868db653d4d9d9099d1247de947be0119227de96f437c33d2b09d99bd64bd1e1af2a11b902122ee56f43292378735cf380a4ed0e43663c44cf7e8a1ae5919ae7ae9b3d5fc658846c4fdd8437c2b71e7523673a757d3465f1385350be34f231b8aa5784c3da49492535264a436676a13cfa6a0fd2b8eebe764f7a3c7e93e1c1e7f91ab8591534a59932f304ad2b8732c841788e39839ee1b77b0a8dcc75584a852c56661fcb90a908b50aacedfad4c2cb629b576b996d70175b321a020d27f0d44fa58369ef4b16c482412e9db797f716afa5289c643fed255f847aed27d2b706d594ddbbb2c6d16a6d5952e41e757a366694228ae3ba0ae2659baf8fec81c866277b769254b66a6d9748c8f9d941bc31d9410b874165d0e4900392b5c111004a50d7aa9ca1b3a39a6f9524ac92b344eb5abfd43c35d4a29a524b558a4ef2a7f6d390b4343b65834ba7adff5544d23cff35e8e0b03aa023dafc679df8f95e71754982b1ffbb8fb5cb1e46cb1e497232bed8292bee74d0e89650e8e4e33b30e8f1e611852a18e1955d5db5bc5722b6d828e429f1f1f3e3eaf9f5aad96f3e3c3c7c7c78ff4f9f1f1910201f8f8d47c684b0f382915b0830110412b055694ad0ca93a92eafe4d3cd1a2faf6a0ba5c316d7b3975bbf43db79654c4a7cbee8ae0eeeeaedc15652b8aa18c464ae9266e221a1c0d79428b61a82e1dc372c07469705c19d0c0533d1f77a89a67097fb6d9486c13210a8fc3da7b203d2b123af0f3337a1cd39f1e67e55958f351bf33a5166b7e89c5d1b7e13d6d79fa3ba9f7de066d59e14921f5dee3b43ced9e34674b8b35532dd624b5ba968dd3979e6ba570fa52ada5d5f94b6b873ecb975a3b416ee8c79acff22bcff23bdec79a1f6bf4a5707ad3dfb0fcca9fdef4a7a72dd0ee252dc38a5ae9bd1f9b87a5d5352ce8018cd0b16b36b7f9b36e5cd46c3ffe35cd4333b4812af357ea67d4a516a8113488db8ea635ad691dd4421aa8813aa8815a48cfcab4699d269bd6b4ee21028ad39f69d4c394fa4068d3b5b635ad8bbc940df403029af94bdacaf4bef477bb6dbd79dd9d3bf10bccd3e056e9280e822713d758f158b2789ec76c72d16121bccfb96202a9c60388e48bdf513d8c9f305ef53b2fbee57760bceae78bbf513d8c176fa3e55facbe1daa87f1b1e4ef4c082fbe5509f5a5d49b982fc02813d3389d5e7edf608a85027df934e8cb94944f63abfc2020430af58d2cdfc4b485010e426539ed0a39baca1dadad6a5f83d911fcb93582aa25ca073bc6492d1074d56ab59c1024222292524a9953abd5e88cf6490b496fd52773aa6e09c6413c00222807c926a460242fa8de755dcf789474cd39c7712daeab24947fdee074eb4d2b2b8cbe33b14ca61213a92d112f12223e7866c4165e8f235ca823d38cb08d1ca57a89e34ea46fa437ee3b8392e2060705ecceecceeeeceeee44c8e68691bc1895f4dde8eea3bd3586c999fdf6e71ce9393a5272e7dcd0919ea3739373434785eee5e5e51cb079464454bd36b24629f1ee4b55a3258e98f6a357508ec53eb62fb185e98fd1c8623190a665cba591c562329a188d2bf67a8561188bc5627308671d701c9dfdf24587b94bc8cd10142527b9dd37859cb81e8af257ca29a59c320140e8feaefc60297dac3082d2284fa84441c5fca1358042a33998e2037aa32e959f9999d93d09ca03d40d8ba4090f567af0ce82ce978cbb99454a29edee6e76041ca163279bcd7c50fb5bcf07354468c39413e477458980cea008da4411c99a61f977bf33ac19ff6c4acfbddc0ec584ec3c77776922858341551b51ee557dba3f75956c36db594d9ac0459187c910215407a0c0e004151db838a2fb40d7799323d5bb0b6f497b4065b7777718dac0281e3d8fd0223c9304204001144e4e90c406cfc862862cbaedaeeb6e89cd884915e35b35c8326a747f544dc0dfa5f397968b8416426e0e381105cb797273d3a63c05095b10940da32a1c3503e57776677667777e1711d143f1e172c923e68eba560b85030934506e847353f3ffef3637383638351a6cfeffa5492b502eb080090f11dabf50aa24b103950aa5047d4d77a64c55ed52b0dca4fbaec419e5f7767777910302eca0501084752a15bd82faf814f4880b465538a9020a6a48330142729b85131b504298dc108029a3d741a80c2102ca04ed16454e8cc944598e4e910aa2287640146f5014a16260b9a19a3872c406cf2882228a3abe76989c7c7ff9e4ba67cf9e2e73594d4c66aba9d1d86ad46c94529b94166417469ea05264a507dac56b077a03ba4f820b944fd89907a4bfd825b39c52fa2b2676370fddfee868244d0d6e9a9a1a3435643435376856525ca8de4238fc2ba13b0bdf7757954d6077779f42c5f82e387b3f9942ea000a15bcd2735f7ab7464a595dd6f040af93b2f3a46723a5d751098252de6c36983151814b0fc30d01e597217b387dba4f769fee1c4af951aa2051c770263122dd4682774997abc1ee29e5be42972b7cb1eb05d670b9c2973f7f360d1a0008ca2e976bc9132e97544291d0a2e8f1222b8aa20884646797288b896228ebbaae93b51893c9dabb6534deeeee2e8a2d3f88224a8765b95141a1502245920281bafcc6ec82f2dde53f88ea4f34a9e3bb807954209d5d32cb29a5a34e409db8a08a5fea037de92f82482d58f2b7ba14c9d5bca3ab183fa8b1726d3a1004c14eaeecb6bb919e7f7bbb73a053998fc27cd22bc087a9fbae62c7ac4cf749140f97c8b29828cab693624c26ca6491bb747710986ebbd2fb67f8c095c5cf42a5cce239bb680b2b6e0892019024453b7888a85d61a312430d333d85c98c88205a6091c407330578028629b858e287121eccf4f3e8db5e2141fdd7c6a5d3dc268683d3ba69b0698eb33638b206451c211a1b1a6d69339eeadc75349661a8b46e795ccb686400002001b3150000180c0604c2e1906038a08da2a41e1400106580386c54401788037114e6400a658831c6100008018010000681a9199801445e14e002def358f2f3da02310af235422bca330e5424a50316ddeeff433d162baea5aa1b5700091eae00448403fef4afbdbe1a74d46940326e3b7232a556437cba68f7d36e38ea8697ccc6eb919ecd225f90f62bc2475a1d5722b05595e49c3939498aac4e8d5debeca3858016f5b4a201ea06653fd2559e860c7e3ca1d974a2401f2085a4901f589a2c3b701c13e7f937c3f9d3334ddece911affc847966b939e2fc6c327cc5ddd2e24004e739061b34796958de8731262d9074d6cd33bbb23d8a200a416dff0b287b1e4d99f669679b8abd2cb42608d86230c745c901a6bf69aca4c68fe787cc61de41e6847fd95f3c07a87856988fca90ccab603681b4d7135dde15bcd1979cdd2ee0e537110cc948050800d8a39869c78f0cb2a4238339bfd0e18c66446d44a081f91b85cc325d9da9efe71ebbb82d9ec8b519687b7eb48c90152a61cf661180065725a72d6a58ca0d962b996b617fba44f10b4bfc42ec5ca93e335229ff634ed717c721603c873c524e28efa7b30e7bee858ee1480e6732956ca3cc8e415e9dccd18788b67c719ed513a9c5daf8e997175062c22bf1bc31040759e7ff2ec7a13fa149a9cd840d926726c8c88770ce5051ec6973939d5123b92812e993b35473709c8783f8579f841e599c69882505416029be1abc522c21279c1cea9a1c789143e0ef37be77fe44bef45584d0f9a02f47041dff3aa6ef9b1396acf784bb340454a2016e37fbf88296088f37e20a743cd561a8dd9699b2eddef50d22a114a8d561b0d80c6143cdefb9b26c0b7ad690941ba0da034a6284b9350bc94e12dae2df5990200b4af6ea3155c86f727559b6374737b733889b7992a3251f654a98764dadac50be223eb27203e47244638248c738f93924a6c76fbba13bbc9afe3f6f8969358abdcfdc8f5a910e9979795269a5383f971131303d6ef2431e5b354de0726ba5126d9f60633546ae9a2ebce038eb508e0f3cb0ff5a62660b5508066828b0e73abebda5172924c7d6cc589aeb939e38c1e5ddb8cfef3ae78b36a4ae6c0f8f3217e140cf7afc9d6497bab948f7ea966d263ba0ab137b4fe25d00626f8ff2df5b2328c1d80d2519bd991e4f7b319763eaf87a73e3f40112e13ac3c6eff91cf927aa91860f912d7df61192771c2c5c1f180fc402cec07520003533fc5da40f3a7b07a08a51f6606d9d76bfc8896e15e9aeb5689f8da1883c6d9c31c66b386dc9dd873885b5c481da326cb488f60bb76f8ebe6a3152fb0c6e82dd8ec128b1d489bc94cbaba230f4320f1d4ae5ca076f0366b71573119fe7a4b21927829045db4adbb19b37793f7f22353338e9ca865cfb077a62204c0ba04b34b31372ed3ad14ca0c3a123ca9db584bb194e4ca43326359bdecfd871e1a9156787b92f4c04915097f12415bca4dae9dc3d84e4c8ee920736d18e49806c425f2037fcad06b3fdbcf21a98af8b341d200f3be74ae46867f15bb33ffd97b0d7d198380b497646aed4fdb98bc5b231547974b7c1cbd67a3dde51ee7d325fbae1fff199aa55142bb2a34fe33622c864d9b31cc708738f7db7a9ad89aa236340e41426efc2b48afc1b5e76dde4c2f9feebf2ceec6a4c98eae81b1ed609628afc6d01d2f43a1583381736fe378fe0a19df14675f99d9719c5071e21d319accba19d5ba67921f9993e8195a014852eed0744e5814e79cbcf72096bc83c2df5070b6820cf477ad9b1befcaca047092f88905f4ada9aa04758c44cee5d6bc5566c8a63dff443ddcc15c2a8cbdd9505e1302a3efc2d82fa8a3e87c0d07017e3e0ad33bdf3a224d3198e88391a7e57e875a875b7f93e18263ccaac36909b5f3464fd21db56701fe8ce09ba5027ca6b92b198a9f5986315a3babaae5caa98f10a3077688582a58db667c12b70fbe1f89d30508f136f689816f2d0f31adc16fc21857ed9e2132cfc7e86ed7bed9dfe53ec9635dc3273423e00d58b321af1247b3022c46379dccccc29b25df4133deadd440f843a3f46c148230f7da36ecb4f2b99681b0de429d2c6593e5e02b50d3da6563eabf27ecba5ae264316ba011e8444dda6baa3bf48477487a8abdd55c91cafb2068e699463a1dd137bb323f73629ce24c0494c373a934fb235b20338878b33d9c79c99e888943df64b8f44dd3c0e9f494d88ef48deb3faeca86ab3440db61e21c1810580b944453f3d8f21106039a943e155a3c7cb9f57c12db818372507ae7b85267df0c298a9c2448a2ae47317cb50fa8befc58607a472229acfb1fdc67ab99065e9924d9636b810fa3ee52e32f1e26f9cfd3d45175807975e0381de1941de4007b8e3bb336d94123153329ef185306d413e7417e14beaf9ab062abbe118eeb123db54e230c94c3475116f4c1786d65b7d01fef509421d5266b52668af3c9e70487ff7c57b165779970c50fda969b41495b2a7ba9c6aa976ca90d981b2dd5298d65a8a821f04e72530c617466ac911b192381a1486de6cfb72cf092254fdcf2624c51168065bb183b81ad71ee0dd8d6f5d45b9d74fd29b45f2ca9051b4da7945e69d39b10228b82c61c3785fdc989cdb82825c6d3977a7a61c117594080ccb27d5db8de46106ee980ea73d18ffa5dea343c67b4b445c20475bd4bcb0763c7995da967fca2d6e177787ec44d0defe3f19c4cac544bb3a5109697884a68613dadc13e360deb882fb3bff0c64af7b6f6f537b96770c8a11b888b13f5fd3c5febad2d56f1c4833f350927da5e044f8eab2c57f4114aaccdc207acd28ddac12ab7052d503c4d3da9832f75414462cb35f414d57d889853285d992aed1bb16878cbd5942688c37899cbee9813a292aafea7b595ad4bd21098dd8225f5d4a9404fb0fafef66be47e7cd3148c0586c94dc7522f93a7b06e8cb11feb9e8eee009412c8dbd0303c5d5a3d9647fe799d4b83ed45e90a774c2a9d93a370ea6edc431c7460f67a0f47a37001875804e68ff47566a5e60abec2077f510d8a53d9fba14772f4320af6173561b7809c028416d22cd38daa79689b6b914590c06b1f045b044281cede2979a8bde9889b4bd0c9477b3a435f6e4ab670f015d0849185c04ab21683bc32d75662fb427b7205586f35a084d96e9893353fc3321fc09f714ec8feacb76152459807b1a597ef1051e085531516aeb1763e5ae66e9e3ae253e837d657237a072aebfd806783bd23618becf4b392e9e667e72ec9d7821541b1437294e2f285a51ad2f8086bbc897350ace9c2a5584bc198d1bd10646896955cc73f667bee29aea227a89f6930a0501eb6deeb22d6e4f3f8d060104e60ba5475595e5b0f2b21803aa70cd01d10c1c88db181deeb3a253b4605bb8caff15335de5692c1bce00523c665bc04586b8f50335857c01d5e6830877ae152139d9ff876d79c6244e11ac401287549a09f57c4f0fa56537fc816e5cb0c6f9f6479f55ceb1ef47454ae87b8108d72aa29a66ed730059eb895e27c44dceddcfb9ce9dd62e73a81be328d83c1f59541ee134d1fd942c0286a506f5198e9c21cbe24010a70e3e793b86d57ec415084c645de86180fc5d1e27aa29aa8be22f77b3b6433e3d7d5cbe82d64d540cb40b6fcd0e506440de84f47bf96e31bbb2730291128a9da999a9e7f363cf17373be684113e131cdfe1c1f6f97e03a8108a8a2bf7cbb337cef399277f16f60adc8755a4aabfd69dece8220c33dbe149e4850758989f85b0d03d34301f8159405da09d103ccdd183cfc45d66e4e8eb215da09723517b17bfd45a28e4754864b6369648c465e127d37d33420d63dea5938844fab396f371b09225c44d0a3018aea02340327b4a5a6058f9ba649ec661dace1ded553d83475c2882d2465dac3eab13f988ad845c228b82c919fde22c9b4331dca4f5cb96e47d9c00a3daa3834249e9ddedad7a7a19bf77f6e5af31ed84a2dfbf528e2789e156e2739b39b0518adda0744c628189725dc1ec93ec8a2d494ded525b656cd958e963469736c37735fa85c84d0dfd0217d610b5b13515f38efc1b1cf11f65dc6c422bc8321d9599104536eb065532cd847d337eba74a0208e2d226f27969e72cddef70c725e78510b8324b6dc0f7e1990c5cfda4ce5048b5c89b0a3464c16d8989697cf76b2aee879397ef5ad96f7d3854dd219fd7cbc9be05bb7f83875268a47f6890801d3a72f13db30edaec383a1f3af80901aa5e5fe5742083b09d6e8b40c91c78cbf67f4586e47eb02a279dd2c199a36fee3373e1f581f445a4f7030f9ea61e5864a95a69025ba173c3e4b70c04ee05241249e01709d7720847a8f05067ec96b8a10fcf5dd55c80d036418cac3ecaf48ff47fc5462050753cce85e2126fa66ea85a33b2c991bc02181aabdbcffb705eebcb1095b24be20aa504d3a48db0b7feb2afb90b82eca7a5d6581a700ad3c89c6746c6a80091b9e36b2fc360ab9caff9f78e020db0808285ade9668fff8cac37b6347629054bfd87e202f5cd9d59653ba0c4850dbfef05a5c44c7f1400f25f22eca85f66c04358cf069de0c68d393f3582e9e9989e1bf3ebc0942e102eeadf5f370e3b842632d3dbd8434beac420c1b0fb6e2c6845bd502c0ed30e1096868ff22a154ac10276a247d76b292586c7293f613d8f495736900bd8cacdc366a52a86f6e677abb68ad620a4f9384e8e1a633a3b08f136769919b5797b96991c19279e31066809416b591c1317032352a6e2330b464ef1a2fe45479a8d5d3cc467d23ade9b7ee6bcd1691f17c8f4f9c62e202b40f432756022ea973a8cc0416a5ce2558024e09f3c700ad118c1b7a8bf815c46136696a7889f88413df459b784812d1f392e575f3167b1989d371486f5faa463bfc459c4564e7bf0c22fda81606459d05d4b7ef3fd480b3729db70d6b46b44b4062ae69d87d9bca92dc28906dc314aa7fabd58589c647214851e0d5a5cbf2547dd269304cbfa9cb882147e01afe22c7d623b9891e50b105ee0b7f2ff66d71146319ea1542a3fc9e19cb5db91f3f793eb3afd3cc511bdae009d27a44277a7dbe85f3bfa26afb828c8ef444a7b5fdce2e29020cd1045cacf4eb9f52b99e5b166c2f83a20dbb70a439ca03c66a47315f61fb799318de6e0846bc4c0a20638e7231e20c4f21795f40060083b9e6480e71b209d748c87460043b68567e6b9242bf0bc08170fa7d3139150dd7de8241292890384824c06e237a80745cd3f0b6b33c5b4acf55f525ce41c655729288e0dc69dd8afc06f9f844090efb28b22902e0b9c070984f217bec176e409309dab9c15688b6f103491556ec781f979e38c3d9d50cff5e5a514deac5561604ff73958dd8efc428a511ad4036f8336b0b4eb0c16dcc52818bf602e1418e193309bb9bc29a68952c895e9417031e02a53c2ba519dc5c73d5ea2c1f8836cbc20fdaf94ed928517f08ff5d2a2373c050f26c43a04440b123d64d39ce1bb3f6f8ad6ec31b0ed852206eaff6a08fbbfc111f3b1faad14298914269ef75fcb7ee8e01d56833012ed59cc73d4c8e308ba5520d148a670b08c50f6f16425484c2c5bb9c587dd79785408960dae89a8305ed4839937985684914c0f922818af08431edf42eca18515ecb5679ef6e68dd1897d04455257bc56a12a524b0c7172d934e4eb0f7973d4e59a0fcb943d9e955ce87166c254dc14a1902a7a5574fd40b5d4e03b46a2eaabd240225e764b25bd90cec2e8f3415f996ae837393f6a6ff2236a781ee9fa019d2867be94b3e21e73710a0750fa62e79500d1880c4725229419c550b82b9f04112a950e2cd4249e7094c3e758d8d57031f616a0816c4567191315f766fd078e552a97f877a8e9f0f9c51e4a87000f635c5d489717b40a186208dc334109dadee663b15d8f65271fb83e157fc6c8f980bc479c15e16854805f20222b04246130126a7d66d1fd8d35675e7368dae8298a939e2cc79364f68883a8615f4828f6dca5fe15f6770f1f9bab95087c28fae7ea0156d143ce6b8a03649d0c9979be095e3241da1c1215a23447df878f203587e4f41920df863a3cc5a15aa37dba503d8a4f3cc330a81749b5f64a684508315b843c1b449c05a35b220e81c9726d537d6b4800746ca2b8951c5a9adf01be9053caa2a916b69352bf33c5bb43adafbd212894f03a418f0c015cd588e25995c3b34cacc723d59939c2c27340ce1d28e783845f2ef83459d1764bc7c1bf7047b2122a6c5777bd5dc6b40f9fe647850239762086dc15d0e66cb42ce289d801d62ee34772868bf384dffcadf6399ea81e40d75cd41b21d329027f491bd359a464f8a3c144023ea810d713fac8856ea5143459adc856ef8c883e2b06c4a3833e446c2d94bfef4c4750793c26fa90e9e62a6dddae260722d7e3a0a2d06cdc247158a5bcd0955a2050ea089c109f43430b9187a6342aec902c93c395f36a9cc3210933023844669c831a5e99890d6d382e3e05aed1b09e5173b597288e314b9af58f8d666060b7aa051fb69112afc742f3b86b42a8f051c2fe1d31db70e713ab8248c6b19604193dd601e6a7726cfff87572f0aa9197e8ea47bfc876cedd4a2cbcccb9c035627f555d39d213b4107552332201a0d5bc55d76b44216701e0f3602ae76b9c36cf8c70684cfcadea15070a845b285fd6e9525b80f4d6b91e7bbb858beaef11d226fadd2319c29a9d194cb48158ead529b4ab4ae8df1a76b958d13b4871aa7906735523920aa71060457fb0e10ade3621a9952ca39b90748473380fb5d2a1a66c88b06d0949d199baac925a21b38f299c05bce359aae8b9f84ae414642436bfeb5701f41c3446c1e187b5174012c1436213c6f05766a660aefaee258bf02706600028900e940b9c4d4b74305299f16930e14fd08e83cec19899b16ac192d2da2273034181adc7244ca12c819a981f7d1207b20040f9171d78178f0e5bed90ecf366862ece40523b7d422a1d7f4c54b9483d0f868594084f8152245d3ab0dca2704caae8c07c6ae3a41d5ddd4fde4861cad707d9bf03789f57d4fa8235e0c0cc7281c10466dd070150f8f50ff93e08e900a9f6a326d7fb282d44bdc2d2fa2aedaa88ce61487e32013cf92a404c4bc29ebcc1784e44aeb033f5f252a87e82a0d82385475bd2e61ae368c6e1d9f96d857e4bd88a899bf41b8ada72fa66db1b24245cec273514c59dd7cef3703508537b787c345444bd0b92d8440b163eddfc5ed9cf9f1c8ec6b896ff868fd520f7a74bc74281170e620c5c37b078fc0e9ecc16eef45b92c637b9e16c05502957efb0dfdd2e1da71670ae41027d6ef9d46a991783b8d122bfd88068c4d937bad91fd03c2b453a7e07285cde48f19451a093afeb9281eb2c3626b6d9bdb9d23fbcdd88b8768c54833dd11aabd512ec10dff5661309215fb32a42528dd1cc8e7648117329825b408c445b466fab4423856602315a1cc57f550405b89f618be03a4f4cd116994b93c2d66e3f43098e8c8d5a7a83be2b5d74c2d9332d3951ebd7c80941007ec79c10d3087d794427bcdf5c445f22ae00cc7befa4168a82e4d8ae8138f0413aa148e5189882096e29142b907ee0ad6e72c7024c6721e92ec795c19fb48616ba280a8e50722940910a73ac102dadc5ae3882d688feb21896844da5ffb0b47fa7d052e3880893d9898b9aa52e6566afefd5474b2e10993427796216112a2396834602a39630b8fcdc851dcaaadbf0286e4b2a2ce6d84e0279e56a83ddff61cffd850c0b00e9434d3b6bdc396bc40206f8ec51f2893b1536c6bdeac57458514eeb4782c4929d2384f37f3e1094710bbeef84678cba1d15fe4f886dd39079a5859d18c363e20d0c67dac3a688fae3ea4160cd717ce57e12bed96000b21cd8f1d0bea5a56a7770c50b0214260f5846d73b55944f9ebf86ea3d246f2a5555be4dfdc553672a44f751c4ef525771c2abe87abb69dce9140bce6b618be6b18da2347e33e16af4a2d06a6dbc788e3f3a83244af830970fd89626b5b6cf8c66193f2d225c68952a7c515ac15f20857a7f41daea23a0a0f784eeb19207ddf16e3427d4457c8dc3bd983c0c22615f4141c28d75ebd74b07f3025d3cfb940355ebd4c7dc886dc420564bb17073731922e14309c9e0effee042c769e4fd02df30d5ca3695cbee21fc8f789db895a91baf7a3fc344c28d4d1c06b95303b878c33b89611cca9533a325a740f03e77e154479d4780e148fbf7c911d95040f7067643f83d0715ea513795eb39e213fdd7358a10f2fbee84e3713c9ee290b322e7f40590b331ddb5f4be7a981af52d7f69fa0c28f97880196f73884734a177ba27bcbdb13ce8aa6872fa32d80a761e9f1606bf4a0d0e863b200e74536dd4d0e72bef9c46b73ad6567816fc7a5c69381f0d1d11d0ba395fecb2a8d1f39ab95cd7c075017c9b6c748431adc684b4dae266a1441bb184445a7d8065f07b550a98fe7df92d98b763ef8ba8f8e2512b8336fd811e76486cbb1e626e2c51ea6ed45b485d441085ff1297b01263cbde00eaa873658ebb35128181572f0bbc1542381c63d425c5c39c4e4de0ba212247f29e5c20b2c9fdf01befde4c800918c62464f4a80d242e4123781b5f590d5a7bdfa972a775d18511e73b9970f239fb895bb8ce1d620eef5c023f8f246e7993329ba50f8a599a34bd43bb5421e8f5e69b8159b9e014f56cccc7727dd728e23eb5b1ff6c65d4e1c6cd1e64aff06a74a98d546279e698d644af73b85eb4dba607bd3fc45495059a6bd34d52cd2061f0968d84027ba0894af882f588986d0820c7756f0b78cd13be576364110d60056338058d5897a8fcc9deb2efc1f60a1a01171a11029dc6ca1f13dbb15f5914047fef856e775754a7d79824b7f3614c9d22cafe1bcf1b0653130de80547e9c4c72867324680bcc6aa320a14581429a0de7e30e21289bd36410820f9c7d778bd06e20218360428459f9d06234c93a8087780d83ffcdc23c258b3b8b655ece0c013815092dff3864ad514540913ec85966581c286a216216e83f71eba1a5a809b0e85290456042cec7504a1e9467be3c12b3a070c4f7a431320c36167efe56c1aeed5b6aeeb08c0ca773a7058016a0c484099fd5d738c0e743533631af0ffe0a996acad9dbb2556c858bf3d60fd85a09e194fdbd060249b7c8e194005691725223e6f1092bcb36475014ae75af8f90287deaf5f7404bb980c87b0f1f525724c77db1d9060bbce38b3cb64d6d0c4eb05ac2f223c25fb42fa60d8b04fa5bc1052f930241c7117703d6448882a51a101e97b8af393ed320af4dcbc9a58525fb6b872d1a30979ba710f9cefdfe48077fa8466b56a0e550fd3fe3d59792a60a3d98515a0a6a0d36a6da1a980391595b6ec037549ad24a07751b627aaf03ea699a30d5e94120bd0da719fcf0bfa71b6a0f6451588f670c2e9316c5b0518f7129da4a020542013fd2a60aa73e7d23789128475ffb2e00a30823d59b02b17fbc0b124b1b88c10002f3694e13971b1c942065297dcc5c09ca5266cbb2cff91fe4409921b9611885e262ac4051aa0730316d2ee5e3e0642e2b01c21c5e963c02a936bde864a5e602b9f8121da44abc20a4a93bbf0cd81df8ba86f393a7d187109799809e68fdde1c4e230892660a792d41246ec39c89a2840836e4a57ffc23913db3ebe6159cc4936409dd43f31d39856ca53c06f8f420b6503a1158fa271d58435f66dd14945f27bd49745daa09ce79c3c3f6ef08f3042dd8a3443f22168a51138a4368a87fac058632e4344d5cb6718c67a5dd6581896521df265e3410499d61f54040d94d161a1c028d9d4b05434426312b924a8315fac0750ceb6b0e935049d485f706062b87243c6b24ad6233be823d25fa8405a332976ca1dd8419f9a86b5eb5ad2f81e2dbc098e79d3a18e63c22c499a81460e18e14f17ff4e1f34987ba9e7eb78da04a1127beef69d0a5bad2f38197ad5a941ba14146279c9f19c952983e67a65c2427f98b2004fe7e2d14de1b446f30658651745ac821c6c18953cd549160c3d7dd0b0f8578fc006098e881405d96cbfcbc517e7212e39a7881316513df661f1e374906c4ef80355772689420b9ec10f64021e80864a60ba4f94604c02394e3b080cda1eb50d03e89d08765f6c0330b0c9d65b50b7c672ba89edcaa084865aac8602ea2d3dcf9646b2cde9efc69e61427be296ff378402daa2f3a63af628882d8d0f8df154cb82b144ae315c7fa5f64ac84df606a471533608ea730dfa93764b38fa7a3a1e7b69a3757e4adcf513bc1ac74d3129aac30bb058566f6e81476036b15caa979ecb99375d92f17761b05b675e9d8b8a20bdbae963b5ec16744a321483edfff2cecb909317fe8ce205f67c4105c4c13bebeded08e8613eec2eb0783d6fc2e001ff6dafa1e0d7a31b2d0e7daf67a7647f2a39589334785a08c29a175a015abb7bd370a88bd66601fb15b278fae0799d8de41345490574b5f97fbe463336d871c2313cd69f78f460e66929ea376ccc09c81610b016dd4b243937ae887f6dc8ed7aad9ed972eb3b8bff04dd7fce3966a0d6f086005a28de0d0fc21ba0cfc14e15b84d51709537bb6400d6e2a6451b42ae396086695b298215785363458d082bf7bc3f737dda4ffb2f6b376bad3c556e47ed33ac36e06b237595348945e0f5631cddaa2760d697174046ab8d8f634a76638efb74e524345bd4442d74cd62128e8a6b3d3c4ceadf9d55ebfdb0d40c5b8c8eafe946eecdba6861dfefc04cf01bacfa7eeae550378439e137d6ae6f518a75226572304f5e29d7518cecdb23a7161ee82fff79dbb616a78dd4e6938354480706dcc0c4c37954ff90c580b73a1154c9e62eab182a779081c58edac4414fa3313b4e171a2ed2add3490e53c3fd1c25c846a9b6db3964109fd6263d29809f5679a8027acc0a2816847468f88c77f7b773487af4c94ce658a29cdb4c5c18878084e4129e3c3b7fe7cf43f57813cb70f785f1d2d118820476301fc3accdc521d8e04e101d7a978ef7ba97a37bf978d521298c1f112684ccad01d842e36eb56cf2c48343ff5c11b6953577dddcda9558d8a2f0e5134b9d4e5df412c08fd9108dfd41cf3ab0d29d902cd83b53a9cb9953b136f3cd83d5fb8598a78539d08b9cb22d3b914c0ed0719e4fc261479ac25cd0f45078ecbe06d2f5f8104ff855ef5c1fd558ac64051232167f046aeeba9933c22162956aa089272e1e2134e63297724a0645953480ce67e82d0d07440757745357813b1d4c92124edb3e964e22612e9636173e2f7a9f1780204ead8476779c28cce2578b46d8ad10e3d505cbc8aed410dfde526799a5abd3a1f34ff53cfb3ba774f5150e495bd6d33f01453f1de19cd557edd5285dac595a87bda6feb42639d56a06bd4e69f3f7a833056cb4bcfae711633fa4801fac03c73d176570daa9cf56e95f68255a2f36bbe0354046e36578a917b62a064b870a4ac2ba1904bcf910260d43cc1f062f3d5ee9e4a573a0fbec2e7b314f9fbffbb545f6962274b935ad233a0a831c276625ee7272a46926fc7c77d680d89295bfbb7abaf4c0c4ccd9b89f23bd06d96b00a4ee9e03882c944a94778bff722fcb79994f9d927927e70083013d9bed71773681eaa9a24635dd028e2580a7cbfcb3c12fb9daccdb4db4b2edf9ae4b20cad85a4a1909c6408579b16c7cbd9a7be6883081dceb42dc622304d88421599040e9c1bfd0bf893d3e588045849a5e4bf5ad7660842468f23980489a9fac43aca7d439146499b5ad5fec33b2c0b922475009b64151c02cdc31fd54ff173543aa5d8c6a0b496815052cfcb4f3f2d8e53a6d80fe548b36e9694b69355e87b1bceead8b26d61722e9204d2d5f29b6ad963e2b7d91ec794f1f53cb396d172cba15deaf8ce5159bf88d9fe9daec78f36b0c774f8e9ca976b140878b1034d43b8b4652ae6a8e9b0574dedbd4bbdefbecf8f7534290c51ea5f78ea556b93b0aa885b5dec9a1eff26b1de78e09bb235f4dd9d78a80329c6133b658fcfa6b893f4409eacdb4432c77304bc9520c0a415a05a6c3d1fe772188ea18101685fb85cee44eea4cbf1a2f921ea8b507e6e248df59184b108604a2ffa13dd0c1c9a6995c820b93f26344500c62b8e975e9a2797cd06ca13add050edfa7c799dbe426923d7d21ed492b35f481fe1ccbcbdbed62d22e0a13dee3fe0abe3faf12179db622c3007d7603c046335761703c043867bc59049500a3fe067a012c943b7665af56789e957696eeca2bb088fe1c7683c34837b71f039cd18f39a7a1030313484a6ab2f3e7a8236fda3accea10e5202679e19869e10ec0f73c43dc7df12e689e45508037b621750cad11899c9418f4b68a586908944b7b3445cf180999cf59e2837f3f53e16ff884b73b33f7abe8841238217d7572e0fa11257a9fd85c55a084217f2f3b1a3e21fbc09874efaadfa90a2038db8607bab9479123653bc47e3f4e4ded1723c5686574edacd70ff0ea69ba4863c4a09bd508c5777e6e303b6bd7953d02a32d9505e55e2e98d013d4c858084b89b883b5007cece12128d83aa3696fbb454406b3c01758c5db2d012035ff841f29d964b4fe1b0e1ac8c893c3f2508f885ea1a8a424d924475c7f0987fdcee3b49cbd736e23671040814baf116608f925c206a257eb223d5ea9da08bc7dc1be1ce8f252427da4072448d45d9c439304f21889f9510315417688ab39af8ef4600478d08c2a5f86a28a4e241abf6d8093e56f3c1be7047474c688da3aecc1910734253288c1cbdf5c6ace424debbf0fe0af5755592de78ff1ee304e3f158dfc829197590f4632fa26b9b7b6f3a81cd683d817fff3ab483db4f703bc13b4f760517eae88d1b9ae49c0b98c1c3b9e869db4ce1444566b63df233c8911c89155772672e175cedc7be52f79a17f2a4b01aaf44274454fef55876978054232a9acaacd5d8a04f0d533a365613ffb950fe5ac07b2e51d40553105be50be5dd545580c4efb501a4d91ac88e5ebed2a3cba70bfee28e4c7ec2a9cab62776996a68a70fae37754f17e916a97648b11aa80472d0345343b2e30a0970b1a95f547d60f6fbcfe1f491961ec7085c364a6f49418e0a805046856d490203658b5d8d9c70bb7ab3c83b33c250e70290c4a36cd4e50f14e0b906243287ba4f317339cb6537e3cb813cca5e7064c0fd1d70a2c13205cd8c31c34d415ef37dcc5d104e546d61a0543629e29392d310b89a53595871817d67db4499356c48bce425db9b8818f580bfe24198c45f8f92f6a3e949ed7bea0f2cdf44855b35996b74b4e5258a4733143545e11244bec85080feea92d3edae4b3830812f591ab8254b52d4accc67890eac81a2e71fd1198897437f472e18de15c6bfd13bd5eb63052f097a642f6c7864b08d3a931c06b6ca9fd42693bbeb53127fcac5c59482eb2e22fa9ee92b033aa3e11eb85343b9200c71dde59e8950d1ffc0246ecd4a07e17008f9e51ce090103401a3f80101e146c7c6600753b2b159343736ca6842d86b94b6b3a766f96032251e59127855cce13c742050945dda8cb9b1a4dbea20b35b08b18e144042127ff454e816aaaa7ccf645b3df9d9c126b1c1925a40ce4df63a58dbb42180e1f12fe5820e59ef24a5be188ffc023c1e8a22470a091ad15c41c38b34fd28b78226228182a2619588651e1adfbbf7e5da3232625b1a6a85b126dafcda42bfebb308c9455d59e89d6b2f800542ee4a3eac659552bb26939835c386bdce6355700f73329f3d18c4f97ac8eaae354a41a36f3af597646a50cd9599347ca993808c03153ef644c478fd7dc248a3e727234a7c3244ef87aa09bdcd1ab961fd76c726d686b0635b9b25c7d54cba4d385d5ada2d33b03bf2e1710c51e45c174a5d9e6b43c61997f738b60024b372d653d0efb1addf14ee30819ae3f9514f767ca4ffcb4c5a59180bfddb053b3620def9f5d5826a7eeb21233c40f75fa508ae93c89d6b68c3f1d4e6ef92f4578c971b0fc8f6710e421d324ffbbbfea737123fbf8f0339e0e82c50449afa3ebf1afbb74c3c05aa34879e5793c1b5db17cd9b925751e4454ab540b3a6163d0580f3f0120ea3e80873fe5ad155aebf4af262e1d451ccdb5d3152b0e71367e51723006df3211d262ac50fac9e5fb2efa4ed3410ed63b8ef4f064439f35d596ddf14f9ee9dfda7f2df68a07887dbed301c2f24482e873aec383c4558664134b69d1f0115e786102388c197b8249a201a51dab43884317a1f6304a6aec2d84d4cbbe44ed6ec74970cf8254105dda078e4209335184d6da90734d4623f079e488c9d4c6f8d3a8a41a81255cb8fe634ea512390a5203e1d182f5496c7cf78bd5a1fc397e31211a093c182d8a013b6d304cab9afee4559c0c44d7b8e1c53bdcc44db6dac18b8bd1b5be3fc0a72f27f6716f6f5e3cf85a8b4e54f8219dc1255889e4d8139c8f022638bed660ef50b5421ab2ee34cf12c5ca3eff23b2d9a9ba1c52241e96906dd4c58ab0d846d686e0ead415097966005225707f450c94618b6ebe0d20defd9623eca7864463d38c807fc07b018ad6d1ecbfd49ce5495f95849d9d819cacaf501e2d3038c4f27066833cd984cdddaf646d2cced7195c1462789fb320e5b49bb826ad491ed3dfde356e21baca3cceac3da3287465cd441b706271393c7f568a19195008532ae690e02f66508ce4a455f65fd4571dc2931e0de2aa83e251ce031e8d40cd930393c1102a4f60d4f70a8a3dcd7039de87212886f2354fd0709e82c06bc94a3fc8ed400055ec9bf1807d6a3cdc171311cdb1ef840c25cab72d8ae279c6e6691a2d9923a1bcbe04e00d521325f7e9e48a3a312e9ae84f673caca57747d7bc32547de60216d6899acc5a06e94e2100f94b701b8e352a90f4f2dd2aa59cfef4adfce8d6720cfb94b791e28c2ce9fd9d0c4b48fd906d27907efc72ef87dfe44e2d81a7285518598605136797142c655d92ca603f7124c6bf8241c628a35ae0d61e84cc868f7d33ff0ad4b05cbd129769c4d5d8b0445e90ca06a38df7fdbf9ff77fffc6fb88621016d97f772b685d8495463eb46a50048ffc225552a9c3ef847debd100b704cc2492a73a37b9c62bb2a7f5090354d67134b711dea448324af2811b5ad6073516659b1ef378c59f8d59ceb26520af2d258acf840a69376202d8b4e2e88073779df2c155ac3b7d6111a1a74d057a07c61513ed907ef6dbb670863aa0217ad346654a682cd94037e99947f1f6e17e9c358b8ec6459df149deb3723ab8f76c885a49f252dc4cfab63f9fd941110c277cbc019be267805292839d24333d4f9fd604df83098c8440e1be7006c93be2aaa335a55792b3844c4934507a6b3bbab23e0fdbea927289a4d40d9d079cebc403cb01e7f575081c67045acb88b2fca495a43a7d9496e392ecd5dfd8e89e1f4d330d6670165b8aca6bb2c46c29d9fab2829c718565e78c1e47cd87122a6cc2e90121dc127db605140dfd8e1887f6720f7b52cafd99a539561eddd3e79cddd3441b8a97589866e1350e33e92f310546ea13ecbdf42d6d3d16182fb2a08afece2ec7fd69b4097467e0008668a11203542eb49e04aa0a35bf1ed6ceb012ce455e6155bd762795fc85b0c34cf791855999136515c9e98367588c05436825742e1d660bd7d40e54459e8c29a37f3d13a2f7ee745a6081b96ad077e2305ee12ca40cb4be63849fa95025b785a6bc4ec56f11e753145c6534e90bd1c953c3824dc06a808f17c098d1d4f1b9c19b7975e33574bd582590ede6be6e76c00c545a1cdeb25afb8e21f4bfee637104c0534ba97ea98f33009563fa90257881a02876d7caeb2567fb6c323f06ce794b8fd07662370980f3e2ad321fb4223f4ec8a4d07e8838cd5dc26c56cd8e040fe7de9d3b0a42c58024df56f583b14604f963e8518b3b80ba0f9bd0a82743dd393e08cc940047b016b7acdd38071d9338140b760e33453cc490ca20d221bd473d9a1e0cde40f03140ad171767863a6b0572204c08d1a764264392d90bef8b2b54cd94ea8f49b4a545cd3b5891ed2e883cb12cfae3a84dda666ee7b54b9d234a0461ea63e30b862a22c3517c6b664583b333bd9fe00fed43290732a7b1b8e56466d3707cb75fbaf1a8ae689972ab28e9400c67eafb2d1a333ed36ab4efc994e04a713aa7f8120cd734420fa61b8413507566c156f07c6b6a630dc3ca57007c7b8de220c2f338baa74d09e0cf9e447076e6a98db9b890dbf81ef416ee955311a85ff837bf5921ad4825f91e3e2e15d1adccf3baa19faca65ccad6a4406844a2485eda069120602e74a9aa61427afebffc9af5e19ffdf6d17c41260b7adf7a74a3216d90b8178258856bde98a11a2d817f1197fc71edbe16309f232cbee525fd3bc082e96ddc0dbb7b184be777c4bc185aa67ec913020bb1dec0269abd009ae9022bd794999d2c80234b4bed31a8c62f792ec364e07ba634da115dfa4b0ce191a2049604e65438e723a720feb91f03efc0e737e61d6251efade8d46b1aee4ec9dc2aa0c3d4cd766311527775c5f2aa1ad5bb344426bac86c0177ce52e02ffa759dd182ad6a513dfb813b76980ced49af5c9009e00f531a191858e31ffba54c138602f617e3ae99114d580950a01b3bbb41ec107121e94ca267113331cc8a8a15be85131aee51098f70ece7cb39e462bd2e25c3c412af6890c00a6c63ec48ea61e1fe0ae13d21e4d0488d7545e290238d9d15327b84efcf41cb66cdf955e31867ea8a125b32bd130c7d0a19813a8bb88a7746d66a25992a04a71d5a08872727a100e3033d79baaba35a16e026089a7ae7bcd6bd3b255bc74614244515a6c971a0d4a6c400b8f37149d9e46089f4d80dab61378d6fa7a92036fd10a68bc92f6c1a6c0398540f97bfe2187230ed810a309d02391948ecb6ffdaef2d790d2042934dad79c9f91d9e3913bd7ecf77e80f70705e2992057836494b78328dee30a3be60dbb71279f9f8661ed8be7ef451d750852ed344e7ecf82e369767e292acc48eb1659251b94905bf16726ad128edb8b14716ac70c61be4511c3131baf66023dcf5fabacfd421879658822d0418aa31f3f964be8ed0c458aae1232885600bb126037d9aa8f2be09a473df6aa43de07974ac692a9ee7d8c91e5df31a20acc6c66251298062a628aa3220e092c5ceecb3282e250985423a584863b45186d5e6ba601fbd91d80db0e8ef71d07c1f6474806ff8ead27d9a6d1966289fb75d0d097d77d97b5721e37c5f5b14b41cf211e076f64fc71832f04acaf61fc576ec98efde0a64bf28dbe64b99d32b44b944f69fbaf837098d5e4a15f930af703e42e46030730742a233231e03d0734a2cc8fcad5c961644b930d6c20ba85e740f2cc66a385adf6ecd553320cc99751b4fe76e047887dd77ea6a26aad023480c89d7e5e0d44146241d57e4322c46f300db6752175be0119230bbe144caeda0f9e522192a4bac2647663b26505e5c2762b3c247097cd920a01421a10030ba0393eb725792a3edaefb02f24f954d788e9758beebde0f2babece38cd42db6996e843041a99b4c48a9f38379d7c0e348ef3b907174ca77c68a2e5bb18bb04897ef0d40b82efbc885ef6b3c4770c140cd286057c3b739051f171befbf1946e2dbf9a2e3d2692ac87ddc4f40692f74d49cd8cb0c16a441aef2e7093be5bae170f56fe214547e24175c46add76160c1d57dbebb483c4d096196fc4ee2d7c9b079bd0da5afcabf43edce564977080dd1b2360e96caa659afa4a5fd3670c88528bec1c6ff5fcdca9d3b9ae4c93f94879bfc9180f05fe30f685aceb67f9aae7ac48aa94f89a03ae9dc783d1815740a5f3008a0980a872062e62716773cb53722032bff80de309fe593cb7bfd75f43092f58443e1dfea45d9592c0fc5ff39cb4855c31144a1fbf27f224e2b1b87f1c1ce5b92b0ee078674e0dc715a3d649452a9749a04f34e9f5e4c82e02400ced818bba361032e7e0f401ea10316d79f839448ef90141dac137a13a6035f99880a6173705db0a626c4390adcfe7d5e1c45050af15833cfb26c275a53c1f06f7a29518d99f6b71961cfd92cdc11fde16f8f07dc3fd541c505ae15ee790da5a538cea38b6ca6556f761160baab0333fe622b3f9f154110b8e8c7149faf52d34061236fb71f1b71cb505480f78fd401692f8b95d9ddd08f35d05c132a445186042d58c823d7c142756a7a5f4b74312dfb7176ef3406a32017e1177817d8fa9ae2c262cc163bcb697f09f88fcc1e29978c17244a2a6358c31a759b057ffc54a828c736b47f091b16cb86d42a974a5d3c5fe5029f2a079ec704c3f40d4ab5e65598c252436fa7dda4c5e2792fcb3cacf540318670955932d74182c03dd3bf8060c637df99426ffd8c95878ec9334e1fb040461ce4411c5a738f452541437dac41ddee0cbad99dadb4f080c219319a2afefa775a4f6cb0dd403f0e0b941e2c470ee4dfbc33a138c3fc96aa6182b5b93a301e74e6595e7187c8e571412d5edd6ef1af8ff42b8b516d4e2c7ac01b98547023102df223428ceeff8a37c64072d678759fe3247fe7a8646cdb7c574cfb5f090eba8a2f94d9cc53069385700318fbc425a3f72b3279b76b98631d30e834087704990b37fe0d216312a900978f201bcd788105dd2247adabdac0578bc5b16cd60a471073ea461abe03cb8ef18d8eb2959c64c93b07a947a7c3b1b3fbadb59b7ce1c5540555dc14c168f756c9c7b7006776e6168edb63c10896d4467786767043a37febd8122db50fbf3bf84b4e8a1c393e2035ae84b8f7d1194d6760e89850005faaed7814a357b2001d8c23b00c59b584494650f778cadd6075ff686ebb9c4ce33f3ad65d45d0359a9ca17cc709ac4ee0dd23f5a9fe0c14483cb9a7057a2d4f7a60572ff766b9f0553344852ca0329af518efb50b979ef1eded3ff7e966bc26a10c43e657ade556923706dcc7e6499ed7ea2fb274e409f2aab8528657fbf5048c74cfae2ee9bd77ad47c3ed4ae5eaf616394098da2aeaa629fd5334c804d9b9df3d9d30d9b6559598a8d0b01021de8e60550bcd4e15401160f6b8f3a799a7920e7707e919d68e564de3ca47548049f6a2f6041011f65ced853b5b6a0802e52035aa52fdde954456e4c92bb582487f63d888faf7e8fd24ff0eff6b9faa05544035fa82d8bf6fc517d0ba44a6cadcd6a2fbbc90984035e9f81665539d422a70703e83d798fc1add4b57d31ec87a2c4cbfc416bbde499cb1202447e380e60d1be6980b3b301c8b1e1f1b6fe8140b29bc5233e3aae33c7c05dcbd021ab745525b505815271d7f7e5b3919817931fdaafadfea6761c195bea4da3b63394656c7a4fa398d14d52baf44e97735620bc6880a301844110320b4bf136d9acaf996a33165032bef5de422122a849892b556ace2ef3eb244ad77237b4b2953c804f5044e0587fffffefffdff93c01f649cb578aac42bfe42824f9dff12a3ef92f1155e8c911c1847ac789999790a1c70feffff1fb299fa4267968ef0ffff1b0318cecccc168410c223b6f8f8f5fb3d3ee2ad0521840adf7beffdfcfef71e537104d440102b2c9f6266e63ffe1932bf9512a048a8f9bab7d7ef3d9405df7bef3d9e42f7bd34807085f9bdee54559595a38a43a138154a15c4c90ff239933b70c35ca9b81c98203b6e75c38437ac541c7cefbdc7fcc7fcdefb13b01934f0ffffa1062008f89590c8ffffff374366e6fff1cfcc4fb592c1cbcccc9bc4228101b6f0feff7f92240618825b6eafbbfa54bfbbcccbcccb0d6b1073176d2aa64a71176540ec8b1af074889a8f0ae8703e0a9670a4c20f2cb9402ab450a716f8de7b8ff98ff9bdf7b7b4582b409148280d04bd2b3ab8ae1a6a20bbb84356430d640785ec8c17ef41a8f04455775577b7f95844e3c57c014081ec5e3073cf78f1f9e827fe2ed729c015a46a40e89f8070a505394a13422dc2f7de7b3fbfffbdc754f8ff243daf0a2d2790d8befc5af7faf3c9e264284ba114a863dc6d65fe753e26fc5fe0d372905a245fe0a4230b2085ffffff9f288101018ef0ffffe183115a96d51d6741eb7fefbd47053e33c79099f97ffc33f3638ea3e2071c278502482161dcfcff7f1755f8ffffff3f021e903e206db880fcffff5bd0c54109f95655557dfa54f5a9eacee458dedd5d55be011428158742e959951ff3b50949544290dfe5e5f4acca8ff9aaaafa16feffffffe4872e9cb9bb777a0c52f7535b8c522ebf852d66e6bfe5cc2d287e5d8b11208deb98cf310f578c90fcffbb8b42a1d4a05044203c9d56e0bffddce189832b8f93d0fb1d1c07172816baf5db4ad61b905d6f2b7f36019d9d29e6d3374c384ddc6efab961feccf004cf005a901f233871fd455efd1836cc1a1ee313ead596de97660a693becfcb40db38659c3fc64a7bbfc2a0e75f8ffccefccff1fa808124008b551b8204bd064ad96e52eda5384beb4807c770f0263b8cb1b850b4468bfd2bf5f82d5b0579327ccf286dfa784dc880c942c4825ed402ae90849476abf657015b7db1e911d6a7e3e22ac7566b3335d9d69879db04db0776a5367670a752650eb04cdcef431c5569931660e26113eeea20d43996adb4d1bfef0bdf7decfef7feff11753ab07ac316620df0fc5d98a5539d58559c1a85039acaaaa39393288aa753c9899df7b560e4b908f161324d27ca326ffffff7f977797f709f9dfff4f11af5a89449ad7baffd9cc5d767b2b15109e2c0e75b2a005213fc80c2d08df8f70ee5ec3a7627e7dffbf8a431dfe3ff33bf3fff71af4ffffff610e92ac765b27c007dfe33fe607dfbb6a25e3560c6290ddce9d8312a959f7ffff8fe087ea50db86d2a72845a9aee250284e85526d2d5c8b6ad5c28d42a18ae01ff9111b67b9cbea91161b6f9f8d530fbc8f6df480521de138ce061484f8112550c77a82174a109568f7b69d4e3c67eeb2a0229434313bd53c82d4e64d99551f7c2fca58a9542b192a19a74d060c4aa552a9545bf3c4b3a0c5aca9102eb81903c9adaccabcb26fdf5579a5dc8a4f2daa938c9696c95161f404154a004514320035f04a45784044382282d495dde5c78f6394f21cf363a8cc8f21730f37208490f931f3e32714895a6416390321dc140281508b08e6388e93b9cb2aa7dceabd437dccad5a388e23c771acba011de34011c5be748c83b32f3bbca3ba7352e9850c27b8e1bc2d318e374c6eac694cd3a2318134f818aaa9ee2282a772380b33145004a17b12279cc821871893b4cc82dee0fbcf30337f97f901338c43871707aff69d5884a3dedfff433d847fbf5eb5098df102d1746c2cc65087facd1dd2bedb7bcf62bf2c7604a1224aff71e2381f108c354488d81f21427686d8102204907d97d4ba952947a31f7c80e115f5b8ae2f61516a216aed16a22e899a8508a5b775a8f4498b948bdec6da45d6222b95b42f0b8782d2292956a3a8a430335b16a39056582b4828bde2141494ac779352ca3691af4f741ec54a976365723f1b50c0c4fe7409e6ff75605eecf618a5dc8f8d988f0513c3452ec608a3234485e808d1d5152b9a0212940c99af9906f65b63e448ee6d6bb5d562e4c8d734a61adc56d3ecb6a571d3986abcb386add6b1864122934d3cecf6a7d5720a4cf32c8d86863bd6d8e6255c5fe9ac9ca96fb46be2010505e5a346e90ea557a331d518f5f6a8751845e323bb552161bf91564445452391504848544b369ac10a7245a734a9b52d1c4ec940699ca921cb66eaf2f689c80a52c643767bd6290d2333258bd9ed8d92bd863b4e9ed498f459eb684c3546ad8d1aeb1577a7cd24aba9a941cd8e6b261757b6d30808095b6b3807ee720ee7b00f3a1aebb0917dfa96733625753888cebe7424232bf30889b4399cc33956ce8ac58af46804f2b572ef3d0ebe07df535555d52ee8bb9183137a65c5f4ba77dbe56d5bed4518767fd55f4655f586427164555555eba41251c3bef5fa124a0824d6a2beac16651c4c0ca74aa51d1dbb311f96609778f4cece4e8c95f58bd28bde52f7d88d5b49c9073080c1474cc9653f40b8fe226d983a9906cfd7fab5e138ac053ebdbb6bc3eca79d58f2c89ce3fb8dc8711c17ffe2230e8daafa002de92261618b10f233bc0d4d20b51c6aaad13d6d1e0b64cee4d8e5442041dd95bacb4e62b76d7b8609f2b3539c18a5d42119a7a40a8bde249bba0eda0c847629fb59586426ad928d56f48652a5540b95fea658b4a85b64a54ce6a4573be9d1a851b20ec844c968b847fd5611caf331b9b547290a6472f6c36692321e70a68c7ac528a351f6dd4ed749469add7b3afd414391138104691d6976a5093c59e2548e65d99eb17ab8198b7b66543a188775e498c9a1636774f49474e428f1909959de9e1ed29a3011cf36fcb1a062bd52e3f84493a24bebb6d97159a8390652c371ea3ae4e86c92ab6d6cb6cfffffffbf413b948132901216b600a6083588c7be437df190d128d6da1dd6af8f693c76fe0dea15f7b310b7db8b56c34fffffff1fea21fcfb5595ad212ce4fe16b12ceda520a4f669593667f7c485d3cae9ff7f0ea5dae5dde59dcc1cb76dbc3a31effcccff7fe633fff7c0c3e1e6ffdfddadd7836c307973de13feff7f7cc1ffff8782320de4df6ab7b7fa60ae2f8391b19201c37a85d17defbd7eeff17b8fdfeb95f78c684e0ab2e3569c8a4d3bf084efbdf798ff98df7bb78c601c90f8ffff3f12af5f94b0193ac0714a3c2d085e66dee5dde56562ea3c33a1383837374fa9cdaf42544890a7b4e6389ec27116ed9e1e254a962ce1e1d9d961e633a7566761a2855ba93886ccccffe39f991f2f3333c79d4f904885a50c55bbeb5da5615badffff55f5aa57854a10200a20c8d7328494a0d8aca97693b343c9b943c7fcf46a35931394493921df54a37bace5589940208a2133f363667ed613e2c6528f0668b8829e55f9313f0482259c7ffeffc37d7577f5b58788689a44ec0f8d226dc3a9d64ef2522c2533bd535af649667a9f643b76e8804cd929bd83ce9319277d91ac712c43e967a3564cf615caba2c023b62709785d11a01ed2cab555a33de2e02bfcbb5ceea6b878ff9c93092b88111811dbf8b12d94d6d4256ab74a736d6ffec820123d42a194701d66068585fa726a4090cad033261a87428c60478ecf84c170af0dcf199a1e676c3fa22048434d56e58aff6bafa0700ea0240d655608654b2cfabb4aa58d94969507885b2cf502894855a06196460193285a16912bb6936a71060362824244a89ebda0279259c6089792d9692a28566b0426725b194d84cac3b6df0c4ba59d1715f18002a524d690db3ac7e41aa6a4a382543c95c9524279a05ad1b14ebc6d246d64df72a00a0c5f0908c6d1e46c2b4d433b9e8b728f5436dad348b5e7128fb7c916db37bce733aee050de9b491b44e670a0d9d277d118dbf5132518f32114a86f548d4dad6a7d53d11a67548fb194da82f8dc6d2ae9068871740ac4099daecb61daf36326e6a6a6a5e8ddeeca7f566b7b7d39aa835377339a5363635afa6b4aa362fcab02d96406244144f5561a83bf43f04616cecc69f2e72b56c202fc71b8013f2f56f03a176dd17d668b441cd35b441da57ff1faf64c0ac6056dc7b498650240fd538c4a0088669acc4b676a89f8178b06907d8579b6a70145308618149031bc8d469aab17d358ded4b3b0808904bdffcb42e48d80cb5229876ca3e574eb7e083efbd67fd59d683ef9df931f3e37faa10fd57243738494cd26eaa486e6e2649fb2b9de6ccb001acb92f2cfbf4b15b013a20b7c7bee864d91d0f363169ac61b603a94f46fd1d8c20899d0a839d9a940fcf26053f2029c2c810421c49113f682806331c91dd97f4e016229456b90b6bf7b80bbf5ddc4577b0359b71d12c57b868edcb45a6353eb45dccd0f738c7921ea3567d4969d51e67e16ea195b466a1e5a868a206f58a49d9674a8692752aca644663d2589f643c789a74c783d503f246c0c19189b58a1460d2589b5c4d447d5d444355c4c36b6d50a7b30332b17ec68327d61ae4aab9201c01417e7ad5e3ef216337e6f35f7a8d8fddf8568f9a25538a1a253e5e8f25baa467aaf625aa251d01e169ff05f69f996413f2b5a25028f81e7c2f1a99e28a5ae91a49fa4072041455684ff90244e69b4890183297d8978e8fcce5e9cfdc467223c5962612248ccc17f34890b899d7f504f2485670338f6405436601e6911c21c52cbd68fdd4cc5f3176aa0b329a78c0428d611d028162834020cdc44348a3e9b0be7aaac63cbdda58a4b4c3a99216e3be680b22f2b3b3c030b7b98a182d2ab62d25db5615dbd6927d47f60db12fd823f26ef6e5a459685da90a15ad9354c48e85e86841bdfd6a36554ae945596d8556da19918810fb2261c78ecd36a52a9690a2874ded1232f605ebd8303662f6e5a4230f4f973ac6d8dba64a1dfbb42f29281d7198250713b13af6a7a57556167320dbba1697878310e1998cc3417887947db7ed5249ca8fa806cfbe44cdc40389263649e3a180e523fbf2a981753b94d45843d10e4da26d4eb64bec0d86908f2352632b1a66278562933213d4a01213261149194402ae605e14c232d204b0e6c17306a6edf84c1aac3f7d1102308d26769c9f1a11a3f1b9e333495a172f0de5021977fb744a76da2d364a86da2d9676895196802018a6aa985e7d95321f94b8aeb73162718753dcb2ec2c3163e7441db953e2e98d5fcd0b9213446785ecce0e814a38f5c7c65972a3c4a66785f06c909dadd14972d383333bde793b1c7bbfb1b79f909d213a391a0467c98d12b5e911c21364a7e39e184f7a048414f579477461dd5dd7d51def5ccd3b4bc56e17765d179631cf6edbbf7abfbfb06b8779aeddd9bba9aaaaeaaa32b727ee8452555d555dd5515d555d6d3dffcc3ffffc1bffbf5aea1744d5f4a7aabaaabaaa1dd8f8ffdf9991ad7e470d1b4010f9f66945408d5a0da5354648eb6341c8cccc6766fe27045b2a5d299da292a213421631fbc222056a36523216cb5d32f64d35e9279ab1434e785dd775a918340abc09b5d5626dd257d6c9798d1a45ebde44e9eb0b93481da21898a28aa5280b162c9a066c162c743b65850a90a992f1d8b942b3416948e915933645e3608f2466c3c66efc226644868d22a5d6ac485c96b7db6a26a11665a12b83b1a1ef1e64b87d896981fcb415b31bef6a0c2ca965a965f14e8c11ee06c7954aa59d9d132320f78a13db2bc329ebd35c246ad422b3082123e6323d7ce7313032dddd1cb332e733f332f3f2c722c11fecd5a7fa689c6559d6c6a86d31ba2063b7a1369ef6ef1f194021960c0e8e52966c86d0f834c10632a14e1964201bc763f0dcdd9d0037ecbd0165671c1c02edeeae0cb3ec832aebf0bdcbac702c2fc787e3c9e0783c36deee79a4905010a74ee70e2e65c81a25478da6183f42b0b121f3001b2499aa8f62ea934cb5acf5e10ac52daaaaeac0fa38ded5d58d2b15c7a956dc4af5869bcacccc3857102765654d5a5a91d8b74eda27e550ffff5dfdee7fdde52011f4607c988a626b16d24c3c58d9eb1a3b5543a99a90b0371484289465411855cc50b528d509a5e256cb5be4397ba3364f7273837fd69a47e6c6a6f81f42084d86c72688103636363641823cfeff7f1f353ec8dc78c06983d1611a65cd3a1f3fff40a6c6b7b26dd7be537130f0c814216383b40e93bc37a488c7647836191c3778645a70d8d8d8d8e0b8c1237303073f96c1c13c320fd081b1e1940c8f8d0d8f0d0f4f4e110d313dffadc9dd18c3b48d59b837ac4dfa5a03446da29df6a553096a5164056c47e62bd4571a1ea83747e9593c45ce6addb6ffe65a344208f5b42df332f3b288411b7ac177832b2c901db7825ac464e30d6aa605989870a8739426dc245866d2224d243a31d14c20d18cd44e3413a84f624c20cdb40013130dc81293e18e8f610c6308a92681d2ec66668ed2e4c82ca1c6b290d6b2db1365d7e13aedcb0907d8dcac9d46207937053c2e003df24f880167fe092be0cc8e6b51aff6b42facd1c006f5eb0b94854a1c234bc93966266c1a571aae5e6df61ca5c90d62d0bc96b3ae04fb4ac3431c88db38c984fcb4a58f39b88296c5ad9eeabdf7defbc0e3565e5c131cdcc0c32c0c529d36a2468e18511d8d443cb59dc8e6eec129941eb01035127b945d973e94fe71f5a87f881a2525e5613f467df50f9416450c7b988a467d750f282d1af5d50d18690d40d16463fde3443f4e3ca547e051233c0ad294c7a44ffa07d6b27f98f449ebe0d447353dcfea800f9a5032c304ea1e4e4c206d0112eb069cb4496307e0821ccd68e4314c18701d7cc0406340d44f3423c6070c48ad3170a299a86692cdf488991271961bf440062515c4dee68931c69ed98da3d0b12f9123478ea04c07f34c0e1d1c6774441ed6999e6debd97a7a140424ee48c975c9cfd256332580039234b545332412e473e6fbe7bdf7de03d9003e31c299db2da324462322bbed88c8473796c584d97397e50030b7558956c10feb1eaec6341f4a70fb383f4debe16aac31cd476416d83288b4619611911191edd1cd28094db2bac33dc6ce1f3fb0be7e841a74d302b0beda0198decc754048531bee2e7207f2a3d59004f9888d7090e8eed3c90ff2ed169bfbbbffff0c2d289a61fd569c010a4418a2c31192fbf4eaaa4ad5c74f495555554f1184810f28f49b78b86854542c8be6fdb634130f2a1acd3b149d10a8f44d5b6b0bd54000000002631600001808060582e18060348de368380f1480126676426a5834950924690a65310c830843c810400c00c0000019192a9b076a364abab752c46b1af851c382fee1bfbf57f75bbf6cb7687901909bd9f7f9d739082b05d3f906acc9e5ca12c4854478a59e9a517ea8e88152ddb4c456b8749ef255bdcadcaf302ee2022ba34a004028e8ffeeb169e71ab363c0c8787bb221f51fbde2d402ea23c1bc7b5f6f27e007ef159d2ca5d1e58732b0176f01264f1c2027f7b37534dac610a32a3b6c6fe33fc453276244a51ccbbabe4d8312f8ce596d3c02502c75dd50cfd7d89ba643b62d96e4f9930dd8ebffd3a9b1e14c0a95f8f91467cc2696b50f5834ec0d79cf399338edae88820a4655f332b36bafb96d8214d30d5f51223caa7f4153cd9ea3e3be9fd36c14f330a60a8bc704d186285e1252aec621dc9afe38087f9a21b89bb63ea9e4576f0ef182de6d22bc1a8228495f46548837f3556d5d8f7296aeabb1edcc9a2a49fd77aa1d714fb71c371a9a21c615310da98bed657728abd694d1067dbb146e0bb78e339fffc6cde5169d7251d343c18df1d19641de4669e530a3460a8e2b0a49adba664dc448500bf63d0061c04ce30d57b096a324188572e3552658f0d2179754c4641caf77ed8d119dc3c5d777ada3427373a262eefd51da7846a411a3b320c8ecca55c01ce0fafb8d837e846be4c85c914781214feab56203fedf0bc55fed57d9a489a4f3273dce09c1e3a1f32574d12d179950e96a989f93a428fce0301f33facf28b8c132004b9b98cd19dfa893d054bd1766bec8490fbbedf1055c243c755a1627f54bb58de472be740559b7d96f19d93223028ab11bc8ed6b775671beae37fedcdd5e3ce3b874eba1eeb77d461adeabf5bc632eacac559680a825c892a918ca6cf747768bf408c6bbdf915b29f8598e62334bbb3b142b0ad2c16785d5dda6ef45440fca6525efc0fafe8c0f80de3c18318276bed9ed80551f0325a7d13ef6755060df750ced9fb202a5cb354c51c733abda5a770f9e32d91ab0d7efea4054830308401933c02d2ebb4541db5364ff23180aa8e641e18e398ee4203ac40b9268cb425c882bd672e3b579ec58f973ba2613d4237c8c484ba7aa41ff3652e04ba7dd887f688e07458cd654686aa2096c703e6fb606dc4868cee4d86d85a718ca196e82699ce479e10d55e350721249f4b21a67a12894888f3640d206fc8389ae9280f6bdd79fd3b94d2d41b4745453682c82b99a8c53929351f193f107f5e4dab58ddcb23da2317139853c7e2df12fc91ae54884c769268196d359d78eef2c1160945b04dd9ba8c4ec27421642287ebf4a38e2384d62c6a60b612fb1f88683d723ff6721d739aed7dc95b125eb5531c78ddaf56afad64f4e7429a6656eb07ea89e41fb5ba08788cf9080465882271259f3be9c18d59edd40ae2db2dc0ff4c88919288987680dde0940cab424c0cd05e1a6a081ef2b1d2d5dd51d654ad9eb416a629afb965a9d3f8bd0ce146f00f78e31b96b371a5ade56ff8a573a725b9a01e57382b5c4cd91ada4f800b43ff8e22c1561572e8496064717c5ce07a00791443b6cfbee2d93004a3b6dbe48ced19b2f9bc9384e1426f42a227984c122447ce62d9364bf7f567a8233e3f38bbe0e04d80c31f412b003ec0dd593b2c0e2da2a2043c17ee2cf2c746fdf3c275bb51a247cb89992d8838fa14da842a858e5d6048e2195ea792283c964decc9ed14b71efcc03c743a1143abb899c16badca47611a43fd5bb9c17eb9a4be3575286f931c320c956f4aed9740a669d39fabc38a44b3fe4e2024f8cb512e0b84a9a3fd3aab868eeb0f8158594ae656a87249619ea683b8db5413d1c8a187638a69805c978d77f3115f758e99797d0b257bbd2534189ae45632a0c3a721e55a459b065f64176345b43f6aae78fe90290bd9195111f068599ba0b5008e212ca406e8cd8fd0abb1f28d099094258baad5235164a06778cd6aa9d7b76d9086d822d511fe17cf092e9c4467663b9b460cd0f9aad0e881a562f04c3875446a91d93a453418d2fd248cba0afd96a1d213f410bc2e1f8e3554a242cef69ab662cad57ee97381650ad4bd6a5bdc74a44185e08c0e2cb0de7d5bb43a54fb9748eb3f6c6ad0b2ae53c587da1682e980e30d4ea790bc8119ce8284dfbe72b64a127f460029fb17aa37a7da3a2e8ebd9802dacc131c417ca1676eadfaf395b41d3dd883a1544eb81f0683588f3564bebf8efc2b3e0ae0b951aa5841cd77b0142a98d562924b1d2c55d2005fcd85d8600f611fcb88c3fe7000f5a3c5386a35a731de0ab536b92005ed12bd41c4a01f9440f310f91fbb6cdcbcdc4317e5b7701424219851a9d3024f3021e326782510b4ae54d9018613875f72420c26d3c95f78d453bb4035fd90b1b4c2922d283bd31f404fe3a224033209357e52533659a3ca9610fda8cbbd709b91c5498ce38432932d89b4fc1cc4b873d784827e289a12735ef4c8e6797552b05952f9f65c0ee39a1361d2eb697511bc7ad140ae31972b8cf5d98b082663123aa4337d3c76192530d6ba13ef96fcf2339d153cecded848921a55e44c00602ece5106153473d72e0e03b439c02299f6525c4c4606b6718895f4d4b4f1cde5b5633f460520723d3fb7dd3f98cdde3be397087338949f115c65eba9a49b81641518ef97f8e2a2ba211cf655c8b0a1d73e2f2d15c0ba7424cc550d3e26d3ef9fed3ba447181d5b9efd281f469eee5ef6012f24c3955e00973cf573dffee9a26fbc1fad112ffe52f27c79f487c5d2710171c9abe415415585dedbf0c211f31f04f4167f85b2b2bd8d3546b72aa11f73645f4d614a7a4f05b0f9e3fb293a5b3d45e14ccf8d6e084283850c33dc151484c13cb8b842ba2f1a5cc1392abf2a976c21a30faf62865100ecc9ee28b2fcc5d79e77354d7227443cfd88464d7a586ec4212d93af2c6a02b9f5e06c07801601b3fabcf3bf4b53e9d10436e3107feb94db0a2973c117db955e431f1f8d2ecdd44d40143cb28268827b0b8ebc038ace6a95d8b534cb3e4c98993531d182b57e677ab9d11280ebe26db8620f1b9d6a227eb7844592fdb810b0abd017f2565ac9caf02c8d8f8ee644d38dba13f84539d5555a088fc39f8f7f8871783b5fe41adc0270854bc3528c9e047e7cb875239334a6f11b24d73562882dc6c0d9b6624c866be7374b2dcc4ec0a1d1d422bca7318ccc3471433a5ec45c34d884ede39ae0b80dd414ebc2bf6ec46460af86c419a4bab92990f28db8c513a834f5974a4af90d7fe1213c7ff25e670f4eb42b96ea5053652548288a27264110258c966f8744e64c86c08feb7b77373e9f768b2954be797bf54f90aed98bfe4ba10b68bf32f9704aa8c76ae07aedfd2c1c3643cae0b73f8f59d5250c3377c69222e8b09e4c3df75617310189e6d92f2f44f0ae7ae21213f1cb10b721b4e656ecd3e5d9d58123ccd527953ec82928b68ff1b410c5bbe6017a02a11ebdebf2b2f8cbffc8df5944a73788cb7b55d58288e7a17804e74dc324d707e2e5be10246a6de2bfe43325f7e1cb9769c9934846fed430192bc85d2301c55ec48200324517c2007725f386869249cb6894fdc0d32dcf3386369995c72847366c56f52b78a5f237c213fa42acb80d0b6a676dc5a5306e23b50e32cc8f785d99e07e8d4504cc7c68505960b510cd2551074fc72a30eb00ede9841510e13c7093847f2220eb02287a3a8751a0b926ce29c5c52b4919ad89676514bef0937fef99be865b683ce68917a7355098bf9d25e0dc8586360642049448e520c2231761768a7e65e125db38bbe1ce7a51c5b70e892f283d5b83e3f5d3b35115d160729ca111632e4d54f03753f19f6466bd7c187590020990622c5d81b0df18825b4592fa5b823d5a3f6325d9b2d29be871ad710be2b185b07f705755c182e4e7ecd4bf358eee2e146506c7e98494bc671728a0cf4a94ed50c12fb8b213fc10cea6b8ef3dd83515fa5d2bd4ff599d2dded825de5ad1ab2a71226316be7afd9bfb590070c71fa9c0d66757b083aa17a3a5af87c92077c7cffb78dfdd3498777ce916ded227b4921e217689d936f110b98cf19371370f1ce08290c072ee36305b54ff27f0e83229eb45c3c795eab028568068ee0d99cb1ee1e1dd3480363be19ed78471909a5386c24e56b799faa9355cb5533dab3ac78aa8db3dd22dbfe8310468bec9d04f20431fa73fb98c37b5fa8da41b1701044c665e8b86c57eeb90aadcda492efca66c7ad3e7a7836e3e4ee11825997c78b553b42b3e0dd1b2be1b152eac42dfbd5b389e48bd4aa1a8b6f498343863a9aacd8cc23f9d84ed44e3587f11e5c3cc184384d05496c4478ad29088db6146ecbbde573d772ce081a0f1d4219c20826fe23dabe3f1b95581dcae0909d40a2d3fc8a1b40437cb32adf2991424eb96bfe80f6e1fe1dfddb22ec15af76b1134f97df9b75ebe59a07d5fa7d910c81fa6fd1108537a3f4198be368b93b194691685879226ef68b9b781d0525af9b204e8b4c6ab4b57d144238144af1495f14d2859b24a8de7792f410a3b589c0971b8648a4771695b85c4fcaa9ceb7f49f4b4d57e5caa9627151d474489061cca11ea5619a4a527749535367783e9e5cda7858bf7056096d2b2d90889b44d44703070eca108a7ff8062218af2885caf6c0e4959bd6c954047a0fa49af27970f106e53ee55d4515ad075b04a24add042f35a19ab03e41917b206eca8a52518f89c747097558efb3088f9402d56f8661e5dc148a4a0ec7e11b4b3184dcf1208715503a6ce53eb193b508b519030fbfde967be727e6a45debaa17d4f992c5249812a7d00457ebe4f8c73b4131f35016fc5ae0114c2ecb65e7b26da8ee2f11e347b75fe2f50ecff85435ff1a62dfbd5381f3edf7bc7f48b1f0a7df336191bc8003f48430aba61407e7a2aa1a11a7d95aa150ecbbfffac6279071cb99cd1bc13a806a95efcecba2a8d43affed392ec197b81fb4c855d71d95eb17bb3ae9dc37aba969df37873dff97aa97507ce479d829873ad87d2822512a3143809f4769dea7f41365dd6d2a9ee9a0ef1bf59fa9b82e0e61f0863be89529814128010b549070475cba01a3d4a669dd08a5185fd2456bfe3390ea03356ec054318a62cd976c22fb31e06d1981245a3b19a82b0445d43327b088cd616d3f3b003d10c1905104158ec639768ff1dc85e3c9812bd4f644aa5197aadf62e04dc0c3811c050c9c223c774e53d9fb1b8467ec590b44087cbdd8ce81ba824dcf2e2aa672390ce94a94cd8cb9a0fa94ee33786e2287147772e9d2b453b40e893ac27c1727875d1a14536267ee377e25273d1e2c0e51097731a3135c376101e8bf0929a8903d7b6d81168e2a2800fe12f3cb8baefe0aa118534eff9771336393b43b130a5d4d37c48be122b03798a64ea5294037c139e76bea6818f444bb770433595890827906a470d64042f0ea6625db15342b57bd053b4f28369792355ce3ea6a18ab2ddecefd570263894c70b113e9172c001716f3a9f2a02ae3bbc03e4ea3b83d16d6e9a9a41d757f9fa0a2ab538519c231fd9d9faf885b4b04f1a0ed5d1a82d4c213040bdda975e6e6a547d6a21e62d021f8948ec857da39df86b1d201287dbbf4c9f4ce180f6eac570b8ce986d99858ecc89df03b13aaed9930d4875ef6ae9bd5d94fdd8d7e0ed685a54cfd03ade5ba49188e15db3df63f299fe447f848c61f451e24776d82349eb041732b7d077b98d9fc32ed3063d17ca61aedc9245830ca70202913edbaea74a9c611a2445053da0fc8e70536ece0d5741a29d59501fa8da05dcf512f442f3b35e837b45af6a29a1e3f540d05d4294a738e377cd6e72f08bd11a47b839bf97b547b13273559a85b880cc0b798967552bccb19ac89a5a58df36cb4924c872e6a697950516b3bb1de01e2cb55811335a295b46f1a3df072957455768baaecb0fcbd697e632d8602b64cdfc10c6b2eeb94296434b00116bcda0fc5564e0bdabc76a2f5ee1411feb72705680ebf6f2af013f9e6fcc5261dd3f227d8d4640eac8b3651a2d8665cb2a6bb285fcc29ae325bdf579eb44294d3defda09e4b7c1756b1cdcdf603eee8561301d43d6d8d607bc9365a0636cdb104a8699e18d6e24fa81475f4d74c878902c2cc5411c3f649a68a48a66eefca5573626a1e92ab8963310539588acc456fea6e25672ffa83ad35947ed2b5872ab70d63d2eaa505acc73d4da054050b0b3e980f144efc357df3c1164602f8729019ece4ec65576decbc5590e211446e0c3790243fa8814cfb8fd173e6ff54d9b0a0be0ad0fa46ab194f3e13baa5df1683029685f5a3e0772cc4ef368e28dd5726c35a602074af1274e4406c1e6cf8e0d7112d6726e30c636426911c4666d09f8ed1a19517837d11638a421508639771b9a00f9c7d816dd74d83a06456079b637fa6f2ba846b8e244f011dfda5d822ce1df4e0a91e81b2300a8b2926e332aa03138d2623c04f36a5e1ae288027910faf86a10c44b42b14e70ca1c3b3ada10786caf7ef8ffb1705161b84c5e4f01cb7f55a028b534236e7bfdba87a061611b97b98b0b2b98638e259b658056bfbc18601d0d0f0a80589419f5a13ff598803230fa9c1abb36fafcd7bc63ac85f561c38b0991d3501d5673905e78042007525d00486f9736056ea75cb68b56ef2b3bed0a47ca63650550b68bcdabbc096fe5aad0e1ab217a2bc9466d2a972c1585b1d17a58d6b5730b1a63a98ea3003f146192762dc7533f67eda03b574d1a76ee136acf4af299486409c68eb73fd2f7735701be7627573870cb713b20195d94b2c88ad7382f3b0055776518e024f8003fd6620a9b0f428410239a4fa0a05cb733d6ca2a9e442d4623391ac9c93ebef251bcde82d89ef968537bc72a58e6faa65dd094c38220c327cf478a7b7fea69c742e50e7863447ae8b0bf65019f6139632f73b9793408b17583335372951d396b796f3f83910745fa430c4a58b0403daae5cf6fcbe647a299a358e1fba1c09b5bb6100ff0270cbcf19970c7175e15ea3202edc97e5e414e7dd29599afa2087177441950dc616e23c162cab595ffd5d8578cf7a7c3a9150c3ec053ae81000ba2953158e41a862d5c019dcc3a3ac05c89529c0c0a2c600794628ea993a9d0cad52d05fad6afb747b9ddd923dd08c07513229a646aee7b3050e050c9352afb82fe917f17106d54caad85da42c51f882d041e7c927346261928670a22942873d5e0d8205f4f2f3050d2e5ae092605b91f662724e1186eb5780cba9f5dc6ad45eee040b4c358b287a927985c38257af5214e172ca9f1d21d0cc78ea024aa525803ba25a5b08eed3cf9010b351d00b4b94b81dd0d1e9c698d2b0354a68bdd8197f106013d048da53c87ca66bec222742a69f08b1bafc52413fdc0691aa28a0e65f3e17707e2e2749d30b863d8f0271c21718e0802521c343ba718f4086798e8131e4a73fbcb486f83550969faae77724436ddccb66685d6cdd4ee3c8b4c78b0d158e6e7a35704fa81c1657984b69995eb066160000414e5dd6e66e7f4f9e468fb0c9fa932c793a6d7d79b8f5c58d4b214d9c3f71d265daa4d32fb7988b51a7a644ce838d0449273db4affe6684b8aa3d50fc4da1b23aa455732541d99e4864d3dc6c7051c9759b84de22a7565f1ca4b912d6026234dfa6e62ab75f215715017b2569947f5d1149d8b6914c6108f769c49b7d9ce5ca7a23e5f78a1e1dbc3afa0819be2e73f0d63e4eff4b075e59f80a4eb29714fc6b33728ae80b9e2eead8f2997f707ccd156d9db9fa37b0dc9c746239ad890d0b3cee43b86f5f559ed5487fcb9d4dd76dea970bed9c2a9d1924475716c65e282a9e50f20ab299f875e2e0d3873cbf31fecb0523d1ebf9d0855d183095a26acb9ea7d1e79af831f425063f71d458c478c26474af6ee9bdd52b92c4b5d9290743bfe6cbb116c4cb200f79764481eb64b00fe45645de362a0eb5301616562c3c749dd5c0d0e0cf46e02d6c34ac6df449c2cd2ea52528e1aabde15402337057a083cdcd4ea6a3ea64af6e3534aa5d6c5823bd8a6020fa640e749d50178c72956497112fac780f2d36e4261d537a6de934c4fb1c2ea95fbbbf31dab8846e6c788c4257ed1d852acc6424b4644d75b358bdcc4e6c200ada6b20e8f0813c9190b4464a1feb553dafb38a3e1f7767e1be2cf8eebfc211e9763a6d150b074d780b64906adcf09a5d94787e454e3ca32b1ab49858375761e88e450aec49c2b1896fa2cbe4ce65c9e5f5193494774869186c952a03281d57b62e8a4757f1b24ebd9c4505924a448fdea4b231b8ad150bf150ae2c015b3f654d95fea831aa4cf198e7401b91eefd4e3d51734403e1fa886acd71f6905955fe70c7d5c4878c06cd69abd640f291ce4e03d53896e6b9810e898a77dbc1d5c75d7a598817f0b28cde978109a0d13c242dcdf272a6984aac0cf5ab64cdc4ca78d976d9345f09576d5735f1d806d45a3e5f72d9dcc9bfa9dcad720eb5c12c439556a5ddf3dab6a3d12e4a9437e589b4630d59bf04a05bc800c15b563397e28df2c98355a39b400765cc2c669d90ed107461071c7244030a4cc1c6836460d8b9ec30bc89e63697191b8dc06702e242467f6fc1e7010743b0f93d91cedf2e49b6191a0e404aeac1648ea5ce8ac156fc355903854856922e759bcf90ae0b49d0448a71bc88e6b009d404d187dd5bb428e8466a4ed06f68756c6fc41ee2996e859f900b3a95c69d3552448a7f073188cbd66d9e49803d640bf8363c977b89a051f9850fc80e7a80648e87265ad221a5493854932996611320fc25dace6c5411b4287a82f41a5f1b3ad49ccabbc44767a0929694fcc8123c08a830679c752d394042b630fc96d7021c34b3423312363ea9588ab7a01102f4bc66ac67f61b2289911b4f564a598014cf04e8f3b6ab7c63704dedea9b03fac7040e9df2a644ce3821ca2c82aca0a51874283bb3e578e7e911d89589f8b89fb85fed2ee59306bc9e67b02be44e5a22a1360c2b48ac2e0fce4b08f8c7fca8498834159fde83427beaa078901422ee9426cdb47123ef96529c29b0f974fa734608553696bd36a9a64696f0cc1b88d375a9dbf4c0ecb96a71bd8859863fac9c46c0532a9cbbc9658132fae6bc3b58f35a6a93d5f3a095541d7663faf8abdfa752c96297f760611fb795b70e32943ba08e26e631cc19d23c0b96e70d9b01fba7a56629b289d96379112e68844a96ff815a9b75266a4f197242be84551033c6dafb8f7b65fd679e21e1be5cda59e4f6aeed0d668d4fa58226d9be8b208c4866bd3a3d26034aef87c64db24ac67284e5652eb92690cef4bdf7dd32f57b2558ffd99bf97c84324917e6c6c53e19fd06a09c403b5ab313707af6f90abbf01a8c770062c62f33f8bc625902c238a96108f0b46c53b1ba5f8a37943d793ff8b1b10c71d31793066e884cbef0136eac9cf9957017fd3a8aa74109bacbd91e21f87e1aa7a52167213c488f3beb1255c7c03b7a712fb0f80748c10792b881833954d6a7f02179ce04f79d20dbccb0c4a9b6912a683ee12705000b867aee6c58d024ed7837952f94ad6c482a8999dcaffb0b7668a6adc8f52e59572f3c139951d5d3d453ac063c5b8030edf10075befc3cc24b3095ef82f8412ff0613e8079a371eb0e72eb674f463dd9f48914ff312533b75f6e69c3d5241a8c91f4d4058ec515e8554767fe75f265cf2e00e8aa83a590b89925b6e7ca04a171bdf25d4781e86bed96ab29c9d4a1e8deec8ae1b293c7c19e2222396b8875b0da729b1fcdad3f897743bb4c64eb30ec2a47301fbbb9875070a6bd5f15b63bfc757b687ad3737cdc4dd7b43d6b37a97e35e4944df79299e6f1ca95485c1512008be6bbeaaa6b74ef75b9820f5ce1e9936f211364df4f7754166bc0decf188d2834d965200eacfe405cea75e695519f3dd457cbc7d7fc89ac06673f895b3e4a9adc36f1da9af4b67ead4ed7552deacea14e00ded9a23e40dd0052e433a83ee12dbcad69d140c29532748fcbfe65742cfcf6878e6c88a5c69313ab77a847658d5f0876ab23067bfc2a4c4d29e4db2b5c397e21643eb9956c0e262ab7aef849af63c25707a0667b85943800c85bcd0193face32e8e6486b474aea43ef016d30281f93210606ed0826cb200990acdc052247790234eed176bbfeb5b98f828b4c4131601ba9d32b44471eb8d34dc87fa4fc59a74b67aa67802d2a303c635928a42011ef644eaebe1ce40c45b11e592a236f7a2ec2cb2533950144e4ab03e00411112c6816319503f7b377b4b9b11ddaa6d6fbbc29592583b981b4c898088d0495d0ad7477eefd1d90226f6225d599430657a235d34b901a71d684300d70e12f9e1da9ed0ab6046218834bb89d3ca35684200b61f4ff14ae6c27af030a4733a9fad9cc3f90c0b294e62a09c5fb2b0fb951e0e17c70ceed6b70f835bba70e64a2708ab3a900f7c92e7982d66e904a6cf606f29a8e146dd239a5043793f92a1e5eb9e485fb3e465dba1f978d2eaa7d709c28ca47244473e5f6a1d4aba5fdd685bf250f42461c99425556ac6f7a2e93d974d9739c645fbbf228ceac83b9542a55267ccae73f0f667ed723b56f2417e24c92169ff3410d3c7637993a1a72ec5d0e20c013b7a61a62f4072615d776cc0b3c16fef8445b21af3d0c0988ff22d50bdef5343a0e1a7bb59abcb3f04b99322418093050d1e2a75d671c50507d352544093aac94ac2b356ed47d81348695cd2baf602d53f7df7bd6f028ae139d77d424ec0604eab7c9bffa4f490df63b4ee73089530b9b426a426de7dd72bad9d138fc06e5b5c8dd78813787fc5fbe0af364cd15845a561b926eab0d05ad305fed5b04b4e3aa3924c4d9795cc2fd7e69d91d91cc03b96030056f59147d86712469a028d8d2d1b1f144d9961192e7a5d01b2252b6fd4d52c73366fb6c6cabdf2dc189eb4e00c85f5ba4b90e85ff83f3a1db1e16ebd669260dae4eceeb1a70ee06b1a43ac538e6afe0c4abd707a7b6b02598cf35784b9f6dd04e5518a2bdafae5296d6ba72ab876dc8ce5343105263e8fffb626bcabc62b9a4fe6a3fd65b3c64adf0d5f69caa0c17e3bda79f3f38c36cb19f2a9bd5d647dfd346cfb42ac94eef1b29ef9d385988df710aaa98210221384246e11223c72e93e057e4dad444471a161d68e953e8ec2226a3cdf5c4519d08e121069e21ae9fe1cf38d5f322a21f88c110288b1d400ccff2290302d95fd99793fb0e1e1bde21d098e86d77e5406f634e70bcc86943e04a9c5df1efb9ec8b1b1620e0eb8c0a66e5188df12c00300d48032d94478ea6fad45f073ec647eb2dc530c56ee8c105aa6e8e4c3551b57de38e64f0c055f95db7c81aeb0d1805d4b5231485869fa56a93b8c1fc1110a22368b7bdd57189b7de402d0ebf908815c60656932a6b9b7cfea43705dd0487a92813429d5c510c6a926ecd48747ada247c5349b9e0315e1e5049f0109794eb64a839a7a837beb0e8214ba3dcc9f0139ebeb3e33b2f666b106855ecb676572fd8a54cc62a06a77c282d04be90f0768ff2ea07c760d53c7478921097ef82c6d3e447d32763529074f4753d7b9fd3933226a1d28918dce84c98147cdbe744b2b32fa3a008ca5ecba283e61cda157c1a8dc9b61487c76468d7ff1b38cb56b5e5cb20b3c5dbf8e89c63bd45c6e031405195d88c09254eee72cf1192df58fd3129703ea1193ca47d17c4b562deaeef9a1b0eea1b95411622701a3356171f2b237a2d0105f536b66ae46c6ed9937c7e86c79f1eeb9f4f6f4418670a204dc588e92f2f347781059f5d10a957b238103958c7512a3c7f1030b15f2bb0a22a0ffa456ec5533646e9621fa9b676163f4fe33fd76a82182c19ce914d798902eda6bafae2211b2a4b3a7dc24015de4e5c587a9b2882509d75d42cc86a74863198d0c8f3dac3d8dc188af02e7207c798d1f969ee21a4599a2a7c52bc821c0d51965e4a118c5710b17a661ead9e899a9d8e35617b35de8c4e509f528961cd5610e49ffc14bfd1f70603fe38227512d906445d4313ddcb48928b9c3d5a0c794841a1a63418dbde54d0853d4e0c4378666049b7c135a6299789ff1a058eae219df8f0e563696411abdcebab2c60caa47a95022c5b28d43421245925108900f2f2742b8b00618ea5cb3b5df0a037aea07f86ad4b154c6e57ae58fe63d613f802822bd424be35565fb6612bd39e75ceb19cf075cb7ef2ab112f73d659db48bc233346ee1dcd38cc264df9faf210bd611429cdd2dadbe87c0fb76e4e476fad263385edc2f3be974f3f0b3dfa15d8f2f5650f89150fcbf340a0ed7231a5dba4033bf81045e12851d4ada59d7eae2783c44668ff2ae2f52a0d689b159f206edce82d9b869d93de4a4db3d4ca403a600069848e58d4e0fd5242cccf4d59a4c8a499ad661dce2ac06f7b69d40e20f8acb4bb5ee49f3dc1eab2a3effe012285081489d207c4195f648b2fa5799d6c4498943e704bb7ac22f77a1524807a1ca5faca9ab203dec63f6b12dd928e0a28e589b6388632daceabf87b622e160b280fb83da678a87c0d2ad18a1e3bcdbbcb834c0c302ee2ea584364af105e740191b7f9154fc29fa6a5e4d3c0a1895176f609f491bf92bada6a67c8dfc4e1a57a1e2c9d946ad2d8eb69a7b16080b53c0e35041a9a98028d82a34b692c076491833b36b1ba8f353cf32627735ba5999c66719134e86f85c0e9d846a73457f5eefd49d9bdf16e6c7dc60ab87bf08e4d70c09fb44c2cc0dc2e96aec4ac3a65c4d5fea31c4e240b490a8cf90c1c220a09f0480b7d28569991dab98f51c1b5f191fd9295c69adcb47b4a1daeb10a6d64aa64cd012385beb398c537c1472f6ea2d4068d920d761478b646c672650e496b84335548e6905672f124fb85f8baf613e4d8624f546d1bd60ae60efc5e681d3c7f99578b9a89d35215d5e0bab537374493af9e5d35aa8525c2b06bbdfe502bffb4719832ee649e327a1303ca5f868b6bd2b327ef1e17e0efcb752947bc2bf18d1eab44e972e2605377ba49f0cbd0e7105930640fd42fa89f27ae6fc86bdad27dc5bd8339aae7c03b1e86d754dbc69e94009b4dfbda434eb6701217b23d59d58f0764a88ae41e47e2f26894e27885cec0369d4a96d244885079af28a4e3ce20706addd8f723836398d6a1fa63899af73cf8b00845862d79c67e60c6e0de1f80d82ca84a23f04d96484f4554dd22cd4f04999fd73ce03d4e333bda212d078741d89c7c3f384a1db1aee663c895b6fc9359680b17a6a269af23697aae3e29686bd71c9c7e532d2027bc586450ca064edb00e339585cb7ef9b218430297ac1e920e7e911c254d945a899f70ac29c961c20c66eb698feeec0771730d03b68dcb39532852844964bc8ad12fbc53f33b8cc441fb33b64b932c9a085675029f5aaa2eb76eb67f8b83fd30537128a54f74124752dff651a99fe27a86bdde4b85d460de0b7e2fd1c8eb2c7fb6d06a07f340c63b8eb2920019b82ccf10550cf6b34bc1ef308d2fbd68fabc4797d1037efb4c5c9444f78708152f05436c66c8bb3e141d9cbc046ea512ebad2c170f7d7b3a7a99b1e9d31802d6ca7a35a44a376b563200474a857c2755741b722334142858e24821378e49a004d389c4ea3d139f01f3a855137d5328fed59f0b5ff713050f265b3009e4a0a7f23d68abca0fec68df3a2342ab5055085cad27d1271c6422142581e067fe8a67980f345f1087a89461e7e501c608811d64bf455a61d3371d56c00b6a0c7765e673ded2ebb24a861c03fe36ede980529a930acaafa1c006e0720875320aee04286f43f2d0e48dcf334e01cd31fabfa582cd80ce24e44ce334c0d87bb4a0632ef1711cc59dd573d202c4c0b751d94c3cf356ab531439508b02d24d7ddb5cc80f1d1004514d762020a63a6f1e9640666b5519d22fd42b06e50a7ca621d4762422677847710a71d920e03bde3199de3382ba35c1ea16579722648cbaa05756104ba9cbbaae29c757aae8c055e085f55915a2c2ecd49d814eb0a0391a179afd25e0232902a879c063e46c277659a15155d0398fba9e858deb203db731576f234ca316b15a1e1d1ac38c30ff961ad82f81ca883b16e400714774b2a4e5c41c1b28b0b8c716838899d540687c9fb0dbb4936f6df9a5eed85eabb4f586df90b46c1b7fbdce6718fe7a022e1152ae6ac420b6def90b995ce933671f2b52457de4870fa131ba3e9818bf60c2be0c5aed892a4b9a1731632c955164ea9252fc2ef23c7c421f9ffb41e0353c4dfaeaee39ca63a392e75135aa11283e42d774051bc592d2dcf9fb60c590961762704f434ae5db954115fe542c259ce811d6a0a87ff20aca1a6096bce4069fe1e66b5f7ccf6dfef2df043438910881244ef61968a3a5ada9524d40d23063fc922cee98e05897797cc2317a320b15d6181f7bbfc15f9055076f781b00256e846f07aa726600efcfcab43413c56ba0ab6438ba583284d110267dc48d9291fe681c2b825a2176ba5d7b7a44990a2f6f818b3cebaf164fea29c17876200972225e8f08f49301f70c9ed32fb407921ce3faacb0f4e56724a85a49149bff682ecce1b2e0902d33c772aae2ce671680449fce1847f66d75b4d2c748455b0af61f95ec97fb538f4eef090ff586245e8b48974ab3c19bb6745cdaa592792879353c18a14bf2f7a36fe2b3c00a6f599bdf07c00391ad92b3ec0d6b15390145ddaee5ccd85c4b643737ace05fd26a1dd34c12414791168bfb968b23b9d6ea44a6a44063712d0c9b328e5a707c07f014cdf412687637da6611ea87531ff2bbf55d469b73a733ba7e3802e6907eacd50ad93e17aff435088186093c88ab90f33a63e904fa4ffc70ae6189cb3cbe9df682b2a054b08f3de972ebcbac54ba858061bd407b3aacb6b7ca77c97e26c68e7799b4aa44d3a81fc7d30567ddf9525c7a34018ec524ece7bde2c3c8b739c3110ac833d3034e8d174f24a7b6f0359375e995c4138549eeb88d2515678c4d2c97023558a0273d18b9435b139950260d0cc63c3100ca203cdbfd0bbfe5a78d23de179a223886a1f6223da38bdfa369d5260d5e4df54592edbe4bcd345934ed3f1f2602979f607573e3a7ff86a92818ad7db6f6f373a6789c491441aad00c13f589705b80c37021b9544d4094e3681281433371041dae0e1b5912c549ae8f8a5998340bb1b87f4bd75fffb483c3377ce695eaf1986010a99c1006a44d51eec32f07c7cd600e8b76e25b5c4028215d7da4530b572eb6a81aedbf2fc68f9625a6bab9bccd81c880bbc3dcec0b95940f07c3a5f65b58977e1d9882d322c62016a2e84da7253721f4af9ae23fd9563f8ec5a6b2379d3bac4d261b64158d8533ba9302cc6cc3a4039cdae166d19df3d3e2ac7e48b3e91b6a9ea2cc5910ea3f4c03b92434a30f9a30070444af02df7c45186f73dedd13a98e90edf84886026cebbe56fc93a21a3758cee273aefc6ee446da319dd4d88137043692ac289e74449ad9792cf6aee1ad9f3dfb12774fb71d9b9402ae05c4d2064cbc53c9f8ef301f74ed27cce5e2bda2f4928abdd55673f1af9d0c2f59bfa056e87f580267bf9b909f4bbf81c205ec8d68125607d1bfbedbb63ea1133af706510a31fe9e9936f66da0dafb1035b97d145820a0bd99ea2d05b9613700e4b5112cfc91eac5db6fc2f0054bb53c6a331bbf49a2f8c2884dfacea8d562727babedf0b983cdeb6e206f99d6ebb58179eaf9a59f4e4720c407a00bc4c85a51f91dfe48716f5ce682ce59a03308533505830a2044038d9b241f2b47c88e7ab0621f639002d337df9fb9eed75143ddeab72818f16805eb90a42737c0e58088d8c8481d018f8a5eb6ffbc9c46f2e267b12f4b756cf8e944804d3657b62b7d5bb85e0d3bd64c2032a69c5427d81e2e0d75d070c0e73921de81fb3fb2ebc662ee8959a4bf53fc02f389a03ab193f089f2343fe912236b6a28fb15d5f8dc04877b0ef4ab424aef9b8a9fd842be0323ebb5d7367e9c1fa15b64ccb0e5e1a140ca5058b7ceb11982c4e22eb7220b503b1adb5a00937401483e837b9bfe4861881e1021f5b260595e5c73f4dc128acb42e9b667e48fe4f78c081b34c809483400fc8e6aa8392d07db636ca759ffb2c52a14995ba69e030c94a26b6a5ea5529d8eb72ae6551354863294e34782da366417e75f882138e35be39148deadf6dbc5eacb7d659d22789aa99a37853a84f455c958106f10c50b16230e4019c7582ab48155adbcf82d73c5c94309ee800a69a14ec62d84c0d5a6aaa62cdc334d78147916db07c609ab6d62e09c2d56091b89bdd14b79b9f4f5e953483967dd1c5e5bc42090fe1dcafc1ce84379357150bfcde5d7519f815926cc15d9c751276baab6a721650acbc3b89df5798e7d4cb3945f0d7ab7d39cfa30f59054f00355dc0c65158bb64c8a78fd3c47b64c15dce031d30f074e308f5b043bd35868ed1dba9f2344543cb2208086c02201664f678406faf502bb85c33fe1fbc754b7a2d9ba5e25ff626b9c50e083184071753105ede2f99d9a337e0b582e67e3b4cd759487b34a14ebdb110cccb25fac1ddb39c6d817b90e15be8d774a201e04762c31400eb004e4a54ca15901160e5d6416dd04646b06204844f7631bd3e68c29692d5bf9a02beb27f19be45c419423f18ced869281bdf1a770652c0a78ef23358cd80b5b76ba776f5d20fec5c299a2b5f9415ceddf78d8d6daec1e6c9e9c69fa3445fa5827455e082df4050b3d59c41ce031d2b58a56bef5cdea1da62b10a140d24054496edf8c98779c5e840c55b06b5837b6996c5b24521111b7b11a2b1d422405297788503d8f4b1c5a640483f54a7f994158a4015a480b17e1dcfb627d699d8f756190d976b6ba19a24696c58d5ce04c7f20c56934c1704f1353afe33128dcb5e110f8351223ab83154b4130681b37c041fcc1d369ead97a1e4ab18ecf28c646459a240c0b98c65621351dc289e047b0f5fac1929d17d9a9dc819fe284d0111ad39b71b9092211b83bfeac700bbec789674c88539f906e0eae46b1e5110b0dd6df47241639b7d59ed16bc16aadd7b4155e197a972c0a64ed07befc6a2f612cb5772a8a6d62949c4611b7ca8856f6dfb2d506574ca53e06c55e6c94c008fee14a2105a0208a34a22b7bcb4f9ce309b06ec6d602703978e8c11d019d659be7bc526385cc492f74ea76c0cf36eafda823a91c47f8e2e0b0bfd3527107dd2f6035c59999320eaf3d84ff982f640fcaa03b8ea41d5b9f68172755288d6e2a83df348d99ceebe5f23150e0aa64a5c0586fcca3a8f5764f6e82d15c05be55a1c624ccdce0f240a1443c6b63537ab49521145010203d807f428dcb0acb1af58f2a3c0c09e9adef0d0545d0a7186a44a1e774b4a8e2ddee649d5c8afcce8527841992b3f2836bc7a05b42d6470446552de8ff05f5684a193051e21215027e27ebee4540215cb4af13a8c5640f3b574436ba86fa14cb839a8fe49d3644716ea73107df0564bd5886cf9e1e5db99e76b92d061a2dc841daf403289d1ddbd0f565853f669dcccb036d679b4729a633a16bce379055b8a63532e92766042429d0ba465338d3bd2c864293b8fe468810eae21b59adc4d094772757564b7d539312ce9d647a222df6239af3d940bb75b13b8d01f3a0309866fc74f3d231853040da73c56ff81d71de8b2bcfe141364aaf6f59748e83558084df455eb128889b65c9628497efb99207a8b3d62e15ec5fbd8a497e4ddeca1ae2d0fce4e550861be3b15552a5310cd66f99cd849609e21a164c0fd3b2de3f14e4809fde6fcd04bebff8a2fad3f0a0d067d4cf96179bdd8e0c5baeb8f81d4a7fc7637b9d173a907e8f54d39dcef9d69e3ed3cdd5e1b3084cb37a818f6327453e237a97f29f6659d8c17d1bfeea31a0e1e4f81bdfac037bd319b91fe3191035ebfd5f962e221fd2fc50ca2d5c20a36e2e500a07b041a050080110066f33353c2d15e32afd122258f5659b4d316130cd7f5caa6d7669fdecdf9b67a7cefc82644c6d003075e5c3178e772217d100913e2ce216d2bdba361774147648029f0041cb66df62770abbc0a696a0c794170112ae20094fb6f8518cdba8508775d75802941afc30092e28ed3d6a1e9d5e18809e934f6d99048d83c795d923ae248d1ad7205a382da5f5e5f17cfdd8493fb58357a9989091587f2e30bdd39bcc56bd75d723fdf1f290b27a7f1d3f204011fe88d8b112802a1ef8f4a2b1323bdb26297c6aed0f20453e131aabf8dbd270b1b1a5085994a071043c3ce58c28db0a6a0b145d1a9747ebfc56a256979acfedd3779325d01501c6e2761ecd1871241a7330821d620f1712ca7ecc087602a34a283ef917a1e2e87e1d748f78ae9b1abb66bfbda2ba44487ba3b0e3c5c7dddde54b2d87a3f54231afc280c2d7b4352eabc98144a2434fc077ae3e90054ff045a2a088011046cf17337d3d1716be0dacd9724244808b877cbd41a29988fd2664c1f756d6906e9350fc63f2a5fbef455cd5daaed69622c26754695e161a606ba76bca0cfd4a252127c9fc4b52a6347ac0880c239103dd6b7caa4b497ddac981361599796e4728bfe796e4990f68c9cdaa7a436f82b3eebd3ef48e8d72f791bcc59b880d18e80960a01e084005b70c6dac0fbae27c6bed15e723ab5688d9a64b5b2a1dd33bec7b41fe5b184c7f5b644c6ce2d81f6983805ad28cd05bd61102d69a665ff2536def0f557867d72379b51b004654865e28d74c9365a321403f6521587a30a2dc1784ed9a91828c83363603c7d9451e3e8669ded21fc410213ac63b32659288383bf61a31f2cda60b3644bd0c9f8cceafb339e19deb105426a99e402d53bc51e511c74c374257a7812703be605323299f6cf0f83e653bc682615cadd4c4ebcce79ea03d5a4c72ff8c90580c88c1dffa4e72b65e1ed920eae636c8d4405d4e86c43370217d4dcb2cdacaa9945dd9d73859be4f7acdb7688ac8cdfc7aec9419b76172893c133c4eceaac7c30f3fc8509d61d8d51592c88f21c6fb5ef218108e374eb0239491d375b27a1dfba087619ae39295886ea21284c4d1ca24b93a96cb21ffc05cdac83fc1ecf73d47e74ba1f210809f7e1e8dcb570e9ae6259e63914b5b0b9cfe1324ac5904a41f3c39f43a7ceaee8bab744df59b8785e86fa963d2b448a241c69058950f2eed0daaa5bd861509276e97c42ea31159d5ff2ad38a518f4552f17faf28c8ffdc65a5fcbf4e23a8d926d0df93109a5464ffc041ea55249d38614ef30004414ed9db70279778afad3a2e4249dde557fd6700cca27cc415e2c2773a76a237175fd4fd6f9f621f15f278e63291fcd28a92726047b79c97e987b6cfcc84017f0695d44c58afae92956ca59d42a7ff449dae14acf450b6ee0438fabfcd6704d67e928c8adc1a50f5ba41ea69f67840efa74dc5a1acd227d55f35bea950ada1ed6341acbe714663a534210b589fa8b7a913e275b4174269287dccfe30aab805766234752f8a3f23e942af226689632bab9441167a4a5f1d4f31afe8a8c1af1e2518ad6b99af82e519cbf0ada2488d8ae522ed8fd35e99c237e1671642e38e2a8414b62feb86681989a30d2e956a36cd708637bf7b7113a9e1f313b94110ccecaceb2c3c9284fe99d5e932163a950d3babfd4019b56f2475a8579222140ed7c6128e56e1f210c94f6b208634e99e9ea38c83fabdc83ef30a34db4804143907bb77ec9845f058b346e0dd2d2d90ccef9a2b6c95efd8655ffe4065df6f4e03573210981c3fb8058989747b81048e0151b82723866e0f53083414518434684a364801bc8c0fb69996ea908a8b02ff08438556edece71499abb496c6d078b3d43ed130de28eedb14d3792f7631007d6a1bb429c047427b635fc7ae08001c1cf26ce83ec783803d7be8c960201610500db704a8616f8d939626eaf7b76ffa82e3b07ca82d5a4602059b6f73840404fe5e7d96d0658d9942ded2ae6236b93043136ac7146158c98f82dd4ad9e8c09b4a72826dac2f63081081b565317075a1161050c936607f2b9b8143eb72f8348388eaba45658f457eb72bcd8c6c9df410e5642fef90afdc26d11a1a74e1671635cb5cc063135b0d199bdacb90442a9c002508257cddb6e4e08c207ea51023ad53f12b1af4e6e0037584b2f0b01f274ed0fac828448407e61397856012430e31a5f54b323d8049a10a2e198245e48bdda08650623d0ac9a860cb6f8f85bb44db96a90e6107d3f0ef9241d8c3ff947efd6476fc3a0c3be41925218148c0c72d9187656a681ba53343506341df69da398c8a07b0122182a6f1a161610342e4f36449e07b8ca07f6d12c6674513050d687e9ba1fc686c866e0d1ab2140230a6e032a740c246ac24660686a82ba185bb47d8ed846a9c450009653b2851978f89b2ef65964223676db3412e07d604cbe78fb40da1bc6ec9a68c32e0b0ccf620350371428aa05c5f0d918bc9c0ce1e70f81ea7007f6b208c4ce4ce9ba11e823e19f096ebb2f27b84da95e5ae0abf4ccabe2277da45574a44a87336ecd795856d0bdce70375d186ed2c820637063fbe3b02d067565198da50c136757f4f62e30fafbef2e62fca95aaf96e8d588efaee92a049324b369bc4819de40e36f60571172e82faf1084a9d09eca32fcbb7ac0ae47e93e5b5d04d9c87ca8806836ce9a4124d0783850814463e952e544f7daf162896cf5b6b4ad816c993cf07ce03696d617723ee8950500c26c13ee4f6bd7ab46ca068cdea081a779081a5ac238dd502cdc7ff3f330ceb209fde3acd785e6f555dd5788d9029306ab150d2689347b22ab79be3157d1e31e4a6e129c49d09f5b697c87cdd551baab5f024218c1a154443c06f778e0ad64df4fa0fbd02c44de1c233bfa5bb4f6fdf31a474849c192097a6e5e5ca85995592b0097cf03e6b9f6830e53d844233ba12cddb83dde7d1e28ba37a499446b7d466f00a4e87c562071c8b0a26d6c0a59d251196152723b27c1cfbdeaf88de23d5ca265977ca93728995004f6ac8a780276fdb7a820298ef5a365a6a96f39d33d0e74c5789502bc7f4323259b94b9cf387770d2905ad61092a43ae7a825d1294acdb21369a79b688c12c2fb2ce4e0cc2d21d3f95cae1c1a460d41ee15397f8f9aa2c565c648a05760c11e8f8861543a9262141733424794a4111cb0a0564b173f846deb27a9614796180a0b1dd8e340036ab9ed280e0734dda9e789bb8c8c7455c5e557b0188a27456dda96e70cdf809d30fbc0fbf617cbb48d492aeaae4cd8b346ecd9e39ddd3a886a4845dbbe9adb93bc638ed90722f772a98eca2b9268beac508c28e5684a3862c4cb05487548b40a18002300c4e6f7648a16ecdf0f3acae26a697d02eb9ff21c106eb8231f327a3948502995afcf7811ee4ce8c2e9496c84e489d6c99c0333b6e48ff835bb20e94b1b67fa18e1093bbed8e252549c33231153c233be5e6729fb1ee4b2aa9b98a8c338b75091d88a2a6b3355804ca2abf007404be30594f462c88d070be77fd76784a34d50390214ff7bf6756d8c0de47e3b7afabe127bb3d3e31f004d5c8449491f2182d8f0a48b60e3eb2050ace02918859fa8e5d3a15ba39b43eab1756a6916e37d9c181c326438ac7169ac0eb2b5cd63df7820e1e89e08e6c7ee16e1a00cc309f463e3f5d18520f42957b31b24dc818700cf5e2d1494d98577ca89dd2efce0c1f11815b15e43884457f4812e60614b0894fc6d5b3c29db511a34081d0c13fe2ca2d748d87ff99bd05ca1ac05256160ec26a21514a4f3ca719d4e8bc9cb619708a031f0a0608e389cb50be6a7d7869176797f1efd9abd44fe70b8105869668667efd1d8d9d6e869c21b0c932090b743553bcd8681016203cf5e516f6f15289c5fe100a478026d0a00820b0366e1030468437ce04fac45587fec5e92906d48eee6e125750f6ab7a987ee66637941447821d5aacfcf2d0c9595044ebb849635fe6bd0215e1148bd973ce69f6e86a2bbb7b8012f4d719850e3469f9b1b4f78b68d73cb0ca45da073d5527b1858288696c0a452df9ed064e7e0de1cfd6d877aecde2b46ee9ddcf44b13825590a4c8ec04a4dc0f404ce73f83a35fb8762b03b132ac683b730d3d9f3abddfae3db0b0bd60f7a5aae2e4ae4a34aa0ba4ddee458cfbf52bbe6c8593f17a06dbf83e0c00a1b262c44520bfb2a78023d84879e24101b656ccbba70f7dc43c87e113ed7f5614065bd2ec288e5a3113ac37e71ef3078203cbe362640a66c0ebe1e280f0631a7f125b85415797d1f04f419f7dd7e6b1b52715c4c857084113f1af22ec0387caf6c06953d5fc9f8591df3f28495c1a5026bf31f8f65224c0d73b47ce417af35a56faf8b3304200cf70c49cf7d474609c95de8e8ef22a9f3f37aba3d3c732b28003a70fafdebb2a3ecb65a063b57a9cf9605f4b75e4358553cb86e4ca5e7c4d45afc94010469660eb78d90ce0ab4413b1662a0b8510a9b6ae41445cd97ec065511d47298243b8f87f2b7b4f1f1e675bc0c246875c68564e70053f8bee41168320faf37c68e0f5444e82379a85a8909c53de497fba7839471ced186b86731651baf14f95e17dab2045d908de6cc01dca983d8523875c15f5ecd86db38b27e12eb346c6954fc9e1ae8a1e43d42cb2aab87aaa37f9c61d987204341400002704d88217858e3edc870d43ca8a02aa5850818c3a29d861d6f79fe82d327101e856286555f075a020701bd6049ad4cb9f679e17ba3605038f5694fb07e573cd843399597875aa5d2a19ae35b286f15dad9aeabc8d92064fd116f45d4360bc3cda2eec69c90b765d1f4d5d9b3cb6fdfaa4f1c82377329147ccbc0dbfab74a6e91c117b0894d2544182f80396b673720f4b1b16654dd9846346a69995dad88252e2a9498d79946d0ad2708ae813a063cc828f5600cf34e546148944038f3d91b8516a00bc802052a42ea4933804ad8c2aa55905ad4b703299a94a115cf219dfdfb16459feb685d611ec93d381225aa8e3bc81ef04aceeb1aba6961d6e3e05034e1004060f268fa1a8048df20839e4a2b88bb68d4740534a19166623605bc3a26a19236c5cc48db57bbaf515f18a4564c58938538e88dbeea72ae689792f059ad0b2c8d914854f1d0d4fe879d65e9240521c1629260c972e016d75903781ec188882e4e49c099e2a0fbba7d5f2e16ff98ed5029dd968e600b807e21f94e8c9f0b9d951c4e1e670ecf0bc98766014e65ff7d5a5ca5ef7841e3b2c1c4e05fc0ea53eb970c5137f40401245fdebe26f9029ff1e7ef62a91714742c5682d990cf9714f0f782396b9304cbfd0890e9b7214e6fbf0e1a1024b58589f83b36825bb63e9e1ec3488ef41fa61e81754e3a7c0dca084742cdb7b884723dcb99d19955edabcbe83516c4a64e965aaab5d76da5e1eefb7f6275a511390bbe292fa8b692db7245ae135d966d41d14d271c29da7229ee3eb187fe0d732b36a6741bf681df96bb180c5cc7a02d80ff806b6d75e0bb8b4de9b23941ed46ab8344482f41a5deff10468c068ab4a45d94bf4d96a0bc17cd12f8e98c31de25d3a01502b57029e60543ee3f505396284acd71fec192bb6f8563641abfc81256e9c101705034e5b956f256640cc58d9b0d0248c62850cfd0ad23c3f3766fa8e66506090fca8fe71f61745600839ff18083a03b2b66222781607255d63d0873fd189be01e04bcd25937109a59b1669ab95533c1538f2c89a727e68b2f8b77ea7cd1188a09da7eafba37edc9780b63f4c7103cfbc7428feb646b7f4b0720f8194f6bba91ef00e615ac8d22730412c16adf8f3b96545b9fff6cfff2b649138a77165a8d3fc3e5674c72592143ee0019fb2c8376ca305fb39b9f5751546977fbf0b32c6a71386e64e904d199095694bd2c7b81cf0cd5e29d98d0791b44a0fdfd7fa24e9fd2166c1dc5f7ff9fd99403e7e2f81d338bd76e8e7f4171cce6afea3e9179c22f6db6477c27b6af121e45debb47d510de99fd06c2ea0a1f63a98c0d91492d95da003bf84f8405d8af670653ce9b18f4c1abf568e27a2660cc71a933d5147e121f3a6e904d2704486b0ae14eefb3cce77034e20b84f1ecc7695600cd6abdebd3e7f255e7fcd01a493565bf911df73b931e4914688bd16b14939d6987986c9b889f42fd07311b150a83b0e467e1f64e74cc3452fcc24a0d12d0b6fc2fe0613ad63d2e0701f32a1f491ee5d3a11f6110980ddc0e019bd4a90f42e14ef9ae67f5c4e8c977222b026b05db1046e02daa8715c5730ceb09b0ec0ddd3a07c984dc3430f152beae4f87e4d2550b01ef16b9de951d21085fcb840f853e8bc04920a2bfe510aaa00c3e2ee14f050b181eb5d6ac916b7d501c52b9323139451d3c356aed613d48424d952ca9464690559057b05b58a5589d52a56ab98982ab15ac5a2c4dc7a148ab4dd401041990d63107830866fb60e46505229e712dfed48455cee82f840d4e974f6356caad321c25aa70381a7579bb912d49fc7379ca9df8f9c83bf301d89ae6d1874835d7b8e4437780df4046907757674bc7247a7cb694a1f0909d79ffc839265bfd5aa799416e7dcd363adcd6b1befdba64176cf765de69f07656c2f3dcc4b806545d3fc2869c97b40196d77a76dfad0b3e8d08bdb7d6c8a9993f99ad1f64771b43f496949ab697b926dfefe263184e60f75b4f9c42f5271f35d5ff6c7ed9ff66bdbabd1115945dabee6daac50db3d4958a9b637d9aeeb10cdf67a6eaf466d563214ee664ddbae711e5237f2408c312169ae20f9614668fad48e255425b8806103e985d0742a2ff3e3761b2796ad2d3dae64119affb44bb8e02164294e141a1542f3a1def863db35ad4bdb35adb0db157415b55da14285aca55d4153d021aa50f6e81051b0c6dd530569f7e8ac43d4c3c157142361ce9a47872867dee6a1c265f3e81d1d221ebcb3a375748876b2ce9bada3753a443a3aed5448a743a4ebc94d59da398dd321cadd364e3b15c2699cbee910e17a6e56b6b9db3793b76f57fba6f14d671cfb06463cdbb7af7dd35887e8a63388f2b4f1856dc38ada364dea10d9f0bd6a82ed062b34bbeac72f7c5fdb15bc07cb813a772c5f42a4542819a2638ed0cc1f1042c60c95291e499e380e2e23149e1f072a241cf66b9b0ed18bc08c0913b4b461516664d57039f3c68c0e262b8b55c68c060a68f2ad6e45c2d6fbf52db71de3e4caeccc8a9519516802b7e680133850c08050614911e29058ede18fae087403ddd73778066bfbf5ef76d6ead2726d71da56bb105a0d22040aa1d35dab3d89fb813913b94b6a6ad35e28d5c0f81c80e44f808a8cb58d98e5378733f6bc4bbbc6f978f17fb768f4b2aff62e1cf542bc1a0162e7beda83d2937caaeab2e3bdf75e7bcb9befa28e0e41004f448846425d8fd69b4fdefdef72f015e5f52d56a12211da404151c6460a356084577b5915fa00cc98132f1328de2809aff6e2d56ebce4a621aca65b44addb9372944372ac6a98abd4aa4461b0834c8d2169595a848068e48b4c49962827ae9c478ced894c7aa2c493f4c44a0ccf796280f5c40b8d9a8c534b03396fbec444a551b55941768d738efa723a4498c309f96a9c2673e6c15d80235b6dcce91d5dd61ffdc169c76992a76796fa068982a43098d260068de8c083536abb06010841f55e1d0be86d8ed857a3f09da40a505238f2de7b2f04f43601897d750720bee7ea0bb8a04be285caa3110a2961dbb523bd86a41742b1335c6ba2b29dc2763028c7eddaa1aad0358ecc32daae83605286db65e04ed8ae0780450a719b34eb5eb0f3c8be5aefeb754476936f0fd7fbd1737b7a21fc0fa9bb6ef43f0f81c4ede27ab4ded8476f7cb3dd6c140b15a55813539372a396844368d325152a4aa1a24590345f374c4823b4d94854128e7dfc293f4f93fbf57bed5febd6bad7ad9c43005f20c95b6badb5d65ac96badd7df12fc014d10c27e224386a7c5301c70a41d60d354eb7eeed2f54137d00d4f29d53ebae127406a536781ef51ba41d89992d1fe4a7a084fd66a4d165c272d49faf0dcf11a48dd4e095647019f63b1c5b5566bb1f51eb5c3d3e2e28541856509dcf897b775a1ef240d4f277d5c78fdeb52ae62dcc108e097ae11e4a8cf1f5f806ed800d2ff1ea7e0fdffffdddfdddfa7defd03fdfcefffefafc3e17aea180c5a77eb1677180a06873ad8b7d5410082bbbfbf20cdc470f8dedfb784e7e82e46ab060a0202b9db5a691010080818041404e27fae8180feeeeeeeefeeef5e7ceaeb57afb5d6eafeeefe3ef6eeb5d65affeb7fadd5dd87dce9d32f3f3876a7dced1a3112883b0666b4ec76ffffeffeeefe3eac59ca2437c91b7d7daf5e810166aea888cdb812ee5cf32fd9af3df44c100cb0c35250cba6fe5d77bb5eb06bd5b9042c4844b2692b942b415ee72b558e3d394c37d42dac6b6b53b9a4aabd4d85b5d2a21b91f049d3555f00032ee4584bd5d4a9990fa1c713f8ce99f94fd56996decdaed5c4aed587147f69e9c9d00dea2b7d1210cc23156700c12881400d1624fc0802d523cd8e0903b546562ca650d2f434b6f1c6b2d55a8424ebb1c7314bad4a0a0a342151951b6ab4ac4ec8a186a3a272a9c85d9973d5b86e61629977acabeee5ea2e9ee8b0e24c559b0ec7f4b4f8e3bd0590fdba43d4d8951bdbfcdd76504d8587995816b5f147af7d80ed92a4ad5624a7435b4952db34cddab7923d4bb19397b4d65a1ca43ffa43f5bdf75e8cb7d5f587eaa25bc2ff162347abd00bfd484e9baee44ddec3a56a170ecb64259a4ea38e0209e3e0a6f8de7befbd97b42ea5d3d4a7743db34451aa44578ebcf6465e7bc96b2fb6d7465e6b7b5658742bf14f32e5dcdda5bc87371dd99416838e84024eda7b0e1e8165bf316d2c8b4ef4e1a64e75dc3749caa74a145daa44574ebb5136cb601008fcfdb4462a91b6eb07fabbda8775f864f32793661d1996e590584445922479cd113a1fc7b567c7744794dab21d06b16cea76bb1def17d4c1d440c1a17d4f62962e5723165567e809c1a033e81c49921aebb0d65530c74de64f7a0d7a187cd7a4daebe97a26ee2591b99b0ee151f01a6bd287047fdc1f5c8d01b0b3a07dba48c843754c40548ac8a07dbd1032e89ceb32f85c109141fbb4af1742065d24ccfdff8509f430e85e4f63a8f5035293baf62e4c0043ef03525bddd3664f933df27b958c0169467b64916e369b648f2cd5911cee88a53aa2b5c65089b5abab2ef5647dac3fae31a064140d6320f0f7d3ba2c3fe9cb00e8d71e2cec2ae84aac5dfff30d4fb259893489cc52937ac69e36ad269b947a3e35ec7fded38e33865a567fdcc736d925abf43f577ab2e74337f94a4d5fc7fee7da2a19b76babf41acc4a6c5a7a0d3b5a47bbeb0bb4eb5a5685ac12fd71edd333b1ee9958835e063db3c4e0196c0a469662eb34af6796177a66c6a067e20b7c68e9837d0060c167b7f3a9e0c37b329f2fb3e6d51d6a061f2abc3e36bde3433c52a2daae71f64806deff40f8e3fe9eafa7ffe75a00c71f50e3926cd71ee80627491dc497587b5448f8a4c79124674e623b84ae3da042340c590933da84a9829543e8946887bdbf404b07ca4c4bee01c3b1c93c54704f9ae87ce49d212b8a4f3966dcc8b2cea6604515575b6964982d313711b68c5bbcad1fdbe4e18c811574f0f69d09820fff6f8b490767864a07c45b2a76b7a02010183cd61f1ce786d19e8058ff51c71614040283664dfefc1fba6f590c8e1cc35a74d7accc96b563cb904d723d4bba1838f5ba8c713e1b3aeeb1efbdf7de5be6e9f3b572b42f6fdf6b938099a3fa43f7d5980ead18611f9fd63256b8c2c361ceda42586adc5e7932a46507c1b78140ff73dc5ade85c92981d9cab24e0b4ad6413991778ce02b39f3c09dc93c9b820d51daa6dd3144c52e9377360513b2b64d6b755ac5fa4337e9a3ffc7b558684d8169a1d826cfaae57215476f15db28496f596d59f6f47ffd7f5bddd2e749cbf9577b491beedaf00ddf3079c3d9703932a7bb3a9ba3a4c5bfc3f33cb9ec8f3ff7fc6b787d4393ffdfddffbf5a6befbdfef4e9d3a0fb5c8880859df3ebb373b6be5bfbd56db66bf50aee5bf70bdf0bb145d0a1d0f672fda1b735391da5b03f2075bdf792977cbc3fa8fa626cb391b8d56ab379b5b597b4603329a5379f7d6daf81527ad3913a1728751a04d61faac1b4e0a6fd6dfaecab7324d5b556d3eabb7d6e555b6daf2db30e785f078d62b73d5975b7da6d524a29adb702cb6407020ded03c7545ca9ae0cadb5e2205162b58a0558301894ce56ff76bc7f238f49c38a64f41033432389cd8d1a4011ff74cd6a0f9f426835881056ff2ca678c35be170b7ccf3bab7fbdfd71d4992ba09e476d5bbb7555dcf2dec1d05dbb3ab93addeaca3a0a6015dd9d475a8b55a6ddb9978637c2102a4b6691bd90341b76d2fc92e3301fab1f169303cbb555ae97ee8070b72110c0202551abf32f94d008ad0610888500e87edbff6c9f587e2bef66c385ccfacfa5e7aebbdb53f07e3180a0202fd7c9a57eeb20e2f200a704c7057a725115e4b8282bca18f08540c21c2ab184284578862b1582cf24ab1b2c608b0d38f1c851bc121cff3070406874fbb4680e9709788116022bababababa7e5dc060d75ada11ad8c6c2cccd8b5cb99ac1af3fd80bb200fe7f33c4f9c73596afd1b1aea00056b68c8cb251056300808b4cbb9cb0ee7a120af2c6b9a1a20b46c1c9c73596afdfb014f0f1fa69ce7799ee7799ee7798a2d31611dd1cac8c6c28c5dc52c7289e9de5bd61f2cacb0ff3a020179431ff103082de207105a1f8844225a19d95898b1ab9845e495a55d1bf3fd78383cece0c16a97871d3c5875f021af0c2b2d922526ac228f1a410b180a0601796539a5ff6b4937681303f54b9265fd21ef09ec36cbf2c386bbf2a7030283160004062d00e81e040c82b3effcf97659474eef703038d48060308b780e8782bcb22cd632c7209c73596afdfb014f0f1fa69c1e3e4cf1709ee7f93bc9c6c28c5dc52ce2791c03c23997a5d6bf0e50747868a80394a1a1a1a1520f8dd933386c1cd181d82ee7f33ccff33ccff33ccff31433e146435efe80c020cd0211e20a88ac32abcc2ab3caac1f306b2ded885646361666ec2a66b91cacb0233c9c73090404440010101001404038070181c886f64f07dc05793ef4399075211cc6bb4c8d233aa062fef31ae39ccb526ba423146e04672ded8856463616468d651c243b9c97b2e9f3fd7e98b2e9f3fd7eacb53eff796d7b3fac6cfac272532ee7fed44b2fbd2ceb8fb5ef1cbcb63a3c35b20edbc8aedd64c07e9d23a9d7ba63021be43faf31b6b6473ce970282803b385ca599db3af5dbf73a0dae9a5d44629bdd4462f7ddbb53d5adfc65399e86e3a11b8618c6bbd616c2bd6b8e82ee0cc342bc951aac1520eff4fe93b07546bb0b63e076badfdb7d6daff1e750e2a19875a6bb5ce0170cc8c1c7e0d94665cadb5d505750eaeab91d1368b52f0fb04d8a69d74776cd3d4a66d644f473750ec9dbe528c1d85309884545300e46815b29f42aac893308592639930f7634e59bedc284209dfe7ab3411e66efd7b9dda7bf38e097c8e8731113312becf85c1242c51dd61e87a7c19b3cda0a38c3705fbd2a54c0e2adb4dc1be6cf95d63057b932d6c0a46e4c50f2af3c8c19d90efa66043da94278890c3b56a6b2d99bf5a4b5a4bdaaaaeb547b506e5a6442178fc973a7fa536fd7b8db54bc999ff0ffcaa3bbcbbeb9c7eb5b7bedf6a2f59dfc95cb5b6f67c7403aa8bacbf552e6781d2df391efa54e71c006feaccdea5a6cff79c5c0e68987d98ffffffffff9dd636d6dac85b656de4adaaaaaa678efa6cb6bf9443e91cbc59817ec8e7d3fffbfd8f73c0403978cd232fdde077b5a4bd9b6a1e8fc713e2f178be5c1dde2a6350bb1bc000fb2dd8172b3826bb8869ed0996a3985a9695f04fe852431bc16b451ca1998576a60f284b150cb649691a256ed3b3b6e948aed4b4b34defe1473c689b6e3a99e970509cdb7ca4fa4d3d86b6f95247bec9aec6ef3a0bda55e3cce5b4ab2eb9d0ecaa75d7945df50fd8c566571df42aeeaa3bf8d8557f089105cdae7a84075f2e76d522e0b2ab2e01892f3246462547602224692d3da14d81b9a1d2b235742216b77019c7c280ecaabdcc8f61be2676642476e4880b521297e25217204f5de6408d7d4d51cdd855ff90e8b4abfea21736c6cd33233b71d3ab25c6e06d4949b599dfe6848863489221678e4545ca68091b1cad8593d5604f386ad4c479d12584e9880b830347adc6508919d317ae33332348e129b270e346889caa164c62b69c159f8ea4caae5894c9714568adb516014ab2899bda097861dc5f85367215f21437cd10c79e451941837dab332134a254215581429b62e68696b3a69eac2a31673f4cd098f1c403bac1a7d10dfede5e082584d756e146167e4d1265258b932567d0b85ca96438b0331a2b8a8ee484f1412509c60bb5ef009b2664ce90d00c9170c6b314b9c887182d34495f65a02c954140a0a79036d42b08139236270b990f31dc1696999b9c8602248b0e29144f50c8353e66862f712a42c40b18364d947c998dd980d498707cca4164118703940a07a8e5e3843229435e9c552766c5a37b244b983531506e82e8c0995549d16b5154d146cbcb1539f73c5207d030134489992867b870799939114d887396250d213305041e78d02657a621646872e2a8d14273c289d9926d06961451466254be90d6ccc50b0df69e07e062f4c2a8c80924275650ec722271a34666c99a304a712b42f2327332633ca239d9ba349922c5c4753c715d3646b836660480d4d5bab4a546c00a15ac3632b288301156321c22e060030584c81c1cd71219dc921a9db51c27b453693286e58a1327235d2a16ab3d64125996c4e8712475c288c350285f3334ce0db5135c5a388d19b12d210c4e0354479cc4dc34393ba17dd66ade986c6aa0df3fbb2918325c329c1645ed40c345e9cc98d5d515324414a8a928abea6a528af2e07f213aa0d1c1d71a40173cb84ed818de6053868b6498e87cd9202235a68d0dad16bcb2025336cbf202d9a0f941842bcd8e342fac968d225302094554648861316e1c9d85792b1a309ac49a86a49d58db3ad478d9a2660412b6b0d146296b43620d9bb226301c62b648a7659036b8949d0b2a1338d4a89c10c4af8a322c490420d68022c3b24229ca9f24c0105245cd91a5ab32dc56998cb32855a2dc6ca122c74afbb4f07106861b1a442cd8ab5e29b30146840d31c78e14329650bc4653ab144e66dc907a31c583e2ac94b1c814d2c4202305cd9728517c58f73273c36ab0f71c53a6e28a66f98a212503516e70551981130309a7b5758454468dda13b135c5205f048407d252d4932b45e678d93463922c512b606ca474b9d1f545a4e8080d1c235a5ef4f82a52af2ad91813b6501d3913a12948d629b4fa678b98e02cc9aaaa12338306b6676354ec461cc1b8f2815485a5565658a1a1561962d646b83834603fd05a58a5855d2c2ff00a3ad411040b095eae72ec8082735983402a44855f69902449122dd1caf1451543c81592a424499264d6267587d74092e4871d55c4ce3065e1622224499224adb5b79bcdd6c6e6f301d6f8d6fb00e372c7cb6f60e829318e476f74445171f9df8c54b1da030bbdadce2a30a1c8122630e44cf1c259a8c16ca0878b216b90d2c4c2e0a864a951f4c20b9230a911dea815398b5e885115b7249541e36591a4aca053c21899caf1a5c28a0c7965bb8859726573bf4d6d7452a52ee3382de870c4b8c023215ba5c022452a4d93397354c8c14d21e24204492c4a8812a3f2b2e6a554195538c13a99247963bb8801a2e28d121a914898396ad008adfe91ee49a25094e9314c93e34b5871a8b87a321a82b15104476c32b2032508c68d8f14646c686c8d40820b9838267891996063a36eb8e19190495d96261f36ad2621a48dc9991f22614e66419a30b182655b6055663ca3e50b070d6088b2fec810dee27389516af1ee53c6b122268e358a5c8979611b03048896302cd48a464a2ed9cc54984d4aac52b8298a048a1c36528c8861d55d586d6b6d0657d4d6d60491c395a40034d92cf79715723c6e6ad30c6345525bb6c2b89c2544a19d6bee00bad0d4987383c94a99d16b8421580d2d524e54ca1935c3f184a5888b336172f97f4f614d3e56e004246fa064a489b98af2854526aa5092a3e945130e2009070b93ab196334b4e05a058a715bed21173141e2456b2bed4b71cae723927d3f6b5f5729cc85a402dd765f23ef15c4c5c980a20cab286844adad61181f775b9d8b7e109150f97a6a1292f445268e46605b9a6ab8b982ab0a2343c9016cb2864451a16262444a110a2f465f368a5c0d99f25e4fc21851b89ae3030e8f35518ca6a00a801564c549b656a384caa46c89769d9d186a594116834cf57fabe772263018e498991c5e592b7498ada0340bce091749873c4c08015375f483aa5eabb1b5b5d61f15f0e2f20209ed0b8e0ea159e29afc952a47a6571b3363c28c39aa9d1a2c8d7993228d549426554b9222146a4168402dad8181712b0bfc506b0d97caa864ad9ac92444233800004101c3160000200c0a854442912849a240e9c20f1480105282386a504018cc23915014e3288e62180620882100006290218a39e64cdd0e421317fd8879904d32d0276dbbaadb4575444321255467c2aa10565c705279d3d2b2da77a9d54e03ae35b1fdcd8068acb70670572c495989c26b25df55ea3fd35089c39637dcb4e20cea5a990512a2a8d33c6cdb0d0211156e88061671a03658c2711ac02df3aebf95624efe238ac1eb1faf777cca082d8bff929638da741da7d397e21fa145a2a7884b838e434e175bb5112cf01da8d6856e73404c0eb0201fd1e3d0afadb69d83dd44aac60cd512b2867904496ef228a43bb80845e10660346e77159c43f71d26411e1710cc6bd2665d20d5dd05f6d7beac8e34f19a2327a143b180ad0ec1a6b8a60ed1bf3ab4d3f6349528251f1f3491b2ce5508613f50abc9cf1dc8a4dd3f2cbef8fb7f18fd36ff51155f660f876661c0129c5dec5c15839ec2ab2a9b41e16c720281c0aa979b18bd4337d696f17a8457b646277c9f86c6f162b40e545c9c60b65b53cc6703fbf0773b70d05903b387b93062d13a9ac65e6d04e4d088134cb50acda5f1674d6eca12752b6410f857719db102f2386d6546d13aa38c003b31f941ff0730a79008c21f84f2a433fac3a868c4cff0bd091c8e864ed357a5a8cb6a8ba902f954c742c227db65a9f7ea3c4a3e43624a4b7ece6d149c8ccf311a5beab686e63b6f633d4ce50f1bbf312825d3bc9a3563ae627860a4a9546be26e890f80912807f515278612d4af94c193519a0bcf5980e9ad2afe54fb47c8ff0923d6a49c26adfd9b196b254823152ddad7a6ae1ba58a5619bfcd59d9bc62422382d9bd92aeb25219ab3d2ff428bd865cc18e6104e2ff0d8b5fe227b7aa0aa52b49739cb515152949e74950adfe2dc3bcb7b137f814610b7b6594192979d78f53d8d8e65119bc768bd9063d8035db9471ab3d9538b33fc8e43cfc88c5c170269d6c8a47bac399b6a44bce893599e8c720395d4db92f5ba21e1abab6e614c5b4c2db47b15c6d862725da02aad1e2f5b6e1ea35ac8546e0d135f01e77b780b1dcf2af9783dabb536496405cdaddb0d3122a3fc28d24c65b6f00ab32384bfc4c2250822e3b3d185fded071f1edfb2149501898c5fdd4c37a233564865702c65c3adfd511b0a33782f0cf93f43627c777ef4c0fd317810af90e633aa5c9f124a4f587fa8d49e052550c625f37c3441724e301a89ede868dfed13c9819d8db5acd310f4ba3b276582880ce3110126213dab0c34bef49da140d955937d8c398dc463c07b20c3594783d32501eecd7530125ee138b556929014d714bf58f006a845bc6b890833f23df19a695da3dae96226078d897934eaf60c43827d3e6adf10a7594c8bc09cf9291e847895ecf03a4d85fcdd16d50b05e27b71003647f6e98815ddcfaa6c80b720e6930c6de09c2c7c72a6320e07169bb53912a98a4203a0f45c2a0d0289f83915d7255958a6b0e53275db4e4caa3545a5c1f12055894318b1275c32684ead54629a54fe16e35319d48d95f0bbced22fd4fc5fef153da1a6ca23f3d81245454ce38a72e3521859d2d8de7add4d940a9f9b8523f0152a492666a6ae6826f104b1d71b549477335ec461f978f867f4aef66d643a1829570b60da7126e6b1aa6e52f797915c806d5ca5054657fc1d34813987b125aa4f01731b57a453eb74d385ee2df76295b836868b99fae16dd93b37c5d5c658238e7203df1d8b802cf41b1176e22a22504502bada3c053f586e015d8eac7e38e98b862fb3a0251f0cea51944694f8bffbe4cfc287c810074c0c80880cbdf61d12d8fd5ecd3efcbd4c4de6429e1a1d3ecd1532bca88085fede17900682f39978d80862f54532d6007a4279a9ae67c35e8a96cc53602b5b1cfb3df095823e5a78cf3e36ce5c7a6eb0a0c92bdd9423fdab03ecd2f411dda5c6a222454a58ec925ee479ff97d7601e19dd5bee0d9befb9b573ec654dca2798d919fb3b64fe4bc452c5120915ca804240e3aeb65084a00ec5095cb15ebd85da17e4878b487203bcaaab2172ecba476b10e55dd19d982e68a79d91f636ebdadc6f8cb4e1218d78a745e43606a1ce12948144d57620c6afc557933f2c4b3ddc5a693f1df175c7a46788480b2ae1bb382c411c69b836b601782bc148e18adf77886938ddccef5daf807d6c548308878b48895ce6b19ca2449ca92d5f7d404693c14d0a8e8b8fc82d31f3e5cac4df9453e584630c8c36a3c1852fe3021c076306f34ac2c9ec66abc64d2396e4c6910123839705b59040df35485f157eec84ac7546a2c13a6acd98a97343d91373294b1ff6d70df3140cd2d36323d312815753acc1b2884e654abb4e71312d076ebd992e627d1b1a8d6c2213e564fba734b06c42030292e2749500d735af0b6e338ba4ad4ad9aa0e597039608333618ae272021b1e34c42c50a43fea7377167adc647f235432bb1da3543269b330cbd1694585989c28521b0eb0a4b58538995d089b6c8669538e2b801fd7359b1d0c9d80a7585b558bc7a85251e9769e644e4ba76ea5c988f1c865ddf8d45a31396fc5353709b32548b01bb62f377c6db851be7d33b7331ca26583a15c4c50222536dccb40cf12a65327ccd2cfe08ace1778ae217bb81e2bc6c4f8e774bc6d5dc89ec250c5c78518fb187629c1f054c94dfe23c4820da60be05bc06ef40882c9d81410d8eefafe267ed1e451d173a40b02c562de8ae048903a0b91860823097e7df31c2279901756cae868d14ddf817f9e995e899fd470f138a29f5b3636b382228b19a9b39d094cf1e7cd651a456c2931114ba6acb4043de2c5c98e4a12efdd22145ec60b14b012f81de2e1f310687a41d4c1afc077c22515a58a4cbbea4ce888b7e875f83b62a13a83953b7a34378e4756c31ad859773c9409db538555288054a073f7edb22acff3859737ea4ffd448809515320591629750045c799021302473aa15658ad768d906f898962a9d1b354b4fefd3d351efabb4630f3a80f015ebbdbadc3ce0a2c956463d1a73d64ce7d99fdadb1cc1bf6c993fe3df1b7b18b9acf8c656d5f0f13ecdd3f2370c2adeb8360a387295884397405499a4b15ad07906810a3c0dc2e26976459c65dd286b823763c302a9c93079cc4b46a134e529bb7c9c94f53c4995435c8d5fa895d35797c708e6707e9ce1c822dcadcf947bc78c11b1fcc88d29a32903ee10fc6023a0129f7bcc07679c4cebad473b295dec4207cd1d849255d8976ea6d28d280453db4bb19d51478a2adae2fd976a1ab6a9fa2d45b4414f014a8523e2363d795f47e6975b6bae6dedd51cfc0a30f3e5c4a0a5d36efe06c5c44aa31e44533c47190ec44fdd080cb3f646223bac6df8418b0bda0079d8f707a0701a1703b58169e43bfc15a2efd36566e267a0cebf39323962342ed1960d827a337a533410c6253b35d79b4ca171002e1d2ac95752a4926cc2dc4687321746943251859450b30603b180ea8075e961a05549b08c2814ae46d5579ada32d346bfc16f928f40b7a1f88f5b518a48090bb255726dafb500e9869c1a5d6379047a30b1a2b4215188c7ade86ad7b4bd2beb2979414ef060bac4b6553a2b26f57e6b036e359f5b03ab9b0dd3581fcc4919ac0e88586a4b81d75fbb252345a6decac1eb68d569516d697569819d9ad775f5ea4dd79f0cbe753133816962e018ffb679d1f436ac7aba9bbd4c4773221642dd1570743ee0405b3c069c948817b17c88e7ffd07cdc30ab88273d1e299ee22eecd90c5f9f4773b253cb1c9d419ab80c435fe137918b9ae4669549a055ec53e6b707600cf44fe8d8cd93c3922b90d9760fb44b3555862a997e42f3a3129547a9227b538f750c58987faa67f2f29b481f83cd7db95b5437363cdd17eef910297c7449a211a4c4f8cf79f5b6c054213c2cd0e38d3504b24068780ce509aa63fa484bdf769a351c524660b48e65655003dfcc8b16a41a3b1893a1b4c2f5f6a12f56db7f8463793e1939829fd6318faa87f1fb02bb7d8eebdaa5f7c90a2e870b9f9d67e0e2b9832e7816f61012bb58502f2dca1c1b7e1e42d2755368a6f8eebbc318ad7a3fd02ca41b5473c4e7d273288778c3bd7a169af6412dbec881bfba1f2a973933891b42cf6e53cf7484aa5ea8eb29e90c1e5a3faa76c5727dd7c12e4c134ec16a8fbc565ab8c70608d563433a35ba4294012522fd42dd4f7368174772a1c4c95977a849753d723a331b518b77b57736020aacea280cb536e1aa4c7dc5eb821c4fe18efa84beeaa26c644207b3cf89697a863bc3321825464d4a21061c64e9825ba55b1024f496c9aba47878f40bcc3237bfc5d1174d6920395f71ff74ae41ca3e631552f9d1a08097b4f35cb726b04fcea45339af7d63f015476c1d17cd4329694a6141afe5155439e3d183b2f1e41fd4912db509c41358ab2f21cdf305fde126da1b91a7b7e489b72a716eff9303fedba66db15cdaa88f333230d3fc331910b7f31d43dd4e84264d4acbcaa510f57e40456837b8ca7b989585b335eaa97a8962c23b6e7a82874390d02797c8255e1cf52bc3383ac4c734e9c4a461653a31e4b33b44d0f53f015495880b87164b21cfbc51c2b408f719ab16408d93a281c2766d4654ecf586358a769a68159dc6b5ac4adb0c6ed9edb022057dae062ad7087d62cb664dba1ae34a6c4416152e5138dd4fe46f01cac63ff13971e8a3ac15ffaf34476643a3084b1b7fdac8020c174d89168ef1ba9551ec527d28d2181b84398eed1eddadeb1921498be1927a7768a24c4312a5f15c1bad3431cd244b40db4899e124b310823d6a785c4651d66446295bfad80149b168010bd2275fcd7437deef639d97857af4f96ebd0a94b627d0af18a22e9d3cd799cd1d48a49080402cc2a8890cad06eec70fb0a1a9edad8952e4631f2bdd2d72d9ed86efe0e6ae5aa9160c038fd4006f6b435d862512865b93239ce51a32d67cf1cab0d6a50bef498f269910628d17966c9cd7bd2adac61ccb0e26a547380c7a9188b8a21683c5a21ab7b4bc17ed5810185ce10b6432d1d00034f0d0250c07661917415aec1dad6b316c18f9df4370bbdaa92c92a18fe96a3a0d59d3183e5172c1b0b3b32e1566f5c8a49bf1eb459163f3e9a8ed2cc872f4f17b46e0d8dbf15c8734b053be568268168b9e531e0448d0cddc9862aa52d358ffc33fca686e203b758702b15d09c90ce6c8a8aeab49840fbfdab2f32e44c2b566b49a3317762a4bc2d36899cb22ae49f0a93c97bfc0782e2e0f2a3eb735601864ab1e0120c0f11614acdaf429328eb1841994fa321055b7a91945c3d250b6c60e2fb07e501bb6819022ad8c316528461679b39f5a01b0ca1860d780afd4c50bf266a053de9c51081725c651d53627b76ac0f2361b2c71a661f8a64df4aa1003ec4c1ae57e94ab0176ca6f9739ae365080fad2abc05f55fb7cb19d175f2742f137e2b34723868aaedeca78308317ec6fb4c0fe128671505c6bc9108d358b26024bd5cb2fa70e876a0bcffc032f34213a9d305cbd90ff6de7674bd0243fd8aa01b3e5a3dc5813eb3c636d030ea496ce8a54a0564636a1b23a1d21590283affc3e19e373ac89a744b8fd89efe8e7eb3a2ade1943695c736ad051553c9174bee3446411639cba6821e6be610f912cdc9a64632dd64d75a5aa5ed0b1b5ef5d67ae9c1a1e3b906d4ab39e98bc0cc5079f0917106bcca1cae590bb27a3c662913241f6686bc0bd522efe8b5587986751b2758982bf6a1edaab3a407199a9e1bf47747760c1d1f00374c414b10901c2b2810044aa7ec727088b55460ae712d5678335d0b4ea394756469a54f2be1229223898f152a1a48b48a06260556fd9a4868d119467bad59dde4f39a6c320048466ac508abe041cc88223ac69b84a6e6d605f6aab63c9ce370009b38da17f06ea21d50e7f0df0e95cf3c38716ce7d99604879e644504e2c429f66232403c0a28773042d1484a6c4a275d53a2fbad07eaae73d3a2a132886ec1fe2795a34921fe8e32bbe9ff5e978db9826f1061fb8511e627432309e46d22e39ec81646c5362a46fcf3cf279dc1c61c26871f348aaa4e3ee31c8f0bf91da72b6495bedc75de80695ccf4d68fc4a181f114ee04a4bf2b29ff302be2ee08f0a0d16965f01bdf69a76b3650197854dfb9f13acfe1b6cd063db760be2d79acf45bfdbbdb3782b5ccc87a8f9f1e65af74046a3d26a141f11880b26310857fa4b058a2fc19f8f60a6ead891bcf9c7f27882a6b3160876f3f632c1bfabed0d12a3ddca288cb17eca4e691a4b1a47476f7a60484f5e4fc784b22eab91582b3fc41e309d094a5ddad1883eeeb21d2f64fdcdf87d1220e838f9f072fa3e965619b9e616b337ab24ec1b80524aca68818196ffff9de08f066da98328a04c8d153230e862f80e01ab1c5e695c0873c35247ceb295daa837588d8012faa3940d178f632a83d7c0c70281ef55a07169bc8b1de673f131c8844d85d02b9cdcecb7734ed828026cf79667a6942ca586c5ed2e618701abc44def1c404d0ac64931cd1c3b90fc85e89fcfae409d67f5dc8a717cb7ebdde9d70e0f7d7d2c032ec01408127cf9efa6f6e79f9add81d99d7714c1e9ca6a424dbec6e376912538a69db5588530c1cf2ef6415c90d3d6b4dc5ea9c0889cdab4b1c3416a1b090aff5bbb361f13c0fdf317cbf8824b7e7e4b5039a8d8feb542468a877b08e07c4c92803a0efc3d9e15bb03ac463a417c4e3ed961851c4fd7c814fd16b9dc18e103ff7c3a04912ff49dc40aaa3164922b13ad41842aa86ee6a8e594619ac01b530fadd86433b3ec682f7b6976ab1d9eb5b944f88c44c51c27b384f3d49c7a7606dd578edb5b43242041e68b92d953c50c449d69dc37509ca9e0a3b71b832806ea197ed7a2ba98c631a86c871daa83dc7eabfe409e5dee4997a6bca6c9b1d047050a640b3e2124e335bee1e81d3c9544a393a99d6c24300375202bc4f669cb86bdc599a85423b2a39f314ece80b91b3d808282572017cfe21247637c0364a5e00f7f24fe4b7e12255c7ef214de15eb1e5696872a48aa292dbddd45193a4c2c3ed97544754c6965cec0154daea068ec960d7dbc7a918bf80e3e740f27f867b3c172b47f8bff040f7e00cb42383ee4a475c26b9b2ea588dd32accc8578166c8344e29755c55dc15ac5075c760d61edafb301617f63fedd983009b3aa1866a0831fbed4a71644411457115a15a6c0b4fb48f5970272f839015e416e84e2723f70a20c5299db5910e9f9e64d392999ef594958c374fb7be0ee7df33a951a7bcf7514c6b94b7f6464961cd2111ac85874fb218426cf42fcc48a3d3116fde25a549a806bf8b098873270942732c6c6e231f101565c387b27534349464c08374cd46f557e9086d350f38b9d7c7a7246303cb4231d2cd93508a20d1d74dac5908f1acf9e4ff5553f2d402e02a8242ee6c824757f9e77b98c9622f2366b5b55f35d3bbbc1b6cf6cc85ae2e5ce02a48443d8783d55b4bf87d1f88883da86ed93eb24437303a061c9c7d101e7159e6b5db6b27aeb5190043cf9c930aee5fe67f1082797092860d556a2b1e6a986632d1b29909e5fba4b024969400705c9d2366e2811bfc7467fb2c0e6dd23cf38d1070273367e38a5818c426238ac99f080305606e0e657d48b9e5ced372511bef40d3425ab2c0c52c40287db5f4e8c122ecc715fc9fe0f463551fd4bf228b7565f311a91dccd8c9ec6850ff94511ab7b054dd38390a2659db84ff8f0403de7693255d47f755b1e9b56cd8f906f5767ee3feffdf542e32799971260abb68b7f489caeb3e447a622ab24951cf29ad4a0d064e73264bc3554b018d0c761e9800a35800cbe2c203e41e74b1a424c6de7c83c4e5f08286561825ac3e78c0cac46f773d1d2200b12325cb2fe81c3f453072d059650cf5d6d89dab1764e9d6f26d353196c772632322ca2a1f1a6f231a8d756180911e4801c351f1e6d2dbac5a5f439ec71100912e394d1936eeed235c7e54a5da9bb9ff188be2fac808cb7e4cddb6a5588556bbac5b4acba206dadb2e6538178e266f96a29ca39fdfec3fcba1e07fbe0a69941082a6843a982e764208e81cae2e9385aeb22f2a814e3b01215c37be652b11cd8a3f4d0876dba2901066ac1f5ed061a040f5d567178336d6245a949e3d940babfe118161fd05a83f9099f7f62d9270c74d70362403f46b6c4f67848a8f42cc9453070af93956418fb4e660748956c7204681ac9d4825688704c05e23f47152ab310ccd0e69480b7059dd5d28151621c1d299d9ac26e744e1ee8206f3c2bdf959b8d2460829f0fdb27704b24c48d24064278204164a31ff6007c1dbaf036805724c592a6d39f831a0805b3b3753f0c3dc5c19670a70d28542cd9c834230f9a8618d68d30cb41eeda775f38e06c2fadde0b088d8a5e1ffaace03c770de2f82456ef4df7664131cd94abb41189a12cfd21878ea96cca16b53e54d141fea2d6b8f30a7da75b0ec38fef76abcf950907343e8dfddcf76d9b91190bea058111134d63f1d55a9df257da8e5cf420226d2432444f8e4750fa65215ce26651b908a5fd9f13cc406fa07b1676cae80324877a6b9a863c7f71b50094362b10cbbfd1034e8964ef999822da0e2ec7795dc86c8e7390d1f6a7fbe218412982a34f400093914d2b5d45436f8b2e0a14d678477dc21446c1c6d214f1ba953e90638b0dcbb0b3b436dee08ca8958983a2b47f3d4789ac93456c65ce92bb7fe44aa033a861dc8ab6debce9b1d90a51164ca92c27f93a7539c46514b860d7327b36c32eb319fa7f72c3691ffe342b0c41061682298103c3154186a0d9471f03ebd0454b330b03a181bd78ee9d250919916c162b3a46e447a62a5c6e29c84343904faedb5b1860cc21d12fce7b6ffce83ceb7111368e6b36f1569a8b72c97daf8aacde7424319b3a4450e452799a99f3f838c6554252e54840f0e48f043b82454b71b6dfed8c6a535c0d117cd07d2f29d3acd377da3a9771c717148460d057508a0c2debb027b5cbea7431b2356100065921f0e898f81d324bd6f5684a8e1bc97daea2ad97e1e87280f035141ee13cb05264a057fa13e0927c3aba7862b3efa26ac2ee16c58651175532af1c9d4ad71de3e4a8647cc1740fdf8c830e1c786b45e2243ef61ed7cd4a06c07239667038c35e1128198e0cf45a1875f16e9a4530186e2245ae88e7372d140b644e33c86028287f557f69aa6693530674e9bee6097cb1fc3d7ed55c2f4a75a252e142e1e6e5c7e3b504012272ef52aa8ca84a7c07a25ca06949dac7b8d59de8baf0ae484b1c29e49a111942ab79466b166ae61469f02f95f871da50b16c3cc94130f591db2d6e91f5378a43635c3a4900b2c47e391cfa5753153f28eb56550a954a4c444b1ac07b00f3fd822c36ed37c3146d3f2821ea2639448148627df17a5b40fc33d38da40f7a911a8052091ffd651eea61f78c945f8820e3ad20fe8ce85e1d9691e9149c5eda578e845780a0c9ae20da20edde46cc82c16a770f99fa67da604c39fe6ba349ed2ab28543a0dfa67542dd28ab4107fa6143b84e918129b23514e9d5173b048ac02dd41dbdd4991aec6e5788fd26469baf2fc66547eb4e593c533956d117ea2025e4d20c3b788acb8a2a84e67b589832631f01ea8b6843c9002a2f76ae9c09e9a73c64c588a41b491eefe8846e6a149f3354901eb6cd09492c6164ac2304e7c7336d3cb7fae4853fb10cefbce6e65939d43cda734472b16938929cdb25e6d0992d2fc1b14550d92d12cdb00c2507fa68060acd9566c0e01f763d2caa1894444b3d5c2d206d83dfaec73faefabf776787c76a5238ea1f0fb3e5a545cf5f731a62df7b75321a4060eaa4e07281680bffd989df7030074ed2b3e688db9ce379653f0682f3961e3e619031cfd352d20ecf9eef6a07d37b96fa3c9dd70a364d577d38f7f4d84d7b89780af67d8fadd4659807adcc31b02580e48b3757e18e90ad79f9749784bbf6b63f1f08bfb63ccc7008c6df3540fa4173a3c5187482eb4b5dcfcdb8866400c10a55cd87a31be0d386e7522cbc3a055f6fd0ea1b7fb31adc08b41429688926730b3614c787e9664fcb610a062a91e3403a4f6d3403b7982713baf7aa8e3dfc45237008c9d10f968922ff83f2118e5f9d4053d1e0d7b49542483dc05328067709018c9fdc767246dd2aa27c07913f624b70b7842da5c4ddf90a3a84e6a68bd36a170d97b3b3bcbbec1de598e7587919ae7bc0a385f786c22cd09c7a861a59348483649188212a1595e1cfbca46f16cb2bd289c34390118b58f2c12a136d821a4cabc34631e0658878e79a5209335647e9679bd275cb5ec4327ff220517c5c4bfbccdc2b3074bec1ce3f8835fdab36b5dceb3075ea03918355b8124b5550e2772a9d0a2dc486a1f9e9d08499293bcac8b2c0b6dd60bdbeef847be0ce0a6dc0bff19f8510afea8e936b547c73ff16aecb738d242c9702be421f67a9db26fd0e609efab0f9acccc1d279cab44374595d092b6105b328814274ec90a1534e5f5297d067bee3a4f5655a586355015d78044cf54dfed9c0030f002048b1001d17986e397300d875f22a172f9a64b1d11b2b17a9436f2f4f2de96020b46784e828164f03eb22e9e7e383459fd6c7d76117709ca9aaf057a1c0ef70816176ba7592389d61a0a55234790767750491ec776c9dc107bb0b8be59466450166af3a2e382adf5f614b16f1db6943fc7a98d7ea6b21403992b3333f536f2ae3557c4a25dc4efa7894261ef317f57464ac41bcd971a1ce20b8b28e3cb39b334342f1054a86a88529752e24a2503cd4c0a20362c046095a45299c7fe5eed33670c2a03e1a18d3c304d041be530ec8fc40e382eaff198ec1696bad03f05f879e89ef0c3b2de7c6417d9d0e781856c91d267db1c0eff4fa1cdba82f3a91a3b82a1022fbdf94718b526778ceb63204a72ef4fdc690635f0996cfebed53490bf93e922837ac03d8b1162babe342dce6441fdf8e37cc2a34058fc10d7473fb307cee7527e20a0a24ec0b35e1770b0aa9d90d5ce9729322108e706198d126bc42ec102f138bfc7b2b243ce7585f080244e45cabf6c2840350696b8677c3cbed9194f9e5f79f284c32471baac684eed8763334a924ef4c610683c0f14a7bb2442e5cd8f1cf9c8da6b506a907006d3373c81f3a4cddd15e28bbab3c6fcbca7f0de31cfc1a355a7050954700408aa6c8bf12fa59e183bbb1ed29267e44ae04a5fdc6a12e90bc7c0a7a7efe31221a4c648159cfeca8498789fb967858fd61ce3de379722b39288d9d65eab55d743c70b1538218f043ee622fa168b2e11ddb268911dc101fea10706dbaf46ad079ae3938a94ac829f8b8a331053b76bda9ad632f623ed59352aa685df6f48dfce8e5304793cf32cf0063899afc9135951701596ae6a5ff5e1dfe7209bceea42c60b84271c80796b57525c43340eb70bd98af0175c10f9fa4a753d4533cbb5c71efdb23dd288a4d9f7fc5ca3bb6b1a2c6e9019aa178b2e98fc7647e835d4f4462a1246d254a20d07aceee2c84eb35129419644a911094c11c4141b73bae02b1502bc024a9033318bf880de84a92538b29a34e42d8d49949a7dbb1916711e1a9ec911eb8c9a05840e67ae93185a4243a739a68c4066bc786ffef3d84e309fce0081f930b10498c71876e1c2cc21164f444af0cb82323e063528fa68903d1d6c8c29c1acd1f7781dcf02a6b793ef58bc692539a8135ac5fc2b3e8b5af8e9a197e49085986c6a27e158e5d74687d16aa3893797bfdc4626d17245106650aee7e98d7c877ba490c5b080714190bc8556add2cc8dcdc5cdfc00f7e84545798942cd27f96c4d867b1e54ce9e83b0773088c0ed128277061539cfef88fe163f0dd0a1bacd0e87fdf8b9cfc1e3c010b05cc0b47543f5b9f2f41928b8b12758bfa081fdc70bd97b2fae0fc5e96178dcf7adf0794e5d484954667c6fbe28b07e8af6ad1c2da6efde3138fe56c02b7897efe50c161f5ef9960dd3a42542e93d80c64779c21c376f6283d818d3506cb6658c5973fdebda7f400e7545636200d0d7a3472ac16684faae944132e49914f0647c609259f12b718b5fb52801e32925e0a261b2496b55ae7b4b6f3073df4aca80c59131dcca9169404a7067ce03e122515202491493fb93a6df50acf56af6050e1cb93453f90c003c9ee9364e44acc3feca4d96eea14c774002c7d56d48c6358237f4b1834edef288084739d1eef0598be7ebf9845cea7b441c245c3605dd46ee807ce509cbbd71c1a21c747978a052a4ef2b5aa07931f98c5490c67d0f6b72d8d44b5406f35b5f5e2394d4885a617a30aa4260dec8ca7d8d4858ed8c6bc4f68b26a74340bdb92d855eb1746be4f1d6e534af46f5b5d19d97b10e03403287680717a2361a1dc4b3272cf28fe58ce6e8403d1ff6e214a804f11017532bee6cd5abb9cc01fe7d7ee4c4ba7396e9e1b15f3b73e553daa27be750b516ca8ae8eab9488b85fcbd74f73f50ec37a7db7e5b12325e185273066403af5f9d1668e39f57916e00aaff6b63d1dfb56b0993c84c8f6d2fd98726265ae18c0dd187414a407d89a12b15d1141d0286a1ec988bb4d8e82f53b8cbc3c2d91ab2fd29d8f41b7f55a1331b23c88a2d3c8538c30ace8bb1a24ea62a46ad57743ab2e80759df06a65cc648eb8011819c1249afbb5a929a5581cc4b6693e4fc3af123143b5071603ae02e3c0f4e680c04064f252eaac426ba0cdb5f9c48ac100192a8d6076a4f8da9b8166e0de516b5ba97054b83ea3e1d963062bbee2c60301953631eafd5c9450bfd081de231d78d0f2d83e2ba44c4e31ce2feb380cf824129ef64b2147e76b91fcc03dab3e206b153c917cb2031b47d51dc20739133ca9f46ce5058d0ccd49796cf966941771226e0e1aebcbec776ec303f1b16c31a4a47f22844696e2cc4a2ca3025a0f337d44a86363436f4cde3f715b97cb813f6316cf65c0b50487af5afa191573f0bfdfce1ccab3ae62b34d9cf543ab87503a9a27c3a569022aae674fdf0adfe47827a9d09f7b13239a3be7eac2657948c117e746621651adb391e9496b4a0e816110b4bf9a795aa3fa5ce3ebf3b1cf04fd53962e9755dd7fd8177e44c0d5a283846445bb72794e6331402554c50cf122fe9f318cb70c82d1572130fc95d9f8a58ed2c34d2040c20dcb49c017969f18d971e0aa5f252fa6944f970e3040150cc75054caf49226d9802f7518a44215b8395ee60e117a87a42d747395557fa67d350265e701b3fb81040f7416a2f2b7798bd6a1cac72e7e709a746aa61f2a1c86d5a8e411019eb84c81db2a24d5c04e1e3bedc74190ebb5802dff7cd63728bec0a1d6a0ba2d848bafdb925340bb89c871802a0ef6267c66289eb573284d6b192d53e3cddd68fe018218b8c9d486533590efcfcc9227aa82ca27056c812bd8b676a477066724869e7992f919c551ebb5911ec0f435a0cc420dc862202218ea0584047a811e81e3a5855d990d3aa4399d294afb318958bc7ecb79927f7d3bd5cf8b37e52c1fef0f110cadac7776a94c726ebb18d827c15b1b23d6145a1eb841f82adf25810c9e803d2625076193b25041915402bcb82ccd15986d1bfb24f741245c87c3b23f6476543ee644b4dff4971480ebbd9e5420833680841a9a1f7be45df5910837631c535081238ca7c176aced3a4f6a837fb3181f0ad695047e525540b756c2bba2acd5e4e0f1e0702f355c89010713c7ee314832b92959b46a28e0199d38ef18736a8b19a655d26610263ea0873498efd7a0b33227fbb503ec7b535f92641b92bbb4047171f79139cc20e36e81f764790ef4cc6c8805952bbe92dd53bef1f5fc9c0161b6a5021f9a2821e8e0db75ae4d9e562432dc415b6988613ec8aef4d1d3137516be7218c42e33e7caa5084bda17c63c10223acf205853314a014dc5b83d6006dee45a8474dc36e86d4d31e73c44089cb4a4c2cdf2251712e2a68f97f37995606efdd859a26426ded2715e07a81250d75be9babeff0a06996eaaa3e8d416f40e3b15e54f09b46c4106dc649147f8d32c9a94b54ca4fd9bee857151f7284affb7357e0fc23ff8c8b8822245732c563bfe054d2cbf20d91a5a974acf33df8a744630329523c155520e4ae534ce0beceda26d28ec5f4e1d5bdb22eb269144da928379b179e771d62ecf1c170d810fb953d376e1c512cc3917bb3d2d86906bff7137a72a92e9001a98922d9d8254a28b30d5d87bc8fcdffd4c6980e1a3b7cb25c9de43553450e201adc34a26b0fc9ba26af6ed90ca8033226b127f96b668ba1346e6b4a8360e6a49c6b2ecde252d62b3a3291cf73c6c0ac39bbea459d7e15de001722208136e0db9689a0114f0f5a69ea73aee15e170c1db567c3b553fabe49b2e4e01eca6c5352cc3b6185043d502ffca3bd3cf88029d2b548496ba33ae2b989129a8841861ab1ea56b41290479ab029f19edfde11b2a1e23bb69ca97540b88652f5ac340a432f484e627e04956bafbefafba36bdbbe02a15b974101967b2212b32278d65368f3f1d6a898b03dd1cb7df5dd0c0d9d03c231da7bb7f565a7356c0f74a7066511c619f285f644530101576d29060391c386716c594d8e2cf76c7c6556e5c9948904951c7990d4e4cb1840d63cf9c54f47537f9ecdc071c8bebeca6b010327dfc4c00f9edc0183d018f2b0804293dbee9bc7b849caecdb2a54e6133b9157a61b091d5eaf463c8168eb15128dfe014cebf62360e88e582d3cdefe08a9d23a62793d1e84d14b46ad05a98500da5fca1523b22e7a2f95ef48e4ef4c54159315fc9aac917a7b5507f6ea07be9b5ce318ce168ce4d105115400a2d7366a7c297b700309bfa75908802eaa6a91b5df79dd94261326ee888015bffd517622365c16d08c12e903dd0c24c7af01029a67bcddc445591431faf9bd21cf8c96eb4aa4903e41baba834d14e448a4a2a895af1f2b350726a6f749b9d22e5b62ff823e87c97091630c5fe009d483cf8be699fcc06ddb1651e15242025c2ec828991a5f07b557b031d11e6066d284dd9fc9abb71ff8050d938fa18c46cce4006145cd5d6cf1f0b18c1b4322acfd2384a9a17be6c13799634816b71030671b953c370f50ac466432d206d4cfe7104135fc61b38502e958be8cb134cc1f42f524073dd31f96ff3e2acadf27f3da8e75add614a9956a3fb53b6944e3398acd1f00ad1212a3626ecbd205c60f24efcc5d079883d21370d71d88a59d0ad4753db5abc91a868058b4ad99d0936286089a7245b62c9fc0b092e5f489e034b351ac9be0cbe7cfd020c278ace70ddee4b3c728a38a61e48f5fd00458eddde0805f2e0eba7b3c938ccbc8fba8d94e74b85915a387b20ab0630351d3b50a7493803857947dc209d52d1a358151458d0cbe514232674123d7d424e5fb62dbd9cad220effee829e738d7ff60386eef3438f569992ed8fb430fadd51a9ceaaa263e31261da4f5140d952ca70919c81d44f7d306349183bacbddb5a87d8c7b26be131a6dae9dbc194e9062356dd423a50581ff1e60440b572e8bd68cdff6ab2314b788ac689270111e286a1aa72c4124f372305eadf9b06fa582ff2938d9b73bdbe24f3909f8cdf5c0efa7d88233e12a943891eba4153623dbe17a3f10441792d60394217be019abe549c4ae601b7510946b647dc767f1293dd6a74c2ce82ac73224b0372127e269304c4fc4c418d72827d0feea7ee334964a0c5651fb6146e001e82f723eff2404dc058aefbdf20d2294f110bf1b32666169cedb258630ca6d00d9968269f8cea5dc471daca9c220c15afe28c7662123804e35bf8d657556c37ecabe5bc0fa41c173b2b337766228cbbd3776040e759b78c62c22d0e2f7b8155aeb22fadd5cf7839a21f6be9f528291e50468035c4504a45add13ad6c1053bd5fe44218f45c731f44fdcf2217450735d3517c2f5b87fc599f89109f9b41b6afcbad08b14324281743368a298872e8b24cc46a77d4e9035d81499625a6e07cffdaef9b6715ad2da61e5d947dfe085bbc586cdaf0d2d7d1df72f92491c01ff102b89d034891876c4eedf9c29114e1008d56cc029a41c12e46b0284bbcb86a4d09790afebd304e67c5a646c931918d4ae8cb32eee64e838b9d241b4de40b4d503ccff6396c1ac5facd7fa33afa050ecd7314c3686eac5bc4963f8a7fbb6f571c321646b0912e74d63fe463f3fb25e4d2c1dce1fe3fffc172649c1775bb798801b1f16dc37385545eea7a3061d7a1e4a39440bac93280dc1f689e7768aeedc344d07b9104bf2e7450a03695d62289651796a8167206d6986ddc9b15108248134e7bcf8035adb9901bb7ae54031c34c9395b533a2ba91283976817e081aedf4fe1019ead7255a2df40d56405fdd6d3648e2cbfd637a47a8bea45be70128ade4878b8e6a3d28cfc91bc1dab5261b169367135a6e68fda19a996df03193b7d0250407f1715c2b9a37510e59214bcd1a512daa09c88e9eae45b72509d02734dcc3bf4bafea0d7fde9dd709fa2a4bd9fd339fac4b0d38df6038616447bbcb2329c9812b0b696e7952e2b8e89e5f12936e960c89212db751640a6e4f47727509c9d381caa8f657170b29cc66e754da7fd155ff50bb2cd40e91feff12774563677e595dab299d0a00a1942725e5c97f193ea5d3a7c47500792d07c47228c1cfb87a3eb48c8ec160e72152c728e9861a6954edc3632dbe4e66507497d72818e61d503d7a2516faef2a2c78d93bc8d1ac31b358f869dd1ef0879cc53acf5406eaa928a6bc7bf8d26d4aed29465ee215f0ef382e77407449ef476392b6ae0278d2a8facb403710dbb4aeacc1e6883b2a8b057e6be7967a1a70d703d2d689f79abcbf9d9be5107ac0933fc0fada901497c36d9ec67342681c66e6b47131c87ee9bad046929a1556388b20d22653679163b767524d065487e841a5abf3764c8f2104dfd5e91d8365d9a3ec92b0611f1483e449f75a6c80e1ac998243f4b26f948babb51f66e16bc4b479e91bb4f80355572ec34de164eaea88dc7fe24fd76c4fa5c805e19852e3f7ca9cd56c8c758dde1b6ef61dc752690e2972b4075eb216f4a9120292b2955199120da0c06e8c28707a3b4319a63391441bf13ced69741a1549459394c2690e9cc3a028eec481829d74000ccac824db0450e8cc6dede0a120d885ee1d82d2f987261ce2939e97039e78236aff484532b4c2d0c207f7690e1833b2d45f89ae73622b32905396f65d54c28f46a7117fe4d6751ba160abcb456725f38efd48b90d07048702a7d828d08591e5d478c5fa27ff320d8589e86246c1700094296918f4b5141d0765d74a18e3e684d685cd5b0a7845e5cd51aa15d94e5d8189742c864852bf3a38d2847fe0e216ffd34e1ac904154ceeb00bd7d835a13ff41d09f9eee98921a912907106b0f9cf6de9f4fc4c073656888df57d84c73dba85440427c0a3404ee512d0de43eae6a007ada660556e48d049512a38b97336a427976fdf0b0de0a2cb8e12184e32a101d0fa1d74190c7a10eb5b9e99591bd3834e69b7400680e4d8a2a32777b2fa9a0da582b8b40a2e013b66c4ae6966d40336967f8931e3825324d243656eaa288f24576301fc969a76e1f48db3f75765d84a9e44f66c9ac0e035550c194babf01bc9a6481d0f9027900ff62b71f3992d3951f9ae08a03801149adaaa7e0a52426451c56b405cba2f07945d594ebbbc0de6943a795a0a2de0bff4ef248bc4c37dfe2fc2e1a3392d81f00e68b946e1c9106f2068cd91b2c28a48b8149285d2a119115eb2f2695e1f560445ecb76d54d121e865efc8349c98d18d2c13a85bf67149f3bc3faab09d635f643ef94e26508dd07c0ff3ce8fd7fe98d3bbea59deb9d0f78d48c26859d0241c55e9200ff09129de41084dc189dc03144a4e1a3991aa2e916d4951ba51c10c6a88839fdb912a403f1239f99a273aab5f3d9dc0eb4efe7eb9b3d0818ec024f1567d4ec00f7791063a9f38578a923997172c3b9d3377a1e6439b158fa70c0428995ec414655ce94640e5de670c948fb792472bb4261150870c7c9a09679da7ace7421407e0e7362502d3f87009568b5be5607173f262406b0e29246b06ce8795ed75048fb4e6dc99ae758c39480067c7e827c141edca0d362d392e8c0bf9785c39f205ebd7083727b82903d9bf9d381a9236ba6b3a3be45c31865e96a632d03d9d2ed506b7314504fd5f0ab68a886c5f60bed1b20a32024a94086fd84b216e6fbca0ca10852cd06810263dbd2ae9cfb773c50e043f6e9f00f0be41b4c2e9e0da2cb6195e01ca82a4cb1fe4224d636f6f86bbbceddb8f9b2ad659f7526eef43de8110df6d0001d19ac06d5be6d7e671be68e5cc64e27a49900eb15889d9649eb9ec34b21bdf4f80c7e7b7ce0115e24ddcf45c8ccc8a64487e980e42fe223863f1313dd85cc72196c01420e429c4dba96931e83b4fa7d26ed064e29c7e949b6f37dc957dd235b3b2771533f44e10c5b642ea02aa84e5353ad64c0275638f2f78d0967085bee9bcbae0e6e978c400551be14515f43f49719d190396265ae8523ed51de19a9102ff7a95c4ec4e9f9b5ee5a9c48db32d1a7ebe66f7b175cca8760fd5a13d12b0e74a8a72aa0c088968e3747577a67b84df69fc683ceebe79f29022f5c5f7883dd42a2b2561224d1ca0103f56237d116bd0705ff632c2afe37385aa93e2ebf8162a0581f99a91549ad68fd67a9a37477aa112c3c8e0306d33ffb34687ace6b6ee04e578e0d293dc3e67a035eb0e63a7b62c0f2592b9da69f01aded7f0c54f3301211c881a1fbaaad92a62faf63f8aba90b66deb9e0da91414453395d673578433e279cda14d76efc02f47cec75cf7208438fe04882232a4a81941aacfa35b48d350bb119bfcb3184deb2ab82fb4d64e5cbf130800e9a2ec0abeb1cdd440f1f393def61ed4db58a72f3f4720fa2a620794f068343ca6eb060ab92312773eded30e314fd208ec3eda32874459163f90b5850de1c86fd5f764e366ee80fba4d6e0b68a7a3072822379d32919b9e735f9180f9049a8135b8e9489534506fa9b966516163b0939aa1e217cdedb461ae29ba863d319636888e0b4c83831c583dd5f13e868e55400357bfcc71c3f5c1a7c879cd4a9b6d8ff333e8c235818dcb95db50a0e76deec5cabbee2f4ecb2687217b8112cb7b4f7df38fbf5cb927e45bb3c37c6861c4360aaba22e31176b8d931e6bb2b8c7355bc693973f35bf107ac706933e06beaa2219fbf8ff958870bcab9f37f19929833c41f0708295edb02bae8bc8fe2ed2ee78ca0a55a3d7e4a4fc089eff79ab4904ffa5b49b90c40d3d69eac6874073b86df33d31860d1754a852318219d0ebefe0b642ea372906aeccbc25ce6f87ba8a84003d67590521fc516e1614e3fd4dd93a58becd8bdd798ec686860128f231c6eb9f6314d63b5cc600f4f5ca40a0bc2174f245a29c3db771d7e56fb3677d2c0b47f20b06bd27cc61e74b43900e4b5579f7a0df2c377d811f595c601caee299ac08ccf7440775058c84d90c84ed94dbecfaa182d011b0bc4d7c1cdeac1c05035c0e4f709d36905a08fc5edb18d24461e2612268209ef1a5e79dc5af527510344bd3515e037dc24100f811981e4cb4d80556edce3265666537743d13587ecd4446ba685684362f8e4883aaf9a38b8f5c9b8258a93e0bbbcee3cedd5605c4bf0b3f9a50eeee2d124b1f314293cedc0f042a1f1fa658204a629c0ec63626d7de4ec4a27b648c14b7f7d659c64ebe0350e868783bbea9bcaeefd255ffa514b430077af8382f016859160200c141782e700fafafa1ceca8a6355ca6c499607b4563f448484b4bdf7de72cb2d659232d00a1f0a4a0ad3d69f38fc65b6a51049eb6a7dfc3afc41dd03c4851ecdf36ef88dd664370928cc3a59deed8a6c0fb047f81ffefa0c00df9f74320275fec81e585beb9d11a1f7166cfc3dfc633fe9c37e7ed8f2342d01f5ed1bd5b7fac8c9fb23fb556b23d9517d9946c2bdeed35eaf7984948c7b1f010bb82df6bd5230c19082c2cdfd79efbdff6a792dee7f6dcfbef73dcff3c61c315cb81fd65184dfe3f7fdb8e708d671fcbe2faa627ef1c330b4afd7eb6d74ff7aa44c1e6def5fe4745bcbf573f4320abe5d9abea11788df127f244b13b6f8455524bf0f4950cf8f9600ffd81bf9c734d646f461ae8d75c98453d3ecd3ed4f5f3fe47ffa36fa99fe8cfe246993b0e2d9e71bb5fb6bf5ee41a012ec8e9c60dbe8344d86b447a84f42fd1cf51750efd370e01dde63ed911b74c914ecf93ff65423c5d3a6f53b5023c5d2ae6aa2a0daf58d6a29564a29a5e1364ac136aa9fc387aeded1bd07366a082971d198f96d7996b7dbcf3ee422dcf65b7c4d0a844afba07ef715860fd926d8b3c5b6d5efde46fd4ed3c4d70ff977992da0a605257cd029d284078d1a2248b491628b12ce7eb63fa31a83afa62500fcfa3abe77ddc3fffbaa7b3819f97fdfa33e88c9f9691722dca04b8eb9ad471bf890eb3b3971989c38fb3c6cf7962a795f2c304364bf233d57b3495dae14f7ecfe6c1ed6959258b150b6b350168b178cad92f512e53687b2505ebbdb41592f6eb57df2b7503e5426ca874a2f93663b55aa370b65a194aa928552b2505b8d5ddade6c832e99e63e7a40770ae207199f841a44bf8fedf975b44e9dda1a9f1537e8925db40474df7a06e4777d98495a8e8ea6e33bfdd2136b9aed5e477e7da7695607ecf3c334ad669d6730f25f33034cc9de679288a8888ccb5183bcbf81f366639c2cf500c492246ac0794fa3ea6dfe20e70f144b4953688ce0bca74dde532b39aebe2f7e90ee47a130d97ee82247a841deb7c859bddfc0871c83911317a34d3386f73cec76cfc3729bf7319252d520ef2951965ceb7876b6f7b4c9fb4ad617e9999cd5fb89739113e7552b7e9b60c9fbfae4856e6f2661876a7b5f677b5f5636f549c92e2bd4f6c62480386d20b95d5623b6e77915ac49fcc8da5ee74293dbbc2f72ebfdd09e5c3f857a6b699afd9609b6fbf17bdc175bba47f7e34f9cf79489df68d3d3259af33e14e2926d133864a584e122730db22249863044894d8764bbd4b98826ac41bfec39ce29f69c3136d8a04bce348ce79b1b5498c2e494470a26b03979ec4c91a5250d1f4b660a8c191355b5248a88275b14759488e24a1326e0e0fcdf06418b145ea8de3c786293e7089125275f70234c5107c8106faeac2004e7ffb63de1accd39c37fde2fc74b80b967eba7bf7d24dcfd1cf546f3307cab8fea87e11fd90735cd91704e6232d7a09b7de4c73b4c183854d214a185480cb83b7322468d551828a92bb8fb26dc4fe1ca98d1a7be0c67a25815e39c49a8371aa63ff187ad0da4c0f10d10954d9831eef3b017df2b45d2a61a7429c5b2c04cf6fede37e1be471f6c6ae22a344054e661779937e892475a8e6d04e240c822214752f7f7ddfa771ed024a22cb9a45fe8170bcce4fa7ab83c3112c5133ce4c1c2e5dc4637e89257d04033067d1c428c73aeff3586925cce8aeacc874af15bd05af330f4cae436f72ea5f94f4c71fd5999c6f82ce2cc0a4f579c9260b8c10ec8a7872550e059b2841c3e2d4c7d018580024a280525028591a529f703ab42483e725200616507244c55b2f6e8c1df532e06295552a858db42cbf2780eb6026bb02899e1c1054074c230a9f3831299203420c15244a1840c032c382c11c983260811483c51e19121c897166075ac114247acac68d8d22749135efccc9004889d267a947807a1d8b3a72a85aa2a419ae800258508296cf851270b1a207bdee02c9ed88ff813534a3ee55651e83142081f2621dce851e1a406889b226b9e28e5163115dcab660e53beccc932850c1f30cf9e1bd8ec7143d5e74d1daad8141f82fadc136509184413334b554f5882047a13a78d969c11525c98b233dfc127b0f6b0f075e0c48a1f354010f1020709ca902579ecf8b9cae2ed14660cd792c29ce16d22a15ac1388d1f88080265ea862c534c42c021d2c39a166cb8e11dc403ded993940406337bd23471060c0c49382bc40a4728a139b38416a74850ee4cadb912e787952eefa09d8f8b9e3c48494d8444d183173e7fc8e0ecdb34d0214f5d0a39f882136152c4cc152a2d5b909ad8fc017425cc9d3b64dec13aa0137ad8502083932a2728657668c182187608028720e25c49c22847ec492e673982b86749594ab1113d6576294304428c0dd9db538d9e203c3e7a7c40420231150aaac74996460f131620b4a09427900a105c587a09c478599ed2912ac3ce7c304c8945b2e01095730ca252114ca0b24c91408c0de1acf829c8ee79e65f8adbd2a16b6b14ead57ad5e23c85f6dbd99eb9b3f8a362fdc0693b27a8bbbbd75aeb9cb3abb5d659c56ef3cfb5d69fd520f7ef87b5d9be3a6b6dadb5da5abbb7b5d6da55bda3ab734efb74ce89c5f989e09c73ce39bbfad9fad9aa82d66e564b72db0faf68ad63ba2be9f9eeecd76aebcf6ad0b45d575d31cc3967b5b4ebacb5d676b556c75d47bb6badb5b98ad65a6b3d366cd8b0e97ae8d8b061c3860d9bce7671ba1e2c1b365ce2b0f1a0b8fa3c264b4b4f98983ef0d2a49c1238c32999116560502f5e4cc03aca0a453b8111ae4a20618e2236725bb5026df8267ad76d9c1ad0f9a2480a8536db17c66914d580f2302ff04fe37db934aadb56532f1d1421e0466bbae8acdec49f535ebce41a34ab826bef7d7db27b1e2716676c521e3a2bb2f212a67982d89dcd423c2167d73ae36c77dad1ea04a5d4b318a5d17658962c5931770f8e353a2af5c40cdbff13c5394e5660d15a5196317d2257c1f6f77256bc54b96284902924b85268c8137fa4eab4d08413cefe74ba74a3d2f726f42c61adb5b12139cf197683411c6bcd8beddf0dd189b2e473b95c92532c5a2b0e55a20d032b063c5288e2959e256bad38f478d034b5ccd02b0378c9be4b3beda642543b6593c656a606025031bd158fa9c96d4f1e8337997a453edca4e9132626da4480274b94890f7884ee73d49b7f1656a64212aa7077773ae79c73ce27a18a3d14e42a5893e94b60fbbb22b05ddba719c38bd0d41e204e58f180e687332013f63b286185284ca089a36586333098e4ee71bdd56c6dfbb4f8367b40d222a5c44706224e3b4c8187059c001f5bf6609142c303105d2460c60535333491048813980e1e155c0ae022040b4f4ba6a06862d6d594e49b245f4f9712283d40b5ed17554b96566acfee541a674cd41162e298a112840c73eef42932df2491448a1ca620320c0182cc1d1e860cd93b75e7ca926eea027902c84a892657479ee69f26a828b1478629809c80729ab8c14d9898529ef7b5714283182759464c431fab2c384c89c3e487144bdc79c125441464c8d0a94222d09d227239a59684e0c40e7366f0e1e5479c3b47c61008992847a8b07067c9866e882894c88007cc0f5f6a80732777a48235805ec0c1cf1b275366d06ecace972037037d8c24653901458c17f08d9d1884a0c084840e4bec80c5852614ccd36a65f841ed200882b3893395d925d9ed918c73117f742509282e3f9678a061baa9f3c79bc2b2b4d4420f39e492f07628219ac4030b48a8c1f3c4867ab56d9d3ddb56a7315ec0e049c2029527a779fa500d695355e46a2a61a71d32606cf873868e99ab09d393cb5a4d4b2e6bdd7c25e8993a679480892a022a07266454e0d2a60e0fa38d3b7fb880010203930c5eea1f364058c802840f38594258d5a181ca92b009b226cb172f4f70fe650d6b3b600169302013c1e220b53fbd6314f5079fa6d59fe4dcb47ee404dc86ff0a3f48c2f6b80d86e5360cc3b2bb3e8d04b7e19fbb8417b97a43f251060a2c4cf4f064091970f85f28d5db44a24a0c4b4031b3440d1e1cfe1a16fe5a1607b95cf79c65eefef4a70330471cddfe3e5dc3daf88b1ccb876a58efb85dc5aa8421ae37fbefda55b7b35debed76b3bf9d6d579f54b4b54e77d716cff3ac673b5ba94de869fdd9d9dad9ba67adb776def5b007be2dcfc02fd7ea61ef9be2e751aab0a4b77b0edcd9cdee767a56834a4a73e862adb592c9b5d65abb5a6bad25d29efec49c7376b3abb439a7cdf6ab58d67bbf5e8dddd65d2572acacacacac70950aabf776d6d99188a8faac75072143acd8bee470cfaa2150c63619b667d51022dbcb101f5e1119ef5925840f48258f7b5609a98383a812d2068916377c47e41bc80a06237653a4f1a2400b88e956a9743a2cd4c22b844061aa84047901ca29ed79850028cc8f310879b3ce5bcdab8595be88fd2694f7ddc2b4efbd79e878d0c4eaf26479d09c7d2ae4baa79a2d2c8c3e6c1932718b59d09e6aa2b8d819bdb276052244252144a14aa6c5d4e426e6595c49d3605bb35d4763779d9292dd9d99c9b6ad5a01080e52571ebd3fcca80d5604137c010e4f0c8982882b31414020862a3bc819b3856a08ced63a01c161c25a6bb3b2e3e8e3521644499a26b67f56c1cbf6f7664d64c81205940a7ffc4c218a5933860c9e293157ece0a6d8f66d338bce0f3ee68c4bbbd63422485252d4f61ae76a6a7bb7bd5ad9b62db6b5f6f30f2fdbfeccc8b65540dc6c0b685b6b43d3e7888bed3fd76c873551d11d25c8767d8a01d9a662a4367d1ca436d53bead3aa473b44fedb173d47e81087ca0b7876086952058e1e2c5882e0fcb3ff0c4d386b2ffce492060d4a3b2d4368f20875287bd8eb90e95961af63d6a0fc311532ec635fd25cee73ab7563eefb36e6be8fb43b32e7aff55ebd7e8ef45b5f49a44d5fadcfad2faaae96161a61d4fa0ad425deb1ef6139605fe4303d6b10a64fcb4d80d6699b53254d93e695d06cca7e6f08ed7bb66a69275a8dddfd292885b69d4984f5be109114487efe2edfff7ba9ad6edf4e3975db75b5abd5ebbaaeebba0f77eeeebaacde4fbb6fd7792f58ebd55a279a9dad00d3667ffe5b7f3abb0498b602d8c0f63d5b71d86a6b67abd7eaeef2a1e951b200d3d6cd880c70809f0498b602d8d8f5c50cea1ec7d8dd4f02e0d8f5da17f73b6aabfd2232c977cf2a1f6676294387dcdab3ca8710481011135d2bac986742324822b7f1008690268d88e595c510d488325bcdf3d07aad57a5a5cd2eed929623b268f9414c057baae192e5c6ba09cfd8a42a1f52c23a9b00b7aadc152c292568aef3ce0a933c46240951470d185c2954860e9419a2c053440d142eeffca78919ae2ef1ccf5d6a2c5a6d4d6e2a9155bd464d0481363c6f1db2ee79f3eb9ed406c7f9cfb00b1fd677ea06cffb7f999b3fd85fe7cd9fe44457f9cd8fe377ed8fe39163005d6f61f01d0d4f627e1c9f63721909eed6ec521422fb7ef773dd26ed89c2b43c8458fb49b8e3626d89253a8370bf6fd1b08f87b7f01f506f3bf77833fd9033700aaf2fc0cfc646f17f9d0fcfbb628a67b3879dfe3f5f561ba87ecefebeb1bbd34ae41f7e624d34722dae3db36fdd08a638ef189eec362e1c7c839835ee40c5f4688247b77b411bef7a12672db15c9ee477247094422781fde0f8fb668e9d50ec3309ce30722b943fcac47b2a47bfc902c8976f8e117d5902c4b2012c91df6cbf0b13ea16e5186dbeeb7c81d1940da38fc398a3f92e187541c2d88caa2a87784effd8ef085dc761f84f0bd7a2bf2a0fb95a8c86df75543beff699bdbee6300e56adacc6df7e7c6c0c492da2d3ec7fd05dc2fba7f23e7401cc259b337beef4192d681af43fc2f14495a87495a8731d6e508b886a20ec7850bd8f4cb1bbb04a2f02369f431d5210cc9b966efb1e78d163f1d75380ed3a847d2b6f568548baf1af20c0328d9ea10da39c385269f82092468418b80c56c05042a6431d82bbb5aa318821ff66e67abd33d5fcde8815773e1adb203bb7ee82e34595ba507c8a76002db0aed0412b4a045d0b5c2eeb6ca0f78ad1209b7ea87aef966cf9f1fe2d60e4a2908f5aa09e7d73db56bc6a0dbb5e94fd79c3129fde01e41a13e2588f8632e766885cd33b1c6506badd50393eb9e6af83475b5aae1f3a476b6da8cce9ec99e35ba25db21d16d7463fc810e7b9dcd9e9d6c44c6cdb3d6fe4c8a6d679450bb01f033298b3dd564b5d9a58dea889be60be24e10a1e7cd496ae206ce0e4aa220815464490d5efc58bd3123862e3162883642bc9b4526c439eb0b9c90fe08699c7ae5eeee812dd7cf4fc1875e3fff68ce084442bdcd7ec5acb3ce2ac66b08c9f86ca9fe51557c49b168d67657c218cbafd09b5355173267607297ed387812d997dea47429db9d861a8555e812cb749963baccb3a5aac30cf2f7010f8155c760555d653264fa4e556f2caae7ccc265940898dd5f716525bcee7bb5352a2a2c92baf75e0d015db3a6be5b24dd2eb23592ddb47d1687a6d3168a006a3a6db7dbd703dbda4fcf1b556f344c98a8305161a2b6d33035cc7cd1805d6d9d073aaac25f4c96c2ce3b3aadf5a7d5e2aa7b75ca4208234aa6b956779d5d96acb5be759bdbe6533e3036f865a130b9ac6d174eb914723167cc5db588b16c0675ff913507d819d4bd27ee12767d4a6b2ebbe69c73561a6c751b93b0d66aed5340e79c73fa101a84b40ff6b47b8e54db220f08ef35c41fa5efc525c7420f552ee030b5040e4b86b802a7898d92e5f264a15ef5b18f21220fd337e7e9e3e28fb39cb0930722ca1521a204d2e3540b82e9061a9c6ad8938312276bb213272e08c1aa08292cd839a24d96fb7172c45804106a588c7087051baa8009c2c7122a5c9e2431840e5f9ca0807ea4c2222e38809bac2967a8f430870a962c5d56d83264cb0c601f2ff58bab4a89981f6868f234039c0a3059293991196243143038f15e9042c10d9646e99edce265107579e6822e4ba8d968d8a89a066824877baac92ab2654ca9ac20dbdf6229feecd2164478c52fac231336a24b35e8004464f19d8cc02327ecda08bfa88f263871f8cb3c71188fdf87af83ded942440ed7e303b77cfb35f701f17b88daa90b61059da306dd5bd938c1c4b1a6b98ef0f1f7f874e0071fd43d429dbf47c279da086b23fc9f3e72f2b0a6f9ebf045dd03e3e87d5a0e100cf1157f8a74a906ddff748f192ee755ce73392a772f4e482dd8386b1dffe95c83a6d1f798763f4dc379daa83ea88f6857d3eefd501f15d5a0f99fc6554db3f875808f758feff13df83ac21e78ba50bdd1acbf51b57f543591d546a2a8856ad0143b4ae6ed24396374b75c88491a0f1c74933001b7754fcbf17d183fa8bf0675b4fb91f8c3d7f1f5703202b5902e9a15eb89c3c04deede02335fdd2a11b69061c0b0d5eaaeb5ea4984182427ee2327ce69fee123e14092e6df1b7ddf87fa68fed1ac250a9e87eff5b0e7dd3b7945ddddadedfe9245954e9c25298cda072a92e75649b574cec87bd6201bbe500db2ff474e46fee01ffd9193d1f735d4475f832cd647a0eba35983aa3e0a129074b720e9a691734740ce19e97b05dd2a48ba7dbf48df99a4dbd522ef1e45b2db21f8b920ed1ba71c2e47bd3960cb1f0f9a7b023807704972dbdc549916a1495e67cf7ad3e4c45d9dff9890c208fe24d4a6271ae54f9bfca995a6f751885aae4d9b823fc7133ca05bfc1aa18b22afe0c517790439966399345a4058018064fc8ab17773aca8865cdbb097c9b4d63958ae76b2b7630dd9d30c7aaab99aab3998762a35ef297dfcf47b7a9ff6e52c33d3b89e1e3920f67a15b2a7311afbd853f17002f269134c307dca87d8b8170fe3653c8d5f791ca7b3e94f3049922449c742566024d3afb99ae4e2e9d7221cf0c9b257f1a52c4696158b96bfc5cf4d2369f92578bb6b242dff043ff78ba4bd9ef67387315ddbb00f4054aebd8ec51ee3cc82a4b178087e6e17248dc58aa73b4ff0f53ff63ed688615c332c02b26ab226d5c80ccb39f6453ee4b7910acb12d9258c252b4058aca6c8dae59c9a934d143a39068b7d8d84c5340d87efd8dbf01df340f6305d95dc4665ff225026659af652f11e44f0760f55a069b2873ddd94267ba1fd29caa1b09e0c49f26dbc34995dadf1b30ad8ffc3322c069b933eecc5b106acf6fada87638dda938bff982ef34c852e675b06fbd793240dc7eb61fffa1df6ffe78ee580c1641fcb32d9ab78180c067318197b15e4091fd830193977264fa01b46896898c198fc9a586ee2d059d3050816026d495226101dac23415478d25a71db7428d853407a140536fc89ce0870c6b449b3250734510578c28920538c2c3971c30412b47869116a3385152942fad8d042038050217101071f46d4cc31679a18727524901926384a0492247d5678c1aae90c8e3e2d0216af2148505696b0b4fc39524406242272aa4ce1b953c68932382425aa332b34918311205a70340ea01f7998509203101cfd19e94f6ea3bf827428b7d18780f42824f2533a2d282161c545481122380b78f8a2e6cd521d1e74c0d17f5b67044696bf61af42a6e2cbbc652a54e812f6af97e912f6fe74f400f6d9951f46cefd22e767974bcf6f3179421fac43f79034cb6d7fdc46ff26b98dfedc23ddb4bbbb9278cffc27ff2efdc9e93b7da7ef51b5025a011298ce2c9e5139ae5a2bd213224d5cb0c18d953a6f90a4e800c6051f5b96bc4405c2034505d3870783ed8fdd4c2933c548921cc044b1618d1028cef810450f756acdd079131ab12e2cb9318aa87325c9104884d080cbb67aeb74b00385889fdc142db86a67bd4f67578ffa7bb89b65d1fbcec31635d694e9675a8a569605a96d2d0b4c6cfbb9052edbdad9ac92b152b22b0bb85aab6521876d28b2d4041a32497ac09579cbd1e14d18266e60424c1de106fd30b7e6cbaeb5d62a66ab949f3c6162ca5653bba6942d19b3fd6dd5923edb9998794dd1d9d7fc1565726977f72fca647ffaa5b575da69e7ffdb170957586e9bf3dbf619b084014bc2cc20ab77fde1fdf8fee4c5d8de3bd39c41b7f7fec49b3c6f2623482e6d36183ef4bdf72bdc64ff1ec66883aee0923bb2f32433c8fbf93d0cb7d9f0ed4ba46f97914c3db7bdf73c697bef95aeb4bdf78a78920f7920adfbfc48388fd6bddec8f5afeffea58f9c3a6df47afd917dd723e1bc87ad90ed573792efd328eff391630018924bbab4fd3dfadeebaabee7bd2751326f3e8396e68cd6cf98914106010880d61144008395608b2ecd18de8fa42fd520ef452b9ef716b4c9e0bb38f09121d8f36f55f2876b90f74e7249a32c38934190a445dcf669daacc52cdcf37fd796bec9ca1253d8891cf8c8a08e97f6def53a4cf82207df7bea7aa3d7bbf491d3f747f641fd6923d7677d54dfa56d30e68cef3d229b47b77974fb239dc98ce1f992db3c7c24d32bb7b1719bf7a52f6def317892fd7d64bca77d054c9c7d1db48b143b7302e1eabfa84425f5abb56671adb5d65a6bad55053ab1bdb6ebaabdb57ad66b9d76a85afad5596b05b31110043bfabdbe07fbd7f33cd7fe19e3c95afc751f6841300c4517c1917a77e65d5bc796b50fb67ec6a0e1960eacc5b5aeebee8b5ddb57ef4beed01329f9c39e6036dd54376a50072ee83b0c5bd75d22af7d5114db69ad5b6badb5d65a6b6bd65a3b9b596badb5d65a6b450308c176acb5764e1960854cdf9673ce398560ccb1d9a9d3da0fb7c8b87d6bf526f7dc4230baafb6ae5e5153307bfab0e7ee8004f7e7ddead6fa9c7356b05fb8d0bb5a6c41d152dde8201cc56e143b4b54c3b344daafa418acf28b52a9a8a8396dd61e59db5db1eaacac951cab5aad6ab5ba56d7da18e458d9ee8a556765ade4587d2353e8ca1f857a7aca2f117b52515151ae1016bb2e3649ad91e672b4085512c72a74090bb5129375289860e79c412b8d9a515dd52526211057747003cc961b35c8a9aa143960c59c511844af4d59ec49d3445999964cef28b26961abf2f59b91139b88925d3ad886d8200ab1c44a8826bbf6ac5ad2c433227f7b562d5972b224c898437eed59a564cf8746499d29256e4427b2b7679592aa00288185330b25624608a630cd94ec005311656985922b2fd9942c0894441163542a941cc9303ab23fb0d70b22bc10cb765cf94918981bd10583d26b4c6e3531e520c231ca95ab8b283a596a398de194306312172000d388498a845f0c56c2402366ca029d90794f946ad08483d324f1120106a91f5c2248a961264213aaaaa5259a084ed2209182850850a23012392216a1e9eaffc58f2f0f9726aee47c75dabcc9b6eaaa49628e11e119355ca6d264704f355cba845fb84005604f35514a9ca19f587b5b852a4929a5338cf30a3c63d85b3d9b4d4868f6b98d7e7726e78cadd47a64097751b0922341e2caca4b8e048d0b2389b20b408782eef111ac234c99769162874e66b16d7d2c8511a81c27072858e434e1210f160e64b1cd94c82643c6052335d32c1345990d40959121dbffcad8102922caaa25a20876a7188812ce324badd4db6c0acdf1b2297d1a356b814b91c80c6688f8d9ee1a2803c399397088680110ae145aa102a02251c804297307479fac0462e2884e162b92cbd9a67453224522106552600dd8250463d74ed33eb857d3bcb758d3ecd35d54ff46f5efded6a845378488c6172aaa7fa3be507da23721dd734a8d1e4cb7b9ad6eeb1403e1ac89b59648dbe7e83403e1ac95b7ab8d3ffcbeda133308ff64aaddc65ffbe343fe22c987babf8fcb1ad66c0057b99c75dfa25e60a6dcb46b49724ccfbe0661fc03d021c7966058302c1816ecc6259737361b7f396b7b7c08ff8d8d0f8d8fff16556f37a61a841fe39ca336fe1b53bdc11eb75e3fe7875fba9ce5dfdf8d69e3b77ddfc388f6f7bd50bdddff5e34d5b07c08c6c65fcbf22157f1f85f2cd59becf10b2b1bbf78daf845d4c62f9836fe011c91612ffb7208cb466bb7740d6bc6c03fca9ec634ed05d3b4d6c37ee2466da442d35e5ac86df8f1cb34ada575780fbbdeebb8770041f210d66dc987fcb32e3176e932e721ac8d1f46dea841f863a4e3f71ef60cf09e01f773e4f69c31bf06029f0ccb6d05380e865583f0dfb6e430833839fcb246d6f6cc18f8e7f8e95b13f05f1ce4f2dd93835cee38c8656f9c6237e210a1fe07c207f54711eaa880572bfff881ebab2ebf77fd8ba4d57f3dde2349ab9f7feeb186e5360c7b551286e5226938ba1d55d3707c6fffd3b4af96e536fca3aeed711b065072dd6fa09ee06da06ed74dc2f9b37b1b53db39d26ecc3ddfc6dcd3a3a38dfb35d0a623fd49524a4e4f97220cb76130275b5d8a30dc36299990077d1e5e388772ece9f6681f7c0f3e0fbbe9f3c09fde4179f8fefed338a8c640dd341c1669e316fe1a351683c56030d073f7dcf3bc180c1683fd2bec3caff3baaef3fbdf8757f6b227cbf9df23d1f202df832f86e37ff77e7901f05e5b0d04678b0b9cd0c26d7486cbee6df8855f032a874276a8b4f3875f1fff17ce519ce28f22ec63ef8ac160b117ecf17e65582c0c6314a64ff076fe97de40dd5946ca7ce8d3dfe30ff1fec81360f858e3beed922d7ca885dbe809b519e3ba8d9ee9c3b42f79c29c31c051fce9b7d982fc19837e22d962865ff7bffff07ae077bbebdd8fe4f17ddfdb4fefe81e6f5b3b3a6574859dab1ed8ec2b2f4f76bde2e1cfae7eb5ab7f209823e7a7e918bf7e8e7a1bc905d4a01c4941f95def64d4faf1c7f1f31b8df88fb0d1f82e7d34ea1f7fd4344cc39ae83d0ca87d2a09c4595ea66818a9fa9ea6be4bd5f730d5a5dc563f34809cbcc1b7e183e417868fbf133ab17bfb9d28be2c8b1e086a142c0e0e0259bdc31fffe87f3dd2decf7b0cea1cf567a73dccd40c234259b1c86bed26c57eefbdf7e2a7d87bfa767f24cd7bfc359aa73d98b9cdfe53322f9161b8cdd2bc9fbbb31e683b6b3fafd32ca6cd76b319c38a6eb377666542378aa3d2ee29823fbef8e5f8e187a38c10fcf14b192280bf637c4ae3c39ef8e18722498308a441cedd8d35c2974143db0fcb985d1a19fcc8f34b195746eda242fb38ecd3b7313706e6dc969c38688c7add350f8fc5bca0d2668c7a9dc5b455efcebe7a96613c7f84f367cdb33eebd4399290704435a8fe1f3919bd3eff919351eb5f7fe46404fbd65723d7c7f491edb33e729a697d748461b39f38d79718e7ca2f4dbb2ffbd2d6d2b4ab7324e5873d128ee6691a035ab2d77bdaa8f5ae215a709ae2062ab91caef548b8898b691a5daaf55f4c32d5342a83a44c5b24bd22e98bccfa0044bc3ebf9391ebc8899680d6bfdea8f52fd746adcff55d3a4d98968693a589199c00312197c3a510c20a1b0037081ba01b740743efddddddfd840fec7b02ddd70072b2f7dfdf07b5f744a3b02e5180721b8d9aafabb4de5b9a52b95414d512d9d39e412ed3f97883fe0258932b960fdd1fb50b49b68f3f1c3383eaab8972c3c4aeff54c350cd18d5fb09fedcdfad94caf33cef4beafdf5aa57bdeaa5a165a8bcaf33cda4549e97ee549c0aa5a2f24aa97605bffa94524acebf2406bacfb95c6ee2a03cc08f513d12c75fcd037c1e28e04d6f9817d44761b6a99619a37eded5f48669ab18fcb0bbe4067c83f469c6a85fadd70a49cba4715bfd0c7ee4d29968a7e993c6feb4a78b0f7848a1ab5082bee553ad922ce1b146a5183475d9fe1757cfebec4cb1a81afc9b3f50d76cf4c35e37d6b035bfe5da04b5ed30b6cb18c287ed3f8bb2c4f67f2030f050d51464fb4f2859dbbf128922192ca83647a09464cdf04186aa1572d881cb10943a1e202a6a9bd6fe6b36285332ac08529107cf93e17c69a658b28e4e0dc26e5cb6a91b6b7442f87d4cae3288848488a460c92105ca662cf443cbc58c719ec25483e6ee32dd5cf6bdf7de7b9bc2d4a0999fccb0efbdb51fda53cd17a93007faf44a04164b8a0e32e0b08709317370a590962440b8c9f2878e101faca5e10a4b0c61adb54245e12d895c4e295a240ecd0e6edc701b9d529b7670c3da6a1504b617b83c59dafef385232f8a4220593215284ea03f4fa410c585a72248a438a24f4dc996ab277cf0c10f9d7944171d9cf0ece0f4060dce5a5b14aa1006611a45b7d13eb96cb146c6f62681769593aaaa2671beab26659a34a962a2da05d8b38ae96a77ba4b22cf7cc8694963fbedba97b9cd3b3d739be7dc3dd20eedaddfbe73b4718bbef55483effd15403518df3fb4d66d30195a32c6a40c5f6125874ea7c3a806b40fbe82c96d51d33ed025a617c05e7cfc7314e135a906a2a6e1103ff631bde3a5453de905f8e7c6ba0437ecfbd6d711844f9b804fa88102812089df45daaf860b243120ee12440c887b07ec638fc21635787d7d906af0d255941ea76203155ad4b00f63b4584c7c21bfadc84d2bdbbb2b384f61e03cc5c44af748627a812822ed51acb02f41dcb131a64bbb632ffb4a96422890a0693826bda074c0ae8fe905e28b5f1aedfa6509bb7e51959127501106fbd8a83120ee12855d82b85f2f181d6d87437cefeb5803cffde5a20e6e74ff7da767f7cb5ce438c4bfdf9134a4a2cb0582f8de8358d320898a3ab8e1b61cf402ff915400bdc05fecc83d432fec4230fc421c86ff330cc323dce932df1022f298c3cc40402ff0af327ac17c3296ee81806ae09f957d3f3befe81e99a07ada553a6ddfe779587f3b24e9b461ec751d8867322519c3312289219652d79735f788132977a69e9480c28c9f245ea630f1090285435292b824abe164070a4ad61640b93a3ee4f0c4070b89a65c0804062a1d0c3444d0dab38ae986365df214e185cc0f534b4fe440e3c2192b1896a8e14af8a3088b84588b5853c38071aa5cf067230639512c0148cb1356483788c963a4499e1ed884097db4a9c0ab62b292e4f6307e9ea78bb860a8afc2e021cb0711404e588498411881020a932a3e33c8508d50a28ab2645717b85a734e4205b0a71a384f1bef59c5d474ff84f8e7e39f353a98527bbc2591415a8a18bf27e18b5fd6432e3d8741fd8598a47d50d2c0a7bbdb2588487b8e1e78073e043e26a2e143f8efbd5f6f0ec0f9b6f67df14307cc19e1df7fc0bc99b0c4be81664bc9847affba5cf95b2dca8432a14c28132b9b527913be89f525de61f6fdef695f6f513b7fd0ec4ba1d8f709a027bbfefbaac0ea0da63d87434deb70a0a7ceb69d2f857fdf9966cea5291db7c5719b5ffc73d7a83daba060d97497449e540585cabe4f44e31279eefbbe8f3e697a69cae46524674d97342de2b62b3edd95033dd9bea88b481a98f4bf57d49ef4dfe3ebb93962fc61e8b9a22a3427dfa775c278eebafe9653caf5f75b247de23651d3c447dae20722cd8abab41b6ba49d4110a23b8de8c06df771bdddb89728b7c9536a8f5f128da36d8f781cffe78d68ce9be7462526fb12b9887298e82e31c4c6976882c9ed133059b72ec5ed2206a182c9ed518fa32e27bde0c33fa1060a84c53dbe48863e471cf85b1f56119377d31187ebc50fe9bbf41475097e186a5c82b8afe82ba284b3762b22fbcf4dfbf9846a50c1e476f773ec8a7cc599ec747c68c5fb7b1d1f6abdbf63f91ecff23f35571df6fe5af2a18e891b7113aa419e238c0fcddedffd9d890fe177169fe3643665bc3815a47ddf9fc6f1db08f79d7c0ab0f8d04ff02ec1fbd3303ed4e23d82f7a7657ce87b17df5db827cdfed4d15fce56904e87f43aa463f91ecff23f355793aa522de2b6ca847426a433b915cff5e64678903b96271ee41f27b3c965b2903fd4f6772afe1490d40a49b150a916fe34ff08484a5586a469281bb7b9bf0b923ed5207f4d8e50c493fe8fd7d94e0139f70424dd01a338a8e48c17653d0a997233120000004315002020100a86432271402c9ae7a2e27d14000d779e406c5218cac35992c3300a8290418410420c20c01843084256351a41814bd8e0b300a628b6bcb551b4de5cda414b291057f990a396317bcbf44b77756785bb200ff59af652433d817a7f3ff6b15e88e00d977fe0471911418fbe1944a7b28601e51a13136032cc837a1243a036c5e3551ad65a25b74e5e3184be678f06c8446085079b7c164c71addb283a6b8a7607ed5d45784d53191bde583e1e23809c5725439ce2f38ae94edd0490e3a5e48888b750ca72d209cea4f1dce1b3b48bb5c73c2d28c77b2520260ef3ce51cc170ba1bddb09e4fba86f1127915ce33f4283e332e4b1a2a878e584f87fa084672efe0258fcdc1a76403bc63d6f0c57a099ac59ff4de7ac4573b3e675d1217c22cfd44d21ec0c0c3bbe03aba9887cd29a914b7b76c510edd4c234ab50e67ce1f6510a46774b725f6cb94f2763a77db582f3f921317cb48121a36ab99d3eff2314b2a679fce787e4a39695bda75b883fa41cd270e34c339dc0a036b4ec153d109b9605514c1c941be6493b18063af1fa364c6a6053cbbfdae1c177b821b08a8964503543a908af833e69801671438fd88fac23445b6f468c6182bc075c77579c7700fd280863a65e8326d268505264eea1cf46b828940f00efdc4a1aa4a3cc047d6c9e8da4227f5b2adc8988863608ca56d2c606be85eb709875bec878535cd055b452dc7279bb0fed177fc068ab63a19dec89f68b9fca08fce20303553029f0b3b0b92f403b8fe9c20f171fde898d8c5f1298ad2b9bff3e3c97e906a1ec761e2007b2b90d69ee3600fe6feda447a9a0ea920083f51224d3b7c6b5b86fe06d56483341e81740995e892b2beafd1d89bb5d077e7fece6c1d0ecc1e73f6bcc603f5908a49a4a0b72a48ccf2af072e3c9b7ec7e895edc0f8f95691d4f8556a7e70b927c8296d7fb046068b8425777876fd289a556b7f403b1906c36e2fc163491d0dcfba3853b103347fff566177e195d607510029726eba823849efaad0f53194d1162fe1d0d7c626f2c1a92c167f41ff2be0caf1e41cfd0fd482242755188559344fa699d7ec6542e6f24d066b22ee4823297525693ca632a013ba68ce498dc4647a5c07539021ed9fe50d33a9a22f48ddc4f859622a5b7179cdf7ede165c825607a63022194d2e69cc0f9f8e6c84300f289603cdb5ec823ce186f37f29a001063283bcc9a8309da7cde96d507dd6dc540f11d673e7e6583d22c40fb95bfacc9588ccded3e4764b97d0b2caec0146777d3ef353dfaf8a35fc403c33fc6438e2374195aa2c57fcbd82b1c80b4ce8638fc61b1ea7a684ffe56a0f0f3918275e146cc2e18ecb8674fe9e3f44dd70e842fde6e8a96dd05fbee9a2ee1664f057ae86d37317f69f3e0b4f95295ed8350605f3aab94af040ba92edab70f9d20df0353968856a4f6fbeb049304a29e2576ed10bba9e6f0cca1c5f9413889b99f24253f6ca4b01fae9883cf606712d9ee07789b48646061918010cdd3c0fb490b4260b22e461537a6690d8727c79f250bab4fd7adccdd90cf052627bc0fa4275a38dc53ce1db9cf7a216e17d6905634a4cef0b4f0415532bc0c0b7c27b2fa6e33b92976abada0a8899ab6266a7ee9cfa4d07b137a9fd92e67900d3e9e1068582755724e96bafe9d3dcb93e17b89837e9d5239f4ae9c9333ea20f4d1eacee41bae195813ad03cce55c88ee7b6f945f9915c6992aefb48c00f41cb5ee9b8530f3af616acac854ee5e3768a01aee91bbae1e498a28dc4b7bd700286b57352d8115c8b4cf9caf3ba61e0bb2e21ff97e4b560b7a5e7f235e316da18cf8c0ebc943c692b7802a17e396c1a3524d32760e4216e6f6c788a66712e8ab37ceca179dd2243686745ddd77208f4fff1c909d8f300cf017d02e02b23294f14c5118a072ce53401766246af8969a7a542bde3afe6ba0c2fe4c959b1c0144fbb60a95653f8c64cc2c37e59cd4a2591110b26ba1623063d492bdefd954a52d63ec43c0860e13d6dc108bcab1251388a2bdfb10828d07367540e770992536e58f98e6652618a6c548e2ac7cfcd943dda00b7da5052d2985b063d1140dcd6b6795f62b3f789f86d2d0d988b86378b6456de1db006ee2284b231cd125b43fc1ac12dc8cfffb55b815a2a3b68ca1d6132edd9c5f8935638e4dab32beeb48243efb9a3c5e41a44041b95a16ff22c5a588cfe751dc9d08bbdd5ab8e33fae7580d55850571171fc84e6ddaa1bcaba897bd6184ab9c4c112035f3cc531c3598c33a6f71fefe7f67292914d70abfd8a1511b8ede699ee8410d4c5414aef5ba5e63969159910414611d6057acffae2b8ba2c1cf5634899495ccc4b861f402141af366d0a7fe3a818d188d4d1da6a42d69509882af85d3960fbf761ec855a4bdbbf549c4841da0e777f7cdb16a93d390394b65ce1ee9ff1beb0c0d47472ea6d3be9cab52d0d2a7aa1afe750659844e18bc301fed9f80d546ce743bd7336c94ea31dbb7bb4d4b289145cfc9d2d0d9e42b6c4fcda2f141c7de7c97d07748ab8083d3457b4f1220a08bb00887609dbc6e479a1c14abc5332a66eba5726c62789f417ba0ebaf8b27e195e8d7b513ae8be8c7c4d2774b59268a50ade41754a1417ca38afc42b079a06708acbfd2c4bddb6fb17c2f2e43cfa5b07239bc4e467beab520a214bbf53ca04a2ed4c274f6aa170c93148ab97431628ade0c3b940b1acf74dd82e222ca14d112e5b5efc3ce49db46eebe6fc9afd3033669721763f124e005e014e782d645ebb329856e20e276bc00cf73e6cb6c7db1aa113b8b8854766dd88a78d39e251a6cfb1439aecd41c08dc2c2f39d3faef30476652091ab1bbbf35b99a879280e3b0a58a0ff63ed3be00780d7a0d0555271deb4540410da8503b87e99b83ee1216692e63a567bfd0fcc8db102bd7dfd89469aadadb9bf5968c6ec2da9c1a29093bdc94c01bb074ceff185102786dd9ecc4f8b54646bb4dd6a19f7a2a393e701d99e5aa52e1fd4a215dff1e6dd746ba32095f9fada6a047941539c7eb4845ac49bf33afb08e53d5c583fc62a9edcb2bf56e13fb8bf696e7d3b51aebf1a36f658d3d995a2a99bbee1199c7c3775227491c335e2057f54643aa3b8aa03efab00be0ea48a3e71668016388d438c418d7655ebd3066bfbd33097d4729c9942a6d4d1beb194c99169816472946dbc4bf3dc4c77c65f5f1ae76983bc80ccd0e9908466412a59ef4e1b98ff94fbd30d535317e6cb7c391d73ec917859d0d89a1d27bb16fc04ebe25b389315307978143b9e396b440405674ce926e2949eeba533e30b08ee2b356cf7c258881a6170e0921970e7beeb3e411afef3c0584eed463042588218fc8fdd29be9aa528ec5d3279ec9b3c9e85abc9901f0abe664740eb0a2a9c04c3ad1d568f5d55adcfee8cdc7f2fafee09986561204fa77db42896fc87349b5fa8657994c6d0339168b51e9523677708e91f5af05c228705a357c023e08cfeadd879d4aca79b06b94da1a3b0c8cc811c7b0973185709f46a14a5e41902fec72910bd70691dc8ebad2d2c316f851bda8d574248714d2ca5046002a62a9b31b8328cc0dad9e2703e655845da12b6b6f0be3874b405bfcd5dfc4380657668335015e31fc77e445e1b8b148741f624860b8556a45a137bff4b90da10f012ee6eb1cc4047bf433cbd118295efa0d6ea5ac4c51d2a8fd3ab91b2ed1aed1f15473f5b10933fe5bd3aec7790b61a4ff6d6317910f6020801cacdb3f7e397f6b3279e6d9602d84eba97f044432275fdfe6731b0c919df3195522e56312f6cdf59624592b61309932b8b3a332637b04e1baca51dd2bde8cc444d571b96022a814bf34c2fc19b50ff8c64638188ad154567f4259a40965b06e01c6ce0ab0ece255e2b2e0b437d7b1a6db1ae097293673243dd998c8837fb1d84f4c20ed6f78515edd8df3d576ca871b53b68c86047e9d48de10fe791c502f4babfe544b071adee3dbeabd7ef0c49032c5d8b98faf4a6514f2f8ab9244e7031b935084a34b025c96a914dbd81ce323090454b87ea9447f98f6bccf743904c37d9f0d12edf61ba4d5d98f96cb465176cea580c0fc5d4799c6e7d64a6f368109e25094425e09935500ba3e8e6a324fb2f1b4061e80e566ee5772a5d1b58f632d7378bc54cf2dd91dbd6d0b0ec121d5078008c4ab22c62f78781513ad554a39aeaae57a2e42d4d0cdce481911505ef1535963735608119688dd7ffa15b33cae2537928208642cd626c661bddaa04447d1943bd1cb126542ca9036504b4c608521849fc74dd08d0465400d633aeaf58f69f4492a57639d1225624443dd864a1d000e879b445e42bb513350b331c81c99d2edfdc668e3c043aad7bcfd8ecb65dfa9d28b85302c4e7715321bedcd44e612adb9e183140e56b510f90a5a5b80f3aa404c7a0e15904beb34de2559f761628b7b176dead66de4ba50d1d5078dfc9e69f28a806e6cb53b7c94714bf25f48832bc54f0ae9bf6c9592aa2efe62deabb8b1711194004dee0692c126ea8efdba87de4bec712bf4509d7a3c81674d5ed3b402de87262e9c8decbe9a2bb1cdd23ea1b56c0891a5e066780adf824bdb7f194a39187868dbd7fa202f744fc5771908f380d8edf61e4da15389e5a2b164fc9ae7d1881af519613117b7fdddf3b90fe9b41467e58ca1761468652a82e85f85a2418b4a3e4f15ceda557abcdb5baa07a750cedef829b9aebfd951e85d7f4960abb7e7d8d8dfca3a62d1506910e95b46ad5d6fded9a10cc43a0566acce8c6a29d8bdaa4c004e78879ce530cf79d010f33fef9abee6822410b6191b803c06a0f1c3d803c6dab32aa307ff7a9e2fd5330708cfbfd4bdd44b426519785f3810ac4d3f14b2ac6b8c3287875ecd28a3b1d6290403eb96d11cf91b5863bcb4b05cdd5834470a1d52c1cc85def01841f0240a54f5cbd3877a844158c3a802ac90e710e4503f0700aacc9a400bce54eaf303ab82a55780b79ee1dc9b03ea550de3dbb86e81fc4f6dfbc2bb85cd979531ad55e0e2382c35f5f8a0138efa9c8191147b67ea6108d8ff561bfe2537452a8465e478482c65d82941bebd038bb5bbbf9841c2fad242bad71f826e33ea8f0f0f50ef33ed2bc6a27d0fa3ec62f26988bce5f053a4ec1e7133aad56b872827fbc21685b58ef136afe12820d288f360e857718e9865caf78624f3503ba35ce6cd4492ea1df932fffe63709baa90068fbb790d938f2051116334216566942b87d96ef63bfbecd510a3117c2ea1b148d8093825b8aa26f4b4079530c6b89a8475761d903388918efedeac44b88f256c5a63bf84d91725860a34933a36423363a766d1a5998110ed938ca654329cc060dce8678c65bed2e20a66f93c597a6dea92b8d100c11ad4c65ae236a1e8991808bd4bdfc1a8a7138af45e5a4157d54c6222570fc5010c703e7535ec53e812f5b97485273153721fa2637ed321d2125021098b96badd49dab22048fc204a2376863b0a862c5b2d30361e40075ecee4975fa089afffcfe9976c2909326e5adc1ba6d06be48de1c3fbcbba5efc568d080505b97a1d5dadac1c8ba1ceddeb07c6078e5b4b1b377889cac0f1ced43d849e75d1d7dd3fe44b211a6ee02696398ddcb26e3dc0c2f42a44d64a5ce0b16f896d4112983c33f8326b79aca9d3bd7bf9da8d37054cf7d1b01958a7ae026fb15adcca018c944953955716a84eed2306eaf861e86a78e39a24d76850f6de2845d8729533e7a2b03bc65dd13fca35f840530180df8d4903bc99b2284bf42437e4b765fee1b5741a8359d7ff19b6289fd45938322aa42cf88cdd05d38b5f29db4555360cd31f73885d6f8f4009bcaf5a0ed84c80f0195879a9ab17bd61a08e932252f8fab1034534de147479194ec103320b63fff67ede692f9e572b5104ba0e24cb2df147e2423936775719f6d560b47fdee3034dc1760dd166e0cc6691c786c5afe0cd063680d959cdeb63fee049afcf0efee186fd878dea1f20b9fe1cc2774af1b93a43a42400402d110283580860d85d051085f24e102f838943ea336f200119cd6e5893569d826495a009c1fee87886761a055b4dda9f86959c4d9f41922fbd91c5f3213273a4b0d7d86f86cb57360ebb2ef57c0e4d3eadb034e37d16acc8c38b316c01a891405250c44f77e5a55996f2609ab8013a49b8756014a90bbc8f769a66b0288b122623941d48bdbe1ab7b7fd7b30ecc6bf03e3731ef85422c7540f492da9824704f34dd53deef7b369baa8333729fe40302a3a248e3f7354eb946918e6266714e8c4318c4da1e114bf78bce1e544b266680741542fd1aaac63b4bf10d6840d52592a06805f503768daabd3b79913ffc0c16c4605a42b29c209d5a3fcb5d9448105bad8c9541ecddcafc37cf350233644c2356f9719bd9d64f47e8b9eedde36e5346ce54c2958333109a7a016af1e8510630c99c9d07470869cb89528dc8303710540d6d7ba4b27ec98b6acf1750be2ab7eab5c1fc9828a72089884d06ceffd02600b45ce7f99483f9486b33b91bc05739ee9d2fac0450c812cbc41b1a3e996c6626e9b813a37c06c9a3c4ae2b5aa17a2da960ba330b1229b982ba1958fabd9c2dbbb911e852f9ad2025ba544183acc80ad6a93841dd35866cb055257d428f2058bbc74d5cd6d091047e5492761c9b3297447bc83cfa2479c5b08f155eec39760e9d58d671ebb89b0dac70c54b92f61e166ec0a96d401c4660472b6299b0c0f6dd2fd94d1b30225da94dc69552b77970f5e24fe5c164b8d9dbc78600402639942e6cfda930dae834fa97d7a40ed5e0f30301fd577523e957ef6cea4e3845ad9af9a78790e00907bf07c02709fed1c0ff6d1288f489b0e6417930f1c9e5e4bb7b74542c7c6962c415b376d9570790c409a07af243075f7eae78204845ec04d0c101d64068db925964ed97fde10439aecf5eefae49f06a00c48f0e16def9b89354cbeca954d735e6fac407ff438a5933cdf08bb24acd52b61c5e4c7700b9d2d0cfcf5aa5518b74763ca5f10fa65d9cd59f7ed9d672516dad7438a5207042bbffb73da6778d8f7dc3c62f5c7f0661905cb19d5f1d343f1dfffb9220da5bc3880a64e7d6271f8f6979f9cbc07f0b74546e6e76712d94e9caebf63459c40f49d0a8f80724ea1965001810e06c5fecb87b26cada353a6c848b2443ab5947abf43753e46989a911546ff5c145eef0f8d41ee2af0b98bb323ba98511cb1e4972710c7f0af84b5b2c0364a17034f4fee01e980e491cc46700bc9337599e832af47ccb3ab5479a35c18ec95a974aa16989cb9b83d4f7d185d064d28a5b6fcf131ad60a50ad36ca4da9b3a3ef40db82159cd286e7c3f4eb5ca7050d273436e8cdb6ea588664b6f1da742ca4d2b1129d75dddd398b0ccc8fc2e5cd85758c49fc3b21957ee983e897dcd0e2b48c75c7f6aaa8bc4d8e0dd2fe66803796a80343a710a0f39cec8bc3e60b6eaa55c380f80071aa18ffc8975e7b98575a5e0871f9525c3a220de0f0f420fc8bd991efebd72f30a59576c2d7dc40df33fc6586426879bcfcd0c683b72dce501cf5c46780f46bce47e16e429dffb90b67e4bcc5290fa71044a94b1cb6fbabf63805e0fe9d2ad03925075c1676dfb252f796b564b7ace22a0761cf885ad6584339811cb32cff503cc327ad5b95c3f5a02f272b4513564cd0a2b973f203fa7b687bc181a442f42bae2ec6082260ad3b1da1584b0f1508ea26746ac6d994979a2ebbd5b7c77dbd5c6d60c6a596b50371988835dd9ec63a1c2fb423004917b5dea1b45a36caba0e0aca6e20d04ac9e839f75ea2fae34f9961378fec20c0d1ae1d4f5295d43c381db569d6927dca79d50bcf2b4a5713301d792b0e0de075d73704966cd7b0747d02c5e02c54f101a0625feb646ad4ba5adecd5bfcf77cb8dfb3f9b2aa80931b85350a21977fd351237da132f9479f78cfc0961f70aef3e45f18697d71299f9dc4ca762c0822a8c5c035bfc992958a84e2a1f1176bed846b07646cc73e1c6cf37ac9e1bf1e4b04b54b19d2ee3a5348308bca2845c78688133169438f22c322d3831e9be0d1cf652439002dcef1474164112ab2a051300027f90001b19d1aa5a15ab5593e454e79a712e6fd86a21516c99eaabd9f184231f4187fd234333085b780ae7a23025b1d1c104256371e45074173abf7ed42ded4ef983f8c242a28f18ba908ddb0988cf3a80834d40d8c11134a654dce40488ace8b160105c1c2d9865245aee4731c58cb4d56f16e34e954d52f34a0637ccaacf7990609bea1e42bad53c4d33e590553f58e72a396c94d9449e0372e0f5560cb5978aa5cfcdad35bf2a8454b311e262eb638011db83e995633219e42543666612ca6e8b8bb8925ee58eef17e4eec68a37075cc4063c967b707ea9412c01ccf33581152bacb9e9ca017ea1c0d42cfc1c33aaba0594763604372682006e21f908606bca4a2e2aca006f23854e9e72d95bf9921121d7731391216b945bc406d4395c846588453d21f49bc24bd6ff0181c9947ca7f3d5b4d5102f93735403af1aa8addd4deb6ac39b386a4b0b4fdbaac660168ff5f220ff82c14208b01d6454e6d417e0fcdb8245951df3fc7de5f2e2594a7251989e2d4335173643be15e3f52111e6d6c9b5fc5b08eb72778b6e7af493fa2f4cd2178184c1698070208daa0803b8d851ae238f52b8c1d4525054217bf9486d01e4e8e59e5aff3a7314aea048523990f174fd5dba7e76ee20bc26d8931cfea8692870437246c6b999e88c6445ea0e1d4cb7ab0635a1858cb0c762651596c94ddb467b4a6b127250e6cb4f3e7be73e5e80208258e1188e43c921a3ad2bc98112c2243946d1f4032b6c34c23c2fb7743c096a81de346af4af33b952e6a4611da115481e9fda7081d15ddf1f1d8deff17de798088434cc5b7243687c60dfc90cee5b5f367b2de354d25202ef3220a58560ee22bf85450dee119814dd10ce786cdd3e0352f0a077200c3848b01ca20fdff21d8e739f752cd85a21a2615de2d54f9fa316ac6dd093ba07b0612f50d1438b9ea7f11494665216715948cf4304401279f8822aaa7394dc68e7eb2da056afde1c302c5b44250504a0497bc10813d63a275a9e84ab551700aa714c7d9eb2a98bc69b567fa13d2813660f9e2b11c71f31c64f2d8dd0dc2c04a334753be7f183aa3903e3eb56d9ec0d0466f625f95865271f26f8ea887a648ae769e08ed0550736da2d3af443447f423dd4c0b2b20023ac0a9f1d0af71bda038d17e11a5053c6eaaebc6f2037a2748bdb108997df0c0ac46543af65b84dc3806572473aed4a913a39ae7f60e4f727eac1bb72f0fdf80494f402daf6a26c961e7e239804fc5bb31702f36cb42ace8ba89adeb692aab0430eecfe078fd26e739f5a0d176e623c58c3d081d01053da266435813fb1768fc43413282567d4e053f0c202385967ec9061efbde04365a064c90909696a78cdc2149d7783152107270b66a9ecced6826ecd62e428704a74a920b6313ddc1760c9fb056495c20f9948c3534e1474f609993d112abf40f71032d594580738b2fe0ef787b571a158c3158f14c98b8faf33a3b58ff228c9ddb4d0bbf0702006a17041710ba80844ca516db4c9e6a92677dada2295a11bab35676520d5a02cff197dd63acd308fa5cf5b49882a16bbc0d2f1d85ce79da86f38d321b1eb46a85512c742bcced042677fd36cd2f042e7501bf590d775d6351e72eafea146640a1a7f6b4a6acf96dbf5347d742511e468e55eb2d153b7ae52e3227f9932aaa293127892e6bc140fddfad930d9804d3cd2907bb3800af25e27066328bc5b4865fd93114925e346fb512ee6c0f1724da16dfbd7cb091f5fc6d4b2d65810e57b2b81ca64abc9987fbc9c91eebcdd7a2667f51c8dbf95b256927fbeaaf355d4dd290006e41901db60e1d403ae196c17bc664d5aad93bbb08f593f62e25d552e5e452ffafa920b1531bef9b215dc871e581239232667fa31351781c8f9b9c02d980a5bed2138c431a19340ee50951bd5125d1446fec309063304826abde07d54c1e64bc442c3107f33ba5cf1c8d523d33ac6dafb1c5c8b9ae4b29ceab768eb94c74e1ef2d6b2260d6afc2ea0b2b9caef3f83f526d9046c718b301ed0beff380c96ffe9fadaca3e0ca1afbdc279dda01697384680c2a588ae9662e5d8e52879d886493c771ba6826c422733dea2e93b93ff5171f6d4ed9e5c93e2fc55ea51ae2b368ce8055fa5ff599cffc123b410a492ae14a7c85c5494289e4a37e469ba5c6d5cd21a6e0199b48ea3fa15313dc5fb5ad3ebaa18c45baff09ff61af69f33acfbac51a7af377f2f7381f845daea2836aa6e17e484cdd90e227cd13ffe4a0302e2a63856f1410cff96972a3b39104a082ad86f4b4ff5314c62f67e2f4b3460f1a81019bf67596da8a7fd43bbf2b487f380d6420fe594a8d5a32a124bb2d3742073311f07fcd7c57032aaa5ade9dfd3b86e6f936bbab2fdfd15ef2d67eedf5d25b8e60bfcc06b135037bf9b8011f8125e4d31919d02a40b7dfde2365a7efd45906d65915d6f80e8f3aa8ec6a17c45fd9f98eefbbd3dd0fcb2fe31fcb1feb7f567bc79379c822769ac2c484d36822789652cf5feedcf2805b3a8149702ba91075fe13242d925c8146d180de15d5cca452cf0f68f8a54061f388d1b366455f47ee9f5180f5c8d491b08be3a3764fe3eed5a76cdb5a7b2c877c1d0616e8072ece571146271a9ee36d301620c0dbb0f911613c2798c10334dbd0f0cef9f32de791008ea3bd937ff6ee88086563b31840c05093841ea11aadb6b051e9bfa202d86407688406803c8bce20d839236e5fd1a31be55e0203524a8961267ca83a625b56aedde7cebbabc601b43b99379af8ae0d9b3dde2c8735d06e665018fc5c87c5c800cb7028cad8e5ec04254babf67dd0afe39dbf55baed101fbf04e65474347a267e42960601b37a42586f02980ea0dac8dfb4808416a49d10c6aa8ae3073439496684c6671ab47c6dcf4c2cd77c3c0eb0da8acd4a83e42d63e1ae78d71f1962a4527750d5515bd6e46d0dee9651701d058ef46558862db93b79cbd6c93c4fd9c3c03147907cd7af925d137421cbb696b49be1f9552ab2f58b14002c254af68435c950c206a53662598490a4cb419ddfc729a4533c05a43118252c8b61a4df02728289b1261955bd8dcdfa6dd48c7428e1784cfa092a9817c0b5a71c73be39e846b72cfe4736689e7abb4e2130ae0aa094ab3d2cd083f08baad9cca6f0bcf82aaba64af169aea4759a267a57d1fd7e80a814728c74d68e5c69956ae593d0d8daf26671e9f862978f6fb7272a78a64eee74acdb17dc7474f7c2a61ddc6710f2bdcb03bfe2d20724a5f1f1b5fb8dac5a34b1074b494f110e30f93b4c74783fb6620b377f6d500b18705e7f029034d41409c3bd8f1bfc2fb0d45e472e47375c4c1af4840ff067773484ce5e4f7ae7c1061b125c46fd9ef72920b7bb63e2d247ece174b6f7a80b58cec40c323542e1230742489278f46e06053645db9037c7a65afb04e61aed8fa953d38cb2628406fece4af1de50f24c134eca1057f69f4c25924ed63f136bf222555f927f1be2cd99ecd7b1e6093fe22c160d815b8740f668daf9ab4f27e21a0d8415bae8f26eb29438cea118579b11b7ecc611253f72a7ec1dfd702b8f1fb9105987117133dee668d568617d9986dc06e44ab9a5c5ce3b73712c11247971a078c020d79ba35c5f4fcc0d0de02b1bf7a1629bcd4ee02c65c2bf82bec4206b1546c57231121cf2ff5d08ac7d7680be4751de958dc398d3faea81f9d293eac1f5d46470dae586875d627947914c84f983c7c59000b6bf6ee042b6299f01c2aa91c98c9ea7e6077a3edf38df5c7b5ea29e5e38fb139a08931e130d2e673410124dab88e51ac20d61ae93e4b33725054a2a8b00752402720d1cc16c134b942bc7fb89e5f95b22499a2ca4d925320f5d8c2693f2b002ef21b6c048fa581a3bdedce16cf8f7c7785092578c985bb13c47a871d899016944f5553d2b1c1e197636443e7ada292dc8b546408da3f8f2401d218e0e7a17ac763a0fbe0b91023e2fe4f3377f006f4892de5135582135bc308da42f6b40ea0e671a5edc1a5c2ba5d359c708c1a947b0a0af3e51e317f9239d19eefc11630a5ca475e12a1ea42518fca643f721c3f8e88dd9080cbbd89a287a970abde19a9c4ef542f974e21f96a155641a6140997c3da207c77dbeca44e7acbe31d34ebd252f8a1cdc2cae497ca6d64ce9140c8fce0723af26c6a18e82fafde825e3e4d02faf5e0ec31c4dc630348c1fa11677d2554c24cbfb3804cae7a065ff1d6211c42675b1e8b41b92dece9fdad89a99afda3427e22497b4dcea66ce849b2db12773ed6a46acd1c1c26909b024f2b4bb1eb3584d6f7e4cbd84df0cee6812bab5f4584decc1dc7c2b8b8fc34109a9702123d0a95fc0c48a87000b86e498b47d20d1d438826837bc4da5cf23199bec22dfb49d6e6571c8db20483a88baf65e206d076fad308c1742c3cb98e198a2ad3cc67831b9cfb766d6712b378aef9847ae0e1d7ced2856488631d77471200ec125e290381ccb0af2c412defee7c5870224d2cd8131d3a37c97a4e7f096e6d6b582e3b4296682f623d4ee3b6e68f2dd40faface596b3cbbb1914f6ad0e8fbeb34af363359a7b730e0663b9135aeb1aadc8502f7311be3e877e830275deff500f5c83e6a2d50cc1dc46f533886857e0ecf45a59cb0b3118f3eff76229ed168b92140505e81646afa709b8323f518c1dc2c246a1e0c58208fbe6d319bff3b7baa65d89182161277e862ac32e557552073b51d21b7997e21296a8284c9ec14242195c822c95eec89d498dd1f2c134b69ceadaee1e75d5022725ceafa740cf2506766538c5aeb4c3086cb7a48bdae65f9f846397109a9fa0bcf578fc45cc81c3404d46362df18c6eb6518214e4eb9dd9d199b75fadf1b4d71fe8b17d067334b1d8ee3dd5cf2f1a1dab9cc7628a76177f096f18d3a232b6f90ddf0f9963d6a42af5118f1778bec656160df2da2f78589cfdb2026f71a8c71f0296c78e4da34ac7b36d31a4c790f1bbf4cb748981abd7b618554334cb3db45f03e8ca9bb22f31ec6c93d22791de6d41d91790fe3e41e91bc26ccb9db88bc12c6d9fd22791de6cc6d91780fe3a4ef54698710990264d9e697c6c5136c9811f46d1682c65609adb729ec1827d5c9b4cd4680d81a10be8d00d6a052d11d84cba05f8823ee3498f8d500b12b7d6bbdde3c7c446e8625dd70a0545e91d64d3a625954a9033fdf5b6c3968c91be4c5d961c25261f414611c0747c86cc0952a90940ff873e0c6bf56ee434d50d410a4ac3681640c621903d71e4da56fb31448b98b459c01e3833672545beb63271f5c6e9c1b46eb23b638d4dc4d12f00e5a68c850395630cb7ae0a10c93f4e0f84cd00d902668e0a8936b9319f94721c48463fd0b67f943c1e1b61b26074aa9d30afc12186f343d3b24634f5a046d3cf8c08e6f87dc541b08524666ab44eaf80e8432ffdd8d92f07d2e00e996b8122e708051367ad924b835d888e8cd81076695aa4fcca2ac9c01856c6b078661169dc836e5282508b10638ac09f4dd7e2d230e276a055d0cedd2e76370f248f012076bf04b11a6c5c599f7f92ec251c5336e8c467143ee48d155debdeb2beffe85720073c706c0dea73c9ba00f1b4044c54c4dbed20225cbdff2d1e45305be15d87cf0286fd15c4c7aae3514f0ea3f60500b92693196eddbd54614f224fbf4ffdbf5709175eb8977afc3805822a53ca450e17668941c085185f8ee16c3d850c1bfcf91e5f8b0061e20e38ab60b3af311009a51a91d2fa5cdd8666d01c9695f6802aeb6ea0bffbc84044a9fa4f482931640499e24747689821c02899ec998817e53abd8a784fe9bdfb5f6c230d468daaa27edf6a086cb7eb0d82d802632c152caeaa1fca6a58cd7c155c5a02e83be9fbd2aaf508951eb73f777a432abd3d245c2c1721459701f58db9b538d4cf24f6e9792e2b0dbc23dc643d5ed4fd8ff91ee1ed2675ffba8d1e62fa2c2eb4da920238158eccb0688059f036d7a541d7656244821ed541d6e540521087cbc0fc0d0dea73d58e58733c1617522d75cd300a57d97408f11cad7307f3e703b7112b422b6a5dd4c51111e4b3eb9faa574d9f4e0baf45cf6a6162c8b50f46eaeec17d9e5230900025fad8b91d3ce15f76f1471f2ce72e8d7e7b37259c7bd26ae643d8d8e3ca61e799cc547fd539357a8b894b95fc6003161eba20bd9a525b3b202f0893e1df7b11eaad0893aefc759cc94692d49763d7f387e6c29547958c1814af1c405ddeed541d33043a5a4dd7b047721fd68e30a6619815f1eeaf0f5e9fa69177ed192338b35858f257e1e36674180e5bf2464151ce77cd01ae0cfcefab7964acdbba35dd3310d54023124ece2bfc878e7a387938a9894ee28fcd09d7e3fe2119ffa8dc99388ad65513b5dae8e913ded5ccc42cceeea9d89e31c5ca8842282df06101dca5babaa164c1826420036c1cb73af34dc3750729b197d45c1dbf85f3a5597724b1479968be992899200a34ac07509b6e1f2f514f6a25041c5e1df82677c188ee8d0d87e2507a7c85095a4e2189608e4183fa130928ccd07ecbf604bc1d3265a073c9eeaedab81b6a91c7fee7b24c5365f2404e67083574899da52f5d8228efd60a7571daeeb0fac494aeefb97105a0a37d10a2c4048d1674e6db911d6a01b4a33a1b7741c032971f4745046bd57697db43c63a0f2dfdb1047aaf75626b81c4e6b65ddb9243ffbf705c99f2e61417f547f07ec1fa8b8b01e118fbdc44044fb07ee03c3ba004e7a2a41bbe9ddaf4a896c46491809b153815a705f3d2e162c9ddc448c0ba26d85737f47c82fc3cfaed5fc5e02fd7f6016f88a1e7b5130671eb3923a498f2a54aadc757a9c8262aa05be3ba47a19fbadb61deb60f91277a6830f6e49d7b751dd562676b8e5551cda4f52316ccdf53f804070af48264c343a50fd3f81d5e56a346b8e3c3bf8c955cd527f896612e28293e3172709da488dcdc07e6588764501d0b9cf79db8413d10a235b52ff13b06593a6abf236c40f40a6302289db94a24e48e47d25ccfdfae43ec1ac8d66877468f4113467af51c14c492641044a46f279d09701ea1b4faad9e402f76eeb3300990aa30b9a6e50a510ae99dd8c9f2b4487e53ef68c7f0299832ad64f13b43d721de5e1949d3c632426cfca2f64529ea5cc8e5aa68294e41e8e853e334d1b6e7ffa2a0d5773ad75b050e9ef9e3c5be7e464636085e0196de5f769f373d3a6ca1dcd97d588ca5c27720ecb11ea5277cdd2de4545396d57b586eb89ac1c4ad182825db6b0e4707520834bc8848649e0982a0a0d8baca93bd4fbfb1a1b98b18dfebf9b1a0b93c8e648b76dd4cbe6c17f0061fb8106550942594d39f6f82c00d0c7d51e9d477169eb664984321adc11a1f1f698d261671e5bbeb51a2eab4644f2b75fcd30434adcc95a8c02de19ee6b95064c765a1badee94ec86e7f4400971d164361d54e4d6f0fbeb8c18dae15f56fa1d3989e48972ed0b0ca2a0af6c9cc976c15aeb10addf123b08d612d717b4242e676c79456f7c543389d3b0bec1aa3459e81c537a1121b2ca19ddc152a57ea1d8899a9b77f0432aa7a3777ec8cbeec829141989699703ee2039c7dc24b04ed92cbfc1918d54f465fc563232da602562361152faefc339375ff70efed7d10dc558f4dce17b103823e0d0d3aa14d10e66951b626d230f88269e70513995f3b5d280f469877615ab29cfd4bcad30ab08594a218ac6b29be09580a54ba226640e7e403db32156d634825a2356e847e106bc4602b71d2bf76c38d9a662a713f8059e1e57987ad9cdf8ce01df8ea396f503943b21fa5fb55f9980b36d9b58a1c29707d4cb1bd8a1da9005c3aa4702c42765f6874ecc4d3388fa6e056b52d62e74621b8146b6927e0f2793991ba666d058482073b779d492567fdab24e9546a7ef22a9b81a2a189146d525143ed1b547a9f49717100244ce7caab2a18a5b80b6c379029e29eadc67d27ba7dabae82c856323dca2061f19930c001549a74a07da8e4948adc839dac09f5df301dd7c62dd31cba05be7e48393674008981528b0713b0492fe0c7c5d25f5114808648854bc431c59f2b614b25c5eb440347dd7324b61aeb217062ad9462837f38bdd9dece568bbd50a65adb7878d3c0f30acf474f1e93c040703fbb2d4cd804e37cfc62c66b53b4a549c6b17b2ed85b807849fccda5949e08a001c9a266a173d9ac70bcdae77b58cc369900048d9f2f09a75e691b3f4513c81abd19e86278df8a33722a829d15771b64c0dda5ba50d6de2fd93eb992fe888d9fd2647975ea7f23f801413475aea4b73c12857621bb9eb481a71e734408d12262f26c921d3f7835bf3cfe3d6e729ac69f58c7452ab6714346d668e88189764080fe150e079999c02e12f46d7c888885d33d274128bea38010bb56b0b2d12a8e6945f2697d4fcb9d1c38e15dce5f11d939fc940a1c292fa72c057fc087d7c40ef3c091e392d448f62755b4df091751166db77a7bc03b22e8337e0f3b4b4ce44a1ae69a9479e3c8c83446925191884e0cd3490a6cc14ed6b3c861a94f07a72e9a5f73fe1acb70c214808f665910a86a457f302698f88ad0b7862567b88b8017123b4947db3887dc73fca9c1ba5c23c500119906033ef2233b37eef6e9693ce11c6cc39e7928fcb67472cffdf060ebf72b0f5b0010ea9f7867d07c8b047c03c4a156a664af946ce7690e6f766a5cc03135d8bf7a25d92e6638fe04d4d89024ea659e73f88c80c01917c6893462481231d0e3bfd1e312cb9f2e18bcb070a6f99a4c0c64ff9b42f01906588900304474248850e108c56f50a37e41633d4d7e7866862e0ed70d7ffd747d38730754ec70d00f26a5dca0ab98a75b0b0806cdb9081360d58176aa980c4748edbd7954fda0039ea7a6de082046851196586e281bc7f9ad9871213ec21dc614287cd323de986604e46e9d14a6f877a01808670c30103832f4158883ee76e5019c9d4408b3e77d19c09eb0d438002ca4bb41b09dbc158348b364d6b9e2c58d2bb528ebde8a95d3299724741edda6a52c37e958350362b39fad4af2aec91497fe9ed5a886fdf407601e9942790770df0810401648274a5a6acf9bd71483d38813047f3ee39332cde536276c952c409f5634ce6677289702e77df98191a79c919f471470eb33d494fd98cb5293acc6e479461a8086e426192c5e2757c00ece9b4669dd8a7ecfc6272b378e4428f21ea6b2c1371ddb9d6bae2995aa7ed842ffd17ce1133f0200db38e5a9631224fef0d1e9cb22c919df302f806dbf44577f466d87fa2dfc3bffd2f3e00221eac9e156617dee777cf475e3bdc089ac3119a36488ac76591837644ef48882521af9708dc169a571fd9592935aba353117dc01b59cf9d04d24e86db822520d773485a7f50e9ae60a288f448213f32ef9a8976cc14109c7d619a531cae2712513a489ee18cebd75fbf852a657a8f930f15e1b9aee6d6e2d7b5e110fda1ec0f1838c31e9b03902779351734427e8a2558fe4e383b50bcd483dd52150862b758df169126009898ba221d02e3375ea46d59d7a68286f654417e2f90fb3b3c86f7ded9de3de03c4e07ed8bba379bbdb4b77b617047eaf7f804e4efb8b4214cd9c3c333f905322ea3e5d45904ae954c71df0aeca48150e72fe72f62b31ded1a7e605662cdd974119467c28dab15384b97164e66be30b8c7a706d037885509077d6c60b90629bf6e37b1de4d0778050c0ea9e1bc013dbd31411101dcbadca17748c6a9e1c2dea4e3fcdd19488b6c36d4521337ad4c2e60db7ee1d47030b9a9815f4f1c4fa9ffb039acab27ce2d3d3219ca2ac1e8ec3d8393a5547e5b89d4e88e9b61c84aafe688e829d5128d1bc02f31dc5515331cbc8d12edfd9fe51c5a0ee70bbc7fd2e97318ae63b25cff77e4f1426021a44a234386f2dacaf95e634c92743e3281b911fd573fbd842a9810aff97fa67c2a6da0c5540bc72527d4f1d402693de59a2c522aacd147188d530dfb9250a0a79c0cc84e32f7fed46f1e572960ea188b55292b3988205c45c6043e51a71c3e010a47004346fd84008d7debc0b7d6edaef238358c15e7692ad3d7b759503719cff2db26c07136e0068bb2a2a52730fa9003bc0f8c8eec2c7ee5e42fd84b1527ec06d45679cc6cb9d635ce80f66d8ac5d1746bc7b220087e4131c063e2ea182e4641d97d28e83aae89cc86802e4c130cfcf3c66cf164d3eb76f331c9f4df697220ba241b04cf7ceafda9476980853c046d5ae9fcdf0c70ad5fa773750aee33446f03a2f1dea504acec958c6e078178dae741d4d0b2d22be3e7803c4bb0c8a6ed84fcad4a81f32f160c14599a2becfe788b5cfa5a63910d737b49af490810255c411ca7c12a4d853fa25883988656989043232b928aabb8048913fd481efbb954a68511812edc0bea808c8f9bc331a3238b1275a825e413e69333304c0333aec6488e5795b9b9781f1374405015c982a930cd1cc7d08a582ce3ff146fba5228128be5e1a2a579bd933b1e56eaf1fcdb443b8b54978b6162e32cf7545aaeeddd32d949f9ede2eb051f1ea340ffcc6f7fbf35cc0995ea005f60613ccba96579fd84585d61c5a5ffd80e3ec8989da25593e2c394e6d8de7084bd5b8fc3c02535caf9f2d61e481b7b724f51c3aa1ed5953a6c40e99e5c98cbc6e725c7f36a9502552acc56f0d08a1a8469f7dd4ae990c62fe51777711bc18ff0286b824e5c09d73c271f63fce670ccacab398b2b51850e48e97b80f859856fbbc9d2537175f82ba00386927da80a1dd0aef3009ce28339d1de3e5f3fd1abfed2f16f1cf240ad609e92ea48d9b1edf242c3033ce688075536fc34a68b37cb2b88b78af20e4b112d3b129056274c76cce436a9a11c35a92c1e1b53012da96661123efa9ef6d7d0e4d7eb8fbee8b7e86b4e0074a0b813d0cb75aa76c604ee3016826ff516ee62afdb9ec5b97f8b462ac6dac2bc19597e34c4c28b4525118d5ce19c7de467b1fe15439edda7d87649fe371d8cdffb1636aa85b075e1b177c548e299b0439ed7a40a2730d0d48eed4d64d9ec22b663d16c72e32e9520b972bd8f9c13c9b118152f559ab86e0ff0747ddd3af564168504beb5a678a2656c71f4b30848e2c05879853c6a10c23964e04ff831af81f37b23f9ee9fbc7de9dd7c5cc3541c1aafa5416a13a3b3e6db0d72ff00f7983634348ff71e363fc5ac6028802b885bb06fe8f7a11e88a14929dcadb1ef51a3babf69a389d1465f70c60c1bad4e6870427c221dac7c102a4aad0a9fda0ad122a1e5fd3bbb639c8c5e8bb9e39d90c27e4d2abede7f369fe5471594ad478ffd287f410b2eece6cf8e4127f072c7aef80bd2d7535a03ee1967a5e4fbf910abcb4128c434d1624def7aae390eb33e6ca03b20ed5dc3cd49c1a256d0cb70d912b5cf1c1e3a11c70f5d3e003856a8535c84619890c17a64ef1c9ac0cbb94606ef14c4929b29bdf6aa766dd80255aad602b4fd7d87fccbb0a2ebc66e0ea0633175393ea7b852f382cdb8f160326d49beb94214c38a66d4c33375a14d91011c40a041ca912c97203a6fc719e208dab6af1d2c6e57cac673b5540e718d85b8da734db1082ae6aa8a117e130c87a79bbdcfad43b26f12f20ab69fbcbfdcad40b1deb1847600e3aa8570fd722245bff112645dcfafd3df29d2763a03336e485b2bc556e560f9b49865806621284a5ff16e762ea5bdb5c415e6ea349fce03142aebb8f72fce7b6e2814d565aece4bb601fdf0d798c405de6254b83985b4a298e02c9c1511635f933f017fba02b4e17ecb4b3d5a9795853941556d53c941abc14bdb6288a2dd17ed62251379d79ae841ed6c7688f7db45c3b8d17b8a83bf25d961af97068220070de56b314278bd55a8c70480a6790c589c95352080e20c86df3d79a4757d601b5c45a53ba9678172dde426dec1ecd0add12a0db782a841ee1510157f9470604e5e2a5916c44ed4ef0849aa031f83284f6bd532358b75886cb425712efab757ff6fd98ed066cf1c20a26caecbf1dc4519434ed85b27acc1b74e33e2b3d7026db2f67d40ab1a3807c884002122444413214c94086142088912214e083191048413202692887022440912224c84a820f27042c0b454ecf047825612d9c76aa21595b36f4d784ca8c1f86a69e4f33ee3662b492674ced707fe69de015e9b6bf336543b12860c4aa4b9d40679388ae7de1e8d62e5f524634aae8868003a9e127d0c537d6094ada2fffa1169d36bdc352f3e436cc2ac7f8de4f46b32a7addafddb727d633615f443a1ed360bc6fe2afad9dc3a24a8381472ae5bffdfba924718761d7bed5fdcf8c700ba2ed67b9b62e852117fa32cbc61a62130da76deeecc3f71c74d1185b58a05602a421533287ad94d2167aaf2ad64129456cb565b3c57d00000af512746cdcc34a6b51c75dcd426a844eae403af994ee060fddd665cca8758991ea4fb8fe2f1e4a9cf600d1824b9309d14bb4c43a0dc1f45ba3e1891bca6618727ff6e6aabdd03e729a11504904405af9bf65e8ff14bd8145777905bb3676a209cf463e240a74c63cedc23480948425db0786f1b08afa69f4aeb4c051f8fd01d54c5565c20e29325b0e5f5dab9d915348a8084a9e57ba0c073afffd325818c28d2d9464f06fc212198d80b90604e83cc69204e5e26644f7c13612af524ed76b664e79a97072896b6cdefb812e5adee6cf5d3426204600c6e448ed6227e7a8ffd016ab3fbfdeb73ace3e37df7cb9a8e2f9f2e939bac01c4dd59074f24bdf3ac9e7456f9d448aa847883a880a456e2c81b7ec7a1eae67e26212506e08e3dba86c806f399372a77c4c159406aaffd42e14cd52eabb9756b4e63ad09f204f8200904d3ceec1e5074d2a4a21f578cbbb73e900da8c2dc67a6ec03fce913562d770846b1788006df2ccd0c3c1d10648e36cd0defdbf55b095383486f82c30aba7be39bfdda8233725adaef073a0a0c45987fb346a68c6b174723430246c3b488007c9cccda551372578e49947868468f16abe090cb804a3166a8293ea6e1d663ac004626760a11bc8bdc4484e769adbf90b58a44bf7322e311db2e235df5232d9797fa5e231a0505d29b45aa37a43cc747804e4885029363a48d1d6ff87cebaedf2b181db7b6b1b9f7289e0699a00dad99268ec9c6106e9b0b55990403a7d1d0ce2cd2e16bbd44b3804b64ed3f534cc9f491882309e2c6c5b994bc73cc17560d765b1209e486da2898b28114033c7cc01cfd47e27e93d1015ff8c0e7b5c26a6706bab807abe5a8e27a5f99becb2f87f59eccf91de3c015f01447656ed4c0d5375393d3a8eece5df90892fad9d25a6bb75e3458be2e212239a91594306ca928de8bd428ae2cd919ed88b05285614524b7fd1a2e1613f0c61a82bb1e6e519b34f7d5bad5f374549d3a8ccf39aa00171751649c23a522b8842d3c4c88070f6cf7470612bf30dd5381e73a9817edca83aaa41e0bf65331e8594c88e3ac612055625ec9ecece8ca723c07f6e9ce1af8c20a3848954a0aac78eb828e3f6954961e485e0b6c6a1ba972febfae794c04c690d45c0ba405f24f7b46e81209468a6ca5b3a79e49c17532cc338ca1ea0351f3e440b508f8159658d33023675209c818e806cd83c60dddbbc1d4aec0a4136402f78e96e443cd558ebb6ea57de717ea1261833e7408aa369db3385fcb747103560849be146f4c429b0f6c0d0e89175001ba68348b7be2a9763c22582127a82c0a2fd63a8258d51d3a69a02efac38a52569a0c023e9dba517eb4797f471e532ab6c02ee00d430bde8f8e859ec35a967c779902d02a03ebf40f754d054dac2142d21f00ef01c4a5ee19bc35126c1804d6772ac57ff69690928333be5394ae406dda36d0d9c9daac663e0161d1875b94c1ec4654fa5793a559edd80fe945c7cd530d25647546e314f20ad2d76f608dd3a79bf1338aa1232afad9a3458ebedb62ff284e164bc6c7f9aa64de8216e507ab205bcf0c1beeaab579412aee32b39e28a98e3bc5a99cfe49da64be4a01ba0859e944889ab4009aa3c6c04e5dbb946b234d8444cb1f8d1d93d510b25f3844c8b7807564d41d963376fbd9c17e90a3c67a0bf9f3cd6d8160a45823bca65ba141b59bba76c45186ec3dd0a62630649b9ecdcd4878af33c8468c974ed13e6488adf406d7a101e00cc6870a56bcdfabb6556fecd473a100379288dd9e5c0beeca104e95143e60e6dc3c317cc92033ffc0d57ff52068af80da5add0ad1f96b1e3c7c48e10ed51db086429d28b23f9c956202d70b7a831be6802463af9d53f947ec054baefc3b232389ec6e59f11c9ee9a64292409fd1422538a30a108e7c53d91bcb7909f0a1c177003fd20d38000e20e74a773213b5568c8c5dc0e4d1fe27311d880c779070f3803d86d04e2e11d9dbace7ef82de0b1a3505776b542cafb08d032652cb5d640275fde3df6be9da85cb8aca9fc10106bbefc58c90f7ab25b267050faf348cf7b3c756d941133a611012e0bb37ecd6988550926eb0e41f953bfd85eae25c8763ddac5d772403fbd7b7b45dd45eaa822dc710f7ff7f8831bea2558d69d21fe79872657e5ebb28e5768515b3be85300bd3c66b89cb0c14f4cf3baadbbbe74e32881d47ee32324ac64c6c68f1ff6798ce47496eda7f4316baa966fce6c2b908f89f34223b7db15cd7b3c40e96969006766c8c60f457b774d9e8bb9dbb156740d2688082f259535c802eafff14d421ae8391e958028256999e2b357a0dda3792d5ccb41a00cae5d055b1250cd5c23831b71f7d57a37952a40cc30f148f9646fb1ca16f59b20ab704fadd7b8802efc2316fa06edae772736819732d8be2b4c75cb78dddbb154b96a52d24b820b74a3643d512e10abeea1e7d6407b52012adef99cc0981454493f481497dbf87db42834776edb45a56d2c27195d08f4a54603e1720e1341a2f35a17500e7b8d3921ef71bdc8b1a56c6bd11566865ff9fa602384711a2e5b08603840787d24d44a8ba93901bbfec051757e753030541cb01983eb527488f76748875ab08a13e1a2e9e23ee82dc3be3270885bd82ba846f54710127bbb0bf3926570e023a39be38d0565872844837e46a62f1ee3726991d0eea31cc19f05896dcec2c128982baa0a1a22e01450e00ee31c28d29f799b4ac66f7dcb07a841fc4b2f3d50a940ae97e72d87260ae42c33b1628453d93d3fea902525698cdf91d558d476feaea33e7d9e1adb926fdd758733fd5974637bcca125418417e319011c1b1b0ada395d100ad1e30262f1257b0dc10b2fc0759f99ba1445260910cea87ad579604ce24089470c3143f3d1f8e1b13137a0fe7dc4b1b3f59274ce90b065e5f904d4a3c09579c22fe49d45a0bb50cf75a7423d128c3e29f9feedbb54c41bf4e25261e666e7ca9b178cff5701a3d877b49ae94318b704cd4c142a0402bbe4f2811faff11bd5d4b7544d4bfc8d6a8a24e4dc4328d02746cdfe74009cf56904544b4f8fe6148b62719b93b23e9487d61a24ff374180eb533478bbbf74ef0372d66c2c339ab96a79713dfa4ffdee6dcfb9db7dd5088fbbae2539f081967898b65fd1acba9bf6ab329613210d5082ccc7aff721057b442c35ea5a237205452e197fb55870a6a876aa6fadfcdf6edabf51b4448f3e10bc2166ef59f1a40830d9f33882028ce03cb3524f50103c72688a78d6c9f86027a22d316f340899f8a87997bc9a72cbec7235f40fa8738c353acc33ff9d24644f13bb6121064d315c34a3f7d6036ef8a67660be4a5a04fa52d2fd96860eb947b1a3dea90b1d9ed640116dd466362ccdfe94de4dfabea59ca25a8b8827a4c2c5fe5401394656313d5f9b154e7c5cdbc58ddf48896e00b68aebf8df259b55f7c8bc051586257caf5b6e9dfb059fc70a5d96d7a1b96629085c22111a9229804359b1d9b71e2e0dec13b79f09a468c7ad654b4fd2815c791bd78ac1d1b3b77f0dd72b7036d36c78fba6ea4cf6882144b115c155b8f18451db187c4df78fe51caff3e481dcb9aeaddabc166805f3689f042f979890c77507f97fd75b4fd76bc63538ca37bf290efa8285b806fd74155adadf28c801d8b0aa48486fba82299721cc3a5599b44ea66e470934f4fe9fb98b21106f2292fd90248b43e11012a1c4d0a1a127180e86c1e47f586674b441a006d62a11d9d85125ffd473bc5a83c07a0f6d727e9dc76cd62f548435458c448c2bdad16578c14090f399f1fe54a634b98e6ad234f841ac01161a146870061ced089ed8b64a7413406c267ba920e4a4765bde4348266f177e2876c231ba11f93abb044acda3c7fadc3f515ae16654219adf4415ee823f4c76942a8775255c5559921528714e6a2e89dfb067c80a3303e0e5e11891c6c595f6f39fac8bef525eb7db9da7c2facc8e3bba266af5f47fadc417082f02948e8b8e674a4f3f699ab81ff8b76db3cf5cfb1010475a18005ddc3343d172d2d980f0e3e69c40bbb06667d1f3f83edf4c16afccbabd1e19d52a6869eb1871e061b34c222740684cb96e035295626fa83d1b8b94d1b02657da777a4ad851ad4a4aca073ffca998ff506954eff4a6174b12cb23fd3ce0bb88e6b19599033697ab6fb2706d5f6c95716f51bea6191f27120c899b0a47c8149e8c65d7e5c5c588bf81ffc92aa832d02080681194695ec0141e842a2b8732bacc637ba84c90cee489b3497faf5c214743bc27a36ab256f9481244c12a4687b20151c05f4dc3f7df98506009fadb93a1224c53ea20912a367c9bf0099b3deaae4e8810a6e52f3f32f0d6dc0fe879d2601c64e688f475bda00cf756e8ae5712d16aaa484f533faab80c2b79bc27bf65ebe68e7c79081ca63bc0a76ce68c009e6ae55a1e4556f98bc5a63e1e6e0e96806ccc3740627b3c3f5b6ae12277822edb514a8ea1f85648c66870d4c452279ac94063607f342203d92eabcaa84f588aca10d5879d5af194a620e941cf9f833230124ade44d53158a800f71ca5a586084854a7ef0bd5627271f021031bf2606515646321602af07c5be8d63e83e68d40fe77de854ee5e3fd0244706608b4776dc68abf3756c3132595b8e07881cc483b1ba43548c650c01f50ca585e7d5d1cb4e55bb1f958791e5b339556df8b6789a82688dcc702bb63b0c8d56be7e8b7a9d6ec865866044cc3d00925089ee913c8b62f838a8ae01f534997b0ed0fe8941aa254639ee1bb1e99ac9ca499a075e92cb40d13b1e8c58a494f5c21f98fb4a00b97335973a5ef9349e793cca5cbbdc3dc1e50b4de2633c3a3e7bf461185342f1d9b5e9c7a546b92b42070680b0ac6865dcb974174b75e5c077117cff80e67086aa19c0193a568e199646bee7f852f21c965a3f94b3e35e874820c1b8be99cc0724229472487278f345f56aaa1ffa92868f3796a0b706d6cb95833244a2976d40fceeb21486591d781a7d52fe0361f52a81f3903f6d606b78beed6b89aa099ef47fccdcb15c8026f9e9219c46c448053ccdd49c5c447e254535f2f5738a76a564801d37ee6795c61ebc3ec473809d4d3cc3b3a50fb893c38bf6ca62c8482521861318a5b88674b951c491d8b745fc06944f3d4aec03432bc3f6102898854201dba7edc78ae994e165eb491d7949e5aca1e195b08c4427ac32cf84ba32f755c47d0276f5e229ab5620e33c9abd992df0143cc29636bf1c640c70d7e8fd08af668fe5d0edf028bde8bba3619faacaecef227a781c1528990d2c04a1a2bfcf6bc5718df136f68bd6919e18a8a96531d0e48c83e72e366577052504481092c83072884d290bf86e7d13e74bfce922b92e99a09810bfbc56ee2f50b21c28759de56cc36376d7a142cfc77db2d436ac7a2d971bcb1cd734ce28b3a8f59ed689a6236330c9ddda5fbe957f0c39b368b92f36195405c56d6dd8bc9691e27c1ac95e07219870ce95e41574f8b44b7b64bd0e1a6110536062a749e8826ecc70a6d3167856091383dc2e66e2a70ff9bcdf2892b3dcbe40a750a27fa70a96d14f8a4e03b8c50d9a591bc3dac8658f89e5264cf5585cd8206a61e5c71d1573f53cbae33b6bacef4d5c87f7efa86f21bcae403a08cf12c10f7cc90b2ab591075b4d37405d1a14f154393fa466771fcedf7a8e55306d697561e315d8528ba8258c25e124918a3c15a88a7466fe09cce8d0b7224c47b8686f164d09825a9895eb28138b42304061a390c0a6a29664a61a8b3a48c1319e0e54ff1ab02e13c51b037195bb6008c898a48718648b40a613094ccde6a80662e9a64a2bce07ee31e6b3a6d6a6fe0b12e1a7a413f7d4a516084e4c14d69bca152ec9aad3201c3257b6ab9780b64a0ef0af0ce9157082e58094d370b751ff96d4217baca3a64c460624d83f8efa3126bba6700d976bf742bd94dd1bc97662a1b48f45f7744421f3c43df282717f28fe4c93a7e138d6dccb3be462b3c6eac3126873c84e0da6a45867f434209e718462fbeea0cdf03ad7fda7aefbcd5e731aa4863cb1fd0a37d5df57e9f16508e62fad5c63e3a6b4c571536d04c572388bd693eddfd71cc6ddb85451589464ee0b706dcb8c802001f2384537fa912d77d7cbc11a6465108e0a3be71b37995671ef59f18c94e10bfc4b94aee148557262f2b09d4fa360885edcb6845a9d3c040aefd837baf9f325b6cc0cc7fb34cac8b1dc79d75a2a16b5cec8b15de2d36a59074af75bc2eaba11a4b7559f65298574922b9eabc0d602e40895e81076554b7158aecec69968549457987ad64fb3849a89506e7c5f9b0a78050dbf06bde8412f840c6bddcd8723978ca9c4f8a8e6a91f1c942623cc3b5ef5d82083aa0db69c8aa57a8a5afc489f1e9cf18af8b72d609e4cf44aefaae1ba52e75251bfcebf556907149f5af33e3c8601d795dad6f0ccf5feaeea52cb4110a5ffc52448d8949507e48b9c0b321fee9eb41fba7edbdc75df6933ba311621173c6736874c8020201dc51feb528526e320d39a0066e4b1244872642ea923f7096109dbabdfa7a2e0bd964f53417671ad907cd0d765636dfc670b8bbc8ad44908d9f015a9b89027bbb0263ce9868c4b3920d29760dee987e604519ebeea8a5024b831434f447cf808329751750870d4d7ab620b2ce20ab80987dcaef6a1d1bc1fa6aa4ea5a9270d372e60d9b80a532f2470f2059116546f373156802110d3b5fa257a835ae28763a7161d01bed0a9d9a7144dd9da1d70d8304cafa9f3f70371e0030d27692dba50fc72cb841e27470b5a613ca6decda8ad1bc50a690e29c5f10664cb01bf16fafd23bdb9ccf1a63e58834b4ea3da6d62943fc1c0e11690bf3c9ba4a01e54bcb849463a25678f388e3b90f850cf8ca9c36e4b432677b95933e1e0998d6c27d8e6831ce1011f340f4c5378d0381845941f09ce580589d3dfea348cabc4acb2f11b56b31563c9d8d0e578910046b6b641afa0af97c8df51e0d8b57b17b93518e16f52e72fb68655b8ce87632af26d6765fb3ecd83160b50a154f84a0636241db183a1a03f4d4d1dd2aacfa7df170e704dd0ac6d2be3bc880ff560bc5bf98cf08f1eb68025ce82d7078af1d6aeb99bfff66fbd83911677664f6c5b808f91beadb730c3c6fdb46a9e580da11d718ccde7b52e6c348e60833ac38fe566b2cd8817d57f1a81ae6028a93ddd44a7f223037d2abe7b7e26931396ca8d2d07f1119a581c4848a6d9c3150235ebc517cf219924f83e5458cdbdb844951c96cb6fe5510b682582df528c8a8ad465bd371d7402eb09d8a32d08bba7a5ab143966956d5de72d1004c17a94eeeb6f5a75c7697be650b753947ae0851f13797ac392fed15131c4030d9040a7bc8b2b35854bfae25b4ce34f21810e28016193ec32480cf806460231386ec67126a92341306b7c886ce2648018c152189bf3339059dca41c2f402abec11fd6875f9691b7a2e45dbad3f5a7635d585591597a550327245f2e5a36a5da97c03fc2ca73fb1cb06662dd36de74954f2742fb5e4be8174c65812cf3b9ae161ff04f601561e13ddca9e1843b5151d45d7f9a649e7e7a04280491a63a795eba025d36273f533ac923d4e672ff84c903875376957b95c6216ff4f27fc28888ace6235ab6d89222386f06c1796ecc82d730612d2ee2a3f9e36d0e77e2e319a0636cf0b7ad3bb0706c6fc91c9a4e305eb0db9003b16f389710d45d67f9c3f756893297be3a7832a9bb7944191caed75064f0910b2587cc701bcd10e26c07a2261c71751bd3eda8d14598faf63b893b0b5b4a6642ee1276ccdd1298e224d5aaaf9e241f561282ce24d1ca9b905036ac25e094c43494ee1a29ddb8b89324af5afa6db5b971cc5034b47d161bba30b43e8e9e09c5738ac8f4909f453692a6fa1c44b3ccc63649a9ed12248edcba873bff85f85b950608b999b535f05fa92591483c610d85c215f82db343a9ae488365f90b78f76bb47305b83ce17d7439636f139a771c3ad85b479e3f495bd0707b1aef235f704e71bd45ba26ee4ed2371b652c0bb69ced7a478fd73a6562a78d3d1a744fe075cb3aa07e1613111a4c54347261d593c6f7b95a811f92e0143df3a63094522c602843c540672861d14475f31f736dfdba04f6d4797115420c06946ed2c029310779565df461b4806fb5e79cb6e5167b1f2b61b9a271b33b53c712f69f25a8ceaeeb663df5313e6877a9e3dd8e4bf02ae82e02435f20e140b25e420e32f818e0b489bc2f85491ce1aaacbcadbbc6a0130278a6138b6aad53769fb3f578777acbf31608970fb85c927690757142ba28043d97a58bd67dbd0ec8fc53ce541f1d38aaf00fea2234487431b0d03a13d9e11cda8885e8a87fe98e46e769dcffa0300fd000736354b110ca8423d7680eaef7fb7fae3d1367a5d43198086cdcf63a2222dbd57924e05e4fa2dc9731c13682c4f6691d3634f2d58974799e7f11bcab36d7cb753ccf46df938d744a0eefbdf1e77dcec5fae8487c9f555cf6587750012978ae176430498f0f3e6fde17a5e2bcd9b1528d2207180ba7539444697d19839d28ba1a50cc4fbb7250f3a00a7d722d9c8ef026fc2f95ac77a8161986018d4d8366988b6a8a35318be6ed494db9530845008e16a24de6066c73ff4541b8cd41ffc61f57dc5c97282f8a6de0c71705304437a7e17100e29195bdf520cc34f4e4b1bac8711722ba7cc6f8aef92fddfbef410ed48b78e1ba6dd4ac967e051caf33d6b22dfd7f6b65095ab1fac34ae0c124ebe2a942a385d5fcc3e0585faf3385148aac8b161b76a8eb73230aa61838a8530e9e98e13d3101434cbd767a9efaf1509d036d983ce4ef0a6bb8cc8c1b76a80e501c2a2e3eaea91a99baf4fd3c1ebf4f729ce90a35a3aab087f71870933cac7704017a8863da1e2346ae9cdbe882ae510474bd88fde85c1b3151dfb5f105d0a72b374b9f27cee5d1228eef1fc72c24a7fbf688a48deafe16b226d90b5510baaa25bbe4707b6217021bf0d5595c927ea07083e9038a7ce993c8ad9993b7eb001b95bdb50b04df1699d497e9c40e70067ddd0d10b6f690ad841f7bba1c3b0ba14e0cf0ce6d6b4a448267d91b110efd7f7e65e1913defe63475735946280ec3be76251a06732ad8bc3bf6fe9719da24d938e798a8a186ec8ac0e908d9adee46ca85a7efe3fad0d76a412e1d560458b2d0e77056612162fb91b7758f54c94977395587e76bdd534601ff7762b68f5e7f03007fa21868427b377cc66cab0ca793e0a6612a638daf8c1514bc66c381a448e509310c5c8420c15d45e8511d7ae3dba51068d95ff08fa2e7c7861b891c72113532275e0e336c55de76ec1ee2cec3848f272b08d98e4b136bac56861a7ff908a000b8fb634cde6cc86987b1191774f4367f537f07d0df3e517a69ae1e9928e33abe78166089c317e78b2f315663df50fa12f91c2b7eeba7536b87dcae3d56fca92b44b38cba7ed99d5ced697a733e8f93e99b9559e69e350828d15e7f9d0239c476088f31681ee0c8251d8769ce29e46812ce8532871824ac1cd07305b2ba5872adbe8290fbc934459f474091e37be3f7642560b1ae9926a0d024ce0041c7f84e5424990094fc2d8794c6008c1f14a94af9757600c576bb52221e5ef0f2b8ee439e0ccf4ea468e9bcd844a461affb34612542792ff8b3e4eab4b00b7b10d775a6b02778e80142909f61d16a21782ed680d49f34103a56a600b787fd55d5706602cb360be2071eea090aefe6819912d3e12914566c542b00144b848274caea6fb372292836425d8fd93c7a2d2af1611127e0ab12955628d32718fb14fe455e4b2ed560cb2690404db6f60c53c6d7c0b80102794e66f3c2505cc492c67d0b5a96e1a9e671eed89eb0e060e37efa74de518182dc3ff35aa51bb020d261364aca6e32063b381a433610b47c4a7892a6b8325cdab8e5a93c3931bafadf0f0a7b7067f8a2d65653c54da138dd6e37cddcaeb24817e7c475a67aef5f46aded5e352820073174d6a456e2fc49db7f63335b0a1fefb731de90e00bed8417c6c462a54a111111862b373c8f11525f0f2b4dc1ecce133d1509214c4320172afb8b864503295ac389814a995a021af2a6636e56da8cdc8becf23c93ca933e4a6d654196d48f72390f709c44fa50443f872fdf1b2111ef64219a325810658afa604e466435a3142f6cad780d2136f1a2a1f0117e529007a5cc34e4e88c81663df88e864e9830b582cd02e7cd7d25329de5148f4e4a02530215ada3a0767a2da757a2a49913e5776a3914afff254553db640a018009eb00366362524c02d60ff5bb838d7e8ff2d30ca4c47584f5040aed3f2ce612daa97f4dcf63a2a745c64e686c57fb04dfe32241530f6918c5000beb47c438f4f0c5ead61aae880fe4f0d206d459c8f69eca50b9cf59377f64a437502e671d153482bafcd63414c8b9b60351defee3913a2f508817da548e0f4c24ca1aaa91650473a9946ab0cc5c8a7a37bc46f52c79b4926f657673e9442e87ae40390af886c614f9d587ba66ec47f6f5ea3ec42617c8de72833c297ec296575bbfea6b4e1b68649a26606dccd0d4bf04f9e0a760e2a7d20b4d7c75df34ad1afe50359b552ecf645def4af64d4edc1ca44310bf107e36eccb61d82301ba9c31b1221ab209d8b0f8e71a14ed5e46063739a66f67138a37329336b19f04c4f6957561f902a4619a09b04c7d1c849ef41612e9839932c5fe8fd315810e60e5a1a2979ec7b1400cec235577254ffcda9fe9d02cae1b57f32b90c0509f1e9f1643fa81e9a6b6991f7e53a14fa0e1d6467e371c5564a4eeb164a3826d5b6d53afc63fb070f8296dff2b9d3c19dc6f4d3f105ce94c5d87c9e760959528cf232e5506f658f72c6b9ba96b501dd34daeecaaa051fd20c357416a872fd8b52e321dfc4569f6c5a44b1f443fd944df3d2e3d8ec8d2c0e314779f6577358f3ba4d923611ab767a51702bce58d809fb5d5b36ff2b1fe6d25459fc3a1f8b37270b098b745d7c60b5aedd94d5747b0b8f4482c57268c315864a379991bfa05711e4e7ea45e0605ac2f9cc129f36031838e1f3702382eee2a9a27563a0f18e4c9fcc94652c4375fa7e4824865b7d1ef945b560e1d59340e07022537bdf04743ee9af19ee15d335731126601356de8da75f6c9662194224d749ed4f570488c32ee1b4dde266d7db83cce6234730895389a22ce1eaa42bc75fe406ec5a8ddd4857559b957dde199bacdd29c18dfa91f2b2411f28c9321981310c88d347929778e2d91659bb3f618d235d65b0b69d561eead52ef864f7ac9b8e33fec1cf6e84d96b3ab8b648cabd2fd39e87b62bf2f4bb033390c052473254a29719c293a79fbf11070d9c0607a2c11109ddfe7e264f9e05eeba10f0449c7b1bb2b2df4ad4b7d439e23ccdb134e8ff657d551f30097da4dbf701caa0b865c8c82048a9397bc56200cbb9a0ee5ed74182f918e40e941b868f14255b9e680e2f1af0886911b0189eadd10319f59d9df91641edcc6fa3ec939205f336271886e9799b9a187f7c762a254126169815bf3f85412d28decb6b6f7de52269902a20b3d0b3c0c595e411ae13bdbbe83cff28b079f2514ee0f3e4b31b88188582a9f113b5a2adf103b82a5f2095969a97c412c95afc80a04b837d64fce48c4b54291712472b36b8522475a20f205b820dccc7a9c4b050472f3915fb5b00ac59b650b44bec908ebe6f0572dac5a6011210011d6a502ae6e667d0e01c46f5ab92e15b1c8cd479e08018a7c1391d6cd20bcd8c4ba19c8af08b0fa26567873eb8b7cd3919b5d4fc4c8107085f1c80a465638f24d4686dc7cfb71859f1572be0927fc23e21bf91252587233f80e839b21df54c2f8416a296430e452a925346130de9c410a250cb130fe00ae8f9b6b3b370f3dc8c2081b6870b3fc9185f19b86d41e6401fc1158907d43b59b795e76a980e077970a58fba62e839b653f74a98825dc3cf4e30a257cd3c873b38fafadf04de0cd3bdfad70ad1835757f33cf97f04d4337d77ebc790c2e1550e847907dd308434386be69c8cdcd19bc4ce8660c7e849b6f926df0431afc9027e1042597de9be9c762247c909e9b83bc3c415ef0317a73ec859aee9ff04d416e26015b2a1fdea2c2082f806b6ff6f99b6dfe530107e1e066a9c208df24e4733307ffa9f04d36377f8f55b0f9269f0f73007ea04fcfe34b4524e166fc23a440c2378dc0c1cdf67d52f8a6efe67f9ac2b562d444bfe7669f27e19bf0cd3d3fc20537fff87ba980319083208f85f03709fdb8f982e72076f37d9bd837d97c909b7f3cfe267933072ff46e935c0a1e76a980780b12d8a522da60974aa5e0661892f94d1420f926bfd945b054be20df243f00977633003c143c9b082f519000b8b9c77b974ac54db49bbdaf285c2bf59b3cf89b3ff86c3d400ff4c076a9887ea988fe4db2c7cdb4f7e052a9b8c9bbb9c7cf13ae15a3a6f91ddcdcc1fb37d96eb6bdfc26116e16e1835c2a9f07200ca4c0834b4514e1521145f8a6206fc1cd163c05974ac54db09b29f87aa954bc05c9b502fba6fa4633fcd8f4c1cd1fbc08dfe4c1cd1e7c90179a47ac90376283be880de18958a01fb2427e880dfa126c083f5aa0c756c80bd9a027c186f02358a017c10ab9fd416c1052085780fa6fb682ffb13a0f829de081d8d97fe04107b61f1cf8f46ca0014f2d035bc1636075de879de077ecec75deda09feedec2db01550607594703fcd4e9005f7f7b0b324dc9f53ffc6c25e66ebc72cec72c1fd36b6be2c0bbbac6743155422c02d3b7b9001ca0d2cda2fcc51141338b4de18326ca106b36c7b0dc97f28bc77c277760b924b2447244fed16142e918f487eda2d275ca23922b946ed2078bf0977861fdb4190373b13ee97d771556c8a00e01748610324ec3e7c491c86727a1ef5becfbf087d9744189cb608b7b442b3eb0b45e229504e98b7ef12b559aafe74ceefe8f4ceebdc690f62860801ea6ef1659586ddac8a53d66105cb747af5dde47342af93ef29083e99e1eff393195e7df71e4e31b39e52da04531730cd3b383f996108b0663827c1acff2030c3f466fa4e7eb2ae134a847e6e82bffb64f6c940fcddfa034ccdd467f866fa9e8867d8f3ee93199edd52d83bd98227ec3738964872c9628830c62a328826d0781a71fec6126940c358050769c4b94ddd7fb6f57d054e541f0ffbebdcb8d49bc779d8cb9ed698e6175435e205f5fa9e15944f7bbe94b69ea95268ea8d0da9e8b586be8a83fdfc5c713836e535cfb097fd04281cc97ee644f6f295c66bb26bf37a41dd1cfbf961ccce64b5c2e48c4daf33d87d5179ed55f552a3f352f3829ab70a555f50af175458f10bcd96ad4fd85f55d8f34b4d95e2b8bb33990d0d454941b4a1264d0970b930a41c1d28e3031cb041cc18214d4e30a7c90a16344a569c60e37554022c60781923882efedd8a32dfc91319963311e7a6e2b07f45c2d5230b9e622e9611f64ef6a184bd1f0c67b6c7b06d75663f2cccb861ccb14421124528a92135e630699264c9bc917709f83dde65325992f6f18769a0cebe47e76e3f54efe7b4afd787d3b313bb5a9f386dabb51259a1d87289d38a1fbeaa0d2c2613a7c5f9f006c421ce87c31c0f87b30e873d448ac309c469574f13bdd5e77598e2908a5f277ee2773bfbd4820a28983ab4097af82c07e74626fb826fc7f5fd6af2f88335223bf8bb40da47fe8ed4bcb5b723356f9ee19b97d9dc549eab65f3c4ab172d8ecdf20910967fb373c6ee8cd929b346f581e43f1996f371e5c87f24ce87111727355463725c9cb020390a479e273be93997eecedbd47f6e1e044199f7378f83e3851e8e77434ba1c7cf7e498fd9edc923bb4b7af2800fce5b8ff781fb401fb879db91f22b6bafc97e074d14957ede91a27ff3b27b23fb9b1b2a5b6627f81ecfc204b7c7256a52d2e3674fc4c2ec12f5b875f27894125cf004707016c2e170580a0ff56aa0c21d558314ce3e7047d5e004f681f315187ee8a2676f8bc877010ea7a4dd7bd6b68e4c1c7bcfc29e629bf76cfdd013bfd6910ebfdeb3ae231e6ebd67c50fc1cf359ff51384591b0b050777ffb23906dcbdcbb6441bdafce1ee673d68d7c3fee4f1a62c67dfe3f363ef619348f17007f5c4c5c9b138921f394e8dd4549239e6898bd392c4d26a72ac4be5354fe335473394436ddce4c9b699e551067192243d6bd4bc23b5238566676a876a478d5705f6df5933cb304305555308ca88428b518ea00d9c1541ac2126f78494b0dc7c1808fac009f9c0f9c05d1f38e903e703276daa70869599d91e2738a18e6a53851be7cecd2e2c2773b05c0ff6b03fec0c4cca7fe485800cbf409978c2d50828580e46f514bc5145dc5136e07086e576d098409978c2730afbd08e94d7fc8330e171344e181ad5870fa32e3779669225ddbff7393696c512d5e8fdf48183e5bce61f2ce7c3c86b1ff8ee9f7ffef9c3cac0c678cd6139ef6139182c0773effa80f9c0617f58ce7fcaf84fde1933c67fa460be2385fd77c6f84f772120c3f46139586ee61a96cbe598a002d3508a39768506962e63b792c0723029d8142c072be33e947898c2dec9550a7b3f686389260d7794b14416781961ff7944365f1f6689601ff32a1f5860cb18637d1b5ba5d52002890b8c361fb355624f637d98ad72a3c36873873808fe61b54de2d315cec08c7b582e85ce02ed8a5a10bced35d6fb0b4dd9a36c891f867269fe87e5d2a599e0022fed88cbe504edcb66b19e1544c71091e2b0e6f6e77c106c39a4b68105eaeab3102121eb63b0f99ae5527d2536b75ed65512bbb09b0f3577559ef97f4b4b73a975f3cd359ca4be90bb74f20e80a82858a03e01c2ae0c542d0cf306da6a1fce6a38c5d595d2e405aff99334aa1cd8dfc8fc9e838e1ac65843c51c639c19e5cffae6c30d22eaf0428a1bc2d8a2a510bff5130c445ec3d1501f670c48508113552e7171f2a4a99ef0bcf2e5586d8f2e7fdd10d2a794524a7b3ef81d6565f336374fe0047ff045ff01ef9489574fb18d35326565f336977a6d7569df77ef8513fcb0a3fa875ed741add6bb6c2ec2ae70ba83e00a043d903f5aad966c0d0545113f84225e291277fb647f281f5e3debf69489c14bfbee1197c97e72c96e0a9b1555886c25ce236f46a4920e822281223c9f7ef7dc0cb06300170ce0021a484084f8c0a3e686f237927b84bcd124a1a2ecebbecfeb32705ca8979c1633706e355abc601f384b23ec9fd7893ebea8793663d23d11d91ac24003d587a0389eef98dedb992a7fda17da47ae4a5045f991c16484fd65fe9ab35b526b04872abdee3bafebbc2f080a15281fa65f650213d39be743f95a27ccf7a64c4c696765f4a988d0052140b881d870abbed041ddf719237ea3cec47f583fdd02df6b9686af0f5f9fcd67238a36e2275ada278a62ec355b43af9728c63e76db6bb01ddab2afa3e3355a2d1421de1aaa0f546d8fffd09e6aa100f15a7555d7571b97edb1b50ffd6eb9c25cf1eb45db83e9bb6c0db479bdeb6b2db479599a8dcbf5affa0aff15c5e572fde7a43e883fafbeceefd056d87afd94895f37d7ef755b36426e637315dc72855962d787f55d1fdafa2e6b933f42da1aaab73d903fc277350e61c0f5432b345de1d7daaad6655b2f8adfad70be2cf82ebbfa9665bd688b34667d68299025ea77e9ed4cadd2158230004e2030bfffbea71f7ed60150dae7039f7e9ff7f4ef664f687a1d9df89b81a2d76415bdd6ef595af77ddfb43d5994efa54cece4fb493fe08b0fd64be9a545c02b3d2a25a521a419b40f7d0f04254cfec9154c6d8e84851846164b3877194cc3c8220ba55e273300eac060daa234833e130711987e8f1c41dbe4441ef170fb0889b045a58123adfbc672b41922c91221239d7c4ab24488be111fbb5504a92b62cac31e3c670d83ab1d3335771a22d892799be0bb67f24f5ef09ffadd4be91e66814c60bf3ef59aecbb1500d06bb2c789cd3ef63737efada19b0f658f1e3dbe48e31e5f84716ca618e767364b3cfb6a33135cbf8785fd6a6673be5b1566633fb345b8e6c41e27f642f346666f7b4dc827b03d76fd57fdfaad9dae1fbeb4b9b407d7ebbd7ca1f9b2ae96156fa6aceebbebf54ed73111862d8726edbe1d562b96d872b95e692a4863ad8e4bad8a3edd6337a2cb643737f22626bbc1b9c1c1c191c560383836150707e785e36ae1e0e0d8c4249cf6c7d0411ca97fd07f35b334158d9c9a3cb4637de7843c90594fddc155990711e50fbae448f3a60564c2f4e9e340b0d6d9ec8144198448fea00f0464b3d56a0f0404641d4fa7034be940dc7d439d23c929474242424292b65b1ad13fe83b125223c146b7ba2b97da87fe1c95f5592e8915042b10910ce248f2077d20209bad56fb9fcd2a5d239ffe6c5697342071f326a79c873e08d63a9bc929b9346fe1d3f082e0d76c582e81e1f52c543b506d3a12beb2e6fbd609dfdd1243f8ac25ac276aea6e789b60f94f6695fa4f0645afc1e6085b42513bea0925faedfabcea16d8facffacd128b2ffbfa6a656ba87e483f9b9f49d7d9bc5e68d61775894fbd1682ed41ad0be5f3fb8973b5c2d26bd96e9f0c3e25220ca54f91d2aef3bcefa3e04a5a1613ee672db1c250145b33596d9f9616a4330beeefa4f67189d22651dc21bd4469abb43673b29eb4ccd006d6eab8d4a4b4322f5db8601c1c89d339853199ec465a9c9c9b9c9c1c590c969363537372725e39ae564e4e4e062ef936161d4b53a1741d3c201387fb6dd4fb3a902ae1fe4f26936a0d814b3a3a53b39984fb45a6ead3d5060681b2a8f2c5504abd5aada1fa414c35d7211f3d54795fad223ab8dab486a8fb9c73bacf39e78cc1623635f6c562b198d7c3255f4776049443b718a8252d4638a9335eba246151439513c3b474648446eac94b96a42a35636c3d1d16f972a86f4e0cd3123da24668a49ebccc2c33a94acd989c13935f9942f3e5492ac92c6baa64cbdc6380902a10d26cda1a921a14d14d3ae974d9bc9efe75ae2842effb43a01caae7799e37143eb5a1f7609d794626cfa4419ac81ff3b3c49e0784546dae191224e1ead2a7abdbc733326f60131964a75e108adeecf5c179abedc82043e48ff9d3f57567ba2b57c1f53e79d5e60f61fd5cad5693f5d9b1681d6fc046a58fdb7fc2db2c1bc5fb5eb434132afebee2af487b5b84edabbe3248f73deb1b48e5cf7b0db45ff3bc9a477afbc8e7e99fd935297370ae320895dee7eeb6fc911d77dff2c7f7df055bfee8de896de210f64e5ee5309db2972d2843b06e41994bfe23feac47ac6ffdea6f7ecafb9ed2bc39b8549d665df02a8bf3d0ffcfab2cab2cab2c205513ef182d16f392fca7ca6f2c9c77c5d3e23f6da68b359e1210387b469856335e7881b38784a91746d853c2344a0a259c3d264c63e08ccd515d1f7e06575fc4b03e64d915d4972fde15efe8a85bd3adf18c3c9cff345ed96e8d87eb3e663388c19bbb355d15f8ab8fe17c084a097647e09b0f5736bbde575fa0fc8725e65f12c7d4d4ce8aed231fb4b4e5a81d16335f18610f709bc9e5c03160190bbeec9489e7d7ec71e9d67838cf0866bd23ef8ad73c240f8bf3784c0ee569f127cfbb745569d45b1d357bce956e6c17b3dd942cfc62600c0463b1580cf67d1fec6377cac4585659565afc67d2f7ec4a29cb2a0b949d7f2bf31f4aa1e8786de516fc58bfb2323b6b1fda98f5ac9b6595f5abf79035599606b29c35592eec6af9afb2ac94565abc39eb2bbbee94895bf4e791d7e8fc429f3e7d4a3d254ae97f55f4c5e0c61c614ae97f65e833497199c25ea830fdaf0bfd2b4f987e43614aff4b4293e65352f32dadf1aae89f411a7384294e0ba6ef850a73996292ead060fa5e17fa597258a030f59ea692d3bc4d2f332e98d2c944abe6a8ddcfcf5d559d22d755350f7d4a695745cdd8b106f69b6b5785e9d38941ff99ef157d92c5627d91ee5945d86da6d32ec10e7eb766119e07903f7a7a159315407d11f2c4d35ffa8be72e04901e9b0d0810cfa59a7e02ebec6b36214280805c533c29de57d4b9d320312b0a140914e1962271db2c3e78a3d0973271ebe57741f1c10fdb56f1fb0c16f940fff9fee6228dc54bef9b8903a764060ea46a733f8d526b3da15e27f482b83fbcea560682453174bd9087b27e582fcd84d6d72fd2fafa4598da1cd6d777ab5b7c2a52d64fa1c972329f5efa929d12b69e1e9b4d4af5ecd46addd323a5c2de99f6fb4e217cf15b607d2bcb3064852fbe15d6b73e8597f82cd87c8b464be125be129b6f7de3223c5b45ba4ba3a5e07af155e8d1c88aebc5b702fb966c0dd15270fdeb59705d5af79205d80d43d7b33e86d787cf022b06d7b35ed657127e0d5f5e252c22d72572b95e851e63a87271ae77dd2a31d477fdebf6e411add70ec2ea5b2fbe3f0a18685df1a5483c3f830f84b3149a7377a550fc82d7faa5d0959538afe65d27ddb579ad1f88adf3f22058eb6ca6a333a593d275df20509d4c9c0e72606982c4e1bee1147a64f67c072147853bca490bde007754ce0a3c3bafcd5beb82d26da60140d06f30291c0e27831165c2f385dcc2eff08cf2c2a8d6515ddc7c9ccf5a8137e0f9bfe33f6106f0fcaebc35336a9ecd8c5c4e5e7881db4ea1d889cd22119f73bc0812a143848e0866d04808fea828d3e901e23b2e138508f1dc8f74f047a928ca64b3998ece1154c765b7b353d449298f9070bfcc4f24923c03e85b9f6b4080d86c2deb4040524d18d210c0d842001302989d10c084004647a7456485839c2a051580d4fd8600a6664ae5cbca08bfd5b36490963f7670febefbd00acd2f7b170235eca45ffefc6e7e155ad4b914d3f38b0dec3350ec7b4bed6eccd2bcc7f9a25166695eec95c83ef6dec7628f7389723ef644382ffba231b4b1340f06fb9b5702fb9bf7fec6e6679728e76d9e08e7bb37b547aee5bcf7ac9fd99e3ce1df3cb1e1cf2231b28151fdbe1c4bf3fe712ccdbb5194e07c4e14157a9c4179bd0a3dde7cce2522eac9331fa7687c61ba1ee77b9c7dfe598f3938979624e769afab428f39b727cf88f33416e488f372c4b9b6f1e6cea2f1f53d795eb7bd16de19fefcc406825df73ddad81e878c5eaf8d55d4f22faacbb495fc401004c14b5bdd23747ecf974e9e4c2df8c9d482e7f7424e740683df36775044edcf6296788ae327530b96f33ae9bf98fa0f05a79ab07740b05618e64c7ae2b5f91d7ca9fee0ac85acea7d773eb1e12736fcdd271b5851bbff3e379aee3af9de0590c6b45ae950cd9757fc07c96fae97605c00075b7d2f4c1e3a5c240905576aee2a3c61209a4fba27367c730499238084cc423b3b48a3fa67f1f30f0d1986df27aebe1dafa41ad687e1946bbcd68f595656a1a97d9fd4e4153ff0d5b3ab6e6abf9a0de8272b1427eb7a17f11ef4be2da5f4c1ef2cf89ecd523cdad93c9f76d7a606d80d11764b96c1520640fa4b281d55dec13bd867d77ded5b9d3cdded744084baf6bcceeb36d21ded3adab9d0e48977d75d779442318156a431d801172f8ba423f073ab41e13fafff05ffc95da6dff9e7915cc1e79ea1cf7d6649a7c19f6516254c58c88bf0599e49f2157c966970bf2ff908275c223a22b946bee420f49bf0463ecf0af0137cde21c0ebb4d732109ccf4038e7b390219fbbcc001acd929e927deeaa9bcfbd46e8b34c128016254b6ff35976f112f4413ecb32473f06e027f82cd16c49f23a5f3fcbaa35b8c8fb4fde52809f7d3bab04260320a1f31601fcecfbbdf39600bcebfb69ebfb41f1c3af44be5fa8c6f3b935f8dc1b7c9211d7e3f3591a71f0591efdf8a3fce92d8fe4ef10c99746fed3f980431db05c85c1d24976913fc47f84260f7da1094a2729098491c5144861c860258c117cf102c40690e8b04006703398f941098d0d5849dad1c28721b670a2034b39346145174b76900107196964208f363850450f736c61b275184f5cc971a00c1c348cc005338810228c07d2ac29a25b850eb8b12607dc0d4e58d177a029338607d4e040992b4ceabcd597f20c229a70220925ba2c6d8992620a838b2daca82fecff346f001083861b9ab8e10a27e890401d4450011545d31a53d3bad03efd92c86b1a74a9edb5da2acc146b88510711719061c5b1458729c8b0410b358a763062ba038d2a38e00497a20f741963872bd628c1c31106f05a779574c2f261f0b982464b163664916503a344401064b8a0430e25bc4c8df2a593db258ed30122ec1d6fde6e35a65376386dcf19524a290ddfc52e145d7306e0a978bf2b343bd17f56de6c56bd0757561445511489b05efc2fec3cdb074ad42c047befbdac2058abe7fae9eaecccfe4e0d9412c4f2e5f5405036088a147b94f6a5d197d2e16e255d4742d05c172aa4ba94e9420856154c6dc8510414749021038c183aeec84307292c90c050113a59e181282ab0d444d81b656e40428d171c48420a033c2085c0871168a086799b6ec4183d508120c714b9d1adce1be33c43821f9446b71d8c31d1a0810b30a3db0fbe8c4452c90b1e67c62a5d131a5bc458e545f4c11849b8b18a64e387304fb4ce18abc89688facb1c764c3156712f5f8e72ae128c553220639c973a08d212e98c60ac22c36124f2efa86052e36924aa22af9011461d23bda28320bf8abce28611558c2ea778f880d4e8d6021d46a946136a548d6e2bd03286ac15d8acd089045a9246b71524315699d2c3f094c03c4146173dfc90c9c2c509a43768205344441d341c4de18353182d9ab800a2e2a6a29e708a72e2c2051060d4972a378880c28833729852d3774cad91c5175464c15dc12571c40ae7525e3871110117477c0cd821cb196f90b1e10a3244aab0c0175fb21071059219354866d458c0c629ea8a32ae44464815d5045554135033c4423befdd6e71a2a28c18281a9db5bcd782648516f769c47f5e12e17426372794989ea619b065400335785c8186067418634303c480c30c35b6e09060c308a50f4e23fee32f8ba05ae2c20b5155649146528a8a2a9cfbccd30c38f7141553b80a37bda34c9a245942ad0b4ddb5d6782bf90d76c938782e930468071268b2d5f9400aa08035155a009c38124cc2862de9bbb07f21a068160efda2a550655f46084161cb0038aa37172a98ae20d35a6a47063a45aaca106136e2a081bba188b949c8843093cacc881268f912a4dd12274a96007754fdfca87c4c892dae40152820388848392bbbb5315a14b75570a3efee4a1402e8e309b3cf4857c823928fd25f3f6444d924207c97767e5190ce7cef52c77ae47fbcc3c505341b0d62946d85111bad49a2f51bba74fbce64d605832795c8ad75c895a4b253aa8b14369c03fdcf205c5703f1250e2ec50528b55db4c106adebeeb4993c7e9bb14a26fb5e6a9a27fbc8aaef9bb8462096c04f6dc1d064791388aacf1f4cda164ed16d419a45a3912ff31d23e479ac7bd0c97578ea0da27c96b520b09858131a8be702c1f0851abb4528bf6f177aa79abe550b5193951150cec505b40a8f6f1f7e08c9a1b0aeac8f7ddcd3998ca1a7841f0bbdd3c501289a585930937b08019cc5823861a18a023ccd857b88145951a5f8861c416ca44bbb1051c32181185070e3b746144a1068a28aa23aad0400570364ca1831453e0a1e484970d78808d3aea0081103b84610eb83f09d0bcf5531f1991441b6ae070a28c1463d1133d6840872d54d480858df182382a2879905b849957d01f77bc146d60ff094a1bca3003fb0fb961f447e25262afa0df4ac11e3cbfc0f3e52c0b8f420a1cb0d22d24ed9b9fcceeee6e07e2b58e480e1fa41dd4f5f7c46bd4f36e13af515b244e51f4802849d19b79606a44c34fecc1de05ba66c4a67f24ce6b2d2232c96e71bd873287aed1a72f2fd03f124bd7a8783d89346faea7ef838b9aa57c78f5de7b9f65df67c1d5ca92b40ffd395b43451d44316e32a1b8a859227949bceefb240e03a42cb20c4cbd17c50e62e1d5872e82b9d6ce4ad14881d7c75081d7cf20c7d72592634f9eae133d3cbc3524ca100aeb411bc55f0a88a348a918fcd58b16c4a1953231ab02ae9f418eae9beb12c9b1c949f7f3256e654fe81ff4412f30fdfeae1124ed43b1df9a0f3435c95998faa4cd89441b8a4e37920409edbaae93389758640eed436d860097909266b41d239496906492946c89b0fbdec9930afb87edad8e8cbcd9a4af97524a29abe09dd7cff79a5f1a6a0eee2828d2e00e774bb2b0b4506491a9843d8bd7bcfbcea457bf5eddab6b262e494e4cb4a5944aa6cff97a772caee44c9e84ddb5b813109eaf4ee2e41193347abd5e2f2551515c0008fb879487c93499fc06446972799a62fca78ccf31d8e719ec130df6ef5a4e1eb067f199347dde26aeb3d3a87dfc27ce8b8a33e23cfeb80e92a183fa3d8ae3288eb35b2943fb7476e2dac7bb1b08f288c999b07b12f6a566c271f19f3c93b04f2629a59cb80eea3a3c9338c0fee1273a0f1de4d8a591f3f8cfa322ee3fc4d45cf1ce1575b5fad5bb20c56f3d7effd179b379ffd66721d8733f61cf1277b26fb2efbee57abdb4d96d0f320749830cb25aed2a6132266552beac8a2f6debd5d28aef2df9ae96b325bf2f8f3cf2c03864816d7363a840fd19e458dfdf7f363b254db423b308d7efd612a2a2b13e38797e88fa4849fe8ef3f723ff4ae5f21e5b842e875c235ea374cecbc46b948a373dafabf2badc7460a4ae0ab3cf3927c52bd69c4cda87be944752ca230ae4451e4925c9d445fee496ea2a21404c60f09f8e82620a4c9fc87f3898734e2a1dd47598c9bc25a1d22a691f5a04c4497ee4aaa4e1a883a4cc0153d943b77ef52c1ac65001f16790a3f861fdf93d596143e1271140f0f181e74ecdd6034f1b3c3faff07cd9aefb7e5ad67bf47b6fcd0f2d14893b2824ac5873f5bd7ad64e1a358b33ffc95226fe01d23ab3ee5633f3fbab0cd2380d1b5465c6504a284670345691488c2153c4ed0c0866e842ca0323cd1365a218a7ed3a783833d6aa10815227524bc29a1b90c669694f8c9e471517a7715a1bb5ce431d495d40915a220b9698ba62ac02648a34642e103356c91963a4777525e9025f8c556a4394d181a5a507334e84e2b474883223b544744c1727cc8c55241c569c11456a3510411354ab0bd50696a8f2a1e6122791061688e288b1ca4d8eb11d849748ad0662f450456a7da400e388478823a871da1e439848ad1c220d1ab9715a12a218c398486d8399810b27199a39b0208dd3daa6c6f0c6d7784004b8b14a980694982ab13223bd0e4607a732e3b4178819c31c915aa22e873cb88060ac5263e202cd487f5a22dbd438838ff4820e82fc7026520b1b238f3066c6699b0e1dc6b08748edfc61873b72e3b48d45d318d54412ce54a7a398d0223d67456b0b5c3425148cdd5720cff85287d338ad8f2ce37b3784bdd37d47fda87de8c401ac3a35201309fc1e1b90d74924ffc913878905078ce41e3ec20367308313870ef23c7cd43ef47f6051418ae629a7474e0f98c579d8c762b1d96cf6451acfbe08e7d8fc38e7651607679683636f608f7373e714f207ec65367b190ca35eabdfada11e369977362831258aafd7eb8b347e7d11b6d3be6c8bf5a12dc2b3c57aa129b2eaf458e08d020506ec44cac4fee0ea7533940f83728a72b6581fb25afff2695fcf928d676be805455661d7cd125bd69c32b1f8fe2c133eec532606c52656d4b32d31c410a24e2c8dae6f79453fdb986910606a42f3ccdb03ac48dd2187085dea0dce4d55e703fa265e892479e8b75ca01cadda7788b7258f950f325069f79eeda494ee87bec9215854629141a6809287fe019fbe449241c22933dc7d963b60fa72031dd4bd44ba894f6490f0cafee18980a9f75df0a30d76cdfb2ef53aeb583abd3191becc119ef325f983829347860b1ce19882534a902255c19d94b8f6a1ff038b1a7e967563fce6b80eea9e2aa9494a43fde80c181c45827365d303376fbeb4e4be8473771ca6ffea9bf8d4f53907530b700698fec0f4862909605cb9564efc426762e5563930e7e5c47c91de09dedd22bf5b123e519314c52ff4bc90aed62cb1f1e2cb663ae08bd6a8f533fc28caffbc974f45cf7680c1978bf4aec4af65820dd3aeb312fcd54bdc02f1f7dff71efd2a933fe8b72c4e77405fb439dd017d4a29d82a028ade1525e8d489b0c15a674fbff7167da1232ab537a99afbcb109f9a1ae2b5496d9ca81d5051f3e338f713fe7e5ea1391ff631c4302f13d8e77ea27aa1a5fce6a6f210049192b4387939fa9265890b4c4a967734af4ccff3bcf07a9f91eb5f2f34592f4b63b92c8d756929cc773d0bfeaf1bc3ebdd3f86d8cff7be96756f4cf3def5f3e67a16600f5e165caf77dd975eccd23cef5fb2875da2d7cb9e28f6d3465fe6baf3630f7bd6cd40587663785d9a177b25f36397e6bd7fecfd63f7f54a62efb2f363160644d4a444f6b14b44d4a4428f4631342989fd0be76388ddd7e7bcec3abdcc29e74a241cce7d5da93479beefe6fad2e4f91ef631bcae7c7a143020bbb12b73f3097f7f425585b9ae6df2c824ae17727759579a3cdf832088e4b7ce51d12831cee0effb0bfee612fe76be314f28fc3dc8f2f2943a9aca4265e4554eb8ef3f5a98011d70163d0d1038bb9a2cf8fb01e76984bfefe79c481fc5942239cff79febbff7a510831b6a9e484ffef305ca7fc4b8ac1cdb7fc4efc39775d1657b9c48138bffac58b9087b21cb3a11bfb1f79ecd95f55530eb9bf5938930eb66d173028548b48d41f0430b65ae58f66525d5e4495235e5b5ef4b08537bce77bd92f9ae4b53e2ffba34efd25278bdeb95bcbc2772fdeb2a81fd0b768bc6307c595ae8b2b4f086e155f27ad8256a22d7178d36e1e78984bfa7ad5a3fbf9409c39f484959be9f5a96fcf671e9e23f302ff226c7ef57add0362103cd99f0d24c9038fc22128726b0c4f716008ab077bb096689b67502ed885784c1daa3cb68be677123ff91f3e6ff4da9cf29a0024ce2033a90f106d311648cce25a98d2b3c10d18316a10f1d60c5c1f44c7188095f4178a1e1f6e9240d01b534fa8ee5cfeee4a573ca2b40219f5dc411c404b7741f58bf0eb1483102b1830c648890e28a9a255bdee0420c37d0a8018c0e083270d4f8b819e30ba427c280808d34465f820d25845083cc54d20d340707969510a10a15470fe20668f4c0841370546107130a58c28d1fc28481bb4275059308c7181d983547620b77541818c0b94686f4289dde379322840d4e5142e0609424939e1082ba3f8962c049c798cf8ccf10244246a2c298a1ce3e8a8c1d47b05e70ac21c7c87dae6f7d9b01ae81e1008756eed8cb238f3cf2f024063f9b67607fff7d3769e7f9f596091a9039820c9e60cbdac495774954dc8129f59f8e8a3929bd42d35bdd3a413bb14fa78dbbd6bc190051e57f2fe4b47d847cd641b3f6912cec76606f4eef20893b91fa0f064d35fcbc8e5257d73efeb345dbc79f274c950f7edebd5d122196788653c816c86081dd86d289a016c87ca07d56d8edead6743001023161fca00519598c6ec15b0b6486689e6e810c12fd03bb6551d17d94ce39a7946ee6687737b5f234912049a2e4e72db4017535bf80c197dd74215e0381da736151695b210e444d153f0301c16f9eee59dd25c1b376532a0cbb8328084e9758f8c43d6c704b1aba6c2965e7f2dbedd3e1222ae5124fb9f656b41bbccf1f9c64d6f8628573b9f1340415495864806974334d0021022638d87823ec61ea0c0f4b0fd9ac56b0abd65862ae0184577787a26ac2eeee5e7b6a3359edaf8a4c963aab2edc51646ec0b9c6cad1e936357c52fab36d3f9bbd0ea177489020f11fcfa869f533fcd854039a750f31e23fe0b39c80cfbabd02bd23e095e226f418ec5dda9d75014b9d3fdb52b7d4d008cdd9acd629a956def9005a30a381deea82199d17a8a979969feccc9c4c0d948260a2c85c60369b75b05ce767ac9f37d6159afea9e9e410234233bf6e783a2b0bc4f63a3370e78238664390f8cf8fff1811cc3ecf5cd80677d4983138db401edaa7eb9a097e3c6977ddb7d7a474989ae19ff7feed79b71f04df2dcd7b7f8aad48f32e910b7aadfbc6515567e6a5ceefcfb255ffea4122fdabebef3ec4fc68dfa7e337c98392c402640c0ef6811d05022d78f28067d41831787edecb86baf34f41ef6c4729a5dd2a02664adf7ba1f94d9d79136754dd7911cfc9f4fe3331cb26045adac154f517a90df78ffcef5a9b379152faa26dd91ee7a4f3573f124981c1d6260f90909505924351e6cb5bbd46256ee211d2a758ceafb4ef129158b28056d6a83abbb20ebc54f962bff720c57de97b49945826521cbb60802c32e94b952f4454a22cb09611860ce10b317e38f0050e8b319b429afc1defefaff5d7fe597feff4943fc3ce4105043b8d7ee3297544fdcf3529e51269ea746370769c065aaa78cb48e930ad7b9bd72eadfb1eaff9cb4a55bfa9bf4cf297387a86b56053d38f7e54688891d62a7ccd807cf0fcf6a349ad93d7e6534d26779a3c738a42456e74d42c9d6af325d5e49954f393cc5f327d9a673e0858e0d9d33ef33d10a3e6ce2949223e1171f71fed2a76dff7057fa6064df5e9e78e9c67fe4c49228160f5a39c1f75ce6d588a0643d423f08978e4571ce9bb4778e2aa64662985679a241edc51b3489b33063151639c6430234d1ce364800778980ac2a98a3ad68c73ce97b47924b52f1fc25bf8a175c179fc43f7affb933d411b9e2c960d4ced1ebc7aaf933677195b8f845245e2efcb6016bbdb84890b37d4ef3da236038927ee381aabf814409c199bba77414a2a080f35ff8e8fd00e8250901f6ab66129f371aaf909103661e584572df5823f0cfe4cfc9bf8e7a851b34d2ac8f10a0d2c5d46ff267e33fac64b5737bbb4521ac17208962b285556455c08c1a876215ca0ba191d386fab8e05863410fc84967cc15467e6c6e02cb69eb88003fcbc9da749388bd8f3ba07dfeb3eaff3baee3d7fb0fb42f94486e7775d94cf26d6652737d7e6ebbaef419b6d6a04b0e717b0fb9d4da7dac9a62201ce67feb33dbcc1907e64477181841dc8a9ba4ae268953860f75a9b29226b15878f549c5f1a05d241f47ed7bbf46b27d4512b0e37a6382c913610d4e1dcdddd9276dbdaa86dd439e79cde2dbb3d1715f3e6c9cee9ac64fce4b191e1f3c70f2902257880838a88a82e9cae8c7dc51048c4f1c52804505efa698c35aed861869528260650c6993064ae28e388218a6630b28007d400a1850c160698228b0eb93c96d6d42014d6beb51a5960519ae38a2c658c195b080fe478d0d204192b52e0b076edfeeefe2681d2d5b326eb69834e67124a154c9bbe5719c46f12f9a3fbee611d24af0aedd38946c0a8f993cc5b3371a1c913ff597df72f488161dec4efbea7ed81f8cd05e7e9beebe9d9d9c93a55765954f96ea5d82630bce0b5272e78adebbeebbe63f286bcb92071e4fe96b8cfbd3c64b69e5a8fd76a135556a5f45a5013f58398f8f6719735ac445da2475de215c4541d4c959e8010c0840086f6883d414b042dc172249d14bb6db61b640435473fc9936652cd7590cb93a627e592662d157cf4a4ee869a698e7e0745cd2f99c3f469f2803457fb46955e1dd47dadf67faf9252163574b0c3a27a41a680b8eba0ee8350d5f9540dca20feedd773f2071b1d34af83d13e54893ea54a34479fe8d3dcd3d4542e3705de890b92a6ce4f7a2ce9c330674ff99d13f5f0060b7059204569f1461839a8171ad2e0424604381fd858b38417307048dc90eb62268a23ef5b8e11256196c0334e655c4a61ecc0b99fc240d1b1f3962fe29087570e83b836cb55fffe9e570e07a0e6b5fe79060e1f55fa528296141659bac0813580318698010f1cb2a84189914b18324481471a39babc3e2a30627c5a7c0197ccc4a145cae9ad221d07163371204d334ee953db2f8b70fbad85fce634ef1b1f8123f8abffec11387edf3657c18d9b0128284fa1b87bda11a984bb3bbd45f36e92ef1b2ba923e87917ca0b7762601bce454354e230f8d906f034510ba276541653b8aa7116527e336d163dc1c51c65a4c2a0d165044b44cc51451c741cada141f45a155cbc20a28c113b78a08ea226d20841079e48820d2b4997563b70aa5aa85e3823a59fca2bb5a3a0aa70abc11d05658467eb849513d6716103b48ffc50470906e791dfbfaa7536fbafe12c9daade5b2fba584022e006a1e6f33bb87b74e3feb6e2cf2a389c50240e9fb686c4a71dfe0c9f764fd40675b668c105e3dcfdf6620ce03f5a64c132dcc1485e29ea77dc570243bc268db48f7c5a982a5f9681a1e5990e7aa27a20f66ecf835123bb38a5c1527ac1b2feeb95d4d755e2d48119b53f4ba79e7eda4ff55a4b4975f1e237a3296505172ca19860c2f2a57c3946562c3b0a8c1296537ea301a590a874ad7485498d32c4680001000002f313002028100e884402a1583820d41545f70114000c8dac467c5019c95112a41432c61842002000064060044060348900fe66d2013001b81c428c4642d5029ea65a1ba8a6e056b5d88013db889460042247e2151560043e9992e3a28738742b10f64cdf0efc6a26d7e675020328619f4fe9ff1fcedd41a4ac20fab2deae3f9502d512937906031862936b75340f9e54cebc9b0b90fbed43b46ab3dd9a5c0f40e5373d145f21a90fd5698b275b82c075e715cb2d8afa6a0cd791eb2e6eea686d7104059fe6d0b7304eb67f6e1418ee13e8b28804f19c2ed7ad33f08cc2d971c7d20c5505e38a75100e1a07617af5d8b0ad81adf638b6063c6f094b2f9cf0c7e8e9be0181d4f4c3256a77279065fda0a49654510bf9ccb7f4a571d4d1c7dabf50b530aad0f3e972e3a81477956fc5a2fad298c47097397655f663b219412cd960769d8299ee3a96b1547c2f31cb70e2adf1635f4a485569ece9948d8325e58058b4eb5921d6cde514fd6029aa036f2247c53c3e388809f583674165d5988b52ad2fe8f4516e10e30df494c22d02549207ef7d5f902d9d70e4041aeba951e868a4c9cc75a0da5fbeb62b6917c1e91d821380ff1ee7a914d644d76e5cb791fe928deacaba76b54ce98ee5c02c04ecbffced3fa1695af8b58597df0cb1dd4d983bea4592935359804575671b0867c39a61232142854305f17ab2d0ce279903f6a40c13ac4777daf72417ce0b778bd495d15ad1debd5f9b9e8f8511cbab6ff9ffc0ec3d8b1ec34e02143525a63b790d6e703c099b49973a508f33b98babac3b134aa5ab60ca14bf6910dbf77039bd9c4ed75b4febb05abf74207d1c507bb16776248680e42d3419251f8a326f59935ee91a64dd804f2019e5a9bf475db50bfad8035c9196a21a46ce51f4302c1f3d4ff1c497a4083938fb3891285d15ce498a3d9a9e1639b591d7d539e1b92e4b78b523327ac249a2c04bc0d11891ab319ac776f699a72687490cfcfbee5f5eafcf6c57d9df73e8d6bcebdf47bf906ee9994865d067f47780c0ea6aacfcad82b48f568352dfc4d933b5097ab64f441147b28de70c2408fe0f8c790284fbb543a023e7378b29067fbb9bd52ebcadff4b35534c94be98080e3e2b4083d0d2c963aadeb92a8ada8ec753866566a3c35a41d25b782ddbbfce00aee1867b6a466a8b405de360c7fb111c01d5c06effd3533da0b4f83bb0249b7898dad3b1e4919ce9320756532c5bff81f94d3127f6adb25e6c4533eb2fa6215cb390620767296e4b6480e9cad332f768e20b4ecb6ccec326fbbe3a8b099332cf0792921960a87082c8861babf75d630aa7fbd4a3159a820f6a82021f1d4cc32b91760400f0754c1f810a441d5c27f3b52a8b17442c97bd53b902d8285184bbfed852530b3db33d2c11995ea123e935590cafa4b3060005080e8c4aec52eaf34617a5a976434d027213d98b0b23a0323412fff7cf63619935d453759bed7729d9789551951b37d7a0975a803e8bdc44d6cff1c0f1a83b64b6350045726783376b01f65ea4a16a83bbd2108471ae91b238d9cad3a75dc18acc5a70de9662176c40dec3342919b31826f9c937fde85c02ed99e79c28de28dd08709ba0babde494140024c499d69c258f6f09fc15f2a0491f02585317aeb52873e1c24413ffda1b5a146e2f366425f179d5ae0f44877f9bbe88a4b25240266b6f706de5d7f57f80ab559e9ba91dacef54c35b1c0f022fff310b2edfd0f797b47f0d11663748838d2b6c589d41f25872c2d0527fe2b3db21a43ac4338ee00dc4d3843a0a24a036a1d8e5dc8489f4e62ec64462e86b8c73be9daebfbdc1f5df159aed067e5545f7f187f7d0443c141ab511d75e3c66ccdbe0e7cf2084f31ce411594b754b6be43d4e2a2cf986b4b8f59e46e215d658d60ebf0cb526b136d2bbef108e7feb8e434e1eed1123554d15c76c4af90e035561c93b87f20f91b91db61250228eda9eabe48f7a6e3fe6a029565d96d297a5ef4fc3d8150d0d2e7d66f067ac69d431255e5360912cbf9529bd412630ee0802f3def8170665605a705a40585d78489308a5ce9b820a8c67aac1d2e9dc34b7d8d6e907878c24bb42f4b8062fa268465f90ab73b069b467958de3c28e26d39464acc4ceadecd42302bc50f9db7f3d8ad3a4af8f47e08a4cccaf97a1ddf664ac1a6cc14dceee5f4d04f13b2f3997ab2b6745aa4eefd408f66b5fb0a5501085ca72ff3f24fff3f08cddf417a5bac8aaa82ebbada05e65880dd09ee91f757548c31818f490d0589b9f3ca47527888005926480b1e35bf64f042d6fc5019b6d0fb1b50416d71fd2d96faacf49ad6439a4d85a2cf59f2aede2ba388f0e792815323a74ac4c828870b668266fe3c209c6f12a882d10752a85c79e70a88cdc91bae73a7ed3c0baee28aad32ac3a6490e363913b54f02964edc4107d4d03908510312fb7b289126012e5cdd237613a3118878f736fa321177187bca8b2b9d1442c809f08ef3469ccb75e65cb176e3666f6730333aefba7f09f800c6dfb3c2dda12bbfb75f190dde63856057f13b23195c9f4479374a183b7b6f89ef75127d9eb7dba5f0bb7d8fa00a98d35287cc1ec6983829acc85231b590fcc6acd7498c1346185093a0b0320e2bd2bc92b884c4b60910e05ed591f4a1242f19439ff698429a01c6b28ff3ef6001f8d97e93824e36e7e1cbe8b46db4425419f91bea24c9f631ff14f0070dec914cf0e048c12bd421d48a31456a3907c2ea7fa778684e350180212335c77a6da88b1f3a291f02cc4d0be1a09ba36d362a3621a7cfed92002d7ce88016fc8fe5ef428d069d2618c38f5f2e19dfe502fdffc7106e25a26fd49a970ac9a7f199ca59ae2dbf04005a68180e2c9e4924b9041db8082116dd8ed0c2f71aea7b116e2a8762302c6a3de81982a1c8907ec2b3d21cdafaea30c92d5517039220aee5e0db642eec2af897a68e32c099c96b08f661bae2c77b0264ee0eb6ed0592f825428c3c505ff360a9fd8b879de87d14caf033a0e04d7ecc9b96d4b6b5aa779c94af06cca6bef56924380f5b1c45d9325cda0b85a2680a31a559df879c492cea77f28b89fd550482cd3359bd1c4432df8bed8ec9f3c64ca6f0acf9e70913b962e4c7642640210af6f118b7855e914d734d92798f0fbdb82dae1bd8a4a4a726ddf34f3f9f50c04fc24ce337a147d4e24f18632133ebb8060f41081c2853f115f94f6485cf5025108c02cf3c3d8765f6d6d516b69cbe62d175eac158acce1c641d5852efce1406795860acbeb925625c40b2b99e990e95c4d45893b9efcdb4369ba1ffa8ee7929311e01ffba590d348b2a1162c4091b5ce8b510579f99813bedd3d7a0e0c48005189e61343e53f5c73de19af2fc1aa18a180123ffa77c612c05e1875e779c84a65ea04f3826532b433534147a4ea256c885c92a2d3eeff1cc83acc2926a002ba8becc3681f429bc50c77b8984b802481f9648310f39ba8463f95bbcf3374e288218d558024b892508742c09de55c5f63cccce6a0f30ee060e235948782a5ca097aec94504b3403c3ae1f780a74a6ec936ba3ede0536511bd2e2592666f36cd3b7f7fd3bad0f1d32f78cfd5f9bbb5d40cf8621c380843d7d162511406e77e74504f9a23e9e2dcaee6c78bc6a2963a85008fa02ac1e005eddf824bf5e25bce25d6f378a712798a14df9fa7229a06f01e0108bb87a56013da5df9fea99a56adf4844a8f601ec5a802f890d0fd7b097d4ef8e78f0954617a97803a3ed9b1263d2194f3d4312c479fc5e48a57a365ad6b9b97f89bb0e5046ca33ceab099c3bbd0142fed484e2d86e5d041ef0bb256be051670ab5710a0efb02100d5776e3a63189440c456ab7d0ef4f1ed6dbd850da56acddb7c3bbbafddcbf9ddb7b51530e827bf9b9ec73f62ed700e9a666edffc31b1f1de7b576d6887271aff719b0e9114c575e41cdfddde2c06c9e1b74976e80010eed88e7d9f93b3d2c07636ffe19ee9365eaf4f47eafc31618ec08efb9c6d99f0b150b3494039854ae276dd5459ad12698065e104994a93cfb64adb2400505ba9e2ab8e541960f7762d8f508951a937a52868ea6d6719ee5bb0beb87f4296d3840704a1e5e661511feb7908542d425de542682630021bc7eb68a6288b215e973989793e45e86736c41f4317c15f0f242833e1a913745b174e9b112da844c901f6e5c3b03ca3518b976081a42c7f2db91e107e395158a0d6c988561b53cce1e792a09c53f83e440702e37f74f981d6a0f2396dc8bcc966f3b98d039f9528759b56ecbd9bb58d25430496c40600498e38b1132e3b0b986f240676f846e555769b22273b88e3392de7a34a37eb20aefb6e1c74e61c3a3d661fee2c1beb63d01402bdc5e17af2f276e6bed461575790aba0f624fd017f7a5c6498b5848c2004ad03e1a1d90b1900e188b5e4fac97107fa8d72d7f6b33a072e9ea1cda88967748fac02897a8541e48a0d9987ec0d5a1ecfed69789eb799a088ec66015e8e9c7b33ca72bd6a4ffd67796ad3f2f1dc882cfc05e3c8607465b4df199cafcf1a640f6fad44d7848668c9756f89a07ed9827169a38efac0bf9d3ee107488683d117648ee86d6de600da58e20fd8c15d3437d7dbe9fc586d74602bd18694dd1e88bc3608a34db51673047eeba49a0691ea3df9d73dec933ac5957deb5b96f6a8f7bb0cea00430278d794b3a7746e8931e4b0b57e9fe2fdd7516a810f342806ceb43b48cc862315f3751eec9c40a77cf7a3f925701142577c6e6921ff6b9384fe696e43b0976958914da93ede7690218d5181280aaa153c8e51eab835c7b53bec415bc59dbb2d27dd651c6d040d9b0992774f7a15905c84f7f10969403c2fdf8403bf6b6d8a130363447c3a0079bd2a94f395dae75cc4eff35cedff3328f1b4701384ca200619a5b7a4c02b39912b3339b72ac06e0f35fcd3b496bcf0497416a1586f3d96ce8f1a4f9a8eb827b9641b33bd519a3a92d65667ec2eb3be110046b33a77a71b4c22982582f0563f7547219a99cd755cf35bf1f16cd7d8c01453842c6880141244710099efb096e7e91a60c8d136e310c0fa84767d7b2e63b8625f987117b695eaaceb60b33a1ab4514b3caa1d189cb61eab3c553207641b0c63f44c5d5de8298500892572d12d15067b071a95ef2bb2b2f9f8d98b056fb31d9e73693c094c187732e5b623a7cad599cf4068669cb56ab12d93e35a2759e41d3e665c7a22fd35879638bc88919f60119e6a718f840795212360991916af7e0f652a85fce48f8b35cef09df8b42fb99631a0b9d89a49facb3d9b870a1a3a9bfe77b0a524e2ecabda7aa63fc3d593a4b1a75fd6c3b7aaf10968dd8c9fa5fd027a281594693db41626ea290d252565693fcaed0ff33aff467fd0b7b63ecd1f17fb3a44ce7fd3b439d91a8d98d45622a09fc9e31eac943ab061cb077c6c88c917bded9e3a1c880f9dca209ee733c4d2ff31bb038fbff7761003ecb85e55f5802840b9832822ee2655164facf3be4fd138648a06267156366fdcea6a184ecc9f6de7c068243978591f7b044872f309a0b33a5055487516d1acb7a8fbb38e77a0f78c2976bf4a66fd483836c62a4e65f661b38ceeaf1d01a42fa2c281798211bcc9dbf537ddcb74c91388207ce07aea2c069abaff180d36968652f69aa4c16f0e81b00ebbf25fb522e3094211af3ea73b17a75b00b65897e6fe6f0f1d887df2a1ff885a6e24dae744be095f245af86e099d082094800f5ae676b2d071516b912d0e93ff8023758ae49cfde1f51842ea1f0233063461d0107617319db458a0a7d4f0f500a5949f5de51e8715f2575569544567633ca4b61746ce3998633e2ddce16dc8919bbf0990602b5d42cdecd3a47ee0003228565df1cce250bc57dfcd968ed71a0c6f3b5e55bbc29dee136ba20972484a25c82930309b40294d428d795f8c5947257701f2b48744a607892ccb92cea487e7ba1c394e2926630d31680af0792a3ced3535d9d949e28e319ed14b2c8533262937f87b068239bdca98c8cb6dd834394515227de700c7a517c026f02021ff2314a831bf782164b949764aafba37679a627a8b9f921b57f10aa182fd25b4e738776783263996f16043cfbcdc54450fdbc80115a40b703ad2dca550b60d2af805a23e5a5dc0d01cf37f08265341973c0b81ae7df97777477b5e3e000e92773b3a77d8a0d07c761082fc407863d7e79550849414804b83badf651b2c2a6a9d3c66210995466173f61f9b8c669126a03c172508ccd3dfa9c20a3e1010e9883801c642904a9e2aae9d33d232bb42f26e7634b9f49a204168be0ba5a95dc1dc226ff507df416c5388703e528ebc9021a150ba371951a01357eec1ea1e7fd0b21e76252aa404efd0f5ab63b926d2ecc8cf6d7c895b82972cb44dbe370407063557205ff132ecf26e50840222b981e0a06f0894740a93794ff3ccc49be927f6a824fcc112710bb647b69dda981d1d8207110feab8df3b505b46224e1bf8955bab250d00b2712ef3ee5d6612bdc8da964491f22df9ed79cacbe860f6ddd323724fd27d7518ef94284d7f50953c72eaa92707652e721b46d8159f7166f0c48a047bbf206d3a8575f36c0a92dc0a485d7590f377a757f21391d78f538d414d02a00a22777ab96a4c8408c168c924c260a1fc98822f20615ca86a29df11f7702b0a254f482e70a6d3989adc97277eb83dcdc956e58be3fa7353ebcdc072391e61cb84657b750dae538f189e07b05a99c7b10b7dfb98cff9a768d13e6059e02eeb2ec49a28eacc64b19e0d6539e7867c88e2c9d7cf909a5da7b2de604d5a86fe69cb53bc8837184860c14b8d7fb3e8bbeb45dda7160f02545c639d517f6818c2bcdf29fb41832952e044e0841af297ef73728eb73d2d29bd694c1dd2b5ba7499ec18127c25b2ed48b2e45348996d16a1cc8587dcf60c4a1d9f1cd4d407c71b4c547c8d3b918ca30e061ccd077e786f78842ea195012dfb11a0e5a280ee69bb36bf949b7398d59a284a165d12e3288c1450304813b767ec2dd2e444f9585221a8b0b00b1105a14394533305d5d8b5897900eaf147b151e76829d579f7f37dba31f8d1da5412d4a566b4846f2eba7130e2d963956db9bfd42cdb10a696e8b394de3be6a6abbc77d3db2eeb92da0b039483deda78154cbc0e7680f0b821914119b0622cea429a48994e105db852c091f9a0bcda0e7ee5463cf4d5697d39ba7fb9c5bfca41006e8458e5f44d80269f52d0d4163e8509de3cd1a0face3ecc4a7a1903d59d28dcb76f8715baa56bb79807caec5802cdccf7ce8879ac75b8698a99e73d947e348c0faba00a4fa812b213e32c45b862eac1070a503ef763c90a8e3da77e75938aaa25d1b06c8b88203c05c15d99f9ed0f7ed2eb1a175db4afe716eef25140f3896517569341bb17e96ff8ef67fef3616fcd1a07772439684dba44722a00d54dcdc653b87ff903dd48452863b5d1e08cacb677905e3d8d6d39f59ef482fb9c2406b775d3674b9bf22b70ca4ffa698cbe94c014025e434df4b9395d5c4839028a76aa47d974c3030e822b3a2c063eb551e0dd09a9585d673768d2041f9e271b762a38fb0748641a00498b772e0381cf359481cd8393c442381558684392a05d3c9a867e8bc019acf182ea5c06da49df1b1651c89878a88efd77262e4bbb8062f75f311c0352cca6cbc4ede58685be3d8bc7fdb404254d58870d59247623682381e08a9809cde9010084466b2669864aadd2201bb50d51a80df8e44c1ab10b2dad2d58678ee9097215c60e46c9c80d62e37fd0b8cb9305c56a9d11cbdf2afdcb0c473eb2b29a12d6a1421f159fd391a88bbf6143ddfc21d5e1497a0dda4889356790d16cdde9219a93cabadaed1a0f24b143b6727db483f5a25301339563dbb39929de49e948da24dc4fe1e14a7e66ebb2e817477899c42cde33bb874a9f212e4b990ab2e6ea63bd97b1a005d18a1279a5051c14c80416d5e9fbdd8e3d73782319e65307b978cebe0252acc5085917f960f10590630bc78419570108a5870059b253144f53599a87caa29804d30b45776f769e12136317d494ce7aa3f944b97d5c241176bda34f75147b1130229943c74e384215bbed0d16a3db0beb14dcb6146248d75ae3edc51508ebdb296c3997e73ec186372e3774b7d672218e95019218ac86f5c71b43f0d840e38b856471ade01c5818fc84a5f888dde86c9330b21ea73b81a9cd6a6a6db4a4fd34e8738f1d8faf11657e8cf429e6ae5abe70ba4cce74c2efe2281ebc84a1e7f08d495c6b6c7f8b6c365ae950b673a8d71ae874e867254f4074a8a9ad6f6f7708dede4067f30e7eb763c70fd7780e509a804859b792404d745e95516743f7f1270e959d187c5e7ab2daa109ec5e7153d301492e9feac3e078a7db2c32d7c1ae82dae37517e8370043d241e89ed83aef26a2c292c8e4e85dcc440a9dc9332e689df7b121158385dad9bb0a24f9f9af0affa683c9bf0cb3e13a16be916b69ba01e03af40586a7e1efa8c8cbafa9df21587bbcaa3705a2ee1a64a4db604b197e7e291ca73b91819dd47964ee84b0a8965dca6cf93ce5ea1476a440f761c56bea674dbfc9bcb7332e58f6347f8b02274a2c01863fa254c0ca8dc5e41b36fb3575f3dd445d4ec2a2068aa5ca79ee2b3f80cc81475af4062ef816411ad409a51cc71b7082dc495d158aad844d2fdd742b7e7ea385f84d52d2ef33e2b5af71451d5bde2045c10504dadda07406adb0c35c046955a9c597dfb7b334563ec0bfe514b8f7a86f097ae5778cdf1f37d3921123cb1da64491bc153ff41867acda14f5daf20223a064741f78b79ebcaf3924d0ff9cbaf72656a74dcd604d287798019cd811ed06be36a0a3faa71607a01956f5ef8254ad74e74a2f46d3051dd047acb2d778405a27bc72c45e4825da9a15b6743ce099d35010331f2a0dede424fe88210795ea255ec3721669c122caa7aab2b9a972d6a4d3299a91a1e5b681aa6a655e2455041da2491afabd60926fc345f315cc6f78382d4e8ba3dd22d23b11b2aaf57c703fecaec88e9b76e94aeccb7350771b8aa3a179ab48f2d226869c1399c1ecbc1e4257e33f30a24150da1c8cb70243bac5c59b2816151c8d91d91cd9c01cdae8815432f338268883d0ce05f89115a77303deccc4ecb192cc0529485af03edbde31805c1e75512c81cd8da5577132872dcb3d97bc08a02f9d6a336c5bee9d8645f95936cbcd55aca8129cf268e38b2c0ce2443d1dbcf1e2cc28f7be17a6abfda09093595f22acf27fe8495a8f793b01eca5fb020ed33be686f992a5819d4309b3d2b8d838015476898b55a4963dcafc271720ad9acc4d0228d011b172e112a877592b5d834f29844380b41a4220460603f2bbaa1153962dab620664521c7ed84a272d83b1618528cd1120f145dbc1919e49e54d2e9781328ce54b3167d0228c103593e2b4153f70b6ee073332bf14a311b5b1dddfeb4b4c0909031cb5d6860e0db776bc9915ebf6971d65cb6de5a275c35254216a376f025093d93941f255a3e7f01217beb26ed66fbb0e777a00b6078257669404026bb4729a6181493ec07fc4a82a2841fc0975b616f1f2a8202b13972eaad88ef3f57e93c608c9e089705081c1b214d31017cee9f473b742ec4a4f9ac7510c97371baa79634abdc5a1586357d735c7525908881e7647f566187472973b72d52bfd16011bd7c73350c2febbae273cd89eeeb31b63c0921ead4d82a6e7cbae3f80fd8de451e3feafbf8bf348853aa0b19b81eed45ff7559a66c25ff585ff1f97def837ef94e15d9d2a7f3c936fa4550d0aec5d36191f8495566af4565c6801b03e5f6dec7449f995a70f2aa68aec9a23a709638434eaa3a0966263d5bac0375e7f4eff42a35cc43409ed7a629de050ab68ab3443b104fed96fef83d228a6f6dc7a16f71385adf1ac4ee6fe6db1f0bbb8a2b29bf2cb61ce5e54642aa2da2d894949667839d4938d9f2bb30b796d0a8b2d0a276c86bd1df259c6f462f1981ca50654fd62b78bf0c9271edcde9379ab9bd433b744e4424caafb5f89bb50eba112ceea6078ab5fed182b5a87c132be1faae774c3e2fe8c69b9062d97faa4cadd3323e64e5e761d241608da5fbc80a1e204ec7507bc6cb77770dcb4327b7d1ac65fb5e218e551cc54162e80ff759602c22015ec7e91ecb7b2fad35fbabefa76e2c18ee5b5aadf36632e9cbaa5d812f10e7644c6e978e13d9cc0d32dbcb0720a291e560639a0995a0b4883a4466dec741334a80a3018580614781830cdb69278a6fb69b2dfb4011ac86c21c220b888c7d3d3e5ed71adae8c972f961102e4a1373b0a607bc936e2a8921b6c7dcfde57a7ee6ccbb3ffc677f204fdc55299e665bda14cd3b34761da7da098ced9a704dd58af0dbd7c743dbee3edb57150fd1f3bba5c28db82200ca2bd4393dcfb7e584e0e985215721041463d9f924681f132161f5d9c013b5886381cc6e3fbe1ee6a00fd58b30f2d979ff191b1ee07052ecf82a17555514faadd0630b015d304459ad3ddd96ea4ea52bc01f42a0cc48a7214faf44748e3796f4c1744f34b9e6eaa6508825ab66dda977d39c26067d327080d3ad8e0ddaa29a8a477e812c837e675fda061e56618af5f1e4d0c63a05784100dbb2fa2accbd953cd585997372f553b364ec16b3f3ab38d979db3e8256b93227e06df0372f72666f5685364bdd9601fc19881035710465dd8f9a5913330887faddd6e166ee8f6dc34616e3380b84349d29452c02053b563127fd2a02e027a187db00f0131a23c48589d38988459abff96fbb577ba3728667edf9182cf5ac41c874c4e0ad98c951280f3fb8ba712ad990227fd2783c503b2d694cfdb9cbaf7a1a1b1cbfb72ddea68362a50b9fa65ec56c503f30adeb7bfb832bb8a727ac21dee8170e83af8539adb185fe94b61031fdcd74d0f8d35725c963765fc0f92f63422a02d6b126994d39314153055bac94f8d06fe5185de06f4b0be6e35d7b2e55966c0982e487fef9b5afeb9d95cd69cd9b087d260c08e23f380f4eb8c4607d3e449ea25966089ffcdae8c665194467dc84259db9ca16184c8907f66163141f803fa8e25cad6e1000fba6a57456fe7f2c516e64a4010967d40ed2f81ac28dc6f6a931d6e39cb909882b13f8ff139e5580b20fce8f7c6cee8c7fb85c0103524500135901f2959feda1c056f0a6d1e729289c39b85bd9dd4aaa68566ea67552dbe2f46acec477f21b5a2c6cf60556fae7b8831d78b21bd9033611659849a1ee78ece3fe44d1ae94633b94b7bc2f330e5c09a4a475a1c2a845262f9848c558361da18571420479ee3644f3cc6ab8015fe3228aa55589fa6bf2d5644bf299c69db03a3c6b242d3d8e03928a38e55e727094f38af38278d086c547d120e9402a1b45cd91133657618111b43fb549b3f57bb017ce41dc3bc5a3dec396f9b59badc3b3eb6cae6360ccbc87b722fcc8d984456ca54bbe04d972111cb5bc3b8358fb3606d3ac00739468598dd5701a1b843be56f8893ed9026517527779d61ff3ada8067b4c2109d78161f71d8a5760a233fde614842093613cd15946c399fd38339b2a3936d3d0b8b9d373bae3d2923729003619548efd55203c627174628b15d8a2d433631ba1a374108de44186b92f2cb9a1626454ed31fbf82f1edc9ee42a1b0608db5e2c0f60538e92a9d776842cca239ad0e517d1ac08197d5868c3c7a72457a7728e8a5466b3f8cdcf43008756dd928bca7dcaadb07cdd786f9b58d11b4da8ddc58e6e60e8ad5886c50ebf4551e49460167921571095887bd61cc49e721320bdbcfc4e1d0e4665965640ab6629459b902606b7d79184f6ea64ac071cebf7a0f6bb1d39b7564cbe5a502562c60091c266122a195554701161507728addd1c61e2568934b546b355eaf8f9dfe6c01b93cde5206831517dac50db6252cef621454a7675be222f040755b121769f7e7174550354f93039cfbe8b8517c7bef85862ef54862fd15f8f59817107a236188f388fdfc3fba1271c17261f69f40acc93f9eb5ff9737fcff252c97d3827b63c3dfd50db0888ae5a3a7e9e90e666a59cf2d5f8db41f01371bb1748ae53d65f98a2832ab77e07103e683c8383903417fc88ae5edf7a9ebdf179db3247782cd94aab4482c5a0e6a98f50312995f9779e8257ac096c984784b0b9e056288f598105e12aa94d189e5dce039c83a5a0288568d50b78fbd3ebd7f0cb9d76fb3747e627c733525bbc64a71757a09a775774d85539192bc2eef90d882bb5bfc46cee71cca8324f582a30989854da66a711e2ad5339f6c73febadf4ce4e8e65b5703f004dd425f6a0648f6573ea1938a6c63d7d694ef5f13af51991799bf8da212aea858e08ec1392922f30406fa5d8cc7b181b478eea7f39b01c17d609e82a6053062d01691dd705b6036378c27f08aa6c64b19744df10b2eec6a96a6e947a919d287c69f435aa274152c379e4bf7982f93c11bf30bb613e57a1fa6ac4ea169e80572ff0af678612cd1ace2147844cce9cb7035a9c25a5faf6ca04bcf8f935272ad542ab72b8c800cc7de848222e1d0dbbf3db38c855cdbac3e9f9aaf3a69ebc4e51e85cb02ce7e3263b950a549429f341b43a46f1217ff679329d5d48c8148a7a132dade95c183d6f7e0b0817553ec6d8ba152f68fc0aa06a5ab4f2db789acb42328781d49b1c5a2e782e8c811b8a60c0824d742f7d8c446f90cc19d3393ad46958f8904e0916164baf4b79197b7aed0354fad9624706e1dc2a9b78020881e8f60c479257248f151a479c9a5f2be4345ca709a5914c06074582707d7991606e9d1ce97d2368429bdd3391e07abe4bfd53260f8ce7faa472ce4b83e0a022e8ad8acbdff48dc4394053229e19914f4bf4c5aa8e4da77e5c61f4772af6e6dc06abd46042fc6cdc73e1a3d23d46d44c217b3c464c7815a29bd8a4bca158ed2345f4904a7281e78ae51da10a4a6a7dcf461dc7e8cb1980255b812db7c8e5caa8bca36cd1c50b6a281295d920534408d0484b9d456e294e8c900bb0a31fbdc34088aa06582a35d640c50421d3ee5923024e1289db1af08f2a3c0743e1b7aede0f685af85039aff1e29ec12185b5108500f4551c5c3b7899f287569fc6c14a4c4beb15854f7df970903a894d1a0587fd5b1b446a03472513f859863cc07ad4f3e2f88780c8b8f0d41d8ff5caf039afdf433d1762c21a41c0924e0532d270ab75f888014d198aa2e6bbb573faf31e0b8daa10b2583e3be586b6262ad237a3ad02ae526f9df4d014a0480f090bf717e08e6a04dcbeb98305dbfe038b840550975d3c2d36ee4a7f2c06a9625e9023d6e2dbef0f8ec0b823702a9a7d043abfd23e4471ab21811a31ac8cf239157f5344c1600bb175c79afa25358194ccdd47f25cf0bcf82a444a4b21bbc86de4057486af74a5b5fea0085bf6d07b7572ec2e521a400c6e85e553c895fb59f309761204025c0277429245e55fb84c7bcf4ae77570be3c583b401f9d2355e1b935908fcc4729cd9e309dbcadbbd33cf03f63bf44dd34de2ef30553be35e9c9b3d7ae0cdeb59c10a1496e26d2dc246f93e8170ff92ca5fa1f7e0c8c414e9cc58797baae4bcff029b4eec25b2d18f820cc41212d53ea950514854e7c80faffc835909acbe1b33d03da35cd2139b5b07ed160e3db6c09dcc6a052075b0b89a2bace6cb5596cb81ed18d6656f84f0e9543222e5412f30ed8bc81bb94631f63d525e003c787d46ca83197b260782898d7fd6c6160e46f92339d76af67c2800cf65461679435e944bf23f62029f87692e6b2263da9e259618410b02ceadaf106403bddd9184d85ec164032ba619f11b6e7336167aceed385d90298914b49ece4a411785823effc0ef7dc15cd731de7c328f3ea3d41ef6d19842f0134583890568a216d213e8eeeac7a3beb67c60f78104ad4c6deb408048c58a888a2d32f4daff18000675c7c12343aaea5263080651c5b4ba51d5ea3853c17076c55e654c85b4015138af0a9f0d04053a883ad3c7baa38612bc2eba049392e2c7b9516dfc2457a75c87cd9eb2403b352449234832b46108494879a5f3f169b110924507f57e2df5ef86993884aa83ab9d24c57a35e7fcb82d1da9d03dcca9444af98e6118316a55cf682bd249ef001f3822d72cece40987a779878d091900c8879465f3ffbc6fb19a59f990f85372fe49f6c732582a16bbcd119bdc1e64b99e4ce714bb66b14bade3bff2ac999aa3ff10ad40ee68f93380b9d7878079df613fb7755d3178149f55e4870ed81ccfc498504574480d956254c4651bd0a6529ab921238ac9e0aa5d09e037877949dae8f42fd6f68465442a39810237cd7fc9933057ad443cecfd7d5f09ac818b6e94e3a36d41193f9875f77ea21b24e5c00565d44a932258c3ad44fbb7cfd2d0784c49cbd05c9aa10e42f11644f243acf3c19cd92b996fe23d5f4ce479e35909d15cc4cc0e8aa8f1c781b32f7f5943cb2f8f63ffd7d879218d0813e82de73f19756e163547162655acc0633788195e087ee66ce3d52c25baf9558699caef1ff62ef5304d95633ecc835ff1e79c0651a669f2cc84f52649d92bcf887da6b9d360e1ee72f12aa40c5ef4435d6ad2808cf542af184ed56eec3a6b41104a738d5656f34ef0409bde205eeeb2d2c594fab6df84b6e724a116f31e96570fe77c7b3a0faa42ed60649c195a8b11ace23b0aa2dff2054b76fbb04e5e43c96e613fd74bfd1adc08f86db47755ae6aa27c03f53b24bb0cc874b7edfd656d2ab0aa40f66285bbed008045ef1f3727f95f459e153597821f698c7de2c24341000904007ab4f8fe64e436dca10ddc4bdee1b74689b4c3507a7344e748f73b900db7485bb44a80e8288bfea7ec10b4647fc2f197ee661a24ab9ea19c258b1c03e85ed8b89c8a5ffbb5b62aa6b3960559136ebbd9505fedf97f82256200c39707a0322ab687fbacf0edbf2e863cad56c8224e293f10c8b0918abffdb5a906bbfab30c4a2b5d23ac5f481b3004489813673cf3f88ee137f31cd0f3d3e4f9743b3a50962ad859d122b94051eeac7a8884a021464659772616f50813a531e51fc8a133893b5800ead0b6dd16d5a836b96c6c56b129077e5e92dec2279e76edc9518535cf621af692367355928a4c6a8b4529352707c280aedb30647db2ff1d9a86263d0f9adad491237dd7c82674cc3db0016bf74fa006f41eeae9e53afa574d61153eab4eb373e35dadd6c6b7c585b3b34c4afab031360ba86848a0cc5f76dc88b970f3172e839e603a175a993dffc128d1b7d22cc3c196339f305be0cc2a0dac7d8d593183afd88e653dc07d4669e077181c00de6e381aca231b8ac49211cf3db65d5148abc1fcefd8d6721f0fccd887f374a411f4275969c637328578521afdf6630fc6e47e3e308d5f5fb68305e9ff48091ff55124bd7634a0a84c14052ef765bcae8427094c793f9026cca0644e10c7f848c8f101e9bd1399a62bfd5948a4703f13ad903a3b1d0835c0a4a0969bfdb94d32d3a9c86bcae81d7b79f32ca4fa7adc410afbb688582d1fa3412b11ec52c19c803f7041c909d5e49cb7eba5582ac42604af82425c0308f6da8236153ef19d8ba605d7a2b6ad3702c43f4c14900150e56a241aa9b565d85cb95d340c7370b98bb9fe43fce569828a2a61caf1f9daed99316f36497b4e2a47c0dbc306dc02f2af66be055c6713813acc3616f0c758cdd99f5c2a4bf01e35b772b57521d78584fe499fbcb9a90f5185b34715cadfa4830df73c8e70bcdc1745fc025b434787177a9ccac29c32cbb84742d319304813a58b00d173a9dfc5a027c260ba06334e1e430e5be8d337565b078d35f731ec2b24aca226856ddeb90dea059720bfcace8f90ff83acd540cf80e0a591962af410b8c71f165eb1f89b467622cb796dc2f227fdc369dc1719142b945b3a018266406d59c65af475026be07ffdb908b4ea9bd7305e6ed7898899732f4a7ad7f327e05a275a71024f57cb05479411b7c941d93b7797d037258e77fa14f39be80cb11be19ebfba6a9eddabc19d91541f010fa853723d349cccd36b121ea4d45d1cbc7e8daa9563b5bcecb96e977ad1fad7a553175534b9a6e2dc5e2a660cd2e7a14f8ccbc07006f62c6cc323e321485cc36875df3c73860a97cd1f003340af78d087cc964a53fc1dd9c1c50929e8bcb0a6bacc6a61b218fa7147038633cf2187516474c893426988587f80f1b2eaba2e0eaf8229ae2ae0abafc0493a4b21d9f20bdfa8106e654738beee5cfc5340c6a45cec8221a8ced140641308ae660e55a79e0b7489ad207a76ba8418933ce55fb4e25f2051f3bbdac46a60329147cd0f8724941c442415899bff06111d2b5452dc4008051fca78dd8a6935fdcd287b98ff18d7cfff7422399cb9b340fb9b89db1dfccbb4c0d93be841d981ecd4c14cd01649387731b5c021812fb696ff32c9928bd5fc6ea1a9c1573ee8ba2ebd97f28a0829effc305224ef8b00f3703ef5008103407552e68ad6d69dcff7641f728306f848bdbe38dbe5ee589484678de7b024e616825cbb1e8fbbe405121e3ec3a1af5838869a8ee50c96c7ee147d84a13bdafccba4239a87d72a8b0b20e73bfb67256168f7a05aca6100355603f258c91135b43ac4dd8e697e99d509e7fd8eaa893a74713ae6f200a471ede593ecddfe73935d7ea5c48b339e1b9a8b3e72b2fa39f67062d6eb19afd16625d529cb8f720a43809a0f49698b123e3c8cd8a0202b2a7102f46ebd4c0b58ee7e9ce0c9c2ff94a29d1fbf89f894ef3967a95c28f89d59fc228a44a785b83fe24294c3e15ecbd18c4dfaaaea09846d059b4a72d6b4cba839a6b8cbd8555a6c07a6aded813028683222586b696e82543df778135c263fb01fecefc41b788edb5534d48ad48c557dacf8873efed1462409bda54c6532dcf34de34d96930cf3dd9287d2af2ff6803a7e2f9a6ad143ab6ba0bb09d7d374edcd27b27b713ed37f035faa296dd8f6bfbe8d7d9e9931912da105a4ecf2a17a9ee93c6b450955117580c6f5cba2d013f0c2786c5c6078d3e56dd8fccfafef67a49c401e8e126037a0e10282617560d78d365ee57152fb6445538d43195b942c5b54431379e6ab245e8ced08ed193d90dafb06fbddc5425c9f9a02408f767638c93c3cd451e0412391910e03b063f3104953e31d553763bc225d5100cd66e3930bd39a2745f5057f626d981ee753303c154b01631b72a3c4e2b38d7a60dbd0dd6d80f136ba831b03e3462a595cff6e4f5a8a5be4eaa2ba9028ae14db583f4adf8522b0e1db3a7a5250a370ccfb532e2644943987a5d6f943122cd7f8f5420459791d0cc8a866ad7f280e482f7c2eef05ca98a36b9930bce7e559a06ee7924deaff8395e57481d03e57e7bae9563c025165fe4cd3a15f8dc9293bf33a094f21804a69ea4e1ef510bc6c1e50ae2e1056451368d981faadc906d603dc1d77805e06dde9e8950393a9af384cf200fdcb77ba656035402a4410ef06bbcb0a0fa8bdc0b9bc0bc1020acbad7fe19e9053c2b15ad4c6229709cd22d3957f75b0276229d23f5d9fb9a0da8fa55ab970de494960b9d201bd4a9320441546650e9552ba07c9b9d56c4f1672572925549bf334cf073893d55cbfdfed81d05e00a1d35c77b9c0644ba2e50a44d1727d96130202aba315978cd555202a869ec1d045fbbf6b5a66352e778ca0e930688a67df0418bce24180832ab6838ea756584297d154622ca32bd0ded8f9fd855792e3d61bf33e18b6980b353ef37bc08228c453e74c485894e857e0e4dff58acc7e41ca99df0ecb90bc2b1873e657f7c1bdc5a3220cde77d1f5172ec2cd8c2c41cdb684652eb58f6ee2ea0f054b8242e3cb04abf55ceece0e014acdc6a3a1715b9a12004049d9267abfd94de5ae1f3e607ae4dd284eedc03bb2f09ca063db7f150b2d19915b144613d9aea04150eb829a0a1c67624fe1c2ea8ae5119f92e29097611a66205ca8f3d7687192f326ee823d73d8b1d7a6442841859006263f14951d89ff92bdc6972b9661aa983a62f279f35f3f7761703ce07dd149286183d62ba9ce43cd1f149033de0043ca5d88836ea4866d1f91cd2473977fbac0f23701c60f692f4834b3ad5358285c5b6a1ab908fe601ac4816a986793aec59d42352076ee498a252266e4bf026b399ded0993284d33308da07cb1288cd1d50d367e6c7540be3716adc5babb0ceae5055e8250acdbf98027f7754e5b4f86d9a7b747aaf989cf43e1cb0ae34964e6ee124302c97563417e40008fb84fc2cd6497aad0ff640374b94025b194a7e5795991c0ab14ab39cf49390ba6c46c02706b4611c2e7c17df1980647185dace55290d68a37a8ec99083a4de2d52bcd727cc510cb2167c989b550aed4a67812d225ee1ad87da98b1a26c98725acbbb1ecd1627a7a42049f5becf7f8d4f2af9c0b244549d85c85ff5aed465693875ef35faf5c32ff7c9372479c9c4c52f9e395c120f2d1e19c9de12dd101c23440e994928dbea5640531fb30b7ef5eb674b2b5dd62df75a94bb177101dd5f96f6a2929de312dff8a486f570ec63bb14cdbacbb75fe4969d62a9216d143e35fce324836822cbc3c596c5f52e07d22babe78b87e214758ab70e6a86c808146dfb14e01f67a06fbae335a868815ec21f66f16c6cd2678fc3fe80025252d42a51dc8b322774b8924ab677c23c7d11afdc53faf9703fef13d2af39187c5260792f8ef23ee99f7503f4f1f5c8b611ac08a82f5c67e3add1d6a967bd5e89ca32b3010bbab1182c5be1fdd1cdd3dc096968ca4ad91d52b5f3cc363271b3862012dc4e2c08ba9b86f05f88ea90062f3573d5d8079b494cb4f74dd4b012d5c9e4df8629837737459940cd4a40e3908a2f407432671ae7c16ed5028dd411d7538acbc396bd706ac4b74b55b5ff3bb428e259ec3f5b4f2f399836ef7201b5d6d44650f9378973ff776af8194eaaf01f722668bbada1cf4251236b24c39523d25ad122ae16a7f744ab8bd81f54e193399f3ba8a8c0d79203681c0219786b7a333a706116a08c25d42327ce3e607078cafc81d8f0818909aed55cbd14c63b3b4115d6c43443b70166dd0c604220ec43246d517f0c1e2af25084fd843a9b55c969f5bb661a89274e3f200fe6b845988017f0a736bd299661fac7d5fcd243a87da4f6e22dd930f8b45b8894e0be120a4146205388e9a5cb975fbba95e1c75219232ca1958b3af03e7bb2304d5b104ee0565281fed87077fd4b1b888f45156b98b097eaa02ca2d9dbcd022ac82234946d703b21b8fbf6f0a009481a70abcfc3b6ae2c7802c5cc4381fb3cc08f722d64652c994f1388ad14948bea7b09628436cfd5fd59ab7b2004119ba4f0647abe5c4db5d054542d1cf5aa165235a8849f33c14303a9b2cc53be2d1ff5735665c944d635b0db933e68d3b342ecee43a7df276f576fb149dbf13d1018a3577894fa4e6078332edadc8c38a8d18c4cf86baaa87ea3df669af89671652b990fff6482bf8595a876ea6821508da926d5dff9e98e12c151263d6b9001b1be0f9e218e3d930a1d023da6aea25ceb7bda89953bb92705a5c4614ea6880fd1810142cf2184d55570e22c38bc3f99e302745f1ee289f769e5bc9e7cae1a53bac29116c0fc0f96a6bd80f6041c898e881bb320a2ea94331fec9f68948e26329ba6131436819b2c9282d6fb61fc8f87acfe9a6327f334b79d15e2e327322891dc948232c802e4377d08d852ec5825f08166a4b082a121ab28f4610e3c39327ff14a9357d7a7902c9e1ca8c4b84950e1f8996b57d153b60db03b74ba5282bde98f601b768de771a59d085314fea8c357918aa1ad1d34c83bbd44210a7a493190a12ee84fbe4d27c912d0549bbd2b711664013fc3de3685f1b9701db7668d3aa45ac23c91fa4d5c42c12747473989d2c0dca543ba9701033d78989416fa94528456133737b27acf44944261a8fe173de66f11266ab4d4f1f1b271a86039f719e44b81f31475496e73eed046c42f0ff908603033c5a786c685fb081a1f2cf7089dc1fcc00e5cec6edfedd1f9a10f3728fa501d74a547903c73bef90a5dd9ed0fce47d20e22146e8ee8e6cfae572393743edab93ea6d9f171d14e066e733345ce64787880c6000f1b783cd0127e58e0b27835bc1e4f1a3243d2ff04100eced89c4e3fe2b083f5fb98aa813375a171620ed099ec2b9abc39245c664224ce31cef5e4b78b6effe8706b798dd5c3279d4f6158d081331a67a6e6df5dbc02a9c3f1e14950a5220e094a5205d18ac690a60190590880c043c0c0147b208bf17d8102ad3e959635cf551fbd3a20669e1adc57487beef463da2fa0f809990b4885b4b415174fb679fd63cfe1bc7701713c3018a0b80eabbbc9c7f1aa0d98cd840428e274b7b012afa850f7652bde610147c00bbe8272e7d86841f546d56573006cc663d76fcc0af83d994b3421c17b199d0d6655ce3d3723ab3e8d7987ce97962d7c219cb7648e4e9ca44d5a8354e8f56db3e182d1eac729a7ea485402236b1f8ccf25673d40544b8cd7f89e1fa49d98d181aaab2fa4e4f962f0c28537ab4729bb83871bae6138d47036f3e4978069c64126494e872f70e4aaba3511550435fdda57b60335658d9cbbd0d0ea87fa40c631a08ed31e829420e72cb878f50f37abf156bdab08066a343cef4d7e55c4e079fb377309ca34c857c95c1cb48bdb701a33942b50af4319473e44518815bfb65dc047127683f55156946caa23d3e8260f5a2e825d68657746b0cbb3842812378bd66c20c591bd54f07e8c4b9d22d8847024122f32a447623bcf526a1c4162b7176b886638a5554420992fd63d7c6aea0505810f91343bb354420bdd6ba8a218729070270091c5bb2720e458a0f3d855d4c1876d998feb5bd3e4d11cb6408127733e58edcd343fea8a8d537c99e1f152bb9f271f6bf6dbf16cc1c2868b607f496bf8d7c543dc4558bbb092944692a60797590184a24b946c5da8e357532b3b4620ecaaf7372e2d8d8dc515d96a65e0af4f1cee27851cdaf7d4db0ee589ef857e8d99a0162db255ce834bf40b3af6bc1167ef42a30993953e0e602a1d97955dc95ddbfc1fc0d709d04f9edbcbd6bd21e5aeb417d1f694cc18aab1e1188ae135dab0ffa894f07548d9f69ff536d50c05ce045218d597970d893bd1dda3d2424195b158a7424f216d3a262492b011a76e185aaa775fc03dfc139a3ef08804eac68db34c6b5f0a0b92d1c50879608cadf840ab7e4138471f28a4447e9960ba4d648fc761841cc8b7a991e7a20b71a613d88761ef2d42d04d8e1c14fa42030df22260e6f1c77997d188dadeba46316655d297fee685ed6aeb8cc943b4628275ad582a20dc294c4e086cb322ea24349843ec2e37ca87c736630c5796d60a7a96b4fa982f2faf8b8af6d820b4bd56cd77234ad7a280eb5948880f72ff5de70a33ada0f06eaa5463f3464d2f1ec399765d2d2c11d0b4ea9960d0ff4fdcf637171cb430fb1ab29fc27c35d5de4ac77a26ff51585b4d474ddc9855b022ba7e78b61ec351a11b1e65f93d18bf495a1de2a948d4110cbee981fdf4f43304ea7c650945684e9d9770f0453828d660e6c104da4ea41a15db2af3b836ae68004765c5b009f2718ff27cb416c29a83980d0ea45085a008a4058cf40051d8d0083f8a8810699e1edef897a756eef0512b848b6038b18c88881de30b287d9849b32a8b409ea37816d86ecc0ddcb422d8a3e167b25f09c945fa0da02b8faae631147551ce51fe95e855758c1bc808cb4153977a091d8df9d495965e0fc7effd33a6d41b9c8a432bddf05f3d0f545cdbae871cbdf3f0ca0fa49ab745d5860280ab9b34ce080bed3fcdcf358e3bbf91d3eff186ede86db2e78533d69f65677ea2411893cc8fa78ef8ef49ae26771a2e21a9fc0d69df59df59376ebc26f0d0cc6e8a7d380f78e477d0219511f679ea023ba593668f6cd61a38757c15ff3ef48bdcb4c0a15cf48d051cfa456f5ac0502fe2c6020feda2372dd0501775730186f28b0c1d8d0fc255c7e8b5ed79c10955a0aa52a6c2315859d817ad3a1058f5bc60d01ab4d79d6a6467bdc4ea84e40c6a4514cf79135445d798c0c75fde835ad13513302815417c8673b0823b502ab26602253e7913f4bc48f91f01d8d293ac0d9b30ae8ee5cc8f264c5bb2b27963328cf13d082b9ad57515817f2b30641c339bb3629f55974d1c84d5798812661c4de085e5103e85a2637a4b0fa4c5bae09e91f53d5bf99fcad1a3d4501555c93260be2f68c744cf8435432ae230e873edfae9abb76363fe2741239bf4ee31aea7b0d2bae140295df4c271f1909282737f84dce75ba35598c2c5171e9a5fd48426ab8674c87225db515ad60010df1788ebf6710ea93907e5742814b66382689f1ac05150bb1c4fc286850db05a2452b33ae90f2953844391bf740a80b2310d3d617d15f7221bf96870a40fdcfbfaea92932fb69c217a5a1fbb1796620316b1a0b95c90138c192f0560830dfb7fac079293195d2470f6dd483b5161d5a242a03beb62822317762eb383031a010862b26d6350f77fd09543e535c5b9d4816aca96231827e227948517b00932e2a247fe8efc2b50d642030694e8314d574a7646bb88c315f89db5c87173eafc641169a964acce9b77bc8fa81103e8e0c9d81d4f34a66c2c8595f7557a6c81c503ee0e8395f1b4dd3e54f1c7f2f15ac572418f4b7365d46cc43d15ab898e6d2874c6af80ab4feffe60e26721a773b7250c57af781f3b4c2e443a812370331d33d41c1468fe872b57b0fc82b929a99bb6cb5e9495eb3d5a19f58938ae8b1afb787dba3dbcf377e3bc95a47006502a0a656de03487130ac4da76083864032240dcd05bfcf52ae640dd4125e5a549462f6aaf91504e298ce35b844fa8522195a1f7a6a5bac1493bd1c6f07ae2c49865e210851d8c3317cc264de8439686f12669bbe084a8d5d346c7bbd2093e8c05264057452b6dec966834f588a1f41c677ea5491aa33b8b7f789f84df93021aff8ab6362dba12a6c5eb4260d4a09c486c29990eea0c897200b0224e828d1e851f67d61a19345f538291076cce61994583f449d8ff2f129f9ccde3a3746bfebccc119f43549bbe97d084055a75fdb3eda26abd3b7bfb73565536db2c9d6649f0e4a7bcd31317c1ede41af23216c03211308e67256b650f126595f04e91f4c1b88dd1bd67066a2b945c631f4bc4d815f66c4dd0c9d994e2291c5b68cbab9a97db689fe6217ae4c4a38b65b61751d42b4438d689383e981315a009dce39f710460243599222f56a8cb2ca45f88678cf06e52a529f12ff6209162b3f9497cde9aa26fa232d86b304068d448c7811973c86029b8a21a52e6e751db92fcf51e6e5cac9adc85b886dd28bdd656c9effcb0471dc94a8e0dcb4120390191dd2ed267d1e7a3387fa7c6d13b5e7b9d9fde9bc4b41c1150ef7c84dc99b0df324230ac672df374b3a5f24a4ab2f380cf8435c87d75f5b779b872e042269a07e29e21856213271a444e02b70b0503927cca5bee3945cc66480090948dd63285a911a4452f3a779e7424cfb1bb1d199aa40613edadd85c817758a533d03f072e27af7a59921b378aa434e101dc902417aa26f3c032656f0fe40070bc9d83b7115d6fe51e470d669ce4746753e6a1edb20aff7a49cc0ea7ae0e2c8cf70e413da1421bb5e8f77aefb96544cc9286506bb393c554bc7cd26b307a81296ca0f9a841a3b091166b278fc286bdc755af646f6da0b67e8a7c363846d57f5402ae4dddc1809a08936d06fdae4b2d5c520dd746ba4cb6a1182ee4b4f4067792d92ddbc423c6d538ae0daeb7b4b7808d177ef6165c157e84f044d855bd2522a61d33dbfc2cd0a1bbea456c837f7fc4345499db880a0cf13ae7d6b44b41555b3f1f403368e37cc2ce65d5e4cf0673a6f8f5675a266e6e95cb2319815328386d89de7d38b4a10d5a1f30c283d666d72fb85821b0b392512109ab8540aeeed4e05e4c4ea77c00de370d65985a8f369db1635f2ba8a2d8cd95ab927d81de8ad86365c6d9be4dc79bc4cafc106da5ab887987531d81a8fdac37cc2e1ce13e4b44b70e898c09e056eec0afde190ea0485649b4fd93816d0bd518519ab821c0d4c2b8554157d8c36fa408f5d89b8a405e4eb6346555092b5c674cc9bcce8fcb860d21dc528cb12f7be9a606ad7b6d068748ec45c123a158716389f84fbf3cd31541655ff9fe5ca4c277e0c3d27e9602ab27dbaad3af8640f283c07e39e6bdda55706349874e9096c1fa08637c6da1e07ce6588372d6ac0927bf1f62ec8480313952c2c8191d22aeea05d772cb7eb611a592ae8247ead40e9d7af70665fce98840c2d8f00984917b4735400309a833d53df3aa4cbb5e45ce7fad3ac1d05f8aa0462319427174bdd2fc41fc86414c9a08ff2616fbf9ee1787806f565424a940aeb322c96035f831a951a218cea07ae7670cb529cbd1a1cfb4190a35d5d57d9a422cc70dde071c5d9ec45d20f337a664be4f6332de82774e879656af9cafcc4fe52915e90b26dc654170f93c5501a1cb5b75d5d91b8aaa40623bd9e6a90c55bfc4bad07ccb3b3c448c867cd79289c0cbb1a5b4e8d20b2a7d884d2320fbe1bb5e2901cfd95b6b336321b817beeb66f81f2fbac099ee16f12029050d4bc451503f6ffc6b915829d37e55fef69c02e62ef09b19b74f0b05bf0612c3703a1663948396cde144ed1d756c7e5f17aaf23c5749397f84899a3bbad6fc4b425d8aedf82d153f799918f92b9eee36b5c2dc1c0270bb6cca8c472bc987291bdeb271ffada4ac6f82070a8d4cbe35c87f283fdf7d683a5508483504383740b10f4037e2ed8da0317f31bdf23209a445de413e617733885cd198d5805b6d680c087408066ace0d76401ade438c22185943c1700c049899b0fae137c0a5770688116214be401f1ba7f7ed3d61cdd58b2fc02b2b1fbd23e1fdfec22ff3dbf11532dd5bbd388bc9a8f7744c28c833e942e3ed4a081c9b43d3470e0c2aca676c03b3798f420205465a2e9888ce6a37a5fea55a175c66008edd2bdd9b4ce84de5a4a1dbc786ef5d544ff4240a8c65bb8520511234f278405ea486f47631931638bb93a098ba98db38e09f7e801e932a2764f70a0b80bfb46a9cc70b5ae36389c3f5f816a66e5536e24e774616448c69760ab2a17dbfdf7c5f9f16c54e7394c7319203b5f31a57723de1e8f52713b81cd0740f2bcb0fdd124c07e62f35fae24a30641129691a361012712e1311ec7307270f4a90b0a9fe9beb2adc75c29e1e395d4706fa1a2f2fd61bb8ff5f279545dc3c90b7293f58c3300afb20dc80393828ba70a21c7a585066bfab77e3dcca9c74d33c0498cebcad6df5f99cb02c42136f67cffa4f2417ff7f56e0f72143fdb54d741cea8d8bab9e1bae8c635deae0cef1bfe45e17e4efce4b62358f26c7646de96dc88bab3c5c001b9d75a3e2c446dfe7effa321d3016544071d7369880eb3544925386972e8673aa82fa8468c69a0a779bd577006af523367e3545697e7e19a03071f8f90000118e2c44831fb4a2cfd6deb1d4b6c1bac6649befd2177a39d428d5e593482e1e3e9cc06a230a9530a7cc18f90b50218e28fc1956e240b67d26f6650f9dab915b047e21bcddc875b21e353f717f92a7edd4bbe2e5f6bd7e50727a3d5c7a0d8f73fcedd7c39588b46c9566e9feaf96c1e4f9c172a6a79ae143ad11eee2200ee41d81c120361adc3e909fa48810095c9aacfc5f9199dfb701011eff5d99427d26ba7c4090037b283835000ae04111b9b2f946e8a9f7a04373e7dd65d217ec251d9432ee1ad19b04e7ded55e6aba56e380706dd6b5c810a506c1d80530d619a57e69535535aef2bfd8cb6414fc8a8e737624c2ee035286098f8769de63d51c14f55734527c7b6363119217b64ab8fb3eff010dc78ea4c4becbc3c62a8a7d5fe1d2af0acc505dd7c194384454f6e953f2fc28b6bbfc6d5b39b56af91b06532d329212451e75b50d808d39ffb8030a7ace592974389c7da0964dc31d788780534740ad51217da2c119f12d3782df140c286d9f2582317400c7df5af75297642ad02775302c6471beb5e893d40abe0d35416d59d5769a3954a7170420e050a94d72471e82bd8b27dd36125a97eda0bfc14ec30817432a8a11924416f317c347a59b365383dd2922fe6f94832f8b2092e03fce13a49fb6fcd5d27a7b8b19abe1fcb9fe79604e8ea3b14c3fc6273c5e7ef01fd90ed56dc54db412044e24c63fc8fd7e9c2775c40c419f16a8d9888080fb519d287b50c6fdbe2f801eb59883bcf104d475dbc708f60fff06f41e5efaae00d0395f6a1410e8a7e99e41cffc9fbf7a445b374f09bcbf3a071c8f41cfa529c6b630694ef3389cef876b8c814d5d796373faa14fd504c57b374186d0c44b6a8326bdf0da6827d3da88141d40854d9b89fdd1fc3ce10877f90118a48da9841ea5d65fa8807069fb48f311a588640e37942d468ed9616e92a7db4f6c545cd266c6b21296d8e235248f476935388dcec5a5a0ff592db5a12feff965c92736b006cf06285545ec2e34083a93195f4d0cf73531022a3b5c2b2573fbdc8f7275e3e1d3ea318e73936448a7a0e6273106e5be8a6f97704c4a1361692e9439cfb85a79b1e1e97c66aa0818e2a622d3d3191974b28ba4c27e11d88f8dde88e2aa14c84a4138ef3bfe855d324e8a240acc5883b963d3734b89edd7c98687534d624aaa10601ee3e1ab9ca2a83456ff702f26fc46a99c10d1f3b569e58d9863ff857810695a0849aecbb812a24be524f6c3dc2a924f08b1310ecd0add6aefe40dfb411c73010c1b6f0303f3ecd0efa38884818fa9bfb9f16347ad30030aaaaa7bf73c1981ed45ac307e5fec288bc9f6b67c4cf3bb365aa89efbd8aeb2f39c42454473f0cfb1aa639da02883fc68f080fd78e2f18fb10a4dc037f6c8ff9177e2e7cec13cc35e26e007210ece83a69e68acfe0cc8644ab40ba554caa1d5c11c1caf2a5240f105455f5222f7449b371e5040f19b55eafcd2f13b08423e6aa474b0c10bda3fe593cba955372d899e2ece6f4ab616119a2d1a94f2348cd662788282369790c6a586f779ca0e9036608363bead8bfcdfc3211ded81f584b6b2d54200676fb3880db797392c7e1e96e2166c72a787487b4d22de0765fee14c6fa9d7c7efc81c77ec12b876cfd1e717a58ecb04758ee7d882a1e688b408ee073d15debacb630c1401e3bd61e2698d0903f8a66829de441e18a2671e4bee1bf487025db57c1c358c21ba8f637e80527bbc3a9a78ecb81c7dba188242035949fad0d762973e51b27d00a84abbbc7ac1a74da0c26e5213d81b17d6e90daa71ad858c2d081796ddc00dc111d915841183dd363f256b65aadcff8cbaa1d9b374f001a119e0fdd3c035ee8016d3bdce1a38a873eaf3ea742a8cfb0df08e70092805ea67ed92858aeb3ba2c2c1df5f67980eecbab03eb1d86cc331de75408f6427bbe6d0907b991b01ee6404bf9771529151bda63999debab41349429372b975221458cdde395ab5826db1e48ab5b4ee5c2e4bc959a8ff5994c3b11681d5e654da15bb926a0e10bd02fef89d9570a3512e85707e8934027820ffb04aa8142596a32a98f29499a09f73ff7dfc795831b2d06313569be5c110cef5e512aac771304c67fcfa5a19d53e733ebce29ba7409dbb95bcee9cd13f32ddcaf7c466de157d843032774994a206eb8fee79355d45e4f5a3a8ab6b49c1dee08d6261dda206527cff3820fa93bd649816b0ab981df86d961a7d4ab3fa87e3edf33afc2a4b52d35fb71fd69e2f5b3c265dad327a58593529b393cc59b5e1eb5515f3f54501e20ce9b8186e68cb014e13954dd3b3f5d2a7c27636d5e8e8c164b4bf6d3f5955c68aa8093ccb21533537dffdee00ee678407d0c05c0e05758916357b1b10e1c09b2f8b2a7005f151a478695ba5713d8911404f2b9e1cd5b51c7532dac8011be1c9c83602b51b8d229a2224e963ae6b088aad5388ae3d6ec2c2282e143a9335d728b80cb59234deb233a3278a5fdffa49a7dd5e96abb8566e8809be0b9684e05d9400bd232d8691482b91fe2a2e5a1992244ff99ca0af023399d292c110baba3b60cf410afe1fe2ab4e5be53e52a0575f88c2af97c80a10f7d8c0d0c512268bc1f4275655b5c1674ea34e1ddb0c6a6fe7531679c0b6d0409c82b5979ea7bc56b9835ccba7ec84327caae1a70d45741f840cc02bd83d3d402b89b0c9486405752dd34efc4bdf558b2ee544a6dd3b1649e515fe8478aff5fe246460f285ee7d8b05bbd6a9ec81716ee80a51e18bad2e7b84c06c99297e53241300c3d2fc288c90cac96660ca458164eb8c26d2e2602d6618c400c906b3117f24a4eab4b29981f8eb7131bba93afe549e24db057abf3dfcd319ce870619213e9091585c78339032b10095840035ba239c37da387d36ede5ddbcef69ea6c6a2ce5d4c91e5bc343ffde4f24dbc0f8fa4ed9c69425cd4f360184af6c34307688324242e05502990b5fbca50c4615a8d9040aaa26a123cb6c6619848464ebdfc7d73d2b21693b9b01eeee73864a85f4c5cd7676a384d7fa5f062f5666192b7d084cf6c89731f94235f189ba022b56727b97da9bbf6382b9cf96654e369637b3ab3ef7615992dc477f1b7209cae6d8f615c22397d1cd9b5b4d28612bceb532d5654088254948500a4d115dd1c4b3f58f604a9d377b52a5b4ae94159f5c88d42063928291b5aa11d7ca5a332eb18a986222641574cceed3121bd6f4612547c25a515371328c2b44b7326f293a87d9d4a27737fa56c6671522afef287bee912ae894cb3a201f18740e2c7ba1bcb4e9431af2ed334290cb8f3fa30100163cab2426ee24fefe84ba6643a0f3a1ddac1398dfa787657e3275bc8f6fd6d7b75091a1ab43910a88b777a40d890cd92509c24c5318c8222b2f37602c6c53af5bf9ed30be929501b30231d92d34085907deb345b5a6823abf3f19b546d33a02df3ef1bd5a358a9812f1b0b8d975b2ff531d3d76f10bd8460f524dd496d517db1528e5468884f6683d69c6fb7b0769d9d069a15c83c45f44658e29bc6c0abfbe1b3072c0bb8ccd7353cf1be4fd402e09ca57b14539b3a1dbdda68aea7f69c0bea3abb19d8ec57f5a27697a642a4c7640dc705945593c958a5ab5ac743be7e008542c4d789794d11e0ab2864c1ee893a243a138cb6320dfd7ca7a76c14605b968dc139188dcc6af1af5b79134117c77fdbb28ca50ed82786555bfae207a8cc09ac85fa2aea6ab97462c73082a66b4cbfd998613512346c19534f545b6289d41d4d0da91872b9f4c2d1454afdf20e278c1a579557a417aad690e4a1fd044074af2689fa2a403360e46cdc3d199e30f3fd8a6fbdba1b6ea518c9839d4057d2ad4b51c7761d350dae72ca024173d26637f8cd830f6e750167eaa429058724c7d1d834cd0882d19cf2b09f487f3bb3bb8bc289c604b2bacd02952590c8c010cbb14d970196a8df75c2f189ac9ac2ec5f553b7594e3175985849a995ce90e0fad9d0845ba03f936e2bb8cb3b974d6cd5707c87008b9638e00c2c292348d9aa4cf45370c641a907601a8d1f4ad3acf23c4aa62f5da12bd1a90d2a781dd15a6dd0028413b0f450d410ed177f2ae3070cb363956c0e005d72c40cb4378f505b80ae849b9e3f22d37c1f60f78887fafeac1e144e340dd26757cb214e267412cc32569ddc8431eb5a2da1df0df8bb5685614e11a1acfac8a78476368c122ebfa605c3d878beac5e74332aed135ac91435cabdf6b8ff030f2c26c1e64943e4277b9d0f623ef4dbce81a647ef4bfcf68226722c6d4ec3ef16044ba2f46fb69e2bb9b696be60c75fbf6e4c3246507288693256f6a55f4e869674fa3bd55e81ccb5df7d0c51d351e3f0a67c2a51f67db058b9fc27297a64b7abfae1e210e28067ecdc135b0463783b2327f32d857ecdae66efe58233164436926887366f96a583fd3338bed7232a99c6ce4d98696619d65a7d7262930ce5b5714afb0b31bbe8d3623fdf2f7b115be1b120b3495522094be112e2d2dae14d5bc3d02bf6a403ec2fca7e171e141922638f0b02e94e467d72518b4e1d091cddfc1e2ff3b77e586ae43877bdeea52711a7fec6d6ee6993b4340e6c0e0764d7c8b19a723205eabd6199e8a4e4c9e2faa3b27990658c5030104986d6c4e445820758cbf4f26069efc990a871b924193f4ac65b4668b926e3d00563ae23e751460b12cf599964b943759a3fbbaa4679456b40290cf53544bcf6c7c869abbdf4f6772297f5627f786ae1ad0900142c4355a78052e747d0908ad6ce320389fba196af61b5502697d5721f5dace669004ef9b14afc69be2361831d2b40902e113676c5685e53ad087cdab0a6f657a33f897172c5000cb746677d5805b7d1d182585bf40bbd3af820aa8785350f385c680f17270519313624e0d621d6125b85023deade8655286aeba1f3f9c1669eb1b42b4b6ec514d701c5222515ba6c3ef8f433610931614054c29057fb5b2a720fcdfb093640acb45935d93e501fac93e9a3fde9aa3d61aef9213a948e8f2654969e6ab962e7d87d5d6b776420731233427515549d2061757b7ee5a1bb6f0159c32827a5c3e7aac731fdad74d393139df6d3bb0b184d56f99c2c9a6d85990a8f46a3d9151228d709257e092792f26ae8ab5a498f2a160e6131f82e2b080a7207112da01c80e85cc0c8de5aeb6e19ea3d195dcfd7c1f217cdbed6c5087deba0619ac014b5c0b81b137c3267f829678273198368188dad01b3f3663724afc5ba9ae250bd860ff78c94bb6b519f17c57b15426ca7074b9d9fade6a93cabc7d824022fb232e33c283deacdad1b9cff8810bc4150cf439aa95cd72b8da903571cc093c6c462869e2ca6bf27920c68e5a761be8e001bd49f6fd30e2d4ca062337025108c2d989da661bdb82c541ddf044a45746e79712783260c277502f22d5d3e024bbaf4e35634b98dd850f475a7bccf506cb0b80272af4b639c1e01509a2457dfc62a226501dfc46de479a0d37f084d60a7174122847f3e41564fd8f1f48bc0a72d4cd7ef5c6bb91bfd04ecf6e34763c5f1ff4edf734bf63df48858bef3490620864904ff11406e45826a7846fc4eddc39b8a49859c820d6e84e0ee46472429b06b2c7af37bcdecc9f3bbbaeff47ab0dbfeaf98c8c058ea27f744702de29c37b00cb161c19f76e9cfeb564f7f186473ade0fe72950ef045378283c8a16b01d0d072c29f8fe51f7acafb500f6d48bd28358c3f7df2e9242c285587200ff4bff9556e4be33b7817cc933d2fb2c04bff8392552e37181c3e8c99c961a0062c56c294ea82ee56223268bad6558b177a93c5eb420c4694aa66a51889f583c22d7d898b65bc5d48a8e142dc887a13450dec712758c9c31f69a165dc71a241860a05068d32eea32b373136f0eb2747484e5fc0ff00eca562f949e4fd5966692f88da7c5359763bd65202eac57786c7b26165697339a9761ffe1de1199c415a37724ae7baf99e01824cc0515ae1177eb6fb5e0584774e4275b369bda31db593001d222f235862d2f04f52c6d576be8daf552459adc2c69b2fbce48caf32d7a7fbd20e71f5c0af7b4ca1d54b2b414dc795a78e5b8988dd7aa8d6b0c5528b246e6e9c3f57393fc087f54b1c6a37da183a0d9a30e17b5b892c15c9200215b9266f50cb5549a3bf91cd027e2b79d60e3d0348ecb3a770325aba3180a47e32be37fc23ef3465c25b4204f19175fc23efd13c42a48a0098e6882306ef90d179a47662996a7fc6aa80df82d0538299f3e3ef2cdbd2b5c740f180ca652e2e613d88a11b85691b56888923855fb133014ad273ea3c7e1094c239e9c214c1b07daff47bfdae221c5c58412364d37a3ecde855d59c76c0dab76a5efeea41723399841aef829f086a429b2a2f97e5078ccf1b1c106e1db3c208bcbf3df41623646b4937e5fed0e580c944e871712ba6baf567d0279d44d04ef6d7e6f429eb88cf8a50d0870a663eea2c8bc3a318c1260cbef851c01ca4786c3a066a3c67a33b3052cd4b3f65f7fe01f8ee4468f64b9e922a80c4213028f963af5fbd4649a5b88cfde2730ec7a6795d4cca3562cc8d761079f77ceedb85f5353c6de0043097e8335fe87a97016642868014112b2614c30faa750d8a5fde1a34103f8cda0358219931c4f3b6d77cf2b05cfa03d01928679a7e80e73fe209317bbcba9052ce87fa8af63dc5266dc6a4272bc5d89a0fea83e9155d8fd30215c59f908f2254eb844ef74a60c542a4c95e09df0c395daf84e0d8b893a9c18bf67029e94183bb4aadcf8fc06c7a13cb5aac08053065eccfc1fff44dc242f6c783e8f22c68f8c0ead2d826be8d1fa84e73b17fd2c5b3a9f4b4cce749f17d078405e25a7c250c691d507bfdc30a14f6b159d7b6d9ffa6e85df9838fe94b7cc930b9f53195fd21d6f5eb2265ff780e46e3dd5500cfcbe3f39229ed561b9715db5aab59987d90790975204aa58c9797877279d9f05b5e2c7c5757fb41723623c65d39722b6621a139a23051525cf991e9a487915e14e43c79cb922fbc95bb0811395513a18960f8cd66f04b5bbfa41c0887cf549d1bbe0c1591547a6365b7fa8a4802c5e7878228d2a3eb09dc72708f70ecc488de13b95b31b2e8cebe486acf91a97622198d7d8b9b819b045cb04b42b7497f65ed6d12198ab603f6183da0e97799445625d0e2d25cdc43751ac04c73dcc3c73c4a518196a55eef38d1f751dc850e1bed30c377c9b0f5884aa2ee21259cc7422209823b0424e7dd91d047996aeba4da71787f47c3de58ef1c93e21a9d25bc2e598740a51745d44d4d2fc234ac5e3a0c16f8a175f4857b754b09437e091c72e8d0dbab20681f04b445c9af0a857ce74821ddf9d860b5f587258510e4e8000f7912e5919ea5c07e94e79be33de91044010ee0bebf2f30a82694dd8e2b8002308bf5d462c5e62b11dbce1813fc5342edc0b540d5d8045c96c3d9e5e9a45ef94ae728b77bec3504dd52799097808e3536216b4edca4619e12c058a3daf64c205eae662ce3b0886be8c9a76467c4d60bf336bf47c14c33e6b021fd13ea31f3b4d147433f32c14e87113b612bb0baa85cb6d67dcf1da7649739af552112fcc2cdd744b96cd1909699b12553171f5aa5d607522b0d60acfc7b378abc731102b436e97cb99e2d1c5712944d04552f30df6455928d699a1653546becde6e1c4ea5fe6de7ebfee4a6b2520c312045046faa4d04a81ba0eb239d7722ec126818dae2512fca1d7f617d51134797e7cee31e47cbcf994c23a68af908f350c5b5a30f209f0ad8fd3cdea2e0e4735dc63cac97da2a6b842fad1b3d19a53eca3fd72e782d5d19a85094f55ed11d720389c480ba73d8e19eb326b4cb9fa7cc0ff649f52a8a18b9a60e63d11ff63106f163b761d87ad2da728a095474dc17b309187fd16b76974d2889b606aa3efd91513f91302266ad407fe31ecbcf2ce00ac2a4719c81f96cc613dd46e73526a6ce5445d26d405814018a337c54a76b7f973ea3782a60a306176792bd24cb5ec57ac53c606a655f355cabdc30b759c71ff58367ce3ebeba651fb089da57808a61c8e09a46eca66605a76b744992c9eae4487a26cca56c127de8fcd3c8e114a38f441f4abf4c3236d777ea2fb7dbde3ef1d0d896dce90cba868c2100a1530c3d227b0e4c3e9160771536c3ad446aab45bf9f2357792c0ccd6ed7df59a2f6e21557be184a51535417e338019508482097f663e0ffbbfb0fb5e3b1a5f8f71f6d85f5bb28b2e4bfa8a29a33772089e89b75f51784afaeea0eadbccefb0c00c3001382e5047c612983c9a59db24606dbdc1b4cc75e70a9023a72e3a890534652ce9f41353557c2e48061d4a6784bb82f934c4d48795377cdc4ccd85d4b3250851201ae09eff6d3a33cd22f99a081d4d6d764fbd04155f25c9a8790bc3e4cd8e1e0e26c6866139478a0101ea3154e74c6efe7f4b69cf7a299c3880bfa844579e97005ae6d62199ce60c3533166c8f7e70ec9207656c9294c1ce4985d47af71537c544657a22a28b6bbbfd2f4c1592062e494c1339d22f82822ab12b2447efcb86fc8c00333c656bb97c5f8e43164ed27a59d87025b2825cf40313a32d20dab0bdab6391ac30a5a5293bc4314a12d93ef327ed7335a6e482421ff335396fc619e7d5d8659e512fa36eb8e9475a2c7822cd58719aa093d0fb33811b7c0ab34fcd07a4cde0e4d0ac9939cd67afabb9418cdb7c6aa02b6308df8630b5a8521325586630e96a248291e5f78f71fa55438948b5de2af92e2eb0120d5c4f582afbba41da99b46cdddabd6a6765c10f0fb9db1b7c5d64cf86bdcbfd694f0ec9e394fa2c1765ea857f345f282ea09db932311b9f17497bdf8db378c49030c07e02760164fa1ab265d7f68bf577bde76dfaed818d2b62887ac7e398e373500b428b805c58b1ba9f5050473263b7da4ac8112864eade681c6b87ffd8942398657679ddad09f829b50d9b4a7286be119b506d58d7f4dff9f060384e55dff71084f7b713f9cbbb56c4be586be07d8230dfbbc141208de2914fc0352fba6052e53a6b4396c2ef454b409437c1f7eb1382bcc4eeab5c248af40536f7e776cbd263714980af20d19843095ec74efb67243ff52644c4d09354b4ff6adc45d1a6bdb31c353c039097c3b032b00c4f3230032e783ac542e6c99e61b238e0fbcf59ec04ed9a95ce74a26a8e2f0a5eb3f37d1e6a927d820db03a883058f31ed6f171ad6b50f4f89f0ee4948ed3fc5ef044c5f42fa803abcd1b6a80e093a8ab0f0eedbaf48226541748e529c4c64fb09bd842bc2871150d1364c0e0bbd683814de19f42c01d94f376cd516f498411a72402032842b48c3db2f8407f4214a9ab32fe6485bbb99a69e8a98865f2543135b5b286a962a334ccfd51a75ed5dce0d1f50b6787de11274c50661698782907b19aa0dff41f8e49983d222e42738b1701c6c33db9f874460c287744bfd73a1814239eb604301db1719b0dc06dd7ed898ff63091e58eaa4022115b2497a4ebd27e2bb55197ba4a76cc530e3e9793f6422667c19b26f7bd431b486ce411d21d3c49046a3683a65a20d03a4e075657a3c386665ff13628f06a9c655cdfe580e373c0b4d000d5c1842d8f7dbbaf46c7665e288033429813070f4a9896ccf02987ecfe9bc72939ff2a0ff45c7305f5877dcbc9fb029f9a9090b677b72df79632252903510a0d0a7a0a4c4b4b4a4a47474646a3cc92854631e28b9c4b52475a29b550cef81b227bd0b9b444978676e612f55ed170a54eb594675754f50f5e32677e91308e53a9b4b9f4c1532a82933b847e3c4fda7dae16e14aa79321c07ede273e1f54ae8dd1cb4a0092451a6ddbbc4d5c2953465198791e7143c59dfe04956a53054b97c9e5fb8872acfda6afd4096d70a7df26ae0f1e7cf84526a6c6455299bcf557777723f91ec048d8375a436bade59054cbcec236d2c9e1e826c886b1e41b36ee15baa37733831cdc9b3157c2da2f4844db8f8e9494969698989a62358cc91eeddce3c3953af308d94385c4b75bc1826f1fc3ef277c80719b84172e3b116a4b510ae5375a2e911c6fbdc97316c699d1c285713ab72eca554a8b80a454e720c699529d8518a78b1dbed6af75569d72d68871c6d9f4d5471e4ad5abdb3091794d2e1d0f5ec48c7159ef0a516bb5d6da96cb6f87e54178f4b75272d63de7c4d15adf3ab73b730bb7aeeb7a2674815fd55be1c4d1809f5b5962cf8e252e43e151bb5aabd3c67de2c33f130ae3bc806c580a91eb9adb50732ea447526ec395b736721425f55d5615ba36175d447aba2c6afe658a75af977f5ebd93361c5db0aee7c2d18a4afa5d9ecbf855dd138554bff96b064d088a8eb041174d25002391667005cc0aca74514517f931807a8b5fd55d456c06e477ad18a4d61aaaa8b80c549da554679feafca32a524d94952914c405506fcc386a6e7047a95433e54e3f323d482be1975b908be4c2a6310b0937208f1e49a843e6ba8ab46be05b8ccd22ac4f2d3c0d933edb39dc445978d3514a5b8e41c720d34d5b1eb1080405c9c502e117a5225cb9632c56d3c61da5d2b499391efcb933f61249c9cacfcf01d2dd6502cf823c0fbf6e15495c38a242cb662115948cf939e79c730235cb21e0e72821890b4754981e964edad41c204add4dbfbd18f3dddddd1aaddedd436232ef07d0659f9e33ec470d7702ddcf013d7b4a2a847e15553828e1bc44e242e8a98f18dc1c16e457776b4e743661dc31078ff66e914a7518c77efc5cf93982b00f618fc9a88bd249c528852e5a9e694f1074ae2cf0401433b0820834b25002c98dd0218622609012021a70b82787a1090c4d66d555459de392d355593a4734b23927f674be6ddee3796d326bd8749709d5ada3c0f926672294b9d539ef4497f4cee58cf3e9ecd33e5d72f34e5cc22d1932c2892ee927e77cf325d5ad775eddc8c98d8cd28bf81057a0b2e4c5c22c03366cfa6ce2d7f4176699d990145dd2cb13f1530364e864b2864de96566459774eb92a2cb84ead68d54b762cf90f49ecdab4bd1086747194e991b849eec40050cb0fc40c5d01a6be07085098cb890e748281b56816e7597744931890b4657879f5036ccc717b7aba1eb846dd6514adb153467112bc150e66a5691aa221516c6a939cc2546aa37996d62cf1226dbd2cc4e29dbd24cceace8b32dcd36d1358566d3b50204c1c433971a66a50abf7ce9b238a7d1adc2484e39790a41e4e3e3e324888b488a32274f116ac699ae59c42f2c530cfbb014f6d1c2382aa394149d8bca8fcfaa53a9a24b08ff6cf650a64c1935664d1e89f429bada9bbc0a07ef80882bdd470caeab5d5e21381051469922ca50290263881fd40862046930315dd6d3fd15f4ec48485e6c1169bbeea4ea6e6c08943a8c295164d3939fae76bbe197ebb63615b66ddb64b20074d9c2c48c89f7828f163396bb989831611dcd58e2d076c3af232a489dd4b3afd011f11ce55aa87207dcacb4230d63d7368ff1eb86e86e3ef2e0c12f3ed23932a595e883873bca542e229bab5ce54dbedb4217916ee3ad6f0778ebaf0a5dd6571c2d4adc8ea83eefb886a3c7af937ba1921982a730471477049fadb3df582ed20127ba88d82aba34b7a2cb6ddcbb412aee6ae0f3ec39645c236488846483d1e5d9e538478febcf9e4b8c739918674ce148ccf31df3d355a47f7a02fa270e67bf4a9d23674d7438e30556c048828933d8906366a083192208424c0c56d48cc1df33a1a80106c967d6c304f6c3110fb31a67228215486c31039d7b5c61b2cc98b8ca98f580e2111e81bd46cc008fc06ea7dcb944ac53df3e07544f815fec406c04cd551651be971867944b47ecb70bfb55621c8904469467bf5ed8af18c6d1bae0234758abd47cd5fc29b3cca0eb2c710459be5a5995ca551e6459e278c17b7df0a0ea3aaffb7654be6389bb7aa9837acfc719748f1e250ae1475dce916830f9f8f8389932ab244df18ce53ed21741cf73c68efaee11e3f0edeabd9e00fa17e5384297111c5ee338bcc633c038aeeb4dfe8ae3fc0cf0eb7306afcbf6cea9f1eb2fc651f9751e8cb3f2eb31c661f9bd470d63bf220a5f98c2e7093022a6f0114139d7dd8e01b24c99effc7e37ff0b5d44bcd15584e52e22d73f9637f926ef7993bf479da3028d385a94cf88e36d892328aec20934a1687147b904a54674f134995d06345dd05d3c2028ce594d8dcf598de8eee21caee3c6659e4c46df14738fee91d491ae1ba08e1ca22825286edfce0cfae26e3ece20ed7380c5113699793fdea3673f29991e8eb0c94c7e759b01155c7e7309489dfecd271652a7e983b00b9e38faee0c682d52b9a105e11b61ac26641dee38835a5c41f67535c50a1bbe76a5de4e872c805f1c02d11d6790ca67865d3674af0bce54eacaf9439723e832df0b82eeaf583b95fde8aa59eb7da8945be7acd81560841ef3f3d8fb50a910157ea1177275cb79c794c37ae2b971d3ce6d0b256bccede3a965376838658f1e652ddba0482d059db431e38eafca04f3e9b45a3dbf60b20733cfe69c998384b5f720613d851593cab7d4e9c00c7d0471a713a9a3f9ada15dc70b4229c82e295440ea686e7de4d36abcf1965d7615c71b3ffad77cbbf4e96e4a838eba7c31e64ce1080a62e82041c746ba422c499801159a8719974368f2e282e18eb1679776e4f16cadbdb73271818c71814859156f6222d81003d3f1b8fdf44deabc648f393bf81142f7fae2cb192f7d9445378a90ba7c207b4cf731e67e20a594479429ed192528475a8e8ec0f8499b874c5f00d2111614c6dc0ebe8ef2e83d89a418e09004c3121ab3e95afd7c1471a50f2957f23fe9e6cb7070455843873bdd87942b1d061d03fd74a30588b086082fb8d2a5df607147ca3a9a735a69845f938af33beaa2b43b009a5366e184c99bb4f9ce1c989906597e3a43611ce9e5650f2094739c38536ea43d85f29e144aec41f9cc9221233333bee27c7a3713ba4ebe72396385ae93b8126744cf7a9e67adcbceb92aefb9ce726d8a3d2a9f11a7b34ea7d3897a33e11256b884e533296f9f006ac808cad967c22529eff6193f819d15ba4ecef226b399d07512fd84f216ab4eeefa70a89f3e5108ff77720fa436d479c4e85397d119f5cf3bd11c4ea793cb8494cfb89194cf883d43276f893d293f893d56acb387843159158d4ebc9541d242cc9493a94b12d3d1b758059db44165b90668e2a64497e6293fe17a4a5cb2e404d51294e80dfb5ce57236f2d1c71af6f9e743180789e79d7f760515def3299edcc7395f8623c8f3e4f4759fc84f1ae52b3f2195f29598f225ac1e39dccb479daf567e02bbb378c2cad9595cd2beead0d53977ed46bcc59ea18ec59e5e596db55a895d8b2c37827296e8ea3ce52c4f394b5c396b85725698f25528bb7d89378f348a793b3d398d1f9e5d8ed9e2d957df0eb3901813033842131a31784ac1293f757ecc71861858d88089a70ea271c3534f7d3bd4e70d3410338258a3be9d6ee93c9fd182336878f60fd4a20b1b3c2c4c553c7b776474ba59cc28f3ec9c835b8c7200b2378b194d300aee48bb5506154f9d52335e783a4e5bbba7b7165bb458e2bb40de65b4e916339ec968411920120c2668a367313d3cb3e552c307cf48619a9e99ce06b040aab043c72bbd73556fb99cb1fc9e90f2967853a2ab2e49394b9433dbb0062a801017e472a78f2010cbaff78aa5b43c05d4ddf2949fc0ea66420f7698d1843d930a15425acc9874465b6643bc0594974833202363f01269062b78f6619cce1be54d7da4f4db71e1dba152a77a370d8dcfd088430c4564c1c5a35af990ce6179f78c7b33e2646a31f974877210bc1704ef3d397f0ed09c6c00fc15c0ff9c861b00bf8a48505e3d46ed651c6dc6675cd2f8092da7a1a1f196265eb939f89a77d5760ecb512847b96aca597ec2f5197149cbafb3c42543465a7e7d094b7e44aa78f985f22e944dc3117c14cae906c0d7446720a761921556210a4cfd6a4f1ce518b04b392bbcbe0a5168583b90070901491912beba8d94bca40ee5a39338ca23a525b9c4c4402f067a3d7711fa6e9f42cc23bea713df1eafae8c22e59774caafee8e8d715b4a9b66432ef1ad108d31dfe2d79c7336f59284c6517737ad68644942a30afff88107c1b74877688207764a69cf222c5ab8489cb1f3ae27a594527e09dad174369f4c625c9bf7cbe77902836c18e730cca2ea2290c07d903dd8d9e73bc13eaa9e8770f13ce1dc3aeb790679cf50f51ece5d9b287bd6768d4e61e34ee7208d7b8d4eda8c2d692fe8a92ba5735a22cbdad5bd2a1044b9a75eaf96327b984c2e50a63831bbded33d749931d111c5ec8a439c8f208e14dcbbc45ef845fd885faf6e6aa65e92ecd4ed77d5b3df4e8b238fcb3aca5a4fa91c25f6a42a11e3ac40509b755654ea0709ee8ca71c25720af496e7a770d47e3827c68af4d43b5c21c6f9683f48d34e51ada8583ca5810d2a98a72e678e6c307aa99b640feab31f24b83d4346681ce53d4346524ee33d3d4346aeabc697e47094d3883d387c465c3243e3634bd9b1c4cd11a210529a107c55a25a45ea784fa7b7d660b7f71147e1570d8df7cc788dd3883d347edde5377c045de20d518586d11b38c4a100dce0ae9c057acbc7574b1c223b9a470dbb01830b3aca513f371c6cf90d712ef108d441477908616e05a548f949792a954a794a64b264566918f5948342448cc35186a6b71cd5001950943a039a66965937432a2a97df0454a2cf50752643d3c32743dd6ddef6ed74ce23cafd5c8ef7c1977306421af713472ae6a92f9141979ea912d52ab5a861b71e552f3c02557aeaf5ab4b5ec894a2c8beb8cd62a2b49496f2c970702b5325a3fdb0949653af4a9dc372d08725ed045a0d4f6d25122b512f692278ea75cc53a7da93a72a1feb522f9df1d4f9064c4e9e52113ca5cc247b50cd6b15c7e99b5f767bda98dad3693b89d45b2157e12c0da3be0a55a16c1c1691681d939fce237db1226124ec1c874473f66df3ba71deb1a6f18b435ed2580cbfa817c66197428f8e9494969698987aa9a508a138963ae7fa74f779ce9a897a3751a24b7f9e3a5dea9c0ab434d2a5a74e865f94d22f922ed1339ed21b3cad409c588180c41104faa629c7eb51994c3eccb82347797a9d5dfcc4e869cdf2d4bb3cdde1a9440da3de4b4fbd971887dd6300d7b149115f9dddfbd1f9a712d5a29aa512d52a1ca5956a72620f74903f72b82867b7b6ba4dfde8affa3c087fa7413165cc13b3eea14b8c19409150d145c451de0961d734df34a7aa50da4fc8ca4fee28efc291d270b6d390e5282a9e9c152ae1775147b9fc55387adfe93ba76f279409347f90eefce1907a1fcae9a46cdba3b7b6b46eeb3c77e14f7faa5d584ff3bd909ee877f33b8937dfb6611d0297cb85431680420a4664468840e6cc7873aa1babd5cc8f333fce9093b01e56f668ff993f3f3f2aee64e8da2f11975d73695aedeeeeeeeeeed62aed6e4a29a5dd4d5d54a4c2593b67dbe673b689b761dd9b5baf54ca146a3f35edee6ead6bd3762ef486b5db70ebee6ead6bd3e6a14590c4adb55200103157da5e6617669918aa715d3ca3ecb95d2d52b1dba6693e671a6bbe8572760ae56c877297c9c514e3799c64a4f1ec96591eb59449193a174f7b9319f5e974baa448a5fa9cb978289db36e9fb316af6f3edbe936e78f0ae1137ecd512685d49136cb359a347cb5cb5e89c9a02e4c9f20a16ecdc3c163042efc0844f7c70d77fa74ee4902ffbcac2e4730e24ea79f0c0777944d39b6cab4c261991f902e489dda392aa7570ce885ede422a99349e415a0cab59ecb37723d08f7e732e173cf8d7cee8946d8532837e239aaa7dd53893deca8aeafb804e5d7d955e292a1ce9778aef2f65ce5463c57cd10beb8d3a767b1c2af2aa8704a995a1846fd0373cccb0bd8e54e2e4fbda94926a9cb1e720b142220b7905b3c65ba441c0c33a5f4d37f757f3a4cea7492a518a246529a725bf20cfad17b99bf74525a78017a89e4c507cb4ba430ac3c1583e82552184f745e2279097a36d2ec0ae8d392985a0c29dd45404a5276d846c05cab73419aeb9e458ce3721b9fdded7cc4e5a74a1d1eb2c76b04b73511b6b82b6715e1887e13a71095966bad93a76d1db046c50d20d1bcf3e9e157fbd4b4194e9ff944043017498ca2975c7c6a30857f2aa52c2548c925696fae6d9a9ddab4736e9acb7a9d835f20186ace0a5dec34cca1cb8495b3ac5f0e7524057af31cad3a467027e59c43f9219471db678db31845ab300ac5130544ddb37654959a43d1d177b5414b3b7b807bf6da64426ee257f706ea8871a9cf8f2c8422fa7ca6d55e130e5967853d2d5fb96e3fa9aea02e4b639a18679505193efd735395a1d4262f3f0794994a33ce9a45ada44e1100d1651f67d077909052e7dc88dd10bbb9e68ee0a3c212f8b5000fe2ab50ce58a19c69e1c959fcc3af1526d0841234a74c21a69627f38d1897fda68bcb7e73c665bf2973798b0e1a28bdc227ddb62cdac52a76083208018bdb2e8e4d88f8e95afc14a71430779c51a4b048c39b58941e32d535df556402719995451bc74d889e8bf8cae138a3fc46f9888d3c00baa324d343956cc8a0a14c7ac119cf61cddf980177c42b351f71d18f9c0d71696290d9757275b83c66b84c4538a26fe79568c44c65e575e54a3867e5cdb0e9856211540332fc83420a0ca5eb817f8e6651e74c2fdecc3295b4b8231bcd9029ca9172c71277f5ed7c24754edfce469c23b3904c6494f82e7af2bdf43de6bbe9bb7dbe2b656ed7910cf00bcb173f7aafb46474f4d339534949e947c88e761d4c773a508a7f9c20298d27496af8b40ed04cb2e9c579cf1987d2524dd32a8e11b356e7161ee3c50e4f89504a832c4b9df3c1071f7c10defbf3a243d5bb6ddb3c60629a6418e7e7e8082c94a13c057a4a7dd3269779ea94c53c9d5ae8951fbd9f5d9ece39279729b3539dc54c79109e7a0d671623f69ef693d8c3ce794f7be7a3ec137bd83d77a10b652cd439f3a7a989299d37e79ce1e4387b02b78e520a524dcaa628af53205f6d88eccb9d62cea67577f7a6512ab65ca172e060725315adda1493c81e3cb52db55914b59c749b97d4e1549f98d2e14ea7a1cc41833b79d78256725336cd1fcb5dd50d0bbb21fcf8e3a587322789bbecdab436fd5096d6a6b551a9edd2dab476ea6af47a2a6fc53a6a29c9252f098589b9d3b936ad4d59a0e4a8d3d5e45c1ae178797ae92c5a01e8bcdc92b0b4da544cb29a2a6fa619e7ec294cd230e6c2244992f08b26611c29bd5bb15477854a229992481dc9dd44e31c317452ce69d9d542fd15c077f1b4ab7e7ef8728a6ff2a2fe80213cb207ff18a4059790f9b2d1ba4c98336f98caa6eb3a9b16e82ba9f36d6a5cc1e6592ca6333333349f4ba6dc25a41fecee6b1b065e90b320b8d5d0801a48a9d8c364d622b3d5a16b5dd19262b546adb5823a78e660d7378f8a83f68d0ace5af3ddd60b40d316eeb4869621fc0a4013163cb247101c80c85ece2f69e3e4f2a74c70a7db38b9f39d5c49c349efa933f35c6d79313258ddcaab48ba5bf55dd4cb5a10ecd4ed962da59452a650f7537952ea782bd9a3639d6263cc8cdddd2dfb72e78fdddddddddddd0d4f7e521c5378d9325cc1e6a583df8e74596f7863e0b02e8fa70e4ff645f60e4d137b98cc3ca8a28794f8f61c365daaa5382f0d47d523d1dcc5d3797e3b87f376fb639fc4209b75a2279eb6d03bf98f6cd6b90b27e7ac9f42ce83f40c59007f736d5aff00e7f769972943359f23e793b3753e0d473a721273863c7bd259c1ad526eba6d2bba6d9cfb29fc91cd36efc22731d8d9e63fb2d9c95dd838df6a6d5945245d39eb49eda9779df7238a3b5dc8e82a41f6903c9b8bf000f8d94ceb17a260a91baac2d564b51e207b48571ac22f2e3cb247107e49577a2532cb53d1f925c7587925fcedb45badd6cc47434353e3495ac3ed650db5076f78d0f266be9dea32ec66689e9629f3d5837075e5d0c13b3aa84e6dc8a208001b0f68f3aca2ec6c3cf951af332fc3311ca56bdad7965c512bd87c3bd4a714471791a97dfda6369ef52000e2071f549bf62aeb071ce7b59e708019275ad80ed4d8e45d4674ccacefd8c4188e3227d0bebddf55447af9297b50ca3ef93b96b31b55670ab8ee64abe7f1d42a6bb7f969db38f09acfcd83f06cd3aaf36c9b6f728a26527cfbf4d0021a1136f2551d74100597afca3f14a5faee66b953edbcd4caa553286eed5ae7f43a91ff4f5ad59a524edcb6295f55bb21cf569aab541c784abf9067b3144af575d6b146044deb36d5dc6e9adb4d73f95bad74a39aa8c4b3ad0277e9d2b6369134bbd55a2b9d5a5f907ae1173cf1458713f355351c376652ba56ab0c35b16ddbb679616209259c98539cb207cfd965ce2e4b77684e1bd4ef6ddbb6cdcbb66ddbe62589cac4442fc8c5d54282f2bea4dd9139b12e0194394618c63c69dc76ff163d6ac3393b8553c2aa7355a57a8a92b3263b3c1d8f66648170a397d24bafc65a153966d25f3cda9dbbc7b6a4542020753aff2e38936e25adae2d80c78407489de9285771b207bb147f58b9fc4e3a3f85f3bbd3e9244ad9e3e441f8743a4d4ee4b8b69ba6699aa6699a46a9942fda43a928650f9ecd99eaa67836438552ca248fa227de88685ade4107ac996c3db9d6d21e3a99e83a473593f2c52ebb5a319dc364082ffd46e70d824d7db628b5f0d22edd11dc3b74c4b40eeafd20bad33b70b57c4d0dc7766326ad1ff9e9ed9df57e18c19d6a4ede8f15dc3933939d53d988e7c7d09dfea3883b5d76ce6a26bd4b793f88b8aa7ba5735233e9ddca939d839a49ef582d4f76ce37932ebdb466bc99f49ea19949ef229a530d371323579030765965635cc92f3b93deddc031b39cb3c20a498871799ed461c165fce21681c8d070d197bb0e6f2a1dcc6235d8e1fd18a2034f764e0733e95d073b74e4707dde0e94943da8281be89301092ebbea15f062bad3b79749556c902e93c604fd7c8645b973874eba942d998295e0263571c64b06a4daa6ca9d2f91aca0e025bf58e8367c46fb2f10bad2655215276242fc7d9954e5044fe50671c75be5c9ff0042fa1a77945e5efa971f2d027c6e19f7ebd2332f939aa8a2ddeb96ecc1e20b07b209277eb46f27095ee3e0ed534a7ba021cac6827983b7c451341babd198794be239a909a222a84deb7ae00d9098d7f276bc7d99d4c4941f6d5e6a3618c9236a2d1b699a101ecde1221f1f9f272d2c5052524698d1c3f4329be6f4f1f179d2d9b0a2413e3e3e4f266b914d3e441eeac7d667f31f8fff6efe03f29fcbcf2512ff39fd929240e33f2596f8ef7357828afffce5e43f8f2d31c57f2e0bc17f4c60f9af09188cbaceeb64d7dd7cd7c9cebbcea593ef3ab79768e83b0789d6f8cefdf5c2771e3b0206dfb90c891bbef3201d12407c87040e7c28153fb69ee3b8158cf19c11433cb7022acfb9fd763877fde6c56fae7d3b5b8ea7434b543b69b3404ec1e3db00216021a125199c9f51e60edf40a0f1dd1d040edf41187dbb53b1e1db5f54b67c7b4c68cab7cb84a0f84e121af32d0412df2d4418dfae0295efa421c0a09244840d84928a20e3db3988cb34fa6faaac98a08c5e7b2f052d8dc57c9466ece93b05edb517a420b51ba52d70227548981e97a4295b8010e2d9e50f659e5de7db61902b3373962d48cf5e023333fff876988e2dca63c78f375c0491f161062a20e287189e7aec872f9eba0ceae1a9cbbe1d2ac3220813e47c3b4dbbe8f440450f2278769c6f87c11a08c003942b78487aea23dc1fbe00e0a9df7c3bd48291821a44f876a8186f87293ba4f1d47ddc21a43411c513482768024862f9818a95a12862e0206546e7a6822d58009d3a846f87521f20482b74a04287349e5da2808d678f7d3bec3b4c2b9e5207e1dba1760b9f1b9c097049f8d14301094e60c5b3f7b8509e4c1c1e54fee0130049c9e2d907003619c2065cc0008635b060a20c89461942b001a568892fb0d4106c7104146b29806fa7a74b0a1429545cf0ec30f0014651d4b861c8052d20f220ca120d45bc50451855a81295395f73e6d9650e473cfb07df0edb220f87207000f3d4037063c056fce89940889ba76e4dc0c553f7e01ad1dd8a82c353a7d4ed8df2c553b7f976e8975a6fc8e2a93b00be1dfa1a00176954293364832cba988d3110082166871f82a014f183a6696470162d284d765be2b743e909866f0f19c523c7063037bcd8a50d493cbb7f3baca3074deb32c2083ff200ba120322a3062b926a68e3a977e0c5a534a05a289002fc28b168915cba7821438397004099014a182330020612184102359efa109e1224f1d451380234c3535721890b3b7cc2f0bce702690037227491210704f82142043288c0cb0c513cf5982cc80c5f9efa101e146888f2d4752885b156841f79dc0081e189a749301c1125c5902443124f3dc7b7437194a0f428c70b583ca5f449104f9fb4b1439b88800832679021032c422c1154660622aa08c110c48c522a3b1fb65c1186cbc11defcfa6b7728400053821307a76f085209e1d87b7e50b2bb288dea081d7f8f0ec201b4e667876f0db6124366a7ca278769a6f87c121344d7291d485470e56e0e3690e94dab852a6cc98a73e136309b15834328001b5a15d7e048285bac61080ce28696cf1d42975ab86124ffd826abce0a9bb94a7fe5a238ca71e93e12952d30dac3cf521393c751e14d8d8e2a91fc181114f5d85199e7a12243240bc44ca81cf046a7d3b54ca16473cb581524a29eb0b9f4bce41c1e712e3d0b80a0d6bb717bce1a38faf98ac3996f7b7534343e333ce711cc77134a1fc1970c683300d0bf3417103d2e86744242c3f797f42587ea21183f08b6694464fe328744e09ac42d3b88e231acf212ed1b8ab6968fc86383a8d83e2f8a2f11a718c3d8dc8f21971947d6fbe0a15d0e455374c89965f6ce55b8c97dffcc4797bbb0e1cee08cadac1ceb90c6307993d00527231384406cb0b929e7082658836b0f4a0642f161bbe2f0a500acb0b29ef06251413ab030afac0409d96bc2d3aeea8bbc2da2226003ac52c1555d8ed46168bc9961a269560150162ea61a628898a11ac8a94e0874c911a9ac2a88ad8d02555e486201668b945a254b1d782523073ddb64d33e3082e2719ee7d897404961b8eb0f20d715b2f918e10aa7989c40411165dc7ad699aa6b13029955d9e02a194b6ac524dbba19aa6514a5b94b13c6dd7b89b8a3203cc4c79ca293a7ce696cecfa236555a2637adda66b953b7e2b8234a4ab6cbb1dab43d464c0a41402e5a8218c60ede5c1ed686736d8a42523f83827ca8688f6c9a16a4a8a8b23e706b55d6ca0ca8c0381b08e4ded8742000ae8bf52c4bd0a6cf0cb2770ba27206519f413d8358a91f0fb39cb4e2a5c4e283c44d735bad5b6bad2daa0182480b0478292aa9ec9452caccde30222d6801f829b6e06225f5e764e63a43d7f4a6b53a9d2191e97db56f414965af05fa4a70d0d1a63bdde397d46893cb394ecd74113eacd979b2fd76c6eddb9b369535b5dbb36f5c779ef7ed30872387633f334562ce39a956ab76aba6bdd637dd1d0bf30ad3ddddcae24edfe4100e13a69505cd013e8fd9b5fa53aa6956ba88d06f1108ca875bdbeca9f3505eea5a6b6de54edda651f9da36174e9bddc61ece8867e37dee1d4af579f6f3926ab5b67e44fcab48ed69e37280a0bdabcffbbc24ebc516a4b540eb52bbd58a65c443ab5759d49301e5e6d6367bea3e0f95f278d8b4a8f5eecd2401886635cd054ed4343f69a291cec6416026a78f085fcf5f43c02aa57cc5ac87324edc4479fa88f86f95b33607bfd88d407eb137117e4fe682bbb9cabb3cbe48d62d30c74c97bb255d1e8609e16fa1a0d216bf9aaa3cfecd88f5edb403611c8d798c280d464018477be91d0dfaa20063b7bb28065dd3954a3e3e3e40da146a7cb16641142816bcf09b53c621a1d629868a8ec029050641de77e7706a7dbea5f0e15b8a2fbe8b86bea318e263b7bafcfb32e94a1a7ffd75411f3ac93894432455740d91e3742940fee69ab33856f7000d7d866046e96d17843be9a3b34b9d2f4773c98561b6bb30cc6e913dac8f0020a1b190205897de69ae1df1d647d84bad8a268484d96f2725995e1625014499590f932e0534cb152932a48441e640a61103b9440b40312e17d26ae1d14aa41db591e6e57f70b9d6b525c611c35ab18a62dda92b1bee26f60c19d95ceca9628888418acf6c136dc3ac4f970283209f999cbdd065cacc86d847cb79120bbf6c11bfec8ccf842e239acff88cd833820e334d7455a7f12a6fbdc96c0b5d46667a5c55348169c44a24f648a61e80b832eb61f2d5c00dc1c36ca8eb912591c313b31e2627276643d799541baecc8646d061c77deb1bd016857154de466d8696b75a0bde6a57de6a4c3e5a9351dba3ab64bdb774d2db0ee36d8779eb219071a2cd95fbe94e528884302ecbc72ea2e26c7e545c2bd77c13eb8e25ae5684e64553621c94ef78ebda90cca9474bfc1856deba56b4fd684b9d13db82acd59ade5acd483b7aeb5d0d6b91ec61bd1e754e9da21a8d51ad787bb4124de09926d6a08659af24b8633db29a0c6fad6b32489d1feb16c85ad13650c3c6b095b9e07e286cae1135ccbafc4ed05c136a987522babb72f94767ef642eb8a326e4006fe53cf8659d431612609d8827b2d02cf48f2d773a15b3bc752caf122d942f012891fe84dd9fbe895f6d04c60da18a3b6ab1b73cabb0056a3d098f75ab12476be48923f8dd0de5f74ff56aab26c42febfdd3396dc430ebd65eeb57ec23716ca336e29775ea4573e9eab7e371b48b9b8058e768421266dd9e620258e21a318e4cb2a2f4d69b4b779924b05b94a7c2e6c22feb9ffd4f6c23d9c33a1677d484c6367aeb9a90e534a1eae5bb9d4e16e0ca9dd3c68a4866943a70d24929a7944aeaa45e44735a91b8f3a97701aedce9728aa373e1e85c7b33dc1a30df8a270fb593db53384eaf2e1b051d45556666666e29658b99198c64b15855ca3ae79330f6991f6515cf3edbf3640fd4b35c5cca659d43d9c79a675132ccc6e6a6505ecb63af0030dccaf23c660a06cb4b71351e78bd5633f34cbaf2c5932d4f012538f25a445e2b87cd944db65699b96edbf6edd0451a5b76b8ddcba42b59bc22ae48e1e40a12dcd2ad2f93ae0cf9689aad94695e22297145111add38c776cad4b9979f11eae3636436ede2d219b6403521f3e78bdf499ecda28b8848bbb8df02fd15a6d17bed5379d26eea45cda269f3c824f0a45edce95dbf1de99ed48ce8ba992eee74e66e66cc9dcc625e0937a5a9d69810bd6cbad3791a7d3bd2a59c20502fd3a352dbecb679a17961e94e5b8e0bce52da9dbe041c6da7aec54597804a03102833e1f7342de584ca17185112a8cfcdb33217dc763949905a7d354ce9362ca674a7375173a79a03ec7e5471bb054a29c749ee0b48d827843e158fc81eec34e94eb79924c84942bff4eb1151a4ab19fd942050ff96f3650d8e4c0ccc9cea552c81618c337d9460be8412588de8548411edd4b8375e2659a9a203c28a145aaeeb659295295a5899418dabbac10aa010730228c4309a39512b6d1a597a43c10bb62c2ef732098a29bc18a07062fbb9dacb242892e02428804055348ab88c8be365121434f070bf36341bacb14571edcba427ccd864b8dbcba4279694aa7033d86b416b53b63bb16c2bd42cbfc27c51b3e3c8c36c41e90003d441982aae1c5f9476840182e512934547981a5a389684728489a1bb4146930b8c1a172ca30a8e9815a3e646168bc9989460b272e37251d1782922e2250b78b1dc1930aad48081826b05d1801942b1cc089a0103845d9111d40253021a55194c2c3666ae18472b33ba54982aaa2f5028313ff78ad507a64aeacb1238bc30825031fbe5875577238bc56459be2f39782730bc2f337cdc17a1ae0d1be6e714b3b12ee36e37b2584c36861686492e0c934f648c2e0c933f825ca8b4a5267b05aa86b151e15130475acc32d137b2584cf645956a63427cec5d6baf18a186c91d6b7d78f61ccccc7c642dc74b5198933944be006a987ccb6e5f16119d421bbf9eb5171cddc74f16b9c4f4f4639bc6594a378d9939a3bbc46f5b48a18355e37a2f91a428410d97e6061fd25d8d710aba386260d3b81d0bb81c5c9611de974b89d862b8271fbaa02874384114233885d104c45df1d2ba32cb1832cf3b5cd9a205575c2095504e7c5f4c2664e5d9abd177a588cf5b7a69c55111cf4e973e2feecc4ba42b396839b860196de9b2c428a1ba4059a6975604a1c4331785152d7e8ccd1964c548a3565a69459215a46bb3d831d716713e5831827b72b5974856842063a5076dcca52f91ace84081277cb68dd32abd011293494b5f2639a1c48f6011aa069d6ade14ea65f3b983a097faf123841046d8df08256cbae4ec96a2ad96b4794ec5624386346ce258e9e4f81080d8f44fab2a7f7a97bad7ddae4e32685577775fee14455129a5ec17d3afbbb6d7adb97710a78da804ed3745414b11d1000000003315002028100a8884629150284d545d900f14000d7e9a407a581dcab330ca610a196308218410000000c80810d490385a0ef48f99b474c5428f0f11209cbf8662a15f7ba91c09b423d4a7e27374139724de8943d2d45249f7c890509a8001d2989a14363e4a6c70d7090621e50084d06902df266db7353b47e9f7fd15d701a85be36be4064ec9c108bb9453a6993497a6c0c5fa0d0017c047d5770df29ef4453120f158ca50f2e75a348488bf084fb636e20f2de179a92f000833c777d103be6a4a2d6c9e300d3ccb12440c32467d90ae1db5fefa39a2e9e241e01266bdc8eb4fb3ee58e2733413f2b19424dd2abe513bdc2343534afa59d1d6f61d369daf0d3e1a75b69bc730be6f87f358eb5e76a320b8749ee86160b6c2fdd08f5698150800a875ad315c4d0af0c7bc9a5b36865f7a58a1ab01dc2e6219884ff4e2c3f82b55c0ee09ca334b4c7d101339de782807c8d0621c6ab4585aac592dab6db52e3a56112cc45ecb7a5ba189bea819af76d0de377a9352c656f8ee626cc1931fab90ccb7cd3224a18f949fdb544d845a5adc85262b148b4162afc904f003c7c76d48c60a1fea3e0d5b3586f8716885ae188a312ee9e6c25a9f181eefc11ff8b826f864e822a25e0268b1f88786c364adb51bb61225417303ced156586994bcf4ff7da91a86aee753fb77a907d05296523c2664883d3fa3326c048e52e79eaf5e78c5d8ffe9d8f433db366188d3030702011a1566bc3791811b5ab502c69dc3a32b418bd6de503c7f69d4eb14717019005181932db66f3fd65938849c2891464d8358f9ff873af1342e0e7faca6fe10927a28f6e37943851b27e916ae71717a14048f010f0266216f45d7b8ff218d7a8025035cc59523fe7dce32af826b0df915259bb84235668699d8820f129e6bd8a44c88d73cfd1bd1100c0c3892cee6404b29dc2efa193597f6fef78ac33a5a54e87915518ed85c18da6516b71572a96e1178ae72fb803375b3c60f83655fac23a36b1f9a6c5f21b19b72917b5d2cfe9c16ec617747024973af5537156cac7f67682feaac8b3444929bece74a32c856645967b6141b11b33b0b6f79abdb7c748388f1ab6d41b51a2ac96216e4ec4a2b26116a892ef901dd295820dfe209d77f8f166b4ee85b4f6271cf72ec6e744020066b1f4622b72e0f88eab56c9efe008745fc8d814dafd4b4746783340aacb82c163687ee094bed28c9b66d17129ceb3e3ecd304a0bcfd289ad41ec3c717fc802d012cbfea61dcbb0af280707448cbdceee31a0280df32e8a8c491e79ed994f1ee6cf90580e2715a13b216b50a73852d44e487decd43d849105b725b8e5f580e805a37c2cb6b25caed0dca63b98c972a05f85fcbdbecf723059009a9f0b00af42d10b4e30d704ea3a2380827d404d4ea4943f2581de8eb456ee1b7b91a48a1a4f27208dcef1b201d540b156d479d2202acf740c1815e6f689720edeec2152b8e7883bfe0c84b74a2f193b91c173376abced5323b747b3263811ca8fc906dc43580ce386c8ac2772f0ca6967cd385502c402ab162c6e4ab7d676a47b591d9188b92dd83af3b3d77112cee11680200bf21245b083265f74f9035a24d2e316805bac20618bef33b2523c274db531c0d80f16294c3583e606fceb82d169eb2b30b679d2016432dd51374c680fc4db4091ccba800cea11cc4ead9d0437c2601f554212e1e20e46e1c2acbe9a3b723f9e743cc3e2b0453ba2e5af3a6322eb6b2e452e85fe42c305f15bee9021a56bee2a6c4f9a2d10078d58f17ed46f3201ecb74526249a348ad43d5892f306a954ab2629d1940e76e4baa136b80ba066d0d02721e0678fa05b9dc60282d8f8175b212e5158b5fc8ca525c3a58355ce9582350e19e37dcc150adae21fc39d70c5dc0499209829936efef47e837ec32cbb9084359fcdcdda84d1b7432e7463e9f6d43327f32cbf48a428a51ea9f86ce29a933c55fd00118871b0b40de3072024282def48b5f2d3d496a68298fabb8634c02e4f7539ecd296a12e32139c0206207adeeb6cebcd56eda2a7cdd3448a53a66f53f894ab605a426ee62822286f43e10940aa0ebc60fd495c3cc16fa879bc9508be3087c14ce457e8bf1960ada7307b5ee49c6e3f877ec992d933d4e99132ae1cc661574f9f46c658ebcd54fd4b604f188f3ac7df71f385c4cd74f419845610071afd269ef56f91550dc5b1ba017c8d57db3cab2338416d0823ba7685fd02a29384410cd4d56d25dafb749c78256f0ef3f1fe1c01708c2ee122f6d9e398a35724dee69bf51ae7ff2b81853bb7fe3f20ccf736b9e3bc1805656d3cf9c6a828d4128f8bc614b5f4320d88fb451072b9e3fefe58d5eb303ec09c84c07ef3f842a7d7c1e2899100f2572016dc3f56a8b3ee657a011444cdc024041e71d40d0e192b1096b1140b785a8f827bbc36a5be203046c876d476ec909f2851c0d3ba1335cfc14fb9402ec4b73f3567c579432049e7c90cdef68fc9a4016977e01f385c9da4a2dd400c1f49a8bcf23213129d89053476fc65c260b7103c2a3d7997c4078013f6df5ac3624c6304d842090340475700951e5d1c8b18f97f944bf875b122ea559cb593ef2b18348f83fb22ec218d5fc7c68bc29375b7c981221cf60d152385f1fc9e18bcca0729a02292fba479018a2ddcc3229f629f7abb18b49edcf1cc26694b0635d32d7e0f42ab6fca5045c7cf995f798d2d865de63333e0b25c81bdf27e7a12f83043cfb084f4a02b88ca23ac906a469b08707cc396df3ace3a3de09141ad0b47b1bb33443c963a53e2b8908e72e7d9381c7c5fadc19a36ea3830fc106bd3bbf80eaa324ac1d723b8df235e5146f3739c17bdf47a7b19162c0365afebb235b23cdec7c3a3d4037bd950500e04649e0bfa178758f7bb8574d497767bdace04f630192d730def8b7e839b873dc49c666e02df24e6cb0bcc6908d0625bf9f1b1302db959dbfb6fff2e4933c753b666237674c57ba849ce0980088300622a3fdd20b0bb6a952186ac27acb6b8f91eef2f36525b4671b20f87531f7e7d88e3d0d80e74e6581988af26d157bdfc9abae1067dfda4bb861a012827428eced49e234fab700dac4878c995e74a16b298cfcb1e60eeaca854a125891adbdab8a9dcf3ff39361d39c7cb684d67ea926313db07018865a0f209c9145d952b34e23973b1a3fe71fdfd68c875c452e4bc32398b369bd4fcb0203f48d99b91885697fbf3bb4959be9369addd026dd4db9ddda122bef5e76d949fced3612b8dea7caa2391108748c3a81aba38cbd28029a9f51c5a8119aa4a4a3451d2ca0a58b3bdcb669370117b0b99df5de83c7d58a14a62a389d1dc1bcbd1fddc2746daa02c3bb212e9ff5536624c50b26dad292a76826454cbd09bb56b1a1797442c901d439fb1a189585ed7b50992479f42bfb1b49b3441f2a604a8ce3a34ab39546056eacb551988243b75e6974c3df97cd5ceb4a8da58a0cb769affe10127b953d56dd8f222a387ea73c4e8647519e07b76508457567cb2a8266b49186922971cb11b42cec9ff924a2d97ae19430d988573e3f6520d89c510be47eabbd523c5f09eb3ab7609c4f0ec5b26363f389a19db86a795aa9ff4e9693131d7f3b9fcda178a6a5d1cb538a352ad33b4d27b6a0db6337cffc9a383c3337d67ebdcc93241d1e9a113e1eada1575c0ec319bb6dbb21e6d7019626a77479a6fd7ad8526170d4741bb52534bb14c250d53f56766798c93d918682e5021663375efd11d25e59ab74a4d8c73a5cdae018e0c086120ad56d241d1b7c852085077724214602f22ff71be7f058bb2e83a0853c87225ecf655c3edc2886ea0645e10c980cc4cc030e23c7cd622b762e353fa4cdcb4470a9d49c8401f4275261a4439b5f3effd9809f616fd0e627a30315349c4aae7060e33ba90f85d9dd32df411d932217837451d28b69b67a9b5093ea914b84744a4ab96cfdfdf91935ec5014ce3bc417a0679e38442babd815435057fd943dcdf23ca5382675421eb6e8c03bb57c9b468054459c7aa040dce26adc7aeae455933cc76e1ea6a6f51b6db2214df01b8c54599aaae47cbe9c9dff363bff9ba502756b2c49428e3a984adb4b4c812de9380c84a7b9c19d4afd9e6ee09422825b796dd613de51ffa8ea622a6b164a9e24a3b0798a0d875f87533b65f3ae457d22c08e23bef8bf41f424e808f9913b13fc21151417a7031a4785e56700a21fc021172dfe03c3d5a5f657eae7dbc8dbc0fd06aca0086d0aac5afddec9e95415091251b1130a7e2f6adc9e85eb4b0b8a0593e560e2ccf79fa5a371c48986fbb95be2286d850fb82293d16cbb4750c259d64feefab1379017d2db61ea94cc05ceae59552fb4e678a5ac20ef68e2462a034da80555989bd071b8a5ec57384332c2553aceee2374339426ea078564af882462853442e6424943305e67139b340d6f95102a9a62db19806808430897d64fab4a831c6b264dede2c53f1ac8db2087433001e256d55191954399deb51ba23b7706b5bab60bf86ce9a14d3d5d2442084a8abe087b504871f7976e362e32dc5d2bdcfe1887e019d8fe8f6bbce721d9b24fe6403a82a787a92e864b638e3c98903e22c15dc5c98175d53299d2b933a414a7ab7cdea7b84c5d94bc362f6b257e62905b4b500562b2a04b180d12680eec13996ef492fbc3d9c96f044dad5a9fc432d3a2153e408b9b4941c6d48f2041aa7ff27bdec00831cd543a384045f0626a7277d67a60c77ef61811d805a6047c8fd16c6987b7836118bdb9a066269f209709237b215da4131d598ad1987c8bc7622edf7ac9c54a882b256e286de24190b9a80b9d0e0ece63e6a7a9a06a1e4a8c69a0d583825c400f7214f2e8a137f276169f44e7cfecb79a2f28de0e6d8dfdfd507e6191a38df2f894838e974a3deaab49aa42b5d246a8e48ce0041c4ba56a5a9119436123cbd5602d29ed27c0daad42e0a3d7325104538c46f25f011a3bf46bccbd5b60e01e2b01427c41890852a37b3cf695a014fceef1ff4e7118a234488c2d20cf93f3b425937bc56917aba2be1342c415ca8d50a43a845a2105888fda5fc94723d550569856be3777c8f7cf3bb96f4f3a29ea0a3a781f456d0c9ca2663c3ad2e408c88547f75abb58bd68ab453a6fadb5c23b89908c06b0ffe858bac8b1c49a3a9bfbe0c81c1e2badbe19ff4d94b39887d4527daa44662704244e52b0b9e0ce7339422585699bf70691d1fa5cd1037126a8061888bba5701b9e2cb57e4a7b46044bbf360dc7ac140b62d02eb73b34a6f98973b2fc6e8b06910b31f01e3b302db72661dc006a3f3cd2b0c1f82e90c883b3222cefbb485d6bc43381edf961956188fc7ddecbfcaa60295d13b1136d9ed848a1a1cced220d2908ba4b6e5381c987bdce4b285d4a9130276a7b28e10b1837b5e32ab2fdd08319f13c912c4b640a403f8e469056c79a65bf12a24d8c569274cbc0ffa82bdbcc43c0a7927c251969f6723648f8de0f7b7a3566af5dc0c26b28178002fbd612a4474a8483eeb6969d9a81c0d9f394d9e116c923d62bb6c9e071cd03de15b8c2851775c725a7c9dc54aecfdb996d240f6ecc10437429c16d991119c39554e35e24896c15e847758a398a6d5111c2cc2eaa3b60ee572e314cd36fd99f747dab0339d154a07958daf2cfbecc9489d598670f05f74532e7f14371a0fcf0f13d9bb605e872833a89aed3bff6555b6a042518e5899125757ed61d54c08939be91cd02c1777f6679cd4a3f55615a39f0d2b5dafe393e522ed513a0374a3edddfd8405be249bd308a6a9580b0a0f60ba77f06b39a46486db7132bfafeb513465541b2d66590bc661b5ecaa0c783e755875c92b06519d1489959ca64aef7e8050733e47854415f5f7889665d9e1649f10938a3a9e711a71ee8d208c3ad00a50bff1fcf7a0408e73da0f7ffc2e1da9640c827263b6e93694066fa688fffd4c7b96ac9d6dade7bd7b9dbd81d38aafa0eab0f3bc538ff205c7d686c7f2dc5cd1732bde28dd255ce9ba46d155d8223e2802378f606046b70c9dcf3c08b4faacd9d19c19386169cecc489c3317eea6d1ba7548b0a3f08b38b97cde1f39adc6d14fe06f0c95cacc300a54b19ea30619b0e6537324cf8a953effb870ec9c446b1a611d907560a4b9820fa208f5834e815367ca1c833994e25934acb9470b762bfe45b97faa1f9bea3edfa05f884e09361c2eccdb90fe8541e168c0a1512081dfe33bb975d1f98aeac4b7277caf8c7301c92381e617197df376ae29bb520e927c2e00395b2925b78e347cad1a0e70d3a6ed5ea89cdc15d41a31fac6bcf53f144fcd70010603547b3653eea9c953baf5158e2df9bc874fec7452fdbe91bd3401154f1b40f9fdae82259b429c0caae12730fb4b9c5de0fe08b238e87a4f7f86455be8725a913d89ca9e327d4a0c95a95e479c0126f610dccc5ebe20ae038c781a776753202c1eb7956f6f38bc7065674fd1c22c32540382b7382108124573bc12085ac6e5c088c352c4753e2003e76e6bc08ba717045333825ae0f3d337340686373c92f0f6b213077767f74fe19b480e3165d0433dd116ee8ecb4a4e77e9ae9fc70087f6c63f570ec743c709cf404c0a45c39783d0baca61887e417073964f1ba8600fc82613301aa9bdc83b3672d59359cdc5a4e8b788b91ae59a234710293c737a0a145909df373e83de0262c9cb16ee7f5c8083bb1b3fb61bb5d02070615f5e6d3b33daf55f3aa6f804113a64c8ffacd62972535ec04b5eba26c04b11e086000fa7ed973c42ae62ad50f348e4552a2b2529176306b3654277a6ad7e232cc9666dce8dd8daca0705b9a4517ba051720f1a11e3d7f5e28c3f0f4d05b6184d212f890ab329fb3ae433dd04ee103b2c3228ea1d316d6040816362ed54a37f0b434f25581eadc4612dfa0623c14a3c2330de04760db43000f1c76f9e2c1d6cfb84e21b333eeca274b3f6cbfdd93f39a81e09d0b1ee81edc4d968f13da3ee2bf10bd5dac7ef9cdae6df2f9bfd08d05a600753161aa5428510a3f4fc0e968b483d9c87448b061dbe10a00bd05fb1e6d20f32437a5a9dcbba910e004605f1c583ff952f242411704e52f72ac7f477b57a8fa224a7019e4c28b96e31559eb33be11f6c403cb2d4a47d650208fd756b2e549920a8967c8f59b3bff85935ec5d46f690cf6a2c5bfffe772b34ecafa84aed1b0ff416514b213e787b9ea92364140cb00e1f0a10bf6116c17497d35f599c6b6a472529d032ec5fb99ee6eb9e7d855af5ee04f3b516037efd4782adf2fa8c4bb8565a750213c9e2d4e50384021a2fc8e15944c986ea6dc0cd6d37570abaaa32ceda4c344abad4a77ba105d4393bab2cc651fcfd4b730c03c47b809190dd1c7511ddffe79aac8f74f82d0c6ee9ed72fadb76c8752a06b15b9951b9db807a18fbf862c8b26eb377946b7cefd70d385c697392e2e9484ea8c7529d52f6085d721fbff88e290b26f23247c060a2fd37c4ff3064815fecab4cf4a5c7d82c360e6efe7157633814ab9b58905bfef70672e99b46d1878d34a497e13a90411a52f262ad0283021c341a45bb8c8a87bb28e2a810f23dcac0c67d96b35b97c3fb70ec8a6a8200d770a72b85c98eae627026d65e099076eede0ac9fd1dbc1a3ffeca87669509cb9383994fc85f906a33eea2611da18705454169494dcc25625748b41bb768b10ed5c372a2d4b45433634621ecffa03f0d92fdcbdcba7c566ef12f50e5b7fe60311ac2cb3255da8fefd0f8c44be4cbbd4542ac599cbcd904ee8348fae31436e208b95b5a883a8b24db7c603dc84b3dfeb098a3e46c61880acb25dd6ca01d08483d6ec2621c927358fa8c7dc7f4e92ec76cb8f21c508ba46974171935dd9070730ea8cd62183b0b42a219edde7f440fa1798971bfea075125a0cf78e10bc40ab45154c6d5f2683b91af06cb61b858561cda30df2ca0589a29cd5e17fad698b21ececef10313d549e847488c1da87cd3590ce4be367bf38830baece7abb543cb527b88037c0e03f96de9ef16740008247284d6ce07ec70fe6a9a1abf016fbd0e2c5ceec5c22188319161eafaa0cda2f577f5d963a33a31301f0612dd89c273987f9f2faca427eadda996d166399873ed1a24a2ff3881280aa42aa6a7a748a3e2a1b3e6fbeb75e47364b59654f777a9d0e28b36424318392a190e47cb2a58c1874f264d8e496e13f2d07e7dcac3662e851453d374c166805397912bab7222c2ea6ec26c00ba5a6f14bbf6119fe1d4eff3fb72f162698c66d0fa39f6adc889c319bfc48525e0886e8d62566758b405461aa8ae86f7beba338e94cd746bd5311a998a2d682693e29938b5d22e61b5a8f30a23d26ad6b6ca65a6356999c768849c35299a3e0deef06f62431099e14e4ab9b9b650c3731ba22b67a1f455e9648dc7d2ed407c70620c405ffa6931d57a6e711340ec0a209663380d08148c502886e55e879b146c1b574b217a10542df60cb18386052b13f3fd90d36a1efb91b689bf1d1b84eb3f1a0a0c62dfd773fca2c7e4ac653df528780548319f992ad015be4466ac22eba5931376cd6a607f2ac804903e6084ab331919bb27572f4dc61d186a03490f55cb9f4035c3d7b7418c39a901e74f0309c0a353bf7e600f5424637ee32a8ef1d332708686f7dbd5dbda2224b2612af80eaa88a4e76680da203149e059a698136db13479405bd0b17168a486f1c910fbb6acc9f041a736116a2188a0a6977392ef187db8438e3724b22d6ed12037bf2d2ca2d3e9eded9f61d7c058028bd8ee5d1fa4e8008a2d146adb87368f8f9ce496aa42b398373d5ce881764244256515b55ba76ee30547d1dc0865626ec2385f86123cdde9db70db74a4c52c519dab0c94f3175d535809bb95d624655bba414c883c9c14418c212db4cc9a1d941cb9ba5f06f9912102e665187ce79fb88658a5c8612264bed837552ba46c0c2beb5230890c3e7df679188a9062b62859c6bf0b2915e38984af4029fdc5c339722137ecd6f04759236352c10b58ee6893eed2247f3c261df06728a12a152ef45dac4aba3fe91d518af07a495e4b8e87d4e48998125e05680302f0c46c26363c9d90b0f1db9abe749f3d5c9d7f304b795a518ccd2863a86aa48df5a44a4497a25232ad57aea10f4207bed5a1a164c343e91d9f078ddd3b6fdbf87f7258e8bf82c9027fd413543f37e05d19e9c546f2543f80e9a9282855937ce9dfbd95ea47196588ad36794a99d8e2942b385f93129c70744a09b5102ee3b93df14bc0b7b967e37d1a9f8d2c30e4f14136bd533909a7f9d85575b57a712b20568cc9918ade12a513f1bf1c4bfdbb18f16178222776047a63b4482aee434a5ffb861aedfbd9e3b77ad673ed33e45c5212e009cbd8a1192dbfb5c665a29a57e6531cc83986c05babcab105b2941101b55487cc83f338e177e26def637b399bd1fa091267e78f92de03265afccf94833cd0d5c9f0513ea62f7d55d6fbca2cf756eb921cb22be60a86158b2363ba8ab4900560436b54191a588922127b2afa3cf4345493ce4b828ccc42bf9d898cd3ab8c8e75cdd89d1a4028e8632505fa07c5a1cd06ed8f0aafc10cd7652d46b48897283ea7a917e249c4e50929a64164fd7504f2abc448db6e9d980b23400999daad8b8409f96e4f0aca7b52eae6f4e11058940658048ffb66c347e5e93a781a1c0ad1b0b97c1cc317767ea7d883545d9d3c0d0dc5d11015cffde10d141cb06cf04cc0506cefa4bd011ca554a65a19de1238d40b7498354842e609d8793d61dd8ab4a0c43477b528ee1caa818079080984c261b8e80af83d74e553c5e9387d1e548a6c8c75381daa60308888bb25438ed0a53235b2fe44b7ec1ad6febd349b16917f06d684783fb62a3de94ae91764ae9defbce86d673b1bf0340e84f6e527f9fbd768ea4d19868b6521f26ab961ed342019c9f60c84d08c44c5eac5ccfadf9b34c8360c7204c6c3526bb3f17e12f040940284c78e2ce8a7d629b28a1d31a43a0cb7fdfc099eaa6ddbc4188714aed9f9f9c0cebef34d4f802430d6f9020fc3ebbd08a8a36ebfd5c34079fc48a6da82aee8cfc136459e4d3b32266fde8231eb4d8de223e7d3a7733bc11cb9324a4eca6d6083f3abb0f2b4ff68b7e3149fdad9a9d93fd575f6cf86410e135660aa1d31ce23bb12307794c7f54265793fb49b758ac7d24cb8c3fb39e584b606624b113843315ae64cc39416c54f249cc2162f9f3541fb5de8057f508813d7866f9904ba0169e92901517ea845c8dee96baeab21c5e93021100cb42e35598a7048c123783cd37517fa2271c0ff8f924901ecf8798c2debae0fe104e2323e4c5df82f45e4235ca5cf008dca8e1e95809cb2abef5b78861f22947f5e2971f0ff889c2225d1e111e8ca0dcdedbfe8f5f697fc87f2c18799784cd74cba706717effcd67ed3217b0d68151745fa1042d33d9dbb5d0fdd25655441b247c32660bd4274571a9aeefd4356db0316606e9b1370556e0e1c9428ce5d5bf1eb4a65f025b18a0f4a57f2c67a31d1119d41230012b9fae78444cf1934f8117b1d98f42724a48aebe4a8313088f18953449d3c69c5064b337ef9105f913f6687fbf7dcbbd8e84c88532d5d0c0391d26950ae28aa961575cd8011b2a610fde0aa9da88749a20b150b80c9e89c805236747133a26d46dcfd7a8bd101c0ed9b3fc53df71ff7c23d2304854b78b42fd6dd9264d3349c82294e400ba98e6f59f84c58553fb0076fb48a746af97b61236eef34f1975782f2daa8ef7155fa78a05766e0ea59871b944f553a418d9fc66d8ae3c6cbcafe4988ab94660a9f5e2bc6af6358019c5642cfe3cd6709a312a9bd30e79c06fce6d8c4c5126e7d663b294a9a6d8b0aa76d80b78c711f54f4c3d816074461eb29ac6df0d053311e39388c3f87d235758c5de03e0c9d8d03ce2b34711c176adefd7ea3ce7952ba860d4690c03e5a0a72f6f1515120a332006b8fb5f31f6126c6d94007a85fb7b8e1e6c09c3884393340ddca394aa81a795bc53e0c805953d67208488b762efba1bac26a974accc6563a418d160a46bbe20e9cffc389d9ba8c63379dfb1ed4a8e513635a04cf00c9a222f70c26fdc0494f225cfef2573241e7d7ed3e71bcccaa79913d2227a1eb56a002dc99c4785f83abb7bc9908fc64b96560c77b0c04d65a7764cc35745fbfe5c1c6dc023d88ed1200559142045aad84838bdab04f0d7ddae8d33cd23770b48f745932a62009c9ea5ebcc021e5c810935a0bf30a89c5a659bc11cb376a37097302e31ae530dca0e7543bb84008368f395c230e4f97806420e9cd161c678321d141d6f0af9c5b7e81a4d8c0cac8f2cc65b51ba973f55766615b54bac49aeed5b1863a47593b2956a52561bc4bda59aaeff385b5b3e90200d8ef569596b5aeac8dc4029c705dbadecb23559542aad49780224454ece9e00d4c2bc27601749d18c6f1b71a7be0e626a0d3286c9472e02564e08b0d6dac21af8e2bf61ad2f4983a2006c2181b175a3a96e4041ef0a8bd1544c6d8639c53b613302eab820d9e11afe79730512eacfc0dd4a3c40036bd40c65dc596c79a33a0815d2af5da3e46001812734648e738d0733990cdcbc703c22ead81cf371f8cb452663ebf2e334943768eecb31f33bbe784c69a147ee89b5e7aa7293f2323cac39e946352374f1a978434e576132e19051848fc269b4a4a057b5f8c9817641abe24b17e10f83ddad42f1d172e2c8300a3f8cb67def1a57d112f1985694e8e670a4133008f208eb87208ce1e20bbb95e006a23fb802fad57403afd2e74ef7fb25c1e8e1b7b568342838681dcc536b40ac57ba7a0a3100558b94da761ceb83ff378d41114f78f02f4ea3ab19aeb7ec32c70cff4f5ab212c2abbf32d54fd32b2ea997cd03e9584ae9d8ae78411f1c4e5acc8876ab9c8dd3d91d781da3c24e80a8600bcc45a82ca2411562acf231b3a2929305d04381bc3f2379d19e57091ad2dc746030734922ce5e4c001d5226f3c701d6d71ed77da2d4e082197e288c7f757b51a06e8b7c607e3f87210381161bfc5416d99abd9976ec1de945b5c80e2809a8e4c356d0e7d6bb7d69b8917481c5a12cb5bb95d2d57a62ab23a5f9071e57e0cb88d68414183da5b03b4037805df0bfb629fb30100e87f2dcf7b27a1a8a0dbf53b096d1066798ec0512639dc71ee984b9865e4fc42220ccaecc820837acac9c1eae338d3058259ee19629084d6cf16b925e698b9a715d14f0ebec28df1a87e3159100cac89134c78b4a6180f746a450c5847f89276d24d26fb6ff0b6d9925443dd9125f40408a0db6e9d614eb12308cc9ceab0362cec43ed4819e54e32d95116f4072aabba057781aed379a7ba764b00d7002b3321a495af7421030d0791e8fd0a070ba7462de8d6f21860c2b0fd1695b4d5e6862576858f2edb1b1217d74e10cbf07edd6ab92e6b58fe791e06bb2254e6459be9de49c1bb3f689109a797ee96957dd92924e68a6cf7e72a59e09912e88ae91296dd55f0f6f341b21274e2c565ccaee02582d0873110e7f5b7106861e54b4c8f8fc175d0004f5c41f60126a02ac55fdaf6af134e8eb7bff7608b681057f4ba7b220af73662ae92115d7e3d7f5ba9a692e680365ca4f7d5eff98de08b3132ae8d314b776c0093b4cdb641da520ebc4d873069a41db8bd07932c04ae461a138d4aa8c739c90cf80645b5e3e977b49db0a71f3293c5e6d5a2464b55e66513833fa80202df63c3bfddd7008209993a765b38fdc6e004813a704daf1b6df0002c33b84cb34803926141c3ccc643721e1ad4f36ad0b2d9710d17a8613ac4209dd9ad5a19f86dbcf37398c7218bde1052441b5ec9640da6b3e7733ba78eb7b4fcd277519703bedd564840ded1d65d03fdb4138f3469d4160146a274500e57eaf7a272f5baab191c9583eac438e92d199ddd45b4f59e99ee22d7973aa8a269176131d590a3e6380421870f436af8e9e33dc5ab060b4d03b653d1bc7ef1f911e12bbeb79dc85c8338ac351485393bb2ad3c019559cae78e3270ca55c8109509ba6fe1f55b1eca4503830500ebf84e93eaa03d8ae3b0b3b93c2c95c1a8d96e66637696f202d2151e037a34e3523e444e22a9a6d4d530c7630268deecf8c8da2f57cf7b439c42f250f21bbfbdcd469db6968ae9a88d976c311c921253a65ea6221adaf0ac661c9a2266247a81163ab4ff802bde56797a1412fac8d4b5d34fbacf60a9c26d16120c994cc4138e0c11c463cf437ffb20c1abe33913d05a38db300fa1d4cc4a66668bb2ebeaac4d76c41feb51fa13376567cc4a62d3bc69bd9ebde792a311e3a94bd183a66c85106134998eea997ef98e590090f76c50e086bee26bef79a7225574b0bfc5ca05aeacbf80ce46a24a44ca4c1d1573f4a61b4bc0882f5e74e6b46b933b5d08f54ea22135cb29fc9fb8e0d5c818f96beb586c48fb356d93c3959d0dff06d95088c056b85554acd6b1946004523656db7f283d71e2fa3c622b00651335536659d9322fb24a065c90c3d1ea3898064c810a7e14b365de8cdc27af4235f356e8d6c174ec10b9ce18e9115cac87da7e2f30ca407a8baf436a8437a0d3717fc580c3929f1bbf0afa1ac0ce7e249cb30ecaa3dc2dc02ca5595b195c2a36a87b5788a5749c5027115b5c8cd6484429e07b7b35d8ba60922ae276eb36709f59570a1e666eb4a729d0eef9c2cd928b482207025429711e5315dc4c9979e760dc8a71af2629145d1a8a8094ae156b1ec3db4aa0024980d8e3848ce8733781d6dbd02531bf140b6b3d08030df07852b3fbcf351c3938d229f1de5294e1877da89ca9c72db09f1c4cfa7654a20136d5e3437b2b217b9938ea8ff25ead7adf6dfe5c285141273378abe3cb151a7920379364b6731af382f1cc3b4e2716ac201a650140e2350ba82dab4612318d93c117310e780b882f05d17b082486519c9452d6fd52035023dcec43032c1eec60595149e916c381bd91c79dac86e980a15ed940538077ca80a34cc96f93d5af0804621c742fdd3b1cc3a9bb5223aa672734d18cbef8f6faa7a3d8fe245748498c084c901f8d0ed7225fd8bbaa3abc5aaf80dda80ffb41350f55a11ce4ec28010e418fe24c5b262cfbff0ed74c3b018300b61a74177ad16a27f99bb71ff6e05308c90c2b17c122b50ef7ded327a3268a17f141498823e26c53b51ead4785a470ebab9e42805b086a58ddabd2a6b76f7ba1a214c94ee2ac99fadf6f350ebd3344017b6958ce2390ad79d8ff894985ce170eda1ba8c9c42dabd369e6406ac3a17df009a4b85becf0c4727155033e59011da9c45065db2597b3e3cc35169136c4585406f35b6e910f7ed1130a4177ace1f4f9adaacac530c7c993c736823db5f3a93bbb3c3c932da15cb2698da9e5038a9818e111d89304a8580737514f3c3dd30ee6646d89f996927498cf259f0cde16739823b0f8d06a7ae34f5ad33748f11f565c1b8065f7c31a7ba0c76734d7fc3676abb080fcee8159a2df2d46829be5d71c73e859a4bd3779d48724127071e4934f717bfea29fc58fdedee15736c9abc858c1e16cacde13f376b96174ee1af862f3b0825ca8dd4785c828f1bfccc6060f5ef44382849502ed3e06b023f33acc6b9458622ef98ea2b54bf45767d0835aab4373d1e404326165f7171e07985852d15e5eb21563a4068f565e97542ddabc6a0818f687311523a629db0df0606ae4273168081b95b5c5cba5939a6c8de92d5656d172c77098440d803487ed5ae5d9dc3682f051d44731c8d5e82ece50c7bdc03a861568c2f9163a50583615b1d315036f31d528072e4562ec775e493dc5a88d71c7ecc8f01169a7061a202751d9b5b2c7d7a55727f026c0e0386d0028fb1cf2f7998caa9fad18a129d3a91cf73491f2567ef7ffdc4a5db4994cab145a579a0437b28d52fd038f5a64d8568921a697a48f7ff8d2ff491d2712097656b69342d33580d861fc12d2aa03cde6b5912b1659c4a9f9e512ea118b38e11f6578b56336899b3233cb468db3968015021b12530a5153c530324581bb3fd71c14eb6f99d74d3f1a34ea90cead7c7a5eced929e4b82e2649f207ab20cf544d9f0cb1e7e477868eff0dc6234146fb7e3ac79b1e907a7d216907d91e33a6e0eb62e4dba13d8e13a5bfe5681fd886bc188129cce6b98b7161e866b3a4d0fcd234eff3d5b36646fec695c10b109ab54a7a46736f5f5d4c60a42700015c641b35abbe61b476af3d634aa9e4bf563df4318af175a21d6b702769b0a62e4e97a6a841163072afc615735ff8fea3bc05f97869d9c0ae08015453e5491cb42cc359fc86759045594d0ac714a5020b7c9448203e30c87c9396ee1f1b7db92cd3531b0be0ae726c61c0b1406c569a42cdfb5b6b0542387ed3dfa5b7693e67250ef3509d56333b2b6e7afa93be26e27ecc97dba00730f0418a5a9a57024b7a6d4e0089856c0c81dfa3ae34baba32b4d7de0bd6262ba823dd12a0e1fc37c252eee281fe32948d5a4dabc3abf1579154869cc3feaf93b30982aa04cc9dedeaf7b0a34bee6299bccb271b7791d4e331ee9f64e3d0d303d177ce658aad3cb34c2bedf0bff844428eba18705536ac6baf5a2b281cd0f51fe76bd577ad0c05580b2d21e78b7948c110dc12108e86043cac5ef67eb29b4de3a8b8a53db8eab3b07137b6a16a18513490f440ffa633d4611c62dc5da97066f550ce515cfefe426d9c1402961615989548db7b4b1bd2e0543da0234d7538a3457a01f94094e291bb55062b7e31858c6e38923b14c31c307a005a517055ee1dbd6518186f0815f5e10546c0fbdd58e405da7cbd58dc6cae5b6d75ac984089186f90699bb8ee069534063efbfa3ff626db1d84d7908edf7af4c980d7932cb4171c42708a5bb3c54def91140abaf8b418b0e338b4ecf4099d00b4e350ccb0698bc389b5082365306715c7b4ca9df9e41f6692450fb76dd4a071d25d2f1f74acb9a88f7074b69ae25b8d04cc4db5b52c84914f1828b392aed38430596d6f63b27696f7fcad8b02c0a6fde115b9f00b6be250f903e64bfd0b020fe540ae7100755d92a4c7cabad0bb4467ececac8ee62ddf04847318fae47dd583879b5ac76740c0e1a4ee8fc1167d446ef69f383fde2061252b4b519cf2808e7aea48a933bb3719d3413c850cfe1dc772a74632639a64eae5476dc7c1b44c1642b0df9978903107c29265a8d7f2f842964768390837cc94672f1a710adb21ddbf6668e52081bdc5e25b11bd08c2ba622e5ea104fb5092d8b0443a91b931fcb84e8359814b5e0768360bba0cabb75a15c8df635769a5418445a855522b9e8a9bfb335443c21d0fc926ae86f92b12de63f4a60a6c6a35daba122f8639d93e315a6a3f27f71f16f1d28027897e730a4b6ec6b378cc1975fdcae88c33a1787c66eed91df76f60765d25ec7637819d45c74d209448b4a89dacdc93ad5183bdb1ec1a695175bb3f3a3b8e30e7c1d2a27595bf96274889cf21810f86d17fc5e4890bd641b5feab06ed2032768d07e161169b728f90e0311628282d8353e44458f1127f1eec29067fcabcd77fe914193a13e0573870249091c78a54151c1db6c8269c46d8822365bc282a9fdf4ae60444334ec2c758611f196fe42d56e811414839f51c5d9ead64bd6876bdb64ae49b3210c91e725b97419f9e41646310311bf544f8042819d55bf420f252298badafc854de3ec2e12284e9ee1385d8dd9a9b28c935c437111c34545e8f0df46e6b99e2c603aba03738aafcb2776bc004f1b91702b8b6de78eb3cc0f2e93a8dbe9930dd711633f8c42f712f2b6c8e8637431d3548a36798a32f358eebbf6d01c3d7314d478faf07f8ab8dd1e73261b6f4c0070998ecd1e043807ce41ab431eea48901a83abee08832364bd1616130186028942d1d68af39b4bd8355a05c289ea4a5ff7a2210fb1ec2130f793b3d86fadb09da801b6a6333bbac0f6ee279f5e414acdd0d5d7cfef54be20bb4d07ce6ffb0e3bf597c42d82a4c68cb2a87da4178794764e79ffbb9117424c9d8c55500341becdacddd99caa40c313f9361d571b3ae97a0be46044ac74780da983060787a3905d8d0332d42ae8b1865d5c901bea7f204e1d0d6ccfa55377b7d003640ac07b3360075c37add03fc1fd53c59375cba1af04f12284bf1372b660e3727007d36107a0368bc15bf34ebb406a1ee5c016d16c039104a1fbc9831490203c00c637974f7dbba2bb225409181ca925eaba8ff23287f0ebaa8210d899a4195d06cb3b500228f016919261e7dc5c58a8c05a4628c685e419d03d3d54b8820f84e9b8ca27f420aae9170acf2c1ba0721256a82a619cccc600cab1b7a9ef596224f8275c3d90e9f3ad34791c7f4fb94474c4075a915d9037b2dd2608d9723eac6e76321de80993930a1475f3e1f623ef56d964ba0a83cbc419d96b6eef6f830e7aaefe77f6081ff3825bee9e594bb11d83877dde9d499c237a11b52bb098153a7df3915394df14bc98bac283367cb5ad9f39804e612ebd3354a2f12d158dae2963b0a4b3ec94de0bd5bdc1d6d0c394f10a7551982cb07905a4c1c7cf34d11fb3927544bde58872bbb4f8fd27ca8a65e81af20449cc732a625081a9ca947b8189993db26311675270cf6f56f0bdf8f49053810a030a569a5f31e630c7cd26306fd80bec63d69d10b7952c6779918ee80561cc4e477b3c9ed2aed3fc53abe21518a31bae4a5335197229f42dc55e349be5f9f6c923dcf5f6014c71365ece61190932868db9614ec1822e36902f06d4f0e645300a0c82f4d4f386d16a40860f58fc48a561e8b35150dd82964d7deb4a3812e409aca8511e83ddb9484d10dfea5a7775342beab305f46679768ead198dc89b0d0f9fba28aea24fd9b2401aa6add88ebb89f5907bdcdb1477acf37392a9c9158a10606a8254d9336c89c78279ea72f4e730a4842e26774b8ea49972104d1fb70ca97eb17c0f03970326fea6d9eae98e9c2793882ce47c0488907f2f81fedb56a561c818f86abe889eca76a012ce3f4db67ee5c5f938af2919e4be5f88ccc334e2d9c783db8c958440ea574f7b1313ac6119ceae8be8f42ba1a2d39c9fd0f85be0929ef8b645cfe6a9c91397a497266337bec781335e902b0dde09e075b9d3f9d7ea343266b931fd909ab2401d112dc2be37fef1117121d2b64a86785f0931446ca5d46c721a29b2d6418530291a36df1f064579353b0b8a175f8f59ec9cf7a0f73964d689c14e64a393470ed622408acd8f05372cfcd3484de4d7fa86718780e2ed4eb3e1a2fa720b12777d148c04ebf21279391ff7cf8f166a9af44962a7286242d5676103abbfa813b207967db7d87cdf301b458f91fbf8cbcaa859f16c877b361d9cb48f7a154518c03bf3ce6b8428e5d375c8931c64d07a1c4f5e1cc8075ffe56a3d67641b97f2552c84253b24451104d0674e9c2da101af4defbfd133456dcf0c96fdb224eb66a6fd653c75de8b8f9e4cef86031e40bef8ac6be3f156df32b8dc6187b0d26150f0585e7003cdd2abcc5b8624f69b46823119635392711e7b7da51b23e2d26018e66f32ad93969f11c7a12548012a259e646eb8be2829efc02327d64d1902c5f403fc036f91076b62d6d2c36303fb68900d09bdae3711a89e29747fb807b027da2e2b1832b0d2bb2d9dc84ba0e751c7d0883a5f38f75027634f744b6bf65069c0b0da8de02400967d7024d73989090ff71f7e227eee38ce7787274ca5ada1b56533c869192cfb1ab33f292e0f656ae85531ff25772965de8214938155f3a8b0a38ab247e38115f027f90bdb1c88e622d6ba0b7d89bcfb975caf84523acf4caa3fd8355d8151ca50a266fe280caad321bd49c95c0c7c038626bb170e8fb05178c46d6e74558fa6fe97f36dd8081d4f0e752a091cf19804a9256f589410b9ee949856a141e2603e1d29c08182be13ecf942c2c593e2dcff884f1e2c5b2d3b26ae9900b56fd2f2b08c8df759b4865c0c1ec3fa1c9cb805b1e9cc493e48f38559bab860324919ee0c362968ff2f91654c1ba490bd7f3f7b5ecc51e429f1ede22e7b01f04d80ea2e66b5ee7ebbbaa33ad39efa633c857e05cae75e68a49604e2c25c209ac3ffbe84e91b7e1119be9a12e9ea2056c6dd2c06afe176d03abbe7854da023b6a5cce5f84e8c468ba42ec9a1de3c2607b6a78b2d33172139f788e2a514f01b19d4f4315ddb6735f7a092cf69e22e0047c38bcef0d5e57a998a22da1b758aed9c123f71ce25b08a28e07267a9497f660395b55ee2c3825d5a45766256d318d1c8880991eceaf084a836b000101db2498daf292e0b724a8801373dbf03c63af35c534ee2e228db756186d92d4544f50da09b5277123792a71b0e455487a480c81a1c9c5fd1dc9cd3667f327bcf274076bbfd913e51854bb92ceac67c2d93017e6824292e76e1e75af9c518299aaeeff61c37b466d100149621fb6285108a285d44be4edbf2bef0bbda0638e7c48d1caca2c259c41d089d7ea89c9c17281c87428e1fbb6656af76c8611a7fe05172f5e95a288775c51f1aa61b8a96b16fe0e300f11c040ef407b5be745a840055924714651a7b0817d959c45a80993a62d36f6ca51bcee8bc80f5caf7309e134cc48a09996558280ccbc4f86c9071c6e769bea7777fe5e295e7ff57927507dc6e8224daf4d450752cba518d73f5fec285895549cc6b5330f02054483f46e518f6bef463ede6c76102d0a9c79af273bd25b726ac7ba3622f6a6b948751fd3f6658fffaa009c3c02cc3fc7f675ee67f0be9f0797cce1298cd777c30cf6fc0c1e18b8cabe3e1bead8e52900be8f4e528a38b48f568b6264004f4146e0fd987b24f639a5a019ddc3920170563172f267a738170b801001ad034f3d2b8d34bb98fddcd6e9bbe3dc60ee4fcaad16c6502989f2c18fb9771a33c0e9a68f44d5436daf043548fae33750c8a3f5f92342771d1489907f96d2ae5971ec530ea1e4921562398dd67046822620845bbc734741f29599756d9563010a6ac15731e78a30e964d59c3b8e61f5cc811f7c3c638a6f8df31a68fa1e474dbad819b9dc54add0b22cd608252f73af1bfcfd0581f4c35fc00abc9cc3913623e27036e018a14f12cf891e41691c3e5784527cd2c39e8483845d3df1099134117d6c8ef377b4159c281a2f2a7f17317aa22a9c66a0f5e6ca1c2500a75931e7365ba2cbff8a1ff629b3d0f8d56ad8013f71e19d6f5041c3832efe442bc315af24a94fd0fd0f245496ba13da374c3f135f88238d56f6d41578b9021819a896f510ddb644458a1b7cff7ce604a504957d71adabda482464c93822bed1fc95ca045f5f055860867daa64efeddc3d06a6d27cdf05f80d3fea43293a4db697ae1f6acecc4957a487b0c944a7c34830830f74d07d61513edf46daf073313f06a18cc530dc0ea9bf175d0a824ca5c0156a4720563cb49d8d85410f06a5fc900819658890c309bdedf966d50e358c991d75c5598903d14a85b276b861da226fde73fc461782f18ba23e89565378f883553f26fa7fbc0ff0e4ac8edab37419ba30405deff94f2e71405e0bbae0ba52600b81b18d9bc1153cd8cb8875a10b766a9f97e2b830c0474e42b5f944dceb3a4950c604948b1155c8d5959c7601b03b95c7ed18bbb49d76d01a2c9479af37fdd56be7e28b6f6ebee4286b4119a63c10668180080ac14eba625b37ccc52230d3a334c301043b3e9306f21de5d0580386bed280bf1d4ede4adb9ccff1ce9c1b7f4e2e0ffd8fc8062af91c8c676608a5b44dcb5ae553303b1d198549001dc85f59862849c19870df964908dfe23a7e0409d5e8b1c16f0bb0e2b767f67bb90abf7f90c2b2b67644d7efd1d934757f0a0544f9853eeb112f51a129aa5fd7ce39af97e32665b2ed0d7ed2f5870cb1b49c88d643b0c992b8b9b974d8700ac23aae2cf12492e994ac3adf80baaab9806d4b252dae348584672bb67dbf69e5381d6e0c896d9afae0bf88c69bb49d8bb8b2cd76c2bb3d77b3f0e18f84eedaf6855f592c9657c948965681933d7c6c67c17f8d40dc89a32a125dec0277c960c8da86348b5fd259059d5dd3c42d2d0448646d57d3b3bc67e09a9d315686011c173f8b4874e5810434b6031f95f822454ea191d20de6553f1a482dddc8d6fc1dc1535a573446c0b073ea31675fd9e20c4a64c92b0598ca120d76dd12d22f78fbd52065d48228d1e81794c3b97ed42be077ea8bf6accc84a3be33244129871ce9d82d7c94a6030a6f186fe94c17d16f8b2f24f455591cc39b4642d870d4b118e0f1e504f41810848e2ba54a51c6a6555fcaa2e01ffdedf2c0a248c8799fe0bd8c933ff9a65340c328bd1e96935ea14d437e96747527dc41688bf5bd309315f31578d123d244253885368b6bf3e1101337ff731657c478debde3c827f4f17d2c059a7e237a541c84808b6880dd0073aed54e1f9f5198e1de6d948c368b8aef357fa2701c7d52d669f26092d983438420b56fff4a0a9c5888723d345960214a5b62cb5528327d486463295298dc48977e433f0d71be16fa02e48acd196e184509ba3f98ee713f9b7605a2894c7569b58d76a46ebb40dbcab564b8ce4b6f57446958e7916e0a5c2c7f724bf19fca2ebd73d82f7f3773c5c5cd8f9bf6eccad4bba17e43cebbf2fe833183d65d649ea5b38a8aa37b443b1ca7356e694d90252f779f7ca6f710c5fabb6bf6967ffc6f19adadf6c2c6bd124733a1d6daef8f84c9e6e54049abff1af675b3c6c2e0e32711cdd2d2b78f890525da4f537836e7fd4c9e6f5a2c2e151df0f3842ca4c1989440706216b38f8d9d7137bc16c4f60da3422559a2a0b013cd95635df35e18380a085211c306cf69b557d74734d2c1ed89760359720bd5a0fe10b5ff5846703f1c6c3aa5ba9176e4830af789f32d133d5c3f62fdea0cf8a8a0403eacb44618ff267edb9a82bc70f00cee810a0aa6f08d1378089fc333552e086a729a1c93e4f7aef5787df0a774b408b9fe6f0d5e8c58c1fc0fb37ff5e9539a914677fded2d935d3b8c4b1d75e43e3483ccbe222cdbca94a64df1091736f4cec46e159ffd5f334b867ef47e70e36122a63c46d129def17c72b670b31883d1057417466a4b57c234c777dc89469149c5b60ffb6dd471bc0081639b3fe71b861a1f907bc156a08e7fb3cbf2e31d397e53771a8391b950c9b137afb6433ef45deb5e6a9691601896e07471b57440de3ee00289b9913d2a27194fa2c5d048097a852e118f288d0ca748ac840960f7d502d3c2c5520e3c14833bca9c4d38941ae00a7812154e61c7a5e0cf82178fb91a169668c85cb5083861605e2c475546378b4b748b6caa87820ed5ac14127fff030da1e6890c40e437d8c7ce9de2cbc857b9126b6c3b3155d191e87ceddb25498bc81341057e387cd4552c1d354e44ce9935459622444ed1404e28b3bf865ab85d25912e689469f84c8350678bc6df386f4e3e4d84a2052513da2eafde16d89583c38ff128487a1df754098c3960db11df79a656bd22e61cac6c11151093dc1e9bca41138985c10269061bf1b83e5609d672ba5c44f13e0b512df15e8845218e8201c064c3ac8f6deec1402e9c54595e809b577dbbeef3c78565ed781504673502f21346d60c4727e40427bac3c8fc1ac19ff1837b5142dfe0cc740a6dd40d878683cb7118d03d6bb01f92bc8c90c2f5a4105843368f46ac97c1a52192f306aa838dd2311a6420f1ab4cd2277f923c284669d2eee04135f34a03bdb83b776317f388956642b0188b4361efc436112439f388bc30fef25fcd9b1eafc6425ff554ab798b858d6d2e505103237ae8b830bd5c2b3ef26618964992cb15f1f6844b4e9698eb9ebbdd7b687a73137a73636c659fb4ffd88a82b14a9afc106cf4a8f51b0c6fe4fc405a58c1bd20155417a863d8c135405a4841b2b601b91a199ababbeca907132ec2006a6a998a176b75f8852eab2076f8bc6e67e9c33f84dad8ab2a2d4879ba1cd94f487fd5bb9cdaf42b37bb6be00bf396887ce8fd383b13976cd0196baa85d612ece3d975373de130626395e0bb44b880072ea562d75ae8e503b7d70860132b804bcc3ff629063373a5bf71db20072c4d22141040556daef82e45340d25d669fbb0442b7a0a99bf750f43e510d5857ce629151042b52783fc66663080807b73b12ed165f79a13639b8d1833525a885233c96213fbef2b60166e4cdc473808a33bc1001cf8fe8a37c9c9d8ec75781587fc6e2aa5b882c49f8dfacaca9944449b1b033cb6651c2d7648f0b4004c83f84c4dd27c38c6fd58c99bee5d6942c4ec72b34452ec938be442610892581edd3e19a00d7b0d6251957ec37249c8ee72e0cf1e66b0f180679324cba2b63d75dbb29d70bc9cc08bbe1d61df6abbbfb137f184b5c813500b60c5b034a50d94886a34a78675743198e362edc26707f1c977e50b08b55fd000a8a14bec85067331fa6239a9f07fd17097dae00bafd513a5b2d682ff05911963541378da19aefe4cd722bd3ee020015a15a9c87a8411af25ff39fddcc249c2a21a244aea33f7437ba53968035b124dfda4cc9553251e5738e104b78509cb11ce9d2adb63c041d7b86c557c66db7e4ebdfa183818819e3dbf9621407db4ba60069eeb6cc028618cea9ba7404754e6c646aab66a77f39351072c0240b06693e468e488da9141dd3bd359f0dee404c309c923911c18e68288738a852053a96ee27add6a7f3ed94353575e238ade6c00ff3c95d61a6718359026b60ca193b49e205f309cf21c290bc848b5b2137ef43ca329de06894644f2665b1803b4745154139fc03b4cf0ad18be3fb98170bde0c9979bf9ed7a0788d92456974cf2d867d424dc953774ae07afe6832f673b56bc4a21f8c1a30a30a160493ec10bc847e297d46cd17c0776a69d0f01ae8a29fff31f0cba52724e439f22e92e8a8806bb4788fe183a36f8e660387448b16c310c8f4ea4ad2fd4cc8fb55a8a03eb2e9ec3c99dc2654e2a3d81a1ec1aa3032ba98c3038ffd0c51218ad04f967c10127c4f74ad9a272766fa2f88f59c0777dea5242353951beb5dd3ababdffa6e316e36f0318edea3f847b4b07e5b761969aa32d400618c501b65cf3ccc2e9d1e081ddd102fd206bded38920aa2a3f5273e0f64fa9a9c3cae653b4298e3540bdf89b0a9aad55af4ed5056d5dc9197db62dbba1866f6f59d097133c26192cc376df173e5708d3ccfb4b4ac72db6c0a9690d9d26aca2148ed53b1b2c80f0a8c9f8bc98a8f1bae13fc6b0ca661b42e3cc0a7c354d0c2e52e253846e339598ab8650fb84a031585f6ee509ad191a166f7400ce6a68f8226e04d33895aa0b14d39061c29c720e45ee22ad87c7cccf01b00bff7781cd1a5314e9141466f75f78ee8e3805e6219c201a97f8726034763051faac89b1d94664955437ace112a0b35897fc352900a617837a5456916bc181987328988ff4a9f66fbc3b3cd090ed172930e7f098cda8a8f8309028fe5c5648979f9ac5826a6290c51666d663d7de9e6653fbb334b89bdde530e2c9495f2f670c72ab811b75df5d4aa2d2e1dd01ae6490f1cdafe061e085ee58cb72cb73f6925f651bf057254cac5f33c68b42c2081a7c51e19c820b546019245a5629e148afefa15065bc96cd88ac5687af4f47b14a397242d5177cc8840c71b04fbec6da487aafbadaaf3a01f938e51ca656453889409de7846b73ec4b3377c6851b019c053b97f51362d43ea0666a6511d4cc40cd5188b83bf6964c493a83fd84242be4e34b4b3aedd5abd4f8f866e39afbf7df2396d13344578abc07a5d8c36b0810409de415504ce85565f1625da9d3386012842ff45af2d9a45cae682f37cd4adcabf39b5eecbd7adb329e0442be97e5bb3071358801212863ad788b686bc9316a7c0e0d9ac01adeb57a2c6a78ae666f9a2af004e05c8824550e5947677157949dd84ea5f4af621c6cdf6ee37653512d7ada2810632a8106a6d6045b405741748b167cc5420fabe2ff79bd9f3b22cd1a47959effa8b5d489244e2e59ea12b94215ee5c11f1268a28a9b15ec788a9bff856d360c12632ed3c0efa3bbd66bea24b68f436c65483c416a21715869c34e3995e027f25c23e5587f421c3b232a444a8ad4f9b45624b223975856f83f96cf945dcc59b93e260444be284fed23b9001751072155ba64b5dc4510e23887e30b7d24d987de693e8079d922972c7f63e3896f13a93d5a5cb5219eab5e081450442a25046499aeb25903b30ace19b126f602b5c93aebd8146f15cf9972590c1286884cbfc4146d2697c0d50d042ec8100211c538141e916ae66fdd1be24712d8d80dd8e61574d09f73cb0d1c85e1b257356e49133b65080d9a8118f6587e7a9d6bc092ac6fa753420393c426335e176d829c0b0202011a82b4ba5e8a6585e78d901ae11e5e700dfc21748822ba133826616531407a109ff21f4162d6b2f809161adca2dc49fd157041b4f64cecc3449075d9e5afcda0eade9df39203b0ba605b07e9cdf449078669d5b9722a5f771efd7c8f0509cdb5ce1f2f52f6dfb40203292123e9d9d137bb6c83f64930c777ba6bde646c953830904a558be65738ae80fcd370759f82e49ea15ca2a150d0b7a9e2b8b72b9fd2183a835d7be3c0d82e8b7f055b6a8e002cce4408038b83c3f0d6eff4f1c7e82d878ec36ee7389b8d5ccd33f022090b1346472385eccb5561ab4e29fbbf588138a45a318f6d8728a894a25795581caaa3d925b4ff0b9ca3fd3de7d2973db3d24b5a436deea5df559662e271e1957ddf5a6f8be798a6c68fa1b050e9e34d8d504c1adefaa9f40554f7909b34ceddbba15a17f28f20c0bff595368fe46bb26538310f63516be3416c84fccccceb0da7793e70d3f0f1f962c45b3914f4951155cea70d76012d0f3c4aac6afc8fb723af40a74984145ec98e24a0dca3223948b3926fb696ae99aa655dd9e880f3bc9f7e1181ea37a7ffedcdde043e10125cf03ca1935b51c79ff83a265f5c08812e65ed734d12f89eb816998d94c0ec15cbdc1e41f636e6b8c0189c5687dd20eb7821e87bbe81f881122a2b525a1b86642af56aeb80123ed6d40af65e8a3fe1f589cb0d6b400e6716e52c56034e4f832f394b152e63c962068e6560e8560215b5bd0971ab4c9ee7cc0ecef484b9139b8dbb9dc80f6d2b9e1d3d5239f7520f37988c09f0af943e0d9dd82e7f11dcd0d3293160db70a3278f0ae1690b8568527ddb665e33ef40571d8225a51df204974b9e3ae72194d427db4b8fbe4ae9b1248c6ff1ce70d820a8602b45cc3ebbe5f9adef9dab7fd901f8de94536f70ed4f3f8ef39d24fa35b894b4cf79cdd1d54f6958049a3fc9d3021041a76b0f6648f835ae994a7ec6abfaf6937a720c81446d8bd013c05b08fbe564545da33f120dafa96072eab5fd3c903b31328bb0bbbd024041e51be3e60a8a1ff9fa991226d8e1fb8991929a705e5f8818087a259a7520a833cfaac76ea2f4c12406fdc81b820984ef91d1de066641b55717460bb18a06e37b20ed8ceb80ce5550324cb8de375a1c5fa103fb44cfc0d0a363155d46fbce585da9889781267bb42a8fd63055ab38c88773956e63e8c0a4dab027e978c1611d2481bd0582952aa6ba4c7a707449350ea690af237b02a4f2d2040ed1123095251c8aba4216b0b78c6e259cc2dc31ad13cec23ae35fcce9b956ba7ba9c4d22e795e08b755845a09f09b30a1051a8a0d982f9ef351b2e9850143f272314393e65599719951f70c2da70db9c242f51ddcae52ef40f423db217e56f5d5bd155ffc6663b4038bbe51730d16f776a1371e09cf7eebdc0a96553a3b30bae44a8bc0cc5307af4d461627bed981612c6e6e851505d5802ad57d6f2b9c5aa6df55665ef8b064dd3d6384000d2004ddda95d23d1d618865ecca17fb03afe4683a1995a280a7fc20b8762fe83df002670b58ea5f2a0ff337e331ffe75687ea6ac86963288dc123ce3551b3d2f19c7566a61ae1659d9ba93cc08d64ecda03dbc50d14ea5a89693a1abb69a140e27513534ff2c0c444b678a7e851de92970c41d729c70fe36da42e3aeeae6a5c74c86ab028247a1cc65bd54a29840e0ab93bfa638579db67d3eef98d4617a37aa44af6c040fcdad3be204105b12aac71765dbe7bc8751e5170ad78d779968aeadce8fa76a0e58cb713111c13d4bd351b0ad90235f6b718a5d67d548990cb5810865f92971a4d8a22197e2e7bf25e8577f5d78ba91689d4bfe519c26e817614e688d812a9b04f3cd97848346281629efa3da94a33e8457c960a17795b8d28fc3d8047c467ca8baccd9743eda4173df1cdb64d5cc4e591856917d49615cb4d8fba7bfc0534431103d4a79e2be63a336604958cfcef52438c904b8d5088fc9cc14e638c87be6758967011350fdc67c7ce9941cb786bc8b0a790ea25b7da26bfa98457629bd2f2f0521ed5a5375e05164e8e2334a4dcf487ba1e594d107b1a2b009093ea65923285b5e0b364efa3ae6177adbd535089ba8664f5bda390b473b5a54de310f236dc6d1741a16891f36eb071a0dc45e7028c0ea94b0b409bbdb4cd42210739b024540952379ff05a7e465d6a4b7abd6aee272acd5ebd1f6cc00dd75bdf97223a01832f34fd3e44b871f2d9843cc3c199a521187963e1fd020734d36e0192087f9cedf9bc84322c2d9b19340d4f45ec6bd9f9528fc1c51df751f62c6fa33a8c34430ff3adaf7712741e07660f0119096dd9c2fe6977deed88f90865cf4f48d0fad6e2724bd02e9f3151d5ddaf21dfe34c26ecfe96292a3d9676b00bb944f8baf238138c35fd8291d0ee2cb21742be13eb67259803b8b7528efa630880bf22e36ec9b3f97de18a56930bb721c82f1b316d502484cdc057e04e94678f4bfa929d00dd34732dbb5d7096a6006abb6ad3ea5cbb38def663c7e34f102e4c2fe4b1480e1a2d2df5cdb520fc8d1735452805837fb4fd5aef904dc035efa539743341d4509d838ca532f4164ddfe3cbd4bc0f2f2a9c15dd1a9465d56d60718a7f06ab2f9874050b5e5df839236929ab59f2b23e377952650515476a9840054dcf443da7d933821cbfd74fca99d1a15e01ef0725231ef796f676f6f4c472af28f5eaf7a3c62d1689dcd0a4594d1119463cfc58b8e8debbca80a52c00b6209a9580cd8cbe276358300af2486b8b0e0ebf340f5b7acd5687c4e249d778f2e2eb75b950bd36b073a5a1c3740c51e4558c6424cb2bcd1efe4140b3f440a56e2919366de18ed5ac9ca5466529122b20812241e6be6c605b92b5166d126a5917514e2a89790f7dd12b5a83f9afe8552f34d180a57ba29ec100a42f06b60a9d77ee52e6ff2e5d5d1cb7f5a0f46cc0fce7ba85ad95f7e80ec41c83e8815139af210ad10d5c52fe06fcb714375d95a2f976ed98a806d3f98253a4c3ee4079c6645513925b808fb9e1a5d9dbdbbb532786dbd683a3a1636c147a853a181e0bf2e0bbbbb62f18436b245afffded90b6d0c5fbdbb118d73eef6b1fe6fc3131b6b2f85752f368887989cfbf1c2b3aa46d856c5b3b4b6b2c3510699237509da0b6dfb464988a5239e646abed13d7fd6210a851190f13659d2b6bfaed9f3c267595f1b65e6f2b9e1c8c8ffe810249c1fac7c7cc2529339f12c19d4e32013711bea720623c9a4ecc0e6dc4786d1e07455570e569f8846d27e60942b9432e6f3f9833e442cf7dacc9851e5955bb34d318d8e8b3f10b3b739cad4d4e2a465258e379ac6a1c479bba764ab1bc7b64d4f93c74acfd23f19a5a610ff1bb90207bc2bc65d0d236edb4e9d1cfaf1d4cfdd7de281fca0ac03298b0c2e0efb4597c26504aaa78b07572c7be4c0fc4ceaa226494a57987a98061c7d2926413cd679ea4eed2db52eac0e49242bb9d81d6254e1ccf48c86d943106329f21213f5f643416957b68a0b4a3dc0218432a947fdcdfa40aad8e0babcef41d4e25ce1f0252267e5d64287148da0368ee0e05d5d2451746cee24f9f161c957f1231bde271c6d6648f5c061e49d16ee3ff231d33319ed09c6d1184c3a5d8c26f84fe6cd69d81d7cbbca64656e7462fd40f92df8e54f0b3c62ff2aa1134730f08ed42469eaaf35ff0b27c6fd0c862f8b733ddf28f114a1a8c5b3d78bcc7af9ed8d58e7d382a0fe266d5b497ef4f16a5ddf8cc3fdab6f28a0d581fa403cb3371cf74faa7f3142848cfa2db9252266331e4e4cb28b706358931c09efb37bc5ddc800cadf1dc66d3d27ed56fe7afb5e589e87f2ab97374b5d34252ef8badc0a62597b0ada4084cf4904a775e40dfd194bccf5eb602eacdb01aadc4b13077e5916bb821996cfdcceffe1fdd48187f9f059a802aac08a55b8bfb5390874e223486bd8c4b32acb2aa8a117d9ff080e04cd0b72e83846b5656196d8f8b41530448de9eab7a272588ee2829bc24b4d673e69e6b6edc86150fb4d018d15dc8a547b9863e73c23d03bb916a237ffabd9391b8991c37c1a38c6e5c6d37252f43e2e21241ac1bdaea505ec5891c17953623438d115f6bc47795ab0e38bbcb59b060e7c8359555785e452f1ea6365e68419b0d0d9fc76eaeb8388d04f8b3d598fb9e6aab1b6fe12d05afaca06fd39af2814154486d957ae956f62fd6ba047afdf11aa425773c867132ea09d56d22f2ba7ae23329d9bb33c3fc3a572ff3df5879a35e566f123f961612cf0b792d4d0ef769a145f534552e52c67f953d9927be867f8243161e5532e6bd958b9a42e86c74410f6a8b00b689fd9e10bc5350c9b6fca217c0530443ee14c40973cc782e9609feef84f829c4633cae95cb9ba7cc374fd47cd1503d69d91be8176602d935c02c90e2e6bbc22bcc272b0783b563fa52f605265fbee8ac3c2b6fc112b0c007eda979bc013a6659363ea52eede9dad119485600a959da75da6cfca7bb8e882b711396421283ef56ebcad6fcac3c471c8013b3e67c4cc896b12e3b8c7d8632f861358bcd93112c393fee2faf722629af60e5361079b6963210690f0dd6cc8796e741ed92a0721b0e85dcba670e8144ff39c532e874ceb79b913193dff33d5638856647b1f16d017548ab00a924cb6e384c7848694418f6154df435567807382c20d03dce8d5139aa8a3c6251eeab13d43fa4716d6a6bc9b3c8fc02e0b44e2b02cf679f4e1e19caa0ba1d24e3a17d1ce849932b6c6e7e0d0b7af44de57a3d82aa884311e071db2aa8b60b05b0aa34aa669514c467109a71a281a3139c9a48db260fb735538700ef007c0c7c29adb40c467d2a7539429d7e6a7aaa2d6e9fcafc8111b67578e88d5749d83b932d8607c5a16906b17f42475afeaf4de3bd24f53aa045065299134fee618f8513206036931044999af40841b59d67d028a62543150ed33ec706e2042882006f3a92c6dcc256b6115834c43d91bf8962566dc9ff2f2a2d536b9caaf6610fe29f54a3105a0b984d03cec6880fadbfc5c2665be913540e6ec8aa6f759facae3d15283dc864b068962b8552c7fc27640e3ecf9da75f2fa32962f68a6fa49fd476310611a50d2329b03b6ade854891b88ae35972866706223ed1484564c04145965af53f9c4eab645e8e851e4e891b45d773121ad18c7940977c3768dfa7b463d22b5d4a89266b68ff78e88a5974e16116fac65a34f2cb427574590a9ca31cf76ab7e6e0b5b38b038b8edca9ec88f2399c58537e31382e224ad5639082a85e818106b230448d1bc4ad44d3b582e70b6bbfd6ea6751e738bcfc748d082289caeb200ca1f2a413b6031ac6d249ac12c0df5498b283fd43894e4b2ed2a996ed56e7082205409ba1ece55d6fffdbd56346711a27a04bebe4bab1230ee9b5c86c5bf055f2378cd6b2b85ffc4473c0fa6faed7fe0cf5d3bbdbfaac4de15c161f3cc76ca3ea517a416f4547f6f6ddcc39a7dbfff91e4017343a840613443f1525f6216b93ab13e980c24f0165e2cb183d85daefad67c05b605da7bc22930c4101f8d94641ff12011da387c1f1e46dcfd934dbb84e64163803475ad69cb6211c1d1c275ad1bafe750f4e149144078edced3be4c9fc56fedbe47f95a31ecfba540d4a04e4be575415bfb722e5f60721015df0bda620b0f200385807a43569f0652646edb566523a1211b2188c4aba987627d0435a362344d5b3fd1b5735c96c67c2f68d9bd31e88ccaeb277b45d09a9fb8f08adf73040eef9e715620dda11599b55b1120981414e79eb182728da58d0b417407afe1c039d397091605461f2102db7e2c2cc955f24a6c99e4739d02baa8156bb12560f342c97923d3dc20e8673f85fd7c1bff3d12e18feb65bb504a9eb880bdfa5aa980b0279d1df286fe2a11210d65ba3395e8d07fc3cab5da5ad6750288e81a0c21d8a42b606368c582f4cba0547521b5a3ecc19640589dc35404409e3a1cd7e64e5000c664d2b88175abf1eefd8ecd813f653373cd4797e8cee6c088f751bbd34aee0b9bc3626cc412dd789aa4f3d420a85cbd5c13ca3d7857401f00b46135c2ccad85101a489bd126d6b7322631d180a9e1d7ee2212bfd150c98c2fe023af4577285c2523224876f3fd53580406a334b2bc66be73f4ed2e464c01631688eb310bc5d9497db7803dc2d235341d8f45567a0d5b1450bde6962ba088052fe87bcd8ece85641e70fdf05d502f3dcc9de8a880371b0fcf35cbd8e26a174c84fba56e5c7bdcd3bebd5467903ca7db54b7e80ce54b57f8ae21ab1b0e6ca9267f62c02a7c4c2cba3d96e6af2ee2154973cf713cf45ea0e4d111bf617473a29889d9225faba98c1526396cd8621382c3eae4a5da5f74164ffe89273e03d1272c37170db1dda4119b19244e4ea7747328f7c92e277ccc22785bc955c6735fff1207717528fce9848341143570c963fca2f9f2cd2fd135295ac88e9eb00d4934370eb1bea9159604497f334d69840c86b2cfee9ffe5665eb6f42f49349a5a038664582beb1f64909977063672d09310445bcf65c09ebb8fa1c500bfe83e35e4819e14a39ecf8f1b6015d5435b547de52e5c61e7e73b49e4f8a758a47ebe17ed9ab5de80a812f4b8eb4057bb620e789a898ea66ad02730b42a7fa288399f37a3379b678492c1b2d9d351b2023c87f1a6631c830b658484ed705879091c19d740f8d4d3962e71fc4709ce39d9ea787d0c40dcee6c78241ca816c0ab50fd5539e1bae5e95221a992aadce94ad82ac9f05a484432c397e9bc473e307ea4f6a00de0b97f0cd257726fca23f17c41daff87da196cb8a17d54a50c644fb206f88fd1f49ecf852bbaebd14e66080131c21a80d6c1e28ae94bd71b8cdb13ab30cf18bbd09e41b4e7229c996cf93d7470c74b6893895700c8a26506a4f09fbb049b57151974bc73f796dbc5f1e0562ca859a009ac449d4f1baf9439f00921b0c31d94a956fbf6c58d77d54edc27e7dc8941df659d0852da418758643dc2ffcf94f977ea9f01378c2d8dbf3b3a156e7103f9b6f7c89484d092f6bae4e55bc4ccedc9f9037a95fb6364b38ddb66507963e39b02c0ee5d46ec9354aa17ed2816a25053b85a9016fb088564c730719207b4165c3922b5e96951a29c75cd2ad4308142fa6837beb866b0ac21b92510f4ab87f26bca30d1aaf6a76db12371aae009ba2191fec44e8b4b7b2d814e5039f91d84d87f93ffb41dc8854a30aa3d5f8ea9b60bdeff7518d397e624a124dca2863f7a7b2899ef4c145b343aa10ef2c29ac8e76bccd42e15394ee045fead0ddc055ab69fa290bb123a8bae919f38b5ea75b980bab58cf870c7b62973b7cfcc497cf460615cf10e9e6bc16105cfbb3c7b316e51481b7806abee625ef26192943a0a953653866e6801180c27880fa72534358f7a2e719299223754d1917b3b859409d212db5d922ceeb40e86afbc30b219ad8ac542e8bd5944f08b235920f057dcb80ffa7ed7464628eede47bbe4a85eb9ee4dabec119d3d03867bbd99af30bf5781a26ca2c9452977245aa2a7b87902a627d001283702d6efdb7d40d8e4c31c8c9d8558e32cc079ce9b012f4bdad1014cd522a4f608e3eca645733af2255303b70f72671ce3a3c0406332c03f534ed4fdfd4a2cc98768210ceb0131dc79238010fc9d0cffba4522528009d24e3a0e6bd09dba11e2668984b7293636b732cbe842931eface1e14b7403fa8fa78b379c7a4234a1e4bb2fe0fbad983600c3577c0fb59139cbfa2d46fc48400a21f36c11e4e9bc26912990ddf122b57891fdb5107651e3408b2dad672ff7bed9154c154ca7862956a4dc6c033c030f82dd01db6b073dfaec581c7913a5f1214d6797511a9cb13a1352f50d6f6d464a0f268ad4306cf47c8a75b365dce00e52eb4b83929d7ae294b02f1effd99efe09cc4d9184c270c34b34ab791889217398f700942379e46ca800e920baf30d7d9c0b39e5477f02079a546dac6ed75fefdd77695b6a9c3dfe349a469f1a1f044a7d2164347b6bf6192ff54afd1985c45c09ee9fb09b3d31a0c577001ef5712fcf22b6b11a6680274ecd4f82da12f039df40aade80f0ed26f3443d7911b235bc2210f230537510a085944ae09a8571907450ee91055b4597f6964a8eef3c4df41e41698505cb0e0608f0e64e06d5916a908be406a54f6538b27e1d637788d64111265e541a45b7e74606d977d794d0572831b6b69992fa3e56155685b653888176d4552ab90fe2b5ee9df9740e56b05d6765cf1d099bb8cbd1c2198bb94f960906c0e709c964ccad4a9eceeeeb54943bd0c7aec358ed3cbc42e9761bf5760e79c962df7ed286d69387eb5a39e2293476cb53c371507438e068559e62459bfba85edb28c8c53b016a8a47c7574045654c3c3d426f56ce8dd30d696bd4d0b624def29d387e380f2cdbebb38e5e8b0074201bf5ed5b7476a3e6ac154012a501b35e7abf30e429dd92e31a7231b09d6a08bf33683adb5d46b8f20e04e4de4d70a79822293af6b41c066cfb06ffaf0a537070f90f8a8720e4e95f01c55f3623fadc9343ed3ecf0d46b4c2ced7f4c494326da34c963ef78be63a2860cee464ff97a45f2be8f8f80b17520071c8060da6a69341ee1eb171aeeb15dd22fc1c58b239f970ff463bfbafa4a7f8b8e20cdf3ffdfc9894b5e1840fbf013129820ebe723570263cc3a293edc53eae7f49590a18c4eb8ec12b169e38368b52f56e1cf98c1c9d68b195a4db68fba2b0689fdc15bd66a3a0e3ee48c39e639ce089123fb032486768ec3afcb458bdb346abeda029af371df3af09d974038f77d7dd2f2de19ef4f9fe07f28604167e21442ac333d474fa9bc27e7f5cd487a0d24430f019a18f32b8a3f4cfd2147481320429c91c39d733760b9488ff8a64a820a4f154189f896db25e86174d293e682948efd56bed0d9c39c8f6996fbf9842b034a6f253b9fb0885b9805ad5a21110184eb945d53288ff78f0adc8082461e596603a23878601477a8a7f522a75434fabb011e9d780f7bf2da8005132e5239746d814ee0dc31ea551e1b451511d68cba509a5281cef5f191bc6eb8d070f27f05c30b5c2f76b0c4406a5d0350c7b6e212c874a0c8bc22c173113da087803a1b81cc4bb401f444044a6743af5c3090b292745251b48c6c2b87e3818f0cb629c3792e7efbce1ac1c73612365fb49f360dda6d3d0a4f64e05048b74188e002400152964ce7e9108eab029e3d80e692a827a2ce8b83f0264ea323cdb6b6d8da268d1042082164ef2df70e2c0bcb0a2d0b96ab9ba6a1be2d0c4f7693eb8dde6fd36aa594f647f196d9eea65db56fab74cbb2eedbad666d2daeb439daddb4bbbbdb4b292181575b67da0e784268a6efb8db3a60fdcc1b9881dc56c26a079640b92abf7d1c376d95d5eb6aedaf75383003b9ad84d5731bb05f87f5dd093c36f2b84dbcc1eae5972bab6892b37c5cee8d2c97c8106333838c2bc02dc8a0a279b960964b6404110693ac8a2b93e5121949b8b8ab2c979c62608fb49cb2d4c8602962394df1a9aeac9c80d82075c5908c53d18dab4591aa0b1a626805945497a40d505a58b95d8c78815798845d46f0614105b5460e2f0b22708c2d629785d3374613355c154ede183dd46c5540e9c68861038d0a257a23bbd43cb1a083221f722c89310480214956c4780db9a2ca0643b2a0b2c46508d610171c8952badb6a9a06c4c591e512972559199735a63ba28b12493550e97208c328057726cba53066e8a200438da6abca72098c2e5ed17565b90406169d0c6e2bcb25309018bac972cb14556c1438f33d7070aa48a3d61a021b051000cf920e2fb2d8d21465a9498c2f40f0c5146038c97dd491ee3cbf2eaef0a00b35721f047ff4ed6e2b6f77f74ceeeeeeae1ff8a3e93df0079df4d2c33210a4b49e52fa1e94ba32a594526a3bf007addcb452744ee7682d3a474ba61b79945cb6e4b02506b9b7d020f7bfd444eec37092e47e8f1b723389919b8b187273f182dc4b5c7cc9ddc594dcdfa8a0d46b2d35ecd0426505d5eb9a2dd8c8fdba5da52072dfa56528f7b32f6951534310a369565635363a725ea085690b2372ffba0ec3a93d9058ca82c50aa62c3fbc00496ed70e74950517b9b52c697104161b192cc952461032309d21914440c5133538114591942a6fb7132dbee8e25569d7a2ac71ba471d2e704200176891fbaec790850d33516c74fb4dbb5c2e10c8ca252377f479a4b8e373cbe496913c32f7caaa90e93371ae406b531a8eb40ea1df166be28b88a665596759d659d659966559b66d99d5e62b182241dd37fc32527db812c6504c4a760ebf886cffbefd3d4374e28b48f731c9fd291e60cbe4a0fb3719963b586d353662d026c516255fc48cb08e00e289d8d721341e7f7032bdd675154ba19f84e20069541a9360f6b5ce2bc8ec9cd1fef222b27d1d8245c00d77fcb27d11e1debdc341dde775629047c5161a9e624664a66871434c76086373c9f30623c08c6125d643b76bbff06496d59b376ab2a4881e45a977d392ac58a28b64662b177b3940c6e65df486ca8fae8ca977be2299c5102961b9d20426554125335d6972652599d267b662f17cc8f45e576bccebc01faf21f20e90318925bd41014fa449250156ee38996e4d20baf6dab37b1cf823abdf2ad18d32a9d01b7a274cf5b348ab59cad76754e67cbd33dc512625208a3b4aa4149af0ab0507c858ffc713eedb6b85d19b04547167e6b0f0e1881870586ac2450c3624e95b2380e8b17efd1a017d8a24c3e4c95471025a706bc64cf55bef083d21626868080d18ce282256eb2542645ede2894623ea1c234e7392a90d84640fb72890a0ea009345c6b020d775e9b19e800f90512374419236c1368b8da46b7cc6e2db76ddb660d512307729ff6b06dabaa33e7bf1e0ad4b3ebac5d6ffd82b49b6febd4fa0a32d65c6b2816a2c2d629f19d3dccb89fd5e5aab54aa53cab18b656fbfb7d57eeb0b4522b6b15575976cdb6c065209bc557a907aebd2666dfc467e208f55b15c71fea44db5e37eca3695af6cc5227b9e2ef74c9e5a1e34186239267d25839ea2d3c695333f99f55ce5e6f29dd91c714634a717a1c96719dd68019f3a0346c6e13877e1e36af8938a737b383366e056206185a909d34a5d94ffe59656bf18b7eeb698a65cd178a4d8a32a88431a60b162388ed48811430e81046871a7c89cd1fc671a9e739e9bca4f31bddae7039f1b9a0a052a48083dc4b525491fbf389bb72d5546923f7762f84005470b31e598fdeb9313434347484010fb080955eaa0283a52a4d76c23a03359b35917e82d928ca4981b8f6630f11d76c733a6d0e4820f19aefabf95d25f17dab1b3412742571bf55dd5a07f9310dc1737ab0c39d7325251ef2239b6cbd14a551969724bc30343404439e424dea949cb54bd2468dda983163da70427e994375068ff66ad5d2856b80d4d434cc658f5d3502f8b25ad5348cbe613d74cbf5489ed8e666ca1dbf1d8954f35d25267e440f9a30c1c53b9a73e5aa7dd4583c69e3cd7bbb5f2377d0bb8ee4f9f1a78f507a0f6cb8407ae2903b680b9dc79a9a1ba47b254fdfa89d7853f24820b25cc9fd704a1e6a020db7896c020d53f2b409346431224fc9033ac04e295bfd28a58fa414df1b8e1f954452ca57961f5d332d56f77125a34ac97ce3511d4485597ebc5906bf6ffa7d029c25957851943bfa57c472473f14012077f451a28ddcd107450ee48efe27762077f43d31007247bf13b94d133d1075883bc40110e038f508ce664316506c51c4952442cc101b5d588c64288a32e68a516cc4c90da5872c4ac040092e55967246e0c50c2320620c24616493ce4b3f34347424d6edf5907b4b6e2d6940c9ddcaddddddb597a290b2e90471c75a33a158cafddc8d53d5087f649736a3f4848e727629dafc3e74f4e98eb4d37bf77d1ee636edc79cf33db48aff91497952263e8be5b3d65a6b2dcb6b4d24fbd92f85d6bdb7cec24f70d8eabd5d78dcb2eba9ba7d77e562dd7a778932a75aadf7f44ceb2ccfba6cabe5b52ceb2cfc4373cb022d1cdfed87e3b396f5048b75965d6ddcc67d9e97fae8572d968b35c362596b9f59d74c2b7459db6ab55a78b4ffec5d76460c6f5daef0b35f8e0111576021822272a0020c32926012e58835b46491460c65bf17085aed068d6ba625c3542bf30afe68b1ee799ee77976a63553c11164de2363adb57f6937685c332d8b65ceda4214f8793f9be536cd66997de2b39f4ebdb51f4dafdab85892fad29b028e1c7fb2c10639b0911ccf712f470e0be0c051c4bdf7669e232625556690844b97d817432cc1608c2ab28021460cbc45dc9b69fd766b5ee2b683ab576a6c292379655525c8c2b5d65a6b5d75ac1a864a3af6d0f68077677d859fd4bcd6991fad197cebf6dd956bf51951e6cb6241cbacafc4170a38fe24c7c11fdd8c64dda35fc77a4fe7c0818de0388e7b38446f824470e0212975f515fea199250156cda9476b7cf40dbd2786f9f2c250d014b39a4e2b9b86d11e32aa77ddefb75ea261944ac36c6666ad6e536f6dac482b5b6b3ab1a6d374427d06a9d57aadf5de5778ac9fb9efa12d11f53a733d309c41c93056a6d3746a245f7a47a64145cb93140431430bc088512f5b46630a174a44b003135ec8888137602fd09d1ed775184e8faa7a057fb056efbaaeebba556b75566b857d5423a85422acdec0d90c1e8f47581e7bb07a54acfa0a8f3d725689da5317f51025662ed171e227d6865dbad3e385bea1b73bf785868d35993e75c59d4fd34b0f2d72aecfb4d6977803493572f5ca8b5a73aa29d34be9629d73a55877b166c4ce3334293c0ae55453e6386e85ccfd646e9458f2cc53cf712a93e99b0a9d32ba72e086c27d9ed5f25ab3a5b1a044d9a11cc71d4129400d17e7324f7d063fc9318347a13c734e1c2beb32972cecaadb77572ed93aad73efa19c28739628b34b64e18520db8cc8829653a7e00f19560e06ea9c7aa72ec11f39aacc34ef694a7bbe1ce24fdfd0d35099d2b001285daef50f94b8587ef021f7f40d7d0b8f97832dee08643391165edd9b9739278ea9532f445a87ba6eb8e859ad7b2d91480b0803c4dc1033c5b8720e08c2d33c3c75e15128bbde12c7e7d6cccccc47d70c1e5bf7cec263eb349fe008ada7de435d62f816cdc11faa7be0a50927141088b8e31413050a00d8b863431193e91b8ad6d9913320820b1bb688c18a2cb83481c1942d361c51c31063241143cdfc067e7dc6c562b158787c61d9b0193c6e2d1a3cdedc72e1d1955bad4ff047ab9db44e6d62d443823f5a014015a802d51b7e707e707e707e707e709000654019500694016545abd5f8b35ac58083e7cda2f1e7860930dc9f5994edcf2cca14fbe049b18f7dbf041f8a3d98e14e2c75f0a858e9b8ca52ea6495524a339a6559c67159f7313bc7c9ace3324da3dfc4ec763b1547a8aff552ccb2ffbc6eb7d5c7629f5710797b79992dde70866d15cf6cad9548e67915e374a9f45562121a667170ce78a6af52d6cb8f3fae6ce585325067fb5456332976d60387de6c1f481ba9bd8a386349357c7a23e6316e25b5d5e237ac4a2965959aa4b4522aa5945dbc9a1e553ed8fd3edaabafd659bb484a292512312f3cfd70494189c81512907ce4e0c06c6a5cd40cda0d0aa138160442bb677f9456db58ae58ac998fd5727d333334958686f6a449a9569f8ccc6ac59a69b9aacb457bba5a3d3bf8f0e5e4808003420e5351d28d89822b97bc38c9e377e59297255d33f7edfd6ece6c6633934d99042a052601ecb514a8762f85f9fa511a4c1c5e122f4028cb07cd58940c08657929944a1eb62cbd18c3022b27a8811235c520831763a62c5541e4c5182aaa2c9fa8c204154d4b5180e9b25caa3253e59240775e4382a410e9d353bcd19bb93363f3f3150f694e318a5fae940ff732162434873ca08784d9938d2877e621fd07f47b48a0ae55a697365a016470a504cd188ac4288a193180154420c5b81c495630cd59a1489eec7308c993bd3f8f8c9a30f98a722b690afec832eae1685aba6228b7155ce81439eb518d922bae507ac8d6ae502a947a5497a8562a162695a922d52b35a92ad5262646444d1afcd1247966064389eecca3a317ee4077aed68dda1ea245b48a36f446f1785dbd69940523995ec32dcc3cf6d050c3fa61882892abb8dcb1896a187ad39958d1a0940e112d691d231aa5a14cc94d9d5028b9a9e43eb5154aeb8c158ddcad335626519a5622ba438be68f8a466542772a11516592b75c899c2e51b5941e913b3201aab8e36c6adab68faeecca54dc213a5484bb0c33d6bdbbf727130a45de28913cd2e5cadedd5c231dead72ae950073acc3d6582fbdc6f26b42f00226e9d4754c91177a443798a8d17776c25ad33d6a3a17ed5d728fdaab8e20aa542a151baa374ca9c488728a59488d6a70f7992e703573e27cb95b25f1beb80354cca5f7997942fa8a9a1356f9cd74d1f0debcea9c11d6199470eb0d9ae86f5154108e38e9f146fb5aab4665fceee6a584d1a37abe1441f06f810913b5a86a90f9aaf35359b19fef9641620b20091e9ca751e4377ac3905330036dc53a16cbd106ab8121f8415dc79108cb85e9064b925cb2533a02c99c124d79c29eef61c2977945c7888b9aa83ff74509f2f29bdf0f732d6357882912279e400957243c919620ba040d1f58935a2145568d827384267892f77ccf328baa3e462479726a6e4af7c268e2fe4911e88e6faa38205ee19f779fecebbe6e5fcf664bb5499201e5a980cad825637d24b404194146b5da875108c58900c7e119141d520005d18594189b52e149356c33c1fc8c9726bf74c7ba7e1f0e470e7bda05c5f4456abb35244646ace8805c93c85a5bc5858ca4b0ac53e28e2f60744dce609c1edf7504d04ea4c5762108f1e60f01433c24349173062adcb8841e008624664ca88b5b014ca6d5e08c20a6e8fd7893937dcd4555746a665907a2408a2ced2ba6b5af7ccbe1371c08b53e021c41d71ea7b6828722016811a88f674006cb81a03441214d053698ab8d4c72b07bf5e5abd67e0c868f9a10811247929038858ddc208216e38a208247a7012abefa927a15ee5940981edc5e0499b8c5ee20fdc1c3abdd1e271b658cf89544ef92a1b8fd98168a6d2072cc15e3b1569bf4a2a4a51dc441fed334b30880f1cee28429ed770863b80e18e1f5dd5549bf350e2caf330e2cacf87a0e4cae77c719378b2a7b4b22b6d8d524aa7c8821157b62ddba7b76b23d06fb8ba30b3769bb9c4dcf1d61dee7841217d4aed0ecd41cd50761e95619ff92c7bcd9e47bfc90107e7a104cea21b76bbd541ddfec3235065623fc3d786b5ee85a20730dc10486d18ea211ebf8c1a6b468d42d97e2e61d2302ae682e7c182d69932a9cc2578885919a0661280beb311f1e9e7067f8e4b597329777ec3d55aa5aefa0096ee388f569849adb3e159246fe8bfed86abf51004373ceae35c81deecca9b7c12c57166f1581cc3e3d7d800008f9db1288a9389d2f71c8faeec7d033cba70e01afcc2376830a6f3e832783c2c8547581e25d2445d3cb9c81d74b589b561373707755c4d2c798a916992a27a0ef08664a58b707f6af42665ad746a1c1e5798b4b709029140b2574cc571850c54f31d61e60a6b987d4ec3748c3d1a667146e8ec43eeb03c7ab8f6f5134f23d924afbae12221ea11db2ec31643824486c7ec65c041422fc316db2a771cee36ac8260c41d5d77464c0835dcf1bae48efa4da49137358451ccf51f8c01c895872adf2c67f7184f99de93734ad53c11c0dc6e9b2e9037f448994ec994d656aab5959abc84a1486a1255c2e5494ccf9a54b1cc39e715ebc456a58aa526552c363d5c6bc5a40c89eeb49286b4b5a0fdd84fcc64b7d724bab3e156aa585a675626ab5493ae24552c5569cb5792b0f4921948b24cce91e18e4a61248f1a52c7d5302df47527534a467f915f524ca613d724ee1bbd5237d1b195baf92a75b21f7308120e4b7ab3e169446f32fc352c4c1201ccfdb21c2d06e1ca07445caab40409532814f489b6936ed24b5a0991952b531a89982f94ce22a586d1a4da549d6a52556aa5f9578b6935248c9e6a9137f469878c2f26ee307207fdbdabf9645b65448e1457e6f860c695f75437dcfa6cb39fb6aa6eb8f644f3736edd2dc2e8cd9480dcc1e3e8ca8f30a3ae47d9de93d31301ccad59bd81c95c62897868b84c9ab48efd8c17b79734ccbe8b8aeed84c8aeae9edb150913c326bb7dbed794871bd0cd722b9c35e85c3ddaedd0871bf214836fccaf02bc32d040993828449b9af424f73f3cac4205cf12a42bbd2c396e5a9f028ba6377d1922ccbc9d4302b02986bb3046397d826d95aebca5629db3712fb29a677fea5bdd84f2e761a4d27560953b6d65a6badb54c1a666b51b6af46f6158a7d2db2af4c3a4b2379e440cee686ca70339996d6a3eece89b955a42cb39c45530912a42c9bbc18f597bed24acd057c9ad288c889945276484e9cb4513b6918b5e9e1ce4bfb9eee22ba53f4cef09c76ca8e62f1130d3712929151944c1b4a06fe988dd44653e6eb8dce9c926704f99e73128d91c1304aba91cc25b04bd9238f4fdab997bb440c696848c6b6d8389160b90205fd38a744c9d449a6b991c41c765d57eaf49c5b12dd21009631c0f8618b1712b840c8081e6ad0020ca618b2788ad137127d5bc909010f0fdc710bfb8bdc413f4554e6d1c31d37306f355412ced79c3e7a67c2c0684819509e6ad15219516029834ae6e26576a53acc5a77b6b8e3ed909cd8f8705ba8360da3b5d2ec3e5830b8a38f6fb8059bfb146480d0ab8e1c263fe97ebad3611f3e5aa733b5a975d36a8b5229fbd860863bfe36b0ba7d1caedf44d930ad75a6943c65cc20358736299eb4196751a6391fb8385adc11470c9a34d4000a1570fb94ee881324c308811646b1f09edcc0d907c517708e19392ab8a3e4c2638a3bce21206ac17bdba71c33664c1bd8859a41ec3347d8bc145aa7e34edf5fe3a0531004ffb5ce77f085860501e120211ffec40ac4cea07a4d54a161b4fe348c1ee80509365e81470e77944a9948c328aab51c35e11493e0d5a17489502032f7e7abb14d4e15777c0dc7453669dbee4a696ddb4d69534a299d974a94166f36ad36d336aef33e300351f6f33a54586dc7d12dbcb46e3795524d4e2553031df6f17eb18fccb9f77488813a7b5836cc7550e6f214143283c8e0da30171e55af0d53a14a40b12ec112526789a391ccba07de0345162b3cb8b1cea11e1e4cb15ebfb1cea11e7678acacc91d8565c338166ebd82413ab7ce892d3ccecc1d85c22814ea1a87e2381f4b509f1975107f8241ba79f0f360078a3edd37d4f6eedbd8fdbb100803f1c74267d4fcb6bdfb87c7cedf650e8ae396c187e2f8420e5997ad5357a26cd81d3340bfa7ae3a18fe86de3f1991052df5fe44995529ecc2cc28d4bd5b304867d42728647edbf0d81df59e9ee00928141e6746fd3b28de87220583800f811a25766e14886bc3bcafc31b7773268edb18f4a352a099e79c9920119eb4e9d7fa514a29cd60aedbd0e691c1cd1c770e03b5b6bdbf6fdc32d77dacfd3ecd46210dbbd0b9fb27b820044a7900593285004af6b22c7b0ad95a9ae9a5dca4b4db9629b5125c8050cef09842eec9a33c909d123c619ea6a049f6a186b7c7980690794e2751f23c5d50c85492bdfe24182404444c3844c942661e3320945d7ffdf5da3a374ee3d3fd7a9da87a284efa4e4cee7ec30bd30d4c797481f9520325b95f63933b08eb138f2c3cbb7023ab3e9f8127dc77dd43717c0ec3305ce105086555f787efa19dd89d258ea9d72f60e6ab4eec3ef39eee1ede8225a87edf89630ab97b0696107e6e5b0abf162094539fabcfdf0c08e515d6c0063985efbba7ae9130f3cc55d804a27bf10933efb0cfcc57d8e7c6816cee3090cd3338bcf11ae406ae0d7be18358368ce6b56134382bc1f5964b1c8de4d66cddd3be4e6c7d82258cf7e15394e6099630cedf8758baf05824b74ae8dc7a57c2fcc5a9d6581b167e02d1fce12f48e3f0b575be87e14d20bad9c37b22d00c816aeecef3745f42e6fdc43edfb920df39fc0a423fdfe56f8a3edfb9ee04ca844398ac234b261cae646f8edf4329720a7125d30d5732f74f8557624a1c53c8a9108f1be470831c3970e0a8a979bd6edca0a171b966665a2d166bb5929151a952a97bc3108502c1eff3bcaee3b89919168ba7f551cbe15f979287f5d1e6e97ae131cbe1697e83068f599e6f6979ba70eb33a2943b5a78ac39dc31da1c5e4a1dd6c3108f324f7d9e8547f0abf7d095589f12b5cbdc8357892ecc7cefb97378fc7eaf184e700142b2f3c5e39c62eaf457ec3cc511fcf6f0970499511f1f629feff42388816cfe30f77af3f8147e6496056dcc98314d19a8667a56a6e7a0e9c66c3de1cd7bf3f7eaac8d02b2610febe0e1667884e9e0e17678ac59d657796b85c0ecde85b227cafe3a9113ca5504eacc61102601ecb7cac36d3cbdd96074f668ad15ec22e4665ae74e3674e46808ca100cb1fa6fee7443479e86a80c7d2056bf9a3b772886a7a1304339c4ea6ba6ce241ae221d7cba953878672ad22d3981ae619aba5798394d2858ae2d29b16e05065d7399baa1da90ffd3c818a965621732853fc7d60ea50796156e2dc25359cf2785a9494a98edcfd5af097eedc7e0dbb345cbbdd533a246f74a57d2523aa8ec71f2ba2c497168a2f2d136b5c59f66a40186a0f4a3dbc8689a0aec241f7a89f829f6757ada371cfc6edf695d338ed07276bf815a45fdfdb9d60e6f3a3610cf4ab15615e6b47704f7456d42921951ca87635ae523592f208f37257aeee6eeecd0d41a3685b964b6a58d97898f34edc5e6d5985a1d6babde0ceb77639bbe591da81942be58efe8d1577beaf653978590025901806c695e791b4bb1b4f6e873006e636f8a38316dc9ae5921a3a24713752dc25359ce456a3869d08a8b14304d4f081e338a9930531849529f27cfe72cf2e61aa4dc3f0f6866d4b78677c2da5941266738692ffd7754501601b999de013186ce889d59c50aed2302440520112b481040f3c4cc132822c6d9820072b941c75a181954c0a27270f42d0695ba53474592e8519cadf1719e8a4d4eb89e5103ab25c5ac3867cbf1040964b35e09251510420cba51a2cc91f08b8c042a58a135dca302289106ae8900406ca114db2a0c293e248187a93e5520d94c8a82c97c068914758191f97d91b59327dc088ecca7209cc0eb99a9123b59c342e09d9cd943504c872698d24b22acb253045d02ddd7caa9247581479944850e4512a3d9147f9d4823c4e2216e4711a21e5715271223791c77984b464cb132941680143ac034398c04a14332012b32536f670818a138040490a2d362489916134060c53887a4842444cc8491b6368b1c5932b8886629c0c463c21023149309121364e260e406a030b13447922c495d8388f728759438b2e94b6a8a16528364e2b1278e28b318298c28a1458898db3c963a203130881c5105e46b046139205493e5cf1831335c0028b084baa2c3901431242a8216482192ce101198ca86411434cae61c4155ba624bd60c905b10b2495408620b4f8808611b1fe0b74476808261884094343175ba4111302811957c070f4c51a2590414c88891db2185d21420624f821d6159081510f4db244c1440c62fda944772620c41036187144c51719e6d37cb255907ae49e21770ab4fc400426cb102888b5d3942c846882021b9a88f55d3849e3edd9ba3bd3346d8afb65c9a4e48c3c5e4e876bb36452e274bbdc2d4b26254d332f8509418e2c9994b4207b59322959411e614967d89067ae302aa3c969062222d6c0418c13566011c3132490a2c81a629021254914445cac7042044c20c1c5298b0e4be41015551106089892b63441c4166474b9a283089cc83852a247192568d221861978382264c3194038e105141d8e1cd1386babb6dd954b072f57d690828c257e9021f6630659989ebae8f2812fbc248888d902cb0c5a9c800a0da660aac10a059e548146114f3788218225305ff2b364aa014aeeb264aac104302472436181182e48030922b6c4da8c18c4c08c2714d000e605b1be6bcb12b422740407168c49c2c84a152564930b82a0a2050f5800d1840aedb25c0293a40393a4933af7383d5665c4a08d248a204aa2e808a1275b3c198931e3080b24bc1508f9a002329218c248c913a4d878c120c9148d4cdb284118477c39e2c40627624b3410b344033153bc4b4dac7604edf3da270eb27d76973d02d1ccbd46d0ee5dbb874fd82e3b3c06e93ccefc1ac17bf7d7f70e77e0bd0301311ee585f2c42dccdcd16fa21c6bb65874617eb3d1e044ed931f960ddbfe7defc4efdc3d3cb6e003defb08e0f70fb730b3878166ceb273e2a6b930737dad3bdc7bdf6278e12a33bae34a479ed582300d206570e927a61d80e0360970341ac20e311a74802555e81033927521456ceb10f2b76b3868070c0e5ec48c64402cc5b46f38c847122e4331231e174b621a961dc2d823cf6dc39b865f2868e7ae6d9b760e6fdba559adb5e2dac5b5f86a358d8374a068f11233425510d32e140ba15fbdb873e2dac5a5415c8abf2198e4711b756c2b2b86276d525bf6ea37453b935082c90f4e6ca8b663d84169d3341a368a8862022644584ee481041248b10d0bc56c101cf8a37e8a3fa4dca15d157266e9444287a258107723b38912143129f542316f1339914af087961d6f9c38856253a437922db5416c34b66d79fea015af8586b2bd9013b4be859e6c2f9425f863ca1d3eb61e0199e6788edccf214245e57e0b1795fba80db294524a3b26b7381a39927b2837f8634a8aa2af2ccc31b9459f971004e47e0baf2008c87d04c831d9ab9fd4caf05ed96ddd785870e7b78f1bed366810c80679c32c6c70330bf3698467166653deded3d300933be27d23985994ad25d877a722f74eacdd09968a90c7ce14880879c32c88f0d1d935ada80c747621cb9b943b467a0dd70c0bc9bac8fe1292dd0be976ee5e09d9b9718ee9875913b30d483893f0328ce53329a526d6c636ebec74ec679910eb634f3f6f356fbe0ab1f7e9d76ab1cf7cfffd1a84e7dda8cf3efeac3e33fcb3ca15fbd86b94e29f55f6c94ee9b3ec35d36ac5efb16f7dec6b1d7fea33ecd397f7a12f4b291ad449b6d409131dbabb1b06a00a540354ce98047f4c1a6cde084a90f9205ef9c186704b65b9d4861359cb72a90d2a798431e1f5e708734c9e7247ce53ee98ef60867b983cfd10ba23533825018788eec898cc924ad7a624c34c319eb4e1c08c3b6ed99553b2a6304ec3721a46af0304a223cf5bc99bf70e8f38b9bb6be632fd768952de7c372d91257a8de4763dbde952bd3a1199af7090947e102c7797c1a737dd65bc11c8e619a561308a6d18f768db98501cda4f4e3274e7057a8364ab4c03cc5ceb592b192b59a6e8a86305a0d651b14e4fa4775a97d1aebd250e1149a037f43de8ce0a37521eab4aec4f10756fa60e44a63e4a2b73ac071ffeca10db2a9300204ec3288875348c04da51ceabefb695f4926de8edeecaf3adb2d65a2996a649cd59a94f7d7d466ba575ca4649b903d7ce59544eaa19f44871e76577b7d8a361dd551325edeea6df80ca9634065e8fd6d9344ae9cc36a335ab33fbbc488fff8f2098904db9c3d66cbc1f4858085cc744c9dd645b3f38a14f25529600c884d07ae0a66003043c649f136cc8904789046a11b3461eefdd326e8a9834c22c97c48c91c12c97c468c9232cc9044e4adc1c14aca6ec71c5f570a60f1f79be47012430e085a04929ed315f4fe783f27dba355322e19010d433af8039bbbb5d0d9b3839799e87d11def6d9d55debeede60817432188028b1c8c88754d20f1048a30cac0c12936df434246a4c4f57290c6d5c78a33c51754e871c51d71fa3ab212dc5147ee8f38d2877cbf47f2b40a3f5d61a0c52b34ec95a5f8aa58858c7399dc5663851e4e5687dcc7e996524a1b9eb2d16d92d3c63de89d7b188e42797b09d11e3ec4d9a34ce6962cb340c224cf3cc2b28e4fdeeb135ecbc6ce69e3d24b1406bd2e041aeeb407a07255597ec31fbe0dcb3050d789a38694b252ba6a8194dc26645a6d6e1f50dd5e2041981a6c53b00183b689215aa38dcc09cf3e2786ab43f24cba13d441f5dd83c0d30e077dafb74ce88d3dbdf4c61e3cc592ded8a022528878a72fd2bdbe83242ee29dbef11b36eb2dfd4b487f7b7fc32bd4bfdb9be00114fec5618802aac83784de589ca37a70c220b1f16308925a613052719115e83b9c42f7a121f9d414bf1a05faeff545c0531c248548f77a146a91efb5563c54b19122d388debcc3b3c87addeb47133c70348fe88d7d0961ea872049d2bd3e8977dabd1e05efd4c31389de14d19d0fcf24cc43873bcea6db4dd26ddbb02b13f920e36a1f3bca53b6f6b3493ab58e97f9c4597c65dbee9af0a4cd488f1830735050eab347964d0c20d23a72677ee99b9e4d38e85e06b711bd6928b99fe1112767a73ba94f247a33c358d10324d7fecb14d3b0ee23f10889722e1755dd942a753bcc97a7a739e7b7a5fe7d6c24a33eca9e383c3e3d3d3dd9a7f964e76c2b34f5a017bd4ce1a017c54f5a97b1d46c8943c40788e26b5e95faea28a4be5ae1fb22432a6c8475d5574452bf38488a0a17513d852fbd89dd23b7ad340c8a867dc0c4cd8e4afda67e3f3e8525bdb9b80727cba4fce05025b953a28cdde9410baefd92fbb04cdb48c6628da4957807df6f26da972986cbaefa785529f15a2e13bd481e8b41505c8db9f7aa7ff89b495ae76556cbb47be26d1852b6e72e7754aaaf7e6f2f33b1a1e03ea8d2480d45c390603d73dab8144aebd87b29712be1463224c36d2e5e66c278913c2d0091b9bd24b9ab46d29a4804d2b97d9071b91359cae489cc296e289a3ca146b9fb0a75921b7f633f29b59397213c8434d4dd6f1e4c776ca446ba8629110e371b2951a6fd14e6a8a908d9f06b488ac9a545544995ab6189af3887e84d27292205482c491129168f4feebdbf2bd09bee2123322f72bfbaeaa37c5aa9f0443aa248b965b094aa7aea267840854b0873e94d93939447a8ced1e4654d4455fdec9276116d26b48d54f014068b93939721a0a0341393336bed59986396c418152067b7198ef7ee3266b5ee287cef7091ee1e8ed12cfb97bc42c33224dc3bab59fb20bc11f1fe7958e8d21b7aa35272e7bb4110a2dc797ad3238d6b2f63337bd01ccaaea4d4d4e4e4f4f434ca30d937b15190a552115ff29c4c5da860c1927d2acda3ec73ca97b1e4ec5e4b296517c9339de48eec53b2ec7388ecf328432267d914993677c413c1b5af7af042312bbeea7622deb7d78a8968077111eed983b47bcf5ea4bbbd50ec45c06fd7c422528880df5e0475edd70317855ff3deb583d8bb7622df3f514aa9b7a744b26bd786645a7f70327de561e346f661f232d609d1ae39246913bf1a509f1d057b0d17d18a4821a2ddbe48f67a1993946ad9b41f7c9134c593365e8d53f78efdf87d5e7faf2aeeb82985a069da73240fcd9ab4226b328aac1d206bb7476810d0fe00c933b32635a9c99ebe385cb9651a2dc3eb6a251e85f22672cf44eda0f89d8afdec5f969da33719c69967b19cf9d6ca0d91dbe7b77312a4e227c272466facabcbfa54fc9e89a30a79acff71b508fe1b8b6cdc4151be1365c3b61f9717cefce3ca3ed9b56f9af6f1c7e579a0c49d59d3b44f90856cdbb6ed9fb8d19b4da33bcf329f0cbf5edd89d08327d2ff5e1d6e003d78143a13372449e893f43f2ce96645085a2de7d51915cd69bebb2eb3bacc7df77bd4bd2bb28e12c3b9a294521aa61e76bff728540a83d843bd875ed13b4b1cc1cb7f4f5dd1eb3cd42bebddaf3806e5fb2cf50e8faf13c07b9739e895c241bcf0e033ef3b0b9b40743b1c9ef0ddc33edf53d867f52eecfcadba158deaf61d1e5d323256a552a1eea154764379dfee512afb2df4f068c7b09b99b99d7927cee071e60ef5300cc3f05b17765df899c3a3f0f70906f1cee157903976d9f3f1ce859ce73d04c1ab2e0afc177a201e1b25de560bf5d45929f0aacbfc3ef5dd954a7550945946f585e1393c7a0fdfd3e1096188c799c3d4af38d67c4fc120a8a7700fbde2a83d0cbfa3706d98c7ddac65b65212681ba59482b93d457aed6b1807d41e27de8321ae76699f5dbd2391c0135c987973a173867dea6d1fe5f8f061735d35f791d3a36e5be520a96f2b05a1bdb333377ec34573d776d4b74d4c1d14c36d3b4d987af80c3c01f56d3b288ecf20088232780142e1b783db57e2782fdfbacc266e1b2a75d4b7f06e77bbdbbd0ff1181e2573c38f2964d451dfeed63a4a1c514f6113882e0ab7be619fd665b00fcd37203ba23090cd2d0cd26c3437665ebfe1d173b9c2706666269cb1df86ba9466d48cddc2a32ed875af5d07821b086eaf07cf6de0c67d0b22c43e5de3d77c186adae7354d0335ed9dccaf38a6902f08e271830ce6c88103474dcdeb75e3060d8dcb3533d36ab158ab958c8c4a954add1b862814087e9fe7751dc7499ed54acbe06f7cb439bc81c72c83779d469472878b15cee0b1aec0d54110875f89de657e457b953802d99458350d04ef69f88bc7e7b073081e353e7fe0e861209b3bac5d5ef91468e60a8a3769096c5c35b4bf5c7bad6b57dbe2f438a43904258cd11313a759d4d4846425294ced51c5501668b61a9015d2813163c624e58a019c5c93c8b88f2537cf4b4f7e747b575be75267b9eef23e7395cc55e1392f14570745d43cc75d66fb56dbb75a1d8547a0cec013b887e1bb7f1875b0fb4a1cbfcbd0fb0dbdf734278e6178f07475eea13806e5f0195802f8d73de17bc71d85c7d7c5413ed43b2c735046fdbbf5bec226105d0e7b0fa46ea8c42c56b5494d32453410200020007314002018140a870322b148281e52e6d17d14800b89a4466e5496c8032548519033c818428c210000000c008cd00c364100a4eee43ad6ed3474eb96cc4596d4f83b201c60b4af29ab42be108a253f5da29f1e82082cd9763d98f427e306df6854853cb912137dbace1ad9fff89895b61cf20761f6e4526902015d22a43873bb7aad887969b84bae641a9fa4510b0b137d3df9e8311d9550e35257c8aa5060982eae099073e961ae077c7019794a5f8b654eb852e3e354a663c7aa1787e25dc3be2f01e88447313d0ea95eb94f096a11f24f723413c4873030f69582d0e8579ef7ab0c4d4a8dfd2f122e5b859425f82933aa1c5dcc3f45457bf982107c2504b585c2e67234218e279136f43bc00ae810f03af837f79481ede60b466ab6c01c5f1ecb9ff3b4e7a2f4bbc4f235377cafedf1e8b0a33e979135fc6c880f12705b26e499c34791414225b5770a2ef57af8fd88c33e85afbfa6036c114b9933acae78de3c3f1718046c4f5f2d1a3ae4d71cb8f1967f9996b839252c9ba8216982535db7f8281d80f970d4f00ad1f3e127b54a194f1688be3431bfbdc4c6be58869aff80865264cab906c664d1db4e51d0f7dccc891acf1bc555834c4a71fda8958c828533b52b6f6c6b9c0aa04db3e9bdf14fc7a149d642606fe3d88b487b7a484a3d99c43f090b3a899051c4e798ce95bfda549d724e600cc6d54cf65fc72a1719821126d1d13c9c642a79e430f40b95a65defebc5d370040a79f8002bae6a84ad0c7677a8414cef143d4b6ed8a781b043281da31df7952265d9c7d6f66e35d40c0fb437969faa3cbc1dcb24975244c50221c6fc9f2a8176e29506d56572ff206d7a42a9596344a4e05a4eab94bd4a048b0acab64425f06e054fde3e7499772fefe485e44ed99caf89577809de4e5578c7e3a451bdfd375f07d65487a96a5b27ad221b6f243eab39ff31ab1acc068d135d89e48267337ce8f42ca677cb465040d9ccfaab5df66545e0c2f4cd0214fe549a848ca625e9c9398b430b6aaa9fd0827dc54f0ee68abf111ec0ba0ba13557c79b29491eedea1e0fded533e1ddb61d3c64a562c80df92e8a1dab43044ee45ee5e93c70ebac487dbabebfa252d4cc1b1c49c2ad0bcab903219431c83a72ae4ad49cac27db8a9fa16d543debd8febe44693b3108218c2c22472deff245050445b1e394189fd8ef93a5b057105f8388fd0cae9cff519fab767602b44a9a2a8ed572cc95f45272a060114253d035ea21398533800cebb4975c9c7a60b528222a33c03e14482c1a85f75e6863521d27a1f9d18341abbb8cf845c77bb20e683e72c0b0968e4a17c537ca14b34caadb3182e1501c4861e68ab6c7ffcb97f91a0859b652d1985482a0a235bd146908cb878ea6e9ddbb4457c1c381f098806a9e23123b486f793711ccbe8ec267d32f1dd2007960f03b75272833b6e2f4e3da0ab6328b04ea48ca14d173742b0a3c0037ad6a92b70d0ce551eec5a1842b117c81c426d4a7dc442c7cf60bb528e9c3500859c90326b08b28ac56909019881b9f468f72b978215d38199a59a3def8e9fa2ce222f7de7c13c637c548b969a2e3b9168b35d522bf30338c8e9f8d745545bad0f0f1695d4af52c4096cc893faa7e1c07003f40c574fa4fd83a6b7e6087a8d87345cf978c9b5dc93fa0cae2269c28161f4e35cdce4e5d81ca2ddbb38fab00638ab4aebaa76950b9df191b9798354be81523daa44e66d01e2ee67a7b09088916a3dab3933616c3d5f953e33327f5110ba96047dbc20d87c88a5b60300e3346998755f4282e1f600b84c780af3ea2af7867c5996cfc8270596c0e032e8f264e4fbadfb72f6104b6ab1f6233a3620875b8d68c345357075826dcb0d60b0785d1ebec15bec15d6a4074d8a3ee9d365f658042c884812d658b406d48b42639909771a8396daf459bb770ffe7b5e01f8c695b65f4f9637a493043624ca90459ccf91ba2fc11d0f0bf725d73d9caed7707badb8282468144e6912045bb5d312613eac1a0f0434fa4896a4184f17ff52ab0ad3beaea122d1aa3778e4819da3853c4543496ef8b517e1edcc4294e66dc8af44bacb350f3bdeeeaff0095147694c12829d852165e57771711f02745b49ebcdae5a6e3cf817855456bf049b3ceb342c0031319493dba1afa720be46b93428c25939e4c4732de434b427252b7c549262ebb579d8cd22e0d6943d8b7ad0fa9bdc3931e1cb46bac91212c041549462e5883c3608d34229682fd2acfe97d244a146a9691112af5806d3dc1be0c263497658b8cbfebb9ba48e00765f06b2bf060d81edd804e0f71311f2ac5751585889c2fd47fe114ede8e5930aed9747c9fce106f0b9ae3c071411c360576c2c7fde83bce72c25b20aca04d2da17d2d31e13f402dae4de1cbb8ed5c6830b128681b787e328c51ccaf706d9636e5e027542a31f21c8b5e6dfe3476bc97d84a1a2d0d8dc56cb4496f8642cdcd544343b97550900d87ce85909498184d4e6376ee17229eace02b5b91bef065af70468727d36731a0b06c10ca89444baba8762aa296a33edd649917cdbb69e0ef84229ece0f81663b3dca1ebcb0b05bdada38c0cdf428c694b7c5123ad1c4b641a4e0838a88807d10b624d51e6f24ee3c6039a1006a0d4bf03a21e8f407420e5d63b18240cd5ed3d0a0ec87b4668ecc3bb1a65eb5bb9372d72d03ecd517a9361fac385ace1b1d23eec342f4bb31dcf19ca5a88cca778f36adf6cb5ae5677c2c69f114c673254e0d4876125c24daf9d9f52671009b66f1c942bb2d9b2d9877cbb304749771914006f8062ccd9d4d134b07a01aea2a8b3220b190c0a2192eac9c68f981c2814eb60fd132e7f071aebe47cc3541e23955c34a960e2e62c503215164bf308e93ec0c77bde34bd455aa8038b3531594a92347c815ac22fd05776029895237f55d0290b25cf60226f172d0ed60e8bf748fae64327e431f038df3f2a41163740bf8ddd3a126db42afce434520067a333c121702089a5b21f7ebe29b60a50dc158084023d5c217385e16991c941aa00fcc96fa74ccc002cf74c9ac3dbb4c05c7e67a455b21602cd2f75c761beaef143bf1f31bc826f22eccdcf3942bdf8f5c40de03334865022e173432cab8085dcd8760840aad575fb6e6d4fe0b9394dba29f1bf3b12a8e9fd33debf911ee3de83e2a5ca872cac64daf774ff301361c7a895d2430664533f70c4b55c5401ab98cb4f4493e67aa7d5eed316a0b40337db0dad56d09d5010982246870107d34f686a1b69befef8663329924a7160c2095da2d9ea049faf6cbccaa9786573a1cf82266856c8e5f1db09b182ecd54bd9f6279787bdc7333c7e9e54f9dae514255a8887479ad39cfee5c8d6bcfa4f26d654558c8ce18dc86243c14e04f3737a09c52a66d50a3d4742e464a8d5982c1109c7340ca34a006b851fff4711f4310ce79cf6ccbab66d0e60014bdebd32ebe413bdcaefe8b822dda8b638afc6a392fc570929499f7e80b6b68f5b4fe1b1121b3b01baee8e7f6b1bea7e98d9298f7bdf319d78137d94584fe7f1dd8752ad23159d1433a24748a051b4a56d9bed616dd51944be531190343f10b779d7593335781dfff16e9a614ac205baac4ba14a34d806a027ea4395f5bc120814cc7ffdb80400c7d3add10026b0dc157fbc5ecbb6a30f9ba0239db552b247b387f335d40c853e15c61fc21de2bcf97940e2387749855298a44d2706185cdecee34c0f04f2af1a7df35e05268227a25e6f1165b1c7a24f91fc19a23ed96b8f189bdc63cb513a8321352304bb93b16e67e8b2208bd57ad2991b82e75d491b67816e8436be1c394bf523746875a5c0ddf084881a37f457b4f77433435d8da4c23e7d0b95d77c62fb901d40bc26205333366c6f8516a319a16f18e4c9246f58d3f15c0f7d85d86315ece256a86a63979c90f21ae96051e511c5c557b784cf07a91d2cf21732e8e0d9c67add6c44e4d6195f7b126ee2e94037903b19abe49ba890dddbef28f177431936dfe88a200cea945472bea864c982375d5f4b558ae98d8abb0e1f03221c72991faf0a9e49f8b32fcf2732fb2e5ba994db55b340fe17e74b21efdaf1e7e1549b4c88fc9b8f7bb32bccfe1708382eace5d275235ab28349b2f72e1d73348f878a3edee07efe43c9a1968402f146feaec575a5ca38868cf070ea33e57e5e912831223967732656cd9edbfc4499f14ffdf15c54bf58932687c2d18536e813f73940949126d8a6559ee198d6bfa2fc3e4593f56f31a479ff3720de11bf9bd8c33261f79a80677519cc53dffc1b68b07425f35051ffb525414b5c984842a39f1240079059d6b84212e3c066c020c0104b68b6be3689a1a169dab67e62a2c4e15e2153ee1ca2f98ba69f2c7115e9c058784616c15b329813f3ba832005c517ffae7f894365b974a837ddb91341d3624d0a9200fca157417ac2529335faef0476e23240bc0f6eabbd8c149b7579c764d9a4c9d3065305db0dcc1fd587d272702fe800134d6e3b2e74291def2610ae53d680b061ce84a28b6e12dc8a81663ce3ad75ffd48a6f7021623821651cebd6ae799ec00746bfb1c0e818bae43c9372803435a208b0ea2b8151793ae131cf833f2f9ccb0dfd656dd7729ea48d52ad9dcf22767f4994c54588498b8441f2185bf8875594100caf8f6ca4095bf5975993b78fa0b6ba26fc094365f0112b13b5022c3014ebe530225abfe5df17831d0e43150d920c19db06cfb9e3f76fe935d1c7364df94eee19a5ae8a73d45dbe1d072bba5449b7f15cf85b5a18c0ac33f5d2c675f0c40b35a4a782cc2eeab288b91f122c655879190f6f85e5442fd8f738d1b3799007f121a958afe9ce0f4af6db604c00577d52e4fcb1389b5394e92670b12e5b1b6255f0e47f3e93070f66760888a535985e776eea8f73b43a3241542427884723503e5b32c70f38125bc8313485d4984a78149a37cb0ed3c59b279f4277d00753fb1bd1076f615409d5eb4287dc7503bb25314e49871c47a56cba2e0b9ccad2cffa3ca0f5ed519b57e860649908a89a3beede2599c24658e214f77e67feb2098bddc60a6afdad37b762b84204557f523e1108ae7f7d58c8ba11159c0cf66dc625b5ea059790b4a49d7c7e0e9bd2c1124ab6ce609c8329d71ca96ab293433c0ba63b7590129f18f68c7c642b0b0edc544b2d9a083388b1f61770dfd4d32a1dce0a7a79ab15ee17756a5011a9b0a4c9cd1ad4f340b938c7c9899f905c2b08eaf12635cc6404e20ddf8493eb6a1187d87ecbb76f68c46796e7e816596bfab2425bc3819158369f85af217b33bda2848025e211e318f00e59196128b67ee682cadc8d00f6698543ff9d89c394ec196bec1d2c22a4586645e0c5ddab4d0d28b68934e201b5bc72a2079b113d21c260c37c97be52f5aa14cdd2efeb699d8e8c820359246c67176843c84dc86cd29943350973aa5780cc1187e96411aed1746aba2b88f098f49e8fe273e49fcabba8278fde64d73d8b472025d084f300eb5d570cabdefa5c27f374481ace031bd2aeede10935d2ddc1a721244014828ebc4a847776aea9986bca6e46971d4925ae616b12b1cdf72b6087edce53d695d5d0e187a89042c83d6f2e285158e16c45cb0409e00929327022387942366a4f84153b35105efdbf9a0c1749af3d7d1c24d97f0a33dfd2553b7627c35c5bd1ace2e919784389fe521372fe6ef10493758f05906c0ed8d7d3b48551f51ac20859687c0a546f343db1ef8830f2718d8d159ac1355c29297838e26bffe339847dc8982c0f458f6a0dc55235e73e903fe459dd7d3d8b59695795ad47f3af1b5cf436c8371bf8c5d291b05fc561f74b818214b234ef659af11c7363a892051031f3a5433a9c817a7d222787d78f785775d983247b4e5f52952976a6b654ad33b3a409c11eddf2af355794ae5887a8e40d4ad7aee32a39e56d7199b38c61ed038671d9bc220f2819ee531c0e02bd9d89aa0599d6e95de227a6ae41f3a9c90f51205e726ff292f08097e4d2016891102f795f264a7218b4c0795777113d6a480e7a90d1dda0e25e801738efeeb3ae8c4857cf5d3edc85b2deae3e5848232e756056287e96f040e1ce318687c5636c601b1124d42a6f5473cf3cc04cf8d62e71fd40e0fb500f28891fe8df6f119178d6c1ae97a945e9d3619af4eae448fa645ecb7527e193c0eac1224dd2c86f2000576dffdf194d1e63ddb1fe4210de8d62f700065bf0d76ee54ab8bb1e055e3b984c7deca9a6b0160251ba74547bfa0f52c0098cb60965d19eea0cdd765c36600f1ca04c4d2a4a5713ca49e4c42d63268454edb7329d397295044d53f35dea1a2b3b53374e1c164e5236b65bf5ba6f40eef06f90a8fd721992009aaf4b3d453bfae44d08dcae924aa82e8834e28e099b243157871b16432c063ed90b3048a7b00bf76fd9c41571776b214394f49dbf5192d66c816b06c2b049fd370e7076e112820fe87557fa9d174c743b98b8049651d44656b0d8e84c56400bea729a7c66124c58f2a79056ca3e179c92e827920c7a4f9940cff2f0670256d6de12882c8cb80c300c3204c1a96cef87f7d2819512bbf32e6e584dabc4d6a3e6118ba390c54f5cbfe881bff1b0ed9552a5aa81ded88b652ebd6759b75e3c9929c3cf7288bae8b69da837874e7c0508014d40bdace9719db2d66671ec8b5f8d0c11924d21b5812795f66ab61ea5b69a820f7c3b9c0bdd0163f4199a7d5aef70c390867b9d81fde7890fdb2a96528242dc7cc70d14fb052a81475faf8e318aaf90d422951abe1084e604f9177c6c5b76276fd37c6753b3a236bd20a0f3da5a19a5dd417a42f128cec17541d8b679a68788271589a8867c6743c8ad2130e61dd34848ee7ac53dea3a95094deb5da76544d722df200674043b67eb05c65e230e06d5567736fcae2321aee005871c7a16247481b5375e6583001a354f10bf9d1c6e1b84268bb04d18b56087bbb7a3033ddfbf8ef30f8ca4c81b54bf51cc7ac084629beb87b2f193bdb89fe187954e05b12d819384089638fb9758bc1b5211dba8e75e37313b7a63027ad01cd826a94639e2fae459f68291a0702b5ef2fb2bd8b6dbaf87c09eea51a346ec6a6203e63212c11d1438d98011dbd69967d14738f35b17dbe863e23eb50fc9a9cf2302452f1872dba60d2ed8e606668c59d89fca2b55bd01b5e399e3c436f7c2ae69db8c71ed13a77852637fdf4b16db2c8cf82f533f3963015a825e8861abcf91c8e2c68126ae628c6434e463628c45f6174c7af6f81e6929a46ba044422466aa9b36bb7b62dd7265516dfc505e4644773630dc3993265069062f0e21abce9e33e598625478447880619f9ec859082731e3497a3273b8d1edaa23df68ffd8529ea2bb19338ead8d14ad39491d0413d20ac4c65076c14fb9756c2bc2cf8b7aeb3de88d8d4a615ffacf1139a85ce60b48cb39f58ae4fdbd300a33e7cab9dd348b51f2565f77456180d7b68a2d2b2cb1ad1f53af57826e1fad91ced51a4031297fbc306c69a6c4ff44c4f0c389c13b2e9ce28e17515d3dd351b4c549820a483ebba67ec7d768615b3eb300938f369f2afb40d4eec95cecf23f144b083b924a41fe175e2925eb9e2633dfe016944c820a7a010cc4599fba4bb743634db21d75d4c09f54f5f84ebcc7252d62324b741a91756570845ce8637b65cfbac21192791eff43daf5f419534b8496669507c36286df0e66df1a0f9f8fd94a8fd85c8e9a45d87a60c6e3980da803a0e4ad754bfdc233c11a0110c94353dc332a19ae890273225efc7cb9fca9a3035527b417c5bdccd942cc97382fc77485ebb5d897395a11fb32cec5b12ee1bc28fe6a6e4b625fc47539b60b1c2fc50697e281057790c558141c3a29e7643744fa40a92a02d3e18579f0c48c9586cf85126827f9433854008cbdb214fdefe27fe50100d7a1723c9d257f9ad474b214a78181196bce019ae34733fbade000b80ca8682b7169be6085dc52e70c1780fc09422df203c02d33b77cf58e69425c819a8e5ff336b9ede3f5fdfeb7a05fd1b4cc498f98307cd3c72cf32d34df81fdec5fefebaff9ef137aeac257bfd0284f00db870fc9140a61f78c4af31a826b66f1d2c6a7c808b8960bc88b641b4c8f34cddf9a28384d615179f02058ebbccecf89395b40baefccbe83a56c5d8ffebecf8c522c8439d825bb5ea82e44b7ae2ee06d4e6218b0ba6b40ee236680aff7b541cf0eabd4ac063813a828f903afdde9ef651d62cc478aae4c8451adfed97c1856584fd8e5a127e2d31fba7b800f886ae01248938b53a987ff5e82aa64a6ac326a19c29ebbdcecd7885140d766b5b8b577020b7e7c8305e6f1b5eabc312500e3a026528bd8ec47cf21a72915f0d7db1c6d8482326410f30963a9354ffcecdd9a810a61265ea7fcb43c57e35733e63309659ae0d2318ef52a68d7c74198a4992dfbe88b6fb042c86c554e00808c17e6d00b67bcbf57db7fca8dcf08fc4de66365ca165619abff47dc94be1e68ac00f6a4e0c288117d1b3a71f25105eef3e36b00aa52a6cb96649ce0ac73c736a078769da39c6628d958a3e477ad14dbc559e24e73c5e5e6dee5d74af5c26d7c6e5f096931f890d26597a36834bc5f9f5d080bc3a171d4233823b2251e4ff35509bcc4e36c66d109ac5bb222235b61242d46683a8c2c4b9941d6276790205a0804d16034d34316a7c772cb746431b1091fe9859e3e32a87a71347668e41f8391a89867834ab1b35ce5e9c06f62cd9515a911e1b0a7825e57b835d1edba0f7d1b7576c5bc9e012bf4786f8c1f66080d052da276650e47a8d6cbdf5eb3a9325288ed30630207b1efffde9c7f16658b1e425d562dd4815d1f073cf087d12bae89675b1ac70818107c9176e6dda539e3f72f5bdd0df8321b8695df4a21c34ea857e1b49f2c16956ae5ee0c702d9bb413a6f20df16858c6dc4a3778e8ea0b3dabacc7d86b1c63ebd390ef849d7ebb6f67a7555cab7ed6e824fb851d903621188dd19b12465bbea1bd9281bef385253564c388b6d2433ec829243fa8f4e5b6cc31222b4533e7f516baffee4ac6e3cc7b0e6d9001278b43e86f32a3d002d2aef529a876c1a6d873aec74abe4cbac2127e3207e5f690c9fabb9d1add23915f969a72039f520e909c841b94ebe11be524ed2300bfedd127bcb4d9b530ca95d0a0da8a236b5855421a25ea1777c5799b4ac0d2c564eabf5296a4694149d8f01c259c2046675937b1ac1ba8b8832e1188876dc658d0df6fec32203b0783938169bdf26f13e3b258ba35728613aa0f430656c27eb502f08e0a625814b603cabc952ee3524bf662d5ec52316ca1a2096ae5fe7a34cff56ae94e390529ce4ed75fa9c1fdf670f27c19bd659f6376d7dfb9c5512fb24e2861df24e571111e5ab32790cd941b51036c0ef147fe8fb9a2ab4ba46d689de3c8deaba5e7d5c8eb873b36a58ac3cd52438121211923231e584214ff4d0776ba71e3c750194d51213540c8ba791d99618b33d21a2f00d9e8b3c356ca324bfa487a3c71480e2f184f712898aa204ff29b3e652e716fa560bc3fe5252f30a292470c4053990647e8715061ab463882e3695087155a69caaee85e0eca1199188889866037e81260e7d77801444d585888d83547adb8cfe71413c946354834c39c1d3922237a96349a9369eafd8f75c28d74141c6ffe447f308eddb41f97322c4204846d08a309529f2ab80517e16c6b439e8e3ba1145ce8d3e0eb89ab0e9aaf0eecedd756296cff69c798bedd5eb8283147acc41ecc8757db49834b3838d490eac47e5fbb19d7a825c78678a5d8b226e139991ed95e619b149fdc41f14763719efba0a4e76875b7acf0d9687b73068aced40db35b6d5663208553290f98811b5c0142ae648a4a59c6aafa0b4377796ccf29431657a04bb4b78a9b83859fe707a30999184b50c48fb308b548714bd389126d215ad1d12ca02c2ada624a62625b462d3a9225a8458b5a984a94680bd1c58eb308b588421b1b91e209d72f732dc7f55095fe23198fdc97934b3143465eaaf0786c9b142bbd63fe1f3a9dba19103df7f061b78a8ae3165c78c990a5a374d094b4cc96546496e212a3ac6edeb6b71cb5970d38b2c2d65872e3a1206a393aebad0e3aa92c7f056a9d99c47560375a7f811e9ccdcb022fe8f174dc74553a143275e1ecd161a9eed53266b14c8cc4db6d5bc3285b5630757939e9d2d050072d93952966c26eac46f43049dae55b9002a37822f0a49dae467663a8a73103ef3ced3d2baf25525059d152f7182ecad196c5c9cf36136cf9e3d6e86fd3f06bced596fa1d878d5ec99b38d47c7f428de8a13c156b931de6a112672e029f1d1c5778fce4728c0c5d7d1ce039251ca2f90d6257fe1cee18ed632c5b733675a71c7079e91a265eb35e48dad6b6a1b854163c70f1b35c2093ed963dd00763b1489c0bedb153e7ed50f69575ac18f0ce25f4de463227616b8103e38b689f624e4d6cd416106d27f957d3d505acb84869bd942ce7126a7bb36b32c6dccbd771d2c0ee8d3c13f7d565d38da75f5b5e0f272b1ba49117f7f784189796ebc5feb18ab073ea400621f85f3570aad02cc96c450681f5e37b4b459326089aecde2aff92e700e22ef26776fc4d3af71b8b4f16c542292f64586c2dd36c0cce9c8d897e6761a598c0588712e45086f6bfcabf04eefcb31a6a0a077cdaa31b614d4a34902ad49fd5d4f59b6b01ff9f5b828aba8a316f2044b501a98ce69095304df6187b32488729e0a3a33175bc32971feac604e83d6f535e04252f2d779d21d91af14d6a5d801a9a109b803125d873bfb268d7c1d76d6a1325d0acc6f42b1b3f083a8a7e0d91b06b5d3db5d0ddef8e085a0f2c603bf28f7b957426fc10d308da67d6105be722b6aa5a515dea25dec81aa5b0270f9ff16c88f320571307e16072bd9e645d8594d4c08649a55f67f70294553bf7674b38e655913d5fdf8dbc29d7c4003e860707eb601d0ca6b685bda8a293b02d429b5a18868142db4b7cece1d56e321c41209f45862e86157ec0a5d802c361fcf6574c9d69e80ff6c201668fc474116cf04ee315f9649c446ec6d93722bf21610f7b6bb54e47449347010ecce016047a70a0e7520e8f57e12f416487947503921c9d800449b87e7da77114bcda691970364e7c2087f835d9ae44aaada317e60f14d9b8a5b870948c072ae56776c7794d6ecd43c24341a935852b67571766956afb93d7407a13954fe4a5dbeb4c1197c3c71e1e343216b26d98b5176ecd2208e4ba39bed88d4d46e30903408bf5bf7151af9e26e93b629928fa0f227181055d902fa7d35d1df82b001a2b6502f254b2c391ddd5505afff109218d216f1e1cccd9f14483031ca81e644724a37c7f3ba5a96d28bfd31fd83f13089413223a4ae96d02a35f01cc4a61686af8396ebc4afb3833af34d5745523977766692032f4f7d842c97103cb41e4d6d7ae61cb3180801c3b4c2982a61ec37f88e8deb702049a43f7657f3c4900891c9355988fc19681f92956d04598874870acf757e323b1380e4cf610c5b17ffec3acd971dcee71814a36e0074a94c77183dfc5ff601c67bfd0060e89d0bcb4031ba4b2323cfa66dc70f4a3499a78f1ad16abb6012121bd28184b88c0b1c540c14618e270540e0983d89908c17170bb31220c91f10bc4ff230cdf77d25fbb2449fd1bbdc1307bea6edeeafad53ab7477590362dfb30143590bea2355e1151369e3a1f0dc9abd6f3451a3d103403d6048564d2049a5273cf1730c85b56ef5b65104a4102cf16ae452509bf1a25341624afc202c1e8e0a58e0f6c0a10ebb62d4fb6424d2998c4e8f09711b0d6ac687cdd37b83446272dbdff14a85d7aa346eba9a2fc56f8fa573c556b76fb2a38aea213c899cf76a94e1505c28e19d4e55cf0d53381e5ba0fc40e6e025d9deb3212cc1a2522aa9adaa100a803b54b34b42267762f069f873725a9144b02342e8e8df55e605e96e71eaac2ac3f0c633447197315f332c7718b33d10dd36058f850e344cb19441a2ae707ce668c127c1a3e8f1107ed847134bd6ea297569421c52e2cb86c82dfabedc081f033073cb7b0e2c4d97446db003faa6d0c998da62aad4062d61e30ad69be5662d78dd7dbede6954a46f85d06dadbc5ed65f476d38259256792ac217e7160397cf89f80941a819e6c716225c8ab5bb09fbadd2b5507822ed2317711a19d9d8ce26d6eb51c0171f25882542c779d7f3f71f0d8d58f3ae887e4b12bf04b8ea22bbd7d738629e8416b73d1bb81c9b5be25bd78f59b93dd8afe1a98175240203b3cbec478856856922ea999cf1cc0c15d0732d6a6859ea5986105cc4ee98fd84b5a26e15654671c00dfd7f1d4d2447897c8321dec8a5e4ce57cb27754c640ba99475cfd7b026f7a95a18914bd7253607a16082afe6dc01dce9739139b59bb852037623e7bc375add48c2d69cb147fa33e9cc4a9f62009a84393c32645c22280f84abb861469627b8f73c4da324162b9ba9a6e206f0722ac160b7c5b2d0893440a67b004ddf479bec4ce8c14ab6b1459cdb4689e50036b77368072d6d5cf30deb0a6d5cb00e8e9b3214f87c6bd328a4718ef4bf9e246b1c396783f9f9b7a2df0fc476adcd1ffd7cab04cc1f47ca96059aff2faf7c8b25edca21206d1ad1b2be61ed22b94b81bcad9a9e46fd73d3dec7aff0f15dc9f7cae9c04997eb3eeeaf411822df026968adaf0a30abf7a075f6a64aedb30205e794f372450d0839926b13cc3d0faa19e9f5c1cdfb2b3fa1811bbf7dd4412a9c18fe755d6478fa1f64042e2156b4e25701a5f003e100ac8602f08edceb919f156d1ea8a52980ebe7092b666001ccd4066bf042d934084d77c2eba58f631f735e442ad467931ffb84015d8dde3db243e52195e2e231d7cd016fd91fb637e844159db5df4d2db27f30634788598a4fb9f96a7f556e4ff0960bd645cd22fb3e196a6daee3fa5b6e1ae2e0d5fd1fe796e8da3e573af37af9e9a1bfbd86fde6adc924b14de0844b072909e1a4532651fd75affa93c85556c022bbb14c4c92034c2d72aeab8c8525c5cf56711badee941b6d2d5a0f855ed07c86575f433bdc11227788153c44c776564c18cdeaa503899e40abb7ec2cf325068d088968a09538388270ee64a0e7ea8463ef71d5801f600d7966b090acad375384b5b6903501ad4c8e7e2a08e68f5f11dea95c7b44aba5d408438d448cba0b733a8b4f15efa136b30d4899a0e448989f72817f3ce3ee557ae917ca44c0a6accfc0057d967b8e971db995a184188eb6355d7ec6f1a66d128af9ecbef5b67b2cc4c87d43036c2f92c6bd60edb6180f664faf7600051321c9ffb3c4c6837ed051ff60b6737e2b9df6046b3b4af2d6144cbed430be672b00c543799419395577e5c29e361074fba8d1b3c25abc0770e2acd154f332281962991b8751ccaaddb8aad109af7c848663950a47ba6e96fc1e9aed93873f0488f034b485c6276752eb9bd33d40c5eaa3b1074537476c7f5b522b97714d88c81afdd1ef9b0b9688704170fc1a3895dd43e953b97a45917ed5d96eaee0b45696e8c1bab3d7e4ebdb0c569e827c4d7a974a0e8fdaeb9220b837c60e785972807a40a9bf2b75b5e782d371e398da7969ca452e3d2a47538621c65d033a00c4afd65ae011148117ff07e9d08dd54052f1ba04a6cb9aa748f177494da4919ee979575fd9ef4301fc13704c09a4cf36664ce7470ca07a4fa4456bfd9cb4f163ae2455aa0ccacc7b3de687742679cc2307855b4d59259bdc95ee761a31910de098ff5a7a2ef143fa12e7f576f1d19647c062d7809a7c8c37dcd98c1b7cca0bcb07d8001f66710bc4083cb90fe654affdc797923f4e29b210b9e9713ce9baf9eec3fc960ae3c5c2b5d6eba309834dd737f366fc0592eff00c23227cfb27a9030604616bd7abb5b6e9804e5b63c52f6685d0ce49cb3ba7f085c0da466d7bc97c3a19036026834c26ec65d25c541d60c27c7274832dab5bd429c318e89874d335197c3afe03c00d5306d7d9a97fa778165d35a95cea55686eda418876bc7912fe54acf9887a5658f6112e139215f415c3b443c50c5c00b274b09ad5e62f6431c97df432fdac542e3634d41c47ab93dbd576c8073015a58c6b76ce517f35c296e9536c21dd39bf581afb6b953bb0806de60dec5471d564b0024b58fd7114d08986b12d45135719d2aa57a0643355222e072493addbb7fade04fba9246b7d102460eadb9c08fe78caeaebbd2b045574b067fbad8acc29ca1ea3f9e944df78e762813202a247803ff7c0c58f0500fb706ee5202ff7a6bc8f100548b2f3cea58955f1d7a7b5184def3f07ef55b08ec82ebf02981e39e05ece419dba6966a11f7c133aaa8ac096479424790ea458850ec5d27332718bb1a0354f348ecc55c5c16301a605244ec975d1fcb2c4df4a677866395c705aef9f83ae1bc3d3066ee185c149d808ec5d26451a3e9924a41e898c399f12138372ab4a00b2d0cd79d836ab0a593b4977750d849d9b42c7a653d067d5cce0bc7a3accc15dd9b4c017f8ff98a9964f2b3d3076cf5cfc0132b5838b6ceeae8ac6b7d62cf7fe68ff7323dfc0d71ed57a42d45b318f97e16a3d2e7850e714a33b8c6a03b124d887657329ff5cfe0e3aa578ff66814622989f5b89833697193ea2dd1d649c1308f594313667f685a7e570d8cec8d4126a0aebde385dad288b35ff5c58be6e47f258170aaaa6e1a031df91254e4953a0af60485f9e3a37f8c042fce5842f5013689aa635dc73444f624642d66cb4e69edf462e04d0a4361ad5c54eae13e0b178b1db5023c234332d186141f6f39a6ded4c00d0185c33724eaa07c821192c7b5c5aa75b28eb5f42f42750e5f3cdd0ff119fcba0576e9c2f22a1395552be9940911f9836d19d8e37e87f16716c5da60cfde8cc5230441eb5031dda6362e7eccd255c6d4ba10b838341356239bfd9fb8fc2bb89201c947b67a89fd08249be68a602720cc3884fc7b107142f0b8668fbdc3444a58446ee816e8607647056d98470e0c170437941a0f3a4317241e2390395cae2e4b2585c231b85c6339e07412c0b1c6adbfa8b3d5b7b3690708b430bbcde3cf82a48dc005606a1e1f55438d3f6ad9fbc282829fd23c691aedb32c0f57079a8d5483a7e2ef253f90a0d393756090740301b524bf29a2e44b5e9a8102becec940d02ca11297e651fcf9abb0b8162b2824f6a0ebc38b609b7d18644120f21867a57fe610837c869f5cea9fd6583f5f05f971385d9201b88722668ce317624fd037fff567bed4b02a5d5b85b7cab94921e60409cc496127a2940106b3be12049c8c381ba6b6a2787729598f37692b82ba8b92f8bc89b622b8bb3ea9d39b68b9f2f25f0cf794c9dc9ac9df205c99ab39322d8649ad7a82f9b82dc4c079748482a197cb1e50baf3b712073e138540f1477862402a89e0e908c00ab09048ed22cf194d2b39ee0283647e85acd2f1c618ab37b0ce36ded8bc7d277b4a4f32c0009ea3f5f306792f730617241a97c194366ed4c9d86d636d03dc0afb8ef4a910a40662f7c75cc6ec936f974de4a29744ac17f79869851b6a2f672f8167d3ac95d1a5010918238d012bd666ac85ec19bd11c3d3fc34252bf699fcf6b10b885e6930933d2706f87701bc05504ffa987a1cce01b7f6788535f96c5f0c18f3322c2ac4f98718cd7286727f4ccdd35487d4a9b8ac3b05939a9c2a5505abc1a91f881508f3af18a1deb4399c02403752d07e6eec9abb8f97d900dea30501c46a9d2cbfef3de4f9b584b3f48a339102622e20960948044c5ed27a5cbc4008a8190ad10476e166a2309dd1a9d653428d5dc69ced4245910f71102aa9932da0532ed5c6b373853258e36fcda966ecf7530afe8175b2b8c76582f52d63ec50869b42c6dae15c78b125233dbe02fa0fd4bf5b669ea9a9b76f23bcc2ae72cb3edb37bd50e84788a526f028447ffd90022b7f858d9fd5da641d58ef18732fa08dbe35447459a4fcd6b7425f253393d2c7468eeafc455cf4f4b39c74e2e3fcb811c73fd3cf3e0462749f54fef413e3a4fd3498fad24fc12c75184ec8b594dcb089a23cbddf91aaf042efad043d929d9f9287e34761190e13f0df5b6c0f33c4e3717e3a51e06bb606ab08903dc6c0a2c6f969414b5d711f46799db7b83494c6d94be2802ae8aab7db9b2a5f9d9f3c064bd1ff5fb296a6fba7dfe567402457694d296fb2a16283019d63ee3d5dc12cc1af34e624ee9337a14b9613b72fc89bb750c5d119c737b60f5c21711c0b2e82a00f6417bd1dee3af4cd216f7118b8c62a627e07c0ba06df55a6ebd535c09867675c76854df0d8fd603081dc4bfeb517b54eb07fedd638a603ae8506da8598528cd6e72e2dd1c9305141a7df97d80559c60920d0628b842a531d2912a37545d757654fff06167a21f975d194d59ac330bb0a20250f17690c9e6ab87da98bf23fb0867e29240945c1cada45e382b9d0a845f2b6514be5d1434f2c9eb9cb32664aa73d8add8fff6666c05075a2cbb5c042c1d04a5ea963b0f5ced8d87fb0990db07d6e9f7dce38286fea874baf76778b3f9a25d0d6c8e9337d3898dbbbfce611c1c7fdd875efdd99aeeeb8ccee23b08fc3c1739e617d9f179cea7bdc31c7bc50809811b53804627ae508169ad264ba52197b336476a467dbba803d44a27b89c1cb2a367b1ed5a219ddc271b46dff0d3867871ca03278a77f856a119ccda93d4165c3cc51693e9ff56b1f3ecbdf1d440d8d5b25e5688d3798642939f05a8fbbd1b26873d90904cb0d22f4e1cf187b8ffa3e53607f36007ef3de57546793b8fa7d6e339781d7200303d21cd54dbbb2b0d061349951961ce63a8a3b4819716eafdb8ebd107bf3dc329203d139a0cc996f20f25b5b41eb0e5849a49f75509b9c5826a2cdc5b6980ee6c15f5dd6f26e67a7bbae803c9d948e6a3f9661e538b6aca689c70f1ec884e5f598f441e95dade2f48674e3d9cf3c0aed1eb1d5e2d99c950a4dfd32515a29f3f84457cbbd27992d9f3bb394938194b8f1332ab4d96f5ab2838a217a15d62fd31727f42683da5038f6aa1cbbc544880d0528406e4a821ea01044520220989465e5be21be62043867b90bf213663266201e9fe273e09d42ac5f2b86bec0f8dbf37b379bf0c9c262467970f9e9a20c9ff8c273926733a436f464463008394fac6577a4dbdcacb1218bb1302700a4ea7de674fe55117e2e396d305d84355c42444d5ac8dfadcd845bc78a1d9a8f886b8dc73aa2d511986424024424101a23e8c4caaf16031778b2c84f49834f4921c8be83633fe8137a49bdb7fc7e6fd4876adfd77f0ddaa7ee68b5cd16ace14395b49ddda4e30877d42070ba1cb97368f26d9722f341e6e154954fb1ab72278e27a7a20062d5fe11cc4079cce1726e4b6bdf9c73e6fd3335d6291f7ab3761854b81a690d4ca514a0760574b24aa1e3414c077dd833f986d543d97b188c8009e1e01c0628965064e7fcb7f4153582cfc685ff389940314b81d85d2a196fe236dc4d529ddadd93d04a924d72f080f0035a93d1cd64db183bf46ba64e0eb86acdb42ea4ab20bd7a27c50c1ab1ea74d74454ab1e44af1eb6e28d15398d74885a4c416e9e48142fa3f10b7608333d6529fa3dee61fee376f411c8d18783df55df85f7141f7849191544772b46f32b9c42a4d3c4235198c2d8063c6aec191c0d0d87c1067b84e651711bc56c1ee582b4f6ce96558a2fb9e8466655c56bb95cf26449a8356dac6aaa03d9536f5d383813dcbb720041dec68952ab8b37dfd535563a8e6143e8fa4ac264e301bf22e425fcced73912cc004f1bd10b99ad7266972cbf736c0cb4a3da842de11e4fd70c132312ba75c30bfae2fbeaee77691e40ae84a2da5c881a6e2f30bbb0b372d0367d248cc2953575bf2217342afeb72f64dca15b6165c90e6f2178c28c32346c4582048addc36b4ec1e679c21158b99eb05804a72d0a48a65cd77517da4facf5a6e0efe83ff5d0c5a6f0c5cc258eca306ff15e5251e57e482ef1be2034abb2354cbc436094e9a09778c87f4549eb49d260f19cc7e9e30537d83d1f2617274e55e3e28294e87ddb49b160ac43a40fad6a3de5721785cad851cacb5063a32f79e0968679114997bd32d949e54cba4715b7e364d79a74c42b53b1aa1fcfae6f6973385f6ce503a9715416e1e4b88860ce88af7cc1399641e5c134f897c479b5944bc80bea5188692295103828f0bd1336472418d8b37fb042a27e1112c512187bd653cf8e140589c280981ea56c0a65b5b6a07bf3c7a7c34b9ac6e529f52a373f9d29ad8bf54813ee0eac9ec7fb9842234b293f3b336082b18fc0cdc9301175be7707edcdbbd82775b18be1730ee24fdea6ea9912ba751710312d06381da20959f556ce16b262f7e9461a8789d954ecf1948a228bf145aaf02245ac8c0f1da84647dc0dac76880ecdbac85fa602a52f432961f38196546e1f866408b8272b80d2ef7e149ede598a3a7fc1583c5684c2032b33ea77de9883bcdfc2fc64133cf0514fb9b2b893274f14402b9621f6f51c42036f516d6b7903b0fa58f1fabc42f94586106f85b72c254eb0350e0a7de8d09caad562317f9984ce275a376396a80d015aaa2918275f4fc26d71ef85319942602a929b50b220ed670f4098e870b43e316bce599d164c492b5567417214febce2050e8ca127c9554980fae5f2e78f2669d715263bc0e62a48411c05bd37cced260636836ac84ea75c3237d91357f82bfaf8bd3c245e6a0619007421198b34880f7ba6b518f43bef702c94762c4eb46dae67c58be375dea0c5048424b1942185ecf400700c850c7b6903fcfade8e34c0a518cbeb9bfcc2ce6f90437bea4564de68a834c2ae17f4f8113a50994642ef487212f7ed003e23ee2546fd07952b2f2eed748ba317eb41c049c20d98b71e15d9ee4f7d3271275b0526be2c6a4888d4d8aa35e52e2054bf23e5db37a53a2e839daa2e12bd13dcda2c6c225811c03cfbfda3f8ad0a4db4247a062701d5548bd04e80c4eb44c05c01a2369903352364971e6e9cb64d7693837f0f235abc9510049aa49a663fea725d241e0890ffc8402ce366258e94ca9b67ddd6e51d7567787ccce79eabfa4a8c0f6ad0b74712a2dc80c966f47fb472df6fe45ffea5d3bb817f03f0d835cc130d869b4e6f56de0eb084c018164a671649b054dfd651e8aae0b9e54d672d43e9d103f2122cf5e010ce2a36934beb3a76cbcb043b71dacd134a751dce0a35b9fda50c54cbf2c7759b5dc662534bbb55d3d77e1a473b038e588c678067e404a8b0e4f4463837b5bd9d00a07db8256316ed6b1565eaca76a32bdbac2b7311ba591216a58e42322b23ef95433d0dd71aff118113fe7d6507dc70c32a02a35ea70a02384d067cbc222abb4988781621ea5fc19f1969b9f1013d62457b00c6a5b30c75b31e380f728adda9b2b08fd6a9e079392e6c88e16a0d3f619119ae6e33b86bd191713fda03b8afd4df82fe48c920264443884d26ae7b96d2fb83e2b847005f86f0701eaa1c8547a15bd0aca0a6a3f9f708286c5537e2ffaa2fa356a300ed0452ad3e597bb27bac961ba131878c4990e4fcf694ff813b4c9946a92af38c26817dc0fd698f24ac3f92e454d001c53f17c383f61a062af7635de527e4aed99dc773f8f1893bd4f43c336e71acafdad94379c49aa6537283a6df4edb1e314f882fe379eb2fdf80221d68da0222d71681a2d2dfc1064bdb0a0433f230cee29c4c7ad469ed86aeb622440d457c1d0cb15ce810de2108230a8ed0578d4abe84b73ec65c8e170489c8442150707590d13a935304308c8287f311bf8c8a0840122bcfa74634527cc906c94cab93d839d21d27ea99291febc8e49e60f00b1452a0516f683c32b1cdcdba64d812b9b8fe5a852dbaf42e400f59d84b049be4a2ef2b09680e3a9695febbe8a4a421fe0046bdf66109dfddd2560226750be231eda71fa5099f69d8c25a2e7751c9a425f22955a00e30a99da5596227f3fc9cbd910fc52c987c70d6e92e3051ca16a26a04c91b57d2f559e3f07ce129349bf7c9b80e658d1e49a39c2b690ea8de4dc4f6fcfd4613b7e449c285a5aefd577c7721f726833442fa016c730861caa41ab98253646b9d1a9feccc2e2642d45b1ef3ab3f09c0665f0428ddcf0bd99ab908ffc6931ec87a4a9ae18df26851ad0a04e406985b0d092cb02b1113965b97a98b7968d536f7e2e345a2540e7a3b05076c273e0a561cb46c7431d5149c337266112bfd141b39a600b4643f0b6126464e8326050ee6165cbbc447bc3c8753088ab1335c64b77ab60e0057482ea6ef5fb846e8e63f577561cc88cfa498c513e938c76ddc83f3be3720b94c1a481cf1d9180066b90717276de9cf21be6831b886a28b9cc4ffff0cc813cd98616c60ada402ec9248a76256a209597b8002b0b6b8b3cbcd3131cbc68cae10fdecc2d0a20984424884940f5f872c9a2c284cba52b7cfa573089ab040857a56e81f6c46632da2a87111b134e5ed959aa705381df74047595403df771091aa1ff6548686111826a0869d20a1f1b318ed69526979d6aee71faa83b00dc18205b740b044e7201b75da48867786eb6ce06c015055d424db4b4f9105f172621de1cef86b9a6f967a699f09a0b4c449e8e6a7d7a1c2a66447e7a94e437632f4c87a16899fc22400b6d31283e2ad49c40590d3f3d2e907610de33e8c4d59e96fbcf3da68348ab3665546e008d2b2b24697da43b99694feb898c861020af8b885f88903cc649a57c1a9bdc5c45e8cddf46ba2943f3f26c496918378f1d80f7b33c1c9f790e10bea7f4912e4d2d782c63211722457f56b6f3e03e60cc30e47e1c5223edfd61a40aac2f63a47588a121cac8760fdaea44647b6af65c2bbc688ab09704e16c39d4538ead770881cd5d97c023fd772bc496b4a6c27e82a62d8abfca12981ca933f9c1fb9574845e689e66a3a5ba4e0b9c89eb0353188cd8aa5db002525de6bbda089e8d990cb503fb349beb6bfb18793ad3fc1006f08d0bb91f9044c8cc50b60595948ef68d3b28595202efdc28b43bea03c3247c754f5dab5b632ae90b7a3ee3f9b4fb991c2f0aa41bfe71cd6a909259b497c5e628e9d6180f4f42535f71345aa181b8df626ee8ca11ea717bd3f96854ee0a9ca3d33589d4915dfa46444fb6d1713b905956b1052086528e1f0b4ce16f43abb2d1858409519eb0640a1484aa9d388fafee615223857b0df57dc78c2b50f62d0c5152af736dd01c2d9ee884651a51282db69dfa35f4e31d4d93e18751365db23b93d23b52cb97eb89928987e064ba6ab682f29b19a0cfe8ece8e9bc80aa0779468b30c53f9e60c4295f99061eafa638f0444d989637780d61259305be87c40201ac1f77135b27478ec048e0b09533ba1b12ad00fbe7d6f3b7b3a40a29434513cf0fed7683babd3af2821150d44ca867da10fa4d3ab5b4a082ad34da3e76d26d821d0352772f60c16581de367c8fe5c168ed136fd60325010a1770586a947ca3c959797f1edde5429706e7968d35bcf45e3345124a0102fe13b8f3a55461865d42ac1d45c0d4471be61f2ca9caacadc343e10193b518320a42c1ed6056d5297fd9089c99e9acd7a92f84b2da4fa6f80585c3ffb6834aa9f2fac0aae3d7534eabcdceb101aedca505217d5133fad126c53d06f8198d2978765aa680887a8b6feec6885d1d1cda7a55c4aa6ca530aac3fb6473141bb2db50fddc3b2b92ee230cf0a3bf08e941d2751ad15e4998f254a325e3bff5660202af0e7d28844297388b7939070b3dac5033d0a0c2532cdac14a6f800b64a2a7ec03ae1a16ca2088f9b5dec752612f8f758427b0822667c3ecaefeffa84f4e8ffb1f8c0454df958206cdbb73c63040e099c9d8a846bc00c82d82e1fcf56110037a495dc510ec0f8bb45e19906d0d86f35c018fe574591ef75219e11ca2520202cb3215b34be927388e1c63c4f0ac10c40e5569e77dbcbc8fd45ca4923df2b44104b5f76bffedeeb2537aaf77b95de5cd517cbcff3d5742793f2faf15cbe7b73158e103b63933c1b61d48f8ae250be1ca6732855bce7435f85205fb23c5c75666bfa49b6c502cda3b8abe37f90d16f3b86445440f2084f458907c06f292bc0cb2107aa2d8c2603ef2910be9b1f6b1505a4b64e09737cbded7449ce1469ed458ebc2099aa2631e3c552bf601d9fbd9b9d8688cbac523845288648ec58fd3d083206205724a8899d01a950e5f8ea2e31caf515f2c7bc10dc01d4459c39daf6f0e15042fd42971c333ef685b5a8c6da4093751332edbc8231da8d706f197fb26a7e84afae420ec077418d864ddc42137dc113a149acff78d876d340a6c478638e055cdf36f31011bf4562f28024067bff0fdbb62123f5d09d8ce1655ac4b7abe958c4098b5f72be44725d969d38f294fbea0aab80ea821a253b5de53699ae6d9ced0447b71e2e03bb299cff680d34e7c77046f10e51dbac501b19ece42d66678368841ea5b73ef0080a4cc61df3560b6ebc13d44ea666b9cf8d8dc2785a5d0035f8aaca964391b3ee65006220a877d531de8bced5246a2330a586ef5e616c8a3c5bdb579a851ab9125cf7fe8f3bacc56680249d3e65037590d9cb6ff251f196489bb6f7857a9d041480bf3f87f24fe9b615317fed65356ee95eb70c0f45696d6a7bf14cf96ef8b4aec9fdfceaff1cac8b9a5cb8bde15a1f1ae80dbecc8b5d931797e3c5d7c1470d0229c87a1e0692ec0e26284df0438b589f07a08e02214dc838c07ef25193acad73c80e9204daa9fa2704d28c5c1e0065fd3b61ec93caf0c84b4a21a6bb5c534932551ac431a6b6c7745621bb3922836a2c9cec1ba521e1e3090039aa20358944482a5fe671b81eb4b06f80de2893d7e3cb0095814b8b6754723af934d23a45da61e55af186e3800b0ec1e1b554bbf15dc80e6188c8ae20f5737c4bf6386ae6e87df79ab8fe3355d3775bc863be9436f52a464e7050319c71ddc3b83202642e0c1242de59844a082dc4d3ec42382dc8622c1e1c1c9819f586e73e5613e39efcf82caa20d66f4a14051e7ed4d97df78057ce495107ee70d8fd8651f383f5624181d29ebf56b09792494d4078c714404430489d310586edd996b7d501d598f1ca98af72feec9b17e19c8c0fccb0ce424f5d7e454cd8d3508c7688652628589862acf237eb2332f19cc664855e2709e219115ba591ca75499347c5ddf230c9f10cef81216c1480e1db41704d69dfaea53d72acb9d9b92fa53921d90b6f48a4719f4e28cebbb1f270af713125c8995d895c4c3d6e2b31cac0746b3b230d470b932c3155f4fe5bea38e6de5a872d8852ca0ada8198aa251b863f34ae2893545f953076ca17c321ea64894e291aa94704048014e4985d74588ed50e7829c485012c42a689556089b54de45a8c306e7360fd690c0f3ab0a50c045b6c2bc19690146c897812143cc4ef239c8f7206860fd73b0d97c5cd2b4aa0e96b02d66a6409e23fe78bf1de5114738ea2e8c28e2fde9dc2cea6883c552f10e0cd9e03fc70e6a342935a85ce7c60a9fef6e27c697dae87779d1e751e037d7d4828d191139b5b0c02cada2c934f773a8a07c3771e96a86c7762ae09339ae5b971fe4617f76c2ee3408be9f1326d5128d4810f4f550cfab64eb06c349b322ece19e63238ed9abe3f9d5dd278621de05926e8be4527cae07097fb0d56f8711bbf08271bdfb5f39de37b4eb62bfebea8ae0db1e3e09fb2fbdd10126467e3581b79827d52af2d643dcc3ec7b7d6f7943547d1a48c06d3e4134ab69a125fe9906bddaa6ac8e33b5553fdc2fc3db385822378a7c7e04fbee058074c04d1c928c27a361b082b490a77cc32d72189c944a3eb2b09d79026fc0e83d9745f7d204c245e8bfeee2248c074bcfd04e67822728a8e225b3736e8c11b0efe61b94faa4688d5736a589b033bc06c3a2d4cdf1a71fb9fbe037a0e1cdbcafe57987640f3334d02a40ce1d50a8a5b6f85cd543c9cd0db53220efadddbf909700bf9f38e2c364a9d7a3485f5b0cd24ae8c84677a33f8e344ebca1521888d322e72b8db8198e38851ab6d0176545d1db289d9db92f79e5589454701511d508cdbc621ea6325e287153043f704e191aaae7a61b5a1804c09362b26e53ccb2a77beef6d449a2d890c9abcc29367083cfe0a9bf946d2ff0d61dc805b4cf57a92a2be6ce78550329e3fc6bdb8739b24c9e129cb3da3a5132c5a43f5dcf44ad4d9fe431f74e693e80a5196273579d392e4e67467661a0843c1c96fbc07b4fd8c7d79cfec0c08b9642f6e3e26ce492eab01fc14731bff5bd9ebe7c04f7540bcf5450a4628e9c5714dde42251610d01f9e4ef8a4edcf69d0e68c500c0359a0abead95580aa53459227af8101aa96c0a790bd079dbd3521fdbcf21aebea3bf20259e022b4f703d4fb3657418167160f342cf35b0c6cb1f0edcc964653186ee246c0d49f1bb02054f107aed8ebd64b7af8c92498d18b98eb0446cf85df863843a9455e980abc998054b10b7a50c9b2ff037a9032885db3c08108da7a56849f44ea7e3c80864102cad358f8e1a9201b42a48a15353184c7e979393a49c0b8db8255b500091332f49a6aec98f85a8fa609621dd6e9af8c3b1bfb6fdf88a3134b2101b709876f4765adce2b6acf87e974ac3ea7c00c1afd2776fd7ed51e8361b9f3ec60e690d41ce106df8722e0756598562a2b8711ab384ae8e9205e3db201d77f0b237f16940ef1e733da4ccf1e93a777b40e059fad7cc663bf840695080d7e6ed058dceec9ad1491f177f7daf862741d23ea2df5e605afefd71d3089205f935f39c7578bc2a733e203a7d9df736207067c455061b2bd00151b8bd0dd4bd388e29941c3cef537a144d8b5d9a4bceef9ebeaf4e206a226c31e754cd4c1ae44145c9bc37ea3c4a3dd226b14d03fa8154437665a786b5cc76a9ae0d1a1376251caf040ab715bc981f879a49c695da0e10bf40847c8aa01f95f0e22b507cd16c09ddbc6b4504bddfc785bd76e9be3e23a112f1bb7d4b946bdee3b6ff1741109f7a3a73b6b8f3b2947edce338ecc59b065215ec339b42162dfca080bc8b6c2f5e31e27425a274f6041291783fcb65bb81d52bc082fbc7082cfc1ebcf3bbb17dab3a72a3bd2644231424142513e7f0d002ffd0106d7ad2c92ecf183fa4c59a9e536e4941a82219a32c0fcc20ee580e47c14e88d90c4cb034855a6fd51fa0ec3ea43f2cbc844c326329e0b0df7312b0a65184cbba9b1d9d70e270dbca98bff528049cf027f7ee7902b3a6d8227b9074d84e04b7800cffea3c6a2f85ad63a14d23541aacc011ca171c7de8d3943329177a93ae6683b5949c7dfd9d44c5e2cb055e45ec8cd10b0cc7eb27e18aa92fc2d0e89786c3a82f447ed00c43b9ed1c40c0daae4b42c179493f0210829cfa83f9f4bc76f40052cc2427a19cd0082677c71655fddb358805fc93d8202e9c270d3c69129ee574d0ec9165b6f852760de09c95151b7c7d3ff72ed8328198be72782f438a924c5d7a7f385043e811c546b51fdbb1c540b424ac7a053cb0944c5bc050285044e15515dd643df88c18dec2eb1bd8493240be8cf3403ac5233d4541caa9ff58ecd6bb466d04cc1102e01a19d7759685986b2eaef0d971394d6e86512ec857a7f6e6e39e7bdd09c42603751c4dfdea2bc3e9a22804ccc6a51d46b2a0479edd84a038188e845a7e65489a3cad19a0534913e84aa33f5382a8fd024a012d099a8f59e9a28533f4ed14014b38a28e96f4a62bcca11d733b90190c9babfcd459a8bacadc23cd16f7b4c13efa5c99dafb46dcb849e591a1f95264425284550fa3644ea60742de80d63492bb894455a146b563db27e08af3ee23c79b94c3bbfa15728cb41588914cf9e8ac6aa078d932da60bf6e6fcb3cf3037a47875d9f9b55e7c1c888a6180651c9116b4621b2a75fdf974318bce7f243d50f87fff6d2f1a365b89f2838e2947ff1fef51528054c0c38f90011b15137c39498eea7ecf17caa6786af50f50eb448090b31fc06c0fb095f660836eb8acd60e77e65591260a1778e916e4e19549361f8e60c424851bef7ff5f6b3bdbad3f31285a2c5867b872cbab2ac6aee649254ad703016a666c5411a49bf4d4b3ca0e10bc76311c741e774d65003824c9022199c132b5bd0d4299c0063e28222c5996fc644e05073ca26e66b04d45372281b4380742909d9f3f97df605730cf3fb6caa6bc4b9dd586db673916707563adf1deda0a8d6d4dd43d8c39d8a0884fca36576122d8abb2989b5609d041878a700795ced320a30d54f600e28008e85e099f5d9ebec0140bcdb36b407bd1129bfc0caea5e384a111ba8d69940a2024193eee419ae5064ab132ef09eebf2f4a0350f786090369ea208b674e3d3d332259b52ed699036e6776580001bd496b29e296dd6bd360f65083662966584892887eee14ff7112c417a73a57cade0d648b88c8a7ae9c6866096839e739a528c0a10fd91adbd26ae433caf43f40d41c8c7e270ca7da8b24a0e5bb99a354a25bc7dacc64f1b51986ec91f9aeb28bf525ea598c2efd2b3a0eae0098f1add0e63c147f796077d123659523e7b5440474e57b06cec4d9843402a7cd820f6df0fd0f073a82ed754a1a71159661a35520c2630f78cad922af53717d038b79385f5d21e0c8bf98837529eda37f1bcb46da08791e7486dfacc5738a053f1b89abae7660e52b9931274ae4531e5c4d84c6243eecf8e18b9b5eb0ee1801c4cfd8f6b799d84285b1d003ad70672aa0cf20ffe3982fb79ff53c00235e18b5d4203da65158d451e199cdb88175ff4a828d319acf7e4a5cee15b8ce2447379def2c803f87b1056d14db43ba53aeac9e76a39f2b72a9253f283705d577d67ded2a42490b4ea6a35796d0e3b1d5cb1b0bfa908800b00af14d69cd4380a5da0c15446f40314edae2bc55454116e55ab255d4a08c716c00f5a3fef03ffa685ba134a17581d1775147698f0344a569d93500829b4e13caa751197b341ae7b180788c5ebcfdcffe632c3aa0c5a6003d37a0ca2c7fe62f6e3755864c0aea9b1bfb056de24994387864bbbecdeecdc9d2822cbfcdd9050af408d85f0a5e5a70651c460e21b506170c0dbca631208d7c184e9c05887d0f105cd1d6c9308ba0614618682c9a43511ebd1dd288324eb5ba3e8034cc575e1cf9ab8fb8185943a340daf8486b5c16b855981d27b9c5f29f32220b2d0080d89bb0c702be0c94678837be1d859102c26582d0ae28a183b0565cd21f64818888010c2e24e9257ca569c09b35f5f50832ff456130c310df1fe9b2efeba6604fcd48553ffab62e0bddfd2e2fc08cfb6db7c6bdfd556aecfbf5bb2def27fb62023dcadc31da84c765e621855d9b759ad8ea3657160a85861dc6ba3076303c9999e75b7b54861eb573a013cbf6b612168a1c04bc4ce514cbf956ca025b2db0771aac553e4ef949ee35d1c42d409b9d6a2086dd7209155677147c48a2e514cb2426b5512d998be795a4fe633075b1adc85974240a8f76a7dcf92b1412838cb863ac39f58f2f34dcf29058d2fa878dff24a8ccea152eca74a503a955b1a656d31e4b3943c5003dcb40c221070234fa3285c7fe6e02a1fd835ebaf12ee9863d0b42756d9b764bc68d8c7d5e8b62d3fe1e650cdad4cfd7560138be632fceb82080408a72ca2353c258b61d38d79bfd6f8a171e5e6bc928c3237517f63e7e3dda272e3f1a61e59f8a08a7116ad6efdf4af64387f866da569bd77df55c83b8159b18509153b268ccdc62df2f4dcc1b1c6c68b55d05c2724f049b941c4b185ababa447fc81740fd4d8cc7dd6c50db3daf7f6573f091221f593ff73fbfdccaff79dbfc058e7121aae3dee17771426b84665b16f139c68433b7789163deb05b1fa2b2487710010a7ceb1d5567603f02c0f5a4b29ff439ad60aaa077cf1ea855f3b570044a14a0800ca5a1e6cb072cdb1cacf18a43e7c9e60ce5e680ead5135ec1d271b7055257a27f8575e0f06c2ea935265c55b95784caf4e647a352c53458a42b160aeec6061158d6175702bf6c14d60ff7018ec8197c1c9360996e4c2c6effa07964bc21979dd8e30d561ce73afd11e791a8c87e56881d482d80bce8a0fc2b8cb792f74e386b5b40a6cd70041cb4be87dfd03878b0b9b54f3ca4062256e7ab7800bb427e972c3dec853a99c3329ae6a888f4c896a63c1453a99f9a48da3b2254e0e92c9fe20c7f16585d0c225407f1dba04f62d52fb05dd9c1c404cf818562f66bd616dc594d6f676a346cde7bcfa1ab1f96a64997d40cc086f66809be32ad900054b6b36082eb6aa50349a1ba080b0a6274fbb7000298d73419a08d77d3be20843078ca84646ff9d756884630cbc31e9444018703fd0193a0d242121eb32b2cad138f6a08844d9d5c8794eea49f3f43af6ab7eb421a2716d62c9382142ba9522c96927be8e6201c616b36f768f055392292ebfb57d520d0e2c8eced057b8d9e27a8eae6f23744f95cc687a9800a745a1a95a10546609447b60d0664b8c1386ef3d3cd7c91cb5def12c9230bc63ddd393ab148c2a51afad377880db255fb997336517ecbc490eec3ea68e2e4b68dce212bad7b75cc10b76ea69eddb1dc86e06e9557175b175bf620dbf30054846fb83d0fca15764cff254861cd4c6a522aa0156dc48adc9073f42777d40f788c1f3ce9bd94496eb8effd4bc67b0d4889da85f0d14e418c4f7b0d01805a0a5c82912dd1d4852f9da3da5ae45f27762c456e1a6bbe660bb0b8758b5d4519661db9560de1eeceb41fa13754381a0cf3244b4c40076eab6b4161e239813bc51746aca31bf95a17e3a8e2dc9b9489ba45f783105d593fb3e7c1d790e3bbb43a0d8ba3deab01a779800fe968e1c9e6190ca6a5a56b0d186345cac9f0ae5331d3ea010955447dc44eded3a16a4dd1320ddf5345eaf22f23064013f63e8f44a8634a6a2eebc2b0f34775cac558c4ff5869c093c3e9e5a93da72ff4b9bf152cb98c5adb291b024a4f30d1cb1d2c68de6a351f22c17c6411577a700b725bee8085a4d53a78815384f2790323c8f66a8a03906c603b616fa13c222a6e75f62f4034d499cd50cddc6d88d2086ad7e5c1e5c57c0a995981557396ae1327613f62fd90de6b87b563ce388e393b1317146e07e14717e16f4a81e8233452e30faab70f3dcffd40488fef212b1d586beb9f1893a58cf2141fd56207f266bb1a54220e49cf727e2ba61420d8cb96d642ba812ef9e87b49510ed1e8c3983a8bfa41084899fe371bb8a812da25eedbd4ac406f5c965c612bda197a88476e8887a51d977c7cd16986d4b9bd481b163b2e007132195a4228e580f4e0cb8b7d5a8a6b4a453b6e24e077fabc5f7abff414a947922776fce14301f438ac725e35ea39c1b3d8844ca9aa571d068253e1a72842f05985c74003353804f4e7a30fd3bc108c1a791ea4dd17b148adac8c7a114d876b9f72435c8c6870fc107cd401c31b0a42740dbe188ed7b77fe31febaa6896500e88048dcc2dde22c15d35f52282fa0439d111c093af6e3b630b180a35169386cac60ba53a2ea0e97ffb181a1ed697512e1c5ed742d29ff1f60369517d16a052f154739e0962ba1500afd434a013ebe43a834b643289ad0df1f26843f8a0117e415f129b8e5cb5ff4ca2fb9e029426f90f46708a753007c7262031735fd9f7a73bd5f7244e82bf8fef0b5295dc65a44fafc95a211bf1733706d3c25a9fb8ffa147d303785c9b54d27c41ce3d4c98fdf9f97fcdfa0148c1b7521ccdea8db9c161af802c77755c547e753eb28a62b157e2da6f29707a75a7029b968eb6ac3b2c7f67b831c502733b805277d0e73982f67ebf2ec5776c09ce2267ccddbaf2193f45e66ebcdbb1bad34687df339069f770d2f9e251972c9feeb92c8f00b1a8f0cd8bb90209fdbc49284c5d7c90524d637da1095393ce4d4d97a707bf94776a3cb79799f29f0d56b1bf2547a03ccedfa472031fe8a57ab3b0cc37d3608990b8f5484c6fd9995fbb3df747b004a70b1183320f43354527b742d5db5b3f91b5d728346705251d98efb73ad0a95f8dadef4df3e0fe10a82018058228167c5d35f572162811ddd0e9a58868941dd2f6413650866a27186bf9fc072796f34e1c6881eeadb13a529f33dfa5f9fb70152bc983b53011d4edb420f67ad95b1bc6762b216838dcadf526af391242bc1f259700d41baa30cd40429f47e0a31b041ea9b8b927c4325773e99adb6b591cf80419502ac754652d6d6519e0d6b51bb05b4e2658816ab4b44aab0385e03063714cbfb74b40e123bfbf503502f44d14416ffddfcc19922b28c5c86d84cb1391a7c1b070d4e8217ac2b33fa4c866caf863bc2292a280a87e10bc0cbdb25bb321ff79f06a27e137bed81d684c44063cfe0422fc1456a2ca380ef0e8b16f504a277cec4f05db1c5f6212043279efd3bbdb53fb38f593df8f3070c40dd2e2746a5182cd4dc7412f67bbd47d677828707a79e81a5a6f0e40dccbe22639d08f646db769342211bb2a7f92e4586785f30cbcb613b815d5596affb9339a808b5a9564b9f8cdb023a49576f23c378d80aacbd5dcb2127f06461aa438cbb10be8d52646f2bf7b4deaefcac504fcc9ff8df3ef0f97fd713698ee39935ddb4fdbfefb4b60394373128a5714f5d3e0b406d16be66a9b99ad2fd1326b161f27e3af6921e06457260103d30498accbac461115085390009464acefdfce07a4201ea343d4d4a253349823209afd443b6565715168bfc0732ec7a71d24d4aa23f154efb2b763b5161660c10f3b0894b6072cfb37e37fd59a2024e11174378fe4edc1d86dc0ab13acc05b30ac32e2f1f228a61ee3e0b98053720541c0226f27a1e2cddb36f1104fd9c9192f72c31308941c870ec88da34a77ca1227ceecece46d2e6ffef4302879e53a2fdf1ca1933e9ac2fd70ce5c53c64402e9f47ea9760ad43460b268003167c5906d2f6a6363a1d988e14e3634ed9f8ad278de5bee603f9ad4f1810948ae9fee8018fb1ca906ef85b7c1b32a2e30c41e1a136e2395493026417611186a21b2252d59dcdb8958e54486c552d1051d2bed1904886a14dff9cc9004b9c4645ac8a4e1fe94f970d02ac0c407e0c52206c1bf47a46d9e3408ec09f9318c75dffa0b015a134e65b50999b184676d0983ef0f93da101035f6e77f9e2d5e8ba23c8ae778958db411cef2b92187f6d53a13f800b1b6ca83333e9e9bde598d182cad7f724fcc0ead408fce7b28685e802ef6fb9bd7b5128477c34818278aa968e44b28f14b2f62fb802ee4ad812a8ff2ec3979fc1f86368d231cd01ddfb6a9fffec3dd55145e83d7f565145c64308e05a5fa0e19ec48bbec0d780eade084541e57bf926f9d2407161c8d3430a671c858f77ac252db7a83574f0b45804d3b3c935b37219de61da13cec613fe161ca681db099d9f455224617d198c8937dcdfeb80a382dac5f63f9b68308a25337fe7658851498d43ee67028eb2d50230bb5fd3c035a9f98aa7c18713bb5d0c7842fe798b7ed11127c17a4756a0f45da7089e1606e905597dfd797c83f9d065b1a1c8f3c65868ba797e59b7ef374dfb23cd9149ba41e9a767fe8131c6ebf154c4a85f8a7d8e89ec6661a2b59b75dec6a8621ba0e7b19e1a3a7c3cd1239a44413cc0a471cb53fb8dfdfd384ca92fd77252e8becd4df3b8eab32694d264b22851ba87e5ec917bb809bdc8c925a37d0c0a2d8333305837bfd616bca295524e1b9bed014f01776aed32a201266d90cef029f65905bb2ae4b0ca975b95a161351504c863c0567e1ca64a631c6c97647e372c23bb7163b00136e414da8ff5155f0a898cffb7be193bba32053c52796547e1d4ba6395ce298460be8a2efa126141e7bae1a131265aceae69b20b769e3eae2ec7f7ba450539804934e8fe069ffe21e19544449e3a557e28a1371dbfa54df3e06120dd622fa7ffd527fbde6998aedf96c1a02044b5bd5b22145cfef93ab5737a4c94231c94ed79560183df01bdff61e9f54a7f57c551a0d61b84b677b061a298ffe3fb97904ff45a1f8892f7af7330df2eed657ae775288de5b02352cf261e828ad47033bddb5717ba0e0f137dc742c70415b5c6f650dd9a8e1298ab3c036c67876675d1421d4972c0c4b35196a7875bc6501668b3eebc046be7dc5a98e8a879fcc745cfe2006251c7ed368991318bca9351a4166cf2527461332518c9625d34adcdf3e1829cdcaf49766bb4333f814da9af253b4f79e5031a66c3a925c414549437b6af64b2c25f48b75dea22875e207fb95e8e37d66e2df45d86c0f0dda17cb3910c4256e4d619399f1cceb854a9dbc5688ed2cc8440c3cc0ffe64e6d15f5ffd8e3d76090daaeeabcef63f8cb2077ce0b861029a425d0d091166386f567440d75549528f4acd7c55425ea1d79c0ae5ab8c6d4ebfc9a9fc1aab929852de61a9795f98df3f22ea0d0b2e316b41f1db409da872002d74df4a0582295c6facbc8e78cc616d978be313e012faf15caa767e4da8a0e8e13e3618eaf294650c9f303bf9831e0c50684859042690c8218af1b10b42b61623ac3793895b2ed1cd5236aa6781c2cb3c01303075a87f6b37935b4923342cd85738989426f041673b8ca41cafc6ddeb3d7c7dd544092286252d12aa4e9c1251eabb187a8e8298fa8111ab3a3738662baaae0c4d1dd52d1ff49c082fe7f1b47f744c0e9ab10d443dcae44d2a6d3050042a956ca8b63e2390523909f5f0c65cd8d8fa7f06fb7b0864cf5452a8e9bed7d2cc1c3fd3f7ae5d378d3ee5c968a2855c675ee849890a172c53e931ac8257ef417302749ebcd5c51a2585687ada9a4762401748c0b9463a203b98715e9b9dec358b91e662531a871a740da1ea28a9e5f67e7cccb4c42fc8797373808bae9b7feda8c5e715b8393f3cbe4c2c3748d88fde6ebbdb441f901911b7b69c21f29d4a7b852f8b48b2dcc57d109104611574231f35e3fe29196b83c50d817ce228693f2405b34576f91663c8a5e835463c7ab6101130fe4fa6a248fefe052de83c766b84485fa8c8acc25e22a736f0db64d0a7049456382db79552d0ef4a745d038670c2ea75a1aaddc0699e16971cd8cd7cac577d8ace9f17750e1e6a08ba868d09000d9c43b0147e9d28008901c18c0ff3e08a367de6adde5d589bcba9fb12e4c88015d1b348903b5c30aeaeebeb9928cf30a57e5225021a80156cc733d7e3f9e68dedca03c7e10db7d4ba28d91b15ebaca3a9093a7fb854b82e962276e7f0f5d573a7096864fa0af324feb68ba0aa55fd1fc918780caac16345543f43452f5a4d542f2e52308b7ed192b4899620ab700602829a98592c0cd69f29081c2c607a271f4d267b95526fc772c827174a75294bee7e186ad3636367bb8becc96920a0a3f94a60590f12c8f32eec3509ee2376a865555acfc87101951cb6ca12045a8e6f1768b0c1de51a52a31e1ff090dbed50b913f92c089a406aa683478a02231c80db3b79ad383082d87fcb5753718846e81286d7619089c3d048aae37bd5b2092aada8c01ea691240807fff4a3212f16fd968c2fb9a46808cc66eb9e09f2b356f30d8bc2e9db02b28c0fb1cc88f010480581100a0a11859e090ac9b56934037c795d6067de56ba928afbb66666666bb7b65d7766d6f29a59401430b300be70c5ca6579032c542d328ea2b7b4ba651ea2bfbc4f4890f24c29265826bdb3442842e7b4397d457f66c8b594158d227a52b4ac9d3e349b589820a7d494c0ec292022db1292712db336d9e0625d943acda72a29b31d976cb6df69cb66d14a0d9d9a7b6e91624c292de9e666b14a0d9365d72d76eb76ddb76f6a6b3372474536016edec1b8d3dd12840b3335deeec4d1fe1cebddc219d86524a698b125b10eed6849d691e9a4d6f7968b639aea6699bd55e37db92c44d8199105bbd90697396b78a42690b4496cb7a5453dac31ca2aaeb66f65bb5db6bb575fba6493d9808e9b56bf786342c5a8822d9a0ba28be53d1d3e926214c47a15037654a9944134e5589a193532531e9326fdf2134bb9491325cf11c6a49023ccd06df9d6e58e925bdab1e898627e5d8a6a6f03797b56887c7b1a2b7c14f5490efa0a61fd614a0d99e3e923d53806697340fcdbe246eaba1217db363d3ec72a76e9a02349bea23a4d3bbbc0e84281a170f8dbdfd5161d5d6e84a5b5ea24d5fb345d875b3ab751c2b9d9a97e1211f4992b12f97f3df388e6347714e003e41386bb562512aacd54796978ee2fc97cc62e9f55e320bcbcb1d54f61d5676c7791bcec9c759e79c77250f67fd89593a56c242b0cc4bb89435c61f2f53628dac67ac6a93af3fb190f12c5d6e392c9b3b120e2203bd23bf94749e9347cea5b85976b25e370f1fb3e8d2dbe36a053b5699f467520c1d6feccd862568eceddb154decd74bba710d526a1062bffe3add1d26993e1446791daab4d5ec6dfb3ccfc3b89e700eedbefaccf9f925e797bfbc7078e68a733a8a716a7e79d125dd599370107c7deaf372d6e73596deaa8bee179de120f8afaf7209c7796e9dcbd8ebf4b582cd05709cca92cbb37a84353fae6d1b3f6feccf380ab9790f1bd0b041081ba4d8d0840d576c1ca474d27526bdbbeb2eee9c1e00ed89f9f0d1551f3e7cf8e88969ee21641982d02dc27d70a79c9ed535006d75c762013987df510fffea12955921d41162fce11c7c8ac23f9c338e3c4e7108bf19844c06619de6207cee7c961f07729cdad19c99fdd8073000bd03e45bf7a47020efc1f90f20991cc0619fb01f991c80265bf8f1fd22400ed34a523890ef140ee44a70fe63260608c62b9c59f4565d2c9ff8e5a5b759582164197244b80f1da4c7f55f7229ee7f954b71bb1e9365a05b5f979ed58582cef44bd7ffaf7faf6775f1d09799c932d02d005d8af01e0721d3cd91f73144c8e198e77931124820a12600db5633f134e1f52a41e6a88431c658a6ab5806bafff9e3d429518a9eecd2e76fa0b26fb0b2e79e41fb6e130e52facb59f9656aadf54e87937f3c850ce43d32eb2264ba9fe9b64fec0f8b659fe4fc93ffe33837f243e3dc08103d63d8aba7f06e62fc31af341e7566e6a9d9b3babad50a63ed388ff09901705ba44d22265222592f9d75ea93434ce40e101329dd9cf5b95f7429ee99f79cb8a49bb55597cc71ecf3dc3839064b21c76037f967cf3db791cfcfee561e0b8fafc9279c70c259783ce127e88cf16ab55ae917d6c83a4e8de54ce607e0269c2593f9263c002c168bc5da5a3887c57ad1647e09afd164f6700e7ed1656cbf8c9f67616139cb8ae5b3dab0e832b6577a1ee30de7ac56baa42ccdd27fc9e40af8f3f87393435edffed299cc7a85d7b7d7bc8477284f26d337aa8b7e72b1a7910d6f6c8a4b9a528101b9c2eb36b7d1474a7f9d5c613bb24b7809a7353532efd92b9ccb9e8ddfd52063667de21c96e3d4f1e5e333cbf852dc73fcf732be7c1ebfe811ff5f5de3b965ac0cf6f5e7b26797f0d75759e7b267d77c1342f148c2e709271c93f0318bfb8497e226e1849730913b4e20e11c099f38c809da1695f0f248c8b62800d91a657bb465fb86102179159679477ae467eee69ce4712a499e457ae348e27124718ee7796f91c7a938d5cbf2eaa75c5e29559b44443a17e7ccec74caab67b6f59269be52a8ce645ee19cd9093da92e7a5b44257cb2b7ad0ce9887ff1384e297b1cc01e6fc2bcc1f9f85b6df29caf96a7905b5afe23b790407dd03d7ebcc53963d0c6d95aa31a966bded4a3f9a2e1b445d5c63b787afb46b5319dde527979d93030309f309f931e4626d3ed5d0fccab9b725e1dcc73531f7b538728f5bcbfe432b65f3e71ce0bce61e5f26e568b6465efa4e7d9a256abd57a2793272b076dd6c95cc6b60c99f3803d1e670bd03db1cb38ce5c9a8053df95c877d42b6507ecf113638c697ec09ec7797cea5df55699e5ab1cdb33f3e4cda249a023b03ee6f284cdf24ee6177da75417bd52aa8b5e67a2403775b92eb7eda275196e97cff97dbabc1e4d1452622a7554d775a2aaa3b976d46950a95cd2ed924bdab245e56d81c9a538c201703b723ed977539f1c8425f5392a2aa27ada9bfc696fb0cb55d6943da66cd9d0bca943d9943d33a23db3a21f4052c0d93002cc13207787e5ee3bcff9c2c9dd53c840f29caf1fb97b82faa07bceedc9cb4df5884e19a3dac4b8ca974a37f6c8b674e962e9f22b5db2463a35914729a5469be620dc68891c7be6e31398bfbc2597b1ddf24ef43c2ce46729426375fa6da5b727d5356a9c33d3983ce83d4f8bb0b4696cfaf24a9172a7549b96b34e6fd3583206355a2265d35ba33784ccb74e2bd30a5c0de5e3d45197778f6f9d6222757c6acc30764a75d1d447171d64eaf1ad54b66320a91b465ba2104478dde51a478cf3096b7dfe780a2f02e4385a09ce813c05ad04ca0ece815c490afff1099b29892c1108760c4b64a7d82996a8baa8cc61c81652f88f174941cf14c1d140f47576a9b3796ab60c8c0c0c0c08e7f1895900e134dbc75c4170b97208e741f30ae113e78890eb15ae97cc617479370c0d9eb6babc3b90c76073d4640b3f0ee43b3f0e44f74019dff363e7c7811cd917fd0f1d838dba7a138fbad4497d8ea3b7a7cbb5bb94207c6216c6cfbc16d53dea595d305f3d1fc7c264d741c87526d79fec7ae5faa44631c58e516d88c67a64deee711cc72333482e69d858603146c1e28a2bb018b305e81e5f85845a2f914451855ed627fb8905ec1eb50cf44ac5028beaa2c722d32b5760f1a40ac9e0202ceb0e9bbe5ed9d489cbe9ab10b4097ae52806a3eff441c8978149bdc6fe386da5606440d033335acbe832dc303a6bac75e972f9d4b4a8baa8cb3b8b735ad7d9d44ab569699ac2cb0de765b8edcd8f97ae3dfef606c8c7ef9c53c8d38eadbbbc6bb9644a4775d1d64b5a65d32ad545df3a4e05f223b7f2dca9cc53b3c78f948e6ae3727a6ac5050ba99a1ac9ec80d2532a3f72541bca53b35b472d9cfa984b9a3d3e954b6f8f6fe59266b73e73b9a3bd95499f39fbf8f1a954464093f073cf980c738a5bdec18ce359b9a43bf5562ee96ebd1bb390b9c777d683c9ad4f8c00d6f1385ec8dca366e972fee5b13deff25466b5f2dc33b65d32126dc3e8ed093ac24bd07ef9f6c2c2f2f392d57ab961ed655db29ed02d0ce9edcfa72e43d6cfa60fbf6da32ec3cdc2f292b559feb95c2c21cbcb1e2c99fcf345dda5a5d562559b159d2fef72d5d4d8225d22d1f6eae4bb5566651450b85a1da7da224bf1c8fa8b2ef258f838b6d572562682ba8b7671c973b784d5663c3dcd21b53dbee619e89e9a0775164d66ba51632e5fb3e7b6cd398ec7b123eba9158bf5d6c7f1738e739ce31ce738c739ce718e739ce31cc739be0cc731a73eb3ea2c197a360a759ccab21b25a2b6ea12efcd9778d4167fa2e24d56d4250fcd0eafdd1675d4a74451299b91ade9cb4373a5dc31680ddd2ed1002add01896ecea9b3812a44f818f938d9ddbc598eb536b336a442b67052ed6388b0f4b6ba55aa7d0c116a74761dc54264a07784934748b76f9cde481cd5b38adb7a99ae369a65338ba522d810ce5d6e43db0ed4b0e3480d3baaec0ecc2c4b75398bc25d021f8379a1064ff58ed823eab0c3de27bec8e9a2096bfa22a212939e43b01b03f33dc541b89782cc224a84c49a240278209c1922ccf4d5b8de2abaaddacc79aa9df44ebb2118dafa4c8760ecd2506bdd403763e6bc0161fce0678829c460220ad3b5f3c8563a4517c62e67510d0bdc58c1103dc8600757a0c06241146105183934b1820c2660e524bab2abb6ab0d463a2c6972833536aac3942934a86e7c1e38a308273a88f2840f46008bed4005a80e307638e28e35c0f8c0cf181f00225cd1a08d2ea8cce0a70645183589638a9d82510a6ca0a2061a50c30ed39e464dd0d8de9e464da6ecd255c32dfb0bcd6e29a5f5deeca2aacdb6b393f691ec9b7d514dcb326bf36d8642795a8e9695745fcd93b7d5f4a42932a04b335ab3bb44966559b6915c3bfbd8c4669a965dcde33a82524a29adb5ae711fb0b3eb6ae9435a69a5f77872cdeecd6e8501cada4b42597a9158386c086ad48e3fe1add9bdd9b5b45e616712613d0d7202b469f5aabd769f11521ac7b5f7dadf105569a57267cd1cbfb56a540dcd6e761ddbd6b24292760c902e6637d37e33ad43d2344eadf728cb68ad759b635e52467a40de73cebce7f7913979f29c795f7dad0672b8d9dfcd70d3dedd48f7d9b5b50797bece239c9a1e59e6a158d53ed4348d642ba5f4def0976ab5566fda67da471361e9d55a6fb559d6f67da80521edab61983ce8671cbb0202d848b46d83b8a8255776765410379b576a08b3181811abb85c2af870a2478f9ab084aa365b966559363b13baeca5f96b24d2ec48733ecb62264c4dd348e7b87714739f38bbc6652173939e5524d58b79c12561e96d24f7a6a0b3d9d46506b4e7bdd92db39f3d9fba232c3d9e0c28039202c3be9f79c581c9b2d6b2f6a5736457bb59966131fef04c29fb66a8cd33a55415689acd260e5a36c3ca6dcf3c4da32697b76c646ca269249296691ed7be51e6dc427bbb1aec0d88ad9d96be793c14b0f39dafad74aa4b245b3b756d53fbdd28a594528d6a59b60269932869669f12e157b531ba7951e22967d39d0a01eecab2d612d55027f32609a59444497a77b32b51aa755a49d32c69821f2e954a17bd92d625d1b85277ef25b8c5f6f43cc1f64ebaa439e79ca449a243dbd3b7ba483a49a7cbb3ac58ad92f40cf396e90e7993321f961be1ec42d0913213aa6b23dd2cd3b3a6baeecd68a8d532d17573de6ca4109c5b2e5d97f55a6f596bc90ac1edda7befcd5aadc09c3c9090b690b9e9e4313fab8ea27bd50480c8aea75c2bcfd7bdf901bb9e8af3754f49b68a1b34d119487ba2400e216d7bd2b60fad9661deb1354d270f1aecb5b656284e33c75601247743e14316a1b0ec1496e91f0f969d1c026e7b705b5dc6361419c8c28a05ed2a0d0fd69c3ceeeba69bd2355ce04ed234fc7830ee3f17b684741c36189d018051bc73619cc6e10610467a85d190e990f49c01d09ee903413a77492e58ed72977ba7dd85695f25ed94d33ad545d265cfbe3a950a126e588fc411d96e39fb793191595d9b9ed545497a963d3546a2f5892e1b72c916ecf38dd4ffda37fd7c9817c987793e4c0cd59505116e38b5884a0e51366db2a7d14f143958c961caee3acda338d4656c87247ecc0bf686c43158cbe81e99cfe817e8b74d469327acc9538c264f4aa67d7dba9c544edf27c26374685fd97b785c2664c18aeb3437c3414aef5e20e95f9f305796f9cc8bc4fca595bc1e53a3e4099830977d657fe99e191d83c96892eeb82e737a19101ea37b640ec27b62ee12219c301e44382848923e87be48089ff98cee89755df52816823b994c966232597aa9a477643ea37b682ef31e111e530484932599cf5c49cc5f8fc18acc9cc7796825329fd1337f6509983015ec2bbb8e7d6538f51346537a081a0afd848950b2a38463f284e109eb3292ba398e6eee5e939fcda554dcc7f19dcb4b2de25fce429ee57be95f3e1d677a8e9463c9b4e293a467c9e9b4f4ef3bcee5ddf81ba9fb2997e1bd8b5fee4ab9fcde7dc74f9d5efa97310bf83424bbbbf0fa4ce9549764a8c94e8797e9bef30a3fa33bfaefa450ebb44e7595e157e738f19412c59ff41132fcc49663f21e47b6a85e585854a6a33e310ba6a36e4251d4bbcd2b6514ea3bd61bea53a1b852c905a55daeb22e2f6597dba9323d559dbe455b3e82426a1a3539843b3e777ca4fb48b98fe3c71c86f81f0ee938be7b132e0cdff27da2783a8527cf72fa7e327de3576f21c987796e1652cf403735bd23e115b88fd7f010fa5197dd43ea820b248d521d1ee7d3bdeffbfdb44e75dd8d4bd66978aa65f48e29e44ce3bde3d852b8bd1c558ae31ec28e636f26ac2b12739999cb7c8fe96494cc681cfbfab48c9ef6f57dc23e5dce23aa535da57b37fa416293b0a79106a8844124819c17aa2bb387b90bf6309aa497790ce642bdd63197f94ecc65740f14fc1eb274994f588c26e9673e6158efbc1ef318dd439634d982eb322fe28a39085722f32220dc759756127310f4612f4d52fd19d7675e2f32f3d75f5a894bcfe8098bc13a3c73d78bccb84238fe7459f7f7d367b2eb954328bda4c9d2775c9ff94e087f916449e353f0df111408de95671e427e7d3319c581af99245b787de6455e2f727a7af7ba4f477da727f14beffecae43793c98fc40f61c6f599170941bfeed233e24f474cff16c54f2cc37ee5993cad29cb7087a863a8ae0c26bb40a8986a24d5957da64939e5d89f2e63fba333a7dff0e967f033ac75ec97b9534f7b74d299494a29a5b4a361974e734c96c9df6334893ff318ecd3329ac49a6c41e631df9179ccf163740f14ac77623ea37b70ec0b3f66ca785a0279c2b897380d034c9e309d274ce68cf038f67e31b282f0c48f6acb19b7962e6fab45a4d225cf8a35ae7296ddd24710e1f6fb18118425b5c1be57a9b256eb3d2d7f4befb8bce52dbac7a5a59fa7bd78b3377f8ec15a720cd6eae1626d5b8b8bce7a68bd3deb1a27bbabdef384b5ccb09c43db55996eab6fac55ee2645c28a1a60a081831c1b07d18e7a97a954ddea35f6c6e52ad571ec8dea2eb9663c495e7fc2fef29bb2909a6ca1e5f9457ead95b8fccf5a09941d97ff4a5ede925fd6ec9c71ec2bfb738d7d6577c935f6a57a4bceca1e5bc53a6db54e552dd5765626a5b2d8b698f58e95339ca37a37716b5a5579327b26b397d4c94a93990e4209004608bea44e7ab8fce6dfd3a36a1344a3541bd52feb2fbf355976b943f6f5dc925b79861a04e3b7aecaadaf72d9b3572d9a7567b19eecd6b35cd23fd91df55427552d1f575a67c9cb5d4eaa34d942cbff9d965ff74059bde74593aac7602d7aa5af7b5c34a9d2d449cb63b016add2040823d4cf8ff97ba0ecfc2fef81b2d3f2bf07ca0ecc5beea27ba0ecb83c46f718b1af7b97bfe81e283b2f77d13d30e8b7dcc394d4c9cb39e5e5a4f20973d1aecdbad735f6c5fa84b5e84f2b2d4cd8129d358ded49c47a8b75d27655e6be52e9b267abbe75359bf6f85bdef29259b012bedce53906c3c16877d57bc931984b8ec19e29ec45d3bbe8695f76e28dbb2a774769d4716c49df2829165468df87b974ed2feb5cf6ecae74c921d946abb4eaaa882ebca2de50a0faa24fea2b8ba11222a9a955d3c4e0aaaeccdafb9aeaca50b4a88646a3285aa7d47c67cb116159af69ea24056129816a4332c22911d2ddbdb4bb6f198a9693baeaddb47c5a51fcbde32d8be9e4592c9a53ddad142b39a85076fa24a3a55a5fc244ec29eab7bcda3712eaa59b7e2a79345f13fdd508f8f14af694be8459d05e4f4450274f7a080af53b3709a5b5ab51ffcedd73a6db5c5aab2b11d3af3e62fa491f595d23a9dba4e915ba95bed5c5a24bb21e9f6216aa6e7d6216546f5d954b1a76abb65ad7b6d6adaa75fcad755b4fb52ef191d8ddfac441ba97d78e2d3d1e8fb7797c7d9891d06d85843e9408a9e9549343aedd8b55bcf8a350daa986baa976179950d9ac6b99b65aa7a74ea8abbebaf693e9a8efac2c03e98e0da3f2dc2b959e81ee7ad33b3ca4ee7a125ea1bb780d0fa91775994f4448daac41aa3e5dcba9d3ac1d95cbbb51f7f0107a2df52ca5677595605735add3f4933e72df5d8b2f89e12efdcb654f0ef686a44a99664aa85300150eb0e32389f0754ffa0685cb033f15a83aa94153a610151d51a9a239d9dacbec12d120fa840ad1287468a240513e3b3bcaa8d89b184c7b29c76059159b59d1ae69d77e260a7403ba15c607dbbce6388ee338aeebba2e0664822c6810841955aa90c30c510b5b835dbf9debd2c0e10bd309b6235843a42cba2d34171a537665d5d7d46fafcfcef8b8b82a38ba92850cae40811443f8e049a967d4db2ebe2e6ad7755d97ebaf17bbbe667bed616349aeaeebb4a7a36cba6419b149baacd1b4d5a5cb8a6ddaf593c583ee858990ebeebbfb262ed09c9966bb997dd6fbd0b63179dcdb6cdda023dc0bf40b749ddca0fbe40add2856c80ad92876c84eb14495a8161d51a962a506d5a0fa4428cad0948942d52f4f84f5d61e4d1e2f4e84f6e1e451e5c8a78a95ea537f2a507532e473343485a8e8880a05a240319850941760882109f5a13f654d4d0f1c15748ca8604678efdd42d65d13059f18ecde02d99b39e4c406d99b0bbbb74f260af40e957e28f99413050a03f551f2d955856a6967bd67f5c606f964718415d8bc0af6ae1a4e973d864c1fdca7187b9e56315128e939799414885dcf690a3447a8df48b30346f48803cc1b1ac47c55eac30b10210c1a156beb29ce21e18ad06a28c89d1eef4a6ce8ee69b208be87351412e6e910eb749a0ed12954a8de09515011096b84240e741540b26da19ddd250461926a23dee8d457666fba67a56f5e88b262b37935449e0e6744fbf6221aa795702f5125a46b5afb84b16e332b3a4b48e75eb18ef6162042d2b96bdf5ef21e9bd7258da2773c2a645f5d0e22e71372eedcf38e7597c1bc24f69555803579d06fde6db6e3e98df4f4665ff655b74d08dd5cee615ff37368866dcb40bac30e1ffdd2813d71022a4cd33542b46e1dd052b3dbf3d6eefacd106efa9a0efcac00921067875067c977904e1f15206d2465dd3e7b9e9481deb1b9cf347068c19e69fc04ed8a8590a4d32f3695b27190ba495a0612741086d30704e608dab59be6d6ca9983adbdd45ba3c1d65e8e2f4c1eda4b7022bc616f3eec595d76840a439517aa4b7b38443877dd737f075f75967c9aa4da479d3c0623e94392ea53daa3fdd330d89776507bc1beb4eb24c270f2b817278f7b4fd3ec6d3c4162b7f66ce389cff431c3b6b7d34dbf3051c2a8b37dbe66db5e37e99bd6a9ae0a18a92eba03d046a86df645354dd30e83f68e96f67c8d082f08eb357d840a6575a3328fb040a2dacca32cae6c7bcd487b8324b4edbde9def1bb1731ddfbbbd84e7df7fb4ef740f1744f4f2c86219d17aae00c1d89ef7ef58ed773baf718ac9c55c87b2fd7772ff2ddd34abc7feff47725e4d555364c7c4d787a89ba27bcee99fade6bd8e9ee74af8877baf7092b6b5c080f9257cce4d55e4ebdcb28ba9d0a917c36dd43838084824814489542d19202ad82581f1f83b53e61a89754885eecee751fea81424f27dd433bdd4387baa18ec8a3a7a3e897c9ec2632d3640bf8f5454c1c99699d25db4b38953c52230a3a7610e4e303fb8e3a941d934fd00e3e4af754ac6b1010ae4041d6e7a88acfd198b522cbcab33baa55bc4f98f7d2faa85e89a0ec98f04dc73f29c0503bdf7793d63d2a5d87887aaa90c681c25075487c5985b2c760a55634747aa6156954ec0b9fc230941df11fd0b6bf16c88a4141b6eb8294789adc090f769a2c121e2475ba2760c23a3db4ed8b6856364083249298e2e303b33d3f15e69d86eea026efbf83f62cfc209c3022a2218b850e2120838c373cad8406ed33c41e5992d4b93e3b50607d7d6cb7a7843f960ced29c62e6f50770aeb6c157b046a72e7b60a5984c2bc5398f7695f17e8fa6c4bee78d7e4d53a5ad1517981b6bd4844f85d9280b63d29c8de4c2e8008811763bc80052cb802664f7a626f621b20a38d1f6cd0830d8cb002b32701919c785668da1779f59d525dd6bebc45db3efb212cafd015b22f7b2edf21fbb2df36d215daf60408239cb0120c565e2192d09e3034a062b7aeeae8eeda604d0e61b991ac7752c51863dc91ce918e63377ac791177524e1812a4e00240407a81c01c1a4890e4650f0f0022b60ece0a82505952f760025080c108cc106113edc21041456f4a063630c1094f11d598e8d5df6a045a56bd71a1dec389a29da20183ba0210f6b67d906c22cb3944967adb596c2b63064b1eeb235650fabab07ecbbcdde9cae99506df035eda1bd515debe655084316abeb7a6ceedbbddb2c7b97ed8017dadb53291513938e05ededaaec3b9d8949cf18d0de2e3eb655d81b29db9772385d83b309d5d5e9b266df8c0b553795a77ddd9a775d0e8f3a13f0a653d477c2a33e71673aea3baaa74c28cd446564dfa774685fb7d3a488d23826b15d5ed3a50aa02e79787a6c31af9280f00147b527d9d6b7d44da88f57adaec2f78effbdc359fc97a75d514a29a594522a7e6aef5808debeeddbbeedfb6a6af6a7c910d4f8db56a36baa6b769bde69d12c5ba677b05861685f73bb66d272169cb78bb9045f8f7a88f3863ac6ff7e3d153e8cf1865fba3009ded32529840475107ac7c65a067a870a1b677208787c520888bdcf1ddbb4c32e3f0bf887df6901cfa2c3e34cef38e1932e8dec79166d647b98453369d1a02e55d81e780d752f97186b9e1e77d347500ff591d5379e1e25d63c3d364a7fbae4e9b157af5bead9375d8e9885a94d9f9885d44dcf250ddb346fdab209fff34cdfe6f1bf942e95904cdfe6b1a7cbcc64bfcfaf65d2ad67b5f52db7b6b97dffbe0f0efcee74de7e4e6c3debe93256f6d8df672e5560a950e4a842993e2da9c3d6eafb425dd6ecefa02e6bbe6fe692a78787313e4997a5639cbd8a59a8dfbf779f8661b9fe4ecb615e72d63f139717edc202935bae338b57b12e294bd66fc9307fce77c92f9fb9ecb1823ecb99c0bc459fe52eff775c7e17cd4446c7cc4f93640b7ffe8ecb5f7e262e87b1ddf1105b7747f10a35d5d57d56d78cb13c9f49cb5f589ebfc3b2d3f2177dfbeafef2fc1d98eb173dad9ef6c5044687f6d55debee31926c21ff4fc0842d6192afbb337971d13decab7b6c7767c996a7473d8e5561d75b9e1e7b064ad6960f5d96ddfa5b45a822a45bbc9af2606640e78d17a45183a23188a0803d3182319860a38c238ad6608de1d303202a5648b185cb950ef8b4e04748892b5224b14489323c60850d1f68e38d13586154c40c98686309231008618443076a986207645051032eaed8410724c8a18729aa88e5a0821980c1840da0f8e203b12035da70028e1e9880081f3a35a69513f8f033c4441c2ba062890bee077c94200ae2420a0d342b80d8c20728a00485e00d21847cc821a50b2fa690820b21603d000309203886dcb0814a0b624dc4f8c10b9f246e48038810c4b4a8e24a175ce040074c6c41051143381871e5043928228a0e3110e38d3a84e8e28822129ae8c150183d00614613d60b2a4258a20a0b7e70a50b388450010c1410e950823ae038a34b430b1bc451032adee040143fb065cc33ca40238b253e40c6175c08d1a1c50f7630c1c1184d6e5074c492376c20c7113fa8c202277090022b591ce5a00225103054c4096ed0440c5cf002938f1c56f8408e267410018362065cb011040a868058c18c1c4e9881841a1fb0411c5b163ed8e00b344830871856980845c00376ec00022baa30a902e3820e389898f284086a30061a311d84e08014373440461726102ac2e4091b6ef4104414528454231082064dc8c8c1111f6880153e50a38c328cdc20e30c1704b18311680499f1c5131b0f13d062871aca18c10d5c90c614394561ec60540230943803567d5087d00f5570808a199831a518c1851b2488a2032b2660f202a039848068c10f82901092000a6010861c31a0a28991112ca041184900c1c4052a5040133708a20d336ab0411443cca1851b508ea0c3893882846288c3061b6ee0030ca4dc000720b240c38ca13b70208280cf14409cd10229da70c3071c90008c17d4c1831ec0f0c1142af4a00925d600410e2e10810fb618220755a8bca087321670c58e2a2c20e3071eb8c209134864e102200d3459a28aa90223ae5851c30f6ef841288d20cc18c11a4641c84006570e0be45007135f14d1e04a09b62bea10a3871048c18309b0b0828a201610c1c61c4ed4600661c0ba90a3035984c1431d74b0d191111b02051b7862440e5a4003293630431d40703c61b4c5105a504103d016626cf1930335c08091200c1fe620e306307820a34b819da2035df4b0861762fcb01d214612433858d16408288e3ac50611689c964d3a458aae8897175290200b2e94205ae28620e673f446940f3491830e57c4a290028c25aee800c40e3cc080022998ec4007275396e881e5c1f2908901e587316ce0618e38660a660aa450e20714ace08734d4a897417bbddaa6e5d89bf9a24fe1a88cbc4b1b9bc9e3e847b56969b32949b529eb289c2f914ab9dc3621938ea07dd21148af3867873d9f2580fad8172aef3b4b34b3a1a324d8b3e65327f765ad5bec23b514c07567eda965c12066a9ada20a4d739c8f1f14d1023574a0c60f41c8a0451a3e4811411c2868630c31cc082323d29bb8a7910e3c4cc92829ef9bf3f7916c66b56271c4d56f6168c17dc16d53d49724441046140f0031831c788c08430501539ae030ebe33def135162ea624c0cf75d54b16e62a5182086e1455d8a0c60c016592916eb267d0415b3b98b319b8563360a853bcf5b755f75ab6eb55aadbad56a258aad956eb55a4dc46c13035220c8c2b245567589e0a7ea2b552a8b3126518cd9a249146362a63020e633e862d82417b69b6597bb2f5cadd21fd89b3161ba89752c1e735c06c3f022f81df4bc73dcb781dc890b3b9274617c2b3cb833824962d8e0a9fb0e76fa88ea9f3e228607559a1343d18431b85aadc25516a6bc873ae575298ecb50e1411004419089700b4f1f869bf7cddeb46cc27ff67e175b794372412f9f72f9c23e854fbd95a74d9516989feae1574f5d9563d8a1eaad9c64a77479fa4819c9dddb77b7a84b24377321fcc670a7f5514ffb0ac396467277174376ab6c245655bf2f62368985f46ef33c524632e26192ed4a2c3b3b3662a4546d0e8236ae1bc1ec719cb5d65a6badb5dee9de354c8488e9200882e0f7dd3b8812bfcc851c187adff77d6178cffb6764879fdbc8f638d549754e1f5179aeadd260ab1bb3548631c641200892200882de49f43c97e8792ed72432e2aaf9a86cdbb6dd2456a3740d254c38f51dcc612ad4a50cdb9e81a5d3068885f7be5c8af81ffe0c10db5da739117f18ffd34752224ea54c2693c96432994c2693122db085c36d0341516c81add63fd35b39c92ec5cfb9c58cc4eeed843a6ddbb6459328aa2a4e83b52d773518ee9661e061c1c0c3aa4f1c09d4393c7e75958a3bddcbe0e6a1c0d3c19088e9e243cf133d71bc693c4ee5c2d3b987b9846187d734693ac799f410f1830106f11b4f3cacfd1d1cffe923e34daccdb1f6c84aa95420984aa5bc54e67929efa08742a1509ee7799e87c4b66ddbb66ddb06c30dcb4f2c79da97279eccd37aa0e7b13ed1f358db133d8f555dac1a1858c74bd474d386966537233b737db7dab792c51b47b2467676574cc855d3554b478d11dd3954eaf8ab15f8309beee58fa57d33bc6c13c8e3f2388ff3388fd3a4f83dbcc771290ee4c073b934b2b92f0cb9f0fbe7128decefa5910d1e0cb9d4c15c823771ff52e7f491d4457d84758ec7c5e3da294f973caecd62b5f06ae5a15057a1542814ea0b519f0a850a51dfd7a174d775dff77ddf6784e7815ff67269647b5eeb9bbd19af62a958db3bcab46d360c2d8b65ffef63c6b15fc9e30a4110fca63ff0b3a12e5d1b045d465c7b065a134788daf7ddad3659462a896cd2b573a46ccbb7beb24f4c846767d778503ca8b086e164db56e73af1e1394e143f6e1e4a753075f01a26223e2472bae9e1b95ca236c771293de4a44ddc77552e4ddfe9133f8e6787d7300b5c187ed61bf27451972411d33ff1a0498b9f9bc7f489b91445cd83dadfa78f783fe923230f6a8b3ca8ed694e973ca83d8a634bd4250b6310ecbaee1d7d27a2baaebbd89d13bbee5c0772ab4eafb8bc124551149d6cdbb66ddbb66da892677f20186e5124af1275ea649ef595d2a577d371ac29cf7f3ca8139d2651345dcc256a8b26514455173e4ee5414dd49e81b22a9ea2cb7eb21daa0de9991e89941910376ebacc40959d653b5457f69f4d24bb965de06897f33c1990939b6dc0f412eaa7d557adab9e623d553a189eb2e4b0dfa6b5254f06a481e03f1d7ae2d77af7953eefb7e43d3c98c94efc57eaf410f14b92812a3b3c588a5f0b7fad4e1f61bdc493016db0a56775adee69166b855285210af5d351a8523e7d2554e90b4b2693e938b5944d1bc0af21c7711ce88940dbbbe5c980be7c392e032a39e1c98076a7b94ff04906aaecf99b01ed196806e469717b6e4f4d52c7d0481c573aa96221dd46ca65128e2464fb86c472b4f6606f16c4d69d564fa53ad01b62baa7cb1a86a138645617280ef93a2dde94cbeef31f98459418fe9a9284e03b31e7741733a78f20b1db02741f413264565790efe2bd7794c8a7c5b21351268f08eaeb4054885329cf6301ff749c8a4f1e3dddda1d625d2ac9300b759fcee5bac1ece49db4ead9c4a9de0dc2f34eefe9b274a4fb469f65ef40107f8abaac5e06419349fce9a87f9f3e882fe6b9c1d449cc73a34eb3da6943cff4cee22142c08bc7a9a68a8780a76158f190507b5f0db66bef8824d9dab35b4f489224ab54053f784992fc105ab16dbb845426d944b29bed354ddf13ee676663b0b7d218d89bf9d09d8e4d5f1d85f20ebef372ea600e5b61e811f93c1ceb7d9f375df47267f2bc8349b61792e2f78e7bf885ef92ecf05ef95deb4ca9f0b7d3474c17f591d6b9d004b64ecf50a830d4f8747cc2e109632e63ef203e079e303e17dec321d6aa671cf830d4e5c3f0252ee44ae706e003b81d6f5d1776d5f33eab2e411087dd510763d85e2a555a807ea2a8cb6d3cf8e97dcc3816ccf8df6733fa6dd36517e6effb0e66f15e2eb7ed815edd5e2ebd93fe3dc4a9531fe93cbd9572b84b549924bb5636926a57159f60bb41d5979d5e756d9b176e7fc9fbcdddfdc444b6e393dbb116c21debd9e919e8f64ab6a35e774b9ac5c2b29dfb6571f621d4115eab59aa6bd3f3577ba8facca89bb5a337e8dc6d0bc339ebcdadafc1d132ea4da193ea549bcffb09e9f7ef67df533b9cecef3bb990baea3babb3740f94ef2badd23da8a7740cf6e972123dd913e794a246525ddb2682e0c330fcbeef42e6fe7eb7f8d3c904fe64022f72dcf7dd275be961ed1dc792f2355b431363c5ba3131c6b305c2694444d116bb28432322b0d8d3888828f67c124644009dd208c8417d8cda58020da3228c86ae70d74e1e4560717db69111467b9e9b284c149ab491820e589a4d227531f3b591f6f43e5da477d57a2fc03051c83e7bdc601d36f6fd978bcc172b8e9811db2660ba580059f0019c61f375efe530ae19526c4bc27cdd9750d877a220a6c5b6a7a44c0760f2b824ec8b806dc33024c26d99b52b8031e17c91de51d2b91cc3bea8faaa1715c211dad37b304c14b64aab564964047524083737c28d0665dd1b56e812ea844a9517a84f90360511f54121e00e266eccc00833ec60830a0db4a08e348c6e2082071d0cae646578a0869bdbb180dbb64b895dff0214a43d8d7820e2cad1bd56239190a88209942f7a3063093bb65081d10e5684c10137489069f1528209d818c3071cde30c28b359a74e1c30d47741cd1b5b1464705350209e8308117514cc1010a112a5ff490c5123828c10b6c1d4f9c2895f1648a520d1a17a620098e6aaeec31a514ed5aba6a769d32894838473cf0d00911c510a91baa241e6ce8b83d8d76a8630e123984b4e7497b927c506dbbd76a2412143778080a81153f356c518719529c6102233578b8e1280c1f8e52e085818318905a4022830347a4ed5aa31d844843ae3d8d76f8d93e9b133dc008cb70e27433a6dc80b6f64e686bcf84a20c4d21ca7c329f9f0c2873920551a31e8e766b4f231c86b60ba0b0b259f674c11372ec7b27f5f1f9ecf9aa2db93bdc1f6be5fad82b5bd3b25bb3aa49d0414865fac8da9819cd72d083ad6534c04176d46d5e4e76a5bab46b4b349fad6556348ef4f95005a47ccda02368ef38afe220dc0db2546e90bd21754adaef930bc6b4b9454c9790bd994351eed09d7291d89a768ffedd7b3c564fe8bdf418ec35f8e1133061a1eec1655893c126cc748da4d7b12fedb10aec94dee99e928e699ad4e94eee84a75398a7a15000e6bda4f36d38e76a45d5a6dc7e322a9748fb45437b76a43d7b43bb445996654bbceda7da4ca31eb4d8dab71daacd0b999dfae0973eb10efeed4ed9c7d3f134b9d3fd9463b030c760370fa1e44ee9f8a5634dc239744e6abfed558cd0ee0a07d1143ebb0ef9f8ec2e93ac6c3e5bcbee252a7d765d492b29859aa44ac2a353a63eb98630d46146056747a68baf2fb3239d25264d52512b759a13fbc2a95d57cada0f491f6a405beb1eea1e2b1995ac945d39aa4b3b1d57bbf7a8bab44aefebce2e95ad95f78dadd9ec888e30838902d5991b393a3a8970033fac3d9d1d45b151ecd01c82d9a2a3898290ba5f9e08ef4959db165fa2c943fb8b1361f64d9797c8fe5827a56bb748d49b8c8e6aa9d89b92ce8e686862626a7654da9fad6555aa4bfb0b1161e93aaa4564a76711955aa55ab13ea59ed24b1a4321291015a2bab47b74a95ca25b549fd42755a846a943754a25b262a5fad4a3b3a8f4ebd6f4999c640ca21101020002c314003020140c074462c1682c0b5565320f14800e88ae4c6e489689a31c884114320619430c028000011010989119ac23004970526e5a917d906bd9acde87dd385688d0b6085a4f48c41a1655912922f7a8a60f38349b4b5ac71aaf4373a2fe441e00ec26eefa94ea469b23533774553821dafb95370ad6c0b091cf26be7a08ce1ac96107a6dd44e0144206691189ac21127e78bc9018dfb478aca590cf1a5f8410131adc6dd022a7aaa2c14a51bb521b1eb0360a520b9616448826d2c024b259ddf229000d76d3336ffbe3d479fb32cb49c2cad439283fd0aa034fefd251be0b5d65610c7e41341aca9e04d261e50d6289529396d0175ba31049f45b217dca0c09e12e90ecd40a7dbcaaa1ab570acd11398148553383a2cf580d14c08ab519c26b4c6299822f656555af9080f30cf6d63a595f58d79c19bebd0f3792293e4031a6271767daa2984a1e7325ac11f67234f1d52689a8c267d3e75f6a78edf2c1cd90a4efe3218bb24b6af6378550feae079d09d115a3d5b256387c10305a8e8368f41999d98bbb0110948205428dd29d0a5b571fbb5809766bcf79072b5f56b137afbb48f96163b359dd3ca72343446f59042d8cf3122bd8a45d361431fe64984d3f451c63b4158acf92617687941c9ede8f82cc9effbd701a2aba068ae8846b3a0cd331d6ac516d8588615e22825d3635fbf92b74c5636bb7aa2e0f0a1cdff8b11bcab63e3490490950948a153a7321b3f3eefa38429216b98e2650a9b105a93ae2815623bc3d395acdf044dd5fa1abefc293925245f9ac4d3e243305084625c1b3d3c68eb2847433e5d64b08d50ddb9b25b3ac73e374e329a40d653bfcf199a8c12f256f68a42ec2f770e95f69aefd842ea4aedeab2b427034043f2305a082a512172073209d220e8f2e979a12031e38439684c0250950525228988b766a9248b99fe8024608301999f48324d1b03a8aa2354145387551742ceebc8048056a356fe1e822e4fb94a21cf513f32d210b019c11cd46e03a77709b0fba6a5a0e5196db2d906191ee86c085b032d27c8d3facf17675248893b966279b2fd98769960f121977f830386e17ae97a9662912b36811658fde6a9cc4d12e314706f3858bc2e1db9a41d82947b3fcf9761333c7f42f401542e709001f9b715c4788d8f4c201a9dd614c4aa4d0daba79556ac2045c47843c5140ffa4014b9b47c7b4adb425e6c8de44c017eac020af93f504b13913efbda523e415f42de0d1725cf504c73282e1214b4660e5d86d62bf0130f80de103b03d8ef8fb40091f7f9a2f3c020e896f1f2016e30936c06079857a0ea92be328ddffceca7f726aa9409577be00ab7a9021e7887ce60591a1811aa00e0097be7174c37b68d3b99768c65126d95d06a3a84544cfde0b6394d3f03d004ac719653bbfde53ed80b820c671c4de17c4918cfefb893fd102c463e76f07fa9b0f43e089838a98dee87f0b07cbfc874f9773c300923d0026c689f571287ec1d8ffc8507516771108cf48845450cf4627816b4f38d05bb963373288c9a7f57e2f1a4151bd18f9938d2c90eeefb8edcc6417a654beb2dcb8aa9cf697234fa61c6e996b6a1884fff346008238d904a31c19b8e08fd3a894ad81566e45e449d868d4c6b93af80bd8d80d238b8e6df299603f12dcf8658fa31aa9238c640068cd044c3cdf634cfec93eff8944b50da58f8563591298cc836a2447efd22494c86eaad92380dff2e1fb04f348273632ea488aa0856c0f07ad1108f246089a10fab167569cab5eb7fc3e5f156e2b852bf438c9e3f295ddd6b15420f7ad58f7d3d4e4482601a9a5c6f17d55f3bc4915580840a2207432c261eafc80d3ba021692f34d4e8e1c966720d69b18e284f990caa32bce1d7b16a4828f136ae49768ff09542823db9ab748ae0d857172f912211bd818619817b3581a3afe2017e370682982c2b99c50e16727885d20428c4b8df05c0515d943d2c288de589bc00ba4459917a853110f7380b440a25629dad989874208471e858a08910db15765da584b6a2a5186b5bf88ceb2b74066a870b8886a0b42fb9822f170f97e3854942d99c4e2a453b3310c40556de9d2a0088c73d852c891018eb21cb93fa8bb041c467f1e212827859a6a59c3c92a8d41948dccb805ac6931852a2afbca0efad0165ba71429fa250d3d6a0e49de2be08effcb8b695868a37351eebb4d522e2c57c357305e10a51c5e05862a7cbc95e835affcfe45f6d3c7dc3d46f02fc24cb6ed6c2b036f66d9bd08814823130b8e20bbeb45e46d3f414955c7466b84d0a7e8dd29a14a335dee1ce95d448f96eaa045eeb6bcf6f262445123d4a4a5025329f90c4654cbbcab326be1a87d177d8ba479205cac9f63a6ad8425b16ed17af35c483ae3b4d82f77a3f48f1c04563993c0e1b21400c712b58f720b16dbc5a8e85335d01d4fd410a282fb81a2f14b20e7a0d2336782d9b8475918e364468a45946532655f1a65a1695724319500c2098f29024210991174237006db4c08d25300383fc32d0c6e739a79fe6b6f960bbe1f6a6f8be19941b52c179d1f812480a13beccab7ac8750eff7fe3f76841b3d246612c157c8c1ae451532307937b4b927a544c2a093fc06d5b71d781ad98b69b4bc70867ac36f51bf7c729e8b53050390488cefb816977e409c4c7048cc09f5d03d8e06e273d38f5689ecb753e37a4ab2da1c5a22e67bbf28546cdf258f07bd8b2ad9c4f294a84db0aa8a66005f29243838dc7a17197af74d9585f0c7214e2905608f2e223e40c22d1d9413e3238a4a66304abd332071c1113177aafb9c2c8648db531f81d92419bf7e24d8ff10bf1000429f2c2a564d00405d3600bd2381dd5cf4f6e9404211997b9d93cdd576d3741b969243722b2000cdceb1cbcebb8492ee8a72ecce62b526c7c6c953754327a5ca15d306cc0db265381e64646e1d4981d96ad9a4a406a1c79acf747e02f6bc797af6cd93fd781731d9af9c8a3d2f79f7cee3c32e4931c442d1e0703512e32a9287dc896a25d88a30e98e9a9ddc1d4eee5d10f9ada526aa949497b97e03d5d27f883c2df53fbff5529ca08a7eebb307198920036e323b031811f45b956d81cde3ca0698a5d31bfe64e0e1c3f406c08e63d5cba6dfccb38a1056ed835d9ee9d310708b5d8060eff711f80a717ac3a045c5bca637ace70102021599e487b95c9ff70e60887eca02923b2fa52a2d84020844002dab350d1a1881f10e5b5e9e05bf3ce08110088fc71d58a559ff8689b61121ed522030fc121a884c5b14e9623a2694c6a28834f42c3d81c3873a8da9ea0188ac6811fa2a91344c3091529b8941c675424bc07c022eca7e1e7892f615210360d7d9c8ef7e54024b83aa05d47aa581e9b00560bcab8f885331165a51a1f70305d06d0d281922629d3433dd7757bae8dbfc3b0d04fa9c458abf7a32c8d97b29be0e5012aa5bced9ed216c727e6a748837b67dc844ce5868fbd4b0471df1880d0a0a05532b0aa79bdf6150d2b57e44687acb2bc7c88aeb2e10e014fd6079a50541307506e8285a08fad9515138ce3797b90a90925aedbe284391723c07ad936578c7d5a3270d62649cb5261c0642dde4ad1c881ff942c78a7c5af27d2f730080a59bd678004c1b9126447c3f7b5b4481f4c299e838507c21a23032c44e2d9d304461709b7b02b98416408b38283b01304a2521668429c4fd50f8f0c972b22afcec9ea4179115eb32022b163c91c38a2b43a03f3df74301f8733d2db3629a030a276eb4d55e2d42d0016d322fef8d1e0af7a727e0e4c1c478f0bf19cc8c021c4a858d2c0985bf509cd32d0734ce6553a0061adcf163b4f3b0426a24052b3fc441a36a8884d8e15e19cf773e44fd5071f030866fab42e45b1821e68ec38be34a417200f139a6a0319c4f10bd98058742b852189c0c6a2ee51f1caaf08fe4791c84140dd21139a8a0725ab6ec0b8e53c55f3c09297970f1fa8989c202586a7cd4f93001d4065300c1fec1cda95067c8bb8b244395f3ef8712a521b7305e090236426a9d91bf613441d8fe0f2a3b1c5b010fa50192ca7318a1ff33c85478ed63ba9ac2680014cdef6da1b22cc95d615801ff0e9c5bc81b0b7d86e284fcc72a62832d42aac6fd010ff9a39070f902d82200a3aa93437c64e91bab9abccc35a2d7b0b08e01a05cf34647c93e83c7b313e9d41042a327acba81e3ec9d45d1b91a5d01ab5a424d982ea6ed33a0fe28d693c04d73e80514ee8e57c8d9c7881f0d48f8e312d91441ec1095ae182ad16f03dc8dd786326ca638717af55968181f6008270c1964d65c39f851967bbb3740cecf7e6fa3768091fbe6821667cf2b69fbf714a8c17e8b97f653fd87716667d7b9203abb99b48d835142cb42ac875785d8057e82b670a91741ce746cf631dcd365db3d0b0c27680bd5e7b8613ae49a8867e5d8ceacecef07c89dfdc24fefac8910b5d8332708dac27b6f04e01261c7958b4d9a7c3728abe4003e6787717ca7ab3069d83cc0a334b3e6e0cfd3e66902c03af15bfbcebd7e0d9cb17957b656781213924a5d4da7799bbeccabf6790312fe58e3bce458d1c2f9a0c81df3641c9f08de729f41dc89b1127aa8d0c211c7740080dde3736f55285788b67547c41c631ed675ac48076ff50299afbe7e45cd8cba7d685c41612bb7ca419fbb3f778d79325a2123ad74712402bfd19a47afbc8ab97a9102958c58e096af84dacd2bf795188582cffd15ec9e4bd4166f7ecdc44ea1cfaae13a44ac80a700bcb1d703a7d774c27cc0b023bc6266d27aa2a7e0f7fd00c1c57b4867aeca6126d015a5010f59b0dc7b31b36931cf3a5a731961af709d7df2ced31c00f67b686f3edee0519187c4ae68013818dd1c75c76f5227503a006a11760d22610707ada075dcb0aa6344f302fba5cb0c61a51013eede245e7232e8037e64e11dbc76a2108098602125a458db02910929d2d8269b926e14f7131c4200a83250234886dfdd284a914e3b9830ad880c3fe1f0822c0c1e0a419f841e4cc8203295e1df73121d4c382de1af064c6c0f26082e3dfda56d545566615de861c48f64f4060a3e5532cb0f26dcc2568c19bdde933658c5a92aa3f761fbabc9f91fc8e4e1b9c627f65f50182765f8770597a56f3a9820711f27b0293a007c788b2cd1d698f8add32db7e403e350cde3c1cd42861f32e5210338d3817c30816c8e948b80c4686db122168336052a5e4412012d3a3a9840df624724631757f48c7e92b1b47a41c458c84a2fa77381cc1b8f688df95f9b977228de6eca9400b92bd33997e1c78db2c22db01087a6741642520d9b922bdc5f00470ed1b115f1d2dfcb42d8dd6af8c5a97dbf1a0eff3b28df574e4e106acbfc0a20c726096bc89b71b809acce63b028289fa18009b9fc8921f57fe3875430c178a14f5ccf1813e0eeaf42df61d29e35a7703b090e01a6674dccaf7583fc1486125663855af965554107d82a608a8e9b429d5b78d248e371df1a5c5970f8658a2355bb11e8eaaeb3bfd6b8ea54beba07376b6f3d110480377f7e115f729ddb9b67587ced4c667936d7e899e83c2a89e8c5f632f1e71fdcd584292f7210513c3e639697eda3a0b3c6f0b7b045585e7e100b7c1b4c4e5660af38d9e76169a8d796a143dbd04d6103615de49e7a75f2d4a8a084e9489382872fa92baca72529917e1663334715ddfb349243c518b264c46e3be8bc3694d5053965a8f106ce33b37a1ca1a11aa608ad8a62a01fb9d57b10b70e7f77db2e55a4c30f8ca427ea6e0b54e6472c134b226a540fd6eb2539582bf101b82e32fb25fa8d58fccc5d8e26ac11a839ef00e26aa096938d2b78d5fea7e644dd933114d04cb898edd5046cf220186af8cfc765f7dcf1728f6971ac78e42a3c77e4085100e500698bf42fbab43322b059e2dcba5f71d620607ca5c7d573896c6c07249103c1ce51d3c131db3249b1ba45133b8df68f5340280aa2b24872e31e5510a59e75664223968c649407f160f78a868dda3bac4340c3640f89e45cde9a8b8738014bda4118beda4d6c20f5c5efd51e0a62a7e741819f6e15527e9ac765f1b0f9c188f474a512c7a370b5530eac3384124ad24b2121eb434837030111457339bbb993eb12599a59965cb09ff3bdbf4c5e8eeb23f03060ba182a5327e0a8cb3f0bb06f546dc5c791acbcf2a25a478c873a7f8e0176a5a906b9327e69a9b9895f0ef6ded271fa4f6009f223f2b6b19af8f72f42a54ed88af0fc89ba5a5bbc9eda3f2a6007b9c8eccdd957de088df922e3c85454b617d38638a831e6b74b74a066685411ee128ac4631bb65715e2c3e93e106b4b5aa6be4994545430824e9c2cfc38a815e56e4b30f508d9874b69e053457d9291e3bab33df665a1f7a11e37154cc1ab5a589d378c5d074a35dbd094de2a83f3282378f92e1ba7b4e48db74ac9c0f5bcabf4ed575999c06e35e4031d311e230037bcae0cb16b8e75313fdfba00b028d27a473ad94a9393828da40bad39cf4071d6cfc2d25213dc9880c6d2a93effeba584eedab22151bc36f376650b1c175e0b6fd11bcbb7328c48076e420da1e7bae51006bbb534de06f275e808b9dcaa640bc1f04c911125e48012716b600703a25683632e80fee6d4f025a7afb56d2102ae1c3c79a329cb4f9e49986633683f557e073d04c5635986e221c21ff86763c3ac59bd48736c3cb326bd9f51f078be665210a5b626f8aadffbc8f635ea87872cedc8270bd10e1207f74c7cda499036de49d83a61184717e0b1ce81d17e1bb7106fefef576bc154d023125505305aaac90c3ccbac763637afcd6d927a1d880a665128d066c7849871fe3353f03d2d224a80e7c59bc34f4b13bb71d5023546f5d26d8d66150ee2c98f66bd62a902d1ac35bb5bb96bfcebbe22468f9973e051f92799c12fd3c9c7836929f7b3d40291a5149f3ff7f75854f97241b82525368b27533d297f36ca38b857b4ed976e207e9924b789a505b1fcce8711e133f4f1eebdad58596c624914e8cc80684bf1b6244b85ca06155a3eddb5e5b51cf7e79656daf8b606d51acdbc47667c01d41638d9db6cb68f331a1ad80581fc0c67f76e485410f59e785e901d0e150b351a06fd2bbb68b09889b6f683a3393542a299a81b42747636ec6f979a573216ce15b569eee86e1cab5d95ea6af062bb314884ea4d5422d0ffd2dce70dfb003e6a8e14d00a40a1a55ad40d550c57f8ddc1b6e240a82e531a9cdf546a2b93a810e4c97caeb4c142a461e6a9e015ae3382b6e17f8692bc1b43696bc541fb29286ae410b1fe6150c812c50c961168bf8e407a80362124a5f02ae8d3cba66cb0fe12f428bb2bce33e237fa48baf402d67b7f944195825b82a88a11bc065186ad346e29a3a73e9938fe084aff263271f1304625f5d29416cec140c295c8a94e8903b37d19f0f95d10534268f5c333d30d349233656d8609913c0798088f60beb303d952108c437c8aba6a8e4f230b18b32b2608e88c2985efde2bef93e872d1f44e3bc19e394a08a082abf32e06b6ab775a2c7f2b153271e8b8e0e18e425e5339959f4a2462f0c1018f881aa847d15259bf270885d8220ece0bd19a162bd3e8535e9f7c79f31c75923febbc0aa1e48dfe1a3e1a789ab4f9550264654002ea0f20fc5101bef0372d868fcdfe9bd3ed132bdc44a38ac19f50348b1c03ee10dc887d20365a16d73b6f584da94eb185683c45541dcf7c839dd304500dbf1d92531b3526c53f5d42d286ff25a94303e34488b8726aa23f535d2aad0a66353859fe141f7ffe0dc563755edf1b58741c4d1e4690326fd362aa448256146a0c14a8d3713371f294368e8d08f671e29b18d7dcc023adb33a81ca5b729e64ffa08381343ea7151d4bc23d3784c406f4ff59a09740d1d8763425052ac4ce98dee4c6aa21a984bee8db2c8c88e012d7e23c904890165f65c1909753c22c3ff934d7b336a8c932030b10e7bf5cb1fa144e5e5b3d8036e29e1bd67411cae5ad972ef10473e4076d5a955b31a1ccab31c0bdf53a92c940158efcec1369a93ce76693651575d891d7557412d42e674eceec6c919478e4dacec9436a422ac6e6e4c29e4ae185614286c6702ee76ede99930050bfe6ed22acd619c58123876a737e1673c278e46129c3547106a208873c05570845dd5a7713ed9a7b13ccb713220b5d087b2327f0470ea4381f325a5cc3d38cc3cf455c0c335cb6a0b2181e423388d997fa424eaf74b3aa69058c63fa7ee7cb139d0519c242d77fec380f8e436706fc6d5911168fd0d5d41a21b0a6b4f466cb641156667293e766c9becb588b7665c4a4d2b8b1f67804279c00762b0971ec73665ffb3eca67e2a80fa3151be0ae61cb7b0b363b4278102a3f73f98ca4f4139e5dfb15692fe24315a9a0596b310e5a1a6d72164a54deb1625aeca1531d981d47b34913407e21c368963bb0f900f8fbc20622e9cb7fed89a6f61424660e4c2b0e74ec0dc0f4ffb440db192c1164bc132dcd21ffa84508eb7543f2be8cc1f1acc4474783160fe9e8c7fc54f321bec6071d8a610a448f9bcf95866ad30c7e6c6a7070d2b78da1e7a4dd4b323d1656ac71349faf7a4bc894e0dd502521e8871573805bd67950a602b5a49427cb559b1fe6284d59372303a7247b3841f4af9fbdb5258b13ab806da47c98681c651f0e9146f0ad1ccd23c53cb1839d6a928a16bacdb2c8e689aa82e61fa3992700998f911030d913b7be0883f31201860c59a20ec56bd026be1d7efe7ce581d6e64be104424a013fa8e18a0e404572a1402c50e2a2c98e34556cdeb08f1c243c82f0ce043ce51c998aabdd70e89a651cb6c5675dc587d70e162eee6dc0e0ed66d2d2e7a8847d00e1a6d2fc37282061a8024b026b739171c0b079b18ad14d5225f2ac2d115b0c660e166833f4600961de1500314b8316bc81c88c7a974ad933137a660a8872ad895699811355082962e3c61227dcf95690b5539c29092808b11435cee0329280a268b66bc3c312662d348a8c7a178830028c6aa5399c8623091a7a0dd84b431082cc4c6b0223c06ab70917a3cce3bd0f4659bd119618c08320808c0418654cdf7340c27ce38a1c041adf71030f6e39bed4c3a59c31a6779d06297a00faa10c82e206f841398931d50ccf9bb3a54fc4c48f48470cfc60c8ed437eb346ea19256a34118101c8539cbf805ba6e49e9af501ac66a300109dd86932a61c5c714888ca21037b1f2ac38cf094e1b86024aeb5bcc6cfb1fba58681384033447349553da8371ff1dcd8d1373ff09cf7bfe8e6c1bbb5cb6298e7595bea77608be1dd335e88efbc6d2e080538841699b800be86f61ac20530135de0a928caa0d1123ac7a4b13756297fc38c9d6fc5157fe5a1bd3a3d1973837a82a59fcbb5bc5e41246b2ae59994b58e80a44497dddca92e5282ce04599d8656acc762d1be429c4056aec60ebc8a38f815ec8e3016977149aba03cef3d4dfb95a36e464f94dfc4e22dd4c0ac990b0bdd04f6d83d22b0fe3709aa57e45da9923bf0856984c3aaaf4a660ac08b926edfe1ad37554c31126a06d6f49055ecbd54bdf78026d1563ccea6f0ff4d4d2cdae23ba839d36ecc709e18b0526696a115eb416750d25bec66366a2151c15e1a0e4b120b53e6a90fc53ccd437cea4cafa45dfe89900ccf122631d6a0d643b8f2417b334a4810ab5b3da8d1e97a289090af9a5b76e50523cdaa0ad73c9ad70a26f999d68732261e77f8de4ebe98fa98a8408dcf5f93d20bd4a8c023bf0eb80e223026dce8f17faab182a114fcb89de9bb461de13200e4bd073654040c65bb3c983c717855c6ea504b5b43ac56415c94f376ec66baaf98a7900255aef9b46b329e9d9e33591b96a5b691aab0c2e8b6d7812a3b3075d2896f93a216054d5d47bd728b1b1c17beb28efb7a7c7c8dba0359b52c6092c8c345411f8215e9f72191e59550e41dfa26e66b2cadc7eddd265f8fcea49bc4cb38ebba7af52e60c4c88e0f15c62837acaa37fcddfcdb4d17d8b62b36c85b80f6df16e3d27a9e041bad5b97eee3eb58ae15d0a2247248bb07cb88fed73ebc6e08499bfcaa419bfcb07681a5da3e3a0d6ad2266b96cb402ab483b0ba678c617c88030cd2634fcc3696753957874d204b1cba1575e44cfe494c9a3326781f554906a883d4d87ffbb3aac3771ed4df2393954af76c5484c5d4e455150a4c3a75599afcec10606c2d22c5ae835768ef11165e5357c96d92740b5771ea8cb1aa82ed928e9acfa109b066653c24b0530d72d2d9013ba18faabfe0feedc542fed3e751f2cf12cd536a219b2f74da9b42a4da8fcdd284df6b6a6069ac6532db65a6bf57d932994a86bdcc370ec2fc143c98a90ce41f1ffe31066e2bce4612e331ca1bc76c467d6ec3a476e8e4e24d076a3e8782f7e9cbca6313b9a58518bc09f37e018ce6bdef86d5972a34c824e4da6fe8135886686aeb9a5df40b20e8f969210138d5b445952d92f718acb4734b69697a8b64bed4bf18d29233887b58a3d8cab80dfd9c148e425b352843e7b879c615806ba737d60f8528d73eac814ea20f6d5ea9911443aafb4a38247576d9a227f7192b0208d6a1f3b430ac64fd2d7547a42ca5bdd846c63b676e5f2c8ccbefb518c2de1eadb0806159515096e65a2ca9c5bc7dbf5c73998a33eea1a45f4af5e2ed62cfc9d540c46c99b6a3d6d55a133f6137b513ee714749131643b15812d005c631a467531b3a705930dedd7504088f89fe7e3b4a436b73fdb53ff1c812d92939ced2b3ccce0f6554cf72c5ab18f519dabe61370432224ed1a35386e1fedbc65690c26d7e590fe675f2b401be04998855cf16124c1a955c917071b930f3e0a427a1bf70c09c14e1ee05e7262e0eb7c444daedbb4f5f21065f1fe2f9650ca539786f5e486bb10c462799e920e428e395ab9f5c81037e1eeeac71d5846fa13d28e5d64031babe8729c23cd1363f63118a98d6d4fdd1903660be567e500d2bce4f1fe4faf8caa0bb4b84ab7b222dc97e8df6ff5dae757d65080bd5e3c8b6e4f17693e678b8ae94d1259d8d1bfa48c036b826891afeb9d8fb6f1976f6fd4f8167a4839272f518165bc800f17388b642be47e721d9d25648185ef6a7f7c6ab210838a7f472172e08ac8058c5ab49095a086f18b58f7d2d10ccb749bb2c4e2d0d162021871de47cb40d2ca2270b405ad3a0dd1fb47f3f465cf2593e26b5d0ccd2ac4f988d19411596c9b5ab8b9cd931169fb7732551914d1cea0934447549829da02cb84339017a1f7dd2022998227c4946f298e1d3c70e68a6e584fbd31d4b2dfbd81431e3eea6d44907d6c8330a662446768550dbae3e64aac8c980a3e0230a8c5731c623411e3bbd9011afe54a3aca98810ebdc810752a1200b3f63f6d41496aed4c181362f87e81c2643f1a74c869fd942face0a2c38a022006cc45a7ee536494694a8e82a963b09ba8edd8b5e34924d897b7dae96560496febde0fffa4139db83eabddbd3510741543d3936a4e4a651ed57bd7ddc89b4245d048f23d7ff86ef8aa995c9c1bf388d23f207d6c6a0a974c31428bc026914acc604e4ea631f8d4c55f2028d35f0ebda60f87dbff5c224eaf72f7b06615979ac5048fcf2537344dc6270716721f60eac30f9c7eefbedbc3f5648b0e60816b2db5ca65b609d52afe5eae4584764e50afcdae0eba5f1e33294905c58e8bdec5e3ba40729f689b61b6b43e1eb551391a3d6a7faaa17a8d8777ecc034ca7c8f3d45c94ee9a41fd10a10a7bbde77aae3c8a358c09fd757c45e9ffddf20425231d996aef5da86fea75efbe201cc9758e7977aeb24a2284fde55f65e1be257192080178850b36ad766386acec64a39a5883c2b284fd8e3d61f4185e27f05da213e84dd6885ffabf1583903b5477132ca38abe4ed9c489a58ccb143a6e4a7465c19ac5261e49269d0ad1892d9029ee2a3a580b26174d75f775d9502baf66ae0f629422b62ec79cc7b577285a904c3c07def8e83fd51afeb390dddc1037d5896d96a472fa1f047509ccad8d7cb04a2803eb6e416588a542f340f0d3f2f2aa15ce5483acfb890aa97b61ddb50f36bb7ada42cbeda7cbd1f4d3db66d97ea1a9a286f50d355a9b50adcf9b70ae27c2c60d6c254d07e265bf705b553267f41f9d8cb87f37fd31d3aa571888f65a4dcd1b5f37a5fed141a82ae888a05e24c521c1ffb8129939ee5572724f2aa344a00a37be331c82644c773e9258b6b8e455c3c58668d5c5a308f3a72b937e592e0bdd08f8e2b5e023dc50dd4248a21b8ec40969e6d720d2db871e56674baac8e5a595ae3a17fb0f4b12691fbb7298f9be98bdbe247d7c79180f8755ae7eacc65e8c7bec954e94643cd03890fe149f0fe672163e322c3ec8067e3ad299cb3426edc604ca43748c21f7665824eec498a5afde24a8e8535ae2fae57049e73d04802a8582b3ecd830cddded048d9693c9ce5955fbf09c2a3d57f630997289a5ddf5e7e387a05b75fb10ba7c6891695777dd3bc5ce4f8a0392935d924c6d2638b46be6c9d1a2738f41e4f693e7d324b5758776f07f80a046e316873c6319c3e841cc8e28c270ca3cf6ab8dcb11b50539078d2601896b4b4ffeffdc885b93d0d016a8af5fc7ee426afffdac440396410a444f0045577fc6b32a2bd46be30b893feaa76fa89c14c1d06aecaa7fbd3737c5b9b294738c76c70b56b42f7dbdaab4461ed335e0c31e0ec662b1ff0c2a75eb8d5bb0d79e409c5ef076e70a4a9792e2811ec996d75197bed44500d3e60d3732535e5dfa3933558dcdd8bd3da5aba9c2ad303e9dd4ecfce101cc2b9aa395a0da282692d4cacd9352400813f89fc68c08d5e3a0e11662ea8e32eb6ffd0017c6a6099114fab7bdde4eba9cd342c57fadba356d6599a78521e2e57d98401fb6041bafaf194f8e71b8c134924209ed9b67b2f8da4c4e1c7f60c1f30d2d8604cd34ccfd502f3cf4fc7c321b26cce39b2e8fb7b29e38977edb82d95a53a06d50a220c0ebe5492328272665c13d6fde3d208be46954d65e07ee30b02629a53b19b9c98d2d50b0420f34a6e51ac49c91cfd16507544ae3f0e34baa0a96ade773de2d72b15a780c7fa9764e2527547e2e00b7d090c621b75e1bc612af5139f71366f1eefadbfb77f46127304ca1bdc2c5cedb07fc714da052bc7594a0c3c12e60becccb08fa2fe1d04b6e781421ef00ae3eb7183b74f6c5299f94a9447cc16fd560e82ad9f2d2ec51c84600f583463f706f80cd35a953e40e4236fc85a9a9eb94bbd5bf509b2fbff12aef19e666d5bb41123f287fdea70edaab0ad91512a61644c2bdb08da8b8ed4dee26a03c39744746b4983f6f1014d3e66358661372b191a99bfb682d5b79e9e90a196b16a6a70ee88dafcc8a2c4adc9acdf89c4561243b7c4e147754246d2133423b97a7b1c914f26a17588939d793be95a027c80d040eeb17ef0af10e621cd21874fa91c5dc23239ec7b18beebc397233b23c2241404f4db09227bacfae226f49ca81e471436c457929238fe28d682eb025d97cab6404b2211294d565070ca217664120ab968498c634ee672bfac07a5b942f78c11561fa32d251103d80a8357ead29c3e5202bd804cb964393337a541d4923263bc84aebc649c3d380bd378ea9c36f8f38047a4439aa1cb122718d4c98045148db0ac97053d066efaa181456ec471747b3a888682dc581e1ea0d05800f0b8113b772c87f46a44438a443384a92a89466789c68381e9579c5b6df58502e6a687599f685b88843e361d2d3eec1d950bef061d09e120fc8b4030e5845845ba617c5984ce01fd9a1c58bfe569d04fc3527bbaf39ee518cda15b7736f3de8a852ad29906f68338a0bc822dbe1b60c7f59f573de83d6190b1f1062b285ae1fb578de2ab82674eba3e9721d4bc46f885f91d41a1c6543149273eb3b13d76024d5f95a8d048caeef8b52c081a2f51840591a31bd5cbc8a15b1174fff04938f5cbedc288b4929b2a2e5f1b0323e6c8e725ae6c126ee8d2a005c109283e21ec09bfe1da4307817721c8b403c8f60d8acab0c0a52d5dc1a789e1ac479078eaa8249f554023b97be067e1155c7466d3ce0c1d52b6b35a25edcb90080ee290980a7eef2d7f17942d44118a9ef266c245749bbfab368661ce900de2a9cd3f90c947ed2dbd2520929fca34669227f93562bd865639feee8f1ba2eeadaf856cc6d481d0c1cf406d9e05a829370c0b92be11ed705a061fc9adb88cfaaadcf1a7cc07fed2cf71434e8459ac184fce24c1ef3818b7ad2c5c90decde9aa176e235edf28ccf2ed769b042ba8a66879bbf696adc95e6f855cb8855a735abca81bd0fdbe0eee153a498156cacd8a6a4cc9e8ceca12b8c870ce0baa821c5ab987c6675268d3358a274c35e08d555f98b5c40a9182ad906b2879deebb41bfb31c9ac561e483db0ad1754cdb09e7633580b1705609a1409acbfd2299ca594b1b59bed508dbdb24eea965d1917ee75cdccb9a853078d71e7bd95ac4b369157abb69be9c40575ea0dab7ade30ce5e7fe555c12c907b3e72bcd72937f663642d570e05c5c92d8fa4d2fac6ac97bc2d44275238ab8c1d3e6d22c93d2d17dcd88fe1a2b37ab97442c95359e98b96bed2315b0630a020f16fd1caa26056d30c60bd06eeb4d8c157d372f6552b0ac40545b609f39fdd42a66ed3beae25dc8ba0930acf52b5d4fa6050a7c4c227243ed9b3708501912bea75eb48adf76c96b10e6637d2c700098fde10567486c2d5d5d61173e7b49bc13aec02ceb26045b0a02ca315d3259a3d4f93752ccbf7697dca7ae802855aa855d013b2e794d82103a716ec02b8b29881b1b8bb412578c4e94f82fe2d8718e86a2ecb03713f5264fa019e9f48e1bc2d14683af6bc6044559cc486d002588c744e80ff7a8ec58b76ad6b751300138b1503a9b70d1b4f4835e526ab2f78bbf3d45a1a4f149fced8ab0c892a6de4ab18ab75452ad43b97fa19f8d153dcb2fac2dedec8361926571e2aae075686262c9ce400312981510da1c37f5499a4de6d11182bd986404798f5859ac35ec31f6bf6d46c555bd6e1fa3ee91a3c1daf14a47c1a0c5e8302440bed9c2358e318897e9ae9123b696ab90b1d0260b4d2a35e25b69fc33e944ee2f7653628b0124c6800b6e0f689ce53e6e8b2c0e64b85458caa998ab3b2d38f0e5225730c3f5194ca83a9b95928d6fc429a919b1a7449dad8ec1ee00d69108b68b6641365fd53c6a8f59df03056b051eb57497dbb84e8d5131c577dfbfa65cc5b25d46c4d5c15edd0d0e466baf5ae064b7563d7e8913167b7eb2e8a9ea84013965955f1acc1c63890c72f431333b320aad61f001d0d881882612c4cbbc8d959cd76c9557eff9bf2a37b213689977fbf7992491c7e9452961fcfa643b068fd2138d4ad14b743a069efbe70c0670b1ed02281006aafb2b1be24c626468b2af4552d7c883a8bb47655c4d620e4bfb207feee1b9b566993e76922b50c813431d4b5b10ff8042142ff2eb27b8a5d21c88dca56201801a9309a448277d4b81a8fc26246635188d4132d2d253e5f4cb9ab9698119f5826d17319ecf350d39c434b9f6a8931d16bbeb19c4f95d3e5f9fede4c4bec126a6308e788d9c0245e6ce9524d196bc3f890bc65bedd6905a5d2c091bdbdf264b73d3febc41729f88e3b37fea7494ec3e01748d656147376222aa372620f36879d460a7fd6a33ff01b4e79f6cd8e20d0ce9f756626ca261685977a05f4dd14e617c8abad5483e6f7510e2bc39eb50c0b0384b80332faf0489a86703632bb3e2b971ef29b8bea1e3b9ed4d64b33788965a193d324b36ef97a56dfbbdfa39b48fb949eee15ea56d18b3b5ada2d108aa2aecbace33735de1049604c252ddb7de7ec039e1001d1a7fcd93c3c83777028852da339c0b1fc51cb8e654fe6926f8fc546d9d26da8284d16f734c0d1ffedae95672afb75274aedfbed1033b864473f7fdbc7b467eb78da14790b1a7a17a9c8a928132aa8f69a4c1eaa226c6844c92005650141d87f790241fe38ce47b30a120563733fa9fb54be0d43f768072f52876261167de3b43d14576099e27d7b20cad7caed0210a8d07d161f4a5ad60d75775105c108c813b4d12e6b4f0aaefa40c7e27cc54579b8ec089741de4778647fa3c384561c0d73d4f182acda5332c1ff38853182e04345bf26270d815bb45721448d4a24951b67b0b3138107b81a944d6032082d06884cb3c252d6ba4e5449711d23855a0ab7258c09b34e4700470a66964d8b0251a89175d0db121eaa3e7fb6d62930d2874b7f922a62c9be39c65ad7d15a274ce4196e84125bce6013503722e897b9e388652361188518bd81442da3cb048f413be1c3e619275b9e90067ed3065ac7c738d34922b13a1aad2e958acfef7f726445ef8112ae795818a6e1305b150edcac0c0257d6996df66e99f4218bb60a4e60536d57a880748ff6b97d74b72bf5809f7d63beee072e4206e42a80e7baf080c0b1111b3300811edd02b43026993842c470d18e7b5d7649def7c0499aedf9d5d0f3fc71eb20f2835d53b5732b1afe34509f28b2ead6918bff9c708edf366129036912823e6f0a6b7a24246033c815f438fb3070d887888b4304a30435b5ea29fb2dcbe605dfdee3d1593402356155e4d84871a01d2bc6fc4f27b7435c8aa9f96a5cff61960351a6d58410c4926ad5b141e3e96c2afd83d3b08b4e2f523d1f8ca8ac49de442f22d4f20ddcfc2a60c7521623ae09e412731b758a522e460655e3ecc36a929e8a05eb67c8dbc54e1d3a5cb77687b2a26ddcdd7f029b2e6f82b3f69f58e7edaf8479aa0f8a6ea126a5c7786d15e92818254a79f1773930dc5041049b7b6e889aa5430c88537410cd325104d0ec4ab7c384233aeaf63b0ba48ae5ff87ca06d18cb52f899d395005a7920cdb9310ae8b8e2ba780a859b8e488f4dcf962be98f60e991c29b1ca9ee41a0514720c8edc0b7551052cd10eca13e0c3e9d31da083c243fb7ce35829a452c7c991279a26ec32c204a190fa1e9a8abced5f8a9a6edc7d20f3f4865d4451da5a1295c3d1615f1a1414e72f1d7e962847bff81ddd801e89f168a17561b283c56ef95b0378a0d1dd1282f9c78e4493bf51cf62737109a4063cc7cdbed19d5944423cc490b3e7ca101ccdedca18cfbcc79ce6737a03b214d8d5ad48263c42c54426b1968f524c20dae2c6a9083085350b7c0ce50da0f28c85ae76c8fb0705bbff573ab70749a9161a064d6eb97a716b383983e0a3c29d506b9fa007d94a5cf09b0077c2eb939599f87e1c140480b2831dfb6f8c11f5876b999672f27eafc3090dd75717332b87b9a79f50e19bd340d92405dd9294eca4d211eddff6395cbc424922569ce0d5248126bbbf8f2959a84755151744da8e57177020614fa7841ca687a261bd9735066b60ab8daf4fc5d77c9268ef6d39dcdc01995c7357cc08fd3f08380c08e2e76ec89b116c57fe21f7530a32139c7551451d9f0d4bef9b773e5596b4bed8e610bda5e48483fedc7ad64c6dbb42a2ed73ef6cd2a9bfcd76cb8c18b0c61cdf7f0d5c13f230db8aa3a562a92eaab16bd9303c9bf34baddadc1a51e72775008a8d3c0090a3226ae4a1d926842ffa0a1baf6c810a5466dde14c71924aa48542bcd5c4fb809bd1ca41139f60f88daab40e85bafdb2a90d669154b992f9ac8f4c783d4e0a95de0136b7e3fa4f701c328a3ff9f97b763165fb16a5213ef25cc1b3cc3789c2a8cd6078e963182860d13c9fe5ba3c7e10a65fe1c939e9c3aa32a73eded4907c263b7503d83f52077398261a978210b0e650d7e24a07b1ef2dae8cfce410424069ce65c128b43bc559d17e939a48c0d2520de330c6084302c6f71784a169c860920500bfe86bd0a3495ccec79d6db52cc21f815130786282340312a6ad164d2b614fc7768e6843109bef6a2fa7dd6223a400281bce10e4958a7549d974875898da9d7c94c9b4fb0aa046b4a87c99f1bf2411716d4338f5f7bb294953770dc677d7ce771c4101148ed5a6b5d8cff0e92dafcaeafbdb3b004e94d3fa0e18348c2b89d42ce91db4b95263d2922d9657e497742c27513913d84ffdefe7fb5ab65f693485bfe9a30139fc49e76e49796376c9d408bd79c8c0248aa29359ab1d330a7eba1f59fe05a316619fbcc436ee98498175fa9a10ce9d73087ba1ff9092c14bbcee714d096d82e6deed77dc1c3bbe675001bba8e6103a3cbfaa8841ec8674c0b1528c4443be061cd7cca436176bf370380d2773283ddc22dd1441171438d839ca10ad8792e6fb61a56fd1433e67d0fa8e01580b9db1edcf007702db2343abaa8b7f2e47cc5c972b87561d20c1affacf87259222ce78415f0063776c29d8c3f6aa87a6f1813c279897865e186ef2ba48b388e03f7a64001f601cf188e6109976b20d677a6998d09c32eed4ad6ab234a4a50c107f90c104adbc4ccffd99dc889caaccd34fe633716eb7b0e8864c93034be2037a1e980cbf64019c14524f488392127916f052be245e2399b4cbccae650b474067b1dd221b468680704984712e6159038c9311dbbac5e0d72c98aa0d4ab5a092c64db703832f47410dd7afd6a5a89331d648437894880d80412b62eecd8cb2ccb23c7800eded50943c0a06b43035bbcf820d81c5c1480336afe08ef4e4276efbf224bd78c70e632abb47a6fa6b0ec5ff6a0baef9dfe0ea88ecad95d37dcd99d28eb883617fcd2dfa119869eb13e555563de9e3ad234690669c280dfd0e28098085ac78d6642513ea626ed948c6351015c67cc731d852180bb72dfcdd590cff1efdbca52d5d2e505ae98dac53518d1805872ec8452cfd32ab30f686687a1c2c58c33ba81fac5aa8e805d06af29f5b3ee6a50e6f7f2a684e37d56a706707b71c261690922700574dd9c2d5eb5dd315ce9fe75b936fbe2a90b3bce002fc0cd9188faad286b67ff825b7bbcd3a1d1750603848dd4a9d3957e8d3b078515167b285fc6e44e76f1593e1126dcf0920f423eeec4ed87a9e3116481cd11ab7102a9b3326d50618a8a0c000f05c3faa2d9412b5275fdfe7eed5390f46befcd0d95fe3db435dad699dec678b758fd6b895e143dd6a35a9b5b1941153a5d44d65292e68d936ad9db9f4742a2aad4642b7af8e188b8c0cc2c0509d809da1cb55f9bcba2b6c7de1fcad432b949335f9571cf7a9ee958d87c2684419e732bd69c7d92678342dc17cd267c9b8bd737bf6281b544a24a2ddfb9712f92b4621e2fca5210b2c11a2ceb50983af84e40a7be64fd089c62ec11ec5757ad57b1c3e5dfe2c9fa7f6c697748073c16c921c0a8bf76cdaa46eed903d0a98a4bb195fdbef851f927057b2a0bba315df4e6b41f9f867eda2ea8ea5ee22c4d00084c9fb34357cb856e30c9de8ecd615a01675bb97fdce3c8af990b633fab715119797badcc4e87f4bdb7de629435ed72c69bce03b39dc9fe411c33afbbf6d8a02e723142f233dc1236a88fdf71deea6cf2499c116cc61f1e793deaaf98c26b1641ab1f684b9c90d9b4b4e2e2b8a387ec805e61c0d17f2119e5b5c962b4d910a7673600fa7d3f55d8967ceb09bed3f15a572fe9a491e939faccde69d029de6f15c817a1a11bc3593d87e37b19412a6e4259f6378775aeb7792e61b719c6cb78ab2182caa48c3712d920ac86bc89a913b693fbf3ce5c1227237cb244b3a75ef322eb4054a5e696b3420608399160f9c2cfa05e6f755af0f2d54762455c47e01caeda5356448857d6b35d273db4a6a70099dffd3fa2581d9da4a9e61d0e7e7ec19ba5b092e8027071932d4129d7cf83d646251902bc34e79b74fee94d08ae31578acd957ffdf494f661523bfaea0245de6c3f257f39843facddef7576266c4265c3bc440aced3363cacf357fff8c81a117d5eda71861a1d547403eafe918b3853bc4e5df2038e2ec115bd802807b0383869f1b6c0a3be85392f834284d83cfea8b80ee5aa3e12f4443cc8652c165481b4cbb8fad3f7b0c6f6ef1bdfdaecff46274ab2f8bbae9f44e38e61d89c2f2bb7a00620b17d126bb5591d4f5f5c7c5002f74cf80de962a1ad89bc277510beff9e2bd22434a2a893925c40d19fe3e6b0b6d4833dd235049c1f21a1b23bc4f8f989f3d92ac43d357015799886f4127044cc75222c90794e9bf2d65a7b13348c3e8bf8205e9543480123ecd4624e9794690f11bbd2587d52f853cc91ec6fc087acf4d1c576de784c23080ea8ef6100ee25ea0d670684434824eb021f1614ba8af79adc5b1e7512fe95e694ea3fa158be1ad416895770507be16d50c30eea1f6424246e712093de7d4fb6f4c392713bed0805aa55171e7babc9ff73c255bf70141964126509630b7a8ade3a74e7e33b8fbfc0205dfecc6035537ecd2c76ac394a3128e180902a77ab53a09a54bc8827a2c1e1f64999f97b91a5666bf77fd8089d57e2ccdbb36e672ecc327cce3e6fd0668c06db9e5fb2ad8ba3e32b3680be292d75b9f9ff5faea25e99363dc4af18b1f4da7810743cc37b0b573aa2eaceaf96768de159ad332aa89e943b401c345d15b8f329b5738f500370ad5ecd127583390421364ff519680279fe675fc5f02c2f1198384c301bb52edd9150c4d838f46cd42df7400293b8735b3978ae8a1b84b7c762b7fe4ffb4cb62b38d181ee0301257498bfd3ddcd86c89fa502c509e8ee87da2f7f32b887d1a7b916313b2a38ffd8c3f5d8c572f80edb180db2548545c45532a5ab5e5d55a467ca0766c021aecfae02b9e2a886345847c16e3be88f53ddad3c8f7a34b01dea168ad28a62651a409b24aa21f134615a130baae31ab68bc39651815514d8752736acba28f7b5e2d635304959298d2f93fc1ac2727344ab5057c79acfd253d1c9af08560bac428f584929b41a1d47f087aa43b2824fd00f40ad41ee95785d29a520043682bc324e423ddea14321bafd1aadb6006cdbd6ca1d737c447facb9a78eb3c925d4aaf5fa1b4b6d3e415bd764dd7fd4a041353608815b13845d92852d91784a815157b27a5456b4d1fb5b239be07dba8e1f191f9bea12c0a5dd4235db88d9e567b36ce55e0b5f835bd669af661c724a4f422df57d35e3b61d055be0da56156d28c795688432b49fa371db75fc09280ce2be8d25945744d495de2b3f12470fee69c336eec2f880dd5ebd3dcb412452ed8a4a5bf6c82d2cf92a55b4ef00c1bf38eaa9d1faab1e2148d3148b707b8a7f13c0f72f44061deeb158cf903434131d009a749ce39606e8d7ee5744f90a123073721dadf8644552d48f008d7709a0f621bc3ed7b8fcc61f0c6b8f2768ea6812ddab2d4a783fb23c436215ffdecd60c791574880c9e6e6f66608790f64dfec3fe6ab8c3335cf8be6cb4be972c782e6af7736f8347aa83e16acaca1286494578e8c6f6061269288c72fa756a0f63bfab89310aca750ec480b2fded93de3e13f544212dc6ff8f1196ac8c316993242d15002e441cbf8d0c9596f511bc93bc088c591d202c0a4f2c92d09835ad038d0cca8c90bb1714162f7f1dd0c0d75a6add121e9405005a9b10cbdc4e41703cc9601c6ccf3f38dc1fd3cefd4308213b20384c6da024788cb3703b25cfdb0948c8d0187d119479709c64b05e374a38355d7e8853f3f364a6a269f8a8fce535b38668575930e57d982bef8ddcc243b3d397236736e06b84fbd6f8cba73f1ef7d7e239f40d399e273da618470eaba831c606e151bc89e50d9b24ac02b454a1103d3a02cfe1711c697b22b81a8a4ea2db52068834b5fa756f8a08187c4dda1c8933c6023e24bd9ae3e176b1013b47a4f13ce385aeaf1181a1a9fa311e54030570104edaac652743d89a9a21f078d9b681083ce26c1812ce13974452d6d676a4464239e408626b7436a61d1a03c89edbb5fe0e7b96e6ef320d9e4c77dd079125a6791277392f0ef52d3b1389907700d36f508840c4b8708995c76ae8ab75d7a75f06a6e738468f9d8a1e569c37772404f484dd9a1986ece826c10c748a1a3d0b5538ac4e7d61273fea02f301d0917179717aa182348ed366230a148256c2dc1ebc20911e42cc6f3265306d72c29615a71058c0ac2f48e7b4b23d1118c38ae3a6a74fae546ebe016fb64920ce02966b8ba6c9805436763561308f3568a1510a70700d966261ea5b7f760215811aec20bba29eeeaf013b8b119935205a84f49ad8ec737964ba1ebfe416daf4abeb811af22f056b3a192b2a259280a1e982c4e55c3af517f50400e6227c44c13faea8f403be92f26eb3db3297ece6c9d0e6960242b579ca254f41227b8a3565068884f4f85c7837a49343709f0b4a28a797ff188b739f4d62b80b66226c006fe6b77d318f94b0b46ab563580dda01ce818f5f4b380d6b0dafee36f8a9e127306df13ea298655cb9b5eee91ada08ee03457719f037afce4e21430d1a0425105978a8e29e04e73613183040acbfe198f5fa21a2e3373a73b9022c06a3f5636d90a80938709cce2c687f99ae748e4fe95c68e4c5da7406954f18b642f78283b3e11f8168dc5e5d3f26b5ab1afab117ea37045af133122617fd19e0068cbb072e3b58e83ffb98975a1a41c27614ae0e57d3fdb60c57e832bc9d8a8ea08b955e9d8866e548956109df2cb246c02dbcf24d8055082ae8758ce847ef7d198a996c5605f34e98b18a4188b820864e2a19e326be7ec77d58e8f96cdce608d5adc14f35e98c15d716046b503047d28e827725ad90160c1f8ce5b8c289f5c9526ff5d0d410f99fd5ef97116a1e9ce7f0b1a80d534da73faa6d8a8eb5874b50b534de8ccb9c434cbac3d234c2855c98f914dc796bc26349baec179cf7c0c6c3dbcf58f34c6ea689ca8cfbef218924a28f91683bcd651eafa94dac66a7e6ada69c84c193f99e609a7558e63e50030f418de633032ba7057639331a81234af122f96405d783f1797c0850b604230a33453aedd65c35004043815aedf7cc1e633eb1d09820da1578864c058efe1c966342a0fe632e96b08326e68f4d9f9f6992b3183fee8d7b1dad815849ed85163134d30be738a8c3ef6989ce002138983b3fc5c170367c5cb6b5f3bd9f4cc3855f93bdd08cdf3e194bdd7954cc293e167ed1d5648b4785771e8f40c4e2e47a76a5c34383ad08eb890f32b15e180757ad7b87551f3df0c7d2dd4111f6c452629c3a9c8a579480abe1d4418ebfcb447840078abfd0ae06bbe8db66f7f91238a21b2121528000579d40051bb3375e2907c09f8d8a85a467afefd822658f5813e30827d2141c7432fe3fd5fafe9d78777e3c62566e1c68d714c6a8177923784f3f3666f6c62c52459979889f63cb7a0f6dc49c22a5427cf2af9006be184e8262ec1c86aedc5d1d4f728b2076ed33dd5be07d6ae79399dc96c36bd4c053e30ce6430cbaf4d04e5e649d47fcbee5520cbf5140c69a44850d834fc46ecfe281f826e75a90ff519591245aaf44c9370c029b99646df2b80ab532c2e75a1f7b4d1142830c5ef2fab90b4f0f2d2fff2464274ea84542b940904d408b2d1c81632129a55eed0a7ccd75b548f5e160cbae92c3070ab5373951ec2aac10e2c5c4db4b01ddda5d46db4c916e8d88d38c26c1f0c93b173045b2da14f83d7d0bfe12303a5090274738a23a6541ff94587b7957f8f72c53f9403c7f62ad61db180c045e28f0133938a5f36c570ae6e712a6ba31907224a328669028e0ed4512eb0d65ab36e30316df0ea6119cf2157bc4413c0b60ec298ffd771b9341f3a4adfc8b3ce83e10d36a3f25e30226e87b14ebba4ac61a05401179e38cc28ce16b4a77bc2b4487b85b46607c3938d8fb3e8e45d7754446f6937d57643b9b102e53b548713a9f6aa363816d68fcccc130e75202d45f409daae591c859e685492dd05d3ce9a68ca57b8a66de625e8063a7b19032e5c1af46dd9c66003c054b51984a414a925d6f95bf0c9e90bb882af1c6ca162766ae36bbc29d118ba95aa7e1b6f3b328284f415b32a89edfe5a40cb794762766303fd98bda03c626892a626c71d8978473f796d68aa089e6ca204b246b46e6cf111433769f0a3802ad05e72e6abc75284b6be505d8c5f933c068c712878feb74b160aee9e42a95bb784f52e7dbe25be8951de112515e57d98089023f041835158e2ccbb42c5d29a6db96544f2ce56db712c8797daf193e6e24bcbfda495098071f88a771ad4ab4a8151849ab0910ba4cc1745cc7f23db0e5b4d2d85d62fe0e10a68098a138a6ff2ce48c0dcafa94fdc90a042756bab5623531fab8a4854d91c9fc1e0ed2b47191d0937ef0127fc0c568b300ef3ee6429690bdfb9b1e1c29a7942fe6f140b6095c21c0c4d03d20b96561168d4f55e509f19bf9abbc2ec44fb39c3e660a66cbaf6ebcf7227c5f94f4de0a3a74c5cb828f8f21a75953e46109aadac8e5680eb32a34f3ee1c26fb179960c6b280066a936a69f460dc15f169075a3f600603b6b1e1dc768a6f59cf9ee0b613fb87f214ec82d1f70d7a66e56d8c4c084281b0790c160d8c9651890c5f0d487ce62008ae44c8c03fb55412f5f9968e24d40205755ea75bf430f6a06e2d904c3772c6c384aeb010136d254988a5101f207c2bc3e8395a0c8849b31f15b49329847a88ba05337965f0c004cf83946234ffb10126b43893485d71d1bebeea38b72668faf6cb7e0458c1ba005429ab919f0402e112aaa7474cea1ea7b8f3859ce9d1a2f711286679373d876c40cd77d5bb3182a477c03a8d1312967de49276c96bea4b5e4584a2a77146924b8702ebc1cacdaab30d13b63fbf830df2b4aca02aafee82c60e6346698782534b64590c75ab6c101151029c3b68f9b629e9ab4cd0d3ec1a6c8274d71581262090500ac691544be87011e1f111c764b4d44740a803557487c31951262b1e3c43cf9a395f0c9349f868d88023691a57bfd548b3c64074ccbc90be30f0e08a26cef8a2f3f1913e99dc285de618dad0b370ca31a1a1b188b69e5c0a09ea9c04b59c4fc041b52251417e55893aea4e1b81370787e896a095f06c0ae06136871fd75578df389c4b1907c05f77008a3cfbf00a4373692b4a530e70618026480d5218818f57a8d8250399bfc5e68165481824c508347ffc6de5cedd702db01c911ab562f3680f94084181ca7d6b83a6bf61e0e3b684e7674db861649ef48411bb2df86de0e04940d6fa5347176b38c0f7752d0fc6f82dd80da3144f7dfd47e0d68cd6850cac5654461ea46791665803bfa5ae8044f3d7a2c22be1abd8181e9219df44752f7405eb677122ee29959a5de7a02148953c9b7053af212cf2eda436c6be54ae52b0ed99ca1544881e8d664b8194a547d5ba8235d367a5788969123a2f5945fb58058ba393025e81bc99993380a585e899bd66749587b9f02eef11896166e60a8d7cf85ce60bc2f978cebdfe102b462dd1dd393f4587ca43217d585d7ac14d10020213f5d15ced23d247edc7119d02dc9a2668aa4e1da75181ac70fd2d6929b042875f9451abc4b4d8990aed8088707c0ec427384565fef66d1196c31d996fdb0d9a4b2d90c9fb2848f3152f239579b2a446a69e13b631e3443e97b4c4eb7f3e5cd26a441ad0a45bf00558b36753955317ebfe113d502c28e4c41bd36464c08ba4fc2ca6e2cc349fc84b0f08aa58179a9e622b8064c10d6f08429a508e6d3fec1e0269c2e227d6808e75103d2c653d301ec53e76bc15f9c91d35db0ecf3df73e5fb5b36de492bd9c93924d378ee6377209b48c3c64b995dcaeb1b0b25f8abf7c383d7f110d1c111c18ddc060fe7f094e6816fda20c8bffa20a8da704ee3eb07f161856a93b268f2dd6aed86ba76f737e93cc8c03be6bd6af3f296abd6c74628a359bdc5bb9382a434f51051ebd302e1a3c3128ab5e0306696ea101234b8f1dc6f5e346aa342dc7464110e5e49205c490693cc0686e5e43b7cebd0662ed6136e93a90c2c7c8df25d2d71fb19850a60e074b2b5df3c5f32d266269e6fe5a4ede4806212e3998988833969c592f1702490e76b15009bbcc59dafefe40d4894a8082bdbc9a5a84c03ed92e8c0ad601a887b1ebf5916e3de7315394a7015046e630b17bc804b0403432dc6d427f1b5e2b5af21e1aa806c94d25aa3d612b82014efa86535eeb2ce4250c6a865445316cbb6d7ac058318eb910c99ffaa913e0cc8f55ad50af09369dc58c4625bd81fd4e5e3f045c6b31af66249886cece6a5d9b1cf9b09d69cd05c81afadf6a64abf6161f4609d8596541602c2292945c98578cd45a965781998c037c03bb266425873e086c31000abb81f7cc202b50d25f75ec916c0ec14f48b05db90e4f2c159d404e6c3f08677f524e2b2320d5a384539d6fc609562684dd71c26a5ce34d2e36cb76c010792a4cba7b637d5a5c40fe0ab696809dd6b8f7523703a218ba0640082a61a6d6708392764faca7fa5cdf3d9c49d2282c0ea12b07f84d98f99a9a722346da24718283d508d62536acd47a9254516f4607145002d511d5899ca877802129e395493b85b987952dc8c2c0038898782e6c6f6e61820797abd1f28722368984a3cf17b8ca4efe2c4989403f6c810e29a945e9382632197a665d8d8d3b2c6080a7a903c2e73140cc5e66053af442eb07a014f7e95b5925c33c7148214ce28483def56008714a3e510444de5cf25761800f3373a489a3e86e0d648e8afc115282ad9c6e31adb322629c23535900058585ba6eae428765c7018bfd08b3ad0508569a573d712a853e45e54081b99be3201682f6f41a767221b00580517081e969c61e79ced696d29ad986be141efc3472c72d2fa808c3c41970e0f998fc8af74320dbddff4841856228085044fed9c3b16d74492e23d86da99232783c9076c53e4d2b839b0e1e7bcb4a84b6d7402d3b6617b9ead8f0b1efa93ad489c43b4abc0e863640a3f82548e9efa021e7393aced9b063b233514a88b8229dc6c9da803b52ab65400aa627016ebef957fe22e0ebf98e146f60e81f1bb21175321c91271c9a3bfcba3a9b98099cae74d94c1e9ab4bcba84c25d0e010d17543d562e1549fa69770cf4ebe76160c1a06999c6fc85872a75631c8956de3c9a8c704fe0337f69dc0c9c669e273608ce0b15725177e0e2a32c82df985d1b98d9cf2ab2ad2545e8730a10267afc5e252766c99607b4e5910d52299d4767ca0e2ef4bad01f2761add7ceb37b01aaf5aaba2a620d5b0269e345bc47761f1f68b298d32ae2d56b97d148d6cd75993b374feb667a8193166eac353aa42289344fc0302de4bb48b4cb1fabca5adc1db67f93ea61c9274d1dfc429bdb0ccc4e18db8489a043ea6e2d752275898ca642e7349739b51a2d57e916ee63032c3aad17b94e25230ab67b6bec1794dcb3a1d8c7bc8821280d1c0ff6be499df51322b248a89f1c3e00ec1224947ea482859dacb32c446ebd0a2770a40b34fd50eeb32df2ccc75d8d735c93b3bf9edcd0803c73b5937fa316455fa098733e5be2857ca5691ff8fcf025cc3ead9f7a803bfca4204949cd624dd6e5f244357907a5d81051f8e003162cce35df9b12d2236593863e4bb6465bf36f1ba43793ea06bafaf3c75cb9556dc72a280ca170febf1b48665e290dacc41884760e21ef2cd400ff2049295cfad79938f3dca1412d2ae6d4c0d91a170b806135ea1c3d9072373f1d851f48a8199da92e64cec2553222f97fc694602f1395deb11eeca9193efba27fec1f2ea9e93fbfb292d66e430a94a843c0525ab0eb2080ac933689a78feef20fdfa6c11702da8ad270adb335f30c88e4ed0c79e356839bbbbb01c1f618390631013db2282a6290ff2003b3e20ad801dea40a85dfe697276568f1e3fe32b39533022b33389a4185fb4cc9a878bf0164294f9990a24583fa36ed93352822b3582da74c639039b5a9bd3414180dea1d594a68a3d9a65d132859199ce41278ee794707c40f63455d50d72e8695613ed8f4bb9f6aff3a2c121584bce764b5cdc23cda528372e72a55fb30957fabb1f306d28195ecdea877a57e72a0172e8a04e72bc59479d612464f374de973151f4072f56d072e386f997810cd8ff81f9fe4246e1fe36d622d3effc32d162fa95c0106316b3e20879490583d38b1dc7f5397d81380f54f5018139496b5cccaf6a7d83eb891b9209d8b8ffc77292b8528d88d80430f80d3e5af90b4fe78070030a5c9b1ea92745f7fe86185e768147bbaaa221f2ef49673ac335216159f882b3dc3640e9233aa8efa34ed3257cb37ce748e345f3cf7ad2c14bc9e8d51add583928e13ebdb311056858efcc5d03f42d0fe6680c209b901e8ac943ed43ab0c49f21139bde4c9aabfd99891d1b420435b067e1d5d4ef33c63a177490f3d108f37798a25531f7a8fe03c9d2e87179ccf4c05340e51020f6a95227b8f2b431179f5e1f592bb496b884625673bb279cbef5274744f89890366096498a5c16c78d5b0d0c684475f9be85ef4f8200c642a125ae20fd8ce7443ed68eb8dcd9ceb4ce7012d9a8d97753c6851b2a13f18b1e0207ca2500d1cafd2749d0261429dce13bc4dcc7a6a4c0143f5f83889f22b2fcde068b54d20af0b8fa984aeff0aa7d9b6b5ec36f027105806dcfc766ecf0a5c9d368f7d5103fa9ffd3797be42745493b9ee1ecbd8628e387b2f529e9c86743f9ce2407866c9629822e950f1c78598a0432d90780e293933db5339ad01413c12f20ade2fadbe324b8286471bc24933d1d46474e0e34bae677eb3c3de309d54183dfe50d0d34ac3a7a43dcac5dc2c10e50b4ab1617b1c0c4ba7e774208c9080833fb8165347ae9961cfb782c4c0ee2a06a2897aa6d00a71808a5b2318021ad18e2b87987dd555d12e82e3c61af1bc19cc9650a43d83a458d4d3a5a567ae2350d18efa2e72013cf4be2a23ef0ea22082c0467e68efbc82812ee39cd60da43d10999077941c439b2750d1f834ba148c0d5344a49b42db8f247247464b76efe29bc0b02454c9a27a63bea459f240ed736bf17c6a6718af907e0d5c8768e129e4d91a3ab601af8e7c85885e3abe9375dbe44dec17347c847f696dca61adf22b9980667e6448f50a24785627c9f84716f251524102994b467a7cbd109636a460c280f00868982e042c62d1cff95e7132861582aa697d8c6523208fcd19d105b5fccdaf6d2332c5c6125424bfe1f7257ca9275453ca8927d16de3800addc35145ee3ab0125a21f7e98b7dc00d127089f2a80bb99f67631888a1be5a0103969934ea9d689e03f88ee16a3a2b3562eefd2e21694e8b2f56e059751713f587d7be8defa6841610369b12754cf6d92b68890d3550b755d0768355158982d37d345261d5199600ae5077e710b6777b521b12b70721b071411e4cd3ebe3dbe048f637edc15e75e7a8a167b1699e92bd05c47c07b0eb357e51abd86976d3a0378dcb09ca3cce67aa5005b11a22daa409b7567f2485e5f3f0d01cdaaf26011af79db961da555a57884eec2feb0097eb485539846973d06a188650a18b0ca70f0013c60145d91cbebeaa85f1b724fb26116cb603331507df396f4e3daf4094823defae7db25e075f162faff27ff22210ccf20b2d20f7515a9609c06a5eda43ec5aed489fd8f354771b5ca7b917127a892b6b98de874371a432f4c7ebd068562a9c8214b5ebc5ca327e8c1a72ea0c94567e05e2b462ace6352e6d3827e689d38b4e9890995bb6f046f9be9c8d67a547de653f97231d0c8a30507e49ffe412f9a026c04551af70753731a6c3ee256ac47f05f097cacbfdd078a890b3078323c4208e5d5d8881b5be61f4c50bbbbbcbc7eed8018d0cd3295e5e8bde98eed2433c684fa812e3006f8cff35a773b9b04abc76a275f72e21eb5b768cd813aeff7e2cf1a9ae66c750650fc918f0130f0ab1497107c0671b5223fc6ad58eeca0064caa93d25ae9c11ff916638fc78c298308fdf09a928f64ac9b78f873283df6b05864be5cc9c251d45beb0458436d09dd5fe65dadf40b1009c3e250d8cc5b61f0b419770aa96239efb5ade30c43830b6cbd67e70d3fd01b1c1a15ea5183105c7edcbc6642b6b909747a1b6262157c717ed02c306c622ab7c8034fe3df126ac5b1c943aaf0ce84e9eb14e3579d091edac0d63e2e21faa5bd78d8a7a6b42b86b4784e42f93ccad524d385eb4c7b228e817fb78f3a9e3eb6e2669845e8d80a8aff23d37e9cddf282b1a02f155858ccd163cd6144479a57b0b4806d82275e844005dcde77ec58dd58c0cecdf34b270a55a098a8fed92df470a441fc031f4084832766284b3aaa04287aa64c49bebd44cbd4e474a9e1c109e1ac45e2b2aa7dcb805689d83d7f4b3ab1e5072512808d1e2d14801ce53e7888df888ccfa74d6e948b56429a004f288278fa2d892886a0c466ba0ee0d1825158890ec8c5c3a754ae4adf1149361e014837d0ff0a8248193f6239a14cc9457891f1deef96073e47631c4ac3966bf3587ae6c9875d180378cb0c68d876f0efe15900eabbeedb618c505ef282d73f4549da99e5cd26dcbe7012eb0207e74864f46558b87840e5adf9d1c025de5d2348f9d6553c5fc4954ae9c9e820ccd46ecea4cd60bc0fa1261be33c0c9e3ec575992ef6e4cb1f6b2db730e11852ab1e8d5e73c2e8d88cf3e08aec640bab97b121fa83cb7379686192da2a84f00e95f5cdfad1b514db89988b2bc1cd6658dc5f1881127b691a99a978ef229c043134a9449e9510db8e8b270835b824cb3eb8b8b8b70e1f647f3405ba553cbfdd3cc0db54552d09b548bb912fcb63c6a2155a2df600c514b2af9675f174b57e8225b09020df9ecdee4800925188a632a14736b3e25ae205f9405436082483ee5923287703983aa437087fe990c3b1f4e5a142a5ebd2bb5fa3d55b90e54943adb4f3bbc1b720b54c7fec690b8d0fa9c0ce3826e529adaf2ae6e9c85e111c9d6645f0c0cde481e088de05b846442eb9aa34be10600c7261daefd4c78da866ab02c80e1fe266567cd3055e8010f7a2bbbd6c9bedac6480a14a9241573c4e85a65c25a3893bbd21cb09a07fa0f70bbd599eaa0d94690a39272e2d06593a9a13f30baa75a81872f68f9209f8dd27559cab19094f1e39e06409720593ae3357406672fa5f816c15cf4e46aa5a73096972fdfea3c10c418e0167ef19187c437892118225ba45e9e1677c5e8292fc37f4b3e48585a37c0e171936d05b24fb6b1c7b116600d23e30ba46f2509d3e66b01b8ec0b47a9a6c0f5d14f3611de37ab480c388b1c9b331ae6bb63d0e631014de62d22b8fa0ee016003033e3ee47814c1311efac4d904c66f1602f5af9eb104d5811ffc0a1a81b1d744945cf722904f9a46f038c07c68eac12a2f6f77e5c29c28756478eafeeb248e6106b77cb52985939936981e4f9bb72787e06cf3d25ac2070d01d75092e749cfae705cc3b4b8bd3ad2faad9d3bbcab5c913ea42b3ac03d1ac62b4250ffd46ffd9f8858ed9cd56fcb22002ecc325878279ae495b94249bf8e5d72bc9eb0856689447f6347f222c7ce474ba85acfa89c18f85b2bdcad19b008974b756afeb00b02f78d0d43b50385946735b72bcd0165cc248251899aacbd019b8f550f3f8033b2475ff7207e0cb23a65510bca809987ce0a54227217c79429a9b825670e6a2d073f34031426768c227b04e302c0cb4c1103b49828cefd4863a48295783e0e174f8af6b130f590f1650388b77b675ff3b2812c158563de126bac99011674b132b219070a2befca7a29b65eeac0b65a0b4a7f64715d856ca1608b86e4316e3d0c061ac3954b1afd2c9a239180970773ca6bd013ada624fb61a96ed1fb2def685c73c3201e8fdc85ed5eef48be4f765602081243f7257e9f3532c51a18d28dcd50ddf2575f820fdf274c4f41fc013bfc9f55b3cb472700d16a1b2d1a80b743ae993013f6260f8b82efa6b66591b64f94aabf5b7bc7ded3a83c29d11b88b23b66095d0ac475786223513cd793bf16802cf89fed5ee2d034219ea0159176f7ff86e02ec84b09463baa62a3881d44d9a9ff61e0807241b043a670fb05e3012b29a3695fd78ec6c3e30de0acfe5ea9e63a00589995af3086a84b52a975da9fc7416f69b5a11ce16478fc737f27b8784b00e8e6dd8f93c9cdeefce191a08b51c13f991580ec1147f234be5392c6c6a66d6c892a595462b2d91c8de013e0a5d0b1f0b429dfb0d03493af714a8cbe7b849e7e480704f27f7b16f74e298784ea430dbfc48798fec53e9c697bbc3055a76f9512229eaf83ba44b6fdcfae5c64ff7fd1d4c30a1378cb385d06e3fef178e4e8b10da7558fedeef41f0e5cdd9a5037eecf7eefb5a837fb7fe1ed41f8be0e0f75c398339bf2ed265b8d1c91ffb05df85f5e39d75bcacf37bfae5be01fffbd875521f7b286597fd9332e2f8ebed6fa2f0eb37a178783f52998e7978df7bfd6110197e7a0fed33f8747c557f65bfcf23bbeacee0d33197af7a55c4e1bdfe178ece1070c8cd016d0e987a9c920fee2f05f250fef414f89fcade47b5a89e99872fb47c8c3397fbcb43a4af569afb4bfb2a73eebdd7597121db4bf52fd4e3bf2fd5a7fef2d0e7a7e32038e07fafe234136f21b45f1c0dd42fd7d12ff55e6df9d341f9d3a5f703670c04f31d46244317ef175a3e5218cc43db6f4b944b74ac7560a9cbbf7f81acbae43af7f250f61cff86b683af1bbd9c96e7e190fed203b2b9cd71853d58df8fef6ae151a9cbff3eeaed20d2f2e3fdd3dbdcff763883cfc5f7c67bbdabc16f41fdc538de8fde0d4a75f1df2d3bde38f705be06794e4bfef67dbdbf18ea0fc1cf8ff74b832f90f5ed17ea550ffeddafd465ed15deab676dbcc258a3b4fefcaafdabd7f728ef573dff6a7bde07913dc5735efffabee55d1f7e3ca745a336f8afedfa8c5bb6ebef061fb5efbf76cb47ef7ecca1f43e7a3f48f0768fdc997b470bb4fc68dac153ffed9672fea8666b06f7462aa3659726ad73e84fdea23043e80b9ac2c47f81726ea513d634a4be503957b94942414dbf6db2d2ca557a6be5280dad4f8e7d810b349d74ce39bd1baa8bbc6077b7ed1cfb1ddda1ce89dc52980ee8deedefb63920949be2d6e30e6d37f58836523e8b3a90a4dbe764fce901e913c8f480c89f1bc77937f3ebd3d05bb1c9c399b47a36a6b71e10d3c6913fad7733c31a79947dc7125a09d353ee4d7bce9bedfbac3b2cd26f64e873235fd2cdfdb6c30d877a37f3e54f1c3a8194d0d93063db9c73ce6905078ee832462937f9f3e99bbec7eba6a7f46926d743e5739ca772210af0e9263e03f73d5ce7f80cdc0b013bc76790dfe375b9719efac5bce29afe0b61260dfb960e75eb612d440a13d3420c9edb0690d05d4a7f66891bcee0e7efd3bad5fa87c17260b8f0ef73f7a81da23ad5839dd62dbc3e18efa23fe7b8b4d042cfa84ef38eeba81ee43a2cdf3dcd4475988505e354ea57ab95cbe5722111d342c7f8455b5a2c158ae618edf230b0cb86f17887312e0f2386c2c424b9e6d7438c86690a43ffeeb0857e4da60f61b3e979affa1e1edfde877a3d3c1cef514fbdefa3b7fa38612df4ce7bd3f791f2fa9e0abde32b152ac56d8fda3bbc8ff3ab9a87d6e33c6c5d1e3e0d61218cb563e5610bddf4a66defc4a4a6c9064768578c7f18ef22e35d54de773be3cf2010d56b1e1963add6ad56f85fc7233bc871c06751a510bb90d5b77e7e2870cb2ebd4f3feb5b7b87b8eb50af40d4be3161fa59bbc5b25d224c5e81f9bfac1f6f1faf555a6f4f06ec5f6efcf8386bb56eb5fe431828bdac93398fec33f8e8f0c8ae398e7efcb1e7bf53b5b5e6db86efebad9ac1a7eb57fda759d2eb81fafbd4c341fd7de9ad228ae57b16eae3610b3d7f6b5b127aa0ff5354b3f8ea350f5be8aaa7a1a63799fe559ee63c20ff9aebfc5fae236327a6eb98fe317662ba0c19fc61b8b8bc56787dcbabe5d5d2d2d2f26a696971b57097cb75444c0b376ec0602f2f5db3b0ac9eb5da7bef9d981e31315d6b191c68efc3981ed3424c172263cc159497395b0f43e75ee69c30bc0cbda8c04b5dfc17fcef821bf51aaf5e5e6badb5063f83e0ee58ba0c8220985f54200c30742cf9b70ebfbc74168d71eade56abd56ae5ec799ea78217183ab8e25a6b9d75d65ae7bcf3f2f2f2d25f94b495a1726fe2f40f45a4547adfeff687f1bbb4d6a8ec612c83c558868f5d868b79cf8671cf86b14af5abd52a77a9542a5504f89a3d1b06317ebc831b5f527387f5e74bf933f8f4f99775535fff6ef8b6fcddd95aad73ce97ebbacedb4ea7ffbe8feb4edde9f5c9e33b37ba67d352efa754576beee2a16dcd2ec5597cc54358dfba7f6dce7be1f52e7f5da6cb9fee0b96e2557fa8ff5ef969a64aa5fa1eb1abdea7a376ddaa9dfa53fd1eb57d7a05f5673f6f8fe31d7798d371ef78c86df92c135b80086dadcb77305ef5ffaf97f131f6c7b8f7dbf359f60ae3e8fd58a552a954eaf5c27d161ebe66ec399de5533ccce9a9bffc63a15fce5f0cfd4a2f0589e7fc6d31cb5ee1a49ec5f52cdf0be18dd56ac55f2efe5dde75600776dd9d9141cf9be1611083dd7b5bf38da5e3917b2abcbee5bf3dbf7a29cc5ffdf6b7c3dfc65f3d16647ffddda1eb31670148bb38cbeb27d7797d0bd7d93f776eb0ecd0c5776ef4178f13f6bfda936f13f6fc65c48831270c18af7a18aebf2e182def6ab5bc0b464bcbf5d3e5e2e2f234b3db2ef35d2e97cbe52242d77fc90efe9c2f7f4ef04a4cbd9bcdcba15825595838cbf761d50e7d3a086e13563b12d45df7845b3bbcd1737a0b0ad65d0f7b7971b9b8cc180ac5e2fa38270b5f7d6ae57a94ebe394e1322e1eea6f79d4f31d270c8ae36f7dcb36dd606d21b283df719b8703e617f8cff83bc334e3f5de5fceb1b07096ef6309776ebc68289867bf1daede8f1cfe339e66de1973c6a3f6e5537a405cdc4e58eae76a7529e6e0d3cc96f7e92ed79cdfe27ad45c4d96d5b356bfdafac1ade2a95d1fb5c31cddcb0fea1b3937644c5ec3ebb96355a7b7b333459301aaa0a0c3ad4f799feaba9cdf132223fff775df6b94297fb97f9dea55e14ecfaa8ce23baa8debdc47eda87abe5ef6320f5ba914c618e3ae6361616141816aa7839a877a95f3eb6fd12d79f52d3b2aabb22adbbd0f555d1584b5326c326c326c599ca0c5d2f22daeeff177ddd6dff72b8d7afd0101ff5acbda21e8791afff7f7db3eedf16ef5ad5a3e952a954aa56caad56a7db75b27d85edb5298ed63e8b9f542a15850df6bdb36dd4114086a3d616fc40b81bbffbedba8cf5bb768dd759f73ce59e7ee57aa8e25c7d0bbefba4eeb1e4e058631802cbf755d975b5ed8e56ab1748bc562812cdd62b134c8d2ac9c73ce59086d3f9b737ead75d659679d75d659679d75d659679d75d659679d75d659679d75d659679d75d65ae79cb3d63cc4f1c16d4249cf870ff8d44b21f6af87fb1868b7f170c866238e21720a2678089338f34d58c4a17728c1cf6da99db51c67face9a6291a5ce7d57644902fdc82ee40fa0f72bd5a7589f3afdc792403cc7c577d8d2579f74be7fc22ffda72fa7a5c85291a59666b99a85d5da5fe62cd64a954aa1502854d6a78c3a65fd8120087edff77ddf0f5dd7755dd7751d0e6dde2c00e99c2550ef30c63b94401d63ece21288c248a079a4c89204ea42a43c8291b06fc3cbaaad9b091771c8f00321540a954122424050e0a340f03f1e230efce01771a84c104928c1ea3bd5ab58def55eea3d540a9541d40e4196cf2ca80c668e030e1902a26ee63aa9ef5854a994cae5792d568bc562b1be6bb1bed3abd5aa049fc6bfc599fc3db8b738b3451cf8fbbcb78803cc3b94a1e78fa39eb5b78efa5a28548b875b44f130833905a24050d38cc3bff4edafed4ef15e182ec69d4b0bc3f002c3ce4b18331ebe319e62ecec9c31729b9d4fe79c73cacfc337773c640fcf5cced451ca5ff4637f7d9d7f9fa9dad925cf39c7991c67e4775d72cff36e77c231ce6c176f72db30f6f0cd38c699f836e77b4160e75ba9030fbee0aaf0bace6e516a5d0f78b0591f78e8b347e9d3872425f8e2230c4fd89496564a29edda457584961fe23b7f82d8c7618240df7e7a40b69f1f2ec2e4e3edb9ede7a74b2e8e20bfa7d52dce2664766bf98c99b86d8abb45048718020d44f48083131b9045a10a2461e20a2780926421ac051d143f38e9a0e800970425038a09e4a21bc8e8e492165596682c3a65d1c348cb51b4a485022c20030d3ca18106a8f002890bac000925516031a4d4613ac52545901c2255d404134963f0440eee1233dbd1660e2db858c241e764226d3518886680840e4814d1821ec824a085d0123a5ca1224836bf65a70c8c8abad0453b58d9a217424b3449a2090a505080252ca0e283164659d07083c004074e464c2861d92d6c9053062c3dd6b628eabac7da1638301971adc4293c24a9c04f0f3b2c59e0a84f154441832476b8520414569040c51137cc88b0c00a92361ee84003435859828b2b8aa80e729414fc008415085d39ca21830cd8805683120ca6c8e6b75e7069b859f4c91205063aa8e2c8141c20c287881a18a9155569e20922360f94d0440a2fa06040e809143e17c842031510f281941f90a0525822206ea0830f4b1c55313a017745026ea0041315480206547471801dac5c00072d40a04409ae186a41941e3a6043165b0b4ea093708956a4a002408032c50534408b4619f8410e7af0e20638683171b08513ac2d92543e352461a08b1ad4408a0e70111621031a60a0451551ac24d1e06900074108ab2b7fb5a082bdf8a1c5014db518420bdd2289a65cd4e021016325377165083cbdf042890c8324462e173d58ddf9967ed18592af0b20721755c0f0e26886132f6a838b5e1101ab2e6591aa5ed8f0d2850a5c462fe001d34825891b9250808ada0f78d093c4151aae18c289a428a60e96a0a8aaa0b47841eb72d1c3eb6e21c4b5e0e1a50b2958e8152256744907168d428b28286ab4849147e57ff1a41602a52e428f50a0f040077b8402850d01c8818a1ec23a4d1455964821858a1149c8c2ef3f6651b43841500d16a8e205377e0bf173440fd4b040400b9ee80087240b44a1826885053f08c10548d0439527b03ea9147d7e9c6fe7b7626264135574407283103fb84094a120a21226e8c11449aa5072c4ac87263dd6826ee830e8b1d603adab668c7bba3571d26914219e74faeda0db0fbd1ee9573a841f215b48abd3c76f778c38228e888352dab7b71336e309b4cb8ea308a182fe8056efa141518a0f70c0c5ec025d00514cf70c06681ba65bee40031c846432872b963061ba7334f1c351c57447a21db81092363049a22da120888a6cee9f81ec9e30dd243451c5d1c598ee19031c6c41f330dd2748e0063fb2b96150407633a65b5251c20448367794dd0fcf0dc30332ba89442c6e581285ac48cd42467794e2480c92c8e69e6124bb20a69bc8ec420237d84156e4d484872b661851ba2b0e7a80922485e9ee9440f1840eb2b9a3123690d15022a39b889c9274434d5664d670c30ad36dfa4050d04c7659986ed3112a4f8a64974ee94596961cfa74d3087460044d3677740113599129371a4c3061c2284a8a36816e42488eb9fdf974be69fe36e7f69dcaef9a76a0cba35950dad91ff55f38dc733f2afd13be278c4ff89e4ea7d3c6bd7e589d8ebb27ee5ecefb7be2b6b71ca7d375deae9c944b3363db9056a45d1cd2d2d1c274e5610c7dcb6193873553468509437ba4208b60434ce8ef39a0d006083552aff8c3d6b5b8d5bafcc42ddfac3ce292b8f3e3cbf6a99dad5d573b5b77addd47a7de3841fbaf53674f27cb71dcffcb94b9cf711cc771dc9f3acbbdb5d6d24c9dfa95c778b471715de01f8b90acedaca520b82f1788481f34919dbefb1ed95f78c967199211611992ddf83227102a90a2242184a40522f03162081e983d510413491891cd2a3fc841055774f00005a8c86a2a7024c44c8b2a78f003d90c41921dace837ca10e8580bc1508fb51008751c3dd676a0751d67a44ccc50922098d0810829acfca89da3520afd6ddbb821b51d86ba897613e7280dc18db2e7e9ef4da767f270069fc85d0043871b6268008151dffaf6f16ebff1cd46e7eadc8fbdc8b643ed61dc4d786e7df270fb53df7478e81743e8dbc7ad6e6c01f083de3ef69f40b8befd66710f9dfccedb32041a0984e82a8f67eb2e1187ec1171441c5cc4c1fdb68dfa36023d2484762ad4c3480beaf269e20c4fed548e40c7da0790f4adc7da073000a3cf71209eb0d9001deace551316c3c1e64ea18bcebd0a3396eadcdfe05e2375ee5549963af735333663b8a373f18866216910f94268df3e084fed3cf28bce711f0aa19de31ffdf9f1a1520e014ed973e34b07681dd34f8fa6a799b59a4cb59a7e06913369da416ce7b6ce71dc65c264164a519c741c3d2a45b1a1df2fc670fb6ae23a9dd98674fa5bb5d9e24c9ca17126cec499385ff2d44dce2bb70b19b3ac0fe5107a66223fae3e94434232c994690102323604fc300ea1c7d6c79740f2067944220975e830a647588f34ce24e935c518639c928a84d167d92eb7e8f4c3afd3199b4912b6e2e1b75aa923144f0ae3179d52a11696b493a4fdf73af2f1e70ddbcd64da26276df296a59c301a4a1ac5ec41a74f85a8cc76640e51996fb54e7308cfa13c87be39a43f945b686d32dd53adf5d653ad537f199f4edff2a49452ef469b30fad4d2283addb839e79cd334b96a32492ea50c51d965dd86240258f636b4194d189552ca563461441346375a28a54899b1293326b7a4960ef65b34532646363f853863a5c718843e6b385c99d685bf1137ce58673b3a63262ef68b696a52983199633fd53f6d8cb9f9a7bd3da59fb7906dcafebde9bdaf266efa9ed94f1fbd1fdcf7ccee952047b89708bf1c7e6e5f1edaf1a599de2e418e50ffd68abbafdb041a8abf769ca7768cef8c9ecd89972047a04f2911bef5ed69df361b53097204d39b6c37d18f1ec7793c696977a6487fb6d2cdd168fa4dd6dfbe47fd4dfaf4394d1c67e7eee82860be8c1e7fe89fde23bb8d5ce7c69abe3ee5dbb63f68d3cf37bdcefc6dfe9d935a1f2ba90c6e9c3179b7cd59c9d19f767e8feea7e57cb84fef2667a7bf6dd9232cd2e70a5d8fe47888636d0fca7dfaf6f2b7d70ffadc73ddce8f1346fe8c716fa25cc6b959209a62ad1f23fd564bebc8711cb7b3394a638cd164aad5544d5be4b85825464a2314db46638c91bf698bbcb5514a376ee336cecacd88dee21639ba6d96c658a1298e1cc7719c0b9f6cd735c5224619b998c3b671dcb671918bb1879848c7dbde3a87b1e63d93521f401cb7cb92e441c71a12a51eaa5ce2cf189505b17e9924b8f469105d356172cf00a1438c798f7863c65ef263b72f37bdbd2ca2cb3ea50eee0ba7fb6dfb6bb94e7cfb57462ddfe33494dbe89bdef679f22ca799a7bbbdb73b9c6f5fee90be7c5b657d4ffe496ef3ed9e8f77e53af1c39d05f49d569f45361f3b2913a6c87be634994c264a278e8f49522a94407d2b3feaef7dbaf1ef68a209bd3dfef9f7c17013425f38ad1732bb4ecbe3b79fd420f81a850ab72e3188a52c82837a2fbf0433457d443e1085923bec99ab8ffd5f6bfca747a9a68ae330c8909fde33fb0c3e1d95c229cc67f0e9281e238ecfb57ba6fc170eeaf1a330111024d2510f6eba4d1cac42ed5086ae577ab54a6d38f557a531b53387f8f3e7ad62b1648ac5d2617121b4e347bd52ff52b17eb55fa95f3d467d9014c7c9ef09991de358231d731df9ba85873d93b5427debefc52814c7df7a3d5bade90141dd898afae321917e511bff86037a34148577e8136ef7270cc89cb02450a88be2e1bce00666d4fd38631886dab1ab5253f558057edf6b148ae3b4fe05be408e83fa946be5da2cdfc2f85b2c2a8ec3f22ffda8577da85f9ae3a0bef52915f82c9b85f29e85955a719cd4bfbe8fe3a05420a8427df470501f0f7d404e7382255b4f92c852ba7de963d73cceb6f9afe823fa8a268cd226cc0516de86bf7270dee66d707cf8781fd9a976aa9d6a954b8cebfe8a3ea26f47135a4701f2bfc71e9e6adf4764bd4ba7e7054d18cdf481b3a38cdbf759d81150e17dfc8f1d8115fec7dfbbaf11223eb29aafdc067a990d10fbd2071b5e84890c155df3d2a7f728a07ee53ed43c0dadd94cace5f71a9930596dd735e8b0c68e8dd48ea39f66de9f1c34b3d084a9f03e3e7a392bfc0f241de2a34ef1136cad8b04fa463a605ab1d2b7ccc308dcd0f3434142d2677a844283687f85bd99fe76a615180046a0ef5f6e27ac3ecdaca18f377beccd7ec53f0759adb5d65a7f2b5b9feab7cfe2abfba37be5dffdb93cdc269217811bfacecc4242f5ed5bfb39280b8910046d3fccb359169a537a9d527afd599b32f7e727d28ce9af5baf715ae934f387caccda84d95e4adfdee3e105ea744a788ff4274813b6bdddb6cfb32c64001f5fc35f392ad8bc0a2efc781cfeca59e16b7e05ee23a39934d3c77eaddec747d955c1d21efedf3ccdbc377b1b92a1492cac4801c0fcd9866c0eea13cf00356ff3d173c1c70ddf866af68664a3c28ffdb2ffe3a36cb55dc0791f363536353bca6a7694d9b850f33f78047a7c0ddf7cec08a4f0387c43a230350995a93549a7bff74bc6a75ef6df2f19aa577dec375fc9575a56187fdecdf7ae5f6d07c4749def5d5f7f7bd9c3f51f8cc719d79a4f61dbfcfd8ccc580883fdb75abad2260c7d59fffb99b0cf080774fd305fc957f8678447159ae563c0c0f7e9eaa55fb38f5e8e0d7fe5a4f0369fc2fbc830929753c35f393dbee66b38911ecfe4be8f0cdb6c26f533af76f6aab9acb5bef56c2a0dd57fed0e69af5fff8523f5d76eca7756bb43deebe72c4d74521929972597c39da864b369c8a477bf6e1af7b256de8cc2d09732c6be31a3f25d582f77db0d068ffc7b1adafa1e3bca5c36cb9b85add7fe8cd04c5a69947dbbf52d3b851d65ae16cf415766ec67ca6c329a85e40492783034273645217bec180a433f859d83c278b3094375084187deecc509edcd3ea32c3461f4691fd18c499e83268c7e9e4d1875e1e67b7cf45ca8799bffa132369c0688caf4e0f954c3471889cadcf00da9666f794665f2acd367d97469c24898515162ab943746ec3022169e6a9dbe15b99434632625d352050a4d563aad463a3551a1a62957e64f8f3ddc923a0bb358abff92666c762a25903483d967e563adb0c4187f8fd9f19744fc621061f4af0b3a7d2f3fd1e9db296a1061e107a5d38f1f2d0690fe1ea14c71d4f7fc994666def3863d8fec24314dae48fa3e232991a80c93232ab32551187c3461f44748ba82767feacf8c85f8c8c88c551d3aad151fcd58e809755a65603f3f3f34d0aadc235c31f3665e50d28720d21125099494a456da940940adb55e49aad5a8562955a952a93569c6421049ca8c99a2e02aad128126d036c8a149094830eb220261071e2850810e5c091a41257a70d7a24ad34af4d5c2841d3539bab1b9310382924fcafda13229d0f76654a6e6e9df1f2ad3e367d0c3fa446e435486880d2762f3f86f9efe46a3323d38911a4ea4e67b7c0a3c861b1d57748fcdc4febdf76dae5df2203db4ebe8b7757f7d14ace82092f3d42e3dde43bbe62f9c6eb910fad1e24c949f43fb2f1cbbf5eda74bbecdbb138feec4467e340f7d6ab5d75a6bad94b67e7e1a5a33e5124852c1ef7939d75aebdf4f5b6bedd5fdbb7927c68a5ce291831e5bcaa487dfbe70b69f1fae6f7d7a38d2623ea4a7d69afdcaa9f9687300f46b3e9acd7ee5d8fccddf7022376ff33eb28f766f6e6a361b9b1d65353bcea84ca5593da3325a886e5858710409ca165610b5608710788103901543d0c0811ad06f6d408795167eb4a26a3463f43f5a11523ff18f26448366934d095d32697368264da479348ba652a7bf21d96ed88cd02bd40a7d32a9d026d409a54aa6745aeb941ea140f4672e5123a24e8fe8f43fda15b9774ca0ff3bfa903e9a479b305a8b2ad184b9aae8b0d2809ae8f4e9974484a11f83af069d465994cd2333c947fb7a44651a10c410525020822726600119fd8a44655488420b182ce51004202364f42bad16d9fa1f6dcad8f8f98a9e7c49df94198b50ac28eab4d2ac748a3fa44e3f5aa79fd247e55beaf46d95953663a1372bea4733166e495bd28cc9a54a3463b5d39f42de6cc670adb44eb78dcab4268c7c2aa1c491caf8e973065174e34b28ed263953ad5366d2ac750fe8eef49fd632f2702783decb6da374c3752cf3c71dbb17796497da4e98fe62cf943192ca99326194d25131d262a094db4cb6ded3c7677dfcb72ad6964a1366ce62a032adb0a543fdf196c763d24f0d26b4a4e96fb5b4a698a67bdfcbd96c863f1ec6d0bd979fbd38f1c4134f8c5f7ec7f7d4b140631b53abd21445aba4242aa26527c216152f06db92c9699b938db6210d05256d434b9684db924d4a9f3268c6ba2da81295b156eb56eb1f068b8941b63e9b4cd8a4451406047a36654e3f25057ae87525ddc984996f3bd9d9b96773ce294a7d724d66b0c4fca8d48694cc1908cdd79c737e67e5f47ac82f6c6613143ea0c36dc96c42a4733fa14cc980a5f68b173c71c5d6a409083c2a4d8e78e20ad400b008421222c84094216632e9030d4c01e2688904bc882fb1892aa440925d3993041dc92edd38930f40f891dd6a9b00410e4ab2dbd9a0628a24171b31c48fec7a78db3320704288f623a33bca6efe9650a124bb1a6f3b16555172541bbaa1a64312a8bf8c4299386ea3283aa744a1a49452a25028f9313df4e99237310b0292d18d95644f77b03bbadcb68d2e31fba152fb6109ad36821ca87cb5228e2c591324a0c44856e40445767a22b74856e4ca4e9c89e9e36b79429021d6765dd775ddd6d937fdb6b9edf1844d8eea9f0f9baf5b538a1b5f647469a9f4dbbb1dbd60044c0cc185123eacc00047558aa0646182239664527e4b049a91175518d183254d04a0f60124aad410850d4a62be6fbfd198264e96e4f694b3f28b6a2202a8cf37cde7b6102da4ee28238e49e92637ae25d6720601054b4e80e4045766e8e3011b2f03f0237c18d36348781aff44660c36e343f9d3a334d2e34b2b3306f391f5f1e514a9e4faf83269c65a3ebe3eba7c7cf964c6607c7c793463313ebe349a3119ff1f878e20e23800f03150991b223ccc36615b0194b049d891c2ec486102705f2e914d66acfb68552994fef87dcc4152c8c6b4c143d96dd0f8d0c6c3fec26c601b4f332f8dcd73637a36341e060b6587791a3b461c303e9dc64f171a9be725e2a0f13460686c9e1871c03c8d97558d87a1b11fc6c68efd6587bad7f8d50e6dafc143973e1f66b72c58e3619ec6dbf8550d1b2f35f6eb0506e66bd0a861e361768dbf12c3ec2030df43bb0d0ce7a95d07e65f3e7a2bc0701d1a6ffbcbd3cc194f3361368dc73366e361301b301b355e08ed35784883f3d43ee35fb810da67f01fb9f76f19f2483e9148b22693a4d29653264c3e6baf36910e68d59640f251a0feb65422675b0649a114e412d964c29cc8a12d8f90341cfb0605c01661470a737d60f3c48467a304b11425082569a5ebf1055018a16a4338a9f190027c54d341a9c6c30c0aa36ea9c798f8d26db36001ad735a5041bee598b8f29b54400a4145d684d841ea68e3364e081ad7634d0823841841ac0961c23288295d85e5135dd5d9ee354477ea4e41f410a38c1e6b4118d94ef774758f3526565c7aac3141baf8e2568f352634263c6cd8c31e930a44e941a97f1594ee6062bdec65dc636dc9085c3dd69600e52f7f282d622061fde91a10455e8f352086800841574dd8044203af1e6b3f5869e9b1f6830dba2a955f38a94e3f77cac308802cb836de8969ad3ad5ee60aa27141a69a43c2241d956c0556aaa9a33b9b426ec08ca67134a29ddb66de3612da53176a3f1e84a201195e8544e8e04988d72da7d364995b89bb694d28d6edbb6494ab7ed6584b27f0c1f674ccaae3b7936429d06d124dba6993146c8247246656e3edac89f4e3fbe86f1f8c572597dfc1815e8b0deedcdbc6f49ebbcd475e467c9a958b1af3d212fc8095ddfbe8efdfb5e9309b37957ee0d71cf49d0cf84a1ef2de9f11aa1810eab9e567ecca42513e877eb12d71aabcd58e5f889e4f868271e75ef5f36bc9548afd5013af2f5d71dfa34d11f653e326114737c03de89e9af5fb96416c7e1155e618ef3aa03627af5f2cb98eef2d5c585d7d7ae49b0d88c260c099df24287de0c8710b54a1f805e56536bf6573fa3493f1a15bdfa101fcd36ee86618e1eeee05aeb6b9d8be42a3f7af96f9523d854fbb10f19f2786af7bcec791b3f891c23e1cee3067af59f69fbae189930fa4de9f453ba91830e3fda50df7acb085ce853d1b3f675d9fabfed714e8a0eeb8f173365f0d18449813c41caa11b7b76f9b67e971dfb1dfabecf7e8ffcf67d7adddeb62e7a76172e532047b85f77b8852ffdfbb927a197156b2b95a259ad48b52acdd82b8b2b9d7ee5aa5c2174dae3e624346379c6bca7e18eaae7afb652fd63548f26ec4603e91f5bb32b1106acac56ca2af9f7b1bffeca8f36223f76fa1a68c6c21d557ff5cc5f9a6f9dbebe412399b1d889681386412694e8f0a311e5d865b6bf72a28984f0541cb2f3d46e2d3f6295e242773886a84e56bffad8a9a65178147a9294187eb3299d7eced90547b27852f3ac5f9952da00829ea59634eb576f7748f328c0f0d2a5bdf96f64b7faf3fe46de9f7073e93afed8e9f1e3df3c1bccf5d36f13d6039924a35d8fea938a546b9556c5517e7b7a8a8f8e62f4b266bdcb5e9d92765ebae427295d68fefb6950408718c8c6f3d8315e7e46be1f0c4465f26c5e1e1f3d9b1918577c831d108fba0efe1d336ab596470c1b319e665aabb58c5392a40d6ada620c346522edc88d94319d7febb1e3f1cb8d5d2d30fe4676d7ab5ef64d6b2a565009aaa7a2948d41a7bf719c675389a858b9a2890d7ee4a976bde89e24213f8cf75ebe727c015e0455e654d7b25890e553312ca0075afcb265afb14f5fd184f1308b2a924ebf12cd9985662c070100045a7eb4560f74d8c3f599df3ff32e182d4f07f0618ed88731321fc24af8f005a0e343dd5127a026a8ad504932e2a40829cdd80b29a9d3ffa8cc185dd2b656e37661bd1ef5488f506640a57327215e65a60c4a0d8c3afe337fa5b7428d9f11f2c0b75e0fae6719f96d60783b1442f50e85d0ce7afdf7feeaf57f9bc7153a480fed9f7df1d0857f1f7f7dfffee34268109eda593c5cf17bf90be7fbfdef575a187acf00e325ff7e268cdec8ee3d099c47926ebdf7303ebf949fe34d78d5c718e1736c1a2acf53e5d804909bfba1ab64a44a86b4d65a6dadb5da6e1e5babb65adb97cff2e0bb2ca8dfee97b62c16b4a99e8ae138b6c36001730685d06e79c8c2796a87712a9a300ae3e59fc043ab83875a003c6c95c0c397f166311ec6fc007898a3c3d89bdd78c25c1cf3f8971d7bf81175fa34f6cb847fc927c0db4e801f61bf2427007fe1d8defad78f1ac45aae63c2db0ebe095f00fe32e13926fd75d32376131e1481bf4ce01c109d5bd2f1e6f13b76c8031f5198562b5f015f7f9ee5978c47bdcc99efc4a35ebf7a3f301528f840afa7a219039fbe9d3f40f668fe541ebb478609a36f637b42f6e57dd9270f64cf3cf4be7e8c8fde0af8093eba82c2db4df3dee6a9bd15637b3321b4b7b817b479fc408328ecbe3f9a1095f98c843a7dfe850e2b8d2679f83de9f4abd14bff8aaafc6836acd0575c2523225e954c580f6c84f2812c9a5869c10672a882450d386081123544910320c85648da40153afcf800c59110221da26c914511901032fa2c5768231a19d027d77bfc9e824e412a9993109d4dd829e8a4e4a4e41474396ca5b575a6288b26dff77ddff75d2e3afd6b92b438239f7e4da22a214fd055a6e6e98c1a34fe46f619b309a32725fbe4841c81bedd27a353cd3e3d993054f213dea726220efa373a69123461314ae811be6f9b67c3122386090388c910d18e88f2d4449cc14fff54146772a77f59927458371db06026814e4287799a1b68fa53b24ca1ebcbfa2c42e850775acbe52bfa885a4bd8cec38a4a23010bfdb93663379efe07808f53265f9930f401f03880582231d1843599311c122fc14598c80a9509a3dab6acfeacf06f49494a0dc968c27424e930cf3ca1bc64c6bea4093bca4f668c7e468a33b16724331fb6720460c787b607202301a230f403f0322399301a50e8d09b21e961be12f6cc96784ff84087794a0935ad3fcc537ae8cf51d372e3a209cb3450feeb369922bf253336bb8c8c239f910fe83bf221f9947c33fa5fd027e4e4da6c65c6c28c24d3cf54e8e725099391cc588c92011c3afd9c64c644e8f44b8881d61cd358c2449dfe0e241de2a199200cf56a2547fa6a2d4f9dcc2ce125bdc984d1ebe40e25d5aed20e1eda1c3cd4331ca8d3d733af7f665fa1090b32a25bee1113265eb95d197b0bbf4f747c8c123ae6edcf95a56aa552a953acb5247c0de9493daa46b588870fb4fcf054d47da8a1d5c023e9a7867f340ae393e4721facd3ff88e20c0fe2cc0cb2b73cfd184550a230f4459869f98af84744c2123abc4a523aa7f4b4a5f250cbabd4e95f29314ae81382d05fd184d59822f4e5b77691acf56cae9209a337c93d3261f4de70816294d03c7ca02dd2084f4778a44e6bf5eaf7ddf5e8fd7000edaf1f28bc4f47e16397416c783c8fcd09afe3de993b7375e898d13ca6689a97fd09af9f472d9a31c9e9d595769f4ccfa6fe77746429cf6734619fadf66b9c391315451c76f770e651a8b419d3a1b58e377936f20b508002e8af327e914c98bd7abf6ed5526bda7b64ff682e8838e8cb48d1fa6d0fe3e5b3dfb942c5b19de6eb966f37cd5f2e84761a7e934c98fcbe4dfdca1dd66700cff724e2a0342f192043fb97ef7869ffeed83c447aa5dda8d2c4ce009eaf28e2a01f238e8fe8d6973ff33a9ec7875fd56167beee979575a6eae0b12f500d6223390f0a5c67e66d4781001cc7f6135ec70e7bc42e84f6cac319ce53fb098f021742fb09fcde20b383fb63c5fbba77a2d2cbe440cb53eda53ff66a3f5affaaae5295d02d9fe374e5543b25cd98fd2941001f4b1040d284e999d7f1f4ef8e139ebee4f1036d3ff466d846c7538fc766e66f64d7277cf4786c76fc8d04f2fa2175f8bffc88e657b4e3043da3637f35cc3f9ad4b5a8127db4169e838737baf761a57d4bfb23fa8c62fb3b7af2214d18fd01ecaff649d99fd217637f56268cfa40cf1e9e8a3e5a0931d01fec06ecdb3726ccfb931095c113c67bea3dcbfb170fb5f72e2721d649a8d317c00e6d093b54751276689174fa313bb4419dfe083bbc459d7e0076a83b8e1b3bc400c83b08d7c30fa6d2b60edbae1deec49c949c66a7a05ae54ff936b66e32614e268cfe8cad8fd035b6e61b3c32613676ec3576ec346c9fb165e73b4ae9deae4aea6cc2a895d6d6d8d1c462c99cb6ca229b9b39bf4aad07ce8d94af1a3b524568566323a59436fb25ebcec1f91b5db5b6039851b942a9b67536e3ea935a6f36911e8ff372e7d4bc0d2792c2d7fcc5d9af5ab35fb2d22a51adb183cef1f1369cc80aefe3e5cec1f91a4e4485c7c1dfd14b113aacb5f2202928761f3bca2cee39d3f0800ef3ac5ff1662f4e74f8d13ea2a8744483397fae94de6cc6ac277457dce31bd66329a987f92ba7e6dad87ccf7940b8c7bc7a37acbf4f4359d82a7c0d0bab176b9557af3febd5eaf534f3067bf573ad34d39394f36ef0dfec9a6761abf072af582ef8b8b959fdadd94cf29f6a39ba4066b7ec9cf5df8ab5dd601797edc28f5781bf725860e17d6434f4e6fe8b851d6538ebed74aa45383bca6cffb9403ef6cde3ec1a1c9c1bb9b3853205adebcf1587a401a8140cf7a5494a1d2a1a01200000003315000028100c07c421c16840a207cade1e14800e8ca84c64441688c324486114668c2186104308210000620094a1a16109304b24be017c0f446747a60acfd4a343d211f9a8c544aa38b2e3078ffa412c3692666158ac3e12b36e48eeb0fa715d645d03f93be30c15d9245015bac3ba6d7e0745c2a607bac3948c54d511629d4023f58c98ba10ede88f32832681e651e0f4feb158f28aff529ea857916fc161ef45d283c8de8e9d9aadb7324224f8ffa924fc67c55f3e70c6213f9027926af99bcaea95e419ab35c8ad57fa85c923cd28a2531e4530fb192703589057089c69c36d9acd44253adeb0f8b8e1e8d5e98354c743e7e19e8bf1fcf21e07dcf88e5747d81a0eccc386b309d4b4775b2bfbc32039cf58a42904aca29285a9467dc2d4371a0d2fd512fb0c052d172294f222d34548bd9f4327415352b54b1c31ffee068270b3c0d28f195e86669bb5393828790d57d13ba0895ebc272ab37782f8b738fb4621144f30fdc17b63d5f0dee077aa694f2fb065d47c21f0e9d70c4f6f1b9a2bdb6ddf4a2ec00c0eecee4064cb71b369378e61ef89d92818d4fee0eea569a7f7297382b68cc1cdb628ab19f5fea834fc2f7cd2124cd6a03111ec86120195d4ea80da31d6988c352a99be39ed867821c1b33ef6aab177ae779f6dcc5548d9106fa65f68af467df07a1006a93e4517dd4c0a16c75733a927a53ff82573520e6bf5dde6f09d04d9b0b4a4eb7404a80cec809f6cce2a04424d9c81e49b638a6feef7df4e10f04084a1e9a50a6e5a7d8829dbe25012298ad651eee5c60d1a08893726ba98c8e2c2c4711eaa46983a63e96893be77c2e34d7dd06b238c67ed6b458b6d280ccb705277604f40f1b8908d8acfae54fc44a56d21ffd92b6988a991243e1f664f9df189e5a17873ea024cbb2bee4591ca4256c08f76baacdcdc8f14962bd530ffa05a248499ace1d79f6796ccbd8e790fbce7d9bd99c1664b371ff28cf30e5f9f8406a2baf9cd42c04d9d842ff6825b6bb5ad2252933abda436410e0028e58bd5122b092264409664dcfac220ff66b36a6e7ba494c54c9b56d97d9b2075bef1ea98117f709545122f0a1d95691718c11147dff5e5f90ee7ecda3a2846bd262478f7d2e54e495a1ebaea2efc6a7e4c709c8254306cf3a13066e40e1a4e4cc5adae8a65a239d91d008bce9b292d42525cd5ee2e9c36910e930708470feae6fc124aa68134d5d37ae1b371d091391cdd2059507df1104a8a10796131fa93f5332e6983bd588ec63810f3066d47380a276bf6bfae2813f971ca1488a6e8e77bad88d20b58c4ecf56be557a257b409ac33c698306dd4de54b491a63809b70e77de262dd6595722d65891d6047648177062c2d4debcdc29fa5443d3cdf273b0d9c5263cef79888f9c9a9552d5adfeb41dd0e422d94527c5baf0cfe70fd92051e06f644abc07e7a9d4df851764d88b6f7bc2fa4c28c4680b456b13e9c846d52f504aa0b5ca05a906f71bd14628fda2175c68ae7a953eb2dd8e4291b44003b5aef2e2f2bd18d4b0cc48433993058cf745176a2a5a11796d9c54562a399df6c4a100562edf6882c0d10b811cfcd4fce265c99affa369ef9ec3d4ae9648d78cca0f83febe8e950ef0d3d82bf76a240efddb854735ff34a53da79f0a3b954d9732e7cb61e02277819fb0313b49832b01dd28b43188809fa73e932a4595c9f6bb2eda34458c5b8361e006602f5e9f281f12ece9ae1444e5a28f3dc3818f45abf901edd4df610ca0fa5d94d644172a7fe3a76f8056d069e39001b888a12e11d71317df45627e122dc1d28d3f33e29786b4258166377b993706cf46bd2c032ed3f1f953ec7784ffa92de81319590085b40cf5de2eab203588f397a8cb877dbdb026cae6aeb5788b5da011a4218e49a4712384834e3a5ba6771df1cae35284ba9a026a8f1c351963bfb5ba05fcb0fdc5bb0538f184aa6fbe09805a94e308fa85536ec095c785cd37dd157627f5c27b35e43cf25ec6d616342402c0f04df981143f6f34fd64d8e292e55677fab0b4d13f3798c5af6e08313a786d9c6f8f32bf0537ef8914e422e6110d3d0b14f1c7d464eb09768578e6eaa159880ffbbff7d6d5c7defafc03dd822b983a9b71521d544da2f319f00613c8192627700bf413e679ee9f9f75492a94f47cdc5e2257eb7ee86b4f749e1c59d1074fe8fd09aa98b7a504a15ec42bf402302f0be791b4418f3847491e20928e0ee39f8a9929786d1576cdfb1c529129f073fa0907b80494cb688e5bcfc8eceff28084c14e942c17218d48a09ab360775d38fd2e690b79ffe145a57c2683e629db13f5180eb643203e7ccbddf47388172195879ba7aadd079c4ca0443d286d57a3fbae03b3d72bf00605493005aa55df65f89a8d44549d63cdf7459907bfbe189f6f0f4bb8b604e311a2db46a7871c277413bf6640e33db2d46dcfd168ddec8b7db9d5cde37bcaa55ae758864956a04965f9312933da7defecc4c5229ef5bd62f51fd21911a9faf17e1c7a231ad1f5d5c28083cca139404cf7185a67800324bd167743523df0f93214040818c0f8c79e897bc600d4ffcea04c3914922d00e8c5673c3a949b7059e9271ceee8b282ea7b343e3011b1f9e725380fa86b9052361c75e032741fabd24c50f9e465a1eb0728d24550317b8b64b72013a2df9b06bfa622e49a76804e9ca0dabc0aa3e095c868b7b9e8bafcafd89ff67b260c05022969c5bdbf151949ecb460192e81fe30384a2cb95a3f01ac706aa1f76310f6e24dc2e23ff5bb5358a57844cb986b74d9e214f015a51a9c37dd3f9621fba5de1422cb4234b54ad4faa8782da728cc1ef9e881a1d9d034ca980480c8545395015c7e5c36bb8ce2062740075d4ab4b97de2dca092e2df0c17ddfc985d3344a66472503d6b741c9fe6eae9f9c842b395a92c3a60e47a6ea1b50c2476184fc61935bbb941c801affd1686868258b03a0e1bb333197fa1ebc11d11a7240356c9c7bc7074fe1fbd0cc1076e0ed1eff08cec57a43b44b52c06f012b37533fafef2ae14a3bde8b5fc1f108bb8126af18898d16e07f50e48a8818522c2c4cc2a4232cfb8473bb49c9873bd4ceb85ecb54040d77720c7e322a6f8766879f6a08d25902661c4d1dcbfd0004960fdcba103920e42623d1c8e70683cda1de2ff47ca428f190a653a3495eb45b555d3b60a3be772c8764132816368f2a77734a49d3c5ecdd2783b24d73d688ec09ed95a295c731faaa0f783ed9c13c16320ae43a762502c07915d274f3205d0f9f6ae8420b68101de328ba84ceed58b76bbb4c2f6aaea18966ea982252c54900801beb37a5e61a3cbe78172450f7b59821ee25d4bf93fed257828fe780d6db79b6e257d2e87d0982bf1643e04df0469ec0c7e97cc7754349b37da01900c6fff913682f7d947263467490332660efaa03bd8b5db7c2d15000418a3fa44448df24b33d56e0304e9883fdd18e1e3622efae10a8b9d004f649a9cb4c11d0ccafee2f9b84ca251ef43eba0c174f7d0f3f55a1a36645e21c572eabb3f8c82e3db0dbc0a925fe3721d296735f78c5cd8b78086a03588c3906eb1a97392c7aa466ed355f51fe53844208cfd0136c4feab08a1b748abaf39750727c3c06e8640f2acef5aea565be2de3429dc3283adf2fb4e25af2c5c85070c09e57e3cd903589d5c08d7796606c42cac43694be56a482fff4b3636c619c7e2970495f77855e889be821c340155fbea9ab23be293a92c56f5b188ceed7e063c3c5d28268d69da7ee25a96f73f8b8f96996d8029365c7767ea801fbbbd07fd67044949c73a52991bb153fa2051e975ec682a13d19e0854368f90bf6c8a14719503b2f9336e5ef45319dc880902095b2db12234396a27e21ca70665973e393403b9a1836fba08af61d2b5135f2419f0d1337bd6bf3854ca4fde908250e11a640880f81975fc484aee0974a2d4c4f52937125c1c66876bfb7c639c94b310e0f02ef8496a60b208b5e29a4e8974dc6fa5a602a539b579938b286072f40cf879c4e86ba1e416e1b0f2c859add46fa0f86dfb0f8c61c1bccce9250bde743f3fd9ab583e0850087ea9837c7dafc33c67142d0f8bb3dd340ac210e7502dfa84f2002fba5bb0bf9f07da417e2bce0bb79ddcbbe276bd753baf192dca216c13e04b84d14f524fd4944e1d2327f251958508b64f13453e63ad45807ebd0409ecdcd4bb24b5fba9a245dfefeb453bec69fca45950542894b11edeadd5095dc31c91c315c20fa7c41d91c9e71d9c5ededffe25bf72e8a4d7bb43131e1ecfdf45c31768add63c95c3e77c1219f77f6b4c56de0bd36fd279c03359b7e60b168a1e2427309c0e6f498188e254abfd467c59f4e050048ea40af216d63c21790f9e1a76196c721919584d50425245226b16f95fbbde2b2af3b3c6bffc440c515e8c82d70db9c910f5bfa55f8b7d6b7f590d83e14be73f4dcefeccc848b2f074de59a3278f38c4669cfa224e01c64351cb00b32c12176f8762460fcaf691c905800e13f5d25b9df8cb14dc4db8950d4716b7c56be85645b29dfaf91de8bc68c72a181d6c8ce3a618189dfd0c49845c7c432308799c07ca9cb0c6afa03d4b3fbcce417d26cc8b3254806c7aa8a43251ce18bbb4bc34662c988b2713c39cba000e98ea0d77b1df36f4cb7a2488df975444a3fc7e94291d5e4a34394911a1a731cd755d0a2c356e865b408bc7882450f3e1131cf246f63059adc14132cb4358e0223ceb000f15c58c51b329db7853af91acecca5e55d7e982befc1f9ca8ccce749e995dbca335f20bd17a37de44d64a6cffea8a5155758b93cce16284b121ac87631b186b170056b507a7af0664f833d93c5211fefbb5a9ed2d52b675b3fcd67ebfbb64861a07fe56d1338363f28b9048defbc52f9acf966c9b2a02ce4bab415ec92ef3b6a107209dc73da83d168711b2680033b85d1960f862fb7d9543c543934dcbcd02c40f71e2d8858accc8ac9d243f42ad815a31ce7c69691e2abcb26feb45160c0f009640b418fa27dd2ffaf863e09d7294aeea3596702a83723d317ea8cd4a27685e918b354d21f505b5e8d68fb0ad32dd4ac60601705e78aa91c668bac0948b602454ed287bcbb2d5c172bed068f3b3b3a7e90fa75801d852d0a86ca8b4bd24eac191b466024716a6a7ccb972e767795ed382e2ae2125e8109da3002dd2082e1c2d51364d9c89a1b94f173adaea8e16d313d5ad60c5e434e0fca8964835bd518c64fa9e15cc7edd0594a8e8c435007f1bf7d0e03fce22a39abe3fe1d1f4e4a1815bbf24e8facbb7405c7dd58a466fad9e8f7440ad31c019be440e691828ba3c543f9a1a2d96a08dc45bdb83062e157a441d0586ee29b291ea28c98180aca1c080c3c403817ec3cccdf3f9a79d6d368f02f190a02076c92be7d33b845401e2385609dbd35947adccebd779e943081224f0a49291400c35f10fd037ca025417ccef2098b8333c3907d2ac719e9887ba0e3cdd18c6f21100382a60820d45a1bec97bdd5da65cb430374d653c0824c9ee4ed6220d5225a67d30b57ccead078b981ed6a03013d1aa337391b6ee8bd09edb5c29e01fb080770d2837becf45b16d058cf532fcee88d126bc38da84b1545287ff2787547da80d211093da0bf9cedee6bc096b0ec22cec5f538556b33226d96ffdf19ccc7efef225c55719d36d0452acc97c1f630093dd92cac391488a7d804cf7ada20178c5ab2a60c15c65fabdf877b535e00f3cce626d5aeb3639b7397b0406d8e6d6d030ad7949702e2a026a0c19c854473ddab31d92bfec9b23986e63cb076ea52090b955358f3be26f6c82512cb037f0cceb6bb1998826fbab469ce9fc2b268a3e673a8b84d463ca8a88e6c1245a5df251a37f3803139e65da10321fa0d4b73a5bcc0846e37fd60edf504a794ceff1ad719b5e50cf8905aa99f80ae4d2746a0cbddf3a155be369006f655a58b6c76defecbe2eaa98db7297a09a24cee63f2002f9091a2072690646b4704b5df20f0019216de6e70aa518583640091999b7ad1356f309832aafabc0110c45507ff1e3889d22f3df7d1f4792e2a21b878672626a890190cf201aeedbdae4b592ada8f32b3a3f7a643ede8bb703e8e13d87cfc575ef52559abc7b45130356dcc07fd4b51863956ee07c3394b8caed8a564cd3be884835ef89e4e36246b53395f630d1d9530c609bc04575b130a0e4b9e7055cc370f6955e3f699e9314212af82ec6f9dcbe7c68876fce17e1f8db01158334b01731785c93037a102b380837b07c103bd659ea935aca46a942802e22f46f8f02e861b8599ce4e165b1a0d07373162284790854cb28f07b183a439a4669e2eae2ee0ae707f5b636c8020c5b5aa0d4c7529ac84a172e18071caedccd4e8ad9ce2521a27afcc3fa69911e5ed476aa7e3c60575b97db46fd3da680066365102d47d952060e036047cb239d7244b6f9ab6e9377becb600bb8d271c29d431beabc32811d59aa84744c46575776bb5d7140b8e33ebdddf6d7c11444a71ced08351001cbf234f76b56527854725cbffdba0bdf6cce4e8292b89ac2bc27a27d289f061be74c9560e8a486c71c167c0747f59beaeb4d97f83b534d68cc747ff8a3c02528823b67ec1a729acc8d049063a8a3ce02f1d4ca2902e3a65c8677d57f7605c4ae773fc1cdb65bfbc58d710a1eade02e1c4295bd001df30aded9e227985fd3a937a32eee2ab3903b05093a3475c0453544cc10d6126daf18345f15e3246161ff9897230cb642252d5a4d56cee1673f30beaa4f0b20e92806d1b027863c6adafc1b2d5f2cf4bb4654af249677458da770cd0fc8e8af3e4bf1c7cf537ff22b285f9aa8dffb5b5e3c865fd7ea2f22f4c317f633c2893b2b502ab04e7814bb2ccaa7a2d021f2ec12ee5132b5e589366717926dda349a442e4c97add2b28933992b8081d032b861786779f0d39245406a1bc9043fd9a36de1f746a81d4bc41b4db9a9636b645987ce254b0ef81a1536f0f316da7cdb46b6c76a2c410029d7d33cb63202bf36a6dbc23fa08fb6520e9603709947bc29ec2ab959108e272cc372557e5497dffd71734bcbcebb5c31ca4d9115c5212ba85da54f2f234fabff545a946fca0ab4ca035345ce475e8ede429beff85757c0509b8ae4ad99c8a94d517acdd8ce0a71c20dd17386f5eec7f39473be242c4e84d21eaca98c3f62892ae9c0e2f059864602083bf963fb8dd59747fe54252b7433301b7921d0bdcece1ad1c14711ba514c235e228776d8a56bad9ccb59cee37784a7a38b72810eba164c8651d6d2c3313e47d21371bfed6439d573233dafdc0cd7d503d84c135e4163009ce4de2751b3b52a699d17cc9b14821f79d76f8405ae81c855cc2813924f664284fd1ceeaa447bfec1ed8d5eceeb5c20cacffb0b3c89125046ceed33b0d0cbcc5dc5735212e971246aa07c149878adae74c4783818af788e6e8684c19db7b68eb4b59af056bd95e55078d2f113671f538fe7eacda1478a1dced006389b3d52be30d6e3cb25aed819c73d610916fbda7d26d99468c28dc6ea3a2e2d5aeb9231df4fb653b8e19e2572e15149d21389c5b7571d374c59667317139a1fad15dccdaf121e6491d125e7c242aa20cf56d9df12ba191b6515bd471aeba48cca62607c27ed0f320a1608e46e08dfb6972513912e1ac119686388448db32a1f86bc45b0a1642bbad8ead9b0f2cddce7561909dcbc2bc57f7eea0a61e20d852b40ceac788d8dff627012241597820563c3a7414820e194a40c5cfb0583632681b1680dba1834367714dfbf6184de572c8fa951c4737ebfbd58594f7b424c3c2e0816c16c65fb4def92d7886db7453d06d5923c2ead41a452a9e51624fb639eb20c3f288bd30e993ffadf5141e9571eb451a4257ee43399bf6390c5e3ea37f2d794458858331d1fb6aa18f106371c8b1654f42664fdd8b842ff4cb27f7a727fa13cce511aa5673dbc352a1a5e8f245b5973b48d59fd6f755e8491d50bf3753677db674aa5d18f34b37dca4b3b33ca1d58f2f87088fd23ed128359164b129d96ef47381488a5aeaafa973b49f005542b73b2e51f69d53ec0786f730b4e1f4da308629453b6607f8bbcff092c05142b03a84336958699fabe43d9228491358da8d0dba24377ae4ce3b46edc5413daf68eb983b5c6557af4e87c54896401fd19984f2fabb7de1aef9890f1b7ea28385b07fe52fd3bb298c1c9056822a5f2b1015b8ad6835e90b41145b105fa7c5b75a9e2624d844b3608e195753e9f3004751eaaf6e883755f75b146132a3b8bf9f8cfd9e49639b367f42c69753a617e3d53bd8d2649509b82a370d96b72309a1e6b2b5f4e6cc616fc98d94c8202d847b3a4280cc5770fe716acd771ba00f7a248f92f12508e6c32e83bf3cb54c889d4b0381994dea6c61de674f78333c814d043cc01cd2951c6a85954628b19cbc24fbb6b07f4a9ef3b42866436cbd6938998a71a33b240c38e8ca44ac123be754ccbbdf28290d874827e527fd85ead2d8f5c69fed5094878eee406c13d94f1062eebb83305e0805c7f63a99092f1108e66a9ceffe89ad4bb01958d3ad48144d264e95b7e544216863b96cb565c69c8c653bf058ac08f3fe27e89390fc0437ee5512e76934493200cd521404960d0378d71b1ed83a5e7392dac7d0eb07c5c63f729ff2c73190598ff457033d02ae1dc56187f114357bb7cfa4aed296f1de6acd7c709903c254e40b0afc3209ebb413a5f606975fcca0e41d4f5e99c49868379bb414788acd08889b96544aed1346f9738a2859e990082de082ed4ec50ae3197fd9520c3bf1ca637b1fd0217874283c06dafda717b7e2d70b759db12345a1eccd511d6516d6d43c4948457a487b828a939402b998b73806473eec6d53ce11c4163e886a68d23a0b04bb7acf6c8211944215340f52661847e9f1fbde625ffc37297390a33fb20a368906385fb0aa041edc43bfb64adb6119605d74b1850849fc304a256c165afc399772ce08bf773fac5a0206cc494f17288901e02f305d89a839145d9042f77835b1f60f18c21cbd2fb998ecb8a322a3a22d32821b9122da39c3063784b19d111e035a37bb3d45bee438a0f3840e5d3cf26008249ef2848132ebf1020b6131d1f3fa221a7781b03d8b3b6052561757ce2cc1111e9a30bb2c64166e20ac20e4d59a0d1ecb36469a16aa86b67893ab778946ff78d43a746221dbbfc6d60fd3446b809892d8889da9fba53e5a9360c25727b5fb26e91c0f63cf538ec5909b37a29cb3104ea471bf54a64e1aa4cfdbba1c03a8c44f763e40183b8c27c6af0e1437e3102916ac2323d0db0747107094e518a2c5ee66244d823223cfdfb7e6c74dd67f6b118fa845e3f34d8a1c67a513286825f9bfe77c3355ba54bd0b7bee3d3b0453f250cdd3af0451b3879bda62b3184491523b79c28740f674ca634086bac7725a6cd64236770cd3d050614cc815ffc9270f0ec74f55fbd39fa1d929bb4159d3d9309934865d0c91d451456f892be4dbcd02164dc781d59384ae83ca05270333e5cdbbb68c667bdf53f3e88419050ccf8acf24fb1933d623975af76b01e1aaa74c49d1d8a2ada706757f8b6234bfb5d2ff316c25ba9436bb17dd67cc0f61bc6557ae9e76226ab92096498a2a742876aed2baf98e93413012b84d0fa1c804ef3afa6e9ca6e24d1543eb992adacea4a9ae69cb5a1391023ff9ffd15cc32b85d6bd126ab32a4cac57b2772220f58aa7f5cd5b8a01351718aa8e018552d362a15e73ac7e8141565b1a559836f29077729c8597369651f8be3c8cf9d5b013f44317d06aff34dbffdb83843a49d4f8c11e6488268c60febdb6359302cbe93170fb5bbe13f71277723b405115a0772e77c08251d8e4a598f48588bb7cc10b8c85369e84223616cf14cb43ba4125d1dcac8f1e95f83c49699cee4933cfaa0135e7dc2dc758ba8b674290685c7359d1d3b26febb8ac6c0ca8d2a9cbc928482b559fded86408c24ef3a04f661a45238903830e726b8ef1a469aa102f2e1cd101e0c903a23b1a63fc39d1b735063c271dfede0000b0662c786b9da546366fc4641031239a2e9d6e4facc433765a2a4d24378ea48493dceefce180e96cb3a0f224c42485744b1d4f188e58c98c0521b138a4c5b4dd0cea49a6c2626e8a47e61387cc471f4605e65dfaf9c4ea45e5c260fd3cca472e9ade35f9a91e3bdb5848894550ed7ab9d5f9e79fa01b6c270f2f9a57f50accba83ac37a7e094c378e311543be44c68ab0a01cfcc03a4686d07b1944b29515f44b851afbd230ac4add90d58a08aa9788494798fac4ab4dc7f1418d8702191f8df38b74615813e98e33e31a82661199d33f40d1b29891d954dd98ef5b9372b2c110e8188e192918473e57eafd7dba7909ca7c351a186206109d50939d306d1b354cb201cb5c32a4050804ca4a924135f5eb2c60ff1d6ea38eb8c5c9f02aacf68234910bdff4ca30294a47e4eb0d3642bb975cb365ce9f8f9963f1700defb51ca5eba5a748086ddc55a6feb305d201e5aebbb16a0ee64ac6cbbc781aa72422b8fd7d458604ddde8cf70901ef1ccf40672b71bd762484353a5c36da559753c2a809b8c9ed757091e1d771889c2a089d4c766d12ddfbda8b7f50546ce28dfb90cfa271232b7b548a311e7234710b96cc23d5b32faf91b8a153e3af26cad65cd2e6057ea4af0220635f1a34fb01b6d684a5a0480513df4f1840583c7562faa764b05128e1a38094423488402eca3173ab0c425e59a88b1d7586e1c8a288cd27d3c3e91b9fbff3974ca1259142a3dda340161db7d40ec7a8f31ce0ab9735305aecb5555360e4cc6305d20441ea8c53725caf73397ae64ac0b5f875ae08a2c253e220d2081a0ddc358ae36da537944327292e79deb7935e63180f0a7a847e47f77427fecea9652c9226e846ba21390daf33566fa9d39112a15e5c9bc4d0888fc4206f28220b0c3cdbdbe8b396b745d051600f3cbbcc50643036a10893c0819ccf86932fc52e8e23444057528438755a63f55616d23982d1e4fec6367fca047723ed8185ffaec489f9f1c27d2a2f9e359a168f1214c441266a126589933d6c557b33408056539a9ed8d670f57a7965f2ccb0ad3ea1056c3f3d6eb75f67dd7be8fa12d69f5d1e4e4241cc1dad23226e55283bb3bd72dd8cc0723aae9ac8d9fe289cdb8a718050aa55fd5476edbd7a33629a6d0e31d2a45aecaa88490430127c38bbf0e91d13fbe2dabbe6d8b41bfcd8d638d572f8b5cd731e3fc9a283aa17f929e655b467053a8306a7bcd5d42061fd2fc6bb300bf7acbf7c3521e4e2d652f7a1d76378202bdb828f6e7ea375e97a3725ec9cf30a9384a4077f3981908c5a34ae625fe4ddeeed47dd6b0d02a3a9939df137751b63e435ea418bb0937378bd682e90620a474573b240b10e803f13cbba47f1eca4096470823106c0eb0cee78bf4b948a81c904faddcd43f59925434c712e3e8b332d3cea9a12c200d58dd7dfcfd64a7fd7b36cce26ef4ca653d73654743b4441cd416cf424fc09bdadff5baac77b30c92b987d304d8e15e714e19bfbdfc89a26a74b37e35fbfdc1a29cf11d70425f9023050abaa0e3e543976f3a78a2ff78265ac5de724706b2bf0393db33901220863770a9b8ba997e371f46f03af90fe01bb0cd51de497bdd7d455e40412809b153045e03c2ab69b6e9020dfff05219aba8c90f90d798bd5fb4ef63d2734b155131820129fa0c7d411edd5450947d41b4041a44138fa56d9b89be717d20c0489d5de02a284c23d08839b599a0331bb3d3c1fdb2c9fda1a22e260425279a68dc26cf82226fea26b6ca885e09e622c56fca3a7c28a9a22d63153df3c69fbc3c8fe2ccfab293e416a00d6aac7c7e56c76aaaf2c15dba8b741ace932fe43718e60e96dbb318b2a009d3046ccd7e5655911c0be894f359bb5539051e4624d28b144afdee9cd539470df234e7c9038845ae00e1cf23c165741fae67a95c73f1b55c49a7892462568d601190393a43eec38b7036075f3dc89f248475824bfeb583f1958b8e9c721b7a42328c2a3f828a0221d413d2b82b9ad086e7a163df57d217edc6c39c1695ae795a4d4a9adca4727a15d521f0971e77ac1a87230a613ac58ad859d5dde80ddb99c8a727c4f7c00e3f6ed61f5058d56c16eb745357428a5a37b52d942913bb89029f900d4b8dc721a3621a6f5e6a0f5be3fd0ba19197b4a9880678c50d5cf215812f894ff7370c561313ab878a4fbd2a2d65eb0c263ecefced3bf6161a0b4c247a18e363aee0d8840c08718f4a08264ce635a7967ceb04032228a4907a8b2830690aaeb81c248b2827aab7645fdb97da99eea508c2b3d1c56554dadaefbcf64466c03c8ecdea30a2857df069049024ea8600c7fafff87758173d8ac91e870e48416878cff41f3f2a989a4fcb92612ad9cd014f14e440a88cd0d968e1e185a1a1578a042d22a43a45b08b5d554ae0bdccfd6e39ae658c0df9344119ee8c153d7b5095ab22c910d1c5199d725683eb1844269225cd6b3b21881184a840502b02d4d4813da835d67203de927e3d59ca53a7e8ae709b739ff54d2c4598cf781f3e8fef14d3fdaead6f81925c38528ded5235334a16625685a03414aabd044702bf3866c6f74563f36f20256bbf757bc4e643f33458b39e37bb42c9bdb6ea017f40da23f0475b1552069be9279bf113a52018e11b367a61170b16cc039674f944e752ebace8802e74678f06d0b4fb61003b3bb6a05994de0187ee6b393c8ff9c45c35d1a3578f2a641585e839d2ff50fc55cd7ae0ad3299ca89be40fe1c1a02560307815a80492fd3e9ebcfd80ab3e79dde68149960390654e0ccfa3f72043e643233c04a734ad638cc526283e6e397ebae8e25084294adbe0cd7406282d457d0c9194a254c5d30c1fbd8dec911fa664a4b879f89be5a3ebd8088378ed38db4ac9847b3ac55525ff418b92499a37470551e0956cd55ad1cddb71b8cfcbbd6a1d588e83e0de65406f2691fa422c4aa24fdcd180b9af573784d8b42f4616faa4413bb77b46828be3b57fd81f55c275a5869b1667b479de261397fffd17fe0cb8d4051d803ca6ee99cd3ec605f55937bc21cae1a36b5611b4c4d6ad8d156abe52c2bbcb65fc66ea72e971614dd9c49dba9e85bb0e8ed3769ed56b10cc5218ac9ba9cd7a57f4a6f4547264db1d9894e2aa3ed7d18134af64f33ff80d89a6bcb18711559c2da81150e083d63e1014ac852821de995cf37ff755b2e602080faaa27faa8f59b707cf66e65e1cb4457ca64ae9cd6344e82447818d45100c565aca04f3a4a67bb85bf1c320413050db922f603f58028d80da9be1b3c8e1eec5621c44abf3607046f8061674ead2ce3c6ffa103d565b6a9008a4d5e063d13fd6402880363affc38b7e662a68a62675a1772aa39fecd009d3bea65717804155d68d0bf875562d3c53e7c3320a21d3a1665d25182c9f2c919f935410555724eca76f5a814d5f40b677a6decc12ca01946a09aac2eb607f781ebd73a27ff664c20e2080ef1aa7b1c0e5d6c8c0cccf71acca22d34eac260f72c3f4e1dbf5d8857de75b8b39654ca7b47887f1660fd69dd3f229355e067308bbfca49ea7488bf97d0504d3654a03161765c76b1de377c511aab41651f10b6e98249c17f2fc2c2f5840487fd7ff6b99cbe0acc29608cac087e9c9b1051be723596d7d6960241a502901e8f533ea1a14f57865279f8246bb6c05c022fe516d56c722ea35635a1bc495edf13e0aad502f885ce0246c7b00bcda755f201ba5ecd6bed80ac7ca0a58274d688cab736726063ef7a437f6a793ca960e88300b55beec62e772bcc5352a71d3cb7f20a9c799ae08b02faad2c0eb52d52249084245e12fa51747d664f6d8ede76820183703860aae8c2a294ad9c5d4985a04ee329ac637e6386dd2c146da506a6df0e6011fd35cfdc7b3f650b97dca7697585afebf0491fb97747514e099c6381aabf4980518a97908d64f372c74b132546af556abd4fb50f8b024ee81068dbdb0b6f42321728abf088a4c002bc04f7cae0d9da05fa681f1986d99a544061b64fd6953aecdda19a13ed4714b356b307db4fabd5537cd2fd221209338abc5131d196a57c15144694184a525b3d34c7316f865fb22cff0277cded85bb097c153a6a3a0de2c2a357663829007b8a55d77edbd4a25d2952b21674a33be95d8ed4ce0f77d00f56be809c3912d056481eb20fcc93df80dce804a03c952f6121e6ee2abb1b3cbab032f15b8f6a70ad27e5a3547a0cd8b46a77a5e804301f05e34b9282b566e08b4c4f74505dfccbd05fafc539ad458b578b16eaac57e9b71ee34c1f0c42c50803bf54a152f83e1a039a825f0da415a44e36f83eb4b71b4ad84f0fab1bc83ecb377643d5f06d6c9ea13b2fbde34dbd0a167450fd0d3ac62fcc51df6851c157491ef63402071f6a5437b2864c3501ab12a5a89d25505c9187134cf495e47c3e8ab8cd82dd6e8420b41b1d55f32e04fc2d675bec4de8284f697c9a260d26fdcee46d8856f0505cb99fef4c8d533ec91cb5577a3d8995deb86df15b7bf2fed3c642b35d3050d89e006daa3b052dc335eaf035d8ac8f1cf15761e3e3c911e055df26bdb53a38e6a21bbda5129a19e9a7df287cefba9beb69738e50970134d5854e2af630948357381a57324a9b735999cf63bfd435ebb71084f4e22bf562f9f74f2182f0af943fef1e82b2586178d0c994bbf08606e8efc9535360c18db959aeacdc3cf8e74a12a231cd61f11f61d3a30bc70b197935d04f8d436f25a36fdf68688b37d3f7503c66a7e0f884548d7050907d451f2acca0e3df5e4242498b043e9ff2dabdf8ad8abe9c18b191a1a487df29bcb9ee4aa4e237ee0686c819558a6e012dcb914f1e9b1a8442ce54808c906fa8f9c64ff2cfd4dce79c20f43aa015cb1145aa71e78210ce636e5a952a1d3027c783233a983517acf5f8b3ea78ff389a540d262b8afc868927e101ab915de529955f16cffc0a720f274283682e1257001e1ea1ed76ea95053129d96a7f5922922c15a14415b2958254f7d4daa0d39d3d1eafb1495d5afa04cff90aca242b46265e601dfa066c8622169edea49eb93a592e2785bc3d11c75fbff4c0c888d60821a951e7d72b7f4eb45eea98154ea1c3b9f544d90e18fc515189c7a275894681c1dfec1342bc55a14b80539f45a2636ccc8e1900181ff97d6be44c0a571f8b26df44c9a0655a6cc8fce4c6f4e89cdbf52f0287cd59ed739f9a4896e952f915025a553a0d40f8bccc1519f52602922f220d9645c03848c431c8bb8c3a115d4c6a87ededadd18e3cd7883875646a00826a28073c4e8f17865e96f7d84205a1c138eee511a1d3a917b310bd18c6af40e85555a3b729be808295fd7c7545df93aebcfaac1baf96f73d51e62eff62922c6aad44d7e39132341118aad185c77e8db2b12f92a35daf67cf3ad0f4bb58cc00abd728d86586aab85b024c203f0b76a3f4c0d7743182cee252cdd48e306e4584287609e9c098d46c2e65b77b7af72228f5d55d7da88dc0d31dac3c8c5d180183848b74951a4b01a75667607f2f11beeeeff78374fe403d9ea482dacbcdc644bf640e6e0fe1a1574e5aa318135d767dd1ccde82b3c2f87d5b810645b601f2bf88580b5c050ad212d6dae2293ce8f56f2b21350b6e407d7e0beb98c79edfc68e0c8bf59c9718d490d8514cf08163bc3a73619cc5885e1263240e1008dfba72a5a8988f62f6e12fc4bf061c2cf0a62956f68c95890e3f175e3aae7ae28599e449cc54ae493457088d0c74d45578a31882bf6f18fa1c10dded2eb35c9068631ad5c2b8ef1b31a0a5c2ad868caf23102749802732ecb836e9e3e918c8ee1ec8a5e42d01028f6e38f6b20377d6ed2c34363fadf929f8616f985193b5a37adac6b290adea7159bf8849a2cf7da589924742a92ebac0ec579b8f21550747e30ee939cd0b3c4bf6e92c0758c7f1817be3b101171b1b45e9bc746c009717a706da3864debbe7def68eef71edc39c569ac7355e44778d78183026cf2b03c77989ff86be16efa64a67e72b5d42f719e9efd8c76f7715046b4096ee119fce7cc9572b09a12c3dd3754da5d74423d0a97732c4b25d02ee6fcf44d54625828c41efa1c44a834ea71cd7b6de0b5ac9eae2daa5027703bc657e0363196d5c424d9aea1865cba86061281ab551be05ceef4812a0ab9639a0060fe4d4d0cbf08d2bd8665117c2546d870938cb509f86571ba6b310d9feff78a88e1c492765893a3301daad52bdf532735ad1f9da256c6785137ae79c6cdce88147d9abe24596aac3be8f4ac6a60788d5a1c7bf6940dad9c59fe8b6b4ce088efcf9c6e5d7d1271f00658004bdee61aa710b161645d843d44287239fe1b859ec2045ad4c677bb04dec687b85071a80ca52381249babcb2956d7b2eb981112f99dccdc431d6c7f611d23a49b9e274ebf43134300068a5d3eda24a0172bf6c91d2d48439733900d74df0217b098055d4a9cb8dad893eecbf17119777d48ba7f2b631925af528abebdd4c0c0eb6522f7df06ff9f0bc75ab1bb95b84d8b9cbeecd7d2d1899ad368f298cb72c719aae702c6f0e6b3805e9f35ea70620a9e2f002a57310aa6a712c3d3daf7c20a8c54958dbed751ea3e941bdb65a8d4f4299f506e66e6546937429c4e37df144090747e1e65932d5203b8cfb63d2895cd707af31d94b1a130658adf0b92a1121b405cd831b324368fb332c2ad9ee2560ca22efe4c8cbcc38b9e0c4b5940939126e931e8ed53e33c785229ac2f0eeb9dcab7a1ca51ea5889c64b6aa5c549faabbcc0788a596c50a5161d2b3a4a0f83681b485a0d27178f412c7703b03668944352fb8d844efc247de123ae9b0728c979cbf9cb6da112c1e023ae40ad58194c82f6cabaf2cdadc895f88868e5059408054044701ace5752509c4f9460958834afcc7980d08ecf8aa472b9a264eb72d31824bb58538135ead54796f749f1263869eb821a021c80eed25e3a48d3c34b8d865cae79e25ae1ce82f3df20eaa86b7b4a12c4fc8dc15f6ecb277c165500cf99d703796dd29ec7b098cc947496fe1d31c4609d9b010eb7586fc76a64c268ab350a49fa562931ee9076d6d5e02792ca431e47efa588e4355d44244f99088b78b317864dfcc9679479f32f1f672ca037d44f9169361448afa22e38b2c99c8d2d55670bffe1972f22e97ac3ba0f7b9e6419a0090939f143626d06e809457f76289c56a1499c199e9ab438b0cfffeedf9d1af692180a8ce858a753cedf007ecfeb3125d4cdec549b9e0216075542b93c0ed1564346401e837a964b3bdbf1f1d32c2360d463bd9bb53fe3dc34605659aab9ee60da9565cd4a06b20e4961a24a148a5096efed833353178c6dee8b79a59e1bb8c6177e4a755a7effb786b81ce7da8a16af3c2e1a9b230becc4f152ce6716837bb8e0f1dca9cbbeb86a396279ebc9d1aa4784b7a29f2f123eaad78761ed21af815b4dcc89c69a19b560dd81fb0d581596005f69e9a269b03fb05cd6020c9dbde8381d36953570fec98ad487e5bc813da88840b4292ad02f3aa5750111cdf204a89ed984e3fb18a4b9cf99c6523837591f008943f247df59d99c5d5ae9354a7d6dc1a9648d51341acbf9648e16ba8ce4ab8ade10c833816e8af8c6cb1cfddac8474261c2522cb52d43ef8017dfed747c231814bc362cd5768b29155734819ff3f3d18b1e2db2cd90e933eb3e1d136f24119234ff98f225b681e3232149b915dba603afbcac97a11d7dd8f0b9a4f8da84f1e232a47061d769649da688da35573ca06a1b93be658b765c6e6f9c26acbfc46ad5c1dfb68823db0ced62d009f0f2755bb9e76c262a8cd59af8f11cab54a830a7e49d04a326ad7b5674278bd0b7bfd20d5448100317db7baf6fdbb97f630434acb2e76c381f5a7421493a28ee2dfea2ea8dada4212296a487fbc19c5e4e016cd9e49bfaaebbbb13cfd5834103f5fea8c55cf3207f52d136b2691866a8f2506f67819b103b1e96f70ae6bbfb6ff3c0ebb80bc1255250d721c9b3ddfffafa37a62722ab6a1e1b30e9ce90d6623a68365ca7345f5d2e09d17e6cb33caf45b26f6c2c7508dafd701cc395c71822289abc2a5d5feef096844468adafe66dac48af81d6387c8e4ab07fcad50bfd936f00e441c6b9c3924d3d51270871b98c84670c91c5880537c8c8d68dad6f613f5705da9c78f185f73d200412399454e7820bdf37aaecaeed4948b2573dd275fafc9d0619bc608a3eb812686c8dacf46a01a2e9d0117b41146bd8f4598b149ed43df5717758a48c6d7ba75f4f0d19d8404f545f78d1d2b5ca0c0d6f07cc3093dd949419c03cd8219561858fa5e97c41aace3337d1a411e78a1ccc0fa2847c509cce5dad8a9680d6abdda4a1c0580de98571899922cdc73c5161dd4a28d9df36b2261ea95e1f6e777ce06786c6a356a34c2c8824a43d9ca5b06593421b1e804678aa5698580f68dcb9a202afea75674b09a3c60a3922779a429cab8cb1fce27e7fbfcc4f6f646920ce65127f74105faa28089a3b30d941cd3b84ee6dfd262b3a8593a099ef7c4f3735dc13155f45b2fa94688f7d1894d59e07ecb3d2080bab665774e930d4514bc52cc34445d1b5c754bd04247cbfb416875ab0051e94a75c481ddbf407847b3bd8359e6e3d435d90934d629d3b1f07720f31dab45cb161a9115a32feb9fa6eb0d3ad1c900c3eb707a026b3e170ceb7eb5cbc0df5e491a432a88cf26e09ac09e9251a1b78b6cf91ab1cccbf2b7e888619d041e04154a8be225e347c41e388e2ae67dc2e83ca7aba60080ea3371de7d0843b4d1a5063683e8a4073b3c1c008f73f10a0e0c628e1245c9694990c3d39542b23e22c1c936d08c4f04e82cc9366b912eaeebcce4c1af2950a1a2871ef3c915d2abb111702c35e70fcd86e1ac671d7f2ff307c84f2fde1ce3f221e9e1195fbd4b4be508a0e39ee930ec361769180561cd248372692968ff00c2039013eecdf8605fd4e72d30e9dcacc0c3161aa02d5e28d2dc0a02dc02b00bed024a8df3a29880e32e3adadf8874191f85b002b8a3353a9825b1c469c29c816b76407e3f1aae4166158190fdf97f1a9468fb11279be2237d23b038283540049d1bb59f03dcc16d15687be49c6580adf59bb470a128d913041cc4691a0b38620785d71d8bce4d6ee0afd1f93680723d31e4d3bdb01b74f705a5bd3d84d798fb545444f2c889a33831a907d1dea15e0eefaedc09255d08fbdbcc36bd637153a182a36cad7fd3c7d2ae21e61bdcb20b9a5497d11c1927601f45f0155ac0391711d796b6b29e053609629ddcacee08b8d3954b22c7d6531715083a9141e9599d424e6ba4e8849cdbc7bb921d443ab9c8f73df5f726952f8b88677483b7d8562960f4812326072f02a9eef5d0fd0948f071e2843e2d5865fe2d16058376d565b1f52f09b1eb010a0ff213149affef2b7fe2012d1111d1b52a0d75551041e922105edc1d9f146024ea32d78e2b2201a6a7ff49065e5a33e1517a7ee098a17635cb6075268a130eae42490e2d13ac263b1ef88e3e7c90a24e6b5ff612c6c95b26c23a72101228114102fbc7ae14df0874336163c41fa0481146a6898a4581a985e01523492591d8c51a3caf15855fa42e85ba3443d6fae750cac3286de42b9c887f6c4be52280f02e0a2eb1f054b6428ce32ed2a58a2451d71d94baacbd39e011f05a161116477fcf952e97dd607ed13a3c99ecc31c0eff81720b8247509527f71ba15ebcf8e616d464689bf660d74119f9dd73e2cf69b4db7096540dbd80aacb009c0d27b4a2d2b8f3180c352882196f525c7536a51f00dde4dfcc200c3db45d135c5956c05c14e9b2c86ede8027c10708cd8dfb03ba0a60d1b420533c4a2367a4933fc0a008971c2a05f73a6c1b422fa6dc6d2455d7c7a21c0bddcc43d043fee7b3c55c1384625c406043d9aeb40df14092000f7c0029527f0332b1ea364328a73565f14a06abb939cd08f2e7076bdf1d804fa48d86d38d907aa101e6b01272ff11bb678c8369b97f8e51a655e75d87f799a0fae3b3302931a8d667e2b537be6f6b4ea0eb1159c2fe3c352c8c331fb7d3281a52ab15e5884f3be5f2bdc022c60cefdb12f5eafc84e443924f681beb9caec278518f40856317d07aa60a37bb4283fd1e7078dabdc2564d2d2ee69e17f87277b5fb8edef0260c44b5fac5724a0eff60f00c7527f09e83ede56a86706fa6b16542a7b7d7afb0f451e68679061a3b489a481389b22a2a44399b85330ddc37ff01e8d66bfded9ea21506d8531833f5c050f3f0efbb80b8ca116c37c0888457a699fd3636fee3448124850c7794e5de9c3d801b131c7a980b0032090cddecd642f0c4856f0a9412c8c112881536e95f427760b95097a86d7eb95d9bff777825e6af0407e6364e76b4adc4314e70ff3b4ba0a32c5c037c4a2360a2aa4fe14f57f674238b971258567d995ddb62c3a42c39c2962aa92c87a55c19c96d8eda0cd7d3be00d49813fc12f4e1eab60fee21882ad8109f88493e80d9e1e0fcc68944450dd5ff667518cbfecdd321d4243ae114e99b90ed37807f4c230e01fadbcc6b41544baf8cb164244d999cd9bfa878182e8430135cf5ec7d86aecf6b6ecff9fd1731dd032ea275f77dddb35d44b05a63ee34d3f43204a9a8e5d00d5c3ac8d4464b2876e1b57a2a2cccb8cb6d276c728d236b674476fd6be1ecedc7b57681248fda3e234dd5f33b808a73016a9f2dc17b7191663e7a1f8171080c80b424b8e92fb9544186b23188c00de3435b878347dc08af6707d85eb15868c0eba81c922a97800a68adb79f3233c7bc331fa0612b137d49b89285b4f7dc2b8f10b90daca7dd8b7a82f8222b0c76587aee454c577eed15c04a0ee496a9803242d028b87dc7c8a0362a7a50c2149d141bfee69e71afa9f5e91cfc14681014c3815adb861ff8386588f3a332dea0bcae97d93125896a7eb274b74198404986c318941824d2066d43cc53ecfb21d621b1f2abeffb4a8f2dd7c1627de10af06b48bb93375f92c2e3e24bb31dca4a075d11c3e77304e42a79da28e99bc5707f6b0664683420594bd432717259cca81eec1fcc5adf4d0ba009c7001dfbd6b13ae17cf0262cba0127a01d3a231cded71caa8c8c967e1bc213385a747f4ae707e81f7370ca64967e69755603d27b9c07a7ecfc17a4e4a63ff3f00631a703ee102ac679dcf1983faebec2941f1c437e52ee47c8c474dee04607edd99ef1b28f530253bb9b342e5c857dea092e34e499f7bc7c206fafa4bac50f5e0056770d319115bfef7a92ba32ffca426b748017caadb5851400ab4acba3b0661e6db02b67133903e6760e05904f7c78a817b5fbeaa9118eca5d0af4c1fd579a525600e2eb81471d0000f8031d12ec4b51cbce1359fcae9cc59113dde7c0316ba47c3ca04d351dac0955b58b8c1fc166200281b400b9dd584976d66239a2598463b9004be5a6fec1894bc70d3bd76bc07e9a4469bd8c962a114e25e5723f15a75dfc2341b098436bb9f06a2b7c9dcf8d5e45296155c5e413712e37b719e71f5cbe17d987403605d4f03fbbde32600cb414a978638e907e1f2c9d65082eb526f384a14cd95bccacda9e2843d3d4dd53d16133536b39e3ee62187d354c19508dd4e38a253468822868d5eb6d2657774f8170065eaead753a8b4a87103610078a03cfe46631ddbf1528f1013361a704e993807bd79354fd71ea2cf8b89c1b7dfe273038937ce84d21ae4d0fb0f88827e7668dd1dfd160b56318f15286d3a47d876f73986719e16074252032c915d727004c60238f1a70ab27ebbb8e95ecb888241a0849e08a711b28e4068dfdb594261a407d9d4acf2e7367290a384550670f2e9fde99a5c9c060fc4be6587a01b1ae4cb6cd7705215451664fe549453fa86ac3326ca68819943ee592b2a357373352af26c784dfbff6ca6ffbc1cf26aaae24dccf93a87bcdead34606e85b6c75d85fd6d6d9144869d6073707c6b363a3d593de89872a33c877db0bedea00a9c21073e1219f780cd3ecba405e439361d8a1266224321afe0938376979735d787dc2c3692e11f36f2693a8e9742cad26ed2677c0151d702739bc052c793ed0efcd7212f0b55247add54eb4281ad7fa79a4d6f3164b25c32079542e5306472f787341f20213be4f4e65b7c3840026096f49adb21770225f84224aaf99878a46a3a3071ce6fd2fcd68b6d31fa323da287bc60d865ad780569b120cd43d6d093f7309e6cb02f31b16d6fb7a2a8294b951ef23e2b10fb2db39d95b7ace73dbc53ff1f9ce45ca41c57d5e6de0f792c424c0ad890653f17874c5115a2c25bbadd84adb2c049016703f5c123bbf489c1b5a5ddf5216fea8388edb5ed877c991912173aefbf771df92eb825260e795286561fa88b41a0553a64dee387ff9cf35cd4843b6044eceac1a7e8fab516531e077579ec2106c9e3fdbb889f67069bb321d38fc1798c22172194869c5ffcf78c7ee11f64d0472f96879ca2f8e45286897a91cd96fb1d8db5702700cb710a2bc190dba41cc88a628e7d8d680fc1db908d8580c936631c21e47c6c11ac0584e075c6809fac417596a0f01df242dc45f6741287c2804a304669c8602e1d99744582c3de16b1671b20de545676b04db9880a67b7fe224022876c1217c1e26f19be89b3d64c54270f3e3eeb735ae136d34e76e2b4030cf473ad3b56396a9d87ffda6236ea9d70136879597a300f5921ca6d698422f4c1903bbc2392c28027d44fa3859113e195ec0dd97b2711b0151dd036939faf379c1962fb86b0c5113dc4975b4a0042b5ec4f80681b81a6876c40ab7db52c78acec666e6ff909fd006886bcf22622e977d671fbac219b64399a455d07577ed93116186f6f89728e7d43362be7f9b03b9f04af08ea30867c251a092daeb9d752ef8f2b61da3086bc7d361371ea4327dc0c690df94a006cf39ce5a12e982eef678a7de973876cfca02db135e4756ade92fbf01e721f01c1de9073524f8c1bd0a1d20c71ddb970c6b5e8f67c076933b7238321b7e235f8c46047967351d921ef3eadf39bba6db9d680d9c0e1562d8764b0dd5a1e14b3b83b52ff98a9a775ff242c84456e175fb69a2cda871febef85702256f748691c2257dea0bc832d2d0d707dbe5ac200377df0b03d98bf90927f5b538f1c933eb5c37e59c4da44fcef323c7d830aba5bd0854bc366c9825e10f371dbe24570b19e6bff466edbaf6566c03e47b81b120fa232d69809e5c63cdbf1403ca44db4c5bb0cab1e8d7298d2adbf02fea090b442225d67c1a671ccbd8639e58236b4280f7935f3de1639309fd5e079ba4bb4da1aa3b7bf2776b4eeef1d1effff631129160753231c74e564db5cf0dfee385520e7f47aeb698885b8a6a4c7a1dc8497535a74473aab33c8c5559c888a23b255d6e78e3415942537e995585608e8229db66e7a608f3085767729d392004bd31deba0905c61c9ed0d5d830739f051da119ce5e859bf2c5f68e17f13cb887d22ef34c027ff28b6c22142288a33f1615bafad434bfb065816737e8949dfdb471a6bb2a5939bdad16ea83f572ec4f3debea6cbb7c026dd6ed792e6baf86edb4ebb5cf0a254e2efa3c923605505921792b27861867126fdf85c4c06c27e16bb8554000a0dbe3f8bba540a84f64d7ddb056ffd08a94682448831ed27a7d0ed52b29856bc7af627e5aed88730b2fe463ee4a3eedb7f588c5e0c2c5a1dd3007ea89ce93948c22a047e139da28641a01416b1f01a01f6bb8385d469253c34448ac7066f7f5d9e02bc3bcdf70d3db30458969a3428772c490049c16f73646ffe5af8de2b6472d429736376274ab7a774691ab102f3116057d4ee91848826484f5f92b14ab275b6d0b44c694a539d89c8960c9820a637d1fb7b82fe2f48c3a70cde8f6fe254ba6821d50b7883a9a4891838bc2c0615eebeea7121609af261dcd2e9590d91d6be812797c2c41acc61de7f2d439b9770a84b8850cf3a6c0e86e0d55210efb78a885a018e9b133451e57bfd58515aa228e50209d32b527aa463c70418aa6950b5f601181320d220bf9749239460bf0ac49d0d6ccb9843d5f487007f06b1cd5852e6fd98a9479f6a97b8095afb438d73aa034bf4244ae9d0f06fea7f876384264430ec10b8e110735bf3fb0aaaedffb381dda595f2ef886badff649253262c4cb9ffc4e329754bf0dd997127a119046b8088d2781393e5039315bdda0841b4fc061a42b3aed88053876372749f644aeb84d5b13587a4daaf164cf6e93654a7565124581c2e5d716eeb929fad8dd31b78c46988680df0b7c71fd954e23a5806e92c22b148844289d8768a8b4f9f8514c0b544898e87f6cbb84b7a2720b1da1d965b22b93076567efdea79df215f209ab560525737c9624079364310fe219a85bbdee970dab6530b754ae120ee95de5ef063d5048216ba59e3e934515399fd2cbfd8a7d53e3584bfd5c832d1689a3418603909f8dc7f6e15ab96ee761451c4c471ca7cb7cedfffc1cdd10d7db10f28257885653ca5a7ac1ed7253dd9893e6fb604d827255a00f1a33fb909035c8cf7646cd04134f60363e460376bfe3c2d3cc08073f3b1701a7104915f37edfa8eeca7bf22fe4abcbefa44b44b67a7bdb16021adeb247041efa7f889940b8bfc6e9430bc2922f4db0a164d9322b85499cb2a8ebc435a8433d949270695e287635c7d936e2bfc4c4aee12f9049aa4294f7ad244899780fd7240d31abc7936862e9bccc3bf1c11e804c77fd98fe8f48fbcdfac6d13baeb7bdae60586349839a5cb0fcf5690f15db0c479171a9e1233d37e9544f3b08cee7c7ebee466cee8e6117050079bb8c45f2b783df67857897d696cd451695f12d3d44a94ab784f81d98c234f4fb0460d744bebf1eb4772d9f6a854a7e3e925fe079d76f416246172287f14d50b1cbc81050c7e8d5992acb244915b6b00f306ba6f1af665e2f0df36b94a8c1beeb30118b3429989ae08519de39bd41273514d9ca2a89835f9a009ec5fa5c45f587e7ab0444bae24f4a2c7cc45cdd8d9128b3fcda9365880e432fd146fd9feae7961517111768fd2d148168aa5ee49600c991d930c338716caa8c00f0902af6ffc88cdb35380a8803d991fc93af28bc9dee4203fdb79a9efe4d4e04bebf79feb2d22f4ec76138b01dc6fc56fc4cedc3a233abc38d11b6c4979a1b5177ef74dff609f3b9b5651bce93cf44d9d88f7e3adfb449dd9e40b695be415cca90628622eafc91e747c6a6801c7ac1ba896f660902df6f63f20bdfe6507d2b8cbd26857ca9c4ef5af4b9717cf69187f38e1519caaed322e1d0fdbe6a3b35f7930f45477e5b3821e8287d3629681d8751e5b4a00f309fe7811b58692b41931fe03601818f2c0b4bd54990e2d491b19c3dc520343a27e2a67dd9b186f4a93b3bb39bccb6ebed8a1d02fc2fe21633107e4746d11e6bcf6814af3939d274bad6b95c021ef7f2542dd22b7293fe24c38a3054978c0b79cff189024e3de1071ce544f6e2368f06e59fedd94dbffee1a8e1c4ad9b81bacea85ce67cb8f5dd527870898ff05c3d67158bae184608cf1da0cf101a363994e17f44c59b46c09b579bf65ce5e0d5dc79558c6b7dae7f7bd19cf62b4f2f0b0259e7ebcbdf142097b058b2f151d5ab1d859f13cabb50ddeeae8102949f39417bcda0774246fd4fae37da75df1eacb9fed754d4024e6f256f410874bc0e58e44bbe82d448ee33c629a9f0b87d880cc281ddefd03b5a9cb58733266002f0d42bf268f2f081bccd41cd4975102173a24a8d1ea2c1c93c6ee14e0b77cfe828288cb76300eaeb7d857addbc99ecf73183de7cc2c8d3a66976f71692bd8ff622e5224cc87cae3cc39283e557817506a36c8a029e79b3412c3202ae35cc9ccbe80013fbea9e6260b2853265d21b4ade89908b2641b7aab3f172b13f77880744aa6149fdf4e8c188a6ae246b7e4bce53c291cca39f024cfc72d6a1b47eb5d50d7c92dda994805523a70a5c4823dc355b798c641705e74363005e944e133d4a81e98d27a47afa303538ccda8957f45621ad43d25da53cd872dc4e7c2e2b4f6b54a22b13aab7da21184ea20749504f4d5adbd8d281a144c49cf2db79e8649ed705261f44b65a1dd5400f55389b1885122c7634a5b2d644a599d648a1ba89dd49e4c21bfcad4b7695b9c20a485b7a74a2c12e0112333014561adf774f5ea7c313232b8133ed5023b261d6693a92974ac3d56e818abad48dbef0b7de48a2aac92bde6fe79ee5f2114582d33c15a2e33229d2da6efe504d88af5c626ba40cc7ec3f8989d3c1e77940b76c59f72c980cebf7d6b8b86790933007e8059e75eaa16d7726d583fa195d6e5593021a074957ce527d994167692dcdfad9a655388eaac8a23dd2f3f8d22a1442029843ed79e0de93442f6216bc8197d48d26dec2189ca3e557d6b959545dbba03b0de8497ffe8efa3cbc2a15de3e7e9b27f5010da2f0e3370dcc474be1bc4f50e20e0d2c1c4cbcc8600ef21015dac23d29f0df7e5e789109e8469ca89a654d47d5fb4810accb592beb427a81c8f10b309ae8c92ce28afe6166cd02a96face4b40c814fda2d8ea7ae032439cb5a38550cf3fd802d82db44ed54fd63c5a7706b9525131cd4f3c0b2a879a1cc91d6e567d01dadcbf24f2af57c62572744d86ae92a6b7d2540961af71770755fd6f9ff347fb1e92c422c2fa8301e6cc45633f449de31a685b7935fad092d4737ff1289a983c487b39c913b4f2835c7aa78dabdc9e815e30c8c123c6cdfbd92f0462db7613d46fd128e42dd194083b535c8cb0685182cc1325d0d682c662049d61147a3ee80566fbe65a99e0e21c3f71009d6ad56d370d6834d3aeb02e0729a5c1d4a353a67820e088e141e866193ea1081ffc73008dc0a0af94d7a2be17f05b2e012e8f829253585c1e42c393ef768f44d11dd9c24b12ea14cbffbe10aa2c5e238f1d2146f78559a54bc5fa1a75d1980615c30f62f13eed6dd8ba6a5ee1732bae758dc1b27a88bd445798dafca8f366f56324ab786cb40ff226fb33d645b3f49d86c25014e011e77aa420c7bdb714ad7d0bfd8aa4fece541dc009a9581805558dede0d5372f32a3c4f98ce60bf9c29ba2674482003d243e0c28100c6f671ea9cf81f97a283a6fae47546cc409cd9708cacf86707316c1de75b7d2d83b7589c276146ae4d3028008c8a521c710a154631021b103672039d8810d5417065bd8a615714f7293b5e9106c26ff5e0c4ba901b1b43105785a259b1e981a42008bfe97a32b4986b0238072a5878aa5832a449ad1dd7ced9cc6ed054cecb0b43f99bb71e0e30a3f57f3871a2456645ef330e2901ded714a9f1cbe7e6e263d03ab2ffedae3f2e1816a04303f50bc73205abef436019f03dae699e5abc1834a46742ab5e6680ffc574a2478289a6d0c964c08aee8c16602662800709ab643d3457b7094c98d07476d1423702346dce4af95ff56bbc9d757426d70fc97dd780cd58f7a82ee8687976141358a3d204ed94d8e4fe8000a2b0bd06e066a1db407517fdf6fb7773f49c7e4564325692044b4475e6fc7f11ace714ffdb8d1a8f1300b8249caae15aefeb2cebc206392462174722c22d082f250864658397bc29e60546b372525e97ebf49a208b281b4b4f1e25fec03432baaac9dffdde4a7adacababdee489d154cea8f03169f759b3c74265fc6bd70eb07bc84e3943010e357ce8ad2af233be681a34d7c4ee13554a2fa39fcef1793fc8b33030df13429da9a1c97715c6cb6276ca0b10abb7cc4189ddb12dab7ae7a2958b6b8b49fe9aae5508b73e960f07011beb377d549c8c991c4cc110932dafcb48572c89c2ccf2dd9b1a98e3dfd4f055026e7e64f9383fcd0af98a236b7b72a9565660fa78d0a96726df9cfb285478b442e00e7a72f14df627b214d89faff7fc9113e69fef4a4678b27cf1bd2b5e95392f892ae496875e3b5fea6509d2d68f209d69c787eb2abd1b283c446a7ee3f8cdcc53577b56b6ac02a4a2947e019d408a73582dd695467ae27b59ca8b6c02922fa4147730e4e28e61d28d03361791b20db0f1d2d815fe9029e3774018d02d14def38da746300bd1d442730722fbd7cfeeaa872d661ac51851091b516b2f8aeabcc7b4ccd4d3fb09b76849f4f98e2fc47979102e32b8cc88aab7b95666384c6aab641ce0ca0a11bc280d9af4e903286c399a83e74a5bd2d1066fcdae3ca7c45cbe038de4fb41fba2f584a0e704b29bd28d691883ef73a68694454a0d4a91f31746b5587c6489f02c19c7d60d75c05fc132dcfd2ba3bf15d8a2cf07c42904b9c1e89dd191ffcf6dcaf318a8737b5d1a8661005757af672c45f1d4e6159fc06ee08aa089fe3207d92066572498be358609935b4100bf3335c3a5cdd17e716d19b29a5ca65e1cb3707272e20a4cc363dda2de55814000cd5f3da7f153cca61d2af3ddae905ded38d7155b7b7bd2c381b7e7ef8d28e5e416a681b8150bb7e971a921795bae84d73c3c84fb05ce3b0cf1b42dd135fac70047e64a3557e3a804fa996811e22a2e9cef2937ab3ada171e7566e575f177478e0f95b1988004d198b977650ebd9c9a43056a3c3192148409a0de012d7577f3233daac8c6329c6f3f298027edfe9362b391a7faa490ccbd84e02c12e4821e6df0c9151bb5af7a17e504c851363b248361bb46682017b2aa9e7e586e049f64acfdfa349bfd1b8a01ad8292b7719aa2991638d1a45abe5dd4be93df0d3b72b4f7471d5d5fec508a9008aba1543fa844150c02e7fdca7e1f1bcb3d2a0355ddadefade32238e15a6ba54d6c6acd63584ea9d5e96a89342c5f5ffeccb0dc595253dbe4d1fe2ca86970aad1ddc42463617fa51ec8cc3fc4b58592e52ce25566d2c3a9eacad71e034e0e5dccf654b55dba3bc20f5ed18d9ba31bcc46e706da507361ef24b39ee9ab5b63d44d3c7e89f2d1ef99aa078a00f4b31011a663ca75bc41440f310c741753cd78291a64a3ed73ac6a0714a1d0f850081803ca36600325f505ba6ae26d62de3ade17ebc600f57e8ca1a5727c49df0173a1bee109286102fde92ad902c0d17aa6175e830a47a438f95b3c9070bb19c5da9bb1689eccb927e958a30b2186d9370e56a691ae7400115f348aecdcd2458c72d8159b80decfffd618380d641a71bfb9031aacc45f35f76598a619f9ac207fbd0e257377171eb377d0b6dfda7492518121b7e079e17a61864631ba76b71a5f250748d0fc4f5c03a8249a9e07f3ea0343068f96573f5685a2b13a09060c94fbe4465240d307313bf5a90e22865d4f74dae2afada4b0eb8810f0e4acd973c46ea55d019eec3145e06473414f565149df53420f9552f75ceb76769ea5e3b5fb2a0d863b27ec77f69298f0222f0230db093b141ca8aeaebd809c961106278efa6538045b450b580c8dce631414173442edb1603be16080310385c0af5073e56862d078c2f7248055e17a3c12ca4619c452d3dc461200f6c2ba8e53c984488b74d1800e74f2fb7b3be568e9b992b6f875b6c789e8b972746bec22f85c764fd9ba0158bfc50b800fb94ab6852f3dc8163ab98c89711d6d85c5ac40618d3295828e442094a3a7ed45ab04aebd9971718891d826b215b4157413d607f1b91a02ed8c07337a111bd54ff7b353bcdfb4e144e2090aef383b160d509820f3ab5c1f4f453d51012193d4a89e7043e38ce8c0c9f0b93fc16be9f8ec382879315dbdd8c54946e0f92a9dc0fe8420aa682509cc3a0f2025526b8a507d8037816ce2e9e82b0c47ebd2ad7f5b237e5f77196610db15b3c1593edb566316e505be98e2373d15cebe9457f2da77492c037b473bfd01c117f3d74044517e7cfab38c0e3028408a17b20b98b980ad6f472145641e1958d14a93faf3a51780f500096ebb0c9a0eb11fb0439a5b9015e0ca03a907608a2fa1b0a73dcbbcb3acb8779da4224f0bc86699e800e49ad5143fbfeac8354d8b66255c8a3fd3266ad1e39b65e336aa0a4e1c9db838d04f94173f199c571178e9f2d03b0df6af7c5d3ee0b785ee94844c4d5778bc14c50cdda9edd7651005647a620642779afaed720ba2bbcff0d5511c783776ebc1f84b8751be5d7d2c95a6c08da4d704dd29dd238336b656d9d32dfe77f978880b71d09dc8104f351c7427596173c627db321d8fcb313aa470155d510542eb430f521839f1fe2ec6bd3b175b8579a9be67981af5fccc25775bf124130a15c6996a6422adbb02ecb027cdcad911f6845dc1b8fa3fd1549e9d704fd8158cabff334de5da0bf7945d4138fd3e6952de9eb027d90a8ed7cf9366e5ec097f801b339be19f77ab7a2c6a15a694ee04b870a864039de54aaeb1e503297c47b3e466a6ee98f9fb04a222df17b2f91b6f431a3b74862ad05a28146e20fafd5da5ba502b7037081ec0436d04625b189f83ca632735a2831608f2e04e7c5a12bab5f7e2411a01a59ce681e8469710d102d4f341c8c1d397b58a472d98cac8292f1e65b6e8bedcb8388e08c195f4c4119d8c27522b1e3d3df03370d6bd4545633cd206c5d80b01d7836cea8942b652341ca928cf0739e9b842fd04f10fe7c6bea844a29f857c7e7e497ef109081afcf8cf350d8dc633a0a216518e9d532bab20d48a00b417d01188c364ceed4d318d7067993c9fca3c941fc962c8cde3cf9c42f8773dc794764846f8d495a52ed39f34a6db9ba19f048d29eb59e847c6e608a2b7ceece7a52bd1987edc0cd025f89b14d390a7090a23f8a8a0a1d8e3b6df31366e1676c613449248d4111df44fda094ac102dc089a9b21faca1446bb132dc804e004489962f66f59e097c6f4282c18d622ae313dd50abe8254117a1b486362f534c97483daf8ef9bfc3316dffa5a9de19a09334b9f69286597cb2ebe5630f7921680618efec164ab87a18be8b29dd8f2d098e01dce1cc04579a550cbc7acd0c3f0fc2ab3616fc20de560433f9dda3299c6582e822a0f84240ff4cfe333a3190c7ca79148c7c91a0503fe0b0d05065d20dabd1535318ec93bc140a2e19916810f01d833188a538b3e25160000809868fc38dfb38fe12e0da94df184edcabe05078000781b2bdf3b7c0c070f3ad1cf3e8212c6db3b47cdf53654437dbca7fedcf7af13bb4f11273b51467b08c79755c4f135dead93d20470b4c8cb460ebd89a2fddd3df0065be99fe8cb9ca7a5550988d1267deff6311a28d1681b8a5a5016c697f141795f9aa704f631ca3290272481e74e8ddcf8d110ceed265af4b47e6f238f01a6df22ef479032ca7f6c9e0f1c9114bc3f822556c4d04d2bd8b3fc82a7f550c61f8045963e1cc98fc411f9030bcc3016b4425e30b1545b8e3186cb53716f464c889873a74ccaf45a8e7f9cadabb4c2256a5e542b8e3dd02242c1f028859f20f7eeb0ca5b2030a302763d4786c36f7b753ed1e8c46c250f1d28eef517a618a3512fcadb80273c0772eb921653423b21965b99310fd30d87b4c3123c112340eb825a3369967d4e60b3215c60ee2a6657dae1a4ee18e749b720a8b349ad8ec62247063e9c5862677522f4a189d9f927de632c04cca4033aaf0e8c5a300cbb4a07e9c84ad55597892b4195c10943d0c211c701361601ec05ef76eaea101a11044c041c8239975a931d607d068ffbd37378ae7bbd5c8db473952ccaa90595721b5a9479a8ef0f7e06aea4b54942f6de644b29a59449a6b908e0089d08afd93d2c77c5176e1cf91564574e96cd61b9b949639c7d87d862c4ab6681e9c1c303d471504695d1d15b45c12197e7fc26b65a6bbd538e31634f14724eeeff412627c71472c66092e39c73c6cd6396990f138f2c46f0bb34fa681aebd552b5a6b44b29cd94ba94ced149e79c53a3365407fd22a59472316e48ee5ef7777b73d2df5d7647cab917baec07927102d13b3c3ca0e35e6c33a4736e4a249223f6e92791fd1db1b9bfe2dc3c3f2532f7879b8fcede3f95c8dcd2c35dd8200347efa4fe69a9add6563a9d582ae57bd7819497da2a638c31c61863f1e7df18bfd9f7ebfbf34e9a63176d95744b9cb2c1f9d6b30dceafded6e0fc96ec59b56bce0bf2cc31a9fce6b46ab6d6d9ba9b66fb51f6f4bd8d23fb87b269fb8049b922c9d8624505f04402f83b2b534ff33a497377b177a8a7620f1fb0ff269d6bc91e1b9efa4e3d87df04a6d7d895aaec177bc76d105bb702dadb4bb0cd492301c29402ea87f2a77bbc9100fd5bf7cf59a753fac5d83e7ababb2c62bbfed2d1ca81631ab9c1bab1618357aa8edb52dab5954ee951476b878a4e3924b5d9fe777eda57a222a3235ae9750fba42b97d68faf8f0f080a094dff4aea6c597734e4d9b3d41a5915a4c49c6e4add65764145dd3aaff9cedfef79312ca3f29a5c7723fd08dab2a954eb979f755d64ee2497c4ad9d2c94f2adb52ba41eeef963d22edbff17eb6f6cf49394a23a6454084c0fd3f9870fcb0a372bf7c32336b621a23ebb741068edf4ad3d34008c79f496696ef6892624827c439896c31ba423f70b08bac1055199a12a794206c43c6ad10cde25384ca318db78778f318f3c8a4dd5b848de2d10dc242d9e3d07d6aa820b2c58465add41acaee444d9ab2ecbe1dd6246ad6812a341275a029c23a10a57d8d94e5c7688273d1feb05d7feda0567a3b72ebc8ad9ca3e2c837b2f568bb260658f926dbc836386f1c27bd55de54aadce56dc5498fcb5bde6c38e9a5f276c3592d5f9b69de7270d29b796b71d29379d391930307ce0e95fc66efccafb29dba248323ba9cb4daaba5364eb5c236366e583770e468e9d88193538105dceff8ef8468f0bfe3370c00c0e1acf0eff8ae008abf34a8f66aa98db3b171c3ba3193fc4595fc95c3820bdefb30f8d6f906c0774e060f7ebf0a4996f8ab1500d713c6add63f08f2f084383b90221004c18f0f7e93e57d9d901d3f529081a7d3600515e478ef9900002fe74fd0f15a17a08081c7b2a0c8e7e10a52f03c2e4785f72e4e920b2af81d39152cb1a082d7915341ce1732c93b3e3e8ec7754366def1cdae03cf3a3e560f608e1c393e7ecb6b754366cef14dd60d0da8a0d0207dca74687a27b0cc54b9e199d020fd9b1911cb2ba141fa369aacf0f03e10804d3764321505c0f369177d97d7edc2dd10a0a32c7bacba21d8e7031b1e8faa4708361e8f8e87489620c7638495a70396a0da7252dfd27250c892755b45521e6e90bee52a96977249b29c3d64de251ab88da0ede947cc51f64e44806c4ae16657405174051455b8c9f94bcac7929befc1cc53ca3184c80b88f10bc23ff6acba0085a64b941241cdc59018435dc67479cac1258165eea61e6cd031010545b55e3add278c2dbc6f2bcfdc4d616891c3568e4d1d68ad748b493380e9f4b078d0d9e54bf9b1933f487856617297e30d8a6f45154c3939e4510306e3882cbf1594e5992cb20c434b8ea3db45bc6196660319118506124eb024755963c88a59d18cc53ce79c33e74cd3174d2091fdfd678421cfa43c9f037f729bbc90817ee029d6e54a9758ec620b17345c906e381747d1e70400174af22bb5957af4ec2e86098ab8081d99b92973e628765425b5c59624cc2471c50227a22460487c59442161e50834140ba323968e98e96032628a79743456306d918db15554b912d3c4c08c8062c4d0a462b6f4b42de5a012329a62cd520e69b8252f0b30aa44538059112551c3929730685c18961f617038f37c04e404f040d2506980321a2c1bb96757376953f26adaf5d7cc8d23f70dee26773744e61b54112a15eb4088b01cb7dc2a2044a20e840b8365f9c5a16e883740fefce21907bda57420c45890bfe83cb3b5ce0f2df8b30af1979c10bf487c1fa7305139f4c9b167271451c17bfe27fe1226ed43e6f811e6e3af760a73c6897ec22834946395f0e38fe0af6dcd1a39e4f24b2e72393ef7c308b7ac618aa88ea8feb0823549318229a2b634424a5776bc5a92f0a6eca51fb7d78cee0f13a09f8ee33e26403f4438221da524d8bcb44db8979efcfaa7c908aae7a27d6a2d91ee6302f4d3794784fb984422ddb57604f95c046c9efb98a8dee6bb496c85e108c8e77e831e6e93ee571fa99dd48b9dd701fcaadf36fb85337fcb07bc218fbd96de9476bd09c202d6ac5903c31f16ffd5d744f5dd77f700d5873342f7e190c0bd7c8efbca2591f3fad6847fadf16dedda45d9bffa5f4bb7eb856f3fe472b5e1bcaf715be7b881100eefdd366b35dfaaf638f5e35723f6c3edef6bda6b9f91cd4837647b6b9ff33ca66698a53048d9bfdeab85310ab95bf554a82a3047d9bf8281ca19e46e02a394632702f7f60bb7e7bef935f5f5022e827cfb1bc880c34957791a5155fa5a74cdab5ef85cce65859c6cf9d5bc788f30c9fecd79476476ef02fea9cfc8fd5a3f1c10eccbb716e4f0665898a6dcbfd921f523fd20d2b37febcc0d896d4a6f1a36dc3d13709ae244cd953269be00f9404317425996808aa10992012d4084a00a910f3e28d15c180d4115e1c4041a2e04c98008ce9019c38a2088bee8a82b624001151d58308285fe0eb2e1b6200b317020a305114d7c018af225ca15433d9011da02088628b12ece94f1021421c8a28a299e0ca9390203869ffece2d9b3282335f9080828b1298800b1b9096bc5041348b02a9c9cb194759be104173014614333a087126ca097efafb67c36dd3420a728062c40a48cc4e50a383130c5860394152ffedb80345655db8a8645dba98028bae69494b1a2dab19171d54465ca058d2b23121d32245cb950a96683a1395a4cb212424252b3dc41417c0b2fc24945a3b85dcf84dc88d28ad6c76c856b1441e7cf09a3fdbb66d5c10fe16e2e1b25aad56abd56a2584836f211c7cedae70b594e5cb5fff931115ba891c023191423791e77cea7599cba92cdf4cee0f65ad99ca307ad0f9b57c6b4bcb377b34c9bcf86af95eafd29ce5919661ae747e7686f4c36aed53fb5d1a445e2fbc4f73a8e10c99346a17e0f2fd52e0f27c2f7421b2fcbf9d90f9d50bfd875c3d5bbdd08198473125199d5146284cb3272837135392c58e314ed5159193b2fb1efe9aaa251dee54df2b1593cc7d61f72bee33d23db7faad8b5a170250eebeeb3eee9b45573421355931b4a96992d39eeb3ad9751bb73dc7715c6cbc7129add3699aad8c421e2e8b1ff67c8c337d2e8332caa1cb3acf2279d6c85eb15bec91836e93ac925db23207dd8e7197bf6d62b24542567268af40b1453fc0e0f8a12dd264568b4d3a4d2aa59457abcfc2f76b6baa1e32527b735e07e4c1d37dc78eeb9e53d5d98930b3eaf173aaef3e9cf77a2782ea55b613b2aa2b2fe6cec903b54f879505d71bed077065611e60ebc877182c03ade23d423593016fef4f1e67f1f333d95fc95d4e95a8d20f3270fc902a2d519983fe912a0981e3fb9924aa04757be4902ac99e5492bbfc976463989ab27f4867663e75862a51a59c0212038e1fa6621c91ec51c5b8a2ec9c5176ff544cf6a8eec5b8f50f823c3c2a58988a657f0e267bbad98c0b9a7142336e68267bba58ec2906154b43a444242362cafe1b91ece96e91516c265dfe2d264ec629b586b010b70535e08258a88ad92fa68aa960d2c787870704ff5b2d8c61d965cfd96c368bc56231222222a20ed6c13a5807e366b2d5e266b3ecaa193eb37577440895ee74e6bcb88f59b56d5aaadb360ddcb694a65dfb2305387e173dcdd00f2d70fc6e072fc8e17c8d8c3ee53b682bfdde914224a088284000214bc2c9514ef3848a3346c082115ac4e0e53ed1d282061a698c902208093280968872841a5264f0a2049294299c5e8d8e02098e0719111a89a5153d70136d72379d91865dd2bebcc0c2d159c04c1a45ec70022db078b2648b1d9eaa3cd1041769a41550d89020f5a50c77c10e37379c6c510a29b1471232ac2933c54b1741b22f42b2247e60ca01862f61b0be84e0867686183dc4eeda83a56938ae8edc4d69a05092c2e682300b1414d184999809644e2128c1511419a5175e50b2a2526aad108495344b7471428d183904c1840e58886c40aa81c210c51a2d28e70c2e62b6242ae808c103fc1cbb496bad09f3de566bce3999e4686d03643632a7cfd41653dacd674d59db09c136f5dafced28c4c607f1eeefa54ee22f568337be6fdc7c9c955a2dc56ddd4a856d6c7cbf0927a05024057fe9607dff06cdf2302b051d1e8755c837974b92c39b3796e49b6ff046df607d21937cf321781f7000045ea968478427f53ef04298a924cc7da07921489518cc92d7fb06af09997efc1b8283ee7dd01c98d149ad9872b2f4a48a4b6070e45292765be643181c7410030b94196051a8743164460824223c8c25336ec044c1a142424b0c660ce1c31a373c59a3cc17463804ed50260a0f375a6c70332a4b6a0461892d110230515d8cd1a58c32505c1098a415182b54acdc4d69b458b1814503fa218b202a5448e1059a2d593c8104146264f1c3083817b4299cd8f4c0cd2972b8530a1358305b282a8304062c290643126174d1a24a1a449c11826b418a27ae1460525290808b41b0fb5f1fc1d2143558d76e7237a591a22a0304dc4dbc600d1b7290a2456989a30684f1b28415334c65403909661b182c1c934a144fa8a2b0a2cbc9dd74c60794ee8752c23ceade7bafb4575e2fe4f2fdebaf68adb5d74b81cb4cb327a87a7d7c78785a7201f6a783cd642d5191d1b4f2de2ba5746bff0279efbd44f7de7bafbdf75e1f79430693280925cfffb186841289347832e59c94d619a7cc6b6b9276f5531592702ba4c02925757c23b3431e398522289cb09171497822cacb15324f58c860819941872d8af040992116b2b044a081a631418a9171612604022b2890c58a232c4e56f040180e0a145e6c50a0519981867d12c50ad85b0ec608b35aa53872379de102a5a2350966f0c20c51144f6e40a3c794f9c00d3b7c89c10423e09e2469c1a17481449284860a324b39d0e0f4e35dc65872024c97333e20c60a526e78d8e14c4ea480d5820d276858dda4a11d2248e1430e2ec0784062890c8260020d1460c44a00839327b8d83c2185cb8a168e8a20a2091bbef0f0e36158f022821080a186161c2ce904dc5212193a9e200347948a858e196e98e83ace89a21cd10c2bf296bbc90c25d6195b57c1fec588dd39ff6eff20eedfec9de832e698a56c8fb15916a59c937b966588bc45ee871a1cde5692f391b84616a07b748f8ebbfc7d83ecf3bbcfdae2d202472fd4e058b99bccd8e26d460fd9dd8832c628b1a4841950da4affe655fbff125bebd4a7dff7bd5089cc9af6f1831c81172006462271867cfc94482417e733fd94c828b723f56965711b383863ac4f9ffe6c1fda8732d70f3dd798ab466b7d1d0767962a39eca4b09bb24c39b2fd918dd3c01d7093c102cb21e6c05f4d86083379fe0721cc2772bf1e0e6a5f8e83733e457284fe91ee9d231800caf4e690b5d3d9ef2e35a97fc8835aeae1584a2995f4fbdaf4db9bb21e4eca567b2dd53e23f56fa6b1fead476cc640fc8afd55bfd8b33b468c33baec44904f3f2532cf2f499d5f18bfc649bfda1a6b9d4e517cfa0b07049944b66d4213cb04c8dd8466864c3b11e4cf2f491dd209895f48bf52fa367eb5dd103aa594d7a3185bf7aba7a48debc7bf5fbb637a6fcb706ad39b77933b6e48ef264b1aba7d78374b09aeddf66cda1d94fb2791f6e42e85b875777777bb803963d09c4a32a6992d323a6a59eb2ec4a3b5d63ef96cbab4d6dbd50971141c647d014f88267cc1f1dbddbd499ebdd35fe3cd0cdb941ee7745aa97dee6b90cf24fb871d6439f8724a3a279d32877690762254fb61adb58eb1328f71c86ccf971c6c3929a5d4c7e4fe1f62a49452525c675cf41863fc4229e737a7bc3e5dca30276cd138cdf4903c524a29e75f8f15c3f159c051ce2d9c7fefbdf728a624a373ced6bdf7de56ebdefbd3419f7bd3c8cb347b82f2a33b25bdf74a098b413da54d0edbfcd102bedd4dc9493cbb008563e471307e8b46196594517e1c47299767199ad3a294564973adb4564abf3b7568ffbe3e5dbaa21878d2ef72399c5cee4e72394f0fd86f08494f4db1898f8f303e023bccc178e42f0c72fc186b1f344787454c430be1fee91ffb35754aa78411d1e95294a444b9bbfbf4e93de7f435b3e93004c1202302050a9478245d2e5c03ee8cf3a37d7d12b4af5f132c4d6e0de316b91f070908313e0e917b1f8784faf5a1685f4bd79174f5cff570fcc379407ded49b09ffa9adcb7af7d4db08c70e3dbaf494b97fcead73f47bd131fc9f439a7ab313d4ad40b49920894a8341ec4245df1637ca1281469e81efb31e690a34d8751881c3f1ec91efb7dd3bf30ca1a2a684c94a118558032387c1b8f324af324e59445e2a7e02f4ac5c98525a720a11c3b4a4a29e317a00c8e47311673336d91c27426472d4df1894e79420926e8d04c42b28783fb4a8a9983231b36609c0eb291f979f0c5587c036081c37e2ad24ffdf4146d90b03fe682fdb112f8ff67c718e397eee99f185dd504349009433ed73efae52fb3c330d40fb1aaafc99ef8352ef11e790666a5b6ec4aae502dcc6a14cab55622f547706a8129575a43edeebe4560cb7d6d7dfd25b287c8d64bfc85416e1fa9207ff557faf5df860d9b7e1c7cc55f6143f52ff11e0b84ea47181429fe12aab5d65aeb63d92a24d9bcbb1b070e89df03d6e307ca3636365e8e07ca9d03c74b1c38b8bfe16dcff2a647bd5ead6cac5641dce6fb298749fcbbb351614f3ef6e22c12a0b34df7e3efdc0d94a5109bef88959ef7d853ade677b9fa9bd7f25a56e9aa8f6bfdfbb5a4cb0a6c3f0717b88ec1fdf52fc646369c1bc38905195212922c03d71cf002f6d8f35e32341b698b8bc7d762fb90b7a322a3537befbdf5556193ec6f46cded04654a747ab22647a7274939b68fe98017702ab7d3933262e78017b04d6ea7276626ed20d06420a14318653c292382307eba5dd5e90915d4bab5b6ed943672aa7049f68f5e38ad808444146566c869852ad93ffad72b1b8e9c04c13790a38c5dc3aa7eeb848dfd853384bebf7fb8fb6fce76edbdf1466badb53445adfdfb9ba59afdfb4d07b39dd988a554fe6d577f77f51b429fe2803061b03c7317945efcd39f43adb4544a4a299d2d65fd49b30c397067b6d5a379ceec0f447d3e6d5bcb5ff2c319228158fec2f107ca8ec5df3aad2025db9f141ba1ef1fe6e6f78c5f41d840a6eda3036b2b6deaf26bb9195beb442a299d0110f29893931f848eb0814ee939ad0025ce29659db5d204ccce647797c13b22222172d8838728b7e195ce6ee2010d6b96dd9b30588edd90097392e5ec60e60e84d8d93b1cc8791a91df809c56bd92d362492ff74c0735c1e86e2ab793132db8684bc82ab4e8d430921d3411657182324a3471650b18620071c5126ad038c1d13004eee24d41c50caa3d49ad0aed410bd3694f80600327308a6268f60554941a65603103089e8c68da32a310239b62c668f0c29c748a49639b55c8a09a2e3cd1aa6861c6fc3a97e9e4c48bc758b99d9cfc90676e27273db89452cadbc379803af2735a14081f7f810dde6f1e2364fb91d62937ae53b5da75bfc112723744f5b11abcad22d7761f6ef0b252e03cce6215b2bd954b92eda477499ed3b506a7a51d5da57d57cbb3c1b9a473da65fba1063300061cb65a8ea36b1675905102fc89e191e3b7b8e820d2a112fdc9e018a37731c53503992282724ef607d3c0f2fd63952620d6c83e4e4e76f801e7767222a5071956f027a6c5450711101f70a8432587376bb99d6032b864c0bde60c99939b757ba7957bcd169308591a72f3c2861593840e7ba30db2223e3251ac4c4c2b061d626e90322034b9245b23c72666071d2d28b6ad82dc4d6b92585394c3560eb1cd0f6672ccdb4a461f2313835f638278c8110569f2e84c4a33d95394cd3c4d0c8a7990920bc97c68fa144a03e5d1a3478f1e61b358f4148da0e2d191d190906c48492816838cd21441113d093105c9604a76ca763d24498ec4351967c8cdd3c891b826be122537cf23727ef4bc77360d705ec801264d3a90e7fb4512bf7be7deb7d8c19ca9e488cddd3b47ba7738fb5d24fe49648edfd706673e2522e3cca759322d22e3ccbf385389fc8ed8bc242b914f0ec6bf1d081d459e724658d6e226872a1ab99bd248ca3387386b1c0f7f7142596b8aba22b3865d39e6ad2317dc4d1f28ca5b0a0c21a6d446e9d57ca61ab06be90439aaddb8f736be30661bafa56c8acc529a5f156771ac6d2899f6414228c15f316b8fc296ac695ac8754668904043232987dd94354dd36808b6fca56959db5673e2b7f1dbe4581e7650bbc1c2c1cac1627de1fd5a0e6a4f3f96839a2b8718c77763eb84cc1600fa65f3f32bc8f3c31bf9c32ecfa7ddd3fa8973ef8e4fc7175b5f77aa13425faeacbdf6b37dc43cbb70c1410479bee6cadd3badd7aeb6c3d3e1cd2f5cbd4d2782eae737bb06ccbf0ee20eb6f7df94b0fec64f2ff5d4bbf98ed87cf3373c9677c4e69bd93df729ca2427f16cdfc63b581f5ff076decfe7bc2336db2fb44fbf4d93a94f89ccf4ed6bdf3ada6724c2567e83e53a1561c6e8c2ac217f946016e5883266461c754006176bca44c143126ab819a8c8624305131290b285932e686a68e20c8f0a24297040014c0b920c5438d1a87841078817ba8821028b18b608420d18d2a9d891060d22d08c0962081ad46c0195634b981c62216c93bb49cd0b7895bb494d961ce258c7eaa5aecadda486e8044d6aaacc20b00dd9c6f0cddda40686bc018f0fc7e2d4ac90439dd81a686479045fbe30a1cdaac5bb2469eff8d2947389d93dabd888e4fee90179a1db05279e98e4321b6313a31c9b5cc9b16d4beed3017586c02c1d8c2519dbfc3ae957f92d3f2db458e849b1d99cc564cfbd4a33d9ecde3b6777ce2ed19ccdd99ccd1991ecb9305891114cf6d8d9ac06cdaad0ac0ecd648f8dc59e6250b198ecb144d2e57f952891ecb175d63ac2469616dd270cd5aa69eeecceeeecceeebdda25fa4b44943b166a3090c76a17766117369bcd66b19876af6689882c4cf668306b2d2cbf06ab1a4cfb991a4c8369b0ec1f3598bf3ab6f2f283e9497edab5c13a5a9e0b2c80fc1b9b73fefdae1fef87d3bd2383c81acefe1f4f387ecf29679cf66fb6df2a76a493fe0cfe6aa7ec55d0647fdc09717c43841aab7b83a595a30317acc397ecafea8478abc36843164736f0c8ae1322e3172772c8cac20358f27cec013372b022cfe75a6390b8610b802c0721865264bcc8a00da08a2122a86031f115b31004bdb78d3639e4f26c272a4a38a020cfafb8094b0c5096b2727472c8237b0f708a9a1baac8fe0fde8026fbf3e010668a98ec3fd358d104eb7198ecc1fe2598e0eeee12cf2943e489f18c0a19e5f0bdf8a7e90a1d0c6ac892fd5b2fd830ab01860ce68b7580b94194ef4acaa4cde9fd90a3661cbc4ff9fe266999765d3a6513edba321ecda202dc4915923d7edf8223e8cc5f18e4fbf4a97d9cf157aac2b62fac41f93ece822d902f983e9ded68809a8caf545885a2fadbfd4f9592fac2568edd5beffc6410070205ee64ccc1db3f7416ca58be0f440a4c551e7deae88cce1cbcff82c29d239df5cefdd718388c4749b48fcef79d4846344fb3237f45b50fdf32022cfae5d42f33da47ccf71d8df85a23be527fed5fa37ca9c815624f1c3aa31510b7c822f29541e42b79c833e4fb1d7be40b5bd4e4fb5ea67b9648d7155101714a24c0fdfb7e44f794205df751e045be5398ae17fc44bea1833100161cff46ee1c49e0ea710edebf425c1c1c22dd6a85f355fdeac30edeef9f96745dd5774f826af55df724e0573dfe70b6ef1ffcaa0fa77effa83e88e3fbd8e391aefb2b8f42dda769eed3d97dfa74bf7a413e90aefbdda5b37c3f0ed52df56f1d8a44754bbd0e72eda27f6313a0bb1c769a4be314eae0910e3cf76fd5eb2c6509b2276a72def93d3b3a910d2f51f6db744f77bbb489499b8df652e6c347262083dc364a423cdb8f09d00f132c23d8ff9844600bd911ecc77e3c02fb04691ff8031f07e5fd9a30c142edd7c47e78330e91fbf4234195e9e7d33b3c1c945b8f9b64f2f0e0e1a07c9eaf070f2250eeb3607f6be90ae2a07c1f2c701d426bfbfc504abff3fcc8c7670535dd2ab1f128e1963f813cc615368e52f902a001b7ec997f2f67002c90d894723f53eeef888dca493ce30cd1c937b9bf50031fb08c3eaf16194da899a67dacb2fc19e52ffffa580b9e4cb20767ca77259cc904cbfc46d03ef531a9af7dcef4853e9b450eca988c3989f517b6e69cdff52b7afe45fb7030b4967f1162cd7ef2ab8cb27374023f4c3e0d923fa1e4cf34d1632d912eb963a6f12fdc9b547a477e9c45711679cf002692bf5a69a8294b396359ca389dc85fe1a49287645562884afb70cfb18340ff4c281e620c1be58074c1364ae91d39a56a84f6415f4ea82c7146d33b500efa87138a65b4cdd0d6a32ef7e8db2781befdecf7b3cdbc0727a2f1ae228c1834257b3c93dda1785076a1e83f650c722ab3a3b23be5aad744fbfad46b92fafb00fbf423a07dc53282f615912efffac527e9f2bf5e13fbb5742171d672d0731cf4196384f28f69fce32c3e9971a5a015f01704fd12640f386be16ffd83fed2e53f8d2c97ad7588cc19edff7cf5e79360bd7e38f23f1cef138a48efc1fa27142152827b3e41a42bfef47ca6c061cba0a41046dbb707f4c379403f5b3f15518149d0942afd0493223444c4e3aff0823cc078efe58a4897fdcd5301265df697287d40a404a57eb245545802f2f880f5e9e6f58fd1135beb5ca01fea01fddc07a5cb3ed04ff570ee876404faf29140c03e1208f40f962efb4720d03ff5e5c784494bba807ee887200d5bf2fb072795d23e663f12d98f4764d454c97169891c7264d0c0e24a0e2352b65629db94762d1934ac64fb26f88b9b922d67c3e6f7deebaf26b3c649b6bf81bf00c051fbd58b44d2656310ff19c261a759227b222c06d9ffc901c7a1a23894ed97207b4e28625b76666359f228e10d47281263c1618d652db8a747bbc68020e190274b79e4af28e59376c987214b1bb2d4214b1fb27c4b049825fd90d01ccaa3e949a4de911fe59183f2e5519636068551961f391e250ca40bd620f7f328e150273ed7f56b7ebc397611267bb438b4e4bec4b251f05710afca1eeeb596337ee1db8e3df2e58703b877fb0c522d0b348c234b3003d931a3e953ccd63a21c682b560f96f841de6300763dc00cbdc3b144817cc653a2fd7310c327d4aef53fa007a2bad2f5fda68bffd95dfff4c2c674704caf6a55e5158fbeef78174d120bd43bf07863f9c76906a5f7fbe8d1344e897403f08fd0fe84b58110cb34faa2c3b8fecbfd134aa942aa54ef157d72bf58846d5589552ad54a3baa522d5a40ac55f214d8346d1289ac69cdf1be4db42ad21d95e2477c4c21a0fc0c3138f25f5ceac527ac727b532a915ef1900bd72e4afa6b2256a85225125ba44c7d0a6ec3f6558a52c4d997373a94ae9cf630ea2c1f1b321a643c49ed447ad7c98410ea915ed45705b5dec47b5d4cf6319c41efab5f40f0790c30d887c81ab4cba968218a0cc2bbf8c514aca548b1a582577cea87dfcc2a9ddcf889c52d3eecbcf88fc998dc89fcf0591fa2b7b521fcb5dbf695e4ecbe65c0cf29737c9699e97b7c969dee70bb20515e49cbc699ce6e1e42dc569de8ebc6d9ce6e9c81bc7695e2b6f1da77939f2a6e2340f47de569ce6ddc81be6348f95371b4ef36ce4cd06a7793679bbe1340fe78dc569de2a6f3738cd53e50d07a7795dde72709ac7e5adc569de96371d9ce6a5f2b683d33c2d6f389ce6ddbce5709a67f3560167c1059ce6cdbc3da779326f1ea7799eb78fd3bc98370cbcff30d05185f459d9fdc3a9df110f6e86e86820478bc4a38437205d308e544cbb2a102fee4a43b20763fc54466594292a20e6fab4e9ebfcdbc21fd6a0eda3f623c8d7b4979ffcda3b550c2cbd4d9bb904d205c731bdd323e9188fe9fb289374d5cabda070a432221208128e9d070278adc138433e9ceb607d1c6be304fe0a6081c3164e9ea41089f1539f3ed5a74cf5afc781c71cac45d2558d5ef1eb938c84662c7ba80eedaaef438b883742895c3fac4ee4faa14fae374829572332129a432a87e898dea954e62010253007a40b06c0e61c902eb8953b043a800702a192a8042d376635ea14aa110100001a7315002028100c0744027158348c7349b60f14000d789e4070501bcb835914c4208831c62042000180000008210419a68aa803e6892da5cfa6748967342a293643f42dfd1f7c52a39bd2f200c1b37cd214e482d615d8abc75e422e8bb2a88786cb383ed6c90c20de3f9a611d168ed757545dba378a0a49926844041bfe109ac509466dd69d587ee362018cdeec9edd077e02a61092bd89b6867c0409a07fcf7d0820a70cfe29b92daa12688ad26c10b480b4b3b404bd61b3d61b4e4d61c3bfcae918292539588e9e65ee27c04a25834e41346c5f9edf8f539e9319e64142b06dd249c8ba5a3d505ca0df258cd04336230186a80950f97042fc7db8e6616ad3bfe9b51ba092b2ff1c14c0535b733de5ba0585c27af5e37313bb7cd24b6e154d7b85c79876fce7b9912128289694960a2d63361268f5f024c330c724012c59a9d5a8cac313945cb96b03eab85dc903d86c7551dcb75c5e977b59ea12341e07d99ab8b18a79754b51fdf342ed96d166c98e8abb6bed5a5ab6d4373ae7b80f01870951053588634d9cc43e7c17c311dc05803513c90244688718dac42dcc7567c7c7e31ecfbf210c6d14d6c47930c4fef889a143769f92a1b65ef08959a49c3d1d43c80fe4379bea6fd4327b60a1b617b0778f01eee9d0ff70f9a342bcddbfe4906c99e904d4463e21547675e3bd846fa0028b62e633606f416fcfb56e3b36282d088c70592884182e4fea164b789204ec1e1819a249500b275299fd07132a5f59c7f05c0416eaf9b5191a51f341322a6d0ef08173dd1102347d6fc51818020bb40278d0c2daf4158c385e9288c30902f44f8333008cfff5933f8a3c9ca4718310db8a3982c7aab0adc0a4d8274bff1e626ce084a5bbee46988a775881899e0be5cb35b63ecc3826323b1dc634c25a27a9034a48cd380ac65d7f9bc6e26fe33e698a0b7de852a5266343027d3edae97589fe0a1796ba70acfa81119cd05e50cd4811228ab147945b2e824ddb2586e3c209e0e6f08ba8106b31de1494c2730227adb6941fe02db52508688176f58882c4f4f2910f66851234ccbeced378d20d814ec03d7d83a9eb8deab5f2330163d6ba447d9b6be9036c1ebbb385f46a7587f91dd401ca22876d6610c4f0b72b0d2ab7b32d24ed4468806b5f1c9b6bc05410edec12ac2f3043cc0ea1ceb3518caab2c437220561a77a85f927429074bdd2f6e063875853c6ac084ca569283e08a0155ec4609303c15ee7bfd5331c085d7d00417d4df0d6ba09e739fc8151526f584af7653971e221c5a40a43ccf1f554ebcfe2c944d0a8eee8ad53efc7352bcedfb719c4d24cf2b86123b11d489630a0d04899503ed6c8242a266b0df9b73b4f8315efb2d0be5d89bb20754e7025884e9daaff976a0baa68904f08c6c86d7d0a62b99f64fc9af31c8d34bf4789a9a59026011d451292087384a989af65f12e2035ee2c2674484b97587d454608f0a7caba7b983b17bb8a09048d2b3cd7be255e9b4289523e430a1a25ec35707a7fc8d136669b31642e0fadca9dbb80993d80e58007c413c2b0eb4c54a6a3f0f75c0da04e716521285a115f366f52ef39788ed9f4e2c10955994c5191502f6696e2719209882c14376648f95f0f453d99f9770bc3d750ec9366d3604e7ce05e2157b3bfc38f4bb8a809f68cb4da748a36be844d6490f7cb381612414333661df676c65934d10de5ab4efa92ef0d1a09723611c57781aa1f944c12fb22bacbf42570432adab640960a62ca166aad831e565d54e20c837d636b40e7c499b4b228b3c6293f1edd53046205a126b88ad6d758afc00bcdb77867f858c48297a697fec677efc86ee834041fa71510bfd9081c51b26d922c43fad7ab3f46c75877320eae690f8a931e7f9cf27c5a8685f501b2a37a9cb9de6c0e495b37c60bb43a08179411134aa2ac932dd21441c169624895020515005e96e23d3faad9e3529d30ffb13fb71bb4608d0c3650399a98b2a19878028ab7a1241bf800491c0d843416cbf8a544562f16810f3b535042bd291c3cb7475ff9d65f4898417828c029d64ab8ae76002541dc4024d5705602ca331383137807d27ebebd8d23eeb24f2ad099852a36347de0cb1ae4f3cfb5244e4adda8d5459d199bf1bec889da3cb7c409ed35e8b81df1c45bc263ce17b84ecaa07fc2b373f50401b2b8fd2fe713c4be586ba8a3b352c0e1cc1fa399590ae8137ac3a13574cef36b5e08c1d8ba2e4c12357150af3774e3972cfe5d0c46f97e4cda667539229bb58e692e2abb6e48d4679909c53951891d489de9741688ba281e0610c58137d19978369b2e463b3cbec48b25e68ab4ba1506f44726d598ca3839bd7d87be308ee1750fba518d8275d77a11fb85035cd54817b2e5e82cd7ce7f9217edaec3cbf06e06b69b7a99142630f82a48b24d68d3b20a6514f08f706fd59151684a94a8addcbe469c75da12c8924e55d01eb25570234b2f9ff3d17fd655b39f1c7edfdb68c0af55362276e882c620d1df7fd8bc14f0d1fd6975338093fca2e03147f1c3458d0431569fd8ad93c098dd4c9b61a611b123540c31fafe6884fcf9321c6b5615f815df2b25066a7aced833fa379874b0d219868ce949b80c88bb462b7d49fee0af604e12cedbc3df153de9f7e8d1c59ee2fbb5d65f0fba5e06ba466c8790e2975ba75ed6c8d638b9c1a438dd565a30f1857de0b489c9f09d9cd3ba26cd6c93527096653a55bb55b3cf8e2c22bd70909bcc8fbc800246ac148b9702709a6cd0e8e1fb5ae14c842e89fe2cb848ec0b074dc04636988e270d593f651fe81d584db9ec97e8a836bb5d3d50fadbc6581b40214037933ccaaec05e8a23e94df11e3a567883c62fc450ba361bd7a1c20f62b1467bb54ef098afa1ec6ff7248e2c545241fc7514c48ab9110e5d04abfd8ed30566829da844ad9fdaa08847af44fac6bfa23f0354d6ba4a0b4c840ba6927b5af8ac4cad5f94b53429bf15425b086dd8b34a5584e226e9e6ef870949b0d24d5ddba111425dfc3c5c20140951ab12f95abb8caf5239c660073190ce5ae21bf463eb25599aeb227923b2c8c65a2f9d28683a900752c9bb8d2ccfbac08b56d16e534ce462ade018066842cffcbdc7d49ef385f420e6933c5129608921d45a85166beba91eaa358de3d3e727db2d7b35df04182408b92bc8f03961d4192bb49952a947134115600da6206c0e391a562d0a5015a8c8b6a5bffd4699538eb6041a708d47a8a4783ef70457ff80d4566c960367392901631268d3ba1862242e83bb0bf4b1e46e350b8c86f81269a060c0af9ffb151ab4c96729b6940649d3a0fff1fc7e804c067e4a355013222870847a2d3bb65c6b485a6190e9b17c8fedd8b27bb5d9ec23aa0d94898ddb1a2b9dd960f21e51817fc71a729c7798121220466b17597edf77975eae60843dce8b8ee31d187dec580c834aa6c86f54a2be8eee58c547ea7fd979f73ef254bdfabc33a839ac8136feab18e0049ab20ee8c8fd4e17040f66d1c0e1e45c81d3a90adebdcb8ab52e8576873aeef252bd164efc9a677fe318cfdecf185e113b29482065147fbe67560be40df727206f29e307b9834fb16c50272f91ee663babd6e7752c2b0cbd98646072e27131a80fd0452550ea238b3e6f93a30faf65211f05543888cbb4895b80d807d56960131b6c2aaec49349a241ed8082d89b12e1c50f75726e0411f663615b8dec4ed335b841e12a66c3a2ecc532366bd894cf468524e90741e5f01fb50bed66702f6d9f3e04c7c479b89120ee08be24708eceb606e2808a8de75e8b96d1731c311cecf0c8ab38adc0276a72cdd41881659f5f02cbad633e00a0ecc26f54c73b919491ef9a63a93364af9ab835dfb0824db56a736a66c88add314181ec64eeaab9ae801d4825f284fb8b3b9e62e6df7862b6e3dd88270c62c3d1e223731f1cbdca86b14450b4477d4612b9f3dcf546e0db84c37aeafedd6f6c5b51cc0d716ebe12290de47c33e1248895e725e52348c9b5ce2daa9398eed3b0b69fcb011707a2816a4cd6ce1133e4c763b200af7a4dd415a1a5abd7db5c9816ce77e228a8ecb5257ca40a40c813d57691cee83384d00f5866e3a1ecc64f72046ed7443a173544e2976ffeeac1ac5912ead9a3ac10b5ee33ffa141fb0489ab7ff45c94f2cbb6e8071b4450bb383c9d61843772443bafe492732280fb150db201686ebfb6a65ca4e3eb0ebb4e072f17461e6e08b52158008e3926ea8a40b810e3568b85bccc86308b4c17822fbf428e71b2731abfa7bb8f0575facc919a62467639e2a5788dc5670834650e3a9b4c936056322e73edee82e96813124aaa45447165753f41e7b56629f69845f9805ceec139f5e01f95ebfd82895c5b7ad656af898fbe81642a271c2e21b925c2898a008e1531bc6341800930e99421d50ecb90161e311206fbf674bfc9108fe0acf4347ab59bcee3a0eb29883efd1ea15599dd0e76e1d483bebedae393061fd9f8e38a4c232a732ad2346580de672720ac7d21be94379936278f9eb408734a2087c9250e0552b8ef24fae8100b4c7b39d338ff979c7839978b1833616da8f13c36e9a19e6c6db7086cb9614ce8a04a67763c7ce6480b4d80f5d164d987293f8290a2cdcc84cacde24728ea1d9743af411d45ab906688e3ee513f5756a53061efe014b5686d4c71d6d82b5a641b81e270afe02d4c4569b2d3eebfa45eec345615e02d49870a2db3e20b4edf065af1cd99738470a7dd8e81dd674bb8479491f05f2afb51b3fde40d209488e8b93b5604c511a32eab922b27f28aecd765fd8484829c3b21d6bd95f5c794b2e11492d4aec1567fa331c5052d41fa347e8f3eae36db39a8d710be322291d16558bf2bdb5e19f1bc8b738fee9dd3690ae87c1727ea2481f14fa2fe84a8289ef06474ea84dcdda71262915235cf1e5c9ac44fbaa103808468eb15aad47f9daebd9a9e1f5e7a820fed5d8b42328730cb0ff474d445ceb3a22363c4ac105acc2e126d0c6b830fd45a700ac9ffe390f447888529c155b9b5aa997b501aaa8958464884452f6b2d9ecd8de57693600cebe4d75a57133f30722b207d9dfbb1ad7e9be5cc14f06e08948a86ba32dfede7c20f3a4d11da2b3796baca9a23fcfdc686e63f2d3502382a13bb40f62944ec06ac46220a501b002dd012d7550110847d809a971a2352ae7fc8764ba6380789c121a539179af6bded1ba8f73903095c9ba7e9125772d16930df3ac52ec8ebb8f61ec0da68cd70d31c33d0fdd09f07c5e648ec8db417a3860453c8e2af2e942270df8264ec508a53885335f502b028d6ae02aff7a7937126e346a5899c8861f071fbae13a0ec9e279e3184fd14a590510abe221fbf327a10942d656096f36c4fc4333d13883ec4383750d471efabb6301236bb0713833aa7b49e58b180e608cb1766942adf72e081d86aee6006c536de6b84f34422eb079ff50edc284127eacf23bb8ec06ce56edabadf0c51c3ef17bc689d8f9629d7fb51fc10f66660ea9baa75421b23e13c5011da88c40b86316734148d2b6025bf6b28e76a021fc2224c49c97d4b4d591aec958caab85b6d0116efb420c049d2e4c51c24899a29f6f1909b8aab05152c9ec57c7a93a98d438ba97e82ce97697c0c8e7109f5693daa3481017f4f19587a8ac387fac400df80beb15fd01c198a47c545e08389cbbff13a9409af45fdc6052e5ba228a8888a728e41c28ce2f4aff783925b35ca532460c95531c442a4266208075ee6d62051f08a4ee31e9febcf40ad2f272b6a04e116eaef55e38befdab24266d40024be4018cf18706e68de38323f5ce639cbc9bc75663fc26fc11b0fb61f9365aedb87c70449475a981af5de7ea5f4645235c9074054b50ec163094936c3b2c6752b6883612a4e55504a1c898a6d69e01922395d447e5b30ee46673f886c45f59f2f15f0cfad1942a5d83d61070d35790b8552300236f873b965b9979269018bcdd5403e08cd0889898655cec7da8d4d246619879c225b1b71c0060c35e6ae6475cf64519a0c1b5ff450aa0489c07e6a84a59a2a2a7fce99dcd04fdfb368af79326d58fc873ce98807d72cf29e4d609bc2b21a820c45c426efd0ddbd536fca99a631d60c2021185ee0fc931c2cb2671770dc9939497bce145a71fd6533954f110a6a01cfdfda8e99361c5b9b01ec9b415d995480fe5498e6443faad3a427eea3af61d115cd24a24c85eb848eb9411ce89a590c14f2295eb06bf44022c3ebc791f1741d1bc4fa4f479c29ead3e0f15ec844e6d8028e1a0bdf6aa259fe840bcfcfc5bd6807d5617fbd022c12194a98c2fab6d906eea4f673456b3863ae6614a116678eab39501612f73a20011eddb495fc3d29100e1965920405d1609ae2e0f38b7d14d51ce6911098080dbfa7158fac282ab728a599ca7cfe2d94a7fd88bb3bf559274c8cfcba087f7dbf958fad1136a550d533a10485a422f87adc31df240f5397eaa1a086a767afaf44fd242447cf73edd76bfe658ebd53a554c3ddc2b61ece45d090498654d1ce070ba474712441752b28effbcaaa5b71c52664d95d5eab8e1817f78f460b5dea107f080d45ac993ec52b2a89332fd25a29db9ddd193cd5773cdfbb3166992e24e3f0434d6b899a236a2b0da7892ba8b6b13f189f8fbf9134c5394db3b67303654e1fa961a5e316471d5cf8f0d91fdcf9885f19b6d5fbb2a0dbfa49c8cf94c45f12788b164ba636a09716f8437b53a40293cfde9a650d05e694f36a0a8bfaf294ed27ac546322ddbd93a1168d0e309f0dc31d28a966d89afc84ca257c717c60b8f4f5a807173a6c83a574eb750ba32d1dbc1ce8ede98f2598de79f610d055efe227581767e834488d478047f2369333e8613eab7ed3d6319c97b22e6d5e241720b5de9d4becd618a126a099d99969d3ce64bd5515d9458c51cb92b0bf65757164b41571024586d32fafe1716bc877e5bb6a45cbd7f4216942de1379db910039554e86705f82be1c5bb2239af11c79ced550121872314738b936c5707e31a3e06efe9f8c977b91953ee1f4f2be53599783b7fdd722d5de882471e9edb54fcd79f81fe79cd575fc5d042d09ea9bbfada8ea95af3b15372dce306b14f1d8132fbe9cfeb650aa37b50f503c229bf83cf2dba57afce70d32e40c7323ab60067e99858467a80c59d940ecca616c4669848175f7089cf4ac871a32981ccb788c47f3cbdbbf401f0535f9cf3f74ea39eb283eb28ad399a8e10b4cc431917e87bbd5ef906054fd1678b86c7537c03032a58d452e0080532c615b19e4ac880874ec91c01e87f0699bb295d1019d4bcfb51550d2bfd80724c7b81b4b0b040a2fb2aef4042d294758b91eb8044b6d45cc57d8c8bb6d717eeeaa55b5758717cb7ad7db5188bcbf638c77b5f487f433422c864947fb336648b668ec9fa8a59a5fc4bbe3881d658d391e09ba7750b2dd25318800881de5c23b29cabc42f32b6cbaa2b48d1ad1e74b0dd445ee93a048aaa3889e50308cce2c6f280f76b059103bfa8113df9a9b1bdb9fb1a2ea908ae4523a771820370a7e42aabfc65173956984b69a3136b6fa76ac31905b3736e1b08704e91ec0bf95cbb51a42df10bee2061e3b240c56773d110946083a5c38acf051de5abad3ddd70376d57755be8effd50d0a5e0ffc36ef12e0bcb87eaa959b06c27487cb509457786ba8a623459837408ee86ac89933feeab5f019d0e1a25ac288bd40b4f264e875c4100221882b19228de66b67c26ae6e231b30c158911d90b35ae8a97feb03dbb2ce25afe117667158d8ef7a5cec39774b20b6593d439e2ba08d8d9cbd11cd50cad7c19910dce751c4b7db216d3cb466bb4b56c76dacd7e6e8e66c56ffdbe77efb95db49b59f9370b64f38a12317671f1690e91d3709bdd18e2e4909b22d081be75b669bab1c3bbcf24acab4ec43e7851ca7be5ef1ccc6947357e85038608e42855327909431b7fece016a59747cbc5c675c8ec3d754238e3544fbcf15959a998ab7103ce4aa3caa65b62eb85bb087507addf8e571ec69d4c2ddf89c9d5624c78cb775584d4aec59884967884404289d15f859a5df89998a755f364ee76a1532d4286b401b3e02837b6f4178de386edc239b0358e59c77f855b259138992aa7abae3242cc3db4fe80f3a1846ed30172b1ef169c9830d7d47e9a28f8c9bc8f0d55b29fc527440560bb489242db82dd8f9704db059231bee4363ba10457720e111db34965589d0d2447945cf5addd42a7b1d88c8c178fb7d06057ddda9ebbba805683045db414cd9fff782814a9087743e0ddc3d61c5367be471d37bc015c07081b40bc42af4da5884b33703553eea56332702df5fe815937c542412e17068372385d017afd2c47302ddb09d887e7dc56fe61ac1fd28f80ca74b4832431d6df14c750d853537590c1d4b67add9dca955024e502f4b8e8c269059f3689d23e941cecfd098dad1ca114d7ddf831100db42dc9234bcd903ccf54650ba851f2e236962d0818d4c98c386426519cfb78304789ee0a5dacf01a34ca29463d84a9b5716bcfa1aaefd3ffaa4a86a471f77254587441e5aa2ae89ef39f9103e3fba22dc0e20d9c12c48a94f011a35a3a209864dcea20c7a127df1c4fc5954d2558945c93c73534fe8294429b43623e2c7122360cde612502a3a521fb304698127c6fff25b39f6fb9559a9dc554a20921309d960ee1cd124c6fe4fc11b3efda2abdfc621f65f62a7916a8e7e41ca02ab39498d8ef903c128ca9da8473d7011201e1f92990733fbe2b7e4bc5f11086a923972ac76fe958f496e289d3084332199c95cc5377a484fb628877b2a5a5da565a91b6ec944c63e8ce15be62ace73292f6c3de22453478a520a30c3df4bfdfe8e813390be4729c0cd243ef311b6411b91abfca4c79170833619d2dbd231d531b0dd03015338fd75dcc8735083191460ef09fd729ea60c754fe87d179d75159761af642f84b263eb9bb65e1a890379a9ea64e3023f708cfd3f811cfc14fd8bda89bd45909a5a2d3d04d277c6a1b25a706e5804b26da4d4752a1bc89716a946c7c85da3e1cdc4bf5ed2375549346c68ff9cc1d0b97a95851614ad3234a7f24b37f299f10dc9a28ff1e8f506dad00af46d549409d7db032ebb7d5f54e26df8d9bc4b819e8ee00d8c950480cc6055f2089040a3bd92a4257d13a86948ca50319d3acedf0a4bef11845ce944ba9bf1e69e5cc46fbbaa2bad5a45291fea438fe944f48dcca90fc3d1ea1ed21c0162b2a3eb5bb920bfdd71eb84514789f80d5df8d50f7316082272790b237065c5771cc1df2f7fb98537ec52da37237cd4e01e38cb689dafda68dbebeb20831c3f8bf6e94bf4f3b9ccf464eda60022cd5ccc45c8d336f47a3c7887aeb85d89dc7b2440813cf5b6c57c42a5843804cbafbacabeb574e7e47393630652064663fef88bfbcae9d234c71fe9eb54693385bf4af61a563c08623b73f8a9bb23b0fa93f4480993ada3405fbb17b70b522a6001dd5f638d6a45e103ddb5ff8b907be8c83d41fe7f839cffb1ad59cabd48f88aa1fa1746295ecf7a3547586e50218dda83c711a0c34645b701b01364d60309f6ed01885bf8d80ec4576c057e81298eef50809144d8ff5512533008c4413418c7fdb7b68c22ca387d7ed7a5f099a3c9b4ab31cc43249863f787791bb7d4f158472b352338868a61e82e1f1122d493e715e4a9a67a715b0524fec7da80bd054d48c6890fb6807b677ba85085184ff6fea7a82d802c4dba499d3af94d1f6862ecae959e486a4dbc8655499bcb011df521642a6e0a60c79532867b9e11f82219c5f5c873e3d7bb8e1104de062848805fcb0d0f587391ac088779280b95b72a2333e00e353712e83352eedd51a2998e286cc0150944cec0690707c312d8e71ad88514c83086f4667442c4e847192fd7b7c66b4d0b0071b7ff9deb5941a7474f96a1ec68c6c3a88806fca6251dc0eb6b07a76046c8197fd461d2696ca8e9073954e095be81b3f3829bfe5e1a1dae6ad018840fce2438cc9bb10005f13510cc70406e9315f37aeb86c42898c47613ce6f354553f63db80dafddf11e34509331366c496b079d85f2c9c4e64aaf3799eb9204e806b5e8b282bb03128b384a1770e4be0eafa239f4383b1b486788f2748c7eaa557b4aab8cb8254710e5e1c34f921d9576a416ffd4bbcf8defeef5e7e43d6f7fac3ae3329c3729a1a01f72437feaa0eea919bbf5fa8468ab01b4ec58824589a931f247a017aff9946ed23b14c0ce450bf64ea4805a68b2f6a72fad855c41fc8b660707742c20c6a5b76d3792cdeaf0ee7c1500f6260a0fcb17020564741738843a4f3e559ca3f7466433b8af293d6b9fb81b39775c9aed3269c951e1ca03620413bf4fde2b425183bdc48a88a1c3dcc9604428ed3e2f17c2edea7dde2fc41cdc0547b9b689706789e87cfddbbe80b4fc88a6a833fb81403730b00691ee8ddf6621d8239b7b3df3c926dd26a8b5692e7099eb5b758532c151d7ff54eb293724b6537f78ba9f3382c333853bb14d3ba7082f2a2cb8d9f3490b8196fe475435bf466f97f482de24dd56cd5a8d0f830d0dfd9cc2eeaf6570c477ced4b3e6d471120e0d0efd403e69aab1273ab771b88927e08f79a3adc692699c3947b79ff9fac78c319884dca8d0a0ec2b4bd0a7392829052b660631b28bb46e84d28d44009b3110bba6704ad33517b052c573105d187bf80932c9b54c9d8b77b6929d364c6d4455873d568100ad85a84147664b93d9ad2fa5e98c33d47fbb7b8855b782a9d362aba1dabf0361dc8223bd65bc3007e493980ffd871d5f3c1b16fa25ca09f1f9a57e636750c35c24b9f7d00cad71452c7bed4e4685106e7e7edf8d36cc9c2b04466dc823c715ba3eb3ede61596db0610abf62b135932583baf84384807a57833d91fb40fa914ed9dd97da96bcbe8fc56279c11945ce5b8b37623cf7a0d94051c567a35c28c3a5b2cf4057993cd2104e95d8b63cf72f5d0623fe7bfa466392913d709b12e72144539d5edd50aa2617292c4a67f611f2c5a973952123600f8d5078b7bd154f85bf503467c3217d6c1bfb7a6b92867f616f235109fdb46068641e1dbe26c458617f27d946c640b4811bef0e8436bfdeb75f27a7645e70af275e34a200b5ae9f5c7289038aa03694ebd918db613b1c2c84ca1a650e83f18bd0bf6c0f4db97ff6068ac0aa2b63e8f939c89cb2994d642745058c5c875fe05a61a5d8777be0da296129d7fbdef8b7b192b00d4acc4b78d614ea6fd846276293c558b42f775c5aadd06c140a5e4d23636c05313c8aa4bf6f740238275188d117bb6e021ec848967973b1f6c0ac2b3116858e9f060e0f882981ceb374b0485a14415a6dab7b05b505f8973d388c4888d633edcb7107ee51c7a0a31b54f4cbdfc21a99ec15fcd24e7d9d76d5508f8e0f3b35bd41c2bd5420045fff9d20d31a98b7059288f6fa312085c7788ac9ea7737fada94bf0c12013ec3f5db4e59fdf913bcb87c6739f74aa112acbf107fbb1022785f1322b0cc877637900f1205873240b209b5d702aff381a2bdccf9a79383eee2464e69ad4d4283313d8a743204732c1a9b5d24705c76a7a88b13033b44c0af81284aed8f7240623fcafdbbb372e4808b1cfa17f9f64818d4e5c09465ae7d013b60d91c728ded0761e10ce1d3f4a49d86ae832e7c1008b8ddd1680812c5c1df01d41bc32b035f6e4fe2b10b49da7c848c7a6ac3ed0cf995ae315d88c071a478098d48ae3981da85e6f5cc3739616cde0342d89a0f75410b1584b252179f2d17badd4a93fd5297164642326ce54d45663fd0df5cb255422cfd51ad4b5d0c5cb839739652ce03161e4a22d9fdafbd157c0d3beb0ebdbc4ec3056c4699aeae6544badb32dd502df2d1fc3a555dd9cdf2d145982bd097e3983d07ddd1189e70d4b8c8ed930f15dcfa3f326348a7d8bf863e47443cdcd26ff0c8a27a3a836097087fbe00214bde40918add82ae29f0991e3c9ae5b3405f500436b27a2153c59e7b51545674c2533f1c39cd0de1c904378d56067adad4b0afd7450bead6842db1f5c68ff7ba1d36ec7cd9441f6afa14332456d853a780763c4e7f0c65e6580fb0bbd1971c8e13b2d830a9bc53b76306ca0f60acfed14cc935221fafaf93793cee5042abc20868dd9edd03512ef15c7f3c2928c45ce4838f9b6a7e62519c6f9e9379e075ad9ed07a34b44092a657b88a3b278d58e8d38cbbee8b418f4d5f2e662aec0c3c3b9951b17b5fdc4bcfc12f295d94f4714e9d1e6217ebcd1284f224733ce18c018f2b07aa612a581076d0d71b1dda09b0e34c62a0eba8a307a3348f2795a41be18638f55196520421ea6d780aab4a7bc2685e1d2de2f17a92423be77cf5174703d6a62b1fd5d24a76b32d510c35b43d00617d9445c86b7b7793b7ef80c9f43d21fe1c2bef10e97db90dda8bf01effa461a0eb2de6d425579c7140749449a37e8d514393b0e65166729c4dd12413f90fee37f2947812b97e3392dfe897c39473661052427dafa23dfa49a7764170bfd3d54fc0c9aa521bff4869969bcdae91bfc7d199be35f03fe73311b565c2dfd2815ef8ba2cdd69adaed7d641775981802a4d91abde09d12f024a232a8b7ada68942ec943581d843ff479752ac567916b5c703fffb1f9c44bb2fd0565d2bc2e3917ffd3bcfbcce1969712a2b9ea305068687e58b50acf58b8b5970f40aab1c9707599501c9806cf85bead54cc497f9c6649d71ff43d1be9f243631af80bb73bf7bf505501ae64637ea0ae0428d1c993949a5d75ae7d8b8bfc1a702283f910c48c8f6099f3cb8e03c0814ed6acb800405d6e179a6c431eee353287d4f81669e3d43a9fb71e2e757a763ec3f05d5e9587a6690e1c3eef66c89cdea2ffa91e56e42d8b68003cf1dbde98d1a3d37a329cea6d7acc1ba7bbe8b5f4dab92872967892db95ca570ed06e751db10b6a9bd09a323cfe1765d80cec14003a8ff6dbb3bcfc45c08f596ddf93c0ad776b4b58844921cebca8ec29e6e733ea4526cbcf6cd916327ca7b1823e8ac7bfeda2922e6e7fceaa989dabfb76977b1aa29c686ae01266b230e7aa74bdf44e577a02492c8f2217269e0400daf42f2afff4c0080d88c3b9c876b3a9b59a13348ad8f46b92abc0fdd4c30f932b04eec766d36af2360b1db5936ef1a1db0c90e7d822500a9159c53d97000ff8457277665818d4cd4e130f7354cc5523b80e29798c4cd68c395f3315a23f36a942097afbf64ef2709d79497e1420079f0d0c4c8b43532ffb6c9431934735e71c4e01a457d7cbe1b13bf99f6e3239bf142682012c0af51421f07b073a2f89d6b596defb88946da2ab9870f4dac033f690babccafbcd576eeca92635579ab1b31dee3dc762d5a47e2f5b928acbbf16f0555f16e02c8aabddb31f8404db74370b47f7c8df4c422de43563060160a575ba0f830c7599e3426b3aa1f1f5a9b54e423666b390b7ac37f773ece49788135cfb63ec4636c7934305c960938e89bb930af2f6425086da101d03a8035c5c9648f41c30ddc7bb031436d8645dc6bfabc18eb87a8dfea77e277f0bf7e074957931ef0dd1c7bb3cb925d768b25016683a010383127ef3cbcedb1a4a2acae3ab552cac31c5ba3303baf9706fee36e3b17c58d1db87f5066dfef9a0658fab399f7d74edb0f187e90e8cc1ab723deec1618e6e8584da44653a3f3ba2c06d85992f0730c6388bb3eaefa6a879f20d31229921ecd02f15ec95f580e748d53e045227f485346dcbc5b503f5f31683b2b0b05976f0f5faab62ac206627e3eb5702c07d80313374aac7ad1c8280690f5ab42db511e489148a8414b52040ab4eadcc3c717f0bfa231089392c3f470450ad21a9527de82c08aba9aaebba4594cf5a94025616b95e10f996d809a3a77e9a337832f343efa0f5aa91cb929ed3e027009a5c52285b00e87607b70000ef6ef947b3adaeddcde60cca102d9b7db4afc8be35e042127bbad7dda89d77e2b8c12bbd34086b944b108264b23bfbcb0f95d456f62cfb4f4b5e13548f3282c6580021d6a7833a258b9059bfc2c62e459e1e84739b32c22b59463138284b68d67d8c238f2c0efbc7c500631a90c1432c118eded600992438eb6d1dff585d547e9a9669bede808653e415606fdddaea74448a657f65d30ba771b7504c543eea3f1f7aeac624e819b1acaee6ca0388bf2b5bf9cc563bb9647396c775eda88fddebf42e6aad6ac69f67829463375144ac2ab2f764fb2c0d1dadaa3fc5d89f16622ac7fc650496643bd87d2dd900f54beafe6138913b94eb0bb0e4c4522b71f5df7a8601dcf672c4edcac4b2b15d722bd8a928451ffae404951beee3c586dc6d08f13631f057a122e96eb46890305f9f756a5cd9523c0ac4a58b244e5c7adf4d33c295c655abaea25e7b8e9e5622ee2c444da3d28cbc2ea128462ed688aa8c08cec2e8136c7a26b930b3f9bb3ccfd5c95acc2eac5d12a753f0aa95432194bdf0679ad5124da0ef24693520e40b7db204c95072160b3389994263cea49368b59b4534e4f0d22ee2af1c88c98a1d22671a6962c314a82d20c8f1c6148690601e4f2f3ec3acd57f923b4117e1419f511a36e28de3742a1f74dc0649e33c239c7086c2c8ab0ef8a4b816221b7998e7d15a7e9bac04839d68a32dab2ad51f2034eb85a8f4b0d9ca83f2ce911b8b8f08386794e997bcedeb1a2626812721c0699af856da1baf6046c689469f70cb7873dcd9cc96a4f8c2d8d2e892c8f2c0db21e3b82cb8bc686a98d12565b692a238e5d5816b8ea9f7f44c9c03b59f9e0972a4f669dba496ee796960133e58ebb54f606a2bd5dc4b37bb658ffd6acadd1f3969a4a41d01a286043094b62f79f05e6f4628f5a126179bee75922eceda8c32a785f21596fdfc699f60e05160127a974ed649118878b4ce920fe3b5b02043ef267d1ae4a68a9a5082a769279319244b5dc9d289f12006a1395f4a8693075a50b374a94f203d1c4fec8a62f1b2938785ad9894f6a08d9db499832a37d8281732d07e8b00f7424a74422d75d71023c79a04841e410cffd44eb88cd75270f1b208bb2ee8f106ef4d72adefceb7ff3abeae057b8ef86a2a8c9788b3450610693c1ceeadaba03b92465e1350725c0b67c7c4976da2cabce2f712ce9ab474e3074a7b23a00df94a3f2a7e03a7212ca49089d11ee33760a989f2b139e126f3852fe21383ad32d8069b2b6f528958a9e9ec33a17e959a4eb0d7e7c28bf03f736471d989ad41422890ad9cb6aac6eecfff64393902567feaacecc003f1114d263e49714a17e02f6c9cbe8f302a21dfbc6e0e93eb25bae07b30637a561c46c92d62980fe799ec9a6b3ceac0573bc504b001da000bf9b19b832eb037b7fca5e803a9491adf8ef215980d2ef8f3ebcd10e83aca4ed894d4a5770662439c87ec1343a898f904cf598c4a5c7c3816128ef4db6d27becaab7b667bbaa55f690812794bf3a29da30cbb0eb79ea99819a0009737b9de15da1971d0956793a75121e821f28379ba7b28041f7ffbbbd9f141964e7cf2c2f9e8ac1cb39d8274b088cd3f0fa355482225371cc08e7f76970e4f479ebc52e48f065cb6314aff361eb70981bfc75c8778645ddc91838f5bc14c911480003ef5e2469ecbfc621de5686225ce37132cca45e3d60ff0d615996a6d8bb632a2a05729b93cba7061c23b37dd0061a64a3f820b4889f1592c4aa935d8d3c334a27daa79c195d45c31e42fa4af3915dd39f58edab305cadcc47f385071e619f4c9f5b628dda5e7cbc1f95bd536baa3a61730db96e9f5c07623374d46a6348dc4322403fd1f687b35fd298af610dbb9302c0efbe484ca4180f449cee42c9ede706d2d3862bad8249da537d9783f8696f440cba7caccaa217a234d78301ed5ee4454f32cb0c727803c25380b5be31600a21648e3101bf9f04bdd64c18b28cf85f0f352bb36b59be13a592d3eafaad5b83491006e87ea888e173f7423dee42eab53f01bda051733fce42fbc8a97a5fc2a5354f4f90aa4067464d36d5305b139ac76a5b2b0ec84d1f1b1b4bbfbe7316d803b8da936b88a067047f93086f1b7dcdcaf89ed7e7d81b25bc386c17429ba39545cbb00ae603dfe8561cfa12b77982d1845a3d0c976aecf6d5b52d848d7b78ec62b53b037d5a20eebef3380c0bb7f033a8aa9a322d21416fdf47fac3f7329bd2c78018c8a2eaf116df062e7fc2d8cd14c0423747a986e983b581b031b37ce9a673c5f55f459f06a2df31f610b528aafed468c64c253d7acc8c5277286246c426937a48db324a40a313f035aeb2e98679adbc63fc8d24501565ab161b6759dcbb8a1c99e1921d3d37167fe529ee4db530ac120bb90234f7f446464ebca4f997e2f36317107dfd5753cf356cf6b24e95a80ff1b5ad8cee76cc5b909c6240757aacfc281cefbe2cac3119a9234bae2698b8f53e071011735e7e65d6fb5ca0ceff822d8abd75eff0fdd4b7b100ba533e07d3745f5e8613f43102662b79e823007f4e3ce9f065b1b36823f34e3a262fc0ae17a3bf597facdd49258f3cfdde047fc44f42568e4afc8fa3684070113628232e5d0ac155c4b3143741af2304285c27da432fae18e5b3073c64a0f3c42b50794e26d79654a65d8959c196836b5f6ded4ffc6fdc6c73a693eb90ce0e328d3c83e4df1a310bd7c994d2b1b70ec27654513c78a5cd77f26d4bfa7bb1c6449f30194335d536e097d34bd215cdf8209b1d48f40de07cfc279518b38886e31083e521a20d113738012ac6501c7608b081683e019ec2476226e500f7ed2dc33c1e4463bc930f7262b21e4fe295ab7d03ba5a23832ab1ba808f8224049381993d5bf3e70d9da4c52e3885b35e509eb3b6954f18b7a0843992122cade9564cad94ad4e0792b476d5c8fe6885d96a774474695e6b9809c7cfb11f4e284538c977308d0859c5e56e4d80d066a378f0f1c0398dd091acf463fec6bf8bf0c93e36a9cfec9a0e1807f2189ca2ab0cf6f024c3a6e3fc4c421d8317f90c8ea08c03e9f000401cc5443821ae836a1aa46882f574baf2a69b92129ae5f522620cc5a1a5ef2f0846394296ac4bb9212b1dd70b5a06a3c0b4c0228e51bf8ce5e05413d02785d91c064e418defc2702745d2098a00a53cc23c8b90a15c8871ec81d9153926a3858eb87afdc8c5e7aef07ee7928a90f8e392a2cbe69274f0f19ce155fc0ae9c77623f8385c2154b38cfaad1984e915e45ecba18d50cc70392518817ac61f6438394e3b7c231991e87ff9f032e6073403b6afcbe5ac607cedc12f03452417e17060b7dc7b18efba65dd04cd537b00a37c8cef17251e80238464402ffab0378080351ae02f758fee5fb349922e1647848a5d4d225af784fb3566814c2b1e4fe164acbb1ec85565a36b59330dda8175fef48bd174903f7f7cbfa3a4710808bbb7c3e98c7dc9741db615a82b78c428bcb206a70223c73b2f94821ee60be5105184c9c09e26b4f28cf296e9d19ecdcbf454d0fd3a91001096df22556f440a9d1b9071be3a9183fe47723ad890f72d0673a46ff49a1827a6cb2868b1043ab0f5c56c28979346a001fa84955cd00c13d2a0f7b993b1a6fccb89edfe054bd05d6f73901d19b8801302961380ab3ebf25cae36b7ff2b4ad888946a4ca6ba8b0ab04458e85bddc4a996c8daa78461386733567e3e37f5f86e16c32fe2ae3e0bbbbab2650837b0a450924af7f173e3d35c45dfd481af6301da2a050615c2a31b7ccec2a7cd649c35c37d5d4d2f23382ac97a23d4f3499aae997b2d69416e754bd5bae962b2831877e3474be0fcedccdc2bb74d2ae920d21ca15378bca5cc63158521b95e1652cc493aa418ea79cfb95b4497bbdfa7732bf8fc2a232b31197bff7ae36ab9267a91917c32fdac09fb22b88af8d5178229aeefbf96335e66eac41fe5b2d3a9197e5aa9b44bfa1fea890c45c59e3d6db092bcd32f9138bbacb9d86cb0a2b563f74e50c1314f15da879f11f9e57fa2c23b58e780c8b0f0241c5c7402d90be6f2e8330153f358ecbc6eb4a723b5b24934d49e91a3c3f11e4d816e353fa06b971682ab93681ceba44dd65c7b2ad87efdf34f5fe6a665a8b8bc0ef501037996f3658d90da9fea87e5dea4ad2c01797a501e3a717620f84827862bcbf1dae422c46a410b892056178b6a93c8e8828f41192331a2e916137a4cb9b79c8a135165640a77656f1b6fbe0fc2d13e4f0767f106e946ca09a8756719b82600d159349a3bed7c8da92e4c9fa8d92a71932ff5ac4020e52196600adf7625bfbb11df18d818834507cb5eb6c74b16c6edb645c860ba3b1538e13e5aef08f46484da61e012d349656e91fda5eb3d944727daeba63d7dccdafb3b0261c05e162f7f52acc866fac2be326ff0221d8f9a9fa27cdffc94ef27982414ed6edc26563999d993e9664b9962e6d092e0a6d1036ecf0336c49c2bdbe7eff568465651f6d7a4b6d1311ea3f5c4ed607c423b04749f35895a8ca795eb80aec5de6ddaedf45072a774e8b7703d8461ab22b84a63fca3191b7fc8d97e3b7a1fd86c82786c7c71272de66ce5db4a6476b886c75f4817267ffca75b7ffcb89bda431fb7468982b74fc95c1563c451c0a961d9ab118ee980731300b14f4836e072b73292fc1a28aa8dbb7020392d29a8ca0defe51adaada576501451f80616e90d50d97ac618f74a216f20ec3f4036bc968e8deec07947eb9e129747b32327768a6ca6eaf642b7bfde56aacdbe1d807219596eba7ffda68d18f920c9f9a227dd93ff9fe9ad5aab8c9e630c1aea6a5b0577262809e8055c4ccf8916c981b46b9d9f522b35906947f3fdf69d4ceb3562b16b0d29c3dbfdda75d2fb53d087904de28f05a1fe27c73c4214a2d5f21d4046090ee7644eef23dd659143bc5138364c19fc7c1946778630cfe568abf7d3c995042a158fe206df77a5c0f40fb46a95b1d21146a7b3b1b092c6756549cb1b0fa4e3a2f33c8eeed0547b6acff06100ba2d64c8e36647c9e66d2054b1140ef50a24086904de74baf048228a7f6f96683a7924863a9d3c92134891ceb29c9f709bcf8b11c19862b3380c7d80acd9bf7dfeaf9b1dad06c85c064a72255a119b47ae59c5b37c666abc86676806cff4e461bf8b77b33b03f308018eac195912e8dd34a0ac40587168521d0603d3f14b076610bccfb05acf1677dd9a073b2a008ae86252f3a23210ce83b682eabcbe72d20c3ca410354993e5085f5dc1492639b07ed3f3ba75b8ea5ca08667f32d92cd163c5a5d373fda8b535864fc8405edac9f70a83002a6c65c7432f34265f6bdfc56da967f3c12ee78f80919b0d7192841209ccc4eebef63e17cd2e56f812b20b3b4267000c61caf3721278fac43fc7c2af2f70bb1b0a744600caa0364ebd20f06597d6d107707baf4954042489ca76cbef667cec81f9830617dd00b61177f0152b4f3a6b66f1c31d57f99020114ea667fe1133e79e92505d851394398d1ed86974a23ec24901aa6d186c1fb4d44d1f2f09cd3594e09a32aa7f489ad23e02a5996b0fb53fcd74d37dd4fa9e4128fb070a5641d813691c20552342469dea3f8090edcae9d9f96f2f4a310f286ac2c36980b6e130c7865848239740f831007e4a511ad3b2269b41f64c1fc47888cf5b0c020de3875ebd88060005829cebaacdcdc94557e004651832c939e7081c53ceba3576b771e2206923164373be585a709a1ba14372a0aca97195840d1c0299151e4ac6dfa9e32625d2a5253fd24135b9de3125afcdf2bd2c3592be393fc0a578c355208739569058a4399daeb1ed75073b6c1003264adb6ee23910fd9e4b38b9e2f9fa03e5b4fab4f38be61498c8cdf2075f1fe641fcd59bbb957021ebd15edbcdda3f0098a186d8612a9f015253f39f45e04c64f0d99d5ed582cc0dc0f71dc711ca4a7a0724efceba984f506cbd9501dfac8936b73f91f02fad1e1531a371c7175d10e0223bbec4c5ab9750aa9c398a98148b383311ddc793a125a69a5f3e13985b569dc23d8648cf626249646806c34904d0edfc8b2566799667b2ed4326440700c5ec4604610d0fd6251826265dfe1fbbe7bca6f554c6c3101e61516b4e54bb1794fe42184b5080894c8c1b01caa3ff1c972da49f14ef089a0c0ed328d26288602e978d3fd234737ccf1f8d58a685fd108b3af5ad0ad900b68717f1e0aa0879be1cf8185c2d00de764003b3eb72aba4a80a9e06d8346de074598e245470c52cdf35f9ed1e44fdf98f82395198d94c06535d5804f27b7c3f64f0bbb8f11406af50e0ff8ad809fee6bde86e4a3a31ad460edf9f7aaf60aac45a213c8251b8195fb6a9e554a53c00dc5f9eb636588efac5a43b30972fb5f500736d00e5729149994c14381b06f85f6f3f3765fa0a6b33f8f222f1425a0cce5fcb39a1af006391a0a28f8194df7ddd8710229e51762cb973ba5162eaa1d90cb66a88f055d4ab598ed4a806809f300f5c436acbf34ede838f64508b4a1412f1c1321e567299b3da689d866b4e88490a36829c74af3cc016d238fc01fc957304d960b8a84daf8ef6275543d075a7eeae1e246c27b061259b48c4da6c132c3c0956b84dd4aa437bb9e1d8e1ee641704a4bf131892c8e0bf8484822d20b834d567882c663e45c219d96c18921c776511aa36a4005e91a7bb5b1b35b974549c0c5906111166ecc518ccbc236d5575e786abff0df60f858e52e1f71ea68e2121e52a45130411896c02f9ad641c404d0ce1c871f3d3f0b81caf9003a20e87a2bb0ad3e0aea652beb11bf8f60e0a971cd69caa3993080a56bb5ae6988404e0bc9cf067fb774ef106531d627ca90209e9234a2a26c41b7988209275fbd84160c6fe4a8e9eb9909b13bb5a812972e346e75bd0fa529348b2ae88d2dc60e1371e132f11b8fa9f8ad50380f74861c7f95cbedbeaa6db9ba9dea56572c8ef5bbdf25acc50d8f5e49630125b286d512205b447fcc72ad9a4e712fde97bcbe865a92dcec9cfe36756ae266992105e55d6413cd19c2d787e9e0d0e6a5106cc9704bb44d29e11ddd5c39b4372f7b9de4251f6d689e7859e8609b1c39a5b9954b30578890e7f2d2150ae8372681f66af17e7fbe7049b5bfb0956d2f2b2ce1d2df1d936ee4b673cf6ab8a685a4a9410babaf9a85164bc3caef00be97d02ba36b26bd64546a8c90ade501a5789dae9b85cb2e19721787b54db5340a4d77db23f46e62f8236fcf39124f31110afbeff62604786dc79d4619e8a84ade4ea6002f36ace5905469655c038457b6296970f926153177bd74cff432e9a29a2ff3599529dcc7a6449fab51c613dd1d760e4b27ec8505e6589205e0dcd2b8f6002447008b53c207e36e473c2b3263dc8885442a42edebb44b4d8f83c0cbc608b340a1cb929bf520b7c9355bb35e3bfe508a713166cf212c1170a6bb3ef576bf41e88b0a613af7f49cb80da79d34346eb84908871b2da96d849f3780829086cccfdf583fffe2ebbe1f3096180545a98bc14f294cd25f615e0d318eda730b55d9b94c87e5aaed3c436f50bf7178ab205236b47ac07a19f544041b857faf0c5091411605f3581b3db55cf3667b922dbcee3b7a85e203b0bd2cffaa79ebcac9ad3e77590bd030d8c9028515d6fb18e186efe5a51fd2fd452c06066dbe8d94fc6000233c4cf456cfe15e8b13d02f2db379237ec6514487cd7aca8be71657d2cb0039d776b1466b7751028ed5782590d72d22462b5e88a4964ba0e9335052b2b624a45a3d2a846cae3f46fd579c48e12e2863d87cb21909af5947b688820af74e1002f789a3febd1b09477a3ddf6d29e1b66e2dc92f70b7d854f4538ea88001bf4afcda1c82a10cf87dae29954b17a9c5455a932911876ec4d422e7550bb4affa5e9d8c42a385f72d6dec31416cbd1bddd077ff07befd7341d52814ecdcf1df78767d14697d1a20e5a4fa2ff0e69293ca110ebcf8cd3ee80fa49ba50ceb2edb0c56f0bcbaab16e3390ed24ad19c46c1ab6c3f534b74c30541e589eb4c9bf203624671e938b67e1f072609a804e7fd62202720bf60c1fda321f36c5735e390bd2529a97231fcef3773c734440d60a8e49dc48a7097e10c7799f0d64c545253d6fa952d3ea48ae1b7aca3185a5a5ed6c90ff86a1d1e481d791d21b6ddaa300ee595ef8049c9b8af2840f8b6093f17685372c716df931c825d3197b33f0d0611bac69228a0f6888c58693e9db11db7a8b4b5a69c60027975a6b89090833da2c76d2126636cba56bbc4c29c4fcc5e3dba7bcf60f56263e095256ad6df07ae7394b1087d28587c2432c9273857496d2bd27717c3424d8a533c3446232b7fc2299040bb3a9af447104c61f92b56d75f1ecdbfe2c8d52e1a01a55cd3c575f80c225714ce7fd9ce808bba962ed73895d720b6e384a23df31ad431017efcf3f0d8fcaa323682bbc6f05b29c6cdfb27b7da1e5ede1a6b34a688050c02220ad03fe66a03cefb764473b74e8230dee7c6c35eb23a7a013b3aa9534fa0f9a7041f060ff5c46e809a69535c00d4bbc55b69276939e5cfb8b469ab09630307920dc4757adc6d38e207bc56d371731038eb98ea37a08b0be23a0dd4e8c458bf4b7756fc26a8ada61d9b71d677eb26c9887ff2fdf053f1ef25ddb68930f5097c0087e88415716b1591f6c8fcf682d752d4cf1ebbe0a825fc90d978c509b7bd81565429b1e22a54c4f9e88e07fddcbe549573962d817f0ab7096f0d45b13dcc0d2bc557324da0441990e45b32bf10260624e10682b093a47cc303a997f481ac2f6de6c478626932f2fac8b4eb72d9d7b2b404d3373f1ae56995f9779a6d488490a3978ac1700afacbe9d9bbcd849c7eafea1e85984d7a21459d0a44a2642eef613c610ef120cec488a78a695ee80e57ec44a45de91497c1712e5006f7a01cb33771918a15a99ca3e2186c984884dad73dd8b0354efcfb5cbf934c7570af8b0919f9d1421aacc185e47073539dc44fb0de64378da77099fe8bd2466ac964384f0bcd10e17127c24a875327a65ef2e5d1388ab8b496ad6ef6b2fedaab55a76cf2148d5750f2667dabb96a100f88fcf3df7166f48c53c200de01d00bb4b8f4615345e004562aec45a2796ef1afc4c066cec2cd27edbeb12da31d624fc55a55abefca7b76587fb77c2b196964a37e0d26f168b0ff91e5695ad4963f5844f54c55ae940bf992c5fce68814db0285d995e4b62ab1dcaf89660aa476652854ccb750b3508d282965a8eaa11bafd39c2ca25a3e449d6ec86612230ea36eb8da72b6da89aaf3b5daa52e9eaa75229cca405648479dfd328c40b82500944ec409d401cbe0fb04f8b672cc76211b0e75e6b8dc79a15445fb8c850058f453144c4f47f1d2ecb3e9a3faec622a3268807b34bc6650687c09fce4f6ea2aad7d476d8ecf303c998e3973b2ae3ee0560372f79c11b907db68b84c02a51428764b5be5606123f363d60b7354fb5e8215f79aa79e2de7f0e9cf2b1049c3d2874aaf41e78ca1ea6a1d18a39882143d744d1c683b8f5f76cfe99dd97ee21789155e48e77e915bacca1805ecb89fe4cf7c82265565201fc89da7c99595ccb82742bb9a52c8be44aac8eeeffc1a6d17fd20970a0892532f73950f178cc103381f53a27d4f7987ce94e7efa0c34ec897b3bbf58286f93fafbbfdfef0fe074b99eed1619eef5c7292977be631c994df0fa808d01ab851e59e2d69bb881e87aa82cb3cbbc610ee4c4915e104aa817aaff87440d953fe12a0f7a95f05c8fdea1381654ffb4aa0da2b3e1d40c73e39babc9ff7badaf390daa32d34eef2c0e6783fc2eb0b8b62c4694c98db0fee7c8759f078719807cdd9235f0e180030d5cd4694277a7238ff334edbbe9d113791fb382c8167a58906a2e5742c9a05ce16727a9da5b66980b852e2d6304e72388e3886dee30ef730898fcea1739a8458297983872da627e888d35fccb01d59c0bb1c34b748f835d4d6558506b055f9c34fcb6ad5c13a52082d3a437abaae8ac0bc8d7fd33ac7d6599de59ab6733a69711692404052ce25f6f1b732bd377173e2dcc6b804111cae29195d22d3a430ebcf5a6d8791e195cad9ed635d5bdec9d21793e16d13c897864eb534d6cfcc5016f380b1b0f5e44fa77fda7ca1169b1eed2f8583c93dd92cb5fc301323e434a466d6844652c030de4c386bcdb6581e348be2c433907e9cfd30face2f4156d6dc13c61b940ba83aa2e80df38a1df6f5ec0f7667af203cf08279068459011c262c1c0d97a288dd7381596e9dc565c0c5283072bd8a47cb32134390c831560400fac76c8aa348920b0c49120f087e84bff526d77a950be670a8a9456d422b8ed78ec6fb6cc560b271c402d1dc7c2168de763b5164b9cdc49ebdba17388caf9da2a4298be35d5df701627214dcde76eaa0529114d434854c347179de265a93501390ad8212944919df7aba5896ab6bd35e87c18f177f08798de3faa72548f04748dc44465e6bf43051e920a8fac7f82be0b71a85505a8a9749524db1bf5290cb1e98d0ba55d09747df36f3bef6a4f95e99744ea55afbe782488a436e6941c7b88b7220521136b546435dabdcb2013b8443ae96135e3dc2009c2a3cdf3c1d79b3fb0b40b72caa73d34a86fa6f7a2d61957cf55d7094ea879e86896671e6446d1476551398c54b90c00848210b206d3c9ac50d019e5fd1db24de8dbd5135f6866ad8d2248d5e113d321d50609da0a46351480b312f35bbd72ebad34f4565353b96d4abbd38462b593ae62e8b354dda31072615312b6af2550e8b0e2d379c853d656abb20c7123494ad23da3bfc046791b8da863e358387c1d124065944ddb8ab410d6e206baaf0d287cfe0661101741cd6c1765807fa418f0324b022a63c561c1fbcc2e348a82c8e80a6453d55359189d225d11021720b6516ad3ccf4b0b44b8073e8e492b6273d61322601541bc362ade6d589d5212eba1e16475fff45327b24ab90844e1894fb3f079fda008d33080c164ac1f76a74999ab7ec823296379d60f5d2f6294def5c3d048b995fda17f753c4d091df52ff80c84c0c88a060f73078b693182d18f54e57dc765290b8c256151d2be2904270612caa82c231107c1e8b3d0117baced37a3341c055140d1af0730221f67ec101fd11058620084617edc6897f1bc47b39108eb7680f51a4a9efdb752aea8ad259d1704b7d135a6a11314f17405dd6a71da208ac82d7b56f860296c340a7601a2217363b81a1f1d163f974d5c3104c9a4de88faf58ccc67f528272a5b2a36ad2b457ce32766419423982d2e30b48d2c2260d549d5e5c878d38e2a0ced0216aa24cdf0a0d0def22cda6ba2705f0f17c8df89f7a905fda0494242734f2592782d34ecb88cc3a80b55e1540eed71038916ff4926e6c06862b46dd19c379a040449b623dbeeab32a67d43e1e004811b5bb3a624a7528e1d28aaa1c3a7933c8d5677a6662c397ee7ecd927de5fce4131a38426e30180950d183aa3fafc9e1bb56051c94b4f7ba0bce0a5473d485cb452c70e2427c5e196677a4aa377f42554d796fe3cd9245510c4d740859b7b9ea9b81e2bda7cc4cd80bc31aa0ee0d515c07beb4051415b5a721c857dc80fe8da2ea99e1ac9010ecbd558a0d2fbee2da2000e9e80586802eeb104629004b8168ec094e78177e376f003ee8b1e908113b2ac7800de74cd1270742410b10c2197c419d6ea9a4226b6868a529744b78b57e62c46ced74cb8a128e228284462824120ef748d43921309c0d4bb96afeda75a2317a6d55b14925085005cfa0539f08fdffa8e62e3206b209d33426acda06b8148dc72b33ad55590e4566f2f5b33884dd1a1db692f264495031910034e210c5b23b7b28589073a8fa2e7cab6c8f916300193b7be2bbf9fd6d4884d87d5c54f1be68343a25487795cd0e63a911cd964acc00688bccc536a1fd98cc6a783205d6a70c2368cf999a5409a9e054250bf8faceadbfdb11aae5a76df4f54d229b15946cea1595003c5db0fc5fe125aa4d434485c5966c0d99a580a438843109331da4efc1e67fab2026671e9a45f1829028243e9583156133166a675b78224426c5537bbc634b8fe1d51ab76fd068af18db27a87ee2b49b8b508d3efeeccbbd5afb5bc53a2d575794fd38ed2185f70d2e011a9785580da5d755b32b3429be0f4a9eb9fd15cc309dcfca03d9e30001314004cb59fdd02472600272a93d552de80e67f424bab966183e4b63933ee10dec562f8e966810544f3cb50a44fb1261409ce8617564ac428be8a6baebc07de1fa09fb89e3fbf9bef100041d2ff37d7bc0852e04ce6b7f012323d627dc34dafc9e29aba742193fa8f71c76fc5376f02120c3df104e045fc57d25b32e145e8273e1d1e56bb2643cbfdf1b6e3310e5816b1952d6b69c074365705eb552954325958971fa8aded25b1e80089eff516c48168fd00f424fab37382c357b7456573279b7f4b02b66ff85e48b1b080046aa9f15cdcc77de45cf81f51709b5451dac309793d59baf88099caac2837ae03ef7e760887332c527f150bbf6ef76e1f2956b3a25f870d5b51a897aaf32802df73093cfeb50ab1a0020ab7efb8c61892b3f4ab62455eb8bc2164ef0b242bc985c345c32f8c1cfaf2591be6b75fc05b33d9f7f3569b41d12825db385ea156794beecae646f4fb465602567446dfdb3a47145fc97bc8a3f51b03d79776c4e944809b46f628f5423815c938d6320b7d4b83b425f40aeb166021b67e9bc874c30e2e61d07d6be4174cbe7dea34dbefb8a8c7ab63f3be7380dc1fa779554b69a9808e56985e7cb678e7733fdb2dd5fd2640438539643f051111ed962a05cf210898e052341239b89ef5a4d1e2ec71c9e0478adbf5eb67bde3423dbe0ecdf38e17eb75f56a967c87e04c7d8be77bf9b5f7baa0e7afd05cbdfb82de7ed5e6cbde2310593fc70d386e98bdc303ff0560572c7eb9ab17c775500da6d28aeb7c97cb3b5da40fc48bae8c5ea4e7add86cf81d02673a8b034d6b956422240ed633f01c1ed2c77e1b99b294b35d264be4ef779fc363ea0c3ff36377c1b94b699959f1aef498abb0d922e175fba110487bcd6954905f4a1afd65760f96f2fc871aa89267220145a94696e290eb4498561037d454922bc10974b0bea354325d89ecb75b5891305c388a5b4dfe8c3c1b3dcfbef97bdb4ba57b04d67ee69e78a01ef23a27a4f98ea4a10427140af43c5096189c67a95dc0076a8bd27df7afeaa51e71efac096bbc4425e1540bd5fa40bd9192315cfcb9fed4730c63fcf76fbf29903e01cd94c5cd3f2652a432a8b271bc712f5631d6df5e7300e337a037cd4c490e70f0ec5ba856105e50c36e1e349994b6d140cdcb1cb2a1005e64098ae01e4909708a3a3bc61accebf12132acb1f04f9daa81f5c98bd14da58163926bd6443adff3d4dd48d8b23284aa3c7c119fb08e40b2c92176ae58e9ce4ef3b9ec83c6ab16645455649ff197ecbec717948d8a75fe6753c12b225c82b7b05abb8a748f838734ed0494bf92335b0195e7efdab31037907f09a906974fdecbba7f6f22405a3d42cb0512f587ff8f73aaad164dba8dff0a123e17440f2e9a890dee7d12ed3bde58280f02ec0b7ee0aa80ca5dab64a7044cebf8d0c442c882682cd9fb8922028cf515797175aaa1f238079ca4f471fa286a5aab316bad2183ab49af8378a65f5ee2738ae3c00528c7fb9cd969363960856807766632eefcffad78c01b84cf007218ab75c5b8abcf3d99293b7e473174a899f31621db1ac9ada686135dd10089b6e8238f642111aed9b99fb882013bc31fa019744e630dd0f558ac072f24bb5452c1c26011a3a296c56d26768340cdaf0d704af315db1ea617238a670237d0130a7fc2dbd9c59d0038ff02385f2fe5523379a8dcb3a1d81a01815360ab704be69849e6b368f3f12475838da5006e6eb0356e776fcfb767d6c825e0342b4f1ddc1a062819143b3ae804e414e037e22fc05dab58cb8503820279e05c06bb7c7f7fdd1ae036676adc0efa2453851870b41a75219d4eac3cc8ec3a33050f51475f04d5c0c5c89caeb1f57c631348e1ca546b9bae6269b54a1eab526eb492cdc84bc1169c87a84edb10aadf1064bb665bcc9a13bf85b5035c4e66e4fe866a6fb773009895f73c748d6cbe4f5c005aa0bf19943c1ef2417ba317453045f6b6a7b2fd495c012324d81fbd2192c6cd5cd05f2bda69030e93b599b1763e43a1725438e369f0cece8b13e1ef333be0fd935ee59b20c2cfe50aa4bbe6062c06c621a398ab1ceb812a51b9a610c5f7b244a2e64ea2dcdec66502f28305c7a4d9642e2f434a5f7c9ae1e06d6335041dfb7f53b5c1bc789cae2822da161355dee88ea0d69cfd9ab16dfda4b006a340bab65c5c0b768fed8252a26a7b2488e7a08199f2c11b114f11593c24f673cc41b73bce5a57c03a50054da30f9c0b1dee7a353b39679a52445888a9acdeb510c79deedea56f5296cc99d1a6ac95cbb812533a55b5ecd37c55d64050220bd7b9d81aae2a3b936892937e34a4a72d6a8964b0b3ad15a884d772b4e2c0cf531cd92da200512815ecb3b66d37cd5716553e8a07a09f94810bdbc196a79cf2360b9ceba5c0ecca2c975ce79b6896957b39ec84327dfe4dab8dabc868949d2bfd75dfb0492d3562f65942943a5c41c78f8193aa90b4d3a3474b9dd98a24647ea18df8e8c0b31b9c12bb9cc34e316b6bb78bb8c7fb0367379a7e14243e7df635a499ab084e3c90d611320c3e95083a57d49400f844a50e63ff47ef2b55f67b826cf10ad16f517f0a8e7c166f9df1851cb076b6e15e85d05fa212d2b29395727cc58d504806a07a063c1bf529a5184f9edd0e94510e7eafc48893ba36af8a335cfda43aeb011db0182f2f42ddfc4694abf8b870ebf855a19a65ecdbf0835a0f8cb575703e7edda2d6dd5dc0b95e0c7f70ebfe0c8265cf22b6261abae58dd1d0351c95bf1f24a2633f08af5c60ae080daf9082282c4038e906eec51a4647542f573950e410763d50ae1c220a4e8430d2a063fa61378cc31f999ed6876c651a1b81dec0ff7c3b2018bca57307d9e3bd40338df7030a921558579c7044336db518d6ba55363521d662f8e3e72c2a84ca3a07be610acf18b90dc42cc0c7244d46e701476b7044f0840d7f9c0b382d16c871862ca0b61059d4ed60df8695f7bbbdb32313c1267d8bc734aa87b2d988359441f50e8ff3473ed28a874dd6943221b4c354cfe46e6c02059d32459afc6a032e462183d7b965bf41d7e32cc2d5f89e654e70ff2bd6bac02e1d64271663980f775624870063f8fe0c25ac5aa6048818f2a57ec5568889cd9eabced71df8384da28db710b22b475f79010d9ad6f6dc47aebe3fd07731e0d8c0cdcae507080034c23d0de0526f55392f86af8ddc916b631b067420fd04f4873573f5b5041db5ec6be92866789df1121bee7a1b4015ca89767b4484730e0dedb83d0f0308504c0c1b52c6236224708c38451c0b505b6957a38d77c12e6fa2938433aecddc96be57e43a02daa105585c304cca9a0e89fc52a7cef87746d77c7c91b88b44ae5debd3ea53fad06ea25d9f8c06ed44bc9846172e104b6cf86ef1af74e000317c74643df452989e2146d617c2a607416ffe318f173d599efbf63ede4f5ad226bbadc9bda59449ca2e0574056405d676248a947c89a348c909e0cf51e379603434c322e4e6a0d65a63541bedeedcd6da8ba30a4d8fd9197dfca18d48499e0da84f7ab394d24c672225793cc0372225eff59bbfc17ff3fdcdbd1fdedcdce0d47ef5087586a4685239395da63e71ecbcb9b3d65a416bc50fb41f05ab95d53aa3c2b1964829a536bb60624e881dc5f9aa35c7a34aeda7e778e4098298ebd133cb2de53210c2c439e7acd6556badb5d65aab4cf4197bd9983eb1cccb1056030e49653a24d5df6c48eade585bdb662d8e785b6248cad6a689392199521d5b29dd01ea31656deb8da5551f88399844d363d8b2fdae07464393687a7943efbd977c2bab20284ed2158aaf1196715ee39c1326bee81c61b1968c07abf8be711e0f6cf7de9bedc5ba601261d52611d6e7e8c6f5cccaabcfd16fdbe61954dee7e8afb5666b9b97f3fb9dcfe665c37af5d0469ca44c9c6409da8c23dee4e4885085a6eb88b3713ab4d2568383521c3ae7acda1a066ab9f521c529ce9badc31287de7b7359234b1e0f6a3cd36d0a714e3085382dce6050a9e37fd65cd0fb2d095fbf0db58a60af9d62eb1184dc0ffcbeeffb1400d6e8672fb54a4469a085afb5d5b66abd5340dbfab0ebba6e7517f5ae5e454a4317767db885e9b4ddfec02f965f24ad011bdbdeef49a41fa5d47bd54235d54133f08303fe8115c0a2a2a2ca3845454595694559691fe14e12ca4495214277eeadf703c1efd6a87bebfd40f0bb350acd8703de347186896a6d25633fe7cc2985600933205022892b24ca1c41e603c1ef3219114a991ed4b80f57af2008822b1250abb8763f0b7c758aab13b63deb479b84362c02064259a63f1b0177835b81fb16bc5594d2dab0d6cef79d3542ec2e8c6b507a2d91703a088dfb9c3683829962d65c33ccc4605e3065802008d64bfe3d6ac77e549d46cbb9920c003db4b636e93dca473590d6b155b317b06105ca10ce9a1b63fee559f8ca6587c95e1b748d4edbbd00ed59eb684597ab5bd7deae8d6b7312d96b6bdbcf5e5bbb6bc8623109f4b5b76bb5f6dadad9de1a099f8eb02f09c279cbe0ad1ce8f8a8ed315d5d81d05aa9f48670068573f67c794b849a8b65ffa0c37282f9e905983344a04552464473c607b4a8bde8a71b00a97163eb4e5b0dfaa12903fbf40fac0036be9644a0333030b3ac6a56b5b25b4a4b1fd01918d081a952db92e812066813d5e9182196c122e01736bee0872346e78e70053fe7d4972e7ebad09c81448bda5e8c2ba045ed2538c9f0cc7cd01f5c7b84d4521483d080075440672cc0d6ca79860193a87e3089da877ac8d4fb8a91fa827ac26fcd19b456cf0d03d17a7aa460d85a6b2310d2b6b65b5ff0ce1946b4a833490663a081119d218059d45edade8249d4b702abde626f27c1649c0aa13bb4ab4e9deeb4d8b7cf9c39d0db1f5073600d8316ea29057a69646b618c73ae6130d44311997e13bc5f695865ea93860732751a4464eadf47c6feda708a39774216451abdd728da3a8a3478993a8d2132751a6332751a4264ea34aa32751a4164ea34c464ea3480c8d46984c9d46980c9d475445acb6b0b03c93b228d2f9947dce1d919a9eeb68b8932997a08130ab2858697dc25635e1522822936022fcd8046c68552310918d101ba304eecd63c51029a1a3389d2835dbecf5e202ed01dbaf7cb9dbcbf20f8ebf6de1870f8bb811e7fef0666f8bb81357fdd084998bf7e24430d7f5d83eb1e346ef66408f3b737c30c7f2d2561a0f2d51b631d200573c0d9d268c6d9e6308c714660300107df60edec312243ce08efdb6947a07cfb8d8b2962878f998df1d6e70b4dbc759b970d8b95bc30468699687141cb951774df1ecb3b5a8fe854e4db6d25c0a1c6750fae23dd0e2f8e0e09041c8debbf3e4294bf3e47a92a25c05c25b67c39b1fe4e7aa441147f9d83c6cd24fe3a06b7bb7ba6224b29de10889db642f951c50481e178e9224609c4b21e301018ba00716686250a1b5a8d7b53a27403d19b82e46d7ef6a60c8992529ab2245535a35d2f88c3d8cf9c9d28666a3f7d8e79ea235227a79e02fdf4283a3c754ba3c4f0d443f065a34621f2439dbe06e0f5553d145f36bedc57752bf4b3c70353cf4fb73c64d9509d9fce63e6a95b1bb3c70395b7df0cc71247e5e1c9cd4fd72b8af1676f8733df19087d7b7893e2676f07269bde0e5b9eee30c4531d3af054e6f3b3b743936aa7ed9bb10ce13ba789a7eec3f3b3075505f6d369d553ef79d9b8e1030a8d0e942638549e7a0a9c9f3d1d7878cad383f2e3860f1da078dae33323e2070a86a7febae123e7fcece950e6a987a37dd1711c47d7884730366fd89fcf388ae35875c632c737f53a80d7b7bbcaf49c544565451d99599a70b8ba8a529a543724f5d083175aaf09199eeab3b73be167af09d6cf5acb80beeb633fb1a06083550f44ce502768e04981929274058b59425543d6f9d95bd2a425c41216f0921cf4b3a7840462950cf4b3a72408122889c244e49b9f3d254b5c49e4d9cf9e9215d628f9f14ab2066422bfd0804e64b18c5824b77adf07722b4c4b4bc65bc235563a90bf9fbda7a82f6fef5a22833f7b4f50b79d9d13e727dd97b42f2adb7256b1464c9144158455cb824a71048c8c62a9362488d19992c81b1e4205038a6174bb193141f99027363f4a4780863cbd7c7a58fd0c7121ecf1e233a4070e0f548f0ecb66e78ae78675627e746218dd6e463d763b3a293ab40ea058d2d119f9c9e960cd8ea6eb41c3f99123e44ccecd0956388d6f5958ccc48c71bea154454688d4d37023db513513b2c24decc6093a1b2127e4255990343035317c0bc2041ec58c71d6e52bf0e5c4130cdfc0dc8862c638df00a266c458c2abfac2417678b9842c09c9371cc406b115c3e87633eae08923e1f4721f0771e131c68f31c6d8c7530bcd1d94d40d1f54ae978db6f58230c5c00ea2b86a3d11fb6e2425e11b5e62bc318c6e372313a44ca002f1cd3b8c8e1533c6b90427f8460951f254bec1030a07d90d2156476437761ce9012122def821b580a7a55e120f18f560c1af75dd5a5bbfee5e937f7ef2960479118a2ccbfaace4b089170e19e8cb2b4ab689724dc9b989d844def9c953a2429883921d2e28791cc1ab4b96192162e559971b728e0aa1c877872e362cc9e1065c21c8e24fde5311d187dcfac97b0ae2e389076825db8840f4c012bc243c2432ce4f5e922bbcfcfde42591a2b81d3fe62571f218638cf14c6aa1b98475b98976c49f6cbb169ab90e4600d542f3fb475ef2e5ed9b64fb939764861b08b6be6b1be8276f09939610a1d1cde636f48af151f5260ab2d9b0d26aa3b914eca80a514f21a3ba1f6da10af393f717788aa7ee8282db8caf4d22d75319155f208d066bb9d36820ece64c2ba5d16c3777b7d9da5669ceee1336be6c324c88308c6558777777777777777750db7ac4f3ce7e89b586d535bbbbb62c8d2c4dc6d3bbc1eeaf2fcd6db6bbbb3dd36e35572b1b675a77777786d92aedb63407eaeeee9a0842dad5de0fc431dcca2d17cc158a7d460d89349126d1ac86507c7d904ba14585ccbcc6aeea2a47eab6b590a9bbc67c61b9d52291aa50db1c13e79481cb4945c64ff02dfe46db9135f6610ef1d3cb69c44fbf60e690a6507fb8369b21df70ae85dfb5a27f5593f6586b4874ca983119582d521592d5a5d9af3665ea15c9366ece6eacb5dd32d50d8ecdd3e88673739b6dcda1591789942d4dc768dee6ed568590da66916ed591b20c992c96652392234d1913e8c9529aa9a594d24cedf72bfe7e68454a8a1fdefb421f822225fd432c66ebba601291f755d44291923de5ac6d570c9d05ccb79626df3e3061b9faf679af5880422e678eafa56275fa2200900a1e30a740f224c28893ec2e26d792d2b7b2beb6d43cd661a650e96bb8fbcaa46d1549dbea91f0aa48872c834809ea7242e4ecd3591c917b42fa0ac1862c07aba4808efadfc748fa5d5f21d8907906f463b6a44f6b2fac57d3cbe985e4f5f462223e59894f67d4585d8d640895052be75a2d34d3369b349985985c82ba10aa713d2193b6f1ea6152193af90f9942a798874f1f2a854b2d2f435d48246c2a419d1a213e7167ed98c73ce631e6590693c160b51cf73f9a332697e293c8a471d6c3abd04cdbc298f8148b8954e253e75e5ec45d94c6cd33f6c797a293af23932f452928d47c296ef92a7a11ab449e68f5d5631f99c7d107d03f66303dd7c233be0286ec3c1bd8f8741b9f6edd362e7b756b26933872041d35703ec90d66cec71ccea71fd5993dd792e0fca8e2c81a6063761b8e3abe1c5de6991c4bfb9fbdc49f3d7b063ff76452c74fd2ba8c844008223ccce7cfd706384686003e2ccf5cab305de35a4dada756cb29f4b275c4e5650b498bc9d7d6aee5a425e5567c6adcf412f2247baed36d6adcd74eb7e90a4097c3cf756174bca5af4954899695b188fca8c9918e22e08800657a589e806d275027954bb149d7b87e01e020229980d5617d29d6ca1cf833ac0475df373aa8eb1c9dc1aa0949e376b30704d4d77be487225f824e5fc127305bbe049de07c094281522038e69c737efa9a5e03891091a04e6caa39d009c9576ffaea3a4e72d9f3d5cb1c9f935e73bcd2bc3ac56a9c7b05f2ea34ab713f5ebd935aa9713d5e79bc7a33356e27e6d59b48e374bc3addd2391a268697944781e7ecae0a55bf79499dc0f09246f909bca4535f718a82bca6f0ea2074ae54e96b1691bf70af1ed4b8216fe1c285bcda5878750e1ab7c255d8ccace7706e75351702401743f714d4ecee3655da04b592066377abd95d9117fca256e24c542bb3fb6db25592273bccf17f244f7692c4559887ad9cc46480487c85cdb4adba0f897b488c85d5ec90388b6c25b5adba0ed952c24a78093761a8b6e128d8495caa39ccd442d5c36c99a272426392874890480b126c2241272112dcd948d0090b128402a35055f04815aa8e239baa677df5f24a61b9191a990cf2e6b720e70b91f46d247d1624ed27c90944d2ff21e7fbcce721fb77c87e1d923e8d9c643e87fc1e87bc21c7243d927e46ce342c1c91f436e4fc41f739525caa215575eaf0aae6660d2a2aaa3b15e56b799bcadb7491601c396bc86aa02e46f68f244faedd8cdc467a908d4bf60775e0718211555aaec0d4385a12c413322cf124cd13ba269a8f6ce3447e91a08e0489804da0938e767d98c8f767ef8712be04753f52d02f4010e6409135a8a073412d749d46432197415f547cc9edf4e8ba06d76fd78d9c0069d77e3db4cfce66cf44ccdb018b6e0ad4142f1f6899098b28c2828fa4225ca430f103cbc81528ae7ccc2e3ff4b8695e35232c6a3cf06181e2f4191dd1d0c31712282182343cd4101a0225c40e33484a88a24679b312665a9952448b0d780408f63028feec597902064b058348491d49c32589a91af3871ca2f8b0634d93273d882bb8f05ae2d3b3620348feec5901f2ae9f3d2b3bbeb409b190a7db9f3da52a7c934d229e6023bebd7149bb60399282ee0715a472a807f8c1041e5f94c8400d3cd4a8b5d65a6b1555f8da4bf2d57eadb5d61747cc29297176915451f3b357e5ea4b0b9e7afed9ab12c44fed9e46a79e9efa8cf63cb54568f20472e41bdb5aabb5723ae8f495c16cb72f1b606daffdc2790d751bf54c9d46ef913b676cc6b84d3b679dd55a6bededa8081b8cf0180365c2161d393c19b3f32244921f86dc6a2e28e866adb554903833d4d336da8b310da839182ef40881d3087ce460a4c62d811a32495c492a12ddd4b65a6bad75278b99ac22a893d695a15745d0a92d45902173a608ab22ecee73ddd1b2beb43b4aaf8b1372f532e72fedeeea607abaa443e94b12969e3a095924a8795a2b6937f9cd8179f0f36c403f2bc98e9b5e4a2fa594a99b485b60244f0f73d01d21432dfd76e11a1c92c25c595ae99a978d6b77d7ee3a479d78494a4a2a618a0766eadb46f9b654df36ccb7adfa6e4bc65a7a33c0a1240f01babf5dcd5922f8db6580f396483711f9ce5ea46a4ec70a345451c18524a06009c283258630e1091046b820a646bbb5becba5e3b0ecae9dda6d6df47dfbf6f2dd4c39a758d4cc9676caa4291132bc0e33d57cd3a928dffdedecaefda3fabe90eedad6242c7d9903ef6a3735552eb9a9dd52b5db5dbb85b221c3d30e800f80bd222531b5f9435778ed87e34b0cafb5b5a99a7006955949a69ea3b8a632ee2402408d6129b8137c30c01b2e9a2c74ad179368120d892e5e2d461630153928569391363e039ab9efd65a6bfd7e707c727a683c3a3a3b349e9c1e1c9f9b9f19908dcb48586da678c94420aa0857b458601b28f4b5b82eec5025ea17b4d65aebac7efbf28624c4d1f8275936d9fab036a5b3d60a8ef78f6a25c372b6e35ec687d5d6fb81b8755d62e812eb6cbd7a84e598cc667673717262349d1d9e1e9f1f20276b41e2244b152bc4495a1636a1162e86885e14dd60505023fd36963abeb18e5edbb405afb724f7c5fd883e7008c42e6ecb2514a3b4c86d513a896e93f01a558cb020584e9163b5988c94d9b8cd0c6876f3732f606f707cee179340cea1f1d0747674767478683c3d393d3e383e3f373f403320b7715246d662b5143945108cc2502b858185c8c216da845c422d5a2d5c601743e010d147f4e2be28b245b73ae975ba434351d778badb2b5d018691d34892bbdeec08d6021932bd2fee47f4814320766147b0d8b65c4219470e6dffd5dc59ac50a957182be86b5431c2826039458ed562325266e33633a0d9cd8f1dc1dee0f8641c1927479c78fa9771e41c1a0f4d676747678787c6d393d3e383e3f373f3033403721b2765642d564b915304c182548c22560163850e997a7bb88285c8c216da845c422d5a2d5c601743e010d147f4e2be28b245b77a8341291567e360c0287a4134e4a285908dc50a1541296eb7da8df41bd08f4f0fcf8e0eed76bbc1c69718de8c462b2023363279faf7b317a504f3400357b6a05916c5594feb8c16a65655de410324cb074a90254bcb842c5063b2a080041509442f5442802950554143b52b43d5e4054b168f1cf49387a50a0a962bad17f28a9f3c2c475c67aea87149c9e44fde95204427328b9fbc2bbb325786e018ac60655919f3f572ce4f9e952ae20f2b4b422ad9f69367c5041aa6906832a5e588a91b76534550c83d4fb480440a55b21891673f79559ee0355590b4b864a234f8862c3b421c93656042299907cae542a6fde4513922ee4065478b4aee4102dc917db4109902d59b128308c314145a56534a0079525756b9e7274f6acb97b717d564a09f3ca91a6e3e707149c946525e4d401859c17a6d8a456b45225bbf70e9c008be66516c2209550a1f48b3c3892174fc504186a40c482932a5438d0b82b98806c6db568c586541972c2f5fbc10d1010e74e91949e51e1ad438da8586096ea053af0b138c825e17a7a44c3d8f692103c9486426b2052fe4125be0c274a73ce7a4654dcf66a6ef7cc954a6bf9ecc39670b79ba4f933975aae69cd375d04c0b58c893a7ca9c73ce3a7be224cae43c664c2e29d653c799aaca67a2c440e6a9d3b2b219de53dff992a98479eaaf275e9efa96a73e9ea17aea3743f0326ccbd4538ff2d4799ad0a9b28242c509941f3a6898f098c0a044767aea415050cf2943e4a9df7480e9e9b74602219db60deedbb634470b5cb06e3f795a64906ac1884af99015d27800a907f18ae1c34ecc161e5b7adfeeb62d4a7cfb8dcbd4b7b711a62cbced82f536084dc26fadb5d6d22c638286baa976df5425f80e962fa8444c1b4a6ac9cc9008001000020317000020100e07444239924369a8b87c14001358923e6e663212cb62498aa3280662188641008300000031c6006b24c2290e00ceb1a64643d2bd03f93e699dd9585685ff77ccb37eb5a54372fe8a35fce99dbbdf3cd1acba9dad74479a9f6235f86bd740a4fc1c6bfcd1f3ee771de6992bc66b392ab2e417d7f42c142d825764cb2facccd3a8219d50b2f45b44ce4fd68fab1d1e9232ffae964783eda15aa524cdbfab42fa4b12deea98875ec88cc8cd605fa2b8a022d3a33936677a20b8009ac033fc193732b2252a41f0c623a0eaf1010f2b5e72eaab5c5203fc94eb1fcced971588faa70b01504d80f359337d418927a6f10c525687986f363414184f9c96986a52ab512a5444ea203dc513f842a228a5748430fea7156e85c2db855a5278a703d4ef6ba1e50a27441fd1b217313c104e0636855dc8e376d27a2e63570957fb46796062b94afa5f20f8de4fbf4be65436751575f5529d389a251cbd424f327fa8b1b4dbda9b332f36bfc213859a32a620e8fa01be2259e84f8d3090b46b1f5b0a978b58018f36a1246f03439063bac97392ec3ca35cc7c19fbbac08d4889ee905ec02dfed9067382bc291da8a98895482c86aa456c6c182ff21c8eb270d33272b02509fab0578f413e375c0e97f0b3dd29357b68c414495e8fff5e6a57d7373d73fcb5fb2b8115b7a13a6f22fef1fd8497430af5ba3bccec7fcc002fcaf1bb074968b6ec3ec426f42c3bdc39ebf77cc61d0be9aa48fa1f4073a024d2d570d26cc2b2212f50c7c2259b235e8defe71baaa14467666df97a294bc4594aba07d4dc48b3327a6c243bca38db5982e5cab8744f45cd2ef5e1cedb92bda6b8b36b5884cc9c5301b2204c63aea100efd556d832935c33cea39d099f548468fb3a9851f7081982c69f3b6b26c6e3d133236b5588087ebbef6bce2c5e565091856de6cc07b8ad1beffecfdda459fe24ad88408d391b9248e7170e0f51cf05e6b2ffbcfd6afea5cd856df99d1dca819560a50866f4f80452aae20ab4cfd422efa90623967c3a28f6b10c42bc2f8486fca0e81afdefd4c4c39d179e2ee15da0b0895a93041bb57a42d9a120001bb4000d65ca63890faf275e5c3789939a1f51491c02d70da903fec1b7421f8a0adef7b7b905feed24ba136c144478ddebe3322564b4eb564aab4acb48702e8a5a7c8168ae9e8220b8fcd91ae04c5fa4d50db3bd2acab8fc605bdc03498c067b97ef924dc2df2bbda6436307c9b20c6aff09cc6201fc9e74fe60c5406faf49f6efa2ed318c15c9c7ef64c0b9b93459b93c2e6a4b8b8aab8b8dda2d6314759594ecbcf457d3f27bf366f2c49b73550a050e42849bea9aa9955fbec4d548eb173404d2a651ae1acf4d6783143d890a4f43f8a105fe6be83de521f51d996be57eab30e876877e5b4b8b82d5a9c14374e8a37b7c5c5ed82cdc98b54a784d6e1654b2a4dc65b9803c9598b7c460e2542783553484e3d4170855b66b114a16ed3e96e6e8b8ba38b9b9be2e6a46871aab8382ddadc14764ea118f688c6b2b0b8c272ade937bedcde91885086ced88be8b886a2201fa292be12add943d7bf8f685f93dbd92e364528f7a49dc5ede2cd4d717353b0b8555cdc1636570a3b70ff8b993ad41461441e219be892b33d8f2e4634f838211ad43590e399d3f53f2c5a052e6292b0cecbb35ce4823883d18b301a8af7a20872d1e9c6d8c6b02263963a76e047a3e13f1e77e5f5e1f7fee32b84e83c63c303a00f0f71ad228b50c6917fef762d11f8a7ec3ff67c02bb2f8b55404a502dd42e4ef03df5a710025e3c0e09caa5c49b36f0db898f81501474f714ae42e3a71d601669fdcb3dc222f26dc74134fd7cbab27782de1dab40c78730ac35e022df6634e8dee26af0ee8abc4dc5361dab32b205d670c897e05c828bb0edff377b011b0f3437567f0c7294ddc9ff34a8d41f557854f516543140721251dd137c1f7154025f835c9498fc75026fb94f250b083a77c9772bedce9a2763ba320c9461ed0c00effc67fd63187d3c6b11ff2dac587e6204d4f7bc017297fa53b50c010ad4e25a038bfb0fb6f1a531858993a49c61ca2edc17d64a5dc1fbeb413391c5222d5d65454d749e432656364a60de70a4564f43117b4844b4d4eafc6ade58bc59b51011f0a79909e2dd618c9c310d2893657c45372280fc0451c58ada0c90f200491c085bb319576e0f9da85feb057f8037d2ab3bf92cf30b9a79901065abbf69da99578f23e88cb80106aec385c68010e00518dc632e30136d4c974053e8cf0f468089b46ef1f7966bd9bb282f130c746604200fc8f08c7987182cb30bb91125c00d3278c71830cd109f7f53012326e3933d715f9a6e2ba9973910f260b104f818ee1a069607c090822892444d9478d425869a09760e89a6d5f697e8df9128252b8365ed7ae03ac82fa4670f209fe23b4f2486990aa5e4908b4048309ee9a76412c2d4e2f287cc86e93a8bd634de5cd65847f135c39af9d9662c37239f17a2754bb89fcc3fcf8e5a16150a3af7e40127e05c15ce9008bf99e20271611685b0e0c010de224992c69bef581b199c9f0149e91138496a9bec88a451269b5fc007a603ba1a9f6e509e800a36c2797ddb22774ec48a5d219407fb389feb4ca568e2cff93715a1961a4d861e3510e14806de86917d3004435e4d7667959ea0a42afbea66ed786cdc8516c231e1f072bccd4d717f53f45326f035ca2d44b9b489d219cf997fce531f5e8c9eaf9fae15de4769cc3f0fbe2f9b5f5c70d7fd1e3afc4610c6e06a212b877e72ef9c4a3f209909b3ecee72725da9bd4708c2ebc8e1d7453cf736aff86ad405be513f5f95bc8f52cc7e1fbc2f7bcb478ae867f4d337e1d733d5ecd649fcc356628b1d6d89f2a5300ce68993ebfbce9981fb43bacf0daaf4d73a9062fb5adac5a39691f3baf375d2cb73cdfce785f792597a581979477ffa22bfdfb2c9099968460d8e7439a03dc84dd82319b13c878942b39eee1e8603765b38023f6213054a4a28cbd149cc5eada1a9b5b2b828aeebd2e86190083d20aec9aa791bc93b1330775d47d6c0437ab8bc91abb0ed86e408398424b3554a5c325c28e88a0f387e26604aff856fb2c29116112aada2e49a17a9c7f78c5658f29bdd389072745dac0c0b8488e77266450e1d71aabc03b8cf4e7666f70976125d5adc8156b43d6594958525145d4e792c839f4f88d4c9662dd76d5a74214725882f7a82d53cad0adc53e2e43c234316b14a333895c5670ad752919a0b57abd6749fc4470d8a5c041d8fbd273f6c05607fc341dba324260580488595a719044d8154584ccdc6e02867f92f58251cae5ed9ff9b9cc336412f6acb95c5301d3f6147038105073f0c7915671b40b3764708b8d698667c783cc0c0824328ef811b716717fb8e608c3e5e0839576fb064a4cc27d301590dea3cb841cac362357844dbbc06c78db306f6c2ce58ae44e322524de428b63835a8871cb9aa1db472ca1d00bc0320bc288a4e7de5fa511f1e4ee7eb776bf824a6a325fe9ee6ebb26db67819a753acdb137338882b76281cb825710cd4eb72044392ec28405f32fccefae3a4d9d9c048447f9d373d9f0eceb64174fb9afd574402ec5946d177367b86801366c99e41a645dcd0e0d17ae3692134717f7cc13daced63a81a200e99d4220809207b02b985d1ecc6567caef6a88c768bc76dfe518c052bd29e721c3ee44deb37ec216611d818c09421a534a6082b33e6577b7f629dae699ef1f0965ffa64e86d38865112e2ad1b16f3b565d9f816437e5d269bb030884caa50708c14092409f444a9077c5743b040e343614e46ec06e8217a2c25be29a3ad8f986fbf65b34f0437f82d85d2203ab36f3918999505ea88f45042a8fab14485552d2955be891c2cec14c8cc58628d61642a753654508e6fb2b5f732c36309d526154e1c07b009afc195953739bb7c6632a179a44939bebc5c9babd4bd728b5006f488bd921d644edf4b6613ae9d2145431191b0902a5ee7d909cd648c571252a372a8c3912f680e05251b439cb7e2f64fbeef252458c891f4a31c6e8643add2704d9da89d934d6a8a40ee65921a9968474e35ffa7cd2b2d98d3f7a7a9c00cb16c4e63f60cd7e609041bf65675f19e952f6c0ca5c4e048e6a37956b66c703d814ffef6b3356ae410e61d9fefd545b2ac7c536d8ff24a981102bc2c469f3fec8b3984e239780f37cecd159b9bfb93fd7df04fdc2f6d5cc23928d98f244187090849b16ad7840d582e4cef17f1a5deba969b5daf855daf9908929040662ff50d1be1ac0dd4829a32924dc47d5845d8457c854da90daa4e346a909046dc58e0d133f75546d1114c729a6be4265cc81b51531eb258f935c0ad1d8cc3f7033c7af1c133590108388db7e63a551722592e285e49486737123032cba66015a03d118cd49e4bf429329bd280b9635d9be0a3a2022a152f67331d64cb4c208914c9a2718289737aa830be3a1716c45db82cd1acc1a51422f315c4025520e9224aaffa49035ba1c01454649dc93e9c1a782d7d796f722692b6c5a3319af81046fe2d077542986f6eb14ad466c3703438d5de1a58ffe644cd31889d1ac63b8285f14c24cd216ed598fdd703fe43b236a4da76736f9bd436f0a474c133c929336d1e75b3c23214670bd4c4b058259a383e5f5f95212d5f33cc7d7367e085e329e1686abf13dc31ccd5a3642df26a546588ff6acd0276ddb75c9043638f531c560cbf71345462cf538752290d89395048b9e1da3b1af14c2b769579bba62ae99140f26a933a7c39ccc8df4727df3a4c9f9f3248d262ad35cf4501362900e5213975f22b594d05e4b747edbfac26b7902720dd3b8a8435db3d97075c8977338d94eed57d4174f6642c43a26f8fa0a968a9a91da52eb050862de8b44c51e7840b619a94d2f79668e78a2ca19e6130bf82609d0404763a1fdc2a7c8679b3153430dac3231e74dafd7a70204381324d71a504f99c06a3c7bb19205cd9218ee23dcb490f88509a497a815381ccc4cbc588a591e8c1d2f1569e88cfdc73481212edaa9b9806b3e2a58beead9013c67ef8d5ee505e9ce9ee6bd8c88a358a555d44419183ad368e864a3bfa38a2c9e2aa4e313258cbdd5f651a71b399718e451f38efca8669fc8fa29ac2c0bb7a229e9782a3a4a6cf984472ffb466f61478c84905bd2ba971cb9216983ccd404f5c964efb43e84b3bbb512884645673ac045a410527c34253137bc84daf4a5488999c0f08df9ab1e8d9f017f1888feb9656551b8048ef82d69092e582f48d01860a7b2d16cf12200f2b0b486b855b9127871f07c95531c47165b475e4d622e6d7f52e1815168730391d54a993aa6bf679ecdfaaf85069ce6fd0d14a792a9265dd90457c221781c65e59cd6a3c4110108f5e563c58c2f9f0355a57267a47040c07251545c0896780eb064c18d70c1aca7760862243567e05132c99f826ddcdc5a8d72513f45b321290038c3f6b25bc493e75a434101d577201645aa08514f3670121f9c4d678816bc70fc7c201408346416199455f865a2cc90424ec2fb136b1e4af9a8998787490c46f36bcc296ffcaf8f30fd4aa32c12c418d723ed504957dfa27f51403fae2e5f5d4050a785a6a254a51f6f9b0e3d04749842b36232132e86fb28cb53281d5cbc4272ff6be9da9666662d36662b3cec4e6cfc4e6a1894da389cda5894d4e937670c56348a7b5869a0b33ef67c0783281081f1aa983b91cb9c78f77eb76a132704d263f677415103e1236f903ed37a136457b1fd74802b4227a014678b945cbce83a7550e5074c3c5b2afc17e9ee705edbfdfae3d529cedbdec9cb25142a1ef9f097bb946f18dd2a5bbb34dd2030b2e7848894ce1dc502f430c8bfa376314bd95c9d1a42fdfc7e5e342f400dfd78461eab806bc4146a494acfe8b02e75501d3af423c12453d1b5d6684e48bc483c27bd5ab2ad2bf46b10cbd0566d51b96f5143b153739d79051b85f0ff6aba210d85b34b87942294b720d839e8f62ddf9e9e304923499b1ba6a328b90a0f53fa1d173f674d7c7848a8b2ce9185550c70af80a2c082f9114d5808483d460273728583ccdc8d53c438440af3a7427d9f2dd73f286f1245d2a86b333e4c40ae44d71081639eb0541a5c4662165cbd49961c461adc5057f4dff24c14ed88f26537377aea6c14b7debdaab3dd86150a0819de07fa951dfbd5cf23a6bd4a1b2cd475dd155ce53bbbc04aa4780a3052572b1e83d06ce30151f8eb00c3bcda7efc702d23c8d7e673896eb8172580b145bbc2a64ba81a27740656293e735f9c84cb27b6c45a1d7f97d3c7ac5c26b2229f4e2115e4a9c389ef1cb1e0142face31e04247ea3c026741051008aa29c4fe79224c39d0b57a29706eadb567e5d090f1ee66d0cdb44bbe91a8cb20509783f68c60add1fbb833f91907038e56177a799fa2f0fd67228cb913b621e0eb5625199580afb26d110156070a7a41c8ba6934f75a8b5d5a9d28fc45fd9eb9bbef9dd3d9f7028e784c1619d06765df17b0841fafd072f5239c926bf975d252398a24596f7f153d4cd4562150345f4ff8a86978a1d86c858f31fb66c96f679c83502f9f35597e2fc13eae07762c82b00d8db293776b09ab4006734906539dce0003ec5ae5f41f754ca2d4a45e4b478e5d0f85593f314d943097a31a58e21c55874ba4b377cfab3a3f4f39c04e0d04d3748220780c0b362f8685587bb3530326e304b0a7104e4ea6da40c84400df65f5ddfc835a37421dc31cf72f01cf318ffcce182791adeb1ad78facaa7f6b0a7b6fef9c0361a312cc441539ccb706de8d3d540002977074a57d8a89d5caa3dcc2822e22ac9d7fdfd835fdf7205a4f008f2e947776cf6f76f739e11c57c305b87a30d29f7f0eb3ad9a9822a9cd4e9e8f519cbd678289ae9530251311ac888f5587ae675896a85bdd3ae0f492f696c6a6ecea5ddeaf590ae310e654edf51ead58f7431ff6102c0bc02506539e300356ddda24bc8b7b52eb3fc2dab0f97033bcb08b355f36d4bcf0785ed6ea79abc478ad02ff52621746820ae05b489a600a1c9dd4e083a977077a0f5c64144d8f834dfa7b956547bc19610f9bb7c77fe644648a205abc3f654c851f0453ac689c20f6f9035178c8fd800628552d5eee7da174cf77424befb31826087a057805e436066a9584c2509388e621fc7a03158375d6d643fedd8528541bdbe1d758c5d59f1a5dfc00aacdb1412aa6b4b3dad45d2a5c1a42106145a2786c30d2f7855f3977b1b87971382f765d488df742da3ebb24807fed4261e7511e87dfbd1442619f76cdd8b1938c629c5f01530227b355b23efed1424bb37384e13f18687cdc9359cfa9e1b576b5ce9baf00db8264f4ce34f77476e7a915baf55ac11a8f15b52d1db179b9727d7a4b6437d2226be1f76116a6660c25b3b256c3f617238460c63e903db910c0dbb36b9a8ac130c7906544454c1c7419746e1882415447252ce76cfb2f6b145cc25e9327b5f96125b3ff43c3fbe9f72ed1c62e73e8e3c3c75e58a48e0ccb082eac2a7cb7da2fdf6f82b26225f9bf00e0bb89fa07e697580308359e64a45ffeea5b1bff0b8c8190ceb395230807a562a040eb595d7d0f8a0d917b74d16f5783b44b5d636267d59c4a453d0995b460669bf2f90b724eacae306c3983b450073ca6818bbae50daef4f02e3e626e1b676c4f5fdbe090270a2e785c6b337ac21975c065b6e8f4dd7d7fc6c3a310fd3901a8bf6ad1ba05bca926de4e53c20256f38426aeb38b3fd47008ffd6e4e60284dfbf2afa204d1beff3547cecb1b5e6f92895c13df9d7f94c4208bd22135838912f859135d0973059900b6bd79b631802800d74e08bf88faac8562dfa4a20dada62adc6bb0238623ed88dc8c6eded03d5a49475c67fe836e0a942e607077adabdcd15074bd3deab38a9666e9364d9653ef0837eeea02db6b78ff4bd4a653a6a4f2b54df01fb6cb82cecb676cc689efc3ed3bd6faf44f95c4aef0255cffd585f0c8bdf8f3f5ee6a96b9d61dee7d5b7fe6e89a47eb1d326676387fea9ae2a2a0e31201ef35cd4d87761a57775d0c01a1e684620286b0d16ae63dabc95cf4f6daa52131270a4d7ac59a3b6b606a9e3c0bae8e257ab97993c443d66107ac4b48d558788f368bbcbb090bd28b68d1b8560d3f6654607220a3a676b1707115df64d1d71d8fb64089c8afd92a6286d12d8f3bfda1f47cc29e043808e9e1012baedc4b0d0452638609e5e8925b18ed32f359b6911ccccf8c18c6240630d792f96d7b8847315177ec4a23b5972e3125d0bd2c89df122158872e03cd437f81cb0645ca9eca37264476c174a4c1a9d47bb1d0846454332ed5e63c8b0f35a3fdacc45135067fa6d60ca8fd44f4472a6b2c3494ffa0476051c9c2fe28e0a2dde0f42c6efb91eb5475426d3b9ae6788216b9ad3596355f4200ab8f7b1ca04dc19df3cccf1e97df3765f9e68178805cb2fa8f36fe8904f8986b3a9bebad3c7582e894648f2731d28413b52fdaf5f164c14371ddbfb87e7e3faf78a9343244393dac55c68525079248cd66ad217fa8f2d0c9e32d6848398f6128316494d4eebe77e6e88f5896cee5358645a3b28400595d65f7bd9170c8d47e8dc9f00eeaeb50a1308fc15f7fa8b1bfee624d88419c8163ee245dfd6d903157145f42cc5e66c7c4eda4808e35e7f06c52e038ec7dec52e3b0a67ac710ffff77f0ff5b7cbaee2467216bfd354c6c8a080eb5f90d7ec2aef85d3b716b370881f08b779ab988528053f16ecad178b853c60334c29d7413a9658a824de88d5525a535be80d6a518ab7064ebba3598c4bd2e5b3e68d07160d095dd520a1580b74dae32660b104da8547c05ac4e212a1e330612d6011cb214f376ac579a2e586b024a6fe51990290434af0adf4e6db96ed35a2230f49471e712c7e5d8246a80554f114dfb2a7caa7dd27996d42fb41dcf00832388adc321b5a2d9ed04b81901c9cbac5ba611da483798e4e7424c28b165da79b89ba70d9ed6b5ad9d4d3aa1b9ba86a72273453283c1044b9830e95482322e0cd09bed1c53e421dbc4b20b191bc4045035cc3630cb5cb454e599095e221c914808e6514e927d7611869d044b591bbe1c516529b84b3d10b67790d85da4f856a197624b74648872b658af4f58aba4b998136df53ec2417c5428ae0dfa2ea3a3c4a7f3948ea7015d5119b575fe683465ab078ace978e29610428a7d0d1b83c2896641a04525e018b289503e40bf8d1c161888fabc4d9e471888fa1c269e6718700193a52877b0ab620cd0e44442b29d2219ddcd9b8c84630d1eb1c4d422958056268f26e87ffa406a51d4cb7eaa9e3acafacc999531df010e2d440d201d8a1401ab4447dc02de52b06048b12a3d061d2efc364ba313875e7bb26c809a6299b6f9505175f244131f227573eb7905779724771de55a83506101de1ff909915109686a9d3960fef1d80b0b05ed84df8bb9cc81e4f1df2c1aa169897c0dd2b07564021a88a167253db3e50d10c9d7c3b009680ffd4655fc16320975494493a2cd9b86e2a6687b6822c946b7681d8334523fe2644671e334736b4d6efba5527373faf12e4e5b134d5fdb0e3c4e80fd99adea6cc28311e0400a60a490f4c67f85d643a41b20cc1ac629eb177c262e9364a0b1ad6c569a66667e6f873ee8b6767ea6fa2269c74fcd06da4259e1cf062d7fa90ff68af58a2e0bce8641f207c7ae219bdcec6c6917039e662c739172a686db5869ebb759d7bb86f2847e356e69e58d8fb5b3edd8eea05a65d38ad0bbcf8b48286770a3da1dcdfdf732dec8d5be0bf67db31dda393c603eac2edbfe88983f04501e3c06aed42ff4dbbe4185a602cbc3c655cfe99cc61c27ea24d7b9ad47ea32a25d744d388ce8ba04292342e88b363fcccf14261cc14a28ac228fafae12fb5b075afb42264f12b346a2456729e4d48561a86f8e5dade46604be444d9914cc8731c54ab72fbfd0875e2d88e9da1ffd40a0e73f003ba6f48aa3b2bafd8023c599eeb8f83f288b6e2c0d7ac78a6cced6e1e614c123a093f06d96ef4ab223f94aec70cbcf041c6b3ff3b88f6dea02ecdaba3dd7298f20f04a50578b674777e21dde23fd5092ffcb379908501dd185cb2a98517f2ad95b76e86ff8a0d05a0ac6669f646565b22412981550d39b8b5ef641096c79a8e436fe7859f0ad9dcec4125f999dbff27da8ed9dec5717e53a2c26474373b49655daed886bb245be1f1003006588b18d56ca7e818b22ca2c2d66029f68c3dc4c30bee74138450db48a606f551185ef1cc5fb0f03bfecc9340db1c78914d031ea25f13a29423f1a3ef635322f399f948cea990e7cc06506910b3ed142cb78c387d4be1c7e4febdd70e3e072ba6ccc6142eb0598242a07f816e40d85b39821e34e504e9d74edec109458de35a2f599226f8f7f01153fae9e50af5dfef093d629980a932fbaa7dc5dae94f2282f22912758e40df108e89eca3e1fb036ad1e88b78a6f596dc49a64b717e6765ee5f86b80a919b8fcc8d2f4ce88f1ef150d682c9c6d8e6263857218f10cf95c81871c8f8e53cf900866ed181b134a0e968cb57241a9bd8fbcd49212d1b03011f2c2a4263cba80744eaaa820bff7e11c82cb7c2c6acaf979dbe462dd3d71839935189bd0924b15bc68ed9f0fc0981889fe76d6d6c16a361b697ce447f460474ac9e2effb7e009ab17f41a75f4c080d75ea23756af252364130c94e2996b5c025e1c6e2fc49a685ed3cc053a0d3e0a223d4e64d8388d2d907313c328ad9ec9986fbde6bb3b9d22195b07d8e8cb57a65cc9405172a51f379248616108b4fc982322b4faa696b8abd17011c3138f8957e60d75198ea8fc1e3c10b2ab7fea07d77c649e9a47d974593833aa44d561272b1f638e0fb506a338a4a93d8bc0c805c2c4a9bf09e5660202501afd83805f9091303d23ea5ca2be229fef97f8e5adbbf46268a135e6cb90015935e584ad66758957df0ec5b57bcae64ee3073079f2c67774ce4437de22557e3f67bcf80b2b14b5cf48f708c869e4d6d9c7683c6db756a5edba7cc67d31ec2747951dea4bf19f09cf40abbb3a2e1c966295a418c2341f874490c043e668b384563460086ee54eaaa46cd89a2e0009cdea45aa35cde37bf00746b2942671848b23de44d74e74c04aa67321d05f701b8f17bf1dcb134faa38592a20794168231ee80c3ec6c56857bb99024026f6bbc996f20816b1806c46ceaa5a6443009da3e341da3addb9c8065ced44d254769c5acc435770b0f050fe7b39e54aa74f181106a61465d024ecb11a5bedd06a348e5cee1249dc218e495b385f1fa0b27458c709d9d308d94af2b65fddc2c49ed32c4f5d718892902645633ee0208844784453423191583b5362cf5e5443624cb267646d1029be19699c92855ed0a6eb6237c281e759bcbe72af416377a98c07a5971b26695919ee1c3a9114aa87a200e1b55469ee94dd1f8d4c024d7117f84c4fa1b3ca9cb80bcfa9986a61cfc3886f4a1ad51d95d5beb56ccc74115e336f62861a6dad92163031a89648b42acee9dc90081c3a69601fa1515657465440ca675544558584cc74746c7b1d395476d35e06f304f82b70fa289ed034ffe36ab6d1f45a25993be9f10e2ef9febbc1f97b565dd6f028ae27a760c41616e98959815d7d7b98fae973105728f43d217b531f09862318df2e431ad68a8e0f881142efbe8bde8418ab792ba5137d3d64c4b7d52f2e36861b49549be997b72280956244146288753d049b8cf06fca2f824d4807c12b8722c60bc03fbb7e25561eb952fc966ee62efffe6ffbb09275774300d09afdd6506b2b5c5f50b6fbee84035b7d47e565eb8a15fbae41550eeb89ed1914490267140e82e7af1c8b63daeebd622014c664bc4f5d98540e79f70f6672c7d4c30a4438e155f73b989a735dbd9028e598c1c8691f4f3f3bc0222e144df2633b31e92c098ab509b2123d97d4bc3e2accb2e7370aca76280c4d07850b2eec70defccfb4bca482a3cdedeef370889b02459bf0c67631f526b5eb88303afd5a0a192a04982d5020e76c29292a4b4f36d8a0071f60ba01dee7f18adec203608ea564a7db58b74476ef1f5692c67b03e131ff452495771e5176a9129fb5829600bcb49378d214d58692cb9420d2a3d0df1eff170eea0f8140623504b284f21b07ddf75505fc5d561b8358fe5f00317a7c046bd0918901201a883973a655f779aff459017a56dfe3f089b13e370acc7b3e834b4ba005c3cfe03891212aa04499653229bf2e514ae10207c6b19217d20c6b19501f912f8c28e27caa7b25db68b13f4ba0245024e0c18cb11f53bccf180389c71c0158925e49c0671cc333a9d5e7fd63be4debaa22479f6cde040f64c8e6ad683a8da27a9ea8b12e82ce1323bfbb87831a3f700c5783eb2c33a7843170870035bc835e3dd0eae94856bf167c801c7cd3f25153872547b4b0f4ad706414b22b219fd11112afc1cad1cc1cd5340386693382908c852de2dc438eff3681894a97483c42b16de29d3d8147c84aa60d174624f5de81c99f4a1c09afd4eb18ff46b9e16f96182e581ca3edb0475722da1c493d0670e55284fa653dd0e3a2e2662e907ec8c7f41621bb5d89bfea2cbb7e332b3da3e96cdd9750a3a078e7711f11c0a7a5499ce37ab6f56dda2416a927b4cc705365d35efb8855aefd495d767449df20bba2f9759d8c3b17567a21b9a0c524eb58773aaf652e7f4a192f3da8ef939ba5d7356df616d1b5088f5d6b9407a653f96bc25f8f4ff0c88a5385cd937159d2e56ce1b23223197f1a63ba5d55c05604df9336038aca7b01306b79a22aa392a3764c5918d866c19f1633d68ef902648e0599f88e989062421f4e1e0192ce9d49141fa04ff304b2e442fe28bb82e1fd31f5e0220dfdf92c5dc0530613fc2c605f46f48a7bedbfdf66df06e5d2c8ccb01d97f515d4f925e79e492902dacc012399b18246cb4d14f86561c05c727a006eff024dac1473c359d618c8c68e1aba80147281d6c5469e24ace4698ef44f85907b4f659613c5a09d8764b01e90c10ad7060ef086008c94a06ba1189a6a8091086e0910fd271e485c60f64bf030a1c4cd4e8844a24438d12e50933fe935264c5face68b977f02d3a159f784509c710112c9568246e628870bed6aa5aca7cc156246ea1664fa5eea8224eb0e16f50dc2b4bc5759a64fe01a663bd95ee0259009aa894c99724ad50eb234599e468f6327c7dec7de9c9130f6bb6d6bcc474a06b92a003894562434dc0d11da13ac83189d97f0ab906834b02271f394cd01b3c33233d0305a2ec18f4adb5079833ed3e4f51e993857942ad85d76a9f113b66ab124c7c2a2d30ba07da56c3a40470f0f464824a58acbe2e90a1be30b297c10ec2eaacbf1e23f462d81738fdb6983f0f063a6582c27d821b1ebfd7420e4d5917156dfc6f66f04a0c7f084f134df5a5e6170826601f7309fee809a8b90760e7adb3f76934390f387b9a3d640d5565829dc1537b9541b823cd07229763cda43c2293786322c864bc40e3391c6d622f6c19b2f074abca022a51324f33d60a8c40431b391bd15effc774bc6c0b210660e909826f7339fa4dfefd660a1779b8a58f88576f822468236701470bf0cb82de5f9c48bb3c1add616e8f3d3226da4697a72244dd7fab853a077eb6ae5e72c53cb17ebdee7831b6997945c12c0426c466c3470aa21c538e265c8a7dc45bf4097674d5eb29d192b6006fbec98350254e4148a79e791631aa2b611d8c7d47d5a77426cae55935c9fb2dbc13d896665e982eb1f7c2fbc8ba5a85409e394f83a30e08ecb14b13426186903a312bf60f08367d10fa9150d967d06d14f4719eb7cfe3cabe743a60c9e7e0f0a67f8f97a9b4cd766951a0267c376b0abec47aa06773c97c36544c929a5ca3d196df556c58f31d9bf57da6259f07e5ac71467965cc0d0453ef83b1e9c9cd8163b0e6f63a814b22eea7fd702fb1f909ec57f2d4fd0ea64d83aae140870da58fcf4d597d37ca0af4658fd5f4f31806e8bcb1e41d3fefd62885b7d235b8dd7bd6ed4d686d988fe80afabc6b50813f798a234964b6546efebef2a291648e38b2dd4f71eefea168f324aef9ac61dfd4fb32d95d9aca039a3abce46f1116496869619c9f4e51d030f3f54c9261e9fac39b7964ec1ac35ad1ec3a1fe43ad59f7503613edeedb5dfa56520789a900de53a7484c52ea12687ad28879061b1336da51099fe2fc33bc65716e036bde5c74e99f10dd73edac59323bc12e86c93c9c03743de8d5174364760b304d8e14b9f1b13711e4853e0e341513fdcf930a1d25ee2532f64ae668142d6caf9e6efee51aca3469095ac257429996433ab3d48495c36382eb6391edd981f8fd28641f31766f567006132aa779c7bbf34843456837340b3b3bcd8b063c3c48bc882afd0119dd8a9d1b59533862aaf22442d4479a94c5f70a9f7f4687ea78e43e62d6f79c30e4665c450c5bd0ac15bde63bb5fc8d90fc0024db9192f0ceaff6c748e4cab21e70a2771733b2b4b90fd35bf63f4469bc1958a828ee9a941fcf7f8afc8f05b004206cdb29e54381a06709a3ac3c5245f29025f1099bfb1b23a9adc36a818b990cbf471b181b709f34ce53c06fcc78aa7621e4a9f385b994c398481b67226f7505b3c3ddcb97b12e9745942cc381f12c2207a22d523d3445bffd388e700bd4e9ef74bce04a3fcc520ca91544c5211785c6e8ecfdbdb288ea3a4984bebe37fba9cfaddad843889bccb0af38b9300434fe801ac307460eb24109dd067d81d9efaa18c72f2f1cc84c1a1933cfb4016c9182b826183928a396a3e4fff27b68a0aaad4e96c558c5d1d6c3258bedd26d23c66168d70c692f1822c013cb306bec8e17ed57ed133db0f9209e8d071ccebba8f49ab2a48215aca1890b3700a14745bdff76132397d8ecc1db7d7bdd8685a28d49d04009a7842a8ef1a1f9e09739679b6f4cb9840f24ef50dc5414b8e9c85b9a857e9581b44211ec1aee613e8f4da05af14a06ca4d470daabe63ef4da315f18951dd961ce8935556cb26bb514197caf1388ba295317a7be1c41e8106c9ad364a43b8451b4173c2e681152f502a873a5f4af1b409322aaf8dc60bb1b63049f256ff3f614016e51cd87fb7ce13e2ad076e0a9480af99526eb1505b15e71c88142ff9aa9335436a4fe3996212eb28e912bea9fb9015085556b49991b3942dca7a62fca897044ccdd9e04f1605e469e83d6c173442292fe99aca7932d833c0259c7851c8ed6da2c80a83f88a933fc54599c9e4e4cb3e33c40bd1ce2a8e82b8080b8fa56737adaedb2aefacd22110ebd81f5f9cca94361d51f8cd4e0c4cbfed93b5259e5a8b56f70fdc64cc3be0149b1736434b19ab1b6126ad7c58c505d06581c6422e2e1e4d8ac8c9d51a56fa48edc770d0bf279122641b971c7b73606e56621515010191bfd866b6fcd70afb7c2ca861b80e1ed5729c11f843cf847c3a2791168280eabb1c62b16b6b66f1e5cc078e06ee8a082be9d7db442f71132df3d2190c450996b4319dcafc7aa9a75104ff297b0536dd33f148c4bd57c55d80ac957bb0a112335ccb0df783490126225e6b32069230af3e1a99b087a3ccc21c38ce8aceb3ca82e34c0788dcc10303f0b52462c0aac2a240393a5c7aef28493867bc2efbc99daceed424bcfb5bbcde87e9d0648bbc73a1df494c05bf4147feb15642074a9bb4ef7dc4b8790c371699251352b53df05fa9d44df832097e71c8b61fb3ea408229b349711d36ece9cf5d7fbccd6767d26035a56dddd1a51987970ba5e7102c600bca28c8b7533237c7b86f982116c43947448fd87605b82e268e2396e76cf1a1dc088a039cf88b5958daaeaf1617abffe26299d3dd096316f2bcffb1cbc55a4a6dd9bcad1526215e27a18e14a6439167420e280160657b63fc2d1e060ae1e61135594a776a8e4d7f1aa92fa4ce1c9e07444da2a36f649104d279d8378dbed1f48002b97d5a92038dd1b68b19cd90c64afb252c2c1d95ee6a8623fa90176fed7d9a1a9ffa85070d20392cd5581f4b33f599d6095f4ceda13f43fa2346aaaa8df725023bc3a437993b9151d725dd2ca298458f54483198b0b7b5d78ffdc8b57b320aa49e2eb0e80030cee4503a54e28ce545ce89b72a173c2b6edd702ea3a308fdaccce40912c163571f36b446535b58c23c4b8dcba90fe2c1886a8c8fc89c42269036861816a3e304bd543b0b43096c44ebe5ab79be0677b0c5cef06ee93b34e8a8fa4699c2d12f0aeb2060c10dbac49b9a953ed5a48109c512a4c3e3ae35ed63fe222cf35b411370da43c3fd37da1b473e189f45712fcbfc8ffc1c5aa07be6e7e6060aad6bf32b031baaf645c83526b5fae540ae75e0031f73d29b32ff9233c57ae2ede619622d7c732e82a8f2c9237f6a1447e6e779624401da15276b4ac3756379209def3128e38bf180d543f8de0886c46abce043ec0fda1c88400f412d5a973fffa1b59bda7ab500cda4d511bd7d852da5d2701e4a5c1a388bdfd675f406e8894e22ac42cc11a18d56de7f70506166e2754695cece1e29e1c4af6d822e8808b1958633e2be436924da90145f8a25670fe7bb23280346217b3a5cb15219a72b758b430cb946d214b2a97c575a9e07969db9e1572b9a0a02639c3f8b14ee4c5b354433f014533edb9dd178ab6262b5af5882aa05813139083c2b0b754433020fa22d455e90db56ce8f4c7bb15ac11162ac1bee333b2b9b3f3731190feee188246f45dffd73e4fdbb5a44fecff449b04dd7fc1b0e90ff86df178c663138f9ad928e98159c2f062d4bff08792212d8820164b6d26f3c68ceea89c6d1a413a4a879f22546c65e99d7d3dc876319d294d6feef3632fc347b50041d6a764489d539e66d7effad8b267619cba373fdad813ef715100a9e810031807b7e585b70ccd700462ec4ffc810832a7ddae49620ee2813789944ce7303f6096553fc8515a249057780bd34413a100a464e31ccf225aa3cccfb3460e850b6a7ee40c80dabd78721b36a2bd9b8bab25734a176b5a441bac983a5f3c2a3e93298706836d1dc77d7089463769bc49e30d9ad6409b63894a0973f8ad0503843d360d3d08491304558a5fbb183d1545436a788743c014d4e2f0f49af8c9a8b92ef1480c011f9721926f86a59bf9811c7fd5400ec6daccfad366783ecb0ece68bb9c088da0f1098314a18b3497819e1ac028480b282276a0f3b68834ea68d53b35229587251ef0ea3d0abac56cafbc1e720b61ddc6e3d9fa6842b0b5ca5b74caef3020a2a50f3a0c5bbed79581883078fce26a4b20ed83e2b118463c9c9f9f50448d516641514cd862fc62e0efaceb2a492b3101cb0d5300c7c89e0ff110ce5b6b71b4e9b0f9ce4fa131299ea1d99829f9f4e28c1b5e5a8648cf45c6029173d8bc2f4ce119aa0608ca6c865090e00b90d9382f0509ef4d6d548482040afe3d69bd4838ee8f3f8ee421478bb5099dcdc934a547f29fa35cadbc807975fd3aeae85a1831c7d56d2da6786f0b09f36422ed82d165d67bf807ad3502fbadc860e6062d6dbd1bf3fc0a609de40ffc9a7d1a4efdd1176d948a7afb069ce7326bc38979f68d880a7e04facfcafbde110f9498ce57a5dbfae3ba8a658cbf4e916016d861d7693d521a871c4972390f403536cbd93e6f5d98647201a94967e8128ed75952eb411b335e7f94b14e38c1d5513fe82243b07146fcfa238ef188436dfbe4430b639414dadee0c1f97a24a1782684fdebc45cf1d86dd9771a658aee9f310085d9fd9ca8558fd058eb70e9880d1cfa01faaaad5356301c59493a95e042a748da6c3b70f0e918441d27c8b3255d9024c2c9dc4a38c96afe4f76da12e63db567e30e3b40cd259d79235abaca165bb923345fffffe830f45fefa561ae8d1efd26ad8dfc46486bbb6d42b6dc2404051e052205f21b1b6896ae7cfaf163d1c6e658b469fdf4c3c5e5f423ab74d5e2f01fb02dee01dbe23a6c8b0e9503a5ab5b55dac01efd22a177f912908be78959b8388b6f3a3cef761e2a95f28cb017f939e3521732653dd5b7e87915985e0a757b0c5026ebaff660516a4ceaef93d295a10ff489dff3c43f271ff206cb9b7e91de76934f3f587aa91e2e2f93ba8572f9ad078b612228aa1c5c8f8282c2034354eab3daec72f2d19f4cddd30f4c7fb2f3ba6793119647a9529e8d2fef7e475d55bfdcdcbcc2a92b5dfda24a7952ce3957ab9586ca8149f512cec35a6f9e27f6509e77737df7ad5a1b915236beeae34be5372a47a95ca572f82ce91875e9a526aef566d4ed2e7684a96e9e2bdecd2b1893b0224c09fc00582c16ebddbb25cbc83018de057b66c1f0b9e263363a0e4130e70728f5c0ed8e61363a2e86bdb0e474af6e6147f0dda16968dae31451d3e3cbf41fc1a6dbdc4c5b37af96b8d1e79a892fd38dcc232f9de485e8c5d08b17a6bf008201c3643a0cd3618c605c302f9877a6182331a6c710ad86a8c9f41d6464644c97394a5d1551392af804cee1bdfb0defdd79e05abbadb90a2bea4226a04c6a084e9ddadc834fa6d7c074cbbb3337ddd34bb6e63c587819b65463311cc3d2d8199b7534d2e9a6d8cc03a750210d3f3409ec71f7b8777683f0dcc61dc39cc5f0b659480472d63b0abb0414863044a1f8b66d16c3323663463266146333f481b1190ac1b0191a796133347ab1b97d3e9ba70b9b296e6173c6c2e6ea62b3cb0a9b4b4858feda8c1db1f25761f37d52d8dc422c3663462c9ba1d08acdd0888acdd068a583cda5232cb76a310c2b8a5614aa1aa168059262d512906ed56ba3716d1b080408495e3e29f9b48d8ecb977e4a3ee44b40d89215fc2809b54dac215f3be8d3ad0c7de22b22c5a46e614bc2b004968f4fe4b31eddd2b880e521ac979503e2fa1b10d72de390fa83cfe24c0a289597ae6ec9cb57b7eae52552b758fa9397a73e2b176ba09d954ee4ab3f794cbafa9377d104bdf2d8d6dc9c258c9af394d22470cd3c709ddb6137df1dc2215006d7ae5a0c7773420b89d8b853c2dd55aa6f10a53a8682316553de59ee56eb1da2b80edba37b1101f27302ba81e11414f706863d223250dab6b96d73dbb6e3b40a10e8769c683ab41f68246cfa7668376ecef8ea3e7386270c1fdc161e50fa495397873e668eeef537bad73b6d86f054758f07f62c640294a1c7892efd499f8ede173cea18275d58beb03c6773e683a52dfdf493910d742b210a43498e2069a2c44813239a28d2e3e8082e817414d424a94993a22323a3263e4ecccc353411f26fe6e69b790d4376a4656f20adde80c910d0d04fa6092109f733d4e426c69808410d31603284e408eecffe1ade090f5b273bbc3a19ed56967d47c4d9cdf1ee9430d659bc3cd410638c4fe4b7695771c61863a9bbd4dd1d6356ea9e8963778c31c61861ec2e7597babb218c1d63c7184b31c618638c31c6d871480e89100be92186d85977779758a5528c31c618638c31bed4b2bbbb638c31c61863ec963d3b258c0ae247b78286bad50752fa108a64414244ba95fb07906e95ba8531192282e3b321ddea8c886332041766c118932120c1d937132c82e3b321fd2981e3b3214470242a999e332278ca4ea55206ffad64f37c364dc769203ba2e9eec0279e78e2ee9470090a758ba727c69b2e89ba65baac1c261da19ea01f8ad07975b297e2cdee8e884b518b31c618638c31c618638c31c618638c31c618638c31c618638c31c618638c31f64c9c3d3e6631e23189d62b33079aa50b06d343faa2afcfb6579311169379bcca275093113623069481df36193ba5c9ddacbf2a5139dc35a23f99e154463b4908d91225a2aa84e5b70cc26e761d128c1a0c3e58622f0e07587ed33423368ee3bad9754148d24dcc49d19326e0c623873b87525126dd8ae84f3e03fdc9ebe8967789e84feab0259bb3cc85e54ff2d80d00ba85dd1b400ca10007748b05e561a0bd75e9af0635787f2c37f3c02c879eb76ddbb66d5be430eef362db0ae779dbb66ddbe69d53e1b86f2aa8f96d85c3e0f06231b144ede2ab655361a954582a15966a5ba172206babb5b2549b0e55b5ad5458db76572aac14958da5c2da5020e0004374afa89c0e00325e0091a300dd3d55957129e3388ec9380164fc868c7f327e23e336643ce72803407101a0788d18c7318e13e3261e4e8387bbf070163fcd5c8799cf98798b96eb62c56d8d8a1e564f69fd705be1523677e0f3e646c2ac57cbba8ecd10eb3c65752cabde6b586b8bf7dae255efdecd7403afaaeadd7b4d55efde2b6da9debdd7ae7af75e51aa77ef1555bd7bafdcd68253445977cab8390ac1f57208aec75104d71340095c7f2322894a6211aeb7712cc6235c9fa309a91f40115c2f004d095c5f2308aec740703d4e10aeff41f381eb4d5a0f5c4fe309ae7741c2f52c322719125c7f5282eb7528c2f5338e707d8b438b04d77a174570fd8a21b8de6642707d4d105caf0208aeef210bc2f536990f5c9f92f5c0f5ad27b8fe47c2f5373ac1f53418d6b110cffa6c5bde01dbf2fa1554ca6218fab0582b57d9005c86cd3778c2792312f429e2e6c9819bda80a701990cc8604046e6f0f2023b5860870adcbcc23bec40819b6f6e2670f3cc8c046efef0f6fc1171610436086c0fd8b61f1c10d3801806c4c41c3eebbabb001805c0240006e6f071765dd72100c601600c71bd0b030a71f36a65809b6910374ffc02be38bc79267573768f489d8d4919ce48e00c0371f3c42f396ea6f8a50037aff0cbcbe161865f1300b5e2b8f504a8bf71f3aafeabbfa9b771eb732e8a5b8f523f809b2746a917c0cd14a3d4d7b8798551ea713dcecd149bea7fb8316eee1fb8de544fe3d6bbdc4c71a99ec5e5e1669884eb676efda99eea67dc4cf1a9bec5cd2b7c3aacf52e6e5ee19ad7afb899e29a7a7bf3c435296e7d4d4da9efe1668a53ea6d6e9e38a53ea5d2d4ff668a692a4dbd34a8963b83bb431a21a5de44590c531445a1260ad3570bdf59d467f36f6cfe509626a5e65432a1c41766b35cfa29b9b0bc8ccda69fd291f93387e691e962b95f7f3344e8cc14e8b66ddb968a4ffa9331c946448aa1417c15f1e1f2db4b4a242c93b07cedba696b3d86eaee4e09d7bbf42759f0d87db032e55ef74abb15e53aeb8f06d35c65677f34aad39b21a6b0ebdad55fd71575dd31cc85ebc95e69f7cdbbdeabf769315c67779cee2e3d0ac3289aabac0efc9ca73944e18037432c8306f3709cce5139e94fbafa934745fdc925cec55716a4ebe2ab6de00f5ed94f069405653fbac5c2f219906e614bc4e0930d7513e69b79c4fd4061334480e250706e281c1115985121133ef1455e63a2fe35663e9e7794cd3cee104cbb8e76d6c403a74cdea7c589a823788489e86047bfa15039d4430191e2bad9753f7ae093b18e84740df96e66182caf35318fb0fca682a67747c0a054b7078b91ffa188e6f8ea6348112926cd0e9533533a3b8dba05f13cea56928447af978f1b7220861fd1c6c4440928967e6269a85b1a9e45dd827388fc2cd236742ad1361812255287633adc7c12958ada66d6909ff2a557b7a4b5f658b7eebdf7f68a15f6ae0092873fe4e14f78d6d70bdf46a820e0e7eda3feaa4ebd181633bf450edacc93840f0e018f8ce34175f20e7c829a4c573ee94fca979548d289cd21e081b374e2089c8bc01c809f6f7a78eff5295a55d4b254d4a3954eef134fefd59ba78979e6a4577dda9eb941ab423986cd50a9ac74d204cafd72aadbae1293a12352f54d65f3bc8a47a5e282e0ae8eeaee948228edd0f7ec9470b5e1dd0cb19876d22d1eef289ff3b272ccd3d3397bde7ef587f21b9ad7e7e41d11c3c971180653c28c4c28e19cf3706a13424827cce09c73c2195f0e5fe00bcc266c88e7e451b52a07aa3e219ec7696ee32c8f0a72aa9d93caf6d0433c2bbc9906d7dcdc2e8cf20c25040e86f13951384e19ceb03f5da2724e908737cadb49b7601c05a2b493fe5050503b2937c7741b10d7985e7318a75e496a59ec7af3e935c742c003d7bc5a9dfa7aaa39c138bde929ee2850391cc7bdb32a4e752ed5759c4af5895597954375eeaa73dd51a072545d576badd5abb5d65abd6a77aa574ff76a4e27cf33a54ea993c974610f9a1a7bd3021a23e1ebebd5f17ac0fb17f0a73fb9721a88bab1c3535e43835f7035873b23a87912d864338f6f31f5fa1ba9aebfeec57bb931a08c4a753219a5d89d12f7c2c2fc64638ea16ec4fc84caa1a959b1f97587d7fc6465fec26278879b615e73774ad8bbf9429fcebb4cf77ae185e8ae0e7c771d78e9aa30dfa095af1dd0ee18ee60be2362181898674144463aa42c685aad35303206a4cae5406e9daaeb3a15bc0a8c55f94abd8c4c639557540e152ca3c2c11b93624a09f4384b17c50125a25bddf5da4073e33ce33a2d879f42b4c016afd6c5214a8896af384ec68ce0aedfb178b53ab44857f450ee3351506ef3d4612af569bd6328e8035f384133f4c1f31169870a1c021e137b9fd84bdd7beaf640ef66380fbf3d914949fd75b2db91afdad99d6e7bb5d249b5f3a714288f6133c4ace941afebe0ac3c5dd7bdcb60c06f70ce0bb36b61589e94d37c9b13421e1e9e790c8ba9588c770c8b491dc36254c7b018ee884c020cafb2b904183e65b3093212f80418be4ecb336fae375d3e813269c74e09cb26b018f91df9c262e4312c46ba686c4fc4134278168429303e61fc74db85e2e1eee4c0aa8061a05cebe9560dcae56164b02c8661ec2f635b47b123c3f660f351e6ea18aaced52c9568a9444b2c2516161616161615d6060b47cb573cb774b7b1ae4c4f40fa939f6169ee91b87b8b9be9e8707b2466e158f196afb83addd561e198efba3b5bde2371cbe5fa9bb927a1fee4e9477f12e6cc978e4aaed2676763e9f2c97ee22b266d193723059a4d4626d78c248a14937e23522bbe7e584267a840b39f7e441b987e91335ca0f966e33023952ac5792bb3eb9840ebbb439daea73f49ad8e4ec2f522d12244b3742549574761e8b66d5b2a35d39f0ba63fd95f0f12db568f34a3aa29d192cc7be70730940dd5eba5912cea4fca25641289c4477ff2a73ff9c92ce895663d329ffe36aeeb4eb3aedb8948f319131f78c3d812263e4b5e4b8a7012ce417d4b4213245946293542122320192d0d0999dbc641d40dd5eba7adde9140a2918ee80fc60a28fc8d9e8b447ff207e905469c7e68118c8061c8496be2743a8291263e4e973f6d144222422e6832ea563615998ee80fa54c00fac21005ea9634b56693a06eeef483e39a40941511e1bad38f2242432720414e42680851d3cfa948b738948deeee88b83b77e5aba56b0db4f627df069a213ef5e84f5ea628a2f2583f9b8ce29c949a8aba05af7cd1e8018546944ca83a534fddb3f9043e54ef3902896e75283a3a09c3a3a07274111221bca172eae74cea3a1af009ccb37d277b9f8748ff2b612b41bc21cb5038e0b3ac278b2a60b2821f53e8a184118d4c08c7d76001cd2dd4427352ba5a756726142a192ae7f44dbba93bcbb22c337d7a9eb7a96aca6d40143831a0f90647ae9f22c5319cf1e4b07c2767454adb75acae85d5d2496b59bdfabff23e8b854057fb902622d26c07893b2da4bfd8439addc15a58d37610cdf650c42d9665f3c4ddcd1d24b35ab64f21df0d55a86051c1c2d2f37f6ea19e5d5b56a7b546047c0b447ff13c9aa6bdd3ba55f6b923ae36ed1f82e357cfb4ae599aa66937cf7793a54ded3b116bb6895656088e3db4ea2010d5819d1eca6e2fdf22a79d59665b2c8ec69365d953e8d84f9c62c55edabb53c22b4f717744bc72b1fe5a68ce0db36182b6344b080c5e4abcb00df4016a61b845a46deee3fb48b758e0f846d22d8c090c5c382a69617547544e8d1f9ae2d9e5574edf40d1a68180c5d81cd196f75b2ccbbec56298652f2b9eb22c7e82b2b277296c0e88579f9a4d139a3d7703a568b97d7c1be9560f699bd550db7cf1457b7c07e916ebab223812b510d762276d62b65d75cf5f372a87e5dd6255fc3620b6c76908d44658fec1ccb0726498c5b21da4875a4813f59026d22ced18ce9640216be54e151b816250b5114814ea2f481604b10e16c32916c328ecc4d542a1fe620bc12108047fd85ea283b49026ea6f481329d24af4914ed24a320c8640ddc25a5e981612226a222dd4439c908a7641831374081a2e98398d1950f8986551250a147ef687750d54d6f043358875865a965dd34e4306145ed3d14838835956da2ecf4e096bf2d9cdda4dcfb4d3b39feec4526b4d6adacdb292cc64a66199127c349b3f813d30d629a067b6d2b4b92ae5599844044451ab15a5f0b6d4b20c4b1233598a11c608638cf138315a134eb3c801d5503720d2119a244912222222a25e02743a41a013043a9d4e300910e5a669965084d04a9748e284b2a056289f54733d82309048048d4069a90c34a819102372663a61a38c9b99991b203e860012a4519791aa87e04136335d58f0a08c9b99999ba1217630e912d710151d084d7acacd8d083707aa61acc80a4235182bbac2137306090e38259ce109b8b330b3d0851fcc484218ec431998304311339ca10c42c0590f5c415c5178d2eae276ccc643bbb5d59e59ee183683b51d9e757746009f04eef364b787cbf09b566aed5b4e3c996cde1173763768774a58bb19de6f4fe09893f0c139cb492c81eefca006fa1fd490f1b40fde29e1681f6c82b108932e6ce12444830265e124732cf230972533ea059a031a43843e767359d975e90f5a1817d0e3106006fea6bb80cd9042f851014caa61041534317205fda8a0c60639097de050908282f8836ac7f0c90618633283229cb54b89025c44742b63471960220322587b1f3940a3214463966559b7fa4609e787cae82fcef4179f5d30970a3ffbb1191db83503d6ae4114688743ca09ac3dbf1481c5688fd1042d1df68048ba89e078ad74234afa48d111d60e85b48fb6c1b0225e4ab88a0c5905691834a7e67293cd3758bb86ca39f46185028c3dbb982b0062a0f95b961d4197f60eea4fe360bad52fa23f4deb5727b551bbb45fcbdafac03ab427587b3eec71a488feb0fe92fa83a5a8692edad5893ea7386c984b3e19c1f2334ea0a71ff12508334a0aaa1ea5949e807896058fe593109eb999079e398478ebbe65dc2dcc5b56e673ba8e8c96c05049776f3e57379f9462469ee7799e47e94a65298ce3f4368320ef4da012254a94680167f8e674c8d5cf21a90663457270e11387e2d27583e1506c892b08cf431cf890e109ca737ccd1beb7216ea460f4f71149be22c1be337967514166299540a0bc777987f87791ff5c7e3a17cc50029a03ab028049100a8142b58ac9b9e65aa662040000315002028100c868302c1603c9822e95e7714000d87a048624a99ca646992c32864880186006208000000046066644ac3361e507fc0594dccfdb4d63272bf46b7405b21892b2ef3097ee152bcde98407f0fa0835c3b8169e9d8251eeadc9cebb005e1ea35ab3e704a876cef709df8b78cc1b0b04879851621133e22be284c88b72813d546c6f664529a9b6cd527933777096eb7c66ff8aea2b48cc130266a06b61ac3e9434d9eb96f46fa2ae3f063cd0fd82271c9325672c925268c316ea42ad034a1d7b832c42cf7582bf1d076a5cfe09164b4622c0e15cb165c40062fd1449abd6c6181c1eb512b83680274ee020f31715ece60fa33bcb845e9fdd52b786b26e58b6cab80427dd3c69aed4a99db24f8beaafcf925fc9a50f47dd5a7b9b7b8747ff4e40d87373103d301939edf1460fde03909ccd7fab43af89d09602c182fc804b08e3e8eaef987d35c717c72b98926922df35f33a86ff8fb7e35c3a0d9566d1232f4fb8e35be0e467f223da41eced755e34c1c41b294c143a1498982b1326cdea28f3151aed684d94283e80a97257c74071aca7e993812ad8de74dea152a41db8be99a9b6796a43578be93e34f3613c7d2cf10f9e6a779c05fcd964f1cd78f529caec824c1c714900740a0d217e39f3d2510427f3e326eee074a01246d8eeee78b5fc7bf0d513ac22e2d84d43493d9967d13cb0e33517cb88893d7897d1cf985b7affbf302d3887570cbdcf9e6c9a4a85a533028eafefb59e2036d4cee45871437419fdd118728759ffd3f1bcf7310ff93001cc342277e9c6c68c964ecb2fc1e4a574d33573577500a497d4b5be652e0a1b27d83205b7cbac886fb247d67c66b1c9bf134240a039325fe20f027f49974467941d76dd9ab55a18bb8892c7298c7670885adcad5f111944735c0b1c381911f57a6ca89cf9f6bda522acdf4b22dc04de3e65f7a944aecf96557da9175a2d7aa433257adbea40f86bc3ff2f2253728184702526e2dd6caf4857047f1e29875282065438ad1adefae69327184aa842a67e7f9ca118aea541e2a843ecf7f44ca43bd2b60b83d879cb91916e8e7e21eb40c0cf0f0175eb5e0ff3af97fa76ce01861a3a3d9095fa9a5fda5383eccc9a93c3b12096411e04a682fb99e21243a49bba6f24e1cf468b85e9aab08abbfe0f83c48d76664088e4c85a5baac5e5df86ca1f095e647a98b4323d5dfb6443f97d9e4303687ca005eed9bec2ac86c309e7ef16183faa71d79d11f85fb13df4faad3169892683c4c7ba5e80b6d287447821c439b2462b435cd7b5655b9a4b6ed01b95d291ab548cfa5f3f3ee07dd0f2a1d4edcf48e7c6e0a60ce782329a43281a4748090a2c13b66021d76972bac3f8d3b58c94ddbf557c44fa412b232705a47d30a79166d73871d80c98815eb8f23a00e078dd57b554942f8621e08635e73c6bc8db6bcd4757921bbbcda96a660a18ec8dd618cd4da54a54310291ba1c754e57ab0871ae33804c42a761558f727287c3b23bab6ebd1fe0658c8c9e9292bd77140ccedc3a741951bd22793006f0fab4725d76bf38c6913896ebfb03bd8965281092efaa786f86d7da5e54de6a6474cf6e2deeead23ecd7d1835c8403b9b677b2876a2e33f31f3e4e739955325c1155e34b4da37fd4038dab5295d5f1ed3bf923cf0f5c8dd59430e09ff4b0ca4df9c35a8dba337fd847be5531c0da8b5b8d5f62321b144ee73de7631b5645b369b0fb63f436b4d99cd015536049f4c7d93251b45976789840029f6e5a590229bf198d6d5a9651f10b5698329e870277e6d3022d58a3fef9d0269dcdc99402f66c52827228a0b75fb878fa460fbdae43499a1774571b252bf0a7bdba51e8db6454048c1cdb360ea228e76ea33cba514e4a3139bd15e515c97d936842bc504b4a0a1f5352d68c8032002a84560aa06dca527a541bd6d1bb236d3ef16cde21a22886a20a1140cc427147ea931553dd2886e29ecac8a6d2dc2a9907d3c466cac8a6f6906d8d066f9c85385e55709459a132465977878e722b384a813ed1c2cb30cba5e5a2eec94630b64d089e1e0197408063f7993c2bb4570906d4b844dcbf886f5e6f2c7358124fd66487e71cc1edc0b719993fb070ccbfce9c544d3abc2ccb7cd1d0327c10592c66c7e793a89a88acf22317fcf382f9f3802767e52fe366f7612054818ee17fb968ea32c98dcf9f66f4a43e7da436348786e9b322dc066c139ec0a5d30d519573a7ae81106be3339d394de5b17c3a02ef38e64007b61dc8dcd101c84f8922410f754ef044a0e895298f934c31b9a4ae083350ba3c3a5128b3bdc51aba0c87eb15d4624a46a1714c1f21288300bef89cdbbf967c1760db37535320022c71c85d2ea564fb561e03dfb208f794228a3bcfb74dfb17ae85fdccbb2895ebd048b62f4ee58514efa760af93a884a6295b02085956f352c19d2a6dc5e9c0497985ec5bff841c2efb63319c9f18accc3de932ec75b3c3579d1c44b1e72510fa316cb96d0e088a9623d475d3f415bf74553700a1bd16c7c277458a11398e6407af4e81a9ec4c93dfe8e64f38f38080271776f656984403763681960da4a4f650b5281cf7110a51183cb2c2b0ff8bbe72c2136711f1f6d14abc1da8f5f3ccacb112e375b86c7ecb0ec4cb4de6a4050311038d0ddc4f3e9b597adfb8411c2c6675e1ab46298e0ee1c525a1989aa1fe8de3fe9ff015010a38c849f3804319d736c118229852dc4862a634efedf1d2cd517ff1c15300e2f250532112262cb7674b4345d6ef93508d3c9a1f4f756d2d5a7d3235e86a284eecde4ffd1d04f188ce6793bc66331dba5b01dbc0f5e2f94a99c3b58c17aac3b96b19f1c7705d4737f7e281ba8089785a26cae61368d7cb68ac78e76d9e1d7491f8b24834017471ec655c68859ee77eeab22b0df12993a05ec0ae22e0273922bee56c7b8059224a134f42a33830c287c2886afbc3203fe3ace9d5ae3784718df0d10ffd57415bf5a51544ebc07179304d931446749f2567bc1652cd722a6f74119d47a7673e3ff6f112487708db3ebe784cbc9ec633ac41f2f141d0b83f4c9ec359a45e859237c3d2c1ef680e0de55a550e28437fb01555b08669878889de683cf225b5d422eedd3e3feb3542128bd4a354598e1cd76bebc69a0041596f5848613eec333517ae84261e95be269736dbd271f4e73042ca01547420b5454b35348bd5047493a5cf0b818c09cf194022b246018b9096a8c51b93ec8aaa42f1f4bce41076c5af5b6cca9073074302df7dac6fddc4747bbb3015aba39814ddcb48c484b104601b61ddc344c2210e959bd96be901a1f87dbeba70653e84f93c0497511831ac0266f29472163668a36c85b6da48f02d9238b4b25d162f71a0a557dfc9db84706f780a42ea4284c45f79526d67358c026ae523bc070c6e6732a0f4dbc2b367a7db3fb16b41281c979c72b222424c1ec6b24dbd3d5760e0729a3baae1c0efd4684aaa3409ffe80104bd0f40407e6eb0a485c46b337e2dbb9152c22171cd180397f602197e9b2d2c22ea9d05e280fa0ea4e04b508a42448883ce02c4672399b094627cb69df0ce615a82bf3c3291e97d80f6680f167a8cf3fa4a1d0777158a99fea1a4f08210f9252be3951955152309e4ced99d8f45cb9605b5fe4d59c482fa81e9adacdfce4a120321d8e577b9b3f3301cd577dc7918cfdd22c4c666df1e967770e5808e51f562ced5c4c2b32ed42f7d7f7c5263ffc54758e003182bcb9d4b71582c21382152e46f42a7824cc40ac476ddc21c119111588671f9d25df5993057db583cb3080127b66207368e9aab7b105223dd6a7c1fb56f060ca536ad76ccb769a4e9bcb68f3d3d90f99b7eed7477162f9e3344db582c60eb3b16fd61c2a10a21e8477eb02a28d0a686b4b6c8aa8e71a179cb6a29dbc4dd7ca49d370f87f97a9b3e4d5dfe914f954d3d126930a13cc1eb573539e1014e8a210515f80116ed7c2bfd66e9dcdb5217acd49b8c7f24dbff3928fe3caffe40977d0305c4823562ec9a31dc7967fd856e183c39ff85c8ecb4f58295591c3953f620502d6f36cb32299f00d81c5310dc6f921aa7f9264d48f621232f8f56ae6bc711415a3cf39c1712c295af153c61be8461390dd75483f9902aba493f687fcf988addbe441d61037631c67ceb76a7e08fa7f462515af5f4462cd1a8d1162813ef1ab02dbec9776e9a47d8f80895f56d8a7b8474423be6157184436754b9e25439d75e501ca693069b6a06b4105cf2c5303998d0e1832770e83f31898c2b739ea1951dc28cdb082177aacf7edf44b743e119fdee44756ed8e733ea661cb423aa7e4c21135675dbcf8b6e7bd5ef7b805afeb2109499814507d49d384e5435fad87dbc7984c18466a0da24560954bb845b3ed608c98485bdebe9e8420fa2f1bc2ca7008baa7b20fcca0ad816f88d88390eefd25a079c767c62fa56c8a0c197a9da8ad6b35052a456167a3ecfff70a0203f0559f5e98f41c5d8ee30e91c7f6b2e7e0fdb816fb2ef8b2b43db3615b4cb210f4fd0a9e16c9cc0f8cfe208c6f8d01680bb0d7c075dd8b30daa420c1a9454f154309ec5662bb6a5f8baf009b439f3db3a299946b50543dcde1e958f0b7963349b90a2b4feb30ec89ce2d1694f87f62eea0101dd2508e54c514e80d08946150ea76fc9e089ca62a4e150ed2d0391d522876cc719bee3d198ad419cd370fae10bad5a483b6724c6d30cd0d3f73710f63d6af310981bdcf30481159d5756b02e014ae04423bf2d195be3a4f8ed63b9cd15a0e4d705be7a495004c57f96b0987ea75be50bd458f248710528beb69777476d5bf42db05e25ee285bd9ec3f63b0683bf73faefcb5a2b895041be67c126bd1dcf27c4296aa4606b4278fb0bd10f0d578cd425bc6fb83f3606fec072d9ecd43fc6fc80f68269b0f4cdfc569722e13229a1400d7f14090d1ce7cb5c069dfe0d95a744d9a58319e145c4411c660ec81d0d0d316726a4d74790aeb1815cfa5e94ae77546bae3325aa5139d66a64e7b0542d624f6c449d1e935b3752ac6fb0f8fef45c1cfcbcd22f38e9850e9a086bb4e89eada8cf5aa61176ac4df843d2e91b6b7f02ae7472c3460ed6fc9e2086c63902f872b0bf635ceabdda8cd28b33398e45a8cfca1bbe0f53aeac3a6efeab50616244ff6cc9a5780b0379765f24da5852277b074e460ae7df1d930c62833ec8aa765790ac42dd24b33834a0af8d8a4fc96f085960c410b343de0776bfc9725b6e1f553c133467e658f28e88d3c43fe815ea071dcb28ac7925f4120f5c8aea3f20cbf0ba2448362d4767caedb19bd614ffcc70dc7e73c5084394201a801a0175949da264c4236d8278568295cd4661a31c3364577b1f97f9e971c75bfaf01fec4cf91fe329a4ed6bebe196ae4b44b228bf3a80a8acceee5ff6d656f784024216f632778e6a045e9d7e5f383350a7ee242e515eba0765e18511e421053863261b3d5ef433866f89944c5b5563d166cda9797d36cd52ab9d3529caa05668ea10e6d5bca535babc6329178da0bb33b72475be7b58a97135f380a62edd81a1795803bb17579111889afccd62a4f7ea8aec368fee9bfc46a3e9de38a671a34267129d6f189c7bbf1a037f27467ee819ea2dd50a4937037b4c6e6cd57bb462ecc38b9845240f5f2548f56c5268b3e50dbb34f964733c0596109a1ea2bb9f6e126253196bcf43c57174d80a83cbb21d32fa2bb19293d9baff9b7cbd3587e50168dd6222c0f1224b2a5d4244dec01b0e5de8dd211fb707dd48c350d71a6e125429bfbc9cf7be45062a2113e60d60875c0f74ce11c290b15ef6b2832bd60be0c94d197f8f0290f5e90fcd97ffe3ab43e5983a8d5f7a06b760468e354853a9a8751c77f59d714065283477449fe3ae6a2cef0ae5b2f7bd3f9c713e9863b813539a44e62e68754217c575b5f16d9aeb911121a6bcd89c438ce633915b5ee0f110d732ad0c1f34cfc2faba93348adac315e466fb037e63632a9fe04ed0053beb710fea0621bb202238675fab628a93ea097bf31b627e5372784acdbcf86a572aa3910d32595098e7fb8e57005fa19709224cf166eb764192476e37e302860c9b1e680f3c78850afc0a4e8d62e266830fd5809c11ccf0b0d3ab6ea9d2eac68d7cb5c11748882e5c123c14a91b1e70c45464ff7310c004a0074bbf2443186ac7efa39ee0f96eb8e17931e7b7094236045b49d30b3005cfa982e9c6a05aa3196b639c81c22a31c504381b2d10f136489dd3c30d49105f9db83ce95b90ee9764f4249d4cb8a3fe712bce6f6eaec0b3a0360ea3fcc23678de5c25f739b83b9173d320e9f39989665554be42fa7ba3722d13e56722829fe502f0df61226ec90a704e2387596e6b8dbdb27106715fcf4669994eb11c86e3fa4dfab695d7d370a2e4882e75c51a674fd736297b9eea47c439c3f6450a573ba41b877bda31f8d8a2a50c337a02f7b2d28266e426fc7354e41622dd8d6e1f1f0365f024fc7d415ee4223d69cbbef2aa8b2583dad943ae74653374f487a91e0cd2e77d6f37f1baf96a6a658f0ab46f6e97e67f858a80a2589b2185fdf000c5e60d4f2a0f74b81e27a7d43982877475be0a87561311ec2650586138b9cb4d9a338f759fa9a1337e55bbd910a3a2520c17d23953ad7a7030718ecbc18f54fe5a97a68f62c5fdbdd74beb1438f56641c9e8e3a1a1e72b1267c1aae2618ea291d30b1058b317e547a75f524103b84a9acf16c8d95573c6427fb52195bd8544e3a00862eb4364f6c79066079416c3ca2ff25e3f0687446af91e281de399f3c6f70d4f5dc2dc1aa8df38879b36f71d4a5c757383f2c42ad744232ab4be3843a30976cb091fa9f0889058b9e30aaa2f2ca9e677e8493952ea43689a639ba2c93c1ea65e5cf660d6b3be066e89a0abececace3cc9412f032699acc4720ed468c1c7e1cb4ab78b43e242981f9d45c2d7d4e5c7e621b12044775c8d1c4e2c9405f1d8a6a827e6a04966fb595913b69758c7fa2eb1129499447857d8208337e44d34b709ab8dd4ac353d14d78ee97fbf335113961ea9f14fbea1a90b174d0ee717ba73ef25af8320f9a80d992e517d3aa29120e3ab2283781f84fa934654c8099860ebd55a434d977efe6c59c64001bcba191690e91eea9f0a2c924096ba8cfb90ea8ac55a3cee6f7cfa9930a121bea5a3a83fb2dc573dd95c662f7fa5b5dac93f7f5b5f3083cd9623c5c89df8ab42f053fcd310ec665412d1074a33fbf3774156a476a5dcf82d77cbcbb77bd37cad570250442f041a80ac04cc387817cb0d70562b422418ff581e1a2162128fb81d686f786f663956759ec7ffcdc772df3046a4fa6c8b76563bac1b67d6fe369bd0010ba2d7645c765effb635a810a867f45d489de65468477340c34bc4e4cee068eb34004650b2f1b14d82f633ae5ab17289da9b5da868561895f3de3b9c9a29f4eb9f542037336c40f909f9899126f4134dac0e47c3538c39abba4b20182d8a3f536a6667baddfe7863bd979f65c0981b43fe9f372a8c8292f7e50ed9204018f6ec54a6a73859067bf74e5d84ba65573a894f3f7994b8e651a70aca3719a72f537635c63d248734c4ead44595765dad104dd942642d336892fc8f83ac00ea7572ee8ef70524e0f7be19f56b6d2d12d3a7a47a98a924464150f03b077b3a3a4f4267f75cb3ae5bc3c73c4ca228a22aa49d396e9bf801c036614d386b2908ab00691d4865a0c2a3e84f614278e1cf653d60103b9e10ee32b12183cb97b1c282e90b15447a0ec80f538c18a8fd26ed43c9035e824337674367c2778914179592f831d66105acf548925c0f9953b0cfbef43fb20ec100251e5ff0c1088f508baca8111bab4bf8b5a86185f530b68a29c74b1211a3a2684a0efd2ba819b7ae1d469d2f562337f76506096d8a35410724da871f0939c0e360589b9ef8807a20439fa9bfe9a3e34b1ed75d065032fd080458d1b6d14dc0e35ecfee13c067178f7abcd20966fe3895b18d8494b1ab3ba70b351945b74f9eced683454ec9d84bc73408eb9f2c9b51bc920f6d95352640d528e9d428d085134990fe32e2bfab8a26143443841b3aa4866b6fcad3d882ca307505db70233a8e028bd08a1ee6a3f410af88bc52079ffbbd0badede9f7f516aeaa9f015ed6fb97a12554e1884713d01713b069cbafa8ea96c42c9ea4f2e551e18f2fdd522ebd61fe01292da12c16f7a38db84a6a22f24b64f26a914eb0ff7883b4cfe34bd64e1cd9f6432b2c1c43ca47434b1b623c82f425db0189dc6dc58927533ca9b9298afbace55911278701621ac7a08460d97f58967a1f3c10eadb4bfa252616b6eb592bfbee039160c46f656d376be94c826894080769e540c252e8920abd6b3afa378d404aa86b4f2935aa5b1d4dac44f4acf6ea86abd4ee5748d336f9aae0cf61ba92ed6662a9748dcb2e476cd15a59445cd3a729aeb96866eb2a5a63028cbe8e4bf75ef37ccb1388be80ad0d8a619a72cb3e70ff9e998a35f6d9938e1e0ab185220285b38be8f7a265f6a0f48430e0df7925905d2a6415278bb9299fe53f0570b49c4bf39a577f485813a27cd2a3729e2fe283e59500895842aa4db35c63501704e38c921650935dfdb0e57702ea4ae677af891b667236dc25037d10258e96eddd49438db2d5ca961b30d75e7208c362ec6a7dd9b9b100485266fa1267ad8826fb281fb2ed8503ea887800193e176d1f31b2d70f496a2537ae3c4e93c00fa4063e3cd98369c57ed209db471c662cab15559a89dfce4043a60482223821903014cfaca8599f6eb345c1d9e3b273539470ce1e8a7eb2dd69b4ab2541eb16849522b74f2116111c22c28263da4770f3e4060e6b42a40284402a6728959abcbee180b3ef9fc2e8086937a8489028fac390759e874a04632c299e11ed1b956aae70d2909838dea81513093cfa0a604ff357fd039c2a9361196d4515aa5354b9db4813c3c8618f90e2958f073c2912bff29cc4b950ece75a1ba3bae77227030d7a9c23b10624af353f8bc77b88f59e63fbcd3777d539b096daa1e887a05658b431bed84cbb04e4ec46fb71208182180d598084bab949e9727ea591c225b9512f0dd10a61d24f662ab5d7d451b52c9c00b14ec3d1933bfc499508558844c5a1a350d7323eab6193426231b5d83b85723812c2cc4d54c3dda99c2456e15c9d6a491bc4aa7cb355d4de15c7afc58035c46239aeb21cfdbc1649cf9a12d4721b670b71f5db1abc35fc10f3e090fd70961bf415b2a9ee9351d964d6c359ec1647d6e634f12d86be665168c212f5c7914d447009213a6c42022737b545d340a40dfd430c3f88ad7b0b32617b97ed4b87aaf8de00775b6558365bb40e3818dfd685b920015dbce26db0775ac37db55be1633ce71e209ed3aee9ce4a9d64c996ed57f49732e825de556c200440f80a010d8018f68a1ae3605770618706a7b2f7640b42abec9146241a53852a5b91f8a082138ffc5e9ec2e5985d4c886a06270988c402304dbfab92c74ed8f2638a21235c6bf2853b4d9e52f328ee99baa0fba386e93e9a38e62892e1287ad04cf4890c44012e022966db98c9d2f0ed2c7343e12ed53c99010b8119af9e6967e44873f6b26e718d4852d750eb0c26f8f1824376e92f1b187c252267a697a85a815f118a62b94ac10f874c3a5f0003d12af36e88da720cd2862d00e040e83d93e635bf02f7eaeb35ef753ce8bd772bc0b7739b308a41dc2849d9c69ed8dbeb2ce4a452cde1a00201c7dfd9f80025f2ca411ee956bcb74683a2dad63307201d1fb3f54a861214fdfad6b47551fb507a269d512f7c88d4d2333ec982178a0b4a4e70e800eec5125eb01d0bee21cffac2e65e885300fddf6299e6858dcf5dc8fda90be8ff5ca8e1199eeac7056efc2d08f2bdd881945f76922b903c73cc532cf859b0f08ffb56d1fb79c282480cbf33e6578058fdd4d1c85628ebb874d916ffa0c2c3a5d085e631a2fbbd5361597953c92851c10af72998248e7dfa824bc1fad3a79526855c4701f9a58ab4d1f019e2a489f636f1885df614fb39cdca0bda582a502e8ed1dc056123068248a248bd2c44ba0b12281dec6a10a97fc5673805b95345309c53bf9e1b090c229301ba3428487faad3500a78d49c77bc9339e4b4bfbf96dd0a77fecacd9f8428448caa160cd9151671f074d12e167d1f5cfe3c302d8fef1f04eb8723d30e6d1987c265c3b09e410cbb3e6e48a3efa8a84b247e067b90d114a29c5442a0023020ec1bb89b6e7496582efafc0a6fc1ee5eef70bd825730e916c68c3c734ec033e289bb1087f79effec7da60eda5a060aaeee80e2ecb0018caed2100382872e98ba245c7153b0d5628dc25a94affa4ec58949bc31adf9384b81ac919cd01d6935fa6fdff491326ebf1a4969eee7b0cb607a0f535736fa40b69b598d4033f090a24c8ddd1c5f6c109d5ddcec1a29979cc404ffc2c861f94d436b2339917c1d78bb9b4e2fc0e36e37928f18b52fe669ad4a423ba33737622e1599967f645bec2af1ec194bc79b185199dd41e3deae89b87a2c57f56fd6a92c407de2af95bddb69ae6c0f8e5400c562ff440f1972c812e5c128b276f7e28bd97a64ce258aaba8635e34b2cf3a0f1d78d89f886c81958a3999d85e75dd501ada3b73900d3f56b779cb7ceeaa340039a87ca4e953e547233117de020ebf95d37ce3fbd073ca271cf65e21482dc798b5301a6c6ba07129b7d4b039c8ee6bc727f06a02452be792e48e76dd8faa7d522dbcf1a61eafa262b2dcdf7875104615b083faf25dd1abc8aff360b8a1acae7f9678056b1d9f82df7fda6481e29a8eeff6f185bd74ebed2c2f3e615a4e399e49e2344639d390dfbce7fd7da181989c148e36a3833e824b0e4187ef99e8362cde86a2aa4d5dad0f13caa5ed3e6484896d12aaaac8a9359fafa9f30731fcd48526e25700e51f4433d05a246c3ed818e97c20da0dbfab909c8fa98eca294ca6b62410490c2913e376974041f623420c417b20ce000f641b19c0b96c972d63a672b492816cccf00e387d191a7b6b5a9129344826653703221667798b2a01e0165ca19b254d22c1a283e4bb7e237a21a0744cb1336fedf10fa75f7df73a4595ef7ed6bc3f81cb42e835c5f3773c52cbcfa0f3d09c0ea456c9308acdd0b135a92f47d988c893411bd51fc6f2499c71b153a2008870ba58da36549a12ef6e61801f336d73cce13382aa686a325c3d4c40baa05ba3ad96f71f13a9402a78edf31c50c685aa0325d9ae5f9b4861224ad8a3dcb918a0df278635df7f4eb4a66359a3ea5ce1897a3704f9550c8aac0c0b4ebce14f18de594865018c58895b9f8865a1114bc0fc8ba8b792ecae612178c5d584805c6d1ed0791ee2047a48ea53a6ed7539985877921da9f9bef9d7b012b0903566c74858cd678676a0ea49223917b501e252f842ca801c02cd716d2edf0f74c223aec2840e1b0c374415bf6f75145d06ad8bf3f2f66ca27c4c7903573dd0a59bed4a52952dabd6c4395de5c47bf47d0a3d1b17c5f742ecd3e84ccef844884cba0980b387fdcfb86dd9be5a76f087ad2584cab0af928bf633881a99f30f1b0668ecb48e65d78f245f73d092cd3d5b2ddcae036174c9aeeeec39da0985ac9302ba1c43197737a3e67f1097e2cf6b1e1764c2b7fa3c5c9e62674c3454c759dcfb08e68a34a5c82ce749cc6240b2f7e977859da544b30aaadd21f091facba659ed0aa8de4625396ee0a26f3d866fa3d219176e4ece2cda300b323514b92a11eda6c41edb944c607450b8768466a551dd16badca87a05385137aa1aa34a59192cfdf876cc14e2880cd87df90089a1b0a94610b99d8128600ddaabada1e8dcfb044906c294353ca5141373e9c86c068d78f932ebbbe3ad998421a4a1f6bc50c52bbdc3369dac086db3122ae760f265fe700cfe5bb62d99b3b3fc4bdd8cee5af981b53e40011841310f64aaacc8b25a30e3c869ca338e702ea0710447cc8423bc8971621bb550f0221e27b9e28371002e8e7c65e65018ff88b320b039a5f76f2f76f15c0b9b4066bb6b9e5f8ef33d2906aca949a5ffc41b819d272bd2d720f8ddd2e19632abaf698eb45b1fc2df9f248236fafd8263513508f88d9932b432ef66786300f7da34feb48287a74c713048245882108e235e557cada4f622526f73c8c8bd43757e6c6aa7573f33ce40656723854f9eca6017e486894eacc00680856cf9694d1d4b65c50e80b14711e3bf3e7eb44a9c6e0af6ed80b455f299d9cf97e0287545c9e80d04cdccaf1028096a0575ee8ee8c3454444cd1dc1d8970bcdbd8f5df6b8c8cc7ab3ca332b0bfc9a6c199a441732da464f8f32095ea010fe5ff843f9c081f42e57b53416d03e43fbe74be6e314fdbe194c3d36f848251321f32b25777ff2653691b918a2db29339579d5d6b3e0955c4f16335699d79d2dda9a13cb0a4f078a884f38713c5dfde53aed9da2c9db1f8c98ba921dc960620f53ff9ce356dbd2bf13ca822eebd9bf13c907befeaedd5c20eeeacfa401f77f541fc52482d9c5f303654db454f86786a833dfbf216e9a8030dc7a33d0e6c1ac01322fcfdc3c4e172c1b067b5408fc6f64b30d359ac9b0661628707f5e79ca6f1dda7f273ade12812821e0b8cee24975adf3a0d51a3528dbafb409ef5069819fee519e3e7e3dfb266a9b4c190fdca3f2619124ec35a4602ff7c17b986e403821b5dcd39bc03f8b1b52ce743815d9dfff94a022b75f5f1534011a2db767534763cfc7753dc9bffbe1ed6f707f336ad255743884143615ef85bacffa282c3462f7174abbdf1a30d822393b8ade7dc48f267de43ee935cd155977ce1c1c683c468da4ddc15c273ed10b44c3425f14d5e9f875a59c38a40d29ba94b4b4fb7d997a388402def9a100f4df577386fb62ad65eefb779614238932068dcd2f46f7a64b887825fc45972bf7396e26e74d68785058585db186c15e7b915535fa0d32929f5dbcc99ac583a7a2430b385901e97cc3f84aec03f266c7d5269d92a6fce4e677f930d11d980ca503d69e61bae83fe57e15b3d4b791d41b0a09c365ff7e99e7300c7dfe1671cf2f2a1dc28a27246d11078913c07f6a7290189fc9c009570f931120f981b9906600a876b3e30eb7c361ac8a86c3406fe1305894a33df2198d867998adaf01ffc845fb36244d631e23e003d091a3186e1dba722a769a82f80dff47e00cbc2d5de52cae1e303c3f778159a53b898db3f33ceeb4290384720432a3f18c1a32a2d291b764127641b3719e240b6c334a74ce4cc6479c43c6a5e4e263784fabd140e1ca8d8e3e59411b6fca79aad4315c1a2fce6db43abb9ca7ce2cfe7493df9975f3c46334a3e5015d8a1c3c011eb6debec3a232262bcad58c6120a584cc7d47106eee4f985351240585cf614d1edc06565c26d6306506456caadb3867d0c9338122939c30b526f2499b945f96e326c8db6de8eb52e1df053ddca58be8e4517a6c79036ef2bb5a7fd7d134a7dbec4ad84bcdd16d461bd2a4574a63bf4f9cc2acd91776d1546f7533b3b31c01cb86883c70ba67b11648b1742557600edc17b8d03a617447e8e36061f6335828aa9192f9e8693c062c3824955a0517cca0659351708d6d6f657f171071547e1b95642f084b45cc70bab1f20a6033a487f8414e8303201f94708450b05a89f6993af3b21a9b0985a941f71069f66d69a8dd385ced1800db915948767607d25cf2879549f786caa467a93431ab97a939b294cd0950a56b3c57d8b732e9df2f78f55e05bf2418fd80c839bec72b64300c6965adf777eae53bf6f23bd39327bd44a627abbac177d0b637cf53af484a5facf6896ed228ab426c8f1469ecb2d6eb3b692fcad3efc710bbaa8948e9c9fa8d7a472fbe137a214f5d6c93ad804c9141bfacc913669e1b929c9eac76d1451888747a5d45db6277276491c74092d097f5dea0d2b5999e5b49b371a687229135f659b30ad2b4d9cd454e5f563a9f5b062207fdb2b20f4f0e1de0f3d3379cce4b23377d58f1a3db48cd8e95ebe1a0488815d6e489d3a4ac2cb73b882496acebcd3b436f95c8afa237569a271fbfdf688196c3f68a06ea5d243754fa2ed612ce260b74b6c1e14bb374a97349348e24d1c030b4fb03106491639f6ee901a7076d31c41e8b446f3a7023b84ea01c736708c5f1d49d8fac7432c96c5b71017fa20510842d2e79b424d047b234b224fd4c507c330237701edbe51c3b2d5f500bbb07c7e5cbd9e160df2f0d02a9789782a0c3241dab2615b50c211ea674a7e046eefb44bb58d158bb90d28d0f279d739e0bfee9872c0c151c716acbb970c1357dd4b00227fc41f9b80528d1ad7c220092d3ac95dc7c4205e1f7d82014e0f2ac90af681d718b5e0f74152b434aa016daad1e4dce08398b636950c22d5662e67a15b3112ed9f84338c80ab98ea8de7bab9ed7dc026e43a7dd8e7469c8aaa3681ac260d6009ac30d0a96430d551420e13f29b2fd324c2caaafed2cdbb504165409ae85562323ffc44b84a858fefed0176aa867a2669ad6286a0847c7aea21643b718cc291d8f1029f0724a2d9cc4b635691343ec5a56eab4af57ed08fbf439f3320842e454caf7bae8de6deae7c6cf4872b62eb43ef0c21826938cfc65cecebb8f0824d630cbd1109ade19e8c5294a004f7d09e9ac16264736fc669b08b37daf878a5289a5b9310ed0911522cff11909c9a545498ccbcc8a9baeb6c658e1cc1c127f14038084ce170d56deb8cdfff286476b74ee845abb7f00b2d89ea289840ff520c62296837e7f1e09e9f08d55d773dbc2430cd265a75188eef7a804bba05b22e39253df7210a7c733dda6001f1fe33ce6120635518e4c613538f09ae3d123c20925e0d4cd8631382d2af88a14985bde82097b1e0cb9b476b8a537ab711d3c0d6a8a7a0b8884fd2787a73e226ed9ff61e16d45019bd13e8fa0fcf86769a2441a1a202da26f14408aa23576975398a62fa6fc6aa2dc93205f04864af596866c35ec8712c4b77431ff8af5cbcdf3516815f873010f1238c46e68e4b703b408a96c03648edf1e650dd86e03e6251ecf405440abba49ccf2d4ebf1d758b042e8d9b0cd6a92882480b28b35ddd6ba154dd37256e7fb27423a40f91599c4ac040621046f85a7ed6ab290d181cf059e78b39adc586974ed30397a616ac90fad73a5f4f71b946a1d88ab75e5c51d458c5a62cb5adbf40d9ddaa38d081973ab5ef193c6f2976637cfa4abb09aca938fe911ffdd78c4b5e5a017592e13f0b439e63be9ff7876eec00a208f51641c72037abfce9355208e61261d3674b80d5a2cdcdc878fe2617b479431639d4152e1e6e97a859d9fb002f1ba4c6a9a9fa962ef242e33cebeda4a6020669b9919d5937251eabc0ac84b5b2b9bfa1721e8031f4371efbdb794524a29a50ced081c096c09d7c54b3fecd6a805e8e266cd30256aadb55621ecd4ce189a4a1431c497286298907fad2d867e7af39dd6c6306ae17f9bf4539f53268db895a84e74acfe74a3b75aa79d36233badb5b66af9fb578ce7383bb5856e6d200c2a29f550e2a1eb747c92928453fe1aea507721ae1e76e99dce38638987ac6397f8eb4e13ae6b9f3345a6da66020c8afb3c3a69adc169ab4d265ca7777402e94d6bbf9e33be58eb9b310c4a291d9beea5b54b684a688648bdd63ae7b64225e4694f39aa1a2f6b9d355c21a78c814e0c6adc7c3168598cb1b439408798e2ca5ccb3967cf230cfb1b8f2f92fe8e30f4bfa05daf2be5b297de64bdb556b036ea191c406384fdfd74fff602fcfae2fb8ea8a426bccfb3c9d7f3adaa3c8afffcb39f54e8d6262589d06affb087fb0415a8dbafb34949021c77e8d5f1f4d06b9a638cf9eeadf034eef7e7970414e1b83dafd485d6f45c4b49627a5ff74494b9235e6f5de78ed079eb60e85e0b14efb9b6edf9faf3adbd3ae8daad910bebdaad6b9fdf376e1a7efbf34f7bfd3e5b76295134bd40f1de980214efb937c2f0fc497ff5ead9a424d1f9bc81be1588f465ce0899b22d2af0f31bc951e6acc25ee6acf23c02be39e79c6037b3c120a594e24c1426e7aeb0eebd577757545745ba2b1fde154e0999121da6922f255c61180a894ac2e4943c89f3c48a1223454a783cada8a8a8a8d242a779366b8897b919fe849801cfd3a66d06384f9b3337c397a7cd19b06c33bcf0b469cb599d3d6ddaac62f0b46903e32343e8242703d8672faddf9acbcb9c0c4e94fcf73227839117618f381d9412c9d6ef1aa8a5871069b405326264f4bc1c9f4ce0aacaaa74a8027b6ac2879c159695b42252ad80f8f0e57a00bb91e40b0c726fbe6a6811bdccc5c942c40919ab3163485a322b04a42430220d9c73ce3a2684011981eb041e93a888302c7a939f34fd56a5a43e455841945b5fdd3b4a2a42fa3cfa3a6ea9da08f436552c0d8911fdb728c5034d181e3f467c540562e2e00c911e395849422409d374b156f3217a4949b78075e9d5e518f5a48e16987ec7a8282931d49d893a06a6cb3105e9d3ef98c2130b489fa3514d61562697558428a39634e693ee3df8467294b928562f7351a03ced009f440a9a6db0aa0b4b24d7dbff2868a59b2e997b4104bb642ed4b90989e57c78f92d732e6cfd965cdfc15b3ac59a100d3cf25f751aaaa0d346a24afc7066b34c92a854ac8aa873c8043959f4269f441271dfc4ea885b92afe204a644c9f5d3b984240a1692c444727a9b154b4a6e853e63a8c42c007489f481362315f8f1e7470144f4bcf3e9f53e8a15449dad6d832e42afa3518bead75d60bf7308bd490f6d5308bde917a0486f9f518b9abd8e52df411771fa3c426f2de8a3f0090024ae909f1db4d9d79f83b6fa27de8877862ee694027288db06dae6e74b34016fc46dfff3adfffb78d09bfc82501da943acae9552b35aa3f2c05e6074f45c11ee957deeadc2458bcb522147ac9c686da799ad416bb55af7f4fa596572995a936b4abf1aebac35189d6b012942bab5b6047a939e6708249f44da19eba9670741a78920c638c806d55a85c42157315fc83f7b7198a2c871e89482e62ae613f9106aa2e63203975e65500d41dcb974a49b52084b235013442e9d05354173e9b2c44bea65d3f2a6c156161d0d4250ac0c6c5603a80fe1d36b1964102204ad886848b45d1cbd098d31c0b6cbe3e26cd68cde6e8d3b65bb40e88dba67bb42e8ed0eb947e88d8adee8b5ba4e9eda326be665cbe88d7a03cc943d758a556b3551bcf5da8ca5c1fc6e1009bd3435c8c439a568e2724d2c8d0d1c445d6ea0d46835515caa5f1e9a9701165bd574f95962cfb0e97240b60855f991256689982c113ad98d75d45adb24096aededba71dbaac74c31bd554fdce6abb6ceda6df0368962ba349a73babb754982ba07faac44fc32d7234bdf80155689e2cb5c0f2a0ff418d245eb6f0b910e82ca5b5294cdc63a1c448430a0318d0307d1058425fb40644b305b82aff020d6adab93c036a0405059311a4c20caaa08a97337967410841b1ff241eb0465e5dce16b49bc04d392c56a11871c420a68cb8d2c3b7198a28271c0ef23ad1d4376d4e171a5c32b05f53af22bc7933481deba15a30198f3d673e8782b9a18b35349debab5a218472c0895a0a8b588626e306baac7539738cc3c759973391b5e5a5b5a5e65f0cd3511a46d9006629cafa520edc8002fc1b21841caa32dd7942f0454c6ac66bc21e2c2154b011d8a8cb1a343090b7f982c682487b5d67600e584649a5e2257c3cb53c7fa0533fe00f1c546162d7ba4643479b267871d4c7080f11326a5e8d2a8624343a4d12ca5540e90b7483524a59bdea015304f5dffa1d1acfda2f1d6da39451a08d24c58a3cfcd28f214881cae4b4b481831251655c49d4fb784084c11abcfa6e957ddf51292c088d5b644956c21d09badd6522febaccbd25a6bad5fe2ae215113d73bdbad8ab87e744d6021fffad3bd97ecaf34a33a638c311d55509f03a812b712ae6efd3a0a3e221e27106cc64eec3477a2075211d6e50e716b1b54548d395545cebf36fd9ade2cb54e71d6e914a5aa4ecac8c200019315829cb4da8b4b4814f476d30aa17a3e3f0f9bd0f526fdb3b510bdae8598a508ea5a8b22f5dff9e9ed73b589346b2bbd456814bd51d9e757406f2d88b44c8c8a07168df3878e13da439e983c248ae994e25a78ea5f593d41994829140b8e09da7189a2f03147ba8487784719556327654d3a605e5c2cea140f4db954a1d44d97d59125f446a98b35a9a9a6fca9f107869771fe08e9b27c000304cc922f6fae500949b7d92c23486ff9cb365192a0eed3293b07b34a9470f468fdb64ef363d06ae5f518b6ecd48772d60c58c0cc68785a0861627d996352f6f469d4840be9d8697c6202e875ae6aeca94b29d384ba6ae5acb29e4663a0816a8750e2966b82a4341d468c27a3cf63d3b8a3defa5295309eb4537d8c3d2b3d2d416fd4493c75277aa3378a446ff49bd86654a79d37d75967dd5231ea5f798ae7ab3e69ad4167f017a62a4b15d6d3acb59d4795ab02e2811863ec7d5538af8fd65a872ba6769a6749e824017b5a2e09d7d3be2f414358611886426212aa5c12224980d45c921a4343434393a8168175cad02727839ecf8ba887ea1aac23e8f446fb6dbf82f51a59bfdfbdcd29610aeffac40ad29e6bf57ea8d6ec39a5e352cda17b7568d47e658240dddb4f743fd11ff23a346efa61754b43f8a69e816fed1978217c6b175ee8d4bdd1487b752c8116d9a767af734e604adc130b18ae08e1736c0a517d661f273025e6f129035aebb86b0de1852bb237d1d1bb9004f0b38ffb041da600c7c28b5f6f173c9df38edb7edee2571a05e579a3d6b7a8af3de78935ab4c10b2d7fd44bdd1a9fe9eaf97a80d4908f2ec929aa0f99e581e57c7a07be39e587e52a7e3a62ee45bbb50383ed5a021f73c9f9b56fb2109f7a70755991f64cfe18a20f71cdba6d36ca05b211fb2899e6dd8b188e62cf21d3acdf790d3888ac2ce893c74a2d148fb90630fb2c99f572608d9b173b0833c1c1a9f82c6a70a8ae2b8851c6fa1f1a97eaee18ae94d4124803feed0419f58f241cf66bb8b5fdb5cf0dd9509c29e9ee7f9e75b7be85bba790c8ed93ddf737caa53eb8dc2779e6d5d37b6f83e8ff3cafc000f51221f5f05ab077aba56d7d5fb3cf0033bcff3ce0bc37bf7f40c4e0faa6fdf3efe7ca9dee99984fafb73a7fa7704ff86885dfeb4894de116b3ba0e1ddb5a3435791f7a33f4fcf33cb4793ec1e9a1d660ede66f86d5f85dcbe1e2943dbd334c91b35f8dc5eb5fb661bfb6164dd8b3ade97a9e1737554ffa7c7cf245eda9a7a0f64dd5adfc6eedadbdf28e1c2954d44899ea71c6d4d9f820ec89993f58a8d800032619aac02368eb28e7568cfb7471c4b84a4a39f4c429e99902a40a52133b77fe691ba87fcabe05f51c750a90de5220a017143429018b13e70a170b344c287feac4204315203c31901128863f59a8ac80660725e0560a63a254d9f364eb8792e90405f685175255664daa5c90d3c31e2d908c8cf3e38c90b1295f479cd839d266ec460e2d4c59994fa47088f1b30447952271be3049972888a3bf320e3ee24c89d344c7d0e5344884d23c095a12bbb48499ba694324b7a122caaee790363f709b166c1c1f34ce6210ea2096a9617150bf98e4ca0219aeb690ec114bd345a66933a5accc88121963f688810c2086cd19a13843990d121aa4dc5803268f169bab2036563640e175c707191e806830c294df34b16246ab051cdc84f1f2e3b1c1116049c45e634160760dc68bcde725a647609133ceae412f5e4d6a5e608ae2d078223c9452fa6589c554ba3cb8c95a02c4813954349254c9708607016a8079adf0553675c544b39e7a59e50edf097a79b96f4f93e2c858f334ce8ca7aec1feb0e9d2a08ca8734023ea9739301e34589d4ea4d50a70458b06189ef430860b5bd3b507abcc0b0e2336ac31e3ad690302ad26ae1993bbc8804a33c49c73d79acf5d724251ac79d1cb1cd80dbf6f728a72d0462f736050767c4bb7ab955e2e717c9903e35162c94cac23b0584a23822f7370c87e8b4b5da2d0cb1c1c390f2707a41add062f7370b2ae9dab35006b2248cbb984121c18f22ca194940426c11972455d6912483b82a3e3375256902f0b0485e489a4d96900d644909673ce7068641ad28d268235574a026947447c7e2365f9a8f3d98fea1b304f3cf85993224e2ce9db05a08654e9ad1d21d56a47f46683a5475eab657c25e75cd339bf81928f92fc88de26d2d65fabf92d8397b937437e27e11f575bafb5d28b974680c546d51419729c60f11102048b852b62669801ec12476b118d60639173ce397bedeb735603e633166f95bed971cf782f736f64746539e79c412e6aaa3c106974ac846abd386b3a561115830290269cdea8f7811dd87d43de06dd38af8bf86af4d2626dc51298628cf153e9fc71e206b1e7792fd6d835f6268d47797b2c183ba5483f35d64613bbf6717a1d299edbdd9fd4fadbbb2d765aeb74c675dce0edba7a711ec1fbdb4a13f64e4983aa8f1257f9805823e6973938591e07f1beccc1a9a297c49739385679260fbf65d696a75772f05861420390373030d11e6e48397bc105247f5860a25ea39e64f69538a28935345867b6bc0c572c01ca39e79c73ce39ff8c115484d6e0652e071b72c0fa7deba25a325b0a623a9163e4c8e901863d535c64bc6ce909e3430b65d4a029036a9178c2a8c9ba6283061093a4f2878f0f328e889df960327bc18f1b1264bd307330cb578f800f605fbd845a3fdbee5cfaa7e9a8852489ea1d8ca7fa4dd7ad3be5cf9f87b62d7ae8d30603f4210fb2ed220ff28fc8b5779dcfce67e75377362de49e775d0cfd5aa8f33c3d9bbace84271b14bd69273dbe9024aa3f699fa309249830843eec11619b1111eeb0f7549fc8415b13e8423409d0c6a6ceb5f7158df9bf26ec446eb1b358ca61c9571f21c693518b2f1a9b9c62e8efc615bc7e619bb3a8eb5ccfa9bbd1a97e51917ba309f456a12a0a5e98406f9504f4563d9fa16f4907bb3f917f5e57e4d98c8aa6f6ba16fe44638cea49407743a3538e5147271d6e2118d8bff1a9fe75ea3c047a53a2b75aa77ffe855a7f3e9da25e8fc861c8bf90b91c807c7513a889493b772a2149e86e3c4aa2b75af3af82d39da424314292a83ed62489ea9fcb10bce9a16eba910a2c0fd6d0d98cbc2b9d0da462e56538b3d65a8356de08acf22095396e2c341f8bb825570426d11481608cb1b618d7257300613678a183e44a923624905326c7150d73ac1c01a7ac21627455eb15b54b26a66bbaacec92c964d62b6c27879525787280c9314649b3278d9d1db4b8482162a5ae045292874798183d49641d1dead4d9e27525861f585588a43403b4c29337679a24d941c998297cb6bea86c888151d6e036a03fa050d1823245650e1316e285479217c07a80728309fb1baf1588987ce3bdaeef755aede8de7b2fa8e78e1d55bcea1c77238d8ab06e0160858e1aaa355c655e4cf748d80e7002e9f0430f304c17cae7ba7cfcbd178f351acd6b9789f18d063b2dad7684c7fd02e931fe1a22c6a3a6378cd1ac79ec483f4394bf2dbd12f33527ae979648529ad2592fa1647d2759cf2368adb55e73f2b6091d5391e8cd8b191dbf916c0e6baf2a7d99333305e7e35a62e99a2a4be42768cce68bb14da437f00c0f332f58fbe4add772678ebcb53e62dc2f94c6642eaa17f132c7e5e5f5cb1c570dbf9128d8c76444ec68094a2fb6bc5022b2ba8185174a5f93ca2abd041cc07ee865aeccd8cb708588bd96e322f2d89146d06c03b16b3cee174a7fc77189cbc421ddaadcbaf632c725e3c397391cfa3c65f3390a442a07073d4fc110d4aa6b10a989a7fad5f553fd161387c33d553b3ecdaf6da6a472ebafdaa657db0c2320456f7c12c92add4a63f21c99c2f1c68612a66c45c74f992c1e58acd6a45163d37c0940eb59f2fbd6c5359da4d902a621f3e51c449bf8a0b583061eac28199022839f157252d40001d5a4c161d3ec2882e1062081c4acf1fa028629fb41534391293a4aceb400a6d9d3fd113bf0654ecf91df375d23ecba10ac540f8fdfb7ae2e3d38308f1faf52dbcb5c1e3679c0c81246e2114dace59c33025e587315654ac8971ea6ac8217d4d8a9e2e7860f664cb9eb73d792dc2d8935cf53e5ea5ae9c5d9311efa2cd2f092191b6ec0e325aa11837e898c28b47446046b6012483bc23375071095ef0bfe776749883b53b41722be34aa2e7377b2be3a1da3b90e5364ff30088220087a8807c13b4b6abd17bcd8439bd45f0ffb52b577a8ac7ff3fbecd4c01ddc832e45a1977e6f37261622c45f0fb145c51eb48516b8919964156104bacc8d653de8799e05c10e2b0cbb30fc40a3d043ffc2cfbfd9755d1876dad321f6cf9647287aa33237b6e4c1a77a676b6c88d07ff78bf61f06afcd862ab2e3f1fb20e2641a7a31ef0e9ea1a75d1f24f48c692f7377be92bc0b2c9d9d9d05628a92f272767676c624243f8828e441bf659f5b6dfaa72de8bdb12142503802fd6e81fc20e213ed41bf651f221085b3b3df289c9dbd0e0a1a1afaeb4378c23004691fe2ced4cbdc9d25ff75fe81200882e068e47913e8d33dd0a783a14b5ddb8692b74afdb53dd5a5aabf30c537439bd11c676e6ceb656e6cecbf8f46fbebb43b5f9eae223c0fab5b40d70909fd75a1b1215aeb3085d36421fffa8ad09bae077d18f4d783fe862e7377b65eea67b56d28595deabf0e8adebaf14992c0be9f6cee0ed53f4585f488062cb93a5c58267529bd0a16a552d27ba9956e6d535a69edc8aca7ea270849260d8efa4cdcba3af5dab536c9242d08ce142005451a13e842fb738c3dc79e730ef2a671023a44a316a1a4b7d0ab073975a9076d5b7f68dbf641ed1d76a9ef26be656180ca3e69eea412d404037e86011afb9975224901f20492924841f8a7bf0448dc602d1b0973e7851e49b44c61b2524cd71f205882f823c50c9345f3d65a3ba3ca243b66fccc57d776c4e89c1d313faf924fbea62636f5ea93d29748f486386a1bcd0aa97c1a62ada044016392bd53fe1844a150fd300606c53e06182451c098b87712e1a7531ceec31622eea7832de27c76b2e43c01ba746f9e00c710a8093d4f0cb9e8db13f24d14e49b83d0f7f8d2e53c01fa2ec00f8d28a688eaa2270a11d58238f07094b500bf959294e607754ba45f763b582f73307072e265ae4e9fff2ac882de4608572cd1db13d4db40865493286a1db0579a2084b034028b089460010c90e0854431bf3a075c58187e3f01c1752a68bd9ef2382b4b942b2a1588a8f043051c2ac878bd53d893829b33299049a14b0a555270f23a8521548fd3447149f27a471541fa1d3585e4310a6f5ed0f582252fa0c2592ee852e371590caebcc67a0da4cf635c1fddd502abd77e627879ddf5ded763253190c470a12b3b2177c28ed76efe7b51d47475022b19809970c50459362853822b24b0ea00ec71087698c84ae195a28be8770aad145204f07b843aaf8ffc1ee1cd6f26b10c7e33e1c606f0fbc51e8b03bafe2b7b1916f0fb714b655e7f59d22242d77b4b4d8a7e2f552df958d2b1847b0df6da8b99ac2b8fbd6491f2c243ca0b8e07dc630ac8f373ed88bdeef2d5258d5417335cdeebb2a58bec351831b13045c29c79ace5644b1aa92d2cbceef358abecb118205e4f3d76f29e18b1f7b4b8f05ac76fa91aa868e0e1c6ecf1d76fa924b8d7758bac879f18708899d5e97af22585e44a0ed8964292e375eeb7140c68827e4b1dd923750477fb2d6544ec00bfa58c449175705959bfa58a6499399202968fd768ca1e7f81bdd7c6ea770a4b703e7e47f9c0edc80347eb77d48e2f3cbfa376e8c0ed90434ef83b2ac757548e2d3f5939bae8f91d9543cbeb3cbfa3a69ebcf61d6503cbc4efa81a7ba26a0089a241f6daa2f16af07a4f86d747ccf03ca601e4358edf513474c83803e4e3b14716a8880c3a1cfc8e92e125109dc751328a90f81d25e30792c75138311bde499e9df98112855352cfc4a27046a2702fa040765680df2890fd8002d99924501ee76005852f31af69d0f2384e12fc1b0a4c0c9bdf506e70647e43b569c204c963385f6d5e6fa82f355f615ebbdc505f5b7ed03de079fd1b8a8d0e6cc4b0c96273c5eb37141b286e6c5063a5a6069e3269b0d200f1c0cf06bfa1babe5e6fa82e2e09f80dd535c501bfa1bc74e1de330244c3bc3655deab54a2bc760955150391d7bea1aa8480f579cf6c4355e1a8c20df950c3ee6fa824705e6fa8246c5efb864282f380ccbb6070e1f5863a82833242d6fd863292f59a4ed7e3d1499e9d057aef37d41490d71a6bea8b0b78bcfe70844e4432fe09bbf81e8f1b056d5efb0a1465afc315f4ebced3308593e36c30008c0e191f0673a822cf01a2224709a3b5d659e7ac3710b4a1aac0721426394a8ed7ce03143451a6a05881d202a00ce54c7e02273ff9f2da9b8cc94cb6bcf6accc24c9142c96890d4cb4e42740e428605238e91cba187a3c6e147230e8baaeebbaba43d08eaa51c332e952fdd8d085413b2ac79c144e349c8d7fc22e881e8f3b6a0759f573849e21a3d3d5791417b4a5a870f46bac0202f43a872b649c1e5ebb0e55c83831bcf6373cb0018b83c48bc70d78a4b2b46103e775a7bb4e775a6bdd7d20684b6d317bed63968431034586c9e18910b4a5ba049261a6b468c82f4b5e7bb714c6eb3acff33cafeb3c1582b694171e9c42fc13f6f93874611f8ffbafbecffb3ccffb1c10b45b00210217303274b8c266a6c295789de7755e0b827608baac00008f0ea8a838a262f46683acdad6d1140d846410aaa0e540f00b571485852018daa0dd648616a74606006032684309143d1e378c2cd00b57e82caffd933768b7e0c96bf0fb3ef0036d411b0ac777e3b50d25c0c1e371ab20f6b9ac2867c2c66b08c8b0b3d71ee2713452a13d867eecf2f1a88317907fa25bce0fb6d4410cd83fcdbf9a7226157211a62727e0f145d561638a92d7fec2057ce2f490e5b5ebd7fe655ba8426ac170926438dc3f11bde7b53e81ef91b082ce06c34984a79244f627fc1d85d1f9137e1240f0dac983d7ded99c44f829496497528ec8d3b1ad1d45c01d255a6bad8ec33d5d5bddd439e7a4b3da5a3b9a3e3e852de6c4c152244bbfc511163e74906ccdea9fae6f78195f5bde8b6d94527a35bde9274b3647c8fbcb9c1cac1a9ff432a7439acfc9a1d2f3e087f03cf69a4e955fc0cbdc1cb3dc1caebfbdcccdb19a03f6df4f9f5888fc033d073d9f1a64979ec7ed91f07d1ec3704590674fbe97e7f47c8e65ff023fc890c5e00b0efbc1e59209e065d88f177e4c4d9748b613e64f395aff2c25929444ec9fccb556dc1671838ff10a5fa8be3c9649755a70298eb89392ea89e99d0e410c3e0637f8ef82af45dc490b9027a4c4409119a6643c96661e4b318f1bd0f5bbc4cd524c4a2941078832cc47d96b906aa7f485d7e5ec7997a2f3ebc9b1eff0180d2530b387aea586fc0e1a5fc8b1d7a38efaebdf0c33fdbe3dc72d356ddeb8af7763e7d86b676b9a5effeb7cdbceb653786fdc137bf7d9d6347dbe67ff62a61de216d274be69b313bbd6e318637e77edd49a9a982ae628af910bbb5578ebf2e9fc8cefa475c8933d1fa57ae64c18286ec8a64031c254e73ca90a12e4861c3a5861aa77bed6fa64e206c51a480bf341a386f5f8c10bebf1c3cf4b2550a040d54da0404881e8136d534229843a62e7c500671ebf0cebb115e4e3a2d55ecf96df25fe8e685f86f5a8a1761bd123078fb3dfb719b6e4aa16a4af8328f2804714c3e488425d7644502b8f08628181487b19c6c3eac556f88df47344a297613c70483bca6aad15e065d88eb01d57bf6b3084e550a233a2546badb5dd0e176610a95ede935c05872fc376e4f88d946575787bba443dc2120b13a68cc192a78d0b77c6ec50e54b9f3e38305b46c6f4843f74b054cb051d79adb654ddd00007ce973b586cf862b25f9a349991838c1f5963a09d329e9737020b99b554bbb68996fca53baa9548d24c7e2775612d2bf09bf1d66b2cbc1d020abd0cd351c45a19400ef0322c879e07c1bedb34fddaac1cf168ddef3e7a3f13add7da483b727a934c37c4ea5bcb234ba33759f362a2c13483a946980c5c18ce870b9549460ecb21f6265e86e908d351d6c5cc47991fb32f57401824a02c50142c6153d630994bea0d2c3ca567aa8f94f7ce38f25749d7754ffee20ef0f881ca0d5376e4c891b27105032739907ce9b002ebd0d8f2eebdf7de1b65a0be778618d0f3eec57ba80d89316e226b94e51c5939b684e8bdf7e220a322e40770945111f2b716417d2ff6bc7bc3a670447e362713ee0336b05411f2bb0ee330195530938c370f049c216ba0e4c9a14992902d2566fe98c969d1e90a7a1986c35175556beb7f25653da2071b0255053172068c29f3704636a30e12253a9630e5396fb6951f0d4d046b2ef43277c6e737d2191c7be6cc2b831ebccc9d59395b52b16b7a336ae15d8791f4777412fa3b62fc5d22c6de6252b579eb3092de8e31ec5f7aed7c9ac6ca2f4868ef05c337da05a459a3c68c193366cc28bd1924332c80c23c9b1f73f65b663d994041e8f70a822b5058a02d21ebda46ab592a87dc21dd963744a2a8687e5b29bf3d2bc53af1a8ee108f8e415d9204751752c42d5255b06af129104982ceba45f0360b0252c4e94254f48c44da1dc83929add5da7b31fe36220c3bc7123a2889dea8cfaeacec6b48f4445215d195ed1175accdd97559ba2c2fb1fc2ec29afae2248969b12409ecb4082b5ce1c1d7f1684c92a0fe65c4e9bb08eb8bb08ab8745868b508eb6915ac222c124575ea6f4708e020ee3bf5de1400bec3224974a08104c252e30a42ebabd6a30d2926272cf0e0698d0b01a9f73c3a0bf9743c81fa74a613a653b18a784019516cb27e821d59e041cd2252a948f192c105342d30dd3d5df854c15569734307b31fa4981f57b4906cf1ba534305a8b8a074edb0c299b2aac54caccb9e915c5c80bc5064cb912a3a4c174f192d3ca8e1c3666c0d28874f104544342f5c9989414f102a817608c1063342ecc050a58308d3a5fa6be6e66f103986d0a8913a51c3e270b81ad76b3c997ee3c644639e51f7802c9c73c927258adb798f5dea25a673031f003e4b87bc7491834fa4276a3ca97123c9fa0d67a231cf989e58eb522ff5b2022e4514d5a5074914fa9f4e90fa27a7fcf3eca5e62c41e8bb8214c9863749c3319f4c12bf296d5bdab972f24f948b28eb0c5dba1c7be3e647d8197bb36547d8196147d6c9c2e39f2a9d20b43aa0c3148ef725dd924e10b31d80ab5fc1d14b7f2ee21ee57c0a8ebee985e5fae9cf458431e27e8e29b05c7482a8f21c9c793a41589190c7aba92426d0e7d8249d83332f43171c9c79393ad5b333f00a1ce70411f24f95ac4cecc1f4e4842cf328272e044942bab4cd157848a437ff4ad01392a984f5a30982755bf672dc51afbddaeaad9150c7a3ea73d4f303155b89de686e929e4723fbc7cd6bb00435915deea79a6b47f446cbcadebed6a39e1f9430523147717e40fde861103da379ea54bebc747e408fe88d8af446c315527bb57a92fd88ec14bf0e7be993e61002d2475013497254a2371a0cfb2392a8897a0274ea214814d7a9eb09c2e71e681b4145e4ce3dd7dabbb1e6ec799d2ddbb6f058c28684443d2a82b942d6b18dfb646dede8c87f5e1769b49f5aa2e8b46f307b67037f4e3deeecf84312eedf27fb17df51ce0fd07c723a1165ae6ceaadd71fa6debeb5d65a6ba5b549d484910affa8a4926aeadf459c2e5fcaa74a036b1dab8bfaf56168aa1f3cad6efdb32109f7ed28e707d2650cfdb54eaf93e61dbaea7b2fceda666b01759ad66bad1e33bef2b64469dc7b27e865dd792ed21bf53c6fa4d11bedc6ada5add9b7e03fddb716e752def0810521a920515cb8b346861e1be6a8a085235aa03831ab22130b42e4838e597dd639e5a434be1588568a6bfa74bd005ee6fad4f9b01ae8b523a4a4b903509bee4b40d4a52dd1beccf5c1a10f99af7e547346da629f3137f0db3e377861a3668610015ee6fa1079fc32d787851f882a1ea10a8097b91e7cf8a255345945b5d21eaef46085e693481be3a88c819bb749ffaa5787d0aa97d4c84bcac24b979bee78598bfc752638e2be547fb3a488eb57a94bd2b7ecb866e7a5ba3ed7887b0ec99a69449965c78ca98d38afdf2b790203b74a9af0fc5e2f7f6f0d37ca5fbf54d7eba5fa4b55455cbfe1056fadb99bdf936a889009c224223fb87e6596d24e4abaddb67b6d8e46fe7a9d422489eb4b5402674423a3ead54312c6a7e3e4426f770ea122aee7a4bfb68c78b55fa7d34491f9c1753c4f487af7dcfaebfb0003f80b80bf19fc7539c520a1396eafeddaad5473c8fce0ea10a9635c47bb1c15e5f3834f8d49e6c3d80d53dc7b7126734356c6e5ef14be76718114bf17810271baccf171f249e733f61be4e3e6251fad9f0e3e2094126bce39ede5c0855aebc564388c330f643cb8c95d723c6ce57818e2e4911cc9edc9edc9f190dbc325b78787596e073d63628f24b70358f64a0328771a5c914117755d9dc7a8248c56a6494b995244020000049315002028140c8704e270382890d4309e3e14800b77ae406a5016c8839120875110444110638c31c41043883180288390515501c2494ba07208d165883d22fe1e93b19aec1222563fe787013e02bce51c4b739cc4ee393097ec69e34a2722690c4e3fcac024b5ee55a9ea4cad89172d7fbea459f51b7071ef4ba68541f8b7fc65ae5c3e0c7c2000f908d021c242fb3cc67b2802007f0a7141e16583be7ae75454737d86a3b0cf52ea4840d38ee46890f8a8afbe7f582347477e0ab7adf394d3c6fa0721536408e981073b45e9c607b32ffa2148c28d7edfae401a38adfd74ea821f1cebbf4a1bc49670a56476eb5c32d2d65569a2027661066fd58c88668d787298e3a02c12346bdd18cb5a45fe107ff7730cf9f9212a94ebfdbfcaf57bdd26e9d8738aec5dfd352a19539cc859b810d1c007fb3f23fee8c83f9d06bf73372171445781053b02c2b12efbbc84fbafd791aa8399dde51015de5be7c75f9f1ead49d0d2d99d971ba02b60dc4d21e44137d122bdb975fec9a890878d1bf8b120170ddd4428e9d0588605d6c74fb088448815b649b530eb9675139123c65ccdd63d4b7b2e3f71e53e68e25552d5f5fdb0dc9a5466ea0947eb7c4d19e2395645aa8302628a9eb333832db7259cb8f4d9ed3c700a3f17811c00edddaf19e94bcabe62673d750e15bc2880c703dee546ad90086a516d1d2a914e0b1063d2d0432d56eb88fff2549e1d9b64070c55c86b1a9eb2bc4337e3d0e50c12c4161edd5c2e02d1029c5fcabd05418ce57c4437fd453b7d065cd700820cfef84d5e206219fd384249846244b4733826cb4e905d1c3052b3d608418dca93d0fafdbcc4b6603a404611ea375489e58c8b01163c388e54126df927b791623f738e9a6cf6709ab6ffbe95939b5ecd9ba3d08b399d6daa92dd268fe48f72fa835306262ed2b193ffc0cc0adb1719d45a1244bfee1820fb8b04de07d5eb520b68e99a992a90ceb62caf9193b33cb40c1d29c25ad6ae50cfc5ec4326bdf93f6fbe66c46583bf9a85e8ea9970b9b6858e7ac243dca26c26ea6ad93c94fa9f7bf55b60b97201e517296191d89ecf57b4336a445c478abb6b39f72e264d425f900d16d684c22259919e79dee99bc056f40cacc398a507372ee1b58db21d52fdf47030720ce5c70bc2c9c540cae659ad7e21955a3ce973acec7e305ad3a9f90447b6576f20bb46a13406cbda4d2dd69642979fa357a884f4e3008972fc6751de57bf0121dde500016e5bdd1f9afdec690bebd440f5f408d4372748c85d7fae047ec7c8e273071fd29b40b4e0b8d7272a009091859bb6ebd4b89d2af78dae20ac5cc480960eaefc02e61720be08dc0be8faad35322eba824373991d212e469f9ac59563c7fbd2d2ac1debae4abcac343bb0681c35a6adc98694c9e8a066e42214af561fc6003b3ec9d7241dda2a30c7deefdc06eddf78cda99a21cf1e075aff2fec2ed759a19d21f22f80c9075e8ad3f055734bf36dfd9a5151f808a846a05c2f4d439c2ef2a5513cb696e6e3f0877a49821949fb548138089c231286671583968815b0bb2f2a606bad625fcacd85306166e60053df0b86b5911558e113320cd5e7e522cabef9bc2e8cb5b788da04a43fb8fd257521bd81ce142cf8dc80fc0905176490667d765f923a154809cf256a0af988c36b16d91cdcec77dbd3a82c9d19d509ce2eeacde049b7a4ff74a8fe3309d116a9d44078ba835efdbfb164f9cede16a50ad7afb89d823b59f7096f071588a60a41144824fafc87a4db855752c0dfe577f32111c45ae2a48d03b5ec0a9278c9149d0268c4881b8d3337ee9d302d3222fa469791452e1619639f60fe6258443985445e08e22268eb07157ee7db876f115b5ac04e6c0956fa46afb9ee5363223aaa2973d2f26a26f53bdf88863e79642dd5c85624202e4d92d38b277eefa554fe32920c4c59ea4c304c40cbda942c57e4c4c966d475c1c1b76b569826b89f9ce2e47d533c9c17de28f15b52f50e701028f97b5ba6c1c5cd42a30cca675b77761f50eda6a3344f8155e1a5101e54f80f2557a2465fbcea985f2eb9ede7789aaa2055e44bec5135d1d5d96037a60442cd70e7084984533a246027c4c688b16f7acfc85b818add18200ea8a55affcb645051a06f26bc04d0453691a1a61a0521d2028992dd94076a8445819c89ceecf6dfab18c255d83b8146b7f3ccd6b6944cb14e2d62671feae34726891b8d1cf36e0440e9f951320e2b58570cd7df084a57269f52f171114462d6fa01bb4924126ff9931c49da91d483cd8ecd09dec2670f065ef5418a9fb7dc893ce73c404e324612e38602b197635af5d71823e0ca9dd453c40393ea0056f88e6400729088a55861144fe1e50e2f2e9eb4392e3b1107a81f0732aedaae48524c4b6f7f81ec393ebacfc14dc70b5da3942f894bf5212226ea64b9517aed347ad7e18f8a6eabb75658c5a2d1332fac8e1181d7d2969a692d99dc0f4e858780924c2621095e7348c02d5bb69cfc386b9dbc8e4bd4abd80764185581e46910c9a60c0d46e5c6a402204dd796307128ec380ae7885f0de5bb6c4ee0bd0008d1887a01a55594925b440b6f1ba327544dadcddac671d603226f1f1fd999db46146ec97052e1621da152015a7409126b833033bd5f2c4c48c6db5c1a92a997daf77249b12b1bd648293e60a0df6f82e9597de9e01b3a0e51af226f0cb03ec2c9162a59eb3b4de967c5550013377870ed490217a5dbb44b36049c2530eb4e2f84ad949e0b89402f7039a1d9528afa3e31c202162fe928bc448d15339217aae736267045fb04b927d6d88a71ef928565b1975094ce98f21840eb93c393dc9b70703cae3883065b781c40d025bc4a690d0e606d3d2cbccb792d3495b066dc09d65c2e641988e6928989a2c632a4d314202fc614cee9baad40819a12dc2b49e319f566b04578eb9359883e53aafa336625163c2831e10f505001dc1d11b5fe265fcb88fc96d53d7142e34e868e1ff4c7ace864a08cc21e04901c88c364494f9bc68d62b819cba16f90100771e2da4c6c3ad5c83760b6f6e603abb9ec400734e297a1b4759a6ac414cec094c97dea516c6e0c8915406f86c6b0cf54049dfe214a3e95a4dc01690c87be84b83fee5dbe117ca5708cc528066ce2b331d2f1264b53d6941fc0669c074c8b534dbeb96d31c3491271026c2e44a6c878b0a103534ad2515c3c9f126cab5cee02af8823ff7f60006da28ac5b11b978146031e3bdcb2f8c2a4dd94c70d99095f516331f9a3215c2fbd0832aa65ff97c0e2adae436f2832e938d8bbbc1f9bb1a55d9dc472182f26fbd63770490eb65c4df47b106df7a88dedc62115174b25454337b9d7555480a67903c26d0b721b90db82dc06e46fcbda13ac1c283c04e9a45daf3c6a7a7616ef36214a5bf62d74a21f326a481bdbaa7de02a03cf837f7386216f3473247b1b2751b7895734ef285f297ca0cf81ddef21287641dd4c0528f48d2e8bb1e77319f22294f4576ecf86696876fa8c72630bd2334cc313b4871c4e41d0204d2aabb5ee804177b6926af408e40216eabec35e91d48b9a714cbd80011afd66e66b063e01e6cc01dcb9ff44b0af694033f64e50c0b60f0623de1f0b81db1cb668962c5b05a799eb6435f1447670419654c8ece90f8927cefe41175e06220357ce751ad43b69c94100c630751523ec7e3fbd2e227415556271894928941433c012160098353444955ced73acfc88c82bd9231e529020226e36c6d4b49ec896d0b64e931268bba12e908b4fc7f834c3d8763b91e3fe3475b9ae8f272f53f9413c2626600047c4867beb7be5df18a068e8e9d33ee9cfa856323cfb6029797d884d25464e19c60ca9c09f26d759271ff826510328e3a597c8507996c1080ea2544013eb63e0bfa8445913338532ed296fb3cf3340e550abe536d2390b047105a1ebf40d765d1012db039fccab64c74ea0255e5b338c814557d151a884138b39ba2d7b844f3c444518ceafad89e5a9c7478b4240725a547576813d48fe519c1400ec4e7ba70d9e8ac419eae4db850432f13f28a413793e90ecc4fb0b016ace9fa8cd72c45d8a5d498063cbd211e1b5a94647ad4750c22f773d220ade3674c652ad2f5d5c240c89cbe4367622009bec1307650edb7619a210efed0fce96da6756da8684b87f5936b682ae05bc4c515413723b01a203bd3af67ec53322e9be53a0b633b27ecbb21ee7f33ce0e844e56c193b3835cb71fb443e9491b74a42e0e57362b82b7472a8e165799591aa6f2951dba3ff3aaf10291a21852ae20b28a738b62584514c270d4541a74b0ce3250d29e4674a18557618d3cdf63264a3aef9141812a1e1e47ee98398533d5e78d48d8cd811e7edf6d16f0468d997e73b326fadcd96ff0d723534aba78adcb0ddf389c5f4809fc2aa52380e1007587720e3fbc8307c99fc3f008cc6f5e10ecaec261245d14055af4a172844a99f0ffc7e738ebe2a2d9d40a3f9267167440a49b06a9c3d5219d60c4539e09bf3ee8def9ed819e67a0668bc556883aacfeefccccd741c7bf0fa375772a1224a16aeecbaf2bd7e7751a48ca0f190c173a8379675a03905bf7a6f01e6c19436c4c3444e64c9937212cbf4e925270aef003d28fe093b89c82a64ea961c30365bf661451f578c02ee60cf739097728c161d3dd8eee1b83dd1c0173ac2ab21aeec0991a98e952e9ddd84334824f6a3428266bc95dc843b357d4e49a5392e60b7ca8279c0a8df9b964552623f4be4f8bb856b35b834b4ee712ee91662dcf31d8d888dfe2d17c61404a36f56c59e560405d6177dd300ed3a43939c12f5a52d967b96b0e5bd3c4231cc57f4ebf794662b083499f8adbe6d80739fa752d3489b9d692be844009d448d4642492b3810a384895c9899225766017e86277e5767394f14017aef7e1294d79ff06111fe350a1d6bee05af43e05f166d3fe3f33433c7bfb57d77e373e313241a79d2cc1120bc302ca4f4dd805f1e38977f3d435b6b0a4f34c9386e70fe179b5234dc547d932203453470065651c88df58ffe8e14f734d0d1d045eb1f954946b412c87eee6f0935ac5acf1457137e000c9bf04f83135325538e6a9064b0551fc24a99c048b838e472087f3004c0a7dc62e11db8c73fbc904895a39c1a134e5cada20b08fa0af9c3260b8893b6c8048c41a8fef3980d5894f857e82c4779ee7b0ada82dce46431d722f6f747bae2a007fac5407fdd3ac07a4ff1360f40fba577f27dcf2a8472d1fa77f3edb9b55a631756ce7e730d30eb5c5e4ed87e0b1b0c35dbe39784432d4a7a0c483f3a15aa2444cfeafdfdabfaec1585a12ac08f9523a56514bbeadcb9e793a413e21d97485864b608e29f78d81bf316694bb3ea76439bc885bc05e415035aab2b6bfef3c01bff7508225db979843b1a022c7eafec98b26e1b920a706b618016f769fb0cf0e13bd351f246481c00ce0c07c570f2a1698e0429be578ad0f028cbab8ad9e1745040d30bb04c7c0e78be01be8d55acc23e8c3aca6e58c1fd4a8c60a0bd9aee9d5024c16490bed2e01c7ca717ba5f1b03f9d1a5b80268568813370ef4989ab5ffaa9f2ae9aa11a1a9c13e28a4e109ca098c15662514f3801f7ad13ae983334b7490fe7d116a42f538b9dde412841e5799cc68c4ac6cf290660022c828360bee9c6fbdc973bd860ea097aeed9f9ab7efd01ee69a3ce42e8623ded1eb936e0879b475d2e71c6d185e91a2e49cd4850e61f79f68fdd4e1c9ac034ae601272c36c7ec05a6c1bd0dcd0e4f46e100255b9229b7b89584d8dbe648aa0bd7e109f8c76d2ee90dd8e0b8eb93295c7104de950b4fd98f7756820dbcb84fdf62fdbf14f9758072d076d009534c42ac01534f773b625ee613a755f365044c0ce00764dc9eb444c75bdc59968fc930f34bbac6c8f2157ba817b9bd6ac86da1cde4bdb22893f4225def01270f199378b40c22bf79ecf37c261d68212dd7d5303f07882faa2c8e8bfc84379adcb1d919f2f05711cc5a8b65b828a54b307ef298b656fb51d97ef49779c64425257c25de3c8a48bcd2eb4541092f578296344271e35d4d6ffc58d039a56584abf3047b4f3182bb837e225866001f26aab47f8aaf786ab4f1e090ef19d9355f1a712421891428b77dfcb613f1f0faced688a4eb0e4c618b503a4aec3b27b602f24098a883a20f78ecf9faeae10e601c6d316041867ca084cd219912d883df9651bf1596f7b195ce1f554613fc00273d809454869f6fdbdf31051ed63300497efc40c90522894689bed2e13a30d528b51ec5f04b15c91de58a643a1fdf2dc5c0c02826162097153123d6720cd9a11a466e55d66274075c6c5c56e02962f2c1ec5fd3937496d492bdadeb2dcc3df27170f178523a6c1c4630166b87896ce8f0604b3dc2a25482d4ae0d17d92a171f0b1dfe98b60ec88301058455e4fcf54beb875c5d306e89baaa341a325701012df9e62aacab535f71b3e6f612cfdfd0feaa4d60f61e852d50af5784836a57dc6f21e1a0561c9e47506b612058a733859eb01733db4e2bcf43b687f9dc824eecb2427b09f90a88a2662cc1037a057d176ce2bda1069a6d8c6b17964dbcff2ff4683de40603ca65fe57ed45a3f405b7b3aae1b837dfc45d8be280c07ff6d3929acb658d09568038f0f6db3438ee266442514c7f1618d34a39b0de4a45d99ae114686b652cc9bd948b9f7f4f85c2cb014e5edad595f2caff38ff512b88ad037b4104736ed38e5fa27374ddea2412ad7d03223ae190f8ce7d6ebb49a36c5e21e3a844c977bc3621db0906936489f1df789587e521ea9c90482a86ba091654375d05ee39af980cbae52262cdd1e5d24e3c7f842d336bb427193d9035babf17adac82b7624ef19ce51dfd5a3f7668af832ed236cc6ab734cbb0c7c0f681794f2d0e6a3d9bf0691e1dbc9e340fae08eead9f83c70e3022a2b4ca51eadb6810f0873d089cf393a2a48c1c655e4d7d943f2cdbfe56e02de642ae070a8d3abbf13482ec92b155385de59f55ebc6aad3d3f1af37136f06f0cf3b2c406ab7af42e9c54e4a9733953c0d8e209f711301e418835a8d2b94a3af57373b0ab0f60037270f510887d2298f75269f245f284319dc18c0eac15004b7fc2405319769c1a56149bfb9c837f9889faa4401a3bb34d59c14aadf0387b0061e79dc50a34ca3ded9096764f711c2c5ce75b71020bb0e6add7180a2a87e05a7053dd4c5c2df8135fd800e664d8c17bd5b7697edd84eb231258f2ecd0c5d85b0a653a68ccd6fba813924c17c31103f8de0279ecb856320b6dbe00a1fed0742a7b03b1498fe991d45ba4727d47ec8057f0153c8b5db4c3cb67513cfd84ad249e542d9c8a44c4fe14f4173f98713cc473525789ebfbb9141317c6c7f38222b810342a9afb923e1338ab56fae1da4d518907f49c91d5844015954c613f511c4407c2882fc49a33b4ad5c4a3c1f9e85296f79913ea7cb77748c925147ea54073d38e763e775fe68860087c2f0daf70b9bca1800fe3371e68b6e2b113d74dd560bf42966a493b87ed970744189b313a020294f3fb2b5b8cc36e6d122014a7fad296ff9131ebecbc37a6dbcd5501104de0728ab6e858001148704666de0d54cfcea2cf25a6dc292769f9d6f56524402b376ec043a280b191dee30923107b0246860452db919524d77f4001171c32b9b0283b846265d608fd699c904c6476ccb1d18dd300cb91be0190f474efee50cb17a5fd3d399c3e18abd55551021035d88d276b68c8f4350a09d65d927d33926614e7da1c3594de52ad8c872b8d263372c1b37ad256a05d39fa504b887b653ae1737d0075ff5d0871e21895673225827631c4161cd30887090105808ac5acf3799416a36de144e9aa9582cd3c1bad1d9d54bf6c64dc2466782df4ab6a298f9d6f8c0141900aefd409fa4946b18580e5859215c170a5fc62f07859bead42e4e067b32653f67911d502294bee55fe7ce61b98f004b5074c99c4eb4604299cd615b5d8874f645c20e2c3de5405c5039fbcb9e78e85ec22ba5eea51d4411784304b9da4247df8f4db645edc75afd2cd99fe1261a93b34a74dbaaecc7142efabcd63cc3600111de2ef13a8a2206bef5b70a833f5db62a8c1da5350e57311bde96922638e9e4fecc4d9404e7dc12bb91e035caca550c93ac7cef1efedd37018de66295f3009c127152c931cc3c275d3f9021a9f37871f84570c2779de7c81c00fa9eb3bcebe0cecaa457f60af84725d50a19f16c8d66e4603e9768e20b781c49065e92dc80141242cc14c797490194a43b36648980c715b5a04cc41dbb5b57cdcfcc635f08458eae6044387f0287ab75559774151b56aa345f23b2bec0c577403e1c4639cc2249058fd3f70b6ee6af3d66ee9730a8b8e520506cc32c74559808b5c150c3995148f3bffbef61bde65b805e227d3dc94df9a956877e29c6644ece13b7157abab073e1ef319b7ee0cf92a21aa777760f8ae54c706dbe060e641f1632c3d2f2f7d748390485e20a917e926f28693e20dd3bddeb1f839481bd8af57299dc70b1ab790de43ac18ee87834fd99ecf57119250fd1d139ee8d79e1a03c256771083d65d95b30474398ba97fa64b0f7d14ee9e618a93859bd6bcc8b542461790c940073f4990fb8892933f3b59ec7d400a3e7e9a0b9dd34260f05db28b70b15b5115e763119060be4db9e739e57ae035b749560525fb3ecfa2670f0764e7b3a52cb5679c18c411c061a973fa1e16bb3a230b37ae3a2b523e65f19e4797c8b20b09ea9f1a2b9e4c477e5c762e526665ec9ca8e9ec70a1c8c9ac816fd2eb40f26dedf06693aa8bddc70b9d75e112bbb28a0343159c022036915221417397fd508551df3a8e12d6cc0195ecb11e403ca4be2c20359daed5ca39cd2697dacfbc572a118a29e5e239fbd76f18934a350933547df891e9805e4d89ad999971afd74263a6fcb3915ee2947a099af07e8d574e7fdb1641ce6cdeaec760e51b97dba7177cf0fe2fbe149059c079c1a0edefc5b053379293c41a684084c1a8192fc768515bdf4bcff7ef0ab96d3bd335a49303d75fa95505f47f8d040f13eed6a989704a0963563675d8adf5d983292bafb693551d0dce367667c5c45da7b955351b677522fb18a99872dd601176c58361fe41f622ac95949749b69123542bc11eb4b05c6b3a6547f80834bdf09e67c615ec3c68db9e35a4e7a447f99f8fe8be206c997e1319af97bdd84d84c174773c9002e20bb08e1553edab3391fd2224dd5b1ab418d0b4e96eeff326273b688dd84e18e55b165bb807256a6bc7613e973c4c6e555657773ef0462343193f0dbe096812b13bc9b18640c9fc7150ff1753a030b9d5e90d8fafba639c8cb35d889d9532539e2196e9321ec68ba274dcba11cac71936ca436bd23900f2ae25a49d01a7c11e40f9fd8df2761edc4c07607b20487f6e55310714b590cc39f0c41b0f1c92badfb5da34558504af67fa37d69af350e98d7d98e3388d672e0ec837f5dece2871d612b206d12972bec76e41bec94dab83de77baee6f03623ccb45179e856d10a4a9d7f2f620e3e462114159ab17dc90d8be2a62a1884378728034e1fcf99da8b7b14a01a5fb2fc395a210ecebc70925b08f1d8d8f133ff2928de535a41f0176373f0839774325f6ce46acf401c70f6ced7374101cb0149868ca344cee724cefaf4b607b4e2f8a338f7e904478e008d78947cf075c788bd11c1b930b01e89bf8d712f43bfd51ef67960a61015339481770a8ae0109b725ef64c27e2443630a4e3207a9f4725269236580fdc0db570851d3fc2ea031e0aafba591d42e0cfdae564e7f570bb43e8eab454e3fe2fda046833e24bfcc205cef0126dba8703141c5ad8e158af559e99a5c071028826d186294cd14950454e9ae0405204a311ee0d4e4adab1e6a118888f86d46aa7fe0c802bc0b42c2a8483c2cf04fb3444391f639feb46a0b4f646ee6fbbe25515bc11c64bb4cd2c39dd22a36d9302b65a56cf87d06596f15a9fe19a2e1f6ccb7cc8a854f7181172e76ab47fad47ff4b9fe60b57b99a2022e2ca6c5c4e2effca60c87baf16e90c65a313fbb214fd2185472882814e111021a9148cf540e0ee01517d02e003ddcc04e81ac9906702295f39a86d62b2eb366f8d676370a268a087d905456c31beb8443dede989d11c30355e457a7edf52dc757f282f9c299c24c536607294c1ddab1d481361ae23010cb687b51888a58e3c4e1033f449f5dc73ea5f26c8d2239008e7f3ca149012121df989bccf02b836ca8bbee6e5f3b29883475550e56451084d0411f1b495dd1be86399794b4ad4132548120261c3c5f4e00ba56f56b8494b5b25d8d80b33160c039e222b75906a1287c948717452287b29f04f90d9afe9ae1eab9c3bf54980c0c7ccd8dbbd81ccd80928354d0192e7903baad3b364e61fcf49c1211ceaa2cbfc03cda926676e349152300a1808b5108a45adc2ceb9dff79e61d48973215ef95a5997e89ec07ff8e07db646a8ff19e388df9b662a8c4a84854397f22f1308ee322b0f737ecd036a93e781c9083a36c988427fe7feebd49c9bd7d52456b999d126e4a6b93e56180d26309e036668436617cbb6612edee91001d966d82628707239e8e0f4ea0cac49dc69975524cc6f834a6cc6ec949c0c2ebcd8404a4a81ff6f39a7ce424a9a296be4f9e011c96c1c46702223f9a2caa5f7df40545538292a00727df246928238252ea72a1a858136f3095cc6c0dfd06aabde33bfb2606ac5c86293575a7bc3d54b041b7939175ec8141fce0094b6b25893c36bde4539385b1a061b91b748bda870c31ab153f522c1e2894952ab40bf52f60950363c790a4febcfa62c83a32293794a5116ba501f424711eb10459bc49a5b5400a5a6eabb494fe54f03b0fa62dc7512ceb29ee71606b2a3cadc440d3a0f575f933e6d1b646278bec7ea8b4d2ad39426294a86ecbda6a9dfe3f80f9cef21df6ce0077744e552b56579e0542cb90568af88c8ddd3ff84ce715c8e742197d92dd704167f45ee613a9ea02a2ee39c16b045eff2c6fe27805ae51e257d807d70de8c469bdcbf2a9166cad9582888e971eb90f77405336d9bbbb9d8cdcd4a916dc6cfa31b25ac4d85b84ba25beb42b94890532392dab60ea14d8bfa354708ae81b0f6498e590129e94d5749e3df68bf0a2c85856d09f3a1334d270a571c0fcb7bf5966d01a8348e1d0aad0332c9beba8e3d63e9701f906e1b553b2e9e3d0652620bf112d930a2f65b54a05217e71a1c93e7334917d8ce90b204b7ee7476856d85bb7018102dc0273969daafe50c972bd547b334a4b454e5c59d8a818bb365177f3aef0ffbf1e8b72f2b1803c4141b9967dc9d4034bce15a7cb1664a89343181b45a898df07e786af21fa034a3bce4b0c9cd19005c04cad6210fa39fc86c49c4841810e659e864501ccb5448239f5f23fb2f4a6fd00e224f708ca14fc845103d17d103af3d73a127a612caa23bff7578f6d5b6e20c414bda39c7cfed0531b209e9001cea26df5e3681e3582f0ce81eb2bf6cd2b747ab985851750b3110fc82cbfba76f376054f1633890fdc998d44400cf1336aa203d11a5df61cde3e63b46a8ffc15439452417dded2aceaa086df78f7fb787e806417cd0c89904a2e5d4551a25bd409f165f87646366afd8d198391cf0877bb1b97e989504d2c4c15247fff22ba81f65f2da463368a400f9ad732823ce255be0546bba7952f719bde62027081fe95a586e39a646d7c61813821e5004fcae41837d6ae23302739d03c94b652fed7bcb004712252b2581d15ab4c33513b6b8eb460d3199848fa449583ca9d81069d359f9a0eafd8896a41c38bb0b1193fc4e36ae02811f435502d781f359488277201bea03d6c9163c9111b3b120d8df704519296425e3e0195b64a973469b821451ba6c256154397dfb840c88df1182bbdc710c97129067825b3ad2773222fb81bd2261b1b3d7dbd8499d3ac2773210c3c831d381cf39fff692aa387a8dd9b67abae9ce7f740c82d86ab64c835a390c0086e620c6daa23fe3925502699dbe6b0997f368d6c2e0600f08f477683cf17dd6d92746f069c1ad5579f0227297d31dff09eb49c5db2ba224d87c7fc72df1dcaa36eac328fca14f51f7a5e8c362241e3c5425dd231dcd075a2e9a7ebbd853927c3b10f84b26dcd217b3ecedd90852b15195071ed87f10b6ae857bd93e018154a0c7611550742e864158f155185b745da40e28e2a0b202e053ae3787f3062a0a660b332d41b7925efe953c44a8b85a88801c6f002ca9c92f02bbf03a8472ef746273a61dc5d1d2c3875897b27b63c27d9aa63720050a4712756a9b9ae32f23b36f512d00149de95c89466d69ec1ac6695e3fef6230964f874519fe651595f30e44f98ddd0f10c30625ddaed2e020f6e9c30772fa2bf08ff3337547af9e23c0bf0ca7d84919808ae27d161283cfd8d5091ca2fa1a393c94d38015da6bd59c5e0c3e222cc899ff8ebabc1a09c22ca2236485c2c89614bb178841b0d048920b692a4ca1b0b349873171ec10c9c8652080dec2914ed362de85f816bcc5e74fba61f8ba20c0db6d80f417ffc926fd2b356ec78417d5362eb75bc6bf981fa829663a2d1cf76ab40505cf02436f01f25b82507861c2dd1e4b01263638dafed3f0067913ca00c8255521625ba8ea59a70fa43dbf23075834f1ead403a5d498206a74b550feee37c997ed0b80a52ad900ac3c1585c000d7a4367678d4e5b4b584c52ad669ed045dfad83ddef6852c77685182664a452b4892c63388d1bbdfa419f4267ef86f4ab2276b10888430dc04513a5be8998e884257d74fced086846c937c6f1275af813d6f2f87f45df35d9cda17d02d2e4e56eb99883df30660079fb51e96cd91fe621695e8c3d4ee3fec41e18407870a8f257088a7454d5b1c722d7a26f29d9eb9bcd83d1c9430910a02e7dd4673a64bd9ff720ac32e19e73c335e399487064d0996856210b2ea40ab5f9b35923001980632668662693cf1c4c8470d9d9502b77830aaa0ea2e224b87d1ed791185c47de17625d1d14078dc1757c993027b2b8a953916750e48c15ffd944eb3b29800ce06c5d791a59d6b19b36bb67a796c31051666568aff8980cd69df367a89d13169109c7a07b247bfd0082f0bee9b21be990f85e46443db140b35144376f898f556970c6f7c0e9a23328a1540a44e68a7a1d1ac54e0fe39fb52da492bdd81098c580d109fa19c5b305cbc01ee9821cdc4d4b83c0fd04f985ad4c1a56f5569fedd2dc1994dce902977a93fcda3f0150fc70a2d9054a2d0456654d1b0a6aabc1a53eee9a7d7decf91345fe8faafbcabe6f6bf1d0fbbbb729fa5f6f182559676219bc49308c3077a32697953f8e19558102108ed5f759e0fa10547abe6121f9bf04999fc8900e594a059e3493784c7c13bcbe20fee14f8a7e74a07520f462f04937497c3bf682825a07ac9a0dca6e84e1e6131a9cd7428b37504a7267c47aede8dacb928635469a3b253bed06b4a8f3e8d49a43577288a3a2f70031bfc953ce42dfbe1ad15e434af90e15ad3322f12af5f68cbd47a31cb62a6fe02ccb0661ec89ac6dc35581baf8102295070e6f247bf7070ea8039d68fe84408379e68d4215d755bb982ed6a64b4ec2cdc9f40b5f3d53f32aebfe11166ac06c959396767092a9e5756416d604c53996bfc813b092b12990646a0237a6a4583315f129a2f107f2371ebb4bf50af656034457b1a154aab33707f548160089f103ef9e8fde28592cc12c1fdc860b38d3bedccb20c064e2e6199f4b6836ed7141fa3f794a5baf352701b8167859050b65bc4d181eeb029a82a83e46678f3cc0c56ca06214f5ec11e8f72031ca263226bd0935c9960d91d2f18eaafeb484625f149919b1e7955267abb1e36a9cc2ff150c70a7900e4c6f360b36242199267a7a5f950ba39a47cd1a451db641e6049c160930e364cb4cdc2160e85bf21afed5a9b5ec3589170a30c7ee1497a1f46facd291a3287d05e7e99e2f9c922d8681e342d016301e011c84b76eda406d62487e0d10b68b0f12d6a0f89bd044392c3e58c8c3911bf184a3015d220edfb18aa4fe2c751639ef1173167cb3ef35ca0281a3ac8cd07c7dede8361bfe64c261d543f4866c9fb2e879cbb3d23f8e484dacf72eefc57b7fa2332a22afa1a51bcfcc3185f18795d4a69cef4d3a309b30453a209047677806d2a0b30d2fc449883021eb8dee27e92e31b2a2984dc7d43806aa0cd863f56c4cb640eee33ac9f761375690eede1580bad19102234916049aa72c841bba8db4cfd47538b778b966ac41ffcc77ea060c86db382af8c1c5732f51f8f63631c05f2d7c69131f6e6c0e298c9bd97514dc754d2049534077afcff7dd4b27f720c3920279f2f41dd6a8570d3e0cf6bdc7f31c32ed6b93305d71afa9a443be71c99786464ce22b67ffde531c29224264393c88145cfa68dca816b3ee69a8cf20255f3092843ca428d6a690e95904fdf7b128b7c30b3305afb7b165d27c7fcd7e2bc9528a993921d6d6b1c5b329e3ccd174b2ec1f89c4bbe1f2d4c4cb8ea0ee6a35e608be5305d7401176763ce4de12847da11c2ad38b0e23ad659bcbbbf775758113d71e0df037e75e15bb68b93d6218bf59c3b51813f94a1f07d37887b39d771c15b0c4503873800876f9fc1d6b9c08e0fc0553afcabf14d209450ed7be73e19769990e375b6eac12876861e9f3605d8247b96fb1870b2ce9fd6e1ef75cb0cc4fbbad4931972faeca6913a0a421b6d9a02d09d0e349b16d85938440084015f9665aab03651b2f25997ec4f1ce08a4ae2b65d7d2009bfc03ba8265fc0837e71217e269cda4aebb526a316c778a206626e0a63337be619f91170fff88fcd7ae05942bad2510c2e6d7e304f26d84397d43fde303b0295f17eba225c5449534cdd5e69f138c7147a158fc6bf63bb86e0d170165954e8648b4a76efe5c94e14a2d42a1e42bbc2b443da8bb0e04db8c69625fe3f363ffb1f16202286416f8cae5829a84d334405490efa824602a15e28cddbf8e0af51a19bba30df5567afb06d8f809068ea353068c235b82411498306721d4757289bf9f2efc328fc8f0046b5c2068fae86e892e273dcc2477b0e1bd49579953df4fae75c57a1a8f09d1622472cd0dda23f0cc280d6b9c21fc008549cd52085f47cb5acad5dc7155b5a68d560b452e0a6ada8c086de0c8724300c746f8368bff98291650a700fea3eefaf4f3c0c5a5a413b6190f6e9704d713a66f1a722627976ea766fc0ee7c081280dbeeec9bfe46172606995aabb27dc622155d274a075e6839e4fb306dd5a9bc2b8333c44122233ab04ea8173c8c735bf715e00f14f8857e6d1f7f04a312e806fab14dfc0ea8df60a1873502bbe79e81c79b47792a361512e5ab3899209c095bd0c3fbbc7f2aabae59a927e1883a6525a9933fa1534c069ab32f503204878687d4c0bba75819a344f334225747571888f9e2a4f1f5c665c906402821e5db4a67cae463965f713b6128aded9d3874b5b20e216a7d89b7e121e43a4fb345839d9481bc44649feca56e21a21183b979fe4c33ca9a2ef4ecc0f96932e643112215d03d97652004226a49a14f5e139868c869f006108190af4f3cf3cf5f0829f7f3bbd6c1d16e034a517d41ca4dda2e685d33573d6f40e5978c056eeefdbabc90d35077038cea0b5814894e005d7796e4a4c1d75bca989f88f3948d6ea0455c2121a2a001b0a3527e8659588c271222a6de0b27deeae8f0480533ddbd7d0354c5bbac1d3077240429cbe3683d736ecf28d8a21d27507eb4ca932a76a35ec1c8e8211b1fb575c0c1ab00926025933a5fccc5a4aedaaa3b6e0451b730ff6180a4e6018f7ca51888973667e06609f8fb00183f2e047011eca82fc2046d8175abce00f62fb84f371c986c553220bfed2b139d24314873d2d368a1a6ec05bf14b16a69193c0c29817c7d055e77d20ffcc9adae4b5582c544c3cd844913cc276d481c67c7a2cfa44807a3cef02fa26444571ba8ac563d5ee70d0dc7e4c3e8883e316933a9ace56bf0008134d878da99a2e380f8c44e80871f3e47d42990864c0bb53d2d6d62927135a15fd0088e9c927506587a596bc000345f4ff1e3c8d8fc2473cc1c4dd85f672adafc65a52edfc8fc8b83238b72d92397cd07e500654bf5e0166d9f122b59211c7da5cb608225103ca5a173eb964c3b677ad4c758363bad389d61bcd1aebf862ba98e59eaa2333fa2b5f470e7ead75a87fd403499a67ca092b6670ce271e6173335d884873706866b7f46a5c89bfd07bb580328c4f476ebb7fa0857a1f71377e88b680516a7ea326b7cb4e2964103a2d94fdf60523930e939f9a80f579e4bd3ca5373e030700094d3009e26540b02496dd17e247122aef53d32661a3787349c8b8cc51df2f46f5f98f25d0eb4dc57d122962c84ab0f948b4afd9967341f595c34f8bf980b7231f9a02e3ceba700aba5a8d3c64c891655f35c85d26e2dd72548435812bdb716cb990e88593307799e1d38c22307745b6c48d31ccec771003cb6d3ec517bc5552b0dc28184f8348b1a8690354122c4a06e0f4d4b29d633f93ed092b0026a35ee5ef7f2df5e3aaf7f30fc359a5cb2426a8d0318c21f884750c652132345905b8dafde74f198a9f8afa2cff3d7fa0d4ff70b665387fba9f78350b66121f1e6e79275a9c4f5a9caba3f52e36d15a9f2bac1a77de251dadc30f2ffab1db6fec543349cd99f495b8a0df2f70913a69dbd8c2db97358b91fb9dd465f7a4038fbc643f27e52a2b16446a2b9a1ed98546c5f52e5c7eb6c3da5462bfc4caac8852625c699a2a3598a92a53d38c2a6a2a1d3c9c74976e97184d763bda6497b475fd5e9551fc9c76cff84446ac7add0ec9a4a4ff9ca078dbba28afdf66e3715d5d6ae92b9c4a4e61135b64e3ebaef46bbd0288a46a87797fdf8973952fd93fcaf9a7fcd68e6922f469d4b42e5676d48d7c2727c2b5a7df018a094bcf7b650293e600df94697688cea35409fcfc929e190d782f5ee8aa6a38f621e11c2a29f525edb8acb5db4b89a0e7ea5db6abb41a36b14b79630278da35b407573b6e8a9106cd041ef40aa03cc59065957aedf8431ab934d3030bc44d51abc00650a705c9003ec3e0db952b55681f4a42510f324a63fac45aa6dd95dc5dc835c9c3014733f47312ea22623d64c0aba0ead034bdb65e7851a2f0bf9b4ca743a090ccecfa0283b8580fe58512c68a6995ab7a900a9439e70816d80d43333c0dad89bb2b41b7b2d9e9182eb4fbff87919eea3d6fe0195e2a3c68d62581f8d0392e3b1f6e7bd0903dbd831820156b92b896f7ccebb233e0929461230a0090afa2e421ba0310752d0f9cf001b3829dcd0a27b1dc4878d08863119ebd9c4a3ea317642706a465c47bb388ed5a8f84ca9fecb9078089df95eb3b5dad811ef887df5944ce441c27b0817343669e03a5c3ce111f5ab8acedb386dd42e8a9a06f2931e9073deffc93e2c349c98ab755d611c243897fb816ab49689870492c2760c058a4b4943d26b131dd929e4d4a738004d01a5620d98383097c0c878262b7bfec716fe1c1317e66a8aca79f00612c809c00b28bbb4f6805c21b8e45c5858974c478bbbff64cd3725b892b9b17c34c35d405e6dda849822b2836f57ddba075bd56fc0e31491be6ddaa35b1deb929f43c8a6ee20084795181393b8b49a977197bf54a52990cbc464847b06f155d13fde4b6ee77745eec4d7a6bb90b1c7dc3da3d5f145e4920e849f8523f67bad43e80654e21a5241e2310cc87c44e56bc1db38c0ad9c049a8634b8518fdf09f8a9880d95fae610fed8baf9725cb873090a811df6a7358cef163f5a69971f6c69421b049c183e236c27f3f5d91415959ebb0a1e1c1e52448d565c761e047dcec344d6776f826a7cfd7d2cf337b6b38ed6ccf1609faf765a140b0500801d21b983cae01f79f1883397780ffc6b0e4bf7e72250d4cfc5accd249ffc2647ccef5a4879b9f9446f86298acf42eaa01055d4026740ca0f5883733224edda5b53540b6cd2037e9cf6031d312375bc8c7b7500bd6e29243800b4639ff21e7c75acf10c7ee91438910c1f24c675eebfd58edaa21ca333aa93b4876522c7baa343b2ea75ec43af841616bcc38e0d150e44c3039bb719dc97ee9dbb15825b7d9c5d041132f5907900085508febc470d9090a8d52e1c2ea48d6c25579729e6198184c1bb7f4757c053e0ad55d2f3f28a66ee5c0c168c665dc2ddc564f083d8f1bc93c6ca819385feba05172fb17ab2828b95e2d58d7d11bfec9a83426b9e499279796c5de7d9f4c6ca1cb9187286f82628fcb0f58f1d19c073b05075ed0d9bfdbe9227d42be1b3fa31fa5a2d12001ef8e6c41c19de952f2844c2258070904bb1fa3348410735df03e54e9051e3fb3973a51b3f2774d241b84a68e44bc2307b86971a8d9cea0fc2a931079f4ee15127f20f1a4d53f5dd065bcdcfbc5f61be40723d72bf1b1d153c7954d54d9a62780a4f94e1d0c33373a89b076d4c0b1f34bec7a3b4047e9d4d30676aec816ce91062923e51a53cc7187c325fabc10827450e828a3d62b79c5d088853a657657dd84fe5ed58bb6b98a7345237272635a604d00280815bd0b1e286b3b0ceeb0cad8bcd1dda8827c5b11c95c9c73b6e5738dca0fa050faf8b3b5e0966071c205553426ddc781171361f540ec00fd80566d6aedf0014163221d1812de97367e73482993b8693ecaaf9cf09677fd5e6dfb8e25d9f40eff66d0efe9cfb244fd96fcff83036777ace2061d04a2c187e44672edcc2f35afe2514a2e10b30124dd4552b3efbadcc1eb677262ced3674740a3f1032a840009f7f4c883e775e74480f05bbcfe0d146f726e43dd9ad19a946292627e67bc938c48ef0cc0ebc3cde4fb9e16ecb2b4901ffaef30ad4afaf71a219611413cdf1fa736288f0c0f8eedc21ad32333fc6d058f83666a7aca995300d5cae9edf58d23516ed396306cec9a236dc347c44472ebc39ac769267c0cb18b9ea52f1a4645ba01aceccacb049526ad9b4c508fd8cb177667c3b942b2229e262e707373104c2fa0b5a65e130d0eb4d16ff7747e3947283d4bccdf38158e9019098c55df4f4bbfe86573b3d53ffd35f96d26b6cfcb1c5acbc4d229fdbf32165d3cfdd154936a6b9a0b9e3ee38893ac9a959c938cb89b4a4e670715092fa2f0fb639953d6afc0c28178f5c7c497d18f0c1e6b5d54ca094f2ee93788803a93be0ec0c2c9267164f79b4696498137551a597a77e06b4e947dea16652c963d8e64424fa6d640d54df2c41b529be0fada8dc585f7fe780d145bafff202187d6a455f2cb69dc283c5d5f6538055caeb2ddbc0954448a5acd44761b0bbd31224162edd377c1a28aead63d18a90026553459567c8c684992628d56f9deb3a4180da80aa40613710284ec6abe78072b9001743bc8ab2602fefe9ca56c9fdb3a9a28cab780bd33c2f599696b8ff3d9bdb920148527446ea3a47107ba0f1a137a14a2665836e30393e202106b249caa6466403dbfe1cca8044a19643b9448830cd099b5cb62634b4b47f4671c6ac82088d6035743ad7638c059b9c879f6084db9567838bb973fc65bf3b88bf19af057b4b597a14de15c0c295afb18048c061376f45266ab2ec85f9ccc132c24b81d9b41c695c697862cedcc2c6c890e2ff5a7cad45d7f163d94d6dd6af8d146039211d36962494b5bccce710edc210f81a141ab08d8a5a999bce70bd4a8f757dfa7a30c9f0103a56fa50ce31d0c864d8ddee959da0111c396c379f878e662c480f1e232bffeef92f9623cbd37a74caead7a04d3462776df12503c7e3ffd781734be8e2f6d828021e3e51849efee7277db60848ec34919cbe921e703f1943e0eb4c34827dd91247dc7ce87478c01cc6b1d1d3a7d37a5e513c57d4421e313d3e794dfbd3b826c45e78e7bcbc0f25ee3c387746dff68aeac2e20af307f82742acf59d2b52cc98a31909cc617a493bd97512d0115a561e3d315594fe7a2a40ad325c4f695a9ce880e794de1f1b174148880ff57491c8248c7a9e9a8b87359c9ed53179d97586adb483f0530f7b3043e91f4b939e1b10bc66d1ae13ce4572ebca20ed836c752880375613b4c7d88f8d7f4f3acdaa13bdd1ecee199860e1fa87fff0599f6df2874de44fd8290200421a0dcb9f1e06d81158f2bf3df51eb34f04ab385dd307806836850eb14ddd77a9d372a4c7e64d021905d9754d5de2a873cc8d1028beff7bc895e1599bf7ec6f201336ad00f68eb2068597f11df32a97a3d218e8c26bb5700e19982913f0cb8633dc0550454c323826e8394aa1141577cc10659790580b604bb3382e31504f6bb7e6be8ce872502ef3298f81082a487188690358665bbc2d1c9c0c45b42c124f72fc61c77d9259ba60b039ebee19bbd0cfd1849ff60c645cabccb492f87265c06c6a78cc55179c1fd28c15e292baf26cbd8de545e9ac621f426144c13f25f2356282d0c5c337e99af320d40e2856bc8728db55c448ccb049ab355fa3153d39d2a6ae16516bcdb662b6e02154f82dd3594ece3ebad71716eb58c50997471f540f13fa54fb6b671694f9998b4403244db29c5c78dacf9d5e8c0798d1a5c3ae26d4aec53d3f489d29498563d2a934ea6141cd083316f54b99cfc4ee89976d7e1edbf159cd59c3c78e4334004d6e7a7c1a570646ed706468439e70f6ce459d4dbc8b86ce6a7c1e70081d55fbe7a64a70baf50c99ad66adacf5690f24545e19b39a903964a73ffe070a73728286da761ee403539d77019cc53790a92d4d1980cc194fd387b68c96475280af4c5debda8539f248f631657df77c9879ca93b8fff5dbdcd0f196dd2b8a8e7d08a58d491d7f4291f6a58574be56e039373a0aba27eb27121c84372538b5a252ba86d03546dbf89e41f3b9d3f7b2aa9031b8d931d0361d97535d2b22513412ff1862464dcbdf5f9955b7bb58e3d9d7b3d05067b43fb03baef5b4afac2c005d15e7dcd7f1f57b16d769f137d1c30d7fd40e61f94395f312941a9c3d2d40a9da55cc641a77d34d793e9aec446630ba2a2d73c3729a034363f125072903cb8e5ccf009601b14a7ba393cd03019c6853f971d4ad1d3208c7dd8eb61d4070c1e1d631ab0d1e7ac52b001f2a90581adb5a0c86c38c81e49fd8c9cf325bfa3d0eeeb680db488bf0001161330510af5f8f656b1bc4fa4a51f83a983b02f4808125c3a20418712b794ee0606b213ff8df13daee29290bc28e928a17205d0cc702fbae9ca05c6a2377a11daf821042916b0fd2349bb83121b4e0244d895b9712a11faaacc5df765fab258f093e3f6080f815be3c18d1e7fea106ee496df6e0d4945008988b1c994ea3888fb8b729003264f58de7c05b3ae5e07e90b2b45ff1dc57fa0e29ccb852c47fb091b75c8d0ae44a0e2bab23301c3418e36b7479c894508f30fd0f28f36795a4d81d651b70b49ee984f2f51730a74b2dac83b199da64d1ef95bd49e8644e64bb34e87a82d2b487642dfc4ec66db49c20de6ec68594567ac80c45634239835c6b0f8cf2edec45bd23752bdf82db0de08a2706ad8c17ae7616a2535c0daa8f80280367ba260d1c26f326a43586bfa01aaefea15dca64dca85d478ba367d65cd29787edeed4684a927fcaeba513a9f320d5b3d3c0c4a418aec6071e8e8c3964a954e3af4d381df5550d967df1a1ce6462424de2cfbd805ed7ccac69ad0594e847ee8498b29f5c9113f6169d3d39431d09cd7e1069904f35b4be33b3b8236828faf13f9dd124e22fb5ead3a013158fcfbd0ac79ff618314081c0a61c3123048166d16c6eac5b325acee2f4e23c8b43da89640bf0abefe0f080cefce04a495df4247c0dbe11353c6a5686a6740cec46fd0f124ccae3b706974f900e4cc651837bcc9bc8ba69dd35b50b5ba63529584a7c44382534875734102687abfe85ad2d45530835b60119b02f9210175fab87a8a0e4a918a83107b1e283ffccbc7b54a1827748c127d8afbfef4bf7fbb042b79c25b2aee3e46d777c0ef3df0aea1fb0bb161adf5bdd38e5d6a0cf4924db40f25d809e435341c6715c4eb26a6301db36a1432f3bf121d24a8f87c18bc5a53c974a29501db10e9116f0d21ff429844cd9d595610ce463359d9b2add30970eee3f912aa95b08a6ab566882a3c26363a052bd7af92486fb53834e6d0d69596c2b694d1be4c8d16003bb989966ca319ae92f6161fe0bd55d3ecff66c9a2c1388f2cba59184d40a3cda88e1e469d95fcc9fd8d91d1f4c5e3bdfabbc95a701903d426f842055b890644e2c6b1bd62c3592a5e22b28c95a4aa25cc6a5b8b051ed93d73b823de438b8ea5f15b404787fa6707754fae7f76aa15e0706d78409d968cbfcdcf29d46c786e07fe4c9b3f266775a134c901f19ed754a8bc708a3d999c4605a2b2f000069515ea2acc893831841a9680edcc570f6c196484203b5ee83e819cc18a89a2682892d1869185270abce2debec6e0788a086ecc09a708a7751de9e62a4133c8b6bd9a83ce3ff0218ff1016544024e0e800e2db85252818d7b4b12dccbbe099e88fe5bdcd9460633976c3889e6929af6ae7f1a564a44ffe30af42e965b1b70b8b959e12a8d80bc71aa6fc9d7512481eec549ab6f9480dc0e406005b295616beb1be36548cdb53e989c17e5a477493af8248b048ac8005e336f70608626136428499b5e5525c5442aa6201ed1d3e25a4a483afb428bfb269e7e94479a2873838bda682744679968486be5439e5193994c6f208af279d80c839fe308fd02c33d0d68c21525b63ae6e9cf1540a94350ab19073ac877eebf956cc82dc04edf41da5836872ef937d1c9e65cc8841e2efca13119cdaf14317b137f831ca56b9b30e7891d009de4c3bb55357b08ebc9ad487817c59ad2721bb6b168bdeb455195f4b654b2e35084599ad531a26c93e3a6f4260224c3ca416f2d8947f18d531250598695b8df314d206ca58db680391e50a8448930ac0c139f83979d8277101ec3dfb40b36819cb73fce94db0ed2d34e90f5ad65f6df72f15acf08b7add9f8588e045a958d8eaad1cf3ab02230896f4f839003e96b3def640f5e3539bf38a9893d269f3ca75d1e643000972e35fadb47a7ad0e3a792e9402d134d0ff27afc0bcaf91dce7ff300bc0fb1a9111fdf6373c5a8c2f70b1c6ef3ed31002e0ab55ebd476ed10dc86124403f03ffd08ea6196d22d0e0ff63d3b89fbae7e01189cbacb42e9d8f1ec8d047bd90086cb2affdbd6fe2a6868391688fdefc73c642dbd3cdc2427a45fb33a4455c428ed603825a8336687844431f7452ae69bb3ebdeda85188b4714276c4ec27b62e5821892f693399efcacad15718068e0b1bf58a9a3af9ff40128075457a62223da87185235f293c3629fc4ec21c0552fe2ca209dc4db6c46081f9fafe8110773c845f39dda73c6dbc6a2ee3989bf89959eb97bf795af08b19ba03732d20a09bb0334be5025767c86ad8f97bc0ecfe1a6f4b76d8aafca9053b667d880d09ec8801ae7b2b395939749af58d5a149e51c7b79cbb646040cf94f5c8c655a234bb0eaba74922b43ebacf213a6a50b53148942e3d5c0545489e4541a4552d823404d730d3f03bf9b7fe738cbabddf52427c4b0b8bcc319bdc4261a2f1c48d230319c34667318260507950121ec14791cfd9ec89ebea41f479c6b02fd56ad75bf9fc2fee86041dc1da00597af0101ca150073d9d8abf994a221ec967220a9235c9df287e6c4742313618166282fc016b294660cabb629cb494a051ec3bd9a2cd340c34a1d60a312c64292a2f78b64f0203f2bb4d7043e5ee7aa5bd0e83cc5f9edd6d7d3c83d095ed551a41d2a49d6b5c936a0045e431f5cf1266300fec745e79af708191937f3c320e6e089db3c12e456d2dd92dbbbde116f1224bbcec5f9ddb7d1ce92715004732dc706071308a26a05f04c61a56434e4c0740856f3bbad0998929e88e29978508082a8df7d99db670b25aa75434d936c7fe0a46b6b97905b2ef6035c3c7a69098ef25f8a8a971b88fa1e76af037e2843b1e01d170d92a1b835d3ea014ff1c726cad437aa41f4a1273d5931aefc982e064a5e5cb5140cb22bc0c82c73436de2e5a7274ad64a06fb95cb6c8108b632fbe488cdb7921ea77a5c0eb973956a4b2cac5ec71bee5f942efb86952ae6804516f27ac684f7864704b00da230b1cb3994e1314c131a3524f76b0cf8ef670f46ee57b4e8e192ce076a3919424af7d90317fe59ccd744690f43b159e0de0de891dd4a881aae190b2a67fff059d0cfd718f26f2bf5a6edbf0bf849321032d5c7ab0c77c6140dd06fc0c3e1a6a78717840470c375b70c0b6e5a4087b51fcc949701c1dfb858176b4e6da6ca00afc6d62b063a1758d62893610c35d3470860922afe33dc9136aceaee59839e315bd72f0fbfdffac5faa1b1df4861d5eadc71690beac2037b8c5882e0ade6196b06b7773f2b345c33aa7d582e3c130d828991b4432a05f2a3398e349bc60d5fab37311e0115c407899689944b94b13eade5b67ad7361807da90fd6efcf93c0004f07f6294d56cd9f4c937cb4e8c9378af3809929c073a7d8cf3292ad1c4267ce31f12b92abdbaf57e7d3e716748b578a5f0ee50b024f93b0977558964b23e90cfcf3cf01ed65216ec85b7d7a355f38b239e36c66ba13087d810517afb85bddddbc9b5de0a6a56542f014c0dfd362e13ec5bb6b754f09901b257a2f5d04af7bdf67c6ca164081819198f18d03c50737e8393e3829c629b3ff713343d3e759ead81e1427cff9585fdba50ff355a03d42f5419ecc77df32ac7dd3df84e2684efe18bf860259117510d447245a3876a264dd552d0277bb6faacf664c4da567fef34e0fd1a72101190d11d1c3243b382fdb953c86a80d8c754dcbfba206aaac6a90022e1481d2d437d3e97a37990ec891396e65a93a771ec1bfa064bcdfdfcf7ab7de2b771dfae9eccc2752a069c94924e031ee266129b654f35c00b85db3ac42c1a086e99f95687dac9d212a5246638355a736a0167821e555416ec13a8b5e1a8cfb66d299463022c577da040a5ead37fab1946a7be9665c4c7b991808ecde6b6cce662e350ae6d6bb260ce9083bb5284e106b0f01e2b588f2bc37d047b8696de3c29c3828d31ca254093c5d3040b7b85e2a91d587e5f0f184b0b93b8227570b043515e8483099c76d6273115ef8d8a1462f9c5d4fac1da79dc39bb90552d15ae6092411f0f60672d6f40fdb2bb919e157dcf9d83085ea3dfca5c1849bc5b579229cbc705ccea23b7ae4c62954a4663a1112c18a1687c3a48c9d5118d32725d85120240446834bad7d546be0c47058b4bdfebcabe9ab13d5ba6e9b52b6447575b12219c8f8cba124a1a6e5b2adb1e4e0556e6ab4d45b7be5e57e4a1316baf32acdd7f96797823077122d230b0abd404bbaaa97fac028732562bce90708214bcd2f2d8ed6249c77a0bfd66008ffa4eb981c0e0ba32111e42d2cd25b337d08484c8340a1bca73315542f9b0b80ae3b5916b608f7cc60dc26099f9b4e33ae9ba27dda4cca40ad7584678deb40d84ad58fdc0ca7df2df8667a304a3b9b66d9747f70d24c63734a2b9d866139b23f7ea318862aa05cc15f6ee19c3b295af96781a43a122190cf11952ab452c62d82b2b60605a14caab753c8f1570e1ec6f8d0bf14233f2f9a4aae5194871014a46a4654154316cbfb053d48fa7c1929592d5f986b35f24ce217a76858e5c791e6207d6c020f9816f6b858f89906422a5247414c1284508b8caeda5131a89d5b7a8d8ac25ef482d88715abfc278ca689c0f100386d5de78c1c1d94e185f26bf3c904d57ab826ed907129d2e19decac7419c34ba40535e557c36557255fc8b4245e0a0c949d405e643c44480519d36e13fb946c7cf1cd1d7fc9947ee5f5e0db0d304e6b19d9734e0a486d86a2fb88a6fef9a22df9b364daec35e0ce99abe7e9b26d5633c80b82b87d34457aff2f90f3552f289a9333937c830136bca5a760cf28980dde45cc3de694a2d1ed419eb01e561ecab59911b10a85dc58e19997808117de71fb6a82981f80ba022b9a2ede9d918769a8788c967db1f57b08a3685c7f82e30fa2d3ab31093dd1b5a6d8f0793a3b9a55eb3d80235546d008b09b0a8abfcdec5ae81728554bf3301623779175df21dae38c2a6d7a660bc26b2eb8c4f92313fcc24a52345d0082c1ac964b1c78cdf896dbbb62b8c62cd71be95f3c2b6b11ed3ba4e0a219dc09634829ad7cf76e64c796c63ee2c572ee6c17c4994aefda5a61d6be71000b11f162a28ca3bb8856e28cff457af56a2635ad75fd3f3a8554988745f4656a8334797798846349be1d1f1b0edc7a5302245b12e1d865ace2500c74ee8bcb609f1c5425f2784e67dcab83ba87c2cd939906497dc3ef5888368f331552c4e467388dd557e4f4d3394388ae6c82efafbd28f1f91169934cb4fed2b73b3890d20023c6d042aee93c95b2092b2d28c0136d0bbae6b4240670ebb697466b42bc0bf55e78d07d775fd3bc170e97df3ad46637daf9db8ddbf7a6f64710101a000005a8bcac7f8a8df9f62fdc9181367ab36d986541cebdad4d1b6d68d9a888890d026524a2903630c420c2a0dbf796a7276b12938a4e6a85fcde405bab7576b06d49ccc476640cdc9824c1ee1e4416dfd6a6a0eee3408777c4f955356f677dbb4b9b784d8735f9d631a426c73bfb707128f270e6a0ff30afa6c9f06f6a46ef3e9e131f8634e1ce43d697db85f9d813edf3d98cf0503fe786dd4b756eaaadb7babc36412b7847c5ffdfb4ab7526f09515dbc47bf9aeff8540969ce02905695514fe51faf8dd2311967a050bfcb3b404dbef6a7804d8fe93779d04dd180ed7bfb6d60035e538040c01eabefb67b82414458dd32ddf49d77ebbdeb8c7417d27c5ad85d03384dda6b380359147cd86b3fecefeff325434b270e5ae73e425fabca3581b7ba64e32da8d889a454e6579342374b16f1f7c6b26cb962772f48a1d0e3d505bb300b35017f53ddeea67ec3eea92d7bfb4a6fc7e0efc9ed5ef0ddbddd76c16fba15fede18c6240c16f13dcd42c2e8d5ddf0bdfa4495c0370bcd92a52e09431c8bc562668434464dd8cea50bb1debedd6be196ad1dec3409eaba37912a41af188a9a668989aafc3d954faf39e636cb8879eeb9512890a22805352a4b77aca910eea8d3a3740bd32ca27e009228247465724c9e5647dc362d4b962cd916abc3be4b41e866a124687a8a55555446d2fe9e4c412802b677f66412420c7610986cd9dfa677b2af19503602f6642aa3cb2e834a194e761957b6b7c337a936ef1b7937a9596bad263dad511004b2b29f7337d51c608f96bdf0ac8cba96c37b79c5ba0c4dabe615fc814550d39ee7d119cb697b73eacd68208e0c6ac24c8ccdeda7779bdbb4698d2673b0b434f92e34295672c75a8ea4f6649112aa06e2eedd9ef4f425e34657dd9af9f6f034a9c6e6a79bc3a410c45ebbf64d3bd5596b3ddcbeca24ddde3f1008bde6813e9fdd6e349963a3c9932c1a5db5f690d6d3686b357967d5a8734916c682a2a5d1e4ce250315e2cc0997e78cb667f2dc9ca67159b3dabb964971db5a521928f5b2c9d072b777b3e4356393215d79b6699342dbc37bd7e46ddae1b98fe0aa59617aef454ad8d9a10cd642757b1a48ab5aa86efa5dc162a50b2b36cd4eee680f83acae9dd342756bf7bcca654dfbcc2afce5020259dd7b98ed7dd8d463f206934f99fc266992987768f875aa5394d5c9aecac9f959b1eccb3b5a549453e5bb55ba855bc89e93f3b35831eea1f8d3c99dbd91423fd5a83c4120e181440dfe823edf0eef089b6619499d68f244063521d4240caf4b062541fb76c9d86e93c7715d77c9a854a8d68a94b0b993454a208b94c0d1cf3b295477772e771d77c9a034f4e6079efd749195d630a8a5f41e731f8510af26e926ef5d23d5d21d03ced66c03b86d1b30c3b01928fbc923bbd500bbb5dbad7d679340d92b16281b6b72f220c026b38f4288a4d5a4a649ba67cc884d5aad7de701d9288488afdd82284cf26a2395dcd94ade393136a69bd3240d9269daa3200a2814e6d64e6ab945841bbdd35dc3183d221b0f46ef96c8dca204a3774b44b3a1c9e8115940d114dbcd5204de132442820da8e0f60489582c3fc8a1db132472c3c91130f0cc70010e64f065dc13246263c30a943401ab0a8acac0628a704f90488c0e9020da72da1324c2c3972fe29e201114183a10620da22f5f464f974b99cda86d44c8dddab3b77e643b887e690d21a2a317a44277ef462030c7ef40dce9e1a9cb60e8855409bc0f1b02297520eebc9f729765f05a0eead1827e00299d3e779118b652a7c563fb85197cd78da77b1ad6a92066213786ade4dd9b20111dc2ba11d4135c21d4b06e14df69583776af3bcb420ab04925f0455e4cb6920782623edd12114fef346c6a19c3fbd94cdaad84d463ec3e278f0b34e13071cc4d56132ed0943449b89af53c2f97de8d5e236a68c967bb7df8a3c4d87543befba83edb5738000f5a8c9e3ee2801d24c183163b488287188cdeed6b4f10089092f7b98b88602bc1b2d1f389d9dbc3dcc2dcb13ae0cb50636f4e2be2e7089e144f28bd94fd0bd8640caa5d646221840cf67620fbede5d2cfe9e275f982fe1cc1a4ad9d9c4d1d530f485b031262b77d0ca95de46ea162db6f9c83867ccf1ee6a1ef61cf1022a3d778b4a4fd357ab7a09013b453a649994eb13addc35097d44a179be2598951274927a993d2e8352e65ff039288a40236500caa5d0467892f9028977ec09f5e56b0267d8e6153d54575f43ec74e4fab0364b5d0dd9b0602f2daf631ac7691080061b4ed27d3155b3ea0c5263f90c526a24775ec74cbde7b11f69e652341eab687c01c3def41a72f382830c74e09a984b1bb9789b62f5fbe743a8af923f885ebca8a47ffdaf5549347c2d8f6e4ddf734dbdf2c84041b50f16597d9aed9d5247d9117124ddb6a0ed44c96bb7e8ba44db5d2f623530b19820b54646e91b44b72329141650bd1ad690e4c2d997e616e91b4afe6c0dc22695bad54ce1f39597922056cdc348c041b54f109b2205aa11b0accd81e05816c7a54814862dc1d1fa8a350c4c984022d146cc06b8a3de70864f7eedb2728a4db346db3efb236791811bafb33ec20f45b4d1e74d3c336cd5acf66d9e6f5605048cdae66334949bab94c06215f2cd8f878fb260d7bdec324104fc3de048568746a411706cb610be1d3dde5ec134c4166634d7ea08241ba4d0ed9f8b64910ed35c5c65a7fb8ae300d3cfa55105eb68bb531e672e5db9382e169dab37a216d67d648a6dd67f573eeec754e0bdbd347dcf736c770f7d573de6be7eb6993d14993d1c98ef10791fcf6ead39878a88169c9928f0c261e9860cd071da4ece0c5be7b322d51b24917189ec5b9a9814efa514b85d2ebf57addef74d550f69fae49d3749971b16dbf69bfff11afbd9b429b3a5ddea59ff0f8db7fc0df67d9bbffa49eddd325a769ac5cfa595dbba8691277f12851971ad6e5a6cbb2fbbdf7feb3fd1e7482a256caa51f11a63d7518bdd26576952e53ba0c75095a01df1deb16caa51f7cef9b2eb7874769ea4497f7275d869d2ecbeede413dc4ea2cfde07fbaf474d969bce917ac96719a26354d4962edc4a0509888a9954d9b4d99c622d6acd8a6693c25d3f3a65eb462226fba480b7bd52556c71e2f1197b0706c161d09d9d8ae42eccef2dd3e2c25ea310ed57c766135cd6c691de9e63434ba85f18c6e6269d6dde23d6ecba40c7b9b39993a275e2c89e8b8543fad0eea28af6655d5467e70defa0f00cefa6cdd06c74697e0570755e0610e1ea61504bceae055276b1499fba832994c9da44d5b6bacbc74b5911fd66dfe8373d692911f9ab38ea36dae1e62e992759a96ae39cfcd020aeaf1e5cb1abb1564f5eeab779fa36e05e95639a815a4bbea1d502a67535048b6c5989516a8bc6075ec59ad5b1d2d5d4eabc3a2fae48cd938399b286cbce1b172eb34ffb0ded2e5cffa4c2e5fe3cc29d852a175d689b434eb2c5027f9739cb965e5210ac5ea4c49a10beb2d2de4521bb2fdda140c929d7b0559f85942f635524d82e734bda881f0eb4fa18ec16e32670365a7bfe1caf48ad5b1b791a9ce748bd5b1ff7326b74c0251ad85ec1228db9e36d9dc9e76b13a5ab79f39cd2debf66026c792e647379f5687b672d9fad1cdff995ccefce8e6382c8dc4fa4c4662fd7a5a1d214b9391587ae9eaa01e5ba85e0de47d5ab1c758146b8e81a8c7d8bacda7d5616d92ac51b2ed339f25524b0fd57c8eacd3bcab61664fa61d9c6c8f7ed58ad57174f3d6ed3dfbed989facb9c3963d458b6d5fa5542bbe5b1d43349fb739eb73e2b4f4451bbde3c3ead8dbbcf50024a20e4b0fb13a331f3a32731c0d9b39ebacdb68715a69650baa30c720734a508fedfd2613f5186b6c74ddb491bab3d3e8a39aef47356769f2d3daf6b4528d0601eb350ae6341983b6a915ab63d324c6960a20251aa0ec73caa6e08f3965675a0904d3ea542510cc3c6b6996d5816defe63965d364104cab43330866ee5170c8cc9ed1a2d599b227d83384751f95a573856d184c9d49819765f91b107f6c7330edd065bbc6d8957e821b10c99d1d5276655a02dbf52528604f1d9eac745822eee89044c9c7a5080a57e404be5514e5702a0222dc36a22f5f1109b0ada2c8fa09b458d1a080c99456f730164b890bc6629180633ac10c1d9312343a16eb397a4f262535504265933b1d119110c02b3e2e9ab87d3f20e2a223c222e6ecc9a4c4c986d993490909c45082a42b8210b688764fa61c8800802e729042065d9a40316d5bc8b4f5e001922a60d8800854047153c30d6ca8820a284d86f0f940059888888f88878e2889f36207a20e76089f0ed6db93298724be2ddc0e02110de1e6c5103e1dec0eb6e3d9650621d346c5a744143787b5126b5c794fa61c70d8317b32e1e06593399d12d4846c2ca2c816c2d6c284031a65b06a5cace32004cc840317261cb850c1c284431153c61aa030e150039309624c38306132811526133849623201cc8b19630d4c494d5f6c5dcc15ecbcef42da3e7d4341380e784db1bd231b779a7b6dacc9ccd3b26be08fed9906271291db3316c4936d3596a9aaa2f93c7a112bd863e72be880d79e739a20ce19f341cba63a88f9d0c59e312656b68e3d634c966cef34abd8f465d7d78f5dc4161cf0e3c2777d91c9c36e26b04db2ea7dccd924036ffe5b63c78290b28d5d44fa5116784124d598a10223a481eb8811f68ca980a80419acf68c0101c50945a0094365a58a5089ef090a5250431aaa1d7c3798a1824629e6a486581333360d0f12efc49ad19078748293d21c3c493c2588356152b367d9c58cd43e5b5aa557a3b5b6b24a83ca4d29a5f5debb9afaf8ab3973fa74dcc461edc910ebe729a57395d17b7d260fed9aa661fa4d6b9aa66dbada56d3e264b7b149a4c7538c6de4e0bc22cd983b89a9f5c97e4f6e13e36bdf7e379e1288db86e7def6a6f7bd62525d936a968df8d831683b884e31f282eda01e95a704a2fda4df2ab395565b29a5b45a6bed855c213cebca7171b95caa3fd28d9c65a1ab87c01c2f2884db5593431e8084bb9de3ad94a43db6da694352027b4e1c23d49c1d1906c48ed2cbaaf941243f11dbf33411c9cfcba9393c2510b15d719bceb4cfbe2310bc9d7d7501260efb9d89c37e2443245d238c5073ec6dcd216efb9c11ee968255cd2e39b4e796fd8e3f104951b4f5d9ac5ad5a2378e21525b2bf86d9bde322dcb37dbac77b27bcbd33fba5697bd85b32da8dcf7592b48466e6d1c439c2b10088ead699fabf5bb25900862dbd34a6636b7327ab993f8e476b2c5e91fdddef32ddcdaf48f6ed38963bea5e91fdddedb87cd7250b92bddb606d97ac5ab9f2e1b43b2b26dad3a326c75c6228815db04dc92bea8a53840dadf335614845197bdb367cce88a1d2b5212ab5cf68d2179123b6a8a1d4d891d2d891d5991f26dffc82a85c65c6f9aa420e8e3814050549352736c1ad8b3517c2de377f630f72c8837ed5d57a37454529a56eb942ea581eab7fa0435410554bf7df52e5ce9aed3aa4c86a106aadad7759bae4fd490ea56787bfc9d83945ebbddba0ea3401008ccb50ff4f9a8fded4a6bc7b776d324ed36505bfc9d037bbecaa5564ddbb6ed35ca466593f875dba0d41c51a809f4166f15756a852ab969b24ad9f842756be2d6d14e0369477d3bd9892a1d32df682673876b88d2f5094a02ae512809da351008eadd71a63239e6a91c1e8512c5d3d39fa02228a22e528a9af5895ae46be187dff956e42bf27d3fc5e45be4cbee4e589fa84fd4276c95b2715c7d826aef5a916f635de4dbf4b3c887b9ad3e81aa3248bca9a1c4397f1060926004c8cc404ddf9c91f530bcf6bddaaf3662ad0e82e1036a14e1cb86a106210a162376e65d52865d7f10606b5a96dd6b6dad14fc4135fd8300dbbb42344dca407f1060cf89836e0a446fe977623440d9e19eb119a8d85e9d69547ad3b8b26b1a9bfce6a5018d9dfdaeeed7654aa5d3a236fdd51c4def19a3a169e66a6d68bf783831a2a2bdfa72d0a0c1cbae5fed1dcac4a3344ca28242d8d30ef7234176916876cfd80c451bf682433262b02c31d815a62f55be2158a1b782984b94308735736c02ecebbf9ae33b23066382ed00e6bdd367869879e10525ee1c530be34b6cd79a5d8f4bfaa2152761fac2e40551c38c371027d3971a36d31a5078d08d4516903979a4c0851844370caf9de914b81083ec53e042ccb2a7c085f823a32f10e9ac33052ec406bc36ce1c815626bc3929add5da7bb34cd3b60d638eeb3acffb3e100cc3d3491451a8544aa55aad60606262646458ac99191a9a56aba6c6c6e666f2301284b36f268e79a1e34c1e382f4ab3343c9c1b9b9a16cd0c4b260666a54aa1c453087e5ec7e14dcbae9d3ce6a659bc496f10efed645ac3c94e8037eb75cc390b50039cc923687ed95469e2b0a72495d9f3dfb66ddbb6ed18638c31c62773388ee3388eebbaaeebbaee473bc66ec422921469f208a25db692d2e461644ed9413db61211fd326a2f2a2af234d28ed1f33ccff3bc1fed18bddb53279aa669da8e51fbf77ddff77d3fda317e2f0273469035824878040f82e08f768ca0a64bec97699296a9934c91ac0e9d42a35028f69e56ad6c1b8448add82b4d7bf20401c36cdadf455c11d39efb7b8273fba834779af6a39c91c81201366abaa8c246ed9c5654748447a25317d8116bdc5e7494336eba88fbf6a31d23a791728c9aa6548a8a90768c9b3eea46ed44760dd88874336a2f22dabcc0602352386a273a7581c160e351ad5f5c993cbe2d16d8267113bd12a34856c7058a109be3165c8426b1085dac0e49916056676e24242849512eb0c612ab333749a750ed82ad36b627a5b2e9d424fde79db689781d608b2d1649ac8548d6986d22ce2915cb1cb1c87a8efd41bc627d2882b55544c166ed66ed76abfdd6d41cd76e56db36aa0dc10abd2216afddc9f6cdb4ee7af8662e06bb4919b690258bb0f6c6e13c3fbb6fcd51f7ad39c62e4472c746e1cb58fb68a67b5c12c91d56dbfbd83e2f44724e1cd496613f5d2dd41cca855d9e7b8614ece15ea839f5d9ee0e7adb69ee40da05d12e602ee2809a53b51422b9daac3dc212ca64ac81385f1f765ed775631751e813abe3f47a0aa5ead0c9aa39b7a7cbf85cc642776bbf7bab145673c49a43035107632f976eef9ee731217a9ef6ee69170bc40cebe45ced51efd3cbee79747bb7608fb7b2bf17eb09f604a48ff584fa7b56cdf77b57cdb1b32d5faba582fde944ea8b8cec4ff5188bdeb5cfbb9b83b2b5cb03262f4a6cf23279198287bdf2320224b725b2c4f1089166c10abf0e6b461b88c2aad9b66ddb563567534264d5b4b061a0e6a026d0bdfd05211936d756a7f0b2a09e792de80241f4cb2739846a92defbb03459766d328d2ef082b4e9c96bb5f5b976fba8140c92a1888619607bce9cf9cccb6c0f4d81fe6aa079ab83ca4dda3d290f4c6a3cd99389084a6c03ecc944041ab6b89a4d3ba335e74e707c8178e92dcd921049f167056a02dd943ebb0b35477ddd938908b07d6f8fef75dbabe7dd7b3239b6b7b784dc6f33dfaceced368d29dbfb65dde67915cee2c97b8ef59b616e33d8fd823e9b67735d9d03f248afc5fadc31b8c5bacce7a699394d6e09f166748ba55b42648ebacc5147fdb54fbf79d5e2eee931f974eeab4c7ae7aeca40a9cf1d9ecb9eca40dc51fa94c10cb49dd369346d1767f7de66187210fd92d90c0345c1c7b5db0bbb6b6177f7513b6f821a06baefddb2dfec36d79c127690c454ae89ac7ebfbb76d8dbbc9ab9268ff0f337268fd30772e2adcd6e76ad58e37961deb4fde564fb74635bee3420d881422807723b3b0bb3056dddbe305328f80b27982f46422473f6c4a16be2b01751202ae3aa937ddecef2a785ae901ed97bb85af1dd55d4b6f0a6eb361832233075ecd821d5e260d38f4588e4b4b2c2902244f162c59e2010d748040ae31522b8275317295da2d45a8ff03c6f828772b76cc912cbb265cb1845094c6750b94d97cbad5fd661ac67cec62773343d354dd374cc7ac7274ddf81d47fba04ee5d7e75d9b196ed4ce1d5b03c0af6803935676edb673167ebdcb888ab479bd4ba5eebcebd7466a16be2989f378d5396edb6e1dbb46de491bdedaad50af6d8fa91bed6acd62ccb327a377a93889145766cfaed73ce39a76d222993bd6393afa4cd811dfbd3240adb6a20ef401bb9e37aa457738827efc7225725549dfa2fefcc3c762176dfa939be4f6e043c8ff1b4609d53939e4762911c619378d7af5e32b0bd755cc25a4b61f68b71893ba75c1bd4d4dc7cf1eb5d9aa6c9ada6a6d60c6b12d7b8b66dcb99265fd8e2fdbcd0dd99c5492e2de311caad499bd384d8a2b0161057cda1dfd67ac89dd8cdce1a870063499727fbae569fa694524a69762fcbac28628bfeb5a9167f94b0efe9a5626dbe4d2955aa09e573c9a024d85f2e94047a54067bc8a024d05f4ab70cb7a9e6d0d36d7a9d4e41a7a3724ef889ae11767d98955607eb4aff5864612cb2585893df2695bab3b357b027a3a920aae0705ffb35877a2854217ea46b4b49550e05a7d7e9b4daa79a7d3a692ebc171432c110fcbc8ec35b7dd6636f0d695de3ee937d61fcc9d0df259365ee3df334edae3e716497c9a7fbedbb226b4effaecaaab3585886251393bf5566a57e803ff57c61be3527d342d906af814270be80777bf9ee2eb37296fd5a199a6971eb088548ba76dd95bbd7281532f4e5cb172a3b3bdeb1330df4edd4e04d5711d7b6ae0da47dfba7bf39c19e9c9ac3e9abc9ca711cc7316073989c5af6a5bbf37011d7dc1c70e1e9da9c8b746d7c9bc37b0d4fb24ed8ead108911c0117d9b1af0030e39ac31d7ff91307f75316ab0ef730b3ea5773382c6a7aeafad5ec86279c7826e93779dcc34013a48506cc11b69b816c37baf480143400c21a6540014417f0f9e5cd6dfebb5cae300cc9319a3cc10508445efc103ebfb4398e0d1b363ccf53c105462c11c20d4445486262626274e93dbfc4f9676666b22e1b90830cbe2063063cb880c98f283af8c1881eaa0841848d8c8ccc4b0a2f5bd65043071e8470029cd56af50ae2490f3e4461c608d4e8c18d4aa54a629ae20b103dd420e5894d4d4d4d0d614ca162061a2495c105a7d56a1569f981062c4a50851742b8a1a1a1995db8b83286194bb0e82036cd80412c076200410a31bccc2d3bf4b046144b601104154c1c6cd1822a68405182179431b7e032441523507074822c70beef4bc00d443a483162054a847173e3c68d12ae1ca1830e6a18c3044f5c2e570082f0a10731f002850d78b061c3c64d0f3898c16804475ed060860b2840fce00559a4808ab8c4931b884e0004154411426203941a4061c5942188684185155710a1031749352a547982c88726a2086249aba6a60608134a9480d2022ebc4041d1b45aad710559c8b0014996234c00b2686868c2307c62030f55a0c882149b218461b1589ee7bd8060228212253cb0e2488b978281811145f185831324489a4110483e80423ca55229140af59a018c16ac40cb144ce46007a8ef743a812038842568b0411261e8408c27e08def7b921ee31786a118464c7c40250751c0400761cd4bd78d1b37260d981001e104172f78c0e4b55eda70b95c33063af430c5155e24d5600c91e6e58c0d1b4fd263b48142a1086003152523307ac0410814eb65cccccc93f4186740100c000eaab0d205135498bc80302f65626262564ab028a2c98a13589afef2e6ab9a9a9a97a9972b191919cff3343196f8e007d80d4540f0fe973657b55aad97a797aad5ea497a8c2b51142540032d4fd25832c4162bf84b9cd7d0d0d0bcfc5e6a954a755dfe68a2618d24c600a24915382732c2a97979f3168bc57a79e365d65ad7e8f23545114c5dd440438a0f5a6e4e6474739cdbb45eda9c060606e6a5ebe573ce2d5dbea0cc50258d2430e052c5143838382f8d6c4e6464f39be3d0bcac392b954abdb4f112e73f8d2e5f4f960421065c8c61454bd2cdcdcd4ba39a1319d5dce637ac97adc39c4ea797332f6f70707058ba7c2d69a2640823cae8610a226c6c6c5e1ab54e64d47acd6d605ed23cf57ddfcb98973637373730ba9c43f092a587274bae50aaa9a97969447322239ab75e937ac9fae9c68d1b2f655ed6d8d8d84c2c578680220b1f2041a38b56abf5d288752223d669ded225f8d34b987f2e97ebe5ea65aba6e6497a8c35275d4e2c9e48c1098438a3872a443434342f8d604e640473d669be97a9dfb061c3c64bd54b9a56abf5e912871959d8704695228ace60b1582f8d5227324a1de62c5d7abff1f274d7cccccc4bfd924543f3243d469a1bba741d3d71020651b4208a1830304f628011e6a5d1e94446a752bcebe5771b3131312ff34b1816eb497a8c2c972e4f311e44d9822509229648a5522f8dbe13197d3f3da54bd46dbcbcf119191999977f99828179921e238c0d5d7680c9044d615421258b304ea7d34ba31b2732baf1ef27d76356abd54b9c97a754ea497a8c290cc4e006517840e38a1370f17d4f6280f17b69e43a9191eb37625edab88c2e8d90343baa9e04c7a87a79f3f2bb11d2369e6e9464c7787a921ee3c9f3bc1d032f4668a14610315072e3c68d9746364e6464e3aedf907939f3d56ab55aad56ab9596414697af1ec898a10b2118c12488255c2ed74ba3991319cddcc65dba1463ae7a018542bd604028628a30aedc6009091b366cbc348a399151cc676e4397a8af5eca5cbb3075e81402d30e46c82007327000c2cccc4ccc67740966954aa552a9542add420d8e9a4489e288357a90252626264697e157702d01a3092d68e020460d1ece9014155ec4941041059314e20d0a5387a250a815887c4083112ca9a1a80a948d8fa943411024e2861d6e90031a3041c31250e6353bc47bdec3300c5f38348975814517319af4207322239970f5d60eeae2898c5017ef799e37bfe86285143d40d9c1090fab1319ad2e73952ebdcfbc549d26262626262626e6473bc6189d33752878d4898cc0a32e8ae293b846519733ba4c001150b298020540f8208a8c8ccc4b23d5898c545f5d4697dd635eb26464646464646464f4c5f0e0898cc28347a1504fe21a51ba8cd1a5066e300433aed4a0d48494d5ea490c30ae5e1a89273212cf7df512068542a15028144ab334efe1898cbc87074110d4e54a97af256252a4b14616258670844af5240618552f8db413196917afd2253eea654a8b99e73d0cc327718da12e51ba9c41e8610638e0d0248a2c62308ae2931860145f1a652732d2e576f0e5290cc3300cc31fed18438da70e25eace9dc8a83b77ef9ef724aed1d325a8cb59c5152428c3062780c002c4587ebaa8a8a834ba27d26e94fdbe344a22336a374a4280517b12038cdaed4ba324336377a3243763f724aeb1bb1111777ca2ee46dcb1d0b6eb399c452d3f67c71eb1412770438c0928666cfb7a6996597b6776efbcf7de39edcc6eb5aff6d61a642909f4935a5badb6ba37fb6c65b7ce5b6ba655ab71f8febbd6de69ef9df7de3b67964dbdebbf59335d7fa78f97843c514aab7d1d63ce39e79c73cec985473f6eb3945a6adf82a27d5f4d20e985ee26bb93f395daafcb6cd77d6e5bcddb39cd9dbbb4564a6b7792b3efb8cd524a6ba6d9ac4410cf3e5310a23535905062775dd7759ab66ddab66d9bb601c97eff516ddbb68f6e4fd389a59260f1fdb24e03c9ee40f31cc7bd1ec8bb955cdd7bf3dd2b19f0db322bf44e425e524af065932f2930d886c14281ed8ebc30d8deb4112ab07d2fd45981edce7681ed20fb05b6af8ea124d81525c19e0705229d676098150f1391deae268fee16f56d594cad7a84743c3dc86c7b0dfc31b1dceb715f97ed8659c578dd0aa61361594741fadba2db87a51a9ff45ab87bcbebbab7b24ea35a909d192864db9450b229e8f3929204db30bca68002db360a6c5f28b07d7590ed02db9d0e3f4a823d0f0a446ac54c65dd8ad326eaeb74b0bac8b4d3763a9df0893b9d4edde93b7927f027242db049fc6f7fa797395deddeaebb5d77b38e7b06f6ac92c48e5c6dabc9eedaebd6344dbb1ac790d0b2bfdf7b31d9f77b35d9dd7b25bd5fafbbe7d31dc8bb5dae7b6e17b5772dade34e662769cb6b71f8ad0cbf45f1edeefdee0fbd2796edbdfbcd5e764f939dc664f71b6b8192ede97398acf6563c4a29a594526aadbe74bf30ad4895524a29a594d25b738052c49eb1239e6cb287114ddb3b591d174be035de0f6537ca34921ee37dc541dc57e703a99138f7dcf563bd849c1d465cb1b4de19e4008a149e1b786ea8a7dac6266c5bc2d431a768755c6dbd1d35a7849a636b0e1d44f2db7ee42296a0806aa9dc5aadfc70a21fb656df8983eaf8a60e5d4d118b5b73d06969eb055a6f466a5ace80b20720005a0e4000b60b9387919dadd47d6793b3077f6927334dd38e94f8b8d39c2e3ac2317247528df824ded9e46adfbcdaaa3da4883b3e8fece416a4dbd9b3ece49d61ec4c2bd14f35b62df745ed2c4684972d44f7a669a5a123738ba4916ad8ebc9d35eb130b7481aab2ee95956c7aef6194c9a68d20494181e71865d226e50010d404431161de118eb9154237dd1511df1914e18ebb98c74c288cba59ffab25e97287055973954a8cc2120a9a234c60d8600838b9cd709b488e2871fa8b8d28232c639d2933b7e0e838df596f381d61610c16588d89ea9ab67a6506a4e761f7672dcfca6556b6f96f11889b3ebbc2cd7aefb74d076a4e3b2c9dd47d5bc99b37b1c375fe7b4da9c9a96695a160add49b52a788e44f2561e2391746dea2a12c57f35f8e2156b4e1c539342d76a5cc1f06ecd550a77eb105690a6ec2099adb53e4149a8d6da6b5f737619a4587b6bbf8ac6d8834c87f84cef89990155e73200051f56e766dc6f56a5701cb76ddbf15f5b13dadec30c7af5897c75eabd9a79a1a1be9ab302b5b8103056d3aebbd260bf5b36b7ae1e42c46e592d81d7a87dc69850da33c644105b49ccd944f34b17180c06d351641adb01cc3c8621d21c9a85e4d0146b2b0dbcf9518d9d9c1d57cd01ceb06d6c05456c6b619bfc36f98f4e61d244cbce6eefb9cfddd2eea5790092d8daaa105db6fd6ac95e3dd9e2554dba689282ed6d9fcd59e61d0c92dd5ec3f8dbb51918a43bd6e4f64e2bb19ecaf0335008b7374d0ef161718a4c6d7cc11f74a768c5a81e91a27a6454f75161c4ab8a749bfb577d58ce270cb512eb5d063259fa48372e719f2687ecee3e2c1784db9d105bb67d4d652ea684b46d0542f77d97c11f74df7b6fd64943dc815e17bedef3c23014b27a78ac65d7ec290a08ea9978d1aa3489dadd653289da40f6dd613250f60eec530ab5534765b2039bcb246adf672004de440f46781146142f7032cea9033e0383e0bd5df338b02766751fd53e2693f740f6294d6a92e336d632d0e6006e93f71ec991f7dda77fdca3ecbb4cde671b4a0365ffc0be405cf61aa43b786f952f97ddbd25e492e2b377587678d40f5e76782dd6a486ddfd823d31600682e168eafb057dbaa3ce5d21e2efc55fdd8af9eae1bd0adec7fc026907128f5f73e2b8f77cba5f1f96cc80eee7e6aee9564c90d545f1b54f07c38f755686c959a551b92524bc1782471af07a6d07bca600813ccb72b987b8df7ce4e6d7b6dc033c3a8869a1e58a17f64a2c0ba44a827d5ac1ea10b5756275b29362ac8a153c5a581c30896141821816b0589520688955e92256c58a5979b0f07c11ab222556a5883d63549ec460d0c4d3832b744849c7cbbda7a582a691e8f85d303b121db3ec9d2e3aea316a47bacd74f42a9d59bde17833975bc03eac0ebeb66375b0bdb7bfafbad3a5788aad2e4b8c2d153f473c9bb678d3c5f2a81dea1edecb434b3f5df7fb9feeb7be3ba77fc05b5dd283f7fe552d8a5667fbe9619579cc652ebe5cfa8139a53ffd87fe743a3da77f582c3d44974b3f31a7db632ea363365197e5adce76186dbdfbee3f977be9fd9ed33f34899e6a4f972f589dad5cfaa1ef74b9f4d3c174523dd5a5f7f2aba90df539d22d5537d5ea73a49bca879d38974b4354baa4e3e9e25379c81b5afaf174f7a10720114f9a42b13adbf614ba88da50b904813966d786b2cf91a450f6761fce11cc73aca73060020328db9b75d650a935443b04e6a89d081db34fb17553c2b35e44f0de8dc27fcf40ad7f42ada7f6d5da02f2dada15aa40da49eef43608d03df74e038350afcbf4cbdede510be26b05ecd8ec29d5b455969303829ef7f94b3ffa85e1e76d98f3b43a95e78a9c9c30fcbecfd7ca5385489670739c8e4f387d1e8b2788e297906e30d4a0d1a7452d5a9d796e069ed5d1715d9e5b0dbadfb45f9bf1359b2b6ad8f3c89c42ca2072bae4dee9b2bb91ef4c7b0a6a88990e9ae3ac08d882b62f5fbeacb1e15b4dd2ad69a1ba3b7cd816ca36d6b47bb5ab81b6df6bb7bc6dda1cb9fb859712572050f69a9d769d15495638d9a877a763d973cf5d8ff1f6bbb9edffaa05f690468462103f6b8e3e0de8939dea19d087fea459a04fd5e26b83cf41381b2807e1ecf09e8d0dd8c3aa39f7ab3a6c7c7e652363ab7359aafaed34fad3fad340cbcae4bd352d54a0ac39f79237c739cc4f4f0f03fa68c75f813edbaf6d8f7997491c2d54f7a6294ce6379ac7052239b174d9f7282544726ed9f72e14794168f298374a365e3529544fa0cf350caf2d9ebb5773d0a775ac459f98d393e5ee70f710f4d97e4dd66bb2d6996f5ad42b7c8238dae774931d5073ee6df2909afc638548ce29b58ee0a38dd77718855a3df57a0eeca92b14e65e1d8334e7514274edfb9d9a43fcfd0e05fc88000040ce43379eefca6500eeba57c1155ccfae0c80e71c807cf4517f02e000c834eb523fdf462e5fa38d00e822d78f3ee603401fb9711b9f2091930d98bb72ce4347f46d3c5fb391615a2f6dcf471f674500a93fd52fe8538f35d0a9a56178ed93c6af5aa4c99fc964769696c94275c7e82fc3ac32057d50efb42aa78e0ab2bdde06f4a9af28a0eca87bac9a03558ffa6555fad45b604faa56ac81baa35e0306e9de79a7d32a545399fed8ea7040cdf1517feaefcf909a73cf0385d8bdde5316aabb3bfdfee7945348433c1deca1277cc21aa84ba1d362cdb9ac228a446bf864c09eca7385484e2d1c30a4e6a8ef5ea45e7c9763a045aa105be4f4963d65babb1c863a03b34b210df13bd853bf2f4b210db17eeeee2bb0a7d3dba675f68d6e57813d9bbe493675a608fbec9277e8087ef74ec3f0395d342b02ea0585d893d9eb524b0805cabe6d9a96dd9dd5aac4c33d6596715bd5406fd613c493425523edc16b1733d247f15b26cbbdfd045197b322a0be147f645604849f1501dbeb6ff63dcbddabbdf8e2be8e3bce29a42166cf485ac16abfe4e84e7e7b82208833c657047d34d43d54a61b14511c46a180ccbdad3ec7a172a597b6abb20ddf13bf398af93b8842892278555ec29ff58416d6467e545f3d0877fc21d5577aa884d14bdc123e788de3501fe632dd9843e5ef22077e9c58f10c5a6ced75233bed85cd9543357f9f6010188eeced1af70c85b29e37370aa561d40551f82aa9903eaa42eeb39ea0d2e592f872e91be8a37d6e2f95e9166f0aa4fbdfdcde47fcf0bb50f7ed355b3093ef720a6970dc363552c8bdb562dd7c10b3824b7d661f8024567a4fc1db9b856ad392214347eeb77b8b59392bfc511aba71d3b07bed5efc7463f69b61dd989d6a7ae848f6ab71e685cd340c05860e8458a308061baf9eb6562b031724dd57e164d7ea0218940d54847ebbb5e00634578d38c2aedf5fe8f6a639406fbfed8e03dd9ea7b58aa65d2b5011fbb90191dcc15fb6eb77aa50b2eb4bb80ad85673e0665982eda9a79de2450d6c17156c1b1756db3356450fac6cc7330656eaf7ad6a62543cd9337bc6aab0b2b73d635554d9a4ab7ee1dac1b38450c6b3848b7eb342caeece4d5142c592fda4d8144818e34d037de871104cb76fa00f3da7c94ee3fbb05b86e1b5efcd98070a91fbdcdc27d0a661ac852afd42eff6e8b7e975018f133b789ee089a2c58d49c165932e124b51c39edaa6b7f7b47ef037fc4cff70d738fd6ce4473bd6a5a8216033ede43b529ce3cd64cefe4177d53b4797d27aab73ef9d7a2f917a8c5f3dd5e5d24fa8a92e417d44c74f57efb485ff1a29ccea60fd82d5b9dbe92d589d7b0efc7ed265784e87ba1ca2415d963b56879c4ddc0e67a5cb731c63d06ee7b85da00cd87f73d64956af10ba90024b168b02cace5e42e655aacba521baa463bdb75fe16a243ade5bbd42d1518ff11e898ed607151e2cc47bbbf4b3954b2d15eae94f3dd6e5d4dfd9958e993d8227890c04931a6724b5008c97114c248541822b3ebcc008d004311854b13c4dcc2928f8884961b269f68c491193a2894dba9c78746853814ee03562182430c78dfb7623243dc6eddc6b9e231d8d5ef92581d788cba521dbb96fbaa4e09022faae35841e0273a427d2d35261e9c7fbd174494447ed9e46a2a3f6eed61b66cf3b56e79ecbf45a9d7b1e2ce638b7df676004e6884f81395e0acc11dfbbb66a1b9dd9c5a1511eda6eb469243d463aa4dd48d3487a8cf543ea7dd429b5de1e622f6012bb82053c2db0218c4931f2c2f130c18304b8670c0a20ecd39e312862db717d009278ba4dbc63b8fbdb3afcee38e885fd7d0bc2fb6389dbf1d67df3de51f05adeb9b2e31bcf29391b2a4fab83352a73efc0d37d541ea5a2d455e56b540d513d8542ad869686a02e1eebf2358ab3d552e15e3c119acfbcb59dfbf69921bbf4631ff321d4cba572f5d467728b7ee67314738bea960aa88b27623fa3f5d04c945d3f93876086662eae8efacfeaa899bc44f50fccadc679687594de6ac656a7831283c2c9aedf8a527a68093f85d2e56b541de721aa7bf12ccc1c853f3589871489ba5c1a823a4a9774f4a9438a52571d6f6fcb2fd493b4a5c23dea2cccdca28ef1135776fd168322690360cfd8135b36057b5a2a8847fd473c6a7551ffa06e75097394eeb6ad3544e673ffb01ef3992dcf9d42977bfb96f79f7bd47fecc5f3ac402477743d547948f598a7f2d0cc53f730bd26bb99bc043e95875297b957f777f69643b76ff45beeced520baebc1fca37a0c97e75665d6b43ab4084b003518a206acaf348c66e9a57a193db4f493baea43305f3d460fa5ae3a99b361740baf746b3beaf74629ddc2bae5fd07a5d2ad4db73cad02eaf744c4db8b1406c514b0a785caaa8b39d5e51fd455e7b20aa8ab74b984f58ff8942e457ad4e91cb73cb7287477f55e5e15a53ce9b285e78913566c02ec197342c9f64e2eec4dd34e59e8589a0b9eee8ab08614613de1116249cc89a25894282b0ffce8b928489bfb4c9758135bb4308165db7f2bd5bfd43fd66ea1b8304ce916eac7464fab53a33ff028d085cf72ba85fa4993ad96781668de3a0b36aff9dc2eb450ba256a1568defa0f0dea2dfd63f3c2fe444dbeb04f9fdb85fd81accdfd03c11916187a9ee7799ee7799e17866118f2088131c6b12866c4a250c118d3e358135736fe3e9aefa8d3845fc89a2010ca020b34ad5c739a6c53f39fd66b7e68be960a356ffda746836f4dab43a3770481d997a9a115deb43a3aee393b56c7bdcda52def51df72b93d7c96cbece2712ef163aee572f552bb772e97dc55ef3217208e90b0820b1fa0ec00dab8cbe55abd54a99ec435aa5e768f89b98a490c1c9c9184173838830b0a8502ffbd9cf98d1b375431313131f38b29b0484206619cc0cb10200882ba040ff332e62e97cba552a9c230d422cb193b70f9220d2326c2c3bcb4f11b3535359ee7b9e0862fba54894d418116de6d5ecedcd56ab56c74a900191c41450a8c10a20852449b972c1a1a1a140a65003186008212474caae48082399d4e302c160b04c19c3172b006174b4ca0461198fabe0f0606260cc356942a7630832541b8a18730954a799e876ab20358166868e9c108ef372f6d9c4e2751143b2498a2dc400720901042fccdcb191b1b9beffb502894d6858733949272c0f4444c4c4c8c2e51bf791983838373e3c68da4afa8442cd6b4899a85cc219a01060000b314000028140e084542814834a0e9829a3e14000fa3a4426648944a510c831432c6184288210010304484000666489b1432e4e7ed0e408e1d8ee47f32ff74e9fef155e8750b74760bd7d2491f95cbcad25ac71c67e26d7849a05e373eb22b6fb76e8ebda07373eff8162bbd9affe56828e50344d0d093b121a405715ffa51313b508526596587fe4d21a2a1360a4d809168f3a4a178981a4a3dbbb90c416aa8ac6832346a59d48b65eeed99e4b0fd81a0d1ffc47fe9332fe988e26eecefebcb4843511a1c218a9552223ff74629a33a925f19c76d64bd3109d203a1910f92d77673357ba3e2f519513e1156d616000249a34f23b5581445f23839ef27be9e7e059ccee1404227b7951ca95fc552a039c89eb88044d5c35e8e0a90191d625d0d75976079246d8da1fd80ab5cf6edcc8b59a0fc6f166d591913e65797f8acd517e11dab1ed70b70256686c141f16a190e700cfb0927a9b607573a7169d91d6f24e75cb866bb2b0b882ac4e18688abe64d4515ce65cec754f833bbfe1a1057c143719efd048ec3bb1f5004c7e77e8138215ee3af5c65c38def71a3ea33ada712792339e0b8e2c8ec2963b7f5fa53c72b7d4794e21abe6cfcc7c03580b79e174b53360350e8f21cc790310e5cd9f1ae3361f9c55717757177645474a0e113c087fb847a0d0081ccfff70793dd17ef9f0e6e949f8456cab88673973c618665363854b1155dd0ebe80df32fd29614cfa123a1f2a07ad4c4ed28e302f123c563de0c17df503224272c1f5ef544958ee374f7000dafa22ecdb36ac8d8ee344dbd7ccbee2530fd3e4315f547c4b662f7ea18255170bd83b9bd97d9f63bc5928e28633836ae02b5c95d46bc7372538a5136bfab274298693f5fc55f3bfd31da34d38c300fcc8125a24b8763b298b8fc83ffbe085ed185f2d5413f7964e67f53ac3316c3cfcdf818b35538da4c61cf0f034e44ff1a111778aac4b31c82e72c99daa0bb29299fa1c7a17fe7eca5ed97409d7c00b3f3b55e57487319b12be9642bcd790793cc3c69efbf0782d5c462294945d2332f96cf76bad6f13e995571bfa5dd0ba276fcd8e1dc741eec3c0305b0799546a9ba4206063438061aed25a364261836614ab7435acbb578a9e95ee567891434a2661bb43eacda50407b03ae2d33aa75d8d8718a8e81eda346052439830e3c20a24108cada5cfdc49d5a2e9d95176b42679735a6ccc7096c5c1c464a34e6371684d21a4bbe7804b942ecf27535fc1439a00a7f14ba525e827ed27c503b9794353abc46d495780725cc1b070d654c0612d790bf8bfa4531c693f61f1682588d561d78db66d3f9c43b981d56d32067c101732840e7fd9a5a3c84d3d557fec5359163ed92a03f35c67f7646a89361ede800b41d1c467af92f5032bd63007f9f192371e4c962510f715a7c583a34aaf601c6aaf5e1b1ee83ea19865793cef46e6585f74477f28d664a8eae480620c7d67f68929f7342da33a99133d3f2bfcb040a420e19a8e5d9b4862abe51a0e99a751c304fd4a5f75472e9c91f551009e9d6696a5d9d04c4dfe36e87d865b1e023f76a46172c4b790527a11937cc2afbf4e15f6fc5ba70180b833c019eef557a35cd0c734fb891aeb433ef070f5ed0bcf47ae323f8bab5a4cc793755b8ad1dc4fc7b7862f476ecc931b9cf2847f91267e2a9ec0b91f5e3d829412c08896c6d65520cad19f311d0ab8f18bdd2584ca2ef373512427abba10e97ce35e03266ba72b0672f6c4aa27b9dc0759bd2db9516a540795c2a391e4f40fc75849e4cec9b434277c223843837d07a407e688d5e00f3388742c31bbd13333207018b219941be997f3cef46740ee4d47aa83cdb6fee689d50b309d165d81df1a3fd7ce45747900f5c1047b84a4d476c6465f0e2f32de147c8d764690fff9161ce24b45cf9bbed9608116f518a0d48a4f34a215f78f6c2c7bf079a8f36abb8391e1d91777da33a046d3801d54e554eb54a851845ad18ed7547c95d22bfe09f5a7d2d1d3bebf3db60c59f9b66139bedc107268056e8b1a11413a22d8af20c8c7584817d63ea8d83e295b3117ae54b821802b2dabea77aa8277fda0b71efb30c42a88f67f01e42242f8336b63483ab8f7469723e91b9029ad7739bb1fbe934c0611fff7c2b2e8c904c35f7669c3b20ab5fdcfce72a84563c19f98a83a5f9858f464785d7142a3a39bda02bc0c908d523f5873907f5f0978fe3133ebadf4399d716a3df7126bb93697b9e375bae79d5487dd862b43f8671341a9a57d18001edadcb9f6efd604965002ea44dce985c0bea11ead4d84a7239e649b3ace9c0077742a7f430893c820b849ec075fcf8ce52fb895280936ce8abd530409832bf715b3334815ff091581eee084d7c408d0247c7e9522892c41ff6441eccc312daa575a89239d133f879f90af5247f058216244347c507067ce9a4fb17e4f5d9c55f436f158a3c563a9c3f2884bd28a693f19b5078f2fa1150170a130d0f324dfdad46f6108c2e4cd28a88a8d280061d3ab651018e22be321be850913f0106528c2ccbe9f8845ba414324c4da2c5e016019b5f224a54ef753eee000cd9999a3d28165d3befd82fa51e5f92628b01d3dbf33d11bc4600e82889fbd16706e98357923bad1314f46b2be6681a0aad33ce89caaeb31dcf115b224755520ce4f60732d40bcfc11b0791821493e07639b189da39b4e170244d0ec1606e922ff94aff7c44a71c580185b89d706ea159a4ca2a3d8e8e185572a76192372e23a7c2fcef83c6733b046c5461ba7584321404f893a25597161b477f9078be7581e776447e852545e082f0cc3195b3ba388ca13e0b6db0cc0c471a31ad24cd3c2a27599e24d053db833db4ca303310846dab1e72ae41315c9fde385fef03ababcc92ae4c12244a7b263e13ec8dd632ac3d6650bde41752634c7fe5152c2c1c18d0adb9777eb9081ba251562763c5c43afad4125a250800e732833d5384bdc2643d5e6c3b591c90d14872e24e4482908ff1badb54f52269e295639008ae5e761f700ef6c8f3a6e8119512887d58ae93aca81588956a7e4d991b3b838adfe9c38e95920e84eb54c4c74af5c14f5ca5e5d4d79c13e7c06f0723a4d7051490d4e3a7be0e923e1e2dc373fdc3cc4269f337db23be20f41aff0f359bd3c12d3d982da1ef07aa7578fcd70a484bd9d94e4ad246a1db35798c590bffc92d2656a63d048007437357a9acabecbaf3ba03c98c8327476dd3cb10ebe4483d1cfb68cb78ec0f93c2dacf9fd2a10e9baa9f72c66c0f017f4e8eee88c520afb032fe01b82a47979f679302fbff065bdee8d4b7bdd81b6d66fbaab9c3cae0e34d1b918621750418012aa8a4ffeba414ba872823a02e135fb9e4c0740b21424b3c2c18013c34120dd3e5634e42603dd012f5152c6376957e636d7f654842b469cc9aa99d75a895d6c737270e0462fed0c61e4c9816f4ff14ba050033aa6969d9cffb00403c14fdb113f91ff1034fac050c8b50dc1f60e252346fca6328a201a91d051b133005030106d4e6b6ba5913386be83be0662087fe8a8209b8d1f68190eb7c1de9d9771064b51261750bbfb9798d90edfd062895adb550f708fd07999ddf5e7e720079e90609411954abe59992403221d59d37cf79ecebd4285f70a5cdb23c911e491531b1a1a16ff9ee008d43916657257560960582310b4a4672bb96239931354390d2c8f9c8d83c48bf95f3e71d1e83d1b2769aff3fb1ca551fc524d1ef36002cf962d732ca5a8b38601b396e97e83949ffcb7bcffa17a4d7258f10bc0ac00ba34a0a87c610aa2ba14081567b667dabae8b0f3378273919ea3a8daaffd6176b06498e4d7c0233a3c6620bb70378ff4123024e4222507ea2e1dd0f25485620d2028d69c86d641db8b0550a08104dd131e132c8b08a1fb38a5350c703706e7cd30c18ab92e700e80385ae8db20a2c6a43bafcffeeb5bcf29643e7030fce39bc883ace496eeaf3d2b75bf5422a19a3e0c9f6686f433b52c40098fc1cd5e65a3fa58e6a43475d611ee3d3f702eb7f547f6f585c6b044a3c05689e1210b2a6259024fd1c00ea91790fcc80e8e09deb6eb86d6879c875c778391cc2ba510b8d883ed7de19a3fa6dbbf21fadf616ca8fc7882541310a33992a121496ca28cf32e5efd5b0a9fd0a8c62bec4641107f2b34412631d3f698a19f44f3b8f27859b47f7d42e78ce7e6303b9d0e23b42755b97e3347c59532b0eedf98e70d8b3221326a0f9477d480b8a8a76ee412fa74c1043cb7ceb94b6d08cb069f1a610318099daa69b3ec7e034513dfb02ac189eceee49512e95f4110e8656c80a376bf0d222b27452acbfcfcd4b7827ee808f8e10e4bd809802b623ef8bc9c635f6afc4cc88644e7becffafbbca06197354f4b71148a6b5aaa77264cbd212ea00e350ce279280fd3bb104bac65690d48b4ab28bb9ef0a41c944373856f13c01eef46ec6f42353e451215131c5de50f11c5bc615ea377d4b1657d050a9226c1a91c43e236b0af8d56cbc236900c737ae0d5346c77b3620ede22221617f302421529fcd4c4bc85989ee7a25d41453cca476d99ced007ad05722131be93f75db4a4e4d2f9dbd5e3a511d5bf5a102ea00db2fbc40bde4fd04201237209893c7db96ea76e6b4c75a8332c897a99fba45aada487fecfa2e5c10dc6e3ba7df4e2dbbb6843a449cfe34cef7306464c26482f07c654db217690349f2a7dff32a482ef84caa8238e1b1627d83692c564184093241b9a60fc9318b256430a014f4b8ce82921fb9d4fb8e3f10d85b804cba4e27e1379329102fe631c5be7fb895f05c68faa48f2809c7d85e40e9d1c93dacf259c10ff59fe89e1c1577a903b94b0337c8d7e47f405c2ae6168dde2496af8f893b357f93c71ef820d91f955b6ffabf79a5d7fa20515ffcb13024517ad7b5333e4d98fb597ad7e82f656451267f4e024e0275cc1c3bfde9d833967d1aaac3b6e3a733aa3118d8480ad743152cad5c7d51109b17d0b3894aad6ddd22aea4999daa825f2f9f522900a34ba2097b6d2982a5a963557ea1c3166b2999c7a1500aa8ec0ace8609ac8df9a0dc7f840f8bd56025f3cd8c3cfaae2508d00b6bfe924f916625c4dbc7dd8cf7f584ae3d34115bfb15ca5899dee35f8e35deb6a1dd44a9d889be99710108c77cdb180d6c2ffb8c85d705250011236634a4e65a7f9301ca793f6be275c6c1dc0e02c87c5c4ad628e4aa8260e754e67860d4d9cbf939dcc18475507bb30842ff977f66fcdabb5e6cd0a399125bbd066a14dbf5b3f36383c94f5994897574f8f1d97dd17fbf5884bfcfa52333c947e1dde6877c405bf39e746bbf34957c192f3751dd3dee4aa2de52334609a6f79d20076d8ae0456e98a9316b6cd03b014ff1ec7f643e76e9f1e897948aecf907ddabff85b10853c3d055999cf5a63c325d60b8b73eb2eca8f8fab5188bae97993d088a4fd821dd16639d03ff03bf7c9d135aa4aee05ee527cabe71299c96f1f3814c81ce763332bf132194b9a26108a985bc436f1e234820e24f195576a786884ce9bb9f991b47330c8bcdb4eb4b63e06183eb67de59b89e8e3154d4133be4b3d3d27f3600b0a528953e3dd84a123835ac8b543f5b1f33be3460f04ce3ad9fa5c31fd636c246b3462c3baeaab2d1e0a752064a102e1f7bcac87eb5efc498df6f5f50a6517d3ac57f3cf7d78136b622fde2a5953311fc79ce33a89ddbf288fbe7cff2b820da1f659bd0f1047a520a009dec606bc0e0dd514df6b52ff5c5b7dd012438bcb51ac20807a5fb89564515c91b5a8ea5a27dd25522721a85fc4eb5f3830f83c5b22daa4f4a1ca5588ab615a6431311c53134cf925d836bedd74037f5b22897c86439733ef7b33a18e14983c3dc0a8921fa810d570652fdde384f89e5510e64441516a46fb089c136b3f9f036fa8b21b79a455798c18bf5fa72a1539fa505184bf8ce074d98b0ebdc0ecc2e5398b622b0c240d7fc567acfd0f53dc9010891d4fd109083ba295319b52c15fffd8b724e280c490df0e8f940e0c074d8ea062807969ee51ed4a561fb746442378abe9bbac154c997406b9d64f74e7a04c6e696d6ec9bc3ce2d68792d8c27bb1729d83a9db2b892ee87057de7c3db60497d5b93111382e181549c3c8a773dce45a111427e8948cca9a75742d0bf01df22061ee2f50f4006198a3859caaa2f5c571a454927cbb9992c3beb20f58ac46e994e162ce112737443e58d635370a7d2fd3482e7207f0202a6c75ffd1d66c00c463a821a82c2369ffbbd18d1c755a45be283ffed5e0f954d94dbe1a69a85e1ca7812110d1f7e4d2042611d3638dbeaa62e565e4073a507857eb157c1c9519946615904c51c7159036299bb802b527a1192df31d1c8495a233b3a18db18181dc49f739a862ccd47473f8c36501ec1b77dfd0ab1ff1f9f707c265a3371fb727dd0e1a53d05d3205170552eafcc1568f17b5b4d7478ba65b979fbc5b3f77986809550e60019b24fff2646deebe7547e8d2cb23f6a302d5b1835c29ae8968c0409a3282325c73d30567431d79c04ed0a41c870c9e2928355846620e127ca4aa6058a25eb69f5fb80bf45b87c7cbc91e5c93ced75306a2b4f5c1850d5a2c9355c5f5d4308bf23362e5294b77b6a0616f8c152d26aab83f81f61027707182018e98c13e177b9dcb8c3645a4840d6ba9d4401557efbc157371d0b022cc000500063c0ff6718ab0f7096d45496f9ff7ce61d5d38875e9ae52f58268c9fa7eb470b87bd677f727e001673880366fdf19e3351732f43015be8f15d7a19418f9f2046138ccd94ba2dab279cfbdc79e0aad8cbd20ff427c2cdfe49d594e88bc99a585df29870c2f920b1c05de01a057f7fbbd973bc9356cc3d64785546827cdaed015398022e8264b389bc7ab3ce60e29218f06794e3ecae94faf389e8c09d7fcc5a24696b20227073b9cea0d9247b53c4557405b10c538d7a14cae4c77690ad3d68ed8cc99bab942dd7db20952a87abbc78ed4b31039c96fa46a5ed910295ca436fee73d27d4978cf37916c119b11334455c1f84e8cd92c04d2129c0be7e089ad89e3ab898edc638bc8fa05cbaec5c4bc8b97d20a5901625665040c9d02ac1d0f22f5b559cf112d514cf19a9a3cdb31f406299016b86f24ad7926d8e7b0ffc7ea5aa23f9a495af1400500f5b9341b503780f551866709ad37a213bec2182844298c570c22ad1c38307cd5e7963ac05d213b93d0f524c2446c5231ef401263544353ebc8a0803ad5547d0efa74ec180a47fbb3dcc0f71a1c695ab6c7c213e530313a225f8f27718d9a0e0243c50cbf8a1f56ff2cb73420082b63cad9fe9c0817a7f5fe5eb77c164072194fc584bc949159ae9d221ea99ec4db72dd78f58187950118a469699201c287a21d9fb67a69aa62b92b8ce584c9119283f138856ab7843f6d85a451c7fcbc654a8c3cb1f70190c5b3af6b5d63e66e246117897104a47a101fd78dde7c670f41215beaf20b9fbb1f0b2a72d52ffd407fd2be1a6fca58f41d6833c668252a3ebc3ee5dc94456e8f55f493c5f9e74fdf93cf246468c65a092f98e1a3b7d90cf7a315268f807ad219470757bde12fec7bbfa455f1f0e7652e5f6c9e4fbdd1afed7bff5955fc84de0fc46d00df613e3ff9a3c9cf4f933aae582f0fe0e06584c9f7a3e4a0ee1634bd4309090b60e6cec39b2b3986f5e787d14e29aec70194b9c2bf931283f14331403cd3a40082fdf1cf979460e24dae40a815d8942e73e559808b6946e97f585ee859de1daaa49e201b4a48a2165b93b870fd730d916ac4f3a6c431a34d9607ecfe3dc608123a8ada31d004431ef86d981ebb65cafb2729553fd4d1b16e2e16bc0751f868b86104d6dfe4eafc24d38e120d5a9aa08c46dfdb4892d5df9388ece91a74a06b6f434d86febe8e8c8785401cf4f51e8264fb3b7b1a3cedf8d1d0d3bb7893e9ff1869e829e3274277de079f7cfe4d45b207133f0ebabc0f4e32fc5b89ca1e9c41435be3b0c6a1648da3358e92340ed63894d43859e38852781f9fe4f8f712913da67c20f4f22e50f2f9b31aa29eae7c86d634a2ff3a248c69d05b257d23fb2749ca9886bd5172236405a0741b83d543a93422ab854a6a04ac00944ea3581248a2b180fefea073443284ef1b1f0882c3f90791272441826e2c329887e91f04bc963888b1a29498c43358b9ec1f101e97006819026438916d1070a97f4c3921f91fd40988f324bcc1e4b27f2071b5c4200a8a847302de60e5b27f50f25c52501612226342335ce83f10627078dd043dbd9894c1880682e3d0f22fbc49f867014429b8c0ca35f6e75ee1e126fed4b80af01d0efd2379105c4295faeae6e17a4cb890fe7c1c009a8af6ea9c208493f3011f97d1bf7345e19c452e008abfacb102a38c59bc7782c4ac2458278dc0768320c29b00d0becf6eea1c2dc15d8f60fce7cc151861d8e2594110c75a066696b628a5d367d80629f13d784f4ad42d08d920618b891b85ba00b52fc558b8d86790e42c068a86b89d13d0808b110465d246a92e40ec2b69162ff60904b57c6c4f731c9b21601148001dd4a9c5cb66c3ffca5a90690400f3f1dc7069a3541720f695348b17fbf8819d8b3d4d7216eb1bc1b538de2ab18201f9bf38c53ae9999aa280f600ed263b8b3d9ae42ca73702b4385e27545944ade7d04376e1705670f5573d230bab580cbd2398e04a8d133aafda9eac38b10cb4484ea3eb226146c2e6da4992f0f8b1161001064e0b6742b6dcb26da1d606be3972c40076c8aedb1bb5344b0b338c8326b9870b1640d0943414fb5480047b720d3a656c37dfb5f317c7412c0473b3673b7f701e782c2462cb956dcbbbd306f67a87c172020276b1bda85bacca967a0f5a8e2751bd654e30e1b93743c8ae17873a184a9e045f83568fc9cb2ea4d80e7650658d048db842774556b2ee5ccc717d860c62b846ea814468c6606b425903a631869305bf6da98541ba14c83d7ee5e2e039da7929a090d0b2dd23901070bb0f82b522f350ef0c739386eefc7442b618da8e3d2ea519ab0e93cf8986d70158730ad05edf2a7fd8ac758955f89c769e426789301c41e10cabe1a43b74e1ca5ee2cbdce1c65f2a3f95896820e95ecc3cb5d365d3c656fb4e1c7e1ca4715e77de8801f76830865142ab92333f518c1c1fa1d43be0068a22aa29cf706e7d985496390121032b09c2df523f71a6f7c26014b74cb38ee476935bb5755bb1429e2152aba889359a2f1ae0106fe3dafcd7008b8601d04b4012cbbc28906bc85d569249a6d81555b7bb7f6a782156cc1d900de2d31baae9d317e127bd273f745bcea67d117a38957334ce94ad0d405f6b19052324c87bacaf24b0d75ad8e2133adb0e3b66880650748d525c47312b0a7a98664c1e35e24e0020fa4de23ccccb9effb348fff55b2bce30c2b6968b20625ec989380087daa716812a82e960a4314d9c7bb39fa4c2b4bce52cbd35249b3815221f3552a1d250af871a06d175375f3181e2123d63a0143171293f65c7a7219e9fcb4bf54a250ceae5bd6ea2c14e95cfb129e0dee1f19ea050b591c785e840e750ba20a18ecf016cee3eec700262451b95a233305d41dd985a1cdd8ca9a1a29f1c21cc955e174ff2841f22992f20653227ebac96a947060261f1a937db0eeba158aa27c4905aef84a74f7a4eb741a6043c2896de69b5c1246472f97aacbac36d0a4280a304eb15d08f2f14450a481538f708d7ae021e5ab4334ff54522944eac35e803cc7754e93ea81da26ab69b07d453c568b05bc48d6a668e5baaf03ef20a609928a990b677e3a4cdbabb9f38a1606ebc8e8cf349f8f6f510a36eb421839daea3bafabe554c53946b49562fbb5ec8000dc5426ebe5c4c8267d4050d9de1170fea1643c6be3f6d1028e274e0d2464e1d0e2347e867ef4f8a37ad9b7827ab28207097ad6ea6f4e885938f2736c0028182c7eecbaa42cb08043878f0ed6497f778c2ce2e5dc2b66a920257caeaef60f15f59c9cda520d361d4bd0cc3866f05068656eaa1e5b8404458ba5b80bbe6bbd9bf89bfdf87dfdf86cfefc3dfefca87fdfebebd46574de6e8c3a182b7394b996f0fb0daddaac66f70a60dfa54dc4f4d085b17bc9ce5769135dd6f847e143e70a9dc4dd9e01082511bdd1efdb7196a795577d120888698d51272682fc967e7a84f7cd13a4473a0119a38d121c757d74a18d88d6e9bca54c6c42c650a41a073fc18e2c9465ccd15a128e2eddffd7680addf0de4cc9536305e0858c8bf3c8483286c41bc3c9539f20cae0758c55097fca8daccb910ce85da347be667b0c8800c7d70cf140003d86aaab776c17cba75ff084656c1a9d9808e33eaf7806ba6516c5ed87c36c05a4ba2cfa435e5cdb43a4ac0dd2f8c65f70001cd3a51d6536fec7cc569a46d67d901dc8fdbb698493c77d8ec1938e4aa0df7dd04385c6de4a85788703b22059c342e3895e238a92793942749dbecb93ba835543a73e8a46e5d1ce157d135bf5b7253f474f87f31b1541a8e45d4c7c8c55f9d8ac3e3088017efb50bb63a10ad73f2010c73f4eee2bd277fad217f3917fb44b55e9916b7329c4a797ebb886ba4dc2c7c829c191a86f12b6b480c8007c4538eafdda0c8388845882d7e0959a25e3eeb08eda2b514e37d681b9bd72dc490f8650b1c02fae5d8105580a424f93ea3281fa397ba874d5438e855fc0bb7296bf28049838185eaf8c20811ac1c5dbc511711d48078bad04efac0e7616e0354532c163d70c9351924a9bb1edf3c93e330816a55ef053aa70c2bd091c2bd92204378ddf08723540a0f4aec96e3a5e04e2bdb30e629322c6055b012c256c1b7f0b57db9d4f55896e778a095d82b30d2a51d3fa3e10d306027071442b95ca63ceb415fa93163f2c9e07128efb197ea2c920de7fcfef380d718a2af24c00e37aac308ca1dcd724f03575a9ce8195083b29637bfdf5152aa80f66275b6f0430905d12edb09a8dc70de126eb8e821ae66cac1e08ae1403aa4e42f79c2803d374ef28cbf7ecf8129359b174df9be8dc00fdad542d8285c93e1aed817440a04c68e6aa3180990c34ef0b5170cd5f3eec4bc620bdc6999bcba2d000c994b6b58ee8030735834e6a39dbcf50a810a462f07d190e4046e82f66275429ca66368c6c393fe4ae07fbc1b20d0b4eecff4270d87d23f550ac5c15c6075145cdab98db64b6ffa289b08bba1da909b6b72db732a0fc5017f5a0e837a9ffeae4c8d88fecf9116ce85f40935f650e1cdadfef5fca46175017217588c4a4c955f504a77bb03d01713fd1e54fbd80b0e213a50432822537c9f109bc42619844c86c16e54a8b9fcfae97170600cbb71bc8791f442c4abd75afa938190bfbc67c8ecac97407e7a54622cbc6c9504015f19011b0904c364e5d9c6a869f3848dc2af94359aa895a3b1651ef6284a17b27f4632a3763cbeb956164907987adb80168ab18b5453cd2eea5bb95ca2202ec45f52b1e4788ca29a803bd26eef3e84efab2e96a56b1dc5fd786ef848600c970e8540aa03a8ee8d41f0d63d9250b42469d8e478f051360413e36858859c87dc1f3d11de249dbf3892a09830f0c73f78ec952d82eb8e8ae5c590c1da03c88d1a702b0d48f4614364703334f4ddd4ef729b3e8a07ba106f0f0b0b70d1453a56dbd0688898d8c68eb733740b2e098fbc8c30037d52722cc7b7a839b016c2f09d9cfb812545d602adf082480110e0bb8433a4e9a0082e6f9746f0795b2701a9eea3472ca5a593451041883584fd1d4a13e11e7ad0225de6d36ff15fec957c7c0868134aa58ba7e9116693084c0cad8744d5e2220bda3f0ce68d1a41959437a49853062162cd02a37fc930e63b0008c0efeca324911ef37b4574ca3d0b1240c034dfbcad45a4a0401ca0316d947e1bd26cc4f6e12ce2bb0417cb7de0bc42db6796c2979b110d5d7f656eb5657707b824af90f6310ff7fb7c5fe8155acccb043d002a67507769aab5204d25d8f64d6c35e9073850fe44a594419cee0b970e9ab0300a2caf5f2507c1ddc7f2bda53a251020078fec7c47f2664d10aaa6e9652269527e566093a5900bf36205b3aa60c669cd3bf4e31a22b04908771f86a6506125aaf22ee292f667d8fac64b6037987ddafb2e7bec625f73e14178024c45a75e6a45599091494a95cbb0d2e14e9bf877b16098e7ea3817fd417776b7c1a5edbbac980a3ac4cd74f062631573f5689ea2b2640eae3e1703e7c52b871d39ef6ad361f04189ad86091f7eecc1c938672a4947f14e61041c1c66a52865c2de4a0d3ece96bc56f9535674da5ba3cb094e51b1b14a09f7da9878918fe161030e05dcaf40aad822c2413cedb0ca744e5134dbcef6707bd9928513a65cba9fc993ef12dfe8e5460dcd8009fdfa8caac596d05bf2087fce5768f842bb0113e39dad6ddef84823c10c483d421f216f0b788604c242bcca8fb7a0022d094c745641c77e3b2c28efa390180124e7290f1c0ef5073f509507bce623314ddfc509534cf16086153b21f9d221645833d38ba66971c46a720e7cb05e6430c6f981498160481c186870e26296d982e4359689c1dec017c7d8f0a5e6b3ff60840bb89027a2c156d5005a9ffec7a64b8d539a483d44b606f0b74997a8c1b2fd54ec90ffe9b6ddd2e8b8b8666eec20b664a9617cf7d35e3cc6fdfed33678fc67138d110e96d01bf404a8b1d871a36f854500872e80633a01a33c33c4778e6fcbfe8b8a5263b7797fbef76f44ca811e41cfda62a49d78812fc68086764829aa272049d1e300437ce9cc985bb49cf2e3252df89a1c492b614ae8afbd87fa13d757811089a577882a2689dc36641259557508518db5eaf4438ad4fdf1c55176803f839481ec1aadf89d91a336c0e87207423ccd737b6d2d2bee854a5f20b1578c24dd02c96a3f7be7e6d4c44d046523f15190fd4b580768f3601ceeafc9a9ff0069a1fc112bdc842bdc4928f27d42d8ab21f088b7b75b72f726d948fa4b9692ecd3f5a26be1702e7ad820bb8a1ce98cb5e1b97fff59bf8812b06f6b47e6ab62ab234cdd536a25da50b42d29c7bc8e7862d9a0dd03e71c646c43818f1c9ba739832e85fb0e91c1797700c5938f30d4698df74119ec9e0fa29a8ea9cdc3d2c3e84ef510946bc20c2eb239c065fc242217016868a69e614b820f885d1d5464da3d1ea26b8fc4a247cfb77e0fadccf646653efc891134c214ed20bc1bcaa8fdf7173f121aa8d89f550af7808042267091dfcd438e0fecd74babe05e4e276dfbb76a3e4b26becab79b63043239f3c2e82eabe9794085d06fcd1d72c6133c9cda3724e5a32fb0bbbb561cbb9a199b8af7ebec974049abd631e9734adb7fb3b33336f00642c522e81d92875cabad4322fd962bfe46cab9ab293764f530ffb152ff3e00b9b6d78b13e19ed0a5cb6f1d8e74914c950649a837e66f82b3cfefffff1071e216bf6f71235a7ea3ad30a33daea912b0fb30e2ca588b697e6bc5667adffb1b480fc7bf4d321b674af84e379c5837b988f802bb8fa5fface79510ccbd58653647bd3f8b325ec02858a1a0ff89f9188488d36cc39ab07dde58e0cb839c70e4eff016a146d6b9f9d54a5852c882ca7cf671ed34685c6c2feea22df6791150d6a2170775cde17e24dc02b1699bfee0d672dd7f854b8e24bd9b629224d864460d6b0d813f5a9f0db47111b17109cbe912a0d628077966f06db7e4c8b9fddf7cff0fa3cdd99e7f9223c217883ee8f3c12b9e6c7a56cc859e9a84a08c12f42c54e81fa52db297a448a240ade085605b2797564ee8ffbe3f6c0a80f842e4864ec4d10de399e5336f62d00a526916b2f0e16bfc6996b8e497103baa2a85a7b22c85d03df24e1f837178a302880eec2191fed3d613d2a0f2ab31c6b245db20c9acc57b8461bcfa237a5cb9c0a9f874cd29af95c6895684967d2387faf26d2a47380b305e35b532a74ecbc188c367b5cd320b55ed9585262a73917aa9d42871ab628ec1070d6818579f62f340ff1c060438534bd2aabf17e009159021ead21dbbd20625809031a00cf6240cc58b421c318a6f4b14821fd24078d2a16053c31bf66690a80f6ea7705aba013a69bbed928a5143cefe1d63a9933d2204ce75dc403b194cdcd7aa98a02c27691ce0cb63d4e9020e526306629091800f926239b06962259c64e6fc4ab0b013224343ce64e8a536a1980339854dbbb89f718ba7bf8e9700c75c3a8e349eba2b07f4b501f81bf4d35fcde8aa787de6b9128baea40b0309e1002fa179b86ab4b0362f016b7c081ed383d11c750f1409e14bd6e13c9b310511ae296862d09d090c40b6feef51489863f8cca4b3867004caa8b015bd298c2af2aa4c8feef0011860c823985f27a70e01dae75b4937257880812e09d4fdf62705360b9619e6a4cc036afeca7ec49f4e7480ca79bcef8de75164c82cf8671095532bcb61b237e94720bafd1ec5cc43da4b1460df92e034b51cf9e0408e0501c8b99415a23246bce07ac49099dc8322e5a73a9e71437a79168ad818662493f7af6d1a78b62b2e2a8bafdf86cddc0e87cb6b519f8c413862cb89a4fc53ce5c5a13fc63160c78bfa27f06ad01891d637dd6b06914975f43122193a076b30e4d7c32c86f8d2556501c2a6fb25b4cacb5f4a8666fcd4537900818000e2402020032be19c90a68c100344122b000aa8b1192000050232280368a60dd664900009029920531fcab748544aa4281028b0208659f727e01654a5ef42d5120083d21394c4c75a7280619ef6f8c126c6b986e97cb558603b47a9ede35d2a294d241be729dddccd228c22defde85201596e520c5b7a7094950213d6dc033cb7b304719b9d518e4274733b5e5485537cbb93d94090fa521031e3a3b6301b389f208e6a897072852b752d9bd1540b3b80c2a3f7e6a42f7f636d06442d1f12fc24ace65a4184df1fa70703efa35b942d365b7b538fa2b1b00b233c028ff2745ca6ae934b96ec4035a09b61a7c857e6c8abaea38c134b9a70a39f3007fcd8358e7724798f1d4fd07bafee4626a134b4c0889b59b91ab1145593479dc1c2e7632804818d0590cc02afcd43947a1e0db20409d411a435271b56e45db50808c8f8023fb7d5849e7d9f77983d02933cf5690e879aa3dcecc235bf91c02784cc8e47345ec5ff6e943a51ef21e8580831a1200c83ba0089aff2a02b836fc39c9395c0353f40db1c26e9ae3d2f166e89c151231f163ba512f1dcf8836283cedcdbf4bc913bcd44f0972975a9fbb43792d132d09cb667897da4c278589382674b706aac487d54f3b6ef107d9cb94059ead98502d3ae77059c4a24c94ccd54e6576c3429ac40eab10048f6c014320f82e1d9f588fd7e53424bf16d9056bb9c92ed82251336f135d6013063aae18ce6789a28878bb86d60d1b59c8b871d44e63ccb1e242ac552d886e5488a63c4ff350fe02e5518588232414bffaebb4ba9b6f87acb606efd71f10b654720c31d896c833302f9edbe015b21c8b17d072d564f270fbdbf07dcabaf5f1d25826beb3370b85bdd161319046321461e6049d3a2d359001705577e810f20e2b63af36b23264c2849dec9017dd95bf17cc3179a85e5b99a06224493d84e4643da9f943e104c9430eda76d875589bf1f99edcd6b2c0ef651ae6a205da49a2906863bb937543084eddf1e189a9ef89c3bf983654b9d2ad39129481912c17ee8028aa8f1c36c463d2f55775311b848233ef93e74ac630cf4d9eb21f2b5400b774e5e5302b0f13aebd187f279e4461b860f23425f74335d7d71ea16eb72cc931fcd1b853bce8035927230cad21c34ff2fe0ec19522038e35d09f079f4450b9180d809d963f4ff9fe6b2464af62fb104818bb678340ed97d928f94d3305a38833812fcbaf8ef34828f318fb3f714585266753e9a0cadebd10a7ad07a026e3c022406c95762e3f042ad17269d6ca602f9896700338d12c766b1cbea5765190d1389be6b03acf06bd38f9a97001acc43a94934da5d6ac55dc788efd552011a11181a05b66cf4162fcef3559aea6cd8cb8a78e1d4458e85c1275b7b28a2fac65fbc6c15a3ffffbda15d8123f77990bb535f83514c769f7b3968ffd6a32c2fb387658a94151b20786b711d468f21845de6de533dbc793f63727830c5ca2ec95ddb5fa81b4059ee8e60f6ddd7c203bd14cb5d7e0f015245b8bab16112493f75215b4188e4442e0c1e69d449156dba1f0697ad85b89c86d06eea1575c6ef23c4609f77b162f9475c3a5c8a23e3dadc6bd3a8bdd2c837ea2273e0f9e9af40db1c506b3722a61ad9a5168ba81d8e20375c611f5b472d1b65ca119a78371fac40855121a8d1f760ca738c0eb9f8c6d685b0c359e2337f74bc12f3f271d3a14a87eaff2e310c5ce07f2bb78a27c0814b8d3fa3c11601739e4c8102e9d40d98286622f01e34566b2ac24ee1bc17f04162fa4c4696d37e7ae82445f307daa5ff173a7b20ccd79e9db79121a64a218179d806fc389a5da0db8c0f2802f905143615aa5edaf8f184af125192a8e371e21ee946c952da278c4c4cc2b3223d75727f724825c15b298b24029ae4fa56bed7a378d74e7fe3ba396ffada24c1ce025da84909205471e9f2830d31f54162ea9a7932a194fcd615a19c10ca02e4c55fbf61e4828dddc253b3a4d08d2bd5b96cab37ffbb6be6943213c0cc009c162206b7517e8b296bc2bd5c36fa132cbe9d2df880bdae65540630a3916bba80e80bf80dc70cb6288d10ad4f6849f37f49da5dae1ecd7d86f57a2b902dab5e65a02f47395d3b5c897160cce5c95d1d1de1dc9ed147712d5eb3e01da7a95cee23de8de3159591ca088265a2a26475481760b0611fed575e7843ca4c09426f082186f949d498f5e867132391bbd68128d7736a04e6e3113df098be6671d910af12611afae740b0ef5b992a33372b5cc427db637318ae5e1d2f3ec2f3845f034196fbc02e07181339a1349d46791de33691aa5a8b23fcaa5a008d397f4b9e9e0f6185909cf74086e5591b676333d0c325f90cf8f40ede71e1803bf7d3d1dd994fdad18108d2311b2b5bd6e1e4e0147db724a03a5cdf9276a64024ee7047532e4b1686742dfd77fb740241097936479e7621785165c6198bd2bb6bc0a597f94e7a1d0063dad9d0abf241ec0e627141bcbdb2c3643bc54ed27b0eb0126df269553c9cad1425c1f30def73352a3fc796c78fbcd4ac32c340371e34b4a2ea715c952f702295f6bceb1dfe609e67175a95c01bfbfc006c407ce954d1136c7a9643b841c85f9b16849847367dab53a4362eacf4f3475239d51193f3aeff841fb663bd235742ad821b7fd6638477824d62798b407652616ac8a6104d16a09f70ddc677f8bf6e0c62627fdd4a639657426a737fa6736c9010e4386fde29610b9d1c073c6900fd4ef2d4deb49d858260a71338fb8ff5601c47e61175e91315f1e6363b8cac1dd4f9e08fb5275be7a61e1ac3b37d38b67c0bf2efee91ee245658fb45f41d460fa9fb905dc996a2003af43f6134b45200dd39125d7ede25d6335c27b93960b7c23305b404d83d870ce271d96e1583346b06f5c26c96b704b8102879e613b8a529be4ddd5a1a732da578b9c6ba89ab552b1bda982b3832994756a7fd59dfa7cdebd72c673b98b98a6d855065eb56b105ec1dd2237f2e6815ee88fefaa0eeaa7320243fc0cd7181a5f49701d4c6ec6c6359933dc8c0b862dbda75cb77c4515f85820c800b50d2d9a53ebcb436c09c5e4df873b3b497626f101511521425481d3342a4724c312f7bc14ad1c95dcf0571596ed802942c07a4d408ba7722747d3471cbb322f562a25f17b19ae9fc16dc6237efd2dc6beeb6b5067060e8432c2388e4291aaf492438181a4964e11f55f985a46cff77cbcf8640fd7eabf018031e87a94a213d18ad45b851c810da7503f694b75c9074590c5d2b39c7c102ee5d228beca2b96ab7bc7d24bc4f666fdd2d22d74ae3a898dd14b0919127a8e8ba06c9aab5765b6fe280152f18de5a562e065f90b463237bab12be63ed08a68d99d9ce2196150e275c4460f3a6171c698e013f2397c40f04c1526bda6365e21feef9978826adfd4c98b66ff11f2ee1dc3f8bfb4f3773e1e951e15fb290c6dbef0f41f0eac2cb87e393eff20775fa5f85b181bbb3524e57e641d1caa0e63bb6137d1c309590dc26407c0e26e0f0d9d4615e1c937c6f13a4b2e52773d0accc9400715f8a3a166396232bfd270dbec757320b49c3ce2236582476a02cf9c091fa959fc21118ccc0cbf9499eb7142718b282504ef63cb8a5962891b15c64ae4b15cda19d0e9bfa7a332526707824a0d01fb099068894498f22701eab1ed6a30536d81c9d3aff6e30a8c732788b4300dc88138e10759cbfa06443ccc711f061bd826d2d00f6e2af97dd9b175d20ad83d61f8f81506b2e01df9b344826aeec7febf95103fa33c341973ab2491ebafd49a554324d2a7738a03550eb98521f742481da70e4031c0e20b35ea2f63170408c5e7bc87a009f914b520417a72bda0ddceae3b49463c54230c66c7beea74c2522d510d99aba7f21a1e32507fbe4333ad1aac35ace75d8bb136a6da67cdb23e258507beb223b1a301abc236acc399a8c11b55c09da8c399aac59b54c198556199d6c14c54c31d54e018d4e14d54e2996ae0cd56304c54e08d2a604e54f0cc6ae266acfa1b205f806e643f814109bc93976cbf946040057d06527143859c0d628c5f61222cd4ff1c5959dedafd689086d95bf1fa26648c6fd40755e5513ce11d0b55878e71398cb45f71834788b10fc700fe5655f58d1573869d99bfa8ced6e399ac7199f1bbf6a9f12bb52dc5b0a878b16050bf95112599b46e0901696487546e0ea5a4f4c6e182e038a96b36980904e36d741f81506643d04e831d38b411849a40aa43c9e3847be831887572f04a3a6210562f2ea2a0c4e57730adcca1f7bca400211b357c95f3056501988250f5df0a2ff9806d23ec864958902cdc5dd786d1d716254df94b77dc98c94a3be8d54bb0b6f7b664eec55d29e98a041c8c9b0a1b861e0ffb3525676d02b1827e017c42b65ce8f90caa4bc912deb7b640efbd585d4722428397cee2a179dd23cfffd1692fc244bc655826cb083cc19922682fe614d7c3e183bd6c05c8b5821f3284b4fd40849dd2d6eebfc277bdc7b5bfa1e6190114c33e7a9576388636c1fbeb9d092b428e97eba007ee75684323f222f4cccb78bb9e016d8147869515814dcceaa9985cc4688706b64382d747ee34a86d0f402a93c7a2ebc6710c49ea813eeba3831ca8aae67ef09d8389a48410e195ad82bf1886d1e009c4a93db68f0315e29e954bc8d4ba72813526d331868c360f37209e1f23a289f8aeca6cd7d10927a0226b49db98c1d0a6d9b786c4274392788559ade30e908909d5b8bf8652aea001b596cd4c3a092bb7054eb6697322cf332270c7378180b2eecc29cc222c4a83d176d00ea25180a8033fd6facf3a94aa6935efd7e0220add5a1035170764ede00c5cb0a03021dba41fce3829abeb7f79f24eed18cdd5d97c2e582c68dcd97a53ead1dff393be2794bf66bb944d199aeff63a52e77dd2afc2517b7ce33479f196161f37e9211ae43202417f773bef3d64ef266faed8ed4481f18191dbaca22a7aa5682449f9d02ab2a323d6eee8cd69658b408ee3c3414e0332471c13898cacb2d8a319283e7e1f395f861e06c2504f2cb787d42ca45cc375a0ee132a20981b1571f82d39b487670e740bcb33dbf04891c08acbe09080cbcaa320d35ff4ef4206cb1649b6683e9192f09d582dfb9c1cf1cefebe89da865536a62daaac931f8cc15caa0b616f022643a414979d9f29992605416c347a2a616461c8c41a2083246bbf8604b475a7cb846916fb26fa0c88f9d96c7d41b40700a77f64641b8cee01bc73a9f189409207ab1626bd879811d56036e779a0a3524896d9c06726129bb4541c1df93da2c831116466e13f60ad18d195903c8bc52c80d38ca00852ac53f3fd418502b77e75c949f345c7ec0fe09d978545ce3442a001a30e80389c23b6f3ae3fa2d2640689f0cffbea40c0f849653664b6d3121c4f1edc74989c844f22f27fe0be2350f6dc0f640204e0d978d7fba2d10b3c75be624426a5daaac9f49bfbd45666b93be112d5c7cffe9c58605d67fcc859897d3a0f10ce3002ad4a2b6518abf88013e1984b9fe49a49f36fdcbf212a33617a5b0c6e689d24aa274ef9314e411e2df556912494b1cedca946be4dec68b5e775ea93c882d5c0c082f3f5ceee25698551cd56b4fb5bf5f90a166f5d9790fe23b84072f5893b346a56a652e9d740f10cb064d2a6c686d7144aa5f8eb0e5a5d97a814d93db3aab11a89ecc690c2a3c0ca81a1f7b59d7fc1f4024c40f597bae91859ae9800fb3b2c3c4db3e769c2b398a8150a64e99b406fbca58761ab21816fefbf54b72436091c34eb170a8ca7dbb9bc861e5f47c550ab30b5a5a35ef729a62d1445dcf517a16d0b40ebab8eb6a96179f930faa9a40c279e986a20a8270fe63e3ca40877ae2f4a8b31ee5ba4542f8a0785d448263798d7f7e297afbe7e6a64c5143eb2d08cd0aba6e02872044aa80ea5dcdad9f25f8643f4b1cb8f723bd58eadde8df8271c5565a4512aa964f53d5626edaf6a870ee23a0737dfe6ed769491524131d013e47e02df9c9088117e4152c4f40394e0772cf4b2264dd8415e75c6dd4d731c0d19400a80ec19a9ac23cd386a757cbcceab13d477e496faf1ab4c75419b41c6f72bf6551af08ff3f1f7e2dcce80d860eef70e95e0cd992102aaad8e5d8da5884541b17f7c771c4f36b76f3ce9462977e0003e24e56f6aec774391b4aeaeac2252af7eef3fac5ca12b2d055091e7e0022e7e3beb41979b47686c1952655000e25934a534471b32aad94e02cea5798a16d45e38694e2a6006d409b75dd5d2b2a9ffc112db16e5adf178ba8494277aa061fe2b6da4198f5e3ff54839829488e4c8c956ba78688116b84c158c791ed00829bae2b0dfd75a1e3af50e4c3c30981bf43cbf582e01afe15ddc64e98bbd4746050ffc75cd832759191400c3f8b2be7f13ce389b90255206543384647733b124fc4241f591c6a5a4650233ccd533b596af809caba496090ca22a9e4cb9024d68675d846102bf32206aba3fe1ff19e8dc024f529005011ce0de8881bdc51d8bc7b4b5c765faa501a4746213a1151a63c3dca92640eaba033599911de1d19930a6f791af3551e345981edce8dbad6d3647fa991524323f5cd61f7ed8b68611eab81cbd88bacf82116aad30ad340ef0c8f50823e139f70f2698a69c7b529375eead0fd05cde473a2fd555d6e861454683394978668d18e5de2a65d636b4014839927f18e1d20fdc49dd90db6e5a3686ecc4035d73c8d3978c221207e9e4890292dcc810d1efc8eb557670f0e670fff31a8de9e963a4586c0000d0acd23edbb8fd8e5e699dec642c8014a29e1437b021f87e41d5436c5653011dbdfc5c2abb35363974818d2dcaac727efb6b6d2591a2faf5ecceee8d4a24d460271958dd3254320e0ae17a0a56f5132670940c732f58c3adb63b501fab8a0f3acc869ac2eb25ddfb5e4c2b77e2db22e02f3c4ea67d95aa24fa75e879b0d296e5e0ad69ac3f8b26af72e4534f4a4e39221772adee544015fe31ce0226e8966bafc197ff16d12a424681f08a11222b3e9a9690846e1e55f43b893b8c1c64e24b2079e6a2412878ef213df7c361cae1ef6c004d28a399991d09623d76059df02078c0032dd2136c5b17dae9221dd3254d19cfe3be4c0268146823e8c6c8d99aef703382f012aa838b8d6b3bb40178cd7bc4ba88c8238216ce740845f35b61c80eddbe7e165c5c2d0942f1138ea63a8998fcb1117a7bee1462acbaa20ad1411de79fbbff61bc2ed86a2e446486ccdfc0556a16440beaeb97d9cf44ed6ab482a1e9a232957ee6a8b4ae65559d6ea2782f41c225f5a65b7039b3a50b7dd6b1c47b8d2bf185d0d3ef7ae3f6db0d9d8421a63388277fef08490e5e8916f1454be2b40b42c3ed93a502c0539f19943f1f9e52da26c50ed521dae2da147ae0424ca931c735d8f9315ac16ce48ad9a747ca054779fee477d6726faa21e6593eb97abb7df086b58470938d0b51c82032c07c8296d309547f4f93b8de3573203f69520c3a2128b7278571b9080de2280abada1f5099e69622269a24555124b0c44004d0e784e60ca59e82bdf99fcafffa972b34dc1ec8df9e1c6695c6742d7f1a0849a198e5908a0cdb6d6c6304b5335fbc98d513c31abce509ee8345e2cf90df84d86d371b995a5773537eef431746b87bffb38e023136bdef5f60b3bdcb3a2f46309bffff5d3f7c0f4241dc3cb1618b39b5e26cab99581d05768857ac6c52d4628debd627485c1f07412a036700857db7d7a3e89ed77597f71c83ea4c7c5d648c7089ead7c3bd90e50ae8ea4100aaad957146aabb6f7a5e2a5255cb22ab656b20101a5225144d2ad92c86293fc15b8963852e1f64de730ee2de33d1aee5820ae6803dccf2ea6dd7d355f6a3a96a388e161a3872615a9abacc9a7cbb100ef8328dea0fff3f3e027f5b77420981e0769385087cb9eba3c097ef56672ba718af87e386547552e46874afe4c352f5b4a7068bf0d2858e46ff2375f796fa65e2124c1c230858fa75c83024417214cd45ffd0745c27587dad3bb3ca395e90525dca0ea0fa5151408859c10c402113378718463520f2045a16f599ac9faf87aa381790ab96f4b7752697673b281eddd3b3fa706f8ffb1de06d6573ff26485e40cf035e737da8c99925cd738a5bab604b40d00dd0f0b8ccfcb88942054503b050dd772bf9d7d017894fe0e96cf2a4c63b5ed7b2992f0058513ac584e26f4cccb133065d8de6a22fd228eb11fcc7fb5bae0a96d6a61b0ae6edee4b064bab788e089554f078d9cbd9c7e41b3ab846d000f6e51c6b8dc064359c0c2587709693147b651bd6bd5ee48403099c82e5e28fdbf2394c78088b01bf1b1841a60491528e572bd14a9bcc85824a95c01a3032f4c756cb4780e00cecfd97c85f59e9557e1d93c4a368835c12bcf61392fdfb25f90a300b0cde86b2fae5357cdd316805049bfcc43d0fcb063874077b09ef9062ae2713b38d38356c1aa29f15c61198009facb8d71b5d01c4d56f1617fbdf7aa7cc1c870118e6f1827e4f89d666c1a69261847137c86349c022481bc4ace90a3ed302c0f2e65c549bfcdd3703f6cb9ddabf419feae752df16ed34d66ba0165416abb92eab2d53413252e60ee42366d9eb9fff9acd23246141948d210b90f33a5c22da7b1e64682442eb1713002a22985333664bd90d0ddd522acc8d3cada59b5ec8bfa458742a012591157344d4542b434c72f46b0870e10e898d3d36e5ba19bbc4162b251e3891d3597533d63bb33dc8c88bbd809fb897fd1ec4c468f08f3281b1193d9beee390a7a28c49bf0aced07bf420cecded66a458867c33c942148e1abbd4b29c5bf98c9a8f694feec79ffe9ba00732046a6d21c465c355ca30a30e6d7381611c76b6c880df1d2cc2166595d7fe0d77c12bb588e77db4c32d0a2a2c7f712b5f57884b710ef6a7af141b5e95c902d540254292c8350dceb6e44670fa67c61b852766a5d44af3c04296a247b01e1bbf772bee4e4d3a954ce3bb8071050154997cb01f34d457c74cfbe59fcbe00af5f8a809436fa251736518c82755cd3daeec7cf6b697efe0b4ad11fb6d70bf2007c4a987bcd6d7bf21fe5d6a4e29a4541ed411a49ab9a683da3ef10b45f9757e962d7d434c5dbfa8b70a05e25c49d9faa4ca3fe652ab91a24fd5376677ebaca3a1f2d2f3bba2da717772321c9a4e8d2110bae585bff8295e6cefb8816f52eeec979ce4e194282753c369a64658795882ea1fbbd8868d97f56f2f4f84b30d3dcd10038c6e68a1f24ae3d6025461f6cc02adaffbadfb3e2b90092d9d98a66b71016a7242d85deb856269c929385c5eb8b5712a54ab850ad5976749866146952eb1496b0db4599177218afa015ae9bab080c0dabb0b32555bdce1a1336bc3e2ff6fb09f635e282bc3e48d6df4ea61561c17e0b6a6cd22e22b819a4b6a0aadc2e54102fd46c1e64949470eaa2ee42f4cd66e0be880ee0728d46818a26fb8b42094ea4700375eef349d5ea01f5025a3211c9144da87a3dd1d12c892d00242bab564a5839d04eae9b008eafc3b4df194d0b04d04c94d83358f55a4ca0d214ea5a562a38b808ecdc562a93108a748a73306072769c31e3f06370df398f580e0b1be95cba50be92abfba749ed5467c5cc111393febaf60bca21bcdc560b84aaa47b62e85b36860e05652e146a6680e76a44f3efe0590cb1a434792451c33c5a943698c090d40652132d591b467eca5ad970191e988841113264e38f0622ffd763a2582afe0a64afb05f7ffdb7410ac29352b7f41b20682f715cf90d014fc6a22392ac8bed2805826d30802427acc51b56ee69d45bbe3b81fdc3c87d7653acc239bf942bd8f0148ab43a8eb1b70c7fbafbd46123aeebf25b36881451993e1f0a6a43d2a76ebd68eb78790aece3b51b58a4ba179191708a1cd6d0d29757cf528ec3635f1781ba28d05abe59903c68c1430f3daf2eaaf130fff163678ae8f1d932c0fb8e5a1258f1a555e354e4e2b7ef7552bd7fbe7fce7f2853861b5b99140e54b86922588340215c8454ddb888e113510084459493040d1d370568242d756106d73ade94c8edee5a8f7909b7989b6676142702782e6a02d9d1c4e9be2aa91e823baa9ae8d0ee9d9d1ba1e63f247680e65b036fc7480a05d68468aad81e1e5240840b83dde68ca643cf4eb3ce35c6c611291ffd8e0c74ebe06651b2f7e562bf50fc1cbade35eb94467348564a99122653ad5eeee7c25348ddc501e78afde1b7b78df99cceb14a4da09471fb94cad269509f463e49b83644cd10a1cd0ea56b59757830fe6eff5e332fa5db732b42a27007dd2ab17872f8795051dde9f46fd20a46aa531296eee4065031ce254f7ffa157da00fd5f41c374122e3d49bbb476e72bca0cf4056b455213db7037931416f0532f6fce915e08633168c78d4bb43073426afed982755f934ef9ef85bc155b9d2ef209bbeb3811c8e1f16e85d55214a371983560435d09a9b5b9921ce48648dc4b5710342da3c809f627052c39bc2e7ed79fb87430f94484c15e66da1c7f197294d304b1463684069e69b52a4fa40db639f820892da9239996883b900b89824718460edf59555e9972718d989b02721fbad9a9b9488ac52d74037a690a4acc27f550d093c50cfb3cc309c75a58b80d57b21e78a2169429ad175be578f52dec3536d01abbdd684324a19504d59e4389cca228c449a03936ca5f28002324c73dd47df618ddfc6bd6b8d213302e856633dde5397559550a1361ed413a8e4051b8d7b293d92d8678214b0636c9fd6b889d5d7afd2a1706bb1fecfd0850e0016b8466cc569719d89e638b0848104c930d0ebc3d052db4712f586594ca79a9cfafd79605a9f11dbc773f179ecf2a400a4fe187ed503800fc600e13a46ab04130b541f8fdef61b0acae1513a57d54c06cc77de2f9931f65a8b7c5bcbce460b6ca59d287a36b1cf95a8f4ae52dbfb085744c42c0d95a30e091b5fa0fcaa4ca8cb04f699de44c8dd94a2c24f738b957ff87ee4f654731015ca764b9f250e76b2567449841094b8309d0194071682fb18e901945d4366019065e63173198c4447521a260d2334138adc8cb158c500bb55bdb5f832ee826e5549e167bd1b5952bf0e137a80590f1631fcea431a761f08a0cedcfde6897d63cda5f5c5582ff441ed2673bd8cc5067e3ed322de160f87ad720f1d753921d2bce03f6d275a51f2db865b24607d96efe28d35971cac4ca3f51182e311a31547a777a1e0d576cb15802a547a1a7622694f9d751902f117a7068bc3f5509d7025ef8afa40949202bf65b25acab0857a66e4335630cb8b3238498bc734d9735caf4c5ab07c94a9358318d3925e5503105f1d72e46307c59c7c61335d8e7af80d024f7eb7af55410b2090c55ec4470c582709382bb7a370987d28bcd559ee8ce9ab58c08847231b2fbfda46b33671a026e802d13df1a9d4b091d4f9a3e18411ea698cb600d10f161262aed4134db0904dc14636cbbbc0b2faa3587a730f8f2f990ca392d491993cf2facc4bdfd6b615d5aa92556e0131391e1fdae495a93627f989685c91cf14e6248f48915ec7ace81e2ee53823bad1b1d3f4ec93dd7e3852af7492d99620ceeb0d98e7d4e94c7a0044141c6c2ce11c4e42b0a448a3d3508707e90f181e20ecb38d5804a04e492e0337d68ca05cb378a8d4ee36a51ababe3d94c8a24ec8346315d3c9c61c53692a8bd6727e699cc698f47501b1f2002460b4babc8cd0a5a72b0adac1402a0ec6f9d2ee9b55b77122d63d767d439bbc6a4f02a9b56c748e4857607eb402328938c78c26839be40ac4b55c7c7058d23303805047f33a201b1cdd6aab3c0410dcdba5ce58bc63b9c314694c3817b08f154ff7f98f3103b2387220e855e6e4662102189492129253197d77ffe1306d5738da335ffdfa8e24cb929626dd9fb383c03b231b4884825d393fc59d1f1fdbde06d73a04e3e016def26a8319afd1380ab8a7a835b3a26c729be42a08a2c96a134dfbc28c507aa671544aec81da0adb32f902d222ffcb5ce6232d69319426f5b8078061f9b90478d49d09ffb873305d7b14b346d1645e95757aa2f9762e96d4ef982273dc88ab9f2cc96961033fbd9f620ae2d5b1f8b589c59a477eb7ce070dade5b8407974bdb127aee6da5c4424b243425c88314d38e7998a246370f0541b76d7abba4a1eea024385c690417768c2dcc2804360b6e2065035f56a6350feb4884e988c3e05042500a39d75adbb8a132c19254825c1bbbb4fbfa8c1bc9c5eca2e4efe37d4d327f5fd27c464215ad026df9d6b59a44d68e17befcb5dc1ffb856be59f2f87656fc89b94c5d91e6ca621b18ca0bdde685b092d529fbd19a43c1d3af32cca0796d8665d8339f6fff4350cc8ddb0f9d410941963d828d552be430c4269e851f00e8e47e7c2bf49c2a312049ec54e6f9a677fcad07d77c7be3de5a0fcbf14978844617a909d7c46595a9799ff2c50ec6dc10fc50674f09405253d2ae613e075e021ddbdae0ab1611a9ed622459bcd5817e610f84038b6a0f24f9e4693c49b6687c33f95d7a148c2671dd55b99809fb3d2eaad6a85a7bdb02d4407e9edcce7d3eadbdf95173ead3af4d3b66b1198b373adb3224f1c2fae9e756f08d65af4d21d169b55078bf970c37544cbfb0afb7072e1e579b2e9db606f6e0afa51ce2f7077d44a24e928c2e852a45a04681f7da0deff752d518c47d01114e4d46ad9582c4b82bd9ac8a54de896b6ee8612b9973161c0d3e00fa276e609542bb407ffe105539657a29828b4a2302b2feae0250a07968d69776468d6ecdaa7b9f92fcc5ead6434259993aa51818a5e5bebf6812efd6257e97546549b247e46afe003a38af181a3ba88101d90762c7430bfbab9ee6ca5b47678cace902cad51839a20ee03fc23458f83b286ce7d2748ce9bf9064836cdb93a92025a5dd20c47df9423925633c34fcaabdc9d72ed0d8b0e58e22e27921b3ae64966b93dc15792456c4a43bebda7f81b64728374d620ac52cdc8b8b0484f2f8a221480f9580cfd1d7c8c0671b19d77f2249e9404aa141e2c78d8a212acecf204aead7ba46fe0895fbd6a87668a2afa4e41839d09390ace7764887c3891e36c417ecf7fe81cefb50977d0355a21d5d4bba106db554aaa9ffec31e3a0aa1255442f528440d152c0bb5030f40b09a7b80976003b5a0ff7737e938717eae83a435d2c942d062683dd466adda3486646eba55faa571aef93c4ef1d7623af03477184c639442d1be2f29a1151b440cab82e44b9e66fbfabf01c7c701321e2687ceac7df23e90f9d458df19db327607e59104b4d2cddde1669bc5564864bbc3fc7f550732157c8fa936918f151cbda244bacac8598aea6c8ec303eec44e01c1d76b0af89d8189d6105d5989303a927c7edc6a9b46a4090b835717f7f5800a55111e2c902e9bad7a592f5c32800051a99846d5745d8d608be5c6a0c0758e2b7d2f4d7310b36cb9d905b896c6c8f6be4d8f24762d795cfdacf4351bfa4af069a48870a988c3bdd774e42d929c22ec2cc6b5a3b93d88552f1ed5f30f76e6a3693b709056c24507a36040f56d5b26cc235ddda1a98aad8a183474f7da52df9cfd8ef78c61928c374ecfc0648e2cef528db18f35c80886ecec7fe1b65402757a46ee726848ac39df6b7dd89fb26e2f128ec1c0e0da7710eb15035e768530269817e003820d015f1f098452f1518a64058f13fdd3cfd31ee0d31ded579a08d775ec9f1ee0cf25980fab6935ba5612467900f01d7c4cf6ce6b9e0eae3192a2843095a7859011f46f11f9bb3a0fbd3e82a430bda9981db1f75cbd80618d1e34813bf5af4651c41f0d9fa22071887732647170744b6769804578de253279f9e73f4eb43b6a6b1dd41c9cb79e6c98809e9b7f722154174dd65c1f26fc76b423783b6c154bc4c77d5b05a8bfc21f1c0f561f6231a5a8554076247eebcf478553d9c3bd2de3e00eee0f2e4546fa0b35299df2ae34a378896f986c87264d2a36acd021eacd35410f04b3b529aaab087d246adecc4c2668660bfdbdc179a74387e0efebfb22daddf66bcf7cf96a1886eb64eb3849d67d18570b2894659840c545e9ef56946745c99a5f78d6310596cd1ed4583444bea5165cdfb54745eb231f2bd06f0971c5f3593e41c03872b094f02eb1a0cd119876d30d06579d4cfd498417596d5163e96c462ec9ea75860c8f06ae435ca32a0b6ffae1c2d4777b419c1b8944a342f95f549207c3cf93f79203fb29b8618e12bb8bc3117d1648a723464ed1bf1a97e2a64680ec373a868498a018f8972f905d571b19d9865c18d582588ce8c983c9f6a5a2af2654bcc42dd303c75fd82ad5d423c7b3db5da702a4fe84211a4dcdd838cdfa15e098d31e8ffe61d2d08f1a6a98aa8da33091bf77b4fbe4b8a9075a092e4fdeec5fa1fe51c5666397bf44630f83e89b0843c4127b743a73928ca14e0e36139b4fbbadebd22094fa277ebd5c08e224634e8dc011a7b7bb9d91adf093fe128c04a7a92204f513863f0d53c531251a08989ba0de18c009b6a0eb9435e020eb69f1309b2006abc2acb3bbe73a16bfaa14b52a54fa055a8169001fa16b4a660ab86016f13440747141691633ff1fdcd9c226f9b6bab1e925c198b954e72df2f12b96e29f881353b01aae69df1ffe90e55113071ea1d2dab016091fde566b506b909e82654599a5a638814fd25bbd10ec734cd53fe695724cd4fca069b243e3d50941755fe98981880e3c0be71996c686bf30ef1b067eb9e26ea62fb8c7e882202abd11f7a43ce6ab01c8d4f3ef83dba809033122bcf872dd7c4f911d615a56b726e8e497a6cdb877033aa9831f4f861d7f900c32c094ee7f37cd26a60188c359e296a9b4ec853cc792300e04862fca88e29321d0b45509e94b3e640cee2bbdb614ebfce4a416e755ce7af503bcd531a0e00a80836ee16054867fea83e16453b7449e3a89496d9b060dcd251aee58dc9a86c5b4a52f2ffe5d5f6235f90538c5bfea35db41b8d7ab6817c6a24378445583e64f0026ba2e7e9417e07aba6773f6f81fb1f83f72fe8cd9b25cc1c78a807f995c04179bb3fed3b3f38a9386c35c9f9a8426916f57f01b9295995b609cef7bd7769fe2c186b50e8bf5c56d8e033c879838b8e7d43de4deb66a2ea2d1b47c858cdc02dab52d7913586b01cd84b69d46caf90cd21e21dd1feb5ee4582c1d3d7c18d99f21c7a67403c75e6eb45d0a5fb73b1539864b2b394cada15bc7bf4bb5c4577952fa20e85cb072d3931c03cd931d7ab118466d218c2f472e1540142dc6d3ee38aff858d41640f1068ca4cb056b7804a248e6d0b12d90c7ea011aba9d96a6340f293fdefc4db8ba4e0714f424215168c29aa8aba8c25fd5a3d7ef097c5c10a89350935864553536252e1e3bffbe59390f8d1a3fe714ac54ad9d3517af18be692ba94a9dfc20ef2cee305e3beb887a68619162aaea5d4576416f2978c6ea440fe2c965ef87483ad4d72cca4df66df999e3f62d9570cdf1aad4c325a63c2686a989d14088c53603e3b304fcbcaea6ef63d8928cf3f396e6559690f47b112fac98dcbcd29a4662fdf9a384ed1d3be0332d7091b9de1524a3453a8a3a3663e7181e16ebfeb3344c1ed5ca2f0420ac3b8df88ad485ec535a82d40afebce58007a052febce3eacc5496726dd08a31d033151110e638a87dfecb3ee8053b777aa901fb8cc5adda222faec4d99d1f12245973f782fa174e6499521bd686d93441e8dabd02c81ec936fdf98c40e9e6713748469d70b90e211896054b6739ed0fdb0795b1fc11f62e00bb30048aa569b7dcaa6d1632538f5bee71090d784bdf6e3aa30bdadd3426542c292eb6b2c55626c16da6318219ecc1d42e520ba75c8007bb7406ec518d6cbb637dd993b526a97f6dee5b342f187efad25afac6e2cb8b8145e797b40a7db0eaf3f0f8909547a26059ea6c93d43c2863d8014e798cc81f43aafd6a033e0ce3000d057b845d43b21d948aaa09d1110910f17a8d20168d5edcc127992f317c6358914592d74ecb0c6ae1ceb95c958832442cc96e2453e13ed66cf8502431f0b21ac923e5c22bed3de9d94f22fd31c02b74ce714dedd82965a57545242c21dbd9a3e0720935cd810150028ea57a0c645efb93612fe716f5d4fdef3399ac37e4319bbd73dbc6995ddf90bd29c819983a779cc46ecfdaee86b5aec755752559c1198de7a7b6124fed79d811b7c16e97362f8c5c4b62355912f26ff6cd458bd8f10fadafe1fe95319ea8d1dc4f29a151338a1deef8f392d6cdfbd14920b0292cd5899537556ac633bb89d48f5d2812fdefe491ad9227d0d83f2168da202719d8496fd0ad82de5dbb8d53d7c8cf8e103498dcb78c6bfc2e1af9792f0dbc8e9d66dee6eaf0ae22f19d90472274544fe80f02490c37ea09718011305049f410b23ecf7013ef63db43d02415b2f47834698efd7f87e54c1772e48c622329cf798ecb9f635fa40c845c1748fd2521bf49543a69c669aa840285045a695e75602a0c01ca68cb431f6eb9ae0cfeb69f864f5e2f743ca6a06d83f6025b938027a90770f539e84a06c7ba24ce663c54b2d5e13d718c6ddc90517ef9e682369e9a0a033b1d6f9be0b0d611d8bc817e28f2f9cd89b1172ab1cef7c9b35cf00fe22457da50f7f320e8c53b729a46d0a171e443ae0ea0012c0217788c8344a8f485f54918d27be1d446428777dba37e9918385f967cb1153b218fd9b969626f456d9ffd75d984430c626b0ea713f5299e4969d5747bf68f4929883ef6b465c29616a6765cfab4a8dc4ed8e078ffe14946d9f56fd7427b43ba720cd9dacb110bb2fe2ca94c6deac14ded24895a30effe8b71eeaecc1ebbed9cb3e7e8ee3e949145c355246822e41c089116e300fdde121eb3e3d670810aaf915f88a690392e14778645b2f9d99b2c564dce3f007df8cd90ae4990e58c91372b4c7106832418350da188fbdc6c2f1925d72539c6802faa4db411fa2d8e54d9cc3c8701b671dbb791ed96cb4eec20e87cc89a5df9d3f24db028bb6cc5a5b1c5d4069ded92bbb53b8a390d45d80236e1c452f5cdc89a7dab01ad566ea7ffce65e1f25d42792c33dbcde24894b09d4de9cacf102d2e7f9b6456701406c7011b6ee2ae406b6569f2e3ae586e1d688ad76a56817a2d3b426819e2f838e926df230d51b24a60138497b5cfc14764010262c9d8db6962107e95e8a0e3a5589cf9a9cb4fa91c7e5fa46a5dac7e26ca9815328de2773a2659d38072320a5db411e514d274c1ff058fd85b1320377986a419cc633a7e324d34b42a6236172018f8f83d05e503ab30c059f8c2215149001190389ebe85c3edaeb01879cc7d30c4befe9408bf60d680068b4f79813e75fabf07e032ac063920e31c6b09535b0ce248000de1137462b0920c389c5a3747a65c1ae3f5a42e17484b43a7a94988b290bc0a1dd2e7032a6e40ee49d2cd18a5bcb2321a5dfb307f89b5a2f81724a89e2841c0fd66f36f9ea1d8551807c01aba57711bd01f060783772a101d26f2c3b7dd251a5e3a9fdaac3c56f046aa4e10c2f2870b2b67eb39968d5f19b5fe692ab2c1af08499f7870286bc8c418c842e5b79e44e39257f12184071390894b9bfe75e34d7e41d5a9a4381426d7758d3c5613116cc4b2d51e663d10b8b493494a6ae36ed35f79be6b0ebee841109f861614e9ba6d16d759f829dd3a6d050b7eb3591fa5ffcc299701e59a1b0b0be307886620f1102324ba8d9e7e1a610edd014f8f730c653ec840383262d1fb06da204c8abfeaa8ff3c5d682d1cea4d1a747942ac0201a70b19ced1a2ac037edd56fc6a4e46e740655a342e80366daf4008e9c3bd8a6cc6b9800244f96d2477bf646caa23820e976b4c76ae196f1e470ad721e446378d541e2a70a93b6ee2b13b80d7f6041fa60f4ef46b4f28a629f6a7376662d71c3794cd015b32bdc8298d1b37ad2335fc0b45d04f9a1d727d44e860ad99ebafcfc7e841393b2dd19658b3260b04a81537395e76401c3645239f7c29f2ef8283fea65042b376473f7f9604c46d4ae25e660cc31cbd4989028d2d2763f6471fd7e982b9600e947378d762e082873e19d2d735cf76c2c412b712b3ead2c8118858321efc475d1e3a6d1f84277a77e2fbef5400323dabd7df90ea09cd234102fc6fd59511864554f40646f6a8dc6a21f6c9dbaf17002620ca120c6624328f85b68aa926235840f8cf04f9818e2da466132ef9c9ce5249cb0bbb7a28f2603de268c88009d8cf116c2ee24428df4d10a1d17524a1093a10d8f949a203c8bbc3bdbe66b6b7d00b94805093f0a00f326a1f445a028ace95615b30cc59261dea4ba40359a77cc962f89a275f1e761b2d33a94ee3e242e29edf9b9224896706c513dc57d0aee0d9d3610f1c66572843403004c49736edfc25883c015300a2bfa672c72cf27dc474049e11c546c82664ef2da54c32059106f005c40576de50e5ad4f260c14baf510286e4eddcabbdb6c24e90e9c306898233d8a59b26b531544b32a5210c5d1aca0a0a02070c2a03baa355d58cfa1594b6f9d04b24e1ee0ed00de6240b32aa8d1ac3945a359738a66e984a059600f3264766db0b489f2bc138b6223e6c56677757575757575b5666a4dd41a27365331acb16263c545372506dd942ccd569896e00c910292982db9ef490ac4ac503d2963a46a494d8dd7933d4b9ae66cf260ed948ae2c09ca5ba94aab6d49314c55128edd36edbb9f409a4fa7e02efd3779a28cfbb344d3a8dd2b7d4148d48dfba89bc93d55be7f9158dd88bdff5c3daa47dac93f3084779b232d9be9a3ed6c123b7c99395c906258c88c825799ea45e6fc19e04b1bc754fac32d948f067320f3d3112f4b0fae665f1cc5e73c9ca24f6d61b894b7ae5921716c57952ed639d06ee5cacb7518894ae5b27bd286fbdc130ae9ba8cf100c44235bcd5b67eeaeb764de7a37515cd0cfad363611b99a306a107661dd2a28e8e7c776ed1021a8d722307e8f350a18c555a6f6b16e2718d89c9a57261091b755c874617da2c04e9da952664a3839b5de3a4f21a69612b7324d17d6855a47c36da62f14e2072484dc3035556a4ea0a6896e07302bb02a6051c05c006b0253fa1203cbfaaafaaae1ebc8d7d299b02f344a6061ba1c7439846da949a38be2a18c1ba81dcc6c9900070998196b8202551317c26a3e848561a0d34137c39921ce5889ba1974533a2a67a8ce483def8e88e235d6c56b4b674557650d0c488cc8d0c4c311646a2798214c0d340cd95ad2c586da9567d27f5a7912942b7c31e1e1840b2b375fe882820e1404016688dc74db9c3f538bd79557932ea9275d4f5e495d585e44baa8ba9aba948c102b22ac08af274670e99e744fba272e29ae27aea622a4742f7051154175848ec811ba17886832c355664ce7a48c97192a3347cc609959ca2a93555586ca96d45694ce491928cdc41be468a023806f91c1f790628a0078df766acf379ae316ed248521e4648d417dacf4f0405079dedfa83311f0c5ac80d073fc825d68c2985ed3450a6fb7e954afccb7702479ac46d23e39bfa6d78431c1d845bb6ca4fa1ec99d27e797ce93d3aaf6e4fca24fceaf3ff3fdc52dda73612e399fbebe7d3e3d7d0705fd90cce5369b1dc97ba9c7e5148352815440b699402964aac8d440e60899a53169c8706d2d9111b3d65a4b93c9acb5d6ce1c880641106245d4ecded090030768f0f2a10b962c37ac30058d054e76286285439c25679292e43c34523e7a306282205c72d8951706a6369884e1f175c30b2cf0c87937d28c69f140e3c529e7390ea5128a212f5d92dbcf3badb14a77b88208d9e858b8b4e79d56d6eb90dc9ce79d9616dd91fb3defb45260dbb93c3d5a63e1ec6e90e22cfb5467f64b3b30428a5bd3e116edba26777ad4da4973c85ac1c6c8503cefb4602841990cd412f2e42dcb3d6129ed363ba86ce931a608ac2938b9cfc68ea42f1abe08115293a2eaf27d53f5c8ee090a598ae75d18b1bf5be1a40d1da103727baa0e1f12cb8067e7dada7cb51b4a2b3a421e864b4c92169c276f2d3c19830223700cc1f212926b1b40b83045cc9bb02e4362436ec8dbb77f7753edc2600d818593c2d96541f96295446b817902a30298a52f6fbe807dd97db14a93e60b4c94231c8c683a02a9879a1c3f945025049124a4ae96e8f0211923843726ab82315ac03074c50b27b822848a8d1e6d7854092207d40c40688e3158663b2c750c0ea17dde7df181ea75b48ada5b9be1c7d4f04d240b9e775f6c78f206659f6a52689e876426995991c5ad82e7dd17a4276fffa5d9d45a2be5a2a279fc8ccd6682afb5e78cad562f31d4a133b60c7e40daf3ce4b92277fac11ce60b63777bba59d1823436d2e797968a5434308f9c2c2714494aa1362c8a1cb1322b6e8c04486a79a14da572bd49824b3314ff79a4088131a928210417525578d8083c41b1fbeccdc00c52b6443005d8caf5aca607a7062a48b950f24a8709c20583001913046c4ec6a4f90cc243bb67b77347aebf46155db9561e88ed7e57b59dcbca0b0c31a7bf26625c39226cd97105842503defba60e9b2a483e12a6c084d909aa130ce32c3088e29485cd0e1891226b5261e109182c49a2a626c58d3d5d3d5d54527edeaeae91aea1221e819dc5d45d97199aa31d95d95d19911f43b43604015cfbb2b1faeb03cd933c435c435c4e5c4b40b02c96928cc2e88a81d97a8212286be0c85d9018134f4252bcbcb962da9dd9624bb2d4a3b2d623b2dbbdd96ab9d15d36ecb98d54e8b539421ad263b2d48bb2c573b2d4cbb2c584cb88e385d9685c8cbfc4496a4aab01fc0763f7079395c402fcb09663ea6d0d247948f26b59c5a8e0f223e7ef848caa151b1ab73bd6e895b22ebdb291697a0d1b207d5091332905bb400a5c791276bd983e9c92a735af6d0718246c51e4854143b616227c70452c9a389265a3d59b9e44155f2907a122c79d050f280c23da4f832d726c8931e2923ce72a9646e41c726e1f4c9b3e4c155f2d8fd4edf269b069aa0acad57bfcf6980de4e6356f7faca76f8365dc504a0401bdfe6c7c3b7e955be4db720dfa643d5eef61ab6ef1518008047458a0b6c16548062e78489125727a7460b6732f0f36ca53debccf64c4443e634aad398390deb34a6d3f09cc6e7a009f704281a13809a346b672a260055557470820d2f37acbc6c2917c2e9410714a6e4666e964c5131930bbb4cc181889c0e07474f02e8417d230d1a346a4caf61fb391a515b91ed490841a8a4824c146537693fe6fc317fcc1ff3c7fc317fcc1f3f3a080315611c8d6a244fdb85a70df5b4a590adc353da599e3a8da2b806a396dadcc16e4fd228301a357930ced967fa2dc8cf0a4f690b4fdd03fb3161f41676419db616302d3d02a12517e64e275bcbe7c05ca4fa0dc63ed483827e7e6e37779bedd2a8c9e592348aea298d7aeab921ee7cb2b500c140946f5d18f7b18f960983aeb0c0021d9dd95a9e82757bb502a76c8bd55310a43dd9b339cfe58e384ff254545454946c4d33d166f29aceb4521fd3cd3f7b2e77603dc9533bcfe50e2c4ff2545b5525d6b9eed84cf0509a3911d73c07bfeffbbeeff3f0bb340808fd6416a1db1ad1279bb51c5cd209d0c95b6b606de6347a3d4f1776bdeff388721cac550f6968bdf66b347323d93cd2a1d506e2809fe646336ff73caf7970f45356ab35a2f62b1a79de1ea2003dacc0035ddc7baf8991ec1278b456c45a333cb38bd0c359e3a07fe64a615f9dff829ddacc69a512d35f2f21aab8ce44b34a56a3ea3a33f27323cf2bf5becffb3eef9bcd3ecff374dc1b3fef8e24fdd0bde491f433a70e38826a5ae3299a7f35a299734d86ad3d4de40fdb7a486b322e78f248c951950f42af659e2773cff33ccf6b783230f0a00bb5ccf346cf85dae3afb74d10e131a9d243d7161cd28c1df10096363aac5c71a303abccd7b763ca3d5112e12a87a82192b2f5df57a640c47fdfa75323238a32f63acfe50e281f3e973b5a78f2362b3803bd104703451024afaecdf5bcc5d0d688c29e21ca5881036c87f77c26414d6fd7e13928db96daae398e06d644daac4d075d453b973ab2be5d2603a78a1e777878db7779fa468970dcf6baa6d451f5e0974c62cf251397019e4b262a9f94f5d5bb7fea7010973aa23c993137905978b5225006f894ddbfdd7a1ed10c97cb24af2799ca4b984f32160f1a2886ae81ae5090d8338845dffaebf8e3e67a4e9dbc7d8f6db3ddebf128a4c19aebef05692054423f0973ec2b8d1adef77bdcb304f5f99e8c0674404cd274c1efa910720f699d9eda9c7f98a7ac28d7a615c555a7d94806fde4f83792b791745a38e68c371f99fa54278aeba09fdbcd66bb753cca35359a3e917e22fd6c9c095073c47a1fab49c52faad3efdb537c6e91be9126ce84899413a23ed4698def3d15ed13e9fb7b6f3422eaf612beef913cdaf13a3b52a41c6df3d3d9cd778c06ca808e17f8c64019d00103dff849fee1a957f1016d2eb7797e92b73c3522a94d559c226c8450e5e8141bbaacb05e8841cb140d6ea0726686302e604f72472e3879e3c405b1b023d000b183c816375f46720091a37ea3b823166e7c0972c54b1b2c2539ea3f14b7c2ca1a2955bee870d395a360c06c60128405b12b6d72d485ac13d8a094907b48be7cc10a8a3fd4a7fd12c9707f288e73f487a9da04a8cf4b30cb815f05649fcb464a697fa037382df5c422173ceb9334ba343d69d2e8c04a1c56e58dac12c71a8ac6c4738963ebeb7389631744e983094f66a5b41156da40da95376ad095e58da4bfe0b9bcb1427963485757575797ae4bd7156717c72aced44eb71507ac4402d319a11ba3db8233a51bf386ea8dd41ba5b12365c696c6b8c6a88c898d41194b62cc2b892c37586eacca245125468c18311f98aab17303c53676c3a6d3f4b14ed2ad679f54549e9c5347a6e86e677de6d309e34298e1038fe2524731e7b4ed5c09994fdc24283beaf01cad15409d5636b73d880b8c6290a3afd58f7e01cf0878f6119fb9ce08d09f63adc968a7ee1555ef96715485ad3cf5ae75c053a10eedcea97550bd8e174b68a244cfd539400e3737770d04669f1e690708c3cb359cdd24a8765bb8c1ed5176a73320042f57cfb3799e13b5a96ee3a1d599d2fa8ddfb59e0445ab7bb3fb46688348ecd2b6228dd9423d6757cf671294e9ed5bd84c713d2cead525699466a753b7d198dfde4e7b74e239f51d1e226fb437096a3aed0e1316cdaf25427ab922017b2e91ecfe00cf2592a8ff7c5a9fb5a25a82d6b71dd2e689d5ea92b4b7be63e3994201eca748633e653a3a91f9d40fa4a762adc7b16f1214e83319e8a1c7560c541dbc3a3c07d5e07ceb6d44386f4ec837090a6c05b427413150e89ecfcf5a3f7a1ea4383d7dc0fcead59a0cea9fd7649080b45f8dc0c99dd3b6d20bf61f79b38d84cc60890e945649987e3e910f393fca244af30361921bcf35e406621643eee973424089cee99561dce95c2271fad9e251274142ba1497045541daa5d51a3bd38e4cc50acea04d270abb3cb4bb3383f67304a90d222cfc81957677d59567c48b06230553a67850a3d4e5c5e84d950b2ec8a0d5264bce8ea437ce08e2e9dbb4d9d109e8161c85680fa105c1d15a6be52d0fb58e13e9db792e59807af2e7a74d2134b282560e0aefb92de9bd920525016860090a1212245e3100c97950459455355c89c2a5ca4bcc88d7933d62c0a9db6471e7f40fb096de739bdfe8cfe773a60a8c0815ccbc41c108aa9447303919e1c58a6d24e2c1c695d3a388d2c8ae9b4b233b2d393e727abc0f2e3ffcc03506040727b98905889124b4c4bea4e0c9ca0b9c336d98c0806609871c1e444c4ab6b4d0230995d80a594d5165d391ac9f48cf8c9bbbc935c1a65823b5523375d3f4c22dea176e517d52cd9df5598bc0b4f1739c58dca24e25ea539d4ba7d6da4a4c4553c97578ce02af3ebdf00b2c7ef179f5f9855f80e117d527154d42e13ac0dc8eeb54e70a946a23399bfe84d346723e7d8e121e8ee48cfaea6cc267235f9f2339a7be4eabaf9e62ee3e7122fdac7637a154204ea719c50898be234e1a1801d34f8826c41222ce66639c539f7abb31eee7877141d487714254885f5867279a35708b493d071235429472495076d4e1b9f9d40a989e43e9292e47d3a5b81cd389fa4ccf31a36602a657bf515c8e891444713926937b75ae4d286e31bd690d3a952a8cfde75e8323d9295c1b921fc8dfb271cd6df77c7ace23d9eedd3861bd9539c564626dada0159d988e8d0e891e254fb7fcfcae2b9eae609f89016e419d486ac553efa51fd45b08f556a228883384be51273a7237d081e62d2fd4b4aca74f9d908a34395264e9b9480e22620f165a9913d065621254a750f55c16d93dc9f3b64894776bfdd661d3ac778de8f6cdb68ff590822294e75ce3e99bf546dbb8d3376b41a21b6ef57b298eef0fd75927fbb0531e75ec358c6bcd74038604bf601e49f61ac3030f3ee85bc7f0a0fd8366332137adbd76534ab356a87a2e9b969e6c20dfdef35c364dfd940fafafa0ceb70efb3407ce567e8e11e016ed4452777af539c62f7cc299406de3dbfb06bf10737ac32f18842952e083239764ab0f40a000ad2463f9fac6d6311586d826b026f16656aab083560a39f2289ecb215a4f7b2e870431bd1cf243396487215294d24a873c0d69a2a203fa64099e3a8f6d42ee706a4df5fc68b64bdbb1c1dbb9349b07fdd07678841479b267889b355f10b1ff9e4b213f3ee7b9148244e914b542cf671d2d65cf3301e9a948da20618ff4ee3c65909e5a9b6fdec1f1b58770d258cb9410271a09e19c73fa0a10ecdb7406ad91255a52e956580629134449ec80722ba0aa04e25502195b2a998e944c50825051f920509e83282983a4f095992910a4e7f207d8931ce7c7154a7e2f5af921449ecb214942d67c8c66eae57cdca25d08f97d2fc9e2c082676e4169cf5eca9a73369d4b5554b4d2ba54a55c925a82526db54f4b49ac67bda5a625a527e7339c27ebd31a9a5b7e0131cc147858b27cd6e69ce02d132a2574b8f244cbcbb952ba20c5c4532d0602c4c0f5c4ca93590f99272562e0339ef7e48b2183d7c298a82b6470788149ce43218a0e3b84d9e1080f39564a2670663166f0b8ea73245fbda52d6071dae2a4c48e27daaee74ec0cb3489ac81bcd1fa5d726309109d3a16add03e2da0f9da73d9c2d693d7c534f51415b1b3c6d029a10185ac850b2a612af12949a279702c9a5aedf2a8cdb6f5edaad52d52c1b3e44f28a58384e624a504053953a51355510a5f92a62455fec47399048a8e272acd9c09505da3549cc0cc7d1ed24c38caf168c2e7ec640dfa7dc2e7a0872dd240a9db0ec2c74a9f1fe56a0351ebd6c8c9378a40e63cf51fc8c6133e097cce38669c1ce8e127b60842e73e07c5135480c039d03f514904fc01bb50dfd6a235088d03a163505c0c9a0d120a815fd0d0c673a33e1ef413140a61d65d0387fd1ce1430ac39829a59452ca3cd95cf2f6437133f7805f540fbd3fc6220bfa5c2692e03823e8c7dd3786302bca71c91adf83fd74da5c5586907bc84aa9378f4bd224a900b8019c3a49931a68a981a81aa802a70518ddc7e9cd297923798a7432887ad18e4bf6534791f9d3cc69e8d443d059e1d4ef0c7e417302f8005c004e3d06c5f538cdf176f2f61403b6123f8f4194e3a03823a796e3453d5aa9814af8dee8eba406fa48d0891327cedb9c7a118f4bf61253035de0d4c30b44722251a6221fd77392327d0852884c829f622479eca9fdbecfe6178c24384eb0be4dffdc265a50817813a280d394bae2b4d2c9a98934716e718b30b139668002883ee24d8c417da613400cc1000420ce9ee901184571050600985b4ec11ac8f301840f477c3b65d2f1ed452810f91e21a074c3fa363deffbbeafbbbbbbbf6f9c633fc57e7ad64facc955a47477903498eed1051d3e11fbb90199b31b856e02b798ce245f8d407123d0f0c7b95a77670fbfeffbbe4f471421e8c9186fa4e335ae221d27637c4d6724835ec76b6e2245fbb4abf04ea0700b9c296e749b737f39361523c9f39e778a91ec79ef825164ea631b45d1f37826b3786f24753c7421fafd90b57146d07b1eced9741757881888001099faf0348febb8e4cfcf3772f30733457b70c239e79c73ce6fce39e79c73ce6f8e238d56856158eb0823c95b6fe7b4d37ade9c1e5bd9ea5d4bf8dea8d95b04a99670d6bac5cccc5c5e366466666666ae5e3fe85b1dc91adf83512148c3902673a19ecd66b3d96c26923f5ffb260b3d2cc17af5ff1abc9f4c068e454997fc09d26036f3769a686b9f59fbccbc676ec319cf3758a7e60ce6c2aab29645602e2b922c06e4ce1ca46d3d593f7459e8deddf99ebb24453dee64b114200dfc22da3883c5de7aee79118f3b594cec49b0e8c7252752ad46fb803ee3b1073d1ca16fe0484ea4073fd10b9389c0625fc71adf53da6c2e218b104429adf17484a72ed43fde2204bd11f7ad814ab06f2473ea2434204e9c383f735ba3f5e8b8eb883fd4e7136d7dfb7c267adf3e0fa918ba484572e6b25bdf3ecf1159f4ed2383fe1b7ba443504ae98d450641b7a637163fb4bb53804b7b843eb75ad90925c06d575147d046895050bbcb7000a300acb5d65a67d137eb446237e856ed069e5bffb13d9648188051bcecec3dcf2c4bdd5a1cb3e75f4d86edc0b31e1bd11a9886736823b1d340d3693d49ea73ce39a9ad740477303d9747989ed479f60c9e4b16be3c097e859a7b58285c71c92319a0a80c3ab4ce0622adb71bd9f18e20ad8995ce56c183f2fcc85acf3feb9e91e71d54a4be55502c61ba50739b3661b0ecdb8af3c30a4eda5c7348a0dffd3a20270795460931b85c431d0ef8a937ad64cfabe89fcc2daa93ef067ea3ed797a03b046017093a09a594ae5699f7afbcad3b77aeb1b91d8e5f94a0b1d70c9db8d456f607d7aadbe63471e2061d17c76cff9f324a89a04d59ee71f9b4b9d7bbc21610a0e4e5c60e39da7bc43fa933b3bec1314a40151994b06c508b2208790b2ef700b4a81be51b700d1d62519ab0314a0b8da1d3a80ac1b54a7ce03d6b102b089445834039422a834ad1497390b993a1a0100484315000030100a0644e28058289804429f3e14000a7da640604a160883911c465114053110c32010c4008000630c22081926d1692dcf910481c73d3d09840386c900319fb7a273c7c0a252dd8d234995de05d4f0801822115df285c2e44f2ce13f12354b849e0a710d44bba8be0bb24bbc72f0c850b0b1de454312762dd7ebbabbe1899af0758ae6f4e2b9c39992c334ef8655c130bd3be50a318a5dce0494477c9a07295cb8ec1abaf4529b1398ad1538927555e088174112193c34711a84321ada9265cd134a5d394fa8f3b63c121b7c70d86981aac5e7599f7a4af04245abb38e748d086bdc0dea62d29a69155bccc6a22e4e7e7ec6a695158179130790511db0de8546e99bab8b156e272c8cad01e464021fa67a74d0406b0a44fb039b0ad17bc0d9f7a830a1075d7e43c9e57a65ae27ad98ca52a981b1997d52bfd90a55e26c46abc3bf16aa408fd2d91f0aee028a536471292bd5a88452d72e99474af97c72dac85817729775d32d930b11d1bac1c27779f61165efced8f590574b37bc19ed3caa585380176059979359933cd5220eee76b62cd439f75de134c8e3121484b3e9ed6e05d35454327405f22103555736eec0eda3691a258bca7e79735b8d6e5b8e8bbbd764fd3e60e3e039defa0b4c0ccc281d3405a71e4af93588e8ef6f2be27091b64afdd86dc108aa99b89f721adb056ec4b364b0b8b05198660b5ac96e3bf24b1b2fa43690a58622e280af048035f1b7d370122acb35eb5f5822da082443451e509ade7581a9709a17435ff4c7b5c39e77793551fb2b80e7988361aecc67584077c4d5e29d0b79e263710b89c10c7ea6ce1627599caccf51772ed92d23cb7a2dcbacc35731d1d10245e2449feafc3c985a164f7f442a9c2512ff4ebf4ee053555654f5d5930b99af3bce9b9f2e5190545f54640c5554b9db4718f436d00ba00e59e8061a753ecf10a337a81512e83372852889ccf005da7bff22df700395948f926cd61232b3bb2c83cb7774e150f49a5fcf34361210b3a564c1211b8d4d13f9c5bdd6c74199a5dde07b99838bd1ec16da611972a220902de0fed7ce43b48e0cabad65b0e9c0b4a8d46a5707b60ed16dedb1e9f569d121d8ee3b5b57b2b64aef4760d3463e22c59cffbac30baf24205646eb94b18a51bc8978c5991f106f6728096f4e4ba651cc8f1022bc2450f7e205b51a3bcb660908e9e9765523fd63c3a223d3dd58967109e4a3697e91121beb65a5fbddb701eae9873788d0b64762c159d6751ba82a86f1705a4827fe3f6ea5b97b382c61e7ed08191b81c5d8c1b172c015a9b9619d9b1b403a3d4e510204081b6c47b6414b54e1ce8ca439896322fb2bfa711ae1e1f7ecbbfe329a70cf44800012beb584ecea28d94cd8f6b2c1668aac3c2fdfe9e95bc0a33668dd6c216574563b583b495ca61f2cb0ededa22b6534b9d1ff301ad3e18c0676cc88ae7c2866b5a8e1fd58363026a7600c7046b082fb91732274600bc640f3c83a4dd1941c1751dec4c2e2d9694cbf4cb613d75d70b742ae993f063f09153ad1ae48a4d1fb3648fe59ff793cbde301c2ab75803a0158ca899242c2ac7ad150f35083e020a6755c5d198cc49bd48def0a0b03ebc8f18083ae13b193eb1d625008f22acc6b4f1eda21418a1fd91f95e2a52ddb6868a979fa4f743e5dbe854dadb7ae6039b0762a9d635056a93622765523368d602b880d26001e02d9074236cf770629893090ae93b5087c1e1db9facccc545c356908f6fdc08626f9b2438365a4598cc824817be431ae0d52310de8f11d488c4268aefa4bcd60280df3149ca02272117d2d940fd89fa218ced8735e216ec69ed2dec0a3086603ee008fcf165e5d3a827fe8a25e921c1a8f3147edeee92b500d990e84ae24af2c322fb4a6bf9bf1ae36143d2b7c4b8d099bb05b80eeb714731ee8f700ddf8a1ebe238ec8b84d22aed314af57a94f55998fc88aaaf13bbc910954bb3bd5df2f236dd3d4021c0fb9226cc0fa56f1b51502c475fed71078a4c225da2974dca9bae84564c51f8bddf34c72f212333ba61d4a972eb08ab935dbd05eed03289cf6dc136497dc690761baadd10ee84781fcd0adbdf831a1bcc94151bdef9d5ef37ea985cc8d5605febfe2c6e956891e637460d15d7f65849214596fa500b562a03c17521e5a640dba12ae0487e7378714f0973971232d465de20a2d91b3ec0f02c1db454bfe42342dc01c8989b32626a42d670c6ace0a96d0276d0ba5105cea891b9c65fe6c6e4a9409dc3ac1d1aaf561104ed445a5a43ae03e827428d620eb628f947e7f58c34a8fd6b1400064ccef0373c24a8125cad5e0727d620e50a635ef7ca9c4e8ec63e77bbfeacebab174404e4b03685572e011d0ae35b5b2b1a9363ba2fa606a623ab876ed79d364e80b7be2f0341b7a3d76df5f96478321995039e2c66cdb7d50dd59661ec5457cf0c6f60e59133d30e0723395e2d0638dc620d4060e30ece5b66fa92d6688eb32940b52d6edfd2fc02b7b187470532022b140dd1a6c3d5f7000868d9a8c3f884aaa20a5ab0b724ee16b560c153dfce5c8bda6a959186aa65c2ad714799b91694b5aeb2b95193d2f968ef1265b9c86fe84c7e6845f21b926520d3406b4fa353b5c864bd235746b7116d4147f220c8b03a8e65663b345dcc15cf216197a28c187087cad43ffaeac687129263bb063cd8a899293eed379bb527fb3875201d79ac19b644596ceda022c6daed749e9433ec10919b606de6603083cd0b58ad85d3e3ba0b06ed0424ce4cbf420ddfb9035c6ea42a234fc14b1b31a90b9fd427a762922d4d04ac8875623b8518dc4b55380d2e97e1e6b9ffd0eaa31d49f82791355e88bc310e8ccfa2c4ec4108f815fe48120aa74281f237c1418c4447e29cac81c9b3bd4ecf8a7ad41f00ca0c2b33619338b078170387f7740e53d3ec87342be9ec8fcdeb9f36c02a17cd0ada7d121b0f53094c4d12d5f56704dfa650d639c3c7136be85624fbd639ada764005d6d3f9cfedd7881932e309e8bbc53ebf1f920ac63730f503a12ef0f6ce302a1420073e912f4bb1c53a1c51c7b7ddbb18342506c1280729facc493825e0028e9ecd3c28e3b020137d97083a5aee5eb9fe7a9f9c3387e663581e59886effdec1922cd509ac6aeb186d6821441dba338d8c5d8a832c22ee8576e9dfacca4a81fbf5a327e7f811670e651262c71bc2dc01fe60868af79d201fd3a96e817ea63299e76b02571c00de08be373214ac4a9f1869ded87309573249ef625ee76851ec72bd31e9717c0b393dd83bca0f894752b82224dc52451e6ac66004354050cccfca2ef3300f49c32ba75c76995282f65f986ccbb107cfdf25cd2b010f7c9cb3b83640f3d9347875c06d0ea8323c856c16002bf5369bbfd906859cd7d23331f488044e1205f71b7d65b286a67f3a86c54630106062d34cff47cd8f82a9cbab4d12637a9ce23e1889208cfe8a964f464b1f7e43a5bdb60f88c4676255d8c46f605d23e4df13ea67f904352991c4aa74c8b090b72cb6fca9d0fe8d3a1e49eb3c8e6b8f8e936b452e2bd815bc381cb344b66d8b8c73b12bfc155d36df9df5a8cb95860a922467918e6b89b463a836656028c0b50fb0c90b15c8152989c407e2018f9c45263de48e09eb643454206dddc3ca3cc82708c7274f314eb3c2d1f4d71e3aae81cef52c7532333e5982a92ce9e3f8ad18da8cce6f7dcb545839b38e7a3988ac421fb79e6b6a8afee5e4770ddeb61ab92ad3001cacbc95780b94d829572705eb84d2e0ebc8d2a553de1c1d2306c61eb4e02b0048a6815c16ea2fd90fe1910ba0a10bb3d717e7fbf1061c99ab50d7d0b36ce789af27e32405f0cfc80216984e820b3998c3ae255ffa16c07eb10034f92681a2b0ee18e3f61aceea903cf00803bbe625a45832943d4d7c04c7f197a1f5283036131eb0583a0e0e7063940beaf829a4ce69150d2acd31793b931021da964dae5829a198420e5cd5f2851c0e8a8bb22346d1a49693e94247675d9cb30230bbd7492e2dca6acde3a7fdf7742295ef43e1fec8ec98a21caa19df18197d14df817a69d740b9ad7d7bba7bc9775ea9bad9045da7607cae25ecd30b5bcafc8a6980d4ad0584cdb2dc14b2dede7ff64b70b3949a12ff7f44fc0c8a70e0f2bc319d911a94ea8735e2f51a3a42ca8b43e6d4dd028d5c86e538b6167f66737275f2498d4fe204275ff74e750e5b00a79551227582a2ffcdfe28c4b7945cd650f4c0384fcf63ce23d1c5ff022501e29fff90c094ce0dc5dfcfdae8e7a06471a2f4fcb6dccf3640f1cbe72062d77504db60ba7e4ea21d7938f552eea01720f3d0d1bfe93a78b275d31998b0876c054924a095ea4afd70e7f886de734386a921a268e22dd314dff8d71da1dc4a079ea27731af272c831c420344e194483345ff06e3135b84458b4d62a2cf0aa1d4c4bb2d57a338dba94ab7af14905684e87afc669f4bb67a755d905b8519419246054c00e7d5ca955a0ef569ff5be7a15659819c4984489b4262558a48bc7ee548f137866fbf837c7a8f05171d3dc24875c463918ae8f0bbaeb5f3fefb86b39e9c1e511cc64c8b33f4ca3c0426ee526be9ab8199a32996fb8068166c61c1cecb887aa52e62331fd2f41c6ff52bad82b46f1003bd5076ff82ce552b1a18fe6043e2575cd1ee3f38bbc37ea3243d9ae4afd35db6e5a5739541f34c5e2dd1328a2b09099a3fdffcf43395b808c56c5aea4db98740336cb8667177c85648fcd506bb84a8aae0a95ce472a6aa05a41a7367495b6dfa1ca4313444be595809ac88470cc99e11c974a65844bd27b0be56244417b7f8a11f0a9ad7e37293b385ede2c4f859362e86b29b7049201793c1ebc2b12c7595974d5b56ed2b852f7cf2af8ff9165390ed26a6f35f095e970d5f44ad9012fbe78b289e7e6f5dc347d0ca87c96f06c608da9a9e890a93fab59cca189263eff4fc0b5cfbd1212a302e202cc82f4a387e08ffa34c04b499323a4ad3794e49a3480c971ed22f913be1ee3cae2518a96d1ba0e7ea77aa10a423e31d1328675b4a6968d435b13136acdb009f47bf1dcd9cf8f790e27fac1c4a9f6512fb77921d92c12c159e2ca6648a4cb18efd813646679c9b2128bcef62ade110ebf8e4b687a0f59c3e2cd1b2a5366585d29c2e22609c68f5392ac54b55f1bb97dcd700c39e41b59dffbc6e92d84d02b87184ee1249c073a2677e4b4a033bc6adaa663be937d439e7152c41febfd391802f75296fe1547cdcea5cabf15213c39a32d49dbc674f714592cf9b1e65fcc49524f9ac4e43766ac5ff4877d4c8304be52c80e13c46b1f66747305b82f292fa5cedcb23c8389c102c3088c7263b2e0356124deb05c8585973bb99c4c2566774055da3f9e8cc9bb4aacfa286ef4904d8d5e1711e189428a667b72a11ee03611a070f07aff3e4e84429c97acca8f63010a255acc3623ea75c79f5a7d8f006bd454e9aa1add36ea21901958ab1aa40a6806b236756a0cb5a8273946dc6e87acd88bdcafc684a8a0f9d206005b5368993ea6595677c3e5ef01b037e251606383efdbe042f61475428fb0041947dd54c492860801dcc145012c5f3582eedaa7f15791472e9f088911009b12bb18db8a084e835efc0988452b33474666ac1b8aba521c273e3620117e8a4d2d430e28e04c12fb37bb3a9ba6d9a09521bae8fd1def8ca127a0a7f3014dce5e75524c5425690f4d20425f48e7f14051192c1260a260b45a40db4195f5820d263f7dec86aa74840827c8520d50e484182cf9dde9cc08dc27b8917960f9f9d1cd89182a0efa7b2bf608946dc897a1974947efee88321cc6b2f2b9f68b62e72d0dbcb7e75a07e78bea4598a8a9ad6fc0028558bc4fba3acac618c20fe7ebcd66d87ecc87635bd535c8e807bd29dc927d3eb2ef6d84bd6a1e8092f4648baca191e73e658e31cadb34de16e234a3f558dc8cf5e729e26433bd82aa4d873ff6b4a12a9086441bee8c686ac21ab21d2ed448d9bc04cca6046cb06ad4c2da967b9c442185c5a4ed7f9d537f0160408a63940b24b7eff6c8123d210943b8b23f04db22137f6e80f54d73a9052d092ccf924f1dfc6c61ff032626792cff952965f4e80c221d427eb51a7f00f31ee72bfb5704af1de1dff2c2f11a89152b3d6d0cf92a1d18701b5a446cf304be4b96e1eedaa07a0f64f092a1512a4522b679163ba2c04732c9c127579371f19c6052efb194928bc904e74ad346df034a4f47a62e06ad55ce911ffdb99c553366f5d4175bc341766126d20f3f9661f220beff35886781e0ed6e205775b0c3268518a6e0a098d615877744295c7ca640d6ea572c2d2cc2a2b9344bda5bcc93db836389dc60c5142461171a3c68e75ddc069f43b15a89a195e602acad30635a201099ae0984ed900d86b4a91c6e1ab7190e23f2306e7c1eb584cc34326f10c6444c8c373863f9888f3a37394b2d80d9c183c1a5f8c762f1d4ab33f087f5f86ffc61a5bb021e43c9ba53466559d21a3eee8441f5b59825a6425f8c5db0609a2f8fe097a648b0722b7e7f07cd94e51eeb4f49178f526b6479b1065d250afda0c2dc3c028d15557ccaf7d3cb2cf0d0bc68e60e3b0ac51ec4de3c99db1b4a2a54ceaa86d1fb5118c8d6e0692b5c5c4a73a369deb4da35a0079eeb2bb74e79d7a121d4a16bc053476ccad3361af9466dc206b985d81f65ea8a32e9b5668936d826164eafeba34c63f9038836180f2f867891b81dc6fdd61f5ca95b5f4abf5aa8d3b7a547d96ba70d72d0a218f8394bab91cf8cfbb1235c37b1d85606e79463e6fa1daf4221347053a3a875815952fb76462cc665d5e6855e06e1d4ca65c93852d5238e8a78e8a0ab4f5d2c861cb3b593e7b5167611c4c9c7d04a383cd5d7fa86c47a0c8bb2f7fd1bc47939de5e3ae38eb9efa2f05613a4371ce16c58b0b794eb2dcff0f9df1f047a6253e144968aaf9cb10924bb0f0c7ecc43b47607f800b9020f5730dc0abeadf0ad15946885d1acd0a9ace0ce5530593b0315fa5e0893f5b1ffbe3d4930cd6442e144bf065f849556a50523e28a839965c564280fb04b0231cf8b1fe76a40fe7c88545a71b084c4cad022db39347bf54ede43493c5efc39d1a57738ec8c408bba7c11facab55ccbffd69ee8c8056c374ed079de503f74b2a38aee5e7d9ebcf4b78b57f2e51649befe76cd659975f5176857a770b49639418165ab86e56acd389209c96d1b8f662bec103d248cada90eef243b76919f02dad1daabe0ffd9860990c2a29c6e3f8563eba285950f7ccc7048c04f03a6e8a0fc31361202868b8794cc0bcecd2250ec728619b58221e2de986f978745f09dd059075c66758977708e1319b8e0332b9ee60297f294db4ebec2d45968dc2aade516f7b20cfbdcdc133ffcbf696dd232a3d6f649698f88fcd8872fe0edb8e79189c6db1434bad50b0d4ac2696182de18182f94c28ca88bb3eb03d43dc4ce6b8fcc791b18e86873e3bae12a8d00edc6c81de1f14e519b3133fce898ee6d25b5f846d89968550ef469936b8599a25742eadecbd6d8c841ad284adb51f3b1dafe5f9ade407f924efc8e319b9cb02d8626ac70900ca97e1212ca70ec4a515e3cae71d87e2ff639b9704305188ad7095895ff71105b07681fd9d7545a83d1d1efcc0e4ef9a4d008f380e847f41e81f816a518d81c14cbc3167c65473fe0ab8c79d31a7cad05a6d618b86d4b1b1883ca33b6d5f8308d249a315a321ff529a83052d5c3db96ff9ec229257c96e5d8d480b163b5ce5a99ba01fd88196f94c3c9ed0ad42badef79b28662a38cc552588b1aa72b5442058fcec0c95ca634c00c9360cdd3f4d67b72f3d478a8d2ac77aade576ae81dd6e9c82442cd83c99a340b1e07f7fa1233638d14c2cbe8607696a0fd17986955d55218af5b2a8e940153ae069055e8489b33319974411f11e5b721caa0e4102887f5d56cec24ba88f1d3e4ce8b5e262f832b42727b166038042e2cf8040b74ec61e20b4ae41ad9ec5a30027e5df7f8dd6b47c19c2a4606765649093c6a6828da6a30a4c7452186fa177aeb6893ba6fcf1b04d28c84902fc82e1c98e9ed8eb613b492f4fb9750193e75ffccd20c168022e19d9361064e55bc320bd5134262c73053ac79edab8e575ba3683f65aa406e3b952708b400217bd3d30cbcc423684152625d0e895fdb5510370300a99adce6c2ee05cb3567856e146d80ad294c7e0fb6c22d8c5231c0e07e928d97ac614531ea16775e45e7f9668b1e0f34d20d7cc04c206e838e2c1740eaedac558e0f25d86e7becf325b764dd4c7450e9d4181fd000570478976da49213b92fca24c3d34415379cef8224bbfc1a65a13e138ff18c906ddf366721f49857a31bb0bfa23f5125f0297f35aef690dd328a8072c311ac48aa724457334c19f16c2a44bcdc5434d26f9143220f11dae92632346fc0ab6a7febd5c4605c93517050b8fcf0f2c912091080806952d9a18bde2a32de973d898e03dc473110c2189b0246dea1f7b223099a203d8ae807dc026d83ae03425d81c2584d26646c00552ed7f98014a7a3baca103b3beb0a2c903fadfad48f9f2bea6be849cd9c44efd2340a8d4c85c06a1a28a3ffb05c1f1068b45ac5771e4c0ed8a5e33282f95add3ee63822f0b6318477427bf95cb93fbd9d25fdc2abe4c8f1d82c4ae406f5f4a42a6d40fa518140a9f38670d5c35e603949a9b0184ca125b048b88ec38189c8827d88e09b49ebdb9f48f4d776473fc7b5cf99ff13153bc00d7f9e08635c4a9b105c3b696433414e8fc7a794971c66a60e2847ba5389fc4094689d7b0d0c78e5c9eb2bf33382893a4fa06a496966fed12a66fd367cd828dbca6cde57558c1b7210ba775af39e9372a5c8a164e334102b72bbd83e79e0d9a490a666ef04d4b9c7450003e611c738de9a30c31aa80cdf80ec8138bec67da4a8eacae7425345d8a06c1283e4cbda5330838b2fe59ea93935962925f9bed794c2be3325f39e28c26a1373172172d7877fe3107a5eb87a553a831f8b662d938973bc09e2315b7a672a9c15488a57a2bf08d84e5411c0a3116372f89378eb83f9dca2b73a4eeaf1a4598415648ad1985e9669370ff0ef718baea31f75f273677bddbfebd84b0edc5c62032da6a7c77df8068a5a402439c0904a3772f4349239b7a4439913d4281fd0825020f7c1c9238084063639af87de059caad1d35f1794f46982e63815757f8e596bb6ee37824d808b530fdf8df0d8b5670fee1cd60d577a738273099bfb42b5db4133ee3efc3286d385da30798a2abb85ce7f68248e50c3485621a9056d7ca5b03eb494cb4d0ceef31eb4448ac78d0dc75858d05123eaa23653e38630040151950e21f9a830ae92a9975ad8fde9535d2c73be420130558da5417ca78515fdfb620e428bc0378812630a5f182167f72b8ba0d88bbebda2e23a21b9659f7a1c847fdf528b1b572fe5755e8a12e6474084cc43ce0929fc04043644dc66ce8af7d19ac0e792bf32002f5e10f63467c9821268896e9230a0582515c744558d29020194480e762569e86ad209412c0f465534c613482bbd2c5ed9ba072e824b76ef520a8e2b4b42e4839d33c418e656410444a7acbb022c373a9f2032b085ac52e63b298749107493b5706eb098ed3463a5001acd1577afb34567acb9a2d14eb93313fb8ef74da0c18534fa6c532f6985ac2f853f297d10a33a6ea35b6c4fadccd121e13a878edcf98cc20e1c13e80e6c25d3a477861bb1f7ba27458f8e6349871d7a1bd663eddd9193f9ffcf3a363ba75e89ed4b51386dcf7a0fd629383a17c708699133dcaae8489643397223b030fb89682ef497edc74e5525068e37ca5b399c9ccbc1190fdb209e34a7516a950406931f8a5706f0947581aad728f643522d62dc61a6452642a6364aa4befc45082cee4e850fc6396285378d90fbd178d61f0b7044b834b6add597185b7d057596a151fc2b2d48e1af324b6aaacedb51f35f7856899fabf4fa7a4b46ea8035ed90c86a6614cb41f925e180e114078b5bc5c1f7590ef12ed339072135f5516f74d012a52ec47bcf74146bef41031c096464502d1796d11bef72f5c2bf6826e2d2e9842d1a7803b30303f2713cde1336118a1fb7943ec261587a59b9eda5094a04b381a23c3254b6b17889c9ebc5dd869836d24541fe46b9911104ec46ad1f5782e6f9c99f07ec935558cf389a595dd8704e94f4653cf3fd4e955c16f4b1b1329e6d15d4a7a84bffd7723dcc056786cc4bec0fa3876a89ec299b21be7032c63fd5d0a8d1409aa371f482ce44cc0c9b99f60d1b16c7d58091427b7c15668d752c29a07196be0ffed175ce3d12128d0772446cb508d6a93fb38505c770ae3331716dea27b50a23f922f211fc5bba79327d9ab99bf8cd1ea61f662e8b66a823dbbfa7e3eb7af8a97d8b64a3972a278f8f3c6c7df36ee7549bf1b00b2c14cf58f352b32baebdf2c9e6a93f7ecf13b0dd820dcf9d44e708907c69d741a0fc610c4b2919459dca6ae2589e00e493b940bfc01d0c50de8c0bb390ecfa7521a962802860606326cd6838ea5f28be9cf028eac088c33e3bb6a6f8b126c49c9bfe271b3f2dbfd3ab2c0c7357b880fc952fb68eae28316eb02453fd6c12e9093084358e18838c5dacbc42b7bb6bd46e3138d163494dd5f0dfe7b5b250bc3dd2f2c72fa7700dafc7462a2daa47c459fbb7e514de152ea94564162aaa7f3e68236c9de3beb47128a597e18d1a6220f67b910b81aa75c038e8604e02b47442fce11eb7baf7b22805db81c62e14c8285cf0250d49d9486871e4caacd631a493480964228b1f1a9216289c866db49987bb98d9db7944249562b88e4b6369326428c9b523a9f06d97d24d5a28816c1a923f0243725d9ae7e24863dc4ba89569104d555a1292ae2559012e214b8a24665a241cf46222c3c81bf0e99432b7511239c5372cbf88463ad255475aeaac32724b470ad0dd98913e65bb4d01bf0b672feee4ddf58be03a1263f2f517bde41e292df02405fe42c80132ef52950b1dd19c6c2dbf367bee76b71545507065fb0bb8e1418decebf683b5e6ff1da36e363a4dfb9a02185e925d05798da0591a12b7535cd5a230840f296439e964cb028d005fca4e50672b39fb330d5ce3b02035f5d53a536e6a4ef892236f50091e36a67cdd12f0210e2fbbbbe370dbc884b4092f408a84c0fe5f6058b97d7592958631543b105c2bd7b604bd3012852de8f53c97da287c650c08723ad9c47395e9d9beb20a7a0f6865fb697a0ce094a7337a11fa8c67d63ca091e33cc8cec6584fcbc7da05ec796c6a44c91b684662093840981edb4918fcfaeab2958ad33403b8922bbbd792ab6c7816aa702ef105c348f1bc1640a2232964232b257cdece348dbe5f3e594a919de400ec37aa41237ac522f6852ea98eaecba4fff0e5be604da92c50d33c9de49c64cb1b9b23107ecfd8256cf8318fb4df69efeb02080bf5eff047a781029bec1a7628b75f996bf25da1ce9ef81b8f86142575418efb957e6b50e974012d6d8994552cee6fbad0fc8bc402aa9ecd1075770ce022a7d2859b9116048cb3e31d85eef8327e7b7de0f7c194fae93b67d09bbd3ecc8cfe2a775604cb66e8071aa08867c762f88c82257f1849b5cedfed564241905c6cf483103a6c2a3535d89d05878f487f50437068dd5deee77149604ca564612254f98248aa3a948048d5552fc9262c86e90cd2a4687d9801b777f76072450d649b0320a288904153bb0300ebc9022428bfd3390b948584d9689207315950804cfa100e46909d66465cdeb5210b310a9ca57a786cfb01eda487b095bae71f4b95cfe7c48a09a336989a11f20c598b4be1c3ca52882988ef8be95feacb5075993cd101e529d77136a22058a42f0891da4030112c5db50061233f47d86a11947b6e7ed9cc29fbcc5aa7fae22ba876e05080e35504c95005415eeb1a981790849f0f099960bf0aba700455d10d66987e82a4b6b9aa5066794d32c53694e28d9fd8da90f9a31fe1249da1f432c00f08433ef0c20ffa713b2831868f21073434d22589eecbe535036b01e71a8914406117805a44a049eb9f69325337587ed3bf6b0566eb6e593d9474416984f8bda40406a49caad95284f606910763ec7b5ec14f3944fd8dba09df20655502c093f9e336b49be21ad61f6730d9f24cf916a016fe3672878400e76dfaa9be9f12e70bc19544afab4b14f220d66ec43281c5f57b61e6c9d2de8d68f69ed429436c4fe27ce46e72a1bede0788c6e2066e9a9aff9f2137077e79d7593a64a8129903d20c07f97fe9c7721ded8f34a135f0305cbb8635e6444332d57cb4430b285c8e714df28bb39fc71105100cee6d588f54e36ead197c32d6c8a29628d4445584af7e3bb1da5b4aae3343697ef06fc5dae645720c4f884802c71f33988a92b8c821ba277f81060920ed4e9448b8afa54503d5917dcb038ab824b5638911527feb604da217c5a9b43743d96f39138172b69909abfaaeaf5841d78ca75f97457c7de88280758aa925e535f917345afabb029fff8325fa9a356e831a20699609d3e3d756fde88c19f11ae3e66bb505f83a52d199936ba174c7199a1130c583fb9f174b6ca2b0b4f8afb9ff132252844b3a775db19a00bc2839cc4a14bdfba0445751e0c6e9f99007ff632d4e1d42f1f3a949f431c0a373f82de8b8aba993e15061d9436718c1cfd7ff0e8439d63ba01b07fbe68689be8a30212fe8560c16071022cbbcf663cf312717070c9d712aeb8087558db836a6771e775a5bac9e8ae58c30be8df1710efc5e7703fa3bf5b341cf125c7696fbbafa0d3eb1ea5dd10125f275efbeb6467fd311b9c86b72c4ce62e27e4622e256e0edd800e21b375947ea10bca119a2e10e77c3fb7b70ca6787d2da02851848a9daad28725df32dbe5d20f82933cd76e30db9c789363159cc3c97c0c90660cd6e64695066554e6908d90e07aad4dcd02502a80d6c20fc4f78fd74d9ec03c0085174869a208bad4420ecf899fe4087b003b60794f18ca943cc634d9173c61ebcb6c2515928d7d3387a4d08b55b864c4d60fcb2d699310781c0e2677dfec3693c1dd50bad70e9261837610f1fb5e2b9d3e4d34c1a247a36a9f23c51536182445d7398b0b6ada16acc4ec2e0798dfeeb0ab18ea706535548e5e9e07e33a3f1cd4867b0043c679a69aec133cb5fd6dd98a60c86cfe0477c8f451a4f8e9144d1e0477c6ec6b10e8b4371aa678409984a9ea6b4a50c48b618e80bb9170d2396a3a41c9767fcdac53032c0aa91921bb2031210e636320fa007256bfacdd674e52676072be3768efd70519536afacde1a388868a68a8604b559924691939d9806ad53d611ce6af928f00cefa398b87ed6e4cf6faee4c9c6133f403889e4f0bb255a9427377803a1c0ecfaa0094ee56bf64624851186a7e26533125cb6292460a725ad27e39cadb52c5fa3a118ec8540b38ed03502886891a14033d5527a8790f4e16e4fac6e3d043e964ed6929a0f92611a76ff3ea78bf5956ca24b0bd2806cb8b8ca0202a6778d09219415eb838fb0c4067b631f86d1ad45a88f7a503a2c052c1113b3fc1e8bd8a507a95ff6d52d54a73aaeb54894360fc4e8e51585caccd8231ff9fd1cec2e9250ca994ae831b9b351eabab67ff2270aae154a2f6e1a4dd3b4a5662dcb505435910fd4c6581345df4f3104459af323d26d2f572e7c2105a160c56c3c233220e2e0640b9f69e021a11aee7100cfa96f115a4db4d5fca0f962a0f1db8498f9282f7218bc74aad54ffb01bfc78c1a2289e3d510d9819ffed22137a98be3805008f32689de08a488c9f685718e54d90b6b3c9162c47ba57a69b438abb9217ea3a80ca46039fbff563b998a8dc9a97705cb649b9fcaaf51107682d3355ec44232db1a857c4720648d77e5ea245623ecef22e1b1b793344b3c4a05dfd6d80cf4080452668e6b1c4af2950c789091611a310be7ebb36654e3d95f8d10c91a03f5d6a8d2354e873532abdffb9ac4a40bb1d1c861d9b2718ad948136d9a693cac4a9d4fefefc0a0980efaee666e6e14318baa0f24fcb79be9778f96db33f82d107d459dc6f37694e46fa7c907a93ce88d1134c46c9db7c4fbeb5ed6d29a1fccfc99e7805817eb263ad7f308700fb7aa3c0bace39526eae865a8ccd4714b405775aad1920569e0b2b0ac79bd10f5b71f34115fddb35cce7c0015a4891f72fb7e54eb3f2489a1ae4a4b5df37748aa2b2a858e5a8594fd7d0aa294530aa982e54522705b549e8b5e695bc11c87928b6121470670051cb24103ec4c79023958f9da0d5a84600c99656b2291597319176b2a8ec767bc5366cb956a818e68dd30bcefe26f2b59bd1addf1c365b844a95eb76be9b12b98fbff7e4ae99ddb6cb9631bdae0bd2a244d2d1df2ca95528fc20c947fffdf730103ccb3b8cd4a5ef838a3728e563fac083098c498a2dcb518cc36227209ee69fe037dbce674c5a72ad7e7294ce51482d5500b07ec9e8140cae2b5314c51a25208303d7b8538e1318602f423f3f1523cf70bb67c0f7ec2b90a79441761b56c507b1e82d00865eafddfa3a01e942bada1b811f4517bb6c4f57a2922c71daaa7f0fdc7721a4f0b68d1ce0c389b9dd8d005a9024ed2a8c5feab7d3a2b0a4764816d30cafb53bac29840e62d6da7b26204ca64dd56c62724030e240436fe75ac0ff1f9689a864ec574f49824cc6a4425cb1e3cf45885183af1bc55e2c6641082284811845e0858ea65aa12c1e3b760b04bf85e493c8b78e75cd1aeeca76f6abd5880f20bcb7837e6e593d261e005f435ca2daf233cd72658e78e75f81ddc65f52bbf03325e041a44775313152aebb180ce2b30240e11828c5617d29444d4fd509975aeee383deb98efa86ee1ca1f68989a38595bd6bdd6df9dda641506a8c1fcc3ccda4c75b703dc3f7677c30112f72a692f51cf4161ef2e31c720876746aad24311b8392cf0eb67e546053b77af82fe8b71ee06e249874ba9959bcd1e38d526b95920e366250aaabfb8d90ff39a40a12be836ebe575929d038533b26df6f5201a13ff13bfead036ab0274b2d8febc410fc36bb3ffeaba006bb3f4f08e7b05057c6d36461010381e435aa3f421ecacef9e9dec0c3557941af432f5f1c66a2195286244c1ac4e50e4b910b49678b9cd873c0d7bc82dfdc3dacdd1344767692416c02a581c2bcf41db225bf03f82758de4c2920bd907d9b4e48099edd6c06d0ba5899c71110b6cc0b87da688c207b3e5eb0a4757a92efa2dfb33f8d16ab3fab49b5e97cef48d9356a140a63793cc917687794d46991c3ceaa299d4c5ba1d2904b331e1aad38cedfa115011bf12cda42756c06caca7cd174d51697baca08eb885f449ec0f5a6ef6f6a151a337febe26e513e24363d708b388daa770a0880d04783ed9d72f371014c1d8b89c60da56e1601dae96269d9498b7031d3e1a6234a41b2cb87f440e9737a6cdaa6e8f8996f9bb1fa0685353418bbb12a198abb9971b2fc9e0c5f3e57625a93ed00f13de39b2c2236eb0cdf6283528c27cfebf7ccb411d00dae47237e010ce0cf783027894d140712d98f0ea1ae37c184eec3e1ee8a8ae183ba23cf60878e72b42b9ccefdbcfd88900781028845175c526faecf4324becfd20f38ec93018eb62dea47b5df80c54e98aea0ae8864c0c8ee82de8f7f733b464c5b74436b15a88ee2590d9ff15730b575c5d65101fc318769f077a54528c1de925e81e87c69b12ca7d28f7236339a5e89aab648d5acafbcff3eef170c2d5f5b77c92fc36559aa8f4352062a3e30089b6c731c32271eff7e8dcfae97808b71c0fd40db4307adc6b80fcfe3d2ae2e7d0f57caa3631567585e781edeccabcce32c116f3fca54c58a7cd09826873723e34ec9e669135623014e02faaa26418179bf209ad6a4cd678239c12a7af348160b760d24e0dd80db08ab3e9436e1dbbbf3cded0371e8218c0669c93fd15196109b263b48ebd68ec37efc478ce91664c16259cc613a39b994121ce533f766d06037c4ed287ef5d675ed274ed96dea94b53bb61b08208499c9cfdd29b4dc63b9039149eebf65212488024dd6e8ba7592c65ec9160641203f9b2be9c455ed99c2768f9fb346c93f341013c03107d5a1cb2204c45c53e8077645ee490cd691eb898b493e68e3d4b7f131cb93a365907b5ee0a7a05b97b1605265584e4abd106e29b23d9d57120700388053a8791512cd7fb9fa89a24147865f381a37f013b88aff345ebcf86f30ae58998cd118ad3c0c85e5f90c287b3e8591aa309f5cefc4b31849e7f86f7734ab2f9f323478c4aeb53a5d7a25ed52eba5975706e39baa25e9a98c652365f486dd61c2ecf4e2c22533f066491f1b5387eebca149733d939ebbf9326eaea43e7d278a0b04faddcf27793eee3bc825b907efb4961972f2aca8100196cf31a2f241642ea955aa05828daf55ca5e5aa3676da74bf1c68919ee462df2d6da5826f6bae986408189ca7e0ff347ef94a3501ba3ca49b1d29e59340fdfdb5bdaa5c8f7d29744d7b2a84b38d099ba559e18edc1ea5547e865609d154210b4c1dfc4ca14a8a19717bee5e6a058763ee326306fe2ca070c1901fe76177ed768ab68a3c027fb243c1a6a1ba5cd53eb139affe4da29df94028c4c4faa3563f21fb55fcd23b483b5d52c6e3df041704b41508103f536fc186cc598c502698fb3c0adafdc5d0219cf93596ee2b2bfd22aee40f939d1ac745190f30d26cf49515bbe0e975929d99627668e1745f2c50b9eba4b7aaf99fccfad3d39ec6d68d7388f7d1a814e86013dd9f349829e088c18c9786307d8d14c5f96d9c16dba3b01ca4f6db34e1c383aed47884f9c73e77c330e207de37ed6d08cfa25695a8ec6d22770d4b0029617b10c26d00062a6fb51f0955f48819ab9f938759b5006498da01bd9e9618c15ad3433fbf0a0b238a06c867c5ae3f9088654c8a1d67d01ae5b39fef86b8cb2947ec7bd363f52774cf64e3502080be70a9f2b24aaab3b782aad22d7c58878814d552ca8f4c7bd1f182298e519435038ca5dcb3794cc4a720a5a51d8ad6fe240394c5e63b5decfa0ab0abd14cc8722232658a7213fb4378ad39b74945ffbc69aa51a5afd3492e5b0b0a0e51680af191e70f480e76cb32207227572e1b9d790d91c464e9b285630fd3982ac637d7b638eca71ab6d25b261618aaa3fd513e62f122ba19e92706f68046ac8fc5b00636de01bb65e28f8f7b6b6ffab0739c8a3037a7c42bd024027a74a8c20e522822121bdb70bb583660c1753adbc1b775377bb2584c4f00775e1b5a806695c541ca4bf51be32b408b859bb5487e5155c5ac0c33378350211cc400d5aa2829f840da024ea239fce8beb1476f8f614bca2de1d90d678064c200e0cda5949aa2f08b2f5ca9703e3620dbe736751f09864f60c9ce9cdfb8a875b2cb5ed9c97e6d1043e9572a1931f57f1a0accf2fa59aa1696de4b6bec44d61b3008c010b3b35ec009f83c674f6070e7322be1e6392485ae16b0d2aa003c25276880c981345c39496a2017ff60d6c5b7afb265dae1033afac48c9d8b473d19e17c215cc700b102885ec915c907376b3e972b6a3a15445d34e68ee02b7733dff5881f581a9cf912c29fb4fe8b1307a6c2b11033b07e8f615b801ba9fccd2c28a8bf7ca9a1aaadcc5f466528888595d5c65990b20eaa87ab634c77d93ccd340ddc1baadd6bcca6d13a3bee418dc39ab03ee92af82311fc32946e21322e13637d93565a2980242accc3a87b7f321f781ee568d606edf3309f841e582e6c7099383f8162508e24b0abde30cd74a0c048a8f563579df7bfd3374ca3f6502682c816f2537f7f77b698ecadcde4dd49cbbd0f7e05d47c5d9d46f3561fe51d2b62083509f721cca4f0d396622fa30e4e7f93c79299e5f65316e0de4c26dc3f7da924d523fa6a1dc1eec331b121995484fa160d2608b68f772bacad3ac0d4a8ea45f25bbf1d3665666f9aef2c1cfaedcc75ec5f67574cedfdaebcfa9e1d4ee632bf159c083a1e76699121661337e11a944c6424c2d354dae6e477cb39c28fe042ba8e548c5e49cd54ec0fe07268643615bb706c39c2e2d6bb6c858c09efe76aba770d218e5fa4f8d892391b9e8a211cbbe713b07299dfdbcfda8904f0305080915b18652c54f2ca97326a599c313b8813d3957c96a9261604a734ba47edf04354027063efaacd0810e3c035d0e0a5ebb3a7687e5f611678bcf9d666f27d8ff5ac1037762b5a93423472b462f733b65740d7ac84b0b88d8cdaa30a93f833b2e43da0eed493bf28448793735fd87b8898ff49c285aa6b133a785a505e9c25562834889f3bdcf506493b0c6ebafd3b43c8d57560649ef1e1d886951880015c00015ad5d8315050d0b46e249a2b404fa629a1723db0fa79439c958a1abd4424dd4820d4f5494b3a76513e180506959da1c309e2283080010cb010c3c8f6f5b7285599070b695be2116bb8ba4769ea755c6c91ddeddf2905030a0303032363c92e1d89957f45f3a7a6251d6748b7eaf331645e77d46d8c417cf18517d17feef699389e34afb1bd44570e859573458b9e74a025a7a1dca697227597a31e67cc95cc6295298265d77739761d9742ad4dab937de53ed75d67ba9b785639e11d7f1ab784e74a368dffecf2866178c983c3b7c6f0e36110a8f895b027d91d2144848835b2489e2c0a24e1be340cd1e3782d10d11da0d6b56c99cbc28eddf435db87ffacce16ef18e64cdb0b1f02330ac07f56c7490709ef10c629bf3f7cebffeb9e0cc7f71b77bceffbdec0debb01ff3803680f1aee44bb907e5c4921e24272644285cb35a1b430a9e87e5a0842ed532cf05b796bef02706bef19ba9051c18c749b2162ef190ec0bf2065dafe44ffad64fe3df62c3e7ab27fd5d726103d6dc9a45461764aa4184d94bcc1b9dc499326cbafbc72585a15f52dfae74a4f003f06d6bf2a1568f07fca9bbdca380cf84f45a1d6bfddbc0df82fb6ed39780178bab75cd1dfd07f3510f89787a9b7feb60b5ea1d7e53b2991cb7ea6d7800f9259c07fec9c89f8654bfb776f8b0ff87fa57be5f817dbf49d586f0ff7cb05f531fddfc003420be111dae2a9604289c52a1bf3858d26653cec7cad3fcf54f4f2a747ebdfb8b3fe17018fc50204ffe1c26cfe67bd54df6d09f326b77abcfeedf2c0cff509f0484a5fbccfdbc445d7ff329b3e837fe27baede800f7c01fc482f22b5d63fc0e75dd5f5c8fe834dc02fd0d2476df050fd01fc498a37e5c511e3f6df3ad5bfbdd9b43a0e397fadeaa99780d7aa78ef3ed57f13c1e3f5283d05bc8c5a6f49e400bfd34fe5ae3ea4d741807f8b4fbb123cbc636388a64054249e13cd28266596f2cc0845c6fd964ebdf9a994c360d6bfeaadf9dd6808b8be2deb7b7da8dbcdbff8906f501f5d453c4fe20ce2e4d685648777835347e981699ca794651c960a084d7a067800f877e9679dbd51ef05e46f7ab4b709b4ed619e1aedb5de11cce6b02b2a52473ce22cb695f94aa2610b614a25991e962c3d544f92012fed03e06986a0fd9b546d8003fe9f7dbb37ecbd4af5e6a8297be7e8ddea8067f651bd07fc97ce256f15823befedf1be32e024e0f837f1171672c4201e504a2a452929e5c4bddffdc203f87b07adb24ac9a4df8bff18c40c4dcd6c12772f8b71200630c801f837e8bd6fff7be10710ef4a1f9b87bdb2a96da72f44fa0313b813754a1fda29225d85d3c82a4e23b538ec3f496cfd2fa3f7be6f467c8fe87560216cbaa7b03b6cbc870b7b197c18cf108288e5df836339a67bb57ccb1b207438f6c93586de9b7f17f0fde9afbfc0242e1cc6c8dfcff1deefe7f8f705067cff7ef03da2f737e6b6b03f2501c31b1d0fc0505d7f7a42091d88f8531350d08037843d0e0c2c10e23f9be484c3f8cf2631dd4c23fdac6724b9278ffa89895c2ee9644749fad8a12b636bd36ab1fa0d5856e859538741cac97e72331d5dada67fd98b48452352487ed5d5ab6e2edbdcea8bb7ea45e98ee269bf41499f09d25f9679d2cd2e13a3e24825b71e9518bbd39fe074a133a2b0e83547aada46b14891f30ce961bcbeccc9a96ec8f18c58761b23127d054f8772a3d2f234b1e6d67e9ce6d7a99c5fc15394c3a3df2075a213f95b914b4e2d32d195f2f0e6f690351d858ca66beb6ac5b3a949673aca8b7cf22ce55e43f361cc9d8850f42e1108b62e9fb65dcb96bcc0aa2da2fa9cd350921090eedcc95bd8e45d98bd652845971a12d1b1db53def416b313605859ba1155be06953f2ded4aa125530e67079109115ad1bb8446f42916b9585c1e86c696d5ebb4741456f9536a3fa1628f213af6391d0abdc48c5e13d4820d2ac97b5a4cc9f9a871c7f41eaedc8eda3b914cfb89d14ed30395d4a7471dcd44be047492ab017d98a043626b6a752fec17d6ce02ad6a9620e9cf9f3b9dbca686e565fff829ea693f217a56374fe19623b7245f47d69d69fba43a9ced7bba59da4b8672ad5ea742eaca63be632cf329baf988e47777497151695b63db2e3d8a2513cd999e74ea52ce904abf1b91fbce91cda89bf4147f7a44a477b9362e9f4bd3b3637a4cd711561e14753ee92a4bf9722847d18b21f5bca36e6604e229e6433c22b98abbdd244ee7a6e92463b954d7be82a5db45df9e7698255d6428d9e768483de57865ecfba2cef7227977f98ab8aeb43df35819fde7d92a82113fa96f4c3e2aa2969c883395e66c2d6b137514ab72ebde1089888a6bc4297b22ce5b36baa72a24179b5416ab05bc9c6711baec79aee3284c961913d9cf999304f7e44ac9ce2b5917b655f5204256ee4d5e8ba950ea12de316c825b7cf9ca49ad8e5dc47747887a031804c3e12b2d1cbe0ac3e17bf80016eeeba68a29c4058608cb25e3d83e807c484e88f0ce05720cffd40c0700ff59aa0e15e7e3d7d17bdf1a66a007c31b1f66c086d7a3d77b457e9f6a82f76a39ebf698dfe2be16c3b31554d574ba85312debc9521f3c409c2c284cda80ae67301c81d9bdf9a0a038835f4b3113fd03440249ecbf698470cad2618a03efc211303c25c1c0726e85b5adf89ae321ca533a43dba2b5e7b38d285bb9f9acba18b455999516de11e217f2fb18d8f7fb7afdf9ae77363bab54722408e864e51af4c2e12fb49295e59146aa8a78c3f8cf5a5561ab2a8c52cf80b542e1cd26a6af02519205bb3c6cd246c686a047b9eeae9512459b54241ca86082412ea9db85d40e18ef6359522f5a4a068cf7312996142af61213b115356a8a3231a2341801e03f1b255911e6d1be1142388c5acca6a1d7194a9d65181a058ca14940788410da0384e6405d6c68c988f0ee063148ec1734db0ff824bbf875f92eb23606feb3cf2a1cc7bec07ff609857708731a5b667afed8b3c64d3f933ff969ec10e7704f9567099fb30ee88c939bf611c29bc3f9a1a59675860187193650788700666878a8c23b864d2e348d64937512f0d13372fbe406b6df3891f28c9c4378879deb38796c3aa7b276aa3a8f4e15259a56c6f8943771d7a70cc978a3835a595f1f7ee8bba6efe452f2e9837d857770f88e4d68dd8c929b2b68a1f0e668f64ced11731dc7f09c4375b89a37b510ffd966090ceb2030f735020e9bc4e4a32ddf855028f5c147625702d6f42e62cff8cf3611213b98e88052679b46e4bcb98ece3271632dfcc67f96a9cae48411f3d3e81560427dfbee7aa386ff0631e81fd73fcef12178efaf51ff7b38a4efe150e3d6c06d58d811cbf7903ddf720bf2460f66714ae1fcd926d9cf3ab5e0ef1d596b0b06f395038a77e6799ee73af638ba36eb8a71d3b630e21c64f48162c16147f28276fddcbdbac4c65a96afc51e4dd3344dd3b1edcbd25970f83cc34372d7a567143971f13192357d8cf960aab83d65caa498605d95e8963f8c50bc9458a1bb1a18ea4f14b52a85d348906ecbc6039383546e45c915542bf693d322bd418db89cc524be9df7c39c362f8c8544aba5813b13a43509d3a99bb3b6606c91b04ecdc5b9ceb9dd05a949a317dd97173ca39396a718c43afdfd392857058a65599681b5ac3dca38305ca62255759b69aa3161cc0ae7ca824ca6884b9d81625b6d3f0070e0a54f036decca38f77c0321cedba4dd554eab98073b7d4b799eaa0fb8de70e5496def4e10b0227a835d1037c92eaeca1557bfeaf8a92d3a337d39a1220564099b9a2f9da43b38975e75b682e7e05b758d9ee7799ee7799eeb78ad47ebeda426ed691441ce0d19a580f2dadc82746d7f182bd3b43d4b053899e9da86eb7a1f53f1a2edeb80a0441a84adb411ab9bb54843a4836d384dd7766d9581355291cae68a472655a2fb860531c3827161e310423548a89f0213ea22ca746b224c7835d4e01a6d25cbb20cacb9425e9ebdd955c688287b0805ed74bb78676d3744590d976599832cd371d5a78742e9548376056906f1944ca57c501961a1c1342d2a1f13efad98a4d5b2a19210671215484052734158b984ab06f8925084e5499322d18979a85cd7c0f2a85e765068d6ae2009164aded23465866e05a64c4e50495a1e324e910552d3344dd3344dd3349d2183b0693aeb85a6e90ca1edbb638f9b1c6d8b9a11a9168c48abd0758b4a64427044fa0ca7ad499cb636e9b8fe360dcc565d70da5a4367d836167e3d8e2d589666965814a486afec511387e79935d3caf220df502c4eac2c65a28a1e2034353347742b4edee0392d9a20dccba291b35933302c6f91b04ecd658b6252eb4ebb5b743941dbb968cab52ccbae035c14dc99e779aee3598b033365ed51c6817dbe6d0c0acc15aeb8133304a7b5f5f2f11a21ca41325cae82e072d5c487f56711f8bc5586cf592733d06b435b5c8a91724c4ac9ed3242217146a2e2b8981d7a018a73a844a99ef61c1a181da103831a0000003014479220a70cd1546f1480052cdc547054282c8c681c168742a13010100004c2604000080480028050200c08844363314c9b0763f0494851ee98f2e90c3bbd3dc5e2bd5da95beea0a9cabf7b10d32434aef901d29b2ef799fc60dad6b4515e7afd437c0a33a30c735abf47d99419a529b80e8a8b68b92421bd75f2309c0be41eca4385c498c8d8e9415982090869a0e7e3007a8480fdf9fac15c1a3cc8dd9033d162119cf55e1774714c6acb73aeb77976081828bda218396fc2279fbe942b15ee32d4608811740a542c0b8579950cd515e2243ecdcaca316c9ba06094840e519753129d9e140c323888582bbff13cf0e3a049943daa886013f704f58aa3895436f94118ba7705d853382f32f9cc6291891c34afcbd9c6fc593e5e125754136ffeb906087eeb11e9faf370e491080ea3a8b3612abb9e8b6632142405cf45b9237ab3d2dbdc0f63e35a9ca98b3f77c6ef7425f7e5575131d9bf98986608754b55863066360ce6a66933dd4d960f7c48c8bc4f1b3491a8a34adfd9739bd0463b261e8e4ef168eb634787778705eacffa5ffa6a44a1a4cca4e5ff6168895be6e8cc33b240ac3d939994cecda17c1d59d301d9b140d4bff7b7e5bc51e490064a24fb7bd0db3bb618108bb51befc3cc5125db303d1544f8d2c2f4a2fd769b810a8ed9226c1b721d4a3e75458092615921452e7af2e8325850c483ca75a6c448e9b7bfe82dd4c404eb8063a1c043f50704f4ac435297625e7dfcd96eed65b717e82fb009838104f63e69b42104ea2467d5983dd62b4cf0c751b512bbf0fc7288de6c26d23751d648ba8b7267325dacfc0d1467c583d00ac38de5cf8a16388805a8577f618e2c76557534c880c558c7c9daedaa81b322fc06be05af295e31338d1a957aaa60cff746da7d73b5072a3338891849ee820c5e03bc6be9b4bac3512e81b2b5b9a78336ba630c15992471d35d2f8fe4bcabfd5c373fd990b3b0f8e34f88c478ee10e66d74ea1b62b842694f6a3a766d6de8d93b968a6cf9216d2acef1509c3f63e8d07e3d0392c2c5ef613dde18013c501942c8634c0c8b6b0d65c49dbf30efc0b913342e7db2769534203f4a22545ca438215e6d14ed2f53447975be2becc268ca116c5c3310d14d41e7555185643acf3edaad31f5a9633e4c508affb0be4e8c76f2751674ac436999756dfd51969427978815a89e6e1440b15626e1e21e907aee109b94df02a2c5c205c2d93d3f89f52caa8368449608060d19b31a0eb5a65becd0cae152672d02033bc52c042ad9a34267bbb32ce5bebe0c829c899c6ab270b43f526eefecb80f880c314d6fbf923d49674d8ab8633e6a379329c597f06fec975937d8862c59c4846ca35089918babf47323b55b3532e49a03e54a15525d6491cbe9c384c06a9830a221d7c8457b05e966a61bdfd2295752d3a23cc6d5342ee9b1d5ac9dacaec5b7de9817180233462ceba2ac1942c3dae64abee645e0dfe6f528af02c691e55a21b4f83f1806404c16cdc88daa503e9f79d409f09d07332eaafe7d5a004ef14b31fb7a6c4b92e6efd094fa92745e1244737e6f709a4874c54d5fe5255b70d58b429cb3bccab733520ce97ef325403f543c13fb1cda513fd476c2754c5e61dbba9bea2a4154a4acf76e216333d1651a38a9af9a69c4a6a0ed62d0dbe2da8274021f835f84b65c97f58d30a943b92411d1981bfd058aea39373f3c942157bb600e78197ad1b1a63476d2758886b03d22fbeb340551b195bf9e3a55fe077fa02ca53417420aa02e8fcf7f01c6d68f2e65b1c221e29b15c45702e2202abda932a6ed23d20af807434ca55db25fb8a8a0970bc80c9e5194caecf6b5082290059e9012940b0a2605b6d5b5e7cb65c3b8f32298c1bf2377c5536a51d1932a020b8a4085deabd4e52cd89134fc30b9923e9f9b5aac8ddb82acb6500ac8acd5ce768cf7d2d7b3aaf8bad45f916ad309722c09732d4f25188a94830036632447313e03560445474fc09edea4e432b6bb93094d2b3adcc95611c0cbaee501b3949cc806e07033b04682cff5cc0ee6377ea7714ba0024aba25e52ef3f1898073ff14c0db8cb5ba07dabcaf1018e85c59757f640f44461ad5e1ddfe62f5296f640e27614aaca00a8d8547aade55c27353b5e2796469de5e05383f08b5ca57013aad445e5a2271733c0807c33e3faa5ef331d4d529de1caf400847bd0520d0ade25a2701030ee288a0d895dc5f58eb2c1b1631a5fc3f55efaa11dd6ad9ca92f945127c24ddea0ca28f012ced842d07926e1dfc1c0028dd5424671e0e27a4747e649f974cef6365b0a64c81476e82fe0b7c2f719f484a86c7f8a8a21b9632b08e50c2cb83d77c50852d1eb4e2fcc09508d4fddf159d139c7e28beac7479bbe40e0dc145aade27e00c84f3c5d8fec216f5407fb525a931be1f818531c9055481bc762676ecc003d94f0ee4cd1d4e1cb8bd1a97c71b95d6d2c86e515196278f9d5b83c62aaf47e85cd982728e180c56e3fca8a0c16e1395909af77e2c0ce6a2b390245eb59f94ddca79ecc1e41026843a284e45037452daa4cf425b018cd25d6064bc3db1b9cfafac4dbfe62e5ed12915e1df3fcb5bdd47d6d7b121490cc58809dac4d59836376297921b832cbc5c4a81b276172780a096c0cb3b1124b063b6d9bc5450f7cc8a6d96b25420737844711502b24ff707ec43705b7dfe0fa826419ddd60d68fcf69fddfd5b29e49265ed6863d6d020061ee1fce71806d4e9b7a8331d2020cf7650cdd65ff0c0ab28a4e70c9be477d1993d8e9e635c0615a7377715303eded5f07a431cb38f1858b7d0938b89e6c8dfe1fec04c83be04cd38270d9406405bf083b560b50d09ca9769d35ac67ff9a748c537b0261734a30317bb119ad82b8d23a39823e0e70becee3420162aeb3864ff3feb7bbdb62fadb57b17d2f3f0c7c59da38686f8e9520cd43a01a3e2a9719cbe9a3dd8c15319e0b59cfa03aae04dad5d02a2637bc40fe04925cfb11b61d8d7f06c3bee02cf07444f160c00d14fc84d6a8aefe849cf66720dc1d0004ce391035c48dd23b60d988226c8e3303a2d8883c495facfe446aab1d11bfa5d18d83c6de56fa54161d6a4b2ad80e91bbc26266f6bfeaeed4f12c52989130ea2c2e4ab5319c56cdcfe0ad88fd43292e4a9d64b54b97fc6128e472ca8a6eb61a33b1c1bc99ab308b60d4f5e1e4ba1c9291a9d578085b12dad8bcce8383a11cfeeb976ce78055f620a61999ce79bb32932176eabbc70582f39ffe323a69c5506e1a29db2853682a83c46b3c32c356ae12b808c3a6c71e47075ea4de2c5058977705bf7594aacae95dcc03b6de4121d2860bf82bf328dd501d4ba92ff1f4a78632926869a508236624973465156df3d618b4baa151334d3f2c7b132aa8581f64604fe2da9c297df0c0ffb78894336a5821de5f5f7f239ebbe86ee0466b3e404022e9292f3388802c5f0862bd33c0a784778ad4fa6f65e9c32a9d4bf54c694045c649aa43d27c4b713ee2312a54dc106eb63c36702ab70812135b176d9874a63be410a6ff4d9a86d751525cd9f310d38516ed7252da4e891b40784c11088eb489fc2c1e79ce2045646078e6e52451dba3fa82d9e865368cf475d4c8225bb0cf13731c899b1ff73bc49f9c3934b5fab8f1a08890d89082c76b856ea0d841b30e9cc5892223b2f042d9880b4e14a3f1b88518af272bdc693f230775591924dc1e94b3081bad0537802ee41cc76b60430b68a8b0c3f58a0164342b4ad4a84265265e27e032e39476f0961a116c968ce68ca6e78e51768ac62620d07cca83446927082fde8fcc0bb042e683fe2d62898ea8ce93672c6c141c3c28acac1a50155b78f4dc19e565754c28d4f74ee89abe26687866b5d3b9830219eb668c2162bd6ede513662dfdcea7ee2a245c624e545685da6feacaeb11a4da1de1590d0b22ca64f79ade27b34da5a1967d0b350b9e4918aba081dfa041975d109e831cc5025ead20a38351c5b9d1f6cb958cf680c4f0d56635cc2db55dac51c76d969cfb68b4b022a8037b84d577ec7678d1897e5a15d54cca1c6c86340219a3600a3711e04cd86fd7289893ff3fdfe15b6c6d09e4c06623c853046e4720ac4e177b8b1276e5a1087ee0707d5d432071765ef6aac991f557345609b4edcc727160f76a7074353169f2501c63663fdcec88ce8436bf1ca6d243df57a1d25285bc994d52e013f2183a325206c14ca632998ab5075e721a22e1a283c2acf07112a05c8210f529b0c42da9c4b6097e1fc90ed6e73d180904e836b7a1dbd408abb6d54d7b4b000c32c2986c01042047ae7627d61f740ce6784a5f61398a71fd1cab37b986fc008188a93717571318e280d0c91912c1e7e5f07f52b37158e782086a352497e115e8eb5714e9516653005ca412929a1390b2de09d0fda8d88715f44a5f36a87e45c137fc5d78fafde886c1b06077845eb12ad4bd690f9daa9e6b2492a7df346b2de3dcc6b8cac9bda5984ab6e5bb76b87f39974d49c52737d074b7da5256cfbae8754fdd91698a8e3bd35490bae324212c5bc17c0f39f8626a99f3e46ea12861909602c583def9ef0ffd41ebc12f3231753cce53929944f14d375bceec2e8c586ac3b101e4164b1264b3a4cba960832ef7a530ff4a788b5eaa3ea282a8c0a4af33e2a9bda2f37e7220a5cf8d5925dbaa6f7515a7cffc2f2e1bf02b62bcd0e4b0f507c8ab1a6a9715cc0b78f3057bfaa9febecf527e7ceb7d659a2eac5ea895f09d8ef1e149764f2d64f49b51cdc9c4b2c419e3524cede1a0758b461ec480661d0247028bbf13c2a570fc0fd4e4dbe1730076cc67db9b249e7918f10e6060c762f893757c061bdb28ba8b50baa25e1c2d31331a6e39f18b5817a2484ae77b3b2dd5512b8bfe0cb5c83f1d4f2fc4ee52d1dac1049ee4ea1dbad809ab91e600aea08b9f7649886c1b3f3d2d729bc4f020875a92e997b1fd012a8bc75b762b0c61c60cf8ce6d73b9974475ab9a533b3e3e20114dc4255eb69df6be9f734bf25b44e74e1553d2b65757c97d0cb1f24016af1efe5d0ba1d05debf05877950f30324869dad5a2eda1b76b0be6cf6d82903b9f31a0532daa993da39c83eaa79a4c623e1691c50bb8786d29caa4b175b6cdb418cb1e6ca980bce54309e6c90c0d4104f55ef879ead32794578ef083828f44fe5b6264a45f15623560d36c4c991bb426753a053a8d6a00b703093e27e39cd9a52304859ac2968b38299ef2684faced6f096f9c8d88f40c44323575fe2faa900a21a8fd31baecfa751b6192a4e0426f2e2e23f1aa5e81d9541cb9bf317ecb9992a82d51e53206ce08cd252b2974744fb637242becdb8fc91af0382328c33ee60d1004362fbdee8e22f201da5e55aa646c04c3f760c4302e1133eaad3e0a07863211aacbddc4dd78de6ff1e1fe9d3e4408f95cb8bf64ace7b67e83fad3e6118a209178e1a7c8ee4c2658e64940dfaa9399ae01869f258b432544ec47f2dfa718fc44e021ab5c42c8b746f62c41aeb4e28cbd77c416b061a0e4fa757901330d82a6ee9546df12618d4e000b23387aa8d37ecc7c1d851395adbd0faf0ab7d08577cb5fe06ea93198f6bd30e49fe7cbcd4e876c400d1c5ae2c525b679ef9c2df08939d6f04fca810af7f6e8d4e69e8c396009ff9cc17decd64a8568125fd8f292044a4955e08d528d6c425bfa3d39df26a4a177b87af4a7cecb849fa285cdc1d2329fe6f61495695a52cacee4ab54291c72f528410291a0a807b4d4aacbfe2448b418a8450dba4e220e841c8413b55ed2a45f1dda553556aee4cb5474ae2b54b417ac1778f8a370526b223928ac20b0ae2e40e481de5255ea77a37f3dc71c58b72f17025190a97b22b4a560a1f2930a25d95f829d0a3242ebbd964630ac3941df1f4d2df3d4be039bb9d745c779479f6d67020cb2b9872a7924a2cec724945142e83dd9eaa29d2ffacc310a04e50080a54f21ae6a43e948322eb5e2af72c6e4fa754dc12aa3d78306daa939d774ba52de42e2731c568142e901d39293ca22c292a8ac77e8a2a44253f0513e5e54dd39d285c90dd5c8a2902bc96ae6b2902ec67679e664a0245a744426953a828954e8181407eac23362c2858941d4dbead9257bfd56b6a8669698594d42837f5cc4b8618ce6578846ecc24ecaa2ec7ce2b859672974e7548099eba63697b282fef8ea90c8faabb51b828bbf91452b042b125b2a3d2228a020a4d11a6fc28564d8121bb00aac4d0ee9ddc41e182ee04a22c557724955ef6ce502305c5931423a6e0ade14e57ea2837e5ad29307be796ec49498cec529a5eca2e5171a7c02c3b95152d835d4e4e40790976ba1217f5ee9652eced3685a67097620bdb8d30bde01d48a1140c4b81b9bb30542de7ee98dc888278edc024514a62d8ae95f250b8f4bb3f942de78e8cf462ec942253162830509e1455526ed9bb67d2674a0f203baa162825054919a27c296a1492528394f1fedda2e9c5da9dd44841a3a8798cc487b20e4a62bf13948219bba028868bddcae945dccd0ac529067108e8453b086a4446dc24ea22285c62bbd12a297fa7ab1485e33e1d88822ba2173b2c55e2b5139454285cc89d2179294f0a83672a3fa7185e3b30497423fed44f6e5812d9d24a512a943bfcd0b8d5cef20bc7080d67d08443898172a02c2957de49f5a6101dba4354495941a1a008527c9455fe54cce72813056eb0c50783b5eda46f0123f724d1a1e50ea384644a46d6ef0b55ea0c5bc556485aa1889382b8ee84945ee22e2469bc71174c68140c4f81393b3d55626337551e285cacdd02aa4bb43bea01259a026cca787437271dfdfca1a4291d536819ee3655f374f27ad5c0c656e458c2ae4427896cd458a6f99d17c2942ddf6e1db5e1e7ce54f550b83c3bcf952df88e90f472ed863aa754920253dd99d44b3928d7a3d432729fc490634d6228150a92120d2f0747e94859287200ba264ff6589e071b0cca6bbaa10a1a05622889dd1d9eeae1b11b537139765f25c4e42e9944149502d1bcc4e9e42b0a526aa44eb23cc481026aeb91625f50105ea5038991ad3c67171222771c6abbb0265629124e7152cee6e89a6507f989440f7945e189f3d52c52647fb21503788a6d6d0d588823084108d1dbaf3552f894babb9aaf418763502ad0ec8588eeffff7fb2f7967bef2da594322529037e06e905ee05fea94c28bb210bca86e80c148658d39fdd106f288f98eaa1bea1ac4ecd4081500fd01f54061a43ccb1df4f7dc49c4b618839d571b2167d81ba407b501e7407d5415931a7e5a9105a43eea74230946603642d99b5e6cc37cbf2ad96e5671adebcf6dc73f7e51ade964f461bf9a8cfcbd286c3db17a34d86a1e0a130932b384426162084c95226cb474503c8cad19789f928128ce5ca0e62453e45bc306bb51c27e56146943b2bc25a7428fe8c124a8e32311d2bb70c31d52bafe99b2ea853fd652dc49a7e992f5b21d6f47732c49b4c8598eaa0bec97e3ad542cce1be3f6321e674df9fe58839def76738620eeafbb31b31a7e5fb331b31c7e5fbb31a31e7e5fbb355cc81f9fe6c856ee538f427a31173b4efcf66c49cedfb33a09883bf3f5321e6dcefcf528839d8f76732624ef6fdd94fcca94ebb9544c0ea7b1c60d5e283980fb317727fc6ea04c47c94ca90558b0f64befb86a05a641ee643e1e6970f052fd377f95098c9141c2203d227b1e6494c359398ea980f0888c67f10650142ba94fb69b4f8204602845489dc4f5d6d807efae3301f457af92814978f4669f92812a88f26791f95d27d740af7512a137fb449b4e9df3e7ac4479d7cf449b4697a146d8a883646441b26d1a6abe5ecd72cf3d127b1a63fe6a354624dbf052995e821d1a37efa438fe6b722d323c7c97e624dffbd9e478fec536b772c4fcd31a634dfb81de86ce530fbc95c2bdaf4fbece0653fb987b27c690d89d6af7524cccc5cdb18e6dffe11bcd126dac4d73a9e262f9cf9e5a54ea362e47ed08b36d146f5d2fd13fcbec6aa96fbf667648fddb7ffe2da0cbc18781dab502ac9234109b6f79243172ea8aa23e1beb8a00baf916f411757c5a9308f04a7c5aa2d668b7760320cf9249f5ab4c030c873c5933e587610867ccae4cd6ca5d363671c0cf904433e550acaa72c0339caa76cad68f36928a56a66ff186f8cd3279ecee3de772f31d87958a5aa1f9f3455cc59dba70d76778b1033577395e3bbbbbb4facb2d3899c28c79f73ce49b1aa52a62c9f524a55b4765096b5568b55d35a7bb1cab3f63c31f026c813030cab3a6baf65970b63e45aef6b61ae5a27b3c6b3c9d7e850c63ead3b616745beaf5a5157d8583991727cad6b07660cad37153412ead38fd6f32426e145052f78bde6294bac92b90363e4c6fdf3737797f172fd2e9fbebb78824acbfe2a2df76b9d7cca11abb4ac65ff215b488a141ab3a52445ca922c83785149ca91dc392a49f1418a0e2d3b2929e9484ad91e938c5435c76813bd0552ae4879d9ee1447ff38e98b494a492b923d7277afb688c86e94526a2f12434808596b2fc61c091612ab284fb4728da1e03a94aeb5d64a25a594d2ced60a050a8d48b5437d4291a1274955ac0859d282257478008b951c2030b2311487d41a2505dbb663052e15c8c08389211b98e1c30c47499a5830435783014b10d100881f4e35a0a066c9c71417667032a3d5ad3c8a11940440adb5de194387a6283b7eb086fce4f041f5e105448440898c1b9e3ed0ad00a5042d44fc4a14253a221d4ccc09244c50a1f1e3470c1f541ead285158352041838e460086e6b5d6daeb51207cc70d2458301835690da1c38918bc68d080e1493703098a1622f14823c2021abc06acd65a6badb5de59b3f0b84328274c9952274994de1f24915e401090123ca1d2f241c30078fcb82102233cae2ce9809c04794152526f532ae34a203b0c6143064e432049aa3283131588b0ccc0854e051be408328e04fd6034830b2b7c508b8e286265c88f1e5976e852c0d2066badbdf3462f051aa594524a29ddee93131216d86011d9b8f1019dc1c292430da29052838c69058a0ba8931628a574d6a851ab4d453e8b8ee6a104ca0849b3e8681e4b98ac32b85209134478200a268856682208204c47088184901080c0af684494e825420005316901d10c169a7002258521403064874ec6132600981048e20615584328191d21408713f44014430b4a9c3c294a1359f7d3c4c90ecd2335c68e2454907184c4ca0f22e01972439322ac2c2103962728ad96a13ae3755bc4bcc0931daae8b042831f3e38105282c10b805c8121075783274e04607a144947a41c40e420d4038e264f64b00225a846952844808406484c3d5f008463044e7e4ca0d402044a2550321283258698474499b1cd248828e2814a14483358810c32601284468b06e70405470b11bf3e50cf51809c60a203a989222237107952e48608ac149941a2e8d8a6d35a6fadb556e781092c6b0d32a23ce9dc5a6b6dd7b64a94680494c291239c90c0470da2a726560d1a6a3c59c24511031cde346badb5f6698c31461134f0f3f393235f1afa146ca336eaee7677f7c92499e69c944812515ae54aaeaa0d23520f0e6fde8ad589ddc7ea678f652006fece05e7d74dd65aac3722681ff54dec94d36399b9e22d7593c6895ef3d347f2e9d78f46d94eabcd11db8be588b12c479c695b8e78c35ce7e5883d548e18d592236e71c911bbbce4885f6072c4303139e218991cb1cc4c8e7866831cf1062972c4296872c4342a72c42a38c81173b02247bc827e2c72c42cb226b7e8383449d7f42fb94dbc24ba94af24c9613bbd3a35bf6e92202dea547f08ac177dd510685a27bd058777646e9fb476a4b5da8b5d2cd3366dc35cc7751eaa05b579a8169717982d06a63bcee09d8e58d36c29524c98ed0546668b8991919949b101cda4a1f196341b280088167b6a78b18f3ae5818c52a988d2d0132e17112e25b67dd24aab5331a292444a298be0e0ee6e2f951f547adc8d524a2f4605688a13b6596b6d36e5ca94250cc3b04c9bd2648a0ab42949aad572500a52eaa104a424c3f5c4e62ee5fbd6ee2ee747e77c04d75abb9a52c4640ad19d72ef1df2b61c95a6fcf0e089293b704cc931c58667529c72983a9a569a406152041442394cb12189016ca002b484103538c10b1d8e2378e8b0dbd3248a0f1f47800c31a28626682064849026518a94e86e0cd130cc5aeba3546f111e08593c9ba39294a12429e96db1251d694946b7c5f6a222e9096bad073c9e18bca42b4c5948c384c908277a98dc7b7972f02c93074d9e3de2e141e1851e4f0d1e06de7befbd2f5ed66384cc512989959443c6392a2509e530b5439b1fa39412bce0ede92d24c6ca7b542736b348a323df66166cb422631f0a1b390eaa05a3304551fa210ac3d2a957a7265635c912ab30770a9e80b99ce4c4aa996115d5a8c5d85be2ba69585537acb218ab28d6cdaef396dd87b1ea7258857514ebb2241e4aa398cb7471f1962ea8ad0563dac14c18186f09b30971c12aee0586b6500caa25336564bca54c63c1f27a25392a3a2a923d244b0a49967c45d74b0251ce49a39c1ee59c34caf83247f9b27dd2f63969dd6cbdf35e6f7927b55badd65e4c9b9ae62d357bb30dc3320d6fdce4386fc96d99b66ddc8631d76d5e879a2894b744711be6bcadeb509be7a15a3697163a672678c2062f5b0aac9291664eaa2246850a6fa9e2b5966d7e2ed84783d95ef0ce0bf67198ad012e13738227b14c5f3ae509a6b81c1399feb4563a17daa7a7a71764fae125111b750a2fe914363242bd5a7efa26a35e58504d4e941acdd05b397eb4b96a3d50bc1963bc583ad52f106bea544c902cb951d828f7631feae535178c11c25ea8d7f68a364dbf684bd238ddc4811cc8c9090b962b5796966488bd721f3578a9b33a258f625e200079625d755e5ac395e737dde39ddf26391f72ffcdd9ca821c5111af762cc799bd752cd9d1fd3d3b4897a88b2e51578d9e29dd4f6be45ef58d67acac47dfd48839313b142e71e5438e3f89624efd18912295418f90b02c544666a4d1153933721caec96bfa7b7594fb53b87fc8bde6a6f36507af4b102ccb500eb926ee554117a1d74fb471c157d146fe0bd967b65fb6a46bfa1bef746a894e66d429ee95bbbffbe99b1716ae8973f2094376b08f3a25dfe5d5d2543186d6a95cca6edf369e49fb4a8fde72d2f78f91353ae38e61f435da94524a65bc5cdfab9a14051699be370cf9e461d5cd13abe6d349c12fda50acaa3423d8afff02fbfb33b08a553446b65815e3c5b22cd3302c7b61bf3e091674e1c26bb08c6a3333da0b4b370ca3f433ccd34f353ae7a43d2978a38d8c51cbf0a759b979de8649b05f37fcc282d76b5a15337d8c418899fa9c73ca78b9f92abca3ed682768796a9982f355db76f10e9661481c2fa6204f9661c8a70ce4d9e06cef86a675afc9fa3b9507069e0543dacafdadbd05216655f6e144ca608c31c68811cd9594524a95cd1a931375774facaa59bb414cee4eb18a4e6b34a76ad2a6dc4f690deb50138c8b556d3f1e2cde7d4c6e16fbd8bcbd66ed6f7ff3a6da5e7bcf9072539b8161b64a51a4dc60585f018e9427383770944da0ad2c7f3022a6b8306aaf371dad878aa7e59efe26782bcb9f39f15bc851baf68a36fe7d4357ed126fe80d1dd93fdc20bbb42baff1bfd7f36666fe5328571214122a090565b5196d46be196df446b825a1abbed990446d898c95f5c8926447b222190e9990ec875d628bace6a81a3ae4500e3b97ab1b5a394e87439744d4a4b5642889d091ecdf15c9fedbd2fc36a42da96bfc2dde59911b44ada28dbfcf0e48b928dab84f2037a8bd6c51b5f762d9a6659ab6e18ef3a6e7794b6fdbf0c6719d87da5a50ded67928548b0bcc4bcc8c89f196312d2e2f30303132db8c4ccc06132333b3418a8d26c56c0e38c03ece62e3a05744162c5a7ef3fbbce59762db00efc8fe546c34788706fb78dc54e01de9e31c6cf193ef73c5c662c5ec9fffdef27bc5e568786e95893d81d98a395f8eeef3635c220cd5f074e0e9c14bba55a644a524b0e40c348d8bd4cc9a87f0012fbc3ba94c25e8140354ce481d0c2b90db75b0d62a79415e95235570a8b22487a9c664ff08ca2f526272b6df2aabac5465068b0e953dfe6c45261c1aa2e8128bac01e5b0d1eff66cf575ab4800e7c209648e28da48cf7a2c65ab2fc3d135fe727a8fecfe5d8f2ea8717cee9023bb904c977658e409ce564d4f108f459ead56ccf94ec89d683e3fbc7ba3b5b2d6a6d4e79ceeb4bb763e3f3c99c31bde9d38fb63d7d0e919729f3ee99cb429a5b5cab73d435e385b59c6bf2e97b3baa88b5e2f2924858660c82730ac335ab470f95d67ed4670e1623ad5e919e2dd1d2d6395f649f9459b8ba9b6692f56a542548e185679de08588649c826a66dbd6ddbb6cd2cca2cab19c855ca081293d0e948e976ce3967cbcbb1da7b3a9d93525a6bad2db28c34f4d080757a6878bd8a8a747a68f070036cbc7d448f6847473d5a4888c76b47910ec96245576e81851cbfe7035e1fe568399b84485aef74ed6ef556cad91a2b6dcec81adde8a7d5edceef2ae1855e96651c0d4f96e58d1c6d484ab18e871023d69831674e6dbbb36ed771e29cdbccb45b07980a59f30de3b04ec5388418997e8c73727703c2bc0c059a4f0d7c6ad02fa50487d01a97ee6d1db41bd95145860994b278392a29b5e0de9b4369c903252525263fb8887029514a328211424ee498818d15c800a207a01a40ac187cc81083d2100c22a017003982c405a30fec0e165a422ec02102263e2c0703ebadc4d38888418976a55e69ad35e2dde0b98a5c44ae219790ebdeebf2bc2949a830b9665069aa21caabda89fd438b1d845c50065ac59c3a3dc0b11fbba9bba99b9ac26e6a117ae038b8c94fd26a89752528632cb91f3b0de5d680fae9f7428f0dbaca217d79f4c9f93b653e4678217d654ef35f586853df703f4c9a77777bb7ab9aa75f5e3a536d6ed1dd411a9e2c935f427c7fe9ee6ee9b6dd8b4dbfd533cc7ddbe8fba78a20c4ec204d7f09ee2afafd9aef80feaae88e772eb61847414c43a2556b31cc5a0c4b559d9e1c5e3ff611f7e4f042fbdddf73c3c3c0d05bd9bec55ea3b97f41fb98fda46ced63f7b38f31c618a3269bb2b52fa5945262461dc4d4dd4e83b27d77f7c994adfd392725cad63ea5359cab8a8118f6f5ecf0f07398066a7fb3a661d8735f987224157e5c91b2fdcdbe631f5db07528db900347d9046fc9f961a921f9d938d7c708dacaf7fbbd136a5153df7453dfb453e3005d1cd77f08c9d1050e4731a8d6ea5e6f8837eeeeeeeeee5e831ca7babbbb7badee4e6ba594d269f3a457b03801551cb96b8fdc1fba081da4ae1e1b5e987256cd64a0f56b3b133bc086374750cdb487ef943ee79cddce7c00d00cadd371800d6f6e5d4f0f0c5fac52c5a96a0d8b986c9fb45a8ca392ae40abacdcafd353c393383a35579deaa9e185beca13a953f5c33ed279492965036cd8423a2fa6a2eeee662a7277a6a23ce7942c4ae5caa553e757acf3f5b0e0596bbf30e53497091a9eec3a0eb0e1c9c7aaacb5c43bfe83fda305638329562fcc5596dfb16241f4b8407fce14729d34f469379679991771e42aa5b491ebcfd03efbbe1a78c1eb355d23d7f739a3cd2a5729239e0fc2bc73ceb90209d88b8aa70368945ea75455ca6db3787e8360bf04d001363c1a30fa03e5fa5a2742adf3845661178b12e3e8dba7b682f3659e0e464c06daa4995f82045db6cfa79aac33b61701fdb76f2ee082e370f2e440135cd80f3dc89612594a64299115807d4be435fd3673207535e1e10fa9e5360ecbbde4c297b478e3e16f6fc58abffefdc63a17cfbf3eae03064df056f61af6170c69eb43c7016543ffd159db4ef8adcbdba61cd2a2dc6f5dc04bd4d382b77d488b74c8efd2f2852d52dd17ce64fcdc177a1983e13da27d99b7f204c1fb9a3175ed373b65add5e466bf99eb37edd7bfdfaddfe6d383e7754ace97bff18826a4b2a77209f56da55b2a971035ec5399da0eb25581faf0a5e5c32dbbbcfd08c6aec9be058cdd1d7e4efde075cf3dfe30952f8ed741a7e873dfe34fc54ca7b617ef9b5d43c1ab7d1898196bae67d106e812e5c051964dbce504842c5d246102051630a2c0c78a0b9f2a1df8248184045012254890e555a4080f21f801891486b000890a0f103a340189c1e58224fcc88f2c463c408228447a4801051e4678e47872418927260db60527388190209c104102ee0926201b5298d184c395687241104314f101082a21285a8191a7234c8470c1105d0f478c046921880b4c78409269e57cf3fc3c1822c6a5e37a25e898e8847047703432a5d9ca503a2ed8d2f24a90fb63c744ee8f9d90dc1fb923727fe468e4fe884790fb63cf4f004278614b2b8615732413b6f9a8da105914190e313a72bf746d4c18d8d2da7ce47ea90d91fb651645ee97190eb95f625272bfac797e1d18c114b1506f10d6be6c900b8324f7b7b3408c85dcdf156c69dd20727fdb57ee6f1b24f7773522f737cdf353a164e65555b0b4c8b4b244eef72efab0aa90fbdd822d2d5a24f7fbb492fb7dbe90fb7de6f9bda0c00b5b5a2f42ed4abc9bea4b90dc3f5fd595e4fed94d24f74fef398117b6b48e628e8c2223f7bbfcc41cdad2722902e5924228d787324aeea7d4e9b4f321101ec0eb04fbaba35cf22706640e5b50aedc0fb6b47c80b46018e732ad1c01100393314f5cfa63ab8b89894e11eebd2038e1414922329aa1080f5e13af8807e42db9669622472525722801a482a875463cd9ee93567b710898cb26019307b55153d32c3a3281094c70634e092edb69cdfec57cf3c538f97193fd6d3d48bc7e59e4d506f85fc738393be5eefa31fd9b2f3f2cf718f1fc350d867c0ae351e65e437d5e7dd48781980ca3033f195563e417771ec9f527d1f657985cdad7fa1ed44b72fd369a4e4d2ff9b91cea2429217023503d9d2aff0504bcaf8221f7f51b37207cad7e9a8c12e33c3076dfdca18f67c6eecaa1b38ab030ba422994c3e8a23d46bcf9fd5140029d9adf73c4eb0727e564a7b4ca37cf2223398c31ef46579bf5a28b294baf46979400952d295bfdcd9f297fbc8f5c36f551dff4cfce9a4f0d66cf77a1bee98b6dbee4ca9f771679424c22260fca371be53b946f46ca37df68fd35898872fb5f2129ab8b89c9df1e7553677990bffd719f4d5dd4464dd9bfb6e6f45753d350f6a7b485e450ee5ae52cca48d9af14658f31c52c8ac951fe7d712b68911af1b01cbfc7888794434f84fabdcc740acb5e0f105e1899e85b40da2c5df26d1cedfd7b8c10e143965fb3a28d7fcf116feb9487580e7b95fded870199c3c804de68d372d2d92e275bacf6627bb1bca494f262ae2477c7b2254694529a694445acb556db84086118866dd80acb0a0e4dd330e7d4c461ecbec4b4b4d46df25b72452e8a1f908824b1d4de444ae93389bb4f9a4491a4223477a738f5a30f0dd92978f269cd9c416776534a299ddbd5e96141a7a43721050910a24842a8c706ef12f1e4d39f9f68538327df7f7ea24d9c0fba9439b4b7b3dc67123f33dc7dd217366f7c3a458b21f4c4c8f3db629c8c369dffacc8f17b4030012762bae58ea454ce48e96c306c2194b61056d1d9b3bbbbbbbbbbe7a42d77644b6c6298b7c46ab5d2ca6ed9ddddddf7624218265b767777679976a4c96ed9acee96407777776f2d714b2cbb656f5bfcb89642ba969dfc4e76cb9631ca39a39c33ca39a38c51ce19e59c51ce19e59c51cad813c46bd962bc718929ff9002e5f85446bcf1e8cf06b18b1c88c8a9856528fb52b3bc26094e5d919bd545326375ca3f0418bc7043da90da1675ca3fd70f288796336e48a855cce9f74721a15c28d78c61c96d6ad203984aa834cd16563d0951990000008220008316400020140e0b0442411885711057f714800c669c425c4624158643e1380ee3300684280862208641902148196390424edd090239ab0fd5536cd7d89623f64c70915665cba61756de16b58c426e5e263da10d0e49cbf4a69533278c009c92b6d077a85bb78f1dd59be52e5a1d21aaebf694427c9bc303f167c04c391124911080da33ec066a29c1fa59fab9e4461c9e53ad0c6a05e860b682c3f3ee17998eb7aa5129954073424e009c4274c8a0bd381014ece8f74260dae45b2aaf652cb9e62a3a2ef6f1ac53eaeb8871f970c15773e8b890255b3de2474d27efe8c9f21a400d257bfa8b53cf526b1500ba786fb58bfec4878b70c86e5c0f12262bc8ba9ba0db1f064b80c5219a03853a24ab9dd3ed5570e0ae92d6b8203bf7e00320364467f0313edc72207f23f626ec3e9c476566d07dd4ccab1768e06c3c869e0e1a0d1947f689ef4e1d548fc30011559291d9d99de8a7cab48df184de69a5a0aea2cea6d90cb2028edb4df03fdf971bc97ac1001c81b610f20f3ba21bc575c12ae8c18464bba5dcd84710d5b6fcd9b121bd21c47f4c47e87f6a8c4081cd6c6f85be81a1ba5d49d7c05bdd32af994564a04ea6c716359ce8fa0600c586e378e205b2296dcce28e721fe65e9e2f0304390f7b0673121561b4fc56b587defaa6f83204827091b7d4f8bb030405fc5b614e8521acd793c075c11027dc935897779f9c6a09cd99ee96609b0c63f9d90e0b38e8fadee4f4f9197688d408c7c28fc771ad7b3c2d427b260d55cce591e1543c1537a4330dd4a3381579b7d8352309ed20d4051b974a2a02d628b43d184ce90f0b1f0e956144cfc6e370ee250de0574ef8637f2e08e41e6aabd94d68abbd9525126532547158253f1b7bb58a084ac2521af321a1e11de51e84120f6e0a52133ee1e05b9247d8fa2a94c4587b92f883a663e3c29689339285c6e971be9449e639b99e04c73475e1b5d404bfc8bf8c2d0972177e1758ffc019a249e42eff0ef6ff2fc074d305e261fd33f4bde5f0e3aab8b67fedad4c5bde719643fe08213846a4dafbe8af837c4b78ea6adc708ec6e1a6ec411e154b423b7171679c22b2f5de04e85ec525990cc5b48434f26f99051b448a405c395eb9a07c406ba621409cd657bb9a06fb3d8cbfab6e3c80752d7ce34eda800cfccd78b4eabb0d1af5d642263c7a25482b9e0e76f54fbf40d2ba95fbe6edcf214b7944119f7e55f885ce750ebafbcd6f9533537a3169a05975c8e7415ac4fc359fc6d24d3ba6a281483fe313ab3e01155673d49a536db6eaffc9e65742bfd3ae3d00e2788ec782a40b2693de82092f4d3d7b1a530734aaf5ac382530e60ab0bfca204c5b5d2c047ea75dfd408cd4bdfc1acacb00e0383f0e5b71b1e851a1c65cffd236a13d1d6421f9a22a4c0f0984caf75ad48e3447a40873d0b62f5bbf4c1a97d2e73138afcf37737ccd57aca02c713f332648eea994388248475f3556a90e9a9d8bdbbe0a2f763c5a68add80977a981f826d2aca3cc073f713dffde62968af4e8c66952ba5f4a1b26c2618551ac151cb1e5505d90d1b07626dc835bca4fe3c57d61a428d46d8f6e2acd6f2cd3cd94d7fe6b7474ea0df09652aaf316e403c6438e62dbd48397748bbd74bb512bcad30e269f879519c5598be860437e95c54418b9c0c1c972764c36e9b1ab178fbf3348f2482658767e01145f5236825d5b07ed2fab5126a766da4ba2db23610be2abe9b442af7b5fe32c29005b97f53c68f1120312e20262f482393d00ea83cc85ac4a49bef06ad285aaffc6c54dafbd68e4eeb9eda29d4f79fe7e9084bf7ef8f5cf817a85d0654ce4e89b77cd79ec983ad36806352a4e4b204c977670940ab1af91ae2fe732e639649dffa6a4e29d7e2ab0d8638d35d6af936b1edb9b7556ef7fb346cda6a2b4112a2c38cbca13ce72ad189eb6c7db6da7bc49a33150d93826a886db35c137381341e5f4c32b6f4b65bd7c85dbb5897c71bdac824f9a6ba995a5988d92990c0c6eb737d8269490f572cfaaa7bc5206a71108b73b7469c4428a1eb5eb286fb5089ce3ee2d500db7cb267fe292541266f7f493e124a088770e6e08fadfae3ed8575ba393ec04cf691dd6fc55163ef159a236b73bd65c119fe5ac70c49bba3702d3ed1f4ce008c84fc99c1932c572dbd593ef2166bea08ca1e3f227653bb9b34acb44128196bb0265a6d3b0a80305617d0c4640d16839e0aef432ef64df376e4c6261cdef7745749a123de48b009047c88668f8e0dff4147fd7f6e2b4dfa600b42e08e27cf3cfc250a042f7d8a371baeeac7094ab0fccd6bb54c89e024f596da736a5c9d467ad79ccad8a446feda508c195d1b238e25635fce6cb1ebc2404fae185525406d9c4e03ffcc95006c7c2b7a9fbd196c66a4992bb0ac128ba7994e430fbf5ef80370603414348cb7a5269fe7ca6e6edb57c52948b032ceab048d82026f71c20ee52cda516e0f7e1d396313529edd0136130cb2774f1a555a9e5af8ee205631f49e44753840d30c30aa8fc50a871e5e738d2db9202ab5fd6e86cf5b5820a0b1790951854e4236b17cccd3c85c65b83844adc21f575de4842759eeaa65022c5c964cdd913ab298e22ba150e569d8ec1c808a80f548c452c29c51765a71673e925327ca8237889cbd22a13719cba6ae871e55b161c4ec480c69b7f0a0ec9a10d067ed770d5b07753eef25fc462f5afa3abe9190d2eec569819848444004e563d05657b574c193d907b81e734dce9fddf8d37a203c2fde537d6c4a47565aac251bafc38a10805486fb7a0c65fa308f503f8214e1fe3275091888d80cdbce733e05ac7c94247c1d25c3296ceece198078ab64c8fc37e9141cea6dde9bd3d6c39c43e81d16b47393a0a78e1d5003e136a347d4fe26272ce8bc3c6d84f3f560d5c00badfa6ca5c5824e4d8167bf115c5a48b33190874a5d5252c681582f4aae007c369c04133af601245a4a049aa1d8ff26b3da26acbff04fe09fcacd9103eb32725ca5710c193b1cb9d565422aac81393be403e1638f3c4b28e70cf5d5839b26f3f40d31437a4268ce8997e7ff2742eae9a49f52b8e2f51063e52bfa69282f927c985477b4fc7544defa94f899e851fa7caa38f969b8b80d43ac0458aff0cb256bc385bf8754aa6475ab3af830edb6101f6939357563ebaef119b8d2041115589a9054919e48ef5fd69e04b7497575a3cf8996ce4750e0f177e83c21561a0d13b7ab417e60b558187dff32422b56d4d653dd42a93134d698a47ecd62a25a9c52304406fbe1447a5ab92c8107030bc76c33f454697370ad919b37e5f8899c7cb11b90707fd89551f24a08fe1862833d934fe3c7e855dd334dbc250f57960f1e6a3056ae198d24253334433e102c1f20cbc4ac00820c8dbb3954052ae27985de0a73b11d41d1b5f0aaba0d576af60989dc06d9fdcace5fbbf141496c7fe77451f5208b0953562b88a62db01e2287886d559ee4f5bab910b11c4448434a0703bee139bec17e69ddb11d0a0dd2154640ea46c7dee9c1b0dfd0c94a84da0d02f4fbe78b580adc9101d1205ec0862bc1b1d01fd7bbcc3ef53ca3ed3798d8edb0bc5c78131b3bd4b412f1c1836824902ad08a20d2b0e20534852b83c80fa598ef3ff7f7c6a477ad6340a1cf2d67e5899196fdbe8d6f0c8f26ef0aed151a6ed2c156218b34e48fa9a9c332d4a0fca347960b71552f6337e8f74d1f28226ad2c3f4c6f0c4d96255a95a1a2ef5c1fbbd39e49c92c33b70c3d13a107f2faf225a2aa7c7594c992d59a1a47f930f3e318078f6493d463977ba41e38f37c066d146210b01b9c99f8544c782bb2f98d0df0388209f6428c6f1de11219525713747c11f0cdbdfd05d8cfa3cd446f5704f6b67e25c1baee9126226f2a4633650992e2d44dc04f997ec01b450d89a664572bfcb820c27667c0bb58e8b656f8f11041bf1925c57547323e3af310634c82bc4c80f079e5d1e190108564673c6f7c189d34c1946d1e2245f16ad358acdcbefb4b2dafe955dfd2446d605342118bf45e51ffbee28bc9ddcb846c68861a7b91464147e85e5fb907f4951df960f0e20fce19cc195ff3311ab0e9f03306334d6ea1370eb6021da5a003a916eb9daee167f7f633367876a08bc41813c6146ced648d6b6e65246508442dfcfec4c1db00e57e69c2fbd99490dc6d3fa29ea29b5406fa8f04a893726d7a2e2bf61e30f5f6e286d3dd03ce270666e1771eaec2c5d4ce39cdf9a0b520cc5de6da11930e6254ea1f5571a3ded7630430743446d6ed866962fa410af401df3a1ad30275aa6e0fedc69826141b44871376c7240fe93c8dd41071093e89b9a2158f4c538530505b6229e4ea3834a6dc8a7163821172ce542788e1f42e06e140a9a2fe22719b8450d920cbec8ede6b081fd3e35f7889335aa3fe67434c1550d45f8ad4735542118a8986e37922cf52f264f369c3f1acfe0e9eebc1b4bcf27e75ca0fdd9aa37d32b714becf9e6e538654a75946bf89a4b4957dbe1088387ba72519d2d548438b00f1e4e4b1b23b4bd0aef84fe8bc163c475806b2a6668a888dd849f7e1dcdc736d28c18e4a65547deaefd1344351cfd70f76ffb4a5b261f6dd62ea8048fa151b661337b299879456c1463cb54aef49f395bf9c813289967bbfbce4a54cc572f2156d1c10fefa1dd62a32261ac4854f3038009ab2844c813986ccc05ea407077d53443b31aa9b1c45964ef0bd5caa1e4c1f79de95aa65d90b43ed0767eeabbc0a3db8b8daa06ea553cede7c97031c46d28650e0921f39c5575d28a3da6166fcc56c1003467935eefd6a3140e9e001f11c8f7a3462ea89cb6dbe6f93174eb6f4f6390cd0e27479c5aac198046b8ac189fe48ed1ccb983daaeb3f873ae3bd1ba713e9eba7b6d2a492736c77b8192b2dca41fe73908c9471ed306908c614ac63158c9f467a757d3bc2fbd789cbaa6e8863cb84ed16579c4e7f226b4cdc4eae6fd40aa5f682bf1c928112543bcc0c60cc1174a859cd6b160156658b766bfa0435f91edcf7985e7bfdc7d04750f67798b7f5043b6f1e3932c85674ee0b6b214813657ce57c0a4170d499b5b9037294ff1c2523e55c3b4c1ac19832bf06176a8769226a1951816ca377f51306687ae4cab8e1191e4c684fa685a04e7698e914a01d567f30e6c1ba0715b79a14d7e595e3ab8439083e451e30f3131673891536a1263e849e0e4e86aa7f87596bc867b7dbddb4779f03ec99d59ebf34bcd54ea7bde55ce1cf96f6cccdd0cdf6bb766ce682ff53f59598d6b51deae58452ae20a8fbd2f3dddacda08887f9cb130b4b8841a5093927f44299e13b4e97ce8782d5451472988e382ec4f182764f76285653992e33f332458e61a425a39897ccece36b1d3e05920a6d351da28dad55a0336227daee14a3d234669260b1158a64eb9adf37ca5469593037cd6f7f806d6374ede50f61d82699c98c4e77b15d1d96d9f15fe92894b9d38b7b5a68660b593413603aa81a09c9c7681d581237e5c510abed312a2c502e05e4fcfd25c0b5de35b0035c772c79491bbd806c1a241395a46b1a568f557ec736de9de0f8807c725e96d8495bb2e79127e27b38208fffef7312ec8712ea963466609d0e38d2d994ce5f8720c1be9811844ee0ff1c3006e3ab6bbc6d2a37355a32de051e23d72a03d24cb893e4ab17da7d7630a8451990c39779212cadba184c8ecb7f15ecc51dffd5a61a88691335a0a309e055e7e8cf39feaf86a19ed1fd3145e917903f204a05482f0c7bd8d6d7234d34012794f976adb960d0ef57f97483f1432d3367f0e3311c795ce4f573bd5cda855fa2139a6f263ed8282a69f6ba8ede188786a8a5c18480333817db34caa3daf13edf2f986dc345dec30eb293c5f0af4562a0400437d86ed141a0a15931ce75343059cf77f32dbf8ade91c691ec27ea514089841e6a0fa1f1117d23449e64885ff90108818bf649badcd45a2281b1e3e3a706a5acf1e40aa947cb661d82e2687e0245f444827e87c7f84a7b29bd061ac19b82b61f2513d189042e2a0fea74a713e7115a617ed18c829e2d3e47fa0b61253245460ab06ead228d3ac86d898eaa4a0e2b273ce877fcf8e7ac258c4632850717d4ba323517457c484d7b063478bd8c35df56fcbda1f10e7fe6ed335ec0a204b1aa05fa5d8a2e7191d012b2b1dc1272f11c7885cb0b08a282565012c21030799dd0ee0c8e18bb74504fd2baac13e0f6cf1902948a58934067b06c8b493bc4c325511cae7ed67d7469ab650cacc4230d7695aa7b5465bee2c38d1c26ae7a9b02d599aa122d5782d83edbb24963cec65721e92651eb2418707c8b140524fe33b480ae098d20aa232b9c8895a012cc0001779c1ab28b33326e89525889d631fd9c2d8af0ee699de79d9cde46eda25ad13f618d94b17d2837e2d0590c50ba893aa72648f8ebf3fba2260e93e1569f1adebe422c6dda206a8c5793fd424decfd7cd34e1f4c8167e38295811f2c2b2cea96def1861e8849bf72933ae3c35ddbf3b97c045d83b3523ebecd39671081f2e4dc138885c588ac9e5297da8e2111b5540b2cf57719321e3b1c6f4759c56ae0e81f299aa6024da0c6dea6e0a7e57a4b8be6b3f407d49880f70117545a755b8427cb15ded0fa51cfd3ba4eeee0f8d4783c98bb4e244e57c942949a607eba9a2aec18b5c43bf73ab86bd3ceda01ecb3c2c05961d908d02028808709f45379417a04edc56d1599c5542fed968a8a3d1d070eda56d684baf3afc7a8be1f3d63ed3cfb3f5f80c61134c1d945549b3f0ed58f574050214905a849dd90370bc2860db28f892b842e85d6f1210c75d4534192e730b488c74e16397e696f6bcddc8ff7af50c2d45a44155c143243a59f35a88cc31e6f29ea672e18b2625814e345572ba96a685cd1b070ce1d16d1f4af6b8259dd9eb7aa4d29873fb4347fdfc62e8c7fd186b8f5c4e8670b92652e7aad508b10e5aaaf99ebe28bd5c25146b6f369cc375d54afa879ebdae18701b228b14d5cf2fe11fd8c2112b37738b580e9e8b8cc078859112c53ecb010ea3d20ddaca0adb612082e4515e5287bf4d30709f2a2e570e2e9feb0c88e4447e9f837979b302d114effb589eb5b65cb8d2b7fa6b5c155270cd4e3fbcf2ba69cbd20eb1c2999b6e73630a2ac7cc4f800a829fca0e2b6d84caa8fca995525b851e896782e035a5833cf84b30275562b3f11841b61e43077ef50c6226cb87a265e7c800f7fb688d551181a00d3d6ef37800dbc93f14cf8b7150fb4781ae0142ddce6e24f5515bd6f2c808876d55abcc97ae6316d87b7cbc8555ecbbb8d3748d7ee83583741fbc1fba2d71e4e56f36c7c3e1428dfab295072f13ec1d3fc33bcf086bc6fa494c01fe247d42a5566a5c2401f61586bc3d4df031502bf358d0ceba8ba52117e33e848af9809248bec3d8e87da7483b8bc08a89d50280d792d081089a88ce67dc14399ffecbd4c527758a87443b2e56c759c48dff0e263629ff7bb6796362d9c6c8f9fae0978b1c3efae49be03658b6111fe81fddb81696fcaba453d24b63e21ee711da344db859ea5fdae7c5423f95db48aded48c284156a483f11b050c5a45d0c6cc7e7283e8db3952e08bd9dd5da9e132c0df0e92b2ae0c97a7d660c0c1a1489aa8b4d4d16a93f5afb0a6b36fec8c59521dda90f6ba36e118dc089e84e0eb0d69b9dcb967372c839f7c1aabe13cd6f135cd1b5abea36ef196b822a19fbdc37827a92b391d6ae0c33fc8ae399ede69684bbbc625b6a7f4bde20e0f80d89c6641834e9d2027b6944f2dfc9afbb52087d8f0836e9cfe5e7b54459ff9fb8a56418271da9bc22b43c85d71835e7485c14ff56191ac3e811e0c3b73f94e5a31dadc53286c72f797ab12f0e13c027c8989d7e874d1320f70c8aa583477d36780ec6e8c4668a06f09840bff7aec96a18e89a5169a484a4a87245498db6e67b0f6ea29dffe5930fb1290602a0ac487e7a710a7cca100ae40db06e11d2658f367e889cace0536169f85843abfd864b60b24ad9e0c8a003a1376ab20b3db03008f964fba28590465e4a66d19bfac36254ad625ee6020ade5bbc8fc990e015f5056f8bdca0c6e629b059d46a303a6ad4867896ab5c26d90b64e8ea6518b382447d484572f9e634056fb85408aa5edb20b47c9b23f16d45eba185e979e71e137e3e1beae2e3c55e1705fb879a55d5ffe6a4eadec04000bea0fcfa0b4ef6b90f4d03188f801d81b816d90438d13307183de9ea8a1b36681787a19849a9e61e9ba583f951e45a18f47898e076bb72eb22189f86abf5a3787f6679689db3e683b28f7a02d1534ba69d82bc28bfcac753b79e5530e31b4f261dda5efb9ee53b4f0e30e2d57ecc9d6391d2609bc5b1110fe3ab75539c1c000b2915a7fe6b00b981e89c381dbe8852ba74dc4145c9d04e109b99660e6683c38795cdd96c15f64be19335f56e31e11c697a7b9277840fd1d248daeceeb265be5ff04a99daff5dee2fd95ac29f218afe8b1d98d1d223e8e730e803f217e0989bbbba9cfb62703bc77963032027e3d85237ad433f59e2b858b0c6aa58bfc54b9d69d42b99ec06e2a5a0a7830b4bda9bf8736443ba8ae543c9e80c96dd465084cbdd256a5ce4a9397ba6d0cf3339a1b4d6764ed0fadbc8f80ccdd7363800eb9e05fa1913d55c1cf2d68bdbcbbe0f6c121b9ed61ce8a06acc8f077efab29fc0a8b76a94146c8026eb383914bae0d36563c2482d0842c0f8de490eec4ec2ede2258e9c3a892a77187b1e0bb9e7d3462795e1fdcb904c798d55d48e2b612c5a5d76da6c5ed243ee75249a090e9a91e9fa7d7e97d142bd04a7595adbbb2067aa012b3c0a1d98c64af56ec6940731c2bc414aff9ac32ca46fb5db3baeecf7f655d038a91633e4b279f612182cd17052f8a3a6241dc2c23fb94097029a7737e040c1d11396ade6d8579b6ab46f8f387e1692171f0f580a43b646374f263a6fa30ba00da39d461f95d538a2b1d0d0ab1a2f052be6668a56e925945fbd68caed7361e2233402ae7c9357db1eefa68bb485fb601e146c1cc47e4962283f9fea94e3f41191901c0b83f1d35f2ed335215558720ee0cfc78f3241f256881602a2c72ec2bcfa1e4a9b155ccd7011712beafb15f9ab900f3c145e9cdec7a22cd164e786c44c87ba4cf88bdb891c73d6df1715e49a01ccecbcaf1008154ea814950076651b9347219e3bf982c654601b9aad105713f6f13ac426b42e4384e82e420441a8d146b21e919a2e622e69b1cb5b50bad0c52a1a4cd29f92ac75f027b2107b23d8d16e38d8f38b10bd37626df3b8be4de0246426f72049c43ec3ea175fd64a191b0141deebe351e061d972cad9363172575acbff0b86061c910670fc088a4e4a996ca2759b210d313bfc9def4308221440e4f51e076e99aa31e5196f66950f22521292a2ef43cda2874ac3811a5a330f92fc96d9de12955d8c3fa0d3d368dc7d1f8a524cb6695848ddf36b81cbbb5c317573571ba5c49f8877bf2fab87bf78f7cf2ece6e6875e00a748fa846e5594f49c1b3f4b9f00ecf3ea33c546553b72236f5164094b0f4a9e2b049c292051fc463a68c2e8a5be40394b75040d35c16ef8aacf4ea718fb46ba7ba4d4aef78ccdcb0499c9ad4a796c9296f647794a79ef04f5ac4c05d010f42f211885c89f16985c8c64b7ee87da05968f6445482d4ef8cc99756c32a56b942a28f4f9e36627334b2031989479626ffc4c0e9799d7abbf2bc5dffaf0b428194cc83aac85a9d653cd25f3be7d6a9e6c3041d6ad9b050aa3b95b40de1605830949c7236c7b17cd25e293de0c26220ddf481aeae90cb0d6133324aa7c8e379830b9b1992d911a4c3aa6788d9ae68ff37cfcfc1bb384706fb4c46ac582116f539af1a8e327539dbbd7e8bb2fd1ed958d2b7a7d773a4a840983b553575f4ca880c9a0de0470e63577f3e859f0e4f07691d5a70007ab2dd608ff36ca05b1ac049c047fced39e0938ec2c6486279ed3ffb36b6edd23345d5364b822835e361314bd03abdabf0e2a0320e29d79f7e646bb2780d27e2b45d5bbf55c33f4034dfb00a2240c773428781ca340feccabdf9a091f9a8a020559a94d2f7b550d16c7a0a838028b51148681a0b148248f8a151f263541d2f728572cb8cdbe07bea513fabb7555cc9e1334a1935441d303cbdd526a3c07ac5a87c33528052154004b1a56ab26372af9224efa1c0cd6bf3af965227d93eec49fc37006e515384f654deeea0c5c894766e44498f0dc0946c7cc3c3f0497b5d8da72b91ecd1b819b439c8406b68e18000c69d36b620c7f983a3f50231bb6a956140f2080de89b1b52eb221a61189a0bb8e4d096b98bb5e624897f5138a8a1dbc7958fd8b913a02eb30ff1508f5780744e00134cf2d876a89210d3956e9e09727fc8e7f250ef84aa8ec7c32ecf5405053401dbf8c82a63e557bf52990116b24a3e9e27a1274861a8ade17b9c34da2bcdf5a03423640599b1d07677a05cf9cf22c64b58e7e18d167a60c1d0f5b4ef2c234efe01b83b748e32e7a0c13236ef40d57daac88483bf79b5361880a9929d5361d2b1056691ddbf84db3255edc297dee1a95877f20059ea33269063b91add6fc94668d49718db4f68219e2ddc195747f553d9135df9dc3cc182c97c1f3d8048d07a5f9a4cc8b1e2753021fa2905bd8ca17f675d8ae4213aa7ec6f41a2feb2b0b03f4d06579652e85c6fa7a1255bad3a24a28c774402fe8256d010f28482f5d52411494d03a8b64307d343467a97876b25c279cc5193350ec0f38eca6206da5db28815a93835f61bf88046b98b084c82bc3562689371eb27d855218dc9038b40b98cadcd50fe80e0927921153a7ee674581005dcb64d2163c4b9d3150e7944511046765ab0200cf96b6b92881222a54a4797cb9b632fb0cb16c7fa65a8cacfd7062ca024a50bbb2ab31c945fd3e585f92aebd0ca8d28c4eabd2e5ac6ed31f3101f51c90256ca3f96e91d41b6d9266bebc41ffcb6ea29e7713cafa8c31c59429283e374abe7d79fbf06508f43084938bd4389d93ec0c128991662e77876cf58f958790084f1ec123af608adf4b675cb4a3124cf0dc14995d38860544e3a4df1a1b844df9f86a7144ef868a24fc995354bac9c5b70f766c992be65d823cce88b629dc86e846017c72970b3115ae6a3b0cd03d2e227d5a16fdb38f305b8b5b043061e0daecfea5da39f3c7a63a06c4c500a13bf4bfbb447b63099305c3c0a2873feb2df057e9d954e4adfafc214ee8a257dadca0aa2034b0d48c5e29f0a2b3a5da46bff856478f3dcf732179ef8e3eec5688346f497d6165ebf2a0aabfdad0f3200750546f75933abdc20e7bfcb11f1e9c081d08f9eba610d98ed6cc4205eca922a5edd4831fa644c868f7b6d4abae5e4230446b48371f0d448ad67dd3f3e2f9f6adb94d6a93f683953019315798bcacade23b98f90ce490220642531b8854bde8393be95030c709d5c7c7ade2888188cdde15f63a365016ff84bd44cd25a513049ac949c4fc59503ec08fd06d6278fb130862a98512833fc20d3428217d3265a5a3950d98bc161f01738150cde381c49947d03bc61391acca6c81043e5892a014bac5aa354c829f8f53b74dc87549bd0a52ef83e5d9e327daeba2da7e748619962678ffd381fcc7f8fae7ba8000d44ab4a04000d1a6e7ab68795eae10f4299c04ba76026126c6d2adb1b53fc4b36e4012dc40c1ea8832cffaf2df3b904b53421f5e19d908edefe09cabada4093eec57cff03a4ad44f1d17ce93ce933590d612076dddad9681de046170c7e65879e315e48fc1149e2c4aebc5761fedfda335e7c5c8b168473df907211581288303c6104e409fb455f7a259783a75923dc6662500274701c3e7b77630b38b875814adc824fd464507b40255924c5484a1ed38167bd87ca43efac24c83ec8fd4c10a24f523b86e48ea64e20b5024a9a8d0db26a93f2794d46f734aeaa55663adbad4546f2df5d456dbbab5d556535ffb50273bd2e76edd63c87aa6496584b54465fc83197576783145f85b5176cb856be9a4cf52eade46c968947f5915aa1df15d0933111a01f1dc74ad3aa606301693a8e7b17bdf392ffc7a2414c7508f7c6e7f62717b7aee5393b5a297580e1af2d153bc923b074ef0e4458ea363e523a309e338a6efb2a056aa1d24c2e4f5b9b02b75bcce350bef5097232fb3609d775da7c1e45863619094ed3ad50255315f6159b9e856e0399a3b83a459d7490da88ac30a0bcac5a902c3f1b01826c55b9dea40548ca8b0502ebe29708e86cd7052d6ebbc1aa500c8c29fe462848239d2f325c30d5b493c6b026cc78d7c0eb3611c9fca59e20b23c3c947d49b2abbb9eb9b13e5a69d32bb11a2f364518c0009bbc14dd3b7d357a1e3da9a93f42f9d8d498d008d412cd8bafcc8e7224ef5382b2db9b123a4920ac026d47140ce36eecc80ebcac7f95dab72f06d997f638a31477edda61f9691e10f06ac8bbd1e3a80a575765e5599714240d9b784bc0a8b2ad6bdf58e37e8fd18617560cb30e70adb52ce6757b75b7067988f1cee7afcbe62b7fcda23c0b8ef3ec56952ef815edbf0bb751122ceb1ed9432296ec6d19794ad8a22481481bdabee8c3274768f35107807c57c5cf64c487e77de905f2b9bd6f8c5022eff06d609de25e4cc15b49aee3f81e138c1b93b444a5737fb8495dff6f93701cc2f36d8a36af660d3e43ffc857eb97f4363b8dc671a87f63e2d0d6048d6a373a5268dd8774ba72ba42622697eb42531a61fd29cf991b31d693c41566beae11bdcb79ecf05555d0c3e78e4c3f077bbff8281c8d0debadec2823f0f7360a35324cbd3bbe126059ae4e9ac60152630e81d31add7ddf39d3a8349896bba45fee0f49a4236bb8826ed03e259d74046c4e9e03ddd3ffaccea711097733f99dc1a7d1113e74d10fb9b3ad28374dfe0e52205c5340733b2a03cfdac119c854a8d993429e630f7088a21ca3480ee9e45a78e760f4b69752a35b3e297f6b31dbf2faec5ef62c7f316372d36ebcf61478424a5e1138b1b4a4545e3a13361dc8a93c19dd14f17fe17e79ea4e57905b0a8cd8dc2cbc335996dd24bdeee6c2f7c652c2f2d878bbd2ed76bec8a44559540682aea4850a329203e92af35a7c53504cde6d13ba4b8abec9c70a23c12e6821fef95b8b21ab6a9239a63c01d7f3bb09e4090a59b3a4a3092ae09b32df1955b8f1af025575ffbfbce9983bfad50cfe649c4ac0bade5c3a5c1952dd823db4c0fdc69c58e3c8adc5693133c22319ef2ebe20e3aa305e7e0d942dab04959b7b3a53632a72a21a66173668485e2b3855d39d4adf848a81761ca139bdd7e72355b26d9429ab8d8e71e1576be86912b29f6f90c8d895d43a951e7d68ed84f92d52880671a2760ca070183dd3f810814c22cd40129b5b96bb5f3d5a0a830100a24590f4337ed5614c920a83e50d519ba0357061a7438cddcb4c36b5d27727ca43c863e8dc632f04bd693f9b6ce6396ed49697a6d4f8b839ac5b89dc9bcec428cc6a51a478db81531a8b74bb2eda211bb2948f97d0c9c283109e8f1412111faa13b7ca0d6cb17a62d41b1d9f0c5da820baa78a07f0a3565fe3dd42186404e2cb79f431928ca92793f5f0c807ebedc3e4ca8582db8dc139995c1025100cdf12aef1c6740f3550eada644fb9e290b03a762aac3abf275df598690da6ffcccde8f1366bff539d8a0e2b7154b6cc91778610888e70d00261949774ba3a671ad5f5f418f8f1b600cfdac5c31dd68a8069d983780b04eb239b77dcbcf38464524ebda2a83613b1af739d3bfac841179774f3e99b5a26201705551926ae2c890834216a551a5e8c0bd10e506751c23d30dd3183b8a13d1a1fd5dcf99c3323da64bdb9493c401a18f733e4e2a47250c0a1a9586d70bb37c74062cc1a83277855892d30eebbf56ad4d6937dcb80208243d5630adf99c8020b5ab48705685b53236afb693360c2554b3f962d88cbe443d6ffa53ec746b48b8c0b62adff952e77f4e70cacf1ced00d99adc685949bfa92187ccc9cd69565aed101ed34064d86e960b753ea1564a8b21e3ffb95af689b3ccead077c400adb7010a36f68489cead25d616d1f9716ae2fae97d7c32221d890f131d951e01f3bb1f9947b75a1d65d2908d5f3df4d0aa468d39a4e70c2f01cd1895085e1ade44472378595be99fc5ef75a8ae9b23727eeab443126eadce8ad38af6b10bcc945f03b4fe73f118b0f41647621b8ba6f25a1dd9e5b3d62ac0f18d3c56ef2235248fe1a8bc9c1e37fa09406813a7da20121d2521b7362b5558857003d75ba1eb66515a984233b3f8a2279eccd54cade89cbda2ab5ead55a0152ea2ce9615b30953745e6456c82aa8bd9d38b1963459d9181639ca219f932820b2e8b44fb361d67aa012b8be427d85650292dfb867c014809c633b6cd3ee78b886ffd79efb401d9385a0d32a9eb5e88493633683f9a4591f339d24d329cce523819b7995b7e714510a4c65f56123930a515e294c23eadfcca085e234760cc9ae364b9b03068f69866bc36ee6e15838cc2ab9d07d5be6be7ff86156dcb3e08e071bef601e402a370cd46568543d9605d0c7e67b78fd1e5291ee591a2b75371c767d454e65ee78533f9d9164d43cb685e87eb92966cb08a4280cf2072c361dd7b253dbe5c7ef6839d86b26168dc546f35ea430056446348be7eb2dc7680efce6cfb10326838ea625cc47fab5ddf16c3cc451b6faac03b8d228ab2f44181b11fcf863e43433f36e7bfac9b010261f544f88ea2a6cddb2e6ce91e82c9183cc99b8567aacd88e84ddfd2ce9e02a91722bd8a8e9c8973afeab3958a38ebf74f69ee155ed6ae78ed29f3fbbcc7dd31ae98b27ce0ec97a78d79cd5346328e4a30914e1e384b4a0919530ef71b065e06c5a662dcb989e51d9143726350370a87ffce069e05ce1872a5efb793a3158a899e86c56a451412d7b1707f985f9c36ed37d9ed0efffd72a4b8e60184aac57771fa8626d7255daeae333ef0c67bc5a72596fed2f99ad53db2219970e0f820dca88ba401c30d1900a4a5d605be732c5a37aa6d951848127a3fc7d0d82ae6a6d2e540074fb84d1b4430a03445a8f9b1745977035cadcfd075fc06039b5e756429069855810dc0a5fa9328d9046aede888f8090da4ec5f2309f108d5076c894ff856f4352dc7245118a090a894d482c4ec22e9156f8ca7d220993c0d150410ee7e1b29a8cffde64748950fe172486a76835d5a672f170f57cadfd0b1f53559d9d2d9687e90050c3cd6dce4cbfd2716e9089b5d78bc465600d42e622785cd0d56c33be4ef7361dd7ed2f9bcd837b3262ff9cd38e338e096fd22b23efa192aeeb701ab4ce9d539b9b464dba84ceb18a8f253dbf8dfedb1a27fb4c71dc322819f9796008d0018b9e1b1f6c7860938bdb1b13c8c13781aeea62660416a42a0e6ab3d4cbbe1a8f35641eeebc227344818f67f136208f6af257cd1df096985bb50a383b3f33725762436876dd4be21c378d55d14457e70728905b836a1e07e362afd5c25d580739b8457c30b3e68a20f4b58fd531573bcce5008129eb58f36a9ac2fd1b1cf5c4e3540a63910124d48d40cc7859afba4d4c4d792804674e409f82d69e0972959ef9ad59b22819041a368d79150b6f30b89e9f12e1df6427e80dfa0a646ff85ea6a41e25736f5277ab5e9eb4be7ea46f349eae70e71542b9132d56923bbfa4d73524adfcde510e9af76af400a7a2c54f33fe9299a6189a45152da12836640719159396723f26bc86457e4c510093c80465ba3cc66e6b2fb2a7196bd0a55b010b298cdfb13773d957e57e5520ae06ec8a5abbd8a374b9c0a91cb6f9e9b20f272398f4082ad374f3f9879519348edcee472be7e8b0c8b0bc18263a6cc87f06dc8b74192e6903a44c476fa689ed8d4bef812c4b3ee1989272c6d60f15178fd4a00d99489b93068b97c696e2f46dbe98d3c846588b91d0909e399f5736f0ea751c0c575192c82b6bd369812b4e75bdce512569e787703d1e34cf591ee99257a5ef1646d60c38391d90ee3da299fb1b77e541569fc1e13cb1400096e1e89027b49ae7a880539370b7b0f62fe041cdcaa6a7673cfaa6cc1ad19626c6e278c1a51251c92018595a03aaa74d4305ca375c04ca5039dbcabb929c9299a3c4db157cdf0c67c5df7c9bbfb4320576c171ddeb8ff1b561da6e5ead3c9a016a4ba4ee14e073c23b6320f2c9dce4b4c36e1e776dcbc935757ed3d08ebecaa75ed5a5a46d5bb5e5bac0074f1777bd4caad5cad549f634af2b15730d154f63f1627f04fe36761b4ee8912611ae75b764bc4cb7fb325272e56eb74cae53678dabbd7b7fe9a09996e57307667801f33b9716a0bce9e9978b2565a619bbe53cf82bb1d378cffc27ffcdd282c68e2e6be002a1c6a249162f74cdc403743d016f2df866abc3d8cddd7f5ad262882e069de4e3989a10535a8f7210188374d539c679784557f422f9bb23d1ba28aa6951383eaefedcd4b21620a26681d76bf2118b72f201304c01306bfa05278e1b14cdf2ece3bc28e17ce828a3c0f13b19450f419eea3b59159a566fb3a82fb57e08ebed927ea2e98fb468160063cea29721cbaa598ebd35ed54388ed27a89053ce0cd73ec30c7974716426f8d528a11512af6160493d84e51ff07023aebcf6900e8ad7c79b8135a8ec657965a05cd6682014c18b770554148f1214b87ec4f17c43b1adb6630b4e43428cae89c3a808da91d556a4d64f93ba8eca6b08cedf0adb3a0dba1ee2f2046b02a75d7ca23ddaaaa87bdcb2108b5eb23f91b35bf3ba672fc8ec221d47693e856fe12da5aa44a5d21599b2dae2ac2ad9ce348e8c4855c17ae75ad56f398a2286fc7dfba16973e956d2d5263b3abcb12ce9ab57a0ba102ae8371ef79f1ac0a10d23a23a40b26a3f0d0e1819921f6f0fb01f5cc9c8e5e4041ded72448bb942d27eda2cb54946e2148e61df39cd3bed5b524b6e2015cdcd8dc1f7e082e8bce56aee6400180bef36a72d324d20c0cc45fa3a126666d34440c989789b06ba7dc858b82db8d745903cebdfca28d487f0cbe46e3e3c4e519f4ccdd5f73022cf36370cb2b85272f90b0d906a874d99074b02c2a8d2dda6070764fb3340c7e471d2704318612a7fbe06a9c38b160e2c2244217b73a6635746967f776340d395bbbd826423715d2cd2af5f0d906d2dfcb996a091980d36c50a6c68c585650b545f654324e27279bb890862437b12c2f2895ce6be7c3e255667826928adfc96bebb30b06039dcea883bb4b681036b51c67d2c2dc2d15ad4dd59d9b9eb42e9cfc3788d4fb6452f60186d7b819ea7296eebf9fe02edfc81a5f59895c917c7aecbec112d7b51f2906ca6daa6c5ca8cb07eb1d4bdf4953b675210ae82061e9bd19b4ead1abd183751a9a6ecda6170179c4801590a05f0c1c1a115f846a1a63e95f0fb3031abe4e4c5a4d924e4444fa423618249b3f85db26fb5c0ba56bdb58d3116f2a0a4b2c64ca0a3086e7c89742580e011d8014c8daec2117b842c886b9ce303c30bfbd4e4c474c1e88a36618d3ee01d811c7c58dc839652fa9824bf14e3a1014c29afef96b249190984e8d0eaa19b60973eb33bc69aaa7527842147de34551a41abd1420f9c33bcbd4e44b8e2c924b517f4649f36f237b56235d989ac1ab74f5f7bccfef7b9bd4fe1924ba92e8d0c70faabb16d4ffc3609365526d2b6b02b9df68ce09212b80b74f8e1fe42e357633de0d9ae67e9474bcaf3ff7b08f4264a847dd450cc320b5aae85f8c332f2c5cca3cfb189c0566a115783734a8deec3ca2616a261ebcbdb8efe9e0609d609192f292eb0b60cf208ab8099586ce7d4d5a076b830a0ca24cee1829a0910927395b41ab6efc231694ef57494fc58c69f15f611b121b4774a22b33ecc33e7f6f64a891b921e8576cb079e9252aa173a071ff5c84339a9269cf95d491b020ac30ad53d1d282e2f0b47862e6e3e8c5afbb950417554d4fcd8453d52867b2c816c565d2d810eddc85dc02612f6d1398fce412b6a806ac81f647f0bfcb44bcd46af9232277a3d3226fedc950169b561f13d29a286c592e257347cb63b2547eba4198f70ce2b5490834429cb5623a4d1f410b61517082a27fc4756b9d1a892463fbbad069eb046820b2d38740e011e09a4f813d576027a83305e40104e3e48782873055544db977820bfbeec38165395b1cc11d2378271d2f737661d055b9469a5e7487a04589a66903b4bc530d57076f0cd33e651e720a5f311272a0b7f94c8d8356518a042116b8db8e07e560c77b9e03237ff5d2d30bb86171c596043d782b02ff7fc63ad0c9812b21882d29ad9d84b8ce275704f3da921c74739261655d1ab64ac06307381670c454d282d9387c8ff04d09b1aa423999023e8108b35a66f31eff84456c92c46b80c1f68273a86cf611079e2ed733bfe033ccae9568e55c1516f7c119416d8347bfce87bae9b3c7c73fa25a04f449b0d22343721c42804243c6adb53395405221431be4cc056a059354fe4b6ac4113e6745856158f7367913c4a2f5fa2705686e11c30c2111a47502f4f182218417b7648023c037c929aed846b272454c07c81847f3ef351bb0c366bff88ee5acd8341a4d2cf3527c6a161f171aff811eb33fc7b295b5cc19e8285ca1457bd2c0e1d7b157713390c4afbc2387f96b89f438b8c71d1b2b50c49f4be79525eb6fbdc2819bcd0c2c0f297eb9e3a6be265302e80d4e63a53ce9d944fa20335efe0d254946bde142e4a659daacfe74c1183924e006a726ae8ae0a991402aff5dcdf9ae5f5afb45dfca0e3e0f1328f0225665a455dc5a7591412a1cabc6c364b8aec846bbe3433adc23495690ee70b3d9093a59b9c16b99b19f94defc075056c8a6da27d1104053594f9b1ea35d105c72a82e681394f6a966b38edf6557bc27e60b405c802fb3b0e03f09d6284507d08ffd9d1e7e0ef12e41f4467a80e38848823f5d2e6e9b183bad5226b20ff84f40b5f031bd64f7a9f5646e5993b0186fecfe56870a154a8ce0417fcf90002d2c05b911e58db8d9a5eb92882426d59779a1f44b5b8012df2bdd1490273cb9361e93e5f21ea0299314ee203ca090987385b5490523a4cd41fa7b6a0f87ab37ed09e350ba9b4173b56195a5683f246e4f2c43e81a36601e4312996e6562cd05c96d8379632c27d461d07f97c2c53092376cc3319a078a7466bb69dc0281269172b41e2b15de9dd4dac3d5e3f45c2c95f046d53423e224250ac3a58889bf7e6179a7083d6f5fa8542389ccf029c9d50cce2ed79adf6890060a4858e923e22ce9b8ac2570027f6df8215c7dd1ee69401c393384a0988714a2e3a336b39c11b8a9961a532e0aff153668ced0855da7ebdd7a661156624d6727714402c6d5ff2b4ae8391709ef06540a97973ca55289b8a102c1435a3e3f7231d7d3b0828aeb5bef81609231cc60f2d5edfc985a3ce4716d67e0af8f50212b18b4892a3e1be6e957187d1f95b6f07ba724b18f9635cd92f2476ed2d22e399a62b2c063c0ec49ca9050785d34c2bd19416a75ce941ee766e57d48b92aabd5b59bedbd7fcd6aa69416eeb272812ad6910152f729fabdac04606abaeba2495512a2e387e4b9aff64323fdfbda7331d932b5c3919a5c1dd36a1a5e19385fc28d283e64af0db41243fb804b2c8d7a93d254d5dad117901b454b119bca4c4b7339081b98946a6e22494f9ab982bf3d76cc8a95f1823fc53d78fb15e5de1989302711b3058e4e44076f6eecc27b7fa9529d7197cad47a9f6864973a9ac3e8bfff0ec5fb18a4c76399706d13f69ce6bdaabc8298429f70e9bbda975f13491ca4ce4d9b6f782c9145da7690a840982efae9937f4fc58a43af0be2267fbf48692a9f9c62a14f89ae920e75e96f56fcdeea7801c837452e3f6571816b1fbae6f02437167102addfbc2ad71d566ee28579c2944563e136bad2d7d067597b63806a25a5ff6800d249620d5f32a652ea1fd6b3096bcae3e74da014d80b814ee8fc72235769de8a0154a3bacf880a73260c00c69100996596f15d543ad22f41ed799b299dcadebb12973e54dd21fc9702badfe5615e4010ba9a0e0ea4975d97fbaf3221c3eb05db1f219d8ae94a706566306965295d47a8e811eaca00cc407dce68ef1366d6d83c43f41c70cfd83c2c2edbc13637e630a06ae1b46cc07761a9c75ed79d080a19352149f6de726f29a594494a19da05ce051506dffa5cfcf6a19ec54793e3342aa0810cc8d6cb8f98068b973f83f5f2653c0167266929c1c9f558d1a144724d0067ba66d7e2677e878b6f79afbdd7129039c49af93762cd4be6105df36f44d6cb3ceba59401edeeb1a25b5f4bce7c334ff336669ee6e5d3b4be05380217dffa11b4f8995741276762d131efbf7add905f5e36c5026fc82f3b7fce8cf982d0fcea0bc2e255342f934c1a343f5fb27879e4c2f4d169b83e044ea3f5f343bcbbee63bc097d7b1fe37ba78ff1467f8c3707882e1dea0af80c7106a60a0ca506e24d48531fcd1763d6b868f1450f25d19eaf673399c39eb11a2ea7c1ba91d1657ffe01ec6fdf8c2fc6acb1dffab0d7d89ff94ec0f1ae8666fff640d1a1acb267a451ce58b3ebd12385862209d7bcd12c8d23f8cb7c6c61d674b13e1162cd7c992f00b1667e2bdebc88ae17610032620820841a5700e2080000218eb0faf930e208313fff05f87d1c41f593f5e10cd687370a60a952a8534cdd2b189c378debb4c963e5a852a8d38e59c1e0bc695ca74d9e2a85f27d8a59c160556a6ed4c97e726b9937c9bcd771329ff16b180c22c3ba568675edae1f8d314619ab89939026d040cf772bdadf356f4c20a2c35751d574d13701081de250459f56f0a78b7e8f107afe09a886ef0efc777bed6d6c1abed65a6b3196f74e6bbd564a6975b73142bc7d5ad0daadef9a2e196bb5b14fe41ce5740a5a24728f151d3fde1ca71425294ea42cb151d82653904c319a4234e58729435aa4009142839416a4fc44c91245294a932849a2144519220a91294253628802640f60c72428597636e59389655ddb62cf38dcd91563ad59ac7f972bb4d9d6beac8f7ab78fed6fba82271318ea90c5fa77b96a7d54f7b260b8b3ebd7a94210ce344d7a05504f149d24c55212942892a0fc908199f955ccafb8cf9a7c0fcaf63e86499214463bc43f284afa4111d46ba7fca697fcc27d210ec65ab358ffa16b735ceba4354f7b5ef6f27b5fb8b33d0d63ad43d6f64c9e67fad0667b604b7f06c3d64b7ed9a6fc1a18863b5bfb7067e78f7b676bde176a2f7bdee74cfd9d80b3bdd770703c2f6719999e2849509224411192240511ce4eeb677ef5d1538ffa162c589b7bd66fee57aecdbd0a0c6d36f728166088b7f72d30c47a7b2f03863a060c592b30fced3d0ce8726def4f78bbf8a2d7e0c8ee35b7376b38f71a0c7136c75dd1dd8738383b38ada95990a58c52cee94e69add6c6183f8cb1a7147923471b6e0b6df429a53b93c772cd54bc1140d43e9b3c964b002c93d75de7b0099ce440d774691fa38cedd3be72b33651639af6f70bebd0bedf79f5862ab4bdfcfcf46b90d3f0c02ae4a612552142d7d63ec4b90aa944558878f342eedbdfc0186568f72bfe9c5659877c24114688a8316d7a95eaeeeeeeeef629c8f920e9b82b681d73eed4671c00a49dfad6845cd923aa0253a98ffa43df0185e89a1f7a0ebbc5a2850b49f3a1ff7461c99918db66cbf05fdc30e026474a4ddfc669bc009dc841307a8d1b4d06c41bd701a60143ac5d80a16e01862c1660f82d30747d9fffe74ee446f3c68f74106f9ce8b3db9788374be24dcccff727e28dfcd9fa8cbb125af2ca56dd472edd633ebafdc8a5c77cbefd28e69bdb8fe64d8cae984f6e5f12694477271101311220d41b692a402600f53122e07aadcf993177e3d6b77a99d5cb3c0ccc6ab5027730d67a1ae1ff1ce6f324d3357ff5391399cf0a3dd130afbdccd7f3446fdff324bfccd7f3847b99afe749f7325fcf13ef65be9e27daf4325fcf131df3a11fedd5e3bd5a3deb8bf956e04ca5befaa7428f62cf3f7da1ff60cfd75f18b7ecf9a6ef08a906c5c23a0badd05168816c2a4ff0219f2903222a387231350a626094e6bc3dde3e675279a3dc1473611c41be86ad9c6aadd6d66a7d92d0b67e8e5b1ff2f9418795285789ad843e24414fa88a0e5347423b75b4e74f4c94e39e108d81e119c0c434d29e9fa97c2b390edc7ca2d07267fb12cbaefba2d754b9b97933a3c1c4c2199f23bd019cad81faf66bc679e1ad1dd913e77e04f310cf4c87db92d0bc59f28ab1d6e1b61463d6d4971ae89aae8af35006b2e75f9de7dd61b6039fcd8d4d4e96dccc9e69aed9faced81d9caf69df64cc1efdb9f387bdc67e367f3f3c481a56d6cce7bebc7d9c4eb6d26ecfc346277ff71e7d63fcf36d34cd00d9b46301c26ed3ec5910eb641668bf2823ca90228493be9637eee6fd658dc3200ebf6c9a9f06e29126427f364e237f7c9c290fc0a976f7fde4e781757e78e8400750d01b05d6d6fe933a9a471951869c3a9aea87c7ebc0c4027ca8ad7d1f65ccc7df1745986fbf17d1359ffb021063ac0945a0116be602fe3feaad7d34caf8349d6cb9fc619d7cb9fc5d9d8cb9fc599dac71f9ab3a79e3f2477572e6f2e73a99bbdce6b564d4396deefbae496fb8bbf192b82be1be7fdeeebea8b37d9887160679e8b6f7f3be7173bef1dabeed6b599087eebb5340c1377d16500c26d8d12747bb4b6d6a471893aa80277e2253299d7612885e73bbcb6d5b7ebdf094d1e9066eddeb7efd8cb9dcdd0fb55d1f775cd775ddcbb9ee75f3c6755dce9cd79500819f1d3b32c799bad7a6a1502fa9b5c69db65497ea2450a5e7799e1727f64edd0bff86c11b92e350af7a4bb02fcda9baabea24f03ac9d3e9743ac5893dfb39737bfba8ae463671a9ee95b7fd54f73ae17bc22ff786c18f9fe3be73e6868312104a43f2fd7bbfd7c6b38178de2a65e56ec4c1f7e30d7172e6eef7babffdd6759ce7dd17feed4d1d0fc6bff1e07b4d77eb2ed8dafebe0a3b6f5e775fb733b158a6ee7e72bfe4863fd4b6cfa62923f6b6ed75afee378c359eeeb7bfdfabc3bfe56dfbbbe17cef067257e3aee3e9f07f5df7b29abbd1c6497bddab9ee8d554db060323654ae3541df79aee5ebe7dee60b4f6b6cfde8ac55ae1fcd2526badf5a6ea5eda6f301df75dd7759b0672608dbc37309fb612b8cf276efb569d0d54f74271dbf6319bfcb2633aeeb34aaa542a952a4eec71dd6b7bee6ff7a76ee334eeef06de905f3ab046de1caa7bc90cc3dd0fff4d752a7c551d985b3cdbbe1a46d540879098a861e2f04176c7481e346333296405114a671034e8074475e8fb6743eb50ff16cfb61dbc61da41a8d7780d6c1ec525910048e0cf384b29e79cdef1709cd38e07b776e2ce2fb3f6e169dfcfd33b1b4e592c6c01ed438d76397fcedcf9bd727273da67f0be5095c39fe9bdb75d2b02a6f7de86c9b371d2203ed9dbf14869bb97bef89a30873f0998de7badb3e1e160fcf2be17f7f9b78e87d3b4eec5e1ad7bc1981ec04519b97ba9f696b3867d4ea0bb9c73376587afad34fae6758fbf0339b93318a200b678b68dc1100530b4dfa2fff24a411edf668ec18c488c4e958a545aafc0ba28ed50efa825596172edb592c44ad10ebf1dad10b129d628a5d40a106cadb5588b5680a4b669db0cca9eef3ee09ac091312609b177048e8c7156b4af08d971b683db705c1735ef86fcb2751159be8c1275859c729ea6983e1dcaaec2245661a2ca0e30754a258a2a46b18a91adfaaa1489f50ed154667ee29909adb44e61b4a70d68507dd0217e530099c286ad9a228618b7295a50eab2a9284199dbb6654e89891292b869d98b51861b91f5ba5b6b796cd0a61d93ae04f9b09264adb5c2645b12762cb8c303c40a91212b3f4cb044c3ac091e19b4b763d2ec0817cc5ca077686dc7a4d90f9f54625b66c7a42b441bef9874a50516c78462d24a6b091c97dda5fbcc740916947ae881120e4a33f050724169874c0936c58b4fc972efbd3d64a88192190ca98191ce1d0252e50a252e14810204932136a1af08071d8cacc0c20b4b046d2902452c071a8438f1030f6658ed5e263f602d47b35e8a13294ba6ac10444be932230a116db5639214235288743ff2bb21bfecbcabca3501fcdb36fe78e0f005da92cea843ebb39042872cf68c32e6bb5a7bfef46fd1edf80699dbf17bb6e89072eeeeee381b671fc1f4edd7ebb0af9a7602ceb695cea01cdf7ba0e85004ba83233f7e72bb3b10da1ffbfb05bf47082d7fd2b7df09f1899c4dd1e2ec8e477ec1f8ded79dd6beacd7faaa94d217adee2fb7f335b7fd7c64d0d26e33dcd927e0ecf95e61f039d2f4a58da65cadf545adb5ea5abfd65aa7d5bebebe3940a4f5d3b41caf991380c097fa99af454334fd6a6d05236c4e91e3bc89346b74638cb5fe5075fa90b5318b1dfec63036c6affa50dff6a76f0b5d5c4780ad412e7b747b026c13cc7b5f101830ce9aee8bd3a5bd3f475d49944edddddd3d0946052a2352595230402941ad4061926054a0322295250583ed2f514ab6bf44adb0fda57b0b77f7d8249f7cd032fd82a9c8d3e2e140290b777777a9c3d62de980b820b2943c43ad2d7777698566b421d1bc683d6027d67e333b4b77f779042fe1a06bc45eb9977e329ec47f5c29c4de90046396bb4b61eb0e2d0605dbbe1adaeeaba128c3061dae866260db1f05fbd58e39728194238c50e6684fe9b5d25a6badb656afb5da5a6fadb8565a2db5176b1bdd369f72ab45b1a258ece82866b3ccb2cc662a980a36bbf7de7befad350aa41b05129ecd34a40dc9dea25851cca68e2295f272777635ba1a43dc104ef990413e64502a282594124a05515914bbb72876ef8ddd1bbbf7de7bef8d9dfdac715aae3f15e6d51a14b4e7d6bd56bb12192232148b0dc56243d33573f75a75f7258d42a29028452151d40c3543215de923c84790905090905090f6d116a562d65a9a8a519b3a4a1d513015a39fca929ac160a9190c969a5129edb46e29cedab51fa5da17515cdcf4933b6fdccd325cb7a7c726493be6f81e1447d8a415d3c88e3f6371046d1eb1b2e3cb99ff902ed8f1659402022c1f6264312fac8a60b4c0e0a05af261b7e75fa71264f9b0e7db18d99e5f3de6853d7ffb7055b4e7d30d468bc3e0b0e74fd5923d9f520a86f3688828660483c16030d89e287c53f8e257e10b832fea5a17b2c53ef9b0a796e9174c459e160f87f9354fa1930f5aa65fd8f3ada9687a5a3c1ca6909021a298512c168bc56241434343434330d7c6fbab6b634ce7e32a2119d6b571063533e353ced81cb7dc2cf6920e880b224bc933c86dd62dd9f35debb820e4ae594a9e61b63461136806cd1fb1212214120a098584424221a190f6fccce25a9a17ad0727d28a3d5f93b10dc99eaf352f7bbe49eb61cf97d849cce88809129421a2a0a0a0a0a0201a6e66075d23f6ca3c8265100edaf3bdfbe135b2e7b72e68afec29837e482129648868168bc562b1988bae067d8e86863e053ffa82be78e153beb837ec9944de88646fb035c905bc463e143cd3718925e4aed40cc7b4112b4ccdc2140d17bfef6a7ce7e3403a4037c87d5d8daff3f121b0ab01763efe8283f14235345daa2110280820f89420445025345df377b81436b4d97587506cc88828b62713232e66cbc080d8f3a30c2ccaa841cb0f65607baeb6cc5188c40d3a054534282228f6031141e8237a054d850b5430a1c20a1550e890449a1ee4334667550ab57854d8d9fa00d11254c107888e750b15302d332d4a5a9a6849428b9196222d44b4f4a00588161f5a80acb558cbb204456a9bb625e18cb6bce52121ce02248b8f2c41596058a8c032058b6c082c4e604182e5065886c032044b0e5884b0046101bab274657645e94a932b4c5c49e2a39451ca2865945236c0e9113bc486a494b4ced8f38b66c460bdcb0607c9dd1be03bd57e264419f3e31703064b1593a109090dd831a188f9141f691608622910f181227ba240a9d86147215b3ed534f7242a7eec3016cd17a870e1c8c4440cb0232331ca6dcfbae79cb266e75af3e7f382ea753b09b683faa33018fdb86bd78a20046adcd20334fbceeccbda3766a5809db72ddf6cdbd58071a7336f69b7a45b7636624c87821ec2ce3ee794d1b3371f9c520329f80e2202fa02d85a0780ad7536a4fc606cad7b01ee6c0ae58e39d89973f729a5943272d92b62e3ae46fe76c6da94119760aae0f3f2a0d42dc6b8071dea1c1a870ef50eda489522759b05c9f8b578280c0683d10ddbee207509c650a5075c45c8ab22c3ad92025c8547a6e245a32cd6bcf7de7befddd9a243d6109ac5a212635501624876f7d94315211952508587172a59eebd57dba2a042354dd3905029722f34ac16d65eb060b060bdb5d652d11b2be749d6ac059964fc02ed83b53ad84ac24e8ce5b030904b59bcb536582761c74e11039e2c9ec57a1e689e1ce890751359ac77c916a8c0800a0db9c94b1a2b5933b7c701250dadfdcdd9460dd74a69ad945acf9f07d6c9bf7d3f40383adbe37c1c06c23adce7ef4747fcc2034787d3da3d7bfe712569dcc89af9538a209f0b4d6c82a466c978b420eb5124674e30090a6d76541291643c5ad831898dac4791ac4711b21e4424019ac980a0c88098ecd0654049c8808afcda2b78fccce0a2e51912afb526cd70a24d3bca762831c30e243b8c2894dbf25aabadb53e51a9cb76c456f859026b37f03011f70281ad0eb9febc804e1936a594524a7dfc0451bba3ec87856d886963289d81c3e562c19347480715700a8d316d47d90f8e1dc288059996843859c0603d1477ea44e3c1a6321d473695e910d251031d433bb4b134d02a3dc748dd67b536ce7be5ad5efd10f4e6425595b5bb21afe0f265a3405f6efc69aff181d9b484fbb7ab11020dc68ea9571f773542b8d8c5be5ff4eee5da74e20fbbc6156c6d1c643b7a90eda841b6e3876c07906cc78feca78bec47490ad90f92ece7099f187ec0e0e32346af21fbac40a3a49026e424422404c5564eaf284839c287105a829430a1485c157aa0a0861df010a40a167ec0184789ad87554dd79d52089faeb03cd0f0bd5796030a10b21c50c87228c1810e8ce41882c60b6a7847590e2a36124cd02c12244cd74e8e3e128d741059d33ed4390e03fd1390904112a21d8850d084ce4db2c2098cac48f283059d0b629c1f6750df506eb21c3dc87200d95020dd7e4fd87b35bb6dd64a4df35187883062833ae4848f131cf9330da842a600032bb63f363ac28d8c4c3a70e0e3e40418e1bfe859826707396cd8a10d0b28e8f384f728210395e5784196e3857d448ec594babdf73ed1457adb518623055d740f8ca3cbce11cacf04217488776cf14c2174fc2925cb6bbe50ced9e2f10acc25b294328b94e1f88194e170b244ca70203142ca70d4e0deab6d3f689ab6e5487db02690e1d0414a198e1bdca90c870d321c334c2bdc67b5d636d1d65a6badb53c456825f48e171dd35e8a782152a798a0436e97f25d825246ba29a51166fb3b18ca6c07b9168f7f9412d4be5b3dad075b3c61ddf1fd1d0c41d811c4d385a78c976299371db8a1fddc32fde4676b7560180c9643e7043b7e997e25d8f673d8cf661a407e9eb111a0e54f6a3cd0c79f337b48a0b982f3a03bea8f8e3de30829d47800097600851458fbfecc1145f09818e3415e3aa7cb45bfcff16ffcbff1476dcac8a05ba6f8935aa74910532e16791863bb796109368e32b60fc76b7e76fd6e9400b631483daba3e6fd94524ae9d1bfd984256d643e47c8717af9f102eb32d37cd0a5c99cd3de2e48ba502e5d80e8228476f9f102edb282e6f2d32547a8b964c15ca2e082c4e5888b11972138aee302840b112f8a2ebfab50dab8479d73ce399758b2c28769c5903d1fcf19591a841d93ac6861f76088f54bc8ec8be4b25cd0a81acc20ab7defbd77059aee2883ddb0024e2583f54855a15153bc93134e33b19990681e10abce0530dc171750f90bccb44d81d17ad0611e98ee119add61a65e31c3895e9143c6bd48617981a2f3c20466b1dee505c88ed951069bb2eb8e32d80f7668d3fae941323521430c94e8c82156c4d20ae6c7f9783ecb69ac6246881081cd9a04a133270e62b064461548684618b9578912f6fa40891158890eeebd4c62d05531c426e9a88286ada48a14ec50ef7ca98205249a0b11da6ab142ab88010c4534134e2c1d2d1db94b4f94d090f023aef59222cfd141e457b192b476293ea0d821b683902125308111b22058d8322409138e25302c91e15db3c10e5d1b518e9306d589a9a522ee4b33d0966ed04b35d82d599650b0f4737dd86b619c7c69b2c49014362cd1b9432cb124c9888617e0f02333bca4ddcb449469b18b1d93b618ed106eaca49af6fde830e1af9fefa78303d9daee15c3de7bafd74a6bcbf3c7aeaddda713773c6f6a76a4140c31e0d3751041f3cdedbd1a186493b1e39df3468401ecedfbba1abe2d385dd709578cad7d917e087bdb6cced6dee7becd7a2d1ebbebcf5dc190029bd66c4b43ce263c6ff09d9bc6721007c9af7d41805e278371d6d8ecb923c739b7106d19da5b5ad861856dc9610b0d546429c3d9a58b6bd4a953a7348c4d68ad2ea7bd2ea74f5b04773eae6952492977727e9dfb9c1f921d4dee4c769c344c21f387d2d2129422464644b205f9c3a76c226995d1dd6afef977b196376ee3389f92db32d7715eb7759e4973278dda50289f12a54fa814a74a6da9940a66b5c570ab558c0cc762c948dfe6e7826bd1c2a50b972e5cbc4b9082a04f09ce743e1e634729650bce458bce47dbd27168320d8d4f4943833df951827369bae22f00069f20b4fc5cbf561f2ae800204d0399b3a8a4ad9666316488460000808000c316400018140e088422390e4471aa16f714800c5f9c3458542c928a63813020c7911046611005310c4490210819a314426cec060541570f0ff2a1812171df05e8b8289f78556bbd110031ca4332e60f4d6a7dac286e8197e409884645137699b6287999713c8886ac9c3cabdecf334234cc02ed2a7e82f2c5bd9d33fd9cfb5c915116b5128c814b18a2991e4fc960895e9037b3cfed18190cdcabdc5b5696bc312fe73f1aa8f0461f5ce3930385ad230083b1642a0b0aedc59aee4c6939e6599d8120b9538725bad462415c18a2191574aff5c1b23873a6d08b3fd9e4486ff03389a5e5de81595e84ba05b270ee899c9c81665159f63b7b37541f3801862f02a983cccb3502a255bc215a0b5ee5883a934f02320b6a20a6094884bc417cd4afe3c8480bcbd75668428fd5ccce56a514cf7a66280a337ffd344fa813b8fa94c2862221396e1473dc4189060d51b5fab83e7907c9ecd13393e6fb38f876ddf19115cb3eb8366c882d96f2d678923b027b53c5563a2e95d3df2bf70286294055876595de937682d3d8fccfca58fe1b7541af8027374c3758c25abbfa1902478055a6ab435036f9cda2dd8d5cb171f24a937d10ac3d9895f8079bea5315fc898b6555e435a39e607e25addf284820ab20368c85fcdbd882fa0ec21caca347cd36259d2338ec5646245e823465f789078e54b22056f9d0d536d0e608664170d9fa560a61a0e1c49a32cd1fde38a1eb9bcc17983f826d7c04aec946cc3600faa0408a78570fa54b2adeee14fde4312cc20dd37905ca99b8913de006190eb4f7a64fa551dfc83ec74a75c9649121b62ffec49411be05273ca6a5e971c9e00fe89c7d2d2e6edba1c7a6fb2526f587e9379d8cddfd635bf794fc1134b2f5f3eafbc7a299acaff054bc540f1f174ceef1f5ceca310c8cc3f887f98b97cb7556dacc7a6213278a77ecfa407a4c835a82437f0a787f553c5af7e0c97e943f30110a8a94f0d7c74d5e724b2d00daf43c37b0bc81bd7d1e484d194ee9c624baafdcb214a9c28873822d1710572ee91a8dcbb3640d2bd3124589aa3662b7f056615470394580f5f2c9b2013b4e7c4a655d93582581a3317626fc372e432cd061d3ebcebb7474f3e014ee23b3d3523bb708205d93e6ea0029d45f714d4f57a548c173827a63ff052a2312f53ff491aad3ab9136cc616c6679b512349b42cf392f45763a4c2ca36116e052dd2a340d15738fbf91d8b824f215bf98f838608cfff9aba6f3f9eff8ade2b2731ee84b1adfd7a3c653ac3feac9c26dc16e5c8235c499db919b644f54fc1e2c9ef6a9dc90b25feb8db7d72440afef9f47d99a4641787c644f96bab83e7e68d494552ff41bea84024244a484b0b35cbe80a92768cd32056e7db82fb501081f3193c3e9b0897b52d15c814180479d7b224783a938bda0915966f352816305052565ddf03dcce32f60e5d944d6b2b5ddfc62b2faec95e6d11ea7531bb30af8d2de37ff99e4a6ae49e3b1099993417ba53e7829c7c5722c78c5c1f22919d99b25faba02e2ba88da4940ad905a2ff36919140998c94f3efc1692304cd92650589c3c20e474d60e1cb1047516c9058261a4037f9aac1ecd0d96189e68fe4b5253fffcea90ed6bc5a482fb30a4d040af1aed3bc5e1c8af25320433ea5199b100f3133f298f9b79f64a5f5d0f854069a165cebb1feb6d39005e7b9be3b4d6a81f427529ab97d360eebce7bbcf5713d0fffe96dbd4e7894d79e287e8ef54e5fc6ad0578bbd59c969039f3fff5e390e7e421ae09f17fb7935c53f4f3ada158a02b8f4abd066b524497ebe6a09f6581434fe592d096ed4a75d955985fbae5a524a195d099f8a72a28841ef1eb2950593003450f46541dfc6b2e0e675c70f9253e9c86e8771b94ca984cbdb9cb58731d63c778e5a6cee67330b82c2a3f74ed5a736c347f538ddd984b21ab984a5dd8e67827db0a34f6dd12e775da35d01e4de0533b3b9dbb13e95b48fd918eb56f5d518c64b108fc64df447d26515350525a099692d20ac542cb4c2f173d873821892bb8b4fec6e84d297da7617c804aff1d758218664656645d7a2293ab2df262e53b00601c9ac47f7daeddabdae33fca51651ab92c084f88117be643320edf204829b7aabc49066aeb73c7b803d3124944abf544cfb26509825e86049a871c037a289bb72fc53747fd912f1676207f30fb8cc8bad141f3b207e7f73a358fcab833636052d862646c35ab8c46c39efbefda33771c622cdbe84b2334d0c442e26330a688d888f42a4b958f2708445d61b2614115541702403be3374f90a961ef7c208f0a4e25072f73a06de7db0f9229676a0cd0a50878bae6408fab6e1ac90af40b2c6943b1050d1fb8b0d56da26f15fb71ccc22b415927509529b4b762d1077073e25348a40f08e025654cd34652363df426df3fdcf0038d9a282c69e61ebac1c8288c8b462dce91b8d0cdb1de273e084f8ed4e9853b4d0c6f1f8ea0e9d2a47ac6389fd45463ee4a92e2f25cccd313bfe49a10ed8c9738983eb344a5ead310a9f2cdc620ecb94f958a090f054dd4f4548416e3e4557d9d278d0553509cca2aaf1922a58fcfdc7bbace73e5f39369f266e821572834f111799b253dfecf8cdf4ce4b376583da47f32083911002051b0df02be67054e72909d67705f08ea333572a91df3dd01f1776c9ff6f68c74bcc52942c1497aedae9bb969bc42de7408bbe44ffc251acca0418096a9d4789f7f770548f0b8c22a2dabe29c351420d7bb856159d5e4312b47529208e54c5262cde21a6b7064ef87b4b15836e0b69569a4d477be460c1ea3dfd6fcd550ed20d1c687cd195933380acf04a3f901f59f0554fd5621bf3e3822b9b34b22ee07084d6c78aee9b473441c2cbd968770088cefd3c3512c7d583c02341b5fccdd251ce1f909c48623026eb7225b0b15c72070afb2b18733808eaadfbad49864609fe046b8cbee79a280114478ee0c091a800c7a9ae26681475fb18ba978e907c8c3a03722724636e34876b7e3948b76d1c818222751e21e48706ef54dd1337810d6dc7472fadd54328f9036fd01b7883d507994b0a8a81044b62651deecad3b809532516c208d99ec76c1fc2d954c873385ec204d00cc4f8de49bbc809e38008f606d76d3b84a8c1187c00057dd7dde62e821fbf0e83385d9c45ea0456fba5dcbd70325d8b404598190cc0b92b7351d46c0f72ca1b31ffcaa865cd3587022bbe4ab1d8b80b8199c9a6251687476daf705aec32cd864d4f1f16812d286123ca6231b78b9a3b86e3592c8110b21fb03c8afad778bf1df810a19db4551be262f0c158dcbf01a0fa3c1b2f677661b3780d2913c186672afc233008f19b716a279148c8224c79e5a2fde703427a0a39bfe6d1e59098c119c44ac341e77266cbbb8ad862efdfdceff6a296e18ea6a27aee4887dfbbc414c261b27fedecea0a25856d81b46b63da7bd0b9dae5e2fab6849414acddd416c143eb094c32490e11ab3ac05e2cec77ea600d687815ac2a2cabfd4d68fb18eed0c0027f8cdb04e3290b10f79953ae3d0a951c4b0a01d60f18751f03ce6a9f3a7c72ba1c793c326143fc35a67d6e0ae8ea183bef0ea37fa5fdf32f306af99a813b24313b7a7337ba6284f543cf2a9e546e1e8b534ade38ed80fd306f21ed530fba0ed7b20b18cf716217d060096b52264842a7c43111534b6de64644a5bf5da5b60e4a1941faefe116f6c24521d8944d95e205d87cba772f331fbed6bd3f48818580767f1de724bc2bf42c3eac2a36e79eb9c2c533440509804ff71aa33fe209aeaa5653a4503f51ad1d590eaf464ddaea62d28957ccce4fd70488df1bfaf8de89278683e8442ae33a1ee9dec29c589763c57113ac8f875a234918e4d672c361e461b3a5a753132ff645b05ebd6799ec72f8bbfe8facbeb7c0149a10d983bf92abf79f8e4048977c5418116385ac9f430d13cb0e755f9aa38fb52cfbcc0a351987c4bf0f3d27418301b9d55a608c519adf35303c5b54ba511cde8e6ef7a9df08e4e5a21a8f51e4ab3b459d5b215bee14f5dc0a6c75a7a8737b901c3727f2b90bdc754fb1e72ee4ce3dc53e7781bbe57efb899703a8acb52b55850db8d5aea6fdfdbaa7d045abf9065fa2dce3a0be862e70ed5ec86fb2a964e4ba6553de8b954412ac44ff55412431f0e19ab78d1c81075a5a2575a89a4b45e208dac293a85576bda706fd7478807abb691aa504868e02450e5b4d4de8cc0e74cfb7cef2aa4ef33dc68e670c12628a36d323ac6f60991ef59aa5c0cf29e4fdd2e80b85c7b2638918ed29d187076cb0151025d0fd0de28051848249580a2ffbe003525c52774d2001931d7272a500e860bd30ad941df8658e330ca1d5f39b36f38ace48a90dc0217da5b269a5003ef84904193df891b5dfc7853777d2cee164be4c71496f720a5bab49749355a8f4d125743d858c1467648e75d9c2f43dd556b227518e871f3578893e4d8aeeeaffeecc01ffc4b9cecc9f4d87cc770c3c2658d3652b1e12d29e94784baf104648a4f2bb4c1a12d14dc0800fa04f3879d512ea64f2934be77d80cf715107958bae01cb34215339e5850391cfaec9922eb47434abb547ab17407abd3b282554a47b88a386d49ccfa88b3979d90e4974fd827e32f557a92ebd34c779979e687e1da176c77c9513cab0f88e1d543401e82b092d9493b84833d94abcc2fce0f93f6ceb1ea9f8b39c5896424a6268f5d29464f3edc589cb6865743096420aad0d1042bc1a715edd699e3b159751db84545527aba80589f94a12392ca0be0c64d6efe2f1e40ae08c15ba81f5bdf25dae42b46f9bab8c322d8ec286a0747b22e0299703f57a88917ae2070c2de3d61f3089f0df0fc177918d908876d9548cbb0db5ae534b2a98b80e997cf0062e1d0907bd3d43915ea0125ce6c01ea04bec8ece57c3136255864761c0a45703ce10d51850a3d2bedaf475488e51ff2f04f464bf4a050bc4c9e8a04ba8ca3deec0cfa0e5863c714f30ed8da940aa56cbf9a096be5bc6c7e4a6e278ff3a78fa8bf14a815bf44e0fd70507cab38b13651223412f49b015c120685778dfbdc46e4112ebed9c92c94a368a7223c5b06706051960057a970455e75c06e820132c5272a4e17e455228da74c53dc2185ae9b97395921982ce40a8dc7df513330c877686bfdbc07d6fc45f1aa86e4f0c67351249d50663cc877017d8fdb7604b5a286d08c98b252545382fcd61ad7a712a53fb3d328689900b2f0d3c3a8c65c7ed0c703bf40a707ced1b169d7ba23ad9b374d01a47aa0671e1ccf1f3ea1325db5508ad2c30f2a3ca52a72b307d982938a61451fad4ca932e54b760b986882d736712961d0ca02b20328aa114c221e2d5072e9a58937b04322e7b7b092f1d6c277de7831727c6d5e0ed98639bdd7d600b18428d5bf46b6197988e5b41050f3191370563e7f7d189c2314083a3c91c1bf12f9485f4bdd49dacf87e6dd5ba265cbc7a4b12dfd89181b06cbfbba34dee7b6405e94a68105b11ed3d35546264b7932983b8b03f4f3e2cd6a22f9ed128c35fb083b59e184f39a1ea01ef8bcf0ad5c5a2aca682a5caa9396eb08e43b76f078f35c63ba5a5d050d8ea7a508e691403406b40cd13ffd6f4890128c4b81d5a8bf28310f812250ee812bfa078e6e6713dffc2cd212b8c5c7f01027c50eddd1b80aae767c6648bf1d4cd56d077514e0843e50dd3e03b11f5026a3c83bcfe092a3f1e2d9e17c6194bbdd56b773cd731c8fc29f42bf7ec95327616ea75aeff8e4cd3bd9db1b7b8d62fd1e087712be32333370490c782131ff6c385b66c97a32c11e7a795d47ab34830c851ce5a0e07e77ca512114912a40c36e1181432a3d4a29a2a7b3c4c7f21161a8ff0d3875ed684c090f27cf2aef1ca4f4836c99794ebf971106e728a7031e66c42a58d20f2086aa77db603386ee59b80f109ca64dcc69700d30794281ce196bceb2fc4a36cf07ca10b672893a5aad119ef5f5ba34231e02b1d384ee1e0f2bc4bcd07c1d020d9e077bf8289a63d91a4448396551a7753ec213a31d581d7a1f828320c57e9e4a8985da017c211c56465374a803015102a3ab54f6382c169c7032918daa4688ed065fbe7158e950f9307fa247a007b15c653cd7bd700092ff9b5408db5745bcca2ba444dc2ca144e0a8ba6ccf13f0cabbc50440a669a01c7ca6d4a4616a69b671bb2bb3c6e22a2969814c9b3bb935d2fad1482257f0fcfdace70d039a6d31964311d139f570bd5f6f083a39539007c8e4fa315d4739220e08e3c5a5912bf083468829a53d5c4758bc24b1c0c849b44812ef96a02df5047133ed66ec27fef63d06e6800bc4ba532f601b392486190668083be8d40b482c202e24fcaf4ca24c96af4646ae4caa1b765afb83e3fe8e0463ab709e7a2ed90e6bd0bc0af686b0e096c064e5caa2be405283ae0a70c722393b22b5b25873df0b9380bc8a04ca055d99b0c8c45490c790260dbff22198b020ff409547cc46bca219ca9b6d2cb57d6a39640e147a6489542cf000a7ddace8674fbd0a90804953d9bc15be90ab39a3f3b1bcb21906e39a7cea244429c2c73314e4b07103e041736e9d409737f22d9d1f9a1aad732ba298c181355f93c402b2592e17454b6495a8619341ed3d61715d973745ed8581cdf402804eae3d44dfd7cf299bdf7e1da3d2df409848deb60fcf482cd8d1534680d4ea3206ec546c2353b9a71d6bb647c806bfaf62e57542ded2934e1d97b8b75b03a9488fcb13a708e63ac2da63b72b8a9ae2027619a6d2b58ec4dbebbb7ddf8e75146557c0cc0bb41e49617e63a5b26a4debf55c6316ebc71e32d3a1fbdaf75a86dbddd6de7d5ba812b8ea9f0da3edf3cedc5956ffbeade757aaa9148a226374aa1ee01a81d967b8d55c88508d5276910ae8880a2d792e7d0fd63cdb028c2f8e2df18d93035e1ce6cc47482a6949f0a0cae9e510628c649b142df80b6398d964232d84c24123d02934465e0047108a7d5b127e1e4d20497c57d58d7192ccd7a49aaed2a5c9221aa3360f813b9c5d29ee2b0dc833c8c3d2e3edba4905cf4e518dc87595f15887f74211692448fe95cdd694910e59995f42f28117e66e58ebe83d1c69ae3eb5b4931115786dec9eadbc89f1d99a36f66394e911111b7f4252a117e9646341726d83d317efaacf2e2088b8779bd0188b85ff1ca1a7d96ce8621443b1ac69933ba3b914d054f9e91a56a5e2f8ab6043bb75db357a6e328035393163993c429a12deb37560fd3e29a8725c218e11638c8356b71a966a9bb5a590493f6db3daff5c3db167b332de352196dbbdea353a4ab462106dbc0e4228cdef195a86c79c66f0285c3feec4bb8e182fc22778e6ed0902321af45695b7c8118bfc3d751dcee6ddfc61467fe1a3ac1e6033f26af7400b7e605046055eda83158564faed1af4c5e9263432f13e9241198aa92dc0b0f311fbabd9aa90e68b7883fcfe0574905057ac84a1844b3191710f5a3d595d1196d79125c82c77fd99cc9bbca8fda5ab4e01982f3373934eb5b99287c1a88d4cddd80492b7a258e983ccc2158e1646993f2d95889f0f41b468b251c9a299a51866cb9f5f443818ec1ae5d801074751b35506536fa426bbf0dc1e1cb9b4a6619690d8e23848c50bf26b43869ca80fb3e0dedfbbf077c71e504a3c08bbaf9a4d98d504d6661a36567dd859aa04dbd60a89dad2b2d147f7f1f7915e5f02107092592692533e3850acbb56833e60115e8ec75182412798ec7a3eed3a6f1bd0776faac238df1bd507391486c08128b0a4db10e9a561a35b09f26f50fbee5340292bf290603b96c7feca591fc3245a86f40e1dae3a9d500c8c00611c01453cb41cd598c5a14284c6f2b4c2e0592595300c012b954a84d83707f4d41f1bf9127a480417b404c5a20f8906605bfd0d08dda97ac46cc02f35ef3512037c032b6e9f2c41239b1d534ce6c6db279a036373c528a02edc2d9be22603a69010cfd2593ed103bff1b692f8c8fef35b37957593f098c642c40c277c3a0a17501295e71e9eb49296ae21049732611c1bb249f8417b39123647af584f7dbc8a0592576c5d4e2bd48e3d3322ec62d71185312f8d8ed7972ffe75660ed218a001cf403a5cc5cd1d35a130acc163df5dcdd6966e6ce461dee2768c6573f76568e1b908137d7c245037c6c2b9da28d6ff968b7f2f05f55e28885006858de510cc1dc16787193bc97af081505ccffc20b12368d9207f8d347426d72687e52e7cfce591a42cb9d018a97aa1c253f1fdce45c889f9c58fa89704d6d7c54ae325f3fc94636fbfd96a4d3e09e7f3390275056ae37df822db0a8e515cfa77b3ab237db9c4fdcbbea91ef2f2dccd9a6961f54d390efc56cb79deceb2b93714a2ff366a22c0769540cd22d753f9db59cce0118c95d72f4e88c99624e0dd4e399289b69b83af483b922267251d0ac88c1250579c0b62b8d77c9fff70f535c4195c6a4c5c0878d699e7b45e829d3c709b125e92ef7d8ce9d7d772b944f879894a2d44b5fcde750470a94d807c8f5d23e276d50a029fcfe58bffeb1b5eb2283fdf3f1e5d9387070260eb85a4cda4cd509fcea5a4eacf207ea2e5675e045dd0ceedccdbe5c93de0f71d6f4839e7f0ffbec7e60843a54810106cbcdc8fccffdb8c6b8b51aaefdeb567112737effbec05a539589fbb6d5599b64bc00c807ca4eaf3fda3f679c9935d854d31ea5b203d3e681271c42eee55862fe5dc7eb07c6b24b6959ce7a8a38d7d32b3016ecd9d8f5b810a629c105790b658d7b36e9c597172f6c81469bc510a6b1d4647de32eb29873f152788c55973c8d7dbbb90f0fb101659365797c57b10caa99ba0d6dfcb0276fb022826bb93d0714489657b4ef010301be7bfb1f5b9f927770583fd2a73143563e5380aeb85141668f862bbf9573ed7eb999ec9834a093b695b54bd993b0f3176137b330b45768bc948a453f7a9be7bf49e4ccbbe1366e6ca041d68576ade00e6f4f73e1551df03ddfa84b48d96993a445da59752d2e6d1c03a306d836c5486f83e22c2c3a2baff2f696ce3492b94da77355097084d5a0328c63ba3aad7271e32e50b483c2fcac8b0a9761149c189b6d86b2367aae8779739c52cf178b1aa6d3d8d93a962ec361809f9ccfa2583ae9341333c88e85ddb2cee96944786be4a0f88a6f73df705611cbbdbbc48ee5e8244bb37367f742dffacf8c7aac74d4694055e98f8dbb69218dfdbaa42074ae5badb9819c108b4b4ee37ec49c4f3c564bf8fb9e02b60fe5d188ad3b8e753a1aa0f80d0731b06b2d62cf0dbd871333ed7273d2dfdd373b4ec19306ef0da4390267076bf74c6a8e8ffe172bfd0a43bb48def78141f60bd12f92cc384ceaff2e6f6b03c848ee90a918a1dfa3798c5e15016a22d281e5752067443c9cfa209ff68a4f093be1659963ba02fdc25d01ebb7f50b6287c1783a3145820e9c3e694adf7d5add6ee8b8902a42d51a0e249c52d6e7295c9cdadd52d9c1a79aa8b8730d12dc69bac29fcce74c46a20439351ce130997769bfda2b9b23a496c62c04d568e0d207323ac1adf40788808c8d27b7526267246430685f2b9c08bd8a3aa6834b9a1d64ff3c85a3af00af83749e6f165a188f04f009b56cabd2e684f7ed88dc0fb08a22b1961b8b36814de05050cc66556f2f63c90500e0a7f26187c76cb252f561a963664d1e6249c3ab9e591615deabfe812a818123d232e172071b1f7943c82c26128d47f9083ee235e85a7b8768d0e40e3b4fbc11c99df74c192dae042cb79b779660273111f8b305c38674d29aea2497fb9a228b22f4cb5550d4fec7faa4686b1d658123d16d499f1e31fd2d205c331998ffb7f4ee320d1394f3629b91c9febfac588eb6c9057a8ae4cce382e4b85ed03a5f66b3b22b916bf44b23f15acf1bce4f01c06470a0d99a0bae52277031cc21d27161a9a69aaed9fafd4a00a2ca258500c2e7b2812c7b9128333ab25b428079e1275ee5cd2301f4af370a4c9ddb64ec22d6462ea7777861f3d431a44955fac6b5bea65553bd0cde541a52138ae5602d96625dacc1ca53c259368ced6f68816ac3d18f073d63f98e78cac639b0faaeb4aa3a894d14cffe6bd243a239648279fc3fe22455d758ce97f58e9b038c5a33b270e101bceab73858ac33cc1c402220d5f48080fa7384dd537e483450d50585e395dba6eac69fbf05f87851040625195ec7eb03089cb4f2366c84157f09d456d3b80eef64d034d613555978c7f2a776bf6c9c00fa9c8bfa70192c79219449dfbb2601397aa6165253b1368a12c050ee38704a128bd5a83cb88e41273fc97a70b162b2432c5ff14e7e0379b6c582596096aab30707051e37dc32006a94b23720ad7f2ff9e075b501dab41af2f80b8b3cb84f69e07dc1ada75436996e8517da2f0ff48443d1b197477f3c58286ab0cf96678ddb554177e2613cd4ff91d44f2a256941b98f3439b6354a52213444d4c3652e0864e9f4a0680cd53265bf2ba7f49e4b109902ed937cf67a746de9e2fed665375e552bfebb61d3aec943f8ddd568e0c7833e2a658deb9d2041427c7f378d1d7a48923ab3f8dcc2716c12a75ed9c2ef2e40813b98e152d957d47cb7b2fa27cbab3113b79d855c19d46187e0cb0b3d431c8c7c35ba7e7ea9b549f9552e5edff554296cd0dd6053addf767d5c650234290e90b27ad52fc4cbd40f7de7552026e6d8e88bdd05ad17f1ddebde1d9b32a8d41204161f14c4ec9ff8f75783f49cc10e998ffffd125717a0bfbdba04c297cc82a1f3073eb8d541f56263fb59aad61b1b76fac5a85ce212df49e4002b5b1860fa7a5795cacb357423d3472cebd8db68b81b948649b55eeecc63d6eb2ccbdf19b80d1bd4d5254511ac1cdbd36f737483d90b2374752cb3a65511298ec86c498774a49de6da92a2b18a3c9fd7c767a6f542ac928f4f0b5216b3354fc3c11031958ec818efe7968e23e4e1772aeb6975d860a108310c67d1a61d9a735e7e28431c3dcef7ecb18307ac7409cd5d87d3222cc865a0952a0c479637998e984d9d680b6e7402ea8879d67a0400f1b5125209e88ab518c58a988ec6c27de75aea2657ddc9e34cf87595964421c018a9a43b25e469e0ca5c055ee31ea4546ee6f0c330b968baaa0c19cec806f5e6b550f16111577acf613f05eaeffb689a0fcd9324b86807cae028b27d350b26c3dc6f15d0f116b51197c0d8d41e4f13789be803f88b0cbfc639713feb82beb69f3fb1470b85f6e0b9899949a1f82e1652d54e646a684bcefa4710036e5bb942a41f5afa6dd51e17d1b62ab8dfa1cac4a033cfa3e3175b91fb5de1d4a674959e32258dfe6d293ffd76b6b43651f4c7e47a4c504c37c0c996c5b19faeb7118ca3adccacd8506cafc4580fec6c2fbbd16428504f49f862e99a9dff302402af4e528654e9cd9836672557de8ff35f31e9d267e52eeea1cce2b0700b72d79fcdbfb92b97547b083996b1682379d37c6375dea66583409614824cc96cbc0272f418cdc6919caf96fec02043cc7b27cb4510c9e7cb0842cc55612bb7982c81ffc524ddd1375e3212cff3e6dd96b4b3ea6cff2e4d9e88b4e8e5f14a757b9c00d18709046289ed5298d4bc594d8c40c1e3d6360133b39713d480e2a9068ba12feb636f3cbdf5ae169b3755452138bb91c6e2a437ee7950b96377beb370b3b26db94aa042145cab929af32b38f1b199fd6b1aa3ca262b42f58d8f4e83a61f18e2e997b1d3d91e85958a11b8ade7660ac4df1d36bac70911570c66eb513ec0022d281ee474acc6dd03ad86f9d1ec01350929e7c560853219428b33432ab6cd3a27dbc893d52117a0d1282c5cf9a8ea94a4dae7c0c8da065d21861ff854684993a6708e10f526813d4386f53c372c257bda68ed707db3dd8545fe62d9475452c75f20e671e32885cb592e750b9b035a278fe8c8e18d706caa202d0ddb886569b3ae9cea8604ddb51bdc5c55b2c5304b298ec9f30ab059d003fb50f031cc940893f7f42ceb711582b0b4b987f232a84cc42667e2849793038a16d45c5ee7a7aab82ea0a5754ad787857b7f26a87612fe60f835166689fe9a1863efb9c71be8c51b523c148a721e20080ebde803dd1406e72213a2e0a3a4fa4fdc29c9dfa3adc22a6fce7ad068e991ba796afe630c7ba5134267746c51424a56a0687436c2967b317f61fd1a684130b33412b44bb637439b30f8019b4b20608789b88ae38746ab287101cedc31682884c9a47a0fcd0cccfeb305a873622b69c097a538e21a87b8b58227ce7ac153c1e0f9c102f4eb05ccf1e2c5302a683a4109742146a490308c9a00e6475927ca361f3ea7da0d4a1df3e1dedad3c5fe6c096d5d496e6dc5b2a1f20a917af7fdb4612e74506ce3a7b76ea2b50c0b76c9adc724100be5291a5cfacde6aec111199805c46b8fd209f1232efcb45d7c0d8cfbc79f4d966a4f78c2fa0407a4366124e30a9f2edc5805211fabc004663231f640a5c562dabbb2bd8a783e01d3f1609756e83f0c0012564eb807caf2ca09b2730f30537034f8cd2b4d2772d61e1dfe70fd65a673177fde7c04320f59e869d5f995f070da43b36e2c1234ad5eac9b84ef66b2c3898a3b2eeaec799b3da049f9aa41441b8405ed44dc8f3f6459a037927403fae7d3125d058f31b44cf403f75789a27302e3b1e0b94f69002cd601948f987a20363200c63f299539200e7b98e2ae438003670173fc02d0aa521ff2d8b8e8f42ea0e65782a0d3ee28d6e96704cc21cd955d875a96bf7d0e080866c1390a4cbc6270729f66c30303b8ad8dabf6ad821efd625694e59a1d78b36d216b45ccf544e88e64d00438dba065a4a1242de0334a0bffd437387204f0c304f128e9142539ee492b8c3abce2145562d5dda398ae50ce9a2c34dc371fcf16ebce0d249083e26da912f1e9a20a0cbce2cece375cff9e46191d6c605ace7161082320c8d7dc66f00644834826e57fe9a08304ae9253683697681d37d8a2202aef3d16a2cac94517c0f6574ed168601e1c608af527fd9f52069babc759a9da6c3217b209d84b35b1c368a18fd71e67e5da12f616caa8aca74455fbafdd6a5707c6b9a79043553b43ab58e878561a8f053a9967ffd3080b803f1b130fcb3f6cbe7426b0ea4431d5e2296f060162209469e06c5f6a4b956286ac7595688e480c3a8d84602f85571bd142247b20294c9af89f8001cc62d86eb8ad8cdebbd35132c0ba694beb9dd260f10d1bdd0d1d7a2d6279e192b6fc0e4151da59f020a997512984068edea497aafd9ca5c87d64c311b1c7680c5560c27594b5044015f79cf5e3e87f981a55cbfdaa31ba45f306af593c466a10b5ff21d00cc3c140028e8f4a43871526072dbc8a959193d56f4baeb939cc1520f9d374c1c9f8dc0af850a1e7ba4dfe9bd9fe75fdd952ba4809d94768eccf078228b1db0e801130b81fa50ef74041496fb41e514d7ada9dc89b86672f354bae1923c621a5e2aa872b903eb2fa1bcd2d277fa8f727f62b8610e3c9689ef0928c00a680ef571930e5a74013d696ede0ba6c18796ab9abce8fd70ff5101276d3a6d804a16bde82412d800e3817589050c78463bc419e8e463a07f8ad780c80faac3d211f53d1c1b9b3281621e822b2bf1976323c1fb66ee594494907a33abf46d48127d4d8e015ca2bd0e5d048b413351e6fd9aa92bdd37a03c0e8dc890b180aa25dcbadd268717df54dc16ffabdf94f8fc44e1719166cac15c376d11a28e3b104b22c46d6f9df99305e7a2f851f99bd1ccbc25da63186bf102824ca410808f6b88488811b2e0ff0188f10db2889c3cbca78ad9cd060fe3b01ae07f62181954d92b0e2d175148949e7e1750b460f2cbe54d825fb5df7fd47814e6e2230e6c189f5f960f683658e7720c89f0fb002d779875c919d311360303c28b857d5660152b9c48133521429bcacf3b9d588bf424fffe22f07119f4951a8b30ae410f4d64d7097c6c0009f512046c2a00f9a56fc6ac7e1896722a4c9e8acd6502aa393d8cd0c58a684ca0bd6a29b1ae18e7cde0d3136716b39ef73be199e30519f0b120c1dd0fd718cf19ffda0699c5271ac898eab16ffec5316734ea47dd863564374d971feea0e3fbfa9f0e0f8850babdc72947e1723bcbca898efab7f3610a0d483977e21c4f651d26a7ddc0a53d3432d2155f4fd8e01f01ffb8afcfd27207fff23dc4e2c88b02842ec44463866397c316c07117d93f4734ac1097a5dfd187c5e7ab6dc7e409c7f5c6a1d9a5ebb1d36cce56e30785a813d85723835700be1b07b358f2d393f3bb46502c8915bcc5c9f7949b675b3b369e32d7dfbd76937092b489f2d477265d674fdb084ccab8c46b02a7d55936a9d9fd2c343c63f706474d95be03c404f0f684b4eac353a9b55db13eabee98d0d9f40990a054cb83b459bfd51661516d378b52a103549d23181525ffffea0ff7f8110e9643835c7bece9800c3195d183ad60034176e5dd65002ccfb11d8e50f07691db7ff2147fc068a7e5c9d043bd7595fbb94044a4add772070329eaa2f1a631ed176fa8083443b90cb4d01982be823414c5af49d009a04f785059f4e6985efd5ba7d66b9ec1814c19ac2e6fb5e33c0bd661806bfd55c05cdda63b80d9a3101294983bf9338ab9a5701cbf5f4848173bb84ec3056f706d3cc5caa1cffc6522a7bbdf3bcba7fbe857d16cdf81ec289950a76453885d5672cffaae0614e6a318775bef516926c87d47f3d5db41b75d5a20b3bc2d2230c36c4ada10c9b02907eb64e7625c22f9c7c695c69a1c6503412a9ff5a449b2d1f197e2c67b08cafcbd0f1c8fd38dbd2b22819ee31a14f164aa9862f840b66d6b8220e0f640d4f2d68646f33a243561287ea973ee901b02978e5c3796170eb06926c5ba5039d89986afb8d0b3288680bb590b0e5441d38eb265e2782e6baa200002d2cbb0aac866dbc74aaf6b30fa6c8b055fa5661f0c8117be9e8bab402175fbbdad86bb9ad5d533f45aa57f55ab74da48dc3510b6c7c6ed8f6b6347e1a4393a3c762211632f69de2d26db794a4e9730025769f5dc80c951b13d7d26db3051223ee4be2bb415b30b3892c655287e30b2060d2bd363967ff79044877f353d51666ecb0ec811de32e9d0aa856a8224680ba71d6c139cc0770687dd1d3dd652ab4298e287c12e987b90f00b93f19e91808aad4a57fd275fbd58a6da419518922273f89ba0dfbcc163fd38639f50841dc4d908dcb4609f0300b45ad37f840dc2deca72e1035054c50db80a755493ee89fe56b4b7b54a86f0cd009e8e4ed872a1f10e1f6cd2f8b314e4b69e7268881d8414d69c3c1f23f5f9b5bf78341324c65fc1ea861e3c7f28eabeb5e1c68baf836e0156c52861e8859ebb8051859804a9b27d6ac61dff0b90b669ac2eca6633ad37b0ada33e7cfad52e75faa316f965a547d88d9dda901373a0a8a271c639efb4eaa0ff483e6268daeda89c4509abde23965b3e06215c298f9b1f8f53c15240ba1abda86e8cbac47d3ae5af5323310d5d50adc256bf709cc6cec6a5443da26c313ce3091e89adc9953cd1084e2d293f35b12e249c6cf466b6473c3179cdd93e32c143c6bef3ded49c9c2799c4b020668044ed2f016f7eac47d4a81f8f5067f293592c18aa06bde21e01d3f239c24b68026ab4cff7dea2ea16afc47e558a81a140003ce968f1a6856e142e360d85655337b5f01a11e9c6c265f267de427415b5b5ce3c0b14d7b6e2e6833b933cf98df36f3e144c8997c7279312f149d296be83d0b426a3c77d4c1c053249351abf72e65600ab440dfc43327c153bc584922b140e94eb12b2c45d8ce13c3539082334909cc4f69902022ef27606806e0223d7b438ee9cceec1c4da1540984726bda6aa61528c03cd7d77c8117f5991d4de040f8c4d8cd453f5d96bf476bc5cea7c7cf6fbedfc020c7e8fe9d66707701c2e617c0002f9e49ed9050addf142388a9c1b629d7a266ae080323b631c0a3fd6da7e0c2c15bf777f398a483e32f9a433d51bc01c044360822265c4a83cb5f56d67a1866812ab72526d4375f3d9b21b44cbd5c1b25d44f14fe241519e0e29297cad341b00116511b28d33aabebf1cfe4ba7dfa18d82e06081e4c6102bf5531db68fa14296ca0a9898f53349e26e7259ccce7aa25b082da0e761def0dc4a33684738eb637d9866d9302bad03d0d3ce9f71032d54633626d1a5f86922266879d2923785160f8a27ae21da7a15170a06858b1e8da39f3a251efe087e080f8c9aa8eef452bc7a00635802a4e7708c01c6497e86092154596cfa60709585bcf4f1a9b0acdac6fbc2887e98b0d6017512152e9f237c63c800761ccf979d0fcb04071a0e6642dfc599044706694898d7c6828161fda298091bf510430138c48b9e5d16b4b7c6e5c73ca66558b06918775580bc46de217630bceb2274285a75c95048c8711d6edfc57ac25b4819c8634eb5bb4bbbe00b63b03f74b843ace64849dbb47b8d83c729c019c29af2b2a1f7bfaeecdccb0ea002ec924087c6c7a1046ef1efe03daf0cf16caf49f88f5abc19070f664ce381bfc410e7b644832945171dfd2f43ff46756de0099b696b1f798aa48877afde79fa9923fe1536373b5400a8ee7dbd9f5f40551e730d669b00ea7695bfef58725c102e96f67433e256ca40dadab34c117fd651c23007186810454e2d85993b19a1d4d671dc93db84e08cb07b6a025c3f7226b3447328a0a09da2bca4e56694780fe27ff09b782d3618f4015490994e14f32035dcfa8987c91bfdc931a5c31396db6bdcf1ded5f3eb717668ebdb8ead58c9f401d76fbc64f80dc67071963926e5b7162afa2e409db591ad102296328e19f5286a3ce824393fb106730fda9c15e01d1e915f383c4899b0af9ff8df978736954f6f165e7031c82ac6d8798aaf6e767f39ce7ab752f585891d17a81d7c0fbea925bddbf256509eaac2aa86e4ffb466b0d3124558acaa6bf71dde117f7c780096db5238038ff806def08ad89ebe65a7c2e2ef6a8dfc040e00a9782f3b96bea7ba346730517ed3b9eecbc32eb2e259a3ec2b37e41f792e37a3e7e7633438f0419d72d420e19568db75ae41e85eb281f367146953bb08d456722de60634dd68b2a16de5ad2e2e31739bd00da6e2946f1e3be5e97f7eb42cab4968097a87649cce7350ca09addcfb319e9dc08b4f1ef976fa6c07ff90ffa0229ad47ee349bbf4c560e2b4a1909fdef731ae04005f40f5fb87b67306030b6c2932dec312423f24837b8800da0706da33e4bebe048e8b03643c02f695221c80051e90d3a949c4e19acf608d189af53d76796999af2c931e541553ffdbf3b73021c1a56e407e3479fba55bad39a0a84cb89bd74bf0c2b6c1b58d002429bffe1a41c667a0cb10aa6ed685df00232a051798be9ae6c3b012e2a165968928db4e615ed9260b838d82e69d041fccb89b095d1b00a153a5b85532cfa6ba093877b32135d9cec9a31d6dc44f4431654a766bc887e8b974f9aa71b3cb402ae8cb8cab7c6542049332c55e0b78408435a9f2a5813ddcdc2b76cfb665df0a75ac0bf1f1cf494d55b8acb28dc7f0217e0c83a8638f77d2fa8f1ebf503cf49d4419364d194ea6e63be5aa1860f4cd6ef39dcfcbd7b01c7e2c3051c10097f49daef435222e9c1bccfc46bd11ac896ad0e60c435f9d61c904dca0ab6e478a86a96754457343bbdd530aeb0ea3afbcded94c4c7ab12454d7e113d434798f0f39bd0d78744fa2192fac7ab35363c83d088816149f672a21a608c37c3be18e870ae4d81e767f03f946df738b06e06e038d3b6df48ec84923ce6cf8d8b6bfb5636041c926ce33d2b9c88ecbbcb44c21f4ee0f5402d2bbb0b5e9464b3f46c2c216cedde7360fcedfe899a4a2968c6e7dffda2ec5c0f1e0e6012deea288d85beae37799369f26feb013438e3576538179fcb284a95b0d67153a3340e08d58134f66da1250ced50c5b3b8fae4119aab9a14643c6e0c6d535865d96fee1a8eb86e55cacc286d176a91dc2ffb9646418b815b477bac05a1401f2437e458a52b6d847df3dd905dc11b049ef90cbbbbf066834381252a13d98a6f1a1e5366bb8f2c099ec0bdb6da9a38d17d551d9994164cb1476e44c3c178e369a5f04cef72c1012c148d7fe6688819333f7ab50ff487d2f42ae8ab5d436de1bd3beebcc7de82a9fb60804bee524d4edfa23b1abad075052f04f1b5b2e9ed9a53dbefd2516eaff742bde76330ae935960a31edfd0edd9d4928e53095059e74ef4606b4521a22a9d1da0fb7b79e6407a0170ef151b97a26ef7e774a8d513fb2f2eee692c63b1be7d95640255291cd11893464da50f52227e82fcfb9a41acc84d8eec2fa37f28ff9c7ffb1f50f0154c192b46957cb90e9766bf9e2923882194fd32199702e091f1fc358a2aeec7893624428399354cdb4d2aad076c53a0585d8906c850d10ce05412b80a62e38be7cfb08806d77550b4ae84ee6c215e9b9ce5c385c52d35029a70a0469f048c7ae779867e66d5e3afe86c8e61ed6ad3d10d921be5f57710a9cfd8083ed8f6055383aa724d1d3a4dee999b1511316903449bafacc5f1d5d7c38c7491ee38810086de0bdc3497f49e43b3820920538cf0eeb30e5327c74ca82f99b28283f4906cdc2e66039030f7114de017da7b02bf26c66fe19717272adf2332912df053e302bec069a44e3cd7a038b1ddea36ef4149615fddbae027e4a6e54541f6b6573662949d8f78dda3679d101cc1fd0ce5f3af6e59724b8ac6dd55773153cfa34651f1dd1e8dc08387131bf6a4319e280ded41f3340898c43c288869e422117e97e15bd19d242470218349d4424292d25cf6a2bbca59402d48d20a01c60dc3e280e0dd1de03fab60f6c49bde800110d0c456f1a586d791f316a343c753040346e2428c338ab50342dd94c5f7eeed6f56620a85f2d3f120fe9a87dd79ca440c719cacf9ea42b99e87baa2bb0d1ffc83328e6e66785710c581f8f823a95ee01cd45ec7ac00b1215cc1ae033ccf3fc79f639f61c5bcf66c239c6afd200e7045f7bf4ffdf1c0cf20dff3ded501476f109adb8cd2807f0445498b8647ca53cade7235dcb0d2d706dc7931ea8fff4c122372280c4689c72b4d2ef8a1cb730acdf415a249248bba87a66c3ad366b9b7fb0ad6eb2e1411e58a48487093c2a21485d13faa3ed94977752d906bc10c653b83cb967de8e9b24a2e76ad083cc8ad9f9c3a4f828dd0485af599bb6075a83980fbe1624f150703e680ad2d89617011019a691f863a55fe601534ff4e193389893d27a18d985733ff4cc8cddf8e9e95a7dcdf724eff1ed44710ed9fb1a25ff6c1a0cdff8e65f6cee9f51ea9fcc811ca11ef9c49b235165800d6e9c6736569f0b9e6ecc35ebdc915451508bd8856aa5a4b7bbb3d8a46951dc9a885b1f63c889c6ec9e5b6a693210ec17821b6945941d72c2e14aeba06b6658fa16bb1ea155c229379120b8e57134645bc0aa5a9743caed49b52eca195707b0ddda802b8d89cdd37e452a14d65ab15c312c05366063e5fa85dc0f8039855e6f0d1a1910beb86a7681aa76c3d51dd77064e332faea13568264902cae4fef715d10c3353e53a6956826335fdac7111557a136a9bf04f00595dc0ed74723378022e436717eb0ab297571153f0a6d5da131de702d4ad3a38625c55143aba5135acd08df0e23e5d781bd34c748899ac359c813bf58791ea5395564a7126c0612e7a4e7d20727f52b1f0bb0af6eb7e57cb84a6c10de5bdab086ed30edf665af5e31ceb1c43ab45445ebfd4806d115eae641db8c00acb7c45063a4d86c8e843891b4ac82c0995d6f3975a89a235e6faf26444dbaba658c07b6ddc21686fe2be18a86641b6ac5645dc83cf8359313f0d866595088a9c164d213b69918699889e8645ce6940aa3dc73c67d31b54bb31f9ac0b617544f28b5cbc772aea473f8bd217f4f0e42538ce98a4417e2c0cd07293e021375ea5a8a5e0162c6bc0a8b09021d49d12c3e2a6c2db58889a3cdcbaab3c3341c09e4c561b7b369b1103cdb0b5096d0ffdda0028d9429518fe13d93c0ac95c941829d3b9330b8c70ec0ee4c53a443f21db1a2ae642976ef89336f305be0b91e07fbd4f9a7338ba2083b62a40f2a024754fdac4e3204e865b6b74e93d1b9dcded974f8ebff74f1524909b32044919689e0d05729e07771e0d1686011cc4fd209c7228025de56c0c62a41886361434efb62a85625d1772d392257fb393ea4c8485aac66735cd6b5c35b9486976d461a3a12a1df21233f380b9539ec5f988e28bb781867324b3db55d33cda28e21ada16196a447e42b55ea88c8718d2ef37dc13aa5423eaf3fb116390200f630582e65b3f328d7f60e3e2fb6b4bdef409db70c5720f9c1e9bc73d6f0fa535cf6e78ced2bf8a4a16635f2b373cee11ca5a836fefc851b1fafdf3aa607089a36699ea6d174ea8354654b5db5e01566bc27a8d150089eb94134973d5a9657605f297cb24502e943325d468fd7418f738568230c16ef5883fdaaf28913f11965af91ddd109660c93e411a5e3d19aa3c9f3504eb33a2594b4fa1c04e01c665060ee8ba0462a1c8d0ea1aa179f5e423ab583437db0ea7473f9b1cb65150df0a9c7a30c72c4cc5f4dac2066154141dd1ca742fcc98e850381e7b11fd4e8beac44c4af5ea952c5a84903c309cb275dd052e8def6c5ebca569ce8ecd1c2f04183199514461db33ffa5342d861e39c621077fff8f56a1d9baa74e7ca66090d0234988c40b03b6f990679f257efca6c228b7f6984762bc3eb4db8c35dbe77a9a512484909b6b3ed26cf0a038565162ac80fe4d5a6ec3343c9dce15f6bfff18f94d75ded88492619de154ed04dcb447029968343ab9130dad973c809ae8eba6b4276ffd7da9ddd71caa732dbf572745c8f5e8ccc556677c1a9132e1c8a8de47a11a39911f18d975689beee7af859bd611fe7ac67b9dbcd7fa7f8357f1b9177d55d580637ddb78dd2dd2d9107799fab72d92d0167d92108a90d2e280597bc593ff7ab5e7dc0bb6906cef799fb43186916c4c39f2b9a8d915bbdb1e4c9f1de4ab993c011214702c36e403e9256991882b30de1debae81e0f85cad9afed69e2917f5cc480ccc8c702dcff71b65c72cbf1fa7b6c658ae30a9c797d1d93104c021c74034a5c4e775c409619a70d923fc291781847c7637e8655fdd0f6c01a29579674c1f423f433948d470159db15dcfcdd9d77a9ca99075a910424cc3e803ff92f11b75205cf55204afff1481b9d0732f048625500bfadadadad2484882412d9dd9b5b06d607fe062907dcb7c0d5ff6fc1c285e557de44e359706139951e3bfdebba5c6e179e7afc2cd3defcb95cc09ebaf0d15f6cc0f48bf67c673f7d480f7de5bd97ed2edb47dbdd5dbb90fdf55ea497d62d2e7c7dfb341601c06b2f7cee1e0413801709e0f5630c3d1bfef4e9c7cc06ff4a2f8abde5e2537fafaf5f00da430500fac074fa050044ec2d66457fed62fb8b420f41d9b5162dc6986e17ea7681833ba3945ed2dd7795edd9e7317bfcab86d4c68b7b6fc1df5a3b73e91cf4b98fdf0383c7c5931797f9de68e6e3d3e7de39fad105ce3e7d9bd5e0fc65c8176efb16b8ec398ee3388eebf16ee6b577f76441b3d05e6ed1de69457b6fd25eb7bd995dd224eda1b637733f66352c1ea0c778a8e99df6b4b816fb705fa31fe916fb190f52261611690fd585b4d73d487b9fb577c234fd8c430090ece998c1bf6558f6b1889c4ff69c49b2fa989e53a64403c08d5f6634d8de4b3d7af4e8d1a3eb98d9943ecc0e503fdeabb7adba8b2c82c0b80607353890334aa7de94d1dddddd8ad7adac93ce2a53abecd163bcf9eeeeee2ee7d7b72fa54c94071041b63129d535622718ea996d08338780855defc404c6887e3a593b14e7c2981975aee10617c6801b2ee03eb969411125569004143e3865a0093490c2880d5c7105215636fc9050edefe6c90d93253a4d7c373844be9b20ae2af1082947f0d45aaf75c4ce6a47ebb2ae2372b6bf348281e0c217c60013db8f48c2bbdf11428ca8f21941e533a2e73382e733a2079f114df245a56fbc59d00637f88868c147840a3e229ef8885822898f8822be20553e22847c42aa7c427e3e213ed32116b128e51418e20d631e13f549bb8c6a8822cb8f584a27df18a3bc341f39dbd30177761cc118f3b39c3e9f868f7135c020c7af2fe7b41e4f4a037a5727951f2d9de10b4b43e573f085bde1071040c017f2237c61471b5b17c69675e1307359968543c4b02c01505ad775c10b5fd8bff0c5b58f71262f0e16f38cc67e9625e0663562bcd6e36de18c06beaebdaec7dad301772efd3cf6d57747bc62bba5550d37cfb5c2f0c5f3944ef64e5b7e427836fc840c60c34f08911ee2f621d8fe8c526cf9937322d36b509223e744aef62113c6071803a6d6c0ab61fedaf3d143bc86f8c8d93ae0cea66f712e313486bea47f618c161b36d4af1a6effeb31d489f810ce71e00b79b12bb697e10bf92d07a8707b571f80be7dab73547d4b903dccb40fb5c287811bd58701213b398851092d5860e1d2c2b272329548a36c8530914c61390e0230d4a712246c6ea67023647bf7c609374910854079d3320c5fd6b595fefcfcfcfccc2969077ee083114bf0e02709203d4a66700b44a1048921f09cc00a235041810e8a90430526e8dce0074670a012c50e128a4411820d50218815be2057f88250f105d9898f4f9a15b9baf1966decb0d3280e220636e0032470a4021f6e20cf3bf2c0d7c003237e00bd208b982202801791046badb53f28a2075b868c81a8051d4d3b71711fc01e09ab451118b858280288ca820a9a8b14dcf264c4a29ac14b10649c542cc04e1f84d3c98866522991551c50614003553481085348b17202894f0317f821020f64a06404a40e605f066c7a82f01131c567048e11293022a70bc23c42748f0eb98630f11fe44c87443d57f085bfffdd91110a94285e8eb1caf6f2ced4ce935235e0c2994f822c09a28220500429411022418e0812240810417e18e20a43446188294330e1de1b2567600833808204153dc826c8417e4176c137c4174312a2fcf861440a272461c31022a0fc20c5056ea44c285cfa10aacdc286df1038dbebec4e741cf791ab19554e28e471e2247b28274e7ce8a457673b909c8d83c4074488bb575be5f2993c4e6aadd7fa84582284ceb42eeb6262bb1038f313e2265ff8c242fcd8fed40a2f07e1733186310bbef0bf41f06c0f024a104d367c197c4124c1be208a7c41102182cf59ebbdb0c7b0c7da96412111462a994e2b2c36392d98a6fd7061816d9b0d48b51de44efc4291e23bce84df23ee3a1e056a89e3c41f97c151c57fb810bfb196b84c54a99aa89ca8a0a8a2a8a46cf871156f5c26ae5691c82a32b18a47563a51c8c42b25ff54892a1c1e531fca3b3935c970898b7f39b9e491e34818bf7c47c23846a15028548ed7397572f7e9dfca9983f3a665d5fad17c321fe9837dae9caa1ba952a9545562ebce1c9d9c9c9c1cccc6e6878d8d8d8d0d0b2d542bd5e9a4b392d1902b2b39d6ca3bb96ac1c1b3524929a59428140a85258f85e7c5d32e59ad56b362ebce2b0a0f0f0f8fccc9d1b1726e8ecda93933a7c5ab569247c5c222a3b4b4481e162ca48ff46171c48e2a954aa55aa97068ef5d6c49d5d5324c62bb5ab25aad562bd58d4aa552a9248fe49151248fe4913c9247f2fcca87e270aa958bcb0d0b1638382c58a85ab4c0c16961c48eabd56ab55aa9542a95ca5f5e5fd9ba5ab25aad562b95ea46a552a954dc6afab0c0c292162d5aac386eeecc1d2efaf88e77bd7c5ad9e8533189ad7bfdf8f8f8f8ac5673099e2b6baeee5cd9b9aa73a5b19406fc531ac8ff71fe701ce7d34246a3051befa84d0baaedee7ace39dd7d7c7c628c35e25c1487e2509c9fd367facc1f3c7dace973a78f9d3e75fa30e15d0b2e602db40029c50100e64246c3059ae39de7bce0c20b2f488f2fbcefc49db81377761cc77aef7af9e43897a63b3dcc034cc18463d868e4e2f2f2b23d8ab3e3519cedafbd60bee33190427912458a4f152a54d31defa6c8b16ef101523084d03908259dd0cb3146415a3c304edfa1667c073504182e4edfa11c670637481acad1db8ce6b2fe7e888bdb331b1b28f4f8de68add72a299d735229abfba68f2d16e26a7ec8717b17f49656df331ba0af6f5f86876c6c1ac21730ab2137a8e93905e368d07d1f7334240d6d2b37e2449c07daf295c0f005dfeb577ccc57bec22fe76371ce87ee982bf1245a061394849112e6863b852b99a29e20de9bf3e91dfa602da554f4f25e983643987661f7d21e6acf1d5e34a73ce5bccee8990d3a871da4cc4b18f93763edfda778907bf0606363633343103fc39c120b10b58c5356e0290fb2ffbc11e7aef00b94d663ecd86412b11bf5c59a640f755334c839aca7db436d0ce531f7cab0972f63060d1877ff7a9208437c7ba3155f86b4faa573f1825d406a99506b6f90ebc7fd223f45831c51303cc6b2d7e3c7d74c1394742597f624168e39f637cdb3b42bc9d7bec4b05b1a90135e68c10b622883843136ab2f2685056556e7140e324cd520e7d89e827ecb72e84111c4813efbec6106d2534a84c1fede64b4fa86c6e5a0c38d1c74f0980aa98d584a0a6a6dca06b9be131d3cc68ba91ae4b83fb3dbcbe7c16334aabd9c1261d8b48dff7560c9f620cfd78128e296521e669bd61e663491ee1df28a2b76b45ef6decc09d31eeab7773a491b73bc6c708c31d218638cd19bc08eab9a13e44963daa9ffde9c4fa7ffaea37edffacbda88c23afc730aa554d250b3811c21131bac4329a534460dc7a961ead41d06948f6b4e902540778efad75f3f01ac51dec988d50cc91e6a7320cbf7505b6a1cb52ccb82b14f39e89dc5382bb77c14062de622f7f2bb5a2eeeca5d0feb471ad7a617e7e2a587b9a59412ee642a8831c65aafcb06ce26a1354e5f599bbd1793789106d2954849a59452ba1229c35356c84f593127dcd1e26153e1675cd4719895fc12e0e741ca601defcdb2260659fee5a08f2b893bd72f2970c45c4a297beacc6cc0dbea89c1e85cfccbc9258f3690b7d667f64c8f9173ce89e7cb7c9caa41ce519f6efa3c2058b2b163d763ac3ef980291964efe2e033c8f05415395545c634aaebfe4fa79a25725c79472395db61da2315493faee8d3871e83f250dd9f6aa46235957b733e9dfebb9c1a1964eab9941e26d571725a86a4734a8461be0f5bf50eb9e9e424ce5644248a928a488ae64f1589443fa58844a2d933a58844588465d9f4a93294370d1379c8419e7d73cd67e69439654eb141d87236edd1dfa2cdb2a774a3bfc999d96a5d7f65dbb66d97b6b3eb314c5f52cb1ee30dcbb0cbe3813db6610fe23207250c96fd15354d7b3abc08689a678f2989305c1a5eed492442214b73ce99867c49f695af5cc9cfcd79794befe14328e459502894f3b6e55028bfa6859e876f1e73f3d87ed3547b71fb9128bfbdac0b8a34945750cac49f318a1df5ddb02b7125ae6473db03029d1d800d3f107c80ca8e19d8f0f340cfc43cf92dfe8fbff41a17b99e92b6f4477bda531ebee3a569f43e7d1ebeb567410090cb9a537e2b954a3fa59440a5d29492b52fe91d7297bc0aec1cd686ada4330b0280bc155125ed45c0471669ef14d2de83b4d745ad7dd61e0aeb0cdb587b97a547bbbe85a2789fa8a65a4db59a6aadb3674aa9e2547e6aad75f64c29f3a7d66a7a6ffad45a4d9c8e99fa9e24d9693116a67769313d8be9574c7fe24a5ac7cc26dd7cdaf6f4db3ebeec941156720bc7034fa6b5d6034c3c80e301d526c0861f1128567b93f3f2c6f6b1c4d6ca7a9fdb2137d65ea4e1037216da874d9cc9125f458cdfda39e5ef901863cc554f07862f8961357258ed45ebad9da3cfb4a765cf5e7477963d89831226d36c7e9b33e8471c741890d62c51e8d23c661d61d9af12397db09452571f3da2fc28778df646f8def4815a4a29afecb6bc4c2f4ba3967779cd85bbdfc24109c3c29d3828614c1c9430579244a72d4ffe5bbe778edaf2d23a6666a435a7cc29730ac92d12224d8830e1b54e4f7ea5c08e4fe466bfb0e1a7841428bb001b7e4a14919c977df4a8c08e7fe55f8f021beec9e5d890f3bcc90eb929f4e6e6e145ad3d5fdd87d9e8ef5f98a58ce845ef21fbf647dac3dbdf6dfbfc220e3a4cdef4d5960b659ac7dc16d33ab06db1f59ed5f07cc8f996a5e94b9d23befdf816fe94ba321959f789be023d0ef987744eefc524aebdf8d74f8f81fb3ef41596d1d8cbeff5db2474affdebf225dbdb1bafb7de15fdd522edf9b5f7ea6bfbedfdd6b8ddee66758bf6f7fa75ddc7382cab31fa8847d1d3311ae52771d361b2be7e5dc9cd329f6ddb34774fe2dee4724f727d895f97a63ddf57e8954403dcafdaf3d5aeff6edf5d74b2717dfc1837edd2aec49354abeb8bb8fca7d24fcef4212ecb2fc34120ec02690fbab40b64fd05d22df7e3d7583fbb5ecbb62d93742eed45d7b22cfb98d1642b6cfe75ef75af7bef65ab865490b2012a43a06cd486df9023fbdb40cfce5562c88e61c32f099efd2591b3bb0dbf2480ec2f89d5c63bbb1b6f73d4131f47faeeeeae29f795521a9f3e96d1d089edbf70db53cefec505f387d59e8f2f9cefee8f3ffa632cdf3536954c2e5f2ab17c29ba3ccb7b318794840a15972f59c49ca81393c49cc822e6c4d8e330f38b70c30f9767799cb242f6628ffc1c4cbff2399cbe4401243758bef41470d12da05f79d3af7c65d12d20dd22350e2b6ffa1b2ba6bff1a72fe9aa6fbceb1c48ec91f2a537954a6fba717ad39b740fd39f34acda6f669045efd313a990ea8f7e7eec09fd0cbd77679523497a294b2fa5df78cc248d40322d24cd8377b0090fce07ef86c0184070a48ce9e7ceec67effd4efdd4eec6bb16ce550e73c3571d57f0c5fcc82455851c994899d3b3fcd4892b1843fec4b0fb2cae04ec661ce2ddfccd5d388cff8933b97bd55d546288ffb4fe72726fda03ed8cf340a210b6adc75caa0a77bff1189f1f63fd1b31ea1b52decdaf035436b7e1d701271b472cca03767099d3cf8f8f7d9c24e740bcf321a91ee4d80363409d99f3247bb1871a70df22648c6616160352c118384303c49e08c3fc1e6cac42c5bbf9a0c7725c055fcc07712ea4477ed69ebb0d7c315f5a58a522279e9cc3170ea54ce94d0f4d1ce630d16162aa8aec411f4cdf81087199d2cfffd329e71873e4bd399ffebb12e7421c66623b07c8c67674204fc83cf098dfc3c663a4ae01b7ff7cb8551ed3e2f36b4c5991a2422ebde95b6cdcf76e78371f8777f365624e5c499899938242ae438a780c8edb85a86e3c8688c7e0780c131eb36b0f35f73dd777e45dcc9c3769ae1a10e4ae83716fce27172ee33a0ea47a0e1372cde45fdce4a4479f1adc1ee64939b5aa5b6c686f02bbfeaed8fcd40d9781334c1e5f85fcc50818e22d04da41ca6c2fef2867d1e914fa0775ba93329bbe5206ba4075584e5aad65b1abeef003d84373fdc5328c81bddcdefb99b74d44b111294b95309bd5e0636b0f359c698c591ad6ee190de6e19d7c1d3b7827add79e4f1ccc2d1d0cf126eff61932bcf3d40ff2ea0463cc7f947c8b01576b065c091363768190bd6ebe143855458d0a32b6ddb19415a85414b297f7e8e4a26bc0971619f60c56e99440b0ed72690c7b9db2227bd87671812f2e6e8cbbde5d571ec9c7a690b1c6a49059a01000c932197a9c7139b2b72e976387b5b21d7687740e99d164af591b35ce6a9f7156cce1ac9721758bf679e30de3bfaeedba1e635c812d2feb5d97e43c9acb5e97dd613786d95802223b66938672f62b87c14b1f21678fffaa976ec141f4a3bf21fa91ee81e4fa1e227d89b48f19362464fc30fb0b5fe0eb319959187eac71d65b4eb3f62dcb7239ec679cafa4b5d7d23410a6698f59cf68346b1f8bd65ad65a6fedb059b7d8879c1775b6a703dbf8314ec3b0d7348ccb817d86e9ed350dee2cdb9a0f7c5d8f339a4bc71cef300c6318e72befb0fa58efb0bbd68bbb13e420215eb99a13e4f8f42737b3634bf639f4f96f843ee70fe94cdf083de841ba07e843d9fbff0b6a46ca80deb5ed3db9f1c34da76690adcf0f7a0ffef4f018edfd73d864f21675b66d6fbf6def19cdb6bd0c77e131de9d99b6897abcf0f0eefa8bb8ce61523f998b7f92b1f7be04a1d7420fb34c5fef9c870f2e137a7f181f14a7ee5603809cfcaa6346660b831a558daac586bffc1abef9e36badadb5524ae79c524af71a22728c9706f426e05411f285a13b2a7759ba9ed9324525e7f054989c98ccf09819267b86c94cfc117f44202e93a221cbeef42a29f8f85fef448b90a980c3531ee3a16444b892c1e130128777123a9199e132bc932829635ffe8c94a9ef3ed26508b0b5a0fd0b63e00dc7ce97bcaeeb6d86418f413334d00c0d344303cdd0403334d00c0d344303cdd8a08f5b7b8c310cbdf530b311d2d03bd18768d8a00f5d9c876383be729e8c0dd25ecedcfccdbbfb7a3e485f7a8addbb2b89b3204cfd1157adf670ecfa557b3ca869cb9f1c0f2a415e83b8d6d64ae99c52fa0f394608a70f193d054420953e5bf995963fbdc9347a0df4d87b66030f6a699a86b1d71edf1badf55a25a5734e2a6575b7300bbbf085f5595ff8020b711ef696cfdef232dcd20800322deb593a1730509d0b185b8e70600b5b78db1ec37a47bc02c7be375aebb54a4ae79c54caea6e31ccd5fc90b17fc0de1edf8c419f1f8b3e6be85d8806e83348a4b30e690fc7defe8a2d435a56cb6f9cb7fdc86a794be768f9ac73b050ba5be8666139956a4a9fbd0c2f65a52ccb7056ca329c91324d229188f0385afc4814c2462d5800692e3c688dffd41072a573c545493e266ebe25a250e1432505e51341cfb784936f0920f9c913269f0892e87c2138927f8b40dca01415a19cb7cfdad33163e5d8748a8aecd140c3ce0f433994730acab7c4926f89219f088ad0a4a8485191a2626302b6213fcf2b81167b6bc1a13efd1b55d31b30d3e1941ef31535a48d78bd5be3bab5b2d64929a5735629a575af2122c71da510d7856118a677c42b307c6fb4d66b9594ce39a994d57d4f2c26d9f823c52c1b167e8a593a8a8daf6be9c0b6ad74fab0a25c42dca0c778c6218c435a721b87fd6594796635e6bcb806dca1a7190d7087403fbf66357c874a2f7a20483f2abde86f9434e8451f9509183a8fe3402698d6e216638c3e407de3c67c9096d5dec97ed5543648a506a527fa54779b6ad4a6346eca046bef65fbc71863bc605cd7bdacebba2e9e28c561fcb13bca2e567bb1c78b3d5dec81ab2abeecc59c9e7b733e9dfe299d3dcc3d634ff4f7418bd713d106b5dd65e4d8a63f5d06c74522c72d71d8a0a28e3836dbc63b47f5804e5028140a35ad9d36dbbf6a9487722b728c289eec451c89e3bdc4556501862f97f6d09e8ef81a872302b0f3f7600c0fde2960c7abc38ede8d1db5273fd7dc78588b8de8e930e35daa8a6c3da4e1dbbe0e2719bc87c300c17a442011c0ef8f0376d73f215b2fc3c9bd930fde89ca944344d916e7c9107d4677c0e683848131386c9d53b71c60eef9734fdd323ffefbd870ee17ae6e8debe47ccf68f8c6b9388c3fe53a07c0180865481887819dffe90979bec4941539ca1414727cef9483ddaa01aec1c113429ef8b18ae2489121375fce8f2fc7c6470a94274c96e87c5040018511ed0a487e3e243e1f129e0f8910903c597d4fe87c4f1041c284890f8a9b0f0a21557ea27c4f0ce17b8289ef09207c4fece01a1c44e05e18ad8d5eab4b4ae59c7352296975af35aa4c23be2ff1c73103e22461e2e79d333977ce1200218c7c1084f1cf1076f241b0f30ce3679de10b8fef1e2af45e27f24ea4f772e9bd6bfa2fe527e51f71d0455cfe507e1097218410462d83c7e48f9fdf3dd46f9fb9fa339be63352c6b4691966e2a6c3d42f7155543fc4d52b83c764edcdc48dc3b8ce43790f13e4d9ef143545bcd414f1396181af899f267c4d1ce16b828a1d7c4d30f99ac8c1f99a1872f33561f315a992797a2021fc4ce0e4879d1a0b7c4852e0c48704043172e043a281213e2417f88e5499c277644a8c47a26c27df111a7c4756df911534f1e3489123438edc1cf961a40a467c8c483102c5880f8c34311285919c5aebb58ce0cc0cc68046547b14adcbba8cd86c7f5905f3b9f08579b63fa5c2bb9f134d9c88e27322c9e74491cf890f7c4e1cf13591e4732248ccf1d5f4d512708f77724e5aeb9c36f59327c4dca254865b54cef9f2ebd70ae79cb0ea1d96866a8cbb1e63458a040cf186cd2939bfb52fda16bdb42d861862882186d0045d9a6635664fddc13bf900efe4eb90f7de1b02cdbcc9307fec4f8fe989197767958c69cfc79c827a9813b7f14338b1b4a0cc8430f231c618d7eade15c09678cb390514b1281842d93862f766227183deab3ffacb79d97ab77ea3547b3caeeb2f8c11fa4b676a03de14bff698fa6934e25c4818cbb61cb298c8b1c74412147fc36f318fc1ae84066b349eba42ceb4afe8632741ec6f2d7190b3016fac5d89261a65291266b31aee35a3ce531aea1ff2ebb335ce90fac91e4a060c771976745fc5f81106949472c996120618600ce82e2ede4938837449824d465495ee876acf686ac017fe29af82fae9a47c14874c9ce41a2a7f0f060caa9190fac93c2cc91ef4191287dc9bf3e9f43f136d1cfe5c3c2361ee95add3fd9e3d5fca541938f39188c3213ec8f11dc65f5c76a65b29a8fd8f334029a34b601fa77eb2bfe5383fcd207ba74dbfa333d265530a67801e132bfda8e3349e5dc6becbdca79c0bef28fdd493ec5eb769ddb902862f39c89786d40d3772d001c70376d0c1030f1f7a449bf8c363804421b3674e515589587c18a883fc146e193368f8d40d3772d001c70376d031e1bd377290defca99dbcfd6764f098195308b92604f974eaba9d2038eb6c6c25a7b53282a1d43103edb5f38f7c3854e69429a594d933e5b4664f75f291e0c708a2f08d208a5baf1789846326d2a4cc22618c31cea111a962258b99b294656948d25846638d46966579922dd22392c62ccd56eec217d73b7779cc78e4baaeab88948d3396aa6286ce4a06afdc919c1ab35ae23155c3f09c54958c79b73197894562118f81a32be4af9f695254c82b7f7a52b55e629163a492c94212e9e10bede9c056b893f52bcb1269fb16e79ec4a3d898b4c386fbde8c2771704718e37a69557cc2780563168c5b3076c19805c62c60dc02634dbaf045d59e8e99524673d54a22d54aaa246b9d64b5fd8bf3c75c7deb4f22bdcc68aa3b8983b5461a91081bdd6d49a477ce57b592ec7b4663dfe36eb267a63dcc7cd6809bf417d742d255df911e61a88cca18cc6a90484ed23756fea47b20217d8fd3af90f40d965ff915dd63e559b48f199ce436f2fd8703e1e199242791464f229148249268e4221623ed361eea87a4b1484c0263f80ab485b687a1cf4e8a4758b88dc4446e236568709dc30a8743c2c83fe9a833839cc9e823513024c9a7bbfbbb7bd48945e2119771e16e10691a3c54ca3bf92e5ccc7198d40fc9bb22de49267e837712b5c2b5f8732dae5b7038fdcadf6879963ffdcad3e031a2d2cb6fe1564ea367b92c26538bc9e46232b130995830995a984c6f32598c339936c82416814c220da91b600c91f7279616d8c2ad70272e622f8eb9008089bd40b1ae6230592a00a4a945d6b534518983f005c9453ce29d4e168b88b4f6f7734673b557dffa9a439c07e23cd0f66291ee72909bde451d2f6f1d33bbd2543d5dfad4aae5e0766b67e41257c1200463a92264ef94aa42f64e5d879a8f23367a58df7a20ec5f0a20a14f81fad6d7b7fe467d4b537dc3bebf744ff2fc692b9dd203a22fa8f4ed16b5b5748806000000a315000030140a87c382a14816c659aa751f14800d81a24e60449986c3590ca4280a63206310320618600c3086c010cd4c5100b45ec16153ae7db0e1eb99669ea1b597899d39e7bc8224d6be2fd5b4b3468aa33675854a82539386966a590e2fd2eb8ce651f57bb51094cd417cca6ddf368d0c71be7bb48cb6b65285bfc49c77bb66877d6179a09c079875dedd3909734105f32c7953d7b0fdd7fbcda44370e456430607be5603387756b50e4c29e87cf86af1ca377fb2749a6736edeb366a923125f4014bc0034085ea578fb0a43b321d92e4809ecb6109525313c0c983e9ae8172a5382231b49c6e3e733ef8e0ff2c1054d5dd9f77811faed76e190fd1a3153d1e1894e15520ad9dab9aac4365ec6aeb1898e13d45bfc4f6308a1c15a47ca683fe72c8532cfb7231ddaf7d5661174de59245cfd4b8e4ce29b63c8b1bb32728126d5e2f4c12d2d2451d443491482c60a9303c98f73072ed30db3060dd66295c47179efc89a83d90c56246670fd1d10d951a5dabea0fe8191d9d5e5218447d16926b3aa7bde861f3c4d875564e6a8fa503dbb3ca1901c6d53249249696938bceb825935e842c942537503876897e28e60a0091a456bb9c83e5923e9a86cde7dc75b5ad281b615a7869e2505f71506c9bf0ba70086482cd945ad849b3f1d9f94631d3c277a33b85cfb1c14448914c4033a9659c2c212559c78fa86dd743cdfcd00dc0a8e0711114804793669111f90d4c87b48898f8b1d178a648df7a8b32b6d517d2e0672cf4aa146a4b8501c00361502876a24e7de436413f62c987e98162f531128909b9d394efe480f54892e6a920b617e50ea06bb7877fdcb5ea0551eaf1f121ff7ad68703611a8e77da91972c96d701a6cabc78660cda305f89e1428a941181443d7c2289b894011c20e165362e72e49111162731546d6dae8be11d094d62817ae45538ed60f0f8cdb6c90da1e432490b2ba6202a8d18a2a27a1c390c15791002a3f1b8a4dcb6919198afb8ed32d25e9e1e162556bb1cb0863d36247fce8802d46a244f21bf074bbdadc838d04ae881389e790a11cb5dd87f46ca06fb90c3a44df435d0f371637251a172ed4c6c8ad7e0a8523ae6c8c797497d338669e86c043fcabe9559b23195f5cd5f2765e203f39f94c0c814545d68c34b84ba52d736bdf27786b8518315056ddc587efd509db384548ac367949f0e8344219f8aea6a7a861a113194e012dfa93c250c71ef170c909ba6dd5649ffdaf3a53d63e9c3bc596a39fc450bdd955bbf018734fd4d9c7524b3f17961a251aefd54e097429479f729b2d42eb5c2176353c11822beb0d521b04edf2cf9213ae4a69e6766bb5c506cf7cfa91dd35f4fae4000bff894e049b517d5c169ea14a8f33efd618c5b7c6b3200845e063deb5e58706050e2ea3cc215d31e897c824564ae65d043250bed77818ef76eaa255d2646f5b16ce80fbb052cca730cea219cc5c6403bb3581e9d9a913f7f223450b4f4ec872fd7e5c0cd8400720c8d041a64c7a29f5ba137148320064186110224865d0894f23b7b42836b4237b5d8940cc41082fd5f45afbf2e8c4e14b1b6b860b4a158f18b1b460d48a4677550767bd683b1c932f60f6e18371457ae71c16863b7f5b790b747dc0d0b30db2786c6e82b77b235b4374df9671f9fede2fe2d5f7f4e2f1a21a15cdce037ff6f538d4db4390e137a48049f29eb8ab90488f687e54dbb097137a7d683f10426bc61119557ccb8c36863312b2bc5453a5443fa4a295cfb4567dbad76c11805620cc110046380624483c2180c46419d2ca44f6133ae7096b10ae9254da895f8801c9bd0470ba4084d14c108b1ee101779f90831727a899b8e5cdde37ca889fb2cd6bb63d42ceb5d284cb9e21ea64f896e5b09ffcc63b0ca28beafb190b23bb3261e1239991e97b0e60184d76f58869208582e9c8fce66816ee26934ffa8f0bc8bb3c2095e8f387ec25687c2c8046b7076dc20243366138806670db4da3cfc061737fc612ee9dc81196570690a362aae17688ad99c0c54069bd5071b4c2459a495a70051019191771a14e0e4432bb4ac7a24d4e0377ba10025a8c734aa9a627a3390284873f14ab8a155ab02418e0943fb70aa6c8d888d2fc3c4b07095a131aadca0b4352999c67ad95edaf9359410406e231514b06224db585af16da889211927ea109aaf02ab399c37cd5461d17cbf3c6fd6334e5531efe6c93e9edc577e0bd6747c052a7207302f93e54985b07285bde2169bceddd2eab63c16c4a40083b9cc5f01de61014525826cfe56e02169d8addde2475f4fb1a62ee324734a5b4264c9334108810c3fc6b0e71329131a2f0d787b20bb1689fdbea66dcb91bf6d84226d5b24110aabfbfa0812137e7e3f69fffefe02c5e6dae79637e45da55de7d67275d49b2a350fec6af5081f8a7305e8a97d20150c7feda2adccc5e6427c3278bd0a2c1aa89792146fa63fb3987b4918ea910e1acca1390a70e91552f420861ca90338ddeafa3364a555d4062464748e333347cf5cbb072b4186bb4f586bcebf2afea09bfe01b67e68f0ed2f6c811119b849890570101f06b9f51bb8e9f705fe5b3bce4d98450247334a027372c1ef5315273573b0294e8aa3f940d0a65f403bf1fdc1af2d4d1b4b37cc95fce004defe42161845743529ab5cc0255cd87288fb93147fc36790da1f3f5a547c2925ac3545af2a50b44bee8d8ac261a912b10be447d5f2f3cdb2becde8454c4d41dc12d5d066e9b811fe3672b8fa65eea236ea3bce7735208453d7a89b72cb3fc57abdcd52b863bea57379aa6441300e4609e716f1cdfce71b78487adeb6d264b37431ecddee8890a0038c24f383fe74c0dcafb5b40bd436645a8c201e223d980e551c52d7e071df992a25aa6b9acb3744f4c7ed133a9d68ee61befc31cb53464fd88682f03807469a504a0fd868190d7543a82d171e401ebae9487069d9bf5fddb707e9d02b9b9b99c56e91a2b3a2b6c6d7fa8e57fce021d687fc4d473e0101b6d01e08bafc53ae787fa5040c4f632318cf7fbe2320eb52acdaac93e809fcaca2d47fe1ff237f8f0831e7a8ac991c2c85ce532d8036ab7325a7e2a0601f5a3ad4faf076e96a77402dc8ddcc33da63e1e7de4caefbce0498759f72a02e903be73ece7d8c46ea46aee075f45f6935fecaec9cf493950de86906cdb4de4ab1fd10a3fdaa4116f7b184ec8261d1cb663d77b55c7c03797637189586bee134a32a12b1b5c498b36dfa5f22b554f8069c823d1e11339e241b4187420dd49c92f656579633e630826bdba8661a2c09e14f02de2e202ec0ed7cd6d4f757422ca107f0cbe1feaa7ebcd7a7e4e045bff2a9caeb6a3441088296ecc154a868c258d03502cdd9d5fc1bd1815cc55df90146345959b573d22888ca1415771dc44ae578105d35d8412774653630c014c905cea1fc97b98be90cde87fe5145e48b12108a385ec44e72b4672b73b6fbfd2d9cbda6ad2fb0027beae6812ec3c7722bba037b4953c1d43cb9e0ebf234b68b0689fc3ea1cd65939f8589f8b124ec56990e3f879f408539d72e40366cd9ac05e5ef20d661f34a981687573516ce300ed007e8a224b1783bd93ca6bd5b101ecce67ad5645ec77f789a8008bae4004a56a3bff6a411c83750ad0aa6896648ac2c7cd512d0d83e682308b46740938a8d02b6da0eb41de70fceda8fb7d8b64dbd04c4927dd29de770632ed3f9e6be6655e69549972dc5c812ba5aa8bee3d324bc0c7796b4c388d77cf6a73d0d2bdf67edeafe64b30611d6ca069ac11321a016cc7aa5f731b5557b7f39e3e6937810c2a024db3a9bef39179e88209c3f96f212d66dd67621c59ce4864f44f7acf6adcc47296ceceba0f4326779458a29159e19b4f85356ad9df5fa888365a77267513cc5e28afbfaeb39a5b010d18f33e53f13a702c90d7c751241676bbb13bd2c81b8f9576a3d735887cce6639c6d05430fd641e625a4e9002d49a36eaf399d2c30ea109a76343b0f946274a224a34461494828109e51c289ec1a83429bb92c2871e19a575baedf5e33e6387a6a4b8bbceb33e058e23bb8c6b5393a80c87911d66f565c331b6ecf9b6d6886c4e1d27c727e16cd5270f44e36a593cecdcc8609f37a456d010d8b12e5fad8331e23b82176380de031b326e9a319989acf15a55735b46dbcef3689f821c5181f6913dbf640fcc0866f475156a55cf2af66aa6c114dc35202e59174d3fa354f7ecc7e8eb1e370157b0da90a2eaacd0743f957562c36053a7bdde117acde06807523809600f03940cb9d829d074778aff33a9848934144f388f71b76d7fb2f1cf1231b23e6f890c7b624a657e8e08dd16e80238a4dc265fefaf4cc8ea457e09349423ff8143f4a6c45e9f1aea1af166d8071a2fa5ab102f8415b7bfc1ee38dcfeb514befdce818d5e2636719e1c1da19a21126a8a0531320e6ab9e4d02e1bf80b50a11b427b79c6e64db7b4fa933887c13cb11c058624affe2f57c79a3bc0bf0318c5ab7ab00fa1c0c2a753b01a684aed8396da1fda8d6cfc762b70b26d86ab777e7d7e6601a33cf1d46a3dd7656c44022f2b8fbdfaaf835dc809e20e29acbcffdaabf2335db0c43701d399dc8cde20b0d81288c72bcfaef305d478e5cdb6177b6dbd518e9bec2c95bd4f1fef236570754263935224c46fb46f500be4775619db416f0a5aea7de7654ff54cf409f636044fbe1295bb2f42ee3d9bbde570a956f7357b96e18065e3d32e4c39bc69c0bf1cf7e2ea4d00aec520caa59397323c782b1a8e4c1bb161715cd15ffc40576731eacbe354838893ce8465f88b008002420923136dc7cf91cb30305fa62b7b432d69f5a400b6cdf6673981880c0075dbbe8db7d566b2fd1c2e473a0c25d2a019d1e9cd69373d848a2f05661dee148b94a697db8b0cb217c8d1fe87e13a0ba5ab0bd49fdca8ed85185de844489a219e02009b242403d616b8c8ee0007844d906b2999270227917d9c2ad310c8755a1a5b84bca4bdb085f7ca968b81178a3e562aec19c6854963d64aa407aac0e9ae7ed78718e91bb7c913dafdbd1f8af0cd65976c151b4c42b0fb35077a580689ae32dda1ec531fc73c94681efde69957918dfc557d4bceda5ea8a57f6d3db3626c65c8e4a3049fdf5fbdfeb4d9b28d2fc3a795e65d61307054065df410e105246fb5ecd44cd2717753835fa2146c6a7c6989f594aa7fe63828f6b932a8765a022a98804503dd9443cf4ab82ca5a6314ba57b4e3ef859a28c2a89949be0f7d40d3574ec1fcede16d440d9d981188a20513e133de65cc5086ef15d049c5b574176aac306a593004967e23d5a736ebd4bf0f820b98f77d7491e0adb2af1e7bbc8cd64be10348bfda0262db3c2ea2df9e016999e2cd8c4f5bff3008eb86e6f8445b15d8cc5085209efbc948a032b1ce0beaef3ef8c13734240f6e44536b45902e3ceaf919fce75e14dc951e740ae409889f16482d3bc738a8d75f2ec3299aa26900ff2ac4ee2545277524c6ff3e016df3004aa9855f8155dc19a63b45b3ff1e6af381db5497b0f174a74140e327d82e28d2a2f262b0838fea5efe1c6d571456d3d39cb6b5e2316e9f876be4914a430eca390b9f5f4d234103de8bbdc322ae5cb00c4d7314ef88d838f22b3f9d8c20dc650591336750d3a0af0647660b8c79417d2eea9b694d008db04b414b114266f99db09eedb04a21ecec97b3d56357bf65d5a6f7101f9cba5ddd3ba4b95230b5a9cfa9f320df79ea1e1bd91e86828d5f203f95aea19a96ea6cca1c6f1804613d38705320924a8d20d2b8b45e98bebf2c87fa14006677ddf6b4bb1289ffce3bb9b3db25bfc4e71ae3dc2021685dd8c319b14e11fb4d3576e52e81b4d685b13a58e15e43bcfe7f5aa5d81bb4e965e5c5ca09fc814471693523735360ee322db69e5e944456b251009a247daec8163182460a5b2f0c969728ee50d0b519394f9dfa87f7135eced1da15315dc6c2f6f9f27e2b78a7396f61f712d2842271ba485b108d86409e1d5f1bbc161f16319d00790ec2cbcd8c7fac954b994d56feb6ccd72b78a7577ba33dcd7ed22f93199075103596fc73ecf0c9c1ca5f0b5ea8af526d1a5197f53bec6d3eb5727a4e3d6ed4af430ca1d52a0f445a4760d661b9c27e4ce614e058fc4c52a9082cb61c8cb384480c03a04d1c1fc324ba2d4250fa44482737d84904e73115c7f3be7354d7511c83a93b010c3c23e70df5c60b6e2b301219a76a89e1677d6721fd72e8ef803bf8d0ff646509d7d910f932d728113e691eaa9d414360fca31cd06621ce3909b64aa883248bc824efd3061e428fbcc41fd6912487adc7dfa2d8af8aaea8121865c5e1161c1524eb456c32354301eb71ad780d703d2f28ed01db7bc6c1337b12cbd74be8026a04de031e87249fbab67421167d2ef02f17f42c8508e890ff9e1c483c4cdf878c504b50806ecb5f47d45d3bbbb01cd40d0801e3c1c0ceca8a1fc92c45b5e48d53cbe403e22dd9c9255a0c314599b3fe6d2d291b07b04cc5ec9b02132b4fbddd6b346fde4a140d7a484d9093c13622f0408c8d47c6403a629634c9f84465193ac931a5b840bc44c3c4e217626037f1643d69350f62e624c088b943c88723b1c266aead3bb22ba42db4d3c11f28525495372c99a35705d08ff17aeceae5d88ae8f856231c2128c098625065f67e8b4882465f3c0e8f4376b2fbcaad794bc7c73c7ef7c0382261ae53e6f13b036408b153c2c8b41dbb8b655e14f804f905c76cd5630a27fbd420d0b39217409da84d8d96d49a4b82dc9aaa0a0c19a54d8f7f6667255faaa0a50fdcc38535ce02db0133c8abc0335297ad858a8d68417e6c09b88222b75948e7bf26d2bf3b3edebc07ebb71a118af3e2af1a4643b882aefdbd4963215cd8e3155a8f4c25d33057b7f185704dbf60de9bdfb9ed75c2ced6d98739066a3c4de2213b7a89d5f42e42fef6b49310066c19bf6e02ae5c252747d5251c9aae59aee07137ca6b22f52d644d06256771097224cc4a268e5e2df7390cbcf15be1061f41e828f834a4f7d9e5b6231ab31b10dd6a1e91e9f2621a2f147bb9a8256e1c1c31883f5f62a1454f31e5da96e2912b07cfa1644e9cdc54a814da65afeab6bc70463e628773e643bbe7ba43b9bbae6ba35e824aca257df0bb34002a06019d511f0def5b850d55da67536a056e3b969af2f041779ac21aea434e6431c0ef84ec4d990220121eec2e06edb8cd39469b921cb4e5b60fc96085f980d0184777a07acf902489971bd6af4b38a964b1ce57110073c884fd5faa9bf30905673ebb359f6fae9bd22dd1abf9e6f1acf43d924edd9abbeb0d2643235fb9fdba4cd9cbf397760aa79361d6c3e8db787e247a8b6862b658a2b0a3548f93114338c0da44d0d3b7d595d8d97162b2be53f3f000e32986761529c570f8b040b29793ede63bf1e80203bb78988ca196b5eb31569fb25c0e24bb70d85c24e60e54d4d13fc98bf0e1dc9da728a86dd0acd3fd0d32c865bbd0d87d68688d12501a3f32c8beb3843ed7a7294a526b88e0c957def7550a202556c207f23b300b1197e0e00ffe65e20b1c67563a23dc5f393149b54ca43d902b598bee199a8c6bafafa1b4355ea36bb574b5b98eee59f8f276e09b2b5c343ec616641ea959651c4f19369a19b98dda3a23310e485f818062ad5c57e266f97b9f85ae1fb13c08f8875b5a6042368ac057e3704ed46687eb3912b6cde8bb98c9ff9a68ae27a45a817726a16e81f12d924cf57d0255e8708a1d4ba97eb99989941f4567ffc3f7200cb50cb9bf77fff676112951a2df28b5cc2800cf6ae5772f646d7b9bd7feb4783b3a8614fe4b341827e4699592eaa711641197cbd6e5502abca549454ac33f0fee88873477fb8b4349f406b736a35c04a492463f3b510a88cd2a23c491d078f66f9485f8c6dd8ecc720459be1d0dcf54da530fc79e6e16438280ba692851fca593c2741d0b004d1d93e94cd916dd30fdedc34c62e2a33999b2f86343cbc4c40747d3607974c8b64db7971ee89d0b773593deb368fd79b36e4d8d0e021b7e42a2c7fe5cb6614e092d9ce69965ca0d8204b7425b90c3319533d721e877560589f2be9e2fe1fea25e411b70ff02a789066c314cd4cc2af2ca4e905d5c827e965cd24aef82c1c31eb9ff9a2cc6dd8ad3a5f53d8c90af7e63b0394bd1b7ed51db20541826e20571f7c4bcf99fbccb1b28607a28e50b9193e5050c737cc8e068096c8724d499936257a28d13a0094421678694dbd9c745299753f7e5a02b07ae71224f5c418743fd55980953dc5645fb1a97551e410f690cf34050777cd6eda3aa26c439dc45bfc40623d53f79f6e4f7df5c4692fe6c4ffef731535cbd27a7a292f88494746f27aef1ddc995605215c0e0ed32f8d4713a88f5dc73dd25f51201252821b83a5d1e197debee64793bdd348adeeb56ec2e2edc131b83e02a1f554c0cbb8b7526e10b3da3ce070536376cf78a68a39df02abb23b5e44daf8060c71a54208210a5578b2bdaa30c424d106e2c4e34ac58a0c15fe201138236e384bb39eb71b141124699121d5c39514f9936727db08406f196cc2baff06dafa4ff3d831e0ea8e8751a923545621d7f0cd4deba1e8e1cd7ad53c26a5bb62f27118ec4514429628bbdb6d5018a8ad7dd25d189c7735fa3524bea9439379fe6c568ea482b2a89778e50b44a62f670ad25d854336bd205c08145e79dd71c5a72f694e7c7b1d21c2c931274da7bb01d25a09393d887a84e1c161f837a3f614717dde34bbc94c8ae14470773d7e2c1d159d2dbe6d53e64bb1e3ecc8f8f28d809f89177a2e3641dd2e89d6a82936dd502dc50be8162dfc8beca76fa7733de517db2604945859abc8d1e7c852d2a84909b0e627df66c76497b7100919958d6a6c334ceb0010e7dc08317aac9bc0f349d9918eeabbcdd411e6081104c30c9f85d12cffe04f61823fab0bf4f6310e7cf49726614ba7622f530db327913ccbbe58ca038c8f79bd24ce0c76bc7b900befdac3e033b9faed85af303f7793cbc48a2a91e6f16efa873ab088077aaf27aa351f60e59ad584bd103ea9313062cea842a8f946f163e302768e1383f8cb92f8732f2d508a92228ac4806131ea738c3c988273182050e3b1ee3ebdcb2ab659eb43aed09e292404d11be6cbfe8acee42880fdd19d09b2c7b9b72796694bdce844c58862d96ad5cb50dbf741dc9252e34301e78ed5b8095160af8ce462b4a5d380f9de4e453a145b00a66700a6aeaf1df9463ed764f863e9c157b6509b4989c01eeea66904f417442a208c6d94b7f4cbe2a7cfe8e936e768c176f948318dfe2a43e9b9e46b31bdd1282a1630e609d59dd836f1198e82e88d048db4c53160ee5d8574a79aebe9220e710a6001e0b88ec391f33dc284263c9e9887b0fe8db84134197e88a58678c5a13a2242d2632b7481e2e34201d5dffcca4dac774f7999f6adc481a604d0171bcc106d931e70b37a0eed55499bef55760faf651b47d485a26a0ef16af0fdb64d3dd6e4aa595b5789938df29726763085735d2e2242e90a92b012f7a214bab10893796d4dd8963fed1d8a3a926099e9c48dcc69bdc76511231f168b2928ac55763371a92ad035a264dfc012ec042314d96c4db89c41628655bb264435510d318c816ac50d12226d1c88f096dd2902a6e417a95a4b2d5b04cdf31d168b1b0656bb14be9d676771b8aaca9e56f342ac13aec5cf06f87811ec7770420d17ee1f273cac6169ace26fdee356424de5ab233d06dc76b6f03c55323d3c5d21692b47e32a69830fc582c674ca52e213dc5870ea258cdbd66710a1ba5110c8a0d864fce5f13ca31937e71465bded9a79111790a05fe6a0cb4d9b86d3a23f05991eb7c474257c1deaf27ea7cd2aa9d9dd1a53e5f6f16cc9b2ceedd7cf9616cd2cd26473ac7c8760f675bd6b6df92d49978618ec3d7b1dd57e411d462e971b85089c47b9a426a9c3a998ec9d9c0bd09edc457909a76a03762ecce5ce68439f076de23536fe727827a3b37649ad17faf5dbfc91ee0b0436a0ae81f63116712357b5b8c436290c1a2f3c2a8e50e7b1090902b903b9f3e31688a4299208715c0a2b4aff71d173c159c2f874225c0390d3750838bca870edf78c1535fe6ed5826554c8293cd3aaaf94ef180fd6209440e4843b599ce56ed7b11cedcd165ec0ddb044a96a6073acae462121a7e0712bbc7b0b916a6764bade8b2e7182a2ced1b54337b7fe3db080c622b78e234371559110c4baacf6d144ba7866a8945ccb20ae439673dbe48377976470615baba5c50eba9099eb6786acc7430b07aef24435361757ba0ebff2f86b844cd535dbe3e73606b05b2615c4c135cd3dc5ff2b65f0d84aaab174f2d1402f7de4b7362eb55db583b42ad0815ce113aee47f8536d864c98372790f5a66a78c6f49559576303f98d61eaeef24c11a9dccbde378f05031ec2d5901c48a52198f317bdd66560df310e1c70123d61fc17925456419b007652c575b4284f2c9addb46308e8dea37ba7bcdab0f549b8af99b6147490ef23df2efc8ca9320d8374709536c88b856b41cb6db2ba5d421129cab661b0aba77e0c9490f6b19ec3c5bac4e76f9ba0839300a06800f9f24568f9a58fb00740c95d6238190a32cf9cedb49cc10a2773e4f563a8ab0025cf32bfcc4986257231569d6ebd35cd7b970137e8097b3883a31508426f2b1fd40ce8f4d3d9d0490aeeb974cc54cc189419059a351428b7ade95f154139fb85841bf3cb5c8161995fb179daa1491a2c06121cb8f2d718a68e20acdb1aa3f6c976c4bd76a40904bbc2aed77cd145e43f449df0d8c9f8945d03714804080760208094ce9945b520fe1327376050defd3cdcd71586d27d7f0f4f849dffbd7884417668487843f53e0918617df97d7f2653a9809a12f925d8a475c39392ef9beff50b6ed94e1caa3649b0cc149e5e27c299190472ffade1fd812566df41e2290fc74e04118b5811abb896279e2368840cb1cabaa6b204592d7cbbcfc6930200e09ca66b7d136f415c212598056f1ba428f18715a03faf5aa987338bb32c910b2a13d40c769d03b831458e368e387cf8ef2621355939feae65f0e238962e872fe08c8bdc3f97706311ebce3fac749b4d42f41769d0eecf6a7555fa84af833341f67e7dff298ecbc2491b813dc8749e18ddbcb3732c031201f36483b542a6ebe54c765429c7c2f9a1517c2ccd76d25570de635cd32048f619e2dadcc8a8574f150275c9402c07b4f9a701c2020e860ac9ccc3b99a9da5a2627d951133e575a1b96ee51a4a80a7955817891e4b1d8605bc33efd355547faf2de56afd58b42bf91a721f94b148f42c5ee7e165266d18f55c95884f3c8f07ca4cced50295e8756606970ce8e81c1eaf2a76c64d556656c94ef4367516f93a8248f6d4d15abb58da50de595debbc8d47b7bf1080cf5b0dc123d5d9c6415f1b523a9d1932eef237653f61bbce245b5c1958c009904939e51d1a0d6a24c2c824cbae38022e8102e0ac34f8dff83f9208bd6307d3a030d2da6387e6aa90dd091ae17c0f86dfe328801a111fbac74198a05122b2c75241473a9eebc094d4c52c2bc4da308cb39c46c533eac79a36e512d5987d38c5efc9ae296a5606434863a365816514732a7984d7880d02879208a84ab5fe17dbf342e76839e8159e748ffc35fce6022d93ccbb555bf16f3c4890a92380e97d85b6292ef72ce47567e92c39a3c24820acc6cd5557b5d65c7389db8dcdaf4e29059e8ead408c15644743e709217cd8c266c79d00c0bc10838cf133b549983774caa2867ac147f4fd3ca634c117ac01b2928090211ddd22911ccdf661011edc97a18b4090ca28698bace70ca1c78a3429403fbcda41e5b327bba908e170e1ae83f3656ba3ee161096e3b83aa5913cef8d2cf5703fb3bb210beee8f2af313f60ff4faeac1e78f1bcbaa2edc6dcf59315217a402b80e107699fd877c962940c4040afde33cf776b7eb78ae14b884c5c87d623294e3984651fdc7bec8e4f523c9539427fb52f5979cbbc68ba418a5e4e526df46c5b7d78fde4e49f5189f9640a4051b3209c0dc582d020329ac26155ee3a175113ee7a11d40a33ef0855d9f0ae4d66fd81410df47faf58e1927927c7eaad8012a7830589d2d028a86b8b1b065b1458378e9f4c06c6974406ce47665d569ce3ba64061faf6a63de082030c9db3a94547e0e386a88926b07283aeacccf03f11bdb8ae203770e03c5fe01671c88348280eeb68e0cca3eebcff0a80557b1982c76c23a6f6aa7736cd35d0b5cb9d2cd9114c821bd7521004c99b6ffd479dfeddb2e01496b360a126e46d77e3db7a6f4d560292fe44eb1c429cbad1d7211a2d795ea65dd40e553d06c82b7548c750b5a29423fcde728201251a5fa68ee807b72af981c8c448076e21ccee3c01a438a3e168a20a0e0845cdd1269a996ecb1b40358e6ebd7e366646e1717e1cb386772d90b978c636d28c7cb01f0c85947c8eb1cbdebebef9bd087596e84d61369c111d4198033a67eaae0bb9e9f6add93d0b4a328919926a6d4a83d513cc340cfc13474e09716e85d513c0bfac762cac603cee60efd2391848b1e2c5961be3b4dc9932382ab5937a6eb55812677c0bbbfb0f23474d29c8f26c20320ef56f9c1ea415d1220f6f7a4d983b727fc520d2cfd7ae6369bbb1cb3972f6185f3edc227e4e9bd843e7409269fa73e3479286e48a8940e580a3bce83005def551352a6016d4c6c56531b2ad940240f004161af6e16375c3fd4c5fc555572fc23ddd0460ab5c035556057dd3d6ee3655c9f49763170a828561b5ce7cdef65abd8e21b164b8e996b5aa999e2373723de1b839d6d4c6db438945a300c46f58ec28aa438d61d8467250b822b2012f4e2055c9b8cca0ff866c9da44ed7f0b628b5778cddd1732ffdee2303722be378975277605a9c0e2b7bbbb91855b472ebe490865e342e76c8821384358bf467e199194bc4a567635bb13ec92ef9856e038c3433f0501b7a4311d97e56e3a737d65dcbdba20f6735c88a39f0aad18ed03922d229addb1d493592e84c9fc901a0aeb182206f0300cc1b53405783faa026f81364ef746014c1de84af9f8c33e48c26c04ede2ebac710d8d64a00fa5d317dc7436a4e6084a0e995034d4fe50fb82e9b9a384177a90c149850293852114548fbfd455f75fceadddbfc592e1efc5fdb1629dcab10364cc7053adb0cda006c9342b6666d93427277361369766277d47b4462cc69033bcda84115d2295f5c524dd5e1656f18657696dfd6b3a8a62f5cdcba8503f15462a3970f40bfe04179b8813bb89de8d9d368e6e2a9a9782328c4dbaf02c734fd1fd58ba086621aec91c8efb24111a73c1e8c3b6b1fdf49dab410691f193bde9b687a22d047aaf7fcae40c7e22a8fc4daf978624ea311d923f3cfcb9002ed748f15df105ddaea04a0115c9ee4ccff0b93fe3e44a3f34f03bff17d49ddfacd2fec78a2152b513a63caf7965c617be57b92d7b48d23187b2bf286377e4a69bf29835dda4d0a77ad887151a6191b955f074c3f51021ddec9c7056f58fdd9a62e1ad572d54f47d522df22e25d8096be35d4fe9a6fefe9fa795afa062bf5a652a3238483f4e8bd7a1740ab7b536e63aca2ba2caa530e3b1ff295e42bf74f8fe67631392cabb99ff7b6fa80dbdc7f5181c30f1cd90466ed93422d76aecd53e58b554b4095fccff29e1a8ee559effebb237def322a7c6fff36280fd68576fb31883a3823a184feea9ea3533777a43d9e786b909a85acf6af5ffd7bd8b0280e00d0023050d60d36beaa900c8fcc580c72ac1058086aae8af1ed95c3e34c488465225be2228d03bbcfba5e2e5f958dd9fbca2ccf60078928cbbbe4e2148165e90833b726f1b5ca872e918a66fda455f2c3dc7c0ad094ec7636981037c7ae15420521e5f49407713b500564d617622dddfe4c64e4fcc38f86de399d1fd0cdc5c8dbfc4941b82f76ee126a20a09f3ccc00075438bd2dd6ee3e2c8cc3ab0444ddf9cc28198e1a83f0250c8341ed1d53d20fc949ed62a407dad6048bb89fb60d2dfa925765ca62c9dbd754a868804bd275351cbc6b1c7328f14a90ec4b37578292510de70e6c29a56a7f90316280464e51c04668c44dbc3c7c26b88bb8ddc7577df495f2c04c03f40fa64fe230690ae5e4a0dc8c98f3f67a3bb161054988cfd9c07889a198d26378d20d1b187b6d9e6b766f0e652d38a90b484a27b617e3668830e17747f55d1fc0c26aaedb6d9312d02624ae8775d891fe2652aa6107e29dd4fd3c144bdcbb7020ec38063250b4cc2fcd12585ec2abbf74effa214406727d223c252e453fa421a2db136ea1d89201d13087cb4ab12a695ca61f5ce6da24cf82abe0d508bdeb8ced424d5c0f73992a2d277e763ec04a0bee3c0ed1fa6d99e46f38090ba6f5d4e4f4853180459d16fd18ef18738896cc0bb90771d949e6a7aafe324f37c2fb036a1fdd7c401bdae0f3e2cf652802dc4d85ca5ff8e92d53cb9141e0d08415df30ec4ce14c5d11b7562f6d71a94d4f200033459e48e6de94b7ffd1d0eddc157d8868523869d2fcf69de1f05618418181038819afac94fc54525cbd37360d3381d5a01500c28779ab629a276faeb41f9f38cba1ef370eef1c83abf13d48accbcc625ef73d3f7e5f71d2d367fc7f7f9b734e1df115d8281cbcdecac2e385b8b4cffb3cf482a4242443a2ed71607f46f22f58cb97b41c0fbe7df53371bf880d45366d1a3c4e79e06d75b60f57221affa38187782e9dd587080c4c86619a3bca9a869e53fa7ea640a8b134a14e9e8f4cf9c9fbdb3bc82e398baf6f82acd4fea39db7b23dc97639e229353560f03820230761075938d52992d21257474e3b0b23183698ccc0414241b92a364ac222a77ffab18417623daf4fb9435f75f8dcd1a4bb7032d5330443680b19e19df0890cd48bd77e7573461cb407f4965a5b6c51e0c0593f17d42b772976828c680ac6bc2382d418c94a639cc9b490ec1c40ec8a8ef2193c313f8981c1d89c985c41926378de87e08a371d4632677c4af47d0c92e3961e26178bf3a43ea8a5e61cf01ad7ae2ecb8f4298a6622e4dd27a51a60f0e835078ae508ac1cf26bd50d63c1e733906ee541afeac54a85df8652f0432f30e838d67a2e4e3e504209a1c9c9f6c2f5892169a851767e32ae58ad329e00c8c1fa94c844e132d56a6e6bff822bcfce4ece3d16f2bcd76cb3f07315a3c7cda604f50f31c96c7141ca1e11727128bcd29e15311223ee9fa10ce9956540825cca1e4315c989d5ece4167bf1f30545ce8a5e7dd27fb8285c7579b04284c081a532e5b1edc64500b51b50671eee0bc023221773216aa39650ee59f82267da1aad0f35cdd376d008cb056c741e504674c9314cb4a24733a5b6aa474384d1346a739ce8fe2f63fdd3a3bef1a461abee69ccba22f8c793a67c0da3b489187ac881f31ac3cb47b2d0b0a91344b432cb0ef20a682ad948df1f58396360bc9994f61718fc3828a4a6241cd916f17c34a25717189ab2824457e4a62c0e9686930f8262cd1e42be469384ac407b05b196c3bc2fefcbfbf2eeca816a2133dc8eb423f168696e581e7d2364f5514be619ad581d2f6ebfcf4d01077d9563a0bdefcd394d24af9f570e32e264c81a0e9ddd0286dcf93ebe82d39bd01be90bb9005e43f9c4063cd3f411c019833ce5dbb2633853672faf97a04837029287ef2541e58f86545e6cae8276cc873398197a8687674cc9ef30301930a6e2a1c8d9f94c772c31b4f60834364db02a237912a94eedb513ad1a199cd12f20515f7329a3b9bb339731e25cb9f143d945d31b12bca5adfc71659172d2d0b4274ea35bcb6b35eb41e6c2281756961bd298c1b0ed652e5524e179220c61cb5186a5f73eadf476f07be258a610b751887da691883098303a121b9f8b4c4267617418c485b22ab95bf1a0edad4cdaf8833c7cf404f99d12d278fbe64c6c14086ffe44fe2d4e4b341a0197f6084de3b5fabd984f826a6ccb63c57e40f8452848233ba482a829dda0f76a0ddfe14e57b4aff55df86eb07a355d31e99fa29ace51829c839b57f85c57e13ceacfce794603cf9f022bf82b5c53d8b917044f7a0f35f3bced6bd4884da4ab4305149646ae2883aef29f97852f0f10a86f7a089bcde28a86e98543c44612ef7d8fab7a12cd2b1a0f2214d80ea8bc43e2d405a91ede772913472ed323c2754a0efa62464eb28ed0f96607b500c8f784254c029cd482e6911634e9bb2940149d340db6a61ac3449ca65901978c229994fb0b0fd61672af52696fb82f47379fec4c7870073b78221712f6b253d0d7802ddbf8b58e6dc0bcade83a2ecfab97bf2e1e1508b7a4bcb6df262fafae3fd7bbd29188301d56178fff491bd5535941059c520a32bf50b1503d1b9f6f4afbfdca11b0f4cee441127582273276e7d679e620065a36199905bf81b162290c3a502c5c6508aeeda9a35e0f4bcdfa9c66fdec0717b6e604134c2cc10f372894b0ad4fc391fe18c43ef616b96ca52f20743836b0fae9664b877a72450f08705ea0866e8b73e99ca19f247bdb539998c6780a041425eac52a0c13dd401a08c8ca4e3359a81e7d57c329460ad81e0578ea709191e1525a290a78e223551a2ef8648decc1b5a933183e369591848cc4072fc0b50534cd212eefc4de93f3ca115c188219c171a0c6c07d5e6ee758b89bcb42b502df56be49bd347515b0f3b3eac25f1d1c32b183d0f3dcb5a0ce6ce99c4af2468170d1a9f78ea8c129608177d85dc7ed43c10261bc070a4de92d0f8e0f7971b9ea4d6cf3fdc3eb2ce0e0159ddf1526a275cc785d3fb3748945a9def5d18a6a1b35ab87cea2847062e1316ce2bc2678fc60fb7ccbc368e0a54205eeca9ba9db208775b1d54b260baffee5d2fd5a52a7a8c184d7305f7241941aa1da4be20c41e299b1936d2bae0ae5d3f84b60ca76bd2296cfcf6bce6017a1672adfbd5a50a7cb7f8a7942c24279938c432420b9918e3ea7f800e5ab925a9a849adc9fa2d480cad2653456d4b1f08f3ef07d509c083b4a90a6bf95bf8dcf4007d3e82a3af5f2dc97e44405a38151e9bda4c0fa50447a0afb81cf01ea7d5b1a974f85dddfaaac9dd6c7f32be9785d514692d11d4136043d1fcb4ec543dc8ef2de99b0750016802e5627f34b501a0be4eb9ace774ee55a88432bbf5ac6ae988ddd8dd5f362533b73e27bf4502fa245fcc302e1400406ecf53743c0569142550962133d72dd8d5a1a96afb50b7815aa9f4666b52cf713894e0c2f7071054b463f5ada521e1fffc0a05521462061225a2b22a1fd4a4780b72b8c9caf1e9c2b235882dcc858b01118e6514b25a95aa5bfa9bb87af33c6d6f17e13dc80ad7b95188a0c3aaf4ab46d149053c47b9aa06eea083022cbca919eb59cc26fc39c53553e0dae855fa358749b7c134236f4c7f2022ebb904411e132d03e031c9dc5b8cec5bbb7f72a8b5a795323e5faadf2f6fceaa0fd94fc246510b9b23ce6cbc6114b98b0357c88a74a5ac739795e50a934b93afec7c9c20f6b62c99685f890cb9cc9a5bce5aba5827b16d8d49e8537a71da86fa519eeae8068662222ea688f69bd59be901859a9233dd743249618d0fc38ce00ce075c8c66db68bca5a8018186ec59ae7fd63f0db91bef29600fff6b50243292725d30f0c681f23dd6cbf8e1c746d50bdfd3eed54c600995224b39082573f67500271a23907455d52a91987d57a41d0d0c4f9ae649d476ae65df24e75cd87c100e720d5dfd40a2787b1869c4f40c4ba98bd26a216de00ad83e24027337364e0e2e8d9a88a2a5379a65d900f6ee301879066c28b1847f1f09f80b17687a1115059baeec246f67720d6ab21eed34aeb876439f1979be234f8ca0475768678527623b65eb3fea7027cc47e7fafe947c6a7b2ac4699e1051800783cf29f2bfefd53314d638c1f57cb7a6e064a8324e86fbc97cf9f4e27565e50dc121d1f41308d86852382749851497b75face3b1848bf149ee33a77f59f5302b23ac4812c25c631d3d24f9aee8b8d10e2b4e8718da6d495f1dad75566cb363f60ba951ce7e088a53dd9fd6a8716b65b9b23a909dbaa138112acef66a8258cacd728a323bd5d1c89256cd8d39e197af2a7dcfb1f1df0fc5729f00cea6d41293d67b76ab37432d6b1b37921ac337837db9c9c12c82884683cab3bbf7d9348a1da199cccabf9515f5a1b890ffcb55e0b122a33a170346c6f4eff499104cc34e5f8d35630b59fd3d7ae9700ed913bcbcb764c8cbc3d7731d9a543a6915b66979ac3534e7ba77899c2b5fcc05652d84a0aa3e43f1f73d678044347df882948598b421d16b3db19f7caf303206ea17c323805f63475bcc59f2b7fe2c1cf9b9aecb6bc0b98c690d77d52530d89acb776c10d26aecdd61f6923486ecc4e9c387b6301e625f2a7fa39ceefc8b321a0193a2e35feeea908e5dce38cf092279ef318e9c2d9a55a1b7d67e956b8c8f701fa10bdd9b7332870758f7f5367f06d917a58adc4ef6410ee04ae58ddc222b8d421283ecbd771b498dc296e6c249b9772e102f14495093194425ec7b21837e8fcec9e35ce8662d693fa00c9223fc3cddd39380a65588a48362f191b95da05eba7bf09b4ed5dcc7defd25886390e0246d4367cb66786a79c48d88699475a4959c1efd611410108c2bf1675069b16e2cab5dbc67d5dfab26163e9979c272efa8ba52749cd125620385b494a2103ad685548d10443ce8d9d5997f85338eaad0a30f60f4546743e3044930768774b7501a8151c5baf5fb62155dd6a54122cd1e1950ba05f68a629784c5ff7972f259493fe9d426a91c2ae3f92d464c5ac9da12d70f337fdf90b7d459302872f83f04cf4e66ee96809e1d6fe5e9c096faca5be851ce2ad2793b13b051acefa4b6a1ed3e87c5d915bf0046e73428551c8a1342bd09d5c05ee4d1aa3a2a2e813968737f758a1cb8a379977fb2d2523d9cae799315cf536b37affe9431bbe3b9360b33b52f83ae795300014f9bfa4c28df48b2b6ac396d4f7e0bc7680662c85c7d3722f877aa9c3d4f87bd1fda63254a2c239aad408524319b519cfd0b814656c234d2b3ad1122cbcba8f7878abc54deee202f1ff11e9c266258e47ad40f8991c6d0821b32986b92ce964d3220f77e3a828dcf8ddfa79d45dfb24183e286c0074327da28e71c6f51be6207a03bc9b29a767be77664370a0f8221a7af2e3d3d043a4f4c6cacc9171db39009c83f528af8d6dd42e77edb75b9d68cb9948ee140d7150bfb2a0cf48214c2912ce762ace290cf8fe5e11eb6db0f18101b2bad1d8e69c6050d2e518714e527951fef26832a0b6b764865b946e4d1b926234432286e2060934302cb793f33f78b9da40c6bae421f485103dd18df530ec531b2dd4974d5be8efc80385ded1663261ae122650a929918b3d5ebb01216156161303182df0d15a1441d1382b32db57995c37642acf485fb0597400903676314fb5d309b2965d9c52920e90a4eca7a0ca73d06f2d38a31e2b6f68d5d56cecec9f11afa4048133ef6236eb1fa38abfba94c179a3192a7818f3a37b5dc7f36119024e37e0a60ce41bc6b672c1d08c06ee8710b43c732b015aafd9ac06385fb9538a4f7c17d3181b589b4d5b992b8df19f338cd2fe0c785f8daa14a7bb803ae029aa11b1f21e88a6b46c28026b9a7e649a14f654cd31417203b0e4a911b5a20cd3db51a4283b69a3838f632ee22c059982e1002f32109ce1a42e7e3b288e54f468367d31b1ce3c37a6c9c6937683e74665f0fee5d703c3a6d3511e3fbf2b2c02ff658ac3bfc51a36e35dab02b3aac7c98d0736db3bbdf044adc89c0981ae67f90a00a158f9a8987ea6b1a4a5446025ce623d2dc93153cdbad05cca746a1e2f27558d58f2cdafa3325ea8a356df6345c1b96293b4280f5019f9f53253bef1aebc5080a2d7547baa965465ba0910e4731a5fc8cd096640966f42ee62fdb96ce2f77cbb6dcd6ef10b4d76be2796ce047c5168580fc1a50722008468c1d8ac0721adbd5a183b72e9d86f28819a9d1b318c06582cb6d3dd3c68cb1851a1a650c5fca51cbf0cbfe5a5c46c334f6e214817e412dc1d3d7c4a833b6625ea1a82f32083c385641e2ab126510c7d3edde36f6eb4865ab40ad573370bd47e10092526a7205971b05ec22a34fd693c4bd352b0a3eaa05af434d5f35db2829958b98877040b71affb7e1e670542f2731fa91bf7486cc4f91bd8a318e0f695ffe698d5ec53102ec8b94c9b8ec61168f2aeaa41aabf7e7caa98fb7f8675d7d274a51702810ece4f0aac8d644e7adc372e9f268721e042082cba93052ff80fc7338f401da2713547ac3de77f5c06b98376dd9f780051cd1f4c9dc3772eb566a381bf476ea35d6b8c458ac6962b95cbeea4e22df96746c463fe3bec899ff9ae5432681c3c8f600719b0e1de4f7d304b0c8d434fb42e7d3ef0d3572b403fb877244954605f0dc912e0e98843b79ec04552969775cd13e76b9bb4ca350eda11e08a1c8a9d3b3b2367ca493e896a44bb25aec9954bea1d4f57141772079c6c02bc3e34ae19d1a0e4cbc706c91491a10fd0d74c3e9b8f07ba8bf742db5c6755a843d6f99015cc453a887c20eb82518c1b1e108d398807590740a1ae782e696e06898f9a386e1e643d2394c0a1d81201c183ed6eeeda735f64e1b92982f05666b8c0d5d6785680bc05c28391254f3d7ceb0e203c25291f15671e93465cbe30782335920feb8c17884cf18d48197eb69ef60bbe00baf64d66abbd4964a56a3087409bc4c27fa468480e7ea21786349846c94171c0b7882ee8d1ceaeb3a0b9527244b5a488fdc04310b139d37864bdaa1c866dd6b941ebf9129e14928bdf67befc3509c8ff5977989bdbf46bed10582a4e55949d77a82ffda2f8cf690bd75b11ee9285c4740fd1cfa1b4c4f6dc00358818b562523473a62bc7501ca013ba3b5cd9dee65d719d213c56b383fe0957458292146ac2cf6f6035989f381041107620f138e071e89c7c4270dd50daab878602e6303d54d55903bab60f0d317c032d969bd5b491ecae605997aa0de839f209b4a68253cb640b8817d2e4ad6f8369cb1f571fa1807df2f5acd9286f3944566a5e9b39ef40c774e842d9375b2b0e733668f7828bb9b3d89a52c21fd81ddd627fb4187390be1733be84e322bed93f8d820343db8653bb8ebe898a56e26a33605b5e6bf01d3e5da2a33d9ccc39d4725182459785ecd3cdd9bf2e0fad62fa8b6528b4520c7b3958687bf556429ee1b6d841e065c2582a93cabaed28df31b7739212359051efdda0cbd521b6a1dad1d7c74dacde254a91511be282af60d2e474b3d9bd1197b234bd9969e7aa4e7d64f71b8cbf3c8a9e888cf9a568a7685a9c704becb88b31177645f8ba6dd38f27e50f6ae2137b5a17a92915489d86c1d45d351a538c88fc0d884566f4aeeff4b523db62353e9f9f128df15ccee3d3767cf8abb69c5e290ef296e2253e1a65db2ef371738e2404e58e95163a2f98f87faecdf7a49eafe4e84e7c13868af1bdc70139e32ff2df5154476208b530b7887eab064d35c578a65defa6df796c1c0d1b99513ca87fd4008b8ebc8403eae1c84f5841e281be1fbbbc5926125c25410a73fb0d54eed0cbc14f3a88d817f49edee045cb4fe803186e7e9517c88b912596a755e8995d288b8e961038c238e740a835340c149a79963724811c17b82b49534bd50935f3bf3f4977f3c06bb61a2f9700a832061be66b91b09add3348c78549fa01b2cf2dc549a52063b9dcc75b39793cc46b9884fba8a4ba2169714cb891c5622bdd02124767149851991c120d349987e4f1f631af58d0a63a9ceb760a164ba83063773a18f6e2e41a803d5250b2a83ba744018e5692f8729de840ce1fea7f5ab6aadb9ebbcae918efeb78e08c1924d4ff9246b3d4cc7502c21e82b495430ffc752f4e89d3eefd4be25d5752f2fb7a3b4db334bb215f22cce4a9b9bb0a332703f95a386b98a6908f025f865c34635819ce6cea497686df1f8624a93773ece91603d89de437b54e9a786285d9ae31d7290f2f6d2403fd38004fb2d3d967dc2929053a544370c9bd93cc0e1f7fb97f409c6e2f2286515448c2de514b5120db452a021addb8949c7d65b0c35e4d8ffdd697e9fe07f9a9054dbf9e8905e08efc8eccd9e82fdcf4a2c99934b7e566abd44277e50a9e58564f6ec05023bd2a2610c334565cfb88dde5f6e86000e9e32d793527d6a89f059a9529879af75a4266ad5d9359a7c56caa21bcafbefcecdecac94251d0f622f2ebbbcea57c695dda8b1a441faf127b96197d6b5d9e66a602e300bb84492bc008e82595c0ee26e46953e499215ba4af47621a952463a6f9da3c03e16292b8633f4ddc8a02d73e18fb884f29e91411b8ffc846c6c4e681e43119562ab4348fa8c89ef8c2816b2378ae582c9f086bb1fc42e098b198d9aabbce14edb11add2ce4661aee9a5fd4b05a843c94972f3f3a3af4226edeb0dae46cf98f4817c1b3d6bde29db6609673f8c696190eb31d07bd655fc1f94c4724250105b8662c558b9ecbe03024d85d6ed103c49c29f1ab68d132529013c169ad586bc84012c73a6cfbf8ca8e7e888303a06072cf5d106941165095ca5ba2e95df447c67fa62ded8aee7c50fa9ec1015efd0cc8df769295aedb00a190f102424d1f127951bc4ede1b717ca01f8155f14dd7d2f17774a2be40b371051b295fb024fc83d07a35d7830e8439d62582bd97dc1b8c29f2acd999b69fa9c40a18d304018e62141883e840dd717890d300ae8b0a1343fa88e348c47282abb4ea6f86b5d17ad9552a3059196d2c15239462d03be1233935b69cb66332bc253f4b3c848dd516c2616b6af00d9875e54abf7bae146dff8304fced1d6b175eaac82f52b3e0a8a84fa9c213ee8f44df7db55c808316fd5cd5db9a61f106300c6100c0314231af4d43bbbfb92c9cc1ebdb8b43706460a88e3a9c46d8cd2af1bdfbaebf44318f087e0304c42ed6608dac522607b2123a51336f80e58bb00f565b6615a54ca56f3161855aae414fd338e40fb3bc6fe0eb0bb63ecdf9d3504ebd58a43729f76e66f7baea6f3adfdf48ca5c6ced2c27f04186c9139de8a8ca4715a1f6b212e4a65268c253ab33578ee9d9101a6862a39464dde4340eb24431c35d28b50d9035bc3d19c097208887422e09cbdcc4534e4a7c4fa270cea09c841861a87104783211c0f923959947134c77782cf35d4bbb8c65bf84eca66145b2e12dc33789e1642d7e160803717680184ff596e10c396941a558099e2f8cd612586e75bc1d6a26b89f99edae87acc7ad45dec023c1399f30e7dbaa54a4a7f608977141f951d0fe020ee931a07e6e133cfade34a837eb60f40eb3d5e426b1ede2a72252cec3bb554302352d82b0c0ccab53255f747cbf499fab32264cf851a6ac33c849e903e5bb2bc2ed2f9546573aae4036556c50488d26562bb05dee46957d8bbee375b780344c664b3685db10b6dd3f4d772170279753d4ce70c1cf30e0249ed6217c5e54df2dcffa62295b8f0b35642121a0af5dbb0a157ed1f9d23e7707f2d54ed9f87823e2a92192bd3dba9b56729192876f03f1edaf10a67819f262c1aac4d595db5a55ca05697fe23b1bf5df8bce80af9f7e13a147cdca1cbf5a0dfab3ed3eb8ecc43acb49020759da6983ab7f1f7c27876a64cafb0a092703803761a504e1f851d75c382f33a7503d1c6cfefbfe7f37ecf0878a4843f5ff9dc0ccc6f3bf1d02e7c57cc8ca474487ee7dafec2f90398f4cb84e16746c1b63b1a14c31d144e5d0bd7df7571010e029c78dd0e1dfaa10ae9a44a5906ea10619ac841571a040fe253a292d51541336e2e4a167c72990f03566c2d249f02b36af3a351994b7b4473811a28ca34063b533155d6884c4a950ff010076700943943b8591d5b48917356f007734207574bac83fac63e5eb0751d31e4da25043ab0384f9282b6e9e97774212af4221a2750dffb611dea5d8293d5bcb4a93255f7c2a4887fd05cc791e7fdbfe3d3a772ee0ba50b80e15ecdec8d3a10ab05e6bae1a586a51a89c966b3f880ecf112d637adc1f7e256ff5529facf2b6abb086d6934d684bf50a2999196771af10d21d13d9629572dff6b0cebc5ac4aed5c0fe49fcce8fb0e64bd4aa43c3eb42877d4036395a662aeee1a062e14d33e0456e1feed7dbed165dfb9bba5fe8692fac8cba7b3acbe6753f2b52401a4ad4fd1f8b2158d5f9154a68c8ee04f9a9a63168d5ada4189b0e84430c07b273dd4d2bf53cd56d4a247f2a9a010c11554b8f91978ca351f3bd97eb30a77b9611f87a779ea51f7a20b8e32ba598b9c8c262f9441f90c3fc0b13e8b1a957a90e980be03b29bcc86eb117982db313df06edb4d7be75703406df600e5eab90c529819f7e741d7a83f0e5043a05dd964a3fc5b11c45c6d1a16e30744e89f91f85422635a793026081771e89b0a93306fdd8fba917b1cc80bc260c8082f66a12ac46dd397ee18b5a20423b3d7ab120be1fa8d967586e2a981b6a580f7c248804a74a0bd48580a87233e9abf1148db766f8d7930badb5eb6498af68fd0ddbb9d06fa2b694a15a3bb0b712a5ce9c189e01c721e312de65f0805bb2170611e93959a6a235d7c53a0224a99c2584967b01a98e4179927b381701393ecb801d13d3a69c46150b6298fa351161a882a3b25001e042f4d090d219ec87294c74c4e11d0a1bc00c2aecb50178e20305c898dfdccd7bdf4617179015502760f58ac59730eb2903e7d13e4c03cc0bd95fba209f2fc05d328fa0cddef0c87a0417b1b8df2d6c6e46c6ce3c0d739e2add3978ac8300d42c25b0fbddc297b2f41fb466ba55bb8063d74f80079deea1d7c07a34270495568dff5e65d70bc9d93931e0e9c740d7e32db9337e7fd7842b978e53c49dbcd964ea8f53839d7e03020f4d206c9699b612bd38c2483dfdecd49edfc80a40f43c6bf0b1cb49bacc45f26da422ff5d300a0bd3f10af37e67179f63170c9d2ea09921d4839331e38c66412bb331de97f2616a620eb54b985fe10903a955e679dc393087cacb8bdcf06609193d36a13ccee41f24480ed82c442c5ee36c9c0b96b18b67a4dbc8d2ab71c311c2f0171872c451cc74b1106315cd384556a0781b15fbe08844649df07d54b0774c3db6b23afb20273d9c3d62cd9eeb6c7c2de16ff39eda6a13eb6436c748a86ca957e95137fa27da7c4148789a06ca01139f684129eddbe1965dda24a5297c0713fa2eab3f7faa5a8cabbddd09ed3b35d1f4a883a5e06e20e588e280e9781a8439622463964bd59ea66e987a8377442441da7ac83ee46c405ea9ebd3d7dc869e59f0c38621aeb3fc544d2293c9e8f5f77e875b9bdaa86eb4e45f153b015f9e35e662b3f93e62eea0e53ee951735f2cc966ec81654affba59fbdf4be343cf16309e1696d150f4fde4fd5ca6226b0caedefab20af37cbbd9fa22de0c8ede809f0f48f3111cbb9cdec1364c26e26cb32994ea9e89cb98519e82d575cbd4d0d4c8c90497db4cc727c100649c226bae07be9299b0a1381fdbd5439277f426b3c5c1b40fb575e44223b7fc51b6a0ab9d6184c8432cc4e91a524f709ec4093e3069dcd7a36f96611596a3e2e1b5029c7aca3744ab4a66eff98c5160b6048e1c5488b1c34834c72b67cfdb782622d93b57ea34186eb332b5b10dc73c3127435e6ebc192fd071391380b9463903adf6603734e102d5fc90ae4388896af59809c07d9a15fa3bf148565bcdc5415e623803ff46e21b429db78c46776007d693a12d37e63e694b3160ea985cf11bd88f4bb15076d519e9950ac678cf0a2bfa7fdcb7d429600aeb8a7fd17b704d6d0af709bf60177095983b1e29e26ee9840a0bba7fdcb5d42d600ae744ff317f704d6d0af7c9bf60137095948b54bbbf32175ba07caed0dab871f046229be1295efbe36913ca354ea2f25dc7f0a96e13fe067b0b09d3f10487a001d4f4452ad01b56c2a3a3bc44adef4dbdd991656ba4eb7b2cd52a95af6c9477ee7581d3864f5f0c87f98980206934265d26ab5489ea86a59614ed08363f8df88d5f839f1b1a03632d2eed627e8d11285f02ebc2b5ab2dffdd5c3589aced1808b733e9b62873bd3471c7c50110622a11b4d95993ba946586916c219cdfb344027ca9374f3a9a5f4fff5dffdcffe8fffec7f12b17192fbbfb2e263e3e462112e1bdc38ff9288e564f7b44a98704dc95232c4cbc0151c911123c682f51e780e037181399e43af4cc2e25196bd411828c63f1d743ca971b83e0a430b7afed715ee22bc3a82c746374b9a75cb43bc0cfbf605daebfd756544efaec19214636495e86bd7a388b3a230a968cde49510f9a150f93f31664cac4cf21f9558a31ae521553ee075eb216ff547259bff88138a7c6003ea6f2fe19c276f1d19b8c2ca2e020c0b30d8f88956f15cc6d85c3769a5a488f74063ac730e7855b93965f01dac7c1231f3fb403c0883d57bd0c19463385b93d994a570f022628635b8f6dcd6bda32d97c05faaf13aca9428619a1f533db3c715071597645aea94f172a106c5d99fbaa810ac42b02bfd100d870c4bdd779993792ca304ffb08bd209ee86a82db7bda288e02dcceea202d86c20846c6bdd5ad0ccf7572cd03a10bfa7d60150d379dc815b29df51cbd9d03741cc1a2f50f6269876080f7a5516a4140a62483649c42aaf49cc4114059e00990a7680980c62aa371916b55bd22a01a815f0556c771a9cbe201f19cc3b643912214f5f1f78377a3170afa9f1478c313e24fbf9c6b653db658376ceffb4116f2b9680c69865adfbd4aaaafb57fe37ccb1a99bda00d710101997e2dfc63f252b6333cf618c22b76f288474370c7d7431d864fa265dd3f86ce5aee359692c079563785ec51f780ac469e6ab23a90dfab80e64153f884ec9eff0332bf7248cfd54652d8bef27d7489479b8bfb3d32f4ad54ce5db4cccceeaf30756d9e1ead7b94d3d425e99839c092140ccc6e408000ee800df3aeb7c9ee18d052f0589641c24415d37eba7b14e7ca8fa98445a69a8e7d7a31c52670c9cd28845a9415774b0e4409e0c60bdfac6ae58783a68c5aa5bc5c03feaa073ad8e2b4be3c5c8aec0ee60424ad1aec73b6f5bb6e719749413d5b4da015d3725631bd5652ccd0502be099fcd179f1e2c1faf331fac9b3eaa9ae55b64898ab05baf20da908062ec134251bfa8d84bd12156ed4c9e5a30480d6953d2a274c370687e538e9462b9e06f0205789831152623288ccf8318cc3cce282968f073bd89507da9ae1c0627479a4c81173b01bd2e3af03a5413e5e6795ebe02865c8bf8848e8eb41c22fca780f65e8285c29da53b548ea46778c43b96cb79e5bc6439741dc25d005902294220297c872413d990739a9bf92c503f28552b4ef73ac4dd64246382408a12408abac76e90b4a63be4bf3867fb2a072c5cccc274f24f4c1b5517b26828f0ca848e029d9d238b10a7f622c38605c9df5c00b268e00eff0f8584960985213e1850ac3d3107481bb3976f906d7a1c6329f982c6ca5e95fe2c4e5717d68b4b665105da9deefebede0ef84f84638279a6c97650eb3bd274c0c2777672f588f2fd20e5ed3124ebc47d986ef38513fb82a7e00bd9185511bc083417a53fb19260e5fea31d33471f08161cb227c3045ec506d02307fd2409140e7442a640f524dfa57801144f029f932febc25d411833c9c8071ecb0d5c4d01d6a702dc51a61bce19a36b396071ae70daa8d5b1ed090dc39f5387de99afad638e3d4b56cbe65a4e769bd889e601a86e04a697ddbdd6f3b34dd3b7029958f5a61facadadd1af1e3caa8f65739013e7d58a2dbb4d7a85d618b85d8907e8da202a076ed6d271471f8da167605cea96df935e69a348e966663a55d1022e760282a2cdb3aaaa3ddc1e6fc7abcf1dde08efed62be377b059ee4c5b13655a0c50ab468a5b19d9915f5c7956372dbfd087227f63f7374ceccf1cc49c96bd8bd7c91445d6d94e0489106ca2c212f0258802d4711fe02aed4816ecccfc73ce4e30b7bfb9a75954b2e944afa196e7237535815fb0defda8e10a4d05b27f7454fc547cba09f4218b801906b83100b29d352ea13dfa65282fcf2d793f6e05c4194d9040a76619c1b63ffa27881b4688024dbba35f7f842bf11e8aac91a9201a992826dce44ae048d0964e9326a64786066907e2364089c3983e0ccf3db013a16ac61ac6ea88e73fa0098f362803f1e21ca86e612087d9d7832207043958da4206dc8afa4bbbb2133ecab66c564a94d8ee201204316018a21008a890351de894885d37aea14fb99ec06be64d3e124f3837e0a8401f4487bcf752b055ac46cca9f9496f459ab29f18d1caf6c320a2c75d2e5054c146a133852582d9b1967975080e8cd35ca90c453631633e36756c44cd4cbcf1999174580663ec2477a49a94a706a71c5f72fdca408316034be78e67c991d85ccf6db09715baee3a983481db31a7c953dde41d459713c88cd058f22eb98c305cfebe4901b3111426f5c6d38c75247054da4698c8a9b396549db2ab7f65461fb2bfeb7ef1369129210965760f09684acc710c10f65021e5434073c41b641e6543f891e5fcb2226b05a5ade362c08bfe16a33f04079457e635fdbdbd7e1803add4abd146495f7ae3f98a71c06412d00ff811a86c1fa58df282dd2c0fa473df0e152eb21d851cd0179720bae593a8bdc410c47eb4943ef2e3ec0d8bf31176dff8ba79296a1996e8eaba40beede96291f5c0462938fe9f9c10326d82ae953fd25c689a1a76ecad183ff8799cfa7fdc35494d6f787099007f387b184f6a23c9522bfc2d27d2314f1bb7c025242b5f6b85923570660f7d302f6a3215c535bd1cf8b4ea193faf4f085390bd40753fd8d84b86920c11c5e32680bd9e5ec0c77455e55ee741bd70853d78748f9cefbc4778156da8cc8733e17f084f00c1c04269f1ce506a879d218508fce799d40e8c94145e51093c38632415a382527f59d7f3277af78b039b412b7aa07ee7c40b6f3b6538c21f8ba7a26d81502d9cfdaffabd2e6fca9482d42346eeff5e41408fef40f4d2abce8add9882441d764de564426e38f44e4efd5c0b600104d5ada3748f0a703eedab2aecde5bd5c2a0685ff266919a212bb1ba9d0021c60086e1b4e41332e10c0351d3330033330033300188191eced6fbbbbf8db8d246d2ec142801840c1c30586b22b397cdfbe1bd952a614d93349355f340eec8df879d204c96e3af0681341f4f82a314d19ce8d02efc426d77f6a01e8e1a06d9e8f203cbf211299eb8165f650740b0f33aa89670840e70a56bcfd9d228b478346cc6165f0e2577cc2fb8d99e14d3e27fe02caf897308adeef8c83c6850897cff2bb919fc198afb5298830cc6cc8d72a106b2840c30b4d42449cfcf7c6c793bca4b2de1e91cf2f6ee84c753dbc0df18b5e35e18d87c1b9906ff56073571a28e5132fdc5c4ca93457ff087a351f701f26167fabe7ce46809abf42e9b572d00f5f0fe0f224bcf0e45e82ac683a741e3d0456ac4e2f2eb6bcde044d4132639d3c0815a0b347ece8611b0bdc8d2d515f0b479896110998b3a00efd84b31b6f4ac0d21b2c2b3d2435b83206009cbc88d2cb03d289e1814fd6342098470f2640290f83058d430a00c4f302ff7c8d1d3c341357147ecca535d9cc4d5e5e05c44e90c198ae8f94c4ee840101780d01ba7ca0415f328f26759ac68b565a9906943e72e892fb058d191359a54fd02993bb11d07e921f20598c12a433b8d3f63386883da529fe65c27efd589c8d3c07c083e3080cf66a528179b228965e5986f87900fbde140315ee603d93cbc89ce41b4880e44e35c6e4146f7005c9aceaf18b2ce53911087a9089bd1004adb4d891a9a4783baf1408f2087615d22f629470b32f0a5c81a24e7e825605cdb72bfba53d7c4f2698c4c92c71fa5485dc3388a3448b9d8af5aa0254c85834a8f2005dfc78055e59be899e086d8481867fe1374abb58f224e33151a3113c91e24ae2c80aeaf2f4428be13393ff8274ca27a8301acd1cd6290122ca6c1426bc11299a345156134f1b5125eb2134c18b2f143d518ca40f15a77a3760750ee9cc4a66719674433766653d1f42bd21103d726ca6c8899b1ae46527085e0bc087bc071899ef322988be0b4494f92620f960462e1e69f9258b12a5e40373150aba1996e41224e65e86a1459905a434cf7cbdb8a364f1d1b6f4bd0b4e663fea49142753a48ec64447f95120a1f9510c02bc5f6ae5e732a47127a95ae4e111d5273151a759a5d8e30e7850d04a582171d78e856e4394c05b48f0e5376ed0794f4acf181e30c82bf26c9da27e10b59a5f97f216242f5e182b2cc82343fe25b0592781662a3f458b952391a0e72d1f333fb481c0279851e3c543131e2513e51e8a8d87e144c8f517184f044327e371f4c901f9e2f0c1d2d471540e5acf24e28b07613040176071c013a99d3c54820439f047a3a0075334b2d98214b90a89033900854e3aca999d1cf40373061638f559a2b5c712e9bf39c45586c1a484d34ab0493341fd78245c492f41dcf3bc84761e382ac5a77093470b4a44c2a97cc9e3ac98b4722082dca9d019e2a462fde9308248b8718aa7df9505c3eb1d48e1867e2cc97e58f4d22d0eb5793e6cd4fc5f1300d901aa0559c11a1e5e2b8e822006143fb290397e3c952c0faf1cd2e72864c1fde917960d652ae30dde04bca04fa41ecea9316d47f8ea8d503295610c18f52a521c330a0f4197c547d5c05e4d701475847c2d3fa79f89002c83ca55e61b4dfae39c8045ca66742d4f5486c87c2219c973800605f917abb6201a914a16102428bcd16581be6b6e11ae51b0e1d1c020a33b6de27b262a387fd087ca07c9b5cb07b93a1f09605107c880f6881cf0d032cc00711b7116bd4665e57d62e0f8912b3a1eef86211d2058abd7d241ef0ff45ae51f8658ca9120b97039012c651a84e4b88f0f71b0c5adbedf340c934159f2e27e05c44ed88cea650c083a014b8078491dd6f2a528007c4189f3e57c78f497502c9d809c243e278c51de3108830351302b332a02f216ab44f9506eece5b0993c47870a2fe8e5f0bfdec0f80b0ae0b85b865a6e67af703a2d087d1b8afd0842211fac52463fb044e3cb642a6a057014de00ac56ef71cba3252832114cd5b4f0ee0e03ee5644ff1e30bbbe0c103217b4019246d02582ff1814e167ed59f34676a9767128869f05b0f3921821ff50dc9dbb825b7d584a8c333220ebb785207a800ab8ff14cc45667324443b6a3306032c6d643eec90a740964137b285e36d2471f3074c37de07a9475a8cd4a867e58a811329f6f030a462b75149d43f712b7337b826fda217753ecc65bfd706c3e398101c8111cfdb1830267b0a84e62151b1f12bf4b4f80fb306ba4f33ff48a90819c871c0533092967344b2941720e172aa2189f38537eed7f850fb1a6aabbcc661c11f31104f55696dde469961f65283c157c8044b9bc1d2e833a58aa367d472f2646c24e8234b5c7c99b03b5f3677c28d90b9c8ada8c4f25c817dfc879a5cdf6c5db80251772eab8192dfa7eafc565e989f7262c2174281ba9d2ebc3e4d19e2446acf3058f40ceba297c3045fe92959b2fca5b2e259a41287cc7a3a0e13dcd9f1466598ef12ccd52330bba00b14c1e06c2e44711681503985d587d6f200ced71ca8b9913d3fa793c0958ff1bae53de86c793981bf3c069e634ea2caedbd1c52a069c0a1e17132197909741672100ba69c22d6a22c058399ac7705420663c1d689840ca79c0299f6a8e444c83286e0d1627b67fe24107b8655883c1632cdd7a490f25f40c4c86e4862f8a84ff1550e6c702ec3525ec5c3d1833552f5ad2e75fa1e4dac382803263e4d80f70b8e033e971df467a8597a097fc07c9cac0a19cc0838d912ab55b983865de7113c75b49e1a27c11c6606b427145b82017cadf846a18ed9141387c7d080c92bb500f3520084c86f6104bccf901a39de45c92d3129f3a992f4723bc10859162651ee22b823af3507b81e1455bc119c453e2a09a3ec36eabc54980d7d090c1fbfd2ac908160caf3b7202cc8187a29c9c20210861900ccfae085586761a02a376a30eae4a42a48060343d4f98099c07b7911e4b4923bdcc910378e6956d95f0203e21fc1d1f39440b1f216423d571e63683f4b96fc9ca7323ec057a707142bc9d795bdf80f7a229c1981cfc5bc59f346350e1c020c075ee204a06ca1c1dfb944b4e60bf5c911342259f02b78a10a52498b5f151e5bde12a050ae7420cf8f53babc10169ace436192d30571e5367e4471e1260f5a2ec4aa1f15a180e630e4802b2f45f005ba64bd04e11a9d00040c17a19722036033e1422451f224b4f8bc80277c3996a3254f638dca037b60e2cf4fa6fe08accda3d96939f50812b90cadc5e926ccc39b0183480f4201c8eda4599e125cd4f9880fa7cb7a90dd02860d7ee2c8e5c1f88efa7c82e29fe492a0ab4468e57f865cc868e0049f92b293c6d26b809bf122913db8057bb543e9434225f63b5c2e1a081c112e62d684ecab94ddffe1e5e2449bace71290e474216aee1b34211464ebd2e21710c9114cf3612a87126313741f50f1159974655e2794c773098756e54b924fa175c4ff7a40f04b66f668b2e1134fd168e7109de21c58e09a4e4580c87fe1e3c40b99c8fb5143485984fac54505e1a55b30aaf0bd8810ca5f6258c9bec34530cc8f4b5acb121ea7000a81ee86c80a5d86548c77220784be8129ed152872a033f098e46229608d44b3e1573c62f57c9eec9c0c9717ae200bf93f981c78ac41b61e1408c027e660e241785dc985e644790d6aeceb5a1b7b591fe064470d6efc8f3c68f2792a97a311f2c227bdd9f471309108c262c39f5205d139262ca1cffce8693f295e64c73396d1b841e609afa153c296e29e3e7d712622182f0a499c79102d3da021579cd20c288e5c376505a6b238865656721c509f3c10b2c19fca65c3dbe041b94d0e183fa2aac9cf9924f7476230b39d60aa1cd4a809fad3154219812c5867dd064cdacde42ab7411eb383bb40bd2587df330a46c8be8c209e50234ac23e57673cc6189cd58c38e4764774fdae1c213e25f0e08dbb7a380517247c2c15979f7484cb1fc965c921ed70fd8cab42de2702968c6b18e88550ea946979c8e16f4c80722669887e5585543e282c2ecb809545c735e7729ddd7f1f2aa717c0b2f173a498f81a5ae89cba6208fac598be8c23c39fbf7167548eb3d17a9d9503fa012e543e2079ebffa4917e936994a32422e5ba5668701bc7d3b3687933204cee0f4213e4aea908ee5627c5b730457cf2119fb6d4828acf120bf580f2406500c0da7ceb45a07f82e524af951cbc80579e5ecdad0bcf6052f614a3ac3c1335a8b69188969758a0e307a832bedf01281f2946dcdb8da0a05fdde1f0d30a9f7ec5a6e4050415bdd054222fb4e34e9615e2cdf3b88dc9016cbd79ba4986f2982c035c178f3847b1a38d6bba34e0d9c0e0f179ec6c9d5c1cd6a7b2904377ba5329ab3d6a0451d06dca75eca410a69dd9f41d4a68d119bc38702ec4594fc895a1a7e486cd6265491c8f05b84ceac9a137c4633b2f5fba1c88dffb64a62c705624a86402a82897db46b4184c1d1c44845ed9c62d4e3e3463a32180c0fb4c3e7e682a719bb2841a5fb29001243f836b421092860cbea9505a908ea3321da840891c6cb24163ba31c43f89f8f1ac82b87a4462767901563232fa0983ffbda9951d990171b9b55b5e85879b777afdf5d421e3cc3ecca774eacd7d11f8f31f2a2c720518e69e4ee011dff26992c7b9ecbe110536190e6dce2770d7642a4514e53b481b826b440219af2d457092204b7fc9cbab73815d3167899370ba2813c8e94a99f935b2303988bd1f19c60423fe619089bcab50a02f3033d37a6e77be6c8ba0cc8a459f93daf4e60b4c21f8b32ca9b7c152bc4ec69edfe132713411533cd59a06ff3760341027661ec59557c33d0c851e811c3261a73836df48b341c87aa1e12984753f6b48fc0f7c3e69037d6f0f80cdae8ca54e1faf44a3c8d739f2e4ffa461732f72a88b38022b8fc892c571f9d27b0b448ef88cb55d5ac49c3b0ee807320342d1e1463149349ecb7026373c3c8758b45c4fce2a4781894f3e83006e58a085903ff92013bc8504430ee4ca44de404ccb0fe672bd183c3a8f23e0cf337dd00716c3695c1b64fc21be3e0feb8712bf60c2caf3013ce51738a1f23616740e8c579ffb051373302d7e79221338bc8a0d20de87aa888b7901fb225e139e499da19e0117e887d00df96482402f66aec409f7c0869bda55273c01e6d78f51d9ff250b832f134bd5992608c02db56af62516e69362b8e45917bab8164e6dfe9241e4b43ab5f8e20b277f360a8e6e4177e5cd442af492342d7136a6683873c69f6ff18282ef7a72f62c30fdf15876771fabcd4cdfb171e42878adb92f4afb55dd90fb3d6a00e8075ad2826afeee1ff9768aed9d7d121370df37c3d4b316069cb0b2b8bd203e4c9a00ab17dfeebd964417fc107b6fde2918c759b9c2f4b1c284381b0cabbe4b8fbc878389463e7aa1e26cfc10d002ee68fab6039b0c02cee94538f86026c9f0d5c659b67349cd1bdd12685e4928fda14678da0e4ed6631ae60c64819fd7912424e3a153427b08264183e8cbf47eea5ee525b210f91db2120fe814ac2f71c38977418af9079b8657b9d474134352dd834df209d802f46b5186780b5b7a9cd082388fc2444cdb42f5c3db98043526988c03203235892922320411b12e1382c5b730232a68a6c55b0e4147488b68812777f0a4f78526e0d21266f9093af9f07e328348d3d213f70686a4ca418c5afed6a45f19909f9ceb752294b3c4a1f4bfd40c781f6d0c7e9379a4e31c09798ab52e79cdb2c6bbb868a55734d57e07cad21a286c781a6ca6f82b3bf45398d5c9a4f0047b487d5ab418107dbea94a8bbfa035df1b03a00db47fbcd26b44df002ce3634446b9c90511bea0165c9e012b942f4399723a42238f686f561ee3ebeef3727bde20bf1f454782ebe015ecadd069fa108a82f96b2291633f369c0f25b25ca392071fb127c677906015ec83050ba683057375b2b97bd2cfe01ac06f1b6c7cd33fe396c200f98794c1de4ba9374da2f9e7b526b9b90e8ce1960a38c8163ef57834a7c4329d593702040b160cc2afdd1e68be2103fc1073b22085b500bb5daf3c782a1f24b07bd00056a2106786563f14bc99861418d1a186812742423c28c0000159de970167760e6afda973906a0316af928052835b955e9d7627dd863a1ce78d9383bb23fdcc0dc49bb2a90abfb5c5b1f16d3635b27978dbb0016efbbd4c154e19153f7d39f8517bcd812dc07caf4c69fc4f999e6f58857894045f1ec9224a198018399f737eaddb249db59d6993e2eeed1ac3db886ed788aea9edadbe4c1776b45bd7851edaba6bbcbc73b4c23dc7caa5329b39640da0fed37b72f386c49bb9efee81368be836ae7eab117563d4c7e2acbd710081a217e0b461b3c60d1581027177237e664114fcb631e1f545b63803b4c212a8e513ea6f93097d0b8c824e54ec9462b00684e6644903822f5e9ce821c6694150905e32f030112c0a067d26109a2912dacd273609ba49a009163c7aa48974a4815eba514337153fd85a2ba067a43aebd26b8c97b22f65fa43973333a7564d795bfb53a39220c43a4353c308065f5ad8a40d945878487859602bb7eae3d7a2451a3326ce5c6549bdbafcd864268d0910a6321e359b26c9d051aa0e164fb90b2931773c6581e03667290fd17200472d1f68324239ca474728a42e9574009e31945b28f1550b01ad3422293ff92d8fa74032f056018264271fc08588cb5b464b181d6eded7992e84e23a797032c1cc8f027522cc9f2d62f24a79f944572cd8d1c12b8b983a56de8da20d320e29c2b2238493a7822407122a39ba1c2264e4ffece0991ad3fc94e0efc7eba02506e8c30e10be23f1d3915196d9c225d6df0af62b707a58c605cb27ac8c6f46c56ec58086412a1beeb40ced70b08baecf01173cd75424511894056d7627f73f72406d39278adea831e1645ea964de2c19ea55c15d4998bb0a14107049ab8b73e5254a7266daac0a4cbacb8812040e920f563a96ee7282b240f2b16868a08efb8321233c00eab22266c45dbf016c75c84db12c982a5596ce9c0583e48584af607526e541608394828dc156b02d4efc3812735f2871e42a58103fa7c28c54042c68652a98fa2bc91d5a459c11004fc154b0912061cb0a53a96429589b291d67862c5cf8207414acc09611a41049f221c48d2160bb1ec9993063bfbde1f1032c14933059ba020530c0670798a13d269655a2a8e912c90db035bad6e445521203b16206581434a1fe84d1734a4f142fc0e250bbfe242cd782fcb1020c071617479c4ce143618613602316f909a61737c84d861160139214f382ec8f154d7e001bbb73e78d1a36c102f5c4bf62d522a5ab0aa842b328b0bf2e956973b46196c70997f1179f4e6e5809408a678ce8f825a60a5f18487d262cc282f7ebc8a14f262a2ca8f4884f8b5f7c4614590a4509d1880f267ebda02387ec6561031d28207e6d881537a605810537a7e27e31108324d2a32c81b2d8c2f0cb33c5471a4d20329748822f5452b0b072e55268b96be0ab11a1332b1cec7ad1e850c0d71c2220063477e08154a3cc1716388e544c2101284319ecf4e5839597b4bf08b09a34f2e52bfdd2e726ca1b348beed8f275a2120c1d6a6f33b81471e50bc3134910de4811e20b84295f0200d198128bc887a9cc532f5cc1fee6f802e4c7d39da55e9eda2c812148c40511237777608e7a0d42b520920eb1a02e94bbfb843aee3ef4b3096e26b85943418040dfd450979b90c07d3075c06fdb5ea62abc8fdba816530f721d386c88d300f7e666164033d08002cf2781670ba105f487b7869ca1090c06cb8614380d39c7bc9d08caccb41132093c5b881d186b90a048a0d88d13877e40160bcbc24e84c909c7f4870463c14681617a020be81822d6417fa155162a30182c3058b6005360599c0628502c01803cfc10cc10b4a2c40099822c444e278101d002a069360119c2120808462478214c6e084207d020c2cc046abbb70cc231a19b404d265c7062207bd37f969d18c64e042f0c6f081708c7847b6505ca0a8825103b30bca17f11112ed072880415054ed83b9568de0407e75c5900a180f3359b2e71be284320ccc31a430643174103005e48a683a71eea302d36d6e0d4c319c301015e8c09180a87af8767dc99e1fc30059ac1103108c1368100dc0c11203c198499207286229296877a3060a936699a246991222652c61429757423427470db58b03254380b1036cc81e3ce45304896284188e2a6250b092ea132454a14284f9c3419da286061c651e0f7d62c599e2e593a744748101e3a70d8b87381e2048407080ef8e923240e9c2040f21c34705b08004281ea53060603960b978e1c080e08c89408d1a04079f0cc890265491e8f1b35ee5ca8880409d1a33f5a5274e21429d1a14080d0986972a4c82c59992e0502e4878e91c06d545127c04cd62953a1161deac3c7ce9a294fb6318f878e1c3554d47d985b13601609d2a22f5da618d9461e2b549ca8fbe0a74c4582c408511f3e76e6aca102c5c88e152a427c98eb10f7b63640c0e9c14e9902c56811a2437df8cc5943650a94274648e5edd03122439baf5e2d580400f0a98114274d6cd47023f3a44913f08d58300d2cff0af6cabcc2da9c6cf29a9ce6e1f29b76fb3632367d41a30720e406cf60b8402bf80427823f204660c0007d760628037066b6a04c015983310162c330e1300b85c1a07e171a199bd028702836143b018471188a69076578435ca485a909c7c2e4ceb2007f9609f3ce3f6da6059c9a8a70091402c843b1138399033938816334ca8c27060043721c83e08cf3852008058668614240917c8e9d2dd67205a2226241d2900fce09804062483e1768b6e5a389085eb8142814427861c44000ba231ac59024810ac46a9415282bd0e3848165183c862b10442c86428fcad9504c9b05f9ce254e86849d00840e3e808621a9c88859c064244c571600992c4842c0d0c3c962e790438440506decc41805a18ed3c2d003913d6350106113e5c0999b1133b50513438164cc6397226670019e4603fd61a880c390b1a107e1581800dd41050aed60ec04aec0b1a10a3319612918d49d18134b5126c308624f208213038731e11c0133e118595d1a0f34816361291e149b0406f559f085308463c10f420b22e8c8986215c25208c7860acc4c8849385d882128d080c2820316c22eb0884161c85858db508399860e2a5e0ccbcee182e09ce62056765640490cc586636786208b538ec4071968b4e00137b130557ba8fb90206cec80588721255c90c585a99d124e0942368116009c268217820fc4249c0d02bc69074402db32bc3e6ab653077da4f1a802c86de3c09124484e1c36669808010208f31db7aac743070e1b3466c878d162458a39390d6a142644404f448782c572956a848809690b140cc53c7294060d8cba11730e0c9491090df9e1f3464d1a3365c688f93243ad4286b62e5cf06404f365ab882316ac4079ae002a51d6a3880f63433553a47410dba4698d9a390f1c1014201b0b1b366090078f8e6dbc73b142c589bab9b8b7b5010200989d60a02c493240d4863f71e0b011528346070e090a9c9324d5a221220407b1a1700e123e74c860a9d2c447183060a2dcb910f1a142d9f7d2bcb2ae53160a2bab3a53e5514151cf2967ca98c42e9559ca9372a4ec27cfd17132dfb9f7121e42988360033305194136f0050410080ec802feec0490c98263592c2c2c0f87c17cbefe17fa983b07f7e1670f64b5ebbbf42f7bc0be31fc0004bca2670fccce1e04cf1c843a7360c9f5d0a38baea16a28ba8d2bdcae28bca2f18a7e68bee99b2655344563b745e1158d9b450775ca380873e6608a9e1e8a6cd77627ffd035340408542d04881d6d6d6d39ce1cd8d83d5698892a99ca153055a26e8c2e99670ee61c487063bbe314851d9cc6769f35a0d44010caa24717ddeacac2e8eb1edf34865db4386ba096baec31afb91a438840d398ddc62d2b50cf87caa19f7e86781f8a796350c00f3dc0070f3c800f833b3bb8b6723e18e6b0b0e0a9ff1d416ef3ec0fe31cf13efc10f400c2f7ff0f06e33259f6ffd739c5fff0f3bf16f6c89f7f980fc4f817fed0f39bb5e92c14aa8da17fe67c4af9f33f8ffdadfc621efc33ebfdbf97ff73d88ccc207f169ef95be57f617e188fe05fe7b042413d04f007feffb3876c204cff97cf2fccff59e77d3ec7c4e272d98b08fba0041de287399f6f7a2ce75f0bc0e17d9c6f6427f48beca7e7337f6ab533985f7bf0ca937acf7e7676e6ef7f7e7e581f962dfce760cefa5fc367f8b02fcb39676189af90f399df4db7912908a3f0660316e42c1fcc0afe7cfd9e5f6474ec4fcfabd051bd7fa21dadd03b094459bff0cfe19bbdd69273d89c7e39fd399f682e1353fbe0ffd0ed7c83e0f6794c189687ff739f73272d7cb17c6abf4fcbcc7fcdf66264f9c3869f49e407f94176a05dfb077861ce6f769ee9332bc839bff0cfe38b4978b260fee003e8c020ab189289e52f86950df3c3f8b07f9dfffc14ef207bc80d32591ee6e0ebcf9f7fee1d64b23c3c5f07f57f87d7aff6625ff6ff1ffe411ed3c30f3b3fffcffd0b0fe4027fe60f9eef2193bdce0f5eeb9ccf7cbe879c7f411e7bb10f3bf3ffcfbd833c36d47f869dffdf01fd0416c240e80bc1d72ff6678217139b23cbc1e0c147383f67611eee3f33e04696e23f7ffe7f361ffad2710879593760397a638c2a4937d04cb9aa91928233639428c743e3e432c64cda32d2481e638c9f2f31d0dc3b1863f664bd48e348b418f3a0568ab4819b87310932784801b4e930ca4c4207b4b1e730ea7f71d00b0686030accdbf47a3d60d35393318842e36240dd2c5c10832116043db40c028a60808b21b0c3f582531c3d8bb86bd7e12fdc3d889f25384be3d498b78daebab64c3300cfe277911aeeeff77d65643f06a86634a6cd35b5ad74e13c786d5b532b32e13ce3e65377526d8bdbf4df790dea21034f050a1526f250a89091678368f7c72efd6066bb2adb8cee47fccc809ebbbba122d0b84d956dc6d645a6af314313b9e3f48de1a08c5c799e6241b2d5bef214e82951ae197ed468ed5db110389a010b5283e101004157098703031c24bc41749443814e5f7be98aa6009156b44b3e502f100d30902189a64d615e409592e4d0d2f6e3b38b55102868341a8428f0f3480e2743a7a7b04a916eb98a109bca10c080dc2f1d6a8b58db15117fa7578dd8658b539a2caf5ab957c6407b101e169b9298e3889b58432220a1e50e72ffdb60c5c95a11f27f63737f6024d0b519097717a8fb5092bb2bca1fb830f2e0ad51ee5ab0047a003a12fe48c4b8573873d7aadcddf86eb034b9b3e99aa2c978fd4bc26bbb6a392320c5bdb9f950385ed1fdbac75d4453d4cfcf0884bddbc8aecce2093f1bc067b72e0a33ddd56fbf4b742737bb54ba2a1a33dd64bcfea1cd376e37ba4c95e8df6ed1146d57e42ea26e8c1a77bc54ee384e77e4f031b686614c4d0d080a640cc3980f14c580fa405114459db8bba373670392ce16d398a91c60e7e89c71a34d63ba5f36b5a33b1ba0e6ded6e67eeaecefcb953b3a7776c6e8acced9591947e7c6d0b9f8b859141dd38b93c8f545d1f8b8593d7827d5385586400b11c2ddd9309c19cfce4cb8a3f08ac6cc228ac22bda6e760e36b64cb7881e5d3466ba28e0365eb07096e02c81bbcf2591420f6ac113eecef4b3002fda77c771baccf0c6b06721de6e1630551e99c563bbba485d5c606b736b03e471680811e89a5abbd936387ed3e51fafe056a1888a4077b8e538328b7edcbde96766c0d6d49af152b9f3e0b5edc82ca2a9db0817b347375404faee64ecbac5a12050385e91abf1cf7d5fb7e8b6efc6dd633f33a3e08e5c8b1994cc766c0e8d53d4b8f9d4b54d97ee9ee62ed626b66133df78c36c7a74f70a1182b4ca12b8bb5bac3c5270f709ee2e21c2c7720f6fa808f47d99aa05740e4e3d7890f3d0c103070f1b3cc479d0e001cec39b07370f1ee4e4e43ac87190db201727a7410e4eee4dce4dce4307b90e1d3a70e8b0a1435c070d1de03abc7570ebe081831c870e1c3870d8c0218e83060e701cde38b871f0b0416e43870d1c366cd810b741c306b80d6f1bdc367888938beb10c7216e435c5c9c8638b8b8b738b7380f1ae43474d0c041c3060d711a346880d3f0a6c14d83073839b80e701ce036c0c5c1698083837b837383f3f026f7d6e18dc3db86b7b8370d6f706f6f6f6e6f1edce4dc3ab87170dbe016e7a6c10dceedcdcdcdade8b61a714037f86d5332db0cb1f2185ce3ee7d7e36e66e74951994cc76bfae7a26d6c75163cb748f281baab783830614035c0e3d7423dbf445773246db15dd2b8bc6305389cec5ed9a07b81ad337ef8de13ca5fb1e63d704b25dd9357df160f52526914cb7ad8b5d17c918d9ee16cd78a9ac7377343665c66a6adcb1ba978075f18a5c4dc8c1bd6d38a543ae74ae8ba7be4477474ff54d8d2b9bfab52ad49728e7ee6d674357620ec4cadcd7d4debd1ed7b8dd4615b1baf78a776adc7d879f8579712504773f1fb8bb712b5ff7c8a64ad4848a3b109ec19d879f0d5da96fbaa1cd439b1b9b7175d962b8755531f71b7e361ce21ebf6e31757707eedec0dd19b8fb027757e17e7a382f088bb8bb02777f4fe004dc0001771fe067ee1ec0dd01b8bbd95b1b87b6373678c7cd5ffa1b71f71c7e16f4b58daeba8d1bdadcd8e436c0d985ff297f48fe6cdc5dcfcf823ae0b7adb8b2ee58ce4e53afbb846b736b7b63332a5738af08b7f952f6cf9eb3f38e1c774fe3d408c76bd198eee4bb8dafbbe5ecb4e29e8c8deb9f6ff708ee7ef4b393cc396c804b93b05b9b86b73637367827e13499d7aeae1aafc50cc73737b70d6f69b1080767ecf076e4c0e6ae6df08ed3576d6bbe31bc22f79bc145bea91a08e8a63579bcb24b18d58b53bd017ea6ddb8b329023fd33fdcbd809fe9a4877837dcae67ba0507773fe0671a75f776b3280874175123cb749330ba86c2ab1a0ab88ded8a6e3f57b9dfbc65fa07bb3bea9e8deedefa5916e30ebf6db1f25846e6affbbe1b6d53d4b8db9719ef376eb772b34be58ac66bfac628b25de33855beee114dc7dc5d2c4c8c3f19775ffad9db81df36333f7b2cee6ec0cf7e881b37bba64714de71b388a247176ddd354ed1e6eb2ab7d2dde1dc9fe9eeae9fb92f87df36b56dc242777f77f7cd64533f54ef7debf4d036455b17d55b535ba6ef5fcb9c9b8b5926bc63e8a1c6cdb2a9fabaef5b1733dd66dac2dd83ee79cedd5f3ff304ee2ec0cf9c89ffb9ecf1dd7e2eda8c57355da62afcb6a9db2fef2f555d964d3334dff42dae6c06f5853314573686996f86e2ca6660b648364066bbb26ced9fdbf2b54cb6380e791ce400d9365b4c633803dcae6952655d37ceb064c630f36dcbe0aead1bb76986ad749319b4bb67773fddbdccdd5f0d9421321714184874ad464a1719990b23485c04faca4a94185182244c77c8285dd6484e234adef48d7814c999f6a66f8459df7f0d32be207aa2695ec782cc331a19191b6684c8907cde217331e4fff91e1da6f569a2d8799e39889e1a0d0b43cfd77b1acd68f0fc474fadcffca818fae70f3f8dfe2086e9b01fc3b0b4583844359f308d4f886634180ccbe8f7e9205adf0fe299d1fca81c32df0b43c5d0214a462686ba3e51619a5f4685275a5f02229f1075e2585adf0fa2189ad1fa12108569b14ef1c430d4c5d2f64ef4d3fa7e10331ad469c2b43e4de473d4897e46cc995082339417886061bac38f1f4132aad1208f9ee818fac38812942e88274483681031340c4dfb8104a50ba6fd08229616448569418468589a12944ea3c3b420c2b4609a461d0d22fcf6cca78b236773642e21ec51a7232b43a3239251ba1ca8cbca7259f632611a83134354c8374c4bd3cca8302d4d53a323e8c2d08c9c68a0461fcdb90c4d0ccd662fc4d013cdc809840c7db132f4141218888664049d46c7d08ce8b23222da8819aa04a52343c3d08c046af4d38c1421a2c9d202353a966644094af7281294ae0c75331c24b2195a201a110d43e36934bfc82889ace4953c9d184a866604c908ba3154c9d391a16759591a10322361a818ea66329cae2ced5120636846cff45a10c99bbe114421fa7476bdcefa3c185198c697a699d134cd133d7b91d1376300e344338aa7d1277bb31727ea662f348a0a8b90b92872965132329760070c4450a8c78c05b57fb26276aafa34848030a86111100a85e7799ea784b3f33ccf132d103ccfce0a1cd0742604d5c84c01d15579a273be09559d3ca9e2a46a0b516b14f5b9274a283b0bb30b0b4b2b90d71e55e5090a59023b5b674e2c903bb8a00205123820baaa4eb38841a2abeae48ab8574073a925c14f0ca870ef24e693288686690c6f83b8c6418d9851b2b47f9f783210433b897b27918170c8202c4ced51372764fffe85fc14b2e35ec84d212f46c83c7b79f7cfa867d40f2984c8428d98d1fc5ed40ca9223aa942ba887b61851c11c30e393ae48648a6878f6a325db600cde810cd274a360c9e39ac6c889e68d08513f3898c0ed1209a998ab57f3516593ff93227d3659f3644134383c260103d83419dd18628d930880aef862791c119d441d483a81f520851880af984690c846810552306d3d4742232971016867e58d95091190b8d86e9b0b03054c507cb82992814a22f447f3844c324bd2541ff662cde5750c58ffdff58da9bb1d0e8702814a241211af444c893238d0e0b39210ed1303843348c902b6210150a182040002aa10101b3132f880cdd3b8941d4d3f68646deec05d14c7666c6e285c200662a82282a96b637443f1349e8b20412dc40a4c0d363018d48f1a226134f94ac40362b73542616c62744836268467d0f65f1847c11353a4487e8ab0843874315c2b4b4b0530b02a06490294b64bf779e6756fb343f21c80f319021a2cb21ba20479ec687de391a64699023e2203f83f00c92e3a63c53dbc39020e9688644cc821ad92166a2a779d823e26741445c115dd01057828604220e1243745283a410f70210357a81e8a4049922a227319b054f5d96d6f783b84746bc1b060b16ec560a2766f40f204962881e480ad10189223a1a0c04480891cc7dceef2432d0750c749aa38f26441d8dc513dfd1f8144274d4edec8469ee69aed1573be3d32e883a8a213e856846ddee518d0a85417d6aadd33010ddc3ee1ecd680e7ef00cd91f51594ccd85598c2c8dc1a791a19fb34687646ac4333e19f43d5128267677a262697e4f3c19b0c81d24e4b1d79d86288a2173d0432183e17098f3709885617c43d4aed3d9de490cfa9c70af8cd817204cec6e880a874f0ca224f2232b448d6a3f46884234688be87848dd9172c889215d443eb688734427c547cf5efc448d62108a890d51e130ed249e64413431742844c750b1203a1406cbc284271aa6c9b4df49ec7b594433bb202a4c63f0694194010b35d7e849e48cef5121832083a0106d8896d58476b0cec218a8c84421ea87144274e269a6e25121ca200c558b9ff8690cc2d258a8a90dd33287609abf42748fc1a705830c84e80b83420ccee601881fd6868c0c03065344212a442d119de8444344b130744f07c7c4502d9676d691bd7d01887e277188c627f1d45a6b744ceb3d54685667268be8cea69dad6cef4419b0502386ed6554a36362a858da99e6f70cc2d286e89e98189a5dac3367f0a8a3fea81065f0a8da6ba1d6692cd4881ad5696a18b29aa36918ca3ed8f7b250068f0620c3c0e044f7189c692cd4886ac493e82889dcc708d1ec44751a834f63a146d41882101f1d0ef986e887a50df9f682b01062463f8d010b35e2a3ffc4a05a4ec350b7840c151b0a856668183a34cb6a27c2dccb50066662e818fa688e9a89a1daecee4487697eafd35808510662681803b134166ac4b034350c69677cd404386177e98c01ca409795913128134319f89d4447fb02103d0d0deb7b22599a9fa73d1ad469271e15a224f433709481a7b150eb7b2286acf6285ff074b2cf857c1103a04194efd1d3ac2f00dadd896ad4159ad668dfa3f9bd90f37f8d1b4fc48c92f9216af4d4e386985132527902f986a88a33229c513294cc3f085980bd201a9f690c5468940cd5697c697c646846db23435d78aa2043334a76be595f00228cfa9d4e3bc95034bf2766f4240b1086927d364341268632f03b898ff605203e3a364cf37b22599af67ba2a78d910570154354a3f113857c198dbfeffb9e98c7fe64f34174e885384485413d4e8861a810d5ae5dbb76062cd488c4b00576a2cefa9e9851ad4fa2e67086b9507216444fa1988a3562308d4f880e85774115bf77ea8c9ea856631144739adf1383e81a31a79d61a8d04c9bf5bddffb3df151be4f0b8b9fa883a6c8fcdd9c39a93cbed0334b70d4eed5d95e107df459f83d51a70d220be06ca8013297b0179443d49ac2449da94a200bcdbad402dd94c8a5692964a716a2d6a79c2cc63b0c85e85e50cd29271b413312860e83675028148ea14214c907bab1b437596b19a6654d925c125193de7b497b7d6810fd40dda16847925e73e29b609adf9098514d4a444951a54596183bbad404ea35d77794e83527be4bd24388590e19a43027cb653aa3b1ec2465f4bfd1934921065132544c4d809b023934416b8ade3c101d150af7323a1c0a83a7ce39f70186e521d950183c757e9f7312d989e7f00ca2380b2492892243d3a2049ca11ec00cf532d4c5c6a4ac0551312541544c8a9896202a2626888aa909a2627282a8989e202a2628b88103070e1b08444083065004697b727068616af49a96363436340c6817d02ca0ada1b95e73a04b77d080065102a898a20712d2f62a4448db43d1d2f612a0697b6763639a0dc5805eb0e096214d8b1a6a0a53a33ba8a141344c575b1a5bda1986b40b69a885b4b507432d03d2340db5843948db0b3b6b90b67796005d90b687aa2948db537373939373735353238669d2e46161616706d2f6ce122440d5f6d4e4fe8904d006a0a5a1ed8905ee85e9d9135b440ca27114285058a3806a40b33061c204740db59086648c6e82120e7414502d4a77d0616767095054cd4d4c54a1b43d2f4488d020a20f22e6b43d1244ad45cca926cb11ea190a0a531444b5a43431256b6b6b6be81a1a44c794f89c0b7a7b7b432da06f694a38d0c1a17b62bae0e0e07c9d817417d2908cd1c1a17b6381162c58b060c182050be89e98940b172e5cb870e1c205744f4c0b060c183060c0800103ba2726868d8d8d8d8d8d8d0ddd1353d3d6d6d6d6d6d6d686ee89c9c9902143860c1932a048e4e832a07b627a884137373737d4cd0d452247e786ee890992b56ad4a64944ba3db1457b628ae0d2c2d4908deda1c23c26e52d4d0e3188baa10d33a00d15e9b520da863614a4d782281bda508f5e0ba218d08672866af45a10b580365c431b6ad16b41944c4c17313816480c8e49210bf40e16d0b5a03ed7d08c60402fa016d00fc21e6c6d6d6d2dcd08124dc786aea1483ed0b1a5bd39510c6ba805340b162ca419c1805a4091c8d1614853c2816e2d6da849af05d10b16d6d6d6d686a28841d47d2e6d4c89b305518d2e38c568d93bf74e216a8478a2f9c51aea7a6da88a18141588e6bda116a2fb229e5a3287b0a1149f1b6a411ba6f5799f90c08c9630732644c5d03778e75ada8f37c234bf21718852408343d46ed7d90f21fade2986027aaaa17b413915d0bda01e0ac13da11262906c2cecb530a34141bac36b0aea220683c1bda0286230a889180c4a2206838af4dea98b18dc0b0612837b4125c4e05e500a31b817d402612fa8266bd21db418bd1644e5dcd4d00444ba6002344d01d2341148db430da4694290a6206b2206d5d04e517a2d8856d06210a4ed694dc4a0012d04b496b43d142d6def2c8852401b93a4d782e804b4ac457738c5e8354dbac39814bd164483681a84b407690ed2d0060c162848db934b90b627e776206dcf2d6d4fad40da9e1a81b43d74ef0c80a6b2344dc4207a8a394591a589194b0b3bc57c9a182d46788a91db3bc5646755c2ccd913f7c6a41083e89814dda16827888e49d21d9e4e8b163162d4a89123478f1e41828a7614e9350f8e692206d14062d6f9610e4477b66c37696fa88528448342542ced2cab054f542844cb0a640ec2b460293b9d1ee16a75c5d32bbabd215a81ac1644c3ec229d85119db857460c02124f344ca8e934f18cb8b7246632290384a0f904133b27764aec9ad831b15b1220889625d03a98b617760ebf4c101a37556aa2504d092479f6ecd9b36797d31de4dc5e4ed0d99e9c9c0b929393db939b7526489650119996d36e5a8d4866f74334a7cb19ede984a8d89fd96ed019aab5d65aeb3443b405adb316b46264ba6176bd7602ca2859fe1720e05f80807f0102fe05081826c81acd679adda0b3cf7d0200302b231b133b0b0d85c13377fa54101e3868c060818204080e1830155685c000016701009895918d89850d85c153e705a6f2d40156e7551d557534d5b154c7511d3f75ecd47953474d8349677b0dc6f48c0dd05a743adbf358c48c6a349fd99139db43511445d17c8b6847e7cc513b3a677b6ac4f70399ea68a923a54e201d5d7464d9f9b1eb63170890dd9fb23d094456023118466a8e215272247118a2271d4a660d848bc2b0c934690aae3197da42ad5a83484b1a3f59b49550c45300dd69472581d682068889d92913132345c74d985d95b039b68865442745474c77ea1c490bc3e3125244b7087be0656e00df5134f37364229d72a12ae4141eea32a33871be4718529a102d33ad8493f06cb59ce4086fd264471fc863a9c5e5253ace7ca0418f32af403abf05ced5d76860c2937216fc954c545cb8bc90f78869730b295ee42c68cb9b9961c84e46247a155cfedc75c1f81f92e2d7f142e6324ef8c90334d4d109f0d07343031bffe1c2945cab8a5ce645bc9089cc50f42c344cd0cd5a57f484445b4e3d284278a112b932a553043cc02305d94f020c8f41f590699499e17052047840a07cfd1400353e44209913fa401da33de02d12f9fa38632fdc2e0c8a9f9063e45a7ee5f81a8a16f805bc1cfa801be17dad4a1354a389832ea650ce0c6556e41281289cb0d4b0e5212090a71255a6722b4d688439b40c679024ee3f2860e52a884fb94a22e323e744bd7a43effdc628d20926ecb94e1428db7843bd5f8458fa4a994e4e6b45ea62767a1e53af351a0ca9568e818384879279f8235aa495bf28eb88750c7ae2e2e04f75f13174f067dc0619a1f0dd2c722e9fe8b47250d22320bd68bc3bbffe429c37c70bf2e5dfbad865232afade4df183a3629bf56b6eb47824b7cc7ed70c057a13a3215fa986a317f2f67eec85cd197cf5fae7844377529abda217401c8b13345e6b2c4e03860af4a5234d7940718e469261a2a3dc82f02a641dd13b80d1c880778a38a03d675ee9d726988bc7ad4f6423ce5bdaa3fe095e8cbf6417c3e94c80350d3177decb411c1d4a8fddf761d3d3ab860d4e89d4183f2f417229748a78da9f049e26d2deb75590f03214b5c9000ec5703078bd74ae323a0f474b9760e0dc8fdc8b0971c840e5a3e5e0b82730370f5e0c0f1f5a84a4367be14324a36d508ea64d4366126bc203eb1ba301fc8af571765679728eccbb79a2e85db588e378c6ecbd941f387c559b25fe2570eff334d4fdf16c90bb05403e2b84d2b78897d9f8547ead12db07004323fb7d930cc68f4066b325933684648f2eb24394aea5abd71f71c123f73a3428b7994240e3a181e580544f3fe10895e793a6e7660e6df9354dd0578190fb1d86daf78227942f3a02fb58180a1e6392925c470ad3d92c09fe1283305eaa459897b140863b2a45434b0140e303e468f32e4c60cf32e1b4a1b84a6f434ff24d5db895172d239d6ffa6c7828bcf20cd1fcbc7834cb337a49ac01afe1d52d5de7d4e3b198457d6b80aeef2560518e2540cacbc15a579165c943a852e0807fa17caccd9ba732083c805b169e420be347c9897504466d1e52a953fe044a2d371351216beae44717a893eb3ca377218fb9a2e75c1ea29113ddc072ce29beee6a3925e8f76942f681c9c749e7c8cfc3de54e434366af92620aaf21e1216be4aab104e06c09b6704ac859b596af83b65ad9c4d4ad2a12875e434b3e0fe8e2107ff4268f4796ea8a7fac0ca97b82c9e0d45a33f2b14df80188c1782e84490c6ae3139c825373803557b50b66e9d568040ca53c67605c92834df5199daa9e538c7952252e8021bb8784e51c40b58e8fbbc5a571e70569d07a75cf2287a09fe0baa5877b871e72f8824f92cc9123ea4d7885f910b80ff39429437507a7d54073c7d4517a07f802345b7728425b3301a3ad702cbb2f6a0e6347ffe7b2d22157cc045d247903023ef5a64f41d92520959368cfe852ff4a64e65dccc4d8fbf5950e1714840fe095df7022264ca19d22bde68c38c9c24d69c275af8a2915938788538aebe049b968f15c1c9e3fd71f82c329cf8924d1d2f02c7c32d9881ca5d2ef112aa0214a3e7ba54d15c8e447a2a92d69c6668f87d172f2d749f3a44f208114e84e71377600956fc51d1d27f8d0eadc68df9880cc5d1844cfcfd322c8c234913ccf74611c986603baec24018771547cb53ca0ba645b900e181a66438151eb75eed40b08f63e5c15d6048fb401984b8943a42e705381ff4983223ef03cd9c2c02849eb345a8b6ecc288e664f4e1884e9b944f2487cc7ec4a7fa0a6934f8a7b887cb9150c02fe0a8a5f13caa7331937638164434fc4d85dcdb5922e2af66e0c81decf47da50f7ffa6f9788dff528cd4940ecbd5e5bb097d54ce008eac4653b35bff2214fc9f308d2cd7d71d0f42e906cc96459bc9c8a5e8cf9574198dc04034caf913dc8978610f1038ee4e4398d0e382dfdf94c8858be96ccf483b2bcfa3583a068228bd4782c374cf25971d30b512be52f032afd223c57b9065a2d7f3589ed755812e3b19e97e6c526c17f8da090513dc8f20af4569c44fc0665343945ba56734286056bd07a82d8ec0148a2b356eb2bfb5a7440d3d134f66ed8d0e55968f287e8d37452e8fab0b80c7934a8e279b96ad3f00748be21045b3ec3a3d16fc87be225fcf8b98415bdb497557a1c069f87cc69f8c30dd549901bd481700dba907f05b0c1e76a72e6d335b8f21e4e58fe4e2a036f2b0d9b53120443b94876491f11a127873af22608298ccdff4d0af7ab13ec8537e2f41b16badc05af606653e07d1da3f2f219a93bcfa594934ff125e9a91cee0771d0f275fc82f95226157f679228fd2150844fb56487ce90e585f771d3e8bda8c0f1a5406009ca4d70f28ba420c97564f47845a1a6086ba170fa38a4c8f961439e87452becc450f7c2111839938d14fb5e8d8f0f6d0ac91057ab12e68d10299dcda1209f899d3fec8b95cbf678f03231aa34aa1e99fe41f1c23b90f3e3ed6c49d3588085722e6d063c47ab098fa643164f2205d32b3a932b0381e1249b6854450f4142c0571777a72605a9dc91843d5a0853d18bfd690a95f4a1e07915a42705c783fbd1144cd36ad3de6b0299771061e84af4c6b803435c9e4859997c25c8e6850089e0361034f8e65ca8572563cffb9d6dc970bcc8f03dcd2e4e0b8f170f25a9801ea2a9927f509973ce182323e37950e3f4c043cb67f86248db38109663f468128455a6ce2b61fd383face17945474264108874b825533abe1396078ec6d3b4ad60561c121f29d94c02306f83e8f508117b4e6454a9afe183e96f825a7cde29265e2896016711a794afa56dd1a612b5711894b64ea0e625e7b140f1606455d277d2daf41d487239188c3b4322ad3ecfc792d2aee0a0c92f5c2cb94e560ea723f5663dba25ee676a8eb69b11e1d57490780b413a7ec608170d8692050f145741b302f2e305c4189055bcb1fc565c486fc0d2c59f9c5a1ec88b3e574228d0bf5292e5dd48d90ec7055e9e74623f2d2b2e5e129b2b7fe465d7e339b0446b31f049d71065450f1960487340a1d41ff04c781080ecb8003e29be00c4890f23a0d7df2072e5753ef07394d0d15c1c1578b763ac8771ac3c82ac558ee8efd2a34ab246531ac2fc5576863c8f900a7fe60a069772e0ca778a3ba0bda45d321035bbfe8e8214c76488424e13accd99927011aab1dc7e0672cc59c0c7eb72646004ff009cf1ba4eb332a950a8dccf1738994e941b0f545244cb85d1792a96cd5935f5bcd1c7983c0493a33745ea95263521863f29b1fe982152de97d0c8c77e4c77b8ce3b609378aa150e32ae0a9e293972342ccbe32af3003541771881e039b880a5cf84e995d398080a0f69a9f14bb600392145e9f441305532dfa12a9e624b16479024ced3f4cae27d925dfe949b0b9f044ef44149beb21f27055c890902b94ead0eef638114d7b2e6ed679408a4f908eb9e4728453f26d49fdf89004cd740dfe44d77ce7e4aa44adf4591951330d4939ccc24655801809bd723638acef5f6e7d1dcaaf1730075f2b9f6d5734cc472074fd232d92e389e56e5841e3387e1fb0c30f042862479422f50e9401c1b5c0fdc0addcb1389078201c41709c0cbfd9cf1a23dbd168f67b17d003d4cc720c283a7ecab57b4e67a506cc63392f020739a3223bbd0bb2414a0b6406b38034cffa852c643e0c973408308bca01f58b41c46aefc4dd68f6720008c6b500ba359046a722e38dc7cdbd184fb14ba47a446c9efd094c65708213e225062fee64828ff1b44fe851920dfd5a756b6f407edebb02af5a94424bf8da94e42e2113b0f409828a8eac2aac9e6f6e4431aac3ca137bd6085257b794b864e41008f70bdca684f036bd2fa2b020c64440d4efc0d1b01b229057dfecfa7a50ea663fc1b990ed94d1aa3afe361560e6687c5bb79e3dc892fcd856c297aa42e7d9e3e80e5ac9874f04735ceb8821360b4df16318d0aee44dec361e5d450a4f33dfe2e9c464c54d24c16a8fa23626fc6f3f6e754877d5e4019c09c89d027a7e483a86505f3f54d44632eab75f3be709cd0635c021e8ce3923d7901e62d08a4c97d4520ce064df0b4b490f9f8dda243a919e56698af1c01592aff62838f0e0108457e038382d046ab0fcfac5335060745f2d9214e279a4f019e8499bc3f6b32f44119589d6fa044793c6d3c650d5bf63c1f336b1945aa49ae258c1e6f0182f97df4003c1998efcb444af464da12f9a72f6ab2994d9b1c958057b950a2516fab415a4ee58af20d6a539c071b186e9444e9e33095f85e680c34071b907e891d4f420f4a2ce93b563c0575195ffa83b1c709c72afa37401c68524730bd8d4043dee80f94f7122b88bf8140c001350c3decd59bdf956ee939713d5c0d445dbe2265cda918d368478a9a0f490a9b1f1297e77826257132217f1e59474fe7bad2e7333cb1e50d9e683d125526f402127b6e4a9b11c230d0745cad0761085d989c50b039c31052f264341b0c043db89df0567e6959c70f4cee64cc974665a7ebaf30d3dc0e75f8190f134e234b835fb3c19dcc8b2e2fcbee8abed343c0c3e05ab31c96d6099952e20234f47d9bcf94d3d6b879640b38ff4591d27d5010339460a3d0bfc9629271ed0090636db0151c63c8508ee4c5ca89aea8e57beeeace394c3b2fe98416c7d365c691b7d8325c25440ee5950ffd498d85b722e641534ab5ba06453c322091321f326a8c1b2a02c2312169a3ffa8d07014adc6b49658797ea84ad9033ac3e178bec0c84d43097e0e1736b7e4a2457eb399bc4711f24765a813ac42e697ff00176801a67a643c486c821ef2a26f200a4d8e73ed7034b8c864242a38bf04d3d668530a7cce41a7cd2c55fcdf0e2e0e8a9524cfa45aaf615cff031857aff724c21742c4a7451d38f4b05a14f51b466a5fe094a7777597c223f00acc909ea4f836bed068364cb4bc4095a86f5267c01ff94260c801c28fcf82f776be38ca7908001a7c9f394cd75324674b564cfd9c499b1cc41d229f6acca02ca3c0143fd027d442583817d19e1a8d882b2f12ed9e1412201e4c754463c145c0236d0739415ceab76870e055fad87a4b6a1b0d2568e1e73c12a501e57d793823d8341e1266f91598384817a7e77e732e099dc009fc526b28b7a180c0415df9e479988878224c351e5191472ec9ccf08389e9f126a28afa840e5defb058643705961ed7125f19001f018e47c850afd901c285ec709d7869d3a3340e7c171cc94cc0dd82760e76656584293ad5afeda80081ca4488fec102c5d14237ae7e569c98d38fe8fe018804ad28879ee379e2f535d21afefe52e06ee094703367913c25438fa79333f502c6147a28ed9dd6688a5c0e5dafc775e583df8db1a01d4420e09f8996a73ae13fb324bb97b1b6ef4545efb79b39f914e1421f0286fcede88bd645a88bde63f9ebe812f0a02244d28094963c5c9c071a5421373fc56283d740f2cb6955e1f2208275f904733865b739296f877df32f51881c05022ad98d8e496fe644856e8b7ffc1e301a749008c3c5da227cd89f394ff2c94d53ca05e71056129db1becbd3112b70deb5eae28cfa92e791512c6d8a9080e0ac4e7a9ec3ada0f759217c2ba888f8143c23deea8d48f641a0823361ffbcd7294d0f62f9e6e930d50f59e3e733816aff080c3b6d65a3f15961785e9788398e488e41de41a2ec212c38910db809f3185a3d714f7b20e52c6758843b8ac54ca92c50863043d27799f24a5f6131fc14104eb4170f1d9e47882b1a801b034eaa29c917ad81e4738baee80f6771dec8821fd900df9357a61290d152dcbd970730bc8b1be247aa153f8b3e410e8253893f5b417156206c7997358bdc4e16372fc352a9af85454f9630c1880f229b13d23070e551ad72f062ec7465be3b347aca8d4339480dbdb388aa816bc921e7fc42e67e880c1edc132a3fcfa40dd59bc9f1e0731d5a0f496ec7db12d526778afbe46293b29b0986c94f587af3479fde5e4c41a00c4817e8a2040cf05c9b7e7c191ca2741f302b8fc8b3e8397957de820d43679a08008fc8879c4c47872e2f01432bdfed897d11276227301359b22b337bc30e1658fcda2a10395d32e57194c2a24fb22d1f47868a9f91d1e3ed28dbf49936917e5997e7ffdcb9e41cd6bbdc6b90df8ff053d48dc880b90754173ecf88ea69ce26e9479b02bd220ba27491d78a4ce0860c0de7208f26d064ce504eb5a5f71840cb9aec943ee9c3d22589d9cb6e9586b8adb33e8e16f6e12ff90ae50dc870d2c0da299fe3276511beeafc90038d32b28e810719bd70502c1bcfc596259f7173fb1b7f12682606e0fece84a2ce74eacfcb4125c7ed9284f227611a391e03cc2ca50f48d0812804f951800c43e68142d9cca20d3a4217586fe20791bc20c2846733834eeb9180c2af1472f53f2a4cf142aed2e4070912bd52c7db639230c32fb55a7b440af20388d4c25bc969be5be6ed9754d2f89a5a97dc8646c429d102e574ce3f6f0b3535e00a113ea2050e9ff50a99878048230c20a74f03c203ec7c0a6d4669d5d066e26cc9ac8e7359d2060bfa98c59650c8ac174e6cbb95879050f1776a0add62479c67b38e9c07cc8e77b3abcdef41c0dc0f20bfa7312a85a7e970227b0a63e2941e6cf020ab533e06c9415687ef7cd00e3c9d8fbb1f5b7443272f55c983860bb41c17941e36ee11de8113251f8823a4c5b8e9f5b1f8f0d17b386d7a5b3e32e94f8296bc05486b7f16a3d18742c144d339647425b964f9282e7ecf76d4f220fa6c78ba368eb40619929ca826c013c281c5338592e126d068ffa377e42f81819f21cc07fd20cddb13d141bda4d3979c4686f2643456f6ca0d457495b84b061ce0a71fc56a9e9302b7dc00049f3c89d7a9f15c617b2192524da10203b77541d2c760b2c0515930cbeb0e60af4a4c9b1ea44139a93861face2def45b569f01164ccb8155a9072988455bea0819287710184d37872fc561410b9114f619a9128b2dfb124948312a5200329012ba3d890e857c418111ce18543a69b9041e73d0a90931d4afca101a6fc403041198e8900ef73db91c548b8f8222296bca95e91be0caa49a3fad3e30cf2ace55d1356f992b759b939e69217b354f175d6273fa22596c3fd98e52c7651d02c28178f8004a31c0c98024db70a4fb81b779a07a3384228c076fd0df891a695e2860f1ac3ea447c6e3e0d933deda0d2114704c7e13dcc71f9003d403c1e0e4d7e8b1be8a46244fec0d61927e3b3be91233ff770a2827b9862fc3405b97c3f82e464c698f9b4b226991690361e010a9f2632c7d6430056a68b03806455ab089cb8e632e43d807efc2159913e55961f7f4b439a1ca586d9f923418cdf15f8271f4549fc6fc6144731e197df7184c51da4543ecf072caec8922e8f13f8e47d60307b3b519d72a85102be8b28b89f537db8a052239c019c9fdfd98347cbba13ba88114bb42b35149e0506965c67d49ea7cb85a63d41c9f127af2bc198e8c94fc9d8da479c01baa887d287d9e8f2223865f9269202fd6e80596e7ab1f12caa00f84c17d08ff383e182aef0f84f1f46e55231923c174b08fccb2257cf65bd92eb964b7cce4b0a476069891fca4b93db62b4df3362c6353409e0264e054f28848dbce68095d15c089329fcc979287d65340158a8d6c10a558e0502d2234164a6df0086fa5b4e467c0d103d74f1d20b2fb602929767f27c82e488af402584375548f91c037ef99ba1345978e1ee89688a9503bd60e2a702e9fd9a0595f371a3e395b859f24c0b91a334a27806144bfccba42c9e488cabf3808361969b639e4a0994321fa81841352c9c6e41272e38e5f8e5e1748a1574844392bf18224677c233f55c7488e9a383585fe1030fa7952596331a83e5b908b8f948c00c692d49e33f4ac325535131e71d6a01ca6734a0fe62a9e721504873547446b2235a65ee460f875f00e8c7b12c3aa3ff5008a2413c097632eae3f748c4a00a42b8c3cc734c55d0c71f10320c330ee72146af1e0d12351b674172528348e85a9a647d11126ebf7495c7ef0093e1ab4a1c79012afe346a56c3cd8c8ae5935cdc7955006878a55dfb4f31f2e41e7c243dccce90ac976cf12a7c20b3a153bb32114b9bfc429323cf639472a6882ce435487c5e5693971eb4e84670cc488567b0c6d7ab18c2f60c42bc39cc49967b5095e5fb4824795c8688e84854dab8170eaf9e4b2f3faf91aec80912f4f824b5fce41de5d0c3d1fdf944b3842fc407809f4507d0df70a8c9181a50713f7a30683a6424fc183461e78e0d6c7988072f887722cae341e3a69fcc781d989930c1b926a75e0992d7ba6e3979577f9434bc2480239104c3a16808e15664d9ca67c28678042b480f7221c4d709e2e2c94649723a9b0ee93b5c639e01549d762731f95b367078a83b1d5f698e920622207e3eb55068b3394ab212bc32a1d644c8eb641011c4404583cea459cd54dbe57d646c08d2b871e6c508c93943ac4407d305752ea72a39910455720f15789c488925bacd9b02772b84f43107acf88c97914f7a42cb170da9e1b7e8f83d208d6046d0e7e6215869c8447c101f16d9a45cc74f1b4f84a4e87d9a7df258a51a59c2da088d21104656d2b2fabb2b47a18c5d86decd7908a3a86bf9aec8e9bc4200c6035894e417c1b1f3646f0b7ec020002fb6e1871e82a0cd133963fc2260bebc032a23b42548103ca632266bea407495c0203db606e071cc781d928132de86b948ab111e723880bf7e83865619801a43c1e1a853ce2a0a95202145ad7ecc5d8e33c11a38df474003cf9496e6b84e19825f3e84791cb8fc64b94e24fe8a1350fea552ad5ff4b6a771c098e5a06000ca2cf284efa0c2014de68a980fa0e485ee35e8d30b3ae5e451bd617a248e60681089d8c73567fc3b34b67c925b1d9ecf142fbf24b7f15671deb7230249b3c014290fd9e5762ec0eb93f72a6430890824dee4c6947317893d2e810051ebf96b7e234c7d1e0114f3490cd0fb22bc2c780ed5d5cb6881c2fd6435f04793b03c2655af74165e86dc7b15ca6c4b39dfe797912c6391d81791a3f3351366f9a196f84b325672131b69cfa568e3a558aa93e1505ae27a8f4a692105d6dc17c685a8d0cc328108cd33d6a435e735428c960427cb29dcb2e5c0e0907a2285129958e6ca0ffc703d0953f86504417130798a1e0aa81a3ad11b386f53068a2ec2367935bbc2322d3624cfeb4785dcdc6ccfaa0fe96d8640e50748f03e86a82b3f0947868c60881bf7652a4f98e5840f8de4239c8f7ad0c9095269e12739531e54a3283a5869d56fe845cabb141d780e2d2372903d3b972525d5e78940fb096e42e9507ddabc45ea473ff0b0e67b1020c876aa3471f548a7ec21ccafc791b64363d963e5639420e9022a60641668469c484cf9ca49d6244f5f667864b75c68846f2e94e41f5240e4096f141c062b461a9019baaf1300f8769e2e390f2d7599072c0ecf47c13f180bd28368d449bf70587e49f3c7cf1854e7f3c84190e3dc84793d611c1f3340edf5b0a2cbbd9e9479adb30c6e464fccf7f1a0c079b9c1fe4b991c8411e8f91b49aa0c3d40d8f58562a110f27d1af34a4d0a84a99a7b741dbc0ce7254934fcc15287ff31f2c1fbf4debf02217401037ee95a0140f95a1153ff243de313c4acf85195995b59f323ab7aa0e9612988d306c434b8d8811ebf65a972326de4bcedcb9757d327d393e931ea27e82538558198f14fd7e9bc122794e74832e18c95603cd79ea3cfa1e53e6910dcf9452d91d308b0431719d4e8650d8aa1c71aec7818a462e5467766bfc050f3136942f089369dd3ad61e10ec18667f933e7799c98d11218d0791b0fdc728935111c409c2f9de34a2d4fa001cd378a3c793f0fc5677496bf929939c10472b69e4d993a411941fee84864a84e384cb7fec8a936672759b53c4192260e44c3f9018ca09ea6161f6f216a4d67d00d7e148e581912db84f7f36282a79d5ae04b5b063453122c7f442bc17772474ea41416df9504c08b0d1ae41a960bdccaaa38dea8cc8a3cca929bc6a31cf08cf050c977eec83e9158943388ab2659d59553c3009bec64069286413e41277c698948dec0caf87e83d8682a065e3d844181b29a02379f29809fcb58067360a93278d8a7010e81479f5605a88da3e151e604783a389d1e105ad1dbe69f88c869bd49681e872259ba921b1dfd2014b0e0844f2332931b8e4e47797832d98343afd78b2e375ff5714bbc7ebd295883749c2c245c9ffa7f208a84ab71d7df43b5ca57287195abf02df21463d07c1e388c7c905fa0ee94ebd4efc57c9c103ce76b983a39938cff58a0723e44428ddf58a0f69e2450fa141126e821617759c89e5ea703137a92a1945cab91159764e22ec86acd860cd7cbc209ca7fe55f4f626dc1afc0379ac2e8dd6a1df8403c5afd2754757c130b0ebf7481f918b522da0edb8e8795e691c740a2e4616c9090a9f842e2152e99f1a0915f3f87808e8b8881f74380f5f122425e6f0518a29ce60d4b16f342325b84c413e965c50de1a1f0a7f8981272a00b95391c98720a327223b7f9c5e2ccc207bb103f55b41a97e56991c3ef28b4c4112010d3b1963eff33d27c24143cbe8616f2b27660790c1fba38daa128ae255417ff63c4f5467c84d0692c09f05cbd86681830e988f24cf911655efe088a0ff222b0e019adba72fae1b425bb4a0346c81e63bdac3596845468d9d20076643951255979810f6b4f0186a94f04e1d01372d5c6fbb2dc7a44b48aaee9025cb631f6f6ed0d5e79d7dca10f20c3cb0f7834e2c5789ee7d1668de7d200ca0b1d29e4051899d079f8687154425a4e9021520e546bea52446c698d24a01d5431f04b848434003f287488b52ffa03999a8f23802e9bc904eb77f83093cd8809f4ac20d178974b0b3f43dbf2dbb8e605f020793d2fd67c963d58f4011fae1cc05b289d4c81c0e1bea4c980588efc0663603e3b25e515bc5aa16934781d8015bfec66662bfba8e4ea6fa00866658f5719d39baa0fc38b4f0b44d8be50a039da020fc0ec434f2d5fa283f3072eab9793848a13f19b95f59ca2fecece310f6a13f449669d5fa61512ffa352cb2dd442f411f82835922a62fc8cdf116dc739bd934a6e79079f47ae0605855740eb929fc9b27b58100c65274178bc1f974bdea3932008a683831c6bd5db73522ef237974c055d054bf9800e7299059c3aae89d7f13f6df2f1651ee0ca2ef186a3a56eb94a703ffbc5c4337744f2377b54bd9a9cbecf43a1c68d10e9f11994fcf9aea59e8f52f7c13bd165f143613c680a2a304735267d514be5eb41944f2d78503c9d01a7827d6670ca6c422b2722e4d8d711f46338f6c4c7f78993e534a2593c913bd8fdacbd784751ca3ca74bfcd0a7248f09cdd46b11a2d4947c6c715da09ebc0913457e8a0ac41f54987b4c9eca015931704276b95cce99388fc3c79dfc3747cd9b84caa3f52c7dbdab017f9991f0420696a6d207310d781d0036fd0d351fde47f0c9a9810babdce688e76b0d6ae246244e9e0fce1ff748fe59d0917f836993a3d1d3f2626461cfc16ed1e70aac7b5c394eb9af36397a4a25021e5823ceb862a9701d7fbfb2931a3bbe59cacf61ad79fa930e2a37dbb5e5e9feb4ca9a56ecca6711de8227b6c878457b6fb4ad527bb9569a08613615983169589e7f66babc1a84237e4ad515dfe5444cded2c2d5bf6861690c6e5478192c205ce8c8cd7fe2d5a737edf4f7a2e0f94d3822b88e49b49ed3104a1fa24efb7c4c54f98ebd137e608a882716a1f8050db5720b6cd1e9424bae5fc3e9869ee126e7f388490bf698a3c8b9986283704cd0ca1600b1679e19b0dc082a39677460830b7133ea1921c2e17fe85ce94865059ed6af357f3890e851d8c9f8b516d11759d52b63f905f8aa6c80f030c40daff455ba512b553ec4cf130704a88173b990e0d37c18fb412d06e82872c43c069914410c7d44b9a249c1f4a43522b22437c0930e2eccd78903276897e9c2efd01523c70152e559c4d4e50667af77d48ad2bf999d7137a0446935e9127fd350f90c9b999f34674e9ea449c2875a65ca779d2af2b0b1f5449e1abcac3710f40922bf5e925c217fe281489ec04a9776a228d18b0a74e09316ece42d27749c220285d2098e3c10fa9013222bb8d426c84015809f61e7f5370b99bcc39a1cf94529e3f39d30923164eae5669c24c83f2244791cb02ae91e35fe3e4c0c3a5ea8c42af77b0bd9c9aa32ff080027cdb6aeb99a38adab71ef3ec2160bfa93aef4803a7ec2110d653a5e7be7003480f409291f846bd4328fc68c84218357fb189eca64346680f7a567c7db1fa45e868b0f7a19c9d7a3d9d24bdb28337b4c753a1ec31c96a7300949c6e503905b0254f17e6868f9414042e839a7d23ec48c1b7a5d01c48d2817fd866bc9d77159f19c22b1c97f9edcd22a1e2873d89d9e37f3b52acf0a4483997c8efe60615476e39ec8068e3cc95decf8781d91148ec5400a27a350c19bf0597a399464685819ec3ed71d36bfa714f35b7e64f42c3c750f000a815f242ac7e3a9c049675082cbd35a30f0281b4ebc815376eeaac2f365c2507941161064b20231341d327e59178735a795127cde6cc3a3a19e2231b905985a67030ac867336129db890bf59b78243318226c9e3ff1ca79806cfc92cb2af77d3af0a894647d842ec3e36a7422efe0e2e5139c72b5a7379b1cd1deaa27b2a18e47a1044ac3b52ae13836c1e94f028abca42794d394c0944fa9b0f4ad10285fc98f0821b872a077acc89c8941278d62c190e11b4b435740b248487401f9d9802c2e260e9fd7158fc90e4040713f79667cc52b264e63c12407b3c0c10755c4692c2742fc2c1a19be816b7c00bc2efc100f409e0ea528591117c0c7e5498493cda9f83e5b0c348413855ed9b07aeccdeea50026fa55627bafe3109b73031ee2bf9265eacdecd0f3688c05ff67857337357dee8793daefe15042031e4ae3380818b31822d9d7a59978402d889c872d450ed7c2d4ebfd1190996c683c482a50ce0198dc8b88d3e0cf66e8fa0c6ad28fb549cbb3cd7a955b083db20e00670f25cef15b1951a533f1fa900728309e85346dc95528bce5406fa4373077e28ce145cf638051a68b929a3e488c113fa0038673e18321aff1a3f61860bd4e29fde371804cd02d220cf23d9e363d8a212fc78569c007837b3c9a1442cd8a54a8ff3b83e71fd2e2b8931b67ba439c58366076e4146320585ea11208ceadfae4a41cf009956c303a9f4038a7883b2c72a01e1979c7aed6f134e8f5a9e2285f462be10b02f6c6fd8cfcf81d71ae9f4084548e1312cb61b821f055596c79a61616be8bdd0d778383407b60c4c8659911f41fc018fa54c83cbde3dfa7f040c2a74e971d94c11282a853e57d788aa03f942979564d441af0c9abe7ab05440b9254e35bc098141c102097a7480049ab4011e9197d4191ff40d0f568fa1a398121780e280dafcf6dbffeae8f1c1deb500f0f04e92f1f4991e7a12e78f9413f783885426a7484099dbcad68e1177dc8ffc894af7c3ca423a7ad3a93efbc5d7a1f42f74c5144d7b319803f429f3ff96f4d51bf1d09e49858b165428baebcea23cd03005db988587af29899579e8751d015597a1f0e138aa641d67a9614d1c36d59e17c4a6ae53d7a919ccf02325e2a89fb3fa3935ec36a71221c082da7032bc79284895ea4e84f6670a415e20deaa48773807f8e2a95997bbc72a2167d108d3ee51e65c2cf732951b0928b1a3f290ea4d7088ae4200208d1486c80f2b70d72b202449d3e55a2492fcf2a78db16149ee3028affe2468b3779c2e6c61db1872962c4eb5e9cfd111aa9af5ac2eb9fc400f6260e6d0f45a98b0ecb002937ed44f82785fc74894c736f411418619d8732d9869658e722236c9947a1125a0633d0ef9029f93056965cd41aac4775e7c7c1c0f1e51038bd39dd9e3507a193f3809cd8d04995d07b1542f9ce173e4f8569c02f137cfa1c4a5a9941182ddf46ad8cde5386eccf34e195e7ac51f45b4addca53c26ab92e1480ba57314d5ebec9d181a75e6504b94ce85885ca748d2a044e6003b07806b857da820524eec66dd477a0a1caadc038d37171fcb89316847e08b8dfeec9103780e0c15f083442e759a09d91e6e12182bd7e128f4c79d3a501df06c95203f651e25b5ce96917126a7c882f3f826e11b67cafb65bbad41baa07c0e1f576b7543c8a117134af609a3e969e300cba47fc828e2c4f074c23af81a2c4f76872c9819831e09c687d7912549efc19b84abfe789af03d5183742864b93a163e68c5e828700a0e77bccdaf32ef2f6fcee429c5c662fcd4bcd29f5b8e400fb2b68a59c4f16473fc28f83fe024ae97e84a73e0685ba0c02488cf3810733794bf3939e74cb80db25a0cb7b7938b9abe08e87724583b7ae10388631a4bc54070b7fa7d72e1750e6c453f8a1c7ed64f191e9d098e3a94c14f14ca0b4136af2c9e74070e28592046a188d82788d151efe02a2bd6cc00215fdc627f77dc8403801dd44c8df843fd1a75c594da63bf76549c68b0271e32c9b1bf2a592233c1d8e7020cb58df6bf5f466405578247aea3c0c4b4a329935c0e39121fc0ca8b8780a5d1f345f95ec69854dfa0588265e074b877f9240cddf419be24d5ce4784f6d1a7d170721fcc68716e79c217a5954f6f415de603cdd2d2d9481a4a9f77c25d1996e58c87d73769c49f0bc711c75787cdf91b787a3c873d99f4acf65501527248ac98f2d22e071367c70326a5ae4e283503e420f2fef1ba5c45f40a63c664c1f8fe48792d3a2f4c209b971fab5031bfc439da30c0a5928c7c56d741860763499496a3996a349cf87819be018460372820a944e5a4a44643df6e775e9b0e1545c39790b5b62f8140d80de49d695979b12419f81681cc4202e3978479677396b9239a4d97a416603b2dba32d0fc7538597a5c0d20b37e59c07eb822f10e145431100c52778b8a53dbdb29013b132908b1218e4178664059904d8f495a040c8a1feecd274dcbc1276f262453b81b5c2f91ea17dd0d4914fb4c1ccab1a4140b36225b9a94e6ddf065df572250c39a70020fe57ac3d9ee291d1f5889893397848e154e8a07a51bbeabca82e3ab49e3dbc7e0507b8fce6c68def0215b4eb0a406634ca881eb227e3bdf8093c072d857f64821a9464a54fa6d1a7ce9921c6dc4f08d3faab20fe85c8fc3ccd9b03ee69d72d7f4bb0e72054d0d0842679f85a7fca78013131deed74ca7614ac710e1a869ec2cf8197552598eb0216ca573d52fcd21f4c6e24d75b7ec3a1cdab0ac0244f0a93e15f9e540ac23f60e8158c04683648c31f930104ff565b1917199bf631d4f3868413f42c3779fec925f7e7b2b84ec455cb4b68c939942393728ac6c7a749fa71100660389f0191322131399c8ed6520f70e4eb67a48b32998dbd7753bb9507c149f180eeb8e43244be2fba00f4af26b3bed00e45e7932e3bbffa932ba3177464156d7382041c9cc99cce44085e69cf3c6b19c6e128057c91027d32ad3e5cdc4b924b79072a337e2705a95b3138e131a44cd949a9128fc66a90769107ca3fa800c3dd4508fc440c3d47ae72f02f68b13d855db95c8e0fcaaf59d5c853c8d0f556b02cc86f08f8c9e16f933ed1273018ec92944f024ec9a57c30bf48895859c7a9009eb2a011fc31e7d60b39c2c45340427b5e702f1de98df24e003dbd0e2e367e818d037a4b89d7fd2819dfce853a7f8a0ff549818caf8487111f3528cb97924b91c7981a3ea3d1e0cc3191bc4aac169e27a6cf0f3ab017ccc3e9566ef5a528f463ca8f3748642a1849088547f3c02ce88a83f2bd300074fe8833e27d2122690c7b357e540e2d0f0332f31b30edf9df1bebbb70bae33a0de338d076f625c5c67fc993433b7a63e479a0daa04b1959fd010248794c832b7ea3efd05b31dbe465b664f1335e126915053514a32acd6ff000287b42b12517ffda08f730d543e84176922004e693d4e83b5b6409fc087b58dedd23e167e479f1160dfa013400fd2a5291b793f4c2b719a32b2100291b5089ae44480c872385399f0a563918034a9e04c60bfd0bd6284f09c4f1081b26bc23e3044da3859a9f53a726d46042820399ab72fa52b1e63ffda921e4e24b86cbe973c4c1c409d24a5c1832131493fc10a24599cdac574f8518e7cd48d8f1287e8879456f92df4ad7eb44fcf8b82c5ba9cec244d7ab690067047a841f9892f94a7098a33d0891897c28ba5006292d14e3f19ba020c86fd80a641710ce4e089674b6334223186c8d47a6d2a3521e14a587e38ae0ea6c52ab8d7b21f142bbf5603d0c89d99f017af259ea5e685731467d1f1b4c1cc4a63677156cd00f81b0f61d5c2575f0cfa4cff4c9ccaf785be29f7094ca4aba24fa3e37835c0a0e579fc850984ce04d8a97d35eca61335ab95da0bdb78581c717071438af10a17ca41d4d842e988172122b1df4ac4f97728a37ca6c2a02a25f0308d5b79265e9d92c9c798f410d5ec200bfdc4453d3252162e2878af0723a77665a5512d78dc1fc329b2028de440e1f5aee4aaf875516eae764c2f4704c5e1329f2e07b6990f540202ccaa480c938c794ecfa5b669a74a7e29c9ee2f72708a74ec98738024958668ffa0e42269c5114ecf8b70d7e745c1003ff073afd9278e7f918289581d970fb01b8fc3c020824fe866880eb4a10e8617564d9cb85060e6390aa8f03ccd2e7ba014c2bd04bf533808c3908477bbe0b2a482f038f83fc8e82e8445194e8125596392fce265f04e8caa318a3ca776d421424e5208547190ad01f5e147a4480b87c170106dc4f8be6874c06bd292169ee844ec6c7e9cad3649cc2eff07143bf1db7d7a5c783bfb8e3e8d11020f05179383d1d11a91c8e8e2cdea7b37c9f4d84fe0fa5590fa2c05b7eb20b971615acfb378858f02c498e17c34982f6d122809f798b73f2aad44b339154499f00a0ca8dc9363aae10e417ccf0a511bc32fb1aa2da645b10b2f85ea2b4378e5df20dbd78fd200e727c0392521a904e1bd7a54593861105f03d1d8134023b50bfa7d11e0d0447ea506e1dd1749c1cd1413778df66b9e63932e98fc519e5a4d2e8d27554acd21180800a52d923de31e5e02613afde4d902f3d0ce64fe76a903f0846e7017519f8b9281c5c00acfc21913af9a338bacc67ca8777632687074d3871b959af9e0a22056e010b848cc7c316ffb539f9b1af8fdbd2e3a6cdca36e511681c68222d403994bb0cf9c60ab1bff5e8edec03a5d51fa9401ab259f8f40794fafc200a8a3711c2e11b0103e395ae5cc97a6164de0e948a9f646b816bb0e5c9e7043afa3775ab348c391fdeafa923bf3982e745a4f8e0878825fe8dd2a66fa9a0e44464cc7858552a1702212d8b7a20c049c9d9c1209ef25cd6971b67a5bb1df9469a9e0c7060fa0a50c69c3a5085e5b45b973e0d9920f7a3229236800585fb9821c1f5020cdd75b3fc043c942fdcf4e19b7d44877361210f2a3bf29dc8e6f8b20c04d74b62e747459af2bea834c87ec08e77e274c6610cc51c265341938d42900b2db2a21fad72b28e5f99821540d1e91162069da880646eebe1ea98d3aa8fe015d181d4170f2c8df14e827efe4581ba6c22c10cdfc1a94c571152c6c338b8f4a10063fdac49ccfcc80d9073a1c123b75255c8f7f2e8e94b4f403c271d2bdf2af1e8bf0aa2dfa266c34bad38d33c2c11781d72cc9c78540ab99040b9dc15a753ba02275ca78825e97368a34afbc8a42197a8f2c2a50419ee0555993f2183c97f4c62f216d8d6fcaf3e93b40cb5ecdbb425d237e8d039220a59b2112e697e2c43898cc941d9b362cab91e27209f44f497f5e0dd7223660638823e565e4a13064fe1449031ddad9d291490e91457ce84b84ab865324e0934073dff922e6909cad0903e9a5081d67314f8b53ad0798924625c2f17897741038e372843a04b10f51ec5d444b750e1fc0cae05d94787e4ef4b66afca07f361009af4084099bdf6c39015cc29e314da78d1a442edf8445c96643eb57f11705d50f9c849e6222b8106d005cd0ddc6ce807c22579125e92f34e138e46d0f743139262e56f01ab9581a1433fe117f78dcec4f939a3025d204b98d7d864e2f3ce16b8514ccd334178e47996309d8f5af73fd858e9241b5b1e45079dbc064412e72366ea252923f92b356b4663301fae950a8d456593d106e4caa4ded47a5bafd6f4283beac759923a81f001f01c262039e1c423be0087a1af12f67a123d62b9021c5ffcf84af2d14228cf51e49025bc51f382ea7a642484cadc911f4c5f4057afe7c404e18948a17238a458bc1a507c1f0450888c46aff839aed3abaf901c4b08419b09a24733688021eff880257b39504928c78ac4d3298833a134a69ec08a3e39530cb2f71352f7ba4009712a444ce413299a2f80c7763f3d495c572c56d90a23296e0288190de7859f3739552423e2c5c757357d6802110e78813856f296d5cb3352d22aebd242c2b9d4dd654cc058e4559f8ab90512465989295db9cf1c1e4fcee1c88a488cc975a9c03c063584f291d69296a40b3d5d980c7d26fee31b84f4f814b0303d271954dcc9ff79208141edc14c3c260b687e510b277e272987634251744f6cd264333632bc040951749434fe062c1071526ec8fc099928198cae463a88a8cacbdd70f2349c0cd1747414fa3fb57a084db198fb59672cbc9ada889c26d731b7bfb6781354ee6d14407217248ab8253059bc01b0221f47e291df116b73043f4e39a9201af25b954fae83850e7d42c9920f2be0c09f2452f1377cacc9b85e7c7a183a4465d8caadb70be2d2a94879d159121411be8578e4354d80a79115071ccd2c60c22979686900c15c4f9883cb94d804cb623e2079aa4555b42503feaa27547e3ad1e222442cc9092810f8149b2a69095b5cb9df71cadfb9f3cb851c0ae5ac0e80fa1e1d2ae9c033486ec3d48e4c410df90f7e4572356b922ea5515a5e1ae1951d14aa9089b850a047b815100a1135f76c0cfc0a0a197116c93c1e8d7cb95f1ddd5d0c3c197aefafe6e1b76d17dd57035bbbb2ef56fef9b19d35025c9769de8e53bff55de6e5c1215df6ac9184fd32e3741f513d3f3e3d98896e74178d6d8ab269dc6ee5fab235379f3becee6f5f2b467a8e86e762c65d893c132e66dcc5c83b91c78258a2441d0bb44d9331faee96e9aa79c696e9be2831aeedadcd8d8d2f55d5cd17f681814302c702dd03033d07ba0ef42581dea489fb988bb9bb127726812e16183824b049a07b6020130f24b254dd56a9b22a9fbaa7ae4915a91e55449adc7dabaa0b143568185543aedc7889516744994810706c2af5ebef5517336a02f7f88292c803215191149ddd1950241213b5b143c3384e99693f5213620e0d0c86d20684b9f9724b88c8409f1d384c0c09e933552208a607a044cdc513b2662c90a9426e4828a1a5b1c4f748152bc5141523ad0c8460c3a4409f2a4642545541b9d47592f3c6329545bd54cf1ff0c1912fec1fde80b8279b68b2d2666673ef45968ab7c402936fd14120e7186bf0571e96bbbf0703c6078e2754715288f91088120f2792381089ab08e982d3b08deb5f8635deca64bcbea9060e1be0f8ce08f969a6ef9ba2af8bc26bb1dba2af8b1a371ba01b9a8cdda21a9a1e3923948550201aa7280674eeddb19a02ee242123b25d617855aec7fd2e5140370f722e22ee2dc3da201eee0e875ab880bea12250bffdeeb83637b66d7c37ccc62e952ba0dbd9201282001d0812e4d6e6c6166fe4992040343418deadd235b6e98ba2f07e5766df7ed1384dc668335ed9b4651ed10d3389794b782bd33656d3a5d22d3137a76ea3abfac169608ac87bf7123055f2a92e5b7cd93476e33cc05409982a77de86d3a208380d4c1080a952d9e2b981ce7c1bd317b99c112386d3166bbcb62a7aac6cdaae27d4156ed73706ac6bb2cb25114e932ff0defdc2dddffd029e9bcbe3535d96eeed9cfd49c6ea7e5f574563b78551f4b8a228bca23b89877ed0cb7bdd3c3de3a683df36385e952bfba6dc31dccc81834c8c1f43fec18f1bfcb619770cef36efddf19aa7ee259c41dd7e677e0ab813d1fe8bc0fddb03f8601fb91daf79ca74bf31fc78eeee3262b871de929927778c67f091e22250e3aa748f61f7857b6c55345f374e8d6d6ac7a6ef5edeb1a9f2755d189be90b77775dc0fb06fcb66560d3b33d0cbcadadad42bc590c71ba5f241abb2ed0361865d39465aa6caa22dbd5d832d1fda6e8ae31c76ebfcde6a5709bbef19cbbab7ea667851e4f9e84d3e4dc9c9e371ebf6e12465d374ec269129ddbf0bbfdf68bc26f5b124e93adbbc2efa6816c57a3abb67571bbba2fdc78d97c4bb87b8b156f2d4c74f70938fc2c8f15776711e7c8344657f86d8bdbd55d766873637b53b75145bc59367d61dc7eef86778cbddf132abc2ae7e6e076f3b931cc8cd358c656db944de9dc37934d69b8bb0ab9633c03d9aeed9a2af76b4ce374c7cd620a777f14eeed0c648af7eea292e90299e26da36b874cf1de6d4c778c77fbdddd21dbf5ddc6f72ede32769caa2bbb649a88b70c773f71aeee0ce37a67675cefd8545d5bb74dd5d675e1ee75c834def1daaec710ee6e62b3797bb72a4e6ce58ab7e3d484bb977077bad65de3157697ee4ec4d0ae7c24926aba63c4ab726dc1a7a6b10c23bbd71beff6bb33ee76c609634a072be7e6e0d77ddfba8d4c6178dbc1f056ddf78508e35e2ed73786e79470fa07027edb32b8b571d0c0c6d632e7e6e2d75d2e9930327ddd189e9bdbca356e992fa0db999d1076d6d0393d3d344ed11da7318c1a77bc64beaf5b42847b88ad7465ecd67581b7430efd20c7cc2102441edc4c5fec7dcc839be9128653b644528dd325bc9a80e194556bc449e4baffea6c68eb8c9b2da6f06aa27557b8dd31e0ce4be3d498c65b99b795e97bdc46d78e8ebba77e46678886b6b7b7363836f7d8ae6c9b4d55d8b85be40ac3c9387de16432824473f478170a14503734041a1a6ff87874d7dc8322d82850404388408deda6e17e123aed90703fa19c2b4e1529ce0f7252c06f5bfcba7086adaeec991c0cae22df8863c53d4e91ab5ffa3bf8c9e396e9aa68081168bbd9bcf8b8d93c23eb0e33c4b0110d11427de15cc7dd87f8199c639b61ef372e66805b778dd5cdb2ae7a034f4509e20b620914040a685cdb8cdbb8b70ab851d8d832dd223a071b5ba65b44e177c7ae1fba5f26dcd6e510f548018120684d084536b5e945fcc3d72598747241040b0106801842dea02232e9ccddadb93c071c6681686bbdc0ace8bad00709e7881146693eec89a142d6f2b328ccddddddddcfde5872f7f7b33712dc3dfbd91b3eee2ef4b33776d039403735648ae7eeef676f24b8bbf6b33768ee2ee6676fa4b87b0eb40e8f4843458c17eefe7ef64682bb6b3f7b83e6ee03fcec8dd13d075a42c5091525ea5ec860c3b35187e7e2ae84bb93f9d91b15ee2ee6676f481877ac32df186e5d75fbadf1aa5cdfa5bbbf9fbd91e0eedacfdea0b9bb999fbd29e0ee6b6ae88e1ca88b3b1578c4122a5abc784144b6eb1bcb786147876cd73796b1d9e20aaf34b672c533ee1e2b9bbebbdd28b672c52b813703d9ae6f2c63035105b25ddf5806e08edd6d5c6920dbf58d6500ee78b31b0fd9ae6f2c63b3c5346ed7f705b25ddf5886babe5bc974815727a3ae848bba1930ea6420dbf58d65c89dc09b61a20e8f18a3ce6e868bba16c4ba1831ea549c5081e7a2ce840a14af44dd0ababb162d66b840e142450c3c19285e1d5e893b142e54c4c09381e2a9a08b5187a20ecf850a17c4ba167777749fc2ac4e268527d843ead3a2c580e8f34d555afc05adf9de18006da0fde3955e23fa066019777777777777777777777777777777777777777f1f01c8c42b70a0eb2f9812f39254c1bd992c7b349c0172ee4317a31cc513d34dc59d654574473f91e9c73331e1c8d500b1f5274e0073452ed674b03e7afe244b078d43d778096d28fda1b836df8f820485f00dca053cdde9527950fd2b3629f2dbf2d4fbb9c39e7c08606558a4a4e4354c5fee45c9941f9008d483e85228af4171f351872e7c2117651e5420e64b99e1f303cac0e82b974a38db2d3f4753a8c0932950cb125639f93c7dcc7acefcfc9734370e4215211fe4aa517e2542c313a083255b88ff3c88b6541a481f4b790e13842f45e8c9270144f58c092d721b5658846772f67c21416972a4b221ae9a32f5bbf2fcf04672e6748a38c17f83577ca85fa9675113e85f16183da12052f4ab466bbea1c2ac176502d04bb162238bb0e15e376184dec24e705717d1d9a8599c4e23047fabcec0d7b180b28abe3f3a0eae25a4e0a7516e4399645702824e8757b0cf15a4fcde51e473bc88e274529539ababd3a71211c10979d0f313fe247d4892030f57c28fce44e8ccebe0a89547cce9e4ae98708f9641d6cfa1d8d3393e88fa32b98279eae2c303d025c251f511f364eaf0c99bfe90c81164f9e54a4d9ace694ff32924b3e4be34a9721664fc5b5340e808231ebcdaa92419c314266ea1c8a51f23e7cae1ea36e55479a2f881414cb4587efb1312cebe141b1617ba61f13686a59c6e94098d9cf3e3d59c8f33d3d8fd060b6b74142bb05c14280cba15de254fc16b8b5003de1f1f334978a2801227a7a4e64e070390b8a60473430d2bc9129abf32a5e3afa7c1247a2e5c79fe079552d90e931a6f44cfd2c35d52f34367238dc30f0e77159871601edeafeca873ba35bd7ccf829b666d2cf015421b2722d7e758e89c3dad31754ee156a27ce2f27b38acc44e5d58b2680dcd2c8f20168567706ac2d04c2d91f61084eff4f55ef850bf76e45968693ccb9160d9ee851bafa05270481f9ace454e1bd7f320e86986467c5e94e5ede6ee32930d71dc949e56cec6099257e4224cc623028f5fe0f179d8898c57faf496556dd8fb0903446445b744fc1c3b3838221733cfed119ea566387a4fa066653171af5f9eb0148cb52ad55f191420fb782b1e44151287636bec9379621e499193c7e305c58954107e93d284a752c03d589cf6011191e5229e1cf15a731879a65666729a5d8d3e100960a605d7cb5f0a4072bcc0c60f615392ad8408a6dd40303887529fac66864b87b150f45078e2742a0a810f07c0a513cf23348f15227356d90be14b11815f46ed7324a1327dbaaef8395ec17ff7a8795e8078bcab11585e4191993fe479f0104d52b9860b679c891218be04cd9e3753b5e53c5ce45e8c89509fc951ae5f94498d5b9a0bf0714d961a550b2719005a9a91c0defc963f5f4e586b9efc2414ba34253724de439c9cae8336ea6128d39f64c7c9078031a0eb88a571328098fc44955d5fab940a1debc88a1ff659ba015d85fe819a2fd91bf97854139ebc26b75c8fa3cd235f600981ffb0f1ea758dd9f32621415f44fb321547f1e93745d10b729448738aa1cc0d00e9d773f4cb45bd353de140a32cc3c359869456f6e89a0fed8700a9dfe3a54a9ee5e5c79faaf4c899d41af3269f0e1ec883940fc2c1c7fbaab3e78c4031b500758c4f9a93e1db5f753e8e682bc705b278253f5bdcef90f029fca53984091a5e4a146110c7af2cd9aed0826c85ef47d6607c14cc40a5567e52a08370961fbb7c288ecc3bc2c0c2d3fe28b511537cfecf108dfe8b35ca53b1103c469914e7c51674577def979a34b2a22f6b1ec842e8b2a8b0fd993f5132940c127ed09d32efc64b87e79ab2f43b303ebed126001950109d2c4cf540175179cae98f63109eb466602f36680615c4640b5a5ea14b27422fb86123d8474bd0bba1c4ebfd6870e380eab2e82a28ca382347735ec70c3c7fc767e7674a2a3c9223b51ed510262ee3c85dee1383d2236af2452b10dbf46394e0777187e135b888fe2ce3c18fa4427c104cabb20322afce4957debc9c3041279f537edeb7f065017b28b202312fc12ebb91c6d30298abb0aaf327131af942125ecfb7a5898ea305cd7514613e035b759ee32473384b36de084f828eab63e78330dc7c03b4904bf1b4f72c9ce83926239c232121f2c20e16b4a30c65de818db6cc2b58e81fc571f15228ec3da22ab7ce35653665a2981de1dd9002b941a23fade44091aca30ef3b1fcf9e3c7244f1ec418a9ff948098b58409f34c062f32163ce163e28497870f647d0407cd37806785fbf901cc83b42af3691c8bfcc0919a8f2d0194e34a295d852a1eb90a922b8f97a9e8416e6f1ece10ac201c65a945ac81a1b91090d37eec9e4cc7d491dc5a5074fa38654ad33189423db47679042e731fac08c977b03873f7327c325377be4b06399ec606cc8fd9c47a1b4e63f411560f9f43a899070d1a733e9566fc9234f6c3a033f222bf5a6fe614ae473211e1030494d27231f373b921f12a124dc868bdf2f28743796f890081209b8a541f8c878c609d170eefcb8ca60ceb22ce6592869f422b89c782d3438fc2a3fc31a12a64574262b82c57b2f21b40b41e09535556063271476c463e8e029b6771db32aa4c32dccd181b0e6189fcf88924fd04d78347ab42e75698c0fae1077d664975c9f3b8a3f4da0c05d9cd931e99cf28430e4c04730827c090334800f68de85e978548d7d759673d183d735e2f4da85f24a3973e75a687cfb131e7a6aa043fd0a8f315c42edc518635fd245509b7a262561ed264c233d214e77011005f02224a1a170747efb600d2aff0c5e63cda56d6d486eb2f3111a569310896c948a50d1da120f2498a3c3971b129b5052d6ab298a1257f2961cac828499ecc865ddfc310dbb33d6094e94010710a2e6664214dce78d002aa0c20460de7d1298c4eb601fc117071396635e99d4838a01d2cf513a8d028e34110e84f7a8479861115b4dd232ebfe8c0598662e3c3f9a254821cc0577358608b982c01a511c45086d1db39b4eb44cfd61f63a6c68f3abcf81638636f410ef399d4e1f240a018f83e2740e5b68e997f33b42b57a9e0c27bad69e240e2003eab1077d953309f0fd30ee77186e603f7da7bc220e66ff551fe1aa9434665e68d90579a4c1ea9458313481c291d37eb89768480c1673a0021d880c09f6311904388e783c33fc153d37164f01e1096534f497ffa37057bb4242f747c851218fabb84fa1e2e84fc0d2495fc75a4b78247fc11552a650a9bc4bc934e385c48865c2f26818ba3c114e31354d2cb8b6efdc84760f4fa33022cb8a449ac4e199fa27c97275ece5818e87c29b338b829488767236254f0531f2eee89961d4d466fcad75834ca5189d0e3facda1530d00fc18756c7c961503ce664b89e7a523d56b80a4f6c00875f24175acf81852735eadcec06b8960ea0fcdfa730195d01ed41d355a8421522f6ac29f3355a50b5fd74651b00dc1a4b7d382e59cd4e2424644ea831d84f0fa15924668e5cac6970c7afc291e9c5e8a58230da56cee3d82981fc196c65de879a46d9158f34c7214fd29418cfceef8a797075ab899050c320f5776de3814f15482749c6cb3ee37e4d01708e4a41110f1a58b4ca2d34a30547a257a70c20abb1e39202b48ce0659f4fc472bb560204b13fe171e179a539db1ff02a443262087c0abb041a58339c2e1622768fd920b7ebcce01103d0a89a5f7d40645c37fc2de4dad3a9a0b99e53ba903e34b8e04bf8e96515a3fc2e43d9614ff8a160a8e4aefd78702d047cff0812ad8c048e7c99822720ab5a5e792747216090ab3165466c1d54232f381a8146c63e5c90f98681f57ac1fce6780205da64de488dea24663abec9f44a1cb21f8e0783c137a32a73d453f474c053f93d3be96a7fa8c5770bcce8d024d4c42c0876a1b5ec20a017f094b164f047797554dfaa3df5957f4f0ec34b4a280ce5b44d070f6b1355e50220be71b1caefe8a9fbe202438681c36fbe571443a7fab5295acc38d849745698df712a41ff083d29be0d9e42006e4d1c532825ccb23106e462c96fb6910966504d07b4943747cb08f8707ce99f01b782fbed7804c4f96a1cfbb59c04338a2558927b1b7490362f4e74dfea00aba5fc8687d4acf10cb9d2eba459c49ffe41de5640d32e81878a0fc9223979e539e88b7d4dc947d94b8e5674c54e900ba48b8933ac96ce7149ea780f344bb46ee3e4ef2d5b76921de00a4b29f20aa845bb9fba2891c91f3413259d046e418736ca6c4818539caee186079118be629e9b295d5f0203a285e0874125647b4905187974186d1bf92a0c387af8e1ee3c8e777eafe4d24506a2611debc15460cb29a6a95fb99b4a7d92c0d3e4198341eab15a66771c5868fb9023c96a932ae2b038b67631dd180ee003f4799be07c2e5d64ffae344b314fc81cce1793f3e5ed90c8bdd99e744cd28a48039850849fcaa068b741247a1bc11ad35d954b2872b870cdfc6240baf8252ab47d303e64010a8704d5b8bbbc8c0286b08def238259f72923bb6be0f9d9e8e8563cdd32ac044032b4bf14e00e1d17b54197a4871143da549c6595551722ee8c5e60ac1090f688a887c8bc629cf206546e601c9c3d967d48877540746084302239fb1dd683835ce5c44da9dce68651e26420c1defe97954656ce5013842fca51518b29666a30f84c0ede5e0c9f0201658f25abb1c7d941e397e162f034fb6c4440670c1d59bea02eb2bba40e8347245fd5785c4ab8e52088f04f1f4785e6dd1b1e88af985cb2b38a3858fb703e7b9912e201f78a2cdfbc2bbe145d618714e58d41e4c204bbad01e224f6bd32b8de68e71212a8ecc25960a1f42e1563e4524c6133360f13b145287f79068a65b05ef32ea505ec346c783a583b48000c85ff5c7575ee260cd6038b9ca904810fa2c4c329c555284caa318056ab68de5634038a225f191f13aa4aae4250e78bcd00f9c66d2a68c63f98328a731e1ea0fa429f2c22ca87baa63f23e6c3d794876bc7c080b48de04518d2c3c95e3ef80e5d2aa4ae5703b384f97b5f01705e8e90c903a692009ce7cc993555f68c7976027510b32282398611d2863721221a96cf6b73f10ae2ef82109eb7766ded5a449ba2324671e0d31c8df51647c320372cf47e64c9371c0c68d7b8af8d0c4ddc3284acaa44e2df8557790b4193694ffb19994edb4269c571d55de43d6f221bc40f30808e465365700b5a4b321fa405aa6e0724e12ad618611618140f67fb580ce52908699690383700a2158fee7484b2be243e10588b09aca171c5ec3cdda5f72a4e0b17c6afa0f3c68af6204170f6a597309c116e55348503897b53bdf6c857a2e75c217c438f14a64047b38bf3e4ff6c7c8ebda60f85c3a80bddeab234f68e0e0a48b64c2e95055b9579031be04cf1861a3544972a02c7086551a4179217523f215287cfccf8a3d3f2745957b7191e61d5004f274529a7ceb9286970397489b7da4c71ba02653911bf1774eb4f20b0f52bd06098edec99c813f425649078907f92a495f722c6a2cafd083e64c1006ca6ba8eb73500ad0f8a8324442128f4865546aa68429ac36033a1e39dde0d97914171c39225f9f1e3da520af8a20e8edac62e6143a8a0f07d9a63300d2fb358a30fd89598ede0521e57f9a35e58b3d926844802f9e4cfb655c802b5cee8dae67516a89dbbae148934a51ebd1bc7d41c7e0e6704e098704e03d0f665687d3152536ff460abc9fdcf24325d0204c558a96a3e2709775b4489f95d6df290c0fc78463563e5bc57c0d6c7ed9cb1b220f37b75d09de8c17c4cb7556b328fdaa5b74f4015088de578e4e8f4a5de53ece63de83ebd62f7b14f05a21a8fc1d2b65be11e896ce93f428e7c145ca8de8049e395e7572523e46ab63a7b205607bfa2925fa57796c7cab3f0b6fc18c8e4ce7cdd1f7094490777d49e43cc84c78e52004ee16244f53a9d2e5e5f82ce5be4a0c7c001980fc6ac3ae0f500085460405d40bfa23e08dfcd9e52aaa9cfd94069fd938b50ad6e105242781701714d301c9777945e44f7082ce858f2d0d0554867ff24af83113463810b137faf5185fd514383a9591c6ab4be03295bbf545b0bdde240693f7a04ba00978a9f39e2e41d188d2e87854b008ed834f050f5641bda920874f0ac4249b5120c50d6c087f430bdc47aa5527086555980c22cea8a0ad3040f4255245df63288ec3523222f8a7c2027dc13504435969e3419290784de9a9274386d54f09a2e569099ae581f066f89b24603ec24f80af44864f4600498c1bbb247944241e38045e4c321f18701e57dae44e0e44fa527dfeb89cb6224f634a92ccb70b93ab2a212413c0404a4b49f32708a11725e7538642ef0806c22b30b90b5aea93fc3131f8f48863eb5b6204c92e8085f82a1df4e8433c30f9963b2e8e20c08f3f2480e98484285e076bbe9f2ac92358aa73402e4f9e79808a8b9235e68e44289f02328fe38ab14a43e2c0f609fea4fa54955e7950d1ce1922819c1b4240e6a4f2e1503e4bcb68579614e416218c4314a8f45e44212d5a580cf07b000df9042c609e1dd3e6942ebdf1586fb1ffa9b0c211cc00f16b6aad7a4061c77f7375f9842f6f79cf94b05f064bcb5bfa0cf8e19a129d07097d2939dee4bc13cabf3361c2d5b4083200365e39c58628b9af5689d3ce101339129558423319d2fcad4c088259dae49ca955d8590b4aaccf9123e807a0d07711c44d76f46e722264e43c17bf2c5fc7049c9c00832dc75361ce092100e2b6622ddf180a8d0761d5479b20127f579e9a3cea5007bf81889147d203f7ba083cf02c4846f93c3639e97a71c85806e89da69418c954f49e04613c4b5e4e110e210fbc3c9e680f94476273c42bd5fae428f086bcab1f1ab29048819ec765e7292efee3ac1c1e4c8e2e7e27839567c02a9163a842c98d04b1f42b72a9b9d1903cbe862473bd2810fc17a9347901b04ccee950ebc34668f2aa15d7502d8ef163136fe789036d3e5292e64719742887b1bc82156a88ca424cf4089619b1f24ef024ff4c155afee42d2c07f120ca59b9e8d3aaec0cfc9da3537a939437af42d49c676621e1a596a85ee278e410d2bcc896c830f13520ee788c23c4b31876c84dca4070525f687c84b12ab9d02402c2578d063dfbc7437039a7d4dbc1f5363cb2a24afee2078737c2fe6f158e202ab791a31a42fa534cee9e47dda5d77148ce51d5f1d14712e43ff6f17b57b0ce1c4790424eb705ef89590ebd9330945cedd5900c5780d6efe94144ab8002e04b9c38e12f103fbff462417ea34028b7624c9c7a6e1869e196377987d8066d224f4c18c8a8c92302a2e93327b89cc757268781d347850a96feb269c7771a02c99b10197b0044226932208e5f0353ad9f530787c3c1eb950363f8783e3784bc911eaf1cd89b52bf85848517e14aeb03b7e0380b41391e01dbfe003b21bad384e3b350e4e45081c8f7e1c4d59c945d32a135629a8f0033f955872139d8953a99510611ee0b0ef549884ef4223f627e8cda25ade8441507e1043063a983eb572c50918359e87b21afa437b107e549e128fb158258b852ef85eb52ba5cd715030e60b9e675a48039ad93e3353038f338c4e27d8471a59f148190038150139c5596e0c57860204459b17a3f9a44681322e27c45d5128da54f01cfe58e65020d82df263087bb9a307fc50a24bdca81de5b19e3eee2f57c133b2419ee8d93ef419a7a2e58948f0092943726753c5f8bbe9fa0e4d2abf283957981f8f33cf0b4bc810b211e89095bc1210df56b91e109033191ca6e635404856ce8e117220d4f2b74483c23b3361a8f5afc4de830d26cfed6f8900278f2daece083c254f24e879e78dcaf360f0124916fbad5fa8518163e861db76c0a958167234bfd2b1e9678920d3074006330af552780836a22e207ad89d17ac1cedc214faa20990413fee72050a3da37f2803061df0c9b93b53c6006afac8992d5286fd9ef5406d77220ed071cd19e019bc0a58c60f235e0f0cabb74fcd3a26097911c6c7d2c5b74d9c51344bffa88e3811cd83e07a522cf00eecea7b1217ab726acfe4013d019b1b9bda77a5e97e942fe15e9433e7389d56a420da70b28aff239445110e98ae52bac429d2f9e413f658906ed680ea747d0269743b05bbe9604bbf4015179de001733facb2bb3af34eb47de817a711bc2a69fc201c7cf14f1bdad2fcc27a506f9a416330fe6853d8e47a29fd3684ec7017af27d98fcd23b3669d2c6cd2babd841ebd34f9fce075ecee4e58a5cc33c6dde640fb62a05e12628ca460c7a59cb04428eeb92930cac0c8bafd209c6eb60d1e27bd5827308a32907f3264027b872ea43d049958f3c10fe5a46c707ef64705247cc5cc7ad4b7e021087d7c835ca4fe812a273e9b2f599624cca590e99f847611832a660662f02c128218151fa2f501111ccd4b7e2232df1867007f26849580008fd00d4fa37016c798349bf9c2e15a7af92a1943f4291c45f26039e8d04070703cf70186d3edbd273c18348cae586bcc079bd5106dc4c91245f83e0c845e9257a3f5452e9593f5c7d8b625996c307d065fd85d3501c32f9c8e2d1308c0fcf766bf632a02f099e880295bc3c94e8759065ca213601702eea5ade3060cf2b1121cb10ce48f85e067ef97b8973b7ac810e83ff2935b9a4838d72e4785a2d711622f2f80e2f3db2e749723b491839ab320c1c4b1b56d9631abfc810873f21e14a5e7b144c2844fde2497879d1780532bd2a3694841dec68ca7196c472d9a42e5942115130f534e4574c70d943599ec758aec89b54017eac2d00342231529f6a42d323d108f5398000ca60e2479fe86c96dfe203c269d15aa47d959137e3e39d9558ac47de49f00562047a33c72f1eebee4dee93ca8030479922d9410c39e1560319828b44e7af25708f858e048d204f91ff936146ee910acb2bb015f8819e50fab25370deebd71f3fc5a9cd63b8a9783f4d34e53f775a792c247d348c2b697c8e51068d54a0f65e9218c8636a8e780a017a9c54071f0e588ad78b19a4c3c7c0a0732ea9fcf85fa005b9d2851ad9d6210d67a0568dbe031c951ca2511b0d032f3d37b428f5bcfc08725b15de17d5c14b76f524c4530a06a7450c09f2a8ac80793458796f767629c70091f4338a90cf4387cb375f14d0c932456f5d24d1950268f21cca274e21d218170321e045e18af429f0dc65487f543da00b3e9e2d03a8938042f264afe4b4871deee78a5224c361c264457a801322e442c842819acb4942e5b6c4185d2c8513fd81501c7ff101c573410b7b4b9648e85d7918b98959335e0086161fca10d10df970f135aa109fc1275eaee08106ff74ea8bab8a43a32fecb5f2603fe9fbd0843c2145065e471e0d9ac3ad301a0c26281acc9f5fdfde407e9baf5db946a4391912b1890eab23e29b8a367d2240a2be42a718bf20c7a87fd5a2e8494e15724f8fd6e43006b03c2f8fd8d3c974eb971f72651689f0dc0d5e9b896451fe0a246f1a0dcea537bed0d344262a7e0c29744955945906a36450ce035a16da12a3e54860f85c0a42e8207b5ae528b9500897c091f34c312839578fb56f82a7e4f3ec3ae1b34ac9f9b75485afa2c7463fd234e7ac30b1c86a32c03899b6d5674ac072427c6f992906833b8a20c57b79f1f02994658e641d7edcd98ea78313f43396763ac599e107e87174b6c0dbf07edb4b3056943853f1a0d472c86069051a0c04918c55c82882229a09c781cf0112a49b006278860d816f6695db8f69f5bc8a5285bc54988aeccb4e272714a146d6d524fb344e2abd4041deb37af5e1418139e144f2ccf8d4909a7f219c92cd8091fb23849cf8095479ba8027be73f9aafe884885504132ec89c8f9f3895aa0f9839164d60b912aaf30a145b8858ea45793a48b5bfac5e33b646af3ec0f064e414ec07b11c474278fc4b48d61808f32a8cfa319a5c137a1d9f4ad89498e048ca867c12a86fb3113448f9813e56bd4b439c114572e08f6e4634208f8004f5a65b61d0cf2a82a7b3fc4c49fcce6ea4d9829c0853ce490e02cab42e999c4a9723425f6fc1a044dabe210ffaad7cc6e67c19cce0d3df79bf3e7b78439d1957a0c794478b2f41d4e7e9fa06e4f8fb1e4c90fac5cfc969a360fa5a6515e42e5c71fa9f1ea433888e56141004e8389e6711129a5939950e93bb1afe0ae502bbe53264499c710f8c56c327422b1f4e8e10a7d67d90241efe5d4189d0aaeef23f8fde902a9a2df816894c63b12e061c5989365b051f10d5406641470829ecc082c3a4ad1f54e71fa6427171c398f01519e49273baee4cf8b1ce7e891db21d8f1cd22983e9788330d89048f0cc008a5f3d512505911975a39532a43daac41838c97c3c05358613c41b8a6fe001a281b88c3f46920e9d217eed6dc4c548cb7d52cf13b9032f49bade313687342abca85c9cb8ca2e507f2e4de0a235ddea6a995efb292273f70a378b238c9b570f8fb3c2c52b2b0682007316208fe9d41f37d16b505530f78f2aabf285a499040be87d96a38222ffe0d8076822e824bcf91ae72016406385d9660de2046860f5ae4ea2c7f48de941ca67757967e4d9ca91c63d28dcfc203efeb94a9f3c20cc1dcc80bca7781f295c7d8d67c305bb23204a7f066727ae55ca566e907162ce54a5f1e641e5d9ee40348e872dd8453798015b78cd60296eed4e62be3e102111435a4f5662a0cda468228de8acd9db65bc51e94ab21076a63c247e051953b806ae12c3231d004d81ffe2b48243b6160c42d19caa495dc5dfa1a00a264370f8b57a5b621834291c06b61623e044582329958934e16a9884c68d1d8d70296e08b307972b2d200ebf5c8b1d1bdbcb0e506aa7609914462f29b6c80f12b0076bdb6354b77a0d4e54510833d1775c0c75107791c5b6f9e4594136d6949d107999d693b023abd021783749a3533de89dc8bc7b2c48fbf92c24493d284e4f192b4b41a3db03e4d2ed1409214c97dd49c1816d94472daf242f6d5ebd0eb51b146977223734231520531958a7b4706d2f406384abe55ae5c1f87ea93c3c97be0c93077443aaa7c1b3f33fc560f1e8f414910cf5343ecc9b8afbf5129ce5b551ebe519722190d5b87cf21a648efb013e7716076b9261f7bb29cbb29237ac3e79b0c8a873154383f68a3768280f320f31abe3971d831e52e88f065b8497abcd7d89b97a2e6c46de5e0f27684da2fce8178081ac89c42b0330f54a5cdbfcca1f217ca423c8f0f4c7da70e721f2bc638a8788b0b4f4cc8249630f15d3b1ab9df10e55fa90bf60918c0c9012460cabe58e40cc18d0f611340aeae52854eb06d0da00f1167961e141cd378129041499c3ebc0e241332a514a67e8412f7310a0e9cd4a73e484ccc05c16a920b4ca0f19bc858d1b85eed791d2142f2a31d417743b18f85b1f56668cdf94f8dd6bed318bd0ffb03f114fefe640a4270bdda95419a8cdee3272c8078f61f7ca61084ce341cda9ce04dce6987819a8cdc9044d74242c26d3c113e010e95de4792e8c811f163d15674a21348bc8f80a63e816bd02fda03e1dba0eafbe3a3585a4786fd435d611ec14ea76f85c1444e708996e760554ad39002e4dd15171c179c121f81ae8e3ef3e35336e13720b8c24dda93ed3291757c70915b255de9d4af7d3962dc4e547c10bd2b01877ed700196f9c847a9ad9994b5993c963b8b1f44002c4c86b3804b99649681fc58782a7b1a9f81c56539e439e24b9919c28be2b50918c80c9e655f4f2b81d4c409c7872c8476061beecc71c8d6be7ca07d8b03951152dd9d40e5141461ac1874210e86493a297ef68937a69a6ea9df4f8e314f8a4f2370a02e424a51dce878a894c8a8a0ccf41694edef589c39f3933e522a6bc790e2d297399a07c2bb866e4206bf383a94ef88551527ec8965e19159bc0a7d237e74d3d38e0b5cc689c8da4a0c920f084e81c3033e33ad39e0dde84784d6c62fa46df99878b733bd322a9f248adf0321d0e4cbc2c54d6719b0879aa0b53b49938739f0856a22c492ffb104badf49f086dde6a00873fa06a83fbcaa0e30f7921e050ecfa9ea9a1f8dbca793e287abd2a06013422b6eca31cd3329bda8b7c128a3bdb408e72f3f8460b7f29caa4085dd16fe8187d124e38f2581a1deea7d257bc057a3f7a13dcc1fc6bb4466e86519067d536652908e8de8ca3bb2c6988278f0bc2414782f2ea83ec69baeb2acd9f00a1963778e1e4b4027d16e6417dc12ab16c8b809b635644fdc9158e6fd144d008da31ef6aad91857422f593fef4042b9dc5ba029f0efd1278f2be32a06f06c3ee3d55a9a12bec987b555a76e80d586afd9118185eb96bf8af2a547cd9c8ecb7e8597b4dbd4ef82ae2876f02eb8bafb24ba16d69fafb31a5c4f4063d545e018039eee448197d44458da01c1c488f694d80e0de88119fa1cd126da8906728014ee9ba40963e509e5b41164b54eea116135d164ae896e2143c0e01b3bc546bea259c1173334eeeb28c32160e5788a897306f7d18a63b5a0f4189b740a94c269336c1475da0a4632b7bde0dae40368b94c09f445af03a56b30ca0d7529806d2f135881c82c150257a36229d7298164d394d08062723b33b4fc5caaa7ff052f2af7ab9fd173466cea9cc89fef16391e72a6c7a3f0faf15242e93c15a5fe561c8f56cb8f14ddb56e671469057c0634a2f511ef85c71d67818ab0bfffa11e1941ca8deb6174ad7a843e4bfe2e410ee30b32a4fa8a3751738bbf40b3a0dc1566881af222f9816656986e6a007431046032e4ee20f24fd4b54092f4202cf73f181fdd7dcf91bb630a7c2019553b9b1e3c1a808d436c0041d8a2c233e9746c4b7426e655248357f6305f3deabf09916a5e955d204577366232fd3ccb280482d9c899f876f9e02a18d2caf9cea0c9073c182051a918733a705350132a0326c9fa893f1e14858f074c67abc885563be201682376a3ae5921010bf54df20ed1612fd71059acf91a2cd1d057390139901e067d408ca6552307a1895e6e82377b25cc59033fa889f2e9ea9461aad57647915b04c9d682051d23236015d4040929cc50f25615ab021ff67908e7c8917a3ace36e8e8e8b2cf214c941ba6f8c8c63b934cc2090af97c1b0c4212c99fb527c5c7dcb2f82a708e3969fe4c0f31a3a2979242808fd9f366edf9c14f633e2f869a5a41fee06e888233a83e74d85faa5775520940dfc01783ca0c63c1ddbe0748b2be54768da38a01eb4be38e98d4ed23ca591d4717136685670356b567481585ede059b34f95d31e041084873392c2e578284a129ddddf90288f8720415541c91b1d5534125f78ba61c714799d6bed726443a4d01e21dd9b57a88ab164f2996013dc4ad2d6f323ee78a022af49e330141099100df8c952dcc10d72aa30a95f73860c96501015a04636c69f52178bd7f2358eb7d00eac742e7c67338e3f21edf0a3f53dcfb5bcfeb2f8475f02880021e1526518f46479927e186ea97bae4be00b34be60184949f0812a6494578e01c6eb5fa499712e8dd28cd09e3c698130252255762b0244f5801274b8ae3c623916071ea11a1e70fc591cb6d455ab91d1e1a5dfc00c02fe580f5734a4238aebdfe0b5b22fec41dafb76047e989b4e0a5535a743ca98d3fc747ad17c487c9998dce380133bdc71581cd9f11c3c90308e8e3bfd858d126cab4fda5317bfa141f3aed464a2c5c2061cd13a4b0d0b58620d0329cc81152708496f3a64c3873f42af217b41875124d6d3c4f1ae03fc041f2221292fc90b4d3710de0a5391c47b9309688dcec14c58f8002963978cae315d43ccfeacc945703c8885e9297c84dc5c8ccc4809a8fc571f47742c6e8e5f242ae8586a63facda3bd3fcd1a4016ca92174632725d7a973f6881450d232fe8a5948a9497f60d29c2790367a173564e92a0e867c0d2611749aa58f4f27dc6545169878ac5b56342728482f91c585f69bc5e8175dd1a441e9483dc90b89bed384903f297bd37d326497958ce366d442e40f7d40be151d9bcbc80a799dbd0fb907ae54270124bede6e02ab608c9de719bcdae3a266195d101e168fcaa0e2ca39ef3412e03dae0de24958eaf3a970986504103cf9ab145afcd026a65ffa304a4b0a62eb5f11487a185167de859b4679ca853f278305465604ac90e79d35c95a9a64fe839e94e19703409e961b14675c9090964b91e6f4db90721732aea6d4a9522e33cb8210c69ed855c8a2e181028cf94ca070e82081e7c302d6e027f90074480aa07c2fb651af67b5d0ad842f4f3431c2cfee5e3c1c73e881d6095f86e27c182fa9178b80c157b9b4bc442d0879531c60f9c25d938f7bf4ea93f0899321d49d7a5dac7005299982921ff029a0e386e0c8a11ed5d008140970604328ae279799035893bd172e233f459208af328bd1a33994e714b68047b21d693c6245bfe024924ec6f8f3bd2ba2dc0e13144f67e7efa734eafb1ea802751e18637f29c7072fdb64c573c05af0824250ca15149d05c3c048baaf442774222e7b5e0c031599d30f08fea22e51069c90f66f989d1c9019be3f86217a1428aefe01ae4d8e24b9c497401eb98a10b63e6dccdf9f32e3f213e490e4b6023d7e978a501f41cf033fd4208c1e00249587217369b82f76129a4c13111dca63706e9c0054557aa39232c23621223c122f59c80150423eb5a1602d4fa632734e95de64a2cdffd95b359c05465ee68f05b734a9c923d092c94bb07abfd6234976c500f30dbc06b9aab53c9713eb4d1768d37ca52dac7282d7f3587e4dfcd462c6d97e5df01d9cf4bed11e1d4fc287ec67a1a9a5fd10c4990fcc23cf318b92bfe46d383760c17339bb2542350f43de0c4f898f32f1e60d565bee6654117f02c58246a2197a333b5064429538bd708d253f710693df524343035953e06b72663a04a0dd732042238be9d2e3a5fcd1a0cf4d85fc8ca25fcfe0ecf8715092fa0e01554f058da0f34d109b410db368476c00fdab1ca84e148c84bccc47820c1ec9f8a12f05e7ad247cfe17aa30bdab90d99fd9e4c2d3b8dcf0efa3e27938f2e4b05ed5f9e43e3ca2b7bd1f96daf4bd3c053ed286239fa0cb939ff0f5f768738e9620827d263b88e43d39747ecb96a203d954c8058810f59ad85ebc0c3453433647f90840429c973a29c88c68fd693a4d5ce4b12c61431159127cae335d7a072136fec303ac6cc4520727056b92866487c5d70a495e09b0520ee78c504647bdfb5196d26d0acc7d014f6ed9559bf803fb98e4547e9afca73c221ea704d19faa54c66dc0f1f43c708c3d599d3079002007422ca5caf8a54f13f49d2952cf9a7093330df8f47180353a736480e17d2cf1f0237c883c19854cb953ec3e822e6e740d2a213c55a9419a4867f72a4cf178037535dcd68b592fa042e077d8b5e56bc5752f66d9218fdad1ca8b6c401c0199975f7284a225e821933b9978f3a004217f17a9522715ba2759b8e1ef3c0187202fead02704c6434f4e60a34f3052b3858f5591f3541e2cf00f692e9dd1c4dec48705796863cef73283f34aa49b0f14404f1653d5cfb2c6929ef57f8e406e950b9882ca8d046bf2baee88fab88d23f391107b332772bf2bc584cc215298ec8d7a7d9bcdcc3dc48c1e49cfdd790558a32795e20c9e99b9c93a26e138b9046af22d3658f03639802f43ae42def28490ff2dd5ec068c2c07b04bca47b1b1745661c75f00fff1088e4a7dd911587ee5ca90cf5bb35fd726143a4a8d52aecac2a361020f9ebdebd3ace0d2bc064ea434d932c1b3b2ea8430fc40d13e7c98d17694ccd13e460878b1f64f1e50c68e73328e7909ca2eefca2cd2bfaa91e4577d51f542ecd6cc07059507442598fec3c3ee9dacd1a4612d68fba18c28ae2646e9ab96777e0ae9e04ee288c89904887936ae48e407257eb98410425e3848f8318c6384b0845af9c5811c279cfb96a9e832a15978ba91fbe6e8095a4ab2eb55cd10f2b5c88e781539093a48c7c89dbc12bc0f19333f6b41de2718d4c2d924205fd2def13088f8794694f2db48e4e339a99ae5cd3ada1f4c12fb0001a91bb3a9ba1a59a6d155a2684b44976b123eba688ac26becb2f09a116db24d230aa77f6a28e06edf1499d79654dde546e3946daba323d2b56ecb8cd17c4db4edd0d3cb616c26ff5078af18e217deb09b8cd15605da06ef64ba9518d8353dc276256ca0af5b026d43d19db6df9d220ddd450c285c61bf2ad0b6b4b434a50a988626d574a3fb55aa8028063514deec92f9bab1bafdd0146d5f66ccb26e71b7f14622dbb56d992f5bf3352a5540d4ae840da50ac8b2a99ad732dfbce66b6c6b992fda7c4dac4ba252b5d1b68b689baaa8deba24b26c5ae245ebae7a288615dda13737f7c670ab626e8e9d9b53aa807a39d0d73dc22c9baaedaa7c77bc8da88b87b6ed648c1a5757c5d0baab05148305740ed9aee8eb1edb54bc201e5d621ebcf7712361238a3653250ac7c7d504dae6c6a81bcfc53d5618455dd4b8e1b488ee37855d258a36dfdda218e276c3e82ea22c5b214e9331ba93784514c5d0ae28ba613d3db4dd30bcf7116da2f146b1f731cf8df3f4d0cd16d7784e4f0fb5806e1826eaa1c6bdf7114d51376ed73ca50aa8a7546d18b71e3aa7a7875a40dbec4ad84053f42f2f2faff96e665f1b3aa7a7875a4061221a016d835174b955354d952ae0ba24ba78c636b52b6103456155c50b629edaa6675441d443dd18d5d343e1b8448a22db157ddda3715da6a81e9feab27479709b1ba3a8d27d8f68f34dfd50965dffd0344e8d70dceedd636d3b8136d9e5326d8357e38ac27b3d6ea5abc64c176ddd1566b26abba26d8aae4be2abb46b1ef7a66b835154c50b625e0cb85be3666e665f861870b779f186f3da52b4c9ae4b628dbbb67599a2efe67bddbfbce3d16de383d318653b1e5d19e8bb8de94ec2cdcda26d5da632d0e6e6432fa07fe90bafec36baea360137375fde8edb50e346eb5a104bc8408d3b4edb1da76aebaa31d0363db963ccd443d114dd45e3dead7b1be04e573fd488eed78d63e37edd186e33ee0d375936859b9befe8a6e88e51a0c6bd6120a8ba8d6e897f2300479cbb1bf307013714dd9823e086147747438040d1393d3d3486d3258aaaeebe268d9219af74cda5fbc66d9d31a533be6e0d34c6d7ad613c733adc0266ba4ce45a5412f3083365f25d56a1aeadabdcad32d72024c93f9287c7f4965e08a8a1067edb8a706c1e342cd76299305db04c7182604911213efcfad8ada7a3460c3b1575c4101d10c0b521a81001820203011088210822f85fb96cc972a5aa54284d9622354234e88f9e3b73d89c0193c5ca93244580fc1d88977cc7228f1a325aa4a01331c7e18dad4284030e0e1c3830c02cec8006a6ab562c56a53e618ad40851203d73da9801c3a5ca93254680fcf5eded14c78cbb162888203abc5d9000c1400203030c00304066406820ffd2552bd62a529e30456264e8cf9d396dcc7cc932e58992213f986e01a4aac3c68c172d50103f6c78bb3001ad008302050a9c15300b2ba07de5aa052bd5a84f9b283d525408109f3b73daa021c3e54a14254582f8f87bd9ada703cf2e055d0802731bde085890400025906000013302c301c17cdd92b5ca54a84d96263d5a5428101f3c72d69809b3c5ca80274b8c04fa60f6b149352f470d1976284c9000d141c300b6016a121e2c38306040d980b001c160bc6cc55245ea53264a9016190ac407cf1c3665bc60812200c9901e7eee6ae47143008d172dea48cc098813e0b6262082000707040810302620080c972c56a63c65a2f448d1203f79e8bc4953260c972b539c242102e4ef551ef5ce6cc0607196820e44070d676d676b6769670ece129c0d3803702676a681e9aa056b15a94f9a26394a44c88f9e3a71daa02103264b002a01981c0910a4c9ec5322d31d37f05eb03841e20387370c1522405010c0408000630182c076dd9ae52a5529509d2e4972b488909f3c75e0a819d3050b15274a8a04e9e1e70260b71e8e1900ec529818f181831b860a00d20034307006a00cc01080f7ba25abd5295099262d3204284f9d3768c880c112654911214d78c9b7f370ccb033ab13216706c74601cd410233036602ccc6cc82c072d57ab5aa54284e9622354a24884f1e3a6ed69c2103464b15284b8c04e9e1b764cb76de0dbc3b1627881f3abcb1ad4980b0a0cc8000b332b1325de6bc6cc15235aa9325488a04e9a1c3c6cc972c52981809d283e9ae642a598e196430c8589099201be1010e030574010133322199f3aaf50ad5a84e99283d627428509f3c74dea42103668b15294e921009d20356268d7a3964b4a813d1e16dac6dccc284b1076309c6cec88463cfebd6ac57a8446db2f40811a03d74da98019345ca122340fedc3d95c78d182dea44c8bd5d108b20f6208100b131b153cc75c95a450a14274c921c252204888f1d396dce84e98225ca1223427ac4cb75eb85e9a021c3058a30621888b0b8b6b5300961680c0c8401080b0bcbbe6ed16a654a14a74b90181d02a467ce1b3566c26cb912658911208070bb67d4d34123861d8a21710862e861c3f06dc8460165506018601836ccbc6cc512a622d50993244686fee8b12387cd193260b85481d224891121cdb84f794c75ccb84b41fcb0e1aded020554a8407840284048263c85beeb962c56a63e69aa04891122427ff0c409ba5153e60b9628498a08f1c174f78c3c70cc80115c6142c4dc06b60a684105068201c882c260fe754b162b539e2e4d72a4a8901f3c71d6a011d3e50a9473c98944880fa69b2ceea011c3eec44977cec59d6d6b67da030505029c63a730d8ae5ab156990a95a99223458400e599d3264d182e56b414ed441b0902f82a91451d335ea82841628ec31bdb9a9e00412fd008f4d9983e83f1b2f54a55a9509b2e41628448509f3c74daa429f3654b95284b8e0cf90118bb7c48bd1b315ca8281182031c06b5080df2812c2003c8635903db752b562b54a13a69b2f4485121407beab4495326cc162b519c282912a487df92dd451e3564d8ad385102845cdc635093f0e0137c810ff0633f7cf7a5eb96ac56a8427512e09a28394a5408509e396fd088e122c0b1405132a447dc26531d7802fc4e4589101c32ac4510e00d0e0010e06102dc7bd57a858a54274b901411ea63278e9a3160b45871a2c4c8101ff1926fa73982e1dda93041225808b9b80c17824578102c4181b3b260c360fa172e5ab05495f2a4e9d2a4478b0a05f2a387ce9b34c0c270b912a5c99121407ac0ed9e312f079e8b15278822807d00b6c1ed0205b4060908002b0316064c07e3750bd62a53a1385d9af428d1a03e76e2b44923c68b162b51981c096cc6ee9e514f870d182cea88203ab8ad457890e097805f66bfc27e6560bc72c96265ea53264b9216150ab4a74e1c3565c478c932c549122241005fa5afad7783060c1675223cf8826b534bf3e54081015f017c91f91afa3a83f5d2550b96aa52a0365d8ad4e8d0203f79eac85983868c972c55a22c2922c487df924d1677d080e142850910bd3af47a63ebb5d68b020404bdce7a85f5d2be70cd8295aa94a74c9620293214a80f9e396fd090f1c2eb0a2f2a4f9204f68095c83407af1a31ec4e8ce8e0662182035e067805e015c64bffd2b5cb962b54a136517a9488d01f3c73dcac31136697965d529a1c09ec11b7c9e20e1a2f56940821f766615785b45d0d762138db35b64bffc2258b15aa519b26312aa4ab0f9e396dd094f982850a9424813f00e376dd7a3968e8ba5b7182184257070d19745dd0a5260165a00bc100b3305d1a18af5ab054950ab5e9d224478804f1a9932b4e2e3766c06ca1e20449903f3769dc31c34e45ae12b93e6c68ab802e3890eb2c5759ae612ef7752bd62a529e3045526408901e396ccc84d142c58992213e986e1297bae3868c162948c8e17abb802b820304b80498e11ac32504c6cb16ac55a74279ca54e911a2417ceab8b965660c172c516e394932a447ec26d51d36f05ca830712b8487b8b6350910141408708bec96f096f7ba258b9529509928395234e8cf1e3b72d8a021c3a54a1323b67e305ba41e8e192e56940821f7c6b616c1168404046c01b01566eb7de9aa056b9529519d324d729468901f3c73dca831f3658b95284d8cd40a52cbaf8f45eadd906177820862839b050a288303b506d432ab35ace5bd6ebd5255ca13a6488b0afdc14387561b5a686889a1c585169527488a00f9eb53ae5b0fc70c182c5210e7686960ab90d68016025a026895d112a3150cd62b57ad58ab4c85d26429d2a2437f66f1b913674d992f59aacc8ac2a40810c057994c75d078312b450911721ad8d466a539484000c02cb15939982f5cb25ca112c5e9d224478a0c09f2a3a70e1c3668c46cb11285c991c066ecee19f372e0bd68214b051d880d19d6263c5020cb80ac335962b2f42f5db460a91ad5291325478806fdc923874d9a315dae4c61522456a00fbf58edde310f878cbb1575243cc06188a5162b2dd68358096211288b15fc956bd62b54a238598aa48850203d74d8a421e3054b942547027d00c2ed9e11965e0ebc3b15742160cd69c0300102ac04b006c01a83150cc6eb96ac55a53c6192d4c8d09f3cafe8bc829386cc972c549e303912d88cdd3d556f870d192e589c203117c7560165f0eac0abb35762aff42bef750bd6aa52ae4471aad42891203e75da9c11e38a8b2b2a4e5c211972e6ea872bc03e577beeaedba347fa16778f64cc749bc896e936996ef3cf65d9dd7cd3dd34be6913d9baefdf8ed7f72f86d7f76fb331bcdf3f3e75bf7fcbf4fd4bc6affbd77c5ff7cfc8beee1fdfebfe195ff78f75dd3fa3ebfebddbd8ba7f6daa74ff8eacfbf79784d7bf0daf7f4ad708af7ffb5dfffefef8daf50fd9ae7fbb5dfffe5c63bbfeb5eb1fcbae7f4676fddbc7f52f191bd7bf6d5cffdebd84d7e4df724dfeed7727ffda9dfc63f74efec569f26fb369f22fde7f31bcffb6d255d9fd677cd7fd676c37dfde7ffbafb8fff61fbbe174ffbde9fe6bdd65bafffe9ae9dff64bffde1da77f3b86d3bf259cfe25e1f4ef75d7f74dff94e9f14dffe236fd8b992d9bfeb16cfac7c7a67ff19afeb5eedf46a64dd74fc9645d3fb74d55d6f533aeaedf5657d78f4d55d7cfb8faad7e6c1ac3ab5fbcc2ab5f0aaf7e30f35dfdd89419bfab5fbbb2eeeab79169dcae7edbef6faf7ecdd78dd5d50f66baabbafac56dfa1657bfcd16d3d5af4ddf0dc3dbaff96ebfd66d1ed777fb15dfedb799edf6db7e7ef1f663d7e4f68b5966ea17c3a95feaf7bacbd42f09af6dead7a67edb8f4dfdfc361399fa29994c35f58bdb544dfd6078b31b66b2cce38699c60d3337ccdcc897d9a6c597196f78c97cf772c96cdd25d3c8bac92593b9e3d4b864b2ebf66b996cca84992d935de396c9a7ba6ccbdc2d335e5be666f6ad2d53f9bac7b565b64c23eb1e5be6bba6c796e91a5b2673b36acb6c99cc9465f75b54329b2c92c9a6eaba6cc67bd98cddbf3886d7bfb85dffe2adae7f71336ef75fbcfdd8fd176f367e9971fb32e3e6e67b9931bbdb9619a72d3366c6bbc88c9b6f9c8c996f1cefa592f9c64d96f9c69bf9c67c2af38ddfb8995cba6fbc5cdf58b9be319fbabef12eae6fcca6eb1b1bdbfd36d33766b75ffac649387de365fac6ef3eb62b327d63753d1ed337dec6f48df9d4f48d9b6edcfeb9f1bbffdcd8f8a67f6e1cc3ebcb7463368ddd1886dd78c3ab1bbf6eec1ad3f675e3cd2e976eacae4b375eba713276dd9875ddd88d3713d9baf16eddf8cf7d5f57e9c66ebcd9d58ddf9d8c37d28db71bbf9b351addb8991addd855d5b4e8c6319cbaf166e3358e8dfb5de3e51a37db35deca357e7751b9c631bbc6ef46aef136ae719c8c8b4a6632fe73df64bcfdd63719effd26e3388964bac9185e93717327e3fdee64dc7cdd9d8cdb9d8cb77227e3384dc67c6d9a8c63c01dc7f08edb76c7719bc62cbb6365bae3a49aee78054c63d78de334de319cc67c701aef651af3b569ccc7a671dc6e368dd9358d9169bc593e358d97ccb7092bdd78a96cc2ac5b543661e3ebfec149355eff6064bbfec1caf50f8e8feb1f1ceffd07bfe9fe83956ffa072fd33f78a94cfffee0764d63980933e1e6f67b99f0cb8437bcbecb97096fe4cb8499f07e99f056ee77c9849bec72c984dfbd64c2f1865b26dc6c5b26dc32e1772b954c385e99f09b2299f0bb8f4726dc6ea39109275526cc849be95f9109c7abb2c88499f0669b311cc3c7233386e3761b9931bc592492f9c630b2e55bdf188ef77e63b889dc7e6e0cb3ae1bc3bb756338a9a64a3786f954378691ed1ac32cbbc6309fbac6b0bbdf1dc3cb1dc3ca1dc37ce98ee1661ac3f19bc6b0b14d6378a94c63187ed7348637328de1e3318d61257335a631cceef75d997df0eeb137b30fde6fcaec839b4b18d9aeef1236a6fb5dc2cdf45dc2b1bb84e3d75dc2adeb2ee1d765577709c7eb12de7ceb127eb7715dc25b5d934bd8d8ee25ccb27b091bf75eee65fb972e61365de37409ef375dc25b4d97703266baf092e9c2c696e9c22cd385e3d7859befebc2adebc2c8d68577ebfab12e0c1b57d685dfbd1a59177e53d685e3a30ba74617e6535d984d57d585dfadaa2ebc4c5df8cf6de1e3716de165dac29b2f6d613e356de164ecba4a78f3b94a78b3ab128edf5409b36caa8493309385ff5c168e5d166e53a4cbc2ca9585e16d5c5978ab2b0bbfdbd86e165eeecdc2ca94858b290bb32c930f8edf950f6e573e9865573e78e583e11da77cf0eeb1c2802bbce39419aff0bb637885dbfdc25b6d57187e537655b22bdc64d915e66357386e37bbc22d72853772aff036ae309fbac2c876658b2bdc4cc29b3d1e994918c97c93f052b9be4978fb2ddd241cbb6e12de6e12e653dd24fc6ebf35092fd724bcdb35091bd9bd26e1e3717d771266d99d848d3b09ef374dc249383ea649f8cf35a649b8dd7e1b5e32e30d6f368e37bcd5d5efdd30bcd777c3ed865f776d37fca6edaadc30cb6e188edbad446e986f6fd8b837ac6eb875e3fdaa1b36b6aebae138dd70527dd30da71b2e325f158e97ebabc2eddeaf0a2fd3578563a6abc2adbb2e5f5785e1d785e1555d559875dda40a6fe54eaaf06eb70aabf07e53156e53156ea6f0f64be18d4c61660a6f9599c26b1276e3146e1ee1354e61639bc2f056a6f08e996c0ac76c0ab7ae924d6163caa630bba6f03ea6300cefd698c2b03185d9f465becdf4af65be2df3dd2cf34532df6d64beef2e16992f9b368d2dd37d93c83476df0dbbafd275dfbdf2b9ee7b74dd77ab6daa74df78f3a9ee1bc34cb7e8be319cbaaf3175df77fbad2f9b32e3f5e583d777b3eefa22dbf535aec8f58d93c8f5ddec717db7717d93eafa6e757d5bb7585cdfe2fa2a937133f9feedd5cfaf65ee374ef7bbc6fb7df71bc32bbcdfcd16951bdeef66aaf07ef71ba77bb9dfb7dd4b77bf71bbdfbfddeef7ddc676bfdbd8aecafdeef76db2fb3dee95ddef0b98b27bfb7d539689dc6fbc5fe47e5b7745ee77c3cce37e95af7bdc6fac6ef6b8dfad328dfb7d8d7bb9aafbdd7eeb56f7fbee97ddc5fdb62ebcdfd7ed91be7fe9db6ebff47d779cbefb4d5fe3ba4cdfa4daa64d964ddf764d5f764d5f7735a62f9f9abe5b4ddfd67555357de3b5584cdf1dbbccbe1e2bb32f5e997d7ceacaec6bdd358637b3efddf19b32fb94ccb84d997dcc3ee3aa4cdfe672b33d7a30973173998499cb0dbfcce586dde5cb642e5fe6b2b95c3297ecba642e936acb5cb62bdf52c95c2e59e69265994b64bb1a8dcce5d2c88cdd77f9ee25ecbe4bf75d1e5df75deed855baef3256f79efb2e95e98b74df65bc1edd77b955a6d17d974be5668beebbdc3dd677d9baf0fa2e9bf1da7c53e5fa2eb7717d97efb219c7fb5dc6ed86f7bbdc6fbadcef7219abab71bfcb0dafe9bbdcea1aabe9bb7cb7f1cf5d36e377fbb9cba51ba7b1bb8c6177b9d9e20ac3ee92b97497aceb2e9badbb34b6ee72ab2beb2e37eb2edf947597f17697caed2e37b265b24b24935df2a94c76b991c6cd2e9b29bbdc71ca2ed965bcdb945da63d7aaccba41aaf4bd68de175b997ebf2ddbb75d7255fbb2e63975d972cbb2e5b7723d725725d6e75afcbfd3263755daa6babae4bb74dd7259baa2bdc4c2e379cbec9a51bbbc9e56edde432decbd685dfbd8c57e5bb97b1ba8fef5ebe7bb9dccbcd2eddbd6457b5ddcb66cca6ed5eb67bd9a6eacaee65dca670ba976fba9731b34df772abe95e6ebf74c9ba6fbcc6e93219a74b385d36e3375dc6eefba64bbe375dc6ed4edf74f9ee65ba7c77326ed325bbdb74991adb74a964d3e55653365dbeeb72b34663ba8cd574b95bb787ebb61bd90474dfddfeb9ed9ffbfab96ceae76ee30ac74c37662e63a6fbee98e9beae6b8c996e525ddf1876db34b97c5d3675e376afafdba6c8d76dbe69bb1a5fd7e8c66bf1755d77c3ee72b92edd762fdd26dbbaadbbb6ee6eddadb66ebc2a5d755d2a9bacbbfd56d635b26e33e573d9d56d777c74b7ba1e8feebb8f47f778745fd7e8bebbe8c6aadba65b755fa6aaba45b75dd3b8e816ddfd3255b8e86ee4ca165db7b98b2e5feac6cc76c32fb35599ed9fdbb2dbcf6d5b64bb2663b7ddb1dbbaed86dd3619bf6ebb59a3ebb67b6f7875dbcd16dd76ab6b1b03ee16fedbedbbfd76cba66fccdced6ee3ddc6f06eb7dfbbdbbf9d5ceeb68dd5cd2277bbfd5ae3de2d9fdab6cd184edbb65df99669bb9569bbfdd6b44dc64d65f3dd31dc541ed90d37956cca8c99ca18662ad515662a95aefb2661a652c9dc3053b95915662a9bec72b34c65bb1e8f4c6552652af7eae72ab79fabdc30d355b66b1ab74c57a974e395d907bb4a64bbb6afabdcafab64d3d755b6aeab4cc6addbba4ae5ebc66beb2ae3762b5da5d255368fabd155b2dbe82a37bb165de57e9931e0aa346ec05509b82a375f1ac3ab12865765f3ddf0aa7cddf75d959b55d37755ee98d9ae4aa5b15d95eaaa5c95adbbb2ecaae463d7d6b82a376b34ae4aa39bc65b9984b7b2f9be5b19afef5636d5772b99ed56b6ee1ab75ba98cd9ad6c1a5d762bd3d5b8956c6adc4a756dd3a4ba9571ba95fb65c2e956b6e956feb9c6742b778f5419a74ac0f58d5365324e956cbabe3b4e9549354e95ef8ee15409c3a9920f5edf3755c69bef7d5365bb22df5499548b6faadcec3255b229b34d95a9d245b6a972c729326d53a532556ebe54f9ba7ba9b25d5325bba64ae39a2ae3dd2253a5ba2253a53155ee764daaa91256d7b7c9365f2620934daa2d937dd396c9b21b9922914cb6c9a73259366dbaecf673d98d6c992e6b64ba6cf3dd71ecb24bd76591adcb36d9ddbaacba225d964f75d977c770d165dbd4658da9cb1adfb4c7cab271bcb231bcb2c695d9b7b2adbbb27cedca16952bbbf956363eaeec3eaeec86dbadae6c337e777165df7465d9d67dd3a5bb59b8dd6c3246b66ceb2ae175b346e466e3e366f7cbf44b37dbbee9668fe966d9668f947d773365e39509ffa56cfb97b27f299bfaa56cf335b6cc944d229929dbae71cabe3b4ed98d7c5376e9c6cb94ddc894896c5376a94cd9cd97b24d63cabedb684cd9d72da62cbb8b295b4cd93fb7e5e353dd966f1fd7966fef966ffd5bf9da1dc72bdf8e57be7627d578e58b573e185ef994ae11d9ae7cc676e56beed6b8f219573e3e75e56b6ebe2533a9c69b6fb9375fbb379febbe29b24df96298b9c7d732f75e776d997b9b45b6ccbda592b9b7d595b9b79146e65ed3dd6beef665ba7b9bcfdd6b5777afe8eeb1fb6fef355976efc16dbaf760a6cba67baf478f74ef4df7de94894cf7f69aafebb72a77bcee38655d7835b6290bafadfbaeedbae3d5af5dddb85d63b85d59368de176ddefba84db751b57186ed7dda670bb36df95d9d7ae3173d9ae71bb55b76dd777b7ca766dbeccbd768dd5bdd7aef1faee64bb6e364db6abf2758fed1aab2b7b6cd7b84d8fedda7c6398696cd7d7758ded6a6cd7752b5db55ddb35a9b6eb8659e652b92ad70dbb4be5baee96a954ae1b6eb752b9ee388d57e50ac3bb65d9954d919b6557965df7ebb6c875b3c6b5795cd36d5c5b575db7ba1ad7b7d84c1adbb4083393f1cb4c36df9799dcacf16526e396996cbec8969934eed7d83293afab6426936daa64263792992c3293eff673932fd34db23b769331ec266137b9e1d74dbeeefbbac9f675937be9268dae9b6ceed64d6ea59b4c3653e3cabac9cdba4923eb269b9b4f7593cd62d14d365f3786d7e47ed7e4724dc6ed9a64d9359944aec9761b8d6bd27d77b2ddc925bb93f156b23be9b2ec4e26916e72238d3bd9f44b773219b3e94e1ad39d34be698f34c9f79726b75f9a8cd3640c6fbf374d26e1374d1adf34f9bac5374d3697cb34696cd3e4bb63589926dfad54a6c9239b26df354dc66b314d2a9bc896897cd378652263766522b771652261783391c6376522e396f922ffdc17b964ba2fb2f96ed57d91f1fa228f7b7d91c6f545b67bbfc866bcfaa52f1286d317b997e98b8cdbf445b66bfa22b79abec862fa22db3f17d9bedbcf452e57187691ec5ec22e3265d9f575911b765da4d1759146d645c2f0361a5d649cbac8cd64917f2e8bdc7e2e8b6cbe2e8b54ba2e8bdc4597456e78a95c59e436ae2c12865316b9df9445228d298bdc7e2b927d57e44622378b44aec8f8b822e3365d9131ec26e18ddcedca6c3772b371bb91fb6d371266aeed46b2e9bbdb8ddc3d52e44632532472c7297209a7483845c6ed56be29525dd93745b6db587c53e446a66f8a5ca6c8ad4c91cd77b36c8a6c02a66c8a6cd714196fa43145ee9719338fcd9779dc6adabecc63b36d99c796796437f318afccf7d8ee1eee7b6cffdcf718c3ee7b8c5bf73d22ddf7b891edfa1e8ded5edf6312deef316e37b36fbf477645a6ef11d03dbe3b86dd23bbc2b07b34bee9dfeb1e95ccd73dee9619bfee91ef758ff146beee3186f7eb1e63d73d1a5df7f8e7b2ac7b34b2ee915ddd23d23dc24cd53d2a53f7d8648f4998c91e8d2b933dbefbcf658f7caacb1ee3d4658fcb953dc649e4ca1ef7668fafeb97b2c738658f4938658f5b99b24764ca1e01d7230cef365e8ff1914d55783d2adff5b8dff598845764bb1e77bb1e8ded7a64d3763dbe3b66d7a3925d8f9b5d8ffb6522d7a391ddebf1f8eee27afcdbc777fbed63528df7914dfdd618dec7cda6ca7d64f73e1af73eee7d64d3771bf7b1f9a6ccb7b88f3b5e5fd72f3dc62c333d6e26728dd3e3bb93717a64d3383dc6e9313d2adff4d884d3b84d8f4db54d8f6d7a8499ae323d36d955991eb7323db26c7a4cc66b7a8cdb353d6e637a6cc62c534d8f5b4d8feafa16d3e39ffb167773efe64edf18f05d02ee0dbb4bc0ddae29bb04dcfb5d97806dba04dcea1abb803b5e01770caf807bb32be08ed7e29a04dc1b5ed57703ee1d33d50db837cc5401f73632591570ef78550137e086e1ad02eecd2e9529e08ed514706f3fd6f5db9bcff5dbeceab7b7da6ee3eab761754dc69b4ddb77c77b6fb599c2f0deadbbc2eebbb7d17df786d377a7ef5eaeccbecda6ccbebd8d2ebc2ef76e77f35de376bf3b6ef77e9970bb59d67ddb9d54d7b7dd3b8657b6dd4d77afdd5b6dd364bb77bb22dbbd9129b2dd5b7ddd63bb9bc877b7bba9dceddef0eb1adb0dc39b35b6dbd8ee584ddbfdee3f77a9dc4d975d2a77ebaeb1abdc7babe95b54eea6d12d2a37df9b16957bc3ecdef1caeed78d53bfe472b37bc7adbabeef36b2fbcf2db2fbddc978dd48e48e5ff778dc3b4e55a671c7ab716fa47137956eebaa5bdd6e52dd4d38dd319cee26bbc2e94ec66fbadb37dd4df64df76691e97e3732ddeaaa4cdba6f1f8a67fc666cc3426d598698c6126d3b85ba6b1a8641af954a6b1f91a95ccd7b8745fe3727d8d7cedfa1a59767d8df1717d8dca74bfc6bff435aa6b0ca7af3155a6af313ea6af71fbb9c6cd1699ae71c3aef1755de3ebb6aeb1b9f95ad7b8e33555bac6764d2e59d7c8b2ae11e91a55d7f8bab1ea1a9b3d7aacc6adbeaedf6a8cdfedb71af76a6ca6ec125e8df06a84e15509afc624bcc2ab115e8df06a8cdfd5687c9929ecb6abd1982a959b5d8dcd786d91ab914ddf7d3caec678af4676c37b356e753536df74351a5b5799ae46365d8dcaf445a6abd1b8d5d56f1b972ebbfdb6315677bc8dec9ac6db687cd774096f231fbc8d2d7285b7317e37bc8dbbb8be2abc8ddb6f7db7b1193397db988c97db686cf7721be3375d6e63b3ddc61866d3b5ddc60dafca6d34b6a9721bdfedb7b2dbd84cd96ddcfb456e63f378dcc6fdee6ddcafab6ee36e577655b7f1dd45e556b7711b53751be1f52d6ee38ed3e236b2e936365363fb971adf6d4cc2a911d9ae6f6a346eb54d8d4b656adcc854991a8da971c74c55e9c630536ddd350933d5edf73299aa0a33ddf565aa4ba6ba64aafb65c62c53dd45a6caa631dc7cd5e6ab2661e6ab26d596f9aa9b2d2a99afbae195f9aaec66be2a9bae2af3558d7feefbaa4bf755d5355e5f7509afafba95ebabc69b4f5d5ff56fbf2adfdeaf1aafc6fdaaca74bf6ab347faaaec5ffaaa6f124e5f75b7e9ab2ad3578d8fe9ab6ed698be2a9f9abeea8edda6abbedbcf55db1566baea865fa6ab6e76c974d5e69b5499aedaba71ecaa31ecaaedebaafb7555367d5db5b974d5772f97aecabaaecae7baea565bd67de3d655df6d5ce1ddb6ae0ac3fb45b6aeaa7cd763ebaab1ca34b6ae1abf5b6d5db5d9a6ae52e9aaeaaa74d5f8758f4a576dd7a2d2555b259375d5d7655db55d5d955d5d75efe3d18d99adabba6a0ca7ae9a546326abbe3b8699acba543259b5c864d5f6cf655523d365d564ecb2ea865d5645baaccaa7baacba5c59555ddb95558bca95558fc79555e376afaccaa7aeacfa6ebfcdaa7cef66d536ddacda4c59f52f65d5e6717d53565da6acaa5c53566557bf556dc6abdaee1e6bbcaa9b55df556d5d65dab6abfaa6c8556d5f6652e56b994975b37c2a33a9aa6bebbe4975c3ae9b54b7baba49b5b95be59a548dec9a548f7b4daaede653d7a41ac33ba936df7727d5e34eaa1bde3ba9f2a93ba92ed3a4bae134a96ee48e97695285dd34a9b6eeba54a649958f4d93eabba6c977ab6cbadfad365f66dc6e1566c2ed56d5e6bbd9ad6e75fba56aaac649243355d5e6eb22779caa49354e55a4cba671aac6a9caa64c3855371bc3a9eab62b9caa493855379caaf19baacdf74dd5782fdf5435bea9dabac53755df546dd7345ea62a9bc6eb7299aaaddb6c53154efdda54dd6d9baa4d639baaec56db5465d33655db545d2a53357db73255956caab26caa6e3e1566c66aaa6eb698aaed5a4cd58d4c8bc554edd183597c7793c92c366166118677bbc2cc22cc2cc630f26516db6d7c99c577f3b5cce2668d2db3186f966516f95866b1c8328b2e9b1e8fcc62bc914666b16934328b9b2d1699c524cc7c8bed9ffb16dfa2d275dfe2eed1ba6fb15d595755ddb7c807af6fb178dceb5bdc48e3fa16f9d4f52d168de97e8bdb2f7d8b309cbe45639bbec5764ddf62bcf9d4f42d36dd22a05b2c2add38768b30ec1691edfabac5620cbb6e91cf758b30b3758bbb758b45a55b6457b7d834bac538758bc637758b4998c9165f265bdc4cb6b861a6cb16952e0cbb6cd1e8ba6cd1d8ae6c1186375be44b375b8ce1942dc69baf4dd9e256a66c711b53b6c8a7a6ec5a4cc6ef5a34be6b712d1adbb5b8f9d6a2712d6e566daa6bd1d8bacd5d6cf7fe8b77f1dd71bc8bcdf48d77318677315e8fbbddc5a4daee62cceee29fcbeee2f6db2bbb8bc6764deee2f64b93bb78dcbbb895aeba8b1b66a6ea2e366366ba8b6dba8b4935ddc5cdc6715a8c371f9c16d5154e8b1b4e8bec7edfb4d8ae29f24d8b4d76bf69f14d8bef6edbb498b6699b165db7a82c365b5765d322322d6ea4312db6ae9a165f97dd49352d368b69115e0153e39bfef1fda52cf3f8976ea50befbfb499fea5fb4dffd2cd97fea5c6d5f54b5d63aaba7ee946a6eff64b5b253366a66ecc4ce39699c63013c94ce3d5c84c9971ba8dcc788de3d4d8ee384ef9d4348e53a51ba73bde6c324e53653286d3ad64c2701ac32b0ca7f186e1346699290ca7b1ba9770ca07a77caffbb7c66f1aabe971c76f1abfe9f65bdf378de1fdbee99ba64de59bbeaef24d8d5bf9a6ca37dd4ce49ba6ed7ed374bfa9bac6ea9b26d53765d777996e3ff75d2ed3cd2e97e99beee5326d225dd65da6f19b2ed3669b36e3bd02b6e966f6ad719ba66dbbe3367df71fdca66dcaa6ccb64db7da32ddb64d37cbd7a66caa5cdbb4f922db74b3c8367d37b24dd3d74daa6d1ac34d366d53e38699ca346e99ae3245b66b8f5499becc1da7ca347d77cca62ecca66972c9a6bb75d934865d259bfeb92c9b3637cba62c9bb67b65d3f8dd6ccaba4957655325b3c8a6ca3765d3cdc2ebbba6ef9a2ad7d498ee64baf78b4ce37623d38d4cdb3545a6c6357d8fa9f1758fc7f45dd3e33155d7a2fbee74abab9f31dd6a9bfa19d398651ad378551ad3345657a331351ad378991a533665c66faca6af1babb19ac2b0fbaaa99aaa6b0c335d3535ae6abafdf69a54d5544d553585e1adaae98699c5d4f832e1621aab69f175e1621ab71b2ea6dbcf2da631d32da69b2da669eb1adbb498b61021428e0942dd3440b49ac484c7192b4dee21fcac5509e3ee433fc0c8766db2ad8b1ad3cda26e8cc2f15a44d7e391795c9330fcb6a96f6d1cda34b0b185717730ee7e7ed970eb2ee11d43a9da60ef8c2db109bb2eb68cad540191692cc3fd8d861b0da4dfaa2beefa0cd3590ff350f8aa5203a77f28cba62a4a3c5365e34c55589a4453b45d953b5ed1cd22db15468967a924b97b1bcc2c9ea5a2e2eeeeb646380dcc5434dc7d869fa5fa3696dd7f708a6240b66b0cbfeb113dba28dad66459e61135ae4614dee8d14561a2712b77ac42b9631570325e6b9430ee1db72a926a9cd2a1f2113363bd6f1ddf5d1d1e1c8db8ddabda12df68c4ed5636d365de8e71cacd5db9e3154e0373f7586153b01b338976dbee754f205765de5edf386fc7690cc3c1b1b5473636b663de9b570ad08de81c73a984db742903d9ae7373bea2719bae6fea0737d33f96b85bf76fbbd8eaeb9e40b6abfaba27e0e37e5fbc6e4c03d9ae7c690ce7b9c756451aabc4335233ce48cd915283576506155ecf46a981371386d70c45269c21a9ee3883d255db8acc64bc223364988397719c446338ddec12fd60dcef4622d737de2fd388a6a3c4b8b3ae5b346ea5ab8a88e3c0140142dd345e777d9779eebb7bb46e9b17c3299b2ee1f4ad4b973244911145e22c142d6f8be18d443261344e225725ba97cd38455b7427630c3b192b99c837457732dee8df762123541f77f7506dcd3cc0380e2a8c1b703df1bab19a1e8deefac2c676b3eb565fd7658f2cbb16dffd2219235bf75daeea8e61dccbe58e6520dbf54d77bbb6488ded7ef771bf7e2fb304a807fe622353e5badfa59175537c82639795c1ec4b9777c67665616c57be4f09dcddcecf3c353af3f4e76d3b74c42e0b6330b62b5f0e1d6df04ec2290ba346e3dec6b8dd7e1b85d7241eda16bb2c8c6ee51aa36bea7a5cd5bd84d98cedcaa7666c53542f6fc37a7bb94c93a89eb15df9f4d076fbad48741b77fcbacbfda2689ba2f08aee7727f1eece3ce968dbcb668cc2fb78741f754ae1c4d875918453560672b3db449355eef78571b3ecca2209a7b10ce336b62e1dccbaee8b225386f14dff760cd77d616cdd623ba355b1d57429c36f85db7ddc26dad58e75dd17bbc7deef0964bb36dd3786b789762fef769cc62c4bfc4b5f63325e6bb44c77a9744bc0f0668d1b665d7799a774dbbc77bf50ae295b62539e630abf6daf52b9616eee552a95ca4d05dcd1b93c982fdd4b779712c533c4e92ec66fba936cbb5dd9d66553ae679af478dbab8949db326ef7fb324bc4f0daa2196f38ef4c5309f736e35ed9e53245dbbd8b289c26d178c3683345ffb60be35632e11dc3b86166fa02de6bbcbe6e326612ffb60b7787e0679982b91f5d54c96c37aaa787ee24dedc5cba34b6e98bf4abcbd467698b9f599ae267969484b56e09e336b64c970ecfb8df15de26fedc16ae8bf7c6ed0c63cb7463bcae2a63c72e8db865ba25deddb66b0d64ebbe35e07823df3486d3c0f4db3d5619ef5d536d37f2ddca3a3e352db26c7a628671b7c85546bba6c912ed5d5ede328fb954ba25dcdfedc7ba32e0f775ed5c17782c9b9660b2ae0ce37edd5886eb824f755b2869c62bbb165738dd2792b8c37cea4eeeb7758b4c19acebbe20b6336237092fd35686bb23a983dda58bb9b977b7abdd666b996c1b4e934bb6356699ca0ccd787dd3a5fb6e1c4dbad65de1d56f3531c3dd851ca9f4cbddcf2889f0334a6f7e4609cdcf281df0334a677e46e9f4b349bafc6c922b3f9b24cacf264972f7e199b0ecddcdb485ebc2b8ff5c9625c6ae8bd87563b4ee6adc31cc4c938075ee5e04cfdd890c69f2b97870b34ded5c170f765dc478b79209b76e09770f6c57e4fade1953ba2593cf755bb8bb907727e33b770fe2ee40ce1fee2cd3e8da19f7668ba9b1755d18593745bb7bb8ef8978c330314ef75b2276db362da1642ad776b5fb73d94df76ee3eae7be2f9a6c7bb7d962caaea95fdace808d2df384bbf7684eba03e4b0214e031ce09b71f3a96e8b123b76fde6e690ed1abb7e79adbbc6eaead7baea8e5d1abb755d1855f0c1299e2412ce07a778acebbed8ac51c556d3e3bbe376cddbca35deafabcecdbd9bcf7de3762b89fb754b9070f4552ad9d85ea532af79dcbb79dcbbe8ee6f7e16a981bba3c1f07e8dc6144d815787ba31dadc2cd4952d325fa0374ed4d5d1a1f1bbfde4e0de9890ce6c131b4ef7abb62aded544dc6e650c33f78c441899b227d23706ac6359a20aaf767b9f80f7b219cfcdc170ebc2e98ee16e6c99ee89d875b18dae0b644ab795a98c5645ecba78f7ea97ee14b1eb025ed9b9b9185ed93c189916f3e225bcb67814e8cb0db3295da392476f678f1238eac6286cdcc8364daa4b17ddcc768d5b575ddf1865ba37a6f899233fee155a78bb46784dc668525d937f280664ca1e513c742763d4b86126ca746ffc78039bc3a8f4c79acd223108629892062183866486b4010de31300c09058240c86a2304c9248cb8c0f14800573a43a4917a8410e53c81802082080008000000000000008860a00079231c1158c62203e6baaa2dd581ca0407a91a6997446e74711bb25aa4283deface826de0d1829625e93fa6ff483a94a438f7d67ec7d278a2d938efdd7cc2d5c2621de3a1ab6ae578275af8664201565af0f439a27145585ca984b8cbf45d413162b97d8103d38eb8fb8c646b13d3691bdcfa00e33de540428c546c4c633533fef0633dfcbdd761b80fba2e8061b5bb9e1eb9c44792df4599eebc1bd6530ffa30d193237d815f2a2a9c7496242595a0daed221b7b6200390fbb9b19b521cd6e4922de8c3163dcf522bc11e940f8640b5268d5cc6708183b26e4305149d2349a1976fe2ec7615ac13aa8a9c6a047ac512dd7dbebef208de37312265020cfa183349ea032a7531c83d999189e842b50df29bb075c43bd60484f3315755862842c82cd8d280489f631541adc168455916891e6429c6d51d17b665f69e60ad6dd90315401ca758b99175f6ec99af37b4bbaadf184adf0362b1cfc1e0c8c87b38821ddc58161e4b6b7d635de20541de37f017f482e8447c56c13cd5b45fe47b577456890bd68d4596c3db236f66a00d40138d42ba6f44792f108e515843f977ef3271c4d8e4bdeced8dbdb80d1e50444c2de28b5e9c282ba6859173c14f91705a3d9558000701d237354433e9c5182b436df5150e546bea49f689448a49a083690bf30f8450e3452310092a8d300e4f1da227954b6ee68a2012cca64a1bdf5a616aafe7a3543fe17207a9f57cf55235eb070214d29d1e40a31465a833b0f3877a060e54e44f0659ca0d6900279995ae8631a7f18b42568874a320aaf849128c4df9dbe5408af089746f80c1138e8b22832d74f17dc6c3a3995183bfc861ac9389da7298c1a99120bac85b8299e5b22474d587532e10d7b65b130e213e01232ae9988d5df95534d0fa3510b87d5fe93108db6af9e256a2b6afbbe3b65114eda84aa3ce0e26cf65c0933a1da9a7734281b1fe195c419421135ac2525c8e39e59c6931874f7fbaa5d5d8f338a7389582e0445deffb4033181453c4eebd7d7cf0ce2f57953b1ff18ad36bf2f2386289bde4ec96203408d8cd0f79f0079969d90b4db164fbe529e79d8a272ae272d86504aad3f2e8f37a78ddd84ac38543d85781b1280923ca0997821a781838f22221250f652873cf5bc748ff497bcb310731afecec130e5109f770419428a4953ff63a4f73756513a6eaaa6f73e288424c83137568b410f6b7322bbaa665d9bfcfdeb4d9a2dcad0606a5cadfe24c6d08bbf0c4171bdf0c80bd81764b0651587bdb517dd084ae93433ffde9af899053078c932e6a5bb63b6a7a4c1276eaed92865dac951f5362d92f31c3d56669b2c32345e57c82a272966c620dcd789c33949204b4964a0206d6100b0e9aca3bd604c229286792fb4afb2c9e3aae82816f343a2998fc51e54101195311bab8e633f81589eed301b3f88c84e4a5a4d4b56165a461c5fefde3fbf0e17eb5195811c737e8a90a6869530a234bb3cc56b8793ad14b9e9b164b879e87e6df883d24e3f1042e0905d6faaa17745e2f99790a56f7c4081daad38405f89a7ecdaf19ee3f81fd91c139534f25f3dfa4b4532fbec33ce804e46d10b964917319b4017e42be73ad8ed2fd5f53a65290af56cff27aca6fae0e4db9989444948b3669a0d1d81558d3db329667c483de9ba4c0d5ead9c7eb5f1e9aec9ba8be6ad9ffaeac601df863d2bc81473b83dddb06a89cfc6c5be83e775bd1d7efe3977216d1acb941acddbeb5443de6e08a67b88c778932f1ff619dbb68187b799db841b50ab60e52658584d761d36ee9fb93af5880ca74fde0667266292bac7c5063627076c3943eb677c86e5748b6b5b6cbf2913d6d489e5f2c8eed9b2b665c7796c6748d8e569759b371a7b27570c9695439fd065c30c7b1163c59c8f09ea5af7f7d99da9bb6676ea1d3feb2b06717dcc6031a65cb165d3b69538d9c1c5645bc437c05f0da067fbd956641c478288e5cc35c96d4e712b8a590d438a33cd0769d623bac761dd607bcc8e254027b59337f502b66946bdd2ab7f7dd9b21ccbd6e6ed350d35da46db3f84091ebcf361fbb00e16f5c26590614007872b5036493cc518c878f2ab7395632cdef4acdb5b867131ed906d7203b626abcbfdb2bf174b79406beb0bf68ca04f6e4b060c53732735ffcd3e990da76839c7768eb49e6ec8d84ea63dd90b7745168be37410e77d64f72a83328d214fb85db5c644c67eed5eb3d31d0d88aff3c1cd6e5e310771d75afb9018e68946a7ab4fe82219cc827322be091bc0e58d4eb4fc7ebef3e27835263af5941b6c754b2f16c1064c1ff2805d6e3192e5c84e5b288387f322ab0db2c1762e35ce5105067f9307fb8cffc154bf998b88a6f4fb1f4d69ca295c34c34db66f681819a26def9306073bd146ec676de6882dddf4c4fdd2ad15199045a7e966d8d23209ed738cd01e1e611bf12fcab09b339362448e2dd749257435a9811ff7a45e7038877c82d636f0d0b4ea261ad4ebd13b370cd15876e138b6583f7bf4e09fbe9dd53ac819c060b418f7943362d75a0398a66d773ef8a633eb1d483eda6a4a0def9c45e8b3ddda735d00aeb1a70164cb674dca1a9379556c73469d35b2ca814ed7a1b71872baaad87ca1e91de0fa9b2bdae4363eeca92cc17487eab8a916b56e06f8aa6a322c8c3b598136a83fe1b7b3d304579d5e9df68e4f61b8d97e1543649436996762a4b6518c047412309f787b9171c06c1206f60a4cae95c7f3ae564db0ae85b04e79c796579b16a3c789c1fa5a8f3654fb6ef6241dbc7e3d6616ebe1971b335fbe0782de2663cda93937d7ca996ec54b0dc731acfb986cb7e66ddef825b5c180df69586842784b7d2bae2ba66e56476ca332685d4e2a319f01e0813a34a63b650c6865fb93e26a2607ef680dab677c6a550f4ba73384368df3c1af9359cb1817cd35e6288bbe7b8cf53b06d9d24cda8b794767819736c21ac0c2f8f71ec9d258fe6c8b7edd244c388e459e8735ca1b1fef6aa30598e368b6639ec1dce932f6c5673953dd332cd6cba85b1a3e5bd96bceff6d52e833789e8c7b236b65736fb689ae04c9e20cc38c4f574dc6ea0e9639bc81e9dc15404cbcd9765f136663c913b4d824f044bd1d2dc10ed3ebae309fcc857727437cfd569e30ed8a660e2cd9eeb86e1778550f3a8c1b3191c55fd309e4240d6cfc066994e3770a59a9e973745d6b80a1cdfa524dbee5bc3404c53b4271f77ee40628c6d34206710d1f37e707fd5d76b87736bfb042cb2d47571dfb9c40777eea1a5d1463d386907d876298a279f3344935025c67a987ecfa27ece60cb503ed20639a9ef71f5cc33de21c186bca5a1b4b968732c3763c303949b39a91615c286d0084d920fe7d3368d4d33fb49ede494e0a5e2ff0079c9168a5d80c5c9b4903d7b1c2b9e8071ced764cb983c7d66408c333971b7417406b0730add794c6f728c067ff8e6d07f3e6d8cc384e37a5236ba24b33bdf659c4b7f2ac728c772fc9b3ea8ccb696cc49d76090bb6eea61aaabb1283e4cd4917cb0cc38cbc60ab21b899d1429b6deac90a7eb357bab8df324b0f5bb2892d9734a87137618b57754689b12faa6f535e8738668807397a973f0423301176605d453e377b532d646bddb6e797f0be57981bcb3ddb0e3e17d9d67ad5b48e27faa771a65d5a8d65c69f0f43f9ebdd7b3a5c919c2d240cf64fcbb6bdd8d4307a8b689859dedeec4c3544c61cfa81f87a7ee8e7d18ccdccb134aa6f5ce30f55c6b9093358be52cbdc9b317edf931df80dda37c08e9ace3e462dcad31fc20eb2ffe8961537738571aeaa6996e0cc273ebc820ed8b2167f76f53819641e6d5337047832ffc56eb5fba6b2f592de36b3e0d883bd2b8f831b66e9f097a8a361deb966de7fe653aff80c425c7d93791e6fdc72af7fba2d1a9bdcda11437864e6295cfa4073b41abb31b183acddeddb75d7463b5b5d5677396dd850189c62d6902f8bb828dbe96d78edd61c31a5c8f417d428861fb327357803b536360e532d79e0befb96d212aa73066162069eb605b6df50347288432c466f53c5464a1d661821fbdfea69dadeee261ae6099c463321bd5ce76ddac0ece20566627a2c71d16b79c337e7036f8369784569c1553118c6e0e82519c43a6fb9326a560daedb73e7699de6027f2e7bc17e1b5b59e8bfdcb4ab99cca25ac040acdd3f640b6e823ac7d93a63d86fe2811bec6acbbd8f89b6cf12186b151f6ca0db74ea2d30f640d0f53aeade229f2964aef5ad20b73620c32b167106b3616ce0ba9bb6848d21d73b898d8d7fef75720a5abd4e3e6d31a97119b80acc354d699098bf4ddd7cfa920eb88cc610c00e81c02276a30fe70ee004670039f50d5e6c2ebac11ce2d48d353f33fc75bb45dc8d704a69f6291f34f4da8c2d76ea216c9912c3637e53738f727895cfb150ca7cb81dbdd4649eff33b8f4f2671ae6320435c63ceedd6796c9056ead815775e549baecf0bb2d598764dc69c29e9a1e4d2ca2c5ed105dd6c1eb12638df92cdae7387f930fceeb68848db5d6e21fde8a963a9d4b5876b0ae89fbda11fe2ceec68ecddaeb4cf2e0e020cd324286fd94a50c009cccd9a66cb0363177469fb88c1d77abe55c8ca6eafd271928038ddd64b9b6b93700ebef374df9e0f4c13c90030f5358d1560fc35b62a26360695fb5aecdb077e31dc74cba0bb4c17207ef3c0ccc436b25eb801c7c93716093741d2d3041c68db7f349cfb84f674cc6d626d24cc4b8f66f863c1873d9b6bcd01c1c7dc93fa05a606724a65c545d81e5869f4b31e4d53c37bdbe72d64dc66962f6389acd623d738f4053b2604db3568f99d67e1b8ca5564d5db31917d1ae2bd983656e7e52eb44436e54ad1cc7d2c1522d61b97bbe8aa1e5d23c5749e3de6f5be249decf5ce7f5c4645becb973353b6639c3a4adbbd7a9ce7891530f71028d6c00c3bb02cb0d1fc63098f7c489d0adc51edfd7548e5a8fbfdd799d4fb746fb26aba89e776c1ebb799cd6f50d5a9872e42bdce4e7b54adb6d5a37cba93d323a674e779c4cd007d5338b28d22a4b9b9d436d078d8d2f2b5b62ab3a77a00d445142e62ecaba5c49ebe999c32d44a5178291997e063acdb51a21fb992d8c8bfb6d32809a08d9b1d9f04844efbf90e40aab6c9055de440aedae6d63fb64761e6e2cf37a7a6065491bf99718d6105995e34dd66a5b4f23e71de3d01fdfe2c51cc7b4d8d2b34d63afc4aacf6687e35dfa525bfdf2f775825de68841396eb39667f76f499bd1de8cdd12d9768625f07deba6066c70bd289b99bb1a1cd7b66a5a7e123ca1e58463fab4aa57d1bcac4c9a0cd65edfb41d4372927b30c4cc59930bddf41657f7f0a0ceedf6d9e8b476a826b88c3827034937dbd7ed5ab20e9f8eb33733c78699226df87ec24b54ce9a443fa85d973ab4c686c0d4696398bc6c16462600eb176bf01c3b5c3388c5dd2cd606c2bfda78ab6c57ac6eca30371efeddbafecb9f8a5d99bd6ff6e01acd1bc7fd31c57a0956d6099769838fd42c30a27ef3e86bfa343f4fda5d564efef367ebf6dee3b3c2a502eede818b2f349a4370fd8f9e01e4685959921e5649ebe7760b4c102fff4855f32ebaaf771c28de01d4ed6a0222c2f73156644d89a996bb81c91afb3670cf455936deb2eb8e51911ebafe5fc48eafa47914af84886a361a322470d865f93f8129a0d50724c13ab1ec50cf0bd6fff3638204670e42485dd8109788af4bf5d60331d2f51ac77de6b09e7a420060ccba61b1fc90acba76aec598bdd02790b04cbdf3bd23ba123f1e560edc99029cb00952518dbeb568e62d7a2d0b3188212c78dea643d30422e9d6e53a6e521c948f88fe5266075993fb10dd74cf5974adc5575205e245cf95017d18121c327f0afcc3f94ff1b68ad57d52806c110106be9d9dc7bd45cac64d9d854b429bf43000efa65db615863944a2438c055672faaaa0dbe2e2fad11cb896a6b5cb479d9510f984d779cf6067bc48493ec4f3bb37f5b077cacb49a3f901743b17b14918977c561f7dd75b315a452b957d307cd8b9b0ccd53587a71f6d0b35fc3100960098a0b60c0cf08970a6a5a52b8e60c13a9ceeb488657553f866800f806c7b6cd2e16e3a5a7a3947c8a0a9350ec9acf631f7084b476b3aec6369de3b70cf7d77f8a489b4f318748dd0f8fca5d0239b5450b55e95708b1f1baa79d5772ae79d5812c48b01c64e523e166defd0817a8383fa90bd68c6c6009981aa33f3013259ff28b7aba91ea3ff7a0e70a57d4361256973f39f90d90413517e0961e8e375c2007ff8cd995cdb971308c272c063826452e9cc010034f12653a52d4a3e3e143cf7f02b7bdc863026d3b063ea43ede6909d3abb2dd58fcd69c9ae1dc987a53ff2f21e99205f969d6f6e9a959d2e2314f25f272294362e7d7383be13feab53498d4e9dc9d9df5a558ec3d8e83d313b1685c6d3e7835338ebc5320a93e689eb3d4817d024db841e411c7c49c1d2c88e8b62b5f704ea068beefe90f9123438568630ab1b65743e25e851b609fd35b40e72bd8e15097ac60798b90c03331bc44e5d54d9770fd0d71f41e842723613695681809b2fe449abc589212ac5cfca236a09fccc0ffc3e75c7d16a7b8068ab22d6ceac0e9a00a5b99556e6bd827a3c4cea30c4bf928b602ce36cacc1a0b5027ef684aa6120d6e1e2a03f3a4069eddca247f116f50aecd5d97c16f0ff05ccbcff338b630764e49695d01760c6f2e023c68ba74f5171d6c7e4edd8da16a75f817e6f753264c474916d626f54465cd43a8a2ed507769724db4a58b729ccd280eaff99630e8fd8cc8d911b96cc3ed08adb13ea25ea8966e1955b25d028965fbb75eea3f80d5d73b39412d55168210aab93b2e5b26750b6330b804243bc3eb129255ed0e8c508f9316739f11769563e889d2bab5655da789945af746f4453e76b6a491f9058239803e8542d23105c46701cd8525a38d62e7071c720676e8ca6a3619f8988acd41ef40978eb8a997c168d386c19b400e64a2d1b38dcc293a5a396e11e501f8925050494bed3e1c34d09763e7ddade4ae6e8c6cd2dfa436f3e1c834d342b5e6f7dc039f110fe7ae2738e0a9346e1623cc03367a8e06485901e2e9f798db1f55d108dae57b4397051bac013dfa058dce7162ddfe03be8529d093753878c524883635d4430eff05e73afed685a9c57bc835dd843c784a8ac424487781e6edbb6d093a48d6cc309576fad659851672c5387eaed15c12507bb0819b5f4acd183d32b14b075ec24f032037c185451c4425bf9065a41af459d8ee4b85f6523224327c8be0ebb945b631f6083d812ce9c50cd5c7e0b52d05a66ccea63b99a7cd82dfe700c83b5a787bdf8b9ecdc1811b7aebba87d6955bf344edb5a89e9ef1bb7435eb504fff21974d5330cf79891cb33634f68737e3af0fabd976f3622580a20b1c9560e77dafd0a57421a686344541be33a9fee014f4742d69813793491ed22c27046d7ff52ab87ccb51ddc6629333ceefa9d61609e06f46f0e966ecabe7e168db044263001fa9fe616650be88dc8f16b55c268dba2dce4fcf7229be1903a949ab548fcf5e84a8ff04f2e0be8e745c125b832dfff90e24e861a9333de82297b71a699c832241f9910cda233fc422ae2b65ae976dd1c2ed6b71bf85ea298bac77d08cc50829e20b66169b3c70c908717245c88dbf6b4d008779bc678580df83d84feb080ff2fd5f927e44c1bca5cae75e98e766ec64ed972b1697018999e9b8a038c3308c46e74192648e4338df9b262fa864279c18e499a75c90f445151c3fab075cc139188ba05a870c4dc55a4372bf61b67c29526bf485342d85d3ec1e6ec890938f2eb9163a3453bfbf6e46813b782cde7cd1ec342176b049022881d7d560c7d6d297a2eceff2a3c71551706396925202eb45069ac56e918494592fc031cfc2ac7c510737a1a241bb3944024acda536311b55ce5871200c3e0360674cb9b44b41ba91145494837940c505f47ec43c86d7dbfcf76006c28ab7e98554a8d724ab226e05d9b3198dc7945c2c53639dbed8d2cc99682c894c023007a435ca55b7f7724d58cd9f73f720df0bb16cafa8586524d848ee175307f67766e93bd1f3eb65c7a5738c11d1809629b26efc0be8200740f064285882205629d1470e1d63dc0be9ea9e7da8e8fc59a7ba1ef72b08234f3a55a8ec6a3bf3effd31131ff53a203857c6f6fa025c0b9c34ebe6029083d3a79139d9b1393b5d3a275b70e51f61a79f6f56514bc39e6d311e01afa85f13fbc3a11b16f7cfa3546ed9fbf6ab1ae1037a7394993be0e5a62ab05014d369b44f87e88721b31b4c3ae61e84b0b191c9e2a86a44d0361ac68c0f47c748074509b25f97600a192cbeacc826ec7d2f68ea71fe6e88a6957481312b4d709d44fa1e0f3061fb77919ddefb34dbbcea9ccede883b6e258810e5f23426a6e1a361ea9550ceaa58e69f35b6dc7db54c6606803934bb5941e266a7c3f7bf918998a2734f515019adcf3ae7b83f27da336e51bdabf95fe14a34ac249439bac71e6aa5006b035cd5be0bbed27776a23d137fe0cc9385a640c491c62035e69a666b0e4d723c22b05073540d6aa4c752852efc322a46a1e52385fa5059f5885a28b3f60f95d332bd191f11e20e3cb742d4dc662281c7db8024441e6b319f9623ff766911d0c2ccd3548fba2778c4868a4c05dd7691bc6d75c7d1af1e62c1fbfe48bf56b4bf5c375a8f1375fd79cef51c5ad54a795b7c5ddcb87dafe27cdfa6961ffe83749a2861fe40e1ac43a1cf850af251f9afc81e996082438ae35cb94c9ea92de6ba357ac61dcbf2ea3d0a30d53a0e633c883e9be4852b1f55bd7fcac7159bba4ebf4461fc89427415d48b0d3d4e683f2355c07557d861bc9cf030a377a8eae4f15176cb759701442f0075cb7dee96bc862e9fc070248a58a0c7278beb11140f24b69af9d580d11453132ab485ebfa888c3f6bd6641accd0bfd77503362c89c618c4427e5f11c6edabd7771805ba2c3dbad4dff85a4c274b10fa35e4a3a56dbb800d5020da7142e85f62c198f47fb2a267822f5b9a1eca4e6b8a45577543cbe38697c3c4afbbee146135270fd16c205cfae127375599aa03d871b0b1ce446fc8247dde90530cdc01b430cf65cd8d659acc2f1e66521b065d041434b108b0b61c62fd3ea0696b182dca0a45135cc259f469ca47149806c40acf21d1c6d4d881d381d4befd099e32d7650b274c4f0684f86ed8ebecd5873915bc9f7d230ec643cb9f2da84e4414afebcac8b8aa5abdc7bdcc9c2d8c6036997d3e046e93d1dbd74134494c62717c76c30025cdce7535e7665b73ac348a39b64dfe1ac756208ccfefd015baa7e7f6129ce97dfbfb2b25a846c41fca77cef99fbcc39f918159d831fd739c4fd56ddb680a7e121a056bf12403fe6be79013a73f97b5df900b28dac9d30c2087b5f899ef70c7238a66153121995daa8eef8e0fd63e441a072f2ce4fdff3827857b21cfd165478b02728cb2f5fa93676026ef80a590abefad06e2bd76dc2b62084e81f718e131ff93fdce4c771e29ff27681c1d1a127bb3cb99f0eb659b61631ff5d85471112b593a180bf18dce290735c06764113a415c757640cff9aee79e1e8ad4c348dbad8c4a67198dcfdd068f20f0cb35ba510637edaba037a308dbd134353eac198a432052559570931b6a726bb3113bd834184ebac84bf3324cc8d06c43d9f81c38145cfb51584436d4a3affb85e570bbcf3101ededc5888f9948b40da8e7135dfcc1e328f138cb006203d86293c16a57ceae4e052e5f81f1d90199778b94e8add61e5b1d3e22a358c17d33f4d9065e9245d8ab2bbf040561d2662baec37b04f9e958e2c3c7d30a18d3be763f24ffff12adee3835465e0c9b7e79fd9c69cda4f57d92cec4487c262414b589878c2ea9cbe94197c3d1c40ee4928d382209c0ad34d8e01febf3345fa4b9d167b9c8819d4a94a50eae24857caaad11e33d4394e0753a6d38dda4a21bdc82579c190c694d3b4154228b5589325ac986bff518bf1cdb563a46ddb18a8442b3c899b0e7eb4c3f59159ecc36314805d0db529453165f95cfde5cb8a5360ae8b78fe9e7d856ca679fe34a1e2545d34fc1088a22c9262eba747a98ebc0e3e7af8f47bfe1d6e2e54304c009f6a6d2a6358adfd1e77da466192e8f428d26b517c4ba6d80cf3c27f4db59faf0c2e6cd272e2ad3df3d0b5ba65be799b70a04dd91da358f82cb9b138eb8bdc318e92d13c07abc1ba4df11efa7a0ff357deeb9e759af688e3572b02ac2d8b4713c52b23a4b3342cde2f06cec883b19a1ca0a73941a0d229306a445ee6b688fcd0a22abdc260aeca00de21645695869b16f21cfe36a35f0193def9a452e962ca7c8388b7954bb009b42eabbc53fd0b096ea97da2e32101a82948022876f020552545e261cd7a14f729fd063d2b3116953ef17184d5cc6987f3d1bb472812fe0038c67393e04fa1b9659919720cca45d64f9a20a48c0ba888973deba42a4c732962cc00008021ee3c95098c8c64ba0f5a14b61c343fa997b5feb97981138a2f182851d3c38e09fd78a214e8b77a02f0054f65c8e425ecfde297a6b7ff598e06d66c620aea8c7f7008f54510fd9e448136ca055f549b3800b73a4aba8f041ee07fb480c6ff69257f582a7efa1329a92cdaa37fd6f3f8b1a7f701ab32f6fea7397e5e3159e76fdaffc2c83392a946b8082e4247b36b3c4bc6c5086c597d4618e8a6f95a26c3a1615dace3df8a3e3c2e8f14bdde7e0ba1a893724e4fcbffce655675810f348606811e5bf75de70acf5d0c77c4b45fb87bc80c5167832b8207e41a0f596122fda773ba78dacc8311fd3f8618236510b271626cb2809fa91f1e2f74ac2271827fc50ebebbef2ae4d03d75688c8adfaba907f71d9d6587ff5ee5be5b9441adfbff74260d4819c848c326c5e1aac20b90ad8c6ea8602dc30e660eaa90fcd17ccab7d73a25631ecb653e60ec13d1de6e18a6f3c13268647e9072ce39ebbcf3ce3beb4c67e8f0e675ce59e79d77de59673ae7bcf3ce38e3ac339d71c63967392693ae02f36cac770df59c51b082fde18f93c6661b8503629410a02881a457c457b063059cdc5d77fd35d75c73ed35afbbfefa6baeb9f69ad75c73dd75d75cfbbaebafb9e69a6baf79ddf5d7ebf58cb7ecf2cb2f73f989a555c166b9e325989ac2b9f9c898ad914e1f0164f7f3fe0d42fb6ff47f575ed9d2c7d64c4873828a96281dc65d1571d31918b2fd468b333912c7fc7de1edc15fb033bf47170e82f556771ad1a5a0b80779f2db5b76d19c7102b4784b96cea38566d81a47b4776df439b97362ec35ab9c62a0f814a91e76e972e6683f5f05afcbe642fb2d8c1f048d5d0eb112a4446e7ef47eb05e6adf3935c81a6f461231ec884a2edcbf99cfc7ea7fec6094b9d4ad6a71bd01d7254b29ac36bd5a2331025aa97503e91f46859813ebed0d6adc605294ab11d6dce3bb2016661c7e4b424985fc4d0c3a19c7df167c34115834bf11dff48eae82b280b5c97e24f86ed11d4550fa07ffa268e2bb4d211ee03d9f1dadc90eac59d48cfddaaa4ec933e9cf6edbfa65d1fa246461a77d3d5d5ade36ce1af27b4cc49da097ad8b054bd9f20d8d0f1d43987dc313d8d6360811ffdf4abe865b0fe7f308f80ce8a2b42dc15022e8ab97d012803d0a736471d5ca2f14454776d0213ef2fc84ec66278265cdfbb25a14a1e82f5227703f86d6d138eda464bc27c52435326cfc4230b8dcd1ee4ee4bbaeaa60f5fa7bc08df3ea77bb81e5f81ad7cb08f7f2810071ce2df19ebb71f1af388960f59fdcc0b60c7342fc78f8f5ee7c704a81a67fb36cfbc06d63f76f27feee137dbeb64ffd97caf0acc60114ae02e633124cc067bd8787c40d16e58c53bb35dff1a1494d55899e7f5c088abe60cb04988a415bf6daa00eaebd0feceeef6f4964a25a7e264829ba7e6e9b651b7ba63646dfa778c075e04ec93561b5cf864fffa6bc3f4bc4f7698404698bd986edfba76cc703e3c36f2225d709a1f9dec8f2c79f8828753d9ec573f34abd5f575f6ff97bf07cafd6729d4f0ea1ca3c88ba084b6866fe058fa1294be9f4bffe186ff77ca41bff90de326d7024fa4cf222d3a416223a8782005ec7cfe30111e7545bcba86ce8e6943fe6f0a71c5f8183c937aee902471c8a513aee6f5bdf980077bda3ebf47406334606df5bf090471990bcc3f6402257120b6ebfc6d94b3db2dc02ae42ccfc2c9b135ceab2267f812fbec0d8cdfd92bfeb9cfe66429c6b6134b380c2fbf03101b0bfa924461adf353d59fe59820361def60b408a6945c798422f4bf8a1f82ccfa9559637f9e41bb57bfa94d488fb85531d5137a6841db0b8804831d16e762b209b1417f8a1b3152efd869e561db4f7f61b28ee28a77fb1c7f49f1d42fabdf99e8d6228d0ff45d30fa337511a1316cf8f40c656102aca1becd29a4616007e4c691b4200c83564b8e1ceee69842bbcfcfee66b96ccfaeec2d76c3fbb0018875d16260ea97f0327b6c1d1e7ee10acfe32a4323301c2759b73dfa1defc5da510fcc10ae3708ba9d548be761ab42f8430114f4ffdc862de02f7a90fc302eb82502c961017f0b9a33e42af4661700d928b83f2380a635440039fe2b437537bf266b30992d571c0df32d58d9ba04e377166f65d2c30616d9b7d6d3ee9d39f2db3a0c0a2f8547d865336f437ff0aa77258bf2f8a60e342955d029d800399bf3cbee4b385e357077ee21ebb255259326cae4329763bab9698e9540b7c0fbd6e9618dfbd066dee775f396dc37a8f9c7640f6b3103c695d0411a354a935eba1a3a2be98a867d1f95e6fbc510f0d32817a81e42b571cac80a927b2d5973845e12e4754475948412e644b6382d047cb998377c495e5eebb7f2e1bec14f3c14153d12e5fbe5b7f1ae7f49c4ad8caa38cfe1e4e3afbf72371b18832acbf4c856d57587d8ef8cca260bc43157de3ec4f1d016d9bc303455cb6a17194230db432c04f13a8c29c03d12271c506245406baddd54f9f8d72fa9887903f02bd20a9f2131b7a2f4cd2d109607e86257e1c7e4cbb8df8d1efdbbff4c9f8e58694880a11f2d3830653522c5c7d88816e9078fa4b3a8c4087982722a40f50a30acbf8ddbfc7a2346864595af277ee1fd5e06a40a0af6768c452334cd9d99576418fa470265e2c62945b453ec3ba1997d98135607886a212d1b67c8952ac324c02bc54b6577cc2743298dbf3d7aa10c1f3e6e0af554e28659860c32fb5e2e42c3fa4f5a6bf5c91fe8a8837891800c456479cf88ce6149948e02c072d1238ed2c3193eb87e6700cd1b7f68729c0591a32c81623945437c6e4ffddff6a2b6cc5fde36ae44ccfb4c4c593a36ee5e780f4fb577baca59c040033c4ab2c487d558aca16eda62fe9f6f6758bb8caf5b4a35404e4b4debae182cc070ed076218a65e541a5beacef4f766aac10542cff2456a782860cb403709b613e85f88967c23d585edebdebb4d3350b3ac0518723afeaf29033b3a8addd09ee5366710d7213be6ab133dd8982520a0b5a589d46e51daf486a2d272cf878857156d1c8319b33d1d0009ff9834e73025c558068b89c2c07730200670dcec239b0e7fd734204bbf3d35b5a711253108ae43043cfcff4ddb8e931914fba8eeb6babc225f4924ef6e53962a00c50639dd1aba916a9346f9bd48ab2a9b69d57f44346de0f6a3c4343182b53f8166b3bdbe29011ca7a599251c435b007576785c80aa9beaec425944a65adeb5df868bebe05d720a41b4438e2afce3cc511792569663ce593155899d3b4097ed0e59eafc6a303186dc40d4f8b64c81234ce76a81ed08c82e514b5969c37c49cbbc85e3c1a2c66dc0d23157b0b557de1060038baf1e55e9d70d533d2a803a52b48830fdba22b1d332366def674857422d030c14e0b8f17fa7fc21fe8550cb0983801d0ea22eeb01d73e2e48f36abe5d906ab35b46d3f8534fda8f10e396d0b3e1bf8e85213003d3af7e3a08a62a05de9935503980f60a7975262d8f368ae97d39e6c06b01ba00ac333d47e3446b071c7854e098d207f017e17a99bb7667081d6f01afbdd06ca2dbdb20b9e89f93df18ff91b6ca3572006e532021394c213d5d20cf393bf6b6607509acda28968614ae225b5596c7e088c82a72e85210793085d79bc0e7a77ef6d51107567cc0f5f02aa04f57c2b5bbe32f221dbf34030a16728c7054f425dc963da5554d64193a28c33162b8c9bff990200751a19a0b6dd083aaad76e1bf940f8de38dcfe5b08243ff2892b63ae9f961601ce5e43f19eed0c20c86bd3f9ad9e95da154251d6d43f4e7a6461945f4c2a65e522861b2be827d1109c4b17435fb44cbfd203c8b667e218d0907bcf3086d66585dee29dfcd8e072cb29164c8a01a65139ddcc0968831a88bebb6c9db6edb0babfe3e7ab079bb813e625b479172dfc864e48ef5d2e212a71cc4d5076d3895344234ad733b7578b4bc8c78d6416c301357f7b00c03835fb6f21d7632490b484074dcc8e2ad0ec3c9ba4153447c5e3167bb25d7442598bd2bbe06a00d5ca095945cbe1a10a875f5e90e649022d13910169c65616ecc8a01dea0b99556fc8a5112aa0cd45dd89db81e9f3814c3e647a30e8513c24ddc3e4241b9c4fb6496d85da89a5f7a008a65f519df0706114ddfbd32ccd844e50bc23a82f91f3786b38e04d4ba43e80b331896a795b93143b47e1d28cc8148a0a061ec13413ffc2e6e14c4fac999358cda5abc8a904009bc1aed407c4bf30e984d216278d37916608231f514df6e24626afeda993cb149fb8d80a37c731cb969fbfc4b81efe7f674526328870d14940bf0ed540fb709a883b21914e44928849b61fdad8a37cb0710f47006eae320a31996a73f7f55034cd9f1e067e194d2e4b2c601d5f981e9fbde8a2c84a237d9fb77b5fe36ee9dfdcbe95e9685f5f544a2fab07276bb18508170dfbc86fcc0884e2d19b758ca188ce4661da4653aaad500edc3eadd6114ef9fc53b9ef359bf997ee79dde40f6a5a226420be1a50dd84749e0030d39aeb7d792659003ec173ff68f9f417e1a7e0b273fabe247ca30983ae4c86e6394b9e812db5372dc1b9eafa708e722da4c3390f17dc895d3a89a5e9e55d4902cf6892820aae38dad8b4f9882f1d88bdcc1fb32ba6624dc4d647149a9b2a0175fc2b1087110e494a88ab43bdcdccf4e0cc42df8f7aeb7d5e1d1af5c9fe545b9cf0e9c843d86072d24b2cf1784d879e7e7c691cedee15c4e0291891a4c4b9087d7c3f94526bd3b8f2dead3f4953e3b1d3af6978208a614352def7d272fe106e065cdf021c6592e6a7a09b0c90f3145a5b045d961138e1b6e6034de5bad372c7421d2bd33920163b11f7d2c2efed3ae885515988259bfb04e3e20f13a033aae1b1ada30e39bb8ea5c77d0f08bccb078f582378887080d5f2568885f0443db89a735069dafbeb239543227be3b66d610e97c6e1d48f070e1c2ff30f7c19f24057ea9de368d4ab414d12eeabecc92abd211d93f507bbd0357cf19487e8ca13837e351783bd1d89ee373517c2056ef6a8e2aacc4426633eb74c7a9985fb722f3c85287ced4d4ba130283a88619e8bc0120bb764a0004dd9780b8c2e10df1ef2245227ffd61f089826ade0e78c0b1b08be8551bc7ed23cdb06e1b72df7969af485924cb91a5835835a7ac78bc3e93383a7b8827618cf76a5da1249a0d0e806084bf5e9d87f721deb8bbb40b36c9b9ac6c5e249345d2884fac4b5f4bdde2cc481f19a20732943e571d8b3c04d348167820e2f3b48bc9bf4d3e92702ff630a8a8af0d2033e06f09f9ecfa5c5ef7e9f494740e6433be3f70a26c958bcf851d4ae492a48764a32e1830ac84e638a7a2bbaa5f77a8fe13490e6591d3484308eecaf0ac6f43350ad3a1bc3aac18048456e25a5c1305408676729d501c7bc9befadbb0a7556890c7f8ca4ad618c46c69b638d1634a11efb79b559838649507ea5c6ec50e1d9ac57662a7bb7f25ff3e041e9242c29ada9f0c973b3aeac7cb461918dad98c3a227d07d9beae91f62095044a6b8184a59beb7ca34195a942f3258fab713c3cdde1852a78b0e0b300a2f9f88f58e6574591a36e2b3af62687c0d4429bed9ca8daf34111df993a12ae7b22c0826c76d5fcc6af83500ca73147101dfa530ecf17e8b9a5a8a0d46f99a074b9041fc0b979439c0bc6db7218a4d993240aec1c4c02c487ecc6d3ad155724ec74c30491b7eb9f7d9c464fee831bc75f44075f6f5a7de5fd999f724b9a83df54b42059393dde5170c0ef523a485da0eb74cfabdcbc425280553632a83a24b5a9df899c1fedd28952862660ff8200667c9a91a9b962ffa2383fa6a2027a09a0b2dadc978a49e86e798ae4ea4ae2294b70fce5ecec3b4b3f4111e15b784e81d008c468e302f1ae0daeedc47fb7c91dfe0ec6d8cb1a6403820bb682b395a66b778bcab2e677314d25c3b6eed73208c3a392fa765cc7eca36dc0d8d5b32ebc451c1b5222eb1d84a87121cf43275aba0f6f6f9eca793578ca9f15a424701705ca60b2bc0e200d01b489b572c610555edd3a5f14bcd4eaa454e2e00e33d8ca045d3465341514fb7788f31ea92b1caa17555252303959e5821109a45749beb54f45b48c4c4538659f5493a77e60b16c0e5affdc038e2b92ac3754070370129d6c29941786e76e3f38d12d888622749e2f3cf3caab7e69b881cecebe49e2535a00baab31a344c2c05e5da7e914c1c4f7a9a79c18d9fdace390fa78d1e7dc9a8b7b9adaf86b1457c4a15a1a76116074fdf3666de06fc2f68ecda5d8019a598f79feb500a3651bf01bf81c03ffaba65aaca3cb02ad176678e6a625320e9246c85c93d129496ec55b745c41768db08273e9b4b3138564cbbba42dbcc96f095bb039ef3ea3939c2b86de4cf2b35c0dca89257b7d32756e5c1400f384e6b82b31b03d08b3b576a4d64851b734206030ca3c9412b7f40e2bf0aea0ee9bae50d186d59c8ac1f07491b6e48a609e4f157fc44804406f5abb8a7f796d0b999ed5fb14aac604215616717ce73583fe3f185dd279f73483a58adde599079acb6e4dc1633c522049e6d0c404d4a96dc35a32d74efc8725ce5deb003747c5a5025487a089bd393de64d5c6d82d60b36ab0bc1d0b9b9b6ab8d5a8621499363a5f2c48a3cacb4a07db34b3d045ec18353814a8355b826d746d6bceabdec7e1d3881738d3737b149a9c619b18406ea45189a776f23609a3f1a1997ea46ddebbb6571eef78028f6a3f5381cf366b2e471e568c214a2c9007d4f9f99e94e2df503392859c70ffc09b5e22d2430ca1f66c048b9d0b86d829dcecdea5d28fae6365589e0cc20a07d50ef3cb55822b5f2651a7c52d107a28420ead263b45615e3d87f5a3f63874f19525e6b02153aca77551a6bf43d76ac02eb9c562f59208fa8115047ff22df395c049864dae9f0addd6952a5c0a8c7635a3cb56a2b09c434189991b2a65b5da74c25070d3c2ca37b4a37a7269c97bf24e52185f09567f0ada58a2e7aa035f5c6419d7783fe11c92db9359aeff81951dc0329f9c22e132d715758bc7976767018a3bb87890c2ce3fd74e67a69eceb5e18bb696fa933adf66636e631245dc0e8537a4346e8af575e017d48e0dd696268ada984039dfd497b7b95f4471b39a76a57b71b542f4ad1fed31442dd6bc6be0b5e31e5b8982fd9a29ac141c6a869c056ac953b660713527bcf7bde9a60c78df20a953817f5cd59d34cffadc53ef3e99505be604cfec81436bccb80a47bb822fff52f6efb023df6855a92e34e8aaee905823ee2be8857f84cf1e80cfc13a012601d6e8e0343b4a6f9b8e0afc9b8f10033120c8aa03c3b84382ca87c0e35e1869d489629365dada2fc1d826ccf506a7debf1b262428b67ba6a7fb658aa21884af45687de4ae3ec64e70dc44f2d14e31c7ef4a14429670d10a01f8a37d82dfc62c35af166c7ec1fb7e41d8d876d4a8fd19643ba3ba50aba0c070877a19a27cfe7d60e78285c40cb6d19c674ea33aaf5a42e23958df9a84b8d8c5f165d528226719c4ff5295b1abdfb2a731a6588a96815b448644198369fa54abb039b796e286f1959e4b7a461d8974b64f1644ba04c8c8933a40fbaef144166f6d963bd3d7c939a3d0eaa9a7c65c11a0c2059765c0b57f90f5e81382130e8289680dcce8e3e17844f216aad71d0bbc1ee63c42cb591ddeace9381ca9cecc4e9115f0827e24080880b984c809e5953e4b07dcce2bb16ae2a900917d952f5cfcb05b31f8af0841d778d6c68532b24bc06fc22c7983ff07243feec6f171e53fccfee6d96f9efd23effef3dc7f36e1f4a3c09fdccec92f7c5c0810f6490bf62dc880e609f3830754559e1a0e303479ca218b5161618e4009a5219439299218ab04cc4373ce6201228c32233e063be5e2d9110b9cbd40ca39f956002c42e54c7f00e762272de44f234e05d94b6aafc59d0d4a8865101f3b417cb2be73cb8fc41ffa08a5d41c3977244e5d747cec003f6dd47c945953f4f9b3b1923027237bfb4a6ed879cd7b0eeea5470069cf686062ccd6849c0ee7dee1b61f71e10e7fbe2beeb174e85a618c192d9ea4d0f3bf56f980436d03698b9bdfb865aaca680bd0a329046d7eebe4af11b49b35e53223d118482a640d92fed7ff2620d366fc3d854da5e3663fb2b0e6054ee058bcd62e7b931ba692828fa74b6e08c1d6986a7180f7af9affc2ab9e2b33ecf30734b4f8cef7fed6c1b623c001d36cdfdf34eb07de027efb4c33083cf8953ebadefc1ca22085cd60d95029a1fae152a8e19f806e973aa2ce19f5317ab5e4f1a46f54e0ae1eb86fa30447d0adab75f4400a7524b22d47f0928886184ac4081d5b5a75b87e1821940edf70b9b554018f2e9cbc09a087ab34b1bc85f11a31d677a1043dfbb9e34687dcd4f5e1bcc23094de47f7912d13357a456c67d96bd933038b1548648345365153ee0329e513afaf78a0703f128e2c8e8d2d965fecc08dd46bdf133a5d31a6ed93acaf6c14b7d8f436a0943a8895d131b7fbca666f458967a75b4a687d650b69959be4b4b592a816bb2f756fcef4868fc327e65f75dc6fe4cb0e99625a975b80c66f0f0166c0a198dc02164c681ef194d5c87e60024e0479b3d058689f43957b45cfc3ff7f9ddaa6e5a8aa76311fb5a521c3108d2b5d55df8535978a95e78243f8400d9e120e907fb8e88cc1632608d085b54e651d06c1b68b3a21387864c01bf634ee014723a5e6109a5777ea94a73be946b112267874817384974a83fb313641a9778a0d1e1059872ca66aff81b0fd5b6ee41bb202a1108f767e0207988d3f1122a09da7efe0909c6dad96b99bc4a3ddcd64278917f28d7c5288b56f20f5a3374fd9008e0fc593fbb5d7b9048c4fd7f1792b4849387472e85530d1c82472fb96d95080ede93b4edca98c6cfa2a242e6c20811b920f26c690349bd20a15c19369538186819909910ac5b7d6442883b32d9c4b8bb3ae8d9a4aeb8b2d4a83d18b907c6c464d4767b1a6bcde2e1401af194fb80124c17d57217ce59cda7e8930711dab52138f07e45cb4dec82e35e12292534cd89ec36ec83b6cab99a94dc4bc8fd1084656cd9594517c6e584d4beac06ace95704b6c581b091a67756092999284ba5a58e34c7f34dbbc522ac0e37231c6fd3a9c044b4a59f7d94a026090f0fdaa73fd0d8da6cd9427ae10c9609a39080aabfbe9ddca08a81862f65f5d5811f5c681151cf14d6a6fc32aceea326e55196f7519b3ba8cd7aa126614039532dc76c1f3ddb85ec8d05723194262fd155698f42186e35f12f78624c578b92056acbb81456a5945acbd4bca5e1a90fe63de9c3cd4eed4cb39f9faebd5db910de6f7e1df939f338f7ded8eabce9f56ee3db576cc8f9def73bbf4cb9ce97af3e7e4e7cca37bb13e9d4a323aad286f32bff0ee3184a1663cf4ff5cba3c42a6bcbf1489379e703f826f88425ccf625109ec7323137aef87d265833f95c64c73b8d028ddc688e23f6e8befed30fa3137be77edff1bbc77f3cd38706a26afae89a95023a4291e839ff131301c8a8912271de9fd3d873683b77c6f39f6a646553d99e8fe19bcd9b709a65235c08666f02608d808d664507adb5144c1c8dea07d2d57aacb4fe8832c174cf953911e39ae7294688481082f24a49b9a5075efe6865c90899a5850e9e3a0964b640526f601954badfdaa0752ae841a614c14fd862bd2442e7ab8020cd7c13c78d38eec216635a95831197a6495dfed0ae22c54bd1714243f4707c8e7b3495518b18712ca0a3720c2df745aaa29d6913c2bc2c9b6fbb00d48d60e6c920db773a2477db0b002cd8de1a4afed13b657dbe2a04362cce35fa5f017131957c240d768ee7584bd2d3b6dffc366e5abe6f409087899161fd0794e240a9415f862fa76bc127a050bfa3807299a6f82028ba5e7d2bf92e45545c64fafc4d24f92e7dd8589bb42a8c757b228493cedc54813f470363c73e2ace82d6523bc39ea1bc04e92d38de4c003efd54f6e44140f90d0ce14289cf0ffb6f5325058df9b264774baf15e3154873c26ee69a2874a9c099e358ad8899b57162f8606145edae625ab642c6e50d4898cc2a07d9b5e9a40e307d246767747705218f90102c1c14fb5e69944c2952bba092d8917951c3632e5d23a68093429b53b3fb00bece864e1e675ff6e17585b0e79297a46f9b7a42bf5c4bf5f18e94a541107494648575c080592dd2dda49a24289c2b21fc96324a51f5dc9ca0d09e96bbacad24368824c0bc811080bc5e22d246dd0212bf2479c69791a983e99fe11a76778ed83294ab24c5e90622b5899e3d2b758d0b47a1b143d5f495a8cd82e8f75480f15d7c4458767f094a0139da4b0d790d4160f6a087250d0e756854baf29f2c35022c4e578009053d86ba92013db09a86bf797a6b3afae60771cefdd717c771b73f13325b9b58cf2122d6acdf5c3f9945086d2f7b52af9b414b87c5eec8c0c74bd6819a0111b91c16df2d637a6d9b6a1e49b9b43610bfad2c880c40593d31e461d324d36991771b14750eeb6f4db2442b2ccd7dc590c332af2bbbdf9dd7f32e1f438d6a55ff39b8b9854e02b68939f410ed48bca406430e3c9bb63a4c99ea35a161b52b7470ef180598ea25d2dcbde25c8232143df7611c4a6c841060d0f0930067299ac5702151fb4c63b017ac8c8852f6080127c09d13a1090a4e45e82c42c9110ee529fed5b43062a8cc544b20b2011992d220c72489a8d2145044106e14cde830a296735d12df2b0696ef49fd048b934b5134d48eadf77f75ce05985ccba856efdee805b235828144e0dc4692037359a00c7d024cde14989d6f30ce7a223a5373d3813fa03cbbc5b7b8c8ba7bcab0a07028858497a438c826ab0addb62cf7c1f0c1f8637ba43fbecd69dbd0dca24a4d71794a0b60434de0603d3d8bf6da89fc046056f13c5dc5ba1229b00086aa14ba2b026525d077d22015f5cccb48995fee3aa1a20c004fbf9eb7f5f01de4b00b81d16aeb193887d98c67a45f4d0a7087188f49413cd4096ca103661203d469eb8539ce2d12583ed4675f6e5a4ae9c5cbe4588c415bdca548fd3f42fa5260ccc10c120702da51056bd2a8c0b8d0ced0060937aa4dbc7e7c01fdb952d11600d1b894988ca8f93541eaf6d03891e10c5ca08ae79731cc7f4e11683cbc649d92b91e74b4ddbd03cc461f7417b15cb62d9b2abf28ff2d910b31bbeab80f5903d11d95a4f6430bd8a4cd83fbf7a20314f495523d4378e13b29480ec3efd5e451c0348aab912efad523457a384fc82cff00a31512e3bf595a6d99e832c621f5af2b5a73094c182156c6662728026d530c167671f1c007cfe4707f8f91f1dc0c7f378001cae87ff5fbbdb661dc76b0dff11c1c78106906284a0001a8227ccc1b129fa9eadcd64d1090df4b3631fb3c4be0b82a42068dae8f7d73a54dbd476ee46044272b19bf0a7b9cefce75c26b302255b78dca319c1ec15586231d11f736f8879057c45fbc546ecbd5c7b8401623da10fb897f98fb992f98fb9cc247d701c39e97fa92b548257830460379ca30b87d7436a5bd309fe9cfbccff98ebcc7f9afb4c7fccedcc7fcc75e67f8c1b50d7a76ceceab072805f9459bd32f42743ecd30381bdadb027a21fbe25ea2da20fbe27aa17e0662180f9bbc2ef73b8f51cc8efc5900fe85a60914429dddbc60b8929ce52331637d36152112f7284e03f56b4e1796b9e4a194caf12669cfbf2cab4062493a5d8d21a264594edd48e29066f067dd8e64bd32246cebd87df135446823c42454f12dc84b2349b7a7dd455721212329ac3b91f4a4dc9d3a12813886bf797df57b9ec99a089be2a84998b421c837aecb117ea8cd0b047ea9631b19fe69d913d13383a930f047c7bcd4629601be37db7ab2f3061945e11749b33e2c047d99f61bf81c49cb68f913dd2f11459a8aee8b0476c5dcbe194026510915947cde59cc4f9256268e821c265d5795ae880f898be9a81ad7c13c707b49ab297795bf361e8f52f1f21f4b78697bf4bc18bd4cb55a8205777461cd5fbdb081ee2550d0a3d41c2f10a98230856f2a62e3021aad7d5c093a4af820dd03c4b3918f756c5e9f744aa4b68fc17c0ac7838bf68446172fb1207f579db0d9484fe89ee6567a5d1bb2f329f12806d190a9cae05ce0084500d4d1020f2361dfea7b589b4ffbfc0faabead7dbc7d12b53e4491c1392be319147c0a566b7941c5b64b72cdd48dadde4e1928b9be1ff0fcf9e31fbc7a936c289060a1d56895a280614999a0baa7f0a960df20ce80c4f4c30841e103cb1c4e404214efce1040586b0c3093b6e61edd27ae8ee2e6d12a2a8fbfb34cec5e4c496f68ecb62d88d313531477fb52efaea8ba90920ba5bd5a626c2eefebcdaeab6afbef2afd924fb893816521ae66cb39bbde18ce2182772194fd977bfb07669565629572d771f5f3c3d6e5ecec6d94fc49cfdc4da673c267d6cfa7c8dc286f00b0b8d17460609674cc1cf945606cfc88c99518c9fe62a5a9f0fa4b49fc7937644332812ddcf964c1d93f1fc72272d69e88635a0b07685ac0c08cf3b8f80aad19d48385b3009dbecfda117f679e6a4fc20f87922e5c7f8552392cd17733f0ce72d633f3169de79643f31698a29ba77a4e8de89a277de40d1bdd3801d27769ad86122d7af71e0f42c6842a2d6ed2d19a6e1e46adeadd5aa7937131260badb4a9b90a8a0036f7df4ab93564567f9b5631e7afdcc2a55aaf7972c986a8bc6fafa70848d377b8f5af6f13c729cf43af2711e35d248238d34d248238dec818824440815add5f821ce0e780032a7af40001c710cd0827712707890830be490f6418c6f4aa9014ed780c3199f385ce0f46d0e05c8a1c4195d833ce80147165958e979832237d189779905704fbe40c34c175511470641dc31447fa9a28aec8334e4b40934a0c183044f84d0254099c18c1dbc20a2b3fc202159006586960f6c40c31a2e6b150b3b04209079a44150c55147a903a0ee2096804e84223c680d1871001b7bf0ace90b02f9c0028a40d9e928590099218c1a4af4045c2419a18e015cd0281ba4f0202606346dc2c10c08f040868e8e000c57401031386b2048e521c7193d44f413382b6441c509648d0335314ec5e569273f7aaca1d3c416dd64cb15480ac0a388354c84ac40420426686b96a4c980861ac8a4d00d4001ee9184163a74033b1568c88ba156f2dec1993a22f092644e1515a46962804ea2c201767022061ebc20a9c0ab9101b06c1c24025832224c018a354852498c8842ca21718ebc4147123f141060cd911c4e0e08d398e21c191ae36a102611228e4050c20f350855df99734516145c600c2b3b6e980073451b931d3b30c0f044031491e368870c155e2060841f7c27cb1c41124051516747023641b03a09d8f421b700611649634dd76185c8cb41d4693262c8214859a24d53a1011506d80d525d441a34ebf0005a1b40852e6b3c710975007810010b089c90d3a29831c4c4f08598a6dc04c625d220a25958e2488f26a858d3639a004167e042458bf956e01124ec0622c20314a8450edd2509276da878a84dc2bc0100b517b4f49538292501b0a14eafa23872c38330d0e854081a1c22a54d06fd818965c29a2e6c6897ddd0a0014c08ad0106599a200485455f00021349f800e28eae00860f6658400952f40416a8214515024ce9d3200ba023c90b29dab4e48b520d3a0c75046226b802cba24e3fb00506c28832e6493f31738295030bd90e5090012c5881ccd14d0a41f323411e893413415077e4f0c39166e2248409a0e122875eb2850e066c9820a41b780110221e72f0a395b87112c30d06d056d2333df8430a0d9d840a0c7a004202173a49096fac28624a178de40c2b0c31409cd948687fd090a8c0188d048a7c20093650e823713200e2c05e1fb9bd4167e70eae8f6c8901d6802b4f7a270353f8dc014701bd63c618998e15b4f4ce101e2832451830f4ceedc964c0f046ef886923564925d23b3c646cc0c119a9de79328343a6a682ee40360041c90b08e89e13c4124c80e143f7173e54a93392e96e001a71406164477702967c753468751700cad2094936e806c0154ca650000cdd69e0a063274903ba65404896e03cd07d868ed89140f8e8461a400a6e5c50a6fb0429b40f8e98a1db070838b0fcf042371737c2ccd340f7085d0461c9238e6e2b42148d32b47453e1c4b8c0cd40770885e8c1b304926e293d86270135ba394813c60d192040770626743dad1eba2de8aad05144836e0acee0c29444936e09d4a4e942e0a0fbf44b4075d6e88652031313f8c1906e08e6e410c7137d743f404695c21861b7038a40d0454e08dd4ec0e8e25e38a0bb49131ce84085896e2650bc90668f28ba97a4518138038cee2547569005b04077036100712246d0adc4cd0311c8e148b71209deb0830f9fee246c7c98e10d22ba93583006090940a31b09140f30a120896e2446ab361428a2fb08220e04400756f791269c40f94045f71119cf1351d07d64ca155a08a04df70e2046c8188e74ef6ce112c06b8aee9d1d1229d26349f7ceeca8670644f78e0f19332c02a77ba703437618e1a77b27c90b524cb045775b60270a57417743404b1c330cd0dd5a44a0cd1758772f8144133a24e9ee365feb0285eeb6810f1319b1ee56a3c82062dcbabbba50810f4dbadb3321090a5ae8ee14520480224c771f4579326787ee0623c8c803ed6e2f46b811c61fdddd82720036b4ee164155c68e34dd2d27e085b74577f344b132a68cee0641ce102face9ee0e0e69a18d33ddbdc10c422d68e96e0c5a68e24486ee8e42c40d5e74e86e0a38e021cca2bb51758cb144aabb4d71d040478dee86d2240e21f8e86e086835095eddfd24105bc61added00110718014a773b493388056fbabb49ec020ce87437935a1e00c840772f39c09a0b54d1dd0da4016eb9a1bb1bc8a093e34b772b81610c0b5b2e2082c1a06210c7a7bb9124a286163cb48698d2dd48b4c8a11ebafb081e3f44e1a6bb8ffcb046018274f71198037a74b7962bd99b362ce2e6c766ec8208880ee96e931044ace96e93106cd62869931038ac8103103011b8c2268622ddbd33041c5b9450e148910574f7ce01fa48795190118501ba7b670b312860868e24248510a9893724684490ee4ee2c688258e505990414277ef98708033466c6e488016ddbd83431f1ca8ae929e26ba7be70b2431b471821b6a68dd7d6400522458401e20987146772321e40f16a470420c20fee8ee9d4e01258cf972001678bafb88993520f0264a1d6f18a0bb91bc7942001806505860a8bb1de8527319f1c3911514dd7d444c90097be030050743ba1bc9043bc8b9c00f6db4804077ef844ab850c511660089d2dd3b533420d60f689144103e1cb2e3462b035ebafb881e8418e085457ec843886e0910b4335aa8a3bb33ab0a6655b90f641fcf9088a8eb3a07f3e4dc3f341d6eb564e02751ef3a79ed8f4cf2f1fed2777fed4f277f89bebf0c7a9acc62d8fd7fb1b07f19084e0f04e74ff7b295a3e0ff32ee5f666595d607f34da4e1ab48fa97ab68bfc79336fdbd6ad47daa560b04e7cfc7d9cc7d77c61f8f71a9ba2f7b5a56ba6ffb264dd56add4fa1e95e69e6a4efce388bd57db4735ab692b3999371b6af9ccd1c3897a898e6a31c686d28af957d6e69361abedeabb648dacc555b69f84ac272de9f517ff1723f9b2187efe3795fcefb9d5f5166dd7f36c339ef73f2dae9d98a691cd3f00534be6ec7aad2d1708ef869be8d4b4f2f1839823299fdeaa4f95b0fb49ecdf6861e15a7d71556f25c66670be7c73e9359c7a27ccc1a69b6b3aff4a338e663fe5ce9d0d1cb3ffa60467985053eced47da494bec242c5c75757a8f8a4729d5f7d0fffe76e33bd99facaa73ead8ccbef31a6b9f83dcdc3e17bb7774a5f4740452f243052763fcb5e7c1185ef67b309ebb8771f3ff60e5a1bde0f67ad084f4c71d761fcd566ff2b627fa559c35eef2d676c858e241eaf95c1309e1ef6208e03a78373c9de307c39e6feb355e2ff6cbd5662109c32d79fe05fc7a2ad239efe5ec553e4bc3394598ee33ac06e81bc8359a5b399b14fc754b4314bb3c9f19540a5fb350e7f15e5085f9d19676c41ee5a8c2b75109c7f438ec3b2a550e6c7d78e31fc85cc11c7c99642d0dad06795b2fe86fe85cc91cf28ceb58cad0c8b676c698ee9caca38ae5a89bfff6c97bc19f3d56731c4f4f30fe7f592c6188733e5c2daa571d26270d66cfd71f97dd331f8b54e9a27b338572e4ded937ea7addaec17ab34d3c71c276dd77dcd2675a17f9e1ffdeaf47c86f4bdbf5cb5b433ea94c658fe2fdcb5324e763fb34aeb8c267534d79931482737e9fd4cafe7efd5896788b368e594f16979fc6aeb5c0d39c771dcf77fbf748ee9fd79a78cfec5f3ceefb1e8755a707af70dcd3b8fba6ae977bf26623c3fcacd3b434ed6f0bc33acd3fbbf5f5c7e4f43d1f3ec5f99fbdf1f97752e3df8d7f174fcd77a6eb9cecaea105228da0ba6eb6cb6769ea7925d729b7f20a579f969d98623ed7b35d4cadc9f96250673a5637aa7ad2e1b72345dab75bf3bf3621a4cef4c769d574afbe96fb34acb962c2478b29bf2cf3fe6ae867ef5efa4337415cdf5b30d5335eba95232eb8ebbcebfc7327aadafbeafcdea2b6a7339e4927af7d1eea35da5ac0c5231f651f93d166df5d5f48cc55af5239798ba53bfd63f19ce62e85f9d2028ca5841442fa42f3e5d669dfa7fa03865fff95867cc82312f324a3ac167f703a673af16b740c3d7473d3ffe28971fe7c75cce1353fcf567df57a9b85a4f666fdecf95bacd183fc87d4f1d539759963f1ad97c31d57addec2a75ffdac4fe93e6f85d361fb421a67922c6fe31da6391c632ae74ce2619c7bf341f7c0c06b9ec6a874444b4ea5435f5359be45d3a8c9fde6b654844441c97f1c730279b0f72b756c332ebdcadd524cddaeb484444feb1e9c3719cccb7cfd57a95562397aaef4e9a639af2cf31f559a532ea7226df5718a453f6d7c3194fef9bf6c6fc63b6a646b0daaf4e55d7a57cfa57e7f53a6df6ecdcf84a9f67c6b6fa8a96bfc7e21797d5fa2f51d031fd3cddc73a5dbea4becab4199d55fa31774cb17ff3bf3ab1e3afcd3b43c7d3bb6c41dc29cdec43472f6f05c18c8a5ce2252aa6f9bf13cbacbd472e7dcc343ba663a6013c6b78543c495a76aa2b29a3ce5963a63797224582a20ce3f73ac799d682aecc66a59d1e8aaa325436744bd5f74b14541db5cc7882d55aec16ab9e744b5a4eb1912a40ea73b97c35a58cd39436538242a813c21021048120881020fc9c3e18a4e51873707ad2f6b41995f8b37db57df5faf563aa59a5b3d904abcd7ef8f3b462c5ca15cb02c1af89f86513d36694e61ffbf9bde7394fee73f5644cc57cffb98a8a60e0ac0f0a7da5601d6ab5be7c431ffd2b86dcb5ffc11229725ad232b57d95f246caade50866ef2465cbeb24254a7fdf7c9121f1c9831b9ee2c11630576bf30a043d80d2019dfe7e3a88d39d6d3d75b086c63ab0327b902ed11b7efe1f2d5744170d4f21109c3f2d989f71263895ebd7c6aae6c4410d1c0c71d01bb8396df042774b1f555d97c297e6a9fa9edeec0d53ae41231a28a181101a082579d7cabe6f76197891419a5306405d4519f5fb4b6fb3345f8d31b73510c440060cb85c80c8050e385d005e30c1c90237ba6507cebfb6e2e9d35d9bbdf9e5d5b9cc4ef9d5ceeee83689c0bfd4b3184f77d9c73e7f160d5b40644193531438f61465878a0a66a70a34a0008f1e28f8424107139c719a808b09c0d30440b9b345b79f9db3fc76ceeafe8a61673f063e6dac2fe7e191195b1083e08b8767bcdd6a9b2196208b9304f7248150cbefabc536efeed7312714004e2833a824a7532327274ea7214e41819c4c6d9c4c6b4cab93c90405025066e84aef8ad675209d5fa4bdafe6b3f47ee8563a7f2cb620dad1ff4e11ede8635caabaae525fddfe136734567b79abeb9c256f0fca6cf6ef3afcb1a765c7d3597222c9fb9dcbec83b14a739d778a339f5e6d334c3a45708153044d74b7037d8a808853043d44e08ac083969db3a4ccba0c9cb48f79b5e06ce139deec2592b97e0d099cae956b95d46ab98ec2f085a7939ed53734cafe7d5a2d98af7a6ed6e7f44022a7070479608896573ce3f9a0e7568729d7799e31a4d3033f0f28393d21e3490d4fcb7e3fdba56bef7d2bab431ff4e949aabbfb09937e3940a7bbd59d1c88d3dd5d8ddabc1cb885f3efcb81a3ee7e9d1c80d2272764b4fc9af5f0a47dd4a362d2c9891b5b747222043b35e9e3d4e44d774b32decdbca0db9f9ae4d04448d6e689499d9e5d31b4f7d5b0aaad7e6212a7bb9f066332bbe5876fb58e29ebe5728d1f667ca5ffac377e98d3120b9c96c89163ec479e96d8d02dc3f934c753f2a54bf57dc4afd897f1d0823e2de934e8d31211fab4c4c9a9812a4e0d84dd1d781fb2aa783ddb2a3bfbd9be269d1ad8d299d6fe9e943ce0a4e4a64484ee963fafe879311163d1c732cec3c3c3233108d230dd1da54f49da3825d921490927248d9c903c714262a6e5f718045fd26db67d05c3d0fb4b3f1f67adfbcffee44faa469de329f681e48727ad8a2b25efd5c84f154bf9d1098995ae7da69f743af2e674249f8e6c70da19e3b4e3c5698776b61609c6758f45afd5acf7d7bd0ff198c73a270dcf1698a2a122a45719f93d05bbeed5501a9e42ad168c86272dc805f3e8049a797e58f648f8ce1bd46ac1eab4dda795724a5f9b95cbb405709ee0aa7966eebb54bec292e53ffb131b27d13754c459591dcaafe4d1ac8662ee366bbf446796decf75e8ab34cc6dd632b6352e4fee366b41405f6ade4d042da254b5b04b842c4b3d35cf4cab8565e9fb0c480063a35be26fd61889213f96d1d407ba5a2dd8075a46bc3012457ee12b2d52a75b7e8bbc51b2620baa562b8506cf33fe5ac4067f5a4eba591f109c9e0bd62333b27dedee451c50044e4b458e50444ccbf1956c5f559ded6b9772452c48e4101e1ef9d57eac2a2ed95aae5f67edfe51776769532243241226020222735a72dc63d1ed27263d2d3b08ce2e5b8bd4d94fc4e20b111bba5b2262a5bb5f2644c47c48132defebda1c02e5db17b95c2e58cfb55f7a827a6ed6e77eb5198d1fa6d58219128813264366867c303f46699e8855dd986e04ab35155288a990294c855c5321566220486daba56be9d2a47d0cd35a15420e21c408428a063164acff4d5a9d60e8b34a89e4fd2c9bd57ec7e5db57ebdf77ad37c1a3fbdffdcf751fe967f3a8daaca5d9c0996d76b97cf5f5048153fce812fdea1050c63fa39f51ab45c353e8bff9422e2bab43195b3456b0a0c192c5b96c11cf9804e952f3cc70b759d3320216211a9e341a9e4235cfcc478d66958e33fc863ecab9b688b7ff32b61ec6ffb2406c08a4a8ce21124f9ad78953070075ac74cb3a3f401a01c48daddc2bcddcf9f84d405a17d0a3f3bc00141738738124ddb2da50f4efb317b379b5ba138236fdb1c71f43b4c438b4f98f15ae68dd66d31f4dfc88a3fa7a6d2ce599d6971f6cfae507521f8bf4e1a665a7f2d537b44a75be3469e2c765f6419b487d4051d54fea5275e2ff2f260bcce996260b1c6181a2435a7e8de67cadafe6acd2396b15784005426bfd9bb45705a2b4c4589c65badb8336d1d9830e9b96f3d2817577879fc447224874b7c494be64a66e69e2f7343e9e8f08b4a00048010bf608437effbdb5b398bda163ea4b4ee4f2fb30b477c4a2557df36f4a563a6b3f9bd70699f608f7b8400f3240310da6982e61fa2d7577056dd2c34dcb5cff65d2a3a37a3099a0f734af4ed6df3cdce4017e784a1e293ce6744b994c8c2979339cb4fb47b25257d9cff1b4e1e1a6a5098ff03d131e56fa0e3b5aa4650abb034eb7bca3ebceffb56bf34767f8b03ba274b79c79beec8853ed50c28ea3ee9e559a457b5d667d9c36b7d5e7eafb4bed88226d763c6975d4917f616d64b59f5b9b8f2a109c29af361ba54d758475b85411fd98f9680a46871cf97dfe1bdecf303ac2ffd85867cdad85d11185a5e4fdcf1c70943c0b7eef4f83cd716bf93df58fcd7142778320387f5c8ea7c37a7a6a9e19d737e4aa79667a6ed627e3ff5c3d37ebe372a9523d35cf4ca6352aa60c962ca2cb857b6ed6278e281200a3bbc3b449023709889973c81c30c0391398e6ec44a08908249922e003081c4398e008e188f2c61d6f18c0f406d01b505a95ba624695c262c65de656e62eaf4db9bbaac3f3fa7bf56929c76dc841848d23d840818d2658c881418e14d3a635f0584387356c779bd0a635aca861871a364c69931a530d2869c04923664ae30234c430a181031a2d131a139c11e70cda192733b43083663283554604cad8a20c5a4b9cb1b33afc2ffbff6ae42d96ecacf7319f3e5da592d2572a29533f6052bec2e22d9c92f769f98aaf4441ff9ac5beea54686058a954a9ef41f095fa405ac65b2e009de9c0fba554cd33d3b9b7f074c753c4a2cbf033f6e978568bbdcbb8e6ddbedacfc7a76597ffb2eeaf94d98c294824bb8f72ddf7771463367741a3e8d3f90a8796e6e3add3f1f49551955c69cd5dc64421774c1de6de75aa1492cd1d12383d2ba6d5fa708475cef25638668ebb16ff67ea5130bc3d192198c618640c3fc640c018ae31769678000a0fb022461c62d0d0dd18b4498c16c4a8208c30c2104d619409a35b12fd98598d75b254634a2a617a3dcf8f61da71d7ca56be7a25bd927c557b5a76ffeac4533075b7b95e31e6b97a9dd1bfbf64b1db2c6bd96ceb57a7b4b5bf7eed2a834100307a64a66ef358e9d3b2cd4af865fa028c2f10f08597ee969db3a46ae6fadedf3c6929d9c4495e24e14592c98b124c71f288b3451c9a294e52178a98ba90a2bb4f6853173453175c4c5ce461e262071317425c24e96e6973a52dd6573fe6164b96e99dccfaeb4c7d8c462565ca7d95ebdf7974a67310a46580bcd565fcdfacd689a7d7579a190457df5751c4ffb2da67fa2feb641653ff8fe2ff2f3c3cb2bb96fbbef3c763bcf537fc8f87475af061a62d96e86ea3366da182698b13b438a4e55f8affc394e8c74c4cc46fb3d9897eccf8582716ddefcfaa051dc9a485004c5a1069e1cac28f9618c6929db3649e1ead62ad66bd3b41d1b3f91694459bee26a14d59cc2c3e909dafc49b3b6f75df7f9db364a5b5ef5527d1b54fcbd5c119b3e0ec934c581461c2c2052c3eb80291316dba02896e49cb55c63ba9d7396bb44d9acd479b314b7eb5637d79abeb9c25897eccdc5fb259f665c7b84627f863ba02c8046710139c0498e0f06082e3058e17139c272dff9b35ff98dbea5569669975af939669ed6eb3d679bdb6e6b6488ee0b53e82ef7937c3b5ce69b6fa92befa7e35ef2b7916dc82e58ae8c2b749e42bd5162c57445fa57abc27f3fde7e5e9526d117db5454c8d329a6d755d8efbd8386b4a9e057db268bf46f37dd0da1887e9155315e1b47d55d200189cac565d5c5d5c75fb682acb5e4c0be91a65d98b717777e282df3ecafdec7bcec564d00006ddc013257274e9a1c27da0455227092049a08851916291eefecf566f3d189b346ffeada27fdeaa534071c55932f0b177e9e2f267dfff6092224a77688aa21b6fae5f259cb55e2284e98d1c7c65386b3b4e982ce972a595989a98a47c9092d24d46500243a50e3ab8720585eebed20d02085d9a98942831d3adc44b37122b5910800d1559dc747737b00577644283a644032d507420424477379154cde966b2a481264d901cd9e95c7fe9a396cc0f08ce9f26c0046050a6bb9bb4e989a2274e78226816487747d0a627b45461a28227a60429a3ce653604ff24e9499dfffda49451b75a613c4396bcac6ac780e0742a9ed4ada6ed5a7aa5f311a43e57dc778f4570d631aaafce94d3a15697895c4eafb2aea5b8c32218fa4a76579cd5b9cccaa84733a6138b22b0c058a08085e98a2faea8fde35f9d2a381557216524e5f7b4acba9f7a7a2d779f96276bfa50cfd728ac3ecde67add26d1b570eab4fc1e8e9ceef72a1c377068ddcd058e50111c87d36d859c1e6356b8e96e6945d82da715985a01a55b7e55d0e99e72ab20a3fb6555b8e92ac0896d585445ca1d4046aea29d52e5a903dad0989f1c104a9803c450c1081578b45cc1e8cb35e42b2ac05031c114784cd143b76cb560ddcb6d38851529f890c2896ef913851b51bc1005086fe6bc91e18d0a8a39a0d0010a3050a4baa59247439b577f4641faf98bdf98b1078e295d8da04a7eb376a9f7d726ab9571198a3e82b6af4e8fd916fcd2f97209ce1aa69df72d3c9237a60108680051034478a29027e6b8e189119ef0ee97adc47fd9cbae5d0db9ec3acfa3cffda399275017525867fbea04184e8c4ec05abee483f67aaf26b8686288267468628bac599a6dce1713474cc0c044d2128b74cbeeab1f26b55ab06e9c44b21a9d2f97e05c628725c025a6b859a45b7aabab9f81867cccadeea35caee218e41a7315ad0f771fdb50f6551bcb937bf1e3aeb5198b357b656ebce44a6b6e987437a4c49c964a10d12d95e85a092feff27bdb54a29398933f0922fa94c4514b15fe67c021ddb1ff18f046aa18104ad5c78055b754a5fc1391c8030936e198f117194a24fc7e348544cb23e674d2119d0d7684d111d8829e45bb0aca626cda8c9063849b6e69c4ad59ef6384909a49644477cbce05eb911991f9404b2ba24a116d6e93a8c3454598791501ce4c899043840df23f2266cf0cfef7c1feef02e02c00000b902d008a9402d6324dca56aeb38412269a33feb4ac003f14d04377cbbcc2f316a4804e0122b484191921bd171b93802a124080047c19029121c26879ad7f9596e77f9ccd0ee1011a428c424809429120ce08228b205a0802054416403c101fb47873ca55a9e9f90a4f9a8320075a1bf397b758524a2fbfaff00adf1feb1c63a21d574a77a54a39ce9396b90763d3dbd4d1868a965db6f6768e691b16da40f0c3153ff8f0c3ed8715a4aa5ef16919f42f9372f9c540b0720504e7d77563101007026a4000900f8a68d12db9ef3df1ab578c75abaf71f58a31cee76a8982930bff953aff6a28fa157d7cc0c107313e6c10e4526437f3d21ca7cd6735bf90943c2b06cf2628fbbfb21edab444b3c29915bcbe7ae8a1d34a222d7f2f6649a7f3d086872b07a0d3ddd2e61f975fed87319eb403b8391de0d60d3b00ab5bbeb05c496ab55c1ecd3327399ede6ac17aacac0e1980c546113672747f6c249bee9e3b68a0431e3a144087201db21480020538a300521440850238c9018d1cbcc8a1851c24c0a10b1c68f7af7458a8b82a9527275b1d96af762a0ecbb7925752665e449db7bacf628cde9ca713c9efab7356e9ec7eadc3724536f4b48a2bdb571aa6f397a6c7e5abbf726c6dd97f769f88005210e0c62240d77d6fb0e206226ef86eb87243946e89bb8fe6cd9ce76c89256d10c28600d84065008cb4ec3ebc34abf47ef89d06d06aa1fa54c31b3504a006160d77d09043d73908fe376babae7b5aaed357f8bdea5dea39084e25a319e4cc20c40c2f740ec59ba7546bc3dd0c1a08c08f9627018011402a006e04e08500509161111994902194ddc47285e7a8bbc2e1c98a89d8fecd75da443b8254b463b67548d6c66a3ff171e8dfcbf0a45bce35b535586298e314c30e316c89e10900c200c00d3f3faa0e4f9f56abf3198e31c798d260299777666bafad3485bf6f59cfb6c6c6eacd1808da0b5a9aadf6b45cb3797ed2f759b4dc4767c8cdfb5cb532fc6a28befd37abf4b3b5791f063819c3b0a61b06166088d2d39bf7ebeb853a9fadbdf042685ff0d22de9eb85282e40e1c20a2ea45abed25c8d606c3e189b932efdcd23582d9a1556675670e94237193572bae5ccffce29f8aa6953e46a8054d7a65e6a3618c958bd120d5f639bee71ccd87d1f5367d1fc78de5b1854e9da5b1037a0ee3aa7e56b6d936663c4e6a6db76eb6e69f3626bd9554ad4499b05ddda1f3b6afe359bb4e4a6978ebaa50d83b32e59e9964b506492882992c8a6f1b54562943e895ec428d2bf3a94e9b4ccb628bfe9ee3eca6be4adf3271fb9672bdd12ebe1d19905fdb188c7601ab0966b47b7ac321d4ff96abdda4a5563ec417bfdba919f0fdda396d3f6baa8347124f6f05fe99b2ed3b891b7346bd278e9b6a11ddd2dc7d87d1cc609db5c3ac31017b97e364317962c2e2c59441796fd0d5df72b282e55ea72b99cb8727daf5a0a5487b0ab2734aa31a056ed83848068803dfcb475aa94cddefde029af448892124a2f482cdadac29a164e38b53002f583fa40bfd002a1258026005a1ada8a2665a6c66c866ef955d1e62b4befacef610741aa9494943292ab0fc78ca6ebcef8c5798273daeceeb2e24cef2fbd9db42b5aafd9db75639d321c645a4eb2101e02efc297f99dcf890fcde953e1437d4bbc379e1aef0337623374b7b434db075a7f9b8c3a28ca42f0695ef36cebe8b8d24a6d4ee636893a2b595f6d9ddedbae75ecb7597b6c41cf6d96e6383f868120a5fd74fe729ed6355a3d189b9ff52cc8d3ca8fabf5bcc36feb5f8b67483d1ada8cdde6b9c44461918e896e4ce700a705c7860362e1909ef71d4d47a747439b63b72652b7f85a7cad6cf5d53a1af9fd6ce2dad3329aee4cf76a68d2cfe651152be16c863f9b3f9be1646107166e606105161a36d0b880268526821526b0020f2b08799f56489d9183c5cff1cc3fb392728e9379277e5fe7839e739caafb1f67e8abeefb2ee5d8da60f8e9cdf5dd07e8ef6789baaeeb64a68e417bf3a4c91743117626890a56a850830a575290400a3ca4d0858e992fccd4cc7c50660265dec81576254f4af97d90cbee47d066ef382af38f819686ffd232c7f3d9f7fcf16dde26c7555aeb9c473a2e83858c1c64663891e932669031518c6933668ef16e991fcf3cef2fd92c86957ac74379b218e3f130ad4359f6e0a4d73a179ed6ac529fd7660c73a2bb065bc13438251592844477cb16394b5ed1d22515abda9af218a62f4f3a8234071216481f9209853899d6ca384be26ffefd71965c7d365b9f96bbcea78af5482914945098e0088d6e89bbfb369aa4b38669de3cf28eba1c4569098254c96df679bff519f16084d4dd61fa64b4a4280cb75910ccf4bef5719654c1520e1b221a12d36ae1eccd3cdd5315a5c64c6f53589d3fd122446f882a910562bc100383989e308a8441a265b5a1f88f243b3cc73a24bbafd5bad3f698fa38ef672e13df8ba96791f767dfea5a97581c5379a5f577662c7e9d7fffb19bf3ac3241f0843d4e70e3041d4ef03204c8d0028692863e106a43080721318774cbff2439e6d2bf95762048695eb7eabe6a7d863affaf3f5d362455329a72ac54459aad34b3acea1fa7fcfb99eb8bbf646b3e829d68474cb3aca9566bf45a2dd8c45ffdafda980c8c01c0740113c1172bbe74ddb26bb5609d0ae399faaa8cfae749c3432ebf36f1dfe9e3a563ba1b823e7d2921e88e20362daf9d367b9008417d023a03a8876ed9753ec6dc59d8c5ac54625246de1a33bd5198b3e4f736f648405980a0fca0d1dd124d971fcf24d9e132b749d46a3d9e3eb793d96bb33765a1e80f4e2fe9f4d3e627abaea48c2406e77ff4e4a388cf17279f297c66f0a9f292e365c3eb85d707dd52752565e42c39667aabd3a3323ae412872cd98d75aaba335fb5b1149aeeab36d69da963e4576d4cb4a36847af149cdf37a90cc5ee7b7991c30b0e5e00e0a547feb53534ddf722d79df16a6d766f75b8ce107335b176ce722952e4087eae515f7d3e8226b43141c904095c5fb818e03a3ab9927431a3cb0c47dd9d439decc65837fdfe77bd2a82e0d3f26c864e65d4571d9a799fe3c28d2c9ff74c37d6d9cdfb5ce72ca5709c475d9ef458d133801e11b82cd22d71b5363b16ede832ea35a298d33c8ae99d9666e312c389cb1017282de7fd0cbe2c48daec40ad30baa56aacf3fb560aad25257851029c127e38955046667062da827f725e3ccbb81499ad451ac1faf3bedbbeba72a5e124fabf301f3aefbf8b96c3071a5b2d98afb8d19bb3075d78cc6d12f5285591f6336656a90b7f3dde93c99572a1885daad0e53d1912de744b3cbe92673c6565eb8721e1d6452498914e8295efa7f449cb22ddddb6086b69410b062314328211238411a11011c2a04ec33363d5acf36b29cf4f031af28f25897045c8e094858e953e658173ca9226cb961b9579a74ae18f72e32bb55af8e52e33961d1e5fa9c3a9f19592b2744b55ca1fcb9cee96362c6c8086b01c55c112a59b5ea9d3dd7dba12c776ba42434b707ab7ffaa15364e5682b092bb3b63b1ab6295324e5584a802d4cdfa7b47f065b2774c5fc291346962d16159c1828195fafefbbbfa562703a79846463db42c5bfdf65fabb37d55b1fea6b86c2dd2bd62ac462bf834efda151254fab41a572cac989c564de54d777d35b65256b5755a7ca2f2854a09272a5178de08dd26385ebef648bff3812b21972af1694a4641700ec1d4d0afbacd2bd5d3b214bafa943caae4f6beec3d9be967fab26b655fb3d862d047b046f390cb29dcac52fb097d3cdfc98bc343e42ce7c1f8c16ba7278407e47db0ca9f1433225614f3c9c6a4a2bbe57f3653310d1e1a23a37948ae56ab714ed07181eaa8e83c5407d47256a9b5358e366525b3d7ce220e0d6e0db76221022c088085d0e63136f1fd25d67b0e14e44ffb6a90ff8a0205f9175a189a27d0a041e3bd020256005a0182337c9c917346cd192353069450611115dc5061061568dddfaf406b7dbe3b4febc7a58c20c60f7e3f46a2e9deda0b5a1baa6025853c52f02105bf394bfe15bf63a1ccd461260933309859c18c15334ccad42943444b34e08c59100c68edd1fd23d0da9088bbcddbfc4aed09951275673c7f92b3bc52db021a326d9071814ccf1844c68431a68731634480dd01cb012603ecebee382a7eb9ac6cf63a24d1b45a9df34834ad16e6914a548cb39c477e3fda8b41eb32eb337b13539965394fd21c494d249d41258180840114921f480e40fa2ab52dd40f8d5aadee0c8f53f1ce1d7fce936de5e191b5695bf06ceb741e29125b9b416b4308a0e0020a57506072d405eae886a6b3598b5f49a95a0a8a321975ccf299d49d697d3866199aeed59de18eae18cd614483d1084576c8f1bbee1fdfc7e2d72c76fc0dd1fbd3e6ca1329cfcbb9542957c83d98b3bdb47c9bb5799fb3d5e582f58cf1950bd6e3ab799fa3656ae32aad71b759bb2e6b2fc60f5a24d0da23fca0bd2e58cf7d3151bac3d40923a74df72b4c870a03a5c3a813d6f8e8d01d430e188a0da9307481d0204266080d400814e20153013052a0c060149815e4edc149c6662c6634b74934fb3bfdaba20dc748f07d15828fa007fe7daf2f327c717de9203a828e40052120280554d0aa3d7899277ed7ca1c53a0128026f891c0cfcfed87cb8f159f41503e78a07cd4f86c790dd2dd43f27b8f5efbc54370bcea30ed5edd9d2e4716ea55e61525025ea4f052bda0e0058a096f98d043b7d7afbefc0be1c7a52d72d9e19a02e53ac2157371d0450e54172abe1f0f3ce8a2c48b9e18503d6a7ab4a07a2c40718983cb105c6eddd2030f5e2e7f8ee4b5ad9e5604a8569212c240955043094025ec6c89634b9b2d65505b86505b948041820c24784191b0450b215aa8d002034a4b182d4d46280335020ea81160239c44f8a3e5c892a028fbbe97db4c259d34e377f10bc254867f27a64f7b5ac66da6ab2fd2af65f53859f9ca49cf3d5a7d435990c8e258dac0220316ae5120e219c1072de601cb60d92243d41546ae3481bac2434b3c63f8ce585fa9cca5f531e7bfd2a1ae58e9ee4ecb0858382caf34c1586745109b15fa1e8b9c1507745b5983b27264c54a5791636f2de5ddb55d952a4655246065baa451321194fc403be5adfb4802612aa3b0be68d3ddb806da55b6f57b9a27265591d575f7f71e0b4ab7c415b52243563a67b0d5ebd5d0a4560b46854ecb0767c68ea2f283a28285470e9e2078c2a054195055408500d54daaa878cac85b58a9be4f6c36c36fde399ba1bde17861f2abef72f514e12bda186d46bf72b37994f1045f0d4d72f9ead5d0a470be500f962c636cae43beda2286f369dcbf0cd7c4fad78239ffcb6eb3c671df7cda54b2d6850424d4e333633edfd73199c6908084ee5ffb932767bd6b65dcfc31a18885c099ab75d9be725c38f3fcb86f3ecde544e552a5f227254d7bb9fb4b36fce8370482d61b3d8ecb930b457bc13c18a3aebff647b41c178a9c87adc4b09856abd5f27e29d398afb688d4a75a9af36bcc54a82787df678c5d423dd762a53b6bf7f3b471aea29e1f9c2b9dd7e52af29550cfeba7c77b324b36e46eb3c6b98a3e97ea278b46befa86380f897315f5603161ed0a0db954be2a4add668d86a7d07ff6a75aca7162e5c29af8598fbbcd5a5813b94a6b334fa06fbe50c87d7f5df37e075bbaeb0c8d5ca25c0e1f80772e695e9e5ffd3b6bbeea500e05cf2ae58003362f1407663a5b511c30f9e60b79a555446d00a725456db0a6511b68416dc0a45b6af086fc6cd640840cf4c8a00854062f74b7b445b2f6cdfb686418f08001970bf4b8600217e480ba808b057ca02c18c38210658107280b2ec516f471f5d5d5aad2b9920dd1172b0dcb865cda7a2d2a0a1554058d2c5141128a024550147481a2a0a22808ea6e397a9d7f1f43d3bd98e6abf2abb446a78d7ed2b5349b8f31e7e161653c655fad3f90ebd5d024952b95b1cb05eb99557a9b44dfbbc8f82a4cb66052b620e65a2d2e3f1e5fc9e5ab6fc857968cabe7e71b827d43f9938ebe69c171862e955dfa5e365f4c8ff7647abc27f39f2d92c04ab7041a7214aacee3fb4b9f7554019af51768c8b760b932e6f3bc285406dd8d3ac169d4c948da5cf36e1ce7caf5975c2aefc9f82a55f36edcf756568732b647b44ccb98d674b74499b6b889890c8d58b6c8b97c8f826247374a72ad16cc666b0448a022e82102135010088282000200808007f50022a807ea403db003ea01151e5052a7bbcb8fb9fb20576de7ae3473abf551a0ce65d64bd5ae384bf549465d6afabf4fa61ce798725f6d114734c67cd65fc93e74a19ec4e97e72ebee3a3dd413338d7ab205f58489036f5adabea21cb8396082133a98a29cb0791a9e34941333609c586954133adf23a19ab861558b45541319a84c094f98129ef96bb348094f18933a282661a0989c61d2006ac99b4c1db56404540378a01ae0a10113500d60805232064ac945299129890095044eb7ecbaaeda29149c785545ff3bc79b414ab3f908aee6577f36bf7af31753c2132631ed70f7652a5e8b3dc99aee462539ea9ea824561a85e490964a78e6f1661412393c8d42d2a6a78f20166d6dacb6be30e7f2e8d7261d336db5c64c5147de74ab7c8ca18eb4e99634d491eec816893ac2a4bb5b2dd48e1d12b5f3c6d26c3648d44e87da81d26d47cbfc18d56f1ad536a0baeb6e896a2b8d1cf26a044e236b5a366245be32704806e264e026e967604b777765a40e236430d246da22461889f24adebc8bd4e95e848c45d8dc458e6ae2b74894ac881d8ea72882434bfc77467dca2c08ce1f57222c24828121882481c89a6e39e594f91cff127988a8104972889ca48e8639443cc40d71c39025436a8658504820851c51c84d76d8868ea9e3294ade945ac6f6a8100d089943c816845c4264844019448f969d777690358390200806045180206a04d92259d73a17d5570b4effa514abe5f9c7aef3fbb697d96a9fa9bf30500706dcc0800c1850010350ba6b81023923901eba7b4a9f02a90572f43d580369a04e1f759068f9d546f09b59b05aaf89dfacb3424dc432eb0e1b417066fc350aabd4e572a95cae9793d5088213e6ab95af94bc796135f166ec784a085ca535aed29af71f1137ab94bbcd1a5769cdc5d9be5e20ca1f77f48ce88f21bc297bd1fe683f2690861f5df871fdc8a00f3a9d4fd66a36639fadacd6b5b6d1ed4c66fd1bbadfd16f68c912f5e1f591d4c78e05b0b04015168859e089c4dd4a663f51caafb6ced808de779ce908fa0a3fcde0b4987e5d05bca8000cfd5fe40a4d27b31c572997c5909bcdd8d2df30dfbefeb55e52ab05fb6b3dfccda78174665592afc8a4842ec77d43ad966b9c478ea78f1fe5eefd250b82f6d239438749cb11cc43cec71c3ed6dc5fb25c262d890f2f273ea2b4a4009dbe624c66290087026d9a0247365b4f14d803dc830c3c6daf3d88e83d685636a3e01e225cbbdac3a4471c3da892ebb145eac1a4e5290f327ab41596079beeae791cd5701e1b7495eff38f1fe55c43bebafd5787eeb8c01d4adc61c3472d99d13f6a9724b564ec30c38e6c87d7b1461d62d411441d39d4f1d521421d283ac868e9149c0e4e169622450a7e75af9491141838d17c74a0e690c01c69bc30479a39bcf6ff85ff4aacef5aef8b1c19c8619a409c09a8990008711812871271c4e20892c01f12104202320998e6983167886ee94ffbeedf562bc4f5e52d3abb9768bafb3fdf7735a94323b35f8d401811a8210261e040048e2be060028e4e1eddb9a20d390de9fc1bbafc5e46ebbf81c41b42bcb1e68dfb06170ab811851b2b9cdc400272038b1b1fa0e93e3a8f5aad33d8a54891a11439defcb7c36227e6b9aa43b2ebd07447475fedcb2506e7b561ed33904b91e252a4c8afbabea19e3cb9bf340cd3869b6ed9c69a36ccd436a0a860109803019bfd214093130250dc56181b6fc69863ebb92d62e3a8bb6961c48cf1e182805e48608ec67042492f21cecc8ba823628349cbefb3ad594e1659b42f979c2e729e94f0789ca1df67fd0d4131680d25d6b875cb8eebbce82504f3a420a221980721191179919103058911f3faf1201f871915392c690c91270d097d6b5ca0461c6a08a1c62765f6ef3bcd136b3e1fec5c36f4930621691091c6514bfcd549cb749c350b22cd41430068c8ba5bae3e97caf54a1e962cf541ee63aafc4a1e85a56695ce2a3d83cd199d383bc3db8c3adda6fb65861733a2b4bcd6b194414796e1a68cb00c2b65744bacfa6b6b291feb24830cdbcb6e31325231cf532a173f8d6147b7adaf31d8b41ca76df4958f41a61b7c808bd188187788410031521023891c4156b5be9a551a061330b200c30655e75f2cf1820a2f80f0a2005e187971419c3ee21c1107290e922ee474a14517347461858b38b8e8810b222ea26c11c616758ba42d9068d1002d8ad002498b25594c208b046421d4ddcee34ec51f4f9f9751d071a61e136b9f712bc959b203c1e9b1a458f32b57bc6554654895e4543c6966c1945197724f7a9075534185b21fa874f3a6074eeb148d8800000208280a53100020204058341e118b86d3f9da3e14000166ccb03cc14014a7790c2a848c21300200000000000000003018a66f57de128fd501c4a399da49e43bc96130b437099f1c39ffe1c40ed934430c684ddafb67f9d2934163908d1b48ce53ea1ac2a647806d1d87f2a3980313d5685e87b1ac7cd197c00352d6d1606cf7b0bf713dfa1af037d5b4a36c5f0434e0d6773235c97d45eb837f192e7d912252d76d7c4b50495ff7874d42e26ac48f1fe180f14d8a560a8d69a097035e0427872194d06e1e10749fb82a9baed93f067612bbfc971330cf6a56d9ed5b58b4c5b60882ad5550453ee2585d4d091e56009fa85d758b3364a2d1c4125d9725539d057fcfb13050a05ba2b60ce5e74b3cda4e4bbcde45fae726c4d2cf0596994c250410be71253586f955d97568ef2be07f7066f0530f5840a247885e21910f288949993d60d31c9f9595cb862af5c5e5368f2f5eb4c0378f5d51cae290a0a11e644b9d616da627463b1444bbc642919651f15f4b1f3755e0359fc8f49d667c7e4731634bf15fc1138cbadc30a1d521e1163bf6a27c5aab40d912c60995a548de42b2a027dceb03107a5658ab706650117cdc04cfdef53285aa642005e3ecc910f760299f87ebcb1d6c9d7d916de853468ed430ec7d0a02d7e8126ee0a4ac2008f081c06c9d4a3e8992632b39ba9ea2174433ce0dadcda9f1af15d7c456f8bf25b7b9521d0240fc33f03048ce28ef4e12e3e47dcc4d90e104bdaba3f09164a2c66b82f07a2684cb2fb32580115d813863d6380a674dcc6fbeefc21d22e92d265e8280564620127c41ade79d384d796c3a4a5735ccd4a9bd10f29cd1be615be74f6d4eb52d3fd955aaf492d147bf59c1166539a29e80ddc8a298bab1b6f118992b0836523f1781b4ef872b528641622422c6785647dd70fb8350a37877b64518f6c3f96e96775a7e87aa67846dd1e13fd1783144cadf2936d62c162580ea194114e16418c8789db26d3a9c66933269490bbc33483464f2edf894d41d8af6c5f173cd2b1d45817ccf73297ccad262bcdda9aaa148fb9b76a4e98c331ff19eec1a54b90ea7f120ce0778210d3db03769e613fe88836284d0cc6d82536921178485c08b4c33f822d35a3a4cd60d11910659ebd36035f3e54960aebd4fbaeb1dfc72c6fc392642d5ef61c6d36f660db9e7c38ca8c322dc8d4aa601e814cacb6da19ab085b3852566867ef2fd0cbdca352645e9316d1d83f97880846d59bf75f39bf094bf28028bb5efb32db2599de9229320a8e41f827cc61e10a07308079cd63dc9814c2aca8b3ccd0e6763dbb4a84bffc08fd269b1a359a9769e4179c780f580553d37d3a2731a25c27480d86fd2229436f847848eaf98a862263b27ed2b27033fdb37f5146510f8914f399c92490bcd29012107fa41f699b77edc9934a2d16644644941a33eb627fe1a91333c6ba88eab65beb077b349f258263372c5b6c0c60c42c852cc1c7af42095d0043bece1b4f06c0cbebced1f115e4d8d3f0283aea325871142656bd25368d8bd9236e5a5e2934f06db6f30813a3d142b7fcd1875bf4095e80c5119699f2198bed6ab989ba09ee4d3c5b30b5ca779d6739d854f74cf410699fd9a165b6e79f2ddacaa64d55c27eafc02205e38cdf6cc6cb0ce20a199756d717a176111b693d32f05ae1870ac47961f73162b996c379b66a81152096b8e93d49fd8035439bc2bf7b49a769c46c53a8224ca878bff9b94f15f648290fbb7908a4e823289b9ed818ba62d6ffc16e20ec51f12004fc767befcd5fa25f1970a36c18f7bc3c78cd1b0ae95eb8fe72ad9cd4b2a6f6250feca7595fce431910c7da42724e2d946c364d08a12c03148736d7d4a44524e6a7497e806e2c34df3ef1c7316f2baa98040f465d140c36b52994ee1b609767b7d7f55d2bdae52387e8dfac5cca151cef1ba98173a678156aeaa0f7743a70b4a5732d0bd7a0edefb9cf1a2ccac7179b9da6c24991aea6fa96aba743b898b257a50a45fcdcf25fb300652c6660b2abeed1c04fd7dfb753cbc879e059c895e3d18cad05b86a0c2fe4074ca6d00849eedeb51b7342f3bb3aef09f92fe9ac1efaf780ca3e00268bd5751f3fc1e4d5ea82f5ba866352c97a65901ee961fbea92f7b86713f5ecd39df5a7d60d295d99d3a942acdb99ebd3e3d6bb4b2ec2adff7bd298082739220baae79a95eca86ac5561c5e865e857c937baad758498ab15995fe43e7b1d9c0adf3ff4721e4b02d68ededb152d9d3d4470b4a56f5977f2a5406d4e507ea0995979a685f4612bd784758aebecf8fd715ebffcb2f4a57eac00a366d5cff1d81466a6a8f44cebf04c90cf46faae4956bbfb5f85b559902c0820c05dab96f942f75ab64fee2eb4106f08c890a984dfbb961df5609f70cd2dc821007b771d393a75d6bb7d355474d8151527aadee352ee9e194580a7e9bd030d5c18a16eeeb137cef69ae6360e39d7fbff9e3eeede385ddd83bfef0f194462293a1f8f6c99744501baa0e7bbd23b0bf68c00317404b4c79aa02d0f9d174e99e4f03b4d573e6c2e168a7e1e852e17933610d4fd0b97cb1b62eac6d8ac0319e27f1e28853f99809cdd63880e8acb7709675ff4490359bba3ee17d2fe826060f329e9c152642102b34ad617825966d9bf3fa0070ae7ee2e9f5e1dad8ed3c608907bb98d2415f168925c898cb6a681b666490034b9a815d51928068bb9ad6701ccb7062f935b70f42714deaa8aaa9ad3323897ff797a0e811a608d1e15116b1601ebb211cb104adade9c1f237e3f09ef35bfd45ffb6efd4daa9c21367fcb421e73ccce691178feed029d395ab49d0d2d4728be4d4220edc3fab0f1cffb5123c9082589e8484e816ead48aeba8941fcf2cf40970e021196de225eeb2461808ed54d15b19f6bae26395a81d2c4659a9297b6c11f2ef7dc9b752ee7ba0d421e4e91fc17cc08e230d866b425df2e6d26d68676c59bbd444f34bfd8b559f5ccab6fa6370c58fe4d94b62910cc68d8488f7851a0a2346a36db38cb28dfb699c0cd0362fe4e21b680d2af09c326aa145812021d9df6ee4597e3c70727a6dd5ff6973dce53d8e6127f31fd1fd65f84f90a44cefec4f8f9f5dfa8750f4b7df4ce4259380f5e9c362838ec8cc65838ac82c2dac6dfd164ba0fdb120b26061ca02d3ade5c5a7da3260bded0289b0a747b5cc04adf2a6f122fd6a8a69ba241adf0dac24ad3e4265acee1683be9b61a6da99f9cde62de8896e518d4c1ff1cef1759291be13a271bd38670733c1ef8aea6432803b74d6f41364adb5944566b9e504d6295e0f5304159301d8d3a1c574ba7892c20f40dc0f9a182925d64bc43bf958f80955e9544675d3a336c3fade5ecf5c1515f2b363fbac0b100ce7a4d01f51184e44c53a64d36597a61cb75d52b746ad13f7a5d190c4435c267281e48450a715ca7ce03121d45431303315584413119610cea6ac9d4bd995893816a2d0e104a9c8dbb6bac3379c03606f9af76d06decb93cbc76a2c964f72a5d7847a5cf1cf183d5f2b38bba2d84ed6493855d3f14ce7d0a0e261a79b5215eff88c87983cc9fb1e3295b244172043dbe0000761ae53bfe7530941be80eb10021d7a8eb9ded4dae40497bd5edc52f28e5fb87daa0c7760d8577d9910dcc9e0732dccd63227774ec06fe38cae5bde439222d09f83c9b1b9149ccbf0ab8f0835454cdf40e44fb0b60e784dc451d5d5440a408fcb390ccc1aa072e120661b0d32f9e3e12b42c21cb588bf758bc17ce7e13c6e3a14d277157ff03c6d098d68cb720a718c0cb290c6bef0135a15de1a60173e2d96f8b762bc7dd0a4e744dcc15d6f63e1a256ddae5c9ba26afa5f8d7772594aa80dca24221983da3eff4e3bfed3f2aad3e83d1148ddae80b2183ee0133b678867b01dbb4cee8e7fdf139253d70b00358c24fec7ad1ecb6e9be06bffcdcc4fb1552266fe9abfc59ecae0ca8c4b5bc42d02488e827c072d5366048f9a7a467c465a6d5b7b1df74f6209d2b28f8afe2111a5dbf15e6e68d5860e5a9f8e8edda0e3195a611c74725ec1b0239083d121b5da52c7c932e537d79564c13f9bf15bdd646d33f4250dc7df9a251825791301bcccc8f0176d23d2c2a26b1cf30fcabe5dbc9323acb856083cdb8c999aa17d40198aacbe6342676f9ced2bb4f4853c31512ba6cd8936563401094090528f57409724f870013806b08b274a095c6d770c7bc3177d1721d776d4ab0167d41e93ff5339d3e9bf37fd7b4c4c69805a27154061cfa2d75c6dc727fc7711b04162cc4c9da785966b28d25d0ef5ab76da1f50384f2fb02ff20e5b14627f57d21e17356cba7a650a060bc5b8d0218dbd1b4dbf016527dd2f78c1cd17e8c8aa6b754e26045cf2a721e1845a657e8a1fa54a07cd0432ccb803e8fc1a63c948a59909b75276822159c1bf4f4c48e38daeaaef19bb2c336b639b429b2ff4dcee630b46ba8f8f609d41c1463d3d099cd211f4c0006ce0f155f690e1b0e161db71ccc4dbe2dcba1e252f760e55038f522ee7cbe9383dce82da57110096ac7532be6091afb8dc3a7e418dcee7038f4e527f072333c119095370422d8d7249152dbe3fb088e87d00885be598d1fdd1d510f20ca6b885510e84664acd009de6152e4a9669804af0aca3d6df884b8db1402f71a03c6d8ee582b0e5c7ffbc9f81c607433d7d78c27461542b2eb5a47415965a1d9c97a725c3aa1fb222b7c57bf20900b54fc1d966b6f3e5f602ee3c817f454df82fae9cb71640c8ffc820d3998cfc1176fce060fa4c7e378510397365c03fdc95ec7ed08ed7022cd9deaddb32dc961f0d176f2ca37be07f0fb1e225f43b27c72cd3bc454cad583240c6eb32254661d0b574c9e2b09f361415489366aa85a107eb3593aa41600b3bcaa81365a966778a961ded8674489ca3bb20b169392374d678ed9d23b36208c4ab5003ddb3ac6687b71b34f08e7ec4835fea40d3372fa19071a2ac1c2d227af954e11b7143793e74c09ee819d216f54d4a43816167c015f87058c47827f28fd6dcdf3201fede7627903a96b57cfa15c2b9c2d6f4f267556661a598b9ccb5f2189975266efbb246f44d86e222373e88c8a950f6dc1378f89b450272a6b809932d42ea0fce75c9bf4132a618e25c83b38117d468601bbba24f7ef769b2606be3bbc1048f19b33e2c26ae8792c1878346f5ddc56d7408cb22e655503c70cea66897ce7a8cee0b2d5aba0bccb187137e379fc14c41377909a66b4d683fe12af4219ad9e0666cc91ac272e401c28017e8764ebc253dcdba51dca91fe7e20d70515f2e75e693b42ac53b02d62de43934b3ed649fc983c6f26e2b1b71385672e0fe2de1089f2bfc8ba4c0a1640fa1c84fb01af175694117ecfbffdf5bb2033de309f328e0bbcfc24b8073dfc6120ea73866168192130e42904e0e84c26cad4b4d226217c3ef81f32fb049528b9d936517426c75127ec82df5c8ecbe236115769a0b1a72e1614d2b70f5d8f01a63b858e48209cbaf2b3edc4401c3dcdc9945b93156973869f090412216e4e5f52e91ba70e3a4e447ea3bac3f57cec1b26fc8ffe0c4f6d20432670c9084e66db4f01bd8936a22fcd950ba345d7830f7e3ceb9beb2cdc8c9d0d320facbe1ba663bb21e1092137779c29e2a1073b71e6413230a8cb32ebe3315a98b04e265cfabbd9f343b1265acd1c70bcc2698c8e6cd816a15ddf100273d7ca3ea10d5bf13e2e2b72f07560daa41ae958e3c3c0021cd92dada4f0d6e58af1ff21d1efac7e63cd03a130412810c46182701bf2c08f5cc2db800814d839536e505856a8baa38d7458ac4c3de4d4918eb6f1d157ab5fcc41cc737cd4b997944637775f4f94845c02577e0194271f73a37660ca57a30259b3f558bda503dee28a1861205a83e814893d666da7705225b7a7bf0499fa8ce9b6b136d2bad355c10ab533c315b812ab910557830c6d8b45ba89d41451791667f825ab26a8101a144ef83f34dd5bb1f954946988253849623af27b8030af7703b060ff69a6290a2f495f002b5cd2dc27d15cfcbf5b7818d91703b897a1ee7e03a59081b8fc6bc8c4ea506904833764424a3af51e0bb549c8416d612f42f0f7929ed6e8404487e22673305c6192a6276644be95b9e9f93ba6395326521078a9b8bae9b590ee26b1342f81369805e2d79908f9d1e9217934c678a1d2c60b9ed3643e48ee3aa6b77f402243f9f4915f52366e631cf80207f9cb7a72581365fbfe476072543f7d4a3ebbd8ef34223c744fec109dd0787122ea9140971b8945504d2feaccc76c1f20f1401b45f154a7a27275963cc725e39b76216808c5497936a90d5758e2cfb529be8279e392f6984b2d8e6162999897e58992fff3a1c04786d6e9765bb7d07db7ba978e345a3041d841774d45d7256812a1e38676b8e4aec5510669c7bd52bf407365b8b79a7b0e45a86822b49d6f727c8292072bd6cb1abe70775d2709e46126161d91a7b7680923429913ae86e48bde27425e39cc91b76a52224ea91171ef4648dacd792b4288071c299eabaefb2634b3c2cd30006f5a38d42edb16d0df9604fdf9df89517caca0fa3f4195f083606bf51514e5d677032708a5394868d3e579d208f73cc2860f04f014d12c53f1e2f2073a241225c9d81c0f9bb9b52a9047749f1ac62eacac3887a68e8f65d133f3da11aa1873b6700fa5d42b25d290261b4b3648f28543f619baa65ead7de4526482a7ce8c805ac0ef1a28bcac4633baa9a87e41a137221b7ba703c0d86b4aefb4ed4b2b1716850063a53de6e4483198e06557add96bd2ff3c1c99ce74946109f68ec56a0d304014e08a5ce1181353f200c9e61a4bdfc6f645440b674145bf96b83ce76e3eeb021b601ca2b9f7709d0361f7be6b2984bb4186b3f91e66e85c8aa876cc161e7ab3f9acd27aa748c719df6562881f475b40d75722ab705177c0a98a1d5d03873b47222685f9a19a426722e19c1e26cc51c640849f8adadadf133c42571415affaeddae97aa7199ff8e9c98d20f173692e6780ce8d04b8cf940f4f45496eb800d8921400256dc931110ebaceedc6914b45cba8d03b9ce670a891ec54bf3fcd01ff591fac036787c2ee6dd4e73ec142323899b31938ec4e0fa914fa2daeb1f7c72870a450d53677bfae06d5d63cb4aadcd0fa173ef451f40ed2c6cfbc9ec34610311ff7f1c7636079b6f395fbf8fbba47dd075ce872a7a54ac343f90b64bb49019f1754ab119fc225047437a06cf767de9dbab5c4ff79f332a672f675d0ccf76cd9cb62df179993b0102fc44314fcae9e142264b7a86f4a2ab61dd27be1f2d8453bd20964eabbfe351b5c98b2e74e00eea56ff3752e02f0a87a95d0b8acd44f916b6c6528e18613760182727b27b177a664f55fe9c00a9762b67b57bfe9c54ba06faaf5408d637c404a197dfd022f868ad2e61f5aacf09859e428d812936b4dff5bd4e40047a26b93f8ca9f4c4c5008f11c0b12515c54fb5a198d8e41b71c081c166b2189be209f08f69f3f1643d10e229cc55759ef1a7ecb9857432773c2ae43eb3b9ac18ce42bd8b13f833ef85246b2796fcb68059836b4e3296ba59fac2ca4b979c4424a591c6a28e6e0e5c36413261751b78880ca34e9ee1b114732d21ef0734073ea848141640c7f0b7901335072125b1473b3dd8dbcb8eaab574744c33343e2af14516fc2674d949c87223a980c046682725f678140918c335ec43dc01a447a89f1cba606581aba26ab5897a4a2e94ca820083aa95f8433399f64657b1a14828e16a6f94ceba44ceab359f386d9ab4390d52dec0237f50d170f8e2fc03a7cfe340350a488b3b901011997e9c66b0b2783db3dabdbbdb58f43d1e7ff9ce782bc975b528e1f9b72717f678e8f91a81ac2fed8c01e1c8953580fc58930c0651c35d42ef180bcb9ffc6cf66409aedc6282f7792a52e7d57ccce9016c1632bec72586ba60a30612adc0c3141e1a06b96cfb98bf1d1583a4470e68f5321ca67e58ade955b7c8e164a9571250ab3ced2689b0a248f51b059e5ff282ccce265d4c83dffab5a4b27c9a46ac14215fba1d86dc44406414e09fc5d7bcacf2fa83df1754444880f2a8603411aba7f02272f6e2773c83d6fbb7f38c1e1efdcc9c074d43d329ecaa45fb63d3e733c30d8796b0fdeb1e7845d21b0e70df0e8762dd8080265c3047eb1b3ca43054fb5d6721d773a727eb4b14be644970b8487cb25321f9185ad5a83c567d8dce6439cb8e0e3b85202b852c39c2fd015cc25bd4682d9bb69b27a5e6c960e629c965aba94f07be5e94c135954893d833ef1c240c2fc6690c112c132149d627e82ebac0adb7853100931f215bae97f9db4813ad515558581dd88e3969edc78f98df51c4edd512dd5e5432409a0e14270d6fef9175ff94c660d1a367f2507458df81322e5a2006d0610e4cea444c8dd1cb4766ba57ef9786c244fb42d665f85ab19215df0309c6f74250e6818627192fd5b58cd4bb1f2915dda62db7c45d726a07824d092748e61857493fda9f4c6afe76a0a0809a0820506b5b58df5f235ca9f003b7e3c8bfc59761372818d87013a578dcba32096cc8392a340ecb893eedc44e6296909d85ada6a15cc051a08f1d912d5100426cc1cf940cb247e837b8a663a6faac968ee9daa261f3e03b69505233b6e980ef767dbd6853ce3ee2d99daae838960e9c234958532b5f2aa4a66b8a81c411be38c45e88028d2aa3e3de42942dbc4b7a0930e67a20ae60285831f05f69eea54905370da742437d3884dc6683cc83f9a57ca0f1d32fcf81c26ad150a53225f42f6492be8a8cd6f50f826d4b8c5538b08c725ab3637e853acd702f50fdab7980e39521c6aeccfd385ecdfd422b986ed2781fc2554d1738d43a488ed6fedbb9d87ba25b2b14d1314bc817aced75b8a3b9bc51edec950f174150dccdb85b8cefeb3ca470b921b81e63b7c184ada5851b13d2577d10f84ac81ddc96a42ddb00e9ca9aac6e14fe8561670adf4aab13757fa77c8678480b559f304c2b8d4ababc48a1a686be2936bd3de6de660cd024625f7743eafaf9a29f103c569615a72f56ffaa9f9def9d9acc9fcf31d0ce8b5c03a46c0238d0f4eba2e1c3c2c8bbaa4166916c504197d046a4acd3810cc4892f0ae582fb4a9cdaaf0e33015f7e96377108df4801fe7fe89512f7461bbd9e73fcbd9d5cd18c5aadb356c16ac9e65a9fcd9d70c5600b676e7de5e0b80c29dc41796b18b58d8ad48b01777896f3c668d407199e763e53811dd4497113bd1e13e11c270e8aebc5b4ef299edc650ff3a1691d09975ddad40e8fa7eb8ad38d92f7365b6ff9d75e8be8c50af073438747d448813498efbcca26d8b4c42d32865ab3a34673d06b5beaca98f4343c90f990ce31f0a6cd21fbc6a56f3fe5f586498b48266dc0b47a4daa5c822c080861d48ba496221734bfaf3ea13f24dacbd5246aae4b461d518848f60c53c8969b6d2ab4a5a80e7d7026ca34c7ca8c5b0749fb4730e6e514fa02c8bb9da8f3809086fd4d26d791c784b088ade167b5809f784047bad0523218cf7f80d35dfb81c916c51440f6e9aa986cc0bca1c11cb1532a64f5c62080bacff32c3dd95054de0cb6a21c5a6f526f8b1322c0533d272ca5c8d4e93cc0d039c44355d5cab8e4a6dfa947c11c8fd6e4090d968859b2b30432f41147476ffdcbc2edf003854dfcabdd792fa0a694119ea815260676b5aad90c87d528ab9e766347654d6861fb0dbe20f50205c6c6dfa984d3022bd368c40cfe69853d0885d6205b56ae421ea353230acdd01c1856c3588fb7f09ce6e58a6fb9d7743854a86b59d4deaca05ff39fabe5c9bf4801836715596a6b73937d09a42c6a95d831035a3fb5ba766feee8be061c98075cf8d6d36ce05641e842f41b9f010e2fe923dfb6ac49abdc721b1b97725b8b396e8899ddeba6440e4113b9dd18cf5e968d4eb2f994cc18df34b9a735474ff3ea536650b5ce1783dc896485634ce10cffa9baf7121446807f32136bb859201dae1f8497576ccec8e3798fc9ab66657afbfb240497847203cc6b75abd61b462553d3fb6204b320fd8779c18ae803bb05eda3a56e728998ba125283fd6fb262c14b5a519a09d69b4bdb1756ac5235c301dbdc17e3d6d69fb5b3d27e8a7d33678e893e9fa0fc60c8cf48ab22f7f32b3301f008e3d610c37c2e68599f5a10d00eefe70ee7168657238460baf90a8a3fe72334879a8f23f4bdf260a3a02491ca4e0c5712b0e37d15617e7c7b709b407ec1caf94058a1031c6ced24e128cbbe4043f35c778185ca4cb14bd2a1b200eb1b4d0603b6ae03cfcf2d97886c3d4e4a21a48d9afc64ba94c8a28dbecff977970c04640c780a4a786e219c5898666a80435d60cef7ba20f8a54bae68622aea5920b7119afe350024e5cb00cde4cc4d84b0b7571f15ba1e8b17309dad94852114e35e5537cd636808af263829f17d6c2ce24f426fbfa8abb5ac6b576fff04eff06069ab5de4883d408f11cce3fee07ec75a3c0adb50214efbb78e37aec6c5d6290f6f5fcf182c6a9558935186f0d29fa8c21f23915a9bf06e5d583a85e103b9600431d067b0d95f5e687264bfecb47c963ca9d1bdbfb22f3c1c3b91dcf16273a4b84a2558c87461f2ee4afd469fe2ec93c66a01c2c0f6165f010bb51fbb24cef28207c322eb059580bd06ee10369ea60a354d1c001a431ed66803a3901dc9894ea8e533c20b0f890f39d4777672a4b497338323a44cde92733382ac0855ad94eafaf0394761f95b30510625e78504a09b5a37ac644b0aca38dc94d6d66264626907857cb845b6db94f0c5c80d3287a0dfb1c297e5e930c7ac4f2d1ffe3f2589e3c277dba0a490f2a3b328345c9187ea04243fec44b5d4c5a9e6e2295a944e0b25c09791c422143d07ed2102b8317ee6810615dc809957344dc12253317106d83968501b88d5b1028fc0d859fd4d8b935193c2fa75e64392c2cb45862e52fb2ce05340f7098931ceef6f0bd55ebb1ae50a4557be5223d0735bd199f7a30e38440eaf1b2f97e8d53b420d22ac1db36ad1fc691afc3a3efe8bf06227a2b98a93cb49f32a2280e1f7f3357f4624c430dda885f787e39a871aa5b91d87b0493b4379bd6a5c66d3b6ec51c18558e116dfceb67c9295aadcbd01651ae55b80cbaa070e026a8265ab3acac70a8a81f1a49514170e54eee88af4c361b8b31e1ef743bb14e7f5faf2db9cd0b12ef46c486d95e8e9f293d9edbc4a352619d855183079b45412ddc4d8b8010190c58066408ce52300e425e59e03c31ce3bbb2fdbfcbb97b770dead2496610e07f8d6ed99a42918c69472db53b95fb00b66163eed9a05c1be83af06111620c4e5a903ebe77bde94d464902bc7e8f26d92bf36939e926fea9b6ca60efa24b1fbddb55f163bb1df4b996815334807438157b3d463e78d26296fbdab341b18d3c6e31f01256c54947bae2b7492fb76701abe3b4d33932885319c15073ef43146e942ad47c99a1777a394d2f70aa47ec79004219d97021208f342d78e98c7f04007e7c6c3aae7a22ff0d8c802951da8672082b64c285cbce1b70a80d0ed567e15adce973972547f8deff9d0bbe3778d6fe3f9a365368b02c205540845f25955e9c63dd042ba51d2e78b38e655c0ad26265948879e7f50b278b911d8abbbc066500e269858ede20c543893721fba7a596cd1f460cbe653c9c72b7016f57cd59e1fd272e3ee07e4d8bc3e5d9489458f958eb76546239acf914f94ab785a26ac949b1a521ccb38a7e3ed2a02ddf36e453780d725a9c360843827c46607ecfd0ee0ad181f78483a6af6d8aa6891718ecda35013a91f789b2e465c3d0aac1ce75b215e39f5047363ddf247b48b54afe6deabad01bef8f8a113fbf00ab811a9ec4925be4bee49d7b03cedac891d814d949ed5b6242b9b40a549938f982b2aab157b84ea0f27782a2e8c9cf66f54b6e35ab50d33a4bf2380c6898b4688a83c0a414295cb5c921b5be3c69d724884e2a208a2cef1e042150fc4448bd1a6d9e48fdef9c603cee5f82131820f34d4512cd9e03ebcba4e1fb6dcb488bb5582f6e46cbd68cfceeca0a6520c5b10a92b04ff5a3d5472bf32ec75194640f0ad049fac4cb2fe582b65559a544c5affe3b0a0afb187073052077d5b445b889a4806db80783b52be8725dc8639f9f7b1334a1c8b4fc3c787c34b4da836e5370f783e527e1e0876763b7533399a7b5dbd3cc9e7ee22588e991bab13a5cd6109fe2fa679881a9d7fa82536b182bb51f55cec1eea7536cde284ae1282a32de88f6c884d5fbff3bfd93a751363f52a216f1e48aa8657c2783981787986e28a533be462c50e28b041f37bf7e6ce8a0674c646301f424a6b51226d3a34b6fbf908b0e1354efc77052b637b7536d6bfc573f3046d34096e2ade797f3aa6595b4919931868f7f57254bb0e729a8ab3ddf44ece3af14f06d6ab780c497fb4c239ebcf94c953da2591302b8595b6e8b1d3af0e7b78f53776c2a070c6675dbf4efcc9c9fc1b1950417c281a14583bd2911602403556b8748e0b1212ba82590b3b29e799004ba5336fc5bcc5d237968d3f5c17bd2cdb2453237da30b6897dd64d2544886652bcdd746e22391609b704ed1a6cd803b48099ce39b383eb92868f253e1d2ac80d65be11fffa21106ecfcdf4c9a3966c43f972620a58ff3c578687e87f7532a4e0edb03a06020e6c04ab679a53706a4691f2622ac252018ee3566c1a415810c74bd444c8ea0ba0035d8998ad9691b2aa0b6b39165430211608fc10fd181f5bdc0053d04e1eff4ff7dd799ae5c75ce9abcb4ca8a80c731f1f5628770f2703f23d07cd61ca9d1cf417c60704910d35d4b7673bf58750f16463081fef356f9aa7120891915279704170671c5316dcb49dee45de054daf00b0e54faede6e22d3c7b6abfba026074014097305b7fa894f5963478d056f665ccbb8ce51e2784016b49f1ed623c214e55509d69c84e02341681a970017ab6a22d49bf009fed162e015d86e9fb88f6c03be7f1ebbc0b12d8fe07cc47b5ae6819c0d759943787adde5f09c7620440a32cc26051bde094c7e7207d0a8b2d4c66c28f7913b875febf284d968de684f95ca3c8974b35ad92e4a5af2ceb4ee3fcefe6d0fbd59e0eff2544e9fce05f1ffafa70522107c9f5665c7d7c1ed21dec4d101aa9f4638c0ebb27a8b6767ff5a69733df73106d055d83a81a095500f8e53c31288b7bc47579cab3245cc3cee760436c3657d6729d759a45caa33dbcc2e817053af8851305ff8a3dfce25f5109f09af3d3264df844e07c25d45b56f017927ad1b9dab7c0d72d00f325b093c48edc30cb3811a2bc18f8363c81f32dc17b1ccba9bcb16dae2f2a6f7ada04caa4c43c9c67fd0daa6a517328ad69fa36a079aa400a6f3d81bf41dbf7d2cfd71f8677a2e3ca97197be198549471f29525356cb33c6abb720607351d05472e3d1f8499f8d2dd41ae6c440a40847532246959f640b125f1440d6bab247135c1d166829da587bde2adb7aca74de1aa411efa8fbd4afeb879a5a4a4404d03811b06939df1b485d68bfe26051e8bcac3ff31a8794386d0c43a788785adbfd83890de21453aa60f0c9023bd91691e98915b75e34d04e466b33add7734585171925660e92a3ad26dc07816a1ef3e92d072ca6463e4b849c88c803928c5a213dbad02646bfc5b084e975e0acd7c4373064ad2741deb1bf72187db94ea7ea0ba8b05169e26106cfd80257a51348029919b56cf06aa8cfb3d2016fc7e2e6f45a3fe3eb34af4405e3600b39101ec15eb49c02f7f3689abf90abafb6dd23a475ceae4e4a7814f6955bc6f721ea05b20e0f33b9497723bf69feee52d17c876c550a6baa5f95330a4d152cd516d45d75273f16871e3dec82520a1033095e55dcddd4ffedb5a8ea954feabf2b7951ce7c0ae243686e7fce3b8d20d187fabe6fe4d5a7abc9b58aff6571f30b0857552dc1471d5be1a97cb68287c4ad6ba6ce748978b4c69c30bdb8b6023d2ffcf39aa9c491be3c7aa91e67a834957f4cfae350e24de5713cc4e4092206beb37b6853f186bbbcdae37c4aea231cfa3a518a446e3556ac1ac6d95e73e7a22265d314eccc1c963d11e4cc39c8da67584097a93b9d4bd909cc2d7d4a5b96d68593f522081b1f754170aa6a4217f6b8330054fa6d278aaa5476dd831162d5b656b8d58a136ebc4d0557745cfa13ab5bf2aa8bd89dfb60b152d6fc950b46e74b42019cf9fd84d7e38c70bdade5b6977ce746fb5715c1c2fa76bd20e362459fca3ccddf8c960fb1f047acbdcc8e6c4719fb708899589beec31fcd2d25b35b609ea4d6d63e8fb8577859b4f9c69f6465522b89abe9f01647cd6a1e0eb04cdcaf50ad29974d586c36f9de7c91867b499290c3e978b0169a056c298849af7803a6227b3968cce829060c456d4449c5c1d367e97ca74e195908db30163cfc013a8eca35f3c61509b88df8dacdc2d5422916cfadda0cb5975b6a48390937e6c2b95932e097872b8d9c99e21fe83afb31c9d83d704b303f8f70c2b882871c36c8a49858499f8ae62ee1663828dca0fd36b7f0a36a89025ca9acde952e35b346e9b4a952e3697e8f31659f66d2eb71dbe3d2a4bb48ca30ed2d8324820ed10298c52e4a16ed082907a05c0b734347b7a6ab76fc63ac30624f07aba0c789a8e0ee76368e5cd45ac4153e0c4fc01cb68f399f802b476f2a4f4e3b5b3118322fe538fd06f21f994e8f953c19f21d407a50c84f0062db3c5b9f406c097a90311610341682286f0a127b6a42df9f9d8eaa8cb3810995a0bb6a96899483a7e07579d2f0d6f27667b47110d9acb781c17f09577f0d6cc0f31e142aee491d2b511767e650f2dab66447d68a8e3df158ef1fb3b35c1922e566cea0788a4ae21119d4b5ec994e1e9dcaeae0ba9b2a3d73b5c0fa87ab74ab49d9795f79c2a05cb06e9acfa63b5b85a248c99e9c9997eda41ddac72a3f3355cdffb82d22a37d9ee1e15bce399a89b9f7d8deb701daec5d6568264e18d0e6d89ed2b81aba128ffbcb331cfbc07532137192827b044d06ac50a6bc6beadb86d65544f64c59518a042289fc71f6d69fa5d1354dfeb1310692cc2432e833a1eb85d24f2c9a9a6424c8fa16e3842138d1c8256dd763457831743b11c0ef3c658ab308b6c290028d3ce2a55df20e523190ae0310f5809541d6e92385dd8bb01a74f194b5e68d2d1cf078c3ac83be1b550f1113e4486cff97a9a7b5786c818c58e54ff81b5b876921eaac9e084c189cec167826cba32366004b52d5696cdfa2612e651fb0f09d6cc03410803569c132d0f8fa061193258af81487bb555895b3a9130bf10c620caac5264678beb857f8a384cb41cdab0e53b71a2965b1841b88d61ccc7b65e38f50d359f65a49a1fb8017d7f371a206ff977e61ca6d8defcb7ab2cf5bcf15b2242c3c8c9594a4cb172d1cdbc024d3aef8f5e1bbde191963003f737fc4bf99b179281bd09958340b84125362966823ac386bfbe6b016dd8615719e24fcccfc58bff2c3187043eb481577e14f419b1eb06f82efb96d8eb58fb09449fab9ac6b2a2da1225b3b01cf6f4ce9948931e5fbe6287e38cabbfe0fd42e1edafdc01c91929843b42930a5ad6cdfad678fc1d8d330d9fff35885b98dbe1f9af49f0f15bfc9af9bf823f282b37368c5e9fb7cbf1deceab2ecbef433d6f401785fd6d527171670f08d3168ebb20d22f7604120e5c534a06e0bd2c959fbe538e7633f5a55a551529a0e0749ac5353a2a30ecec1ca560f27ebdf5dcc8648c25e5be0ebeb8fc2f37b5520ec42e66d9e3f7ce8eb3bd68d884716324e9fa9e2dbba8f2c1bb704ac278b88183bac9e7a3b0e72cf3cba9b3669ed475058d66777c8097369ecfe889c2cd800f4e15bd3096271fffe5d5f745a0af0fa5475d77a370121c262b70df6ca5ba48f1af620a0fa953d2254d78e465ffee04038f7fb1a092abd09eab871300b910a895e59336ca2927e6714ef4d9a79c356b3263c22bc542392d3321ad5421aabb4a56abc65b8de33bf3211cf05c6e456dc1e70478e28d9bffb183b10d1f57f0ba6317865f91611be4af13037f64b8d3ea81f01a79775f9a8fec2f099cf07d69bee33da86e45a0fafa227b216e06b847d3e708c8ac04926e0f2ba390ae609b123094c2eaaaf7329040fae2bd65fc10cdedbece9528f8a43f23968815f9c8d791ad0aa51e32ab0ecdece8af1097db7a6aab7b4fe76ddbd13c47ac5feb8d42a9132fc8a626642234d78e099e5b44eb9057e46676ffe116654f795aaa448ba5f25790164d246c15f719581826f1cd2a9b540145e53ccad3c3ce3b256c4d145744bc7c05ec6551d7789feecc282645fc1f8efd04872e0b22399d66a4fc1c23f1113ea087c66eb60225d8dc2d7b9cf2571e678001339da317a7bb5a8b017d6bc4284abb58ab6d5887ed5ef66a185baccd5432e77ca3d9958bc3c6cbd19cde77216f3f529e60f343fb6cc3658ef23c93074d32750a193e4d62a301a10eb5b080b8193d14f0221550586a82affe12c8fb31ff38a6c4a5dc60ae0c1b67da026e00b0a516c055016e504368692edeb55edf35d3936db5b28576a52784ce77059e6b4569fdcaa074ebb50e5f7ee1894f11be2626832fa5a47295ebdef426454b11dc563064be365a3226660bbac7fdee0d6273bbd6133f672d5a4664a0fbf08360939f9f26a422bcd5e0864dadd34f48884d3578b01060e10c3728f739f02541a214210923dccb64167aa80db94732b4032ff93835acc929e0fcef80aea12da7a6c5af2e0ea1fde99e641cd178c2f86cfe8fd1400384cf090f1f2530ed02e9fc89de30ff139d9eecdbaec950d38abd1a2a2cb3d17fd668f835e98c56a61d81f311ae9a0b1ad1b6a338c12982d813e2604d2cddbed0c4913176e3a8bc02e1fd550d567d8d0f7e65cf4bfe9ab0b9a3aa92179e92273c1fc1fa1f193f6b5e287b458a4868fc016a94cd2216b8b80806d41c3ed249c1190dafd90014a0fc3ea46c2a5c30e81db12beb3a9ad91a009fcbba8d073f8adc5b690b279a965dd87e6319c1a19f18be65a7c13d269d9a8c17cd09c9969735506d97ce069920348d8a4a981482e8842c27897fe3b51956d79b61b4c72163bb26e5a02f188eb3b1dab9c670e6ef039b380c88233f96f8208b806cc86829fd0d0c66ff8fa19fdde8d8c2cad6ca7526e5f73f5fb30353d0fdb53939b25030b3c010ce1d0483b979b154330e84715c5027f896cb626912178472bab64559ad1b33f375185cf677d3a99a2daabafa7c0e6fd21fe1811b96c6f2776e350ea88ce5e8c54a967c7fe3a03bbf72666f14710f489cfce4e5871938063c1ed9c0113f70a6df70d1a9e2501cd1d320c4accf5c901bde905b6b01fadee0b08b809c1df6ddab2df13ae70245b72f012874ad47eca773f0f81341f7de88bc4732a758a053b09acb128be86d4819aca3183b4bba88a6e009291a175c8732ab685295475b127597c35414dd11c8e1f8200f94149b57ac831bac9ceae5f2f7e865113cf608d5c487b8515d6f05ade9b7b3df45fd0d9732711a78b44dcb54a72717d18f91f31c396d713724d2550ab57e92f33898a1e79089d605c43d7a8f683ead19f91c3b57f1c71bc2805548041dc132df493384195f9bd16975ec7ff41fdb47a3e356d40da030d34dc5b264dfc4b122e41ee9d6d22220ac1fc9698df224e5f8b309c328b823c3cba3025085a6c307243881ea50fc800f036ffc4d1952f91375efc88b2f028b8e531fc0d724a2858b587ae07d90597b7f7406efbd98d6907d338d2c3b53bcaf627ad2d2bc73a740bba0c5a9f9d32d225bac5d5d2748676ccde10a8cff94f996cb73f7b2d6da3c72989b91cd24224f8d9da42be66645494a407e4e121f96896c7be8d993b2ca0c808196d9b205c799e64e676575dd2fbda8fd5a493655058982e86707beeb779b5024f4c7a292c460a610d2d114774d8d497607f9ee673a21e30752d2846e6af3dec4416e5b7f6787741178e2a811b6033eb72a988e794784691e727d4494cf87c33bd5e466676cfb22d72adc2d0d62cc3d8fb1d036976e8f8f1612482421cbd05278c8ff58a021155ed60b4471ba10cfa53ff99674442d112c0d31bd4e57890d0ce1b9b63bb91472b89f3cb06488090792d925e611262a2627940ade8a80758a97b2423473afbfcf71ea6eca5268c5fb9f15e4cb2d97ad491f6e2ae4c91347c3000ea3e92db464dc836870d88ed20541728f585ee43d10ca832b8dd2a13b84128882149318103fc17bfd056221889c809c2b5b72d45a7681031e0d8c173b366579d85e25c2632dfe3897edc61a4752591b8fd31a38cce7e5c720349827df82479463a2c32566979ca358a7e651f2177729cfc08b1ec2cd3abfdeea3d7758a9c728b30808358b13de87851f0d67c8e64c6a6bce91a79a24b806fe4218c4c3a3067cc557d5dc43b9641580614cf8cbd8ba7de7c06bed81d3cd86b134ed0d990ab146b09ac7a1a82e631652324fd08676070a4d049c3f76793355d9db94b90cf6e93477f8b1dddbee9bcddfc71db38a82becab0022f08f05856b10e6c47bc1f48aa8456179e6dd4afbec409e25f16dfd9c7ef82d810b4b6e3b8360e45d75afdc05c921c316f51671f1fd532ba195e9f2f1d258cdf6bc328e81d3da8a3e891a96ce05a081a3b4a8c66bbc4f86e7e53cb16a4e22e7f80ffb16efaf7a44b883e6dde39297f3e5cac4473f68d4d9fa75b884fdfbbb0a732a4c4e0bd1297802b64d272c1d8b84a80e876d9c4eab39765e0ee8a19576f6178a287cf3379fbc227e26fab9ab738d78d3c7842415203e2dc40f250f90dcd1c47c995d63c236298fcb24215370d09e4de05dd9e16370ad95f8a0e87af97bfbfcf31e20379185316530fe53917d94e1471e1676023381410f41a3a69dac8005142daf387d13dcad6e5acc871fa8859dffe7b626b166cbd1d978feb43aa08462e30d91e354a84dacfd5eedbd185cbaa418ede3951638077a3ee06927bc2c84aac3907c5c8d4322a1823a65e5321c52114aefc7874dc21af7fcf75647504a5415e7288235852a6e5b3ba7bacfce56e0d2575c3261bae533c0b9f9c28816b069341c93f89406e49c45d3d980bab25c945970e815da8812d73ea01448d5da1c1f5ed56dd2328e145761dbaa61014b10115e952c9053627d9c59333f05ed85cf98d984667c9fbd885be32d08d761a6dc6feccb61ad391347f88870f88d870dabe579919ca26c9348436b3b349d2ad8038c71538cc459ec3ea2a76552b6df00711dfd13cff63c3f37254895d92dd9fb6ac7c5fd9a84a9691cb3f339ef9fc914b7c4f4cb0968c95975a0b0104552c5925738bbe332aaf5c2675fa0cb0d141f4bb69ea9eb066627a1a290c6b49eca2012e18c76aef0a345fffcf6133c4c4b77556bcd7927dcc0df0b9f68ec65d535f09162c9ad251238308182e9a8ac65518c03058a71621871cbb9d89ca1a35ad820d15e26784b52f857f0ed80745127fb0dc2c9734849ba8f4955574c800727f0a1fbdecb478b2169ae1ae2cef0857e53c7b7cc247a76c6633ccddaaf9f982adce054b9098bd7f0cc3b74d16335a1741cdf3f8f5ca7f6b30183c5824fe03f0b6054508d0b600bc80855e3f6111885d9ec08954f338ce9af32dacabc5bc10306237a2b17131df0d9c89f417c1f093fbcf53ed774bcb1d4264002a480403514b16061af0dbe62aa505281c93270a705565794a624c11e6febf05d4476a225b22b8e54886c2c74a8bd0c0711f5073299b6cb36c13bd70408c6017a153aec7eb60b48c031eaff3bb3dcb889b537d0b0ecef9a9948091012e5b2b662c74ab47f57cbd899bcf6f451b737b56631349c5c3d97612b6f505396494aa45e1f715d3bf80db7902e08bc1aaa5b779d22a1dcc58e78269d43095369edf2481a73848c4f2e1c6d60140f1fc3a498e5cd1f310134453a0f3aadfc449931a786a8c92534ac6d9c03f514e47dc4c18fca6354d82df379ef00117b674afae2f0af61d0a524a1451339c4c5faaa3dfd245b24d9cb01b64cc157eac57266ec6163d08e9d2f541e35e0b59998b683c0439fb4f240be738f6922f02d100bde0077b8dacd0ed2317193726d7e949fca03f13791661598edb6097843d2949b662eabfea60b684bb365b710c70d15c66a8ea9d30c2c0c9ca51160d6e25f22d4d634f9026f89f888b614abf46743d81fcbb28bef2792f813f29eb1d06c64ec580256e7406342a7420cd017b46f84c28f68271556d63b1e48505316fb4373f66465dcfd2cd2b1776eba92ddc0469a88342582f7919e2ea04f74c409c1287fd706a37c450b9eb3dc767134e8a279613ca6d1c4c13ca2bca4755556aa58acc3b6441a170e951b216741d80eb1b2cd71eeefb2b302a77a22ff4511e06db55ba1666fc2ea4937d3379b6b7736b16d8a84e6a5640011895683040fcb91c77fc8175daedb6d5debe6500fbac14245d0e02971cdf5a6ee608b0aa03668b140db0e5c3a36c33d97616db34ebff8fb71f1390fbf3e1deccce6a09cf97f48d669d08aa41022cbeccb44737157d0004f624d3934f3afb1a14fd46072dd6e77e18f11a8e363faf8ae8eb5ee10d7cc1045d46d14ac126633123e4c757e8e3ab08198bb0f8d6f2f2105007ac8c960444900bac69bd88fc1502873936b93462fa53027c7c76af83593aa5b6aaac80716aaf924e67cfff3487a95373220b54045804a95dda0a0569017d652656368bb6b46aefebdd3922d14aad6ea37d681fd91a99720b22c66313c46299086314e6f562763ca11be5a096e9ec82a97afa0d2400a6e610c771f0ee8ed0b92150d6ed3a93662421d00ba53e5e0cbe1f59a86275469c6a54329e96ebbf0af4d36402969bc8dd48577ca73c83d6b174f76ba9274688788843fabf137761fed62b7e4822edd7c2a547d344d92b77b6c02f276d923092942b96b0499342225e45390f4cea3198aa349b268cb2f4c083f6ecc85be2771c631bc3b69327aef94ebcbc23384dda01d7b5b611c3c23a0957cb2c44926da9c35f002a1390938f163e3bf130613b97c2e30d56420e99774b95fd8de8ea7d417a3ae9947efc69187d86bcfc3075dc22d63ae0ea993fd0c4dd2a1f17388cbd6166c49e64e3cb08ac7eb61f5ef2ee6d0b90543bf3796d4869789c629d071555e18bd2df1b0801d0b7aeeb236b3ce70ae48d88a8a40b1bdf3c88f131d8ec3c603646fcf6c1e83073c309af087c884ea54ebdca151ff9845d3f2b12c74a867118c9a734ec03113017ef998849bae1e93fc2f97f774eda1c0b2777131e001557a3454ced323795ec32510bf53d34618770da1300c13d3729dc843643dd7f820602709298123f8b91c56215f01ac819f70d79fb4d0c69044b46c13239e6a3f242bd775085a2d71daa90d851541716f824355f2021fe0f32405fb19f078199c79fea316d4b0f76c0004cd5ed611c0a85bb308249c379ff431856feb9bc0957685fc8c96b5cf2c3610264fe4b54d904f2f4e8f37cc2826b6d3a87331dd7dd4a535f409aeed9fd135079bc360f85e53d28d62d2ca159f0bb71f504b2517371941cabf795fefee361d83ea8fba12660ce4b0a95dc2dc47b66275c992cbe1cc6613a7c61116ead5c5249e5d743b933cfde8be7e1a8b287f17157a7df6c670e30bb4a61ede9438ccfad87e9d76d167a4c79680aad0635aaec6ec230ec79dc9ce1193b3f58fe8dbc57ab0a16835265e3015dedf973388531f142170eb3ef1953c1db6e07cb5f7c63b882bc3367f91f20c65c4cb1d84823aeacf3488d7924f7fa68c6f75407fe1940a7255fd208b064a8e4a054cc66c129500fc28c87040689babf3682afd5ee9ea7b358a5bbe9fc3b596d3fd04fb14c0640492206448e62dae741d3f87bff180d0300db48a772e7736f0a6d7871faba3684d0b5f33f818b39b2745a770cffd315cf17b41a142e7bf13ac72a2184c356404b6dd2021a0750f0bb2822555e2438c7e0dc562e7a808ae12dd0c4294df3cf846351cce509198ef218ef7c71d3607b8c11fd6a8ec105c65fd36640bc22b7becbc473df12bc91e3fbfc96bd77800da9ecd31e29b29048646c0aa6b27d163ae6ba9bca3f005888118a47b501a552b7f889e4d42e61e9b54791379dee5db374dbacaf28aff33bef973d466a91ffbef3ce6091878366aab701caa4a9d835e9876fbe4705e32163c1c4517d8530c70638f00c44e42829a5cf642b0509fe9639d79dd3ceb7b82e048d144670f9543edb5651635b07160f3a13742f837f581b2a15ce3f880a0267f8009df30ce60c1d6c38cdb4e238a78d5f9f74f6b5390ade64fdd453d438fc6d0b3fb841cb015d7c1d8855263e59abcfe1cb148cffdea46132d8ae62dbc64763bc00b34d432621a69554dccb9d15a9cdfe79f2fc068c99de535453facef6bc5d31a0b6ddec3b57038dccbbbf67f33257a150f83711ed0745d96860555ac0ec2119b61eebf6e40481a306103997203ca93680f837812ac50922b4a827edc6efd4994285e9b739d4fe5cb26e5a83451a00b9cd41c802ed8b975bff7000dbf9eb3ca651c2bb638c833eb2c1d9b53f0f830590d987fab7789d136fc0d51ec0809b7557665e9d0bc5d244fc92a7130bb32f1ab83e38092df39ada0d459cefa5d80ff50491314ab45704015d75a684bef2597d8360bd507413d8c86bb5ef25fbee647bc1f6ebf4a4ed810764e50ff4df0f2e2ec70f424ae30c22e87adf42728667f6ce0b52d8bf1e3522504467525f60d2b82c02373165ae0845ceae6bf7520b640258aac43d55ef4e06f11df44e66c5116e02c47d7082f7c68b5352eb8e7c57cb236df0592d3ba06b84893652b77dc702a52f1318501c2c2b920ee6189a7819f4236da5624992f5918709da2b040856bb4b7a880c64f839575f990143fe770b874796fa532c1888e15de275a0f852878d0297c1cc175e00d8200be4182d1e969cde8943466ec8ad262bb6effcc84619f09a063fbed62194efa5985f5a5b2e9c75c7aca50a707d8552af6297ab0b32114cbb3e2d66a32d1e1ffb0c24b03a0013390bdf3030f1dcf51684f997e1ce457d1900fbd6b67d91d3058fa130df85045723f78f067cc51f8c573a58580e322a67a5650925f70403914d8274f4cdea3b1ba5bd160f56b6186acd3616dca8324fec0de791cc8d3816e90ff89707dd7fcc4aaac4418f0256c3b18ee3651f24732572a9581ca2c2fb28779cb305f84d83186074b2f650028d7ea934cb6132ae454334804562ddc944c777b5cab4a0e34d9177914e5d81acd57edacefe73d71dfcb63901b7223844a3682f3465613fb6c122a1c461fbb333f07f466cd18b10af2331dc9311213bd1c8bd432856adfda6fd1621c515234e548bcf7747a75518827d27852b812b58b0e9d59dd0dc3bdae0535fcb512bbabf416b13f272d865e0a5dc56eed96ffe6c66bbc7bb3bd00d35f39978050ac7128f75b3741883abd8f93ad60b635cd22abf4a666522f5db98257ac44a08f02de4c65da98e4e1d1a69bfc472c7359061e59b1327a53452538488117d0b8e42ef60488264d75c5c6e229ae1002e662382d70fcf52fcb335d855b9086bd67d6e563b188ae04611e88a5abadccd302450892d1a6cf66ceed5c4c8a22ed269ea1844dacb29b30c7ee2eef8ba82b495731b63ad69d79d6bf359b1fb05a586b0c82abfbb65d37a3d1419f4fe366668490e181fac93dc350f5f157e492fb1ea8c973186ddd422428db6780276a39c1fbff3c947b730f13f88f5ca6167f8e8971546b5f810f694149ccca4fdbe1bcdeb606ab6de7a7f9ff069eddd80eb93d6e061a7dec122bc4b94b61ae9d112bc33ed8ba3f6b8bd1aecae1341cfce73d98e8330e3ed8e921144e483d78f6f8308dbad6b1e08cbf5fb9ce750c5f9c89a0f9e14eec942021f82405bbe46a8f38e4987f3b91741df9f46e8a3d2928b915074f5847c99226db97d6003fdca20ec2797374c4f29cede0f73fed602f01a2d4d9f728fbd39303233c79f0f906579977075cff834161cfdc8e6603319e5e902848021ca04f8657960b62c603e571940086b4487d6e463520c452097abe9560096fc2c999f0943dffd3c1d915edacf85933d4ce5919ae178003191db210ce6348cbb9d83dc70c99ba969deeef74ce87894c41ba8c95c36768d40266e54ecb055a661ed310bf10bc03231910cc519aa13b406314af47323da2d26b246e8474076b0188fbb45a39157a0d1911176437b2bcbd10f2efc4837f403b0953f49487c072cca69974eeee2e85d9f87d2078235263188ad8645af4b0237f5a6bf57a4cf1dcda7eeee65e272e11a5568a1cb50605eb87b537a31f5fe1480ddb89d5ecdd8c93835eba0cf2369fb56788f7fc6fe28b08cf77c2dff9aa27d80fd6e22a0d1ab2c140c4024279a550fea27a215420bda68e16b1d544ee35451260e41b84c3f4969ddc48f12337f69f6f80854034ad0801db40ad64b63c95d14cf570c5e095c2f014f6aebb46db7a5122595b7295b28d2f56e2ed4ef8000cf349d883a1cf8bd284bf7ca084d4a180e32c3431de1a930e608d6b0643b396e591ef31448a5f14eacd323e28212a52623e8ded8afe1d9cb7ebb2c58aa5e565d9f1e2718bd393cf879243bc6b28afc9068a2253a746c61dbe905ec173600ddeafecc83e841335d50b2df5c2a179e9f4282c163a18f5117c810939ee191c5f182361e4f9189bc38512d9a7c0b5e6d7458359ca08cdb7aba048c8d6aa981a474c2557caaa9f60344e60bb558743be797b1734fed43761ab83a180d0f2a56c026257ea4587160ebc971d2f2b644704744f74dc0af11d38a68adbdc15f8c336839c5accff08cce0d7c822b3f40985ba845ade2d7a3b6a6157a113c7c3c1605c2c3ceac2c42e63f576709285460513a38d44a6c90de820d9d5f08821b1e4decff1c1a28913977e024238a42773d5220fb108845125807a5d36ac6be788d331207641e7caa027a44d2d823e9b2207acc3048bdb5ffb7a2875af41a040f485f9828074a2116ef3dd6cc17a6e40f68113f03f7870e9d977ac9cbb17fc7a5fd95e0663d96dc6885b708bf7fd54ba8268021f603b7f7f0a6e392c7d015a129452e44e56320967ac7982efcee8291479d097df6b7d66d3c4e6a4f8b8a3bcf99f98adc58a291821a863c9afdb930ab9ff4b7d32e386961a9a1cb63ab61bd3945b3c580cb0ab3ebf276d0fb262ea038d2e77bd7af23f45ab5fdd2a077945c43ad263292dbd595868d5c0f0fcbf487397054b9bb1cd9735811a691507b7a6c795f43a77dfbea0573656feafa351438147719e34d2f82e9afa016e33f80e6070d51e909c619dc1d49bac3496538afaf2e556a763e61e61fc0f1bf87a17ceed16b5d8a695ae2e403d939525e8022438fab22aabb765c1958f79725dd0cac1960cf0578590f6467ae7e55fbcfed71ec6ecfd92917024cf679daaa53b01dd0c156a039ab2ac41aa66ad8546278f8d7b4aa7c99980ec48560e6796ee02f12a8724d3438eddf74a8aa158daeb2896a0ec24f2989d806f8a54e920bd14ebb788a0c395a921d9d828b153e223f82ae26e0871beeeb29b7aeecaaace381377ed1819952fa0037834a0fbd69220010f1eecdbd0de547028797c4768eda040dd2de952d3cbae9e33ebfaac6b0774b80c1d6c795942c81a65474de6fca9a957b6a273f5916586d44857d1a3b480fa0ccd219f87d94f58017b3146a0943e84b66758db6cee2e3778e026ed3ab576832a1d9853915830f84f90ba73f7161cb95d9f1049b9d6104a4b80632f291ff0be4706167d9b9c88b42fa079443f52e759d6f73981ff3e6ed22a166ce7fb7d85b552e42f2c0eee8833d9ac6325307ff56eddfdc3bd49748a071d7dca38a7e9aaa9940d4311dba45d72ea2e66f9e8b9e1b237562987ef5be85055f5ca217d31050859a31344828dff3ce6a819647e28770e14056a4a52472372e2d474919a531f1785b710905169b822d8f9e5ccd2c979a4675b2a46d9585d8800607a4192780201a81ff080c7b50bacf0634121477a730ec1543a89f9c3715d80dc08ac6eb727e6efc3b7e12c8b442ade30949d0672d7f04f9fd29f6e5c02ae2d65bf880c82724b531902c97aee1f2040f7aec164a595e25feccab56403c7cfa61495360b87fc3e9baaf5f424e8087d3d7ed6b67a5321021756483565b4b905ffd7831de911db03608241f9105e24bbdbb6f5b9c5795ba00b8ce33031c44bea74109212d0cce531e84567a4b96a24c3facc0d5c4816548c8717fc98229f7310613180f025a34295b196b948077760a607ebecae21d80d9ff991c998edee1c5acb8bcd118a8cffb23dca8594322ca600057a06cb533dd0406531ea5b0f02b7875e5f870193c80b3c2fa444de5e8a85dc2e097bc4ec9b9ec904bc6d0a7afeef13b41d810f79e602ccbdd9b28470e0e2b634bf2cbcf2d2a129a176cd4b4424e55e1fdac3bf3afc1ae9950d51e56efaa80e27fffa004ec4f09fe25a2ae08401a348228f20eda4cfd76109f4961667e029694b858ded788da9b82cf42861153a6b9aee14b2295dd8500bc0d2425c5dded73bcd25720bc43f7871a3c325bcda39386fa7e20723ba167b484ff2728d9f46926bb6267c9e35e2ac77e903e659f93107e67bd438003e6057d140508592b9fa14b8ecf23fbb21606bc29f01ef6094cd2f0563fc19d9b3e783e2520c6a8987b0edb40789a2387510301bca1b6617f774b8798652e8ddda79874a0049603284b7e74c9ec9a987cf28115940c43420b9d16e38b89851e715e0da937f4ded83252e98a5902a63a5aeac371b4dbe68d8f9a54e15ec95871490c401ef7b3db056e5eefb01d6e3860db472be793d26e9a82c5ea0e82fb9f9d4ad97025c16970f0b45be8c9c0a9fde0e68d2ce7d84ecb52dd0e0b040a39f335217fc40bf2d5c9ff4b4f6ec7b925becbda50b580b37be09cd3ce1bb71dfc42f55b51edbf940904d008c7c95f21f1c193359adc27fedf95f360781c80c299b8b50e9756860fbbe56d987bdf926d7d63a40cf998d9ea792b427d9e26a61f9d8938cc6b3f777d70112d28ca8061e804dcf9e1e6d080d853d6c716ec4727d932efa0105c06d2b6b866426253f8a41e5eba6dc8852cff38b4ea8b4a94f9188a9b1df4349d89b88808b4767720ca61a368861959c79a33fb1a171daade90e1222f7b775548c197c5637e7d70901c09af4fcd873fbb27d4f8db7903bf9232dfc3350f6b54e9eef921dca106ebb5b01cbeb280b44a1364fff9023d061cdd5eb6bd303edd3451180471c96edfd1162cbcb883a0e6d1b7bbc510d44649fefdc4f604e8aa34c38d2b3e138fc9bee59c28b252c4e84814b1cd08a1c20a7b911d608e8c329e4419929600222c8623465f4b90c7190c69fdb7ebd0cb9bfef8b4979b2468bbf7ed188b1f1e3ebc682be5e04efcc83826e61953422a9c48671035054516bafaf11c281579b74ec0de1d485f653c8822e770fa5b29d13ce5c0b84303dafc11be2252a91c35f1a21c644d7aa952087a2ba9ec27b11a467a66998c823b087ad3dfe6872595cf938cdb9d65cdd199d3c2d4a5cb8a8fd50891b15d2c9f2b71f13a0d95f77b65f801921674c400a8ec6d97842a69a25ba52332c847fcb9d235da63d7bccf93380dc725ec37f3031fdc04364dfe38a467fe19a8437a00d576f64ca7eeac9539334d98302ef6e55b6f498d695980c5c08053af34691acd2d72e3339ee755333e710fe0a12663e8cc01b3a3f72b96b558a46b26aabcd965140f5f9151c4813af4c9665c5962447c5ea0b75b5aac77f116779fccf12f1e1a1b663f9055ac25c0a0ac1a91955d61a1b1d05d7ce394a5392f2ce0eebcccdc5f2a55f5176d1039bbbb4de0e83d46e4c5e3e75b34e988bd571d2f629cfcbe4ee1ff232a0d667a0ab04223ac7b82955e122057ec4c163bc18c1be4904609e76b032ec5154a5b79e5bc292a0db64314baddf7b69d8711d95964c69adfa5f5d0358b30c5253beda2e7581e550052cac15882858e918650856360a3de14f69fe6dfd5e477f9a176f99f55532f0d7b049d5dbf16a6c65eb0a842eb4d42a170cfba22c5a8fb2a01b7f4a1bc91d3c530e1db7284a599f5b28e029aa1bdb054ee3c8c5a20fac8ff4ad91da711ce061a451fa1f694671bd55a8717308e84d5c4c4116454348c13287d1e01e8baf3497e351c3a0759a58f32a334fd88a02390f17fc395a6c9020a7a6e5bd4ea62e47a15ee4a9bfc912d3d0d561115f4206486466b3da645c7da6e1b0e7eca6928b5ad95a5fdfdcd0739be7916dd787055ed8e9a17f2ea6d6ee140f13c5b9585f112d727cd6d21b9eb782dee830fec6820c3eed13ef7bfc64f8825a8f24fb3b383ac93b12b24a72d0f86ed9603915ad6805570be8d94a3b3fa53db41eac14eec26cf53fcbfbfd9a9d8d645e2bc3d6e1d188c3117fc650e803eae2f76f77a8efbd99f53711dfac8d239c4ea59c1b7b7f0ba8d40ba05f997d15e83709993f5240c3cecd134f9a28857b4e51a54b752fa2df723debd9df3efe5f70171a9b6751865ddd42482d57af60445f7b3f58dfe2d07543474dafe81e2effb07995af14425808f86e503998cfdb3fb5ea2b624e884486b82c3123379239746c7774b8a286e709937e176b8d3e94208694ce0dfd5d51844869576ceefe6a5ece660cd25469d72801f4012c8a693d6f54f9a0dfe0f412b7d7016e32a54b7e13b773ed2a2dd80750af307553fe3229e8222a5d308f037f3a53d98b011c55b91ff1e68b4b1a098ac750ec6532d9b002cbeeb46b911077afa7d79fdba3d686da754980527f00926bd56b90a28d66385d18e4084a9723821c249654b57d6e748caddfeb914ed4b644bc54dbca59b276299cfc89ea3e68db272daa1b269892cb0d54bdbaec3c09d2ff6bbb739660d7f67f4eb69e682cc93d6b751310b3544fe6610ecb17c4b3385e53913106ccd9c8e3588bf22a0b9163521a2e0bbd150411c491196efb214f606f11cd5500319270f979880201c3f718c4537f7a071c8a5d8f4736589507fdd06765338db4f75e6588c6c79860379dc19be3d42e2970c5f84031b3979bffcf5d6bdc47267e7b3cd41ee582ef9036491dfe7c03d7607be1dca17a483b1503c014a33da830030f9688e30d93874108322a1f7dbe0a2f1b1537644e1a37ae1538cf35f67500622b2a3be4368c64cde907db43c4a5b32c80731ff75e83705a5e6a3187b4e925c5840e4fb4fb30965271a5d84ab79faaee0db08a19c6552b6d47e1f59c668088588944a72127b3d2b5929091b70258dcc8a9138b098db184fe5fc3ef35126039e82ad98619905d9462f77fb0ed358c691e9cb089319c662bcd6a5644970d97223d1a294b8722cd4d0fff0d7892ab413e5a097677e011dd019ce7bf1b519fdfa0bd792ebe2416afe5a0ddb3833029ddf1fc17c79a953670b915891ddf1ac556d6ec6a43ca04c606101a5b34865abd371469497ce1059383bc36f70e1090c4ceda280828571d90f3610a7798f089cf409c80d5d69ea470f91d37cd5622e9629a7a31df941c6697b35b045354414106083e07de83095f3d27800fdc9dfaff12e444bcf42dc78a2e72d63c9602b1226f505d47f31289cddbe55a88d63f7c71b6dd9972981984ac4d433f3b36350d42cc7e0fe2fbcca20aecff74eed4a74be52cd9456b3d91029ec02b9e5cf745ac0eaaa20c757844ab51c202de3f894dfa016c510348d72c5c9122bc9722a61ce98d2bad05af91bf420bd15d99b590c7b2739eeb512df48a9d1dfd2e9b193c9c7dd2037f0718e969e15913c9d7ad78740b9a95f44c7328af2a07e87003cf4f4b778a4c2cddb90061c5344c93dae9e67b96499301845b03f1373a57ffb6fdeeacba981265f5036d4bcab671e9ae2ce655b39875b97977f17118f79968a71add9a5cb22722fe54081fe096ca2096295732ce78f2a31e62af0f84c225081ff55489e192c76168d59af2ae27b1dfe42e01cea49000c5c24965e572548006f7bc9191fab4dc7257539a874c5acf6bfaaef56eef55e83ea9fb44c507f1ab81d082ddc1fa8370aa3b5b1fe11f103d66049c2119d3b41fc6730bb50e40e4f1b2596d4ecf33f6ccf2ba4d59d10029476a0fabf06175239fb526b4a33f9dda33e065a6be089fa214e03c14168ad5ff12aef8164b838b37984b1279fa19d2f24b67b8495b11eb9444e4dc623b515955f3585cff93b98bf2fe0e19f2d22a91ca4db4ab77bf3eafcea0d6f9c0d5405e2086a4cfdaf5bd9843a963009370dd62cf7b73e52e18ec7dadcd388692714c5bcf44321d6bf080aa696fb5c80408d2df0b3190babab20d5413ea7b6cd445465b6513f4d520ae0045a5a3de0687be7193f50287c2cd328e278c3ef774baf798ca8075fa1543d29f12c08677dbcc0474a69bc590794ffeb77e230d698f81b7a335d96792bf7a508f4b1ef76d42e2a7820996922029815d6e889505fa049a62cbcb83f3c46f12e0ead6c928e371d22ff50b5f817b9a45c8d7f2742dc280ef2c32d00f55d04fdd0fbc88edf85da718fe990454d3111ed582873872e01125d709f53d3b205fbc1d511f0200c8985724feacfcf257f8b5ea8e908bb0c920872f2c02952e34f02fe3d0af6bc5a3d632d1801eea0acaefbac496c009232ce72cd1d5f7cd8a9bd126dce6568e58b80f2fb9658203a5b6b476f37607a09d39e7e06fd30443564e1224c462fe48f1969aa60213aefab03d3d9b1fce4ad499333f3a2099650dd5ce0d2abd7cf744e95ff94238637b54ea89b34ab409bce67252cb977cc3e8b2c1cd10e00cb448a3ba8b9a8a3a282170fc6241648f79e2da48c450d30e80b7c47dba3f5672a974d2b81211eb21b6ab60f7ccd2e788b2c080cfd07aff0afbbf5648b0b5e25e696e96a857cd32b37442bb4f29644dafb6207e4c55ef12a5498926161d882e9f972e67305d3162ff7f47985a8dca2bae0792f414c637837e414c3da1debbd9f823d2ec45d427c5bd22fb4c23941339bb5b39bf71b805058ae6220cb840e9968239d6f050dca8b0095a3c4c18e8dd2399687cc3916fab061bd7bbc59698333e87dff1def1362845ccdc6d5e35eb5ed59c43fb800ede88c9afd4eac5ec6e06bab259e2f8239f23ee052d951c96093e70d3e8a148ec79bcd3f828f5b8251662d6e0dccd1904343a01ef1c32fd0c8b2d83a7b8f34bdff48a608d62f132978b475deedbe520133349cfe826f68e09f39ff47e7f1c9dfd9e4b4796f5ce48fd1021d83b5cd7586e9a35d5a54c0cda731b19107411871dd44c5b955670220482bf016db90ff03d3e1e18b7dfe7dcaff6de47f57ae1b75fabff719e2d30d931aac75cc8c8f011dc05537dcd86f5a4fb88a15407da67b109aa42f4c9553595c0cdf0a1eb5291391f7f616f042d0e33922fffc8b42987c81931cedfd86c849bbb7aa5a87b69a490248f37446ccf3f778635d8d5c034d3590bb9e79e41ea4e1514556e3099a79c1d8cf4d3b398b00d883dcb38cf6ac3460eddddb7b8e472afa99320aecd4dbd0ffd77c01ce6710967bef394f08428663866a58af9ddbe295a89df0571330440902c48ca3904302ad0e089a06ed11723e83c5e320388ebcc6cced9ac35be669fed97af5518bcc9615b063344c1de8837766c3960d8c254ff3fc32e00d4ad1d4f7d75f8e050980ad6622a267529fc46b0c466956b0f1a8245e7acbcd718f8859583c90f604dbe3b02e2a204beaecae26dab91696ea38ef01be344aa091da98c5fc1baeb2cecbd99d20c5619afd1e816ec84d660ed4e18bc959599a002256b50b715440a52cb329e1ef49dc18dbeee0c644b757f41e5a88642f627ed4b2910135db5357cb7a2823065a47c2cdbff957e2293f44580fa2a897ef0fd0069ed0fdc423831684a4b049861eea5785b37437ea7c4c3f300b3727702788139788e05469ce9f1930ccfd05da89ab20ae06909be73a1135c5b9aba80a69157575ab6366337eafd4d1493c21bb8d4bf9701971727952e0c48f689995328dabffb855872e737be1230388f945e2eb78acf5fcc5eab29d07dd2673cb6e5f2cf35f829e962bcbc259b95d2c36d9a0064944cc3cf7471b50e23e587f7b9fec117e1624ddc9fe606d2ee09633b8985cff09d031b54e26b6cadb264eb51988cdc4e4623457abf746d28f234506d820347483cbc8e3b2b7f15d1012f661a68108e56771c5efa4a0d51a10a9bef4736c38985184a9f42b1a9f721f26c354f9f2591e2f1f90c56d7932c783dcc1ef7761487c27acaa88703a1e661a3dc57218d1b6416255dcab990019e267c2d9244f1a7ded0f90208b776a56a6d2bbf1e8f5c9b02657ec0694d7074ff88b32bc7d301c09bf6e0a3007a5cea1e535fe3002f2ef7547b7db817098732ad2b301a513cfb6bcd081c734b113bae88e066ff621b122141b9ac2bac2583236d50a154e6c26a79ad975404cae70b8dee8e18cc87aad5faede0e18765a640a2588a1f7270306521e9f78d6b832407f6f5fea9541c01d1bb6a27cb0d691476342982ae5fa2dd1093c5c62c2c8003aa1ea2ca5293f9af0e0fc8112a299425e355108712e745d5e6bea7a4451be7516d36b48126777f84c2ebb91a710ed2b83e618142f6967426aeb616bda1356a54bfe7243730d11d54cdc193d04a347bf87dd1c6f68f24ee86e6ff6e32f7ab464286255431faa023e2b57047d43e58cece6f553a1f400f56d0a6ef846294c7bac127e56b52d5b3e8b35ce2971d1ad74e31b79508cf5aa4c74e73b189b65dc3dfe19621649f2144a0f8879ab1af5b51663bbe6f281a5fcbb2b57ef1b5be36d1c809caab6978950857a851123ecaaa56d598b324f22660ddf764e93d2085a48d66e0967e584480baaff8227bef308a9a12cfb248e57ba21374287156a273694b5ade51bbace887d303715486bf495c024c7fbeac31c60639541e82d702322c3ec739d559ce203905061da648e13a327535a471b7bcf3152727f06f1a3180edf10b40c6110168754d45161b5f24ae24dd585731297d0876970e218022a032290dc5ff4e26a4c5cead0fe77802d46e163a037204286d8b5244cbd3f3d2bf3633428d2097306bfdc2cad7737bb82268c1c176a6380c863ea3c1d3d27cd283e16daaed8313b05a3977b44c98f8f74aaa7483c77af8b76c39cc29e39241a1fe71db5d70fb0fb2468512f43e1d00cf89390ba9d44451b1e6b901c37ac56b7ba25dca5efc32b9fdb2a5c70ca2c7575258d9d7b41b9373505cf3a45ffed40110ff0cfd62f74f631878fb5b7ac1b8e31875e0107850543e03ea0f9a2f5f555f13f8837bf95a6d5b913cec03eb3d75ee9ac3cdf9000e551a15f170170af7ae2219f48892de87f8cd742d1cd934c181118066298074095f6e0bc6ab02ea1b6c76a1391292d30dbb3645e636763812765be7b0197c73fb8c0c53ba78f36d1c597495066cd500aaf241db0422e66438cb1833cf16cb52abfafa7587511dea27aa3292b6f54ac1a8c1b168cb70a3df2810d947c2775983c86c133fc83fac9eb2582fd61bf0d669d48b31b99e2198b10b89f6080c277604e9110e7853eb13bbd0d680b20a6298300fb9bd2600e0541ec813a4f320640460e660db9a7d70fdac506ceec3db7975f4979446b1b4fb24219f96783e81492fcd67e25e787f4b3f0fb31235ea459432b1d7445ac69a73d9a41ad1b6cc65712924ffb78f18139b4e352ef4a90d554ae3984202a50aa14218ea01a3abd25f387ea5b3e7206e178419ad3cdcead7cbdfde8de8a7388d054ff3fb074adb184e970c11f8477f20ba43cc56d2899c44ea01871c5211e58e19e2e472306e33bc010510b2301db98fe77ead07ec1e48f6af20e5601111a3951226a360ce51dd8b585440d002ac4c8b4a612af9334046fe6d374b2f80368e24b7dc98e7cb9cf4b1ae29348ccfc1d1c25e158a312c922770c4010cdfa153c0e377b9373459b5b71fd0844c367f117a2c5b7a920370791a00062c932312f96537267c518bfeb4fcd61ab25b123ad79988ba17533b72ffdc9bf818b453eb1d60c367e4b805c601705f383428514a14e7b14ac4d6fb897c4438c09002c917dcc5fc76c8552980dba6efc4ba3ff5014c9daa955485c99b3788c437336d2d63bc3ae5479b1ddb1517daf3526780a5a79b29d57b2fd8118a769f744226d418e46da36ec5c315863d4408bde28faa8d5dc18703a1632a34c8022c750a04756a31e3f4d6ff7504cb0b495f7f2b22210595b7ca578356289b123183220a06402739af030e42703f301cf6e99c83655f02906eefc3f60f99440dedbdb1d5d01d6cfa221c232d572a721b8665218cbbe3502828925fd22db58fc959d955bd065ac3cd612c061baf617c7b07f861f04871975aaa0ec995553a9364800c4132ef2a85ff6324a2e107a50c4b751680aca6166780e7d74ca4bfea11d85302d3448baebc0554e4f236d8c4775207782d4bb74bb49229bf18bd3badaf4617085e89613f5847f43aad177ef929e6e385fa0c39fefcfc9527370fc94ed7abc6cc50f40eefd7fdab30a4a59601c1fecc1f96ea1380ca01258f6b56388e4ab28061db0170d141eccf74ddaadfa1dc7229bd9511008606544003d50e418070040cc837d54d1a6090605ca5a54979c48dc57b19d0bfc7544e4f82cce6db9218467e944ed1dd0607a9ef7cda1ae5b84bd52dce121b99058c19fbd40a662852b6987060536fb09738f3443ae5dc6e4e14119ed31664fc79a18cbaff065d49677c8024d0e7245cc0c2cf48b970e3b54ab03732787106528574adb3536bf072959f0bcda6b8db49193a005d3624cbf5f53e602c01dc5a3c22a84e3d34a5634d3f860ba8209cee6ad3249166c03835d493cc4d598a89b39b1705b49a47aeb1af6953d8949262f1e0da0a78296263c3ede0a02362c332515fb64c027a741e35fb226c8408d38cbf303cc6a0979a110dc59733684953693b2a57b5124817dc9491e2ac114aa600c3fa86f102096737515eb082d5e25ee1f88cee7c98ce40ea451d44432ef035ec9f824b47c688e7871d492a17980d019c748d631e6426be3810d2e9fe0bcf5e0f78d44a419895e23e3b37f0c779240b9ebe2ed12be126230df7d8b051fc43fa9f2b290f190d284311a148709d94d2c220a5af00daf31129578c490df09e9cd2dd9d91dba5be957930a203306d5044f76414042eeac88016db56cb8d73a1510837e4e14f2ff598fc76832c3a5a005bfdc1901b109280f58aac45e5871da8eb5c78293480b66979ffe81a1743c30fc04410c6ba477f1ede0b6eba0b4999afdda546e26d013813af2c389dcd38a4300dc6688f69098faf7d22da66c059834176b2cac4bc9f0bb21414c29bb8eb76c6982bca1d7cb4a3ce3d75665486d7c5a4bd0b26266509fae39257a618fae1061091f6d017d0a609398ad4712e11a192c108f8a4bbbac8a5fea0c233e5362ef259f0753e52d54106a828ce621de7714ce8078d30cb263f9a0b6cf0117f96e75c4b56847ace000e34b6403b6e5e49a42ec436bd86635c20d9871a56d0c5008f8f62c401f94ff219fe0113e302f28aa48f2ed96c030c0e4e39669a498a88f4863d6be381835b82f7fe4911cb931b5becc4f1fde292d38e5caa66711763c3b0baacc54114e30fd260c1e39cc10d9df61e487366ac50c1da051a821dcd9d9520b3621248f7c2b03e410afef63f7b4140a67bd51f0201e842b7751d5e683711d1fdba693fab46a78a0597e51625ae4952a5f4888083d60d0504cc6b8095ae34a0ba93554bbfdf1ade18ac4db72af10fad47e3975d954f297d0542fd58ba1fab96b39380f902d6ed2ba39bdc65baa8c3cfbb81866a8a300d9678ec2968a746e47f4340fb7f4a3188a71c9f382cb265670d6ff0f14a30f3e75a8ffd931ab6748322fea634a4ecc7e87a6a0a286cbb6b96232f8aa53ac3458fc97fbcd844b0869d0c0755309b1c150150f05f39fb3d5b0b76f65640779fb229b84cfc20ba0d85007c95c8c6dfdf4881af85372f79666e477d217a7e703a0262140bc59276f51a43f51e54f625725fe58831ce4aa2b3077021f6ca9377b301104ada88ba2c77e805c402e35620408a4dedf71d38575bc94bf4debe18e414c4a1363c22d5cb2712727f64413d24fa8de21adfe084b67553b33b1b2c9177681170d78d297f386211871767bc10ed1449c8d7f44ef71223d1e8d3acdf661a7cea73cbf3cf90c5b8d6c22df65858502cf439c03f1bab56f33b99312e639f31f4f21fe5c49635dac27acfcd1356725b0f1f6b3b757108e12e73c2f7a8de32b8f33f4313ee5d4814a639e958654d59b5c3a4e5a8f3d8358bb928a61156edcdd912e04a180104f608248f5c54d56b1b5ae93f139c6e3c3cc4be2bcaaf7fa115cca256710fc248d838b90e1d3017d3775d86a2ba92961851d44180af17415e6fa41b040a9dbee0ed472ea02b5d4e9fc6681b13a9f207416da0f7493723efcb9929cd89173fd408c7175e43439244c1a66cb01f44d7f45774bab0ab536d646326a58d033d67ab33e6bfc0405a517eca21894329d85fbcc02d0c9db327133a204e731d0c3b46d5dafb16fbba825bb6312065ff56e5874e91f4fd9f1f188d9ad72a027681f3afa5f87908b9284f58425226dbefa67f81ad3c719ee08d2576ee09502f757e3c021bc01bd19c8000160380413cf580a8c17e179f723cf53f371f812b2e27aa736bcd0cf1de69d7653029898acdada3ea5595f18e135db80e3f36b5aa65ad902fa4c32b6f49293195838fbcad659928849b6a67349cc34c090c9b5d6042b57ed396065d75cb0da517e588dbe24d13537bcf7bb827a00bb00c84c3c68392857e1b6942b6f7cd1447cc9dc4dbd95300a80dd35519ed0a76260baf4824261959b3163ab4c68638d85402204f39e9ae9982e1b50de2112f63b59796f1093d90002b264b7711346eecd3ae8d38918e696d64719db3b07d36234f6c2ccf67f3e70937ee7a3819d5eeefdc15b6db175ee68ec89b6dd39c0af239b1b22e356fc429d18b1407aa24de74c53c1c78ed3e35806c7f9fec4b6e10b6c069a234ef2a362a68bc01f968d7a20c10e652fc193a7ec3430ed5c7b9c3c7a78a497f472be1a3c56456daaa5ae9d4ec53226a8b89ae77698069ed42dfaab0dfeae70cb7fcfe15b14ec91413bfac73f5c55ee8623c14ac1449a75e010a9fb823201c761f080f070b62d130e431eb0d77fb20ad39736207157521377dc319d04d28203ef1ed34e281f32c90cdb1d2d480456c493c64530c5fb48f9efa9d5041df407828f9eb30cef31f5d5515c51855a0751a1e459acedff90bf3efc8cd51cfa81be3d86875f8e66ca868d9f9ea49bab1c148572728795140af646d0b0ecfe4155fb78f5e1400ea8e4af272cb918e714ec5993d482518e2a850589323aad5a9449a3042047d104313e60880d8863943d4cdd5867021c70d8632edf1eed137de31e7f4eb172bd40f477e0f9f74dec00e988cd448dfd8f94f812a47cb72eebe5945abb46ee0082cd93e07f6ef3ba973b13f8e4b391bef56b2ddf063c5fe80d87b9ca37406e4e1d6e407c594ed1e3e484fbb60c2b9f98b4248d6c897f4fd9844d9047a0e06fbb11a5aaaac71b6b7742e7e98d35b709e8ce88d11ba193279d089ccf01b671c721b73810521c07b71564865e5ffccba274636ea9e1286046b1f6d7290863030983d171271cd83f07538d8e5d98a711ce56886f6dca259679318b0e837fad11993ca337189efa8b75e3f7fd8a12e6c63c5fae0fb74e803b6d94db13278b467c3bb1e733f1fad99a223ff17bc0803b4f10e458b2e504d39b196063a43bdce7056ffa9ea09063d2b6a7e5dddd8661e21312caadcecb64d9defe0dc5b23df568b12c6b42988f996bd5772d3604c5a09a523617e36745715ee0dbd2eb65d1e356c7f79aeaa779cd60c811f4a9870b92b5e42c261d70d071917734fc0a575b4ba57381ccf56b3d2db42f1a200bd8785c4e66dcdd0a20e792b77263067c369a34dc4e5339a40b8bd61783dccea57f3d796a7b6541d6ddb241f357cf3bb46dda79077102884f267e5825293b397e28be81c038bc71592e59284f5cbb41f073dcc386a58fdf27755da78cd1fb8c9bfaf474f2e370f1891872e246fb57a5b3a63c82ce46fd36e1041247d76c83244091ca6710df1c1c0e92fa088cd04bd5dacdfb87a8795e3396ed49a46d1b51abce73c044d7bbe7bba9b1e0ce9af5f378c36cf44c36301bf0e213ddb1a15a46fe0dd4b56bb9351fe8be46087117da4277745431d3be883c2ff82e8113974ca56830c0a6bd4d26954b5e48e982f4150225b75c20ef1f65078ad839b9a8b738b86da1d6dd70481da92ad725daf43bb456e445cd82ced7adb0fc6e22d5416a586f67b68e30594928ab0a3b3fedf3811d2a3adb707d44234e58dad26ee87c5fbe615b5dfeb1a7a6a313fe30dcc3d3501fc9c9d281526e17a7e3e92dd6b1e4be9719948abb069e31038924d6e264e9c7320086beb578adb893b46a3899395446e3ffa4f4ece0bb21d3912d7954da1566c14deda3f7f81c8b7657e110c0f34d6976dc82e695466154b240f49b33a7845d2342a94b8d09b6426d6d16bb7518bc8b0ed53be08a2dce0b8d36d4e0cad938f6076b33851be157693bd28403cb581714f94ee31a357fcd0958d402210278599651a0e31232d658f2d47c2ab623cd0aeaeef34a07b9fc6b213a72c8253d182e1d3a727fd0f0d66e333473ba31eb1eba2a331ecb162cbc360cf3908d2ae9c7c99a359f721fe5a57fdf33df8a87f96acb9c0e2391a916689037276648dd24b57260189ee5d509d5b60be3a7e868a23166bed68e76def0b4d8cad321bceb4ceb41000b3fe73d3f517b7fb7ba12d20471b76bd533c933ac11de19318b3706f74da7d153d12d2fdcf470c37ca59e37bbc66e14262a624b38b6e0957d62792943e0703cbba0828eaa4193c598727dffdbfdbcc2dcdf08c679d8867b627d99637e11ae1af1a5a4c9f2fbd33cc70c88598875f4b252e6238409886caf752a069641b4b8100a277f28c5087f202258fa7f0d31b54d4716a38dab60536f62055e8cc22a2c3bb1e0ce3325e676d041e5a40af6c0a4331c792cdcc9fc5fba9995f4f1984f2502be110f6fc321517cfbd623c0086e0f19776c2e0efcd9dec9cc856fc27f661fd0c3d9e4a83fc0a2174c2aba65452d16798e30507bc6cfec6aad715debcdfdb7222afa38a63686f9595c4cbd067e8ecdbb7eb21b71968e4f172c557f5985a33f6e5b8a294cf26ea31979a98f6dea0042bded29d9a3841da08fff701d5d9e2b2edfed9d59b7016c102a8cbe6ebb81f52c41fe45e45785c67f881e078bfc98ef6a5aeab58b9f56c836848e67afbecc16a76490e7fc5c9679dd330db33d33223a3738bbab27bc2ca9e27c0f05ba4804ecbc37540ebb2a07b49e6d98c46f2b7115dd60785284a1ffff134eef9c09be9fa51b212caaf67f23e9f479eae2af4485ce9d5df68ec33e6c8fa10cf01a7a6c8f768aa71ccbb4491a0fabe9db6e446c702c2d3cbaa5d651a2c489b28e6d5a11135f635c017fdf4e95a4d4112a78ddced09e51da82e4f2b67dd1ca2840eb4c4db2562025a439b4a6293d2b5e4768dea87087f8183959aee2de4a82b1cea723e227a341c7a76f8e2d8d7b2b9ccf951c1c74543ab88a31b555abaf4e269618a8f6807bbaefdd7d3c2dd26b8a4b7c22f34be366d77a15b7fc27abf87dc00dffbac4759ee3bc306d113215decb2e347445ad53f7f01e34fa443306e49f48a0e122647f34a2ef81bee9adbb7011e6635342ec9faf0c70b14b3995dca546128e3116a29396bc384545cabe347ca03171436e825589e83a5b7d0391fdc4105e2d383e7331638d185b528143b3b0ddb9e86326e4507c27f5426b2204ae1819035f46f6535b5a447787c7390789a6e89fc41e2f96e3f4fd03113eef84e60c7ca276b9d58cf71a34e256e84f26f0105fbb006c268bd2d25c87bed1d4f6e93ea772428cd223e4fd4c2cd4e0a15127daed497e6ab8293c91410c4029ad48e4dae4bc4621db82f74425492485d41482cec65d5d24a36504c1cb262274a138a837200527cfca54048d06582bbb2b865c0cc6840b1a7d7e88fa371a1b7376cae60045fc15afce7919bb22752e81cec27b91899ca8a1ff52f90742af701d7a792bfb9f49e2d61f03afaee79d1d6d7a444211178d8c2a8e8a3e72763e9f0dcb7f63b9933e45827720896a7c26fbace278c2352c089e9f447df9949a38b69c1097497ff16940aede0835a8e92405db3b867d9676af11a403536364251aaf62e6c6bfda0e746bab989f930c75a765efddfb7bf2642eb4fafba21cb76108a987cdc8ae79709a9cc6444de164bda0195e2013c85735f54ea586826257020a8f2c1bd2bbbd07df2bb5043847ae7c922c40dae5d570090b77091437ef5a006b03646df06da09cfe6f9db4557b5967b1f8c481d01d69ddeef59274d58236b423d85f6c0ab5f8bf34e9a805a25454343c7cac3b8fb28f7f59fa023bfb5b058cddbaa94d579a9b98405a763c589577c175efe4b1a3f2fe145cdc02fd5ff9e817bf40ad0072e227802f8242763ff491269e414a8157de28ba47fbe1284d381de97907b211a94982a397efed4bbc1f108da377de07ced933bdda6ace491971ba15ca1301ea93fe3107ace4a746e0bf80a7a637fe20842975fda005d4de0eb4eef03b6c1bb503a75e37360ffeb9260dd3051656ffc1bfc196a7b6f6e7d5bd3601727ba374b185957af5c815c34a32123202feffcee9d70bff781c7e76562faf77d78217e99c7c375c1ceba849b8b3ec21f12660035806009cf1e3cf663bf2a85a9b7b6ccf8dbc15e79227a1d49a5a9e0e3ae3d70fb60363e2dc2eead1f00e2dc2d57a97edd8bb7ee85a5f3ae5d32f91eb2c36f682d1615f15c0cf6a35cc227f104f11c0128e51fc570e84334f509a9c3e1aa335009f453466e4fcb83f40bdd8efde3fee4fa271b8fe98867a3e4773839a7a12bbea44ecf83a7a127e627c601d803fc6b1b7136a3697b5a4512b5dc057ad0bf943094c54357c9749bad975910ab976b2daf5d034911962bd6591804fd41ba77cbc6b947893aaa41e4d643c8825a17c3fda06656dc0961a513245ab09b6003ca10d3817f21a5bec3bcb663bbbe61bfd49670d009fc6e2d127a114fabfe713f2eec4fbdd60b4a9eb22165b3a0a699d26b5beedadfce013e7ac74550b4bd9f5c87375dfa9a2731cc98f95aba1cde4671c9cac9a310bc1e9219ebc99862cd2bd8095d4d949d69452e7998e600dd4e9cea232fc392b8a8a7cdb0f10bf99432404731b4a17afb6db3398273b37060413453b04c29785db0bbb9c8a50cdb71a2d242d376dc1d36d94e5bb5422bd0ba75089a90d454171f82321554cca6e5a66aab47325c9a6b7e3b62d39393195def9b0fd6f5d21acbb6a4a05f92d1a2b1b1ee5462d908350f2c413cf85ac03cdfc4687f3fc74be0f16d2f0f20aa4ddf880af61827c679b11451e81daf8586dcd3f946080cea447c588419cd14d1306c69e3ee4fd6aecd761580d25daa31a50abc91e326a88bcfe33c6fd4273322ad8c0f1aa8a4599357608fd79c84e25cbab24516b8bd7359b3265224ed7cab768815569edc9fe17a28e83d777e64c3f465220ac41fad57d0db27f36c23b1f73eee2416562241462516297f08e4defb28cb66e1e161c6b5208bbd3c4759599efb5f0c4e5745f08829d18e51b5795b0a18aa7a347cf21481b68c56d690379611de4894d0857504485969e7babcda1e21d61a8adeb6376515357cda0a72228b2011452c9af58f00431791a853d80ae310e65f5ff6c112dfc5ee3c4e34781ba7379273d2d41f1d64a3b09fe371926e762c30b0d5755e847c63c74445a69ef855420875271df5140fc85568539a16eec18d566178db7f9d3d167a063ee9864af27f23bcac796dc9720194000d61440da442f362f7c9d8dbd7886bf10a16798811a4c23b255629d30ed7c094d7f711b62b9b84ca20b780f2a71edcb2b3f0825be43ccf123a57bb9cafbaf7589d97f60d7fb8f09a1f8ca61c1068d1a0e62e38dfca4d7e644b67d24f7cadb60d1b5a16808a804253328b85829ca67bc80be6bbb7a3af6fd3e0fd500d2073951a7ced588fd20dda4af80edad46968e6a0a2f804c6ef3fb2a7e69812f23325625681346e06a501bce67355ea599aeced0c4b1fad66dd1cec3280464605174872f654742df11a779786f592525171f04a3f006e43553ddb6db338f7d0ed7ff82ae13ed63e0144d6b74d9aa0da681ac8d6f72b506bc7f81a7651d075a0bfce92f060d54e243e768ea938ddadc09011b6aadf8b9f3390b8047b1e25f42c7581aea13fb27481637adf527f272797025b9fcf58d36d0a3f98f0192383b4e8acb8652193693dfd92526b29951145f54b86d76d586c112e50855689440d92389e71c4105e019e45945300f1856def4f66c2bffbb56cfff9d8c9314a78a7b610595383779eba9b81e0eba503a2f862d1f65d049e0979d685af0c6f6a64a1eecba89b2e3ac8d4cbafcc5954c278799c589d71b6ea775b60269855ff81c9cae3a7529a4a9692b61142dbea7001c500b8efa48cd8021aad53d034de4c1bab5cb77bd3ca491dcbd94c1b43fdd7167cb41f49381de8bc5787549fbbfcc14e8797fd10b0c1d15c3c68ae4d04977c7a83f9f87f019f3a3c632cba2e76f83caa93a0b36258ede4b2e4d80b8cd2ae83c7bd220d36740c895c92f67d0a0a8580008147ffad16806968490d5ca8d0560105f48b09d1e8b889835f3f2d80459cea40d3cfc496e1e537789ed087da85e9be37806a64ba61e032b44b5a464035c160f939557a558b3b3dd73544c92c837aebb65b2ec216d7ea573249ac8b84ad33ea910fa74409bca85622039a2d1445aae820ce5c6eed7b3fff5b869ee07af4611e1e23214eda24816b006b05decab6cdfa1134416471724700e8051cb1108314b4b83a0c335959245917567fe59bd081ea0945ed98a02277e252f80560feebf332549850616f84dac671f3c5aca46878cae1c0ba587ff4a97cfc670820d1477684205020387209992a6a6f1d93e18fee64bf63000aef53abe8ed7684eb2c7e5fca44f7ec11694d90974905c0cf0a18bfcb37d80c814c1a8ab2d8c0e170f94f66dd339f04d229050e4431ee32cc0c64663a229ad4515e531d8eb882c0d1b5dfd54f73bc6e119a37576dc551178a2120b34a2926500584277b4c890a88694543e25006b31d15aa313353a253b1a3aa2ef27953c0259301f8057b5af530825d5dcc5e8d886ab0e0bbf88be9a277a08f32884605f354465c966a0171d54b6ee420d5b13d4fdebcf59b971acde215acc87508208e9ff359175349db7854e5ac58b0ac9c0c0669f97e60ffe2a42887e6ce42d3e5c7bd13f5d995bff1f7f6e69a3685113129d7f4cd4c6d883d87cea3db09f8bbba92290659396f576c3006dca9ad186c7cb0025c5c37448cdd853f0f54084b459e51e145656b6c5f64e855c2ac8686ab44f18a648a9462d0cafa803e712d7ed8bb4033a0840510c321e8c9d06f4b09c6c3b5ef8027cc5b4168c4f2d143415d45bfe070f54c4d60d99e238d7ace204e0e1a9ac930c8f41183ac236e46bcec62a449ca14382e5d590e20a7ceee7de5989f567eb6fc978087ae1fde16c0ea3de639a00735c1af669b6e97b12f7bc130d1f8bce8decfd8d9c2d7ec7159708b3d45faa5e650405e3c1e45acc9e842125b0f8e44964f63920580e1913824845f7309e173ea18fe37fff438b34c58f33e1d1257b4c51ebc1678686f6a514083651378f7ea061714e5ec25abf8671e8522b79e8993fcba460a58d8acd6fdbba3eba544ef75e9641983acea02c8d117fa18338a18dca60a319cf89e21b0f8044b6160887e9e3916b04b9e915b287d75b981a11969ede44a50ca63064fa97d76ebb0c880388de8b0a218ed9c5c4abacb6a0dc661184e00e8f6e0debc04684c3eb9804cd572c7dd10a325cc59645a6abd211bfb8f22cdf3c7997580e1fe98ea6cd20c5e9edac0a73f071ed784948327168e94d5a43f386688bd94f6a63a1a23ae55646175d9b8c9bb7123e763c3ff4e34dc48afd0315ffb40870aa885eec129c241e2b700a5c046d7a7bdd10c1360570e4d01788e1c3617959604be8a30df108b4fd560b8e48ed0b993e0adaf6bd4426f05e6fddc255abcb4e099cb7c7c84332408309037272bc0db4d745dafe3e59fcf706ad57438baccd6bfc3a1bb92206ea870ce73101b5f32e157c9c3b1c192de50756a96344fee0a10d9f1f5a3efcf561f7eb270c7b41e78a54ab2706eb2a00aeff968d8307728ad28bd37a4c211a9bc656e68e1bea27ffc51a8027ff6117360ca716940a47e2ae09b76e90ab9b011527e0594a43efbaf731793f2a5058c6c2327cb92ac55dff07198ca5ed36b65114d76bfcc19d0526057ad3a20ed31512cbc5090e7aef1a51e4d11d1c581d041d93f13bb2869684b1a120d22aa42de1900cf9e4bd0dd8ea810d29eb59fd6511bdcd5cea23295de2c27f29c7c5fcda5410077f3230f7250df1048760017743ce4bb9e618c8da8e872cbdbf27d5f8a789043978f1a8b8313a026eea672891b728972e139f884248d891cdf4e4d8bbf2973f820093c19c505f7825568942d5e18a4e095e0f44dc77db6d224848015f0d2614da0e10ccf2ac2722d00bc218e0818fcaf040d5ab590d877363f7965e843601a49c05cc564e653063e9421f7a29d0793a6a2a1edd25719db151a25620c5edf9a93c0c8083fca0a867a8488eef4a70408ab276680ec1846ec0c59b0bfe7129c5d1107ca8e596f4e08f63bb78aeafe92e9203c0af2db2132380ca0cc395e82a563e35601c1820aea501dd14160f9d6ab1263b42029d51e292551f9a9649d4f855eb04b12d97fc5faae5d84c413b1315c956b8f3439463bc046391b6d9e4e5b34cae51aa622a1da0be1f035f042b46bd903fc6421e18d62f849457b2a5ae4056e78e5a17a7e0a69da0094dc78177a7161db9731ddc6c7f0add780e547d90227c31a3faeefb1887251dc72b6f41479334169d85fe0323674e0699c63440db2d0aab8c7a1fe4e60b565628c56a9bbc22e069464ba695592418eb0220a946ac5f7903aa6c2d6f4e09fc2c03cdcd44b60ed5feb44a53fd06614249f3bd62331e8168a96d4c8cb241283e73b8285227746c91634dfd2a3acda95fbab7d74534d192aa70923cce22819179e4430d8c11e1bd2712101264d07ef8f338697acc129c5d2b7b9e291868161ef3c052aedf7a467d0b9665d71ee10c448b27c33958e92307260d95f1bb0811edda300b502cbca23dd6522f0aaa96033013c46cbf924887c20afa9e5c706cab68c01785af1d6bd3cf290137f9c7445a215bb952837bb84b18823f39cf120119f3757322b2c9a272ac2da95beed31364fead8eb640cdeff4577e6fef225ba7dda354b9a8a0e2eeb11c2e2b7700fa5df88f46d732fc38363f12dce6fedb5c49675fb11a236c34bfab2f19cdb12f6c2cdb2b959da9db59a62af7ad81d83d6b2d59d3a43bc438e5749a636a6e9409ec515564d3c02046b1cf8ec0da56479c10f5ab2fe2ac8b8fa5a0c9a0a0cee02b56277ba96620c014641f059e2a13bed808f212ae8ffbca785de4f887cab950df198abcc2701320200a6e8b2e74439cb64246389ed9af874a8107596320808d13801a4dc1075880c18bd0baa63dd78dce064f333a0e9619f6b5e2bcfb9fb808937bcf37a25d7a70c942e813de360833a78529b62824a139d0bf8db212d74bd9a53798047f18511d6a07d89cba56be4081f25d8b3051ef094a85c5b98447b4b610b7b8fe36c336195a6f4f4a135f89ef9734f461161da46a299465053bec47c483809e9a7101bd110df322b9f2c71d0124f840d6de73b91d27158b7b9f68106ae6c9cc337e98a63ec4dedfad5bd4c49606a8ecc03cc7cd5d4f8e1a8d408f66da51fdc25e57f4d00030a27404496c25f56509391f153b2420290ee63498aa8a22cfdf43d96b83eb20be0169e0f8e9186ae992cdbf1c5d51665ce1c70654efb65dadeda3a9226d63f9a6f7c0e48ddb4ee1c086d08b71eb6777c7223771efc349f582ebd2e95bc8341032c8d3795ddb5a13d5a4649e20e783d70aa14f3510fb54a37db4b9945fe54eea99aeab53035ef09debe75dabdc1fab2ffacd0b0b40d3605ae6d9443e74c5c32a6f62aef7dd30d0840e03919c2db669a7587dd5c475048d806fab8d8e3ca85cd99023831fea23a478b6949f74b9003e26545b429447e850497d2b91b5ebf1a22800dfd4a20f85207c6ecdbaa8b5f2cf91ec682acfbe83b4782f299cbd6b6ca25d1ca6584c9a47d2a25b75e19ac4f1c5045037952c8e073ef611c9ab1c096267521ced3a20369866030c2299ed4b595e3256b9f167fc6a5a051a667b83469ac4a17efa7cb3c5fc7ce0cbe974351a512f214cd1123b8c8d208b7a9a5e9bf634b5d42bbb4b5bcfb334367734a0c505de24e810c8502bc540b6bc15057ad33697541038ce381ddb980d0d7cc38c5fd8d83fb052fe2d5a5549782e22bfc5d2ce5db2a23f60a3dd846c49fa2de58e44a8915cd2e43658b2a131e3066f0436e01b0e13b552c4c28845b737ae2ef996ca754bd2250fab53ac09490959094667aaac0cef1928ee39d1ea7ac62688488e30e4c0dbca0183bbbb8f4fcf0890888005227080088ce2b8238e3271dc10c74e1c2584008c10401182a51000008e31e000034748c150ab741575e69c33b7adcd6ed98d6d5dda4c7ec6d9b6e6bc61823738f006116f00f10614778a346bdb2a315384991fcc3431d3811b5bb831003772b02d4a2afc9286ef6d9b66b56d43d686086d0461c30b36a260236403c91a5fac8173a7559cbad6c2118fb45b61f46ff8268140061060a046186ae0d458a9a1421a65a461441a41654e50a68a325aca1895d129738306156834008d191a38686080e60c336ece18e38c307ace5d270d8b7385f9f96d530b8547d303b556515184653cb353db39c337366259129ce46db93a36d970a6d16a7e5b986b78eb5685b7ce88e8ad33a4b46a9c6953de8ce80c9d336ccef800131fb07d60c79dd64824a49c23707ad886495cd250a3d874723e573f6de96f6c03451193b362259dabd767a62a908ffe8d95747e63a594885d393e5a5fecd324c34540b1fab99aab77635b19426588719af19791a562b10cd7aa0c1b77a7768c9537649c218302648064ec38197e2b16a728aec628e3ee3ec617a7636419c3e57eed1893cc9899da9f2353732733dd9d5a0f8c711c0f6ca1f7f57ba046c3ff1ccc03462c0d268619771742529a1fb6c410e34ec5204b2662b8dc5d0c2260609bfa30a20803a4d5356918869122302c1859a66602030374302885e1f1479f2f82beb0f1e2055e40e0c60b2b5ea4bc38a10b30ba68a28bd7983cc680e14ee7d638e12d6719cf2860781f54cde945f96233ac8aa2f268559ccd54926b93a46463861823858b333e67988b1cbc7271c21671b8d3d7c5f6e2f1c72db8501bb2b68069a187162dd0820977df3545b3951cb59092c51cb7c462d5b366e1802cb2d017f8da56a4dbb7c06fc2ae2c54c0a20c2c108085ce3d1550e7d765ae8e4174563c576495f9006d5d8b6236e7b7612974cbd91559eeb5371bbb42862b6cdce9a4a18d5941c69d8aab6905162b729c862f92650e6b4903def35a1aee43eb9a7425860cc864051412a30131a13b25eb085621eb4835aec9ec4d8c0a559071bacb9895d9dbfee25e05e955b8bc8a59858dd30e98a15bd70e74e039a00507340750a0e20d2a80a0a2a4020915413660810dc436b0c1066a34f0c5a9b6b719dad8d776ada958fddacedfd6d98240e09ce13dc3cbc626dee054e9cc72b127472ccb381544a48a953a56ea1a86f667529db7595d9255cc6fc3616863f66fdd62395a9dc322f9a14e8ed5c09229483005115364a1e1e712cf40109cb7da2984a6c8515d3b6f1834af9b30ab305cc280617ec0a0719f32f10d9830eeee3788088c10eeeea393f3aa3a94b17cc26ba9bc48294870230a22a2c0210a176ea200e7c5138715ac20abce7781535f4b34531890030320c0c00f1860c280061700c10582b8b9c0d256cd0d823307ac1fbdb1009305a87ca9e34b07be10f185fca2f4e50914764001071462dc9dd239ea6f2c1fd4c9d1c9993edef4f16658ffca83a2070a0054c08d0a74a900970a2855008527e478620b7757d2e3d1f077dd3ae35b157aad4f0f7d6d03a70a761434da2a8e256b7e0d063b0a9a5bf6a268f47d4f6ccaf459019fa04eb0e1c49697c6a9b90ad1f2da7d9bba3a013ae184c272d147810650200b05964ce08d097071a79fbf368ab7caf6c5b0093c89036f11eff9b27d0377893f509730480001371280e2ee9e0703a7d62951ac4012f022c69d7ae1e24ebd8864e965280277d88d735d4641111013812d4e23e08245c0c69dfa8cb225cfa3e555cdd505011f20e0352147134cd059d66093024d9d13c5ba8966eb88080694147484e49a774a8b08f662c166c6b326646822081366dc2948c1f03f934c3031e4ee414c0059e2cb12a43badb9d804ef93f8dbd6f3c8310f81f356f16fddfa8596984e86f6460934ee7ea30419a78fc5ea9a2ba9c4114a0cb9fb9c59712a991b8b5a099b20a2079871fa80197e40cd1de801521e40c4694834b5ed52c6a94eceacb9babac0ba2c855dbc24ceb8bb2e497beb9804174eabebc3eff6b7e64a26a101125a20510412e06b7eae4144aa58a91d30850344079470c4164790471869409906906940167bab33a573c3332448a6582fae63feadba78e64419d63fd671e6324e91759c9aacb718596f19e31b23ea30020923948c2862400b18200603700c985cc2e0e285be2e339e0511cdafed9bab6bdefe2af9994622aeddafedd4c6e22b69e23d41f0f61789cb8f098a18a288174ab00022168073a7e2edaf1276cddcad391562d9d5b53d5f671c9bcd16c042fd1a0e117a102101226aee4eebbd5512145395082743c431c4154364c11869889c1b058040015c9cd64cd69b9eb9ce19aeb936096185105884000aa20541a811040f3741b08268b2658e2d4eb83b15bfd952b7f06c51010839dc29387362eeae40f06b7b6b2cd3ff424a746d2bd156aba892f0ef0d07111911cd9aab6b661f11e358f8bb6e20b4b83b102e208824808c254b58029e48c0923bcd58c4373f94e0876b45b1e6cc5caefb9622b6cdffe1f583fb40011fb20f3f084801028e40400b0139747c5dad8a965aab74b4ea0067fc005bdce701927a4873d303981eb638e589e1fdd23604b3bd3d80ab1e2638575ad0dc6819e35a70375a5caec588d320d6d4e1f360873b5df1c085ea2a239a2b1eaaf08027d36a072f4e759a64b6e975ea0e3eec2085ea6ceb0e77b413b77418d3d2818bd5c9992b1d5cb8aac3901cc0e410cbc1089d372c6ad8ff88c319c7218c2e956cd9e340e22085e28b83911b034c5c350017a75feed7b83ade180074a77ad792860fab01729cde5c3798717a831726f07e11ae1add90e5e60697d31b6eb26491c23b77ab88319965892cae8b479ac5a600617cb4796e7c0b500022a10d626cd8825b36e452b76a40e3eef8a6062fee4ebb37352cd5b0a3cb6d6bc07be32bbbfdbdfdf5b9fdf519000f03d8c192c60d16314ec1f04e8a85dee45c90f372938b21e703e7843b458264d26f7a6d9b75d73c71266faeaf33b3b57806a4a39c6c458c496d57389e1b1cb70ddceccd88d33aff5ff487328156527a2c65b29a5ad15c78f18f0d0b5bd38d0d8a0ea2b9e440392b3dd8757cb7bf15fccf5572ee2676017690d3094e5592199e1604a7aea1d54de89606e126cb91d5c83ae49a53bcef93f8fb26bc7f9cb0a3d67d128b18d32529cae3fdde16df0906ed5c020d636e68d0e2d585a36920225d409271a75beb18153126956e480fb0183c05a6e18a3770a7a028aec0526b7086c114e8c2914941175c98356f4cc19a37ee71ec0619a118ab8c22dc8866440d8837718526123455d1f444d3925326d0daf4a73edb301df78b79dfaad2b13227de6bf19d018d190c3003e84e53b5566fac522d4d2d0235245a1e342fb44adb6056825999d91037b31f6650fe058f82e7e2ee01e50b28d7fcca43389c5d4ababe62f5c7a7276321315633f0bc2d2bbfefb364fd48ad3dcf090f0f0f0f0fcf0e4f0b509e3869c20293253c3d413d3db9e763f5a7e763358661294c5de7949e9f7d3e9f4dc8bb253dab78c9b60a69bb2a28289151e2418927898da42f23c63906e6623363f0af1d53a04e8e4eba9274ea6068cad0d68d5bf4ae6062dcde549f71fd1b6c0bcc057e3023eef48c3bed5e5fe62b8bfbcc785605e8e8e5aaf2daf1eee5ae91cae4fa485ddc31ee90a4b8fbec906600e8f0c9587fb83a5aa39e5b45eac1e19fef56b3eb0dd70fae26dd511c47571c894e75742ee3f1c79c89f79cb25c6eeb327bdec6fd1545317624426b4ccbcbf7e564f7dbaff19eb77a1e6805d60ae18acea80246553a2314f2a8b18c672a959a342c42ea8a56a052868a013a2a99ca08306c01c30d06160c24b8538b5bd996642a576f337745d1deb6920aa33a3a67627debb3264d92244992f9b56dc3397136f5f717df0fcf5e445210652182b9d33dc353ac14f4a9bb06f5c85ec9e7757f664ac43896f32136f269f5e4f2be2c5d73750d8143d3a79c0199660a9c349cd2c59d4e199a32f4b45ca7d8089951c22ea12d65161af2d4e772c772846c3ad61a548785036b88c66c586f9335551a27e80eff8bbb2032e40c3150d0962e68c682729c5e0b940750184038779a311094fd35d88f097e20e0eed4fb8c3f9daffdc21f293f446868c58af15e89715f65e956b095cf1e4e7da4c4a42079c18dee852eee7e6ff83695b19fee05d90b3b20d3156be50a4833f631e3576ad3ca9549c3df3e5edc7dc89be4b343354d772ea029c9d105314ef3ac2e6471c733d7950baebb7221c7698f19efe1b2ea19a2ba46a1d558686bae64940c445940149653f07eed06227dc632ef031e149de705e6b9bb7b2a20bcafd52f2f6ce16b2109943aa074d141b9018a0dcabc5fd356b4bb1c9a1e08aa28a8a221a8a22aaa6d6dd2ae9d29307f13ce3f2cd0f6648d275a9ef03849c3dda9b67b3569f98113a8495663ba8a55fbe8d4741d9aa99aae43393d5fd2f041b25772827332e4b319ee9c34118385945c5d932cde35715ddb84481977ac6b1d0b5ddc9d051c0b3b5e6dc7c40c13269cce3d6ecd048a53dcd72573b82fe961c9ae3abc95a8e349c303054f0c1d0f91b9ef8761a93fc4b299ed76ba1d51890694cc3a2531281142a3a0319a814a8a4e65832a47e55485eb8f33275e7babf9fb264c82bb8a5fdbbaa9bea8f7d33ec4b39d797473e2a461b872f721dea5d4483920f5514af3be18ebbd71aa509cd2a569f6e7f3f1d165059ad95cf5dbf5dbf5bb65f6f169f5c8aab8c2d20ad3da92a04912c6a9aeb72e099724649255a743c6b1c4f06d773a5c9cea90dee94871ef7488743961ba1c5c97e3729d63a4c311d3e180ee6e3b9c1dba33b5ed706c9c7600f8220380cbe9cdc500307d6a3b3b15d078a7c217daa9003aed5498632543223b96772c6f0a433a14488042112848719fb945cb0ec9990e891315c9eb489aeec806ba23e41111ba231d4c2ac60c53e5aaf895e66e1d555ff87a2639e103dd094f9ca0e5841f13e6e06242903b8de9afb671ecd3f8b64b584157421825e09c8a3251b4b79cbf8948a8a32301898e84adb128eb4640d38d20c608b96e04973b85bdc6758493084f74221c2102ab0b214d178217aa6b6c6b5ba4c5bf4f1ec936be1aebd92c26eb4278d28550a433724767040c2338ba57aad5f45420d819f1a003e10d1012d0814000105245ccc846daeabf58538d038220f824165713046705673d2a72bb223d5d91251d2a8e9477ab8db1be8d49dda1b8b8871daac873b12fcc9f8b19f10e85424766dbb1eb0ee0203853a258cef287dd4d14375bc2b93159a5fb204df7c11ddd0765ba0fbee83e10c2833dba741f1c79a047e701149d07380fa63b18be2c1f8153e5e96a746b0d36f4329b5d1b932f70aa40512c85c0a9f240155da936aec2c8fab98a649db5fd7d44a8f05b4e7707e21d112688b82ed6b7bf34db119933fc0eb0b8b54e988f4fcbc7a7d5d39471151d4c92bff5beb6f685f77d7476769c3c69323bd23b57d74ce5744376ed863860c8100ddf56752dec8690d071f0020ebc38c5e1bc2fdad9aae340f4ba6b90ee364033e7656d30816e8321f75d6e60e3e1871aa83a0dc2acbcd3a0a60114a7bad30057c70cbeb8df0cc0599701910e83395554bcc300e73e3118a2bac3600377a523d7c4d5b1b3314167c385eaa4fd5a86776793eb6c6c3a214c4cd04808492957c547ea84541172ea8294f1239feb0ddfa6cfda6a4b8370718abb203577aa6b176487ceff1992774080907e6d072407cb2ecd764088b8fb92773fc26cb2fb0196e4b4753f767cce79baa23b3dd19d966e7f43f16d77f2f0ebd8d574b94fe2ae0674aa67b83a763536ee749764537d72ee9ac796ce4718779ad2b7dbf9d022d6cec7d068abb877e7c308d59dff9c424a2e20efbc8bed1ce72a55e7466c1a343749c9fe571a2eee4ef57d12a7a9cd9966c75d47e7cc8bf720e332421a9ab73e89f708b3c7cb2ede75fcf9ca9ffeb0588678fc66d9f669fc3d16abf1588ef6b3ec5e6cf5b735be371c8a18cb788cf40dd7f487ef8fece6f4ca478f9fd087b825567d6b3bb4b7ef6bb2dac6f9b1887bcf6c2e90c205311774ee340cab28d69825f281529278c37a48bc81f0c0a932c643cac6b4171e00b8a30c055f06de409d1489770e788797265dcb7a8796b0fedc71c70e0d1f575b40460b6e68410b76e0614714766871a74c60eea96c5d8b3cafce128916e59e4a0d6f9d4c2068658bb5366f76ecbcec1842c3fae343b3b3cf07d6d3a42bac49d7ede3e322f1fef463b15ab38004a775847127f1ae635647072b18c10a12b082165400870abeb87f16492bbb3693589365f8bacc89178f239691b89fb50d7a1f629907ae26dd7692b64993a3c53dcdc69ae6c6bdaeb26b53d0460a10900217d0e0816609343014e881022750c0030a9a9cc08d13007102181d7ad071051de063b11afcda06a70ec13ab5aee4c44ce0c55f93aeb039c3f3876ad1d66ac399d33355edccd1eafec00c8af533d8a42b6c57fd359a7dd5ff4c350b55f96d389594daf663e26a4efa622911c15a2ca016d18c01690563b58e8ce6516bea5ad34074a4308707e6f0e1668e21a7b4323673b7ea308146a0959c997f958bcd9fd9998bcd31c49d9a400d13a4fe671324ed0653e0ffec03e7ea7ff689f5c5ffd947daedf342443ffb82687adcf5dbf7b50f14cf93bdcdf3c2ad3f5297a08b335d49e1dacdca95596b255872f78b4b90734980c62f09c49000e7b4c248b0845d67ee70a7e10ddf336474b45b91c2dfb86fdd5c3a7c8c915eb86fe9fc2e0cd335b346d9926beb5a947b2afaad982b4bbfbd5fa465565f1b86e1c53facfc5624ff5f63f16755df249d7b2a4248b3acb4b1f89a527f68a5f72db3eb435748b435ae1a6911eb9aae432ea48dfb56f85929f75474f9a337ee5b5afffd5d8bb42dd240bad68880b4ae64ee27ac3ff4afd15631e8a5734f257c91b41986612bfdb68534ca965ebae9a59336ee5b3afc50e3aa914bd7ccd2190be5d7766673d5649864d5ccd27508cf2e911c9e1375a64b786c4a94a8543c3611b860098f12863d1efa59625b62c39b892d8e13c441872fb181a0ce34f6c5816797e82f6ebd36c648e1ad2211c9b41d43a22f69b0b7f4bcf73ec44030d6cb2e6ee1d9751905c1c10487e7ee53dbe6f470a19d325c685949ba5a7125b324965912c3f6bf3ec446fa5f68ffebc558fd8d5b4d325cb433166b52de19934c6c9e77935e248e5ced7f0dfd4b972299cbd7100b29a8be0804f4abfbe411d0ed5be49887de16fead2eb179de285b62c30837527ebf518673c3033784b48187fb9120169498282d516a838b36a8701f65b85186fb3e563f56636dacd0c610365c40e7e4a12cf0a846194e4561496cbcd81072d067a6ca9e9759f1b5ed0f38abd7b80f47e2477cfa096e82a3bcf30dbc031fe21cb8069ec11145989058a1080acd0a260049d9c1080bf716111280343a00410a418660c0811842b6ccc4707065102344d5dd6102017811c2e38133eea71a1f6e23244806199c6a7cd8d4788045c97df8f09b0a46a0c38829466009a302049c84f0a4f4e2c4123920c0dd3b98e283ba70f26477e9b6f840c87705102407477428841bcee85021e2ee1e248747ad0c24349f776ad4a146163ebd21a6a7c6153552d31b65b834ee4843ccf4be34b4a431e43ebd347e4cafcc189f9efeca0c31bd2bd32b93c2f4fe6768a041854f0f0d2deed343c3353d343a9dfba6339c3823c8ddd7f880e8fe7de087195cdc8c9cae8c0c941154868d4f8f0c33c8e8e2d3238305f731c8f8183eb8fb37c647864c8d4c0ad31380771ea0a2f3c090bb83de896166e69d18e4d789e11ec6189f5e184b6118f1e96d8d4530cc4c0f8c0d06912fcc70af7d117e91824fcf8b30ee0501a6e705149f9e173fba18333dfd7531049e759133260e9fde982fd31bd3c3451e5c88991e1759dca7c70511f76f0b269cc9bb2d7ab6b0999e166068b1657a5a2cb94f4f8b6e7a5990719f5e1643b86771c5a7f7659182fbf4b098c37d7a61a687450ed3d358144d4f7fdd1566dcfd0a27a6778514bde3dd1536d3b3e29d154c5821bafbf4ac80e23e3d9b1f3167dc5d06efc4e4e04e77497a61fde9aa08eaaa68d255b1735a0269082948fc182c1698ca9e1592377c0c09c0301dcc9624454c1f1318a30a10540f76ecf061c5ddfd08990503d0dd97f819339a2002068759b3e43e7a10e3200cd9ce38989c152c88a086053479e1c89ee0a3073163c08c72c4d0c46394c48806f0401105416442101cdfa20a249914077305e5a30731a7336086ba281d80a17ac0d0448134e92c51538712310c01630207606e36f0d183180c8cb47217efc064a081101b554e8b0bd3a5d0234d9a3469d2f450f3810e7a0633d5a4b003d485bb7b06518c60d691c53b294e100447861510c122c5a55823176bc1c709233823071fe2ee351f2869e107849e2a0320a2421173f87028523c088ebbfff8e2ee3e4e3fd8c0c416595c8a325e4218ef518cf00206c4810f1a341b1b4b1bfe989f6663f949d2ee2fe74f24edcff27fb58d7176afc92248144bf71a2c68d56baeb0424c151de0400d15351ba8d140cd14616ac0d448f16363f1a59393811edc7d7e377c279315eb838c8e872234254b22d72aa641f0968a619d99a39f5270ea24734e4fe3d8a61d9eb96be9e17dc39d1d9e99ca21e1bcd7b152cfe07aaac91267daa440f7c417ee350a78323784b3ce7487c7a6442447fb855f7f5a48dfdab845bb1f43c6ada2df58898ab6eefb53cb5262cd328f96f5adb2dc5c4d7ab1ecc5d594401eee21d167a18dfb7b7b854fd6db0b873557176e15610cfb10036ddcda398d65156f1d8a756ad79c49712e0e27d5641dab3843a23c8e1fa9f7bf44b102799e1e654be18b6205fa8d5b5a142bd04d7a5a1d893ebb80f6bf767914fe6861e1878f63ab3187bfb5c5ad9b845b3808c35a6319d61f512c85425d87eed1c62d4db5586d63aee28ab226ad4af46ad24c96df546f537cdb8bfbd632001376b1ce595a88ab46742c27d5c9992038ab68672f2117d1cc78926319ced6d10b060d82355d87406b3d0fcf2e386776e63639be585f958bcd94ac0cefadb389f5acb5a9ced458869f67406efcc7e7a1ad2ea21069df5cfeacde76895639315756c802c23021076441b1a5a16bceaf6d2d6a5b6f21110d22daa9d0e2e4f2279731aac36bb3a59ef425c37b4eadda25ce0909c1c22f0a3fbc56a61f290ccbd78f51f8e1aee42385e17e8d8bb62e83c2bfe1f0b2707e19ea163f2888482385f58368d7ea22222e62b8d3abab11bdd896b1237f7153ad38687a7fad3847bc37fe9914e7c7b29f96aba1b59538f7c24133e319c872de27b1d7a46d9e5887ffe1fc58becf25386376264972e4088925c36cad86601389055bb190a64cd6cf506b824a789ab4b0844789289624a84b6cabb379ad9ee1f0a664f5a5f5a439f16210d4a5ae795fdac56205f56c867f2608c63041109c35cc395333d533dada8bac462ecc39e700e67cd1922396e10b82e09c146f7bcb2d68b634e14e7170527af679d6bcdb72c45db69aba49868b26102f70d7b3a35d1edd70d15e6ddc02e28ad2b546140433d1c4b36bbb0480e03af74d2d9d7b2ab8957b2a6148b4c2ad1f2c40c190e8a980f5bb18c47393dff4b689a3434dbb56666193ea03e4e1ee072881bbdfc7820ff0808d5baf932ed1c6ad8d5b07e88105343f298a152888926513c6a22eabeb75f9365bd4f21aefb400a16500eed3034120522808496875cb99e7ed2f14f190e7e94c9764cfd35f58bfd61456b2de348f4ab571589b44ec3e6a7eece0eebe6b3ee80670830e5ed06ba7bb0e52a6d7e9a082bb97dee5f025872eee3475fbd66c624b12687ee34f410e3921ceb6d7becda3a6899a28dce91d3508e1f000f7717689e87e3df14eb90f2b3a028cee351970f71f5e8301775577c313dd0d42743764e96ef02ecb09ba2c62a6e77932bb5f7f7ff1587e4f0bcb2b8ab6e9fbf6175a6c0bef93f7497d7319b35a14abb5e10df73b7538020e51741f1c70f7f7ce06215abf6debb7e9dccf5e96f113262ad57e51c452c6c7be6f7afbbe0d87a5de58d49ffef2d73e9e99aafa633596438b953c2f831e1c06e18fb68a40babaf4bfd04d0a8068ab10104c7f5385bdcecd6c2ecc8575df7f858faa09d9b875dbe5d10bb7c2fa13d69fdc26479618ab3749e873f9af5976f7dc17ea2fbcaf1f88b6b32a03ad3081a30c27bbf5c3b9f19d3a676d614dd92331fc9c3da74c3a69ee561a0eb5155cc2a40427bde1dbf4b7d96d6a9dcb90ee8cf517e9fbb5a0497544b1f2dcb75407d4e0b43969b264529954dfd74c74a098e4d01f86a22d63473c60f2e17db46b3ffda5ae3831bd1c6ed2952bb30a1a574870f7b732871533ee7394e166eab3b2c567102daf33385cdab2b4c3520d4bb8b654978cb84f23a0a52a6f4c6f94e164b8af8a16779fa36c898a0df849038ec352c760576043b09712e18b22beb7bfe1b74bfc2196d5befd5a671a73546a3bca3582a352a2a3523347b9ba20ee4b40dc4f3b58f7930cfee9b7dbe57ed2e19483bb9f7030c00deede32e34e4f594e0568ca23fcc652bb9f6c20f289f58a90c8fd548306aa92dfe65c7fc2da4d7a3156c3bf49b848ff0b89f58370eb9170ac1b16676289abd464bb8eda1afd585bafc52ac4226b86b15e08b7443cf462ac8a62297493089007700252b30405030b9e77c252f302a2d6f43c14d149677a7572866ab48e432cd06bed6dca1d538ec8b829e31915a94e2c145a43680a212266f8d78e422ea115dc1dc751423f66c633d56712c5ca40656d2a9ba1584b9e593935ac203982be08b2c2dd6b9b765f9c78ef99d2a258654a6c7054508d193ad3213450110ac886ce1f323a8efa19627ffe71b930270d27eac788ea33b95a63eab9c42a08d40a577de6f45647a81594f95a7920258ed47c218592b285a65c5276a4b837f333ee4e0047bdb075a6a79cbbdbf829e70f6f59332c7ca137dab885fbf012d5cca25d9c6fb2a39aac34c21896abaea6fa393157960b3ef35ad6a7ab60a5fc2e5c35caaf93e3793010d476e754f95d3f9be567cfcb997acf34ae1ad1a953dfd6e5f8cd12e7e897a00fac27f5b9bc371cd6180ea6b248ff6415bf49aa0919feeffd3ff48504c9d415e5a406f0fbb6b5ed8a13fe2d717229ab9135d3f026733837cab559f577e2f00d96cb579715844daae7f8e3d7eaaee1fe6d4b1ac06b419d540e985acd1b1635598df46f5dc93a35ceaeb5adcb9da349a3ccca9af4da1813085ad1a0954973b14953537f0c9ce4a5551b4ed587d34f5c9c9c68382d71b234d0ae4b12a723a82dac8ff43ae16ac0dc4eb6d9ece8feb87bce51364aa4a6cd9515e6f0649786a81568d07686331536c9b0a864051b541230ee933809124912804a82739f5e2a75dd5d3b4ac78c1fe94c653f9b35c5746655636992c5d0429a3203aecdb0dab8f2955e86274fac90920c76a969062426302c2e18866ab35a356a622de928a1d42b424a9a5fdb3993e65a4e664c62abd0092ba806634d215d4955926a322b434e42b29fb4846c556981c9cb098c86189678646300a6b64e9a2c51ad865ef9772e46a43f03edab6bae573f0eaab9ba3e1c96dff73f8b02ee8c49dc8360f8647da4a75517eb28488c8936c4ada755176e25cd49c117c36b99405c357a3124daa0f63c9d13dfd25eb43a9c220dbf94e9cc3065026747f78b402b3317cb89169718d3e66a8e4fab24b65527bc1575821917db139cb0b709097542502e659fff46ab24ea841fee3e2d8832814cf9624d7f1632a1cbd3649e09491f7efd21dcca896229b4712bdcb825e2725e9b71fe4699c0b0fe906502c3f73c2b21596acb04be18daefe25d271388ab464093ce9c98da999892ff54a6ade3b58f04094a842144c82135c3d2071d3f6a940836ee16f7b3e6752ab7fbdb70dd7fcb108ef821041bc8999ae147a96d5a08278460c4a7e7ee3547057123481667dcdd08058c3cc0dd537094911a8c8c46c4e9c24ca5a60bf39b29fd5e844802cd64b2a28590c2a75597ce5f332b080a0433311b14081d0a849c6b9f9e5c6c5a559133a8225fdc29c84469942d81a36c0955c407f72261112aa82224a0e27077140c9542a18ce84c55a80e0daa0b81bb8fb2256cb7e71bb806a88e85ea3ef089f7f40e50371db8a102758304ea4608f7b96b94d04765841149a0f121d4dd47700fc2fa400db78974ee9f15b9170de94cc3701586ffb974858f220287fb4cfc176e8537e9c558bd491bb750441e4584084c142b101427600aa43a4e78764ea5bbcef0553fdaedc255a3ba6b3867582787ae3097300135088ae45cc224cce130a969ee9b7466f8b1580de25a73df94a3694d65b21a4dfa7ddfa724478adec5b30fcae170d64fab2459bfe66500440609c86007779f220249a0d199a2302803850104dc8b1149a099475a2c976b353491584aacd60c2a4a3a1a7a5151aca0fbc0600495ea62ebc45136456cba39315044126826130a565042cea08468941099abf0cbeecf504148b85fdb5f78ebf77d01440a1490268e50a5e64ccd0f4814203c282039ee3ec4514044b84101d9c07d4e5c6855ffb3999a5b7f385313f5c38c3bea07ed4712ea0714770ff5a303d40f20a8931eeed34b69b27e469d18d00213950a5583aa41d5a06a503ee6f0e17ed2d9dd9f9c6870ff6bc5d1c2c2bb0ab7ec67f82c8ab6e973497efaed52e706e89d1d4a78678710ded9e10306418048f1e1007094bbdca7176a946f90668d3465f8cc7846bbf69be1cbf5c5343d695870b16e3c696109c39c7be4e1475e28dae3037b6cb187179fde979a5e6a0f9bfb74a9f6f0f6c8f139f5a473ff6b8f217a98f114901e47b87ba70728abb47fe9a1729a691e41b81f0141effb5a47442f2496d2c79ab2423a82bdbecf733f2de1713fed28a14fe6b62af58231ee5ef6e042a26d7f40f7d30aa7249a74af29a393830380930a2f80e2dbfd94020aee356290b89f8eb89fa6fbe9849309fa7fb66fbdbdcdd2dc4f25903082763f891082fbc9c8d61dd0ee2710f2db22ef7e427537503e78e28113224d3a6061089325f713074b96dc4f1bf02c7dfe21fd2ff458ec4bb3c47c9376c6a418ab32eb7ed2a0468bfb294878cae084c12d33ccfd64e37e3a05719f7d763f0191e226e1d925fa713a797e5de627cbd7abe57eaa39f9c0b34b74f234357be8a145b16cdd5a837dc6465fb45723be1fbad79019f17d99c54a78e081071e78e4f1821a17e0e1ae935387940f4ff79183238cfb5fdc9a1b5f9bb1ecfb5660831ba9f0ecb32bbfed5b627d24cf7b62f33cfd36bbed6833f925795e0aa8c03ca440a7a0c8a797938212d0e0e1d34b4d2f35bd32e6dd9fd557cdac58f9c2a2c633d67f16d24b9824e9b7d52f9a1d7daec6a894f456db247568040000008000831000202820148a860322a15838a8af0f1480015bac4aa86c4e97e9699043c820030c0130000060000000180c03f9d41d03bf39d5b8947abbf59309da1a7c063a512f5629bb6b69031858c1fc7c6af0efd9b52e0d40f8da5e68387ce810cb2100fc737d7d580b1c69d8c1a7d9cfa86f5f955d55e1b71e350aa6ba421bd8218529e70a83b4b5ac8d856f9308bc99bfe8255d8f72b52af7927a9c6bc56ec7743e15ceecaa309d67952648ab98ab690fdda34beed1c7aa53fdf070b98009aeaeffc4fa7a4b0c43d88847d2cc4a852443b1de3ff8c9bedb217a053873ee050e3a2db439049262547953259a004d97a2f807b8e0bb26fd760159e89c50e0c045e143170886cb06978e41c01bcad7f1c3365eeafc2cb3ab6ecd24f8512020eec858274eca30f882ccf7c246244657b64610e3be520f4ae02b5aa86c2654bdf42c978cc129f65abe377c20aec2a7e2a187236880282b7cd6186c06996446fdee424e7af41f1ddc65cd734f25577c6ad0c6aa9b06ebe65378e6733fa992f0e9bced2bded13b30d86349a44bf18a146440af1245451dce7ec03f0b3eb6d58f9aff28d9dfaf0e7e89493ecfc4e024b95bbaecf5f71d8d9d1e9919f9fb9a298d6b607e18d5240add4827cab58106408e514eb04170d9adcba8b59a95df5132f200dd363c385422bd7711561957c7846448940116a5c5ed50015e6e40b827fa6b862d7482ed6b4395f5678d13eb1f55a2ed44fa86e12930fd9d6e68774954f1d1458806be5fffbadf313ff41d8dd5e4fd453018b09bae70550e744078ff9155f116883630fb1f717fcf5cd0193992484b1222a272e12dd5665cd6acd96868f33d2001dc85aae5de111680a1acae8d0ceee7d1300e9f2f72f912c2d6881f6f92f5eab0b07163847320f1c7c3d474278ca72c47de832a71fa073f620b64882cd6f618fdde8f6ba39dd6e25d5642d6728427983e4603fd0579149a88dc6f0b1c6b22787013edad43191978956c7cdc2c72265ffdf21473cabc93058368c39d12b5c3b0ee602cc0b438e3753fb2de048c8b2766a3be7010a2317bebbe159fa7a287a4cfb44b493dca6856ca61d0fc7b7be43a6593619e5cc1ccd2cb4d55ac54f0d8f07eebda45b994d24ca5557be74291ecd877ad7430eb14ae70df6e0f1580857a502e72d370d323016a217571a866bc2e49e8050de35b05bb8e96b3a996b76d821094f7625d41a9e773ca605742fff1b5778ff8a435351f1b998d88ebc49605d8b03fbddc43e631c69b1007806754959e18747a75e5dd94c25e52acd881801cb32ea2708e8c5f7d1859452cff56a6a65b69d1d38a4a181ef675a2812b8c9040b35bf6b721be14b4c75d0b9e83dfe14e3ff6b37c25fe5d3daefbf7aa178fcb79b5a07d373a20a3f38c421f0eeebf353dbcaf944ad680db24fe8cc0ca0bfc1b6c570329d73800fabd21fda0febb6ac9d424bdce0112e544cf8a8d2130a71983324d40f1f66a5213adec2d8481c49a021feb7bf313cff3899a3bb9f8ab39bae7306238edd648fe06d412611694704035d82a522cfeff3e3236d9c9e213d14a648fc7fd1eb2d2abe1380900f2b8196f81f721ff2557ceafbb39c4cc13a5d348b3b27c3bf959d6d79ac27602cec1cab4290cf0ceeb3a2bb43be11db5ead088a4c6eeb5bf24517ecbfaac5395f0c91014135d9c80a3f50e8a834fd4df6d1d139898aab3e437555212b9c51e3cd1a3a940721d3b8d1988f2e4154ed0f52cb1436f7298a8c6863919dc475a9e02224a47cbf609e5f323da6a12ec5044348977ced079999509e5b6759133ada2acc8520d2484a35a2b547ecb0f4a54ce3f46b36695d800537b8787fc820ee601631d4333bce920646135cd58031d12e966e13f30f3213d1eb3a0d09abfce598e6925632ae52665065db641e6a1fbb88e0af3e8dba065546d0fa47b4150b0bf82e106aaefcc83a53188f33193035e519204b047eb05bf4a23fea70afe89a00d91d202c2fa99b596e47df60fadb762c49c68f09e8c8c9fe3fb19a781a9a674f0f321ca033e5dc3950fba81f55bc7c2db28a3ba156433e026e47fe4b5c0ac6f40d070ae047b850471c6a403d3acd9bf58d90f89ac35e6c4a423577d46b7355cb4698720600592983a2311b4c2448f1cf52199d6695ab5ba527b88df6c29af1291226c1f81b5b748d84ab82006445114c38097159f7c86a2bf8a1202aa0699c3a5e2668e71daa72ca9b7874a674e15703dffd87e0fc05561d872e003ac8f36d737c019a5568f8fd9187c643df7537e741d5fd7d5cdc8ee3ad1226c0bb1ed557b85f48f751848f59d8b8b757e35d1d335358e2981ac576deb8e9e4f5c84a9d9452c8ec92fd03e4cdf7828dad98a74c6361c48f0e84002449f76a4bb4cae311bf93acbcc1e5b670aac90d76f138c771773aefe0a15d00a31eb296fc997639618e653fe111891f3dd38cc5142992745aab473350e0f2b9ff5cb8afb78669a81e4db07e51ea436ebdd265ca39426ceba7cf5a237cfd7f9c1bb01e5e5db815a01d13686be0367d57c80b6342ca5bc22142e94fa203fd043a16affb0f78e833ab3ad6f0246f2281ce6af1f7591b0965c011a20403535986e9ba2e4196e7ecbbc173289081a1f41db63357c7cc7bf6638dd55010947014fec96c24047a860ca2b979e0deaa127d3bd137c7c0800f688200a231cc3bf1d08764db2e9c5b9bef438846daeb18fbbc3287d7dda8255dc8f07440953ee03a24033e2020eba0b2b646d63b0a927c1a93763600f698a731b5125c00adbcefd7dffb00d514b415748e5667ea5f10a7fbb669a7e27e75006719ca565d2b77d745828fa522de304d5adb00a49e13c4aec1099e176dbc66b8ca81c5b82cb6f17b446ff4627b74fba47c9ccaed1c103af7ff0981f7a60245cec9906b76125c6167c1d521dc6dc7c5e4fd955d37c18385028bb539a97283c6c79d24d00613e4390f36640d9a7c0fb84d0962a52c718c7487688d58d6efa0eea07ee3e909835ddb9aa8bd35595830ff4dd63d31df7d44b9b8d9e858756d151c43ecc3e5877bf8d1beb8e2cd5706b94cd1ea570df9009a1e1b4edbb7fc2787650365b294fe368393fc960b82137ffc44beb2e438d37874f3f48aae6d7b20c59e0d3bcb03fb4975e8f82ed1641ec0e37782736852084457e33c9ebc5fb4459c827027a490781e767dc8d52952ca0869ff270e8720fd4d6befb590631098061ba98436c2ee278a0ac65d6959efc33214ce9270ecb665072a8824405a4c900416bea41dbec583e8a27cd7be878266310d24aa8b63ad76d63fcdc5e8ea113fd653cfe08a88279d5011c1b6eebb9a464596a5ba7d628dda432cbc06f490b09735d4016765e5650606911713089dc0c5e3c73b44367f2679edcf585cdb0b0345176189ed2be46f34771c2688ff3efb2e89ab3a4ea50f34c3f0c76228c987a4ef1613b304b94d0e5ca2b348650c41e0521632524242edd09f2dd1a71863eb42f2c8d625468683bd392db146933d4c92c0dda275b3703450d9bf3ad2db0156bc63de543317b785bf6411a526ff5fd87fa8b1e06edb752e725a1081ba15a44486b2faa69ad2e6c0d8174e991702352420f0fa1e41882f7843d30e5d70c634f392400e5d6390dcecefaca1ed80078207e8aa9a473eb1b13dd4690aeae41592d9cc40696dfcddf3a5956786690294b8e4d8f3ce1a2768561494250f9c5d1b393ec1702528b404d7d2b921564b78e53f8057bab0f46846b703d47f4078e6d588b76bbd652bb5bb1b5c11bc1efb166e871124bfc2901fd555ae609fa37910985618aa687c2ef8742b85e0f55340e623e913209a6decf025c0db75f041a023954605a859554d0415719a79a053e4cf7b2a8e7cf67e1d606b4d8440137d68ccb15bb32340deae613ee1b02e2447a7c112074070bdd29721a2509af62ece75ef9eae0c63ac0b254ad9d6f5bb9690c82d96453db4e5981a89d554223df884ae3e4a209fb73a4141e0d22b25a272083c628a73b3983e4b0b06b51e3f0b7bfa280cabb01ac6208c96d88ad6709815c8476af697b608d2db64bf606945be5880242876c6c703c717b4ccb5bf7c0fba307de00bad7241085410f310a63245be20c61a8ddb3480e19bd6c089c6a27581da3cd751f7ab0f034bcfd3ad96e926982720af69ea8805d4f1839fa4c7acbd4517b1b54efca7b96e2e73108d1da7cf62cbb98759bc4daa2148e3ebff13d3d2a0defa30fcbbdd753babc652f2075017da3634e8cd88c5fdcdf7a59bed92401b90435a14c3c2e1a80dbb790b816481d315709d5d95ae257c7e0c89db508ca43ac400fa30fa112af8d1cf345900d7ebd399b4e8d17ff9795891b78407a9b9e2f31a0c6c3b938c529c3653ecb6804023e03136d87a34cdce92499bff555e840a08fc5e18f3a4193a663643aa82a55c21e9c89b83186ef4fe5778025d54de47baf7b7ee0b0b779fbf6d8cc1998db039917ba9e3a05757234d9e0e3d91cc433373af24a140e84475602280f15c36c42cb6ff3571328abe0d00e057090ebd3586a1d6fb62682c727785da53325f4648dfb0b88360933c279201a172520d9066b6e561b13145d4d1ee240c2434484390fb7a9539baf0f9d02ad8280244c68b881c298910e0b40c6eb2445f46395b5bc9dc2b931fe6d970b19a50a679d0e70ea4ab6ef057659929ff98f7764a095164ca13df4586debd1fd749bf45d908f90494cb24637a448e6dc35de1c7e9f8073e4ad08cf1f05f8263da665a54e8c4948fa20bed111efdf6903dc75dfe409f75806eb5b94e90934fc9988766bf3d4cf3c0283a30b1770210e62f60ec429c400b8543da1f783ab35e5db2b02a63923eb54d094af2a2fdcb365d0a79d98dee2b9b6121499803a21ba158efa3d0cdce14a06e460e49d27d0714b85b52453218cb16c3a928d9de9496f141614c12df495d53500b98e4096d307bfa3d168a9c432a17bbd523b38ceb6b6acab875a95cddb4ea9feddfde1025941d9a29248437aa9609c1c30c568d0453d472b4a72e271cd2350239c34ef2ca7f43df6be1f4beff7739cd28ec9fceb3c68cd6ffd53b48762161d38b660b19fc5a62eb2a7968954fb4574afc6fe74cc936b456a323e1eea5c7021158c4719f2f3362a3e9cff5aa5ca6b1c5deccb718d947efad24d8d9a76897b70c9d600133c5cf5159618f03abed3a8eb40dfe687787239cdf03e595f5cc6ef4d1509aa717badbd31544ba457f083828571325f3b45400a605c80f57fb43bdfd5672b344ba9eee1a5a3086f1783af4635add0297f5aadaceb9763bfbed9a70ad982ee1ad4412b14de56d1b57145078e6f3ac26ee216107760854e6c19b4ff9b213eab4bd83a643dd49ed85a4100364c5c9364373af81098df76c56b2ff59a67a34a48680d3cbe426ca4b0f76b4084fa34f25120f40b3c61fad30400f74a6c498ca456a8f752673e12308868b329f63779d90e7d64aec2a204ccc5340a7c88975bdff6f305e8b103b31a1320aa5bb1d2eaac34547d980ab0fd4a99288ea58185a4f7150f8c7746386bac0d4c8c317d1aca249e65663a98165d0e0196e06e874e6be35a573e58ba4112f1c375061748af87a90266a26d8098c16ee694981a115a348b580f7b5ba6babd98f51b35974674f1e8d2b5a452711cb31c046f1773678dd0e1937ae999e4b39309b29d5b89862ed59d8aae2d2d0f457c694e7eac357ecb73445b9ae6317c48e6a86637e44c4805735f96b644f7e04458217b07ec95fa87884921df8da0fcd544c21f59b16fa6741c7340a9032347db1f66c2cdd0de341ee41d3b18f05ce5b172d169e647c9af833b635ca970da3d1ed3e95c48203f2635f4644c36f77743551fc4fa5daea6e5ba78c3c178f4641cd85caee6427e7e48c5487a130eee21a4a1784d341602e976bb6c3d89f7f789c5a0028123e3e5309bc88b0d7a5139b89ef623e4ae73076b83126939a2a6cdeb592489a774e9bf0dbcbd80a4dfe3f35c44d48bac6e677430c73937f5ea6898c528b62e9cf032eba1f241c6079d643bae4e70adbc93d3e41fe8a8fa4e28af95b997046fe07d3bc034628ba382bc774bf0a9d03cfe705d14ae7f329c917bc094d9ca24caad98d0683906c3869d3e2cbc6c1b744b10af2eb63636267540af03566abe09def5e80351fe9ca2301b30b066d2ad36b8356da7379e9fc9b6bbec3e6ec91aa771a138cbc288f6ae0ccec7266cb40c111e9224f07ac57a7ffd42b56d1862acf60e85a3493a8f596322bf1c685f99286d977c1cc6eafc7be4f838d7359d074e78a6fbd616071d8046fc9377e94da2d8a0da3484a2251c9df1237b1c9d4d64c6fdaec692f559b7ac104512d0925a919000f2db21ec0150d915cf5f51189efe4e011845fc83e700e92f1d1ceff4fe2693aad5ff871c4cee7ec8a656a99beb92608befa4c4c7e3b3b3ad1616f6fb89dc1bb251fd44d6871ad21a86d38a4f3f11032e5a6659403bd27ce9b93f4a3408ae4b15473fd6b45087039f68491f90b38bae255b619794d90550b90c39fcb4ccac8137d31790e01602394425b8f1d2933f9129f8476738021a8237732ea100c4ad3850eb4541472d6d6c97e32d3bd2efe6e7728c998661a77efc3d8c39562cb6205a91d3b7a76c4ca49bbb90cad3e1c147bf08cf19ea2433f10918a06e7393bb7f0a3d02b84b5ec96c2fdb0daa4f98d7f5c7695389aea96f6dcf60d96286cf7472c1da4308c332c7ffebfb244ad17f6bfc0219e4b9539b5483aa549d540c788e0a378b9fa1826e297b17d78df852caa1108d9e364d520c4785baf1eb2df3bf17385965076c4021eac53c7ca5b99ca3ab4c0949e5475435c1849fa76c8b0cf95aef51ead6a1f30ee5dfbb0de2dc6d4f7b07ad946b640b503306b38e88d8ad78c6622659949396dd4a8b43b84678dde7040d84ae3bfc1514145fef73f56f841f8e4b42735c2c12fbe7e1e932c700ba1c8b8a1d54d2c0fdc59aeb2b7b92ca2afac4edbd5737597359020110a5d742d1982cedcbd1beff48a3fd3e52a7587c7302475e9923b8ac6caa9f47e757923a66bc30cbf25bd354e874ff49f4aeaf4aaf765badbcf091676f09ed5abde7d408f3964d0ce964037fd4725b1dff1be53230a0203169e3dd80af8b378f39dce1f967734df3e438420368bc7210eb01ef67186b62c19f7e68ce8874b61ea879e437f995f9af30b71e8ba182a81f866e7904b0a2f0942f14798c626eccbc090975cf05844a5ad29d5c10d89ef13efa7c7648e1b7bfe8baea7a611ac37039f0f74c05db5f1cfc6f60d62f206dbe3eeff46701e4b75316124508ebeb0bfb6ff371931cd5c0e9e202ca608131683f54d00fb68552b29639bc00128bff0fff58234b35c851002ccbd9c6af423737427a96b1da5c450485aabf5f2eab86d5732fa3dc04bc678bf8fa16b6b6a48f315da5d7c0bb91a5258e0cc030cc0581fc28b3819c282a3f278a8063afe488a749a6da078df8c787393beea3ddab77f0e1a54f63f90de96030c697ffb700321f0e322054ce7e85123a63da7a738422f704ca96470b8606000f192e4a9a18e285ae83da06e181381fa886910ffa20b10ebbf14d9e6ec8704f412bcfa3c7e53ff81c40ebb16ff906927db84459ccf7352e3e6a247322b91566ba06f87ee78d823e7b48986513b32bb7a861640a0a4d8f93c5a6bfef4ee0756e0d1633a7d654c82215cdb56cb9b90f24ea51cef775073fae11eb3c4b9234fb75e610c0849738824d041b5b72e51032bbb5a16c2546191a0fd2f36e2d91cb3809a36ad86a6f467cf9f508b05a8d1edded58306e42c80bbd0c80f1f464cd65cb51d3047ca63c9d56ef6ae8dcee290509aca17949b1e03f22389c9b5949a06e452fe3da6a5682769742890eec73a8c059fe178053e43d279632a9326d47312ee926e21a9b78ebfe9dea4846d0d452d4bc02df62e7ac6f1bbb0d6f4ad9d461cf7d0f177ee3d639217ace0a88460b62fd37b3fd4ed658fd4d647086677296adf38df3a62b10389917632eb75a43cda5ac7dc2b08e18480eeac719781862142b295289695abf6c207bd0990e49335d7cfdb9752b4d76caaa08d1b7668ab1742e3669449d10c9c8c1fe8668410cfd2adc6916a2dded76c11a3c2e95f571de165c901c2f0f955a402f228580de79cdd0c7371ccef730614c355717e5893650b59327cace34f41d3f3b780d10ba8758bfba20c212d146770749284c49f57be25968b21a37d142e6b63707364c69fc22431119771165db4479812e453483eff8466e16a1660a0db3d806095764f301547d02bddb33e8f72f239f53f214b250a69fcb2514d4bdbfc0bb96dd2d4a29834b00a55caf77aae3ac8c1e9bcce14b64fd9c036726aafc30caa3937fd09e95d61e99b66cca8caa735cb51602281fc7b5b6666aaff46ec50fef12f3520308180a25fa370515cf2458dee104215fca84896cb0d40a8900e476b3849f8c269793c7bc6888c0f9cdae3801d308fa63998c85aa6fb638c254b86ee85d943e9a7e9f111e9647fbec74cb17913878142ab8061ec0e44424111dfa870ada2a0edf9fae49ae544dd4d461574a6a2d8e09fcfea153a40686d669fba5f5a5acb4a22316ae7b9eeb1555f25f0a63403f5684ccc94dab6056bd07ee75361ed8a668e8470aad733ef842f85c48862e9621e5d6708854eadc2ce270c70bb0f9ca6ebbb1632aa383adeb0889a1743d9b7624f8aca6b0ad8e05e7be9a840bc682e387c9ebb4cf7ea1232750c08b6fce85a65cb7f4c3cd46baa123e29a94bf6d2e00b2d16e2cc2282998cc72a755ab3bf0b5c65a708c85545974d596f8d919a56d9593086334cc177a27c370b2b709b845d2007613b8579b386b6dbc546051deaa06aea493793fdb89d973478fa86524d9d7a1e77832bfa03bc86d874c5ac570d0485cc031d26e9721a430d1c475e3e56352ae394c2b770368d17e62f0fdb26773299c0eb9f3cbd1e46f3570f663fc74e9f73350fd1829e3dc688d8fa437428ae60976e9890ba209aabfa1aeba294c398b1882ba3724a148caf7770964faf6908a27f4a7f97147de30dc7951d69512e8fecdee650f0450ad2cd6bf4eadfaac16ba244673eb89ebf67131fb4fcba1f55b06bbf2c6b2e9b5901b73fac3404ef1165ad1acad504db95e8758c5f98e1c274311c2261e1a0ffec96a01f0fefe46d33fac5e4515c41151ffe503bc84c4a2cf4a2312ad7c54fa443a972f3cdc71134a49fec8b136feec1d4e3506ab7b443f9298a37a63f30d65f9089028ae22848770ed2c92966db087449eb5fea095ffa25907b1913d82d39a3ad52a672bb53c26c33771c6cb631a7bd2223e6e97319eada88b60fce53a30b6fd0fc6a9fd5edacda6e96ad802bc010fd688cfd4795ec9109da31c6ad7fde6572915afc4a4d5f4bb78a3ce0b3ceb702317e98715d30f008271e80696888e26713187a5e47813a1b238a27aa42c4da81430c19cc491ab513973b56656831caa487f0355d1b793dabcd978f4522fd9c038c324bf0001e78c233a2d3ab3db2ebadf684fe0698a491f303646fbe2df36b319d07a8148300b8d05c39eec79bc45d6e2bcc71e96f83f6ca2e55e07bf8eef96b4a541d08f186408fe80db837a5594f9fc3afff39ea79b2f9a4aef0ac6639eb3e543870580282cfb16f0d23580e30954ef29dfbcd0d144f690cc628484e45e08ffb1f2559f44aff42d7d629327d74a2f292fa5be8857a571a88b80e5cd0490c8f37d41507db40c3525b27d5bc3a238e42e1d5bf557b2ba677be7eb598b2c5f74a8c2654bcdac27161c84f84848f449324d7f9b589bdac4691122b8b43050ef7567fa36340e77caf1c2c1d853d3c5c5b79753168b373724b4c936fc8afb44d709f753d0e5837047110c777cf1958f9816090079b336a06c962400308b076e66c900e5f9593e158a77f483f2e7f561f3128516c9129eece45b9f21629c83f659051af8e016d062079e159583d69a3c340f211e7a57fd058809019cb9f73c7e961812a63a7be0fea306a26eff220458e561fce3f1d923a37ed1280fd65c869dcb16fc3477f05b17f5c0b61194d49db6767ebe883de23bccb8cfdec24eec59febb7e92577b94f7c96bf20c4f1ae4a47168f163f272f81f6e69be20b5abd085f8747a1cd5926ab92e36fc73f219d608daf529ff19c561edbb56f8c6a9009530e0eeb1dd4785815f964f921800d003971ffd064220d2494d83defed785a10b010e4ef51687ca39d51ddd8f7ccbae7b4fff9cee478243cba8b6bf83a75dd828d4f41ea39a745cb05305d5513e8b5957d9657019d5d50ffe755b6b6594a45005dca5e5074c41c4d0feeff7695dcd49363eb60a6c037b9b4668d830a5c7e509952e58ff6521946ca7766ccc3e8c236baae61ed143e8fbed45a5bb1bdd6e67dd0f217575b7342b07f632679b7f0710c49691969d74cb0094fbfc18265e2c1c284b96f5927076692c53d2b4d8f9ccbcc9156570704775cd5ab9cfb87f7b6c1fb38b66c950d8618c6a214956fe7b60fc8973b6cebf99237bb7a668e9eff100b847d47a0bbab2ab6f3d582f047d2236b0b9c4b9f483e9b164872658ebe085854523dba5b5a9784b988d0c1fb0298776b224a386f5d274f1c14f658cb1824c72ebbeab82ab0ebff720a7d768727f1f87058254eb1136d3fdfc971b9697b4c0b8e74cd4af8af91d1f8004cb312feef6f6216174a5c34394ca2d71ba36b8ce29fe23299422e736ab0a18b44af715af6ee5b7f18b754505018a06d7578a193aa67db9161039b755cdfa9f9c2a7bec01299115d93939f0acf20e58dd47cc8b0082263f163e433ca64e615d96542f48a35a3748527fabf2924feb16b9e3f034a6003ada6dc7846d0b6ef582e9e1e0b984fc240a8b8d1249badef91a4c6202f5c63a46396013957687486453b86fc0350b0a243f576dd0d5d8459465635d87128e9aad0f25b08175dea52d9aa94005c919c66c59665c47e716ff2d30eb30054966880c62bd5cb2f039ae4cc6c964b1293869780f99620a7c8cb408a27dc896f36883d22e2a9f21cf7247ce59773a8ba386141d26864d87eb6e3a35aab1afdfcb94769e487d1f22d0a4f08b50d6a16969e4a1b73474d608748a14bfeaae42c7a3d19b8daaff9ed9feb3d067d073585d7518a19944803eace768d493b1de1b446c93ba7b9b8d8a59669fd6eaa0466ca37227217c7b50c4edc9a7151f4cece39e92eae368ba874353f52eb789cd1098d6f616fdfd0e243bf43214f891091ee2918b441d47daaeeb7909dd46270a3b7b8d49650454a167256938a5c00bee9cc5a4b6e1378955a80a71608bce0ff7d9960526c826804c5d812e8fc3ede00ac95bf7b3dccae73eab52f687a9ac2be2d8355c38e60eda1e626f6ad39320090d5d252393362516622987539e4b3e0b622d09e865ca010ad9bedcc0bbb624b2d3b18595adebdba0be8afec473b3852428b34b1df77d9cbddcf70f10fde8ca823acaec31e256b6f3199f56c7cd560e0ebe19d51e634c9c1eac89a315a8e8f58302f448f7cfac93305e09314642c94968e04842d5602f84e9485f3baf5ebc8abf6f7940208cc54ff787c15137e9072ef4bc48c5fc0d5c38e4ce262d684d137295849391b84591faf0b8966218008d4570e934f33ca08e76b34d5fdb5e11ceb72df724bce5d4b022b1db43d93fd522a1f021713beab19691ce1110702318d55d0ac32a706d2a807d9aff6c41c169c0395becc60e12febcd488a7482183eebbd82e4c8c8c97493bd5959c80f8f5d27da761886edd5903cdd57cb374b54e0e6a833067a68723939d69815e6d43c338b5b8e44b8d58e6d452997c7da0add42721c24750dcd57341aeb735b6ce78d12f17538a0dafce0c05a00748bbcec51cfd7c9d6967a5be52d31d13898b2111c8401ed9b96304a6d14f1b0d052d0c48367c09e8633830115fc48dcb0deb9736de0cc5dca92fccff87d7fbac5e616e8b589bd9316afd7851ae06a773af341fe423f37d867889cbf171ae23c635a26dfeadcaa0797b2d76a40a0e8082c457111487b0b36dd3f240a27f1aa01aa01196dce52653cacd037d0ca26e76fd484cb7465026ab8ea552cc6a1b096ba267fc179f54c10944096a924477330c3a3976e4ebc44c7c218eed5efa5d4568c03c09ff6eb2347199576301c3b5a3840bd15f1de83425858df0451d54f9e9fc44cd29ccc0d46e9877f61b68f7802fa9aa23b1b5be383d85ca061fde1e426fbabff55d03d284a427824b34acfdf3979a2391ac003dbc105cb983abc12a3eef2378b06d8af175a327a729e16732936bb00f03c11fc11998a470a5b452896879c2004e70c9c86f18ec589be53fd29fd8095ce0ec9bee80563250bc3331b3df4c860eb21bdf3a3bfc876672f9bb964cba618701d1097739d797da419d4af7fec510d73857715320fd42018984c6af254a43ae27d90ace98531ef9e79e6771e4237295b9d5f60300e00fe01a00c0009204200100279c3798afc200a204a0811908d168004c265db8dcbc74d0fa564d676e325d3366fe1c69eaffdba9627478de27836f9c9a71c4ab0ad6a03443effa22ffdb519492d600740600a50b40af424d9843fd13608cb983d8626dafeb09be89f7ce4cbc5b127639e085b84c61dba759753d8795c8bca65913b4d5abe373aeac038bfc9a3c9c01de2bad89fb38f9377d8615cf8ae6b66cbbcd0722ee4a202c5e00f596c3d153cdf24e70fc8dc32b65e285fc7eb8639fa0510fc0e2cd297efe234450e9c56fa22715b411b3af5bad9e294d363b400e62088a643e15f84b303307ea19e894f1f266b41ff59c80deb37788ad747a55907328cbd8cd1dc08ff3e295fac3b87601a00550f4a21c17db3a8fdccebdb63c9ebfe2ac402b1a7fc43f26fe6f73ae99ac1bc64addc4a307af9033bcf2ee86f8ef84608492cc5879c6e63dba89cf0add9154b48183ae7805a274cdbb770cc528bb70d59cac9e95f13a11fe0aebf2b5ae1c9cc6002b614ff100d5470edf77e473113af46f8dce6d62ccb1427687032bf55baa8d6dd30f23430b39075c62288edb723faae08d00a78217d4ea50233b073a826fe1776fabb2c552d48b5c258b67656397415ebb7d4d06f6c4be32ef511d08710f4a6be63bbbf1eee8467ef21817751d6d69639c53015344cfeb9afadb2ec62fdd15fa8cf45fcea15b84a0629f7e9d6f0334adaa2ed6a2d16a04def2955ea3d2676345133b4fba279cdc83648cc9375ffd975d06680cec54985a61df8d0ebd0f89b57214ebf826b1a2e31884a5f9910569d7b78e5b6ddc5c7d68ebf3b52d36f7a84cfcac904bc332523f7a77911bd1ed01faed3076865491851be68814b19f7579baba9d44da87c5c4e798fdcf126707e8484db15fb036d61e09ce42e7a6ffcba3e016d0ed9043f70c475593f55154ee2fb81ad8497f6f85000aa84ab10ac3183c84057cf88660d040c643701743d20d68f490503d26d0ddb85ca892d6479e112b7b492fd3b0d26ffb32ba232afce7884da1c7e8f17703437d7bcba32bce0a96d166e815c2fceb77e1b07e6c3d08524e040f19ba306d39d4ceed0c08ef1e8364ef11b7947f62329ad444cc4fcb1ffe467b55131ec9949274a4f5b3efbc5997f10666f6b8f0df0133d280b9f6fdd15af409a31bd96d7cf319c9ff1db707d58cd535a400eec60aee98a2cef635d7ef1dfd3189d09726ffdcb6531543a0e24eb5ed5d108e0efbc91c15562bc7f277847cafc6c4f573b6a0fadd598fae16e1ebe6397e67a864c9c1c28527aecf51d444e450346e133575b2e11412cd94ea33890204b8e91b319ca93b2e94ee5a9325b81a71d8f65c8872d1dc203e493fad2c928ece92143fb2f8b021059e49254713bb799e068739148300d1b2254f60ea61be532a281034beb4e4030ade2de17464b4431dd96da53aed82feb7b3f432c62f7ef082cdce486ee36c265da425f09d9b2abeea1f6913a01a6f6d4fa4571af8616f08dc03fedfa469213139b308e4a3c4503d79d13193993281546d7704199ce195bf87f1699efb4c7fe47daf3082d967b0747501cc87d8c03d2f446271333e8edd3f28e320bd695c1a3ee873d2bc14001f5f63e267f84fd2efe352be9ba1c886b4b410682d200ebe939ca87f9eee116ef84a7a1200e6ed5cc39e6bfc813b92900774161b483ad7dcd639387ab20b6ff2f7c36d2ff8c9c9c4b91a2fa401b629caea28940eee9f98eb6b3a1173beee746cddb94656c794a4996be2ebaa6fa47929f7739dfb2d1b158e49c2cb76d6271c0029053000c01fdc05781e402364fd471f60fe4e1c8381067b19ff9f2b3196b0125c8ba4de77da67079748496831731d6220105543ee8a86961f7d6026f9c1719d75a660091d6e33f15700d0eb7c97f102497dde0d32999dec64faef4c8d6986970ce9346fb23609f8a2063bd878d569d109b94ef29d41170f8238073bcf1052177e436b15ab758eb4a5c25b6022b0eb2587b3a93e3fffce56cf89b772dcefe6c4e7fe2e654efce147e188d48d00be5b9e139ffb9cc33d8bc89c78052bfde7312d483401cc547d5a2fbae80df2dd8edabb5f2c063e96e3f821d27d35971c3683364169c01efa8b96841e1a2d44b716bf9f2209c84a3177d01412734f3e16927a0019c4d8359dae46834cceb6f19de9c52788638ce03a9ecf86763633149ec2bae5d29c57b271fc9865cfbab0e3c9dd963fda04923565cf9c755618ca26095877c430c62851c6292d5d64b0be9e959324947563bd6226341b30a649b5e45b54876ede347e9463a344be60f00e6196fbe2be05d1708c48694907f7854738c79b101bc0085a3968ea5c010f2465fe1d0a7ded878f454b08f0a2f4df67badc1fece4a9212a56fba4df0731676bad9a9e1e23b456121581c21e8503b4abd05cffbc2a5e36a5d12ae80cc2f2c0ff4ca81dc6e498a80bb703d6da1e4b1939eede91fc06caa196113d25da70cdedf78c63a2fa9c209368a71808147fae815e2bccc152bc1a6c676967d5621137e8bc0df939cdc990e1d9410ad855f26736dad09278f64871bbfb9b31a55cad46720a0d0ce93a332261705021528178b4d0eb88bf720c0d760245bf2c51eea11b79cb9ad97c9813e965f59fbfe8ebc38f244836bba270b24eda1be8f273b7848057c4e12a5d03d93de8fd5a0de01e7497cb3232abce7a80b2a2baa48ef28aecb7842b2d45e937714d57da398682015dff59fad244b1cfeff371a72c7b6de18d03657a0a00eb4b93abcafa30bee8e875c23b3937c6dab64f262f89c2086bc6a308a57694b1d2c8bddd06858eecd659bb1123aab9ac0836472995f75734710b819d288883425d3298306815191bbeb38ad2340be0152caecaa2b6e795ea043acd6362e8543a9c477454740f80314f91c50417d9fb6476f259f5c662f0e01360a6ac9e1b079d3628a9960ab12307a14f2656aa2acf482b8dc69708d512ecfb50d591fbf02d9f9c5513b8031535bf47f5acd2086e145982f57919bea1d49db061d0c3a0c652a2de83d78ab12327c829b6a72a3c31ff5476a817b136a1ba76927c099f8fa6d59d9d26f7a9a5e2b6fdf711fc043368c3b52f22a437557c90be3923f4d98556337738a7778ef29ea53e781d3105564677c44b8a809a4e7377127e10bde3668c721bef56a3b1cde9cc88f43c4034a9b27c509b033a2cdd310b4479857fadf71fa85df4123129731e0de1bb4cc5b0148424fae4007033a64f3d68edb397711ba0b4d953a168b905062702e87c01e9fa98990e1fd6ac036239284e4ca2da5920b373fff6adce694b06ae106c9412edcd6b35fb82886518c387abfc1630436e752ad271f6f992e7f8a8c38d87356f071c0d2f79f04ae7dc24c2e82276731721dc6e5e8659981df68e5549472a4277901cd97cc8956bcc9381e3c870eb5b205373ea95c51b74831ae8a690d826d702e7754176686fdc1de7c81d61572074087ff9525563c775c1ee730ab994274bb6c3f0b7771efd459d04fc395806440fe15d3b3be689dc00fb49b5ff54ccc481c4ead22c1fe035a444b7dc465c70ec377d357119d0a4a06da690838bdb0d726641e5d686c04edba689a94f1f6f6ed7675b1045d977fd0936ce20db3b45bfae28847cfb544948f6d13a05f450bec520650f9ee7c0c5b36917f3116f3dc6ec0dba58dfa1b2b3a48f819bbe6fa10826373d6ca48dc8d7fa555323db78e01c125bcbfba35628c37d82508bc65ee3d272e31e957e8c7bada6c5d42ba73b236d2a26780c0bc23fb5b000d100744d7a6c01c5400720f73b41794b7f1f5d7e17c03f00a5e88cf04333f10c038f7e2349c6f35eab526369122b42d154a36d301d61289af511364d03fb733dbd30fe9f4b6cce8e73a08e8e46e1a4c46913491c231bd2f70c9afe17b5ff51fea69dd9cbe1c8f0bd71b70250ab5a80bde52dba1ed56b740320e9c1bacb10c338a497305587961bb99f2c0f2136aced16395a8137f38be7e9ca72821e84886ba6058120f97b24351f2e949bfef30427c0a661ea60ec5a7c049875e5707650ac5bcdd0e8331b0627be68a1dcc83bab8c3d52624be3237e144e690d67d7afaa0119b5b79ee93bd50b144f2d638e29b769bc5158d278041f49cf398683fb96cad55c5b89f311c9242e84ed7158aed4449b0916e6aad21a280cc8e83a177acfb841978b26e659bf8577cfd4fba93adb34227545bc848635330183b2631bad2bdd5e3bc7f28feed51772d3d59f81da78c75a4c60fc003b253e457b12a05d4ca09d7267149e5897d4588799fec05e7710da718a854f1c33f12e5e3d2514435a0b562429f2969ee11b218644f77362f338e0f900f8059dccaeab5d7bafe05082fd08e6980a0b3bdee5bc6cae70373ad3bc216a1b63352b49e0274262db167d7c306e23c548a0d5307ab8ec04d3779796977e1d272b769e7b08d0744124a262d002f37ac9b78bd64e8605ed850813d1054f2a427edf7236379baf7bbbd66cf1f76074e73cc5de7e4a8df715cfa360e7ce1ee0476b1591f753c8b1ec943e0a924cf90cc5f48e47ce66bdbb52368eaa18d2211cafaa99f10b2d244c150c5c91d450d03c727ea63d948138f0a0ae31d31ac1fbd5d5952d330ad633b642badba65027b99236a0c7d42d7c589a1666a44fe1a8d5098b44e4756ce120d92d165f32cf8becfa826193fdbb89b9eeb6fd28306c0533a37c58a479091769466ece7c9604fb0041873b82db186e9a03a88c0d9628eb41b445a4875730340f034a08e6ec9ce758133b0b8479b5702be7a51ef9d73d647d31af10b7bdbb6daf2be8a965b7105da4bf14ac37e3d4d1cadf86cada1e091eb97c4d11c4c5a8974da836428b968e6f6a7beba001a52488f681eb6bf1e67105d91d91bf205f1e0605f2068782dc83e576fbfc47c1e1ca3a44ce3c1f3c1d01c8ff968cef8481980751b470dac6acb633b85f2c62b94c7c0b4089230c06d1204db6d7c579ac6f1accb8d493188e327e18e27502560c282ec9e7d66a6efcd63af9ca24d8c90e1e31d0fa44733e36dd9d307e7ca0ccbe5cb36200a5fee42e124688af9219554041ce45f6451844cf56ed4fbe007193409aa5bd75d07f9a06c72f6929d3c7e1b211ace698e47634e2782b113b0bf2d3dad56f181116ac419f3736d44594599041bba23fec9179991a62395fd4d2822f1b7fdeba27fb5f642f928cf82397c810269686eb209af20546ffd8df047a452f2d422fd65ecb44d6d8c6ccebbba4f0faaf51b1f7d8dfede933fa12dda979a4614fe0649347b80d91b0fe5efb80656a2c87e56f26b0035b98f7bc90d07088abf94db5da31ab1a80825b606b492668d0762e7cc4a02066d0e2d603d66cc78057f33d8b9fbdc5a6396f3b8e795023a5a29ac9e5bcfacbd8aed9bd11547f6df3a66ea3cb36712d345b86d6313020a205e1eff4b50299429274b39fc53fc32e0df2501595da91561b676b0ef127503dd0bff892609366402b1e31efc1a53ed4ecfe36bab4e53bef88a2885ebda68d31f3eaf0f4fb713bfd33b44cbcb93a65281bd47f6488d9021b767aceb5b69d3f861afd96c88a3b1ba084c3322f611ab5cc4b88cbf5246c557d8b08cb0185043683134ff86bdd5f82117b18cfb5e4f5d49546d4c9a1a0a6e9fef6baea0980e104befb72e5a9ce9c40a230563e8adb595b62f46eba6dc57bbf22013523da6940e5f1169500cb7a8caf076aa7bf6d1816b44be0f3c8859f4036fcce9ef0ef087e48746bd6130c5d763b84f9a0ac58108b46520ace94af43546b1670254a754f02a5ace583227e668d2ec6b3e325ea040e0023df3fee2abb78dbc929e9473ef79779f5298b4198f7d0a0de562919b3b431fe0228e465d6593570aa1b86d9c3b4b4f0447436474671c848c14e87f6b2e0b02fd2ca973e780bbbda25994b96432e7ea2fe146ed1810d0418210754d7048468de1bb7c7cf5b971bb0dbf76c5fff422b4748d502cd96d26d619270627795c0123f722e64fee146afd0e0ece4c88aace58b9f175c68d4fb55f63b3408c2e885864ba92b2f967d01ec901f27db6885a9d22b89d0f5f353ec8b4713f2ac439e5f3371c30d43088f11c168a27da3846b0f243aed163cf7d64282f7999ffed207fb7ae55b0a6ef55cdc27fe46b45bea8c461d75ff4eb08d0d8d7b11f5f5e16aebbac95b665c72cb86eaf1304f3743a04c270c2262143b4dd97571eaec74362b1d4356f5cd0960762f5d309e12e991a0f7d8e7875fcffb50b4ba94a76a5e4e8873f3591f57dc03f2155ff4ae750673b2771632beb57aef0f116ced395db25443c4ec26c19dff8eab6e63acd958ec22b137c4cf7cb6b8718486232a9607d5e0f45a9bc2cfa6c50a3fab4ed2ec0f17a92990d7d17e55145bf1a9fbc5704c479e50fa5270b25fff032243cdefafe06032016e2c4764c3f77139c2ee6a3ad1c5301c80ea1a95e1457ed30de9ff26e49edfe0548cbfa09dfbde1a2a73d982bd3f42cdd765d7c2dc2f5d3c6a8d4fdfb4d7785bbaea09eddb9e8f20739f165ec348a25b76cb611ffbdc8f7bf324d9176ab9d9d474b41c3308b55845c74085c5dcd72858df68cb29336edc7796b3fc422b00995c7cae11d218a093549307dccc568b71772ff951c8f78a5d80b9c81d805134cd4ad569030a86656fdc1e830bc5a1b99db3290b8eaea8a75b1e74e89231768d414271e745e577aebc0bd38b588c94254f66fb9e32c7e4ac86b0449f52f97979289eb1ba300d887a49c85c21d1dfb8dad07d44b8ef2573913a55440c4cdf56ff8f1d9e96515affa0a78aca7c7e784ff26f8d26d3c93d8ced8da9b3d90f4c14ca6deb58cf6104b9466a4ac92c54ceb7e32fd7a0acf60df7cf9dce51c436a09bc07365593698a026b92fb1e12d3199d1dc97d1c61df97deee5a0a7822e0ef4d6409ba42f01c01383bbc09ae6d30194d941bfe64a363158fe47258d40c3ef26aab33b6a6aff0ccf09aece973bfc553f905c68aa354dc6453d9193ce4e8ab311de05501b52216c3622714d6b0912eaf329714e6a7eda76cbf473f5e25cbc74581679b9e3b3ef9906fba8fb4b352f43a1db50fb2829a916e21c2f83efe252bab746d75de2e3e19bc204fcf178772ac9715dfe06b579bec29e8d347d5be4cc69110e8bbe438cb9fadabe98316fd1e458f02d7a5a411929aa4eb3861bc906f941cd25a486eece8ecc7145b3e7bcd5edfd334c5c7939caf292a6f3ac2842c79bfb8a441e7aae9aec635dc674a0a1475e2b434b0c3b236ef37c43a423cfca00be1d11bcdb601806a011f7baf5b9c2196889579062458407be10553d45a8d7909f69c031e440155994075c6dfeb3b616cbe6875f312ad2cc50b123055329e3fc41419c3203d3748117b6a613b8bfdd7f945c088d6c3e895ad587c27dd29a60f0a2259d19a9f5f7da810b58f428522926adc01428b59da63c4da1bd579186641042dfc10f9b8a3be11095465637340917e002f2dbb46809848caae838d3340f91eccbc478529c682c88f4ae10910b4747de4dd508d6ad6245ac0e53db7f3ee312e483027a1833243c2787d2dbab918cce7cf338069fd9b1fb80431c0e89581ba8b826d60db410ae2df6e6a3894cb762e71fbe5d1bd6533ae71c1c650f8b31f05addbd993b0bc77716bf88e7ad9280ff9832c3b1569b4faa0f3bf1e31af987665b9725a90edda1fc4b90eb20311efd6de0ec55ee9494b68e79f6d0c06d648cb97f3c1a7847cdc76391a330e3333581b41d7ac89c6d34ead63343b227186e3d330ffa63584ce2a6b70541e6586c22d35ec227c31bc6c6f7cbb902c29ffbb80d1f78a352027e70454ddd01d9b8bead91841fc10683cb9ad459c0369d69079e6094864619a4aa01361878e27abdd16c7d4c0ac4af038d354484d21b79583ec0c7dd7eb1c641e6ddd39c6f41c1f2cc06c3495ca6405bc0170554463bb4ee266fc50481d438d009f35b2739d33d4c78193f8ab382f508c2d5fe12f06c3311f6281bc6550321187a27602130fcb48e3eb100cd3f576827b93e07536627a9000e6e16acdaa4d1f6bd5278e62e8401e11206ac20b2a548ce9906f5e2841910358f9fc079b452d804e2144d2ee2b894872472991416d75ddd7be62ef3bd694b8b6aec40a6fcd3352202754145061279ac54a3d52399957d9fb9c339b74ecf16c49ef2c44106b221933204a9c8d491f991da7ba930806b1f1327573da7db0964703adade02c98e151c8eb29e9b95596a77a0578b18060a102ff52a196b428fbecdcc90c762e8c71dd859a1b93b6c0b3b942b2c6d05e8fea36887d6dbe6d161ae43705bf2d8dc5fb88534a425f70e110ed588911259051e44d0eb58a76f2217a9586da458f88092717f6a6fb88f9561e266dd3499bb265a898b1a5e11bf56911d1d41971e83ac4114b1f4f6980429f4f4de1c1381027e6506d761c4944c769caa8053ccc58406d13edf8b992e112bc257d949c06fc6a5350055805fa2e3d4d05ec3c0fb08ec969ee89e8672973b0618bd868e7ae084806a6e6ad63acdccfa0d98932b6a757b0d4f10b3b4b25f528eb81338036671856353c4a578be1a48415fc3f7924c12d69fe468a9d9cb35caa40255e72535083815cfc41a60b4b9977893dc15b0c4fb22d6cc4040b8aa5dd96942748eae025211a732c78286c05336e450be9036025e05c6b55505773e255621955d0f31bca97719b00601a7b9b69406f1a217d982582276ff37591d1eecd72be0c8352ba816713a1096d28074f14f6c10baf0725cc8b0396c2cc12a67e7c5588a6dab4fcfa5b9b8a44ab8b8520c76177902ae25025367ba6942994c48bbd5f7f022aeae976ff4bcb09a5ec841f060f85ec83058570d3dd3192bb9c078c0dcac916e52c21efe296dead7922e4f160d5f159d312f219025ae765ed15d34b2e639975773d6794c55ae324120d008083fbc6a912de1ab86929c578412dff1516f1eec395726eb5d0d4734937bdc3ebf2c75b868cf3075ac706a1fd81460e8c11221c50b945e73492d8acaae700c1f1969c1241146b370de511b10e6bb92f6cf7df6b28f871c8f43672cf324e387b6b65e1c938f4f89c7bbaf336375936b2081c2a1123b0c5f57eefde1f24d1d8e9e625c42d78e874e25c2807fd5a68f1559d5b801f4bc3f31fe29c1ff635d3b83aabe04cdbb871421e8caf3cd24c3a911cdd74ac4c9a2b2f92dc4a8b8e0d35ac8e63646aa49c89770a4d0613698cfac60a2bddffad035c16ba53d26d6c7d5b4a00c1e6485a5ea1ba7139913626e64e070bee311be8068d8ba0bb0943b8fbafeaaf28c12c42dbb44d8606294a0a8c9298a68dd4e7a486deb6424ef08fac12e6336086c8f2bafa64a159a71c05c6fe7f6309fafabf3e4e08087b2b2f78d65c387eb9d533ebc0202c279b973f1898e04aa6fdf38ec498b569f896a50a7855d6942464482f39df508389aa1bdede672a45f4636af04b1153b7e981d86a40e7700f05aed50106d12bdcdd4d010d6861f46b9e4b08682b0d47ae60bd076ce38cee5fa6360ab24105bda4f462a9197d8323c48fcee7242636fdf5cfe8bfc050f16892f895a8bb0d0f17d0e815e6ca24b06f8f8b7f4f41c2decc1733d00fe83cb3e84b7037566ebb0ea90b6cfd119a546d5e1c204511b06a3cde1286387f3cf49bcd3902872ad02800678cba3732145ac0968522899244a8f4aa1648099f550f168a363e2bbde40eed5d9b2269a911d8136db7a8510b4ea50969b4195bf0a7addc8f21b8b7c928b649fc6ea76e9afbdc20ad0201b63423fea627185209c0f8b11e5681a341dd78390e07ee2a4c3f535f778c28fdc5ffbeff83a42b1195d2fda2c581c6bab2a727669b85b3f12ca2d9a3c26afe2166517052ddd2552357f3c6294250abca85ed33595e9f88687846cfe570a922e6c18e000b99b0d6ce70c7133b3d60215f20f129a377e79be77f4ea0ad57bca188d1f95c6aa07076315dd0db34d8db6aeb0492defa3cc2d4bf013390fafa5d12664b042bb82f81cf01ba9e9366c438668791753adeed91b5f59a43af80e3df6d3e5a97bf357f2159c7288745cd5e321674be201cc13c8bc29f9cad8015c13442f0c1bb7d46e2f275001d57d06ff3b4f3fe977d15e77989ea63589068b952ca477ccf9d1bdace9c48aba30ebcd88c159624fc1984bba0ce5218cb3be01a4e132f671563e7ada9f571ebfca9dbe053e8e3564784bc02d03e4ffe881f1da84df82190cfcd9568d5dddea0b3265fbb30a023d76e6a45cf081247283a50fa29083904778d1e6c7ca25c91e39da6ccab54d84f1c6ef25774a7a91d371b9576690bd5473d658691ebd5051eb6fc258e7ec26ddcac7922df616ac16becec2157cd3e1ad031c08d3b6838c879168c33e7c6019eb034eb0b40d6f058bfe5ac64982db997d91d549223b8430fc513483dc14eaba67553ea060a59c8d21b49c71a471c454c11e281e2f405122a539e83c425d0c3c4a445614ffed6ddf0de3f7c704f41f217b247e1c98a4add341647fd9e707e0b9c7698415697919fec3ba1e51b4e8d0cc1e2c83e74137b9adc11d0925a1c366cc87bfbe2bf5f668ee81292800990794d9d82bd5e2d16589d1c32e2775dae51527704e0afbc5997dfda32086b4e8fbdfe9334546438c6a956d1248852205312466543442c370d70ee27ad8a39b7e2798433eb620ec7b2d72486bcf2cedbf35babdc2281f7b25ff53e5e6fd3187fe3c6cb76d3edf101dd1f38c3ed9153f8d3f6436ec4b21f4710a8bd8ed565f3509d525e9297711e132150286c6d8155298f427e5b3a2c1a2ce65c542ba3c11bce5504ae78cd802f8dc15eea69a84de22064f9628341ced29a8095aec6a6a4a20fca983dc471ac908a61671998adf693c1fd9422d006475f74eb545db374dac4326611ebfae34cd5f9e96dec3bbd3e8318d3ded068e823bb0f3b7ec2070ba18340ca2bea054c287ae788a908344a093d5ff5bc475c5cbc76636dfbcf119431bf174aed91e8fbec610046e6ec625d7889d167d832dea6a44b5ab2ee1a6969dc10508701c674ca47ab48b18d86eef0fddc126c9a1f6356931a461d4a7f7ca067ec3aa41c8fa8cfd4122bfde0413213bfb58d5c8d82099f1d542ae9eb8e0d968d754f3c51f608d0b92a4034c778cbecbec600e95af5136acf60980a4d632c9d006073a34e1ee1ab87f231c69c8289d100e4c9905c2e51de9098fe3fe4001e9b3581230a5790f327d1eb9552f1a2e8ebf1ce9e442163478cea49eeae026b1619eb6a433eed3254b9771050ab45047144f56ee1b2046bdc7b2da1c2430fa7201ba128f07f8e8183712013403ac1c89c30280072b798d08b2a4a4efd8bbe252d99b30e34c961d6445d5ffa3bc74ec1ddc3344f85e6332a03cd04124420961daef420de41e2f32fd1a03bdf007a0a98f15d5ad81aced45415dfd0082baa0ee29ee43c338d9d7aa28643d337752d999f0fd1094c0be36884b95572d271537d2d5db32fb18bad20716d112f34a6f62dc434269fe61eb79f07493e039af1320c161ed159eb67bb9a721f524e08b25791622598ba44772817199e93fc79e90ea290d98708fdd9a507ef6862487cc4e4c1e2351371a98937c0e60c4407320d3b1860568f6f04db589f0be7c65f311d8f5cddc49ec78eb083ebc4ef7c72bb88ca4bf191476a4a995bc6cdfaa2f67da4fb4b1bdedb9d06e72835367011c53197e7ca1c0795f1a580e65150160903d140d16f1dabe2e97cedce6c84e92c6c3f1d12d1905528bb23bb2698a5e07ce42c71363a02c1a2d6ac1e9b137f8867797b83027a798700db638e37bee3a6beeb0c7f44d9a134107dab58bbdb335112be20d9a5ee51b0ebf68e39ecc81773d43f20edafc92d713acf9ed1cc4685e33add54a72375e9c1f112851753d663277adb76cbddac2c3981ec7a60baf5867161a7af7416fb1812e4443434a916c7a07de3d3d22b9bb3123e1029f283d7483660fabdfd97e76a23eac95cb3a9b2e136df4495d48c25c25b893e7df8f0792fdc30d3cbc6cb1083862e1f9196834390a15f7d744ec3e55803e5912c67b6d525c6eab04302d4de55dda859354f2e907eb118dcd3ad1884a0e8725ccdebd86799cf48a1d1ef76c61eed74df039460cdfda57d313b2c68874b6b568db9cc628c8da45d28185c1450dbfaea49753b0c977d69a7fa750cefcdee62124e98df242fd21abb545de8d9066785635a7bd32a9e47529ed62a5e0321a110a5da7991512df294d0a95c9aa644626cf6a8727b1e89beabbe7d5ec2ca6cf068de3d9baa3316248b09935feb7573416ea7efd1b896d0b637ba635bc1573129592204039b05fd7b12f008b2c7a185561fce8dd5f50bdc8e974f644eb0ecbffa148ce778b47d68761e6b87c44e97b324373a1e585af4cb3a0d79cf4d924cc0d63c8684c1cb60a58e8dead4e096c8bf0e70685316da9a382346dc4696f5328b953cd68a30f1f254112900e657acc15c62de89b64a8d6fb191bab190c9f4c8c265612c59668e665ecb81f3211b8f965457dd5d7ff4c5ac5d3ae334d3ae06ee8304e022a47febb57d295b297134a4608b6db29b1ce06aa9f3562cf1fdad057c1903b55b3e952a834b34fedb3818c7e9b30ccb21a1c3d9d83dd47b3ce3b61222c38b3eeb78cc918a9409d67c52c66e11d847b6a48758c05462350ca36120e7f8c657235ac942ce4596015726c3031a4d32e42b5d439cfd0f1d931131dea020fb94c277ddf5cde04bf0c0892f794c71fabd50cb0921cb21abca18af3aa058f79ee25109e95b2d66e3240411720004bae3390ed1e1f51e7d11e039977dee1abaacbe7e2c9e6631633fe46af1692fe090300a3e44dfc933965c5a4836ce3b841d2e27c9d5f534b299da58794e87b21597e5be164cc56907920a1d8a6d729904deb59c5f9f304690256de7d3c170b13b10322f4d81064568c9614d1112276139da99a924904fdded6205fd940faaf2c1ae1d39996ba90765b3e6349d704ed6d2911a8bd2b93a244d5860a2e9f50414aa161fac7d41b40f84681684b65018070e365c726d7f4eccaf78fb596c9b4c4c6336454ab03449e1ceaf2e16c4cd63ccfae3214241856ce48160b14c8ed235be4f15ac5a7e7dd76eddc5f66a38bc6dffd6a9b7df863ff08ee25a47eaad03603ad29d032078a350fe826d5ee59fc3646bfcc56c6869f2513799ee94966851c8e48a0077bc0617abd95f33b1d0506316358e43972a6b84a8f033a356349efe9479725cb93a3ebeed3aba3dbb24928d19591716b0a8f02e473315f94163a0bbc7e274b8c47f8fc94b8c60474491d1a0263ca7daf1cc305e276c6908b2b3edb28c114b3a2ebe8c953bfebc1b682d20217db1e8cc8db698b60a627b5c8040c9318d95199e391da26ed37f62c7fd2f4d0c638fe1106a5b489871ce4f7b53fb16b08c03775dbd4c772e588db05cb7f482faf995ce8185034cfbed15258cfae7d37e03aafde2387ca2e13059421eeca6c4e218ec4aa95fbad2bd07ba4760c502f74d6e1ef61346d4a52a0720aa8d67fe370c34793045fc2405160e7e7032db875c3ac0feaff6019c0887638c6cbf36402b915a39553ac319f6aedbf3102566729cccaad024397a09dae5d1ba1f84528b8e021b3b08d4d201a005da9e0d0faf57ec715704d27831f336e4dcdae939dc808615d8309e1f068030301941b1f28fb6d0ba223c5116bbc6b79ed2d991b9bcd7a68ec98108114c6e6c124ae30453bee734ebde535d1d5c022a76903e0b429c4f4d19ad21ad34b9f0f4bcdcb9b058e5e899a9702609f80a28f0e386978ef16f62dac6863014fea936e8de4f696aedb38694d6d54133f0bd19d93ab739a2a1acf2b25a219682cc36f7912bb1561e670353e771ddd86e5798d079c8a22bd5922d4393d98eaa3d2568e1fbfcc0ea33e2750f066dac0f263653cdcaf63b6b97ca41b844fc0b2466ca603ef040a0487c294fee5c718bc9cad11aa32941c8516ba810f400402013a594e216d77488ab93d939af79740d62ce30c176d4ce17fe3536c357905d8f11dcb32e65d4fca487b09a47964856d197c8b314698a2c9cfdfb14fa26c066f3591d57caf9123af5266d49ce4f0a3657f24c8d232560a41fdeaa3b704fd4aeb7c3edc93a3a5ec10b96d212627b71d118f9c709e4b06dc6c49fbc2ed079959a6796dd70876837d6646c000e804a9558387d2b05ba85ee4312d8b25d26417e017de86cedd93645202d3308d64c6a61776b0957b487dcd70d074f92217305cffe4c2648a83723147c25369a0b92901389d919a80520308b7e20419d8ec2b880bd0f5c0bd3840f605fffb139bab72e586b3e840e4bc0d31c70b114d2b47332dd7807137204b03409a171b8c1ee911a026f13a3dbb4584e6735975500320b0a7f88f0e2dc888b349944cfe754057766eef5a6b9fe9100a29a469524a958a7f3a5c14dc2f5c9ab5fcc182e62aab9f930ac0356639571146939fa2ddc9d86e33ec51b135d2738a8f5781b03620c855b4d5933f19b2002b95bc3f6a2d5c90940f67371c687e4e78ee8056a636f49043aeb2e288b755bba2e2f6575cbcde8dbda3d3758cecbf703d5ac433f177e15186c423aa66fc4b46c6309154e9c01838742a26c4123264d8d3a930f13886f21ffe55de436d09fa007eaa035b013422e4a2d440ffd394de172916a372c1d250cac98b8cf7e8faf60459e41c83e1fd3f92ad8737bdafb69db48eacdafd3b4a807a85f168d8135425d20a20fd878c73800e1ba2b5625089f113cb52bafc0c55d35f945953c03fcc3729ae8b18d6c23e6c002110e0d8f19c3a639b8448d73fb0c008011925d29a85c3a7349857a195308f2c270dbd057d1507839733ac0234ab14ecd6201465173d89850124251ee0c17bcdffdf29f8fd48a3526a65380e8719091023f05df15634862f7da7d2d12cc31c17dade61c4ab7d792049668d6930c572f6966fe2fc8d0505fbd9f812d8281f2883b38c085201fe5c904a982556db31a0d7bf7f1392e6c51b18f7b1b803ea624aa84fc93f94951e4b2e0ec4c6042740ffdde12331f64601fabe5019723cf09485c1419202883b081cf29985a413239fc03145af6d57fdc66d917a519de089abcf16b782738ee8dc4d80e17425d904e6a8a30892f1253e34b034f696dee6be030ad29f346a494f4a789498f62f91dd5136f901f0789fed04d5578c4e220c40f5dc4b71c545374c889f87c4eeb76198d10211556381fcae89e61155b88bcfa2a2ad9deda9410143e0b8b27e1060af877e7ca9e6678b6c856d6f7c300196f13db3cda7bff593bdd2df048589b200e5da6e7ae95542468b083e7ae61d4c02cc758be7d1b9bc2ae808a57c73506bf4106b37c2ce2a3675dbf984d42dd71f883d7dfb7cc14fb89e4b8fa327877312ef111e5663173474f2715859fcc8132f03dfd011e9d7c7bced5f549da725467afa883db310c8a4fa233d8fad8700642cd05b6d529542a8fc1300a20dd90d5821e6b846ff106b272189946bb680bafd1c92a83bacf64a30617b7a9255ad6e04adcf8c0a33205beb46f4ffd1d979a4a96c5e587e7581ba5d72371ebb1433bc132920226ae89c54fe5beff31471d569a3e2cefc7e6f80697dc592c07225dd57e5405ea884da5bfd1152a6dea702fdaf7fc99ee83de9b4fdead604e9d86020ce9bc8332993e7e8fc64e5535c38000c8b6733e4fb894d26f81bc49cb819bb67218b82649198c469aa4e57c968fb1de5c37e154412f0cf3c24b13095e8204739d275a36d70415f3f73862a9afcead53f2b0d6cb9e9946ccdc1571fb595d6b9ef801060f1a6855a9078f0ac471f27ae5963f457b6dfe851832ee39efb9dab8fd16d24b76c1de6aa53a2b85865476d8db96770e92319a770da4745dd8e5a4da308a79ddc7b88be8d059fcf25b9b2f6e1db9defbbc3ce16b2044fe4ff7a02486da397b74d72aa3c8afd1107fceb8607d5086a633cf530e663c089de090482432ecf1d80a6287b79001a9218d4077938ea4598e476b2d05ae8fcc9f643afb9d4c17ecbe33b79e9cc2a506510a24d456048b82a423a03e689ba4956c5dcc38ec84200cd2efa7b47088e7a50d3c28bc177817ec980305fc5edde3a82fbca29d11c8f0d0ce6d43572174e816e2785dd7f940ccf161d3aa2643b93d92e756d302107619ab6005a2a219b40ce74f4bb9f05ef3aff41c2ca06caf7d437b4cad77d2317c7d0004d6e763e84698d117bb5a998c8b3b6a8301be38cfc3b51c1e07362e7b8501cc4a704f116785609af831d9e6b09edbf90147bf8f584947306cb25df13d114b39be4e265c132ab0ae59d60eb1ab878793f7f073301af8738e5b27ab50761394ca6001ccfbd133f2b73ad7621546adaebe4a75c9d759b8c7706ea6c5cc6f376abe83d35aec5d1a7f37fed25416b9dce7e2bc1cd07f8dd9a7eb5a931a794807edaccd6517c630401b10db722b31b54060c9303c68293bfa1c30da35bd0328c873dfacca8ce6c5f2413197b41a9f57145bf9791b9a27fe7c75053736b7ab765e2b227821c1263ca810faf682f2f530d80623ad0c99604f36a1f214a7c53c08a73c667d72af4ce47f4846aff95d163c2ed5926085c607b8c3297303ed63ac20a1c1b26d9995c7688529b0f62c01d721dace2c96954b10ccc1d2550c17abd14029a2d50097824b07d633731c4513765c77d249bf3e54a2d34c1c31adda6cc5edfedaebc6bf4bdc7d624b06c17e4556d8a8d24fe2e0a17851f202c41ae508621015bd2599b77b963363653cc0fe5dccce979065b0ac2fab54fa29eff6195e2c2857676769c192816c6960e5f786eca7676501e8e2fabe897ccaaa84997a06275ab1d2b2c01df6e6b0b8b27e19f53bad0126c8aa50867c028935600ce75a42e403846988cb9731a435e0a0b46244c948230e5ae6efc0c205f927fa2076afeb63cc9e71fa9d6e656520feade74b7f0cb00268b811ec104c4d77671e3abbdcf45405d77f940036afd0ceba075a86198f55cc561d0522a26683101469ea95eb7df3b5a70b1506d58d430b9d6ac3e7a1befcc753a5d9c95d826d18ad5d5187d6c07d388ee023cabba45fc13073d48782800eeb9ff35ddb549bc28c2a666accfa70d44e14b214d37cbcc9be0622d304621e64422f46055362fdb94cfb4c3d2a43be0504c79433f4bb4b09205b603ae77ac1d08f03680554ad88f1f7ccf4792309dbbff0e84177c23823bdf2c199ef89b95a72dd9fd1dd6e9b705e0c88d5e1c1cad4cca1d327742a2b26d3c278aadb88bd000dc743125f61be6c902eb29664bc7619a1b4ecfcf7de94a61ac2bc3d69cb8e52a7c8c212d838ea7948cd800e1c734cebbe4c605eba0bfcd22b996d623388125fa3934cce2e51c738b6307556dbd5bd00cf71d9e506d31548c5f4ed94af79fc9895244a528a0fcf5025ba613f487fee7e84a72b479b1b23a104c6f04ca89a52e2ab580052d89928bf9f832d1cea66771e8c7eaa4e8823a28eea0d855623d6e381c817ec047de47d52a8913f977f7f0d33c1fdc620e2823070363e9c53454c4e1a835c98dfeac40d5a5cef0ef23f9b52e967d1dcc4d98c00206ec41499c854078a1cb6f20578225d14a627b8d5c93b4617a110cba611667e6b02787c7b0fb9a993685e1d334fcacfc53b273e27fb80f64ed785e2610ed5f64afeb3294152a161fe9ea1cd0e28b4dbd501dd4995aae1531c43abcfd69c9ec109598dbd224b1617df6e594820f7e4e7476508beccea3ecc68cf4e179133bd36816c3ff7b41f7380990b547e16d3d718f70cf2209a947ea4e71f3ff6d6a7ae0ffd752d34bd02628e847f0120c38943e784f1cfee4d45dcb1ce76662afe1918319027874c4862a7e1e253d2280d5a17b8d36ff2265e0e2c99e16634463a52d41383a2c5080f15d0b35dbcc97650f44822e2cc416f6123e0916b910394364bc843e3037473f8c5572e2a9e5254d499ce48f92f16463a2e861c6ad3ab13968841fb2a6a985658974e4dd3737359f7958e95ca3fb4449d103e3b902004084258dc7f549dfe97e04e9f0df7c4d9202359bbcf7f91718a02681931badb21a5c982d45237c8c1975b502cdae6a182df39a7c67bfaef4cd2291ac7d72e6db01fe8151e65e38ab1de2326d75dca9eaabdd6cb2ed943a86c7a3fa0b014d43ad176eb462ce70181357551adbcfcdfcf595380d465a4d59d71c004b773f0e62b85903352bcd631f200101e96ad5663a856540f3345648504b9f77e7e33b895dc71088d4c86f8429e8f8d19f1372456f8b1d1ce89cd5b3dadfbb7e0048374d045efc586f67534ff8c7a16a37b243573fec10e31bdb32a710be7548f592b26a4097abc5476c287c73916550463506b0da320c846f46ac74396f7390f35c880494cfb01bff45ba1766c7b6c50881110616e403b631d798daa28bf06933f50c0562b01dd6e64696924bebe85bef9dadfd63ef6b85031aceda01b456274607a47b0ef0204044956683101be0020f9d39e15e85acaf5cfe58902c33dfbc2acd478851645974920b1c201797695f78cba0573237b7d394a50e91b6a86073dc76df1397723f705d61a9592c343a831db5e926642b163f58cdb64d6062e7ab7624e95558c02aba016b7bd04d6e14eea73c26bd4f17dde238d3192d9c7b700a15bd01e14eaf98ae77d6e1e005fa75f19cee0423dce4116cd8227319fbb3c70e3bbbdb46bb53fcfa44d56014abf013a1fa390625d5c68d04fb2043bbffad420d21a23e5e500488461964f8e4a455aa3713de7fa3a2ffcb341dd91e0290a32593195d9dd5cd26d3e9cec6ddea357da983c55fdb7ec1009bec6fc0be18a35610fbd928058a002b29a3b173d6e0fd364f2f9ab2f80ff1acd7a0d92981c83cb58e744ebcaf27c4f7ef86863f8da82ab944a4c97eeb6419a9b8d32bb0f03547d43e130b11e5cbe152451dbea8f02eb4ec253c2b5e39cee7e85f171e7f10c4a63757a4ac0ab11ff897e651a43b6685d35e28eac04b5a9a6edd23d9e205aa170b19270e21cd217e362f95065de85581aaef627270278ff40f8334ff5244529db1e20e2886a6650af5b61f79bdf1c3ff0f64556605362bc9f261fda89b00f0cc079213cb8337fcd2b6a09949eca96aa6254154e4e10dd4eac86177135d02affe4d1f7de67acfffafd380f8b97b852b14fced29934314f8f0a7e53b44315d98877905be51b4828cf0eda91e691b7662e0ed0628ad534f1b32c0815dd6a8e1c6f69119b0aee20f3d8a1af6841584b413baa19358befb1aa3e332f23d9fb7072c1cb180ae2cfd729fa7cd763968795530edf7c5c214622beda10cb472fbd6541f7e3582fb1cf5e71ed34f900540229a46d67f920111eed5789f0bb91759bc7a0d1b79e652c7a9f055d67b6abeaa47ee5682bbfe79a04597f61164af37f8a63422ef04c148a7481c23c1cc1b1523c64829e96269fb3c049cd8f6c9a4ee2ab2e9fc64f51056c24641edd4101b402108fb1ebebf7b2ff2be4921baaf3276c35613c23754f9427fb55d182a55d2a957795df47562f13c914bb7855ff6b81d41589acb969978921913430f591745f86ba25392570a64a75b695e27e02baf0e0385a65074f61d62f4ae5c423badb32049a9b9a1180b4c5e3a5d6ee88da588b91b1343e6f671a82b4c4cc062ae09ec7c5725ddf50e6694ea0d7594c566b731627e301341d362d03cd63545c3761874767490415bb7bcb44f99ed7a4c5bea03cad74f3603d39a671a87d40f00426b657fda18804939b776c2569e86f2c384951af08f7a41fa712c809a317304752b07b2c175d91f93df650341cb12fafeaed748552863ae0db0b413fbb49502d4e199213177b4d7f5b1f20e85ba019cedb631fc1f9c4e6ae42afe857f28137156f3b0e517c1340d56e053678ae03592cf51d6d67d40032132b3b0f062c319af297c8c38f1e4cc2b0f35ec5c364f22deb8e319f84266e5d3129cfa2219710a3854f816788c87406675c72732017a32308516cf1219db0664746061ff308a4042285462b09274f68a0be40bfedb852e89f8c198f24cbfd3fe6cdaa8c43a8d433b70ac0e19481622ff85bd0ebfb49181bf7d80eb52264f421760554df6b79e7abdb03753179fef86b053f6f535f0842feae12a64e6f076d0924adfcddc5aadf4a9dd4a9f07d5984ba8b32c9a22f40ae03ba39cafde4e16ebaaffc48bda3c0c4c11e641c57e8779fceee791284c360e86f7ad376e8502fe65d388f99a3295b11bfd543ec14e3f728ee56e159236627c456ee0b8bae85a9ecb6e836f68d5f73bc942c1395f29aab6f88963564e4860956cf35b34a9efc7e30fcb4b6b9d10e3189320cf727d9db12f17b36c54b8b180d3c101730af2dd62cc84580c3725128b04df95b105575cf279304fd6593801aa5d25e87b02d2dc83f532de4aa1000a2fba9c9847440ce9c40c9d9d1b9b3f885a16c4e0197e35816199921cbd9049f86ae143e99d44ff5bdf4664cd225cecf8edfc820ad9ff84ee368f57c8a60dff8b53a579b445bddbf740157aeaf166f8d7129b32c23eff71eb196b9cbee5847c0adbce389b4f7cd9b6d628b01d9746ec69172fce0a20bc3c472370c387b50b7f42e3afafb02aa5a9e7d2908a8682244e1ddfd33e915f3c7f5d67b7b2ee8cda7e7b37f945b013746b5db675952c589513d50bf6fc614fbead6be8b498d9074d9be89ab93c504fed43fa1b8980c44f490df9b7bcfb9f0f69f256d02f1a9beba504b8b66ac641d2234b36633b09482aab6e8c1044b440b13c5285c7033773b999a04105ee8a7fa34743434111d6b840df3063fb4365c4db3e86e67d13480b2822bc19c511862982587445e3b1974633dd86acdaa184a7d14b3650fceafd11d13882e9a4343b456a40a582f11cc9ab7718f25bb4ac13d7de00c45b0be2f195ea733ddf3ddb9a23607f5d407315d95c9967c0bba1b5ff8bf71bb10a7f4e5b842de340ce27b100706e771d4b4cc5c24c765f8ca706039163a58be4e8e596ec70952f3cf12b3cf9617c704f77cbf45f185f9ed062d654a3af4d9561b5f76be12aecad94e2c3cc01cdcd54f566602e920f6adaaab52183968f3cf243dff334000c8f73c60fa387bdd5ffc784cee0f7db2ebda1c10211c804edd9449acd32848a26af745e56cc44090fcc8334a9d1f762dc22089cbb853f81a46217fce09c147f89c4f5ef480c84bbb7b97c106fd5b7478c6f037e9241e95142364638d8c35f538f4bf378d2777a1508774666e4723c6c56824869632d564ec10bb559fd1f7721002ddefb01ece1eef657ef463f90459119130238d9c6c713acd722c82945ed1f4470650e6737563554163220889c33950a1a940c6ed952b628354a114e2440c71fca03b497f512703f5e1d937b15f83567b03dbcfe2f5ba8feb06ed8f8897275c870519cd2ac975808efb4ee80d405213e3783c8c8b749390facac62afe48ba5aebc8d2f7370ab83d56239f9d2dc5a9264f3dff207097bff14c75530b588df40c08f9be9919a2fc93b3dfed25e80969930db41788e9b6aa6042a06516633e58fee8aad7f4debd47ae29d26355a01f2391db743c5a977b05559322a9cac63f53845be1659a23aaca9400a1c730c6a0ec3ed1af04bd361e19c6b9e9b323877cd0c0b974892244cd968d32f988fe2474c9590060e7dc842d887e82eb6dcaa77c5b2d42c9b423921af5a024854372d0da80cdbff4592df8b76cd406d48a0eb199042753445b438e6dd13ba328371e775c31a8e61961efc7de59be45b7ac4f603f536b33ebc77bd586824f3857b39a4c18bbd3004fcb268f19bcbd118e9b825afe1d6315b6b10e77e18f37845a9fa22cf292d065999e83e0c566d73b26c11fdc8f201dc263a7995beeafcb8e87e75e70977e3ddfb9645523016adf58519038b9ff99c8203809b4f633f17b978535c3d032ac07b0edfbcf9bec33ff6748dd531036696b0bacfc23bce59008c5561dd5a960eed4cb1e7211f03823d782a3c2994b8e4cfd1b566f6da5705e3e942e712bfcd9cd8932be0af0ea3666de8f15e195accbfb9ad53937debd0c93393f18d9fb8b8c43953a4dd004e11ae8e4edea83eca52f70f066a578c8680ace23304c8a5297b309eaf2d46eb3659ba2e8306696b12432792d371387a6219ec926b837946cc149883b1dffe22dd18d94fd86ddf07388f8db9287468b162c8ecc2ca1ef6d7fd3866faafb1b8c52f58db32397e81b7b8638602d3e17edcbe00a4126ae63bf7caf1fbfbe01aa90fa7689ce532b2ddff186f81faa8a560930062adc0ca374b7ffa39675f5822a046f43e89d6de2d6a26e0f80d0feb27ccf4b10fa3a3e9be75a2b9053fad042fb00e8e4981bb5721063f5bd9f5c6b68a6320441c57714800f692b0a5e09d98e1b742221b71fd5b47a79909a0d6bdd0e2b5afa24d08b2e2e8c1dcc86d6e1e947e98a20113e6696bb640c3da4b9a32c493c2c29a3e9b64cca0cb1a03c9a84a16c94adf780dc195cb0aac113b4d1c8affc423efed998ec210a5531b308e8ce1f5cb63303c3b8eb2dca4f51028547f16b3e883aec790003326d838ae3401924433bcb538af668420b759d7845291f99d2626a5616b3d5105223371c2ac07fa12323ad4687f210b36125c0b63d2fcff62b389769029b0efb30d5b4ecb2a536bc8a51d70049a5ce2130cf5ea630b35f8fa58493a7bd275ca277625108383bbf2c4697a6b5431ebd461dc108fdb8dfca24b18ce96ddf408cc6ef62f42975904a583848abe1933cd8a72390d530dd91ed0e9668de20015b99524925126af00688e13e1c0aea1469333c24cc8dc9ffcd252e1901c1936da498d93c43cf77929baa851e0dc26ddc25f109ca9130d164828a1106c01e79db277e165ff1cc435bc7900ff4eac9fafb939a0b435f40b90d2aeac8accd6c7463426ecd48d6cb949843e74acb6150c966f763de4344de7c5defed117723b94700dd7a3e960f69f20c5feeb107bb87d99cb6a7373a9d9ba1b5fcb9ddd1c67fc5fb774db30d1807ddd232f19808e936aed61fd0ae3afe75db178a0691e21edf02a6ab6f93e102c04050e67dbe84f48bb8239531a4dd1ad8c82e0244951dae43931c17605112f4c04e6b42675533559bf307900bfafb7f57d5608862f6f5ff5f380fcf2f48693f66f5e3d79bb7470984b6aee162ed6302430329141ae37584d8cabada0b7a6972d7b571c679fd9e7d6d3047f2742d2ae9cc66237891becd9fff8574d4abae264ca4cb56a3a16669caeb5f55114ecfa899bc7d083fc20dcc30f2194dc54db722b5b606f48288dda2025d29d3127f58a891919026b8a7d0db155e0aca5bcf92222ab04de07b34f91fd877249ab2b4f4c5e48b2df849e32f91729c16e2bea8c6f8ecdc65cab63af02dbba0b6f36aa14c4d28877ca7e14414359ad6d4c65edea7c6c3ec39bde44ec6a01db00c9635b6effcde3236df4a8d28591ff1959b1457273d2ebd3cc8eadbcc089e3660d5476d9c59ffa77fde3ef84f57670d4aedc7e776f0c64ae0b6a7f9944ef62c64726d464bc4fc26b73e85a9540f16bac0134f44e6a5553ca0bf92a2fb7fe70df5a479ee05d9ee2ad8f913fec3a93d2b3a29a13a64901f5615960dc1c08306a8475a664b047d9bd5e75f80e7e2cf340710178dc5370f78237ffa7a3a10258922b669ead69f450a4e2e3b979bbc52308a0e856464b080ae3b5f02ccb0c725629332f7ca018afc57986c84ed89457ccbfcccd518009dff195e61be3e174e7ed78d444e38a1186c0f963e8a278699df7c3cc10829b28918bf00c1a1045aefd80578731ec67b2445e0ed9b61dfb0c41b873ed8377b49603da7a3bc7f81d6686506efef88eb9cf3ef50bc9da8840831c01d1223299d15b8d986c37909978a496794aaf84fabdc16c3d438d58d11bbada15c00860bbd93868b18dc67ee176240f8e1d2851e31d5442008cb7a70887fe3604607484200d253fd8ea12757dd6aae50aa6dd2e13da9c63969cb53367b9833aae20f54656b26c5378d824f352862b8fb69d30abb0d623386038a184b1608f5c8c97d86bb6910b35975f738a29d46dd265f3506ced6f729ac139a9f0a5b6080c715995b4aa24f6ea3acf06b53b5af3f4948d65ea458cec7f2a86c8afee9f1b7267abe84937847b78e1d9d92c903af5a3a1648cca08f0ea6065f70a5de13e4958efc13536244be53f2cb029a326f00417853c141711f66ab8e74d6356ea200a2bae7df04b0864a7caa37696d3b918210a1c086b5a61db2c343604767edde976b27042bf1361cfbd9bbee0961caef0a789222d5be7f2df00088804b26c01ae2c78e259a2ec98eee2ba58d86e83c635e691a9dfcfdef610468b5136ec32175ffaef69eadea3a6a011ee7706dc7d2ca96a24b35d8b78cc728f6cb5358b757117d4fd97e77d80589f33857a8210d58f4de6771d28aa5aad61bdbb2464b621d9a01f8c11a2beb80b568d14d79ed686cd41f75f7a4e7b9de98f9968fb464123bbfb7cbad5e280a2b5fcb9e4466735b24edaa072ea872e47d1d19ffbed7e3ac437fbaa17de3ba61c28772d8bbef8a1e5d5e9894c7e16cb73859b5c2b0c966e81f16a9681c12dc070a151042ed0f4890cb7ef051021fa0c015f990b572bb29454ec333793e303d08465b71a00b8cf91d25eb657d77333afbb85bb6ad7a5f8446afd9bfbe4801a2ec87a353f3d10c3fb2b786da37a4e10b62fdf89456f9d6457390274403a2823c774120da71beb67f5259024f4d8fa36ec2ed53cc15623e1b204fe1ac5ac1c0042b7d19f774137888794123ea1ffc8226ce36d554718792fe8c6cc3bc3121801e3d619deb66256c960a6bdb837274de864b0f06bb7fd334880baa33b6780e6f5e3ce379bf624db076ece3b447abbc5fc6b614d8d5aab65767549461f876af13a9614cc346761ccbdbfbf98ac81cbe3f4368dee115c5ea89c9f85952a1f413528117d6fa9fe92581c6af4dfb75fd751c965a2588afb29c6333ecbd61bff4c758f424a26bead7b5e2f7073173d98c3c76467ed207325d6eaa955d8a96d0e51033ccca214f01397a2b30c5de719002caaae2b006680ea51c7662ef2696085cbdeeedb31dc86c71163b3f4a77f1707f34640a0dceb968485658de4245ae3a81cc6dcfbad90b5a22c1cc532ac5015ff51740b8ff92bd801088f5a08d2e1194b9e1b485131d94db8687658e342aaebc2653d2c74910c79e3ec0c072d2ba1b880eb9ef392683f178578165537d8f16075cf2b174440f74476f096f1595b787b37351cca74d698e7ac13520d2d75f91f0ad31e96ffd2aea9c80dc93431c6492bcd3306f08a443e326cfc83c951de6b84ffc601a6e641ef6519b9d494693e2ef2bc88c0c686d706ebc5b4352e9a3a6bf4d59efa537fe27d05bc43d8559929962eaae8107ddd7a82f5ec383eeb3f2613ac4ad33b8ce234dec6a605af45f6dbc3b80238993e2b6f8e3c69bfaff0905342d2db376eb4015a8a6ac0bb05dd61ad9f9f57be4ced7437a793104a09a093cd6adb3aeb89bd1bd6799ed5e45e4f765f9cdf6380b810e220317ff329a59a3495e7ce7b2fc3cdaddf292802aa64ce1c831694f2440870da63782d93362988781fea94b649ccb703e0d373f244da9b02f1b4c1bf75039a4715f90e32f5ba933c6ee58f214f9529ce2ede64dd1390ee8729bb3d15d8ac89e952db68113746d7dc9d9800c3768eafdd78d0acca585a96709dcd6e1f0bd34cd88d6b6a66b034d72e8a8270a9a0c615cb0835ea1c1e865119a785516037174cfab2b6f36e5587d2645e30f3c76804323aa37c048e96de79d5c186407d6acc84ae83db2b30a844979438a7d70f71aed96c1c987057ff57759b45c33bfb32ce9f46bfa508667c845758d1460f2c46a91e6238f722b3f28453da4dd71d33c83c4a0d54112c54dde7d3910bd1466fd7d73367d21505e3a7dd7080a5c6c53cfac089fcddfac1825cd23e83cbf04b75dfb7d6318f0c04af61419efb90865be314dd3f45dc3080238cc312d6d7ebccfb00fd9b9a904f66ff9ffbb88f6cd5dc96ac8b8786cfb78d3b23ef3de91d6ecf38ea7022f4a1af693ccf8b5cef757354728a1658e4e4d3889900f163373228df9c690edf7e0dc087cc7f01a5d818804dc146178228e249449a7be698a0ffc2bc1a82c655015f87bcddd2d9ef8c993ed18f62dcba82510f3ff82d6e628c56f78fb0e167c536189a1b93ef4527d15acb0eb3726b09715600bc97adc59338e7e108fff06073fff83f614b6710bbb9db0b3a64c0eda1f77b02566fded193234bab989cad4863bef91d6d4494a20057de1e93d531027cb6cd3cc6e32a6267ec22b2bd3829d02eadf7b8310291b5d684f398ca3d6adda938546867cec5603f01b0bef917526411f8cbf8903a3f308ff07ef275a4107e3fad602e7aa25b5827263c7901fe146b2a45de1be9eaabe9db468167087d672620d13557df20bff98f2768d9ef70814d77a5fa7b9f6ad42f0f55fba8d5820fe511652f2553b6848f5158077c52e166dccacd4f572165856717862149444397db2490e708e6050b1400746be7684eda97b7eb876da4beff4368bb9e7730bfd4f6854cd70209c2b2f550e619836fa2b17d13e5f1290cfbe157c5863f9eab3362313f53fd4b111fdcab6493abab341625df588cd4ecef32e33ab78d4911bbf4a1ea6b6e8ddd18c06b49d60733d91de167073534de283f5ab6160382d6c7565bb839b79b093be5ee1e99a418b0549822f87a1795a0fad02bae87812aa5d2dbd41e38da4e3796d98bab053992f75e06b4fe04fff1294806f006516bb740fb59fe5448107a886c0cec07f0bc8a6e1e78c4c74cfbf6dc95220073e09fb853fce22f2ed765e09dfd47c316d1c362f47de68af23d1080f11d23996b9d9203b8f8f7460c9d11e2e824677cc58b3ffcb5ed997ea9ab1328c0da34d0960c1cb832a070831c444dc07d0978095bd78cd4869f62409e5520b7e749bfe20c84d0e6cffdccf49e3f52d8fc29c346d563d51ca1e832b536ac8ca346ad4b4b8215940c0dd51b5fe95e640369094e38e0cc1cf87e5ddea60103ca1c477cd010e162d305b43c0d0bfe8b3dcbc0a72222f69c80dfb602097b1ddac3b95913a9fa9219eaf97f155de07e38b2d4f1028872c335420624dc1ea42d57d8479f8e5f601f394760fa64e41c89f8a35304a7b3dbaa2f46aeaaffd8e1c4e5d26363fd7430476c73dea55d92327b16ce6770cca4cdf33567393d0d9077b7523d1fb87b3996ee64b6a68ffc39fe431422caac8df3d744a46e44605d874131d982a912e466c4bcd3098d490b8d60fbe9e0a7ab8cf8488c83865acdad6eddee3e834a046929348cbdc46510204046e5b2389f1a04e8da057296f9050c2f5d82c94e46039e1c56357017fc0fc5a33f87474f5118a14258b883f56f29e4ec9c81d016379780c0637ab89ade6be3cc01ff6521f9cec4d1aeb8091d4f9f8ddbdf181c30c24833fc1d7c0d460ef20dc0ecee78fb3a076ae40a3fe43b33c691e37dcd2f448a54cc4a75470f9c79a43d5e82449f7e221272a34a5ffeaeb3156a99b83944863544b58e161954ba7a62b9946531bbd9dc9f687947b6332a17b967e732c71f01c1d673d1d4255eae38815e98f68ddb37bdb86570a26c6954c25838ab3046f33df76138fca34267fe777e2a150b3d9e9c4ccc33783e2869b25a78d8c212faba4212fe1661a84a57385a8ec3aca0f9a9b6f09f0b786f9c490e194bebb4b35a0a577c45dbaed24d758081b733d8943086153f100731f6425d6c9d7f0aaf7b06eaa4ab4844a260648b55beddc93b8751bc914a41cbce29b271d59945eceb1b3e7c0415575fc335424949abac0324e373bb86dce170a0fa11c04882b8fda83766137d984bab2d80bb7d7ba5b24d347e77ad836a03dbee3aabb8c7ff0aee62a35bda04c817c142bb17d9b10b0cf760b8d0dd5094fd47dc7bd24d881bbf0ebed80b60288e26973cf5ecfae545480ff81285c524cfa53bd8c2629b0c5390798d7c931ccb37670f02778f5fa9c20d62630d9ea633e0717a1c2693bc1611564d80638af8106e64dfec025ae2455453ad955640d85dcfa450f66389f79c3c32deba2be040f870ce7cf8e6dcde86ac2a31bdcdf4a5b6794f170613acdbbcef191e5a89107eadaa79c0c8c8bc4a1d43bf8806e17fa1855edb36ccec9c15a5ea7cf7aa5ff13f12f451e9d05b30fdaf363ea6604fb6cc7bea288bbbeac4c7d265e24a9af2b6303ab7157ae13a933f39c6a793eda60b615488d92f06c1614c426cef61f0fa4ca6e5b1f3871308d2e59be0e4744964a5daac6dd2d7e71f4fb70403bd903b2ab8792a17a215a53602479ddd8de857fdf6afc0b77c5eafc3472d7aa16f62f31f86154d5b9c28da6b2e7a28f0f69b2874bd8ef456500958316d4f42d3548d054ba352463f9419e2644a3ee764d32b41581725398638b39ff008bc3a57937d80060d756fcf5bad32f9313d392d7675085f5118077c2a713b418a8ebd5507e1a7c7ca9718b76bd787dcee996e5522ed03abf8d5acdd7cdb4603d2e54e1a3c2718727a4f16b7c5745f2ec5cfa275d4e4727d581de4ece7a2d4a1eccb420d6ab6b709141bd2e4d8798994f6c7e3c21888e79bb83a5d2d6d4502099b3d6fb384bb5d13dc5710054f7fd4cbc45cea493e03c32fa996bd382b9b045ce0e61efdbb9cad1136be7b2d081972fa0d77b440f368dfc79496e2ea3db91989c74cbcc5c76fe881f89b20ab679974ecc92b443a72a7b0e68264ba038321361964eec142c3b62c8e7b017d3b7e5d5e60c1379fd69f562f82cde21dd775af8631e8fb1f306c24f40ce734930894459a9c0d398b00d3508f00a5814722071927954559e1a5217ce4e4209c3c3b988f827f9ef14cf364ca5762e400ee2ff39eeb8e974ca56033f27c0103beaca6ddc52fa820261561650e8404522eb24a5af04b7a586af610f90a289c4ed0dfc31001e70f87d72b6b88a48f00750706fb9d375a19f829066d041f5c169a1c412106d4ed695c84b444389cbc0814bfbb92b5b71e0b95835192e057f59ff919c5f12f3227ddcddf9038405ebfd4d567e5424f2f3095b224d53c1e747d5efc2a5f0dc1b6f6c31509e51bb210c1d5be28ae0bffb762741b75ba13745cb15bf5e0be12f2f9c02a29457893e005b14159089b2904e83a2c4da96015a33db6de4b6683531e9ec863758327d165e0246b8b41fc0f71b483e4d3216fe0df40dd5a7d1fd1ad0673c948f99ec3a17a2877a759f7166ea9991b754319bac6a9ce0d0e691261190184182fb4249151fb2588fc74d5fc354c9ffc2f1329497f773ebfe791c49b104e87c847a4144e532faa912f002fbe011647c8f9cc9b47dcc74cd218998da4e3cc12341cd958a858170fe807d463a193d909190702c037b4d6e63e960c987f423138614ec0fa1fce19e1759da6f258a22cb2f6aba125e4295ec7a0e696f7da9b979a2073d5d11de53f61d083e3ebcc5034fb2dab103628137ffb499f619acd78c747429b8d23f13881eee73a2adc007d4bdb7925a5c3e8ff8c20d1204bdc91514162ee1a91ef31e4cc8f4929e98c8ef0958185e309ccd2372dc33daa7850024d8284bb046bd796dcc760fc763d09bff494a3fb69c8911f028f9e2b530c1af3d6bc33b52b2a58789b8ef5f82e8881312db8b1fe6b38cbe6f39f3914637ca9f651191c172b5547f959eb4691a0b624650f22fd50781f18d91021a1665f2eee84d26960fd98ef3425e6331fdc664c94a12c11f8933a8e77d7ba81369e1cbcf9e3fa862bcf5ba9150187e4c6bc212ea760322801b0e0debe4c62501d7f14383c1b226a0c646a092115e8d42cd2b1a9b63600a90fec24d715b525cb70a7879a01cb3a7537879de95b32f5a3126971a82616fabbe99a03c9473169b3f484408021e461db6f7b235ab71409986fdc3a0bf8fd91ccf2f1699e910f1f3d9a159382722611e2f406f2ce4a599bd6de9e673613d17489a98364b38d7567b3f32efca531bc5348b4ef49766830efd69f43a8c26cd8a2db97f52901d1042334cb338c15e2dc1c86d36455f5d71dad6b94aa342513aa0603f7ae92b4739990f0334cc1aaef8a71df0b848f1dae18ed6a70bcfab8313671635ec45209cc4ad3da8807d04b6f928987ea0578c758c43b1dc9099c90e4ea4f363a22affd6e99e0cbab796c686f43375c4d748b74dcd96b1e546696fcd7126867efa2a3ad4584ec27143aa8522960619b02604376c0783b7276a63870dbb291223d98f1f9507352cc96504658439c4a8817c25cdab3d21061a61c89e61faf1e1f29b246b944d8dea2a2f371053c5fe074415c36686041df3567ef327caf8e484668821d6f10834d4d98c9899c5533ccaa961aa84b45e534e20dbf1d7d5e351f1c20a1fb0421df4417b4cce99b85671940eb0afee66f5877473e59eda0372b31c7289ccf2276dfe8f0bd6efd6645f7adcf73351a6114c25fca3b7d3aa24f942460e9980fbd00aee9bd6d6b1cfbaa6f6639b6d67828cf99f979ea8cb40ba688cea240e438b44f583125b239ec6ebbef37ba097fb94cb771b034b6bff6b501390f9a2462047bd488327254a1424ae2b1f75cc57f1a25bb6099c45406cbded9be42707348ff29fc06003887e63ae8d302e56280a6c310a33ab557a9817f02ee04e6acbf609384fcc7f09bec5c0002bd0f52ba68c0e2cb77755b1530f5cc37d5c4da5bd7c3145dd7a954879cb157a370e1abd4384333939cf79c68d8bb5467e1aba2f24e65c2279f15f5fb063da265dcebeb08b6bcf4d6b3b15001c65a28e18d05273cf8c2c2b75c3b463425c62caf276860fe3b04bdc9d20ecbb4e35ae6544a5c55f89dfed4f365fa6c741dc787f40fdb522ec2566fd93cf047e3d8e83bb9aeede345f0f6f5bba11fb4d6fc40427d84e728e4d90e046f8b79146510f4e549bd3cc845047aae0a6c55f26ca7bcd143b2c731d85cd5b1e22544ca1b33e9d0610cf17b16b1691f290187d02b9d10f700c5a3a6d1203800dcd323f9d4e0ebdb8ebf126fb625ee3a3e111221646b591ebad4f21d65a1c01c3d8d88fdcf6892a566f6171866a87911ecb206ab57999ec13c8863e62991a97e9c7478c833396a5c17d9c03f187df6c1f9cc4acd3578bdd718db679d4cd88571c341355a4ca8e30270974b33762c005cdd88fafeafd82c827ecf78a5d17782b6f3503db4496093ed8bf335b49cbdeefd8d9ea137ce1633181da7d49d44fd849d0e559cef36014e2629b0a5d63e29c20545d5c82d5f11b2cfd4401f9895b4d7ecdf1fa814b2a529f51c1ba8b38c2a76ee2e1b4fa32688a32883e67b6c171b2f3e2e499f17046327bbf0addb717e9adbe2ee5421f8e4556b2e0a83d9d6d003644341330136f456255a07b28d32fc0e30768ad79baec12643d77f4b0738967680662fb6fea8117e7e461103c4d3138186666b0f83afeb97930ce066971f8e5d4e53e1f8b2b81e747d2668ec1d75071c1584d1ea4786ed71d7fd92855df467f62b687581183d14161fe8f1186a4fd120e587502c5382c8e8b26a081f5b83015d1058d64c6a3b3014eb90011134818485fc93d7bb3855c903396bdde557f99d092bef94be40f3434e2b8862d699300fc00ce70af395ecee558f3f4c8b551aa4ce496f0f77d3365572d04d80bb2eb48d9c05a37662b21cfa7e0f0e1cc0fe45465fed6fb4cfb26067c50eec658fc5e365fc9528ff5b807542ad27486ac51e4e57c7df25bf258d8d77f8809018be6ece9963038a30bf060714d091f2b701b04e92d0877f63fc917ecfe8e709760220e85f0f789a69cabd023c160288912cbe84eb26c6807deba4145437a5c5ef6c10af759200f8b40c869f21b347c36d8630613923e9ddabcaa0a813cdc74848c82ec15ef015872d3a5722d37bc40b7cce01b96223be9c8178cf6c012007a4e1f2e4c09c849e4cdd1cdcef341e37daa1ec60cc6e17679b6d093eedba9f6f6a3ba9c53b8002a515d4bb33740f953b51fda63c74e6b6c64241c05f84b1a20484e18e6bb3f471ed12a97d2471c04b2ffbf398e2374745d6696c905d832aae63aff7657b143de9797e5f72cfe185c0d2be1600aa0de00a955ce4f51855a2c30b12738da9861dbbbde6d2e211d8fb97ceaa6d4159a13a77bb2270881f1f13e727b82cd58189354723c7829ba59641b51601ae96da17006a68f61f662a5ce554623160dd3b57afb98c1287e5bead0ff0ea0019b7443b349086f753aab0643e9ad2276cd8af40766bec39bc791fc82429ba6ade92f8a633bb49348b5bfd35443b866b5b8260e72b308cfc0a502fe1e1981fbb9c366c4fc48b0f3e15e7fc35a01e7e0db845bc637f7ff4ee1717710b646c9d805a567b26617fbfa101f6cacd699f42186848b14db8b16a39597811f38601d7c2ae256d57958005afe82343a9dd0c135fdab3bf5922013efe4075c779192ef07ed791f20a0a0bc53b673b2492085f35c043036f50138ec29aaa3e7c16922d97ed9a92ba5fc6eb50a1f894dfc5fbaf4edcadd2ed1231077d2c12d245d9f85d53b7aaf42b3b9b32ede1f81385042aa0dc3e72f6801a4562c1fb91c634a0d2e1aed2fd5bb2bc18bc001a3c971119f4dfd0ca66d46d737596ee0d4adba0fe061ee1b8803e2b9e58d81237fa8fbe10bb15faea03906835ecdcf8d0c399533ff074139d1fea01afeeaff6eb647ebb63b31907f85bc1a69542367614c4cba0c58713168c16ee4a43c3ff533de863fe1e9ef4211ae8eebe0ec6b48f4abd9e055a8c6e25749ac20ed3e69c28e10121745809cc9d04ba8f0689561040eb481d04c7ff819f17702cb35f6e98942839ce19c2298fc01c47d3efed64a6d681e7f9f3c23e9192634bb92397129bb544c6d3837f9110bfbc4004fd47f4ebeb2bf01f61cdaadeebdb2c1db95eaf0f930a5a43296808aa085308fb7f245d0921a2a17e8a7d662dbf2cf56fdb6b73b95af3b5bc91e24deb8e8c155c144fa086b730449b4fc56adb072418416511037719f92812f09077c9c6332cd33528d3ccde088218418837dd6dddfa3ccb75ef68486b276a8c2eeeae2b6a0c1abcdc1b8c19b208e39e3d66e36e1482d497b65fde625ce14492aa699aa61840ae754cd33475ce309f304a773d248c2161b07ce72aad088c32429005184f1001c60e60d4e0eebcb2f7da4930535726b84f82e59066e7f370afabb35fc6a6fe3deff73c3088b8eb1dd41763be70c2dd75284e7f5931ee54a54a952a544e1bf5850ed7e5d39d5f52921761bce0c2a978c3e58dc78b17dce63b21fd142d85e22d8a36db79ea9db676994a9416bc0fcc74114417aa2e6cdc4511a7d5b26d11839df4b6adb1f9a48d24ebc564fddd9318e7eead520f1d7880fb4e48a4a57f35e7baaf35ddfd87fbe9282d58f0e44eeb498cb3b7b7b191eeda3ccb21cd740e5b7a43c9502e941c941b1428507e40f11a1f5e13e200e10a2d3a87f9f549e7d394d3e9a72c7e9a80156af0e8e88439a14eeb622dc5f6647e7dc2ee5e73ba37282b90e81cf64c8cd3a1f2f31911612684191055c5cefd91bebcddec35b213e6b46e64eb6ddeae32f779a82f5968c678cd0d8a8a19b8a3a82842c58a0a15fddda8374171808beb1cde377535ef4e8dcfdb3a358a033653947177474131c45150dc380a0a141c05450f77cfe11f589981a39af8e1a82646705413396c7030b80d2ec76d7036eecec36ddce60684dbdca6b8cded88dbdc7ab84d65c36d2a196e53ad709b7a83db54eb36b526e486ba80527d509a319d6a4ca527dc679ec81868a72d93fc3afb8ae5d7d957ad2cab49cbf9816a3a87ba9485bb0903455ad0345dfe987e12cb30d0c3708936c645fb6178f2f30c775d6fbcb183921b6eb89bcab471c3e5cb54021b6b944cc043890d323a50c1c4256dfd640e7070031b8cd1a61aa89186090d1a607137cdc0dd7786c88088ceafe61c83223cbf9ab38bfc25459ab8d0844893169af0348181bbd798c8f0e15ea2e2dad767ecf322ad8d09c6611c2e22ef6ffd4caa59754fc94ed71d2f63a0dfefe56ea2fae67237b57e7fc69968b8586612535a26ef6e3a23d7d3dd6446ee95bff212b99b5e5082df2b29e35efa122667e7f73c444a55b8c0dd6b4c64ec0c6180939f232a4b5759babeac1667c91e014a6d753fb4c37d0d666a01cf5e1cdbf62e31b1e04b195f4c2b50c197ba2b999f4cc1ede5dc4d6050e0a4ed42c6097e7cf9e26e5280bbc904ee3ee3a612906004ee2e0277930d2a772f5db1733f3446a90d939b42705aa976d2f788ae105091d1dfea6b46c7c41a4c84a9b37fa0509fb63ccd3a8ea7d9bbe9308d86a7dd23d6e5388ef4c84a083d120b4285d0ff5c0f3dedb6ed2f8fac4ebb55b8b2e26c3db4c4c1a196b5752f8fe34843bb59abd36e8aaf6efdca8bf34885e86937ad59574af11ec791668b7f9c76ffa8a3fd1c75d12472247172774a59488441a20a779780bb2361a5742ae29d0f89202aee1e46a285848dbbb36cb7e29038b99b478451ad918fce61b51921c688328cb8c2c439a7ff734658239c18b10ac9bfb977fbd1de8b86e4673cea1cfee7b660416db171d7ae9d21a46d48ab954db3756a22ca1ced740dcaa6693b35f938227e206286ec0e5464746d2d6734f2ba6442bafa22c286081d4494862033841aeed3d5dbd1130a440e2631dc4d61b89bc070377de13d8e1a020777d7d5173da2abb71934b46820d4d51bdddaeaad6dd9d23a6d4b2da397b66e771308bcf840171ee0628b0e689185090b77d315ee262bdc4d5598be9c6c481f54061928f9b42709954106ba52691bfee79c105e08e145882d42f8dcc36ad65d7fbc782909154416ee5e6909079125089dbb367b97f6f4d8900461e33f3f4080b95d6c5f4000c1830242d5fa018d50e710e707157ea8712a92d7f2a8b82fc6348c6ba17e1b9a3487e98ffdfac7ca5e1b86abd795f5eaac565171f6a33abcc403451be2ee838a334bdb2ed3d67a10c25d87f353b99f47df5fd66a5ca954bf170d497bb39fdfa7b70d124428062018ece5da96b4fbb5cf84c0c651393cf1cbfde730430ea6f37235655986c24b3eceefe46299cfc5b017c2354dfee3fea4bd5965b83f1f50c57d56a4051a2db4ba87fb53d3dfceff63573363a0222d68fde37391166834aaa361ebf6133e0f23ed740d2ab12a14350b7437e2dcbd3467e94a4569389af58e341a6e8dcb4defe8a3399b31906aac3987afcd2d8db3274652572a4aeb98a486c42c4bbb75c5e5706bf730c5ba24fca2ad6b8df00c9bbf59340cc791b6aabb9237d554d1d8ee9d2b15fd11f2e0a70057dc4d54ec74ddc91c504312cfd6605483500daf1a8cd4b0420d3f6af07162ba02a2c2a12b2094b28050f1c494054445599a1e3d7912e3aeb871c505545ca95e14af640949b25ed95d41e2eeadfc5770d090544d1acca0c103ee0e7bdcc59707654505eefe7bde5ffca35d98ecd1c8477a25e4ef959096ecd130d9a359714088c99e0eadf8b0023ed16977fad6f20c716c85a32daa338eb891be45b2799756c35eaed74f48b26ac6f6edae3e5a774bbb32cee19c1c9d70f55a45732c1a626dcb50db92a569345ce94c7398c9a8d362b156952c690f9fadfc6755d11f0d7f9587f3eb7e5f5b6f1d5b4d8898d472988e3923c54cde3706d56090c1866c35192c06038c662baad164443eb622d88f6cc9a8e9b517db96b6ad6722a3a1b6a1f6e1cb6b5d8b71ad9ac98afbbad2a58a6a9bff66bea9f52f0657accc5d6b561dcd984655a06190203b1c3e7392de8ddcc3879bfc6f251b76bb3e0f91283b744a91b0848597c0585ea98bf07355671c0f911ecd597ae42f3ec243a447b5ad9916b04401d805f771445d251e5e8b43ff565f2d1a1307a762e9465982920b779d431c9b2eb9f80550453cb89bb09838e0e5139e19b556ab65dbe9ba6b49d9813b4dd24345d167a4682938dfe91a74d6ec4359307ed6eca3785b2d5c075ffe06ba38357f531665013de0ca76f14652201fa01ba0138072849aa541581819fb803009f8a8cfeaa38d302477b7d940d808ee54241fe7ae50fedcc6b28d67f8a4aff00789f7b005fc39f98840776d0f5b409f2e3e59b0a63d6c017d401f1c2a8aa208bec878f8e200ed39f1b6e11a4fd71af87add2bb4312eaaaffad2e4ed01ed743d7c617808ebd2ee7027de8f77afda4aec0ae24ec51eb650400d7a94040777e656b548ad564b87cb9ba562f3adeeebab3b1dfa7c3e9cbb168888111e2254148fc61615dfc4341aeab440b5dd7697f533ceedb2068d65921d1e223a3a3848a86875109f595110ddb53b7bcb95de4acf1a93d144717c427b1453327c9e69f1c597ca4cbda9bb83a5832b94ee341fd8b0cc23518e0c1d7941cc7db61d6139158b888a8a60d4870f1f62c433401104b6fc2c1c1cf2be162320d62026b95351a5d3a6f882bb367bb7e2c413c4d397369b2d8cbb1be1c21d343201230b3072ba3b792d8f1a6962a40868a4c6c8c9dd374daab12265b8bb75704704eedec3c121588a6c71178b60a1601192f6f4f414192aa2722af66e2e2ce182045c5880bb53161541176aee3453175070a720911310f90224a2041573765a2748a4848be94b16a473b813e6b45a2ddcb460d218a7e9b534dc23d978f57da268235fe7f0daba411e1e3c2796f6b901158778808a2140b8afa81852d10738643604060ee911595fb8bbe920901e761440fe6e5b26f9c715792dcfa6daaf13c5243524a2886bbf6b110dd243471aea42182dcbb2fafcf2261fd4f9c01dcbb6aeb32bd41aabbed11bfd4385843cad17f9bf9207892669d121483463a0211af274b545f4023635779f5fdedaac32d2a73585bb6f8d7db0ccf74018d7c897fdc632fbc2b806b67a40960c28c8daee4efefe62192b475f1fbe4a8484717750c816772785b4ebc6412147b3f2917ee8c4359dc31674904451772d0f0cc243901dc25f59f6722de8205129cad295828341dca908a44b40e0aae73a87498aece8f49080aa1e54db7dd03f7fbae2ae0f933400a8f1a182abc01b2f8e60c2013a8037415ca755561c1bc8428efb4d144d5c521210480e100a02f1808aa20fafd676b59952a0421aadd60ce08f2eee341ed0e0709a6c09016c4d5c317ca9ce210e0f12298ae00f24f007cf5b2dd0c7e8ee15f401034843703a19819407a42b384d1030853256dffb3d4f05a6c085e76e802914690214c0103b3b437cb588144a7af2da5df64c2325a2984d1344c10a0a1a8528ee4e77ba52aaf1994db3d562e2841b78820fff3d0f34610af7fd64cfd6bb3db004246efe1632f1be7537b3d9aed0d0b8f3ea330149580048c205498002da8029813655b853f16f96ecd5abd3b5e65bb38e26070984f02a390522a801a6aeb8bbece443127ad6d3172e9f29dad184fb6904259d0b8029051cfc9e67f3711281fb698c1a0f9858129f42e07e12630b88d26234f3054405854033b51406160ef618f2dfadbd1b823d6cdca91886fb098c2e84c00064f11f6ea74591fceb237a5277fac2fd04822e8046c8628308ee470e8660c5ddff5a1e5d7888c0a387eb1ce67861884e175e9439c370b82c5d3ebcb365ded307ca9426d085fbc903ee272edc4f5bb89f3ae0ee272ddcbd75cac2fd8485bb9f4e5758f1369faa703f7d713f51e17ee280fb690af7d306dc4f1a70f7d32903ee6e00f7df2bd165971277c7713f1dcc81c5f370707cfc9ed7fa51f213747556ff28f909c27b17e58cef0e47db3ddcca65a46b5bb98ce40e5464b4d33508a8c82829c74b10042976cfbcd96074940d6070940d781c6583131c65030f1c35e60c478d0181a3c64ce1a8314d386acc0f8e1a7383a3c6fc1c358674d498258e1ae372d4181d478d41c151634e24d8501102b08307093b52c041c3ca0a0d3e8ac1e2eebee3811a35623049c2dd7d08a9809963b2a79de5e00741393b2000ca48438bbb9f6048f5e7865f6fc9fc408f047ba4fab3f3b9e1d7e36ce9026bc2e000016baee81cea5d03c51d07c7bda4c39356ef1e9179e2b204144b70b1c0124f1cb184135c9468828b125c2ac085892594480289238cd85204114308a1e54401130b420401840f3ff8e0830f3ef830011f7c68e20c58dd24e5dcecf0e4707d7902c09932c093fbf9dbbebfa00906ee94bc5649cd7556c2a28463868c9652159309269c93044e1130e2d693e6332d50f925f9907a5be72927be264f8adde9724fe26ed5490c4d98182da9d18a0a3093c586941020080620d88fcfcb8513b6586f0809b252ddb0006405157ef8a029080085134c2881049b14f806aa47004610e10d1e3b74849003840f00e06fcc4471d3f5530f10d825e58033a7eb1ce27dfe328e6748ebd43ce05c10a0832112eab4708ff4bb769f7638e970cae194e5f40007fc5e0969dd4f0dc0c1ff690c38ddf0c369013ca29cdfe67e821d440047bb8f31f305e586189c1aca0d195278e38d37dcb8b9f1437e6bdb9b28aeb0439929b0d8e064c63eadeb6cb7abcdbd02c8fa2ad2c2ebfa3ad570ba62e20cb47398b6db7546e61aa42b0dfebae6ddec0afdaeeb94806def92223b3abd351a2083bbeb359ab8fbaf71640d963b5d83076b24738609dc5d93d9828c14e368ba9f10d046990b94dad81f0c71f7298ed2c109567e65ef57cbea7e3a80fb6906f793014e32b8af5439a0400eb68fd48402ca0342380eca501c60716da90106205641e1a0e60634b0028953910c7b64d91b7374b6c627bdd6cc3847eb07d55c67a79983b48d3139cd1cf473b1f5bd8cbc4b5035385da490d04ed7a0312c3356a3e64ec51cd2a9060ff7b1b51d42a59185bba781c5691a3fee9ec609ae739fd118e3684ce18e46cf593e24f6d9d8a8ac9be6f384b2b6b6bf5bf8abbefc48ba5ca9b69a869bbcbe9a35cee6bd52fdfb685835ac4624ebb1f4cdadb8ac29b9738facf4671e8de3939af7c57587ab303aee6a1b694f921fa19aeb49eafc677ea44a59acb2f676d55657f26f331a9a47bfd793d8677c82e443552dfd23446959d6a3f177b8eaa3c727fa86a3a12ecf1a1b6d69937a2e1ad66bb32844435d962e3a638213bdee551f59dd1f7b12fb6c3d6ba5a003ee54a4b99f5a88fb9e8a06e3939a1fe7af99b663d5fc353f269f090db53dab0f97b45a245d2d12256ffd7d6952dad1582d92ddfdb6ae4334cc2f8a23fdb39a54db952a5ca9f4ef79b6fcdb8ae2885b9fe98fb5f1a5e4f7ecaf7eff7b9e2dfcd0aab27d9d8fc6ba71af00e313aa6fce6afeafd4d66229675dfdadde5b7daadf2bc93f1cdeedbfd12035da9258901f74a5ca19f787302017edc70f4a3eaf6a9f8a967547757ddc1b09d170dfb02c6d7d7d7d2d21af2b47846b35631979716d635914624491c5b551e010c590b63a0a15a2d011450e770f72108a2c56545b16f92afa3829bc240228aa40e1843e152b05f9a61c15b042893fabcf023cb8d324618199058e58a0658113344be3f3524a3ef184bb0f5faac571841909d1643020d8cf136518e6506d37763d7172628cb0e60f29e8c48f87e4df74a533277a3881a309324da8805eab024273988a4d5c69024a13ad5a9e38e569da0a54012bc072779d43904b0e67c2034c7080092f4c706102881e564987161cee34481ce1e44f219fd4fbda9a61352d5b828a25bc2c5181258a70f7bf4bace064aebecfb7a64419eeae0417efe95182a5048f20b4b09ed050b7dc21002201867bcbc42581e0201239248ebc5216d5393cc28a23b4b8e3d05d2d788449459d43d0081f8cc862c436625cd11ca634eff26e8708e0162c74631868b8b2a97844d44792d7f54575a5a258434229a51ff420a12b530860115578113e14914445dd9542071558c407ac9921d418a20443dc8628d27203aabb56cb175ab824a1b4e607b55877df4f450a6441012c68b6bdcd56e22c2feb6cd3bfea2babcdb6dff765c5699b6dbf7ef2e29b01c2d70fa5bfdb2b5dff74f7b028165ba968512c56148bd1509bbf33a6a559c10970e14312ee3eb04009b840023c3411a031c2dd676a70ffb9b7a023c97d975a3046951700500318880181a60b31534ac889a2e3488f0a242fd01e590ad54e08624ae85922891a9c0ee0320277770224003560f141c6ca1339329083951d4e2c2162038f6b834d122f86c809410b2d92f861d321e21c60098f95151f60a9319a2287025aec76b020c675d0600317371e08e2081c1b96d3dd1dc8171c37801028b282d3151c7c1c1f09e42109e4210ac8c30ba7918601a5366e3877c0e2a789ab26ed4142af359de607ea4002f7de94276db847027598d1f56eb4ea9f70b4b9b297a35ff648ac771dafc517ccc273f7f077c3bbae62aaa091b65e236dd1f06fc6e238d2d62aa60aa2acd7ce86f4f9548d54ac3b5c85f91420064e79c201577c00b48d6542e43e4d58782da6e3df56d9e2b0eea743bd5f537247887b247c32c1f9a9d41910405b0edc350d7f6838263d79857ac270a479fb3079ad0fe710e77ed4fbd6c324bdf4e62f6efd6ead5c0edf509c4fbb2b92159ab936c535f249d285cd8f91bf2d09dba57d3d5996ae5c67becf2429cb65a32b84cd8ffde0da8fac1acb803211695f3a9b899088ceea430ad58c71edc22eec5587ae50ae4018d774b640e1c516366e8dcdb292ab1fe4ede57038bff3c72d88eaba84b2fd5d56b2ee1ed39215779fe2601330ee251d6e701d2ac4522454ca488f8cb4d96c8822a17624ed4b6b5cfa90df2322c90bdb58b67149cb3fd31b97349dc354851e3ae2d071a46188f3d6a12d7a24876a4ba3dd5a3937393aabd6ada755a4fd41dea73fb4eee19eceee1e7e16e97b99ee5ad9eb5c8ee877a3a1d6a5adac5fd9bae4d9dab92f83ecff05a1b9e6a8d6ab5b551a888694da958aacb712e3d99247c2e689b14ceb2fc9a22a5cb89f9b0a0baa48a076e16095d152f7d1f9add6beb748f991886a865da14ba473e9a375568761cffc591ade70fbda9a613ae8fc07fae547b2e5ffe827efe78c81a87caca7f77db3acf5772e0cc350ee8b72c64038778574d159631903d50cd3bafadada0ec14e330769f22ed1435a6bfd5693f583f4df25affbb82fda1ac774a92fb6bae63ad331baf5a4650c84f14ce7882eced847ef7b561f0d079d35a62b795fe7fa5f9dc15c1a674fbce3e014ede34892afd3d5db176d6d87c2f1b7b64323dd95090dc9d7253e59bbd25781eaecb072723a34639a63e93d1a42593b94a5f364a4ba08cf4ea8939493b3b333f210d1d55b598e2bd57e9d286a5d7d8d545badabb7168e2eedeee18c7f96236f1c573a54485235c3952d083de23de9e9a1473a5408e53d61e16cde6fe2d7fb621faa020d7fe5efe2dfbdd526ae9828e6f0696fa5f9bcf9ffa4bb877358b4b5acf9daf62b59e4db53ff6e6fad232dbdae6cb5aede48218d4b5b777d8db4eaea4d576f94776d49659466440ac98296bc745c485d831ea85774b1aeaf7329c8dde042b5b2ac3e66cfe6728ff53aedbe3646936a0dc76b6b6cd475f7b9aa7fb5fc9f1dd6df0e57f7cd67c000c7a45bc97fcfaba62882158bff9e57cb5a038e54cc78d792cea1854014d2c4349d95f2991ec9d9e9de094659a13e19c63d834737eeaebb16d7233fd36ba90f97b925541cd2393c4df234495114459bad2cab8d874f6cbe6923c9ba2df9ffc4042747d8db29063762a081bbdbf2d665596d4cc4bcc6245975f5f6f967bbbfdf3ec19a088cb6bbbb832f220ebe5070f01500075f340ebada70d035031274ec0063363818abe2606c8a83b11d289486834266382844020785c2a82123250c0faab454353a40c28a073d376a7af49000071d3030c38e703d7863cc970db8fbfd91b6fb23b5f9dbde1fe94e6393f213ef149c0db0a8048ba0b853b1e67e62010d0efd0fe4e34e03ee8ccddff6a9589d94439bb9318e252c1c7712e37e9281d3a0684070a7e941b383260039a5364c2d8891119b828abf69606c07775791afff81684638001bee2603b89b68dc4b17a099a1295d412382890d1a1e343b68748460e29ad40001069dee484494527ee3ee5bd0e42861800604f795ca8bd207a068bdcbf4166b000e273ea7180084e1649a2e8439add7dd9a5bd7d6d697bcfc66ebc6c3b5c43815b5193c9c6ff86afb19179255d43b2cdfcb4e98f980ee752eff40d4e57c3ea0220ed2483887fa733d1c0eebc8c7b8371acddfb69e2e1aea2e2e7b2f6d7b3ac94a8564a43a17da6cbe2eeb38d29df4e34aa5daafc7de53b1e69b3503d9bcebade6d368480447dd8c1b19ee8e7357e81f48e88194d0dcadc6dd7d904aa4d82071c7a1028e1fbf57420a9d660e72c2dd4d4fd978706fa56c57dca33889f213c585283f401ba5c7519919a48e427074c59197231c66481d9d474f524743a9239cd4518e1a9800ca15509c80c28014949c027d4089e2ee369e02ab80e29382e223f5c48d27663c11e3c90652a81ca0a470d7e6cc08ee8ee4a9185a1044aa890e740ea768b2c3fd861493d3ddab78ca288c7fc65a524b46ad1f9704db3f25c6b312e3d997b8888c913fbb4744da3a4bd550ee0ea385096b5a77ed57bac3f56834d4117374680efb7476afc4393a393a34d4854ff11e4b7d436ad38ed8ee9a5b78b74ed2d29b136f4b6afb3abb9060666561aa6948f5cdda169998358e3409bedd4a8cb5d5956adab366d5599efed13bb1949bb1c478368e15f7e393fc481a675cdd58b6754f0ae9c2322c236b66cfb4f7871ea9066d2cd38f7f3696ddea53e2fb275126ca1bcb32e6695b847fd755623cc3b5970704e0d1430a68e6a7a7602658a96c19dbc2142c0bfdd252d89028d652b093ff687117459cdf490f5dad56aa5065e29c13c512e399ea79758b62ed07ca8f8d08dc75fe9bf2c9e29e437b7ae88a05954ef914f109bcc856ead544ff9ee77ac3850357181798940b8c942b0bf752edca0c029e94b043ea8517f8c5f6acbfa3e2943adb01a60660828be0a9245ba49264d18fb394f6d0fba54d3453497ca9243f54149308492549a57ac0506a6d610f93d4112e523d3f2e20e9b4523d37292468d01eada9e853f413f49f817e579f19f967cd385ac63877853e639fa22099b39112790e33b2c5bd0709d5d5b6ed0d872bfe292352524670ee61984df3774815c9e1eea40b39ee9e225246a82fbef572cf5563a0a1ee9d95060972f230de51bc7543c8c80ff06268a700ee3309d0f9c921c7060ee010a54223ee3e4325d542b9fb8c08ac2177208478e1646ac5f3520a039e039509eea8d48d0c39c6da58660d4f23c461720633021021c5028ffb4e0b67f7d7d6a9a9d872ff7e6ddbaf7f389b6d977bdb6cb6fddab65f9faf4b9bd6a5155228dddd37200032ee6e3272f7ea291450903241871a136a667c4a00dd9b20612845424eca6603291b26dcbdb5c3dd9a6b38bf93a7626938bf93a15a4d0fb9e3f0a17f63239cdf498d99bd6bf6644935467e528d69a1baab69fd434b2eb631243c4baab1a41a732fb58183ba7bae414ffaf08e866538bf9399ceef0408e777727152356dfa4b9cb5cee63469afc55270ee0a19e07405470a7e4a8920734f8950d2a91d32ecd8b95391851b243804e0ee333850e849e59c756bd36e1d31774f850084bb9ba0d0a84193061aeea72b3448e59081d3cca046063a063020ebefdc69c47826c95aa46794ca514be5a0a572cc3c096521d9f69502410ccd193466f80ea7d1e1eed75320948f33816ddc40e6ee503cf5019629af8b84392df2d6dc06cd0bc294a2189588ac30b363869aa2989c9c2146aaa649aa86c7dddd85193ce5c196d21b291c60f88caa8f6bdbf2a4d17e63249cbb464ace6ada68b847122285a64071c002207004144ec5104774688b7cdb911d2d43ca2483fbb526ad481601595c035bf811515225199c0d9ff1e02655b271f77085535177c171335faec062e60aacc3f548d8d0cb15e4e38215c996ecc08d08297985a174ab5e2a83cc529972953b02ccddf886951b661a309300adf1796d6749a744a4a403ee8002ee5ed6c25b4fdac537699b65c8f8cc95322c77df52e687321170f72f49a121a7de38c6c37d520de777f2ba5ccffa41afda7e9a835e58e0a097311cf42285835e8c70d04b0e0e7a5180835e901cf4f20e7aa939e8e5c7412f471cf4d272d00b1007bdec70b00b1b0e7649c3c12e2c70b00b180e76f1e26097221cec120107bbdce06097191cec721dec72e460172207bbf838d88588835d560e76f1e160971eee9e32a1070f0080208c30020f1d21d434f1312342a984450903eea62b5a0c196b14e11191d942e6063225cd05dec434f7539e72d22716e880071ebe942660d209c224002f5da28022078d054a6d3c41e384698d262ac085099a254a501243093fe5dc4e385bd2701007353778c3ddc31b51bcb97f125d6cab8f7c9cdf498d48f3f059febd5a3fce16526dc32448706f34d61d135da98ed1300cafd5dd4ac2286b065bcd284b4835d251689c8da2a6ab9b8a86d7d255553d69f5e3d0994a5b511c79e36ca42d1ad6b7ae917c33dbdcaa0965d954e3efe66b328e2b1b6535518d7aacb79ee6d616836780e1bed34112c51d2451b4673da3c60c355cf7b2699a9145512c069a9104442797c3655973376703cd00e24e45f00540384f983045a0e0ae0b2334641c711547b369da4017ace08211dc877e5a776ae8a2a13e7d2fc3b22b44cb4f66a21cd1ee11f91e08e31a96916f6f2f5c91422c550e0ba13cb5e6fb27b6d9740d7559d65b4fef70bbbea8589a116d3f6da6e43e8e2c89c8b77556332c053d2908018c144e00304656604800330298130a6a800218a0000c0ab6404106dc766d6f8abdbd3a8e789facd62d739857ffbaa828d6c6fcb9ffd9e95ad242a41e66e550bc292be3dcd70ccb3f0b6b0e7dfbece55bb5fdbefe0e178ee1388e633693d031fc508886bfdb4859a3381ed5fcbb7dfe4f90d5bfd51824a9c646151d83640c34aa686d678fc69ff149cdaf7df8f25a40f968144551ac375b6f3d350d353dcff1881eb1e9ae6d3d19a9186bd115ad7927e5f038666dc99a3f541dc19ee472b9588e50ce6fdfdc9a61344cfa93f7bb91d5eaea0ce3d8d5f5e1510c757e1eae471e8d785f5b4d4ad6716c919585f1be56db5c4db347a3a1c6b9914707898a754773425a8857f66e96e6f07854338c15549bc17e6c311411d5684241b4459f8cf4dad5e7a96da8c4b4b7c224756a06040000000800c31000304020148a8442c1784c38a1b57b1480015c9254b06446198ab3344631848c3186000100000000200002d500d680e06c27c1029ae5756d7c9a2bc88671358f67d8875709987cad6700ad0da91f6ff36bfb81966293c39d7ac0463090075f9a935ce4c46e9527da982b988e286902a3df36937ce51ddd142be63af60346535bdd56df615e0d016d8ae39dedbb27ec5b22c117ed32ef379128bb2d2fb2b184fbbafb43111e69c643dd6c5f116284495f93677d59473d18f30eeae831b0581a2cac9803735ece44737ec6b98558d737ac19c582cd783433fb7edd62ee690a2475ff033b715da29180561f95558fb8c9d5bfb82d9da021f7b0bbb306175b7d4d7b818d73aba24ae8b3876870b5ff168b85bd3feb7de6b6ff79867114d2ed816f6ad6ed8027d2613005ea375b0b522f56ebf56c89b7b249f3bde976a34bd44b8a9805b7b4e0533612690711b15809fdede9d260fc7e3135f2c3b3213c9488e1dfd54e58da2a2637ad585785ecfea7ce4fc1c50fa8736d62ff73f66445c41ee6ef718cbea721229bed67e905db77986314b74ff5d06f2785724309e1b82673dd6c8576913377d425f2e2ec913aed533e80412b9a4acade046e04799d73622d42f07ff3226bb727f12ba19695bab1f329dfae86c587e779e5bf8e49bd9fe23fc7ceb0f563b5efd073fd74d707a9219b7f1b928e2b11d352ab5294206e1f8fbf3c4d4fed5c9e50f291e984af0440df48f1a93efcc4c71186c6f410a00ecb8fbd6c6d68c4976e6fd6067d0ebc6fb1f90104fba11a0e607f239d2861a9139ad6fdcd1ffcfe20bfa4d4c5ddf640eb49cdf50b9be5eca54eb6c657fda56d26c62316c376cc37f4342ab75b13793ad2296cc7bde8f51f2498064abf0e50a2d1b75b96f68915c161c61baf1f3303cdb4a414de80cf5869f0e9cc86ba446e43ded0a10dacae76cba17723dc4fd91e490e6f07310ff91ce772b0c59cd7726341d353e03ca393fc857365e9b3b14ca35936598b5b802765eca9e82970103c7f65857f3219ebfe567418987c6bb0ff244347ee3c9ce29d401f617dacec3551db4988106903eac1be2cce11c4307e97ffc0eda0e287f4c2e0baaea44aa82b65e2681ec50976cf18c8a48c545263ea3ea9ff306ada5728755f927ad3ecfc876e103a06863b7acc4175a54be7e7fe541b31dd99c63abd78595057d75ed44622066552490d17eb5dba7ec845b166e0a142c27f8f7804bf0e6664c12883b16d45a6bac314c85c68cacba64a002d2fbad2e4b2da7de842e2ad9907f1761f00a2760c902c75f1a02a1aecaf66badfa8ac03a1407dc487b2e5f15e350624a3b377229cac1cf707be818b1e2e4c9bf392a3ff13db12082488c41e8abfe0ad19b85752750de042044e086e5b47d959f3f805489915a6b5e9c089d8b455f9cfeecdd2463edaf6f7c78a76dac00e1de1a91d99662120d5b53baedb3c390874b0840aa484be85c065db1a982662a604c39c50ce51532c5d68d3c783ad31bd044e1844882328790b4ed09a2b6fac833731dba0119dee72524d3b3480b36e1d30bcc28dc880007e25eeb6a2d93bee301414f91c3654b21cecd7d28203cc5bcf6b6d195fef85823826cd9ce40a32422cd0814b0c6a3f867616bf0e0ba12e3a16938a940315b7f360f4ff36860a4ddb59a5732b8d6cca93e0c0dd019f861da0ffdcafd530ef3f5d2e2a9fd844975c19948bd2648cf0c9132a4306705e91fcb4d49af18a10cc1d83271fa98df698c2bc8a2a2790bce387dd25a836c4e32182875d8a8415110e420b3726f26552e2339b616bf6e586a9e67828946f45f1611d7aa097c38e26d1eddb4516630382ea49090103174e56167985cc990ce05dcb47ede7fd790df9cd33ba4fc3550b4d547fcfd43b22f645d73aebd70ac4fa573a59c2e3c8db0863374be94206c9591258cef13ed0adf92cc517f914c35134b5109d0a02c49d7d68602296e4253b2b6c6199b7bb0fea4f129aae70eb990bf17838d6e9ef36e3d738b68d9b7039a1ae5d2e3173e7a5a5b018345995d26e911bdda56fb1f18f97f9de029d4e5140b48a6391940f779c0b933206cce721a0ce29a7607d541a681cc78eb69c5cca7ad95192454ee89a1cb3ed266d348b2dee7bead8472803dfb465f0bb38e89ea151f2c91f7326f97a241c288622f94fd56f5ecc6f8817d87314ab727aa24fe1eb90fc903bb7a14107935c271bf057358dd1fbbcfc0722405eedb33828abf2e72d3c8fb74f331210b9031fda8f7d24fc97858f3a4230616b59706774d7aea672109eb3eeff64fc386cdb19b0a1ab9b9699151588b36c7073a63e40a152ecc706baeb967e19a936eb0a8b567f6eebc4929360f3762cfcd7c4be0d6d15191ea2e9d9e9427d9e8e37c65a4d1e5b2aa6138ad11349de45c9d51f4ada65a727817ba5863738a432d97d0036b2389eb5ebf6dc98a3630e25e3b780d373fa7a2da1062ecc6bc8d1a376d4781b3b77a33a89e7479c34074ac32a0f2fb1efd640e8f22a2c55f070363ba258e5f4473af86c8c0542de207b30f85776c56ff7cb4568077605d612dcbfef84dc8cc7cfa25001173be6ca8bc77721863f59408360510a4e14f4ec03d0f543fe7c1b7e8044a7710e0c983f3488be5258b6d5f820a13ca4088853bcccd27521846bcbc0b2d6f578600f5c61719a185e0e349819af19c1330f7f2f1dc8fb5afcf56dea909e52f2bb91e0f0b13be0010f2ae0ad47d6c3222c5f249852e974974fb4e2a7d3b28c9f60db152d9b700f1661a8c5773931d263ca389ae470862c04f85a6af987b3cf4316819a4abe4495aad5221dbfc924891fbc21feeefb51acc58c0c17d56a41015b33358ce0598397276393839e74c3bb666b8ea41321ff053922488ec113d7889c0422f3391868659994f6d03339211a77a8fda354a78020eb5c361dd6cf53403a64dba6be8717556dff756f107657db2acc0fa7d5c0f554e470e83caefa80659ae23940e1fa40843d2b2554889238ac148da5dd241724dd3378def74ed62bab6398f5c1f35735daf8f4ed12d6002b82a1c9415e3c431e59fba1908fe5cb415b0e6fa32fd1672aca7399556703f302a830dfdfaf1d27cbec0c7ebca83cabb30bfd82aaf481eef58da3d08ad997a5ea98317fd3889ef5a403ae1aa5e214e57088932583e8ea7dec822ff654ac92c4028214d5277ae1f6cb89f91ec6ed03684f9159454579d4f53bccca4ec1c18d1ce0a00a0bf6020722ff1774d3949870e7e4ec5bf83b045b2a2a736fc1c8da7901af661788fc9a377a0fdcbf48b769bf62d3ada79d42da56fc7b07acca0b906e9040feffff78c6b8b22453e2028576fb9852817ccf18adee44cc53600fc7159b77a0b2e1ab1d6052ae735bc0098ba431d392b16021269f3897837c7e62113c059f0a25edf5256b165b67de27b43c0d6c6cddcc46b148b85907e6d710edbcc23fe0c5018a3fefb2a6d7023cdb82f5e37470daefbc57b22d40fec4bb9198e6f6e18a88271c86b3bdf91b2fcf0abf28e243f63f5ecc5572854538d724549b79c4902fb7b04bca3e51a170510272a3a0fb78c0cbcbc995179f2c8e41315e2da05193ae2617fbc774f06410062e39d444d90882dbe0710a3f879c0ad0a7043568d1c95e19bc9d0b3a03bfa2e1e8f433c92e5b95b611acf345067cb3e90435543675d63c92f0f6cbc3abf2bebe20bcd3a4fd7510854f6d8420e800f91ce2d2b77514f43843df45b91bbf6b94d9d1de726ebf0c085acd27bb6ce5f8e2ec246dd4e02141790c384dc67eb2d93a4b685b346347789d76e65996e1d790b7eb008b0e157f540a426d065314345a7b0eefeca127c8dafb9b3890bcf52117506f08a8ca7c35a93a4b48be5e5660f926f09a657400d52e5919fcf33714de328e696c0cff7ded66a147f2f9323035eedeeab6e18b43019dc265fdfa8375dac468cb7c90af0c14ed086ef90211387ad1210ce2a6a76afa16115122537bf5b984eb66b8c667cd2658c1d2874f25c7e4e522a30a003c335f041fa9dedb60f72f69a429e6a933339493086ee230c79c94b1789f2ce9b04c0a2e29b11ef5ff3f74420aeff6d92d33a5860a3d07ec2534d940ae20d9bd721bda16060582b91494f52a21415fb5b5aad4cc8f997c493c7c771e19225dba6f4610a012e30cbfd5f16ad67f15b44e71978161fa6f4d0dae45de1809f1f9c34ca09d4dd28512940f07a67b1cf83b0c1619b9c93e09c931768c73837147999f7f3c4d05bcbc3bda676c7f9cfa1621df5a21f9b5e0b8e706328ee5fa8c83989bc3efa424e4f3e25e1a05de3d0fe995d61941750ef8420e38362f0796c07a59e3571068ed765a6cad39134a8e1cf59e637b38bee0c5c259a2179f39b571197503b27a74fc51fb112d58ce413ff65a78d2f4104bc9f30d98d23e25d304ee4a29d46c18261da018dc394588888561ccf555c7cc4ab2d3098c073820da8457cc7a0352ad26157b7c31cfd522da7264448ffaba06ac8241d93f47330b47c614827cb0326a40c41be9e1d5260e884601946b08040bd0db7d8adec35371473c0d592e8e5e420eab67d1db0475b801a4f1896b4dc5d315a90e832427aee810d76b69df7ade14d2a4d330f12eb8ef0cbcd19e8ea94fce831f89ffa8a6e8f008f6cd6fe916cdc977dc549a2258ffcf76f073bf43e2009f9d0cfa28d60c98ec38e25f6c77af95e3c96ca5f5d3ca7e253330e1ae6f0ba3f139ab26c36b26070e08794ae2ec823df8de2460c0eed0e0fb6eb0a79b59f2e97b09b89c2532ccaabd3767f1fe60a12c0997bee5c4af59d40ef99262517400ab17a2e03c5b6e2875978035142e458d8959399f4b38637a419f6f8e330e6439204fa4caf64937b99baf4c29910a1fcd09531960e0fdfd20342cb1cf3f0d89b628ce57e92a563a4a6e30dc12b420052bed25c060afd26939f75392c3e09f6e5a635f9324e06c14dd17d08850181a17a5a51fb54fc674b2f20063bad0e443cef54d481dbbd580c993bd52e671a5a04874c203271283ea558189f49f12298dce219492a3c188747475677de006b472066f0bc6ffa05870e3ae88a5de1d1cbfa2f72a506bac60448d9cfa3bd79bc4f8a9c9b08c2c491c5866035da76eceaa7aeef18499f2416bba8d2e238ea4d59c950a18a220de1039529838903c30f5a0e488af1fd5baf7116f4d2e044be3ee19549191ec71c68cfae25b6e44af8e3cde3ac9a6dc022efec2641fc28246af84de887554580142ee74f9ebc8d6da6723779c3cf0acf39d96c6a71beb23a43a26a168b30fc63bff90230e442e0ea2f1f49b95b094cbd53f29b7ba91a7d71406ccec8206887f8a0e80653b13e5f87d4205083122ae89d8039a9caf2f8e0e295e8ade296c55e728c18ec8497b8c2a270fd7c34d9ce8f55f37625eec254bf67b6f1cec33177e576b370a12973a333d0c7d8310232ddc6879a25f969eb883b84b948949079e1a14beb871a243f6e152c7cd009a8017c40692d7304ef2b1c9e060e00ed4f74108998e3c72719040948538d57eee9d4625a2d10764060bbe2833fb4fb91b051c88b8919f3f88188d9f92662c1d5e7cc6803c1cf390ac24e7c9faee76cd6d412a3466e8c402a85fd12b30bfbc6639252cac876fd68c06b7691d39e63ec4bddba7b25d847468dd6dd8875aa27539e8df17209023002ec1c5646ea19a764bb35be53003c0c45e66b6512c60d1ad88ca4aee349d796a3ab22de9370357c2e255f9c870534daab7a7604ae608a312c03310f17fabbda19c4a2e03010a695c41bd14537cb495f4cdc078e45a80431dced2ab149f540dae6f39ef3af8aafa9317471ad8da511f57031b3369c2ccc750c77a23296d2c3b80a13849a4a285c30ffb5b3df02268e100d6fefaeec41f77204b208382a1793c4c779cf7017c07e60efb6791d63bf19777bf702817bb75037fd76d62dc0a8cf06a2eb2bf15b13593f1f9af81459668373c6bfbf4fd9c46823f946c431c7324e09f6ab3f66f4328459dacdc85bc52d2ca6fa75d95304b5f413de21710a7c798fe1f5bbc860e42533eb4d46bfb67647e9624b7bcf41b491b764d73f2e4df6873f7f1104e29a4ff5835a30483e88381dc371f060ae657dce625e913793cbe7addd37f0c36a481ff66322e0407f3614b666c62efda9178fd504b011863b3675cc89ae96569d3db82315ddd055cfe10235788ce2a51030f7b1fd1b0e9ee93cea729f00693632e9fdf40010a63e52b1a762157aee3b0416b300bfbff695609f00fbe5ce9e85a8e61d372c1c5580386cefa0c968effcde8d79b50b56987f7f1f50896f9bf546efcf475d442ea61f5a16af03ab81af8817d3b27b0d4d009dc699a73f918ac639cf0b106e8ffe526f00506d39885e32b4181a1ed6fc34e6306f938131f85e699578e25ac2ecdedf99548c9733052354b36e817d58efc38ddf6d280600ee39296364a2355dd36c884bfb7d5f79de3c08acd2153c48471f83a7115566471a390b983288c3764a99751b0fac8947125f3e60bc6316e69b9ee3f0efcd6493466fb14e9f9f73956a70222b8f9ab65ac0363d6d9fce0a0577c048ce3ae8fd8e50cad07aebd04f7c8af2ef295e361570ee349e0479dabbef5a9177258acf763f0cdf58b740fe9fc6e5bfdb298e9d9e15394ab4f43f71a7ec97dbeefed8707b6a4c86a732b9c81365b139b49ca780d4c055c7399205fb69aaa0134220604e8b9ebd44b25daa002b83c93705d41a294e2c489d5208672ca1d5c832dba7a8ed8e3a65b3df7c045fcacb5198ddb0b76f3cb1ac3c5159e00d3cd7a1ebcb8e60c1cabba7ead4d135d88fa0abde7a0f54df5af3cef7e3b086a8344d7cd7383fbf3c843a599a5212e66f347e7bb87f73703c42670941cbfc3ea8822c35070937fdfffe6a229e70496a8a750ba81032740acbd07aab47a4384f5d19f5d4ee01f4152e7f343374422b2fd6ac9d192795ed2b6659e286e60fd8fdeffd9fc6bfd1975a2bdeab460d91e416a7e2fc6d8fe8fe8dc5e890679a5dce47d47e79a110fcfb0517a47174aab859bed83ff56d37c0d89ce1967da9b464e1124714fc5561f8a3c4bcb7fec2c5b406c10ed845b6a3c25360dec3cb1d19f3f383859d8b71e7df573b2e6cf71766240eeeab512dfbd2d5c00588745d29d978bf355fbc685a39a0592710a1dfb9aa1425759f1d153409040baf2b8733519fa3a71f15f13edc2cf1ccf7fa759d6f4d9582a78c30425d771f28947c0e482bb8f15603a786390569c02a074ff4ab8f8a68213b509b8f7143cbce618d87ccab9f44262f5cdd2c03600d9e71b4a74d8944d136125b51c5cf05a526dddd24119b748049138a1a49f78024460bb39ae8ce926250650eac2c45fe4f16d0d0312f2cfb7506f6ffe181c318e77f25f8ba5282ec4716d6bba1941e7f05dda2023fdc18eebf77ce738cf87394898273e3ffdb500cbecf31ff770c490d178bb4567e9abf85d8357af6277bb8d2c956f7883f12adaec89d879776dd06ad9f77045452c18476ea9b692490bb8e9e290a5dbfc171258ad1de220203e3007607a43f94b660f268fc81e3b821f488b33828b3d52081f2ed5f99c54e967477566b3788e7162ae6c08ac6433b01a0382e42c37b632d5918d8599193e8872fa6fa6f76a93db9c9d9abd364d989ed91adb8f2eeba293b1c50112bce82aa4643b69c3972eb5ccb8027fe20c94c98c8aa2fe426354c02092f69c0d2593a99d37c1aa3d7e125443f9ec8f8e2cf794b4a07d3e69bdef8e851afa32a770df23b3b4691ddabc500aa7b29fcaa56e7b7f7530ddc43db3d59876e355b06a992b6c3961d5c4514777d9307423c5ebe4dd5da36b322fca69a9293e600e513ec20f621b6ba8fba4baef79e08b947843dde855e373c7975b94b0d58052550d7243c443b01def7be9244d2d26f7964f3c47ca6d83d07caa1f2403e9a44b724105d2e94957701c0b8de08c87e43711d9781a172ee4360ff39db134f13b83208c6442dba86c5cb7612a95052465986bbaa94ed18c47b9f0a7664a47562584e94a51f169f814e510a9fc4b950c36faaf6bf11a358d8f966d9aa2644def31d6a34276000e23181b33e5a9f0742712f0a520827150412ec565dcf4c4fae0b10a147e203ed8b05094bd6b1e7a06e69f43d8b1985e9e9027c9fcace78ad0b1508b29c457492d472c959e604c85962dd259ce800e3b07adff47f43bc077878411b749c69f06c4bf643df32adc972d801ecfa1bb92ee407bfedd97bee720348ab2791c1016aa9cdd201193ba942a18d4dad88ec4ec01638905b2f997d9edac4a7cb8f6aabbd79f16573f237c4077fbc459c748ea178992a1cae4052242bcfc0ee6f5ae58bf64c4af9589bf118127f840c052485b5af12e42408a743e4c36b1ec6f55748e504c1dbfdac5dd6050f20327f729eb21ad09907047d426f5864e642b5540916fa398719d6cc15e2ab56d33d48ca16ee5ffdc191ad4eaa37c82d1dccba9b369208a440f793448e55d2b843e104e1d6c2f1ae87d170edecb420c7fc89be88bdb7cb890e2ff86923191d89efb7517e65f181635cb47c576f18268a6526f93850d705685f8d2129fa92024ec507c5fd06a3a05377bf1e7cf4400fad7d27ae63a8bb99d4350ad8a53d9ae334c6cc5099d0c7a88d394bab830d9f805387158694149e264eb22bf61a67b0c3b8793e0a4b70d19e4e65b0b18d59f07259f2181fce79fcf11ed8a6d09fa4e9aa97e4e257ba8ba2908cace8e7b0e0a7fa2b0eb42b6339ec6614954cd4e4ae3348ab2f48792ed6017768aecb44d0eb2e9d2aa7e4fe8d31333adfe8478816d8046dc963a0fca5a52fd62d550c12940fd60f74d3d80a2a17feaae4e936560248c43ae154b0e9e1e4a3a5bdd8a1da66012d0283ad0313e8221ee7045fba481df8a4956809843c593485163199626f6fbf37e031a970a765c70bc48c16d8aa4865f057457cc0ce0ee5e3a9cce7ff024dfdb9bd7002a4b9bb235527b8306a497be6cef5604365b5e01a84bd09df31f4fa1e5c58e0e715f3ccb57d5ec2f5105cfde0bcafabe1471cd0b3139bbcd31a446f8a46690279d7e9ba08c72a3b4b3fa0fb0d2699c01fdfbb167aec6d4b7232ee35e0285c0a248d056e9b669b0819e95481f9500e3b6c11628e09d13f4412196310ebdfa3e8f210f38459f1bf403d42475226b601659d7a325309724515d21c50f04fa0781a5da423e6ecb78376b4bb80e066e9ad6b23d916f88a3d12db4d0e40a7c90359daf66a7d6841f9d1bd98852adfd25faffbadef949e1be3fe159330fa63fa1b434858a4929f3b6bcfd0887961a423c64be9b4cdef9e326e193e4df60258ade2b8c9652c6ca6f883200d2613c243be73f34b701ad737e3693637fe4e3d612f6f29f035b038b58270ebd5559c5278964e37825a1f448f7bbf5ca1e99d59d1285fddfea2063d08eb65aa8795d5d19dac3e622702fa80ae137f952fbd4ef5df3036fe819abd79588dcfe53bf9012634653de5d52c3c045c278790832af6f1d36ce7801cf6fe553dddfeb62c881e7f435df69b579b0b8355ebce657a5b9822428553b624edbb54a9a82bfb26bb43ced304afb1ee6345bb4e9af7605143bf883d8a63ac5dc6b88de349b7736d26cc1e9567615e1e79d758042f50022e2252a2a0469fa6fee1f4d9b2d7537b723ed4ce50db313f8984f1353642e558497e261f2b41d4b00c9ce3bed0042550193aa26229652298404989a03f65e9032693adf1eaa319d6ebc269f43a6dd418b9a064d3ff5482eb21bf69dfbd43e62dd6ab3d2022acebea228049349319392249df3d2a0fefbd05fc8a198f1a46e690254bb5c73b1532df02b20f595ff7c1bdff6d833c5469ba72ea8c5c0166131bdf4e989f8d741cc296b57b9dc7dc6061dca1d4cec45d85744e9e83b0b4ffcac2cb9faff154134089db686be21f0bce273168c050995a0e3894ff895665a769c6e6e65c2315304ede77264e35553b1d10d8bdc953dea3c8174562996ada1f1e2e281872413b00292aa53c92133a37da68afdd4b8c88a138d7c47988b73e1bd301b87c82e3cee122039d6ff86fb4e6785a71cbd5627b9266d8f5b5be6756dde7b15b63c57d1522012bdd978d5b8ab0c61c06aeeac8e268c87b1d5459e96b470d4ea413b6063f019ebc33ebb34d01cd8143c76faa009d8c247196827aabf78a0ca15c2a53173b4615c5549ac357024f7ca2e4d4d658e271726b4991b030d55bdd5431b1f36b36eb5fcdaaaf599624de58b2ec9f24019ac3ea589a65083837a3cc6f400328acf5084d56a4b3b6048c9d846b8fc91a79f1fd6f4505aa197cea316596ace0df2992ca0395fb7625e954c6fb2d1900ccaf0b9c826a066a71ac3e39dfa574df2eecac510bab153276020b7ba50da391228e61fd797dcceacf93a47f0554dc5f2a211462cce33bd2dd40c2f29cddb99fcf49cad1b8e01098ea0a2cc97af2db20880f806c864ddeca19b8bc6319c932630b87974f2ee6f47e5f50afa4a101fc3fae1238c1cca6a3c09871e9c45e110196a37456cd8a78e5e72e15b04ca693685cb9f824a7eaa92780814fc86e8bdd733f6d5265b2e155ccb58465ad26469017aa4835d49c6e3db07db65c654e335fd64cac0612c1ca62e906360708deb88c7f819ad5ca17d97be5b58dd66abe8f124655ad53d3ecda6a85d154084f0b2ca91715808da843d6da0bcec947132f0b7dd00c1a1195289ae567a92b4750bc93e3965a5c2c2957081d1ede6feb54d4d586c2d6296af283ab202f4533aba2447734897579daeb46b93f66e45c622b3d1c875c0cff4f7c9840bc109bbb5127b783c01901bac4f1ba167defd2964240141116da5da6da88030169f88a7a9e6980968abc19e846ca16f4cdcc8b7c2f90280a2dd9076020978a484d3977b37b61811a1f9e1fe2b84ecf75311e192b694ade45a0fa702af23d3a062e118368847068088e5e906b2b44bd74fb7578c1b85a932001d74c67d8382f2a8de85983737f1751f88f80d2b9d2c79d4881d0219d0c20594d35c992c4a0c0325c65e522c83836cfd86c4bea06b1e97874b8d02d6b1faf63e9837b6be3ddc84d730e7079d66148d3f7f50b5fff59e8ddeaddc139c81ec4ddcaccb18dd90a6d398a8446c74288d5a98a0eceec172cb116a75ae850d98104c61e008be45e538c715842a03746a0170fa0eed14e2d6a1056562467ead717aa061f33326c49e282c5f27aa3cb8fca5eec4149b2b8d8584abb7286a715eba15bf554ed8360a455676ddd81b6b817f9bd4a3edfaa00b0e0c36aaac5ae8cff957888ccf66b390b0b709039048d666444a2c1b7642b3dac08f97c73864e3cf08fff82cb2ca5b1cf096c4948e937cc457f98fb4f7bd9d02a6f524290fda4997d5765827cc641ca5c8c362c3c0a62b0b836e1070cff2f59457a492a7e55259d830c5123216ee12812c952f3027b681ce24f9766870f2a4d7e82843080c8221fb62ddfbf18c69bfb15af31b97781b6da2582485fed244030011afd3101050e6714a1ac81082bf026d6ced9a10acc90dddca7dceb732260d147a5d90b7c17309956398c6c64825980b9bb46068a1316063098217c407e34f7d1c322cd91099e1266733ae30d6f8c7bbd849e49a3b06faf54fa8cca7e8306c0f439dd4d32eda90232e1694d89b89e6acf8ef64be110719891d8f1e43a0e589ec1d853937bd929ba9d3fda448419db2edb51d392a23c05a33be8805442732e740b5fbcc4e7e98b117d181780da4e10a855edcfeaa39e741dad2e1db54dd3cf6266d0061b6081811c3233032aa1cd309b098d120948167c3c492b12ee1f164c2114ce5bc1b7ba2a31b269037b86f93d65a8603fb56398351c493565b7ef56756c6ba9d196bfe250a1f894bc6967af384813ba832d2d7ccb0e15cc5d4d01113c17648ed3dd4e29bea19bb4b7b83c078f0ee1ab7583b9f1f16ead8b6db2c9b637595c0d430c23d1f85aca9b5bee00ab3e512b30f0d2a72571ca66d7f88414b7b62cfa678409318eed3dfd44c2255453e7787ebe393bd4384d4df9d208e7f55e1e82a57a54f0b747fdb683226553079ec47531ae5f4e745252f205654ba66acb7a032857dd6f05a748584c72d4ac117122b68da08c1964e19f88179b203dac27fdbaa312a9578e29a8ad898d4bdc04cadd526df57978994f56d77858f824a34bc1f116fd8709b36529a5b51f247a5fb5362fe4e085627392688e94bb50d6981501528408fa5b35740980eec330276d32571cb4fb95843d9166f01125f4782610b29199c86a6f6af84bcbc942bd9a4fa302293025ce01ebad25e45a06347d7eb4bd37e20dc6225c96972cb08500a38ae4f5c81f9be7b34fa543466a84df3c0b7078cba1205651fbaa1ccedb329392882daddb172689d924cb7648c03549fb8396a36eb158db691b617fc5b8abbc0a9a4049c24f5299ca6f2794ae40d62993c2046c4f0c89e9e0054ef5e61a3610b641ac91e8323b7a847cb7e2967ca70304754aa33dffaa4617104e88d199a55f468a36e36d2f72d9bff22b1ecc6b04dec967cc96849760982568ff760e93416402fe9fb68e2d37a8058253dba37bb8e183a079de00a358900b690c7f82a596884352d70e3ec527cd032095bfcaba2ad7ca8f5e749bcd8c6c46a036fbc50833a455176307e4ecd11f4cf45362c8c8d9b48c295a460336b0e4893566421976e2645a21236a62fc207dbcb407a50e554ad0391ba317259e9330461f47534e65a65d050a12d3918c0f24be92d286535ac1ae6b915b361aa09cc21eed2162ea8941ba0fdc690d22088c5d60166beae4e3707a71248d149839df9a44c0c7e4d7b9539c4f3748a45b38ba2cec12a5daa7a9f7baeb88854317e4a7b5a43d31eea39bf92600e4a76dea881521bba507147e783032a105b655338268a92f1bcf4085838ca701df090b46758f84c9a31af619443442e35253918d33e9bc2e025e8f5cce46fba0ca3a9bac86abbf5622eb291bc0d26597dcb3d0453061987b532c3514bbdf17ef98573362a1c0250707675a334017fe6af4eaaddb0a1fd90aba0b75f4c60b8b1b982276a360516aaee8a5f23fba093b076d916a937f2e0d5c97393f246effea134f2ebf3686c3baa402c9432508d965097033eb90897757b07d7bfc7c2c28fb2694b17b4459c1f5e8a402560dc0a83267bfa030159c5099a33a540f941d1cd69da71b39eb258941ca32d849335074659b1c225aa828f63290454350d5bb41783c08a3d088bb5a7b29ecc0c204b3c65b29094d4fe4377a5849586c52f1da25cfaef8234b2e4353be1fcb70a751ba16a8f22d2a7f6a86a1a04c84b7ee7fbfe9f6eae0a10014d39aead8f64511ed9fa4b5b1aa1e70560e4a99eb3a9559cffd951c960f952667a55e241451ea554f4afa45492d42d1b6852300d9c99bbe542f27a6bb91374ee00e8aa98d57685f09c3e374b77bd1e04703451d83807dae62df471dd98ee6f6c4687fc0eed081220102b8e83d765d920dbb3ab1f0f1a1cf92c5d0bb702974a4c11a9057c52c838d67f8588a2b038bd12d1e4a9bba8cb6d979cb20d3bec0519490629e69b8c295315868a86109043b911c6eb1f6aacaf9ea06df5126d0280194c8fcd7752441b73683d726611f355f89c4a3dbd11188173f3ed5e5753ad88cfc1042a8ae79f6c4221d133e542f8a839a8e66c40ed004d77834481d4a81c11efc66215773ce1bce342c67159e120b973c2f9985480178bf56f4a9a24e2dd83f1f06f7923150c908c36ebef81c47e57ecc58c9dda781007eb829733c87465cc2373cef8a45e9ee1376490b7f71ae634d160387b6129474b81b70e82836677b6e1547c815b2c8a0aa3941ca29c76cccc7cb9c01a9467001864d9783cf2c529a8b6440ebc6cadc22ac214ad19aa663922bc9d0b7cfb96a610d2df96b9d5bad68e07dd64027901807377c6ea0f972d431e9d90ef0f6200a5af1eed9b35e3169884aa548a64a03699b49724f447e7e1feaa9df8c57c37d8a8c62690ef7b6e4fb9951b809d94235349763b8865fd4fd381f13cdf98cb60a2e9043e942080ae90fcc753c1e46572763f6b384d59746994e908bb4950c22a7aaa7caebf1ce47bd6949a17870bab2eb4a28b5a06a7458b414a03ab462a901664d737fafd6db81d371b4bee6702c4811911f654f094aff5281c2a66c874460b0c6adadb755ff32e8d01bdf6594c2440a59dcb8ea8d514baa9a5489c02aefca96af6ff4e554f9a337da509a034ba8a776f17c8559a7dfb15921d431dde284c30f88021e0c904310b4f8a1864861fbbd6d4f983a48c6c6ee4bbf59347ec4e37948167473365069c7b33901d502b1eba12bd46c7f70fc2848bf2b3030738c3cf91970f66374dd71b25ce46d7c62952e6beec9e461e8f255bda43fba07f4f65e5bc305004c69fee73a92e8bb8fe7db9497fa3c2660acf2f0b775205b054bc40434033dcaee90d7b4e368e5eaf29b30aab53e9d698c4e1b63adac3283a45e0afeac70800050a2044da3b6e1b586d0dab88cd0a6955f91177a50201cc7f2173043d14310a19d84d5cdba858fcad59177943b455b2aeda0cc43364e4cbe0b8f935d1a005c886474da76624da21ba352c319cb1b331acfa258073c0ee61e1293e09c7abe09f5e026e74815accbcf71c4bc08f9d1be1ab0976fe653677e528e582e96810ac1b90f689b6bae64270919d43b9aa9e8ab8174d943b3373dd3ab4fae945f124b131243112bed28911f8c3233686691a058783b964413c141a0f336f28d00f35b775665c4bc3f59ba671ce61fe789c5b4d976a88768f187231ca38d17b8e543eff320ebe8c75d8e1977deaa80aa5cbf2a33e73d0a0f6c907a0bd51bc1da02f02ed1d7e91cb7cff9ef9d0b66e135a581e674d2fba74be56468ecdbd9e207419594f5e7870c16d5a19c4572e35d2eb7ebcb6bc77f2eec6ceab859fc84ffe7fcce04df4922a5acb4458a5c14607ef8f19fb8da6d21e49f8e2e0bce047cee32281764fe5336bd8de096e4276fd01618e499dcae5e62d9f227120cc9f2043c3bf78cbd4af45894a77a5a10b7c7bfd580336e471bcccf6090acf98c4fe314b9d7098a14b2a0ea59bf2cb63fdd27ff0bc7ce9e5616a58e47c105b7ea55e7b9c179feec6d33028ab51b4a7efeb1eb2b6d80e3632c5d5584b4363fedd3d28d5894f1283eaec6b70b8c5b1195992f4424261b9b807963d6fc9c32f11598918a50e4f2c162c31048696c3292648b0457a65737ec81be337196e6ace328c7f69741e1c7c70f103a45ac3c58bf3d258a929b1d9168ab2a84535eeabfbeb631f3d9ced9f6ec89bdef7ac4e329d550fd35c8f3ef28cc74fba818227a4820352add8c40474d820ac41a47db9ade47010a814f690472463827598a97013b700a5515da1364d13eefcb133219bfb1be88d2101ff6a1ed2af512d09f9cc493d7c19b3559dd9427b928b8b1f883a9ecf5b768436c7b72593bf0f54e461006888545c57b3ded378fb0176f01f138baa30df1dbedcb22bdaa44b41ae28a85104d20057b752beea17fba4c610e26dec95d09d473eeb39288391d5997a1c6265c4bd3aea4a38c7cf0bc400119080ba9a72abff0b077ea7ce80c8f589b1cc2786429b492b6bcbf5a0e617f2b13731f4a8490d5da1429b44fd7ae80ea1e68b0f5df7523ba18f77a23e5db95d3dd68581938371022c7b501facab143454d6255ae72821baa9aecfa20565ff6244b830f38e94734983af820c678207df677376172e0b88203cec255b37580e83a726294378f887636c0fe230f542e8f9835dd8dfd451781ad30b8a44a4adcc09616e3975ac076dbdc39f1bde99225811accea4cb15168215993478e7a318a5747b52cea0d0f99d8307a30c0e424ef5186cbf8a00ade630107f81c4143f311e5e3dc8faddcd3acc6ff91917e11fa59ecdece7139e3157329b76c72adad81a3d55d076c6dd7c6023095c07fda393145d5f8f66c5da63b67e1b2654eadebf5ce4373ed41441cf46c4e28d0257fef567748557eb6838f07d82d109fba9cf54192284c745ec67ac4c78a0d2c5029c726de901cf101c08bf93302bc8b5d43dd61ef48f5f9ffb7620c83f87dcce372771d4dd65010bebfe3967a45fa58a35be55bc9b13d32be5e646ba5bfbd81d78d0aa97ddf6f4fdc5e619eb21674276c403e59d397e5e500caab750f23ab460b4adfe2a2e691df230e475e80286d606937d35c5b34ee33b00fcb98178b965be42052800602a3000ad00ba937bf40c025006d01163ce02011603a018e8b2f8d422065deea6a0f1f01c9b016eea522da9c550405bf7cb4306b806bb20e42a4723fbb88fdc6ed4d88b1312121684281c2a232864675163f0bfa5c2be5e71fc723686d4349cccb78678dfeefdbe090d7b1ff4594cf41eaeb1d27a8b74744ee87a3f06c567c276548ab4d15eb401a6c7986b757273402535102dfa08d2fe8fa78fa2cb5cfa8682b4322be5ce9030b6d01670c8d1e50c22852e77ce62be0d53f22dcc0b42df71600341b5bbb819ebb04ba5d2c98cef734eaa981be22593635f81f2b88c031c308da2687b20dea849b353185015db5ccbd1022a0c500dd5bb7309f35a2cf39cadd7c7209bb0528a22b6012c822f84c3796391a63ec1659f7ce4ed370b5ad97c58090a0c50446cef765d89ea088f4e1cf14ad43a008232df45b7e93b812a616546ca2355f9310357f2c8c3c8c978e47e4c41e45614fd4a0657e66608eefcf9ef0d1b6147e14eaf9c993550a03df01c9e9764b099013643ed52aef6a635f54ebf3b8a4b21c13abb86e25531413cb3f8ba663da50f47f1bfe0730caae23d921fda2d8a9f559b1cc9bfbf85974d3cb9760a4875df0a7e43336cbaca5587bcfb727da5798808d53e43741c029746785da1909971dbb65e9bb966e3c12d513509619265665ab3019ba7634a8e4f8afe2048617cddbfcabb1ce120cded482d571c2902fcd2995e0843486b90e485f6224c775164c2abca231a339c0912a9576eef5deaf7f066bc07d466a7e9bda30056216c4649dc594bc81cc8c59295ae8fdabda57323131c98a4bf68ecd0c2b3cdd71ad92f0842927c42b5964a4a3eb587770c48f0e786f9b859b2859a2494b13ed156acaa834edaa00619347a2901ccd8b880b05db6ca2e34a79419a346b97e0df4fb3f4b001d6fea35ca5282bf8d7c72066c37c914bdf8365b1507c117fc3da5a51ee7921eba5e1d52083ce6d9a7a4e0722abf564f6a97a5da1ae806304438a7bc7c15dd23c71480a6fd7d7cfb4de0107f052b28b4918b03415b85ee14fe0ee79b1573262a83a5416d6e079e61612ccaad3b8a177c143541f56d34195733a69416800a575d520242a821d86e9270f4c7ee5805dc774346b9ff1e3faa86467488e4135d23108856c159febacc4c390b804be7e82fd2cd6e894e7a4bad8457acfceb78b6216c5b4404a33725eeda4c037a833e6de11219f40de10390b084354f83ad089e720465439a0473530c0b8b1afce7a1db338b614b5d890e15ba13acc6ae331aa73cb25eaf65b683ad878d788da9d5956cdfadac223e043cd9849fa72198bdb5caf44a1f2d0354459862df6f57be6c8a3296905b06f506f4dd1d93e8659ef2820a5439b0cb4ecb20514dca3cd3c30bb5c2380addd72d7d86e0731181038a746d55d5a9baa09122edb0b9603df6dae8fcbd67cec4ed71658f1ab6368599597e5e54264ee912748fe5b28cd02adcdf1e74668bb37c6c6fa87224f93650d86882afba2dd310bd9c251523c7015573aba91a287ef7c3918d3fa0ba623b317261cb11bf57b45b0272ce34244633024a687058f19dd946d44008126a5d0b4a475ed7c41f2197ccefe44fd98c3e52558c2c83e32ca50366b0768ef6a4e994d22987078ccd0c6581348b763cb31f251715cefce2a493111ac0f63b6d2c5263141b9085b33abb0c7862bfed481500699165fe500ac4b4c3c82fc607004819d7b0ecc3f8d7645b6378c299c34401ea47ce0dc404e08bf8fc7158f679020ad5427b29c3490495983aa5de44a0cfe0f83a9309e5575a321b3eb1071d0e79df2514e85e66ccd8a9031e8bd9ad2a8c8d48e35ec010aaac354dc7561d1df80e6507dfcc1f8d4b0945ecb41a4520ee386d19e609a5475f841eb2c2dbab7981c0945109efb26b06f86669c867bf5aab17c59ab0a4c50178e2cdb8bcdde488d6f0ddb329a57c6237b9dfe0d5e7506dbd161fd68e259b79ed324400703d7eda1555ceb106c6be703b5b13d124327b0eb23940d8be76e89d2f3dc72445f158c461307d23b65c5d53ce26c38828fb9ebb24d8780f062e6ba71d6309fae458e29a9c0ec8f9d0f294db205aeb679ee08803f13d5268b3cbc7051855fea20447c43fc8e1eaa96900d3aeab1a354da0691ab0bcbca6e3f0a3e2aa860d39c6454f1432f5f2a2296c77cf9d4c3de68b1562b69062bda148a50d650c68c269d141861427b777a0821fd85d95a03d9e53815686923f246a1be156ee06020118e82943a3875ab4681694bf6daf2867e9bba0b43605d7a80d7316470e51c7de72d2bcf05e1ababa51ba7262eb942994c0548805699f0fcf9b98ba9629cf38a07ac1b060ec3fc40344d29413f45802584c26a2e34f459ce22bd8f240a30d2b7ee07cc6d63712d94368b7b6291f93aba6e472f8191989b98e321759b0881330a197b1216c1a7841dd8725959d32fc075d9e8b6297d0279bed0498c25dab0903f52af591373833d840d3aca588c8be9d6d595e00f522fca132f9873003c12b14e896f8db3f79a71e3fe04e7dc164969ea187dca46508be78ef37c444480004b783cc1b5f1df3660057a432f0bda8c4ce6703cf1fa6151bd317400d771148b6ce768f176c70cbe969c4a4a1fc249e5f152ef9fe3175179e9509081bd70132e2f2885e4689a489852dc3f999e192bd46c7559b05b879518329c9534431a866f9ac621707fce4660a241630d282e12d89be9138ad156bc95023b00a0012f935cd61166eeabf9c8e2724014f6dd71b573325f263df9144c8cd78940582684816ab1171b226653f947ad4c828f1eb53e044448ddf125acadf0ea842ee4ec69ff1bc680c7b3860b009ed197d65f618a0a58eb1cfc16ba524f6b417325871cd1957115d3d886b3d1a41362fddc064cfc049b84ff3f90d5fe8fe32c126c2a3f378c0896689b4e87025595d55806353459a1ca4d2eb93a2738510a52f7dfdc72e395142c449337a2717c5914e193a4e2c9d3bc230491276e2dee30c3fd387d596fc2b9c5953e22fb5683c6ab6b999b0b0ffd04452360f7f6872e08ad0e5248aae0e1b4443b48a67c9373b3e929121cc11581e111e6bb04ae8d07339425d8c32b89f3a9de3299722580f2202685577f7cc6956ddd15c2db81c93c35270c177a1296602f755b19247ec327ca62bb9611bdb4f057f5f441a12ca1131403aeb73967918e6815b7b98ebe30243db3f467487089f897b30e92dcca41b67ba2ae6f678bbb63a467281f6bce8d53c940ccbec8a98edbb0236e080cbb6153e6b5c49abe28ab40c70731efacabb75a7220416611ce1238f903a09952d57aa31e35b508ddfd4d1cd20c5fdbdb1a306ecc4467a0656f9223c26f8d042a4055b52446d2f3381dc1a9d33f550c1d1da1e449902111e09227fbd27e8265a4194691b38e21596b243f5c404caa9e88111d22c26e239c134e160bafde380621b02ad1fe6f4c69224ceb931a64d3d2190f3bf2ef56d6922655715c3f5a83026a1a1b2dbd6cdc97b6d42ef0703a1a81b07fe59dc859a360288487a8fafa534bdb927a242b19674a43cb8d01ab39f8294618bebe865859baf948324a6b0a3a3c5445a65f17334748b6ba80d1dc2910ee210240bccac609edff7b84a603185ec28861e13de3b1757e053cf1935c1f6bcbc8ab66a32b446edfad247522ec5274c034afda58c37256df2a1e26c266a0e91303d9d9c59e1d44badbe4ffcc92d8730a8d9351f607d1cba6a5ec05ab43564dc65db4c312e9309e21baf8e1c10f5c24f590d90ea911afa58a84962846a84c6f120b69cdcd9ce5ddb60322754867c00fe39d08b7f73c50e2863f4ce77888a3babb93ee8ba36faed34a3ca9ea07159d27dfbba28c58de77080b51fb723194f3046ee680aebdf82816df466afe8c701bb697bb1a813ce52e3bde99a91e38d00821e04228e68ad2d1e3b3ae73a6c6ea91b42a8f33c2170dfa2dc1e74baf9d164bae38f9ba515f61d27e787f146a6db8254439944d86667f2c06db303737f9d498816b2b1819b1494b768dfbe1d2efdee5b5da0743bce03f06070f062f081bfec451999fd56ece5f1edaebd45ad16d762296032c860429c417bce9073282917002968deef3049f703711cf2d1d62ed9ef51a1a9aa242fd26f74ab985388a537d449cbd3f00e096cf942a406afd34c1a43b56dcdde80659c6d523bc84150660b8228be94cd2b899a70222c0658c16f60d528d667b43dc1e62e08effd79b8051f1e25ce8c89df7479c3343a2fb73d5fe3caad8c06c0475b6645c1469bc89b4e83c3ff0e81fc13a0c16224190491da5bb297b228c667790c4da4b9c0b21048386cbba037ae0891d4b4477f1bfbf4b148dcc9adeef29cab288663a93b962308529f48ffe24264f98f13648b0a5b5a04628ad054fd89cb154e2be6d559a37b75745234cc131a75575ae5f908758f59894b8430a190f4dc1c355f78b3c6e3f01670d93228d0c877cbaedaf722ae8e11d0f7a521fc56aad5578071062b234a299380a1d95b50861862373451ed1b8a10c3dca0331250d94438752eda0917ceb36224594e4ab964f9052725ea20bdc9c719c0e331e86b6e848543712ff3992ca288e56773caa247645484279ceceafaee90ff38c88276c026281d676915905ad09c8fcece2982fdb351fd21e30bec1c7034459cd17d3407bd15d11c4b5445f7aefe004905816a73b47a7f503a1dd4b446a84f4af7c94c0bc26b8271d0c6db95f3091d35a2fa4dffd1f41c868061de2f815634bd6658a9cccbeebe89b80694d753ec4924d580cad1b8d91c96e0a6fceeaf0974eeb040d4b4ef6ae1d7c2974f548ce3f2acd18cc507c9dd5220a604eb6f6b7ff8506d732e77577d26fee0158cc43d852fcd5987882e79186d95bad0fae8a853929083239f69f2682ff938e09212b13844cfd1ec4addea422de837f8ed93fc533c3f5bdbefe0696d062e77b32a3958f51a1be08b705605166406340eb4cd48535f4404b32b1427b5f534144d3e2b16a7e4f75aea82ac832872171965b19ebbc7a7cb060714787874dc69900a3f6df8da8edb1b6745ba1d889de219253576634f6d88368d52593adcdcb88c317cd86043bf655f37636372390f05ccdaa6fddbf89c882e7931ebe67b39f90a1c2456233cce234bbeac2fc8a817be1af8baf0470ad9e72bbe409be6233456dd55eb7d0ee886a7e1d142f694630de8a5f815b8803c6a945264fb32fe43d03aa2785ca5dbc9b2af6b3702fc44a0001d09736b38fea0b35241f25f415f18392d558d764d6c0f6b0472710e398162680102c36073c16bac8c84b88654f0374a0c138b81a65f80e1f2413ad728bcc09c79ecc4c873b3ec23d532d8c2317dcdaa1a64bfe74e5ccafdee21f507926efb868cf2539338152122314494121beb750a3f7675f8f8ea3e2c1d3f1c43e5832fd56211bbc2c2b2d419e26573d975c82e0704bcce8e62875631526eabbcceafa70591d779749769ffa19ffe8956b5325a9f33203821cf5860ce88d12fa1956c1052728017af04dd94fd32aa7ff9664a647af01401ec92850db5c6e926e544789a36bfb6cc1bf994206b5a10ad198ae607c806763516a2474bf8bd6bf9a37e7224c6efbdf080604ceff5010a063d33f4da1c1a8569c4e41e55beedfe5bfb8876b7bf29114ccfaf04ad1cece082784c9b66e524a29a2c3253e85adbb7474c4f8719cf20fc2e793147c632df598b30db163522587fe7fd17aa68d6caf2a4087715e27051d067a7cdd725da2b0f69a7afdb650d4d4ecd0b4b9b721da3fa482f750c13f45d5faec60b01d21cc63384b9e134b216d32826d6d2d3fda7dcb9d019fb172fc51bc03c800f80fbb0e787233904780c00407ad98efaab6468d7d4f3b1a4b288fa09d6f93e6b8a8704fc7dd766f83792c602e333949e9cee17d97feee6680bf85ae9621fb7d3acd3740b331aae00db2b706413c1e530de1de61d862ba7962e667013dc27ce7f1297025b01160a02c77969f7dfb212aff87157fe38a97a98972f291326776f27139fa09bfec1875cebab0b6bb9f7216f318a7aa97295417366f121f7008381c2e44f99f26726fc3e6c5ea3bcc91d1bdbe52a971b943642690bc6362dc675f89d43eb7e6dc0b6796193535e3ecfe4972139e9e4ce66b2da9f8a4d31bfbd9501328077b3a1f81a219c3905786ffc3c764636381635b0d891bfd38d6cd34a5f417913f12d28396cca741e785370987c390d7438dd03f606e169e6f839f46cfd0bb195fbf288ccc66d2823874d6d6e5d6d8cfd5448dc7514968d0c399020a91986ac99608b2ad8bbfd6b366593316d482f01d8dff801c66753618fa63005e8ba9ba2b2de40736a2c077631e8ff050d9cd60c496c6f93dcd1e0ffe2dbccc4a3a9d91f9b073f7af51f518ae32a52f873fd5af1bf602e72f641bc809b8e21d2ae22b9e14eca95f46118dacdc97b23cda9269f1ec991ee05cad0f8509b086b779efb8a8616e1c929842d67150e964cad36707b2fa1519a3b1f39c4d91ec0e0faf62a7ac4df82ac1711321c487fbab294bfc87c8f9af15000134c877abe7710af3c26612284a3ce6c2fe0bdf454aa8a820c731504a17e3590226d2c92d130a310ea009d3cd991efdc0dfb39e3e82515a3b6350e886faf1f312a5121c36501f603ee9803e488cb6aae7113d9e23c62563648f8558614ac46c56764dbdaa0353225ab1b2081b8edf109e76ac87d027f11527f72cbb5c296e733195f43fedeb2ad58c839c0fdd4569ec2b8651e7399065cc00111c8e8868e7c00bf0e9f92a586a0930d91b5dc8962fd368d1848070f9bcc8582f3608e2b4aef4d80c9cd3d365c109592442a52054bc04fb3db0d87629c306b713852e19e88e9708033174d7c15c98736f350a84db7c66be1b5432798b701dc8c13aa3ab26e8557ea884ce043358978674eadc453ea24586d3d85a3ecb912fa5617ef85510d4fa7ed5fdd203f2d706650973054032733053f206359309605152bf99094951e584967b2f9ca5c19ab55feaef62592f908ac670eff231d688a2d84665ea27a7ae366b7f019a2561709044f8ff74a156b15192c651c001e2f36ec41e80e10b488694928726f137c186b8f91d6b5402b5ccb83cde25230a82b53b1e1d6c8d3286263d3eee21e894c8a337cd03882e0e789c68a6e740662eed5552676afe819872b93124daa4476301b09e21cf95a0efd452411d3bffd11cd44982aa0202c147b4de9af287c6459d621d9bb8c7843e3ec18589d91741150ba8eb9ccd8163e8e495111c53d0bffd9ce10e35cf1dac44f4dae9e7a3aa8303a487dca4e569db2ae8c1913a3cfdd5acfe2475795803aaaba464247ef4bcccb81502a96bf608955b792b0dd01c39450ee7146638414d09194e8a08820449b91abbfe6d08bc3b618a52501b80928cebdccfa4ffa8ef33efaae8afc05b136e09f59ff52ee149003b9de52489932d09b86b0d8ef6f455c61cf606890ee8e701343a2a419d95d90a60b816c44f1ee02ab15b98f94ccde2d823a3b1ceed794950348e7cf1fe88ae0dade25f5428f66fc3963be2870172b5d1da8b2f462de0a18d9da705de91aa9469b9c6b5858534ace902d290b0684f38490c9c08875c82c868c19ff115c0eeb20a76bf8f10094f6820705928b83d400890f01376456b0034772e3533c8e5780a544c1deafbf1d240acf404d8f9e4507c699f7b784aa75515f493e778de4775d628fde2b8ca71ab018931156ec7a2354d9eb2f095b53370e2c787c64fa3c0ab6411c9bbdbbe76bebd8c32fe5f56dcb52259a1b34afc00b20a6f4c173b3e2b80eb42bb4bb4ff339fc9935447525adc0c80a68a4a44285738d77d369786dd3eae8a211651c696a03cdc58d15de65a3e7ca9b4aef3bda85f242ac2815bec6c7ec677bddf7f99f5b56c668d8e8a3d57ff4e3b1683b796d947107dadd7b902ebcc02d5a512b97540df7d1c0debce177da08a5ee6095a4e0a3f969174587459afb07c47de0dde57d06c1f980fe9e9e3bfdf89327199221c5202cd71831fbc61baa9b9d0b100a2152cf381115fb3ff6c0fdab375f2779a5897b5ef6b1c403af89098b3836e2dd6dd2ec11b75793baa379b55775e3afda9b908c98fcbe3754128f3b3d5f1de169a451f3e4cac2760b3d99e6e1b3432177761a828a2f85f6eb12903c4d36ba286d2540f221a716fbf385897fb884d8e5f2a6b9db33c7d298b91875d04c9767dff95cd6840220e3d6f0c4c69515f0b91e7423452f9c485ad0a68e21a945242fe5343ef175d8112c1f687633d6fcb318d3b710f9e1d8dba64fc833e712637e27ad7b76051373018134198eab5670afe6ed8e4a85d633c1c53919d2d9c0f3a2c07498cbd8c56a536bd4de9768e05d4d301a70288991be1c1e00425e1a8216fbd8bf8b07a24151d0af0fb48f2cc929cc65ee9367fe2d6348d8f02a76d8a6794c154b2ba307af93cffaa446e140e9f49ba015a49c3b991fb4cb4cfbf5f230b2b37caaf5f1530bcb3098c8b15066190289d0ca0987fa0f8a320f99d958c48c35cc134b2463d52a82b07478079aa71985be0575e4d73b02861e16ab68eb945e79ef1cdf9145c493e49e3221f1a182429a5ec449ae116face0b964b2b4b161c36246e7cd5ecacf282b1163ef2566a566512d4e67a002d91f1c2a33575161afe2283366e573533adb1a2c6e1f3db5d6ef58e4b6d64e9154c14d9565b21d6583ec4cfec340f8077e49c0c8cb70955c6f1a3f5a54beddc2412c5534abdb938bc95aaddf1d4e867992e8f41117940c0727c0b5625d83be79445bd1d4122a4bb73c40ee8553e268f5612c5177a45084d969052c0ed11a8db1cb01e98ec4d580820e7ca04301ef9bea292cc8c1304c5fd621750c21008d04632fc5c9d32dbd10799dc035c98cdbbe4b6fd9561cf2551ae4c6dabc8930be4e23cb7309db5dd0fb1e2ce05ec10e3d0e319b24442bd29a6676bc9c5679288b5872a2285230265e05e1ce621229924a67da543e1fde6433913c4446a64872cc76b1cfcbc885023576e2b539ea0686e1431ea3aede7b84933b556f7adce01da781c02f92c20abd89500ab917bf47701f4e63c9b38c643edcc2a1593f3c5af7c52dca301737e59c0260e306f14813cdf7e9187a424cf700d887116a1dbd422fde1c608e57680c9834749c47d3cf48ed3ab539d6f81001f7741ddcb2d5cd448d1b3ee9ef21eb973038f94a9eacf5caff608aaa6282dd5ce54594e796ecf0728c72c949dd01715cc16cdf9553aed1c32f096368d2e0942e0a7038cb19b410095012ea81cdfbcea3cca239fc8b0a9736c067616a10ccff50ec0acfea9ac191fe8ac57b893e688ced6eec0dac095b2cb5cb15a781414040a03290a9a4ea1f973bb376d659e28ee9cb38430d9e5b98f474c0f4b24af138272b8171918092334e84f88d224f19aca005fc08bb74f135194f5261a612d456696dca15883ff9c6a59457dd1e06038d627a8285b80219b653c4b7f58ae6f08e4bbbbb06a3b8ce9739a7d327f6f99c751c5833129306595a6bf743c71dcfaae5cabe78c528f0fce96c85a2d5a9b9f2eefd603d936cfbcbe79614f711df1be054e421630e2e7ad07d2107de58d680a026e8474934d20117de9a9fcba27fe432c2dfa204321cc687ac464b2ea80dda7d803ee5e8012d13c0b56fff3f72bb6a8e23cd856af50189b39ec1382a58baf08493de224da0168062f12b70129002949bafcbc6811cd2b9b26d3e0f3190cf399a474b249b3ac2158938461ed7c330d6673c8411211c026c93484c4161b3d31831cd1b54427149f47bcf034e32a5d0f2d9d6183c5ada297df0adba9cb973e5d1858b738c29e928c25bf16f0daec62b126383a3af886e558af0dda7b9cd2591c90e9111c58fba362af32e19a4c0f109b1d8fc3c32d269c47f8da2e92c42941a57dd0a31c5f79571fcc990d96ae1c6e3271f327a2d1be300839d9a72e307cbd4a1afde52714027c7ec4fcb1b0809e1e9d3477d5e36092d638b0ae92e23a2baa1685049d2dd019a9c1810045a794add7b4591cb6c2192d7a47887784bafd46d3864f470d13d9b42783918db82deb348454a51d7214a14a7fda223497a0e2d661c4e9d294813291a66430389725bfe5c629a3b02c4d607059b692bdebebf87683b037b048f695005ac2270d6be5fc03b51f72f9e34d7694d89f84ea70039e838bd16ea2efbc38db221fa90ff2390fab907e19cedfd9803472b04a198825b3a173316b26e61626c1d202d69e190b4f47a227fd513a1f069a5ade04836bf769c0e830b111895b99d34d85cb4d71ebcb6ff0138e8d2a31b372c050692a0942a1ad8002014e7ad646c0a2f4bcb82922320cb29ed33df3246c06f07fde05f290fce390e6bb9c668989e477b22a07c46c8132dd2f696a6dc37ff0c86ece626f5d61d30553cbc0ce8527bbd1e4de7e50549ad8e06fec0984717c5df57804a6473fd33e967bed04ba68ef1d84ba992b3992d7188b3e33f29b7fe5e595990a6938b8d13dbd1eca535e7628fe9f19dae996d5acee4b43913adf1c2589c1f4f9f50a47ac7237f47de7e9cc9fda90c2a73ca42092075c6f1a03e9651defcf98961a1ffe373d2e563e2765908136ef1db04cfe98fc535b17fdbd14efaa2fd40961d38cd9f89db6cec88046f215801c7790c5dac912d54e503ef31fc2e76e3487dd8cafcf12944bff6814d7997a6f94f75ffcf27eb362e98f85188815ee9132920cac4be258f8d0adb83e991e8fc18e28261c01a1ef83e1a8f1895e9efd24aff1051c758cdcd966549d842923757d98c3e3eefec02937b0203cd1fc4b9e1082f346d0e8835c21bc10f5ceb8166f89eae3a50b769d3405240c24d28261a032fa32b8f131ba95e5b68e754f4f8119db99a92ecf03ae4f88220617b683adf8977a2b4327def407e83d1586b8f4826f4bf96de2b50d49d3d5cefe830e01544687e3d5916492bcc1c9042355e3891752a708088a6de9fe97f0a291c94f89e0dfcc8dba3c420f687efdca5943c53bf79d5277d3e591ecb8dc7f88e852cf7163546ec91f88f1387cafcc0623f59b2e0be4908e43efaf647429e5bdf677ed476e31093af5daa68a553dfbf003b2e21364eddd86346348024036b6b2bf04a418c5f0ae27b859971f3e6647274446fdf6a0d0d3b39557b6abb69bce0c589f038c3c8437eb8484e581cd3831b317ef654242a37ab919ff7e0fff6f57f9d72587e86b783c587c09c82dc8a564f24b97caf34e1f27903103b7779a88fb806633b34d9e7f88a2a1a2f76c684a0b608c9dc15e88e4e600804cbe000498a14e5820c49f5c73f8f93eac21e4139bedfae0704c3f9250df07dc00bebaf08077a64a1f53a0a90f0fddad77c6a3bd11f02ca5723d522b32e9e5ac44631e446e7955747226f03a3581e54ffb999072e241d3b0c464b631713c4b88518a0f7f59653b0e9ba6cde0bd3cf855d174c969cfa1479aed98ce91d30270d97a48940d2e587da652fc848c3ad252e625d6923ba07ab0cbe986e61b5bfc366e4f20d0c3cfa03e30b6795d28606b372f735e2ab4ca20c7709fad42723b79b84cb5fb77ffb37077e340f55383879b2e164cd40d26bf109a9b70d0a60be011e870664ed7b6a501c51d2fbfe761aef7f8259fc8f3b8bde1856195ed861810ee05f2f128e8e5c2ece38985b7d7051ae93a9a4b581ff5d46dc8b25f43991c34b4fcdaf156358e785777476e329f4054bd1f7afe73af27cc35079ef63fbe162ecfedd01fb0947de6f1b6adecbd8783883cc7ff7d878d883f4738fc6571dde7ecf80f30423cf0f3eaa7e769c7fbe3ca89f779d932bf70db624b5dcb2d154a537db3f2e4c632fbeac59e1d683a4ba1a96ed4b8ea94bc64d9f3275033bbd1d36d8e6f7c8097b6267179ee8d3aac98730edb30ff2c9d9116c07d837d5dc5712edaccc2d28aeba3f999ab14839492f8edc76002be693481fadb2c4993477a0cb553ef6c346adf8ff638de7cb982e84a4c0ecaea7df146d196464775176fce32564e03f39ee9bffe9a7eac3d62cc060c6710c7c44530c77426ada3edfd041deffdfac08ebdc62229f01f0f3648f13dd6d8681a6fd8b699b8dd0fe000212d11d59c03fd438cd21386bfb30b2f06ae911037e9f3c3d898191157edad470f33786d7d5493886674269bbc6c80eddf57d258b664c47c3c89f7c076fce1172e97776e84e444fa32e3126f065edadcfd0da7b080bc6fe384c07f7e133a7fccbdda8fc733622457d6f53ff6dfabc1d6500282e9e521ea30453d777ec7e121981578c983fe1d005adc920312f2e10df64a28dd39bfb04cc609f6743e882753bb1b83b29907f223452f9d770055f1cdf5f8ec052ed8f7f5bf2a7c29d771aa793a41bfed99daf47d5617e621a8d477f22502fbcdf8667a07421bcf7af8c9ebc2247533b28146235357031b7626551ee3b64bb5f5225215a8ae2a357fdf44b35047e7bf15b4a0e2e64ca5f775ac34d2d68d2a1436723e8ffc836ec1cc0d5f31c6b17277a26fdb80a23076dcf631df9fa2d01c2d115e9fb77bfae9bab7d79769325edf330f402d0b0c954e712e0b281ebc362125b3fa3f0ef80e740eadff522f9f44e4b09c2851da8ace5549440cf311b7349b12aca44e756e1e740638f7365b63b36875ecf3a6f14bbfa314fdf1835e286f71955db5fa3a7a02282c574f63cf6d879f88378d4d0dc6a107cc5e5db6a59e223663bd075e35b59aabb0844b1c39cab44611afdaf2c936810a9c8ae3f01e0f8d2f1cbea1259eb37b595f013875f9b0ae1779c56edccd5ecee8c86d0c6cf3d788ae4778e250225e9f522387edcd842b0acd941da684d368577d999fb1a630990dd18fc014e7fa064c83120accddd39719999cca75d2967daeb025d508b41199c82e4461589c3fc050d4d198ebe70d03b33c7e2580a47fd5e004a318aa9ba0a05f6665eead64c9f89ef8c8428d14142b383b0d9ad67cd9009a57514142e85c292cbb77f724734b91b422deb0c148dd3a13d7df414bc80bd6e39c6597830c1d4b91317abeb278d6560e300a274640c0675de89942997e163d25234a4bc10413a4b5f1862dae6fc8c2db30a1f66037276468262f98116d5bd2bb5dbf68728b410a8829af9e9d43702fa79d2d8878b340f7a9bb5438f377d235bd1f21859b5322bd2411267b8e02bcf453335d2a084567832d5504228a00748ef02ce08632604874abc18fae52163d1b9433158f7cc2e8757cd2e5a853240fcbe6ada84d0bce44bf482953c5e88e56106c9cf803cb28290640d1bf47582e22f880fa504a59b505eb861bac68731abb31f390c62003bedc70987b89a3e6415fa7d2d5904d79fb942f6e96fc862c209456fb5108390258d6733536b0d2868171ac6eedd8fb215432f5fb3ea7704db623d4bcef1e29996feedf5e374e349dd46fb1b8d8bc97056ddc3186aabfc6707256d8df4772803eb468987906ccc3d2d239e9248e85dada9885f77c5ee49759fb72aed77d7ffc93ade215a76a0f3db6f892d06ed4bb88baa7c1606a014f933eace3fc7309bf9b7738f31b0d88c75921aac018b96c83ce55a6b8f60f1f2887a7fb92aa8f0c1c08be401545e616ebe847fb90d13ae649eeee862141d99ae17ef53b7a5c03c7e5728a793a8881288c384d903b1710e7931d3f49b3d526999a8009f5ffb1a2bdb2b7d6399233ffd94e72a8835c46fbf867b80430f0977f3b2714dfc49c7b1daa55e3331d1cd243fdce49c69d59d76a140d9adf81bfe8cf1dd26d70d4cc8c755aece0aa35208c04e6b01c5153da090cf00505a6d73e1353147e1cd9b3481266ec0c06aae2e215f6e4a95cd02008bacffe163e96e044287cc4dd7362a099b457b990b28efcf12155dea0054b25b40083a56466284c4279ace61f53fe45db4127001f0e5a62e2dc6dde610f7e081fbecbd502173e050a54827b15f67d8e8c12cd09af3c51b12426fb3202e1ad899e8b6f3b84e81314040f098c2a79b152f0231be6e512cb2be4139cb8929b4d7aebb74f8a5b199583077886bfaf04c797d29d9f4121e34126da3a671ab51ac65a34375f15d9300e179f465d7261c04a52bdb3b7a0844d03e892466df408d54e976e3642824a16779a23c51d81893226519c55488598425d3dd635cd705747cc14a147db608e1b6edaf842967a06f00a8d33de65884a63c7a2caeccc7356ad82a53614a646b8cdfca96279e8ad7c3e20cb2d67098094cd096f540d45002f24d29ea8cee1cad018b3de8cc782206fccc441d01362aaf2500de7fbe4c61ab67dbf91bbc5e05b72a097b2b869886216705f46ddf9440e5f10f1cc9d4ebdc94f4602819e70a1aed03c2053c919000f344f787ce96becc3889a9222c66af178443dfa853ca337d3ee2ecad78f1290bdb93ab11f123628a4c4b21a2eacb491a0553cb8747da745472e6c6dfdd59a1690eb61cea1e5ec661adc8a15d0ca9b68a296d24daa829a9ba3ed3579fc8f3544a5a8f9474403808aca076509c385bcff07a96ecdd3b0b7c797d0660d8de4dd34e62aee8c1c78c6281347a79f78dd11e1a0e28b2df4ae54a2bdd8c16163bbf6e952e2b6104b8b7ee77abccc63d63fb49e124ae74aa817a69f2ec2fd8fed2cc7556017a1e75231e06bc286d28f2a6ba3b1deb5aa4b861d2dfe6c1fbd4594e1d28d546ebd392c70c5ffd02afdf6dba57973dfc2a318c16a4b9f092f82c76438d672ffce525ebeb9d53bd4d62a6da43ddfdb406d0e4a21f48f8c095924ba0616aa7a28f8e919a9522d20ce3c4d2ac1e5028d049fd1c795b8cbd082ca6b955dbacd11569e2b85c81e84de58e52336e4dea66a660749ab516621046e7ada938d160ff2cd72a908e3e7e7a3289645c4599d044b19a466be9312aac1d6ecb12b0046a9c6d43325e6d1b68dd4427f4eaedb26365f546c41b6559787e40d6805e88b85d68c938e12128e1560684719cdaeaaf47550b7e55c92214e6ffcad1a224c30e9866aeadc18b1dc86a55f2331999c4794b592149584f9816cbf5a822e38ccf5d262f011f8ab79c9b0cebea8d0968363cb79035938330f8955f8dec9781293035c8651a741c1cbfb51e792019b0ac9c172ff262d4960c3eb8eb7e31e1ecae68fa30118a97be49c2bca4caba4b58766847dc579a9e1cdf7e044b09a02600e91a8582cdaa09b865da52a245a4607cb929ab45ff409445676deed0bae63c4d0f2dee72f6beabac0350838c45c6222438bd7c557bfb96cdb31de92e4848bfd8471c15654d9c12f5a9c0c06dc9bb800fd7baf576b24a35eae88a854540fee75b71651154e554722e4966959f423fe32d10debacf3f193857a74223cf19aea8cf8bc1d8a0e667b7098f2b9fadef1a45555ddde78d6cfedcf1b08b58b2c98b79658a0164cba0641c1bc77402e87c31f3d4a536cf52f27c7df8576aab85f503b4fd974cb108c1402a8734300389edae38bcb84d9e8a03cd9e7df907e9bf5f3d3fe41d7fd81bad4d46924b746575e34e67fe04215b0f1a1c62364e02737c70382aae0cdb0f48cd78444dc2f20e11500a32ce9b80b17683e1a999b87e404398492b6cd819e5f8b27115b40ce83b4803de90487c1fa4e4fe2e4340dadd6fb3e16d173b3d12e8a64473ff02f7233a3b1628f9299a4b268f7be2cb6953642ba2e208c513a77911ec9280faa1d04db640e1c16426f57b865ece36f846d297eb827392ed16af357735059062850fc1456a5ce61f5ef4915bbdc17b0976b70319f26e536ff73327bb599bdcb9eb86dbe89811591af67b4800c181ee6d3ce2c2dff9dca0c641f060bebe1a07d5887086d05600bc66362b67de60a4bdcaccbc902fd1e674d33eb86687347f19f189a2dab7adb4c20e9aa0b825391b1f232f6b7c0a98048017f86e171f84db5e53436bb0be52b57abe8cc2c66097b14b81dc8ed94964ba0d9d279ae5cf654252574eb35bef950935db50a49875a012c8561584d8e640d55eb443c2d13022ecb6e05f0e68e333c22c97f4a7ae41450f21373ae65e226f06f4f233708c3d47fb79d3116285e7fc8d07fc4b333e58dad8c2bd533c6f3000a4aba528351753c7ca5ac1e417ac202ec9103cdd12ccac03c68fa4f69666a7198934ed740bce478eb1d9f6614d87726243e584d6311a2ef43a1ac67905e344f26ceb5657c37ba3e4339713aad54c5c20777d0b4d503761e5d42398fa122bd571627480f259473578d78c9a001ecf41ac840ceb3122fdf8ac0fe2427eb37dbf434d154c56cc6ca079a0075b9485aaeaac07ab86dfac6a424c8eaf8a3e533516f72aba2f644a4a544ddc896c7ead0a5a9575577eea90f93f4eaf3f7017d91366cafdaa3ceaa189c00460ab65962bcd6bce356fc07832a145586bb012ef519cba169ffefc63f1646b53cfe9e2ec3a2fd99127f8aa71d855796a70a51e584a65c184fb97976a033fd204b614764c7e636875aa4501db56f6276e39a6c6f9bc66be28e44b6858d2c28e3927c714e4db476244e78d51de447fdd37535801e629f7df836198bc76f37ddcef201a2ce38cd5c520560bc1006d1629d9c0b31bd51f3131f699697be17799e5d24dcaf3eec2ccee183c80c49ae42c046a6f44b0b7c0e7dcb28fe18f9d910812316328f92573af628efc1b9e4c3e6b4fe4f2353e5b84172929e099e1b2ba48952ddd26274e0677c9bc40e9b95a46f8f824e5fcadfadec6e615411edd6b7673696b9732cb886e20b9fde6eefe6a06553133cbe80cbc7bc071e71c58b5e30ac09cc8febacb964ef4e606c91c2bacc91f8700ae0c1fbcca3fc0ca4d7834facec9b98bb7db763b9c6222d45666344e3d05774f9ef210442a65735a16995807b7c255bf46a2a37d519ca079b188e8bd266c9054869bfe9705952584031d6a894aa41d39931695f14c88afede6db9d29db16d546e67d99b9de0eecf9435f019e2f97e3205f94e0b7846bbfa5c819a52d7da627664bda0b5b73b8a389275d70bf8a18c8224f37c4fd2ca7c0f453f727a3f58c53407d46641694f5c84b83a08e01f7650eb55231d90602983c98608d85711e0d384b2a596937fef9b50d8a90efab6a860b944570fd60892694094c30d889824a58e84584148bc5360fd309d8cf825d0c511189e805813f5c53197e7d229d539f28a80140a606921f88f92c91493c076947243399faef6d27c98e8d3baceea3365f8b572056455302467003215e7bc25b22a409e5c26ada6aa778c7a2dc8215fa1cf9989bdce7612a7e1c95b83f412fc74c5a021d37b65b45e26c7f406c1f6fcf633e8d63cc6de64168c248f572c9a76d43f833d5d025f5dd208023db9c9d07b2db79ec9a1c9b1d861ff9d7f8b399542e67837e6f3ada78e215cf07a346153efc89ff32babf9be6b2c783841bc6e6d9013cec419ecec478bde72d7fbd7ac1f8645addf6c61e275d7908863856eedfe749157b8ec9b38819fbb1f5949138a82bbce1c2acd80fbf68f4e997360e52e3357c644afc1370b0d0d045d8fd656e37d9dde84603dc5093634e442b02e57b3c2e4cd7d50b40bd397e2bfde0f1ed95fde2179cd9398ca6f82d05b529eea3fb69330fd5b630cad3645658f301ccbf7580d2ff9dcb7b1fbb007e0a13861724a0f63ade18adff666ed809cfcbf056bd5f9f8e4a039c23301df79142366a53fa4cb8775d70ff7508ee819717106ab4b5aace9680b636144f3d1a74a2da63c08fb7786c5faac9c52ee6050b6cd854a0721b1e486f0f5405cb642f136624a607ee43151c982bae53ead72454ae080ffaedace4f9511a03d942d903cce403e65c80a15097cd13a1aa25c500463e323be771b2e954571a21d651c410acfb5cfc2ce423981d71a018afb446a74ff7055ef1dc2af39bdc4a75765ef542d54ebea2c58734ae4801816dc726e333524ff1660e677efdc3a8fa497e2009dbf95e0f1527272d6f880f621597e31939c5654b83831c49ef0bbc3d10dca7d61be8a4571af24f5b7a4fe4dd6a9076f9475aef23d8eb21e3cf062f9f77e425618f99e7b257f3b1f8003ecc1ff63ab98d00b1576bd5e7fa806b773d3af2bcfee04bf1b0f7fd277eab767bfa873d047bda93f80af2b4677767d3d3de2138398c871ade0a46ff58d7bde6fc18c6a02fdb93a07ed2b66a2682ccb76aa873875b98c98edf031dc1f058a2d8357c997eaac7f74367aaa77ab0f97f61a91e247da0c51e062d8a296d5236109bcfbba454fe0ec209c119064178688235ab4d3ed18f4266a23c2dd7f673fa802f2c1eb747284d80db8438b4def57fc5419acf3a1e4c9ded0de409eebef9f89a1c16c7086df3f4d87c23053ed0a4b5e6b77e8a0abcbfc321301e5c32d123549b832cc530f610b6ee5541eb6deee35ac0b0adb0bdcc81b7dd43f2f558197bc5237b1d57bb221de8aacd6aa2acdad57faecedceb3c3c499b4dcb7f943c8ba7125ffc495fcac88390c552cb3ba904a1d8fbce6155f8e96d50fd5c9e20c0ef3b438c809ce27d9b0b242ba085fdcdc899af21bf8f7f231aee4d3d0c8ee92904d1ee46e36c81237ba1c251c789fc2826a5ae8bc0c02eb891f9f787caee665e55d7d9352d37720ce6e130f9e4797467a4cc77edd0f39a8dbd320ee7c8ed8406891e48f41ded348cd3e8412b14fa808a24dfc95be7f4fe5bbc64c418bcd15bcf8922f81ff1cbce6c180cf2ea76bca783af6e4dc7896a381fea8e8125c6db8dc0954e438ed6fa8d88e2a08ad4bc67bf63f7acc2fed40241c3d687a203b83f491d68048c2e48ff08509260e505b46d9dd1db8f712836aaebeabb3719ddf3f5165ce29d6f05c5ce87cca349f831b100319695e5b81576075e25cb9d87e0f07b2c041c88751cfc28610c2247caea61c33d321aef04da5ac99ec31daf5f177ef352ee334fa9079ecf13d54dfe3b517d068e59ff750ecf185b308bfa8b7af48c6e8ea2ff3d8b369ee5da57215191e8b8bd56b876f77ec8eb689839ab5be4da41642cd4334195656de5b9870b32967c9c49b5a57d1f2c33b3dd49d89fde64c671545742bd97c41ceec30abc7d5a610bc282187e1dbed316ee02bb31dfbcd98d3fb506b8e7a2b662d00e387fb19449b645cbb227e0b9896bc629278a526d0af4c08e203b638cd93a4e1c94edb9212cdc32257299665566e0985c60b86e98baee1180ae70c8c6aff9a0c2226c204d304b6e687212ec3534205bb3b9c1de103fc85ded9e62aa9e425619d8411076ddca288c0730f8f77f54910651c4179daa9d8c2015ebd2d314eed1ca3e2bb258adea8a00c7edb70c141139f42708bc85babc4a1ffea4c43050fde3f4ddf2f2e403a7e2ebee0d1a8f1e2db2bfe74b151fe646b0d9ec024287a5fe769b210dd74a8b93f18c497e57fb23915799f861ec5aa8e54b04bc25337652702c6e3c426de60ba5309ad1e3a50de5bf7809c6e2f0e5f609e27e6db7db43ccc5048409fe0cde4bdf234b2a1c1bcb519d85b5928effafad45362114d44402b35846a29156136d5171577e290b560bdaa64bd0467e847581efa1ef971ef906bb77c877ae695313626399da69b438a2feea75678845c6783ac4f0812b847dc463e8227caf040ce9eef339af9dc6df13e4d6080085fdaecee99178735a2293dfeed85ee732bceddf376dec518cc7917c708aff77a64da6007ba4acf1b6072d40c7daa6a429f0a06f238cce3f39266c4ce3f2e6430c1bf260457fba742fb7ab57f0e18d8304fdc2204197f207e5b18e16a43f9ad9b2fc8135782847f8a6374ab4b8c71bcbd3a989a2f718ab0f9ecc26e32dcae487f443ab3d58c7346d6489a7ba9a1ba5802d5c6fcd374b0c6b482ffc2365794692f1792aecdcd436f819bed60f7e7b43f36a1e787f696ef1a26b76e8bbf38cb34790862281734f6a78319acdd0b9dd85f859cc398dd42583fcf640ccd8423dfb36e69e833535de0631efe698a3a6ef42ee88a4855bc3ec9c59fb442285230c2a5cdd92f982aec6d02149e3625d7f9d28bf7b011fe0ad72e94fb676295b465eb9696df23ee3d24229527e82a349ebe051a1bf7c085dfebbe28f72c940d21b04e64cad299df1d04a847b7ef52e0f9d1c6fbe8be45c3c1da946c6b1f95b59564d98f0c115331925f1e34089870c0dfd8cde3f69958bfe2977bee090dc9316ebd3d706542e335503b45ed7914053c83796ad674eb6d529cc1ed878b4f4b4d5080272e556f1e0f58ecb9d6bccc4000ab0322feea1ea8e6f6ddda64ef0a6acd4ee5baa3e670a8ecb052fe4821c3850473bb4875c6187e38a8a22f44429e29094cc4a9debd821413d71385c9a03a2937f49139bc0221976b28f76d6c7c64497710f7adb2392c4faa06f6be96a55de76833ebc5019411ff436a20e540800e229e403e76413986fe8844896100cf6e18a8df0b60aa0dd29e3ab662fafaadbf5cc0b9e8f7f2bd35c1a2b3f31b0d644d49bd98dfc4e984bb78da6b014e00d1a2152885c05ce6986192850b760dfda0b9a0002a17f7b81cf8a93e07175489c141ac6781938113f1ee9f69dc2a6f10a1ac5a47122c39e4e8bbe0a7afb3a2471b22bd9758285c486a329202a943468df706c12965afb69fc3a2e7003dc816d32bb016189649f83b816d8241439ef56f56383c673a769accb448a3ad4e619319330308a6c69cbc63345e03af9935b33a93698a42772b567e5ecda7a08fe965b7ff148d3b5d908b0feedde1b5d3ee689dee3a637ef697f084c143631be85827df8ad7340937ec33acc1ba3a8c9d676a87e08ec4984b32206f2a4135b08d297cc6c9da8065b8474ee2920868dbb2e73072bfa73873b13eb9d34b75b246719e8b43c29eca7b004925b00637102a0df24c28c61d172b82db7065be4ce451ca96269a15d8e10786a3a130814e24d7d258f806ff65f4470f7514e055fc215cd913d95126eb1bb3f33e366535f55966d8a807191a49c81fb8801f48825078f8367e88043e31f13e231d8a12dbe954951e7de8966fbdd2a58554b6fdec5aa81074a71fe4d0872a741a8c67bd14f0951dd5fd8e81e6d982e8121fcaf069b0baafd44355a9eca8cd0d4ba56f85cc13ac86023507e88824ab47243d9b2a6b61980441a25b68ab2033b1e2190b2f34f7da6d426b3b82057be785b5009db072b49d0c3dd26c7b41e187d3f54d4bef15e30f61e85b7fa308576a94f8d1ab0cce1d1abddb8de350ce31616288819f956da98f1a988eafd589e8d5f4d78c3a3c3b00e9b96150274bd9f5d955c334572c82229add721ea260229b176e1032df930f0286af44dd342df1b82256d514bafeaa9f199cd6bc0beeac005c590fc182c6382ad786374b8d9b3c8f548e0e47992c0297b69d482cf5cacac7fc74542f26c4fffe0f6b9983703df67fb07f721326b2db7f3686c24da082556247604aff64683447cd6056d91e0fb40a46ca7fa9cf60c07a91d720110b73def60ab5b2588ecdf9a02f1839f00fab06b853cf529d99662277b023cb04f7dc9f99555082ec0862cb427efcb1308bc5cefe1ae72b2265143fb46cb1724b97827216b9300f851d688cafa4adfd34df0293f5d5bfbcb8552e39854bded8d97db6cda8b390ca72e030093a5565847d79b9472f498b70166cc1af58dc8fe2ed37223dbdc16eef9c631d4520252a13f95636abbec72490e90ad63b59068dc452970a7ebb56e4871d50d74827a03f2d42e3f54b8aa80bfebd2b32dde938a669e1f67ddf061483cd383d42a4eed567e6d7ec359124431bd1d5015cb6756a18ac811bccacd40b0c06f6d5d440c9908468128f9c476533b1f4095aab26c52d067a1d2aa40b6daf5a0599edf043f2e9531a6f21a605b5f2015e8c4b03a0e115bb386384e3dacea4bfed26c2f2d7b24969fa59f0c4d90449b5d72b6825d22e6c3bf66bd606de7ebc9c969563b8485b59180432ce4d54bd08fc3cac45334e6d18bb096d825c256be2d8478c99290575f2c41e3056a91ea34e7c9888f39fd40a09a305adeef11b66d7aa357a49664d0ddd7ab959267fba5603040f07617cf147bcd47369834f80ec2d6f2572b87eab3a9294c790fe6f3ca72c25da1d932e946d361e393cc4f263ad1dc74eff4010722262a8e8d5a66bdc74f8a57244138017aafd5e8a35cd464fb3b7fcc18ed3dd5c268a03b486f400b5066e1c971761a8fea6cc691b4720ab6ce6426959da6217113ac5b2c25dd0ff2e202056fe030693d3626eb06af0c56e59178d030e8f2ca13ea2b9c26cbc873598d381052424017ee5b2616e823bffd36152d88bc73184676b35511c46fe51e5286dff266b2fe8eb64861cfb72a9e45cb8a18b6a5ef5aac6fd2d3c08039a3b5d02c620495759ad8f9812e9f5e04ac47c38e225207c2df6c4a3995250b76e77aa7f7a1a6eb406e31fbffa779fc9d877e97c0f31b9f5d30d916ef3b98e6d009ac1a01f58486346b2dbd1ca36e7532bd206cd556d9126aacf2181f03e8dd410949c0b7e44770db96b04920a40f0426398b258733ec960f2227f6ccff91a76405b61c5842463df8fb25e02b258c13dfe6b3b6b184de7b0b056e6139cba7cb395901daa89fdf165a3cd418a20e204432178c21c22a0ab1501f43fe734780cb45e0a7aef2fb5a5016772bfc473a3e01e186cde2d7db6597da2befe032756000df04c60ad652645ad0825351197569125e87a5ab5fc48dfacb1aa51234dcba63dd7d29f77ef05a7553c8c364d64ac74a7a1862190d238cd4681f83934c247b34e82d26c1a4ebcf3ee8f281ad011f11a8b3c2823a2a1252060d9fb246e7105267709e09c48bd173315e6c75aab91ac6e20d4fe192cccbd22973d74f75024d68dd96039eb4a1894162b04bd7d82ad9a5c98bb94bebfac8b3ed293cdff85a1833e0f2442a074a7af5b74f1cb05ea2cac85573db5df797b523aa72ec046b45282450cbfa12b0df8925d89591722e229cabe0fb181a40d8e055d011dca2a9ba8c28043f662c148c51f112130685364c1fc0a7ae4aaf0e9547b1f46802f2d2b9007c180182d623b8929d2aff536df4161e6b12990683288a974a24d0181e3ebd5777a10437f0352ebf17144c00e63cba57a6037a4a8fb20f3e0eeedaf02a75d7f1f38acef2c80c8e58b998a61f1732d12d4bdd6a480d8862431127980ce89a15e5bcc41e537d45002652f99c72b45b0d9304520bd16d4212a0e6211ab0f972575a40c448da54f27348e93f6cbe23e545b49bf05b49ef771fd7e43d90706f589d9cc34223a9d773fc740064f8679ee0b3f55b5753889b5cc97796ef6c8f21334e0429040cd4c47312863fdc0284d2e63ec26822f13fc349db242819f8c8580a08204692687cd8aab6f2b706005950c5ba2270bd18d78d05384d8ab2740143803bd034284b7675bf252fbc6be50f2fca58402831f5fd6e33c8d14cc8b47dd4c9711b40de6d201bcf9647fc503df24d980b097df4acc5cbbd9c511f23187b7b86f392a013016768162fcb9950f73d82e55045ddb77837d9497608488bc1582e295b90fc8462e0b6d0ebf4fedbbeb2c15fab54308024085538951a2e210d7c0003dd216c53bf59e4c15d040976a1a0589782eab8a814d7b2e2293be570a181cb9b9e97f64327b58c1ab5c4a9bc459857c5a2ee6c69a75556787aed129c74121f665402bfd564917ca276a18a18f0ae19a9140f3e94733ff8b5dc2f385897741048c390862bb1089778186d5e4548f3761059e9ff4671e25e1066eb4eaf58d3115814fd420ad15ae3d876ab82be712ea4c3bee4e0a9bfac3fb47532743347eea2d1c83bd5fd70812b8172955753887f286241c0b9ae5c75e289eb28331921c8d970069fe9bf7ebe6a65c2ade1662f83c6364c11a38624ccea5c2c2fda8267a6ab404081efd2ac3577dca82b2a9f38510aa974f16c6ed1b013b0594182418f55ac46c4e2a56e9785227c31f089930c0cefceef5ab39c5dee08b4d0d8bfc2fd35134f3d4bca56b8ce56d718038ad7c9551edcbdc2baf68d0a96ac81bffd6c52af621030a0be61c58298e9107170d20624b8e0703b0a61be8648af25597847dd7127d8da0d40e24aebebaf3006096862d7e133b9ffdc749494f7d9e5bd9bf47e4970d40bb2f5c84585548648f1eba74ffbace189b7cb5fc6f25d3f97ea0d2638193dc883391ce5f29f309565a0a7e09ceaf25c098acd2c59fac044b55363009658083074963ab14877f078339f821b5fec378945beec0794084612a9a3b580b0a04412519e1652d4d5cd42e4536ce62fef5a4653a856fb2aad74e8ff32fdb762c4a48d23c02a0a12f65974d8b4475755328086ee8159ee2616cf4594a47e3ad6cc00a6b664b8ea0e083fddeba1c20cfbb12fb24f6c9b3b60f34543f4557ec83cf64076a2d7f47bcbc16cea6595e86d26a3847fa523f04a558f8076ba0ad2e96eb8ae8d49aec39c17c067ee77f85b77dd2bbeb3f922a6a0615519894a0c16cd28385f6789f63641494891213d29c934ebb3c4490871bc612776fcbff5ad74f5d8c50fbb82be47697dcd98cbadedf8798b9174a05e1f888097867a4dd1ba08c71b93ec618b06b6157bb0901eb7d2e84cbd67cc069d2319e42fa707fe4e9b05f781acd5b22c4b794d29cda269d99188e52772e6a0dab6f51de1dc7b6d3edaba14e9bfc69b2b9a73ecb9914b2f9033b83c61df3ab1adc37c7b68cd0f517702babe7c8e17683a6d16c1e1c67b7516edecd2584e0fec1cbcb28db59502796450b1b675b57fa5ab02b2706a8e449f4b8fe79ce7ef68e2499c45fe5f833ac0aadda14a349b8525343f6a04c4eb6a0a1701d807bb0bf2c407a5efc66dc901bd7259c3d2bedad3ac7b31b2512569b199646dcab8e11a979312aca2b2ef06584d8fc3ba7888d40f2d71c635566b38cca88e9db3af2866cdcfee75795bd119c6e1f838015cf486f18f22a26502d4e7063e8b8b3326311010d6a63533bbe40dd67f5d9f75a8cf096fd6fffec069c4e0da96faff3bf4a3ecb0b5001a050000402422222242b694296b2f6e29b81e28d206ed64424323a69210b549769ea99f241d45b5e290290931e48019062b03f4e16813e307a2296c3b907e8c50c08c411915e916e860a74c6bbb6b10040d11c14baa8e76aeec18b4214b05665621250eb830fdacc131a50b01156d44024aa27aa64e8ca802cc97b289841269685a8de9e58409a09f103291dcdca04d990917a67cf92883a0968c3b7f6d753152b4d171d6c5096e09800d41aa128d9cb354a911d8a3e88aa2a51f3c51fc1c31b1c2e2aaaccf1609172c0132c29206c71a512d300c7283a146e88b2af5180252184a5d9c4417a9cda913c9c38a5816886c8a781265c3f49911c0bb3b3358004cca0700331216048cb76ba00b34108517169e2dfe843ac3664ad3ee1507476ba3c3b801e2343a924ad564d66590990a8f3225b165431010487ea414bef5c1b1680bf389de9307364a85d1ba30abb968c9846506096c96aca85a5b228884e5ec4eca01b8d70009a8bf1522005bfc259d404afd6262a4938748cf924f6b4f4ac8598bc1648e2e082126956804333b62394d392b4226d702bc086586a05112836489687a224834054e2d140bfacc3a3311ea8c2d166bb16c05295a92831acc1803444b9228ec8c965d1c05018e90089c62ce20256726f0c90a8e040da360a84b944e6d81d0a7818a0151066c3a12840b1a9c0c4d8610b0ab8a06b43e3c1e20e131c9a200bb4630076ce8c86060f9c10684a7c134642641a980ba850dce5458a5bb5a817c25e821ea14854f26d05aad7dfab4a3469c1829cfb4260fec5c200b74ca8e1d1578ae94c2c48a0ea55a5622b125f271e48e093da5e654600081848d88589a0f29bd0c75aa71a28600bfd2307818812a7baad9010c04090c24a0fc4253e4507aaa8d4f12855f7761711c3645d071888cb12e2d16f28124309f64f818a3c146778ab8abacca2619c82266765c08dec1c365401a2f6e624e5b710ec0bac3025012134bb8ec78a23664801ab2deaa5c81b3ca5d2023e8474259ae2d790c98d8e4e6198728c29d055d78b90d52c2aa08420aa6b9549506a485f539a4d66b0c2c206928844af424c31d3a4370f099ed30358b909e1589b50376a04a8d3dce3720c156e539e1e2400201316c4435e8f3ab5985d29f012c310b746955870f2a428b7e996df204e5b2c4e06a5096951b7dc44cd8733e09a8b1c488dea0ac3b72c0c03070e56e6d005fdadcda8a4bad2b057c20f28453afb31151c8723d923598a0d31534392e91457282daa402c6e059ac2131e8002069552b396b770a417de0f2a140a2b2181f90809e83ce0cf13a358129c18f8f0e6557481e0a304f31347a143a1583d6f28c0a2024c81ca13220049a0b393e456e01e619328b8d61af3568143e10e252e4c846962c3610a480b043257b208117831f6af204104092b74f335638079cc29be181c32f569ad63cf08505d19231687c8c8838e3632e8a1c2632e4002bd19991710120481e29892614406727c1a14f363cb031711182951b4b049068713684ee96833469747228c072f586cf18c703225d5bac9820d3f5228f165c14169a9e3fcce458b641b615700663f5a63e50f8081bc8999de190d687559928cfc12101d62218b83ca4552ac311e508a6a9286144e8521106b68eb20dd2265e7cec96be84ac276c8d9250aa88dadd87075c6e78e28125ce938d34467bd63248120c6d506264851b2c65a98a60daa2c36dd00a8449bd700d90a6ce0a4c87fa34ad9a224e08007d29d26582d660580f0676ac99042251688cb9383a65b9a10c4400cfc75b0119770b6ca5d9414bc44a07910419cba60a3b10a828d8d3766b0d840275384c61307b8387658d8b5c6a3606c0a282cb1214726f9d648498044856ad2f804298602267d8aa49ca5490645e2d44857940da04a3d1eb79d66445eb8e8f8271b09ad52a189208289c590258c3116b8899089e4e3027414fdc590b7c62b8aa500d54874ab9090c202e29e34c8b04082cc4e4610bc64a05a2275784987a9288a1d64ac6122f65fe56f9a0f02155b001463a4604994d8a73e7160b175fd0f82183568c11a76394a7270136060b3da8f1ba434604712045923a28c89460d0e04c882fb606b011624ca56786966054211914b08513b426322af861233c8c958a511800593ad891f5b0138703cf2255b45ca1f93427c3bcd8329c22116695df1a9543f4961cbd3307d080a530966281a7b6a814664b016ca9a0904d0ad47462d048a00e434008ca20e167029b293658662e6a20fae1e78e05963855f0d2989020d46114924a705d7a0dba9125c4ac8c8e4d184b25227c4ac12112831506ae14b645b12ba04a0e0a2c782c89c959b2e6c32cb5f486ab3f7019306001b514048cd5255b65684cbc60a48ee111c019063093623113b9c57d1074418945931a2971834c953a7249ed0a1a30112e0420c68a820c487cd6766c30432af930c3d7134116eb9951d79d363e37513b8a36e2d240e99328d0b2009e2f189a696d14921c587279591d485758e4c8991521b1cabdcd9d815652854cf10497e00d4b1c5d0320adc8cb9524805443f0ca7c6aba91c5088dcd0626bb24b9f9516004c999992b437d740650ea918754e3e5c211a4436787086344b8dc0924c3b4850590008400acd921780315b495e094b286a70750ba149edd80152b6e01a258ea5f9e324313c21c387b951921d1c1ce4e00ab4eac08638004883548a21cb1b16b60e00f0b0c1be83c6143e16c53aa0a4d18105ad188e92b18a1337cf29e82fa72eda1118a3f2410f8a0ab13d8003d025d960024002c61080014d5c18a0c5a8a3e83753866bdc250649223bd56ce33320d0c7429da83a580482b60a656b2d6c606fc1aa395c695a954878a504061dac185024dd2608266014c5ce93913f8c3532d450190b5d115e8ec408f178892d028c008a2337fd8d014a211e82e838b4a002c4adbf26a20cd84dc0847607e8dfa34e747a9655df4491932c11a4d6493d4441080dbe3864baf336d1c325082a2a2cc50065be91571c0972f6994806590004a4ceed799251c26b4420f658193f61c9c69d032260f06360e64382cb5b5aab3c98853521204ac1eeca2a4fa52a2e682d6a18eb536be62bd19fa92418a184965a370a9f111d1ea57955563e4cc51a8d3c90d00e7954043062374107268d0c92d3b55d40ed7fed65c371054b2c5b7cb6ea925c4acc41d0460162589b554108591a525ae2b6f1ef0b8a1b2060288526fdadca912e1a248f307163f1650204859b54801c94fa6515fcc0625713c0a7c43038850c39d03b1121ede7615ee00c567079819827e3128a5c443da84e27075e7860a52678f7e115adbb3bb7416d72c408692e5aab14d733b0c5f2d0ae5c49305cf2d3d3b6c06b4709586cba11f97352c011c5aa0c2009f1184839a704ad4123c73f38a4f1028372e7e38f4ec4839e2daf20c32966440e3d1895361fad090cc40ab0614101432088f85649322543e5808e0d11b5adb160220d87a7457e9819f84477f2aac22535b4e9a91c82f82d24a2d0746073afe0c2864aa4e220986ab48cd6902c2539d4ab5d0c60cc0b36bf008968959533033b05440660455d9a2187e84000f50828e5a81e1c966c3fe29c638d268499b11b9beace9a04b4b33032582d841818c13238e0e770624222b9506c084346d7977ec8a4d1f86f0d8b1f9a2d5a256af1cc1904cf9c3122a8212b8b43108462988c0842e52851980a76e496a521602502a2987c8e812e2e84e82145c903ddadc1cc2d429988d022532a0f2946ac9e027b5364a71cacaa4f939eef5a9e38a8f8161591e4fb2c4d0ca70ac81b2a890205854c0b8a1c0725642909f1d6434697ac485d49b416a01b829e404c64bdb9dc242bfc1262048666e4e7891fa10a7840c2f0d0c2d30e5c8825bb42f4b180b4b3959da8a8411a3f3a4a809619027528f304cf194248fce1045217e9861815467d51a1e6bca7e0d88a1c0529a02deec108ab823b366ef15185d31984a2221691a629009d291016f54e8e02015c0184e3bcc7e1112b3d06b84094db3f62c713324e2c7b983912a2e50c1b2164a5c457ab4c010ad33c13e2a3df4bae09165788500006cbdf13ddf0adf04a261db73e446999cac3ebd3cadadcaf1864b4f5a0d4825e2d4c0e315a1d4d9ab55ab14e1024182cd9d2c1221be6419e079d8e68f18484887738810858475e4cf0025296ca5d121c347dd9235689b6641fa82b6a7a1c6aa14668174016345e70302211dc858cca56291410e00bc8239095c6a71c08e6dc02b20037c719075089818344b5c5928000d15952a68912a5da9a333539b24abd701b23e7e7ea4fe342017e41a1502b01624586c8346a0855122172606e30b920fdb28b2343d4d4448fd42a41c42aa031b2e24f270286b136bb464af4c9b5c7b6c8a0d4268dc96630952d21d973e2a4ecee099946ac169ace6d8b4812438489325350480aee02e8ba2804f1f363620c911a054141a539aec667c230b469da330516df68cba0478b520806a7db8a16608923e2c8a5e587c192d47342e2939a1c557170e44420eef3680a75d6b908ca88ae35386cda05f4d971146a7d8e8f0430083117c20e18852601ba0f29a04c3c20d36ff1b0f06b616dd10e0501d41baf49a4fa8e44263e2ad47815e0dfa9859dad440adcd1ee7931d55ba34037d90d1d7b6976212d5c46cbd640897ea4fdf602a0f7a828f523c7140858b2b27a633b04025498d805239acc15155404424343aee48390be4c74ff14f8d0f01c4a7165a55907a0eb888c446030d0b6cb2bc1ac5a9c9dca9a8fa8940123a0a5a45789a3991ab3220d49055c0a2d8561cd0eee4024497da09c2d2e0c182db050c9b910f86a1d2f4818bbb8f5099d8d584acd625638a4e5fd856794a458b455a9e37237eb27098b14a87970c6d8984f85001c94e8614506cca16195238d5c42d88ae04766a851839bbc8a161c5810d8c9bcdd8e4c1353f45f9cc0cd34dd6807c56e527870168ffffff6675d4b22cf2b3732839633d6117854c9b668cc308b9467c9a35290f0535f60d0192de1cbcb8608b4625584bce14a53c198390c4ec025a910828b801b8c0a91a1c524289985aa450464e5b1698a27be5c622c599c3166e495690b0b2878f5ab00078ece9dd4d7c6595f668c11b1b9b95e7c8e92cd486d153adc35bad3a5f36bde205e80d9c2092242868cbc4e7e7a9489555856fb890190b291a52b6c3d49e51e9674b242a86408812562a6984c664386ad9710bc92b198ca47c28e2aaad81126689404279d854ddf103074c8c5464d12d0aeea88529022da1f052c5cd0f9e340b737bcae8306353c99af203cb80aa016c5496bc050bd42cb1071901ecd919658a0c0c1e4d8736896961c3808823a7ac64103441a2a8003ed23487ace354044e9ca5a301ae5a303821c89121131c2285e9c2c25220b2393a419760b84d50f143c9af23744eead03230f9f18181810fa96e9a24a00e1168320085290f2f70f9a1898202e2506cd62b534f364d3357b546b0951d503b33a323808c334662413289791068e28f9649b1e8c001b4e6c7ccd8a817a02c38f6e634a86158ec3953e1552972e40d20a1a10c5bd8dc09a0e42c0591341376e2f0c9d925c2f0c0013896d6e03699492323d386b33a504d2171989e3819209d80b8d3680ba82dbd913004e1c62cd41b1692649d311c71134d294e48529b5dc404f81547910c3288da184fa931b4e68dd04c4586b2010a58522b1209328e8418cd7e6009541d8c7102c45352292f09f140f3e249f1f4b3291296076f1c00d928c6b92da271ca4700240815c0eb401756738e8c9445d71e7070145648388888282e1bdc966a46d45060c1ab8ba64cafd0bcd489a91273536bd4088184c2e3141e34fc30d1742653d9960b672874e83bc007d85a19a0aa363cd26c497a522c5b24e4d42f3569930ead146afbcb50600a9e5d091a198a67346cb2e3a0ec802a01005da7ee7c7264c0c911c48933697f4f45505c3342a5006447af445a0e276c91e2f001241761ac0d823186676afc2940460012938b256f7d8c002db163d7f674422b000bd1c79b008c24b0ca21c3e62865826d41018d9ab00ad3f521871f5989fe8421454603cc99402e0b0499689be3b39abdd141035c15a118e0562b346d80c1f1c27b9336000b94ce94a93c6da048523247c20315359eb3766d18f3e98c955586dece9e14d1ab75a68b462b02d4441320eca27b307725cd84b55b7af4f0b0190265101f0200652800049467841b47d84868593547071ebeb01f610438535286120b2133f0bc3af40bb6400f0795351c6fd8ab824794002faa68b865d8c7959390c38a0c74447949f103888a3c6b050a9c21e5cc4db902c90c263d0f43e200d3f09a9234657015772451144300c28c481255e7cdd0944a3b2a841ac26a0c2f4c9e7e79c1331343c801070f2aad222c89a69a92e388a7268632168485fa4ef5ca21e88c825d03b0bc2dd304f0122b0a8dbb093fac2d5c6b6699252860caa83a3a408c76584ba1c2075d6a7ae4b8f2122c189f9f234e3a4831c2b8e5766353813f4c826d28108a801775042c086583525d038c05a352f8a84faf08b26ee1505b1005971380607d2f2cb8b1d0cb15845c6d03c089a05608f6410e5209e948aabb3d652be290a2a56acd951245a3211495f6f2a405e0a55390432a7ea34490f063b321516d4c22261c6d9a43c2ac298a0aa40b6841d62ad2ac42204a545aaa700586d4605ea411280424488c1b1c54147033088d83201f6c401c483136e0c342afce891f6558b44a44f6c4469d01517acc322cc708e469ea120acd8dad60b232dd50a39442d32b408f248c0d98848789ab221f37267a23044020e8ba207ba618b39572b175090d25476300684388a600ee45012006677d80120c9ac188954c03e45cfd7015a6cb2b4e7bc176a1f06427c4534901280506e93a5062c9065ca79832f0cef048f0a2ab4fa8097766b582fa1dff88592ba368d76081b1283480b4d9452529c00527a2ba3e63b000e0036c64827001a530136715e05858b985e6c9374a4595324caaa858332ed8b303f841c10617051a1c32056487f33880924f58ce6c8d25a0e307f01388a819a34b5be0fc9145648e91067bf8542c6e4d22a9208bbd38605e789280e3908e38556f2fa2a858a52493e18f498afc44a860e186190cba3d2a2cb989858a098d3d19a01810a5f66a030e374f4ec009654aee2d8b2a5998dc02e0226159a054972e78be0ed47273452c532d3849a06b125b8d0938c6a89995a56a798f5005f2c970aad6a25cbe468909f3a18d97a050944e85d17890eb1606b3247760ca8e705a00c744ca2834a0c987458b0069d24259a15b30a61452e78943c3ac21618cda56c45a328059a5645a2bbb2d74c25ad89595e18a10e104220477f43409d580848b44697880d15e4e3d1106b8b5192314e563089b9de52a48bd71678a47a4172eca6c0ab23a5492a045580598a40607a733136c30a179eab331e002340c98145d25d6de4a10d998e91e535776952d51207826c7813321c8463c59e1e04f2849b340c569c3e60915138dc68e54bb04e89281ce964c56f4b29451310090d0993e29faa448a393124b10ad436e9e93e83c69a34740470d260a7ac80992e7ca9929135e0438ec7358818b11360c3ea4f8b3f6e96d82d859aa33117cf020d5812170e0c95c05c50b195164d6743c38c2c1908190b31f629aee8255593386a18dd28f138256ad79309b12e91010479b96050e3dc9210787d3c598054922843042a5522cc01dbb5c109ae1526398220d9620304ef1419026142e2b4d3d539a6d88b34434583345abc82230c81b9a3869ac8860f0a9cf9a262c4702649962e6c495a2c249a2126052f577ab50824f9c9a0576e03ad380498f1437137982c86981e406ab571e5062510ee1f0c0612384af3d776666a452b44a9e255b0163a3b13434ab91da18306d744c924149ef171b5a2aee0021e296c13052206071878e28493a2830a3d159191c3fe7999ac33176b62018a4ab0892076a64470464a6006068cc9e3c0c06e84483571b18e42c60722ad8f9a5862dd7f38a9ec2320c52c2e43130e0e77c820914007ff09448c30227fa0797df880406a488051280c628b6595d04ede9193183969d1e2e7a540a7441d6896db0d4ac0763c24c3a84ab09871e75694a3d324f73001942a2214f2d1d2c98206243b1c660c240604794980d5946f6d6e8210b6ceba4a0cf982c4812ebe0240daa2ca165292069481b43804a1b143011208646d1803c0e9488291f48a274abc8a8802f1f6e91852181b0c0910d60889a1fcea0210152048d2cd43a00af5bc002dfd09c843213226d401a9991a71f5a04300fd070c3624f359e356088511040903b5ce20295abecd2d619194252a01c19406198a487d152933845d6967c4953c1cbce73cc2826559ec06582e15433c18c1b3f631428d19407c4cd9ce29cb302a9e0deec5962044f0048dcbc9913c095662c33722ebd95521385a2069615684cbf37d5c98bcb2a069a2ea6864028106a8c8a991eb24da82ec570220a0b9c429d1ecdf1d3bc918614f5a141aa1610baf82d2d8029f056c776826c932e33ac8ed851113bae0dcc36d4fa8315c5b0c9253f1d9c7e30ea3548ed92ac2b6f108c41958e304c3ed97537c70d4aab3b2afe7e85023140c609557c22bd28d31448a94531471c495c3c71f963818393da0866303e117f5a18aaa3545762556189365098366820c3437dd0e41007371c5fce94f978a280ca5303e0284c45aa940d42d2262dd18e3d3f5a892d35310a03448d019b95b639423816c165daf2a87010a3337cf41c90054b632b93ebc98a610e9841a858b8114ad3204a8fc390000061d9b4be2a238001586c5bbaac5db630dffc4182ee1df660155919b633d1198f5af16538a3a10912c318da213d0fd0592b2a0d5aae189cf2c4d9005a160000d420108d2d721ebcc86192fa4426018a2f1747f85080966270268954c641f3b0aa978f013a8abcd2fad84926c2580c78a1e68e83a94047c25104ae06b72e023ce5488194a90927e9a2ec95874a01f4a97416e9459a27781e35da74622e12a2292d5e2324278aaa1a868048bc01c3201787150727ac2f70dce6d610b02150320943a6525dce5c9c8993494d9ea69c8cbf35c6d401db9a020f5e1c196b1cfa126242c42328ba5039e7ce2650a0620bcc852a684019eee1a26156ca8e4dd56797af3712761c4f985a5b6b8a91716decb02364e9c9202b4e4fa5dede90c85274eb2e112c4506fa1cf4c812e68d9990c1f5d39e203a41780408c135495169223141536468c5c4471d3a0c5cbd717ae536a938418716bdbc0e62c0f4d981c084813260aa3af89a71635415606eb50cc95081a7b6048d19923f42b32019047820eb0e81586ece0f4d3613654d6358580505a080f428fbf26a56e09f093c3c202df8b0d6ca4393345e0200615a2145c3d720ba17a6089cc1b5156a89c2c50e0c3d485c11e0cad32b19aeca1818110c35a9cfac14438ab498d2c293adb4414f5cba6870c3e054a54e085aa928eeb061a25447a8c2441f1ad604a09e2953a0c8143161b340cf2c3d80d8589292c641ac5668b89e55e84835b8c1caca554024a2a2628bd00ac8063084b99cb13ce86904864d19321cb5dcf82814690d8017493c4892acd28156e837c9d6e9952390024a6c6c37de8c0cf8f2e89722b5e8841e7387e0d8e03ae0e9c9cbf0171d9a408b821100c155a408b39667513b1a36b4c175848927522d9418caf5686d9591e2d295401a4f4a60de908a1bb23e29dc21f0410813d0c72141976018b154e4ec09253b4907143462f389130130939c28d77830e9e0ebce1ca0645824062b30bd14ce24796648402d3930a9c50542234a56366761848268f1a1c25330b3460b26a928446c666a20223051812c047c222208ac4090e25b2342504c5b4122ccd20263cc509da223b3337d47a45aaa5fbad66058f17445159aa6870f2424b99d312498a3cf0e8a383450decc38b1f90a40911d4bbb88cd3c0b6900660e187521a5d2b0636928da72068a1b116a7ffcf849cbabd5b47aeae83cec5d01e5b6c7a3400d40b2dc14b96d00a6e9d79d2d650418d26564005c5ed61671827d2895c5500d8210414fa6f4102902a72c189aa70863da06212f651983064c1a17314b442d0925298311c209a052890eb51812304662440c086973f05221f024f8420fa83800d86834306c3bb363260f0a315769c42af03a45abb04926ebc4a93b5cacb4d8b14095195961e6444853900314285c41de0ce2e3e6240ea1b3236c432670199313c185419e2a37657340d1209ba26840df9207030c47cd0a7142a9a0029a1cc1358b48017a8272f1ca531a4a7b8c03347119d1a7d38156967c088022c4065223c80c94c992a948810cd58ef2d419010b05da0326b58a22a2741ac0016a43cc8055a606505823cb48268132cfcb0441246c72349f52a8b4426a88908557619431b62a8569cef810d6e24b402a10db1c412b81614a3c5963e3e2c192c0300908bcb8e480d2a033aa9c907a0052c31c0438478ea25d875e7918759681039da247b9a4484a1a8aa2602b52a43566970d8386b6e260c0028a45a359182e38c7faac6031e3af6c89c7d21eafbe4926cc2261daf38502084971527008c6e6e629d64c0282d4ae4669bf5ac079d180ca041c4d6f36f0d20889d848f2e6879f2d65d2b098624623add28f486b5c2bbd218670d7050c355a363828f255c450cf42a54f3faefacaad0e1d192e42616408aad2218587944d0065b0829920132303de265d0b3095f000a2871adfa1370d40b2d8a9726b9068e34ba7266dc120acda528cf0a94e84b1468245ae982a63a24405a845195449bffa46f9b8f287529aa91b6eb6e40ad3a1a41023171d84ec3169935137896e0f59a0340e74f5c804c9909a32b5263982e1a133b8e382a18e0f6f44a0a4dd802372c84c0cb23b493202bd58c5e9001b9f0560009bc08251224901707e944a3e20cbb3de68a4e70be19d596855ec954685d046f1e2c3cb0d5059a8be32746c01451cb099e962934bd52a4f2b188df6e407275d6427424529230658b425aa09339313296c68392eb13ae442f9e8af051c591195aa63001128a62224d0625882d50fb4638d3ce893d3014fd15a729fd0e450342029c76bd7d9aa31c61b9e9c531211b2b0e20d0166a26ba40a3dcab584b340b0c131002e103a047aa639586d897119604b1f2b5904574d09ce845c483261ce804b65e43af17a746860c61a892b3640bcd0f181899265a1a04d0f20386bd8b995f6a3028cbc1b2a5e2c18c1cb8219d44e33859e013b4265f4e05a1f44a334ff7c7a8313e46761357993e365c402823701b2acfad1ead1e5833ba04402de883fb329a0c4127539d46362a766a9430c596f9a0bb6980dd1756668caba39c954c78725b75b7bc68809ce98819788871b116a1d129935f100eb3b16a130a142a910412abd1aa096c60c01698918c5f4519a27478978e4b985b042a2b4d1110122d02814468614a25056076e95a017134160e1b2323669449a1bb5b4576f5c24a431b2d213e405016ba3966d6778ece14a8924d6b84d5970674d59a5b20ece671355aa3b3c866c0ae50725085c9a173e38a444d998514805894b8f0408e18a4dd721b2302c6e4188a5372a15a445c60eb2506380e0703106c78bb705a95e40f1d4a48dfd02912b4e06bb38ab06d95cedf20bc1f6c29798b94c4c27994871411580dd118f8c5009295305e26432d0c0b000e351c4a0794913032f568b464174adfd18d1e40da1017f8874ecc04930c1d1ad1c4f68e8b8d480ac4c11ac3aad3ea5c22003495991432748d0d4eadee0a1aa246a92101a9d3a6d6a136a401ba22d76cc7468b184849e1327485c59f1dca16700198832bd2125ea308793cd8eaab334780089808272a42327d2204d98ec88ad49615bc2d81240a4302e7c31a012e55399138e8e2d0c064041281a8750ddab1e4c4f670a7ccd103506a82b899c4e0f3105c9d8b4d50b900c8013b7466d5272d82263d0f16dd611139c0239697d794409d39e02e45831f3c3fc6384eb2c06a142a72ea09d15bce68e1557884400e5a0819db57469ebd479bb5325e48c902509ba6438d34a8ad4c29881b074e0410c1da804e1092ad251468553cd93bd43018820360576c604a187dabc71c3f2644d4a081f3af68c395bf187d615b1b24f732b5e9cd081e60f985f99a6187f4aa8a1f815c002678545570838aa8988656054dba90ccb5b081ce51222a4ca28506f64692af34ba0a0880c343318ed155af1e1a34f9af628c29e187150fe7429f9122b518736c4b60abdd2d031b2cac40087bce0ecf9920c5196a6f17005cb163c7924b14182d02bc4a43410510088832058c346a13647ee063535b0857903087a44acd6ad3a914045fa91268c2c0d952fbd5094c01b5327870225a8762c4063f4aac8a0a70d3b19c448d88383c6a00106ec32d0494e1cba31287a2d7aeba387411e99054f7c567e3051d3e58dc6ad2eb3068c42237102582c456ba6d81dd0032881011b17036ae4000687cf081f89e20eb15c42a48fa79e5d04b0d031a0c31ec317771695299b9c593233e11686b14862b138a128030b4e9735451c18e1997446c8059c487988f858d8396f61d2254a09283a0a582001a46789001dce64282a23674b1c2033bea47061694582396b717c38980dd002c4ac3fa7e2384955eb85d3021c5933072b310df6c864da61c3ce0f33557d946267562811b5c4d4135286271235d1b4617ef16000470be7181e603ea9d9f30625d28a3f9aecd8bde99101c391b02938cc047164d2f4a10e9b56796a084a2406a34d315d2244701263850005539f36d4e8b2ba691a600c282b851cf449f954696c4e0205b3348f9a5678696708e082738ac192441fd4a29c99d2c6c1190b2bb00b99ba5243007043a0e84709224e14f131fb10c0c15318b46c4c192771b0ca063051506b972b299008a5fd6282ca702f4c5e295b05d8b9897307ab2d89a9509f0c0d02e409cf0f27935a24052883b07495c0139801d438dbe26906e79866b825955c160ba6d604eaf0a6c7a71555d83edd3253280f091954e0b81043a4c500103247bcd8f82940cb843e8f7095a83063420134a89f2aaa7ed48aa2b7d66a9bf2f7a10edb8454b1dc3e3c7873c4885f811f494e62c876a4d0646b4eaf567e583e8471623c500aed08aa1178d206942963066e03b04a44ba38237c3fe278100e160a3629b9fa41e8e38fcfaf49e911a53ebf02381e9418fc04097424282187d324d5244e9330249884e1cf3322374910dd1c04b9b8b80e867e81811dfcf85e08ea09eab108141243d0878f0e8142047f3cf2f5e8d445408f883082f8157a102414dcdbd3e32351844fc59e1e1f89469e7ebe404318276184d764643604bd2270708b3afd316e2e6a02d827028fc5a20a3fd85ca4f7a7085187262beaf00f61efaf2f088fbdbdc1402131f4f87ee4f11822c4c7a010237c7b7c3ef4f2fc00017718d9eba3ab2bd4c03788816f6fc25c21a2e757a09b2b1cb4c3abc3e3f3dba187f7a64900a53c02e8d895d8ebab238243c2041c7274863815b253884c21320f77d72cb4d624f46390af419606251a846890a00303f50203f5f20203f536e619737c331014c7c61b803d6cbcb1068d7f10eacdd82803efcf8fe69f147c8543f402570c0e9efa8f9878f01909515cc227a817084bc77f774776de9d86679e192813d6449c9e9ff456c9c8140500c103b1403432b929ac0e2fa54ce074e19d68f2c16054614c6144f1c6136f34d11c00c47c6e9ea61e4c4d3d6b4b3679c034f3dcc4c30ab007de8912847c2ff6fafcf4f6f8080501777460c1c72728628f02913a03d811fb31a847c20f1070c7a0060d700f34ec95d0b057224fc35e893d3e1c74757b7c7c83791a182cc0c0830f6ff0c7a01e89bfbe133c34ec9528f1427050c31e0643be207b25f6fefa4efcf5052104f47bc127a40f0621a0dfa011be3d0d1878f0edfdf59dd8fbeb3b6137a130ef8fcf2f2f8faeae300e8abd127475853f06f548c091f35e89127b801fe0c0fd3f06f548fc18d423f14656f38de14d12c16e92c8759304ab9b243edd2401e926093f3749c8b94922cd4d12546e9220bc4902ef26890c37493c6f9238de1c51ebe68848374720ba39a2cecd11626e8e90727344919b23006f8ef87173c48b9b2346dc1c71777304849b23de6e8e60de14d1eba688026e8ae0745304a39b2206b82982cd4d11609603d614a491750173b30b959b5d8adcece277b34b8f9b5d6adceca2e266170f37bb4cb8d925c17f6436bfb4f842a2a905cf4d2d6cb47cd192e4a616be9b5af06e6af970534b849b5a06dcd4a2bc99c5d6cd2c9e6e66292426d61c6bbb12c0cd2b576e5e2972f34adecd2b266e5e6970f30ad94d2bc16e5ab175d34aa99b562addb452e8a6953837ad90b96925ca4d3c352837d6ceaa1cb8598579930aaf9b5454dda482090aa19b50e4dc8452e626142a37a11442b971134a889b501698bd41496f3e29e0e693554e92379be0bad904d5cd26916e369173b389979b4d90341172b3898e9b3164959911505b22c0cd25646e2e31bcb924efe6120d37973c6f2e21de54e2eaa612493795ccb9a944cb4d25436e2a717153c9849b4ac86e26b97533c9a59b49fadc4c12e6a6db93409bd3ed99c0c013ad7904d6cd23a36e1e9974f388a19b47f4dc3cc2860021003709056f12eab84998e226a11d8fc39b3c16dde42188479e9b3cd8dcd461e5a68e25377500ded4e1e3a68e1a377594b8a903c34d1d0e6eea70d38176b30ec4126903cf4d1b686edac072d306939b36006fdac071d3868a9b363cdcb44177d386829b78096c94ddb461bc5963bd5983550d4e376b34ba59e3cecd1a5f6ed630bc59e347d9d872895c1b40d6a4a1e9260d47376914ba49a3ce4d1a666ed2b07293861132b219ab6ecee0747306a49b3302dd9c21e7e68c2e37f140ddc45b9140d24d3c3f37f104b8891726ac0c0fcb4dbc2637f10a6fe205b98997e326de8a9b781b6ee2d1ddc44b70134fed269e32c67a3386ac25328c40f183d84d0fba6e7a3875b3c39e9b1de0dcecb0e5668724373b10b9d9a1c7cd0e386e769071b3038a25d952ac79e1ece605e4cdbb6037ef6cddbc5b759381abb00a6d6e560073b34214b4b126855d3729a4ba4941d24d0a846e5290f3179b4d3b2b37ed8adcb4d361c7e2669da09b75736ed6b1b95937a64ecbcdba2937eb90dcacfbbb59b777b34ec7cdba1937eb54dcac03f113482e952be942dca4b370930ec24d3ae74dbab39b74c79b73b66ece95ba3907e9e65ca09b10289d91cd69b83957a139f7e0e69c819b736d37e7c46ecedd9b72be7e2353eec84db92037e566dc943371536ec3cd0567e41edc946bde942bde8c90eb660455372370ba1981d198d958040f372340b81901c1cd086b372388dd8c706f42c87513c2aa9b1040dd8440e926043d68614c3208723721bcdd84307613421a07bd1987ea661ca79b718a6ec6e5b91967e6665c963f29b60cfb4c6c2d2dee9b0f5cdd7c60eae60349371f20bae9c0cf4d07716e3ac872d381e14d077c371dd4b8e9c0c44d07166e3a5870d3c1da4d0763371dd89b0dd69b0d54dd6c60e9668345371bf8b9d920809b0dacdc6c50e4668320371be4b8d9c0c5cd061e6e3698bbd9c0c0cd06cd9b0d943719fcbac940d74d06ae8c4d063b6e32b87193c18a9b0c2adc64f000b900cfcd05012c3873734197b5e37201dacd05c79b0a7add54506be64bb80237e19a37e19637e1eecd27af9b4f5a379fad6e3e4ffd68bfda5a21a7ac9bce51379d886e3afbdc74beb9e9fc72d35978d369e3a6134519f38c8dedde1c20ebe6004e370714ba79d6e3e6998c9b67166e9e3d6f9eb1dd3c13bb7946bc6966eba619ab9b66a36e9a35ba69d6e7a6199c9b66676e9a79b96916e5a659919b667d37cdf66e9aa1b8697677d38ceea699829b66ce22536d6558d16cb9d6544b3b332b133166c37b7a807e8662ba3ce0dec59b1383d60c732b8cac307afec1c138c2be1d8681803cc4c280181484b0e7c7d7d7234cb319461926fd3fc0be1d71707a3cf8f09a606e3c83050b0666c0318c8478e3033fbf4211827c867a280055181df0f9e5191b3cb105df91be4123838d0b7e6b7c332a30bebd31c19fc21ae432c388e006da822883f180222b8852264cbf8d9b5a2211b16491c384c51516303f88050e4bf38aac050f182c30c2c760c103c2e6153e7f061f8342e07cfc0162a892aaca852a98aadca992a68ade5b3a5436fc7e7e7d7a3bf2f2a6387a8f50908f089f8b0fcd29831bee80e31304ecf1400f42df9e07bf41c20e310453f01116eef5bd1864f4d6e3e5349fd48883f3bb6a9880fab8b82693343f04087e7d84857e7d8485cd2588e61b0c02080863441624b2fe261241c3dd3d06e5e61160d76a1e611ad6323cfce1f804010d03cda38f4808c32c707783867f4d430c4d23b91eeece08a28d80d9880d23077eb8bcc122aefeebd31b24e41b2c02e92272fe2251e0ee0885348bfcd8885e8a2276171123928bc8a987bb7300c777a4ef05913e44ca1009fce1f2e070e4d920c261104d226a727f10f4e0e0064bb0e8a0801084201f8b27130f0d8e1924ec831b643178e03f7153101204413f82643e82904222803b3a080e0afe680a621034fe096e0e39052808020ec26073880043029b81bd0257c13dd0030c14e040be400c0fe1012f4052808c86db01d805eecec54d4007806e2cf052f07831b8d7a727584cf1dc4514737f729a7f59fea2140ec2ddb1f863f12b4102b7d7f737a129040af700ee8eef0f10d17046f60815fce97d680a6922648890bd1fc2605388dd83847d3b08e4eddd8d88e141c89b102401bd1d7e870f7737e8f7c80fcd7019e0fc8cbcdf0d3f1a4dbf033f03380c700b08c0dd110eeaf9a5f70ff0455f903ec3dd054113a40adc1ddf91bec1201f822cf8b826905a7f101e807e8383717b7c7c8371694c6ebab93581043ee1a05e205c5f90177f869b4016fc049a7da91eeeaed977641f7f7d7b7c7c3cfef802ff24f14de5bc53c1f71b56d9f751315b24b05fdfb64b2f5fa8de9639e2bb36bfc8175fe0cef7d678628bef85f3c45cdb64a55f656d93fffadc2ef17ca14bb6c907bf9ed82e357da16eb64951bfae5b66f10bedf425ce7aa7a0ed92ca172a638b74f5eb719bd4fbb5c956e9e1a342b64c5fdf95d21769e10b047eed81b781db3004df55d73689e9575adb3b2055faf95e0fbeeb798be05bdcf24e5ddf639f7f62fa5e364fb4754ad47ba7a1a2ef25f3c402b6c93dbf62da32317d57365fa29a778ad922fbde00836f71ed9d91b6cc0bdf75b90d8bfbaebf4e8b26de79b855a6f9a8a4d3a2867782da26f9fcaa69aba4fb288e6df2cbaf7bb64bc12fd4c3375df5ce0f5f4b7c9b63ab247e34c2a9f1ed9f124e8996de8967bb64f385069ea697de69619b74fe9a61cb74f15d0b7c2fa34fcef8dab5b740bed7c413d3add2c747c19c2ed1b699f4b661c4efcae96bd5bf6d5feb7c2be4f412ffca6d932e7e1db255de7d946f1b66fcae9eb6cb165f28812d33d5771de04b24f34e00261a3ffd53ca36697f85fbdee72d83afbdf216d69768e79d6ebec8b72f40fca61abe0db955da7d346fcb7cf25d5d6c93187eb5f125c278e7e096f9eabb0afa22ebbc5c9fad92cb470b6d97bcbed047a7c731ff54b46546faae65261e3ffcd3cdf76e79a2ba4dd6f955d26931c13b319da64cde99f64d0ffcd8e09619f68592da26c97e8db055d2f8e8942df3cb77ddf155aafa5e23bea9a3774af85ae3dbbc6d9882efca6b9b8c7ed4b955d67d34c75679f6510ddf7be0532e5be6832fd4d776c9e30badfb1a73fcb3c529f1d03be76c93317e25dc32037dd72adb25892f746dab84fbe889ef03bc5db05d02fb422d6d95483e2ae7d498e69f7ea7c4bd771ef91a17fcd3c25679e1a33dbe56c4db3c5f7beb2f83af5df236d5f74679a2a9d323f19f5eb6ca071f95b14dfaf875ca77bfb776bb04f285de7d89bbde69689b14f12bdf37d5f4cebb6d32d2afaeb648f5d7e277386fe14e8dca7f42f822e7bcdc00db65992fb4ef7bcd3c71d6fddee425168dc4a2d17e9cec5b4c89455b34de629a921589c5372693138bc86491782c166f6a8d76b1a335a6a9d168b4d6128d44a515234e244b2a91767b9b623679d190c6f424d122c74e5aa23145bad99bdaff68bfcbefb5f724f3da471ad36d999178641a93c88be9f636c73e0d5b923da6fc5ae7dd780f3c51796affb8b6bc6ac7c75ec1c4674e0cdb1896deb0cb98ab11c3be1353b2d4f8a636524d6c3331b5096ce126dad1b65be2c5971f9acce3c5b6d31120912f3792dd546ce6c4e5b6af4d7c70526ce4cccb5ebe813b82b791112e2e8b1444ac61fb952bdb3bf99a8ac36a5c462c30719bc012d86cb48bab29f8eeac8002fb6adb816cdd4e7fb384e147fc7f7fe43e36fef6ff0fb37ede16bfd3f99fc0af26ae3cc452beff269be2308be5217f3adcc66b2d8a8d7f9bbcc0bafabb8158e37f31261efbcac471230c75b623ea634fd4939592237fa9369392c3e15aa9b3fd39fc6877684f3150edd910f5229e5536d52c753859872359a9a7060e87a3467d4cc2e1c70dea6f920eed2935f5f4c5e17402a9f69451fd58806a3355514fe70e978b2b65c79ea81f411c2e87953a9d01d4df38a9768cc5a10d32415dce2b75e49a7adbade4475cea4535eac532aa3d7540fd68423de5a1decbc976dcaaceb676385ba0c3df40a98b9108b21c8453bb51385a20b5ece9525d4e2b75a327f53758eac53887cb39a5da534af534c1e12910f5222375322d871b3fa98b413a729ae27037d55e9ca3fe3649b599ae1c7ebc75782ac15e04a39eee7865d322ea6fb9d4e5d0526da6268796ad4c72242a75a428753626871b6ba8cfe173dc684afd587660b11241ec2902aad5f4411dd8017538d5da5369ea62928edce67738db24f5665af23610c9d30887231fa8bf5d3ab4a9a13a3008ea4634f53857eac5446bb6ccaa23cf1cde862bb951d5e16999fa91c2e16eacac5d5580ab8da2d4914d75b148473e92383ced534fb6504ff9d4e5ca207f63a55ecca38ecc74683349517fc324693a89d4c7a0a8170538b4a911752401f5944cb56a808e230ba8a76b87c36552ed800cc9dd5c597baaa9fea64b3dbd3b3c2daa1b5d149889e1f83184fa1885c3dd56d98d2a9c17df1caeac94b4a7d654ab09846ad7ee8ef6141775364bea7092a8a715ec6f99d491a4544bc62469d323aa0d22413d55713892936a4f9da9560cd8e16e051cfe964a1d189cba9c19e403ee547b96223992927a9b10f514501db91e2ec7953ad2cce16f9bd481155037da504f211c7efc75b8d88920d60c56f2a32cf5b4c6e16f8b543b76e2f0b480a4c3242567f373685d653ab499eca8bb8d524f6fbcb263520eaddb86e4485587360dd1f1b743d51652632f92514f39a8170399595475ea4837756214f53748aa4d3b94b4a78aea470d87bfa9524f6da816882d7b0ae3d06af2a0da54b454bb4a96abe10a383c55aa8fad1dda2076eac850ea73e20e37ba526f0b54a7c347ddcdd3e14539ea2951b5a7c8d4531a8776152dd59e6138fe164b3d9922b9d8a423f694987a9c2e75243075374e76375087966cd071a214f5a387c35310ea6f9ed4d31faa3d6540b5a788eae99f6acd242427a3709c6dd1e148a87aaa076bb646aacdd403d4c617aa555ab0170f358fdba56e5453a703483d4d7375ea766853c952ed2905eac531eac75aea475aeaa9986a5d753ab46557fdcd967af14ea9df4ea91b57a936d31d7539c6e4454065230fd591b5da467e529773b0ea344c1d4e945dae81a8e514a09e3638b4ca0dc9e11851671374389ba1c38d370e8743a56e8c71f85b25581bcfd4916ad4d316eac855ea6faa3a5b25756353fd684bbd494afd58421d8e2dd59a4d389e8e381c19a70e17cb9e6e507f03a65a5474ea6281881cc74b5dee81abd912a9b31d3a3cd5016b364aea7476256da64050f695087539aad453b8c3df18a92347a9a7240e87b346b599aca8bf355247d638bc6d883a328dba58051fbf7d526daa02d49164d491b2d48d2ce046fa52876365ed29a63a728d6a95acd48b740e7f83ae9a6d00f53640f5b31caa558ea92327a9c3d552ed180a75632af53747ea6c44d453a63a1c42f514a98eeca45e0ca35e64a39e2e9074f2853a9ba4439bc9c9e1453e61c379528f83aac321a25e3453ea62a1b4dd44a9c73149ce8c0163e328f5392f92f6d49b6a4f21d5916daa0d3ba00e4cc1e1c01c1c9e1e38fc8d966a4f25d591b1d48b6dd4d3bac3e120519f832879ea433dee973a128dfa3245f2b756ea63030eed9a85a455861dda5725d4d974246d261fd6666272f85bb0c3d333d58e41391ce954770b7568cf2e1c4726503fd2a9365392c395188ed6fe3a1ca9a68ec47478d190da6f91d4979592d3e9737812986ac310a8a73dd48d81064e2f1c9e9e5067d3a35a20b9ec690e58bb6552776b656773a4dab31eeac85787bfad87bf85526d103a75642b75b624ea708aa823771d9eba506da63f50b3013afccd92277b2a4c3d751e7ebc53edd343f2b85beac759eae9ea69deabc7a8a8762c8a3a1c43f53858ea6d76c78da0543b6642fd4d936a3351518f53d5e1681d3e6601941da021f991837a5c2af5b63ac9d331d5660204755c30d5a644d48119504f4b1c9e22385ccc44107beaa96e8ca55ab13aaa3df3a1ced6544f3da81bd3d4df141d9e66506dd9eac860ea7000d58d6bced3188776c087e3c653aacd3445b5af40a8a756dd2d95ddc80637b2cce14711871f3fa8bb753a1cf9a65a6505f5e30475248dc38f23d493188e236fbd9d32381c5949b541ead4e380a9234ba9f6149aba31eff0a39c7a9a54ad981df5d4c1e14619ea71a8d49192d4e368a917bfa8a77187332b256d980275310b3e662ba27e8643b56575c9e358a9f6cc4f7d6dceaa5334d59e09aac7e5524fdf0e7faba5da53a93a9c267bda06ead4ce8e54a0da5356bd78e670384eea634d9e9c4eb0b60c51d2960d1e9fe3e0f0b858ea6c90d48b76547b46a87ec470685d713a1c994b3d15a2ee56eaf031244f8e53a5da5366ea4c3c1bbf15a05a5412547bcaa90ef74ab599f840fd464afd184b1d193d1cc9403d35533fce1ddea61e476e3a9ccc42f2f479f8989227a72cd4e10e551b9640b568228eb6cc2e399b11d58e8d38bcd8e8f0a21ea53db57a9ba03ad2c6a175a5e970b63eea6c830eed9b87e34534ea4633f5e223330be4961d39ebf03859eac54167cba9a55e8473784a40d2c656ea6f8fd499858e038ba09ee280f531836ad172a8c7cd522d9a87e44632f5b1234f3ecb53476a3adc8dd4e16ea60e879b7538b2816a016d197feba55aa57a78318dfa12c3d1bada74381b21f5265a72640187f6d4987ad885e4e983c3e5c052ed5809f507b4549b4910d4721e24edd88a437b6a817a51cce1485a87170338dc4d95b56a1b92f6ec876a4fb5a9cb4538359c5aea69aa5a344549fb2a847a1886e44d4dc98d29de8e2b40fd6d967a8a77b8b180432b16ecf0363ac9e5304ada3710c98b5e0e7f4ba44e9ca2dab731c9e37ca9bff15af59b2bd59e2a532ffe21b3af48a8c385b2a71f547b2a813a12947adb9f3af2943ad293badbaa6ecca19e0651171344c4b28d486e3c547fa3a4da311187c351a2fe864b1d69407dce83434b1698dcedf0f0b853ea470b87c7e1526dd341d266c2727851d0d9740ea9b3313a3cbdeac84b87c7b55237a25237ce5037a2701b694ab5a826a88f393ab4a7ae3adb23f5a29f319b0a8fba51966a33d55197234bfd6d97abd30eaa4565a78e540f6f0ba25a3211493b4642fd0d917aaa40d26353549b09c9e16c8ad4c7049fd8b33e75600d0e87db643f56383c6573755c2f756004d48b033047f65297b34ab56740d4c7923c5959e8f8035bea6d83eac53aea461aea032e1c1e674b3d0d51eba48bc3df56a91bf10e4f071c9eca1d6e6c41e0f4a8eea649bdb86779eaa74e84a29e360f4ff7d4c7a2247783aa036370f8b14eb580b58c76c0a9e4a90cf501164a5d5ca35a5472aa5d35ebd066a2a30ee7883a5b21d592094ace16493d2c4572a42e75e38ae7709f549be9c9e1a9dae16fa8d4eb14901cced5e16fa6547bca4d1df9542d9b5dd2665a7268c57e1d7e94a0da2073ea70a3d491b0d4dd4ea9037b70685d613ab4ae3c1d9e8a506da61ff6b1214e4e35a8c3c1b2b3213ab466af8ef66c503da5608faba59ea2506da63e6b33094975b18fd86fa3d49b76c9910e547b1644fd4d94fadb2bf564a1a30582cbda2072eac801ea709dd4530c87cb99a5ee8649b56781ea6c7bd48954d4d319ae3e5e389cec2e6951cda9567977b8dba7c31fd4526d99a4a37d76481eb74a3d35aa235da923e1d4e910a06e2c53472250ed588ac3e9e85187036507b6e0d09e5aaacb49a58ee4a58ec4a5cec6473dee957a1286bad85df23759aa55fb93dc184add78a2cd9e6aa02e3628395ba16a5f8d50078640fdedd7e1726ca9f6149c3ad296db461cea6c86aa455b74dc38e0b91c557d8c30ca6c48d49196d4df3aa91709a12d0795fa5b29f5b75beac0e20e6da621a03e765067a6489ed21d2e27966ac7541c0ea750dd08ebf0a2a201f62d44726009d48b6e0e77cba5da7beaf02200ea7098d4952992bff97a756ae1f0b7a8a8e3a2eaa909f51ed3bb4d4f2f92f825de5bbc98a6c66b899698deb448fce2b5a951f911593412d3e2c59345a491985a6b939669bcd768ef656e91a7c68d9321371a8929d2deb1e5f6ed4c9bda6bffae6dfcf4e565df8bf6e41d8ca71f573bbdb84d9ebeb5cad7c2269e6e241abf8b219968df6dba249e7cb9d23ef625b3cab5f4ece2c48da3cdfcecb602c49b3c1693df93df89178b12d2edc5e2c591f7f4fbb5f6bb4d9ff8f1e39678f3b247b84d3cddc0f7bbd5d2910fe6bf13967588cd4e0bdb2e62e55588443be61ed8fe9a1be4579880a430613b6b5b801565c81662436b501002df1e205202d20e59b7034937a73c5ca3c708610da5b5357a7880a032620993aba889f533007c4d8d8e3fc3c1084808af5183860a0929240805fb3c5ca0834300f7c7e727c7e727014da133ecca75e73c735fa60b173c161bd6ce7479ed8cdb385e338307031c320e897cf03fb2019201728182f9020d61e48921132020833c50c100850213084880b37bd639916f74756e13e6da904736e4189f1f72c05e89356413a9b64cfb9168c8e419d20c59449621c9c69062c8302672895422938f44228f4823b2b806c0e1a020843500d088c8f4b75dd6befc1814843088bc48fb1fdf0fbfc2c1207a84797e7a5dfa7421b3c6a5d65a96247cf2dc3158c8fc574ebde11ea087d7ae587aed8aa3efeeec90afc15660bfd675f515adb3f266c54c080f23eb9a943e7fec758c26fa23014745eb0b183cf888fcef8a82254a135d82807dc75cb86ed99a352bd1ac5ab49ef517206b58ff51d12b3a27669c7019b0875ddf5f8c3d3e217a2a0cff3ad005ea09c200d1816ec99a25605aa9ac8eab8eaa8ea98e8ab6247284ea94a9522f60fc91d4e11f47897a01d8a38ec8dd5ddf095bea274f9d385d87e4051212c74dc74a9a2865a284e9122543be207274867c27121dbf58aaf494281d09a0f42449c74847434748c7475b8e8e8e8d0cf982f4fd9191dc71d151d1914b9124116042781849f44744c743ffe52301860a0d12023448d07b7d847c838370de0b6407081020408006410c2a18c8dd9d1d91bbbb3f0e50610f053d13f248c06377a7ceceb1ce91ce776c6c708e9c381fe18039a6a1c31b4261c88337dbe1fd518000aec37373a6cd1936c735eff5a9390d1da02a4050687600fa793873e6cc99337f24731c7314730cf35e1f983f02b0f6b7fcfbe317ba3a2f13e6ba54e06277dca2e51f1cac23727747675747e4ee8ece8e481d91c1420d382a509820c1ae8e4e038e39b80b3630f010ec30a881071f9e06c01e7f2506017bfc95d0f0c78742c31f1f0a3e217a46f452f009d1fbd323d4dbd3b057a2c4e0e09e5f9f0c0d1878f0e115f6d89b3057c18e50508f85e11ea0074241bdc0bd12867b801e3468a0abc34057178370f00ff04305bab9c20a85867c41ec26f4156ae8a3c247d82758644f8f4fd06e42e10f563be888e4050efea0f2c3f0c70f0670770b2a14f2e0c31bec0bec30d817a8e71728a4ef45e0208c22801f7ce84d62c35a0f4af3c8cbe3eb13240c1ce4d364e8f7b7826f0f3045083f3dbe178480802ef80805f90cf5fce0fcf4040b79f0f8ebf0d70150859e87c13f40c2c21d7c3bfaf60a3bace58d792d0fefb5bcb4bff985064f0b6b3980bd9623d06b3994bc9623c76b39ec5ecb21f61a0e5aafe100f51a8e3dafe130f21a8e195f025085209f873d3d0f1f5c0c86f84128d8e7614fcf030b3f3fbd0f797c1720fc2014ecdb0107f7b7a38f4111be1e867a81252648a0032c0203c78123de1f63c0f8e38b3fbaf8630b167a8543f404f9f404434890204182040912ececececececececececeaeaeaeaeaeaeaeaeaeae8e8e8e8e8e8e8e8e8e8e6e6e6e6e6e6e6e6e6e6e4e8e4e8e4e8e4e8e4e8e4e8e4e8e4e8e4e8e4e82c58b060c182050b162c58a850a142850a152a54a8508102050a142850a0408102850913264c983061c28409132448902041820409122448b0b3b3b3b3b3b3b3b3b3ababababababababababa3a3a3a3a3a3a3a3a3a39b9b9b9b9b9b9b9b939393939393939393939bb360c182050b162c58b060a142850a152a54a850a142050a142850a0408102050a14264c983061c2840913264c9020418204091224489020c1cececececececececeaeaeaeaeaeaeaeaeaeae8e8e8e8e8e8e8e8e8e8e6e6e6e6e6e6e6e6e6e4e6ece42050a1324d8d5d1cda5105282c6da8b2f7a827c1178f4d5f1fd205ce1a7c7f7824f90859f1e8e10354abcc8031102c48a0f2a42e4b958e1c24588bc102862805891226f468714288868f0a10703030f3e3c1686847d308200c2a850a841081f61091f807e1a2a1496e0fbebf3f117a24509163afe159f8a00fe9d201ce4eba1c787c2b0479f201f1ee18fc14216812b78f409f2e9f1a1f80ba182cd0c16d88f687f3cfba359991c1570bf236f70502fb0025d5c5fe020d9589f208fc1bebd4121837a7941005d0c6ac01038f82868315860600dc5deefe3af2f2e7090ef07e1e01179e4e3d1e7f74208a0a0084341187f341e8b1d4eb0e90108b8824f90450f41bc3c3ec1401c76204e802011c244ad8fc4637abc477bfc4d10ef2148c418ecd7dcdf6087b5126e6f0466fcd5078847023a040810409c0041622ec8040974813ca0bc76bd5157aeb5115d668858f5465cb770d409423013fb738b2408202d0b43e4ae3884288de2a1c1bf9a7d6c013369b6431946369701602919a7403b01cbdc25ebe19db507ef1a19dc48db284a94de33be523f4015ae96306b6683d7e8429b648cb68cb58cb48cb30a90658cf5c7e7976784657c657465548dadd467b0e03c478810410b08b24141087d8285797b827a3feeeef804e9ea82f8f58033f4e3fb03f483e3e3a1270847c81764506f071cdc5f9f1e61103d3f3843be1d80707c44fa04f7767c5fac7d88b0f621ee9f0104081016c08570c1a28284172f3af8b29b50d841c81e072fcfe10d2c349c32f5c652a432ccc8800103250c1c0e47897a63a83782fa7441c75d9e3530d050a170af048bbb149030d05090479edee01e0f3e0b20367aeab456810c27c01e9bdea82913a64a972a59aac437a827f86302a348901ebdd1d11b1b31b2cb6507ca6e469d1cba0a746e880e01f620a090a1423e0801fd3430e0dbb1a0cf6e422121a0df2003bb0985700fec26142ee0d143102faf872091bb3b41bec0c2c1087502f5e6f044b8c03314d413d227c205dee0dd1d0b084636fef11347a9cf1bf90cf01e3d3f78000686d8e3e3dba1c7b743cfc37689032bbf9f5e110b7510e47ef0000ce40be1a18387069ce8cc91f3c6386f84f3263050efee2e2f2f709041a6d71870585bd0656d019c1bc01e6ddec866cd1bd57c1a34086a21e0643c63660d8182cb90f9451ca830464c9837827923005fe8ea0a27cc155628ac4037576837a16fc59a8107f7eda8403797b75660903525c74c95222808c829f4d1b703c88e8f3afe3e3f3f400813e66208f2b15823e0f6238093f3609e205fe01adc81b56797b567e10ffa81dcdd0902f670baad390f5f7306fad79c53f2fae0f20207d7dc38adb5edadb591e8f2462e5b5e859e8a1e7f7d713dfefa82050b96cab197c35df0c966b2952c241bc0da5a871f146c06d29205cb1baf58b902aca9317a42c03fb3b5b42a83821000fbd6d0207da350b047e11fe18ec2b1bbbcd7f6e2b57646f42bfc936576f8eb58332bb4999a35b32e7fa021e19a99df9ad98e1a663016520877f760c19ad9dc9ad9023138423dbe3fc01e837a8446f87ec0fdf90014142cfc03f463d0e3af2f2e820338414038157a2ae008017d2c80e3831be4fbdb61c8178481883939b9c21b7172727272853716f005eaf118e4d35140098e073aee74c0c1fd09ea058a5811820b21833f3ebfbc227c7f0bf204f57ef0c81becbb46b135b1556b623aaa5099f246296f8c0285092a4ab8a4c482c486891d244f0c7608eb981081c44a92812e0c9878b86bf1f724d42026610dda5611b97459f209862a374c82a296b8a1b3c204071ba99608217582ce00a44b28acc250e542344b52b75f16caf0d2a3c412184837186441a1844c11a31e0219944a787c0982886dcc05251158d8e9d1c51634c91a86176830d7a3248c94751c2d6a50214917a4952097604493d088e341c41a955d490e48b1a4e688310f49ad20cb3dbd2aa04032088429280eb48840222555af950c9a90b0b8144bc2dd985148d8d4100478d1c87184951462db83114c8eeca1302189013fbe2348b05cd151e10ee01111c90b4de264643952c6c6578f2b76020d0fed1e298b1c496108a7cb9a0b5f206530140c4311410e9b39430ca9ce9810d63d313cb679a074639735a22989844013397c18490340153e74e4de18f131e78e010c5c818cd01500890099a2b508b0121cec5aa9b95104d25d9945b296e82902c00e343486e81214c94b61c4f582125864c125225822a0a941045728076eb2284923722891292047f40811b1e283d52c482a221081f1c239838d862c44e03c2cb9830298a74258e9af5468926c15f6b9044c451124a2c22670f8965f84f82834110027532cf22c0bd356906232780803212ae61e3a45c17810d619e1045626326a080b35598a4178648db043e11052bb20a1112e69b989910167caa0a719aaea18ba200eb639f5a7c023424c837e660c11056138199c904a0e930d229506af0a2d8349f29682954c2089159dab2338e62f921530b9ac08ee38746cf3611727c138608267d6d87a31841730456a03b41c0e59446757eac8275543b6fc19f4cb0b8d2043667c8930d7010d6f88013908124daa2c90d620e0193b30af0205314890b6880e8cc02870b140a0a9f2219045e08045859a40bac10470151a319584a85102d4a324c490036619008fec40fa3142010318a2edae4110344400c95281995548c983bf5144024aa27aa6fedea06935a69713267f434cb830e5cb4799bf0b749c7571825cfe8c04f628baa288292453a0103430d4087d51a50ae931a74e240f2b6209a12380777766d080dfaf6ba00b341005bf478efcbe741964a6c2a34c7e38fae058b485f9c44fc1a2251396192404c17527e500dc6b1084802055623099a30b4228c88b2264722dc0930b02c4552c5b418a1625103eb4ece228088004c284151c091ac641202580a0f5e1f100098fd9770a06961f6c4078eaa303672aacd29dad3ec2566b9f3eeda8d1c721d0293b7654e4e95326f271e48e893d3f3af990d2cb50a71a3fda3cd5ec000682c48f203f24c4423e9004e6d30f5b65930c6491331f94c49cb6e21c88e543cc90016ac87ab3e2432fd7963c064c70f2f1609012564510537aecea3506169034157a28da616a16213d6b0f2d4082adca73c2a5878c2a94fe0c6089d9a3c0264f502ecb0c7cb39e04d45862448f2fd000beb4b9d5151f941151c8723d92c5a702d426153006d1f8d6ee1482fac0e5c39e2a43bc4e4d604ed8cb2386468f42a7f0f60c43a0b990e363640fc41ed90309bc18fc58c323d429bc191e3800e321001f2322cef8a0e311c805802079a424e271c7c44508566e2ef128d2c9a100cbd59b1d98769c29e00cc66a4e3bf8fab02a13e5393be6f47a41dac48b8f1d53cfd1dd87075c6e78d2f3024982a10d4a8ce8ddc8a5974011270480be16e9b8258148141a63ae0e433aa8a8b003818a823d3a5cbcc1c3b2c6452e1d6f9d64849804a880bc56a44c0549e6d9cae3d36445eb8e8f82bc25590258c3114b308f44e013c355856ce4e5304522865a2b194c72cc31d23122c88c520ec2628c381da33ce5e09023c9468831959e190e4e4d6454f0c35688834d0f3b7138f030c20124c32912615609c1612703c79302359d1834bc21c9141b2c3317366e84614282508751496ee8d1b10963a984dc0d07296cec4a6fb8fa0397c1462234265e3052c7d8c812f741d00565161b78360ad490256a47d1469c9a1a80d2da282439b0a4c613ba1a296a34ddc86284c666038d5434f0d03042e343221a621266809a11c00cc0191682cc20d29281298b8c32a764ec3591218717c56b64426e842330c0f0bce0d930c3434009580609a0c462d80a9cb4e7e06c430c4231a6b8a075a863cd4d8c16a370a9f111e12a060cf570ed6fcd7503c60025ee2000b348090c253046fcc0e2c7020a0430cc0625713c0a74be20b5ab7007283e3c5ec459f16290f942039e2c786ee9dd79813ce062d39b8b352efa5cd8b9b845a4232dc0406aa143488b0636ec9f620c242c74b140c4e24a1e8b182c089459116bc51fb5154e56a058a122950a3b4c154532a8f0b0a7222cc5a7146e52fca5a8b0227db561d5952215eca3d243cf0b8a4b6f856f02d1b4a1208382078a0827d6138cce4e749973a2468713072c99a86562900929265ab489355ab267c64409568325f6dc2891a484881228481c1a9280a34742b015890c3c18d85a74e30d89e3084d23d48cf8a16a449d086022208900a029224f0403582172854014c2ca0d01434208382f206081f003a2098813203ea0fa50e703910f1d3e303d78f2e0c6831036306e289020e2eaf770d9e4c155aac437e653141e66983a4088d2040a6451152e1c38d0e070a0d65a1a68ed8258b35bec2614d2d5155628948310ecc19a658164b5f6a5f7285898832007612e8e6f4f908f4f48e11f5fa09e90b5490cb7f68375accdd40147f8d757ebd711ec30d8a65f870e433d41413d383d3dc2bebfc2372a7963923722397228d8dc1220d0c5f1f911ee281cb46f1c14b471aad280b325040c9f5042d5e9d5c1509033c51f591c68f07bb61073c1e48efa24d39b15baeef2de26d8c2f0874b101818a803423ef048892229ce052049d507ae429190807f4106fbfefa84f009ea051a09012cc6c62180bf01c1bbfc82f4afd713acf10bc48382107e10ea054630240c3402ba80fb41a81708e7e7d7e1eeaece68be4ac8ed1844d1ab0bf1421d024540cd28a828072825e8d910e4d6fa2855c8fa90c4851154737f3a04804276b6e882201e1a1e85714d72cd48c1e287a8a79a46500c3d2a562161e90522247c44ed1a7022d384393fa290e392489d180648a06818e2e4d0522bbde2977470c308810851323929ac34d040f3578853013d3ad8b2401ad00a439b5f37e294440b20a6e8d1051507b440bf54ec9530046c878c0902b80873321900bf40b1b803c6d766040a85f093991e6c5376e0e2e3650cd2412e449a6064699021adc20a0637088d6cc2c3e1438c4e92d01ed90aaa00555d74cc295be54290409b1d7fda18d850abd0ca8a4131c26221e1125146daa03c20a22e7c68b85481d0608e0d13ec94ed408009520759741b7484d1b52a588e5a6d983038e1d067f82ad8b468719a34894d8d839c8f1e831ecde23343230b1d0c6e909451c2252516a435b660a1429501c62f1591dc903c31d821ac73ab93da5e8420ac225483c44a92812e0b5415ba3e7c8539f4d6c0ecaec5df93508356443a3385079d6026aabc35685b45e4d285891ce8a762293e10614d18aadc3009860a3648871de21e58683e99d1596182830d5465f4d45a69a22a4a0cdf489da03300974bba1cb0064d58982dcd5518aa5c78e60d1a242a14493ed10175e6f6cb42195e7900e939b20530c68cd699130ca41b0cb2a0a03140005e7e0762ad3dd78a18f510c8903c858a45a35a6f554e0d38fb120411db980b6c294451c06562937ae4c9c24e8f2eb6a00dd418e072967a7e6a30200c2fd0602e4755ca082d60b58489291868ca3a8e1635a8e027ca171c20323d507c20435a097209c65a2b8f1cdb03c358811306c4f120628dcaae14ac062c3a72a38e6a084d8a2535478c39040034e25218355ab124910559eee955e1c49fd5b8818e9143b43ab1813005c5819610b6b604f291d2124c2d9096aad74a864c5b965a9c263e058ba582ec522c09776344814a66d8d3c9b08c95259b1a82002f1a3912144678426b812e39666952886d0f462c91d220cb8f432f7809925346614212037e7c146264802b33b6eabd68c3724547853b7f04cc8264b7600097fb544b5e68122703cba45b1616bd18f1e60c8a3236be7a5cb103e8c9865edf985f942419dcec1e298b1c4171c5c125312668c738086a5dd65cf80229c305bc0d1a2891150d1160168622821c3672be4004e30b6466da23e396ea8c09619d1300da90718302d58a638d669b074a3776590fadeea808a095a01f09b32412024de4f0f143900c4137410bf0d8bc0150850f1db93784360eb94513893a50d79c73c700062e405d4af0e9817406edd522b30220112053b472b80384884d123242d75982835d2b3536caf0cae2c3c783565ed2acdd9559246b491e3c79014891654016e192b31d68680cd125403060851a3c2806baec3d531871bda0045eb03180985a99343569b37689089608686844525b6004519c5166d8ce4239709345091a9b52531e3da50489b4672253408ee80d32f34b802166020b391418e083d52c482a20a4da83b2252d01a33a15682f9c33d868c0e28a459f86222e26701942e661c91d14c03cbd18a4c2f7a043a30d5bd8d25fa9d024d59222e5cddf9d09483e3d689780a92882440424530b0432720871262083c3b7fc22a4072151715a98eda9b52a165b009c4cb1c8a374d4e08d8a282b5a71b293b6821493c1431732110224980e3e49e19531f7d0290ac6432c42a35c97b8a0d863d636c209ac4c64d42819806110ab01d0544049d3642906e191b53d34b93051b6107933a1ac7008a95d90cea07ca8513601540e585eda68b9899101478a1a4d0cfc1cd0b247e789da0c55750c5d1099885161f4960156815b76ea4f81478498f8de58e8d3030c862beb66c61051104613376d7415b6fa05034e9f5a2a394c36885452d18a9797297b1f02c13053a16530499ef2cd94bc386afea00180c89b0924b1a27374dc049661ce1d880b64a8f917c90a985c559ce0ba13400d28321c01333b746cf361d7a6330c64f84975edac997b032678668d2d175e461db2d297e614b03f4d608ad4066819152755b036044eb0f1e538a3b32b75e4532a597ecaa4e88321ed8d95f3cfa05f5e6804418ba128ad8007b3c45c58fb1261ae035a8c39a5ec4ac990810084af333908124daa0cc69e45acccecbc618af41c043c6307c61595279b906fa722f42132804182b445745eac3973685c82e2d62e466870b140a0a9e241552ba16652a0a2bc948c2d062625162e398ddcb102d4f203453a6051a126906e2c199380919b4f52dbe5892fb46dcb0cf15dd3bec74cff3cf555f2f95e0e4e8972efdcdb86b57dd758db64a95f7f7d5311df66f6252e78a78e2dd3c117da6b9becf26b9e2d72fd756de2b1f94f31df17a4e9face145b66fa856efa5a306f676d995abe2b8e5323877f7af8a6c4674a3a2d0279a7ab53abe3eda76db2c3af3ab66126be51b62dd3cd77153c252edff9e26b4cf4cf24a7c612ff0cb15ddef8421f7c8f8ffe296abb64f185c26d9979df35c2d768f6cfb9ed12cc17bab70d53fbaeea29b1d13beb7caddc5b225b6601dfd5d0d78afa9bf6bdb77e89e3ab5cb76510be4413effcfb5e3dd7a8e49f3ab6616edf55d69768e49d50b6cb535fa89eed72d2177ae67b09f824836d32caaf016c997bdfd56e9b2cf06b875323de3f517c6fdda779b6ccb42f94d536c9e5573cdf54cc3b9d5b6694ef0a63cb9cf35d0d4f8df69f0ebe76d65f05db25a52f14cd17a9f705606d95503eaa679b4cfbd56eab647e94c29778e39d45b6c92dbfdef91ac3fcb3ef8bbcf3727fbe48532f076ccb94b34909bfc2f812d9bc73cc7699eb0b65f42d32fa27d9774b6fefbeab79ebf6559afa5e204e6de15b53138f32fe19e7b4e8e69fc42d93c67765b0658af8ae6a5febe21205786799efb2deb2d82ed57ca17fdba48c5f896c97805fe8866f5af661875f239f7f167e895fded9e57b35d865e017ca61abccf0d11f5b668cef8ae07bf8b5812e92ef0bc8da2691fc6ae68bacf472a14e8916dee9e3d478e49f79a7c6e63febb6cc35df1570ab8cf1d1275b6697efaa63bbacf485a6d92acb7cd4d11679ebd7b2ed45b3cb00bed0c16dd2c3af7adf7b58a6812f14d7a911ee9f13b64b0e5f28d9f7fa7a26892d53c9774d716a8dbc3d756a1cf34f20dba4815f3d6c976fbed0c22f51d63b037d533def74f03deefa27aed322837766faa639de693c3502fe53c6f7cefa258aaf65f376dd2263fdaa3c2542df49c03669e1d719dfa3bc0ddb2ac97cb4d1f7b259a6f10bf5b45dd27da1f7bb6acb24f15dd7bec8105fa0c95619e2a3825fa3a07f1af95a346f757d91675e2ec93619eca30db6c934bf16da32517d097da158b6ccb62f34d6f7d8e89fa1b6cb195fe8826d52cbaf764e9765db4c3ab649c15fbd7c67f4d6ee8bbcff5cb749601f4df03d66f9a7a0ed12c517eaf64d971f7662ab74fbe888afb1ce3f877c9117bec090d362a27f8e7dd33eef8cfb9ee0efb40d9bf08d1abfc8b127e0609bb4f5d1b4add2c947f16cc3127cd75ddb24aa8ffe3562f82787ef33fe5cdfa36f696c9712bed0e23765fbb114db24e0af5bb6c92abfc6d926dffccae86b25fd0ddb2efd7ca152bee99677b67d91615eaec8d732faabfc1ed7fcd3d1f75b6f637c5316dff6e16bc5bca5b565e6f9ae4cb64c39dfd5c877bbffd4372df0637da74560ff6cb055263f6ab74daefd4ae1d408e79f805b26a5ef8a66cbe4f25df3b64afbd107df14d43b337cad86b74ab66115be51e4a911ed9f745fa49f9723e07bff9e88e97b0b7cba65bb2cfc42436c977dbed0285b259d8f7e3a2daef967fa2de2f927f29bc27967826df2d4afc1b6c9b65fefbe57c513995b2690ef7ab765fe8562fa16cdfcd37e8b70efacf4bd5f9e086bbb4cf3850ad9267f7d14c129f1d43bfb6c99cc2ff4f0ab34f4bd229c163bbc33d4a931ec9f11b64a101f1db24df6f975d39659e2bb0ed832557d573e5b65e047d37cef1fab6c7ed4c37699ea0b1de0b448f74e4e5fe39d7f0a6e9980be2b95d3228b7796da2659fc0ab84d167f3df05d8e6d33e56d95613eaa68bbecf5854e3a25fa7827922d33d877bdf4fdc85be437c5f3ce065ba5de47b76c93827e05f545c6f80278b64c0bdf35f94d1bfc98912f32d3cb1d7e2fa44fd6d82e3b7ca1655b2692ef7ae2abccf3bd9edbe5af2fb4d236ccc177edb5659af9ae40b64b595f68a1ef623fa42db3d477c5b30ddbf08d8e6d978fbed0315b259a8f46da2adf7c54d3d79abde53b2da2fae7dbf7cafae5892d5380ef4ab84d267f5df04d67bc33dd26777d94ed9bde3d5982ad52c347fbbe482d2f37e474d9609be9d05669e3a355261e11fcd3cc7679e90b5db345d6fa75ecf44af854cf9679e00bcdf555d2fa5e29b6c8027e659e1231bcf3c796c9ebbb3efa5a326f6b6d9758be501bdfdbe589ad4eaddfdb51dbe58e2f946ebbd4f38536f9222fbd9ca8d3f4cf3b217c91694f00cf57d27659e20b1d70ba8cdb6642f49d854da6faa8fd2a0f7d2fb9d3e29b7f16b7cb4f5f689ced52c9179a62cbecf55d276d938a7e45b5659ef8ae6d5fa28b770a6e9958beab8daf91d03f0dbf97c513c3b64c09dfb5b8452e1fee6dd2cdaf89be16d25fe676b9ea0bedb35512f96800dba4a95f816d956a1fedb04dde5f096c97735fa8fd1e7bfd73d717d9e20bd8f95e479fa4f145167939bc2db3f0bb86f8a6107e0c806d52eed7155be6f30ba5b55d0ef0853ed92a557c14c9f718e99fa3b6cc1adfb5c196a9f75de7b66170dfb5d6d7ce78cbe98b8cfb0225b64c59dfb5d0f7f6792382d36285777ada8641f8aec0b6c904bf86f80ee66d739b14e0d745dbe48d5f919c1609f8a7d8a9ed7b2b6a9b8cf3aba36d98d8772db55572f8689053a2f39d374e8ba0fec9f645767ab95cdbb006df35fa3dfef967a6af55f437f925c279e79989c649ff7cb255aef868922f52cacbf17deda9bf6b5be6f20b1db565ba7da1b2b6cab28f62f8eee177b54d36f8b5c4370d7ca7d89609fdae90b66116bed1e444e3facf2d5b64aa5fed56a9e6a393bec8145fa0ca2951d03be39c2ed9b699787c87be9db14d86fa15ba659ef9ae41be33af757beb37f1c8e09f67bec83d2f37e8ab24f5bd3e9c12ebdec9f7455a79b9beef05ee55ec32c8177a619be4f06bde7639e20b6d6e91af7e456e91aa7ebd5b25898f166e99655f28aad3e5db36d3de96a9e8bb7ef9de1b4f7cf1fd8b5d0ef9423b7c5334ef24f025e67a67a16d72ccaf7fbe13f016c296d9e8bb86f95e3b4f5cbfca51dfabc37649eb0b3df47dd75b19dfa2da3b216d9999be6b9b2db3d077cdb25d1ef9424d9ca682de1961bbb4f38526f95e374fbcf5453af80223b649e5af0c4e8d57fec9f74db3bc93ed9baaef04b14deaf9f5d29778e49d51bec8b32770e67b933c71d43715f54e0d5f0be1a66cde6960bb3cf38506f912f1de49f84d39bdf3c2d756b0ca351fa5b455bef86893adf2efa367be699577ae9d1e39fcb3cdb758e59db7be97baca44df6beed4e278eb69abdcf25142dbb0e6776db565bafaae81b6c926bfae39b55e6cd2d7470b7c8f02fc13d2f7ae7a658d2df3ec0b55756a73fd6db05d92f9427f4c348efae794d3e5816d26435be6fd42357d6dadbf0bb649b65f2d6c9799bed036df7bf84953a7c5b07736da2a05f868a6ed12c4178ab655a61f85b05de67da111be4531ef5c4f8d34fe9962bb54f585f2d92e2d7da16ab6494ebfe2fa5ee14ff525b278e790eff5f4494a5f65acef75e26bc56cd2caaf724e8d6cffb4fbde32cbf4f25df5bec730ff4cb455c67d74c69738e59d57b64c47df55cca9edf136d45669f6d10c138f7cffacb3652ef9ae2ab6ca1a1fa5f24d1ffc989389c7e33fbf7c8d37fec9629be4f1eb936df2cfaf9dbec42eefe4b24d1ef8f5c396a9e9bbbad932c5bed052a7c5e33b176d93c85f157c5346efb4fb5e41ab547e54c25699e4a373b6c941bf86faa6aede1962cb84fb426b6d936a7e35f4452af8021dbe97c413ed5619c047317dadf2adde9679f85ded7caddd5b23df94ce3b177c339d161fbc53d396b9e3bbd27d91545ecec757c9ea7b9138351af8278589465bffccb24da6bf16d82267fd1ab64dd6f8d5709b34fc95cc7679f7852ab7c91fbf52d932057d572bdb3012dfe8da96f9e6bb166e99b1be2ba12f32d1cb61da2e277ca1c62d33d4779db3553e3f6a628b84f56b72cb747ea1b3be3fb9c42cefd4b24d16f955cc57d9e97b61f86ee7ad81ed12ce174a64bb84f5850eda32d5be50759b3cf26b99d394ef9dc9ad52eca316be48e43f7d7d9ff5b6c59619e4bb5ed82e777da18ebec403efccb15d22f9424f6c939e7ed5f545127ab9465b659d8f82da865df84697dbe5de176af7bdbb7e2969cb5cf55dfb7cad87b76c4e8b44de29ebfbdeefeb7b417df2709b9cf2eb9bed72c917aa62cbbcf35d956c9981df95c3c4e3d83fc19ca694de5961cb4c7ea1a1b649561f256e992cbe2bdcf72b6fcdbe4408efe4715a9cf4cfb3af25f156cf77e3bf68bb8cf485963925aaeffcb36522bf50505fa28877fa6d93257efdb16526f842777dd3fb4c485be6822f14ba5d1e7ea176b6616cdf15d636e9e85756a7c5c177c6da2251fdfad7aabdedfb12e5bc93cd1759e20b44d92a797cb4cb36e9e05713a7c4fb4e165ba4af5fdbbe69ad7796d8321b7ca1d1ad32ca47f76c93b33e1af6bd399e2863abfcf2d143dba4a55f0bd82e857ca119b6c943bf96da326d7dd744a7c62efff4f125a2796798d3a2f29d8cbea2b64c21df35c356a9e0a32eb64b4c5f289b53a3df3ff1be16eded8fafa5740ff4d6c196c9e8bb823925aa7aa79fed12d2174a66abd4f1512d5fa38a7f96f8ca3a3d76fa67aa6d32efd7255fe4a397e3f4450a7a3945dbe4a65f6f9dda5f7fe3b64b475fa8986d92f8ab81d365739b69c777f56d8aed92ef0b95b065d27dd7bb65de7d57e576b9e60b05fc1ee1fc33d27699e50bbdf1bdce4faf7c8faefe09eb8b74f2723ab6c9b25fe5be44c2773ad986d17da377cb44f085eada2e317ca1cc6d92caaf70b6ca051f7db16512f05db76c9715be50e4d766791beb3405e09d6f5be4ae5fd3b6ca141f3db25d8efa42eb7c6ff087fa2227bddca753a3857f6ef822377c81c2edd2c3176ab65db6f942877cd3043f56b85dbaf8420b7c9112bec0df5629f8d135df94cc3b9f5fbbe0ade0f77af874d39708e49d49b64915bf0af95e114f7cabb4f3d150dfd4d33b316c930c7e25f14d557c5b876d72805f337dafa54fe2d82a777c94cb5609e6a3894e8d0dfe79b75516f9a800138f43fe8967ab34fc289c53a3aa7f56d922990f67b7cb0d5fe8d8a951cb3f7b7c9111be808e2db3c57725f045e2f802a9b6485ebfaa7d915c5e6ef09b72f836e577486f276c932f7e15dc32f17cd725db648b5f03b7c944bf9eda2eff7ca153b64cc0efbae18b24fe33fab504fc3d7e17f376ed343dfb3052a7443eef7cf3552efa5e74df39d930b2ef7a6a1b76e21b6dfb1a99fc53efbb99b76cdff4c63b8b5ba689efcaf6bd7b4fccf1456e7a3952db25005f288fad72f0a36cb6c860bf3a271e85fcf3cea931ca3f797c2d8c4b147c67932d53cc77edb165d2f9ae47b649571f3d6e97a4bed03ba74445efa4b3659a7da1a9b66111be6bb0ef2d745348ef9cb00d537e5751df629677e6da2a137cb4c536d9eaa3c62fd1ec9d78dbe4f1d704dbe49d5f299d1e11fdf3d376c9e70b85b26556faae69be7780371e382522dfe962cb44f45dbb6c93aa3e7a4f8b4cde49ebf448e59f80bed77a0b631b26f78d7e6a91bc45b50d33fbaea9b6c95b1f55fbde34bb14f585d23925be7a27a0af2df5b7b94d2af915cd3679f86bafedb2d4178ae77be73ec5f345d2f802a7be1ff8397d8949de29e5f468ffd965cbe4f35da16cc3d2be2babed32d117ea651b06e21b45fb22d3bc9c92ef1a7e565fa3a17f1ef922db9ec0a5aff1d03f917ccff2f6ec7b057822ae6d58886f346d1b46e11b3d6e93847e15b5bd649f7ef8224f7c0129dff4f09d1bbe4a5e5bb23adb3009df68f1b448f64e475b26856faf8fc27d2f189bccf26b9d2dd3eebb12b74ab28f5ed82ac77c94d13639e33fbd1caf5362a177ca3925fe79279c2d33cb77bdf14dddbcf3c0d7deb738b64940bf7ada869d7d57555ba58c8f46d932937c5714dbe5a12f94cb69f1c63b536d9363bf4238b5bcfe3ad8260dfd7af8bd77e9b1cd3f1f7d6d219b24f32ba0ad72eea337b6cb1c5f2884ad52ce473b6d956c1f0df1bd923e6963ab24f05114138dbffec9e5bb9b34edf24eb7af5df5976dbbacf58522da2eedbe50e277bc1fd7d762bac8502f07fd5ee3d7b555f6f828005f65a3ef55f74d8dbcd36c9b0cfbf5c1d762789be46bf5dc03dfa6a7c508efdcf44d61bcd36e99bfbe6ba5ed15fb94c33609e1d714db24885f799c1679fd53c1f7d27922f49bd2fd989b2f12809723f2ddd15dd15bb9ef45f4c9b96dd8886fb4b95d02fa42a96c9947beab89add2c547997c8fb2fe29eb8b94f105f27c2ff36fdd7609e30b3db05502f9e898ef70bfa6af65beddf13d76f927a1d3a29077befa1af7fc93f094c8e99d7ab649e847ddbe455fff64f02506be93c976c9e80b05b35d1a7ea125be4530ef849e1227bcb3c776f9e50bddb16562f8aecc6f7aea9d1db64c51df95ce9639e5bbe26d93467e1df34d09df4936f1d8f6cf31138dbafea9659b24f02b876db2d0afa3b6c925bfa6d92e5b7da180b6cb405f68956d32d747d7b6ca0f1f0ddc86a5f846dfbe46c17fd2d82a477c9470e271f94f00b6ca021f4df1bdb57e7963cb6cf25d597cefa0372a3a3512fed3c67659e50b9df1bd9c3e3969ab2c7e546ebb4cf285a2f85ee82f277d8f57fe1968bb44f585eed92e07bfd00f5f3be86ff1b438e29da34e8bf69d89bea900ef44b05d46f942616c93787eadb45d3ef9425d6c97027ca1845be58d8f5af916bfbc93d73629f66bdc97b8e49d534e8fb8fe796bab84f3d14ddb24895f7d6c9919be6bd836acf85d3b7def9527aeda2ac73e7ab70db3fb4689dbe5a62f3480ed32c517fab65ddaf8421d6c93a37e8d7e894dde49e58b64f27239be483e2f57e85bf4f4cf015be6d8176a6a9b8cf0ab8aef75f0699d530b6891ac7e259e1245bd73806dd2eed717db25a22fb4cb9758eb9d83b6c8e8af03be69851f13b4657ef8ae67dba4dfaf58b6611fbed1b3edf2ca175a63cb64f35d03b74c49dfd5ccd736783bb84dcefdcae25b647ba7a4ed12d717ba68aba4f0d11ddf5bc12a257c54c7f752fae48dd3e3af7ff2da32e7beabdd2a837c94cc9639e1bb1abfa3f80bd82e0d7da15ab649c25f01d832c77c571f138f23fe19c05669e4a36fbe37cb13599d1a3ffcf3c317e9e30b14f04d4bbd93c39679fc423f6d975bbed01cdf628f77aadbe4d9af745be6a9efaae7abfcf4bd346c91b27e5d9e2a037dafb8af9df0d670abdcf05120a7e99377aa9d1a7bfc13c696b9e7bb3ad932dfbed002b6ccbfefaae1b498f74e55138d97fe09e5b438c03f955be69fef3a659b2ce0a3ccef32b94d23f4bd709f6639351eff19b765e6faae8cb64cbfef8ae19bba78e7a7e9ae77a23835b2f9a790ed12c7171ab76516f9ae23be45b7774efa1e37fd13d536a9e35726db30b4efbaea9be2bdf39e5ac1b7a5b64952bffada2a197c14c697e8f64e1b5fe49a9703b35dfe7da11abe2990772eb74c1ddf55eed428e29f20bea77a4be28b1c7c3917a745bc779e3a2d3e7967ad6df2c3af3bb6cc21dfb5c37719b6cd94e3f418e89f9abe299177966d99f60bcdf43d22f9e79e6faae39dc7edd2c2179afc5e109f72da2257fd9a7e5302de39b74d3af995cd3639e75748db25a72f5480ad92efa35fbe16d6dfe72951cf3b05d81e6ffd93d6f738eb9f056c9975df353d2d4a79a7ad6d92d647c9be77c9130fbfe9df3bc3b677ecd30e5f25ae2d9999efc89fd1a931ee9f17beca02be178aad12c747af6c95681fddb05d42f9425f6c9975be2b92ad32ce47396d9930beeb81ef8df0e99dd3628a7792da32a97c57195f639e7f0e6e957fd4c13679e25720db24deaf85db300edf28d9f7ca79a2aeef826f895be5998f42fa12fddea964bb24f2858ad82ab37c54d03699e357255fe59deff5b65d8ef9427d7c8962def9e57b5cf44f505b658b8f2ed932c9bed053df54d63b477c918b5e2ed3f72e6fd3b6cb505fe89cafd5f4b76c1b76f78d2ab7cab68f8af81267bcb3f0bbabb72ab6ca211f55b35d4af942637c9595be57852f72cccb196e95393e8ae5abea7be3d4d678dbe9b498e49db3bef7bf10261e57fcf3cd3619eba3ca6d52ccaf7ebeca48df4bc297c8f6ce1aa74452efe4f35dd35b0ca7c70cff64f33ddaf927a56d92c2af78df74c18f11f9229f5f20b9559af868912dd3d477cd735ab4f54f04138f73ff4cf3b59efe9e6d99b8beeba2efa7de8ef84ef647fa228dffecb55dd2f842196c9961be2bdfb7b8ea9f705f63827f563825f67ae7a1ef44de1a4f8d4efeb9631bc6e0bbae5b65838fc6d832a3df55d27619e20b4dfb16f5fc33b9551a3f3af75512fa5e10b64b02bed02d5be5fd68dc96a9e7bb36d926657d74799a4a7967739bc4f5d1e656c9e6a3954e8bb3fe79e07b9b9f4e3935d6fd33c39669e3bb3af85ab2b77bdfa3947ffe393d12fae7a62ff1ef9d4bbed7c513c5be4bb86d2642dba5a22ff4cb57d9ea7b95d8227bfdcaf65da65bb442df14eec76e7c91865eeed19748e79d6db6cc0adf15f94552f80280db64925fcf6c9383bf7ed98675f846cbbec42befccb20d2bf18d0ef82ee92d85aff2d5f732b15542f8288d89c7b37f86d92e577ca1cf2fb2f9042a6d997cdf55c2773c6f0f9c1281bd13d176d9e50bd5f14d497cdb852d73c017faea7b613c71c096f9e2bb1a38bd093eedf2bd4d9e48ea7bfd9ea8e84b4cf0cebcef9df2c454dbe4dbaf18b64bbc2f34c13639e0d70adb24965fe97c8928de09f84d15bdb3eebb8e3fba4d9af8b56fcb247ea19cbe8bf8616d93997eadf54d11bd93eed4d8f7cf18db65df176a61ab2cfca89b6f9aeb9d27b6cc47df75cc5679e0a32b4e53e333274d3c9ef8a7005f6be9efd8c4e38b7fc2d92a077c14c4e911d43f556d97755f68fab574defefa121bbc536f1ba6e11b15fb8ee86d84ed32cc17cab75d8af9427b6c9782be502b5fe5a3ef65b745d2fa556c9b04f2ab952d12fa6bf39b9a7927dca975f336ba65c6f9ae45bec8372f8767cb8cf08506db26bdfcaae78b44f27235beca4bdfcbc2374d7e9889d322a17f867d91802fa762cb84f45dc99c123fbd73cf56e9fc68892dd3ce37fdae9bb6cb175fa881ed72d6174ac0366cc0777df51dd3db0ba74633ff0cf245f2f802b1b6cc3edf35ca9609ecbb5ada329d7cd7165ffbe4adfa1dc85dda2d1aa1ed32c6178ae09b3a7f4cc6d782fa8bf6257a7827906feaf74ee6d7debd45f29df55d2eb7032a7c2fde132d6c936abf4ad82aad7cf4cf17f9e10b186e9952be6b8c6f31facf055f64dd1710f24de57e2ccdf7a27922ad89c64dff8cb265e27dd704df9beb9760be47c37feaf99ee322a1bcdc8ead12808f22facef65bda2af33e9a65cb24f35d7f6c95691fe5b06532f9ae2bb64950bff2da32fd7c57295b25958ff6f91a01fdb3c8d73afabbfcbee4ad72bb847ea190b64b1d5fa8dc7649e70b3db25536f9e89d6d9881ef8a6b9b84fb75c396e9e9bbc2d92e7f7ca1154e8baefe5960ab34f05115dba5962f14c797f8e09d3b4e8f39fe39679bd4f4abadd3a2a57fa27dd342ef94db2677fceae47b197c4a679b5cf0eb886db2f05730dfd9bc7ddb327f7cd70adf54f09d635ba5978f12b06582f9ae7b5fa2da3b677c8f7afe6969ab8cf0d11adff4c83bcfbe36cadb56df63a57f96da329b5f68abad72ca47f97c9106bec081af95f3d6d79639e3bb2ed832db7cd7215fa4e1cbcdd82a517cd4f08b1cf572ebf7c2fa2589edb2c7173ae13ba5b716b661f6bb66faa620be4dec9bfecc47dfb7bc45fbda026f01b74934bf12da2acd7cf4d15609e3a34ebe17c813136d974cbed015db300fdfa8d9d7a2786be96bfbfcbddbe4aa8fa6df2219bbd4f0858a6dc3d6beabab6f8ae1db8c5be5848fea4d349afa2795af91ec9f72dbe5ad2f54d19748e49d4fb64a2d1f1d745af4f3cfe516a9fce7afedb2d0179a659b543f5adc86ddefaa69e251c23fd59cdae8df07dba5932fb4c52911d23bed7c2d8b8b5cf105ac7c915e5e8ef0d4d8e89f4dbee9d88789fa160bbcd3d236acc077bdb55dcef9420db7cc5ddfd5d137f5f06dccedf2ce17aae4dbe8abb4f5bd546c931b7ecd716ab7bc95756a79bc05b54dc2f9b5d1f71e79a2a82f92d4cb454fd31def446e9381bf72d932b77cd71cdfd7fe4adfabe993795b6687ef5ab65da2f942fd4e8fd07fe6fa1ed57fbeda327b7cd7095b25e147db6c9366bfce7d8f04fcd3d3b7b8e39dabb6c95a1f35db86d57da3e91789e00b24f85ec2276eda2ae53e6a63ab5cf2d13adfe3aa7fbada32077dd72bdfabe89376df7bff46382dbe78a7a9d3e3937ff6d926cbfc1a689b5cf32b015b26812fd4d69639eabbd6393516f9278ed3e2a87fb66d99b3be2b015f6499973bb26576faae6fb6cc32dfb5effba0b70fb649007e1de08b14f27228bea9db8fb9f822f3be80aaef49de26b74a371fbdb46512f9ae22b6493bbf4efaa6b3de49e25b3cf0ce4bdfe300ffbcf4bd3b9e8863bb54f1853abf29ac778ad832217ca1c0bec42defdcf23dd75bbcefd1d43fd56db2efd72a5b269cef4a64cb14fcae1eb64abf8f969978b4f0cf35df495ba691ef4ae26be9de16d92ac57c74d1f738ea9fabb661cbef3aeaf4a8e49f039c16e5fcd3b84df6f855ca3689e3d724dbb0b2ef8aea4bacf24e2cdf45bd05b155ae7df4c35689e5a381bec427efacb25db2fa42fd6cc3507ca36edbe5ab2f54d0d70ef0d77e8b8efe59b645e2fad5ecd4be211efbfe69679b7cf551e43659f7ab8baf4df076c83619e6d73edba5ad2f34d196c9eabbfad932955fa8a82fa2d3a38d7fcaf92a7b6dcb227cd354eff4b05d7afa42e16c993ebe2b856d92d2afb1b64c15dfd5b95576f9a8a16df2caaf73be9683458a3d8106a74648ff74b25d9af942816c97bebe504adba4865f717ca7f3b6c09639c0777df2452a79b91bdbe5a02ff4ca3659e157195fe5a4ef35619b1cf16b8fedd2c8174ae27b457d92d456b9f7512fdbe5852f74f96df5bda52cf2d7af6e5be6fa5d236d974dbe5016a7c5c077c2faa66ade5960abecf051bfadf2c4478d6c93cb5f1b9c1233bd33cf3689e857535be6da17ea6acbbcf45dd77c8b7bef64f53dc2fa67acaf11458db687fab73c5f31600f8c8827345b31021e98ddf6acccd653aded63fe2dc3f6cc6e3de1198b6ccfa86c3d95daaa59d8de92b025c3b4e514b625c2f8b912bd567d2ff137d4e9f1ccd785384da67d9da76df1cfd301391d5bf3c0d6d3b020ff6bc8b68cc496d3946d9a723bcbc1d64cc3b613005b332bdb4ea5b663bf3e588c2d1adcf653912dd9950f366b9bcafd814ddbb408db5942b6c4213fd7634b06e583a9dbb4c11fa8b435863d9d9d2dd1c7cfddd896d1da76d2b03d883d83db7a2adc9e7dd97a7ab52df3b5edc4622b16e9816d3825ee79baf4cb7cbe2f4a5b628e9f7bb1157bf4c0326cd3146c67e96d53491f61c8e937886255fe17747b56dc7aaab12d067b3a35dfd7ec5ffe8dc269da96ad2db3d3228ea79b709a5c7e9da6ad25f3040e6ccba0db4e28bec8c3af33b49dd5bf11da8e49786063b6441d3f17638bb6b6fd04b84d76fa5e7e5bb3515b4f7275fab66699b69e126cd3b33ff0676b0663db69ced6f6783832bdbe9c8a39f85f7c4eef893f40b82d1bdb7242d10bc8562cd50393b125bb1facc6f64c6deb29c89729c0ff626ecd966c3b6ddaa6d96d67096ec7be3cb05cdbb4ee0f78daa6f16d67e5d91a833c9dfa6522fa5f6cdb94d74750b335ca783a4d5ba2999ffbb235c3b2ed746a5b843edd982fd3be2f43a761cdff15638bd6677b2ac3d68ccbb6d3aa6d9a733b6bc5b6ccc4965395ed1986ad272f5b32535b4e6e5bb1021ed88eeff2d0fb42b31d43f5c12c7c97c1de57a16f91d3d321d95a3c4f20c49709e97f39bf4a45ef2bc1962ccbf6f8645b8669dbc9b93d7bb4fde4dca6b33e4298d36389af93db9e096e3d45da9615d872d2b11db37b6062be4a02ded7816d5a015b5b1ab667cdad27bfad1df17046b6f77d6a6b5b966e3971d89269da721a3b55fbb0bdd5613b16fd602e4eada32780772a46e17f01da8ecdfa6022b6cafbbdca6cc9327cb030db34c84730db920df96096b6666fdb4e82dfa5dafb62f15dce785f41b66889b6a74c6ccf826d3fe17d9140beaecb962cd49693dae9e5f307c46cc9921f4c6f7bf667fb29ecd498e2e92a7d9936ded7ab6d1971cba9c356ed6d7b6bc0966ced83059e5e457fe0cc96683f829c89462c5f67b768046c4f8dd89e81d97a8ab5357bb0ede4e49419f8be706dcdcab69d7a6cd31b1f213d2d1a79ba0d1b8db3be6ec036eded2cb7add8ab0796632b86e98191d812b5fcdc936d59982da7525fa6afff55618bc660fba9c9a9d2c6f7daf51d233e30c3ad599fada7e4162dd87656db37b9e67b15b763833e98d9b62ccd9693ba45abb0fdc4657bb6b7f544e81409f77581a7615cfe9792ed5990ad2745dba2a0a713f215dbf4c04c9c16973c5d87add99b6da7e8168db9fdc4635b86dc720ab1b5031eceb83d4bb1f5e4669b166b6b0bc3164d70fb2952dddd76107fff6cd1cab69f7e7c9739ded75faf265f2682f775695b4667cb09d77651ffa6674b04f17316becc59ff6b6e5bb6b7e534674be4fbb91a5b62818f10a957de76acc503e373aaf4f1bda2db32b62da719db3409db5984a76973b6b6dab6f7ed092c997884f2751ab68bf9370cdb33e2d6138d531be909c8382d62783a075ba2919f13b24d277d04c153b118ff2bd1762129d1d1d329b729a18fb0e3abb4f3bedabecc0bef4bd477a9ea7de1d992c5f86077b66758b69e526d8d7e4fd7ea34e9fcba505bb3be6d2702b66540b69cf46cd1bc6c3fc1da5ec08ab57a6037b66680db4e8cb6c5e8d395d992a5f8606fb664523ed8ab6d99952d274ddf259ef725668b866b3b6b6c5b6663cba9cc96ecd0f608686bc660db69c956ecce0323db92ddda728ab02d83b2e544e99bdcf075ae4ec7ca3c305ea76174ff2bc7d6acc6b6539eedd9ddd61397ed7eb6ccd3b6d3812d59ad2da7b8edd985ada72ea76261ff6bce76ecd407abb0351bb2ede4687be663eb89806ddae323846d8bb69eae4b9d92d3e59ff755663bd6e38141daa631fe81925302b645554ff7644b16dd72a2b045c3b0fd04c0574db9b5e5b7250bb43de6e915664b16c0f668e6344cd0ffc2f26502fb5f16b6687cb6a730f4e2b235836e3da5d89e7dda7e82701a76eb7fb1a1dbb34dd5fe80a02d59f383016e89187e6eee74d9e17df1f83241fdaf04db313e1f6cd96bc896ccc607e3b34d0bb19d4585ced19678f611066d537d919abe2ed03655f311427cc5763db0c0ef12f9be4a7c997aef4bd6d658e3e93a6dcd066d3d8d6dd50e6c6fc16d8de9d3b9d99ab5da7ac2b02dcbb1e584669bbafd814371726dc9146d8f83b669de47307e9973efabd3d6527902665bfbe1e108b766c46d271adb33385b4fbfb66525b69ca87c9955de17b06d599e2d27e8d6ee783830db74ed0f10fa2e23bdaf36db94d44788f22db279ba1adfb1fbc08c6ccff26c3f19b762841ed8dcb678ebe9bc6ccd0e6d3da19d8aedfd2f47a7c5134f27b74dd97c84115fe596f7c53c45d6f93a3a5be28c9f4bb145ebb1fd64688b76b7fde4e574a9e77d8dd99a91d9762a608bf6687b8ac5d6a678b825dbb2055b4e3dbe4bbcf705646b1c7cba595b31550f6cc63635f411f6beca55ef8bc2d62cdd769ab145c3b43d45e3f438e0eb0c4cbc4bfe00942d19820fa6644be6f6c108b76826b69fda6ccf0a6d3f9d7d97caf765629b8afa084eb6661eb69dc66c4ff36f1fb66494b69c925b2390a763b54d957c8403db3417db5961b66861db4f7b754fbe4c46ffcb6d7bed1308fc2a05785fcd6f72edeb3e7d9962fe57717bc663eb69d0f78ef80382db32b92da7bfaf12cdfb3adb1a913cddaeed189507f66a7b76b79e646cd1e06c3f053b2d4e783a06a745054f77608b066a7b4a6fbba57f13608b8663fba9cf960ced83f96d6d9a2720b73d3bb2f594696bb669eb69c1360dc27696dfb68cc596d396edd88c073668bba67f93b33d63b5fd84615bc666cbe9d5d6ee790224b616c6c349d996c5d8720260a25894ffc5eb3bac779ad992c1f86076b66894b6a7627c9311beeed4d66ccdb653ae5e4cbe46b8a70bb41d23f2c0406dd34e6c676df9329bbcafe8c43bf6048a6cc9366d39919d2a337c2f595be2999f03605b0667cb89d696a8fc087bb66868db4f41b663793ed8f134ecccff72b245fbb0fd6466e271c2d73df8de0c7f40c8f60cd3f693825e782e1e0bbfeec200a7617fff4b702b76ea81c5d8a2996d3ff57d978fde179b2d19ae2d27b9ad59976d2756457b642291d6a61fefb544a2f1fb35a6138bc45b46dc162ff258fca6487b37a647257162d15ae2982dda89454b4cd3f45a644a4c86d9a2bdc424f2a66245e4d9f7a6f6e2f1328946e28074e34b35a2255b2e278e765a4c275ea6315d7e97ca27bbca32b2a332accc88744b2dd35ae5c463ea36d9f17b6df22a959f12c752a27d5ba0b892798dc42d5af28d587c5b76c398466393a8842b3b8a2997d61ae9bedf23f1da3223128d982e2676e036b2621801b66d81c99e40322da6b71dcf8e4a6b8dcb9458661c501ced648a9cb9110d893691ec16ed991dae487cb48d4fb646e04f963d91b8366026d9621718f9621f936d2fb78f8d2d53a42522276c9909666e9337554b3b359a2538011bdcf123848b2f7ffbf882aff132a35bd896b8a0c083893378c769a762082a3cb7cf013341a821add1dec088664cc9c2b664c5d5221857da91e96e1fd1966427a07032c9fc7b8689ccafb22dc11c82d30c1bd8f918dc0656654c99df63bb7204667fd11e7c14f36758363fea3d39c0e6b0894798eeb3ef3b9228c79bc0636b0973644c2d18bcbc0b71c0c58f6b97d9cad9ca28769addc58e5d3cef3f3e38c962177f3ab447591017fb3c244bc01f47749b7d0f7323898d374761e986f1808d61a79e888477b14bbacb7c41faed3d3bbdd0a7fea59d14f15c5b293fe612692d66fdec260cd06077e1fc6b2efc1ab55f33f66b8aaf06d8ab593f05deab21f475e3e5eb46ecdba6f828a05f36963e8d8f4751c0a3b0f4687e3d1a0ef78cdc9fb0f465807d19455f26ce9761f027ea9e4caa6f983f4f86c193595e3062dec4005f30ca1f73ea4d1079137fdf2f6c5f2f217e8c81c731c08b59f425d4af96221f06d09708f361b07cb1441f4cda03b0fe9724ff05d47ff9f45f2abc97b62f1508efa5ecbbd8fa2e60be520af84ad1b485d31759eab5d47a2d855ecba4cb24c26b29f25ada3e4ba2cf52e79b44ce6789f158aeb079118f5e04015fc31e5f2378de8ed05789be08095fa5d457f9f425e2e3abf0f82a3a3ec4fa55ec5341f5213e3d95294f25c853593025d55311fb29557eca9c9fd2f7537cb0f81041be819abe807b3e84de87c0f1057cf052f6be83925e8ada47c1f5516c7d08075fbf4e5f2141be7e131ecae143a1f450243d9417505a3d14430fc5c043b9f350783c94b71b04c33f51ff89a17fc2e79fec79177cfe499a7f82e59f787910419e8b9a7f42ac43f3ad03e0ebc3cfd7479cafe1e79d687810cb77927e9301fe43a76f5dde3709fcf2c9f9263abe7c06be7ba2a2cf24cc9787866772e4bb23d47fa0f1dd31e2bb63c17fb0fb25217ec97d258ffe837d253cbe79535ec99f44d52771f51ed87c124ddf1b4dde83824712e99138fadaa8f31eee1f995523ce9746923fb2e28f98e810e10d635dbc465f3c336f88f7c54bf01c54bd114a46547c61bc3d0731cf41c417c152c4c4f38b38bf2deabe2d067c59dcfab2c0c501f91b7c7d5980f8ae08f45dd1e689907d09acb928be7ca1862f8a095f78e037b43da1a427944278e309476808f4836f5e839d1fc4f28347be24d0be2324bc6098176cf215817c4116820bbe1feafc10345f0f3c7e48886f11c107def9c0221fa8e4034d7c06311fd81668e1011d7d376cf96ec8f1807f2f64fd6ac8f47f8f32d4fddfdfff45782176df0cce1722e5851879217d2fa483100d2f44edfd7cbc5fa5f73bf4c550e8fd547cefa2dfb7e5f74ecb0721b4e683083e06151f04c6b7429c0f42e031ac3d9051df09013c1039df07ebfb02f83e0ff7a1fd8fe7ffd8f2b513f2c3c5fb90f23ea27fa1c4b76ed1fb78f13e72bc0f021f427d933bdf03cd2dc27c8b2f7fb7ea2f202f0cf81e25be07f4f9547de594cfe777e7f77b457e2fcdef2db983f03ce63c8f46bf57e0ebc0d6f358f53ca03c8f1fbfc3d7f3c8f075c07c1e2c7e07a7dfb1e777e0f81d6dbf83ecf576957abd3caf27c0eb0d70e4f550e8a1783d12afe3d13701270b6e6fe1ee7538f9bcf5f33e7d5ea5cf33f315547d5e90cfdbf1d513f5a50bf4151ee515f827f61a98fb1cc0be017cc9f1e773f0f91c7abe42922f01285f61c7e7e8fb1c193ec782c7f1eb2b44781ca91e07aac791e47104791c7fdf37f5717cf8beadfa1b5afe06221d4fc1c9df28f0792ffe86f16d04fbb6adbd0d5c3640bd8d45df019034bc0de44ff0f513667d8d1e4f03d4d750f035da9e86acaf1aacaf9a9ca7b1e36914781a6c4fc3f83378fd8c5b5fb4553fc3cecf98fb19742f03cbcf087b19b95e86a59f310b8ff0f15abc8ca60cb58fa1e863f0f918753e4699281f83c7c778f131c81ec6ae87e1e661fc7818241e468587a1e66118ff85ad7f11ebbbe4f12f4cfd0b491f18f8553e60f22f94fc8bc17f51e3458917c67f517c17510969efa2c8bb107c1722dec585b733f52ed26fa1ebebc5540b3baf82d2b710e05b8cf9164f7c0b2ddfc2c7db09fa16ddbe45916fb1f72d607c8b145fe3dddba979169758947916479ec5fd158456e850d1e15554781519b6990001fffe040d12b4cd24382410f06fc63613df36938ced00b9ed000982b66979b66981b66886f4a00ddaa209da9ec938d3b03d1b41b72d53b02d9b7b73664b36684b56e68b870e1d12f4c54eb05eb96aa5ae5285ea54a9c351a24281f2d489d3264d99be5828d01731612a544851a22fbe2ade2a86fa355b7ecd87ef924ddf1b98be2e4a3c070bcf61ed2fa4f9d675fa2e00f15d60e28c1999e598513f064f4c92ff42e4bd94f92e82cfa502962b570af82bc0ae4cba7268ca5be9f0540c1f0aad87e24283121b9f04c99e3742e98b70f822269e48ae27328ac8f389bc7de1852f343ee110c13c2f28e18bc409744efabf512fa44310c3f781f73edade47930feff75cfc9edbf360f43bec74205f4fc5eb00f579773eafef7384fa1c9adec682afb1e369c0781a207e069f541fa3ccc788e122fa2e1e7d8b26df22c4af68f22d7e7c0b3faf22c13f59fb7a98f53a0a9fcc851f13ecc5a8e2f2e7b5203fcba6c762e1b1d8b722e6ad907d14194f0cdf4901dfa4f84c047f49875f924482e88f38f9231cde70cb1b6a79431c6f88f7862cde90c41b9678430d6fc4cb13167841073fe4ef010bfc1fdb0b29f23fa47c0f2fcf97eaf956bcdeadd7dbf27a3f5e0798bff1f737f67e869c9fc1e1f17e3c9ef163a4f9172ddec5aa7711e95ba47816ad7e059e1703e8bb94fa347dbecc8227e3ebc9d0fa2ebfbe4b85bf02fd2966cfc4d02721e0c7e0bd219737e47bc31c6f88e18948fac106dfa2d4f720fc19353e06a26fc1e1736c7a2b585e4c8aaf82e2b95cf81e7d5e88f36d48f9249e7ec7a6cf01e75d1cdfc5dd4399f02a103d96191f58e605117d922f8f04ee8f4c7a27ae5ec8a4f731e6d5ac7934325e4c002f25fa84647e08a687f1f67f83fec5861793eabd50fa2aa8becaa56762f885a99ed0f87eacfe879cf7a1e27b9cfd0dbe8731f62e18bc98293f9aaf07e2f3b03c97062f04d6e318f02c1cbc1823bf03c2b710f26472bc12b23712e40b693c61f2ffd0bc900eef03d7fb40f22eacbc1808dfa3caafd1f25d927c145f4fc4c30fb1c457e66f6c781bb39e85a85731e575a07a3181de4b9f37c4f32bb03c99b51f43e2c5ecfa2f76df44c43331f3847d3f38c0eb707b1c83f0d657b1ea070b3f89860f82e77920f93c5d9f235215451f08e961187a1701bc8be60360e2bb18f828b39e4b826f02f84a72bda1a427b4f2434a3ca081df33b35e97cf41f85c767c9022dfc3d1bb38f36a2cbd9a316f06c887b9f3860d1e10d8f335fa1cb29ec6e0c3f0f02e74bd974b7f45d33f01fc24adfe87936f11e95bf4bd0a3c5fc8f73cd8fc1356bf03d8fb55792e7a3ec8a0bf42e7a394f822f667e4f8178b5e4981e733f27e945e45d8e7cdf91587de48af7fd1fcc2c01fa4f23accde46ab5761e1af00db71e9b1347931850fc5d62b21e08fb87d0b4adfe2f09b6079179a5ecc895f42e1954478c0b11722ea819cfd8d1d3f03d48be1f55914bd11492fb8e39b2cf9243a3e8ff8334cfd154faf86c903407c28915e099b3764f246b27c9ae89f01fc3174af85d64fb9f1538cdfc43e91562f48f64036fd1ea37751ea5b00fa1553be8ba517f4f54280bc8fe6e790f4559eef04d4ef88f456f65e4aa5078cf53858bc1ae74f897bc1b60f42fc1785afe2c997b1f55e807c940c3f58ea0343bd90b60772bf0b97af027d2a837eca866722e589f4bddeaea741e26350792f999e468b3568fe05ab5741f77f993e0ba4df22e97be4fa2c247eddb2558b169c51a03abd9c194d2f67e61224478c121d32444810203f7cf6e4b953278d0824460a5fce8ce0cb9901fcd1634f2f0f870d1a3262bc68b122c5cb9579b9130d48bd5cf2e5907efaf019e08b172549eacc91e386ca14284f901c2942645090afc09e8631a428a0770612213e60406060892c906ae28409cc974f2b3c812e70e9c3ddbfcf9c3973d6ac0911621d72e4b479f3e6cd9bb451a2448d1a356a040c18b03265ca202dd1f83cf43c34664c180f21002d27849d68f460f7ec9933674ea44891c68c19030810a010686821b6dbf4d06ff7cc99332752a4489f7ab0a379f0d0a851a3468d1aad59b366cd9a35870e1d3a74e850993265ca94292348902041823c78183366cc98311e3c000204e83061fcf8f1e3c58b17b4f4cc9ea19da5693269c0c01b480b93856d85060c1830d0d6d6d6d6d69602260157f495e82b9126f9f8f842f085e00bc117c2d8e10e46636aa04387f4dee4df41af8365f2a952899c9b9b3360e0dee30c23338ac82822a3888c22328ac8208247042f25a6695c9c9cdc0142188430086110c2187c31985a03068ec7b93922d18081e3f1c04fad1d10995a1b17373767e0783460e0781492e2d3b8b8b9392211851f8a2027829c0872a24f4e0e02841f247e90f841e207091f237a884815c8c9c5c5594bdc03b107620fc41e883d100ae6e65203e90e0f08fe0e1e3668c0705716b64c1ebf4dc2b7159f0cc29321e852074e1b345f86f0f9b1263f36c08f110afed8901ff3f3631c6ce0b540f163807eccc38799ba24e9c3427d988c111fa6e1c3443cb393224f8e9ed9e999879e89f74c11bffcf4e89704fcd2d12f3ffdf24b815f62f825815fcad0b0c4fbe508076e4db50aafc4f04aba3c6e3e59e8936d3ef989804f3e8ae0a00001b7a65a5a9ddc27317c7281a6449d4cbc31068937c230be78a382130e4628207e201af860e083811471af5c69705658ab405ca3d09ca0160ad4a7c634a41cd90435622191f043853bbcba4f91122aac110dacb1198967c4b4d334456a74a891a0468200f9d9f3a68ca0396fd6941913e607e4e5537be1afa0f46c431ac715802b0001152838329909122448505636365656363656563636565636c617822f845e07bd0e5050aaa354b98f1103b95f2ca0052b00570439e16384ea48af4387183162a4482693c96432dbdadada98c7a33da56148a3888cc21885310a6314c6288c5118831006218cc117832f065f0c7e6a53265381029bdad3e5d2682412994c050aac6532fd50f8a10872028889127d25fa4af495484f6faa40c1f16834ded39b32990b161c8f466388bd94c93c1eefb576c102a39148b429f2da4f91e9b5a7e929f2da53e4b59f2a385522d36b3fb529f2da53e48a152b567c9aa6c86b3f455e7baae054894cff0e1d3a74d82603fdfa698b6cf5abf1d448e59f7b5f64d91330735a24be53d19609ebbb0eda2eeb7ca148bec8014fc0d296a9ebbb36da269fbf6af8a676dec9e09baefdd88753228177e2d8320d7d572ddfa7bc15fb5e314f94b565d6faae88b6cae547276c991ebeabd9f788e79f95b6491abf1af97ef836c4f7266f975b64d81348f0bd814fccf4fdc71fec8b64f005407c91795e2ed0f7ea78e28dad52c947e96c978dbed0305f8be82f729b14f26b966dd8d87735b56506f05d07b7493fbf72da26f77e85729a267927daa991c73f5f9cdee3dfb96d92eed716df41fcafb6cb295f28de97a8e29d815f7bf857ed7b8d3cf1d337adf14ee256f9f65112dfe3a57f9afa22097c01e6f762fa648e2d93d477bdf34d4d7c5b86ed32fa854a3a2d5e78e7a76db2cdaf88bec80e5fc0c8b7f8e39dad4e8b12ded969abc4fb28942d13c47745fb1ae7fc33701b76fcae9fbe45f59f04b6c90cbfde38354ef8a786ed52d717dae87ba1b771db658d2fb4c12931c73b8d7cd31fef549e1ae5fe89e19b867d188a2fb1c63b897c4763979dbed0375f0bf7f66f9b9cf06b8c6d98f3bbceda2ef5bed0b9af95f537c177bab498eb9f094ed360ef5cf1edf555eef95e0db6617f574c5f8bf776d36991c63b516d9301fcaa68cbe4f15debb64918bf0e6e953f3e1ae6bb119b84f46babad72c647a56c95473e1ae77b395866df77b5f04d6fbdd3c4d73e784bf845daf802a8b649e6af0eb64c4bdf55cdf762f894d2f7e2796381af32d4f7e2b04d4af95580ef7df2c452a7c4e23b5b6c9968beabdfd7da790bec6babbc7df545fe4fe87619e70b2df2b57ffea6df7480773ed8262ffd3a6b9be4f5d1b6ad12f9d1baef91ce3f276d95733eeae94b34f34e305b25938fda3935eaf8a78b6dd882ef0add2efdbe500cdba4a45f5f7d91585e2e70cbbcf15d1f6c95083ecae2bb2cb0cd54681bf6e0bbfada2edd7ca182a7a9af77aaf822477c01275f22d93b636c996abeebdf3689f66bdd9699e3bb42f82223bd9ca72fb2cdcba9d9320b7ca1b7be37d52b697c8d8bfea9e4b408e29da2be93f8637d6fa03722da2a9f7c34cf7629f785fefdefedfdde1f4f2cf22d72fae7da96b9e1bb8e7d5349efa4f0b566dee63a2d42faa7d9f71279a2a7ad12c3477d6c9983dff5c39778eb9d844e8b75fe79fcdeb84fed6c95153eca63bb94f1852ad82e177da1007c07f5f6c3362cf95d436d95223e3af8bd6e9f5af91ee5fc53d29699e8bb7af9fee76d83ef9ede6ad832177d5700beaf7a8b62bb0cf6855eda32ad7c571adba5952f94c6364cc437aa765a3c7be7a3af51c33f3b6c990abe505e5b2694effa62ab0cfb6885d362a97fba4d34befae795d363817f96d98631bfebe19649e8bb62f912ddbc93cc96c9f685c2da86cd7da376bb74f58506fa2e8fdbb441a74734ff64b44dc6fd8ae28bccf00508bffb7a5b63ab6cf3514bdba4ae8f0ed82275fd8ab64dfefdaa65cb54bfeb9fef137e54a746e23f1f6c9938be6bdc37bdf2ce015b26da17ba6abb8cf585123a5d2ad8662260ab74f051bced11cc3f09f82a7f6dcf4e6c9377bfd2d82ee57ca146b661cfef4a6bab14f25133df61fcb7becb794b60cb8cfb427f7daf9a27d6da32277dd733dfd57e4a5f22da3b659c1e51fdb3d52971c33bfbbe56cd5be836e9f6eb85ed92cb179ab75d52f8428fdf23a97fb2fa1241bc33c8f7fb279a78d4fb279dadb2ca47fd6c971fbed0b3ed92f00b05b14d32fa55d536f9e857759b5cf1ebdf9679e8bb723935b2f8a789edb2c8173ae27ba3bfa4b44d76fa35d737b5fbb138df0578fbdc2e0bf8420d7d8f66feb9e85bbcf24e5cdf0bec9988b6cc15dff5f94506f90687db7bf629e1f7b8e59f83beca4cdfeb6eab04fc289aaf75f5d7f945027a3944dbe4a75f776d93c65f116c99007c571e5f8b7cab63e2b1f09f794e8b99fe99b64d9ef975d09788e79d016c999fbe6b9c2d33cd7715f235faf92791adf2f851bad3229a7fdeef9df144165ba5948f0eb00dcbf08d866d9140de40832d53c37715fb1249bc53c836c9f76b9453e38b7f9ed82e257da166bed7d52b736c93cd5f277caffa4a1b5ba6e1772db14ddaf8f5c877586f577c95bab66468b6c949bfc2da86bd7dd702b64b535f689eadd2c247f7b66161df95d47669e20b65fb2a836dcf506c977bbe50275be6a6ef1ac0b7d8e59dbbbe17c5138f5b26832f74dd3209bf2b88af657b1b64cbacf25d677c8bce77523a35aaffb4f2bda75e39611b46e0bbdafa2a377daf0b5be5958f023a3506f0cfbf2f51ec9d30b6c927bfb6f91e6bfd73d61719c0cbd9d92e7d7ca114b64c19df55c17699e10b0ddb2273fd7af64d27fc989d6d32c5af7edf65718b46c097b8f64e1adb659e2f94c936ecc077cdb56572f8ae645f8be76db06d12d64793db248a5f836c99adbe2ba0eff1cb3f0b7d8d00fcf3c73639e4d72e5f649c97d3b365a2f8ae6ea7c540ff649e160ddf59c03699e7574bdf54edc34a9d1663fdd3c036b9e8d754db24915fc37caff22fdd7708ffa889c7b87fa2d932537cd7b76d18f2bb82da226dfd4a767a7cfe93cc36d9e8d7555f2298777af95a4e7fcdbe298a6fe3b05d8af842d5b6ca121f25b24d06f9f5ca3679e1d71a5fe4a1978bf445367ab94d5f3be5adab2f72c8cbb1d826a1fcea669b04f32b9f2f72ee0bec98682ce09f58b649027e25f5b5a9fe0ed82643fcbab765defaae8ab6c9f5a36fdb24825f416c952c3eaae46b55bcbdb40dc3f08d32bfc8c29783b14d2af855c477326f076c93747e8df41d986572faae027c277c5b3c254e7ae79d6d92cdaf87bed6c4db4adfdbe38944b64939bf3efa2a517d2f11db24935fd57c2d88b76db64c50df55ce9679e5bbd6d82e417da172b6cbf50b8db465d2faae87bebbf86d7d2f7d6f9527aafada266f557d8f4dfec9679b34f3aba02f31ca3bad6c97ea17fae77b9cf4019d03a8840fd37429aa143146400040000444440300231440604820160b0704c2440983c1eb001400074e86a6ca449b0c942c0819640c20800000800100000000223425131aa5207a6db10d74d7a221596ffa4cc78d5707f6a5331e4d626b8533d1bb3ff828a577dc47df77a327948499ca26d6deeb48b7f18ecd01fd66e1707ac7d36ab5d8ace888fc9970c44aeda7187a27006ca564b7fcdc98a210891d4f9dffe15847ee86ee4862c2af32ad77e32bd66f406fc7f0ce1c31130e859d6618affab4c63fb7bf106fa3648618975349a5d8095ec426161ff560604f3c5c58ba4d88a5abdd7ea0665f5d9823ad302ffafc6073f40b8550fc393999ac6999b8080fc6909c65f7b013adc216270fc481fa4f93570e4461cc89bd6942ef638d39a5b4f914e36358f794e732ad142179dcf6cdb2d6ea9a214e1e2906fc2c95efeb30c34167b464756756762ba2f807662d12965b9fca55fa1ea3191f141700855fba6da3929db59a3c4ef04f40e9bfacda92ad9c1be640394db8964cde1b4b3b86b3e5d2be113729a31ad9e73232301ff318c43c325df69e7f35ca2f9b82998ff30bd907dcadcf87011eb057613c699ba05feea37bdf88ab1edc7421280cc8a500e71859e86d26ebde4db2d05f48ed9e01c992b27a64ec22b39d9b95cfd572efc2d51c5efcce5c668fddb69c523a6a092e916832f455d4ce1e0fc6c372ed91c7c83cb1beecaf157c2aa5c5f34bd1d9e9f31549fa29f0904faf52bc754c3962f2bddbe2b6e2f670bc5a4c85710c85cdf27ae756b1cbca86238e9877e9f4b65f106d359b3619f9b041e10f28cb337dfd4add176069e5750fcbfa7c2323f41593d4faeb631feee6c575b0e84ba446fb899e714e8ba283be0a8299c7e57c584a2999fcf634f8bfa8d656773204d2afd16800da76c57ef77384a47524681e5c59f050a5be47d0eece26f76f7e053c4d3c65e554f8a6f2ef2e107fb9a44fa0c3bcda0a18ef82915e671e0aa2ea863cbf89632939e8b502053ebcae53cca978eeaea6f0465b52b20bfd7959291107986c95b2a308f38b653775fb5fe6cf66b65f6acd42aca7580b0be760c93e4aed0465fd35fdaa3c8e979e0ece465105a098218c673d2fae4c0f3b6795fcad18149e4e5586cc8e3523f018f2af1fd9b9121d6ab9961719870d5ce98e5ac83a78f0e62eb2508878dc29bd35940df71108fb8a3b6712172b64822d8fc4cc2ee0ab579f9315e1dd85777b694648f9bb0749be04ff87cc15c11f71dc881238fee1137e9afe45fb4090dca2e59db8a042763fe67dc3c2e226bb338af3cabb38f432a3271cf4b54a7b76f03250ae8071f8df061bd6e0a5fafe30c8af7d9d8f92d7a5b54a2ce35a5948d7ac2cfdc48b13e14408cb9b58d4979f9aee1e1cd8d5d4607827e4c34541d7a7a163c583ba45bcbbd373af2271d87edc2556d0f188d16b34597f6f3a2ce5d5cc221f1087652987a78c6fc645864191d71d411eee9a79e3cfc04eb97dd8ade841c43f67f8fef5cc0ef6e6ebebc5ac29974b7947d17dbb44fd448b22069f94054d7469fdaa4ecdd5538aa49fe05a49cc9b0ec3fe3326cfe41307ec41ec0fa67913146e863cbfbdb2af45433051c404959d1376219158057f5fe5942b80c7c3f601f7a4be68dc1f069836d8c1747ed8aa3351377d54645712fc8fb8f3031035cab4374d14e189e81217a01d22159646f885e98e92d39aedcf8237c3507d467fbbfb0fbc8cc8fe8a386d286d2a13b75ed4b883cf6ca544f3f51d80ffc421f101c448e990a2f5e6ee477f625428f61dd5c54b7725900ed7a786f876b7770b554e7f3e2e75f9016bc935e03f6cdccc89b2df2440be01a9a755b894cac42e86540c0c5b8b3841fb6dccac9e51055903e28bef45e663c53ea3b26e4b3e96fb4985297850efc3501de25b30a50827e076eff9186cc9d72dc2d6c49a2e721ca6de42494f27727c6889e212b4cf245d74fec6015dc68224035b6c9785ff33b7e98b687965d114cdceafe882f26a70eab5607006365e40723209d5b6f567c1d2fa343b9ad8b1c4b104d3f022a79c51bcdac0ac8a144a70a0f8cef54691b9d12ae1c692bef94c44c46329539677f79d04222eea996be8666e62f636fe30f21a018f25c80a31d5107ac03c5a414a3b6049c8f97d09146880fb46f4a0f11eb4be9ee1871c1ecf877a2f626553dc57817deae854fa2aea835e0141744ec599444b232ca7f0f8ed71a3aed41046b4826b9d767b82944768dc5a490d006d24519ed0ac3a51f019b0d8091c5570ce3ca838673c6c0b253e8ea60addc4b502212e3cf0a94094c88fb986644f0f06a2238b7874ed65fea258c413e2dcc23f2f975949ad77295ace5375cee2b8e8a4fc4600731c3cd53fbe1cf80d8ee2ab8af703449a6fb98ff3126ca8c97bee8a82dc66278250bbe93a0368bfdc13423b7a2c4f671800a931ba9d7fd7a8d5e7d4e180471ab8ada7a267d3f613d1c163cf9a17b8ea11a3e98ca2dc6b7d02c987f5becb3161ab60432801f038dc531fc8bec3f7133fd8c6c26f9f9033dbbfee4727b4f684b85f519a310a5f0895b7ebca7ad013e480caf9f2cf03fcbe9cb3d26d145f0184f6445f6f3f292b0674d43ef441555f8b85019f00aa4b15a7006d28c0fad0bad8ea6eaa48dce6c99f15306ffa2ff9e9b56e25c25e10cac8b7e77bf8e0fd866dd7bfd34902f47d0656845ddff7882536aa1f33a941b1bde9e171b663674480350b4f5d25299145e4f67d0871db78eca33d65abe8ae43b43a8776f24364aaf4dd4307f6fc8532f9c4824180c880a89a1549513f2ec5872d8ef846260a52867bfe2d8fa149d7b97cc723f747ac16c25c1c94dd07b737d7ff9c233cea9bf5ce84da52603272767decf524fe35faf8f48bc603b6a9869c42e6afeea0208131842c20c1ebc42acbf34d89232e49b25be8753b3819ddc1eb1c5194dc26d3c203be3e7e7c18b46af404587b4f87a0afe61bcbdb2c99ce10df0b786314ed17b961d3e9881ef7f14e6deecf4efcc39e559f7a4c4ce9798eda8427059ff33ede9e4e7df7798728ab0c37a8a735a98cb6c71005c9e09d8d93aaa90ba6982e4e59b4eb5ef38f288a3b65a8924181797b31547f578ea6fd733a58abfb356074c484e77ba167ed4620880014ccae3869284e40d83d387eeed017e203f5033b2f9b66cd52dc7cbfe4d2df48d386ac83d11da416d86ff6972ee39a75bcf35fe0ac19e635994bb5e777b20cc0637da06c6b8dd401d2081f7e0e72b947b7aad36f99a5ee716696dbbd5ca9ef7a61d198e174141ca26bab473d1558df1a629103a8192c285b6e73da4ee9c354142737fedc142c927d29a7b66634333806652f82f98e5ce7ed48332c087d3f0c3efc9cc1577386444c1c1f3f7ac30207b6c73e3897f503d0e83bfecac3c784d5977b15ec1441c1c5f7eca749ef9f37b497e0e3d2c393a3f79b0a3e61c8f9908f9a4c38e05dca59a269f888a5e3978dddf569fe466e5c1f7eca8c9ebfae4a1ec94fca0ef9f5b61a3cf7c3aebbc40ba7e0c6d6b4ba720fc973c37ac4c4be6ea1f9cd6f626f784c4bbfb939fa0d6fa2f5ffb9972b7dfcda9d5e42b0f41ef20fc685fb8f84f47b6c5196e611dcc7fbbd3ea0d4972c9466e7691d3d5ce9c1632bdd3a9b5f3f43a2d717da9531afd0cd72fafe9e1f9bff687666b2c6e9ef7398fec5bdfec6843acf8d059bff3f22e8fd98fee560e93ea28f07b8d2b5bcd87d49cc9f426c32cbc7377f46ad182ec40a4771e3d19f0aebfc427527566bcd2043ef1fe8dc4c13f361b2be4e8c885d6f58763c1fea92ede78d489d19aea9e4c91f43c89211dce6a2cdc95e9ccc386046936bc2dab357e801c10dbd6db1fb5c3253c63c4e8dd976eb791a6c78893ec37113f0290fd48edbcec1c4eecfedc31d101ef09aa6c6323c523abfb8fa71bf48f6bd0aefb741277620944b06c4d114f4311afe4da73d7168eb087165300add068edcf807517e8ff4eb5e03e1abeb5c37e73144cf97a3fcbf047553b2a14f2fa5113fe3f76b07bfb497f70f3f80c7fda12eed47aa33549917fcfd0cf757caf1364043e4cc69ddabfd228c10224eb22bc6a3c5ccadc30394b4a9b60d6e9b6b86a6389697cc007a36b77eb1e7b3036c9d3c672614d292e59dba7ec5002a7d0d8fdc84469aaabc8618ae3c33c0b86efbfdb120af03f761f18bde3fa71a90e06707aeb141cb7465eb15b35e4e954a3107d81a3cf2bdb4bb0ac8fb13f3f67ab5142659f17a0c4ed3a6f53e98254506cc72b138d2ddad42a49347e368fe91875c0bdee57cfaf5b9d617a871adf72ec1636952ae6bb3336f731fb7ade3a40ebda616393dd5d1d360e07d04c1270095b7c6f0c85a37008168bd75c66f80d0795aab2c233c7c0f84d24f77f806c0351044346fda03f7c1e93c74874255bf000c42e1a7c3b8af6bd466395b93da720de01230aa660c3389d9e270bc9c646365c5c37705fb1d8c8e09c866b1936bafecae38211c5890161e908e8bc13c2197d72dc52b7c89810a0b69d07e2309461344ae32febce096f3b0dca8e5f90869ad2f2e3303693a6cab40204ae0e658902034d5bc388c0f11d80eb6b0993f768242952cea5fc45b5f0a63ff9de43c9e0091365b5bedbd1bb35af627084831ea5e6ee9c150ee66baf3b9f4c5981e2c546acd867f8ab250862b6c64cda4b2ead9be79cc4f0b26fa667cf65696d1156cce0f3173afd54fc1413d1a2792f5b3ac4876d936b20d65085b29dd81c88f21366798f01e0dc11229c89e1ae12c0a7c89810d15f43d7279ba9b4afb5a484c8a2bb4c06d44d75574250df03021d56735b70fd6f1bc77d7d70c6714e9ab8a6f3a1148b1b2167aedd39318ca76aec32ffe3fd308a8eb7cc22e8b60f567dd9b6276d5909b0ee5d7031114cf526f4666f948b60700e044d4a277a8769fc91fa4224cbb43fcac5837a5b53c4cc63152b1473e51d9bdd6f57937e11620ce158a9feac75100cc45e8d17f9ab77e65148da7613ee4093df86ecc36ff36932978b3d4cb27ccfa54859cd7275009f5fd7dd667e31db29eee1922f1cbd2c1f04dc7a5b5096e1209ccc9b266f5e22e059f653d9c436008ce47f2aab47f75f7487343bd77238598d2f19e1c4b662b9e3dc9507b50e35b40dba5fd5f03cf2fff8ebec3bf29f82bd4b46abc711def7ce073da1defd9df0bca12aeba63b2f4e36cccd7982574fbdf368db9760bc401d298a659b65f8f9be4291cce68c8acc665acdd935be603dda9b36c7df7da8fab8efe047de79fe5513df30762bba329564bca5389b61ccf91bdddb5b6bace10f4471d3bdf86f40456bcd0a94a8eca9e8c2a4c2c07f50470925c225b9931a5a9baa6e3cca11f68c5693b34d9b7a9f33a113e5f3e0003f00c33080dffea200f760d2070456cd67f40c7a98758b273c96326cc15c4b0c91fcb18ef35638e7f6c4048fafd5202d3ce3db2008dadeed8e05aa573eaf1b27ed04bcbcefc1025c21d4c6873dde609641b19f3a61285ffb0d2e265d8606c9921a6217c95a626e49bdb5dac96796af67cb4a03146b2616ffe06ccf4a9b4b56e9fd25e3dbe2576e769ee1cf9fe96c257cf7cc6be6935d29af01163ae88a9e1eafcff1f47cce45a33e8a2c8dd75d6b5a9e4afc9eda7293f5be2e15594b9cfece443b580dace5bf61d7969a9636dabeecd623d09176bf232d69f0ba8dea5676a5afccddcd63b28afe185638baf9e6d06302d7e655eade12ee1a0fd5b3aa1c36fa24d8bba85db18f9095455ff81a54a8ef3a01d80ca3dd73dfc0d55a8a887b843966dc3aacc9dbb5858c3a1b2a7074a50e6e0cff115fb83c2df99bbd796c9ad30df23a3e2f7685bd5b12e665f23d5453f67b5909da55ab58d71ebde2303162ccdf229b35b339b13baaf8a19b8d662b03f78e8f0339d78c63733e843284d3ccffcedc41cd1771da836e3cf9eb6a435c54ef88817c6c684b5ae33e636d98edf9a39731eb5d9f2cf39b433dcb72b909d4278cc0b5fb75f9c2ab092ac73618f8dd33eec7efd64fbf68cedf7eac0a20f34a0ceed98f955bd363a383763b65b83c1efbdb2768315bae624f0261e9832468c3d2bd1184ffb534c504ba74d16d7f42e636f7afa2c8b869bb488736672105b78b4b60af74f424fc67447599e3b56bbffed11396d7bf1e327050ebe447b8240afc81953d4c9bee7c47e548268b22a42c1f1fe4c9f9cb8b9e92ee62fbebbc06ebc3ac0a7d4301ec89af581095eae5ee933a3eb8dc7c79deb8d373229bd11be3f7b1b76637c7a6d6445948b9baf3b5e9e27e8fd522d179bad6483f4fe5beccb7f74fcfc1bb16658e67e827732bafbd333b07fcf4ff5fcfe8c7298bf6c4de1a69d31fc9bedb8cb397a6dad1d7fe8672698e0667eb2d1ddb6cbd3b9eaf5de04bf62b31fa876bd74d51ab9a98d8078bda22c4d43b8dfd7c2bf327ea6127353ea1606dffbf5b093bf0db75307fad9384bd6db3fa34ce85db9fac46e4e9aa1e74bf5def814dae70e3fdf4aecdd14792bf74729c2bde16938bd61cfcf2cba9f9cc5e2576f0e233eeded3200a45d612c36fb6c55c68dd42ade5d8f0ac3e8cdb8b761ef2744cf72bd683b21dcd8d03abdfbd6030ae80527bbffad510fa20f6c8656fbb5f7ef1a9c575b7a876fa4b25ebfef18581976c9f31d41a6ac631f24f0492f5e44e7b4a9f3d94bf2f5ee79838feb7616344feb717805f18f16629daf5183b374cecd6726ee1ffd2ef1195697d3bbb0df4c4037e0fc5cfaf67d63101e79e0924777fd217952d1f447824ee08a6331efcd2d0109e0e53f812cbdf990778d32a73fe7567a1f6c3ec78481dc4632ffce570bbac4c7d0ce76bd36266a0c643d48e4b461cb5f0153012b48c2a7e2554cfb61cd6db6a5cead5aec78ac75330db12c35dc1c5b46f8cec6fe60449555c0db3a7d3f05e7dbde1b5e6d644b2f7c242b32c5d8a8b64053d4a6e3e2cf26f39f8ca5b9c77b303ff012ff1ed35862bf7b4caab0dfc5126195c5f4a9759d0a1d5a8617e093ea52d17d649be5459a9dfed764ff6ca5bb952ecda6a17ef8c1d6f526b070e734b78a428fa6916ee1f7733d2b2a7c5ecd22c5ce7d062e86b8008489c19f386be3af786aca5e27377ba2acc02a70411ce08c2e750817539ccff69fd960c6bbf11d671fbccdce1d0669c96d0fc4519f5bbb6cb738bdc94df6dd4469ccb31b38e4f1d8c5d0b7481aa4c5bed7d9d7de7f2b6e8e45a887f536f39e769df6a8c93c9e1f382cac3b91cdf61b3f99dedef5194737ced6d970fa96da1be4ee45fb1c1a0fde94da94e94ac7af320f7286356e98cc3ec0d3ec5402be8dfd3af496e9ca895f65a76f281b52298dcf17b7acd58e8f5d4fe7dddbdefdc0f507dcb2f5e503c56c7c18bec72ffddc92eb7b7a4461f586655cb182247b4c87586feaecc6c4597b9658aadd8e28750d552b5306e9f3c977464223ca887053412460b8230c6ba3be675b6ed9aa99dd38bf6126914333b4d31a67c001e278694b0e144ddd7d751db63ecf2757774c394833f2445e5cc1ed72bd7f73698d205cfc5f26b922a67cefd974c6a82609ab7caaf6ab8dafbda9f51e40fcc7e2dfe457a52db530ff3c6fe9ce2fe3dbb1fa935bb593ffa3a56abf3cee05d15e1763a5e53a5c825815978ab188d33142bb9b16f0a342ff047a70e7f2f6bd8d361c9e6842e4b8a7a0d35e8d12c005760dc194af3a67da49c6bf55977177987a17716ccbebae34c8186a70b9bf78e693266564f4363c59d389d94c5a2ed3c3a38bca47c4e00fa6f5b6b02b9f242cf2acb1c4617c984cc41e41ad83655bba1c4c809d0e50adc4ab1dcedd4d62ebd757df85b3ec0ac46f1f5de5b71c35afe49747eeb9075fa9769fe4dbb3cbb803866db162f617b30dc4bf4ac2241ee243055785a13fbd7a9342ebbc52ad19f59274e40bd49e84cf89ee3cdc9026b7f29d905da4880f51c17d3fd88bbdd6199aa87f7b2ab653a1e6140d501b328f72e68ca24ebff519340921670c110a8bfefe415beb7b257fab7a297fc617ccc47c941ca9f56863bfc8dd6d3b42615bf2b012b61bf7d2bc13be3a196652f561c217de47c51ab7cce3c1817b49f5352cbeb478ff25173d47a13613db9da72320a576b8f097a6d64c47bc1453f92b234ca570b186b36aaed3fe762df88a83e66dd99cba3e56ce73bf69387fb1d56b9f7e4a85d1d415f9ccfd0cd4eba4aed7d30a3f3f645aabdfbbb1ae75d9612803eeb90257b7797e4a8724226a66c1e25dd1742230d3d68f992fe311e7325e174a51127d8ebb49a58ddfa1513f42d7b35fd7b4f46ea275b6a375d223664ddb0de4160a7818bd310b9882364a0340b1ceb1eda0e76adc5473751352cccaafa1a38cddfc25fb7ab00bb690e6a0436933ddaa6c6aa675ae0c19ba49467fb17f0006186ea17a9fddba8d0418643da447fcceca0fe5deeda0f3bf2f4f14f2b2b3c973656bbc1b2a9300ceee4a593acff838df9a8c6c23fc339f69020f1d78c5dd778129dac6d9ff2448cbe106ee2b5a2d10f66cfc064f29c4bbab334645ebe5e3f9df8a409fa4084ed072c877cb6b40385078dc64d3cbc275b9fe86c56d78ef2e651d1919843ccaf07ba814b84f2155871b809b69fd8ca390bd3e8bb07c6df209a034a4bd93916feab60793a6cc1ca9e2255d6de78d34dee91a49e7a358b63faa734ca3527127d5d2f713a50b9fcde55daa1d1bef0982efaa31cb2c464c41f11ec6efa5107c95a9f1806eaacb94f63e96cc7476a7a1e10ac794875ebafb5f1cdecc3d6ac694f7f6fd59e807a9dfe784a5cf0d3e545ed6d501954536bfdb54a1bf77dbd5af2f2ef1dcb27135608a02cea20e4c4f08950e91b1839ef8a36780af3ce06adf05e644fc01a83fda589e5f755bcc69f9fab6f7fabde02b34ecd0552e66c234f540fddfd79c28d9ee74ce57dea4ca43a6f2e7c240e8a9abdedfa5b3f242da6828beff579f820c9cc48c478f870ac44815fe37620ed103c3a1fe74684934ce8b944c8012e89f6d97019a30606ccb94b5a773fca5dbb03ee7379639408e1570b616ad1d77ade85703e37e05ae5e3b9503bd979504a156108857cafd5cf0ffec6635bf2b004a1a02d39c127e8f711852571d0e807bdf752d7ded90e1d31cfbd3b6543664adc56e786588e3063e14fd8d5069bbe4ca2d4b099801e856c49d3cc9fc43b63d4d0848864778deb87d678ab156a99fe91189873b2a63fcd56a00e88306806b80cda7563d474f131147120ad1dc44aa7b6d67f1024cc5e226a7b2dd09d1f0ab099129497940bf00da028ef3e301e5f1b974c67d6e882e32188efd1f85ff9a5bf0fa34feb2c10fada5c84f21dfb3bafb4b7d52125ff8fd199d46879036f599e561a6f7e286c3481554eda458d74797c7e934d177354e377d57bf9d0ea661bd48addac6c2bfa57d51e2ddf9a00cfad3f37888bc9d87060e4d8400201e2a407e6011f35382aeadd536a367507394f83e6746263b34f7ce6c24b7382060fc8f7bea5e668f8d2050e744945c29d73d1d60865f81c22783327c7c3347e5260d9c8a3e3c4a9148fe99eed29eb9cf3fde5e023ea4d381680c2aa4ab9140918422a99548571ff9d4fec9f21f60f5c9e81b8a00d980f89bc470a0149c78f329187f3dce85ef78ad06d8367f7d16817d87b891079eb0a5956081ca6e2db4a00a5791140e42963cd466fb1dbbbfd394963f3dff5b05c69520acef9378a7e7c4b9bfb676b21f30be836f3d9f9712da0277e3ba87c9849b7b06a4056ff51f57dd504b6c57ddc0273a9fd81ec1bcc5dba1563717446de87f745b3dbd7cf02f3fe6dceee8a4cdfcf0824ed00d8aeeb553ff0b12ffb4666fb0714230fecbcd019e6222e36b5b78d7f4d19e0cb805c1c86248eea5fa6126fabb27608e03e643d3b4c201608ec7c798c3b47d3812f78b2d1be34dea0d8615311f52a1bb733d6ee89ae11e3c24130d95475c2dfdfbc33e02bb0aec98b8db64fa1cde8c7913a16c6e2ae5e0465a5c6c52b1f7ce04b0bdb2d7dbcd19ddc804bb07b3f5c07edc88f1d88786e6e6adddf987f171f1f11de20658d655827b695522df582e88d50e975cb0d9e601436f651bf6bc7bd4b9f9583b93fc642fa3129483f504627ba419ffd675373a4512db1ce362fd709c5f2a02dbae1442cdb0bbb18363ad032e4681c751b20d1ea636d0a341c82437ad6b2776defbbb175d9ddd7b8b0413802e75ede476db838e0ece3fa90f8c399975a0b63ee9f2c20fcca1f7fb4ff3bff57e23546c46a1ffd8951e86f4e2c381c9f5c5c19467bdaf8983ab906cbcdb10e249d4515482193dbe076bff501d1566e03374aea2d00977a599163770666bc1ad7a1251b27fa1a7a8ba896f267eff8b5d5c1609fa55ebfd2bfa5a50eb21dd398c32412aa18eed5eccaadbdf47363d23f34e335554771cc5a4ae1427bafad0297d68f5bf46ca452e55e14f2d3276fc330dbd6af60a244da4f90da5282cc493d2b96bc09ccf5d21341d77b6eb1eb65e6e39eb32fe05433203a106d463736e5fec99ad2a681e78338e9abc09839f6586e8709c810f54b5792c0d7b3faf017860dbd8277e23eb4f336eecc36910739ab330564c264d3f0dfab3f23f87a974047e7da3ac789757789f38423b148677c6fd5d7941e37b1fa6617af2ade1d7acf4dea78fb39adc1d189010d111e3800be628cb5a784329192476dd3fbbe3bf1c5d7073f85b8566039cc92ded12527ccde7dd683a47a22e8007efccb05d3a991d13fa038c1ccf0eae04a1e909db10e52ba2a0a9eae1ab72a3f542c940ed58c516a17e72fcd4f67b1f4c437289bd94672fff93761e31f53048eda7e39718b4ac75e2cf4066d2fda7e6521f9960232af658cce62c346b889205892f534d00764452fcf53278beed77062c9d6f7d076b3ff4a0dfa1f2f384b52dbf9ad7e3a167febea0e12eed10c91817a9f58008bb3f7af839dc805f44c586c9f752c89185576242e4fdcb6a5593c42078fc605e8991e426e92a084f0b7d2315befbd8efca5d1cf7413a03b2b5a96da8fa27824fec519c278253cf2476a0acab024f2934654099a03f2876d6a7ffc3668f52786ed0631f22a94c3cc780affff1036ad0141a833d1f9ef331a1e00bb64c7daf98b66ac10ad4f80d72152c4cd307a89f158249d90ce15dc3d21ff9f9b07d6bf341f5428bde6441cf31a25aa45e954b6f4f3c5413a9d67215482c8e9a6a54bb98bd3a40fff2bffe59ff739dc301e00d9e05ecbb9507f2e0dae0de116f9eabbf7ac7af48dfbdc2c7146877ed238bb1aae5ff783287101062a850c3c309bdd0c9a7a792bf717a995dc207fd50a371dc66640f1e2d7b81cbb80b8b5d6e64aafc194f175d1570a634b0aa1dc8aa88e90557503e5f25e5250988052f376dc847cc7f81104c7f81be1c2edfe9aa46ea25036e76f32b0114d7a618a35e67aa804e0e78b69da57d7e8198fccbffe63b166ebf8391e3caacab94ab677de93cd478457e9170828f2f0771a169a0d8d8af9ce911d7a9a6ef2e98c3b9b0fee0fa3338173f736759e400fac1e46fae256dae698ff3a1fa74b05fe782b99b4cdb0994f9cfe688b94471a0b6c47109e3f8217aebb4b53ebdb5151c0b369ea021c6b766fcdbe2f167de88e5805d6d070aadb42a39515c5a268279567332e5eaf0621a1c2068803aa8410f1406c26aedba88aa229b474e49f2ef326d656bd1302d46ff9a4b6bd45186603026475f32edcc2ad14e37781e2c8b4c25a07f59b961de720157b94342115f6cc53a58b6c06d9ceb91e287c5702ef97ec5d4b045865ecd2b2a677588df2a79c8dcad1a6c0093894e4dbaf76c0891b81cb635de40801bdb774c1ff64fd82a0b05c6b6869c55118aaf78497876652ee0bf730fcb3882fa4136a0141fbee27d839a6d7fc1caa7493e286ac23a4fa09f30f0c857323ed730f62548f578186e4f9bfa0bc2730887cf830ec2fdf1ded1c3e715d219488884e29ecef252838a4b2c55d70aea8fbe7a0ed552306dce320623df4fbf9c36e872d04cea98cceb6c45132beddb965fa626680f600bf99d541e94cc70502c4f98e74cd44efdc492df54e20e5e56d00b3ae2f8c7cda97f50127cb13b1f633c4ac3a10ed991df172905dd48bcb4f58312605cd511b6f12205193252e4d847135aa4ef7fc1a26cee5a5ec5cf71b89f8974a7ee6598834ef40dbc6af7a41619134503054351fdbc7ee5c14237720fd7eb537083de27908eb284f938f8774abc74751b52a7965d88198b5042e555b4f4356e71f73b0105266f4ce42a423546fd1641f4cafd0e5607e52ddd04ebbffa105d132d1a137dd961011e9d294e925206f717f3198015a58fbc484a4f3160e08d0de20e8d7afc5c65bb7c17f0bae183becf28c1366621a3743a528a4edfcf001fbce0ad578cd7432920a0a6ad7095c0d65edbe2201521ec41aaa51c7386064b50191eba63fbe5a0b4dfef3cff89e85652e8bb9147fac7ce1d151a115824e82e5bc4536ea1665555f7a94ca87cf8f52d799c4a1ba4b7f640ef014930b86eea773a03763006809b6c051d51e094f04b99a4214a97b7810a2723d2ce00767253a4dd5fad98e88193833d2aa07e00e1bffd1dfbea391be42510f44e2e4efa873e1e141619327304c22cb073ad19d0779b6d2cd7b11c19c9a525a367ce0accc90ae87c8ba21e578a2321d3af7f54111a56ff15aadac04132d5296268eebfb7a772beef2ffe3562b5c67a179a13b1b82b970404bab60c748ab5e2f9cc717596d8be5df90dde84209398efbc889e54ba054234e6768f8a0be5a4142c04c69e720fa421f01857f5fe3ba9ca90304000c2a137b57d9f38efd26db2c1abb0cac682ab93edf3072656f1c1b9679085db15de582fcf4c231bf2d2686afc5cbb8e5d774dfc5834759415a83d12b8dd2a87374533f6ccc64dd302cb53cdfa9036f70edc1797b0b1fa898d8aa55049097cb847ad2ae97997bda8822eb3911be6e8bba5f99d0cc32a8920ff8204d6ba38737c18e7310c5dad6ecef5078c5ec806475443ba788bf68fd6b06b9ffdf03a786e44759d7f175e932334539f6f2d467e69566163303e249ec471eb5cab107e668fd020ee4776fd12ca14f50d73285808f389bbc60e227a6a23401fa9316461664f209fa7a2aa50b0801f0af42cfce3e99b435f2affd8c8c7919b4fde3af798d8d7137787bc14f71bf8df11578fbe15fe31b0cfd1179fbf14f633f18f272e1ebd74e6b7317ee7d2256e4be8dc9cdb4ab4b5cd460fdbf61a576b6cd518a006e2fe9c5a9f35692dad1f7183d838685ccc6e9be156533b191f406b91f883de778b34d7d6957f69601b474ffadf6571b972eee98b0bd72e3ae7b36bce5a45fbea844d5a372a0d5d3f911c3a1bc719e4b2564359a9a0d6283405b4b2715b79d6dacae8e2897ccede18aae3f1f56568c7f6b543086b6157f909383153071b06e9569c1647a7d4db9b07823dbac49e886df328e668fd01fb4bd319a85d6bdc67b95dac108f20133b257e59300e4e030cf2a351b7b9e2f659a2f01ba58817568526e384d86ce4d05ffc1d7958a6dde8dd6aa9ab1d6a0634084bee69fa64850a4ce63afb63fff67e071ce22a78a5fad6c05381e54b3a91772cd06bb01efcc8b6d82b052a77f6c7f046e715a6c07a541b15a0ab22a0d255c1b9cbbcc7e03495372679eb8c24f8eabe34e84274b213356460a49b48698fc042ec1721282b230fe20935a9677b645842ce53936c728b15198ef35da51eda8e38be1443d523b327645296d09deec7c71e760af5fe6778cd134a94914024cd7e9d21238dff8ac97b951bed3261dbad264cd1cca96191b3a09f99fb1c60fe8701c814cf617c472d3bdf12dc620efe44bb6b336e67ed578aa8f45edf44639c6044da9c9fde1fa324bee73ae25ef3cd98d496fbec67a5b387e899298cd7ad9a9f3bde8bc798dcccb8673798a0a0a1a3fde0ec820fdd0d47c4b57fd1b6f787ddc7e2463e5ef00b8f6240dece079f8eff3a71ab7b36676688fecc35e5900ca741411552c04395b35a67df8c0a156f9c94682a7052e9f180c9038df2371e66433cd02de878733c37d91c4fff929de4f4dfa5671b3581372515d4581960e2347c31f2d3cef848f3eaf1a0742478b82c13d77c1af4323bcf4ff53ec8cfb8f968af2fb9e0002e3c26037ca28df7c7b898a67e48e5d2473efece30fbcb39574781cb431d00b7640799296390230aea0ced996fac475260e0926a4f8dc76270ba41824daaa37540062ef716bba1433d9ba5785f1e57eb35b387dd5f99e6ff1963a4efe8da7f0d2f8f7bbeccfee364fce5f10bba13f8650cf14d8619b2ac64a17979e1cdc9dc886e16386ea42808f1185902d9d3d37875a7ee639816fad4b76f8b4b83cd44bf397ad40d1e06bf935ec62c3a78c50a74aa5dc09577bb21cf6866f372b81bf28cde0dc82ab6bd6ae9ac77b94f358fbc04fa9f913f332f2e18a2792bd3ba3e5181358d9ffd23f34ad85d75fab9e9026fdfdcdf520c0a253dd31cc6bcca11455b63d22653f90548f18b587930de5785071da4a4cb1919aace706286d5a6666a98545a2f52653805e472b253576073bb46a1d3248595604ed49cb506e1002eecdc3a3c731938db66b3aafdb7c284267f3e391ec1cf93fde436fa6778f79371831e02083e683faaf6294710ff977d1e387e21dad5f5fac45623a2a7ab7055023711e08e89271809be6bb9ef1e302d9ec8a6ca014c2fb325547b35a0ee2d4e54329eb4dde29db35f6198cf7e965b40bec923198e3ffa37b1d9835dfee5ac8188b7ffa52589a0b02aee4c10f2bc61c00b66bbfa8e671e9c7f9bb5614c546122f88cd650a357ee16f3237e0bfb676040836701ff6ee5033cf836f93fc59be7faf515f40eee947e3e2df0dc58609d85aeeaba3195516478a563238e7f282429ec9d1592a15e988e3bc4cb6eba36f36a0b0e73429e8b2209ce545d080dc70632cecbb2f28be01218454363739882411cc4b8ae0e420c8cf1b60178491639553779a2e3e785e616f7045c4e87d9cdf4a4b7b6126531a57fa9a806e1ddd88db01a711531ce342451884d2e045feb145d0379e32103448d2ed5a42ae32b24115eeaa473b9edec5c4117b1cfed31ea3dd5f581dac67b2395cc08458d3e9d691215520529cc3632b2a0c52402e106a3c69b42149ab3c8c422e6b3e51ec0cba5cdff2ffaed53e8f8a0a202cb88d070606884e767e223d0c81b482d805bfb5ff862c4ba7b215f8976b0ea8e22db3e754a2882502f009f3beaf4d9840aefe23e89991195125977153d698cf7d38113b626e7cffb15a58b05ab38f56edad05de78bb4735d4612d7a9b9c6a3942f11f865055c4b59748288e8f0df4d1e2bb9b88e166139067c9afca4d70d0cbd0ae436fb2bc7f6310bfdd560d8b8795063c29523e9d24fd9be276382435a575a5006b648f7d74eb368813544e65bf1e297b33f66f14b1f5056bf3382c57764c753f68abac49fee421850dbe0d9c0bedbf9200fbe4feecdf8f3947e7105bd4739d1e52b1fa2332ce96377c4f15e8675bef16fc83f1622f5aa04b773569be4b6645a8da2e6fbea550b75cda45dc6f7c47611866e15d5cc20e5d922fbe63026707c9cad05a7e6a15ac9198104486975198ca8a5c485c9debf5e9a2ade8130220ac3dc0efea65e2e73d6c11e4d795b8cc3b2f4645b449df31a66d7ee6deff4ae6d66d536935ebd9650b84e14ce7c46e90ffa9e5ef02713b6e5200932d859fcd104d6c8b292d38f8ff41ec3248c0dffa34a5b41ba7aa3ef8d57cb2672644d39d55e0374440550ec1bdb65ba4871ced59a62c19619b9fe7a60cfc38290b399606246bf33085ff240649e456a48beee9c99c28959ba14bda9af435a9a81b20d12fdbb486a5bab6e1758906d2636224da18d834f7b66473aa77a7f73d4ab18aae44d46ede52e2c0944c31b3a3c6af8672b5de0f3ebd06bc5ba69de996039d6da14f02f13db5dea0bc8a831f87dc8a9a482dc7aa7407927ff42f5ffbb36e2c6696eef4d8cd44379252f0699276d4b07b275a36b77cdf394b89ddf0cc2f233bb7ffed739ef39fcf610bdc401eaaec7555b685a98bab915c1bd7ad8acca64f3a2b6d6678474384c1a0cd7a595162ae65dac9af7e32b151f3c84be8023f494976b532b3687d6b7b4ec274316d5aa1474a2b9764478273bfe3daf95f1b9174551535544461e64405f1c713e9711e33f3c8471a4f259d52e4de14784b4d3ec12672827643e8a1751c80fb1c0a4c5f6a4dc4cbe5dcb829c969d91d97dbd57381b2fa57f022dfe29b05655fc0ca2b0db34a8334c09bfdf9f08734dbd076a27127a9cd35d3f9e15a95f9214759ad817731af03b76cb563850cb11db964ac2a1f2020f144350677f817619530037eaacc44219f3b79d22defd58ced990c572d04cc562fe052d91a27a011ec6406ffed289ce73151391cda0b7a717f9aed5a8f0aa0f0b600e46a9d20571036e74a13ef5bd93cf0c7aa8a24ce06a1868b9278842bdef7d2ce6c255df07812287a3f66d3cb14a734372ed8a130fa316fba797ba760f7c14f7edf784dd987511a07039048e9e9578f48c08570f5fc888820179e229fbf2d279d0130c58f87b8b30ae8dc743a8f18165a3843d50f1b7597d2526a67af0628b93ed32f42d5795ea5e1351f4c60415857eaa8a475f5a71fc5557544950586cac466a917a457ed16ea83026562146972ac658b1a9c71837ea32a694b419413f8146a15fa5f1a5d4b81da41a27d41a3528d748136c34151b6b928d00cd46b768a343b55129dba8e936960a37a6ca8df3d28d56ed46bc782355bdd153f28d3001c710a8e008b1451cc79f8e23c42ae568c939dab89e63b8a2a325e9d8d4747c883a86aa8e6a59473d5dc793b0e370951dcbda8e5f7147acba6354de91a2ef8813782c2a3cb2128f49e3312ef2785179dcca3c96751e4b428f07a5c785d4a354eb9123147b5c093e768a8f24c9479fe66348f451a5fae824fb18d67d14841f8fca8fd6927ec4883f56d41f37f28f53fdc72800728c02c8921220a3344026a108c8631990b13a20674220cb2b818c910279d302592e0632af1ac8a31cc8313d902d82206b1541d64a827ca509b22d0a72431564a52cc89a2ec8421864a932c80e6990abda2093e220dbd4412ec8837cd107592e100241ffbe955817c96f52e61c3101738adb1f309bddbed1c2ba51bb1cb727c598016c2bcf5ec61b3161f2ee457731506a160ad0df7442abcb60a703858f38669db7bafe67db095288630e7cd23b97ae47fe4bd66d07bc4df64d1da1ffcc629b3957177171027019c832c630e0c2a6d202c892edaeeb886658cb71fcb79f6dbeb592d3f5c13fc8c9f6d61f81f58ee2a8e8766e72fbb942cfdbfd84479e0dc137afff2e0718c14181e11c70342794acc8c46ff70921b04719912c27d6080076685dbba27e1faa08fecc53ba6ea32979f3e4a6e85392b870d792457e6317a5a7424b44826a1015f76770df21c3caf4ae6ccc1b287ffff2c110375b6e28900b9d894f7b701fd10e859f09d24363a5ef8f9e888efe0ec4b8a8316fe56eccab5d877ced17fd6b483787a17585488ce21ed37f4a977b287e1bf3d15b9eb5e39ba704720046f691160cde61a9dfe2f66f8e26e3c9eba09d87b4b8be567304f0303284f6f9724e4e8ddae5b83d28e60ce05b797a1d6f453ef9fd3f7a2ffe07ba9f49c45fc11184ee62160a8a41ecd31efd2e20e9bff0df2b55fdeffe0f6e6075561037b64a5664d5137723689c13ff4613231a462c1395fa7100d00e6765c09e63edae5d6ebea88149aeb56aff25c9a18f5108379f22fd19e6c04c61e50bae53d986edf2942310998e4a306a36da5e45659e1d074b911e709ded02982fa0544780bb168ea7872cc95e5bfe815ee43972f45d4c691402034e523f200c79724c0565e01f315be7811d8a5e039105cf572eb57e9dda7cd435a4e1b2048d7ab60f1f239feb1fd12328f3d3d9cae7f60ee66eb271141d92f20d727db4ee501911e844901bfc761368086caaa77c962215f5dd4fa76f541a0c1cec73d1cd332150a0d6424878fee886567fde899e295cc85ee7678583c57df44415dbe7c4288fe0aebd211f5da41bc2817f54c0742b7ce04774ae555164088615a7fadb1196f92a567f949757e520b06e1d35ecb39d2eb2f977e875b97e9afc3fb99771f42ce36a237a2283c3b5fc6298abbfccd5f0a28a89475dc33732a973e7f403f456fe04ffd80196012b02498dc822b20b1f039b20e4fa9f94c9939a7cf4e2026c17adebe8e536c16fb7b016fc8a0fd0b756aa349a8916e6a793d4972a8e5b5b15601f3e713c25118dfd120767a7c0e94759b1a014ef3af1d7b475533779985e3e0e957ee2947728604618e58428f009e02a7c70faa4d6f9170b1ef5f89ac3be0ecec5e0fa10d1298125a0dcff92f35511fba65a88df8af48a1167b35ddc111fffff28ef3dd20fe1ff421a2e655052c590c6b0a5e26e09f80bbd4ab82bc60382e1692fd6b799ebde9fbdae05eda9e03fe3827ef79b2f81f658a17ec1a98af38d2ad5b0e6fd88770c04b6d7a767d2d89be2a47e60fe73d5020d2d7e168f3ef3ba7e7931c58b46e0f12000b4faa7041786e14ca40b08690ee95dc5a05556d0655e84aed797125b076c4264644042091b32d9318cb0278508e71b67480f5f5781d3e5f97a198f671863b37653ed926cbc51b65037191afaca6b4f6e44bdd2df4da786af761e472dbec0aecbf0d3ee1ef37a9dea280c8bc4103dff2d8a654fbdcee963c218436795f6ad58b091fe3ad268df158fd425a4798e3585bc12f0b0948fd21e2a1033570f61ae8d40ad44c0c5bb6e75895ac7b0283d3717bbd1c39738bdcb547b4ebacb188103c14af650fa80b5d4dbd5f70e5ca753caee321ee4b4162e7651783bca555c78c275754652b58a8851ea63d09e39fc3a3342782f98ca8b5a053f9d06018c2c876ce4a59b98eb875b0e3db720b5ede6b75e7e903c2888ecc7dc221d55337eab655e3e25d2213f9ff6b1e0ff6bf3cceea4d767fbbc25170dbdd0608ff74c4beefc33f7e7e539ab929f5dc002f35222981d65126f3c9aee7cc24587f5a60215eb4949e68ce52451588b7d73a6db2d5c721bb838ba85b3e7164e825f06f5daa62180904428e3217cc301b28b92390f3dfb3ac4bc5109bbad955c428db32cd6d6f5a627f287e9ba7b9c7cf64b3c4f2fde5e7a1f5abb70279b136f992edece140a47a8fa30a3c926fc4d993801f55ea33dc636669c8eb97b385e6ee3d21dd35a8004dec4d24dde3385bcefb0b8dc6a7f1859e10adac50b82ff46a9a154ccb776be076d98a5fa8fb003aee4bf1a8a29ce207ef2adf8b3e93a7dc225be7cc23ec82cd4f661e5b690d928e8f443511fc39826a73dcf483b5e8e59bdaecab7cb149f168abd4eb16eb041c7cb9464bb12e0ec7e7ab655a9a56abe95275c5efb063c643d1a385235e1fdf46d15ec6943390d29e58c84c546e51df39ebcccf9966615eb30076f5be14677dec1d3d6c38644035e38cf53eb0db006210f2a921c73e6e89721929bdc52130c8ae4c1d031d59f384b450179c5a88e57cc9b330a66a4f908ef9969d0bab30277fd930d51994e0213bda8984ab3ea429096b67240bfcde5fdf06ff95872b38937976fdffa7315e9faebfda25b4fdbb4ebdf5d14cfcb347ced1a3faa6272dac1ace47d262e2758db2b0766532faf0cd36f3d3eb4b79b0ce321003fc6b480cd1ecfdc9ea7b7ab89d6eadeda07afc39c3929b5379486b5b4703cf82318fd468b4be29efe0c22aeee5ce32c803c0b3f83457272e26ca3940edfbd7d580f1344eab30946ad26eb980f240450582766a47860bacb5f32dc8d276437f60a4c88a937474c50f586fda3b7e3dd9e2f62b08250e24b5e8b0763c6476ed68eb32f4f307a7c215885b41097c1da0e4fca82b2a348b076a28cabf2d3e7af00e0075630b422778a380beb9d1a771630625e18f665229de6c433f748a3c69c120bcc2cf19c15436c0d9137e053b140044201e9f7fb88e0bf561b78e5044101856d5552144fb43e84039559108850219d0ccb105ae517f07d453c8104dcb069dbaa9b1a82dd0a0ca5d3cecb857b147185f868fbebdf0872123eca12110b9c3bdb9f0d3b32d1e3cca833e44af72fe7f4d79bc79452507b8c77ad0a5d725df8d1960ec21477fc3221dd2c28a4fd88c2642902356c07f18ea37860c625332131b7c020559489569636f823630171fb5d9b57a8c33204c072e10e5c16b10746279290cb9c4cf1629aef80989f0df437f306fbcda950c28e39743330a5eec4694b3ca8849da945ef32815d6599ef44592ac8af3c099522a4936384b270b10d9d1980539431b73a967265763ede29b60aae508af4e268a15c5fb108e890403080433e696e2e8015b7e7a7b25318cb3f68798263c304893fb2f9d7167bde7994a1b8f7598680d484af3edc51f01ae2656a6f9add3a3ded149ed23607be486197f69d29d3f982ef92bdb2ebfede697004a8df8dceb2c9ec3946a2c7e7f76098606fa372bbf286e2bbd3e9399547d70795c55fa476cc5e2671f6e9f1cfcfdc2bb19e52127ba2fe73f50fc63370f9fced74b5f9423d68642b7e75547aafe4192cc4934ccdab7d0e6c9bf9efc2da8081fed17f65e5cac37f90dc70049a778ff774d02dfb287b099d4d6b4f9adbe559a7a00f5476ebe4948117a63bbb715566fd475aed55833ce5f981ef877c9778eda8d1e7f3caeb01fe4d32e33de5a552d24dc918c03f17afd2e1881e0720f82ef387f7aeabe35cf2747c4bad77499ae10e00744de5acd7b5ffb32d120917e846d49394d54e5cff65b3b6e6b1df617f2683235ee1d40509fd3279cdce8f66fc40cb8c75bf801ba0eee7b3101e7b6be47b6d2509e79c7d4fe9cb856ab9df2e4af8a432eb6424c6cdcc4bacf79fe042943f86e94381de576cdd3fe005fa263f137f861c3b5f3f66ef10ef53a08f9fba6e2b01cd23e06828f1e242857ee70177bafeb2dcc4e525c76d90faacd6e5f4ed890fc8589d7b0377de92456747c9bfb75c2d2ce84be355b9ee18777927ec05947ee360ceb18ac55ba73e47b7969ebe6bd5022605c02bfaf309afb718d41f2cfc5dcebb43cb9ea6a89abb7d8ef0138ac047f4e8ed7c00868f996ff4c574598c78da47900c5bd40f52a2dadb4bd6ff2ea3a70a30d7c1ee6c4b3ee9483626376b9d792c6bdbf4e778627cfaf663a29392261becac4a73c02a896c32e50b0533aed63a7cdfde61691d413dc0d6fea4cc4fad01ce3f4128f89c8565e1e3499a6f65ebe2f38a0fb9ebea9344fe775f82b2bef4da575932416536c2310018cce50a38f36bf4037cbfb478f8c39690412f6d8c5307444ef1f22eb5cb698e79addaa63ae9f81e1a2e62246fddfd0399099eace638fc1c105d101aa5fc010c2cfaa7dc60fe55fc3d2c168ec37bbcbe137ebcac78ded2f9cc6ede9da19d22a0c0a75dc376b6e4e4dd77bd1e37458a2b7796847b4d75fcea3abfee3a01bbc9104d3658e0a2ed7bb25c815ed24588cf916238476436b78ca03e26dc9e3ef64dec528f8847234262bbbd1245e205e8865f3de9ec5bfb1de1eddae5dfe1b17f0c69a1dd3de9d9e252136f0e75bfed4581dde14037e4c161ba2f721c71f2e0beb4376c84f106d729ddf3ca12781f64f94af1944920b273eb90d7923363316a3247edc4a97dcacc10f0b39700c94dad5828ed00ee6942eb971d26ac6253c7c11cf14f77238ef0ebf0736a81c0dc35035fd1d7f89ccd83bc5d06a0aa311fb16ed8ff4e99afd9ffa3ecedc1c6b889d74d359b6ba09b29b0c8142134c9131ed433bc4e00aef0cb936a48de4ec769c30f7924a435741e32b9cd32a2464f4618ff878f4bdcdc3ad25ef566d57ecc14e23d45a1f98aed0be02c8d30eb9578583219a5e931439b159466eea1ad656ea406cfac59bc0730edb49be38c9710ea6326312c54a053cca8b8d6a050d0afb932426abe09f9960b9ca787d702e6b9618bbc2f7a464e58acf711a3cb070511d397a12b33653c006ae7cc381ec702bbcf6c971ed3afb0e3db4195cb53c851b2ed4de7f908c93c3b8eacde22a8a2d0fbf2ab171dc04752c2bfb450e90de8340f4bde92ce6caa69384096cfe61fa6f7f5f3d700942ff965c4079d1a77dd85c7a4ad93c57757b7731ceaa60b100cdb929c05bce8c4019bceaf664972b91d9d148b1ad28b9ec6b55b4b2d7bf45725598d187e7645f6991d4f55e713c4100c018081dccb51beb03c8a6c463b0de7a2acdf3ceacc1684780ade3097ac86640bfa0f79db45a8a40cbe61dac86a040fc64949b219c761514a02a194cd79a87886e09e321059368b0e2618570a2380a982145b8dfacf832ffb167e691e01b8f9a23735d2fcddab4ed983e8e2485126986ec7d96d30bd62960a4c20a0bac0c588802eccaa05a95fedae963286e8344b00a8ee6f744854cde41d71d9f13ba329ba9ab86a71f5a35381fb191c56a25c727e82b852025082c416de1e46b6ddb9972837ffac97c30f24b781c9aff59637738453bcdfb5cb8003f60b6a488e683ce478d009c297c73a581068ce94163a6c5c143db64991c84d31f0a7058a3db622a95df81dd757e2170d69d4ba88e5273d5e554df84e23324e7c589f16f7bc591babf65f10cffcc48c3f8f4bbc7c1a87ae26e6ca93442ada0091424d8cfa8cfea93a88f1c066c06c3423f1b36fb2d9cda4ca0d6f3d68cc28614a3300a0ee5869d9e3ca4558ac278f487681ac305cc5307e645c9ac5ac64f64ec97393e44bfd2ce9b61adf2f025dbcb1f49cccd038f173416dc9810f033f615456c9069ea1777379f69202797a129ce9fc7eb31c72cb9f873f341937f57052c57c17528a7f1f5024df10dfc6bd8f4557fb8233c035b127bed18c9e75ed1562266cfe9b8cb4d7cf54e58c57785263801071baee80077b7e03d482c2fac40e7dec6c45365b2b41886b36facc41362b02c1a5f4973bb3c38c16c0277f9b7531eec585cbaa8aa6267f71710fc02d95694d9b4805651c5cc6851f8f7f4ded957685f214b7f8a8e67d65ccf30176a2bcb6777c77564ff47bd365b74a2c79dbe81aa2670d0c131bcf507a90298e697b4b6a92ef40810a2031f84f10177adbfb71583bcee3a4d912b95738004629be78b36e853da7f96fb9a2d6fbb7344e0ccebeb8c57f8079b5806f43fe33ff34f67f21503e97bb1e2c330a6d16bceaa2552d35f430719f42c1414a0eef5055fc5ea34451f3c933d95640a3af028e9b947aee141a60bd38f9757eb3b6900de0c3770ea51cd8b3b3376a75b8efaf7b9537fda4fa73583a9e8abcd2578c0d45bbb156e19c8eddecc57fb471cfa7b15652e628db8859eec1660fe95ca3a58bc5da9851e4dc13175b886fc21e84b44e3f6a7d1dd9e36cba297dc47214e386c4d53971be1503970ba863c71ac089aecc3845b37507a033808e00e2a819d59914ae3b4654368222a1b5cf025091f55f94e591fa0206f7a6c6ed15cf81d221fe4468f77e7e488c647f02837739432f63519df60b04f0a421b03cc5c0fb269d03cdb5401ff7369f796a3afbee3d9bdb852141e7091a04d7c3418eb82437104f395a0630d8cc57b1578a5e4472f368b7766210f3fb03755c73e67221e17f1d5a7f226f50561823357662c63491d5b68c7beb38cf5eb50ce035851414e7c71345df2ca4d7cc02a12083c21c22bd660ef9a21842b3d96cc062c46472bc4cd82a6a35b858223944a3b768acfbfa3f2b4baf552b5be935090eb837ea186865f878ae9f5ccaaee91dcca593d8296c0dca4b3dc228255c87ebef7cb3c8d882f7f9c1cd46d2b0ba69c1e4845d72b9cd357d1a4b108957f09f6337f2c1f7c369aaae7c8fe41688c7076ea87caf829df79adc6769c783faa94d0933a1aea7f3446550deb727fe20d4876598ffbca8547f54540a911af98e7ecc740114ca63645b76c5b796ce0d5b3baf0cf628bdc62297a52822ba5076a74d7df7560cbafa7de17531f3a26dfb51a6818ae5014fea9b44decd20fc4fbb627dd6f4250898c4a60a525d5e6e7de36127bd9db49cc87ebdedbe03d9fcb35f7837e7e6f9ecda75f3a701efcd34c1284f8da2649a83ead0e0f58bbff399e521e6b738de99241083d1aa0b66c880e71390debb544f0ae8d91036a9741ab25715e3bf5ee7b5574cca9caab6eeaea384c341f5ddfc0d4ffc39a3f5262176159ce30705d5a34bc4d2a4908cde7d70e72d8ac6fdfa6f5815be5238fdb1e31ce8b486ef08954aeac6cf3617f6eadeebc7c8ec07f91a9ec0cca4b512178eb454572d1fac530936303154d538645af959bf96bdb17973b8ffe79f60e7e744fc18eb9c991c4a20465c9c6bb8a30ca2baa7c48e2b999c15d5fa669ee43386fee80af81d7fabae1e1da44f88a17341bd13e05be00348948299d7980fe73dcf3ea238cec2d74cf9e580be64a314964567a47efb2c30632c34cb98a0d4ccbc6d68e841d4c5edb4ee07ce60384feefbdb6202b39fa7f68006bb7237bdb6d90d777f0ed4f599973a2afcf70b01741cbe60aee15f5ff0714f7023cf394490904df46ce4d69b4fa05c43f94875f562afefc6e750843aeb07e4c5fa9a7e3252d8b5e486a3e152b8c46b2f564a7d21809c6204136bc9e9a104f9c3a7d3ca8e439ae63ef794cb2fd16452e9e7e1d8c9c09dce4c4bf34526eaf45c45b5e48cc195e635b3a24cc605ee42cbf0214f10408d4ad318403d898e467133174eab1dd48761f9185aeac72572895c660a640bb8ccbc897a8340ffcb474c13112213fcc5a7c927b397f46e2242f6ae6de4d0d17dca9a8996afdf6385e25b6b32051820112084236f9211efe5e57dc67847c133e1e35565f12225bd3c89bc5eb0ad254bde2f3aef4ed0bb448137a704af920a2f8ef7515ebc3a1c78979c9c4a9de029ce3b18cfc47b7758f076c9f2e6e0f026b9f1deecf15148be94dcf04f565ed5152f1209b668e8782730de2528bc5f4878d7866f9280f7cae37d7a7871ce786518d044c4bbb3c3bb34c77bbde07db6680ae35d05bc93244d49af4a7c91e0d89a81e26b19efcdd04389e0bde11e8a8c570702ef52ce9b2a7f06f1eaf4bc4a5cb69294e09de65612a7777af2c2e8e0e9182f8e0e5ea4edc501e2a3f67857e39940797144f8a825de2523bc5f9cbc2a2c5e24a45795bd48456f4c92a7737cc1784f4f682ae3bd80789fab962f2536f8a7355e9ef265d2638b868d77ea620b89ccd710bc3a5dde256e4be6cbd722deabe77b34b04553f34e357cc17c4f574d42d421c4bb438397a9e6e5c1f23201f22e31e1fd32c2cb838097c9892f254efc53122f0f102fd31aaf8ecfab24c5560c029e6a60abe68c7f9af94272e52b0ede24217c93d2168d0ede69902d8bfb1e23deff782642bc3031788ac58bb3c72b23c7abbae345ba41930bdeab90f7b9f2de287dd4eaddd9de252db66c921eaa86d7468f87d2d9a2497aa738b6688a78a7a12d246d7c93ce8b738117e9778907ef9725af0ecdab54c4ab02e1451ae2d559e2551ac1bbd3c8cb14f3de40f1502c683ae3b559c143f5f05e12781f728ba789d74bcc56922fdec9a669015b344cbc5302ded40b3fb737277b93ac7871f27865e0785322bc0f07de8b8cf771611819d55727ef9220de2f399c4adde02900b66a2cf04f0378af32dee78537878a3709917789cffb0585f7d2f23e1f7cd910f14f85bc372a3c14175b3470bcd3175487ad1a41fe69c97b6ddf6382774790b7cb0b5b343678a7404ec97cf0b5e7c549e1a3a4e8e18262e0bd0af03d1b782f46de878b97e7cbebe5c97be9e07dd47877b2bc4b85bc39326f92105b3457bc9314efeee0e0f1cabcf1a66ef809c3169239be69c97b11f13e30c7c0f03c25c07b15bd8f00de9b271e6a9157d5e44522e29425f43d0a78b78c7792c2bb3382b74b10efe5f33d23d8a2c1f24e5ab690d4af8a3415bd0bf44dca7871b87865a6786fb27828a62fab88ef59e2c591c18b74c29beae2e714ef45be4fcd9b43815789e75df09b30e0d5a9e35db25e1dfa2a2de0cde1f2267de0dd28de89cdd638bc858297a7c9cbb4c39745c8f790712a05f55400ef8adfa4015f36d93f01f28ccd1affd4f4ea70af52166f8ed19b64c80b23c8532c5b3012784ab4a524e69f0ef0f23cf27a89e15d027c13d5bbd3c2bb14c6ab93f32a59d9aa61e29d72f0ead0e05d8af265f9f03d49bc3c3d2f53105f488ebeee602b89d23b61ef823c939f37078d37e99137677b93b0f85242fed3d0d6cc94af54bc36177828efbd31c043a1f1dee8f151332f4f97d7cb7c91c4e09ba2f89ac9e26b1aef8e0d5e26d5568d00de69036f8e0d6fd21a5f35df3b25f22ee179bfe4bcd708de87cb8b2381570690770d3c1307bc3b56de2509bc48b2f83872f0de50f1508cbc37423c9404de8de19b68796f12f928eebdf1f25133bc3886bc4830ef9212de2f3defce0ade2e466ccd48f1d58c17a7e6a3c677d1782773cbc6e9a18ebe944ce09fb478f7856f42f4a690f889e5c599f25175bc3727f828faa67adee7901709d2375d795515789394bc3adeabb4c57bd5f13e3bbc9793ef29e4cd99c1ab14c37bf3c747297973bc37698b5795c68bc4c8bb93c2bb14c59bb3e54d3ae4dd01e25dd2e3cd21e14d62e2bd987c0f05b66670f82ac5970df84f18782f38dee786ad6b78eb04af6abe48436f0e106f121e2f8ff73271796fa23eca871747ca47c1f165d5bc932d2f4ecf4731f1f204f132b5f122b1e2e3f8f2eed077c98a2d1946be06f1aa3e7891aabc39e29b24c8bb6381b74b0d6f0ed4ab3465cb66e9a16c786fb087fae2d589e15522e355dde04da261ab068e7f52f2ee94f12e3df2dee43c9413ef02f14daed8aa61e39f685e24557c1c442f0f0e2fd3175f33455f19f0ea2479957edef9782640bcaa385e241abca902bc8f075e95f522b5f0a61af0f38a2f2577fcd302be16917732c4ab62e145e2f2a52401ff84c4abb3837749872d4be79d24f1a5648d7f8ae2cdd1dea42bb69020f92a82773b9ec99497e78397e98657879177a985af4df8cdc09bf2e1a70d6f8a8a9f4b6c2111e39bacaf24387cd3973705feece1948c215f7578737cde24295e9c271f65c60b93c753f1b549e4a1a86cf16c79bd585f49a07cd30cdec7782608786156f0d4897723fefaf2eaf8f02ae1f15e71bc8f9477078777098e378789374904afea8817299077097dbfacdecb85ef59640bc9085f51f0ea4c7995e878733c789386de9df89b9a9787859769892f1aed9d7eb66a68f04ff45529f226612f0cd45307bc2a282f9214efcd0a0f75c69bb2e1e70bef5d9e0920af4a8517e9ca7b33e5a1fe7875ac7895babc3b34ef52b87533f3504bbc2a215ea432be94c4f04fe39b93e44dfad94aa2c63bf1bc9712efe3e40b86cad3fadad8e0a1aebc3925bc4909786d22f050f5d519c0ab44b44583bdd310ef0e16ef120bde81fea2c1cb535fa623be921cf14ebfd703de07dc5262fd130baf8d0a1e6a87770908ef97016cf128f17a49bd63e09998714ae6035fa7bc4b4278bf10e055b1e04da25f3c1578bd88f0a5a4fba722decb8af7c1de0b85eff9c0171232bee97a9764ef17eccd41e24deac07b11bd0f005e98173ca5e21d86b7fc7897846f930dde98d4d336decb89f721e1bd1af03e06f892d1c157718ba6e89d927861ee780abed3f14c7478f7c03369e3c5d1e29589e2d509e15542e2d539e25532e44b06035f737891ece09bbc786f5c782836b692a0f14e3b5f3451de897c6f14f0502b786f2ef05103783fe499acf1a6dcf879c6169235be29e65d21be8916afced0ab94812f8b8eef61c0568d9277bac08b83c44729bdaa1a5e242bbe942cfd93186f4c0f4f45f0aa067993acaf1931beb6b14503c53b39f1aa0279937e7314f02621bda925ef1381afbd52517e1ae0dd39e15d7ae24d8df03e1d787998bc4c525e1da677e9db5a1bbc13a07707e65d12e24552816ffa612b8914ef24f322c1c1376df1dacce0a1c67787897729692b66c9d33ede1c33de241a6c2da979bd74f1ee34bd4c009039e35535f12269a02987f786918f72616b8688af57bc3c27bc4c565ed507dea4016cd5f8f14f3b5f3484bc93195b37491e8a8953364cfc930dde54183fb1f852c2e49f7c7873c637699037078e37a90984086cad0adf647b79527899825e9c1cbc48da168d9777fae3cd69c1abb4c2d7cd190f9583afcb863fe1e84542c5c371c6568df84e327891a4e09b8ede25e39d94f0ea60e05dfae0d5215f2542b692a8e09db257558017697c71ae8f0ae25581f122a5e0cd497a954e78739a5ea51cde1c296f521bafcd041e4a7b6f6c78283cdecb00df93c8bb73f32e95ef4bcfe48ef706041f45c27b1fcfa48a93a21747878f9ae38d99791ac77bb33dd4185b353eef84b465a1f13d5b7c2999f9a71cbe904cf93a8377278d7729075b334d5f39f06593fa2738de9d44de2e405f486ef82a8357c78457a9893727e74db2f2aa9c789136f0c523c6eb85e7e519e1651ae2c599f9a822b66a78de4903afce15afd20a5ed503dea4ebbdc1c047317971c48f82c07bd3c847c1f02ec1de2f29bc3b5dde2e41af0e10af921e6fce0b6f52182f8e0b1f35c697d5f43d78bca92a7e26e08561e4e902b660ce78fac3bb6fbc13ef0bc90b5f61f0f2487999bc7891a8e09bb4bc3bf55dbae285a9e2e9f7de74f1505fdee7782639bc3b6bbc4b3bd8ba79e3a19ade9b147c94f6eaecbc4a412f8ecf472de0bd00f03d0fd8baca5f52bc3c3778bd44796f7e1eaa02ef2fbcd5c7560c7d5a813735f33e79bcd793ef71c1ab52c19b94c2abeae14502e3cd71e34dd2c1964c07beeef05e76bccf942d9e245e2fd78b4404df04f4e2a8e0451ac08b848baf6388f7e2f91e41de017926436c2561e39d96bc373af8281dbe663cf82a748e0d17ffb48357e77a957e786f8678a809bcd71cef93c3abd3f42eedf02261c1372df12e11dfa61bbc30763c2de2d4cc93af0a7875a8789552f0a6daf869c68b53821789e7c551e44502e18b0702af17275b0bc23701c0160f15af97246f6a8c9f5abc3a5c5ea510bc3ae1ab34c8561225dfe4c67bb3c343f9f1ea8ce05d32e1bdb1c147ddf0a504907fbae2dd91c1cb84e44d09f1538737c97ed318af4ed0ab4481533334f89a81ad243578a716deabcafbec978dce3fd5f1eee0bc4b56de1ded5dcae2bdfa789f2a5b96cc3b317a554d6f120eaf4a036f92ce160d1aefb4c5abbac09b74f3a564917f32e3e589e165a2e2c591e39549e3e5015fa63ab66abaf827eb4b090bff04bed723ef53c6bbc381b7cb9477278a7709055f3c85bc5e7abe2c3dbea701ef0d978742648be7e9f562c3561246dec97baf19bc4f182f92053c1c0e7877b277098b572705ef52f6aa007991a2de1d14bc5dc85329173cd5796fc03359e10ba63e2de14d21791f3db66808f04e545e15d18b04c8bb13c3bb64c6aba3f42ea9f00553f4f4006f8ae827f9debce0a35a7879407899747893a8f04d5dde94027e1ebd3b2a78bb58f94af2c337d9e0e5017a99f8782fa7f769e3bd69e2a1babc97d1fb78f0f2882fd31d6f8e136f52d2cb33be4c78bc313c3c0dc1d78ceaeb95f7f2afa47767f8264a6cc194f1d4871787032f92cc9712a47f0ae3cb66f54f7e9cba64f8136a5e182b9e42796d32f05006782dec7bc62f254dfee987ad1a98779ac09b13c69be4c817cd20ef54c6bb33c8db05861767888ffae30b490a5f13f9b290be678df7339e090c5fe7fc1178757e5e2540de1d3ede2e2cbc1bf54e844e5945dfe3c4abfae345827a91f4f14d05787900f032b1f0a6def8e9803715f49388f7083c93714bc9ffb4c2bb43c2bbd4c47b69df538217c7032f5292f74ae37da06cd1acde4988af183ebed27cf178e0f542c2973581ef29e3c5497a9172de1c2faf1294370689a75fb6687adec9872d18429e0ebd3a38bc4a6ebc0b806f92fab202f04e96f84222c4d72fef4d211ff5c18b33808f327a55df8b14c5bb9381b70b0e2fcf0b2f5314af0e12afd2075e1c465ea411de9d30dea5197cc1f8f0347b977cf07e09c08be3c14715bd3964bc494c2fce023eca91ad69f0204ce0dd11dfa507bc2a1cbc4935bc2a295e240fbcd70adea78af7027a9f9bf7668b87a2c1bb7381b78b0d5b363b78a8a2378689a73878773cf076e9e1dd91f22ebdf1ae1aef247b79625ea69e5705801789ca9b33c59b748237878537a98bad1925be86f1e65879930879afee7b1079afd5f788e04d0dfd1c5f9c1f3e4a8f539612df03c5d68cd2d707bc2aa31769907727f52e05b175f34321f1de1cf251226cedf64da2bc2900bc8f04de1d13bc5dc29727e865eae3bd2af03e40ef8e19ef520d5ed5182fd20ade9c9a3709dcaa41e39f90bc3c2abc4c46bc391c789540786f90782813bc3a4f5ea531de07792645bca9277e6e797332f02a0de05da37762bd394adea4f0cb82c1f7c8f15e34781f315e9e215e26385e55192fd222efb5c6fbc8f0ea74f12abde0bd61e2a154f0aa865ea43fbe9474f9a7325e9d2fefd20cef25c2f764e0eda3c9e95d42c4dbe4e5cb82fa9e3cde982c4f197971a0f8a816bca9337e82f1ea80af92202f1247be098aad1a25de0907ef0d9687fac0abcac09b94f3054380a74e5e550ddea418de18229e9ae0dd59e4ed82e54d7df03e177873727893ded8a231e29d8ede8b8bf7d9b6669cf84ac68b03c82b73c7abcaf222f5f16575f99e37be6006f0b449d310ef8e0eef921caf0e13af1209de9b191eaa8e75e1cd09c1ab34c2569213bc136d5ac16be3c74301e0c5c9f2511c78711af0ca64f1aaf0789170f0dec4e0a362f84222f43507afaa056f527d2f12be87035b31d9530b9c4a35f274676b86035ffd789300e09bec782fc133c163cb9ae17b8cbe62d2f81af3de347dd4942d1a37dec98b5725c78be4658b2705af97d57b29f23e56bc4840f04de5bb75bc13047c2dc1e1fdf2bd9512f2c2303dd5620b86034fb7bca9207ee6f0e25cf9a80cbc3b0b7897babca92b7e2ae045d2826f62628b0607ef24c8bbd233b163ab86e69d2cf0e65ce0550ac0160d08dec98d57e702ef9207efb583f759e34dddbc0f20c3c8845fb757f5e54d82e1559df122b5608b06e79d6e78555bbc484bef713c931b8689e1e2abf55e6ebc4f0def92d5fbe58477278eb70bf6eaace05deab668c078272b869909e42b1e6f0e1b6f120ebe90d0f035064de07b43c74759afe5f33de2bbc3c6bbd4f4256381af38bc3b2ebc4b62bcaa09bc4948de14d0cf21beac3bbe078c2f2505f8a72aef2c78260fd83a89b7a96f4e22af52f6a504897fd2f25e13789ff2bd6af03e663431c07b73c44391e0c5a9c02b33c8aba38277497badf93de4a914d3539e2f98229e72af0a9137c9842d9a12de0988f7a2e37d74787120f0caf4f1deb4e0a30ef06e11dfe48b77a1de499617e78e57c68d2d1e275e2f324d30e8e2bd3adaab74c5bba3f32e19b1958403ef74c256cd03fe09006fcecf9be4c7ab23c4abd4c71612edeb225b7f791028f02ef94dc4787792bc4be016923abe0900efce13efd209de1c1bbc4a346c1d832780195b3c51af971bde140f3f69d89a29e22b166f4c104f955e15152f12085e981a3c65c0abb3c8bbb4c23b099ec91c5b333a7c9de24da9de47902f1e2c5e2faa37b5e5e79553317f7cadd9a299c13bf9f16513c23fe9f1be80c7717ad7c937e979534cdea79057758237a98457a57a91a4bc3874bc326bbc38da4769f126a1dfd48277678677498d37c5809f556cd568efb4f4ee9cf12ed9e0d5f1e0551a7a77467897987873d678936ef0f2ace0f5425f9b0f3c540cef8e08ef92122f8e971769f5e208e0a38e78afc03301da8219c15325de1ca2370903ef4e216f971bde1c03bc495ebc397fbc4a49ded40c3f11f035c3c557355e1c251f45be3b5adea50fbc3b1378bbc8f03523c2d723de1d02bc4b5ade1d19dea534be94d8fcd30e6f0e0b5e25ef551df22605e0bd32f03e59de9ca85789caabeac09b2480f78af23d8dbc49b26f7ac1ab62e245c2c0313226f8da0312d1bb7382b78bf8e2f8f1cad4d1f4f4e694f126cda089015bef6e1eef04caaba3f32a016dd110bd1312ef92edfd42b76c067928ecd5a1c0bb048037c7c99bb4e555c5f02241f1e63cf22ac9f0ea1ce055fae2e531e1651ab71606ef447c5529bc48466c2949fd93019ae278557ebc484f5f5b827722c4d64dcc4329f15563f44e35786fbc78a847b66a7edec991576706ef12947767062f13cd7b21bdcf126fce95378902af4a8b1749e9cd29e45512c0bb21cf048d77ed78272dbc292c3fc12f2527f8a7315e1e185e2629de1b2b0fb58117e7898f62c19bd38157c9c9d7374b3ebcaa175e2405bc4b9cbc5f98bc2aa017090f2721bc38267cd4136f4ed19ba481570705ef527d7334f02a7df0ee2c7997b2bc37837c946a2b091eeff4c156cdcd3b15b23553c557077c2121bfdae02b090fdf548357e703efd208afce09dea5f95e43efb3e4c5e9e395a1636b26035ff9785309f859f4ee34f12e2dbd2a01bc483ebc23f24cf66852e3cd617a959ebc4bc0b7a9066f4c124f1fd9a2c9e29da6d8b25af81ea11766014f63782ff17d92bc2a46dea4edc519e395e1e27d8b6752b7ee7ebd7c2911e19f80782f43de67e8b5a9c14319f1ee58f12e29f25e2c7c8f0a5e9c241f15d2f1e6f0f026d1f1aaa0dea4296f4e045ea59caf252ebc5f5c787176f8283abe647ebe6aaf0a036f92eadd39e4ed42e54b46e8abf7c52381d74b085fd77e8f1eaf8e0edea51cdefdf9265ebc39f44d5ac07b85f03d18786f54f051db170d7d2722de9c05bc4928785320bc4f065e951d2f920dbe649cbe8e5b3439ef24e5ddd977e987f7e6031f558037878f5749e6c5f9c08b44f3dea0f0505a7c2d05de09951706064fab78757e7895f2787362f02abdb03573c557345e1da3578903ef8dd14325bd3828789104f0c78ba406df84c59b32e2e7cf9bb38257697b55ab1709cb8b037ed4205b345fbc53152fcc154fa3bc6bc43739e3c5d1f251486f6a8d9f64bc39287895e66b53c843adf01573c6579817e78b57c68a77078577098a2f18274f43782d9e77c2e55da2f37ec1d99ac1c15743beac43be078dad98d5d309bc2a0fbc491e6ccd34f2f502ef4e0c5ea69997678697298b1787fca808bc3b55bc4b2bd8aa51faa711be66d8f81ac79b9a8f752f4f0c5e2f077875a4789510d9aaf9c03f397963c8a75dde1c08bc4a38af4a90376957a68b57a702ef5200b666ba7c9dc0d74fab43f42a696019189ba74cde9b171eaa8d5795c48b448177c78977c9046f8c96a734d88ae979fa80f7e6c943bdf1eec0e06582d9bad179a827decb02ef13f4a6b2fc0cdf14173fa5785527bc48406f8ccdd33b5e9ca817c9002f8f0f2f53195b4802f9261cde9d3cde2eddbb2e7c939f77997827322f0ed28ba47a553f2f121aef6d3c93195e1d375ea5a677078d7709075f32367c9d6f8e0b6f52035e15f922d1d125865727cbab54c88b13c62ba3c58b137ed4035e1d29af521b5b37713c94d3161298af207863903c95634b86065f7fde1c15bc4af5c5597a9176be66acafe57b5de07d8c78558fbc494f5ed50e2f52174d5dbc387abc3271bc3b37bc4b6ebc3944bc497dbc970ddee78c17078b57e689ad1a2adee9e9cdf9dea432de1d40de2e2dbcaa3e5e24a7af4d7a2741bc3a1b78979abc3a78bc4b30ef227826716c2571c13b752f8f112f931fef4af9260a78738c789326f0f2507999c4d8a269f24e3cbc3a32bc4a0e782f24de8700af4e035ea518bc374a3c140abeac41be678c57478557098a7707e9ed32c4bbb3e55d02c17b03e5a1e4d8aa21df89692ba67b5ac89b53c7abf46b438187da5e1d01bc4a425f4988f8261c6c25617a2703bc3a71bc4a50ef583c136c2b8920efe4644ba6005f49d8da2bdec9922f2542fc1396f78a7a1f38de9b0c7c1401b69274e09d5078777e7897f2d85a12f37a31e24d69f969c4bb73f42e1df2dae0f150aa576702efd2922f1e0dbc5e467871ca7865bc7877e478bbcc37e78b37e9055b3235f80abe3733f8a828af0e0aaf92135b344ebc9302de1b167c94019a46f8b201e4a104b045f38277d2e3e5992fd3d0abe2c09b04802f1911be16e0dd20be49165f4a54ff34e5d571c1bb74807767f52e4df1e6cc37898ad71ac03b61e2dd49c1dba57c795ef07ae95e9d995769882f2539fc13d0bbd3f32e2db1056381a745afaabe48477c5939f89e3bb66abafcd309af0d061e8a85ad180f9efeb125b3f4958777d97827db9b72e2a79626255e1d13bc4bd82918eba907ef7af04d645e1d285e2513bc31d6d335b69034e09bf66bc90cef9727af4d051e8a7b17876fe24453125b300f782af445d3bd5311ef0d093e0a85f726071f950312b995e4e69bde785529789350d8a2d979271cbe78e078bd78f05e2c781f2c4248e14dc1f093fb82e9792ac2bb437c932dde18a0a78bbc3a43bc4a7e3455f1f2547999d8f85242c33f956f8a899f476c2579c03b85f0f2f0bc4cdcbbf3c2bb34c6d6e6e09d18f1ee80e0edf2c39b23c39be480a613bc3b42ef12065e9b3f1e2a00afea002fd2125d9e7c2949e19f84786f12f05089bc38341f25be3862bc325b7cd904f14f17a84abc380c7865ae78f7e39904f1a5c4907ffae2cdc1dea429be90007dbdc19b73c59b94c86b73c843bdf0de44f1502d78638a788ac81ba380a73b785364fcdce2eb1da4bec98c1787888f02e46b5df04ec2f732e17b3a708c4c0b5f576f92996f4ae35dc2c2fb857b6fc487c2c0ab8a79919ebc1716ef435fd5132f1207de6bcbfb307977b0776901c3c0283d65e2cd21c09b64b49504ea9d62d8aac9c13f6d5b33e3572dde1d2f2f939217a79017699b9cbc57d3fbb0b155e3e49d3cf06573807f1a64ab068f7f52d1a3ad9a27efa482778701ef520cde141a3fc37871541f15b45553c63fc97cd964f14f3a3895dac1d3006cc57cf014907787e85dd2c0aba3c5abc48253336f7c9563ab468477fac08bd3e54562f2eec25b7cbc3b75bc5db2f7f2e37d8278554f5ea4275e9d3bdea5d45692017c931eef6c3c1319be6cacfc93069a8c5e55182f5222ef6582f77162ab6607ffc47d5d32dfc3c7abb2f222d9f1e6ccbc4943bc37df43c5f15e88bc0f145b48bcaf2d787374de24a0376688a725786f16f92816de5df04c0879af1cbc4f1a6fce095e259f3727e64d0ae2cdd9e3558af94272c4571dbcd70ddec7015b344dbc53135b348ebc131fef0e09de2e42bc77f14cb477cd78272abc3c44bc4c716c2529e49d48782f33de0786f72ac1fb28608bc603efd4c6561226dfb4c7d6dee448f12699e01d5c1c047c5418efcd140ff5822d24717c13cf9b53815769c9abd3c6abb483ad981a9e76e0bdc6f7a179718a3e0a04afce07afd2112f0e0c1f55c67bd3818fea79554abc48167873ce7893bcd8a4e02b0686a71b78750479976eded4143f957871703e0ae8d5497a975278754678959478719a7c54122fce0c5ea414de9d37de25a8f76ac1fb64f1e6946f1204b66a7078a745de9c18de2432b6686cdec9869e2ade1d04bc4b0dd85a87b752f0eaf8f12ed16ccd94e02b04ded4ef134753955331837c55f2deac1eaa8baf253cbc5fa23419e1cd11e45552f22e39e1fd5280772701ef92d2ab42e2459ac0ab33c5ab848277a77827385f362efcd3035e9dd5ab14457de3e5a1c1ebe5855755e5451ae3c529e1a39c78757a7895ee7871b67865a4a85bde5493f7d1804d1f5b354dbc930e9ac8d0a4c8d78c96af60bc2a145ea4a02d9a10dea987f7268587da824e7975e87897768b4604eff4c6ab2a7a9104797704f02e11bdd607ef24012f4f9497c98aaf25fb7a91f26e956f82c556cd00de8903efcd120f95822d1aa177daf25e317ccf0bdee57826387cc9447d25b760e878faf3e624f12679e0e5d17999b453318d7c0dc01b63e5a9225f487ebe3eb2b557be891c6f2ae67dee786f6478283ade9b107c5409efc57dcf09b6d68b77d2e40b4994af8ebc3929789568adf2e2c8f0516a7cf1a8f17a09c0cb5383d7cb772aa5f4f4e6cdc1f22655e0c5a91f85c5978d11ff44833765f41368cb1ae37bb0f88a01e3ebf5eef4f02eddf1c6804f51f02e39c0fbc57b5335efd3c7abd3c7bb94e48b0601ef146e59247c083e2f4e131fa5c8abaa799166d8a229e39db2d89aa1e2eb195f361ffc131e6f8ed2ab84c2bb73c5bbb4c83b1ccfc486ad9a2cfee917868fa7e59b73f4266de0cd69e4556a61eb468487b2c209b83553c8d73db66a7c78a7176c2589c13bb1f0ea9cf12a3db295e403ef94c2bb63c8db4587570704ef5201de9b2b0fe5812d1a29dee98957e78957a904af4e18af920cb690705f59f0ea28f22e791ba913de47042fcf9397698af7bae37da8bc3714f8a800bc3af555aae25515f122a5b15573807742e4bdf4781f1fdee5d994d04ff1bdde781f1bbe2e9ceff9e31d8f67c2c33031542889e29fb8bc308d3cb5e2c5c9e1a3e47873c0370990372580f7a1c08be3c52b53c556922bde29c956921bbc930baf8e17af12235b374c1e8a8a1787e8a33c10b3656b8687af0b7871e8475db195048c77ba3925c3c3d7fac2dce069035e9e1cbc5e66f89ad9e3ab1d6f4a879f505e9e125ea6f04552c83705b15503c43b31f2ea04e055caf2aa9cbc483f4d739c9281e3ab0cef0ed4cbe4c19712ed9f7ede1d37dea5a72f1a16de097c9768ef97f9e6f4bc495c5e8b7e4ff9e2e47c94115b352ef827155e1eec65127aaf26de678477379e090d6f0cced33c5e247b7c53cf7b2de07d565b30613ce5e1bd44f03e497c25d9e19b1e7997e4bc5fac3705f33e766cd15479272c5b34e13b11bd3c422f9320ef7580efe9f25e04f89e0abc3b50de2507bc38d84755f1ee70f12e31f2ee1cefc4005f48c2af35785303781f0b7c2971c13f9df1ee5c79972cf0a60ef093be3a545ea53ab66c44f05033bcaa18bc492cbc362678a81b5e55cf8b14be4bc8b729072fce0b5ea49e2feb03df93c697929f7fcaf22e0fdf848af78ac1fb30e0b569e4a17edeeb875f3db25533827f12e1c5797a9156d8a241e49de87897846fe2f35e1a781fa1ad1a12de29045b334d7c1de34dc9f0f300ef0ed3cb94e4c561e2a3ba6cd548f14e4e7510f15e2a7c4f08ded17826317c2969faa736de1b3e3e2ac9ab5ae1454ae2cdc1e355bab6680af04e3fbc307a3c1ddf1c455e25eeb501c1434579771479bb5c797956789994d88a91e269d4178f1daf970fde1d1ede253bbe9444f927f24b490afe898c1e2dbe64ac7ce59a9a786f00f9289b9787e8657ac07b95f03d87bc0be59b20f1a50406ffe480ad247cbc1301de25f04cc8576790770967aba6917ff2796fbc8732e3cda1e34d8a7aaf3ddee78777b978271f6c2139c0d7176ccdf0b53ddfa400efd5e47b2ed005cabb4485f78b09ef0d0d0f65c78bd3c52bb38057e5e54d7ae1548c1c5f67de540b3fb35707ea5de2612b091defe4c1569230de09e7c539c18b048057279077c9e6d551f22a85afce1fef52cd299999af20bc37f5a11af0e608f126edf1a6acf8d9c4ab53e555dae3bda9f25084bc273d933a4ee2e18d197adac8ab12e14502bf6ed878a81d3421b1b564e6f572e55db2f37e51bd5f337e7cbde3ddf1e05d3ae24bc90bff24be31fb548d974791d74b7d7148f82805bc3888bc480178d7e299d02f9b1ffec9025bcfec92f26dd2c19bb37a93a278534dfc347a71b88fe2e25d19be0997ad98a5af3b2f0e0b1fc5802f18159e16e0cd597a95527871aaf8a818bc3a51bc4a27f8b201e19ff2782f30de8785778901de2fdd170f1faf1702bc1b806f02f305533ef5de250178bfecbc395abc498ad4195e15cd8b24c3d7d6a460923cfd608bc68377dae155e1bc4837bc31424f61f0f2407999aa7875845e250c6cddf03c1414ef35c6fbb4b0956407ef04c3fb1acf24cabb13f32e0df16e0fdf6401af0ef62a4df10583e5290b5f49c66fd2c19b32e17d42b07503c2432d60ab86907f0ac056121abcd3015e9c455ea426ef8d231ff5e4dd39e25d3264ebc6c94355f1ee1ce05d02e3cb66847fdae3cbeaf91054785566bc482c68a2f2ea20f22ed1ad9a1ade69055f32277c35e18b268777027aa7f2d60ade2b8af739614b4691af3fbc38461f358277277c9706d99ae9c0d73f5e9d345ea51bbc3a49bc4a207871f6a38078799cbc4c54de1ca457c9841727848f5282f6f0eeece0655af2be816792c6bb03c2bbb4e5bd71c14721e094557e4f02b692f8f14e206cd564e09f98bcd719eff3e455e9f122e9e05539f22679fbe5dd9979977e5e9c988f22a23ef1eeecf17659e1bdc0f79979711a799148785358fc74e21d06cf6402af4d0a1e4a8757c5bd485a5e1ca617098557878d574907ef4582f751626b86055f2bf0aaba1769cbab8af2224df15e237c8f215f5695efe1b2355380af45ef55c5fbf8345df1ee14f12e05f2f5137f83c41692ebeb075e1d9e57c988533118f88af3aa90bc4850b66a547827126cd570ef5482f77a7a1f37be521b784af3a5c402ffb405931f5e1b471eaa8837e78e57c9da9229e16b095f4a94f8a72def4e17ef120cb62c16be07cb178c96a708d8aa01e39f52ef8d093e6abe3c0778999a78978c6f130edecb05efa3c58b63c72bd3c6299b24fea9065b486cbe92e01d04cfe48d9e2cde247f9318ef573c93d5164dd33b3de0ddb1de2520beaca5ef61e34da27d1323eff5c4fb94f0ea18f22e81f0aad878911c79616cf0148c2d98103ce5b2952407eff4c2970c1f5f6bd8a2b1de09cabb13c2bbc4e56be178272cbcaa01bc4840bc38357891e6ab33c7bbf48bd37d54172fce928f126a42e34d15fdb4f2ea3cf22ed1f0aa725e241cb66e6c1eaa89ad99137c25e40b4686a73e5b353abc130bde1ceb4df2e155952f521daf0e09af12135f364ffe09026f4e9637c9025f4a08f9a72c5e55005ea41ede9c15de242eb66a5a782714bc382e7891447871823eaa9057b5833749cacb73c4cb04811727052f9207ef4d94879ae35511e04512628ba68b775ac0291925be1ae0e581c1eb658526712bb5c263515b49f4782726af0a8617c9892f9e365e2f0278779e5e2601bc38513e2a8daf99fa3589770700ef92d07be3c3430db245f3c13b4d7963c6a7896cd520fd53cf164c224f9bd84a02c83b357975787895ec78d78d77d26d19f2eac0f02a89f1a6a4f8c9e5ddf9dea533de98289e42bd4b0af07e09e1bdd8789f191629cb9ba28f795b3231f83ac49bc3bd4959bc3b1478bbccf0c2d0e029172f8e035e1930de0b01dfb38237078c370906af8e1defd2f5dee4f0507c34f9b035f381af80bc3722f82813de9da5b74b115b1b7855bf4807786f6e78a83cded5e19b40f1b531ab8a7a93a86cd5f0f04e2ed8aad9f24e36d84242c2d7147c2599e19b68f0aa18f022a1a009eac5b9c18b545f1c1f3e2a8ff722760791b7cbb895e4cb3b21608ba602efe4802f253dfc9311a7622af0f5e6d5b1c0bb248017c90cbe898a5745813729c99b13c79be4b4c5d3f47aa9e1cb32e47b1cf0aa92bc4851be60b0a7247c29c1c03f71f1ee00bec9cc9b93803769045b355bfcd3be3a35af12786ac6055f2df0eae4f02abd714ae6015f6f7879c297c98e97a77b9990f84212c3d746de9c00bc49595e1d3ede25242f0ed48bc4c28bb37dd4162f8e013e0a8c2f2539f827365ed5d29b34c2abf25e2424de9b2f1f45c3d6aee09dfcbc3b53de253ade1c3b5ea57d73547893a0782f3cde878757678657098d3775bd0f1defd6f04d987855496f9208ef4df85085bc16927772f4e2c87cd4cf971211fc5303de9d0fde25a357258237098417e7fb2807bc3a0f7897546f4e1fafd2cc9712a07f227a75b2789516796f50f051d917cd0def64e54d65f1f38957a58337e9862f1b1cfe69026f2a879fdf1b73c4d318bc3be0bb24c87b15cf24852f9e2a5e2f38af8e0dafd21aef05c5fb98b04573c63b69f1eee0e065d2797162f02299b055a3c73fe57c59437c8f125f30434f0df0e63c7993c66882805705be486c6cd52079a70a7c29c9e29f98d8baa979a804bc393b78957038656df13d0b785537bc48587c2989e39fa6f8ba09e3a16ef0e280f1ca60f1da7879a8f29405c5f748f135b3f315cb7b79e07d8eb660e4784ac4313122f8aaf3ee28f12e91e0bd92781f105e1e1e5ea631b668a8782728b61eff427a2f0abc8f9597478897e98d1787052f9293af8dc03b99b24573817742e35541e04d4abd394fbc494aef4ed2db8588f70b3c1323be941cfdd3d1cb53c4cb34c7562a7bcc8cf7caf23e3befb5c4fb84f0957ac0d3983765bdcf1cef0e0befd217af2a9137498577a701ef12d3d795fa9e3db66a98bcd3215bdff01622af4ae745cae14d49f9f9e48d49c0d31cbc2aa4372984ad2484bc9308af6a056f92cf7b63c4437560abe68b7fba5e1c988f1ae2dd8c67f2c2ab83f42ea1f0c5e380d70b00be64bcf80ac39b72e1a7f66ec53351e18d397a3a83f746061ff5bd3627782829a7ac2ddff3c49b13c8ab54f3dab4e0a1aa0c23b3c25715b66a54ef84815765823789842636b6624e781a81f7103c1338b652db6367bc303378bac5cb6383d70b94ad1a3afee9e6cd71c1abc4421309decb01ef13c3569231de49f5f298e0f582c23131897c5df2e2d4f0516dbca99df781c07b09e07b08f982a9f2547b6d1e79a8a037e6e6291e2f8e111f8581f7c6898752e4d5397a950e796f6af051365427be9434e09f14e044cbd78ee09d54795324bccf07b69298f04d2978534bfc247a736edea4f1fdc90523c5d3274d88bc378f7c540daf8ac98b14c416cdf84e47bc29307e5af1e6ecbc49414d4fbcd716efa3bd5722ef43c556cdf54e127877a0789710797570f02e4979771cf02edde0d5d9e35d9a797512f02a21bd362c7828205e9e455e2fd9ab53c4ab14c8560d20ffc4f3958ac05399777ff82656bc3884bc327ebc5708de07891727fba82cde1b2d0fb5f4ea44e05dda7977fc26617c29a1e39fa8d8a291c13bf5f1e66ce05522c0560d00dec990370703af9207af0acb8bc4c70ba3c8d327de0b06efd3c59b73c39bc4c6d78c0f5fab785575bc4835780b797168f82836be9450f14f4a9cb271e29f6ed014be13f24cc477078fb70bf765e9f03d5bb66ad4f8a7246f8e0e6f121c6faa879f35bc38583e4a032f0fd3eba585f7429e4912af4e0ede251c5e9e02bc4c3f5b37243c1416ef6af14e3c184666045fa9bc3b76bc5db4f706868772e3bd87b716790fe49910f1ea24f22e6d4d796cd9e4e0a18e785523bc48e2bb43e55daae3dd34de497d737e7893ee786f60f0512fbcd7f14c76d84a82f44e3eefcd150f1583afa5f81b2eefe6f04d9e787134f022a5de4b8af741e155e3e509e165f2e10b4902be3e35e9f0eee4f02ec5f125a3c2d713be9400f14f57f690182da79078f0b504a76ce6f827a79727002f130caf4e06de25265f49b86f6aa429ea6bb7bc13982f251efc530fef45c5fba8f0e21c7d14095e9c405e193cbe2c10de89155b3528bcd308de940aef83744a068caf4fb6620af014026f0c97a7353826a6065f3df85262c23f05f1f2d4bc4c2abc3c067899987863649ec2f1aa5cf026652f4e013eaa89af19007ccdf2a6b8fc147a9720e0fdb2c29b13be4981bc3038781ac6bb53807729012fcecf4705d294c87b79f03d1168eae1cb12c1f7a8f15e83bc4f11ef14782656b69038f97a8257b5e54592c056cd0bef948257e7e6551a5f1c1c3e2a8e37c9926faae3dd21e35dfaf2fe8067027e2551e29dae2d9ea2d7cb5b9b80778264ab8605ff94c2bbc3e45d3afa9a49e32b1cef2dbcb5c79b738357a986af14089e2a7977e6bb54c5abd3c8bbf4c27ba3c847adf05e6dbc0f0defe5c5fb746fce00de24a2374900bee98e37679057c9e6bd11e4a370b690bcf14d3baf8e08af52126f0cd153475e9e9d97697b711c79914a78555ddea4d556cd09fe898497c7e665f27973f4789560de6b85ef49c19792f09f84b66aaebc939737a7c99ba4e55d3280f70b00b66a38f04f207cf128bd5e4e7897866fb2c49b738037e98b17a7ca47f1f1a6ea632b3495f0e678e0550ae1dd81e15d22e30be684a723bc384b7c140a9ae4f88259e2a90bcb8157e5c58b74829767e8651ae4cd01c1abd4f3aa6cf0264179554f6fd20e6f4cd053163499e14d89f1338b77083c93f055297991687877ca3791e2d5f1f22ec9f0eed8bc4be41612067cd35f3335f8aa813767dfa41eb66830f04e69bc3c2c78bd68af8e9657a9032f4fcecb94bd3ae5ab14812f9b19fe2902af8acb8b54811707072f52f63583c7d73a5eeb7732f45e8ebccf175b49babc93f62593c8571f5e98163c95a2693c26c6045f795e1c1bbc48f4cdd1c1ab24e5cd59f2265dd9b2ac7772c47b7380874ae39d03cf448d2f9e10bc5e4ad8aa51c13f99f01523c3d3435e950cde2403bc3b6abc4b3ad8a209e39daed89a89c1d742de1d24ef52116f0ae77d02f9b2b1e19f24f0f2f4f03291f1eed33bc1b245a3c63b71b115b3f3948fad98ede9055e9def552ae34d12f34d0e78619c9e9af1de70f1505e5e1c9d8fbaf2e64c7993e4787156f02211e06b66e8eb17a7623cf035e7bdc1e2a1645089785350fc44e2e549bd4c4ebe2c133e04ecd521c1bb74c2570a8fa7d657ea024f917c5931f89e39be90e4f095e9cda96f52152fcf095e2f296cd1d8f14e0df8e2c9e3f5c2a469cbab23f32a09714a26f59500ef0c7826dd8b93c62b13c61bf3d3345e9d315ea5196cdd98f050597cc1b4f0348517c7ca4759e04d29791f3fbe6c4af8273e5e1eeb6522c0bb33c5bba4822f2508f8a7f04da5f03e24785568bc482fd8aa097a271abc1794ef81c19bca799f415e1e242fd309af6a913769be38527c142395c99bf38157498477c7052fd33699f0eeccf176a15f33277c3d7a5585bc4938af95c2f714f1aaa8bc485fbc3873bc326a6ccd3c7d3de4cd59e455eaded4f773852f24677c53eac569c18b14c29b1a7f02f1a584e69f74d8aa81e29d9ade1d23dea50abc3a55bc4a897cc160f1348717e7848f82e2bd92de8789ad245dbc9392778908ef1710de1c9b37497c7792789744f0da78e0a19ebc37400fc581572706efd293d7668f87da79758c78952af005f3c453185e2421f8262bef0d1e1f15f3eabce05d42c09b0ac0fb4ce0d5717a97a67cc934f93ac2bb4400ef179e37c7e955d2e12b4902de29b595248b77a279718af82841b662b0a714389552e469ce7ba3818f02e1bd8c781fd59b52e2e7d0bbc3f32e617979747899c0f8ba61c043d9e03d8d67f26dc1a0f11488f726908fba7973a07893965e1d395ea5a837678437498977f57827515e1d2cafd205de2e5b344bef24c797cc92af217ccdd07c0dfada2c6bd3c7432d79aff07d90bc37410f75c88bc3c72b33c7ab13c4abc4c79bf2d99d1ade2536de9ba58ff279791879bd78af0e17af920bb69218f24e266c594bde89125b3537bc93222f0e013e6acbab6ae1454ac09b43be490ff84262c257156cd5c8bc1305b690ccaf2bd87afbedc0d79ef04db22f244e7c857a2f05bc4f01de9b221eca025f3237f81abe3a3abc4a72bc38427c941fef4e0b5ea6df1da7972900af8e035ea51abc29ecb1edc5e1f9a82cef8e16ef920bded5d91d11bc5daa7cadcf37e1de252bbc5fb617878a8f6ae4bd60f89e16bc3c372f13f6e6d0bc4945bcebc43ba1f99219e36b0c2f8f0b2f1314c3c8d47c6df2659de07bdaf89ab1f96ac4561227de09e6cd69c09bd4c87b1dbdcf00be96e99d94af8e07dea59ef70ae37d0ef0a6a6fc94e16b19f04e9cbc37501fd5c39b23c29b94c4bb41dfc48cad9a1afc53f6f2c8bc4c24bc97f14c5c78773ef076f1610b86024f8f78735a7893c07875687895d268227a553c2fd20eafa5c2f780afaa8a174904af6a046f5293a629de9c1ade2435de8b7e4fd27b15f13e32ef0e15ef5222c7c4b0f155e6c519faa80ebc3a5b5e250fbc3bdebbd4c59ba3c49b0482ad18023c0d648b6605ef74c7bba485f70b0b5f0bc83bd1e1550df12299f1e6a0f02639f122d1e2e3d0c1bb73bd4b55b66aa6bc530bde9c2ddea445de2be87d70de94173fa97877c4789768f05af57bac6cd1a4f04e417ccd60f9eac5974d927f92e3dd017a9726f0ea38f12a2dbd3b4edea5249a4cf02e11dfa48b77469e8904de9beea1ca7863629ebef1eabcf12a39bd4846f04d415b31393cfdc0ab22e34552646b8689af627ca5fc789a7a6df878289e2d9a00bc930efbc8d68c225f29f0a6c29f3e7cc1043d5de14b09d43fb9f15e4aef938077a7062f13cebbb381b7cb0e2f0e1caf8c03be2cf17b9878756af02ed5f0c640f1f4e9bde9e1a104d9aab1f24e331846a689af07d84a828277aaefeef04da2d8daa37772bd3b43ef52065e1d24af1211af6a8e17e9cbd6cd001e6a8a77278b77a905713cf2aad678911a79553ebc480dd8a2017a27a3374702af92ce974d967ff2f2de207d540a6f4ae67df0782f2a9f0213eff581f7d1f2c6c03c75e34bc9947f0adaa269c13be5716aa6ca572b5e983d9e92ef8ed1bbc48117c78a8f92810d0abe62bea71c7877be78971cd9bac1792805bc5716ef535f9c415e193d5ed5921769ca7b09bd0fcf0bc382a751bc4bc73b39c02999efabcf571224dec9da9a41fa3ac88b83c62bd38017c68fa7402f8e1aaf8c18ef773c132aef8e0def521b5f363bfc1305de6de39d705f4bf44ef6cd61e4553ac0d776e09dfcf0eab4f02a81f12629e19b50b0c5a383d70b0def2b7826819cda41dec90eaf8e025e25a5af24467c53d37b93e5a140f0decc8762c0ab73c2aba480f706888782c0cbb32f1393f75ae47dae786feef82898af55c13b21e24d39791f43de9b2a1eaa913765f33e7ff458712a26025f6d5e183c9e86ef0d221f55df8b8ff701e20b4687a7f48d297a2a83f792c1fb80f17529f91e3f5e1c143e2a8a771d7927e3564d7d27a5779f7827356f2af53e75bc3b7fbc5d10f0c6a89eeab15533c63fc56cd528f24f286ccd845fb378637e9e9e60eb281be3c4d3a677e7052f93f5dab8e0a182d8a2397a272e0ff8b266f03d74bc38367c941b2f4ed38bd47dc1884fbbd722c03b51c0ab22c19be4e44dc5f1338d2f2533f8a7345e15142fd2215b345bde4989370706af1202de1c31dea418348550a3786d3af050306cc1b8f1548837c7016fd29737a78737a98ef7c6908f6ab24523c43b656942da5ad58300d504c7ab43c4abf4c7ab03f42a4de0b561e4a186a8e3e7c581c18b5480a61d8691f9e3ab0dc7c8605f5168caf2eaecf02acdf1dedce0a3a47ccdcc7c057a7794de2e3fef56f14e749a1679533bfc8cd25482f746ca43e9f14513c33b8d6f4e116fd21f2f8ed38be4bd3948de24225e983f9e06bd37420f15825715be486fbc3b32ef1211ef3ebcc582ad2536ef97bf6276780a82ad7ff84b89f752c1fb4cb14543827782636be68baf6bbc3a25bc4a09786f8878280a6c2dc179bfecbb67bc139ff7fabe8791772b7f297dcd94f1d58df7faf23e64bc3a87bc4b21bc3972bc494f5b33497c6dc08bb3c2477df1aa40f0267db0952403ef54c2299898a703d882e9c053245e1d345e251bbc36317828f02bc90adfe4c816cd23ef04481e6feae867d0cbf3f332c9f1de8167c2c6a9f5f24eacbc3b6dbc4b4eaf4ef62a59b1858485af2e7875d4789570f0da303d94b815e3c25343b685f766021f058057a5c38bc4c53132767ca5612b4919ef94b355f3e59fea9b42c0cffa2611e19b96de9c20de243d5e1e145e26a0f7a6041f857d5918f89e335e1ca51749e718191cbed2f74ae17b40f0de6ce0a39c50a31787cb479d409077878eb74b7d73767893e2f852e2f34f43bc2a09bc4933afca8d1749066f4e1eaf52ea4d79f03e1578759cbc4a5bb666a2be76e04b068daf50de0b90f719e2e59979994c78750a799706f0750d9610e0fde2c1cb63c3cbc4c50bf3f4f48cf70ae47d887873a278934af0eae8f12ec9bc387fd40f5ba9eeb134de540d3f5dd8aaf1dec904af0a066f12f7950ae429cc7b43f4502378736af02acdf0aa9678912ef0e224e0a356f0ea10e055327a55db8b74f4fe82671281ad191d7cddc00bd3f4b48cf7067ca80bbc482cf04d406c59dff71cf12e49e1fd52c2abc2e145d2a2698d2d1e445e2f2abc4896be49a8a78bf7d2e27db22d1a39de89012fce1faf8c1daf0e9457c98c37a67cba827787cbbb348277677c9720b05583827f2ae18d099fa6e0bd7cf8551a5f1620df23c69b43c39b94c6bb847bbfd4f7c2f23e3a5bd60bdf33f4aa5c78919a78757e9578f8ba74f813b6bcd715ef339b48d84a22c73b09e04d11e07d30f0ee30f2325def4dd247a9f05e0c789f15b6789878bdc0bcaa46dea4eebda9c04709e02b2547cd0dfe497b777c7897f07853507eb2f0ea3079958a5e9e01bc4c35bcbff14c6a78717af8283c5e1e9c9769bea99f9f54be9458f14f4bbc291a7eb6f0aab417c9e85dd2bd5fb2ad248abcd3f68e80b7f4787122f0cafcf1ee6079972e704ac688afddcb23c2cb04c4178c94a7f36bb9bc9398772f9ec9f6ea80f02a1dbd38337cd41aef8d140fe58226115e1c10bc4835ef4d0d0f754795c0aba2c19be4c2579227dfc4b4f5968f49e2bd71fa282a2f4f96972990ad1a39fec9e6cd01c09b84e54d39e067035e1e2faf1718be6ab2bcd3975715f422e5f1a656ef93f4e6e0bc49e43b94b7047977967897905e2436f8a62c4ed91cfdd323ef0e216f97efcd017a9322f0de1c3d94d23bd233a1e36b2ff04e78f8e2f1e2f5a2f3eac4bc4a416cc504e0a91f5b96f63d415b48f6ab07de18259edae0d5b9c1bb74c37b43c847edbc38361f55be36863c14025e2bfb1ea0ad1a13de4904ef35c5fba4b0c503c5eb65e6d599af12152f4e0b1f25c616cc079e26f1a5e403ff04c6571217be49065b3531f827ec85e9e3a9959747f532d11727898f5a7a734e789314b025c382af40bcaa292f92172fce968f4a7a755c78951af0de507928409418f0de78e0a346787140f82824de6be97d9a7893f07c131daf8eea552adf981f9e92e055d9bc4835bc37413c54045e1b0e3c940b5b170e7f829677ad7c13325e15d39b748077997c93246fce076fd211af4a8c17a9cb8b238217c9e65d28de89922f1e12bc5e4c78553fbc48616cd194ef54348ccc1a5fa3bcd711ef13801767f55154bc3b25bc4b0a389552c153d5abd3bd4a5abc3a3678976c7072e59465c4f734f1ea74e05d12e1e5b9e165eae27d02cfa47c6f62782838de4b90f7f97971e27865d078cfc03339a336f1e63cbd4a3b7ccdc07cb5324c4c0bbe02e0e5b1f232edf1ded8f151a9ad242378a7d5bb23c5bb948217e7e6a3acbc38187891acad9a0efc53932d18439e6a79536cfc2c638b2689775ae26bb76e00f050519cb221faa72f5f36f39ffe78555a5ea408bc382a7cd414558877678b77e9055fd697efa9e38571e4e915ef9222dea647be94b8f14f527c25b1e19bbc7c2141e26bd3ab32e44dda794fc133e9e35d22c4fb458777678c77c9cbfbcf5f21f89a61f275e84bc917ffd4c4ab6ae3458ac16b638187eade1b087c94ce9b1ae2e70e6fcc96a75e5e95cc8b14c3164d15ef14c5bbe3f32e51b1356381af7abc3c027899a2bca905fc64e2cd99e34d82da8281e3e910af2a026f92cc3032567c75e15d1fbe4915af4a012f9221ef0e11efd21fafcef62a61f1de70e0a34278d7e399f8f0e668799338f05e43bc4fea2b09f84d3978978f7732c3979582ef71e3ddd1c1cbc4f3e614e04d5ae22bd581a735af8a8b17a9045b4870be227d598b7c0f1c5f3650fe899057c78c57e9cbbbdf37d9f2ee08f12ef501b380af2550de2f30bc3814786504f9b2a47c8f9657558237a9005f1695ef41e2cde109e41884c48f363bf06d9e278adc388a245692e30c7fd8433e302b411a921c488edad442f2874b119965c8ca91d050966c72e0c34a6e9ca338e7e84d4c2cbb2e87ddc0978d62482b373d5a662487892051d643254a8f4757ab8c7b620df9420cd4302c2c399182242d43206e22417f92081ac1a21f23704e0d709b97759cc74d6de33c2eab9e976da4368a1ec6cd8e76749b40dc9cb215815840d168f36133f0d5ba819948c572d3b42d1b3b6c62e02b35cc03476cd68c1cb1319b40dc14bb892504a770c182057cb25a69738d2de4c3c651c3b232dc661dc92df480b8698514b2424af1302cf6025fed3ab2c4c830dbb44ac39003e266a8c528d432c502dfc8cdcad15013eba869e0158ac4109156652b20825c48679de12c49adeb80b839318d522486883a3796025f478a5e497665a76113d4362d592a162d37ac569dd24e806a19b64d5ab99a75947a1ac77595e4ba39528eecc63ac94a16815a8e30a2738995c047769d96819ec76d99286a413f3f47454718d1d56ab5a255cb6ab55aad56dd76b111f83a6ec43412c36aa8755bb96540dcfc31023b8d6ef41bb1904150365ab554a36d1422af8860c8fd6c534a959f219690afecc250f4c0e96521579274fc1122b170f3870bd190a8cd51d3d243a527d4b4f478945c087c75d231e43052cbe8586a5c7624924449900ff83acc9b22e97560d5c8b072da36c8473712ccc872ec2ae568477640dcfcc904f9aa58d26d04b36d6e35f34a6f0be4ebb2d20b29d87199d769dd4634f4e34d2d46414556b405847a5e05c1d9d16ca3d8ec4825828cb4f450b1a167253424b45a65d122c47152aafcac14fb87e779dc4639ca69159b1c56b52cab5ea7819ad6895c58b5aedbb27e7c1ced3cb2eb4a721ce756861910377f8c82e8ec63922146b390a325d5480ed4482c21e8ddb07c7c98388a63c855cf0bbd119be28fb7c7d7915b376ea5966d1946b5cacda223a3aac70796b4825ac53c71c444b0865e94cde3e334b282d838c9b1cbb64e1b8bc8b16888bab0787ce2e6951c4996a3567259395632bbe3a399b68dd8e432ccf3262852206e0a91587e36aa91621016232d86b523a319addad43a8deb308acd8971658995631782dc16829d5681b8498a42433f58b080a2478a42380841d93a23a2a1ba757c1c064ed19b5d878121e5ea04e2e6360a914749903f64161288082cb2a24df0081c7fe8e468583abe196624a8799d18568f0bb14a778e2f9c18d98de1e679219681e0a84d393e4ea3141b399a6999d7611806c44d6c7a424356c0a271e362a58361e3f842ad761ec530aedcb8321c3738be0e9c208695a1487299a7612316708b4604def0c6e78558488e55acdc28725e4781b8c985bc5289c01bdcf8c62e0cc36dcc6829961ee544206e6a4764b76d6c159b5d586bd5ca90c442a4850ac6c697752257ceb19b24b865958240dcd48e442d454753e6ec8eb2946b7ca4476e65069613ecb6aa695bd0aaf1951846665827d249661c56bb6e9352e5c7caa6f161e028d6aeebba30244bb04e22b00809212d756e74d1f84aad2bbd6cce2a866105bd2c0b56d7011f39566ff3462e243d8ddb461289a1a2a2a1f0e787522c5848313be3d3b210c3402ecc46cdabb5729b942a3f42ac19df36c3ccab65198e62d685735cadb06021b78c0f24e7b665736a9d187618882531ce604508dc61b55aad8c88862627a5cacfb8647c181db9599618596a20966d75047358ad8c8ac8114b9096502b3a22ea61c7f82a476e6317524abb5986da14e3db320a7a653662930c2957c3a0303e0e23398c03498d7674e3b690d6067cded661a53749902ca9d689e436b5840bc62796dbd6715e08725db665da9c1a03366e7a53db28562b57bd6e7a74e34a2d1b493a8a9e58662109c4cd6ce388b204d519f68b4f9ba2166a58988da35672e5d098cd23212d43a2b6ad175f9965e126865ec6891e36bbf2488b67d4151d19d5ba5d7c5a1886a3b6d191f3c66c0c3b206e566db9f83a919bde067a24266e9958496f8baff3c4498613f3b45204b11fa35148cb50a8c5a775e3d66173ec48ac8e59b60171534b61b3f834ea91e0ec4aaccc423a4772140a424248cb90d04f3757582c3e4aebe4cad96dde06925958ad08055df1b0bde2f3c0ce03492fe36ad6659b48e6302465b52a1a12125aad3a25d68a6fdb3c4c1c31b166b314c7900271534b478b8e8810b0557c1c386e599ddd04b36ef43652a81691406211484e293a9a32a7501179740412714547460bf8b6d0a3639889932b35ad625ab695452c152299692537c14a965e886540dc3c32228f8a86808c68dd29bc4eebbcadeb324dd3322fc3b8cecb4a8dd3bccdf32a2972e008c4cd23114c82fcf9c1026609f2a8b6527c19462b49766237c7ad7a2115c9f167e8e8879b2239d2232c25c7c246f1696305bd0d9c602872dab851206e1a1d0559091a7fb068c9824d032c141f08d690569072dc38825ae6017193223144f483454b960ecb92a0d54a100cdd96458b90b74f7ce046d2912bcb39ce711c436ca8149a410c12027358ad864aa1a01f4e4a959f729df8486d6aa037372c2bb18d7a1d1037c7a01f9288cb1127f4c26ac54508ac52aafc7c0af8440ee4302fab21868d259d748626be8c03bd8d62a50672a036666002be0a765d57c7ba8d6048e904a330f1d152ac1d154b5acb520bc55a6558e20b29587a58476e950bb1c9795094f826e681d5ebb032ab1b48b17a64847d5cc40ca414ebca3a7a1996a1a15086243e717262067613a49d483d5a6a487cde5869edb6ce13b55ab750cbb67c5a1786200db3d12bc5ada35ed5f279191531119b5c586b56662025b1106939d2bea36f9262c781e2c6653513c79ffab34131faba110cc1928622176ae548bb495f28fa4a6cdbc6596a99e67573ac2310377f46f2e8670489bcd9c2111f386a750bb5d2e3c63945b00271730489ea8ae8c32a59b3520bc9b07a34a45086beb1ab14abe4e4328f8ea25881b889052cfa1941223a8bc823af13fa38ad925a5641cd13b11a76251037912840966f2343120c318c8e9ad1911099458b95a2173c4d4a959f1fb07c5a394e8eac1d07665dd5b61f2b5a4272fcd940206a340e011d9159b8221048cca65ce9346ccb28c6619ec66175c32ae5408c0c3312034badf4b82c0b81b829c465ec81b2438f97151d116131e2c336cdf3322dd43a92f3380a2641ca504422316403d58808faa806862496d1b10ba756721d260450d985e186715a88615c5856206e76746af939ca527651ac7ca037bb1a7661492999550febe8d43254f660540b16a22c413fe5dcb0ada35d56bb8d562cc3308f76e54692181886dee68d58b669f9218d8a40a2a32ca514f2ab6439bdad2c49b29c1b997140dccc66162d42d8f885b38aa5b64d4e9b93a4a0876d52aafc00217e54abe418761ce651721c6909c44d2e45479d9158f442662416819927a5ca4f167ee436564ce33c8d2cc98d92181037a1ecd0c3d10380df4629edb82ef436510c352a8aa411210eabd51834f473642434246e9b942a3f3f45709ca66d59a6691cd5a88765da364bcf1b4730e432d2a354ac99f8f34d302cc18c7a5d588261185222be8dd448ac6ae04866620786934a0f941d7a3229557ea20cf1611a1892949ca336359a952510378f8a86425004213aaeceaccc28e8812347c9494310d84892d9a885e4d438912ce93671a84245ba899947458ff3a6576240dcb4018811ac22a68534cbc6d12347f0878f2c314d14b19975dbc68d58e6c357965e496a55aba1c86d1d998de39037bb1ebe0cc3b0529c1d99911b188a221037c7a11578f8e8966123968524b889e2e675e33844e5cbc4397adb98755b177a595731ea4df9b470e3c62a4e8c14bb10233d206e6221ca12f4d3713b7c1a46c94df34a6e23bd510c454a59d0e1a3599965642d39ca81de3643236ecbe1cb6a396a542bb5ea558c2b3921720bf9339465a88868d2157010c10dd448b2ebb490d3c2312c1a270d522aa68161398660dd481124b51c1124a4e5c72868bbe1db48102347710b4bb1032959020d1d556a43a5d9e66559c6cd4cebba5ae7b6911948438f2c4112ccc0d1a340dc248586b0883f74d650c3577a5cd9556fe4b03114bb2c434565d643254a4fa765b512c92d59868aa0ac564730aca827a5ca8f123484337c2589759b178add2cc9900c351f64f8323a330c04c33204b5ac9b1e1037878e84827ee6dc3acd288cf26560a521ed343a4911033511889b1b79041e4dd128946f0b470c044b8c2beb18666309c44da2a1212c3fd92c1a22eac62c41463f219d52aafc20e0fb4a30a461d971de466ada386240dcecc8a2a12745600f210cd9dca454f9e162f8cad9cd5a8658066663463311889b475a888482b41e2a51bed949a9f243f4e4a31c277ae1e68933d4c4709c40dc247fb20c159573f65089026404cab05a6d1a05818c562b2332bc02c337350cac652962db1676d8ccca72e8e728080b919167c30b5fc5b490765ad691739618595df82a5852acf4388cd3a64662e05111692414b4cdd0c2a779d9464390a4b3a3a03849206efed439e73645724bc501015c0e8084013e6d0ccb72d691ab24053bb004e2e60f9ddb5196b26e2c64191afac13216fdfc2059618ae1cc409023b13ab78a89559352e5078b5776957a746edbc6d54d9bdc9c1cc5b4b2cb2a363d8c0b3b92e330206e7215e4be8a7934f334af0347310b4712889bdde436cf0b336cdcb87013c55a7660b5a2252463f03629557e98d0b46d6a1ce74dccf3b08cd6d9cd6d861bd675e418ce5a76dbd6d1d56ab5aada11d9b789a2b86598e86119d56a2581b80964a485e8a768a8dca60d75ebeaacb4c326d679dec42aa7d155962d58b0acbed2d326e9859bc695dbac1c05e226124345567e660df42bb74cd4bcacab5d59b30dec80b8f9330a813f3f43e3a4e49622d2882ce27aa844e979a1e7490f951e2a36f488640f48803b7840cc0f2bb34956b252309c5c1956206efe705324b7fc200116719a942a3f1df68d95d3b80e243bea795c1d35206e16814022367f7c3e2edcc810d4c6e975dcb6d10c889b4547463d54a2f4ac564759ca9511d883512d3f9d26a5cacf10abafd46ac8719413bb90dbc05204e2660f95283d53562ba3d5aa878a0d3da4086221fa110afa211a2a1a6956744464830a9f166aa2078a1ce7795a49ce0e889b4759ca1ff228a808098f3c0a2af2413bca5256b26848cca454f9c152f831d252f4f3e3010a219c501e696162c224817e8e84828a887e44a3a02c1f9430929b46c9a0a2a3134820a100298c40428f092264214008245954fe140d1d81e210162ce0074e7e9200b380d0c4ca10162b43580400c26c4200139894f04111489465281b00280e6139c1032a80a21102906548e40040e7954da344226994c212117846d8f91141270972142acba19c6c63a222004e1243481c11e0c666d36813251d9d3f94bc0262097f9ad490406324802474c80324574430c48265e8849911248b3c902140cc1169450030d3e8c8282809f283d40cca9265a8848b261154924544215803d8f903fe24417eb0142c6aa0411e4b6601855235d0a005353433a248085e780605471829410b083880015858c1ebb84dcb2a9d98cf4a85145038c184124828c0083d2284e0a409080460f2c1003c10400000b0649eff042d700ea9e1219505cd8ca8a09017d6031eacea588920a3a06e35552095081a2a22953022c912ca13a3a2a1a2a2cf0315b8dcc1306506ff2306e9c30e29d8b2144e211a24082bb2c076aca4e0c50dcf03205aea5b991172e2a9ccbc124a3c97273e9c22ca4851a10b1a5e0a1291870f1bf0433b4fc5fb1f68f059cc9100187e07264feaf193c5ef70c39364fc114ebe6cf252dcb0629107c2839792c5940e7c103e7c58431fd8123f0d3bc4f064ca14196278c1871d301e6ce72a25fce0430f3c5099b2830e39e020e5061b6aa0610619a240f962780283d7719b96553a316ca6b0c603b418b628431fb3865087a190c1f042a53e24c0a1c3a7eaf8d4cfa778f08286175220f8541ea91f3ed5031c567c4a4aaa864fc99082f2a9ef5331a460f8d40b9f72e1532da40cf02916525d6afb94f6a92c453f353f75a1e0a2802021588614724de08ac00581bf1e2008207e842073c9f1571c7fc1e1c65f6dac91c65f68fce580cb8cbfca18238cbf1af017185f58dcefc4018632ca0b306c2204781349f26b81a5c05b63bcc5c65b6bbcc5c5a7708415c7d761654b8eb79c78ab89b712f02632f3961216126f6dd94462dedae24d04e62da18f638b3791d4561d6fd1f196146f5979eb0ccb8cb78a782b7c6b7c6b8eb78878eb8767e2c55b3e586ed451bed58645862582110ef911d478270c70e2c508d63799e37fe387c38ebf8d9f0dac8c4730a7172cf2d81c6facd1f4d89a40c59b30c5dfc4ff12451011840b0830c02a8513487012030d33c81005ca17c313185e58c1ebb84dcb2a9d98cf4a85145038c1841248a081061a648871f2313becf0378971e12637b9490d35b870cf2f84015010a1c90aab21c66e1eb3794cc9633518cd63491e533d86f318cf633b2ff1f34d74be090680c796b080598fed9f4207a2dc24859bdce4265a8de2c9e0f3315f0924c440020c31d00085861452a00186ef4be1a381061a669861061a66f83e1a524861861854f868f866f868f85498e153e14b218519be950adf8a042eca9c736659966d9ba6ad5629a4a0820a5956eb0a2b781ec7c5b810e3428c0b1f13e58b21cb6a45e1fba844218ab28a1225cab75221051a688002050a142850be19be186680f2d109e5a313ca4727143a75c801072937c4e8d0648619837d0c0d34ac68a0214a942851a0408102050a94196898e15ba990020d337c317ccc93274f9e3c8101061860f8181a6678e185175e586105cfebb88ff9562a6cdac77c2b15eac77c2aa4f0a990420a28a080020a279c70c209279c50420925c4945042091f43c30c9f0a29746086101892010dc89044c20c21d800060e3124031ab86304124882c003f6e8238f39bc18a38a2db2d06201544421051c6e705180124e34b144cc110f83825160e46152800809601479982c4d3ccc151266cbc31c1d0505595a7c1d3bbc75e5ebe03e0e127ea7fc16004a1c439fb2e1533458995ec76d9ad7719b9655b2055ec76d5a56e933049e1e7c98f20e39c880254b962c5886843eba412807702ec3b07a72083ca3b89ae39ac3071f7cf0c1871e7ae8a1871e7a30ba08298a72c3151a024fad350ba559c4b39c050b968b102a516eb822c3152b1721424462941b6ab872968b1021221c3cf89f1b2c10f8d20608124a158830fa79a8340bd110380f83205056e9f43a6ed3b24a3408d1204483100d423408d1204483100d4234c88f3dd2c5c91147c87064052b68e491445ef088232050811b325081d3238818e25482424a7048044a90070ce2b8401b64c0a00f43d88801198580e0031c702490410c09c4e98f3cfee8c39141f670cac30d4766e0c80aee80810c9c1cb9a3058fdd71c81d753c424623755ca00e37bad0f18893131979c8314705dc78c40d27361ec1d6782c890d270c0454b278292cf03283c764f0580c1e73e4b1461e83c1638c3ce682c758f098228fade0b12e8f25f2980a1e432409048f7de0310f3cd681c70e798c038f1952c8041e8bc0207fecf1581e8fdd41c763723c06c7636e3cc6c61f430f564819accc5899b1326365c6ca8c95192b335666accc781db76959cd308fdb80f8200b0d6c592408317e0a0b3fe5911fc20557c4d7818c31601e0b233f85e87538e1bb08d2c23d9712fc0e7e64b10615255690902df0420458322b3352869072490143884615140892eb5a6bad94524a29a54b70410413cf030e8f3cd1080e2a2e59a650c9420338ec96458228a9302165911dfce03244166b1471a1a2840b02ac20013a816c810f207821022b2560c988ae589999f282942174b822e5d2218b14307a4004491652cea9a386a62647857363534383442606e6b2ce51e1dcd8d4d020918981b90495a5f2017b204c7829fb5204a085be149a97a2c24b49f23d20f25290fcaa355e85c6abc078d517aff2e25555bc6a8a5749f12a205ef5c3ab7c78d597577979950daf8af22a175eb5bd8abecae755ab57a9f0aa145e85c2ab4c781509af12e15521bcaac9ab08f02a26af4ae4552978d507af32c1ab965e4582577de0551d789521afd2c0ab785eb5f3aa225ea5e55547af327a55d1ab8e7815d1ab865e25f4aa2cafc2f2aa2baf32e25541af027a95955795af225f35be4a7c55f82af05539af52bd0ae75537afb279959257d5bc8ae655495e85e4554e5e35f32a9957c5bcca8357fdf12a3f5ed5c7abf878d51eafd2e35530af4abdea7ad51dafb2e355d6abe878d58e1972c563553c560646c694efa7c480e5a4a1c6a771461a3b7c1a3434f934743e0d9b47e3090d113c1a1e78342e301a6fa0a1e5cf68c19b51e5cd30c09b41df0c9f3763842f23912fa3045f861c4f861d4f06194f46183f46223f06223f861c3fc6be188fbc183278310e7931825e8cf0c520e2c5d0e1c360e4c318e4c300e4c3f8e01be0c4370089f742045e64e0bd98e1bbf0e2b9f8830b33b6a8e3b5e8e3b5207a2dc6cfc2019f45125940f92cb8bfe2b762045634f1558855b8f0545c792a6e78289278288a1e0aa18702848762000f45cd3fe1f44f3cf24f34f24f2cf24e58f14e28e09da8ef44ce3b51f34eac02ae7805e8f00ad89e891c3c1346af840e5e89435e89a3e72281e722c87359e19178e49150e49140e4b730fd9609fc163c7e4b027ecb96d7f2c56bc1e2b560afa584d702c26b09c01fb9e08f50f04656bc91145f64c71705f145407c51942f6ae18b58f8a2ed8b4e78a22b8f257b2c3b8fe5e6af20f25790feca217fa58f2be15f69f2564a782b335fd2e0c9163cd9e5c9419e74e349319e5cc093d9933e1fd6f0e1f6e1ccff5ce07f8cfe07fc9f1cfe47e77f6826a2064f84029e08259e88a21f02ea87f0f243b4e08740e48538a213e2e683c8c107e1c407910310243c103c0f449207c2fa1f1c791f40f81e967eca223fc5909f02c84f81e2a704fd14217eca0b3fa5fb291efc149edf41073bbc0e5d5e873a5e87305e07285e872baf03f93ab4f0521ef052d4782959bc94295e0a102fa58597b2bd9412d248e3af78e05500df8815c6b820a1e5888780c8b0ca0f3d4c89e10525b82481c4162d47464547100d0965c172c58820202b25398a61095ec76d5a56e9caebb84dcb2a9dd4ebb8ad7a1db7694fccebb84d7bceb90a01056cc412944450d096a01b9ecc30c30f334c4eebe636b33a699318a6c785a0fa4b8dbf18408117824610821bbe27556eb081ca5376189262c30c403258d143cba21e46464744592c2086406c13fe001f428e37973569c1c905f337d19ad0bf496d82b333b303c37e134b023f687df196176f756165f11616cfe483b7ae78cb8adf3ade8ae22d28de4ae22d2d6f1dbd65f456d15b44561acf648ab7b2bce58067b2c45b46bc15f416d05be45be05b3f7f390ddee2c1dae15307a8c05b8a34e0c75f7d3019c11a7a264c3e62028067b2e42d2a5bc3577e2b6f09f156106f01f1c8c47a4b87b772f061072b841b6a9061b7f818ce000e0a8ea0799b35c8789b3ade868fb7f1c0dbd0b7b941031f73740403c5c3907fb531c603ae0cfc35f386207ff1f1d75e9fd5808d2cf12f9aab84bf4993265cac27de5ae22d2e1b01341e8390142c36d8a0440c0bbd45c81fc8816c449318fef96cd264dae4266f8e1a6f920d5e9cf95156bc2a205e2431deab03ef63f42641e19b54b00503c6532a5b343078a73dde1c9837a9cad64c08be06f2ead8bc4ae2d60cd0572e5ed51b2f12d38b44916fe2b21513c2d3415e18193ccde20b09105fbd6c2581e39d02f0dad0e0a1c837e7cbab14e53d8f67d2c3164dcc3bc9f02271c13725e03d9167f2c7ab53c6abe4e5bda0dee78d2d9a2dde898a3715c5cf245e1d16bc4b2cbcbbc63bd15e9cd44709f1a6bef8b980f7eae27db8ad1a3bfe09676bc690af7d6ccd945fb7380583c8d3047c8d0395015e24255e1b441e0a8757a704ef92cfbb8bbc9322be96ecf07e81f2ea3cbd4b545e95d08be4c79b73c8abd464cb7af23d44ef0d0f0f15880c1f5f33db572eef0ef72e6df1c2b8e0e9146f0e9437c98c7707036f17295f4ac6f82727de5df24daef77ae17b5870cc0c215ff37863689ed2f1c634f15407ef0e18ef920cde25f5fde2f3f2b4e0f5b2bdaa2f5e24445e9d02bc4a4b7c2939e49f18f0f2d0f03269f1daa0e0a17278710e799166be62ecf88ae4cde9f22a696fce126f5208be78c078bdec9cb2a8f89e29ded4939fdd7b16cf64be36843c147d55302f120c5b3307f8cac49b43c8aba47a79e8cb44f4e6d0e055fabe66c0f8cac6abe3c8bb04c3bba3c2bb24c57bed7c4f20af4e0aafd2135ba7f0ab81f7c6e7a1bc7879ae9709843787016f12235b3512f827016cd1a4e09dea78755e7895c2f8b2e2f89e2fde9d1bbc4c392f0e1baf0c195b33737c9de3bd69e1a1d6786f70f05138bc2a135e242baf0a012f12136faaca4f1cde9b117cd409ef0d021e4a8d97c705af17ee6b890def9718de9c19de24345e1eee65daf2e680f0261dbd31e25315bc38503e0a8df76ae17b1479797e7899cc78552878934e786ffcf8a89a2d24227c45e4c501faa80b7cd9acf04f826ccdb0f07589ad248dbcd30aef929fb7e9cbbba4c9fbe583574706ef520cef4d043e8ae7ddf979970079734278939078756a7895d4782f2eefd3e455edbc483abc29387ea2f12e15ef44b595a48a7742f25aabef095f1c271fc5e5bd49e2a14ef0e230f9282d5b3427bc5395ad2450bc538c0c1bef45c8fb884d60bc393ebc4976bc3a5bbc4a2dd882e9e2e90eef9221de261a3469f185248aaf51ef4e10ef121f5b49a878a799172690a757be2c37bec78bf79adf83f44533e59d82be78fe78bd80f05e41bc8fd5d4c61b53f3b48ef7fae37d8478557bbc483b78af0dbc0fd19b03c8ab44f3c523c8eba5c920ef0e12ef52085e950d2fd2152fcf9297c97b7304f026096dd5e8bc5306be6c70fe898e57d5c58b64822f257afc5315ef92f97e51e18d01e229d296cc02beb6f0eee4e065da7977a2bc4b68bc395ebc492ed88261e369105f3c65bc5e963435797162f8a833de4b8cf741c0a9d497a74bbe2c177c4f1c5f325b7c7de1cb66ffe98d2d1a25de89891747898f42e4cb46e69fe23815b383af037871dc7865cc78b7c033097a6dbe3c14d0bb22cf449077329e490b5b3549bcd30d5e98479e7ef1ded4f151d7d6cd080f75c59b02e2a794f762e27d44d8aa09c13f85b0456382779ae355ed8b848077153c133fde1df25d22e4d581c1bbe4c27b33c747ed97929d7fa2f2a650789f119c9291c05729ef1212de2f226c25a1c03b8df0f2b4f0323df122f9f24d56bc3c3878bdc8f0e698e0555abda92d7e46f1b5e487f78b0caf2a012f5206b66af8f8279d174909be69e8e599c1ebc585f7fae27dbc2fcb06df63c79be3c8abe4c28b938117e9da22c1578d0cefd4e5d5c17995c853d615df43c5cbd3c8eb8585ad9912be1abd39426fd205de0b05ef13c5570cd4d70fdeede29d30792f2bef63f365b3e49fec7873b2789356f0e658e05502c0a935c037f1e1e5d95e262defd5e57d16f05e72bc0f0eef0d7d2830de98279e3a7da528f074e6e5c9e16562c08be403df44be4864f04d526ce128e0a3167953e2cf1fb668c678272cde14cdfbf0f1ea34f12a257d2d920741063d576c2509c13ba9f0de900fa581d7268f87cad95a927abde0f0a678de8790f71ac0f74840e68b2d9ea3d7cbbeaa295ea40fbc3b8ebc4c325f4872be26bd3986bc4a4c5e9c0dbc4831ef8581f7c1f2de143d14d29b52e3e718c3c488f135f5e6c8e05582e1bdb2ef597a378b77228097c783976986af2447efb46f4e9437e98cf7eae15518faa2a1e19dca2f9a3ede698c2d9a44dec98e574702ef12cfbb56bc139e2f2531f827345e9cf1a30879551678936cde0b84efb1c096e57dcf9517678d57668cf76ae47dbc78638478baf4a5a48f7fb2e254cc06beaa5e9e2b2fd31f2f4ef951127879a6bc4c617cc1c0f0548577ef78272ebc3955bc49297879685ea6149c90ef5c3c93ec55bde04dd25e9d355ea51c6cd55cf14e51af8e08dea5125e151f2f52d37ba3c543cde00b89125f9d5ed5d18b04817761f82647bc3c4a5ea65553116fce106f121fef6ef14e06b04573c83bb1f1de58e0a33cf85272c43f19bd396dbc49397877aabc4b7b6cc5a4f05402ef0582f7d9b25533c43b35f2dee0f0507bbc3c32bc4c587cd908e09fee7871843eea9057b5801729045f5792efe9e355497991b27853577e16519178f7836f82646b4bf826758be6e99d20f0e6e0e055b2e1bd191f2a03af8e18af12d3abc38057a991f7459ec920efce1d6f97ed4de1f033862f1e0ebc5e0a708c0c105fb3f7c68a8772e4cd19c1ab44c29bd3bd495a7c2d08de09105b358cfcd3eac579e1a3c87855575ea43dbe90f4f09506efce00dea5a29707e6650a61eb46000f2545130fef8e02dea512bc97f73d28781707ef24e85511f226c16cd1a4de29ca7b43838f92618be677fade9d2f2f93cd574c1e5f93bc3b81bc5d5c38951ac1539b77a5782737ef0d0b0fe5802d1e295e2f48beb68f7792c37b23818f5af2a5048d7f82e22b55c7d37d551b789396bca912de07046f2a8d9f62344dd99a61fa8a8137b3872c6212abd52603183b3e6fe368386e55a322a7d5d0b3c2cd23324a1430757ca247c5d123b95a6ba5e03803183abeca619987d119721b07d6550886640866190d0860e6f83a8f1b3bea554f14b58ad14660e4f8424ad20ec33cac9624488a211037cba1a122a29f6cf65089d2f3a467d3a80c3f3d4fb2dc90250b17039838be3a6a532cc9ba695cdd342dab3d0411bdc0a52449186a1c0003c7574e3a6adda895d8b8cd522c81b8497b580511813f45e4d605e68d0feb3010eb320f9c20a6915906c4cd2b2209046404cab05aad56a4283424740397a3a028464146a4106965b55a193d19c517b80859099ad2c30d2f7c3cac7e9ef4d02a034802ad5662d0d60316911c57ab22f287c848a339018c1b629895a4b8911a1dab8805fd649993e301a68d2ff4e88661936a6349821a86915a482d3a7852aafc3001c3c68795a0469264e885de1a5fa68921c6855d4966a228669d15306a7c64b875e2c4bc6c04eb1cc34e048bb488e20b4f7a8a5e48821c856608352d3d293d60d2f834da6da3868d15f3323ac1a39f6c0c18343e0d1335718e1c1692351c370ae3808f629e47ab877573dcc6f28c8fc334720bb38c5652ec380e8431e3ab6287616437b59a851ea6714fc094f17525b8d1aed328c871592d2b1630647ce4466a1b99712347b54cf43a9831bee9696496695d9761254937ed28c828688bd74325ca519051500f3f3fabd5b85a9131fc6c86c088f1516f13bb4ca3b56a339b5b19c64741ac622057c772e430100a98067c18288260d66165a78d5be98940dc34fa41022cc2e80c30607cd5d3a837826259862415bb690018067c98566219d6819a37629ee6d5222e305f785848d28e82b523add4197ea2ac564643305e7ce3483d92d68d7659096260117945cb10173007b0e8eba454f94102a68baf7659d86159a6692010377f88b28875ae56a2515016a22c4f72a813868b8f0ca947c3927a62466234d380b82360b6f8b2ccc3c64ee346af2c3b6dae5643e56aa500182d3eae1ba9b6759c564991ebc0328b6f0cbb0ef4448a75b3f33a2ec4e223c52de3444e2b3170528e86577c5a254b4fcc6646762206929e159f06ce49476d2ba9d765dcf4aaf8b4d2e348b1965c98759bc8750bf8b832cc420c1bb9ca955856392a3e0e1b69376a62a779e38879db145fa88da3b6855ea76d527c24a87574ace5587660e66d5a141f1d6b09721cdd360d8a2ff3c25a3bad8a6458729ef8c4574b6d8a5d367659f5c88e8371e2f3ca901cb9ea81dc14b572cba23e721c27ad18d88de2e46807f571dbec46ca5512a35ec671f4e9f3b81a929c98759cd3b7959dc78da4a7611959ce0cfbd1482582a6f820a465a889234132e46638665d466e93ae56445944a32eb583cf2b45922bb9adf4b649393103e226477ba844e9f9013a2222c724523af8348fdc4a6d9b5dd5c4596a3307df1cb9ea651ea5a2b66d5b09e2e0e3e8d4260d433123c1aeebb61b7c61e9552febb871cc2a07725a96b2c1277a60f5aaa77593f43c10a34647a491d10b1997aac12792215792dac4b0cec3b29e1c6ce8117fe81ef940cf2b39cce3b8cc1327b769454744a92f5f37358c9254cbc2729c65e5a6e68582205766948a65c88122b85aad569956744444832fcbc26e9b5a17822586d1ac4c620886d56a2493180ab9a22322235233e8bc896160d88d1896652006c4cdec4a8a69a3e01c37af925c59c7b2acabd5ec929241d961532b49921341927add1c1a57ab1c562b2e490c1511ad569847ad445231c834cd133b2ee4488debbc0e885badb20c1595ab550f95283dda2c3a225a44528e6ce03669066e73ec325114c94640519cb56ae2d87113cb300a036c6e228971180dbbacf43a8e2cd262348445fce968f9338e203683c0222af501294634afab5b5837d20b478c6240dcec19392d3d5982808c565b7a424e4b0f961da55ea0652346b34a6a5e08965ab274475a6e1082a2ed9072c1c7cd2a62b57614c3344aa7d8822f03379156cfcb66c5ba39b32391244ae25badc871b54ab1e0a36449c14ab74df3304e2c35206e82da5ce41b3baf0bc71ace90ac65c66940dcd48c8688a4d039ab942a3f53528a7c21c68d99266e25288a74a4a1b7826f7a1b58498c666438b74cab5dbeb2ac2436b74a3bb0d3ba724be4dbc63ac329d60c233951a41db6454a051fa87555ac2337372c95828f2cc32c2cebe88959266e981241463485826f9cde0cbb30dc44101c4b4c9b887c950bcb71769486e516ce4c3cc1478a6339392e1bc710cc32d0c382057c8261913281877559b76d1996755e966134db38cc1bb50da35b48665eb891401c162ce09318e04895e0f33c4debbcac9be2066a9d46534b9f58568a7554a364278a35f394be70f46698815a5749b0523a93be3933520cebc68da106528e1c7f386a54a4e5490ae99b5d4682e0d88558898961481e69c1819352e547284582726aa2b685559c33d3c0a2d408a6a7611c36e7d4388d526df36a469653f448cce3b831d3aa08682a049f4745aea35839d2920b498f84b2430f05c1a765a498d15a62dc1692251d3ff06d59b99519ed6ad78dd9aca107beae9ba0d78d2297796196955a07be11e3a6988d1ba88de124b33075c837965d5892a436338cc4484a0271f3870bd150d111073e6f6a622d2bedbaca8914a440dc2c1a42025b21b581cf9bdb8691a0977921168a3f4241de14838486b2904237745e250a0a69ca906fe4ea984d8d528ce4261976224864441e0501f970148485684ad1919127a5ca0f9794063e716261e78518d76d22f5ca0dab4547443595818fd4ca706e998861641db38cc3c037c91a8265c5c2301c432e1353857c1cc655b20bbb4edcb472d3b20b7c5cd879a1e779a4578a74824745600e5cc621186ab5c0c7cd0d0445b203c9096e9be755aea691aa80d7cd6eeb3a0fab736a1d9765dae69559898d63d53c10e468ad5d252445810fdbc2cef344d00b29e98dd836810fc434aed28a6162086ea0384ae09b25d9791ed53cacd446917a11f8ca72621d1dc75103cb926e847c736a1b5872d9483151f4b00c021f5976351b3b3a4931f4c851d322f5806ff3ba0d23312ca35898815e38c8c7cd92e44432144b2f25c837661cd5ea56b7b961331ccb40be1a52ca71e5866d64053b2c4c01f271dda6695e493bb26ea5e795a93fbe72a323177a1ec8811d96895dca8f6f2b454eeba637661413338d0271d38a509091963afbf8c0cdf3b4529c93cc480f04473ebe497625e655b01c473a433aef48edf16963c975e2482bc5c25a2796e9f16998b86160e88d5b48569a7959d6462a8f6fa41aa7795ae661e008ceaeebd648e1f1d55a6e24978924377ae5384b2e52777c731431aa89dc96699c569263ca8e4f13431123a9376edbe43c6face3a3e1187a6507826015c939433abe0c2339af6693242b9dd988a5e6f834b17a5ddd2649376dd43c508e2f9ba236d25ab9b07a5e49b53868966998373dae564ae986d53aa7b675dc044730c4e0f8380debb091621b494b4d1c679095a0221cb837be7203394c2cc3ea951ee691a515f0684a163189941b9fc675b42b458d86e0a879a4d84325ca91117904daf044aa8d4f9b9d97855a3749ea51aa4d2c46452f6c5314e262942120c5c61792b4d6b28e749c9c0682e51a1fa9cd6d8e937ab523434c1b536a7c9a0762ddb6911ee540ac82dc6ab55a655ef6462a8dafcb389292152b6bc9615e57572bba65b5fa9942434175d22d148d6fe3446cd448aeebc071d448f1673a9172c0576220587264c5e6a6711c47cff8e6066ae0d6611a968ddd487a667ce0143baf622547471a86b466912ae3c3426f24c1accbb6aca36107d6232d64a4c8f8ca32ccb62dab632dc7f8366e2b39b0a41e38bb6d7a5e4a8cafe4468ed62caca1468e6238a6c2f84a92d4346c6e1d176624b73560625ae5b88a615ba7d5ba51ae6a93e3b4924e8c9b5d88d56ee4c0f8c4b18a23d78522e7559ad5f03bc2a2c588dc61b5caac4831e0e3aa0886a0d86d1e594b4ee4482390c442eeb05a6df48bafd34812f3402ed43a100cc532e5c5576ed8e4ca49b1710b35726ea92ebe9a899486d996951bed68b7d9b0478a8b4f03498eac613986212527d7f191dae2cbb229925cd8819cc7d591d2e29b22b78de3c4c88deb328ff452597cde2c31904e7113c1d9792297c2826299c67958c5e64627c771de46a7e869dab691585896a507a6aef84a92d29076e09ce356bb1f2ee1cf96a0519b30a4acf8bc91d610e44a310cc54e2c3b206e924145a4d14fd110162ee0d18fa8511b52557c64ed4a70ab1a187a5b298ed86ae5fd8c915ac047926456314dab5bed3a1a8240dcd4be14155f364e0dc33a6c1c494abd5188ec8c8440a229756231ea64484df18d5eb8611414bd4a3791669e0252527c9e3776741bb10cd3b2b2d3c620b16808ca6a958ae22b6ba9652025396c2cc9a21c7a9829283e5ac1120bb97076e5b87163f8bdb05a3df16975526d133571c3b65966653745ca896ff32856bb8a9522c975630da9d8d0231404023d59adb62beadb40d2d34ad09b9a98712556427d93144531a319483e7dd9466e34eb486cd290a45574d26686556feb2837394cf3b8ea695e2dc9d223cba6af2b375a8e1e987920186258b7836f66730c3712db464a822458eae0e3440fd3c20ec4b2096ea146e6e0f32849725926522c1b3dafdb2e1c7c2356355a3d4e2c69c86de166c57583af13c770568c6262e7911ef56cf0791ea79559179625a64d4eec6af08560a59a386799919ac671db23dfb6d5adf4328e82d804bb0dfbf2791d8885a1a6911a464ead725ebe12143d928ee0466e22168a190d669771b4a35e47b3bad56dab9947b5adf3c6ea5130d4ca6c0367f061599769732c439a691999811bd3b7611936e9d8616299855463e192c157c98e92db468e9a3672d423b7146979a2b570c5e013b36ec3aae891140cb712ab239621193647be0c2b33319ca5c889b4e3a6d8c897d18cabdc1cbbadecbc726a30f8461a8ee3a88921c791d5034746beadd4c24c9be1068a611dc1ec051f58378c0bcb72a319d86560e7828fc3464f2c390e1b498f66b46bc157b339c96d66a10682e336962cf8c2301c37d203473a5e8b7c5ee6751c4727d66563b7656427a5cacf1197221fe971a557965998715925ebd8c571ade0d3b0ceeb460d24b9ac0c3d8f76f9ba2ee3c832f4e8888de01662e0d1142c434339740cb812f9a84656b09be204398c04b972b5f27ea6d10fbd54f081a05672e458c771669db77129e03a4a338dd33a2cf3b68d6eda9c9a56825be77523597264ad250a3e8e2bab46c7716e1a98915dd1d0d1159024ca6851962cb528cb0c17229fc7cdd20ba91776d5f3a8574ff09564e95190d4b2907624d87508b84cf06da386d5a9615b8955728a25f8ba6ef3c292ecb6197ada56c324c8232d597e4831684b1169d44d520ba9e5088c4aa9f283c3b5f4651bd88d1da563366ea406764ab4ebbcad7a59e5b66d727556ad2b698889254962a036430ddb92beb0e34631cb408cccc28c522a6425288b470a0561111afac91284f46975925ee56839cbb1926397c545828f24b91992b38e141bbb2cc43472cbb75aad564243589eac563f738ee0db2a478a9a186edb38bbe9713d39ecd00343cf939e177a72b0a127dbb45c22f8b86dce6ec3326f9c62588a1be7c415826fccb63966940b2bd661624682e0ab1946b3ced36ae691d956661fa89a37310fc3ba5ab18dc36aedbc8d8eb3528a79a257b991a4e1f2c037b5e9655a59e93649901cb90e7c621d451a72da168220c5327a8897699bd769757a58a7791e9671994876730cc5ac7624c871e02b27e7711ea8515ab76df4b4397f2604ae0d7c75dcbc71969e36ab9691e178a48528cbd093d5ea67fa7119f2659b18921a9d24d7751e36c7225228e886d56ab5ea56904b031f56cb0cebe68875dc483b8fdcb8804545a096818969240666531caba685240665871e5a85b8300092629d1b8979181886dc4616f2891acd421204354c2bcbaee42ef08dd848825d9875b36a19076a16e066a67173a3dcf4aac7759b37318cac9b26d2719b63ad5a05be72929a48b36e8a9a877554a3c0277220c542cca333ac59286613f8b6511bbbb00cabd8791da7899704eaa66d5b56b76d66736e75ab1d36b98ea4a0b851ba611af5c62b021fd9711a46357223b3908e5d468b8e88bc8b908fdc322ed4b8b07adcd689dee665415c10f8c0501b3b109c24d991dd368e0ff8c6aa61e4482725cb2eab1c38c8477ae02662598985a2c7615313e4d32a4866351b6738765938ce40beb1db380e043b6c7658d7d1d1fb99d8cc281e17205f56e7184e8dcc427203330e3b1aea61b5228f86b6ac563f44d71f5fa518486e981782d49b9d365e7e7c22476ea146412c1c4b3013bdab0fea516f621b57bb2df328e7655413458c1cbb6ed4b659829c562f3e3eacd64ec444b2ec2aa64d4fbbf6f8c22c03c9712bb34c2349b27a7a7cb504cbb2f3b270cc42af6a350fad72deac746e1dddaab66958ad5b888523d5b41a961aa8e1f1d58ee42ae87964996d2025c3eb8e0feb4a10ec466d034b1114c7cd8e2fdb3c8ed3426d6a2599cd19ae56abd5cfece655c7e7cd6e2cc9b1ab1939929ec70171935bad562b2aa0d1287eabad908b8e8f0bc391e348b223cb917ab40a0d05c5f042e69571cdf1d12d2bb1396a1ce675d9363bcd8b4b8e8f66dce87963264eb2ceda8142434620b9c36ab55a753fd38824e272a41969571cdfccc6b21c27ad6225c98e8e707c9b1782750cc5928a15133bf08dcc9b19476be6d5acdb343ab74e0b3d0d2c4b921c4beab9f19199c695da48b5500343cad1d5eac82808cb6a7564148425db6617571b9fa7791b488a238985612d4b7ab1f1895c4682a3a78925e5c6d203af35be6c1beb2ce92c4730eb46923322858e8290e0425e218b326a4568075ae552e3ab62e695e414c712d3b8ea8da41521120b161048d4661a1f5762a1e661b4cbc48c92e008c4cd6c42b9d0f8a8866124ed6625458d2cc78c0a368f88828a446cae703960d639b58acdae6e33ab53ebb60d9c6556d63962a51692e04fd7d139c523c3a1a223a34d28084b1199659352e54787eb8c4fe4363113330ddbc8d2ab63bdccf8b22e9c18566a22574bae8eda01ae32beb07a64978d6537438f2bc5908c4f04cbe9915524b932ecc46c5a19c2d20511813f3f3f554a959f7a8d418a159c9ab871d91676b56a584a4dbcc418b1b1ec463a6a13ab5686b054f00a830c27d6851d25372cd4b812889bdc900d570330bad5ae4eccc328d7615a87516f965c99619d36418ad58eb36265c806a22129ab9595212c5a2d3a22bac0d8bc8ef3bc2dab1bcde8f4b28eabe2c6d54e1cb951032bd68940dc24fae93629557e5cb818f069e0d4ba711c370c233970e4868eb6212adcf5c537ebdc2a9d6296919aa789201037c72c434550deb8bcf8ba722c2759965e28d249430e889b536258ad56abe980ab8b8f23a7c8619414c50a8a1986517171f1cd71ac6509929db87533c4b86b8bb902e2d262ae7cb8b2d0b25c587c648891759c58ad1d988d18775d817959c5320febb48cabdd46398e1cc99ad572762047526eab97151f5647b2a4342c33ac8a0f1b3392665be66d585672a3b680afa36047b52a92592db1ada4e21b3d2f9b619ddaa8518f86d9141fa8912549ceae04331a725e26c517562d133731ccc228be31e34892cbc24c246b9d1d145f59765919762458b54de338ec7ae22bb3ac0347ace3304d2b455204e26610162ebb9cf8b88d9b54f42688615e58c3f913643414c33693081ac11d3c8a454b961af575db14c32a762147e7387ae074c182fac0b1dc30ac6e2396d1ea69ded35c397d6556ebe6711524398a7198d8f451ba61e188d172d25992dd768451f682b5838fa3e314b7394bd1f368cd40728b50d00685eae0cb480f14cbd2a35e87d18e8a5e0e3c6edb362d9b1d96cd59bdadceacebb85ab932dbb68d865e588a160e3e7124b5b951cdab2199512c2c4bf067e8c8c3260ed60dbeba7161875171db462deb3c128823ba922d052c1b7cb4cc3c6f04b5adf4660782d94661d5e013c5ae2c416e24b50c24c93004e2a61552e8918fccc26ea363d78d95ceec47288887d5ea482848cb6a350e714742415ab223a1202b41e111d6978f0cb5198edbb8651af5c6cdcbd7cd6edc44ac13cb49672577b068f09133dcbad2c3ca4ea4611d3afa31ea66f0619ae79558466a98583b917640dcf498be716ea3b689d9566b1dc39203e2e6159044e287542248289b32f8c4ae6e65996d1e37b10edcc8a1a32e065fb98159298a1e196a532cb70ac44dcacd8d2681cd9f391df9a68655100ca746d611c3c47205ab91aff3309166a59869d4eb38719c375830f8c4707a9323cbac82a258470f889be0162c5ab270931c837cc0326c6e1abd6231f261a1d785d9a67559d6d559729405eb055fd6911ec9911c48c96d4e3003e2261260d1d01136498f1c8b48a31f2c44598230cf72019651ba695e96759957b90de3b20cdbbc2e0cab46bb2ddc3a206e7201b1601912b160092ab15934f4c48ad00e3fa31058b4c36a65b5e0ab6247e746c58e2b698891a3c5826f8225153d920cbb49bb3a6e8b7ce5043b0ef4486e82dc56354d918f23bb32db422e1ce9f4b4905cc1b791d3db3c6c232bc548ae03bb7c582db52ee330b1033bafab33918fccc6d979da9871b3db3c8e53c127669396a4478e95d3b050db52d0cd39338e6eb56eb4d28d6eb31b33908ab3e3340fa31b1752147c342cbdb22be7d6d14a4b6f3b32026de0ba9f798585c897959ca871b3925ce691a4d719814039ac56dccfe4629de013b7aa6d1c986d5c37625db799e01349b204c76dcb304ddc384e6bc32ac10762a157d6198235ecc609924b9fe66164b7cdcea359a7f465e40872e59c9947933e4ab90a52b01bbd598edb366a5c5848dfa875b3d631f34632ac2305bd332c127c1d277a5ea574043530d3c4f00b6b049f97553a356da373db308c23d5b044f0815ca5982776b36622076253e3a454f901b242f06123d74d32c4b2700cbb6d96ddcf6e6181e0db48100cc34c2b4b4f2cc35902c1e07de0e34632144b6dcbb8b2d3308d04e26667348405063ab72ce491111723ea012edbb66dcbbad979deac5b8671746a20cd48aa85e3e865a35196202cab95d5810f032bb9d539352fac5a472b29a4a588a89bd83ce4db48721b438ca35d2db1b2e4368f03df9c1ee95592a45d566a1de536f06d2349cb2c1bb3acd4b472032d43be9024c54ed332ea6d58cdc652031f48c33123375124376cecb22c035fd5b01a6a1ae785234637920271d3e330f069dd2c313a478fccbab24b8204a2de9c52aafcacac42be2e9ca2c6955998891805bb20a1a09f9fcd861760c0c186289bf8b34d28d605be1223331123bd70c440aa61215994f55089b25a510b601d96751c8679947a19876518b6d5502c3392629ae67524970171d34a505867a073ce22ab02df1c47ad9b6127626258cbcd001605beca71a3467665d961a2168e445813f84a92c4b699917596142bc52a814f24c7493d0f1b31312bb90e9b2269f4a4878a0d3d5cc81a72e82617f2ca8f188425d44284cd1f31e88828080b16f2072b025f49761b39bd49375a456c043d322c423eca6161a98519e76d1e09869b942a3f572c087cde884d0dec42b2a320b79162d700eb01df36bb9062b3626256c7393d2310cb132f0c6b900fd4c62c1c336d14e9d8d18c72017358ad7e6627c8e77163987922a5e556e7ec68209fc68965b76d15ab23d8611503e40b350fd3c472cbb4d0abd9564ae1fef8404ac7aee3e6a6cdd2ebb0ad08d412a588e402dae084e547b895dce4bc8e0cb16c56509352e5278bd5c7e66dd3cb328edb328fdb32ccf33c9a55cfebc051d3bc8e761c103745b2161d11597c7ce45639b1ec2a07962036b33acef0339bb0f6f8ea4835707a9e286a530c47cc48cb11783465b55a61f3678a464159322321f2cad0d17687a5c7c7695b2692dba84d6d2cbdccb3f2f868393b6e629bd79174ab1a390a05d5e08385c757412e0ca9483d6f8a9d2866abd5a649a9f2c38375c7376ab4825c878d1cdd446ccc80b86905a4b2151d115976cc9555c747b99a8d58d7715db7953523e9f8e838869dd775e03662a3b681737cd8b8655e08925a47b192869d1c9f98819ac67925d87121e6d52c8e2f1cc932a35ed751522429597a9d942a3f5b2c38be8d13bd500b3b6d725ad6d56a448add66bdf16524986514a4a437ce3a2b06c4cd23d24a368184b4745c9d6e8cd848c54aa7463b4a7aa1d586b751ca7158b6611b36e7563d2e9b64b9759a168e23e885e3181a596c7c75527104b930e3306f13cbed00d61a9fd7611c06662589615a37b1528d0f9b22477699c689b403b9d24ae313bd2cf3b46c6e73eb302a8238ac88863a6d0a0b8daf92b32427d87923d89535141df07515a4746e531c4b5ac5ea0171546ce831e2a6168375c657bdb2dcc64c23b1b223475134e3c3b070f4b032ebb40ccb46ad2be31bcb30ecc4901349cce3289891f1899a2786950b67573d6cab14086b8c2f2335922b4b8e725848869314e31b4bae9c1d3982180762def4c2f8ba102cbbb0ecc6ba81d3136903b46d6a9e877573cbb6c94dac7695f4c272db44acc4b06edcc4d202e3e33aaf76225886559b141c2a856e58ad48222e54ba9fe95129557eb60c8b015fb8d5d1d3a8288adba45c87595f7c9b976959264e6f82da48338c5a5e7ce5168a5ea6d1b9791b46c5926a74585d7c9d27826125490e9b1edd3adac16171f1755d99716357521213434ab32d3e0cf4442ea424b9d58a8d61a8699aa5c5078e62488e9b0662a487659b98c5e77114ec4252a323478a1c9d981616161fa563edb08ed43a4ac5496aab95665df1911524e724b3529ce3464b4ed32c2bbeb28adc588ab414a9a6851aade2a3e2ccc649b18e23b170d346cfb316f0558f2337519cdcb8691a47cb4d4a959fd1a2e29b5915470e2445b11b33bad11b82885ed0e696397fa636b7543dac293e32e3e888796546abb6819514628025c5278e9cb87134f426b895605892587e7e346a45f1d54edbc0b2cead9bb3622409c4fd60f3a868c828b3a0f8ba6e2447d01b317004b1c955206e1e090501fd904a0419793f130ceb894f0341cef326ad5d276a1a47027173db5ab09cf8488c1b456c2bb3709c9c4756222e54bc9f3336eaebb8728a599d9ce875dce4b81e562b6cfe4c0eea2b3732ebba311cbb898d631d8d3636f6e903b32cec34ae2c398e880b95d58acbd16af533b91c51cc8c75fab25a2958456f2beb56396f6a776cd397cd2ecbc2196e59d526078e70ec0e3e3abd2dacda385630dc4aadac980ebeb2dbb8aca4210d414e0cb90d889bd59352e567a1d81c7c6138825b196a1ac975a5b689d9eca17bb238f8c66de3b8ea6d1d8991750be786c7dee02ba7a8919e869121586e2016ae56d9dcb25acdf933b3b9a5dae023b992ac65d5b21a8e75e868b512c9f1c96a7524ae5659165b832f0c45af2c67d88960b69518f9c8e79125c669a488d110f32848345414c36a45345434be30742434c3d09150d0d17ef9b42ef4444f0c3b4ccc422d2bbd7c5aa518a7812438c5d1cbca91065fa69163e88d5514c3914e2d9cc147c10ecb46ac9be4c8695a3781b83962192ab3a119562b283d4f7a66e8a162430f1178c36a45046659ad2836993e2edb403a4bb28a18cd3c6c5ec1a225f48a702841d286273d3df43ce9a9a1e749cf480a2181c36a55445e2902b394e40ee4382465b522c721a1d58a248b8ec2d58a9b9b36e70d56061f0db3b223c1706295ac132c3706934ead7a756698966555cb6a9d5b49665c464eae2427176ee23af2d5907a3503bd10f3340ad271247358cd6cceb18d7c35e3c8ae7a9836826215358d8a37c5c2e0a3142c3dba4d92cb2ae7758c7c9888716049a7a789185969f9824fa3d4d3ca8d665c896da537bae01345708264098a22c8916018b6e0c348110343ba554f0bb112ab2cf8e8584911dcb6ad829bb88d14889bde0c454550449268ca6a55441e0575d8fc593b7691af0449702c2749825a86615808c4cda21c562bade88848912fc4ca920bbd999524153b8fc4f23324f4e34d4d24c721f1e787cb51501148d4ade013b1cdcbbcaa6d19582b3892b4f684554b4fa7850b598315a1a0d50a2c0a4925b0a9c576f9481124c30de3389204bb1104a5149161162d429bc8d76de1088e1b998d239655b162ab828f24450d133b12a4e0382b588254562b2be0d16a55448e52aafce8b029f8a847cb0e13b1302b392cdb38147c1d0992a4585211f41691afe3b28cac5ea5e14662e1c60171939ee0f3262dc13203e98695d9568e40dc9c3f44e491d166826f9c73136b277233d4280d271037b71e2a5130ba95e0cbb04e0cc7111c4512d3306f04e2e6a62d7d5ca59b57c7d1aba4487a1303e2e611e4cf9178c4476609a27224041e19ad565b27a5ca8f9655fa304c2b2757c7aa8db38ee1d6cda42dc3bcb97175ebe6d4308e765c16d68edcb8298614dba6a80171f3c74a10162ce4469358a4af8623373b51ac22ad5c896919093eb2cb342cf34871c326d661193962f389378b3c2a3b824fcbb68dd3c4b1cb4a11ac2206c44dd2080c7ba84459ad8c8e82c0a2232aa4110883083ed01b29077ada56ce717c416843f08965188addc881ddec4aca7554070b828f03bbb9855b296e73abdc3682ab151632480ab925e848248d182aca61b51ac717366e1a6121c7a12c3f743eed07be90865bede6486693dcb4903c120a1acae1a35386f5c09779d8b8558edcb64ccc308e03e266931ca844ec2fe5502414c6401c82301003f24de7cc88940d00e31340602020200f07241245d17355f2011480083580b46e282c2749e2004910c5388a821806a218030831c6186310a2ecc61a0004c5e8f83603d49ae55680177ce22aeac1d920e05c615d1061f569e76a15b769545b5222901fdb8357c9a22757307daab2f70ecd5c416183c63ddb77cd06c5e915eebc6ad6ad8bbd7903da9a3c9cf20cf4a7f195cdf97a2a584969b318be2343de98f9a52b3d3d9f6b2eb5a1d9d3d050ced371f37d37bd41144acee3faaf355b6e3ac1ca50f78bb200c36bc483e8b49a77399769128481c096f2c2971fac1f1db6c0888fb114e30a4cf62f39ad93f04a4fdb4d236fb2fb38f7aabbe1a70463d020f473b11837c52b015d2b414be771f72d46aa1fbe4034cbd3cd659917e1ace34e9c6af2c95f8329616a78b86a337a9a55dfc5b5dec308548bdbc4402d6094f1b90688faae0cbefebedcbb202f029c77414ae4a8633d384f452c10658a795d09c4fcdde0b91644f46b5fb3bfd2306c2c2afea41008b2c75f773751c3ed37c7c0eb58cc5979e2c5dacede1e3a098728041d981bc4a25a5464610834e4d1d765ab869f5eb33f4be7d6c11622aa8102e19cd4493d95091608abbcf55132731def122ede7f6faafb0bbfe972c527975a54ca7d345d7d2c5e76cd75ab264f9068a50004af065b42b8c16d5c6873d3d569721aaec75555ee9b4c0dfefa0036800ec9d80704dd02a2cb4b1321d4ecbea3eb42c4b0bb2b487b944abaf037ed06e0f354cb17a8e9f5d7fd0b46d5232993a53b6a663f6544779bb47457d990e1f03696091059c3090275a8c43c41827b2e87908025139719371848fdbc7e84f33fa5bcad11d10ddfbe93d7214aedf92a86172ed0dda57929a29ed7a72afda78443409c7ecf9d2e80769780b7f1c1e87d1981a62f7a47a3269d5ecb507cc8dba8623ce88c9b745fae3077f6cdda22ea24408eea84b81cedb75861910cf5c5f473ce37bfbfeecc1c8c936dd6ba100be42da33e3abcb5c74c8b4a8ac36e0cc825835330c183824ebb1833b3aed15641f062d523fdb13aeef8ac8a3d9ab9cf2425a5004015ccacb3901c9be25762500e890a98aa48d8eb06475c4c0cc14076188d0a51aa2026a9408e28b6e2506fe7965b20da8ccda098d140bd65866a11a50f636e036c8c1a164111fe4aa495502e1b6248491672967d2931b13d1890cb3a9fbd4f1c50ecc3ed1fb24ccbe8b2f0ef80678a5d4fc2868fcc8970afafc50056e4081ebe2f30e494514ae7b3b3e39f75d09801c4156c6bb3eb96cffb5b701fc0e58f14a7d26da966b1737f3c9a2f443f4adbf2aa8100fe5b324846ea3d6f4bd364d6768fc7e5b6440237da73165f9870635ccdf322c7c4687f9cd71bc83d42c49b45416f029a3b387863776fa9d4c92e1dd20732a6ff8f334134ee7c4901abf9f82f45c05d87238e87e0277d7023f1e56136b3bdfc756b4a31aee20d9b23dcc6f9e1af31b1b46d5993d336a393aa03a42da579a0d973b59ef4f574c5139d9e2bf0847e7f0bedfcc8e55d3d7499eff131726804a29f68257c15dff4f8db0570d158ef8015b6e0b76ef09031ae4c82bd6ce9bf4d522bc53a0cfb423fd5a6c0a81c642e2475716a33259459fce160a45f1d9bd8640b62120da0d199da9e4dad246176ffc8eafc04f5f19ccd9001db4cc689955806d1ff0f53eb74af14db3d27fdd0ea73932e9c7b9063d0825fbce312521fe6396278d056295ec2bc68c0f06558849eaa78478a34980195b5a182ba00976f607ea82a823cc0a21f297647b1e2f58c846cc1ddd2092e3bffe8c9b9638978a8d595d335a7754e18ef8cd5bf3d2258d75d31edc17828573ef254c61ed509f8248a72f5f05e09f3a9b4ef5eaf0010b47d487eabe6a06966521a1083b4028e32438fd40a428f928c44d6553d5861da6c19a7b17ac621027e7a0a3cca056223dcc4bf95c54581f6cc7962369965b039a4c3a3a07fd23531b49198b8746499670c68e77c88c1fdbde231e8a39d7f5ca8eca0389462495c70e78894698c57362966976a1c3f413d6c6c8586e4d7b832c9da61ff45636ca8ffe1e20ac4813bf16d0ad2f345fd19ab69886d98e4ad271fdb28e39f8d6e8bd3c735471e7e1350887318b8834a50b7b0028e8c22ec206508b368f02f0fce972745cc9f41531711c810808ec3feb1813ad0789dd2783f517630308cc808881dc8671a409f746653d123c5883165677d30632398f72e192632ccdd501921a9be451caf00a276864a258afccfc980abc63aee4240a8cd388505cba49d6477c40b36a2abe2dd5af17c59aca4cbbe01b933e6dfaa6e289a66b91b0fb7aaeba72a9f01f6622e10a4be6c919713b77c4e44998a31b09d0d4ca6c1607875cb22baff2ccb804dc88dccfe052d39f4c732b4956242b39ab576b17fa8b4e034c2753fc5c26a5050ba173eeb656d2f7966612d7aa66806b2f256fe06ce0cc4a6510d3dab30dcc4b10454dbdf3a823bd609595494cd507984c8fa06b5872cdec6704a49d4f1c8548082f8779a20c33ec622d5595dcff095273231e8d4e88b0ae8d42d336ca3df257016aebbf1afb8122be88b863655002bc6b1147a51329dbe954cdf7d05f15adcb7cb9e10b1c64360164fcc93e81c1b0c40e7f28d3c61a21b99df804be1effb6ddc291470193a2aaa6df463f03c48d11bab2b13786833a8cdbdaf2a98f660c6a416fd852f9b508bdf71efca0836a0ee22cf7c446c319f440a47a23bf15f77c84671ed2c4ab940b882310c887ca4246330c6eb3f82a2ce9318f6bd2750d49ea8626503773938c8ebc248d50886350603614a2f450fe617a53bd5a080894b812922760a81aea0c46372678f084985ee9d88a66a2b62a2999a658983d216e2825cbab2b22060070be5b99a774cc17428d9fb3e291f339fec15896e06fe7a6104fb64aa6123fbadb63f68b7746f1104fbab78c737a67182ed6f6525071bd8fe25ba453ec12766977168735329b4b4908a8c1097168fc97eea69c493ea06780df982c287522a8f3f5cace7071acf614af216852cd66499dab57f0644caa0788a4d2a01dab37f169598c875c75a8a8d334bdd27136d84902fc894d6f847a714b35b12cddfedca6edc48e55d53867a29991cd1d8a3bdcd582afa7785e616e8d1d23168a863a50594f3a83b1465f57d0665a8e7ad9025cf2ed296b85bcc324f211848fc566acb4ed560b7d8703e9908214ae45734f2375a6963f526ae0133abeb06dd19e3bd41129a6e7c7424f9272203cb91c45ec7394469ff19c3b6146a8affc23f7d90d13246561435f0be89837065463cf3f06196e0ba6b59f302849512a73f363d4c7973235ca09555a038f060216fd013ae35518a8334c29280e8d8b31ae2c855d22358d12bf8b2baa3460f389d940f47a0d885fdf3ea82404eca7b1d17c55b2588ebd0ef7429806cc6d095903d3b42ac37c7458248009d56a53ecc0c1f3b94ed54089f217428517bdf5553430265bdc8e158e06705b2dfd927aa43fe39f09b99d48d5f828aa6e88881154b60ce284898811bc2416cc5cdcaaeac6c8ee6f86faa5501ab88fa47c34ed2599b94985574ee8b290c448b0f749b946caec31eecfd05ec79059785bc1e1dfa523a65084b609637250c7401bc884218564d5f5a25be5e11e77519afbb28fe7f88166c6467c1f96df242641c068bfb40d9e9bfeadedb0fb5b90f836c8e5f18712c001dc77a04189f59090e3bbb6984ee3097a300dd1a82572ad74a6f090343c928e21f0dd3f6cee426bd52ec192c12b67e8bfc3d3cbac157bcc330bd7c7609ba78f4d16aa761b9ba3e03774baf5e36a6505f9a639940ae05c18555728eaac23e3063bc88a893bc58dc5c2e48dac0216f85e4b0b2f0964c70a1c12fc1f89b0441fbbe975ed0ec421f63f06917ca4f5442e5d96d07ae91cc263af58187b57c729746791551d02716c3bb05e238f1520b88fd9881f357643ccd51ea1e3370ef77c23ecd0d246c631a6beffc46a538604d44812128db45e66340cfee088ca62ca7ec851b1eb8c678b5adec1ffdab3deb73e90f2a4c49450c58973f4aebc011137bbe19f31d2c1a04af80b13294b2889e0072c85cfe4502194052dcaeaf16b7ab5f90b5bad08e5a071765e545f426738639090a218030126baa0d376154785b0a553791104456dd040e0d45d81ff08991a357a86ff0f392d71a72e978b6020772701f9077080224463b9c4d4d091c1b2e694c58193c86833f1fb3d21deb58125c70e9302228c4a31bc5063d71e9a89442b2578e971ee4967f14d40696575eb5655fa02f311a7b9ed4c21687f53d930b9e43fcf620836be22cca090fb0d3ec700ac18dbbfddbee421decee97e0bee559c437f1e60732a5f7d955b712df7c1454ba1fa94d07193c6cd6d3ffa04ea3eeab0bef7a1ce97eb297c89dde4d261c17d5f10c6bd3f02c232c079b14c14c90b675c5af6b5f30dcdd0cc241a14e6b68ceeec3a85c79e0ddc86cd6a10be47d1d9d7bbcd2337c66d93c94861617320a82b9ad78c427546f91f98715cae5bedb04981b4be055bcab1cfc2ca8690dea0e41c917416ece6af097e15685f895094f07dd84308de071872ea0d03d46c04a9804dfe1e9b0642e62c456231de2dd6a600ad95421562773afbb0ab10776abac963710d27c340f7bd8dca836908993c49248ad5bc530ddd773042e905b4090c037ebc9a46e90451a38b8d7b472d527e8bbbbc5b012e6a905fe6a40e677e118cc73c8f0ba92cd6d6935397458d446fcabbee8fb2afc30e3c2f54c85a3fd6e121fd9dc26d0b1872fcff325f23ed930c2b3b88754f4c6d52cdc36642553045c4343408ef0045f47006ed716e2584a16189320daa41c5006c962260da920320a8c129b6f4ab1f20e5af9f9a6bbd4e057150fbe4c796158e27403a49784e843804f37e58f3e0044d02ec200382003420698aba27bc849d756d194cf18fd31b026a96b413929787e9b5916f59f013e91125f6b6c915b39b0d29b04865d438e6053f5a328f4968aa6eb23b3638528710f2a42baa087a6fce92b85954a93c812d06384629258625815b8d20a82facb23947722b927c90217ae212a25cfc16c87789710331c6ad3d37291ed29b58c6d021f7496ed4f0a32f1f0c0817ccd91b3783214165c9d155ec0f4c8413388d2a6f0a809ad6e1efb9921bc603f681914f7804a59ad9571b31a5b018cebe1bb75c4388ce0e97789581473b5ad451447d13ef2957c35aa046ac86c58146dc8ac3368205b293c9150fe3c65d7133d041a3d95a2a3f7a1be6bd501d4893e91aaf988b1656b9e08517fb8450c05b783b8295a8b9c77d4afd3a52b1015771cc14228804f751a6d1028a8ed4478509c2455bf598d69227f6207bc5ca31b26e9819c1facf3cfe46391744e38179b6f2347251d5889529fa17c5337c848e3009a04ff90f33ea8b6e508464f478e6a171895b7c9f9a1788f42bc0089dc82ba397cc12567363f658512f9b1d224e2c74ad691f563c252749a342d77f65527049391a9cd413e516a6e31c3bda3936a2f7be75fef0876cac0cdb35884ffd35509396ddb54e527f9f1e2b249b54cc6625f64d0203216a944964079f81b797dc4355629932ef034f6b712ab3e3b202839b4731423ac193d71262f988161eca080354b2d11dea725547ecb3fd808a40326476935f0a3ac06e303bdddd422b237bdc263c47531179f71ba9f69683c23df69d9ca043c483f90ce73c549b815f346db4fc27c3361f0beb238a3d73776bd3c87d431e6d581e2754020d98f82761db563bac46f412c6798c044c42a656e673ee483ceea021341802d20099a92c4a35bd81505e8d69cf812eeeed7d236e6dc437eb30e5d87f6dc46520242a3a2bc01d9f963a3432bec982ff4a5865b2d28cd6ca18a1bb10d4a8998bed35ea9aede0d96d20e4d4834a04c655942132232c2c03139d11c9a71cffb823f3dc09b4b3da2294f12589ed51227563387920e1a75a5ca9631e344842612fe8a409927258d7c7b559b2007a817e778bf9378dec39ff9aee1a5317abdc1cb85e9d4dcf3ac1013cc7be92da764eaf694ab5b0da5a65f6a8a159f9bada35c9353d066034895d883acdf3979279f3ba48febe9a328fdf01731ffcb373a13a4e073ef1a079b689ba3b02f0743a103136157943d1b57274bad75b9e3ec7f644854ab57de1f6b999c873bc0c1163e9d84f1d210be38e0ab54f6052b819c75ce16c8a1d9c14bf63538ccabd6a659969dc83e1008e7a4e36334068f7f522199adc54f6932a952e57325667577faea4e7169a4ead1210e9a8f4c310a280c0c4dd72fb70807709b4e5dd15b2e32b1ef496a3d53bdf1d9c44969e4c59c736dcd248b4c393da44944c33f27cda30afb7d799538c96f5f999c44489ac1ee3c9186e17da8d4b46ca60b6ef42f4d436257a5f68bb0f94eec884fb143c45096d3a3864dfae12b5ff31020731114b2df0e145c619c71ee406f0aba16de550e15121f581127b68a6eaa44e7554e09b63b71ae077268acf90a02474ce1267255549002287d8033b3f692dbf49cf531685d5b96b75c8ab204a6ea016be541d965c2b702384c642539af0a0507309f362c2de73389a300c899986695bd0e69eb699840b3c1e28437721707c6f0f2d37094b57eed05ca29d6f91d83641d068c9c242667220e3ba23c00d827042a184bd6d65ff4cae4261a7c36200593366a32dba7edc2c3f85d3bd6021165e31030db48dfea611426436affbb3183b891e7861104b635c4193955879b525a6e8952f90e48b110c12ef9b0504ca50643340a02ae6d354aae55f93068fc49a94bf446af56354d4c694e7e8afc47453fc1931e377155fa990874bbedd33d8214923739754b8a3004836e184547bdcc8dcbe270da02106747a2edbec64ae13e523db7862659d248511e1f35a76d6a731de858293402d3b161ea23a0ccd3c6f5f971ebf07e68460907f20f5170db8c44919adce66cf6c34240353065137334b08f930b812838bf5b8c4b893a4616083a3206bc81a24631950ddb90cdef594c69ba9a45431b9a4bb6bdb3838a0a580a496d0dff1da052851333fdfd9f2c64a9de41a13e6dd09cd6e357d71112112646a665239fb1708e6987a0cfbd26f164c45265a0224e658957047f9abbfadabda4cd9c77ee97bc86844b3cb5643c81daf2ff22184e08b60b5b90670af24edf30c69062220d823dabfa2c81b53e38b140c1885604e106672b4c2f1b7204664af9cf0718886ddad3e20ef0163f990e0fd875972b4313e33c6b962b145a02126b1aebc1c7245c52ca2aee9ed95a5ba5ba05e67ed50a7a7b9d5fb8e4d07d037de395fda8c0926a30497710f9243bfb22fa56654e2f4fcffeade341a79d985e8b2e07e58d0603624ff3919a8e1421546f7f4fbd94449f5588eefe80bb9aaa6470a2190165a1ff1dcd7db53bdf6a37775666c6104ab8a4be4b29ff76201050d60be7a3a576064a7be8de50935934d8be0094f484fec950044e6d88f6113006b9292354988efaf7be84fe96e3e22639e69a8878ca536bb343783bf81dd15af9ec3380c2ff9fb3f2e74e1f30e20f4e76f2789d13a547a66f01296b054f3d7a04d2aa058d4737c57b8145e37445073ce39f776e3942174f77b0459e466f5039c2b0680f062d0eeaba5c53dd53c0b821e257ab4a51e4ecfeaee8f0188d2ba3ead154d83aec003735a0166454c2b7ba14889205581f5611d18e3afebd249255911c0553007fadea32fbb6b740012c17bf9dfa0eb283d0a8f74eedbd0682b5d3f2d4e57f00e064510379206b140898e7858b1e3e9a9d9791719ce5970f5d71c847529547f1229a0ca2de7342b2f49a10a185c967aad1075b152e55315134248dea4f31144a02d3344ea7719a555763b11f1ad31eabeebff9d4bb3049829af625da96d6d01552026c49fc5a6694bc1207cd74d52a3e00470bffbb735b45109a9d93d6261dee2fd646ba7e816e4aadd1b86acba2d7e66c2f91b2efe4f41edc2a17ab8461f69be242f7054404b1a8dac1d0f32ebfdc53a5a3a46e7f5568274676b5173a50c556238374494632dac49fea341e9ebb1e4e39d0e6b0add6a2c402dd154aca40ce3900cf6bc91cbdef32b02c35bdb1a6a1ca2661acb86adc90ddb804f619bac55aa2e02e2f9bb64b998ab6724f27c110b8bf254e8e8b67e8f040ef12129d1c4df463114c45eb6de50088c06fcb03786adfe6f6bebd4555f3350d43d3076a11d6605898dc03dd47de18d35b2b22ce44c1dd50f44a1bfe5b68081dfdcefd05a8f5ca7ab1dbdce702e09ca1c6f1c636f6d646bdb5919bbc9955275a5080ec43ee0e051c6c297ff1813b42fa961645079249980183bcf4bad20fbb035965dcfab421af64c1c29a471e86c73c2ab5edd241f1d146de67507b98e0114ac11b16cae97e14626157232538fd31b689b2632a7dc66ec7fc12152594f072482a1bd151eef85a28f3417c93f8982590415014de51bec042555baddeaeb4ebefd945c63659ec64caa29bad2f80651bf0e2e0cdacd4d4aec67c2e6d109f1b69dc650cffacebbd442f73e785f67580d92fa9ec86519c2c7b057df30d06fb56de546c9a62d2bf8df6f25d90c6fc547c60df04e959ba6de235e2f3ff3fa31b03dd41ec0fc21b85feaeed036ef13bc7bc47102a0e2612185b39ee6448b4f90942c1c2341d0a2cce45254e210291b58d433a50ac79871068d811a6d38cebe67565051e318a4875be662762ecf63faa932cb4845c179f9c95d70fce433bd142972fd2be786e27c9ca95bf27a1360ed446844e8532f4e8b7de3dc04cb74e1dc694128a209daef2ae0e0dae0adec64831b4c282b50909924381801242a371bbb7c074ae0c91e269d23a6980d402a116130c2f8e2ecee2a8c9c08ce53a124c20f87fc5ff9d36e8bd593ce744d544b0902f9273e3f03f31c6adac2995f7e5ce3e95ad660a20438e5ffe1d285e6a17430dd475c740202bfa4b9dc39b37085ae5f9ead632ff94450bec364e6271fc85f5e3dd05e51148b9aaf383fdafaae4606cc55f6894021d93b3f7b2850eca7b5979458139205bb795ce4c8089d3265fc56bd5019db830f83e63657ad9fb613b5729327efdd6ca1feb904117b29b45eb64f9ea004e82d2198b2a4475eb26d50ec28b87fb6b8ca5e330a334852443356a72b163c07f02aa18695d5cab302c922e8c78e8438ef6234127f235b242301ce3f8e72b1b8dbc21c9a817e5e4a57de4b04e22d596ca055b60fd1be33103dd528b6401ecb8fb4956eedff9bfa7dd204834a192ff1848650db687f1143d87a4fd86a08060b163294371c30a70754312c71610c0824a527784a0a84b682838493910408648b8465b1df34842ecb80632721628a6ca4758b400b71c1e62c2875aba9c9d4e3a69bf7d59266950360bedc626c28e5d0cd99c8718c702b2c65c28e69881ac690ee1f8e5adbfa6e217ed09223f457224b6799bea254ee9321e7f8dff8b35268a7561e1ebc35063042650da4cd763a25cd8de2052fcd5b13d08934694f6202798be90518f9a674276ff14741250fb851bd1c6c60baaa116b1dc06a8360bbc66fd923c82047450b9514c5710e26eec57cd0fbe8f19ae7b751a7edd015b58ec3376d68b300d50022a209de36c0af8eb4d720a1c3521ad593457b73a58cb5c01a250afd98507fa5845aab44f1d6c704bc4f6db75b0436acc42cb167cb77979fe9a336f1df09ec17a8880e97345cf7f296dbdc150227a23f5f095848286dd1b1eb444318da4e172c3633c9892fb315907c465ad8d287460818c3c02c768876361d482773ad8fb6216a215a0ba4414daa535cdfee8a46c88bcf0b0419fba954c372068964a1ffa077dcbe74159aa4874664d879e73ba80f3127b580b665fa38577c254de0c974dc0876d31dce11fde65cc070b8216618259586659c0203fd55be063f160aa8df2d7ba9f4cd4f6c068c1125b3c34cb2ec4d04255907b1a026c46df38803cf5afe7b020a34b117dc344d93106828971045506b04804fe4e69bd3c0be467572f1bbd975598c31b67f2731c90924f846ba4b27a6e921cae35f7705a94e5319ac6bef06352c97a4402e51ecf46d69a005b5bc9f792750ea963b72f4717d20046ddb32ed33474996464698506e043a0f7032477d6307c7e9107b6d6ef5d2ce4b1f565557d91cd537a257797e34c0660d62064ea215b94406ff00ae7d109cbdd15944796abf273f950d78177975e6b399f67de6a4001a2b3fc4a5cf7c69c2ec569107167897b7442edff88aab3d6c4a547a5d4c7a925bf5caae9b24a024c14269fa0a265651c4b3fa15e067528233ccb8cf6f0e882dbc02dbc5b4e87564b2fe6db3a18c70b696395f41b916677cbaf9df59b79fc384cb8b00107a4ba6396e13ca71f8e11796d4d8d2ed6a748c677636cfbe5d452071872207351898849d3a177e10e0bc862f62929805eb5be8f14db61eb3b83b85a0a00ea94f7eaf4b405680a67b10e5ef189dbb10733fac4d004394c7d851c4251097e3ef9a8808203e72d5200f8291a781e8564648275bcc3385d93f4631f7e216388920e7a0c7ee6d90020cc2d78a8c7aa588ab2bd49f80a0b6c29d17909691913e3c9544c4fbec409d0b8909fa9ed5497576339685e9efc45e68585a6acfc8aecd89d4bcaa8c907889f28627523eb408aac9750bae290ce72f714550231011d3295c6e3a5295ad193574130d66e87f7e9a2392c4f9d4ab82e28108c2f85d8109c3914128332dd5cabfcc241d877089f2699cb91d1c960808c00ed4691899efd7671841154766eb91ac2724807470f348d668ceb0fb697ce78f8111bb3fe7ff81abd1a430da8817a27f98ab689cd58966c99ab2779d4de560802c303e4b0ac94e97d88ed648e8d5b9259e91e804ff367a887f917d5b5d1ec21a99759b7d1dc3a2d9772c6007e39246ce2ef66bf9075a4f463e430df5ab121fe31394bb7401e95fc8e8999f0df441d38eb27d95a035c0476fbf30c28f9b393b269d77de758f00b55e78a46ed9cc96ca2eb679368654d47345b164f2def8d7c3fef9c2a36502879bb80358c6cce01c7f1b5a16cb799dec330cf84a1edcb243dd50a1ba8f89ef7e95f5383a836c806ab3a5611b44eccdbc4575ee29d5782e17c84892e37166c6648746a9703083950a2681c98e1caaae9d1b962407d5405bcd20eb8ad80f6c5952ba20e55f243cc7fb8e6239ae3750642aee301057eb6db14b5117c85e13330d403733e78117d898447023138c02797195dcda745c828c67a9d7a1068ce957caa82f27f9f0356438330a019b5315eabd41be4380cc1c775d8055d1a8f33f96f6e53e580280abc0868f52e4a7a5e32ee163b8b6e951d60b17466362eb712a1958e9796fe97eef124a66112308e33493f929257a56a70b2ad713ddc7ff9f15f6a896b61db2b3f3b3802e89f3ed0adfa22b34b586897f794044be1274216b15af9032ed82a1dfac443e807ea48f8090550860c9600a6721aa1289730005c507ede9b3aa1e1a225c37208a1d874763d47402f736f892482fcaa017a256c915597ef8085fc7a98ed48d9328d2ce04fd2f607664725504386c8c37099b534e07a9a071421628af594d0f9177b83d026cd20d307cfc092898d16aa954dda3721d9e14280c95759f4b21e6a6829459feed17dbb7c93eff15ee6d3fc1c96f7f11e5ed6cb3b791fef653c4cef61791c4737055ba3add26474eacbd7c25da0c6a5fbcabefd6580f38750ef33ab18fe493cbd1f9247e94ff5055ce3fa048f4992f1dab47605e2441fbb5c7d422003c7e112991ef71ab6670d0a12a78fc86961515fd46eda18ca9594fd44d6e7fe1d5667d295ce8d4aff1aa66fd545f1a57baaaf7b9b882226bf5d69ada9c837db86b0fd0680fb7ee72ffb997c04fb3e904ce91408dba3005035b554c95693f5e8c42e956d1745e3f65ee1d9337d7702fcd87e5e53bf4c33ff8fd3ca0a6cfc3fcdfda44ca2474713a4f44634d67c1c30149379f85650d742caa632faee0d3c41ec0ed442630e5726f787eb2737872b939b09f78ad259ff48b240759802cb1fd6c50b4382b90506e21cab9f47ce96f69f89edd976de1b16c91ad9bb6adb58fd975099f3c47d1cc4bd81a5edf92c7efba3c60deb3fb0bdb82e07a8814df22569c9f50a5fd46586bf2ad07f6d9f746f3b5f17cedb70756d6c22c7156eb193cdcfb3ebbc9bafff33d56fdd3d8a5a1c26a39fa403e3ee83c039aeff8eec5883d37b1f4c797713e1cfe58933f0d3841f0ab818982020ff4c84d0fcc4d9fdd684efd1fa847fdbb3fce6f772868d00089b7c5e33371d08d23f66b309ffa3653ce3c7826bdedf3f4d07e2385f9b105773aaec303ff2a0477d60b6dd2a6bafe9ffe684ea760f4c13cbb1396d84ae997916cfe357cc4f00a88f1a00fb9aaf19d71c05ffd589799726f8c77ee6513eb00cf96348f30ee20db8748cdbf48eb7f5d616bcedf9ae7098de1d8ce6616165a277a4b781cc28b94af53de40083303fc3258bfc6c86a6fcc2691d787e8f3edefbcfeee99abc3fe137f0f91c3a5f04bbbdcef4fb46b2216bd88af82b46cdd0017537eb6fccfe268b5a3f9fbaf1486125ecc3130b9f1a9cf3cc3568a9355e3a777f94edf1c8a2eb52daeffe18f82e760190a4a218643bcbdf03199bbc81f83d7ba93134eee06be2ecbf07aefc5158af05b375c1af2f86c93f4e5b6b3da6177609a279e9ec14cd2b54e2c82850a16d493ea4974ded5ee2013ecdd24fccd4401ef2e3ca6a0e7932a33a65a08e7324067ddd889cd7a11d268333e5713b0e50c27f8f6f4d7e6bc9aa1387c6fcda7c65e6034bf7e97c39e6e0989f1bae1b860fcf8874b1ff191f617ef1bfb46d78e27bc33ae2ebc8b198c12f17b892503e497c4a925f92d02789b75358fcc7f31939da8b90be240cdfec490eddb5bf564233ad7ca21b577fff05901737bda09df9af03ed2cec37e39f7de1cebe085c178edfcf9005a5a6e57dae338f6e671c83c788309f2c71e375877f6c4cff982e5bb76ce6c3fce87a39a61ff4c0cc413e32da8ed30bfa9b3e1ce34a74f6e7b4f3e605f2bf7d4bf37a9eef3b6858beb29fa0f708acfeb3f1c8df53a719a1ae00dcb6f8a466ec2bfebbf909a22af8e0eca7a49c1d05dec580ef5d8fab73239e2d1177c323b9960fdfc0239ef3c90db869cd228a666243ccfa3438afe3fe10ef8fb931b0ee5771ce73dc4bab19cc70d9e830dbdc34dcc72cc6f4fcdbd8c4bbd10a516dfdb35eef13e1d771c9bb1b1c6f9659615f5ad33dac5a359fed541506b9aa2471d29d401d1d103096fec33d4bd4e1555874a2c8dbb7f33c5ec3795660d8419b16f677a1331e74594df01df46b21dd3fdab0d6feeac0d6de8af9ac57ffbd1e723fe5b729a53c6f7bca039e890377b0b79a7dfbe9073bd2d676f4274a31bd54bb8c7bb1bc043b20d10f24673eaa4ef79c7811b6b8bf25786a67e4ccfb98e98d03fa341af7754cfcd364fa5e53993ca1f3412705b211857631a52bced4116d051e9f24ee055fff54ac3b422f30cefe75200e4f2192381ec3cbf051e3a134f31b6f3da07a8dce5f6093e91847fde5b99b813b0f9ab51ed0f2dbd0b5f78c8bf7340b2e6fc0f23beeee3ffcf747de8ff04a5ff27c3ce517bffc2f868a6b2a4dcf5877d758f5502a71cf2ee71ff64fa082d2d97d335ee0617cec85f177b49c4794f1404737a79e6edcef9a83211326ecf0183a7ddafa3de3672f52456b2349a60392459369c1aa08d3ad6ce1894e7a5a3241a9fd0ce8baf95fe26dc6ddaedc28363260e85b773faadc620dae034614203923c2390231378a1ca1472f2b7327e0dff9836816cbb3d7d1af9fbfd89218f331ee707d96d4313cd94a516290be8a0ce31e039a26264eaee051a1c94a9a2222f7ce7a73af9900192ba07b001f8972690fbc3d3c9a3d41698a4c81499b2547de9e88d91ee3af8bbcbb9db6fded0770772d5fe925aa02f03dce774ee3b8e3ba32c3e8965bf4c828f5fcbd4f5d1bad131b687ead1bf40c2d0ff1fd8086a0cebf3ae3c1e53a4c87e59883637e6dbe32f381a5ab9f3cb001fdb53d8e1a2fc23d31aa5d194bdf0d18f75cf4726db68c83f895c2d873f00c1e07cebe453ef1b3ffb1e9d91dc92cb553e8dd47f1a6891df1ca4f3cce67be5c9b79a9427bb9faaf3c6e3e36b9c5bcff67b563c70b79fdb39e0cd9f58bf97b632664fa98278f4647f95a0ecd6735dd381174f6ea50f3f932fbfcf272d20ed634a177987826c817dddaf2bedc8c866c67cc01fb1a30be9f5d7573eb57e2dc7b130a1fddb5308e6372ff3bfc38aedf383fc073588e981517fa632facb2427ad95a764c9d3d521e45d4b53e7650b835723993e9d843f883c67c252e5cc6373cee03ca63a2477ea175dd93d98710ee27fc8d5ee1c597e31d391f733dc8bc31c29dca7102e9e44407956237c0a8ef71492fc3b091fcf288333b57e0abfd05ddefc386d1d51d3a1bfbc4b6b9df664a071c7a294af228b39e87d4cf459e0d1ebf67f5eaa1d942bd07a4e06c34f776f0c4a372d051be33e9984674f7872bc34b8507bc5ffdd79ef70fd3e5adefca70317c7956394bb2cb839cb6b3fdd9eff1acbf63523fac6ffd3eebd3f7500ecf36a0585c77fcf03ef36faecce4f5866f1bb18de69db4b5f1addec3ec99c3fd33a3c937621bb56ec1dcaa7d98156fd0ac4dbea2ed4299cadc0ccab86ea319c7e98ccff783e3a09323024c7630aee524ca5e177177abf3dd683c1e5b7e68f0eccde0f7a1c58d047a54c1d250f3d3cf1309bd468f13f9f48159a8ddca33b1e4e5fc8eaf37634ac549a2962784e4c2d92f0aaf873bc579b9ecc173de6153158788e37e88fd3e22d2c1add73f941dd87ee8b6dc7a38d6f5c13398fe86ab6dae35258fbadd518e2c369d73c8df21d7da877a336ff13b77c4eba4fabdf6a0cb69627078ebeb99c77a32240bd813ee818d106686888ed8ad0c0f41bdb73fb7de373b5beffab12e63e10b8ff0a9cd7148e533d2853c26d1112526c73fa1905dd72529c7bb1b34c51e5f7fddc2b2a3acb563b1a520c19b5341143bc1b986da0adaa0b160c45bb0fa2ef8a14e62b81f831beec5f1b4fc1aa2f119ebd1dcaee61cf6ed1955b19ea4e63e44125ff3c38f7f6c70801eec0ee5319f35687e01ecde652eb80c84b3db59050fdc475fb87ec34cffc3b3fc595f3de031fbf1dc1796df10f99fcbec23bfc7a3c997cc771f129f8bcf090d7670b7683f7a373c4ed60f4dc96a64f292fee6cfcfc2a3dd9ed27d75d557beb35c6f79bdcbf297df61aec7bc2eb3feccd7c1ba3dace764dd5febd9ade5d99dd80ab0cf8709500138c4faab0f2febc7565dcfef84cf03ee7627b07bfdac937ffed2cbcf9ff4e3af5f7af6e91f7df9f5b34efef94b2f3f7fd28fbf7ee9d9a77ff4e5d74f2777b81f60dcf5e8a7f1a9611ae72e62dc4b8b6739bc74c5e943e37f6dbe367b1e9ad497adeb854fbaa3d5a7fdd1cad3ce0c9be4b7a64bf26633b2a796ed46a49a8b7656bb79f80de5794eef382d31c3eff27bb040ad117b3ed3342cf47562e2c687e9fdd14f6d7c697086a8a7da501bb855dfd74c617956d6ab9457d9f7936dc8e895b5fa4212db7b6a7ca2aa7daca802726364d67e56f6367647562c6e408f8dfa9f015f7f40d22f1b78864bec4e787a16cb6decf4c78a5cf5460ffc747313f6ccc8e7f49cda13a83fe7ba61f4754a8f77333abca529f3457f635faf6478bffaaf3def8dd79ef7c66b0f7b83b587bdf1cae376aef08ae82b815b5d1b7d566aba2b8f38c315693fba472fd071974d5fff6b18d44436873bc3a8be176a92144c08186941270f8ce48d3e173a90fe60b06cd5e3b32ce9a43def00977eff80fff3368b27c63dbbaddb7ff539f9572a3236750bd6936d4f97cc7aec3dd75f46817ef3bfd8eb763c8afa5ffcb6688289a0eb81afd036f00f5a2b6665b5598b2c3f8766fe321e0e4efe29d2b3b3d7b0eb086bfcb0cb1b7807e158f39d3bd933e2da1fca7fdbc8cea7070f75f9f2f18677f791afcfe97ae1c08141edc544b9317d5d3267a0f93d6f88ded3f5cee73242e173c1c4f983e3ccd8c1b9e7f515ab756e676104832267806391b4de6b7a1936f2ebc78d9cf114ea5ca7f676887ef386c7d90c9db154770a1e67439f2950c725875f709d47e5341cbba7d1418d7a4ba79f73f3072d2bfacc0db10b145c9fa7893f0ae8adef5898dc25faea32c8e3a7e638f2867eb3f1f2bd0deb2c8236f4290aaca602c8fd96e2839f3dc89a7dd04b521ed8a2a2a8f3f6df858ed9edede013aaceb62a829be71e73b207a9bd01824acf43ee94ba3432c6a72b7e35def04ed9f35b89f2d10becce451df7783bf861bae3dfce68a5fad12d664fa1d0cb366f995a29e53a80dfdfd28edf614849feb1cae3c77eccd772e8373680637d014ce932cd283e951d990d2e9fc6305cac014d3eac419a26d892b97f0bb84be7feea613b2755273dce9a4e0447579f7e73c23fac9e850fa9f593ebe163f7f37b6f0557f12507e792bda70a944d634d8ee9cb95b949963693fc721fe7c3411d81d7b777834bbc8ab175247f0b343cbf31fce1e790da4047b6e217debf6b7c8455cb22b0afeb698a27f071b21ccfc438013d6745892a25edaa33fe5fd7352dcd674356656e5b7e903deacf0dec31981bbe81345a2f7d619b6ec8c8b0c8adb36989f5b4d961a592642080bc7593cbda4a35ae0cb99d9173f9b123cfb7d5c286aef8a803ece5437b648def291691cb3df4ae83e9696f40d93249c1d19563bc257762c881e6107f99ac64f75d2632f3ca180f4fbe6e09a79860b85ba44bbbed58992db759c582f579d3e6ccbc4fd0f5a32bd568bde94a177ab21861d05d452fe6f5d8dce9b4fd2c65cdcdd0982b388d3e3e7b64cce87458fdd8c860f95fc32273f8af332e0457de56aee54aacdcd993b77899c70b24ff34c9d432fa555b11fdec3b07345bb4079d1d8872cac81616386aecc72c4fca4cebd03aa31cee3de97d344badb88a44eb690f359e0c9acb23643615e5ea96b5e58dc09cf8d713d7a46c49b6b7439e61e446463c012ced6d73ecef4663bbf43bb325adf047bfe335386eb4881359eab15f1713e7451fb46cee45d105a358dc8dd09075e979c68245375fb1ff6c84bbd3504ba51708599971dc841643755336f94bcd0258fb45426a07576596a40f2d911126a7172d5240491f26f5ca6d93d8695f951ada39321bc8beac80d2ecc0a26e633655fd19891ef86bd6f5fdd29c039bf5da8753740b3bc9af8f3b3aa13f3ee0415849ae34a79e768b523b43960839fea92e9a81dacfdd49311765a8849245cce0532c712a377d8919ffd05aadb11493c47f6c994532bc88c4fff04d6fc175275b8252c68fd20abfbf8cfba257adb656dcb7e89f76ffd35d49889d9f588758a5d0adfdb6950b97e94c528aad6e1a155b87b82a968fdaf6747d3c474afac6ab5f9b2b090825cf48fd1b3516dc3443008e340a60efda464aa6e506ee3f7037258a9403a2d5419cae9819146e3236f9ee0d1900a9fde500c19d774d0dbafc0392946a8fdea59e728631dc94c546c98746f69115fd7344668def988c32a8dfd12e30363e74c1f38cb74942a03b2b9d995e239092a51a080563f64d45470f705ed4737e6ba3e5ad8c02bd66ef4bc649d7ee1306eee283d6104266b6d0a1cdded3dbeb633b4d63ea96788c118dc94734355d5d3d3c5b2af53b6305a45602eed845440e39706e530e30fcf0c30f3ffcf0af5b2a2adc70404013364707ca871f19a5dc7400e0abc8ec1cd433e52659a971e36226c9da40c9da002c89934b440e030ef10da7fa94b4cb601b89d0e88a4b69430488c1929de2492559f308c522311f3aee7d7612147bd871366ff2c48690f2897d3e4e215ef58c999ed84bbaef93758c7662fb18192e4f6a698e136bc81baa839b8e6e62bbc819f55158afedd0c4d2818764e569972727136bcc712d7f99e5a863428bde8ccdb42fb1a5d54b412c6d8975c57ccf56c2c78c2bb1d7e7658af0f16c0e4aecdb21a9f68d67cc4f62591d8b733e7f594a62df0ba136e677f84e23b1c6943624f52c8b3b24f690513744da8e517cc41261fa57c522795c3a62bf530b1f63e650bb466c929d3e473b239d31624f9ee3dfd3103da470117b4cdaab2793d7e315b17fe7dd4ea41cac4cc476db954fecacf2c52062c951d8c418628ee01f62b1499bd6f1b6a3dd108b4f32efb042b8501762f9cd39567260219c8458727895274739c7d183d8e3d02cbe2bdd075110db6f7a48711d4789b940ac397dd8156407c41eb5d26e34ffb0448949ea727642e8873d4347973c989053d7873d87d995be729a0f8be66907dbe1f754567bd85344f0a0c2988747293d6c255f5239a192394ae561cfe81776328795ec5278d8ba52fec3b49b7696bac31ec6a61029a6ecdc94b2c33e613990f469d68394aac35ea577f2d177caa38a0e5b089a2756f26d6aaae640c84da1b9992a39ec39695e7a75fceeaae2b0a66fd5dce5ddc7a182c3feb36126e78b549bea0d8bd45d8e9526e5462a37ec639934de07d1d450b561cdc198cfc4284f312a362cd7c133266e72caa8d6b0dc552635b9342b9352c3b662390e35a74f8c914ac3a2166a9e1f73de7ea061eb2831dd74a8d5ce718655fb82f426db98d38719f61cb7c2e4f018277894a1896982f6c71c64d8e34af4abd18a21738c611f0f625267881e7d871896109e3fa3e4ab9f1c6158633ee8d0542458c78361bfadcc154b99abf35f58e2ce7e7a68c734bf17d6e91cc9a919c5c3efc2f621e35fde0df9dbb9b087164593c588ddd3b7b09e66ea38ca9d5ba66b61fbd037e512c9d1463c0b7bce4f1f65a2f6de070b4b77d4ab31478a6173aeb05feca8ab515daa1d2bacd162cceea84244ef2aacdb21e49423935cd854d8cf4208bf11273caea7b0a54e0fcb51a92ed55258738a8ff762575a0f4761ef1c4fc58ff5c16686c2f29537e5149e7214f31b5be41c468e8939b80d3f6113893911433afd479db04dac8ba441bf72a34dd8d38459cc39c7988dbab1768c13cf32eb3e4599b048796c7ccd495fba84ed43cf55cbbf381355c2fa31e84ce7d0c3229a8435e733931ca6bfee13094ce5b114b9ca236c9a6452dc3ca72aa311d65811f43474d41c8729c2de5ba7bd71e6fa6388b04c9a918d1e5641334358275afab4f269223342d822ed7d9848b9f25c1096cb3e91908f09cbb5b1ef7e78fc396290eb80b08714267272fc4ad1fd605dfd20ffc5a609be0fb64839f57ab807ab78081fa7ff0f8df2605dfb0f3576449b18dbc1d6a37ba952544c1763634b713a98ebacb146d65508794bce2e6a6c36b72155a8e8603d4fefb84cdb3153d2582ac3837a5d6a9414426311bd1816b373655874c61a43df775c550e569dca93633f6988e36049751e17be2c8ec78ced5643bebfc8f877195b87140bc96c65e31b2c2978d447c9a3de0dd960d1d0796ab62e873132b61c887e449f89f418cb58c49872cad1c985500df648eac3911c215ace21c61279d557ba91e9d3600d363e32f11fc00c56f58ee3e4d1428e933f8030d6d01f877b5a6592f20390c17e532b13355c4cab0f2006ebec6ca8cf85eec643b1c791586ad29824df07144b8ee17b27f26cc6e713cb456a697ee730c1e38935e763ba9b102aa74e2796ce8b9a438e1d42c8e1c49a7b9f3c66ff37476f62efa41a345ed98ede9ad83af6eeaa85e0a9d399d84c25effc78f20b3626d6f1518fbe0f2b7e7d8975fb3a9eb18e09495b629b95f85d31a8a50757622bcbedfb2046dfcd94d83ce5ace639d389f124169fe0939f4a2be65049ac29c498ba1875d7d6486c1a220499cc31a5a79058ef74fa56fcc42f7dc49acc83d1a8a016733a628dd1d3a50a37624db729eea594626146ecfbc13c6c35f7a68bd83225b7334725bd29620b97a7ca431f9d2813b14e8839de60f9f24a12117b66e47c65ca08f921f6ebbd781d861cea36c4be1a7e1d7ae83b7521f690ae2cd96ab8381362f58f14ffe24d4a9b416c1bed2ac8450da14341ec51f418be21479e370cc4e641ae681f6800b14c5e8ba097925ccefc61cb9963fcb076b4d5d1a4f41ca7983eacf5e1871d6307b143860f4be9f44f5accd186cc1ed6b8b51c83e450d1737a58f268759ace8ec3f0e561893a37f7e1725ef1f0b0684a1dd52f77987abb439f39e4b824363bac97e3b99cab537db43a2c676ae1d1a598c3cee8b0e5948286548e034fd91cf6f90a9ea3d6835426873587abedc9ffcfb8c461f9d024e41c73b0102e70587534d54afa86e5835bab8ff29d866e58737645889f43e7d28625a5102755af048b1436ec136d3a444cab8fae61bd8ac8e71b34272b35ec19c2a4901373059dd2b0a68f893891591934ec916529e7888c589f61f5347b92d7d9292444006658d7f2c6afaa95e829538635041f310f5259fed3b240faefe20b2c888cbc00c01d0440866d222ea5f8c88cf01d63582c55548fde9c731cec62d862fec81c58b84ee93c6158229ae77a77a6181d60582368deca75a8fece17d6be647136433a68ec85ed3f3015b354d38fe9c25adbc16d65773cdd980b6b8c9c8377e4305992720b7bf8f1a7d833f982a9a7854573f4b77efd61215db2b0c55c297d949a3a4ea7b0b0858af982568eaabb1498204d1f047085258d7d4a55e1c30aab4cfeb4b8e1518535e453cb1b3b3de5c7a9b04cfc6d9c1eebb4d414f6a872929ffccaafa4a5b086741ab6833012d947614de17cad573b4aac406189d38f5a7517a1237d63cd7317bbb67328e1239fb085b02972f868f1b3c309abe6c8e3cdda15cb1bd384bdc37c69f8f4adb8bab1fe85e8879e438e4389b2404a8109b038f88d3c3001bdfa14707182ef22006f10001336dbeec062759a8ec497b0680816329937b54395b0a868acc7b9b1c2629c84fd8313ef103755e65091b07f18f9f63c6d8871ca232c1b6e3753ddffc731c21e784e1eb389f554c1226c731da76cb0ecd43d11b6ca6b295c2e9fdaed86b007e56372c124578e9a1016a95431391f3a3c5e82b0c72939f0dd9093c554b5b1768ecb41a598634c9180b0c41cda2921c7eb9d2102f8c13a17d63f6fdefe1cfe3ed8eeb3c39da8f989f2f460f35c2944da4f9ad9c13c5873ae1c173eb7833d57594899cff1204b36b69c37da99a2d5a4f9d658f27f4faf5ecadc552210801a8b450893f2c5bb8cfad0c1123d163dcbb6e3fcf03416db0d737eb17292e268ec1732d2e5b808be1de68cf5233fe4f23894143726075b6468c8d161949c4fe16089cbeb2cb9c88c25ac4df2db4fbda396b127eb99e8e8d0fc29c47f045b90c00487bbf8028b2b2e0470833df0cb3c55f94043dc065ba9c61072bafa48f9206395e84843ac1e95a97f8c7d22f5ade71052cac1acc12aa59e275d6f4fc71b31b67c9d4a8375e875d2608b1ed63b089952ab9cc1eaf1548a957215c612fa613337554aa6c81c0290c11e9ec653cfab28e9d20288c1da29848f6b2275103a42b14ce67852ccc17deac5a058c4d3473a7f85cbe83eb168ba4b95c3eae3aacc13dbe60b2172c2cae7e8c4f67361425256482927964b7953f2d4f48aa46c62d1ba981f2c3adc549526b674fd134d36a48c3d139b680a0dcf218769e103137b486bd19346fe14fa25f698368779eae327bd2db187a934345355c3a7be12ab7ebc39f0931cc6889c127b7e98529b1a27e235892578609395b12a213992583ddd85240ffbd11d91d867d5c3a358116f3a486cab69322b569c6821fc88757ffbc3c8ff34b6a623961ce71c7eeae0ba734723b62469fd62b4520e1519b1e4787c47279127bf88a566d379a6fb18346a14b1c6cacc39e44b97a1bf442c1d3dfeb9c90a4f1d88582f5ccde6560eb5a38758ec326de40f2e078f3243ec953ab13aaed9aab0146215d3d041fca3285d1262eb30d1c123ca5dc86a10fbd677eaeb20366c9404b17ccc410e2284aafa8e406c7e7add61aaba493e20f69a8de2f9367a188f608b2eb020df08106a238a3f6c297d206a2b271f21c40f7b6a8894a3dcc6fcfdfab08e6aa9a5c5cde9bdf261dffc718e2a068ff020dec3d2a93ca2f97a1c3a0c1d51e86195b4bc21471d9d673f822efe045870e1298228f2b0769cce6149ef241f5b0bfe2fbcb8a2015aef5c6c611f051eb6b01d5a2984ada6dc71f185177fb6602c56408283ca176054600524384a00c888e20e7b0abe9596ce263b8c2133a2b0c3361375637bcfc3fdad0eab6787d38fff39a70a39230a3a6c512eaee44b8fc3aa9c28e6b0fe248fff349f731c4239ece17eb4ec14fc2ac7691c16cf67b143bc201cd6dad8519c9acc719c8a1b51bc61abebfbde948b1924368728dcb0fcdac4da28cd41743e0b246dc39e9358e6de5497434c1e1bd6c91756a2498f44994b8e11c51a56ebfcfeb4bd21e271200ca250c3aa79fc7764237cc685058128d2b094f585529994e42b6781848886256755a6c6ccd7f85da0a0a80a0e40a08a4f4114675843d2fc89536521a3250ba42fc04041292f0cad60adb0228d28ccb0ec7c8aa9689672fc5a0507206085155e98800b2eb220644451866d3ea2fe57c71d6fee645872e09d428ede211ea6c7b0e45c1ead77947e3da51431ac6172cc1c69920f36fa61d83bc43c55edc33724c1b05e058994c28771befc2c901a8baa2d3af0852d46e8dcfe4d1562112246145ed84cb43f6dcd56b2b4c11242145d582ac679ac9c3b529bd50a2bacb028b8b085a56c788eec243d44b1053f8ec1442f0343145ad82f560e7979a93bd523516461f318e4a62a4344145858369aa50e693997665e10c515f6ea55fb60fc33f8c605175d580ba2b0c2de518c9af0f1943ed955582e6749bed2fe4e175f5061c9bc953521978760fb8d11c514f08fdaa16cacce1c27b910851436097f57f6719c4d0e13852d46c7a17ff0e1db2b14d64dd11b6d3b97965451bcb166a5cbd7b1a352fbea034c772a0523f6d073dc0979ce3b3b956211dbc9e43ca2f353d3a9148a586d2d8ddc949f4e4ea548c4926231fffb3b9e1ca652206249e2496286475bc9a2521c620939fa9b0f1d6ada4ba530c426fb619c57d5a5b1548a422c1d471929ed74874ba9148458be2c698abf79ca27956210cbdf64d8e88bfe2ba91482585379605a6120d6140f553c8c00b16d9a52b158513385feb07dc8f9b352e4876da2f8c7fe9c3385501fd64cb3fad471907be7c3ba1d4da5cdc9a3e844f7b0496a7c4c57776413d5c31ef5cf54c5b1a421d13cec13673b658caae988e2618b39514354e6f037a2775852c851b852edb05e8c58b0dcfbc072d4610d1ec43d9b4d9e3ae8b058e49ca7d4e2529ec3aa1dba36e4bc612a7258327fa924c9c76135395d4f210e873d8ea9a31b7fc39a1d36731ed548d40dcbff46871f9fe62077dab095e7909cbe834a5ab3618d786761c2777c1c6bd83f2d74aac75899d5b0d6c73179369c86753b7a079147c39622de99724d29ceb0e4ca749f3cbc2f46530a33ac65f6e13a67b4279a529461edbc7b9e3eacbf23530a322c1fe2336dd9a6a0674a3186552e562ba5730eca4c29c4b0e748aa3bed4a4c63a61461583d7c77756429484ca61460d843e44cd8fe7918cb94e20bf5e420ae4894298517368fc3e7f0f3b0399229451796fa1c07dad176983a30a5e0c2ea176b72bc65934f4c29b6b0555c9ab8bbcc0e624aa1853d7990b43c4a2943c494220b7ba70eee32e4b11b4d4a81853d7a74a2d8ece4cfa41457d8034bcff1c5ce9c7226a5b0c256d3e1544c3d8f534c4a51853d4f7349787e84caa41454584a4b824676f47f5e4a3185fd3e2ea75ce51c532ea590c2da1526f742ee54dc528a286c32195366c81da75a4a01853d0e1dd8fc763cf2594af1c63a1e44632ce25d8e92523c61f9d07b3e4f6df257520a272c17ebc3cf18ada257528a262c1123fa474952e5aca4146eec1191e3b05676f12a290513b69421455cb21c5d959462095b8e77791e9f5ce6544aa184f543be7cb7e13cc7a19422097bf5c6cd57ce1d93520a242cb1c31c7c3a082b214a298eb06e8ea9bf3e555a4f520a232cc9a2576dcedc9373a01445202a4a843563a47cc58798f218c21274f4b473501e470e21ec59dd97fef143e220ace972de0a5e151dfd36f6da7cb7b63d10f60c75ab4934a6f7fe833d457fa6998a0ff6eb603384aee99bbd07db07a99f73dee6c91f1e2c996e4e673be6103a3b58fe53754a3b4ccfcdc692ac639c4ea9cb905e63914863c94c7ba3afc6ea19e3d2e35039f0e86009a11d3159e88832a7b16d8afd93438dba0ca3b1a6cee13a78f81c437cc6f6db7d193b34078b78987e144ac756c5c1ba712956fc2896a29ab1e4e83b5e786419cb0789b4dd1c47e9cf1b2c33fee17fe490e0491b2c1d584eeb17bb6c4432f648162a47591f580ec758d30727657d99c3b906dbe58a8bd41931f60f3bfae02b1dee6268b09c4ff47e0ed387c5483183cd2cc874ce85ce8e93228cfd434c8e61f9728e392964b075beafa9fd1c84eda488c1122cecfe42481ddd168a7572ae53e730a7b40d147b481d46b4cf9c1f669fd822448fc35508f59079623dfd1d9d8c41f5523ab18845575289f21c154e2c933979fcc146fdbf36b19eae048b7a6962c9beebcf9cbbc3af32b1688af8c1e4189d5961629588fd13993e2a07e125f6384a9e34ea96d83ce95427b56871532516bfeae01ff639a61025f6fe487392cead4fd124b60e213132e7e9ba0825b1e7e043e41cc5a7ef108cc43aa539c2245548254148ecd14d07c12a2c628ce02396281b8da93194d7872396be4fc9af8f46ece156d4e588fd9fe38cd8d2643a47e64130cb17b18c844bd6513968ca15b187f161ad4ec41af9910395689d9123628d4ef16e63ca268f436c96d3a3b05d9da71962c9cd9dba2b2699542196b8141a3ae88fa37408b1841cefc7e145ccf218c45e79c3879faae93e41acda7154f2e40b637520968ef17b3d8e37d20362ed8e9d956bef52f40f8ba6be0ffbb2d32ff6c3923a83fa86983f3ffab0a6edd0ffc3c7e6f9b07e6fe53885f2b8a2ee618d6b913a285dbdb81eb6d8272942347dda79d8f2f73b5d784835f1b0e668ed3ce420c6d1eeb065c54915cf3aaec50e5b4afb0bfb414a11c93aec1daa4e075f3173071df6bdcb8f8d95fe73e6b04dad4714ab4db1e5b07ee069739cc358c971d8b6d424e48cd479c261df903eec7c680af086ed247aa6afc75713340570c3fe3187e59fba9ba5310568c39621bd37eadc658c310560c396e36022a3736bd823ff484473a69082a78625854c3f99f34a7c581a961c24c5ce9d2184bca16115cbd5d381e548a69d611115fbd208fba86386552c85c690e49fd2326cb129ee6c24c3923e163ba4bb0b9a3286eda3ce90a3c8bfad8a189632f58bf1a3c2b07ea89b6e3af28b6b81618fd7a1869ccc17f6ce712826e9c3c931192f6c2b39c55411992e2c9db36643895984c970618db19853e4fb582b992dac51ea439d0e1e9f92d1c2164d43cad9e1d7473259d836c7232f8f6b2f2283852d65c6f2ae24927662aeb0475151e329d54c7e5861f5f5a0bcb662a2e7a8c2be1f6f8839554e413ca8b0a71c5b19c5ac2a784c619ff94937f39bab1d52d8a3aafc41de35dfe888c22ab9232fe70389210714f67043c80fdd9db0fd8de5aa22f948ba8e24fe846d6ac464c762d5c771c232631d628e4f1d3e4e13f69833223dc73c9b3f6eac9f7269520c62a33713b6e8c80349a1f2c3ea252cd163c40f82471ea995b0a47d46de90ac2ee6246cd3c133fdeef49c8c8435c57886f49132357c84ad33650593c8417d6c84e592458d1f55f52b5c8425f9c609f94e4d2f26c21e4ebd42c5f3da8c0e61db20493b47a40c960a61fb4c9f9fb132473583b0d4a64efc20e73834d9c662b162a759cb313d0261fb55b9ae188b95c61facbd661ad692a48ad1077b7011233f7765da600ff6d99c37e6f8476f431eec1d496f72bca12b863b58a77f5388293fbb62d858627274f2143cd665d6d826f5771c5a310711a3c6e651e3e31b9310e3e96029514fddf598e92e8d357e646d976eee7668aca146c42e5cc64477c6561ec7af60619ff296834d2a65456e7890398683fd839c60e13663aff24aa9b173649932b6501fd1c94a724376834537cca41c1f64ac8a0dd62defb8f9a67c3445c6a22963278f52f8788cb1cc448c534b315cbe069b9687f737d315408cbde3b9ff0a1e64b4e80a40834dc3ae8a799fa41ce40a30832da8d6946466a44eae00616c3937d96c590ea3932b800c1649ff0f25dffeade40a1083b5d24cc79c5e3a23b9506c7541fec22647d9c8816289fc4cfef9a51f7e7c62bf1ef351d313ebf4f875d29867274727f688a1e38f6553273938b1871b39e8debcbdc8b189cd83147fbb92c6e79ad86f55cc92ffe588676209311e737390d14b4c2c32e12c271ff130f8975862a458eb0e1effbd25d64de6713839d4dff495d8c38e537c1a1f9f3c25d64c19429e7a14723d89f553e5b8667743d59258737c77d51fe74a518fc45af3c1a6b014354487c49e3407a392673b84fc119b67a51482c8e7998f23b6f2482acaec2788a7116bee0c13ecd662c71c466c125ef2c97c73f0e9452c1e4dd44c851852b322569b0f3777ae7c94e244ac19257bbf292296f48f326ed3ffc5f4108b4532b10f83c8c5d4109ba79210a29f85d8e2ad46fef930799e84d8469387569b72de3b07b16de5e987a667924a416cbb2177044b763ac940ecd751873d2539d21401b1c6ac524f29452d06ffb05ac4ee1009c163423f6c792d454c54cfdf317d582557c6184da2936cf8b074475aee50b53fd0ec610f9fa39897bc3785460f5bd6e5fcd7e3c187317958cd2f7f84fd8ebc3f3cecbd9e772e6f5e89df1d56d3689bc65357aa67872d27cb3974beec53af0efb55c6c7e84037afa3c3eac16da5ce550fad9bc392a55f3b5931ab9b1c96383b65b23952bf2c0edbc7e5bfb1824ee50b1c56ed2084c5541772bcbc610f434f6fb33a57bedcb0c789d2b9a2a31cd2d5863542089777b261cfd1d3a6747e0e34b58635366974ec9f3c9752c3be29a96a49c8daabd2b0770af30fa6438fac42c31eac8a575dc8c1e4d019f60d92c355b0350b9119b6f81949a33adc4da80cdb5944e85411ab76326c591dbd3bca2485898d61cde7610c3d1b2a36c4c4b0ac46ea799a858c110bc316351d7db2888161cf71ea70e3e70fe27a7c612feb95dc29cd1c7678610f3649f95ac54e97a30b5bfe28c5ec727061fbac348db3a12aff5b587257fc9c6b994e7e2dec390c2168064926e367610ffe54a3c25d5fcc63618979d22e761026e7fe0a7bf06429e768b7c23a239122979d4ef42aac1e29b173a7fcab3915b6e8a9d4424e172ff2292cda9f47bcabd286b8145619cd381f29278f7814d6f8f17ff0a4e1f6e340619df4a3692a57d0cf7963f5d14f1da778f239e7097bca618c0ff227fa3e4e582ce5f0e0e4d3842d258969151b63d5e3c65217bdf2317e637a98b055e81ce6cde935762f618dcff2f4977345dc4a586fa5e28ce7380cb193b0a40739e5307a0e346c24acd1a3dc49624758cf621a8fceb8abb41156adf0d2bcd3f17314619bbe0f72fa38d258136111e989b172dcdb8a87b0edf996a48ee3283e42d852d6c793081b430ec2968394cadd0d1d9d6dec49aef73ed287c95220ac661e438f8528ddff60d98e729c82c729a74b1fec9174bbae2327af3d58e7343ecd23cbc1c9833d84142bade4225a76b0f789e67866317d8a8d3dc5cc614c5f8e325a63bd4d2363e126f804d55853c871e7dd880ef6f49166e56fd258525cbc8f8e162c66d05837a9de89a7c5abef8ca564f3f3a6ca91959783c54b53b0c89f77b5e1601b9dfc71a8b3eb50336331cdaee4a795b16de40e553488467e83e53ac8109f7244d0065b8e54276654bed02163dd1c8464c65b0fd231b63861fd77743ea35283a5264ad86471de3962ec792f3ca844de4883bd83cacc4d9af3c39ac13e9573fa9453a53e8c254f4415df7408d93051e7ffc37e67b2f9838d47e9fdb0e6e98a579d738edffbb0ca6427599d0f7b3c736779916bdcc3d25933398a3821c47ad8227c3ad373fc787958746d3227574e838775ba4726c71d788af81d1629b11817d13bfe8f1dd6fd5c13c143d6ed75d893ff744ce1830b0d1d963cddd1a6522a4a3d873dde5eaf8ecbf4622c87b5c398fabb72ac300e9b244d93c38fd7831c0e4bea1c86f39b2cb9f50d4b0e352ce79ee4d5bb610b9fa2964c947adab0e420cec69ad4a5d9b057b88f3e9f5cc39e17337dbe530d5ba490b3520c1e4a30d3b0ff49b8dc0fbf94926858f3a7e7e7981729e5199678132cf73b8ecf47336c61e1ff61e5ace3f028c3369ac32e0d9ab6313cc8b06984a8f4f9273c081e6358a737376ee6f01d670e31acfd7176f362cd6de608c39e22fe6ca48e8dcd1c60d87c32a58eec43cae38e2fac5d951ff22ad3a9777861d3d89983ed0a39ceede8c2a25a55995ebe12d9c1853d6677e451a5ca172fc716f6c053777a4ad1c29eef93e4706ca6e3c8c2da635bea21670eccc2c272f239e7a51c7a0ceb0a4bca495cb3b1f85b59610f166a327507cd4a5561f54a796bcbb6b32a2aac99a3abce172b624c53d8b33a9cfdc79152468714b638fb6575a7be133aa2b066dd54940e2607797240610bb13bd68630d192e47863bd9c21a578316c5de478c2b6ddd539e5e6fe76c2962bde8fe5d6fcdc843dbf335ffc8f1ba36e2c6a19e36a43a9250f26ecd771a192580ca93996b0a58f196643e5d0cca184354e23d679fa897724610f75c76faa3b8ec8818425c5aee460b923a5ff086bc518e7a3d4e1e3f946d8d3e728ec484a2a992fc2fae9fccf4f22ec97e7630eb3220587b05af028788870156284b07d9cffe3ea0812ba202c35e239b0de74ab791b5b67463e1f08cbc4d2ff8dff608b92c2f7993e5833523aadad077b28cbf3ab0e0f160f2347f8f07cc93a3bd8833c396847878d3d4e24778e366b1f6b2ca2293a65d27d48abb1ae89af87fd8fa0ea604fcbd1c6891c88499dc6629aa3f8705d177d34968f3e8e1c7a23f133960996c393f3f0389383352b9e57ee474c1b0eb6e89495a398dc5d99b1a6ae305bb9eb730897b1894838cdd01b0137d8d2dfada5c9ba58ea23c006dbe738667d48771cea23808c3d721c19514c3bc4e823608ce3782f7bc6aac1e621efe5cc18734c2ac6daeb51795cafcb0f1aac323b51a1d2518ccf609f3097ef72328c2d89fe987d29832d784a6173d8e93a1e0131582b54d97c3486628d1ca408fd3808b32228f68f726a825fca4df113fbc71d86eb10a726849e58472bf96e4c1f4c349d584dd6cf3fb8ff58194e6c1f55398e913b68cc6d62d38fcf82a74e137b7fcaf1c711c2eeba4cec399966508b4febc0c4561ea7ac3cb4cce125f6dfcd1c69c47011b4c4fab9ceb27fc63a8c5562f1ca9d3c9dffdf182556fd2839f2cd245655dfba8964953e93c4769e7374b94ef62f1689a54fb43286303b1183c45e7deb1d4c5cbc7479c41acac34eed68a953c511fb85e91c776fc4be7d691e91f3429c11cbc6c86a4a0c29d4b58842e8b9f839b414b17fc741caff1415622a116ba8247b1fd7cf548588ad3bace9dae61443ea10abc66946d9c4920e1962f9fd4e1d245988f54b23e4487e262111628b7197392aa6281d0d620db7b9e53f15bc428258d2d37ed75264ee201f88556f42dd8701b177848839ae1c32af7fd83b7c283326d99321ef876d3af48992f67359e4fbb0c5ecc41c9530f5e1c37e17edfee3630f5bbe781ab6ac435a0f3dec619bbaee3bf2b07d54a3e221bbd11d78d84a7b2e790736621d7758af42f2f4e3f941fa76d86656b462e53091f93aeca9e2a763eae9b0779c1c457adc6b397c0e4b8490bc149ae5b5cb6191cac8aeb0d152f3382c17b1c9472cae87381c560f5725a78ef386b54e356299c538eb71c31e9b369de5cf48e669c31e985ec8947534e966c39a22276e245398acd7b0d54ea79bd09baf6a352c16374f63471a96dc1f59d824f11f47c3de1562f491dd9fce1996541923557c94a46c86bd32a6144da76bd3322c7dbaa9b5a7aa1125c35ae3a9153907313886657432736893f4728861fbb82a954a5cb49c30ecc983cbe166c8b0351896cf94734ab92148e50b5be94c9a4d0ecb497a61f5ce89b9e75f99ecc23a97249a7a440e2eec1dde87feb518a3825bd856c3858717a385352d5958339d07aa219c760a0bdbf94e8a76da5f93bbc25a3269532ce48fe356d8d4e3182a35e58d9e55610f62fcf023d998785061eb70513a4c18cd71a6b0488ceccd633d1d96c21235560a89bb9e62a2b08776963ecf2c3da0b056ce311942f4385b7963df18eb27770a397ec25ae934a95a86ea8e1336edf1e88ed7b95713b6e461980e25d36c7263eb38ed4a488a09ab47f0d5fcf51296483176cf5c79cea184f57c7ac564e3c70f25610fadd344c69023614d21337742a6ca0fe247d83f63764c276e8425a7d8c739bc8ec2867811d6cdb9fa43fbe34dc489b0a7d19acc0f8b348f212cd1e3143f6af8e4cc2184d542d75da8db9c1d1f845572fcfeca1cfdf2dfc69a39e275fe70202c1ec7257b4956fcf71fac95a5b715e5b17ff7c19a37caa3143e6d87f11eac97d142c761ccba721eec69ab39ec0dc994e3ec60cb71e8e4e7390789331b8bc64d9b2b5f59fcf01a7b50a9ef3fda6aec31447268bf7e27b20ef6f360acbfc27ad4388dcd22a8871b9739654563b30fd9982a4e2fd633d628bf9e83a5b01ad31cec137c4f344f8772220e56bdfcf03134638d91e3387f12ed4dc132b69c52a44483a54ddf0dd6ce713efa143f87b9b3c1962a86501ea4c7611d196b98b8fc156ac3756c8c35c79723c7e14c6fbed460df602155133f52bd88b1c41c7ea4d860b755a1c11235751829e738bda366b044d5ca39f260922f7480309694a539c6bb082ad10164b07ab20e4db362c771720e10833dfae83fa9e3efe091138a35374ec40c91e3f0c801c5e629c6be8f2796efe313eb7a9c594fb152dd872796ab2dcff4e127db8e4e6c9da152d9fd9c583ef22804c9d0e59bdfc4363922369653a8ee35b16598649795cfc49a51e5ece43e0c298f893d6c4c7b3177e63efc126b454d86b88f427edc125bce393a52fe7ce6782516cfc168e88b792e734aeca13a485e39c73986f824961cc46ff2917cb71f49aca69eb79bd29c794e24d6081b7535c50af93c9058a37a84a928b934721eb1ee5d69a61c5e081ded883d87394a537c9839ef46ec71189b53cc11466c218848fcf0d2a379117b90d2ce040f3f985111aba8954efc50135d22164b9b92edbdd41546c4aa1bda21ac6e3c890fb1459e5f6c280db149784839ec864c6521f6c80917bf27a4774a88e52c82c771740e62c94e2a97e714c45e2b1f36ca2bff2603b107511fbda348f73109882d6d54a67666d82fffb05dccf051c4b8601ee88775d33e99c9c4e441ecc39a3aea2ec71d987cc8873d4fc7e6eba8a213dcc3f61dc594a71d3487460f8be4bd8ecbd1e4464c1ed6b3adbf558f43cfc3c3924e3ab85a0f72f2ed0e4b5209929f32e7ddcd0ecb6577e839bebf4a5a1db6398b4cf9e97177143aecc1ca82c74cafce29735873ee181a9ba26717392c31bae3b8ff2aa2543a0e6b058b61be3ffa516938ac3216332b59c13cd56f5832851c9575616155bb610d5e59a9a9ea362c9b739023d30ee254a8d9b0ee7a94b032b963887a0d5b56ae0a1562f5e720ad862d6528db4ee90b13e934acb124868941f5d23fd0b0c7f810992c690ebde30c7bd9e4205559684d0e332c93323753e3a7fcf8322c172ed58ae7c9b0079a37cfbfaebafa31ec293f191d8e6e0e5d0c5ba8b0b4bee1e4531e86552ae946b24cb13b0e18f6f8d1fcc7fe8c329e2fac3d7d9fc3d8f1c2e291a610528877983a5d5832e24f9e928815c385c5e3e832e70e37666c0b5bcad7e6d5f4714cb516f670a1f24fa6fc39a4b3b05cdde4ccefe8831c2c6cdbf9ac42e62beca963d98aa9faa6d80acb4fce76ced12a186fa6373baa545845729847774b47a353586434aaaafee2f429852d336d47d985dc9c51584e7c4f729cb8b449286cf21b367df030d7976fec3f6162fa585bd3e3139688b8f933c6f3e3a01396a93f4bd71d85fcc126ec216c2e0fe4a30f31e8c6f2d5d7f1714f0c3964c2be21e93b734264082e61bdf4419818afa24250097b7f5e46f00fe17298246c3185fa904625d63748d86c77eb3b4d2ba8e6084b8a281f1f1a23ec7de1a26e985477a6087bddc7ff9f3a58bd1822ac13430c172f3d7f1c37843579988ee111f1719c10d6b12015391b3ae2178425044d6bd6b7e1ee6b63b3ff9c1ec20784252de6fdfee8cce3d80f360fdb8c1de74177cc07cb547847b21f8454ad074bf48e967dbe0d19e3c19652978712ca772ab6833d48333fa98c8d7562c418c9438e62b9c6de31468fc30ca3e3153516df1cc5f27872f049d1c1ba5ba5a54965ceae34f6c0927510343acc75a1b1e7fc51ce903439e6e98c3d92ac1c64e518c642395852924761fdb37a278c8325656b2246089bb1674e1fc60a8f4cfd2863bf19912c6fb007f97369e4a8381d1bec1f354482e7568a1d64ec413d0812f4f3c7636c1da1f7952e78c8d4608f26aefc23cdbdd68bb17f9419d77fbd2f070df638b503998f186367064bc633bbb4563963185ba40969e30690c11e69e2458f52f8307303c460f528c7b73bbb2fe6a158f2c3ed0f66e38e7f40b1a7e9f5e4540f1b3d9fd844434aaa31b7e9694fac390e93c6ee7462ab085ed2d18155d99cd8628a4aeb0c73e76f62cb0f7376d9acf99a58ec3ac2c5f0313e9a89fd37da582e1913eb5f8a1723c27a89adfaa3eb3471213f542db1ae8459fc8a58b6ab56628f4a828c460f2a1d554a6c72b91f4a9fc50f519dc49a366da9e8a79494542924b166dc08f1b496830eaa1491584cc3476708bfb9419502128b050f7c2c7a241f822ac523f66029c7f9b50d599f4ae188b523ef8f23d8d4879e4ad18835c5f98ba9300646a0c2096ba7fa64887558eb8e26aca2a9530e6bd2871a891bdb444526e02fecc1a8e28a2aaab882055d3c1819a8e28a2a1e0c2dd803555c51050b7e025978c111a8e28a2aaec844019f000b7f222250c184552f42e8aa2f89c8f012f68c9fcfafd654c21e39cf6ce61e09b6c924ac69356408d5bd903e2261bdced1f44ceefc70e311d6f040f623fdfc683dc6088bf5569757a418139b222c93f3a7c71d2e44d86653d45ca4c6ebe410f69c52cb03f54849a71202df61448e098bb2402e0a6d0561c98c102b7597a6587a1b7b10b71a3f0eb30e5606c2e2c9fb72089746d3ae3f583ace3f5153fa60fb3865cc8d9a9a93c95910fdd982bff0e2680354f460f9b072943e88a61cf387076b9784603145cfc943250bdce2020506165b7051484b40c50e564b9bc967d7fc00156cac255d2315537834a17faeb1c4ce110de1a28484350b242cb6e053448de5826edabd9083b4b9b340ca0e50a1832553fac8f1903cf80da7b1c51c3b920c0df621d2175b90e004ea012ad078e2a64b7f7a93be774384d005549c61050fbe1d5888ff0509ba5041e9a204e00d2a724079ec1c233933475f9c4781175b4800bfa002075bae7707de493a5ab4b240b2001566ac19372485c7916455e7220b2cb6e0020b2f947c8b0e5861856bc14516c5032acad836af687914342a7e741648aec567b145176074a1ff82bf00a302c6b5e0220bbbc19e3cd4289237c5b464143ca08a2baa7040155754a1812aaea8e201565851080b7a2d9a0423d8028c030075a0c206abdd7ae88e3f6a9a9d1832830a32f63efb1c85c89d9c9eb2401ac11624f882bf8b83c5a7400b2e324140c5187ba6ec5077328265cebb40450d568b933324e7e60f5387b94185184bfc9dd1649d539e03ab0a54d060fd4cb3a94da93bfcfc0c36eb204a8a29869097838aa80863b3bc99a9535a8e57055021833564ec0fa77f6381c59b804f408a02800615315862ac10cd6187129d6b28b6be8fa953738e381ea6a600c5b63e41237a244ef18935e3fef43b55ecb8bd8d293cb18794c39e0e238a7d47590aacb0c252503e98a213f64795272cbeee2330a6e0c4122e7610c2c43da330c526f68f49f96246d2c4d239feb8116665ba2699f0e3983b15638e42cf9f02135b881fa379e878f34bcd02c98bd6d2420b067c175c1cffc61497d843cfb43699e483f49e0562f1c57b915570000257bc16cd2628169c2dbe8b2ec038852e006c4c618945d2e648e6afc4f39c9528a234984808daa19d1f2d3f934c6cd9c56fb105098cae8c2928b186e75043f78fe4289a1a534c628f23f3721c69a4204c2189b5729fdac6935a9b1d0b32c1e1428bbe430224344524b608d117711d9058b6238f2eee490ed2fd8f5863c29978b0e557c177c49ad4ce3bc2878f59f946acb99bc94ab3236e9e115bf5c5f438c57d11ebc7f184645f850e6657c49646827a9c4a7644e389582d267e8cc97244ec67ea719c2983a407f143ac9df3ec785021afe6c7108b47a4f5ca49e88d9e422c2a793dce7dd1217f87104b6ac41cd56f78104b9fa747acaab4bcb720960b216eeaa949d0980ec41ead8e54650751e53520d6b4e9e5397e94ea8f3fac792bc57e58ba2ca62cef8eced3dc8745c34a8c71bfa93f8af9b04aea3415cad73d2c55169d3e1126b3523d2c134e721439089619d23cac397c5013d629e7308f7858d28e47ea28472395e11df620071deee34a41b6827658925a77fa1c2a66fda60edb0721f8987a7f88694387cdf3dc7ec6a789239b39ec818ec5f3d41ca4091a396cb39e230f2f95946d4c1c564d66492c6e9cfe9081c31673f5fa43cb91797ec3926ffb264cd4078dddb0c781688c132979a3d9863dea82646ed869308f0d6b071f8e76da504be5ad61491ec4b421e6c58fcba961f10ab9a3b4954bc36a67a6293ab33fae43c3161d224494d0dfa9ee0ccb9e989d46f5f0816a6658e3a6310f49fc23a6568625cf63d41e9f58396364d8e34bd5d192d818d6499963fe686127aa62582fdaf46ab4fbfe9812862d76904359943fb9ad8061ddeecb9f9263b2dca92fac79511e4992ca0bebc43c9683db32e999bab0c4eda895a30c1736b3e80f2fada6c3b7853d0c51d5157a235369614d7256973a59a49050169608e641785c2a891f0bfbe54d921634fc9678853dfc9a939cbc6c5208b182e2f9fccfc28a555c514517effc11a8820314a8e2e0828b2e30608515f805175a78914998a20a9b566f75909bbee5792a2cbe92c38b8cb45d964f615dcbf2ff3847b14b1e29ec81eccae6564cb48f8ec21e2774e0a9e360282c932b39d9696ee8cf6fec232947f3c1e5e6e9f9099b4cdc88962169c64d9db0c64d1aaa9e4ad64c6cc2a636a12f767472c373634f9b17927f3df828774cd82eccd907aa16bfaa5bc21e53fcb0cce732e2664ad83bdfda87db9724ac11375a478d1739870909abc74d7137ac488e37248c298eb0a84e9cba0e7d52a84a8a318511d6baf1b38acc93ce714c5184a5a324e738253dea9e0fd04015e78516283801094e30051196747d9fd3d1e730f8c5d89862085b0a1b1e9cc46707c917c262f7535b313706c01a530461eb40e43473e823fe812ac0628a36b69c5c757e7d39d0942343300510b68b9dbedb61119d823f58cc62f2ddd8e70b2952c5075b8ae86311b6eec11e9eb5e2393a498f0a8c2978b0cd548ca9e27d59ca1d3bd8223d487d913ecec15353b0b1e945e5386773d658726427fd5c1dff835a8df5e2e3f07d79192b953ad8fc763572e7fce3652d608a34b60f3ab93fe51c7f8a1c68ac19f245e54dbf0de239638f9207277932a57394e6c08dbaa49be14c1cace9a2030f124a3b5264c6e271709a24bbb76248203045198bd9a7d9f818390863df600ba93ef8404fb43c8e6db05a1a35290f4bcdb492b1580e39902a0fd263dc8cb175ca90631f73ec865c0dce61da85aec7622c6a6527d1637a88aad060f93849ec088fb92c5c33d854d37cf00fdaf15c5384b16f45f378c277e6e58f2964b0cca5e0c157e7ca8839a688c1e6e3994394e6cbc81da1d8c3948fa287719226ed00c5221ee22c62ecf8c41a9265fa709a5f5d393cb149fe4888b1233aa58e4e2ca1fd71249da35d9c1c9cd8d3d7e3a3ced77ae4d8c49ef155c1a26c59f8d0c41226da64ba8ef1d023139b7620d1196f52ac0e4cec533d213ae6d021f44bec717433d193c748e796d803ef18927d4e25b61c22ae73f4897d1f4a6c5e9b62871e460ee9249614eaeb42ca9e095312cb65cae1f7d122341989356d69988f4a482cd7c1444f1fc4e8f923d6f1387ec5e31f0b9e23d6a85d9bd2956fc412577f1937f58cd84a2bc76108f1038bf9223699d20a9fdd992354c436b96343da5c2296986ad61d07118b05fd0d491d620d2362993ce48658353744eff528c496172347391ed9ef0e42ac9943d20ea2f496e60c62add2dc134b935ba220963c97390739ee946402b1588e7bf146c7e607c41ac34df5749cc32fef0feb0732c9c3c98e2e757ed8032b5d4d15d54d963e2c1d556355ea9992c9e1c372eac186102d7a9c42ce1e0ce1213bde1c871ef6d00d090dff30553e0f46c593f0b0a4d0398e8e39c3be73875583584c4c1183686d8755c534eee7a38905ebb087b6551d07e1f932d674587369c895a399147bf51cd698aa1f07b3b9d7432d87ade6a3e4bc48c76193f18f3f54f6cf030e6b0c15ed724d7392c71bf692fe206944e98cee86a59356af458e36ac7ee771657a980ddbc97a0ed72f527a9ad7b04589544fc97292a5590dcb879ee6f892d3b09e07e363e99be44646c3166d2d5afca854dff80c4bc41bcdb3eec8336133ace69bf741ba182178b40cdbc4143fe78a21a11625c3b6623a121d8e0777e918960939622a75312c6a1d1aacc30f344718968f730e29781866ee03c3261f449e89aad1e35f583b180f8f8a14315ee985c53bc2e3d84c9ba32abbb087f5f1e85c6f677d70618995e752d08cbe726f61ef0b213d92985eaab5b07f4cf01c3d77fca19a85c533aa449e0c6261f5d895a591f3895d7885d532840f9e2ab4c21e4978182b5518ad0f538555c3e4a406099192830aeb47870b7ebf111dfb296c3e5119f93f3fbe5f0a5b5a478d1ebb89c21ac3268490d261e181c2da9bab620ad5bcb18df598863b0f3d45f3842de3524ee9497398203a614f21e7603c6788e939d3843d0a7653d19d7163dfd4911ac1626c980c13568f32e7d34ad6e18598256ce2f3714e859cc8f994b0ed6a85aa0b4f3ae14bc26ae2157f73e598d30e097beec4f01aebbfafdc11360dc1a63f8a9655216784357fa8950e7e2d7f5f842d6f62453e35db701361911cc885ce1dc5f97a087b0e11329f4389926a21ac3fb31f1a5b1096190d5ac13ec47ca1b5b17a66059bacd80e73068435afd7fd4741d24fc57eb0f5e70f6f724719ea321fac1d47693a744a193a643d5874d2c74731653c586235b473cef81592ed60f9142592c5598a9067638da91d4dca9f7d397c8d4d3f4967ca37f94f2f6aac13634ca927acc4e83a58aa2e52b00a69d249308d355f480ba252172f476355b5149643e930cf59ce583e98fdea149a73768e1ce87f12ca3fdee060bf1cf751859834e2666cea2107f9a032c7c152cad8439d5498af28651e37587d3d5cc73183fe6f8345245847a93c197bd810fe533ec6d6973e9a920491b3064b94dee0f5c1cac68e185b8a90a38fa3277d070d368f2f85ac701dd799c19a26f558d2983c7287b1cfe68861f9534a9365b0c460371766560262b0688e2f5a4c733f365628f6b0edd451524ed75d81628ff437e4e82624cdfc27f6901e4e7af220adc59ed8e2659c0ed1737c929d58f4baa3cdbb1027360f3a7968f91f761c449b5823a956a654e77042a4c478318657e7c8c492d7e187771fd7c7e198d83f47be0aabb973ea4b6c29242f93f8c712abe68f5e456f7aa82bb1c7415f768a2acf2325d6abeb1053a80dbbf024d69daa89953e2add54129ba85facc5ccd13323b1569810e2cfbba786c41eee7c4cb9e023d6c81c31736a1cb186d9ce91f65fd8e835629f8b1ca6ac581776462c57953fe5909b3b688b585358cdc99303e94b51c4d23951525c94f83889d8c3ed4d871863d32a44ec973f72f27f5384d02196ae148375c7392921e47c0ab0507a00020cb1d9487498ccfaf03f0ab1e945fe20a7a7899d83106bf7c597e68d5ef531882d3c8347597517c643108be64a691924854a1d81582f65a8e8391e5e8e07c4928844a8c4c542a221214121610101e1c06040c0c017ce23003319040040a228c951104952501b140002401812280e100c0e08060a0a060808060806060406040606060000000600040400060608861748bace010427b7f628839570af037becb7b6371633cb1da42cc84f15489a6f7ce0c314ecba269d9ec5fbd89e9de9dc9ddd706ff6ea26e7a25df0d4c8294c03352087e98a1bf7a6eb04370eb47d9034ebc5168254dc24aa881fe247813f4c83698c16c2c824b3cdbb950709e1ea1c72f10dddf7ff00896bd9b737c3138d93fa42241176cb2363552790d1db912d314915b5ca5c618afda7048328d9ea3ee9f142583037d0875a8b6f1d9e9e345d6c0caeacee6ce37e760cd816c539f48ed1ceef638160acc88dcb40de046584903e7c50440ddb6a5158d56be692f7a0fb799b313d556e594a94501e13c855e0182fe6154b347d7068f6d55482b819dbbf5280811080ffd1561fc51035f84754885fe4f58804d63da245fa631b5d6714d38c79f209b2d08a74002778eea0b1c77359afeecc44beee09a7ca2afc1ae585731e09df23fe7ff20b8fa8edf6c80d06dcb4638e2c292b4be62e72f6b21a017e19338a1c82605d319d816c88bae38734b8c2b36511cff797b2ebd616bdf936d3bc32c23ae404be4048767db14ef24f286b7a24dbc1b2442a228d38f815a947fed516e867aedf1e875ef8246ce71394a06a88aa6bc106b97d682a0e8e57af600853880b33e1045beb34b114581ef68b51c72e4fe5f9727104ac1e3db6a163d5250e7823d21f1c1c525a30f009976d7cfff8cb54a2c053ce7e13a5967033a220e498181f93a1f056eb2669afd2487939ff2420a063a46a82cdc771d2218847565374a409aa53e34cd901c79b68fa2c169d6b00ef922788c25c532595d07fe922a29b7a02b401670208a08d0b149908b548e411d602fac40c8dde6a2142cd308e4e0fdea3dcd4f83d7a23ea7fe18032888b198df217f2e7c306ad61bf60affc5a3147e1cf586128740bd19c3b4291b5d128044dbc1000a77976e5d9dff66b8e562aa271d889daa68c52e142cc49f23a55b9cc92cdae8ba50ecac49b33deec8f302918ad8efb562648b53ded51141cf10a393f688a22dacce8a55483f1bac071290c1ca32524506ff03a8d0d559ce95f18bb80f71b5faab91723e9ef5b4eecc3729f3da0af2fb51e003dcfa48dbd96083b4ce2c5768adc9509da70179d15d18cbb6bdd6419eb159b2e770343be987f1b3299643c908bfeec21251886dc4d054e4a25c2fa704632ae62c11a63902f2414a1cb39c50479579c89a4e48c86fe0c11313053c22e1994c49618aa4e74dc56a06f7745b722e83e333e090913878a19d0d5f815678512fdb998b0ad8c96230f110de1e1332543af4ad479d1302ea32c78c280640e02486460036346b96005ec226084e39b08fd9711a003a5deac65a53375aabfe381e025e3ea16da478fa9f2ad7ad64a4a851b682fba06426141ee006d84da4039e8306a5c94c2520b4bbb11eda0c651979ab1564f71ab4f8ba94ebd18f41ea53da3a58911b3b88d281f3d8272d021da8d1ea0bce810ed440f506e7a58bdf558e5470f50e339cd69dbcf976d44fbe808da410fd1ef760acb2efdf59a944f1da33de81c35ad60765c6308cdbba1398f0b757d5c372b573d4ef9f58ea80cc7975626761d2661db5b2892f1bb65addb0dd84b2729e71d0f3f4d9afe2cd0058a6c47612f6a8852e22c35e6c29863fbf289083186c88aaec464d1411c88d3f3589936840eb6c47e918e93f0cbbffb6b010d44b8252df528a2718a8be117e8640dbe0c6642029887a25ded3bfa001bd319fc2403de089668f89fc8cd547d34b3f1111adecb694349eac3c6c8db11f6b4c0713331a41c31ea9b791aff3d8490a18280bfa84d592959756655c0ce00846d9bcdf1ad02b33eeb36be45ee9fa6f8b36e8acf5a1036b1b34dd3e85182a4dca2f7ed7d39267f0ec761aba365ebb4594b22a901571d60a4eb57313894c806f7adb786e4822c211158859b0f0805047de9f4014e60a7c37ac492707655a425a78019254981b6ede5a2fe38a0caafcda349440233c8216342e101e95510111655116b93611cf841ede43f3d8c35c16e2d0a198f60c1a3c3a6f7b6ad55c4c2ad9ea158565acd1aa15eddb8f7646d537719de1741a974f4dafa69c9657705656ca74d37b651a6480c912054331b74811b0528938389fa07374d4e3acb690b9bf54ad3b15e6aa0ea5919d36079b36457c0e11de643dce6022f6cab8ad1316c78f2654488c2686e8c97e1daf5b9d7eb1cc06b0a8fc147010ae396a9e1214723c242196237bb1d85d54aa798099d5e5aef29b662be5b4212f7857032ae580fe43c753a792b81d618c552423d61493335b868d1a2f8f6a04055071f3e26620c5644f2deda3669ee6efd96cea24121c7c6a56137eb239708915ed1cb52e569c1da08577be825a590cdeaf498c9781bdd80aa801918d66866af8e6b5bc62c93459751758fcc2c6b73f5f6960b21e0c560f87aa54adb2eaf02b29e86446634faa5ad56a21991fe040caa2e997f006b2de98d5b55ef6e295315ee738849e28517e379b1b1f1a07833e374b83c5c87fba9bde98210c9c069395d3c226fd76684f4be374586edf9b2ca5f05814f0c7ca1cd8174f4aebbbfdfcf9b69c9c8d3e9d391a627a176ad553f5a282923ed783a4e0eccd0106993a8d0b8fce175b8dd0eae626756692176e4f315fc9cb62999b55502be2a8b20577a9154e4b70783c8a9e04594e65731a2f954153ba21ac4434b6a99250e3f61369c2a129913c814ab64bd70327d9ab8955a2de5599187a814a85ab09158c4981dba6b5832a54013e5f63cba9c5c9784d187adca6d7763042e736db056066b9055ee7c3d9c750cdb85fc6bc55231334b8eb7ef773fde9ce1cc2c8c89fe9f4e4f6c1664f660285cd0a2a8643246f4b847df8fa867f6957254be1edece38330b3732b35cdd0eafc75ab1c4d623dcaeaff35b6b6301e3b6a7a1f839933c99357c34266fbfa3f4e94d59f6764ee9190be23c36b5a8a7bc2266ed295b1c120e582bbe52e0d8322a169cbc1d55c3c69c6fb4293db588156aba7e9477d1e33333f952a0966fb75b8aed1856a3de3a1d0ed7bbeb99a2d17b5eace5dbf57279384f0e22a4944b119eee57a7c3e138b99ed2949824acae4f7d869d829205bebeea99e7437f5b751f5d8e6ec7fbddf1bebfb65feba6c401d810d8d435a261a9d667d9908b3aa52c4f8ecdd6acabd1ce1974bbbd8f2fe7e37673bc39ae8ed727361444aaac0435dc686642454f81507b5faff96be57ef4e47cb9dc6ff747a3f76bd9ab2e2364da6510cf481c2a11d641c07459d0e500356887b8e0e21caf2f37e7d9e9e4bcde9cee4846efd3b4ac7db9ae6e27e7d95a71256f216fb7a7e33de004651c467cecf3f3fd7e7161c657c4101b77e1d2c8090223a3125632f8aa9a8d51686f5404c3eec51f21717cb9a5999917eeb5b3ac8d731a5c2a5961653b50d6ba08605f2c72e2445ad4330666a686cf0f8d668c4e1a98981b342f3136add72f466266c9818fabb7a3b7d22cebb6c3a549439bac28b310b82ce96634e42a95a269a309f2296bef115272d75ac38b08747266c7e552594dbfc49231454c4940011d15ac61551c93e367a647870c26ce6c4cf4c033a6e7c766cf0f19cd189f3e1c9a1f303366347f7cd2d8c4eca0c980b3450065a7197770c66d974cb4c8f82b05700568105b30347fbb1e2e175664f2f46431ac09d1bde274745ceb37a676e1e278771bb112ab315b00ba1ca710a524b957b7d3ebad7c1f3873be4c97ebc611120447e23f4c9caf1a084809cbe6f751f52c76399e6e8a2de707200ee1ce88c54ed8c8943926675de48d318e83c4930d0c34169a0695b5fd67b9c919e3494f0a04da79773a5a08a3c4c666e912499eca2c62488c9e7e9bb488ea4b7fb2c9f412434f0161ac085168d0d1a29667e7a37b793bdc5d17a79bc3fd7eba3e4ef7b3ebf17e3fbc9e5e97e7e5f0bc3fdc9e6ed7a3c75c0f6940251e2f462c15956f08e0e041d3632693934915f4eb9017d12e6eeae2347110a9fb9d0103cb9cdc8fceebe176663aac01c1b08afbd6e4e4fda984415da793e3e9783cdd6eb793dbc9717fbc1d1fb7f3d5196757ed2631d4f2ebc3d97176348e47a266d1479a87c7bdf67868596bb84271a7f3d9f1fa4eb4647072a951aed3fd7c3e9d1cefc446efc3eaaadece4787c3c1385d3ed62a27679a98590312996cc8b5b0503c7aeefa94aab6144660adfea815899bcbf5f88e6557a1145d7a03456bd17c53e137c9a2c820b5a2689804f6c2685c9ae95496718731215c871b277c7637730c926244486cd8741b9263c4422211a79a5534455827fd0c98671bca84150d95713265d250a72522a1404644b3951f6981be582720a7a7a34d4f864651ba3c1db416ec1c3b6f67a7b3fbfe74b85cef8e97e7767439b92e0ef7c7ebfe7075de9606113abe14eb7c3db8eeae67d78d35881f2bb2da2268e661691130f88b58f2937d0830d0824f8d50670922a0022f66864321323641d6d7ad2950c1e252c3a723414d3e1f1c8ecbf5e476ba1f5f0e87fbd9f5781b38cf0078d13f1a1791dcd910101c5cf29d5fc4c84ae9f9e5623bc02b081a8b7390fcbebe9e5dae77d0e8e53866111ece8ecbe56a3441cd31ba5f31cc9c61ee90376d4025e38075f3c84a22d74c9fe3d2ed41adb6da17a3c9300eb919b54d5c0aa1fd6253834aab91b2fc7b947c50da57a27be9ba847b499c256e94ae52faa2b44349e95012dbcf6cf13a363394f5c053095d62c4960d3911abaa474a29d8cf512812f1f839d83245f8f1a0e551d453278f7b0f9f1ef178b879acd3f3cfb3bdf43d54b8feb73beb74a19c26e0b8a365e2b0ecdb5d6e8559b9324b654a9559382b5b6ec55c096556ca9556b6566eca28f7c32af9328702cbbb55edb7233ef3069ee21bac55b3630e9998e9095d4517e83c343e8db73efcd067432341ff6cc1cfeb42438df2878cee86223012ffaa5005103e9437ca47fcedf1ad58cbad1f81fe446ce1c792d4406f86858045e01b1803d68029b0d58135eb823bd1210c86f70b7c06f1183a5ab8baf01b4377815e06170cf82dc42e74c6706dc197865d0bba0bef1970308c6b8173613d865f0b7a17ea32982b86114fc0e20666e917b3b792538a131b2ac424b46147436352362c4fcb7cba3fa10756824dc3207bca72bf6893ba4221e8f6726f20772079f6b471bfee40727bb3eccf1833ed91cb51c28eb98475923199aeab38c4be189b844daa0a50a5db5e34b9235e5ffaf1c969220eb8aba10b059e00f7463d52b994d9d14e77bd087cff451879e8f0f7a51abe98f68411b630ceff2041dee698a2953b2c1e28aa8a01445d6b3da9f9a52cb2993b162c2650d3b401d883c6aae22fe46d30b580aadc4680fda9f3fa6e011a37b6f7b1b76a014af760627330300ae7d212558381f58d4fd06fa6de00b4ca0593fca8f0c1a4507c8b3214dc2f28f051c9f7f85dd2bfbe9704dffa5bd585ac93eb122217d4b591496eb02af2409ad6a9351f3fb5a5e78f5bc129174601120e38a610d9111262617b9ce8091020be541494193ba9520fb9903ac3f6c9fd8c854f2c48c5b6171bb36ef1a7153b06d8b4d2c75334f19951de8ddb7675016ce1ea1c7dd47efd67cca0b50a7424c16446f80370d2e9182656425fc46031ad5f636036edb3e12473ecbf0a8cd3df37d66baa337024272d445f8a5886ae1596e8e6816877dbc0d78f222af33bf76f3e6e7e668e7b699bf27894976677a6d9071dcb75be9d406a8226e462093d123d329e4fffc4e3a3fc07811d24e0263c61d73dfd46a4e5f207bb58087fc3470344fa1e100c02c7ac1fecabcf8ae244cba91f083c67365890c24057b4a9d3138dbd530800e47a04e81abe59f91cccd4e419e01fc6ebcd4beb19b7bff6fb7e370737267a804f29d14bc8965db3fa0db04983d99387053970140512358372bb72a264b23b55465dd0838cec7dceb9d175211210de50b055fbc6ce87b26626bb1c6824b6f19a7a7f05c36e46e10ac2e36f2638c26bc202efe9696dd482cd034ab5898732d828b4d068f0a364caa6613360b0491a604cef60173c8cfbf61813391b55f85508faea04f3940b16bb8ba7e36d204ea740fb74e27e2f017294d3a927b2344fa386a1139b6ff4693888d328bdf7b53b1921bb3df8f2a09692be9f7e064d8c777f58cc25b02d5d3293f407eee607a705b80f3305da3a86799e950d4d4c62bb4e93238efbea49c7a5d5f63afd26f494e1685dc68bd352e7b1878a09236e3f86f77104019fc8732c95196c9b12c9f0cb2981eee9dc5ac7d42dcba260a39eebaa45e3b10349d8671e253552f0d06fc4221c6102ae3384e90a3540b2a4d001ffffffffffffff7f3a1d686bdf128b31eda79412c9849d0649a320cec994b6942925fdbce2c5364b1a99077d07fa19b8700a0e0b5c0b492508cd2464650b1f61d8437cb6374f830ca70f306cd6b154b6fbe40bdb8e8e4afa99c491e3671a3ebcb027df505fa7c434c34717b6cf8d57e2ee465a3ab9b0557f12d3f94e927cf42d2c339e726c52299e9724347c68614fdfa37eb35b9a15cdc2ea1fcc4fd813f35a7c0916d6b958a2367a2f949f7c5c6113f3ff297ac822aee9c30a9b08bd7155d24c091a15f9a8c22649e32743a88b1a938e59c10715ce79928dbc54cf4a191f53d83a9cd069fc3b6f542a471a163ea4b0a7ee24655eab522d998183a3858f286c65298c5493c498946bc729c30714d62b999a3606551f4c921c698d023b307c3c614ba54b59b8125962bd13d68f191113a264081f4d587bac332d2d695e52e5483340f860c22a57f94c3ee97b346a17858f25acb1477fb21c5e39e379c28712f639a57285b2f8309ee6483b2af848c21ae23fa334a38c7ad00e246cb77fb37d3234e94ae6482b33c2c7113641e8eb19a1f4a84cebc3088bf45c614ece49964f1f45582f5f6f0e2a5e5acce883087b2e99935ca2667349e21f43582d29139d91226df3e943085b3ca9399dccd1ba2f7e60f808c2b2265acf2913f64ada1f40d8f39c2919a4287fb15dd9c614ca5212338ebe583669ac19199b5e6c7258d2f04973508d4978b17a3af12cc5149314fbc3e35e406317db68b2d828ba52a8490668e8628b6352fa0a32a97e8fb9d8a35577473d114a3526475ad680062ef638592b574209f5bd8bb48fb4e680c62daafbbdcc41c6d0b9ca91c6e3ecf03036a0618bcd3eded925e9e7f25ff8041ab5d8c2ff858d75994183168b8a61169b3227479a08fb0edc66b167b08ba2417654a9788eb46e54c7041ab2d8fb2e689c9ecd29dd8cdd18c303750038028d586c257f27c99c3eb7a44a4145d080c5fe973177fefdb2d3496e8871e3c6182258010e1c22d7071aafd8939253d8356963bd2eae583e08ebf592fab1028d566ca25850e1e2fd9e502a56ac9b4bc53cb2cc77bf5bc5269fb29025c99f32ed55b1a52a99643fc938dd34157bce275aaa30e19d62a26253aa5a624e9db8cb34475a62e604344eb126bda66b9dc21c6922238d37a0618a45ee7a3839a5caecdc8db48dd028c59a824e490a7d31ff98de0b3448b1c52477297c753609d128f6989288ec7ca3e4967815688862f30d266f98d2a4a793a8402314cb76d8559960429720bd31d000c5ba6afbb3b153d2614c9e833d30d0f8c46a49955838bfd4a3259ed8f6d3f377aa460c343ab1cea88d41a695138bd4d19b344d9f9e247e81c626f614193c64ce2985ce12096e8c21021a9a584789a54b0ae269e48337c4b841821ced5da091892d95a0faca2f7a08fb1c820626d63e2945987ce5dea61482c625f6785637623eac78e79658ce64f79414fcd6f44a2c42f39820ca2c49929429b1275136d3cf6726b129cd25c9612adc571231404312ab99c9e059966297ff48acf52979e9a63c24564f9e73dc764e9294f28fd8cb7a2ce78c5fadb823362979ce14636dc466972f9727b16841ca887d4f4a4acc5d59c4964f7f5069e16972452c7e17febe73c38312b10899a43c97c3a9516210b12695cf2e0da21b9a43ec1f2d97f47c7143ac7ebb9f56cca2a5d10bb1c527c1bc24b509b1f98e4cc2ea9467a57b108bead15992290962d1735b49cc09a7362810db05cf97d1f229a52920f6bf3c15d46ebcfc3f6c42ec781ae5254fdc0f5bc8dc56bccb49b4ecc32223f45df47c49f4f8b0eee992c4a490395ae93dece9c4fa0415b73adc7a58b3623aa164d2fca794873dc7e4e177d35438150f9b68be909a84c91d369de976464b3bac5d76a2a47072501d5387ed64b0a0254dc9a454980e5bc9ed74564157a991e7b09e1ae5418692e94b8ee5b0f5c9177f732e1bb5380eeb6f348d19a6742679386c6a712a4932fc8635f5e450fea52fade3864d320b272629fe574adbb08627cf25d7a91b261bd6cb5cbd1c94ac613b214f63dccf9332891ad6da134a4eac918b9b34acab5792da984ae384090dc8d6adc5ca5c3ac31abfbee9a420e2426d863d3f87ac8fb80c7b0c622f4b3461a54e64d8aad4849698547246635853c6f8a75315174362d837e899709586619fabbf9cb9629728c1b0c64b8f919e5d2725f9c2361e77baa246097af4c226ba4489274913f3a90b9b9404597f1b3fe4735cd8baf36468f96e3a6d0bcbd5c65c4ac5e8df6b614d61bf9974eff556280b5be6d8d249066161fb8d1dd4e6f20aeb6ccd68124bac749263852d36292f99a246c3e55461f3be55132e5d8a8e870a7b4e72ee4cf9a5b6ba3385fdee643f9c5e0a5b973c39a9ad4c25ec282caa4f8dc54b724af44061cd732a66bca47992fa842d297de1842ad509cb6555c79ab02a95449bb07ceed15ce9d4a45e94095be64ea64329299fb4e8123651773ae653827f8faa84c572b4b04a9b26610b224eadc8f21a9d2912f61e8f132f9794ebf2232c16ea4a466345c7c4088b062593880aa6e25e846d83dab3f0a12a321136195f9b953dd35119c21a9b227a82d0392c4508ab061d44330cc296049984d5135496b0d100c27e32d7e46e2ca6b9f2177bcc8d1325f8bed8c4ac242a75ba179b12cd4a126366ac625e6c62340bb24756dca6bb58e43f0719f5f13399ba58c5e37a2c31998b35e64f73a820bba904175b87f29c8d4b4a4ee22d36a11e4649727f85ec125b6cf9bc54ccd9e9d2c4925aa4a41117577395d0624fb19a21d6577af62c1639f1b1392ba55227592c2a4c343137c8c462d1aff93f317edd770c2c12b652d049748979c526e8f0974366ec982cc615ab68909ae4bc164f144d2bf6fde455279892aeeac28a4dad7a5fde9c744b5c56b15612551f54f4ca3115552c17524c9318ff23472515fbfac7bc57d2923899828abdc752182563a611ad9c628b9bf4cc4495c8dad114cb757a7a50c1cbd28ca5583efd83f4f198193192623915a137a5a0516c4aea94274cfaada4238a2d85512996d0c1374843b126d560d1a3c524ec098af57209baab2627963eb1f9f58e9cf02a29593cb177494af4e0f1fb54a5139b243d9d8ee9f40625859cd8ee24490c9e4bf02f29dcc4d63995923a54c858be26164b9a4ae7f0a97492cfc426955429ae764cd94930b1093a5350922476378f7789b53ff756797d85aace127bc8d6d5d85e892de97c7a717f69a7364a6c9275304fdb7fa552ac247881080f024c62b32f9df44b48128b854a97564ce6b71389355d3c319de45f728c1a2436f98d93a4bb158dd31eb18786923b5ac9862a3147ac9e5310a132092733c61ab16652d26f5ef0f5513146acbeb14f9690e1533e5bc41afee2a7b835b1c332452c5765a29f9f92e9fa442ca2e49ce4a484883d36f84927da2551a1436c4ad4e9f4257f73922136d92594a8758212d642ec516e63ce25a9c66442882d7f4b7f655815af0c62b198ab2449579e983b41ecbd9b1d2a949c92ae02b1830080f00101feb0edc566e8dcf94ac68c007ed8f233c97f42c8a759bf0f7b667db21ce74c7b73f8b0a712eaaf3ed5a993ea1ef6ff30316a5dfea9e961bb2aa5f4c999bb5c611ef6d12d33ab0cdd150f9b5cfead3341e46e7877d833c389da9832a568991d36615475bdd3c7e8d5619f4d41e59c444fa284e8b0c7ecc550fda79b9cc396432fa5eab4cb6193ff948893a4781cd6309e27ea6edad0b186c3a6443f39365efc86554daa262965933a4b72c39af4fe5fc9d1b129e8b461cd5725497b9a71374dd8b075ff7e668961419d2a470628ed55b500b28bbd245de975eabf245119de4387480e1e3838c3144080e862f9124a08517232ff51e76213540aa2e39aa41c6906ed00828b35499267f25a31479a192322c9dd6251612557ee2721454b7e9706105b2c42d4fae47021a3ee0c20b5d864aa688f3851ef2f1c11316344e40c1c1c3380d0628f29dd89a1e389e52cf6afd4491093e1638a962cd64a1d3ec83e9d63549a1120b15854bebece4bd698cc252cf6f4a3bb939874c6d8a35724c95c519d0ba2f1bb624b6936866522239dd98a35cd6ee638f13b6c588845446c504662250061c5aa67257a0a5119278c72a419233ace300eb28a6d3fe889c84b32e79739d2904154b1570e99ae840f2555a87588f040e42e81a462bfbcb532f529911e85898a4d8ca52cb1f258892726471aca01e4147bd596fa7c279a32ec39d2540620a6287c084fc27cfcf33a47dac89ba1e3fc01a4145bdc1419d3eb4c3a2673a4e52089010829361f91959e34a7ed548f622f31d8ae0932833e41498e34030310516ca261de9965f91f5a590e30311780846213425c4edf20f794da632407223cd8d1438700028ae5d44e4acaa348115ae648334b00f9c41afd6225dbca8d6bf91c69223cd8d1e39000e2892dc83131658ab67799e548ebc466b31e54cc6678f0b3cdf01e3b703b020827d654cf248f3eb9245145c91e4036b1e60d1eba395a272f9fe00144135b2649accac738ab3929139ba9a45aa7bb0413fb5cd6c9ae85cba3627a00b9c4fabd490533b1f11a9325f6b0fbd194555d8c1fbc034825d68d23635fc764f2e6743297899e4737804c621593f22533f9749a8c6d0091c4962c89b12ae383aa92240748243613fb4a505ea7ba3be88880406291c994ca985145863fb917803c625b511eb6e9e2a4ec1e081047ec414c4b2ec9a25a7e0069c4aaf19f845342f96dde7b8c8c71438c1b37c6100123f6243776cd9352a1648803740059c4a6d426eb509951a3c50c00b200a2883d954c9db444931dae030d05c7042089786314258f8e2bf10104117be552952e9df831832847da0e37430723223b4644d00e7486b938801c623fcfd55d31276d3f03e9808788193a508e1c3d4446ba1c1c400c91f0a7498c974c32f3981e801462eb9869446908a927911e23233bd60042882d67849f2569bd8422238d650019c4ba315658471339e2541e3a6860630011c46af27acc3b7394cf33475aa9184002b1ef99e714e2b237ecd74b800062d56015231a3a6377aa9400f9c3268fd8198b1a2bd49c7e588334614496fc7d37962540fab0afc8f34d51276fd80f1ff6588b5dd9494e5194967bc0fb4b6e9cd9e44d02440f6bccdbb997339e87d5441d33e14a2511db194580e061f10ce71f3b9c058d3b1120775893e4a925d4a7912a5a0f103bec9fff62e7d3d8980d40eab0857fe5910d9b36e325471a0fd01978630c0fdc7847c1c81837c4b831e265e81843c70ec7c1097ae060040537c4b8b1634407b76087e7a0043c40671c2f40e8e02513e79283a4e80099c356255b62a7e8fc582f87bdaab3326ce84a5de271589374192db44a9d6ae0b046cfbfd1e1f2ed5fe80d5bf889e7fbd0d19448ddb05f8728937f152ee66d5853289de42c7552e668b261bbd124e9f1fcfb98b286bdc783a71d2164e73151c396c2d77ffa5576c897864dfa89cd5cfebd96a48ae1c061d60b10342cfac95693c8783e5ec991c67aec183963072e2202903358c9be62a5a0445710016286b594d029f6a9bc61d5837a200ea01e23232870326cb0c34770438c1bc845b0a38c11647104481956d95353d2ec8452a7a780073bca2803078e3311db5146190842864d9952b2d3937d29f11fc372722d75c5cbdd34bd18d6f0f930614daecdef61d8e2f4349a7fe6537107c316edd45ec5f80b8b2679ce52874f4b9a1736392a66ef95dc94957761bfbea077c35ed054b9b0f87d9c353164ea70d9c256429a57e9d45769d4c2b6d541b5ffbf92ccb2b05f1a9549cfdda8946a2cecf725fc6dfc57d8c4f017f633cc5658338a9aa791abb08f12f3891262a3053d15b6add1344af534854dd72e57494978f23a4961cf8bd5d0a584decf290a6bf6870825e55871741214d6e01fb722f274cf497ac2a6cfe44bda12396131b944d1dc997fb5424dd836cf83b2f3b0b30e13f61c5b26d396b4a3c7b384654f93cc1ffd426d3c4ad8d297304a86bd94fe3b49d832a8d4ab49ee20613b4fa756279a58f547d893fce9a40ca1729f2023ac99496dfed1516a3a5a8445f606cd49e70421c2169394f9bfe48439314186b0d7c94b33f323237a0222844dcea423bbc4043b4b0212843dd64faea4f2a6f5bc0101c29e53f8a55a9da64a32bfd852ca992342d8a59c325fac6b2acf3fa6f4a34bbd58ecd2c8f06253923ea9beec2a7d4cd9c5a246ddc7ea569c0a165dec493eddd7e5c5513f179bfa9c249ebe0d4a9810175b8ab2a7c4cba5f3c9fc16ebc5f429aaa7d1d224da22ff0dcf6167c15a2c326dd025c88aaaa81f2db6b49d627e9df02cd6d1412e7fc7cbb9912cb6781b17d37409d7672cb64cf975252feccd78b0d84f4cdceafc27891bbf622fff120b9b62ae583d2693d3884d67825eadd84f8ed75fb1f1774cc58a4d2a2927d1a9cb4e25a155ac4979d24d9aeea28c3e54b1c730a3bb4af492764ec5263f999ca2348711999f1c7ca062cbdb5797c3cfe9d292536c2a8971347fcc9862cfd715a392f8397d144b7126d1246c0e239358b5e083146b12b59a82ec38a78447b1c7607996498f8e6c8a7632131fa25894b05962b1b18f50ec659bb2c4ab7823d53278f4d8814cc0c30c1da88719236254e203149baa7a89a7d728abfa139b281e84aec5927d671d1e3e3cb1cedd09a67487f2de4b13367c74621f2fb3986b3387c9f18d31447003070e1c389213ab88cc319ee4a8e241b589d5a4f0d8b43549fe9c49163e34b1d8492a36995cb12a450f163e32b10979a669799fd2734ac1c4f6a7920a5b15d234ee42868f4beca1b7f2e7c86442cf6e89c5366c8cf0a07fbf72955893a925797a44896f9e12ab6fe78dec7c1594859349eca3b2bd9fc40ce464b04a623929e4744fe824d3da91d83453579274d894d682922e7c406253a2889ff05452f6c90b173e1eb1d5e8f9bc94e45fa8ca153e1cb149f24ace5fb659c347233641882f0b9bfae4344a18b1a61cabf304b5274a9a17b1099a2ec798e8296253d13b9e59c692442493dc3416968410b15c10d992c46e124bc5337c1c62932e5d1053a2c55f05070e1e3870f0b001a31d3d90042f100100243e0cb1c5b9cad59d63a9ca3999c14721361d62640eaf241eff23426c25c76c529224098ff5f818c41693ae9ad6fe8ff04b8e3411ef316206de103e04b128f5b01925aa1c6965e0407ff01188ad2ae60f0b2517efd2830f40acd5ffbb1e748f3cf8f8c3bac153c93325e833e1c991d663243ffcb0ea989229497ad24962f1e2a30fdb6a8cfc5f6dbe3349f8b0a74d6282aa8d44cad881c840890f3ef6b027c94433d158a18412e64823838c913344cc78400619680c1c38c61081090c171f7a584454a359a7a8589796d6c1c38c113170e04806f1918735a692d4362b6d502a080f9be7a87857b2154f4a77d8ebaa93d429d59998773b24e6b8a54ac5dfd8b1c2471d36c96eb637b3948a4ad2613d1bad9c962ba7b0cc1cd69c4bdee81c73574e520ecbee98d859f9e3b009aaa4bc12267e4d7e38acbd32161af34e0afd0d7b383da229a6c29352e2864d45dd4af30c6ae9b4362cf329775f3fe7486b1d14f3337830c60e3fe30cb483057688f0c1862de8a4abc62f253d795a83e1f850c32a26a67c21639fe959642484038788611e3ed2b085d7c5391d2e6858574ed40599bc4f9272864d56294934edb2ce41891994935162124f6d06121f65d8627dd2df713a636ba3860f326c17cb3bc8d937c610010e1eaea38719381819c39aa40c537b61630cfb8861d5199913f7c91da63487555492a69ad356444772d8ec430725a58f2e018c38ac7652c5121e2da9d8f93b26800107d4929ccc0b1663556a0760bc6131413dc5136a62856fdcb06dce98bde1b9fa2ca90d9b90f29dae54a8204e9c0d6bc97567fa2ce8f8b3d6b0e692f1fc31945e94911a1665facb944e3a26b9350d8beebf0e151b1a36d3d1f174e687f2137486f5a40fa3fe24513da98b1956111543dec63da9b42cc39e2add6ad015fe44c990611971377e51f7e286d2183671c7828aaa57f2e4540cfbd76fb0144449723a39615863664e929cd360d8f3689091c1378d88e50b8bfea83599a583c5d1f1c25e25aea5f886123349766193a1aea2a7a798a59c0beb9f4c2a63a83039d7650b9bb4657679c9a285357e9f89163f642af5b290e974ba428c26c1c29a269c520d7f769299aeb0d507994c52a209db90b1c21e672a748ed1f2a5942aec95b2f9694ee9bf91a9b086d0fb202aca8e8e93296c394f3fed9de808154b61f1134b0b4b69f992280a8b7abc1c47971ab9d541618f9b93e0a5747f54d13c618d1b9171efaccc3275c2aa174fd418aa04a939d484c52b497a1ab267c21674a64cfae5f36bd612f6a0fdf9d4c85c35b551c23a52ce4a9e242539673e09ab06bd4c27efe3795082844d454ffcd1a784ed9439c29644e519f920408061847d830a1972ea9743e98051844d3849bc5cb179226c3aa7649ba39c51006308c729ffcfaf3149be4214021aa35ecec7c9fbf0e5c00c6004612f5363f31fffbd415aa000061036f9c4583afe23a32514427ec1d925c17496ea92a498031c43882f165db2e3d4a8205657d28b6d93a44f05a573bc582eef98259d312575ba8badf32a6ec93a75b1c62a71c4c42c73b1564e7e72a98dbdd8293184e062333dcae4fd9cb9c1b22684dc62fdba5bfdcc912d3679e74b763a111955482df6248f8789133e62fea6c5fe396fbb84cc34273f8b456607253f73ca0921b2d83f7acaddfc95a264b48490586cf93f6857fc0f8b2d4cd48d61a57bc596bc6abca493d344855cb18ac7ea95bd4c2bd698a43d5917af3a7fc38a4527b961b7ef83d05257b197e9e79349e74c1e9b2ad660eb5ba6a625c7924cc5a2d7449fb9d450b1768a0d42d8a6dc9c207a21e4146beccc3966fb526b932e0757861053ac39a5b91ad9909d82ea0b21a548f03fcb94e737aa9f48b1986dc6d479b1afcc338a323daaaaa7a634af186349258ef0124e516ce2a792ee66e67a55e3424828961bf5cca99e273eca05148bc99fefe232e630b7a115423eb19dbabc7d4a866850c25808f1447964bcfede7462b1e4755a7963997fce89d5bf8492eec413c5d7c2021c3870e0b81c881c1e5508d9c45e4ac9a76af74aaccb73f4d071c54610a289d544ed7dc9f117e38618ca83904cec41842c13c39f74c1a4658c8ce086182198d8aba493c424bb5f62cb29434cb2745b6293979922aba64a6c9d3f7293dd078f21a4c426ac86a8522a97a5ca854c62933a6bc9442ec7344412fbe75249d6091b96e4112d2412cb6db02ae142e720b185a84e49ae67d297a9f288fd62be14a5d12c5d3b7ae0c08139c081c3d0421c718090461420841122060859c4181008514419bc8390904488801182081eee2fd28090432820c410ee2f22819042f0e8e13c782091339c195d2084101532889137430719642031041108f71719e921a2030a84004202217f106140881f1210d2870584f081070fdc060d08d9030fd7a1810684e8c184e4e146081e3e42ee60870384d4412424840e1208998386c8a10b1012071eae43c7191a5040081c6e84bce14746762c20c40d0908690348081b7e6464c7196b08095183888e3334b0a38c110c20240d100841431272861ece43c40c3ace0023a40c3c2e10428602848ce14688180e1012061130f028e30b5ee8420f1e23648870a101215be0e1385840881678780f1c9cc14347831192851c3c500e078460e101215798408815101052051e24112a4ce10665b41478948176a03344a230f2060881028f1e66780efc0916087182f7082720a4094c8840c8122010a2040984242104090a0839028f1d233c463e608230428cd0809022380e1c072718a39d063440635420840806081982034284807a8ce0e006223c749ca1811420202408170284aaf10b09d4f0051923236740a0462f78f4304387082f6ed4d8058fde8174e03b749ca1011e648c8c98c0013574910b1e0ca8818b03d4b88508026ad88287016ad40201356841a3c62c426ac8e2a3462c7cc7881802a8018be582099aebf569b9a51c693b465ee46ca1c62b3639d557428f6cd768aed8b22e574e6d5527d468c53eb69b8452c2664bc959b1d65dbe1454989171971c692757b186d275d2fa24e12747453a2faf5043159bf0d12ee89c4cec39f954aca393d8b426fb528d8a7d539fa44b9ca9ad8e9f622ff5d3d94eb52956cf355b11162ec53aa21954e7594ffb9814ab8aecbc2963d228d6d831c9a484e651b93ea2d8d65267125454952bd150ac51f36a4c31252816537194587af2136b5e930f9e4ec84e95f4c49e99f209b5b3fb4b4a3ab1a796124bcc1ff28431e1c416462c7e0aaff074319bd84acaa792d07575e25c34b1c829cf315a8c85ec33b1c8c510a2639955ce11137b8929d6258dc14bac26d747ff93625d9696d82bc3ab449e27e498e59012db66ee60a17d1f43b31a93d83a558e279ef46eb05e12fb8eeafef3a4f449228fc4d695cfabba42b5430e89358e104a4fe8ed2496f423d6fd0e6ac7a387ac9e1db1c5facc9b7be746ac793baf47b1abfd0e3362f9abf94d4a8949f2f022f60d42683ab9e7448b9122f6747db27256d7ec8912b1e79ff2fe8d21446cb22578a5a44e958ee721b668ba95d5191e2b4e432c76416c0ab15cea8fa954ecf1126408b15759da9df86bf94ecc20d650fbab614223882def94d8395fd29c6409c4767259cda97c57e22120d6dd4e29e445992bcffd61cfa18257e718a3e4687ed82cebe4e429669ebc0fcbea054b49ca66a5091fd6fc771e622b9d3a61ed6153ed20267632196bf27ad833499e36fe8eb893cfc35ada31d78a122fd4e378d8abc41263da247e873573989eada5de99ecb0e79d2b5372ba0e5bc7a094d6784d8755547aea9f9cbb93e739ec7b76275466daf51ec9610f9aa1f5299724892214873deec7f0bcdb79a93e70d87230bd34d9dd15e7f3862d7cb25e4f29c70d9b753e93e9694cec9236ac6649d0af3a15bac4281bf6fb2443eda9394b395dc3264be34c2c53e2e9ad864dc905cda5ece64c4dc396542a0f1af68eeb9df43e7d273179863d496b29eff58919f69417736626abb09329c3e9e244f59c93c8b0a5bcdd1cfdcc732c9931ac2777f2b0a9ab73a711c3964b736ec75adb943261d854357d944ef255cf050cab5f924b8c39932463895fd84c8aeb28524f4b36f4c232424f4e97d45d5874f0749d6a4bba241f17f69ce6abda71f194fc16d674a683188f9b1616d9b1f4864c4a54ff55230b5b99bc297710e69bc692238d4749ce811e3ada778871c6c80e0e9851821b62dcb83186075000021c3870e040817b0772f4d0c10232907320009ca88185d52ffcc73cabc983e5afb0885ab8f258425fcadd0adba72dc104994c55584b3e43862fa52e785042821788cca00615b63c2a4ca651253c73ae3185f524254ce4723c312d23c10b446050430a9b5e92133ec7b43bea8fc26a31644c2943f68a47a1b065ba18ef2ff3e4ca8c03ea7da6c613161597830a4f6a740e8d13d6d2212aa93b590b446a34c15ce75515d3efe4d46042620ea3e2449cf565d5821a4b5873da5853c2ca5496548eb4c49c0d10b387a004a807e2000e1c373a808253478b1a4ad8ac728d6a8ce2771e4fc2da233ea6a6a5f58d8d84bdcac26f0e8b932c7c84e5f3c7aaa7c96032271961f5dc6993c8d1b9a2e41461df0c7ab65f7d5e9292089b094a7e3c9d13bee764089b983f09229ec232891721acb92658059d562f66e7811a41d84fa73c193a85cb99ab0610d6aa2405cb79d34cfe13e4175be5a85679729714d5a28900f1452f5693276db756734e4d30861925504280f06233d1216c840137ccd041031d3b4a20c68d4641728b30dab09e5aaad3ef2c69722c6143186c58c4864a37a266648e3107d610c61af69d5191575925893309430dfb464f52a8ac119d83508e343346d48c129ce500070e1c3812a3441869d8c7f43b6d4eee99f0a3c194b7397bd5d64d84718665f398ddae859c5fd330118619f60da19653fde5d41783421865d8f6fe734349d259f89c1b6238220c322c9e1e74b3537dd850e2c0e18530c6a06d28e954be132a98234de28330c4b0e86e9f52525a3508230c9bc6f58a2a52a4c68d39d26e8ce1810d94378401864e576a76127e96a1830c911d3d7898a1034770438c1b6220263bfc1c218c2f6c958226e194dc884b798b43185ed8a287d2a54aa938d2447008a30b6b49694acca1c1f29c9c3684c1857d3cc78b7b72d023e6345b5893b20fdb1b735c6deec8108616fc9243e7dca073b4fc1ec2c8c2162a2511f52c5d4ac5c6100616f63a514dbce44cdea42bac32a647cf62ce995b611b21ace48f318993625f853d8492e6e199a6c27ed2ac6733094f614b62329fcb93e7a027296c72cea139752845613f0f9d3b4e10325e4e82c2b241574ee2d1346d939eb0da9c1c33ce27512f4c4ed8e4dcec7426349618464d58c33bec938cce54153161eba8a633429ad85ed112f6e0b92ee7ee8b419e2025ac7d32ef87cc9d31fe27099b88394d8290f1184e0709cbe90b551f933cb3ce39c222974f12b313543229c7085b9c5cbc5429091e935e84bd729222c2a2826c4cb12625c91cc23efa79728428911a15c232263f9a542cbd5306c1b80f27a7af26c300c2169fa3e99fbdf1a0eb2f361369d5eba97a93e88b4d891a4543932468522fb698c4334f654a5e6c16736a737e70177b50cac32ae5125d6c92c864b9df31e5b0a25cec6572e74e92342e36415f4e25c892b9c5d6213fd74e93d225686cb1e6e54992d2b1529254a616ab9ef00ec224d1621d5d2b9f840ae2a5ce62351d1f679f720eb92cb6536aa6db23d62b188b45ee7c0ebf242b6d5760b199982a161b4ce79d5eb1ede9d8fd24f3848e2b96b355b924c71c4d43add84385132b489f9f53b2621197bb737f505bf2ad62cd7163d4109b532d85aad8945a1219a2d4a8cca4622b99b37a844af17344c59ea7174bf92639c575a7d853ee8e612a5755e5bc0d53eca3495eaf8cad14fb880b3a979827c51e2d2825756366148b3cd5bfa55d95d7248a3dfc63ec89cf490c3f856213e51b4e566363870f28163ba5848a8e954fa4766426312d363cb125e19b1ace935451b11c9dd8faf2c4f091366a72cf8935c6f2542f6d4962cc37b1a64d213389eec98834b196186a447c10bbf8c94c6cd13bad0711edbcb904136b270de755516c4ffe127b75cf8919a3e55cd8129bda8fd397c9649a8ba9c43296e2855affadb01825f69452c4e24ce7f1af9cc724d6b5f01cffcfe4a4c4bc24b6b44b9dca938faedd23b1a8514d7275bc152b3924f6fd384f6962ea117b9eca95dc5d52af66476c9b7392a7e28419ff346253974cac2fb1d2364962c4fa9dab73cef21315a3452cf631fd98fc1d657d45acdfbd1f3ca52f39e49a8875cde4ad7feac9f912116b5a3ded1f9d6cd3c71c62b35d0b5a49ea588f17436cc226cfa326d6c558c2426c1a4709c2e4fac39808b1894992fe524583d8a4b34b97c2758258fc245d9ee615ad4716884588d19d845ddd589a01c24db236e97441c6c92cb0f1873df6992695e47ed84364c7f8fecb49d987f5eb73533c9525aba47070061fb631a172b67293e5fc7bd8478acaeaf2dc5726af874d73c5cad067258ab4f3b08f8a963c26e6f0b0adf8d6e756f2584abec31aea4413fea9b1c44fb2c3b2175e1653e3491d4d75d8e47eead25c3974d8ff9354994ab878523c73d847f5e6636d189151396c5a6250a1f7f92ec7681cb6b1705949850a87e52e9a9c34f794e8fa0d7b6a4c528797246ed8c23f68123a6909274bdab0cfa764e93658d8b0097d72a8e83c2964c535ac7b25bbe45219b76a356ca7a3c8694e4987eb3d0d7bf88a41c4e68325d184862d64d0f450c173862df5982871ffe45eca10e1c18e1ee5811d23c78619b6b0efa0347c5039392ec37625c814ba2413ce4a44864568ee8e967295684cc7b056e811d9ef68274f8cf7076c88614f13c44925491935c387063b3490a3870e169c306cbaa7a28276f2cce8db00c33e3b2a86324db933681261e30b9b589fc3c52e399eafee8545a7dd50a37494e09f4b900f36bab0eae8b592a994c714f33bd8e0c2a6bf7131e818a4d7675e60630bc50436b4b05ee5a0933ca5791b561c387a380f1e2849b29036b0b08c4cb3ef5c9a2a2875c788c861c0c6154aa9a4248fb4db60c30a5b52a266bee82326d8a8c22263ba4a93b26852c962dc7036638404b8051b54d894ff59ae932e856d450c1c386c4c61ad4af1e3698ce648c362430a6b4ed63998f0b3542a8ac256cafb53bcee124f2e31c3ce0614b65d8f49538c49bc52b943061b4f2827ac319c944e4891261a4ac61041193a10196224d7051b4db0c1842d2775c9d46a0a25f6306364c7971d0fd858c276797329cee428baf2c68612b898b9d226099b1063a154ea1473988784bd64e8d09c768b828d23ace3294685d8d337326e8475533241d4837c4eb05184edebead3736d4cbb51226c1b26999477b63c3306051b43d88209936248f92467b610d6cca184e8d99c8a07d908c27ee155713d3f4c3fb70184cd93e8d58edb19910ffe621b1344363664c58a135f2c9724f5af9c62109100462f16ad14eb93e55aeeef9017fb5dcea3a7c359589a70175bb820743d58bc103a45177b8c65b25cac99e46482ecb5d9744a5c2c5a26e5341f4bba67748b4dd2f4ee6072638b6d46fd78965dc91dc55a2c5732e80e7e522b778916cbc6af05214b74169b483f49ae3a9326e7932cb68f41367f5c7aacb889c55ea34145d806ad207b58ac594a10bb23f44a109d572caac2d589d22053d2ca159b5db2531dc48dc5ac5bb18acc9d73250dc23c2961c566a1b95ac5b6d143d65626a9623929a6f7880d2754dea46253b27458dfb89944ed50b1c9bb1da74ae78e90f72956530fb7264c356f69a6d873ae0e632bdbf39996620bc2925c7afc24c5264fccd0b924d3283661654c2693849913c3a2583d83bafaf9d0f09385629febb4a22b791c1d0f146b6647ad929649a7bc7e62114b131dca4a507a269ed854c98ccf9c76620b5f32ef831e21ffc470c22035e94f336adcc43e627d93d0fd15639b26d6cdd315b4c74ad69f89fdb7c485585666f21c26d6f054f19bc72aef97d843d7a6f7ae8c9069b1c4b62194a5fd8ffe49a14a6ce232634a6c52df28bd15fa3ea572129b5fbcfc9e932289fdf4c9b349b7633cbd89c4164ca5093aa5603b1784c43e3a8f05a5b1534d5e8fd8fb729cf59ec9e6683007e788ad83491d356e6bc49a9288d589dca0441519517c675a93a4a45fc4de1f74dc98584a4993a28845c4c923e7414bc4f6c953e8d8254f9c8688d8f355ff4925c921b6ad4d2aa6f94f217332c4b61e749af44c52882d49f59204b55eb19394105b28f598946ebe603a6810db8ca58c76de54004310cba9253b195642e9cc02b19778825042a50920b6ef50f2873d484d93546de487352795636650963e6c2a75698ec9173729a93c80c1873d2ca9f8214db2bce9da02187b5845796a52ff8de129ac87e5365ca92ecfcc2316bd021879d8d46796147390f1b06aa69ca14a484bd1db1d162db9ee19713154aec1b0c32669e99c55415f874d4c172c6a566ddd964e00830efb97097532018ba5a8544f65824124120ac3c160301004820d39130083140830302c308ec5025196e8613c3d1480024f242a4428241c22201c181814148c83a160280c0e06c280402010068501a14072244652643f1c1b58172bb42642722973c8082dab824813b3e15340cec339420f5f57618e7d197f3a919d17a90ae2289ba4ee1c385d7826ce4a52862706bdd49a75f18b9a29b047ad0d3f9458d5cdb88559c9514dddbf458ca5c4de1e230e40e1f90a8753c301f5a52e8358f46b0a3533274318a45c02799f99a6219add33827de20a3241e021a9ff8225df4ef53dccdc3c4bcdb315c20ebaea3b6d9dc7fcaed2170c1192422e9715d31787750c37f5104911b3559f88e54307f766beca0b17d76baa4a0ab738c8de2a99a302d4d52706275193a13e4b83bd7cc876074ab2a18c5d87138d4ccf4975e5d20d44d0f0c9a6c6dc781191e401899f857ae9140e27b191425a3606178acd1db293f220f545020a55534aa9150bf3ce2b6805fe3fabe18985a1e2b2be116bf03db6e5c47b85aed4e2a33bd6870acb391e52b286e3f74ffe817aeff35eb21390860843cbf7255507ee807428ebee9ed4ead44a09e0b50c714e0a42b6d16df2e33c5cb1956e1cbef02910460497583630b54fa00147a0e219e34199471fd2ac84a60f4a86986a853b1975a8387db13110f3fd040947580e3c066d2b7701cf50d9c8541a5c7f87c58730a9fa438beecadcbba8a9d195959c362a3a1ea1626a91932c9855830616666d92c4a3584a9954ac6aede7d00e82bb025034d84405f091553798599d6336cc0c46d7c1ee22f274eec8c0848186019dc122839dc1a4c18181b641840100039e01a03218835be6fa894fae31082c2e704b1087b021c294b8e25f60d6413d0492bab0f1c9dbbc9b079b8631267d3b98d987dafce70d8ccc60b369c7d5210408cb6bdaa6a1c4006f30031decae76ff809413324188bac01f41e5803984611768242c4b6843b8f6e09404331036a80cce475c1b5b0ab64130ecdb609369cf34770b6193b02404bc97c638ad9739d2960308fd8cd28506f96fb0211d4387be1920e4ccdd602e1fb9619f233b562b2f3f6e11316f3773754c8511030e6cf992931b8699b502a416d021f00a1036e0e3c0ab801880f818a834d29991fe08f000ccb902fe150a39db06283aa0428015006c0085c0120036803bc02cc04601532180811aee18de0298e54527b1df002d4100d03a8c0b7a3b870a2033f2d27a1edeffb5f09b00620c0ff4cdc7447f04e00298ed00572820f85d8063005700b51570e5a101d1ae016031e02eb0b30668590f4971bb01636aa005daa6204b009e05681944f893fb01f8148031bdc166932b91203441e8ea08107e15f0b70f0254ef9bcddcf2a33ba5bdcea39f8c3cea039989d45db0f24149bbc21fa334794156411ca260e28a547974c859f263cfce58567de1b29b2a0400be062cc78e3ab9af980afd16b38119fef7361c717c278c61f675c8568f20a4140bac25cd9a0f0e83ce820419c76a083ad6ce7aa992c5a2f1d31b4ff488d1fb58e325175aadd1308ce31b6e3a8a1643d52c62d263e03f0b017da096c05ecafabc264ace1bfc478fc9fb0ee6e6ab511f666a95302c5cacb040b63e54de1e10d41daaa044c46a4677a8028088e7470b2bc273a1c7e15c5a84904f9571d32b908ca7669beae5ee3d33e3022191e2db8ccd94a7155cfdfb7696605c96528b4f2233e0a23edeb574312603a17087e921c3f39bc74027fbb48c66423407243901f41f5fe36097a4023839376870172b5e8a0669a4d44665f8d2a0450884e1bd05391b9615311347b1a883d0e7edb7087a1cd0c821ba494d47cd5cc253267aba5d785fb0e75069d89538c9802eb5d022e31518c81bba45009abb713eca2f40069dceeafcc7cc3e6fccd6bcc49aec8037fe62d656304cf8afbfd6da6826f542f630f697e13516cc3a2e12d6469c30a0e0596e3b5397d38f8ee482eef8cd632abc624a243f01bffb6779c1b1faa1eefc58967d8a4672c589625841e1a0640399a8d5b16fe5c9deaa20a8e4207632ca20330030360073efcbf5627d1b77a05e36062be359bde26920f1878b5ea29037f6c637b92648f5073ddceb5f3c5ed1de449ec436e3f4ffe37e9c128139e704572ce6747ecad59763e1f199fff15e25dc3f53492df63cfba851980a40629d80b8d17d7606ef83606b7118240feee183f2a87aaed147830f31d75a7d2cd1e5ed6304c99a40002d6edd0a99d8b43ed4145ee8621163bcb94850f05078f18a6ce3a04c0d7da82ed4de47352751b94ca1340a222a0fa58772803a066505d50645a05140df42473bebfd09d3a192e871adbe330720222e143b5434d416d4508a020281640bf28f32ae9fd2b8cf4089879280ba83fa821a5c03229aaa6172fc84aa06144454f19b26824a1065486a1b942530882828547a517dc1a1bd7f9f72ee15d410823208bbbf7a1f289550fd502f50057e8b397b9b5932a88bbcc95bad4e5dd34bfa58281d8a48541fdcd67ccb4201c6a8bea7d20d8986e2b2517d5ce538042f298b8dea2b36197b1d140d28202104852547ac22b2151470b1bbcc671f9263ff37394064c6617e28e08e05858358a180805229887426ffb529e011ea30a0460143c435ea1114506b803373a4284ad46a3a210c3f711da5209b2fbd3278b0c43332a786397861a47b5f632c1badc7b901bce501a1541ed304b727fb7b5d8bd61f9f4b4c8693070b1a4cda64a73621c7132ea8570ad6807c3a79bc18295dbc6a8959669d83780a286c10ff1b7b41cdf38c9393a3eb42fc40989ca5188a4332019158f2f27dc045c291cf985e98b8608388d930ae2c01785e6c5e0024d25a3e2f472f85c46bc4fa9fe731c60bef75c6ebc64bd2ab90179e17d0bdae1f32b21f1f30de5e545e4e5e047a1dbddd575b11ef1c9c8ac46039af8a8c032afe2b2f6f88b4d6c6af74305f2f76af115e3daf29af615e7aafc4f2b5491f0ea13ced25d24bd6ebe6f5eb3584af2328c5a1befd6478ea3f46ead1676ce6beafaf2866a6a9f061b5cbc54aed00ccb9706c14b90b40d34eb5582c4166c292407bd0b16d2f02eda61d48b5b051fd6b727e6bae4a6b962e992eb2218dbc168a59888bc740e5fc101902eb3389000e7102ceebc311621cc3085fbd4252901b262c133ca85dc7071d6c2d1d3fc9b889d1c90326b65744fe83ebcc95a495c48de804a7e43208aed3d2212c7bb53a7804f28097be7731b7652c8794ad8ecd04b9d6be85c6eab0ef1ab794f223ea9166ba435b6216b07cc8d1581f1235bed76ed595af6816f71b04bbfb15768e3e8f04e864404b981a009f9cd4c4c46b56f2645214502a393e12814a1acdc97c1b50a37c37c77766bad4fba3a18ee28163a73125a2c48b11706eab75c4cf2d3d2fde2b62cfa21adba71d464caca5714d72d842672a1cd9f51e9434036ccb54b043917530bac74720f8a2cd62ce175b5f5fd5a09d971c53c5a3d1f38efb0841f8158af9891484f170ab8731b047a02d43d8cf558d98fad2f18805df818fc49e4db8114c022ec991c6618edec1879e7c6015a50cf7b028081ecd07f01dedaf023b081c2f09856f4e6fc17766585cf4a4aad44da3c8d1a3aaa5747fd93e6cea5c52807603f6c03817b21550c6a2b188f6758959675a0af5fa0a525d027768cd3a4325bf0100c8ef0cb5291ee613da861a28ea13f35b73c05c7c443db94597ba26b58cbd72639f3aec9c949b31aff939112fc68018bb381607b52d26b7b8c2b93cc5337975a13578214610bbf507fd0a43f29a8f80eb6b5b0bacc3133a9b4ed6252f1fb8e905a934801d9d37a73ca705ead7dd5c7e57280b7b79e122ebc2921528b12dc9ad0a8c3923762f32499dbc17f4f60f12cd5ce3465dd7c8df67d0f63b517ab1beea9914a58f82e326b16c3abd000c9782b2981b5b7a174c8368f31f37c3964615cdf5f95a0dc28cbb50aa893ba0fc5b83911d7aaf34e2088d64f52036e3eb3c3be8a36b261cb44dd6dfa82e39966e00523c4e39ae669d95827e7b7fa667f4963e121feb8263a076ce5cd9740f678eb2223d3b67934cbcfb3fd958ba2c42d1e8c9f379854f8fa47bcb059c5b7ae109343c959e5b41aed7544d4d97b7daadb478d24cdf5e144903a4096b32411b3acf562d049e33616b691359bb07dbe6d69f52a500f47e998c194f2c443d1f886422c77f1de8eadb3fb21de51a218aca69155f558bc8a27e875941a5a84a9f3f518e88d08683c0095d446214cbf5b571ad23cb12bdd48266ab9ee01a8b5183b671395995ca6adb902a792b33cd1e05e75654a7c2398c7d42d437b81714a9369ce5db28fdde8e1f191e61f8bed319f8fa0105af53159497c5167905f77ac5466b7718a2e174629f00ec831ebad82c24d96323556e681437c7f08eb2dd838df86eacabe1072739b70f76404bd4c68dad043b08f5b99440549518db5dc460137b9788f29c4023c81c5148eb26624f90e6c76e22858b60818dcc4b105ddc7f1b6937e5a3b67166ecc6e52f92eb258fdee3dcdf1067222424cf690eaabd9ea102b7e4d6aeeed89918212e2f7f4e15b4bd61d5c421d586c378a3f7befc601739055a1c5c4116e0180affa42308a0f53fb58090ab57d0c5aa4cbdfadd8d6da9270e077205a5c46a82c6691a9f017cde11ac157ebe3e5b9c52c31c1140616f223429083e25b43289a8ace75c7c7480aa14606f4e2b837ccccd0323062060dd2104d35bf7cc1f459e2601f016ba3d0ed58628f8269232889c6c1c3771136feb4578ff59c418572acf74e3cac262d5e007e283afe61c4fe2bc05ea9bae229b680abc49ccaf8b2312fca6cb8cab9c78b6abb0fdb59044d3b098ab07ac54043ae92be9dddf32a8caaf38f6c0e3a6b06e9bd237ae6d47004c8ee738b6a5e2a31ac74fa32936924702065bab2d1bcc77625b6f92cc3f1788db21fff400ec8c0d28a3e8afe3e411160b1637a2dc00a89ae5fa358dab12cc3c615112467307e00a9509af02d7e6e2526c901bb87342ce599b349b5caab9c935215464cc62667b3d179642e35789cd2136d4f9c4ab399899691e32279b257b524247aa39f1b6345c107532295d643a1a7a133fd633fcb9082cc62b0d822ec25046765e233c2017c860c86045c024cd368061480f27ed0aa008f097b821372d1900f911917d88dbe3ce9b82308b0544a422af7622f5b2dee2fa420c41a220a7218b90e59be1a9f0658350542f874bc28139bc1d28e81735a44544bea760bf3acbe1184834dd7a55402270263c14de84497638068cd168c7357026980adf3fa42d0644c41b69a1d364adf649d022c2db85309a7909287ce81924bf25e6215a848005188200019af0490965dcc417a994806ad800147941498b4c2ce479d983886dbc3bd1c1d8212d26fbb8bdd0a9a84f9ef0f13e3e9f0a209d1b553d0027d8184475bac75704df3f67fbd61e292f8a8a57389d40aef9614843fce19cd2f4dfad61b76ece617a0c37063c618e3d8dcb9cd349a8a9f4986b465c6c7d653e13cc88cec93f5af939396b066e4ef3fdc7ac71936017b96105edc7aa41d6f4e4c73f24121c05200168c659020c91b61aca64441991305af68659c7aeb710847735fb41e04591dd6851aad798f8b046c4302ed0ae0ed03e2fc9ea1b6acd6f97c938f6944d70a4220652df85d9dda7b6c87960f6904742934507555c840cbbc841577750f3faf8d4ee492468739c5f1729ccce4bc2d6bf1eb94d1e6f879cf2e992809845f8a0a02b549b02fa77f76b1a0c9843302c8c729b35f5478e42cbff4b5328da5b34b15a8a56a541d1a04f9b36d516a72b7280f175bf54ea7ac60f62fbba6909124afade9da9b7d5ff63b1707bb8aaa5e6e679238ce95693e1679f836f5bc0de2d336438274276cff99363157568ad24a48bc990f0f68d0ee6eacbf01b88f50b52383af562bcd7d588f4f21645f9e8fb565a23d277928eec50b3e296de1260207cc3d4715e1db52f303a618ada808d8ccc55ecbe98b101f4fc729bfb7a86c8d65eb66cb6d2f0b3b36742a35a4f32da68bfc99b2b441928c64c6c5e37ed9d5c2d9ed8cd7433f93ddc4e0879a26b595d0ccb45994025f00cff90c35262e1b7d90ef16bbe5e0a89b7e6b78556764bb542279b9d9f3e7f5340f2e72ac8d2c7c8e6a0280b1858c3d9eb2f6417bef74808a7b0faae4249b0721324676708110cdac4be27d343981d49fd1c74e6b7a2e351e4183c6369402c3f316d816958ebf8956ee1ba07b697f2e68262767108484865a4087b368655bda0f064bb2a84a6bac828cf6c570fe9bf40d3fe4e55519182dd947241bb187e06a74281f4519582c78d879a8b42adb2b79401d06fbea5482dabf078bdf77e1d69bef3f9efc2b499b68ef6ce45af49b4500b2e9a54bff0e9f17c0d2f7d468edde659547ccddbfad2a61ad313eb14491831b9866ecc8e867651b5264f2045adceb72ed7f125e70e6330d188247d39cb8284fb24063c72d1d2eea85b813d542e45e6b0580acc7743bedc2dc98aa0264082b0315c846a4f266d014a578d1a4c235285806af60c85c3a7914c2c21cbc9f17be48a1fb42a3412d7122c07e28851e184691da3f57f6ca2e93f0d2492635f2b8d1ee32d0f7f3d8f4a22b41607127605b72187eca8f72ce76ba06ecec4d2f7203f102b5f172191b804ede1e5f0baaf107850389208d437dfdd82de896a758247965eaa37a9e04d76f5be4ffdd2adc143265f058459452528ac94094d36a2e4acb9c8c094bac00618bf06cf883d39af655d56531d5f90c8a341534c3530a961ba0cbbf71fc444314e60299724b3ce74ea2751ede9c2ac174733ce13970a2a46c6318b3d8a8a67e8f9491a0eb41b984b09d3118197136aa09dbc9a8184a242a9716f96970369c8e0078816c8142e910080e4d86ea10177ddaff5244e2ccc2817bcbb02c5bbb3c861f8be2587f923511443b997357bd53400803fed09368b15a1e2d59874aa80927256227559e48ade1dc9243be0e371cde0f1e06f98ee9b804e0b1b0f1a2cd4a080446debbd903f087a1ce994cb19dd555d4d35053322c405fb2a00c6cd574e5cab67aeb30524bc8663e35293630d96e5b2891a4cb348a9c0a8d528017f5201888527ad1904beb90e112db4c01477263ba57b8c41aa30aacd2236d83b19fe02f88b4226e553769bc32a949e1c5e397c978fee27786b43214e20a4bbda2a451e3db502c46a34cbf006f4bf5e732ab9e80b7ba2d875296fc93a09f73dc30096116ae3ef1d510535f59a1be55211277183d6a73b39d1785e89c528915baf146b1bfc979dee1a292fd2b0468510269b751993c0b4893a8d00e9af9e1c506f2d8c3cc872e8679430939fef61ea6101c24420d16dcd8764da81c3bff0f0392bb62789e775212165ae7846a61e8024e541119bffe178bba35c9417693b9a36e61eff664a43917dcf77f64596d0fcff8419e6e783a24caeb1909250edfed83630a1161131f9fd16e3a85ea0d36d25083d56321a34236700ddcf3c995457cc294e45165a9585be2b85dc9282641d9855ce09606c35d91ab4b7d8e7666f685bcd4eac4d850d24360184a19bb9e9a1215e2c36bb275df7daf80213b715b7b0a7c4624d4ad879c05701f742f4c1ca91b82a052a34454552522533fc7b790d71a52351bee5f1e84c7049b5f5545e3165ab28d1b860b730af623d4bc603dfbabec01e33c4414d8a8c6439e2a9223d9c51cd0e38d5ae2556fc4ce80074e271d7ca68201c4c2f0f1bdba2613cb6fcedda308f7b305e68260fff51ca162bf568302281841ff4fd0a906fc94343404d48cc108250375456c810b35096e2ba2001ba2bacc2fe75fbac052f7598bfdf75e8859f1069dbd6726ccad4c38c5d19272dc58c267b3dfea33086d4e497c593080b9240215b900427d8b4b1023b2a77115614bb26f66db358420c055138200bca2708deda5af45d61c820190196a9a2b244e8dfc59f8a89b188508c75d0f9234caa4bc53ac2b42ee036c704240f2d220cf5a08059a8015a3edbaba850d1d0c585d947748a1e81703656870be75a2d20e31c65f6c95f84d586dff022eba34d9a51149a25b5679cc0375a931b33cd2a3f1930877486ac914a5a7108772d9c914669cdeab4bf77d86faafcb35b82b45b01f9e73580e78f63fe2073be4b6975f38ad36be64b0a9916cd257834442fd8b02d324200c8048529379adb96703bac3e668cb5df8114811a46ba83c00d874f60fb1151b370001e349c2af782fe1bbe6d8b016ee419dc654c8e4e571128ccbcadb229917343ca40cc0c48c573aca1154d51d2fdd014971bcacdc3c09c29794f9bf86db08caae52e239e948d44d938686c538a161f296d543428916b756f15d81e391679a5bf317ea47e9be2518c7413d50fc0222b6aff5f09f61c812bfdbe296024add5f744b1d7e4536945ba9e4cb2717d3ee6d20c814190a8d2d38ed94da02536fe16ee34061bd008470b40231306797d2a13293157730eb61d4424a429c33e24afb6cc0635a88d7e15f73274742a48a3c9a5f04c2892f666e79a8e917079659b67ea5206b3211cb2e9ab5d2a14a0ac5ddd540c62cca3e81b504e74b92b9533cd0e31f06f53f001bb51f5502ff95d96acaaab71f3cd45eeebf484c8e305c05810712cac0b672faa4bcada7ef21bb8e9ea00f8d5885dba4fc48a4f2696080656bae62e1313cee862356b4311a7e7e7ec57e581150e60716d85cc75334b52f357c73685529de5ff1ebd31e7f9a25db7195e216c34479d923083b8aea4c3333c4e8da98a948e430b84222442fd480e67b7ce0d0348e9818401eb57b07ad0ac8ab09d858699a3f87caa8a6cd75dd7cf7f1382af18a0d3a3e70575c1b45d1d0fac8e4bde70ba438a9ea508c65deafe183472e210d43d7c525474d8a1fc8e2711b24b2716a2b240a935400a2ea16a88522b0120e8fa92f8cf9489e98c66b6cb4a6563a4fcb7e765e13ab66e52ddf247bc18615b9ef0356171aa23edfbec66a130c41e97c3f45a1477240a8bf0f54dd3e375fd00bf64e8a1591142d0f4b9a6e1f826ebffaa9cfbbe1af75fe43d3616c130f6f9bee52c8a9686e0a7d3af763c330768da04e35664e792a4f3ef66b896c5177f40e66e7deba8ae477f4ee1d23c456adb4913d80a8b9d684b6f8559bd71c4be9c3d43605289a032af9c5e8b41dcea530c7fb9f473e9c034325ea832b812b3e300c46af08c436d3bb3845be598870d0bb30037e598878cfd36255e0b6fbeb45a0af9f921cb7ea2735942f47c30d4f5978402c56003c92b9147ca4cabe82c89718701bb4a59c3c89c26968b45e3100568110c95cf0220fec5c75804c5eae0c4626b3990801f5e93ce3630fb70525e7bc8103bbd45f997e5e1b2259bb0feabb0a9771c399ded9b5b168ca1c2ac9172fcac598b0c94e1bbed2656a6cefc2bc948408e4c9f85486958f5de9b81d6f0bfcc3ebb4980973fc5c702110f8e592dee70e584c4db3e6c684a72b334c3848fa6ddef5874cb7e738382092e5c3f42dcd3d8b71c50c5d422ddfbae8ae6f448965876c83da64a8773430c1649ae647c92bbd3f98d83a99619ba6b63102891e821d1c557619a4b954ada460cd90056ebf517cf1f496a5b28942b1102831e3562933e240b1ed429b576ef28ac76baa6e70a2c5458af9db66a62672c350129703b4db0e377f10a42aed3f398fbce3c0f93610d228a3a90455dadb320fdc514309c30e34ea5f5b6d444cdb23accbe58dcd0aed259847279f955adaa2bf16575f5ae051456e48e068897d3cba10a381a1922f481c78593d2b1dc5526514e695b5766317ab6a6030b368b2d5f4d359074f1c0fdb33bd764157be79fdb322b7cbd2f2662d5b8af05ed67b840c7f2792bd15923e6fba380f73f2b208307671c0dd00acc7b5ce895e29d975d1ff39e59adcf1c82709c1edbd7b39aa957d215c8f4697966d0a3c61209354689e6ebc9e29ed0c57303c4e659de32dbf88f6257bb41697e1ab4b00aaad2128ac2e5efe2d1b90a1b5e8b2f40d196095021de7856e049a88b01f0675f48e640a920b39e640a294928c962c55b5128fd1be9986cc15db616396f9f78ef7259ce0014230de611d9b4758ca31fcb0f0b9f9599e806b7e330941c0279ca235620aea4900c3506b3a1edd9d2dd787e8e03f799088611974d8121e6764e726ba8021f77ffb7a2353289a809db7bce46334d7f116f0577ea338454051ddd8a5b244578399a6f8c29d5ae214ee0c81edf6472892e260fce48c7bb3ab4d410c5be137a265658081972dd91841258b12d1819a79365926e06efdf0438f32afc52b734847f2563e00ce0bbee96263194a9181be4496df456bd5dcaaa0179144469c6334ddca80890bf3eb555d2210edbb7866620a85bf8467d907712d7b01b0314601f2d8900a1c42cb616092b068a10b8782fb919b04368088e2d32020f3906449b88734d2f60427ad2d835cebc6f9e0360310faaa8d92922f3aa886293776a4030e614488c1afe064a6b5ba99a798d98a8d788f8eb080c4edcec6ca456ee75a4a91cdd0fd902e0cfc0572b52a92b22bf11debc7630742cc359b4231719267c64c34b2afbcaa72edb761bbcf0c28119bbf0dd662c4ea201bccde07a4c198c2a4300cace89b1f880cb85c304b17833afc873d2975704e471495a5e286304377732245f31af0a6f982c851172d708257155b8e6538919158031ab639152189be8caa4c71fa2506b130ebb26669681d5dcf12cade65f331cbc85865b1123cea0e28b3777f733f396156e6531d46c934368461670908dba7bc621eb4ff4ab9f167e5056355da8f0909578702c8a4a278b01b68a23a90dc4f7980fbdd1c111c69b612d33c558d5e9b91e26edaa8c01978eb2ae8a9a8db7e12d345197e68355fc0f5d601332ed67039b3e5ebf46b7cac343a73b938a634d21e5f844fe268487c7cfd24497cb3195e63e3d2f08823100eea722c3ffe238865a27566414a0307b28751bdcf01a1a821312d94a03c4ed6c55d7d8e15a270291ced4b90b33210828e2e71537be0a5813f5a1a7a202541ebe650c85991264b60558d55b21edcb577db4fb91bfe57080455e198f39d34900b7632816e40b6ab5e36f3a29a1de14b7f643e8901481904a6bc54c114fbd8adae248742b390a443575f66df9e8848d016cec59caac36b5d7a061d00114aa9a5635fd196bee516d778dd0132ab5b3eb1e09a1bcb5eadf35c21ded2fcf0efdfc565ddde38d3906760d6fabc57c1a63b4880b510d5b0b2d02aaf5d0560539fbbdbaa065e627a19739c5fc6bf4f893511d500bd53ec2cf86655e761d7b4708e66c7be8ac244baa253ed2939bb73458238ea0b8b5fd82bfd9982fb2aceb2fd49e128bcdc65a7555a07b8ccc0cf7ee3db899c3bdb816bb2a76e6581a1916d275a415784bfdd533efbd2c4e6f9d4d94fbb78d375021fa11ade324291217645136fad6670d979a52099a3045a3f7aeb3faea62b7ccaad2087a753ef90f3d4ae34a38941469a9f393c0affdee5ab7299d31ab1cd53cbe4ca9486d0d2c2a70073a748c3f24c6fe4efbba6696eee897ba0950ebaa6693546b45364e02c89f71985ef9f40ad10e4703b85f3af303874e308bb8c5b7a0652838e1da33dfc0c5138914b93cf241324944bd499f08e7947b20ea2beb4f3a28d5ca4e0412121e7892f28521e0ac1d790a4fe39acc227f546413c33140d48b4c8a5844664e2485d8df4a20440103c49f02ee4504100b3460b26639ff000000000000000000d06c9488b5d4b04c32c98207d412926fc89492942925e1ccc4475f91ccd86266e2d3196fb8203e0b730a3d0b287749a3b42a740105cedd2cc41a939e1d929ec0279df42f852e9cc097f6acdb29dc26b0d6a22fc9ef3439ff4e42174c602cfa99909f7f325b82842e96c0a44e272a76e957ee7b852e94c06bce4e7db58fc651a18b247cd1051218b108d22c66025d1c81519e849c2c261d411746604b937b2599530d7451043ea51ccd7388dc6be9ada196e30b2f6e055d10818b9443e92fad4fbf6e0d3574c3462a29e862087c90ec15ddc54f896c110237314d0ab1cf837952221dba08026f11f3a8acf7960d5d0081ed20a6439aa02b4ad63770a48fc019baf801a372504a65987cf5f73860c68c2f74e1034e29d99eb5f7a3e9ca92a18b1e70164d98abe94c757e3f32323e30819f31e34f1fdd42173ce02256ef281795c1c75b43173be05cf39747bcb421a81f5043173a604fea2729b226799ea70b5de4c0667481033e6d5add4c96de49c4cebc00e3168cc47d6f931f5b84da6dc1aec4cfe03966ef624282306a61058316370b2e599ffafb94343b92740b3064f1a8dc973e444d0fa271323e30810f2c1a02462c88e1dd2ad1c422ba57ca56083060c16588af3935fb54ad6eaf607c62ce0c6a3455250a0718ae60354c6e7d95fa2fa5571b60b4822f15ab22490e31046b510e1c5e7c075660a3777c04343063c6fb8d4f0987ea18030c56f0d951c332a4b1d8555905f7d144d5346aee9a160718aa60e2e52c2177ac9128c206c048055b1ba935776ae8bb132a38ff885d32db9252f9730a366e4c41bd24efabdfa660b3da474d5de1399ab1018c5270674925512a67c8e62318a4606450cda9938c98e51905af1a5c74dc18b173fba2e0fb24459021a664f6d150b06e93627594a4c26240c1796b68fdce53232ce5138c6a37bd49b2564a264fb0f94249ef52d943b4ae13ec28bb5099f77bae172778932d1e925aca9c630863139cc6cb695a74e910352675c0d0049f2c9d88495af55f0865824d113cf68667d5ce588e47fd35920c3030c18910f92a9df0333ff52518fd9a2474ae5a4fb95a82fbdc8d2739096154820d32a4942df57f930e1d0f605082cbc9f924c85c39345e747ce18015bcebd892028c49b097255a1c95c63e69aa051892605547979ea4970c08dc780f143fc08804db76172dc888a5fe15a4fe0ba01b0ed871e30d0c48302aee6b585a070acef800c623d84c9d2647d5e5858e81e10846f5e2f5efa6afedca0e188d60e208adb9f75418c188896790e7bf71b78a418e0f2c82ad909e6eb3ebe57a1d5d0043117c5a0499534aa14470f13ff8b8fe89dcdfb07126e30313c0b1e3460520e0021888e0644b2ca53d67cf6cda21b80ba149a824a2d3ce021f0181808cfa1578f1c507540dc109d397a6a673d08df700c2280497f2baee4686b411e60a6cecf862c60c1d8f8c053008c1aec6209356b7c4e0b941304aa8dbdc118d17aa098293a16142a6b6acd9258160b286de5c2b5679474d830641c18d1ded81d20c9080460c6000c2c800c61f58eda03478cacacdfffb01fbaf8a15e2eb7de063ca413c2c870ffc48d260ba83cc6191de03671357541cb5a2fa5a187ae06a4f9e32bd5bdf5fc1c883cdc003bb497dd6d6e4c3b80317472f3c54bebca6f70d740004323670011930ecb09ab688d6818b6cbbd9dc62e8c0c6e0d9cc4a7deb993b0756638f0a1ea4adea480e7c8e93f5f4fb29d3391a073677ce4147b68b4949e1c05ac7a415ea6b96cef2062e3376d0d210a674776ee0b4a6533af68dd0665a0d352f68c420c70eb355186de023a54c71f36953fe1936f0d73ac2fac734833a6decc8d15e98b5b1397e870d02630da9d25acbde53891af2742284a42d87942a09d360da4bcb9d3641e88de60930d0f00415f2c77c5ff99fe6d8e1c519bed3415a5d7bcedbbfe6d8e1450f609801b791d13fc949190a896a6bb2e397888b05070c32d80c1d83cd8021069b71ba02186160cb2ac8ea984e69d5440130c0c0799f9fbe2755290815185f6064698d9649654facad86ce98616680e1053367ac4bb71d620a110d6074a14eea27d457f093921a3a63c6295fc840cbb1c38b3cc0e0021b7945857e7b8d5cfa1a6a10408ffc5d60966387174a80b1053e89be684ab96e48b4b5c0e87749e99ec325796534b0438091053635452d0b298de9ff2e00030bac48504977902cb1f23afa5740c35c05bc51f017d8f113983143c71b605c81cb9921bfe54aceaf202bf0ebaf1df92a7de408caf8c004644880053224d0011969c60c1d418051056e5df73f72a5043d2e492a70f95e83440dead1740e630a36a30430a4c0478e2592c272bcab5214d810a1cd72c5d89b3106030aaca7ee17312d3d81f39a103ca7fd10e671029fee413c537f57dddf042efac5ef50f7153f86095c0a49c8784155125aa12570d94be94910af93712530923c87eace6d4229098c861429948dcab92c8e04fef55a6268cd0c778fc0a5926b55d224308cc0c56c7e724f4560439495b7871c184438585f6befa69892eac01802233fee686efd42e09224cbfbd2f561411d043659ca18acdfde2bd4406027c918839d92f90177abeda9193398a68d0f38b53a1583bb8dd2d1f4e0f54bfeff3ee201273b76a9750bdd6fd901a3aeb478af654e1dae0e78b7dca641c55bd7490e14133572fb540a03076cccd19d44929d4e557a0b4eeee6dc16dca764f73b6a9ef49ab56057e4797a3f93165c5f76fd9c2bb6574ace8253abb013999f2ca852167c1ae19e32a5fb12d9120b267f0ad59184c89eca020b3e096d1ec3b6f73d88bc820f5eabe92c43d64f1257709572824e4abfea5da4159dd09be26adda69615fc7892ebc1df268577abe06312dd29a8f52473ae0a36525bbcb2b8a7a34c8516ddf7626668a8602f690ef2ac36a76027898c397de357d61453f0f977b14d8de52611e1a214aca50743c10529588dfaa6944ef791195e828b5170791984de76040bc1852818212107ed36b93ea46b878ebec01eb8088516447a90935cd4fa55e302146c56519e4b634c39c5ac15c4c1c52738f5d95472e9550604647ce002323c805e5d306346aa0b4e87e903179e60a2ef4f344ba37e53c53ab1a5a096f4d95e3458802347da2f3420030232588023870434200302397ec7171ac8a18118ecb0710304ade08213dc04add0e9aae703179b60bb9492ac9d4cb56f7279e042136c8e5641e52882c08c19336698d1302f7b031799e04ab9a48ddf51454d8409ae37e945487ab1ccd74b30224fcca413634a1d434bb03188bc49e656e9d836808b4a70ea46620825d5b26b8812bca61835d74a72acce9904174f2592603b53d3493b3d11af8e043fca7492a43648c9e1cf986134cc0d29b880049b4ea9b0ca1052306fb978049ba761faf66375252547f0f57fa7ac5369d341a811ecc5bc74b252d4fe10620467a6d36711fce43842e634b13ad129827591232a5d357d5026821395ec34c5c9e2a259321788e094fcd1d7f268135cdfc02178139eec36be6b0846359d44b3b23f99a2d501191090511c90b1810bc8d01578f1c58ee4a210ac6594a074959ede97ac045c108249a3f9563b4537be489f0339c1c520b8d420ba62c8d4fece69702108b62d6bfc0dbaaca1f6c5a9cef10109a00afc4b00c70736135c0482d11492f252ea5f1a2640f027ca62976ac864d5ff813da5726615f9317509f98115657da56e4b2de3a80f5c88a5ce4f66f5798cf381dbeb4dcf9c3efc3ddf032b51a4a4cbf94fb6d67ae0367352dab3c59ced3179e0830ed11e43a74d4a6af0e05d95289dd40e1d9dcc1db8b80323b4f2488f6049f5bf7660ccb754458a7c7d395b07b62aad746084fb48f2f7d6f7949c03ff21dac4fb516f1552e4c0889c555a4aa5d46689031382ca55a225040e8c764f1ac145a4da45dec047ff0b212f856ee0836a7d98b829cbe96b039ffacecaf4b55f8d8c0dec79badfc4fc23b8580349e9b9a45f3fad7e0d5ca8816b0d75b309b935b29f06363b537e92293ff829250078c0051af8efbca1228606cb5001400eb838031b72f0cab17fd2877562c18519987c2674cc0e323def25030210085524539e7c5409918193564a629ab674898f81ed9059722a8be7a111039323b8e692aeba9f0d03ab99d69a2a5e4ccd82810b6964aa4f3255dffa055673d483294f22c88b171851225a9fb4cdf4d205aeb269273929e67c0917b853efab9deddb22dc02f7ed7d31e71249ecd302637262b8a5f61c63ee6481538b147fc33fa6981d2c70a6b47fc6a04b2366e70abc06935742d57d7dea5881ebcea036e7bcce3455815126c23367b07cf553811f0bea35343447fb53e09345b2b414b8c8a6a2486bd74f14f86b4f3fe93dab5a87021b53eb2615f46bc4ce13d82b55964bd78d0027f0126334d93188484837029ac0f88db273ffd0ae4c2380099c9a08ba744e5b272f8d8025703ad44f728b9fc64b2340098c4e956466ab24816bfbfb0956692470ba52bde624844611e92370219d12792a861c84a48dc0a6aece292a5204c67b3cf3e418372d4804d6772498ba1c72bcab87c0c792ec59e4a49c529210d8d166d9fa1bf2ef0f0223f245e4302ba5ae06026316222c5db9adc9fc80d3511e49a7eb033eb7b673e9d320a007eca4ec0caabc84de8a41000f382553fd06abec80fdca514a679f9cb60e9814edf267cefb6e090272c0a860f79e194f5b081504e08071b3f395585984fcbd18140e700b2d3b0e600b3e5948eaed357fe9fde4c0e11e38402df8ee2fb551fbfcea4a2d0b07a0852942bd280f42330b2e08a527a50d8d2c98f4c14ff5c72832e64c2c38ede0273aa793d934038b3d7d73bb6ff60a463c59788f32af5319573072c4736d64b62454a6156c3c8d9b2aa4945d5286158c66483f215bfe8daf824f42eb4f47b95b34a9825d4f41ea9e2915dc093dcbd49cb3c4840a4ea80fa644996d5efe14bcf7a420c343a6e0542b262dd36f42c84b410abe3da8a07934e7f4cf28182543448ca432a6a41105933688972a19d3881b0a7e93ba090d2a289858bd3145cfaf12d34ff01fd1b27e363dc18d2edd2674896c51e904e7de419609b7f24ce104e7a264aed3b1ab08d90427de1b348aaa668d9ae023e776cab12f2f31136c9414d6224c8909dd6282b160d2b4c7dc25d8ec31fffdadb345ce12fcd5feba69c89b3656097edfcc9476cce121b594e05e3b958e8814aad54e821f95b6e3393472129204dfda75dfc91309ded4328fa6ce1a5703093e5e8b3ed136b5961933ccd4e0008fe032bc2b86a0710427cad288905572886e23b80d159a5adb561165041b314cdb76aa90927211acc6bba04b06a154948a60739452a7332511ec7768799ba49c2c0511bc7a65866c91747f720846ba9679320dc17e4aafefba214aa510bc5734ef1ca6f38a47083ef67fa6fa7987984170a2f6b2cd2d15047b21fba9144981e053474cea2dc7d3220204ebffffbd573bcab37f60b55cb4d65d7dddeb07f62e9208e525373ced0363d9232b7b554e7df281f70b325ba7730f9cfeaaf29032fbdf450f8cfd8ed2cb903cb01541c70a423cf0ea597ea2ec2c46f10e6c4e692f855c7235433b30c9dd6ab4c55e53b93a3071625c533ae64f7aa3432a9e88b81fb73930a274a594364750d3e4c0648fb6217adccd9d651cb8d22143689fd4fca984033f7a37fc33956f60ff45f47feec76c2737709f473fa62d15dd7d1bf88d19ed73ce610322d9a6d0dbac8117cbe4a92d7b68f0a881bbd11ffafea74ddd69e0725ac79359ff228e062e4f8c5663494a909e810d9e49622ed354d39881cbc9a75206fe722c4b1e62a8e5970c8c8946cd5ed9317093832855a153124a2a06edbaeb3070393a792a4da7da4d30f0216436cf9593eacc2f705b2539642771b3142f70117dbd2624e55729a50b07e00257ad1ed4a7fe94a3537d802df09baedad7962be7891618c9a77f55c73d959805be23a764b50d9ada6181cd794d69bb13a54b5760d327ffad8e8ffe55acc0a54c22694ddcffaa4a15b84a1539ed458ee908f90350814b1b4c2c48892e41660f300526e70b890d16d8b800bae00052e072aab32044e4ece928b01f44101d925710d20405ae93507691ae5e434f60ec3f64f69992ee3d9ac0019cc0e6183a8577c4d03a22076802390013d8d23cfde91a66e7590223d9ceb2d295d2995502235252c92c5f0899a249605cadf49bd98f9c2812d81ea5cfddcf23b0eb17b23e9e79a76904d6d4e768d9ea92d04b11d8efcfd5f2103a562102a7db2726cf0f810b0d99efff7b212e043ee46b3dfde5e90d02772159ae6a8e0081cbff63314b3fe06416dfef7c9d2cf201ef993abd63451f6d0fd82c5ae4f886a06ee10193cb82be3a89e2a1911d7029c63adf1111e248077c0831ed7da4ac98c90197369bbc4e1e00076c2ec9a5334274bffcd6a0a1c3865ea08b5b70ba4ba8c54ab205ef13d3c4d7789b22af051f45dd68cd382d189d4416193a5990f89905174a256a870e61ed91055f17a269aec614331d0b3e8f6aea1c3af6bf5966ccf0c20b07d0b0e1850ecd0009681040075dc082159d71bb44fcd368bf82375351f443c7d18f2bd8bc92b9eac12b5b5ac1c6120fd54efa846858c104a17bc446bb0a2e65cea982d5a0f5cb72d61ce5a682efb84994e7bc67b5a2828f2231a38738bab436a760cf36b3738eb47bd5147cc8a6dd2cd5523029ad7ed2c183ae9a2029d8ab48e221b3a79824380a6e5d53e41042f2690c45c1c414b2b4460c43c19e975ed3e2e6b154080ab637baa833357db1f0136c764db7f7eb9c39c9139c27fd742dad5721a9138cbed3d7557acaa2cf09ae2af4beaedf04a3666722f6a8bded9ae07e4dc4bd12da69f54cb0a7dbbe9f54d7dc83096ef774688b2926f27d096e93ccbae51b5f2c6d094e2699b3fd04310f31956093a6968a1983f2cf50822dd71cb39bba93393b095693cc1dc35a4970318f041d45855a3d12ecb6a8ccf6cb9a5a8504e3394d464d6fb53f8235b1fd1af79f6c7204a3b78465ee6ff4321bc18ff6ca1622c9333d237893497254f7499d914530294691172e9e22d8e457fab35f97082e24c710c13f574e1322b88efb5ed284d0d5ff21d091ed3704a3cda45dca1d54fca042b09b636d7db6d0944284e03ada7becc8aac9f44170a74bfda998cb27a705c178ece01576a33dda81e04247f527797b326300c155ebc4787969a9b47fe0ee22041d75cd0f85d2949925d5be97d8940c9080c60096d0451f9894a7acb3563e7012dc43d69c71d7cf3db02645a45cb23ce726f5c099a4201ac4cc03ff35b95472b8a77cc1031b4b7bb68ad8af9f3b70237ab472affa47ce0edc5bee78081943eacaeac09f4e539ff897bb4207ed620ebce818d47bdaca21228747f997e2c0e42094d090d4a7f98743e9e20d6c89dafda8a734c90dbc69e6b822436d386876ddd52036709ea542dfa84926f13570fa375459d5fe458d1a18dfce5f394f032b6a4d3ce58a0646e5f49dc7bd84a7f50c4cd026e3d89e7fbcf0a23770011917900101191b900101191df0c016ba30031bf4a9fb08b74f9a2c03afa21552508d222642064e64cc89391903a744528b5719624162e04b43d04f178681bdd81a18ba8b2f70f94c8920ba6386a9c60e1b2f485b41a379814f49c32c4efaabfc9f2e70a1f477085af96596ec820b9c32ab8d1593b58b256d811f7d5b79d7f7633ead1678bdcdf00ca9c5a18b2cf03955e6b0fb34057460e11c53698888a87471054628db1b4bf11c735fbab00263292ca8d1f9448abebaa8029b4db484bcd295426cd1baa0022ba6ad295542bcd0c514b88f51a426dd5a0aacc41c3b5ae9db1dfd4681133fd731a60280c50715f88863fb9b6b253dc83ea6c0e7ea1c3be52cfa9002e7a9b282885f43878d159c2f3ea2c08f670a2259f88002ff9a72f4e8d61c53b5864240c6610c3e9e701f4eb0190cf868025f7fe93f4851f1fe83093663011f4b487b4a1c53751bd2d2850f25d80cfb4882cd30c10712eee308c53f8cc09f9d3e51f94b8db2be085cc50bade7a962d0a92502bbee2e6982d2b71b1d021bdadad234ddf22c2a04b6c64356c849b6458e7d0481cf13969b6faa6f4965bbf00104b65333e9122b2152064900061f3fe04609c91733a8372b4d06363c9043031f3ee03df46bcaa4dda4ddce8a8f1e70ee2332f43fae24dd8be28307bcc5941f797b430ef1b10346db65f6f6e410427ce880ade47eca632ecf11fc1c70ff79820e9d823e70c077521253de5cdd8289a9634bf2713b51295b70a54f9b8a635ebab2d383472d38310f216dfe5bad68f2e0410bee8388de49bb74f09805afda3143fe8f799e52bcf090055b7a178d05db41af58e74eb767d6253c60c1f94a10295e8a9b99a4af60472dbe04916b22fd2f090f573039ec4c3db6e70174e30b1c44111eade0d3c7b40fc9ee477388155ce63435fa19fa3da41e8883c72af8e4f1da2f34cb060f55b03b7a9f359a4de49852c1bb9b5baa50212a4b58647c6002a8e03708917444bdbe29e30313c0810207d4701c5ef0dfd0000b70e490400766ccd0a1e36f04a0081ea76034698fb6cbd9495b650a2e65511729b554bfa6b80d1d7dae0b1ea560e35dfcfbaa7841479c147c58d0ba5593ff62053874d07817b40e3410788c828f7df152dd6a08fd31f47fc3060b7445c1c64aa9bbf36d545d2ae1110a7e4c493a53a283b44ca6c10314dc478f543921a71075d0f81dfd39bc7c82cf1996ffc3c452906a7a82cd41b364bc938eaee1050dcb4e304aacac3e5fece4593d4047d7d840064840e3051e9c60f4774553ac20849c108f4d30e992e5d1bcb6300324a001004978688257774ffa643ccbcfbc0e1e9960f3c5cada39e41e98b0191e97e0759475caf9eac1f32b403668dcc0812ab074f0b004a793b684b7a71090418172c18c196934ac5c70e6151e9560928e1e593d76cc2aba1c36be6881f7d9951b785082bd8e123c85d61d306306fa1c342c3d26c16887a7ff55b0865a26063c24c15d4909162b2435d4cc5cb01e91e046d3f7b66b2fe6cf438289b9a47ed6bbd0a7b294f078049372de6f4dd09fb22f8ee074ee4cf283da8e1fc7c248783482359df72782ceb935e388f06004a3eb8429197216537233a371088f4570dd973793884c2287a70876b26d5aecb4e9834722b8ca509653d09337d8e910c19565d490fc430ca6df37781c82cba4355aee710dc19bc758267b44505944260b1e85e083db95cea2543aa14458f0200497be4e2b660c0d828fe06b1a348390e992cee02108ce947a4d481ebc46a436107cc7093e7ad4c70c1e80e05287f8a8522989a4337fe036871053f482fccead8ec1c30f4c129d2734c45243cd78f481abf5a0b7acbef489f8093cf8c067c9a0a3aa8e22f0d80317b4c88c11e375ec0ec181f486e0a1072667791aab0e3659623968e0406b3af0c80323bca38fc618f2c649d3f082055f1cb51c78e081b5bdd3493cd306cb0b1a781e77e0bbdbc53e8235f0b0035b2654bb848edac8e1c50e1c389229002cc2a30e8c96668b29d34b28757cdee003c0243ce8900a32e9cd41086d75d30d15dcf882060a6ed8c8a152f098433aa709da2c9559ec904578c8816d4dad3cbe7957e1c681d1a1d193ea0bf94b46aee0010726494c611374c8f137fe06ee84e894e421a50c1e6e606b437bba2043540c1e6de0746310497849c8e0c106bea3c8123a3ba847b1d7c0a87cf557a96261f050033fee3b3adb9a99943c0d8f34b02945e6bbbe772fef43e0810636698694f6e4ea67cecfc07ea6bca71e73b056cb0c5c45dd51ab9bac51138319330cdab02b031becc74fbac849e21f32b05f3926e96fd2317025535445a3a4eed6430c5c4dfe30ada53070d92ec49cbea729888a0718f80e692c9807b5c717b86c5d3d32fa6f3acdf10297649d254ddab1cc2c1e5d6044b6f5c52b692148910717d8f81e27754baed2486f81754b233247ce13b9eb1728b0917050c02c04336698990b5071e0a1057e2cf6a4687b714d9953f0c802173cd289daeabdd03e16f8f0143631fef8fec4bd6816dcf884c715580b2932ed289d0a3cacc08eb64cc255e45eb98f5e05bdc30368c3a30a9c57a5fe1ba13c4b3454e04a8b5f8ef1dd1a6a31c8b1033760a8c30c051e5360bb7a3b28956d53bb5b432d0be12105564c35984e1aafeb4735d462f02aa0a1f785066ae8e81a17b8c0dbc8f1810f5c40468ecf81c33fc78c1907d1781b39766cc2230a66061e50e04b07511ff7bc32564c31191f98c08e2ffc61c02cf011c880800c191fb8800c0cb0c047603c9ec08f9e8a4a923f8b8a291c2bd08061063c9cc0e728cbd9ff3a73a614407834810b2a8ebc8941fa658f7f60c60c26b06b49a4143d95c44dab0c08a0c0860e341a86021b3a6c0e1e4be0ad5dab27061d949294b4c33f470e1c8e373400020d7ce00233660cc24309bcb7f6599e4592311c3b68e4c0b14387415d41bb8d1c3876e8b051a3904712d868f99f939223417820a132adebd9428e073c8ec0c67e8da942b59527558edf61c37e05673d8cc004d5e1d923463c8ac0584ef224684970091e4460ccb3ba228576a837012f1a0319f0a259708354c163088ce5f7d7681b3b5f9210b858363a6a4d4160f2a4ec0d4adf3b030446a74b9773bb4b8aff033e624cca6eff26893ee093f231f38a9393877ac0e7d2d8eb26311e3ce03a047d6a92774e7f278f1df0be392f9ee8d6fd050e633af2bef0d001771936495a921692a40c081e39604fd25e2c496649ba24051e38e03fac438388d2f6f42d388b1fb145a4ec65b72d1851991d7fcba469bb168c4edc1f0b1d726a3bd1820da14d943c917cbb4eb3e053e8fb6ca9d642bd4916ac05cb9d37d2d8e6688a059f3ce614c543537e33c182f75b5d137af20a3e6dfe10f2655132a8b882f74ed22d0925fc36a4154c4a59f91a43bce81256b01e399e8a718212169256c1458e1ff2e9e69506932ab80a21da86d6a4630a532ab8b44986ae4ebbfda9840a7eb3da3ffc93de984aa7603d3b7733bfe8fd9229381583d0d0d3be29e64bc106abb4ba3bf163f6a4e03c99cc943924d58e46c16f1091a226fd31759028f8941f4dc89c50f02da63da612ba5243a060c3a4afaec6d374fa041fe35d587e883ed13dc1454e4282c59452ff9de0ca849031c7e5041384efbb55ca26b80de5a3bfdaca5ea209b62729532aa7b15c914cf0a53cb55e0831c1a6fe3c3b75db4977093e5a04d3499d257833d7d18d558253d92dbf3a7f88753d25b83c3974f4f527c17dfe8920252f094e2727bdf18425f54191e0544cc92e9e466d8320c18620ccb673da54d11fc1c61894f40cdd116c67dc1cb3e975f29c46704a07dbbe178b1f3d8c60f3e960e329b9e6945904a35474e46c19596256114c4ef5496f45edccd144f029b9660555bf169388e04d274fc2840937651e82ef9893a420e359ce2986e05c5379ce17f9b72985e0a22459fa6b65152d8460fb7c638b06c1e4bad19973bc1c2944105c444b16a6c2e24748205893b56bc137e8e92020d8b294ff0323826514d1d3d2b71ffacd1032778aa13e70317b47ea10437ce044a9aa34a12d439df6c0671125a27392b127af073e86ee4cb282bcce511eb875ab14494478e0ddfc3643be4e54efc0778eb6a999de6e72ecc0c71cf53dd6b6adc6d4811dd367a7b16d73b674e0d25dd2d921c43c1a9d03a7bdcdbb345534480e5c4c92b7f62c44ee71e0df2fd766e924310b075ec5feb2ff5e649a6f6075846f7b0eddc005ebcaa045d7063ee791541243768e1e1b3899449e5cabf91af8c819498d344d2a3757031b217bd0a1439372cbd3c04b3ce1e9430e5dd27234b097f692694d93446cf7060e049c81fdcb2233da79974c32031b3aa3e510c245235f064e144260554f627a0f0be99b420282c0d6e9a4124b9449d513086ca8599ea4d6d22705fd80f794f5d775b974bec4076cb6bc3128a165fefbe90117b3c78a7f65bf57511eb049444839e5d1f935743b602c9a96fccf9c3f4447074650715149e44b0272c058e98b6ed4ab603a2600076ce79fce9a786396ba5b702ae68a1c92b6056ba915633e55f9724a6bc1e9ab1015563aa490465af096a3b79248bd11ad9c0563b23f7c72d6f7a8ae2cd89454cd64cad31cf3160bbe4ae7481f23070b2e7bd7861431e4155c4a6d932d57ba6ccf710593f3931e5baf5ac198fa1d594a35949bce0a76634bdef717b9679b559c37dd2e55b06ac13a75880afe274c05abf69b429041820a46c87cbbb61b23a58935340e314ec15ffb8af00a2e1efa1d314cc1c5a05d51d3279e9e6029f8cd94e387522e29388d41c414a3a7e950e62898b82187521729a260fd32844e67c22cc40805afde91d74b7df4a07650b067b1d734b7b5f2e67c820f29898c296bca134cf274a645fd07359ed40946a8e479b4b469befd39c1a766cafc5bd926d8949a356249ccd5bd5e218626b808b2b394f44dbe97c904a72be7bab7a85c5b299860b7f44573d5ded54d97e0730a29c44db2aed3a9b010c3129c4570f7348f11e29a2ac1e7154bfaad327e469412bcfec5ce92da256d7a93602da6bc7fca933a916392e06357bc1df5617ab31e092eabf4e8b8162abea81021c1af8e123d825f4b96bb4b2d78d2ac2378cd37bf782a888d6033dea766d2d02131ca084ee3d607ad9737efc5b17011bca4bbb49e74e90e59530413447ece68239208c674f27c3ab357d985b06220024deafae2c9bb6821c62158f5cda06c6432a11b9e218621ba0b7f13ba561782f1aa9429062131648841084e72d0eb762969108c92a4c63dfa8b0c618521862078ffb23559f914084e56788d54f7ac412480603bec5a92676fd65be782f3428c3f7029a86ad3f9337ac8da0f7c8a7ce973a6557f7d5488d10726764a2ad22d0595291ae3035f52620c6a31a6ad1cdc03abda557a92e432914f7a604b5d34e410f3252f611ed80aab1bb51ec103a372444dd7ab944f7677e04d4d88a53f451df5a31dd8dc99fa76bb1f16e27560b473b4915e793ab03bd242f4a61407fa42c71cd89c3377e525eb2bf5e5c0faed2865170ef4050ef4858e0ac488039b3aa767f41c55793270e06a3bd4c7109a373016841ed5ddaca4843785186ee04ec7d6172183f491923670b7e229f73b5b36f0262295c412cb132ac9ac814d6f1f54aa55ad67278f10430d9c69bb6497469f06ae347648b182ce8920061a38b51c99e2297506629c81916699d2346d7ade480d3554410c3370aa134f058ff91a6a55234619ae2426edb36b3c29106290814f1ffc534dbc6832436aa8e5f8c21d383ae0811d30f80cfc8e66818d1d3a78c60c4300d422c61850d5dfe944ce1c535943cd7210430cdcbbc84dcbb8d535baf13474ec0d462bf802470d0f5c8c307017644e59395d8a91f61a6a35880106f62d544815752a92489f7da11149a90dfd9174b4bbf3410c2ffc122fa93da139686aa8ad0e6274e1ee2c651127067db9c0978956bffef6da75e0f002b30a31b6a0e99c6227539660b1babb410c2df0a29f6cf357a72c4f2a4e889105473c7509af37f956fa410c2cf01f6a1343944cf137b2841857388348226d1e21453c34c4b082796204b3315363935485e2851c3a82d090a50249aa5d7d8c674a3385628de4e821a8a513aa14b6ad889daa641f85ff945f082a8d12a09166cc18430c28b0aaa9611652d75d4c4fe8428ab1a497bdc47610c3095c4e8c96b6265708993681cdd1d4686a953a597f126230a1f3244778b2e4dbf607622c81c92124fa5e1469a193ca4ad8a3a41433ab29cfd450a361a3b0fce9132309fc8669d2fb8ac640021f215abab1b33c1b3fc611ec6c9d79c362d6d1cb8009318cc06d7035a5a2e7184563d202318ac0dffb7a321fe9997e1483086c49fc944478f486c921c610f8117641446b5e6ecb3f3063c68c19676575882104562c4452d75eebe86204e13edb941f3d6581c004db919cd2e411a22e3a747481428c1f70f27e632e1dd3317cc064cd2b5d237542ac10a3075cb0edafbc6615bf3f2b85183ce0b48404b9bf29213176c0661f79bf5d7e21b7669f1043078cd6d29925746b7a4b89428c1cf03f3986ea7b0e91725d8881034ee9f0dff2df0e32d45bf0b5597f53d255ae45a2f0610b465fd309d50eaac5cdd80f5acce23e64c1c7d1e939e6ac34169c997c75b51c7379c79df0010b3e73075d913d5de6455ec185fc204fff33b68aba14e1c315acd5aa96f66bfe2f995670573157a5143dfd5f7ff0c10af662bd6fe45cfb273cab606c3c7aa4d74acf135488f85005db97468a8c933434e920807bf84805ffe7e9739e363d1b15dc6b952a53e5a6a9f7317c9ce2cd0dbf94601e9a821f932987fc29934c4107868f52b05ede15123f72caea8a163e48c14e8aa6d76232e82ea1153e46c185c77649498a30f0210a36d77f4c162944d690311920018d1b7c8482bd1c547649fb0a3aa6d450d371c34622080a3672672d19774f177c7c82fb1839e35704c98e0f4f709a75395ea91855e409019e3123c7d7d861e34927b86ce15dd13dede66b3e38c1a7ac3be9e741c5fb2ec7c726f04313dc79c8f1c54c44f3fd68266c0626d86c952af752c6d53cf9b804a71f5fac3c7eac11d587256c86a58f4a30962b65997e0eda4775e386dbf002c7076aecb021820f4a30424b929e3986201e9e1a6a06c7c724989c993c94db9f576dcc2b3e24c159ba48cacac553abafa186b6c35b060464ecf01db4f88804ef16dc62e45421c125531fdf73755e7c3c824b393108a1b9e3e4202f62b083069e8e0f47709a3dc9b413e9a753b9d988abbf634e9a3183460b3e1861331661335211362311ac47fd58ada162c9d27c2082edb19452b52ee6d3def83804932f52cc76a76308464fa4d2f1370425dd53432d0bc1ba75d4aebfcde49bc3b18306425d08c1d55670517f21554afad5f81804bb79e348535d2bc2848208047f16ff4c8e84a44b5335d43e00c1c4cb9c97523cbb6781c3e00ffc0619fcaf3aa486daa32047d770147cf881bb51714f5ee90367b173ac7c5a733c798163870e8265f8e003634a050b31d28d502afb2ae81d68868f3df021a958a382109917e4376306193ef4c0a8ab481564d2d60e360a6ed8d8347ce401954ff2fd878e5515cae0030f7fcaeee01732a37659838f3b7cd88193a02bbd376f0529d2d40c9080860a3eeac0e712f697dd3b26b3ee830efc7a54f5ff7cfa6dab39d8f890431c52f00107be2449d74df96fe10d0dcc9841e3068e37704ad26bba0f26323faca1e6058e1c11983143070b1c0662f8708339ad05ff15913409068f6ed8a0b1e3c6bbe0ed3edaf0c1065348e1a25e29a658123d3535944eab99048c0180f0b10646c912956db38548fa6ba8e9c0916ed8283adedd0179890f3530395359eea811949298507ca4818f9859ca4534e61d650db51b386e68c094524a29a5944208218410420822222222e2dddddddd9d9999999999d52c044b0b20890f34b0ad29acfc47933c13fd0482f07106beda6c35e63bf124826aa8998189d92eb4cde2e70bb11a6a5a063e95126e27740c2a9889081f64e0222815c39452f91803bb9faa45e92e5d91371c7c8881bdcceda8c94c35d45ef037f0011f6170eb428cb7229346cca4a0c170506d16bf72c3060bbee0c8d4412f584e9dbb71a3bdd0b127f8f0427ec95373dcef8b5c0db518ecf082055fba708e7739e65660a37770015df22dabbd637664057d1601bc1b369a053850fabb60878df31f5be03ca2bb7f0cfb4b397e68814f6a932ef3289e47c4b3c068882997cc9f66676b0d351a397090f381054e83c54e33bf6c4bcd15d80d26c72b474bff65298b418e1d37f8ce8b6641b102b7b9db46e7e78aa720cbe2a30a8c68c5ccdfb0d05c8de8a8443086327924108883e15018c3408cd43d00b31308000028288d0683d1689cc8a2f2011480034e281e422a301e28241816261a8c06a24028100a86c360402808088342e160401414da4289036c4e2a10e6dc0aea815a172afaa0d602852614faa1500b05b4aaa4cb34ff54daa7a11815c7d3e5cdc60a84ba18ea2e50f741dd1fea7b0205e4e24f79a146f5c1dd88aa41a13c62a80a81d7ae85189500525fa679373866251e3da053289611d5e7cc74bbcc8f3fc371a0da0514704d6a6fe0b1a180f811e0f10199a153833201a11f9b67263ead46bd3169aab1b0869181892b93b5a51c6007b0634c0577996593d5128280e8bc8e448bf6a2184905973a42501c3cd91b03fb86e9f32dfc37823a6f6a20b49279ca9bbeda873cb41e08c6d7736fd58092374aef841cab1475462bf89df73067c8b497399469ebf027bf50524cd6e9e6bddf92124ca252bf54fb12d2551c3732bd4af1789c0e220bae84ac87f93816e423e8ae3cb61d9428930236412b27dd6696a83b72c8829c4f152a0b035bfc0288308eadb0b69dd705fdf6bd48c532a5d27224be6cf533cd3e96514210c7f713990cad222a0ac91cd72851ed7f9ddc9f729025804275fd2f465236b3d9ecc444a03657915fe72d2831b25b06f75c0a75737997ca44dfcfbf32a8a1d129dce9f0f7b1c53c4c94e17b895d3bcbb0d028d0fa9b99d1974c28184be5c360f10e8e83720a9b04876df9785cf7c3c0b0e6143f5a51ca1cbe57005dc65c61544441a5a5748619bac0a590d6da86d71e204db0d8246787a748d14153eaeec7671fb436b82fe58f1cf7732377fb085d500090f023115b31c8d9da232d8d0141705172e08f12b9f27fdca20fc03b410ff545d48f9bbc654c9a606645f883b3b80db08a25427fe48a0041a4522c2728aa384523df5ded506202cb97d7e3f566417e2eaa282e6557307f0cfb97db7ba0ea6665170f71efa11483ae507c0c9a24bfaf381b447c2161529592be97a27d2da85e74892caf81a4102d3fd1c54d2539d62291980f9f6a76c8334a8e6f3c7a971571e5b82fea2c51075d7d8e5d1b1b262d9e94726bb5814baaa01c641ca83e3dfd11d61884a4720b41210481a705bb7be216e07d36d07e018e14366892b080347fada954cb3f0f8b0a95422b2cf1df383654eb51f668ccd53c1bc864656a141b650e5c42c0f2b6ef90fa4d27c7329d41fa0c7572be0444b7e1aeb8d0c128518380429fe98fff09256e9abf53aed9d814ef4d8a4a51db043597c401d5f8cece234136d8dd75b035e3d9e8d73f0e45703990cffe6da19c07c0bea2d08f1feaf2220e70ca2e4888c235cd4b9a94fd6cf2f64ce7434339d838c114367cf17fb8d05b82b840b8de74c739e4ebb4d097d4ab306709bc255493db82f39a8dd06949dd33c428f5f6c1a0a6f7bfb42871f53e010db5acbda96bda7bb47c2a1b8debe438f050bdad2a663e6a4080153633f7d68edc6978273130993724d9020794320ed62265e0d69d3c6dc9f8564c6ada90ef446de392fb21947b2a40af5584c90fc485a558c141fb65e5c22d0b1c9cb8307ee8a82c8d0bb99dc3a00314005f09e30302464d6accb9d5020f5d557e1b57807b7b3123e99815afa0336870d10c29bbf04557a20241800fa9470bdd6f82ae9fa1d1bde212d8020b089cf9f2fe93e42c810c8aa925bb97a6631b7e84b2d3f9a816cfdf76d2caccf505007fe06e6923bca9920f7da71e389234a33b598ad23b6262e0a12b3274426324c941d1a8daa06949c08f6b2bd8f632a01cded699f7601638490964d08e88cf184d434a5cca41ec30ccc54ea429759da0d3e54900a4dcabc849a5c0560ad311797a1c28879106d1af01c13830013a45b285498f7e98d6e87364921510d01a9092f346ef84bf08b47e165263ebcc8a0fe5df33a7682830ee87dad09935173d7ecc42db0f81b1bcd8d0f6cdc68c3d4254571566c8cb90c0db1d972c6bf1881eb966f3c494d6792c5129675676aeb7ac6e3921411350bae22410658010202d9f3da36592d3ef23291bde1f20966931ed0d2e872bf6015307315e77b72eaa581292bfd455b9e88d37b4333dd12dfe95308c45ffd80c7a57c22e0be101bf611bb946fce82985509461ca1d5d9448bcba0367b1146b1d849b04a8b981c7b664074ae18d77facbe91c0d41cd2afcb14322196d33d29431b2cfbaded93ea780210d20b7e291975a400388840261a8be8bfc629acd145dca734d7c2132076ea71e07495938e312fddf7af3ac35c82844b3b451af740425e6abac712989b84beb16f3b900051a788e5092d5a51135c3df9ad387ca11b958b7eb4f5b84b0d57283f878e5cb29ebdbee3913fc01f59bec8a03436053f4194090d5503c7f8c8947482f26135ba9d27335390c4cea8fbd4a1a06429b8bdb2294af5d7be8a00088477f8a65f21020b791b2bcb5684e3d169daba556996e2a7048a1cd9e5e8d68f0c0c6b4f279502bd3ba3a94f41831f5f5a79b6b183149eb294e3bb63553cd712a34599969bd395ce292efed16485a3436746cc018f5805d72815d2e50b48066d4e02decfa134971078a855339e5995c6805c14699e809c13c7d43005e7d8b9ff58a8502dbef581aad7f066a06f2a0581e69f4c44185eb306015582687dd9b5d696eb2c8ba4a0714e9066a91e628174b05d771d811e73f9f38a796ce7d8360c56d38715e443d62073373da067e972af8fdc1e81be6660c382cd1470ed9cf7150ef0a2238f6d9f02a8fc161bc7c335bbd8d1ac6c9275c4310b086955cb4e9e5d441d9756ab74a605475f8b20ebcf0ddc8ac59c14316eab02d73eaaf68eda8c47ebe51a6183eaa9b582c2c8d0da74f6cd4734a8d46b90e6ac81a4f561223fc54af4c697c960192f8bc53d05372c820b30165e43c6e11134ac6350140a09b4f51a8e5e44687043b5a55c0ad7e4aba8395d90ab2c0b6ceb948197415178d3e62a55624a74b4e24d851f57555695becd200100d4b92d8bcb8cd60322d67c418c7b201b52879e7663d71af907a01232c0da338fae8191c4a020f4338cc8a7b9485919e99aba49c8b6344b30669e595a9c7b110dd8f0c7a1c04a25bcfe8ec31478d150a0098a2b9684016f3663dc4a4cf272c0dd5b1052ed203512292a4f94c107e38440abf2b2466d663827c50144ed1428d1d446f56d32f91e7eb002aba9c6a1d566d4abd67f92636ca1d716f56a9924686394d9ef583739be2c28ecedfb59dcf63bb8fd9c94717c85c6ac08984bbac6a1683a7588a6f64a4d8511f6f4755678532ba94e79af677aa2ed781834d367c8f688b19d7e320a61c7522792edb75ff850d895bc88c358f88fc56322aaa082b8b1e7104ee22cdb12899c795fb2396547cb036f285e8e43c8ab4757be986debb674a5462cc9d0f1ce6796009167dc3284f6bc7526a8ca1c01b7607833073ea3e89b9e11d1cd627279558f45ce398508669cc4256cca15874edd204476635428bb8652756302d245b4a5953548b42ddc725fda7d62f8aba1da26981dcc7e1536f7ee62bded1bcc75238c6a5593df1eac24311aa4b007ac459878861017b291f33aea2983c1abf15c9f1526434c31be55a78486033fce998911035f48a7ee8c5a9bef02ffb562314b934182897ff8a5780368b99611ac9c2271fd3f611a7f2110023502e59092b535cd6413755e5748412565a27fccd1038eabef966da7adcaf9a593ff55afb111f7827673eac7c628288c33da1464cc972a37d29c29026461c0a7090888248c5d1065f5e9a1edb3d037f3b280c63b11e3acdf0d1848390199ffdc658877b7ebf6bf3e603d1b270bac0eeb5fb137f86c85921f4883ef4649cbf9eedf17279179c72df7860b3eef083327b55db5b22d7d81f6e943562ea141ab7aae05381906bc534465e1ffae471ebd4ab633b85b8d2118d449d4896bdf6e7e9b4290350acf6f46b0cf5f9db767ebc055e33b5af4a9d2644cd9f67582a67e36c28c9f9c249bdd1fc8c8d6a5e38afece10a8c1092d1bb994f5062948c190d78b1380d2a39ac410e65056de79b4d24c7e64de91fa1be9bd04ac8980efd9f9c1de867781561018ae1a0f6030e20086b683810b89f2014090f635a2f4e811f09f80905ce8e7a496e7d7b45b05b695f89fd54f10a2c6152c82ea5f802474054d94a557e402414a5ec52c323b004952a7b14e20b5442516323557905963014b20ba5adf2651d6ea50155a49aaaada8574fea6722a854c1499b0c10dae845020c62083531be04151c70493105a7a6d42bcaaae038ce4ef6e82b0856498ccb36d77895ce6a787b3c9556e71d85b090696bf7f7e71ef9e66a83fb6f922c3aa94a2549492a1e6b8cabdded7431205b8ae4cbca70ce1d63de49c6c64100de88bb76ed90ed3b0c7a9cf87cb04a9b506ff849f791c8e47ddbe88d6a9e99406a48c019c2321eddd6d1fcd03ed0067ff93dac9be4371adfebd27dd13ba969e40eb1e5ec31123ba85796d2b4932278232ecfbafde34e65774af8b70238c2110768203455ed87dc240f36c87d1c7637e472be2ac8ce84fa7851bee8fe09e814eb9a945613f93334cd985464529a48159a876aac47b6d1a0376fec7894dcbb705f0e05716ca250919c949f2dd62e71b37fa79b4191374bd1e20dad92102bc5fe69dfe7fb0952406d815c73b8ea9462aadc90c8dafd04b5261a4679fd1cfc1fd16ae7331361f393a0238c3a217631da31f08f51e773924e7954db202e89e60cd7b2dec12a99a9e35a3fb7abbb04a9d1c2f6162d000203cae7c8dcf674eb7272b2f02693853af3d73b90113cc305f25bb692aeb7256a12c148996aa91911fb6d189e741082760845c075783af375c3063ff3a42bdb46a4c5b5b87e009a93e6196344cc8aaffcd6e9edf638c1d106c469a7e1d4e8f83ef2860eaac40481048d32ae2f81fa39dbc979716b0e8739094fe91b9e6f5ea77456426771f8d1574c958002fb4e38223348dc9476018a565167b8c0f6d33cb5ad27da7871df4f9e292d8890a9f70f5144a7ccc8c693723c7550d7f305b9a1451457d3137952d3b6d65105cc3c51d3c19a6034d6d1f400344f537ae456a9f46293390c17d09e65d565cc907804036fbb0f99507b23567d5dfa25a96d5e11b70c2b7b40d3c5992e29508c32c929696f06c082ac8d9ab13315d1f53480b06adad1923a4155e443bf3648923443e48d86043bb1c5f4f82119fbf602371695ef7b28c235ff8eaac940c78bb9bdc2d3e068f4c0c6100d34d773c6b9a080cd620458f81d01e9b109333cda3f256c5c1a88d7657871e78aea6311c9e7e48e7f7ea1ebcadbf34e3e009328d578c61285649ab8668576cfb6a5a0558226968ca76b56e1dce6c2c506c877df3679afce3f0be03198fe24a8d76670dd7ac01bdac4e2e72d5c5302832c216f43eabc250f4935aa5e692568a353c869bf4705dd103c31a865ee348da9b8435b8b0b96d8d649dd98ec5529a2efecad4a53af46a6665b6900afc87c4f2d949b85e3db6c763974573650673b7f6d68899c292807b66140d5678fac85ff50f1ee9d89d77f09821f9ec6e050f8c56268093a54bc69ca3e66c5f563537a05572b0dacdab24988223c90088d05cd60cf0988e6537ab195e0d6d248eba86070d430f6e032cf107d1aa9473fad47bd4d49585eb94c6c59f89fabde3d582b66945d3fa9f347f7a738383ff7b07b998da69b4e9be6ba972c30c49055d72908d534470c3124002733e1f4ff82434db0cc7d32ae87e128a19ed60115b0521ecf37981d88f3deff4bcbe1ecd18430ca4186a55d4d1cff60f98fb93c2018ea115aa623a105891b31b5bfbe8e8690771e9e5c2ec17b7e481d3d41bffb9414413356ed24c0014b1a060ae4ad00d8543624efa3ae8f8972200e553f54554c522ba0d27808e040fec53743f266950500cc88f30db51ab248fa22693d5ab44c362379a1928911f50fc4fe0981c387bce3ad2d1186d85d77c763eff7cb1d74345c6ecedd38930ab9a270316805377471db1d8139cd73c68d69039d791ff42f2f39c378dafddc73f834276240456fe32d22fcdb8e3bb2f6f5b9e54c0a52a870fb61a9c8eae503b3db93a6b853229dc92cd5452c4e25e5cab1c40b326b86478ea795a65dfcc2501825f21380b0fc0936da2f1fb146238052a100a4381d51a94ce7532c427940be28148f1fc65e0a8ae578f6a03928e2508c7d1beb01123ccfbfe4dc5647b7fa7576c44698c6e8946a22eeda2fcb1562ff5865c4c8da354f70d02ef279e6b1e653d27284edf36f43e8d3610cf331160dfe8d92d166ec486a3bb5c3b85a0b3a3984f1c5f600104ca6388156f1e1a859fd9d05dda501cc565545af90040398877d92960dc4231b4c501513f422c04b50e1c4d9697793784851712752d1f2bb7f8354e9281e6c9f32a26a8b92a86aa0afe19ef8e97cd78d5c7888c0d8f85abd82e953fd9fb1d119fb095486529d8ec4f672336b4160999e70662121c6e88a36d200b79e09df7c1427777a437b68a2c8bd7fa33da284194b2353623555e07d21d5e27d1085a64bf30b2da2c96ab57adaa9ce3ed4f22fd582e070ea37dcce9480975011384f52915e25bebe1d5cf7c1244cba014cac14a7a4edaba566cd0838314688dc00a1a0d038fa0a5365324b8464c4cbeeaf0de9ba29799748174eaffe9b511129be543ab4fa84103c9d618a17a36588c95787e0447452ad09a4142b6adf89623e50f35dac8814022753f25245c2485092a8cd98eaf58d07711109a28d8b4867f84d52e59d89092b4ad02b5e9d340999a7ec0b395700e61099a7521465398f29266e0faadd0bc910192d96978fd7f2351a0c397d42810036c9f9d3e506f41100da4a58e6ae51fb34d54ffdf62ebf5d352ddaa1a6cf48994c2bd054445c21c7954ee2753107820862339e4fa0baef0d754dda7e110a62ac72781afd79d02d66aa200b73d2de98efacf24b8a4c48d35663c8607114940ea44c9b1237690085e5186360ab7dd04356645b1c855ca44039860c554dfd50b2fcd9c1c7fd11b2abf8b6497dab8d8cd956ea4b3321b689c09ea802a872a5a7c045dc9a4d71d50e723091153f03209dcd14510a65486d110516fa218af85b8958f75a9b0336753296d8c7cf7789bc4ea8ddbc147303e22399468ff3d4b5b22cec9c8c419c3acf33280dc3d852666d3ca2805c707d98299fa8e9d7168d2e8d370dc9888b973b0a53bcd10ee022766ed335a6ea852d167c370753f14338903a28b66bb16bc3bb8cae938a302b51be24eac00d95c5f095f3fbf70fbee1409758dd247ed48034bdc34006417d5338f533c06488bea039c6266f8f5e32b89b65a595a703a61182b1b229af3fcc7d66b55274813b33e7574b2fa8963140562cdea5fcca938ab6809326675831e29d1cbc3bdda9d7de6561eaabb57a67b2cbb02bb83f021abc7b3b42503b65070191829e1018bb740d4d88e8d3d61d6b542094a42246eb4fb3234d46906f6bb8f8fa019990a122603120328194fd9c3e3920d75315a57ca837fca4815cf93f6eaa4d2ba5280e5007ac4049626a9b27f02c76e125b50a5c713e8ad8261d1357f275b21ec25af421bf6d6c18c63d286a2f5ed980b6d9a7e5106102c4160f62084df594c8dd1587d8b5e39c3982b01d94869db53a25fb01c5b33eca8c72b33d9cdc7922cc008c90d6c50bd32b32a07dd6d80221afc70b9d142dc00ae9566b1de34b2f1a805066668d7c88d9a9d18ca238d4298283b54f0f30cc875c2130485be19d5718f36f9bf7beaeab7053da23a22eaeb6af18fc435d11099149a167abf0516df7dd810095d9f0ca56cacacce005d9b6cc4f4e0d8f0f61bde9815643859b895a30225cdfd7d09a6d82a8d832f4e4b05e0cef984bd60d01904b72ce5d330ad00fc599ec509fa84e3508e10d2261c11d168b05110875590f87a2df748373e6b87c2be9b8e57f2b941e4b11eb75f8239dd9e9c0ab6f72e68e37c1f052109d64766b74313c48f02b4f02c2732d8a9e716fbc30730cc4d963005345aea96e237ffbe107e64fd974378bbf0d31fa96d79d8b83fd32e62b8f86397a5c0e57a4b347b13c8170cde22f3d85071a5daf44d4d7a667a1ae48761911e504f94c65365a924e631dc47b6324030ba0bf644b1d839d32da08855e3da4100cc3fb75558bda541647cfad479fef0d795617eaaefaa829a0fe819d05685bebd94b7b08efd5953aa6f1d7950ba0f168940db4d1d7ee8c72cb24fca70cecd36528eed53ce05b9191f3f8539727aed6bf9fb84f9b7dd716948de0ab7675a3fd493e7d0bd30c7eb223bfd508b263d5205eeabcb3d8666da63fea23e7c412684e09f856d2f1e9474dd85437ac46ded835c346c15e426b09dcf4fd6534ca862b3edd8018cb122000cefef4aa5cd8d939fd5dbac79411575c241da6d169bec982f1fa026ef603f4c55ed8b9e4ab8ec4397dd4d55575b30418387ca2b8448386b749e425b19d9ef6a4b5f5a1feac7e9b4ddd405ce623c2fb410f7d2b26654ddc567b6d0fdb939d747fd5d09b5c73d8109b6473cad0aaa072abd04baa396fe0ed250d6bd565147944c341fdc971a58124ce7392cf6e1336494a383145c8a7f3ec2fd98f8f56aa9f758344be66205f6dc4e1dbd94dac616844d45533d158203873a530f42eea4e9fe4c12c6b13308d5f5df53ac4b70d9f675e2e2cbd4fc44070bb7de99bc5aa5a32214d4afdfec22bd2f30d8c81551e686d36f435469d2088951f664ea974df2b0c3699df8524f68179791de3a7fdd19b637735c8794fe9f2bcaf6ac5d9cf53b45c25e24dd8e9a522289ebdf11ab8b74254b20aca0327e72bde8ac7ab26d271d3a763eac954a7ebcc7917bfc35786725d41bdd8e6dd27590adf9d6abb080721d4c8c181dbcc9eda4b3ad7dec63863df1bc02abda9f6b2aff2b27eb8df974f2bfc6a457c7bc81de8bbc8c497c3400c87fa926e6b544973033367944cb5828da2896e05c2955b55541b6c2e1b6a6344e7fd03bb8eeead4527a6bc64496ef7945efeeb6738fc95539adff54cfa8e83bedea7ba974db59134a78d5d3e595dfd7ea1dd525dc1456d9fec953bc73a9cad83b71dfdb28f76ea79c9832915e0752b604e0ae634ffa1c616c56f230d38b93a7a745444e24e3ca7bddafe2d3a49bed491f2954b316e8c8156d27ce4f568a5bf45779748adefd34b0ccc66e9657b49c201580d8404c7de2efb685f8f2f69564a70dab796fc0b1a96cdcdb5ab5ec81eb7ba3c6959dfacf61e3d933ff2d3671a549d5ec1572dc5afc738aeca0928dacd8a90ef3a2fc2f50c044bfa1761121bdbfd998e8500caf2b4936b58ae613450f2f0095522fb53e0aa42ff242cdcf8092d5a22020271142ac6c2b63b4d63d66b0feda2e737c2c6675e0a6fe17db4b6858ea27799f31a277c14463e517e030d2a86271e0d311ae447c7edb3f4e5fecfb7f3473ac48f4daf74df7903c69b84e9c5d687170ce8288d4f0c730fa5063aabc275c1a0970051af94bd79a36b7ce428ec6e9361d81104d2993b853523eeb5b9d717bc15b5fea6b453f1605c1e312bd1cdc65d0a01b89dc2437f9b04895b041abb96503b071f2ea1220493404c5418a20d89b9e440c307e24064cf9597531cbde4895b099a48fd4c95e3feb8a32b0fde0333f9ee045c1fbbc3dfdf52f663ffcd53f724f612b001e7d6cafa14be4252dff785d5517c75139db46b7b67fff55d2e12bb44495a74efd6cb7a40efd80b3bc81ed73dc944d4222d61873f647d2570f44fe3039f10e50aa09647c29affaf7c69376ffb4e7977ba8655bd9d480ca049f6ec5ed679ebfc06cdb025708b87cbec49f6546abe9ea47521587f9c7ccc2b395954e228ed1b2524a583353b8a915fb3adfe8bd23508e732e79635b247375bdfb6b553b2b95c4e2533eb981076b10cad65d908948da65037d163c99d0565f16ab2a9e1c1c79ba1562b23172aef9635671a18b07d7b438ccbff727e7b6539e72c4bbb0162cb5d996fa312900fe5f73e23c97dd159078cd8cba76da515de42dc4881842aec000927abf38ffb3628a697d7494757c089231e7f7ae390ac756dc3c4cec297df63a9d9ec29486f9aafbf438ce721839b32a1bfbe01799d7e8504e084a3e6f324943fc5ac6d482d8b64a984665b894dd58769f81972080aca9a157899567fa04c1745c5cb6d759cd99b47ad982e58058451f13bef66bf3b9766d00bf21584e33bf6ece060b424d34fd1a72bfa3b23317becafd4c1009d347235057fbda6bb24dfced55a53c56319bd661a654584df40379c5972e73223e4139d151be94ea72dd56ac869c885ae5adf2edd5cae4ca785a2795140997a6f41824a47fc305d044d0b55adf742f5b961ab06d0ace7b5d38649be5311b41de97ff08a23fda896c170541c2ca66f7f30a0f782b279fadde439317c05aeffc2dc272c68baeea5105cc23fe1e3a1a3782476165127a1ebd56b028a84b3b96541e84fb2bc2a49430ca03f3148ea796e278b3e97ac597024421bca27b206c91864da8972869bd21ea7b61bda46637c76e71b3442985f98c078a374d358616338122fe915fd1ad2296a944c02fc61e30c220944db9dea6182a68448eaf95c3e599cb94d1a3d7d7203210e2fcd388f66d320d5c3a14d5e41165741c20b01533147856704a44a3f8f6e9bcf3dd23a9986c7a5f2ca74e47daab6626dc78bac57fc64d6ed1aafa9ca8d695492db9da45a2a03755e0a11a1883069fd4fa3be4f69cd567fc82741b57784e03e041d7815ddb0927b8bd961ab440fdca2d8b4345344aa94ddea77d5f0351cb6dc107ab119ec7292bbc63666d92ae3e4843c4618b13e72711593aa3001e3e080d0d533ced0365e645d38382ce443c3f9c72ccfb8009fa3e231567860d54c2c222509c0a2dc18d5912053a4cab1be9634f7ee1d8d48bf716ae1069829d0a335102627833be958217dab970574be53b15567b9f7c452f755260eaf5277f4efc3a6ee8bdac41c7fa6e60d449e8a4709dbfc10b14618a062110aa79647480da74492c3b42a0f4dd5061bdfc9aebdd340b825ce026b769846ba3c0fe9ab18fa728549344f716261d7c235c443033270f28fb9d4c81f1d84e1fe46df37e3f1a50c89eced9dd79454a1a8338e189e55286941f8fdf7bb5ccc797239476e4399554b4a010271d0496b7a251dc84dc594eea1c796b8b77502c0ee5e1cb19fe26938f1ed83cc167cb015bf8ddaf32020772e75745ba7b5a056c2f7a6463581ee4bf26265c5bac8b08a41571927205beb2bfde97ac56738f11b398453dd1b22f14e100ac38af037fd496dcd4e0d7f2b1e9f03d9ddb3d7825ee086579384b4003d4ddfd90bbea05c05274029b195dc34c6f3fda7831c52f1715728e01b7b2ed48262b747a0729c9f8fcb6fa590b225b8c5ae27311d44a07628573e542e1c11b72b9863ed8101b118e184fd5d29c9b8d42ec62e0338d341a4871b1c727000c2c107c7100e34f0b1c6cec3c51bcc1c144d927ebe8eb53ba3a88a9167ed24d448604e6bdbd09a61b19f107e02f12823c261952fe76c403cdc047fb347134bf85b36a39dbde2d507afa41a85ca9a6493ee77c17031c2e1ab1b1706d94c34092bd707142e6fa35376ef4a886e69af77cc8f6c07edd5d47d64a91df541421a30e2be32841f8695e62e72e98d3ca964051eabb69c73eb561e103e4629c5f13c83596f0841f06a4cb519c12a1a4806d5a7b8b801a13fce990ca1ec106eadab183d2a30fd3a30f508e8168e55b8b7d8d235370f8ec8e7d661ae972077ec46cea6b1b0140dcf35b9d481965da0f04d6f16c14dd4bb0251658b06f407ee6acb5e978b15fac5f97756e9f9f0beb6f744d4de9aedee3ad0427f9dcf1c0880ca7e202aef90bc5a39cbf78591bd718c167ab64ee75deaae68eeb6b93bfb968b36459d6458f9312fd1e54446f6a5b3caae01fcc0d316129905a9bb6c1b6b6d489d3f1094bfc6d335e302d708fdb1d7f9b495b1070fed1c4fd88e69020c421f249a8e8814996e96045f650f979f2b9e073229b6973b9c5a53d0b8dabf6dba9fd646b7475713acae67125b2a433ca371125513137ab6aaa4d0a84453d45fb41362934c816652e18c84f6ceee6c6636f8ff752dec05bf672a7084b3b7f3975062169f381c7927d56ea2f0b6aaf4c48a6b0de098a4bd633282284bd5fa2a280e24a1167facfa91b7610c8c35fed54264865b31793e6349cb1e3aa298f14f91a5bf11564688b0ecbde8c242f6f49f52cbd37bb9628c1561ae5069af10ded1f409eda2cb06a0b4281767ce39ff76fad4bdd7371be4c4ca0c8b71e37bd3062ca3996648504405904839dd210340795aa8d6010b555e4f3475bc2954505e83345181119eca078e405aa0ed3c2558d9840cd1974646f84cc32217430ec451c194557fc130fc954049402b50c2d9d01c213cb1281e17402cbeeaf2971a5080bac61c262135abf2b21af8f9404d5e0959e895963f219197ccbefad6248a2e7d88f51006e5af450f6a234275a6972cbc1fb508550356e1cfb04af590bd7084c8b86a44aa59bafc959492c0f289e987a8baaade0dcc7d2ad86a003c967a4dfa37bae16861b1d8684f07cefccc66ea1eda136543408356f26a0d0f4d58f6faffc62ce30a01df6661e960f42015cdfdc81f6c01e71537eda6278a6ca75360a27d2dab000f2efd4ff84ff07b19f22f4ed33d8eff9909a02cf5e8a40851d2370a425e935fd8f9d8662cba7f9fa50fdbfddaeda3c7e0071f53eb4e538773a725dfed8f0ae68f50c48450edc24719d75ba830a9c987a64d63d156f7fac12681fe1a6ef240b684c92ddbb8f2628dc74548b945fbef196508e715407fa0b95bb426835767739534699dbf8ff8e3d6936358913ab9649415380cd10bd912616f7ee5005b60fc4f50f88b4fcca24464933c28d433253a7cf6615654a40516258a995ad59de1abd8c2bd54ece1afd60728f2ccb92f2dbb5b01f2474d6bdd11505c307e665be018dec1988ccb3e63d001e86d28d3f6fd0a4721956d2f037220583ee106af965ecf0ed318429613fc6f86bf53b8dda1b0f6768ac1ce213b2fd080e967ddf0ae3970afbc0aaa9fb32b330fbe5f055a207ceefe65376ac9063556e5f5e905065e4841919413584ddfad8b019b1a6857d16b34f549857b0d07a9a6549cd0a176b26d147053060c6ad9feab617637be7174600b2f7f2b44077e7b1a65199933d522961ef4526c225c796eda300927df4a876af08c9a39d7658b20936a6573fba7a52bbcd4130a4cacd0d6405def66ce3b6a802c6816185c3aafa10c0bd9060d33838a2135aa8f0720c168f96cd084fadaffcf30be0da361edae611a6ed9a2dff9367834cc8a5290de7e2c234b7369c56ce703b295b7e8ddae53b6eac1135e4f452617d993871c4d96a229fca564ffe6b444b800df26f4fe6f554c7f9e8b0f5a9edb45d784329067d9de93e5d3733ea28540e805b630a21e64074b984d01453dc5c83437be75ad319504299a165716b370ddb2ad01e21d455a4478fd55c52b728d259a8be85c4336cdc1993fd9395adf9d0ca03c17a43d07d7908a014c5d30f8f209ff63dcf60d88faf6b3e0fb50a5a33f5adcb8bb7b901fb32b6988fb8fbf821a1074890e5064cf826838904961ea098d8fd103d62271aee21957f830928c39cd9626ad36b0f453f64ee8be0b9c1b53d49e9a6beeb2a8f07a9120e45f173be700e650034be9686acc79843b7d1105210ed7a68edfe74b4128548e69d2b21a86c969da984303ad85b6db7e806b6795e053c06ce5bb73b8d0152d2ae77505c1a54eacaa8f49ea28c6d7887793584a5c89361566f2d9e032610f640fa3d046f4a3a4858065917f030a87fae5c89a62b997f20a9ae96dc9213f779cc86917ba8ca84eb7946c169b1e384aa0054ac452d7444d015402c744c647098487a4af51b3bd5dc44585a9a6d8d69fd6a28ee48d17861cfcf74cd74203a1c1cfc04f0c284036828d6158848cc5b4287420361ddc6619522dde0112d381ff0700446337da3638e32e1877cbb833e34e18e3c638ee197373c9988e463ed24dd9012db4a859db614835ab34dd30973a5e14fd10d02d61725f4497752d6d345754510b1d8c7955e3db3bd3ff5f0f7e0832c62e647c6923aee031b727f1eb319cf1bb61a4e4550677328051fb8c671346af555a7132809318766adbaff53d83960365f01cf867c7c21166751bb6bcc5226226ce738a9fa9eb90fb841dd552e086545fb33d4666bca02133c026aec8cb67e785ebd02e04ac12a31101820e0011883d966f84ff73a100087055c705aecfdcdaa9278045be24f3dff9085c1b0a1d075cbbfbb1e096e04b11e8d296c190eb1e4bd9d40d8c4ff61f63ede423256c3502baf543a23660b024850330333333333333333333332bf58f915d44b632d196d8c6549c5f91ac941591da9d36e0b2add8f98bb4e12fd286bfc83837fa092a0ad9098ae789398003159be451b0cb08914652a92181c400c729d6b496d3cc66a27a40093801485f7851838beb008729f6f1388f736a8c8754923487e028c57a1a75f2726d94e0a91b04472127123f4c259b46928d1b8400181a9000c72856fba036c172870d1ca258b6d6875d9324a158cc7fd0f7257ac9f753060e50ac31a49c47f7624a5df609ce0d097c62a9c84f77526a122cf3044727b63cc81f226af4c17ffe20f5050e4e24955394d4b111e7a6ca03c726f6cc2439768845779e9a587d243f08f92be6239d97058e4c949b7386a7548dac030726b65e9ffc59310f2f1ac171897d5017e5133efed9ed34928a16382cb1fa503df5b86cb422cfb8058e4a6c22669f7c2d75ca314a1c7dfce3f069e3233fc18d1b34669402687c51a3035e70c10502602800060c05c050008c0cc0d0800460ec117216d4281c93d8438c084b89d5a4aa7148629fcc59d156634e0312b02b7ae088c416f672fe540fa97f6306129be65cb1cf9c7b02c723b660e9c3f78c69f2ecc1040e476c692ca9a71f75fe541b4723f60a1f7a8e6773513d52020723f6b98f8b9d9da49dc4452c791c2ee6e1e59c22d6ca1462c8b1c72762999c4751fc3c244eca830311cbe4c1fd789ce203041c875852d02e0973c1c2240f0e432c513d32b296ca422cdb23eb0f398d349266748d2e8e17be801985701062ab897c29861fc59c1fa406c7201e46e871c7cc095ee217f7080e41ac157c78b9074166a4fc406cff917c7095967f3c0e1bc3030720d6983a6ee59e38e98188821a1ae0f8c3e203d5f8bff1c743ffbce1e374aa3faadbfbb0451fee46a91f659a09f3618f3c1e8a9d74a43c90750fab260dbfe5d317efd60317fef3795c39e4c8c3b271330fff724e329ee2c0c33eb954bece2eea87c57187354dbaa8e3c3981975e2b0c3f2832e9faffbd1e42071d461e9fc9c92a45394300f1d680b8e392c153ec8909d63c6050e392c19ea54d647b1bb798dc3d2676be223b9e0b06f9a6ec8f79737eca3e1397e9234ab7ca91b168fcf98237d8d469fb461b1e99c8a799c873122840dfbcaceaf65d46bd8c68345b89015871a968f34626721f9468670a4619be86973a8205bfd1d1a4986020e346c9d3f53ae90e992f68faa01c719f6cd95c2278da166b92f6658aa47712f878ebc4f0f4719d6a0dde3c8c31eada6c9719061cb1f723247e7f9881e8e312c797495a45325df201e28708861f35ff3d448eb3f1eaa615853d86421f4e40c97e43c020718b6b8f71d6a2d64261f5f582e25fdb83a4568988817b64f167b1538bab04f929c4343c4b93cfc090717d6b58931cc364742bac005706c61b934d5e30bbd1964921ee0d00261d7077d0538b270a4bef8d1bf34191b706061ef8145c4703d8101c7150c8715f60fe1cc3af48f1b5c705421cf3d1e8a79e741dd39e0a0c23eecf4e0b947e621d59ec21aa917d42ad25f0eb114b6c86b3fce99f0193f1a85ad27d55e56f024a22914168fa017444358f8844f5823fa6c0ca27b96a2c5097b5dd24f5af6e937a634614f29a283fce7858c85098b898fc7ab579525ac6933ee573f3dd96e4a58ca3cdf752499582949582b4efeca9b3fa67848d83ec594245cb4cc51aa236c71a68256bc503aab1196c99332a47cd28c87cf789881a308ebc7f3bf056e63868d1bf4c58d1b18688153c046051680050e226cd1f286cf11a364ba3aabe518c23e9eaeeb475a6b97f342d8369985a72acbfda982b0a45f4ece18cab7c606c29eeef652cc292d656f7eb07afcf0294645ee387cb05a0f2533d4cee3e8c136b156557392b1f59f83076b1e0fc4e633743bd8f3789034470cb1318f07191f70e860f98a94fba3f338475073b0c67c15c53e0707db4a6c5c4d113e840d396eb0f8e8e46635552a70d860f1b4cb29b33db292d65a2c29c6182be7d177f60f37270880167bde93701da2c7902611c02cb6efcb98a33ac962f341f4e8364daa3476b158d294e5e71f6a9e4b651004008b7d942ba49c1f07cd93d22bf61cb51a1f3b6f56eeb862cde5153a4ed98a2d4d335dca39a3a47fb60401b062a9a808c97f2eba8a2d2b6c1ea4074f1a71a9624fb92353fc284ac53673153eb8a851b19ec9c6c8c3ed1e5479a7d82f9a86cdca3fd2af9c29f6716e5eaecbb9522c32e241faebbceed3a4d8a443c7a8e7c8d98e8f621f87b988793c487175a328f671c51032e742679498502c1df2a88e8434289610c7fe3c5ffc68aeffc41ac36e52457254e4cd135bfc74197e62623b949d58d4366f77760ed1340f4e2c791c6d7a60f162cc15dac4127f3cd0d483a91f6c7c34b1e4f9513c9fe03f3a8f33b1059378b1b12926750e269692943ac4efb81ff3a04b2c61c395a66411d42466897d9c1153d08a2ab124bdbc72f5c3994b414a2c1f953dd0f8112b647a125bbe9ff08c564a62d1741537a2267b9cf948ac9df2781c721821b10f6cf627a50fead59347ac9f32d9375a3eea111db1c584e885594854648dd8eebe071f9e23877e9411abe5a1588c9cba26a9b288a5c7e352bf1079b4a3a888e5d7ff32e6944ec4928716a147197b446c21fee3790852313375883dd5b2721e4649639a370493fe7456d5e442ac3e1ef8d66d0f422dc7845852884adc2d89c8e40d62dfcde3b11f6f5e9cfb0862efd94e9b4793339df281d862a2e967f8c1f5ff3880d8e437e4c71efdcec5e01fd64e133fe88e8f8fdef1c3b29bd3960f337c84acfab08714222d3d3e77479b0f9b67d0d0cd67d9c396c7b9c72531cb47b2a38725cf85901dfd87a1c1cfc31a272ccf8f52bcac8de361addcb1473dcca35869c33b6c69553925fbedb09d7f0c9246ed3aece3f1d0bc347d68132d42873ded2af6e2850f0bb9396ca19d2fe7f2cade70cb61ed41d438db08929d7cc461fd94512d57d85aa706873dc694c7157a2c5cb2d41bf6519c1f55485f1b835d6e586b4d7b34f6f06227dc864d62a69edab4b361c911e287ea3c96639b356c3d97794f358c8f4c52c33ef29b23f2a9a97d9486e52e575f8812456336684072668e4ac4eb0c8bf630c3843c5eff147d33acddbd1afcf3e87b949732acf1e7e947e51d113d920c9bc494e7e9471a639f1cc33e9afcb9d210d2cffe10c3521b52b0bc16568200c2b05c3c9b2019bcc7e3a8c0b08f639cfdd9a43df3c12f2c9af9230b3db47861b3be5e1d95bbb064449d50496d2eac3fd613219a2c802dec79e92f3fccc7d0f009400b7b95edd87f06b3b07e5acc099b1f0b6bfd307fbc2ed935f90afb204abccff9c3f247512b2c9242cc10e7ffec7caec2227942cee676fec34685bdce3f7ae879d0a71e4f61b9b3b49596e2ec8f4f296cd32b97c34e481a3f3a0a5bf89043be4bf28d7da0b05dff448e1f677e259fb0c491c8488b54e65d3b614b3f5e093f9a3c4c5f7b13d654e69de3a41813369f49db3cea614b5824e6903bc37d94b046e638eb714fc51ecd4958f366c589da91b0c6e7f1e1c57439ffb83fc29243f4f15cc8da500931c296d36a45feef3ce9c222ece3948b1ef4380749dd8308eb6cc8f5e36108ab1e3e86b0acce96658965be4e11c296b97e69f6c972482408fb781c22424d84461faf5f04e421897de4a3f4ef789bc7e32312cb7efaf4f152280b3d20b1ff3058384f2afff1f38875d62f06dd89292bc7115b641e4d7478a73f4d23b6f23c34b1943f3c4246ac5321e6ed96862fed2c628b921c35a33a8ad8bf472505cdc31df11371aaebe4e3391d117b4452390db915f443ac3f3d528f525679d4c3105b559acfefbed4e729c4de7b9973ecd184e8ab724ebdaf07b1e6d01977b727a97482586a7c38313ed28c6b05629d681d1aefb3072a20d6e831845413d65bd11fd6b45e17c52fa9eaa4fdb09fd74fcee6d1872555d44d5d371ff6bcf3b92421ef61cfe03f4c6127d7c36aa531cec31652fd7bd817e361e938613d1e89ac8af80e6b0e5316123fb84dba1df69b94f2c49047773a5a87cdf328ab4752d361f9ebb8e0f1430b790efbd0cf3fe553578eb11c964d79103555ee340bc6610bb319e982caec57e0b0843067c963867cfae91bd698662698f4e45cbb61dbfe887f93376dd8d3fcd948d0d9b00f528f347492cde3780d5b083ef4c1d85e0aeda186552a4d428f36e6fa9186252bce4f8a23c1d2888655434890fca1c4ec67d8521e2733b19d49fb8c19160f2a29c53ae941cccbb09fd945cc298768fd830ceb0f3f457652730c4b57bc3c1e854c8a6189fc11923b5fb80e661896606a13ba8796617230ac9f4729cbe37e93a45f5853ccf6422da4e68c17d69c7c583d52ddd7237661931e98ad44910b4b8ef9e3988c676a196e61dd686792a366564da885cdbcc28f7a30ba51f62ce829c359aa150b6bca88d5a3214fa8e4158e1e4990fe8157acb0c6e0957fe35fa6ee4a15f6eb71b80de92a545856faa2f5286268d4a7b0cccd9c4d8c6b96d393c22a17efc7a3e03dca5c5e1448e603ff406189cff9d164ffb739f6847d18b6ba371373c22293cb3247d11c17af26ac992357758ad6c3f5514cd8537686b02716732e6b095b74c5d0e31ecaea7794b0a520be22614ec29252083969471e76b020618b29c7871b2633fb1d618b7456bd1d2258f2c808fb669cb308fb4872c6b8d9c85f1222c23e8c8bda11f2b8bb7a0c61a98a6213d3238425628e963a663383178465b7871e2fccbf53840061f389da9122a77fb086d2c98cbef73579b40fb63415ec7b98538a3c991e2cd19d0779e6b39fdbf1600fe9323d7f94fc202777b046f86cc8e6f05c12d4c1fe5bdba31f46f134d6e7600d15ef689156b3e2c2c166413d5dd5790f2a85077083753d86991f058b612934001b2c35f6f1c24cc8de6d8b2d12f0b0e10878c0b0800460f4a0a316aba64d973d4cf9375564067991a483165bea1c9a2c4e3acf1ceb98c50311d1f461f7e047cb42dbb50ac93c4abd187a42472cfad186ffceb5b3261e2774c0c2f3185389ae1dafd8d62759fe418f374f4c75b862cb8db93b31a4cc1b446dc5d2e12245c7a68fa37c182b9628f9b07926b68aada6e737858ef8dcac8a2d34f4c514791c2a6e48838e546c9f3ece1bf3c82ee24c546c271f7993a27b2c46da718a5543cc5b31c5a867569a62cd397f309d9d526c7a195772b8989d6322c55e394675aeb0601bada08b157ce15dccb0f13350e005b760c68c1b5f9879171400c18c04748c6295eeeccc831f8da2d8c73be4759e5ddc10bb8e50ac12f3e7de982b03c5ea6972eea4de1f73f68e4fec17e3e445e9f16ca55c872716093eaa1492aa8e4e7470e21e1f74ce68d050eb0c3a36415b7468628ffc7877f37f26cc2359d1181a530726b64d317cb77b2035f1eab8c412520829a78e164b2c5e79b4c16cba74d5d351897abc29e4b42851948feb928bdc393d09eb871e7a1cd7739104397a43e6f869248a8d793c3ced0f220f030933acc76d67da902f6c58c7231e740816932fe8197e6c300b1e4ca8c311ab8d84701263f8c07f208d3cc3828e466cdb797d1c630f935d5d3a18b1c47d08de65f962de4f23a90a073a16611d8a500f7424a23a105146baf90a2134355b6ce185024a0a1d87a02dccd0618872995cac57348f3c68e4170f3835b8f042015b6cf1f01a29b87158e018d8620b167817b9878e422c19e1566256f75ef438247410629f98079f87959d3e9cb16310d62188c5e642faa0bff9a37c20560b9d37a6cd58297b3c2036cd153c79ccf20ffbc6389f7f453562fff0c3dae3d449ac7e3cfab054f520e6562eafea071f96f91437864ceab9eeec61598ff5932ff4e5928e1e96c8b25cbf9d2b8edc79d8522e54bf631a0ffbcca70849f5438c4ddf618f1ab669394a5d1ea5edb08cff707636b28346b90eab44ce9f37f83887cd513a6c97acee7be8a9d7333a877d3ce8a8ce152c5e972a87ad6ff2c58b294fff8f386c51ff4364a74b7fb081c3f21be927fbd3b11bf3867d257f32bfc8b861d1bc492174eed1c760b661b3cce12c4eccb8ebc18625bb2f7a98d3ec8a59d6b096c6baf8ae14cb5851c3fafbe5e3ebf51e49fdde9186457f9c2e56d45cf33187864d7a68799897173f8577863d5e3ad394f0ccb0e74b12f2f8b0326ca70cdb45d5d0a30c61b1a364d8cae23ca7260db1733686a57ad421449ccc1e530cabc43f1ff938da850e4913748461bd1f78081f169fc7e30a0c9b575f8ffbd2fe6949beb0d7c6f8510cba9682df5eb0628f073ecc29865d582a2589e933c6f0290fd2c1857565e2e30f72877906330d1d5bd876356d4665e8411e6671e8d0c21a7b27642ce53ce63b377464a1892721c28f72b00d1d58583b7b77be531ef59c850c1d57d84c227b60f5ff7758e14acdffe9524811414715d61e44eed14f080f3aa890d7854d99861c66f7472d744c61bb9310a5a63e5485142eb8e093f4850d47c10b5e600301ce002eb86005580082d02185ea88c29242a5f948ce4323293d091d5058f270ec2f560ce713169989e3117d57751556743861bf1477ba7e3cba18ecac58743461cd73631bce73fa34f1a35974306199943e908ac9a36d6d1d4b583a6e4392511f34b20b7f3b3a1d4a5835dafd8ee69eee5e93b0eae5fefd89d823cd10096bc78e2126ffd3c7a7e3084bea1f799ca05f7f711a61c9104643a51fd4e4e63a8ab047d11877d53f63a5a683089bd86c46cafc47a16308fb54be5e09318f7c1c220794c0460dd3850e21b862d5113784f8f8c84b6083bb98b1821b28988182197d826382d0110445ae329349de7c32e800c2be56d10731474388bc82f6c78c12dce0424b013a7eb007d93cf539e632091d3e58c2f3477da985cd5d57e8e8c11edde13e245354e8e0c192733e177de87511641ad91d3bd8f6af3eafc2843c087e2da04307cb4e863f89e9470ef6947f33e27cf6734eba5881372760091d38d807b2e12c458e0b197b76dc60edb831f6d98f53eaec349214a08106c0b080052450a8d061836533ba63c5c6bdf571386ab10fc766b37cd4e972a5d0487ad8702fb8e0e24612828316fb38e7991b09174cff93b3d83387301d79f320ca433864b18650aac1e3451bcd8c4652c9822316cbc4f590bf877fe93246836cb1050a66b8bf3b0360280086172ca8c128b8d10503baf012b00d9e803b0350703cb005223860b10f7fd47954c1473e673d8a9cc0f18a7d1856d33ea6e681e70c872b8aa315e9ce67ac583c8a56e84cbfeb51d48b1ac705ee8f1b1458c59a3b94e68c7a5273a58d1b359438c0a18a4d238f32dd9d874bff3952b15e5d347bfd288884cd831fa5583162c9ca779d72d2a59dd422f6414fecfb9a9c87f12b62ef2b5f0b93738ceb276253df8d3d1895cef4818835dc851c71e143ac3fa2a9c332c73ac610dbe6ca4bb55b21b694f2e5cde14c2a534488c57fab72a78450b168105b860559b1f0cd430909628b9b1efdc61a887dc75285c5bcd8ca01628da221879442e6d16a7f70637c8c759722660704f0c3f2c334f1d2cda41fd5de877557fcc33b840faa1d02f0618dea4873e5db9137ddc312667623f5f4e4875a80025b6c61812f08a087a5bf071a9345feb07a1ed63d1f844b339bc1c6c3aa316f6254b8341a7cdc619d209a4f23a4a49cb6c39a91c6f3a669bc249e3a6c123d458f9a34eb613a2c53a3d22164c80bce61d510e2838695f815ca614d0bdfb47963fbaf8ec33e8aee103487c3aaf623cf21fde0372c3d4a2907cd2dfbf083ddb046d4cea136c5f88fe336ac6721c2cf7765c39e7b1c526c2b9976ae6bd8d7feb37a94769536a38635a50f91154272848949c326173be67a22d2a4130d9b6426b5d8f183e41f3cc33efadc984c6134c31e247cd493e871a510cbb066d8cf107aa1c7799c428635cf49c6fc2b29ac52c6b04f4c77b95442d9854f0c7bee86558b5e18f6cde341c84d9c1cfd3b30aca7dda3ccdba34db1625f58f3386fac103d888ebcbcb0455587958f2e2cd3c3fdaa8a9f9061716129cd2b951e0f3d27790b5b780a5639b66a366a61bfd4a332fd419485f5631ec6e863939b151416f61e44c8a31ea6e4182abfc23e6a5ab99eccb4d6638555c5879f43ce751516cdd8f95197ea22a3c25adbc38a1ff114b6b8e8a944365258d3c5dce1151385bdd4527df4284261bd9facac4ca39e7a9427ecd7a5937e3f1cf581e784355a974cc83db209fbe651f850d3cf6dcfc5846d7e74d6b9bc439c4e8025ec39e59146674ab81412022861cb292bd398c2327d3e095bc78b9443551a094ba43f1fe674bca4f311f6d9aeb0f5e351d218d908fb780ab93248471fd645d8ac63c710f275ca7351222c2932ea7a8e3977a119c27eeb21463b8d25a9a610d6910ed1442ba2781083b06e46bf1ca73220ac17b4f6c3b2fa81167f9a69f2bb7e51a38d2af0458d04280908e0832df738e246a58a95c9eac1dac3abe9cab2bfdf100fd609329eb2ae334f4608b083adace2c69e4f75b0648e0a21dc5a3608908335326c7efc214217100007db7884a60cf9bef3f404b8c1729d2b0fe7b43a9de904b0c1963b76af568c8acc3c6ab1654e1e5e4cffa0b47bd0620bc9f4103473641ee4cc620fb6213cc55d580fb62cd690873e34cdfceba7e1582cb9774afd3686c5f65163f94a2b4986cc2bd6a928e31bfa7e355aaed87e2817348f7426c7682b56cba1d286cdbfe74162c5f269b422841e04c62a96f1ca1f3648de8af1a2812db630c58b6e18aa7858fd294c8f27159bf7a708a3abc95314155b0e193db3d33fc55ebf7b3f38b9d84bdf146bcc23c939d9471e6aea4bb17f9adffcde9c144b1ea9444bc9933cf23c46b14546b35049b4e29a0f51b0972a8ca6d043b1660a21870e5667717240b14adc1eea4dc61022fe89e5539893f541ec89353edc0f3a46b813ebe7f488decc9fc739ca89757afc157f94f96333ddc43962c7901324d5c4927343e7c1a65c797f2696ba0d33f9c169860e2656bdd0d9facdc3581a738925aef476f8a0b1c416c2069f6413a511339558734cde238d3e0e0d3b25f6cc3fb298a49ec462963e52ce78c8834c4a628b3691bf229991587f1834c78f879f2afa90583a9e8468e9c147ac96b6c1f74447ec11e7ab37e74147cab0115bcc171229f7b8f2ef8511cbf56884f954f9285e16b1fcf8c693cc44b99c4751c4a216a2bf124dc43efecd38338f5c232262b38f117e68ab1722580eb124519dcc1032c3448a21b6fa3c8eed5ca1da7d21b6ac641a3779a48e1e86104b3e0d7ec15386d87d10db0fb6872a3e989cd32e88b592c7a0de69b7d1ba40eca310824f92bc18657280d8332cc7c711d3a4ecf1873de6ee1ee58b3b3e79f861cdeb55abb8f5612f5ffdd184c9776ec687f5d37ba307d51eb6645e116cec227ec4f4b0e6ca395877487576e761bd7c3d99b3fcf687293c6ce98227eddce80efb28c778d563121876582b72c5d579faf5288151876deeff4bf6ccfb2a04061d360d958bb03313312262803187ed83e40841f5b42f463492be90c32adf71734cd1fc73b052b082873fcc0160c4c1f4bc67e2e34fc161f5d2f9cca3aa1f75456824610160bc613f8d3946d9e09f26198d64000c37acf1d5573dae4f565d1bf6d104cb1051274e4e9e0ddb6e9090fa0751b31d5ec3d69d420ef2b1873f34d1460dfec2bb20a486258f07a122e6e429a41f9f0634d77e7b18ea030dabe456c6ed41d94698cfb0ae6467e98f72e24436c33edebe48d94b9f7c185386a5531e4c485ff0bf3c8e0c4b7a7d8f879d82da266f0cfbf7208ac7b49d1836b94dcf588fd98d5818361fe749ffb89331c602c35aa23dc859197a98ddf862868200c617d6e811b22c6d6fe6f07500861796dc6496d173be0b4b8acd5e872ed90b260c2ed01630b6605ad8434acb2ef1a49522260b050616aeb05a9a1ee4cfa8a191a497011856d8f4e3c46a4a1b30aa70aef1f4681a02830afb57e7861f47c9080bd248224903c6140e8614124614080330a0b0c7e8f16fa45a4ef58d00a014309e50309c803480d184f64793ab7a9c29020c26ec1b73fae9474bb034efe3e630cb038612680b22c04842c1408261018c23ecb9c7b3116e7e74910b020c2314c128428d000611369f1c1ff3d09358a40e63085bca1fe842d822839654789a94a38f202c3e4c49172b3d80b06acee394c7a378f125ff6019ad48412d3a3e4034e610c2f7983dd826859022f8781eac653dd2646a79332cb8832de6c9739a7b643ba3837de0912cd74c4c9946cbc1b2156ab2666276f2413070b085f3d22b8be974327b416b0260dc60e93cf0f8b9c2546fe801c3065be4d1c45ff00c1953b016fb205ef7dfdce7bcf106408b2555d29ccbb10c60165b885c1fd2679762acb258e27ebcdd90672cf6eb986206e9a0f9f4a3c20060b1cdc4a64f91b1b7268f57ac7a318ec69467c4aab862b1c84389f49826468fb5621fdf8c7581280c8015c4cdd06f15fb0fad535eaae8e3a86155ac2ae122a6dca4624df351a490530e00159b5fca4f211ec67cd0834612696000a7503592a667540a1919432a999c3776def82962188029d6fb1e5d7ac5de98318f526cfd394e25cd9ee9514c81877fe185db989184019062f9cb100bc9f4e1f3a3d832924caad7e5d071516c2af13c8ff37860fa7528d6e8f1e654f5a3b34c41b1daa7e439a60a1f24fa9f58244ae46deeafc923df13ebc4e8a1665d864cc97762ddbe209b53ecf37e4eacea79fcab913cb3f29b58d324258457904bbd26164b9a7b18e3f14c2cff275e61ac07516ac7c4e6f983dc73f1dd93f64bece39184bc259e259674714def6b742fe69558539cf228219ea8654e892579de8ef93efd2ae531893d9a04ed4efe2945016a909186552cd8ff5a46ed4d31651332d0b05a5da66ef8b8c4848c33ac37d903cf3dfbb1766b428619f6e1661eff4cdc4879a26558ea2bf27a43ec1232c8b0274fb6d2c9932715750cfbe4dcde54acd21132c4b047b81f8a855c4182c9d908196158af226dab22f7fd55320632c0b0e55ceac1847832e611435dc8f8c25621a7329be9be43820c2feca37cbab13fd3ede6b87661911852c810d3c64676bd830c2e6cde71db61a62ff22827630b6bcc5869be631e5a58c52af45ce471f2e0ab1d6464618fc95861317cae743e16161fd57ca7338b63c1c436c8b8c21e4d2ec4350b2b3b2a1b64586109abcda3baf31f6e26905185ada3c733be7db10c2aacf2a3609d42b4d160fb8c2f6ad85841110c0d34000632a6b085e81821a6ef3c0328b8f1850da6618116c890c2be292fa8744e8c8bcb88c2ba3e1e54d834bc58410a663c6cf08d2f66d8a8c15d3caa6878b18214dc0b6cd4d000d27116bcc0468d2f92022098c1011950d8e743befb897821f6e485957b71230528a86163052190f184356ea587ee6a8b2dcc1a64386153b11f69b24a154efc26ac7afd2b61bb391e722ff4208309cbf4c0347cfae0252c66a17ac38fc226e4617990a184edc7f278d368798a1a652461c95d3f92d2189a277a3290b064dc7861a1875ee3211947583c724c1e44bea080bb600b7471430b250b4a6518619510b6eae664228d5e8435546efef8891361f518ffe3c8e11dfd7a0c61cf5eef81853c9c0be1f46205ac8041c810c21232d95c5e3c08abfa7799cc05fbcd28109655f18fc9ac2e45d1fc60897918be5ac1f4c126f936a598471592d2a5075b8a21f4e56478b0fc5f4eeac38831f960226307db8c8dedf6f07fe0dfc9d0c1fe791853be147ea8663f72b0e5d5180f89d0c8715141060eb6538debb2dcae3c513a838c1becd3e3fd43fb715facba8b1b5fa480cc20c3066b9dc7b158493f48aa7221462df649699bc7c9d2448fbba4c51edaa318939149ac87ce62118de659f2239e24a58488218b4dae071754f38498a789118bcdcc53c68f88a63fb3c60c2e56800243356e58e0e12ea8c10024fa400c58acb1b753427e2446cc692469a00bb78079c55eb5b7f9c3d4c33c1af1b8620f1aa7299a7637dd8f8518add8f3d0aaa2428fbc7b94ada0c46085318fa2d4ec558d78357a8b2d08ad6293749732a65bedf479556c15fa368c6e6850ffa462cd1f7908b1e98b818a25378594c7e5e3e1dcc63492669818a7d8f262e4cc312f34922802314cb1c886f7702b55ceee598a25587d679def0f4d32a458f2e3679384aa46b1e661cc8578df777173ee1043145b99740f632a8bd1479218a1d0c7e3a18f5722e69c1b366670179c0225181a68801b6280628b0d13679b26d685189f08420c4fac15a2c4c9314f181bd1e810a3137b5f1e48787fd89ccb1383135bf920a6f8a7f1627cc60c3136b15c8f7a4d6ca9357f99a365968945a4372e3c840f69262696ffe971d41eac776a25c62536adbf543df8fbb0b9b1c45ae1974cb52efa38fc95d8237a5cfbafdd34b65162a9cf1779d2c1fb2644634c62ab1d0fe953517cfc8324b144ebbefeb1ea984846829c1b4276f8a59c471c624062ab9eef303d1919623c62cbdc9f23f3449f6acc117b5ac9b7f11bcf93c88dd8cc7ce373fe5d8e82200623560d29b53cf48c88dba962412d62c9e3f5782629d3c6434a18622862150d1d556258ca054e23116b68e48dffe18fa2a51f115b2459f361da8fd2f9436c9607f3513dfe59e434862196c83fde0b7914f54731c628046da1358841882d9dc7ed66a578c1344cdd8d1883d83aa8c8ece90f2fae1043107b1ee64bbe775a7e9fa440f021b2c7dd29c55940e30b4f23c400c412cf23c662b0bc19250bfcb8e01a28b861e3055cdcb0803b034c79c180187fd0473d749e5e1f7ed83af920c2926608e6f7165b78e125a8f1b0428c3eac154e2eecac681e444d85187c58c63c487646dcf559f6b08787e5142a19efc6c335c4d0c36695bf7fd0a31f47f86a8b2db20bf7c262e48158ab9b3cd4bc87a7808f173ee30b46411737de5017ee851920061eb64a911be5ae667c15b81777d847791439a5d09bc793278d241b9e1bc30e686fd66eb84f8b0262d4e1bf8dfa58395cdc3833be386e82be614e10830e0fe384541772418d2f2a1d883187626458908c085652271212eec7a390cb62a3469a20861c968b79a0b1711b7a98f317d860ac408c386c1537192c482a1ffc28561c880187bd37a37deadc140ac478c392a2ca27731e79bcabdcb051821a6ed8879913ba3a34e9e95c021b37b8301788d186bdb40799be297df85b4be05fb061a978e9366c58f730e7ab3610630d8b4e0c9d15493f13626a58cc53aaed3c1b1a495e7cd105a7e0f06f0231d2b08ff8f7a51f05b9531905358e3fd0b00fcb073f9c8ffb414a171a497fc3677471e30c7bcca1423c0f92f6ba63e3460a5ce026811866e832f48534926cccb0c1c78b322c21dd799446e50f82400c32ac2517235739f7667c5d74e1334ee09e02425d503d20c61836a90c1325252bbe61312c3f795c925ed163eae6450d16942edc8b2ed80245fea802c408c39a2fae8fc28ac4147430ec1fd2e4d49b871a53f65f582c872413f3af3c9e3cbcb074ac870fcb99185d583aa8c60fe2fb532d15830b6bf2b0e841342753e731b6b0a7e49062af8aa689780c2d6c954fff2cacf6c3e4215c8e61bf7b2cac759d7f9472ee74597f85b533f2d057b7c23e8e9f13d46cec275385edc773e58999d377a8b0e691a895681ec9ef7c0afd2049594cca4b613d1f6c8cf71e852d84fa7840612dcb7ffd23c9e3094b9ef8ca949e6441272ce231865a594dd8ac474982a7281396ed1e74be893913cb25ac627eb18769ae47e1a284252d24e468ee2461bf8e3f3a8fdc41c2fa5f3bdfc3a02aa69d23acb69f32f3209c99e4465862e3e671fe3827648f226c17a57c305e3985900711f6f16882fea7b417a367089b65924db53942d82ef5fc78b898a7314158e3f8382b7f4a0361fb61dc464cea9b23d63fd8626fcadbf281f95ced833544eb511e0fe23dd87fa4e2a4bb9ce27478b0879c56cfb4877256ef60d9986b7ba065f5a30beb60c9da949eafd2ad9e836573b5828f42d2fb14074bb0198996a7b73aa537d822459210728f618355626d2caa23fa8f538b3de3d6c5ff8ea1c5d2e7392522359aa999c5f6233391ce8f982433b2504ac52ee54d2616ab86d8d5d2f5417c3e61b147e6543e32cbecefe42bf691ffe8d43f3f464da72bf6ceb59af6fe56ac53d37123edfeaacf8aed73481ff5aa6fe47c15fbfaa5881fe7efdc79a02af6e98f31ec073905bb602a96f89e9cc32e5af451888aed3e848a77116f77c2536cfe793cca3d1334c592b3ac73a87d79c829c53e0851f222523cd8a45834c43cd44d9a1d738f62adaff5a87982479a45b15dee5104fd414a28f6b41bb7252a28d694ef53e763cc56ae7c62efc8b10793be3f06dd136b9eef0c3eb43bb1c4a9eba1e53027d63cfac1a75cf66123bc4d6c212dcf25bb3099bcd3c4d63dca5131ecf5f97499d86b36d58f56c7c4f2e9a3d6c39d3c48f925b6b28d39e305dd1c634bec21493c3fd34aec71e9a374b992c7ca50621ff5fc30c7a7e83f3427b169f08faa0a21492d8925a7f961cfa624128b5c0c617b2e83c41e5243f2b82ec5d0ff23b69aed92904d3962918c5e775f36228a55a8344e4582d2582c148ac4c1802010061af41e00631408001030228e45e2a0481469cbf00314800356301c34202416262216141616108c44c15020100a06c2c040280c060542c170384c088e48c61fa0957e70fac28c96d43c8b525bd281195dc29622e8be67b55a5dafefe8d581c7e39c41772eaf90893660855658701d180b458bad694842c25c6c324a55194d9c5097566b404294463f428915c03d7a487874ff5d21f5455d57c87b55fbce25a4787d59553093fb7a5ad463b745d3eae53d0a767412d3817954c2e14694eff11661860e47ae9f10ee3392f6c8058efd30e81655177c6d73a626cb3dc0b440661189ede47149180307d827295354abbc73789a59b88dc16986b21f8220fa31610c4266f1c4dd2223a36845bce6066858b7eb7504564dc011902ca2176d08a20617957953f3d2f0705fd510be75547497b41a444f1982afa966f4b0793da571ce037a8ecbbadd57a3a1fd9303303537d81ae054b4b3ac881725ab249f3cab3eb3d9aa002a5e77e831bab8f0e19ed98573ea04aedb31a8cecc445778037990fd2052b6480cd0f41f1c15ed8f4450f4040e088346a2ae137a4c36879b7c104be77542d63a56574299bbbffe53cbf958bc7974f9706aefb8175fff1a9dc5451302947d385bf70f7fb66397815d790cb02d8ac2c39e787f10ce1d373e249f19ab97d0bbe826a203e01cf219b10d61d50137bf8ec18ebe755ed791706b6a58e8ee9672a645c92197e7af65dd16f0d86cd91d03855b7cbb5686563ea5363d156e3632258f28838af065c33079c349c005a522c7e0a3583705ac81daca82e0e1338b91adea57dd80b549e2766f156a4788d4109d741fee84425003aad8b32953ffbd7c72f99d9df44155764bb3b5446037f6843920181c3f43fcc4fccbe5a053a411448391ce3d1551d25d2f491425da5eaa296b83195ea474b0445834f1519d2fbf7ff590867d9146896a0e722aa7e7c8fcd9f4e401ae7bcf75eccb25cc7e509d28ec29bb4ce1f1db568be3605c56795a4353d3312ac2abd1d514dd90074b855f3510b7c4ca045088f728aec718499995e3209f0d9793079234b5ca3a75ff3783c0571ef1a7a1f9bf42b35b86314f54bf99d397a5201200fc19461d4ef619097f30545772e552d6e0ae7dbc2ae723ab23ad8aef933ec445fa23d438659451750dadb0a21ae5cf2c92522acc36cfe0a91257a1bab953728c3f631089d79e0825e9ec0475026c47a4f1c8f52fb14977db3209418ae982dd5dd9263c0042a8a1c382a5fea59ca5e8de46d60b15acdced2f06a141894cfaea3f43333008b9d2d11e0d34fc29a195fa46a38903f4c77a9ea87eee32cbbc8c11654ec05329691d80d97b4ec7d55cd68200847e2bfb136920664585b2545529e5d8f2eb87624ec761b59f02ea200a2c46f582550e6f9016c9c555d7c5fc6562de3de8d835626fd7f03cb5bec78bf715ed105e8acc405c0d1d591fddde3711229a221728b9a088d659004a632ce409339e00f9e2a0531eed88196bfe3f48e66cfa8205bab68f0903ab8ec4a79d56aa314c281dcc3913b9d25c6a8b5028c1d6777cc8188329f40bb4dfe6c19346d577035738bdf7662b2b5831e8063ae175b9357c46164e45b8135bb8859e13467a6c59ec10b6b31964d7027b146ac9fd941eb5e48e5998439d4ca341731c8f6e796c5a67ba457c7e219081af1c2ef2b67f20c8490a18aa43f7764d7e9d34bec82e281d61a7cbca2b3880aac51a80c2cc692d8e71b1c8d4c7e7542f34601e4dac17ce9da67d6ad93c10b6b5820a9431591b53225cf25829b916f2ad3d0d0a877910d8c621b5f359b6de0d9656a06d893d0ba72a600304da39428b9d8ebead467ac47938a40838e3c68a6f2d1656f826064f6769b64c4216131275b66021a6106e90be64d0f15c87c257cc87c9c815048d9905a7a75cd4eb467b29ea3a47d981b8ff74d05817bb1fc0712b0fa04c4f898902e914a1ec739c65881c84c8caed1a2a84b091965f8825f286d58b062224bc8ba7dc15204c08673db807ebcadbc8026e8b5214c88bf397c749e0550b2c23e9ac50cfaf5429ef70b35c3b3509bb67eda0f3994882a695feda3123eb85e09e293e322091552aca7840e8029db748b8c796c16c6b7d092b18cb931244b0a89fe02b07c7cb553a613a36137a6994cbab0bf86603b8017df4693714a0de9bf4c9ba0df052a22328d287c146423c83ffb61b0ea1b0bfbf2dfa4f741099de22dacf98784919e3859d5261d4f35c292b164e352563044a6d35a50915a44c6c4a4f917561b1182d2970dfbb82f843f83fc2bc4fe00ca1e8c20647685cdaaea483b6eb820b93ad3d917097bba262b3ba64a2c61d41cbaeef12b021c5617d2bd53f59e7d4cd9bece9fa2547f7389d7690af9661f44a9192fd8fbc5e18d8a768be617f769cbaf2c78cb0fdfc15dd95738a10a87f02327eed50bec3bb81af28ccf98070c7ef6ed1e761484e765e7e68c13eb9563ad83b6a7353f25608e343b2e00eda9e62baf00aac988f5bc9eb92e0be350c692434d69ebe04ae32e10042ee34a8781913f6ba97fae74e8054334233f68df94440284a17538593c04a577d5b780ecf4a2b860a517b153df169e63aac7da9fe66a544192546c91b0eaf0c286222191395d172e4dcb6108824244d2bd28233b92fd12a6c19548f54c6a99e226a6b19636b82d5acad8c4bcb81c49fe664a61e3f72512829f4b5ce75c59ae66a05a15521c0b516a9eaf9b0f9ccbd2804b5bda8f0afcdd04dadc9ad986a4214d4f6424d4dcae0c61a9bb187c653d573d85f14630a6a4029909e38bd40903df43eea8466e0a970f172c1ef5e23aca7aa0efa4287a399008525d2fd0b66e93975f396c57a705506b18a405607ea5910d6b968ab5829e55446f64bc52b3ad6136a67dfe2a8f0d124949152cf628aabc7fa8a76a55af5c4b7b057ecacfb5e59aa791e96f1dddd7d4bb4e2994c52eb4fabb8322835ef442507cda9bc19158d542214db14de0acc351a6bc5438923985e6f763d21ffe15381d40ca81cda30a9a7b5264f6a5fad5d31ab8cefdbb63636998ae8ebe7e11a70eb58810f0443fb65b059c754b13a2994cb749fbe53332c2755b41ed9df1e8e5c28c04fd4af449057e88227f0a17342170d30d47bb8429aba812b8e8c9046dca1df2cf3331a01ae989cb8262a275c2f664f44b3304ca344c78706046d4567eebc248d1163110fa76a67a67967c51b31c6b801c6141fe318074c77ad121a17c345636230c48d8f3daea9fb9d6165f8023ee5e3e3b4737302919b289f705b724def68b6661f4a5e279c51e0b11dfff6f2941c745fa463f338f49428c09bbec74866d32322b26295a80abe3963a99411a3aec178b2eab1455505606cead4a85a02ac3476ef82c3ca409033b94cba3c4a741ba2211269498b4a723929434da8b4612567d21def51c145f17ac15abc0c5e022d012f36a0789a648aad03149fda9082004c10b657e65c30c5320aaf17743c9227df817e1b706bcfbedb729eb6ac8053007100343a394464f9952efa26aeb8a4d529de2b759f795722f5a9f3e869537da5a7ce333d632dc97a55ce5d2bb4559bb4572f26d315155708645d9df5f90debf8831c46958637db653e2603e3876f629a31a3c7292094cee10e70e466423578c5644ce5d022da951427afd5805d57ecbf5ab5e096fe332a5334f812ce7e6e724b4fb80bf70087c41506523071aa4c02cb24c89c09983361ee6e610536416c046d9b09a2dfec90d83cb2097333a181bbc45fc6a17af3f073668036de005df06682b2852c66d60663c3f236c344a0c80f58374ae44cc731abcd844e068edf9c4dcf8d4d9e33165245490c718adc9bb190576543f80dcacf99713ac971e3d9cc1d7134c7346c86da30b159da50b86f863071aee127737ae3b4b2a175c31f87a59bbd1c7e38ef6deadcf02d0756e58c7973d7e1616c8cda66581b160c7f13e7d20d789c50653343d582a590be99d1793d40ac115a03a12654421c06fe37e1e935fbd7e9151c452b0304e7256dbd0d0c908165fd028b00e43a357c658970c206a1ab2bfc683b13431425aaa2a1259278d5b32783891376792892ba873164c95a2daa303fe8162c03f28275e3a891e0859cec830541f30541dc71b2adb11a54ba3d61147b4d979268334ae4075d6a95702376147fc55192a5f130326cc52f7e075944b573188e862de3ce9aca88a15e4d655bff0d481b201e4d3fade83f6bbe22116bab09807363aa8aa50a3d50ef9ccc674a8877e1afbe2ea9a7be332d7fd5078d1d1c303fcc72d90f20ef82e87c0c28bd7cec0a4a24f5c8a074864a2fe2c639230daba6a3df0ef3a18831c5613659d7c2d8870ad3f4d7a48d29e93cbcb1e8b902afa9008a61b71f4180ff05dbd2588f6fe5c2efca6d5565765ba345cead392eeb94d8f095c6255246d4daf464d58576abcab1dfe01d7d6770d06a3fcca51eae96d0741cefcaba705060c8418e04a98af295c7da1b5b442dd5608429ec83e3363a80c289683ca748a4b1531f8f53f1a202ee7671d89c9d7f8984d86d38f8316e1d1cfdb9a29902ce709c01db69605c1d95dddf6e512aec229f5f09d997d9f12afd353b0318de508cc5126c54e168202745efa5cd8b459aa75aa991b2134fa0a6a99d21198897417f3f98d5b97830c8e2b3feabbf187c73c2dbc9e107d985bf8dce9d7b01bf957f4758dc4337f7a4f43108b6a924f56f0e2cbb8259f822c871b416731e176d0e3595382c66602186a16096527dfbceaa8e4dac028f04a809da6a2370edd37f5ec846a9be202396a5517216765994108338d4403445000aa6a810bd6f7a831e7a60ec2d051bc3e107a6daf2f8fb05f927b56bd8c513b4c16ec3ca8c63bbe4d0d0830f603c1c9a280103891ed8f80adeb4520ab8765322aeb22fb2934db36f3d7e9b5db31a5279c2b49e55c4ede72a136ef75a52a055119c1ae851e84930c647bdccb103edbe57d423d0d8c9de02facecc97e4e713d9e403ee91f1012ef87958be11bd1df45a92e0a50b865f438ae12a98c983f340fa2886e5426a123e0615176da617eb3d74de8c0a3f1079076d3c354fc38be88312d60b170fb308e185e040ecf116ac6e407cb18febe004b0b2e8889ea097915d78c0c30399c78af40b37ba5c2c146ba14642176070231c0839dec1ddb9c05d6578d0f64dfe8dc143464ee50677ff0e6fc315fad0dea15744c3c0f8f752fd4d8008b6b42b7a421f75f048799f21de340a88004719e785c4c33df0592f2f8a07e69bee44c7770a25b3dbd005523a4a82998f738241446a1fc110ad808733e49b93c57c1b01a98dadc88bfd051f521a928068f526145037d08a40096fd0cf6a70e13370bdaa22214c70e1f0cd05e77905126f02883e3836fea260a9c7bd6fa1de7ab971220be47aafeebb1483ec3630790d1e37efce67f2c309b25f620a70a865380d1ad0f7f8d114275ae40c39de003e6c08174c106e5964b8113cbcc1dfff7c3d75128cc77a6f8318965e64e36eab01e121c8f8bf773d4b674e68139a0f8814bb4746ea5333e2de56459f466e03880301c187807891e55981edfff0b4cd2e38fa166d58d7003542f08e876f101c23d230ea81e0071924cfad574bd051dd6204f879da27660f273c33b7d4b0a19b42cc7ce6868a41cb44d82eef09951be1b3e08c8d55392cd8a9968aa4e467a19acb1b597539673a903277c8fa60bcba07f0d7fb332e03d9c3510cb87c925fdeb9f0eb9513d57c03c52f670b43ff01fc627537172eff352ca660bb8c32bc012182ffa826258a01238298ccbebdcffb5a65f99e93810688934d6ea94802fe6a52eacf446073c040b58b840f3a1cafb50a98f7dc29610c0e1a18c1bc8b9fdbe49c1ff0752f4cf0488deeb63f821ceb8bca3835b6ea91d05ddec3304562b7411461540fbda5647d3f829d3c5b6b0680ee2d21e0ed1e9d19111a5711b64684e20432a5194b6c2f78782e025a01e8ec377a0462ac6305bc1f4b3651c0a49753e6d2ef0dca47fd97cab1ecabdb2580b97f2219d41e3256935c924076c91e0aac57992ebe44ef3794de43da112eb2808f5af0897cc6de155f2093f697009aa100fcb3c1830e53f0a981fb15dcb48456d59f0065777921b953fca8fd208900ca3c443cd361b75caacbb7091a1e2a9a22ba1e8fb1ed00ca79055a8404c61e932cdbe215138abce84bb4e3a28d8430adcc841e2dea6c4c3bde65b3da0e8c854d46292b32e625283d97ab79dc64d99bce95a8150dbde4d041287897e8547319e742dc63af57760feb2fa56a9a334a25f68ecec48aabd23b841afbb822fa38b587ad4a52492722d03eb70c21879c8f97df4385dc3e633a9496c7753dcfb5c55541991d651763358212150c4dadf47ea7042905cc21d4dfd584825425e00803049e18dbf723d070cd7e5d2415bdb4177aeda573c328496d2ae30b1d0f9166cb80778304a5c218b801ecb96934b3df24c801735f64edc0d96c86098bf44bf755b7c5be34f66dc9f777bd93ecc9b872d768a36dcfd2580504660e8d1cf6641b899e35388304cfb7722a9b742837ca5b873e57bef442bb305b58da40699d754852c24619e9973a5273583d27cdd2f55daa5d356425a0e82a546dd272e55135636f9832821d54d0ef5b43f285b89696fe49674b20d2f03568fb15dca6dd4795c1cc3c2a4975c5fb2a01cca565a307e693749bcab2ce0e9b63a2c13e3ac8c08d5b4f9b6da5473660643aab78afb242464c6e56128f3398119bfc59d308001f741ef077d5849f86056cfc038fa247fe8d613a11e95a84be7788cf9d2e8883cf1c4fbf3ebee99c625a3bb2e55d2f3faeca11de45def5b56613c80763140825a9f984a7685efaf4978befab97f861a2cf96a70ad8eca2187edf38768446e6b87d10a7c8f2468bc0886262c1f4a9b144017539cb5a39d23a185465e271dce2f4e07760e26dd10c30f72368cb877b949eede2bf0267831a0b5a0e6185e97779fedef4d4ca8f8765456d6429c4c8ae22dd99073c39a36cf32842a96960836c358d672167425b0a1d758c140b6a6aa5f194c82397998e36e08703f5e394ed899c185aa13283d16909a93dfda6ccae254511d8012a629d93bcd21f623d07870221810a9fcc1370aab5aa46e4b46024d037c35e7a4220595e324acd450c4295aa796019cd2e5d897ea57dc196eb32b5ab40f2868b50400309155802e39c067cabcc3e36d7330f2c943cdc3f68f556a982453c22108fdf8d2b28f897ca53ce1b60ae66dd3603ad1389c4242a8d8fc449d2ce8c81d0eeb1f3a242998a36b96a008401100646a2df14eb0e27bf927e220e7d34afad91257945536158e40f08a59b531ca27b002a600accbfd0f6887818460ef434fbfc6e78c8780584731ca9faccac2f825e62445f218f073e8e61478470cb0a22fb10ce4120b060cc4b298d0687a8c0810f16fbce9f7b5e38498882a3bb651a97d3255d189a421f26b1223f211127cac264155f3b08560c681b589fc93486d5ff60bf68f8098f2e1741e0b8d842e0f131e3a7a63458d26315883d1fff9f591789892bd3f59e25c50c59441ca286930d7306ef91060cf4a682cfa56ce60932181c68effac8799a5c3599b0bd92cc178573522d4d94362ad4840586a47fba19ac120dbf429dcd815405f64e695265a629bec40e4cede023c99a88857b3b3a2c0540c07c652d15508f97d2481649b5be4586162f4a9d8c54f29ad85fdb5ae613d0ff4003b3aac5f2cf6fae1130c0aef3600fce20c4e93d5cce6099bed9f211e9fb20cb7307e0b973c6446a9495a70588fbc9ff0378eaddbdb134c619e864cf398a23ff1589c37aed78daf09b858384006e8d38646060e941cb025343cc512a2c360141bdc8eafa1ab19835648f9bb478c61b343023c144d17a30e3bcba0f09d092400e8f9f7f7c2b87cef29c69f5192f6d28e25525fd60e967b94a82d95607da693d564bb290fc40afaeef1283626f8fa23a91dc238662a9f50ce4c46ebf7788d490ed0f88c1076e694870badd1a691ace668fd2e8e7e704ffba2bcc977b71c450c4711695fbf658e3897d49856ec3eb801db5d076bed0388818adab3c5ab02eceb6b3d8fe3dde1b77b8c55f4ed0fcfb2065bbb67c4c74f2e12aa2a015448ee8a3bfc8bcc38d670b1f5654f482daecc9bfe07d5787cb141107c5b3c06cf9f9b63e9cf6d06558f06c8e371752a1ba329e4cec36d3cbdffb2a57b49a9eff329eeeb5ca12642d6d9609613cdbcbf76a16414e5a70a60d9a371830c96517d1757932bed75350654d7162555287498532471ac6406e07c6d493843dce8ba98d5374ceffbf9d7cb9f989fec472cfde1f5206310b2c14df42d468459ea7136a07378eec01ca63f98ce2ff9a124966dc6221604349099e2c9fabf1776edc2b4f565eefd1791a1b042eb30737d26f151200163c6143202c65ccb3ff00e6092134d3b9c53c713d794ca2f1c978c27b17138cd9c99398fc1bd4b4c76af8f2a792a1c5f5a6e527c5329d96aef1f914f838058f66dac52280dd1c140667165d9c1a995e3625fa9a12ef9d980a00d8fbfd21e048e192baf0cf5a11d689c340c46205d942a0fe0f9dcd3c54d5f0884384f7fa39c62c7c97fec367717b2dd6fba3e32b84e71f8e1fb59021d1f51cfa2269deba7dadc8e8d9cceac1681b3877496041b0ac04da72ee2ec103b6c0867081d09702c18da54ab488d2834cc6c6d3a13e1a4ba71346c4bff732f5943e3410306cde6d8cd332d600d2e6b1236ba99bdf7adda17f95f9217dc3f888a4206ef7ba25fbdd4dcdeb579d4d429c53df3aa5135158ab50c6611a24f565eee94eb50b1510889bdbf02729283857afbd4c67bc5d151643c649623195b32c0888777e9330eef69a90a68e37b2b7536ca289274c96671c68a8397c5f6604e42bf0a846286152ba31df454fd032cf380796cfcf2457d4628ba1d22d060041181437d37d5af4793368d8eca388011c041ec74088fec85dc19bf133c0fdd5fe0d8a9d88ffe5166b6280b22c10075d78fd3b320ec3be3e7884a8d83b8fe4050045b1936927a02d2e6e061dc492a8a5437a8259bc5730de701e486ff65961b575a182fdad7e939c4e1093242962d64b12c2e0534c136aa1820eb80d641f077434d4593a1051215a7781b55e9415793c788b6458af1e967b81f0c02bb4315cded343660f0449f557f20daa30c8f267b508f405a9a1969dd99779bb3f562f896364e6a1809bdae8d8764a418009dfd052bba403382e7983d6ab7a9ea78992430629f177c56ff37a5b2484f04e4d319c9637cc07864e5b9d296b47c7c09389a62f501e8f4e050762919f47ba2b5f48a5e1bbb2cb88dac4a3b48cbc91204af4d5de217c28799f9f86143849dc6f8eda3cc6a52ec1928b8b9e543faf0506614b1c448a467426a59a3d3f61ea0e243a1000d09abc20cdf7c0099fc08d0456022997d2044854f50cc32857e3d8bae36a4465f058940b760a1f9e34f0e7d15957c45b04e394d4d02aa19b3b05451c46960c349453dae9f3cd39a003feff19d863224efa1a81c1604c8ad045c22ea5a84796f17636f56067fce544c9834949028d1e9d87d286c024023589a90c0aec109d2ae251b9d65448edfd9f0133590413254d6a014488429b44391fbf0242b14fb1f51fe91db3005dab122d57621f190fdee658007b2a22cc48972b937e01a7d49497789364e3d502255c92a3ab17240dc1055675b835482e963dc6d2ecfdd7f49187dc0f742ddfe509f88596408138048d50ae65c98b11fcd9b613826a8a6de2d1c76302cff80f24e5dc98285408eb46e7b1950d33bc0f7af6e12d3eeecd477af8e0061ff4e203ebc98f9df79dd68b5bf3c14d7ed02341d00b0837fb237a11c8cdf58d997408d84561b35c5d23586d47d7645807be956a8eb3da82de061df2607957bbb29405cd9abd77e434c48fa82657b9fee85c639304171bd4739c471ede6eae2954acd6d65f98e2cf0c2df6b06d40d2803d6cc58be00a9b1764c1478b436db7709ab70d46e7cb446d8213871038a3c3e82670139ab6a55be2fec51abf2c53021fccb2e0c58f930bd42a01e0a99e5368f590765a6b3bd2a76f571fdc2dd2760420bd5d4676992882900df8269d38d7fa8ead07f95b799e0df71144bf13b8f5360a1562ead0cbd3b0757693a6f7ee297e29891f7d5645a07143d6786b4a045ef6aebae34bedb4a0fa3f700babe8c3d40822e2ce49be37ab128467ad1501221f8ad26252cdd3980391b90e0f52ed766a019bd031b9a6507eaeb12c27e60df6b26e2502478160f214d4c5dd0286821538574c7a7a600cce8874aeeab8d911774bd678a67851c1331d921dbb9868a2feebfceed7281da391459b0a547428d388a2ad7f5c45a94059400d8342425dc52811ec29019e2ba80aa8615068a86ba85f506da0e8507ca158404515948ef6279e2949554109ac2860a1ff8f245473281b8509c9b8d27fc552b05070a02ea182a1a042412114d0df98714e85517d48f58a19a07a0f055c5614d09eb45d611a2a0fca040a3ad41e94395463281654c5189810de8da29d72109c10423540e1428d81321ba0024e3b139d0e336142984eaea42585094d86d281aa83a282fa804a0405110a5c51b42702169892501b28b2502950d481baf7916f222c01c5409d873a34a8be1e2aa587aa604b35e12db074ce6a2b32149e4001af43da60aaa280fb691930cc4901ef5527f005a28045a8f186f8c9442ee89c1e403112442b2e26bc801b07441d919a83b28712001501a585ea03f54654ad142f28d8350ae8c2da7a9250405dcade3011a8bec3f9add81bcaafa1fa566026e3014a41a05c6a80aa87020f550545811a0d95a626c02426ecc702dea0c4f90b3650b26639c33f3f3f3f3f3f3f3f9fd949186920922a5392f2ab5c5c8442a6946492291359db9698eb250000000000000000000000a80bed0be50bd50b970669f6a97465da8e8b3b30766d4a99af78a9a41df8bf987612ec3a30b284ac14b2e750a9971b6a7460cfea35ad8d5299ced539f0565a429a5cd272d4a81c38cb5049c44822687d74e3c0eaa60c254fc5f374c381cfe9497cb3a4108de61bf84823ac3644f71129e9063644d848abacbfa5cb36b0956979af64f54a70b960039bb3dd07094ac7c51af8204af5bae7450dbce9fc7a62318688414c03ab9efe63a58e502a256860b3a8077d3976063e84ee5fcc5d556ed6f3b0f1f1f1de022eccd0ed7a8420963a08d1808b3294f7628e98fcfcb3021e7a3c66c005197889d99d7661f943081e309e078f5e9463050e88c1801839221083018885478e810d22e60e41443a9dda22063604a593532c9149e8b908037fb2e4c80518d097e3e9647d4ad2e50b5c858b6d1249cf8517f80f5e9df7837bd4b6588063078ec6c0c7079a808b2ef0a2ed54123ae9d391442c10021b23e0820b2be0620b46ce21e5cf1b45c8ce055c6881ab31154b751c3d391e17594004bb0ed974da58e0e20adcc6c89743d8ce851538d196a6b24b55603d57b624792f42905381dbdace1ef5cb63425360ef43b60cf9a62fa748815f4fdddf224c51e0738c9479742e4181b79c615649e2ad6be909fc7aeeeb1fcf74e67102a7dfef53d2294594f84de022f56951cbc9eb64cf04c6af2d6aa6892f81c9a17c424ea74a88e74ae0eecdd27bc43c095cc86d799739e88f4948602f884c0bb22ec7521f81f54d6b8d9df2f4b746e0d38f941042103995868ac075da68df8e5f16f444e0d282f4a4577486604e79dcd45885070f1b3a7a9443ef3a18b085c7064c3e1742603c55ca16536d458682c089c414642a81c045cb6379c55a2ca4f40f98a4f297fceada077ce7e0a6d379369164dd033653dd7d65b4df74350ff83cba62ba4dda79deec80eb6c29a5b1b80ef8b4562a2cb2a5cb640eb84c6bdaa4a665dc1083034e66e70a9164fb65f006dc9ecaa8feb9e5c20628d523d2a933d582afbefc7e3a499d8966165cbaf135cf2542b056166cf62474b64ed1442db16074bdb724b3a04686c08217a5bb5d33bac8dce92bb8ec5357657dba82fbb4ce74e312b4d5d20af6fb2e23c5609f2e67059f44294b399389ba70b758051f83c7bf1073aa60df4aa64c9190375f980a26c93a91466fba8f3c2ab01cff2d99120076b0c52938150f4964c831059f2f78879022290577e23ef2da2605a364ba4d5ad71b051b3d74dc24a23d68e544c10615ac94d24908a1e3160a3e29a1df496f8d4d8e818253d39a7d52bad4bf5e0b3ec7ed48c2169fa83d4d9216a497489f0a1e004fd8c2139cdec9122fe9f87e6d9d60a2a6ca8a98ef193b9ce082f0145542a954a54df03bd1d732450995c60aa32b7009d84213fd995f8a9f1774de39b04526b80ca227256dd36cc7068a005b6082f5a4de9fb3ba0467f243925a1f4bb0193a8d88a637928e5425788faf96663d39f59628c1d64f10dd1cee2458f37c49997a08f9dc97046b19dc4de207458209ea4fedc5601a49ee90602b78887a21da09139547f01ea22e4c4df2d3f9476b5029b2c5bb119c5d8bb0a4448ce04b9845da9462aa415f049727877f95324929418a60cc3cbe8960748a6af6e53144702288f6dce5a743143f7ea46c26d486e0b248d38c31c8cebd3185e0747e11bb74f2747297105cfad5eaf7a99a989383602beba70c494905c18abd75b0cc227e1fb4824030497f8a6f0e5945a901c15dd56b282fad9edd3f20adf324298bfa813fa1b927e89443d2c1ec43a26e173eb07a22e41653a2f792de037b42379f24ab5fbfac1e385531279174ca0317ff64a8768b21fed57860b34690eaed579963ca1d1893148490e19e2f6d6607ae57a447f164a9039fdf3b86d425316766e8c04e48e2e32f9a03e7319fd056a5ca81af183c757eb889a042e2c05df8c92ca56cd4eb7060f5423ce7d87b994ce80dec0891bed51f37b09ef3c7f58be4b9d3de06d684a8ffb6cda349cb06ae93285b4d72a465535a039739d73753a8b1949c1af8cfeed348d531c7ec6c910646690a91e2a381cf1c5524a96537fdd819383dff764b56761a4d5b98818b5d318370cbc0b9fda75b5b9767d26e4106467967a690bc3eca34062e8bec54c9b184ad5ffca9e037b05b88814d532a6fc9fcdc500ba32b60c2c0c8f25eaf7c2630f01a43faabce49396ee557e045b7f80227b4a709a6b5c7dcc20bfc66e7f38d27342921ccd1021d39529063055d208f0eb2bab3e916dd504b4b2e307194da14ca62fe989213e4c0c183070e30886da1055b68e1055b6481bb51c1c764ce6f8185628110d8f8628b2bf0a9317bac51c9b3a5dd0a9ce87ec85e0f2948fc54812fad92648a39962da8c0a8cc24335d9ad43b761806075b4c01ffa4f93e5536f5629f20078e1d3d36500a8f2da4702e593fc9ff2aee60e8d8e10003c61651e0aae4982ceb6806b68042ddb163349d7adfdd0db5b2c51338bdccb841d744f5bc710b273049489117bcacc31d3dc2d8a20949d3cfd625444c71c72d98c04f88d9f3334d6e644dbf061ee1f862031f1fdebf630560d4e141818f0f06c4d815c4e0000554f01be88163011f1f2b002b6cb1844e760c3ac813c2de42097f1a557739e4c752f982608b2490026c818453b618f487be7c5197c0164740126c6104462b6df59b5059a2948ac09bdc882904513a929c088c862c217afd27aa64088cf21821d94517fd0a814d325ff69064e998e641e06eed93d2499b2e052d10588b6b6afc47af4ea83f602c8b9812327f2a8d491ff062a125498c293aa9b0079cdee0c1cf26a7760ae10113548b69f6e66ac69cdf62076c0a2a96fcbeef015be880cbc9834c61a9cc538ae7804b3ad564fdd19645e7e080172177d7c6347b8f7903fe9465cce12f6e6103d63634c59cd993510bc66df38e3c3799f73419b4e02cda66a5cba25d66da2664cc820b322b598c9a9405935466125d3a6ba3de0f8132130b2697fa14f574b07c09f1ff1dc9468f3f81e241062c64bc8217d93976bda7982e1c6174611c64b8822b51feb13c995efbef869a1134c868057b574a44d1f8ea99dfa103d960052b42e470896dc93e25368ac85805d7e9d24b9c9ca1c54a6390a10a4e84debc27b7e3ee4a6ea8e1692a38917bbd328eca9c152ab8d2b5b9ab399a4dbc078fefd15fd87941c6291853a794b7d7076d79ac2958f7dcbcc92a5890510a368b2a4ddb1f11252f7f3070f4200541cc2c47f138d95170ae591b3d2719f3be04113244c16686309572fa154b5721648482aca3744b889305056ff13fc69447cdbe4bb207199fe0738a6dfbf7a5534f3049776da6eeb10e323ac1ea99fae88e6ce4d0919ee3021f1f5190c109ee6e444352be6c82f5dc8d5c5b3a4d30a2cd7544909d46dee6f4e7ae3579a4850946c6710fb16f438ae62fc1e7a42d74a779169d832a21c312ecc852413bff7a8c90510936477ddb98fe7817a945c8a0043b49a5980d43c6243891e39de6ebe40db5b751e40b3224c1774a5ac9369588d1ced1021d6e63bb2023125c76e99c2ce7f85844f5b82003128fe04b9b5a33e91a72f4fd869a23b8f84177958ea71a4f82010e1ebfa3e008a34923d8f114b2a7a84b22ff680b3218c1c45c933cba694d3af7861a6641c622b890d248b1bcf60d351b3bee0a3214c1bd257d22eb5ae990305690a3ff0b9408ce4ae42cf1f694e6dcda59410622b85c21e827ed8e3c808c4390b47f50f942da92b91b6a29e9b09102842305ab8660b249f3ca0a29f428f81d85e08390945d730eb13a0825168461a307ea1cbf53904108ae835dc8bb2d5e22c941b0a5cbcd525e51ddbfdd504bbfc3864a418620181b519e91a39dd2a4ca08042be9362697383928a18c820c40703a278b06135bf0399c20e30ffcdea5e0925e62a8a0be26c8f0031f2d6c3742d0ae9b52fac067508f2cfa2c978ae40f32f8c0c88b16a65ad47fa7fc1e180df2236fcaeb7466ea814ffa37e4990af7c9551ed8d3dcb1bd4d9b3ed9a1830c3c3029a84bd6f59234a6d2cc41c61d18a54edec8cc954b6707ae43eeeb12994dff535c461d18cf589a4c099d9bde1d3a56a0820443061df88b16e4a93a730e4c3add66f1648d49741521430edc9fc835315f84a493ff1e3a3c7080901107ae3de40cf9b34615ed191970e03d6415899d3d39c878035f9ecf44aafce9a48f8a1b98b897928a3da2e9c772821d0a286d60634473b52055fd3665036f9a3b4552bb29dd78384081186be053bc7cb2dd2537d4108e947a478f37c85003ab7de712737ea75c87238fd8e7d24907efd38be1033b2e71ff5f7456d0f7c07616891526ac3cb87a607335a928fb5121d23cb0712d2413a1d7365ef0c0e790b6d43e58eec0c69092ecc0e8104312ea2667f5b8d68149ea45b9e6ceff17573a70f9ddb7529ae81cd81079b147d48eda3fe5c06ffe586ad2f11535e3c0a6d515d15f82031bf26f72cd19bfa3e90dac88a6d0a372ecd57871039be56921e69866225ddac09888458ba8b5db636103ff5d21ddbbb2fa54700d4cb45475092a54039f53f3099b943e774e1a180ba2da92f77e974dd0c0768d0a4a64949c81bf202ad25efa583a1233b017d49b8959c617f5cac08a5062a1ef373230293f882cc1eed45b1b035fb9faaecd1703ff773a54beba3c5a1306c64ee83c11050393d7af37257d75f10536d7e4092af2c90b9cca912fe89053640f4a5d405f16afac9e4c5ce0aff5235fca70d1e36f81499d1739433c0bca7a2df07d19cf4588ce2971cf02ab5135877e88638177f5edd229b947c6fc0adc86d0b2b7eb34d75881cf12b2d88e4eb250a22a70aa5be36e3025d964880adc46d7102bcd32d685a6c066ddcf106312991574a4c0e99fd8c9b3e692784781b7a02ad963bc11bd3414f80fda52a4893d8193234dbb7a3aadd1b51378b5bf1cd3756f4d5013d8204c8e8c265426b049db6816d5294b48e2abaf044e72699ea09470f1a02470a2ea6f55f183788d04462be5f8ea621e297a04b6b77b839f103542058dc009b579c58495ea1c8245e02dd5f8f9794804f637e36a4e7799a32743603f4ecc9c689ac47e220456ef92888ca220f0abb154ba332144ad40e03c25d3f669bf4d557ec048fbac26b54243a9880fb80ccb558949e470bb079c256f772b1de47692076cb46a3ba55376c0ad46cdbf1175c0de8976aaad9046855c0e1821ec3a1c706531c954971b738c7771037e52297d1fd379aada850d985459f6eec974acb3169cb6ae1399accea2490b2efac8db8bb7db6299053b2a6730992a537650167c0e22c68c2527c61463c10717dfbb10528accc182917edfd5dad92b98b45d9beaebd13266ae60735031e7565bc15aec0a9ab484679658c175d9684d56dbf67615fc644b3a4d947a1355a982f56cada94e94500e1c36be479ba502bdd7f13a6f023350c1a514d5a02b73bda9ed148c24f5a6cb72cb2e069982adb390f53c444bff7729381556c1b235f28da6a4e07245aa1c47d8fa6d370a3e684ab9c393e78f48cd1085f92f2a28ff601ad79a110aa25777650b297c6cb5310314798cc1e46a8e34d9a1c301fe363ab0e37be458810e067cd12cd001c66b20c70578a4df81811c8018667c82d1abb4b1a4270d723737f4053f811b3c1a020cd004c40c4fb0a16f2a2f9b9e887d7cd0614627b82492aaadb76cc7308313dc776693a62aa87ef537d470c626b80d1deb4de4a41b69fe395a7081ffc27334048a6c61862678491ef73a66fc9031e78646604626f8943929b1ad56ff1c31c1d97ea99c4927ddd04b70daab33d6c409b67bf6c07166588251ae9fb4820565caad046726556d530761abc1b324cca0045b66aa4d3355ca76f408c3083326c1df06add341773324c1694ba64f4abae8f9b336c258818d14e8d0f1855e060c0b66448297982f4dff53a6bc1e48f09b3ff65b0ebda5eb7c04672266d1b4b6b9a1aea307b1771d16c0771d39d0119ce6d3116dd1b0c837721d1630658de0d6f6525890c1940591116c8892dc2a99fc55ff662c82b151a2238b74ed5d470e1b7f03352a5b332498a108b644ca9eb25632d59a26820fb5c1646f793f988108cefd5356ad4e69624e308703ce66dc25d32ea957ce10dcef28a1d6fa42b07f9af7153c2704a352764eb2f3afc890330836de699334392d08de6396d237a145ab0f04a354fa8ba06350da590282d734bf96f8de1fb8b6ecdf204c7e6034f2643dd72d951cec0363f2db3ae7e5f22444f8c0af8eaac95dafed97197b60dcccf59286ad8a5533f4c0c711aa29c85b6dec7f715e03a78a1979e0f4638959481503625851c10c3cb027cfaa6db4fa882add8157bba4540cd7ba54228e1e3b3a0c3bc10e054c2006065ef013e0d110b833ab1d8f010ac4c8c40c3b70a24466ee97f5f1914347ee20c48c3ab07fb1ede3988efb656fa8f5e0818302fe3d76e8d8008f1d3a7874e0e3231333e8c0e8ec2ade9fb34737330746e53cb616d184e732e5c05750d9f15fdb38f05a971ef1ae850363a7ca54e87897d7ea37b0c9daab728f98ce1d740393729cec16546de04424a15144ef196c60ef5af4779335630ddcab658f3c29447d08cd500363263f444a52215abf1969e0f389fc9652ae3be13d1ad850914fbdefc7c6c300c7174f0830e398b389b0e815a3c00c33f039ab67e5d42284ce91d9ff8e1e2fd8d139709c9d51862f5610125484ba45872304be870e0b182103177492075d29c537e86fa88d81d1cc9eea6ff23138f00030668801af778d9c9e3ce5bdcc08c3f17b43e9374dd2b1238c72811960e0e4d5a5130b8bfe15baa1e501b425ccf80227d77bcb257aa588cdf00293d4c870d3d946be486e288e1d3d6c84613aa30bdc6f95be9057295ebccce0021bbf534de6acaf7e1fc70e0e5060010d781c2b00e3f8e3d8d163c616f8149eb9b4f2246e4ece70ece0c00972d47d608616f2e8ed9da3c5a45ae180032610830131201083031488b1800654e0053b7480f16014614616f8dd7425a9376d83078e8f0f1bfdf191fb822d3c789019ccc002db392a9a95d7635d2a870ebb2bb01b3d85c9f6cc0b76f458b5b540086c18608615381d2c959e52b1d384098c1d3b14f0c5170dc606bef8a2c19851052e79507b2aa9f8b977a5029f63494a915a9a310546a98bdbe9184427a54f818d07bce027f0f1f1824fc149818b9c2754a9501860e0e061e3059f021bbe8663c737a0bef814ecd8a123c70d09cc88021b22c977cd88d9374d50e0c6cc4c29b9965b4ce7096b121a6f273032dcc32786204269db04b624a44bf597c94a5ffb82194ce0ad77c4b76469097c5b521d2b560821e85d098c7db6c4d22141e4dd93c0a6321d733f4502a7cd4b2767d1d14f768ec0e6bb24399892ef2fb611b889299da6063556495304466faa47d460210297ac544ea6546408ac456ec997834e085c7704dbd368577f0681c97e9f9e4b74083a7640e0acdebb2b5769c60f38b97ef23695987538c3075cd79eb4de18d5193d78d5e4a4dcd7a3ada45998c183dd42106b976c21db5e458d5061c60e583ba1b4554aae8a60860e18ed6ab74c665aaea11e9fa3078fef611d98910346e4d5b197fc615b493c5ef029b0b1239881033627a55cfba582d2c1c5810782193760272891f32a285f53b60d66d8805112cd22afa8d560ea5a3041d76ac0f81e11e08216bca5d17541533c4f129a051b7326653207d1d39997059fed53e9aba058f0573126ff921f43d41f166c6d7e14ed134f28f5bd82f7fbdba05af943fae50a365d448f2c73ad8e21ade0b4a62e9d902af4c78a15dc07211a495bac823ead82cba77aa333638ad7b52ad85c9ba6f3f649cf742a589341585f9b4caba54105b7297be88c97e2bfea29d8606a23256a0775ad29b89c31c510549da5e0ad6a4248c24552f0a5fc4212213ee62a8e82d12909affbad44c1fa7856acac4da2c5dad137908e1e8d032e42c167bf0d9d6049a0603dc793687e9752c5f409be544872535741557b3cc1a7abe5d3134dcbe9e9041b774390eeb1e604d72fb1db84fe8a8774138cbc24f2996e8b1a2aaa09eeffc2f3d387cea4cd4cb0291693bc359bd869c104a7820e5e1b3cbd04dfe9e2f5f5d7e4104bf01fc7aa35429298fb4ab071b3d3d52f8412ece878a6ae34b97dfe0060085c4c82499fbdcf2de9bc1a6392e0445d8e1749dc4870da9ed3d86abef37841820f7acc72522a8ac4ce3c82f5089e30ba028ee0d4a8a0966336bf1c0f7a0f901a70d108feb45389205359e63423f8943ddb55e54cedfb5904bb76e66ba663d299b28a60d485c764393a4ad05322d81bfdad5ee916b54704a3fb11a2a8cb9b295b87e0dfb3d55e8c97c68268087e772cd4faa7d0e9ca42b026628cb64007033e3e5aa063c70e1570410852ac18d368aaf748da411c4d2921316370dd110a62f3a477377a5163e80261fedabd350f0b10c6cadce8fd41b9a800e0085cfc818b49c814af3aa8c3c8d161f0f8f8d8d1230c0b84c006185cf881bb6b5392647afac066f38f146dfc3fe80a177c6083faf7b57515196db407beb3a77ae5d8e9e17899e937bdcd03dfa5ca8248229be4e0c1030744116c0cad9d4fe98dde34116cf224dc3ab3b5ad44041f4377664dee27f282876062ac946dbdcb3b48d010ac04bf50ab9473e8a042f0de15228327334d9e2704a35db6d9a64725b70c82d319ea19423031b51a22083efe889c3ebb5aca161208c6fa4604105c1a9172ce7739d58d887fe0adfec55d6f837dc90f5c923c524577fa50881f839b9a0c1f78531ed723b6c6d8eaed810f26544cf54f3275d20327438c5b9a84cea896c903f74107dda4fb2a5dc70313b36f12a175c175bdbb03a3dd2dcbf293d6649a1d985cda2a55d376ec784dc28b3ab05ee5191df8a077bd72e348095ecc81136983a83c593930426b78f26cc681cfd1f2c5ae555f534a4a7801073e7dae57fd6fe0b445b09c3258e8a50a0d04bc7003f71f6e41b7fe460f5eb481dbc9696aa397fdbf45bc6003a7f93fdf4e7f25c6ca115eac8109ca3cc7209354ed7c52039bf5e4a478ba928cb5a7818b3188f8af7ba38135ade8f69e3e03932c071172728b92316b063e43de2cba438e6a5ccbc0c690db435ecc39dd29c9c008ef0ea23ec68c413b062687addebf55de9052c4c085e70a1dd2336f6e310c6ca7523db39478010676d47fb8e8746a84175fe0937e887164d2f84943bcc089a464318f1ead9b55b2082fbac025fba03e5de7ff9b960bdc48ae2043ecfc7973fe8822bcd80277a64b9858c6506e3b22bcd0821759e0d736d3e890da3f66510c06c460400c06c4e000056c0e5e6081d1ec9f29281562b85f34d241810d2c5914787105aeaf2ae726a52d0431dd21bcb002373a99b6c8c926b7a5e745155851fa5aade2a6105e508193e7eb13d527b5882021bc98821752e0b44f734cb16f6c929e5c14588dd1d4d96612ba82ca0620bc8002a36c34e8d50841ed0771c18b27b0e3a752622ad39439ff072f9cc089942a8690ad2e174683413ce0451378bdd4487f1e6702174a571e8f6d2f81af35139d6b6acf7525b0f5eab5718224099cf64f9b2db6312c3307a408f440bda3870bd8095e20814d1b24a7bc99936aab7ef0e2085c0ec1f6ab2cc908bce4b2d0cffddb2a3a45e0bfda43ef5f5ebdcd1081f5556bcd91ee1038254be9942c8984c0a9ba784a8974ba695382c097a920a22e79cefe7f7c3cc10b20b095b2aae5f5dc1263ccd6015efc80f1ffaeb86636215edc077c14dd2b0dbad3032efd6725d7f44133793ce0820c26598496aa089d1d30a93ea43ec921db9477052f74c0c9f2cad7316973c0fb89d65f939c635a8903ae4d5510baeaf2a686e8c50d181521437baf59f0c2067c0839587fe930a94198051ab5e037b85870eb9c4ea69f166cc6fb4e73093249895981c62c68c88255eb6adb56896941e463708002b1e0922a21cd32e79e95ccef08c3181808045f17a0010bae2e07153c877786e7b88e14748fb3bb10d07805235aa692720f32088ffac707da1768b8828fe0bfbee129454a32ade0cd3e27b3d612496a6ffa4083157c5e66aef5cd7e35a631038d55b0ada11d3a978cc1ec5505a7238e7a461f25a26965a0910ab664869ca057d2fb4851c1e8caa0eee3314f56d029b87e8f22eb4f99a5cc4cc148ef37ebdaf790345f0a369a50924de88514e44e0a2ee50a2a58ab051126330a3e950951f7791305a36953c54a29354c130a4ec81bf5f078a1ee4b50f0ed5e196bc552d024f209deb63cad58c48bf67a823f2bdb7209e2766327780dfa6c775425d1997182959c2365502ff9d4be09ce2344addc7bdbde540c062c81862632c1a8cfca2deda49ea264a08109267dbfa4a0d36ea930f5e81d367a3c0f1ead071a97e02e4c6a8c57e5257392251899251e43cc3bc1ea5409564c98e5fbf4bf359f12bca7550cfed64f82eb6842a65a4f21e41c4982ffa87bbf67497e505124d81c74b7998f9fe6d2810463a1d5be22d6bf5efb082ea5cf49a40b3275eea823f8107f4f758aa3619b3682db6ceb17ad2b8c6035e69d64eed69d45b708ae5304df4fcf2aba31457017f37da2452f61daca24d048049b69922ebb2036329310c1e6dbd0f15e4b6d64eb105baa0c29ad2af3387670c0bfc0718301340c514a179a9252bd10dca778aaee4958a53b211e6810825196469a4e7b9e46a70c820bc23ad505ab14f18282e037755bfb2e120826e8d2397705a543e9fd0e3400c144ab4b42c924f4e8ec1fd84e17399e68be9c84c50f5cd68e69a45af759be7de0c5731e55daf2a8a41eab030d3e304152cc9737751271750f8c3e51974eea77ac35e940430fbc794a13e611940746c63b4b31b4e551f338dbf1e44c40030fb6b7c47151ba196f16d44982c61df8cbf946c698f354b6890f34ecc07e30a91b378794d6791dd8d0f8fe235194071a7460f46f4a0e511983bc8802cede40630eaca7d5e5a411bdff27397021342be7b26c29b48f033f51934a1e9334dd1d82039fc1cb537296a4a2a4dfc0ab4ad22373dcb8819b644a3c35b8494a671b3811e2c134ff293d4bb281931d52049945b3064e481257bf4a216b976a60db63b00952c577bc9206367d4a6931b7c98e7134704a9756ea3bf736e519986c2aa8b8afa93f34340327d7d542c70c92de2f037fa17e26572ca948081918dd21eb3e3d4c83e5c6c0a650414f7910198489c4c004cd959453c56cb44b230c4cd2d11badfe07039f94fde49c4a6e50e27f810fead2c66fad186b772f70132f5d88f1de2eb0213c6f2b962893d9e4022f664106a137f489ac5181c616981cd2893ae9f9ebc43373a0a10519d0c8027b7a4923041a58e09205b5b76eaad378f00a4cd47ccdaa91747e7b3c5ef013b002bf79af4d89789f752b1b041a55e06d733d88b8bb495443054e6e958a1aae4e81ad0d4b97a745d54f29056e526d6e66f0a2c049899a22d08002df21424a31c61c479ff009fc056db3ccec3b814bdf17f3e48db4fa6902af274c5ff9c9042e3ba688979732c7ca2d814b21ab252153274feaa3a1043627793ae913c200056288814612f8d8df2989e82e12b8b19313fcf27b12713c021fa385bc5a8ba7297f690424a86f9b0a125212ddd027d02802eb992ff42753254c22f0a6dc42d2a927e2291d020d2170dbf7f721e7c80f6804c1926965e7312c3480602da0f103f5813106aff056b594d52469347ac0897c55965e9a23d0e0017faab3a61b4f4d96a2e935406307ec494a7a6faa4b4fe8e00d68e8800b759dad520822291db7c1a3cb782860063472c0dac5dcc92b2c17d0c001eb92d486bc1e65018d1b5c2aa34973370d01e3d508346cc0e4ce0b29b7c43f6d378f2e6ac106953f7405131ed39b56d0052d180df1aa53aad83957ffe277a861a08b59703986a43ae964ea69d34616bc299da064be1424c5ed86da0e1d3dd087c123070e1b17e822167c0e95e3db6e866549baa1e682f71c384a0c0e3c20860bdec3d0010bcef2ad08e56929b913e8e2154c4ab9a5928e29bbd1852bd8e4d94184ea8e49a08b567022a914123b66abd7c70a26fb07e912433d1c5dac824b611b2cdb550e2e425da882ebf08cf153fe7516e822155c0c76d6fd629a6ed91c2dd05122d0052af890247b8a9b25a8549153b019ad6e4ddd6f0a462c63db376cecd061e373e0f822070e844017a5e0c754d9dd2965a2927843ed8c38a00b52b0de1a4387b8edbb3126055d8c82df58e5226b8378f4e269a00b51f0a7447e481c6da665d95a03ba08059fa947866cd912549e40c124dd8ea412db746252179fe02dc92e939945d647cd0db51bc5ca14d085271891a7c3379f2abf93dbf8143418b5011bdfe3050b60c0c7078feff1822874d109aeb72c7fdcf6e459b614bae004eb314364b518faf8483b589076b080e813bad80457175ae36e69dcfb5f134cbcb27e0ba54c70fdfde5e2396a547731c125156408599e4b8da697e0fef6943069d22ef568b603476300b70b4b706ffb1bf153ba127c4a51533dec7290114af02e316b1232c8ac94ab257431093e09ed41e6d764df629fa00b49706759be6e17f1d6f14556a08b48304986a4c35e6c53966b902067efc731d52330d75ce1db9bebe8c2116c5092ee844ca12e1ac17af58f082579463052637a66dc585ec245f025ef2e4bf650178a3094c84b52e2a87d13d1822e10c149ea4dfea9a72537860125e8e2105c89c8efdda533ea07bb3004773904ef6cb954086e45e9d733ab90db7542f03dbaa575b4825eea836094122a2575768e772341f059bbd97b1282b2d109c41d664abf97e60082db4a49e81bcf22d1ef3fd817337f63ee07ce2285104184fecc69f781519060c7244d4891aae359ce23d88c20ec820c7204a325c63d2baf1bc1772595a983c5d46004dba36210193429a53eb388d746bbc41b1b6b2882dd0821a966ad4951d744709ffc636b6b89a82711c1c9923b42c7188410f16a1c8233e521881074f69a86e02ec9957c1a5e21cc0ac460400c0e54000bc10617091647879c15e9ad4108deef4b7b268f9a51ad3f8119047721e257d88582e0efa487f45c5b2074fff23d043500c1a56e8e5aaa46972705fd61d8e07163878d13f42156010d54a002753bc0008320f90313ecd492c5fbd3532a79881a7ee0823af5a116379e0e213dd4e803f9c0acc107367e85aad12bbd2efb861a18ffc59f20078e302ee0fd1ad040052af0f1616307186030e0e363071860ec8131db5bddcedace5dd900f0a1861e384fa64a06214c9e8aeaf3e8ffc2c60b509fe0bfb09143475d8d3cb0ebb5d7197a6a6972b450030f7c695d8f8c1fdb2ad4b84332967fca525e31440d3b70a727ffe693262c8b7f35eac0c6138fba5656216ad081df907f9db7f52e06710eec7804bf602ac313440d39b06aa6959a744a1c388bdc4962ce124f6de6f250030eec4976c9a973ccdb63bf818b2be9634b5e6bb88135afa0ca25eeda9e66070e220027d468039bb1bc6248a6f47329d560039761424efc11ae81d198378308c2648ea9bfa186a7064e78a5135984feb839bda146d2c049b17899edeadd69aa8106f6552f7e52bbd079d2d1c3c69bdd9d81d350da2b9ad0a964522973a8610636a22795aa1d248b56e050a30c8c2cf3dd482fd2d73a64e0f48d57b45fab4ac98e81911a5f535b905c97cba186185877adfcfa58a2174957230c5c8a39a7fa4a253070956458f00d35bec07f0ecb99427630b74e0d35bcc0049d538e615aa48716733c055ef0137041c7a14617986439935fa61453ac7c0d2ef0f57b49379eba05de84489647fa4bd2d40c35b4c0476f1f4d51ef1291b232d4c802aba253ce53fa29c653f98247c1826a21a8332582bcbbc615f8ae0c6d1e29a8b73dbee81ba856e0ba47299123a72064c84f50a30aacc6092285e9308dc12b410d2a70134b44cf4c5b9d94458cc78e4f602010a861aa3185fb3835a4c0bfa76fb5d094a7f732418d28b0b9d2887e48d666a00614f80a0d6f91bbd94e92359e70359cc0f88f10f2aadc26242dfa9d5a8309f6f13596c0beb5a7f5f83716477da3870dcfd1ab801a4ab81a4960540a9d5282b79a831a48e0cc4fcd42ac0ca2be52e3085c882b31273df973776904fb00a346113895aab298a751515476bc8d301a0c353588504e35921a02a31b2d896ef00d1a92fc0b1d10c811011e3d9e478ff71a4260b427a19133d32b899418d40802a3a1297b4d990e71524060924a79cc638e57e9951b5a831a3fe0ccb4c6b090828ad92f1ff02542a81484ba1893242b50a307a78c1834ee5b251de18161c2a407599d15f0b0e1851a3be0ff4a3524fa7b43cd73e80883c7ef500cd4d0019fae7d2b3b5537d4cad5c8011f62b94596087aef3f37d4701812d4c001e315fa434c3aeae403356ec0be89a054e58f1b277b6ad880154fdbc8ba7d253f7d43cd031fb560cf645b8e91c7a1a3072d18f7b6984a47101afe8eb2ba59f0afd9fdedb7bfae2c4c32744e27c4f2869c093e62c1e799b0d4782279e6242c5893317d73e7bfb98a66f878055722dbba3feb2a06d10253f87005a7257be4119dac6bc5072b5851eb1074d55a48a3ae82d7d63d8d7b237c638a2a18d3787f2343cee3672ad89418dc3e7e9866f0f0810a5ed4c4ea90620e1ee27f0acecf3b7dcebf29386dd14708953e99ae146cc7e0d9837411317352f0c9d368d6a5ef89380a5ed4639ae9eba260d4da6a7ab23714dca8904d3d343747d101052f71838dcecdf904d717b34fdda58d6c399ee0567352a59454a7983a9d60f4e29efb25b798f6e60423358b468d2b7ac5d39be0bf269dfa93b626d8ebec6296527ad129cc0413d592a7b4906c4410139c8f96a89f5991af2308f8b804233579f8a7944d3cc62d4114953fa556cca0ca14f0680e7c54c28826b64143eb946035a41711b367995668125c77d8976a49becd8e24188f9c41c99a7caa5e4782cb0c1a219bd040822fb939fd75b885a9f0119caaf20d42927b997b8e60529e52d11cb9539feca3114cc85b993ff44377507d3082ad4f15219e089192043f16c19bfaa0e5d92a78dc3020465d2006036294056230204655200603621405623020464d20060362940462302046452006062810a30f1f8ae04bd7d608515bcd137d2482cd3d8976269e1b6a3c56f045183b56c0030d041f8860838a6042a710f3710843b09bc6a497d06bf93ad572393e0ac1bb84201e3728f18310ac4f8a14b445d2c720b8d594bc3ce9ceb8f104830f41dcc79de02310a43f00c1e6cfa43a598c1bd407fd81db0a31be68e91f7ee0bdeb4312e2a2cc4c7b898f3ef041b37aa4bd1c41f3cb074e8daea831f3897e68a3f0b107367dbc10a1c4f37e287ce8813f5baf94cf42635b9b07c6e26b507183926123f9c2071ed80da569748950d13b709916a25674522a27891dd876d1c924eae6c848d7812f95e268d0a7467f927ae1830e8c9e842474f4cc1cf8ac9f4fa48f4dd09b5339b013839062299516dd64d98069203ee2c078bda8b4b654fd351cb87bad6479356baaa94ff878032353cfdd4c78e605d3091f6e604b8908494305ad96f36de09295d2d61d6be39ddd850f36f0aa5947c5d3fc3d08730ddcc8bb0d3d1fa981dbfd2c95346beeb7531af814ffb364eec6cece7da0819123eb524e929c814dffecf6cb2d0b1f66e084de7cda3965cd15da117c94812bd195fc827089da411bf820039bc52fdd05bd3d4a4dbfc346c9317031b3c931139b606acff127681b488c143df8e410b437d452c0a37bd8a8dcf11106368d877decf554eaf40106c6cdd6543c15d7f3473794c7c717b8f81abefeff95b72d1b3adca417b88c9c83fec9f80db52f1ee568943b72280005b0898f2e302e7a75846650e33146078e1d8f81181ca0408fd7c0123eb8c0c9be2e997c93d6a0a562362c07f1b1052e69ebba091dcb967c1e3118f060b4053e3eb4c0dd560ac162c8df97e64716b8fe984a27c91c935a900f1f586084ec7897848a1c2f75052e95eed1318ac734e1c30abca75eba87d02627c898f05105d63c08cbdf49550aebc9163ea8c0c8bb544266dc09163ea6c0a7f4141942c71da5512970a73d476f5ea5858f28b0d9f26350f7deb0914381334de79b99f26ee9d0153e9ec05d0eb308d2ccecb3d4c087139ac0c95caa5296c62ad5f50d353c1a7c3081f3d3aa0ec93975655df0b184da3787202ba4b4dbd0e1da820f25f02a793bc6897721fd32878f24b06a4233c6ce635f937e81eb5840bac0231c3a3cc02302e50d1f4860c1c711b838a2762a7dc9a4be2be6011d1c40f3c057a0180b3e3e78e4e1c3086c6cd3945b1d43300d1f45405fa7a41329d22f1cf820026799f921bf66486fb5878e1c65617c0c812db96f27ffc46469f5865ae9b101623c0c053e84c095bcb391767d12edbba1664387dbc5e0c0034a89c14710f814e2a86737fd9647406053909abe6b545efe0326ef7ea63e4f5f96933e7cc078c64bfa1f449897143f7ac05f8eeec9bc130ff8725115db929bd22969074ceef89d720e261d707143d66f7b7b48e680fd0939d4c98aad96c70117929a6cd9ccfca4e73f6ec09608efec913d468bfe870df8ccfc61e9fb27a6a05ab07e393263ba2aa139b460f267f1d839a2576c7d169c90c9d2e95c5d16ec96eba790ad23791ac582773739793366af9b208405272c59bdc4f4112f5fc1af56bcd1f4bb82cf5115cfda2bebb1158c0ab9931cd13b268488159c2aa147bbe5d02ab8c8317b2afb8d713b471504915e93d4943ca960635299825299262fdaa8e04cac4c8f5665989f770a46d24fc8a953d0a1be29f8369d3cb4541491834ac186cacb99b4b46b6d523049923c1974506d4a35a3308956795c4f1a5130da3de8b0483195c66c28b89cba43595252b2e9da0b50f04174cea34ab99f60e2641f89fb792a993cc19d4c19aea63caac720e90497a23c696f79f08c7382ed9d90362fe9c9136d82332926eafa33040f35c195508d6682bd8eba2616692b798a093e68ec3c9dee7497e0d36ea7cb399e96605397967a094fa353c786179560459566d0f1e4fdc62425f8bc5677973de46cc19d041bc173a4f452126cc8154dee46ee35792438cdd69c82df9060720931d58e95477069275545f27eba561cc17e8a964cc960218d60ecf5a2e6b8a9083d2398984ae9a42c23674717d1e8a908ae068ddda8844fe532712414890322714010c440f1f400131308002030288d8682d1783c0d7561071400046132223e362620201a141289058271301408044201311814060443816020200e8e8cf3209f07c05c9b4c8eb78914cb4d28db77fb2bb5c504d7ced8ec09561c689fcb5821b5ba71fec96febbf7d022a9ef085e269753c0895b8366f6e0e73777fc0145ad42b1c24574b49da6b7f9f323471c7648c94582c777e85252b421f5d646d2ada2bb657c6015d91c0eef34cc6df6842066497a4bf4cddefd84d71eeb2c48dfdbc9658fa5990ce94d580453a70ac1faed436745982d969478ab3288b1b96807f25767a3b6589c5c2140959575e892d545eeb3641e17b095dcdc8f12d74338c925fce0ee7447216464af7c89f5b6297d31427ca5b8917eee99e4a2637505a33856b06df461ac1665ed0a952707d85ab34d73634394a3b04c3d68b5588806b94c77c68b14d063ea4682f9413df74e3463049395aac7ea147a3ed497ceecd3a398f8e392dedaa344b9b22ad6a1ab0710de75938c7f6ab79e7292a81b9193a1c676fc1144e74f7d7106e5c240bc836b2f069188fbbfb50ba8351e61d0562baa90b0985ba43eaec3fcd6769432ebe9339093d716b311aabd01b41d140409a690a05856d40da169f78216667e8fbc76ac76eaaa72d9538e682832303e2fd3347d614fe381b65954d41442cf63bd35094164bddb3da3e494a5a15bed9cd88575850b70611cdd82f279291a3dcd14a487f1930e147341dd1f4d401404158be5078177a078d69cc53e3118e8b0acaebbf79e6780c54e1971b3946e5b36d664fc2a9311f71ff41bc369031a406f5639f23e0d73f36e2579bad2928c95171f7dc42387df9fdc522bcb02809fa412f6c9cd11e3f06b1494865536fc661c9a62afa46c5314726dfd708fb61a009882d45022f1e34a0ebfd0e1e10f03472061da4d10c787465096398910f90ba1a6a7cfe1d5b90fd0705cc9c8655d45bcf409f9df8436c2bec644d97ecdaeb3daa6014f0c4af2f163e0602441b43e6c5ddab756b1474d3c9ae73905168dbeee42646c9bf46ae6c7ab9d752181eeca0f7a7daa3f6b50f663fc19e3bd9aa56d34527a0df252d7a7802e0f2674dac662161e4249bc8d60f322601c3e61e99841b14060edcb8996caff3fe1c18b15af6916a33843482fc31a8c456d20192469016a9604afe8e654c3e35ffc98f523edc793bbccd83473413970624cac6d03cab1e20c788351f623623db00b19c01d5aae697521c614a4e14d0b5a7e4fb2110eee7aa9e42cfc164588c7fbb78ba11739cade27009228e0c56a8f978fbb8a5d4313951ce70f86ec2e062b6a753c061a0c0db7b0d288398befc158a1a0b856c406ef3801cb1670a72efc070278eb35c2249f6265fb45ed6cfc4a5321fea5aef60b99e153fae32ae545465fede352efb3c92eeec8d4235cb8d35491762c3197e1664b303c51f9e4979129000df8ef5a4027ae024e6531c722b44f7427c062ab20ea3281514cd39e6ae4558054546f1b2608dd32a61a7ac5d8812cf2bd1490e3b55be4caa65a84dc5eb28288b29d32b45bd0b576d1567704775fc754e2411d3a6064999c994cbb91ac86857de5e580b910ea52574e941ce607219f9701eb1fe1950951383c2f8b201f4108b3ae082a690de52a8159cb904c158e7bf2154b2c9d3e0c3e383f48a1a1f41e659af25ab12570b699fd65fac5474f6467e093a79ca747640a45f57e0d04783bcebc63b3ab4c1e3b9895da832bef38334b44592857d56f565eeffbe50662f273b5494dafec7e506846855bed292917ac0123b3681a67b37fcec8c3da2193786cb596b1d060efc95464ec8cc029e4ea0867fd58950b5962524c50a6d78effeca2d11c48bef5172b2d3b917fa9f0095dc331591e65bd95b3cbe703a850a4084983828fdd9264032138d5b333534f4b981c6213604ab9b9f0d2b97c986a1a4b9d74f46392302ee541216e7c491d29e2228a594eb31d4b3152ad8eb0c7b3a5bf5cbd526443b5d03602f44134b180837073c5c4e10aad331853e8c3f0dc4f10b632729569163d53459b27a8ed9832f357f14beec3c2e799c3ec1a440fe53d66596c0ee6ea186945c1c82b4e6cca01a648b1b18c199ef1236d0158282bb18158f083e266587b1f896169b9d9af030058a3a9182c5af4c52117349fd6676a0a31aeae2934512a38d2e5221a50e7480cbf50e63b844ef95d9d78e68dbd04c3814d4efe0f1088862c986285137b1c0dd681b2f3b1314a406769e1c1b6812dd89c2200d9b312e5a342a79b5636d3e4d4026ba75fa30e0b5452c9ec987a639b650250e4b80d1c34b931d8391f4b128b42c5a082351156c591a6edb27240ea3e10e72752655d7d11ea578a2ce54686eb3d6326c5d98a0c1493699dc815359530b93595e70fbfddd05911ca619e06c59250b11cfb8030a99fc081dfdd9a2e260773610d4ac74ee3713388dec6f0ae46ca1203bf1c90fb5953616728dc15ba9649b20a9cd31049ac5a0433d24cdc3c46b1e1ab917a900e6fd1022c11488f0218243e0c3149820db85c7ba623866a90bf7e7fed78fba0d04301813eda206d82b04746e2c8d3f0c7729958fb8dd6658a42ccc3d15ab94ee7a36b581e307200403f62c5900c6f1b180b96cbd60c2af27cc7fa8133fb3c2c0751c120e2a3ff40f520bceeef242c401281e95722e5920ebd8f4310a0b14a734aca9dee12a9b53f66c705c1afad14a626394107d332811ae115b9b3f8b9333aa35bb2e96e065ab90c50e55bb6426970ebddb5483702ce0df6a1bcbfc29107817fdc8ba5d26a507d6a9fe3b665f5f6ee2a7cd2c195c9a578bec1bc0b250b8dc11b96fc8e74524d34a765a693f5b53e5fe36f5717853fb00d7a532594c6bfc57ff41430e5fc61309e1a6d2b2b4d2db61061ea89a7f81640f78cc399825aad224552af26e46ec5b6fb6fd9a63bd584e1e59d91767ac7bcd316786a436389fa87f9b534e25f94a4a888f86b9637814bc01847690c8fe249c84bbe03741b0fc902429cc4bf8e32f96d4cff0d6cdc3fa02419572581eb646ec769907ae96cb013a426e6b54fb725e4d66cb71aa8da1c2861c8bbbb4f94a2e74396626d8d1012583430599ab053af3e19dbffc65e45ef92f176d98a1f89d5a18224ddc217fac603c6b6013813545bfec4c5b31fe44e2def7dbfeff4377e831564a2ad69c1111b598ffcf6e9b9910ab40f2da828a83223f2d5cf4fd3058439113e7415222cbcb8b5f942ce008b43961edcc28428f73015ae31c0ddaf1873445a2b45548a86e69dc36d1c9a0eb59a5e416ff1232cfad6f08312dd32177808c5ebd4042ea92fcf18a75e4e1244a0d9307e26e4fea2b3941c1e3acd06707ab3e063b8c663c3aa5a1f7eb6a536d5544149848eb573c6500316f3b2ad0e4e5007cd93aae176906d23b257959b593d57bfc0e0db3012dfa759927f8d2090510947d2b85253acedc238f007b6f9667eba10c87822946bbd9e10e003df865d9d709d0c074fe055c986bd72746570fe504a5eaddf885829cb7b700257c43a2e89cbb695f36cf4c26431382216862ad49ef69e3a8360b3f5068dc188d2e4eb810f33e236a9bb4ac882451de3d6bda5a860d7ac7408784290417407f6a51da34ac84de4aaee90098cf48b27144c41121c90032046a86d9987523db3e4253b75aaa0082fab2107160d0d849e5c66d194b2a42c12e658c7c4819c004bd7f8ee6d3f2a223b6fe489d84b394b1affabdb067b1eb16b8ab1ceba6084e09a4cdaa7705df419a8bde683150cd881efd72faae9ef3e7669680ff22a45fe0b3039314379a157423a37f61b37ea97a650402f256e77e3e70395ec491741f5ccf0470feb10c1c578c67883d7a5bca94655693978b5f23a096951a06b23b90f7a562a599e85f9a3b95dd7c6552ed6821f33e433e6ac20af9d3f70375f275c6cded08c85e609c59c65b5303e430e72e7aded34328cf900b9f43c07859e99ffd61b9753b73e1b0f60264b5cf9730cd37a2ef24abce296945eee313012e6134bf042f2f3f835f25db241931718925a483555bed9238fe444d4e6653e3782a67b30f6612773c485c8df40b54b8edf240421e21ad41aa839aefa4d9ca037afb9930484465e69577cc75792fe4e344aacf3beaaff2c9648008bab007997ed6b9b352fec2c39a9917aa071454f49dc7b823748ea9a4ec6db2bb79c1996f87a254c247edce095360f27ae726af6067dd1d57610345e273e481f9291fd101b324f4c9024ababca78e568cbc11a321181dc997767ac8602f8503ce6233b43a1fba3793b887a6433290ec5e04330d2027994a42276366bcc35f849869cd6130a038ee8bd92678f859e8f9c8078c3d61ec95e0483494311c9b843163a977050d5a737b06c73e0164eb46a1ec1d6fef78563364c95726ba827a2a163bb1e7b4cac6af510f3fb9d823df3553789c937390f647295ce8950c5b6c24ca9b192e06c1c8db36d304a90ba0b362439bcd9d6cb0ebc62b9c3f6d88a4cd4cc564cf01331a1fb06d6713d1496e990b820644f193aa911dc75f109e56565b5fa1d33237712b23f147543f52e267b3d3799837d98e965235e4f5190e24dbf64e5e0f236cd75595e6f2096f2d66322090fc32d0aa9651774e470fdfdd88cce31a6fdcf86a4cb5beb0e2805b930cdc7e17b9fa3d66c3b09f1178830676a5091791c927123d8021255e878fd0d2eb2a2feb19af3f21892ff14e8060ea11a42888eaa0957859b87bada72a112435673b6dc69dff224dbe0a6883511a59f15aca8f50a99256d7466a9541f511d3f96308929640e54e092160b6a04a54f81230ededa8e788e2043fa6daa85ea9c47b302b19e5c10889fcf8e46f184b9a788279ae0f6b6d4e9af619415bbb3c0ae057e3fb3f55a65ff6ba0f2600042e15e5d5a5ab4858c6cec3b706009807fe5532a41081d31fa689c44b6a20992b263f38fead5c1dfb292afb8fed31f2b17128a86092fa34821a08458c808224cc47879d158f5f80d0071000f1f1e810f473eff061f4ca4e6038ae9038758cdf7c801dc39d7ba691415839100432c359d1c227010fc132b89d0313efd3b6935ab59e41480dc27b4580381b2f3fb9b8113d1fbbd3b30d11c41120158bdf638a60a705985f3b40070a1fa9d9439968fd3bc0a85d3bd681f4086e1ac7063ac58eee1f577b30723d354a8552af6bc86894262679b9b8b8990b5c16962b28386dbf48830382d26c4de997f911635a77f49463600735a4f046c986930b3a6f3744e8f4f5a3d6ad54a192bc3d4882796f7875cfe435d2b1868e27dd1d8c111e27731c9a75ab81b579fce060db991645f18c4c761fc43c5d69322843b3f9e64db2c52500b4871111aa662c19d8b641be150179cfe60ab1730a4450c67321fad6d6694bad51b7dfd7db8ab33191478b91f03ba244d4105eb7400967314fa4cbcc54a5bdc3c93f31423f2c3ad4d8c0e9400a5f7dd6b20c69a00311948af4b2dc1a68e8951375b195156155eea067252423e517df13e14e36d2de6750225d2f75405de1313edf46a1b138c9b424d7f70a61ec71496c030d64a2a5f55975cc42b64ee9454a46b2cf8abf599947235eef37bf4026259611efbc250868dee3f19b9602f89d2a858b57d54e327d2420363e30840a20c085455846c41301f9128a534817e18b264067c15e85b7924067058e5a7fa67f1ec45df2d56ceb69742e720c79be565f5f91adc9cf6bb492127590d30633cc220818b89fb1415a9d823a2372120629c3644b11a7e34738230881e0c42720c1a5b7ae03b2045e10f88f004402e308ae45406b112017136e63cb131845e05a041a5e0508315241278490e9ed3f1d5540a8291e53a65a0094011426eec06a53d2347bd36b0b5137738a50f04ea0a54552c2ce819d3443c4f12cce8fda859ce91df304ee4aa382b3f44aa422e9bf101745f1152e9a3e25b1aa23307414a70a15ebde85b40eb2d2c61d168a732a920656900308b43c6859b74ba731da7cd7212e46d934dcae604c7423024d6649a8b8e4c41d277d33f88cc9542cc10d2856f9f8306227107d3d08267c57ac85a708a9d6bbaec8a060983f24c680af3f8c4c0a2463591714b0052fc8867e93982537bd1e66d618641a5f69e0c8f0a4ba3bfa5ef8c8200e7f91289aac462f58cf736fa517eaaf3b59ab7cdac9f19317f31fec3115c2d95d1069f8b705cb9904927b449158e2642e0bc432e56e77658722d1d8f3366de252d86a018880efaec0a81431420d0648a03891a1ae51f175d6afccb148df94925c51f7a90b1e477cd53a136a904377770a7f45b0a4e00bdc159c193ed561d5e7e02cdd021f0fa737f11ae1e77061186609b723becc4c56164afc67996e18a24c55f102542ae8b53f50879833fc63eb9827fa73ffcf33f6d24cc4d4d6564d40301afd6b24721a479bb41225be46da6a94e4b63a72eb368d94513805e36b04c6a6ff3533d949f00542349ba22151163b29d551e9a2b452eebfbf3c4067e2c23f5da19bc4cd5dcce343680b248b4b698d8ecdf37dcfd31bc5da838c503f375cb4557e65a3d3b28596a025230e6b3d16a2b12f886ef9d640e40d0fe70a281941842a5796e553368cc906957ca7e92d4c820eddf1798b6617cf8086626a139eb2446d9939548a3dcbb1dd95f888a4b61efe28f06d708efc5a0f44cc1cebdf15ec7070ca17f059c046913d3c42896d83636e3fedf5081a81c8e387e29df4dc690060979f23c1bb37bdeae1feca7a6e80410f61f911e02875a489b803c47d0c23348721f009d675475a669e58f974a386ad260a4eb6645b6da0829b67640c4c322846edb2068065b36ba3509d62bc71db60accf51e1e54182602e46308da8da41a0a379b15b6162308d8f638c523f60d32cfc8cd0f8cc522d141e9acb995f9dba117c2a09a72f2b249939994e81fee1736e176f784b856fdcb03f9181e6edbcccaae6186fe9029d5c7abc7991ec2d6fd5e86f4bf4648c27bace646fb1624b4078af8d46f7a076fec24ca8196cc5bc1994f483538a661dd24c9231d54610a62998e5a15d8341f400faaef0d32bee577cb22394bb24c8f00e5b3a3b83218f025de8c1085b8ccd1c5aa8758c2e2116d385b54995da3d3c1e56e3f6572b8892438d924a01f859f0b4a296454d7465189b1497ff39bc5d6c4b65ed2648df414f00dbc42dd270520d1cc97f66f51f991ae4d77761804d186f54ac90e676767ca0b4b71c57060c1b094efe216244bd840ee6c7a8657f06c2a9a5b77fe1ad4065ec921a832c509131c176a5dcf2f3d33b63280ed6d73a6910dc8f653ad9cdaccde1f6faeabafd22f1bbee0d5f1ec7255cefda2482071b1bc56b0c88f1767afdb35e8fa27468d4db01e670a89595c9b5dfa712f55b456d1aae62c2fa89e8c52986958f0b5c0d1f8d39746909e8960b1a81914955e75d97828616c0a03a73a594a7c767afb19e81ba048cd6add7e3613ea499b81fdf6f660fa84e98bf0a1abab3864dda48e5136e8b5a881b2528438116549b897357eb3299d936d72b4525bb5feede623149c6f3b20ca4e4545e0a3fa52da5b3378b14b288689b5bda7fe0add4dc9e235eb0710e203165e851a0a1f1cc8d142f0615be80de2d605630a81521d93566c1a5a312df56db5517424ff2e84728a37139e5a3793bfa811c5b22eafb786bd94eb791a75d2a9b03f5ccf68d137c5e81432e89078d490b0338865d8c9c9ba12902b7961cc0e69d6440477b0c1b821d865c4958cb784b82225cb8b1bb91aa7a46771deecdc43121a854acca5283b0c96276e4a22aeecc795b30ab62ed0e9f759f41558bac67c3142f10bd43730dbb848b1e8a8d029c76a1852bf4ef8be5675dd7e594c99c2d02a3043fcb55745e8d141bb0158490c45028ff5d500c9a461f67b5944f80e9c0dda8221ae2fe0c87014051c7fdb89e1fe05bd293094e63780edbe9bb3f93b8dd5390a7ab6774001093f2cb669d309dc69ca91cc7de4e259f0f45886b74ef502e065af446ca9893eae7b11159a3e0c66344f023443108adbb8b633a8a57e6d90d078be5d4f877c10cbd5d40ab13c319e37a2b000694a755041bdeb0839a73d41d49eee2e0bd4c0aa3af019812bd8b4527212366d7214779dc4e513b98c9ec7208b713d7057a0a32061ae0d7a7ac15f1eaf9d584375908cd5430d83c9e4c20b5a5fa013af8b2c5d062d42f143c94b2b799904dfa923c5422b64f2417599cf87ec96f2730c1f789d2b49699ab9c4527f17b16aad94a525bcbd03fc9d58d288cef11ff6ce4d665856bea3db2e19a7476821f04f6444dd7108b74e0aaeed76dd33ded8dd855dabe6c01f169234fba7d077ed66da1161089129d16640a6935e6baff34cadc6b2e4a90fec983eb29d8fd73070fa7425be8bff46e489b346bc1c579bf9f8e9d4170b39149bb58da1c8785b9c41c8de8f149d61af43f1774c8e60f3eb9dc67977d3027a5f5fd3142500a880b73dbaab5c0b4ce3b3b733b6abe42c44a1ab8df69853168fd7cfe28b18e19d5db81576b1fe1cb6a17816b9e447f85092d246813d97b335c8b23d67d488528192f720a14afc9f2e06019cf80ec0851bc407e25ccd6fed512266f64d9d089efa543056859eea832f076b34549052fc8c204c4e290f09dac2222b1b06ae2c6f88ca9b912bd891c8d399438926372eb05ae17fa43b8945992dc66e91b19ff0d86a33d0c038e2689d0eb7e652f6ef9f8f38aadff4a418dd793f2ddd66bace27260ec60ef2a5abc06b60708288d571231d239ad4b96b57b003aa605d80954143db22c6773923e7d690bc0563ae22de6837443378affe07503dc47e72f2ce33785ce6c928a1ba9731f7e99b3a559ff7b150b574ca9fc034ad74c5f8e8daff5d36964ba246c20abc6a527547e3e6a1ab4d4614dacd19e9e63af6605da802205760b72ed25ae51d4411c0a233b95a7c4eb30f4b4e147de17cfd56cdc97de05464cf6472e482b2cb30f196effbe6660815013344a8bc2f70f005bb9987ea99a944163311f86406b789c1ea3e497b64120da784c23070e7c66c8d0ab91a9886c0136926156614608028adc263736e15438a5dc31be250b05e7786d78680e417926d43a1c7e8874bf04170608945fa80813d23e9523288d41c9aa4dd460bc086c1d02e2778a05c1af82f3102f7d26e78deb67574b431a4a08d96193c7cadcbc3fff47461ee49770329150dc9184e82f871af83f37080658d317543ca5c906166556e6d2507a5db42f443afa7f3be946d86f13bd5f2feb034f8d5c73c586917b6c29e9eb4256a5b58923e7b0a01a866a4c405666cb540fda26931554f748a81699707592d5e3c8c60aa5796a039221bdb410f08e77c6927cbee24d2db0003605a4319cae82884c070115401da839ad4f085b3b2935f127f2c7210e2d2616813bb6189852ae6502f15d7b58998e4e5a259f49f99ed87275de886c920bd0a36c2073a5940c90d6296e8989550119bfb8eb591e93a2b16f2dc36f125062726b6d6cdb045368fe1831eb0aff4ddb5450690a41f59adc6416481d2538cf90de8e696117fce7dd31a8cddadfeaf185bad6bb2226956f316d73dd164277d720a17a74300a28a33444b3a362775c029eca0bd577baec31c91d453a61f1a8f89e2111a0714574dc52c21a8c4d647bb6257df3ba91688d1809a87550ca4273315762baa179c9a0d16b0a5909dabf8a315106e8147451685d020f604f6707c08a15312a1671535f8bd0145c0994d544787c2c45aa96624e842031acaa6f5bef2c1424af82ed860a33ad256d74a6003947ea1d47364226361c99c4035c09ba3aae3ed459750e68e115702fa6c12ceafed0062bc5a26b7efedb3fcafd853d8d5ad3a2eff99c72d1f7e2b1035a275f2da8a3bd13db0d3d73f4015884ad903abbc419d28bf18b3d5fce6ddc4ae5f691ede61305f20200179844efda76c74a1811c96b55d64b1144d7a964baf292f6631cfccf8b91f267e9e7fe8149a6fa6453ec3031720dea6888f3613bf054b537d1748b701c8ca409a4d5542e37caad5a01be78ad918143774933c7d7d40f212814f0df1949c3241b900e54216beae2d41c332b916bbc703f2fa5d55e0c6b1470b2e55ddeee490c310b190bafe197000ebd401c63648722138a5ab5efac5711f84d7676ee10f377925b9ef74c21c84fe0022d5752e2fc2ade223fdd9134600381360a7ab323901f23d10974014d7ead389ea2d672ff12a51160ca253b4e06a60a91a2d9ae91370996ebd5a0d0856ae78578de25df4caac8e228b728b0bd2ca459664b2fbc05276b792c3bffe160c1a39f0393091ccf0e9f9cbdc8fdddf0027fc4e2e0d1f9cfb4412f283635ea4407795a7d1b260d97db180728801b4b23bed1de387b8d9d1a47020a428c9d11776185aa8fb547ce4ec97e5447b2e0b15fea844b37f12f02e2599dbf5e312102c086e3772ad1aafe093f077b3b6855ea6906c6d1ad1b6a766d5a8d8c5fafce134831dc2708989261fd88ad942d36257440ef7ed9c4e634432775b74bb9d56b36b846af2691833daf14c4537829b11288fc80d58e52dfeb4a5a07612726bbbbee0afc2b3d2a9f3132e058dd8d3a49dc6be057994dc5b2cabdb04e7aec16d88a72f53d73b4219f24219c4c8372b2ebf2597137e44d724b727539f972e4f6e4c76dc956a625d93598ed759bcebe8eab46eb0381cd086db82c9bb26988fda1351821b692af5b5e4532b63e2312d7d8474e03b03200e75ead4ad1ecebf0648766a33e982faf56d1e3aca318599a396183c37d3068937c3fd8b1d4b0a2d879862182ad826f14c5da606db00b30ca776658886d447d1834dd50d708bbc66a1832b08a75f10330a78d12f99cf7707852ac88e6e573ee3b5c90b1bfdc2ec365860268b90d193312d30f23a0cd6b31ce9ee15a9f8f64c00a7b589070cbfb047d6464c9987e47e403f33f4c3f84a67a23cd0b65bb95ce4ec6a4420760da7aec3a564d09a64484a78a55d68a73b2581821b3ea9642f3437fe2a012e51e8173d329b55857313486f1287e33748a3ef319e2b8762cb80ca61cc064b61e32e4688cd1d4d4cd48d1506e1acc88725d145a6e03b43280e9cb59bd5921f8f71510a160a90194df95e070a0c170c32e063b3c2a4a9380720798811b4461d4d9ce24a437d347b8b280eff008597fa67f9be0398b9a450705bda488c74c84cb8b8af2cf9875da626de4310d909d62aadced6df60dd5ec551a92ea9589234a295ab1af6287598aa4f3f03ea1699ad52c70cbc977c08f722ad195b9d7d24fa2826baeaaf41bd5225c4e65e979d23bd8a8229c6a24d90443a27c2c7fbdc29067f1229735a38252c5c0a0cc10e7f8631219e8895167c8c816bcd1d3a46ab253d3434f4127ef4649a7923769c282f03d6791687cd39cda43f8a1b43e39153785648922a70ccd290ffb27c791827fcef4756e35e5c627a14cfe4102e485b39ac28e1822b69546cd4104ed80915d84028688e27ee650859cb516d2c66267c937a1c6c50f68dfc98186188d9a86ba65f8f44e93295c2886323236a0343c104d5c8b2da237433ed69a08df942f9b9ad88de6612ce5f09198d5b24527e3a33ab4a885d84f6bdb5942d4b41f0ba0456e07a659ed8f5450eda8a93946e3c7d921a050e7110c04ee4822c9c5916305194da8f486f6a6edd608af37703784c7d66fbe87106dfc5f9793388f2b35217f9f3d6433e842cc0f9d8c4cb0036b960f93c456b2031580ef8d4c4fec77ca925e23cc0d5e27ba1c9deb1a61594dc37ca75037a7e27a9b4e23c82516c51c0e29f2096377c58956f452a4db499a3eb089f814fc19594e9070a60f443533b2559edf8e344df16edc14e5b6d9650e9262690b1ee96b193d309336d5e31a0465844046fbf578b85b8507e5b494c6dd7d701ec8c46dadcd74871502c33df90c4af02258d3ded128841c40a593c3d096ea6207716af4c44f45dad571560b4ab6e9f8ada81d501c3e6316f0033f703f5562cdd12668a9a7da37e89052977c448314fdda50f786bcd28dca9fcc42b94f2a290230c1d8ba90d2f71bfbdaef7631ff271fae23e56381640cf56b16b6cb7d26b9e7f70e1487beefb7772eb44cd364ef2d16bb33e1895beb0eb527ca0c4c2f309269390b7ac6981348c9beb4dd42e5e9d985005d80066270f552e09ddb0d743c7f43fce2020b241eafcc688d64dab6c9a9c6ae4dc553158e65f29c05afe068d1056639d9ce29ccba309e9f350e655c8f23675dc979e311149621f98e0f73f0d58f0710568f2a333b3e2e487689ed45f93e96ce959e0900c795704e6e1d722133f5921954ad2f1517433c670fe5ef78983dc45c475e91ebe1104c4feee936247fa3440a3b12d36055aeead13c93ae399b4cc56779a06669cacc1d3141cb71feaa338395f3ac0b0eba4ca35d03e3aa9412e28f52a4b885cba49e8cc1652f75b43292659b9179396550f663301904166b79f5da52a91278c006ae4d217c168723e5fdf448da9f2994c7434b0776a69f2654043f01dfc67625c4703399c77cee8701f900952af8a82b1e9625056e05044171727966d2e11b050f134623d0952ffaadecf0c18522ff4e4176c95e03d76d8d49731357892095cb55ac7c9b134577c704dc6421bd865c31909a5d1a6a888e37e772ee6aa20c069f7a0ba1b7d075f2af693b6ff5cb259be8a1e22dd75cd651eb7856b48fc4f696fcf927c9f90217e7205a4a4474b4f4c2d52d88647adea89a566cdd6acee8be88f29ac4edbd26f3ac0c63cfeb85f79f1d12c4eaa48a471d08023c677fa02e86492aacec3a34be5b231e5e7766160e175587d66574bf484f8019c6e6cc740d01f096c0cd3a3f72975e7d16d63df28adbb07b95f9905b022e6aa6122326516131600f23ebd75f450955bd0d551550a64892a7b1fa619e71c1ca935c3d248f4269954665b1de8d9d250f14b009a0573216025409b22dcb9270a74b249e834a30c1b584732ac8119e85885f7c57a8981b63b9152cd29949246799864a79ed4fcca7a6fea790add62c7a2ea3abf4a15b003cc7585ec8dd6a106f5e07f95b19f2a3fb10b0dbe4fd10caa117870322692bfbf6c27607b32e4d2f3ca035042815260d92d0f91a2ea73766ca1eb60a2ed5e72482931a32083fce50c2f698e42ee56ed3d1219a2e856ea474da5a14b1a5262c58b601100a957c53ed2ee3939db4ea5dbf5460aa54da9c4e6beb68378057bd01d9a20d7ac806ec19bd5aba0bbd212b72c3d998954acf0e4f148387a5649808416b306f9519f0e420b003f613b44b4cbdfee76ec0bd04d80f1ed9d653d9a5f0c77c5f686332da49b5b93e06816b4c020cd99dc4ec50e422de4b300a492b62766c9b8aeb12ed17f14f49b06e601d8168960c9d9c0eeb842edc37582c6b938c9a7c8827a3383e4d5c0335bd7847b294924e2592c3b28aea466f372e1e8988beb6f17749600e26699e5e27ebdce672c4c7295cc500de5b7b2913009cbbe7ea65b6968262de450b44e75eb616eb20be24d34fdd1fa4d8d681e0a30d95be2f18d2230c25dbeb5b645de55f4486509656a79f3be5f3346ed80abca91c0275e3231c283d547382eb08edb6e52e046154ceaceed451ddca51c504e154c2d437c19e1290f040c217562a0ad7dd877c88f9144af2772b6b45065f527e819371a40fd00f6bda82096ddda090dd7cf9b51a26609beec11560fd11934695cc13b89bc5062c4c6b1485dfe1d6624bc904a3fd90627803337eb706d62ba671d34a689b1b60700b96e8ca971c17e42830e224d3f5782c68f09141530e944ac43017390d27ca19be3216566c39b6b02832e1ab597da58c0ef631b2b52594bc0eb85a78fbd6114846d6c1e4a1264494fcd1425080eeb4b1e8fbcb3c6f09761777d0e56b5b28916ab6e0665446de18e000aef3009219891bdf3dce08f4a01ad92e627431f2bb92defeaf050dc60b2a880b66ec0c0fdd4a900185605068c272719a9df5ecf032a087f8cd57b64e049719f36c91bf4c54ee1a61fad8a6c70b97030ef49674aac0de4e510164f5727ca31c8b1816fda5d5d2c26da9f80d166f5e9e856b97bcbdd4ed6572edfa628aca7451256868f94e5395eb796ea25586d0fae98232b8ab97e8b19b2f2cadcf1a353b636d2eea369581a178f1a3f82e0472eee2a3c468ea3a3605c3595764c5625d9acaa18b5e7de70a1d3ecd5c5c889f4955502b9f65868297b85294facc029fc8fe8fadf053809edee3cdcfe3db270bc0a9b35f526c5776455948f069feaf225423ed33c3604a19f9cc43c2aab9ca9752465bbb1a240198a0de10c5b32958f0075a8de5cbfe4057806444f61b486ac02377d4c74a6d534f7b263d86e41765171bebd1ebfcce0e42d8bc75d71fa2791c50cbe543c25f5ad181ba4ca1f6b431cccd007a86ccb895b564cdaec7eb3a4c0907a535192d7125974e594a55ada97ac9c7ad06af80b8cfb2d6a5d5288a342f956d4e1c4713e207eec9fff054fcae41aaadd7f04389e9cb37d275e107b2a70b22b1262502c5e62be90534015ec6578739001bb71e7875cba8d934483a7c5468a970a58bf84687d48684e973f1cc7f2c70ba0fa2b4affd86d56b538cb49bba68cb09b2d53d357e89aa91f587c15e80f0318a3920715aae8b4f71f4952380ad355572880115aa01a13d52ea8815ff5ecd039895e32b6570ac8a876f8fbdb54e69edcf46888225262d1f50233db9ce8017a6ccd8b79e7570937fa9d915c5cb4af379f64adb734442edc88d4d020f240e03d07bd8a3edcfa7b1bbe4f7e1e07c33c520318975e0efea0e7340ad4e249b8450755a2e6280a7bb6b1369b1de8ec86b9fc7479878f5eb66224b7d292d7e5d869e1cb201cb5d3b835908230815083606ce92eab68f1adaa25adcc4c07b92f6ee96f63958183815b494f62442e48de50b7670c0c0c0c4703b6925b46ab02ff06fbabc8236d1a6169a17b81443e54a41c5289ed453b02e203a73dc941832c4b85048df7137fa5b302d30ea9bc4cc378f06cb023fd26b25c90f55d2f4cd826181af7c9f1ba9da3733af58b02b30f9cc824b16cde7278383870e0c5881511ff98312218dd9059f05387af409de021f1f3cb20a9c5e52695385aa0a468546259ad2ffd144a353b072a51c159dd42f2993029b92bc3c794ca628a2cda1238c6ec106725cc092605160cc3ae5d31dd388d22728f03173a9281d73d34afb0446565a441fb5edbea43981efcb29f47b82f451116b0263be1662e7bc318151b65143544c4be02da594c592f0e0a24525b0f757e6fd3b22769704f6c54e3d56d091c0d658f5c4b78cf9b63f02f7ddeaeb5b593f83dc08fc24f5e0e69d4ea7bf8ac0a8684aa3d49ac77d1111981ccd740713f221b0a2737b12b1bab3c42384d282bc4d10b8ca7ca9e289ea92540381314b2d13b944b225d10ff84e76bb1135474b777dc078867ad7a85a0f18997a527f88d0156378c0668d49f66e5232a27f3b6035795d5c4f16d46ab9f80819ddf52626077c8ad0a4d1f39f6507077c161f0b62f27534a8ec064cfa1f4d5f6aa362ac980db8bdf8e36125330689a905db1b7cb30535ca549c166cf23caa79ade2a5cb67c1a929cb1be3a7cdab11597011af7286921551e234a858b07fdf496baa17d1d4f605050bce26eac84b4af97dc8bf82c9b1d4b734c85dc159aad6ad53121d3a30e039749c1c1df8f82037856a0523c173e5092541a9f6b082d31daa3d29944eced72ab89453dceaa0632999b4aa606b442c8e8c25122a159c90184f6569dbc8f14405a7dc3e5eacbba4b9fdefa1830569758ab387caf9941a9529d852d93cb4f4ae52706a51dd7272e7a8da14295a0b1d93ecea106a145c7d4e17d14d2c4c2851b0bf398eacb8a92db71a0a4ebe55361d21050a64881a2547c6380096509f60438caa76f7a2635c8912ca136c87e557f14923cb94d5094e8895489d5de5045f9d9228f1ecb5f9cc4df05a29da42481ea573ac34d1e5c758262e4f6735be1dbd1146db85d115280ba3c12098284bd0645e992278688a687f9e3bc81b3d024785ba04d73167d51c63e4bc2fb204d7e1194774d2bf9a2b95e0ee4bb55ede68e60a5282dbbeea4a5aeb8229d32458cdff20ea2c48128caee7d0ea94744eb98e042b4af3e4daccf421ad3c2848f03968da139d34255a4a3d82cba129f7b4f86ad7a408e5083664d309c9a4a9117c8875d931ad88116cc60c99dfb9723ef559043b3a574fc78d2238b50e31338d26115cc44eff5992d20bea440423a369d8dd89883eb943f0124c23e711c2d2c80dc16eee24caf266856044546810c22bc54a254270255e6a7248f14164ea92595b880b824deb1ed9134cfd641e0864da549e3ce60610fc057db96bdaf3075eedf623788d8b128f1f589bd89d79f73e7029f54b4ed2a73f639a0f5cb898a7ac31699bf41e780bfd69ad64ba11d9d503eff9efd2a820da33270f7c523ad2fb09130f8c65cbdea5b7720725a9a524dc2bfb93a25076e04b54f8d7fe4d0839756045790c6f77b1d0314807f64f436892bd21553e8734a65ec8ab36910327f35b88138f0397f94d552a1d629f7b0507ee36c537cda5f9c542dec0bf898e4c8f9ab941b9c18999645eb74d1b5ccfadfbacd86035a835704a6acafcd92f0c706c400d9c4913b9be7419834a039f3ad9c7f535b531a80d0c0a0d6c4cea91f32557a6d139039727e9ca31de87f99f2d2833d8076a0aaa0c4cba8c2983ddc5cba0440636048b6749b53406ee2da897b454692787c4c065941cbea23dffd730b02f7a64a727d9f122070c5cfdfd4bd091642ef617986ca5439414f2a493182f7042ddfaa8bff89bbac096568ca7acc3849f850b6c5c93b85da7c5454db6c0a5bb10ad3d49c5906b81d1c94f450f215e5610c3023b2a0b6c2a0b41466e1b0b5c660f427e664a42647905d64b2691cf520832de68057e83488a19a2ab3644aac0c609ba518191d616424afd8a9433053679b0f1dcbd3971823e0c1e3d54c02fe81d3b14803e8c0df48e1d8d8292827d7c4581d3e831be6b6890d7493970f0f8774041c13eea09fce4decb5af14dfab436ca098c6ac76c966bf72fdb044ecbf6cf34e7b8652613f8a02b8eba5509a67dac25f07fef63f1225856d19512d8374f93734a9535e7a8c79f403f5049e0728c58a2774969513512d8539f2da7dc9923b0627dc1626953a7226904f62ca22969a1b5c62b45e084856422968e62224522b09a436ecc3c2acf8437043e2769eb9926217025f2956aa4ef9cad05814bf946a9bc94018135a164b9496a51a7ff0117dc2de3488df831f93ee0d4c8a09954f31e70ae41c6a099d33ce0cd34443b9776c047b40dcbbc79eb634607ecc451a743d788a03b7492c154b3aba638e0d37ddb9ba4d7e467de8053c274a7a85f572e291b70c23e5a65534174b44a2d18214a836ecc202df89149948a96330bbe84863c6541664ff464c1a5454e1a963eea8662c1a56c31a3957a5dbf0d169c8e239eab723ca5f4af60ec8216d99a474ce2aee02c255bb2379dffa455a3158ca5ae9872bd74ed556ab0820936da979d2e08cd985570da33e468f214eb53882a18cb5c2aa8f032d331940aeef4faf26751ff93362ad8aa108336754a9bc9abc629f811662e12b25f8a9933857d901aa5e08448a3b9649748c19dca6dd9e5d5281819aa397e301d93a1150597b551ade3ba58a74828f8cc1f73299db51aa0b08f1a9fe0d6e3571eaf37a5350e50406fd4f004f9c01a9d203538513eaec626d87ad158d7bb2516d4c4a1016a64026b60e2ca8e1e61901a9760553b7aa615ed3b9e2bc6841a96d0c5ddd63a7243ad12fcf78d7f8ca6394cc76fa86911a106254caf9e78922d461910a30e352661d999f6490d49941a91e03747fd1349e917fee4f080ef51afaeaa7790ca161992c7d5011b793c52d67be7bfe4807313513c5bbee768c1015b31ef55737703bed2a40425a9447eaa890db8efc9a11ab30499eb5a70ed6f31c5fa9c29a7b4e082d4cc2cb8aad6d09115230bee7cd3c526a91c3b6862c1958e649523feda4b0c2cf80ba15eb5d207a5fc7d056b2622a558aa95595f57302a07ed7147d786ced956b0f7ea7923ed6505af15bae9d952a560ee2ad81883c84c6d297d3aa9827151c93da5d369e94f059b5ef2e72c495ed6382a78734b1b19e9f43f740ac6f4641342635dd6b429b8d0c1420aa182056f4bc1a90d6dfe9a56a994a4e02308dd0eee28f8dc3107b7d3aa5651145cceabee2f221a0a4634a7795a0e147ce5caec55ba27f9273fc1c9a091841c4b7a8295987468ea463655652798b89d337d4ada549f38c1ee8f99ee2037471f6d821115cd10ff6882ff14ad2a276d49c84c26b8f8f1448faf0513ac7ea5c825d818962cd8e88b7a9225381da345de2c1564d62bf1a91da1ed21a204636f993c44111d5fc54930b222e6875e33152a2809f6426a25615f24782d1dff92dcf8fb318404e3e2a1d652824ea9f308c662e8982674eccf3b82f118ccf494481ac196c488553f620497540e1f359d5b049fd3b6c6645a11bc6b9cf41975624913c1a8984e4fef29c99b3944f0f6125d93aaecf19c43d4f13d43304a4272556dad104c8c9cab2e455052528c106c279536668606c1e818aa4792d014f314047f724f8edf59503a55170846836709108c3eb3982bfa0529feff8153d66a95d47ee87fdf0fdc244bc9538ea6749bbc0fdce866decec12b4dd2f9c0495039e656d62e5daf126e0ffc5a5ff77eeefa64b91eb852e97a2ac81faf7c1e98d4663fa2f3c596241e38b1ce19b5a4f58678eec066cc9acaacca7b52da0e8c779850c92ea60e6c8a62b9e39da1032384afbd07a5f769ca39b0176297e468392b4494031343085bd57c1cd815cbafca1c38b09dbc447e59a6fc6ae9bd810b5321686ecab8812ddd25e288085d3a986d6047779512914e9345d9c07bd4defa905f622789146e0d9c7d8a399d07dd2e5652437d714c69e03de44f19d13ae8ab121a18dbffae105f9332f99f81bd37a543df88ccc00613d9ec63feeab8a232304aa8e86aca92944a062e868eda1343c8f1fa1e03dba3749a14720a7ab718f89cac4c97f2f39c311306dece4a5a4e5769830d066e5c34759f4e49796ebfc069b625a597562f987d748f0aa6d22e70567d25ec35a4dc9e0b8cc6896313d42d706943765ecf296910492db06f99a55a84a9af9559e064bcd8fbaa6381d16021e62032efe5d11538a53ac953c9b102b739722ccd15fb825b05f64d6cecd23dd6570a1558eb34f146c5ca1458b5de0ce2674a8f124a8151fd941405cecef3c89471649a9a40814f7fbaa95d3446da9027f0c92a4d553cb350fb39815122d3838f5fe6d6d78434f2ad6de6202670f6afa36ff99b4e4b60747ae84895f463ae28812d6da92a5b37541693c0469ea8a339c7f2f62c0a87842f4dbf64cf123a02dbada192d68ea1527b8cc0e9daf421885293b717814f279486083c6e088c522aa632e95308dca595744a9724089c889a93b5065171a340e0f7da929ed076225ef703c6438a24e2676714df074c7611f94cf247fcb0ae07dcaba871bf4a426ac679c07ac5d461bd67ada3ef20355549e63f9511a403266bb6c8a2234db62e73606be8cfea9f21535c70386034643ab18f9a4475f0065c597616af60fb295d36ce06460efa82fe781794b568839accf8bbf1448b4de9b4bd2a9d38d159706a47483df3befad0c8e289267f271a0bc65d5dfba2656151b8573c91f2af603da94f159a75c549d8e5ac8ea81a69b35670b192b6d34973e492a66183b1821fbd94f424643521c95530f2f694da60997e5e510597a4c4a0b2c54eca74950a3e043dd12707953c06292a3811642815439fceb92aa7e0732bf39e4e91440eb52938b36029442abf98f7520a7e92c81943a6bf1e21420afe7e73ea145f11539d176c147c5ff453d03d50149c4a671a1aec2dfb7d42c1278f2907147cbec98be6eac12ba97c82d7dc243408133dc1c42dd1392db9dedbd7097ecb33aae93d5f51d7168c136c8e9df678aa72c41cdf041b62a885147fa4093ee5a0ddf359d241443013eaad9557e7d075c204e3d9eec2b4eec7b441613418e4087609cfb2d59ff4365d5a62cb17378dc84c25b84e7941281309258839c40ff1330956b4e2e934e25d4992e8d4d25e88b963b022c128a996648af9b1735290607727450ecdc972063d82d7b734219efba4f0b823f8defc61295d6f049b3921e7acc9724c2f8c60e27dce25ac73c416c1856c974cc7a05404e325bae2a3728e9ce389e0f2a9d8c7ef9c330621825fb39c3d788ece967308ae7af362c9b74ad11443b0154fdb2ca5db0ff50ac1674e8e26fc7b4da858198c104c3c615a84258de93634082e7eb6d1ec5e107cd64d3aba7d2e10dc97eb069d1b4448ff4d20060362d8046270800231c66080f02b68ddb16c97ae92fe70484a9b638de6ebfd703cf7916973bb69b50fe4a4924482eaf831743e187cdcc31f741e9331e69ceba1cbb52934e6ac1b5f94072b258dfa2196820e1e0c2222275e993ccfdc81745eaf2962ca143bf49e63c91c4923d6a19855525d08de214d87db4543c49ea493e670058f218ab4cb1695c3b95272656bce2ae3904a31a6ced1469e050ef6064c6984a06d9fb3c76c2f2d8c06a3ccdcc0450ef3a0829848b036705945fb4913df324bb10da3c12046303670d13666bc4b9f5eb3690d6c3e8f1c33e91d25f1a3063e8a7832899f39c4d469e092cc085a7310d1c05ead87e8b1ba4bfdb33370a222df32bac5927a9919f8cd41e7abf656529fc2839581cba6b9410719e61d8c0c8cd276936eb54244db8b1d02979ae0b6f297ee4f392ba732138c922faa212945970c26b8cb71745d163d7dd24bb0fada1153489654abc5127c79c62d3b9982ea562ac1b878baf4a0f36d962025d8083a7f502a75524939095efcb3e9e4a94494a424d8787d3ea92a91e06f73a74f9264324748b049820822e510f2083e83670c41591cc16dba297df74e1121643d99c33746b0a14964d53f9321495b0427c4935f455011bca48d17ca523ed926822d112ff84833512b3144b09f82bcd8a6634ad221f8cb1196e92f62f28f21b82492293f1d3367481682bd54bb631f42bfb52204a3d2250d82cda744044b9eea6b4982607544942a9dd48de803c14e522164ccced11202049fb79b91ba73821eff0f6cd2ccf1209afb81fff411649269d407366b54abe432bf4d223e709a62fc1315e93d702aed527ef149b23d460fbc5874f3c0e5ea9c317d3306110d1eb8949cb498889582d21d1825966f5d238e32931db820f3e6183c262931a70e9c0e15ad1ad5b452e9c068d66afbdb3215933b0726a8093a3692ca2ba872603bd4a56cba1bf437716074c33c96e74e112209073ee94d3abcbe6b3cfd0646a8e7f81e94b414bbe206f6ea466594d86226d406c6ba5fdfafc3067efd848eda4d21a22436700d4c887993524955036b41b26f562ecdf19206c624464ee3f9f54344837d2400cfc06b3a1942ca0ea1e94333f0551a632495d6172a2c03779b73ce293c4206d6d44cbcd4af34b33130763244a65927062e5b8a905ea3098df98e06ec701b6018d8a829f9457ed452326060f433f5535bfb021755e35ee032a59019b5a2c8d47481b160e94637a48c712e30aedaad9f6a4d42740bacc68c1392f0b461295ae064563b9f648111ef1464a5fcd1355258e0920862c144fa0a8c4afaaf534f68bd74b2029b2f44bd046daa021b54d44673f728794954e0cf93303589497f697f0a9c6f6f6f57ce4b813b5dbe254d346d344581b31c4b3948cf35568202b71f3fa92c2a6ecafe13b8e41ec243cabf98e44e6044b6c971ddf74e879ac0eb9ff60dbfd6b82e131853f226be458c3a294be0edac37c42cba12789794f55f49263d89278135f5cdd217e248606b642c952053b0c9f911b8ba68aec194f6204f46e02bf7e49063f75ea722f041fb33e5d81bb63911f8373b5dba72a9742a1a02aba3315494aa5b902021707a2774a6cfa120f0662b42971c791a0702132759c8919476aec9e4dda13a891c1f3032e672df0af680eb94d6fdb6e30127dda30553a6ffaf9d1df09e4b7d4b5947074c08499e7a0896429372c0c4d6201cf06a9a474795a027e8e00dd809fea7ab4232cd146dc0e98c13d5d2091125d8b5388d8831a8e6aa69c187bace4c0d72f4e7b3e03695484fcb91051f21876a0d19130bb6f4473fed545ee91a58b0694fe2b958efc814f30ace3ce55869528c2bd82f9d4efcc5848a5ac1c69116348555a41ab18293f4217a82b689085a05e77f4264ee8e2af84bca573f671a15c154b0a6ca2eb9b5bfa46e5141c829b82064ccee273353f02154b411b92a059ba739225f4375069514dc25757a3c4adc94fb51b075d79623924c71ac14059b4392bcee31e6bf4e2838e969772d27416167e44ab9cfe2094b4d403ec1a59431e932154fb096537208c1d209fe34e9d3418598f48e9c6062be20575255365152b7e73149d46833c02e4134c1982851b111a95df299e03be81c374dde371b61829768a25c2f452c6d5f82af4eb623f36ef6b22dc18b3c7f0fe954093e44f61c9348b40a2525d8b173d58f6359b43809eef46b07612a94042747e6961032f7480b23c12593e7a66e870423b754c6c99243c8ea23f8eb9c7d93d809ed174730aae2c7ca4eb59037821fbd494790bee91532824be6a3251253242d59045f6ede49998c2882cf41c7d1901949047f5d417d4de6dd1084082eabc97cc9ec8348cd21b83cae21428831047f16638d8a9273966821acd39d356212824f4a4b84d0e9bfb51c0427756365cba4394c8598810882cdb9726bfed09a44e502c177f95bb40a1d20b88816433e75279385dc1ff8492a6b69889e94e4ce0fdc5995daad969618b73eb03962daf4a0c307566365b509513b7dcaf6c08a1ea5b945d3e27a60ec25656dd7f3c04b88253fe8e65eaf8507d62c2b76b2e461afef1d5853b6f71bfd82f0b41d189daf2d98fe25cd49af03774a4bccd10ad181cbce61b182e6c0c42439f989e46439e5c881511a47a8486ac934290efce86e7bda4879fb86031f73c8186d34b8a9b3dfc0245d254dc362dcc08f102175567edbc0860cf954a9064997513670e72792681d111fd31a78b7d3e9daa1ad2e54d4c076c4bba4e39668d1a681bd1deb8925d3278b2221e84aaf9894fc0c9c65a7a5fe8e41520e31031ba6a4794ef79581b19518b1af3e323029f3b8e6093ada4a6c0cdc5f650c574f0c7cdcadee5139a643cac2c0640d22770799f4a90f06eea46ed2357e79c52bf205de6cb24ef22f29817881893169067dfd125e3e8f2ef0213fe7d4ed373de20227e4e53b79a22d705a2f490b5cc4164dda3259e02faf29176d1b2f4d2cf0e6a2f4a46b9658962b30d6ef5da6724d5bc50a8cba6f858e13744af1abc05d79e5a9c0f8a86b3fd9124f4753e0e48aa79f0e92029f2f848b1e53372a8a021b54addda76d58e440812f2de974121d51ad7e02db7d6a2de2bb26f53a814bb5651b441679266d0297aa77bad2c804aebb3e747a8dff2659025bf22d92059d2b81b52fcd93c0279946df3ec81c337324301293d694fda44dd08fc06b304fbab3988ea93102bb9b4257ae5842550615814f192f88580a1181cd9643b7bd475f5568088c4ecc592b738fa65e089cc6902c87c904813d21f6bf9b317da740e034e8984cf3b33cff037c5454825a7cc08a69532aa6a807bce98be5016f6042b0b078fb71036b26c7dd6bed5390b481cf0b5273ca41c751b3813d375d93f5257b53670d9c4a63ababdfc1266a60bdd24748b1a36a2ca5812d49797bfa42524147032784503129f318b37a064ebf3ac894436d0676f2c410a92e0323befdd9f325378d21039b63a9d47da94acfd2636033aa7e668c3e29e6c5c056cc9826d91a06aef3687bff0806d62f09d59f3bf3854406a9ff41b3bf5ee4905e60ef5269a8cd9fcb268e67ba9e0b6cde56a65e7ab7c0c9ee2af5d829ad4d560b5c08b3d3d556b3c09b0e79f1648ced9729161889aa39a7a87c1e7305fe3588d4bbadc084dc1735a90a29a6b60a6c161da402d7a3b24a262fa7409a9422841225297051b42ac4cb7c9662a260a7d760ba2d8402a3b4ae99f0da7f0f294fe084da344f52529cc07f126a973e2375f4b109dc258d2164de99c05fbe607dba53aab6b804fef7f4496e6d53da4325b0df9a7490419f50a69404be76ef53c86da6a28f04c6cddb43bc203902bb99f5c152529f55428cc0e7851069b324f99f2f026f4a54481972c9cf9e089748cea54ddfd12d780d0c81d3a69fcdf454a42424042e75c71f1141e51b4f10501b47f29fc5fc1a1b12089cbe4939adc7bc35f50f380bd9933c6a7abada07bc26ddaff67a0f98e49bcaae3abc4bcb036eb5464de2793be036c7f60df1d301df5de7a6624852f49603feff2267eed34199386054bb62ab480d99abbb01af7164798e92a2a4d306bc9eba28a6837e59522d9894df32a647cd12a505ff1a9a4327af3bf3cc824b49ad88e8fb60a69505679f242829528b05bf3126ed69c382f5f1f85dd5f595d957b09e820a3165a4526a57309e82a8dafdd28fb482919539694b5d25290a2bf860edf952b288c86d59056b3a85b4222b4b4f7a8a2a584f7d752a6655c9b49454f0f982162164a7ebdd0915bc860e1aa46fd229d8681dab4d969aa70d9982afff119a4b091dc7744ac1e4bb0c31f277d5a4e0d3d584dde4b30b518f82db4a51eb4d1205a36f2f5b0cdf8422152f86041d370614ac8e8c1d9ab2b905d57c82cfd2dbf492846879d4135ce909a62ce4b413dcf5d556050d765f232718f7a03268b76413ec9b05177dba533d7b9a6064b64965a16482cd2cba638be94b1d8409d63aee7bc68c18abbe0423d275c742982cc1650d9fa44e5f092eb9c894fe64e8a48328c19f9892162683e5a09904ef3e964e25e525c104094ac80939916047dc4b4421c1e6ec3c91a4f92338fbe0e15a5147304195f6cb963582933e6a2b3345bfa710238e64aa4d86e49f45b0eb65672e594570fa357386e94a9b423a11e684147744b02eda3be9d11da23a3d04134dc7431c4d0dc1c55c63ba21a4acb76621584b12630eba2521f852f9c7837b55dc5819041fa2dd4425bd20d81c29eac933493f1e0682eddc1ffd5e3642f204108c4c4bd99926cdbebf3fb0a17f52dec6947327991ff2ce193a889046b27de092ce5bb9c4f283bdc607f64a694c231ac552740fa55fbcca4d098a1e38cf9dcfb636951cb1306085920736c658a2824ea242970a1e58afa4bbfea6b94db2e50e6c8c17f3a8abcd5d9f6207feb37e4cc2d33f957ba50edc9d67bcd2ead5ea9d1b6a7f025f410e1b2e68300c070a1db8891984bafeecba8da463011b207603e5e81d273550e6c068ab882063a5ffef921cd8584a66b4cf144a1cf80a69eaf289d646f048a1c081495529c81c63d086a1bc817bdd4d574a4b4704dd0dfca570fbd4d9a3eae56de0b3e8a87e31eda01667031ff408d9aa917359ca82a1ac810de9d7c6abea33e8911ad88f31e49c3ca7943430c97584bf98a4a0814f32e55896e459cec0690e115412da5a29796ea8d9d0e159ccc027d32909a5d4528a0a3100b8a294810f69b53aa91019d8fc9f7c4f6d9f528e814f1dd3f2366ec4fc94181829aa15d1d4b9677cc3c06557511acc52a71c621ee037a6a062b0bc2b11a07c81f1b4523245934822e7cd033a38602cf8f8c845142f703a67e84a8ab12ef049b76f8490928ef9138c42e1021725a59fd46f3a8f440d14ca16b8f49a784af4ab5f285ae0941ca5e3effa7a674dc902171e2ce9782ec102573acdfc64c5a029255d810f916d15739adc8c7aa158810bb91f3b65f7972a7d15f8186e9d2d9f5a49492f546052cea982889c9e5384650aacdd96f6ca90efbf35e68122054e648ad44b666e95ef0db517640b4a14388b673fd9b4b62e5d68832850e04f63e692fb9f93a8f8a13cc13e8a13b89849af67cca572743dfa0b1e397a470f5385d284441c954e67240d1336d9969484104466cd12f43cb9a26b9a3e95e0968ad66a9a12eb241842882e091216df242d9777eb7904843613512346d0f3e5f2889722b0baa941d558dd687e89c0e60d426613f173678eea12ca10782bd563ca4c49088c104992774e10b811dafa15c424e63a01818fa3d2de584c579eff017f322c065ddb7fb50f18cd2ad93584e0f59d1ef09d945411ba824db079c0a6bd498da41ed21df0497dce2145d731355f079c5e8f1ea2d9af6425076ccaabd5bbcf163cc401a3930ca6132f37608434a5428b5d87ca79b1011becf25826a15af05e69ea56440b2ea93fd392162ca70ecd82492f4ab84872fd3ac98297f8934b5810aa411d8bddf2bd6dea7b60c1f9e433912c82c9c99e5770e9237e4ec26f5730b24be43cea52ce49a85bc177d2ccd3da342b38ad90ae26fb871055af8213932083c5d2144d6354c16e1c19c3f4494cbd9854f0498475cc22fd427e0615bc6ed05131798c3dfa9e821149866ad6e8294b654dc17e4d3e2b8dbc22235b0a83e4e441aa6f4b0a765fd7f467cba731aea3e0f74b5946d3f1fb352a0a2ea71873536e539a5b0d059fd2344dda98ec46a2a0602d8b7a935b4aa78ae827b8343a9b07d5e8faa6f404f765596d35ea0497cd3fe3bde7c5ec7082df52297b04b3e8a5de045b22f8c852b1102b018751a8634551201289c36114c66110c4c0dde703155020305826898351244a7351d70f13c0c00aa2a05020088702a15020101083c14030180c0882200882200882301443312884f40737f97efe8195de132fc6f7d395fcc6bd6f5e4f7eeb5f7444beb9d15d9e6d76cd6fd3dbf22ebbbce7ad5f78f0b1adbdf5e56b0900ecdebab1dbf784d1ad7584d92e1d06511b7fe8f48652f06b891d9452c1120a5babff1d53e811dbda6bb39c20216dde736cb0814cea7210dd6cc7b26e9fae41f72cdf7338deafef2f1dde7ade648474c4f70a4c79eb37053574bc7b3e49cde348efedc07bfea5c9e45ade5c75cfcb2ebd03af3bdbdd5e9e977ec9e27d74b9bbe2dea8de73fa89a1d9a3dbb57bcedbfb903714b02c02b18afb9750f7ad467d91a2f7e9de50e37c81e5ee62aa9bea557cac42818288f4a76358213ed7d2fe725fe13467bdb7eb3d87a81d195caf45de3aabcf463070dd5e3c1666edd81bf17e7c35dd0aaf8db7f975f7468db79e45817a2aa0bb1c180ef1cb7b8d7957be367cebec605c12d8f027ae2b208091d0b069560bdbbf5ee5c512d7cecccd4f9c226b19ac14278e532266ba092d94125b01039befdf69ef1fc112a32c975a9a1d4921e9b36451f14089ea6d381e5f3c51f5c4e769044bf011f10ba647a290fc5612a5a8485137898048a216b1cf9721a9b34405df9fe0bd664380f26db6e2a03f678ae22e442f901321627ed5b9c7bb3a1d3bf286ac216b839cface1fad8a8f53d0e5415ce49013f88a139f5e723a3d6ee1cff9383541768cde9025e2769b8c0019f938693f1ac3357c2ce9ce99e602f2ffb1247f784b729442b2074f8f25a27b13def7e8f66389fec099458f277e2c0976945f10668f93440f28ad47e563354de20399066cac433f4e6e4010a0738b933729f832044bdf8c8e301ca334d3a5c008b20e037c80a89f9f741b44a9b4527b4384c136d8f313c97dc4af737f97b0996acc16217f85f223f26e395dd2434d077aedab2a0f6c44e7071f6d60452a426d7fcff2d0d192a3aaa1b195a07178552e72fe189201f8445fe7b0786269e51c211f69a2fe95102f4148cea612d32567afbd34973c7103257bc9b2c36d0cbbc602b815c93808c12bdaf15622f4c696156535086462e648ae5678beefaa043ec8e2ea695915a2557539193728fa5b1e7faee74b81399c9fdf92cfebbdd7c4e1c48838b5c3fb7564ad7ce9c8d95228819c707a60d3f968adb952a16b7cfe3f1319473fd2fd8ce7f5010008fb43cea9a69a83c0574f7ef0d53f659362762556c933169332a6a7ccbe0cdf5340ddb2c484c9248c958ccb90d42fbd52f98e4e28429babb669142ac8b5539e042125f37a4acde37145d731a57407e83c14d9eb8ec2b242474ed1f38a2991f6f931e29e3a8547bbc4415e68428005c848af143859261a92ef4a7aa767839bfe2c1e0dd38f18a04bcab73035201f5178e64cd12da700ea55e6cfe7c01bbfcecc1fc3de3d7242128aa08a3231c9115cf07d8267f6374ee83744a75731ba85e2c1a8dfaf1e011d8ad2b6f5774cd9f24bc339a3abd69cdf41aeac29ae73c5daa09aa546f0e2cb88d0085b2c7607ec62b75e48eac34a1839e0da3ad7bec029c8ec9054e928176905a8048bff2f2f08a4a2a9adecc334ffdb5140615dc9ec9a2bb51a1396bab77a6b6384371289db87664a44db1411c3101a71ed8c9a3e1b55c0f475288cfa28d32e53f8704f92884239c9c845026dacad0bcfc928de4f9fc9af4d566269419c621c3c915dab528c52001a99c9a8757492a9ce7d54c14e71a4ae43843711c5370f419fcf8f51e2a388dfe836d2d9ee72491330fc0a4a4dc1fe1aabea8a0aa081ae39b37a6127f160114cc1be523502012e4dcf0ca6dd957b55d779672b3c71de895e0065ce2c28c39fb04541ac8582321b4ea0b3d8807a9ebd556ad2f3c5d1f31483903dcf455e78229cd2715a3160cacb6c6004ce1a1f7aac4a6de4acbb699eb4de6a6a301fdea045712078076f04f54229c1828492c173504ec82461c3ec7687672e08483053fdbcdd06720663baecb8fffc19bc079904dd08338943807d1a00ff60e6248a7a000c7887c130b30830c3060103cc2033f01b2406a2417883152ac3da899ec1c4401a28060d8365e0770e46de4ebb8453c29bc044580c8c07e58416c1655019fc0e2409c11166728c7fdd5f42ad081b3c9471a76fb0798a7b0d181dc206e0ee511e141d7b10ef06873298ccb5aba71c82ab9032f05d9812e6206c1cdb1d764bbd6f1a96ca0ebca0fa08d0813aa14560e560d34f91d708653093f401c5d7c0bb073352a32b6831f88cc1ee2e8fa458a004c85804b84168c19cd04af0100a06c7810c213af8104c07d1226c52bfef681742bfae1d6c228d5fdd5bdd4421d1880ba2ce37080b7e962a614695c002c12e7f9f712e43f5f8d280bf6ea7817006334b7b4ac7fea00784cd3b227dc93cf8f888b0d7f805db2c13801712624d7d9b8101e247fec1123672b56ae60b837d2335e05bcb4d39497021380be284d01036f9a5f843a5b0b982cd6c21eb995be655ef222461b05c2c8fbe6c303010cc8361b09cef0b0741823a013b814ae0249413e8863033046983de40fe0d567813de41710c9c0338a128c142980ddc3458fe07acc3d0e02e4c8448b31398cbc266e17e712027cc4c62f21605019483992a5a7c421fcc9b3033b7ec07f4978b90137283e040bdc14caede1e8e074e43d88026e9b62361396a4b61831bf806413e1863b7ba35c20cee855102170833d1709cf3977089b03136c0c87fef8d0dd910ad17f0c0f2cd443149a2cb78b5e4f007fa5a60fe25f6e83fd1600c88fa0e41c01f8008121e6c622458f2f3ee5dc7841311c638127bd16752e02db36266691261866e4918b54a7845d8d051890ffa1d20bd3b61c02d117a644b8724744448897551ce90992585aff2b1e01b3c1495f0213abe9ea4438e84781b6ac0062cfe12d809af042f1296ffd2e19b1280128220cc64372f4ad3602f0793ef7391e34af0263c21200b71825c099bc4ede7b7d7c172a0176f650ea2090521ccac35c325b6846dc246ff28cedd5dd8e0223cf151b37dc29e9274a3f3ff4c7acbe24c0223da216833041dc95e78b00b5f01a446cf1f0dc6e8afa7f90d88c1c4c0c1c1326dc29cd04528e12070c3260f6d83f087b059fbbc7e2af4e6087dae8eb35eb542b0cc40866d2e9cc354205edeec4dae4f400cb4142c02cf0c64be6616673315389c0ea732154807c604b9819b4006c22cc21b235072200344047e5e34f0f249c9ca7e81b4068a4baec93822880fac1264ba77efa5cb8c2334fe1887ec119d369b099f53e5621fa1ad126058be9c3a7401cc9d482ac2555d306802c00ea801582206a003440325909b801697456bc0f1db092420210381bb8035371dc81d9806ec81aa0129065a52661ac169a0d60006fe366ec91cc00e261d62d6e1530100a880c90059803080f09eed110c807bc0af02c242a52ea830f008ac2ec0f481c988b805986dc6c21f03989d0c87600480a99830123b02c2493ce75d1e20060a1f6859aea2cf8d40749f1888750053513aea48fab656500104bea64a00d000a0000b8008d003e4700050b8835b3b018600c90067401ea01aa80c3003bc09b478aedda0a005060860802227525080167536aed7037427e0ca69533c9d01c0034003af0bb4e856521cab814605304f5d6b82ee00c26aad68680f94010ea80cac0484fd3267faafc00b204f005780d5f79dac0027a02be04b01e64144c1c300609a131e81c900c63bbc24ac4e802b644f74981208106801210298fa13277cb00ec83c8196cb37e98a003a025a8058e2d86fe0560063c6fc040029ecc643fd64f9bc1e108fcaa37bf8e3f1fc46c02c9ebaf40739440b527af8f6717a89cab6d5c7fbf24a49dae6517844e7718a35c5c066424e85e0b3133fc869d90fedc5f00cb6671986c3c15e8e17fb60792d8905fd452863c47f6bb518d6c10665617805783d7cff51377c282b0589a23229f6f9c622d649b1285c184305c9a2504159f0a042d469077012a108423a28b272855616e0e8d2fe4b2cf814255004ed73bb131217332ec0c7f223dc7ff15bec5511e4e466d4f714e14fe1914d3cc95d7bc5658a2045a64050b441f107b8b58e9016af8ccc858e8548667fc925adf0be9f552c14821f915502c451ebf3cc739154c6232c20791d574c80ae1ff98df00b408040d57e2ed257de6546c41dddfa453a2296b88f302540fc32c365b6b2eac7d5ed132d446bcf6a3b71216b892ec306b3bd300787e817876dade8d1e57cbc5a630da73b910fa93b72a806597c848a68062195b4535f83b0666944fafc0f209fef56a48199905d0cb5e896349a28452c17f08f3b7ffe5e26b4d6aa6d699a8846cf5b11387fcdcecace44b4b5094856a6d93eb2e65d04f78ae0d8e2d2af2fe338f88a85635627b37c5d1cbd4bca45e6f212734dcc3b2e5a49ba3abdfada4157da69b3805cac20be2955eb9e4a699608598672204a55692be10982c20685752d4f335a8c3bda59e3933bd768b7ae919147db86939f0cf484eb81d787c35d622cf0bc1f466eccc28acc71d17d3d74486e98ebd71bd2ae520dd9d86b6413c527ee76860b4a044c2abca65cb2b9cf05cd7270b65977169bde91201f66ecc97a0dd4d867adcafaf581f8f0e5e776dedb3db6f3fe0bf8585887d9b2becbe61babfbaa44fbe07c2ca9e1fc97dbe71c80c87ba69f8a0fcdc3c063538368bee6605ccaa11112f806cd7668a3d662e3cfa1551ce8b184e093360d52caa26b47a1060b789ebc62822d3e9e5882106a2498bb75212e316e86401209137638d9f679957a53cc41204a8db23c4179e1a96797e663210c1a10c9ed7d18cd196dcc8049a470b718c3ce93bbe576908ba5923be09ad89b69c35efca40b8b3cb903dc0e8f3c6750844df388fa3328b7c60942ca41da28689b772fd24f251d099d38890b072c3a8745820110ba8f202bff23cd21a229ac1ca19dabad4569653fce4e02ba0b6f126b14af7af9998fb461e24daab8d21e05d76ea9344e172bc2fc8a8873ac4e42266d26c0f99d20c3eb065e2b087a398ef7727aaa981d26c83a22d326fb2cd625f1e49393992ea511e0907bb248dfc783504a9d8cd8a32ce60135b0b30562211bac5122c0fc9d8becdeb2b084381949b79da71cea1a32fcac9b38ade12484f43f55d485f2efe7a0c8d0448d7de42f9df1ea23f1b80c0221cf8c52972466be32490a166db6bdc16d7d1cfc950fdb602f380830731ce89a2742b01105fff0436198b882ef868493caab4add9ad14a74523b3263f42870f45820c095ed1184e1c1269a024a283e3b7a32d20b6450e4afb94978fd1c3b4429b572c5aab16ffc312fff30ddf4bce8eb6cb29b5545a1c00c6eb1d35fcc8de9f173343e8348cc0495adc7e93da853dd655594886be7fc583c749ccd6e647513a281740d45be6b45f7557024397e14ea85ee886b4277d91cf760e77906ddc430a7afec0cc1f99c78a6f04e8bc413bd233fad935a50f113cdc4edd73b7c3c7377fe7179f2c34b83d427cf67b7b4ec204531080c78254ef86e561f7877cd10341138f881f1c89cc8565bce75c56999ed8917247f1626a5b106a8574e58b660108083bbedbd30a7387c48670a66041f00a023dd800533d8e9a71880e4f8c2f5e68f7d39ef585e72fa7d6eb23578990c4889451d21c2e96f35138402ae000dd00c1802c01aee0108a88d640c19cfc5daa6d1634416142122d4aaea0b73dc17c30907b21c54bc698e5916b343b4d1cca84bfe8fbc985c02da252600d0228ad910386c94848e2f23c3ebe3090cc0c0a82ea05ce881b80da1cedcd023623dceebf4c608ab01594ad0a269162920156d3cb4f0fca54ff52883d98caf4609aa57cf71f46db02d024a448b9670ec9648e5487f51ff01c1a980ba59424f5f445ba46a0d799945d1a7e0669c89fcce969aacab811575542cf512ef01e3959fbb27079118deab8e4a614d7c62aa7ae15819c3015743ba979b828664f458320171c97198f13bb0fe1bdb6fa09213f9acedab67473503f61e76b2fc671d8f764e92ae8b1c42e8875d07160bf89d6881b0aa91825dcb997f8b4640d4d84d2fa0a82153bed5d052705475c9139bf6e526996b720cc3c460be1a287aa0bdc93d12d23841ceac09fb48e00483c014ac4031fb7170a9a1305281f2578d8e338243e6ec01b0cbb8ce544671232aa8a4129be429bcb1adebc5e768b3eb4de54e6d3cd6562d4592924cf3c88c2aa7248b6ecad816a728f3256c9081c358a1df1a0fbd2f6873584ff6297d2cb5458fca612555116e4638f39a8b3f57ceab35803963531896ff8faf2b9d3b808cb17ea6ffb216b225802999e15b96ebf6021ad8a443c993c071ae92880209c95b9bc3062d11b1a928d85042c4435bc16b4e0c2f2413c9517d3007b41a964808658d0dbde55a0410a62110647b2493a422c4c2b541b58fa4f46783f2fbdb9a4ab0f7461e7c5c846082f045aa796ab5cb868d36da16040d22c8898752e89413e30f2bc564a1538a8827b2cbd1ae1031ac2500e811c600842037c97b8c698321295e08471a11c4d590c12e81888140fb261c44c48d1a2afed98a1fb2179e5e4443375f5cf5edc6dea00a7987132597d95fd7175562a1936e6f95d3b78c314fa68e305fed12b48852de7700b2650f6ae3fdd984c592b545f8dcca0ea4de478d3e1dc32d0763d736abd45bf08381fdd79bc16f8ab1b6884a53ea6f1529aa30ddd1fa9148bffcf4e656fa195618e588c79df97ac9ce77b89bb77ce52775290f189165e22802662d5c50892b4071eb086817f409228007e02bd0997800df05c9a580ffefa6b5f05050609de42e92bdc9fd6013215c8d5c59471fae53de94c8e6b912d986ab6178435509bb02c000ffa17d6496a8ca6ac25645e089b1b8cb2cda4e8448efd0731259f021999ba3bd608eb972cd2c95d6a91dd5c20e5d831c802d4754310dcd37124b1c8cf14f888c7a022eacc81cdb45140d7c517effbbef9e849b96892db3bf2408aea6387ec3f8179652cbefe9126777c23c0da68e804b7d8c365c741ccd88e822fa99b8c41bd7c21652dcfb72126d38e670d4ff2a075370b5a6813856e148a6c641dcfc07986a67908372c72c254275934a5624b3ab2b16fd4c81539a18712c2c55bc888d3268e6d8cf4e2ac6a45bf54c02af9caab8a9791a5f59e6749cd31fe6d43945960f5108c7e572695a24aa68c93025d000449727e46ae1249cb37af037cab3792b4e5817a382418363010590165c1ae230e465b802815467a7bc053a23d096c90295b633c3cf26e846fa9323f8c8ddfcd024446d04754c28010600594fd2833339eb60bf96be280d40ade481c98ddf9d495b65c0c2f50f35c89ea0fe26b568c6156078c58593acb6f770bd11f22734276e1ecd6cf5b5cfc77d509f001095cffc56288f48a3c4133a087caed168ae78119c85d3412f39d49ff80248ab76b2096938652412d1ff2bce5fbf3183a0c453d1b8db0bdb3a72b31dcf25ac047ebc87f46d19224bf000750001f970b3d75371c470426825b88d559f1959c5b6cf1307e12c3818561c4311259e825346247e2cf1433da3b705c4848286c414c92cab801a413b58ea971d5a6ea22056fbc653198d76278b7b4a7d57cc44bb7684e038879fc827a95500acff38233705368258d23c7914da641cc2c54871d449d2cb024ca5021af3eba23970b46439000c30c000030c30c040c4dd84463626841498ec269394641d5260d22a6c64ef94524a29a5e46142e30b1a17131a17139a0df5c503290afe09490a789503af826e13319864068c83226ad61c4b340e8cc25a40e01b78a21e364630d9c09134fa464ec63cb1fc1a783a667c7ace0cf92288069e0a1dcb46fc7b882933f0fe5ebca2e9d718438e0cbc242e97485f0bc7c04f16a275a5aaca41a91906ae68d6082b9a821276f30bd805feb888130f71b7c04dd313b54ac82cf0ab26c5e52fd161ff0abc50a73edd279555e099a9ef53b282343dd25478d6e1f27cfaa87092b04ee9e51a322ca75853f8b9bb47c9aab0142595d9e629b5db1eaba418c38ec2d3a1455892d94491c64a7a495aaa691d3152aa48195a6d6143868c2db6b4b298116304e546da5038e29db9fa420b0a5f3ba324f8049ccf000df613fea6311331c9ea53258501438b730215ac273cffcaca9971d26ce3166c279c11fdc94be5eb60abd62811584e782f42c4fab84b715eef264c4d69d6a386cd4174e3043f832d40ac785c513cae70e1a2789ce27160a019e5a35613e5623371c306011613269914d3ad78b20d162e5cd8f8a0b1858d1b3666c440b745155518dbe24691a100172e66fc8d1b4546220398c15ec2cb49a349fa184b78794c3e07d3e1a146bc95f02789f134da497b0eef15f571a3461296125ecc3e5272dde98ceb76124e8c7117caefd3635b2db4a071aab8a20a2d5e865771010854e1716e140458200211606b4938417fcceae1b428a5ee096223e1579a89e69fa90bc442c2f30e39a86692d1342aed877d84db5bdd9dba23773086231cff14aed6e1a4576763cc8891741be18de9ef49d2b4c4a281666c8123584678328518495c96b468409f0876116ecc9442691e060c1bc52337b08af0c3a61fcbaa618fad2c66c440681ad844f89e91d7bbbc8412e8008c082c22fc902aaddd723a86c98f09dc888100172e6ec43036b6d84338623582f2ed2f4f492365238b2243017fa3dcc022015bbc8670c29c4550d75bfa45efb145022d108c9fb1c5478dcec116c2ed504fa5319488c14f1e5b36d01f21fcae5c215a7ea491c58d2d68c0e81d841bd4d7b4fab987a40bc68c7274092b087fbc2da87397786c99557181056c0d2dd06d20bcbaf6adc8397375a56b6881ce2c209c14528cfbb2244d781020f60fae5d3e9904eb074f5f9eec9a446d5e4d3f68241835ce6e05a086ed8317a3dd64eacb35b98282583e78f6e296feccb46d95bb072f6643b758d9ed87d58337de793c486b750f3ab787cd836795725042898c498870f1e0e8cbe36a22c9eab077f036bce8209e83f8a7bb7670dc845a3535fe56727a6cd5d6c1f3c97535def5e3d14b1be5a3d4d8024027960e7e0c92f3c8ce954c856de7e06d249562450badeaae1c7c8d1243e8a422a35f7e4609ac0280858d839b225bd34f4c5e2b258a01074f45cf4153465b57106d61627cd040b742d837f86fa79647b5c952295a373856caee6a25696df0cada4d89a47ff1bbb0c1f7305aa619be24557a0d4ecad973735835b8d94f799e1cc15488943438de656263524a82ba160e8b06afd3e7356d88f9baec191cd31c8490937e9d5de933ac199cd3721651920c97c18bae26630ce25b32f82944c6241a2d760c7e68d0334a3505b51c365a5e254582b061f02587cc1bec448808ea150b06df62eacbee9c47d2f5321ec6078dcdfd82a783b5679299180606e9c17ac1d311bb5208de96cb822587ed825b2eb2963ea8fbd8a47ac372a168a3ff2ee3b45bf043470ce6223e5af0da94f8099a4c7cd9260e9b055f2ebab77d5213971b0baedf2861bed59a9e846ed82bb895e2325c694ae1dab7829f42bd8635cd9d948e7019b60a6ec81d3936639cf6989061a9e06533dda17a5d193b05cfd42bb6e71a9d9582ef3f67319ce538d5e01f0be0051b053ff378e6bc2132cafa60a1e087e5cb6a49070faf8b9fe079baeef2d3d91a53a5d2b04e704deee594da85adba6bd826784106fd9393101d530631c111a59a46f7e694749a42c32ec1f57231352aa414238f4af0fb64c3a6487d26c1d3772a33adaf944cedbcb048f03ca8578ab9cc42264d8c3d429b360619a69d0fc11ac1f3d4b9848cfe98c2f3fd892d821382df7d95af366ed090612303308a25821b456f6fd5caa5da043fa3eab398512c7083860c2cfab398513e60dca021c306292c76085eb8b01c7bc3edcd6a16829f96d534c6aa27cf27088e6d8ca9694b434e8b018227d383ca335712a4dc3ff03d568a66886811d6076e5d9a564cd29af69d99617be09845f68ca13644140f2f0ffcfca14c76f2dab691b100177607aec92add1e2b6b85d5756c581df81e4c6f12565abdadcd816fd93a357d938f035734bdc8daf09142b2dcc08d4ddd29a6e4123b757785b5817f4a3b8afa209290a05485ad816fe69bfafa264576590a4b03cf42a60d15194c8ae7ccc0af6c393ddc66cc9c91811b2e54a84c577ff9ac18782a290b59913426f664023a8585812feb562b7a649de8f6055e68e6089b22df9ead73c2bac00d3552924ad23615b70c1a3428f0846d81b3b14e545ac7858b232c0b9c24db2317666dc2aec08dbce145249958210cfbc0aaa0d239a508210709faa071fe2315de7be47429ba64444c3db6d08fe0d090b1a8703c4d6dbda8a7f04786bba0b65b43743ed2148e88cc204984a545f83db62aa0a570725faa577f7e0b116d0494147e4e27739259ebbd24c6638b39a0a3704d8f8ad63f49ca7582a28528dc101b32c65a2c83860d1b31104b4043e1682df7a0f45609b1d1673b0a0a6ffd63f810db63eb13be4b4a5174fb0d504fb862d69b3186942df63ae15a77c8f497558f2dd58072c2314ff51f2b914709c6991163135ef018ebfad4a4b76da0195b241868060d0303051f371003aa09ff33a6e4546a637611d7a001e30d0c1a37608c80c6555f4033e17af8862433095d3d1a8fadcfe2e3b580f10605458badcd8062c2910d41ca6f780947646abc6ff696f0729a911072cea984739d317c05e9a1846ff983e54f61465bea4cc23b25562d357b641e49c28fa2325cc528129ebacd9b768c7be418487899bf239bbefa11fe06d3971162d4118efaf039bcf2e536b536c23f917ed6d388117e060b65761fccee45b832315b7e0d33aaae221c4b2b31c7c84c9bab4b849f840ed931877913cbac50f06c385044f817fb5294ce3984ebb14f9628b91432cf4d5043f8a9af73e8a461a246c6042d84eb2ab271b77e4247bfb7a084f0c2f7a89221db6de770634107e1588ecd0bc2d7a073a587f43928e10984b32ad72752725131492d2820bc507d31d492757796ffe047d448d24e48afa07ef03fa6ae92e612ceaacf2ada07d74fd49d296119eeb70d281fbcd6f03e156b3baa05060a88c140f7e0287dca62c966ccb8fd02d583d72396a24a26152a7ff2e09a64fb74b1dd41f1e06cc76ceb9364f606ddc19731399d3c88202e76f094d78b48f98e253475f0b3ecb47c9019d9ce4407372ec65bdb68996be7e0086ff18ca929a4931cba642b3f3982188dd9028bf382c6c113d320324b3c94041f0e4e083ab7c9907f83e31abe5aa92906537283b7692a769abacaf6b7c11fb1a5ee5b5a6468d9e0aa76a50fafadc1cf1c9383f5a5062f590e118d4d2a9985d2e058aa534ac342831b6e442b958dda2c4167f0d2e713731d6497f2cde0469a1033a4a70cfe7a941c32382651739df57b8a1e53029fdbfa5fafa8ce63e220c4f3e812cea62c41bc97aaf3cab18457262bb205f7cea4540927994ec13a46bce64852c2ed51f92ee94e992924f8f319b021a386163126e145b350d2ea4c9d4e3e0c85434bc289a69eb46545eb10c58e849b7d5d446d8a101a126ec690639e20ab7e841fbccd4e9a8dd0ca16868d184a8676845fe96278302b95468f1ae1994c294dca7818e1ace69151a2e58eda9745f89b926ae4adb93032c463eb83468dffc0b40088a115e1e850371acc3b344bd289f02fbcd7caee54a5851a119ed0572a7a45b04f3ef6213c2d1e62640f2629c5581bc209b9624ab6410811634817c2cb1dcaf3e78da9b6458470ae623cd35283f0b24aeee415928270a38ffd97bb1f08673e7f8ae436a98452e6121a105e57c56cbd050b5a2c1ee83f38a9b6d774c9e52054e8b1d533da0fcea5ba53429c0c0c8ff351de8662d17d70f3f9a8f417fbe36bd05819cd07bf730a53933fb3a793f61e5c3975fa73c8e9d683ffdad9268593761efc49e154ce74b2f1e0f9b8e8d99864a75fb7efe08f3429664ac50ecec84afadbe4aaecfd3a7832661262d7a7e9e098f798489b52e6e0aa7b4ea23c4b92d072e838b821f7aac4dcf327348683373993744fb5b1eda47542bfc19f097a73f81a9bd06ef0726b489e5cfd3482d8063f895123419bf2a0a244d8e097a81a8baa5d167a0d6ebe24a2b462ad42d2d4e0988c161b31a670396dd2e04694cf774207a146831fd7e95a934842e5cbb6d067f04f8420920a966e635b3338796e838f0ed1dae4e14297c149a7d9ee427b6e82c8e075f0992bed416f9b670c7e5c5242844ec2a4682606dfe42de5949386a0c20b8317db4926ebe0f561333078239a495f385cb6aeb64e225ef03f86aba669444b4ad505c74da5d82525cb05375a88c88ed3b6e05884f58e72252d38315866689cacfda7b3e0897848c992fdfde81c16bcfcdb56b7697722e70a7e102968faa82193501d2b78a54c09b57ce1d2e5a02ab8dede33af2651fe9476682af8bec927e65c4fc115b94c6a6b92aa288d141ca1114379966fbab446c177110fe9e125aae41214bc9c939e54654215f4131c559d2512ee4b525e150bed0457f2f756d04966fe9826b821425b975608162286097e8576315d97b6358697e0d6a68b98e1727fe7d690422bc1b19031c424e3fdd3a94a27c10f7597634cc862f9e30d3412fc0b1f84498bcf75216237e82378e6215e6235c927b511ca858d2e8223ddb26bf6a715b399085ef6a44ca26d38042f9d8cd95f6996a02b356ccc88c12d04ff3d995d127716a5060c141818691d044fc4d4a47191ccbc6a8f2d1834d0d2a081e0a50c77f50b41b8e6077e66492a5dff868af2112a3068209d41fbc0f374abff34aafc44ce63ab57d03df044f2202374c4dc21e6dc38c1d3403c70b4d39888f4ce71410783de8193ac5477caeb2946883e3e8b2c627cdc8081828f1bdd3af0d32811c2c2bd86bbd1d5e81c389623c9dace224466cc8fa06881035794da984c1de271aa6fe05b5031acb76b08b1353264c418016941dbc0d39e923252bae09d19340805ac0430aaa0800562c890b18502ae98c00c0194a16be066c6ece4f1e169735073a169e0c9946e7c72b23db64e0056e8197cca2ae45c216a2e21a165e067fecb39ff8c31f02db7a4505d3a673a150ad4f02bf2044085868197ee3e254f2c3d16cd0ffd02473c6ba4e84ec93065efd02e704557fb09e1a61b344a00238b19df02475526db6bd2a6b21a756816385aa93aa6be30157a05892073c67c4a1b6b68157851a3cf87f08fb590e4b125230a9c0a3f962a198396e5b1850a7f3485207652335a3e1ec68c1830d0db88b15ee053381283cafa1bdf63ebcf078d74650a279a07b35c1ea5c1a5f027a7bb24a1839049e17aea4f2f3ada5a4841e5860d18346ec0385b018fc215d3ca1fb227ff4315c0a2a82ec7c658b235ac8543e1cba8da6d94241f7f6250f8c9da3785f9aeb19862c69ff06226698bdd6b5a36edc28527fccc26d2ab247527dc4e69fc673d27cda6a20e98137eecd36fa1c1c7536233b6f0b802033ce04db861a266129d26962bc6016bc29315b27f2ed1245d4336e04c782b32e5499e3493cf2a03c6841fb3ec3a6a992ee04b784a88c77692f051ddf2d852015bc2513195611d35d6aaa5128eec647f5b56a75515253c4b12bce4dcfedd3c93f072e98c16437e7393144978153c55acbaf9091c09270571d22e46c6bbc5cc90f0d6ba7259b0ce8cc08ff02de5d0f59ff288cb497684a3f288d62454698c9ed208dfc7c4c4d8d6446046386e2a9938d59ed7cb9621a3a4be45b89e3e62614977c7e8151866ac083f752c199f439f45e1087022bc8d361725a6e70046842753c8e3912e961fe043786b629b4775e45897baf1580480066c0827e638f31eab379331857094f28d2282ba28599110bebfb8679a533984ee06e1faa7df784a2109532a4eb020dccea3d1ae2d588ef606c26dcf6427137348abc908ce27a08a2baa4028f807148e820191cf554a25ee2f881e5b366e6c5163460c18677f705466450a9e4efc2b48460c8f9309603f38e9d229f13732c75ca23bc37df0bfb53a65aed85b3284990f5e4c91f25bba2c92e42ade839f2b258b144fb1ec457a705b2e66af93317948795db820738c0737f6a8b5b0db38f3cc1d7c8d09b2f4e9499b276d0747247fe7f55f49165307e73dcd7fa668a79398e9e0049dda9b9269e8b0ec1cbc4b2263a5bd868925b21c1cb72031c996c9f94c160738389ed643a284cb9a94f2d892610a0a64d4a87180a302bfc1f9509e9352721ad97a35b01bb80d9ecabe215a6d6f4a7d2c3efe6594d34a6036f8fd1d83d26fe123c7908d81d7e07a59959b6989b6d352c08ad5502e380dc768f0ba42fd9f5837259f52a3087c063f868b9e83face5c1af2d8e27a530cb3199c94fa47290f15314cd60297c1b42968923c3e32193cb5bd213646d23192cf63f0545f874cebbd18bc334f37562187c3e0e68a9473796d60a8017fc1db1057314b24e83e95bde0e5eebe92a1be8d18e711577181055c008b62234602685ca006067ec05d70a27f90eaa5cdec84c9638b0b5ec82183aad024cb242a05de82ff97ed7a238556f264c8d8225935e00ad68297749abfd8b1479bb02080c5c767815e86cae02cb82a7e1fab3544cba08305efc5efc7ca3ccbc77b05475f144d5984d20a5efaaa13c9d982ae500b81abe056f213b16537498d900da682db1663c8e1e92a473a7505780abee6b194dc3676866570064bc15953d2d476975a70143c119fcacd4e4957d79c01180abe894b49b84cc8a32fa98606819fe05ad2925c1da27b9b9ce0768aa75322e89be0e4702d4a9652af7d3e13fc902f3b459f670964537e1aa23225f8257eda5b593c6bca24c1ebfb7609227259729090b895cafb45cb11dc129e51722419c159f71591d2a5c5a0e422f893c3cc887896085e8925d99cbc1c82e356ba426a0bb2328d4278cec4cc59170437dc25d920820604478ddb494f495f7dd20fd049be82187549972cdd10d8078ecabeccf8cd731dae1eec296b8a6125eb2a2b300faa05bc0318b00e3cf12e914da7276979850e38b8912b82a61c2c05dd4155e87883179b22c66c8dc943503a80123adce0f6267d29a4c72449a536e43108a5b24b86d8e0c9fa091964f4aa0eafc18d6174cf995cd99c470d8e29ebffc8ad154952d2e0877b65fb7a4af371a3c1b5e8295f9829d5ec9f618f1d66fd5bb319fc0ef7d5b76e195c2f5db57529850e4bc9e0c72e8dc1ff97601754bebad4a318dc0e16d74169e5536618fc8a65d69db904066f8426d9d162fe0bfefad7fc08ed292d52bce0e86ced295765911d2e4047179cf4b39d29f8c4a054cb0547520e2f5254ba05275577ceec5b25de69c13979096a5d124cc6320b9e79acdcc93c7fac0db1e0e50ae535c1fc3bfc2b18b3887cea92c87558c14b515bc3838e2484a63aaae05c6cbc6b2a6b136f7550c13b952f9575cd989da4630a8ed4707a64d2694bc816d02185cdbac5e6d3e69c76e1425190fe4d1e3aa2e0c9bacbeea4de27f6d5010527a6ab9312924ae32b3ec13535225d4a224c438713fc3991627f976966868e26f86bc97250a9a476b6541c3a98e059a7d121fb859492c56ee85882973168d7d8339e2bc494e085cc764970e444521a495fe78bab03097e7a1a9315561164b8db2f3a8ee0a4555341639a927e226b043f89ace5ac4cf113521e0b83046fc36ac66b9145f9f0a8c107e82802ee2b9e5367b889e0baacf5abffb7a83a0dc17593f57dfebe103c933ce22646ce0860ecd9f8f81a32de6383e0e6f2cfb5ed1f74ff670bf41fca1d40e84b755a103155feff159f8a8d191870e142868c3fb5858e1f7879722c314f736bef1d00afe8f08117a22c3b2b9ae9a42b65343260c6818e1e38faafa2ada5cc29a98a103a78e047fed70af39aab4d657fd0b1037f3cfe4ce4d2f6193e2074e8c0512942f248c84946de78ec1b1848060d0f1bffe17103c68d13e3e3868db3ffa071b0380b74e4c07fcd319f122296699a1e5b36aa6cd8a05163c676e0c03fa532eaed63d89e09173a6ee08dce10bf1aa90b173670c6dbfbddbed2858e1ab8215229d3086ba183067e768b2959caaa15b9cb2c74ccc039993d496267574e4169850e19789a9df3896d8a359983644ca02306be66a98ed51f3bd6e4fc084e8c0bb8e88081b3592d54b430e227b2c7566575bc40f3644a988556c50516500505ca8767870b3cf56839ac744eaf53f1d822d6d10247c373da984b253c88a1d0c102af849d6c994b36a16305aeb645912232b9728a67941a58b870d1a1025f3ee7092335877b97669436b4181ca9702c4ccefd294285d8d55501385081de96b1089382b06920c682e314aee949922a0935351955b1151ca6f0ab440a09279f277de5e31318384ae156105b4143d8f28a118fad1a57e02085633523c34c6c686f6010bbf141038b068cc211a923c88af045e14c922242ce1c47285c4d77e1ca2e67cfa701852724776c0b42a6eda0f2892dfce8643e6b1184ed093f4c770ccba627cbd59d2847fba4b5087070c21735a1752adadeefdc8427b3ae84504984000e4d782794b2ad1899744a63269c8b111b4234890d0e4c78dac62c42d4a44bb849349beef48921756c09ff84a99032a58c26e3ad84636a94f0181a4a781d3d2d5586568bca4dc297d31812d44e9f9d25097f924cf1f3d59cd28b841bbb4d434e2975bb453820e14939eb9046e7b3283548e55d80e3117e0a4fa536ce2b8588f980c31109e95f318b470937c211e59b6d92ac96d41cf28083117edc85aa88162af66d16e17f8e0f69ec62361df3c72bc2eb5af3cda5cda309513e812311ce466a35a55b5288703688f5247d17656374091c87f072d8d0f983ac18c251f973866cb283ff4c1ac048e02884ab51a2a74b92cfa2508083107ebdd7c7ba89060c0f1bc5633d6c1406e0720cc20f2e9fbfb54af666cf78e01084e7e15757de273ec4f0092ea081f0fe726f65c89762a9dc951a3800e19a644da7e9ca44ca315970e0f8836393553b04a5a1c067f1a17ef82fdd5273e91c9bf13660d0f8f814c098416346192038fae0456a1fa93193e958cb01555c514503aea8620109b8820ffe8ad44a21ee73ecc11fa19485040b8d0b1c7af0bf4cc812f2a5994a270ffe570a424276f5cbf8e0c1cf683afb838816438adec1115a5385b2209a547d81f325282f70d8c15591355a52ced1820a750b8e3a78ee932447073784204294a0193bbb3907b5dc22a6ac44bbd772d3e47349f979eeacea83430efefaace5aeca796edd67408df21e49e088831b4a4e785d1e4942da58b87001073fa74c96b7e4ba44653b071c6f70d2880961e32a2cc5c6e1064f3662859114d428e06883ab1dc4653505df9e240670b0c11bb1c944a4f9f18f68cca8fa181f379a630d5e90c9d332ecc400871a94587e7ee12c29515083c68151a37c98a06970a401b5213d68c0667c3bcb3c9a7aff0c5f8468ba74ce1215223318173a679fc949d17719d06f22d9b27a50772d1938b1909ba0cf43596e0ca7664aa69450e9a7d9471658d662704ca9e60ea547b6c4e608835b21588e2afa0406b762d366c5faf7b036c717bcfbac1a2d5a928980c30bc8d105e4e082cae0d8c27168e15cf46981230ba638b3d790add13f2c5cb8508005aab0c282a573aa9496c71605c6c071051b21e0b0829384866a9590ddb1ed1b8f45157c3f1935329ce9909dc5f8b831e397830a4849e293994cb29462108e29b895db5394b469db4cc616c021052f98696ccad416168a821f12638a295d4c53ae818273dac944fe897982ff9f49ec22974455db098e38559f5c2b37c14b1fa9838fea24d15e3368522dbeaed12538aa4923871872c7b84f09be664d1964bca7f8a02438e9eed4ccc91c6a3648f092e9515765d511bcd58e7ca7d41c46f04f77344b5e31e8f10b9b1c388ae06672d9ea77f5f517390e1c44f0b2544e75ec30c710fc940bc1c4d3b9687f7956e010826f32e41ad13db144c8458123087e8a955d43a931bb60ac7100c14b3fd91a829c90a2deb0f17855e0f881973ea8f4a035feee660e1ff8766a3287a848f9fbf81ba9c048e3e8819bce3f991847f051b4f8f81bc50476040e1eb8313406531a417da56a077e2a0bb964b5b27bb21e5b37b6a0a103d7e48388c93c8f90dcb0f15b90e03f72e0a78c9526a93735fe9cd246e0c0414a8bfa6b0c2bf90b1c37f032a2876f3ff1fe97bf1163468ce5b081b761a426138fc7d60181a3067e8d929ab2a7947352a15263c6dbb01f70d0c06d2d99f4479e786cd5d0e2c383f4806306de570822a64bd9356d5b72e0908173ddd7f559d6a3a6e60d1c31f0ed3cc914319b698a761c3860e0e493e899b3bf932ef50bfc0f31885de087d8224de42cb1939270b4c02f99616288861c4bdb2c70b382fe18d45d2e03c70a1c9d844d4e41066b13970c1c2a70fe4f9c98cc7662bbf3e181a753e1a89a2e8dd3232cb2060a6e64a3c27349a92a843c9a67720e51d0a7f0f49fa5911a03e3c68cd722af4de16ace9423f667e97c7a19e5068d1b30766dc4e8527862538825ed9498322906b29811638b2c621852f8e7bfbda53f94aa35796c6d25a04781764da9219f685138b31d162ee5ec352517a043e1c764b96e944a2f761b50f8ee1d3373259543ccf127bcec4beaf539acbf829ef04ec507615a64b63be17d10775933ade2020b581acd09ffac24880ffa3a597a1377b2f390c3dc7e1b305050a69af03d8944d7f2fb70492913fe186545153c992f2917a9fd26ba440547e68aed18373ac75c9a8257127466392529f8f295967d3bfa6a6aa2e0ab9916adfe40c1af302af295749fe02653963f5ba44ef0522811646f8a7661625634c179cd20b6a4baa93395154c702375b2d0d18446dbca8a25383156a8ce9f23e7062b94e0cacddc899cbe5cc4dc63831549f0be236ae951ede5418a047fd285732db5fab1f1086ebd06b190326879248de084b439ba8908c92698ac28821b6318e1f21282b23cea821544705545f22499290b2460086ec498838c2065430e3921b8997d924c82b67dc8f218ac088293d4989890e735569855b00208fe7f0a12f3a78da1ec342b7ee0290f2d12cd323ef0c373e610b945e88e392358d1033f98d091e6237ca65c78e0291909b2c3db3e5a7e0a56ecc08fac6e5e62a35c926507c10a1de400cdac0d9961222b70406aad529355b16fd50a4d729b3d92989029c60a56dcc053c9f4cf7a26d9c00a1b78d92185d4397c6ae0a7aafd67caea9883b8460c8f08d4b0416660050ddcfeac315a458d51736a60c50cfc3239f330992517de8f2d6e1419f8f9bb35e4920d1a93fa6560450cbcd1a72b9c3eebb22f6960050cbccc88b121975039721b032b5ee0e64bc1540aed3992cc03c10a1738c24db4ff2cad4b8a5559d102b7548731b1d43ad5b1f32580712386591d58c102d7479d0611f6b9c3775b02b36205aeaa2493612d74e8ad58a102c7663507eb8caae2b117a9f0848918d9627c929945859b2b9f6c771b778f120a60e1c529fc5c4966648a6f0a535dc20ca811e3cf5ba0092f4ae1a9ab9c84d29247e99c2185972cb6ef5a5446e1c96eb988c29154b9da3689b0e1e95078a3effcc5340b0a4f9ca71955d9fc8463172d56a9ece92dc9f7c213befff6e80a69777ab64ef86d1dca466f665159e184331769828696abc667135e073b2bedf069923a4db81962867c63ff61f4fc22135ef66493bd44102afc7a8109d7739aa70bba346aa713e0c2c58b4bf82684984c2b99105e58c29149d4c4b79570be5489bb9141868c6866f1f11170e1e2b3f8780850c24f2d9ecc2b47d59aec241c8d9d433e95743e5d424978326a94f570991934641c8cc18b4838617285f1b9ceaa18e70e5e40c29f20ee6ed66aea830d7814a304e5868dd722860e5e3cc28df9d3ec3732d1b5f2c2114e2e2529d3470ba6725023dc8c6c21abc16e33e60523fc9035fa9a10e7361e3e5f0218346ec09811a37c20b42dc6c08b46cb3a965fad0827b59990ae59e915a7c77e28035e24c2cdc946df7d10c2640cda8c52c386bf40841f2904112d7962fa701ec0022e5c9c0f172ecc8b43a0e964287861082f97ec104e2e8482f31fe76d84e045213c9513b9ad42e452f97d418874f0af9853fb2f06e164cb27ada3e6893904796c95dd781b2f04e1a89c2667e83c4166d5fa22108e441167a12bae7117780108279790d6ad1d3c5ae8fcc1bf0b6ba18225f5a62d7ef042ac5c59564c6229dd0767ade4aa3b880f6e8c1d456bd2dd5bdeeec18f6493ad82876d85aa072f9a8593987ec9bd742ff2e09b09ed2474c8a794eb051efc7c974fa61c265754910109740006162feee059f5e9b68beb851dfcd22e39b6d6c6d8928f1b35088d0fcd1775f0e546994e6a396c9a920ee9305ab583670efe4c8cb0113b87246262a346790f262fe470c8282129e77ecfdec716e73ff6451c9c1c3be4d1de2138b8962f3bf8857d5cf506ffc5dfc53db6ccb6c50d7e24cf162c8cd28d14c3c3060cb52b5eb4c18d1c2272f4b47ede1a1bfc2442c5a2877c9664ca63cb5eacc10b0b41784a10a9c14955324bb56f2e83333efec68d5203c608ca7f187c910627c7ae4eed1da2c14dd5a582d0ca20c272063f7baedbaaf466f07367a70ed9cd624ca732b8f6395b099953c8699e0c7ef22ee532eafd65aa31f84965f88afeb1c5f4480c5e6a8f57f14b316fa6c3e067660d22470e18fc0c533fb1d617fcb61761fa43506a5de305c7424c46bb78bae0562525d3051d4ad865b8e047744fff97ea42ce720b6e8694ab4e54ab58b4e087141731b25259703bc3640d3aca869b0b167c0d217bc9cc3262e2be82ff93d2a4d4398a10e2b682173f4ac3079163b24e56c1f1983a694d4153543d2af86121842431867461c4537053d09dc488f948c1b756b7ed1172143c9d31e574af4d2182070a6e4a8d6019c23d839ee066065b11b3133f4a75825be2a384ae145b326d82ffb1b7622cdc4cf047c8f0b1ddea6fcd5c8257be9293346952826f69cdc2db72b09a60121cb55491d16eb5c6a24870d4448c584dd2a9d447f064aa04cb5915134d46f02faf4571adae2cf78ae0679864b22a9c44703644ea86e06809e153e93f4fd12342f094a8592499536b7f2c087e66e85c2a9b0604df56ad4d2cfc0347c508ca627cdf24f97ce0e55391c44f8f9dc7a4079e8df490cbddd795190ffc983b889f98524ebed60efaf1d22149784a07be644b21266ee9429a2f72e0c42463fc241544dc4aee050ebc14d563c618baa3e731012f6e80382d23fc93a80137b450400a5060827d61032f564911f6a944d7e75ed4c05cbca001265d2559cc63ebc50c3c15b359651653aacf173270640a6ee1522687887b062f6260277801037cf1023fc5c8994425ef02c77a6ed4090fa59410b5c0959883962f251642f6b0c0974de2c459920de96456e07a90144b66f8850adc9c4f43ae542b2ba94b85234354f586900e5478659bbf84cc328fe4769cc20bc14ba68a291d6b4695448729dc10c29d78df8ad11f42444729fc14430521d2b4f137685471858d7205f6a183146ea7ec29d8c7f41555d4a16314ae7bcdf99a9eada4ad28dc54318f7fcaf3078d181f14a88e5078af417227356bf9d20914ae8618b73f5fd1b16263e8f884a34444866978b8cb263c7478c2fbb2c9a1d2c85557dbd109c7436804d1a2f2d8e2841f2546f54e75d98310b20a3a36e1072183f039a1ea4fc56538e8d084eb764188968e33e17b699325844ed3a003137eb778750e412dccc330e8b884e37e7df16ae20b3a2ce126994e54789914065cb8d8c0bf02d05f806ca2a3128eb0942a858dcc6eb5e8a084977d4d776bc9f4b9d2243c770d2bf7b66c412558ac243c93b9bd2ae9985a118d849b4a5264f10cd9339d28f8b8c11ee88084274969114a3d080f3af808c7da4f587b6d5a08ee8d0f1a36b6031d8ef04df5859876f90c041d8d7062f4cddbb9ce3e25ba860e4678bda55bfb357dd9252de2981dff3148495284d7233df8841862a8e513e1e693dd16949e14468710e1c9c9fa5f593a5de93984e7a21d4243d618c26b0ce15d46bbe4fd2985f02fa9485b1e21599508d104cb4e1aa2370857fda38899bb268fb5209cc91ac2a45ce14038a33de6928b0184a74a6a6890e13ff85fa22c6a4eaa1f9cd1298417fb641ffc9f205367171539e78f0f8e8ab136fb2061ce727bf0ae4d94ffa47e53dbe9c1b1b0c9832396530a19fd4452c4f0e045acae706ad2a614dec1096bbd9ad38f961c527670f4260df2178450d25207cfd288fc293a44698f74d0c1ed3fedeec1a37370f3c958a73cda9aa2b14343871c9cb429a80b32c97750e938f81a5a2b784ea9aea5148ecea804528512712c10c681188651104392ee1100e3120000000818950823a168349c88b9367e148004572e264e342a1822221c188fc562c130180c0482e16028180a05a3408e81409228610af403baad19d99c468970dfcefc8fd2a1403bc54b8279883a44e83423cbf1bfb159f3c82ae55c4f4e5a2293dcbe91f32991f564685e90b606c80e5951ed80e497dcf308ce0a6570b3620538f47e46336ce339d1a8bc08f980e67f7de4cf00196c2b30fdf1a8ca2d753ed9b52356ca11c2a83f995d37c85086016fd673a6906a88ca7e101c1571101696f1583c0b153a7e0a38141fec6fe67a290a6bdba5ba7114e0e587e7cf63e08dc5b959998be2ad850b6683e9005d1fd0ea4e27bf15e4502a9c1480e0eb1d9c2346adddb513b83740cb031f58e9c32c2dcde1186c4fa2444b2ca900a76892918c6b04ed9b6f91db141bc9699a4e3d0e216a40b6172ac1c1e7320969695ef10b7f1431e9193fcaba3ebf33eaf7dca44c0666e82b7918134c28ed7fc05b18c36465e4d5a0906b29547a5372061404acb0dae2fb1c6dc27fac0a9c0b6c1658825a462bd0702973d5ff8e85a0bec030176433b9950aba6d6c4097358af78505dd040b10b4941ffcbee747dfa2817efce54620d175d19fa890156533993e3006c8451cb95b352068d0871f248558cf1065c43ea1f9bafc21869920b97b42274fba5932b254e893ec991ae4afd00528d81abd8bb33ad50be278fba2260c0cb1eae3da4ce21bf3cc5e14710ab3d2630fe3420fcd1305f669db296165f9468279685fd1483aa17e3b196ff3d6e0b6d207e3776b0fbccb2e9c0b0208853c1cd39ef4c0c4f66c6d5943904d3373c3fa2affc04f2332d6a5906ae5d3d47bb7af8229710b843aa5d7903054db6a17891f21eb1ee9f286ebefc1bb1f443b86c9aa226075f0a48f72db41c7399e90fab2a15a7427d66c51633926b91e4287b2f1383a15a71511f8530b60c6017412953d3502a8521f1c95984607363fe2660c1bfb26d242ae1140738e062c47f7894141357131318be93e224e1d1c11394954a3177488c068bc93e2471e2db92338e00b3500705bb8be64bbc902b3cc62fbd17b92c50f3b65eca38cbc4a811873025da1a1f0a003fc63bc4e8f1d45ff453cc6637fe897089116036675a952ef6b49872f3ce32b1cf1ae2ac45fa9e736a21d06a0c6fb3865394b8d5e20e8d47053213edd0a3703ab1928e5803c0bae0645922d3aa727d2bb7e1549f9b2592fbe7ddb0a69b526eda202f3b7f04d548348b203013222b7db05bf1788d3af7242ee72564b4f478552adf7d04c6614314caaf12f43f6b919dc1110a7fb5f9179143dd1b9a14d0f9ea98c2ecf3751ad83f1024e0beb91f0caca13082d711286d72b722c2e4dad0b0bfe98b919c53f8527d8b941661b7e813cbd587b39f72e7d58e6b10d8bc44c1803f0292e9ed6a522a0aaaca2138d983c71cdb41faa8ba9ea07b65cb406953225a873cd432b130e34dded736b03e0fc892d29efcbcff5a7f66f090cd5eb51e0350580a68d77f4b66537c06377ddc7349e0d4635df88c3c831e5557acc40edfdba10018d1a56951e510fc28616193b00ea047ff78b288f9f2856c023d52025ad2c7432a3d6d6c22200c9d2ca53a66ff668b3f43a9389bb62e4081fb39b9273f8fa44b475a97f1da84b97aef72ce48a248493a082af511d0d36fc1a3d761dbd70dd291160d8276b3f5770b1e92d20eb957f7c3ba3500eece06785087026697c436c16a64cd448f12151887f3ac600fda282bb634d469c6363bd4c6fa83d3587ee1dbdf9d0475f6e8124b79f4bc7a03868b026774da7a6536e2aa27d0077983ac8ea3267b34c8c9708f71d9962c2c8bca40c7ca8a025d299564808b5e6e6b036922456dfc7d9a50c808754587a543016e80908c88c9e0076187a220202930293aab2c7317bdf725871b67365ea1c7d38c5adec0aade0d0ac4fd47b834601fcaf155d5b63ad5401480999a3d4f89080c5084f43db372ea8205dbb1a6a4c39617ebfae091dfb811e627e56180ee930b994c48b2bbf6deb2a4904a0c1bee80fb703042af13bcad59ab49673e07cf1c9c9129360e6ccdbbe23c860a143e5df50e26f7f32e91e3e78f6facc0a0050e607c38c8295bb746a973d037b0fb0fa9923fe55a31cc8d02815ab2cf2451e7a747407bd7b3ae0b09ba1390066d5f60e805f5d2fe2e67cf417c8be6622dfce8b4fccd28d25453e33d060e6fe5f6f303391f00d6d91701399a530840f8cb39603be3dfa658cbbe937e1efcd65b29722627b32995db17b996bb132d0888039c6f6db2746a6085c47b1c318c20c2991045ab3da201186a30ae983b9a7629edee64cfe688f22304bf1c10a3aa88173b6fde0db6bb06629f60ffa3c11a5a7ba9b8636df4adda8195bab8f7f01b3838b8015b10281199b298b052f3676fbd84cbde5f24f37eaae4d2a72adb6fdd977bc7f3634ce69c65d988ca0b4cb7219e06ecb4a1e88af18a008de9f3eda47e517a5cfb4c9332553ffee1d83362593feb8475ad123a77f6f1b55272744837300d8f9a786e8ad3c2765635b7a4ab5e82d6066419fdedae4add31fb028df40fcaaf97fb7be210d0eabc033be96e29185a024f03665c3989ceb384e190d4c200d4f3754cfd045f8a2dc85c55e29f80b9a7aac586074dbd77f82f07c80036c5815b9e3f2aa1cffef73a29b0890dc537b85dcaa7a610a147095f6560fa126c74c54d97f0ff67503352bb125689acc30982db8f280d3d326e2e916fd0deedcee345f89099c32227eeb2755f108abed7905e67ec766d34c7bdd4e9992e9bab0a3219430d60826f60a43989e9044494c2a24e4835c5239d08e5da2e0d65667f11302eff815fe8423bc43542f7c3ac67e9523a2a8ba830255fce31371c356d5f01b5d3103a4154efe9da361c89761cc6a21fd6936055fae031c95202a34379785c9a73d938ea57bdd5008150bfff1aeba7048c9f389244b018d0c44b20ea8e36892f1772087f26a739e1a03325448b2c0f8ebdbd3c9e902c3dac33604d24c4f9311f6a8246b8d2c4a2a6ec7322edf908289044e25fc1c71adf2f09050fc4375fb29090eaae5e872f5b0afdd99d45a0273a716401aa559db18172791e519ea9c32cff90f895e80c5e3ae0ca5053db7f7cd4acb02ac06acf06b910760e45cfeefd8e3c9e5a60e90b91720737a540b5603c7d5984563fcb5b62e78e201d41cf9f389a3cd0c3908598767c4bd51548cf634ca7d46739d8230d54f7a942ea4399cc54bd434a4097db49371c98dc6ffa3dda62cc588d1493bc0bc2764d190765d9138cf0f341a07635d8529d788828d741b310d8f36c3334e00a361fd4f69981c992012471d1515a41dbf295ae93021c32bb30fc7279e812825b1123db12af2ad263f654b6b1f83ca8b03f8516896847593f96ed3ebf38cf014050712c5bca76febc6ccfb39deac8a11886e48b57121ab373ba2dad3e515a53b58259238a490fb1cba0934b63de6873d65cac397eee112a19d530701bc85e5f7e8969aa503349895200a55e5a4a28d2968c112126db9d83b6c5bfa30101d7dd0154be8344dd231154e6b5c14c4acede0ea2611a35e317369d3c5f5134e9d36e6a27da8d177fc059e455b57185449bbcab731a670456b1b34baa9080a02ac96e59f70c972a27253b86744897945bdf045d3a280cb2fd72d2d3909d27726574c31f1cd6ecc3a296d8f8b85790d9ef173752e224b866b680fe7db91742f50eb5d3b6ca5fd64c71f3f21caf08a6b99602f41611a723861079f583ed400a3f1da38c2d6a09a245eb42e9386daa60e73ae5c276337b8e486deb7249e2dd1e424ee1e5880b8e3b8a643d6992a80fbf6ba74f58a155af1a8128cf1eb21dc41f5c4da34c50ae236c781c021caab21886e6acc40354299a5fef82f34fa6765a2ff1fd2bc942f3dbe2824a418d6e035b2728682fffb7e9a46efffc1f77dd43591b74ac798ffd40a05d39ff72b793a6d4b19347b306fa71281eef7b019e58c501f912bc551ce55df831226d7347d56bb9fa413179a2e2b08e3850a1708d26bf8b6852a2464062f054ce27e9e2ebc8a24496384798865310f4876a0f1ea1266f7791ee7911cb388ef69fef190faf9e178e81922af2ac7e2a8fe8bdf6d138b21ad1d0b93dc35a84ebd632eafa77f28593fba7c32794f522821e9f49ac3e9f5dff8019d2d927e9b1e99ceb521de7b7b049f7001b2910ef67818746b4b4e8bbee0b6f58be74e8940f984340b6d6cbceec6c807de0bf57505edf839d22a2585105466dd05e1963267a9d6c2849ba16b2ac34c6a2db083920629211f63dc0408321565b44e3f12789b5d430c4964423fc1c43b698bde487aad6f896154204189b3de7d6a033947dd14a042abc3fe2e29ebcf1c988417231e12f2383660dee1a1fb0b84b237edd570f9188dbf6b098b74b4a6e2c43f6db3a9b8335c4919fd17865274f5c2a0e73e9b29c12e256cfe1f72e00e9c5269abbecfe36e0c7d16f47fc9652f6e5b734787a0d81bb5eee3161a905326b51a6fff47f51501b2a82f91ad9126c43cbf4cfc1f6f3ec9c8fe0180a9814d30a66a29c29e0493653a27fe2889d95e9b73788c33d0d63e733fc797ca6f9b0e19c353a816eb1151cedb3bd0ec5fed864f1c11c9115290e5efe5b79eb97809c8f51f80cf5aab7485f6a2319d90c05229943fbb92a0a9766548a45b0ff4f27720b0ff70b6610f61794db2805b5c81ab945b15c305fa58da0e66bda395f973d704f056058d74f5d0423fd923fbfea820f724ec22c8ac0383d795be5eea38cd0f74328a818d29e8c26b8a325a42fb61be54e442e6726719536b10fb7df70c8774c33b4ed0df49f03623a46faa1765a8427088bf1a065c9e35f63cb6c08b6c3726a0cceccb2d26a77281456323b2783197cd7ddcd3935501ad33b71e8c43192468a117e88d94353e10f293b365c0f918cca01716ded8e33752b869d22202902394c78cdbe2a5ff9ba310f7112a575c1a03a2edbe2b117ffd7cad9a3fa5d0488f340044d2a7de7e4601b848cb5d4b1d18855f2776577fbed517744a411e0c73ee33e3d02ed30f6fff81f1093ada46a379ae80acca926a22ee65342aa319b5ef5db4b8ef31042ce2086e81b1240a64016760c8018654d1decc2b1b2eee91e90b14f3883d0fe462fd03059109bd22abd0d9c228fa20b5ee7d5bfdd70555c8989b3b455da8c21e1bc600426a2aef045489a6b55327150de0aae2a9761c80f50c9e293f87e6a26648a923664364fb1c8ff77ae00e377e9d6840a96af1c8e870f12b7adfb6a0645358a44f4e668d267a00fb82d6e9527efe630941c602f82118698b007c7c0867501e3442b6d2f8999824966e37b8694e2078be52b0a83bf632118ea52b898c87adb66c49dd99c6d5602b5f1989ae141be254d363038e6a3b9783bdfbc462d88ce0195dce738466e59ac4846d59299315086ccc884d11a54702afe6fe7a3faa95239d10f2ca00f6254f9af69271491890161e6e3a15c23c904c5d269747b73c1c7f9e3fae624575c32a03324723bea4c49f1a0d0bd553439e2ce39322ede4b6cbdabaafe1b72fc12ec551758225da353a43b264840c9f5b30be86288405aa3e07589d7c8029596e054b4d8e16ea4c1525d799bec644a857025b06997903196de0a0ce673d91e3266a171239f05cf3e3985c670048804b99c47dd3818dd54f2a932bf15549410d1bee89c2cc71c0b2112f1550d042d859be210c05d2b17cd18f92cd7ba01998f7b25789fd304ac9496ba380ba73eab9dab07e23b8c231631d467a01c288ff75a811176383ef4e4c05097bf899f635d887752af8e463b9cdac47ded1d1d970578be107a3386781d1a31e822409eaf5b26ae945e41f726d70ab1d49466aee277e45054b95c19a69585795ea8c6ba4d40838869795a642c71ba4ee711144dfa260b2fadd3f5984fa736ec24c4aca4675cfe69082d34712c449ca7c9313f3b523503a7266cce5df756890d9a8f129ff10bc61530b03a0904074d326d142cb64ed8ba662fdf31352e919e6c8a6f1a85b8b664723b8340ecca6f64662ce533d5bd19fa8635b95e503a3c4bace9129388a72eef79a504011090bb423275520be670b6197c4048ece42497105ec5d8fb31c38eea6c5b42bae994506a58f3443a285ac21474df1d5073b090a8b29d9cc4e1c80ca6536366826080489e1cc7c3d6f3c876a1703d101656a3051a405d58579113a9d48d0c4895128d5bd6e4d49ba646e67b8a0e649decdce140d7f28583c5aaa0cf480dbe5050eb8de1c591490b4d00d549c227f077a16783192143e44c2f50aa17617a4dba0387ac6f9147ac97d445137a861e11e9fab70ccb275dc24b156cc1009bd0d33f96dc228e9e0682e42a04597fed1397910bd3b5f52d76369cccbb066a8b068874ec1c09e0dd07c1b0da98f3b831c0a98060702f40c2599c80bd3ea74fd77f1b4bbb530b0d55bc954a80ab1e2648e5b0b2dab604197016f4a182aa9812a07717469ff1758eb9be54010db7319560e628a94e520ccfe211cc6af54053760c55665e4d82166ae58d98844646ec3730c0c414c3ec40190fc6fd7ffca8853d66df05132b80bf66e9bf308111aea868fd7ccef69f51ee040259945a4131bcdd2d3c203842996420b243579dabe168b68c68f20beb329357ecfd9fc490841e21c3ac55be48e1d32ff54095e18a527b289c921036c8bc3a7ad40b4c5aa49eeb16944c4b7c400b2ce8189aae266224d34077d50e7cb40e6cb413e06d230201e2826e8dd413f2f117a680f065022bcf1989a026677dbb32175b4f1a80cd8a1eba286d5d4d9b88fb087963730a2e0daf6b647d26c9ff1cc0856a1dc2fc6499a2efae575f4d8d97608fa19df4db1a32b4d8a605d037d321e5b1df563c2cec5402e6f5836d2b5284c48d326671ea7521e975fb4b51d77914385f416d70344a303cbf3a4960460702a2c2a5ebeb8c0f42249ebcce9b79ec7a25a6c58ce10f6e65225acb11fd9ecfe41215bb71c1f995977316057239f9d299d5ad282998ba9e85df2b1c948fcd249a4d762659e7b8bc0fb94402ca2a52652da2107f4e515aa06176e16ba88b3654f4bb66b55eb968c53cf9e81815881fb365e5e029c2c6b4c8368206cc496f42c89fc3bf04e2cbdd0cc9318e81043388c772be07a1084a13724289dac38c54d02fb1216e85da8783ea419e7222ad08e874aaa9e0c2a7470e7767a3d4fe2a1432cea16748ab058a2db3d863fbd3ae3f1acd677e72a5b168f255c83b73eb3570eb0e74a626ae57f15dab8f33b3a5e57bba953ee699b6282240fb3107c8ba3232eb87392e05ba04e95bb76c96c6791bfcd769ca51cfabe87a0fe14af7d55c239a66085974cd7f5f3cc1e9d380539ae79b32ff4bd9d428e401a95112da8e2dba5fcc8f49a8e602f684a7fc9d85ac8fc1763aef9e98812c002f5f35a47a542c516cfe8e7363a430fd1ec05902c0a866a53a26df856097a1cb022fe882cd552ac243a121b509957ceca1e362033dd91e11a96f07f6808cfcf69c183307dfbe2fd6b80e53cc7fe599a53959ec289ba8125baeda55d1cd7ac081880011ec3a4e9d92ba1f349dd4f191279452c1cf20ad03d3c75b4db4556e9a45e6c7592191322689dba264751c89aa109b7f9ec21c0a6c915afdd7adaecb3cf5c424f65db28ab355e9171c5c927323d2110724a1461f1c1a9b33af8d5bc8d0b5a60c8f2235260963d3804224e193a4af24b1fd7f1b171fb804a626af31ce4c71dd2144182ccf87e0b59b38aa714876c4a5e4f0a9f558f49a1d1c6939609e9659dec99da2c4f910270a2bdfcc90f4237f1ac882b59089599b5b520a77a7aa8857367dbbc6242bd56ac93cff02c58ff37fb6ef9f521d6ac58c05301ea7e6c11eeb3c2b065e54ca37cec279498382c5ce554b780cce47020aa53db7a41469f17559ebb2d9934bb6c50f2443d7bd1fe712952f5ba8e1760c2e3bcc3ea5776d4f40653562e3274a94d0198761e406f6ad26b67fa646c4456c3da5b202863d15d9b281db4f2a97e992876c144752daa607fc87de74459a65f06d205ee51d8eaef36b2c0349e39bccaed26cc8621e84918a6857fb60c98511475c9c0d41a42f2e5882404a8d62a81b3db1b70e12d46ea0e88fbaad1464a4df0aefef6f6ca725bd2097e4b1d9d78b43bc911c26364ad39a91dd98cb30b691ca88331f2d6166323b5222e3c3265cecb3a437dea621ce8ceb19c439c6c3fa5c0b11f496da7b51da61cd0f46c5ea1f52729ef194414074ba204a3c33472161ebbdd38a29c64577b4593eed8596fa25aabbdf6ac41f0c4a6dd200f2f45c771de8050b5bbba7a69566473d87842f329f2eccc62e26d7a9081c6e9feac280862c949e65c27e38e2e2077d8751b711d1c72ad0aac283b337ba4aca45dc5f7f76cbc80a7e27266b97c6d3112303ef225c08480fe2ef5fd5c1ac466c3f32c554d88161e05b767077d3411122e046fd3099bb42a9c53c3cba3071d162022ad248972b615366b631a68b11028f3a9beae745c283751d6748f5a12e762ae382691e81e0f13bb0adae967c75aeda6b5ff6e251c53c1cccf6e4a30c07b695c76533cb12b4c2aef6661583a35e3daf648e476378e2b854725ec9ed5ae6eefc8c45ba35d66b19b5a03433ac1606a9511e867af78726c7f5009cd67321b4d9c38f15597c5d4eb7da1e76ebec3fccffebd1a3a367847c924dad9d3b0eda1b3dd35eb0313e16f03549fc758998a60aaad27c9f3f0bf0818c571b1aacbcbe09aa0c4c31a6ba99150772d6b1213f40494d407ad5d783b08250d45404f4f982b4e44a224caef27f0f96a4855fd760a9430451d31140bf2c3db8006f33544ca984e22d905c8b026fbfd26b19c8733cf34bb5f36211a2a4ea7e4e3206efe19d9413af149055f96b350c2140b7761d441958b468d0065537f7287e8ba725d7b364e424040e76ca2f54d038241b69d86a260eb928df3e2244b2d8ef4082ecc05e6355e582efa3600c5d2068d91b9f64b8b090b6d8b90dd11113d37c0e8862ac4e7910b535415dbd35f5672290047aad607abe8e2d1cb59596c82b87743ec828d50b8d92634b98478ffc690d50ce5b40dff70ea5bca649ec575de0e09c83c7b31f8d0449026f06aa93a2adb3256cd7cd4ac0ec00238b65bf8c643239754ad85501b93491dbf78a110870ffd074fcf251f6b79384e04835cb9edf7a3ecd5162062555f122bd91cd372e527a9316241f6ca7830c4d968b641f22aafda0cbde22c80ee2d91cd139049951a2d6e349aa542a23a95dc30173dc5287b55d9626cbba28def993cc7372519a0cfbb453cdba0c72a34819a504d7aae5d2054ef8e79c0d84a994080a63fc4ce251291e4065034ec3672057bc363ba38b6c0d3da0490821b7386b6ec62d3cf6183066a8109b2bcf41890260df05612956317fda7e05ca8141a79492aaac816a83d99d940230acf074a4a36415fc62f00f3748142a7d071582460794531bf071844f1405ee5bd701420c8d1cb0c0dcc777abb4b05cef608dbba9f68a5b0325c6ea150d15aca8f2d50181cfa247f90c41f6a182ee720cd702c763e185cbe6c0a47864b063dc81ebb2bb2b71e1b57076609c68d988145040732458c8a158b8217fd704ed716daf9519ce3a1bac6dfe8b5c4ac5384b2233ade771fe4030777573085b0c9b7c1ced01eef257a24f64f6d12e5fc337914700435173578790a74aace5910d862b42a3e5706de969ac7eed4ea23ff482a911eca7c0a0255fdd931b443c05b36ada86fff4584bcbc3e49fdcb6035b9b091546e509907ab251e0099d9b4aea3292428e5359633a0c9c2a2c00bc72b2f4bbed903178778efc41dc3913757082aa6a2433940c80d2d96c7edfc1dbf39cabd053a64e05f09b7e1bb5ea322a4a00578b3b3a44c25375a21ba5953eba233fc5a7edbedc19bf2a8537e8f7950da4435df9188dbb311ef87bb62dd4766e312f7be906316dc960be1541124595a9d5d80141eed46731d77f51c1db44ecddd68368dd8f8d712a06b0aebc2b5e1201ff9152ae922ccfd037a41f1259142038a1687cedd3071c350c9325af0c1a10e0bd4688bf3f8f96f5928b1860e77e921e213a45d9f7f56414d8ad3debe3500b234184582e9e4307c9ceb1fae8e382e89b9a314f2d79751897850fea0ff73fe3ca8469faacf174f2501319fd37a97cfbd8635f4b9b9163a0adf2429cb4b216a52332b8ad6f8ada0ddaf345ae1667e936a910d148be8cc669027b18abcfdf196629981e412322f78c3b440b8abeddcd1744788a57028e6db569eb082d775008c864637eea782f93f86e19efb346bec62ec17a6ad38b82f060371227e790e1d372ab94fe9b45a809cf9160ef815e0f5180a461844f2afab840f6f1fe5a1081b5798abc2f9427e11e895350440039ceb170c095150af7a54792bce7c3e1700ed717334d32f5b85e61cd4dfb2014aa65542bd12e8aceb88a9e2bd9c2bd8fc28c8807cf23a683796cdde792978e72f57c2f8ee726a06b00b68c62fd1812c3a012a049780c4580216400f56d5a547fa20efa35e05d37213483b460f2b849f1aebb0f3521eecccad18bc72425bfbdad337a0179c654bf625bc7d5b521a1143748521178ec51abf47382c8cac62bcf5f6a48b0396c61ec061e219a2931ada42a85a50039165be41ab894893803512052e238a322e56ff74c2be80dc11a60a464c2cacf60ebfb84f4d6ca1923d0e895292790186fa2215d4a630d42fc450c3a23fae7d43acb1a7c0db64d4d53cd24ca5920e4c0caff33c80569a809d7e37813594f28abcdfe0d0e49bde07ec9a284aa2bd66f5bf68f2f9e9101400a0d032d9ad22ca09e207893dcd80dfe8da729f4a13ab8e6a7e6431127dc1b40b46056138167a7f9302318543997a2f40d279a8c3a3d4d25eeaf5b01ec69b73e53f58c70deef7464381e0b81c795345bf5c86cd50a9e1989b8f9ddea7ca087d6b0a701bd57c9c29d6e44b2c1a6fa1c057d4d997cf3555ca5dba0bed3ec0a9a2966df428a43b793ff0e45c7136020214dd535fd5ab75cffd92c89689dd1768f488bb990c3e1a7c3b94915c2e5b8f9c8df54b960f41c15f884996b7d42c61f44c44250670f3362702b9d192a484cf3a23453a56eb36020f87122724419ae6132cab3ed57684b9ba70e06e4bf7d2f9447b2481059c4a06f16bce2444e89a52dcdcaaadd5bd7cc9f6e9bdf0fc5785c793dd667426d0ee1c16ee6f5fe015eb8b67217efc441f92f703fa81e1fb01b0923f0301cf98736792469206d3bc10d8e4ba75878d88c3675aac00228f870f700aa4a9e1663f1d9f02c725a971654225e404de38288909272555ec1aca2493185f84e8ad8a54fb2fd17f86cc2db16ddbe78aeae33a545b715f6ab4b453a2911a9dba75ff43d8e5705cc9cac37eea4b59482e2515f2edcd80e12129603a7076ed5e73c5519a9a3ef30b047de5302a771404cf98680f5f47c147e2824ca8224e6984b6b57c3ada7efe27fd7556d27a62b1c6678868f46a53c18e3b1ec7343596df0d1852a2065fea04439a9cb8480ab8994cb18cf7fac2878eb156dbe27cf0b5dd7b24988895480c2195796f52d5c13fcec3deb93872b8e30e6eafd82a6f1ad88828f08a4aeb3f742bafd65c9219383f9c0ae6fe0901c42da953b550a0be298a35b1df193ee97fbb082bc6857eb1501a822d3e4fb18b8b7e355040b6d1faac9a9e0bee474ff1047de0a0795997bf5bd20e1a86a065ae9b5b1f6e78a03235a469d4827f9b187fc4c91ad22c4f8785700f91931fdc8c496a9f4fe9178796a95f46e5e034f3aaf4993254dc31bdd59fbe3cebeed4e60e9258a8db7754fd507a9bd30a996d5788005275516578a24044eda4174419f41c98f35fb2ca32ae2238056c5b30257ce78933529e3e40943c7347e70c7544fcac825f10edfd9401a8b1520297006f844aa8d12eafed14a1075fb6d97260b0c437477ea62451ecb815d984699fd83804db1a81025a7f409c6382d62dd77258d8a2497198a9b5090b1d3d4b0cdc43d028ff1aee90310a268b1ad865655f12b1fe2b7756e574d8470cf16f1e27e2d62be094485c4974457102e9556536a813dd47d2db49e2aadc8516bff734900d12a66f25f23fa1b913ebac0849390cc4f44186e7fe3e1aa5f006eda9c31523c650476d4c1da29e4334ec22ead24fcde45e131f96fdd3b2ac761e9dffdc796cc020308d7e8aef848491da7d6c10140cfa40f338a7c5d54e2c38332f552436b1a774492e1189209cc96b526fb501a9023da45abaca235909556e1e61e70acec6abaeacff4693d8aed3626401daf49b5a0d081a46853bea97b116def7af6b80627146955c2d22d40034c70621ca6d35c2609d462b7d7b9590c70806fa82e14617001c548f1f3d625b74ca7393589ee0ded7dd8344d66a0b5b06a946eb22b8ad26aa36a375a89e1b77a02b704f8488e93c4a5ecb6fdf061fca1a9271ab89fea8158647fbd518fd1d483de4460cda6e62f9546ef165294cda814508b8f9548e327e089cee90c90a5b8fbd6c1b7ec18ecd7e3817048640cc772df801a35f2927228450a5235907b38a40bcb7c7555b8421e5ddaa84a1b0470da03bb4da1c0ba412c962e22f86c76621828924440b0925e865cd9dd61b7465bf6e7b8e28f1ca4b520ceedcf77a22b910b035abe7fd10ac0fd171c396c09018ff248ecab1907080da93c9212fde3a4ee41d6c905ded33eef6c0aacd29919968d07f3d84778dc9a2fcb2384e916d756ee38785dbf6a180438097f1a78f5d815b20dec2cdc4054fafde1a80dc0096e4fa8cc4293ab7ba77508cf11c9a4496b50cda7774a4d803f6c554daa3fc6e594efa39315942983b42ae1cd4a965256ff17d12670b031c419967af207dee1cd08494c1e777b8d7aaafdbf05a21212d0c289dc73fef55f2df3799ea8774dfa292db57408d16c912a6de1f1a6200f3bf280735035e3c1f4ad45f731e3e90b785283f0024058a8275449a2c0e3da7d5d6527b6eb0b108318ecda4888e0c03b44b3cce37333f71f9098fdc10a6a0cb3c4614d445b80a250e48ebaa61372ef724164e561e88c2404f43c04b14e61ef15ab7298e13e55b8937120858ad56f48167b5780304ed1e173dc91118a6bb155d476838481077d5f0a29b711d223657fe3e61f1de2fc21d3f6083b8db2cdfe4ce28a12292015398baac4a90539145b00a3f8858420f9f916114e2b15e207b3ce599b55a33eb6a04c56391eceaa7c7b80bea65129d9ed5ee7609bd341011c578ce12150da397437e7f7a107eeb79ae4fe968a4a8192dfe3092908962fbd8b092e89b8c61cf58c7fdc092d25e96d9b15f4830a52709be2efb1859f5221fda0ca16b680788df02ce2208fefe0a9cb60a18187776c30457ae3d469c6100c7d221b16ac427f0a0c4e717f419773693590ed238872ed5eea58f46c670666f718fe073ee466ca330c9f1ea1293a9a6876a6be4a079abb83477c76797dd8b0667e81c33cff2c24950fe0653d5b2a1ca3f2ff9f25a39795368cb486c791c713f7659e43da68652d04eb2b2e12b528b69de5138c02640c7654d6c74dea6b2cb26b33f1af9fdfff028cca21214fec7cfa4cf261e83060b0ac641a5b974b5e32a56f858f0effdfd2a59b05a731f920fbf945cbaea05104b070211beda4210453169e0205eaec46c1884a01e06941be22e1262d103dff88715356d3ec7470a02fc6d3d8e8fd0c472b03fd4fbeaaa577c6936820aaf4652a9c468d1faef6a1c04b1a6786f4a855eb56dc88f94ace30ba253a187a276a0e7be0222886dcc4ec751c24d6f5cd68ee00faa460bf83913ff1e99b98f0b564155de6777a34f0fb99bfcb6cb898069c580e647a0af7d9c60bd8a1dd09a141bfc4391db8d66f214988bcb5a988b5e4b3d8ac7a227f56f5b3ef211c7d2073c2131f0b6ecb3e46bd89c879a5739a7149ddbf166738e06f2e3d89fe3f35b78c2664b7386551e269d3f958f9e18d230947e49b183841e43f8dc02d2e45d8aa0d52eb9ef23819ed63d3e848aea8eb27708f309f3b70ec03f688df5c8dba9f45f0cc186307924efb51f88e0596b911483a3aeb158aec8ea6e8faa9dd114229faa1dd31421fb0bfe52fe7dfec1f61bb7c5484715df8038923a6ffe46ee179e14ba6a235bb5fc0595ca62b16f24028c4a7f8c0b3432178b6d6e6698decc9ea0c9d89acc5d998c06aa221e50d2eb7bd4479792e2a80d14d1b088172b94b58a5255d83fe84858ed435dce1b0ace831193b7f2882b2d37f0c253d90db319e14c1e51b9d3c7b168b185c7b16c69d6f20512de74fb08c178754c084fe3881cc66ba69e7d919601d09b34205de935342c38df9b94b4c127f3d2074a3443655854aa0061157dc0fa5f25ff14d2429c9a0ad25638077b4fc63e5760c2505c310123481325143172adb3090236926477efc176f7a4f2f9675eb79c29ac5a0fc6c6c8cce0f046fbfd38c13f4816a9cd5c2bf924976b2f726396027e14704b85c894efd1c2624e0227e77be69558d6faf0ccfa36fcb31da419affc097b8550613ccecaf57fced0962402043c8c907bea1f59b941a1b939403f65ebdf6e61aa03f67931da0eb93ad323de0226af70838e873b035481815f850ae4fdc33306d382366799b1c5d63a3ba52c927b6d2da4ea8e90e7a6d2f0c3a1496a2d8f0df62c66f28235e7adb45d774c5a8b2a1fe806ae8d6dbc17f91fbc43799f5e9441901daa0ee885781c1034a62a99850103dbc4d809c04a9c4932c6e42b220e409a9d8f684eecd864653f7df3225860a27293547e6e7c75f2560ab175182336e91a0d8a876b1f26785c02378f74ba60feec0aa4a1e1517198d4dd9d4049cce9eb92863150f50c81a2b1e39d4adb5e1c1c6a447b069660817d9e99d3da9e2ad24ca655c22f871b63d2ece3684f40961d686deeead1e0344cfeaf7374dfab803c9df9b3aefc06023fe4d0375840e714fb3cae759503016e2eda4804d0f8825ef238c8ec6768974c267c4f2cef313544be9fd47f11def1267a43684bb2862604a091ce598ee0b0d3b1fa67c3624ede081b218431c4750e67dd7f8d3105dd583da386af9d72c17e043b49a50267a261aef896a7917a7dd3ed0b6a0ab77a879c7f9732136d2efa02a8e56e60a74cd09bf834c9ecc1bf812b95cc0184d60ba5a0994a6b6389828c8bac85b6eb3d23484f6b462cf20a56f27072f4fbb5d3e61e7b3fd0e25062808afb7420c3069d93de5fb1e6003f7c94fd0a132218540fb39f93858a28dca1cfe8ed4395fd2706ce746271f8eb4efd8a246269ba50fa27d8aed0c06c7d2bc6fe12b77ac0fd7ce3bfcb7fe6e2d70efd0acc50626e90cc1faa4514033446a7e2c8d47b15e6f833a78a88e56add4d9ce185f3e526b68e11cee46514446fc899c42a96155130bb53292154a5ecfb0e812ffc7495eaf4862cfa212809d66dcb482194573dda5cdae603ba29bfb401d408e76829a2e66bac823b5be39f7ea91d9e4491637f0d8d7678fbf64b24fcdd3f3493bbfadc0ccd8bc00a0a26be87beb3e2d05c9a5a6d722102856ddfbe8e39c5e293c86ee75ff46d3849aa587d4a22d43ba47e2137ada40c3d73b51762000e4423639f0f0cf3054f29568450670c8b0fdf3d9ecc12e6dca42b5ab44220b074d62fd671f4ac688da5551996be9a486a3d8a3c6a2bcb9e5bfcdb0d134428f2bd3802162a1c7d1f5325aff10e85634c528a1849c0e08596bffbe26d87bbf2286f5d377e5bf947a0d504ae841c44987a90e20ade4296d82071bbcb9b28d563ade9dde8d7cb7fbdbb3f6f7dcf8454caf9bde7d0ed0ffb25de31b69bad2b4e3d409af759df4d0b6f5d99eb06b369ee9e43ae2e5582317a99b02e1b241fc2d6056cc0024e3784e40a3870b2663903333333333333333333432c9e51329658768996524ae2a167c424b277bbe14429a594524a334c2604c9911cc9911cc9911c1080dc0acc0adf0ae84ec9aa928a7c3a612c61adeeaa50530f0c25bcaff1f35255242dd18d048c243c16d96d45a5e6d45d91f06dccef369de4111ec9ae4173772661d135c2671db2854d9d5a75244578ae3228a90006117eeb1037664fc1f55269088f890ff2822c190c216c193b994178c32735c944522128b9fa0003087fd6a90aca3353ce10fee0eb089b17f262f362120860f8e0591bf3584947d3d79d063700b400a307494ea3f2ce2d078b61f0e0f114a95ff5b11560ece0d331de86a8ad17923b3bc0d0c19bac748a5aa7c2c8c17bdf6eca4b69b91493738081833f63472479752592bb31c0b8814164a4880dbeeeb01ac4d5894fb5c2a8c1a769a96b62aa64a33c1b8041834fd753bab984e0f5a9d600c60c5e8d16b42711366f84e716003a802183f7ea94662d3962346cf7028c187c3acc8c87d159c63b190d06183078e3a61599b429bd501e2ec078c12b5a44ac3295de469b1ed0a205ba61830a305cf0d70455395373305a9057a6e041753413060bbefdece95e3705048c15bcb2af3963d033db0f3054f07b185d252c7ce4a819eae1452afe1c5367082547779514f1f002157fd5da5a96d08e56597d718af765674c776594a43ed88817a6f84293d0ca9d42d7a758293e95f029bac950d1e2a649f15cf08cad9cd828dec859d5c3b58a0e224b78218aafc3825292b6544a89d9175e84e2ddcd18644c59a3eb8a26f00214cfb945fd5add7ce211ede921b9d692e89027deee0e213c65e4c8e27ae14527fe8a6fb2948c868a8c72e22f0fb29526bd0895c64d7c9193922947ad5011429af83c6977091a3a66e24bf5b217548862e2d52b755163905fe2916e19ab91632cf1a79b54aa9365f394b9125549d62825be531f55935acc245e6f89e3599795c4973c96ce4e428e450b89c49ff1a61a41b590f822a8113a3577e6dcf823be706a1526323cc4ab1df1c5285144d2991bf1bd580e5f319a2913298cf86ed646eeb5bc8877e308bb79919b4d9b14f1b8a95a4a51cd523728117f1621c4d79c8c88cf846c116af1437c9a1a2e4a9d6cc79319e233133159255285f84d690b324236d4a509f1c80a263c7afc06f165579c9b2493b52409e2d7bbdce829cddb4534104ff260e911441c10af895dd6644a8bb274ffe18b99b4beab6b6cf9fcf026653a39671ddd48913e3cdb31e507a52de78aa8f2f0820f7f8bd05d569d648a94f7f0244db2d3e9e58910af1eac451ebe1499773975b56efe020fcf57d8932b61a532e72feef0bc8a1039417d926255065ed8e15bfd58b2317334a5e0451d7e8d1b963b040f1dfe4eaf1f593bd74eb686cc28788317737883ea6e2f7b8d11ba26336c9c3b1bbc90c35df232b527e521532fe2f0e57a1c0fcb4ca752058777a2c694edee733b5e2fdef06e929494459341596e6046b76434985b030be23378d18637de9af28a1a56ccb861a34d062fd8f084f5ccabac1b6d1b3966ace14d42490f6232995bd068b0a9e1899542947c100de117bc48c3ab72594973c10b347c51eda4b68c97051667f86e547b8e5b1f377d64868db330786186e774e73ca1a4594dc8dad5e045190c2a65f3820c6f9bc7c4cb7cc7f0887415cd130d0d36b416bc10c37395c266a305308103d4f0c01559a4095cf180162d320077781186af4d37774c2a966e25fb0c2fc0f00553ad2196cc8998f654bcf8c2e7e235ef95be6b83f9c20b9f8c1a93aab072571a77e19341a5bcdbdca433386c60312307b1232fb8f0d7081b53426b83a8340db6e6c08b2dfc514e0455155537e6b4f0c9a02e6b88270b963958d400018e2c3cdf2683e7b8251a6c7c15788185bfe4eb841cc3e45ad35ee1891e3256bbbb94c6705ae14f299b044b1ed3dee580c0860d0facc21f2e454ed2540816042140001f024026a821012a3c2169ddf4f1f58b297c16e6c2e4244752783ea40c23bec4ba4e0e1b5e44e1918b3519295323660814acc513ac050b5e38e18be5966a93ce4c9845052f9af0a684244b62975013f30b263cd24d3356ba68b6bd6278b1843b84c76832c53b132ff042095f48da149336671c26085e24e1cf6556d59db96b25a4c16610f002095f8a9662b9356898381de18bb3f2c192e94a786184478c7a4e252a34c8885e84e74d9888223f4b631c91f0425db9d359a22a090b74030243f82bc9e6cce15386f04208df7c3829da29bd9dd6caf022088f0c8b1aeaacc3a8d1b80b2f80f0db4c0a4ac6c709a7172dbcf8c1133d0539a9944ed835d5078f0c97ab2245945778d183f72ec7e5caa869716d1e7ca79bb2694fc48b5ab3f06207bf8818631673789ba0d2c16f6965bec2c4876a3c07fb0207bf7a684995a797e5947a0b2f6ef08830296cca16d2ce946883f7c5ad6b93901a928ced450dfece714b334123811c57202b9a0a2f68f0c9904d69d75341c87b2b851733782385782ae7361992a8c8e049116249d320e21e492cb2b071e3004e781183bf539093a5759dc4e36ac20b18bcc16484ae929462aa675678f102f3b44475c133a629889464b47b1315135eb4e051a62c55101d46c7a792f08205bf25fb124df139c31285172bf8e38a32f16591dc4b060a2f54f0969cc9d2152e9e15dc838b54fc31c52a8b701fba4b860817a8f8eb3b07b5c12ac7838b53bc29690e5fe69e42e7b20617a6f8755248f15b5574c5f4150928c5a76e466c6670410a3e5424bd1be062149f89d121f5bd74cc14228a67929055af775e16730878982b4a80a3a3450b2c838b507c17437d69c5e821970a8a4aaa98cc308d4d8bc1c5278a49656747d49c368458d830fd00646a5421811c353cec68b8f00461cf5a3de72cca6a8aaaa371e20923aeb388f022648083838b4d3cc9a4a95451349a782487d825ad338e1b59d828343c500339a0458bba4c7c66b1324a7b5d965063e2f7309d7142d878692f37aee0e2128fac8829b583909945967892b776acf34a259eb9770def9d43800b4afc9aa7e524fea02576ae158dc18524be3493ad97be483ca983d221794a31567520f17c58e9aea022d886e6119fc4a02e1ae22e1cf15548891b4f99ca9473182e1af197a4a821443149ba5b467c16620c9f27b4061dcd0f2cacb88180453cf1b3ed728a9672f22822214a75998837c488fbb83db56861e60211bf5ea60a99633de9103cc46e2944c8ac4cb93084934c0879f53815e20b119285106fae3c3516c6e3ce68107f78ce99342a3ba293041782f8645a4f2abf33c6ab8a8b403c1363944b7202883fc7bc891e3beee20f8faecddb978f1fbe94de453c4c48d9a5f7e1eda4c3c94b212c6a0af3e113af17234caeb987bf5682dcae6a46b0570f7f7bac181779305adc9473a4142ef0f0c7b79689905226da8d00d6828b3bbc57ba4aaf5350d1535404177678278d8cb43a7246589689705187477aaa5cc573e0b85123b9e9bba0c31fdf4c67cf7597366bf21cdef4a9b5415954eb1823874798b6ade614734c6217828b38fc195f458d684b736782c3b99f34c9c5f3b6092edef0680f9b94d8e8dda9b5065cb8e1159575d23a4d5cb4e17b99af949285186272910daf5bc99b70c9b27de7ace1d5305d93152f7396bc6170a186574f79d221a6ed4a5349c3a36e5a27ae965e4a21687823242145e7602dcaccdb828b333caee759927d08254a33bce5398ded857bd096ad7ec145193e6175ef1a418310f390e1399dd46a648c1c2fe6317c9b3a372e54d2d1e0420c5f768668dd9ca9ea48189e191d224a6a110c5faa14e67539f9c21f63a5efa04b654cb1563ab8f0c273ba26352421e2d324992ebaf09ada30eea1356a9cd40517b6493621571d70b1054fda478f776922c3b6f803175a78b56b2b33bbc538a682998537498db59c693386dd5c60e1b71029d505cbe9f63b57f8738873de22c7726185ef34795889356f1273028ccc9264dccc71762f7418e1cdf42d2ada9e44ec5855a1a3088f578c14bb43d28cd752e820c29f534c62f8183e9688daa84202c88a1a13b82b740ce195dbd251e388b1f3540b1d4278734c68c90d5949f661327404e19518c23ceb6590a01d4307103e4d41b77aa9374dc70ffe1c25e9886016dd5bedf0c12329e9a02d7abcd36d0f7e15715377359da083075f787cc9a6269282763a76f04d48d5da9d69438ddda1039bd19103231d388840c70d3e217458ede654154c668337c4824c4aada886b5190fd05183775c2c53c96c3185d4b80e1a7c5a2486a8ae234246d30c9e1c218630ae21193cb2ce644e14b7d0ad89c1935433725052b4c340070cde985daf786a6427a1f4823f4e2e0bb9d2c7056fbcb03b91a8f7b1535af045d970f141a82ca8acd43e3e3fdeb6aa2b53941a11afd29b853b56f0c594de947e5c303556870a3eb941e74a3b5992b01d004688918a6fd20515d636354d4663a0e2cbba4942a7145a21c629fe58f19c4692eb7892291e1dedf5ab53485072528a572c74690da9e3156290e29949315c08d1adcc7346f10819925b8c9111c51743e514b24c106f6a09c59b548226a14e07055a3e98f813bf7910e9d5f33a43863df1859cc2dbb6aa9d78a3c95139270d37b91e275e092373b5394583a736f1c69427dae5e2d204b1261e25deee5954c4a43627135fec889f63d89cd4c790083130f1c8bafb94c34ace20641fc4b8c4a7fa6924289158e29326f72eae611973be801895f8b5c406ab909d129f790e2584fa50329a64841893f8cb24694c41c75a8d8908ae48003e218624fe0e9a537aae244f6db426c488c413dfb4a46d8fe8a16d826874d83800241e0f0922737259565e1428428c47fc16c3e98a2636215ada11afc5bada4e422f72d43a9210a3115f86b04e3aa4ca91723b0e84188cf8930aa671c7db2e68535b0f622ce219f1ba9e44a7cca44163457c617238212b86a07469e8868d0f1ec448c4675d31bb84bb75cf32e5a8e1b147888188b74390f371e48511e2bec2033570a8ad4520c6211e393111b63697dab453408c6545e710f2b44d310af1d64e8a2453ada4a8412b6210e2ed5431c88b5922a525630ce2939df24ed6a42a083104f1041973e7b9828e29ac1881783d9dd01cb32971c400c49b51643dc92c9d10e30f7fca1d427ef86244a4a4eb19f335a80fcf65bbd3202787a7d2f0e1bd78b97453cee926a8ece1bdfb389141a28767926dc70c8fa6eab3797846674cf1f09d9ece24358a77789432efd618443b7c13eeab568485e7d6ea40481b8268d2191d3ee5969e332352bb39fc9a25236c4a5d59958a21872fae6e4778bc1c952a1931e2f0582e9962e394d88a1938f4f1e699b77b9d91d4d408d73b59321be30d5fc895a7a2265db9cb33430c377c252a7bd031771009395a88d1864fc43bcd2c599a648d126023061bdeea728f0d995b438c357cc1e3c55a9b18b434d96788a18667b3c56a914f8721461a3eb97821ed3b85483bf9a8000b62a0e11121c989da3ddde9442a8871864fc44cbcbbc896c27b1810c30cdf89add93b992dc39b57b142ccc598122443884186476cd2596e4c7369b6638c41afbdb2d28b4d15bdbbf514c61b36d2c610c3a7435a089ab58b11863788d420f1f5b22bc566e4b88170e020db801860703eb257e8868d1c389abff0985a0d4293a3469981050e8de1855f645267214a75556966e038ab82a38aac61101638d2bae02788c1853fe89b5bb21caa39c46ce1715b0b6a57ed6312730c2d20569e32624c160a2664da8ea4d32ce5f68a185878c3d5798e0b49e6a44257783ea7d50ca325567882ce5261e36cdad233461508ca2ca587dbac6611830a5b23c614aa1852f08c5aa5143c4614ac450c286c8c277cf153291711f543aaa4561c2586136234e10d325b4a8eb230e1b1cef39842caae0d2de1cbd4f9127443257a88123ead9139546734099f747b1169538a8437b6ce240f3984915d1ee13b21164304118df0cb06d97623c7457d8af08a8a27dac233227c7612bc4566156308efbd9eb4cc620be1cfae2e9d3e8483f09cd2789ab94b65aa09047354db104f957ef095e8294b21499d20411f7cb2e9bbc68385a09317a3077fa64e426b8753f2e00d6b7135af393b7823e5dca066411ed009c4d0c117357cbc6029839add25b841acb0220b09b40862e4e0f5947a9bdebb42482dc7c0c19394168f1f9477832f2b57a8464f1f74472980858d1b32288083a01b06c98861833766b074f77ad5adf5036af004ddfc522a9b6499120db619861200c02062d0e03bf3121bce34090f96193cf31193c90f665d15a6c1962488218347cc491a25da534b7644c488c11f52ab8a046133522f85880183af4bef3b8498c678c1f3d521dd767b249d510c179873be484f7a6f8c16fca2aa346d8eec1d62b0e08bcdd31162c49834a457f0ba6e85264dae1b49d886182a7893526963bc83d4bd30158f492c9d94dcac743af2000c54fc412439eb9d9dc36c798a47ee834ef16183618ae7625221a5f8ed2405bba8316c5726c5fb55996377bb098be81535500ecb008c51fc41237ae8749953e5dc0c2cb08a1a39b2c0000c517c2ad6c5cdfa61bd6e0423147f0a757b0bda0403147fb84a5954aa903656523700c627beb73bd938a1c3834a6f0286273eb73831083753266074e238f1aa6adc4db531450b428344802980b1894753884a619372d998ab8977f72ee8e75c15a70a542365225bdc62e20b9a3ca51075943813c1b8c49f4a758a6e214bee25376ce4a851eec603b60e302c71302af1dc7b494bc9d6348c48897783e9a8e711ae2aa8388e4bc098c41794e8206c628e31762b89c794d28d4128516962d0103022f1654a2239c48f81c426f24244c7640e02c62374ef5cdb21c8dd7a80e188ef4a45b114311a53726034e209daca2dc546af80c1882fcdf2e28be54c02c6221e39d9cd1e5e35959de70a92a34641337b80003e04705774e0c0c2062ae24b19a384dcd9ae1a546024e24d13d2e28d0a6120e26bdb0d5d0d2a47c74d00133840f3c238c49b8276abfb0a7d04300cf1a6cd749de4a8d48c1c64821a396a5c4170ec750046211e37252c5ec5c89887106f90b499f5253c5bcc209e11a98489cd19c45a9220feda532b71a77304490ac49b1d84d6ae1710bfa438adaba03392fa872fbc484c671f845a31f9e1cbece5d16555ac3b7d78ecade5a4a4a86b321f9edb24a289cba2d2096533eae5447a784dbc2da4b44edba23cfc5957bd35d5dcca7cf0f0699d9442738aa9d27beef0bcc560b52162ecf09ca564f3787617aaa9c39fac44d7984c87672e969acb5cca2a3a8757747ceb897a525b1539fc99aa5732e3441595387c319e8ec9e924705043d4bdbc6edef0568a154ab2e7b0987637bc9674ed94b2bd0d9f595acb2a29b957a9d960758ad1c9a4650d7fa518a994847d7dadd5f0e7a446e6cc6ec2ec93863f781821724255ac66d1c0291d83bab4478b16278071863fc6f27c0b719134470e00c30cafc9cea1355350253f2dc36a294405eb0a19fea0949ead6e67592ec7f07d7acea9d6846278c299ac054d6318be3bcfcfd1d9a355f2c0f07ec78c6c3999bef0049d52109fdc8388262f7c2ae68c292f88a439d485474cbe9bacd11a76e6c21749ed4ab6f0f0ddda169ed1901cc3c60ef1a4a6854f04ad92ac4b4bc4ceb2f0abdcb707b9c1c2df3a1f5737c8504bb9c2fb9567ed31a65795adf096f6988fe11d8c2afc2642540ccd29c94c0f15de7ab71ad9f30e13c353f8338390203f736d0e15216048e1d7cc0c9662e7534ea2f097ac549d911228fc299bd433611aff048c277c39924a2a053116b1e2ee842778a71af126aa2569184df8eb92cc35a92b3cc060c2a75d4e371246e35baed4470bdeac1995056fa67cba0c12fe58c123a9b6b2881d2fcb92e40f153c6a1d429a7ccf193b8aa9786298c758727227f374850d1c0af040c5df15ac6ccb538ec729de0cdb9ca94233bca5a6e05c34e4c64e53a4cd886842c6ab4b311b814729fef0a269db3adc784e33e0418abf3d54727ac81ea378949a6d8af5390975978f0e7888e2f3121627a62711c329d160b351e3ce2314e8010af4f8047a78c25a74e2d5a4e3a80fe98209957870e2b988c1667294532a8e1e9b78cfe463b864694dfca52d7a2ae826136f50154b9ab44f1947f7c0c4e765a6399ac907785ce251da71e2a7534a5e4e29c115c4126fc8166bf221ea85a442834d3f3c2af18add7d6a33b5a14d3fa3c47749f32289efae60aa497c396e89c7c9318c471a0a1e92f8e393909841729a31cb7944e2496a92e42c3a7e00bae201907825a79815ef548ff8b2c3e7d6edb8ecb27a38e251a99aa74c5f9347bb115f89942c5479e9860d0380c0860d06c8a091a386053c18f14bb2d0585ec2f258c49f95d28555f11c2b8728e2311d273645b6cf39d523117f259deef52945c49f43dde6b9440da9da2a88a971858d2b88b9433c522cbabba697cd134936cc8c12941933d0a921821ac710c70d62884faf4ea698cb408b16c804356cdc4026c880008a6621000d7814e23179731525ae2a75c983107f29a52636e7929a45e3318847c8521d2bc68826ad11c46f61b6a28d6ab524225890006d09d0026a5c51a30168384a804090814843ba8d2a5a2b08f000c4a7ec34eb685d129221028f3ffc596e7713536edc1b082d02ede187277bca55d872200fccb86163c6153750f7e1b50c7b3143691579250f3ebcea598369b6529d157aecc11ca3a7c94186d8511378e8e1ab9c5ac935ed8e85471e3ef1329371d2982895aa71aa3299ade6edbec37769d6e6d65472edf07859bc60ea3a4fe85e87af63c8440d22967aab9620f0a0c37326bd4d23ebc54d6167811ff098c36bf1a247abf090c3a37b9bb28427a9ad370db611a02bd6e2f024652187485dd798910347163766e0a8d170f8e252a77ef8201a39080492460e82459620c7a5c71bfa5477bbefced9ecec8cdcd96e9392a1918340a0450b1a390816ea86b73366cfd8ad153372dca8712347dfc881a30dcfaae7c4cdc915d29806f060c3579176c3955d7bb28e5be0b186bf2dd8a518626ac9496a7824e87ac795b8f031c6230d5fc7a870da334f9e0ef240036657aa1eab67aaf6719752c55093065b71c386016ed880408b1656dcb09168e0718673857d9b9351d21e6678f4a4aee7874e8bda95e1ab684a6d8cd0ae41e564f86b3e88f994a59d641dc333293cd65674171939313cc13e2f6f3b04f1a185e113da1d4f5ce50106df6abc4c4f6c6e75dccbce74c8cda1263feaf1853f7a45cfcc5c22490c79e18fe939da85bf5c574ce9d01cd3771e5c78e5ad34a82fcd167e3311334ef678b226f4d0c21f23c362aa18abedcac2afc973b762365a67040b4f183dd7b28c59c1e30a6f903aaa83dce4216a6e8527a6ee58d1225661fb7acf6d8f5dd34fefacaa1326c368c876cb830a5f79a43d8b71bbe8a129fc71d2c8d937a19e948887147e89e79ddeb3053b7307e011854f8a8c216f43e874318203478d1c57102b7ab328c10d74400666c4f080c227547465e722c5b1cd3c9ef09c5ccfae6d2201420009108d1926078e2c6e38e14f2574a53ab96d530d87d98d1c383c9af055c8b122fb1e057830e1d1a9f16e21f25842f23d99ae6eeea0c24a484497f075512fb3383c92f0987d251d46c60421560f24a0ae9a3aaf76ba9a25a29d1ebef5ebd426791ce16b552d4fd9b3d543408b163cc352e061846fc764a69b998f3186781441cb6bcd3409420f22bc21e8a4b42555918515e6c263089fce69b6ab1f1b56cc10418dc3ab4781540f216032aa999a2bfab9a51aafa744764c96238848801070038dc006038a4710de0f22babbe7c58d1804845f5387dbc70acb61dbcb82c70f9ed994a42937d5d572ba82870fbe5432b454450972356683470fbeaa93a343870f5b2183851514f0e0c117e651940c258f1dfca93ae49c6e6a2bdee7a183bf25eac97ec92307af678b74b1572958a8901b040224f0c0c1b92673889dd2e77183772b077593aa3677510f1bbc9f6336312122dee43c6af04d16d961173c68f0a7521f4643a51c1dcd63066f8498aa7234edee4e3ac04306cfaad89ec7d41eb63934d8529d01722009b479c4e0496df9ba696dc47b8c070cfeca2dd7924d729c898fe0f182dfd2278f204252d1d0b8e0cd61a18459989890d282d7ee75c38bda83057fc66be59c95cab35e8f15bc9d6de721a2a288a479a8e0895bb7594b5a2c9554a9602cbcac64efe2ca64e5542c7bca11846e1015cfa51341e36bd69c31ade1811a376c6c183a4ef1c556c8e57184b6f4515f4387293eb5a09bdd794729fe60da2ad7b69236d10472d8c042023ee820c55f952ec467501b324a46f19912498dc7adb39cf6ea3f7488e28d11a2c88cf7414b8a0f1da1f8ecf4e563a8a60314df0969721d7229878e4fbcee99514568b9db78562d6b7a008e1c3708043a3cf15e8c78a1365dcec7c78a2c70684727fe8e1adfe2e464afa1e4c46bba43e89444631cd36de277dbbdd6ba0d61f569e2cdb01f3a64b69652aa8e4c3c72437a4f3d79d15707d18189e7e5e264ddedb8cd69c7257e9336da73e59af0e96489f7c2a7b4b02ca5840c55e2f90862b5c52ba889214a7c32870bca65b3e74ccd241ed51c6cbe3d4512cf454e19af4c442b8f47e2539a539028499a654b21f1a70499354a5496c5f988b7638a39987908dfb1239e741b733239d621c5b0115f7be8b8a4828bd87c8c785e84d5a51472a2d4457c113b9d1a0941a289a5883758ce417a68088b6d121cc77424e2cb9bd3d3f398e29ab1220b7403d1c8f1de818847059dae63ce9a8e437c2a263d9da84663468d1a0607996123c77d87211e31112b5dd64b217ed788629d5721c4a7c1cc2e54080de25bb73039d496ba384d10dfa5a09b73ced511884778c6e950ba36a2e700e291dd313c543025c4c8fce1ebd028c965eef0c31fc2590c219cfaf05a54ad98332c7cf86dc5f4c553e848dadbc3a7262e268550971f497a7866b42d79f84205539f3374c46b83874b4b66be43eeacdb5b728696cb0a62a573874f77ce07252ac80e6f0a4f1a540625a3695d61a38639a2a30ed741872789b1b82d3277b26209081625b831815374cce1493a78d764eb986e9e1cde9c3266878b9b38fc3149309d26c51d7030b86709bacb0f90379c94b4d7d3dd0dd86cdc34c98e362c1a3eb43bc5520e073ad890daa98f35310db62a6a901c6be02a34ede3dbe5de33da7d50f27248ea50c39fdd2695b78e69f8425be575dbc9389e6ed102051d687833a73acdd8ebd60d3bcef07847db743a44c80c568719de4e625310359de3299d323c2996caa246758aaa2d19deb7937b7af2ea18c327d2a413b95137d7c73ac4f0d5c80d22696a0b1d61f854441839eaceb25b060d0cafb7898db36c777ce115d5dd99204577528a7778e1cb3839281deaebe8c2279b2e2c444409e8e0c297a2e6704a9b1232a9c816fe602a9f9f613fd3c223b1c222e68c2f21aaeec8c2934c864a624dadbe641d58f85d73941c4fd78e2b7c3a36ed8924eb614b8d05166446163aacf06d6c6bba5012f763ac8615351800878e2abc71734a58cae9ad4b880a7fcc287591b288e7a074830616dd31850e295c140e0ad7f1843a664e575b53b5aef3354d7acc49ad688b952a8e0e27588beb68c21b1a528c0c99b6aeec0e26bc6517a386a4b91d345c1d4bf85498092d42bb549c5a094fd29c724ac1ab8e24fc3242ece9303a5eeec4a303098f1691c377d48a6bd3761ce10d610f836f5e43433de32084433ff02f4857cc665949190d9e716e101a33ea5cbc0b3e15f44a85932b0d36ad7183021d65662fbe055f8e850695d77a39085501cf82ef54d4c6add32092f35fc1779a2be81239e755d0480a265a4c6252f1e64a2b55711f3cca85572003159f6e7abcd96a10db3933ec14ef7b7c3a2f8913cf53e306054020c3145fee86a0522c86951097518a773f04edc1e6bb4246ad387034016490e20f6a3129659390086adc4032ae90318a3fc5aa903497e23b6244f1670c418a906b43f15b127194a59382e21321628e295cd80dd2fcc4a72a9712b7314a265d92e189376de838b51c92742e75223751d3efdaae92cb71e1f5324a9813cf98aa7049ba77b4ee6ce2091b93b366d93234f1668c915a520449979b162d5c2023138fecba90d4246c6e486120c8c0c4dfc9444486b4a9c32ed9031997f86cd3685229e93437a625bea43a4af3eb924acaabc493f6d48890eca3044e0225612d22f1a8c76c2c5521f1e7645942505549e1821ef14dec102562eca55497231e9bd1d953cdd6e8dc88c7834ef22aa614463c1a49d5edb9bd883fac2e433237eb14638ab06457443ef5bdae4e5bbbac54a9ef24e22f2d3b9149064bd2358878a47a0a1554a4881e8287f82606cdf9d15652786c882bc4116207f1aa288925a4a8d1516341fc25394b7e6a0553590cc427f782d2b94fea335200f16ae89691d1ce7913fdc35b9622deb2c6c8868c1f7ef9d21d1522dc873f87b74ce531870f5f929d41c6142fa6693526c8d8c36fca325286c794dd93ebe1d90a92cb344be84a4dc9c8c317cb5ec34d909ec9c0c3a7555e24da86ee20c30e5607a3c3cec15393b71b53edd69cf98c1ed12ec7d5fddc141972b01671f8ec64a55a8a94536b82c31be3734b87e6def075c5ee98b194dcf0a6b415c29b6cc8a64e1b7e0f1e617573ce6a2c367cd1cd430ca52be51c3d6b783f5adce56e16b99651c397f1d497a78fa4e11316e36393ea64a0e16bcbe942797acef079dc44b9f8a20c33bc994986d8dee8adc864946133d913d95659131129e74e0b22abc75a0619be52972e0493979b29b768c1254808f518def1e8415a7dea8ab4189e78c943c7a0d5309475400618ca8a8c2fa80c2f7c29c5b216931fd2764746177e136b72b28dc6b1b76570e16fb3b2f40822c8b8938c2dfc71d54a242d491bab91a1853769b5aacc1555b459ae20230b5f9828496909d1531825169eec79916308d5142755818c2bbc6e96fb611fa6392659e1118d2157f01cbe23d555f84a86fd6029e9dc4989a8f089d5b153910d9e5c24630a9f57b80ee1e994218527c8482563f23cc3c632a2f0c60e2abd789ab520746440e14b41b2e7cd7b329ef096ceb45c591f194e50194d382610724d2ad70f1563c858c2a752cc1c83a9a9596994f069bd1867f14bc2771f73bb85dc20e15dd531d392d222568ef0ab4a5022785a8fcb1523fc2e12442c722aa3087fa79a9d1452c74bf288f04ec89d614396a894a910640ce1f378f720336d3762674d902184279776a80d5a31d9e4f5041941f8b4a45a866c1bd3aebaa206a902023280f06d4eef96bb432dce9a04193f78f77292d955114f8b45860f1e4972e521ab45460f1e31aa4d25ba6db9ba7603193cf882c9c8196ac21d3ca7235bc42052f48ec8d0419d5cb33d65a53272f06624a53d4b4c4a3a96327020e3066e039751833b6443ecdb6557c36408311d4e64ad3864d0e03d754f3a46ad564a64ccc05ac890c19b93bac6cfa6543262f08cd08ce4194354ec2b0306cf96976d0e754911b22d90f182dfe39d9e9a3811c22b325cf0a6b94bb2dd94bc6c321ac60616ef03192d78b7c243b096ab67180d64b0e04f6249688e8a9edbbb162d722063052d43059d8a44c59bb91fe399309de2c91dd42485d79da94df18756ca75d40b914b5c8ac7c5645fdcbdf6c662850f523cf28290af11fa499e6814df04b308d9368b5a8f8be2d17a524414a50dc5278457e9665841f166f4b0ef4eb2bc83f7f189377c30212dbb4eb80579e2cf954c8c97f81cf14e279e1ce2d675730c259438f15c14612aefc64dbc2a132d8b12593d694a136f7b070f276c729ccec904bab5620826be1c76bdd2d49cdc38b9c46b9d29c56e86942dc52dd17ccaabbdada9d49a4e52c5122909f8a8c417e488946d53120d42d7a205de7d50e2912735e550bd4a1ed6c724deaf9c239752974b84a40f49d415a63106f9e04724f80312fcf188fc7084b568c4e3399a223134c95c9b069b01222080c2181f8cf8ab5b276786cdba9c5cc4979386781692881d3f54c4974b9910f141d4ed26119fc6afd3b123640e9f45c4abeb559632c5b2b4ed219eb351a7dadd35c49f3c27bb0a7a32271b15e27b352152a6682871318478a4e5f2ac975287947710cbee7b595cde9ae85a8d484299c754f1410705f1a44baf6972baaac4e44720de4f1dc6366dc7e6d71f80f8f803a29f5f625e7b2d21eacec9c8a91fbe3b494ac9d29a1a97ab71238b8f3e7ce243b8c5d02c89a7fae0c3ee61f5807978f7e29a8beafc030f5f275195d4558330fd7cdce14f32544fdb878586f3c30edf4e2ca1a3334a50662466e0a30ebf670b6d5729c76b93c8f03ef3a4c37bae923dbeeda524165618bcf180162db0b0c2544122d0a2c51c1e8d12744829b872f8832ed15a1e4529d75c1cfe1465a56e94a3c61559cc10418dd3303ee0f0bbeba4d2499ec6fbce1b1e7527364ad2216d4ac902871bbed892b2c164b0001f6d78e2e6522e4285ddc56adcc881a38a6566c3233e7790a51a94e38a1a598440d7f0b78659cac9165dcf8b1a3ed34abd904a44b0cad6281f6978a2569c73d39937965981862f4488bb2e5d51207df071865fb4e6275d11a33ff830c31fc5d4a90efa596c4765f82c67a2c6b294de9926c31f4786cf1dd9f54aa86378b434838a1caa4568288657c75b3de9a8f31e74c2f0c7903acee38c896e0d188cbbd017bdb5ce73b937954586cfec1c3784ca179ea45ea3dcc89c52a77e78e10d9bf6eb93a90baa255df86cd7ed63dc900b5fd2a9b39df2ee630ba89aa48d25b1a2400fe1430b9fba2082484b554bc00a1b370c7023078e2cfc99921216e2ee49b2180bc7c2fbb95b221673b27207cdaff09565319dd495d7a8980408e1c30aafb6978e798bd389086a9c191eb8a2c6b9220b1b37661cd411f8a8c29b5367735123724c1b3b5ab4a0c277e9b2639952f998c2bb2563657c8b615388a59046aa701937d651f82ce27e9e7bd80ded030aa6dd6c36d14c1f4f7835c71cd9a3550c915db28123cf94d0c0b14768e0f87082364199704b78ab3229492a484b42763e94f0871451175b2b64caa88a8f247c33375bdaa63e79aa3772a40f24bc6fa12d3a5a444b8a0a041f4778a3e8989f4e8889331633fd30c21b4a470b3198c4bbf20e4137b2c547119e1c4be8789784061b09108d1b1f44f83454259eba12a743d86b7c0ce1530db38f512624cde50c10208405da151f4278ee8452ef2897ae8f203c9e4ac64fa5d6e993e77c00213f7e90e4c307f7d1036bf1c1036bc11f3bf82e44cd0f17760c7ce8e0b59c93b4a44be2841ae5e0ca1dadb6796bd1529bdeb2927eba9332e00307ef56c5864be1e467c9c11c35ac78944515a4023750b1220b07a0e0e3066fd0595693ce968b0f1bbc67f9e96344e676690843f05183377486a82fb5a9d13698c5070d3e15a71e6e6ea1c1d66759cc403758041f33d8c32cec42363cebcee632ee9b10c953cd377260e1820f193c574aa4b090446cd4e0c0470cde1c35699394fb070caa082a67e493eab097065b154404334a8040508105a063c30102f828810c64b3c1c70bf8d6b71d8d15dbd99477f794398e668607aea851825396e3c3051f8ec7a864f1a412712c120944721c06410cc8cb05d31208000034228ec5c201794412e46cfb140004572e1c4032281a2620161a221c0946e25030140c0543a16018140a08434118896229566a1ec35803598f341f2425a5513c8efa4a3c4bd607e7c118615c1232fbf1a46f27708415dfa5624dd47db02630c4a71af5e4765803970afef64ee206436b9f12e43b912e9f085f9196a7ede1048f9b16378c2c32cfba695021c2ee05ba4a0ddda798662153398424d665c31e09650fa4269b609e35d7dd3e58088540e4c65150c814c203a63d44669685dfaa359aac516099133e03420b2dc41f6d99a4cb8a8d8cd82d7cde21a743f8b78fbed273d69fdbdd5f175e1ef4de9778fd4cfcf93e7bf176d93c725fee7487827926412baf7f92c671e7c1421727ccd873c91e23244e9e3463204d388ada53ec370c496316190290cf3534c1348e635100d434eb878cbf9c0d8dbb2d1e744bcb22f5084078ac24b25304202b4995c17371d95520170adebc72e80c600deeede4fb084619656d76a8848d36069dc6c34c36842b755900d02da5257155e0d31d1e9272182aeae66c895aad06d889f11e9e1498d4a40093c9d87df9f3c004e813c1996846316e89ec762c35274343204250e07d849b71f1ded81c63b809389eb0cef0e09bcd4e468dfad7cfd3ac8d391468d9bedb2b749a7ea77f07671d732e4e9f7bea99bdada4b72a6d7659ac52097f3a0e80fac41088fe2b26b12499bfd947b79fde1750c7bb06ef3d01c27f27f7678f0cfddcf29b5c110e2f5d02a8e06de3291aca97e07139bc3409524da136854f87cace2598de37ab78c55743df77a9b4a68436eeef5beb2244e12f69f8899bd91d4ad6308552ee51b82a21b47e9b6f441b8d53dc3b9348494c57db2a50e993bca52d3946c999a3b0941c432a705b3c04ed534ab9df68e30d5769ae1cbe34dd4b172d59f466373655b07916b91aef90eceeecf68d634a0c0287f2cbcae42c7b1bd3b0daf100b228574b5e356dc09610b9c6a68dd0470a119f9332e12c3e23dafd1b91f75d3f0ec5e44ab9cc5a838659d6a629f6011a6b653e980e5eb74e8dafcd188381bd12b3b438ecf308f8eb1f63da4b99eac8bb171dc15932933954a90928aee967cae7d5c4910cf930a2cdb1689203d0c323c992a1f257f15cb99a1ba6d66c58850f990bb174f39b85690f72403cad3a2400c1b02b3bf13ccc5745c7494a505707231de6d8a9c184ce28ddb8986d95669255328c1e182506e2c96a1b1f8643747e6c23f31dfb766660e74766734b0e3d36439bc0dcccfb8b262c937118ccb1f16d2c74885c389ec4b2b64537eed8f3b58359c89139aca14ac53dbfa5b07ab996d2b94d9819a4d621bafd2764fe26245085c9156696ac4722a5f662240b44ba117922c21b7967a44a81a7272d96643dccb9ddfd4cb279d084430ecdcc8ea21f5e168d0637377d85026ff42e72b29365655990c1ea667826f092cc499c748bd05b290cfce82c49f69037a4b765717d4da60f5112e892d1be27610e7f48bcc5f00481fa73814913deca73fabf634871a0a25b5f109214b5f8096e7120546981e68acce294ad1c9a8e6480314138f6e8e89d44f7bd83b1eb345e031d16e84d73fc1487d42cf9e1beffcdc5fa124bba3b033353b894ff10851a9438e334e113570b7458d57c794f9989692995b2b73dcefa20e140dc16c575530c91f7d92d6094504b2662d5d11fa420e81fe90ea3123ccd99f4f38edb59ffee5a919a5db7a9614922c70a1207d1ec06e9f1841ced36ea8fcf4801aec93c2adc29d9f5685c3ccb4b4347928ae195302be9411dcd1d2d7fea1960043da05a471dc60e7a82210b777c32a075d9c1d926e548e8de5d3585557cb2b2bc82252d76abb24af8af03a0d5181c52030941e308c6840140bf767b1ea6f37ea57c24c498fb050d0ceb7d335b3fe7da8fc1dc87a2b3a3d57fed09d3a10e88e768c14496fec56c375a898f4b28da99f569dea9f54b7a20a5916071e8611a250956b02cfdf34533abcc88fd722e26ef1043c8ad6b6b2c3c7b4198642da004fd80afe1da2e81f5fe745888c3bd89d9aa27c2db4464f1a2cde75a7c8e6069a313a9944e524f5187488a6108ca8c80af7fc3882da9223e0d40a3a5e14a11809ea3428810c017d219b25442da62cf038350edc17d1b14d5ae0e8a649dabdb0cb5124cb3ee193cc89cca471950b04978f30682a5df563985f2e8e8f4165b4879e13f9e9a7a7c3d17e2d16c80a60de910997f1554873336b379655a6983a4771599249bd9b795559f7ab046d54beb07609971a483e6f641f795a42b3db4e93e363b9c5043d1b591a3d5cf838393c44f7fd94e3934833dc680c6e1d0a8e01d7c256513bd4340d98ecb5d0628a0e56936759cef613b6f56530f6d7d267f4f9846132197d970211f712b08d1c281ac23a0c93c4aae77e15ddabbc5db22f5b50eb0a4c980f601abd618feb386ea7efc5072f33230c90860feef689a248c9fba31aea8dcb87f644d2db83b81aee379a6ecf00b35fef6fbbd38debc992f7a69457ca466fb314c15823b820d11f8abaa39de3c1a5740e3bba862bc3f6d510445b40f513b163e7dd4b06e72effec9870cad68c9689d996d0fc41b5999297065982e1e6bd1ee0b25b5e2cc9adce1085093ae99b11069a5fb9c932c34c4d4693f05bb27f46b950cb75ea8bf054faaa23d55708323a965bd81c3320f7f8e86fc8b8ae98f64127c37226611439f1a182da0f533a27bd136b060651ef9137b66c71dd5c119a6e395b42cb3a5b5e7982860aae16297813742586afa501f965a13e0b1e1d6cfcb82b726ee6cc09e13e92f6b18dce2a8b557fcaff180102760c3ca0c021677fcb18efb72615e3f608ea1fde1ef56f63f61786d0989a42f131318400f5e7b2b7810f2ef7f4bc5a5bf738aa179f6e6db66c0ce85f5cfd8f595b3d134d86cb49b571bde4c0c2edd2d65025b66b892d1799f8d532b1d1a88af5733ce483adff32acbe13b9fdd0ba3006f9356af434576f4548da1ee85c4eb4e076b66d688ba5f6b9986cca3ab3a33eb91a3e39e224963bd61e9211d8fcfeb0042f4a4c0def5a5ba0508147299741d9977b42e604f4363ea10436fb48e33545290bbc09d38786c3aa07471714b06355c83788a48d0cbd02602ecf164d80df2b040abcd938654f28f33cdc8ac5738dc05f7f6711e6bb57ecd595d387cd45d5313129018dd4e64e6dea7d7bdb1be40e1fb23e05886e5f638c3de6e18169cb6a05728722a09359d8479d208110e1bebf889417d818df57420699b4cac6e238186b9fcbdb67db7c414afa182828a62746677d98a56522c3f59c25f0b66aacb7da09d6200e28f974426e845ce40a1c3f937e5fdc1b215770678f42072660a05c06d2a0fc508ae798f3793f15a143abe6e04d536b9f5fa4bc164dc30b7038e1db09cafb6fe0d616b30c56b7aa8ef164eef5ecc3e29f2d4e372fa10ceafa4a26197bc5f2d86a6cb8b622f160818a23faa679fccf489bdd50cd28ff351bd524ffe3677987f95ccc9d9f434aa94ede3fb788082d0a8d36336b28fa49c8c7f423b6da085c05dfeedc170f211569d4d1a0c17cfc9923f11399d5f8c405a0685a0afd4017d972da3f01648f06d8166dce5066317d679d518603df689f97d42e327b3f545c3d1c768811bfc434aa9c5db657d07ff60b6cd708cb839314fcf4f191578654104042eb15554d6e1bac3cabae1fc93ecdf7d1ce770ff5c98211bf8701f504eb5d213168f02432fe1d8c3e9ca6ece87973a1d63bc4199fa338db110c47162461e446df34be794ee4d34ecb2298bd4866ec3c5e4de686e491fd5a6590f74a08f7f7419de1575bc752ffd4bd3c0dca35f1b2c1c78fc46bd5b32a9c2d8641c2255605f124e36e1050e61ab4e6ca9bcca408d9c706023b7c4e593d7b8cfc06935075d476d310c519d4ac9140d3865e58377488393c3964fe5d73f86186b0e0a828a466b6b31e7d505bbe65ac38404ae8d46931a8480207cb4e1fe2ec9c1851c4b31bb1daabccc0cda7056e7cf742b85002ca32c56528c93455cd37a91b04b2ab0ca84589280e955151090d509a2488b475ec8b30a2080dae8cfc19c95d35ca3dae98435e580497f2ac5e74d3ef8a4e531cb8d300be9c1e292f0bb98249413b81d1a57efe6b4a6dcfed82672d9232eb2e58320ef7de9b4b85a16ca89ee893e1d884d7b64e971a1828c81153e75829e2c14b3ae2a86061ca731a0b44960010a887bb323e1c21f961ee833b15aa156ab777cb023fac36946004f4b403fcc6a5cd529a0377f73c9866107dc80eb9eb5a5ba0589e3637b4d0cf1fcee5768be54a2493a11f4e2e58a60df9748ef364bb88145467e0ae0812daced4c9affbec374cfc3501ebd1de73d902a30bcbf27b50adbe8ed2f9432a339ab6cf72768b53f1111bcfd7d4dfde46c512c5067ea8e009ec5ec6d4653caebdad9228e96c2c96b060a8993151581074785ff0187deed6318793a3aa52cd2a5601f267226311fa4130b6cd745578bb04afa4f61110adc96afdeced0dcee558e5abf58a5c8b878e32f55da982b453c977c2883c0836f95e1c6bd848332e235a7a295108ee55c1d800e8878e251c017d5a7a9417ce0d02dd8e47202edbf38e7d0cd6cff9ee0c166058c82763a1487e69cd5fec1b038ad0e54c728dbb858107ae3b8997d059bd69b236420676124ff232a7c3bff2c4b0a912a9bec181fd02531ea768a332ef0af90bb1680c27a1a977d400432e4e1a8901c3960a1fceebf6b05d6306e74035da34b456fa6821630a75f3b4c3cce8b0bea3c2e16c3e421393b31fd99ef23e63e7ded0a01e26edcb7ef309d6fda31bfac02dcbea459ec66801f52e0b0945d072a5d369f7724d8c800b41d797cd82823ad19a886e8d3e598205020ec50952e8d2610d9ac2f81e660ac45471ac8cb54ad9d509c136c03164a44203214ef9aa18919b9e82cec6a663b4e6c6d19449e99cccdb92584eb23ccf1bb9b2b6efa02232a0c9751c2f2c193446f07947796e022ed89b0df8bf19c043d1a7007df0fbb67d99a15de16c371e768a82da949289aa8e458d85218e68e82cc6bd2641bb2220689e3874bb1ff4408e31fb5526e66453f4754c47f522762d49563005e7acd6af9600df750817291fca0b773c3607cbdb3111a5a3dba0085be7e39607c8f554113f32b688703f459b86bffc8505d4497bef745a5d06e6e84de3ccefb9c4a5de309ddfd5b533b49c8803329e18d20d98778d8b60440415d3ea482dd8d234b0be1e73c52d20897cca1defcf82710bb4c434afb33e58484ef95701209c74b745b64104565f0f41dd6d10b7c7921ccad2c5f315e06304cb5ef4abdcae8c2acfc326e9811a840c6db91ec37066a96238566bf36739c660da6617b2f00640c87c8ff37e3e05ee3ef790b2f38ba26049cff0e4ff8ddce95d1431f859ff48d3329e19d3d89c0e15d42d84a184b741df6839113a35424161fe515f9cde1d6668c9fd9c2790e05180c6fb67e8700f9d65ff65350d543569574c2993ba75de3b90b47e0ec00eb3214819dfbb2d7d749004003847b8f93ccbdf4f18833b9b86f1125ca778d0358b849ce8306bfb25958608e09d301ee960db67dc0e83022d7655947fd7f83114043fb0ca2c4a7ffd228e4990fcb473c934351cd924ea9a62fd0de3256ee59409f0268a2285b7e611247299de3a7ac4a9dabe2d56436bf07de2108a3537743c86e66e1a3d73a784c69e9308eba264a8f4209a15f998adf6391cf7675ecc187a48753a64e9c9fc4c917efd8cdd50e4e325343fdcb6d2397c7a68c8cac141af835b4770ab02df444a823eb1b07c21f45d7a0d9c0731a93b640e853da01e110e615a245d29bc45fd42a63733a52c536a6cc6f7ae22b966fa09b9baefd0adc552529bbc7d687eca1b7d36e3513272463aac8f3e09b1d5818a6fde9022082d1072950c83ab20533bc1cf8165495cc8d4809528f19659572b059c21e885013210582799ee04b0de2ee57f3c48aa0b6570018a1f192118f1cd02f03a58f12156e38424b0ead1a4aa65ab270cc4f44c97cf0ddc28f7d280bc31bdc97650e1c00c2144a9c2e809a58d82a53001912ef57a9ec344dd99987446cfa4138f28b9ed3738f4754de980d9ddfcddcbb8b54c2905efb809cf8da7ccddfd5c6d81445e826c89179b560cd8689eb0ec1684337b238ee1d03ecd419c90744cabbb4d9eb6bc072a6b202354ef29528405fa03084e281f0851240b4adfc6533d2ddd43b2135ebffcb13481b83c1dd74baf1f53bcbdf78875f53006a556b6188558145292bcbab435226524ec4f40d4028016d6fadd0ae6c7954cc385d501252da97ae82d788e31d9cfc994bd20b33340045befa8f9249344a4fc0c69a7985ff8e252ab29da734ec9f6a5b7f2008fefd3bb87a99562c070199495871ffced47ada5851d4a7283eb007e0c3f0b193071bf7c1e7251bf297fd3ba6071841a510fb6f47be418e328be46b2955eed36ff73e548ba387eaf045c7d1510f0563e0d425533e4ac5d3cf6a6d3491b25769d4c0ffa454c2c09d716e8c3bb8c083de491bdbf773ca20ef65659689cced80317db0ad057499bc663da710e4d1cb426c5975df26886b84ef6dafb134c665b153a565f2916eb017b63cc637bc901ad01163431daa53ec59f07d8b50eaa47590e325047a126156e1976759e43c94e86e1338c6b77af98978aa4471d6a5c7aa2dcda6e2c2e2af7bbee0f8481aae497d114ff55ef5dad346c14b2e05fd5f95e284179a67ac4bfe62479bf2f9620b08b52a7a850b997a4b74c6bce776f002693314c840117e9b19b4c4722bf31d6df12f8b3437a68424bb6618e6a7ef151528fd2804db8ce11edc064816ba90d5110096a50e02199f29deff1abb02b9c7900d556249420271c640ec45c9375a52ad189beba35e1216445964ef4022b0c722e3db8e7e1803e4589d0283ef35f8f2f1bd059d6ce4ddeceb57fa50f58dd0c1042016ac3602274e369c1cd3e8bf724c8822def8d00e474e34d5044ee2f82c969fcb382529fa26bfb9298860e1598af94a54e52cfe19ec8e99b7a4692fcc3faa10c83b5bcfa3fdd6841d4fbe5f508d8ef481921db581e35c85e9b104581bbdf347e3c024ae2a2846938c8c06e8c0401a5590a4d5da997e83573b09d1c20516401d5b7169cc5e748099a3b4bec947096d886cee39d1aa400ee54335b3b6f9bd215bac6cde59a3b3a13996af3ca874492becb74abae8a9f868fe80882b3b6e0dacd9b99e57ad9de351f3cdca26f594eefb3c4f329fa5bb93af707461e1b7d36511b67675fec30b91914b7f4e1769e71041020ea7c0bea350975bedc2dd0b6f3d91af24ef8080d2edf650017608724cc4fb8616afeb9c068ce691960e2283c3ec363305104f42a1ddcd13e4fdb4402949f28a7f5483c6c699b1c4809b84c47e27785e8ae1ec23cc2b2ad8c307377d5fd4b3e4a122cfe3b7ddef1379a80439faa45dd60fa8b2d4a95ee4d02490439d77789e83290146f82f2cf46cccc587e107026c344180f7f93d4500381d793963aa3d216604b6b7c0db0352d9b8772ff30e5b42dbda557c0b20d624c29d748f60f698ccdf82afe91a937f4fde7a07abeab12512db2b2d9b406d764015c962cc7b72ec0c95926bfc55110b793e489f5c73f2dfcefde2fc7c9afe652c0bee71621f126a8b47c9c6daad193b83730d3115707b7c79ba4470625ff7f03b9f5a392346b60482fce6aec9f6a5b8798c50e73a6bc13abdf86b28aab6295130aec5a42fc77dec43d3e0f4b2bf9f029367eff537222dea340dafa11ddede4c1f86f31be5cf83dd53383588d319f51fa86e244498d8578f583f9dd7d56541cf0502c5f0a0fbe57307034654aa02b8b4af09ba9a1310373fa137b2ad09b3b6010b4f434a53c7d3031f66c7e37c38646eae39908f2617a3446c42919185eb837f49b9aa4237f961b1d16a39ffad4f94b11aa7243ce6503a56766e03e8131ba5988057d6821b6298f04f15b20236e0215683cc6944e8125fae111d5dc169b62f6e4faddceccb9bc3fda60945d8d4525127136e1bda73abcdb78de56c7352a6e36cd8942bce563cd368f1793a94268b6b0c7e381edc621c4d9c291223a9fe19c7fd78cc85f92fd49a903375aa38bb942ec0b3e36ddf43615adb139079420c914c0847453690c9ea7fa115598a90194676f0c7e4cd2c85df6382c9dfa0087508c08324625604914560d4031273800ab9639cb5e15f8ca9b6af031daa3245272ca2a7642ec97bbf8eab1bd2b2783ed51103b0a46a0042daaebc055bfefa7965ce8bc801a63ef73d7a377f240c648fb51b828b24d0888a275ef3ef42478984e41f8baff7a9766c91a1f6992487f7091aa637a5fb41cbf095ddd6d0164ab4a3765ac3815defc2dd6f8a766eee9736b29aa6418e858b0f067ff17d78095bda1d3b6db3e362e216502ed00c520c5a9e6520605e138a0ae27c1cc71eefa97d920acf73b863bd76a7a198549263db2d689b0f1449fe1d376dd24e53942899f8fad30d934ded201b78e1fc49b582338cb786173ab14ccd8a625fdaa145e12f59329f38a396c77d6c3dc3b6af08e5a8233a6328e26580d4196c65234edaeaad23c52cfd552137e78474a9d7de1f1a83c22064c278f3d74940e3bbe684d3fd721e49a0fb729aed352b3d527b013a0651e50426cff5766b301bf32bf9543a18b3869c547e70243612a4a400111aebc0a5bfd7ed67663f61effd4c5ae9d79a9ce30d25ea531c1efb82a2e7ed5e947beb8ffaae4ecf283b9a10b97d3bc0b24017c310c8c87736ce43b239c5c56d296f7b976fe8425360e872fab0a0107698a45259334dab060af91b96440809143236c2a4b0bea2d8def3e30c0fbdbd3cfae82ca69ff9f0f6027b09a7a93240a15b8750b03e4684fbdb8043b1740943f7c92d50b5851a3df083ae021b0097a5d978bd3da514182805adadfae4e2d70db25ec3a99b20ec17c12b28780c6c49ee701aca56963afe5b6af85b6ff313adc729107be9dba37378d7ad4c2f2e58bffbdc6c1b9adc7067a8ccd4d9e64281bf6f2cf43d1e12f5d74c891532782453c83814ac1c8434ae015bdf0f9917887bd611760127fb213253af9d2aa0f25458f48cfecdb4c96b529391e2202d24532212450b95c2aafa31e7f9d4d844aaa7785141efa2dd04c87c58ebde02335bbaf03dd7f31a0506f0fdae02e5770a5d608cb319365a87eca7ee1349d9666396197177d60db11ce007debe69d5e450a1d7028d59a65ba04bd4d1f8590e6903826b81c23d8bd5a751e4cc80f72374cf58169c6ec439f1d04b12e3e6ccc224113966fbed489bcddca1d9afabd5e13f32cfca7b99df167ce203c19cb80b7c5e04ca05236700788dd7ed563e63d80b2df5e8b59ce58e10351099d40ff9eb59f8b0061b1226e78d22125b8e5639305975b8f31898070dfd7e64cf1ecc1a5b20a0598abd6a63651fe493c8b88948ead93a8c2b90f629ec04190013f9f85fa85f305f8695d72d2a73bca5e491333ef595c37b46c58916bffd3a6c79f9530b10ea5c22d8f7596e68e38dafa4b16a96c8e39a54abb2a4c288d808d00b06861b7a81e1da7c886e2f5873cf1dcce7d63b021cd58aff53a34839b5d7b78ff2b23bd5a8e872ca3f2aa650112d541251c658b4a995c46e9e8607f0fbaa724fec84bfb1802a49411e2f8001521a8a92a3b2c4fd0fb847052c2e68a0bbfb48545a38acfe84b778f14c47782f2551916e8e00022312048309cec7e587d4721fbbe0691d88705e23cc2ff04834e518ba41241ae1c0ac139c789bfd70b6c2965c47e829a691c45a6c281f2a0bd04fb8a28a1abec3b2454c5e8f57025e12eb088a6be526fa85c6dcbaec54018247d4980018329795de321cbf3a8134aaff7dcec74d1f5caed2e3ba10b9a9581b6688abb02db1a56b55c621b0d42feac8d1d6be56ea06ae58907219180488ef76ee7c064073ed4e646b30ffdc83c6a64e28f17352c65aae7b74681fc9760e70695f7017fbf74093f7124684dd0d4061f913960ec9bd8e2466874e1023130bd2d1f7a56f31e041444961e5a8c56ddad334d2ec0ac6bc7d788677a8213e3d53262b00447b22c49932823152c6496b335d60d5a076502d9bdf485596f454ac7f441463b7e4c8bc3eaca58550c0ce13fdb4c42b7c808b7e473ef0f2acf07946996081d2419a412eba9ea2cae3f736f34cf6749dc72ea34f768d31a6363f59a9d5e5a8febd93e6d77d629bec0357f8f2e40d95639d56376384956a7c2bc48da32ba3de0b5cf6db9b27c340d8fc541f0c57e7e9469322315e14b821e936a12e1a618b4d3631055a9cd8722cbaf732b1b4d7bd22dd0d70c43d9a3e48b068c62ab06de6465e6e37213c837f678fbd22f6e0dd2de9af6d01a24083995a070105a35bc3186cf1dab8e8e8065b61cf457864f8b588d546fdb5b2ad29c812bf0517e62164ecfb84073983c64a4064e68f81c6404f04a0da4678845a0adf59cf60495faef87364d05d1d22d70b4784f145a6338094a6f2572a8b9e58d7d12147d0345824b3289132ff253079e4bf418e2d8c582c715645869be259b0482ed65ec83b66f0d9e3571606fb50d1c8a3f65d2e4db1d375f869970d2af1b77ba723eaff5cd9c45fd944841792ef1332788a50d1ca4f7e0c74b3db26383a6608879578a9390023bf2a7b0ed5499643b120d60a3b06c1f516ed48e40ba1445528b22860ffd5ad8b6a81a86f871ca7a25442942bcfbee406a105ea153b8c3fe46244bb099943426f47f30e8021a150a8d0b66b55f1cfa7a22d209ab743dca628e7fcb12aabc5d0db8e425a263aa2fd167aa380bab9118050b60a951083b34e6747d4290c657fa25cbb8602e90afbccf29539d4a6a04e28035943d1f2fb60638ecadcc580284f9aa6ab06660e259861a15b69cc5a8ea6cc31e986de4e02deddd7882452287782336ae8a8436fde97b94f0642428d43fdb4be44594243eaa988532cba8788ae85be0931540e95a0346295afb948cb15f14fa29c0b9abda5e0a6e7e33e1ca3574990baeb8e2e67b5978fb72896889938c761782f2333127a3d8a291946e55e5a0448b8cb191580c9f2352bb9d0e7881aafe189f35d185504e55c2f2f3860ee8eb3ce3adb715420d4e310b5a26cac92d7fa990e5cc5692fd0ca7b69d6b365c03807305655454ca0c4ab31bbe308a9758502b8e003f81d2fc10b966814dcf22d3d4c356751294740898c6f0898265f0a65195b0298841021d0dbf67405e12a4f4ba17464d00ff260401103a9c0f86b633c8e2cb84b8cdefc6c391802efb1bee58677e77ddc7346df21c2d705e9911d09299959a9813077b15b85bf5562316a200c17260e4275e7f43314acd6f307da2d322b485654113ff00e8eb0845afd7e82a14b0547e9d04f4d878a970d68e014a964326149cffc97227a244ae661a5a4014ef099be06b9fe066c0d6a73c8cf2e658bcf8e714d66f3535cf2ff8603a01cdc60526a254c508698104b2b2dd72ee7bfb03563fb3514fbadc5c03724ce766485df6d5bf09175c2e8f3b2ed41390c62c5291188a36959fcf5e12bb049f246cdf01b760ff481710fed8ead571249dbfba288c1e1d3c9861f555c9becb59120d4569d342e6d1da25cf11e461dca828de0f583e331e7eb5c1fcf4f1642b2279f9b9c815b87ccf60a5fc9ef040bab663999df48ac13690c52783d4e9879813547cc4db9a781ad7e3c330e43bb1aecedfcccb754aa67c4f03332b7fdc3de007540ba2c115a41b12c981cb94a5fa8757c65f6c2bb18d7b66ca8e84d853448b4340fa4d4cca8c04f45dc36b553e2ea9fec9e29ac74c302e8d5c7a672232e4ad9904a3aa13d019feefbc37a4ce57883f97b1f7359ec87958e59a7d945b22e507f2c7370fc54b102c64fe80ff24592e22abf14158fa54ad0cfc02f029c4c1bf87651b97cfd8592da7ec3c9953c5a5b00841ad2f54bf33aca15688f6e6186d4fde182fd400c354466220e0161f1a1880cf32998193d4c63146e67561901ee1c6aaab3c0ae556d37355596b2cdc235855bf9267a1415ad9e2c3a81ac5b5a26bcd2da45ff9276c013581557578149e25cb55b5e0178f8530a129318550b473b0806e641386cebe1861dadb40a01c790d44413e3dd4de2421b267c89aa0dbeaa7a8e97289b4c46072e435da11efe91d454fdeaa2a81e8a90283c553a752c69fa0ca67cf6e78a09b078ae2b9a6a7537226ae92b9b9262a35d7a88d26fabd173a7cad0d82e8f6a02df87750762353d5ef55dc262968a114df74420e967f3d607e23c935b24e16892b36ddfc01232a2d7cfec831e5001ea0de0d43942fb8c6dff42327a5db444b9db9adc658f46bb46b74f2753178092d87309df8d7cb658bebfd97bf9acf8db073764f8ac4dc77eff5bf8529b15dbff03e6dbc63e6b6b8f20a1b989bb82cd674dcfe259400bf6a5fae4dfb422f399577d7c9c7f17f8c1f2ddc6e76cea23000f3a231211dfe42808bdd1476654d8f14d980fe7e8b36e5daa84ae8f2f15e687caa66af0b5057ca9f99682e3a4ec2bfcfff878b32fddc0963e8af9fd09f89e62db15c1a5e17396fa5ee067bc7c566cc48ddb1b1cf8838a6e6dfb6557f35e782a4e3d31b5c5e83a89a68aacceb7a2d55a6010e67f5ee2c28b25ae19e5e5a70bc5f202b441efc0011de0696fabb51a76fbd61a2c6a1693da4eff3ba763e4b6a8a272e267a8192315edea007549580aa629d3ab13fdb2284d72c5a44d2fd28e2fb6166568cdf35a599d3108728fb7f27b1e7432a96c2dcd356a1d03ef806c0c3631be5f4db64516a1c89c99c99d45a6a38a3da907a60d6f9a21029e8d0481c90e4d367134e6e3e23bb4a2f51f1fbfa5cf853e2969eaef72739d2201295f0a1bd36d2a6e1098c517ec9fe15b292cadaaa9092477d6ebc3b2c1a62b74765a1915dad7210afe8abd2b245ad168bc80686ea3440b29a1042e591b4a4b9cd42f508f05d9b009bd7435a0b98bacef1fe31288e27b8c50422dc1c1c6a08e4dbb149313de3b777115d9382ae13a6ced7a432019d659704043ce293a29b3178f6603bd63b2e1662cba904fa79b52fa2ed575a3b105672a938c1811714bf2a100965237ad1052e0cbf3122521a4b260ff76763081f995a0dfc5cc84d071e48a88b1e36313537d8fc07a4f84aade44bf5e87916d34b14247a697329a30df48700481a71e72643d20fd2a8620ff3e4a51a075f20085058a0730c610d7e8e396c86f03c1f2c83ed526300a66adc62f5d512a31d65571fcaf0207db406c04334f8a3c11200d8ebf1521a85eeea666e103b4547bdec08b2ca3fe7ae1988f2901bc713fccaae52966447c431f75774c298ec87a62b401438466fe7aa6c36d53b1fcc241a2c4c1050a5cd782376f2331e35cb2a4de2feef14d521b96b23042583655695ba16ada88066df873001266cf79b249fe390df085d277d2bd87b6746fea85055811e39cce4634401b41a96db97fdcc41b7c00cf2a1c6f909124ed54ab4df7850e49c741531b78a518e5bd794d81ca9341e83e06bf3ddf3e0c9c5124a550a354fd61ec66bd3cbc619d10916f8e37ebcd142f48ebc11dbf648a7a59e223ac69ab1399f65abdf14d2cc92eb86c42c6eb835a5f658b74a26141aa4d881a7051503cf3c1f2da5e62481e2ce3464333e15e4db08fc96429054c2fcf78bddedf2d7561d23aa7e85743e6bf3e90be97d07f662f8a62c7ae5084428dd063ee6e1b8b3fb379ad292ec3490ca08df3091899732b84a30b1a3876f1185dc6cf1640927f16b1ae43d82d65ed66b032c9c3b58792a99f0c3c23d3730a47227f2f747aef4e402f9888c64b19163d0b5b59889d99d31d56baa59fe40bb516c1ae160f20fae3c2041b2e92b432b2c8611f2bddf4a3b86f2b30ccc37e08010399952f25d4082a13bd147e50613bb0fcde055896cc36ccff43a016aed9dee2e54516a2a0b068fcf095de125d781522b231d335f642199a1414c2d38787b82faa32c8270d8d24c85d5acaf18c76b2fe777dc70929e333358b0482f902b13c36d3ac0251c622b8cab943131fe8696cd07351ebb88bf00f29f55309c9d74ad39a09efe0484a012fac652649dd41e8ec269865b8605b2043456d1660ff1b5da9e6c7c6b5fa40eec893ea31249d845f1e30b4866123b2f48642d22b30436c6571c973f0c193fcc209630d845fcdba9dad205a7a9974ca905119187f79ad5104a5754845a24a97ceecd15aae1024401721485a168ce5a8e467fbc6456a6e394b52beb907c7bcf3fdfc8f22c22f9895554c2ef859d9620ab08bd434128d7664d30f942e4a6e9fcdc69145f9d2f04d085ca862fb65e99f46513a325136e57711e18b8d3fad16a99910f2eb1ac3a329aa604bc77a67788d73936a8d413a1357108ce21dfb50e3430d6e877c316eb929b784de1e6bf67a3f8526e072875f82ab74dfcc7988965a53454d2a9e03e508f2b3022a94e6588ac9633d12af210621324590ea6bb38255ebf483c3c9398eafecac61820bc794bf40e9cc10cc47b5355c6e00d915a3bf075fb176612ee9d9ef55c585dc9c9e88f77dc627d2332ede958194d5c20af6ef4e58624d11b7b61bcae8db2c474d76fa1dc7b5dd57b41c95305c3f9406611d92afc8a081d593c975b2d2458d10e464524a695539ac0f84be21bcc75d790625372f27c98d0bce8b5ee16e450a88ed58e73594525f2643f7a91822f1219eb8ca95c360510576b246168c3f2610f9d4ec13c9daa82b9189680b83e5b3c19b3761041ca2356417e43b7f195444cdb40fa326f8503e8e13107563e94a831700e51f06a06e373b37302a996dfd23edf57c1b204d6c3644fbac1df397faf796dd4b0d84df224ded6e54968e472f3039c846d2102ce9d05567517204b30d93b200091f0f631f456358f822f3072803887f769e37cb9d1347e44e2d061f3216d0bda8f63d4ae606638527b3f7204a606b8ccc430bab4cc620117ff92f81f91db3d509161b44d3bfc39851422c09517587f9170ef88059faecd00846348f6973d49c9da2bfe4fc5529b66c5b2b8ac21764ab531ab367856217f006315d91dd61dd551dda34557463603897970cc80b48a0828cefb49b8d6a5212bc29c0711e2b3b3880aeef178a554dccc5f0fbdaef7d21c7b4f9b0cd4d01467a895c07cf12fd54a2ea50fec03a7caca3ce252a3deea409a3f7b089dbf9c2461e8569c78bead448538d804622289e821a0f191b72c21fd60512e8882d13ce591f925e0dc9d328d93236b21a95f05c67c8ac0ff38a7e2d43bc551ee9ab04344a7311855a69afb1923148b1e0ff712616904a3114d66f36f8832c04e5c6b49f1ca11100521e84b0bf51d1c9b0e48b48b7c9990e46ed9e6defd80ad10bd432a9379e2e60fce06053f7ec7d00293b18ccc8481811075b272c7333e8aee2e22342d7f9bd19b738165eb47c43c323cdf21e34ec558b76193e71310d73c38ff0ed8f90cd8e1638d89facfe189e281dcaeca633ea9100c6048bd7fe4b546dd6dc21daf602097deb00c4fb4d6542d7f89c0b64b6c425c17f10c82c1dba39dac6748d5fce9ea021d8b39aac0857bc8b99f0ce6df7c9e1c23eb1f0a4ad74bd116d3904be3804c0cfe89eda49452abbcbf4e70622069a62c0b8cb04e95e07b5fbbf10a990e19828b4b0e18003361813a0dd65de70c0e9999679c181704e03e2175072a4acb6279ff00839e752a01d374a1ddcd500a4d25042a8ebd545dcd674d81eb3cda9f9d2b13b6166431ad020f7df4db1377e4fc403b039be881378c3e3f1325248c39115d261c831d39133bc6915648ee718b491c730642121023c9ba5c9369acd2e6ca30f8edfc5c5ceb69deb0c406297244bdbc3b994bbebce6bb129d362f59f0ee1a4e8a17f39d8eb838e365c9128bc73c6c3607809032bc437905a33b38888ed8d19139477db37804a91fd769365766aeda1978ed82946636515039fc47ba8a78f59651000de37741be6751692e06b6ae221ccad85b5efebc454955dbee8bc2268b1bdff5422debe0e7e1aeb6d2336654311905c95d29cd3a9854522902ddb97b3b9c3807ba828bf8c1fddb602beaf84fa0b3440b2a4d001ffffffffffffffff7fc1b6f99b657efb324939e54429420869bf1d1799524a29a5c8b48ded024ebbddee8582f02104be0b7b0b070cc70b6de9a85f9d3c5de84d65516ae18418f170a19141c7f01125c9bf9c2df4b999f1ca3cea96245ae894d4a426e6cb66599285bebdc35abe30d99dc5429fa466e713f1294ef40aad68af8593f1167a5aa18b29c6cd98a2de97ac4297e2ea096b9228d519151a1ddc7465fe86ddd414da9c3d7612bb3ab3ad954227932c71db1485663ec54b9e249cca8142abab7dd9aa265aaaec131a258452e1a182495e72429f223a5ecea8098deae8c124f961429f5a4168d4505e615f429764d60e1774d027732574f1b924c1a268d68f4942274b85d1cbb1e422464233972f758f906592f0117a8ba17b1a67f3a86c84be442629635c35e1db22f41dd564335389d029ed6149162184d471089d5e4faa3cc9ecd68440085d695ccf2163c1e893606d268cfc9cf70246275e2ccbf48bfea233add94a5eea9c6e515f341b84ce41a917cd95381ddba23be69f177d084fa62441c8697676d1c69fcba5e4985c6374d1a770a932466531299e8bd64c4ed6166470d1e98ee19da46ed19b773225e790cd29c6166d124a5ccdd1baa2e55af4318e28e93edee12f2dda34dd9cfec99c452bb23f59b439a495cf9ad867b18c45afe1525efd203b9995b068b49365744f4a6992f48a369e983ae5f6b8a2991f311eb7f2a62e69457bf1b49524332bfaec2686996f57d1ee6f892596144bd455159d9467f3bee71c5133156d4aa2748e491ed961a2a2cba4456a9a2407e5e329fa13f30831a725a91c4dd186e5bc59f297b9e84ad16b4ada6363960a96234573da9b94128392a4c746d17bcce7cef765e7148aa2ebf81e4a0aef49f40a43d1564c31ba82a22ff92d238412d6b4829fe8f3648c1e4d0962d4e489c693b0d4d4e8bda6ef4415dfe3a53be2449fe7a3e720744ec6265aeb4e29740eaa94f89c0c4df49762c64bf249267af192e2e2c274c8f861a2f31c6283652833addf257a1d932f98d46372e567894689ebe4a124f14491b94af449fe626c0d4253d81c25fa982c5a50955f94686f12cd2655192bb1ccab3d4974ed4164b850d3bbe545a28bfd9dc24784441b4c47ecaf595ec923da13f6aaff4d09f23d4734734a3e05a9723adb884e50823c69d6a731c888f64af8d41d3349cdea16d1e598b620f4070d29a24fb74acf169350259f88defce382ced9342941449bcc7ab62a7f4e8287684f999c5aa6e3df3a86e8b2a80eb9184e6c2e2944bf61cf8451e284901b42b42909a15e2dbfa1c483682e9f78925249413427e9aa522618882e963e399356cd8dd100d19bb0bcbaa5b383f0ec0f8de66ce299635776667ee8d5645a96cbfad0b97e0aca829204bd96f1a1fd7dbfcc269a8a3eeda18f621543069de7aaa487ae8413c2e4d1b27cf93c74613dc514223c741e4bbe122bd3cecf1dba20bf45a8208450f3d8a191ed1b4727791dba7cdf1fbdfc9139a543bbff96f4e57e9bd8cde1d0ec744d19934327c97c3231ab38b426ea074b8bf54f520a0e5d2e193e85d31bdaf892636b97fc4127b9a1df90b1c274d68646660953b994b0e46143e967e65db2670d7d5bfa967bd4d0e6925f1d94282bd54943e3162da6949ae571828636c8f50fda99dbb1e40ccdaea7740f326668b79224c99aca1e742c435f39c6ef24be49923932b41d7ab772e58c253486b6041fa9597410ff88a1d735add6ad27ec6e61e8e4d5a4cc3903437b557e294b73ca24f5857ee77fb783b2c8f0422353926412afe494648a9a20a30b9d8b4cc9534eaae2999c0b8d5f9049a5f6124c54cf163ae96d9270828a9ee36c32b4d0e5d9519ef552ced05d163a1d4f088f8b7953540d0b452faf9c7266495c3dc8eb9aca7f8b2732aed0c6bc265c96cfc8b0429f4a92bd4a4a726454a131b93f3e37e74e5a55f20f791c894f4106151a59a5f486b3d0f13c0821afb1c36deca8a183571bc17163470a465820630a6d927954924fb110644881d399730a21230a8d52a597ff169b9f3b8850e84f92ffad9392e324a163a900f10e329ed0c613196792a8d1376cac528613fa921aa4c91b3d93ca1913d0d071a3860d46b06434a1ddd2ff21942093a431b74306133a375df273e966ef1cb3b135031d39925d9959429f732c7962fe5d8612ba9c43c48549a224b425c54cd23d891e2cc448e84f54d53df9b24768bb774746cc22c3089d7e8ded4969d0c6160e524611da384973be1c9f4a64b4b1c569c718a56410a193eb65f28929fab1f10e316ee8b081392337c2401943683be88b4dd94245ecc9c6d6d9dfd0b10357204308adeb89f50d4aaca5694782d1c92b532a94d480d12721d464ee6862daf28b4ec949e695eab0a1941c8e313c3d2af3455b621b86f6a24fc184c6fa06cf9a7f1d0975e4d8e18617fd5ecc994451a9654e7c177df7c79023739475d1272d6a3ad66451529c8b4e3726cd1f711e163436b6703c0e1e470d1d781806179d12ba4cc45368f69703c7cd60063970dca28dad0c3226325bb449d8149647e5381d355d8b2eab9a6cc1e46f5ab4656a22e7c249953db5b16566d1fae939992441a9a0c29245bf33a673ad26644ecd562cba94a27b3bfd3458346b7234315e0e6241287945eb564aee1c1576451b93f749b2697033b9a4159d74cd50d9a4be061e2b1aad317b5aaecac6d6d92afa30a1a9ca4acef3e15245972929936455b59b54a9093a157dba9b247bbc2c9b4966630b0b155d0c2a7b4ab08c49c9497d8a56565426a9648a0da1d3a6683d4bceb5125358a5682f7e27317b125e64b725451b9bf36535c5ac1527a3e873ab8ea68c33b1c2a2e84451ae5f7a4ccc120c45db6d82c778dccb8aa681a24ff259fc30675a724ad910e94fb4a54ac6bc5f7b57a436b6b650d09e684b9852224a0e265b7c473ad109f247e3645db99c99139dc9a3674d4c3e1e2db689f6c4121abe163ba894b1b1325a137deab609bff214349c89364609f2193663dcad1b13a927f1c51b3af84bf4c134b4f3fcea09e2c4c696253ad3eae361d63a85962bd1e61c1772e971d5e38fe324253af1b2c9cb9b92de145a8d1a3b4672d8d0c1ab8dec8c9e44abff5ae5e13a256d924e8003c70d100f8f1c3772dca8618391940412e3460ec418a386183766f009033a123e6848e808fa1106d28ea8461483aae4b9d152ceda580f34232e31c5e8709d33776d6cd9221481886b46550b6a95ba254f92b113d1c7dccc9cbce7b4877523a51a397688710369c89011c688e7c0c3c3dc304323a2513179e5cc4153d44d39c4a9317769e6ca4a97ef6e139ec478d152996d8836898b49aaab3349d98f28a10bd15750c1c4b3fc8b53132344275f65bf384a16d17e0da22bb14a44335efb8adf82e8472b49cb266803d15c46eb1832b30d88763c65cfb92aa6c6e8f71fba307efa22e6f103d6e71be3c9a2a54f6807dd878216d9fcb720d32c3eb4268acb45d11b2a7ebd872dbca5579073734b554d7a9d29ad640a15857163a446625f03c79158e9a16b93d36d2ae99b87e6729fa6a0537b9019c443bf3b324d958ea3e4d9efd08e26f9199dc4b6435b82be8923d2b5536c6fe83a74f229ac434992a96adf74e8f3c6c9a19f831cda5ca23fa7ab49f4d23a0efda785134b97d8d2ba361c3a41abfb6a8c9e7e83b1d2d3c53db4cca27598fba794da62da0d5d72bf1294fca44b5055b7a135a924259ea638793edf6c6853c58b637ab15e4397437c14e1a664a778261d38b828b41a3ac1c783c7703165d9528e1c35e8347415a29bd72f573e3fbd0e122c1ac4e8332c2b6e952a9aa9bdb24245cf68f4fcd4b519dad1f99abce232f4b14a8a9096e451e2669a0cbdc6981563f60c994f6fe4508186d163e89414d31445544472d062e853fcccdf14f60e439b54fcb4b2c751628a0e7e868707d2c1db683074b2ac677ecb416810cf171a99ddaf1b1ac74a126c2f747abdb2c84d5250e0e191a3bb90a3b950c96a36cf1c66b9ac828b922f8875de5b68537c77ab186d2d5c161a8f2e1e1bbb2b632ca5b1d025cd713ac4c5728ce50a9dc959e284c5ce15df320347818fa0d333701490e0a8c0c3c3b2add0695e4cb95dfeae82793415cc630a8dc99e3de35fd0d4af5119b4143e79c5ab928549496756d05140e585dfa0dd6d9e5c6b2828a2e1d32dc3e44cfa09bd5b8550d6d944a80c7242a3f1153c6d4223179a493ea573d61299d009da9e64f78b2da1110f234c79b814db7f1b5b76bc8ef323276825f46d41781264fe91269c49683cbcb497b4983fc7652467b1248ff04cf62c2b9f7744fb7b72aa49529fc84f233ae16972cbfe471f9d11fd9ce8c965839ed39945b4a74f59888da624e12aa2f78e6992f60b7b929a88de35b34979332939e710d168789bc8e77e88f67fa3cfc86a76696e8876d34d0e5aab42f4feb21ef489a7af88109d4cf257debd95748e793ef7f7520add08a2f1ac57294d1a885ec3ccc5f34e29d23480683c08ef945541c75ccc1f9ab97c93a3f266cadf0fcdc6785562c812329c184b36a9840fed7659e53c6f5212e73d3433223b8e25590f7d8e6d2505a915db47ce4363a2799813227efc623c74a9b47bcaff0e9d18e1eff982a8f28d1d1a255453fb5234619a3a7422326a41c77468e4651c19bd67d7b33974425383899a5a1a724027d56ce3d065fd1ed939c612d1c3a1f1f9d8c97f7f435549439720733774c2b56cde51e9a9336d68c4c991d1a57e3d9fb2a11569823c41995f67a56be83ca592d5cba486e6ac93fe4a99839e9f864e18d3ef7e1e34f49b4c26252cf594183e43af414cf01f2544c8d80c7df2162573fb2c43275a9033f1ea6bba26199ad5cc2072f28b7c33c7d0a7b873264a485d0da6183af7f4320c6d6c5342c4e87e4fa904431772b1e4b67e1defbfd0652831a8128405dd90173a41e32429f2e3723ce942bbda5ee6a31e4f36e14227e4069f91d9429b843ff1b2e8c764b25ae82479f13b9e2466a137934d47358758e8a4301f3eab639292d215ba4af9e13f2993964456e872639061734fef7faad09924a6d24b535c1353a135b997cfdb9b42afd9ebdea66e99b22785c62c3c6bb66414ba8c9735dd7f2d49f1a0d0964aa22b26bbc77ef784c63ffc9f9a6071f93a27f4a257a2535b4c9adf844689699755e978da33a11739ba492e414be852634d8c920be3514227c4dca28b1e1d842709fde6935256d591c0762aa9e45b7a847e3695f6b1a411fa12dcb2e7745052372b42ef25fee7d1ca88d09fe5353976d6d20ea2318436483341c9181a355e1a42e882280f61d260b432e631368cc0684e0a564928d3a992f78b365ecaaf654d6639e68b2ee868552ffabc27ab6f8917bd89efad973a7692fd2efa2ca533990ad2459bb39aab3125b937cf45ef9e4399a0b305178c87117239bafce416acb7b9a65b98ba65ac99b819b309fd699a618bced56266c7e8df24d464a416ed792949678c5495511366d0a23595636efff726714c868319b368649e143546d5ce399f66c8422b9577d72c06af302316adc97a41cc2cf7738ab0c8b334a67c5b57b8cc256c7f9a49bfd02bba8a8fdd6e51a9c1731bb8a2d751628c6d5d9ad18a36e5514b29a63c2b3add68da2def97207466c62a1a91b297e4b86f31e65915fdf628b9d44dc97ba554c18c54b0a745c7ca27e875cc4045e196b36366345ecddbe22ff7345816a539c5679ca2ffac4e73932dde1a4198618a5eb74cf567eb6694a20bfa6469d2e19316cb99418a368893e151b44996a8d65d3151f49ea794ec2a3aa1683fa814abc41e93154b224898018a4fbc488caf410e141c0f667ca23d0f9b252c8908d1d80f6678a21fdd4f724c92c4e1333ad1e7b7f6a88efe9ae3c6892e88698eaa64dab3f2269adf56934969af89463b9afecda341c7e82a135d55251326b957d6d8ffe81823c7090c0e3330d196b63832779871894e860f62e43bc62d66894e52552a05258c71985189d6adb254f03479316e244a894e3039f1a62762944ce28719936893fe2053ec6c495cec6648a2313325a88e4ea23322d1053daba51f1f630624d29293d3123d08d1235aabb826985e55895ece70845692148395947d6d239a117b4af8519eab61c2884e2ccbe5fea45d445f424bd2a7722b55788a68565c536624428b6ec13288b55a96576afe7f078bd1f13398410e1c3b9881883689cbce1cda04cd384427338a9a97209f61882eb6c9a14d5a89a7f268330ad1e713f6930e52cc2da86610a2114ae7f22e3739890ccd18445f2a28ff76d1ce104467da5a4b4633c60ddec7b84197403422ff8330572b298ae73abedc980188d634e6d2f61cf22997197fe873280f21a32608e377d0307e687f93ee38a177fd34d3874ed6c27eea20fe930cf3a1d14bb26394fd0d33f6d0e751f27fa954b256f6f5d09b27194d5a8992299be4a1136414a9c184cb942a9f818756ab5763d6789a7187469f5471b6b5bccbf37668543ffa892975dc735487463766c77947874e797f89152c8eaaae5a30630ebd7ef432d9154ac931460e5d4ae2a6e35c7eff56e3d0989c9e3f959370303cd3da52678c49cfa3ef48cb1645cb196fe845a912ad3871514f6ee87d2c93ea77d124fb6d684b38297b0e91abe16143eb21fcc4f99235b4f9d1f4c5723534a3f42ba81c93867e4f080f4a58131ada94e5548eb322544cd319fa3325c57c06f392633243ebf9cb4cc898cad08a8e2a153ac820931219dacea5f77ff3e6ee690cada5a015f231f4e52462e864e891195dad593661e8e4c927b6630ea383060cedab87de246b5fe8539bd2a33b35e997bdd08a90af316652520c6d175a13e339b786b9d0cf98ee33a5d734b8852e75eaac617349b9540b7d8a6be2822cb3d0bf86cf937dc442b3ffed159a351d3a0995f305fdde0a8d3833396955556883c91fdeb2729063792af49e3a7ffdb4572999421764f5c5cc97422b4a5c53c4280afde77c31d1444d9e070acdc5345d524713e7ed133aab185477479dd078c891258bf264f92634da52c9b1cb82b03699d07e7589b058396572098d7e124693e98c1fa212fae8a74fb0b424a1d1f61973934348e834df7c2d96baf9868ec07c89193242279a752e29fa926c2a4297a2089739a91d3e11da8d1ab3c7bae68bdea0b43c43086d8eab7e92d4eb3905a353b7f62c31ac69f900a3d19c27f568331dc25f74d2922ce39e43ef97f8a2111df32931de5e74256517d329c98bcea410f253ac1234c35df426febae872860f7ba92fef26175d6af953994364b9b8683e6e7c53319690eadda2934ff6359f678b2efcbe7b66feccc9ab4517fcb29c9225ac7b5af4739e643b06cf2c3a318e322597101b63ecc8a2fded175fd162d1c76e4b8f96ee312b58f4b9e4e3968b505256ce2bdaabce9c9256cc10bd2bba8e9a537f8693f943ad2865e73c1d4e125674591d36c7f255b4613f65106b4abbaae804bd9f394c7edf52e1bb7552ba7250d1fe8689233b459b9d3d53b47af9b9a3cfa568b6d493ea784a4e5049d109663e2ea7447d2d47d1688a552a338927675114092e1726ac7fa1684e5a0c7157b954325074f9753449d5c1c4d9924ff4a63d52353d83959678a2770bf7944f4ad2894e734c924cb4b829a5249ce8342649deb7844bc2b4894e9096dc93858e3e419ae8da738ce7272813ad9b944c29194a295382893e8588fcce2697e833e626a5a49c78c2c4129dfc5d8d2b496b4e9a4a3432844e19633a9a6828d1e71c96f9c1c4f71c9e446b3a5a0a6d59126dea0ecf4d2167c48d44972425e7ee29e5192e249af1914bb5ec235a3f4d26b4a49707a923baa8399aa0af443f968d684ff65db5249dbb84119d4e3207d12446e9382ea211ba952f9bf0f95450118d888ffeeda81e4f12d1451346c75ab6f82688e884ea3041a96e17f70ed1eb45f557cb19a2514a87b7d2ef2989ac10a9dcf93364554e88ae2ae9248a4533d9171f4427e6ffc9f12f41f45193202bc6bc56b90f441b4b455712657d4b0e205a53620759e2f943eb1fe7f7b499994ae2872e88ed5c41aa7fa9247de8654e3489f99e93b8e1831ef38212c562f6d0e98f63967a4dc9793d3442a8c58b731ebacca33285170f5dceaa24742cb163c63bf4a7549fceea45b9a01d3a49d74395ecead0a78be5893feb9e0e6d251dcc24cf339b9f436b79f3aae7734d8d1cda0bdb49c9ebb3d05a1cda13622ae7583170e8a39b58ac4a7a432b62c667365af6fa6ee8c4b9bcc92f66684e1b5aff12c486b634d77c366efc185a433bc264bc4e2135b42d4ac6ae9bac213c69e84a4ef1212a7afe4b82863ebc793871c4bd3567e8a2e6d1c14c304934364317bff54c545053a996a1d7d5bc6782498646e64c269934867efe47eca6e98c7962e85dbd4c8f4ee130f4497a142bd383a1579372b682fe0bbd9bd0b322947f2705e9a0436638711654a5169d7e25f131868d1a62438b36e749d56cca3566cfcea27793c4302eaa9258a8b268dee24a3c29172b4d8c45df49783e41a68a7379587472a6bc52f973f41eef15a7a44ad8159d564db9c379d68a4e2c289373b49c3b17222bda0a256b9278f9aa7d82b88a4e4e5032a22a1afd1c962dabc86ca20853d177ebcb099a453ee97a888ad64a3021af733995e99ca2f593da279e24c699899aa23d3188cf97e22c4517179ba2638a20a4e82aa30965f26f4046d1685892f2568e9e7496a2d8ba2a862fcd384f0d4fcf14b477f82c9e1d060945a752ea86cb49ce29e71228ba20468e8925c97fa2cd398cb6f092c413bd960e5a3dc724209de84d4c9e41a65c1ec7d5238070a293a331949678789be884916144104d94c70b4032511e98e875c5b2b9cf6b7689c62411fd7de2e333a36696e8cf72e5b34af432ca2d6593331b387206a104104026b1f98e0ebe9d7290d9d82aaa63870d4024d18f49a6aaa45862f62091e864c5ba9c703926254c1048747a542c2d771f0d156463cb10e41156f6b0185bd5b267b5b7208e406b44ef266b3c41293942cb84118d9833b9527b6acb26b9884e85ec7a4c930453f952428028a2fd3cda4f0ea12431962456968836642c319e3d8220a2119ef747348ac6082087e894494f8b1595092086e873929ebc532f7e5ef070602085e8a375589c933544c54c020821fa92c4ad63d030966471106d092d5339f39c2082e84a8c6695c3f645000944fbe32709da72c9d614359b924cae127261fb436fb194e9c61c3d3c4e09207e68b36b7c75bea516a40fbdc724542b858ccac800840f3b40f6607a30797035b67bc97b211e6acff68c15346cfc8e662b0ba18dad3b7439e9ceb939fe5ab604b143f327cfaad4534b00a94327a50962922c724173528a01840e5def494ad618549ed9143303c81cdaf72428b963a5387b49464c1640e4d0e9960b65729056c2c523e6ce001287f20081c3bda13cdcd02539897e494c729a4f742e006943afa9c335a7754ca639081bca0303206b6035f49664538f5182cc20561abaf2923b2671258868683b855752c24d093df90c5d0ecb26f999f0d0393243bbd7f3d922f4674c7765684fc9a5f209d1d34992072143ab216497ec5f412a808cc13c40c4a08f864c820927767b5700094373aa843f19a7734745110c6d4e49985049fe94248a40bea059a566d3ef972b3dd001102ff41eeef9ba72d2b07b173acd496a9ef8122e66566b8070a10d6f418a8a71bdb62a3be0205b68c47ace39c829adc94db4d027b78e1e4e12ce42a3725494563e59e4080b7d9b496592d814e40abdc99b551e474e360f8258a1bf923966588e57a193a6e499ce1f2745c9f002205468f4a5f5e70b910199024ae14a0c40a2b0205068942ce2ac9358204f684dbed4bf419698c2a4c33b802270418d128038a1cb945488b8e74d687cc7e39b187326f4fe4109bb49f62a7f72097dd0fd41690f1afb420544092755626141c9c60a204968347aec93844a26f74f46d2008284fe93de1995c4cb31c1d429801ca1ed124b92cc3f49954a09c2716305180510237422938c7af229278014a117ad1734c7301d83d094268010a12f531aa39bd64cdda6810cc13c0e88101a2f417e639e9417a62b1fc1e8376be88b9393297c00a3cfa05385fd64a93d461a55f8a88398ab0671dd176d89795e39261b858f5e749d4ac67ff0c18b4e502626513f08997449611e7ceca2ef54fe79ad2c4d137ce8a2f1cc7a162e29e5a2554b82d052da335af3818bc64aeecd161f7ddca2cdad6952989219f43f26f0c1872d8cf0518b564e96ec4927950f5a982c5c56cbb09a292f277b37f75ffc6c6ce9c72c7ad70fe23cc9a3a9e04316168b5e65ffd5625082457f3105151e934c3dd1f48ade2dfae5f1ca39e2c3ae68946c52cdbad254306945df9aa23fe6bc1fd6272b1a13f9a632273f56d1e56cddbf12fe50459b83bece494c9a8f543432a798640aca848ac693acfc1e5f748a56e67c3d7f4a9d2f263145791896a28f25c91d3cbf24f920456749cc274c876a14cd49a574778544d1e724e75352d6a0c44c36148daf69a7721571c15450b42589c530119df782f889d683de98275a8bcfd3ca9ce28a9de8b429fd8ef1529ae5e58313bc45b3609ed15cf54c53e57cdc6cc21d7c6ca2cdb5fc31cb4173675d13ad259dabfb97b2051dce44ff69cac40d2a72a2a898e8372f57e62fd96d26bb446f3155564c1f59a2d121e3e7a3127d98dc12a498d41ec4fc860f4a34ca34cf5c583d0f2d4fa29334274b429392e835c74b499c7ce2370923d147cbd7296bcaa9447890683e3c9816f75ca939f588defd4c8afa3926f1f2e5c311bdc5ec6252f68f35a28ba9c177dbf2cfbccb8ce83f3f3347c753f25cb38be84f65529adf2966985c15d19fb2b0a992e933117d7e17a1e207dd71b74344349ae34b7596ecdcf071884645f5577d5db3f06108f3d81a7c14a2172558abe5314d3e3f219ad1c1dbfb1d8420bacaee9b92f8e496b3d5c0f13a6ac64720bad6949fc4509d24078e19d410e3868d1d3772008855b653ac6c583ca1b73132860df60f6d57284dbf70954ade71d4d87103870d468a1f109f1e9bf3e5c67d7cf4a128f3ddad15565edb2d5638f8e043f36b326e8e12feb3d23a3a3ae0e171c4d8c1880c134ca094133ef6d0fb264b725ba9c8b58a1e9af98b252631adf2e4ce103ef2b07a327de0a12d395a3784c9d9e0e30eedf6566e7a32d9a13195163433df4d9c241f75e824d14fa9636ae9d0bec54cc257649af4189d436b9e9d5b473b888b359d15db64f6f62d0e9d76ccf1243166c8ed8d143ee0d00932f7cf34c98be732113eded0aac72bed29c50f37f4fd319f8cb8e4b99dcfb1430c1a37f86803b2e1a467ffbfe40eaf17e1630d5d69d71c748ca32477f1d4d0e606f3a015a4b76928888e0e27e682e5f4030d589698b049c4f3e9e30ce521830f3394070d3ecad09ce8d91471f1a406f98d0f32dc26474e2d34c6c718eed2e86d2995bac658edd2796290a342eec98de8f81043d72609525bfc4b1299636168b3345eca6e620686be8268067926672c2e665f402e599accddaed987171abf2084bad0c80b2ac6e8e92f9583ac58173eb8f059ca41e81399d9c716da384a8ea5a598d98716cac33eb2d06514ff3139c734b94db30f2c743227b1f28525fd2a968f2bf46e41e9084b4a66d29ca9151a516f6b3d49e9eca30a8dc6920b194db2b28eb10f2a345af484541332062d21fb98421b2e8593cf223dfb9042f31d7cfc92e9ec230a9da03d65ff6f131b1f50e894dcfd79b49e103235c4c821468d911b59c548f0f184b654dccce33eb20f27b4d9c237c74aa59c9f641f4de80495299e5e88f7c184aea449ba22be4b743f96d0494972cb20a4a56f12fb5042797c24a1b7acb9844e6207099d7b9860caafbb53941ca1ad64bd19a15382ec6b6c5c3e8ad08cd67c82c533cde183085d52faad77d6f349f1740c1f4368644b09e73985cb4c7218860f21f41b43b7c29b69bb8982d19e102e97ad272729645da0018cf63dfb89fa396ee7096a81c62fcac3060d5ff4237e73509d447bcc4c31d0e8455bfdbda3375d4787af78510e328bf00a0c3476d1c6d8fe5125c54ac25d5dac1a945419992b76634ce003994523175d584a174b52888bf692e8d4eb18940c2a72a0718bfecde41032a70a62b2a5860daa70f88d1d3a9c0423346cd159926499cf0fe91b7a64237531a0518bbed54f6b4e32e6051ab468cc2b957a58f290493b52476316ed9ca4ee99c7e4020d5934a7cf4f33c694109f32038d58b4292719bb949259fe7438a0018b368b4eb5386183d27bf223231d98018d577469ba92e71f95f923d3704527061d930cc2cd17d06845bf1b57e38b6ecf183c324cc0011aace832dd2421fd3dcba3c92afad258e13c75accebbaaa21335a6d81b3e46530ba6a24f1556623bd6f43fa83877501e64ad3a1aa768db63875392c59375374527cf5867cb194aea9852f4269aa064f914b49a4b8a7e6412643ea8d0b08ea2cdcd3f2556500b5b265174921c2a3df876095b0a453b2a64e5fc270f0a63334b740f9b4f34c2af83ea36cd91d1f744bba1933c23365369f59d68d482552c4912294a8c38d15fb95ffe7cc962b268135db8894a92255dc2ff9ae84d9fc926e73665a23de163c92758779ee4c1441b5357f8bc98b944d7e69bf119f4567f2cd1a8568ceaec5225772ad1264165e7f2cc7def50a2f5efb3dc29964ca2ed9c426b8e53427e2a9144572ac9fc29574e32a69248f439bf5ef48f7e265a1248f42526f12b49220c1530c502582c80564c028cee4dfa340a48c03c763d2a020508c00e120b282000233afe8c8172e8b04102343072c306ae00015c010001000000000001002c4044170000000000b0e3c5d831f23b2c80397ec46de0800528004646120f0208c07738f22840007c87a31c3a3c0e0080013c20013abe06c7778cd4a8b1000004a00107b041184c4880089660001128010122484297a9c44a8ae9265b853a6c8ce04042234249aa63898f8d2d933bc4b8b101111ca1b1342542b87f143d3242bfe927546a46cfa0444538800888d0e6923ba44986f161ac8a60086d7712553ae39d303e0c0de3c3481108a12fdd6e49c8125454476d6c05a33f21fa82e6f06c6c191cdc40632030eec60e94238c5f747212ac34ee65346da236b6ae06e318238cf3c5ddd881c3c688d7a89100915e343acf282122b54d99c9c6b2d5185661bc8e1a38b8816aa037b5438c1b3722c68d1d3a1ec70d5eecf891303e0c0388ece26eecc0c10d34468d1a0910d145979f8437d59c44df2d47fed3c87fc25cf441545f664beb5332850a22b868af5b365ebaec051d8f9caa2e88dca24fd53459bb4bb6684c274fba6262915a24992453123493b260721f2041c804649860024909115a88cc028b6f59d2fa80882c3a4105118fb9399a68729158a0161a2ecce5b8d018bb2de54dfaaa3c45f7a44004169d9e8ffe9263dff4a63a80c4f81d3a683488bca277bf5e0f8bee79c36e430cc741824739c4c01371452bb09c04b116f4273934be35c6d6c07f050b0411567439e8f32093aaab40e520c63ba667e68f2a941315f9746f552bcba4a2918bbb9a4c798a21a336b6540415798a7e43fc9f7c62aa337e444cd1e6850879d1929cc2894ad19e49ba2b7b05f5ac2052f495f2831c954c0e7b421e6302498e21328abec328255f18f1d234cd880d72d42822a248ec22a1c8622a95d794ddb25605df3351923c414fb322a040c9d44c7da213da498e263570b89d10443cd1e832cf317409a1f4786c6c8921d2892ebb547a7ae86c70a2935293a4f206258927531c479dc781a181c8261aa9e2732949e579158868a24f55ba37742871f72c36b6cec80e1dbe6324137dd4cbd1c37b9c0af96c6c951c2298684d6ad9a0849cc893e4ef129d4ef9c2fb95588e99dbd8b244976b5ed22f5e2387083c3cb0ea7124c90d31b412fd9e906f13bef2c95436b6749023a95183e33812a32270410d0a8850a2cf9e573d7a29dde70ebe0635743caae361d84011b8a046054426b1c511b55cd9183694849e155cd64cb3d444b44d1c95e41c3f4824125d784fa5258c5c26c9b7b1b5031be4d0b1438cdffa1dae63c708243ab127de4cfcc6d3ae6c40e4115d145196494ee91ea6e488c6c2451937c13ca51437a291732678d64c32a25fb9a03c28b95c4427f74b94c8593055728ae8643ef95a2c25a23395aaed3e22da0c7db292bb75884ecedf921d62f87115b021dab7d2723539978e1b17a2eda87e52069564098ed0d0f13b689ce9f81d375e2042089141a0272e99e7d938bac761833176f4404410bdcc999994f9f822f540b4312794f8b212109d08f11e63ae081fcf1f3a49c4c888ef242951991fbab2ce20aa5794e6a9fa50c69855544c465e113eb426df9b3d9cec21f5d0e92cdaba428ef2d05b38b1999624a143352f88e0a14f39c34cc9eb9faef93b3452c49b14a3c208a91eabc1c91152839303470e44ecd0cc789ae01dd5727f8e227540a39789b5452f5545e8501e22733839b41bca8a439b6a494a92b8263874297767afb8ff865e4f2eb7bd54e3a9de0dbd0993822a1151c947a70d7d0a9abf592605dfd061432b272fee07f9264acaaca113ce746650395643a73c8ef40eeb23f36269e8c412c2830aadd0d0a6b8513c9e79c949bc8a2044ce602b1031035f29cc699697b7c6f2caf9ea119d611e669132f4a7674dcad8edf2c144862e8927233eaf59afeb63e84326574fe2a7b9c4a08818105731cdea8c9179ffa4221286130143239727bfe797ca9b2a912ff466b95d4d181db96ee285466cf64d2a5e7c760d77a193b932ab6ab85ce85b3fe98916e3e97e6d0b225a58b382ab9c598e7555f9eacfa7baa2a5be1c31ccd8208c239285469b9492ac7a821f38810dc6400f02358860a1ad144cf8cea45ea111553fd7bc184e4c560b44acd009ca4ff5ce7c4eb23455e8ac24132ee5134c8fd08a50e18cd114db99b553545bcaec2732052ec76aaa34d3f88a9534441091428a44a18fede3aa59a4271555112834f2623fb9286f99d7459ed057be94347e0ea7313f4ee83fea688d39f62674f994d06af75126c3844ee3728ad2a3a647549125f429c784533a58e6cf978812bafcda9b23bf2292845e36bee78ade114142279309bf4989a8ac141739421ac12a062245e8b44635c973dcec493e11223496c498e8dc41fb2d5c029121b425262164ba6b9fc619021121b46ff1cc94989c1d350c462366b22833a17e32644280d1b5e509a3448b2aa16fc82fce31dda4142e642ef922ddd26831ee858dea87f4a213d3b821f3e1452f273427916193aa58b28b46aa553cf96776f39474d14992ab095b7252ba3f26178966d91edca38c8bc6654474269da6b99f8d905bac1a631683976a764da2950d426cd125f9f798df748a6941e786905a34fa7d25e8e8a7faa44f8b7e936a123397459d4d12328b3c5f89e19f37769445974b5b5f8a557191999058b4c9645aa820d23cc93e8c8345e35da26131998e7cad4c10f20a36860b322917fdd7c077d4c0e156831057747e21ca628826a4159d1242576545a907f56d6cb1c250e6252b8290557452b094d370938d4dc618c1ca4a41882a3aeb131397dde583d2e510928a421c21a868fe9270297849869ce2d6d21ac4f9ca6f36b66ae028f0f018093145733ace6fce552579cc9052b4971e7c52242f17973b2b63e3526b21a3683e9624464e83d6a44a9610228ae633a9921f25e7265184962c326621a0e854ce4d90afa14fb42598ec8a41b5453425c4139df4143b9a5252423ad19f1427c5219ce8624ce96aeff1e8e326faca16a2dc2ce4495249136d9bca85cf921392894e3ed5cd94ee41fbc22198682e4e4708d965c8255af9144db5bea99969ac9d08b1441f53d53aa396bedc734825fa24a5ea9254e9b1984d013c2284129d5c8256a78a79b7537c12c995639fecaf4612fdf7472fcf35d9d5b348b479c974e5f00a2e4220d177a79c4b54930d0ff3238ccfca2f0c421cd15a6f0c5a7236a5fa841bd149256f0e6f82394218d1494926a5e792270bf117d15f1ed5fda1e4b807134d218a68474be989513589685454b8ced26cc2c4454473b2a91c9339ce243929e410cde89482a7122e96571f6288be84b78414a29352dc3e3d258910cd7c4ad6c9c47cc820da9464930a3aecc6a4738c134204d195d8304ae7a042541603d1c51863d0182ae4e1110288363e4c6bfe5fce9ffa903f9407faa15155f2e76bb6cc6ce142481f30840f6dfee59b30ff49c75c42f6d06592f499b966263935c4b8e1360e168d103db49ef49ea9b83c2568d30df640481e5a0f7d52efbfa7aca6f23a6c60c51c8287f208b9c3de152ae2e91ede729e85d8a10d3abcaeb86a5b6805eb501c08a103cea1e4d0c82c9fb2e55b15e3290eeda99fd236e5c3a1fd573f49c5cf34f3f81b9a937afbe37bd60d9d966062d2fe4b52f2681b1a61d99f5399241b1ad1f5f0f1a922c3bc35f4b9277b8ccc9ea75d3574d9825c911fdd3474f297cba9927abd4385862e9e970c1db45e92297b86563c553617595115563374a2a8de2acd70419954d921a40c8deccaf06bfaf95db664308490a19dd50bcf41be4d169331341f54ea9a182d878c460ced884c72dc4f714818da1d3325541019c3661218103a9a6826be88be70b00ce35ac2345e683355d033d933dc4a5de864fed8a8b9847e771ac2852ebe27e1475f9b79b8ae2e640b8dd60e25215a684cc792a40abad34348162c040b167285369c8e96c27fd4c410628536459469ce267fce4c310ba942ab612f9e79ece0104285f2b09029b4b21d27c643e9cb592152e8f7548c73319f2df5c742a2501e2150280f2441c8132ec409fd5b96d53f998d294a1b5b35ec2680829009d8a560c78818393ef08109f018786b086942298f30c610e36210c284763743c770facc629097d08f9bbc7b9e72ca7719a284e6dbf4897e4d320b4942979ba72c74c790d07bb0a46e25534c72e3167284b63c5ec443f716628466449a9c314a834248111a65629652521fb91e834108214217848c262bf86e8e148d08214368373b29213d681335e7cd4284d0a9d0ac0e9772f6524a0b46df713ea924a78ecc114180511e9801905fa02f3aeba4b2a23f7792c5d48b3ea828172153a37aca8b2e5f6746f335934a7976d129f13309a38258923fd1459ba2852b933a937a6a73d15c32793149dac345e7a64fa5788ddda2cd5d5d4277c8165d018d54a8d48da64232712c1489442281308aa1f4660293130000000c20928522c16830111445321f148002632e163430201e261a121016201a8ec4c17030180685028130100c0884c28070484cd54a7b00d74d64ceb2b7935d330874dcee1ff85285ff66f1c44243838ac231ee6f66c20f19fbbb2f5215ccadb5017dbf4f20342be182069527ba02ff89de1b467c5b87c55efcfdf170dad763352cbef304bcc678e5caceb357f157319e8c96f07d87c4bea71cc37b847bb2cd168bb5a562ef34e6cde6bd17933d849112173408e6b6e8e047f3e228941d5e5d2579033ea01b7b9f58cbe20750a0008acd26c76766b6f59cd159ad4180f4089039961fd13cf043552650a7c23c97283607a977cbdea866fff253f0c6bafbeab40c21508df4da20199ea0a3143a47ac703ffa304c371d85a2b8dd72730e8900c69df6850eb7d07aa70b9962ed337660ebeb3b199ee9f5baa8b90cf232ebce46c5470df5efda9d6dcb6083e24dfe220cb48cf51416c41b2885a12afea475c333bff121c9a583762049f710fce56a1e8255a8b510e43b66c4dd43b0f9c0db280269d6d03d266dcacbf2294856d1e78260ef64ec2db99fc0aae4be9da5ee8b39739e4785088c4b57f4118f2cdaa0b5d84d113ec158862f72d927b28ba7bcaa4f824b25a45319fe27c2c2842957f19ca71b7115591ac4cde09d9c52ebd47244c332d44d9667d84b2f0ef8449333413dc21bce6cee74112e0d79d5c96656a3d356482f6e7a26797fb7858a79d0722a844db2cd81b67c08d7fc72442b96073e8200da1d2e1e116dbad13149e4cdf8539e0a5d537109b8c32522d16e12906d5a712db9d845b813a7f5d23021552e61106a9f8003805ba965bd621266732d2f72e37dcb28765595e2c196f7847b6836c63bfeee4abef93afda3d4629c41d26ff88048a8f3dbe557f53d1cbdc25f839b1282fdad22df26dfd1ab272a5c831d312d8dc52af047579cb6b7a174723a7e19e4bd7f399602dba3f9ccce0ce7e5b9d1d3ef56ae28dae320610862622a7e51ad3f0878e36dbba4fb6dc54e35b74146de3742ef5984b044992a8fef25038d27e8f83246b1357171d5412101b630d042422786d6425839df0453ac0002e0486bef9973b74a71e8a18e4df22bdfe57b96b29e7277510bb42788f548434d5760823c672bfdbd79c97d3de8775a5aaa041153e8910bbb33b87a2e2f112ba87dca7c1158b66bd0a05f55b4f302b1e77313813282b616c19008412d564d396dec5ce185e0f572f28f8f29bd8c6d669f168ed2cd8b7fe47368bd31c97e34f4a2aa068c3b018f4af82921d5385cfee611f5a93ce2189e03a95126c3bad3e3467b1a6e8bc348a6c533c2b3d46ae850270d9b1b3107bb6f212058f8e8c2ac0bb0366be183464fd691921e36b1b068a6ad0d12e09311fb55b286a97ee6ce21323ccd92ae4593bb5324a027e054ee0ec472d8ce7de87d1078ea0e37212449f8b3dfc359514d0556422e470eb55d54f3f4181d3bf260b92f7d69c7ca12909e30df9c3852ac02e34950aa37b7ebc014b90288ad97eabee6511237d62246f6216cb6b2857f189e1cf7ae798f23cb186c52b84636d29ed64a24b11d0c6be963ae93c168bace85e139ba4d95f5cca9fa7221306f0ab3c71cf0ad1b40eeea8bddba78c1af0fec35b9d614bfd6b75ef6cfcc3d5a97c23666e3098d46b549c510c369071333be85d550cc5c0db0d004ce2f621077672c018a82ee215b52b63a698358a75b7657eed10b69610265669491939ac5ebd239e6313524ea3b771c095aa0d909100f81a030282530d41ae0f45295481b2372048579b4a1b16d29c276449f7d31f6fdc6fd6a63fc82001291ec09506d2370e335f8c3dfd1f8ee8f40b5f069519da537c67e475adb91e75f9a794cc272d6a4f473b98f35b2ca0d1c312749f28f28599a12a7b2953278b068b2890a59829a278031379642f9f7ca73fbf9d6904134cf1c10042dc41862e463db8fe736811dfbdb3a334c0bcdf45cb3d59b8adec9922537e2d58b8d4ab3d966f90fe7f1ed7b54a1219e531f69a547822d920e4a4f569687847ec99ce11724003cdca26e8ab94128fbeeebf19275451bf182e2d9b1a531129cfa6b95c50aec7de40366a7a84600f8e42065ab6934d022df8d1d200ee5dc2ee4d838d3c3ca14af124726019107a490f75e648548bc7cfd017c49b58b5989e7e40a270e4ec90f1210a901cdd47230482da532460d974053fd594f003acdb9f2aceb36814f19b177c0277bd60de4bf0937329343f9c0345a1cfe7093c08ca4e2dab29658f7c2bd46b39fb17526c7eb69dc830a3e83fdbc55c1e5777d5c35b35c1b7bfb8099d0766e82db1c799c92623ab5b88234c6e941fe563a77c71cac7b2b382397eee7cfa53d8a1000bf85e7daab6cbde1b85fad584104ab0038c79b2feacefc0572eb3e9b666db16491f7a9c0c55e06d40f22e215ae2f04d98c9a73ee1ca50d8e0e76d57553cda9dffff57b3ae905ad1d4ae90a26b7ca62442a342633f11633c2919dd95c816977c15cd0a8fac2f1e9641342455ad6ac476df89a6e7ca4ebba48fff0e9c830e4abc1262fa15db1bc1807f02cef4a0f43f9914b26718cef4b6bb5fa438fe3790978336cb05cf6011c017cebcb9c68e4e49937e3542b028cd27d531000f51b30fb39e1527d81967fd15a8070befff345ab821d24b000f210391de73824e23e4a95c94654bc3b22723902e946f243c8dd8724007178c47ad47d93d27fce4368addef597196547752733f1ac2b5a09efdf3331e6917a4b5cf5cefe8f83b623fa5f19d8f2fd65c9532159e57067b9df947824b3ae044398909b0dff1e1be4cd6191c9d771e73fc2ad7b5602ad96dc11f22ea69a66b1b20c1956215534a3afeb51223e66ecd9b184ac53b60c628dae87361b54e3950183d3641f35abf6bd3f1521989110ebbde61d0d3c735201ff1b85d87bfc8e16a559e14f05d8a07da55cc9af2815ec0fd6d8cebc821ff8da7a3ce9886b0627825c7f37798aa843cb3c29e342291381c6fd5102bc57d0b4868686cf4247358179a42a5e42ee3eb0166f9f34c7f5a45ca3d77b78cb6d547cc57083a1f322ced31b64f15cad76291a29774c4d6a64827c74eb838453548dac4aa64d6e536d4f2004a4db589ccdb2f262515b07ef3ad3ecaf58a0126345191b95389160725b83f2f2fb97875b2ebe96210b3f615cb259a193423a8efa4573f1bfa0caa099697f23300d57bb47a191a4389697335a2c8676536fb9c18d6f09df11a6218067195df61e16661c3f3af110c0e731297a8190ef67f34ac85ed29073555f65ea861388818bb832d94de186f89cf2e5da944d9bde238d709fd12efbbe0381fb83a39214a3c3818828e89dff574e354938a999f49ff5528a7e3c0a02d184c0e1b8b275efcc01678d6931c2cac2702c8c58c185132ff07c1972d1086fff72473ad4f4382b6549a98217dc7084189ec760c29ae204cd8be9c109a3cb9135175b003a87748cc5d1b42801a8a4188add2e00ac59d2d921fc1996c26dcba64059d04b3e9fe5135cb1e9ab8fe3c698de15ac20a50185d292833bb5d246137c84c47866564d40d839e5c5cb8dd8674268fa418f603954b1e14be4768e0803a001f59868f139d8cb1e76b9cdd1e2627ab9bb3417b08e456b72cb75b015c3e76537e52b99b68520d122cbeeac60438311461024fc3fc9535daee41b627dfab22978ad584c01c16e7d480f3a37d739eedf63fe8d3e4a2c49d295fd4ad90ef0bc06036de2662ccd4c894df02f6d0ba28b712219d4c8189e99df0111106d29e04042ca156c0e304256cf8fce30a2e721db650b8ab8f25b94544844336b2195f6746b81bd80c010cdeaa2138ad5d8dfe9420503d8fec824d1c9995fcf1cbfd7c709814803b7f8d7b7dd9f05762ab1566b11aa9aaa02e3ed1e576a172596369736d81d08dbe629e6bb7b9936becd9ede4d6edc40af444170e84156822d21f49fa86221e2c02957d692105885464461373b10b82ab8ae5409d3e474a94fae823ebd16a11359f6e7a435e726458386898e99a485768fc1d5182b287592c56dc59c9a7e82688a628d6e46785f37cc8fb4cafb205a73b156ace98661b3dea396a9458b1c1c166dc829af047af4df39c5a30c9c0df326a338659ca29b6e6c5a747b09f2802c83f9aee980a79ea35ff2469e78d25f527b03e3d995480b94d0a7892b50d6a8d68c31f7eb8f6ee477bc5428ccaffab210dcf603374cd72fad1ee4b700066cf0e98dc629889dd2b58d99756481beb53e63f94ec01869fa01d951e62d0bfbcf6c54c74bb0aa0a22802b5fcac0908fa5a6dc8d6ff61332239d9ed59615065b725e255bdb568fdc6b71117e21361076c45dfe58495f21a1ecfa4211f8a092b625b7cfbbb7922c41e9c2335627f8db9306795c51f814763b4dbb037096ff0c4ea0dc06987f7f043c123b4b5c90a33ca7b94c077af353d2ceb75a780162b4895bf521266995000fff5238c430f44afad407f5e71e4290926eabf4a7712832ee68d9e9d284f430a5b049e8f5dced9e02105f561b40a1e3c168087af4a3e36ad674762f15d016e69007e3582234f937b4f5b37d8ea241e8079b6bdfbd430ebe0315c34e39c560424556e1ff43640d92740c4e0212851e20fe5b203fe11a9fa9d2e0f686e73e8138b5db62b2e2fe2cca65b323f28ac09165c62baf74149b89d15e6587688ea26abdaff069db9426e3f87bb0c670e47bf071069bedd3d0222181f95a625550c110d6c46ff5e9ad7d8d29caea58d561a16b914b7a810ebb65edea40d419a1d196664744436c285a88b9b43dd9ed560f483dd381ed3827db4e93b01d6720f31390d1c3f345445764d8c283f17d5a4c2156a1572262b63a24cee544040db398f4b62c8033c8c34b27dd9f371c4dd7dc4b62a4425db22123fb503359bc594503f069958e9c95324c573b3aa6548e3e317527d02ff7d05c6d93998488b5e8451cbd93db04788ffd5d518d594ed43b1229ab6bfacbe4044d97299148c83410e4ea874267fa7ce6ba00c34bbe5d7335fad379170f43512627f6116bb465155e991fe921e5388b5b2af3c1c0b4ecebe00bcaf07c32526c3957648582bad437c19be2d72f1afae10502f2352f2183405d990e75afd7efec9e0946c451995134db2ea298c2cb9ca9707ad19fd3e1d1b4122be667049d4813809481e8bb0d34490a722b7a6eafa197c6b144eed2974b5bee06c7b85f43e2375bb6b0f8b5300bd7d7c468fdae310403198fbb8c39424545ff5455b637d4353290c0f087dee4c6077e193ab1216891c8e9e6a806097e35e32ed3e0d1c0268bed8ac044222ba2c0034aefeae4a5abd9a079067fc43e9390b4c63fe0fa6522786c2f6a69f101d16fc778b07c0cfb7ea3f15ca11506bf5a5191692ec5acc8ae9f44315e8e032acc858861d814ff068b4eb1467a8783e5916a093ac95a47494d812b916016a9cef811fd5291311897d68188f7f1ae6ce8c00f21c9b3942328f00a82df26a8633ca40256350d494f49becb3160124f4d17267ee4792fc60a618b5f23d0269e12b04201a7482274837835e03db299e33b925ba3bc318194c6a6d5a0575fe080f46109970bc1ef5238214bc9bb4b33bd490fc964d484e15b638a53fee09ccf477470c0ff7e7cc985f2c12526b11105c101c233d2a11e9d8b7a416d57a1092ba3400e21bcb049c70a075a868eda6dec0003c0e120beb997fc2ba213b1981604688a65605d2ebe749f81d5c1c0e26b6cc606292c5124d503c72842796b2705a9f879e26216b4a098d1cdaab6a17b9905d8b2fd5afe6d0beaf3ca6ae6015665634f214983ffe12d0c209f8025d85ee91e6cdbf4b1c1769b5b3e9cac370a60ff1fa1356c17c2a25eb03f33027467cb785f895c65ee68f09b533edfa73750a1af5a5c2c6604b53c21ddc28bc12af4f58c1b76e49453cd7fe609027844a7def8011482645ea49e5e703a21744b85c057564dde52b4c1fbaf258b0b6024821bbe90972636007922f4923628a40ed01515b2a010508026b6733f5436528552457a1febcd29ae4ff4ec7926397783e72c905a5b994d529b328f12810a3f95ddf132e42f6b39ff1d5530e7c48adf8e7782eb90ae01133d2fe9ed95734f1f950f716e914b73d6f0d63d61f9aa5caa525b7c2c5fcb5a30c05dadef539a0b902ad0102582adbda0e933e10774207577665406a8f81dacfb4c064d36fc544ec77f2feca18d98f7d508ab338a2614d088bc93a56fd988892d67a23c4d060eca0801726af4d79a99feca5b39d844ab8db1da882b6cc6823b4d6a71ae8702dba4fe746677331a1fe88538de4132dab47dcecc9a8f815c8d6a4b51faa24aba2fb087caa4ad6983cd76eb9183478c449343fb228d48b2cdd34abf015ac54f3edb3bd99be0682709258eb7b54768bdaef50e598e4efd4dff8c8ba328b0033812b85060b58f309911518a8ad37990ef54d095f156f066d57d8531d8f02a37c71d1572db71bc309b5144d93759f86355ca7b9a495908abeb88de31d899c2572758f289f0bb163b3d58ade2c8393da40123ecb9c80caa5b9533b637d58a883d8c86b49c1153b566f49989a6a9d6d2be98f55595c86ab53a071018777a3d521ee90d6b7d13a13a7d8458c8387e6a02b596603a2c9544f7390cc2b3b8fcf334b08022a1f3617ab49481813b2c764267a4bc47e886dc0a68e98e6a15f0ac317923511d778d1c158b88f2a85bd1a1dab896ddd1588e5137d62b7f97d765009c5038618a502564ad760e4ee2de07098de3a9ce40c867d6a97308d6c029d18165ed9659ed7d152bb75c78f391034df583aaa187f7e7ca8009b0c45fa4e72a7ab50d8edf9ae3c47243c48768337686d6dc6832e07a3646d0e2e12b38c2148d32ebdbd6861bc448bdf66218a1e46b303e972ff027354c438e34c705ffbe614edc38767e3933722acbb3d63bce4e034a859a9b0a3c6ddc6898de13010ed82066981264b1b91dac3e576941a5c577516046f1716cce25093d8f7f3f993700b6d194e57b94149f76089438402a49c91fa53ad08901229262d6f6943e822e8db3293082adb7a33836f3ecf93069db4fdc5d9897a30912b15ccf83b97307ab5f31fb25f6d270b4426488a1a739888665a59d5e22bbfaca73d96518030dcd20267eb7eeae56a1dd61776c1475ad4c563073f8c9486a7aeb3525e5a1ef694ded870cf1a2b84d92cab0fdfdd0f2750d8a70659751b64036b9659b046e985cb42d0a9acbff27cbb312605f411bab280e3f29ef9b6a0264c5497f93d803aa47a8cd0244a2dc8f8c8bf8de961d045da53575204f7954474f5409e6e79c118679195da8141f501d364803a3ca1e4215e9f6c4816c192794024a33259dd848ad744efc3ddf3dfdf66394a5a70d241418197af7f2cf6071be644fe804402cffbc1c7469199174994a766b0a5f0459fd4bbb5c3f86c423e8acd6d6ed714a59ad20964514709ce71c7774f3aacb1377f72dce1b124e9083128b18377c7b3b58a01d93f2bd0af58eac57b62d3258b5efc29f3cff88f42c695af4d3a661b88f4b020bff8edd2f691dd483e5c4d52ba210121a1c6f464f1834bccf29c56120058d852ca9fd0c7d22f8a7ff6a37e36166d30fd2abc2fb63ecef7dd29afc667c306913174091bbfb12645fda385a95c555f31b127a9ebdd7b3e69be142844c5872e9a82d389f804cf1c109ea130f77224eebd17a70d84060e2365d6ee9dbb729c584f32066fba1436dd0d50730f023671c828a5959a5882203905b9e8c3ad5f34c20ed22e2c79c0a402e5a0ca31660ddc913f761515966263a5461341496468f0b99d22f809438716f400c0c153e2d6a975e3b8cde24149c86fa2607a41d407d9a1061ff94d41740a5bb41423cbdec9018fb93e759c0d041218b9e12cba52c11fef548541948c3f8036352c65268944d9f98472f995da5cf9628620e9e61eaa00c701f9911e5d133e4406dc47dca498566aa89b0dba041a4c579a920e9b2b5019feeee068ffd4da54ff2b240338cd2e807c6027f99aab5c4edc2c69cb29c51698a5df82d553ca3ecb71d286c8fb08b6b0f678a1d2eee0ee3a7cc4002457584f5721b62a40c9a6eed61895a2b73da88219f99155b511671d66adfeb52d08836b788d0eaf995f0faa877babc815d8551b96342cfeb234daba151451cb0520e9356a1dfda49a3101f66e9480f7edd98d38dd922ffa04a621cd9877470f56e4c0f4e63b0a8eb84672ed44b5fa47114c6db92aaa2766e86b718ba58b58df14ba026d664697abd513b6ff537c8ba6bd9eca0b9144ea908d207ec24c62ac004489f693d51541ea26ed823ef591f7099f056389cbaf72dc6caa9be257ff53eedb1d0daf1213804424e4f7c8584004389d27279ad603558836e336e8c7523900c8b62479da37b7d161b1b575d9bd2a06c24b4aa564d7818a66ec0698cdc936cd5a7450817f6462e327d9c22c247a892d77add7b666e8b3a27142775d35b122afa38b80881c0f59de153777dc7e32af2221b9cb3824f0c46d811364d421d1333a44f8d7bd23599a90528438c1b9bb694d2d32ef2b6b9cfd213ff00ef21f6615f2978822325922e85fdc73c37b0d9b55e952f425f0ceade0fb04f0162dee29b8543d20d10f70475f58129490a8e0e04f6713e7caafa7618ab48f4ad0863e4e9c0e318ecb0d371b290333b51731f70c9538040daa890fab05abd1f3a32b3905cd1d4b10c5ee651bdfa2eb27ca3d17d4e1d4e3160d4b7d0afc82cd81de69928c4b7eefc4e1d1679d9836d44a0a8566b84c1380d1ceba413a45d9657afc3123a8fc46f0399ae36058d661980dc94f7a0ae2d1c6011bcd04e6462a0a4883f1f8d18594cd22e8afc7539d312d4b057e08847415771fa993258c882a09c46f5522952fbd4577f7c336a1166c4ddf80f6ea680a9b037802a91c15c89094602ee2edae1f6ca8610e7eb2b62206510297ead9f61bc05efbc09c9464ec8ae45e2e6adcea0fbebadc6dca117588287d24044c7375ac2ccfebda61e78288a7fe4ecc4f776194d7866b494efa94ced6906e01a39d6c8f9a3515647acedf234980c8e1987383875bbb37506e9cbb20e48be7e50673264c0dbc7c29544f08d3f6af22d6f89f53089e70851a18b089afcf57446a3089c6c1a3df9e1c5b086ebb712470173b41e5b701682a5e7dc2919b604a9b0e06adf552ce9ad8bb4ca3982d6edb611e3b6b091c508c458fc04582a7d3fa6f14031f96b6b4204d78031be1660f6e51b4582d744fc357a067cd4b09df58d99d381a167a54957d3e74d7482c0c70ceaf769652a6d090d66fa178a1a4421b28b9c32b2dcb6cde567210105c2768ebd43794f313e8c783af5c5a3009af60f6d6babd48e488b55260bd215f42956df2d9e09c3691814172dcf440463c251317d1ce08ab8149a6af0d623c11b41d72f36b08778ec2f6c340677c932d88a0d40dde8e95987421ffced90d9c2b7761c9907305dfb1336c2e9382687142325425114b648ad726e4a1016ec1c629d5b89cd2c071362d1b2989cb6345f16160347867081ecc25237537855725b27be4115885045cfb0e17ba331929add31dc95605f47a741b36d461548277662742dced1f1d19073d7493b20b62584af443f928877e83e7a6f6c8aa1a6335e519b838930b971282cf9722b78487b27b4a22768094107f6278626b7fd64b97d7d84d39e125bb62bae208d0e2402e5566cd774d49b2a20aa51d996be7bd7cccd2383e37961040c8f68f278956786d7f48afbaa2872b35bc861832d7e009cacb81d800f6ad38e125747aff4859bef9c3a7187621f98370a26a97e19204a9979801103c47f441aa26b78e89f4eb82aec2feac7f46c409308a64e7fdb8e0ed8c152589e020dcde4478e36de6fd0ea2daadb16f3d9ee670834ade1c479c5cefd0d147dbbc214a8ccc3d53466dbc7f3ff49a63398a31cbcdf200f7842c08928195cd770451606951aad35745c3c008492a105065c020cfca69a0c5f2ea648d0f3a713066cf16261dfe0932f3822b419d4b6a5a6b075e7080eec426f17673a8446ba5b66b6a602e5e14753d53131704b1af57dc131f8bbaddc8fab120b084ee079e02c8643700b3175d0a20522469fb5c8cbf0dc872ffcae799e2e9a38d19a49609cb1652cd7d7f7c6e83cae0cc762018746ee8e2ee6d462ab3780995edb79878202ae6bda699bb01464d75bd2bd1cdd97551b68934feebbb1637488c438211148493c5e02e6d12e9c42ad5449757600aa4ae43ea83406583dd3eb0e4f664d89d8df44819c229046ea08cc29f2375644ca0e4b04085d428034816a0d05a028f5abe434cfd7b53bf21a96cdab51c6d775656758f66008ab363859ee29e659ed234da7507adfde6d5a04614be6b71ad5f56b7053582ffce256de72518952112c5fa447f3b0bcccca6ffb3d1eb39e597bb19a64d25a32ab554ca936a50d5d06fdb2086a0c680b3aa53edc023db88316c7c520d0988f8da81898290565034e0c6a054955cb4c4a9d72e72ce8ac5b44cc450796f818f23ebac22846f704734d233f6c2eab60d8dc19e0bee926adac31921090df21486ec88c52f034496e46332df793de14fe04571097610d08e0fd43378edccaaa8819c87d7853c1304b97d0a1f25d3b4eb67f8472ef03648f15c3497e71b7ce3e06750f10af0b68a2240e7d04774b2303a7fcba7ef2b88893633dc3f902796621df4a652057eaeecedf29c2b07f18fb60f2b13c953241c8d7ea8a3d1cd7c53aa6d6e93373e8222b598468ca3e7df4c6be087f0d72b6a17d24ecb4ee09aab7f968ee7dd8871d9cbc75e777e22ce2d6e1695506c0a9447c34ff3639ec3eab2e6a788f8ffd9e595f1d31921a43d3aab13fd7d914d29a11a0d4857d6cc265be0fa8299691f73bcce1c214ffc8179ed61a050b5bd39db832d698bd6ee14ca10f163ea645f494db7dad5cca53acb01b4ab79444d0a36add226abe753bf12d64bb4a5da71acd8ec0cbbca927768e2feff05d13e7e48c264cf41195036d228b79b8b4843085c759f65efded408a5cd03dd775f92edf35712d7779f272586f8a3f637261a636a70c150008e08deb225c84af362b714a9939c04c3e7bfe9aaf9f359792604a67c7a2a270fb18bece00b4c9d9c99f364f21fb43ff97501f8a5e4932e827536a44a855ad6991ebf83f8c960bdc297cb0591a2337887169b9af0ed5955f8eebe59adef2749d716b2492ac0fe725a5c45cb354d7ab6dca0b756df0e09962d95003b203e0a83566e0c7ad2855a9171226b724253f54e1a8fc9b477cf0b764d9603cb0119a3419ae1713c4560977fd9d8853650ad1049703d0f7912a8bff5bb12a69a07a263318be86b56aea57ee2ee3c8e2b01c5ee321e26b7475332c1fa4b744f221bc264db1ad384382bac877bd17af30114691140a4a456c32d722194ddc406c4251e96d8e5346691fc3dab387f8059ed5099db546758047c9cb7e2a4c049b269917e1d03426e83dc63505275f4e8e1aa9516e60aa1e94d75b075c22ca933a0e599cb2defaf59a0cb0c82d75108b60f0b82e5592e412eae775951aa05a57c6c40281fa3186528b172772b5f6affa11cf6d1cfea16f4d3a0a3ac5122ed6b07b86dc5442779023bad9a033f9f3086e24ab160bce23ad07b96fd0e3838b308acb24d922971454506e24a0ab2097c4b48c13bedeae5232a0b56ccd9f77ff7347c4746d35fed1a2a721d15bc141ab621daf107b145e274e7cf26fa7c72cf77ab9d03da55e7f406724146efcee2218e6993d886293fb9c1a0da0ac87c1ca13bc33a238808a5d5a90d3c944dd4763b3b9b73461535724a41825c7a069ee2821f8c3858c3ffd7f9646296711370e75af51264edd3bb44b58d9f76519f55ca60840e564adbcb152d9364a7dd1ec71999bf419ecd27c45b76cca7df71a96ce10c145aacfb0da984e8500307e2d4ea991651cb01197d8cc1ac74677ddbd99996adda44e44b376d2ebec8cc404016d75a9325e902348540559ffd1c98ef41ae46250eddfefa18e6fcb29bc57f9b0b86a4079f530ff8604b2a6d35621d28f775f77115aa7797b85ae8545c05154f02bb6ab0342bea98f446c8d6c55a6f14038ece95f8eb61c7368b5f1769a3fdb9c120d6dc35f25fb8b90c7ca44759b43ce7bae893702e0907880697a034982cfd8d83b9a99e74294c3c5c09495ec7c7a89dac3e36ff45e2b93475691e3d67b308280b57bc3d6fec135dd40a00e91a70687e186d2b7434ff7700b166d0314bb1161d140da8b784c86039f4bc80aae873dc56e951fd2b56606a90fd0af5527e6044142b89420ff98c2a714ad82d240e7ec5fb13e963cdc30591185e5aca9678d9b196275508b85f8f7c54c02629192c0162dabbcbbdc12c3d144efdcb4b254f5835458e993a35526e343d4df090cae202f7e5272a6c5f9144d207d5c65823d51869264692d8d830455830680227df4ba6ee77bb255f356c2094e1ae10e90ba7417a21920c918de5d4e7769dec5dc2587fcf9355567817e25b9f068fb9720523ffe8b913c2b68431a5fd6cfdfb8cd8a739313855d845fa71a43a612b99515ea32ad597058caa2637a4b561476a2774d2274581f14faa0c9682a0d78a4142bb44c669685af9971e01d7d425d64b8f345782a7a24408938fb1efb969dc375b084b149770a2720a075e36cc327e4a40054a1457f6b84fe4c00a249e29766906a0c4b803d1fdd3db2dab11acd9a7ac4f0ae24b360800edc958f85932a6d917ce360f893fe78972ffa52dc58f13d00391805ce20c937468f9ad8de0cdc20c8aaba43638b00c6a6e01dc721df5cc72dce52a6fbca40c64b14adb1733bed798545d7d177a270dac0273038801ea1741af4505c73ec4288826213ac1ad25552f907ac4d8a2e3402d91f43482298bf41692d60e095bc1ca8c0d5aacc9d82f98cc8d2846f673d76332fc517b647d46de1131a636c2048761a68eb59f58f2bcf8dfb9ad5396f586f37a9be26efad7d5cd1c6bbdc15c87108620a8366922ed60719c467a6306c61ab2504620601e3e2b91413bede1a80a11d5e0c8fb7274cf7a1d6d167e5cbdfbf340214d5611423c2153b86fbba6e3dc7cdfc1e89e76b66e3305118145c4e5010a4d517b2fe5c54c9f43705ef064f0d8cfa4e98786f3fa982f06b5fb71076705ac75ca8709398992bfd7bef97ed67580a9135af1c10a389ff49eaa22263e6250285eef0af460237ad2c5c421870ea2986fe2d22e64b1d5cea35131447dc1d876fbdd8a87180fbc83e89f3c7bc9dae9eb8d8170ec3a1d9e4d020327d2362562c65427f7ea731a1ccb04c86d906a162b51ef2db9983ff8a6e007f8eca3f5ffabf24c74ab0d25249a0e6418f4fc90763b2c7b1db598051b4235ceea529dce901f424761dc215c9b36e64b9e0db1605a70860d3b40c3e5c9a59b0ee7cb0cc1712739c36ca659ce32cee6310ac3c4e86fa34d3de23742648e23de3150cf0137b0e1e5a168b08d5fed530231d96268f36a202b6a17b09610075e15335295fdea40d230d4acc76c9337b2d50c59fb15d568008cc5007b7a2468a8335b7f2f96b6a9d0654f7fd824b93b69e2808f73bc93654ce58403cd866836b484d9963ddeb144095d5faa7ace382cb194b434f39522b6e19c3d8704827cbdc44f5e10b7c0bd381b1781128f614253824ff99a20fcf5f93de533df408d32d2214d4ba50849440008ea401b6ddb14ed0baec11f62b6a819b8329238ccf6211ad2f4a0781e0a13aeb42889e53301b79547d2c8d32d9d35d346268ea02882050f5fff822d87bcf5f55626336a48ac353249a681dd114fa44cc5f232d4b7dc3a955e4836b07117137d2d3302b90b7ceb3d62dfbf9f00167de09568570efa95def3e671a160f420888e72ea44b4e912a3a3aee9a8b07ad186ccd549a530d5113dbf4f6ef0312e137d5106434661e2f38117d7e1d8fcd0b1d4248552b4682e72d75550389a39c24b1fa386d104b40565d37d6cdc7ab76b3d031fcb1815e6726ded14bccbd05c5301dd1e69108616e5859722d00c89ab8fa025be85ec6ab0cc0381a8c11e092ba983208", + "patch": { + "babe": { + "epochConfig": { + "allowed_slots": "PrimaryAndSecondaryVRFSlots", + "c": [ + 1, + 4 + ] + } + }, + "balances": { + "balances": [ + [ + "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", + 10000000000000000 + ], + [ + "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty", + 10000000000000000 + ], + [ + "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y", + 10000000000000000 + ], + [ + "5DAAnrj7VHTznn2AWBemMuyBwZWs6FNFjdyVXUeYum3PTXFy", + 10000000000000000 + ], + [ + "5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw", + 10000000000000000 + ], + [ + "5CiPPseXPECbkjWCa6MnjNokrgYjMqmKndv2rSnekmSK2DjL", + 10000000000000000 + ], + [ + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + 10000000000000000 + ], + [ + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", + 10000000000000000 + ], + [ + "5Ck5SLSHYac6WFt5UZRSsdJjwmpSZq85fd5TRNAdZQVzEAPT", + 10000000000000000 + ], + [ + "5HKPmK9GYtE1PSLsS1qiYU9xQ9Si1NcEhdeCq9sw5bqu4ns8", + 10000000000000000 + ], + [ + "5FCfAonRZgTFrTd9HREEyeJjDpT397KMzizE6T3DvebLFE7n", + 10000000000000000 + ], + [ + "5CRmqmsiNFExV6VbdmPJViVxrWmkaXXvBrSX8oqBT8R9vmWk", + 10000000000000000 + ] + ] + }, + "configuration": { + "config": { + "approval_voting_params": { + "max_approval_coalesce_count": 1 + }, + "async_backing_params": { + "allowed_ancestry_len": 2, + "max_candidate_depth": 3 + }, + "code_retention_period": 1200, + "dispute_period": 6, + "dispute_post_conclusion_acceptance_period": 100, + "executor_params": [], + "hrmp_channel_max_capacity": 1000, + "hrmp_channel_max_message_size": 102400, + "hrmp_channel_max_total_size": 102400, + "hrmp_max_message_num_per_candidate": 10, + "hrmp_max_parachain_inbound_channels": 128, + "hrmp_max_parachain_outbound_channels": 128, + "hrmp_recipient_deposit": 0, + "hrmp_sender_deposit": 0, + "max_code_size": 3145728, + "max_downward_message_size": 1048576, + "max_head_data_size": 32768, + "max_pov_size": 5242880, + "max_upward_message_num_per_candidate": 16, + "max_upward_message_size": 51200, + "max_upward_queue_count": 174762, + "max_upward_queue_size": 1048576, + "max_validators": null, + "minimum_backing_votes": 1, + "minimum_validation_upgrade_delay": 20, + "n_delay_tranches": 25, + "needed_approvals": 2, + "no_show_slots": 2, + "node_features": { + "bits": 0, + "data": [], + "head": { + "index": 0, + "width": 8 + }, + "order": "bitvec::order::Lsb0" + }, + "pvf_voting_ttl": 2, + "relay_vrf_modulo_samples": 2, + "scheduler_params": { + "group_rotation_frequency": 20, + "lookahead": 1, + "max_availability_timeouts": 0, + "max_validators_per_core": null, + "num_cores": 0, + "on_demand_base_fee": 10000000, + "on_demand_fee_variability": 30000000, + "on_demand_queue_max_size": 10000, + "on_demand_target_queue_utilization": 250000000, + "paras_availability_period": 4, + "ttl": 5 + }, + "validation_upgrade_cooldown": 2, + "validation_upgrade_delay": 2, + "zeroth_delay_tranche_width": 0 + } + }, + "session": { + "keys": [ + [ + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + { + "authority_discovery": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", + "babe": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", + "beefy": "KW39r9CJjAVzmkf9zQ4YDb2hqfAVGdRqn53eRqyruqpxAP5YL", + "grandpa": "5FA9nQDVg267DEd8m1ZypXLBnvN7SFxYwV7ndqSYGiN9TTpu", + "para_assignment": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", + "para_validator": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" + } + ], + [ + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", + { + "authority_discovery": "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty", + "babe": "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty", + "beefy": "KWByAN7WfZABWS5AoWqxriRmF5f2jnDqy3rB5pfHLGkY93ibN", + "grandpa": "5GoNkf6WdbxCFnPdAnYYQyCjAKPJgLNxXwPjwTh6DGg6gN3E", + "para_assignment": "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty", + "para_validator": "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty" + } + ] + ] + }, + "staking": { + "forceEra": "NotForcing", + "invulnerables": [ + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc" + ], + "minimumValidatorCount": 1, + "slashRewardFraction": 100000000, + "stakers": [ + [ + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + 1000000000000, + "Validator" + ], + [ + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", + 1000000000000, + "Validator" + ] + ], + "validatorCount": 2 + } + } + } + } +} \ No newline at end of file diff --git a/zombienet/runtimes/spiritnet/.env b/zombienet/runtimes/spiritnet/.env new file mode 100644 index 000000000..a44d7f1d8 --- /dev/null +++ b/zombienet/runtimes/spiritnet/.env @@ -0,0 +1,4 @@ +RELAY_IMAGE=parity/polkadot:v1.15.2 +RELAY_RPC=50001 +PARA_IMAGE=kiltprotocol/kilt-node:1.14.3 +PARA_RPC=50010 diff --git a/zombienet/runtimes/spiritnet/network.yaml b/zombienet/runtimes/spiritnet/network.yaml new file mode 100644 index 000000000..10c463208 --- /dev/null +++ b/zombienet/runtimes/spiritnet/network.yaml @@ -0,0 +1,33 @@ +settings: + node_verifier: "None" + provider: "kubernetes" + # 18000 seconds -> 300 minutes -> 5 hours + timeout: 18000 + +# Env variables: +# * RELAY_IMAGE: Docker image for relaychain nodes +# * RELAY_RPC: RPC port for one relaychain node +# * PARA_IMAGE: Docker image for the parachain nodes +# * PARA_RPC: RPC port for one parachain node + +relaychain: + chain: polkadot-local + chain_spec_path: runtimes/spiritnet/polkadot-local-fast-v1.3.2-e220854.json + default_image: "{{RELAY_IMAGE}}" + nodes: + - name: "relay-alice" + rpc_port: "{{RELAY_RPC}}" + - name: "relay-bob" + +parachains: + - id: 2086 + chain: spiritnet-dev + + collators: + - command: "node-executable" + image: "{{PARA_IMAGE}}" + name: "para-alice" + rpc_port: "{{PARA_RPC}}" + - command: "node-executable" + image: "{{PARA_IMAGE}}" + name: "para-bob" diff --git a/zombienet/runtimes/spiritnet/polkadot-local-fast-v1.3.2-e220854.json b/zombienet/runtimes/spiritnet/polkadot-local-fast-v1.3.2-e220854.json new file mode 100644 index 000000000..0e02d39cc --- /dev/null +++ b/zombienet/runtimes/spiritnet/polkadot-local-fast-v1.3.2-e220854.json @@ -0,0 +1,196 @@ +{ + "name": "Polkadot Local Testnet", + "id": "polkadot-local", + "chainType": "Local", + "bootNodes": [], + "telemetryEndpoints": null, + "protocolId": "dot", + "properties": { + "tokenDecimals": 10 + }, + "codeSubstitutes": {}, + "genesis": { + "runtimeGenesis": { + "code": "0x52bc537646db8e0528b52ffd00584437063ec488c01c581048e96ad201022b1874e904ec488c559449a00b2001271312b22e710332c4be49b62b752d16cdfa7a0a8127d2c30372695810c9404011305dde7b1e0f56b8c183c5791a7fb81924d4cc96ded74fb611a2d6a41142b6dc325621151b711aabd2dcb9dd432a7e25df5af2e5f184ee56af54aab7be2bb96bd4765da32757b4ea10b544c8f40692a9a2b45cbeb5be9962ac6f66edf6fb39fab6ba3d45cbedc3fad6b7cf2d4471e68e0b25908281f812b5d8377e9f7fda2605d121bccb5433a0c141f2e99915725723768dbb66c62e7d78994a86252eac6bf4bc137277adb5d23e51d7eed3eeaeef4ae9c14b2ded88be3bad96bbc6d6a4b72ba55f42ee1b651abeb86f7c433a73a104540cc437a43c32d7b8e045aa6b7c6bf77afa3a1aa196698d0b5eae748d6fbf96dcb5fab08ab4a4b7c73e8f9de5ae11358f46baae553a2681ba7d1e8d40514ac308f9c7fcad0f39880cf94672d74cf2d6d3f368849e8e24c490cbe564b8f4618b5ddfe8f9dcb706bb564fd4b414bb56df833461b7bedfdd046f7d08eb5bd7357e7dac6ff4d6eff48dbe3ea462ac6f7ceb79ec4a279fcb0405de3e78dbd28efaddfb9d6da2975a36a26f6bf6e9899aa8f9a736a5290899da4032950c5aae095e3ed937a6ca61b97cb06f4c25830f972ff68d5e3eb710e34cd8e5f30fdba45fa601452951c8977f4cf2f643b06fe6cc0422487a53bccd83a4afe7f378027d12778d4fd4212dfb8a3cb444a9aed347df0f5b04fb66d2cb671ea237ebbbaef1c35a825de38740d6f3793cc25de3570b768d4fd4618bb4ecaec8434bb4ea2aadae93cda5ef8f3cb444735789c875122f7ddfc5434b347795885ca7efd2f75f3cb444735789c8a5ef8755a465bd230f2dd1dc5522729dbe4bdf1779688992b94ee2a5efbb786889e6ae12914bdfe7f1842e97bbf4444d47233277e9c5bef1edf3684473979ea8899aa8899a7fda2691976940356d2e42be60dfcc7e3d7f660211649fdeacefbac60f6b09768dcf83ecd7f3793ca19f542dd8353e778d4fd45094168521738d0b5ea4bac6b7eb1a9f4723dc353e51f34ef80249cf54b9dce5f318f21049cf67960953aa0ba260d032a10713aa98c08309544c9032a106137230c1061368306106136448c245923149c42419411217246141122c927420c90992d820090e92e420091849ca24b94192309298494245921424792249982450249122891349a8926c49b2459224920891844b123049ac485245922b92a8200912493c906405495090048824432489224995243c24a1c1888ba3171cb1e0088b233147313872c1510b8cc2301a03091847451c4d1d1d711482a32e474d1c217164c4d11247491c7139e2c05196231b8e3680c40c245548cc202903890e8c6e301202c904904c21c90192309044211103c90d90d000490a90bc00c91648b8407205122390844142051230485480c40a245520890249114848800409244b1c5171940224502049e2c88a23142051020908901081e403466520d10109104878409203921d8cc440f2c3d10d48ba38f2e1080347588e34709481230b1c55e0e8024663905c31aac1c803476090e06064c58804466618713112811111465b8e88303a633484910e8c9e30f281910d461c30ca018916465247618e5470b482a32b8eaa30c2c16807461a4092e668cb511047391c7d39ba722403121b1885e0c8044655473c1c9de04887230a20c972e4c411144870703401231f8ea640f203242640e2e56804465448ce188dc0c809a30d20d9620404920e1ced7014c551eec8cb919623aa23298e4870d443093b949043093794804309564a882a61ca912d8e541d09e3480e8ed8e0480d8e7c51820d47ca1cf1e2081747c8e062708407477e70048c23671c3173a407476e70448b235d1cc1410939234a18b980112c467a30c283911d8ce860e48a910d18d180112a46a28c4c31328311198ce48c08612408235a8c0061a403467e3092c508078c54313201233918c1c18815233718b1c1480d45698ace28fa41119a221f1499515446d199a21e14f1a0888ca2318ac428ca415155511845382832537483221a1491299a4151174532288a41d198221814bda08805452a280a53a44591154547147d293a41510a8a5050d48222218aa68a4450e4441114454f1475294aa2a889221014295144556482a2228a9628d2526444d1078a802842a26888220f1449511444910c4533145929c2a1e886223f28e283221b8a9c51244d113445aa8a98290246911c1409a3080e8a94295283225f14b941112e8a8c29b28222628ab8a0880d8a6851648b2259140953e48a223c283282225114a12aa2a2080a8a7ca008088a2c51048822471479a248078a84a00811453c504489224514992a3244111114912ab243111e8ae85024aac80c45ae14a152a44a9129b81c2e0b9c189c0b705f7026c0a1009702dc09705c7042e05a801b0247046e0b8e099c123810e03c809bc25500a7019c0f380be07ac0518056c1f180bb00ad00ee069c155c146e86cb83cb828bc5a5ba3fdc115c0e5c26ae076e96ebe5de706d30ca82440b9118442820aaa247972062f464097246101fecd0c18e3276e06007184425e8d1223b6247999d208858403406d10e8878404406511644ac106d412407a21610c181480b2237108921320122171061414407225788a820f2425403222b767441c4041196a22988a2208282280421d840d444cd044445002183288a28479401a223888c207203da03111b8cd005c8154056f0b9e0cba2c39450816e410d2a3d86060582a481d500b321081823c8e00704b01d107131021323846004108ce0c40fa9114430c213230841830722f8a0079a9b17332f4368b8385c2b950624951766568219096851b31d9058cc64d0a3023d76f05430db628815f204a40a666286e030ab9aa940c894902abc19763630c20d23d830020d429c18b203ed062116104281212d43b9a12a43370409037606ec06417e209b0ab203d899203c182a8236046d4b0f248668189a6148861e4a044113e4cc500e9d988b829d2c4168e041418e21a9985931e3010d31480e08e9c0102778b600c28210267043135483200fdc7a2084034282e091418f216880d1a3061e333928c01346100c8080015202202400220590110895318b62a6845010425a786830c322042bb72d3f32202382680a2f07231431c2113e7cb0a306320ff8306384213c3046206204236035f0f1831f557a4ce1584236440f066445fca012c4cc8fdc08533ed0f838e347d48f2c4170701be206c48f0bece8c10f1b7e70e0c70e2150fdf8e147057e68c0471a1c067ecce0a30cdc113f2c70ebc00f1a7e4cf921c38f1e82dce007058aa2f881811f3afce04102b2311cd0e303b80cccaa5c236a291081061d17b52f3eac988180566586c42da24795cba523c353050903f206b331b42921cce0880e704684e0c53b410839dc21767cd80162e7871e4ff460a287133d40d023043d8ee821821e537a0811648ad90d6660ccd2cc4e3083822635eb62b6029a0eb41d665eccca987d313333ebc12c073333789841634c111dcc5c107444d0d4ec095207e40e4831c8304830722c4056e5602173102426a805412c08ba22480541550451118482a013049520880441544151043d11c4449008703a086a623645d012b409042511d4a568872023828a108265079a1d63c07a004bb3c3073bc2d871831d6776a4c951821d67c83e2013411032603cd861466644901ec0ccd82106ed08da54506e8719411308aa21e84a900d415646588256048d88201982a4826808d2210887106a8055ed202348193d8c80a181991921891d2d41513494a0b1441015a230887240648608074437200283c806411608aa405095a029f4037409da958e871d23c0e1610714640b863c9163438ed40e0dcc8c98bd80e78b6e862e4a07173f6a98fd20880e7eb4888046c7057460998d60f681190c6628c8c1048f345d1038d2e488ca31438e5c0e1a763890a38a0c0d8e1ee0e0010e32708c81030c1c4ce0a0fa61058714384a80c3cb0f0d7e6480638a1d0de020018e30384080a38a9a171c50745d904f902ef07238a8d498d283871e32f4a0800f1a7668b9b1835812b7343eba5c1304a9a2930a42e24a6123a3470e21d0e04ee183881e3acc92b881058f197860601b03c7067068e047033d7020aa62eb62e6834bc4cd0c1b1a1b0c8294b82710a28120540ca1325b82070c1e2f7ad8608b410e1c3ca91f333d66d801c40d2d37326e5460c70e6834cca4e871c38f9521557af49083c30f0e3d6810e2c3ac8a2151a413e416361ed8ccd8cad86ab09301db173937cc6ae083ca26848f296c34d4c03417373fdc7c3042961a068f153f657ebef899c1cf123d92f809c18f113f607ea87eacf061c14f112328414482113e3002123f41c89ee8f1831f287e3af003c48f123f51500bfcdc300bd323ea13e2a7869f2c46a0f8a1a17e09e1861f0ec45043c1cf0c34cea0f1839f1c9055d0088386991b2828f2021e151051a99d8006107607384c502b014e05707a28a3282d50e302ff82438193e0535c0a1d2a1892c5ce964ff131c387074768600404431cf051c18e103e597c4ed083844f097aa67a94e849c2c7899e2e3e5b7a9cf881c30e1ef458a247043e3fd4a0e16e09fae20a518be061011e168c6085864411076849044941e4891a298400c19385900d0c2922c88a5b021f4708d1e2dd1034441014371e04ad80e7054126e071014f0d8252702b634644d008845c4084206e3a1014029e2bc829823e1004460420864cf1ccc04686878c67054886db99213a046111c20e4153dc0411e48527073c6278caf8b041900b82c2047d01ca89a065b665480584640047959a29c82374f4205445048aa0180439f153831078d0c1830d0b21316641f82882670c8f18463e50d4812117980d31134286444f067a38d02344cf067a80e809a2a7033d1a9035216342a684ac0c1908643f9041f1d345764616821f227e3c208b429684ac8b6c891d3f80fd80e80532336454c8a4f83901ec0b590a644ec8bcc87c2043818c05b2125c17c8c8d851b58303321c6456645704ed20b34188977ee273e223b3230731317c568013b5a3023b2ce07345921d623188bd203626a6456f898909ca61284b2c8b1c32c45c50a40b9944093cfc349113829c2672b208e9e10707422af00306cf0a7ebcf8b1410838ccbef0840962c6cf11301fc0c88085011b0307033836c074803385e60158191a17980d7066c0b9004e0db01ce060c191fa11e227899f21685d76d8e0670b0c073832fc4ce1f800ac0c9a114172f0f3034e0ec7023834c0c0881df1c3e5e7033f4cfcb821c8183f4804a9c2a18253e5479a1f67fcf8c10f343f7cf0c30c980c6064602de8f96116839b326ececc42d049e076d0c34ae5c253553de0e3821e1fba0df4b8d2436aa7033530a879814f181f2b483348328ec8a07b808121b390606645f8dc80c401d9a50ee1d16033e34ec068052dc4accb100b54263a21786e506750cd9057d87ce045cd4c4012417a80dc32eb8009584825bc0974537870801383070ea4146498ebc491334330c0a30c1c47f4a05253400e71c40c1f6588cea85a84705063409465c645370124439050d018832401f9054f0cda89589710ae1c41432e417ae1e9c2688ba3274824904cd15de9e101b2cc8caa82a00809663468247854e9722832450f2eb61fdc23c81f86187104c46c0641c0e438c3081338883012c51028725e806406240a7874a023063ac8e890818e1990597c401c59d161c50bc1901c78e4406ae9668004cdfdc2d30292054392a0518110cae03002071238ba84a04325d363024743184181c3871919e40bc82f428410f20309c48f0ddd1735ac904220a9818f992056147931e102414810c20a907811820d90b0e03ed1519989d1509021e0d1828c41d098202daa0c7ae4846431fa01c9175a0e48bee0b101c9050f1648b85c1d806041f4c38c8c0f191c4554140481c0764510174882e0e182fcc0bd2274032432f88620b99022188205e705d901b20992069e0c9d0c8460803463d401232d178d5114474c1ce1600206900881a40c69041944093490455c121c7920688b1c698e4060244510113a7030aa0112147c26f0c2f0aabc31be283c313c1e783bf074e0914114039818462a0072022026f8c27c2af8ac08cae2880f7272f0c9c18c05e4067cc2f029e35303a11fbe2a7cbef0a9f201c367064659188511caf281a141068d1d9056ccb8903298b5a08811459220c51441220646110f342be4140c053e34f0e9c2c70b1f1bc068984d913320474082a0841978a0991d31f300cd06b20b320ad28b990d663ac8a9815c016903b206b326482d68544832341c48139029204be0996056e6e7065e951c2b3326bc28bc27bc2b4378f0a8f8c8e04819453ff8e0c027063311147d51e405112a8a48403241cb9530811264f081c1ed8c1a11d438019b0116059bb2a3891d22d811821c17c891811c1820d2001107883600cb02a6054c4c10100469220813418408c225c8962017089281201890e920e341b6439015f8f8c107103e3a10648b205c102141a40451123ba8d851c50e302220e1030477ca071323e44690c107163e5ce0a30523f4204214228c80a807a20a105140841b44c041042b34bad0488206123f14f8b1c04f05824c09422548d40dd5cd14375210e9019132889cb995e7701c76d8d06560c70d3713b8d1e1e68a0f1b7c58f171c3cd18373cb821e3e60637666e7020820544b88008586e547073c54d18222ca85810c142871375073a9ea85fec986147d48e293b4a7093c4cd12374ad89461e3031b336254e4b020078b1811b1a95811b112c44c10f3422409224b105162e6c42c05b333332d6659ccc2988d41ab6176c58c0a9a0cb333663898a19981a1cd50848c224e781fb83bf048e079f1a6f096f028e025e189c073c2eba13be31de14d7952785d3c243c238a58a0f381d784f7a5a3818783c78387012f070f051e162f039e05bc29de05ba311e155e0a3a34de159d195d195e151e192f061e17de0bbc311e0c3c1bbc1dbc0a7835782bf074f0c0745e7431b8565c30dd155d155d98ce049d0a3a2b3a30dd09baa98eea884cd781ee870e045d0f47d2e064a8655c33aa199d0cf50c4e063832aa17b58baa45dda27251c5d42bee19453ad415d4125411d429aa09ea08aa13d54b6da286a092a052d513d4272a14558a1ac54d53315033e042c5522d502b5029d068ea04ea0d75863aa5d65071a852954aad5273a8566a54b5a1d2d03fe833da8b23623415cd82bea2ab682d3a05bdc5fd417be91f9aaaa5680e74085a044aae0f9a885ea295e81174979e6a26ba8936a287e82c7d4417d120682eed81ee4003d15a70534aa000e581097d012543c744805e8062a118a01938a91414ada1c993142a04cd423960522218b00016962400010750c1a88402102085011820002700c084244741844418028452e0878f1c3b7400914084f4327d16565724a6250d50026509920b4a9484b4b6e004498992161090101c9809e985254e94d08458e1262426a407c884dcc0484d4b6068c09199101b9a96909c9ea490a486901af8051662c01122c54e6058520281a516943081729dc02000082c15e508a1819990901ca004024b484e4c9a20b5500aa9c22fb010438f102a3684443153131213d3122550944041628185252fb0a00290902941426668d264090b4d9a2c2922830b4d0f7082d444488e91901ca0e449939226171ec004298a6d280d333561b2a409a9052548480eb03174063f718013264a20b0840483921226506e9313a41720b004850ffd80915870f2c48992252c38790200162ecf109a169eb080d482cf900f98090248494c10403a1a403964061393a25b0e95f163e8cccf500fd86688074c06bbc0c2132848b4a13160780013073879c2821226502e520396e0708676606348074086c4e01698286942625a828105d950153321317980122650ee12282d3859b274a467288ca618909cfc0ce500024d4c969eb8d004c3129f2130988909a909cf90999b211cdcc0014b909ae00cd980975e78e105135e43656a0cd5805b4072f200264c4e6050c2c2132726302821dd86bee0262426255e3013132608380009a9014a9840b910700012122e67a80b26a0211a30120c483028297981c992262cc88666d0f4c4494993254e4f96a04059f233240366425a82a1690992039420b5f0c4096d880c332d3d69d280254c4c5a88010b4e20c0b40406bc64690994173cc009932416963440c90b30bcc0c4099317c67013d393264a969e40415ae2821df0e4c91214255098b8c0b484e424ca132510404a2a87b66026a4169098348102658913187c86b46026a42618a03031692167488c1dca829196a028415a62028312d2921226073841a131e4026e7282f40252d3922626073841a90db58099909a9e382951e2e4c9ce1016ec02d312179440a0014a58c0d404c98993252eb0a004ca0b4b2e2869c1090c4f1ae084c90a9a9c3c614189d20b2d5cc14c2f2c595a0245c9d29330fcc401b32115305393132427242bb805274b58c831540523b5f084059e2130bcf4c4014c484c543053130c509a607802c2500a5e80818969498d2114f092a6252d2871f284490b484d4c4c989690a0d818fac24c484b4f5850028126264d9834604913264b9c967ce804cc040586274b0f50d2336402665a7ad2c4f4a484254b4b50880d9580a3308172979092969e18e08472c80b23352d69814993254e4a90604082210029b480f480072c4901c71009664353709313189eb0a004e9014ba028615a424a5ad2c4a48469c912921d928297343d814149099313254ca0dc07386192b4a469003b43543d8646c04b0f60f28212a4a6250f406a82d48212a61690909c040d45b184d48017905eb0310405bbc0b4a4095393274fa0d4187a829f34297182915870b2a4c992062879d2a484a9c90993273f432260a616969644415a52f200274c5a7082044509132897a9c99327283879c2a4698913262f3c01801d0a013325b180e4020b4c30539313a42524179c30f910089c3071006de803cc021326274c969a62405202812650a02c51b284d442132630e0925878d204b733b40433cd8694e0254a768692e017942c695ad2c2922624136a8690880093264b98343171c20467a80b27b1f0a44903942035c1c002520c48364347f0d293222253a4260d58d2e4040607286962016989490b4e982851226381e6c52a4c991280b90c1532552e772954957da416520b8542575d97d3dde4e4745dd775373737373937dd0d7bdf8a57ccdfc7ddea6e5abd0a36a0b9e3af5b35ddec75b73ee6ca1e8ec7f4f3baeb47bf66ea31f3c7b4dbd5626da6df4799b6beafd5faba56e5fa799e576b65ca5f6d7ddfd75fb3573d661e11043dcaddcd02bbeb536f565bb5d656adbdf27a25d6faadc0aecd1ff56a83df0776b758bfdab5327f20d7afabddc71fb8a4f6b5576bce0de7704dfdf8ebea5556d797d751fa7d1fabebbe5afbebc0affb1a049941febad6fa8ddff7b93e9041afbb96e00a3afdf5c7b3da5c6b6daed5f3faab9dd7550ff4ea472ba5b456febe91bbe947bbe9f8318f1e33e7d4da3bcc9f0fef7cf4f351bfcfabdc31575e71d32f0426c966a6fceabaf22a3373a5b52baf9841cff33cb0e3eeab1d73e7b1077aec795d3d0f1441cfab5e1541f14637fdbabffa3128d6fe2a083633077537addd5feb6356f2d5e65a8d01bc8057573feeca83993faf7eec559b1a76c8fc7db56fbe9befebf1ed70a5dded755c4105743ebae9d79d80da3410dca95e0541cff340cf03bdcff340cadc3622ac6bc1e8e7f23e16fdbe16d8ea16025a1eac55bf6eb16dc416bb5b6c7d5d8b7eddf7d58fb9c5ba6a167bdc756dd72736585d5f7f9e57767765cfebf6badb6bcfeb6ad7f63caf1e80996f5460b1b92b7ba0e7893bf46b51fad1afab20a521541a3468d0a8ddd77dddccfc35d860d7af52ca227b6d23565a65afbb560f64da356d802e00e59e9ef6b8c755377bec55d0ab0c76b57613a07e297c351f50ed01d474d757ddc1de27d65a69f7b5be8f29ed19b97e23579069f7d7acaf996b0541af05d0b5f2c7dd6337d71e5dbf66fa81aefebefebaf2006d73dbd4fa75ad3a2aac55835b01f0beda5fad9ff7d5ee4a52cacc3828d41e4fa0d51bbdb183bec60199b999695fd9cc4c524abfa65ff7f87d9f0dee9657bdfa55eeba5a71059957abaf99b5a2cdbce2d5c7cd2bda949b573d2c6e66b1582c16377f5c2b8c631ceb1833737b5d2b77775d3faf2b777fb4697f5cb9ebd75d6bf558c7eb4ab95ffcd2619d7eb54ead9573544a6130da304a99b9bfe666da3636de573f4a6bfd28054110f4287f5eafbeaf7ab6bba663e6ca5cb9bfda5eed1d6e00b89841efa3dcdccd1f7b5fd7f4abecb95c5e8b2d821ed8dd95f6678258fbeb5abdfa7dd5f3badb73b5d86dbfaf56afabe87ddd1f6deebabb6badb5d60a7edf077677d7af9b6b05bfeeabd9f1799ee77d9ff7791f7f1fed243ababfcffbb8bfaeccec55b056b1d6ae5fad1ef7573fcafd35addc4d3daed6e5556eae94f6d75cbb9b524ab9d63a56ee6aedf6687bb5d6f6daabedd506bdeeae2ddadd35dd0c7444bf1505b9d2caada6f5fb6c3ea634477737ede6afbb8629926e7e357f5f33fdaa07d65a6b579b996b6865f6c61167a49538e3684449f2a3edd5faaa36faebafbfeffbc871c40161a4e18c353535e0f862fe6a57b052eedacc5c47e6166d40288199c61f8b94bfeeea551b200802087a3820880382a0e781e0119084eefe687fdd1f3357cacdddfd717f39fdf1e77d2c66317365665a9bbbd9c857b9c59f2776d7b4697737d89ff731d87dfcd55ac4ddf731d7f66a91aedd5cbdf6f86befab5dd7ea7d4c6bf3573dcff3ba1b04b9b93da65e7bccf563febc6eeffb98bdcf7b7dfc71f598bb3dafb9995904c15a3dfec4dad5fbbeef7375e5efebf66a57af7a5da928ae3ecff39899bb9b29d38fbbb903b9ebf8fb2a7fccccfcb1e779dc5e77d35a2b8eb9d28ad3ddcc5e73edeeda5f777777d7ae5d2b5fd0fb3e6a0341aeb57e14f4beafebbacee6eb40e6effb98e8aba0abd6dacce0870387abfbbefebeeffbba8fc88d116c22745f6733ebbecadf37e413e27dcddff77dab4a3d8f56cfab9e277a957a5e7f2c764363ed5a6bfdbaee8fb93f6eafaebe8ebf36618a09542a8d1b024b4f5e407ae17b8149931318966ccc014d30f020b9a0a4c9099325284a586062f2c24e90169096905a587aa2e4f6a3071293a5a61b406cfce4f8b141b6d084890b2c28696a02c3120720b560a32ff430d29203942c3d695ac2c293264d96ecb09a203921355112c392177c5e0f78d244c9039c3079c0039e34919d79407961491313d20b4c9aced30018986c42b55b0b4e9628415a5a02e585273e604d96b0f0a4c98d1e4b359098989096a0bcf08405a1907b20393d6101698947d2ed470f282c2031e5a8e100264b484e3482f0f8f1a3470b357c909a962c2139417a8092254c2db080a4e4491314082cb1402306a4169c3051e284c91217587080039ef8b8f1f4c4f0244a534fd2121658404abafde87119901e3c94f4404a5ad2a4014a1ee084890b4c4b5cf8d29226261b2493ac877b3c79b2344b626149039a3479b274e3c712a4a5190490929434c580e4a487a709e90132195313139318907656ccc3c913264d2c2c6172b264a949491393175e7852fbe11e31307100d212141b5b5a82d484059a9313a44a320f254e9e30615a427252d282132428509628417ac092a5274d4c4a9a6240da7172825473b8aa743d1b7ce2d6d353b702834f7505280af5f485ac15f8e9690505e541413db1eab80214857a3d3d75150aec270af5f45457e0a7a727281614d4d79d505db802145d3d3d4141ad5680a2504f50758527fa04053e3df10a50f409aa5778a25074852728a80a459fe80afc445760a8a77e7ae227a85e819f9e9e9ea0bca7a7ae50ab15f8e9090aaa5b81a1be159e2843792b30af0045a1a01aaa5b018a42d515180aaa5780a250740586a22bb0f081a1cc4c5f605ac2014af576477520bbaef1c31797b4eef4ddbba475efaf1e76650944ab8f24f457ef8cfaabd595689aa52691472328462b5cf0203fa9fbea21589added5e59764989ab72b9db6473c1d7da245ef00428ad724989c86d06eadef4ddd6cdbedd59e552eb4ddf05cfe39192cb3a5183a5928f12914b1988c57a779665ced17d24c17b773a1af96c57826049bf2af9f2bdd2ec774b9d052d48574dbc7a74a4eff33d12d80b2e7c197dfffe51f19ef89678d65bad12d6353eab244b2e9de8a5a513bddff7b09972772e6aff9549df59e47968f5a237e4d1087f3564d75a0fba62d277d657e51928e8f2c392ec1a837775f49d65bbaebd5af7de5d3c1d9f806fd958d7f8a285758dbf539635a12eeb6249cbd31355b1345b67b5acd9ddd6c3d3b2b649af781309d4082e730ed19aadb055f2a52cd681ac37baabaf34bdd383258d5a257a5776a76b7c1c37a4225802dd55b9d3354aef9d11d2f38f19742b1be9ba46bbbf6bdd43cb6a6b36d54bdf3aac6f222882df67cdefad7fa0d837102ce90dbf92c7d3f188bd5dd7466b8e6f1d2cf98e65489b697571d74cf052be62c9f72b6b7dcbb173e9a9ad0f2ba5ad122492264d9acb2a9bbc4b61b7bf536b82979ecb5569d2bb7a1df9ab31c55bcfe34fd7eac1bf6ba05d957cb9ec4a935e259a264d9a34f72bcda67af96d3d4b8ab0be31f3dde9db6f7d0e1eaab79a3f37a49e08c217483eec26a4c2ca6db110a63b4cf09a1f0b7dd4d6e2a1a11611153630105fb385105121c53bf8b635e9cdef86975af3e93af57dc012bdf42c588b0c45111c9d3a97c9542990ba4aaf4b5fffe221fec1adffa810bed5ec6b7eb73eec44e6219aa34a90f4211de910a41539f66244a9cbe5984cd78437e6eb82a9105a66cce53715621cbf4585742bb18e2484bc024110fc1a042b0541b0e6a25f4d09b9b9fa105640ead24b6f02513755a2b79eea107a576e77af74422679b7714def267bc1545872b7f922f1d052d0ddc287e22f4ecf6c3f1b550508f75dea0667a56fb0db7d66820fa4d9e47a0fba26ec9aec45001817f57925b5d2b5ee48a449addcee267b71bb9f7cb2dac8f081090e30d1854c2e87fb4e1f7e25e36899eb88c80188193a00052eaa0a108e5eea06c751551ab7bad40838faaf941a01774ea5407fa2506ddd6998cf9e44d5d67d65cfa914be537b7e3688abcd04afc95454f42687611ed080822d606c31840c56f0db4151000c141bd880146292d8018e717c1e53782e87a3b7d2371b975eb94ce3a9a1babb0d840fa8361c0b54dd9dcb541658c10dba1dd47d75ddbbeedecd6aa9d7c5edacf7755f59279f4d6a629dfc3b6f77faefb5ecacb8723fbb05f46e3e5dd32b939a70177775cf095b71e57a372370bf9575c25d5cef73224214d5f5ec16294f3bb298624716535833865b4f4b7e8700afdc22e589bbc0b1ce4a354d9abb25c78343103d6459aa91e5882fb92628dcc5dd92db91c514392711a2a862c8b11557707c3302d79b81bbc0b16c8ebbc0f1cdf37ad66421cc3b4ca6aa800db789de2db91c182031c506b91c8ead9427d0e6f866df3a6b42b9630a35328081106744e572381e4db8b97daf3f2242fe3199ccedce3c44454a4b7ac31669c917ac42acf3c3b07a9ee7851cf639e5fda97556ed44ca437df921087e00143ceba1f7d02be9795cb14ab204abadbb57b6c0dbbd8e469a6514de7af2766d9553f5212dcdb65d27f2e8791d7edddd5e6942859ec82aa54c797f02cffac24fa43c542f3f0ceb590f6946261407aef7ef9f35a13c703dbbf4fb1deaf268d4ba9f6595afb6eead32566d5dec76ff8c300da0759695c27aeb04601ccb4e79ef4601d04004d7b2b56aeb1e546dddc1f1847acf9a28983004c938f03410c1b1ceba59bbdd57a3913e5165958cebd2843a6add7a3a1ad55cf2f6cba94ab969759904b8ddc318d764aadb0db9dd3b16a380ee443c9cb9dd8bfa466fc7606ef7b0454a471ad77cba7548dfeabb3399cb349e2a54d72012617dd8858e40b406aa584b1eb0745e177a3c487d97a97890611c83dfdeea32d50e607c62655da6daa18b15352204c51aeb1a0de2880b53eaee0e03d1d5584b7a4350ace511be4a34cdc840cd407d2ee90f2453ed80c535bbdbaf97a976b0e29a7d63be7d2e5b97a976f07279f5795d6dcaa08b19c89be28109712099eaca98cb976f3fac22143297cbc980a37ca69e8e46fa3c9e50bbcd43f4b20e68ae8d5bbf7afad0133b1ef26e3d0cb1db14fbca25254e73fb4dabfb3dace3d1eb2ad13446ddad27ea2e9981cc7af0e127763cd4debb23f5ab133551ad26bd667df755493bf2def7cef72bf97ee3918deb5966a0faae04bb469dd46ea5dd78029fb9f55d3aa9dd6a2903f5bfd1483d1d4fa8dd6a9981da822bda7509b9c3d7f7908e466a7d63aa0998e127e8784235c2e7f105b2bb77207d3377800cc9d14214d77fdf986a872eb7ffd36c4d7a635deb5ad7faa76bed95b092c7980e562e535d41335ea6ba62e602a9423f6debb711931af9e9daf8ae750348f3b761501ead46842b90f41cd62ac45cad399e403a75b763aecc0cc43c5ac0b40892a92870e6d2dc7d3f142a9d9049f57c4d9aebcb541420e3b235696e34d29d4ba7eef2bbd2883479c8ec4e336addce2abd2e9fb3b841d7e43497a8d6926f497720e9e9e5fec1a7a3d295c85bed0e97dc35a63916844cad904c358131d7bb4c95039acb36636867414bc61092100a80bbf60a5901248f48a06ed759fa909624d00bd2925e284a69385144c91830b532f75be427b1557aba7cb34f99a4ca61cc65aa1c9eb8e6eb76c771992a872bb7eb5b0d69372681badc35b3bb5097867534e2f59804ea72df3e1382f0ce2fbb23f47e276ab06f3412e8fdfe59f0d27b25bdfcd3d924b27f080590d49496260441299310b202c8ef6deb3bef3bd2ef1b8d847e7dfd4cef49f53bd8b7be1f51133514550019be7230d32581baf4444d2dd8b5eeddc3170a4a4fb7e30684dc215feeeabb348188aeeb9042ee5b19f28d146f77bbf7ebf962d5a5e512bdfda6b74fd45dd2926f5732150e642e8ff544cd543998b9f45ddfbad3837da397be472354bc3c92d0d96ac12ebbaed143554aa5b07246ccedfe09b1975c0ec7cf855ddfbef3a75c7ec83ce47a1842897795cc40a23543234a7dbf87d6ec1b9e5e2ccda72bd2eb32999e6ef8eead330fb1ee62209735c3d78f6795cc40a335c557beb4545aa54993e68cdb5d2c4d2812e8ed4ed461c9b7552675d689deefe6f7bedfeb78d4bdcf373c2d4d7ae9eb48c277d7c3926674e978443c3310154b259ae6827795b4eedfea2c6bd2cb7aab34e96d3dfc4a93deefe3bbf184eee289da4a99dbfd7bc8618b3c1e191f5ab3bb616d27f0baeeb27434eaeef730e4d1654da8ebba583a81577c589af486671e12ad29bec9d065060a1f9ea88665ade7d16595eafd6ee4fb589adfeb793ceafe79c9cd70c3f3bbbeb5cea7e3119ae68a9619c80cc37be7b104bea165cec17a6d957c5925fd47730ce4f5691f8a45bfa890e91498dbd5fa9ea2b9fbddf0c4fd5e1fbefafc5adfa351f76acdee5edfbddaa4b64a34cdad655726f5bbd3b2be4ef5ab371af5bbf368a4ad1254eed28ebaf7db9a50b73b5fa20eb90a9d5329ac0ebe4fa9aa10684f9ac3ad2ca5e2cb3742f2a597ae8081f85c6d6d4dfae5f22955b5f14d9abbecbd2b69181ea26118e888e6ee773a1a75ffbcf73d9b544f7337a46257f6aba56118884fd44f0dd5750d23643a15323582642a1bc05ca8dc0d5ffc63d2dc6d9dab50cefb6015c2799fac42b0f76355e8e6fd57219bf76b55a8e6fda02a44be0fa40abdde0f793cc2b2e678d65daf258dc34a2ab253817d76b2a452b3cf71f2af92cacea9f0fcf59c920a8f3d7fce732a39af719c924a3d159cfbfca6a492c39e3dcf712a37c7f19a52f6634f1be7b1359ce7327bd26efc2c0fc2a9d4bc065a6366cfd94fdb776afcdcf98edb945472e4b88f3dad7d8f3d6fd83384cb803cc7ed8dcfece973fb73f61ca752ed595fb3350401bddaf3e7e7396ad833c77f7e7ef6fcfcac711eaff9d8f3c79e3a0ec2adbdcfcf9ffbd8f3c6ed3d7ede780f7b02d9b0a78dff3b6ec39e407f8f9f7f0f7beec861ed77fcccf1a3e4f120106c0d4134da758000c24f9f83604f5a901f15a8565bbd21cb51e3676766ad4ff9c363bb41abd143e399c95e79aacc96a3c6ce8e8fbd51e6f8a1bdc6cf2c470fad6706c4b3637b596537683c331fd94dc8e7c6cf4eb5650e5bcfed9683e73c2e546b5ce8b7dbed16e4a7c6791c4809c44748e8a7ed4242b21d1b8f07d909720308909f3d07720342ebe111aa21548304f9397b90203e376eb7f338109aec407e6eb79bd0cf99d0adc67782d8827ce867cf8780fc00f2d3e740680f203f4242b41be7f19bbd909ff642a850909f3b0f624f219e07fd2c3fd4a3878e03fd9c5d078f03d9711dc71194e34307f2b3c681d01f377bfaf0f11ff6bcfdf8d9f31ff6f4f1e33dece9a3c781f8f0c061cf106ec3866c761e17d2a103041070e0b80e1d3f6dd7a1e3e7ce852ee467bd103a34f493e7433484070d5dc8cff2413f7f0ec4873d75d853c78180ce43873d791c08e83e7ef61c08e8678deb780f1c41f6acd5be63c77b1c47d071fcfc390e7bd66c0df4a7cf6b07f2f3c681d09b903d7ffcf8cd9e406e3fff9b3d7fdccec39e3f1e1474a19ff63c7ee6b8107b0609f210ec09644fa0dbd0614f1c380e644f1db761e3403f4bab02db5607b2270ea0e3f819c26f5160dbea433d78ecb0270e7be2f88e973eb6841ee77122b6adfe9fb4df9e417a0ec49ebf0f9fd7ecd9737bd6eee3e33e3feb7decd9f3ebb0a7cfcbf2a78edbec0a6c5bad2e64cf9bed3fecc9c39e3cee23047bf6e051a974f69c4aa19ec6bbf3f879c3c678d85366c99ae33c68870e7b0291c721c371d9cf1cb686c39e35ecc9c37ee3e78f8d816dd642b1d578cd9e3fb7610f823d6bfc581af69cfabe63416bcf99659be7bceed3b3f3d94f1e0b846dab20b6ad7ebe7e739b87b392715f49735756326e559aacf3eb78446fd2dc65bd4712a07297751e49601d3c51cfcad865a5cebf32fcaa144f54899aa8634bdfbdeb9427146eeabbab34c18f96b63acddd2e7743b134810832bcf8d6432a8625cd5d1e4de03437b449e1c5d20c2dcd881e3c3d68956847f4e0416b425d7abeb4d5a172f7cc5d7eab34c10792e62e5ff0ac926f4ec9d5d6c729c16aebc34ab2dafa3765acdafa36e5abad5f53d6aaad4f9641d5d67f9540aaadcf3fa04da2b9cb349e80a0561d2445f82a44e5f59f57a792f3ef407d2ab2bbaea39e4a0df4b1ef3857212a327bdabcce4ec5e7e1f96015a2124445e7b2f36355884a8e3d73fe7a5d56f357f99c9f39f6acf9b9ec67cec5bf4ea5da13044fda93fcaafeacf6046d0df427f89ed77c3c9fac42545af66cbdfba1cc9ef62b1ab7f15e5df6b32fb3a7e79db467ebe44fd9c353e93eb3270c761b7bd6b3ecc97a19fe2c1fdab3d69fe169bf21c98bf6f4bcb7ec59edc9f3d6c97af2a778d29edecd4fefb6d7f849be863d61b0e3d813e7abd57bec09eb39ce0ae7357eae5ec39e3dacdaf393f5636ba8ddd8f3e63838a7dde0e0d8d368b5dec3d36a852d568923cba9a9e4aa59ad9c0a8638deabf4c4066535af06cb1559c9d60a27f4c41c590e58be6abc168b55437285532392392c5156b36ab05bafd2c3a91e8eac82366e9061bfcaf0386a6ab46cd8b891859565b3fdecdb6cac9c1cfb1a09be26deb8f1b3f51b37cad5ea757b9bd8bacdabd57e96afd9a8812f1cf2f6376435bf711c3f738ec366fb19de56c3761c3f599e0d1b6179fb9a87f35adbb061e3c6cfd56fd8d3868d9a7a1c356af0fc14cfc3babdade73c347270dcf653765bad06c26bd8b3761a356efbd93a8d9fa4fdf9cd4dcb6e6f8387e7347a7a4e3b0f8df3fcac390f781bcff1f3f51c3468e7387ebe8e83fe9c068ee7f899731a3fc1db6a3b3bf63bb6effc2cbf437f86df790d1aed347aecc9634f9ed338ade7b49fe269f4a7f71aaffd245fa320d8f8b9ba0d7b8260e3d69e20bca7e7b59ff5f627eb39ec79e3c67fec49b327ed3737dfb1e76c769a3d777e7373da4f9cd3ec39a37df653b4446ca3ff390e1aa2cd79ec39b3e7ec3c17c5db9fad5b7bdad0b8fd195a286ca3b7398e9f2d1b03dbe871d8f386ad81dac2d7b067ab75983d610f6b3cfcc9b22a84f66c85dfb167eb22ebe2cfd2a2c036fa9d9f38b604b6d1d7ec6903e720d8d3dad3be46f91f7bd2f8ad3df90651658049a3811dec20852bafa0a1071598110606a85c81a3529e486641b6d197f6bc7d8e65b6d1fb58ae367e0f8fec3bf6a4c53eb32794134ae0208c182186b0c2099c0c2a03336ca1c3145a9421860338d9cf1a1b631bbdcc9e31cbd5b6c39ab5cb3f5f96641bbd8e05ab8d9ff3b35a17d8469f634f1c5b03c551a939cc9eafdfd81a827054ea6dec59e3facb9e50416cf9c19620ce8c018618b8ca5c542901840e1938334519382af5af9fa405c236fa973d5d96ab4d8735815cfeb9b2416ca31f6dacdaf867db15d8462fda33b435d47054beb7ec398489277270c4182ca82202c7b2351c47c5470a1e7c60045b54310307382afdd54fd0d6d846bfb2e767b9da80ac1974f9a767cf36face92d5c6e743d5275b03a5a921ea32d5f51ebec290c7b649ddfbb434bbd387447d33c59b3014fa668ad63c952881183ac8c9c9c179ce4d9d0f0102e4516417c87ddc2472f1fca2bed160e2976047ce4fa16f668e3525d0832f4ed0031c1c9cd9716ee67c84111ee57547f0e1e35164d7c74338eefc12fa0683c1608fd273613772be0a7d3371ac19810e48a1050e66b3d96c6767e7a6909b3b4208e151643784dff393f4cd8459b3c79a3cd6f4b126acc8f90ae89b49f4d9c5effb2040c50769cc88e10b1fa2a4727272709ec3e363cd1884f8a1aa071c1c1c1c1f98355725a08009c298ddc4b9083773be339bcd6e06b909c483c7a3c82e8f9b433775f4e8f128b2dbe3a6ceecd65c6989824a0e3e294210831d786376d0830a787cacd9f1600658a440e826ce85dccc394d48e8515e57e826909b3982821e4576836eead42f551750a2063145191f6811fc900330548c178891fa7113e7416ee6fc76538756c1c30c15a05386a0aa82cad2040ea84859a20b2b5a76dcc479083773eee3a68e152ac25cc009248000e2dcc1880a544580ca0660a800ba89731e3773aee3a60e05d25cf1430f0f5fb4a0c213430e37ec60046da504170a3881e326ce6b37739ee3a6ceece3e2812fb0d8e9b1a677013218e0a187c79a9d0d90e0020d0fcd9a5d65668a266c37710ec2cd9cdfb8a9439b59b3a11843012ab31d6bd21fb4aca0063b3dd6bc79c00457f4f05853cad4063a70021a3771fe7353878766cd93899c0576409b595302667891e6043a5762d299ed585302392b2af8927325a69ceb1cb6d363cd084871022b60e8e8e8e45ce726ece54d9cf7dcccb9bda963c3634d0848514607569093939343d2acb962e20b1db6a05d8989f69a59d3f3620a168c995d896976da61ac1d6b762c58410d43d0688f32bbb49b4c385762c2f9ecb49bb0e7dcc4f9cecdd9756ed2421b6b76185ac484319b3dcaecce6e32c1aec4043bce672069cdce920409c0e0e0e0c08eb3125fd6e433aa386102180c066b89df974496359f7e50c604aadc641d76f3f5d94df238376d64dfc52b795ffa2e8ae2a3f45cf1a1359fb480c102295857626289d6bcf1fe5d89fc92f7effbbe83d63cad843183315eaf17eb2f6b7ed6acf13ccff3beb22604605085c316168b059e654dcf9a61cb9a315431830667802008deb479ec66ebdfcdd5bd9b2029b3e68a026588608ca21b6b7a5c90f00109c02b3181ae1a6bf60f26b8210a7024436bd21e7000810c20088237570f6fdafce666ebb29ba011f9fa12498235a5506da005585657625adde625bc4e5e89f5a5d749927c949e4bbec89a11102306142d685d89a9f5d56dac495a9304d65f57aa5f62fdf57abdeeb226047438838a96d5ea5166777593c9e64a4c366f7d65cd97358b6e2e29d5b3ae74e44bf5acb3588fd273591fade9a9c00b1062b45a8f32bbad9b4ce49598c8dbbc75f375d74df2e34d9b83375bd66459b37593294aebe6d647e9b9f54b4af547aeb4547fe4466e64cd9a022ea2b8b0b1b1b9c9f4ba12d3ebe46dac592d5109d67caa220b26822049f22653bd1253fdeba4358fd82212ac290123a6f44005afd7eb261391fa97358dd812bac62fb2e6aa8617d4a0c3356b7d94d9ad37997057622272dceb4dd6ef4d9be36e922772b35ab3884dd2357ecb9a5d0f5c6280e59a4cf74a44ce84b329748d7fad0a3789ac02a2ac2e913345c1b9441e6576895814bac67f7df59a8ba79de73eaf711b0f7a8f03f9d0877c0411441061c89021428408191a7a94d71d0a1224081020404208e1515e37849b40376bd86cb69b3a6e8270e3c68d9b3b6edac08103c74d1f376b39723c8aece6b8f9e366101010d0cddb4d1e3a743c8aeceab82974bbdd7efcf8e1c3c7a3bcae8f1d3b1ee57577dc0cbaf953a3468d9b3c6eda4000e1516417849b3d6edeb061e35164d7c6cd107af47894d7ed7133c7cdfffc3c8aecfedcc451ab3d8aecd66ef6e0c18347505050adf628af5bbb69bbc95396e5cd1b377bac7d14d9b53771dcf4a141e3516497c68e1d8f22bb3b74e8d00104049423470e1c381ee57571dcb871c366b3fdfc3ccaebfedcecb9099bcd66377d6ee2d068b49bbf99b3b3b373b3c64d1d1e9e47915d9e9b20dc2c7b7a7a6edab8697d7c1e45767d6ed66cd8b001020820d4a8f128af5be37f94d7fdcdf2a60883c16eda9b331c9c47915d9c9b346ed272721e4576736efed0a0f128af4be326cf4d4f141f4576c59b3b3a3a8f22bb3a3769586bcbb2d4d17994d7d5b939bb19dedcdcdca4dd94d5d43c8aecd6dcdcb919fbbe4791ddef7f14d9bd8f8f4f4f4f0f0f0fcfcecea3bcee0e8d469bcd66a2f828af2bde94ddb42149f266ece6cbe572ddf46e8e20f828b20bde84dd5c85e1a3c86e7813e7e68d4c26cb9173b326167b14d98df9d0c9c9c9c1c1c181c11ee575619ef728afebddbca9b16c6c6cc09a20527cbd5ee44d176c1cc798684d26a7d6fdce1465bcdfa3bcee7733fc69318bc5eac09dd5ea516477f5aef1cd0f48d7f84c4ef57a678ae2badea3c8ae6787748d9588acd0b76acdeef4663dbfc713588aeb59b3beb334a324aa4b547934d247e8083e08f9c764aadb674ae99b62975aa2ae755ec02f2218320c0c8b98981dbe2d2d39c56ebd1378eb979ac0ab54cfc8ddfaa6d8ad3ce6d2f38b90e0358154a1a8a8a8293e5521cefb1422646838ef5153380d550e570507ce7b152138ef5380e472399c9487f3de2f42d6f7e943a6532453498d71811805b9dd6b99d401b9454820b74f93ea815c1e8f80dc6a9588dc15ba468b90f43295940d978264ec5c85186706ddbe57aed03fe899ea328d270a55db93a18a8a861efaef5b7dedc8bed5fff46d756b9530b75eec5bbdadee851a678ad7046f7d7dd7b79f6a938298ba8b42fe3149ee9a09b6adcf0ff946d6d34b37403255952b97a9a85cb9e6ebf643b84c1535e6f66824cacbad6fabf7c1b04723ab5a4bbeab92de908ef5612d9ba89291ae6bdd8dc612f85653bcd4b326d4f5c0ba2acdee9add9beafdcea311ef441d863c1ef9acd9ddefe057a5f9bb7a2d4dd334ab0b50cc18eeeadcb5d5892a582a9db73e4eb38f87969c72ae922b97cbddd69bea8a879cbc4b9dc64bad29de49765be7571e5a52aad7e9bb2d27d76d5933bcd38cf29013d83ce4445e7ab666eb4d6eeecdcae6abb14a2f8fec5eb55ddda3557a89fd838222684f10bc93ec9aa1dd724e799d1d78a9198e75a7d9356f6ecb2af9a44993e66e61d9738a4f9a346970a0e5fe41ff74839392e156f6fcf9ec79cf9e3b9d3d63325cb527ac7fd04bcd706dc943b59ec0fea25e8045adafb55b5f20752bbdb552051cc765aa31632ebfbaf313b74d28e2f6eb1830b75f6b69d2db3aebdd98a47bd795dd836eabbe455bd56bd5d6ab78b1be8625fdc6028097025a29e0bfafc6a316e95800100155280ebc942a14f77d97f2a9005e0aa802f85547ab0fa10fb7fefcc631566e7df5defa57f39a7fe514f0a985f3ce3cb4faf7a120c5ba4771ac724a89086d826cbdcaea53e1732d9cf7eeaff3e5a274d2bae1c5d2a8e57a3792406f237e2c939a84173fbe8e24944ec28fb7294da85b43ff7a9d2c956a9a3449a87d25d1bb4a5a3872e1658b315c2c717f2e537171858b9c278625cd358edfb812c39216ba4a5a388e276a6f5c8d47e3b908739bfaa82500c67d760a684f285ccb56599de2bcb1dc22b5126d78a2ebd9f3f3be3aebb34f9ef7efe713f8cf4a1df75dea38967d02bdaf86de6961f744822719836769e13def945a5ae859a82cb73dcf72b541814f5f833608bbee5bbffea4028e2cc0f82758eb5cbc94f13ae731059d8bf68c7dfccea30ae3754a0a9eafc229056753681c79a2e6bef14d41caece2a5909f9dc71466172d518f2a905a3c71ebb528e2d67b630ab1d75c2cc7bb4a29b1bbee8d08907dfc57a6107b8d3d5d879d79483ccf4f97eca33d6317cf389b528a78d9794a29b2c70e2ba59ce263679526d445736597a9b4b87243af74d2326a5defb087211d11e03aecaf528aebafd794a7eb3527cbd375f23c222076d9891a569eaff35c2ca1ee4af44e110167cdc79fafdb9cc7146297d993fcc8534a39cff1e4cb37cea694729ee2c7e79c71aff2dcf9e9f3f3ef794d29c5e7527e293d3f9fa4d06e73d84f9d9f383f6f4e7a630aaed7dc1b55201fb32714eef5597952dccb7a650a2eef35560af99a0288975929e35d5f8d9f4d217629e25fd729cff12efb2425e73c2a88768aece25ff6a985abf9583eb57024f39067cda0bb45ca75d13eb570e2bfd794af93e578a23a961477841680b4a7f8d156717deab3494dbc9a137568cda0cb7acb9aacd2499d227b8d3d29ce5a29a53d673fc99fe36bce73b05c5d2ca7c8cef39cf2d479cec30f872c97adb8f2e190e57e2ee8e2f215974e8064aa1074b9dd4db27b08b23471c3156346cc13574c1159a0d9224a0b305b80d9a2872ccc6411260baa2cb26471c50563dc5014bd92b6b247acd65d95b9dcc5aaccfdb88bfb891045d5cd602a77bfafee774397e89534efab92e659a3fb9d75c1cba3d18e2ca6c889a391085154f7b3e28aeb3cf6a4b8d3c7fabc787ede4a1de7639f5eafc37ef658a9e378ec13ede277ec13cd4a1df7b255a488e0a840e15e7f1d76a2a6e51697bea6943aae662c9fc6c33eb34fe46124699f462b5e569e50b89812919b6432dd61321515622ea5389d52eab8133c7f4a1df7e4baf89ae794278e7d72b90efbf9647398953a6efc8d953aaec63ed958a9e35c17ed94d768b9da4ca6a222cca5b6a9e32b2eb52f90565cd3dbd2e536e130f750592e6b1480f8f164151aadd47897ad32da2944702eae42ef0e8e02185f7329d7495bc565a7be8fefbe1a9340ddcfb3490480c2bd1ae77af7448227cde5c81898cad2bcbb5ee538d7bf9b50ee67699e4d81a43757b8f4a395329e0aa1f6df8880e7c614c4bbece9bae81a451d28b0c92ca648c00c26a449907dc465aa1368719b0397a94a20825bbb4ce5e506464d53aaae09f5c4774d187430c1e5bf6812649de23295145c2ef572996a045ddc1c97a94660e5321d8fb4aa2073955668556de02a3db9aed9340318c43870cd262e1c086770cda61b66e05d93498b0fe01041986b323511e6f2c15c6ee434977ff94d8150895e6a8f84f7ee7d5532d1bb6ad924fa16534561e636815789d3dcf15ed93d7ab74bf308df8f1f96e6772f8a28d0dcf1ad875eab8db45ec7f378348e2480174f4bf1ad727c8f47ac536a9981a8d9b675b134fbd296131f2ccd267acfe86808c80e0a32f77b05451556706289ee7aab1a0a2a60516b636a2de87a47c1bb575bc185be9931fe92a46f2ba67aa287ebf5b85f785c93c774716bd76433421ece146f8eaef728a5a7f47bfdce4cdff45da6f7a76f4bfca6ef48c9ed7f7da639a835ebd948527d92733da5ab87abd294c0fd7e4a91f2043e3509fd9a04b4e647c2f77af459296597f521edd3cf1ed158df56b7affc4a662a27acdcaff42ed937feee3dfc4afa8333ceb83ca6e11cfcafa4692e8f39cec1cfc970e9bb56b1b6844c9120bb572649aa4b0f3a1175e9c58bf045043d84608c0e5984aa33ce72bd2c6e7df852a2d7a3d63b1d8fbab7359358e2521268d79276e46571e93b232613d4a52f95384d9a34ed2d712b12576e79fb5e16b74b9f4bc72377c2a9b6a97ffb5d9ab42dcd889af41ed1ead9a6f022d1e536b5132d6f2dcbdb4de1e54379b4bb3882ead6b73eaaebb5ba54b1d5125fc713ea5b596e3d45b2b23090d7ec72b9dbd46ab54ed414bc496f127d0bfcfa1b8d28517a6abfd1889211faf0e14aa4dfc30ee35196c7f240cfebca7a8b6149ef651f47da11646e7debb48f4784b9f5a3285e1c5d3312c6d0e543e3e9b9d18ba7e745bbd0c6d1671c4fd434121c69679d4663ddf034163c341a8d462b796c3e9ee79c876705f3a1d533341f71bc499abdf5a07b3392307bebdd7854dfaa39d4ed15cf789d8f0fc7925644df68f71e82a3112551dc192d8f582e19893d175f37721dbcd823be44970f62492f8d76a21e4bbe3bb48bb413f577f17a21ed1d6d7cece3c3af939526bdb3f37882ed8e9f9532594ca7f4b074cd7b4e59c7e85a4d699e36a57992a579520f4bdf683d73bdd33a466371bd96a519d5277da7afe7b184ee45f46dbcf7701cc7f7785a5252eab88be0530bd7b2b7e74134958e0f3b711c45cabaeb7ba26fae7b0f5d2e972b6cb55ca7b4cb5419a0c111555d72475c39226744154b144fb6ca25a3562b3cf856ab158a62abe44bba1eb244b1e4db72d1eb7ad8125dae136cd7656947e3e9474b8be89af7bf8ce1b72fadcdfd6559968ca3542cc19753df5b22e88d463e2a2e64aeed52fb3dd135d66d5933ca6d3de41e21f7f0c98ce1d2bfac729c94a7f27fae8ec1410f39dc6d14f70ff0558efb416b76ff5e32cef47cf80e5aa59a86f556591f96660c97751e4da85d9651ebd6faef09d3f3a1c374cd33c5ebd12ed7a33290ef30b48b4797b81eec7a277fbede6911f72ef608bfd78d2994ffeb98c27fdadf96f76cd24745eb1a1521d3a930ad2cb79b9d0f5221ab23aa5b3f2bcdbeb4bb3e3b51d31e744d1a74832e8fb41335f3100f1e97c7d9897a66820fe4f7a04bc7136637fb8e948420971908846a12be12ead292765769cede77ddc7c7c7a7faf83caca28fcf899a247b7a7a1e52912c7b7adea3911e974b14c58b535de8cea9c8f39a5da6ca4011379c8932f0473e0b1eead2d235de55cd889f67c5cebad7eb351ab964c937a48974a4df1901e08d00f0a82dc1fb0b44d3dab9ce77aeb3b3b3b3d3da390fcfcece89fa0fa9b8b3b36369473e17ef238ae1eb45b5ccbeeab9f81edbe2776ed2de0f4712ea69f4ee1cac6678bcf1049bce79ae731eb379be1bf1e55d79f1f0883c3c3ce5abc5f33a9e60bb3c967614fbebb1bf1eee944bddddf9ab8389df12e2ebf57a9da85df763bdfeb2b423d95da1ab14bf53829766e99bf8ee61e3f0acc4741f4b7a5da2abe4cb532ad12b7e2cc5237abfef947c3f1b8aa795b313d559c95756aeb0e85af758f975e95a779dd2b3b212639e2defca51ed8a96769473d7732c78a66bdd5d9666c1a9d75c89b9ddc1332b31b092ca40f65d61d137fa2d71535219487abf2e7d7399de95327daba969b55a65fad67ad7dd5f5aefd148ebeda56f9492276f522d24791e899ae4b09a54cb255f4723644dc997b4ed254bc83aab3c2dbf503ccb52eab85204a58eb367f9a7168efb07083eecc4b2fb07d2d01359ac12bc7fa7d1f385ba47e0bf1f01ab99cf9ae7a546e8892a0def7a7897f5ac74ad0bdf3d0c43fa9d8ea7f4d436f5757d2afc54960b7499aa882a23b05ca1cb5453648c20736f97a98ce042a6082fb788258ae8e1161145841737e41014793ce2faebb4fccab15c321a0fdec8e6e3b96fa035978cc0d7dc883cf8d1c68ed6ec6e8d3595e81d0f5a9374f59751e9e9860f41d155f21dc3dff0214b0cc313f5379e60bba1a51db5ce7acbd6325debce7acb87beb1de7d868666e95af77046b790dfb2650b49edea8c440632093c5fb39ae92f332a0349df8196ae3ebb45eab8b397c852c50f39dc5357460a0c4c81930281130af7731a827055827053f49e95be55337da3d787cbd7ac55b7bfdcee0d86462d43a3bff408344caae576a75c6c7bb1544b8f602996cbd7046ff7ae6fb4ef5ba48e2bcfb4cfa650be6f8f50c6e80e7aaf9c710e7a6f342105fbf2754ce1e57b0c00e36858b2dae8e91800c6590b561b2d2d571b7dab83e2e91d3d78f16997a93c3086eb3295079eb89c5b6561aaeeca677406b22f537940ea92b757efd2eca48e5b89ab953d577f5aad2a0eb52c7daba761979ded122ca58e034550eab86e04d09ee09f56e7fed11d9adbf1c1aa547f984cc5a589dbd4344b3dc176aba5595697f620e492e5f279fcbaae882f5ba83ecfeb5eff799ee78d9d91afa108f97e1436526dc95d58bd2844eed6931f4df17d135b68f5fa1c3b3b5d83f1eaf2cfad5f71f77d9ed8a391f6fe791f030555216ad795de295d79decaf3bc6e67a42050a2edbd2be9a5dd3fbbd375dd2da8e721afd20abe7eafdfebeaf5e0575fbfd75ac3af93e8f8fb4ebfd3bad3db97d69da9824062cb77affb780419886f573255c743dff91e0fd1eba36bde8bb8415df3ce6335450e98e2f5c49d166addfb101e3a0381f79ea36f64d740d63d1bf89f1602db069ab4eb09c1da06def471bdd378885e8f55ee740d7cf5c0572382566e0c3c6d455b59a60a42cb65aa20b65c58495976a76b60e931d057d25b8f08f9aba127a1756957aeddf484f07bf8d1d148ebe278e6a1f0dec3b024a17599814ca86b8a6fadceabf3c5d25c5da60a22cbed18c80b9bcbfe58aefa20f8b104e9f9440d5a13bcf8b06df8b045b16cdd5658f9268c674b45d172d7c42b31415dd6cd283ef8419acbc461b8f460c36559d19a1c72e88960d9e1bbf013c12347a33563b8e1f9f746125ab7c537a94542ebdc3a8f46e00d6d12f8be0982abaee4122aa49d13ddcdd8f5c8f7cdbb8fbed5aef7581057aef71d1b41d78b5def248c295351d91144d47ffa66eeb8f4f4b0be993f975ec7a517c95c7af28702c035022d4bd4da755d57bbeeb396226ebfe32ce868c40999d475753cea1ed6d2a934ea3cafeb8c54a54375d44341c81d12000ad797524fa55a1a88e0fafdd4f4210d815d61d7954ec8a4ee36aea9850b54cb333b6bb24c601a5ccf6e01cf2578af2cc08e2ca44883e377a5b745ca135b710507da5c779375eb896a57dab821e5110136aed7bd82b0a12ef8923258df656d6abb95ce4b592774f55e1ee98e0c6942b06bacae6b2ccab27d27f236e972325c9375a5151a19d25c2770f5ef954f2dab14592ccbba121835830c77c9e9bbe09d569709ea82962b2d3f6efd6b59258ae676dd2dcd8852dd7a4a75ebbfaea553dfee613712a8115cca3958ff40b3525a9e9a6052af404bcbda2c6b82e75326a8cbef952581cf5d6793eaab4de2b7e5d3af7261588f54dbf5f484ae650b45b51e35551fb24aa6ea0e5b6432de98a41b4fa8b7be5532aeb96f450235810b9e10c4550020bae0eb78d4afbb7a483d97f974a50422b18e25105df03d1e7172959e8c44d3e7ae7a4402c5810b3eac6237920095e52aad70c1874d5d2ef329cbfd388709fe1b91ac40b105b2c456c9b8d1a8ffd9b0653edd0e70b9dfc9f275548a216a06197277e9b366ad37a9aeec6769a5573aaf592f7d0781d1c8d7de9990690e64f7ca543f485df62ef28f17e425a0d001a9ce864577efabef268bb9ab0359dd4c905ca16fab0fe95bedaeae0216777505f4adde158b11af09e466e39a0ce6aece2351eff4adcb950f140377f5b0c52efbc6fac6543f6069cad575b26ff5abc3fad67db5e2aa3a44cd72a66bec563ed855f125ecdcfa9f9dfad7f3ad07e2217e65be495e282117e98014b1dc2576a8107a897416a9dbbd85c399db9d35d5fd3342ccfd1e4e7db9dd470e94b9ddc30f797d3c1f16dbf94fad6fdfc3afec582cf15514bf1245317cc8f755328ec730897604de3b0882aef3684208b65ce0570f59adf365b52c09abb3ce12bf2ae965f14842cb035b2dd67842f7964df26e76671a4f6082bae293be7707adf95db4acafa0ae578e6f9550b423d6c7b33e3e84bae2bff2557e65d2f88ef55719151515f57a15661eb4ef778aabc2ccc3acf7b314475495cedb9d71e109f59a50d58429727c7d1d8dc27fd61c1f5a5a78f0de7b341a2d2db447ab7f5ffd7bebe00a4c5a995057a051779635bf870fc3d2144f639d692c4b82f7f0a1bd62785652eb9adf09a1650662063259af27740fadd9faf7d1db6295942f5fcff471d91c028a5448cb70f9ae20207dab4f14aad5220d21a542f2edd328b25f4fb9e2e077a944ef49a1681309bd7318145250a16f2b1e73bb87f4a79683a85f33ff9f5adfeaaae4ee2ad01ddd53e85a771450a842e7c26438cc2908c81af3cdb55727ea5bd2fa34ef9e4502753fd62a022b54a1f0dd5d8052855cef1e83e80ac3d025b6c69125862c568bc5a239afbd33c02a25d204a940aabeadde1df4d2b77e77f04bdfc07737c10d50dd1a97a93680e586d502947aa5d8b5ee740ad9d58307bd74ad3b48d5b5ee26e81db4e017aa03a4aa42e095b675ef402aea01d23b48055ee95a77ef9409d2b334a3cee56efd532e77416be25ca7ee7a2618e676ff01d5f56c13efb412f87ae0bddb74893a6c11071fa810be1d98e5d6f70dabd84327aeca06afdc0ebc4285f4ed0ef6a0c3ed0e62e95bad4dabab4b5adf697595e8f56848a02ecb6ea18108ae45eb33d5062670996a03572ecda87a5689a6b9010f79ef0e86a942e2bb8362aa10c57507c954a1d7bb8365a810f0ddc3ef34ef51c0dc2854dc5749f34e718d134b9a6703008aaf4271e24fc55749715e89c278b034a35471bf1bd6a65c3b970975692884a7ad6801709db6b228b8ec144e73a6f5eef6a597a8eb1dcb2914275ada67955e69ee16291fb8d6a7bccec055a1b8d6a3c05c68a7acd2e05a4be8291414acba4ce3e983fa7a250334d78af9727d2e536980cbd500965b5ea6f2a107d77bd95db376bdffecbc2f8f5d52bfde246f7eefb7ed6a93be7387c3f538a94de8ba012bd724af67c2cc7a7a73e77a36a9def32ec6e87842bfda4aef6761206f1379eba990bede7b34a19a1054bb8435cbed58afd60422489ae576671cea54eba127ba5a9ed8fa2c08bed5025bad52fc57aebe87add2b35fc95d6b3d2c416f24617cebb5042f96e1892a189e1f967cc7d255aecaa6be4d0f9ec53ab5acd312b4add548c2576fc8218bb41ccf62bdb21ed672454defe116f2445d4bef218fa235cf2bb6c852ea38f2dc2390f67c7a9dfb47eb27f78f7af2f5dd7842ed9e96e1c5b24f968c7b9553e2435a8eb6045b256b24e16b3d6c81e0ca6c6a3a9e60bbdebd2ecbe55b4fb388fde50075576feaced66ceadb67238fbe96e679979cc07f96bb56dfd4fdebf184da359fae67c6704d3e582af99ce09d5ab39e5ae1b94c9501135c13ea9af59d011f6eed7a0f3d716536f5f5ce6723d53a8136899eefd7d4abd27b1d8f6cdc4ab3f4cdeb4ed4596626f84036f5a51dd1dbffa54a3e977aff4af3bcdfd93bb271cdfa99fd7aaf34cf6bf29bfad677651d8f6a9666e91a3b9dd0ca5dfa9a83b0d60e85282a52604025cc152a2780411738ae362af78a24780053a68c1e4881e3b65dabd19be06d9b495e7a936c0c68b91d485e5abbfda0be992090bef5c92c3edc3eac6bb787549c295e9314b9abf9acd835cf8a97a93080a57d1072154242040dccc8001854bc78c11169c10e3060012c6190301342213b32e4af46ec1a4ca82ba53a5cf75aa640e2ba33d76a955e774b576ddd9d4548690985e49be22dbbaaeb64f31a6f59afd32792b94ea2abc713ba9c119933b2b4c5c6ed9a19e85bbdbfb226056947f4abd3af2c7debd290c32a7a21f769d975ad3f06fac6135ab71b4f086d8b817a75a2a6b9fb952678fbcc40dd325cf62cd9351bb7b3b5a4b7a7b8c0994bf9c77c69af4743da6312f15dd28b65521fe9a33e7dd32e24536140eab64e850fb775c5876115e978043ceb49e15b0fbb345b25cda8cbe5eef8eed6cba31199bbe3bba4b93bd21baec49019e875ef5dbafe2acdee4612fa2e5bdf23097df244952c69477dd7fb2e5bd28e5ab7dfba6d670c54576415625c7d97b0aed5bfee2ac5afc6135a57fc8c87eabdf1041a03d58b76e6baeb08cd6da939519355a8c6766dabaf6677c1fb3da9df4a02358256abd53a51875dd39104fa1e8dfaad241703d5bf18a8e66e9744763919eef890158ef6756620d6f8ba4b34eb0def0adff45dd7582eb95ee289fa25de158ee2593942cbe2f7b9e9f9ab5959b26b9fb5d7b3b0bb7ae5430885ec2e535d400c28a47799ea02662e03d118c771141f7e1cc7713cff8c1d158661188661189e7fc21fb0582c16f8d5592c168b75fe61f160f590cb0f5c58d7fa769a3b32d08a825d5b9daece25ed00ed00d9ddd5ea230f19e9af5617796875fe59fdf590999947eed745067a9d96f407d2f5f1e2c3d31fc8d65907bf3afd81fcee99e07df15ffdd7eb5d36ffbc62107a0f3f6b8adcef4a124cf096ad7b37e9ed4369dd9675d2ead27cba1deb615293d6f5ac9396a7442feb26eb0260ae7759acf378c2775996bbe6956627b2bc665591e579b64df036f82e9beef81e76f47bd7b5affb4c75811a8e98eab635896e3f6489dcd57867aacb5417a8e1f2598adbb6ebdaf7816013f17afffa20edcc083d8fec1b187aa551f7d0f3bcb2f3de2d7d0f691b61fd7b8f4688ea57c2a817764ef4765ed979ad24fad7137567cda6dbfdbb579ae2f51e7671c3d7db37fc57d24b33622baedcf0deed2e8f46ab3237b44c77987dbd13b5f7b0c5cf7bc8b4b9ba98eef06a5736116f57d28e6ad2e5be3115162cb7dfd1922fab0cbae7214a2f1dbf2a7ae512490f6b95abb34af0b4fc4e4725f0ee30101ffc6c6741b145bb3242a3d5bb875dd995abee2ba2ee40d689ba2be905ff9d6542dd0fecc255e9446f573ad1bb7a48c5d5ea61f7196834a1bb77a206cbae044b9375fab1585fbd0341f0a035594455e9bccdb7eb0760d975ad755749b6adf5b18cb5ad75b114bbd60a2d487e225385dd6580cc1834477361c25c935e691c724dcd68aaa0d0a830e7174a5c20e7b422c30257e5d97429944b9d00b949e2c7d3d20412b6688ad60472c5775e69fe00a9b63e08922490b64286a7aebfdeb5d29b7f955c5db66b7d2ccd12aed76285ac0ea45063772d687dac1d90b51e7c5782ddaa34d98b97bb3a2d83f46e925217bc0bddc32e6e97bba06da16bddaa643d2c4df0b6ac1156cb6bd926ece56902344c71e67add054590cfd40978ef681569fe786f7ad6bb57f72cf53cdbe4e76c420c1a70e96e05492740ae67933adb81b4ad8434ecefc4425aa3d6a47745d4a36b748160d7406b36f9b9ab8b6258eb5af726efb2beeacb3299ea7effb9dfeff7af5c9da5f474bf7f57a2f7fb2a47771d65cff5c340ddc5ae755deb3a6b360172eb2908e5a2de09c290ad495e16f9f5decdefdd57822c20e9bf372583ec8bd63329093a2a2a06bf5031979fa55a417699ae4db4ad5f5555a60c193262c40405010142756916b3cb50322cd45fd8d607cb90557cba821aa0b9fdce812008822078168bc562b158ac9b2dd56ab55aad56eb665f09c3300cc3f05580e0423e35016976191e52a267ee162920b85595288aa22802c1892c14357e1cc78fe3f82a4070e3fb95061e5a62aaab44e46e9942d3e05cefb70d780429101715b55a4981b8d5491ec155c3b96238d7eb351c69574070ab9b0dc6ea66872182d4712eb3460d79592910e7b2d5ac55bacc58f619b1ecaab2b6ca8aa582650dc19b1d97d5cdae8b49b3f4151602bfaaba7c715a90f4d6d765e2aafb1bd53aeb20c7e0f2fde5912f51d772b55abd4a0d37a59a91c3ad6c54e770abb75607cba8a82a206ecaeb4cae4a0c073eaa4a0d07daa8d6c15701826b59a91b6e652bab8c8a920282036d95166ef529f58c1c4eaa07b77ad494159a5c0e27e5c2ad3ee575a6712bdb85806f2d0537c143bf31d7ccf6f2c4ed9b4004c9646a1355a8bf541b992e5385705c90a9362e55887165c02a928b33d5c637576d7ca5ae5cc132064bb5f1356b96cf9ab50b487ea9d6041f482673b96b41794d2e11d217c83e9b31a1db672c6e8b2b84fccedc1161405ae87da2163a0ebcfd243c546f1f85ee895bb33497e9ef74bfbf8387badb35633fae29deae5caa5f72022f5fe9d729bc94ea8654aca5d8953d37ecc4ae9cddd013bb3276c34fec4a9d9c1b826257e2dc90257625ec862db12b6f6e188a5d69734351ec4a1e371cc5ae0cbaa14bec4af1862fb12b5b3724c5ae64ddb046eccaef863662577a37bc11bbb2bb214cecca7a431cb12bfb8639b01b9c1c1dbb834f75bb0984f4fc1372e1033df302b9224b9e620b2c6e53157ddc9e620b2eb743e866207ebf96cd40fcb06e7143778617c6b72ab362c500745dc11abdb45e1f08472e620d620435e0e2e1a5450da416546a6ac6b0e9aa6ec42e60ad2d70589023d229c480b930cec181ddd8d4902fd728862d16a8d3141c13521888643aaf9e7342b589305508cc9152b12bb7890f0b28862413ab5ed515aa573a5785ba4cdbfaff12a3229ba857c05c97e9325ececb515a2a517aaf5421c681642573fb5e1357a8aa152b5aa4a4b2444575add63587050d9a1ece9cb932c61856aaaaba56eb36d3b55a33799eed325eaecb78b92ee3e538aa9302ad8857c81e6058623eec64b9a7c5cb517dc99da9aa425e9467a5caeba1caf3a1cad352e5e518888c97cbf2854c2553bbe029c468b9666d22679623cb89e5e8e4e4d062525772ac5074d9dc7449bad62f6187080644ccd162819df7d1293a474ecefb49bc2f3320ef0fc951f2f1a8aaadefc3c3526d5e13d5e6e5a4ae107959b8785d7259a0691b4759e90127c60758c3aafaa41883edfc5c7e8702586bed0a72d5164d4fb3d47f3781783f63f2171290629818aa50addaeac19b20eb26d93a73c39bbfbdc232defcaa46f0fbf26539b3f2c2785cbcdcd789e9ba74525e25539ba857ba2ed3548da5d22a7a91fed57714adc961feb2d40be9b249c82049e833d13b5a1386d815df16069f2bdaa6587dad0a91c702852ac4383265aa426bf297963599cae62c6b023968cda01b4b548331600dba206b60265683315e35f627469833af8a95a912a2556d6b21faa56dfdd5cd2051c8642afa85bf80e944d88e991fb06ba0684d3266fffb9fd3b87df9d7b031f4cdd439fb66c668ee757346a56acc9ddf983d87993ec7317d7a78766833594ca7cc296b5da3c781ddd8d4902f170a7d4be18cd75768e10c287d53f27949d5787151a146ee8706ada2675ca842715d85e2ba0ac535963025f46dfc116d0842cbb2acd2abefc3c6fbb35b6c80e08100c2e9191b6f1b20d4f8a1d15c6a97daff9cc66fcf6e6246fe7d58f95f4a86abf1febb8b7d5fac51e32d556dd6beb980357eec49abe8995cb5d9f2b6af3496ce5245d5d3af1f2899dba7f57ca632b566a9c4f4d21a7d224b7d7793cff04d0ed359b356ad59bb948c95907fcc7a056976176ea9ee62d23252b74fcb54a1b38dbe06d23240680b48f35c02b2dfdd350c0c72b74d0e035a93c374573a3255a8abdad607cb9055dd99db559e54df4c7afb4bd7ae5421af4bdbfa7f2c46925e77058c152c7a18d3b6ee2edad6373d2db7cd7845dc2f3d5cda5d29e29a9d65045e97dbf7c48cc1824cab8b31655866baa802c738e3a1e91b9836d3627a4c97c1a2a7a7bba0d13a4c0fcf4e93a1cd64616a1075cdae3a63f869dad9690283b5202a0054014ae78217867685ef748c31da07516c2cd40c35d33dd02e68176d858ea1633a8a6241b1a068c284a16744b1af88624be5bad649c820431bbe7df0010b961e7ab872c58a1529a9a8a8ce758e49142d45c3248a969e29e99933615a360ccb86016d98b0ecae301097991762007155e85a7f5578117515d0b58eb5e00550dc15bad6954b0f39dc16bad6ab9c07ae0b5debb0065760b94dbad63cb9329cb850bad6ae10d000cb6dea5aebd800469a1b43d7ba9525034adcaef2be1873cdae5ae29add95ee8af89b3976585abf99e46b7e336dcefacdbce9b880bf9939d7f9cd8c7df57eb744c7ca18bad604a5a8890b435a58c18702824a15bad65f9560c92a5b251d01d9553d068f6c47f67eed4146cbc9a2663259cffbf50a8df67ea3e9e9a95668b43ed3c3b353a5683359500f3eb482b4b0828a685b8c9720f2e289b6b197cf9a2018cf9a6467cd18911763dac6f7cbe9b40e1921ff981d996bc5ca1252525da2a2ba1c173468b49c3993658c317ca8aac2d2b5ae6698562b5bcb742dd35f56ab6e89ae4b92228a8ab40c19d2f900825d0f206883ba2bb4e302b65a5d1656edb0501290665077a596693366baa864c277175d8ca962c4f79831588caf61c63716588071bd7ee91a18305efa4b7fa14a21851eea95d59324b152a5c01715d528d66b8ef521431a4d9f69dd878f318282aabad64cb5da1c4f70135d6ba6aeb33f4b74ad76e9beb353040ca645147de81a9387a5bf2bd1337db67221af446d92125f26d27296d3b29679e20b2bd7a461a882b0dcf6a28b6b8255b7df5faa103dd3b63ee8b226488ed62463627fe987fda5ed199a3b43b954a1ae87b6f57d00b59045c4ba256e73b97d0a0569d61898b9543bb44ecc4c168b5d4a86e3e9c2cc7878de71a9b6567a755faaad797668b6bb82254bb575d7a56ba2a32a73fb740af265bb2bb75fcbf4cddcb2f39bf7ab997eadea9bb98576f1fd3a06cefbf54cdfcc2db3bbdeaf68fa66be9ef37e97eb9bb94576f2fd2e4ae7fd4eaa6fe696d86ddeefacf4cd4c41a74c521675ad8f530ef181421559be4a572926a80aedd85adbe8694197ce2cb78d654d5266b96d4131cb6d0341cf9a6477d68cd157db91c9691c127497bb6b52305d49ab60202bb800b304a60a06ea7315a261dad6af2a4346ccedd32d487a9382b9fdae6a1a5ce00afcc7728da73769992ec58fa5097547b09ebfb83ebe4ab13a2f0c49b5209baca82e787a6e276ac4657b2c8994f9d2e230e15b6556d6a465eebd65765cac6d59b3764d2f0bcb9a554a0cd971a94225545b3d0892642cc65fba33add77761c21f4bec0a29d5bae9e5403124995bc3775c6e0d6f7655b77a11757f47277a3becd235964a4495764415f21793c3b04a93cf80a5595b7959ccda35ab1487b96695e233d7ac52b732ee0b1543c9dc7a8aa50abd5e0f054cdbf8d69760739336719376b949b99c880666aed458221a74d13636f90b69896830a66d2f4b44032cdac6d7e4337cc3882143bf905d0725760803aa4bcf9d3539ccada98034290dc6b8269f3953d54228b4ad2f460c193226cd62d22cb76fd22c37b3a35cfa667ab488be991fed524f97e89b09d2269ee89bd9a25438afa75efa6672d77e70ca973765acac29cb57098edddddddddd5437b49b815665f9d29df7ad40562ba45ea89e6862892e4570d192a5c9871dda4c16d3c9c1915240940ab9144e146298c24cdfe81865fa165675d1b79619327d639519d337b00b317d5b91c1a26fdf983060bea0d035fa30596a7c264c078a242cb6f31fa6559de57261da1f6f321697cf2e3ebff84cf2b9e6267771f96c7393cb5c3edfdc643397cfb09b5c75f94cc18c71f90bf542459f68822ed18516c1a56be3c5e7a8397933e8e636377de01c761388ce736e0e913d7693a9689fdd642f3cdf39b574adde643097cf53c6d0b5fa9d7a5a392ba90f5dab979550ba561f2b2996aed5eb943925eda16bf538a50b5dab8795f44ad7ea6fca16ba566f53522b5dabaf295728a954d7ea5fa5aba4515dab1f4bb1a4b9ae9934c7e1185dabadaaaeb1cc740d2cd3b57a5b75d1b5fa91e95af5c674ad13d3b57a6b2cba564fc3f0994bc129487ab376cdeee3eb4997f9fdf5ba3a6982af3159b7796dfde6e161afcf8153abc72961e54b9b32569225e92a41b10ccb21977e05e4d27f3e2ebd1774e9bb1c9766a151d08830b7efc3434c4dab2006ea3f1174020b05b1addfdd04eb4d5247e7f2e9132428e6aa50852897b6f5bb804d9054313197e6dad6074132160bbacd612eed3055882eb7a99522428f8b026894160a6649e1f4a1abadb024a96feaa16f758bcd9522279efbbd49d7ac985b6e4ee44215bab13696db36bef5d5c1a86b7219a22a44adb4addfa33541d19a64c7b266ecfe86a754904c45032ed7642a2bb74fa3c84bbe89bcacf7cf9ceb7a53ebd6bcdfb473c73775f7f5be0bde15df446be2d4f7fbcdadb13ec64b5a20a035632cbb2f9ba36b2e1bb42ae3733ffb43ef686b2d6b824ee365d921d6fc35b9cced2b20bcac37e1dcf1fd14566f7addd6fb4958177cbfc8f53e910bbca3dd895dd13eb4e66136976563d49a31d08ae25d59b2b326c99f6dfaae57add9ddda14bbb7bb1d33d0123350674ddb4dbb90cd9a0a3b9ea5d5975c7789fc5293cd5dea3ebb2bdb14bbe09bbebbc4bace5d6285ad37b1ee9278d6f924ec2e89b689bcae37c5eef826f12ebd604b4e3577e9659bc86bf3a6d8ad79d3eb2e91b609bce45f4b4ee15dbab14de0857da9297673de445e9c37e1dc9bb3123d936b8a5dd9979ac81bbbce5213797d18889e8777d0f365656520fa58a95332efa0cf29690c448f53ce18881e56ca1888fea6dc61207a9bd28681e86bca1b06a2274b1c06a27f953006a277952e06a21fcb1703d18b25c93be8c3b255860c44cf2a45de410f962b06a25f9520efa0ff4a1d06a2f7ca1c06a2efca1803d1d7f2eb78073d548cd6165432d7146bb3d7e7e0a9ff79d9bcfe385e0586ab79fdce4cf62a309cebf5b191c4b9949cf24fb3d3783d6c246d461a9772f2d8a71ab75dc7e7af2763a44dcda5bcecf964e3357e1ae5cb5e8a8e3fd1fef37a912463311b9b1ad74f993d9f7200bd46ed4f376e83c6cf279e1ffbd32e25e8556038d226665353e31a7fe65829e7538edb00e14f40afcdfe94739acf2f65c79f7e6e6b6c6a5c2e9cd74f1d2be57c02fa8d3fe5380834d99f747a6e2fe5c655e3728de30b87fccee87abd70c807c9729e6caef382c17070c8efd0a9f993eb311d56ca13909d129fc34e79b459ce9f62975dcaeb4f5d050ee75270d8f3e9869deadbec1465dd869deafe04829d025fe3c74e99ab370d3b6586a7d64e99df415bda29137ceb76ca6c9d657dec94c97ad7e359d8ec3ca2941d7b3e8da7cd2cd93f5aec5acc4eb574ec14cb82cfb1536015180e07f6227fded8f3c9751b3bb51a5f63a73e4bbe2c77b6fe07aad52116e1fbf6ddbc1578d6f93b4c95cbf55b2d160b04df55acee7ddfbb0e0c122bb8a613cfa5376f0d9ff4ae964a344d9a56d87ad2ce0eabc53ac8029f0483adc0d59348d25b794f123d6bc2e0733b9bd4c1e073ab4d4a0259b4cb8595879abc2527daa56fea16f8a6d55d2d39c9eeea4dddfd969c76eef7267abd25279debbde9bbed34bbfda67abb5a69e87473a9edba761648efca897557357765c5ae7d4e353ce404bb9f25bb7603f39c5a87879c5ab1b6b1a675434e38b7b33b3d4dde7edbaf68a5409501181974b940800405d56ab1184982e096f06159457c38c6cc65aabb3a1d8d98eaaeec094c75c1db9f810f566e270334b7bbdd0c8ab8370ca9e88d247407ef959dfd3e1e22a58af8d04a893f5d0f1fda33fc94f1af5fa6ba5e19d5bdca941291fbbdb3753c81525dfa1e8fa4a65ae76aebdc3dc27acb2a11b9d4e9bb4c71ac32a9cf54d7554a515cf8bb3abdab8fe509850b6d15f114c7e3d153ee3ae99b62355fcd8725e3e82b57669b19bbf4660c04493216fb6bb5a020ae3613c8350fe4d556cf667b5f370923b43561d8e97bd6a4494ab4eab635c1ce9af40c54a96e67e9ad57e975db9af47ad6acaf428cab0501a1fa12e6d6db1e14d8ac2f42fe3183c42a6a21ff985c75fb1405a4594b01c9543378a2efc2fb4d7a04291e9cd86fc115bebf424eeb7d05ac7e8eaf0253418a27a67329374f81358b852c9dd7a59ca27d22423b0a333116ce742ec565cf2722352f9f154d138b8961d8d2b994d19e383f9f88c05eae717529e5abc070b150145b2d90f5f3c64a3965bf09572fd7a5fc634b1441708735fb49b35264f6ec390eceaa15ba2e45f611144190c59aedc42eb2c0d96c27f6326cfd641db4c28c12e066b49d9f340c1f7050015cec6fb10efe7cea2a703b3fc74b99ddc74ae9e1b153df5721d8fa590586dba13b5c812603389a3da57870e7ccb2fe446b90c5163070b19f32cb3af8a70e0c122bc0c5ec94a79a06c7faf9545940e58b19703a76caf4de5d4a8e3d9f88a44983c3b153f5307bded8d829fa1afb44a73afbd33ea8e2e106dccb4e99dda9fd125a66f005ce65a74cfa6a77463b65d67f52447b3e511b98d80118b8d5cf27ca022a5f4cc18576cab324fba08a072bb8d6f944d39091821ce05876aada8e2ad1c50c6a8003ed14b560b581891d98c1ad2cac7f8021e9cd8e69505e8b62c2ce85eb474d39cdeeec553e5cfd14570e0e3c3ff6c2758f9a72925dfa2a2b9cf7293b3a389bf3c10f5c7d8a4f78be18e2588f92f270e1ab545ceb535e6472395c951bdc6b84a82a3638f1e38bbf33e2c84749559ccdab78b89a4f79e5707038e75fc4dd3c4aaac3e1bc4a87837d8a0f552e87ab02c3c946888aaad2c2e93c4aeac3c95ea571b14f7955e572b82a36b3f361d4925c2b996bf4b2728779d0c74a1ee641af53f6300ffa9cd28779d0e39432e6410f2b67cc83fea6a4310f7a9b328779d0d7943acc839e2c63cc83fe558acc83de558ecc837e2c5dcc835e2c5fcc833e2c59cc83be55b698073dab0c99073d587ecc837e55ae9807fd5782cc83de2b61cc83be2b7198077d2d3be641dfa5c73ce8a1e853ac2b99f0a76f4c94da9f9fff3b3b3bb1580c06839124298a2208768dde986ab55d572b14a5f407fdb5d7fdd3b57bd5bdf2c595b83a7f67a75b7d5e5761534924ffe9a38d83903b9c1a58cdf93f35f51dc987d99c537ca464d5fb77299998b37a0eeb2d3e98135ec419efbad40c07b35366d2ab6b36f69c3229ac6b3576ca4c22bbf62a5d65578a2558823b25588a5da35f95e5bb46ef95ff299f3e2857571984150449321603f91c64d4b74fd4a00876abeef5393a7bc6506db57ec79be223c3b1aee403a5dabe2bbd4aa8b6efbb0b240b5cd9a06aab07526df544d5566f4f14aaad5e856aab5f2188e6bc3021ff985f16a118dad63783a46edf047285caa458f8cb65a9eb71f1c2785cb88b6b7662bc5c27a6c7353ba9ae4b27559b20539b805db3cbd42b655ad76c2c4d653696dba75290de35e997aadb596edfe430f4cbedd32c540bf542bbd0256811f409ca8536c167c2987ce676ed722d471220434af0511444647a5caec7a508305e13de13de176f09cf8bd7c5a3ea55fdeabbdaf3c33223ebfbb0ae56259fef4ab5f5a56462df945e5e99bad337ef9f54b5f5957cbc3062c8549bd755eb55555bdf3b536dfd2f1705496f7a61be2cb4453142ee1bbfe3110bfad30d8effd3b7f309a7e646878d960f0f4d46d2381f9683068e4bc97034cebf0e907dcfceac716a74dc88347afc7cba41d3c1f97919b301428d3fd1b8edfc1d20a09f4f3a38353720bc1c1fb361abf1279eff9c0ff6e01164cfa7a01d351a3150c70d1d9a8e1b349d1a3841afdbf8f9b4e320fcfca976dbcfa71dae1a8d5247e773e339309b3fe99c04ca614fa9190e873d9f6a344a9f1b9fc57260367fc2b1fff9845363b353ab973f9f6e1efbf9540b6fc34e893f9f681c043bc5faf9c4f31a76cafb93cf7fec54fdf944a3adb52fed6dccc74ebd7a2cd93f78ec94cb923b16a48d76a76bfd99687fba46431beb5a3f763ee9fce4b0ec0e8e9d022decc64e7d369eed6aec5467491a50638316088376fe8291367f0a8978767a7e3ee99cb4f9138d47d9a79adcdcd59f747ef3f389f6979daa7f8a1de77c92d489c18ef3f329e7e39fc4bbceff8ca4363f9f5c77fde9b59ed65fb29f4fe1697f1a6f733e90a79aeffc7c123ffbf934eafc895642153a9fc4f3d829f0e7d3f81d3bf5fd7ca2d9a9263ad5faf924b353abc7587fd239ec7cd0e6377f72bde6e7934efff5f329c74e7517ff441e879e5528ee7c82d9296a63372dbb6363a75896ac01ed0f69a7605da37fd9a92637f7b37f72d929cf8e76aa89dece3e8976ca4eb515ff048362753715f28fd955422ab4adbebb297e3761e60e79f3270919e492f7175388133289e28d0e53ab25631ab79c5233dcece3995cae9c5fe965a3f34ae9ff99ac15a338a1f883e7be31d524218354a2979e61a07abe4c35d7b1e754524d8e3da7925cac7145b298b36f3696c9c6c69e5e986a6a2c778d7c5375ad9eb46653df5c96c9e5b24d4f34e9db6899c6d136594285be89964914ad0a5914d0b7d03285a155809616fad6b24cad966da16bb57a966562b1ba096b72d5ad966975a53ed3ca7297aed57fd6e432b75a267aa5b6494a340d53f7e6624d26b3f47a9f8ea0b9e4e8991c5391e9e1feaf5cceb496beb974b2f46dbcf959a26fa2ddd2a56f2155df5a56c907e75586c329a26fac98f844df40bbc3a56fab18a8d34d25f10fc2dcfa6ea26f9f9d4a8a4d25c1e8541299264d9aaa246490dd95ba272183248119c80432fbf409923e419a340c3d1386c5502e391643b9dc7a2a05d9d7a467ce54a1ced2b67a1024c958ecfe9abf263d439a344c509820b34740f64d7ae6d6d333148d4ece8d0f7d537addd8b3cbcc70385237af6f2b3d02ec5233dccdcda564b81896be29f934996aab9792e170a262b177133df44de985f316938be9e4d8cec2a54b5fe91b8e3da56438983da566b81bdb545faaadbec3541a05d9373b4b835064e70411eec02e7dd3e7a3f4aacae57878c8a97b78c8a97523e3a125a5d775c2b9ad3775331e72ea683ce424dae4f0d092d2ea3ae95cfaa6aa136b59b3e686879694e8758addf04d74c86985c3434eaf4bad49de495663139e95885ca79bdb7ad347be461e726a170f39b55e3ce464e362f1d09292cf75c2b9f44dde6d39d5db720a6fcb9ae303a7b0a80428d7eaa3a9206549e7189a2992260034007315603048301c8d48d33c1425f9140013a89e505621c9c32087420a1963880106004306600600648600008f5dd6b7e5794e7b78f41278c4b29c37d548dd0e0bad2fa12c4eab37149297fb57292638903a4d28eaf4c07afc2ab2b318aebc6e1e3412292b5c676a2937e3eabf8fdef5d70c1d4b391ad1525a31a8fe1f26d19e91239515d210a617c4d903dc40b6c3948d1b1a2c01e61d92dc601e14d05d9d5bf0e298e38d2717a61de54c41339e386b0414942c0f5ed1cd720d1d5dcb99bfc056ad235cb2cca57ea58cfc6239b898b99dbb18a84948d230fdab87ff581a6277cbc7b4a97843826fc5d1381bcbd3ce9ef9eeb12b5aff667e1115d92386664483c65cb9936fa5622c0d1b18404afe0c20e20e59c7fea3954930e8ded5654d88e2cd98af04c0b8056636b95295e2edf8136e9bf2f0f32b9a4e4e43d052c247b2104002c7244322555519d1d0a4bda2c93d3aa413f341c10b33ef1d2d4717b1a1b4a04dc8642a974ceb1af74e1eacdd000e23bd2aa84cab0cf38ab173bd4ddc51093f8cab67ef306494045b185de4f92ff7fd79e3b452bde1b4eae529ea28de16d6b34a932068a53755f151ce45b98c986963660ba318e43a89763aa3abf8a859f7e44124c8d1aed859f9ba6588c4236da6b083feb7e227b388aafd62a84f239d8e4a7de552c6a210f72590460223bb80a9247af24c59ec65778b718c21ed807ca5b5c06fc43d9d7f0421c379b5034520aa407d784cfd4956332600abfad9ab521480a14723835219558e09e8845deff2975515ddd23255bac41d45a964ba7c60266d8ac658b70bbd311dce28340721734842083050e55bc4ece2a3ffceae3ab9617514ce0a295e32854ba653a02b56be4022aa4c3a6c175361f7a88850175e31a8ceadcfb9d96fa36001d0dd2380d8c5b872f01d4dc21f6cac031a46e658e4d96651aaf1344604251b5c8c529de3d3b8846726fa0318613311274f3ada1590de40c84166dafdbac147d2cfb5bf82faf9fcab73761cc1f3cea2dc19f7527b7d69a14e43a16abbe2248204f8c8d1cc7b4660622ae5d729f2b880421cc6230ade632703f39bedd243a6939b4bfbb75feefe77a3a8047c805eee84e6169fdf2d640f30810a086e3a0d907beef78d87514221440a8e11936c4dd124799da3ea0a24ca9e3cd0ed613c101b430b334a04c602c04f8e681ffb879f1ec49b4ceb78f24cb887c951fe1215d2592e0ef9b993b931533853da21ce16463f9b622ee1e15534a4d6b7e148522ea517061fea10b2b31b26333077107a2ee63375b9c08694124eca780f2505719cac68be8cdaf0d9a0f29d6357818300f5b968c25977f07ba192bb5717c0f603b5153c47965dfe55ae4581da8da1f56a9148c4ee1574c6881db21d4d8597346ce0423034d3ba39ad97a5f6acd5ed724590918ec8281ac1cd4d0e7c0eb3a20d1af265009e78ca94c18a1b1051947266eb8b02871ed7394bbe5aefd95e37017467fe704e403cd339ef0ecd3d8cb45116d5fe5a8a3978e00f7a180c9d8830c972745583c35b8e325884c94f2e035ebe603ba788baaa1fdab1231812552d31d0419356adb56130b28dca2ebc48a83043f3a31415fdd32ae679ceab1d1b40f40172d4fc101c976b524ec61d362d17ca6e04fa034755d52c859336be70209887ef39e4c78124756f5888b84bd3408ac028472e0cbc8feaf07677dd5f6517b56333c37c5f383e963fdba59e3b8bd290d5f5a3fb46aa68708783b00d9216ed15d4a4f02b92d9c15b894f47e372beb7ca01f2fb68be6df2bdadb7976383a8c7835b3b6e481e9e01d2d49d162c2dfc23d27c738602e3546f016660be40ef6f9e3d38094af34cc27b1c83a4145df987ad307728adc9c1201de1153f176d3c38d096008abb8b26146cb88d40bdc72e8a9643cb032e050dc215056d08a4f8bbea024186db0871af9087f2e59393d23c9611438a7211d00a91a1b6ee2b1781a9b1e867647c52d34c8135e04c8e078d1ed3eee53fbaa66534f5a0f4c69aa02c820c1d95bfd7348c43b03174628f6c4c2b3109c4bae9faeac42cc8f70c51418e4eb8ef14c3c316d25865d7329020a7afeabf948230f5b4160753dbdb8ed1890e7daaf7a39ece640251f112ccb76b1a838f928cd6ba283820a6172e090db8eb3f09f6292cec79dbf581b7ff967218f9514ed62f32c33be5e15c17dda7f2a7808c07d51c8dbab3152337f49b9367e7bd3a5f4690ff09e77b6ca93b4c7d93794ca5847076d9af2401fee92d77644048fb9d053711882f54ca6080fa95848eec5239d60a82cdd25407374e43b206294608be4e06c0de28d0a1ef4db369100dcb75d2289f2a92e51e16c40e98310d0a811d57d34cb20991503dee559a33038fe0e6b7af0c5ff4e00c2fed6419f6f9ca367ceb0e063cf21c1cb0a297cf2d9d5ca9e05184dfb5291d79dfa2f24b0956e930a8fa346da6331fbc8132f5990dcf23bf06f60548c3ce4c046bc6e6bd093fe1dcdf1ff86745c5fb216a10eaa0ee63229518da7856abd3a599ac336ad84b03c5435fd21b3a7bee862945d4fbbbe16e77aca6722bc50295fbf0e0c9de549ce2d9b7a24ce29921d496f9726df62cc998911dcaeb870a414341e91d90e141766343d029b47c5fba10bc7f8893d3a000400f191cf515a5592889f485e2e874b6141b88ce547cfa4bd6587192d6215d1a3591a626d330769811acabababb41bcb9c3c011586a6cda7b3ffc04532c2319af901d3a8ced53e7bf28b0d1b064b7ee4ca2087cc48ae08f64ddc67bc348e39677b7bd920348365d1834ea52a1091e77ce72979fc4726d75c65b39d4de6d6b2262aa5280927156e30261f585c54de2079d4c866ceed0cc22ea8724bc231866e01ab3b24823bdd87a15a20afd50cb0eda76c06ce4da76804fc4ed3eb03f3ee6935395045772a7b1bcd029d829f2e177966317a7c1a68b465df07cb34de334c8b5e737b399c096b28f368043d379d71a253c0f9b8fa7c55290a88b20a9cbae12c57b34e37e0cfd513d88d80749516f522969b731490acc8acea84f3d36d83aad4f385b6706daf9a7487a208329a1f9765341c04c8fdc634f83445880ab77050b86cbea3c5dd3971a660f2e58722e2b5b4a413788627b84e14f84e714ee0e38e974e2cb99d904edcf015cfabc82970359984a65f22b57befc5779857abd79a1824ce8456bbba2be81907ee7943b0eae9a49ca665781bbacf67dafc3cf9d9c06e006143beba0ef442545e1becc5a2057f93c7779be9653f920c49beb1e5456cb2e89b135186577241c4b994c34ebad076b9c5538ca71ccc5bfef9c79585006efbe5400551d34658183ae8bd4d4cb0b8c374b82a5a8b07142913205512a7ef5e6792bc6684c7ef36cfd4f443c9563f7a70ecef4167a271e0abf16502472259aaf5b43cc3588253d92f12a9e60ead386496cd4bb40e92dd24ec6ae53a1feadc9399142b126e6f6f39686671071718e30d7b3b1494396b1ae9474aa9571327c0b0f2ad727214a392b26c8c4a128dc756a22135002b0d3a60e9206bef924a8e298bdd8a5be1c4f02c17da3385dfca0ee2896c6ad365bd0efcd42aab68ed5f7fa69ade86f2cc406a89657749360041fb1c2acb4f7e640053f61a370f757e923898dfadffcf3a8d41b8ff2c3144298068ce735fe2811428600f7ccaaf245390d4874ab32378e655ddefd022842e62e8590805979b43637287532c291746d49ab57b8c88e71bde1e5489f7273f8660f0d8c3c118744e9f5137c9847520cb11faa9d07c3f993e17ab053f0a7879057acd1fac1fc3170eb9f9968cde9bb6d63866d3db3717ede6d3c0744c8aa1b12c8774460e5b619f7aba58ad8ab411597148c1dd545c4e2a7167756e08ab3491ece2fe6e9eaff5291f02e579324ff3c41181f23fd0825b74f7190bad92f202390d4e8020c7c1aa01a110b0ce2b721971365e3dfc46c0f155a6992e1f68f2a29d5e9d3254ce01bd510ef5366d7232b17e56c8c7bffd38aeaf98bdcd45a9d0a46af5febc2684f1a978e1031a697da6eecd2ae95807ba0c8c527f0c480fa3fa3dd401f8013099b5602e4298dab5e5abcd03e52e8c2c6c55b9e59238e154f3688c12058f4ce768311841b20b5e306574ffeadc9fdc2211cb704ed91aa07cf6a126fc40a7758ecd1aa679b102c1ce4939bc3c28ccf74f5d7cedfdb19991ab98a3f25c373b8e9b0ad3b7726278963c58ce9a25dbdb7294c40938537cbf862bc097bf7b0a3f464e19d45e492997d086dc9b6cbc63e8adb554bcf13b6937d3b774f3b633fb486cbdda00f7f5262ebbfc14af46db58a1990a71bae07629ac5a05eae22d87ffe23df2e345727934ebe0529b083be78f11de8fc0a02afe4294b3f82f2050c9074d894128a6b009ae184d641ba2d7a5f202aa873c9357debe5aa780d5effe33a4a809591f4d2c0c9f804829c92d434b60902dc7574d6bdba0c804ea4c07544952136b0e32a4ab5299984f3a28543216bed6168da368eaebc57bf2ea97f50347dd3860eb3ed9e0dbf36e3635cfc1da584de0372d3debe6db1807525662afa491e595904265e389980fb1740e9c76590a0c8cce747d71e5fb88d0f97b32ee21eba1a85628b99343fec0ff416b526fe0ef7555c5b3b2eb845ebac7863afeaaeeb29893ded2c59c535ec2e529373ce7ac53f545ba53b6044bddd42bab7e413e61c1320570b0512a6aeabf10860f761af0cd4211c87fd37b8b42ebb08cdb54fa7ea52894df2b3a2c6045863e98ff8a9f24925b6a5a8532b36095781ce2598256cc104abcbe5095e34ab3e69bd03c84a54e32d63125fb6377564e3e2a81637c0dfd827d8a4d744aff923015d3f84ad4d27891bd609e9df79c57a49f9922b0cbfed33296984f202b10bf33acdd4f86ba85eafd4a831c1bd4e3341a2b5967cb1da59897d61ef773864038ef117a3e25b3cec04adb57fc1a7c46f3185d68569e71d3ffeda71f947f8188e91d89179529775fce1a61c5ddd7082fee27a3074f57427adc564a58147c5303ce810d50f2aac01fe3d846c05264adad7c31f69820a1e05901aa6811885f035f4530ebfacf69c9141980087384c9d7d3ab596afc721cf56f0f282ba737a145b4443edcab8322b801f8c0a7419bf256486c160f03108013445b6770384f7a09fa303adadd50bf9fa3a5737697f486afd96dcef05497a82b4462708b5f54fea31eae37be4f4af2472d8458c7eca9c7411d97002de98adf05631ba4918d1c778d186e7b2cb1948e50b891ba288aeb331da3d1330705dd2941e326a7ee7f0cc905fe3eb3d72836ca64fa0b13616604131d7cc9ccc5811d1c864c918fbc733aa853b6f48576b76e280b42feb7c22f2af77f65604cff3b96be14ee7dbb65a5e6210749a0ab95aed4f62ef8e0ed1aa6f5be3b05c34d616bbae27e0d0dad814bd5863744867d62f44cc7a20df305de2697750f6c56240834968b86d604e7104a5f13ea1309729a5d92be4eb6e88f4ea37f148f84373b573a7af8d838186f48aeb246d06ed7308ffdcd9799a9f24a41d46b5526e4126ab04c118968e9394cac6f606132541855b9fd02b9fcc11b245f1d7b4594c8c374c10db447040de7795b363d48b0e5ff5b2d994bbe883cb5ed4e61fa01a8f7b3ad889301c6ddd57d7f5f2ddfa9c76d0faf9c123bd57b89018ab68d931cc4c8dddbc12b11174ed6858c836e71d804e522f24af63006a29e280a005ec29b9270536c1b5fd3e3cc96272d1d97a9abe7f74821682ef2a57839d11c0aed58ce8cea881e6f9a18e877d05e18c3621db7b1e415fad2e958aee9cb51aec8819e165d2359d00c8c862f2454ce7e647493af9c3caf7fac1183f620ea0a2d8e177731ff39aa98a18d0236c6a335da323130abc46b8cc9eabc5503f028cb45851834ee1dc61b0f43879177aa52e11cbd1eb7287310de878f809fef9ad05b019faccd098064698e81ec0d432748bb16f097983b43be02e9054cefcd367fb00315524ae43b5c4bb286eaaa41b17ce0aac2b0c733e0396d66bd605806cb902c47f89ff66f77485421c2e6afbc5a8b6d90a84892ade1ae7d99edb2cf5d3681f432ea4ced46afd72c38a42472b0612f9518c6e32b19da38e686a632717161e3cd27550d3f308317aaf3a3e136f851706c3cae973f5e9482bc2ba4bfa6c159b46e41dffe840f8f94506c77099e975c1584ffd6369f73e60199e00975e1d8ea62804db7a03c869b80219d2c6a9260603be9381b1dcb11eb4a431013a4db55669bc142ff527e3c7e4c68ab8dd3ae9473542e9234ae716dd8cf374aba635ebf6d14ae39c2b45d7806c832fa55954963e0aeb868976211a074056d28163c8ef92e3f280e07e1fed07f59b1d8247b031826f138a1c4e096d1d3139847d117e88df385fcb53b7ec89751cfebe8825f7c65be9f2141a2f91c50f4ac6f3f8d0ef9914b947f7bbd9397bf9e6a42afeff9a2b81fdfa2342e9347732262f15a33acd4e36c002f6a0c3862b29ddc854361b2effc166a7b6d7df88e76eece22da8d3671324e16c88cd3bd053f161194d277552bbdb89ac111623ca19160f161a5a3f187a7a8ec30ec85607609036c87f6321a71c71a348e11d7707e8da1f9b052f71295b4d542683e299df9fa51cb71d36918c7d092da05f629a972efed37bcfa02bee843f1ab04d8d4381ceff6f1f8bc0080038be32157fd1a975b2c61e3a3ec4cacfbd11642f706d6c06e9d7fab5bcdff0cfeef0a498a832fda0b71ece3bb94a14f578436f4884006e681e88c6999b9422fe24dd04ad4b843eac132d3beccdecd14e3bcf5d39932387344cfd9a41161276f19966809e058960fe3756271073f23bed25d3c62995ba0d02cd10b08880fa653181e96e954464d5ad2ed1d333e6c84469211718ba4269fcccccd2c25861e74253a6e4416980b2c5a29e5feed7299d9295f7b5ca3ae71798ef848d2f080bd6f7ad180ed7a862a51fb9f3c3af5a6a350dea705b2934c78fa176cca3a84564b88c1d2e1fb63fa8fa4cccac13a430a4742b1bed5c447aeda7e0f8382992e61052c162581ff04a97d42243274b58ce876ff7344f7a5118c09080454f6d1b17feb64656a0e4d918e6b5b5092688ad54fdeae562cd18f2eca8d11eb7f34554c2c9990d562ec32803fe3baf88a55664db1601b37784f427737974396e1207c1b16c9f60094d4f248ffa382a65eb5abd65c31ac600101fb056473e30a8132ffd169867d54464ccbb3d1d1999e984d044abadd9e01775bfbd75404e8fd259cfb8b83bca8b23bc60c0c8696b244f5f6d6260a4178bc7d436841619477f50a0d8e0aa7dbb05c9c117dc5dda7692db1d263992423f31e965b7b1d4e9d1ac88eecc33d1715e3986501baebf9b82b0deba0e96dea93c3f805926345aa60323a028d0c8f2bb9643c964c9a5c1c49333c6618e46361c6854ad8e359867267ec740e13b8796f01331761d872172a3247d46bb2b3cc106fa7860977dddbdc0ff1ad22279ad1c385a60e66ecab128070ac06e35e6ec14f2fc56ddb3dc4628be3e9d00d43bbaa0ad8b9a8a4c25fcb9ddb6bf252742b82ef5ba3624115e23f39b0148bec617f272e4030c2b9f3850e10136361cfc59f49284a6b81522ff543b3244300022c51c71209a638b07e1c7972b18c30d3e3de3131fa7ea0d6321e472dd6938c06db843d58284219c87879f42600a43a24ab4bffd27acc24821f7b99823c18cb4dc052ec3732d85476b0b80a76c1857114f4cc925da227c660ded5a54ffe8d6dd7e89310d6c77acfca64e417a32c16efc8f7d915165d78a1f3f2fa618e48f9e502ea3afaedd10b296412f22c40631774806eaca1728c2eb9693797796224d4a929f0c69eea5ad175b6f9fed1df6e001bcfbb37d71000ce3ec270810e378f480a7c0b6c4fc385d9ae2229281bc52b7895d31095ae2ae6a5cc787667e8b1ae521aec3399a321e44c5433da8e2c0e19e6b104261099133e1920ee330136bd97af8b9cf04f8ad42c59e421a6683b5fd2d87a762bdcf0af090d5a2417cae466ae7523fcf42d4ac868e7b0f2af18cae3bf7d851a80dfcd8f526211b858a6b9f84519ed38735134feab487815693faaf3c42f75595ed5b8128c2d03d72ab00037d4633840100ef99a053a3acae25ccc1b60510a62e5ac5ce70a435f0baa00e1488198e114e321e10ef94364f6bdb9cae893a751450207b5e49c9d29709d675a30a558b61b881a6866465e6d2e3d2214c3c298a67f694895a7a18a640ee5f5096d0b0a34c49b2b9440b4a7e5f2845006c1f37637df27095424109bbfe29a8e1df6b714be5bbcb5225bc92189ff167bd52878097152ec1d4230ebe566003be1d58ad833948de5bd92d8fba69a6e1c25e4a3ed1878124f34bf7226e6b902c13216d9defe8d9ff12f8724921598a35d6501a0c30b92b8217283622ce0f9cdb92780e1085ec42378f2673c49cb70476864d237349d0cb65d1e3551b046264d54b0681e4d1428cd7a0679a287b68f8da961c0fe4aa11b59876ac5dcc2832a44a75a0bb0ea163fa4ab9cee97eb6fdffde1157ccc9e9bfac59ebc81141d3a148d644b6361e61258ead8479d00be44276ad2a469c138f53fb1d7f51fe1b96ccb66330e3ef37a38290c36715b02629a7f9e18d650da508506a1dd6b4dd99a194fdd0c53283ac244a0c42b059a56e682764d344b856ba3012f773c53d9c35250324502e4b27953ef3d82457ea03f62e485854256dec953d26cbe398fb73a8c95270825b76329bc4ccb92f7c0a203279979656d20e2287c4ba1c82d3bbd348efab450eb958a2cc2caa024ac0ad29b85c6e35e1dbb11faeb8edd03c8dd153a5e9dba2a7db469a0c41f83c903772ec73d06d0f566af81720398108208ba008addb83ab9bbdb938944a808bd14a4a2ba22892d826f0a0be7150d9b7920bf57ff9cd40d18856370f8be024c604cf048e11a450b2ff46ad3abc3dc3e327d5019d6928a75ad52e8a1b056e2212bc321f03ff4fade563d9835f65f679e1ae98ec558e690d7384fcf9d2170a5762e0bf8615ad189b3049cb25339d85591701c6ad8d4b28ce508b9b1ac77d13aa7dca08790e4ddda51b07a64286817c724b617d659830cffbbc3ecc38792fb818a9785177e6fb6e34c1777ffe8764cf068fc11c2b897a1399e5a1f8f2af98691dd158ee4e35b3ae48c6cf409886807c0fe133087ccfd48d64da67e7faab9c0ac5f26a4d6e5ac8f168f6b667af91b61165c5f9a52b25e8c72351cc3326d04e5b09bec15959367862cb4f149ab2654efae7b735ea9ea4ec9eb44e8f2a36decb49eb2b1105d4035f696914caa8eb9e4bdcb2a848ce642d0d8234f1b644e8534a02f6106ffd57aa3760ce2c1df36d0462fcb8d1918e73fd5d2a41488547818fa41258f8f7eae90c797c39092c507f341f12070a41ba32415d158ed090ce44506bb0955948984a53fe58fb13f25295d096e254f13fb39e7226d486f9a9b23c02694a9c1c7a5c9fd984925964925c7a45200d3ca7f79d9fbc35d93719f1fd4669d8cf93c3f81f50d58d225e7273c5ffc89f9d1fa8a8546d41cfd91c99f588dcd2e77cbbcd0b94a92d6a47db2c68487aa2433d4cf537863ceb64932fe5c821d0dead26b9915d42e6815b32e608daf0fd75d20bec72f61662d0e2cf17bf1cfd8f413d5cfebd74f94ff7fb9be2da626ad04f1748ebb42c6cbd9c4450200fc9301df87ff8f0764f37d4ad7e471db636cb0698e8e9a8944ce66e444f8911562ef30331f7555a2490720076f145432ad2ed71f4f5b4ef66de85a0705578e0a3cc0e5421423d3868fc82a0480810bb27b27386e62ecff81ecfdf3a5c75d718f6b4bae79d8b97bd64c225316402998b5b89908044d48906703c2ddf28e724ac4a885ea80099e2285965b053f8328a8261968722febe144f2bee4ba4b2feaf2c0dffd3e8368d24c34e8a637ae8a4f2626219e9d1038228aed642e3eb39638312458c54405c464360fdbe1c5bd0bc19d36d5dd0d70bb4390c3dac201d6eef642355a573e8003c9c273468700ea8b85ba8738c101d18a8d190d42f750216cf9337f806197b56d4bc0f9e89543bfb84fd0532d5ffd7db31ce1ef0307ab13ffda2fa56e812ede588bb7cac366619834a687d62b1d56e161547a106bad830e81f1ea8e07b5b3246e2fdd669c09f04f0bd0d2d529ae77c3c2ce9fbf620bbeb26e6b63a6ffce2775bbe9eea0fd04ee1fc10770f5e5286e5c96e04b2a145b23d50c84e30e671ded9ef281a7d9327274bd7372473c3c97c452756013ba20ef3201ade6cd4c5c8a0f95188f809fa9827bb348483d8a52d7269ad255df1c23824261b58392f24128cb63d7505a3f397be28a80a3ecdc30d4a9cb1c70f65a9ea84487c1c0bc2172cf211ab6daf85e8a55b2708fa0aa815509604506fad62919c356c7388ae605548e5213e7f97db779618e1f275b042ad3a68e027a136a650b1cbd5d6575a2abf838634c02135921a140b06abb0a6c0cc4e43f642a062377f1c7e1d70f94e3b8ea53fb0d8d95e17e0d64af62764d8efd533f978eafa02f235c8eb9144f9d9f040ec4e33c6e1ee7a520a4aa13afb01e4f91eea3644628bef048978d726f42b92c3bd9975b3dc7b25c98b89e278811e66043feaf164aa5649f4abdc1339bae65e0e140af95b83a323cfbcf49722ebe166846ee7e1b8de462f8195123a6ccaaad0fa8f7e922b25b8bb431dd93afc1d548bdac2664ae603e767b23aec50551ed1da4462d03e9178e00afdcdf9917cd3b3d04fe1df1d2cb9b630d5c40041bf97ce15f0a96ca14a0e989d8471af348868c826ec98bdc2855a6224ca5bc44578e34443d67f4508969428a1a2f484fd954dac9c186d657c6bb9ca027d1f7c8ed226cbfdd00da7dc6dc9a14125ef955168600aa43631564bd2d398e7b1226218286fd1fd800719658554d6068e87c2ad58f462266acbf42cf78411c72123a3f0d1d5e50273715d0bb277ac025139d6847f0a54a11a40667bb465878151292d4dc4b528c50c590952edc42bec51b3786d9d80265f74867378b6bbf975555849b6c1f5bdf3f8255d691e064176e8ffc7091205fac146c3db102229c1a185bfbc73c36ca2125d0f3f16fbd91068a182f33fea86f9111dcba11f8e04e8701df59ddb4cd3c33cae6122c2241900cd5679f8c645b8d087e4a427ba20515a9340d2af34c60899958d3506692c34559a2ee0c3ed94fa4dcf652471dd01a2b44ab0a74039a345dc92a48177f90e9da2207ac09ff9002b2db64eb917d2a8a92e07c429263bd424241f4c85bee62c4e898b67cd836e52b6a85b8e6aef69078b393ae89660b698a6e5dd5b33c0b9ce5d9294289bff67522660040780c1769b89632074900d6e4b12161390c6f23c0696749b84ce4ea0ad8172d20f65ac3a9fb9d77145332aa0a5b461fd77bad96edb809125e3e76835e6a9cf18c17358f486f12d4f648d04edbe68643004c64192e739af0bc299a42f32fd1df2a2e09662c65aae5c31b3c7475ec40196ecf8dea8f38136051c2f0c8da68681a3124a44526370cf8d2020b59b5bcb6df71c3ec435f995e515b2cf9bdcce8ce569fc969793ff0ffb7db3d367d96eaaa9c7026cd56acee543d00e836b519dcc910f2e67e4a282a223caf9c44772fa8dc3201930f32010298e33168d68460ee13861207a438b90f6a1fa61a4ec173c69606d333b415b1f6f073e619065ab37adf90b0d54e699f36ecef496bab620ce9c73d2913d0f5fd9a120b82b43153f57b623d6513201c2cfa974c1fc45bfcb3821a4fbd8d140e78f6c3b81bd796949ea907ee1d67a41b8fc0cd2c21d1d905eea52b95ff134a7fa6dc64e9064e7778e163a9c3ebad658a5810131200f804da12c752ce1a52ec967110cc1d5aa7a73746f825698b0d7e0a4d4e8d16936448fc56ce0d9eb7260cae7532cd87638a90808f4e9c2f5e132d934ed2ad8e9ba4b7baf6c6e72ddb80d4f551366eaa0481c15277e1cda8415d080d1291f3c822a61890fb1225c26ed59f456f16489d9172b01eb3ea1e13d4a97d971dee0789ef6c5a587b4a5e986998e17572a562cf0773b13acf48dd7231b53da3d33b4d07d7d16e07e6aedadb3dde11e98811293499d51aebe110eed01b8b3e82bbe4d20082a443a2abebcc197628a373a434cd41912cadd212f647a547cc9f08acbd3af909634ccf8b566cf3323a9021efd0c7ba3e153d437a3c8efcada6c84628730ca17af6234711c06cc9147dc8b4426b4673b4a200bbdf04bc043a043d7e00dd82e845e1d964da623330c1fae248b8cf3785db03f49e8dc58b3c1178b5399cf84c0138ba02301ae13e9eff511a80e94ebcaeb1766f37682ebc1bef1f47fed9af1d799a4d102d6e272dedc91dfe5774e8d3625d6d4c8bf216817ec679ebb4d73b569b3ea6a0d35e5d717193a1d462f629d69fcd87f29c211c2c8f3319803ac5c5c2abd68421e764d897e010128069dca906cf8a52334a110ebc6c4a789d2cbc4dbeb1269f83c76f9961aa741615cb0bab19cd807158540a57015d5d5b50da8ad992aa2bd74c4750e2ebd1766be023a80b2e9e81bdec30799cd1319f1aadd11f73408333d40de42f7f13ceae2b720fc6acac5572485945db3385890f2e82eb6de8afc1c1a87f04e7307b5fe604847d489bd22dd5f3b3daaa775bd9db9ee70dbfa597bbd8072ddd2c482e5a243995e71dc4a439ee01fe596d6910e2b822a5779ecce4ae193353983c5a4d4154331c714e1b5696d4a0938c713e9ce133a8fffb83f702a441a1f5c44b9662daf495308d37b1630c32b9cd6b447929c279f15f3752ad3ba21f77e8438be4378882598dd0beb1aadb6fa201d4300375a90fa89c0a45490802aa67a95eeeb76ea8695e8f0ba90a0ff59de35d3cd2f36cc4e871b4e62e080842d5ad5a40db3225888ab540f0c4978a3d411c858d0cb46984a86b4176d8e66043cedfdd8ec170d0df4f11aca8fbad168c19d9a50d6260c7ee80d3da510f6181aaa37442bee57c63d78ae5397449683c291838b786dd43d80dfb261d88bffee3178cc249f822e265c2eb7a6871199f2d7d71dd986411245bdc4c983a4c23ba40cc9645f6ccdb334de4b00e7c141ab35a7d2aa247c0589a4bb7aadfa144f463b181fb405a201958b1ff2b06c93d5af27a24bb7e789a8b683d99cf235126c698a23f3c83f51be5ccbf55d415c529dc5325421e69d0669fd7b85a5552587c34fc1327cec23a18c7f115aa212ddd7d6dd4835e4550e817fda9f4b1e677dc40547fca1737fb2946e4ae267e5e42c39fa2373fb8a2865e67e6073af3484cacbfaf84e637d755b9591be615c3b051e92e02a1439e4db9ac81bd5b669202a0bccb4bbb586f34efc2ab37b28c5621b5499adc566f8c066562f73b8a3b90ee4a0017bcd2d7e59102b57291365581a58560fcfe8b7ae20cb2f33a10b4995251810f0c47222626597cd49da2e2b156d6a050f461d3bdcd6a7474670861260d410e4e46f91d31a536fc26d875a779fc1c8e2124eb458257dd3671b0e940fde7f42ae6429be369d6707a1973b27288ca40d23ac679594f181b7e92a6851b53fc5c16c9771dd16007c530524794dd82eb1f0d42cc3c978eff498c9ffd7bb01fd164819f8d7b266e9cdd363fdc5119f5a1dc23d616ec11c76051350dd216ce1cab3a57164acc1ebc71c6c43b217ac4ca8322eba36492a9a383590890b15016f888588599699b7fcc1e2531659849dc103e919962937c9d60f03ac4d7196f7494fd0c962762e7706153b9dbe3436983f7372a297031bd5bcc4416ec04e4dc7b664cb7f0ab52fcbce5dab9f7804010051c34cb8438a2575124df86eec6667e3b0d83b8ce676f84185499d1abe83751830f953fea190555210aeb30fe3e07c3949d10bddd193f3c2ec24d3c59815f91189b1c3a030f50d527b5400878f8c6eda4dc1b95a430d6c654d1287d34e9f48a09b155b40b3b58d174043a481d88cc8d13ee37ca1f915a9be2053bf9e5dbf93613e7412679f270b29e70881deb99e440043b92d13d3dd06fe0db3023c67b63a5396d77ba69ce96ce17b18c42a1b3e126d8d5ee7ec631d881850755fa08ab891f4741ad2c7fcfe3e43f00384177dc3382d13f657e2e6a7d1ac02cf024ea1ed89bcec280261acad7cf7e1974f501179bbc72a7b3f30c564212cda6e5b0d5378731d8ea828374d3691243e157506585942013810b3a157adf1c0c41f0328d9b79ab35c183b0dabc9071894ce4bee33b44f79e1dbbd870d91886932792f962848b1cc73592a3e1d14ebac51074ee3cce9d43103c17f88959f3203387d746bc79f7a77d8788c29b03efb233dab958dd3d13c944b809dc01e05d215840008507e9096b6a093050a2a1d63030323bbe20c471b457b970f06323297ae5990c4292f812e104a3df196678d1f343d3af66c821e3d0af07370e263ac8b57a83184553ec412a1a2e79fefd2f706845e5a5c1a34be587bb3f825c5904ce85e8e8b10d4c4d91e19c9c872a9f6251c0b2c73fea276d7eead80c20bfd58e6be65aedc24e0bfdf9590ad0ca408850df486a1e8581d332abddae0631847e1c55e6064c3cf8ad0a128e8a71a696bf92e80497930aed50699cb36fed9bdfbf6cf74b5d2de8157e2a3443b54deeef7874d88c6f538f44ac567ae124c04aa4f16b0a73d86faa7221a779f85b23705ad58e16cefbaf5c6bbbd17d949d9edbef057178e96ebcd9a722a021fe4c9f712b0c1244ed64401fa09845aa708873aa02406af38a5f24b002d3b00c3ee78fa3343fb4b6066a3eaafe6964bc93606615ac829ba4946bfa91b7e54051b417013094759b298ebaf11a1a1cca513533a2dcde853ba84e24783ea55595b034948dcad6bcec09c06459bc572f7010a29d7d69bc8f3d7df55191317643c84e94b9816d764838c85df5b339be0246f7661dce95e3bd649cb331550ae284935d8692c54dd688ab95fa9656b947243c9fa3c431ad9af41c6702099d06bdde83a02510f140c3e26ca6b9637fc114e28fb683223659ed40b15718a4e63f3d793c70eb7b90daa4015ea0794361582dc90b752e4bdd81caa248dbafe98f771f898c2e83eb42c4e6704af0831c591bba448e019b7cb86f4fd37b390543791828bf47bfc3c45652918aec9c29e37d7c2e3ffb26fd8a0d60ac178077e22f07dad9e15bf840d8c1663d2d80bf2ff1031dbecb2acafea42047feb987302849a1a54970c74adc9b177210df040da94436f225e8bf564b8505bee1eaebd6484188ca3d2659910411bf8af79632acf62854119394d8bfca2944f865bb2c9cd00791b5ed2fc56f369b705aa450b6d1e9db797e1887db0b68f72fd4dbca4f596f9c5a005de542cad1514acbef96f1fd1ef3ed20101fd91c74ea8677cfe923c107df6d3bb71149ae09814dacf70bbfaf90562864b9b669ed01d48545a4f90794cbab23ba6f7e72fc1315114cdd3ededc913b51a40fc2ce86b9dde1278f0d196fa27bc2a550d65953640b3acb37837d8baf4db3a34e0d9b5d063ed080c534b6399a6bca62a5ba090596fff90c8af870d95aa802f67a6e980acde3cff2a02a95af205ce5b6543516299204e5379b3b28c6c6b724549a61624e8a44c3a8071763b47ce546d9ed7d6130a10f6c5d4bd52300be8ebcd9946eb67170276205d64cafc499b87cbb8ba0f9552ae0e2b91728d1a0ba0863dd0b9b15922aabf81bdf63ac3168b08a7876a414a911af7188a746514e1d8222c94de26e305be18170c46e3306f759ce8547ccf186d338b650077de8b3743f4a061f76bc7a9c02455915866922584529af768e0d8b579da96cd2797ad54be1621951570d66d628c4513a672d6f3a27564b468c3a574ab14bdef82ec97f8cdcbe1b7a6225935fac3001f312410f92d3a3473a98dc7f9bd7ca020753300a7d277ee2f40536a1acd953b5c8397d0c215d2859ab9b71757ec8c3ad1747ec8bd397533dfe239e74e95e1109122732e245db975bcf3f7f6df9449c0b5c0135c1eee8d47b0f30d137e418128a12cfb562ee4badf2c0585d01d83e299f31cba1e443691cd41a16bd50f752e8eb65ad482e1ada108bd1a55b1d808176e670c60c6d00808b125fcb8a7d2c4400b92270ee09cd3e8d60cc320e847531ab11ef010637ae1599d209ce512e23ce293934c1115a3d2b27c2f4e8cba6d11a5266ae51054d043c80424e9a0ac2e290088fa28ccee506d42905cb96d561ce51f76bcf20a5209a356a0bf7437921a61f8b191340158f159c104bf9c72a9fb964ea47e2d88e2fe6a8ddd40b42da7daea141e264983003407eb34adbeeec93148d38ae8b0a4fb35ef5e4169ea26acee5a6d9d1ac2a08fa4194052f14747c9b33ae18000c167bac738c4b487cccd1198c9eac842c0e665ea44256af946e7d0e08cc7f032fe066b629602e3a92e5e49a72881bd1114f7a90b44051539ed463fc976e9d8058e9a9a9fe88dbd4a86da43856e2885836b24a04e4da129d30bbdc6c265012c496129d4645558f244fe9a1e37607e4e71db6e7989968104312676d99c0643d2e0dc149e777b89324d2de530d3ae82df7b8b5df9af999fb66fc2e139672a2822d8257efbb22600d375135cf6b376c9828b5fbe56f48799f92df1575a6ce067071a2e112b79ed7c7ef2f1cca755dc293146d150f05f86ae3178115f88cce2b5efaa8f3dfc97a2124918304b4137ce4fc3277137aca548e3b15bde6ac5e4321882141e95f8079e686eb4813b6c90aa9501de5aa1a391511500a98eacf89320b8edca49639dfe63bf8a84316da0c2458be865a68c2d19cb8ea1a6d31b0dc30dac7623097f20ab05ff815de461ff339a2b5b9c1f40b51e2bb330835a4a00610c6764ac73026a5b761c8c979af8ea3aa61089aeae13ba7180db503d5d156d519f0bf0de6b8914d6fcddc1502722cfb7899be3e436279230601eda9ef765a6e40ea0cc81956166a6e9008d8999da7d21a0af93da3827a585965bbed5a8b1e9fb66d3ee92a15546764fc8015cea173df41239d2243fbf3be297f048015f8d629f43b605370892bf985bcfd0aeddc09a790b5deaf8964b02a6b71d7b155385ee21593f59e9d29f4cf6e7ef5ab72af65aa157aea4801fb3fa3bc365af096bdfa07dc35171b5947e492920a03f2f7fbd42879ac64536a20c641ac8498668a2ee94469199b4f9359215a27b6bf6d6d3bd58222ff7a8169fad462ee3f1375f70f304824af8b10f376002accbfe25a92469bcecfa65e17f58fd5af0f1f80b6c356e63fb82bbb7ae1afcb34410766768b8d67848af45cde5b8bc65d2eca54de1f80eb773d8db758a839a0e2946b846a11133b6950294a3c3e5d15017bc3480bda0275e592fe7fe384cc80e9141e9ccbb6080013d2d7a5966939043294bcbad93226bd04637236a5a9c545d424c907af25e3db95d656c6a0a0215ed333e081e1d8e0e061852d6b1b868db7912e3f8d007af4b41ab11ee819adf1c84e431b0ce1b17640fe464b1b9fea0074d76a132c84783e0ad8d046a89d56282c6bc2b3319529b30a0f845ed728461a10775d0e980697c0c47272adb6a22bbf366002d2083dfc2ef8476aba3257208c3e0b2946242381f950ce60c13f3b3ae1bbf2191150f254dd008cd2aecafcc4c3d04bd85d8bfe167c2a817bbb33ba7231e29aaebb0e174e014cc148e4349cc7e924f723705cb48e62a5870231494110b1156d92ae82c069ebffbd56182b94483293d6e13b075aa2441302e5ab9d4de4832da649707475bfcb68c7f254123075647e4e91e9d523fc28d552731abf04b4c32052e7c41572229394c8d1903329cc86f8d546bd2cf768958010f35a11a4dd486c3e84654ae29fc0430ace35a6e93d9acf966f42431b1e9daa33658a868703a15e22f6071f8982bd76b410599ab4616de431a0002ad74eb89c701f065acc1ce470fcc67b5ac608e930c6f8c534851dbedb4d88111bb2eb0ce1280512df49478db3f6ac190c4aaddc2e8dc9adb2651c331f485ecfbb706f21f8745e053a5649f7a22a5b9f8783c74641ca70213391a74cb33fadaaad2d696382ede7804d23259cc845dbf85ad3c398270dbf14ceede37cf7770851e822f77d618b5765ce1f178d513b94904f60e2d7b15770d6cfb908398fe13318e461533a34e318f90c1c134fe4d38c7fca39601972c8a506ba51dca0828083419242526c4937eebb0c20a3914e1a0735c8abfca30a1b443db0d5e09d07c2f397345b1bf98127c1ec867b39e00712251292641c87d275abeb4e6c7d67303ec34720810eacc6f83235bd0503079113994405b59041d3e7c1c19969a6b5e9b570def6c4f8186baac7280c7da7badedf62f751c2bb9ef8c5499e191abd317d1509ec268e312510ec6425b0afb9beb2615e2f18a6a4cc9c8a67d7d9cfa96a9275da4477f6d6fa946e470f1c9f7c7a43b3b20ceaec402663f89cff47f629cc5d378c70c5086489801562cf143d2316974eebfe7258215de3d0a33e6b604dee2b5be39c8231de7b993d7697f73f931804a66409394c3cdca57a1b4ceb4f10914116c783647c761899dd4030ecfbf09a7113227728e66f84a1758cfe176bf48156a31ca0334264d116993bea5d185f53c054bd0f6bf4cb428fe8b58e3fe2aed56bf96d8a728d1c4d034198c26bf3f354be8f3f9004e6285e9383a158dbd86a9823f387c07ec9257732d850c5408304336339a12aedf2c3fab0b560aa839476930c449a427dd7aca199cb8fb4e43cfb8d3555207d55a115eb86a080e0a47e1e87e6ee2cdd7115384d2e6c949017fb9af7a6a1018d52e438880f36aa834090738a1f180e13b963e250e16877e8aac09cbf1efe52dfd99d1c9f9801ac5e09dd2c2a54298df58645468574b5e131c512806d7295572573f6e6ae70c916d159512708904c8cf1632a22bffceec46a91fb166fa8110c9955e3ecf8b40115142a42669065a6ca71147956a06af34a72ff9f8399f77ebc747d8d350532034f0c7a1e358f2cf067794be1ccfe340f99cba59cbc852a755f44b7bb4c7f148a090bd490702c8babc586780caf6327479279613bf9e3dbc3550529fad66cf8c258d5060c0f7157344156263cb6ac68a87f3051811d7509e8fbf4e0723246e7824908cfc6def2d688795898fc4e3e31f9d0b95ea7e5de672a79298072cf8158d7745e47b21c57b85d32328605275d13609c687cc8e10cbb7a2e50c8777e417ff09f40b8080d2cbdd201fb85e0e63d49fcd59302c3504b6f6ba10ac3a110424fc48a3203931e5b192265f0b785a6e6a7e8acb64c6d5acfb7a5f95daa2cf27b3e68d1c95254c511a91008c38e93e4ff2089a83162211922927fb94c0f5ff8815d23b8a8e601fb777aa1fe3e62f33829b40b8b0b676e9621e36fdc50f8d79b57a08e3f54095c85b0289013c7d8f863b08315f7f906cc589ce8fc0e5effce2efaf65fdbc44333bf400d12bac1dfdcc207768fce194f9a1dcf81b0d9a56772f1450b4eac4cc4443a480d5d4c3abe1802c9652d1db8ec2d7e91b5fde45de190ca451402ab35aab417638042785074da879f94b5e4363923c154813aaf667bafa80313f7bcccafa7a93141bfaa5c01c2ae6d0db06082df2c86100e5183a65432ac840f41529369a73b0b647b4e68db0ba7d30c28be189279c94277f600eeb8c90b5ad92429120d12f4c8db4f64b9c21209ab81caae6efea9f138a81df64130744d6486654985c757869196b16b60a727fba8ed1af83405a5ac85d4480e87b243c669b4f866b7e4dbe9d1c384b0f30422a8262e3c41bd4e24920d20186d4bca7a1c70cadc0ac10f93ca4354e6f4869837c8e1ed65aee257f68bcd5d674802cada472c4e8b88b6426e7d76e8498ad7d51d459072e756bfbab047a5953043326591e792dafae99b820800e2d2f3d6e76541a06bebcb86fc474e072182fcafdfb5fd08a9534bf402b122bf68358fd397d569690621c295fe45d0dbf730dd97acdb28b8c930e6166ba608f41070f2a2716873cc5913a881db5f269c20a00b9f1ea243de4d885c501f6e6ff5e5d768ddd74b75983aeac506f5e056167b2552300eacb3930af4541c405878b45610004bc0896ab1200af2b08df3287710553656626dba1ecf229432d582a95e74cd193aaf950a5ed90058b3899989759c311808a7d83deb788c37bdb5de13a08d005c43120364eb7dbf71b74dfb0209226e646bbf832ac651e411d0be625bee4511d22e3d17d466d73ad151ce467972612b3ce9e909bc909d8075d1f261978e178841d02d00712576aab2ddd0c33af28227d8c73a793b2c124df20d9360b7dfa89ac2c8a37b04ee8feac85ef2a3f2f7b644961a1a35762f437a94ebfd2ace4ee62d3b1cf6e0cc25fd0b7fbfeac68b4494dcee524f28d4a4c17408182548737eacbadfe4ea05c4fd63f0a1de850f5230980faf6a06bc4ea883b224ef80cad0774a53810a11538c4e39e2417bccd483943fc47ae2c56779090289e8a704e701bde9e40de369564f128a2ed49dd4110a246ead68c93cb0598385d41addf74b49b018b2c0d467d526074a4d987654f013a5f83a002a717a8d64d767e1cc9d4288a9d6839ddeb3a149168640194bc61d6509d1c0b0e738b2b2bde2cbec4f2054b780bba38b322d3ff8c08fd05424e33337e1bb047e7ca4aa32d5678f016dac312fd71517646768855ff81ebeab2a63a206970f2eddd2de65078b2313ea31fea8b054c02e96c9a837e62de22bf02eda5bcc038ef365b4c5056a695922329fdc555cbba6d40c49aca0adcecf04be066b83c703e21a99c3a69b606264c6a3e53c4745e306501a797e6a3c3ada4a479330f613360a7cd705137ae4a6c01c3374e359e7bf5e077244dfa8b240bb877e26d12b99817f3c250b33b313837c0cc60920608582af0611f89093e083b2522427fdd76c6d0048471a38e2f85d68082b78c279be783e8097d9363465d70fcb4e162c3a1ab0a2ce27ae0fb0b1596b393139b9922683fe5d8e82f50104a87fc3ade46542cc2dabc7cfc86b2a7c8c3d873b387be8c4f4e1862dc92aa6c70fccd8757c24142556ccc12694bec6eb440dc2baad4ff368c1e1f9fde37b1a96f18dee007040d0554c409d0f7394d8c08e210886de3b90610fee4fd075357526ccfa8f51751b4be528319b6ad9c4a9d1f5e8c570d102dac624b4953ef09e50cbe08bd043da29e343ff0e6acb8517edef94a2cd04147430a39ed72a839e39acbd0c81b1d632bb2ebb7afe9cdd7919fb0680b04753158854be261586ea7b4094d818b57148508af6cf7e0350ce62a60f9b2e1ed636efa379857ba0fa30b32ef3117dc4ae3f3d5d6f7a75ac209f628db08ed54f2d929f50d014296ebd3d04c6c0bad54c3b938b88721d649ea8f4dc82c64257c68248e65795e90d6c19f4bf619109262a5f8d20980305ab0271c7996cee023a4de6f3cf77c83b19a965e5c95e398cda62fc035d00cf76d901b52d27f7b372a0fd87de62e1650c4b40e6cd8f7b021e1580facd001ecc2d6f429f532c9a88c7a759cccac36b2016c619bca41a2d7d41e3f47e5b897d6e8824c0bba92ed4ac6e566dcd5389ca683bcbba925040589cc2dc311ec1b89d8fe3f9b655aee2c474b82c9cb024ec80b695282d54c9ddfcad6532776588f886427fc4c14ece3463d2ea5a4e1f0c58eb2674d078c6ae07625df6224a60d1d0631217815cf92eb45c6681231786a0f6bdc739055e300ba3dd10c05d88589d0e907f1cf02638d9fa05217e41afeadeb231a1481df466f0845b252934b5a8823866dac29a52abd717a714ae9fddcbaabd01e7723fe0589c158a6aaf4d3bf3e6011740b0c92f7381af4248de6fdb7f37b4c92b393763c8b6be95efd21886442a5c8ed6404b6b1486b9e2cf79f45ddc20d60ecd815bbc5a262b9b390e76fb81305090ffd89392659dbf4e78f1bd2ad40ba131990323508e5cbe8be7a4d48681d6e1725853ac700b5d2698a21bd34b4d1c597c722b24f946cb5fb614c3074c525e8941ebe7fe7246f0ba68c420e2af64eb1a8a82401f53ac035bc8aef952667ba40e702483fde8096248afd7b8b138ff3a521b951f6506745d2a51024c52fac14b5c9485973e20d6ec12dcfc261c1e457a7ff0515f584f6de0f8cd78a8783f45c93d3a4bee655134b276b7eb96a4612262294b0cbeb87250cb8d90c01f078e03f7d51de31e25294d707ba407b5e3401615481a96a0c1eda9c2d62b75fb9b5497b092399846e09adcc8512f56ca2049773d7b4bd8d57706614046c3e69c8892b85663b7ed8846ae2d16223521b0bb005f26670d4e55b1135d33619140c1e20e7dd5c38bfee48242958ed23e72f9eb706e2fe05a40ec8950f58cb0c2dc0ffa5ffd681cb4aaec9edce67d2e20d2d6b5e8eaff81d9fcf0ece0345780715bc969aa440d7cd55a427149d142912478cc0924258696658ef018b2b8a1fb38c3ef91c867082eb35597e1c0c09848c6b7a826fc46dd7c1eaf6502beacef6916e5272a6ef6dcc8ae5ddf8741d520b5745258e44c60965b95b018909679047acad0e9b953796553d128ab0831a94223e60337924058bb8467be78092fadd94aab88cf126653a5b5b3e2c5ad8d4ef45015187c78a19392cfeae9fb5381f968afbac8d6dd7875c516318335db9962696d0634cb51be334a03ae16fb5f7823eb665ac559dc77fd135a6c4f2a8429f583b20df8d463c527b9cd563a4f7531e8f56fc9e69b6a1cfa1fbde442a2016d29f5b39d935a908c856bbdf950cf76394b2a3c367a3d84a4ac103675831582f8b85b262058ed2617c0333a5356998ceead07cf10aef5b2350db8a795d61390971b0b8b3e71f1743155b1c469521a91d041f9cb21578270be6e9e192ea044e4f5fe59ba7ca818a5b25058ec0e592a1399c3420b1a73d64d3e1b99b393f1463e312f6bdb8405e100102a98f8f2a8a1690021e3f94b63f462a4bfcdf647346ec98aecc3b5a775dc441740959aaded8bd84a781acc4893669d36651572390cfa8bc1235f46954b12fa9748f35ca427ffebfa81ded9ab4362c96e56e27d247a7e54d6b14690bc0395000d6eff60a1e743df823942d959bd61c5e144c686fe775a73659c72cae23b82fd3d1e9bf1c0b457b72675004a6dc324e185abb2b490a9a70245497a5cfacbdbe51bd053a74d9aaa3a066eb1336e0ac28f4a4704069a0031872683753b5793b0588fd76e9fca6daaccdedbc09d675a25aa8dd126245bfd007a82c5740cd9d7583e3d9bfd0390e2c765b6fe4e9fb535cc7a86157c15d66a553e585ea26b9467f02e1d67311efca1d4f142dc4517797c4c2c23d2cd3a2b0b97b2d48fd0ddd9e2ace769d2626dd2d0d62635fa65c55d09cfba76443df3fc063851850436fa9e2cc82ae0d9381a4333fdb6f61fc88b1eb194a29bb9772665b851893f6a339516d6806c2c4763297f1c7cbddfd03222876ccb63b7617c5dfcc41bcea353398d82fa5d54df4845758d5b4fa313e9d6a0325a6760b5c7cd56fb261d1018adf60f580ffa72001e3c7f9b063878943847cc52e6467d66fbc8751110d138624234c2b1a19c14bfb15c1eb41cd8226544fa3d635affba65c588fec095d988542cd5fab5e2edd837acdb01e66bed7c56170ba7670958aaa6d075ba903287c11fcf3e4749bba4560dc86d4520487c465c77f09542f22df295ea2a3a43ebd2d2f413c6273bd331072e03db8e2933e461c1863b873c0795535918514e2605efc22a217857db0dcb4f7a265f2aa4ef31f3f4b15b91e3fad51d94f1dc4d4a2d73eda06019ebe5b8de3fca4631411c215a690af2a0fd9891071dd48e02bd5d6588a9560f5680b5449d051d9aee7e55ec0c24e9013c145ffda6f109e8d0ebdf5ed59c46b7408913818a7a810da1fbbf145f00c97affb4bd1aa7eb15d8635220a1f7c010ecf29bc7c740a2de2043e89336dc2687c69a40243dc087d0bd5f8a39824a9a6f3769717ef9dde2e2a0a957c0a92931ae5fa4dcad69fffef28ab9b22ebde3d52685fa33dd4e1489347586003baa340536427b499a6faaa511bc1c7672c8d90ffa643eec1f99f4a05aa344cea173408d5e891f381ef52d760d9f5be80794ae7203f88f4f1f0063b98ee1d1e867bb72e7b3aaecdeb1b617efe938708639a1734e33d40608ade73cfd80b99374f38a725adc536678af68b78aa63f8187f030c582fa371da140ac6591a3995304ea0006a6afd9b3cfc54a59ba962ada916fdad19eca6bd86bd5b83e6d0aa0d8d2d99686a574b9354ac9cf55d6bc38a948e4c2dc9dada232ed84bbf15603aa5cce7ab0f6769ca9e3955a9dc1e5c2c3c36ec26b3d69c250b4dc466d6856f720622104bd9cbb3d854a91726e61d98766337e43530406745a46e0af54b6a857099ec32953262fd3f8ef5c6edd60cd2fa693df4b5e1469509636e790907091a89278d60f14da28062f62121671e74113801fed66b3ea2095b3c4e6b826870bab00931c8583e161a6597a944c4adf3cf1672ffb2742323b03c2345a773b2c3ce6ca5aa99b0fde7cb7e2ce5d332c2ba273ab9365a1684a7f0c91b83054a9edba4589baed93c191294d7b60549c8c51b692055ae079f0979f599497c97fa158189c6de918d74b0b24420f03a4e9e6e96b97e07e1c28d021de02d61e7a030de197bf2c56d704841e4343b1dbaf1e9b038d7a830ca5dbbf155f0095f5841b422f7f499c1c64e8091a925f7fb1b83968d0037c48bafb45f163d0a4a7e05072f5cb6364a043efc0a1ecea6fc7904066bdc086d0fdaf8e49ea00412ff8a174e9b762cf2092eeeb4db488df7eb5c4cc65946690f5095ada0359207c8371e0b9ec01669a2974d92e7fbb3a50ad840e3c8af6256a6c43bf35b0b5eec17250276ecb48cd7bcea7b96cd506a5246c522254735d17682bcb6589238492dde02cf776c322e6b6b5e676e741b5df79db9eaa73704ccfa4bc9e106bcea48c98998167c418c3e3c04234c026a79930ea6b318a6ab043db43f3ea5ceaab95ef242a9ea77aaba3d4ded0fbd68964f5d92a27d28241314d170266dc32115dca346502c110caec990e09d86c3d0657ae2be0d435e7784d5e08ce4d143ef3e97d948ce8e52643d22ea6eef6919e7994c12f4fe1c1100f3cfab966a7990fec6ba20607694581ef3bc92dbb257ef08ad57c9dfb4915607aee82260da14c5585616200c77e9522081d3891ec005911b9542af5ebb02ea1e93bc2c4a1a297d0768e323a1ef3513a5e43a9d7bc4d9b254cc838e16fdc25b850f3234484b37c3fecbbffe17bff7607720e98dd550fd55493726b8290d411e9943746c3753ad83ba12382e79e3735fcac4d919d85b25a9124e73f2f53cb5d5a81f7886e6526ef199dd9810b7cf601975b23ef0f0d707921bb455e40b7325367a2f332cbce40bf66ce9d3974b9a4153bf332ba9f993a033a9b597606f42b73ee4ca1cb258dd8b04b2b6b66a51957aacc7333a3f399753384fe9284c520bb5cc93630a719f21d05463683bee68091cd947e70527793e22ef42d1af8f3ffc324548a315fee001415be72cf22699a10d23e9eacb8ec9f3b242845652ff7008a185fb94312a717ac65d1d4714baa18f3e1eed658e9cf276e2fc9afa38ccf936d61dda4a46b8f1a964794938c42427c1ff4c64b9ae407779b74ee48e35ff329457d0606f51d9fbc2169a0e3dfa57d1829cb326d866f7038aa455025ee08b3f15f5d0e1a0cf5da9d229f5b4243a804b8b0d61ae9491e6e2685f5a2dccc3ba72c1939d4cf5e40eb7d20804f60e302b0f263befd9f7d504f6fd3ca167d95323f4bbc86f9af8ea8dfe4cfffc95f1d6766c5bfd6a433f2f3a2808aec30c53e9f7f1bfecfe905820c544619037153e64b8048a2640808f9e33c9817452339f99f6a073a735c3bdff54cc1492b2de3baaebd1a6ad740b5d34e8cc3d6bd3b7edd2d9fb8fd7485b043679653dba15363b44f9da33324e97c275345cde39deabe23a4b22795d05231251a38eb0e408f8193477ce7738ebe8ddfa075ad469b15692cafb8c196c42ea22f34134dbe57f4a69c3aee0a1bb21dc04b82b4a5114aaf6733271cb99be8a57efb7245dade42e801be60d2d142e0549261446dd2cba152130d975ccc8cde71e8d52462fc4b33db96bf5364b497800724c40a1001367d0ff59e4e7d7c2860c742863d236f49a7dcd550e9bb84c484d46b75b954c990a0fcab97a46b02265026a4d2cb4ba50917988d6541642fc6845e31b2fe908e97479d0c1a71c68ecc6cac8c173ef51d0e9725078c1e0ac9044905821e083222d899a083041f24d2334eb4182e26f75d7d09a0816ef321950f4da8df58880b09b93cf9aa28f666ebb18ad3252b4a0b15157a81d2df13faf26e13ebaa42c77b30a7eba05038e68f759fc2a8913d60f54e0e719b983cbd21096e5bc7f8b994349e6672a15e1311a2ec7293c17e4d8b6becbaa41459a1e47ed512151a5e4e1eaab6a7aefe5961c354982a19d8736bf6cd839ebfa6a87871e5820b46f1ce9bd88bd2c6d85178454b776ee821e868269181aeb4316f31d1e86035685563712fdf352fa7e1d2c21577cf5d11195a6437ca57be029107002ea8ed53d7e0f4747fae330fbe96b381050efe04cedeea4061db17d27e74c029b523f61f1a66fc968b4597fa15cab951c521df1c52d289f3882d81039aa130298b8a810f4e453d2d7d83706ef00564b666f5bc99522688d420ef132269a97c933194583124051e690160b4561c8c16ef3c6c6ae051f92bf44b4848c6790edb76b3907e76a922c57e081b16ec872c50505fd70d66058bd7421498a95624d95fd04c70bb84b6ea3874e360f28c02e4c3468041a6222f0a9d414271aac9326962d2f974eb30998e222265b87dc36b4602c624258ef1d88b7c014190ecf7b757823bc08369b86cfed8c6b5e4d196befbfd5b580608a1078694229366fe96912a2fbf8b493812b5080e07009432396f72f84c7d03499acb306ccc66f1c81a4fdcf9a69d687cc3058ae98ed7ea584a66df1951f82cd8519c8845328e85068c1482a049ff2fa9063511abdaa50427194008d9b7f7b513ae8890885893496b51f11212dc0379ec04822df8e0c4764dc7513158caf2b2d79c12477b1d110dbaf4623fbfe176c938bdf747a957f4d6b83fc4defbc98aa4e7b69a077b94d46160ecb100e1e8eadc4fa74e473da880b4cac927c1eaf7e2f731b57779d25c2d829e16f026eb5be57d25900f42df9f590a17d63ee2e1c61a936559469f6634868fa75e9961359787bfe92376c8892e8fec7d27ecfc322531c0127bb1eabfd9d139ef224291de2075929f865d9ededf63372bb1bc66579a62f17fae7051e588cdcef3d12cd9fd84c545b8ecf7b021fbacc775b3b4c5b7b7cffcd517251df192551e5daf0379405e61bc61fed0d845502344a730303a2f9e6392bd59eb779af0920c0ffa5318803ed0878b77a0bb8677db0a5e3559d3637287b8e599a34892bf1f976fb2b039f5cd42155de9cdcefcb2fa918bf4339a1ae239344b0795be650f14558c12a1bd8338d9b60c96002911afb6b4c1105666f5fcea8fa81664b39d09b35449eb51bdf8e3c5b650a7e406c9aea910ad045c972d5b2955087b5c0394d1b5c5c611627c426deb7c9ce9a8361bcbb74b7483912fd7a0068ac586c1cc0cc502d88e5717cb2f1949a0dbd13a1d1a641424e416ad2aac8f305be8678e676921abb7a6a61d0ffa1129e800b2e7dc6fc48460b76282166cded07ea057b8839d125642d5e88df1934d3fa930201e663078b8ab4c8dd6dd57e31179feaa7765edd09cabb7c5f7a7f93ca0778034d83e486831b1f98700eb569cf1159e37df98e6a924d9eff74e56b9bc73ff512f08c47ff6a2461d27a55dee5bab9df07a0c8ee877d4cbccaec78e3e4e25148a81e0cbf95ffd1e21d5c40a5d74f53e7268b455138759a807eaddc822e7b9ac06f0650db3b89dc17a23489acbf88252be93e2b5ac53510ab583c96f6d5734b1c55736ea7d42a8a4ab0b930c00d36dec47aec0936a37442b0a38535b2df96f21c7fd9fea75d659486be32bf1283dad5528d00e8637044a83228dbd0aa14a3f4b550b2615abdbc0a2a73a08002fa930f8c7cc5873a9b90be4401129dbe8d17a88f19226070fba2fddeb9ea28d655928952b718b7d1f8532a8101620c4ae4f50edcc0bb34b54d4f4e9a2ed6b01ae5f1571fbb06406a05716df06ba678f0ecfd35aea673c2bb836f61168f5640a092f2e2f0981d525edfe8c079ebba770295c22e8d24bd7ea49873dad7ff11a1e9d26ce92f788367d280ee9d4f5eaf5a859b2a74109e436488432ff89977e26bf1ec2a087eb22753e8b58231e93a192ad3045ae9284657c9eae8360d772e3fb867899421c071a0808186834573de4fc2cef03ae46bdead1f55635f447a9fa8bc8540e410a9c4f0e01775638536407b0b6489643ea38e09480695a89ed87349614201f2634350e103356fa06f22ee8d75ed297f827625b6bd30f30747b725ad053446d7387a51c548f3e4a50261d3381465febaf7fa3ec8971ef476d3d2e99b65e327b1c69ea46cb68476b12cd439225c1eeeab1b2d76e8b94bd6861895e334f90e957bfd014cce53072599ff4d7d61b32ecc3a2ff61a32ff1c7e1f44c4ad297aeed152e44b1e50f5f30a791255a47c0299b54afbfd1845bef0b23939fc6b4993e4593ade740bb2f34d535a4b9a30639f3a871e85baa317c3bd98ffa7b368af43c05d34601ed732aa800d82063d1cf4a5c0e5b1c03427ec0c42deaf1cbf7c10d3734ae0bf20e6305727b040f74d3429b8ee711a7a2a443a67da93d48bc0940afda49bfc1b9b1e0dd3eb450268e1de642b127ad67c5b1cae9038721127c9dbfa74a02d5e7a544ba66d8b7884342444d5d8b1cceae69521b2bc32005485c0600311066b77f81bda6d01c9fe31ac1a073d15a10d61a3c74e997bfc6dabe1884703547e709b823352258daad6ded3ea9280d8ed8e739f4dfba9ffbcc2ec521009874c4b2f84122091e244292587a3d5ea75f4b1f10752cdae896ce03164740df81c801ff4974eba1a859e3b6ad4b7577092cf3f42d1830a85f530c21e7a0af4ea59e1e55aa403bbecb615b01b8f03caddc817fed178b759bf00545b091ace7767230a91f1754997faf99b8353848476e84122ed1a6158435a7a37b0109b2c42983d85bf078a16fb9acdd679a8efe551fad2717ab1cc0e15b4cd3c041e69ac7dd6e4507d6ae9a539d4f54bf0ed3e45b9b747b0ffd93be4ea46e05ec342bf22b48bb78aaee5e8cc1038b34b35315e2be1ea31607209c82eda1e0de7a5adec0d58e40584ad604a35fcba02756c55a25faacb44d0895a056abfc80c2d8dd4eb62900a8471280e167950859ad931bf13d89fc9199cbffe538c4aa215599ae03816107185740dce49515da27499b17f0864d4e9afac9b28989d663c3391ce1a8c765209c6d4d400eece881e15e355b071f77faabcc4c8fef13a255566991469f8ce5d6ed7112c2048a9f53231d91dbb557627790665ce310319ba1f3e18e294d71c248aba8291189d2586b30d914735c247c965b4848fc69fae43c40cebe121088a24015851a5db813801462f56bbe3063a8ce83c24a9a55a7485419cd086a9fae0240db39de6ad736f1d774176a3ccdc96f0d042b40283bcd1a3391b8739a78ea18fb8fe086e1ed6f34f92332d8f8dce65da1809e83a25fd1d02406987ce26c6427351d1d3fefffad984a302da78ce444a0a515ff6f6e2686fbb2850310e6585afc881c7933ba64d13ceef223320cc9b144e68284f61d586ba84ecb99982793e4fb226762de46d2a2a9210dcf55b09a6b20aaa89765102776487be222e070ea671ec91d0780647189fa49cb803f8bc4f9120905d5d5db7b4fbce6c5b7ad7ca2be5b563500c7a6e0559c9aaeb0cab3b15786fe28b0acf4e45ab23237667d413dc546962c8803d79c348ebe8ff75adb0a421296ca84ed71e7cbcc0fcebca6d943f6248ddbeab99665924c285778620ef6a6e4c2e2d4a2d11dcc4eaedd2604d1a8bd5a8cf268d04a5d01ca19953743a6cc8235f3c48ab796c20bce53583407f959887849f3197fa71590660cf0c14756c0c5b87c5e96425162abb570bf2954db03194fefeaf054b4a5f40dd765b787d3bdb66ff05314a5ddfffd5f1f1aa78cbaab9245cff51fb36c5ea503998ed10f40fcc1c0364cbdb10f768c8539769462c36491dea48527db1157e7dec21a22f1e83e6be9e6c836911e62ed60bf95db06550e187d2962d2e24eaeab19d1e366eea5cf0e4ddd699141f663775cb9ae6296584e9b4cfba7bac2057509e20001de208d1f03f25f2238dc286e2dc26121e49aeb976ea10f6612af37228d8516660bd1d55e015440043e6bc4f00d5b30d6554d3a3193f4b0f3c37759fe40e34e6638cecf84589663ba7dd814f2037f68323658a422a1f3ffa98de40df9d8795f1daf82f175ac4032679db057475041b41f64242702b67e2f8fb7b5787c7fb3356b89344208217bcbbd03fe0c540ecc0d97c371c10e8ea0852a64a18b1cc4604e146142124ca040a20b31edb56b6eb076f05d138db07801d6fe6a1b2da65da66d684cbbf7eb909efb5123a671053dd98382827ab29b577b400837dcc4392b2880d0811b0f780008db738d58d63632c88b1207351a49610956e168b4a40926019e77cd9bef47c471d386bbac86cd735ddb86c68ca6e08148038c1da891755960c3e4f1166a7cc1d1480a4f30c5d1480a4eb0d653041ce8ee179eef9eae22575882e5a9d5f152429665592b81848c0f341249072e0449d84b7153d389b363f71c638c97cb3db4bbee949ada47d7fd608d729f40c4494f36e89c8fb17dd038b1122c4f1b0f116b417418bb91da89788466ce3967e048c44712356dc06be5f45079337779336cbabcad1cafd53d1467cf7d20ecdd56ce77cffbf771a7d3b9d38d1d4a6cea3ae4ee699e772d167136b338ee1b776f74184fa90e1d462deb0cd3691b7736fb36063a49ea850f91864f9c918faf229c501a1db20f78f12563e3c2d37485fa0a65e65defe2e9eaf830f70983976c17c8d2a26697cc3a5c6066b9246a7e2c029e9fb36fed7056a1e6e319b1a47d7988587e7ec64d8daea969c9791dbac6c6e884176baaea147741b48d8e8675da231225b88bbf691b221ad6fd3ba174883826aceb3a934f87dd111d769207ee8e97d458236eeef5f21071d111a4aee1ee1348b8773fa23bc7e50ae27cdc1aa85cf76d536d9b5c529261ae43eddddd331b53a2e298363248c33a7933d75d6ed15df5aecb2eebbbcb22fdee128aaec9aeba99eb32d5eda159df6a89e8a722128ae604e2cfb33ab0a8594681bbaeebd970149288145dd77537ddee5dd7490e88e7836a1ab5946ef3c6be8e106bb46b66c4db23c77d9e7236dc4d4b7f70dc0f37e9e3293b4e6ff3debc9669f4ed23d26bd768a459f6f97528b3cb937677369c7d9e6c64ef9af9d8490d096f486699b41928664760ed316e788bb67d685afec1f4f2f144b3c4d9999032e2b34b1b4f7b092923de1e6a26a40cf92370bcb4fdf6d1a1c4993b5bb4f4998d98cb36f0e1a8e30b428c313606aa7c53e1c569d33dc4b16fd61162dad9d8b04c7edb36cccdb9b3e1ed07cfb63f70eee9ec7449115602047bf19ba71cfa012923cb9e9032faf26423bbfd0129a34ffbf25cdbc498fcc946f67ed71cf1b6d9a98fb6f4470e07447f7408343f77363c39f9b6b1ef7f24d0d69a12a22004cf80a311149e602f253d8fd3b89873b4fc663388333a6d4eddc9c68665decd1c9e59cb749deedc4dddb97737bb3907ceae350e9ce37580b85f4d3d4fb004f6523caac4f20789e513a060282c61ee9e111480789e4ae6f0e9a7c79683a75df31dd4517de5a92cea9dadf22a2658f52f89d1139060243c8d9414e139b52f9e7250af3b62b0f77aed04c4ea2a10775d97ba0400c29eaabe5ef54e7594cdacc71360e52995553d9e0a20f1ca715af5eef4dae907d45757d99c03abae9d7ee85e59cf1c56b19e2b66dd16018030eb35f5fa951140387525108359b7e55d2775d6bdd4594fa5ce623d7698ba3907ae8f1db26ece81575f5d759ca9b299754df5ec7443e295af6c5e1d757f70415d5d2056aeba3a2b4f5d9def2a1d2056bddabcba3a40bc72bb9b7580f853bd4f39df7d76d5cd2d3776089e7608d66797a71feacd12b33ce5f1f403cb538ed32c36ffe0947ad53d959d3825e5f2f4435e5d450466cd89e5e9875cbfbaea4ecc72b30570cab367a71f1aa7bcfba17e75593767ef9938e5b9aadc0c8453aeca3395e374675554aaabfa0f2ea83d537593ed9158d5f1a8ad1e245e5de2d5eb3dbdebe5ebcd26ece978e7eec9538e09af38282861191c8da01005f6e4e907ef1c67bd9545c973464f3082b97b204e9d65730ecc62b11c54a95eef02de5c71fdcacacd15ab9e62558f6de3f295959b39acba2977b1b161293773b8defc3df5b3ac76159b758078f5ef28bb43e2d5e929a7f1eaf2d483cc599dbbd9fbea2b8b92270200ad6ce33eedb0ba59e2d5514fd99457cbbaca6610ab3e53d7a9673d55cf7a3debc60e554f3de5aa8e3357b6b1cae6efdbfbb44363d45737226eadaea3fa61486de5a85eafbaa7d7d353a7e334eabb3a40ec5d0e6b36e7b091c920ac03c43b648e0a9667e95406bc2c71335163f3c8f7509c3dde564efc7c8e978762200c8481b0d719a61d25ce6cec70ce560ea537e12e08e348353c6db619ec49332dda4ca5bc31931389af61dd044de14ca917357fa83ecd8f7a9949ebb68fd5357d971f5c903f3c2feb73491687f37ced90d561e3fce1fe3a6c8a27ab6b28c531d61051e76de5ccd3d3db17a8f240b83d24289d9bd4708c8cfa7031297d9e73ded98df3dc18f08aa2e385e93549c4bb90511a99395f7126be88fa450f9d3773326fdbb6d16b79b647042d669fcf31668f973a31cb9e65948877a127c359964de10259923ecbb2ace5bc5f8682f8719d811bf806d34b2d54791d3738c6fa0d0127ce44569665596500cee86517556656c70b6719fdb88652e5334d7b69b7c68da6852723a15025fd74e5f93927b531ce0019c1f4735e72211ec194ce7a23dfe0f90eaaf2f337985ae1b1f0c489348a8833f25e68c3ea362d9398bba19930794e2e99d135dc4f27eb80cf3b3861f29eecac9c1ceaf334d3c60993dcad1d366c1e752ad4508666c612d66e348e0ad876717428ed8dd7f49a66e1f460d77c3f6d9e8d0e0dd31ef1152a2b880eb50eb5e334c642cd3109d68e97d4a812716757b93c44bc84f4d1357d2dbb5aab2f117dd4ce7135d769436f6c18a85d7258eb50ef9b6f704bc9ba54912b32f57cacad5415ebd321eb5a679da574d65f3d768dca06ebc6b6dda53d3dc56650757968b5994bd97c8cfa7eba98e278fa3cfb8a33604c89da9752d09e87ba46e33a9447744dd76497caa0ae897fdb48ede18cb689b167d7ce4d9b79ed75dad06b8f2fedea48222ab975408b318bcfe275b238b518639665e7b22ccb321798c9e9022fbe22d55c7e7041de4eb56fda75b6cbb576aa5dbb3d6be7b4bf9ea9472d97d91867b46dbbd1d5618c3422ced4852305b9aed19e299d1167e2b9ac7dbb76a9a365f254a6c3784d6a41bc186ba8a57faca174f68c1225876e1c2f7578248e51a2e018238d7e8ea712c7c72b001c6f9c722a5144cfb663c33a8dc48bf34a2965a6c1524a2925955c4cc2f104539c4977e8a9d3f7eb9048bc4a546cdb69071b81b894e3525c92a7e78a230bc7d53388a38b68e83195e7e394e7578865320d8e4da472554abde91a13cb8a2ae52b4b3bdcb69bec4d87db596cd8b0ed2b76b331256a779a69c352bd1fc6934965c10eb7578bd3e1f694d5a1c3ed281b4487dbf6cf32a0c3ed9e2522ce6c57b15cc3b66973a361dbb74b6cba597586c53f1c51cf14253d962bd70c62eff2501ddf49f607648c314679bae9d1e6b8849f4f37dfe0d3b74f1b9f3f2c6b7d7e8abb99b086798f36a644fdde7d46d7a0ea3763cfe845aee3cda76fc799a7ccfd06d6d9aee3454f4d89bcc97dbb36571c5f6b624aa86c4c89eabd4bbd3fc9aa2ebc1d958fa50cdeb67f9b8d5406738869b0bc3cd464730fc593bb9f56656f51c5123e8e46497c80bbaeeb3a7aed7492579e8028f28129f6624ded224cb1473fae6d52be6d9b94027fcf9208d66eb6216f06da36eddbe9c9c6568433e9c986eca16642f38169d774374bac6d316e366811de6204c2c3271bf4f6508734c7c329d3cd40f4417088a351154fac50c230e068640511a32b78e0161c8dac58c2defc3228689009a47f48acdd27f0b65d7b2f21738858bbeda3c3ed7bf7ec5aa6b8a7f3a76d9fac6b37a39ef27c7ad4aee26c54d7cef2aef5cc9a7a8a8d0dabb96762efda4ddddc4331f7830b2aeaf650bc75b73fb8a09e6ecfc45bf7be3ce8489dee1b7deea1f85341ed99b867e2eff1664924c3f4cd84cc81bb3adfb76797a79cefeac86778cb3620322cefe6036bcd8494a1993cca8158fb76cd2707a60e905dc82fbc3d9e72409c73607a9cd62200627a75b6778f276edaa83eef79f23bd9307d9e7e1852b313a978201a7a4cf5ec53d3beda9e39cc7d65bf866dd75436366cbbb56b78e83e4bb47a6689861e5b3dc5d68665f7ec27bfb2a69b412cbbafacea26ab7db312090ee34c195bed8b9bb0c9cded661fbc9dda9bb58f6642caa0a7dfecdc6c96ed4c9c6534a25a1503c9649e3e9b3a402c29ee699c1343125aa0041d20ee3e9d4a5eec9a2f739ecce6cc6ccbb76c253c978d50e6f53ac20233c5b227cd381bb4876a8d0e6fb26ce3b26b116b57cadaa1949466af0eb397ebf7a28da768f30d8e8f31c61863f6ec34388b97a6c3ec661d3109b36414aadc50f908dcba714450501006707c0ae723828282867044a27a4e701e8ddd03c4f45fd76ccf3a32eff9089c6537d377f73a2bb3a8adec4098a6c36e1e0d3371333a8c73c6a5396f6acc2983a5cd1cce37b8d65a2bfebaaefbd736debb8eb33c70735707d8430c49684112f0765b3d50bc9de2edb6b603e177d83daa7c8ce778c8ae66634ad41cd30607cc942cddd81a43742854a5f4d1b556042cdcfc64e1841a24d5a50d14edc8b08ef6edfb3e9c36994c2693e99906d30e3dae43ef7bf6edc8b04e767a9b58248b82828278c4e4b189bbf9d8c46d67f5e919443d57bc4dd8146a96e138efade30667e7deaf617a43bafb0a5960b83f312fb0dc21dc0d63b05ef7870506eb0ed9aecc8df9fd61ddf5c7dc21daa5e950c2b03c13adeebaad7e7761055ff020d65d58c11745b1dc62b90bebb9e5fe50246a609485d80a64b943b23b6385f5fb435b70c4072188b1ee107a6f3a9429f72713aa82074762ab3b64de1a1628d52b0d28b1842bee884304d5c101dc8d1c9f0f3a2a8e2258417448dfd32135a2fb0ed121fd111dd21bd17d19d021bdcf8e2cd47884811f381e29f104cbf7b5ecf4740806789d75c9136a87bce99ee5f14cae1eda04768704bde3344fe781deeda179d075f73a164ef3701dabbb3df41578eee0eac4699e8dabdceda1a3e0b9437e1b4fb67ddbed619a00efe078b48ceb61f200ef90f7fa6bcbd3ef393d9e6cc879059ebf3b323c4f7fb23af2eec4e0f9e3cc46ccd1203c5fa36be4e9e5ae37a36bb695ff99fdddcedd8fa66bba95c39cb3ffb798df67a0c6d22a7243c9748dc975cf1ee61df7f2fbad250351b7865db372977ff6ae9b620e73afe3c00d46d6a2b5ac77f5ea9a147894bdcb4f3177bd1ce626afe597f5c216237b69309a45aaac72fa9a7c8e7cd7a86e2662557bf0a9bbb86058ee4fcb7f13cbefbd9b738eea2bd8b92dd3baff5df6536e4e71a9dc9f95eb52dd4c04bb3ff6acd7d4cb5d8e6addf553cb61fef5bd2e53f89cfa150ccf49bdbe7b21752ec6f6ca606837e566d5ea66a2f0fed80bd69b8960b83f3199e885fbf372f0a8d65d7efa580e73d32fe8c5780eeaf5f59c53cef7d3b74ceb9e62754dbd9928c6fd89b92cd4cd44affbf372d64f3713c1b83fad83ff4c1ecc657537e79cefa8733767a21cd3bf6f37e71ced84ba99e8de9f975bbf9b89ecfd699d75d3cd44bf3f2d07ef75ae5bb998e778ff609ed3dd7b790ef7ee5ace315dfb6e268ab93fadfb793713c1dc9f96b3dedd4cf4727f580e9e73b9dfe67acef6ee59eb39d93797e768cf6eba391c47e4ba3f2d97db6e266add1f964ce4727fc0cbf50dfd956b37b73c47fb76ee66a2a1c7c0e76494a8e5feb05c7aed6622f0feac9cf58ce52cf76745859e6569dfd02b40b55b6ee0d1aec9adec113736094581e93524707cd680a0e7389e1e8abfeb4d6af2eecd53a4a79c9cef3ba9eddf690770cfa907162c6f9e0036e19b7100b1e064730eee9bac7769bf0cc4030f679a9a9354080adcdfa47802376e1e38e2789484132c03c7a3248c3015b8af1df13882fb9a76eaa1af35d6b6edf3523cf304a2f1f698494cbfb3c5a30b20c13b28d672e6c49e3c65df6c634dc61c64132258f2483c957074012138225104c72b703cba40111c4f81f08aa834c62b344d8a49748515555451c5ab0a1a67368326220189094ab6d881155a88e2072b98011634c8020840d8c20a257457b4d0cfb0826ef76b98fcab88144370d2812053388a512cb4e8e28808296882163e88d12a303d68034ce97f84694a8c4e2b64d017be56a880f38b66c02be2b4e71a38e8cc2c589d806a16b87d6e77c61745f8e44d8df93c63468d0e9754148e465f4c81738d45321d721f0d704604e7b028ebc9851294a084ae5b73d98d2b3bfd40e73ac85d9c39331ede9c73729fdc05e7b9f93aa3f8c0733681a78ccd99651bb534f372defcd2a168043f58c19021784007b15cbf8041120c811120cd6048c81648f08458ffd536b128cb7cf1e38b219c6934142881c213e2114ab094032a6c410b5170e10154e842124620820f8e78c0840c74c01e0521d1f540ebc204650b38d32859427c94445a39fd7984dab78f50a3bc40d89b7306a194fe903266d93bbb3d040425f10738038836414cca654d8510b2d7169c12eac68a39850ee5ba1520a8144508a7284a282bc028364045e981766305a884033eac02ce344a36285e8ecff3993ef7b3a615615336e3b1273f1b3868262cce199ab269e704272cda9c7534b34d4d19b5939b301c71c2a6943a3b2626a2c0f60ec7531034282808d941c4a2d8766f4c583c4eb7c434098a91a41c66d8441b1d90cc670fe719b80b4ebe88b284eae25815e46cf001293861094974118409ca89144b40821256d8e206b16d09388a09a2a040c58a19356678a18459381a415102f670348222841210c1fd26429169d3c92289d429f590924e9345889836a6c72049e4003146c484f5b431bd5f41cf64656cb33826ac0b39fbedb684d8ce9dbb16f0bec562cc9336260eae339ddb6eba3fdd37eedc3deb33c4fb769f9feea67bf7a7bb69fbd641a60d779bed7d43a684a3857428a3c0f2385a4270efce6db625c4f6eedbbbdb383e612d04f733470447183f1950d6da128f8b3424ee58bc971292f278b2c1b33384e9df87c85e6f8328f578ea24115944167555263de9a0945213254b5dea6bed747a8bf5bae28e3aea5aa0cf3dc6e887680981baeaaa6b81d8bc0d157a79c2a17287e8503ea5c5fae940b1bab23c2beea83e87e28eba2d95a79e68418460958be3bb4d82e40f1c71ca9fa40f9e94f3ecf00861fabc10d9bbf31031113dcf103edbb59b3e848ff714cb9372d41bf5ee1f133661aca36c6bf5ef40312fc5f2a8dc0889797686680991dd74d3b580f6ec3176fa102d214c4f3d752dc0ddf41843ddc6ca3d79c271ba3ce1584939d9da5abd0f1463d9dc41f084a5dc53b10788311ed94908edd95586e086d8eedd1e9a3079d36db1defdc6d63e925aac8b83de79e38401c5522c0e9a099b30a0eca736e7032fb69775c807212813426a41032044c9f10788b10bcc48514419bd3f437474cc1b8199c40a4f7c88fc4f03c9964e78914b31f2822814250df1588a4ac0f1386e02e0041014618a2684008425c4e2a3ce76249a12a2e00512bc28c2ccaec86894bc208217485e2049adb3146897d3933b3e9e8cdc8d00c2d37475e6b99c51f96fce6e89b5ee66797aed66b9e383b57b3667dfb620c5e7459113c1fd4408eebb5e272026cef24600edcc1de4e9bdccb26a086af7eeda3bae933af3dcb7930daeb2b6938d4dbbc49e76b3ce7c769df92cb33af4f46b9b2a4ff3f144b52b44e046c7cd086e22f0d2f112018d4511784d15ccf9efe3de77a1efee71f6e3eaf6f88cc3b46d64d0c7ed90586e774786b5ab439fddefd26e1fdb6596458ebb3b292cb9dbca9141e67679ee1e67737fa0723cc40eb373df69f60e41ed73cf74b8f789e2d3874af5b37ed6f5ebee3e2796efee9ae6491ead7bd4ba7dc84ea3b66db4c88b294c30fd762fc53de2770dcddbb7d39bfbdb392398fbd6451458fb38db4695dea465f41d6bbbe9b672b4ee7e9f1ca7b3fd94b39dfb410575bb3a5bf7ee9e7ed0ee76ffeb02670b3ced60d7b858d1a88b24983eeb0209173eb80032c1ecacae893be4130f127faa1c46442e7875b4f7b3f6ec397b4e76edea64f7b38b78b1b9a00209735104472e86700145109ef78c9a2c81a3d11650706e2478dec3d1680b2d7023e99a8967c4364ef2f907cb1ba78f2a9dc499f92c9f442a7034e26209ce9203757e8b34bacfcf58637a06431a7c83679ce16eb23205319cefac248a33f337a68d14326132071944ca989fef4843a220cecccf47eee69b9bed661a9a30bc0c52e5954180549d7e9c02471c716ea32ea0e09ec674073d00703cf590617a675008381c1d6e24f9802302edba1e524881155e38610a103011bd38c2c20a3c7ec044111818e108a72b505cc5d1c84917700e9390e0a404329b7376a6694a20c100122c6ed0051750886009487001153c0085085448f2014704ca027fd41ac5134020820c048160083a00c2c1161a7062021f7cb19481d856048c85143738ddfca8db86859017683632289c5d2bf80f0b388750009d50a1736285e74449c3011f3a1182d6841320ed24049305472327523821724595e99a48040e04c1eddaf1e26b081c8e37437841099c304a82134b70422c13c21027905c6003594c21e683ca451264aa1c4648f853e5300aea3062af3fda6f51da5d104bd644232c3ca14941a8a22ca800e757168270a68981f30c2c6b60b9c51338c7223adb9b8dfb3c346eaf656c54df56414dc1d1080b43588927e576d4a4064d889c6ccc394f3c483c4fb326419a00992d2345b57226de82173b89a5a6449b191db56e46abbae4598d3403cbfb9075dc604e87aec1b9d13595057608a401240841084b509ab801516c3bd28408b860c59326fc40486c7bed1a01e0ede0b3c0db5f6db3c5b6cb801dca8a4319d0d5b756f045503087a3d1163d700eb9a627f052be08b3a189dc738d48c3f281f5637d15a4d1b470c2c91937341dcdb4e9eea745135abff04567dfd07c2c178681a3911643c0271c8db428c2f985e5d6191337d082063cb0e018674ce0cdd9b2b5202225779a536a11440b209835e9a45a74408b25b408a219cdaad004771650b0906999c6046791046789e31170a659f440cb82065910657182990508b268625aa32c783c39a14ea82528989450df44525395495155d5d38e8a086e2651705d547db3e268c404c85cc9948e3362b2046e2641b809ce14472b2cc15c676a42ca372d15d30aac55909369a1b002102c4f50a3911596c099c3d10a423873f359d0e5c20a468cac2005667528bba0c21592701a26a74de7ea1a2c7e4c018afe41d1f6c259c76bc3d9ac0ef6468732892a5b4246c1264135e168548521601b7072465ebb0e823873dbb62ae4006fdba6c38ded3916f14064fa6663bae0c6dd6ddbaa2003bc7578db346d46c368eeb2e0b479ddc0198ac9a087380647a32a7400a7e0685485209c6992b8e64ee0cdc770b687d3610d55edb0b5049e6fc5bbc3d107a0c0f237da6616f5713020474f116e19283468090a387ff8d4241a51e1023847254b47c03936c9d1832336c714491d463c6d8e29a8e8306299ae69d9440e346470bf7b5071345a4ac2b9c60e3d483ccf83c4f3e6e80112507689b4e334b5ae0eb9d66e6c58ab72180589503ca325288aa81c6d2fc639e79cf389292f638c315e4afb5989821a8d967844895cb80d85176bea3187af88c2134cd335f9c301cb2ba2b084e50bcbc760196dc00893363438a6d20d8f3aa49f6bd4641838def5927fff40c70b7f5d824a7134c2220afe402cb8405d11831b886966dcf8a0ba0e76cd7cae787a8125bec1f3dc3cc64faa8663d768b8f1e704cb5894f94086130bf134a9699f7616e89a58d3de20a8da039f6ac9a50447184036f2061b781c974ae1799c53a9089b8f8d253dbdb96526b39b53781e67b25c2f19d5ddc1ad5254c096bb837369bddcde1ddc851183c2b8bb838b21d2d8f1c950677680a94843de9d14de3ebfb2ddc8a27d1e46bb3426fbfc0bd9e56088347652987e7e864863870bd3fbc98834229e6d2306da64968122791934a78d7c3261f30f0ae258cf5129e5392a593dc72555502321758dce76245da3c37d91d4353a1d155da36352ea1a1d2f49d7e87c4aba46e7b4a46b74503aa9c728cda46b74eae7100d9b5762ddcc2949b9b92ead6610387cb8a1034e8d1b2e9cf37fd36c36a7216d59924695b2a984f6d2944d1a67cff109ce8dd45ba83e705177a0774746c146f4e995400cee0131879481249cb959b4921d0792241df5283aea4183a31e51d874a76710f530d290a9544a4a9d5ebaa6d34b5c994e2b013f9d4ec232e9b452e574beacd34959a79152376fadd3483a6c2dfbf7a852b16eadb5d63a27adb5aa54b5d6aa52d55aab4a556bad2a55adb5aa54b5d6aa52d55aab4a559ba09a069230d2e8764c937a5d77f33b94ae0e25c8f399ce63fa3a94f3747a91cbbe472a443371df466767a2df647052a7659f89dba8e97172df6854c21d24c9d469d927838508112244880c12a265a0920c1a222a45a5a834b9a874850ed2481a0d0d0d0d0dcdbd77cd6935e3a44deaa9db48afdd937a63c3b84b6f6cd886859a3b48900ed241827490063a358d24bcec32db69ba73ef9e677837dd7bbe39e51aa8a79e6391eaf548ca5748acab3c47242c918a96836f798e4aad98e4e5aebf3c4725318779cc735c62ffdbe7b804e3f7309e2393187f3dc6736c02c35f380c11f690ca10cfcd5ce6338fff647c86cb787ca5e134a7e1f12c1b5ec36d783c78c367fc86c7bb6c5e739bc71f87df1c87c7bf72388de75063c48ebc1100788d03e0f138260e1c00b0610ef68583fd3becdb58d70d7686b5a1061a2c8d9531c38c959121060bb3a185c1be6063bc2c8c6bad8d81b12f2edbb22da065b12a3665a5aa29d4e9f3666c5a468168488e0a2fbe322582e59b75959696eb2f313196064da5096552319fcca4e96422994d26d264328f2c152d313295cc22f18964a9acb0802d2e31de3fe850cca77d7dc2f827cc67cbf542874c308487c920f3191934a781064d2528543c497282a4c944627264a9c8ce25d3c854328b4c1f9ca972a0469b14f911430de7ae9d0ebd7018be80f990e1324fcc7c861f324e038486a78278b761c6e937dc60a7120db2938a9e5066d27c92a2c14e2713693699472693593497a691b96416994a3aec25ce5439509b458e68d84c40100838c0e95b8b3a8b2831b2a468e90813a426489c243da16242510a9a49288f0ee7e512ed83f584ca8f15202c4140285a84b87438c6bd0b64d58fa31d2e152d71c407d213487e2401a122881214498428e9704edc5d1473631e8025ecb5dfc1c7ebca70d513302e8caf7edc3bf31420bf315e2308cc95711c50b42e0c578010d7a5e1436cf8e5c2be80dc40fefcc2c33cc3693edf52e4193ffdfef5186ee662b8cc6bb8b9d67010f5ee5bffc0f3b2c9138c609dbe74f20514acf3c33c79fd7e5e4209ff4290cc63e041f3198652af61091bee7de618a53b2a6f51a240c13aa73be3fad0e1fc920dd6b33a28b13832490da9d4e18da462864ca29148642452a845cd744822c986f97dbd10c6a04305f7c4608bd091c30144306088b641e008c29250a8fc5f8982850828454b111723ad22d7919716000e8e0d40071b35afe153a66c40cd38ddf0d50bf1f905d821ac02ecc4616bd8896422cd233bd869a4c3f900d859a4c3be383a6c0134ce8d1de28edd1ec0d5c146d7dcd8610d7d1c9f32756db8b1c314d49d716387abd3bde1c60e5555885be3f3471c41045827c71ce6b3880f14233c60fc7e1e5922c65f9f483a7c0286bff04985077bf899a4c379191ec36751026ee6662ef38914c4cd55c667f84cea701e013c8812c50bac936938cde7016efe15ea9c3c7c87cf1b0fc067ce05f04980e37cf670fce9c3639f3f7c009f05b80e9f40dcc6a7012e0e200af0830f3d1020e7060f36ee60431b3a0c2086710410009b6d5ef3f9b9a46bf2cd6bf8fc5c4a7d7e32e99a8cc36df8fc6c82fafc74d23599c6677c7e3e397de6f01b3e4f83be4f00dc578d3b9f83a56171b037d6c6d6d830fb676f38d91956a2ac0d9e977a0d96067ba3c3791a2bc3e2cc30636f3a9c97b132d8182c07b33e8430581d3a9c7f2186adf182616774387fed6d8c0d3b9c87b12fb6a7881c0e208201430481a3c3199370344c46a5d5cd5189eae6b8546f8e4d421ca66ea6c11275398d0e4d9be8ddccd5ed82d9cd748812c111069002240c888f3adf8f4718288283b892078e34a2902870bfb7a8b98378e01682c386c96b45715ea166a994e376a9344412062821628903967230d1d1a408273d3bf447ecd0ab33af0c6a2f6a8e494948bcf8ca3141f0fc44a24a9c2b8e4638e25c53415b11e6362da3f22ebd15e12cebb684e737ad099ed79ee0f96c9ed2a1e9430689474352e02c7fe05c83a87e7041aa103c554482c404994ca4bc31524a398efbbeafd6ca62b1c01b41c178d7bc3a3b32ca10bc1a3922d3374b54af59a2d4334b843ab544a74f4bf4bd2d9177ce66220c08205653676da7fb586048e65d1f0b0c99a7261df98879e4757517e42e6bbb55bb5fc6f3b3016ddd3bf05c5d93897c52be23bb7816b769f72e7d00bceb332467de749f213bf2d96f26fa3eef8e4ce9eb72b956dd054150c55d168b55b75b6b4d69f7fb3ed4f5b1c0107a39ef3e181040ec747d302080d8772d30847e88760b0cc9bceb4387e4c41be34f07b4354d41d79ea89e5fc44edd73d2219758bf0bb1ef4a9862f3f1a7f3f6f5f9d1ae3d35df34fb4f77eef1aea6dcfc4ff70cecff68a7dbb9f91fd3e9fb3fdcb5673fa6cf2b61aaab14e5deffc9aea9ba6ffff156f5c7bb8752c2143bdd2462ea7d9430c55028d37fbaafae1232e6a9e635fa9feca9fb2821633e3fdeb72b618ad59b425d9f6e7b73ff99a71f72899dbeebddd834fbcf963d337597bbcfcf3ce59490319f9f4dbbaf8cfeccbeef1b5472c38147635a3f9b1162f3fa28818acd0fad489a25918a32e4129bf749224609d3333a57865c622eac554579aa2fe562adac2aca4b49a9c09515aba23c15550a6b8555571cd55254eacb0a6b85facff7eaf2ba2dfb8ff6979683d941f0fafc70a656cbf5f931512e7ae123e65a61adaae7a38429d6ba2e3e432e3196ebf363fa0a6b55515eb765fff93eeff3c37d85b5aa28af9bfff9a85651f7f949dddbfef3bdbbcf8ff695fbea1bbabe6f68d6eaba5417ac174c5d17eab24ef7f59fefdebbd57463773f6ebb9c76bfec87cefb9f96ec903c1fb8a83cf13bdd77b8ef6cdfd1be937d877ec70898a01d23b624dc37c2064f3c4fbcf9dd79ba9b5ddc79b89bc1ed3cdbcd2ced3c5ae4c96ee6a191a73f3b76df1d2b58de97bc62fb8e11f4dc8dc8de5d9abccbd351357555caeaac1595b3b48037c2f51d7977628c68fde5f1af9d9d1de477d8697d07fcceca7756df497d67fe7b0fdd7b9051a2c8ef48795b2f37bb5a371f74b9b905bcd9a5c272f38acacde08a7573caea66564a75734ddd5cbfef70c1a89b4ff7bbf9dbe182bd9b4db7bb3b5c3077f36604bcdd9d981d2ecf3d9a4b520d78afaec93bf277b94090c5aaf5fbb81d2e3b313b5c307deed1f08ca1f23a3623e07977ace0961de4b5ec4c5f97e2668f86b76b3b29bc6305673c3d8db3cbfb9ada66fa704751a89bb26dcd02a25ad9a52f741569cc5b3b949d9c517891669bc671a60ef5f8cffb50a7c757d579588f67a1f08af51e0da7bc6705efa430cbe3c10fab9c6707c52cefa178e53d2cbc2300dce2e95961f03c3d26dc729e1d1a6ebda7b1cb79787a2a8679b9eb3d20de993886a707857976348eb932ced869699c9177d92ccec8b76ce762b93823df6237ed8b339e29853a55d56a45851567525ac038c3e28a332d9717182018399f785d851a6b74cd76f969b76bd2541e73fadbcd743d95bf7cfb63aec1dc6aa7d64dffcbb9cd757b8db2642bcd92292995b7fcad77307fb9c9f598732eb7df58b44bc1ac65eaaa502c3fbd05e62dd75f5c1e7313789b12437b5118d9ed15c95265fd4c3ee7293f0bcc5b5a2f2bf7077ccc3b7b134ba3597f75f3caa5725d7d83fc539e8239cb51aeb7fcf4817fb9b7f298b7bdae4e75d34b83416f66573757108614cc538e729de52797b7fcf356fef22ee682a6d4d52c7df72ca6de8c4add4cf43ab99ef2cfe52cf7ba95b76e7ab92ceef44d83c95e50377f371359af03cf7213d7bad574ef9ae934db68f7ec39d9a9097ccaca595aeea769e74ee9b567ddcdd9885adaca534e559eddbc5dfaec973e5379cae9cae7cafd5161cda7a85ee04597eb2a8fa7abd5571ecfb158071fffb1b0d49898bb3c9e0583bd4534f31d7922a199bf10a57c47f2100d092006731fb8a88f984828e5302f2d245cae4f114141411768b93e3d2d38e2031180d747024255f0a0072bd7a707891a183989f96040003195ebd3eaf3f0b8562c9618d8cc934845b93e43befb0cf1ee3324fbd063312cac95ebc7f5d57d86a0fe93fa8fea3e43e857d767488efce73324e7bbc4df7d86c80fd9bc15fe9e73229a39c17e3add8cbfd33da910a5d07f94dedc923762229794df55dfeb6d015d54f285a8c5ba7c4efdbb39e73bea7bce9197cf3039dfbffbc1b05e4e2d97b7802b2a29331eccfb6ab5ca6ece54bc0baedc7b4b8efc76f37656ccbd9f6eeb52de4ce4225f2ee5cd2e8ec562fda7c358b043d9dddcddfbe9c4c202e3deef8bd5a134dd6cfa09067be1a7c780a17628ebcc734e33333fbdde1842193e6f062219195c87f244c34fcf391ecdbde79c530dcff16ab83f3334ccd0dc1fd85d32ee0fcb0c337788e95e0626c3fd61c500bb01cf703c52c18f8942794cf0e2ad11351ea9a05510d404676e09c723289470fe708422097b381e41d1032c6f0482e3898ee0787b1ac738c3aae15050034ea3c10bb215d0d30004715050026eea80034e147c80739d06286082a3c109704069f0c2f1e804553881129c6992b81150f95c236b9a022228d801a617acf4e0c369138b68223d27df3794a246fc626179dc4585c1f1e8044698e27874821de00c126106af19dc4c18c000067d026dc660ca80a5a6c4d64e00451018cc2135571d2f5c63c67c41a5381e057101ceb54e1b9c39831051a9c30d5ab32029a091488d38d72a135a1c8f825c00a3703c3281139cc32423c984c5e26a3c4aa98d89c88d2088d091d44153c0df5109b480735452c2392e416120f8096e29250f14cb9acac212cb93644d1bf924c2facdc25932c15c0f55558ea3a5231324c13dcd04f7a73c00f03c01a161392f4e94e9cf0ed488b3fc71e4c70eaa0539ae5630488603ba2dc1cdb8a1992ba0a1f98e48c0a3c6a2570a8e4740ae80f3cb486631ea206bd7c4274725f8412b0084081c6801119a980214621a17b890948224ec4009035460dd4914f6356181f38ba68f9054b52d2bc110099e5832e77581da3308e228a13adce830c301ab98aeb98258346938203fc01b8e47408a8adc4c1564dad108961c89600b197c536a366a77aee06b8db3a0f65c718d1308a6264c69e6658f9552201d8898663705b5b256703c1ac117b8c3f168044e70ae540b13052f209bf6bc554dd3344dd3344dd3344dd3b46b525ed3b44da3349399862558b7ce3629b57b36cb6f7205db36b36d726a4a516858fbd6042dcbc02ccbb22ccbb22ccbb22ccb9e655976ed5e2a9b736614ac3b384ca7a6699ab6c23208716685334fd3629c91d76e6bda71a6669f7149a033089e773141ed4b112c6199748f66061ab4702da8c0040b52a0b4bbe82ee2cc3c0d236608e2cc7c6b21cecccf1f91c6fc61441c028e7186d23b7f4c12d48857f8c71441a411919ea8a0cd007e5c11a3ac19c00f2c62187146e159031c715e0de00713a2cc61003faa88326290cf48133ca1fc602287703c12018fa31040c172be46dbc4d80cc11258226120351e894029d2d0dcccdff001c7910890f0fcc79a73d2391fcecf9b65105e930b9c65769041c81e8431101209cb530ff207f285a5e4812592cc21e2389fa8208e97449186119207964471269e86112b8833f12bc07d91248e71a6e30f705f0221d2904871261e08418834649f8b34faee441ab18916f3fd818009ce1c6ded4db5b79adbfe5596f69bb6e9aebdbe671aacc5a2dab0a8c16a73cd6df408044934ede8034db0a6d1e3744c9add1ff062b707a0e038058e471ec001f6525e9c362e2fd9e38b98363fa68deb71da7836a6c7e79836303c5efa9836318f9745a64dab3ec613316deee3e5d0b4393d5e129936f631c60f316d521e2f83a6cd0b8faac787d3a6e5afc71f316d581e2f834c1b188fe75e5786cf7099af581857e805e331beb22f5c21d80b0f8fb2f70acd30f3957fd65ea118f7f69d85e10acdac5ce69c8db942210c8fe19b6d5da16bffba665fae504bfbb4ae2b04430c87ddc50abd5c7b8cbc4acc5dd76e0f9918ccab158ab93d648809a11ee37aeb9e1572dd1e2a3121eeaedb0315fb5fae90cbeb5bac90d7baca5956a8a5f297a7ac90caed316342e0ebcb533759a12484bcbfdc1e3331a19550eaf600404ce87b8c777bb86242de5d6fdd1eac9850f6d653ac900c33dc1e2d31a1eeaecfdc1e5c4c68be756a85566e8f554c68e555e6f690312195bf5c86db438b09a51e73162b14c3edd18a09696fc16e8f574ca8e5f52ffc14de1ea998d0e93187e1f6b889096d77fd85dbc314134af9cb555608c69310028ac5b83d608809d1b77e6f0f584c88e5f50addf79031d3db0a252104147bdd1e018809d5c7c4dc7485542ec4ba50ca85545f1dc6ed61131332dd75af9076a1ec42f442fd79d7ededd13121d55f7e2bd46f5da1982be45dc874a1ee42dbb9f790b1d661ac10eb2f57a8878cb9ae50bd50ea42a80b7d3fbd75855c2ed47221f0422b6739ce7469b1e184c58316c784c5b3d823ac0c3261f12a966553ec101316bfb23268c2e255560a99b0f86aeb84c5a7eccd84c5a32c1113167fb27268c2e23f2b894c58bc674d1667c2e23b9b63c2e2392b7d4c58fc666591098bd7ec272c3eb3d4163161f1d3ca1f565a9da32794e01c8f3a1004f74cac230f6210cf48ee0a1f78beed4c96381699b49bfb3af21123c11167649c4203787e0a9c4d785e228934b2cf376d4afb5922b1d80ab4879845b489b12848c10955e0898424e428049ec63b12b71c42b489b1245421852cb8905fe019cb2d84331067a615f00cb17c6751b34482e77c6f81c4073582175f1e0790e08823d288f326b50f5cd41df0f23409db6e7284754e975fa05abcf77ba8dbde6f1f2aff56eef27e036179eb7d9994a5921c8bb26cd2406cffe8f089253aec77b6879a470749281d3ee9b0afc00d71943c8b95095f7781acfa711d0af9aee9e68abaf2428102c2faeaa9b7e4b1729514d5b30b3ee2fa7987e833c00199ece9fbcc6bdbcd206db920cb8a0a2b65a5aa29142a5b2ca93d5d29a4913aec231d7651876da4c3ded1ae2422a5903d4889a4c37e33a9f4bd23a713d5072e6ac434db915dc0931e319184e31113459809196029a46ba68d793b888bf4aa0822d290a7227596904823620ecf794e87e5d3d1ae7d76bf3adbf4bcabd3759f07753ceff374ba3adff789425d9dd349e5a23e1feaa83c468912058a8c117d96db4a1dce95ab236f6f2ab69fb4936ed24c7aa997b4924ed2e124a284e79b48145210292285912245468e14211d4182942477e4d5615d49854cea900b354b1e51e00d4ba50e87da4626f1d13672c98fb6914c1a366f239d348c4ba2a4346d18907233875557e95806693bb288ae99cfb17d4a224eff6ebaf9a6733783357579767ac89b1130eacad39549be2b9f78573a315dd9a4bb920977e5ce76e57790517a90124a8733bb99934a98d47915d9a50047a46184fc8e8ebc38e28c3c8e3823430cb010861762bc605cfbfa62bf96e55a2cedd86128b32a8c1c71c00807a2104227e580098e38f0e388034b0c7521d332edc991134b561c3961842327a638726206474e0c39722205474e8ce0c8091f474ef070a2858f254a473e901839f251e4c8879055ca2aa5e37c2c81a11c35d1e4a8892928396a42e9a8891c1c35f102213f8e9a78a28f9a403a6ac2a88b0d201df9f8d183230e4c71d4048f2326a01c31c1e48809291c31a1840b9712bcdde584c3134c4f9758c2dab51da8b4d955e869879618675c2c96876149434704072ca7e08a705cada0cab5ec3dd0bbd88cc35b6cc601079b81300ef7e209c6cd401886cd574a842c8962890813299a147162e449d10aca9120a40e79744dcfc42624afe7f8e46b2deacd3b22ad1f2185e93e455e2e838cc45cf228b2974347562e9740725dfa400273f944d22f7f7454744dd6b161996fae222c1a00c8e1f27d859aa244430d2c315e802184c5d023b10cdf2e237fc827a40fb9841c923c6490cf111db6a23011799122a68835b252e43a0283742ec92da7c451c12575c821e190b8235c1167842bd2fad1b0ed2d2a07efe563ccb79adb1bdefaf66fe59b0d377d3bcbf52ce32fdfee82f936f31adffefab7bb8a788ff9769711d4edb7bb8eac7cbb0b49bdebdb5d54a80ef3edae24abff296fb16e3a8d9b2b8dbf1c003783d145a4c68d1dde9b9f83ab08de4ec3ba8474b89d655d417edcb68cacac0bc6b6a47045615b51b8a0e8100a17102028eb7ae287cb47045b3676e8d2fa81bbdb5a8aa2e6b69810b9e1b69a4831e3b69c14b1e1b69e18a1b92d284532ae2be8c80cd7c50369e6ba863adc64ae6b89d6a2ba44d122c249612a7232f2521473c422ad7cbb09496b4987dbb7afd896920eb75bdb4ad2e1f618db52ea70fb8b6d51d14ab22d24b685d4e1f6966d1de970bb8b95c14a20f24787db61563e217dc825b6c7b092c7f61aac4f87db69b0475ca17ecf2621aaa5866de7aacacd1594afc642fd9e5b3f60588a71260ef6f8b339b439ded81cda0c15c1da3521989e6ee007a63bc8d30e2aa73ca8a8bc2fe541f07b4e518a4f564a3a4a6d798a12f86c1212639cc90dc02aa09d57c9710a9caddc2cf14a8e46183c8bcda9200c7369b3fca1f21ca77879c621e69906fb0c0341d7f35394226c7bb6187c8c36262111b61d7c9f7658b936836a76f980b92c97a71d564e5d0e53030d59b594554baaa5c3d410e334d0f0d7eb302c0cd5520d5f2999362621f9ad67d0e5b9b63c7338af94a896266cbb0c33cf1573329e41ccd570294a5da3f3020c610c3233d0d830e3866faa25d865b89993e13337d799cbb81994f19a9b8f6fb03eccb0376ca0b13833d81a3231d8191d6e0f2d4d87db61b0322fd850c8b48907b96b7f1898182e1a5a2f1718d724e449cd294a45ee5387a977a9de5add25e52d96d55ba834bc08dede1189f1fc179ec1e7faccddf4d899c3a6e78a4dcf2036fdad45f59ea2e492448a2f9414590264640987890e4d6e38f1e1090e2c1fa3a440e91a9dd8610e02cbad86679390a52226214b2f18f72f6f2e2a0dcf2e1f787b3b49516a154dd8f6edb7308f71fde535b8785c28309cbc982cd14034f498cf6681569296ab4505cc87089155a18a245988f9b4900891e9c089202488f9c4bee11f22c4290a1456f820e6d33ad2376c1fd28356c4648a20b855d4e1f618038ad1dc7cdcba8c9b3fc3cd206e7de66650e6e68a5b97e1e6da3aec660eb76e1ea24f2ecf1c3eb93c577c727906f1c9e5662022f8f4be428d47434be09ca294a2b4853773b8e516869b2b6e79cc0b3783b8e52f8f316e3e6eb9196808cbabbcb5a4f2d65f37732e87b1d4f2bb84b7b78aa64d8a52c3b6db9bb9dfccc5dc5c616eae2f3783ae56d1110ddbceb56ee6aacbcd15abb4dc0c621593909ca284b4e595921c9f2c2164a56489a1b6428d471a58c24d853a83703cd2001296cf262178cbce62e7576cc42a369f655394f0f6149b5590f0f695cd2b4578bbca669622787bb5192482b7a76c6e1182b72078dbfed98e08deded91c7236c7249c574a3c19a3b3a844ca568b844deb9c5233000c000000531500304018108c0463d1348e24e50714800c93c65a54200cc42448618c41c81802803106006008880810cc104801d45ac2816a858ad5956468e0e4ee00ebb7c69ce7a26f285302b4c020b9463369979f6e239afe138f24c7de3a2c52bd04cba3cf5be63ad9a6ec9e0693ebf89186919142fa1ac770d46097b06aaa4c1e38b3fb5ce0f76e5e12d3af60d30c160618f1eafa399c261507c3083c70361a9bfe850ba145dbaa170db5751ad8632c64889b627ac41cea9c2ff30051087075d492e77f415dbbc6a242a14323bc141f9d811739a1bfe7874a26a0d16634c4cc11beed8004275acdc474eca220bc7f5a1d818518252024786cbfd23b1e5353d4c359b91327d8e2e8cf2532cfd5c1d75977570bd16fa0f90e33da74a582a3bfab90753ee3b3a72b74047a426f764790882e29206d6de1ce832e0988e86b0955d61b3c3a45709f37d2c52090cecd6cb142824ebd692c4f8853ef386aeb596ddb407e35b889d737f818cb8bad40590f229a0cefe7849430f44534b7fc2904fe1bd49af950390ee42484444f8d1a97e5b4f5b00c0dadf2504c349260fdc2bce829de0e0a4a1f142ab396248a3b9dc817379fd9b0ffbb60f3859ae8112ca748e5a3ae711b89970622033840915667afa826d8bf010c7d7a91ae46e787c6a5406b06435800e4112119001167940368fc2976a8ad2cc21a58f38184ec2d5ab49d4e0f8365c4cb55629d3b68a62a1f6c57636a486d587af263bc55f82af68aa557027da13317864e0df7d19a0d180608a505b1c699e1f0df3f05ac35940ea48cc1eea18be9743bbb95761427a6388f755ab3135170f2f2a6c2fcdb969be2613b5803e033d40938a6cd9410b5e78fb8722770aad642ea19199130132552b324a96d337764eee1c000ae8524634983810dccb79042f3829cb810aba846935948d2ffb85f94a0fff9fccafd0215666e39aa286a4968df3f5162c6d480677ee4a0c4f1ce011378d0dee58e22a37a22d7e225fcb2bfcbcb5acb99303c32914c76988b2ac50cc23a14dc27d43a9d5af2a092e312aabc8705ba397a18fd1739ba892cc69d5f30f8e6b6f76104999918341e69c0d4b498dd33e352b86baeed29db61ce40eccf8309141540da1943508b01e578608370f8906f23c7cd3a952f2a3c4520164a65aea28da59e2e1a0dc047906a4555f5e7d923b01412865a20be252a2f7d2dfc2ee81cde8540499eed05563768980de188a61cc830a0385383c7c6048d5c1d329b000c69cbe711621057fe6f3c915e28e00e82e84c01ca7e17292ce066741c45be8c2872d73dabf3c9ae65e5ee4cf064b76c2e0699c7a75e12bdc0522471632e89bb2f1140807f8cc157d14ce0f559306fc88d115ef506dfe064e0c9f4a6cf53f8817d16bbbda648a909daf096fc5f567893a66315500060806223ce5b62ef019604a924fde7433e42e85a4f239061ad62a123dc92d72fddba2103d072807b853385786a7b784d2f4b5a70e50c522e7e9790736630e5480cdd482ae9623945c8842f1c134a8668728a77b6c5600e50d85b9015fdb7cecddeb37b170ae65a77269be10a856c21ced550b1d3cca0c8c0d26f0b223e7281e55929b14eb7096b1d0e93f32bf6f3ce821eb0b7c5e4d835d4226873966afe6249684bf102b6c748822f7ca13a5852f973c790ed03b89bd02a679e7b9679e102e95d6d7cbf565a283b7215538b451a4e7a6c9481e07e74b75469cbc76c310b3d6dd645947f4bad339bf2776879f2727fe334bd5c87a27611497c6443dd8232ebbf756eb49edd0c2956632fbaf27e6bb16f5442d7307f10e96dd84d1ce518b0c7d5f4a17438562ca53888102b368178ced61a14d9af1fceb468c7f630e26c3b03486cdf3d751f5887a56ae03bc664918f4a9e3555e55d5ea307373b83934ff9cf6270be47d9cd3e64fd78b0a637add802ef8e0be6155ba01b7e05df3dbf92e38e83f54068bb0480b55348812939fe0dfac752f77bbf76eb9c06d49b3502175afa53eaf640a79da33f377474847faf3b4e20baa20460c4705423f038ab8488120000263e50f40ebeac2ba7b631cd09cbadf37c7eee26f33fc4674aecf1af77530f93eda093fe7414d623472557592007b0a5b4d4054676b434c4ce37d7794e9b1814d4bf37f0e5bba65d2040cb4f8b221bcde2915367438a66c84940c7906fee9f0784d5d9a6b0f8f76c06630de24a0b79ec414dae996d806eaa9798f64e70759088f390998d5dfde306aaf2f664e0e30e0093d334bc60bad4e6a50c72ca1b358a71fc6b36dd6d66c82bb7db21feb48be9ceac794ed8acae868e4891a8cf3d7ab61cd7bba1307b2aa317928182890417ac3bc0acce1a6706a3833b77ecdcd45900dcbe1bfaffd7dd5770e1152f8d75774f6d4eb19a759b2050a64173daca4b63124595cecfb524758dc7842095098a49d15ec1241aa8a52c727226b8cc52fb2c7fb0c4c1f1168e938fa905d2a73fabe336685e3179eb9979eb15bdf5eecd317d5d6e06c59954d5699db4b2e951bebaa06457e3c86759c54ce3eba9d8241212164b7b149d4c999403dfdffa4285281e4765417c6f39e946f3edcc686bada38d255997eada1b01b072b727e2f376e1410a0668e4f692572f9e98c56fb1148a41aac3807916219411bb30095823a2f53d905e2de9617100e3bd96b7ee3f2169fa52149a1fc5fb40c3f77befffd454d27f5cf29fc793be7d367d3d9cd11b8719ed2538401dd7ff531dbf67b1e3f0533766645114147b935a75bb67cc9f761ee78a12d90c0f6685f062dc37eb7d40f1f566f9054c2af2da28960963e854f4602ff8a524d4393880792a9a02e17142e8963d92a6cfcd2853318872498e515443124ee9a7b4497b2383a7fded29d50e480744d6031d60350ea46dd6e9bca906857d0e672ce9a3fca672cbd512e9381622ea58b65f4e71765554d003411a004cd49760992d4ff398d3d337dd0a806d512f45726ac00d1ccaeeebaff8067a5545050b857715d918839fa022d8c2eafb16fc072ce68d78db7ce82042d6065c3d236c84468279067e9b234408bf2ae6c8a9c0d7723147fc6007f77214ddbd478892232f6747f4b07b4ca387229a7bc2fb7f30226e0cfe8b55b72b1588e8482332af23cee240d68522d1679c9fcee0922b1ab04d38637f050736ba0a12e8cff4ee6152de9bbc71a355a3d8b58135ac1e0c3774f77545eb900fb18d847bd9114cd7c66e8b65f8195f1daa4881f68091af6d75204dfb7d1411d91cdb2df9c13ff110436471d40d6a2e5d64ab75e5625af355c6cc0d1ead572f25a05a6be26fdecbd093b966d098a24a300844713964330d6f505ac851a5ac21372e5e7893844c89dc3d4b437cd72c6b037450e652fa527240e299473681f719785de1e90dbd85409f19ad59a0af17e6b686831ab616cce5e0b6008f2d1071806a57baac58433d8adcf8823611d11d489a15d4eb440df70a1b7fe1a830713f7dc932b49940f06120a1f59c9c6a67c97401990444ac5f87a2a4a17b8966aa1adab62d3faa852bac88c4f11eb7984895f641fb3d083aea7fc9f701044c70eea0425b4532d681c09e8971499d114edd2b4c289b447174bf2ec1f408144b78dd4c9ae6a31f72f83be811e4bbf29e0d638088f568deb73cc0ed67681e41149bece71bf8c2c5342c8b8449e192ec28967076a8bd5fcc1b49c178bc7519e0b9700e7c8f46fe041a34831e7e7408e29aa3d9527b26e15f54324929396828d989934c774b0e66267b695d8f381651c0d30e3e230b17c3efc51021c0964508d6a30097ca5f80b9cbd91a46cec54aa88a888143168326d765f96fef0d433a0eb318d7e69c163ac26e2d83e116687638f6730754d6ec64c2a1fb23194f69a7d0bdf977dbab1b9d4b2174eb9496fff40b0ec5e06bc26c5995c9d8076ddc888d316d5eca5a73630c6878f1279d34079964e7ef725130dcfe661302447e65ebc5bb93c3637eb2c06e997cfb7db7f0ebf70affa363d124dc98e652670d3392d3a9d683d98089531e02bfa8bbaa9d69d9aa65dbfaaa17c71cab6bf6efac6ecf73adeed3d05b1d39d8b93ab8817775c8007b75010bf697629194a45c8d467acad58171587c738c4dbefd08b66c0cc1cee322d8c92e66fab608f29cedd0f31301e3e69c9b955cdeddba3292fec485e66ff48943aee19fcc2ca421e56440637382c44aef374fb4499a09819086770b226c6773c14b3484ba67a3a28177581f3e61a99c8dbecd6e0db1f8b383ad8ed4953aabeed66175d8fb7614fd0955af552cc3ffefa4c4e2be933460d090e766f6c8cdb4fe7e46a990c6c68c6fe1205c19d8b66931e7c0bab3841f3b92e3037107fe27d01ab13a087550b86fd5e31b0a69d0cfca2dd556e137889d710b251f13f8111f412510f824a96dc4b76a48d85f8e8370d30728e0f5a48a31f634d067dd494b998234526a6c909bd0a773d98f8230846bf002f99f006e89a792d89bb7507c394a51ed5958af033cf88946ff513319785fd06ee5f3496ca2109eab552240e7175c692cef8854f36618bf20227901aefc8d6613fee71fbeeed872e6c0e6b91cac066b759d871ff6dfacdb97976b704d6de7e2196911b66b6612f42223643c51d03df63c922c9148a330114cc4536d88d4d5cf4ac6cefcb97e8a91e1029cd150f0cdbc8c6f3f28dc227733937e07b37aa6cb8a4cb62ebf874170cb8980d34f076821dcbc6fd482f020a2a309d3cf9f70a301e0d927bfa3af18385a3c308d59725126583fa2c67c614f7e94a52188675e429f48deb72f75c68d39a4646a735f8a6637f74acd6813fe5e4e7ffcbbdea03e521aa8dc4e19fb65fbb76ac5a6c2db4d6753683bcc3de9d0eeb5fa91e7b5574565961a67bf4c0a9c2931d9e9244a30fb3538b7c734e0f537c218d5c8c724504d4fd4bf14d810f696fbf5d314b442829d87dd66ae5e2c32c15dad6518760176149c7ad6c5bf04a7c491ba38ce84167b8534b0e46cfe842f6cf85e492e40694e33a540d3a5f8a092e7f1dc012c394280e6e83c907cd246461ec870bcda85a0fb79529df0e4f362ac2487418dcbdcf32816ce5a4b34c696892ea66e53949fd7bc94b7e7944b79501451f4f1d01b3b4e056abce8ca00dab4c490127c862da149932bcce19fd763ae328d3032f6f5acab1deb272d09c6f8a6d4e028bfa9972a304dc7820b6a3f1e1d34a33745173e68fdd078070d9ed6ed4e54cebb185d561c4f4d51ea5361bf2c8da34d88e455a69834cdf4aab081994d0725fb810e4f391c2dfdd5d4fa4f94178d272b09841d55151d4ac1dcb7a47c479ef1e65813cf2d973433da4ade796b437c70a2cf45eaab53010558da75ff32ebf52b5909461cef586ed501ca0255dbe62225a4bb921f18d7d40b8997e752cbaaf5b220ff946eb0cd0636c32b4005c11c32c97ac80dc473485ac68440445c6659b5c37f8b479894aaccf0eb23f9645abff50e95706d602dd56dddaf0e006a0b25226e274694ed61dd72c9ebf582b7e9f0794b13d24e64d183349f42cb38d643b7f14a42db10fad1baf536244b5b96842e7c09dacca00425aff80d595ef3060de254dc7888fe20e7ddb311fea4926b02bac1b62e8fdc69a5f8c444cf5bb8077ad82998bcf13fa3747fb632fe59c1c30fdbc6f60d47cc8a5a0c07d7b4c92638632ccfda52bea5754d8c29fc8bd4fa898c00ff9dd4fa89974d2991da880cde74d26e613544894bcdb245d7b6347303318bae764387b8bc11611a0ca3bd66de1ec51643b1fa5cd188619cc662e39d152791b03a3753342b146b1df421bd6f3f8287d811fa2307dedee6a136812e9cef3828e748a2bcdd9fbd46e6f4939318e4fbdca57b5600d8049a4ecf0bdbdafc62b6f136f79653860c63df0f034810fb1324dd1310e034583599d3a8df0b0cd57cae0196cf9659e8630efb722dbb757fe6d133c12018647e67412dd64260a08a7b9a9947fbfcdf60ed7bac146bab5b442fca0016b155d2be33f26aef8457aa1528835561a22a45feb084620ea00c2576a1b2429ff10ad2b1011b038f686945a3f25a411d9ff62f2c64f5a80b4233f432e9664bb305739e625253f154eea23639e3694f1cfbc2ccfde74fc48e23824f3b14bc41f5e6e549cbc003cdb8e3413c1dfad9393e820edb8692f4d436bb1eadb3ea9678d2e6f89ceed31aba1074e0b34cf2cf2da839d5a8f28240999b330890f53d5f88538024946318935f558a9150a499230b85b3c0761079ea5e7c9d495154fe4ee97b5044e5af7779c2d6d4f9c941c1b0b60d0657ba3b37b2e88fd488f84a0a0afc0d74ab8119f512144927aee4b788fa01fc2b001696111f4928fe36378beb1d5ccbc9f622c9c7693add421de11ebf30c1c9740d80533b93042ddfe95a6dee73f01d19f1cada74cd3378921b1da5c2b1021c5d0407ea5f288a836facf81baaea4df04955a9ba1b6972d1141c95e9da8ae392472a2a02e17bfd1551ce51ff3af4e6b9128ffddd08913364d783fb1aea83ba5e8e36b8653288cec01651258ee0427ab455636c5b608b9003ee3d5223f673cde5964a256b57871450842cf336340f485d1dbd3504794811c70388352fc8e261fb5924beae6c02c481a161ee97f1eb3afa40b5291039fc6eeabc8b5b0cf58bb6c205cf6aecaa15b522911eb2a79d1b70a7049c79006c4a009f110010ee95f2a04cc78782284bd90434d411d12efd7b02e723dead3b7658c9ca93486aae79d7a662447974cf89742b47c0192e59546bdf8ee39348c82b0420d0bb76212db5229322b1e88d00377a0d97e7682736ff438ed0add1af9fa3a086b677062ddb9f1223d4d2ee6bd37c28d5bd70f4624d16109018fba98c2fe6f2e56b435f96ebc23520b52873e6c5d918296bba82ba4a2bfe11989f43f2d5824c7b01e4c0deec680a5a5905ad2a375f4089b995db9f336e6879a067d9c4a1669116a6b219efa2f762a621f7a25248a9a61724348e83d0150eb27525e19b5209f05342bd82dc8d1abdaa8a6a19846eae6c92caebe009b67953ec42be6614d32f9bf749115e1ee3a65933f8355bb0fcadd40a7fcb1e6c464cb4a85f1905bda1942562d98365a8104a77b30bca5724acefca1e3409a195cf1b2d11ae7784ee213167a9837a69d2ecadaabd8cb633a338eee1eeab8cd63fb7d373e165389c2ea2c13a4908218220dd2bb9f2daa5314202ba2887323a78004a435018a3ba9c61c12d35f3eee319c59d1b6357aeca6e9dea49c9417b5e0f86e87022e529f022ec38aa6e909495f475caa0647b12a1fed7e26c128d9aa5dc3e071e1b5faa2ec97536ed1a5f759cb7816b3a4a0366023892d0c20c2c05cee7731d9201d5606c17054371b92030cf658e5057c3a2338bc0e29e69cfeee2c2ce1201f16d73b53b3da546715176099c303ffe48a45d6ca6b50698baaf4b1f8125e7758083996d7c38c2cc5d9b34b1594d35710ec403844d046467b5629b0883f8fc7913f74770b1914fb2562354f0055dfe6f5fb3fad4cd83f2d80d5d2442481b910b466a0fc5205e737cd64e23472c147707d609ec1a924cff3ce033ababe877a5915eac9b4289fd9150531b02471633cc7db247e1173e9aea773b6a81f7d1d2617bcbfee55880de0a89b097033c77b8ad4d236d997d360d91ec74f21e870b44fe762a6551a92f7cd5d1983a5ba95670edfb0bb218129cc71b988664a31a9c1140f73fe5509197537ef1ecce27c714c64aab649149d6f1b97776a36a2394a1c32ace7d86af2c2d98569789704ccde869403cfe7a7e52ab408b1a5725f948d32005884b9128d4409f3ed602b0b09300bd212b4fa8d1b010c007b8385ed09a021a2fb7011adaf2d1b484f02361a142facfcd7ed149914847044bd11171f51c11dedc0203cc11712b72d0fc031ba02da6673cae9febc8a26b939c28d5d8e1795b1e5e8cb2cb8fa157aa6e4ec25742e74e85da18eb9adbd190c3bcdbf1c8974658c5197126ce803300e71b8654195c133d1a1f1e1c232956d5b9999081999689999f71250f868c384344e6162836ff64870e749bc9a32424b928ef9f828c1d564fe17a1ae6b88d4fb10e017c1018aece93e33c95382e58fecd2c8ed49e3bf62938cfc7086e9fbca0dbfebbe99990d4e92fa00a116ea9b7a5f8e9dd00daffbd0c5c0937555d57a384a87fe5becca7600c41c780377525621fd716c27707ce04b15a3d96e21130e27eae8cc712cb73928edace024ec7d1fd60a967dec026b0447e341b87d0957bbf9ae1e189759508186162a379e552ca00d5a614fb2906a09a18dc9af64ee8bff45df985b3dd42f89ab99e6c4626511a8273fabf00a425869eecca6739aae84ebef691f5f9ca91729b95a3a97244da97d70fc8d08446654c1a801808fd4761c062b88bc37a02112f12f78c62dd2ce2238cbba1b10762fdd3823bb4c0383d5b813a35b4ac6d92ae85bab5431dc3fc033d9d345d64c6e551210532f922b4350d1ae15a723f4f90f7f7bfc4103e31f64f5ba9607ec2f4bfcd05f337d00b601b66965fd442f92b33fbc590f53b1a10db13c6f777c213ef04255d06cd77a03ce7d701f98e57e56fa676181a2e601016f89845dd57aa63dd80559182067b57dc09a968da0295c0a25c2139b29c17cba02d6d5ec645c3cf9c71f37b47ea50d6db15a6a6295c47d7e813414e5c04322fb111299f617688dec9f0d3324813b784639e2d5c3685d51170871b17457c0599b8beb21166cfcab207c53cc916c8025f050c5dc392e0d0a2b551015fbac3b4b54dddb5851cc72abcd5872ce8d05e2f4e11cd1e74c93ba62b3c4c5f4f3cd90b7895d2c5d5e17018e2eb711395744a100c8c39fded1613a549b5391b5a437c9cebc9f5d2da218b8c2d635ab5a3a1eea6c654544898b77c517c2ebdb394e4022a3dd0c44337b04be3c998d1b5b024d91dd476d891cb62ec151eb2e7d28d031fc370b7dda2e396e87a416c2c5d4f6310635e5cdbc72eeeecc3c818c5d474c5a36e24162eaf99a91033346b62cafd5d23275eaa0c3a46cdbd5a99ae164daeab4470ecd7ce095037201d007264712d2b5cb9350a035d07fdc90e0649ae967122a1d240e04a24000a019113555810c157f8db09196ce3e06f7e00c7b391065f74ef27eac10fc9ada3f64f6bb6c0754dd570239f54196ce24cb5d9cd7ca999daccff39789d6974e215418e73f9aee7754bc7657dc4097e112d25dbc9c19ec8e7024f63c07c24153a7074f37a24368316561d2d8f8a21d086ade3be23b1f7ddacf790cd203cd16d304d203530a4e8498f68ae9477fa5bdd1ef20835d23c909bd4b6e13456f58902be6c5e98377edc234fa224fe29538a92729ce532e54f70538744e5f0c81d6284aba3173f17ca4b3dae3387b1541d366fef92d931660349d75a14f58d1c9fd23a4003f3589c069c92d5a5ed72048f02091ab77bffda6425dd0eebec8564ba8662310401c8131825bc4ba2767dfdfd9c9279ad0e780cdecb8ed0708e2b711c66512c962feeec907a1576ed44d799163cfaa89e0aa2c8edd90c79dc82a1f983fc4eebb132bcba8a02c0238cb6ca21779503a8ab0c0a636578a595e1fcad0c745d19fa7a6570062cc36b5806dbef810dc3c720e5250d24bb6e16672bb4252bb3d6f7802478074dbc92667ff654d08b3a9569537c5f2971d1a1e250a9c41986058ffef14ab0df051fc560e76193e9b3f99b9ec12cabc6b5b28ab7021347655f852bbd62506574ba1a7fa4410dd03ba698033852cd002154eb7e79f273a9d28b17295ca828632d8d35dd92324dca19fe781b1a4b8954fce7c233bea72df9dea797efe5a2f9de1ee2f99ef5467cc537b152c46e1b417e93d760ab2250d277fcaf6e72fe7225b07a775a29fbe638610151c688421da1981485da089489a2ea3c21492728e6fee41b0ee78dd3d998ea1b69b104cc83bc5795563a2cfec545fb5b89a283147989d195d40b7e090f4cc0a856f596be0baa90839231f9e4148a8a5882c4a3196661508216c061ddcc27508a554d3619f486ffc40b3552b8a28517f6218ae14ab1f249d0e90f20e08728284a023a27c1298e98206284f319c7637f7ad3217e86c827b55ecf89d10bbdfc67313b60e9fe47d7aa5ea993f1ffda7bec9d814d5733ec3b54425605570007490526f1c7c41eaf714719bd806fc4caf25b5c6ced1f0217b7f66e0bf1717632f08193c7c00ab4b999e6508297c09e52812be18e24d48572623343baba2d4152fe11014ea40a1e9f04f3a5fabbea69cfde5076696449d0cf5a1102a4dc0e246657b3c8362342ffb64c03b1f01d64a1bd4dc2c9b93c471bc299e18419ee46a547b25c537b454c6c220683ea39a7b50080aa4dbe5f43b7b16cf13333a5797f0c0d8c611f4619289b8d6ab6306672910b395b6d48ab6917963970fdc1e5607b7780317ef92cab9f391c6fd1049475a05ea1191d7f6fc3a967fef9579588ea0816344c21cf592de2e50102e88fe4c5a3be446523e352ff40d6f68573ef730df3383c8d98c68249631207240be33834b118c6197136a4e11ec48a358dd95c5ba01fb454b22e8a0c3e69584038402d2484d07ecc33d86a7a14a50db60e1e4ecd69fb9af9b766d49a8fa469ea33fc2429bf239859b8714ecd2286d24f7fff9d2306abe72c044a00a2377c13ad271a96d8ce262d7227940bc9488c38d9aa9a933bf8be01c554287a4df591636a869b89357d5ffb576777dbbd35df02a2a854a100599d0be768a4b09e370c44f1d28b215239312d9f066974771385fed69e07a931a9726dcfcf6c6f8525324501a79ea962da1de9f51eea65dc19b722b227bd69dd234fae48103f7613799fa1912c23a02187f67491d24104e0590a732e7d5a84dc234273105f47878221b8aa34a8ed1f0ab472437a87b593a41d0b3159f7a1a614f24041f3d4b20c986b5d8bab4c5839a952965384183bd86ac0638e5a6dffeb49e58cd1dff07af0d5eede01a78ea3dd5f59d0e53b6014f946bf1db77e663ecb98b3eb411dc46af374a72caff4a8845b06c1a7abe63314966b327de6cf6f0ae0cf49dc1bad2b05004ff606f46290200590ed0a799cf856e345057acc5dca7a09391ef4f646d78e46c0b164a697e0ab67d56e3738d4bf1013544ea93e1c532368f9e54935cb3ebadf4594660d25643024b5a1c997876f031d4d5d1b758b650d3e9a3266e0f48fdf667a0f6656c7af410581861b284f7efc7856b7897e29af8787980827ac4999a5ff221d3308c197af6836c7b17d2f8c168cb10607f44f44bd81c1d0d5ee4ccdd59e4a593b6e47de8557bec35dd5940979727770fcd33dd213c7ee9318fae1ddc512d9ef59221ce7898fd16a8e7a8adf3e618c1ddf0378341a1626c38de924abccc1969b3bf1104babf5549790bcaecb1ce4b1d6d02d110a89c010572d61ff58524f72034ac2dd07bb0651984221c478829c7579ef65985f05a58bf0b5c34e72747b77bf6367636ffb8a80eb14031931b300df08bb498a6511885129f4e6d37342497c4b32ad88768b48ae2d554ba8c4c815ed5cf5a0534df9cdf71a2d9f1208f7c1af5701c1bc181c5bb84e6bbf93f51faf8fb504862dc204852d6ae4c9776535f6cb173d1317ca560d19f0658d7cd9661603517c1180aa29434df67cc7479cef084a55cf201fa2463e7c1e1f0c8ffd019cba0b00a402584d308ebbf99a24f371e7aa24e9371f23968f6d3aa079c602c3bb1a870bceea6cd77b4fab2e1cf38eca3fa6f741306bcc971c083a6e3073b31760b3f627fe3ca47feaa87aefdb3406e0b0382f3e872de9632aed32db9eb0361777f468e64d4cbad2e6c56244c6ab38d65a482fd3bde2ccf70a97ea32fd0b4e2384174ce8e11f44f572fed33677b0ae64af2e2a9ffd48117e381161be75e2b3ac2b03f2576ff651496639b363a51687fddeb37f989653f1735db8463c9650f5a517e8b31566cb3af2384e6eaa5fb8a922b3128ccda42ac4856d4fc434025748b53b152155b007d0534721fffd19f86dbb8984f4dccc5e6410ab4199e122fddcf04a1abff44fe41f41bd9f5a0af4b56b2982f608cc17db322197e72f8a01ccd1570daf4447424b11c1618327aceb1f84081072f8b1e666442caf3fe113b50bdc345e44fcb5d07a77ef13765061021f315a9306b3aeefaf35cedd17754b39f1a72a59bab53f67d7a45d39d204cd1bdbf6b9c90ac54edb880aad086ef83048d83576b9c756754f2d68ba7977f2cdba7942add12ea463c8411de6822e1174f60e0f1b6f7871de69870d0e0c1bee8ec2458a8544df7953268e4b420b052edf53a9d2aeee9474d3cb097ad82d17353039239480ce5f38307f089bf476ebaa2c3b216ddcbe4dc5f5a141c8d42e9904e54d81f155f600e3a26cd7507cbd95c516dcbafa4f62324e3f9c8bda85d508ab60ac1205c3be0ac0a7bb79bd4198b12ec9f497f1964b17ccae1f5d30312381c6db05fad30d1ba028a1392bec83790766b916720b99a83051ccb2070c909cad15eea242a25e0a698c0a2c2fcaccc657abf31dfe5cb27d94664ac301906f892d536569af60aa269f36c9799ec6d3dc8041193674f2ecd40827fe138a408fd906311cd2e15524a3a30fabc4129266d311d34cd47310852156159a25a32714f75e5284b74746c5d64b032216f3d2778fb64ca923d825e76845995fe72b200e8f146505a55ca13c47112d463f3ba6f0991a58aeb894a348c931d71268a92d984b2b783e46f712c959a3bc301095034d99cadf9c5006e9e6d1ba110bf00c0b8914a05044307773a870ce24e58c889e68d38d023f4f914bc06a472bc928a620f696428ceda148bd56edad650ebcca3bcf792561545518c8330434f7201fc1bde5ecd563ed6012b9ff8987730402053c56c5185014f8aa67e294a00a55f81ec6606adf1532a5376db01ee093e0566b86205c39c22c67f2ad32facbd275ced82046441e9fb827cb3920197f2e529dcdb88e798fefdae2929d067a963ded9809d4d1aed0f079ce10b7754cc9c68533947ba8119976ab5a166b3fa1580bbcf884f3c19ee2cef4066703ee29886d05816978e5a2c7ca5d546058baed35137b911ea5200f1e30c9ea5c6d48d3db047ef50a88f0b56a52366927de78ff9f10632c10d16dc1bb2a91509918d69d0b909fca19f9f7bf284b6f660f1450ee9dc1e5805b14679d64c1a13c8999c4cb56ed0fa5bf18514042e81d3ea392d2c1f6edd03f5a3b2e22b4d66930a0029d3d276eafe673bde0708aa38983d9cfb4b9bfd0add9382406e124f621eb463c023028bc52fa865040f27d0c23450192950dcbf73a745982b9ba970dbfbe5c08fbbbe4ea14f6257727bf6de92de83cad7b620d3bbf1560bfc6ecce3ade6ac3d9777061d4ffac90fb555f1b78edaeae7ffc70867ce620119dcb8f7d0a1433031e31901ed51944871abf8596ff69d15a26be88e9e270b43162c921d5cdd9194b7ed6bdee067a228f2a081e59ac5d79e2266bdb4f7686757d2e6a1fb54b1a082f8a8ada3889d35ec5b66ff54cfe2a929b90565ef9cd8e96db2258f42b4f75e5fc42090924ee7ef49ad3b3295a3ed4c6b77393e596012f134719a03fe37c6d67f84a96819d3ca8f3b5e4d4aac649dc6cb5c0ca3dbeb3012ee3d3e709e8f29ddb12841a533b16a15de64bac573274c9ad9520403bd96aeac9b4b6b3591868c56cf553c144ae8f95335aae2c263fc019cde0446340190454bff8d6d447e43c3667ec2fffacacda3b3516afb479a78d852cb238d315989edf05ef7fa8f9dff6953bc3eabc37d9198e9d5a79c7dbe8e6a07dd37b295cbc53f27dbcb70cb767ef05bbf3fa5ffc2384a4fb359c4f28c124829b038f04312516528aa450217b6f823d45b8deec3643f2a08e407dea57adc610bdd6562fa8081a6f54258530fabe53ffe33c4a648c57c09ded01cb25d1161bffa986d524f48b5faf30d443a479900900df0b445a4bd40a2441fe421f0355f6bcaef87d1b6e282ec2d5175c7d83031b7b65253899aff20bdc1629f57754a6de092f668ad0634d9820e92cd54d9f441caaf6120274097119ead7e23ee7a1a5db019ea6ff1659d4538f107a3d7d66447ba2d33d604c3a05d2dd26f3d6dd591cd20110240025720b193d6f4ba4675bdd22a08f5f144470a68838ce53b32fbb19b228b2b79f561b866c5fcf227cb0e352a17e10d94899e5df9e13221e3a37c61567e6ebd1a079b6ba6ed1bd47235e9b2c5e9679a3ee054547175d1d0d9fe927c522fa1c771ffb095a27b50add5e9523b7b45df5509c1789041864d5bf0b1fce201adbb6e3f15118513d090f4047795140d4b9b62a5d96fffd11089bf0784014d3f4adec42d43d0d240a6b7a646753d9ca8724dc8727ebf119e36112bd7c31592361a63e09a49fdb847ab8823b75e61b475109cfb7b4e54bb3442930ca8d86deb7faecb1383f212c4b640160d023ba065df5795d66233f25b31d70b8144c8fa89f5e7ce7f280d4b88ac31a36bfdcadfff53e1fb9e90c2caf2c6a056fea4dd36414e97ec3e2267f14fa877fd151ab90c63e26da83d7ebed3574c7a02440f3e9c1c34b5af81c900e333650dcf3e5a5acd4bb2af0a5f1cfa498cbd95e3aff1c566005b270ecdcefbfd6f6479ad888a2776f2c4087e9850f5a99677b702fea35b44cfcdc47547a52165dfaa6e61efe35370d2addb14baf1a252af0af3b46f1b60e5f465a852487c8229adb12a62ef9a6e43ee961d394b976f548b2b3bdc59e3da130b84798b11e20a4fc77fa6b4a50895331f634c5e5e810657715e533b9d6bb5976dff71536b0f5e454b62e0978d410183b48d07e3ef9ceb57309512c1ed5350989cc8ca9ebccaca888185a6845c4bf4fed6c4cad7aa2a45d492c62f73dba576685bb2bfeeb10f44f7f33a5f297626e7bee7fd8e680ab6a6c6aecb300fa23dff84ee650c8b7dbc945239ca42bfea37edc0e880f3f7d94f7712a7365fa58fde363721b396f418cafc5b3335664e82b4c7ae3d0ee25f873cf954cebc6dc8cf146b6808bbf535a57c99c9f85780b213a7000fa3d9c7cacfd95102887599eeaff0c2bbc4d773b1f562e0c1c424cadba6d6bfaf36d96ec60c5e46787af6c222b32ffcda2fd330a3358a3b20a4ed8e7cbd2e0f60d9a6db24b1804dd76fdf6bab0012b43b7fdbb62cd2c53e0cf7fe3827d9783febb09fa6915fee39cd06a839e0eaf0782788d5d7a4adf1817de5496623cec53137c4881de0f31a9530ae6451500d7208f93c961a6486d263a350f6e5ce746ea75d41c3a710efb317ca7fb8a4d6427c6b80c3538367c4042a2b2598c6bee8f3d045d1cf6f7ac04c7af72b1653865d3de7b111638c9bfe92540ca3bd5dfae77610c854c33aaa68ceaab35a15d1379b37867458bed49fdeaa33cfdbce150dd097374952aff66be1f8a5be9cc12752f6d610d233016a8efb06cd91a6fea7f48c9a58786fce5c8fffabf0b086624626b893b9fdac8afb5c2e655a5506e94d818aac50a64cce7d7d624d95a202dfbe002b473244b940441642c71d875c6c89b451129e0dc9a53478c4261f1e03dc38ac8f33495c9ae153fed8f1748c18b4a3657b811424cccdb2e38b4f55e53d0d2bb082527a40b652e89694e4389ae605490c439a9674de05299e16d1aa1ecbf2ea8eb3d859c9d572520fbcc566a1a5f86ca20f3933e72958597c68087acffc04cf7af7693bb78ae57fac64a116e6c53d3fb199b14705d9a1da978ddcb490f81f138f7cd5f066911bd99f50424a3099274821ed23f88c473140a7b5b92c695ebf6fe5ce73189410a1ebbc224c3cdd119445725077c4330fc384f48c919a961e05a817b298287db871473ceb928a3e55845c586b12122c49f572cbf8790dbb4b424fbac55d60f28eb7261f43f25b42b3d465483b47cd66c05fd01bfe0c89f5d58feb005c4d14e6b6e44ba19a2f80071680a715809fad51df3da37f5b720f80d6b2ff182c155c2833260b759c6001b6fda911600c0b8e6590ec208db9c9711700edcd9c3f2ebee78871da9f35e12e3329e5d7a34f88b36f9e5bcde864ae274b005531b75e241eae77def9f10d27dcbaa923793313c83ba406c29ad7b6b097b736ae184b6b77a4273c8bd6ce080f9a1182ac82c60bbf2e542c301e255cc1068726a16364949ab2fb0640b81f293d75884bdf6755deb54910d5f4cfb49c4e6cc1e2ec8e61670ebf0e2669795c1628d2237950b47137cb2811bf26559c346116fe3067b540e5d7f9979fd4fda251f16cd4261089171a76319ffdd0187288331ce00eb72ef231be07f574646b17119a6812475689e1201058ee1a59cb5ecb5359869fcd7729ce9ca171e02648e37f6e4712d4b93741883fcef0341dec7f1bcfea25bd9a64c83772466c9c29d6ec4d519a8ba3512cab08968a7cd5c94937aa6ff0af4810f71568fd3fa3cf05c9576e55405ce97b5c88ac9b3ffee66752f78ad161a324f421883f52902de8146cbffa623a43da2c23530e81804edd0c4f5eefe737c41b67a61243b15d9a3ed2a6b50058ffb387e55bfea06685a7d9c073bdf7e168a32633fbed2b3c1d16b1ede7f0fed25969c2995e458eff43732fd09158803a07006f20342c2155fdf4c4ae5cf629653ab7a493aa9b24f09a98a03c697a2c2b60c0730122a5bc912bee370f93e4119a187fc9b5b58a0f098cca3800c0a19b7a4c2782fcb7a1089af947a7ba6a6c168ba9f5fe14396e654e5fc86c030c69515dd65ccc22f13b4f7072ed3b458537a3b60d729b10baf3da2e9f41a6bccf7452a2a00f5827244b526562d843bf8af1652d1135fccf4251a3c61175fc0410fa9a70e39c5793ad28f3c9fba93219b12238d25700e2780db6b5982df8dc9ebf1413cd619b00753a58d5f4c6cc8074e75e4faac02a339ef9074c8fee1c5ba8dd8d7e8c4b8d34f83fb5bb135aa3500a3815451e1cda1d34c67ba7e513e330b1125cea6a2920bc27100adb518c10cebb994cd6e587334ed698a6ee22686f65eabbae95bad106217accaf79a7b5fde82d2b4202ce10907fad52be2d46faf70be75418a80c54c74a8667d2ce65b62ca98d3c7a5c4db44f280cf9dfddb27bcaee29beea18fd813a32735c9168ac221829354e7bd96b146fff98543c9a66c0cf93836df0d40f76a01447cc3606ea534e2dc88e1d54f8e16454b677c874d71877a30c5c8d1761dd7b92418624ac972391409020ae57c91be0b6cd44ef12ae10efb4681ce51e65fef01499c6169da1927f057e744e4896f3bf3f4b004272efe6667560bcf907412072906fc117167451722aed87666825b6d2b99b2fbd44363ebac218c46f79702a6441cfa82b4fbcbd0385a8997134a4f32c559ef534403b4cc1ea1b609f2e21c22a3da03bb80e4098d7b7c7ba5934fc251d000c938901340105e7460b0b9a816cdcc709060a908abd2ccda13fd9fce7286a4b352c029c0633c9c9f924111568822a0e0c291acc806a449f0b5f3d85c021b711c2af2b362681dd895b2b72d86657459b94dfc325f42b81575e5ce3fb6905697beee3371bf0cd341b55430dc31305545da1e07c7212ece8fdfc0c6dc06f31eeb1f80442bfaafe95b56db4c3d506a22db55a47f040c74b8f239a43075a5be57a82a045b795720949d538c55fe0d2cf33741c55d2b0d81deb8c97e3a487935291983b194d8d7d3793124b57d99445bb43bfd60777eedbd8c00e3ab475046edfb6a69ad6b7a0f708dd50390234596c6cbce81fafb1a5f6752639697f1c401aeb18430d8db15765050417d8ebbe83617a0d7e19a237d2efc0cdc1e90e513efd0018268ffed964536a1c6646f190650dffb386f93a288764d507de0e2df4af76a81764589abca63b8bfa0a2fd1a7b0501f187f61439f14ef1270d6085200b937e095b166e33a5b3d81220dde3b9a07c31082a2b87ec014d95df54fe707d87edbdbb8354ae6ecffac4f17ce05662969376a11af766b7f88558a5e2cd947a8e5bcbddce5c7e1c6f0a29031d4e7f15c8be3f7192cf51bda305da675777502f114b578c29f0516db73e52efccc43eeee1190c930e11843f4cb08e02da2b32ec1330a82b8bfcdfc098effb50d452cdf4dcf5fdd97b03b565261ffd7cf61285aa0d9765a95892e088628ab90ba6cf3ee0e82ec5799c95165cea89659c0befdff4ff34618af3e3799354c9d6e621d2437dd3b5f2ce96f7195779aa95b308463eca033256a6320c31bc649cf66b5208d0f92d149fe3788b1b053c2117043b8b7087874a237648646321277e3e2a3e567c729a7477a2795c7e9e2e0c3236aeeb60e28d161ed3049abfee7fa2457a41758ed4d8fc283eb7c0fdc64467c676d6c88950197ed30bde99a79bcda39bbd2245c4290f48c76e49dfd01800646a1cc1fe1504d6ae501822b16244d381f4ac091321d8a354cb3c39b16dc29b718fd914bdaa1c85009bc2c9130823a02614b503db25ea1ab0538f90ba97557dbf60169c109f1094ccd355294f9e94d698906343f7819381ed00f8f4a39ccd1df33485b8c53f1fe814bb9aab97b3269a92a97d8db0274ff44b17adba8e71d5f7f37927faac2530258809c29c703a8c35ebd489cfc1dd909134aba829e11cf8d629ced03cacb2e4f902c37d0f664d6789d8efae040ebe2f3e0762028419239414e430daa2927499e348794e4b140fae6ed7a24a82fcda608182d77d5173c6178d6e6854128f11df23002ed26f885100071e44b26127bf572bcf4a417c97988bc186de99b1bd440eaf918272be8fdc6c2cf5a9ecbdae90bc2509e726724d2a399a04f968fce6b9b53df75b40cf35b9992b1037d97209cfc59b9becd86926dfa45519d6f70c27f99880b177516438a15eefeb0a0d3614d3562ea70f54c3fd18bf56916f615964dbd766fd31f3a8a404dbb0fedc48d0a04b0c4d68b3ea8fa24d0d8ffbe7d916455c56f5a9fea3cdc1e4680eec83a4c61c0f1d6e759748e2f46bff6a348aac15be67750c504e252c63f7f33e94c1bba23582f5fcc72e33934bee4bcfe8779bd2eaf743c48cec44dd78df2498ff2545656ed5e554d0fbb54a543fdbf4712d99b8b1f9d2a0af7e4d1cc37ad2c88c2143d9bcf822138ac1377c0ccf796d799db351d0d03b6c0f7f61a9303bdc5274dc55161c121e46dc07944c0822aa8aa41a8917294a4dd53a508f53ad547217a8e95c718ddfa81ae33032cc72e95b73a36a891712e677a38abcb98ecac416be534e61460085f65d3b4590292a2b337af8af4a30970ac4c9350aef00ad4eedf3a7957da800953b40d8c7f5d7b803d12c85ce544b08a1002421a8bbb10322db9d4db16c0c7453500be53e371479a7679ac34f5d903598a35f2067cf9d1cec7c90930d8382cee1c9255d4dbe179f7c9e8b7c0ad2abef2f5d47394fa6c24b257d0001e146bdd190295d7749fb8c2867c235f7e6f24639374614c54e78d35935c3a4b89731aae045cfc2ec074261cad2ee7f2d1045944a914e6b0f087ad047cf324f7c7808ca4280908f3cf0432ac4e655fd3f6b2fb37e7009321c1978205e005f6de9cdf62416435b5bcb5d6c43fc181e4150cd5a06f6831d8284addd2c2c08b9776c4b226626ba3c9b0af21503c27983167383a63fc6771cae1821594c5bdbf3c48547b142d4e18cd0d49e20582b42de0464ecfbf214fa8b1da8b207e10d86c80cd1d597dc40d8ac57eede005d18bc3ceade394605e581114a4b1c58550c58dcf7221abab3e48ef5ab800d97416fb19b158a54406427b594f63eb7093e02295205ad0b43825097ce74c45a7148cfb62b2af85b547397c1392bfe83aac5d04957831913a29705c262a4eb5209a97ae6035517f0c0594bb01611bec3156f3176040d9b6b418494e3a951c754eae824a529e7114fd0196b57a73955f3db3f7e0cfaa5aa9e472ad1a6579469bfc158bb5f1480ce5279e84202bcc90ce1620715e1a8ac68092fee92ca2ce1dea4fa8966d50e5adeaea6b8cc5a97a3bed6ae8acfce1a435867298c825105d5cbaf6b8c873239051b3ce4900ae41e54dae6ac4d17820d4a157efdbb5a620366770987d146bae323cc37b5d146a4d0f353f1cc09c0dea25ea4f0e2b6ef47d1d52f082539aa62b5c44355286fa2a8e0ced9736b9394704406e520738dafd193611537d4fda4097f57670dda49ec23a3684f56c7050506913998b66b3e5670aa911046b93f188ce70e2d78a25c7cf2ae53f3dd16b7b952b20d3111a2f0e7e67e8081f20793e278eee771233909e2c26ce18c211887946b9d27628e1e019a5ca5ebe751a077c70300ac26fb79e5f27eb2c304c7c3215a292e7c22e13c422d1e4abbd110099634bcb53b03203bc330ed8f9edab7ac9a20105927d39125eadf583bc09a85f0fc3da375115761fb2da57b39de09f9c7549a1b6f43882fb2b7f6e1c335c5adb8f1b2eee6351d51184a81b2ae41f41a577fe5dc930f437fe69a322fdd85c6486c1becb135ea65b2b6b4653bb0e1a7755b5914f1949892ec7acbd211bb5cf051d8ef6bc044247ab68772164a1d046124e4d6b4c48c3561e66760e1a3ca4aa800594de72739a2c18301815be854003c69b80e1fd4ddb707c5848bce098203d25b64a2c35fb2f1726641811cc2809e10e9efdaf0bd42bf106fcf7a3b07492816e0e4decf2d74f2f23a50cb53beaf5a17d47e3cf5885c3663b488eace2b25d236d130e3bf845c421ef896e84a4fbba5e537d91c06a2e7ea3ef88f89f847cc9e91fb9860056a05be7cd4b2b67c4e1013a104bc49b95a6c341041a95365858696057faf1eb2922511a0ebd560ff268be87837e237e700e7a4f8f62317344603d74268d4a6800b358167ba33159fab1fd870b040b39c1f6cfba1c07c9b81ea9b401ea96b72aa16883d2edae772281e8c05139123e1fa9340a8103e7da44d60e22e4de3038bb4f3f4f4a763926877c9ebc7149c63b74f88d30ef324f1803f049bb926daae2cbf34c2f410a6bf3dc70f82d36d97526c49824dd2cc18685c5ad1c305efd21283036405da24eb5db737fa470c3199b142d074350b1e5ec991eeefd151d0d8a6f727e9657a8350de26953bac62b7fc05c64278af7d0dcb999da05d296ff29ff710fac6ebba6029690936e44a07d988c5b8185efc4a1e583e2c484d52a76c683189969c29d7972e901e395d742e1b22706a9b80964954d73db957556b655c1105d250a04d79cba122cc213c0c156e280d3f1212021e559039d7392a4ad139aac0fc83180207822219a41da9249299d81bb9f0dc6abbd7177031919ed673a2dc4ae9caa08f6119438d3207054ce8b1eb63337a040d5de463c961bd29e215cdb19bc0a2c9b345f72209e6755cd699ff1cf63231ceec6a12e0d0fb2329654ffe6c42c910533887f1fa1f5cfed4c6d20c050de631990eaf4284b1f3d20b41f312c47b593b0c76dd7990664033265e3275f6c5e4820e264db319190bc3e68092d041cfbd6e494bd9970a27a62faca2045eabf1d5c6c04e890a9aa67a6d206f4211a01cd8ef3f1018de304de0c8dffa9488e1b3942557f851237c95dac7c876ad5e66da9d28aab7bcf15ffb0cd446413cc96ee7e84a0db96dd4bf9e0bf85fd9fccbc11fe17e6426851075f9f8571355078b24bf8b0e4b6c572703d5328a6de3262bfd0e1b5235435a5cbf538098002c54a1bd30467762e41a2502e08fb03aa64ce086729491ed2b3e2dbe3428d2da279b4f49f0ccffd5f7069d0b9a667cebc11450f6e2a81693ab92b3472035d16aeccb3772d0e4e110a23502b48ab5516598e3ad00516135ae5bb9e1321340ba72dda240f301beabe39173655b37ccc7a96485f7d5eb674e7bea41d899760a1c32da6fbcfa097de38daee28338c769689b728feedccc009d62d419363071efa563e9dbc85550f2a57c5ef8822b3c52e219be38cad00da02b468d5fa753ce81783a894447a429a53a3048955ac7a59700a1460641a2634d16997bbc0541416a51e0ed6e96532159b3e60fbd2a58c1789410c95de15b6f42c8b836a146a0d14d9326883e81fdf8f6329e06cef54744d4338f48532cba0dc08b8c152ccf7f9fce02d2c82269e1dbb571778b598eef7076ca56a94205fa4eae7ea2e77e5dfa270a31987191c6b04ec41e93b765b35777b9671a2f1962f3b480da932e438d3434574494d8bd7f955882d3cf6421196724261020539a2ee7e0af57ee547f81f9d75eb93c006906eeabbeed1d17e7bf597774e389d82023925014073eb0fcc4a0ab01c453c3368e84c5b39af9b586ee1130a12f92c6fabb0a1301d31321c11db2482ebe0b588de6c775ec84d844e2b39a6ec7c9febe1a3bb458a842ec869dbd0cb7fb327c00d913c075f7af7c4a66e617f41fd6bc7434a0a68dc8e730ccf98f93b7ffc2607a1fe503583314ecc9dc755e706dc77b48174168bc8463590c0b2326e93b36e8970477dfa6e02579adaa3289890e252a016459d8cb41c4ff6ca415085868a2e81b638a312be5efd38d95e09cd868bc59aa938db50be575cc45bac6264103b6ae0223673ebd1d00fcbd33d00893cb25087f78c804604e4b24126f5a814542be8088bcc09957235dca7e82501be2d2e1a0ccc874cb91c3eb10e44af10fb25466c300ebb62128ded6be75a4df82a99f30c90bcb4e5df91385e75ad0a9e20b4742d4a17b706fd930645cd46c4cf632c8cb2726ee9bd39ef8ae0a48d2e4ba7a7839ce333c7a01d7fb5c58051fca35695687ac8e90483da4feec63c9303212091c1c6d1a50ff9fc0eb954f826a1880637ee6e094045c254417671c9e024e20b4b072ca57e6a4ecee89093174043a3d18407da24363275b22444944e86328c1a5467f5d316cf869d98c5024a03b7aeaa67d39c27144438f05abe53bca529b773bd63b5222f30d14e7a668819a62bb78643fb68151c066fbfc1342e5959830e51ef0504a5b3632e1530d5b373bdc3e3a313c11cf1a962b9d2b40e0c7a4fe407970fb3d402c5d099bd90261bba2f40bdc48f1d0658ef216501236bbb8bebbfa01365859f09fc74c60302280abd734c5adfc8d0f969f0c348548bf6edb2b3b78608cf4bf808feccf89f6e8a5b980d0bd1da69341055e45efb3323cece977a70fdc7e457c60674a7a81dec4de27372cb6ca8805874db299a072dd911d6c3980c919b77b4b623262a500b71d719d6a6f6b072c93ad6b93d4dd95fad279c20ac5ee6da48bbd0b9b71c61464636b000ad0370eaf3e0239a814a8049c17e570d84ab4256a16fe73dc4049bbb6a5816c2377b0f609ea5bb555465939d2cb32eb85e7f68d721c37e2074fb892550ea007af9d9f05e612e6d1ab1027f982e337a15c79a26b00f61e4883ebf3acff3b66813cdf50bb47b7be7904eeee133ec67421c72aff3195af1dc9fffdb60b0ea02acdceecfdb74ff473fd9b049528f137246c3bf3e0843595f0571fc570fe05cfccd45ea5753c46daae8f95b51df50922a978e2a02b46e3d2b9853c0c991ec8fb8e0419040b94d54998b09bc1add98d17408098cfac96b86d7a3713d36c1a4f4c9ce70d8a0813853ed9079448bf019e9a4a5e9c84ef0ffb88ebfd963628ff1a4e12a56d10d4bcb1863a7ab1c2eb5908c0a79d6c686deaccdcd343101bc1af3451a7261f24d2e1c2f5e7a7c097062d0038e0c4c3958f3e1f3ff669a9c53e65ba2f6bd4415b6089ea6897f2b238d1315083eb0ba4e62aff85ea5ced837744a636ea6754b6c22e28f5c1875ce9d049161e42ac6622c401f52e4394068b4f878ccd96ae7a003aefc5a22456e507405ae45d03f28cf0e0360a279b9ba69c73dab2207c9c672fdfadbe67b624f2a144fcae3cffd5a5f369d690be2ddfc193ce1b800d94f3a59020e17efd0f838c15d2f82f70c7befa425d64fbc5cbcbfdd5a4bd2292c9add1b646cbd10ce986c4f6458932304bbdfa5ea28bde3c45e2ef66b8982a7c6b90e803093104201192aa5f15be2875ff35cd10d50875196adfbb041adc56ece1af4f80f764676917108cda9253eee4d8a424032325cc6a212f80a287daf5572ba21604b188eb954e688924e6f6b8f7ad7f77eb0bacb26b27d51582f8d074a57331f85beb9a1e9285c09320727fcd21fc9ac3e4ecfeb2c424a1e626ee891ecd3fbb4b7c5f04e2b1aa52d8cbf7e0fc2b1523e970677240505224133f6e8c14bd2ed9a8cf9f828d8adf66b7405e020321c2437566712884e286b16c7deda98fb7a1e348a1c2559b62aa740e3e311eee1520e79a816be1b162d8b7b19123b38f3132bfbc63af4b4b40d1644ccf3143af2815c43b5d4ce11299a0be1636f25405592e3730be30a5770b7606eae3e216307517b29bdfedda0e4b0e8ac407fe1c713f2e8e190ce5492f940dc63ad834e3e966bd01bb48828cb3c0ff8bec34ca63d8e415905b25f8d4b9ecf11500f3190a5f3683e386fa9a7dd43872600cbca76ecc691bfb58afa18f7d1bbbb1bdb11beb1b3b8d9dcf10d7ccd39d8c8027a7811c84fcee8827ef56bd38fbab499ae9428df30d8cdb41634248d47cb03ca989a7a66fe5a6e2f665215500904b1f7937c78b91979e491f0f439836c83c61e2d74294d6867fd49a1f6a5178870acda7b74a0bcdf3c7c13d8255c165d1f7b10623960b2039b73747096062c267f6c85fb245c2edbf862ba3c4e96b05ce8510586609ee99d75cf8e91e0bd3f6c26e0d101040f9b4ae4ceb5fe820b780aa31fa61e0d254d8328c2c5152afda6550d1989a0f57f3fe7353680b2615256fdfa723dc0697ea09eff98dad46b0de7669e60d242b0c6b7a4eda1b3a48d2759505ae4c80790d4159fd9fb597e4a5241e884036d22471c2822882c895ec7b43729f2f1a646ef7fc5866389ec4874b4cedb5bba67ae0af0e39385977054983ec216619797bd282e97822472dd3e2081c13994b5825c73269f772ebd6ef69d1b06b26b3a4c8b6940693587c44dcf5d4bcfdd836b5294591faaa35d58c71da5eeb83e3605444606bb2c314699a101d0b81ebf9c6554ff4df83d3fb038b8afb40d4ed3c7b2bde1b443a3404b0ff2ded00ad8c8a8385ad6639bc2778d70a1a34ad881df9895a339daa1917e614e40777abdbd99ba2078d6bad5c42ce2219e3dea78c452a0282ebc6413b57a43787592f5095727eda0e29103c4dec18fd08ec78f029c4b5888897c213bae55c8ab83b5861a018efbc283454f67a02f0f8146e29131d21c3c47c6b7c10030a2eeff874edc640529a23447c26dbe6de1d498a7c868521fdae85a1b2b120fcd6ef66444976850e5fe83c5b74626b5d847c9d55a8df6aa8a832fce69fc151bf0c05ee639167558c3d89f5e3781145c58998bd6b8408812ab00220b7f47bd3e7b1038429ae51c4e74302b7edd43b63a4c8e3010efd9a33e8624e794dfc6aa6a8b1d4889fbc46fa4f54643d97a534aa92d56233de736f95111771f5ba2d2f4a6eb04b89465fb47eb64c6e1e8a24aa1415eee10945e23dbb642e7bc3ca11c88d8b0fddae6db29e597c068b39b3a65b057be215b25a74343494a8ca247a8a01411d78eeecd09320c62f4c6668ea3be836dacb2cbcc10934a830d1f4dbf2fae82fd0ca0c0eb49d34df5ce6017d2de72f091774033d80838a73440883ced02992a22338c99902283d182276b5a65c17526c4cf964b01e578a289bf7a09cb98068fe3a68fd7e00c6af1f72a0709975b2dd5e867653867d00e16ba25d0cf0cccbe76466c9240357c6e7814b645cb80b6f38c8af155886d845b7b00799faa140bf82aba4b997dea44673578c2e2eb568c96c81188908d706a2ef0d23c307fb43647c10c3a97151983276611d8c97192b96e33024eb992915f456c93a86350223bf655b0a328004d0c9025ffbaca0bf7122cd327d69238d6b2071a223112355212ed0d7a5978ffc3817464a037548f9dd6eb3efb3e4212f17ecb0d986d41cb1b14ccbbf6bf46fcd7e513f091263d0dd919a0a0861c6c587bec758b294a9ca521faa4d0e7a5c1af78c425f5b482e4437692a4423e416fcb148b2b7f9e2db14b7256d7131c10cfe79f6048834b08e9b7b1ec2b20d802943aa62353cf1b18ed8695d4afa35b00f7b05db64bae0396d72a00a01aac6a0bcad95cdf64c9e822ca93c09205b099ca6c2d07d76f3386254e8ad939e6ce6292802fc31541fa8f1eeb71f62e44d84b1826838a563bd0cc6d6b9f559d94ee5de94e59cc36a640fd345557891a6bcbe6c62c94c74816be26e8a1dcb515622d0d0ba14339fa4f681e2f83a1c52acd78ffac26e123001fae4a1cda6c8e5119ece5839edfe9e567c25f5c990118e402a62c9fc5d67e647ed4f84ca22a22fc00ec843920ef1204c4e8226ec4b2a30ef6ce9bae9356d53836640af65db6bd9a19b22363e1e83ffb60c068805991d9f8329a01a43a511b4a29ca6479586714135e7c28179906560c144acd20cbe0066e36fb3a79e1d1f785f65af292fb577f32d2c4d749baf35a6e23e0a364710660bf3193c27a285233a077e4c661254c8de0e4fdf7fe437da27475306d6f581729b297f0ef56f868c88b68c95cbd5b558d1eca7e869b3cae476a6664bd3d680a004beaab3aadfba029f0931e46914ef4b5403baccc69e7922d2e9c996b9437fa4896d28e1df4de5a3129a54a941c33513b181c3d0ff0dbc60406e47de1d39bfa7b560648615dc7397fc28c1a93cc886f4b24dd1db5f3c0bef405fa00fa0e622502460075f4865b67489e3ad09586069e6997c096105fcf0d71579fe1a9205a4d5d5755fc808400661cce6a1ec2f26a480e2909684ef7da354d1c6f20602c246a47d58f7b998aa1713836032cb9ff22714b64091154872f2aef7af9d3a8562d256a9a83c02d65745a001fa92f42da6040cc1a73b6c716a737f21298ee0453441c664d09315b5fa04f0f0b14e07d8924cd21e509118b4b0e15c0be62ee6d735c3ea252e33b2165f4b5bfd77fdb3f4e901227d143f08a246286fde900d51c5855e52426b8972fceabf7245f52bb9707acafc7ff97886aac2fa4b2e3985c584c2295259ba8362a1e2429993168ec599ff7a673f92851746c4c8d20cafda152864ac555efdcafea6ac22b2bfaed96d40c05a41346959ad10a21170779d25d89514c259c15d8015262ed96972a668e54450392ab0dbc593ef6da815ebeedb10f3408a85aa378d99cc2f68f9b6b9ba570a30bef54c859e5ee23404027c8b2602c2d94a4fa2905dada22715a6afa2dbd1ad33d0588a8c4519b0d0c727634143d0a1caf853b841fbad602aed4cb725ab7cd51c712280ef79769678590372fd80b90a956eb186322e31ef026b9b60b445717476fd44a010affb9957e0bd67e6dca3c473378e07ef99c479a0b838f3c5dfad06fa08c2aeb169401050ddd58c7c25d5f137fcc2e6314be185039db10a8799c88a2b5c345abf5e5206eb56c8af2055ee7da9cfb7e6537c361b3fbe90ed26fc5759873dc34e8134768f76275e90484e36feb9fd6619f8ba1182fd22b8908cdfa2ae7930acee76e5721f79f93cc44d3d7aab8bf201e8c6d8752d84ab99c15986669801399a824b9c44c75dfb9cbbc456ef888d50f8d5904504cdd27dbbde550839b00149194eac9f5a67983417aaafb1da9c9e2f66fb965e2058931a5283204dd29180857f20c3079e8edb4b035fbb8dbc8349eeb17374a94291554db1c49330d960812837bb1822765ab4818992bfeda9cc000f1d5a2834582b14bf84fdb0c77a628e0bcc5134d32d7c3ed5d004e6e0364f704d2d0962e315d93c1949b9d0c08aa21eb87418b2ee3ddf3a5067791bb2c3736cd0931721148139b18cd915187bd36c37e55c9de419c9283c0009d621165455bffabaf606e0a852325525082b3835b3b61337b5f07d0b3551b2ebd6b66316de5778e32259ed0fa6aa47abdd08ca71a78eb018af32c232e4a73eba733a64ba2efdba041c1b32726f30fc7f993be227dd8c082fae75a4253cb3fa4398a31b55cee17515ddd54bdda9087467b29065082afc4c3a29a39383f96fb729d796ca04951a16b6055c780eadb53882e588cf7a6a76c93b0c3a443da208c6152344de10c8ce95750e8c73430a86862522a60f316d690eabad19ec6a1f528e3fe0a977028571f8b6ec0d87a7150d586424807544085608a4973da0afd33fd1b892ae60857ebb97350511ce0d92c6349c877155bd5d00b693fc9deaefc5e71799107070bba30acee6da70da49d2c8d2e1e6aa8805db6e2e83f29f35faa9ae7076c2c58edf0c3088d61b353b4948136c7073cfcd1d2039439179c0fe8f78bc8fc942c83377f90e374b17444f1018bac820230266d2da8bce212d4592e8500c84616bd1b8862f1db4ef7acff7f9f12e4011dad748b5b1c0141095b3856facf89e4283e1b5284c70f0325d8755c1bbbc40327459e20b3857fe2d9a0c76416a88faf4578296ef3588b5c9ff1ce2365ea1bff02026e5275d9e5cdfbc05b6cc2cbe2466c12e87bb609b02a44519827fa833279ae53b031b841006169b0b6b7fd1e72b5205d82978ba560fa5336e899c7218c163e5413375209e30066121d3bd29642ac63efc5e4c02f00755c6096533486ff51928f5918ae636363e0e5004e84a066cffdec5e1b59dc917266c2c8962777084a9238557365b0000ae0359069317a457852457c156a3aa21e6dffca9d32d5213146ffd176dcfb6236a331e5aa0ed77cbd787ac18e1f986eee83ba34dcedc6115cc1398c0a7b0ac8a1449073c2867dd231e32bbc6d9469cab91699c9119a9dc2a333efe60665e67d399b987252410572d089ac27792a300e1fd8773b451a09bb7569e20e0c18a7dcad3d0599ed4342ec1522fb67404f1c58423ea582a4bcabd83f9c6caef5bf806272914a97cd03f3515788d311458c44086ed091f16c0c388b7a0359c22296450ba2c09899f6161ac2d2803e488e9e2b249a32feea40115996fcc9559a7f845b5cb94a06a9a4d60d618660e564efa4af04fb5db8e71d3f13b9c3a5adb8750ddfafd674c286d2a5160f1639dd2412d66dbc2208515878d147159653bcb1f208492e49064774be6e030e5545605b6abf672bd1eba40f4911139a09fe17db0233a90a438971aede6b302c078f03095261df6852f6cc611ac44036ae6629b5720ce61950e0a70905f6dea05c90d8a2995c7872451daf68c5474c329131e85ca8b650c321c4ecd467103af1edd9851f9c9b1c88d5ae8157faa18f734e9976ff09b336db6ec257430a4e1d1df84ecbdf7965b4a29a59401ab093709d4096f3da8d994186b1e146dd148e276d3a151f6e9e051ad81506bd6835aad59b7798df3abefd90cdbfc8cb3d626ae616c344301481151cbcb959a9722bf6798d9efa945bb7ecf36155f4aafadcf48bbaed1dafae010d73991ea15973ccc31add66d5da3351a4b20ae255e0fe4d7fdfe7d3087a335fac0a8027d51367e2089201b94932cf6dc0b72b00b475b1263b5466309a303015d1288dcd7857c24f775bb9f3ee631a1eb421e732ab688954a310ff2b154ba0ee4586c711dc8a9281bdd96b19825b3c78240990907a7182bb7d3c766ad5921a70fe43192a93e900ca89c095d7189be0ab14b6eebd94158f889494bf445bb71c9543fc873796bcd6bcc2f08b556546b4895a87aed33de19b66c7ec62dea7b72d994187711d208367fd6916a11084762d27d4c8e4042add5a21aba2d8951fb9e5c9e574fa1045585078a49d82ff97dfe897e613092be48d20fc9ab8f64aaef854fed1d12937255616fed6fc9545ddcc7e4fd596514a6446bd4232091d0022478801089bab1844801dc2061f535658499375407341808f168095cd0d112543e7db4c4acc9a783b7c4ec27ae8b56973abf85e6a21c29ce5a6bddb926953aaf1d76cf736fbeb54747d619605de66f3dcff3b2eb522987b7711fd53e9776bc3d4017d6c130e79c2f0d99eadfacf435d2bfb3d425cceaba3a8a6aadb5947cfa2952b73cb446ace9250169842e4fc03f5d90787fbaf0a0ff74c9e1fbd3e9f85da485bfe4d63c41f152a24ac61456953f4c3cd8a00282071a66f4e88183a1c3cd703938a20d15982732c87cb1c08f1c6e678e6ca9a106cdc188cfabebf202148ecb0cdc961a1cf004cb4f0e2a1c13ac127851f9b84367ca1b2394079721980b1df05e2e3b301729bd44c645e5f6bcf81397a3f37be84a8649af919f30ddfac1e9f0d4671587c34571e70e1b385c8e5ac71c4faf8e4b4916f3fb8ce2586b542c21d35a60d78efde9bb4efb3ecf5154235ad4ed769361bbcf0012646fa9aafcaefd15a3b0d0fc06e1afcf23f75eff3c2dc3416badbbf256ec8fcb39b9f2582fa65a6fb7db8da9fee0e57544ed9fec3adb582209bd61fa3c41bdb95a07ab0bcf3f92d6a2f3a7ef33a1f3afdc98faf7f49ae6e241ab0305e2272e77f5f4e2b0a2fee2f0d77671517ffdd2afa7b9a0ff390bfa9f12f6ce3baf2a6ae948565fbfb36768cf91161d59828c45d783a15aad5aea603e57752ad1bcd2a3c7ef30beeada4223d41689713ef5a9856b86424b0f5aa2aa1ce919d2632fb624064814b0dcaee010f3551430a075020650cc70d0597068ad002c384884d062441f3f4a2ec043a62a5765c4123bbeb2d0d0d60849cbe6890588168144420a1fa8359a44b6b3ce236184cd834fd08e31c658963cc6b8dc1a055bc4385fdbb9287c36fb80b573b0a7506b25f8c08cd299a1439c20acd82084cc8d1b945cf1e3460e1a3137605193b1b8e9ac1127d42b2c3860d1a1673c03da3c4ba95cba308582e953b788367dbeb5d4e7ad0a989e73e9344581696bc1055ddeba728a7a2edd9654e95aead85b50bf600d2d49a3d14ec87e81d89754f6ea35972d5431c99236ae717e0b336d89269d95e6315c4a6e9fc14fae24542f85245260da26be00152b306db8749a59a2294ad9b846fa4eb4136610551aed842c0b3cd9b2cf5c22d9be2c11510949c6699bb6294a73319dfa2c7549694973619d3a2d956852506ec34e6b414b295cba308582ebd4b16332ac0a98a3d4cd85ec3833d577514ba5e9b63a15cbdbd4f5295a8b4be7b415db196fc6d6ca56153918e32b341e97e110635889a85b21c2ca9cdf77cc81d2a46ae91d4a69754aabb5d6efdb92897e75cae5888e15d5942bb3bfaffd921ed45aaddab7d2d37950679c4b2ad18c528974952b55cf1e845acbd10092e7881aa2a8e88080cc10533d6e54d560456da8124657d982d9c15f392b1175ec439922b430c192b3c225970162274f1c21b91fb4862a58b74ad6bd76c679cb210faceacc88a85be5acae7ecfaeb00bea8b51055c941faa8ec4de54dd60e28d943e28de48a133be918226e88d141fc237529a68f0460a0fbf8bb4740f3af528e586cf79e84d073f7151f67cf81317a54e962864be3751b2ba2858378a15adb19bb2a46a4a942440239080f40669166507062866d61b287f307803c588f04d77e2270e0a1b28617e176961266ea8ef5a07e6e9d34759b5c5486a03a738015ac2fc92a2776447668f91d456c969c32209d650243f8f91d356496aa3e4b444b823b35ff2f3db69bfa4e721a967b5661d45ad59e7828235d3bf02ec685d6744d3badd6e326c4811a82af05bc74091b7435cf666f53b0c714fb4ec93251fbe6d33e7bcf50edfa1aa626b9a033f52056716854a69ad95d63af3ea48d5039863f202d406731004a7275bac7482798c6c0106c4787d7be0010a30180905f3279b075505ee68c9641f974a52b07205eaf34adb9102f39b02de7b27d633456dd2e0c90c26fb16e349dea15a6d1a15e37dfae05431d29e3e186381d5a3d63e5bdfb80cb59af13eedf7b5f76adad33a9368ead1460f70d23589e6ef71aa788093af136f2d8dd6234db698705ded19668b6aac6fbdd255108e8a8a8eb86c9135d25657651a8e5a8f4ea86a11ee1c630fc7238f31c6d86a8db8a83cd2bafb80159d1d58ba78b8c962c33080c981e508150d25416cf8c6639fe9792c3ec6512df118e391cc387f6b237a1b8b8c1e40156589e65bab7da812d14f629c4dec3cfe896b32e7b75f7560b48cdad73efb5b6bcb4dba25ca8e2dbea28b0cc2b800ca5bad6bed855d9dd8f85d7b2a044f97256ad07003ea06dbf69f3f5dcf19fe84141af8e46963f58213db13141225aa862851330367a33eb3461eb4f16183102541d8e9c146bde8f5cfa227f3048544d51eaf21a2cce02aad7102480d58a4a2986173c3367dbe1833060c98aba3df47ffe2e8afeee6c439aab34761b4a53372980af2d6daac2d6d98a12919bf87ae66a060e8f7d0bfc8d4de3a3bc22585a7cbbb4bf4682b666697d4d155cc6c866497c8c962664bd87428c4e425533ef613b7e4c8efa29c05523a279d93ce4967d04fdc921d94ce7ee2947851f2274e091b2557288a9f3825511863ec7d4a747c61d775dd072ab925a903869ee77960884bb206003f7149a08421f59fb82437d00e7ee290ec11455184c532f8894302e603614bf4eb692dc0b76fcb0de33d2b93cacbaa23d5692b9171e2885c85f7aa07ab97d59a1c70d6134caa091d643f714c68249127ce549aaeeb3aed2199137ea1423f715353e894d407a3b5f87e7afd59ee15caeb85491693ad1546ea73166706d63cd2b5e7881e1ea61d03d2a687df3d6d96132705f51327b5e30f004ea7d55a1c4e234a64232f98a41046dadc7baff78511af7c61ce397fe0922f0a0cb5d61a0c71467418810ac3d903980706d426168aa228c6c630393786b3872bb3072a203109c83a1090c842f7104503f483eab962ec1d2e6f9af1d2f7bec6a8df39382dadf3c296ec77a5e74cda3d16dd00b53df30033b37abacbf8e6a0dceeb53604005ab7d35eab97e8979e1b5a32f7244eadb5e21c44e6de9b3b102be74c3b1a25f7e4480704537d14d8ff7cd496a8eb49f26d12387bd141d0c991271f9710fb5beea69064d21fce3ef46dadd0838e499a0bf2ad930f921b7cd0a72881161e74a41a9230428f013a9389d739273d7efc997302f59ee73467981e6fdfc1c8cd445f742a92f3c3ffc8fb65a4aeab86faf1f637e764cfcf9c933905f8997362f5f441ed9dee6c5257d2ac5bdc759e3b4f77f796e3edefa41f509f5f94e780b415f6ebeb0d403f983efb130fc630f0c0040164352101040d0195a3c73880a11035086720069fcc0bd26307cb21feaeb6b95e5ae9072cecd7d74ffac16c623b1c56ef9f8f7c85face2bd4e7a87abc3fce7af092db861bff7510fff5ddfd759a8b0a15de19825521068b198a2bea2dc60e6b5f51d0910657a5d1b4449b003f7d568a6de3b65e5ddf957b6a2dd96d7b78bdf5078cd8ba5d638dd2684985a163b3f3a907a925a4880461c50546d8b6e5fa1f2f0051430e8a4a912fdbb675d8e88142a4062f1aa028b16dab27ea0895d5d5db2cab259a403e764da9dfae669c2fce58dfee8e565baf5eddf3ea036fef9356dff5ae79ffda7539637cafb5b562d14595e137bda20915eaefd5bec6d6353af4ac4777fdeb7389de6cbe18df6cbbaa6378fbfbeb938a907d33d107976cd7edb3df72bf001fcc51d5f9d983a01b4d8154041757e99634121c973408cc4ceb5c897af5ae2c616aa451afe592affe7993235f4ba6eb31e8e7f1f6991c6f5e6089642929ab353bd65ad6e8592fa369ab4e29064245a06f2bd4cfdf6e8d9e9e9e9edcb6e9bfb02d54f84d82bf8e028b02fb5db99fc459d6b8a7167dfa14aa8a1350c000073e5002fb828a403d3ae200e70541727f9ec552e913577c8e1d7b477e1bcc10e853d7d7d699e2f6dd12ada24e5aaa7fe506cfb3985c75628a2d0db677e79d83545cbab7db0ecfa4fdc4eb72b36016ba5275eb944527babda26b3dba5aed4cf9453862e7ba7a57ce99a2da92ac2bc4a4cee9976b728399827a475ef229a4772bf7a447eec98c7befbdb5a260cb962d5baebefaea7b6f73ce39e79c735e9ce79cb3ab3aa4b336adc574ee93ab05b7c6056be45c286be258d76bd8846c3ee31ef29024b585ac334bd420048e1e3e38a006871b1e70e4ec40c303564c6ad2234f394889d9014f0d50fee4b165066411b3834e102233e860cb516bcee88ba4c88aeaf72ceab79ea1f021da099ecf47a1de6c9f8fd6084adb3cefc81950daf67d2aa059779a57b6153a5f417b025ec5bdb6ba5ba7cdf204edb6a4c0b4e9b22cc2f50601ce3b659c38353a1ea7064acded2b0ecd1aa369ab3ec5094a693b7d6ab2f3a6bfbead6725a6fab7147a15f7da6abfbe44b030e8cfaf2f1b537da9cea7780107d8ba5a9b366465e1d058e51ba5efbe545c4fbdb3d4f3a58e31f59b2dd6b86fc5a26155d1b9fe6ebff5d0f7754d86f776b4b47787916632ec7098c94cc2b0b368a422049e68d99f3ebb9032520898b1935a58496b6143f0b6bc543305f51ab6a137c9bd51e3be5fc2a8ff42cd92ab846aa47e7197cbbdf7dedacd69efbdf75af2de7befbdf8de7b2fbdf7de7bb34c267464efbdf75601a7d6b4deab8b7e52814f31c697cafce8df7233855f9fa7ab7419e37cbb70ce39e7f4466d745d77af64b525a2d67e9b4e6be74ca1795c6a2f9539e79c5428865d8feadad97c31bef6a9d4cf8dd4e9d7ad915adbcd6b056bbf33c595c984469bc35b65eb70361bc7e9b4f477d1c15f2623756badd5e1a53252581f708660e79c73ce69af6f6bada532e99d56c795923a921a85f4c5335b5aeebaee5e19f54f1c1aaadff3ea624133f53affc4a191eaaa35d301550180c7ad89825373759fcc1c0d0e0d6c77b38cb29fb8ad241e49ce89a159d7755b60be3bf15d778f5c28413f715b54dec44fdc5691df455ab9073887368efa1a65dce15372573c158fb575705777bbce56da797975355d8cc515b7f3aee7d94abde9f53577ddf5a0c00b82b652302fd19e7741f18aa2ad54d4b40d187e1f28aeb8e2fd6e88e2f5802e1090ad14284c982c12c2d092bb5e815d010a63b16b0594257485846ca542f54685aa3d2a549b3675d6d4594397d023d48a1ef1f2eaa2504d547461a90b6bed9d6bf2cdd9569a49a8b56bf3252fd969ed79e0177e61682b0dc1f0fb40300cc51026c6be58cc561a8385a2180b61b0580c680cfa82826ca54140e13802050509853221139f0913b65213b25048c844289399308141780283d9379bd94a6727420c309885274ed466339c41a881c82203da47a3d94a691c841b6cd041c801071e72709d834b862eaef0f296a5adb4a4851a688002c67d14214d5c41135dd81a0a71050ad18525c10d420e4416f4b16f20baf01e972ad4c85deb00eca003afec405bd76f29add5da7b31ceb9eb7478898c289e6c89627a1a36abb5ead586e06fd64c51a58ce1fb0c216b86e0386a841ee07e7a5adee94531b0ce6a3491aa51d2a4659f01a53b124adb5cf879b369f7c8188e6c1897b6dc2ed0727942e7f351186d3ae7524a3f254da7b7d7e49c93de70bd55ae13ab9faea777d3f3747ca7db59562723adb55a6bad5d10e06da277d5fae9d3bbe9793aa63a7efab5d3eb6d32c63c18adc5d772775f5f5f477cd5aab5e9f63653745fce749d99b11515644b480db2a5630b0a48182d306f46ed0c38aa35103a24420cc2d1d1551693f053d50c3a6c91b30477cbb2dd364f62e0e2ba53648c1d2065b2729931b021be5b26ca12613109eb37a2d5d2ba621216d365569148d0d2465a8fa3182b18bd974c16c6debd628e5caf0461d6a944738c1e3d8e707f90b991a18141b0d463baf09825ece52126ca12f9470e8511220cd76ff76aec0b481da42b606fcb3b537c989f38333bde92b7d269adad19466b81fffe85f1b69c1357a6cd5fbac2ccae7d28b93964d73f2e0f244338ccabab6bbd3d46fb130786cdef7b7518eb4f1c981f66433f7e92c1618e9c1b8044f902c4d60129ad3736e0ae74e5b1edda52133a5e6cac881953c4b68bc0a8f1f1d67dcddbaf38625e1023e605b932b67905a60c983233706076e0beec40a65e1b7060ba78d706996ca6c14f1c9825af7fe2c014f92df351c3fce2c38f8be3cb8efba5873dc2e1c30b5e597fee8dacae7c6f8c3f715975beccf0a186ac1f62f706007ee2b2aab2961c5d1b4331aff55e9b9f31e388fa3da3944e5ac3595561431b062f92d4a9c36814fa41e79dc802e69f6792ba8c0cfd92275c888c3910393ea5aab51c44499af6f942be4597f9067259901050b9f58b25781ee4a2079534ed409e691515a1f30c7311a82c41c9b86125937d98670f7d2463e4adb5b1dc31cf7e225632d9ef5c096642f894762e7a183aada222cca4d0ea3d9c5faff05e151561d3effb1cf4ad5df44d5d0c4b26fb4abe69c9649f7a767ab7aeb6c2360bef79477aef95af494aabe80719a806e500a90d4b248b3116f1077e21187adfe7dee7a2887d53ef36161da4e4c68e1d66eb856107c94d31e82a3cbd482e850e86f8c8987d3efdd2a68a2650cf620bea393b4849d133d942e973cf952a153f9f629849ea54fc9c924aa18357fc5c243f0f93ac8bfa8e338c7d58f37b96b5f5350cbe2115933a8c71e7b8d3d9a7884de81c971b3b265b749ecbad941d2b65ef4825ec8fb36325eb3ec50be600270a661304cb3d1bbdf1841934a69d384ea098710285e3cbe695d312d1f800ce94983e5650b2b8c066cbf0da72d22c8c042bc149ba9c40c9481b376eaac2dca0c44c1f2176e081889f3b46c8f8b3431f2a506c2093c7489916ba348942c454160d465e68c972028a7bf144c42b09111e718e20024b6bbaa161cc8e3a4fd2005902444d9d187ec0014a4a25f324438ecf1119a2f870b3c589ce4ad265ed901583973ffa080f89842c568c885d9101b39243c47d79151992e3053dd83a1c6800e20608933d30748dd992a7dbb227a8ebb12588bcc5cef522e7774dc310e44c17b16ab4426676cb0c0decd5129d5d010f52594288e02a83c5d6a979d2d5f5c3880c31575c46330558c10554e464d97162474c11931b3aeea83953439630574362574e80b2dc61834312186e08d1d2a111a2c4490c67b80c01468b1fd8558d0c42d8b293c3cb0d3f4a7e9440249122060b07306be8172d5f3e2d5b03401acbace50a2cb48a32840c204ac26021a08812575f72d860a608f5410b12504b14dd25cb9f9916215bc771e6e0cf9c17351f74a7d65a65249922228f0d24327069c10b7d94d842834a1522b28eb2ac89d92ebb6c46bdd65a391044140c4388f030e686ad0e60469b2d1bd2744149d92af5f2354bd7d75abb8c2f2d47884055516bedf2fba8098e903a40725b84e8b2dd29e24f152850557454d9764d8d9e28af21a8c850b1ed222f6868eeab973473fc34114287cd0f30d83e30bf6b5a184dd6b411856c9ce1c975992a62d43f735e709a4a086b2bce990055584a824c1d51e766ebe09cd12282aa4b8b0c3f2856161ebe2c4a44c8e2a3b3f2231c9f6c1c41438d2377e624c982002a337edce038b23586e2ac48c1ac4811857ee6bc04f95d8ba3693f735e5eb08144b1471b51c8c659d7759788b1fc99ebc2a5351e31863f735db07e8fd78831f633d745caeb2e537ac88897c1cf5c971dbf6b5a984e111d1e6c6b512843917bf37be8aa86ab307bf7ea7094a9e946d9504d3686332f0a65288272bf87ae7250a1d91c8f291bee0cda482ef782c6e0670e0b8fb6b666241244604583c8131971965015b14307d50d55b91e7ae0e2a44750d7753e4bf21d161e5563c119f3a1c142e2851901890418b87028f1c30f666e48624f39f302183e76deeca15baef4e96094591571a2a716e74ed79a25b2b58601982aaefbdee0af6f13ef5bfceb781a797e434f83404fcb398976064f7d4e23afa493883a76a29f21d0e64c416f152a3cb8fcf549f463ae76881ce3aab5f9ba04a1d6f29559cf3667eb39e3319ee32199e9c3bf9f6fadb36b9dafc667aed7a1a73aeba7adc04f3f9734dde1f245f8b67cfaa7c777f0d3a78fff3a7e8b55607b6d59679defd12bc36ccb1d62cf0b3baf33ec7bccb4dc1d7e3a55e09f745698ad394af77bd42a301024c6ee67ae0b8e3c23fe99eb02a5735d43a0c8e264fb3ebafa2a15e78e14244a740011c4568f88c1c9570e3c84f4b9c1567d56543d2bcb2b5765468e0a0d3888d65d677111efc4cf1c960d58337ed7a22e1632ee71c43b8c7b1c655abac48973441022a0c278c9f2f54f9020aaf6c82892438bad126962a78a93a81b5257b6ea336bf4a4250b0f0e091cbe982163ab7588d62f2096a7db1d9c992b293464fcd8a6f72902091940b8be726021348737783e85ab175e4c2854157ee567ce8d9efb364c68ad7eba3d9fda6b6ca6b0ee91312c0c26bbd47de7a2a3248cd0811c466e21873918e441ee39f59cbaf53ca77ea78af914c97aa4f68fdc9fc7fc73cf8ba15f3b8d79cca7f87d31682d5ce679ceb4d4bdac044c4db5a6c2d3eb255dbe9829ac3369a7652c7f0e03491831073d24c1fc05659216943d6af53192c97e9087a452e831996759a9e4b9feec48f50385bc72a97bd0b307914ad983fc8a26f89380e4f5f861c458eafef3253a692dfc857cbe50a954c6d0ef952a78fd4283b4dc4e429a84c1a45f3b92f5ca25fb424e6e21172a979a98622c757f8299c2fad28b127c4e45df730e2dbb7f90839f27f4913421fae9cf6be11f54c6b00f3a484918947e9ac57ca0b18c61cba58ed6c23fe6fe311a83911d2c99ec92e70ca8b5a15aa3a56badc1d041516badcb4d3d74244b979c5e6b47aad4b6f0a0d66c0e87e75fcc1c6ece5b2fc1d4e3f912083385f6251445b56667b5667d69ce14453385a5e56ca6b032d0a718d63490e7dab347d25658795ae5a7f87924ed2b359507a9b842bf47d2aa9f62a6563f45dab9fd245d2e75afa4b506a251a7564f5ba17f897e3dadfa72b3981fc33ef61dcbe552476ba1ffbaa64ffdcc583d05ebb751c7cd36e0582a003859b4cc115235444d0a71bed490521284142052b0e4a14959292b55695e52a5eb1ea148a895ca4f4fe8d49072e44e0d2e35ca2665882843270fd69528796ed51f2343dc8093c333640a21470821ac6c55ed4003942c5041737af9b1610a88314986e431d2e549115969a268703dc1b29541f541031328584ca0a00461cb3bb4dc1892439b2398c460cbee248b0b8230ced631c618e350db80633dacb53167af945d2973cc449d09d3b565c340e0e461f3474e1238b8d830a57a8ce580b99cd765d588deaecc2d96188ec4b932c40debca862d4fc953850d103f4af02069a2041bc95591b2b8c8a57314835737f8614b9a35778e00e2c34e9c333aec5963031f1e4c72546e7f6a9ef2e6f7500d3fb6b661035679dd257d6ed017d895dbe19cc93194e5acb872538698fa9bb3d2d3d5d9f3443f73536e78fd3337c5461bf0c5b849d35d9baba2ca49b14297e4e9626d6e5b48e0f1e3e7055b2ec3e585c54e142e4c70b01dbdd1b39fb92a342ffecc556585150d55f2355775f5b582e0fec06499ac1a2954b9ba09d595b2bd9f6df65c5aa7764e1530aa0ded188a00833e53fd5a9f8a2ee6d75766aa5f1d5b7bef6512b3b796fbe967082376715b60c7ae84cb718630ef4c610304692e4a91ea3507c5eaeb579ae45ea5eb1a03cd5a9bd8f7bdc2c1355d8b77c5f54cc512acdf12df5ace59dbd8b38f7efd8a2e5878ec4ad8ed9475ec3929518ffde95bdcef1cbc596c51036a72f0a03defa8cb1040a064008286115d640e9f2f5737ac8ab8b962e45e491200ade6f6bba615a673ade50a0de1951fa01d61350912583660b843d524034e78e063c31b276674b4b1c2e65a812314c4071d7f7267b6b670b1757cc84cf10135c7c8181c281b2e1e98d10b7fe6d2ecf95dd33344cf13436d2bd238e7774d4b2bcd9a30cd98cf56f2672ecd541a1f07c8e18c5413a81d69f0a420073374a2f08901092f0a8457904702d238f3343770d189703686b271d685b2dc8db2b094dd17f018020d9f71cf08fb6b678ce919c3596806cf16d7d699df4357380ac464f8e0d6cd04ae1a7f5a9fb9ad1e4457b23351267efabd3927750ee6300cc33074131f865b3751f4c2ece267bbae83940b042fd5c09a0f1da98e35f6d331f6aeac4c9878ec26a2aad587a488420c9d6d5a225ae83377a6c787dfe720f9859e287aa208869aa4dd4007a9e779a2e8699fa2fdb448eea9f55dd9943b73fb90dc8a02af193cb1073113d98339c4e41d3f3b88a18cd406f45cdf1617a0af5af85217bdcbb29fb92d2645df05909c9eb4c46655313194317606ca1f5b523f2561ffc57ecf3d4d32fcf9cd82afafd76188a18c53da613f735b512c7c7dfd66e1eb2b080603027aec405c44510c656f82eb676eebf620e8611886a1b3981f96b4cf9542a71e96d43f17fde96dd38439e81ef9f418068a49202569d44dbcec4592464b3a53649fb933513f7367ae1e0465b2c72edb62f2694bf47d67a03c05785e2cf6d86366f0688fd41a638c4b9ae84ad8612fc21e3becb1e833b715f54f4f2d299213f4a7b724937dd06b4af24aa69b71079b3345f66a499d3bd3f54c4e6245a18452dd9c5614a65694526a556955a5512815adaad58a5a5d3af38ac955c03e6da187a5ae35ec988771ebaf3e9b361a868e016b74e9875eefe798dac2b0043d7f4f499d83a2e82ce68b250de64aa25b87896e5d7cfa9004c9ad6122b9ef87da3d47aad9c1a7f76c2eea2a9281108e33a3a2044ca3a129c2531c649cfdc0d9c901c7902a4f6c37a7d54787d5127d9c88b1dd1f8a586b6d91191eacfb90b7fa675551ab8a9933a3c353af5515fab111707e52f8f508ee61b43e2d79f5fc52f731829e7a8d5518759333b3635e6a14faf48f1a8525032a91757d0403c847df5fcc7710ccb70662e89b000f54864089ac8fdf180b9ac13470b10ccb498936017e1f1dd10fac0f63750a7a6766c6cf5c99dbeff935735a590fda9084a4119054c0d4847fd853cfd0ac3643b06fb5a854d0444598218c3043983fe7632085173304fad639c07583fc66d2717bed99f45cc07afde4f315952652512ee8e0020d2ec8e0828cd7b2df2d10d1c29a312d7869014b0b515a58f27ab7d023ea7319a72b43c6df4e3e867e3b4109f9cc02102dd06ac1911644e5ab15b0ccf8dc6544d56baad73af67cbeedd15a2c28a2f9c4d0f25aebbf349f8dc410128387d7a5c21b156c04ad79f08590929409a460d0a6045524a092c1971154a5506483369f416043c555d2569256d0ef24ac242701f83d8210af81fc1e0188df362e0c7edb6e7504f0fbb9deaa015a0f763d0f0af8fd37a42fafb720557180d67f4849847e231141ca813403d2ed759bd75aaeaa3e6ba1f2a4e5c69396db0b6e9fab9f8f0fa6c3f51a4b1a2c659eb088b9f21f162b5a7a5e73e1e27aede3b38ff98cb5c44a99272b37bcdef319abeb734e89d7509f97fc97e3faaf0a8fd733fc7e9a12a5e4c61aafcf697e3f0db9bdb6597a70f0d941062e2f21b4a6d23c09918ad3e6f393901aafdffc7e0a4206f6fb0908114f406eb5df4f3fb80cf0fbe9479329c4edeaeaf7938fab2a06480b54395e93e9fa9ca6cd7f6a8afc6ee1c8edb5ff76ca71b331041bacdf4e36d2dcf9ed6463865b9e1a71c4df4e35d238d5c8e27355030b9edf4e35aabc1ee2b713d4d46bdf4e34a854fc769a4184d30c1d4e30e8797dc97c53b6fee3e13510af3b9f61d0f15a86df4e30cc20e3cb4f8ecf9f9e3f3e64ccd1e0b7930c2dafffccf9ec24c3478adf4e326810f2d9e9c695e597e6d7171f264e3723afb99c6e3f9c6e39b0a0e78b00bf59d093040b7ac60c61f2f907292ca4c95d25553ebb19f2baa94d0ecdefa635372fbf9bd4244122e4339b346ac2df4d69cca4c1bddef2bb298d9524f4117750fc6e4223074d0ecd159aaaaddf4d6898acc962a688991977be94a12aa3a3033e19fc6ed24af37a37695d41c0ef26ad270df8dda445ebf61fcd4f85f3a989f29f85d2e4b5cf26223be8f0da7713911d6df6fce7b59b88c840e40684848583d900fd6e1a82e6b5ef2621b70ef4b856101eaf7713909b07bf9b7ee879fdbbe9c7d5eb395a9fcba5f9f5f5e7fbdd04a5e3b5a682da92cbbdc28dd7ce0294e175908c67cae0e7729f40cd6b162174bd1659d434765e7bd292df682c80cb0c329e297b27aee882d0f1da3b7145d704a7b5d69dee3abd01d86e22d2a66b82a46b52e3b5bf80099926504ca430c1c14fc7644c37c5a69bdaf2da9374e9905879ed571d92214fac2e922caf1d49952925ba265c9296f48d4627ba00fa5c6e16deb8c0f33ccff36c1ed8769a31e322c162f964f144d876aa1144d292ec46e39972d0e7723bd9d0f3daf900a963f4ccd1f2be7a83eda7a85b4d53c7faf1c362ba39e2b56b71c574b3c36b07e20568dab811b275c3873b4f54d4a061f3dad39ea73dadb5f63c00db4f56bc5e7b972338314c26aec66b07bdcf01b0fd84e5cfc44161c130b71c69517f23e13ecffbbeeffb3cef7301b69fb4bc208b494b269e293bfd2cbab89fcbfd5220087edf073600b65b28e1802b5c64689105e9f5da3d71851bf9bceff33e16c03608b0b0e0e0c606505efb27ae40018506440657b32c144f4eecc0206b85eccd6b1642705e87e2856d25313237332f1c70792d9620f4b9dc30ae5eb3d0545e3b38316cb360ea750882601892b0dd24031843091a7c2eb70b5c10e8ba84dea8a0f11a0213ced76b2f2197256d85f6189fe54cb93d53dd728e847926173a1fb6291572f9c2ce40e38991d7fe628522dc1c41e5b56b075f3b88c515fa736b99c2ffdc5381d7ed0ac373a6fc1f78fd799d833402d3830e5fd2ab07b08389dcaa0613a9b9d63a67c5a426a9533d75de7fe6c2cc10b3e68b7ee6c4f4f039307bae3e7c13ded5794d06ea15f0333746eb73637262ba7e0cd5834fad5e7f9e0e6632c8c1f053117e27c69877e5feca4d61a209d44591058cfa37ffeba88acfa987621205c5a48f8469efacb50fe4e0fdeef35acbcf02959a565111aa7f9ba96e4dadfe0332e1bb3a06beb563f09910b776f1392d91aa15fd2b69daade7123aa7e5a66e692d41c9c8549f66ebb0506461c2296882dcf4add3aace37066ec23706d5da725b6be2135974ae54cbed9e6842f89d9756d711f1ebfc7aaf402ba5f73bafb63a357d5f89f53bfb155bd8d7de652a42e7f6caefbc647fd3d7dda6569fade7d0bf2f3b537d5abd96bb7accb7f6985832d90f4b25ea3021ff7cd792c97e47de9c6ea8842b176d931855cc1149002000f31540302818108984228124cc0351df0114000c75b440604496c842a1408ea3280a8228868120c610630841c6188510735455003a3bd054b48a5ed403d2965d33e1728a26dddb26e402429f9dc2575eb245ee8304cc60e53d46028ab7717c126d0c181bd73d78a2447b82815015526015d8fd2d085448b3f2bbb038398270d8a824fe604720781fcc3936e2f490a6da7703c0e5aa952b520037a56d36399c289b6ab29d9d00a286eff1648dd90d00e62141e44cb28fc8a8192511947dfca97d73822d473a2e4f01b5801a4aeb0b39ace8404f3224b40bbb1f4ead3b8a60099f3b6469f6df73bf8a63bc78260324da55d71440df9a48f27011160cfa812b7744146731fd942ad7f7fb90314a55ed7c9f320802e8ecd49cf26255509e64479b54bd8a3e237ef73f4d8092ff3a9853536b8ef8fd3b5399e29243c63341e4f006a8b257f1ba27140bbced840a298ef2913d73b21666bcaf5d3e4a41f6db9d0be6b0b1fe70612602e121eb55bd4d49aa3a05f89db9b317a5d121287e3fa76e9ee9423bbb36c02f3509ad421772443795117ee11c5ba53fcdf483be0da42a0634423a54e304b8535d3ae4aca8ee7c48dd64902d2b15a7ff63e84590cddb81cca797bd7e5f0e65eb3a072ec70555f46bd90c2d22c113c6bf5f23c251adb152c1727792af3c10624682b8804c5e804b75b780886246d1b55e5e10a0cc3ff381a1f900c58fb19897366f80d22f4c14c8fe02d60b47d0d14a7a31073a00fe0d857c27eacb11ec4e120159f9dc3d0d22fec158ad3e1996891d37f04ac01fca1c9f5c8f81e1730d767e1be21a236113bd6b0ac2e274beee76c7392e90ef723c8756703d07c7a5fc7b56b67fed07019dbb8af0b838790018199fa90272797446511692c861866b21aeb862a60295b6e18462b8950f753ccc4a7f83a4b13f5358a23ba6238db49709473b673da721158ebf1fbc5a6573891014da8c685025331db43e87bc56f6221b6a3d7f0efc998d002900f8818ca5871afe29730026f8f6c431a8076fcbbab558f1e08243552c84100387c66f84bf84514ef4e58e56c633401b177fc8e79ed8d86a5abb5cf59dd90f81439b6e1351a858455db864be5066925046f4074a02592427aba12b8d9b74ce134516bcf66f8fd5efa32c97c69c86b88fd4cb7061f49ce7d5947195ec60f9b2f1c9ed411e733ac62ec8669af781e90995dad39d6f57bc2d33d413239f0f65bef60423f2919308ba3d35de68007313a915432e57c92625d486e23ced68c8f1404ad65d86cef32b28bdb8965070e38098a17a3a449c3231a06f26b41ad9e5109ac8d49a6fe3e78e2eda3d901a33226f63efb54e140df0859bbdf90f68ed92625b0be3420053f123a7f588f3b51088de5a0f73206b06b9844c32ebd3e1566c642cb98331d2de5e98e5390613ab87d0d07e9ac69da834f110d4addab68462ff342d7b28c9de6fd4eb8e1112831914ede044826a12b4fb35b32160a64b13abeba989b3bdb94ed59933b6c1812aae0dc5e83464754ae518890d7b77366e99006fee36e3d30dbf89f18a69a45c1b684d9d754553f3a8ca0f856c32e66f715da017a2e7b896126114785c21f39a04bc1e3fcf374f022e3a708d8972964dbf85dd2d040ce61148bda90561032ab4dbe1c46025a9c86878261a86a0ea30ba3177b024acad99d81fbb726e1dfb351c9fdf3ff95ebde620740e0ede4b13b33f6378dc083a56e7c06f0578a1881efc96c29141bd94670a5158675f640fb56eec7a0217990c68ca83f1c61d0dc9b21c5ba7d49f2b652684b7ef9891c2dcd5552727884ea85d0daf4ef237b899ead600f99b2bbca91725dd29bf70e2956d6e252dcba7252cf48e16fda1c96552854041eebb83b0c9bb62ebad7d6fca45b07816923b09f88049ef86f0ed11c443988180a8f16afbda6b80ab4eaba8c5aed99c66d048bac49ead9b5f0686586f666a75ae354ad4eeb51f94e6177382e30ea4c44735c402aefa24c8616756a8361bb325c8c76117e022e3ada9b7532b825a5c7866a7faae15340a7f0de3821424f008d14fe1a0ee2e397524f8b933a6c720ff3a3533ec6e535b7b4e6ee89dbea59c8b631089ab46382cf57c4af10e9282355ddd5719315de073e00196267f16ff684c30c0dd7600c5e3611a8c6d050de095c7052b7b358c377319b74d0579347860979566fad03e87adb88740a0455faa52207c9af779259770f29667bfa9d6137bda4ddc9ece84ec724ff2601c81603386c0104e39e5be1a09a85c92ffecc6861294c9567f9a86dea45f0e4656a4529090d61d56e5e65b1778755cc95f1dbb6bc562a50821a9078f1401e20b824cc950e32553422716049c6f56cb1384fd969e06b877e2c8b28a778b69be7e0f4af389903e8b642789fd48a428bf44a644a2cca7994b802b2e0cbbc5074e3a9d42b399e0445e7c1c4150685e516d374d309d44c854a45c41518991e323347ed2603d1989dcabdcfe34393e6a5e14299c51e31b8c13a78454c2033a46cec087c9c3fd9901a2e42d12008760dac0d2f0097f5bfdf5d3057950f15e6e14331274bae55006f31a78aba42fdc1cf91cc7348f6dadba8b989fd0cd15f3792edc7daca2c0d97a6e420d5d62adfe938561535bdcdae0142b662f8ec85d86328173b3269b2deacb44143498a1c85c553698907d409d265e42e50bf08e24c977e139023776719e8c7a5358be6178411389269d016e399d0afcf4ee9f3d7b31355ec82fc794e24278cb443b0b0b8e8f62d19058f9c0738bfbff2fc3c4ce66395761ec98cc65409669d9862446387e6668d401786e000453d7cbfe14c08561d9eb80c9ca848d7f87e34016a47ec3c037c9aa231526f7523093dfc1c6ac5b640f8fa6b6fc9f3dfe9847012e9857a08e0c825b3ad830d969c33cce589d4566e5931bc8c170bf1dbeae0ab88f1abd6d9487772b532013d44ae6028195fc70ffd384a9eea26308819aaa8082310480609b3791a3efffa22068e045115be8283cae1621719d846dcab05350703dfa7aa57806420e0b23ecbdf9fb0b507145770ee0e1960fe635fe43d3d8f0ff3e8bd915b856f5f6bce4e715d43b41ad365422c50741d8d3139fdfd757d563187c006007a607e3bc606cd82559cada50932341ef7162ada318eb45c4c12cc87a5b26a704b3c1bd77bc85821eacc7096a63d689338f017ed20b6281c56688f2d9a2fd0c623ac162c1dac8390027b3a6f5ee807be9e65654a64504543c036b286ff30eff4b08627190cd0a846c439e4583df84c9f4c8291508ca47e50d0c92c9756b5f7a0319763b75a95c839c2fe471c2d01ded1015b0472f4d6336aa20d38939fc2e0b352d19b2e68420326e0d448e7cd03d18ca6aee01654456b326801393e6686aa7e3ffe2da165ca65d1b9658fc9052cde6221e37be885ac769746db44fb8cb813dec8a27d0b9b09e26c2981863eb6564b4c01ab8bdd220e1879825664380f1fb6f2615488b8767f4366beef953f507a6b2f793ab194d97814ab73602b944107752e32a7f68385123bf669a14b38c460268154b7e68120fcd6ce89211f7d49ae184715a445ef7ac945f4b09d9dbc027b4d71071ea2a01f136bb203073b639593f0ca4367b59faa072f0aa14d215a7c0a95100c6821c0c2d83dad47d49c60363462e1e708024a8530733762ac84095011f94eef3378cda447365173830501e99735133bd2620fb605051e3b7542906aad897199418bfe6b9aee8bb2782e6ef821fcbd5af102ae611144697a03fedb9b22e90302a2c343061328b9319a60bf2360a7224573471182a3e3e0cbcee8d8b9e642d0827bb281f6ec864e90722ac6c2a7c369725016fe87474786d43431f3a5946ec34c825ee6ce929da8ca2b0713dbdec3784040411aba5835ec7a394acc7e6cd35fc5175b0112744b775d32474a2fbb157eb6c8da441e73322716f87a4b2722bad650a5082f897e7ab5b8911874e9d82dec142a117b7111242503a8c89747d6f9761f30a0302d0cf110526f6a2d7f8110ce261a9a7551f27666b8676c3d22905e6542c2745c6457f84924f2773cff963891f7e742a0b794149c1d99b2909338139432431259970435180374f3aaf64f39110e1db51e8181991d01a1262c673ad9621c129553f587c7308d56f033b3b691198edf4d8a9ef4f7fed5a594d7923a4015ae962c2af5d4564481aa513cbe8c499b7b7ff686c31dccf4783634c2221d0bacc2560ced688158a7b21988ecaa69f50ee4b12a88787da90a4eb804f403ede428fa5e58df8afb84987f40dc61b85d954b4d984d95a64b57bae7e031cca7bb3541c8572bf42f6587b46414c5734cb7103ced08241b13a9b27014891186f91a4740c4cf620c6541bf877a3b1ad43dc4c618eb73faae6b2ec2f93c97159c7a29d04834d2e13248e6b54e6ee4fd49431612aadae571ee7c132e0a180f579c2833e508903c97712b6eef62dee9b7a6d92ba793d2f2f4aa535d0a910d7a8d11141e32ee164acbb9684a995e1eaca452cc866ece70e092f9aa769bcf06a306fdd2ca1d392d0847c0261bd14d37a10a5757b73f3193e15d14502d6e9dc04e52ef60b8a8b2d46768088103b6edd943754151ad79083ae9e3133ffec453b89bf9b45781e086c5e293e42638c2261e3baa1855b77661c987b6810e6e2f90aa8f70723f7352fe36182bab026ea69d93b26cdfaa162be045742d60e755d16e8b362877c749b717aa75c19a3a3ff1bc3e2beb1c0755e438904a50c2444c81b201528dc15851ac16199b1e82599bb5c3ce5c353eb49519c2aba872866c0358ae875762e6190b1d6da3af547877b72a5abbb65af27b4ff0b6afcfee2006aefa3a17c314edabf6592ed1f2ab5b01bf70d2c3e59a07236c42aa182b3bc680677b523f410486a1f898692c806747f93d0f3f7b9708f570ae8c5a5e0c30d935bd8a5dd5db24dd69bc7a1d990f12147b8a499ea34b6f584c52c5163fbe2011842882aa6f0e3d273fec9a388077628e6443d03394a99f7d968d9a25d526ac8c0b970936b988dfdb4e9e5a273b8f0793b82cfae39ec949c45bb10f082b1e8f5c6c2441d218efb2495d366b2f0c24a923ee298ac1a1e76abeea14595ac0ae22c4441065dfc35a92e50f4d51bb45d7d0221e4b9068b61773ddf44ff1439d74582137a578a15915b77faf9c95a02da4abce232f4aa9d8daba84da9bd507666c0591004554026b0d23763317dda1c022a4d8c60f7bf56a19b628a1d54d20e94ee2bd51437487f62ce3d73340b84867d395c78d2150bae4cc503c02600fe6c4be8bc21c767596ec3d3e40aaed00208e777314b2eaa2094d0cf848bc616d050564a5e37a6294ed001a96e1e53e7abf07f8fe5927b6a75a64cd41ba8e0fb162d024e979748bbd61637cce4ca1640af6a363b419177549c2eec913841126811ec162ed63988b13c9594638d9cc0ef0bea39b68ea967350479b5325748a50d89e2dca8af3516c4e8a1c470d5d12e6095540bad804c737fba16578f09d0539336614cb8016b38569de97d5d638770fe8085ef65612e54f4e3e582ba8cfe73e9c8da21a2df96ff96aa3c3077d7c65aeefce778f482e12f5f18f498c4e2644f7ce59fce3d48924b158a248be45e33ae34d669dc39312b35a42344ba3e39d50da4cdd54f31115029006ad95e70cad4310cf0027fa153aab65043cba1c30f0c196c2fa70d397943dcc01863e5e8819ee5e944af390090c502a77146ee2dde8e8169acea64e0a6c75069468c0114beec02173bc038fba1eac840c7fabb0f6a303e046a014edc659c9610ebacaf3b1f79537d38dadc8ab86623f8ef5d43ab05a4b333bc8df1d2819b8d101b0523cc7a30a8790c96a1c5866b5082f40b75b28523266a29343cffbceb6906f0782de8fd01a7a9eeae8075b50ca70060f7cc2bd922e474d5ace22dee22f199f0cc5c8d59c7e7ba3408f05f37880b7980829c21e8f2ef63ca324741cf241f7d28e83c822adefb0e369cb96433b66accb17bf9afa9a450f094b1eca660bdf803475b3f59859c9c3bf1c6f93541cdacc9042b6319734be0fa85b8a14219a1a60f0e2bdddd6415288c5e4f35917258b2c28149c0312d95389b27f1d641169860e0f4114f00204a947b8d288a53a2605c6faa7299cd52eeb04a10e7aa0929f5b7b1be7602660f5369fdc5090ebb711b9116f2dc000139a87d2f72ab64e6630503f6e0fc2268f0dbdbe61ebfaeb24df8580fbb5bda5e6992a26acfa7e869298e4cb9597ad3ebc01156efd16e9e2697d0996ba332d7ea4fe325cfe1b7402330ef31c0aab4b6894ed3179e38c8e3181adc87a9c7e016bd1e6f733154f665265b2a09c6bc3ac053f81a179258a408197d00da849e4ddadd91da836657758f140e7aa9ab6a6211b292c28f3fd477490f09d96cf4a8c03caddb6236618e747bd7a9858f8c20d94c6c52fc640021b7996d129c828597fb54ba67b2663177c9c21568173d7fc4b6b89790913e7fab2d17629aa546d72db14f3ddefe29d8e4a26d992bb613149857e38f44daf2a0ae51fd822df9514a516736c52847a7d5c03b8fc2a7be81467579e5d79e7dece1032c27b7a5005fce9a75c64a5c4851893dd6c7e16a3ce6193cc078f20e88aea604358e58fa93297ecd7447b168b0202f626be3944ac24c4818d1a5bfc1bb09016424755389fd5fb0368c1b1085d0213a29b4cda0c2ecf4c2c2cd63fefe694185b5cc6591ad9c7e00cdf5654a0bb3e414a74136cbb776810337bd110b77fc262613329c61699a61bbde835bafcd9310a345b062dd1a45bcaef684611a1b1a0e50377250184754ed3d17e591cc5b72644546c444691f67be8601b32e5674b767de061061fafd486b3ce287ab9b3518958f3e267a5c1d6566a02de993f36406519f57b224d6fddcdb046868f8612cf29d2963d8895068ef8e6281e091bc826a0182cc351637038832921bbcb61dfa8ea2b807ee6e5c1b7edf10bf3eb07f7198bad686a0dd3ed90d1016f3cd9e0f9c460e336768420c02a4e28fe9f0c82b7403b9633e4ef41e48b20ee19c9eecac4ae894294f87710d40313c4afa74da32372c232cd43d1f3d454d076e6521ba9f3d1a4581f26121b221b34a8c19380541504cd704fc6f5b2175ac00af6461017cc946f1b36e6fb4a7196e3626562f93829e2273ce3b0e7e44cb0767f4b43b298f4e369386fa6c0b6dcf4d23dd67094ad7d1addfd561790cb6b9063246019da995638dec7f15c590b3efc267c9b29ef50417585268ca5d471e5879829eba53848d5ff06014086ec64aa3f8d5c0a9bc407ceaf5db751613ca98cb08a99b835a434e8883f9463ef6ea9982be41bfbbde66ffc476bfb5552d370086e5477d5d6b201e8e6db4fc5dc75f68deea2808116ee4f897f918fef57c22718c8c14a6b0952844da713addbc667d1c5a0372178e3674dae7f8ae1f7a1c268bbc896728100742149e6a033aa38646e36711a54213ef957570872d76338e48be973e202bc2050ed9619f35b1924d1600092bf5829aaf4579bce6b479d8d73df592929dde798795fe46b04395acd121655cb17ae35d4830ebd05a520e0453097b0588f38f1e4a696a1a94010e75f0b29b8b11bbfeb8b35d1be82c25980d7f2012e484b10c4ef317546de88d8a43e1e4b280d5e324688c1cc7049c61049d4885ad3b8ae26cbd9c810a8364e1476a076547dbf6058fc7d3e19d8f34c0917f445aa0d20aa8d4362bb4175333ef263707f36ed4e11057c138415c192b838bfc78e1a1215584981934948f5fbe30c69e12bfbb0b0e3b11e23e7822ca9d99439e777207f6fa3974c464718690eb96d973d11b45c703efd47d0952be1f66bbbdbb8793fd3c594c0950a06e519a963808391f0c96532f1697f6b8e74aaefe1931b5a96d24c5dc90a144c94765d4c93a7d432f8de6b7bba34bffd4258fd6082f7d44ac0ac4179a8a36b2b10fcab74f9509812247308b916fc880b14b897311df13d8f3c6bf92a294da8d98d74e86f2335004f653944df3cd81b4d8bed18cdbff78ed89f475b3d16261bd43799415bdc00268b93ceed27b470afeb3303653730ed684f00d8d03f3b14f50a00cb94519cac5c2bc94de1e377051c2147738020cdfae378981fa89ec06aa8762641608ade5c87079dc70ab85130890009313e3a205a345b20ffacbeb6c180df52331956384b790c6790660197f032b2ffa22f6826658e56ae2fa00b2f46a6dba088b0450be54b3dc815a8211603d89eede22036ecf140a3cfab021384a68479b552e807ccd43f9e70dbe4b3738355f6c574c317a6322c6041acf6c148479e207e5d5d59c8191274979e9c995f6b0e0f140cc936bde074e828262e0182b25ca5ab793e2c57d9cae2da044cd23af82fe1efb11e33422534aa06e3a0c02a78eb212dc3c16f1b4a552c57724e98bd969a80bda175bc006eabf18d732143d575b09ff36f9af470a62cf5532d400085e05244710a5a10e57ae7f78288e0104560162fdde8e17a2cbcc4e956020ac80a75a13cefd89f11587fe825ea5b0d5cb5c037ce49da7f8106de179198b707b56e578f4c14e3cc729e3a1d61425fd025c6e2c718b4f7ec0eaa6d09e10a35100ec7580cd0dbb3cb5210766ef15bb8fc994ad9957f4d14edd81bb07581bf5da1e5544e2421a87d519dccbd11b03b65a7adcc88eadc7c8626152b6bdf5656822e307b973113846af2f46a3f5d1f5e5ea82eddddc00d0287f6a97b3489cb205d1dce23d72e2dfe6a32f3b7ccafd15a6f14117b2661a21f69a91b643b34ab5d7cf94669402a5c20b09947cad245a598a974378c3444a5565bf453f2795754cb48c892af3b20502595e6adfc42c282aae88f630e270012525376f5e96765480dad06ed47b4e06cf6450aeb96a45d91fc9736865fcfbb4272e11a790aeefc983313bc08e3bfa95d4582a250145c2cd4cf8f787119d4dfb2bb94e024b1588c682f694c7dc0071ad186e8cbfcabf68b62a1c29243165e6fdce29f018af6ef08889f77743074bd98c755222e20c15c2e74b1ac81f4d85ad31cd4cd780acb7045608ba64234483dac3d59cc80385827fe99e92bd3b85b0fe4edc6e647549fb14089dfa1651bce506ca80c0d1a059193b9b1078b16ae5191e3d3ce5c520153a7c7c4fcd8576cae6bf2869fa284b7d2217ba6c6d83297f7b6cc142fbba94102e67d1c1d08f5b2934b9822d9d9cbf246fbc1b6098f72b2c6a7e25a5fdde4a9f7556a6fb30f97b4262e295bcf82ad153adf4fbc72a0b296082e818c05a39f92171aaa5742de892a5da06839b6ddb15ca07160182ba698e272720eed92c3eeb13f6a161e572100fd3ff381c879abab7643580da33142ea995c666a1588bd5b39f2e7406f755bda88561c585c6494af3b633d2c38d3c07aabf1afcd53bb3e4a03662df7344d981d1798ebeaedc6a07b3d5458efe4823efaecfb3ff55b8624510b62c8c234356a80f48ebbdef97ea7a7300f2a0220ea98c65bb056e5de82ce3d2e68dcf6ec9a7c4f53bc615934c1f02da8e1be744139463823d18d0ae07a6809beb6cd11b92583e932005cbb1cc00ff2ba0f0079805e28c86e01b1d84ff233e87c56c73547e0a28d445c5a134d7f471e80451e30e28d08ec5bd5e40ea84eaacaa4522375cd6c85bb0760aeb53a76380f1a50bca384c321a5936f5792688e6664c329aa064c5b0db60285fa2fada948f327be9bb154ca2e039e724af6b9bdb28e3f4bab322a92e5cbcdc68366e7e5822725e755b938759cba92eeeba839f8af466b93e26888c6aa29bf737a0e453a33e6a1edb1bbccd81b4106a45b25dd7be755d8bfe9516ff7c73ba5ea98489c939ecea88589eaf4167e943a72b4a92472c03105064023d414e91f6d94cd6e277e7115ee0ccd3b42e807e1893c667319a1a6e0bd5bf1641acbaf25b54195109fc37a7992edf56bfc5cdd642543b00e5229c29da6e1769376310fa1d859d4ba2c41ab26831ca22b88e8981646b2d89871f443ec77b0688028d9ef25de165049b0d041f7d4641c0700b58023e41ac7a9000b25304800175debd4245d50b2b070cf873854dd171db1ef6439efdccaf12841d1c7f546fa7284e19cc9d1c4f132479bb040cf4b42f5a2ffdf117f6534570b96ab75b8d2ff345050cfaee2ad70c5404b651c4719a1308dd764dbc46ded5d610f754a22670ba570a1a4c1f4de6a138ac53e7e9b8b471b6291cf8e585c61b1cb46cfe084b905488489fa85320af22ff8a35460eeaaaa602bb1cd3f030765634db4ef27de104dd648427f8e89237aff729b8a1050465b6e2c1c65214df68b7ce3f5c05a5ec716a089beae6dc67f64a3156ee3ef5a44c7e40c0988c4502234c29b680f0e2f06dfa1ef78954138f4504f489b3d54c82709024266d9e988c9df63bb867de5bfc0cb4d9977496b36089a5677996731e3d206d84c8a8472c92d373cec24be6e2d82e50627861cff7425cdf52be482fee7cfbdab3969a7bf0e775073453bea853274c6af4a541f55fd1838e0e5b556d97804043c8f813942251a09c2be452c85761994d772b011a90e583ed9cb32c54dd24013a59ee718870166b8779d08680576ab5da009aaed0451558f44d63e78a0d02f8e027b7fe8e49f25122e99a5aecb8cbd1900731ee96b84da6f0d9eaaa6690d117bb3161b3edda1e4461bb478ea2eae76ea5fda10961e33e3c4891de897a5ae7ae5067734dcf4bb9cc4ee33461a3ae749d52b79535a417139d1dd023f51f18b7778341c6ec1fc74442cc4e3c892907ca1c6f649fca8b7d1ed1a0f2f81264edc2380f0ad31a043536b69925262304e2ac3c1181042214177cbd358d8888d0294181deb8824a517637fbf2a1f9c28d5f29bdf9c5e4ed60d4954c227059bcd3541cd72f41840d0215387b0420327ff7a40c391db53e08e82b1930cc2863f25c41b1a260458e1724a0458cc619eb9b706d0b87350ac9eb3f706a2e2f71e0cc92923eec3af8fa9ea509322986e995cf5ba574525074a500c2f027183c866ee71de39e9e1c5a38ed7e7b06cd575ebd57a3a982d61eed567284666145198eaf7a17548553c4db060b45a1342f19d934ca0f0d2043b1cbd1ff0868d8e7ff09f840e46903252acf7087501de8018cb1002e617f27aa0f968eaf253877599233f11bad42f4c3cc088002042a3d4d8bf84a82a6c64409c6945b482d306972dc9a6eb6886ad63c3befcc72710339009f1e73295a0529c346d6a5a03615dbe1a8252dc58faedb617c7f92c1854c87a2896148d7f1717e2850b3141147c5779a28f90e92f07df2400b61736fc9099239e0b1cb153e413bc0c2f462afbc4032d94a001abe5f3ad3b944bb8bb39c7ba4339ce7714531837bbd168cbdbbd743811cf3f224e6902b03682d04b2a6906f2c3be081335db869d764a4b6f45a8daeb06032c70ca6a08a68499222fedaf36ed624a790e80b695d4ec2300a99baba74b4eab292009035584835542b578c31ea8011c08d808aebcd379ec1abaf2494e59fd6426ade565d3eea2bcca786e00c31e7a50c2881ec5e83f9db261b7f4af1fd359e2232d12edcf37996d4cef778e62f2bc96cf2b860fab6e209d60b2e14ca6371738c2bb0c5e375cb54c3495603d65988c99882fdac917f8dbceb9591b4183012a57ba3dc04d4e4821424a9a107bdcd35fccbac391784a41fbc54ccb6c7da90763a6627b2938950726a05b8da97aaf2ed8e28605b23a109791c51863156cbc0748cad3b0b275b5e5d08f3c92269ec376f317d744a11eeb6168c168054ee5af2e94caa7f5d17da42ca8d0aaa4f6b368679c4a5277da40f1092febc11c401f74a1f444e8f899657a013cfb695085d8a27cc958220b76872e26dc0fd3ebb6bed5fd612e7a47f3b6c01419d3082aad9d1cb31c1f518ca80ee1f227e14497a7c2828a69cb71f308fd56f7c85de044f4fc3f6950364059b0e6222620e9a3c59f0472d90f809cc54603d2a336310e1f803033fd70f20f32e20877b7f60428e1a2a364fa2ab9e104bb1e0ce69309ecf611ab42b707b3fc0c3066b0f5b8a931a6983ebce7f14c9b3ced70fccff097d4901c3bcc1225256a61599390c8035bf4c616d4ca4d790aa3b716246be1d38f264012a2a84584ba4d7874079b6a84ce8a6fc1d4c5a49a50f0b9351ac3e772aaf8f77e391ebc42d207396f39d8806cf2b02e8aa3b515a0ae21d78478d3b91924ac49e312fc5c81b1c56511ac7700de6820b723f7b91fd488eb4fb0db081d00607a2c6ab7a20161584403ad8ddce4317b89cfe205b1c72e0fc0d70c61b50782d22774ff716ee24c9587c3be08166890d2be77a4b85060fdd70715547e83c2d7457e733258dcfec3fbd65e0c02e3e04336638ecfb1ff391dd02efec28abb7b6f327d748d8e241f569269a42e135ff6fdb2e4413ff0bc4b7c5b49fedf272968b5d859515c406974ea053f8fbabe81509ee2ffe9383a8daf2e31e96ba2b7f81f5b8d28c358105699eddc9bbb2779b80ddd0eb4f75ac2179734bd5e825f6e510481de6e521ad25acf64c8bf6620e34ed89bf8da538da1dc5b83747f9c4200f8bfc310e803de0c64f28034b5a16f2ffb7b26f6ed1c8761b0d76cfaabcf760648c75c0a8ab500b5f820c3e75adf3057f718df1257079cbb988308f3957f01bf0b358ac2a5fe14b14dae9d54bd8543b1af9d818ecff245deef6d7106664e4b52e6fdea222b6ac6a0c66e8d388f8f68057be73ec7609a0e7fec30582d1f517570f40091357e02337d727fad16945ac88180e7c9848599cae859544bcc7b3b188e67a53f9822c3b00c4836770704e0e524a6a590acdaa9a14f89d3256d57ea8b1fc1623815df51cfd1c0a5e9bcb25dba9f4802093721e79e9ce2560fc9324f48ebbf10c7ce16a142e925ccb79150bc16143bc7b76c35386c4b830c2388f0b54f4c1171cb007eed7d39654029715f11155d28e24e1398be72de0820a0102f5dd2968f3289cd4176b282b160bf969ed9eb189bb9e1a53467bea12a012a12c02b50d6c082d807e5ff12d76ebbe3d454c4381c73fd56173dada891cb381b1d2427454c490a4e745e31b2df8b3f7de96182aa8ebedb86627a8b5210672156e44734556355d4cfa2896a7d61a65a07a1f436094a1db86e95b63c7f1a9ad2599ee1d2332897aa59f8d07fc280c213a05cc74f4675a402bf5fe73416e928d3e67848e3f89f5bc447cd90c453cc267d357cbbc0e0d61fcdc69d8c43efe89e6ed426bb8ff203eb4f670da980a14ada9dac3a4a2596444ab80f82b2a818d1a92ef3c021a6cbdbe983125ecaf31ae4af408cd61e40622a880cc25832bb4e94ccb77c403d2ed559d3958e7407c25f4e31dea24ade8c2d92ae256d3248ae9bb0854fae4016bf86f3b91f01acd26beb4622d9fd10a8f1b839af5e984b961d0e1348d3dbe0243ceaa11f613188f4018176667c1482324f36b1dfdf206b2d7a1c035cc1ba2f532ff37212bf5c1b5828a6f6df422682499c016f2701177f80b48d4f0b467cc444c47931406a49c7499bd09f4ace21fd1a184c2347ebc2e67506b5bc5a449355c26851ca918324b58495bedffebf13850c491b97262780a83a1af4819c240b88ff3e9c4af175474024ca880cdd682ee0f16039c88ac475fcc0374ac20de0df89ec87685adba3ff25b3506bb07260cbf06e20d955e23f2404369b12d0868528848e0cb5d9db10511736c5dc4513862cff2c028911ad2637d2c508d30711937a31e72fc09e204072692565ade3cde48ac54584e29b4af2f2d1068a221f798f0a9a4a4c918d112bbc9c11038a2e8061706f39fe462ee136ed8228d180be6ffff358696cf53538370f90d228b2e1b76e123445726b5cf66295d91ca65d8cf3b831ad62f18872d330431ab1e62f5742090dfb7cd64aef6589be5c39c90151f89cae5f2954ec1d96784811841233a86005147ac2462e026e56496704d700a23bfadb268ee700b1b0614fe3ef2fb14133378d58ffb612f74dc4ce593dfdc4ff7ac8e2f47f7dd7872d68d8ec1d01654d7ac6cc0848a4921563c93a1fccb79fae9205186a9bc0c0a54b68e26582d89b853f60668be7b5151987022eadbb36182c6177882b6198638e1a87b58ceaf6b0401b0759ef57e0577a0f84bebb797ee30fc58200f51d514c386194f329820a33437c0b5c286c52683f860aaafc9551d9ab4b44c027be273ab761298274bcbd67a0e4e16b0b2c8e1a0cebf3b9d6ccb9990fe339c76e6606aeb359a4061711e6558d192774f93156cdd3f3d5b236d2e2d1b143834c12e9523ee4dd1699ce46a654c1c48cb528382ffb54e26e0b4407bb4c966e5a3a75c43ebc0b2e4e8a620c2478a09a1b973d7559c6909e18449cd9998512e60305ee1eb0a788e9eac6efa3f88762b4db9d15de956d806800523ef100ee031e5e71550753a2c984c4458ea4c566b45dd6c6ec04c56aa60eb06c570fda43fd308ae2c3a292affc69fe810ac3294123115e69d54e69363d206a499d7311584eb5360a0095a28a578c26ffdabcaa54acd7822faad601a75db761376dfe84cab18f192e5c3c863f0e3ad6621a55799688ad73fae077b269ee8229d629a9b1636685d93152dab812021144d4435c44dd408d2bfba5e90f7ae3fc34f32b2eb0e51e7dacb3ba72203dd86436ac09cc3c72b6c8f376f2b83b9f3aeb783efddcadf64b8872b3ad202146570339ed9b02f3c13c6de444885bf93f54be2345624b766b0a781fe5f50440bd53e1084329bcc2883e2944362449c49fba22c22ab6faeeee82ec48516d0fefc8b70f4c4c153a9fe9823ace22c78a6534e609dd86cd2c3b2ee879b72ef17716f3027548945c9470ca60bba36cf188277af799c28518278e8a7cc0c9ea5c32205fbaaee1dc010e42fe1fdb2a2b602abb8e072ae09d434f7a58fda8c9ae237734d28d239f7ffd41d6a11db203e740e53b1b87a36af57152cfc97c90b7c394a0eb01f29649c52cca7d349044e7185f0f224af016fc7a85bf9afe67dcc6774363fd45686f1825a32f3f8b477ef584c06124728be36e7f5bdb6970ee5e98f2a1e4186223ca4c03d0e2ac83bb0cd004005b2bd73fb19a683dfc187d681f5574915c37a131dc6a08447da5a8012032b64b273183662b9eaa0bd69ab8af4fb25cd10c4b231b52992ada568b41128cae0d62c9b314e7e7208af927c2fdfba50a21d2b84265e1f8de5368e771691ee14a079f7a92a0ad6c3bd0f762381150ada10b4338aad48d3b25fdd8f36a422cbff3615412d57c901f6426a47a73072a0fd500b7268d54415893c0b45db9ac286f84041cb7f7356e63b6378c74735a3fdd037a04d50a42918c82b72f88cf8ad73b06905c427f65efed408786324cf08ea720a1c3b23f3b7a0cfd9a609bae4151cb23ff0617398ce11127ab6fd573bfcba250f6d4b0c9d91b656aeb46a80ba2a8e1d6336dc9432872b6c2c74aa976c5439c742290a0bc8602ed6681017fde976e00ae7a128a6622a8f8a62380a6cb783a194c490b049437b6248ea02dfb5881e44a3e907d54a127212e567ae208d43bf903604a32d1c2107a7dc658d33928f1c15b25501c4997ca8971f532d3272aa903604a32d1c2107a7dc658d33928fdc4821d94c5e3c5582e2e733b57436473e2848cb6ffd9170d30b29cd4c6a86c8245a9ad4182e51188e7712ee08f958bc8ac03a12c70a5dca032a40908a9a80fceba2a84dacf820f981e1ca8dfc86367af28e13930db9b6758d6a838c311ca115513a2219a7b409989d032c3e286282ac63f5630133c8d15912c662e74058308588b64fb0b12e2ed33501c0f732a5330a4d496ba2d638f7f8a9c18dc26295f177f8a06e9f8a99d460393c906153621216a2757cb38d1e1ce8213e565390ef20761a919481bc526409b744660534539745284fcda993df7c6dcea54bc8ab988572e985c0da4b7c4a6c54f5fe6daad426daa6480c8712b17d8495ad1c02323940723fc667a2fc74463555779c5cc3263aef91267f841d412cacadbcac33e91e587a44f12f1098315b18a586b2392fe2bee098d9180491158a4fc77bbd0402e1599258848f3bdab7b1f90d72af66fcfcb7c0a916963b1ed73ce3a2b73c0182aad639b2b67cc8a9582f411b080bb871b8ae886a0c2591809bf044f28685ec3117d6cf64374434eb022f0c1dcdf80b18e113f2fc62ddd7dd5f45b2fa3357717ec05abd892d8dd321413960fe6d5aac0209e1839fdd60bd9ac0ab1653be84416e261df7397820db43d3782b6eb39dad830d74cd5a4e79481d13d597cc286fc1ef52f5abf4501c33397248a9903d00929a6c0052ac88379beb319d4e7d6de4112f492918343bef11d5e9f6de324aeba3b5f584978769c06449cac6ef9aacc7885d8b6de6402013c85dc15b544d776d8be3484671def078cf05725ba8ad607d86bd7f260ab02f8cc10170f44aa06a146d31f76d5b373821b8479340663ced9199737dcb98b4bfc4be15426995ba6777432f5448136bce6f7ca7eebdd90dde0454ce231773443b5f9733972e63a42dccf5f7090c778c49b63268d8b0cdec54c16ae946e0b4bf051b7629030ff5d623b069b60ebad7fa311870d0aba6382acd709f8130a592526b7b9b66adfc199ba2a3093aed9f2826e7aed09cf44358b147068c200dee0573996d56d3fba88680067b1046ed366037a8247fd0ca6b38f22aa0581e17b66e8c0268d7f62bbd49056e78895ce8522f20676701f1c84a97f793adcc050ebf9c3abedd822a139905d80485b0d302ca438315050bd538d902bc066c742b98a63154accd640b288f22335f636bdd0786f803917fa67d9d0da81e42367b186a8af39068e71f4463cfdc8fca144c828120f2905547652e0c9e84c2076c8cf821b7a600cc588d9337ad15acfc336b2f9f2c3ac1801dcf0b98be0a85f2bae43e40d0738eefdf399ad58ea54f07b3fa1c3baa40a40b07ed475b7df21021cec87426649ef5b0c0ca309b2f968627ae704939653cfaffddf9a4e8a187e0c91058bc5747af0747e3a3366e59c91b5df90e7a25baab8ec43763a63764bc0a14fc4d85382873d7a13c7bfc6c1d33096bd512259f025c6f7280ff9fb9e03a026743b1b70516f44edb96805c30046daa367cbb5413217bf7762e91009ec022dc93c5f012c43e54cbf6ee49c2b71cdcc98ce60eea70ba2e93398e0176efea7932c4534df7189447882997b702991678fabfcc0057a3f9bd7e891c051ca6f8a56cf32480ee3739d0a4cc6618fee7ffe440835ce8369b741812cc0217784d9238ab98157a05a35d11054bd6cb4914ddbf338dce17a28c5811e41a72368c8a4711859154c50aa26ea786e500d5f3ff362d90e5de4043321a40e0b6ccdcae194df7283a930667a6c39da91e6090c71484c5a772ba72885a52105fa7d7e7b2b1b5b3999aba25e014b4d61e20f2b9f094def0ad3b95922ad053fe79d69bb13d2b134b025385c37c8323ff46b48d34395a5128ee80392f87bfa88eb69a894e8a448f3e14f710bd5383cee9cdd96a75792c26471290e221af6994faf6ed885a4afc42dcb9ecf9c95bf0483d88143b0a183bc412959d2ade1dbc0822b4a0b9543bcb43eb6e64ef1acdc61e6cdc8316b3ef57a4363bf447bfa87bd0609fc7c3dd042914d4fa0f9c9e15f30a3076f0b8a7cbce3df1eacf12f43511f1dd10bdc8f251a27f67d8e60c2fd0cdb89b8581281d09acd0505804437064f73e873f08661192d018865ae9c74ae9503d59996d6eabf8625e90b08ea578db24d5098ecabb5dcc3039f4af49ed018b1ec36650c3647b3115c455c48f964d670e79ce61796e523cc20808f516e5e404af19fda2c1296e150fd1d730feea4b5553660824cb4ca34759b4064bbdd53f5f2a6670ba74866f292d39d5bff6b930ed412c543baa8135c3bd85dbfa65503d7e34ddc0a97ddca1a35a96ba8be30981c344a5c30529d08414536d5dceed79e6693e936648f7360a8f033627fde99c780a4975bc1421f4e85cbcea001be9f81759fc67bc907aa7300e5e1e7e7b5d0f702760f9015d372905fa25b7fb64c3a99035f332c508f0efe99452b60b5f786f213f04b521c88658a5c1747f11fc57b77f89cd4c84127e823fe1554287887f2c0cbef5e4663008a5fa05db26ffed09185e9e25f07d8c03a509d6b3291155dddfa2dbc78a192b21d16ea7bef08d7fb66004a4b626876e089450540e4df192530f1677417aa950419eea333d048d395cd39b6249f413f75444a2c9c45d9e53508973c3baf74783e985d01d4e5c60e73bbd452c9b292a600f570f9f9508e03241a9a921f6e408fa7a6a98d4b3643615ec407ad5e16bcfe160c5b26a2eb96528ef77162f96fa936e9213382faaad91933884bf0955aafe95254dee87ab4716d4828ca8ceffa16e59fb093ae111e52536080008a277c92ef56d67f2b2490292a134e7d15a6079cf9d03ed6a29516a4a5803fb344f0e031a1bb002d6eba5fdad86ef23d7a47012ba34f62190d14a2887d00a37bc295768d0b5d46f8dcd71c539950e7086cdc78236f781c7ec8cb392bf3bfb41ceb131b35d8401db0b33185c86744dab2be3d8764ae8c53bc28aa90ebf847a9fc89b9388147f143bec4b46a1084d46ec07f92f2716214da1c66e3e97a4169ff8ea67f720e3f1ba926687aeae4150d560ede5192921304aa30a96737d9a744cf8b120b506682f07f23b822e67e7420e6a0f9f09f808e296ed0171f821537e82b057d7e0b3ee755f41697948da46752400363f2b189298a4489cd1a62d8b2d5d6902ce8fa28e2f06b9d32856d8154b53d54258732d1c429002a71060175bb0b5b52df4880518e1ffa17ef475415c212167116332539397451aa42edce289d4a50d08d943ce8a1a80539917629088dc311651b347a7a660cda79a66173366e7857c978033ea31434685040ac0fe9265c8d3005d6cd31b784f29043fadf69454771d5805b61403a83cb816617d5bd0439cab7027ab436c6fac529b770ba25185a4525b956b38343c1cb95c01d86fd5501ffce70854d6c5cbc706eb54e83fa647705b43fe96637256ef8076cf9744e1f2e6bad245439d16acfc2415834a1d817723d17667741990482d2f1f9e41084a85a098af8767b1345a08f26d5bdd07b8f38ae21698b7435a84541ddc71d6e993477f534e046fb1cedc199b30ebb18cf61c06aa958cd03231693959d4b36545034af127dea578ba480216a80477cfbacf917c0124ed703c7423499c3188c70646e4305f09da8a09a9ba42e100a55653da43d43a5f2bb7489f21f818415bfd1088a12100bc9eca0acceb5dbd9c888b96c13f3c467c8d3b4077b22cec4252985615bcec2f40fb60060817b91cbc1ee17c9a06ba79850337e74d5dfec1c446ff6613906e568d7bb430b44b2efb00575c0274371fa1ea640efab9f54646e46910433450263503ac420e08e9de2a7bce3a917a973a8335abfd091175d391cf61fc149221fa8958d01aa571b08ce6ff03a83f0011bcfe78f073f9c8ca2a5906f8cdff96b48b83cde9e828b6197bcd960851822853262ab01cdf7825cefb33c74500eb55a6c2f7bd0676989dff9aae0185f6a76a3899f0f42c8b90f637b32a6853d3b05d8ad558dd148386acd27729521a94cf053dd56761ed4648b1a555475f12b031801b50218f61e312d39fa9b34e912b2d9084b843e7d5327a103248a9d875c61e7127d5ae5e6c8827f1582b55fcbfdddf2c09c375d9c2e974634d5345320078cf49592f30237917b59018beaf5a74d3a92430817b5fd602c1a53f9bdd491b6acb03cf17faed20db113d97e1935d4ea8f441c5da247f93240b14d8d90a2929494c9453b8a7dbf9ea8e3aee3ef4a3f6cb97dec675f02e055c4b529ab24e9300bf70be98b96bbacc30c992c328c9690674c440684afdd1e4f172b2d4fd60024e7be6cf89c45036476e983aecc3fe83c3069ba7088f1e2882212958b4652f43c3ab05140702194c980a6b00ae02bc78aa7b2418f73b93fe76a6fdc5670ea4a83bc789288d7133db8f2024c1ad4165014265778d66248b03c591869414306358c1088f42321fd5a0da8b55180589822e4d5c2e2f193f49aba2e0bbb134073a08dc7f3b264f996e3d735a10006f1f1c2378d796251a7f330c97d3dec159816d1a83c9a98128dfd0a8df9554163b35b616d786360483561e9dbbad7c5cdd00150ba1dba0b40918f2c60e6831e3326fd7872e82737c2b4f132cfe252cc522ac72213732c9206f4c8dc809a189330b82c408bd0e1cbb1fd5c55b12d7c301e1790b15f60c7ae35e51b7c44e174b30b0a68c9b28b6d7577f748b389e91c07483101763d0874d5a92afba4e3595b9982fa6690c8966c939d1e8576a7b17c38b9d6d4e3e7c8f99fc1c35011cfafe02a423285c2694b4cc421f90f300082c7e9e4065760c643667684daa0d8a4eca50c2913441242ad7ec9c5d4c2aaed5cacb64fe5286119710986e21e8587c20ab65815a2fb94668e74e6a537cea0290755aaad0f4bd5513007a4e0886d9da824162e39a7472a6b0c3b9dab2e72ad32d73704b913134427dfd7a9d8d5fd7db78ac17768a1d56dd0962b9f0463f16e85742b418f09f84a0a6960efbaa44e197f5b775766803d5c8d77e5a037d59e252eeb781cf5883b670e0414fd9d2639f860ae631fa655328f05bcd77d751d0ad58f8b400a04bbbc13f1a22e8290e90d4da307b11dee181c39baf7a9240562bf8722612b6e53c005adaa87b9255c15d9a07a4393a81d65f1e58c32e7554160c024a30a46bb8601f589e86a0c4b33e58a84eea50fa1c5ac3198354a81db1ce54b999b793f76afaee2d4d1dd2d239d06263f88e782950bd7b2964540e0699ee458c0fec36ae9a38146de5a2ad8f845ada403e526611f244e930853d4d4c7db38fae71de9e0f7c69a569afe74ad83b23aa0eaede5d7493e4de40cdaffa8d3da2d30326fb1d372cd566d73442b0eb3698d13af2b8ed3dd9e56d763ef79a9b09503a0d45fdfd2ce22c3fb9ea97b154370d335478b83937f34bac7305afbc0d6561781907ce0f6254b08b7e0d07ba3d70c1d3f69d0cd0880670b11654a53bf154283b86ece0836fb4166160ba7a35b9a8f32d7765b24a81008940486f0ca854d7b03a01600a576e34a95bdf66963c0533fe06bb9d3427f5ba5e53a18de8ddd4e987149e73d058525c6d712f3b5d906ef7eb3277ad6dfb04fe285fcc377e185671a09d647f82e5d131755e9d646b374fb00ee7f7fd7a5a969157295bb4039ca982e56b401a5777e9b1dfdde79997e16570c42f334f6826d8baab773a215b0f52e062de49aea783992b615b647bba36b5998209180b6242132dea6e0d8378019f41538e4d33d5511eee3aa2fd8437f3716bc4bf67f3f2a93632802045d780c229271193cec98ada9cce08229d298add9c461147c9f1bb2f10b9d6a931512f843788cfc2cea7840ae475708b962b4e035edfd269f25e211361245cc02445e90164566307e15f571fda6377344a16c265d0bc594f22fa489fdd653a7030cc32632d04fd84cb82dd85eea93b807e99f1ab91bd0772f185158794c54a8bd0310cc853cd3c719ef6ce9630cbb28cb7b930654777e7d40850f231a3c7d83bd5a8394e50aa14ca11fdb55620f4e6ee8c60957a1800381d00a4bdab1cab4321c9aeb4ae9c865b115b33bee8feb9647a1190b7aca8833581592800da1deac7a7546e6ab3a96b5da8aeba15163e428b4438ea7a3d21869923e40bc017a1b99d8598a46b99642b9eb0146ffdc9cb1c4ebc6a0ca56797a1620cd172c0c36cbb091a75c90bdca28eca238d4263fab51072637a0d6b2063388b52a7f095ab6959493cdc814e29773abbf2eb51e403e313102eb21b006cd6cd580c2d245e7a58dd943d10a4ce673a13e3ffe8b35dbdf0706f72cb5e1386f3255a4974fee4f68b5fc1f03b5f7516049493776356059cced6eb28978a770b3092e794cb7b6181dbf7a4abbdcb0954c073590eef458866baff94d3a119976b5a65ad506521536516245e66b32b3dc0c3b25c325a9be9e6866cc4ac9cad9121c2b7b57314a98df35ee165409258d220cee4492c4987d52883beac5b5d19faa5972f9906c1c77aaa71824aa133bf1b6a4bb8aef16395dc93b76b71708347dcf55b5569a1831189221eccdaecee6d69466eba454972617fe3d8197ac1929acb18b7629432075c7e0eabc6e78a9a1dc8dc5cab49e961fc88554319b9d64a74547ed1934a015756815b23cdb5278a9e65abc19dc9b0ec4beca9bb7796956c9aac4d83a3baca29acb5c4abbde7f8ab0f2a7eaf48605c930f5b0969e18280b3bfc7c7f81fe9deb85d510c5a28cc9e8fd98450ce1cc08684d1533c283ed2e97c8e7327fb5e53756ca8eaa4333367d84ee4841975eab95c17650fb6b169c8abb2906549e99f23167b84edba95bd69cb23af92a742c5f6094af6a177d055c661c1e22aab9879dbd4e164504710982096d21f331af9695f776d834b7da611bd15131b32205a90cdb8fb1de26607d5c3f301535d2e1b6ab1f76c74df50c4f4a4a8ca419d787122508a363942f756d62808635affff30958b0fac384b55835a25daad6db8a6c104a0bcd530a3c499581798c740edff1fbdb49fab7b173d5d54b9907b55ce65b9cac996102121bf96706f1a36aa8046430c084956b1beffc6384e34ad9420eb0b5ddc538a2700cd6d580f24126b8c9360386eb9b254f97dbabd97180b60912af3e1e20a0ffa02a9c6251302874f95d74c9cebb1cdf52f1fe27210755478f1a9e4fe6125bf98750ebd19418709ae2515b8c52d35ca4591296e753a3752295dc85df4b2c3547087ac05b580f97ed09fa72dcb12d4f23cac061a9c7086a85f6692f2a4e0b54c7ec3e1895e99e86c7978e81a58a6eb9810d930d4994bea4d4191e1ac725f995835d0ea54b5346114c0b44dd3b93b76e2669cddae8aa6a11de12684e193c76f3cafeac87e9fbf9ab4aa0d1090e38ec95a27bc55d15e20f1bf0f7e937d94169d3c32cc507077da374756aabc9dd14407d60842c57e9ec218c65aeab891f7cbe1e897eb2999cd53f6ad47a2e68d2d0653c6ef5e8619a3ae5b036d3732b01826fec80555b0ef12595be649bce9ff80778caa1804341ac3ee38a64a705e41cb44cb53d30b68bf41bb70d935cb7373f7468a39b5f80eab4f1005f051ddc1240681803a2e0f80f94ff9d76a8c434bc656e121ce949641ebf760e887e0e5b152377a78fbf4b789cff7ea36f6397fb68bd25bd30cd91d560ad77f55d7d39b2f3053eb044f7064ba7c7d00bceafc62ab0480a495f20dee3b32ef4d8359c5928fc9710f57f561aa4d73164fa3c614dc46459a359e9723428a6b095e3927a27e69b6077c11e86d84bd3ef9be8edb9e635b611a067788da14f63ba1b449d3c660d7838ee0451a608130810f59785b7dc659c079bcb5a62d5387b6fc820ee418c65340234150f41d26d09eb2834a16387d44a268b7136923dc7a47dd13395402302138291611a1070f3790cf94b8e7a75d46478de3ecdcc1b801dcf24edce5c93e8c7372faab608cea402fa8b99719162e98ce643cdd82fa169ee7f230c100194f679d161595f590ae8196a46d699a597c5e74191332ac028d83d898b4b2c862aba071600b56c8ed6ee122d30d49bc8f6dbf922047f06b78da986ee72d3b09837455ef17c00d18719030209a044842af5d4a1aeddb3924247ad242d217a6e2d81bb017bde3612380e36c0c7d6ec1c12cb3d15c1a5b39934f3f0f4c8254ac34313d42b4f0015ddfe0d8fa2038ba00f0087412f6f4d903eaaa83c659204cd29a0e892ac8189009b079a0ac5d347ebc7411dcf41cd904b098e9a6cac4ba67b06be2ac99731fe9e53b314ee18e9fdc0c7e76d12db70a5330cb7abdd4fb9b0a0f4ea091d8d7808ecc6fed4842dade6d6defbda5945206dd0bc20b950c8f9b728ff7453dc8df74e9fcb55f16b2678f307a8bf6bcfdc09f2f8e87b4678f2335d29e30ace89d6d5bdfbe1f7d3cc8ef04fe6410fa8db73f9ab55653c727fd0ee9316acbf163c539c897827e7fdb9f02a24242484354c443473ff690f6d4b1d35bfc5ad3a2b7684f1f74f416ede94bf4cef63442a2b768cf5a12bdc5dbd057315f93d0b70caa988ff1b71f5bf6ab9b1fbf0ab0e3a04f8e266d75eb15ad8089de7a83d082b4672d8edef9edd9c3851762dc36914f155fdc49da73dbfff21515fffc1125ed69e30abd457bd66c10fa467bf6fc68f7f7e78f195f9beb27abb568938fafbdf5c6202de8b18ff17d0c3006888a78689441dad3678ddee20ca74fdf4fb69f3ed7a2ea38d29ea695de39df2cd8f9ebd38fb889f4207f93f981e28f2229c260fbe9473b0403a571fa0b172d6a04dd6a650164fef8f4d86a45b29b05458f5dbce8f721dca7effe9c093d7ffe8c65a538fbf44883f1d86a3e3de60f0ba0a09b8b16fe023d85bc964c307ce9c69eb278311373f26caa5e62a1166d76a4cb9baaea25cb52b53a23e4e4e9040ac168a3ab388154015052832aa1a710331a941719a494a25490148427f90b36329e28629630498a22c0111a17472e5aac296b5a65e058a8a32419e48e08ca05ddb6c81e2a686af8cad95d1022322c885800c1197f62a0734317111d06e0883071e64f560c082bce95077dab09c70501a1343e423e3d44c082aaa0d87ad0b59a84d668e0636c4e9e4e9fad9646c472fab22c10a4057312741e0adee82df4a4932e14f3eb4125532cc440484c0a333cd814f4209a01336b349f46a3995adb6cb091e660c934c28e68232da9c986f5397936d95e6b6d7b307f8c24b77e9244b76eb2bd1e7113b08025e7f5a78938d065c4fcb3d94c3f28922439f35c3289a853fed937cbef440e2173f26c22bf2c4bbf3e922e5a1ea235024397990fc67cdb9e24eb055d74992fe10e42f8319eb8649235915f563454d0d4f0a58f9694951f3c79438a13fe5c14a1a7988b3bbf48a21bf4cf9730188ae8ce2ffac7cca02053db6c7a8b4f92d9c7b3c6fcf330a319868561c458fde2e2e8ea3bff6b0141300c413b200886a218823a8020188ab0580c268620942847f400826028c2606208520141301461b19124c7184c0c41284d40100c4370863559d6e6e0c308200886222c3692e418838921c805638b021c2a200886222c368e3198188251200886222c3692e41883892168050882a1088b8d2439c6606208fab086770412138c8003826028c26223498e319818822d8020188ab0d838c66062087e31d303570d5280a018100443510c412d2959acb5200886220c268620967c958cb05672b6a4201a09ecc5554451eb5a1538d7f08161a8b5691ae5903f2a444241224c14b5364d771c6e4604c307d2a084644906309c0acaef36233c14a7d4355a554b870f224cca57d741032c36432e9794a4e3496c8c72262b0b48859194e1034551eba32864190369d381442983413693c291399b9199997e21c8d4415bdfa6a6b930677c0b558b8e7ea0f14061f2db9d8221dad6acb5f538b9f13dbaf4f890e245b22c7cf58c79dae727ca26817a253a3fe60a57e10700060d26900a222c16838921f885a9edc243422c00b16892f4c5e2c6a4871b09b6096a914296a300b271f182f7e555837ae128d0e9eafa71740288843e5113b28e6a6f501849bcd435f58c78efd15fa2310613431c0ecce5bea4a4efe104865009efdb8f887efb87222c168389ee385c2e0746280609b6a4201f59316490dbdf2fce46958c195073b8b80cf022b55d36a09881ab5bd78b458d0a6ec888d015110f9d211aa458a49c52f1d0184da306910f0c45516bd3f42942d7201a62253483b6be9d68841b64259475e4a6166d7d2c22eb15910b9941dafd0e5ddd8775dfe75b28c8268a62a835685e2fafbf5db5e8fad861b441daf0d5c7221b454435680c15e166c888215404033d8bbca8e8858ba216413716454066cf8f4f91ada8a8a8c6535444d3335951498e45310c2b128b42f0cbd75a31b2ccfb0a2384f009df1e466ace5f06bfec7345c518b41597f19733b618e32f0cc3f0fcec189f6f6d45f35358327d19638ce23716c48fad78cb1fb0b768dde1f362106ec57d5e4111843baccbdea2f9712c78aa4ee3a13b6a6c9a5a8368041e3b6aabc5b28cdaf0cb57666bd1e7f50b4ba68795402a9c1f381ef4b162582c16bb3f3210adb508cd1954e1e9b7f5ab2392897c4ec48a752338ecd543f8eb2fba4a6ba7c65a777cb0af1eabd8f3b50f185d8cd94d95afae598cfaea8858d9d7ad133192cb6ec4d321f64e6ae596b33ffdd357cfe201c67a91f687c577eac0d33b75f04f5f4ba63bff64ed054a6c7de36caf502e712598b1e6b4e7d1ca21e1491a5db12dbd7ae5d272f54472b8b45465223944726a122d7cbd13b6d28170ab77a5c5565aa2b95e5c75ba5fe1d099f34ef72b8c295f510e82befa97466fd4cd6f1094b1d2680fd0dd5b74838cb5d58bf22ccafc568f0906213a052a97926e510d546751e66b39001665bea21de03b77485fbab804328544dfd021f24e98082e6d426aa503610dd1ea4ab5a8665920575f1c6c3cbaba9a1e0505591ed9b3ee25f92a0409c5a7f8f5d82d76ebe2f999186034083f46456bf46327e5f7ea217acb6de6bc481e798882670ecd249f5f14337a9474912a7a43f5f56f8bded52af4a55b7f342fae7ea235baba045245c7d9763d51e8f7f4c08ad597ae58dddeb0a2b516854e14feb0799061d9b18ef4eb4a75c7b7245a1ea3c740188ee80e551f616708f3988ba2e33b773ef4fa62183bf3199ebb5e81e8d12974635703f179ce64f6ea65b773c223788a5374ce1f389a41416fddb5cd26d61d30b1863504bf167dff390a7e199b19abada2eb97de93cf8edd3cf9fcd973ce39675c73ee22dd7e546b248abaea807c5ada7afd6ab355db145d31e6b1f1b745039f112e2dc03b63f07d463f203ec6d6b1cd85258858fcbe0f0cc51c826ef3673bb02c8a199fb82f7f19cc61ce2188d1fdbd750c7bebf80ef990b0efeffb6c1707a25b83071dd5308fb9beb83bc64e5b2c86da2eeec2b088b7c9841d3c9dbec7a807e43b7d9f1d8929303c29b94105258810610e09e070a0c9131f6ca8f22543d756123cb0af5f9070011381b11db266eb637cfdb2a6ce4bf13dc94b7c59d3c63c0287a10b5baf31e286c72e9ef9b2e68c98100e2d872b46c0224393314a824c21890af3c418a85eba715bda14319bf1f5cb1a2b0f7efdb2660a191e4c821976f1f5cb1a24546cd80726358cef92365dc6d72f478c39a2cacce7a3d511537ffed5d5de6eb71321ad3ee298ef7b64088eba327cbd2d7cbd4b9e01b784afd8c97f9e9ea0efeeb3aa439f7f49b09c880b1d34b3b679f79fdb337adb282b3b84ae5672be5224da7efe4da93a06e04f868a141b7d7f5bfe237d7f3c7c37fce79f94e5619958a3cfb1effb3903b00e4be1a1cf2f896e3da2dbc4e57c27fdae5a15b73396b24c2c0fcb42354acae54274e370eea66ee13fdf96492dfa7ce912000a7dbb61ece85fd466b9381b75873effb6f8e520f427fae7d7223d114febc41a7d0e5a1b55adbdfacfb78dcfb78cff5cfce7f3df1d02d1ad65338b6e37efd045b7b9b1549435faaae8ebf67370076333067d3182ca08a9b7f1f58b9aae1f67444437e2292cf4eaa0db12835a8bf2873dcc0e3bf3cd915d3cad7c5e4b0c3e70c24ed8a221f25969d17935594ff4f58b9a285fd4f4bea861f2e6dbdcf6e3405e96a4c39cf4998fe4c9e3b3d33a6ceb615e3bf345cb8bd59734551adddac112039893a4cfce2dfe8cd44ebaf6d9e83ce7a6797501fcb88c3cedfff8d21d499ff1f8074f3a585e30732d7318ba6f18d07c84b946f74d865a40d35eff83d74e6edaf8e3b073c39c07863ae11f7f7c4435f0e332540335daa9cf4da2f5e26c3eabc16a36d33f8795a5e93ea6fb983e331f67a68f8f8f22093b7d489f8d2efa903e337dfc73d1871c7d7cb0d65a6bfd5969b7af7d66676e7d36d32e3a4de6a4d7ba63e6b4b3d6a2d9c5914fb3198da983fbdabaa875e5451f69dee3e4b9f5932e3b37072f9b79bd48e4cf9c8707ddf9797e7ed02dfeee80a579cdc76775078ffb9cb516f1a0fb83e731d19d7f866ed2ab90e741b7cc6bfd9e9acbce9ad334e084bf867ec0bef6d23fadb53e65b4d39618f0d09c476b74dbd72ec3a505349fd1cefba4b6a0d6a2d267a8588b9cb0fec0eb9dee8f95413902c3300cd9643113c23c488e6d98b760ac977cda2e8f4f1ae58f5b83b4f14544d6aa8845244f096c8045a502d2981b91f522d9186a44fa1c21e64873ea06699220e3207d541589d70786d1b64bc268872da229384b54c437363679cc1631375ce99012c30039c9534b5828302242a987a423ad9c636909ae079219306e8821f44448c708326a5b44d447095c78092d8c4cc82c6a27001d2911cd9a14e24f8daba78754b605a1add78ac863f62f5bfca1d9317ad12659dc8546575ea3123f1eaf4c25660291edbd3ea8eebdf7b2003267c86e16ccf8ebb1bfe876fafa8382ffb5281346c626229c8b33fa5e54b42a8cd562bf81d122d3ed4aef7cfba26d16a67aec18e78cdeb0682fdce78babb72b7ae3bea2978771bc526badb5d65a6badb5d65aabd2510e27146492b8cd38ceec3d73cf7cb5f6beda2819df9c315a2f95fd8bd12b85ad7247f9d6afdebaeb1618d65bed29c2eaada297d838d6b2568fd121cbb2de6a95b3a72ccaacfaacd22ad5d72b7571d5e9d0e9babb2e2f595659569689e55929cbebaabd2e0daa3dfa9a735f1d5d2fc6f90b41318b22be56cc1f1886620c26c2626349cab24c86af958d6459caf44c369b694dabf1d8b2cd86afb5d1786a359b4f0fbe3ff9e7075ffb736f35cb1ff602fc17ed008b5b519d83be6c3e3ee5007eca016013971760ec40e500608fd10ee87cd15a8144cb532dba29507d298871acf6e2fc8133175974582b2a8ab7cc47851e67f6e25c327d33b0640a4b20e0df7baf682b2ecbb22caf156d4cb01248f8622dd24cb1b164b205e952a6c56bed4c36b37fffa21d9881b29b05a0157ffdfe0e2ffaa5758e0897c355512766d543b6b7eac683def9f397b67d56e8a38babfee233552dba2851153a537d69a18bab6ec2c410344d99ec16a44c4797017159c984bbb89a45f15a5bb36c37d93e9cfb88c220101def459b60315ce77061dc27e644a1d0f5a5d3f5770ed75fbfbdbf77cdcd077ddd668b2da999662510dc8b17a7358dc6c35363ea29251d9936bd86c9a79ef9f9314d203104028180803ea08caf05aa3eb22d84764f9eb12422c5ebf88ee02d5a2b99f4c5d57befbd958ecd76f4457baeeda979f47bcf9acdb4699febe363eba76df7ecb9e726efb9b56962d3bca6157b4aa6a41a44025d1f9f9f1f9c69e24c2620cd82c5ed96749473e1025f0bfbd140b35bc9443eddb6e86cf3593f6b54fd9ea60fd00f0bf31684af0dfa804aa6ebe33dc96aaf6c83702fba4516a505f9c55a74bb9540ecd7a35b3900fb39e89e2deea95fdc17f6c55785bee85747ef3adac5c3aa6ad1455db878615f54ecc2c5ec45c964fd859f288cea425ef445b7ae1ea364ba1e03fd6464193264601932ae0c2bc385ec16a4453aba8b111512422ae2a1f34461c010128a11a3ba0c19f567e048144609e4be1582513269d37639082281be288cf2077ef1e284c418a20c19326c2622893e2fbd497c87ec5005b38c1925134e0f954c415cf44569d4202a2a99aa0d1b366c6c46c9549bc8b78ebf7bb1e79b042a09797138a3f7adfbdfcbc1dfa6ff7c7610c267bff69c518e9505ee16d4c2050ef702e7381cee04c2e14cdc0f8ec8c62e009ca8f556a7b1deb103fb79767d9cd91f6d89017ef19e75ccdf1283f0ed4c4664c8ee7189015007f63fd041ad5b5ebbcf25063d5fcef97e39e72fe3fc81397f39cfa82e7e45f70f18e8d7831f3f6ffd872eb2e8ac831f16143dbe16d70a7e390693550f4bb164126d2d3bb07780943faaa376c4378407827118dbcc04e37c7e52e03cc378bdd2eac559743f790004bf688dac2bf96abb385bafb555ecd77cfb1ae6881598385117295fb9b89857999a493dd14c783422b2af0f78ba9ac22d0d605a4144ac0a2ece5a29556b2d39fad2d51fe918638ccbcfc9b2036b2b9962618f17f03a28bb361a8d46933dd1fb66ddacabb5e6cc45aa79f62551cb72494b35df21ac0443778e484886d2508dd6cead746d60f572b3d82b557556ada2f4b6565657585e5a04dd94925a04696d9aee381cb65949bf2fcf09a49aaaa295a0e86da9a8aab25cc1e5928e7237229b75f4fbf27a4ff494a23c91aab4a4de1352f47a3d38727a78d7eba9a0f7ed4d5589127463e1b8a35cd08d05d00f8a6dd6b5ea3d31c74e52148f49951dada0b7e5f1a29e30b9392e4784233a4a6289549e5c13bdedceee2c944d6289dc5800fd10dd300bacb569ba7be53ef80a895ad0bb7671f0811027d3745cd5a807993652dc364b945d1e119da6ae5a995c1ce601011da3df15fa0519aa0ef3f0501ec75ac732e63497852efad2fdeee8bba422e18a5ba1eac23ac4bb549647079e5eebb6f83c9607252f2e5b74c91ae50c42348399467738d11a64a0c9024b2c1cc8b7680a5923ecb1d32f0eb3404dd8b96dd7ce2f7c76da99c57d9f7cf6f1dcb786dd84e3d260ab8ab82ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22c4b25e60fcfad11f61107fdd81e631cf4fbf29a84d604d1aad77bbd5eafd783d2fbf6baf6e571cdd902f21fdf6290352a4ba09f3be5f4655580553b6b0dd2a2cd4aa2a56f4d66d520a55a85dc8c910bc8c03ca3b539629dc7481c2e46863458064238771c8c7676e0e96919bc2043922469a80b6b94ddb12e83eab9a59c31cf0af3c054ccb3593f9edd668d4a2ffdf6b0ee07ad77a8f42c9e758d99943bea39abcde682ca850b535ba3d2b1ce44f31d2af395229b6c4442b89eb36a2e2229da354ed9cd209f98fd005c5cce7604495b02a979896ef24b37cd1a306c9a3a946f48a363af5d8c31f6adb5392ee1a1fc7af4996b99f3d4f282b1820af68bfaf338f4cbc34399663af66a79d82c6bd4843ef600e0b3022634ced9315a01cdcdcbc3960789b1d31c66b36cc944a3ddf207766b947d09eb6cd695a126e6619d896680318a799f73560658777be2edb5c8a2afd445dab7978bba48db9f5ca4ec9749f8d93d579ea2352a7d0997bccf9efbecb333d7cedd443ef60ffb9c249246ff3ee83da7add9bfb0d3f29cf665a77dda695f9ff667a77dfba3a3a6b96b7ce9da378c2f53907de9b7aabb3d9f552499975eabba1f2f9db43c30cf1a652fbd7af965e9b68bcb3e96a78b33baf4ad81e88bcb5ea2e6bd3dacb35978287bc6e20ced7d769c42dd911df32c8f0cac519eb95b1efb85e9b3aa03e2d1b1281d3b8b33ac43a5f39cb8e24a073a6775a874f32c5d973e2bd1edf47de933bf25d32d2f287d86921797d1cfc0f29879769b8575a66ba78d3fb417b51699e7ecacd508fbcf19d621ecb213575ce8e599ad1189d6cfc773ebd82932612c55bb164913b589e8fb44c7b603bb747115f7b556fd94561fef26353a623f03708732de4ee06787392e99aaddfdf78d4b5fee2084bf741ee66707b6beb8f424cd9fd2b274ed414ad76e5d934e4385d09c7421da4b7f4a63a36b0f12739a8fae5d76deacf3f8533a3b6f16bd1960e6320f3273995b97a142ac583488cc79502137eb1a0f81fe94ca5cc8cda21e04e1f19a1fa0a644b4d75021426a5e43799ed2993fa55e539056535dd3321dcfa734763ea5dfb9dd09fc5bc18d26fa73110dcf005c1c8c1f72980441708efef215a58cf75eb2823074ec15db8b31d30556b4ff3db16700ebbe0e6117d325845755f3d8cfa55a84ddebe2aadf2e50315a0680e0bab8ba2db6babb17d10ac073a926a9d13762d0bb5a7d5c3a8b6e6f5c5f1df643bfc3f0d4c0016a3ac63c04a3d3f26e97bd7eccc31b0ccd60ac1fa45aa531d4c443221882218abbb87aff3b3f39950aa6b7d8abda979884d1952da218e02c4dc96f6c6bf2181d3f88d151e54a870b6180a2c01c49a956a40e36d907e99582afb5248d8450aa48d5b7bdb8ac833cca929334490111a41e6026585282eb6164068c1a728c1e124610423e64d215326a3f88a849fa88c20510e929e4162c4823281637b246025010798482d982ac75893f2ec8da56cf0bb207149b93b5abda49fa106244491b3e68eb150683b461452844d6ac885f0c92678a2c83cc49f18af10cd2c708f1e248734a6c8834b7644b83f4c103c618e3d1d6a0c142ce8864ea9dee8ba4456f16606b51a7fcbcb7ee41148f51a7fc620dc33236bfd6beeaf1c7cfd64b3483b6e7d294def9862b1a7bfa1eff08bbb6e2fbd8f7137e1d5a7458d15b849999b449202a14825f0e63e49883244bd29e61a0f2c5594de3c93fd6441bd92386a06801ecad8bbfeddb10e67c753cc3d69b6c01190ca1ad035590c18d9c918d22229fb75e83c679ad5116496d33edc9c2eb4532a23184b331a3c8ad6b1ecb83c8addb7c2c8f1a6edd0c7aeb4b0120a3addf94026064a388a806cf5ba731745e6b944552db6043b81944356878915bb7996ffd28094b5b0fca251511d590dd2c92da9e2dbc5ea41a38316679d070eba4ccf2d0382231daba0b21a21a3486626f6f16c99857cb63865bbf96878c18381f72eb64d00bd3877067b5461b7ceb33649c378b33d29eeed6b3e521c3ad8396470cb72e5a1e426ef5e9c28bb67e7a2d8158d436e39471c638af35b22e74666b64af8f36f2b3a3cdb16a1e9a0cc6e994ff3a7a9e7ebe385d9c2dcea0f376b23881ce5daf7eb0fb9c3da7eddc95ce63af9d3c27eddc36c963de9328e4b9ed95b759decc55a0c1073c3ba563307427596985e8ae5cb50bea43b78d92b2556ff515c6d35b22332d60b82890fad86fd8f1e3fcdda45c535516a59c1358850a5492c2518e704951e03dca3d26f2dc97dd117d7610e7445d988e90d984cb57486b0d0e123fac9c8582578b4d418ffdbb62937994d464fbe09d34cea6d1ec4ee416f2e46316405bba5a237c56d1c7872ca18a3fa16a55c1d2695e9ccd291de592f0f53922c5c9541b117ee09d628a44b181042c3b3394008a30d68396af26bef0a2e861aa092b2eb4218109142f4cb1849394560e52bcbeb2603dade045092956c8d265670e1d38728e54c1d9952101c99ba71dc014e1439d12ec7088418a354d6ba0a4acb96235950306761061499cab138040210a34503b2f50697672a2ae802001eb0a0b668e90c1081465c22718b0d6f020051622c854e195031a2b3484e93dc1ea0a136ee15002541712a2ba04615bf245ca5696979b1c9ee0d2c3150f500881c316102976e3a6ca6a27e608189cf8012c81133b566899a2ab84272553ec2cd105881b9c48d20416144d9729352688502527f51a82063a52b846d8cdb9c1822758e0218a385fc6d0a957c48961085e0a554a76608206db9b1b4800e5821144b03c172e548c4c2972e4842564384acae596ee0455aad08ce95ac24a951453d15202248c6033c2d61925a060bc94c3df9c256a707043052f0cc8e606263c3333f430846b85a38b4bc2533ec71fba946b1c3351b6c0d0e952449914ef18822507ae2474e07149b19cc764947c8a1d17009ddd893d5fc1c4e9e1b7d9a3421b23963053c41a22e00c71a6cbc915276f9cc8e23859c189154ebed8c8e3b5b4c0fc9952120382385d1c2f4995a92b2f76abb7fbba191463a44cf398e5931b557571572eeeba95ee5eb9c27bdd8dba519948d7d5d9af2fafbf8eb7aecef6eed0f51ed6ba3aebe50e5dd7d9a93b745dc7019ebaba2077e8ba97ded4199be4aa2b0bd55fc74fae2ee9e60eac0dc4442e12e9d731ef2269bf5efe76fda5f3f77efdc6bbbf18ea2f4ef21733f91b5444ef9bc5e4ef6eaa5eac5fbf5956cbe7f6d8bcd1fb5a5dc1ba48db09b4f27265d1dcbef4be516e14955294a92a333729e87da1befefa659274a16e92cb938931a2b79dd3f33a9ad345a714226889de36cbcb9a5cd6192db267476f7b65ca8ae84a559611aba7b78db249a2e06cd413a958d66d0abdeb978512aa5922b03848f4aebd260d2c900131288d0e82d2bb7ad94d41b55a0d9d52f3b0064693220feddcc0fc26539f1b983f43734f7cc0190ddaa6a7f878796e60fb26db93e706b61fd126db8f9e7be2f38d323b3ae82b4dd8d941859919c68316f2293d1e9e1b90df443e786e407e9e7bd283bf339a0837c5e6f8ecc076dead3b747b3be8a38bbbbddc136d7de7a478aeadcd550abd2b25736e4e7cac2133020e4e1c39e28a3464c2cd17ae25a09c60210e96111f561b1ca18b436041d5b05af06126082d4160296da14226441045929abc01b3c490255a7352808920c40c3fb4b1820e9a2480c8606e84e191508831271cb93802768b7a73f5fa2b9837386c958965b195cb43619107cb00be5e4168da9df6126baf6ad52c3197745d9cc2a6ae575655545cb6c442e8ed76b5f7df93d4b784dd62d4669530d65aebf9d9addf7bc18beef00341ff4c53eb2cfa577b5f2b085a10dd17638cd18dfd82f6a362ac75477dec63dd912fb0a2f30556f475ebd8dabae3022bdad61d406ac5591fc10f04c16b410ce6aa6570c62a140484bda610dae6fcc9aaff00bfa2b916b92d7f0851adf445f282d4858bbd8e54c65eff62af93d1f6e21e6c367c3b42dbbf38125fb1134bd0db4a8144f44e41cfbe8249028a4fb1e81c4968191c8c82de0e2609addf22166bd1459188e8bac5172d8feb17dbf98db1b7a0832f0ed370faf9d6c6c9414d15a9dd6e07436aadb5d64e59aa2a6be552dfa9440e50aaf0a02c4fdba85d7642873573785c5d5e1a60373d44d9b0bb12b3aad6d24d0287a82a52d95112974b724b92fe393b41b506ab6bb7db49a5d945175d2db6d8621814970f43af5c721886a15ba96cda28cb0bddeeec4e835ab9bad0efca4cd2391c6c09ddd5cad1102c99422ebfc3ba7ba3d4a1eb6694e679b15051b8a27445f1d25d225bd57aa943d74d2d9d75895c99497ae3cc18ba4d0db35e80d0ba5b7f1dd4a1c998379fd16def56cee156104a96f0624b307429a0c471f3fb461177258801a2ebf7250276d9d580048837bfedd6f785bd8b93a2c8969cdfd6cbdf9c6d5789554507451074d0612eba90d061d78a2cbc5d1aa29f1606cf2f0b0f597086dedb3bf555e52b1055687ded7d05c20ed6635edd81ad0e70535c75cde88dab6c0d22a8604385754f5bac7fb0c3ba1d4ec64c59ed52fb945a9b5a199821c6f076a9b5a2c2ba8a354356d5dd414dc083143b54a9f51b75b3ac17d7ed59b7595d78c8ba753b4565ab328075b80a0f59afea52324185abd43a033458c23abc4bc23a5b955531cff10eeb6a6af55795b3b045775fef84b122e9aaf5e25b330fd362dd316a7dae26ed7af53d0888bf8504c251c2a689bf9eabae2681e50827a428d11245577aef0ca06bacbbc1ae5b5740768c828082602508f6ec20c8fca242ac04293de77c3fb4e221b04473780815622588ccb1635488102bb70cb01fa0a67856ba02402f15988002e56ab74b4198a14b780894a11ce021d0ab45af3bde8eee62a9cc731f9a016e4183ac8c826025c8e7d841a81805e1432d15bb2bdda217b53c3c0466c7a08f00d869fb772675fd73075cffd01bcc3fafa903accfd01b0cbd1920fbe70ac8fea1205809621d3b08d7b32b0083902edd2a7b65ab645ed36daf6e414afffc4385105da9c1cd0f243ca5a5137e0594256ab5f010e896cb6ad922508644c1c1052312e8aac59506881230d9edd2d23fdf96ebdce12110ea41af8b031d003bbdadd7cd00d9af2b006740243b76102e0f0f811ebb1283141373aaec76e9ad3225c5bb05514a4b574a4bd047d979a9f010e817b4a06b7aaf1ef46b75a96afaf9be560aa8538461c2c82e2dbbac14e1c30fbcdd2e2d4f2b311fd1fdf46316a249710f606626e6f549d87876803f86c260e85da37571e53dc3c346fbefdb3bf3a0df2eacdb004c17122f5f64e69490821b700123458f862b23889082184d106988d85981432605fd7261dd13932c365729eca0830f43a478175eb2cd78f3c08eb60487e80ac4d6a2baef57cf402c6a6b51f5eb4bb7a2475c30085debbd17db7bbf7a9f4c1e5f34f8dbbfcf83bb9b33d6182c0683c5d01d7afe40d4e9cb2809c4f2a0d1fe8e7537a01c71e2c91424e8f0426a1d8775b58ed7961260762bd4c921cd11c5145c5e38814d0e5269b55a02853935645511c14e7aa5c8f104d211157278853162c2130de60e1c2348e470425b9f7d0d53e40a2a8ac8d184b65e7efd62c70d12123049ac4172a2ad7f5fc1c45992838b8a1268ebb0af618cbc90638eb62e3eb1d3618a9829a2c3184961890e5344cb5727f3d7b22edd19920ada7aed2b9838bbaf178cd7c70b74c4021dc117e39c732e99808e7c47f4c651d6c17b65bdbca6aa961613d011f04e58fec04057e8f207aef6e2fc81a128f35c82d4631f2d15bae22e0e0a0f61c762c67a0ff2ef9b4584bb50b508bb2d8184e8cd8293f5d82f14d6dd2a7708bba84d14eaf1ad528bf01bbded5795af6f5d0acf20e445572d385e5a70bab8b4e04cc55e03d563e70d7bcc491fcf1b467fa431142ae9e6302e7b1a23ab99c6488f9de357289dc66a086250621a43b215dd66b66dec1bc4780987e70e3d7f5ecf4dc23e180ebf5dcffc37a23bf7a29059b7e8210c9f15dde4fd7d1b80cda17f6713f9d537201f866ea717d126329fbbfc4cb38291352b7445b4cdd5d64b2403492e490949b164aa9ecf0dfbece18e7db6c9405047163b2375d460358d045a81c7e7b583e74823023c7715e23f72bc3d3e24f8431e69c9264941910c44f6f8c282dc37b2479120124695dc828401840b32e98ef882ac6571d28714a2928c9246476090b51244211abf6fe763f03f5ce57c8d53b7e0fc3843c6ef186f1fe32a9cc719e78ca231c81a14a20cb296449e41f67882236b6186481f43d020eb0dbe7bbeac9e2fabe7cbea99e1774f94df3d32fcee71f2bba707ebaff7ecb0ee09491c1eb49a28a1ca1025d29b850a2271b694a0ab4bba7b7e20d3448e983050283126dd3d45aec0c0f1b204112a58a5bb07cb892d21b8a87892254dba7b1c10660a269e5cc162440fe9ee69528d9adcb175fdf5fa6bfba26c5f94ed9bb27d53b66fca16c36f1b0cbf6d52bf6d30fcb65dfd751bd65fb7edb0ee498a1c3b7444b8228a3a4ba45518c184135a9c00b3044bba6d503838019503983931c049b7cdc993274a2059e283d59374db8ac64c7182181eace859a5db2682993a394c5d750d49b7ed2b52b3e28bbcf55dbbb3e62f2cddb5dedf1a57adabe6f5b7f6f541d5b25ef85d73e1770dcaefda94dfb5da0eeb3a00c5095bb040c1c21826d24b4709292c84a1c3462add35282d4ea0202952454557ba6b51cfe6ca862b5268b844a5bbc6050d182544a29c60268674d76a9822ea74814188275ceca4bb9691e0c948f0f0f0f0d0f1f9cdd3e339f377f3ace14df150fde6b97ae2c1c242c342a3d1bcfed272152d57d1f2152d5fd1f215edc96f5a0bbf694e7ed3eaf0f09b46c3faebb41dd65527b2a8d01b3207853651a99130364ce144151568b6a49b0685002d5ba434b1c5c3085bd24d8b42120149132b2971441021dd34a92e416c795182439d15d24da3fa0854ade0a585cb082d9420ddb46c82ce2668ddf5d7ebafce3ccdd3594a67299da5340bbf75d46fbdc26f6df55b5f69acbfae77585799f8fa8184ae1a7a4690a413909901aacc105486f4906e4d6609152a50e1b5e1ca4ab78efa1406345aaac092a2868a746b291c5fbe5c5d85a9c31b926e8da68737486c888188ae74ebaa246649cc665d33afbf33cc35c35c33ec35c35e33ec3553e1f7acc9ef1993dfb33a59bf6733acbf3edb615d6d828918784c88c0e1322715636545829b3b4cd050a57b068535c5d60f5cb6b6e6a47b96013268a0c4d9010c9b22e99ed5ae292da4c9ba5ad27b93eed91615948052451328880193ee19191919994c26a3f3b22c59962cabc793d5d1fa2d9361e1194a3c435976955e5f7efd9d9a9a5355569555e592df650abf4b25bfcb257e9725d65f2f775887002ab25ee8c2b5b5049bb48c1426a8a02586218e48770995b4e585dd1d2a47862091ee322a060b66a0d8c049a2499474975265952b5d50a6a4c9614bba4baa095cd1668515764a8e8890ee129b40621348929cf397ce939bccfa4b621ec9fb4da2f09b3ce13759078adf2489f5d7c91dd63dad3025c5091872f8810719522c1db2ce44497193d524dd2414049038f3c6ca0c386489aa004aaacc963544085127dda4540368509382116aa8d0c0956e92ca034bd4605da1c39117caa49b9c629c621cc7f1fc3d7a8d5ea3d7388e631dafdfe38885440c89582c16a3f3b1af5eac17ebc56226fc8e4dc546f81d8b612da04b0e1414141a6cc021ddb1a8bf51ba18e9418e115c86a43b2675b1c02e1618ac0be6f5b0afaaaa3957b02bd815ac97e437ac84df30127ec3360c86f5d7613bace3c01b2a43aa80618523a04871e0e2dd79c12b4b0d5ee9864165c1a0050a258a98a184ad74c3a25e5473c78a105b4aa8f4d20dc3c2d3e252e44b953a23a41b46f553be7c59d901062be986555d28e285228aa248e7aff825254a89523d9e48c26ff1eab788354538451886fe3bf40ab7acd79cbfe1850a77d843f23b9c0a99fc0eaf7e87584c9001b3841427c4904024dd6114015ca083a40d9a13a8a822dda11419900c08825e0f6681360bec813db007f62ed46ff01af90d4af90d8258afabc093346dd66c4121039bb426e60e972943cc9c0025dd20d45f223b88506785ad2ae2a41b4ca3868d92395b3b4441a51b64f344103d4c91646a0725d20d5215808a30525ca83441022fdda0966aa4e5ce9a23e9fe7a5c7f7d7f1f9dffbeacbeacfd6915f9fdf188fcfe86fcfe6cf8fd5d7d585fabb043029418dc84a92a926aa1020b15269439e3244dba3fa8bf538880c396170a57ae48f717050213a0444d8931a1c912e9feda94f015c78d09578cc026dddf1123762f8ce1bac10a13d2fd55fd6d926d939cbbbcde466d7d549eca53792a8ff03bf3a63296dff92a63fdf5bcc3bab2ea842915885859f22595c0d50e53253882c99414d29da136508d9ab883bbbe38d89a637718db5d4f84df9887efee3726c16f7cf5f737c6fafbd4820a59c8c03084154ae8905e16b8ecf4d00688253ea41b43996ca26418a1ab0821b8d28da9aa20820255972d73a4c021ddb82a01b7a2b9fb6edd397fbf9e01374baba81a59dfd68a2fba93db9a73e7f7e55df1fb5af1fb5a0171afdf1dd6551005942d3b185e88a287f48279a3831916b09a2041ba2f94005038c2ce144f5069a193ee1bd5b3030d3cbc50c5951b12a4fb4a3d53953b47d45421236789745faa2c502f94a96ac10bd79c74dfaaaeb75f6fad75102a8faf1a59bf77feae615243096fb2c050e63ef1d49c4923e50a3247904897b060450a555f355491ee0005570b2e7cd93901267d224d97092d4c31060923e90549aebad8f9c203151952d88ff96dafbe7e5b2b3b55fcb63c0b5c9d9801d699fe81100ef0adf3d7eb2d155fc15441c4839fc11031a0b0049c2e1ecae45065cace99284e6c8902062258947c9989e2062b014aa841824a0b5c44caa090240b4d992a64c062439a73d326aa4746891240a43522f40b2434ad07bd4baeb74eabd2bbf47aeba5162c444bad187088c3dfb60fbde2f061980f5d0ced787de865c9149a4638e85d52bd75232abd4babb74e9444ef32eaad2f39d19bec7aeb4b2ce85deede3aa9256abd755b117a935757f426a5deba0e1df426a9deba8e19f41ea3e84d46e93d66bd751d2be83df6de3a104fef71eaad03a1a0f72884de23efad1f49e91de37aeb472fe81df37aeb3ad4e81dcb7aeb4b547ac7aef48e8dd13b06f5d6759cd11bd6f5d67b50e90dd37aab260d13fa3f373fa45027a69fe7b02ea79f8b9fd7a73474b2640a99bea4232c7ac3acdefa911cbd61536fbdc71dbd61bcb70edbc1766f9d8694efbbeda0ff66bf85fe53d3dbfacff3e76296ffd4b849f39f9a3737fca7064e09ff790c47c112bd45aeb7de438bde6255d5dbba831e2482489d073d832ea679708827671e24a2089c071d56328126e82df2defa5212bd45a9b7aed446ef90ebad2bb1d13bf47aeb30a6f40eadde3a8c297a87596f5d2805bdc3a8b72ea444ef70eaad27d9d11bec7aeb4955e81deede7aad4a6ff0eaadd776d01bd47aeb3e9ed01b9c7aeb601558f5d67528f9d8a820f55f8cff5c2c993e3fa237b87beb6e446ff0e3fab8de52f95cfb5c44feec4244d29cbd662d127634fef310a9a2a1f2a083251398bf64ca49b5237a7f566fbd5644ef2febad1f21d1fb8b7aeb47507a7f536ffd83c23a192f7f506174d58a4ac6cb74329ddc7bebb59edeb9eaadd7dae89dafde7a0f15f4cebcb7dea389de59eaadd7bc58af75d11b7bbdf51e54f4c6596fdd4719bdf1d45bf741466fcc83860183de7789b6c146ef5bf5d66d20a161eca08dbc68a32ed66b53acd7a4e86d7b5aa81efb45c2f13e17b1d721b414f91aba4ba7cb1159555753fd49565827e3c9783470d05bc69b7aebb229591519551d220b9c475fc6bb3a2b8b32afb419466f3bf5d67d86d03e429851f40fdaf441fbb0a27dd4b063f73200580ca589088228082180610d5d88950dbe9f12a2a18750dbdc4064978a36d5c2431694e1c6021333712b54338243845844af625a463560a4f001bb50639a6ec2be82910287df39236718a8262ffe456795c87a3d610ffb5a32dd2edafe9ebdf53aab3b6a02c62ab4add5631f3978187e4fd4eb45ca590c425bc7558c71d6b35aa3d1eb4502c0d10438d21b9f5b32f2618382a21e444a3578d0d831a403973443e7d69376581e486e5d8982a5aa2c6db475f24a1600a4bfe483821e4a3c76e848d221e5d8f1d68f2638af35ca22a96d66900be1887247494a13e0b8b1e483821e4a3c76e848d221e5387ab7aee40456a11aa3ad975354bfe483821e4a3c76e848d221e538427aeb13e038af35ca22a96d66900be1887247493e70dcc85160d4c38652110fa21d3574d0481ad2e19066e470eb391c96c7915b3f424a52928aa284b63e7b12c507053d9478ecd091a443ca7134018eb78ee3c679ad5116496d33835c0847943bfa6ee48c9478ecd091a443ca7134018e1e6efd2889499495b6ae79513d9478ecd091a443ca7134010e1b6ffd46eebcd6288ba4b699412e8423cad1bc5e241e39231b3b8a741025d5d0d1401aca813b9a31815bc7d1b03c70b875221bb9a3b76ea19200a1adf31049c263878e241d528ea30970dca0f1d67346e7b5465924b5cd0c72211c116864a328498794e368021c3772aec3ad1359177271388cb65efbc0ee7424e9643c3e2c5ca0326e16496d33835c0867f37a9174368a88906ae4a0713434010ec78c1b6edd51cb23e7d68564e0ac73e074465bef6972d221e5389a00c78d9c11fad66d149dd71a6591d43633c885c222a21a4713e0b89133b291c3ad0be1deba05325084b6eea34106721c4d20e3f161e1e26691d43633c87f886ad0c0317403979b61e4d64d1696870db71ee4c29b84de3a0320a0465b37834060021c377246368a58bc75a21ae7b5465924b5cd0c126bd018ca19d92822bae1d683ac1320a22ca874aadac9a21e544c219a0100000000c31600202818100a869224c7c13811fd14000f75aa4c664a9ac8c45114c320c620640c3386000000104304066c689b0038180cd2b0e85501ca0ad7a079f9ed972f4dbb69edbbd10a7a9335dfa8be2c76fa676d34d1bebe9aa16b9d5ec76c8dc167f009f68bf81be3e950d957793dd4d413250376fbdcf5eacce436346f6e6e20b0d8a297d438a72164d3265ea95fb40dfb2eb7943914b39a200a03bf43e43d54a99bc44a013c0acce126c127b4901b990326ffdf6c959c3e73cef702e66397beb7805e906ac0eb8581c59cc6d0de3a7de6c62515ae481a712864b40d1f245f13e503a68bf49a77815f8785d9f09aa65711bd2bd59d6456c2edb75dbb429ec00e44fbb9dfef831ea7deb67a19e1e92dfcc472338f61b376b36eb0a8bf858653e3659f0cea3efb20ea85e871d3b33f6549103bb16b661ffaa1077cff432f067d96f9de793ee123d0d15ad9e9ac148950072b16ac2c5232a894194cc964368012b0f8fe86dec28e1bdd58ea4d336784e065d026f900f7491b68ae22e7fc21232ddcbf6a5f41703f4b5b9cbb9916b612fa84b90c09d5265d72aa394a2504f6995fd0d433ca8bb02f0dd1aed0c72bbf3313d373f7bede6c2f8bbc769031642f6d028445a5da1eaacd2d15e68779e0bb1701081f33ae9fd92cac31250f39f745869e4c833b3d23d05b0bf7cd72b9acd6706bd260c405381652958e8850d1e3043a0d749234becf967d87a125e0b2e1aae42ac0eb2d5b434fc585fb3b44f98415234f65c1c549dabd17092cfd5c221d1a1109f108e5bcad9720f79dbd69acc5929c25464e3534f83db45efefa074aaf1ea6ffccf77d49fb6908934b538f19f43d632eda5170da4ee40421a8dda8be7460cbe3cd73113a50d219d2492f838f7642d201dc991602014c2e50cd10b80ec079aa1266f25b70b36d2240475ac84da2e75e02af0bdeaf6673a6ac11801b6482d638b14800c20567e04f28b6add64e38e85b9a279e12d4096d65b4fa8b2b74eb669fe76628bc97837e44df10260a83dd3305080edb51be304912277381222be4ca6719bf0291d8b815497061b9b0b53280f550864b51c67a07e8026b410704a1c58e767f6d47283d6b7023f65f911bb239fbffe1b1cb13d1034c2148bfe56f1e0ebcf3d8b140c242b4ce6cbbda6303a9c021f79cdf83000e2a17f30b527af77aaa9783f0625be9a3c0ed87089239d16b1275279920a3d9e389806b33b8e7b69185878e7dc5d583f0af78c3df3afa2bdf55f77a6b6e9cf4a0373eba5ee8aeb5d983b9c9a15b14e8187afebdbc61d61891165342e03087ed42af550b123c8c6ce8e82450a53f4d736cd513f605ba59543db2d79b52cae789ad336f82977bfaa188948da92abcf04f1c9d5cfde39b13bdb5f6cae15f506f79b1091ebd3c66e5816046f7be24c96feda4e6bf0e094e932b121cd5101951c7b3a8669a8d36cae5b74f7ba9cbac8a3bdd6eae72efe7d96515d2f0b315cf9c358c98c6d6b7d4c4e1e21247247f8c30733b635b7a5c5c85fa59c0c83171a4b73835b8485d74512121846570c7eeb5c8164c7c9f5ba9cf9c9025d52367d8a6f8f91ab607559a3abfddf087ded9c5a950d34166925b95ac8fd527ac11f14fc95f342a7990e4ee5288875168d31d833080060985eba32936521b81e8d4bfc228ec20a252c44713667f33659363a6283f256a3c6b7640d06f99dc376b7f118bae1707d0cd22fc80366b4e0034b6342be37577ee94cebd44c19f4b1414499cb2bc6f993d8cb2b0f649ba620ae28fc6835efc3255c2fb37ec645effd155ba5f537fcc3bd44584365367d58ea451a2dcb8414e103876ec1aa7952d16a87a06cc6396219f51b711d0830e2207259c714cba96eeff4f7510e890a87fd0f928f472da046513975236c4ee22f4ff1afbe9942de857d38f31d4b7f69274fc44034ba49eaf9949eb9355835d333a26aac3ba61b1b0d04c8a556b196f1029f2a9fddb173a583281b7e6b6ebcdd2e908a837297901a74e81f45dbf6342566b8fa612a4f0463bfb12f3f0fe0eafcaab970f131e0ded2225f86f4ae768fa77d7f025201d1218c1c08fe7bcc16fbbcb858e01d4dd5f9e7b584e1b5e3cd56dad424e90b48d13eca7b4bce2b37aeb75044ab5ba371af666a9daad340d5304394fda54748c0bd8e490e4a630495bd1600ad237906fa5b42f86f6cf99abb50c5662b8804cb4b9f24cabc7c2594dc3f8e8af78fa28bf8aa25f09d7d24b287992087bf3d05078d7ff4d4d01649ee63d9f7cc5b062352eb2999b473ffb3db3aae3617ba0d423cf0572948343eeb20e13d8b7c74aca19897401b0e878a3f6c0472ff9a0c0ede9dd05493bd623b06b332524021319fb2316328ad2f246632bff7621f7573ba0fb43789422bd3695a921d2c703438d8fcc9cee27e5978288b50e3bcafbddf8932547da7d11d4bc4756503a70266553fe30a4cb33cd98f2e288e18646692fdd44e7e46708e4952ae4593dd8d8630302dae57a51ddb43da82e0af735ff2bfd6a37c6cc5c460cac15073121e7a33ef822446e3a21059a9d650978f285b72114a316c26b0843619fc2f3920b5ddb0eb64c1bc475b2b163d95892191c0d9e81bbff3fa8a48c432efe4a41cfd5e4b630aea84694ac2f52ba0318ee9ad0b0e49869a9b18e52c699aa23e7abb7d90f8b29a66633ed80a0f8c42631ac8050d5e1770bdf04149f3288989c7105154a61ecf98b0075f4a80994d9cc272364476cc52d154c22c1d8f2a7d5794715e319254e37da346e6c017a15707016036c5edee120f97514b238e30c294465cdb72164550be233ea0e59543330893d63848dadd7e55ed20f080a8f6c1218ab1d932bcceef48f24e91dc95c2ae31b28446d2db01544d80ae433ca0f496a3790a9d3ae2fb9601629ad4f283419916a7222d79628a93d220b84b386ae033d3e4c25e2d31e811e78abf7040b6acba719043408987b55c79a3e9253dff5c3c08e8f78d0d247c8ca4f969574284062f854c0cad32f83b2e25f512eb37dd87124ec17c456ac1bd786aa35b212f519b66fb2679b50d75a59b94fc83532b06394edd021c59f137740dd694f40b990b908f1f49fd14258f1e5eae18880d0d2f2195ef70d8b0f6a4e3d2edbb29f382033f58827d860cb103180d0399b754084c00b05a6b02876a5dedb85f57cf117ab1b9ec19d5050d268fc694b6c388609423c0158effedec1b02c5d79f142c4a5910bebe6e987c5d1460a9130f397d335bed6f6048ab73b2d11314e4351727cb02faa2d11d005eff02335da655b01cbb579b4dced23ac07ff31ca419aaaddc099bdc192568e9f1e140510585afe86814cc4a382dae6b1a3cbc4e813abab5e2cadabf97f8968a061f2f9249a61c6a0d7d096335de9a5d9f8ab17c8e25c4e3dcce40d6e334a89d8e88cd03728ec57a6417703b1248faa3121cf1a57ec9fdecca0f43c1bf3a7fb6a40f70c77e78d28665b47e35ec53aa0766f74ad3b44375b48e927c40c1297c87812db8f4b6fa181ef4ad507bec2d8abbb81a7df7e077d1c5205e99f28c16b136b61c302d370622bbc7c9680ba92824252b3085f3e51aebf22b06051366cfe1bfeb8f319de78be17b3cc1cceb903c079014e301c553bdb409b199d72aff9309924a28b8ef3af1874cd7bfed142382803fa90a3014edef6e19752313dfefd973c958ab410a2e003edaab95059f8a709c5dd2a077544a56cc7702d294a12e8f0d848b790cd19746b473dc82f257a7a0badd1debfa3c89daef65c811b48b1b4c4b8782f90b62ded54c7f5a008088b1d1232b25a9b0aa62914934478c509beb634dd6f2d582013d1feded0b03ee12049dd58da3e2fe79ff80c026456f0ba84acdab824d1db1ffade30da364afd42d14da18961164bacd4147b4aec5a5aad52c49ba0a6a76dc1faa4b40ad80c549b9058d930f729bb16fa226aa67ac4531afe67b35ea9a25e45c7e0e1497b1c677fac584fb8aa031bfbb0155c8d14db6a87a5d88afde80e442d2c2f5fd76b5776d5887900afaaf21b5c40a2b40cc201245ad32289992805536caf54c88fca8c25fa51420a8e7a33df6a00ad848c72d915c3d609d46e41e0becb574a79affdefa0ab6e7aacc7261bc5463fc10b30ad55fdfca00329f602f7a845a4fdfca2afe8fc299e487f8efec0f11ce077ffb21f7269466ef9a062aa837886bd95126268e0cba5acec41052794463e287ec59cfa6d010a828a26d07cfefc58950fc6de480a853e546c5a5b1586e203e584a1338e2f26096640798f4e3143fa4da949dc6fb285339235130fc21f2a5eb7b34727fe5b95cb46a920be1181bf1153adfe5fced3e78a14b537ea5af5be44c4b705f5177bd7021da19ea8ace2269502b41b975917c52381cbaa7ae684cdf3e838b8fb2c05462f2ba37b497706c0a435ccb91a3c76994f6dc92070f0e2f97986385693c4c8589d1c9132920a2dbf762361b097f0997b36d376e1e22ca77470212eaf6ab1963924724fd10b0e5e140838881f504e0d0ee4a32b812820720119aa912eb894ae81fa724163a596378a101db6c3148d7e7d53ba64759bd3dd6fb6b2641565d11ecd841bb7382b1ed3ce88f63cb3d83e534b2c62fa57993c6516e0c0c95d0effe1a62338f93eda184ba1fc43c5c093b86199ee3d1e965465ef20a7e13f965731a2212f31d3ef4a7b71a4589d96b5da4db504f663beb8365d32a09e54ac6eefaaa416e2c43d66055fc157e42bd84a66055f71afc02bce55d2081c9948dc16b8f6c844e25660707f5642a6c10a3a084554a0aca7db67799a97fe78143b320581c4642186c3ac765435dbd803e2052db4bc3a423de66ed22d3c8516807232dd30963e4a567cb0931914cd06d95f1d719481f2a68c64ebc4ac45384627169ac790a01e4b618f27a54146dc721ebd235ab9c61f58b7ab29c9470dc670e418842759d9718a2c3ff7b4c0452c99f7626f6c6ba4f57a3b8806778881bccff0a9ee5c2a8175d6a84a5698296c420187f818a9382b95389ee7967e2d9e895bc37d72e3f9e0ca8ba98ead1d495dfd7f84dc6399790af620a161c5e7c904cdcd5524c9dda8d8ac704feb221ff5cba2b05569d08e2faf2fe7da1ea4bbb2c276a48e1d83aed0372fb6b4e31e6d5fa26894c2d1eaae60f2ce9d13ea821157cd20ef275dad9a0a001d0e62e5062f10e3940991b9ac5216cfacc8c2a645b1aa81744a88688d08eada6710196213286db06b26b078a3aa89556ee2168b9958b26c3a5ee36c76c8e26dfa70c72e77c1e753647dec14d4e0868c9946745e51d7b8f69064538d9a1031f245c6474498df46170738cfceb177587b10b9223524152410e5242a0d60d20564eb56875636369b2195b37decf3385915f546bf8bc2049907d0cde222075eba42f50db89435e9a7f68b0ebc1d2a41f842cd4621aae3005067573f6ae5b84f1a06962999ed40cac8806463b5e65a8ff8c3fb6be2d67da5c53b0ce19666dba9a7064d9116fd2c1bb647537699cd07dd6dba0e27bc6114876dba7f56594ee66f92b6dd7e2789e4bb6868d2df487fe7facfe4df6a24f95ee4fde38313468507e0c55547fa4b16400fd67c35af8f521f4e4c8e24e048a97464907cf81e2e6d64447e667ed0948e1af891f200acf4a489bbb0216e4714952af0eb4a499f8f7d70fba5bfc3533c7ec4af874f7ff83cd7660d4f103bef6f0d3f51c3145148f533994230299f12d66d33c899d0c4f2a0a1000f2514d748c2b8caadbbeb8dc992940d01e4b43d2575950e2a5ea5d3d157e9be2438aac6f123cee3c2892c4efdf959a4396829beefe0ff249ed7b8dad96e005d552cf8d453802a008718a7964eab74d625905619b920fa8f49a5eac58631360660690f30d95a2fdf65fd84cb89a54f12726d1141633ecd97170816847bb8d3854546a89ea326c08ba15a7b93f0e17f72003e656d5d27526eace4c4f51da1ac4e0336d82babf03bb294a2ff74d6c092026c233c7740c8cfeb1778621d68c090278f30d8083586009fd91a7558a9a58376f3779457b3fa424bd925f4dba8d6ef5c8b06dda78215900acc37d7e5ab97f7812b7c75ff8011297ef9c6e0b733efb0217a248d5d7311178b29f084c9afe4b850cabb2ed81a08e2733790735809b9aa835864ca7388e25d70c31a66654ddb655b3ceb27d68ebed5309c87cd69422be5586c13b4f2694eb508ada389de3d26a8e219b8498ad1ec1be46f378881ce2984cf4ae34a912f9b23e2f9c4f6b5057c65832df1c90a7ea0c7071cdb2da4afd0f7727764d2846710015182cc5a9be484a5d56511286ef7d17b3d6f252d72f3be81b6d01cc9816a098ce94a0d64f76e75c947213f34008d8ebfdbb9939ba8dacf7bb289b1af9c654e75de607777f27859780782d163b00c499849a6bc6edc9e4261dd08d361b22c8b67ed691bf095fef530124aa7748561c3183ab62bc30d028e9be433a6f60d6447fc27e16dbf4b1438463a1e6cf868ccb06762de0d19204e62dd1634c1e103ecafa73039023d2964c027ef074298451273f6a8e1799eb2c793544464a3f290b68e8b4fd88355a4594562e1ce8ae45eabdb9a3a89e648bbae27157a9225892da552d0079c8eda9bba0e694cb591572a95053805613b93c62ad00c1c70bc7da9fa7e2403c16ac9001da74b67ad11904520282b642d804acf3c1f38d48648628d234d539ff16ba26834a952d7c53f9ab411fd4ec85aea83aa41b27676786a8ed1d6310be8d1fd02db58449f660f3abe805c9ca46954f301575a18febebf0130d79be85b99cc557a02d7caa849f742f50564951e4a2b779f920cdacf5be14e4b3ea7a80e8b218fdfbd0856c708cec0635cf776ea7666328c3c0c8f131e7c1f5e196ec3024b2640951e06a2b254fcfe27b861cb796327bdbf240e376f0cd2e20bbde6cd67d6543c2cc07fb354bb0ab5ca0a4925fce3961b408ca1e82f768ad23b46f0dbc0593e3f70f08746f8f8a6e965690a0c055580d5eb7eaf3438949b2694584ab46c969c5a3dbc01545c8181698ded33ec851acd7250ddd4d709872046d34ebe34a3b2cbdd651424d904d518160ee9cb304d84d2f69d0d2d1bba25c8ca08908161af2069447a29ec4424866a5ce756a2e952e9ccbd0cb71d86950d7a241a801d3eca5ca88171f4ae3335cd37494d9dd970ea6b5221eff8110ff06bdca820e63182bfa97c2a54f7ddedd7d0fceed74ac54c5db4adf557109fff1a7c8bd9403b90508e977f739017eeec30d2af499466e74d5dae9c25cc4c72345b6d7e6eeff9e4a3e8af09e45263dd3b7090ef8de4eac98ccc7341cbe132c748f3d6f8a4677705aed51e47906764540c44ece80445c64ea03b208b2b1e71b13f7b98755fad24b15345d74d11f47bcd3a8490ac39ed6cad2fe47c5f2524ca7a95bd6c5360711c5c1c818528391caf0d2c36d10216d7ebb471f2afe469a40b2cdd408d4613849b4a45adfd697ac4aa5b7b2feccbdc941317c337922ad4f99542786be643eb75cfa3993e9b9dfe806a7f13405f9a5803eb0275bdef9ceb6a3172ed0b9f9945e03b2acf1524d59801c8e048c4c09454f7d38cf7d8b71d813c55a64152950cf1e27294b5317847ce0270b58011ce6a93b9b170b3f5b0f7831f4cabd7a12b9ded9fddb110399d27d09c4fa84825d9587efbb2d942950fbb8b1b7c06ecc2bb22755cceba4be5a4fa4e99d70d58201051cacde92a3fb49dc11c737d2bf32a666599fece4fe5fa689ce596515053ee1d6c5717f44a7ea1e702fc145cc843a8a12c02ff47985a839e53e5cde4a5664cb2d79d786a952112f1a11975227b5b215a97449667c9e09f5e144dc48147e1738cfb7279ccd5752a62b6cb07ea13a458a02db8fe756dbb0c7e82528357943e288499e0686233344cc97fc4628b18312129e3b6e0480677f5055d5a1f7fa9f9bc2bdc8e93f15ebfeed0118c117cef20c59e7813810741a87d716f47c447bf9bca0b5f7a772f71f978bdac2d3a1e46c7386d751dd4d9a9ddf9f00f1dc43c4110d415068c5d50e0db6989e12beb3dbbf6e1b0b8d018ce02a6132ec4daa01387222dd16a88ff53ae05c32403188a538855ce16d04c1c5161f2503800b574952259b306353e52fe532db0c57cb873285092e410612697d99a026f56591d92ccde6c3859bd82b9c597383031b5d1af41dfa0ba0705e4ed6af5ba077c4d8cf1debc10111d3c0e389c72348d0e676ca147f60dd8201e4b72d8746a0d7001a12c256165e638edb7d2299be7909dca8a4a668a6d38e3fd647b0d6a954ef75af1e481889d6942f8a7ca94835b236824d96c332d6aa12346989df7124d88b894f1aed7a05293314fcdb099943c0a410993d472b2d018857cd6c1271bbd94b8d96d3f7a1ab9204b9eb31c3b294292de57be3e97b2026a8ce7da1b4d3c5e85e02f2891dc7c28f1c8dfdc9e8a7cdeaf9cb6ba91e8de11014559e2444328cde78d0351fd9b65c114210befbcc4e710a526daef7944d48e906c8b2df5165a88d95992c5d4ae42f5a81fc101cbe647aa66c1f42a5f25f5f55b5c8e8ec0d18cefdd882abfff49dca666eb1a35bbd54a50b3353b39788af1ccb63b461d26ca6c11ea1c5bd6345b7bd7e276d61b3d1b13537bf9b2fc1b59365243a1dc48edd3e2fcef90b414f5011af276566c9013f5c363edf1cd1bd4cc27e571b1716c473903bb57a37673f25024314aeb6631cf3eabc5d3229e7d85b5e360d7015e725355b2674940fedb816a364574a46206b54149abaaafb1e459c5f6a0351c060265945e2811ba6900f9e87668daafaba0f501ba7908cb68162687704cf6689f59723668d049d666180bbbb96e735283c9ccff83d19b977513632df9596ac243883f7f9ff109afc185ef7a372da56e520aa446479869dd84f80cb60800f143fd86a154025a18890b43d77b4a20d1556d188809df3bb3f860c9a1633fec1020ba4375bbac79288910cd308bc89d887ce9db88a84aafad2aed1139dc06f4a751784dd1e5bb2f499d82b0ea2e5560c9a436fac830ac53c82ee826552d5f7682200c4bdd2ed52f66397dd0b24704e3ba295295889e3e5cbcec1139c0e59abac5608f6b6982b0e66e33b41b7dfe7e0404b259fc77e9186384394cb7fa22ff225a8da57d2bc31327d9cca37c7091ccab4dd8b36b824e6d71ddf63eeb35fa66cc425b01719fafcf872955d8f5bb5a64b14a6f8fb9d164f5547df292d5274c97ad3319c15996d57a8f2a3dd07efcdb85f7ae9a63a2faba50b38f4ae843fd81b494991873393d0899f270ea3cdf187afe6a3a079954ed840b3c6bdbfb0788b0f2fe77b45e35b7f8a3a86daddc59e6701c7926485088002d7f8c51b661f48fe936c2ea6561f51ab749de2e11acf077cc07ff4c298e0235160d266695a4fc0f731f8bbffedadd7382b2ac638d550330ebc66ae6bd53c173ea5a13a5de5c8d7de87c812ac9cca81d8d42da518204712f0e8f36fa49eb55710c7b2b1926e2414ac46aefacb27911ced1a7629e86f86a68f3e07a0b43483eeb21905714b5d0b8176b454b911174ce1bba8e2f246162552b031f22c15744563e36f8d7be081c05408f3738f30b2d8dd58a4bfb0ec72fbb377aef993aa1d38c2a10a2df90ff1cea919895ebb5cfe392c935f4023ac51969d23a35e4eed3a5a595475b2af5dbf9b73fca401ed1e9735f8b0619065da861b84f7ad7f5cc8cd6bda17de72d07c6817d8520d222b3eff1e26a931446c3386f9548016195285586aa11267edccc621d258aa3986183cce126ec66fdd0ca743db5bd243eeb58052f25582fcf4d5a403bdb3bb59713dc5e77036992e6f69a3266c9fafdda9da22705a855aab7e8d6a109b2ea6feaf207cf147c3c87e43d5409eee9cfe09e2a11ee2551c7758b940917f143f320d76b18ae94413d2a0e7837612f5042cadc4892b83abd2553ef6ee122b80fed6a6105deebfb5d4534773b4a6d5e0a4d5cacf878ca66c72d2995f455fc0543151a7c0418d472fc043bf603190cc59965e57976500c5fd1643fec6a954ec9fbd2ca963b45392630becf487bed23f0974a2fcb40e6bd01bcda2c31aefd9f795696e2a297ce83537b1c3b941f2076169f1b6da31fd7c024c1e74104fbe25d623b148d5679efeae1084c3c3c10531fdf2093647b41c3cd95309857e5e3120f5bc2afc99404a32381fd5790d52326835137d0a83c8d40012012b008f5fb412bdfb13fac22531832a2ec68b8175ead276005d88c0a8b3cb702d2744661dab6a528cee823bfef4c62b7d59ccb535318823133f7c60d142634d42cb2b22c42c988adcb447b0f75f2f1c5a056d4e96bdc1243b64c34e4b0696088a296a408322c3a31143530452d4911a41c95da30208bc9082e4647abc84c342704bdcf4ac60d47afb12569026d1bf15a50d1d5e4b90c5d092990f3de45ad13d118b26515a79e20d843412ebd8b48b91bac1f9606aad6bd401ba5634ba207de5d0f99c6214799184decb804b5381a7a789a6028f72d6434c3581386d08e290884804767194228e545fad6252c8a0db945a5702a425f101f1aebe84ff4c5b884dc08734fe9ec01b7c51470e0c7bb3703b57732dc20649b4e4bbff9c0cd3b794ac00cee935629440f4b65a34d85689481f0bc74200e84a74eb359d3b25b3491b5e79e5b7d62f0562af471b1bd29c4b8986ac93acacdc789c8d35fe711d21301f9b6ba0462ada4339a0382be2e7e687b7da65608b2762f08f3669717b2142ea0e8dc5016e61207e22016355d5068412617f8ade4753a1f2cc2159b6258ef0cc197a6b173dc062e19fba8d718e3d7ec5a38c830cdc07e9cdbf8ae7231009b5d8c98c7cd944fae88d3a9fe7ed314a95edc149c159a53a6900c4fb9147d8a6624e7204951503173dfa1f2e6621915244b462a9fa9a572bea738579ceac641a6bbb969cd4d5fef2a270959a73b5dc12ec5575617b225807b8a7256613a06945d4ca31b4bdf9e99381e0dab3c4986e619598f8208f95c487fa097f7c8f2b9e71c0b9468ae9f7f7bf207279c816477657efce3d3caddf52d1958e86ce5ede580fbd26a7c13d10c1a6da211eab69a03aff2fef8b8a5efeba0cc71caf872299b02252f4adb4a58e9738479b39e890f1c8fd461b8519f6e7061698ee178ea79717c568aa375cc43eeb160f952dc26f42ff5fa86521f8e476931cc60acfb65218998bf421cd10027adfeac8cdd846d2070723c2306584de0a7abe11c5d11c8f17462c59f4475cb1c2cdcfde4788201b2fa7ef3e8e41fb55e9d7af2bfbe26e3e82e21401cbcb25e33699d9c410aea8cc8940f984c097b630e39c7f3609d0c75e6dee078333d2204afc8e56386afef360ba70efaa83e4539ac12dd5dccaa47e74fa466588012f2a4e3c3b72b2733d1b0e06f9f16377eac64f33ad58e47ec8a102c5c24912298554129174e39e9a085522290b4e3d1c2fdc9fecc9f95daf17489675660f4b5d790a9cca97d70bf3eae20141ff6f1fef7d3c7b18620243e0b4b05d9af1a7fbbfbe656eb523c9fa73b05590274224bf51a62e8aec9c79ff37f5f87cd89deee7fc3d9d72ac29a09c6c3bc8b0124025edacf5726c876d381e71b6a828ab98512e1f1745aaa2df8d1659f1d9148d8300d0a563593f61144852958929e46a34f3923a7671bfcf15bd8c097e150b3ee498ea5ea7afb7f3a76df6c35447de064a1fe01890ad1ea83943197ae942c31a3ad3b71639e920562cbacc1bdd5670d6aa80b55e2d4bbc2ff531ed63b4b0c4eee3bda49e0db4516b9ba27a99caacb4ff2d86c0b7996771462bdf32f9455ba10a695619d12f697dcd593ffdfb607784721a609f6cee524a3fc052377f5ad474f1fac3ab161391aada6468d7f690f18603b7bc84b59c2432bdd4472c4a9a3f44d1f0a836cac6b688adec02894a7e17f891f9f1d038aa0262a7e891e9565e79820863c7ea790705f6766565f4892351f78041c8cfb8c2bffe38f7588f9b96304b70988c65624d612893f71d29d5b54edad844869e2f5ba92ee7c1bd021d567791205f8d97e4b7595a20cd25d68ead1f94a0fbc727d7f899dc1d77dcaf1000e55b07df3b14ffbdc47d30721687531c72dcb83bbe64069321cb4d77e01c917e49614fe5cbc0debb03ef55366089feb169dd1deb59437dab1e2b406e47d009c1d641a4d84bae39f178446cdc3bb3f98e876f241560ce2fb84ebc8c6900831c82cb12815262c2eb75974077098c2113574e63b9081ac3cdf75b72c6d40f2c29e3ec041519839e2446a3b6af8edd353d0519a86e206208e9c61be4e0cd762cc3873b881c6929baf6a738bcdbffe830a9b098b7e2925ca4a78a0126504c5be13aed52948dd5adc1f854e6874997c835721cbc662604689f8eb4127bbd2c44b856a077085a156d046da675fea16f2f6cac398ff9fabfd818ddc93b7021ff0d13f790abcdd9ded0b6e75e7a719e1d5126bb7aec7fabec07770ab96c470f2836d20218432b79b6a94254f5be99f819cd571bffc03a321f559d0390c4af8e17048d1e0192e33f780cc776e0542e96c251b900fc411b9ab7d07030e3690e473458770a980b0c4940f67460fc2ee0d37f0ee46bc07ff3d4d5fc07a6dbb183f9ef8f49d19dca275cd589e083ff9d1e936f921dfd083019557bcc2b791f29d3adda508e4064816444f7f4882d8e8e7312a37f8359e9ee2c6cb1ebe521c6bbf285dc2c61208fe853f72e6e90f24de40f62132ddc189b5b2e9a93d99074fbfb3bf6da1ca7c57938dc9bc188d131967f59a232c0c71ec3435d6baa0a4278fce6834753e07a1114e01737eedd89df5cdb685b263f868353a2aa641e918ed1205718988a8eb2aa8558862279acb6cb07c2ba920fe6c3c9c216075cd6db3f159972c296763d68a1500f11b648438135075b9f314a3bbde656037e60540e6a915c9bd2a33274d0c8162bcadede6a6bf08b0f6801b3440863bcacb1c0e08f50f456b71137cf30f67655334369927b0b398fa38d2a04082ac653e10010096b245fb76596b32618c5999f013f5f104d0a39b58a50cda78fbb2aae7ab3c95b205046f02bba1e751e62704e003fd5715732bf869267f7bba038c43e89416eb5d7bc9cfd4d2f480452a4d4066d46d99ccba63c6b31150e57b6bd93b726777d5d4dbc41de442c3b55e67993a3190d5e0927c3bf7ff013a407ca0d1ffd69a07ac1c9f77e034e03f09dc69358387aa61c63cf3aba94fab1ba757c409ee8b713d1785daca98766519b30f74bad058dae89c1ccaabac1767ac9d17c015a674bb9a3ba9ee1f04d9a8d82f5dc387eb688955268380678e3f906ef6ee36a3a3453bfa6c9d90f0f5617cc3d09a17c0e71e507980046649539a030b69940774dd0363b80ed4f1657be4661f4b37f9c69caaad3b4ef7b922259e8aaf911c3059f6f626d89e8ccefd7dd57d584995ca8316304d0c47a9107e6dbe03c4a66d195fd5d1c936237207605b2cb2c63bc56f1cce79e489e019f86efe1aba6bb482ecf483fc9256db850a9c82630245b5446561fb4602f28db023e8c18e96053307d98a758ea6fbb61bd2acbab9b83a063b0ed1ecc556d7c16e563d0f4a7467fd340f51bba2cae3c9275d6d21b1a19316282718c1bc813081783965decebae482b3c558e5c244fc1463ca6e3af88a81e09cf721771a61b25a0916c843a1d25bd723b87e773ceb85bea7514aeb0f90b16a1653cc55fc29463ea48e48bce001e2270f1fa0788547613743d1d10004801670cd375e391c5bc8d0e8f8d8f996905e9735c7c915940d70c785d42618673ff5a0dcefcd50ebce226ec83d466b33f09141591528c535c65a36c99b3f31afb34c7da670c7c18cd04341184bb29c9c87f640005abe1b8274b865dec0b483bfbf0705e45258713c12732491974acbcb3cdde301945e000c234c11c87a950933146619204211d5f7851f174a60261baf3f1dc34690ebea5dc6e92868662e44e408272cc8a5be62f736c5c432acb0442d25bf214219bac21881a0ed3fe9131940a2de7e76fc4ef232deb985a26fb12ec1ce792232980a39b71ec7c018e91272a4940847c63e0c5533a3d3a532baad3464dab53851d7383df678b211431aada7c4cb154b2fab27226342a42993c76d716be69ca41d5fd87b65d39b8a113ef27cc2c96f8b1f83d39c5198caa3a5b09055e0f0b7f38538cacf3c8141f29888b8cc64cb3e5f717e36591bc4c8d2994094d3ddc021e631ea35b3393b7b15ae0ac1b70981ba2a249a792a4246e3cdff795d7841316a4880a8a49604bf572ae14df1c44d3ced5c8fce045a939754a9096af248d0f5320cc8addcbd345c7bc07d8f2fd21671f21ec516a73f5248e56d14eeecfcc0048302c5d317af09cfcf2a9cbaaceb0ecd7c06ab3fbcfcb9612c0df8906f16e95c6fc45124f3cadec3c80ed530e0d1ccdb5c7f7829d68c08106501d9721ed570448db2070f1e9cdf792e01e1713b0b305b85e5024a7a5bf669341a483cac773a9bf57ac68d3723eee099b85778cb41a35b8b3ab11e77d66f8f18a7ff51e7f5eea2072af9a63a4b901eb1e8a296a4313ece3b695b5b3a894a75d42ee1dd90445949542d88b190d188ff6411838e0d7b97aae123622b9a982fcbbd2273f9e2ea25625b7e04cd695f7fc468e29f38f88191898ebc3bf3b6f8e0113a04641a47636f6873a1980425bb4ae35a4b1ef592f18ffa37385f60da91ef1e50cf17c5711f59bf9ad190411b54ffcf614fca87187619e279d8caccd3969bf9127ff91507dc5800536a841a03c052cad819e2e053a64e0a180b865a261f4a465b1a8908ea74d1c45b7864fec10d0ff37db04450070fbc2df39a912c1de4e1f5845b678ab3bf183fb3fe2310b70dd168071922c09e6f999b85153593a00a0b62448d63208e9f18a5fda80291e7d513284d52ae617f68398e20f0befc7caee597a09a56f5f32e02fc776f3d09f1cc8e15a1fdf8fd0927c62b244705b73545653e74ba6e7e563e2282d1c5f3d43414e4b2d04d9a17c774cd445302ee531ad90d08f47eab834624060aaed3e9367c8ca0e1100964c36cc044ca5004aff7b37f9874e515e0ef40b359fa6737c3df2927058c318108d829819c3658211cd75f9c65db753012c07fcfc1b10b24502a0d6bb8d5ead9d0c3bbfdc985f300eaaed60858516b7fd8872253944064c8fe7b30e1ff759306487d1cbf8dae1fa7b73fdd7e0dc061c06a9439441500fa3dbcc955ab59660a6835160ffb636bcec0fe092ff72f948a3f167dba06748af66f8e203f12c6c01e6d2f45c4b714c5ac693b808ec1f528ae52537b9eeae57641ab7b8375c22f4001d247237d1c7ccceac3de185d4f450e7e8195cba1308dfc2fc08e07063e23e401f5f78801c9978ce8e43b7f407995aa0dd63d203ef80a6e39f4927727d2fe6b8e706219d48f361a86b3e38952404f42d8a00ba3ba40504a18dee4d5aa065f1663d5f59194f193704b6d48d0e14ac42366c3526f39b921c5e5f0dd788949537c613dcbe9b1f8a04ba8a7c6b0d41a2ecd89c717e2b1eaf0b86878cb57950ce0b9cc7511fc2bc65149477d2e7f1e1b87e47ebec96cd4848deeb9fb7852554c80b1237ccaf11f28950def9fd56a09bb725cc75f4d86aa0266307ee49e3a88aa82c78c06aeefb96719472594478fd1f6007cc77f058d327db940739d4afa7074b6c92505666ebafc49b2685da78bec72b3f2a329f1e9617ea4fb5382c9789f0864e7391eeb67480bfaf16b5a6e8e2505e3eaca4976daf05478870a276458ea117253910c33a6c8f0db813b716085918edf2d6befc6905db54e33b82cae7853e250ab5df8b8e463619b692183f3598dd425031af1976c6d068ea52873d0f7ec88903556e84c42fb008befaac7df8a9b5c7cc6a23e54b6d1821b081ca543a8d9df7b944f16f924dd7cc7101adbeb18f635a2293ee5388f94ca1bb0bd58ebe9563e48c5a54ab9cdf409d6a87434b37444090e2f1c0d4448da824fa9b077d066dc84b040ac53b9193aa1d0c2258a96674039ec7d5dc2a667d6a28f27d794267ff30dc8b05401bab3091d1178a172fc496fa29bca8a2f9188f802cd37a5cd9e0de064bc4d4ca30bac6ab0c6ebf0cc8f5f698aff447ad515f3ba389b93cf458e30c628adadc5aa9095720073f29be9cf1cbec64a948c440e80c4f445e923b19635fadea32071c4720f533f5c1a3f2237a3373f6e1a385fb53ff478bf9ca1bca8021a892974a950bda0980eba3b2af2b02eea391ea50754e4a1281c0412ef2ad2671849580e09c84920d47243694cb94056824ba166f1259680f0e58a63fb4364618b079bb5a1f9ef832e1b24c7f667b7b2dbcfc8c5dd8f012a1c17a4d917d0d3dbe85e3a9a19ab7418a4a8cf67b121b45993d66e39690da2f4acf850a09506d2e5867630ffc3af2d7dd62e4c4c695cb043a51cd8df032b7d1892be2ce90b72f822d3d7713dc39171d4609e661b895e7367ab71a415e249d2018592f6063669dabb4212237d2198e36411a25691c9f3ac9e51a864f893527cf588e466f646f77eca12797db40b02aa8d5b173965ac1f75c8e1b3fb3cac59917cb22fb23b8ccd8bf904a2ca5af09313a35243c027a317f58b791d2e57dc75815b694a5766ab3062799f81c432acfa96f605a448a427474a8ccc60055c9ffeaf13279a525d13df53462ea6de55c24f2584214c3172dc842f9fff818745035315a0fc83c4e2dab70ffcd7a42c104d50f1039d0e54f9420cec1e0302f2aebebf84970200933a4b10b07f048d7b6215dce84212514479a609a194a0a34c54b1453a6aac66d074287c240b31d64c0c2ae260371e5f3a85e30bb5f556f7cf7204366ed580c62d33e627a884bd6e99a069f88f1570f1e462eee6b57d881e240e03ad17745604c5687267e233d43e857d234801404371d1f8208ab3a2c36a123686b12ec9ef2315fcc02edb58420d60938020ffe43bd92e0d13c9b28d78427bde5d0c34104d4e83e628d1147711f155767770e84c4ead41e1685dad9c59d03749e90d64f79d8b8d4e16fdb069758083e07ef8b084984dc09c5c9c5a14a96a5e2d5d38e2ddc5662cc7c3e4efb4a49abcbb8ad64bc9e6804c7799efff1d3b697565890b23cc042b94c3991e7a2417e1dd830fe782c4d892f207796f84c81de2dc5f5d826a7000465c465136340ae5560fbaef7696155e6c2f673ef32f54e5a78d81e871878e3d571cb4d9566659145234697eff1ebb5761388058e417c83d48b1ad4c21f9757c8009b0a6a83e8912632849499d86a9e560f3bc178dbb07475331158f188d940844da1001248fc7c867c9082a82a051f0762f36ee85702490754090270ce1b4f63980a7186d65bf3299a9ae7525fc6eb9e9626ef6ee8cfc7af1bbcc24bf48bb3a4e8a09d5e1cd00cc6bbccb3912b37d729099530450e54654e5d5e66b17d90429c16b4a2dbc852eb20577764f45f0ae00142ec3d991ec42995c7adabc5db521a1c325f9821ed316bb4669326bab73ca68a9b2759bd6af174a6e851a434dce822f0e02c70459cc51852efdc202d7b1ebb0b3080de533f05a16bb429f2238bd9efe08a1cd3cbdcfa1f95a7740ad1b8ee8d4b96178a554c4d952c5e14b1c2437b7cbaf10c191c075823b0cea4ef7ff41918b9055a4fbcf5a5698158dec8b81799c126e24212f4c9ef2c65a58055e592a17d0b542bd0d582bb77a86cb88a33606aee50c8629e039cdd3720af2205e9c8e614c806bb3797ba2de550800b9611f83dd9e9d5a1cfb25f4ef01f74022658e336fbc6c68c0b6054ac90e02fa4ae7ab278961d46a9b6d6c1a86992825b6c9d051218d4f48f73a0012d41271e532b4157a1389be98f7462ead58b610405aad22592cfc61b171021f487432b37c74ed7c432ee7bd76da24a8f0ca4d8f478dbbfb77f4826c0f0aa3add565102b625895e70fd8c81c385cd946dad19f3f982d60fa15229574f1ce5015f708f8a3646c818e9e418c14ba60f29ee153e8e478b62bc3a0e23dd045c58ddddfee9c90d5858d3437206791cf3b18abe729c581d06bbb40d0145b792f240a450f912a1671d09a9fc60259c8667c913e3fe81152568658664cda814b860827a5eb442fb41ec05779ec3fae458961c1b333f88885e16224629ef140fc8a23c7508bca525ecf392434ba248d9a127ee68db68a60eaa376b18c2c4213965ca1199c801b50250cc0bb3f894c9e450bf7aa08a52ce06ddd827d69f8cf12d981b2bab9d318dc87feb5a06dbf368ebcf1bc541ba15dfe9d55f2efdd77932e91d03b4ecc37a4034b9644602e007b87e413454e20f42a6620fd4b22c72bf49826e25d972e11fa3e9105acab7893896ca6ace4fd216fed0da8658691214fd208ab3e36e3da4ab75f2011b9b27485379dc847ca0ade1ef2a64b2349f939cad6fb3357060240c19f81530e82226912c22f993b7eee2af928ca7bcfb60764c399fb7819fbcdb17de003206e1746ce6e655e9f6a5d40447ff8ff49182b1ddc47a0c8df10928c4101751595e7f35e304b7cd933cd0a5a34b131e5389eb47e961acba3456a7f41756ba6e800d10027b0b0dbc6807219f9a0603264de804906fd55143db312f79736cfdb0bdd64336ca70c00593e3e1111e54018ce0e39a24f5b02a6f031de55dd4d8f3083cf9420f2941975da306786b16d0c1f1b269c6180534a5b697bbc8c34c4087b6211b0569bd8be040a26cb06f4d95c8bb535f2df6e3a4653aff0bafbe3ac99210e5eb036095f78da282ff1a6795bb94ddfb59a736fbad45ec2db4b14907b29bd9766566ceddcab1e34025556dfbb04684f99946174dd0446ffc4c12991058bfbaefe2d4df513e85d0acdbc2f22783a4170d861f4783707485d123e54adb74804398926bcc7a4b25547a84e0a38b4f0605b3979687ed6790969bd2385b5c6480489566ecbecf3590a72563cdbb05464c7df4506f7688631629080ecd647ddc5c5bd258571e042817be6185259473f9601324dcdd0824d6dd14e8b3085c14d0a8896cf6de932bfba9a66c1b34d51f0b548c7feaf867729b4a84e348a47e79a7b44b38f18faab2d7487ae9b8afbcf1c93e9927b4cc010061b12f76522a1bd8c601ba7591d12793685668d315ba11d738a35cad39ee52bd0006b4206afd726372b7cd7c396b3fcb6a775edd82ae9bab304159fa201813148c37cc720aacee893f1db6efd3cc6a5d0d8168b577112e95a2a043b39bfc20cea74b65b708209cec0d01a772e3190d8cef7bc9465020d512c706a158f552a77e809164899685dc39aacaf2bda7a49e490a84ced525aea513255434bf329e6121cee832c18c96540f0f241978942a54ebe66f6472afd7cb194c56b41cc5733b87c6b43d0e751f4a5192821e3c30ffff553c8b1edde424e87fe98ca9b9c158acf69e4433b11c5ee5a9b418b7522e448284febcab5939d089ef8cef62bf1300bd13a2127a1037ec4df08c7526c1a46001c9f4a57278fb1d6d783b1fc9d0842fc55603e9110605492b7ca9727a3360413b0eeba7e3eb74b94ee9a0f090c9266d3692c8d2fdb40ee8abc9c368b4eff070c600a3ec629253d0d191672798b7942fd86501f266d28daa0688d25c2734d0c577dc207e631746690f0b2f83dc0167a2bdaa87af7095d5131ea96b7e9367accaf5ba9b0184cdbe614bbf781d4ccacd4b3d37fa2265c6a072c970f420b6fc4b42c2803c64631569933113d4a4c4ece864dd26d2174802d051230e7a58a01b9af60b9b083f8272ad50bc15891b474713ca138dacd49bdea65dd251a792b1780fef08ab887bc53ea80b058fc5dfc8c5e4d0d270363c3d1c8c160307432980c1d8c060327a3c1d88919c653130c50424a41e48b8eff0905455416369f4edfea1889bc9ede658a041376c24ba27fe5fbe9b240b31afd5276588179fc9e4ce0e394b9d4ae044c853f5adeccf041c808a3c6a0be16985a9dccf021c81a91c644bd16187a9cccf0019459a7bd2246605455a25a013f14192928427d04211212a52be1039115a396c3be3630359d4ca03ebcee3216e654ec461f1ea58a2b801ff567320baec4b80ccc3fba5e66a88fc829f3e88d169821ee641efc7ad61e32c848b2d1a47ba0208b6144ea4dd0f4dd8e27a307e0c8eebe45aed65489421d40e69d8607469c50772873111fc81a4519d653099391f17f680e96aa9c3854663202ff31d4533e9e956dd3c6e1b224b53157f1c0f86bd3cd3c5849d15f4e5458aadb7fd1df080f44a0d3b562eaeef8ef83c55782a22208e75538a3f378efe229ab0339aba1cb4d7df83cd6819e19ffbcc1063412b6a8f880816f418408e2eb6668a468e960ec6106f2c7c7175403551744b19f12dff337867e0879dfc3b8b3ebcdae377303341d9731ae47eb475240875efa32963d62c952c1d5b69e2c31f5f9fa3d1700bfef42595b4fd5fcb01f7f654d6d4863f54de0e150abfb872d680c45814bccf496c943ae4534e13ba6cc8fc163152e64e96095c3a806af45c2e60525ad4cd575d0dac5e0c9dcd0681d6891a34e3c891564cce98514c190349e6b5e5691b19310c3f0faadc7d133dd034592e4c3b12a6d7a00651a09d35b9c193bf25529e619fd9a9702193e64e6662d08333d7fcdbfacb8c2ac13fcfc2cee4ccdeb88a7a022af18c1a16a6a365b8d91abafcfc18e92c3901270d9ac87e7d201c18112c2cb1a5632248c2c4fda4b70e29713058522b614dfc04405418b6b36ba00a20a1634e9425c1f0a106a66a232bcd401c2b826f311733342df488fe122195e5032633574030d8e1dd434e704e53d4154634c6ad201621c713d6217c12d504408347169bcf22f27d21d837662ae452bafe398002c6dd87573a21e0d06efb982b281aa0eb0e76f01746653d381294d1d418c65221ffce11de746b0d1cc58b054ec9564b820cd0c3466768018cbac86f6cdc4ec210ede94c8f835d1a80bc4312682635385ce99447c1f18652c330d3b401a07ce9de4e135c46ac6da8971ab2c16420b3a38cee80dd418533575800637990a089177a018ee2233d1d029a871e03a62d60948ac23b604bdace1c0b28a5e4051824b1aba00373676860e8c36834392092e3d16704d34eb92f12146f4dbc1dc6b1355c9f7c52dba47eba3f99f779b41084d45f5f5d3c235581e3ed54faa8d1900650e965d6e82542a99d827ba3ec24d68423d33d8712c4b33e6e2a961cf2c3917f686b99911a538b59221b8c44b67a853e6d53170d3a414b47c6d543b52190c9e97710430007e0b3f933cd2a4fbc1e414cb4f72448da7ea71af296a268be06571c76f6004399f3bb4db8f12ee77a7217f394b10ca3d8b4c14c409d60728b3d703e3dbd03a45be094bfb9b2b2ebfdb903777a1b1029c73aa64ac0509fc1e71f6e9de66386c8931ed8d1f5065d823c602cec3e8172dcef360947816b17c7e481d1551e13c532191dbb511337647bcbd81eaad28f38285a1ac8d36b422f07c1378a02923bb0a4f2bc41734bcd46c1b1ddf382bd65b72fe3174bd48b6d924a8053af4c7cf0dc894971d43c245d6346ca1a1fc27c3ff7d9bd8456228cc408e0fa256ec55da39040860e6b74f7e91c31668b477dca1d267d8f6cd032846854a69f1e476ade0fc0b3a45cc0c7d99b19e67573e4c01864642e67b705f1015b7f33c96deb64ec28ba6c9d5d81de49835690ee4380b9ad7fbfca288f1bae5848cec6f909a7af11ffa79db9917c369d32749a4feb364e8224b8fd2a7505b4763b846fc9956cbaf50e1c471e8dbd0422896d0daac01a7bf412084d7ca78541343843801e3c71d463613d0a2b603140fd8c9a39ac183f7c2e0ed6aa5407fa467f4985dd3f7676d8139483acc9a850030dd524351be9a3b0a94e241e25f80d5a432baa6739ebc88a2848df6bf4d93ee20eaf3659ce98a8598e6a233b522f8039b35828eca2f6c6e9462a68b816e0fe46d4e5e28f15a5582f6fbaa768467e8259c3f05c7c1cd9079fec821e86567c4a314ba0839f203e8ae25ec88d25a49f04d585c5ea5a39ca3ad42beba06d341d360eef69cad2f877a7f8f018eaed12d2cfe0af1411e76edb14798bf5325c3c61e0281f14e660d17d4f76b462b8a99a129c75924bdb2b3e5d0b1cfa160f602f1fbb7094d46f4998fd1df8c336238cca9843b14d5a669858fbc2dbd3c01c87da3ee6dc0a301c1868837d024530832aba003cb14d85e6c3a74ecf00f177987b738fa8c9dbb3b912210e8e6784aa9ca1ca7f404ce8dae00387ccd06f535539144046bc1eb1f4f75f3278bf892e44be95458f8a743b657d01920032e74943ec57e160d7408e073e1a36ecb64d1f09b68b9660309bf5af239b08e9281446cc190232112fc5352741df904391327bce3e62d2be53f63f5e357b3ea01edf957e5d9f6faa5b9825e996711d815062e1c9d366ef2c4cdab35579615d5107674cd0584dae10763192bdf8f0649d66b032ea441f9a3b33f4c00a495e9c8472a3040e51ff2a5b02fb79ee75744eff83cf0b6debf10359ce3ea758385562d3f3f06f2b47e6cb8b4a4d569e6eae542318c98d992e3e23017366fc7e0c9171910c356a9d1e307630c704c79eeb35c1316add92bf143438e1ec863fbbf9b16fc354ef0cb06ebca089c0262396e7032fedeb340874b8817c8a67215baa0aec03896c09403fbce27c4423c796d4fe57397b50a067a86706fea296513fdd4f577ae32e0afe18772d6efaf36e3ccec80afac48f6c1525db058602a11f72ca4b2a8ebce69a35ca062ecb246cdd0e6e6e4fefaca11aba9593f61caf737c768674179f0e0b9590c4d2a0de2153546c79cb1e7709813ad95e70f8c6231755228c8c9110a9e13f5f89cb52538202e60aea0a5ee9a9f7f1db3a4530925e714580bcfb54d8bdb757c8d5be42d12a9dd899efee3897b4f4e4165c4acd52b9176f3505ca30d801d8edeedd017256d1561e88523d02ae89e1dcaea9b68dc58447aa8c75e4583dd5ba48b81b587ceae500a962bc2bee4f4196140ffff11fcc25fc17cbce813f1eb454db41ef27f5dd6cd4eeffef5f1c52e875c6910620236182d759e3ffb371cf0f9692dbf64569e2ea2bfbaf4185f7f450094a024df3dc5699dcd7552de4e0e4c8f4a2f4f9962692c64399fbde62c73e52abce8c3bf9ea35d6a55876b1aed5b6ae7efc4b2e9714f370ed4967f715a2ce80955d4091275fd2b7a477670b5792f2772f82990c6e48325344203cf313a31bec1ae0f1f988cc279ac466e9fc907d4791690fcb3bc337269b9931f8acaa695152ebe7a22ecd970d12314ce3117a15755b269206a975015a5bc20780a7341a602e242583315b8ef5264832ee57a68ebf6a7277b759c16ae4200c228b237d081c2a345329654ce976eb4939b46841000fc9e94c6b7aa7620104a9b037151a38433fded914a1d079506f926a16fadd6b8c3e3d676cc28a5dd90d1185dee50a5b8a7bcb759ae15a6567918a82ca129ac62a6965670743a86c6c90e4eddbe7d9e8a06bb717df79546ff528e289e47580982d83edfc0f4478f98af84e51674eabb2009ae7e2208b940f13fb4295f018a8e457093925cc899d024997c5a4619cac16b58be05a8e9400801005b6504b48bf07e61537cda2a0b1400d6adb80804a966331cc89953ac2fa66f0f83bdc79c5b007ca04b72c46172a9409d6547b74d119c3dc64a770d2b686b314cf5470cb9f4d63271cc71ad60ce3f6c4dfcea97699629387ca06cd2d45a17305294ccb451e56ed5e0d3e2a43f4e3b36643809c8dcb1f2d65a046b26121d01a361388ceb7c822f2934c6c896e03dc68cce1b846b6dbccc38f669c2bc19b72536a32562011e706d6c7e750a2e9161f9d61bc9e199b85093cd2f332e8de2cbffac7f911411fded6098b12052e760d4a29ae4f59d7b820780dd818458bd3078c57fa01c70814e0e2e4d2325ef0382ff22c9201a14d16c6780403768af917749ee5569c399b0dfe6d501a433c124b9a07806943cda7594a09530bee1cc51978a5185d3e26d7e0926f3248966dfc2ed0f6f0549fd1633a141d7d5a2687a554841a828a2697cefdaf3c58bace4c0acb81bd4bc005c92223ea561d498d5024413eb02e8f0230edc25e60d6e82d5069e2a61dc1d3c0daeeb1ed5b702fad0080e4f44e5b1d194a9fce57e34c50a5ee83fb64193dbf3aca99da807858b1349f9eeac3a41f88e4733d83d73c30a2c0d5f235121105f4e95e1b92c9876038efaabab3922e7e9daf541cfaada1fc29e110abdb2c8de54a30fde0ccdcf2d5de8a4899609b51dd1373ff4bf43895bdf01b873d2368741be6b841f63b96aa7e07fb1ab0a95a6b04ba18f975cf5ca631c9965be22776353d88b44e17a597c2dd39e02b5b55855c966a913243970b619c052386310ec38c16c1013dca146156d6b8799f0f45a05d7359415f96f1c679c38a2f5c1bb925185ad8fa1281826afafa23784207c21c6e2b0cb01901833efa1eb1dee7519774f359d410969482534b6c3e24541a98090905dcfd8f8abe69781fcf85bfa7c54e91738e5c9f92b7f841d32ac20245377a1866af491a768003ed81f5676ba4005175f4c3a82eb18e3aa3612c82c76b17104942416105f4a69164d2bb800053392f56a934cd3155e9e9246b6a30cb5cda13671dba8e0d8f66f217152291555047406b030280da4acb284ee8c777c13aefdf73902cef648a413d9056b0fc173b8140606ee001a3019cc0325e76eb34d79eeb10e1722b0792e322944bcddaede0f0c3f302489e69b802017e9c901631fe1b183789d46b6072851e4b969cef6288d5b217e5476bbd19cdfa610a0212d211e4dd5c97ee54b861974fecb0e74a48d7edcb6f7ae8a2213f01bcc2eb0096bbc745a38810c0995242c3ed13bd48ca0d6084c09a0832f0898c0e06733a3ba0e9f7fc6f1ad128a7f0a2811bc08d59170f97f1c301ce9b8a901834000a7a16ab1f248f4920b31e1a4f4e71194530ac1dfd03a09999e38545ce75059ff354d3a300137d2a0887e8f3bf8ee3800521d173bd5d92441599920fabb320de0521bf0138ca456598838a3979dbd12ff9b11893731aafb694e0b1ff3350362ef42c5bca4697f22b0a5476315a528969b3c472353e599550ec1387485ae282804051518845652b8d0a300bd279154a56471f0e59c6b5c81b0229e18fa17840b31c8e06b5006ff1be7e6be69e12f119670c64a354ada6b65f8558cc453cae50e9b6ad425da6847f45c86a7116724b23d9da0aef254941a53254360989eea6807031b5ef97ecd96f04220638a2314716327efe2fd819e80625fd0c3e1bbd7595ea9051ae24c4ee2f7ebb0b7b025b5c4a5345efec0e5ad7a5ed7c52ac02152f8db673cf1da5024b48702517bf575481b501f0fa67dd93e8dfdf546adc4eff39007b3b1862f1aa5bad8fb672ea7f0f6a1bfb4028762e6f3f47052cbdcaed9712040e7ecbddb9e83f086d01f7bd135bf4939524e4b8ff1294ff2fd9b8a58afd7de795d3b917fccbe24a7bef74708b23a00a3abd5abba58b0494e23c023bfd03600d788497feb090af8b0e96760305a97bead42ee48db80a8d66bcccc65646901c16f8c787cdb18d899348b7a858a902dcdccaf01d78c24a368a4f269c79cbf3521d81f63d7620ad32dc3d471ce207e6edb7313f198174a017e010662ce42146bc65a471d21acf7299aac851aed216c68b4310a7ebd712fce704952d70a7501242ccd46d37a430075160cae7a6f674f5f146ba8d76abe555da5d6854bee76207ffcf615eb17d2ff88537d8404319ac53fb5585ae89dee3d95e4e47e0ce74815892b0310920faaf08e3ab0a4f30fb2d0a86673a2c15c1f6e32b0a38c9b85c26b47d9645fa254114ef8007b4050faf3b46aa541c45c13e4e4f54ea03ec96a28123a9fc4216856df8cf476c6070bd23072acdfc34c48dc2b394e6c1fbb8759bfa7fce2864f1ec0d1a91ff760e260d082df79f9b2d1833977060fb2dad52e5a66a1467822fb5b178f9763a7752baa0adf1305ee036d0fc71e25aa707a3225819c1c1d90b5667bd2761dc098ddbcd60d2ca945dcc99ba6c4868d86f540ee46fdf3efc7dd8ccd3dd5bea3c60fc0dcad2de054cadbf5f42dd7242760abfdde6ec90b8c143ab89b714d16251b5348e4b256c5c1dd950a8b76d37e97fe7439c06c865a8aaf067753e001dc13ffcf9c73749949cff36ce21a2c2aa4e7ab5cf2d3816ec0efd43fef624f087f1a60decd606a68aaa30bf3612891796343d318aa1ade3933f4dccca12970f4750cde78dbafa0648bb5856ade5b2e6859ee2aefcc03ab9dcae515c932d94e33a1231483310b299fa93363f0a6c9a8e853a5c2c0d333ea1c23ba344d8337908ccbe5e88348462abc4d01aa1b76b6e298c6b04fdb9fee1561c834127d2893f880c4366ea0dc82a03e0eb7ce9567177fa2012f4767cfa3bd2a29b9dd9411941b12da28674ce753f57113e1477ea66c01e26e05f3c7a3e9bdc6738c15ee1ee6f46dfe944f55b0263e33d5a2745adfa25c08b945c56499bb676c10e6431e43ea24b0c9b7830593cc202685bb5b01f41e1f7b4b6c5261728eb58ec0c9de0d443cd594122b16f0dee140de01efb3538b7cb6f20d8930c09b26d9a7d4f37c5e0642a0ddfece93918b2dd7cddd6ea594e35d768a37f72f802720b180aaf968fc60cb88fc4e2baf3cbc2705de68058312511040d46c3acafa7b7a735a032ecd6b0dd459deca9bfc8be61bc74844b9e4b16eb8c4215210db2194e0c8516c977314dbe53b0a2c358f1068ea3d0b54a7113d5b2a411ffb16112d697b77db72efbda59432fa13fc126c126e011438427f7811685e845700058ad03bfd101fc277215c877852e643380550600847fa7d3e08104f6e3c0827541e844f0005824895949494945c02285029a9090b9fe411408149fac3870f1f9aa8f01f1c0228f08387790f4cfcbc077f000af4f0e5f7f91d3cecc084ea3b2c41e13bb8035060871409090909c91b80029174b9d71dbdce439d6b9da73adfe994a0799d330005ea5c484848484848484848c8178002858c8c3a7823232532de28c998377205a040a35d97e780b5e739380828908326cb0ca3dc2048870f1a51beb26c95208cc192a5c81c3118cacab2c46ae1cbb2f404a0c0f2fca2dc1715b946c2e48b3cc58af1454754f82247000a2cda7dd09789d65a1f59f25a6b3f000ad44fa487354fba2e42e7494f49df013182e749b7339e7403a040b2965fec197335042d081f1f3034d1e1030c9d192cc8eba4880a1300fde805d8e7abae9ae0e3d512c05ef50f50a09a9e4fe4f43bf7441e127911c97aa212a69ec8ed559a277202a040a2a3f7795d41799f0351a06f002830a35f4ee7eadd0580025d6ff0dd860dd9376cd8b0c1f586940e8edff0a6e9475f51e09873ced91f056614b8214a839627afc13d40811a729fc1c567c89f21832765a84b150c0659ac1932b8137e2a3f0315162b44c63059e163cd30b485cb90601f247832b816209fc1d594d9b03bf86cbbb0b8c0cbe2228b9b149e70adf8ecbf282e229fb9f87cf600a0c08c7120bbad180746f0b011c331163463c7163fbabff9d14fc0f9110a14303f7702e1e18245cd8f0e80b10e50608628b01bdff3103fe1bee7bb9e7bafa7bdd70343fb5e516f855e2ff77a65afe729e8dd7a3ddc1b7b2b7a42bd9eedf57a3dbff1422ee4522850681cc7711cc7711c9d03143896604abe741328b0247366917f9f730633e17306bbfaec51283077bd0e13e6b543a1409d9261ba9ef427df0005f602f0476a6cfc913ba1c0232f316e6e16ed962e7a92e83ffc9473d19da2c8047ab103118ba4b842d489a2a7608517712216b5b8422412b174bc28240a8945a2e877ac8c9bdcef3b072db8f38d5ba45346be315595159aae0cbf71902cd137bef222d78ba2e838ec850dbff19917ad44b12762b4177330b778d1751a142fd98bb7ec0aebc58dc55e74bbf1d88bf6090d12182734707e04f3e3b8c2921f5780f3631a2a3fa649fbd17f625e3f7a09143846f57abd5ecf9b5060cf7fefa3cf1cfc1611e7770726967cf69d0a813ebb9b11f3d99360bcd719319fbdd03cf95c86cf6767428199c7e3f178fe4381bc126f5466c91bf9120a34daed76bb32467ee72450e04ec41785d9f9221f81028bb490909090908b4081421e3c51588f27f2102890a8d45a6bad75988dd75a3b0814a801f03ab75caf732514a81b7f273df97b9224ddab3c497a9191f2a427a1403257e773fe0105e6721469a36707951f203dcafc6566f1a596982e332e3d3a5af4584baf3172be740f28b0f40e2850cc53432d5cfd9023a1c0a11c7f7bdc8ac73d0ee74919877b9c4759799c0d9755e0dce282388dc3790aae1e3784cb411c8ec4e14a1cce2f167eb25d5ac0f1b8cbe47178100e875b81c3b179dc190c15a8dc2009f46545bbe271b5474b0b6ddcac16e73802f008334646171a837ae0a0b0d2985cd971652508977526878f158e1883d67db31ee7460b20175b50826fd2acfb6e3dceed951742f342ce01050a69fbf32d95cc976465be741f0a2c358a4060468c3871f347ccbad32749412fe5c50a57973e532ea85949b22f4fbaa34092f7ba0b1991d7be0105ea31473d282ffa6ed08b3c5e740dae62488c37356a9465297f0cf463d58a3f5b5f595bb870ac63173b357ef40c2870f42314881b4be1dcf9d47b28307d23e46ffa6f697fbbdd6eb7313c7f1bbae1186eb7f176cbb7f00647ec6fb81ba0df77ea52fded170c068337f1966f34e8a4c57045ca9f172b09216dd6dc9003a84d0aeb4eff66c3c5991716b219696e40a49875c9f12488949bdfdcde7ebf732fba1df4a228c2c1028abb534bce9e8ef93c76e3f31b239fdd0805661fc7d1f5e83b14387278d20da027bd0805924428f066bfdee6d6c9db5c87026d441e251ffdf3a87b86bac1a41f7e1a1d75a7282d8f76f0e3b70d43d9a0960cf514e027ebe586844751b4df770aad7a745fab477ddfab476f91477f003983c70c0e224b56d44a5a1e2fb32c344a5877fae8b65c8fdaaf4775d0985206881ab11c67ebb6688f0a2183410c983e27a4adfb061f1df33aecb5e750a03e22a34a99256a6abc41228e2ffa79d17586e2a1015a62760689121cab38470d50347ab20dd6932e8402c9214164dca92233658524f9ecf3589e19635c9480a5b5e62e77a47c761c0acc483fb209f4a3a72870bca140148bcb67c3f265751720ea4dbf66cd43dfce6acd9685936e4db53121921a3161c484091326c0fc366133613361333146856502ebb7091360b61a51b61a5151515166f7cbef281b5554d8e3281b55545454d499d6efa828303a5074a0a0a0eed76f2832323c281a148a0685a241c1f01b8a0acaec37d4d909bfa1a0c01e3b54304385a04a57d5190d2a2635d6f1088b312d4ab08345cebaa1a6d480698148150a55d2d60db5444cca96989cae20eb8642f384e6afefa7414f4f644f4f688f9f9ec21e3f89f5f9fdc4e7f7d39edf4f577e3f3d813df6a760860201e38c0b39caa8b18363e5f1e70ad5903a4d94acfb694a8713224978806172c2ba9fae72a43085448990b0753f95c0c79d283c4ed0b1c6ccba9f6c0c6dcc7eb410139ba167dd4f68930dd0261b6cb001dae30dd21e6765e141b93640b93640b93628fbbdc10bbf37d0f37b83b32ebf37d800ecb16f10cc5023a490e38e59162c16a8cc562c25c99b1864a02da95af706476b58f071854f5830b8ee0d7c1009b4a68c580cb3756f70d5274c9924696256c458f70659eff312ac01439caa2baf756f80ee70427738393939993d764a43ad9c502b27d4ca29cf6f273cbf9d5cf8ed54e6b79313d863770a6628db678c17161786dc3093b2aa983a218f1a2c414a58b7d390246746a0dc5182c6cbba9d4e40b363ca0d2951ccc459b7d315202b1e2d54404961c8ba9d964cd92a43850bcb8c24eb76ca53224f891225d01e97282b5156020d96408325d012632dfc2e71e77709b2df25ced6fc2e5102ecb1970866a8115a7ce1b2a7c80b657aac5985b06903682acd9a294ad65d220884c79c21695b9efc59778907aca892c68b8daa3b51d65d62ca9f3a56d628c92ac1cdba4b8cf044053981769001b18ab2ee125d9aba343535a13d6efa6ada4d784eb1a6334d6cecfc6eaaf3bb89ceefa6333cbf9b7613d8636f0a66a80c94f1c93246e50ea02d2b129a397dca70906d295977d3940f1525a8b087091020eb6e62419c34625a18a2638524eb6e02d2e6879e314c5c5c59b1eea63a399e8879b2b523888a75379d42984e214c4c4c688f99ce2ba6f38ae9cc623ab398ce2ca639bf99e4fc668af39be9ccec371313d863670a6628bbc56c0f992f20643f84ac6734de68019465469575334deda121070a932a7eee1c593793151a2783c8a4bd88518564dd4c575ea298e508e34184c8ba99b290d4d803d6840a0dd0ba9960f8c1f0fbfdd01eff4cb49f89f63ba77ee7d4ef9cfac1f9fd1bfbfd7bf3fb7716e8f7eff7f3da6a934214ab1e6c5615c24cf0d2074ad7979875ffe2dc48a10b911d5f5b66ebfe597dc0e5cf8d601b1f3586acfb6723b8428619ab2940d6fdcb7a1464c1a3058daa87d79675ffc42c89595a5a427bbc141686c71c5b32c796ccb12537bf97dafc5e62f37bc9c5efa525b0c7be14cc502e98226488162e2bc20c5a5b8051c2430f1a3b51d6bd348552a96136a60ad7d49d752f5951bde022ca9f322c542161dd4b57337840d133e5c21913d6bd546449113e58b0c008015bf792698484698404893212688f499858244c2c12e61609738b84b9458285df24d6fc26a1e637093f327e932001f6d8490433940764b441a3020b69724c5855b00588182f746604cab36e12533fb2d0a18382952b54d64dc2ea090b3060b8c4fa74593789ab1659fce050218b05d5ba4964b921e352454e969a3eeb2661d61861d6183162c408332dbf47a49954234caa11e68831aa1162bf47f8d1f17bc408b011486903c84bb0069515d63d228bccc894242a90c9995af7083a7689ce20116522d01e8b48231331870c0f9a0834116822d2fc16b1c26f11687e8be0f2d3e4b7882f11608f5d443043810008478f1f616260325636314819630347132dad758b98da42a54d96afaa13d62d42c5140c64bae820f98ab26e115f2df6081ab3078f9b758bc87a2ce8071c1d2540f1f266dd22b66a6242d4c4840811228407bf43d4c242d4c242d4c2429cf91d822a8499df21a6fc0e1102ecb1870866a81160d07973830919272490b0c200c8070b70d28495ad3bc4121492481102c7cb578c7587c832019c27486208138c8167dd21b6a680980202040810668f416c81d802b1054285df20cafc0611f61bc496df2040803d7610c10c1582b4357794f899622363b592b3e546cdd40baa24eb06d101b43024cc28a1c999997583e0c362aa0d981651a6d85937882baf1d7a7c606112038f35eb06f187070b2764d90227caba416c095112a2a4a4a40480df4a574a574a5b698c0a4bc90f99df4a4a3517493517494949781e9b3d4eaa4d25d5a6926a534963647e278df99d24e677929bdf495f49608f3d2998a1889e08aabae263cf0b3a27ace1328646932b7848587752963c80cebc88e2a6050aeb4e8af1628a20129480c50063dd493194408953c5090c33eb4eca4a019dacb13075765c09b4eea4ad3c1ff27cf8f0e10307bf3f947d28fbf061ecc38738bf3f7ced0f60251a0f251a0f1e3c78307beca114f3508a7928c53c80fdf6e0c1831f3abf3d78007bec1e82196ac885aa1581ecc0c0e266c5564e8670adf0834c92757b982ab17428b174e830a743870e6651bf3ba4955c1d4aae0e25578730bf3b80f9dde1cbef0e7eca7e77e800f6d83b0433d40857d29021d205858513acd6153089a183c9999114a2acbbc39409757a70b9933624c7ba3b0891c1c30530572ba6d6dd2109952b535f47b0b29aacbb43d66b0192c21c3b31f0dc5977872d23484690909090a07e2361216121218d516121f981e137121258598343598303070e1c9e7e7328a93894541c4a2a0e5fbf395071f0f29bc38adf1cbe1e73007bec1c82196a041c2fbccaa089a5e99187065feea0e11a3343859c7573300302f6e584081024ebe660f50c9222e40d0c827eb8593787407629d02074ddaa4a96d53215edb15a06d5ad8a79fd56bbfc56bb7eab367eab2ad8635783192a06687f4e20d264480b5b6b99131a6044b888e959b7fa002e29a0c180d327acc6bad513624871010c159c16eb566d182e3f50e8a2e68a93b375ab6dbc8c6979fd006327c9bad52d3a3e3a3e9fcfe7f4db47e623f391f9b8fcf65161f980fcf6f9c01ebb2f98a16a7f6e084213b44448929505566dc4a860dc88f2c2ba7d535a8c6b31ee8ee7b1d9634fd361aec35c87f996df4ef558cb6f3ff2dbdd83196a0422567eb6045595f0e3081a0930a49ce912866bdd9ec38ccf203124f491c1b56e2f12a6c5103424546dc0acdbb7a66cd053366c988337e0d91bcc36a035fddea0b736e8ad0d1b366c4093f27bc3de00a66b68d0353468d080f65883a69af35883bed2a0af34e82b0d5cbf35a4f05b4396df1ab8fcd6f0f5f8b706b0c7ae2198a16c1797167862003b327664950a2445c7d79d1777d2ac5bc354005a083173d3440f0c23ebd66025803b5988f439e1c596ae756bb8920283cb9438328cc459b7061743d2acceb490c2ba35d0c9402743860c688f3390641948b20c245a06122d03899601cbef0c577e67b0f23bc3cef0f53803d863cfa0429932174af8f888b25ec172e76b05122647d69d61eaa3d06853834d8b3561d69d01c795392b6c99e94163dd19fce4e16272234f8d7567b8a1c5420b2a00424bf264dd19b01c61393a3a427b7c44721d915c4761476147614763557e1fa1f0fb68ebf711da98df474747c10ca544c785182c5c81b3a5ca026294e1918220197bcaacfb8805396160c24c3982f3664a8e1b255fa0d459f7d1d55741a355264a0b1f30c859f751d61d155408e4634c0e1feb3e2277f4c81dbd5e0fed718fb4ea91563dac1e560fab77c2ef1e95dfbd29bf7b697ef7be78bf7b608fbd17cc50e25530eb0793342e23795ecc30ab82638565dd3daa2b2eb84003e3cb1437ebeeb5d00a4b9bca82e60f9475f7665c71a943c3090dabb275f7b6c0d0c3429c403b9258adbb97879787c7e3a13de695f1ca7864904706796490a7f59b27e5372fca6fde9edfbcafc79b07f6d879c10c959b9cd10174046c8523ab0851a6b868c1c1a4c78e75f3a63870e545122a3bfcb0c062dd3cab30195cb6fcdc905166ddbcab01fce013a74f0961ba86ac9b9784029d16563efec0f8b36e5e17a32e464646688f8dbe8cbe8cc48cc48cc48cc6a0fc36cafa6df4e4b7119aa0df464646c10ce5c1869715b1222e44011226f113c78f8f2e1c5fd66d54001b79ea18b1dad264caba8dac989322685638f282a041eb3602f445c404264f58c851b26e23232f7854c4298361276ddd46a391dd6864b7dba13dde61cdc1c2c3666c6b17b6b51373f27bd7e4f78ec9efdd8bdfbb1dd863df0533d4074ab6d69cc510d2e26cc568d4d0310206eb488c75efa6be052578ecf4316263cdba774a985881416b2a8c921aebde8db98af3421d1d35b2acac7bf78be1889a2063e2f8c0b2ee5da0a240454545688f8bc660d1182c1aa98a46aaa291aa68c9ef2225bf8b92fc2eb2f1bbe8ebf1ef22b0c75e14cc5022e02103ca9ab02a275f2b992d5b5eb890a6499975170d4a6371a6854b1a372bacbbc86a0138bad0b0a0bc519165dd4557ef41caa854a139527667dd45575c57ca6cbcc13202c3ba8be8d8253a837e13cd097d131111993d2612c988ce9011b1c1fa4d84e437d191df443a7e1311813d76a26086b2615775a8f090e2868b9c15ffc8a3c64590cc9bab75139991f171c14d15153668eb26b2022aa9a225a8820bda9c75135d41596191e6ab0b0b1d61eb26ca520af4a68c0c165ebeb2d64db42562d18958743a9dd16f9dc8a50bb7089606df374b6bcb8adf778bc7baef06dfd77ddf4b0785df57ecc3b260308863dd97cd9d3324bc65d70c0bd8ef8b76d33ec42d5a8498aa4a07581886837c58c44588b3b0d60d3dbff196e32b1f62fcf521c67656848ed97c38870a937d88b1d9972bbf319a8c75e3b40f5bbc58779efa90aa6a0accef6c95837c988b7ce861a815e6c9efbc95af7c98bb568439ec4c169bb1eecce64313e1536836e6ccef8c7663dd39edc3b0c514d59a25bf43ab1deb0e837c1816c1fa30cc623327741feb0eaf7c187665edf0ebc330ecc3f00c0c2ffc0ec53ef41aeb0ed97c185285641f86651f9ac530e577881663dd61da87628b3414a9aa3e7418bf45abaa758b413e148b7cc8220cb5ae4c08c52b1fbabd73554081ba1e493e971bf3b91c09cfe59a3c97f3283b9fabe5aae4724eb95cce96f314b4f9dc991393cbe542e4fc1651011a1d47b8ccbc5079ad2248cb51e6ec0d8b3c31e4dc7e75600ac9123d60809cb1901bd2824713395e2ab4c6e43c44ee431c7d08b77b3e8487214290d0e543f86e88900fe1b70c0a0c31ea7464742ae8763a9ddbddc1eb743a333a36afb3735eb72d9e1e545ee73ad756365ee7e9aeea7556725ee749535ee7bf281f625ee72776bcce0bf0e3ceeb9c0140b6bcce29b0e375ce01fc64bd82e8799d9710afd7f90d43813a28194aecd849b362a5c609ec9dbaaa90113305840a0540ab935bad77f24b06053af9d924a86985a6114d4d6e7707dfd4d4e4ba0aca37795a55e59b766c7d130f1bdfd4c4c3ca37f5c8a143ec9bfc8e41814d24489020a1e3cc93f02b060592004381b930aaeba3fc8641815148611ec91d09090949cf923461d48cf1d8716345729ba13cc000886c0a0d4e1717d69d6a3d12d5eb5ce7170c0ad4e572b95c1717a63ee7f70b0acc7da140a4b1a36772a63abf9d3a7826db85c70f9667f29d10b4159ec9937e7f843c93470162f14c7e02109b67727b56e699fc7a41814c5f67556fe44660dec828e746464c6e64e4515e6f641a7d3132d21919351919f91192a60c1f3a62e830598da41ca11207c709582cd69dbe91560c155458a1880a2c15464741969471d235c6c91223b751725e59f7a5d3fde8f3b567c91d284bd69df4bab3af174b6ef470b362ddbfd7e974674f5ea73bbb7a9ddf2e2850677ba6175d614ea18d90b1345bd4ac99317ad920cd9c29316e6cb400b3e6dcc290c6650b0a3402c124e289dc6ea727faddc1131111d9337ca81cf151814fda1379529f264fe4bf3e7a9ec8a39c3c919fe862b6c2137581410b0a24c2f367c397d9ebcbd291f01392979e5496a547d5f9322dbb94b70c51aa288d4ab1f414a47d69547695255369c74a5d39965df898f0e55099b994655359e64a5dc24006860baf293cb25602d020a3258d561518de30b5c182078dd50c2381ca354cd6a04913a84f8dd20c9b3329d018f3e44a39820c412c2cb193b6234b582956e6454f90ab1640ca302b3a525c08133655e6724763223ee7f4b90e3ee7f6ea731ee65cdbf99ca739dfe5dccb8a7cce935a7cce7f403ee7517bfa7cce2f170acc35b9dd51dff4e64e122f2b24579adceea46ff2df37356df926f7a62f4394a42983e38c089ab5e9851ddfe4370514d8a4d3e97e23bd4ec4eb38789d4ee73bb7f23a4f6af3ba2e7a54bcce6f1614a8fb3169f91df54c9e0e7231640c9957112feb4e7a2631592aaad8a08327caba7fcfc4c4e49ef64c4c4c7eb1a04026232323a437323232f29de7f9f2466ef30c7923bf5750a0519258e787d998d90a33008508c1f52192243183c1089c12ccac21f2587d08bf56506088f389909ec8895ce331f34444ee6f9ee8c813f9ad82028992909090bae001f2487e514081485b28b06421c76bd75a6b4fd246aeb5478d794da4b168acf50acda4b5d65aebb40adda4b5d65a1369151a496badb5d69a4d91477224bf27a040242222222222bf54502051d39c6ff23b050536699d4ea7d31af14c2c107926bf525020532e97cbe572b95c2ee7370a0acca9b086eb8dfc424181465aec070b6542ba841409730a0540cbc1f5c50b0b0952d6b2cbd98a2ffd66a1c0f2090ad46ae63c8f97b33c0f3f8fe749190aaf3c9e1a3dcfc3f1b0f078960d5eb71db364cff314a819c4b3ba7ade1aabe70df17897a7e3ed1b26f6bc31749af45031688537eb4e29e0c407d5132866270c59796ae2840983a3cf19efca0d2f537b64783d31e3f1783cde9a1cafd3e9747e9da0405dce759eb32665599665599665e997090a2cb3d66ae0bcd66ed5b879ed77090ad44a5020ef698cd63ff94d82029fb409df997047c24fda4d78920913265c9bf03148de845b3fbf2ffd62a1c0526bb7da2f1214a88fa040135120dc6a3d08bf4650200839585fa4fba2a22247c24f3c2ff2a4a22277c24fe4177914912f1a2aba52748b72452a8acaa2a2222f42335305a44c9c34628ab45071f324c91993b422a8ae2f4bd7a99c16bef45b040596bb9c95cfb9cec9c1f239bf26a0c0dc969b08a72e70ceb67e6670a0bcf65b020ad4513bad02a7c9f3fc1241813cbf42814565677ee75ec98f5ec943fc94e195943cd57a25df4dbd528f57f23b04052ab9f91f50f80f1f3e7cf8e0fa83db9d82a1f11fdceb8bd76b0fb55f1250a01682023f74f020dfc16f1014d8611cb77e1c47221fc7b4213f0e8d52c6712c1a474f819c1fd1710c8e46e3e817cbcb8fb5319f308e3e8e78f43b368e99ca38f2c6713447c756e38871c4636e5c3196e358e7ec8d0a2b542d88ada3db323567f040d943c67e5934253adecc19b4a2069e1190953f696f92e0e13306a2c17545f6670fa01e639de0943239559e18111bcbb22ccbb22ccbb22ccbb22cfd024181e56dcae8828b9595325b4180c080650a599d346d7c9425a918740217af383000c9697d6e88ac0e0c322e655eb4acb99cdf1f2830c7c54573e9dac2456fd14e5a6bd726bcd65a079dbcd6da4fa880e1b517600594d7ce80157d7c889d974e8c145470d1e4c98d50ca86235cb6e4b8a242c69f95e7b6ccf3fc5aa1405e91ce75d6ebca5ee7b7070ad4a5466951dec82f0f1468c4f4457abec8ef0e145844d425862c4fe4b70a0512691d2870c461bfdfefe87f48ff73bb45fcefb7d3ff3af89fedf2e2fadfcfabec7f5ea6fccf0bdafffcd7f53f8f3af115e87f5ec1fff9cd81027f5d807ee7bb1ce577633bffe1a7d277ee14b5ebe077bb1d6fb7dbe99da760b7dbed72bbddb833777eb1baf0f9dd65f2bb9ddb5d70a7dbed5cefdcee76bb9ddbddddea02e6e1757e71a0409de6d2d5e541971a3919b95c2e97cbe5fcde408139adb5d65a6badb5d65a6bbf3650a0be1d0993c42a0a565619323c1e8f07e5793c1a7b4ce0f242490c83beac3c9edf1a2890e7a52cddeea32fc988f8d2b7d8f9b2f49d932fbdb8c4f06517982fbdb6587de997060a2c7f3350e04eade3e655bf3250a0bae4bba5a5a5a5258ff2faa5dd52d6d25270492f2db94e7f894514335f5cc0d2726109ac480c267ac0b44e58aaa3e297ea54bdd67e63a0404d07cc8f7ea750e0a861a0c0a532dfaf6ec5fceaf7050a5ca7cc9e3c49923a27c9184a9eb4914e48922422c919309eb4914d48b22457903992acf1e7c9936442923b92e491e48d139e24229990991c491624ae02416515038f2e3e31b859490eb400e6ca0e2c2c925c21fd44c142474ada96911ce40b4c7073440c8b1838d29038e294e9116448942cf26b05903e4d8ad470b2ee1bcc4ae222cd9a1294b8f0821453a70cc88b3b7da44c915aff3e12f1dae9b5db18afb5ebf4cb6bdf4dbd76d79ea4fda7fdba40817acc4ac4df8fbbd17df413a3ebd1868b1ffdb64081e3182fc7c2ef233a3cde8c36cfa381428daae7b9bd7a9e5f1628909724e6252397177490cde81324851d7680b4c11ae455c5eb891b3536dec091023667dd3f25bf7307f2bb376f62f8c1c30959153beb6ec68edff95d810277e7e77232a8c460f339bf2a5060ae2827297d57ba77f9d2751963eb4bbf411458124da53d918f800289b46eaaccebbc06285047031448622b7f291d4c5eca4540815254535e4828c90b0909ed5c48c8a3ca5e0815c212120a0af1848460bcf0422384848484560891425a880592173a12422224540a650583c11542a39029e43a435939622ac498a375678ed82ad4260c911d79c6b8413b832668f64566901b3842bf1753a2f4a0c3021a158484848aac20f6e44c921f59844cf87196c20a413843843cd0c2a5abcba983711cddc2f9d1c3d1358b1f3d1554e747df21f9b1cba0167ec4b1e5c760d98f1ea5224a8e173fe608f3a333003f592f1d367ef419a0c0f1bc75ca195f0642f3a5eb922ad0972e03145806c083dfb9a38db4e5b708a7273b78d249d7584fb6a8f3a40b234fbaa8f3e48b254fbec8f3240c274fce79d2638002497de477540d823edee410e2e6cbc6191a300011c24504ebcb1c2a1c6758ccaad8107a6de4b53b9ad748eee80152650ed6903aab66c1e5b5c300056a1ed596e7f90b50206fe775c3ec77ee0214b8d32d40814258763c94a7d057623ed73e17f9eceef35cc295cf69362167a29cb309649f85722e21abbeefd5c5caf1d9286722395fb06030b8229359cc58663e17e57c95752eca3927a1f2799733cef84a9a39e49b9564f95c9471d9e76c9473f63ca5e473a691af3293cf9eb3f295cf9eb998a8c95d437e67b13c86e43bcfc9641d7ce7b26cf6d9335a932d9f731a09bf43aad02abcf2e03bc40a997cf630cb8992504bc8eff02becf30ecf84629f7d8763e19ccf1e923d91a2e1778827c86f31284e29f916698854207c8b566290cf2e5e3d49138b00f92d6ee52d76895f227c8b61e299cf2e8abdf92cb2f9f15b2c13d1c6e008dfe3148dcf3e52bd3056f9f83d628d59247c8f5abf71ebf31eb9ba3efbf8f5f59997c7b191ecf388672cfbf91ed1c6b4cf4e06a5a040b6b0ca99c462f24d66697d76724beb0979a5c76f328c14fb4cb221c79a7c9364249ecf4e96c1f94c9af1f8ada73495b6fabcf55591cfaeb1a614f9ac99ecf8adb9f497936f0da6c33efbd6629acd67d76354d27cd673aa7e6bb432584e3df92ea9aa3e7b695506d1f1bbcc2ab73eeff28a975c519e71f6322ceb737926c7ef922c97669f7f259a09dfb5e0e75a8bcf5e9b0253a3f1b97655c3aa6571e0bbb655bbf2d96b5c3e3ed7ba70fcae898d7ddeb5399f6b649f3bf05d2bfb5c33fbec35342b2c3ed7d2a87e9b54565700f06d6231c942f3d9d4baf1dbfc32c34cb100f836c74c322b317c36f1d8f87d06a79ceaf33ead3e07b98242f4fb2c52e3f7b9c5757e9df07d869d673efb2966e6f3c986463ed13ea3c1f78d4ed1f8ec28d5195af579c66f142bafbe51adcf79a35c68d767d7d92d9bad2e6bdadc3113c64e1e61828a2a2068685e8465aa3b5660e401f4851623af18e382132d5ba8c67c99e215c6030794f506579714de9481e10d152f2e6ad4c0838290755f216783eec080c215222a72c662782c5365ab3e6444ce70192b6bb1eefc45c21fb0152c54a071818575e7b0cf71bae430a921262bccbac3e0671b514a00b226051a57eb0ea73e6b31b206c60956a87c5977b855c64c99961b1b5a39d0d61d727d0602c34fa017c260ac3b2cab0345500d2f3775caac59771866c2181e405e68d2e2c6ba45accfc1183dea58cd497265c9bac5accf36cebe10e1d18605dabac5b1243c77c2ae026161ad59b74856c2161c767c8c4de13261dda3d5e73c6943540024a64bcbbac7abcf63d8e751ecf354550db42e53a66cad9b9cfa0c0222498252a6ba0809b46e92ea73923179bebccc90ac9be4ea23c889912e33ac1c31b36ef2052262beeeec086e995a3789a6e74f943f318e4059b70ed63882c4841763f4acb06e9d15629019322b2b5fd2d6ac5b6f852084cd962e3994c061b36e4d16823826908d150943a6c8ba7599691504d4a5053d5571d65d5e899092c68b4b45702ac6ba4bac0f887961c1843c375e24597729f6c1088e1b81b06284f5597739f6b946f5d96b5632500105cc971a3f2e625877edebb30d40635e00394287c8ba6b619fb5d0b08251878d0b74d66d063f6b495bf14214306364d66d4e7d36b73e9b5c9fb7b94db4cf360f95187adaa09971836bdd27d6671b2ec031210616769ce51a66bc8c144983e4cfbacfb1cf5d4c3843c2992a7acaa859f749f6d905535a77f4c879f3e44fb691874a1d25515a6059377a75c5cd0bc043fcb47b01380b50a000f4baaeebea2b4081abbf977f57010a7c7de2cad49ff014a0c013da030f3cb042f61e380a50a00701b0d2e303e027408101d02100aa2c7900b8095020007407288c7d071e020aec40eabe9494140a6f5eca51a0402900fc3e9f032ecf010a359e832d30cf816f14c8c10613263c34b185e34d786ae2042f6fc24b80024dec8672327e47f941210dcc0d2f5e76d69d7ececc86983b5b556b5a5877d2e7769829e9d2240c103eebfe7d2e97637cee04249f43c1c48429343092b050b3e64ea8f23927010acc45795494d947f9085060549a3e9487f8e97c28df41b986a242f6502e021408e5e73f79f84405c73f4db1f24f1e0214f89492f80db4ce7e0307010adc403b39393969dd7927ff000a74d2f025b4b87c09f7000a2ca19b9ae07c5353939431dfe41d40814d3b1e8fc7e3f1783c1ecf398002794c4c4c4c4c719ec9378002997e3ffffd7e51a6fee71a4081bfdd2eea777f765c69fdd0f2c2b23be977bfdfedf2d4efa00cfadd0775d64c7143e40e15ad75072586df790650e06e6909ea9796a024f9a52c3ebfe41840814b3b12244890c8caf324fc02289004d88fc8d2f123024faafb746c3ace49d249d2b3e77c362b6575ef9e245de74bb31269bb651ff2d9ac24e4b33955379e635351d5e2a453154158929aeac67330fac11e01454ddd57c4a5f69d023f9ef3d8738e9ce34a912a8aab9e0b383f63358793acd7401ce186472466761bdab16fc92075d29d8e745214a18bbfd3c739ee12e9a138da6ca545ffc07ee82507d5efbce4987a7c9473dc25d12f4aaa99ea2e591ff1184eb28e80f04335e7b84b3f134c8bb4916e53ed4a6debf3d0a08b33539aee76ee4949bf5f5454b93425873fb14aa4fadc941d21e248282e8549447dd534d7261dc911b52ca41601f6459a70a2cb1067c24c0c296b208c7cd44c25ec84c43c937e475148f984d6897ec8ed9654d8a1360f67ee08496fd96e1d309b1d4e724a734b91c41339528b9f38ec78533b21004ce18454ccc189d0906f44023294f32eb0ae0e9c4420d5d274b7734f4afafda2a242132a72ba0db7309c944547a4216dc80318888a32cc115d4691c54f476fcfdcd0efec88251abbde6eb7dbed76bca90c15aab7b07027eec61db9d3bb7257dec278539a3745f2a646de94c89b0a710d23ebbc29272a5ecf888d985803c4f5169695f8f48e7673c6c6d2bf85dd253b47456f7db7b3230030248386dbd6efdd390446836eb7e27738c903341bec2581c57da7c54f43bfa32a9f2a244462906af1138e37450343858efd1696a1425e17efcaf3b4784c784578417855b59d58b90bd3fb16b66f61e36edfc26e61bbacb4e48503d2699d8d9818d1dfc2ec08a41b4e12f2d3c1e2275b149285dad99cc4c369cfdc119208a70e76e5efb4ec3e94387fef7853b730de14f9b7300f6e49a7c54f25debaf921c94307a40f1a3e64f870f4e1c387de870fbc0f463b5d11d187dc87f1c390d0870fb8f466fb809ee6875a2e35f9410c3f7cc05704b69d1d81dda2bb9de5c02271616ce20d8d2d1a346274c5d8caa9583a21dd5ac4921a34ec88a4b7aa48e3cc998e1b7c8af1bdb666c5606df0b8a7112440f8e19778c4aeaa5ffc14f899667ce544a86fea74ce7b56f5f0e2a9df0c7192d2eecd31cc2e7b207c486268bbde344fecb35f6f9e277a62df066fda6e369b4de999987ad68ec8cfe14d6c6ded6bdf43407eec3d02e0c7bbf1c7377378ad0d331e6d33b63e05fe3b673e052680cdb67007ce9bbc307c15dc412a78ac5a2fdbc5430960dbfa7b39e36b455bf823dde133d92e1cc47aa804f0aab392d39bf7c972fdc6c73e718b2384610e437c73b6a92d7cabe57d3f0496f60e00836030a86205e28790f462eeadbab12ffcfb263e3d7c87c71c1efbd4377378629fbf299ed867b9de1cc913fb92ded427f6fdde2c4fecb32398de9679b376621fd29b66adacd534399a621886662de36b856c56cbefb8a47bdff7004a079ed10e8983eaf380ef0d8d59b4c277187a8abd09638cf18ff47ab8668f8b1774fc69b3ec58d60de241597a83b78599d51ca6518fefd2d28b3a363e0cc3300cb167c70e830c95b36fa7d0b788300cb5d6649a8ebb9de81e2661b43f31a427bd59176733a6bd389bb6517c1b3e6d50241d7aebe50596e847e8ad5f317d8b7bebf9babdbdf57cdd440980bef5f07ceb220a4293f426681c24e7afdf462cf2ad8f68ed7a79dd56be758d3ac0fe414188132a3376cc315b6d68036c9f286279eacc80b225ce6a6ffaad9728084dd2eb352c7fddacd95a2dac89b55a8dbc38ebf166b3e292aa7467b418e9ce573ad21de27991ee702c47bac33335d21be9b66432d21d7ee14877c69a4a43aa74875768a43bccb291eeb0088cd4ba8b7467b2a71a5354a43ba4f1d649364b770ec5f0541a8a39a40cbdf5e26287188a27d55b706fbdb86891c9bcb430fb00bcf5d242eb253026e04b4d8bb07574bbdaafcc358eea171307c5c458092ae90e37fc29e124ddda03b07487445f4e94a5a9d596b4d68ed68aa1b5d65a6ced1d3357a0823be8b3feba89cb4a7768e24dbac314be9ef515f4ac4a009bf929f4f70890dfaad6fe06b414a30eb02bc6140857319768926e8d0426c538080e3265b11f4d49370ef2bb503d5127f5d01489be7c2ed0af027290a0e063d50318e9d6232992241992992449129324499297242d7e8b74f320b305937b2fdab661d6c4f79a385befe50c75bdca907e1de0a7f0af17a045d2dfeb8545d5df9bb1f59140cb99a7adffaaf9eb66b6d63f08dfea0c75ad92bdd866dbd8e8f5f70310284dcfac9bf7cca25563ebcbc896979c01e09852a50693b02335464002680b973337be64541979ed3193460e5a9f41ebcd45aec27084154604fdd1a25382143d2f884145183b7d5a24b1b3de21b217ccd4e98a6396c27a977c2531739342d00518ebf5d017e2c149d6037023257beb73de7a892ee90ecfbc75a930a9d4569ac660bdc416ebb82329760060a53bbcf2d63dc891ee30ebad8bd84a7758e4ad93e891daeba2a3b03106481f37696c52c0c00b2e60d931c2448e9cd197c96c56fa3556d066ac70e38855d60844b6988969e541b267c5ca73e1851c2db0088295c29ab6d802233605e50c0beb759c917487568f810f46d2d01d29dd655f08489f3df451bdcd611591907467aeb7ee818c14ab3b2c7bfb0bf188a5a97891e168e1858da02a2adb971f1d479054adf02aa7d273051d1b35b0143d12ac11a8c8d4182c6caec8b9b1a76b4b6b068d52855249aa8f986029e9c4049486594e2b554e3e673530a79f547bc15004ac6cc93927155d90626929834caa9bd8b6d89478c161c31433a404644b62ba31a7d4f494695a0edac345adcc890765c13c72c239adcaa47ac50ae79054a8ca5623d547d02c29e9046d72eea833b5a23c1b49cb55004c926fbd4cd91871b6d268d2f0ad17187c6c2bbcd0a4a05c5925152f2eb0ce3a6112aeb4e7c3a966e7ec84b3c995abf4ec420a4acb32b53fa9d01a930a1e33cf99599db340835c947bfcc8b8f2d3e42ce267ca0c3f5b4e267edc9071fcd039d7f829b30949cf15a6131b5a07903347d032a9c945bf496f6fbdfab87076a5e518b24dca4b53432145df7aa1ed2143132496ea173541a968031d94923a4a3229f9a326251d899c5bd2124969959627d4bea4e95baf3f5c68923f6173feb460fef9b3e73cd34785da9a541f8193924ec6a4e514166998c548aa3fad959096afefa4e35b2f4066b417182cfc4e0aab996537ddec6e1c9db7a47a97fa2e6709fb45a57a97fa2ec97f4961911f36733ac06cf0190c86bba24431230a182da8c9a2175cc339312616f65516616180d89825b365613515a939b63bcd6ea07ab4c4100d2de722f0d1a7b614325a38751b44a32a4c8bc8685dc1417011cc046bfd55c3c7a10975c1e69058c6ba59b9a23c64655f3aaf1f919aa8224127c6c4c2bea2764561b4d16e052e0b7945605b49511f954b75ffb2ce390dd51e1dab2b18e41ccc53992a5bfd558f82545629400b4e51956500a461e7e20c1b3fb303ebc21d6c683346a6b3e57a3723361695b9a27c6cae741d618b3bc04e580446528bc694a1dd308caf18c664b8ecafca61c7e2e6a9ebf752fdbd192d0c92e05e8c55fd48457572f04ea5a9eee005eccc8f347b510c57b8087eb2174deb34ddedd0cc0f45615c5f6ea37e493add25bde902fb522aa2223616e2f33a8893f723ddb548f725d3a2f5d6f1177eca172da37df630889f6c927b1a528100e8e8b1ef14fb2e1fb54ad8edbdf7de6b776170ce39638cb1a08c33ce180963511c457114c5300c4333435d8cdf8779df8669ea55b4f08472c6516c38c26b9c84f618df7befaf56abd90e35178085da65a5dad73cca4a915e730eeed3e8350fc07d12bde6abe520f45a9aaa572afbadd5ca9a9f9683b0244d5babed72de61cf68ed83abedbdd78ab6d237faa855baaefbcbfbeb1bfdbd7b3be2e21b9eea5dba1ec5b4e6cd22656bb3d446ed083bbaef76b79bc64a58d47edd43d24bdfe8a6875039abb4f1d1e3d237bae82bddf4e5d7387cf14fba939e3c513401da693724dd4e8fdd290a3f95e698cf323c6be2698ee78926003d49f40023946eead236ba083b428fc88e1d294984e540cc3fadfa4e3be2a2b86c72b3165bab62555b7fbb337a8b7b5b42596b4351e3a4acf1d3a5b227f0093c4278f31413db7b3fbc61ce6aa866cf639f862a52786fa0d4bc218521be6178d5f0fc7acbc1f530d42a124e6a715392a5b48ab7570aab780b66ccac2b14137d477d88c39c4880f8a183003f592f187e787070db2ed22b8e96df36cceccc6fcbe6c93eb46524e8d2e5238196b033bf341f10407c1274f9ca7edde6b444542fc549bd1e03b43bc0ae3afd503b12adeeb252e809b852565127dcaea11a1670c256bbda55fc93eea80f59a4a16bcb81fdd0a3eed528453be9a42a420dc21d40ac70ad4d44d73ec25af3115652ed4180f492f41156d347c85229a4fbc8d76474337411f86914d1018b748bf830041bf6e2d15198c73e45467ab3863d08682fbd5445b8757858c15af58ef4f520408a1002b1b25e30342c642be90b815859c5f367e5410cf2c431d158cb1790182c192f66c856d27784b68af5d841b6923e0d4756cba54b2b6b257d4766ab199eda77aba005e1224f688286c6b5923eb38b99d51c4fedc3c13274b656d2f7d35acd912c6f993334582be9d3c0b59a25ce72a07d2616123212a656d247768163031f11e2456c257d4b4c56335f9bef6b9fb5f315a46c257d269ad5ac9d3a43915e6310d8d74afa363c59431e6c4cb05a49df55426535f1b538f70173165c495f0618ab699e45404a6849339408e19f1e2c62586b6053b163255d84a52e6b0d2e9b95542dde204329cda882b6de4e115c522550287d774d5151047eea19e08af8b15f4dfa3c2b610fc08bd4e224a92b59faebaf9a22bf548e6cbd4cf50cf0f7aae1b3169d1b04e90ca5dd7a9e2ae10b154ea3c60cd7aa7db6ebcd6ae293f4592fabace06ae693f45d1664bab2562be8071bb1d5144fedfb69ada44f04ac854d5a096b0dc241abc51becdddfd192d68f8c3c68abf61d55594da3330572c20f529b9f8f0ca7ceacc494d4479a0a4977f8524cd4330dc2e148cb0b2fb88e42261b64b85613e9b419aa773dab0053676ac559a8a46df5ae7a6708599304753843a8f170a63fd2ad3f9cba3e19ca032b2c31130db6abf5f44a8930aa80c2e34e70ad412d8dd5daa487003b67ce5fd2b794664b7035419cbc21214edd59ba4311e7093ea9887139cc6b3f05a3b5619873ce39df1d426ef44ab74fb9cebbdd5112d2f5d845a22cb7da9e4237ddba596a5c5ab34ad76bb5da5a738bd67c383869afe6d8f19fbe5ecd510f575b7e15f85d4f64280d7db654cc58016505a0f5f271e10911255092ccf15aafffa292bee6da67f3eda68b6ef37956aaf94509a06bbed14b5f78d51be5a45ff4e90f7df697c269e648181e222d68b8c9f0228e1a21735a485b81faa27c3fdf8925a9bf1c22346cec116b93860d0aac62d0327316c5c896f5b671c375c4cf183c41d63ba8451322446aa419826335b118c8bc1bd6a4db6dce9e3dfb1bd9a71327e19b4dc23e005f01ec08ec37fb64ad016c12f6020c002761ab0ac08e38ea916e7f8c2d97c78edd919242385d0096839af570c518ba196628d32da94b53bd535829f49abaed58d2b663ae553c1f8620c04ae12fab015093ee5be4c3d06f918b7599607c3d041a990319eac44aa1e7421f0bc770d20616d2acb0cac45c8fef144eb26e557cefbd3784bfe14e1c45d1b2e03e92991463e18d993c76ab9e38a9c493747be6726376af08be7befbdf7de5c9696cbde7a0b14a88a60a54e48ed45c349423d527f9b6628df178b2349989cddd15aad8b3d7a5a84a5edf0e163ed4a410bcc57193f575e8cf8f322071c2f2b4b92acb9ecd6d1b142d49a1e4488a04015d602c90d1f2f3b54d8f11ab2e22e2b79b2ec24f9a1c4c5e502246708131c7b72dcaef7aad2eb16cd5f0f83d78f72bebf737f530bf5822d78dcec3183e4aa8515fbce42d9b4156ae8e901c48514172b766ba14018c371074810c998302817740171e3a7cfd7d49315631e1ec8496d46939ef7cc68522b54e583161f49be9010030a53590badca0b76c8ace8b15feed86112241b3263cc7aafa6f07922c8050c7306add7c31cc263bf6108398b74af9829a6c0da3c75c5ee99c76ec330de7a5145fb6bc3d05a51144551b456878252ec5236d2ebd82b742cb15f92de45953997581af6faa7cb5e478d612b31add354eb9d4e75eabba470877ee9afb1d71a2b4ae7a9d763af5d6bbf58af45ae9d4efa300c6fd46b0e82af6d5c7fb1ecd2b5362576761605b4344474f488e165dd516fcfa8992226e6e4880bb13f73545c01135361c2aaa5a40895ab2f52e0acdb7e9df96dc5cc7cd25b1781b4b40086460964abf55185678e0cb23f6f566baf197e22ca2abce5803de3462b063c3d60bc5853277cd8a4d97a610898b56e492813864a08962c64eb0d17677ade4cf993656b7069818d1b41586ab8d61a80ae4a70b207853febbe5c770e8a9a9bf6b23941d4be62657edfb0b027f3970c3f71f0d65a0f43d7a1cdc333a81f5292539c24bfa3b83ac0f9b65da1b52da4fdb66234d66dd9d83996ecc8b72db3666ac07e5bb41cebb6691fde161fdea90fa9c4e4f97dad6e900cbe03d62aeda4a4df2f2a2ac5f8a99a6234afaa8fdca55bcd6f6a4ffb180e5eae9d15a6c2535151bf5f5292fb6e77c78ef044ae27c7d1fad622d78fce017d441f898afafd9292ccb1b1515fe9231acb344dd34d1c659a29467d84ebe822b909c385b9f6da954253f83886a387652c02c622c211e9477fed3bc5bdf78e3ad418d7344eacf978a5ae881d771da76e8dd1711cc3701886a18831441a4f7cfa9842abdb3f74ed3bc5cdf599e2ea311cafd4bdf88e7abc57a7b87a1c471fafd4bdf7ead1766f566cbdb0de5519c623eb5909d546f7abee14b8f703fdc0e6e5687b57e5d5aef3e1489fadf4d11c7d689a73f69e55ee3119ca9947d6b3c2447948458153bf5239bf43239953b277f5d7735673fba2c04e7af634f77ee07cd55eeaa5eb32f7ae4ab78db6de8fbb54a2e8e8da4b5da41299b5122d6f44bd1f36dd0bc329c698f49e1593dfda3349f2c8f093f6d27b5665afc86f4de2dbbb2a71becfde95e38bcb4efa3eadba43d0b9cca9aa719a75cf8a74edbb39dfcd877c298f0c45cd1aea231322d1adbfaa50cdcb9a976aef47eae30ec95ef4de8f34f5d1cfcdc3f3a78b5abfc34f7d931627a56ae9a3adf7a3f78347d6fbd1bb226bbd1f78eb33de7a5dc35b5a455173b256e3e1e9fdb84b633965cb19cf297326c99c73ce99ccf824499224c96c7ace7867f06b664c96be3b81499224556c6e4c3a59e60caada3b9dccd97326bdf4527d9c339038ab28324996195492ccd94914455153fc33fbc63f7df6cd9c4d5fce39e7b32cf158a62273c6a4e91bcda68a227b9197653ec3377d39fb99b18fbeec463ed4964d5e7a7a7a927744ef354f533d7d9be41d51f4244f9224c9134551d4767d6169c78cee8e065926bb5b392ccb7b4b7ba9dc2dfc54e2f2fa4c34631170c6b72bdb3026fd6a91439e317af36c1b312a847108e70ee1247d743ca4a26a0ff532eb5c74d3ccb9f44b650fe9d45c2e8fe3d56424e9d7276a8d5aa3d668af9638e2711cbd14f3dd2a5d3451a12272fc4115f9767a3163bf248ac5d1145dc8777a918fc86fbed46dbe1217c20f77d1eb3bfcab7d542f15bf546cbe7f5feef04b75874fe40bb1d239baadf44ba52cb7cc4be54a5d7d55b15451681f5360521caaca19577d589b431ab9c9ab392fdf7befbd17df38d72d056e1c5d53c36bcb58845b2be3dd8b5dfb1de3d96e9c2ba51df36e5e43b2a91b7fcd91d48dffe62770f665f376f1cd6b9e1d841abe61b567f39a936e9a06c07e6b596bb2e667f66ba20ba8dddda19635c618638cf1c558ed901d85ce194571d5cd76bbf7e6bb3a631172ce65365cf33b76a530d9db4ee010c931cfc9acee3be7b387184af47ce6eb489e31073ddfe41ff91e3ffb163578e6a072b0c1777ef7ecd772e0f3ecd672a07a4642727cb3218ddd25ec24fac1f5d3298093b04a3a075feaa26f74d597739f6fc8dd27e41b7c3bd7e0c379065f911ff988bce7d339cf871a9d960d99510d1b19a93dedd749bca466f39b6a73d251dff9ac1d51e4231affba8e1cf25d3be2ba900fdb11d771be30454e7d56e9aad86f19fda0e6286c6aad761d7dd46f9c2b651f9d73627ce35ca9bd4338cdd26b6c9e746ba1444c5a2811e3f0f58d7397c81136d400632235e325b146341cf6a19b63d9e86629de7bf32b8ad843f16c44c34f2850c4a349bace77ab61c7c0953a71393d4575e3dfa77945511ccd886ab5b16c3443c7b41a918a02f57b8e67578ac8c7eb3aafb9c58f8e68b85aad467445048c6a8fc8b193a8db44751b008b3e8ae288f63b051e1a5d3cd1056017129d747c3a39ba89bd76d346dba862b2448126161191cf3e2a8a622d6311c6d16c245bfc261d1dc7b16c34c363da6f7214f17876a550276bbed1b747b427d990f9d141b052184880e540e7a38a8a3ee424b9802117af283a11399aa11f0cdd9be77ca80f0d8d6518b85297094eb56cd232bd4caed44d1b9dc9cd4acbdaf5f34caf3a9edda554ed918edeb42bc581bb147a18e2a0e8a8cd4537fde64b801d81ba680b3970a540b04ba887641ef56de37c18fa78369e8d65e3591ed16ae31946a17d14c5518f67384cd7e214ed1c27d2a6432de29f169b9cf093c6a216b3f69da26fa79fb1085774fbc3964bdf301ec7a8df42aef14d4531ba68365d299ceb6b45a7d742b88d35d66acff49a87a228fafd698c711efa76fada07356fba521ba79e670dfd40741438f5f4d29bae9478d66a76ce688ea338662c82d65ad4da45b1e6bf2b257a2d2ad478149d7ea7c04d57aae6e1e8fb741455b7d3876e44fb3ed5f1debbcd311c4dfcbb4ba2f6d0773df5d5fce6435df485b6d2d71bddbea95eb7d9d4dee8350f9bae94e8e10ebfe6a8189eea6e12ddf45acd9b9c3ef4d9177de2f863d395da786b912c7548bae82349f547516dba4be1edde940c8d974ae34a37ed986d543570a5caf11c31a0813c9663e93bdd343316c16220e3b9d7622097511505f691d4c0951af252085d00995337b9c99cef21d7f9265d57e6f01099550d94e3888132e79d5d34fdf49de807437ed5ebe2ce9e1bd51458d565d7e5d4fdfb60741443eae81ab85223d0a4c218672cc258e2f92d7a0a8cc75174d33170a5c613798b28ae9f79b4631ab852d945532d6fa5df705aba78fa58aa1803a7976e7aeabb39eab3f9e813fd443e7df6451ce938b2e6eb916e7fc877ea433821d4af6f54759c878f537ba49b2efae9b3af812b353aeaa69a02aba9dbc48caafb620d9c6e9aae812b65cd9224b59bf9d4c095ba2e9a2e8ebe4db5f47d55048c7e6bbe50eb51d5c05d1271179742918886fad7eb376f42a5cdc5ae2b85331cf9c664b82c7a6514fd6068b42297e8257e9d2870bc39d77cf4d5dcf40d79ce77fd97753863940036c57954f3388e26ce8dbe8c9d74b10b9b391505e9a6e875a58a1c9339a3e2d7ebd49c732e327da36ee4bbc88dd4bc23ddf4ecbb28e77c22631f51acf6d09b95a13890829e13ed5ca73703641f7dbcd834b7e83bd10f8a7ccc5e7489bca7de9ca7ee5dea46ea4eddf9ce5ee41b8fedd414a25acb9ee1c86b58c579892ee0cc1857cbeace5e44a4ded4bd4bd59daa3bab29c41f4534921c73ce199ff95dcb64ce22177eaaf975b14b047baca2187dc85437fea1a7dc16bfbee6399d6377ac6ed3b16a5353888faa28c64daab55f9ae8b84c83fbc6645aa729f6d1b7a9d6863c9343aae875976a2e76dda5d149f4832137bde6cb7e22eb7c38dfe03b720dbe0c9ef3d57c6848e4e280785e9c732043ddac3443a5202b89bb1d56d31785fc346fbed154e8de7b5353888fba909b57f4126b3efacd4a4186ba54376bb74b2f95e875aba936c765f01df92eea286a29ea2732540e53892e7a5d2994f45415bd6ebb9d55f75553884f8a5ca297cd267e99a257c66338a3be6b8e7ddfb11f45d5344d5314bd2e5711f624b9ab8364d8eb17dd3c493f9d1cfd5ed79683d4afaadba3ba2f7a476bc930fc8402c75c4381e4cd47dfcd6b3e5bf68c5393b108b55a4d681caf6b7d6b422a0a8d9263ae544e3be943a83aa46efcdac9b0bf5eabd5d4dcbe1a2dba3ea257eda19efd368e3ee6d1c9d17e6ddc37df64188a7e90f3f1cce5d16f9e6f3993ac9164ee367abe9528f0d4412d3eea1bf5984f128b40926c7edf3c05f9859f6e9e9d04bb52d7b36a71d2b8c933bf6fa43e81b18d0cbb65bfed14980cfb9b7b0dc5e8362777f99683212747bfd9dce697acddc2d7be7174d47623c1eed2e8e3cd77897cc8977a914fe742be9bdb6ce4571806e717fd00a738d455dc45d5eb38c7a93ded371faf9a1c2f3a39e64af9405892de7cf4d379772cfbd3c55be8e577f937df578db6236e4ee4b359e9a6ee106c98ce67b3928d1c438e21bfc831990c1b9343b061af7708360c8330967d499263f0558a7561cadbf5619598a236d36db78b31562f2e72d32c7dacea4481d817a2c0d234495f915bdd10ce4d337b699a5727499ec86506f354519c6e6614a79bbb0598becb557f3d83bacdf296aef3ad877ca73810ccfbe7557bd99de7bd2303f84517701dbbe965a992186f0d3e9a5e74a21f948ecdd214ca11695033983b43ad54f72dc52375ef7a2a4fc56eda6cb6ae3f3ffbec78628cc9b22ccbab5c96a39ba655994975e32ff29bab48dfd9cb52ddb9ea473f4be7a5c07faaa5efac66b1cc6299c5127b5116b398456b0d50e4b8c43e16f9f59d3e8c3d178df83a897e50e4a48f3eec463e9bef7c37bfbe11f5a2223c427956129d48dd5aa76e9d53773aa4eef44555f494ac99e9bdf792d7d33bdab06f6c5351984e7ae97b7433df5b4bc59ef6d347f70c75222b892efa683a79aa202c49c9d1244f98bedbedd4544572749bcd66ab426b5aef187ccdcdf0d43a4d4b10c8b0e6a5af562b730e91778d846cbdbff572a30b07d6ffde7aa1427b2f37b482fcf9d8cbafd73ae6fc066fbde860f25e74d0c856da6d4fa60fb979c37eebed9ca7eeebb8c439ea216a4bc76356270abca82fc449a59b28b054ad79fa70288a5114a32846519ca2289197a98a223d738ee6d48d3ff513182d511445d5b32c73a963d42d0a024e89d453d56559fa45f17916b9461de73bd10fb05f13a39e73385aa2bbc88930c6f812958e02c525beddf2575a4b7dd74d6b8a677831c6da53e02f6b6e9aa576b47414d74ee0105dc05996a86b377ddf1cbbf69a97a9eafba69e581cb36315fbbe8ff3d2b76f8acb5477a97412fd00e7a76bdf759defe6d9b7f3d0c773d167e4a3afe7399f90973eed27320e77b50fd97cbd9adb3f511f1aba289ae34ae5d053f5345dfbd6aea230bd74d4f7e9664680e9e5905fdf4e31a4f66a7e5dfb40587253d77e73dccd7ba8f35037f2d9ac84fa0e751c99968efa78d58dfacdfecdfecd451478b33a7da1387e6dc7e04d0c42e9660a7c6ad34b9f69aaba54758a870485234992a4bac392f4b224bd244bb79f47b2d45af4d086eace4fbaed0a6d18aabbf47c6d487a1896bb2cc75c96e50ee12c77eaa9f34058b24f52ddb746aaf97412f521dfef4912a7a6aacd6f369414224f52dda61ac2f9353577927f6ae73dd59d5ff4db85b94e55dda8678ba2e129fa994394cc792ebdf6198b0083d3afd6aed9ce13752b24a49ec8e8aea1a7909fc036d44d73e8749bdfadaf8570fe28fa790af9eee04f4f7f7f3a3ed51dc279cb853f8a7ee62121d44ddfb89b0dad7976d3576a758b437704348ea1ce633882085a4b87fa767dd6eabe2f8e35ad73aef56b75936ea25ebaf6d3170535e4a7e77cbfd7a9dbdc9e8e73219fc549387587a96dc867b1924db569b7f9d6202c49493584f349df219cbf1fddf4f22c4915857632847387505353e09d02872f7ad6a48fe428661c1e6bb4e0c29516ee5c2a97cad5b2974a093c8a581b8ae3c8a36a079e1d6cbee9ad971d58a39add66c3a2db46b78d36b78f45d2c7fc3675df119e74b7d97c1c6d1eddda3c7ab6395b75db1ca7c00630c7318f9e6daa0af25fa0cdad5b9bcd268aae6e9bdb50b7398a510dfdd4e3d0e87b1c4717d23ea4c7211f3da76faa4dadf9902f1d1de7b3a3f8a7ba47306ba5ceb9f661157c106fbdf438f3e60d7771ea2e82affee22057dda6e314f8c371877f71e8b89d83983b7c9b88730e2f331661df87010e67fa896cee12c5a9377cb3f4f354770ef2bbf414f871aa0af2e3bc068fe25c40cd74d477ea660af153983937897c639c1399a6e7ccd2a6a6c03fba690aa929f0e3d45df39dda52e03f555d3af69a2fe7b84ba56a439c7449757f0dc21170780cb4c3aaaaeccd5bb8b3d56fecbe1c699ff4d64b8e3363ffe1ad97aaadf75285f525de7ad161b6afbac3f7edf44710a10616bbb869f0d7459b3ffb50d8b7be9d8b1820b4d6af5b75672b200924dda2a9d639b97701ab0da874c9588bb341ca31a9509100000000931600303014100945c3711aa641cbf5148018779c5a604e1dc8e3348d2184083140400000000000000200c00000e55da159ea5f6a3fe7d788b69ab82d38df8f773b614b39abaed7f19674d8cdd73064ce51a768321bb73370baa93be0db3a876e146c490c7c4be4d23f2bc656a56f96da6bf7131126a38838628eafb47e897cdbf22b5fbd25b5fcf33dea963f7d2556360eb226f868e816e3833f1aa67c00def285565c16fa7117e77ffb0969488061cdb8527bbd1de16b56b1f01d47bfbfd021fff6a4099010654b24daf77acf00a0dac5addd129608c9e6af8f8f19523361cefbeb82ab78c77293766fb8777330fff283fe7cf8ee15572d01b8160bbcd91a3e9a16d6fec564adccf147bf12dde0bde25bc979c2a76c7ec1def82209fbdff4ace35f0be22b0a790fe47700c1b6053f4e5ee10dc38a32b9936af091bd02f93ed12143a0e8b5ff2060c70885358ebb1af864622b5140c8574ae80629a35c24b9eb0cd9cac725a5a12ff697f48a19f2c45370bb8758db04b73dec5e710a7ec3329aed159797d71a218c291623f8dd369406f14f6b1d494b6aaacd6c3bcb31145a816e38bc4e1c6b036abc884dad46090d5509b1173d9ef6193426f54b214df43d36a18222e565bf7043ae5670e3b7949b2c1fabef0458c6ec402c69e559c72a35205cef9e4da3232d166785a5d1c38aa9cb9b36fd492190ded4d4f9b96244e8f2ce7e00b41d625000da8e585d1ef6e751015afd4b1f0b26b4ea0010ee9964c5471834736b4b3d912f9e75b891aabf1918d05cc0b0e28b3876c13c4241d0e8686ae6c58328df15332f165c8cd0d0d33c3f781927cf4fe5440be09d2e2e21eb6645d455e823b7186152f3b8cfc1f960178a16d1b3a60ce482774b431e3fb67d9e48ea9873f5ca02ce5b7e1c73f58832c2c36f57717a195c28e7dd3c4faad0e8d626c0053186005e6881e0df54dc0f5613b817c3c6aef1ec0e45495cc46736a10c010139377cbf833633266d00d8b5ee8a337261b7c100b813d1045a3d1338910561d0063c3e68019553ed1b4dd175bab050c7f20fb26780d8e54f3b6f8f8b6caeab5ff73344bfc0250de5a935ad1f28cea6d02500019a87ee7ce8d0ac1b4c3a4e5907a18993e3e7c1e7351ed42b31100538d9a768330bdb1d914f6764a0d8e9f1cc758312dae129fcc696e168b15eafd4763cd1db3095df48e39a1e7ac7e61a77e8d2a197c6a344d59a6bd183d1b633ccd9bf296217a18a8cb4c5df77e1bdb01c88b0c69744ad1111880877fd82452d5a00b5edb4261fb53e892847e3a545f7a47c8648ca7c324495905e50313ecd52825dd59cc211a06cd13526bcd4368babd372d7b7a21bb00848e066f6372d67fd088af8a5176b1271385b27ef784b1d01f211dc4f6f2fbdac27aed8c83a6d02468582754eb8f410cdb38117526e04efd3ccf833ab9be98d32e480554d7fcd69bee92ad7f6a8c6bf19ee4c311d727495302748c0b4bc1de695b0eb98061f69f0ebb264addcd186e37e25733a4d52340bc785cd339159ce506ee19d99de3395f0699e6c06a371a63781740a71a0449ce93537ec8a5784adc023225b4b6fbae8354ee7eed0576e90a517347834768f1e364baf7bcd636dcff2e7c0fda91ea659fb5e9b39bc7bc3ee40dcc228a345731bd48bf9123cf9d902b120658fe01ac62000a29291aa50e29d7214f68a7dbcb5e846c9439f881a5d701f539f1818d98cc4d2027a10f662503544a9ac9a912825db8359096eef91f944df404aedfe0e546f8714b0172c9cd17e14834caaccb8292448c0f3ffa1477ae7b106f626d881b7ade417a4f35dd14ae6c6385c8daa50cbd61ad8db07c8dd437880ada1af7618f9a50b6b5e8272b2fa36f54fcd147d48b60794dbd5417e205156f6c01243cea83dac275fd09b79f0a13070282d4a860fb2a4c778a7a9c0a23284bdc95e64d0d3a48f8a34e57a5002d13b9779abd34d92b2e735163514ef2a02b25541f94f338babaa59acac041dc9a505d0207be496f07ecb143112c52745cc803128f8828288eea67cb9fabfc72ba955aa38da71f6453642af85d4ba5ec5afb63f1cb9151b45c5486d70e5fdde1e5701f0c37c0ddd8a46fd49ada9ff13893e07bdcad7be510a343c7189f21e1fcd817efa2f1ff49f007e93e3ae02ac607f4c156504173d0d858ce2a187d7f6e74249f594a00018050d3920e7d729d241adc03918582805f3e86b9882b05049641bce759af32ba2c80be738265a4219d346288870ee5f7950819bf281cd7270069296c57e191c28e71fcdea7ceb4746b7d212047c909c6d9150e939a26e15361638a38f20b05cfe5a7b67647cdd26192d0e17d5b66f2788cb1a846ff3c9e84992029cfb10df7a4b3fa250c1eea73c13ac411f8e5c1a3d856bf36e10d548ae507e3c379d149694445c762058c1097d053b027e22e1b825f6435c95dc7c90f86c122cb8030b1a732668a88af50f28806dab4d3173dfdae8ecec104d9f41dab6171993c5a12c2d8dd1c5b4b9265bbb556e5383f7535972d7c71215e0b9507824d4462a07c20c142751495306ce18b35819fcdf4851ec511618c0fab2fbecd59bce460ae012868111ac7a54b5884a5bc1192ea9d3e0bc302eec5fa01850c9ac9a16788c2141822860d22393145d556d43face714a5fc518d5dc97f745dca56cb7f0a9c991cc36a552cb40c820d88bb633a87812076112645558e4e1966441af83a6b8340f3534110c434966d359d4552f9bcc276a64518cb82a81ef9eb7129ac750716bb862859e82f7c96cd2b96307f0d8372d4a0404823543fabe327cd42b649b01f74cad7740f0ef887154499d1898880b0264edca0097c4e8ea4e6cb1a30b7814369372d492d58935f214f8944458a9d9c8b612ef2bd6bf55312d2ac2e09aaa5643bcb130e6b87eeb61468025d31742520db18b0b9938e56ac93d8c6ea2128a416d25f3ab7e5651e6897d5e75f1e315ae4adb07bcab96d367ad820c463cc387846349f54dc8c6b14b93e3f3a075bcefb7b41b5afce89b3ad4e8af894b7d06583c81edba1fbde25b445d571efcd21fcd028c7778a0834fd0f0dc154efd33d2227f5be142aae350a5a3afd6303a4532d78e3d85bb03cf9d873845143a03b11ffc5cff4b1e572b31e1ab269d87566859b3952d9d8bf3e709d75776d7564e6a1d5d75496a5bb5d64a57413259fbcb0819eea7fb5f2ff5bc43c4b864ae25551b0fcf7e2d49db91ba920df53f7c73ce242f716ebd3967b56d3f29a030dac213d1f4a62b674b199e4ce6fe9287708051e3dd2e3403a964960cbe3331a4411fd1dda4d5f5ac0891e8139a75e43324f3b12a28f61f0df8ebb67c345864483944fe9de250444e946bbb543d0d6030ae5f6f937e43448ab7340eaddac8adbef14841ec7d08b919c79c490691ad18f717c589952966b4213ade502b703169eb685b022770ead0628230f35109b0ef1e321661ca47d01f6fc234531f5ae75230b36d86d6748898f034323dd24d91218bd9c668a1d0119fcbfa142ca5c9c97754faebec28b427ae10ad77e6004ce9554273cc381bec5623b822a32b166b22dddcbf261b6bd61b4e44afae30ddcd4ade98af3220630b0407074648b0f0f0c1441062ac7aef7a1b3575c1fe9c9e98839767d0294a19b4ff24d1719b1a03902d6d824d9129315122a1a2aa280c82d8a3b81b6add59fe31167b3276ebf862cb2dd696740d711c6915d91cf8b811ce88eb549ede6dada764dd017bf87992a2b018bb14003c997b0a4ef250ca82c7a5127065bdc11b116403a69c412aabd15bb4a732a09b1d345fca9f20aacb8ad8499f390f2436fef03a2281ddf4dff30a3c1a1074d20fca132a1c943e15732396a0b2ab58cacd963f51580c6bc4c16d39ec0ad67e249c07435e0e87cc64501a22381329f3c949b8b820292a0d697bb75c206b38aa791269493214b386ee0fd9fe2cb0698730dd56b36a86d6733de266ed761b20eb0483d5cf2990a10002c300fb56edf26a0cc652504ffae63a70ec05813ca868669d46bba0bbc0128882c83e3ae28921dc938d7b056441788dda312d011c55c091b538a4ef738558377ad1045998073676927e7e0edf9d2ea897bc5cf2511d1e2c40371e8e16086d51e061170388619d02f15f047b65c214204d34db9c546eb74f68852476ac3fd351587f906c89ed564eca193669425410f6f2e26a84eb85986b090eeb4484cd86ba189939ea392ca919102a1d2efafc533621176e72a0a7f431a4cef4b8a2e9412fa460bb3c40eda03c60c2b973edec6ff7fff0e293f6bd10d297e9dd358f35659fcb67ef43d1fffa9a28985839ed343161bf48aecd76775aac7ac8f1923c599f4b7b5b988d9e8dcefe9ec2d4c980b7ade22fb53f9f879d709b09dc269ebe370f465000e8528dbb73b9aedc266addad509802251c5733c6cccd263604f95a961bb6381d04d97a17801fbe04cb7a2087ce79d73c9cd446611e16bf1b887248c7038bbeffc370e07403b07fb3aed2782ee6f09d1d3c1919283b51569916a3c80f73ff4c6d28bc7c9da6869c0aaf7e2e66e8c251b29e71c1f633cf08dd6b65785f1cb1e5060337b819ee9a5e071650d916831d4a0d269d3902138b69e17342e7d5fbe0881db4291ec5a5c3111534574c91df692ddc6d2236783c82c71f4efdb67318bff42f308423c54af6b74a6a412459502e2c984c696b6cbf029b56b05a67ba806aed68628a33495f59a96945b78f16e20fe2fa41a1e6fa75a5812fe3970c3166a8372f5f8962315e07c7a719413ae2280a294d5c42d8554870bf008167440c3bc8a1728fa7d992e61c2656f34ebd1bf681f3fe5d8a048040303a217d2280657863f65efe7ae0b0ef16e58b9faae131f2c2085a1318b9affe1419e4c4606defe357e23d6008ab68d3d8b5e7d7644b2720372bcc697753570280818386bedc51829f083417b455b4fbb750922e9651b5e0cb26747b4d8fe269ae4d0989103c164f4aff1d73b2f9519abffc798e3df38d1d6c3ecbd706defc2cca5e4aa8b42116efce57729770ccf2ddec52330a0066cd8e2700d5b8e81b51e6a84924e936d64ccdee108ce917211de55bbc415dc0f3324e1630ee916cd2d2874314089dc73f610876e27f76c48412eb575c16a72ec0677b0b32e05cba56f9aa3cb5dacbcab99ae45877bd2f4bf68afe5cdf847241463220c8eedcb2cc0fd7056f6a1d65f88ae0a1db66376811d4990468dbdbbbed115201216bfd6f0c293fbe3f95ff56443461381d4894f64b227ce7cc864aeda4b4c065e21dbb3b2c8c32016fd9e9a188e8ee3f02504b014710ecc5d1ba336e1811c403ddc98441803941ea660e532fd6175ec4a912131bfd5e248244d0a805e92d31c2945109562ef2428c6ef4967293e54b8c45142a2ae897773c30137940568a50794892c095b745afd5daa0af8a3487755e7722e60aa0ba75c8056e52ade4bffcefe3ae7b0fd68522311661050508e430d2f383607f707cf44d3c01424db42b856a54b7519483798a0f83ead23b212169ee3f6c0e8321b6be839f306d2f0233a41261cda314558b280d40f11b3ac7e8798ee9fdcddbeff2be9b612ed42d250449f77b8bcbfcfbefc88a363779b05ddbcbd76b44a94beb759b166cd73342dadf2dc7265f7aa55a48a490427dbe31f2f05c26c56221a84fd21726ceac056e16d614ee4efd8b2848c079c0c8b90c0cf068a8c0b73a58117469abdd3025ec4af830d46c0dd9869309ae8c8d58699c73e3bc99ff85ba959f3ad26aa58424de1150be58a3827a745048620dcda5480e8911607bc6531ebc13493ea5cad6e0b4664f9871257222ffccf0c1532d6eb509ef8d0f5049a523a249022aa317ce18d0f52eeed5c5a8acc1d8a87310d3f3e9a55c1eb2cca98b8053bce0a61336ed864bcb24e11e37f13f65cd95fe68921529400ec4865fb31964e6d10e4ab43f8d287a48d042e96e44f9b5b3ee1a36e608a04ba2d71ffbdc9a593565e27ed0bd7c918f0e6af3d5fc779a04adc26194ec0046d59df1b720f9bbd582be5319aa68982994a9c090e86759130e43a207e3bceece1bc09d375e1b90bb0cfe20f0fc9e87cb257c06a1bcf366af7a6ad290a1694e7b3f622256fad56dcd784770c3d884cd0208dd4468336e2d608b2fd58f10b28ed943535a4ff3a197d73ba79e8b1e6b21708faef431a602002ba8f00fab3a5d574ec5f4998162442d4e71b3e5afd7c70556a9aa3f2c4a015c3688d6b8af0b7ac992f16bf095016cdcedf70551890b5dd29a4c1c02bdf4fff85de5dbe6b822849a8cbca4ce5fb9c8de303c04022057cf9b3de7c240dc477fc187b2d629130049b67efb451fa35bd6072409caab0b8d2ddf7b8e96a8f5bb0c0a9963dac31311bbf784a43166fa79f19020b194c077b5dada81be3f1626e22db10a61da716773f847ab8ebfa20624a40d636cc1999fbd3626f6c9725ee0618e47a19e65e3873a8dbc4f99449a7fe884ee2d334839c0c460208dd3598ee958a1b639e59cdd1b9c61c0474a04a7265f652803ec78b8c570b2300baa6fc01296881c50744429c187df0a4d441dc4c785f7473707e367e6d7d552a6f7951143dd19e28ce4ee7c0d6c3e89f0afe3d2bdbb2b78d98ac6f0a7cb5a642309f3f43af4acc9900a17fcfd0d0bceaa8602185e5275d3e8befe759af346fa9ee582358cd45c488663c6d49540de599b0bca12646a37e489cc894f09bd37f65f5d44f9505c37be19898e99257360a9c405b9451b8039c9caa4314be9bd7373c76fcee19de1dafe85c01cb8e393f0e266c0913ef3c75e377e6f07fb3cb4315be37f92450752b6a28095fe83d6fba29f4349cedab613d8e0e57c6e55b6040718a186adbe8982e110306ce9a4241530f5b76a5c807feb3d3f1917241cd1e6edf1d94daae58f5ed0f8099a37d8af24cf268de2c16219bd6700fb2c5855a0855d2f3b92f836fcea47111a0cc539eb6709e99167aa925f2c2316bd0d3828ac7f2c01f2074756401e8abbe6587dad588a2b043d17dc445a0093883d8522884b9523c9d87e86c5f5e36b467ce518d190e839b64e48f80a0ad44b31afaad7a15861fcaba095931028d68b1c79737db0d6394688327ad20eee5c084478f3860a214ebc5d689f37c658ed9b066f74355a52e66bd1628610c4ee5397337a9beb5510fd258408fb437b7a0e1dc307232abd6dfa31b4044245a3f804a602258e2c1fd182431a7884d76c48f274e27384894716632466c882f51130eb2fe9c365bd3052c4ccf53f97b0aa9156c4ca6345ad3f7c8a2d4f1996d92f386d29e1986bb7591e06daf5840dedcc37664dfe8b4e0322de6a12309f973b3139909c4a4e1b1d0056181630776269efce521ac1f7289ab955102965a8a27f78f84cfcee5fd05a03ef91c4ef1f182159ad5ba4091fec512e1c5db69e5e97503249104c232b7d4562aec96c11b8fa6f901a324b7d8819694cde657c079f7f6645e737a08d91e7372ed1e3fbcff993354c3462842bbf36255862d6d59a50c5ecf8284b99afdfd0a0f528b74fdc3430d49b976f41b1f0edac1471a95d7261daad9ea1f831174d7c4104df835b71e5114891cc17b943426dda6821cf0e0a1ae777f1a4819c7f03dfecd6a052ff76237288fa063cfc4615fc5bf436e5cbdebc1c7085efaa95c528ac03ddfe2f586f1ec770e6523844e6dd3dd1da44ce89ec75b645b4194cae698332675e449e003f0dd8ae070d45f2ee5b3e4c21b161a69721604b27c0ab0db8c5111c2a5826c04b3216c9ede50109a65ac13dd4e63bb84ea8895ddf362e6b7923a44fa16b2fb853d820cdb2e8ca8d181a4f2d13b9c60dfb82958279011b7565b774cfef2febd0237a3cc016a255893db309546e642a986fb62f09fd0ab6f9373d75004ba42f3bf33f10085f81fd35f2dd899ea464c6c091e43c94a18c118c30303f5a26b36b595d3827fef21e0f3fed2eb9a419ae08cb5fcfee0405a9d940f3b33f42f513d7871c39a6570af1f4c66667ab4840f1a8eb0ae7de32812db27d5ef1237f534ea7daf8c5118f9134ddbe843ae7f348283d2c15014de1413d93e76bed63f29c7cf9a10568522fe99f7aab8b7bda15a6e8f635a2444f362f71178723400e7f0aadc83c31eda9cb031ec574acf9806934dbf8b0bc0c56d4a43f067e0c070ce2a86e64faf8a17da12d44b2ca1f7ab8b6f20c99c5e16bcf5af7bdab6d19bebbdf862e698869baa0c607e76710efbb4027fb44cbb4e788528aa65d5b9372c7ca16a250535cbed77db1824f30aeb7604b8ca245be6340dbf31efd26c4540aef45e89a033cb4fb4aca6b9830dcffaa84cc2586c1686e0296430be2f85a805127e261f94efaae4e7a7671f373d8eb2be8c7ad12cebe10f8923c6828e2f0defb44dd66d4494d517bf953b4fff794c8b937a53d18cb838e16ad52ddfb399faa92680ffd6b72c20470ef67887b2749b58d37dcde9968035e5072c34a4a797d9442d934a8ad363f95ead34459714beb87b83af879243c93eaf5db1b50921fceda9887682a53d704101c13e12dff70a29298f8ca10dab9100948457ba557ddc8f9f63efc5954fab13255e06399067e547436cf5b8c1956d649b63997eb5dafd183f84242002646829eede321a16a0ca1f73f384e629670fde1f3f5ccc767c5cd3e2b7de03c111f772afdd3d206422e0214b00af96cabcca80743198e003ce74537626df0c3b3b355591340272e80e533bc2cb631422b72ee32205e18b4ab7cb54ca4936e00b8a75e228a9cd099b0c175476c648b3abe0d273ebbf359da74c64d841f48308bbd89af7465f7c7ce2f0a57dd1215f461d0815860acf0aa4e310028d2fff6697bbdde70d4561f0b930bb439bf2a5ec0e71d3fe67c446a9e054095f6834f249c48f0b85139cc1f45268c503773bd24b9547b1db666d1f7e5867d9f9fdff709a4200ad26dc27588e128aeae4391037493fc144267340a847dfb2d68bcba12ccf7e635f7fb8497f13888d2e80048c17953a036de736698320da3531866b572466de66f911d533388c3d6a817bdd14f6474eac2498b753f4220a4aba7792a16dea9802b8920af517fd62ae7004a9867c8a482daea5463142ae822f7d16d34fa681a1deaa172f5851a2945e54f4f26ef72f759918f4b0d7dead109e59d3279c8644d0b19872a0118accb0006eeb707146d442ea5343ab2e61259959940c9ea8433e1aee9d98f612b3f773a6949c9c252fb86d07005351bd6d6e8a30ba4bbf9663783144a1b35f13f1ad198331acdf62beebd72c8912e62943da83640394bcc8fe8b8a6f3717d1a98ad70696a0ea3e647fd1075eb90ec3fdc0c4b544bdd6644204526de7efcd7104380a82218f8e188fb2f03f713b7b5dd9af966ae3a342aff5ae1db59d58b0d7a12896d39ee192eca3c10961a441424778bee2cef4397ff0c0625dde4dfe218528216fcb53ab2c4506da83c97863bbc8fe5eef7fe7842e41c6b25fbaaa427cc4033dad13345234818500447c707134d45e3dc934d9446bc7e3e94d376ca48a08126d167e8a9b5594484b1e9d5a1fc489f9b6c8b730e12bd885378ddcd43e5d78fe40a84b6454f32e5e02fdd5eee987d356f323e92b79840277069669997432d79b862c4e19f057804cdf38ab759b73172b95dfba1340a7e14a77de420078ce59a766f550dfe2024afce306057152530553d961ac7bec20116a32c049accb63f922564e8712873e523d7a8d0b0610aa8909a07cffc49102f27e7ffe9abc70eac3de1183b97d3f7f41140a933818efb41e54743270569441caac0310609f3f90bd0f99b5bb85d99b10c3b8d357c13636aee16a019140e93df9c023f905c548dacecf49241090dbdf544d4138065832ab41108f3b4b002ae0efae3c8f5ca0295055f15c49ee3c831e7e2e1cb779c812c03edeb3034a99ae31f5f9d9dfd11337a62c6db35c9d652cd68648ce16aa26fdf65e4b3bddbb78c9c3a918122fdd1043aa39b01a10b71cbc831a006ee580743e2d237a9b3c3c07b42bfc0d9244778125ec0fe19222f7e3e0b2d64d43f8816fb2175d110cd6a53885a4dce15e719bab5636192f684768b8650bbf4e5cbeb631627d10acc49e6b3692a9fbbfb58a11942e92042bd0fb8d6b2678a201082252285755f45ec98a1951c0eb173f1d7d1c40be178d0f830d5bc51b4eacfbc14f9325ca727c0bd079699d104fc1fcbc30b1b68d2abc4f72fd4dd37da1fe45fbbb4d8cc162aaa6f94790274f2a9580495afe0e01c70bba4671402ae591d2e32dc022814d4db2eb9f1c73f596bbcdd58960e564baa1425aaa5d749420beadc133d62b6e2ed703110ec3abe0038be75ff1c71778988b1efa17701177e76aab98310240657b1ae1f878061beb603eeb845895acbfcf0de6cffd37df316ec2594a87f494232fedc43b87bf07616c05ae19d09b4331ee50e6e8565526e6c5b4f2561df20d72f7100ab5be4bdac4e800e8f5b33f785c763ad85cbb8deb74c78d25b48d19f5d02e756f871cd26c797678879c2f625a93091ffdefe02594274cfca8246834eef8022626ea96b6bf4d53bba137f7d867775e40abd842e0d22031e7a681b87ce8e47e61e1f8523c99852db023ad531f9797c2da0e08c58201f34f8e4e0421bda3087f213948be824c5430441ed0bc34e628a4440e1c3cc38380cbd1b493dae246a19b2efc4674b77f59840b4b615d24e02b2150af2fc095c3286f8646aeb4fe86869e1bedb4b6a481bf94657dbf64b2df499871f57adcb7a0952611f6d4192cbfeed9b9e37cb66783942d45ba45739c09fac87eb9f04454b18e3f6078996ae0a940fbedd4d47758c19f4d7dbc48a0e45b136cdfd870e9915371eb1b4d383e58b6837e5a0d0a818276472e7175af339c493326067367a82a4178b0903db96166beef97bf8c3b1fe06f8a80f2e7167f6bc50f49ca90b4bec20e4bde6a3af8c255e0c5aa01d04ca40eeab1d74fa86480faef27549350d5ef2c8072e394fc4f24ec142ad95cc30a768f776cfafc28fe7156906c4c20f34a1e8403b35f3cde6606db1deb370238ada4fb764d140447a62982c363121b28073de46a95424090ea877c80d26dc1b192f043023318c0dbb56ed1dc0f50e5ddf8a6ae8743a0fdceb68c5b7606a18f123e6e0696bae28c73f57aa8d208d2b323d9776a6024546bb3974c57f1239f717a44bfe027acdae742542faf99e12e28fdb01349157309250349cc728f0dfa3129a13158dc6b522c651a27be2dd90e43b86c2e2d0fc73221170c089b5199d181c808653abfe44ec552dbf7a2d734719a739805d2c36c56294d02ffd8b4e17e3e14a54680e67d12ca30c43759433c1518d50968d443ffe4a2a166bbbfdd01ad0dd7de03b02d79bca5ad52571cd1baea43876e49550775ceb90e363e7f2871b601b49eb1c21ab8c77435bfb1cefd7f115a6500ebd027c39989562e213360afa3ee4525ea12c56da60791807353e20b95d23efab77de02ea4c2bcf7340535a9fd5219827b059d5e5cd71193098b773c3fef461ae280443980203fc5403a1dbb3d07e0b86f98165867a1aec1c3c180b58dc1e4ccc58503283badf1555f5f717972cab8f1534a872ea638b82be06fefbf47429547b0ae6a98bc877bc0df899d49cbde940115af0b943d0465a711e43b1ded6f5755f1da3f84821b0aaaed86f7ce67b0912d8e2612deec2c314193df59b99f08ce5f9c91e82513e7b3856ecd89ee52a81626f6952ded427547634315a483c5383372eaa758f38d6642028cb9e71917b7e1c7b93e19ea595b6793532fedaf4d6d96f7c37d679a87374331606755200b4fc2b9369ff7f63440bbc9ab595a73f2d5b7590ebf8d33b12c4a96a30d2c09b4400ba0193cfdb81ba15bc8b000003c18d20355e62ceb700e4a2efd03a3d95b8c2fbf800565e58c1e9ebf0b2022facecc7589abe9cfdd0921fcdebb685d666475ddcd6423730b91bd25918d4d2d9cda672445e15c89e44b101b47c1e664be0e6d04fc20aa4b33e0dd6fd44563b794198d17efdc60b2029beb1f7b6b19fa92342e0e514af6f870d96ca4d3a09be7d30bf8d79a9bcc64b0db6ca6fcaeb784bd427eafbc335e941ae01d29795d532e493c0c4d151d1f282ced0b57d4769941cb4846bb3074f2ec59702767ec38f1bcf7e67742842fa396c6454361f93a7796350e8cfbdf3aa50686fba1125506292cf14f52f5467d852f3588d2c600eda787083a50481a43f48f035fc7f28f4fe4009da61a5820de2c56ada678d9412c2af5ad9dbd990afb1ad1a96baabed5848827042f8018f0aad35b9d533ae17bf088aa847d588f6940632c2d77d2880f65cc7329b8d82291aba41b92268f66f780c3b1b26c6d39e9c92d7babe28411f6894097f640404841549ff6e5f977cc4839d3475e28b03d12faf9c60e4042250cfebb9ca92ba1791e757a518a86b23ba6722b4e50e8feb68e4a3c3e49144952396d102d8595377a51eca57c9c452c57f7d83d2c8e7f956e27e061d3c2806f212be9613700850a07d42abd0fc31a758b8c2e00ed696dee73a005383afcecc64aeeb1321f31c9e223b894bf79bace16de95224ed534b1a797e984e71e685162bd663378f33c2512c7e183e3762f9f0800bbbe9a0c8048ce59042e8e8ff6f0f19231174c841ffe768ca165739e8f9e47928bf8949f94fe806a440973d524ae8858b6b281da8d53d27bf8ec85425c895f1b19b6d39ca6151d5659f70628bda05f14d36f2f1a15bce586416bc4e642d9c03295446952f4c33f6e7552c10b6538ec0391f91ea730b5f87ee69246033fc5ec88d78890fbbec5d6c0c20c3d975c74857045be42d840de912817951b5370a3a74c4b67a21e15501fd2c18cd95b1ffd847554ae534f5e882b62001e1c94959ce1cef67fe439a719e944648472c180c507d9a7ab4b122e188420bcb105044b8bb4d829209ef79cb5db837ae1f18c254180218d3b7d84cf4bf445fb4b08fa10d128f362644b9bea6847dda4e54f5bb334a579b8abf1efff998ace00a9d97cd59057f66b94ac990ea133bcee4f57bdec39b866e8442a2b955327954df1f3288536c7ddbc84a0d9b07b7cb90ed152dac0cc219e8ea013e36ea4f3aa20d92608503497bee43c97c2c6668497d40f184bb676472ece36fc728d0521972b7517f74562f45ecbd0aaae93dbf3758d4d8622d2f10b683d22257f8307419077883cdc1dc60ce68877d17de7bd95aaca148784071a1956a8474c0ef79aacd8a2af19a2fbbd74cfd019f913aa07bfeb46b72c5db836d70497d20d0def532f6394d9d4bc3138f106b27b0ca691120ec57ce35e28e52915841940040643462da63266303c5076f75822983d83121299066977079b9224958b75d52233414e1928092cd81e9d6c9f67e5fe04130f4de4bec39384757129b9825efe0d5a98cb89cd852e0bf8ccaeef6551ca136b4992901053e5432acdeecfede7741a1305b064382ae31b9022af975b47e5251311fa38a9b8ba020a5702b481e5ad91881cb0a1c4d404405de8c11fea28c5559010e943b12c2a3277f1d6073402333def53630178f347944a50ab522fc3fc6ae6447027fea30b0deaa98557f4ed29b2702b50e5e6cd42f6b7386fe7014a62a18e3ce7d0e59324b0ccfd512dbecd542c33996bbccc92bd6b7ea2211c56384079f577ad096e110aa3222e18bff278339f79286312a292aaa48ac0ebc2b3202d376827586d1b1c6dc48a768e1e6c3e2bb7d90929def47fe5bdb7d398a374a6d0e6f6c5488fb610a2a5fcb43a5bf3e6eb5db218e5504a9d2e743b87bce5af2e6fe827e1a1b0a281556dbc40b21969b23ffacdaa6638f638f192ea46c24435c57393652d246b5e0099394972d60d407b8c7f8ea7313cddb32004e85e7801d43e18ce0a2c0d5f74b63fac57a8c17e8e5d07efc3658cbf546f861d9f75b63480faf883422efc63e013bfac58f4dd214cb919de8e1e6d54a41cd8c45e325f0cd57f188a491ce5f7583a1798b7289ad4556f8739f8e6317c8d8bbe2c0fde8aa27694f851cc214f46986a2c081816c05ac55723a2017720e932b4f2bc451c4ab0bd99320d23468f261b14e89cf29e2c4cc8a845d001602aaa7bf395030daf03d8b309c0c9b6eb275574f0510e637d908376cd084a123242eb9ff7ddb421c5f47486bf55fdc3e9af80b30093814e751fb187e0a473ad79b905d731b71a7363f8875da24b5f45781a8e443b138fd34330d3e0019981a39d80496fd5d62da4e19be01d531dfd238f95216c27fd50f9b070800807ecff3e9c251569843a89f0586fb6e4b05515f71f2942fadb86d652d455c86f45e4d8a7c00f08053d23a47248579044bd6b52a0e1f325e0d903b00869afcea28d862b2aa8b2f7f9b03c4cd3bc4423c39afb1dd1108ae2189b34ca24cd74c394d200920d6fac9cd50013c2b51b98a88e81c0510ee172a49341bb2a8e0983af491d54c3ccb6e442d93dd03780ab7369742cd32e7e250c4f76f2b3a614e8d3175d2b31d41a7d721e7f45bdebc8cbad5526cb268432296fd0bbf2b2e674d462b464a09d8da99cb14fa3d3c00b99711f03329a405d99d29b61bb35ddc1d0b24ec6ebe72fbf08eee46c89622bc15572ad75f6dbcac593a3b4767e79d079d7a52aa0c8714f744e93b36c7245744a438726e4da03ab5c6b7e46bc49d7f7b8bd4d80380d378d2c38972d424a833b08b63f8f6c56a4862394d021625d1a431ce203bd9d425da2f62ec84afce0aa85d0e3855d819d71b7aaed76893446300a709c7bd58ab555e64c465495d79d9b6d27dad70705ca7d49c6a8412f9a8b8a993978f0a963f38e46a1590b5c63fe9ef2d8807e5a6fe45154233a60b3f17ac613f9df44bba87372b97a07acbcfe77d829b5b6d99e193277758347261c992760a04b6cd987c162fc63c4f161caca795331b12b7d509ad3041cc11ba951ff5c30440f10aeece897a4d77f8828e055a9a5ad12b12cf49de3295e7841a60a977e890a945bfe75560663a4e382c174062e204f0d46f1bed7c17d70e854c0bdc22a00bca693d8dc7f084c387f7591b90d88fa9fe32e2c4a4e1412b03940e03a0073166ab30f45fc94158e4e847302b8b8711ab212cb90a672dd9c4e7a4716eb1e838be7b3574060384c6aa17ba1f165291cbe33b45c220bdbfe9ca581b515a35640026571e3c1c5e06fbb37c4d8f6e85b6aa20527452b1e988a3e944758a0737ae51c4b11fdbf81d3153af548b2294980762afaa5bf23f1f803a42ecedc31ca83dcc6af2ab32a9ec0f6b4a7acd12f6921643529a4928f35f3cba98a4b4693bb300c48af97fc9492f59ff3c767c0ce17fb6446ae60f9800ecf505472469646f5d0bfb8af36f453182698c5c596a8a31a4de60b210ff715de18d56f7e4ed141c1cba99f3e824e1bf1d90c15e7b6681c099e4a5d9ac57cd3cc2d42f5e6fac2dab82ea7acd71ca965f1a2b25a21da0296678cb8dd728b81cb448ac8603173bdda3424f1fd733d00815cebbf9f5033a87624d2bba30ee0cfc951107be621e3db4dffc29f8943061b003675e6d79de1b16d903c90d15c00eb113d709a5bfb4d946e413bdb82c4f28a975fc603637cff9087eb90f086bbcaaf881e3b20e0bd12ab1b79c9e4f148b469dce4651966c28723cf1860f396dedc1b56a1ed82d9b838062d92f3876b822a19df16aa86daec8169a750d460bd2adf53f842859bd9f295d95b73fd6f9349558d117755501206f72bb454d6205ce8eafeb3b150acb3af55d4ce66ad49d02bda00f9007807b1687e41c4a628c898434df2428530601aadbbe4c9da18eb1ca5714e11e422add69118f0aa9b017831be7e10f8450dc3dc8e8b1efee05548b7d0ded3c432a9545aa332d54b3f037997df2e88bac47f6c3796a7028a10c78d9ef8a2332528d417e8210c62379dc07c37d0cb58d3d6d2a0a7c5e899a7fe920ede43e49dc6466c512b0e9737d92ed78b636743b2ccba28bad70f99ede1284ef02964bda2d626750ea6225f6fbc4b5fd2112c3e3d53631bb27182ac6a3b55da76e56a95d9ac48658b36d62d70065f9e73bd1d0dde6d539f1042ca06358dc728804e8e9002d8de247985627d52b9648565de2247115ba8029021d0d705c9ba763a12fc2c62a761b1a276a22386dc4821dfbe668264cfcae04cac29f427067e5bd81525db028f1e9d890783e3cb89c6fe0607de53151697f8d8337af6ec3e50b9ce512571c82fddf0c7e33ef39dd692429fd5d6cfdb3a4187743a3d32e70399ba7d088d854977f6a974e87a9cef8ef06a14ffefbee253074c3be5af6f7fd42d4aec8c35b1c1c894062369022b0ba85bceaaec62bf8bf0a20fd1d3b54178f4c40beab15a932aa1bb6bd2a8dc86bd36c8a2e1cfb800fe6aa5c2a734ad11c4caf132f28c468b0f48350c290f639f7a6972b74f481f11a35bcb06568857f7f2f7d85311e55ddee38204cbdaec6bc0249df9ad7d9157fc9ea68f3a9e4ff58416112a5a510239fe78e62f711dc4f2c3e5c5262fea3b827263fafb84fb27255766b2525b304a57935c575944ec5c6ea137bd9867a813ca0af334b8597e1f52dce07d81ead1c9807b77c1f8e9fe0baf91b0b64de1a19efd23b592ee8b97dd8852d452b0d6bff124e478cb6b790e413bcb4cc174d7f056997d51992e665e8b34f3da5a61a61f89ab49e6826cd47fe0091b75631c36f1e61407cc18beb9f459764be00e8d9cc6b19f5b28cc67b55e544aa4a7b19be534cba04298cb5144b260edf1ebda18fbd046404ee630339c11363b9b860d4f9bf1d6b10e44fe46918b0b8353340b0dd4f50129ab9008504f5760a98b12207e2c2f92ab8250225261e00ed2c50e75eab0bd6fc55023fecfb1531cdac9268d35a71241be093438a3b087b56f5043f1c30d057f4a74727e3173c76a7b156a8c567fa1115b1b67d0cae068bbc10476f57ddbc70cf5c908e29c19f0d5d499df20634679a722a70136498fbfd9df4f5e57c6c0904e57c135bf651019449fdaf1a34ce28175e3a1ef916aca0415a738b418f0d907255a32141a48963d2fb72f35376c1b902cc1dc77edc131ae13a1630eca0a68bc023bce8f115f4ce9945fc45788b6559f89bfef0113d56fb36c1aee58b982b9d74b8fe7568b2cb7ce979d5a3923edc553f0504baacf49b126832856716e03449f450050bdcf201d6401baeb04e8ca984a9efe067b34541f34fdd00003451029746a820d3dc62f0c63f1a203dc3c1a780be1f498ea9b20efc6e6d3caf3680fd278371ce408e3a0604d78e7a15c159cc3a40b9d21c02432e9bfd4cb611760c8f626cf71facea0b29e807bc2f1956e3041e8d165639c339bc4abad8338cac958c701604894bf16224c1437b108732c85032e1b2bcc95377c73f72ddb87170c3f49729aed768d0ff10a3f31bf2feee74b86c3d834590e10ee76b96b378c585de499fbf0355729e9693c7d6c4b8f13951328cb374de936bbad20413f728031f366cdfeff0873ee1237a84fbb448a9e5e69c996e444aed3169630cd4a3b4b50a59c6091c6d12d5b504d8224b71acca5b80ecb8715bede146f05058a83c0326dc921ea3ae9723bfad146b77c9f8e382b7159b88df8201422dfe7359938873be904f70543dfd9b6c403a78279e6e247422b923d6ae1387c61df017dc44042c82267346909c2822f784c4e9ac490ccbe59502b94ee8b1f71b871fdf0d719c5859eb5e13055a6cea2ea0fdff80520505bde31c14f0f314a44e2a6c6f3b7868c60bef7c5e0c4ef552e08ac3d9a42da74b402583d6e18bffdee089035e120a69466eef45f47a0ec98b834c0b76bb8e835d6d6770bd1eed90344b68df50a9f37730fd353bb127cba2d1232915add1472bbf85e9732e3c39d9c5333966cb43152dc0ae01d9781ca0b49f05909ae813fce034c91027ebcbda4a84d1261dd528bdd03449ffa6c6492fb6ac1117e5bb415cc67a8ac1e9c79d6d611d5dab91c5646d43bd7f5d63931f40449861414f59d3ee645ff17211d85f9c2c9728a3a97aa576d56ff9653b92de74f50ed66447a9613f05e8334df26e1a87c8e59858fb1e8e48d4761909a605fe1e2cecb4228f1225676cdaadd0e791c3301fb6090bfc171ce80e99002014f005c602e9db64848a3a2d5348e4992ade6cd0b280a89797e1cc398190854035b1471d359b7c50c45a4df0e273f019ea1083f5bba1b0b6f134ac371da4e58ee858ea31f05ba7b81de322f279185be1bc849205894df409d582417bb195ed2ee3816fae2b772bc8db48127cdab0af5ecc0c3996918dffd2d41c66329e72faa131ea27026b2144a02262cacad35a43bfddef6e7fa35c38a0a414a838de726f226fd019cde9f735ea52e91fe25450c31b4708ae65a513de26377a8c2e1c3989cbed7d9403ea4f5f7f290b258d09f4b895ca1a8231660bef4178457b39c121aea04a5dc5e8f4c083b3781ae6035e5363eaf59bb03c58054b0fdcf4d3c0299ef164df33ca7404dd281b10ee05b94197dcb89eaacd462784f1d2305a865876a1fdacd69703c07487d6e375f5329142961c2dcc59b92f55a51f42fc94134c365cdd1f36c611f36a00f5c84cc3f3566b8581e2c773d7ec65e43377cee0dda632cf21606bef9bd9399887902e293150281392fd8da766a88704f427b4b9c1cc1f2f420b717b5f90d2075cee94389ea01cfbfdc5822537ec7b1275b425a69ae92104ced411d9bc89d706e02ffbbfabb30c5ba836acc2261ee04d0c0d6e2ccede15d15616ca25d53d1fc238727288fae9bf562854a18a8792988c2577036d15f1e39dc3084fc0fa10b6d28a1842e43b827ed7aa39051561dd01da3ee8b05851acd40e16b581bbd6d1ed7d40551cd8110c8a49b3b3dfcacf7fa0132c76a4fd0239a340373dc04acfc81a494ab92e1f3b5bc267a93d261a75f512c15355637185dc72b802cd542bf6d2b5be02cdb152d2ff3c35eadb5294d0506b329c9ab32e647d0ad9754dfe46655916b032b21870c4890a338f4a15e059b82678563f8ce97e7d6616836121e68240d8e718962816aebb166954f4b28e9e9208f8ccd0e8e0269a6a44c9fc7c37e05a5b111751fc7300bdbde4418b79c9d22617debb5e15a6ed0b9ae6c1d78630f63a7ff211259f3e15a019205f134e67143f73f82516a8dc31284cf3b3a53be91f374c4b464a9c4b7fe9f9a78c8515a5c344b5357a6d2165eb53af93a44a107f49169e6b52d90637218d273561d3eb2c7a6ceb66dc683731b8e1f9aa662027e99174a26124f62fd145d00fe5a865a459235c815180667e19c6f02863f79e499661c1abad4ba73ef49d7fcc1cdc07ca634a9d61b09d1598ac78ee90e5df538d10cf82c85bae465bf4a0189614c840d6a9cf74edc0ccfa687047bac104c28b4c110390f6b6d53566309366429948999848468f8af31922ffe55cec9ace61488cba838e4fcce24306129e783f4abe8ece4342b4cabdc37b2f1bfc0c90155fb27b56fdf9fc156d83052074bc73650226aa24e5b281e62b65e8ee1b41ecb62c079a6bb600b67d462f040d8320f048fe78be1d10b92920bb29bfe893c7ea32b9b494e7d0bfab9db525b021eca5dba8869ec58bd2e57762374e2ee8d805079a35da77e2bc2c78ccdca4373cdeaa6398695b34d768af1305ec2209ddf79567d6fc3324e11ca1dd5f6c7852251bc51695af01a12899cfa341fe2c7b81dd90352a5ffd0a278a97961acf078811069995d1e2d728d7e772a69d01bf3d4653fcc0d360357e99cfc7e9dcf076ffe0a6faae99c075286d97065ceb3861ac07200247d2614de7fdfa26434015400f93aa5dd30f3434f4268312ac2f12d1aefede318ee6248037fa999b011934dc860cb471e21b6db68906b9a0b78ac14d90128d4742ef0e19abaee743061d6b0a23aed1a96575c0149dea809b51a2b991879c0bd01df4ccbb4dc66b81e30fae0cea03017c5af25572d9b5d5642a42d5b6e2dc01565e6a87552779038c61c25181093ce2db090f52032eef59c7080324bd193256da86c7f8863e343b4e7f9157e5669218d5eb2d26090d349dad9285e34fec79f4578a2cf284ef389aa803c9021d90e738dfe9d47d55e901c428d943ae248cd476ee88f35111fd94bfd55bfd5db23d69ded4b35756208b3064d7631a9ad6a5fa35cbbfbeac26d33d07ec4cf1fe324d822f2c4b29abbac5fea46f8763e6cb43a0b2fb809833439fb16c382b1d6677a580c30af1389beb054a94d0cb9d903809a6c2e5711fd408aff84375fb7fe13fc56f61ebac3217237b25e0ed7bfc17376d6d85ca612f2ca3b11c8316f24c4093ee76399b68f93bdbde8586fb634626a0d612305db685c5845d0201d8cf8cb7a4ced8527433370db14a757e868c8b87cc9846e6f3757aeb94d570a73717f4e558feead051a0137023a06a2d6173c847bdf1caf6eb5e52b1d249b711e22b317d78e2ce8ffe88dff361698dd76b1cafca92e49844f3d0e8035049820d8d6d8a87d1cd4b387ef8b5c0a88b27688dc860cafa5fd682350bcd4d1c94b25a603b98ae9204d252644c9268086617c5046a2bbd8b82e43b38613904d6c8d4fd5788eeaf09f8134888f89db4b5d006d380748ff700aea95b6eaaa6e84ce3bd0d7b8c9ce26913e0514c8a8c78541c28280be60eb86e3068014c2a4f535bb4743188b9aa6ee0c4c0121317a869c6dd274ae444f4db324342e1fa18817aa3cfd3088a20ff456be2569cba4dc34aa304b120c8d730e8b41c54baa3650d68a6358f437f02400862fb4841b6c6f3bedf23b3206a83e03008c7a8bd8cfd4227879943819dd88614d0d28cad9c4881e05ff594f5f93f47842d070840b731c7241e5b6303e2b04e54f36375849ab3398a1f3ffb3f48e948d71d822235d55e6092ac03d0c2f33ff0dd733d1563455aab926c377ecda5da7725398813bc8cbe3c53777c77431be574571ce77a8328ef6c2c7044d23a045505333459eef0562489ae89513effac949607281bfeae2cd72514e49d87d81e5d6932fed3955429b1b83e7ae95060a20d50e988cf6defcd1e1e6a2a816fb57d087980feb09b82047461c2802a531364c7a1921eb57e43e9f50244bc8105f960b4481de8711c8a8636e43d9824f1ed57aaa012085de9336a425d25baea77db4053a8e923bc47ad20e05517045baded45fb13e884fb518fb3ce560935b179d3844d59727b8c2d3a275544b31242f9fb2cf98651cb88556108376977a2a8e97c541255574ef52447271c51daad67f339db5de9015d30d1bc42039d6fa5f2b4f845c68d1720d410135e154e732f8852e0008b5693729411bb23311cc5727158642d7a9aad717561e8aa5f1c593dfac2f146c8b8aecca8f33ddc0ac03619b05f4a8047e439f0275864d2b60d0e9fe9a9229a64d4d34df75faad19cd68070f812f30e9710a9530ce57cbaea564a464f51d2fb3f94b63659f4e62bf4fdcc42ebc1ca4ce59ed872faa847b487e82a0849a60e87d6a75496cf0ff76dc6905627c0a9e86b9c2f1e52ff6ae72d3f35ec343bf06dab92afc2c079ac0d9c371bcb4c6fd4d9242f90b43d8a93890261998b8bdec6c30126710d194a966fc429c9be18d46dc7b73be7850e70496d630f0925453d445750a35ac3f4401f8977b2b517462d84d45a9605bf8c53eb27000238bbd7d0f77cd8d8bbdeb950b72c0b0afaa873de30f4e28d9cfa82d3dbfd4b4bc9d7afcc52640cd05f7d226b0230c054d9541781302afc8fa68ea2ae994f3a83b9bb03b5cdac733932d2ad7a0597c9974fc22f5716118b1a3efd17a87b228ce1577482883d687790ce32e04f543cce9421c178d6338cc1bc638e36231c2371d177c22025191a9435b2d4d9e17cef369bb2cb520641a89e647dfd4c91a6eac36ffd34bc5b2f5508403b3f498e003845567af627478690885b5536d722582e9c64f3a550f06968c9029c2723e81845374f4f7710a7f1efd9d370cb931029f8c5d1c2995a1109d05ebcfa3612651d893646406f486fc8104a75c45842e4bb2fa412fd5301847f8b1e661f00b8aba9b19313cca29b3b31fcd2de4e5d743e79a733c976618cce5cf7c43afc5908937f6849ea2eb49c7cc823361f59e2e9821005e72b81219a14b9729e19e24fd87c7522fa4128e7e6c629f25a285ff3190fdbc81fb475ad01e09a17de228ada9dff78802854b6394756ed27e50228932ac1b6ced4680f42368a45d29e3b9ce72a4dacc9f63c4b3ee73496a0fe67030b8d3df4622e7c06f0dacaea2eb938246a5b27139c2d9f08714c52512f9f2c2459d7b7f6d805b3151ca46d2a456e76d99be668466d118f0bfc12295089864e6a1fa3012606044b4b27c08795087bcaf9df8c9ac6c22742fc5980963e070d862f0b8bdae3701287e8064406953973d3642644aadb2b8f54082b76f054d86b43fe2ac907dcae16e0dab8ff424f7b80a91deeb6c162908f99704f3e960947e2919eba7eac0bebc094bf2a74db6d9e4de56db2f696ee349555dce6bd841d4876413d58f71185746783438f07ed8f65d11b023c73f4604b753a4452cab960941eca01fb7e95a1468b593b460344ae5872140137031fe9fc4d4941635b584605fa66512873cb30331648448a585528b74d116c338a4d41ca4ed3e82b4e6bcfe35cbea3cdabd9857fd5d43be59233c969e57c0ad6132476b84dab63cc0296416ec602c5d3064281a20e55601c4bf083dc59cf7151c40490f7d88c48f8e0dabf1bfe58b0dd93aab109cfb7bf6ae25dd49ac2301e210d70cd0a889c7ad65837faa84457273ad780732403072046e075969beed31427ead9f6cfb9306c7e1843bcbf8b59ba4210f08b2e7301474710b02629fbecc90b5303866b3d434c913a78b2fdac4689bb971a6bb07cfdb202a8b223683de9c9428fbe83ce6fd1b808c0e92a1dbb62095d31e0ae6069cf98e3bbd28b47c4fc4daee9b0fe9149f51e57bded18373bcb113220fcd0d273245ab2416affb89014cae1f1e29152abf5c926dc717b24181bf3629e97db98b2cc601329deb70917fcf678d5153f88932d5ee170382afe71d7c43267ba8f62182ea640fa000945a31dfac649a33d5def3affbd866f8e7c8d1b74d22fc9c9210cae5e4a84155712971861a9208c38b13b7a4f369e19f423da0e920652522c961621592460c358a04f673ffdbae0826d773602ce734374b1d20e4255079e26985fedd472e691efdc418f8ad86701f05ae8f0f315a73237400a2538402a8d4415a1456f4840d10819f30077cb27ebd1e2a2dc0d9ee5807d4f619fc172a3914d61c804ff3e81802e6ceffe3692a2268b6e906b025dda39d806daa3bdce42e330b50fd4c05a5cb4e39a5934cef58786bae4ab5f0554b1003c574d485102ffa468d77963406ff61f9da475851c636f142ae7d1e8469cb559b726acc2e5888759201236fdc0a6ddeeacf68570205162fbfb255cbe143160021184ca51bfcf02976849f4b1ae323605f0530815b29293b54e684059e78b4f613c0e720570b2933e6dadfdc9472a1f1be7c8562fc3126e77dbf54bcd086c1aba013d4451adca847773ec2f6810d9477f611e3544aed6c916575136b6dd715e2d5c1d0737d328a4ce364ad166ecee5c5806c5892af971d36eb5e12e5d58af8692bbaf152136daceeca148fef0d29dab8bc61faab3440cb1069e34b728880244bbdc093bee5e7a5be71a30a6d42cf1aaef0084f545e83e08ff6ca159c59cef108de7355428d3b2a4dd7a31febf8e0089012014ce1f81122872232aac6f1c52035f3a02058e1e86a5d4f0da463d99b4435305462f95fd0ca2ee151fa8e6ad4ea021a1e286b38a1874e4ba3e33b03111acce50597d5afd1337cac39e05c9b24fc024ca5ae38545b9ed59a0b25b2293ca07352afce7ea201adcc4905674f968c38d61f684e09eaedcb9c36f7c41777bfdb62cb4980146353c89f92089ae6e674c0a35f1d7993d75bda7f208ceab53222212cb907559d967146749a41c531de429b1fb5702606339fc5c57201f3d1e9c2ecc070e184a30540604558d474e6a733d3598d195a1538d37cd6f58eceaa7371f0fbbab83e84ce86bac5b0199a1c572c30b9016e0955da6eb4ac12c048cdf0a520e09ef38b5ae8b47702248d4485e974ac7db8d435dc49cac73a3e2e69f437cbc6653366a97de46f89753501aeae97e84637ffabbf990e33db692e0d7ec132ece135e60a6e4fa57895371db94bd5cba8096697ab14debe29318d193126c10a3d8fefa8ba51bbeabe9e7874d7286c31deda0af7e6c0e477cc4ae3831a1795720e931606242165ae8ebe811ba6f103ce91c370d72092bc2742a71242dd4c17fc3485cbfbd35874822b44c8fc43bc85779b3c495097e9b348748bc41508b2c465ce2ad351989e6b46a5ede12bad87d52de602fc74e3008707555ff92c1e3bb9c69ee7c9b651863b6a86607b9f52373445c37d5ce40a8937386af0f60c51d778e4ea880aada771660b742de8f42a6048815a12a5ea7bb0e52ab4aca5d2c88683844e58c5481214a427f714eabb07aae29592c929e116889c1152f604e2a162a75566b08ba83d3619587ce7e58257f7b3a3d041190fac1d914231d402f5335da411b5debe74807ad4d5e061bbb1a4db0f2a9b08eaf4938e0d9ed821e090b5695f8b55c16b8c90c3cf0c41bd52562895cf0d623896473fa381a1e398f58a4d99c51ca96ce2cf868237b6688bca58b21f398f3719520162b41731d0820ad30ac4a881f033dd40c9a79cbfa7032388d088b84c76831e23500f71026f61a6b4504e2be46652262bdf059dc29df476966e31ac04984512dac141b4087a0673db0805ba022d85c7b08f0bfc34cd6d61423139ec0a60a4a358c3ec43a753d3a19ebc4442055027cefc30800b107d142b3686750921151e29eb81f6ba4f2c01caee62696e673ac84de54b3d828c9c001128a94e515e27fa5e9e6064da70342918f84fd690801c70fd998c0109e1c8da4290479fb9d1e575e5058ff2cf5a7e43fd324e99abe46ef9453fca7256526c829f0b9a4ec4969c606e9b4d9f8afddc839ca4f94f54545c1791a88a6ceb037aa814814c79df1298018b2043d62828d012f5da90694eddc77dab142316935082f623c0a8deb1d867dfd7e099561d2f193fb78782521ef13b1237f46c58486682913ace5945de0907fd4c1786db49b34201f49f51880f8a0f574862981ae28c481a7227c059bb0d908b6554b19cdf906e051673a43410be4c3d17298bae3737d48e498209acc1831d63f589ee9ac2cc00a7c49d7ba56647e4acf1d0069fd41f3c7b55111dcc70b03653e193b725a7ef78593e912817d3eaf8fc0d29f8cef9f11a6aac8d317d68f56e31f9230017f2efea2c861b45ca3eb7c953046a9c8eb91e17a67e9441d82039c63816ed68d3df8fbcd972dab99f783f0d3420e0bea7df0536fe58b7092b059e90d28daa103e3d5ab994fc5ca9cfefa80fc638fdeb2537a59053d7736b30e15198b72154abb6b81aa933acd1f1410f3969615b2eeaed3c7f6bb9533455c1fea6c1846d20891ba04486ff9587a22f2bcd7eb555bca184876be86dbd26accf09a3ab8e4ac84a5e78ebc4dbdf9fe27288754c721d804443d48e66ed4b72c2f66676e1c988892670234488ce4d26ac3e5a10c13807e7015e262e64d0e2980a5850f902687d742ea4b3ce18251b54084f762006a534d41ac7ba95a200d6d4a87b70118530c987c0dc27400bb8420deeb05268a52542d1bd096565ed4e068984e45ee8b20a8ab2c269c253052cdd78463962a858965d538761afa16af4e722fd24bc6925ec0a07d61c090a2aec5a880a1435c0967db609c7b80927b5c7f6b8b162c56bd9a45974308458ebf645dd3b5d95e78157fe498b875e04e1c371e86b6dbeab051bba9aa3fc7f854770a45988deb7068b1b3eb3070a5b4b565ac4c4a7a77f48c4a4478a45fe4b19af284dba0bb60719440e1ae5987192893faea627503f3634554744c8b43af8da7cc7bd970542c02443b0017df59f106f0e6682e936ee7aa73ba4f9ebe0d8b5335b0b265e604cd573627fc56980c2f00a626ade5b0bbab0400e4c556dd758d8a28053d832c23a0098dcc60cf6e47fe329576b4eb3eafdd73b7f2af7a78a2ca8a2c57e250506dd4e922f2a1197ccdec5f6d98bf482af1b3c9a9da06284206f9c74253c478ce1fafe121fe6304a9f559349284a8221dc5dac404d623e851eb153fc8ba3cce38d34e768b30ab1378de5aa0cfb4905f686d548e52deb12188e91ac5d04b8fde8d412000de8f79e247052c6bac8a7d7933d8c1ef6dbb59bbfe2a58e4735453f1c26d8de02e0c680b591060f3439b9f4d30088063f4c37ecfab7fa50582d44a79a22b02a390fa7186c149a2594d015b80cf199286d8f11c598da40488df04bf422a5fb7e72de8200e7a84f4c0a99a0d040c79c03ae5b7b945512b82093a60a9441f0bb85c1c94d109ec111343331c11c5f335ba444ad362df4a98f0aea5b896484855dd3e1f9e8ecb5269e240a8e00c944834ab2da5655c1704c5ed3f7185e42cd14764fa01912ff94d24a45631a0c4e00d52e619d8bf9ea68b52989406e3be05c8248eb508542d5353424732819f268bc640753213e6ab8baea4b0d8453d337f75926fb8898c69d2717c11562f883efc312b1b2fe44ac0458edd0211e379371a56eac667876fc3eb8434e639e60b377d8e71941a8cabcbc066ec281a5d71e51c93ac8864b99b14c1c72beeeac4ad0d6bd4485c4b54aa1171e7215a19300775b37a81bfccb4991880fd9651472c6d2ee89b5c6f8b9979f1b10e68014a0d51d65665f9ec80ade9ad98a09f20035f00b9b5fcf4c485639cc470ab3f8eaf7f4578bbce0dbf101b035a79ce808adca23aec0a9ad05ca1e44b3c6d519a5c41676d6f2ca7e6c28b2faa2ba3bf151f3def920d0681dbe696a81965ec07de5fdc0fa777cb3ddc53ed00aba6f4401d010b15625b60950a3078ac5a47ccd6500d88e0d0ef162d417f51607c1d9dc11427775496f69aa50fe5e8cf5e1e85a8b98a5b86b0947fe007dbbdfc99bcb5304d009be3505349ab344dcb89b559e5d0587f58172e112cf63c0057b7053728ff2941d203902f944f8d32ffca58b6cc352d23be259fc0acd95e6d22e40e108e17bfff51d0d667eab2cf22cc5092ca85f5998ce4cf01a363de4a17bf4a57c6f7ff6372c7dd12c57be972a2910428294dc002217a1689999d6a32012e2c8f3c7b361e4f575a20479e8e97437ef2a86c33654c43eeae916365b58dc6df9880293ca629cbd069f1a549465bea2a9bf0589849eedaba468ffded36090581b30078adc546494ccde32795b2817393201916e3ef03077d5c699e13a8555a83e6c312e90a5622a25c444bc7020fa3d1456d0638cf5b4734d2a937a839964b7bafc60a2d803c2a6ba41d49fded1df0274fe0d2979c294c6a735e36934a30542538db6cc7ed8e3dbd68c240c1e7c3d6bbb3cbc357954664beb2dd5644d8c676aab1110a126e6f3e01312e7da66df189df51e8ec7c3e962cf0daaee9e1b0fe9399a6442ee434f55911c2c6adbf1cc90c8eb3a928df819c7a7f1ae759704749c0fadebb5aa88375f1e68e98811d9014ae0d683e1fd71648d5b6ac66ab569aad9f9221e81b996c5f9d3f173e463a285407627c85ec1b93025bb2ff171944834f6ebc2d2521702230aeed970835b339d82dbcff26dfe030801e7d7d8900f1879d10a43d106560b203d9c757a230183293af38c9af0db6fa89d9d269a853891540d3f02754d028327032bd8a6b5dadbade1d606904992007535e08d1e7cf0e473bf0682e5bd3181a0ef04a1d6f9d31e7727547ef633a3462a572f0a7e8aba77e7b93d490cb1081b3ee92ff4041e0e115b86c387c9829bf0aa46859d24281f48ecd64b341aa6c9a722864340d310d0559b5cd4fe5093b2323b7174459829688ae4dd63209df319e0d8e2489ac05267945f16864138a2d64eec0f7f0a8d93924d158f1dfe112f37e39c81b83057f4b86d1fbaa7a06f9a6d5a610cf4848546881ca3b9ef78bc5680d8ed0d0b43135f3c76bf1ec2e7aede57f5ea9d84ba6437babb474e5c5ebff14c49f323704fc5fffb7a6814e7023fffc1762b7abe1d21fa732c40424d8a0bd4efe3f2c959f4ca67b99e7267d1f28e6524e63755b7ae8cd8de8c6f572fbfe4b8ab43351d54bd6ffc4c3a4974a967a7d908ab1799a917f769a854d1775f5914cd88b55d4bd4dbefe440a10e7db4cf01c865ef657c0d9e1f712a2e3863458e2774ed895ff5e4a1fb31566b9e6b7864e32e93a833cde600a014fb8ef1b8754ecc0978e0d1393f4a94d905bebbba89cb096a3fac63be701c21a3a11096a3e2b3e97cb6860e9af6ac94eb0c833a20d532d9510b571f8a521105d8d02845e477ff965bd3770b6acd71a1bc20bd530b402132071fb616b5efa7636ebfffb0e282a921e5dd67ec6e1c2bca7fa8c1046553740ae6e5901b3aed0f1bd29e0f6ca003d1e5052cf2fef11c4f7886468d472032693ac8981c5ac58d083197444b4d2d6d7d3e30ec17e84c135ee4081c710fa8adb775085b42b68a899ebdd7cefd622e4aa84a5be3b9b587a47ae2bdfc2f9f2f7fa9e3573924da3d3854e2649d80932b355c710d16acd83116d76150ae2db2110103b7bdf094a1e31c2082bfe5f693503002046a5b48ed6478b4cb89215901138166b900632a998809fda8b896078cf884392a99828b3197b4f2839e62612cdb10a4d594c2fe17e150d168a81e0b8f22aaaba12418068bd011daf5866f82d531bf7ae88b676fc453c17940df8c38c98a0b52229b139acb16dcc4fe59aaf867d0669d700fa701c65172317a194508799a6e05193a2bf1cbd21ad8868758881ec51c7c0146dfd137c7ea225e0e50a71584918bc74465de702231c957174feb900ccb318ebdffe88ac448f6cc3c219fc959e796be4dffe6e2e24e14b11280f461409055b3fcd40ab8933389538fff34e8dcfabf0e0d44b23a1843a17d022e3ce0ae310f03f0437d097a90fb85272d09ca5201b3bcf1b3b1aa33e86ab9d4bd31c1cb5a94726a4fdb26bc94efc6167d1a10cef3e1c39287079ab7dc6f4be65c06ee62db478181bf6a6525cffcb8772067295da3582a96750e075e62c12fa2db5b1aebd83233fdc7c34cbbc423b25448c41f291cff627dcfcf8d4239f3de7833bb1cb782f8e451c87278a6e17e8aa3bce5613bf735abac09adc80b30c47fdd4a21c9eb0f437d9138b806389103cac1b307764afd3e111951e6c99e91037f6a2523c8b1b23feaf9ba7efddc41c5cefe58a7c65209bad38e34fc3067a6b7208b35a9849837e26712a9ed903316e92a6e308250c4b08e4d641e3eb48b845851134bb59a386b54db38d8364c8b002a912051c17c9347fca8936d5d6ba6c5456ba950d3b2be09da3b6b98e9161b0299eb15bf711da18e9648084c362f38aeb860526910a393337c4e06a64c05fc26103b5b40f544a7aaa398e48ffd4e6fe0d360b505d6c5e809bd1e54941106ca3150a46381c1002f6aeac7f895f7bba5140ab32be17c343b85afaf6571a9f9a78db2e03199cec6121925d900989a98a8a1199d296f0bf880b14158886d1f0075072115e1be12fd59b52b29ff5c08f0144a687fbf0873cbf35da7b371ce86989a5b309f2ed7ec39f1a8704080df60ce89ffb38835fbebaf7d78cac5048ec5666fbc170b115745453ac9b3a90ac6c8fe00be3a2822c3a1d856b1a1d55932acb320bfb096d03c01686ea6e5ec1aa430e5fb9437970ade2f7a264ed58f8c35a20154f222df9d62ef3385828fe37efe0e097a71eca4f991ea6b732531efc9e8791dc5133f5a4c5778d078215e0b037adf52edfa7a760ff7b080966f4e0767df70c8c26d4af72805e32a1115255fb42baeef8509e1443733e203bf0674a882301dac6b3a7c1b5bb9a5c8ad47c80b2783093ef4bac7fb12cf83cf4f7db57c9696864832c28a78f35139de403c8d18bf8483c934bb48e7ab67e052b5616ab5604b5ae7317aa122468458be54e2822efddfa08c55264c0467c2283cff5721818abb8e5418cf03ad05f89c4e4596907c2bec9a483259572e172720e1470ecc1331e1dd2ecc994eeda19f6a6d720786ad10c70575a9bd86c51adc07c5a52f91d39dcecb97421a8e11d14a015cbd6536d01b4cbd477ff35ae670f7313c07fa63e17c448efaaf733963a40d4ab16ab3e116ab126a77fd59b1a23ceecd77a8f88cf8bc634975e5f0178d9bbcf656304d8bb32180982ddda179465120ff47cd160b933fd3cb3a13b0e36a2138b9502b20ec4b9bd4e80bd7ea6aeba79362a4646ac2ea6884d1571629d4718aae590c9b7367860c0c4f383820bb86d29f894492595b0fdea4d64cf0169c12144320d37f006916212744030ab3610dfcd863981a042eeffab091ff7df3e476bec2b92def7bb8b3ba560e9c971472ec2bb1b7232f0e07da6dca424a4a5bac917fe7124e6da613bf893a195536b4a674681c4b29f15c713db31ac5682f8e04eadc9626effbd62745d32edbdce1388897d4aa82848a5076846070fa15b23222409afbfcb6e0433b5402d40754a0de3973258b60f019aba91adac88d1ace63771cebc1670601440b9df5238f696539c7cfb1ab7946138f980cc292f42505134325b3e09b5dfbf509c45d071b0cc9e0a4cf25c71ff9c499dc5af00e7a321bcd08ce7f43f50277542b3f11524b27a5f3b7b0190161c06e0d78c32f93d4800990a28521a2b291b95f51464be7a085903d786f90f5341c4f2406190cf7d5ec696437698288218100ad1531cd284e46ce6227693bd2a7a9451712f9ed76202a28a065be88cc90b6076b8188d93349d30849131cb56798d42e7817f9f329e9d18e2260514053a765837dc423ca3c2de207321692e1cad36b1b8122b2359f55f79dbf2ecb4a148db86f89e34f5a95d156d2e594e90f5a41d3f668d92fbf3eda8d4d2cbf39e7c5ee5e1d2f304a6a1835aac353cf89d2eb4476c2d018531a6c240f520423de825a2fe5670a1135ee427fe96b2957b6b113a500d996ca4bb7415d70b3f5cf30bcfc3ea42deab85bb3f05f7f3c7e4a1c56b5ac09f5e894f41f72b14bbd7578f3eafeb3799c2b1f6f41352391d4de5d361c32fd5aff0d278d432fc3dfe8f6be2c395761f4932bdeb558c1d1dc97674e67a400e45b4895942db6043f593205c33dc7c44066a6ae72cfa0b907f2a685317edd11bddff02f2a02a34923dfab9086860c4f50ac760d7c0ff4d709da0c0aaa0fbcc7ea03d61d58717c715e6d7b9bde3255acd888df5e802abfaf0dd2e39d4ce44d612528890bafb0c0489826da608643090c077c8865eb7e9f45b80575aa5be77458c71d4323e7033a01f89bdf9696d8b171d40149444ba3e0de78153dec09dd0952cf3965adc50f9e90bc62d43a556f62df6bf32056e6dab8cb6318e0916228c22018e77b0a68010c38b79df4d02ddc8ed18fda4b823c454839725ffb2f6f1ce25d72d84ad026a77a8d6f3865c27d9683e0fe7db6f846f62f3ea3631fadc2fe4d5fdc35063b513389e5ebe92f26994f2d97eea868dbe3833786347c077fa5374964fdae9b63d622a4b9f5596079c3548959ffe65a9cda4a0a49c58565025d7cf01612c784c9320604085c2b602e7d8af7f4faedb54495bb558ba3149819ef981dadd11c5ff6ac83cf7028021210b32034d253999c63744194b7e4ec67f3c36e92bf20a404ff2e88580efda911c5906497c01cfd044e02f0b8739a6f439089a03fd9f7cc374730b5663c63d4e5208ac2d99704b37718a5046f006f287cfd88bd6b100bd36f12268410096b9d5e2d6209d110f404385164a8673e00f18d263ac8574b0be123d042a7a7221d1246c8bbec24ba577c610c402634724fcd2f196047ccce8cb85ccae05335127480f22a8fa989aeb9dc0b095b967dc6a5cdce1a5512042926ae337a3003b5f84409287134eaa4c4e1e25650a786e567c90acb5c36e08bbc913800f51e0e04f4d6fc8fe960a94b198d2426f6b76536230b29e7181b7ac49580665ae1403e48d9b20eb1b870eb3999f62e39ee249011e9d5faf90b764e17ae7e563a05f614b9ba5957e217afbf1e120a4bab062648a4b57257a9f4e257dcd3439f821630a40634f9653b185d6d2737e2f87b9bacd338265c1d71f643f0fdcd4fad29cde0a6cc7b1e731846016310ac14b18f80d18de06b9b33e45dbad3fbf3dd9783c004be44ac0fec1dd6b266000e93d7e019ab2bf2c5c5e269a67669dbe58f722e5535cde762c89af9ff560196100139849f81b9cd2cfe9c11ba690f50c58176b51188b5002d55d1986870c8024952bdc8bf1cacc95793f70fbb698df09f5a4d787bea2c2fb386ed58266df3dfbe66f3cd3e77a82e0f079b53d0d1861adcb62686aa7b849c1dc33d4b7a577ee10fb5548a19969481dcf7b79456b41a65485c2cda81825967ec405a4093704b42ec359cb1021dd645e921ce0946b665964e5847f7e14deeb01dedc26bbb396e20b5511807a1ebd8ff2a18f11dc0c6d6d0f93338c30d0b8d8b24f621b9ad500ffb758b8537cf137687f7adde8a7bb49ebc7fda757be9fe6916ff548070e319a3234335b10021108ce486c772b0913e446e3977d4b13f451b4595d3ee6694553016ac3f2dac3edbc7b6a4313285362c1406858db9d06a3e99b717bb7d19395c5b0f5563538b9b6fed750ce954f4c00f2a0c9ef0c99b5fc31305a96df14c32dd319c05f2e7171ab5f5df2d514530ed1c631dccc4359a7911aa595a1ba648d073034b41dc816f3d62e159b12fc8e0df8ec18a067a71e80f80a3dfb5127ef041d4caf8ca9de5a73c3c90446325279269fe1918af04df2a7ea3c339770ad8443908afcc2e7e69ff78a1ead67a49bd1a54834ff01249c12c941e29e51fc70b4cd033a9c4e7d57601c11a50dfec823924ba8c053d1a8376928492b4dd414569114712594d6d00a3cfc2682681a85be15fdf03160a7b32e9c9575b0bfce552218a6ae6988fff25b86733a4f32e16cb5da506ba41191844864777777ef9448640785079d07f39fb33cdbe9645fe9bc09dfcb56de525cdb988f02f3d6f48d28b5ce5d4028ff51087f4e9537ffc17e8afac9f25ebefd0dc20cff59082d7c884108fbdfaca8c7e815f3e5e403f516bf672093a2541c247f73334bf5a69bdaacf40e5bbfee2dc5ceb7d6cdec2b9bfca17fbd7c5fb9b21301c9a495bd142723a5e22b76468d4e67e2debe7d57ebf415308c46ce7239cbe42b384a9a947cc5595cbf4966f89a3146c96344cab9ce4b37577a07ea25c5de4dcc5934e91c46b9773d259df6bd8a11630479b78fa5c3cece3cbfe3dc74ae5345b776442975eea2e58b53293d867517a7be32a97bd95e4d1e34b9916c239a8cefd862ea1ec3ad74dd57aadf4690a87ce569975d1982eaaaca13ae1e56d4577a87f6955e117d8585d6bac2028f304ca315b334c5dfca11786c7888fca98fd361b88ac310f170eece5db44ac738d52f0e46ef70bd3b57b94cbeff25df79c73918f93a75e744f4ad75f41b863fb6e9189ce73060c0e0e1aee231ce5de5c539278221a3bf57bf750c93ce7b0f7161a874328e457d5bd4b460543406e7c1800183d216358c6d3e9c1d4383944a3ac46d18d8372410c557bd467b8f7219a7e91d627cafabaf35ba8f586df51248c76a77af4ce05a6962bdbedd87d7a9aff79af96aae35d3ebfbfaf8eec3fafa7083716aa4147e15df6dfdf78074b6147869c4f2a65e969549da75d1189d266ef0d5771aff01e354b5d73ca431e6cd6b34e85e742fba176946f1af5e7cf1c52ad6eab29ca67afa30f3c7d9fda6703eaabb3345fdf44635c71f6a506f67fa3e3de07a3ccf7df40e9566f7d12be0df7719f7e135d67d4088d21f6bbb0f8e13b0fc1a4ba63b5b8acfcce0779799a971ecdc85646272af55623ec94dbda63ca7afefded894f943bd57eca33fee8c8267304ed578a66766288a9291919161624ae93f6a3f39dd2a7bba6e9e7a46067ffd98f56fb2fb2ee3fccb3a126792666d16f5d66fcfbc57679d6e7d67ddc178a2a4ece14a4a2b95955f63f8c1f9e147780e4c5de7b7cee13aa273aec38ff8e16a66fd95394ead9ea33a8fab56cfe1a37a51aea377d85cb552f2885a375446f1beb5ba0e373959ab7bab722c8ec3b29b70caf347f51ccec3bde7f0d174cb3ac2754c3f429bb2ad9796b3aaebf01cd6d74d565d19f51457784b79b87bb2f04f58f65455559e2829b90ed7e13afc882aa5ebb054ba0e9010b8c7c0e1f1d0e613693356f77a3bc6b53d5e1fcb93f144b7dbf35207bb6ab661cdb90baf7d63fac4bd357b2cfeb3ef0919bdc3ac387cc5e189b4fefe593f5b7fbf6ef8baf9c9b0aceffc99febefc1310cee6d6399fbcefc1e1dde270371c10c7e1d61c525ebd1145fee4907cabeaf1b02ccbb98be75263de54abcb7d2f5e3d4f746bcddb1369b2d6afd945175df4f7d49a658c517a6f6bf23c17cfcf97d5bb2c877f598aef4c52eff13c1607c93c3979c358dc6c1e3cedc5dddd33a36019bdc3d67d5f72fe3c4bcb7f7acf28f7e7578fa7e62703e70ffde9e5bf33f178a28c90fb73cad5a7c821939cc894a77c39efc71bef96029f8caffeb13c198f821aad59d468adb5be9b7e983fe586b23e8dcefc64c8783c6404ed7a688f7230da83897273ab7c4ad05c2282e608001940bbb250a8f291f697420ec64bba4e3d747e9decfa98512fb34a7a741b49e66d7a963e1ff396c2b98b288d88202fe548efd00101c19cba3bf7de9ed6c929d9f99f00b9bb87a8cb1b89d6f903f2f6293c7df29622c68fb17fa4a5dcdc53bf3918cd7e75ed133135d1843bd1ee3dd989eb2b04dc7ff2c79e3df34317e57a5010904cd2687477eea27fc419a16d94d377fb232e869eb8531fa2df7973301af5eebb33cd9573a4132cb41e69a9bbfae85993681405a946aa974f65fe27ae935d6fbfea3133903381400a6d03ddcd5f0f0167424428450a8fc38da4f0a6bbbba92132aabb43bd62f354de48b44dfeccb71f9f0867027222f03d1e8c1d4883f04353a651f8abdf4834fb5726490468ea5130f52047338d840af58a18b2d6c1849e46338d6694fa32d3faeb109956f374104908a451a481a66db4cc656bf7d6377a06c7b6d1334d33e1c7328b13a9ee25da46cb80c44ec7dbb947f95354cf805079eb1bd48833f98a360d7dec3e36ed64d7b1dae5ad2ba53d3329cab54c2fe16da365bac6b1c34d43a59ceff0cbdfa89bf230f61b14ce3dd332787a2cb37e93518f71dbc0b64edf33538317feabca28b567aa8b1aa1b21f6ad0d5477c7f7a0b57231495b794d733333d2369ad9ddf4b797d438ba3ce8b12d64e25668d513561ba5da404fd0df6a06fe245b808fdeca8b3efd6bae576c24c1ab38697d8b6f666d687d8ebdc453767c2cc18d79c8c82270d6c670dcdfde491dd4beccea953a74e9d3a758afd8776ef1fceb7fb7bdb59a3dfb2efb6e9531c7ef3a4f80d6f53bb5e924c1cc689d0bf3616dbc806facd03427dcba1e5fb601f45da7718c97d86499173c081be108e5a14796391b79190bc814ee4ed3d79f380e4dcc994a2a6121c4e2669d81d67eeceb919d33bb81bda16ff496b61bc24661a61a9356b68b1ddaca1b9fdcd6663b353a74e9d3a75ead4721bbbb11bbbb14e9d3a75ead4a953ebed3831bdc26119f5ee66d326bbb29135611c14bfaa64a555d36ad26877fc0e472601aec5b5b816d983f396356138125a9665410e8c569db3c6ac31694c1a5873ee8263fd8499319c1b1d0e473eb6b66904c7f327def1c0caf35b4aae381f022d10cbf268d66b1648b346342b3ef4a4c47fd65bcf7accfa4dde40da95b711ed59794b89f2ab3c694c1a93c6a431694823eaa3fa691ae91daac7437c749aaa1fa91e9ca8dc4842a15e31fde4dc45f523db645555c4788a95159fa22acbca1b8936595515a70f5159a8574ca150e885d53107ffe2e22ecee22b1ec35f3c86bb380be6795fbde415d6aaece154eff9e971d508c3da8aaff88aaff8ca4b26a01131f0faed03f381f9cc70eee223fa181152f3117d6220a7faaaca9b0cf921ff33e333e333e333e333c3479b9647c03b299655de247428f3861ffe89c315e3eafb4625e74b18719d0f42275c5555655515c6f2399c7ce2b0c4167e8aeafc5bbf615fe56ab34d6d932bce6f36d5bf4afe03c95587835979dae9ce28bf7160a9841420a1f58a261941c68df7f17f4b452ac7175fcc5bf54fa255f5a2fc51c9b7e66f5d733f5614455198a2aa2a3e86e51357c50afb13c7d9a6010da5fae939d4e3df364f856c8ffa100c84ca31f78d14c7aa9f7edb64aa9a329ab1d833bd027bf20623b5d618b5fa4badf5c5452eb5d6ea5eadb5d63a04660d8185583fc94ca9977c23a5dcc88a92d465e5ede18af221b0115f994a98ba669aa66f99696a26a69661c297f8d135d3344dee6edaa6699aa6f7ec747fb2f85f75f171a4327d3c3dcdf68d197b06bb934b295cf1baae772cd7755d97cb3816187f113997ebbaae97d2b188aeeb8af2af2bd679fd15dde6afdf649558c3de7ad4fd0a24cf2a4b2254dee4142c229da6c25a0ac4eee514c62449cfddddfda5bf74195d4a2f4b46788d980fccbbfb47d43bf827466e52cee8a4d3e9373b39f53e55944f37d39ab15bb52cc38b2f3ffec79f31317ec4ee860d23668d18639c3033c6bd18e3ff366bc418e1d7ff2cc64ff1d1d99185fd4672a4942099370bab369c0b5313ed5c584ad9918f5df22d2c5f5e58c713328047f19fc30fe05f00ff01f857f10f80fffc9fb71439257e0e38e48d058a90bc81409e0c92b7ef640e963797b470e5d3cd15bb297ce2c26379e1623a9cd35fe69c2a1ee3c5452e9a739639e77437e7943f1f663fc8c0bae566b5bd453d7cab9ab717d89d5c4ee19160189f8e502a8de8c8c8796041691c7113fe4632edd35bb76b738abf194321ec461b2f5c4815e9a43f289fe45c4a897fbb3fe5cfbcd5a75e3ece5bdb98decab7a4b53fa9d7e8343f5ff195ebb00bd286263f3021351fd1c7880fcc7373ceaa094dcebc8d344985fc70996d997d970de13934f95bc88ff7cefd67c667c667c66786b441357cc388b3780c7f7116cee36ae3d83d2e32b35b7963a14d99ad97d8f59bcbc224ce551e02c330cc577cc5577ce5f2b8050865d740295dca6602ca1ad735798b55de2e85535e35dda7b9ed1befcdf4cc9d712f2a8734ce49e79cfbf8c2857b69c2c4b8979cf49236257c6701a749b386cbd23937ba38b68b989d0da4b9bcdd97df236722c495b7c9c91bc67984e56de60de7cd63e5edf3069af2c64203d9540e2aa1b9e7e44d6a02f6d0dc5f969b79936afeb3dfbc2499e4e7bc249900e0415e924c5404e03f2f492602781c52bc0032491209402649222ab2f900c87296659224f2992489ccbca5c44f9173c81b0b1cf23632f2c927f2f60f923b9993b11c71dea653cee50d8ea443a93946ad278d49a36572705b8618a78b6f4ec7e260629d7382fc363b2f49269c9fee4bd69444e66fb39325496472b224894ceb37cfe63919b6b9acec70de3c9a6f58f3179f7b6a298a75ef5a5c8b6bb9ae0593362e45ef5324497ae142039af46fa477d832a049ff9c16331449eb6c9346920623a4249ac718e3d7b7366f2fa2b81c0a8542b65f12588dbdde52f7a9bbf5fce94c4efcbc73de794574de19a5b5933241e326c53fabefe9ef864eec69351fa3f729a5346f137dec56f8e76f53bebfd106dcfca99ede696a49dfba9885d1771ff337ce63bfb58d993913a579a39cef64149ba80fea3e7085f174afbc4ccc29a7bcd564fdacf92ba709ff94abc75e95efbd0cb07e9be8c4950f9a5e313debbccb40fe659e87d909cb65aedb8fafaafffa6dca1bd63a5f7fe50f3d711fd54f38ff5003fcb43fe1c12f3b19ce939bde7d4cf2298aa26e858ffe767f7a1a4a9dd5cacaaf353c107f8fe5b9c477cfeef189bca4a71edaef7d49657ba79d72eea25de48b714c4a77e95e62edba3d202e7abb27c3b9f9f46f45d196924a104a793208cd3fd4c01fa56dd009a493a95ce527c339079dbbe87f2ef739fa5e6e6f36ef5ebf23f21b77df1f5ae7dbdd4dddcde7e2b7adeb309eb8568c3d9e27a37a32a82a5febe29327e3c9a0a689d6fa64f8cb60ecf13c19a314329c8e48d9b0e9e686e4dcd16cf392e5dcc58d1b8d84c3da81bc738c433b392cf718bd18c5e805b9ff96522a3d6ef3d7d6f16410104adfc1cf9594f2deeb91461a69a4915e4ae9cbe8ee86e6681cd739ed6da2db48d3ebf146ea3e4a9a450a5f7df1c511db3d5b3a4df871bc6fa7afeef41647e3681c70ea414edd8d63049b9d39e7ad9bb713849d3d2f6f0de76b57f11567f112682df5d6c2f71ee3f9cbf59eab78c9b4ee32df05e9e4bc77fda3d79bff5e9e6fb3f7f3bdeae1fb01ce97cdfca1ff5ece19bff9bbdcb2be241dc0be7b986d24da36bd9d6f9f6e547a5b7dcd7ea80186154a90448ba10fc98c0243938c21d73073ad271fe6c7bf199cd2930810a3539b06340bf41bb497e5c7ac4e028c42a3d028340a8d42545f1d2ec618a38bd1d18d7ecc2f7f923e3e35a27dcd7edaee4b7992664691ee4fbfd19fa8a3320acd28cf738a6b54920922c23a250dfe04a29b5c7c09c6083fc620649c1484102ec21ea4a73e6634df4cca9e83b2c93efc29ebb7943e7cdb1ffff6d30c3695dfc3fd29b34f65f729d75aec01e4223ff7427beff6a404096bbc1807e32fcfb95cbb5de7d2790a9bf59ff3e08f287008f9f99f393f8f3d0a6ca278ec71c026f6f35160ff09c1b0ef3f013dd87b3a342f835aa7df3fad935166de5ac3bee357be7cd7826594f99dcf9d9cb717ceb944d88383104248bdef6eca21e1343105ba20e1e282441761e279ea3a8ec44b3615dbac7ec3d3f6da547111f7f32d09fdd9c1603bd679c94de69f38f94270fe525892690d246fef1ecf6646ec32956f8e5994f93d9e485ba5555c65aa6c3f497898d905de7450c7393222914804451042289a78887868586712f1802228e20121bc32a9c5068a5d702df87a9ce86128a66bb9a6f4e92d9c795c4452d989730bad6cf354d6799c7140f53999c443ea81659edf6421dfc9409e939d780b3d6f65214f65208fb31353b70839e101910eaacfc93c2e523bd9f5274e3d27c36f5d3f474858f0e0a07e2bc3d93b91fe2aa35a2412b5fcf4c2fa240363fcd2d4183f105ef2beabeff795cc4fce00e1251288ae80e86e9ca50702081a97c618086c6da609082080000208202a584dd34af1718c1847f8eefe7688ab5dcf56ca29cebd9b51289b37e90a38a3542f1ff6778ed363735e19f67f65987c3749e07a4cdeec6207c98fd9fc299bc1e6a50c66d341f137d975114c8b58763dcca69759dcc026f3800dee83e05bd8c04a3e6f86514c1a1a1a1a1aac0212129ad048880486e04888842604a10cc1f642f87a481e866286be66f3edbb59fa132751afc96c7bd37c4bd5e9ef9fb8694292d06d7a031a1a1a1a4b63adb53490c65da49b5c90c6c5d2581a176bad9758e9c1261e136e09ffd134d2567d6f52b42ff1cfcd9c44ea9427f9b43a71e5fd53da5ca5cb009b51e443ad769eec0c44a1e23d0c340405506872084c7b19457a89ed5b33f85f33f8ee5ddcfc9c2e223f66ef314dfebc57765dc4dab7367b8fd5bff66e60823afb39672ab736d035ce0457af67a4d4deaf6df44c7bcfb40deb1ec6753f312f91b9b3f3bc675bd4e9ad0f59cd9b673a11f95826b9cd5719f627ce8365235afdebf1f59bcc7a295f9a147073b790b9be9b4ea47ecde65399d4a2fe89e3ac7a5bb3cda3d55aeb0ca83ff129bbf7a509086f41f5ebd0ef66deba5d629aa6699a8024f3a820a42084988298a420846009629aa429080abfb5f36de51e64e22de17e784d6b92467b2f4d200be1a027c968db7df8f2b7e965de249938a5af5efaba492f9f669eddbeb666149a7f9bde6dde1ed4de0731fd7d38dd6d0aa2573c192d8877e23edc970f2584d389f890b506b36d6a52baf2dd0c70965c24be8ddb9c0fdfb6d4ee28fb273e35275d2cc904816f1baca4226612b6e135e198f02568decb5e33698e195e1fb1183defa3c499f139d826539198df2651fa9ff6324a9550939f51f0bfa7df13037046e987daa3afc687042184d06b445e23b2b24a164ec4bdfb701f5e2382ee033a8dd788dc0784d07db07026447ccd1bb6583a80a4398f07b7c889b8a7f5b17480de5e019562d83f7de39724d8b42705d4974f847396fe894b9c31a52f1131df4d9b378f8b2ecef9514e3a5f662c11e0599afb996ddd3fb1c76bdcc7f5c3bab75205a3c48746682734c9082216cdfaed184e66989d2c1179c9b393655996e5826dae7725c9e4a41f762d523a17ebc9b816e78284f400ab592ee32477269ce764219c887b4fe7637622bdc9eefacdf5d4faaa423b71921032f6fbe403f5f8abacb549eb5399a400fb4238932e62629cb32e02be8310faa400fbf0abc719f55dc46c900e23240eeae95cbbb81607553ca6b7d655a61717b9f4f47eb2114e139dfc859a26954b2d65bfd6c9e6eb9cabb29bb7b6716fde3080ab155ff1155f89f7ba7bef7597135d2cdaebaa3094cb3896c9892ee7e22ee7e25bdd4bf2e7608f07739afaaec5b5b8161f84d47c4431d3344dee135345e72eeac788909a8fa84ae7d7fd7bf356437ee0901ff53f333e333e333e33fceaf885b6d132ed4bf8a5e074eea2659a89a96db48cd53f6cd7bc772dfd9ee9996785eb6a67848392a21cfcebc9689dbb983157dd5c57cc348db8363685aa97c2a80d75519753ff82ef288cda50944561aaa22ec5a1a877cc377e39f596538f9dfaca63de584c1a93c6a4414f609fdbb66ddfdb8eefd9f7f6ce6badb594b2f64a2327ee661b0b4b598aca218fb2a150487b811b6ae13dc68b8b5c5ca2c7f0185546f89c8befe5b8eb3ee727073be62bbee22bbef2028c5f5ce482298aa21e7e90a2924e8c55f07b0c6c611c238531f5d377a45bb5a538fc5b8a8debabcd57d45797aff88aaff80ae5520755e55860fc4554555505394e543917e752391618cb651c0b76228e738195a7da5457c5a93c9b14e8719a0a57f25d8b6b712daec5b5cc15ec29ca65b0188779a1288a7a987ba1a66ba1308c7a97c1a83f7154c41846559b7bc19c08420a62d47b32ec44a0d3388d6b092adc04c5ac266df70115bf52f2804112a01a5e4470f19c18042a985359c0418331e8a8d1861e2d583c61a50aa30ed424e1871866742026e1861d2d2de4ebe04111330a07bd1f4220e344240d9a74114f7bc80117861f1546c5bd307820060fa450c410b620832d08610b3ac6500624fc9831639a6009534a29a5b482954af0bfe71e701129860b8dc0085e28fd24c828c35341182c4b11e24faf821344e0851421f0270b981168300d7162573043165cb0042070c004286801d1107386311461e3062010410b18060dbe070a1a7c145e327994e00a12733dac1f846007187a742089232461045980821231584113c0a001329c21060e1970a1083268110426ac7002246200f301227cc1060fe60693167450820ec8c0084934c1069314c86044830fc0002105354e88302dc055c031c677e96394568d524a298c8b4835a60d9cc3337a1e20060ca1878b48da3612bd80040fb854237081066e879452cabf2e1f9352009a9452cad7a30916eca0460e9268a2022ca081018c1f1c18420d1f2f988133010a24e6c192832e3fa8b1021eccc081143c2b6228c2115a64bc810d5d6069b13146e0175fc2551268d811022720a10b33160d5dc85106243e60822f381a1f520c34660ce34705498912abd1b7d107253409094670d162fc191ff388814ce4d1851760395821b6d758faa8f3b736de47e9d4c334d59fea54bdbff456d62fcdecbf4ca214f536db324b653e503f9fcaf67da0d9fd548f423dfc8afae0afecc3ffe0dc009056d9a79ea2289bb7f7fdbe9eb8ec85f65a094968eedfffe7e50680b4f70ff4626a880529639c337f162069f37d90b4992507b97fa14919bfffbdf402e6205ec06e23401f7949bb477e603e3031bef8e27b1f12436a3ea2ec4ab8cccbdc7b469f19f7336384fda537216c582308419071fbae2ec0894823772eb17090f3053c0f1e4000427c0136a9431198a78c7dc3bd834e5c1e81dd39ec08f85c157ac05b9bdef8154f50ce281dcbc9cdfcbdad2c74e888f035d1831ec06a6b6a6ae0d7bed13664663c0e7a5fb377229207f8fdccad99a999a999a999a999a9e1017e6f46f8a0431b583771de5f9d8b4b8c2fbef8def4ee5a49c4f3535769029280803351e122ee79d09cecd163878b8b8b8b8bcb8e28638578fe8898351c24670d0749f82014a2c73cf1f37d47bef7f80bf977269f77572f851f76e507d2deaccee244dcbf1733f79bc574678f46af78b98be81ece4488cf9bd484475a82d3c3f3206d7bd0b3cc6719c2a4814d1a43c0f3628f5328f4704b65bf1341278292a399e44460de3c1ac54ec4dbb5c83816d772f24ec42101f2fcc0b5fc00fb4b6fc231b87516e92c1242cf5bd7f7b7fe37939c88e72d2586af8c481daaf401f695bbe203ec2fbd291d22c14a2a36e9c196a48e72d380e6bfbd90b4fa2722796331adcc23317b1315db4b21e0f95ee378cf45863970f48a3e7116709acbed450b014b0e7af2458734d62511240e6aa801ed397c99f5034279a45774a8577456e1de4120ec7e7b93225a80e05b84ba002ef28993603bf82407c11cd8a7f61c34478e1042a2893253e6794f202b94196331786b15ac49116094f9b0425abb2f7c38637a856c28270dd7f665170e2aa23de0c24b9e6d0fb4e0c9133c295b80e3b7c1035e32dfbd14016e6d6b154945cf4bec4f1abd824a2ab7fea1b98ed12e93c68c8176c2a8585879748f28a3d1a8cd56717362ecf1fc834091058d5e5199e83179a06c1906ca0411094424903db4f78e048a795d9ac6608c06de204b0c69a7a7b0a78f28a4e63323bb127e059751c2afe02557467ad045d21e84700590c56562e0768122f80261600cace125f73f337a4585222fd964129005bac097cf8c8fe886d41c711d6419c27384c0cd95f8cc08f9217bd029d81e138afa52e032af84c11c4155495fa128ea25050fbe50d40828aa8e90f0d014e52b1643874d4d655849c58602bb201d34e9556098a587026845b067803769043349932a18453e7c59422b7edb8d29ec13d7154995b1e0a1e2414281a43d086170fc8d840715dc2d1d00012fa9ae70928024aaac2ad702218693478622c176c0f6983c4ec47d6d698ab10806bc8de0126094fa50db46343ae225d2521436fc11121e68ee1b35370e15201d261da496077b53a14309706bdb88f630010bf09209470e27253142c2038e1bd2e4f91eb30914af49d7ce58c3045d638d158c32eb4f49a91ab3afd963f40a9538c109ce294e267831c61760d833d269922b3d239d265fe91534d2f82a74f09518735299dee7bae50ae6ebb30c0e46ea414ed434b8f39bf74a5e90b427a50b70fcd6deed026e8c791e3e9ba5d30163289e84104ed9cdf2731aead10a579330cfb3de391c04630dee9e11c3f0209c21abed8e5f90d576e7907da357bcda8d83070dbefc291d7c0e47e461e7a33160e92b6310028c42ef53696fdf6c922f5f9a6e1eb112cda15a59502bcb832c58606b0d81ad35d42b6c86a15ed12352a877d8600e3ddbb3a505092dd32423b4c0acbc68b6bad44b5de3a0ce2e7bea2c3d27a32dfdce134a19e0e92649eb4cd2240cbcbd66df4b689d2cec6c9326db15d27e994f1cccd8cd3c28b0eb25517a5086a43d08a50a70fc0d432161e076f0ddeb3042c2c24beebbfe77ffee55e8a0b9efe95ba6576816706f78c33f0a46df3a8fe88e3921145e0f97c4112ec7114868cf8d1cf4b0dfdce8626ea4bd10c929163fc465289a378c6118a518a579f368184629c4e06338a3dcdc79acf3f2dd0e9a513aff1e7620743b60dedcc8ed98a31da31da31da31da31def76775f37724b78e80e97e3089763c768099763c7e8089763c768891d2ec70e4fd6453811500b15379d73d5b91620e79ceb01021ee79cf364c98960cf8346588c768c768c768c768c76709c13855168141a8546a1aa7b14aaaa97a6ae2a77fffd48bb4b8c9638c0f41b89b6c5774f0bc59117baef8daa37123a919678a1aaaa421668ed2a40d6bccd96558450783d5c12ce238ee41307457ffcef9d0ba9f9a874ed39353134330200800023160000380c0c068362d16022e98a690f140014729e50685419882452948318320619630c1020000202223334010000a133749c5f8d7ef2852ed68cfda15b7685ad34ff2957e59a09e8ba98755e61295460ee8f29816c346826d64001bfef0049dec60d4472ac8475c376e4e6b9cf318ca4554b6f79ff6f0b052390a3a613cc491c545287072f01f1f3a8d25068a3dd68d6020c5e918a8aae583a827cce45f34d432dae3805b5b35d3e1168bf66faf8ff2e7323a4ee4fdf5a5d5a1094c2b66e8edef735f7e33e072cf67a77627f12425df5c11d48827e190bebae5ef84b61d347a6588c7ff1afe2beca5f8d44a0ace72e86d26d3736c4ba5dd57c2348413f04c7a657f533abc0976048bc3442d53eee6a13c85da4e05d4038e2137ac9fbcb79181153a3d56a8332b755296a898e267077642648cc883354014f42315addb7cc87a23956f54f862060bafc077dfc7a0e7e10ba7e2d1ffb2b5abd1199fbb288b4f1e103297df3b21bd193585f1decfa80f8cf08ba11450298bd4fd507c635f9c8f4a927eed5332abdbf8fb7a85d0f5828256dc9efead3746b400716d32d477ad0fb10ee64a11728203423c6db267002d5abcbdb42b10a117171b9bf661d278ca341814af9afbb46c523774a54d71059720724e2b7ef81cd87086227c8416f3f2dc2593e5935e84aeb7d100814e673b574f6245febd0a70a12675624d5e0a4263bbc27362a8d0ae1dba79b1c91be6ed005e62f906bb8048954b76039a4e01fea27474dff068e619b82328a689ea4c49563443cc8e6adaea4908aaa7ad5766fc8a0ce9975f98e979b7c20548577422e4f40df07bc55aa56c4cb10148e55cfa567964f79b3dbd5a89c1b63e02bca4921a53f3319579c766783125a928f924033aaf7df1e5153604ac4435fbae399692df860b6cdf822badaa8732ed4cef2024980e19b6b2802d80683ac2692203f91f477b6e86695e065ce5f0dbf4f3b74203941649a5a82e800ca1834adb44cb536ab740e2731e0ab0d7806fb837625157bb324f0334d1f46b42b2e10d89bea8683c5c13272f0737f4565d3643821c0b7cc05d14a5725950b0d96a2b38b6a3d1db5ca39d4537d943d3081d3e05c470bfe2b829d7b38a9739ce7b30c07597d90f43a44af394f1d15e1778210afc022a9f8f609c41bc08f92b5bd109eb2d890a168aa868d60fa467f57e63a1aba0afe273b7e9fa6d0f9faddacad6f11d279c48be557d5bd19631105cb49d309a502e682b4f8e5e0624d90b9006934770f96bc5c8711b92b73992e3d00637f464ea772b7bb8bdd33a420f91bafdb1d07561fba7f818d80628184cc9d3965b8febd1e49655afc0f7d9fa13f21573fca3bebab2671db1578ccaa14dbca31e09bd5ae09d95eb01f5749b3353143908c7c945c869e13f323daeb462643f46c564a9131d5905796903ccbac92c7d7d722d3b81ac3702666ca490a7025855807eae5059aa952152e0144711fcf0441dabee5761f0a285f36a912843aa332e7a9aeac6324646fa3ac89f635696a39d8fa02095b5c1a30495fe9d8e66b1cafeb8fa44d51e3aaa42fc9abdcbaa6ef11c5b115693dceabe2d102cc9aa50333a670368720a4ad60bdf8e995ce6e77d08ed3baeb95a54c4b034c54bbac78094ac9cd8e62ebed2fe1be1d6db8f769ca377e4de7c65a2106efbac2367a53b06a1d68c0af1ce470e9c071bc5f832c145d777b88226d1d9dcaf4d6cad0f478c4af76dfae80583a796fa4dc148680fe395a58299d08cda795589e544e481414e248622d9cacf21a35ff6ef58247b1d4b34fb4ea920ca547b7aedb2b1c68b9e3851a70afce608a23e2d12a9c32707520a4e930ebe10679d299dfb1e14a63c39ca36ca97293c6d6bdc7f29045e09dcd1668cae051b5b349be608909db46a690a23250f81a57caf0db5e87312068ea069861ec33f14ac811365be57ddbf1988899dd377d00064541da3e36dfb78c03c214564f91ab4b9c7e9b1c32c9905e8fbc707ffffe1772ff0a2d0852d696c371d3c694ccc384a97e2cb25baecae09a51a064d08d99053ee38a9061e511ac461d0c111845d33a3d44960a3e92713778c3fdf46b309e696d19ad9bb401d833ec2573ad1b469fb89def9b59f15fcd309eebdb0691122cee911e05e2ef1686ebb25a7330b4c2dbe3833f7446f0c11bf1642dbd08455f263323315cac920ab5e8592fe939213257a5e63e9fe9c75eabc612eb15c1e4358b9df2a8e118a0b0eec9c65c7956f1278250edb518feca57c00aff7f45f7b867d03dfcd9f3cb5f3cd2c2c07186e622ee971e015763fbc601e6f4e61b05650774dcc3fc7b726a369b2c626d8025fc9036f7c32a9e254d9534b771df52de6b094ff3c2b6f360fa30e25aa7aef51b1cfd86e4c0ee5a2f115ffc3d112c3671823705c52c75515873568b535e4ffd4ca99af252a42495d9e44c85673056684005c08f4876f1dfbab202ba2be7212b7953a8f5605611be44eb0afdf3138a9ab8541c88fc9047e16688f27f34cc3b265b3c1df14c022b9afdfe4c95e49f6428bee84b2a7f4a142194e9d213b7ebd809be290864d2aeeaf8d2650475d8a2e95b30c074517f619a3aaf8472b6497b97519a594750743bce8e5a9c2cd869b41cb4059575e7f1867db195ca3a0993e36a37506d47ccb587db0a539a1b1d94f32dd9ff965234fd8a282a6e726e8cc55ce6e1daf2d20b2a5240473f6279e266bc238e071b6abb792a16e818bb911be436f66d29daffa718d026bb43cbee5c247429afe09e811e348c57635679a2009e52b92d9336d39efbf067b3aa08320ff8b7a0bea50091cc93822b1fd3f6798476901ae98535da450f7d8547102b4d5a8c9adb772c7686b2dd0307aafdb6c097435851e57aa805f9675c40d639c52b4248ca6da5e35390cb574e3906dedcdb2305ca9d1a7e8ff3a42eddbc642854300a8b70fdf25c8d5d23ecf0f49878051e746d0e6067e1a17b16fab69065fffbca31b928398c0dc7e4d16670bdb179638d0a6a7181dbb4681d56d3cf1872e2a1d3da651efdc42d63be5b462b4b1d73c82974d3f9c3873c62ef01c1ed89101818d67b799960fa0bc26881e264eead0c0d85a5619e4a79374257964afe3d2a865c4f6da8806dd201babf3fe0b44b2ceab0d68c91e76b613d5f227498992e32b8c9092cd3d60063c20d10b15a9e4afbcf3e972b1f940cde530a9593e0af9dac2a194f444b817f8e60b7ae761220b641c4ad15449b1bdedb8920b9edd2a9a347cff58ded2a7388c88b1e5a70db450f7e57d1039feacb9671f00234197e5cf49d7a76a1674f6e3370c4441225842162b84ec8c4b56e32e72cd3f0aee0561188cfa895a92262cd7218219b547b80e150f4d0fee32a2a450e4ff18b5cf4160d11caaeae755f541fa44492033aac5ac3f644c49eb5ef596b7bcb7043ee9d6e4b2de6bc59c89b91d0d8561bc6b216602185d6aea6da46042df87437b2a1050bf30355890739ee352d80b00f10c1dc7de4d48e9c2d4711f9b6449657630e08627a3b921142a0e6adfe3c3668494728a212d1ab15f02a63c75a786dee55360ae5e772b6757f06e08aca2d4b38d491d02af55bfadd7bd29728ed281303a086e68c168cd34ffb1cf3dc1f9f60c12204da42a633041d10920ce61371c0de8daacc361657dc95fa4550d363a051f1abb690cfeecc26395b5dac1259e2177df255f903cb9112b12ac933382556ac52529d4fa08eb3480c3a092fe556e8f6219c71ad563ae70d7728a8b9c6b647e31549a2b97a0496a721ba3b11585a8b78b69b7a9210f120bcf0152254ea48f4508f7387f360a1a6c3543d9b4f70b628e0b5628276d6b285767c97095535ceb8ea640efbaff6befd692a9c6b5376927273cbd56f4e9d48f142cb3380d8543404f1c35815e195cebabf3ac3f733416336b8548e5cb535541b4f04d2776c6b3a53692ada220c092bfb32edee43c9eb51d0c2702aa56dceb584e517db5400c271bab6945b0fcecbd50b4b06f9287cf518b6d83125ed69ff156ee9cc89602a1b630e58e16c49569ed681359ee2b7d893b1266d9b6d773bbf6cb45ebc2aed66ae61d1b81511ac0a83649e5687a8bad8487bf805d496c348a0d373911ede4b22cc641061f96057b6d936f1824ccd545d5c610927745fec4c4ac81be3cf883240bf8b7a70139168ea107f301d46bc6537f7fa4200abf1436a2a34cad601b3dbf79ee578597691e90746f3902351bb8e350d2b2db41d8ab6016930c8cf38ea099b02d2df0301954162c2ea037497aab43e947ad48f7715d5850e3ec67d23ece4e8fb71f81bb87f6afb4e789fd9fdd6e0993512d1ba276425527fe411c7d87fe35e0bd7ece8b7971f458e6d6d654d33afda64df1f3f70e0e1ea133dde1cdffab52720be3bad3797e2409958b48d36d123aec6ea4bf32e23051a578209ed1e12b010296ce2407e98ad477d0f7f412fef72c0dd5ac22edcc2a999a28c31de3d940e1c2bc82874f179232ad8fc45384547325018f62b83ef4d03eb4a17d8935697c895c16ce526f5c8e6ec9384d73b8785615449ac08cc68df241e1869954b2ff73cbbc9ae2ab462f0884f25976ac3dbaa3db2638cbb77448288d19cde6f83967025fb76be12eb8bdbd78a01b820944c3dcbc257a600b1afa431824856ba36e2f0855b465438cf5781ed8983bfd1a90eeb8a0a0b732878aaa91f31c70f74c5cf2cf99440b624deed2c9f8defbe18e14e06078d65c075d580a658523d6968a42ec50bbc2e7cbd3091182ddcee247cefa072cd6383b36254ff1cbec1848aee076e6aab68cbcf495016c02de4eaf2dd1917a7dcbb329e51ff8d2bcecf082f43c6b40b1d2e3b112a7da4e1240c0c86592006d70376ccc31225754feb97e11f760b0d12cdc6d0a3fdea281e6b8c242c8ebaaeeba55a77c8aeccf01aa8b64d1cb9c9555e887702c234d6d53b6920b0d42fbcd40171aa7cea6afedf26f680c74d8efce84e8f008d54d69ed34a41f529c4a2dd4b9821cd1a75a8db2a270162ecd3bd57c7cfca24e006b24fe82562715e2b4c20ed5d194f46b77e9512191bff5e97941e72c3e13bf6355d64e96e2e54717497e2319b8d5ac35101e4407738e1badc3e0bfb5aa7a62b54dee3b3472ad8f42872cebba37623ae1381b17dbcc7ad7f03157a798f118b3aeb04aff82a3af85911b4cd9f03014112a9be909ae8c4b375a169849d773ac09ba3e5cfe05285157d548f8759db9e5f0ea71151b47ca7484dbb8d2028fb29f5197bf6442d43d14ad9fb23e33f197f013c120a46cc8505f64f6de1dda8cdd6ec3e4cdd8f7b3c7a9707537ce802ac3279eba753bbe8e0d43c065c77b107c851d313f15063b63a672116b9d5a2ef87285e572f75018f54508eb0a03fc00eaf5abd793f9a3a1fcc21326f637331f87f263a0873a1fdace0f6ef61bac8fba915700156662d33ed18346db09e1d6be9d8966a53c8755b15d5d66a7cb89ff4806deb701361d7234cd785ce630ea7115174fcab463cc9b459e19438b6b86d64031fedca4a5a7fd656218a8172fa3570d9748ace773c54e9c8988fd21e1227f0f63d3ecd9b557db9132ef66bf5fabf543a9a54781638b86ca1e285d030aaf1c9a04d907243e34a5a18ce34a9b6c23bb512ca42e09fb34b185a48be0068f84832752d9047aee2f9b48469f93aefa2495de276e050f534f69593249a64ae89e451bfd3e15db9eef514ce5230600a2c320bf2769cb160fb7d8e07ab4bda8f641e047ea12d382719d5b4397b91d44aed00d908baca98921d3a510772baab58f75e356ab9403cceeb649e20cd61cd00400c5b254ead7083b3538d924187f048b5f7a421c79c07459f254694c49032de65c928f2480354175e52fddefe614f858a97c15f68b08219d50e0ffd7d8a015ffdedf96c733c26c17f53761c593f3193ce391eedb84890bfff1c469f85d66a41718ca132d831a391988889c322f3e8c16f35d42594dda75a8a5d314c0a359f10b6fc89c928f15750a180f79074a63d2f004988bf446422cea94b1879bbb68e9223a26b17f095ca3c513c584333e7da38f997f0e2860ef3470f1cadd301218449344d1976c233a72217161ed5107452a582e42049731d62e008648b0608b068f8163ee3b75a94e75390d92cfa62e8c5a786f587e32d5f76c517544bec7f949dab84c3aa88c2a9a8516326f80216ab86527e63a119f61a2ffc19a4001e647943ad6df2692506f836682f1fea4d1488783cbc143113740e4ed3877ed484122cc7ad3fe2c2d1e187fae551eaf414c53bf7e3668254ee0fe3f3413022642bb9d97b0f14f242fa8548ca012f82652866a955c478b848e226d218db15941d32084d9caf479198ae6de00cad1dea6c91e4c48acc58ad8862c43834a93bf21abb982e325cda044616c110d7358088fbee94d21b482020863d75daef6463e1570fcc76f22ef7aaf97d3a8b2b9bbbcd387a0c8f11c57be66bb548798c12ef1a618703278b1fa4757b78ce0ab1831e65872a92e91de3f98d147350f697d747081bf1e5e1c83adf516323cadf328040a220e51eed690b86c017789a2e108b97a851da75f0954dd866de593140dd4fb6a9984a3294d975967a1c06030fe70ddb993f9f84baa4a14894635671f12720c7773e293045c1731738856bb698e32f67edc89281d99caa4562f94a68cd4dcc3428e4513862be0b83981874838b318a78d0004379529cf023a708512099c3b40806a1d5a97bd5e6d0498b60ec583493a3274421000fbb846acf26b63777e7e9787b09c04ed9eeede181ae2fdf4de260967b5c12c0b411069754ab5ab0dc3842ce6eb1df6df0a8c8e6099e0578a021eb44292348a1b4f22e5bec3e3d04d996629c00a7ae5db1693097e1e51a27c94d09d682e7d966d73e8c2b79d8321952f47a18244d5edbdfd2322d5f8fbd5ca228878f1c712ab2d66206cac2cd0cb2608d2128d6877ca99eec4b32e5dd34f27a915962adf0b909ef90dc21f65db7a1ad0f8300d0904c73570377618435a606407f60fcbbbbf04972cf3d4426f884e65467af90a00cf73c06103b9c980505e56d8595cdc176de7ca6a646d7ec89d5561f6dda6f9ce063028f5d068a9803c73199aa5fa6cb75196a105ddb310b841d3c1f49aa89e912bc84a1655743795c263224e940023f579909fc0699cf50d71cab6538adb1b513179af7de4fbe645791f90964fb9b8ec993930b39f0aa68e4dbeb40d3511e4c068b1d5e79a1c99e390c84d51faa1f20a65613ca4e7a4a14b8c26c4c46a33e8100d1db1390bc3e80c0bbd90976d821950345a7b21ddaf589784c1e8fb8a8ac0aca9781b65d0c263b8b7634d893ddcb5a0c6945e36065c9cb45e9c275b5f0aad239a543d1c2246e22e34a93d05348e6d32f4178a6745926501e3a7a4a5149ed34abcb505c06504ab7b1ddc82acc23f0a7e8759dba99e60cbf2831da19305962b9cca7566f9b194ad7568a6f38239afe0e8b51ef69ca70b628171b9d3b68d4e0cb16c4be7443d8694f9b29d96f3a1d505e6407e9e7a48ea7d1720a245992d95322c5e02d769faab8e46c0c0d35978b2808a6d70e47b11c7db0b77e77a8a666a68926fba319db6d1bb2c8a817a973178bc8e139086ee2f6cc2bfb82f6e8033d1d231cd3848273a9fcf0dbf25de955108617f988978c40071faee4a97180b55cf19eb93cf2c185ad3f385a20e806ba6ab9217d041537b37fd37ee439a338465d076a835369a9bbc6ecfafbf267e48494e90f9a13b5ff4a083a4c20829e615d22977e5ff2b1a5dfb17af09d6b7bafdef8b2c12d387e251696873cf059e65a5500cf74630904c87e69c6dc80890bcd37969b06d2b5930374b4bea0b51a5d5149e75366d6da0f9b38a79331f440707103570a1da1b55d9e7b4852202384a2f0490caad5b6fc8abf3c0a5564f9651b8b13cc44f44d71fb73df0c792dd4fec65fb29d1a9b24bb0611baaa6b51062783d9ecb6313a9f357efcc9848351f0d7bfaba0c713a311005b860df7a0a6be78a76fbaf33ee5b3e727bf7a0a58690b7bf6b6c74c67f99563a583ae3ef0ce58fe7fcefa4be3bad16bd11fb9c08f5e232bec4746ae15dabc2d2621b1afdaa3ce82545f3f2b015bbe418d25218b3b0be0ecb415ff7702855b4c55efb0e6237e6efd512d772f7a19fabad78654566ce8ff2025552d56eba5c711c9784278d1a9b05b33e08abccc9161f53b0d9422e8ebf583cfa293093cdd7c388264b64e55c22970d53a557503b3e45b1eae907ef9447a63ba384be7907e36b4949ef7d889628c9ac945e7b1ff2eeb3b1de56bb90f112f9057d933105a5e0c8c03047d40c99470b7b8e0fe22c7ce7472ec38e24513a5a29b8b33c5601626b046b5c11f1c55701e8f9ecff0a7f01b5a4467273b424a51ec38e73d13e8e3d78a9f792cba9b4f19f5e121168d0428d3b9a7da3ef3a3cf20c4e1edec89a89e740bd1f122559e45d460dbcef31d80abe33a0bce6f62b09e782290d7b1b05f9413694e1ca966871f82e44394389ebe127f45c262c33fc5f6f8c0cceb867b7e2a57e3f2ac3fb57d09d65b272d6f13c86d070abaa9bda2c35e4d9e0a61edf3e4cf3bcee042cdd6f9cc61968b4421962bbe64428308684370abedfc388c5b37cc1c172cf19611c87be038696b34a6b8e7142eacc4985a727cb25c872f87e1f6f931326e0c67a1bbc5fc53b82123a17684c24394bc5c95cb3b821e3544475201ff6ef30237d8ebc5d7095f6841f141679fe12e6f39f274140cd3345b9fd6b96cf9582307ab065401a67410e1273cc4aa70ed925b89b4b7f3a8a0fba23fb89344eec0958bba71509d6b0ba36b8a744269ee2041f982a58ca1ef2849fc27f1b48934e1cd8fb3a14af6416f008cd8f3bd74636ea2cce9f8f612096dab0bb882c32a7587ef253951f47c3b66e5708c98ec71e5a046ec13017e73f118ce6ca578d6370e48ee1b30998aac7c3727547165df27a8300ee04dbe97aef535899badcd8529aa16fcfc2ddbd7f62bff3453a88cf8e8b3a2fab01a8a5a55b37dab1c0ea7d4d3f6f8025f87ef0a7c9cd5e0d3441c206093335279c80537f9129e6fd14e3c2fecb6fb1f1616afdb8a771c52183194644f248e19196f58e50d42ed0c482c76e8c08984adddf29f8187479037a83c9bf15fdbca1becb9c1498fe75fbe9ec3aea15bf8e189064e8f999c6d140ce7f33ab2d294cc5382f7e6609460c1f6176ed3a3145a2dca462b2bb07616efda591d68eb426f0066cb494f657e81043fdb2740b758e515a0f2b361595a73af645afa4a0a3e3beb209bc8d3e242c41ac29fde3db80280a631e308cb9d09b3a6c0c382352fa54534f8796572d2e7280a254dd0307adeba50e0ee2e10d93b237ac4e1e08106d3d7217a1d289a18d511ed00cd2d22f5f0fe2ed84f8995eb20e3b9b70bf7ce0198511791827885f1af81a7d788cd1913e53459cc9c873cc57da4c56c4b8108c2acc9536995f08c522d6f6e8932f19059d39e41eeec15d32f4db9e96b3e3b984509334d6fc93d9998da8e5dc769c12a2650dabbd5ba89b12287cb66c74eb09b9005f6e485eca29c242c626d4eaef6d0f9e7108e43949aba3608444f1880a7dca40b20429310302a254b36212868623279a4c87dd4e2a0402e21f4b9275418a2d95f419fc6a11de61a3e3d5df26f4b3ee91cd180b80c0e337e2218120064d8bceb499155b2ab59cbcb22f37ba0ad4c6834e85815d4d7f2d688887e2597854cd1e705e0a14072167e7982a6e2da265e373b587fe6092a5e188ac7b4227decff815841f65e415fb8175dc6a3126483661fdd902147e26f3d4633717b3c5b1bf098943738ac0fb10b26a32c061cbeb0ca088617fdf608d38aee1ddd5f80799c2a24607313724de5e4546a0cf2570c58742a3fa57ed529a82ade48863147ef310f6e6432eec9ccb894d9b89609d71bcce4012aef6aef08832a4d0793263d656550f3143e3e81de276e997fe21fc1714f419b5320f6d828302a3a4d321484a029a3807d1d1531be5fbb2916d4e2e18b85408b5c2e2d3c9f3a2c0dfd78709e22116a7fa1122bd98ac14b35f755cf3fadb1f8099e7c26e2321cc49c805bc0eaa922a84ecc7e35b536c238d95d157992f2f633c61419a60c7bcd46138e37369d1cfa3eccaa1edc68cad833f9046a03ed4903ad79085bb081d3ecf74069605dad2ed09d3e477f5cf6ccb801b72ecaf536b379b39fb4a48537f1bc7a2d24e3949b71729fadad2737243a9b1eaec00197d10dec4451ef102c66b86a780e6439ee5ba3f04ac4e54b46c8ca2c3417dce28726dc972f7dd171cd920ec42daac2a61f2c2843adfabaee5628844f33e4675c0850bf02500bfd926860063fb211dfa4404a3c02f2b9fcd4d999581a3a699c90dbd5683f68fee27534ba21d5a46b1dd2e117ff5e808399a1451a2489b01ce2dc613fe809f1368c9d2312fb6c985c39c50e3c315766b19357c69ef5c495a823b563089f5642981a4319e457f6b269a11c2a98b4ba5f66ec83f9f106532eb1281e8b04365ecf2da7fba7f2584ffdb024fb194fc6d9a66af2003f9652fc41fd2ba894fd0c32c2917a9853e29e8a222eb95cbd9c03266a249f0f176b8680f7a4a995f107ae220f790a7e96d4664ee0ad2ed394cb5a17f2aedcd3bb5d6a35352baf13fcb3bbc2432fb37f83b87f2092624449e3f40bf943242c366c11afd04d4f81122fce1926c74675a90546f417facdcd986e5440e248dc0636ae9b0046ec9d7a6ead0fff64c3a429e5ad7a04f0471e68b09107272861ac9e4a48493d65541a96b86142abf08414c935819171119e2b64481766adfdcdf19d6f84eb447f47be93eda5ddbc8e970df2bb05e8f1e5e7e79782b990fdd0ce9bcf7b07af2f6a27171a82ac8faf4fc1cbd2c479a861a21d80a2d57bbad860a0a6684b399997f9d0b6d1f8d9f38f48e713354ca8d873ceaca8b68a76556a9874ccebb2ec43cc4cf52a59375e83486cf842b2bb5c27dd175968139d3198348a4eac62ac01580210479e6dd00714615303a481146fedbb55c3e4b09982e31b8fdf5725c7530c17af8a5e9eea9689e2303935cd506ea45591d964ab4d9bcbe5da85cbf9c26e8dfc5c01bdf3161a50c90b42a01166183b269ed2c258408a2e8709492e9e459d7405acad6256f90447f39a63e024e655cab9e5de3085b8bfe2a5386254c558adce1452134678a8dac1fa58b54c495d68429837b2ba6f454bad4e9727a59e11f74d39ef30f14fb2f0b40774b34156780172996bffc89d3c56d49654c6ed7fc6024c9b8820baea5228f912818cc7996406389eda3a5a0f8e9b3593899d07d39dd819411a98c8af8deb5446bb2b535924afe765074a8d6aaea808fc6a313a75aa12bd7314dc30069a15d99b70f712ac3baeb87f27864010bb90dd20cdabbb71e5924728387847d65e34ce21a3a34e38125347631825e5b1c2ed01b89496e0d51ba9ad2be8703acfb5a2beb1de149d02641d02000220119833ab1a733485945a973af5949befa3a5fc3d4ff21dc36840b38d2e6635c52eb85d2c63ca17c2c07ee506e60bb6cd190b31d423873d1cad4819ae216875beb94e0103452591d750430c65e5f0ccdbad6252ae8862c8ba5338a7c980d71a80ee0e4682bdabf36793ff74122cb9d2c41e2512bbdc64a1b2cc60d5cb72a7b0685109871aa394e965fc1924fe9a36930e02e25ee2405728a386fde3d08331118bb50c6702f157788b05e1126d0d9397d9843e73bb0930553881624ed03550e77935c98d73ef91ab619bb97822e66c9f10b2ec71c4a90d3ad57cbc91a87ca116f8be156a4e6ecc1a07a393db5f80274a49a065181f3c4b47850004319c8c70e3eaf3987529e847e5ec45c08fe84e9a6348a3eed8fb2c362f61b47202d33ab1b2cd6aa91c8c68191452fb522d8b179b60aab24e2152d0a8655f628d884010d7e2a8d54db3db81f51bc2fbcebb1b461db650a097e13df1b9d7b6988ef0bea09f9fa5eb2c43abab5757e62bb31026c09ec7cd591bc74b60d9ca55a95ba01ecde071fea0d4516c52bf13887694fb702390b3ccf15fbb92133fa5257aab7fa03ca91b076f945d158b1702bdec0209aac4bcdd76557c9d13857a7810840bff651a95fd05b43ea2ae3370f947e30c55c180e8b27a354f6e4a609f41a41ee9356f03d3b9b8d4ac194be6b0ab55f4e80aa41e21dc7227cde66ac8923419be4ff6362b8061333dc64841a18c2e0a838edadd045cb904a9c5a655c4434641340e63f4e156a17db9a4540f22c202c8102ac7d648ef0e230d0d838fbbbbae2aa63a4a7f59d1185a9660925e0cc1459a3ec47320e045c23ab1ee532ff8535ffeb0729b91d5809599387b8460d072d5eacf69dcea82059315306d8c30a5a5b978fbcbcd71d9391bbb2db64bca40d7c3b3910de40e8f6f7f87d3aeeda0e375172cb4bf3750f4702174554fbf235fb0123644db2cdad317fdbf0f6ed63129710fec8511b998b5e253bc61b05b5b7bf155395b0b4a4edd2f160d72d0991b52035d7ac66e2121a5a3f653bdc8418aedc24ea0fa96d28d14c3150548f169bd14edb8d6d98a81b6f0555b12f3b2718518b9aabd91e69024020aa6811165e50991d665b26dc0c309016e93f4e696c644338a52e0e5157488496ac295b56f5aba2456e48d868b5a4e1a483c09b5e18614095c446be7333b8e727ae908ee55c66e69378fa1e0738210cf8d391d02806ea01877ed675d6e10eec2bee50ffad68599d557dcacbbc97774e14be9355b00a34b2aa9c67939ae09c813e1729b88cd44a150bf857212a4308d248ee9798ea868974d74f3778bec6739b54e8aeb193e5876a6cc9a953241d4fcbfc6e4d9cf2da3ac1c8093a3d519d41b360bd54abc88541e3ba8e48d3d05d5b85f2de7bccd5f6848a89c20521bdc4e0de11166065da470973c4c9a6de1d1c1edd2231d724843c3a650cbc531849c1c30803fc01f22e58134283615b9f227849897443bf9a2fe820f62cfeaac249e2a07119110d7cd09f3890c46670405c50a17914b3c0b577fcd3847604d6f3e218a017134024e26847ba715a706212ba643a0715626cac22252f6cb91cc9231d2439a0abc51659541668f990c8b887e33357d36c8d9916bc06fa6abd5d1f686c240c48114169182d8607fb9fc2564eddedd4cb44758c15dacde004b482b597040da2d033bc25e526313548b970f9621540183bf404f130565108027492a3b0206f1ac6815951b4778c8bee5c2c23b40d0ed27fbf1879b623dd690369c644fd11df6257e556bc0d39b6b3bf460b1061e44d051680e2bc3fe669f3f5212171b8f031b10f5b4f90f86493a113035dedad0f1c13c5f1bfe9fc0dea27296c23ba970e27a8fe32eac9c16bcf3033c964e3bd7eb8ee06589eca78869b8f9bc4af14f7b1718f842174c68868e1ab93647d5859e6736366838fb0ed13b6d593b59783b97c6f9a598404c756cca88d323bd8cae6ccb8bde1ba178b7694ae150b7166b05f3995bbb419333e11408314914ca9cd5d21317725f64b06ce71a802023a368c8a5b0e1ec98f8f27b181007d8ec99c8b195e7d05c061a5acd4eb0de840e3e5edc388204e25aeb864a19f5bc09d93fb919375631e6d4a2102b566495805e027cf986632161a55a12a3545a49e5db82bd572107dc857e1bc8e810a713cdc905347a5d2623b603f6febc831e1f0806854909cc9e0b2215fc8ac6ab31c477c384ec9645edf68ce8831b0dbcd90b7205a9bcc3e4df305f5d958ca640b0a5980e0bd1b19f17a0244ecf4553e989776c2270b8484e00bae9fceae6fa9f80e188ac1763c2ddd03dc8492da6084dd994370a10a27267ba6777fe71e0d773eececc1d3f5130edb2fb05d3242af3a51957e4bb691f6285ec76499222e47f10ddff846ee0b4e0427e944ae0970319f57ec2b9a3d9fce7a643f8d705c9f09c32b0fb8b1cc78cd024d792511bb7423294a722c1c152a9f0b39bca9f69cfca947cff299e5ebcd99a22f4a33552891d46527e9b3f12237f934782d4306d5d1ee262e34fe4638b56b41c2eca0ab8a8fb2fbea61579ac8065873b93451466eac41e1fbb5d7e3cc2ddc745251a4c9a8eaca945968f8a9bc7b6581343304b96df6523bfcc617e1950fbdb48da745aedd819df6d74e3c90d2564eaa2ca4e32655f233da61eafccf7f7368e0569d3ebf3221deab6c66993f9f9c215e372da14226ec520696af2b9e6989e4c6b4d95204dbad4d18635d5efe952ab88a20cdac72282d4bf75613bb56cccf9c1fc0bceedf6c04214319ecc6dddcf5629c5b7b06e4a52ff7327d391fe04f6f184363cd9a51f8a974f6ab16effc2f813f2ace054fc9df1dd4b778943b93ebff36876fbadc2c87ab623fbed2f419cb30d4ff636af804ea134e96f37a515e2b2259a0cd2941d6d15b16e6de3f7a0eadb438416700c16ba4148a6362f2c865256c416b40e2d8a6793642b4ccf46076edebd59f0ef422926f2b4112a31389e1f1fa52319146c4913ac5ee38dd38bca8dd102edd45703ef30a42f6719223fdc93b94175dbb4c8a2580e7b2670d1967fe3e0e6f62dc7b5fcbed06d61d42c755731a87b6eb2f78c281ae0d52c4b0dd233f370ce69448745f998e859c09a22afb306887e0a3456207abaeed5b0fa00219d4f50e8f7dd1734d061308e340d03c6ff3967b1759e2192adea448770e6a08b906cb40a5bf13614785a023758e5485528bc6da531a2ff4e563b993ca714a742adfd0d629743efd4e2e81c83f8b1db367bfa67dd0d5d9028373a7104e9298515a238a257b3ec16428da16a42110990be102f663b7144d593dc012dff2f292f423e0e5637d78757ed7fbdce2e07f05b2ed49ef5f5ea808fb80e74a4547dee349ef6e63d4b556082cb95cb068cea9334ef48547828634f9f077dc5e4669119fb2e47896f238eb66a1053d6102482abdb3dd80088a50a3786a3aa009491a2af381e440ee0028e559241966e6ed4b14a329c813f560b2cc86aa990d5f744a1b91a7566711961345b9b723605fe6432d0e1ebd66492800ff1c9dac37fc5c7bfef8048d437801e5f7fe88ab1d04af711dc87fcb7b1aa1ce65b9b51c89bf0052187fc01b71e2b581d2ec9000fb56ddac4711d5bc84352c0b3c09bcd28d24c4a1718fae686026936a9da5e96bc79939139cc0d1f8ffe8f170fcc7c7ef371c761369b92e0f87688d416e10f9655388edefc3d1ce3ade9a60a9dbe4f9c373b3b6bd29aec2b9b9f78726e40b96ef6c27c094093b77e88278002fd0e5907e267f01a78671d6c18a08e04a1ada950fcb5179ed3104ac7162f03ebc02c0313caee4399e88d4a4eb7c805210121a4f16c9a1854aa594e0836ad946b39c099ed7383f322fab6083dacf6b75d4757991a5ec137296b783d933918064c480f22d85ae6389948c9cc979c00207e94f9083f0c28f367bea6b6c36f66332c031ee0a756061b283640f80bf2337fe6397422b650f6df3f2a48aa1898fd5100ab667b4406d7acbea83c5e447e07beb6f8b6c4f47513866fd9803adc4f44e5575287ecc722e705f6b3e7ffa970e0b5bc73f1d76ba9b6b1681b42c91f761eaaec6ed4baebab12296d8ad19dfb331deed8d7d599e3641225cd8f551639ee896ca860ee425ddbfe63cc9847c8706635945b2e8820892efc46fa833b222a76071e6ba4829319adce9d09c0559593b03f61c3e19a23f8cbdd5b5ad3d8246897c073e0bb1f4e9b1f68f3d651c0c05c88ec23cdd13698b943060374620d81d4bdd87d4c2107f34ecee01e1713c422883af1c8a7f5bc8bba810a22857a046d8522d08985e0131070f17f8e480aca1e3648bf10fdf47fc661df04a41ce814f5b56e2b9e849dbdde00c9d253e5283b439cf597a829882fef5944315f3f3a7309cb1453cddb426b96ad79e7e467dd99ad1ebf8740eed5a0cec9232e11324c30c0526d2c125b7c5710f7ba9a1b3fae0d96b0a9fdb3bf8d1b600d34e8171bfdc40f710b93f4f12b0acc62e4d3a163e946375ea2367796c4f31107491bed524faa27423b70909e8ecdcc4a41ec2fce2b6ecf3344b0a59e3772f46a54f2fafcb009b516dd3a4f8c7aafeb08ece2155be3adc0e5b98253214712d41155b2cc3bf18a56e6a2bf51db3dcf9e9f635a56cc002947f88de1a31d715ac3b7b9dd25f178593b008b4d372e77ef21cc7c41d9b86af1e7f2f238a8bf609010cb6c26b8a8695942965977965ccb978b17dbeb3aebae9b9cede762282a59f1c0937a4df3786c2e6b5510dc2dd04f6d39fcf1bc0277181bb64229f146ea8496822ba487937daee91783fc956a6fce174e7c1a6198ad4c4b9f93501ddbcc4d950c2a86c02a10c2079fe380bb2dc8895915af2d48206c832fd0a6e2d656b4f499269fca7ccbedebae7303080c3cacd9ebc1e5ca650f6fec2898e74e63de5694b94ecefc534e73014cb9a1db3792f8c8fbbb57cbf8f9771e4e869b50bc37fd09ff6242b653b1215e6ea292ef2255a3b60206e8ad35843e849fe0a1c949bed680442bbee649eb76c1cc5c956cd7b83e47423355473d09545577ff584884d481253175fed14fea159d5153bb6e4b5d563eb9591ce4a9b47ec71ae5b43ce099d7a48e1ab81844a7e916fc5666b1ea7be0ef53c3f7fc7632d6c64c4de800cd50748e0b4ea1027ed159f7166f6059a720b182ff0107595af9f67e9c34d98d00cf1d5ce1df0d1f77f4cb9d0f591774dbe59aa5c56d0798f7b249ccb7fac8e233e6f726355ea757ada07c61b7172f237d916a07949714ab2df4558fc652a26d90fe0106d2ab3b62a10e97c7cc50c428339b3452391dae233ce9ba6bcbc1a9507a880af81eebafbe3c9d6901f2bc7ed8944762221528e6ef43421d837e6248b6b29af21e3fffdca79ec8382d0b5041680a075d0f05f7de8806bd7d9760219d7152e19bb57ae834998933abb393c829cbb9ae866b2ae726f6f16844e5f1ef206f5dd178b68c59c98e9e2defd0bf220a8cf20677a43aed0a34da896e8e6fbb7f553f5b578f40e1e0d15081d74cc659a621021c624a67ae04c40255f8a81edaafa21e0262c57a1b564e7c57959ab0c87870e20d42861b48fe6773c7e023c76133b2ff1c5b5b5228d456bafbc8bcf6f96233623aad53ba293ca9cf515d3034bbe88ed3b61d1cac7be95a89fe3da35a37b9600580f4d51342bc38ed11817ae27d443454ed8302890a4f180d8b7571e0e455341d5f1151a04251c0822edbff23fb9efbb77814ba2752f38e519a2b77edf7fcb2d523971ea27d7e805dada50f15b11a014dc3e61fba099fa0a52c76e169758ecf058f50eac243178a0a36857f816c67cd43e4be35094b292953c2276cbda50e89461602cf032491833676618d2b8251e9c3ba37408f9a046cb91007466f6ce0c17c326476aaedd4ddfe64855d411b361354d739265ec038d4be0ce5682f52df515d344b952c6b6c47a7478cd11a6e7af182b7428b241c320bc022bad97743f1dc4e3684cf38727888975b6fadc4d02839823e1cf8dcfc81e0ad76dcc613826cf754e9386c112c5dde6bd160ccc6b0a547190802df2a85ad8da1de6727293515fefa82e6b609942bfec4ad3e75eb2b4071f99998197ee7ce8cb444604d9d0e905b4008332421bc5ca35ab0375b64c4751e037e642cce7ef2bce2ba614d9c244c165727852aaeda9b2d934616ae41fb18f70a0cdb55207f3eee790e7cca110e8bd81db0f1b7d0614559a18cdeae23a1d3b6d06a848c094c82f6b0c9c06c414bdbecd4ba0638d40013e84502cbd621ce0ab3d983f09b610499efbb2951cd89a64845cd06a601f89a9c664757fa34827219800a1df60ca8cfb4ad21afb5cf6d488d52d2b5e14ff81d20236cfb7d8e6adc5fa1f2f4f1cad73a17bce3f596f7b268d4394f916c840e1837e6e85c4fcbb41f8ce99f4c854c962785e5b1aca7f88bf0ece1bfcecdd5ec8919f902c089ecefe3973d668f616cdf5ce48a10a55cba42a6e120ed013fbe7443f3a14bfb564b62e70a19d4ad79e08562a74cb7b7e93498b4bf9e545dc56fe9764c0102b3f0c33bf6c05e9046510213c6cd8d4150b79d17890cff6fc8a7456ae660204cda39b2afec25205de7f032ac80a76697fe69809efc5e2508396468c1fe136a8e5fa77a74d7a8e34f8c9583d8611527324beb0a62b6f1fc9f0093aa9c97e3fc4c4a9412b8b9954c218334227861df108ec1b292bd7b2437e4c8c09fd12932ab59632a84ad35c54b2d8780d365ea0ad2bd111c4006319529e05d94b2c125195d8bbcae0c83bb45ec22238e0f8bf76843c672e7673cfeb6e2dca077851d0fee2ddae6239c23e5cb5b3478b376defe4436f94b00054078edacc3789292f918fd4c58411ed1f270681117b569a9a5f6e46af1b657c04edc86fa14eb9d3e7f6f49c894b675135c720cff95b071fb63ae33f546dfed2f85b98fa881d3befc75c03db331eba5228935750ad8f3e1371959dc12a39aba9ecaae130cae23018035e6de5224df7eb37e8bac4b899e04020a78416123fe374133b8fdb5d9c429212bbdce997a9fec2baffc775d87339dcd0b6fcc8262652d08985510e6cc88f6d8fffb124a0c296f9c45e9e52a27df818a0cd17d28f062407735e69dad80a60cfc4285252c98d700fa46a8087d3024665748f3c091dd0b8dd7ea79c763155a261ad436612d5201e103d91917bbd496d87612478905cd318ac0fae5279a3b78de0de8aeef317dbbc7e122ca1e02d26eb8da380d7c8cb087a45cd686cbc91cef3842275da92a5c6e8a1ec27d8a2d75e69432f9b2da1e629c0a20c3358d6fc59994e26016c395f4647f61be715b9fc94fa314414917ea51d7854b3a73bef52b0d87f75d836f2ba403a066e882d570a2c2a521e10b6d0bad77e648d3aa55487272422734667898cdb77588e2659ddc32e2bcc2e53351771f428a86ad4ab77da4b1ca34b6ebc2941819bce5a1e1384d5bd0ca0d5f24179c99fe924914b307e5878df18bac26d69f8a5eef5c9131f282210a7bdc49f01d16a482acb4903909cbda8d8be3945a1510bfa38b0579b1bab7d865c3a97793b0cd00e18bd136898af2a3260424ef02e9bf6a4fbf8c4ccc95822ea42fde62a8c24c29620bd439879ce5d0faa5dc204344d2177d4fe9b30ba7ccc4356c08aca945727391c03faf5eaae405ef49682e7a9010d74232cb51b3f0aa043a5719d71948a4adc830692e563cedd1e93d29db8d239f313041d7299646f48f7faacad497bb796e1bf4d36a391b911d73f83ff28626afbafa9c3df1f4d24179f2791258433179adb13a40b08b76e8147d6ead8551f9df501200c997634a0207b322e756c8df78178cf07a99ee21761300f690aaa8d1246001de379bd084105bfbbe41297967fe284bfdf3d2ecbc8b65e0a8718edb3a6e8ca8b8aea499690be7360d6e83cf226ad4aedc59572efd0303950e2cee5a928d6b095cecba11af0b33446e4b5ddd55efc00c92c11870dc44d1028c54a627cdeb74e81103bada7b58c9a46d6a960cb400f6fd4e94b7c59ab5dd6345b05ca0790b5aceedafaa102a1bef88f7e0459559bdb170e1bf580db459d3b93713423628b55983db664d2903af4bc26902894316ba675a1c84f617329dcfbf5929f759b42129f2c745e3e6b19d944d60af9f5783d9bfcaa629ed8dc3d6af58e4cb26c32d38ac6cb288ba157a56f3b2e8bdcfda45f410e9ceaf93137c83c0b642e4ad8b9e30b020297284d2b2c547da0cf35b7fd337c0bd00c4945d9f4dac5dac5166f0d1d20679934f29bacd454c5480c6a4dde547fe4940d64b67b3a60f2084cd87825331a0361c5bc3c4e6dc0c3369ab29819659aa73f65a78d00951c2160d658c8473679bd40ea94dbed7511b418e862862a12d0987a485391fc17c1602832bc24ea1eb5aa450686bfbb5be11b0655b277197419422656a9c4c15b21ccab908887e368cc00c9d97a857eab2f781d87efb4286cb84c032ba0a05eeedcaacbc42039dab35b68b984250997a8743b02463bd812d89ffdb4172fa68954efa821438c01945d9e48685131d423a9e99df1dc5573c8e47925ea8b0f58188d5cd6bc408829d7dd18342e46d527809c7723e8814eaa7eb8b1aaa92c70f7b3faa43285653562049ae9bba02a987cf67f97b313ad7a483df3e58e66a41985d412be55bf473c8c69fd4963a376d518500dd438cd89d452835498a0f04a99ddfcc08e2ad271adc37ee9ad8da6aa8f29464bb68bea2510ba90dfb3116c1d039e59871b79ae011b60e78e7955cd6ed790a63630759a6563410731f70f1992c5fbd3daf76f04ae88d7a71195ee0ff95168fc729cd789d2c6db1257eb26b4197502731f09f03d58926bece758a02111e6ca1bc03fbfa5148550dac05c2bad3f18304d0d85fa7e2be0794bf53197f042049ae3bd167dd8610625fcaebe0b483440876f91052edbda03de01384975695ba7d1ecac60af5e7176288b883763b98a83915a139e0cd9d1182828985f9e2029fa48cecd89363ed3c337fd1a07d7e9bc01252fbc2323e739ebe54e27fd0da97e6277127b7bc7db1d23da79d89605f7a0d5b2c6879e45db01c939f5e566a3ec16db45f6310b0165247f14deefc4aaa32ff0f788209573d23f8300918f79eeed62a38ee220b00ee0a56366d1687eb287aac00c596c1ee20b1aec535b5515d1bf77919d8b9d0cce6861ac8eacfade90755e7a1bbf0ce13501e8e841136b3d4a6e4dfe06ba98529c8919d976173c944b45d005ec4220623da8587db2ff064fe4fc50dd7163a6986eb05c0212c425a04eb2ca4d7edfb5465c813b70bb6d643a5d949b4059a043fcf4384c0adf11c34aef19019bfeb4c84e741fb403fa9db9426d0bf52a80ca5d7af50a97a7dd3854a16fa98b22956ed52ee034177423706f07a207fe1ae52695bf3eb254be3fb6d406c83735ca103c2d9acc5dd2db548bf699924ed5c7c8b24dca181364c2e89bdaadc7ae9276062c05948482fdcbc70f10a0b3c239ab8e06ecf492eaa1a55a54803e612bfb3b15667ad2cd40c0fb8d0030815bca0fbcddda3c04b18130f1f13e7247b5c94f49d9cccf872befb785836a5339838d2e2bd7b3a7488a932b49fa986a91f6ffb3d908778063f58983cdd89d5e5445f80bd93a04a86e8f504e209862d6e050fde1ba9245508647caf398c98d80338b60d1ac7d7122f005d40d4c84548f82c5c14b0b8589a5693fbe16947afd993d9c33c7b34085242a1af7bccba373a04cfa14ae04adb58185bc09151a9a2599f98ae6edec8ed3a600411f9084cec216dae5f88fd2cbd918fc3d94c7eac574f665d994cc2e6e2b200d82603fb1734dcd608a1b2a98358d71aee6c4fe608404b4a4e8c48db84e078a013c329bc0b0247289d7a2e49b405fc282d8954d7625d60b6192619e2c0de9f8fb209782f4b7411f261c4090be66d1848e88c9c877784bf8cb1af01fad64bb717738f8510aa9f325a42aca6404d35d4f0b4939274ea85508c75f21347789e8e7ada0be9c42d62e00cd5250ce9010bd973652d1c8fd6641852870d43ca1c86844e32169f364998db3e048e1fb8a35c5ad9e0f0d83728256ce318270cafc4f61ecce0988d59036e9433675fd4c5f177e6bb1613d6f7a31da461c9b2194bc346164d4032a0fdc92d8d2f228704267031fa7d28646f8c8fd8706b08d9c9b3109df73f4a9f1342eaa064c1ac4642c628f161f512749ebef23c24d584931448a13e65a41cd27c59d7410e290438ec5844ce49aa0be8883a2226bf430ac56b78011f22b9b8d12ee33c27dc80411eb2142731ad4e77c7a21d033097f948a303c7d8411167bbf696560f4fc764215cc1692ca4734ebe6ce4ead5c44ec7f7e853e9cdfee773090eeefe2053dcc90e0174381d32c12d0220b902ffd1af51a5b707a46d9b95d2c93ec418b7e0317458df5062772300cfd3d1fc6b96e23acfcc926c18c0fe380dce75125188dd8c23703a080641251a9ba8cfc1ecf8922d81c1b52cd62978391433f44ae8ac6027ffe64104a131608756641d74ef0c49acb22a931750f4adfac7bc6109655397c4e72da697dfb50a4ea4c383a6238e97092a3b68062e694e8a056240d901781fed17ee98ca5ef70a673293759cd03233a02ea45d712ef7565a733532a679fd5ccfda0bd4f32252f5bab8ba28ab9d29a81bc419141db5006f4d30fa6b85ae127e597b95e6a432299d1711df4b054939f69022a20d290e00deda91292c504b06a6572c3327382c135aa1f6f8637a452d289c23689a7965a92bb960116e4386f8d35c33f2d7078fac5b046f9d8accad1f1eb7669d298a08bef6bda5ed29e8ed45a9cf8f2984ddd75d0b9ebde9cd1810f6d8739dd310a1616fb4f7f790640163c607da32bf0fd2aadb754188644396f13f231a541e71d42e45c7153f0c0daf79068f2d261e6638033f295836c9e6f02927353000fb4b1107a91fe5b6cc241ed46c4329de6ea966d3a2b4499c2b8846af002df65bfa2e51f09e08ce549711adae40fa09f16c81c6067cf8abff1d22ddc33bdec253632cfabf96a6ce334c6f21d624ae69cffadc18f954d6336a8253dc0f5db94e6be223d59fef01246bd7c3ce1a7981348d809e1df029a8564161be1f637e4bfc792cdc4c91db45b4c4ed36b4e2b2b92f71ac286597056f6833c9dd00404bb57f4bb1144f364725a9ee4ff325ce2298c45bc39674b5cae8bfc4d9a793c0ffa6e8e0922e9e000100e2ebd00c4155dfbb0b3c0a91780c9f789dc758afa269b1999ec00305fac41f2d1bc3fddd9ea0d05fa170df5adc2c45fa35edfe8142295de6d61eedb35d24fd1cc8bbfa6e911315f11c2a13c4dee6182dbabbc0590c5b995cd085eea8e202f48594f308183ae81ae1f2cab8b82678607ec9a068713eca60ec17678af514eba14c54d4737b1f9e49ba2ffdd434a02573ab456ab9065abc724fa30b72200e7962a85aecaa5ac63bdd44a8c2757573cf8bff1b4a3c5adbc205a6d81fce28ae3f9f3c32a373cc94791cff024db77a4e152f551d870004929625aecd190fb68a9fe78055c5805a8645d0de54e2154fe9bd19adbd4fa73ecfc98bfc757936ecff78713929543e8101b4a4788d79c5bf71d148e6085c1467bc783c83cfd03cb4941eba2179ea216ef5fcc139b88b53e3281e957bf4f3b74d17475633fd763e7d1d39d000d265f457aa6d6b09ac5d7c207183905d81f3546315ec8aca3b81d753359a5c5951e3c7cd29932511feeb5ac025b34e7c3427184f6648c23366013d66878d08e388207f47012608814198ff4a13af3fd60c4c5e84f13dc3ffbd1fdded08a0d8d219da806ef8bf7908bae508bd3ac8e8339e7ab8c424392cb4d8f98fc080d41d6317121022dc8e37997eb154bdc215ffd74b4d28658ce92da28bedce3689694c1b4ac27f0bc6d8c43df12738e751d7f36439d5604cf793cf7bc9d1cf47744e45da4d4b78921086a856421a91528c2d236c48787f0546119af219bfd801015d2c7aca37bb8da2c4a26e403ecc27e40a7e2eb90acf444e7a3e658c0a4ff1c2198b3a56be9fe96264b749f1445ce25bd196ca1fbda68b09212a946a4914f08617740f86e2c096582cf3fdad50174d2a5b55ea4d5c09dc62a133e2c3bec777378b42ad58a57806bfe1dbcd32a41d41c61d833b2423fd7d0d2f33d9201d5810cd2b5697bcc36b845b12eeb592fa619a8b465b34d2f171749e991bc24ec4035417e62b9c1e702c684dc0a0e5778d506c127d9b46cafb3531de7d5a6c8474202319306b9032a4633626ba1cf9b844d7c41edaa242fa533c5f8ebaa0f68fce56b501003d0a3531ff074b8579533122af8cd75262e576fcdff44c039d69daa33861bdc0913020b2fd175b89ef3c21d1db923bef6ae0a6467242f801fff80a128b7c2cd9088e8045de86a0cd21e1357e766c94e08ac29369e37bf248005df48085b01addd3b0418376fad54e42ac048317981b9d0426c49884b4295e97566c0dccfb8f492db67e1d9758cd646fe433aac4ef9a394beb2c854c3e42fd8699972dd0ff7091b9e4dedb74ada2253c56afec83644e153fc3e9ada289d2dbff019584e2226ba20e547858dd5a972252b43df996da9cd5bae0686231ec61032c181cf745f43ec50419b68ecdd452962681144dd4d196438250d88771e326677d0f97b5ba2fecad817a8a4fdc4d42f3a92d83534596caa366e3a22b690022604bab5e3d1732461d68156807feacc7d86721b1453315db19b00165c6c42f3640266801254b33b6c7a61c34057812311063c8471091719a5eb911a80a5bd09767a1aa24dd6346d8b35397740e3e5dd01630b5979c194bdf815912804c8440d30d76007854c27eadde8bc66b0c49d116cc78061e96b993ccb89bd9b5e1088312614a04e4c680dba5bc8c8eff957add9fe14e9e8627a5b7cf651564b08e8e70c5500615fa373b1895718a7e2a39d7f2132f8bbbf3ab11bfe9e8ba5ff5e1b720ff83038f898461d933cff33de0782be66b036d7b23c202a80b698598ba36236c3b26241c9eadea271238c63e104711a98532edf4e21216b3028dd65c8a89c658d8a4e9ef5358f8ddbdaceecc65b87f77bfa0536bf1cc0c1e19f9c27f38071114673d4c057f32fc1735303dea1f75cee6b7b50c795e00455a2b7a5cc0adb06ca2a655cc6d5135b90567c9c12140938d2622a7c47781b382da62063773524b05c514d285c67af0181f27b9a257ddba2ccf98cb3ee70cd5788d7b7e3e0f48b556e7cafe3f195027d7250ff145d629e4467bea4f9426807fdffa87cd410fb503a55e84720193aad32d8ce46ed183879d59fa9f66b29f92878d4a190560b8c4764dfa4a6c8f11fef0ffe0b1e4f9da27caaa0d8b1fd18ea146dc3f325f8aa0fedb75087428a87eee8870c4651eb8cbf70c911d6f982632e2c598d721d6cc883c8d3f0c2e4a635c4f129e6d1536eaa9249185485e1532cfc7e2a5e5c83236faf48c899519221bebfd876513a45747d7891510f9ccec543bc89bd1a7683f6a711e60596e4f2272bcb39c060fbbe987e0b6f5981cf766808b1620ced0be5a7c440bdd8a325a1987499dbaf2949d2e7d998f9c12361e75cf9fb38620ab05a0bfb3bdf6e8be77bfe22ce6f10acf9cbf76ad2b14421c90921e2bce5cf2e511973792cc2b2fa711bfaae529ee129f928e71ce2a270c55921cb44b8136e61704060c13b351cf5d617b2d575d42e58dbf7cce9c634ab2f6a849d38b018ab7bd380c139e5e2fa9042f063c094a4daaee858609f17e1b24c9d015760724940829ccef54387c9175c65fbdb23a5eda35d29c63d7be955f6c4d30ac4a4268b209605266db657dc6a411ae62e170f84228208755178ce57e12254de25fac252fdbbd271b774889bad93068165b085284df4ca050a9d9e4006fd66d5b21ef9ecebecdf57c0222659d10255e1dc51a377bf84fd799b5eae1de83f02494db7890ab8ec0930cdb771c116518831a7ef1161b32db9be5eaee02a7bdf52ab3bf1f87e481529943c94d808945c2e5696f5669d82f6c83f3949b46ee36ed9d9fc629dc2c3812b2f1d82ce052961f3fa19ab6035c4fd53a29622f7ce4e697a54c2f16ea7003ab1cedd98ccfc6da3d56af4ad3170d68b3adce08f5bbe9869b25559a84b3eaf85f262437cd6fe3cb806fca144ad72ec61333ceb749f54ee9f2f60df29769f5643c0da7f5503078a3f364b3a9b0447c27e5d41b59b39fc6d4256a1302f6a3d0a8506c5938557580d442e114b0904a1e352311ba1e279fd26e89ea38cfc1fb06ad9bd0648d4586e35bd18c088fbfd06d922430ce1a2612624030cf396deabdae34580999a557b8fd03ea2bdc383ef2e9f961d02d6ecc413c687a52579bd5d62fdff5ca05c7fbd4400ee49190d1f4b58fa2391f29faa33eb86bdb89f838d43745f5fcb20805c3bcef7197449b029ac4893e9f489187a19939d756a5f091306eb2f8aca7e839858fcc90e1ac05207685de3607921ea7b7598429b9382511955304fd4784f1c64efc481680ba4db4d501d44213d38fdcefb0adc45852198186c3d923600f6fad8d3b88ce5826364efe361df308d099d0b4b76965a61e518473d85709d7e9abd35152f820f321b791198d590db38bc40e3cbd07de2e94522b970148141ecd4ccc5c4e6233446e61f1be14d5fa17783d37899c52e32dd4c211b8c6691b4699390a5b1da14b2ccc7448368e0ec403629c67de4d4e83b20e254b158138ff33480ebff7986044d2729ac4d26d56d1a5470abc30242d668bdb2fd08f487e2e90db3355cefdf02360e1c3cdc236e1f348f4d301a7627e874f6aaf349a55fc47b284cedb70c1c1a5e0697a72e3908d24f5db8e0429ea7e8317242c639b057fad2e7ea4760da76c7b2082947c5636553ba272a3fb5bdc9aea2855790bf03eb0c9d14aaf24e1ed1084a3872c33f68277d6dc4ee1fc4b120565fddf11eed0f8644a48f99fa8121354e7924d89034f539cbd65a330b5f912c97c1321348c3a2c0ee634d34b2eb066d9ba9e26e47e22c49786feb605076da1040f7b5dea1206673387ec88b5a685e32b7425e49799b2a7ea8d76bc96c619434051fbf32b40f912e8820f80a60d762b15d0ce525b6b0cb4a51d14a3dcf929c4103c23b0c566b704a88eacb470f38e2d2c709fbe6dd75f95b49888279c69f34a76c6971324db8d3fc13ed02932ea54e8776b1a74e656fad796770ac9c6998208136986d2edaa400398c94ede51f0b9ae33985052138754d1c7c90fff2849328c90604c4ec2f7e67ab0c001888845c6c87a208881118c5f47a396086cb210dba69c7e802ba19f6e1808af598832ec38ea6d26066ed24fda774e6baa4b613853c3a3ce00b88550c5946449070f4a8f7e72b0ce3a7b8266702b0ef8e7a687c03c6529b9e880ea34d3c2eee051ca146f2fbcf41321113c64e04b6aee311fe3bfa468097e2dfaa12100e391c263e3fe1ea0e9269cd3c7d0e93cf548e92380937b2ffda6513efde1714924c04025181651d3ed27b5790651134deb20f183b0518f19a6d80a4b03fcd41ba34affd3aaae0a77c003e44a4df55bf0b7ecd721460e4eb77fe1e428f3b9d6aa1e2010a73a1270e52b0b3e46d57e2960c352037e98ee1a582b1a8afcdc7c5fdbb1245fb39608f3b25793efc2b56a374ee167f8e06eb11ebd750130c01e9ae3036ea786f88f90b1a86bbe3af95067224b410e63e27f476e33154a454585a032cd994c55ee45254283b015d039285065390421d88798c597118d9d8e6bd829faf8dcfc41c39ea936d0722d2bbaf6a9458927ebbd2124f744f1e4653220d87b03c9c264d42bb8fa01fb834a2664da1bf9f06433d00e09f4de49d39269c7d099925d9ce8bd14cebaddda1c5910ea8c0be6adc1831db1396307d5e83d3a980cfec5406bcc0ecc21b7c784c78f3d4d6607b8409009641dc75cff617c84b2504e8536271e1ad45037dc7c2a3652822c89479ea20242f703e903c617c844a423a9781506dbac89173c097dbfaa1e44b6557e48a1b955f227d7ae99a6a0a25312def46440c1413db3e8d301155d1964e2db273c0c843445a174b9f59de76340dfeae7ab063662e967710e2a77392eff3d897d68913ea4157fa597cfeabf2d252282bb1229c141e0090b22bcebfe582186ead7f6b984ea55d50d01e597af6ca8dc531ce1fd5d90d0b1c802421287c9ee88294f355bfb0725a43103fe5babbcf709d5de171fd0546d1ae49f56b4ac35a6ff8e1cfa912941b295ecbe7cc2a140838e228915ba826fe3d21991f029ec4f84e62e89dec600013c6940fa083b9f484b61c7b9a01854cd5d1ab42f9574b6acf5ed8d6b54351e4077980836d13876bb077ecaa2897755d82bf839e5c1367a04345fd5a1bad2bc61cb8c3c6c1d96f3cd274034699c30dd7f4be82db69c8b0aa8c37744e4e36b9164e3a8ec78db9d59dd6db099f6dde3a725377b28ccebc3978d6dd45815045f31dc9d0462eeee81d08bb6c72ddcf643ea83b9bd68cff513cab599b186046a1c7498131f85e5d7954d3bece857b73f85de12b2cd35600652cd86e53040e62f84dbc112baa158fc35ae4658c260dfd142454284e3f8f0431a6a94e693fcab76fe153a4b5fafec3adb35c95958b702ee4cb4cf12aafb4ba89b45eb20f1c8adec2ad01eab719c2c590332308d40cda8de54b293ba66304513e2dd56e380359556be6f496e195511d55366a95538839d9bd735fca69823b421378111f66ec838d13d9c58a05f48f70bfcb313a460116224000042f6ac60020991f8c7c83d5328eb62ccbbc9cf0af5d3f1eea9c84d2483ccdb97cb012d09ff9304cb74d4cd2ce3e140997d73273e820a0621346432a81307b438f48b160cc275b907b4bfba2ad1f5410782a97c239c8bb53362a892410cebb20018edb3c2c66c40e32260410d68230ada2f168abb9b01abb55c31bdbdb6ca8b0a18b7074f4a6571630fefabf64dd7ab0f1e9a31ab31aef450636046f21ea33e845b7f9fddeb48388449c2e2dfaa61928afd0c7a0c1464fcc878b12f5b9466be48c4abd4f7b6c7afb0bd9311bb4bb4c7d81848fb8971c32a0c6ea8daca074b0249b3eb4fbfafd4a43fb90bb25586b11debd78fea2f08f353626304a0a4335ea6e682984c765edd26d79efb982c6783bb22059705bf1d47b8edebfbf638ef4388c3ff81665fadb3c97ef2561c813dcd238450fd764be111d3eab545e175b0e7f5b704d4a2717b89ffc4cd060ef3a4011b28db8adc7bac56a2663f529968d16de7aa6d50275a7d6051f4716efe4c45bbf3f114134ec370d2d9b27aa96e953fcf867f5c3e499144d9b01c508a62ac049ee200f20a57ad810b08dc3ac5c73cecc848576bc539a9d805838115a47ef264ad5397cc26365190f260d536ff567f200917a38c3de5891e5f7407ac53458f28ba5eb27f2bfc73ac311d167f6b60547f08f885973d16cee788a09cec6eb0eb5c92283e02fff29be27b2cfc2fc49b9ec189809d3dcb18f1b163e1c86072379b6f7a66bf35652c2394046dd54c6a0d7f7c6c9fa9ab81a1d8de47b6ee350b76f867b12d1681cc15a744a91220098392a870e581dd78c78ca7cca23875b01712566112ab4f285e9ce25104f5cb5526b3e7f10d45403e38b4a3bf8422a7e56ccd603fbf97c8fc70683fbc22ba235e1c59f3665af83c6d37000e4d310af4080adf7053899b8bbd62bb88a3906ed42ea86d352edaa50da01e89e1a6ce2a08d75aa2ee92dc49ec7972ff849b12bdc31eae7fc18f755f1ff0ebb6a6222f5c62f14365d40dc4d1b5592fc2831364e90733b28df80cb1226e0a52bdd6e6224418daa0968a1c1617a056d2456d5064d23b0b3854ce1552d421c16dae54aec1f4cad42f964426bc35d1b489f16f4da4183b7f48bb0ed0857cf68b955c34c5aa7aea459c7e15e8d371f8e1be426bf428ce7edc5d4ecc141b0d2a171366f6514d327d4b36ec845da552a1293c071bf6c0b285ced42f003c4c841578dd262f1fb1749a4476a67e49a81600dd25aa2d7f50a91fda0d5f722b7161d7643ef3529b2293eb256d5c14b5d548907fe047125b770e43b01a24f5406030416ee6133732b94e9080a81c8f54db81b9f7ebe6d8b076a3351bc0e8fe86115a2a50b19c1fe97bdcb8261d02697aba5ee629443bd8f56b1e8e2b748ae4556d54d11e457d2c6bb4216d132bf74cc9186322a91064cc61ffcef0001577a9d92104d869c1b768067ce31076178cd877e65b33eb8cfbbeed790bb2b92330096ae5522e1559675361559d66b8c41b48bd9046d89bb0aca3c0fabfd9e73bdcc3d3b8f6266d31fb6f16cca482bb09b15ca97d8c5b3c13842757bc0305bde50a57b0dde421c88aa9333c7533d65f19654a577f577587a75490b281e4ebce59274d22cf3c2b9f2fceb4777cf6cd5901cac669e638a16edab2051208abb15e520dbbbfab299a846bc7af58db1611be8ac0a77eec6812a6d745757c7d22f9c8a63c11ec808fc982c4221d46f0e72a542738c8c49ea0b9e915c59d71a281211525d8ef0cfe56acdda562d9e32578f1c4bc9f3e490af52ba76507b9b8520482e0159c3679a8e1ef6b992827005d9ad8832cae69e1ec7193ccae76e74356ed38c1d3b84ab4aea1be6f1dd8eb803661053d87b379356f3ba84c678cb30945de2e12898c449880519ce2b26321a53934415b014bacb95e685584338c70c64054cbba9c7b0872c5a51fd15f709da6d8940e44144db5cf23f0db8cf187feab52ae9d39c127096ede73ad6f5fd52735db814c71104372a3ca0657c3a5b6eb8d8a4f1e885f5970d30e76ce5849193e32d85184a3494b361cf71f0dc95a818aa3c7272dd36ee2393c6a396dae8e2549a55650498ca59224ac445ec82cd32a1c18e0b40573b2a6e36de125c956b9d62e353c8720f38f799d6598a91b7df00258ae4c3a993c1867839a21b0c0bfd9cea687628a443c6e717fb31b32079577518441afffc0d78df08449d7871722d0daa2944b35f211ddc38eb5dbbc6d46211c8c66bc06d1664fbf8adb5a26836ad2f3fc89176fc3b38fef06fdeb5ceec5731c035931f811def41102c618b4496ba8231eb11d8202711589e4e66278a4189cd30334cba88fa34247849ff4ef46d9fe6085f0ccaf189880658aabbf6778e4d86153dfd38ffb5fc9c5a82bacbab9b093ca9543804006fb0ff81cc16f5cbf0d85dc3ee7a506ba546f82ac3f15464187ef7514228d925c556ffccf70f1662b9c683eb29a76f2ba1bec9a0a99031ae5f7d56ddd59d4d49a0e7dc9f551f2933fab3f4ec51d5fef7c7c44e0e4ee5f0bf6a20d53a59ec5776ee3c50c5ad6d758addc012b66bdf950e62e71b442454d0fca5d834023af7614b22f378bb9b30ef87610cb43a500978eb86207313664214968dea1f3e9ba844df7d65ff8624be958555d2ba0e929cf2172f0e821b0bd922f0ce5f1a3123e0e5268275db4418c06b8273840a93223b46306765470001eb507d57de5c8c14cecbc398c9f401a5cbe9b5a2b245feb7b6fd3e3dc9d6d4e8a5aa47851c36762d9ade6530165fdd755545a4777712737a54915e7b0c2762f99620a8dfe42a2db223397711653bddf493c2152cab7bd19816ee721004d3e5697c1997ef77b6f2ab724a5b8b8c799752b34e052fd36862b273b4ada084a0be63b48ddb5eb0d4e5a2521418a4c03ebee82862195fd81d93adce0a3c875002a88958964a4dee4aae7a864d884ac61519477475ac228dc36ff5c47c20f43baa402b00101ceed48d9a7588fc23aeaa0fe75cb936913c7236cb25b32a1488c281759c6e31165fae6fa65b311dd9526b42f681677e9313e280a517a29b5bdab5356580f521316b3a30e036a22ca4d4251065800e8a89d98347c8652b22ad8a0fa48dd5e30e98a23b316cf52fa5a5e13e6221141217de6ef700bb6ce4c496dc756a3a000ad57626e4a9236e10bfb0430f7d035124b85c26d6ba98ed9b01af0c0554759567ba2af7aa0a308d3d4ce42e556a6d1c42c073009cde3fc672776e4b340c301d34fc961998c6f8673692761f243e13984e13fb7e387db1120731b872365210029306368e0aa3c631adf6396773207e8944b4a563a60d65887f433a0faff5bf3cc2d505c04f8053b71c4a011734b0028411b10aaa0a5a96a42840ef4b377c77c0f905b4c7a6d127b2a01b2535409e4e74b545686082a8c0bafd8bef45773f8dcf62173bbe07a5523711000a001e2c03968e1133212f958e5ed72ce9162bd7bf069fc95e32aef5d2cd2f7cc81c9eda899bbf254975637a44b5dfd3ea35769b148231d53913c902b4f651c908339917499a9c5e043d9e2b302d47d6ee661a018fc9b4899917e4f5d3531b833a2e6c64db76885e7f231bb30e97ab89c2a00c92703dbaf522dce9c690342dccb42533a0aeb7a24de850e8760be297fd766a007a0e30d2d6fe12cd84c4741b8de54f493ca2c15695cd8fcc17fa7680e8ec9e23e502041a461793c54c4e89e01b811a3efaf75dc29f6cf612160a1c492c222b7330833761684a01fa8f5d57b13040452a359c90be708192cac03c2116aa0fd7a0526bd6a452855e84cc0c2381b1a21d7230e0c570854afc7c20a9c49d12f3006d73b1bca07b7555c08a4e7482d79a1f060baec4f2fb5f88125f67d9ddfc2f3055f6b9e885c9ece8bd1208990ad012dcc08ff6b8e064cc0854a8f305d461a02bb57cd408af684790073d66d17e08e7e2bea426e692f7b05a5f9c0e44a6f5b5befe4d6d8eed2de101649d81a64f048670695810471a4954a2005ee15927920302ff93d8a92a9cebea751760fd0baa747a57dd868c7f8808304fe82c840bee9f50344f27213ebf907010a7bf2aca1ff9dae624f77ca22902573c0042a95c58e0672dadd52fc0ecad1c07e36987dce58edde5d45074c41a36040e3a0aca758faa9910a962262a3c12ed2cde051b15a26d850aafbb6d7bb7be0eb02706e9414aec4cc32ad28e100e80597679cc9606f0921932f0708e61e2547bb8e40138272e52a23f0422f086cd3f680ff957672292cf9429e08f3b58955ed9923ab7cad45c0b59c471fb8a538d442a8c2d0ff958b2da0f7666bad8b25c416c2aaff83fc27f8d2c87fa28472436f6f4047fe213c87ea3f96259a656bcbb9755b7e716ce77ed942ea548944bfa80efc6682feff5607d4a009c28b2bf071d5379e53e02cdf2203ed0044441f0066073a6e09603481142dd6ebc6fc40c016b57ed31035e01cc947310234cd018a84e9545650ce50ab311733cbb3339c8216e87cd3a9a82833ca73ceb2f02c33cb3c2b9ed156d79e1568307d65f82d00305c4cabe951895f99a5dddbd62e044e4c6f30dbf112117cb2307644b4fc6d3e45d4bd3529654a498a24324e0553051505ff58524af77ddff7f577df55a6ae79801a8a71d6fdd445b544141149c179b9472889124ba778d1d37583d3fb3f058ce37fa8531318c73e9ea7dbd25b9985784977f7d59373eefe3b143ca5aaab8e26970bac946bd2698811c8e4aa799526327706c36ea0fcbe19ecdb7d22fec230767777774be9c9cddd453a9d951b64d5ab0c0332edce036ec974e476b89bda206288e30394b5000dbd2ddd0189e007c50b151791843a6cb764ee9652a102413c8411559b9b8aeeb6199abb5f18f572ecb7baa634252402498cc7a26e5acce1f0a892b82433745d73d4eeeeee1a88aaee23b33bd9aa662fca7a5d2722e24ad2170b90d319508a544e9932cce88a5c7d20594c119b3260f80286ef54d89c3d677b716fd10fa42827a3a23b37646aaed95e81005dc86e0979037a767b5e1b4d9693e1ef99918d78ba1d734cb8c687e1f5c984c829c6684bad4803ca270fb40dc5aaea82c8bc3d4f450ad98b28cb4d9c57a718d202ecd90a1cc7668eb1caffdf312d0dd12685082f960fb9e1bbc44031a3a2267866ee47d32d0e01c6f1ff593563c8d5b043ecd75d5d8f38f7cc6bfe77df55fecf99cbc9a310c74225a8d86cf6acf494c3df82513ae2a57c9819be5b9cffa943337f11f100cf229d6e32cd2fbb0b7169e24925caa584d8d0f3a8683f4953b0a70eb7232e88024e591bdc090a9d35c7dd9d8437662b5cdfa0ec9dbc300bbaeeea64852bf48dca1aa8a41ac1323b101e66752b571d5660a22cef878419479dcb31759f546c3053cd1976f2623c71c601e72d448f16dc0c5c89bb41f5048aa9d698183fdddd0a98bbbbfb53a096c5269203f742d601279fa22c2863089e4bacd9001e91e4eeeefe5db9bb036777777f5d9fc3b8d168dddddd3d478815ae4722e43879f06d3ba6385a2e9c463ec00e5f6a2001e34c18494a888f71e8755c4ea436ac269fbd99310bffffffeff60056dfd3134552dc52658d85d0cbe348f114ba799b5baeec952df59ee0d5aba7ce1933e3813262002220dc4cec569c5979cfe9f11571d5b504835764d536fc05a01d91288744464887dfe2cdff8cb3aad04b18b4381e7477777797105765852bd1782c410e6901f60ba5aa09a7c50744190990258c3b5a223c747756c9a84555930a43fccd15f6554b659eb4e6b0ffd2f9dfe364f683af6fd9d4826d92beab4285757d3a1df989adf6f9d405aff9ba1f3077776fd081c270b78a991bc71d7c7bad9abb4ddad88e0bba6fd973d7a8b82b98bb3826c8dcf09562a624a4c06a786cec6a567e14a4503815922a13610a489143ede0b116439642c9e55a58b8bb53e7f56aea8de80479cb5b8ae81a62e003052b4add5a015175f6155a55c5aaeca2a3defdb03da9e2142a2a794421c7a63ae5d3ef016966c5a28e949bcb09c892b00da90e15b6964ea66ac1e7eeceeeeebec186d80ad757ea43ad2d63dd7df539538e0b74571f56b8329b1e8292d31d7effff1fe8d7dddd3d80b9bbbb49503444c2030357fc2861c4da98332e3b96da391a9c8a19284677773f969dcc12d94c12dad06322aa24b73210179ba1cbfd1360feff7f1a978b1686d3669a305cf57b1836ca739d291e0fc3ff9dd3ba1e9c81bbbb4fdd1967f70e46aa0e273f350978f07d4ea9add1c0b75b86cbdd5e0e94e9741ca7c69cd0614fa0e72988e962128537ecb8b9fdcea9fdbe06f3ffffbf8f3aaf51d0b0f9df474581d1d811578b071ead13287999a84e75ec245b38b32230caecf893d7366991d3b61c3ae038ddc88292413b194499a2971350d1d35b964733e238ea77218e3ff852dd9f0b1fe4ec6e786ed8b73a93a644692828723fc81d24071e105a4f66d2141b1f6e2fd58b24881cc728923f14e46a18e08abcca351888030fbece16cd8e2585ae7b38ab003cf8e260d995cd1e0c41273c970e372c4f231c3692302d457549216f3b4ab3bbeeee724556b892a8c022c82561d883af2fa5ddc07914777777b02d56b88699b1c9810086e74186d7a596e15de8593df87264756080cd522ae9934456c76124c7496e991423922c2fb8d310c116c4f6c2b47cd262ba7e485a5d63cee4cc86ab23b36c77b78b31032e475806be1c2f714c6ccd9ea190617f74a911958851b939582ec88aee7eb21d2b32f66416690154a623cb8ea832a606a02a74293b504f3e2e8e8edbf3bebaefeeee3f807b8dd25dcd5ed62d6b0487038cd6edfd59605db0526005611886c35458e19aac590a1df9863027777787928598ddfda7f26ac25bd52ace0c684585ca1428aceb948f5385e791130922544f67e860313d5b2871354ef726a8d953414f1840b8636ec4c7916fa3ceb63e8e7fef2affbf2f793e77777777f79b56b8beadb204701d819bd5cd4d5696555c991e89b1e886495d52881c0b1386824f313951317b713b1c40217f707674e48a5c1030cf58494a01eeeeee1b1bd400dd99e4aca1b8419b816ae2b865912cd9e474774fd920e7eeeeeec610c7ddddc2bd06c3dec27018dcca2cfbff0fed136ea272079d118ae6cc69191d7e581e9c191708d3c7ad795e8180af7ca417e2f8ff1b18c7448f25b2e31508b9eaf017905436e294b2d694367c9766fe76b95d9c1e7c59b9ac8dba0c7c2a70332ee175916d11ad5acae359b3c41dd88a3b9302f8ffffffffffffdfaa5584751043e68cf1daeb60740382b62e14e615c8d88a2b83653562f69bb7cb8412c9f2922c3101f9d2e5d3c6c55475956c6915ab0821f0dbdd1f5b172d90c3900794968db2a12e25760498da8d1809e4890f393e77c718e103714aa9f47650f256f825538c8049fac209e21001a9a71ae3225d2b73634ceadc9278754ab3445e340af0a125b267042569a923010e8bcc0fc8893d1a178626fa5ab0e0fa6ee6952a2c6c4df95bd371777777932d56b8869969306173bfa880075f2d2c3db90d32f4ebee2d479515ae44e311b9a143d971d3c62f87258f940cde080a49890998783ce846904e9964112aa602562531dde78a7d7b50661b4efb5fd3622176189ebf8a745a27d1b9a60e4e97d008d19990fbf2feffff4f57b3b9bb85e1981f1bac2c678aa859079c5a626038436660aecbd157850cfdba3bdb51c30ad7a5d09113091d4fcff03f45f76c2fda32e2f8ffff7f24586add5f35ed5a95e55f8cf0c674779f327b8b3bf0e0cb1e6581c475d0229cad707d4f82dc7f33ba955060516e6f76eeeeeeee4692c21a90a61a465ce4dc6c9eda40867d34423a91924505621b76cbdcec33a929e35999e4d0303d9986fd8617f45552d305842cf22912d200250033cd7761f8e3fc021d49aebc3aa9ea72f84a15aea48cd2c80ec865716b967ed10fc0ffbf2f3aaf567ac9f9df1715fa339b9426329412676d1ab4bd7d9549d124a11e405028d458b02eb0517c248ca8fec8d1f16d655e601c6f7d2d8d5935993f448f2a17d8160990b92677256803a60a12c9e09fea0809f498eeee6e2891397717a1161571ac35b6f57ca9328106035473c2591549d4ecb82a404068475285cfe7ee6e656c85eb6b446276079e750360eeeeeeb6bbbb5feb7d671886611886e1242b5c6b9642474ecf11a25b1f349d3c6021735c4b3171435fc766b6664a4e8a986286eea6ccdea2c08026c0bdc2014d67293ed647e3d3febf7c98c81a37555645ad25595f0d3952b95dc44c32345c1c64b7ace1509fb74e14eaecd38a0a77f7f5197dceee53a9cfecc10c845e0e455d4bd59138a89b94c34f0acf94165c98c71e8a8f4e89a2bac5a314db4831720206ea869366e79ee874e0c1d7084fab03d8832fdb01ab6aa541080a64ade1c07dd0f0fbffeb939315aed0a8744afd0c3c55ff3f0872cb25bfb233ab68a8ca8bdf889eb98319fc0680432453333b80c60bb7ddfeff9b1cb1c2d5a94330796afc2fe77ff9ffff951b674582fa5a106b93ed622b01767777b795516eeeee7e5a5131dc919a0930412c2102751075b0002ae6446447a7866c72020127b1c03e2fac231195d61ada5a8f4c1a89299229c74f684abbbbdba2bb9df5baa71f0cc3300cc3644d56b83aa151e9b40432aa7fe0eeee17b44affff41d256b8beffff8fa1c5f8ffffb7c742327a87e282bbf24bf6a0bbc2dcddddd1b79aaca26553d1970078f03640b88d85bcb94bbf577b7aaa51e2ba4a5241ca889492bd15b4baa61b53008ab5417777778b208204c6f105bc2462b8bbbb6ff869dbb25f05ec6df7cb68b382aeeb8299b1c2954d0e36010c2f6866e2fac94a8207a3bbff6012e0a4f0fb3e5d0d151d0f06eeee4ea5568d335c0e8b2ab1e44b961522e525c4871427c36e8961124dab94c64c5ca518655bc5d85ce0eeee7d056394b1fe4688717777a001b2bc21e0c1d7d9a8d9b1f2d484ced4f5e643c4e5c1866745053573c75522cc4dfae085fffb5f171556b8266b9642471a5c9cfa03f8ad401a88d45897dd528d06245f254c4b3e1fe8905e54e297988bf8bbfb020cc30590314c5d623e2d340948498e108d48617bba47337719dd5d11d325b1853b046677777771b6c2f56d4b5aa8894c86054ce82ce99d8c81417f216696826272e25a8c3c48c2b3db400a04fe2ac55494babb3b864f3ab6c2f57577372b00d3c304287477f70f030b86611886612a242b5c95373ecca6d3375041dd8dadd5079cb8925e928a94d2dc0dba9ba6173cb41a77c42ac37007df163177504368ee258c17feb7df8baf222b5c495492354ba116e1eba8bbabcdf86ea99522200a9fbb7b4bb315aeef4a56c5d58a18b0ac331045fdc7ca316ae3588bd588630ed482beb842ec8d3d0d5fa869ade807aa0488cbbc72a5961a2332eb4e61767777e411de8044caee2ddcffbfd14d2b5cffffdf0228b4924005757777777777a7cecdecaef71778f085796b37b441b74e7434bf40cc4ed40c10a503e2645665b129223bc6642edd6e53ef584338313d4173b61d0bb7bb2b60b8bbbb7f5df103b61cbb1ba8fc785fb8edf6ff7fcf8915aecf06616f4be34459c1ab2adca42c665100db58d9ffffffa75ef8fdf7bf6e58e1eac36c3aa1d1dff025fdcf91dbeeeeb665ce806d1cafc11ec7ffeff21757772bb1131fbcf07fbfdc7164852b5279e3c3ec8e262b5cfb83eeeefe8cefeeb7c4ffffff3f0973ddff0ffceab42fa8e6da2a48565f358b2325035fb335e6eeeeeeeef56a433a7737bbbbdbc2058600800d91e581c2c2ffffff930539ff2fe9a1103d98d0c2330edf4a2424ae09cc2ecb257ad991913054f8e03be482e222ef02b94fbabb4b408313e5c256c4f1d682ab332fe7d30c18d415fabdef8784458634bb5c8e07edeeeeee7a4956b8d62c85e00d7a4730ec3ed599dd9528c8747777c6dcdddd73dddd1d038b521e7c59b22ce2d1ec1a6ddbddad5cb2c255e804e5910fddb7ccea413a19da7d2514a7ee55c66371f81efcb9bb836b13e0158146a5536a09224e56b862c033b45520c4df47534629c168648b8ad533b8eab9067b1c77b7876d209970ceadad2955a85342682251b01d20376eae48dcabe279b5ad505c4e4b628c1d4e07f7876e07fa218040ba3b81aa6fa6c59224c624e60337f434a2a3a49209122c9f1c9786e862d0838481433a92f8f8000c730a259e0041717b6afa79733416db360379469e1e963ca13ca11107aca56d44148ccbf3f4a07b9f29393ef2579f45643f5fc24c8c6f4b30c5240a2320c98c4c236f215a10e044028588f6b03981cd5960c498c134dd249924ab55d490db535055d8dd5707898ba90e338ca24e45eb638a15a5882f1e8a868fd421e94c3a8670dd78712c55a818b9d0c1c4254deda7aca31882150f45a3070d5c8e1b25aa51b820c35feb5a05c510c74b4d14b9af9ee71dd9f089281c297b33c710b76b487e9266c86dd26e18b961a7464d52f49e4179f00563b3ebee9622319bbbdf373a11fb0c902abd8f1caa12cdb08d1c40264634af605c2e6710882b7512fd952a6d8a81c5b66587e1bcb7111167d118ac8fe17f20317da0e87ec248a4c92cfbffff35ed11bea872ec664c39952e9381749d535bffdf36d7308046421f5dc50e357a1c74b8a876266f1e94d12d18e7f5669d6ed5c7b1e20be4c3d9b679d03864e498a2622cc087230a200e3ce87677af59b2c255e83d929d344ea879063d7077975be5ff7f4ab415ae2f500579c1fe1270d30ad757460413cbc6d0f188c92139d2c2c23376c346a6055541b2c8e0eef361852bb3e984c219304633788bb4d16240631702e3ffffe5ff7f642b5cdf7fe0d50791d835dcee1713bbbbbb1f6178ee6e76bf58abea9c0ecc703f2ab829bbbb495899c230d0dddd7fdfee84b633da4e693ba7eda4b6b3da52c49632767fb5ffff5fd1f6363eafcff7ffefc66c85eb9b86414bf664218ed7608fe37f6ff9b75bb85d43e0b1c2b518c20d89c6afc0ee76bdaea2a39024bcb8add5f9e551a59ac2b120b33658b154d5d1b9a190b56d782076a05e448c5cac2a9231b2ff7f0d1b3eddaf16fbc6b14b55e77cffff1ff81e7c457c66f74595805ef8f06fd5b80562c0da8031b169fcdb2ddcbabb5397ac7015824da01e69b8bbbb73f85e3a8497ee57feffff0ebe2e9442b28983eeee3292b93bba82b9ba69d20b06ed6a96891b038bebe0e1cabdfaf05a95dd59c471777b77773785b9bbbbbbbb5bc6f86900c1343a832ffcaebb3191c80a57e32b9b40d408b6d1dd7bcfffffe71d59e18a04214f0964ffffffe5ce79a0dcca2cfbff0fb36485eb093042af9c213b50eee45a81b19fab1aa715ded0b394327056284b5a2e5647bb3fd9c808fa22d0f126e475e594f21a3e1d908ecbd6f2035a4b1555a6725dfc43a9463f1866bd959a31736a42468484503c22909a62a0324f2a96a2a7429ac90012a5ac709d8640a46a7c7b92743f9b8a7f45efffffffbf40d70576b7447779f3eeee762aac704dd62c858e1a043ba76ef8edeeeeffffffee7e4b045dd7954eac707d6ec11b946141f776d560b987816576307f07ffff2b158e72fee0ca7c3bf6ffffc7d080aea2a91326327459c3efd25a217299f1ca73a980842e809a38f84fc3f8a702aab64018a207df16e788ee97e185dfddbbbb9fa4ac709d524778aa124780323ad32c7cca39b44106efee5663b2c2b5e984464b5093b6ffffefcf08503d002337b242e7c20462e827dc984a2668523ee2dca916fa33254077b7094930ecdd1ea6c0d5ad232c19470614850efd298e4c048d8e6b0765e8aed4ec58734e01b4eeee8ee1c7021cc7eb5455facb807f202b047ca250caa096dc58863ec203db9dd859d7ded09d3e0b2194ad46dbfeffc73d59e1ba65425c981eb01a47053ac9edff53d1e67f992a05feffbf87fdffffffff5ba11ce77f39a3d09bc81b1b14879daa9d0e437622ea90a29268168a1d18312419154bbfd50ecdc383541b901bce1a25fd00796a5a09c940c100c11c5b1547171764ce649e88a6a8388a583c8ed1b994a8e1bb4ff35355c05c90df290c138ca440677d9a18656b9bd298a207b5f1e0e120938298444b69f670b94efd513dc160e1466c31406e407c4098eefa95119491a8a4eb9e679103308c06e319041c410451208cf33866331480091de4a0d48038240f458361401c0c85c1e0200cc0000000103410c620204ac288271b0c2a6091623d3154367b3aba301344aca8236a41a15445378c1470b81c8e93af3fae92681e5144bc243213963742645c6bbabda364d1ead778b498e665242471fdf943e37a6077220fc1f861fef4550b479421825b2858eec2361142e9f024d78961bc0c68a21df9c3cbe5dae091e19aa4d4727daad6bb0b054762c88cb95aef0faab4282ddccbb760149ac9e58a85a7e674b8082cd4555fa182120238904b9de67b7ba94be3772707e80faca902afc8d7ff480927ddd98d2a44e6dec242a89a235291ab956730bec7de25c20e505a07eac8f63a38eb4e7d8d621c524269907a15b35e1411aff87c6e4e3c3e79518a7ce24019a21e36748a35b62580ba296543eaf0d8f7df7d67a61b307c2d9d562b184db844c189b3775160ac7d367162f796894d462dff8cafea20cc7db33a94ea4e7f9f4dff71879df77c52264c9b869ddaaa660a2ae3d55f26dfbe4613e6fb824e1c1425e34bb101f72b8c248e45693bf59e1b81de01f6b584537d2671f4a22529eb1716f8084dcaf62141db5d09a420fe63f27e0650d92ea0b071f53fbd7e7dcbc8aadc483c0ec0b9420e9d5c7f15260a74f80f51bf61b241bda36a85496fb819b00d050cf811b528d017a21e4bf8cb44b7801ac47e2eba5fc4f9239cfe51720204c5e7de1742a1cd62aeb91901b003248a81c3ae11234045f8e0d9b6597a59ad26f990b3b9dc30a885e74d7f19b238809eb71682a386e82da9836c61b56c370844d4bc0d1eb462cc9aa304a6fe08e5e7a9810adee501a1e25088a7063b32662e69ddfea90f7ba1f78471290f82ec0d5e72b45745704bc213799b47821c3631eec5c548c913faa42753442e67a1363be75afceccd3ec34a141028503e91ba6360368096788c64ca57a26c98602dafd3e4f258286b60125065bdbe03b6dde6f875108653c6c418fd3fb950a45b125e4f103baad2452c9af0089d467ff14886c6b911bcd3287f939209535237068370dfd3ee2effbcf9f2a7dd585fc984618828374cc2898664adaa2f4a3fe54faaf35a36b8315987e1353b72bc1726578d55e0a9122b2efb9f6f20c6c6f687cc0086e4bead3b1d7ad8c74cb9b7faeb02e2500ad9cca0aa2f8464c8b574a0961ba7ccd91415d390c96f434be0f6c5551e154f7739088392bbb2004c0931db37836fdcb7c33c6cb55a3c1faa45bb13ef5d855bec0fa85e3b1ba57032990c401077c6d61d51418e6181882e2fdcd5abf390505715950aec80f89529d631dcd8a9d5b0a3f52fb147c2645729bead46b5c284c468e378709cefa02fce6690ee8ab4f7ac68ac9ed815e2f44628c4d6b99e9694d609bb4b318b15655cb9295ec5b4761251cf77c66a2276fe810ae4ac2cb28812f9b51e3484d67686d5800c72656893f0e2defce295a619fc6c336444f9131e8f2ea31a7c0998c3aa1d6101eb45e2a16699389e0d6a40f298b18d0248f0dc4d8e9b38f5475298602bc9db4616c4f13db858bff46943fe5084230407f57d041728d54d7e6807c987a653f17d55f2d26f2844cbf8a763ace609f3b45f5bdf8a0b8cf908c80a314ae90b4170ab2017aac46dff81c5a7c091d455076a2e02b20fba240b4f81104d3ec91bdd85216878dfbdab8de20661ac58fea3c07f57a79218e2eaf8b5cf1b3ff716872860cf67920c14e1dba7bb531a8caed2dbe47b3493f4eea4d6499157d27e6b1cddef1a2708a3a0402c5a1d4281548903d28953fe70f76ac005c6d30b5c502d0e03243d7ae895d51ee4c90b0f72aced5816054029856ecc2a8e2a7d42916338cd4c5348e488d1966c01a5ba4e1cb2976cda7698f5dded13a6a9e5e4cff5124622e78808a24de88e82f62ac59701d45c1153b4cb12addcd844d8fe10520e73185102efb820fce556b36afc54842fe6510bf988e18649a43fe5746b3c997bd7071f4362890c77d6038f5c718756d168ea5e024d47c1a7a28af9658c29310e43bdbf8e66ad1b7bd41d80085aef1f42858ab5642af396f324ea718c697f6f1d2b835aed4ff507518f3901a252bf785cba36f208daaae12d77b42b78cfc387519e1051ca2096d425b4e7873fdba54c7d0fb02ae140f5916081235c27f91ac530c6bb734aa0a71529810e9ea58cfb14fd901228e3a5235f214f9eec54108331b809e933502b9744be949123bb686ab337bccb374efbbef2bfd52d488ec3a46246dc8b2d7fd98a74c7315f3573f7b87f20c2b07940464ef4748fbec3f33e759e9e4e40a44500b33cf14f70a3eaa7932a29d38016062105bfbb83eb2751f1ceed630b21a5a8e179ef9e6bf45ab1ffcf9881527ecef4a0aa1c6ed047c4d67fc027b78cf0298d9706a18b2e228723d749fb1319732d4574961417420b1a9569e39bb9df4e8f77ea3fac2422420a69e4052eb78d95dfb003572b59f8211811c52dc61818e79259694d9dcd4e1994f62c3d007426e4750b3f1f5be6bcca2ba6cb1794dab9728ef5490b4d8f08a5a704df6709cc32559d85a931bd095950db21846b9fa2ce7615c0f9d9e2e0f8a87aee25a9abe76545d205b0b6e53bb66b24c8652712391bb4a0a81673e6c90c1e8c6a82ff4033b9e4dc470ea322fe84bd0b5b25f48632c82e045f72d30721a3661d76884be0b2275f341a5c5e412d8676c969ec503869eca056f8e02e59100b05a990f18198e5a85b180027066c0209f950726c0859260258196a76114cbe0c0da13ab9c6e7a72b3d805f6a1d065150290c5686ef721895421a45613216cf35ffdc798292653bea241190a46de6d35ebe571d795eed4e0292978ca4e192e5818a3eb58eda75a8da750c186a59c9895dd09711f3a9e6c4e8e75b65b407e908923b6b5bb463984df9cdf659b912a2155225d0a168313a4749916c631304a49697c3f45478be16531d3f326c9f45f7e5db303d7fa2348cd0d422068a56c65d80c5fbb35c246f51dbfafb73b1a38c4301a3497fab8ba145ead11bb202c261837afacf951f055e0371af5c408f6e69d023a8b9f3ad3c4f6a291089251c260f0e651e84e7ddd30963545f528297ab640e49dda7f41fad8d426ae00aa9b13f823e4a380ada05faed860a1b5a54083801d1eddac2e1ab7695d0f2c48110d5ae9c113dc4e6942fa60ae4e936f6554f1b872b70fc65eb0f8b0d04b56e4da9b841b5c29c569a83a6d3520d1747bc531d7d5ad4c87411234ad8971a04c8a347d0e2ebee0841b7b3ee421e09b8e3d285bd320b2b49d6844d7edd5a163c9fb2061d254cd8f133d31d7ec36ae861b764598426ebce468aa26c946a79d320de40f379d08d40720b7f30891f278083ea3064a20a436960807b66c025236c5d78a9936a0376f5fd59651c35fde0686334017aa3c28ddd954f754f4b021b4ab3fe1b0561c2e8fdeb715699fe8f96faa9404925395e3bc2edffacfc11434ad3830f5f35e4f5512cf81c2c0d1b68059537f17c3cad402e3e597dd41748d7bb04168b3291025d0a9a7af1f254c960160090c354e2888a62245ff9afec8431872e6537d0c0297039611aad006798cb60600f0e782c68533900e7055f2feade317c087e639f705bff3703a730133165e671207d99ac172813dce56df47c1c888275289c991d057a3010ae5f9a4d301629d747ce11ad334b43c911873b5d474a70ca8471d5b5a8e97237893dc25aaabba56b3795ce38cf5d8c741136e5fec414183259c0607a40438923556aa06271e7f5de7999d059a169ef925fea4659b411a33efbb6e07bb501b682b2483d967e1496866f928d34e0e6654136bc792d80dc178d897108f39abad85f9d535a53fed72c254ffb1e409b81d428a6a571775e822413f53c203ae853a58af2019a4725b30602f9d3c190c0b51b2ef074ded12cffd846fff28fe713156d31b99e503ba2c8becf38850c29512f7a1a7d3e589016e7c7673b0b6f75628888eb247a5b739d6aece3791e38cd1080933976df6648a89ed40a76536b97a3926e3a6aedb182761e94c225d651d841e6777f81ed6eaca3245267d15b10cbb019afcf7719e76ceae63aba902b674ea183bd21de02b42e71d06f03e9f1c850427a440161cf9db18785bc3c089c9725b2af0fa19e024f166422859dba5fd39945d2851ad603b58ccd52e9a7ccb1369bea9aee8cfe746e954af39ddff14a8ea2a025f56651c0a467e687c32a9e680488142cb0ba923a71bd776c94eaddcf0af38f8c4eff0f8a1e6c3fd97f42a1412304a7cdca47f59edb73d0762d51f81198b6e65b172ff19fc3087d97fd513e91e54f4f9869d97f4c31404d3245a6428e6df195420326d5b69c31ae8f0cc36fd18ec004e60fcee4e7505041f7230be246a29a7b5ee27c1ee990c0d87bba1626ac558a746f2bf9b943b42abcf42f091fcd41986cb7f4ca7040dbbf87682b83522b01ff784b7a2c4d95913a9eafa668a00ce862341a52598b3427d9a2d40dc103704ba451a7a527f1bb5529e519aac71e6817210a96e6a0dbdf42ebbbdac8562c21f48c95ed7b2e9f0a4fa267526375ed011cc281d30a08965b259c6782abb470dc484efc21c8daa113f05e035b3c28e72ba27c3bbdedc63e1d92bd4e05b05ed0686dda861ef6fe04da6d45b966cc9fc9b499b1bb40ab7be74fe076c0fec9f572e0c3dd5f2c7836e7a211393ea4c59dc8a96811f7cada519e89cd4f1ef37efbf4b0d9a023701662ec39963a8289f329f1cfc218683c9bf78a64b9f00127a10692343f46dcf2359101e5c1ea554e7566007d8e7ab03400eae30db8f9d13288aa886287758b2bd16902fa15eac7602c3a353d5b60406301cdfcb0cc8109ea6bc97ec7140b175beeb1eea40a6a1d58aee51b73aa89e48492d747edde7e975b264bf5dcd06dc9f93dfc79af333c0726435423d0d67559c703a7ea72127ebeeaa603571ef1f69d4fbf8781b646b2be1f66fb232867269254a6f41a94650eedb9f2996777694311ca4b4b3f8f6e5ad0236a4bb2e4d0503745d90de35eca87fead6023780de47b0b6d840933197b3167cc1f10ed140086b0c6d2c1cab6251cdd14619704dae9c7a7681b2bd4e13e99f4e2a23105016aad95dc1d3de6b69c844268fc8e58333d9cad313e8a7c9f0d2fed3397f43c0ff083f208c009a35fb1872075cc540f0178034f37a7cf48fc40f68396746219a4ba03b14895c3754cc3126fae1e9a0acec887262ec6a90d73c6f282fe3636f55a4c08f641bf4209950ec0b147176df56be9224e494b2575aaba38e859c632c3bcf4f16831e1022ff45806eaf012c91bd0c0252e9d92af32fd99da3d7ef23ce9ffb6422a7d0d242d45b0985cf02b42911efe8aa6f0e518ed3882a279a5eb87c672d62e2548fe8462a6347b4bc84d34b9ceac832c590e6b9bfeac14cda0f91b5e322b90502329c1c8d812b2be10c0e2fc1c59b83d1ad8c4da3396a4d411d3d3a3f1aee8bb7c59a5388b5bc5501b47d05f5e814a78b03261720f28324d1b1a3e86971fd7311dd36fcc95b1cca3096941fc3e19ab2f6165dac167f83c6a286462fec4c5106e66ee10d0a66460e9d688ae2e047c11b2e53ec4f1194261860b93ba411592db3a4448b7cd053c3354603df3dfa22d660957d16d3e42fc97d71a0b69a27b64ad0557ff39bfa314541bcaa964a67bfae439448af86a2504dcc1e5941ec4e0db4ff54fa59036b96cc9bcb7ae37622005c8cd1587a7e76ae2839bce27b09606d0205b598f7dba94989870a5e09de038a5e4e00f81b2ec7b091e9d55db25623434e54dda8a8f86137d365b05d65e361fa4acfc293873c746059c2ecced6a1f3375b3a73e2ecc05d4652277db84543346a3188a03972d0eb4bcdeb2a17a30b1459d0c906b9925c50b4f5b6dff4def6ee381a9c0e996395df501c0b28b13c81f62cb94334c4d8c8a1019751d5d884e9d2e6474d081821c9010e9e90ff57e3f5f75545b7364a583a828499f3720e623564b9f641f8657051a6c7222213f9d3e25b481178717036f4d3df368f3f44f49c5402bc353fc1c8f19da9fbf31cfab2a0f060bc72e8536e591ede4533db64a62aef67cd3d22d702b81582992bb79ad70b6d46d357e2a5029da9723b7baea194bc552f5dceaad3f2d39798622a19c0de3bc83dd5847da93d25e54ecd8f534204497268eecda1c12ef22ac20f69853970a722ba4d0c51054b07a5fd3af16465e0fea2d861a8132864ee7149cbfdb9450626deb4b2a9214ea37fdfa2e283f81b033d5200d10dfc7d6fb89afbd25bb89834f54d6457b520124ef92870cb47905141c30a906720495b52c6a11a1e24c65693051b1c0df96748641e4531d44b0ad7ecef97a693a54f93ba6667f155c24c82be915fb11adefc1111adf4a31004f22c717c2489380083ea1ace2a9431d7f39a450289bc826bb277d79a4fc15ee879a3696c88e1a070b34901ca6a465e1cb08085ea6e9e1fa869268337f18be81313fb8f3cb38e13df390f1bb0ec60c1d4755ba302eea7117f4d403e386e6dc575eb3db2049a0f0c5cff813b040654dfd48e0169f916385a5f72e746027a5420011aeeae7bc1379dc4c66fc13350cbaac9b0e8cf9e44a767a9386d82adc6da53fdf1024932f49c922b922e49388493ce677f9d77f458111563dad1c32c3461b1f4eda28457d46f38c68a182e30f6a79c957a169fd3da60559263c11b9f0bf7ed64bc128077c752e74cbaf8e995420f9225936ea2745b9149fe4975b0c212a6f905663bbd2981b58b9999b57a47aed4e074e58165a7bd5cbbe1e6b37433b5a8cfd73b015fa2b66c526b2494c76438b462252ec40c364a9c8e2894b69edb799e393894dc6f60bce2c55a89b17790ccf5ee5948df654c2868b3b167409d99c296985a3cb8b9f7f6b7385950d56b6d89a217a80a1c460fcd867827b98ffdf2a0817e49f1d51a289fcd0a532bf310f5fda41212b85c64af7d7d312d357afcc83a2a7687bbbdf865d98e72e0c3ef1e6ea67067c638e5dbff138d54cddc3db0605e577c9a852daac9929a904075137ea3c80e9581160b085df2f484c9f5da8a927355c052f0bc4e682539e44b76b0b8707f655c28005deea8226a1a3f753fd653b9080140219d1950605bd2190450433097113fa7df77b5004c561c9408ddd6bde44c94b5e24275bf0884538a22c651fae3c3c1f87203db9ef5f97e5eeb7214538b8722995d44826501961b0c736f9a770aa5ab14b71d1b0c744b7e85a36990fb73872e80b29e7bbedd8b5a9033d742d7bd3cb9069db30c795d6bda2061b3ef72cd6f6c361e5ba24bbaba56bb3c365553abb96988ce02ea804ac7f35fe193058cc942c60819a012f85bb5a884c8cae1fce1676e7e415178312ac591850140c60bdbc9c48ce6d257c2414000437370e507e55a509454c95d82ae73e21a6c9721204f67294bb0add66a7e713e3348a15e62f46a8ee18c6dd01ea9618d881d0f7d6c18871fdae321239b37cb1e8fdb3576dac34a7f63a6b043507de920bd27c8308a3289e5a3b1269c3dbec9defd69e1cce41836c446455dcc3312072182fa13e1bbed1232027b1c2dde481fc4488a612031033da885126ae66c8fc073c1bfc15a66c70400dc2dffe0c67b82a68ab4e0131a3b6c7e08eb778406750869d90d15a3ea4d4d6449b175f50f95fd21b62c37e122b1f014349bf7962201da10a9a96400c837ec6409e62e967993426a2303ad446b08684b04669c998ae4b89f5d63aaed92af5370792ff0af05cffb87b90dcf27d175518d53d25b8bf385066ceb425ddedb9343515c9525b2d70f4261dac2fc261982d5c4526f26d28c4cfdd87c6aa513624a5058857e1a7763dbb4035f1266fc64225c7fc3514a50ba2d3695a1d9a2f10138b51a25595a3b68f955d5f56e00f23c21eb21c03a613a9e3f73b923444415a4345f18c988295b8a25ce82c3d4483495b368a4720de68104bda98264e2c89254abdf68944f73b85e071462acd0c3da735634ebab3fb53654c9918c2cf19a9b2b405e23aeb652a546bbd204c964be1e6260edd1029eba8d52cba9c35c1978b02285b1319e05509f55c88ea8d18bd2441002bcdb87cfad7f443cf62060f491c32940336e80063c9c16cfb314dfd175732ec130e2a867160bf8fa22619e7e1a92773f2294b545551f07a5fbeac00bb3f822803a321eb0d01538a41f7838aeda5a6489b49fa205c809a3edec3678510afaee411dea346397b5244252ae2281687729eff2600c863cfe31fbf4f87a6b922ac1bdde489597241aee9eecd4b41a195e5e9bc93c88ce5954c89c976e4946a2705128ac611ac7c30f3fc9e51af95123c272ef2ad253523f32f697a82ca5f274485289df56fe41d968dd04f36c828930159c6c5494da7e41c57ca23c8137899042bc989e46c42d1756dae2df420792220db05e1f77d6ea1699d41a0cd4a6a1fce63504e9977322a564b9740d47c7df94bd40a135c191494188876327fbf123b735d2f388a50dbcf9c05b4c381f1ce73f294d9b0a3b49772c75178db4b65654be0129b0ff8adc4d96f5484756291f3ac3002729b884b89eb87cae7eb7c22afda3cd60d42d40dd68dec25cf433aa6f37979a769bb30317cc8b2512f450c1de99422eea0191577007841e06b317e3dc4922c0fb8782b71b46a042833b3d8d3d16770239f4cacfb716cbc631175500ee4eaa9b0232062dc54c36bdb66f62c14910c39d53092461714f04d36bbdde2229a07c390bc89589c52aa07ff699429b2d74225fcd205464f6bd7d09ef5a0d88ea61d1b6f4332a6aa53afb370ed8486984ca6666050722a73e392a29d1b2f118237ee172a3931166d0b8d5302d3583605b3ab28943d6ad31d4e09f8a4993b79b4c799217f4776c9e578ee64c7d44e9f3b0badc4c9d064d434d690f35b70e39f16fbbcd487be0926449c9b27a882b4cf3794e471f48d1204ea33fb43ae3226452e7fe78e90d5a222890a4ae50fdfb1c866861c98887e547def2759bfd545a7129e2eefb30b4088d071d0e8fe5d64011c5522e1d504e6688499a8d705e20820444f8108859068f883236206e1b08cc54f52089f24a21ac6471c904f6c79a40293b726e87291030c250c0c568db2a924892f803aa7b7a39be6a9a63d2e98c616a495f79e8a6a77b81dd08898cfe2b7e3bbc1a0a544a299928a6d939b3465e8bc16c664e5125ec49b805ad676ba00310c65191629ef32399273bf0bb10d51e293b71198002b0372e24e3576b7d0b52141417391327d02f7c15c66b1713ad8ae4b4f89f84b054339e2ce623607c027424ac08de1da23a328f0c9d3167894914dc89bfc527459db063119d5187fda704e23dd11694c3e98a4d6458e5d9b9a35a4d2a8d64417c1970825a7523330bac2518e0a5f42bf7286e33e32af53325f9eb7194da61131e7dcae9b24ae271342700cd6e5265e33e39258ddb4298aaae46227b6a3fe1f39b8a26bd2f3f2014e93138da66a2adecbab5412a1315d8176a96e5c61ab1b1ed2523a992e18edabf0110bf8621886f9c1809bdda7b0fcbbb1b6ed380031a88ca28f9db1060bcc5e986dd5f89fc27e6545633f60ee7b2baca2b901ecd36186ab015996863a0f1445f431b53f03e7f202ddb0a83b8482bb66bf6f494c0511c42ddb0a2aaa2ef3f717df062e4e4ffb07b1a56872a7aa4a7da7c88dc27c1bcb029717663e677258a50196a4c77c36a90bbf98d9f9fbfc04aff42619dbd5ab129fd6aea2cc010e5c599e9081a53e4c4092aae89cfa32ee50abecd0f4b6ccc580c6431a04b22e95adecd08d57c0aee69cc8725be6a8b1d8255d0aae99e385c6cd0d402fcaa383f220407c03ccc516b8c36703da487aa910e13df78f403efec6475ad4d0f8574cee69adcd2eb0d6212f719b28f5f1abba4a989b2a76ee85984d169d63efea610710e986e49128f6dcfb5a87319e0a597b2e8efcf85fb999f6804e1e9fcca61a82d1c0d8b18ccd74bc9b3937074873005a7ad183bdc789546f566eeb21d8f4281fa51fccd49ba5efddd5d5c80bbd2a6e71c97c67bfabff977316293365196a7933620c5fbaa9d8c92e75370b73e7c0b1e205f3d772e9ce24764b911d96e07f2e1b52a66522ab450255acadf4c58a33cc79fdc2756b72e9d86f9cfd9038310728f8532f440245253600be82e69f99b9feb748b4222ab104a8489ea62976bca5962c66f42c94577d855521181e7dba5d808f15e2bd2badbacd3be22ab9a0615af828e68f0500d3c1d48d8cda12785888e427b12f4d645a22c9b7b9cc214d4c630bde0fe6552d41ec24c704e124c228ecce0e811e9837c18d750318d7e0a6acebaed4824fcf40e8d8b22a413313fcd3ecb2fc7f71ceb4c662c9786120e884e8da62f099e5f09527b3077928dc320cafa7974ee75870a66f284f62ffee6eb90ec148346b13499d2edb100c734b5daefc592577d339ff22dc0abc189269010b0ed89a13f4e6cd89846554b9a83160a986108a7157886270a17379e49e6099d98a6570c5f7727c98f94225cbb54be16abdf28765b4ff2fc7b61d09b8a24649c222c13504022cd68c8cd4c6ac0babafe94e22659055561e25fe046688c44c49381ef7e84729fa3a4d56e263d9624a64ff12a144da355901961369cf334036ac475a9a6e372ac2599574bcef8b57c977a641577c1a8bdd7bc1db202b9b6b1c6f94f2006f6550b7a3fd8b6b8d0f0196934ca2b68cfcaaee1a7958cf1d0dec99ea84ac09a9fe8459e03b7e1e10faf3a9e8bbf31a53bd604300851b0e76b14ea850db3552922d03ad58ab3de3683d6304f806f7ddbb441003095888f608bd6be67ea36402ef21eca3e1d3beb556ddee592c5c65e11d6411a0a8f52200ba16ae2be170c1c69b21fa193c61e9ec2408e0f77cb6c196824e57c52aa7d7f35f67bb12444aed926fe525dc490611c19c107ed1d250c0152530eaf2e1cc687b34ab6bf32e5b7ad183769a4cbbc1b2d911e0482d4c41e5732bf33024ba305dab8531b2ec043baddbdb85b86e735b989eb2f9dc9c272691c164939c2813be89d46532e2e918a454c06a6ad3ae5a33141a94414822881c15dfc8a9e5731361d88d0cc6b0bd8de1fae0ecc7476382e1bf4b2fd97a219c44b0f63023f5988f7e119db1723646d7960c09aa5f864c76d5ea23185feeca0a3a32db45bc8275bd89d546f582f0d0fd63f243cf6c3656501fdadecfcbe744011c846c064ad159e6908e30ca3c5f69e46d3831ac544fc99740f6e6871e28e948561cc4b6389c824d980503c6894d79bbcd30dae19eeb526c63dff2a0477afb7145bc954fdddee9d6b8e295c7446739fac9592e249801d91a3455b87b779123041859fd8c12401b7655301845a0a36baf8a9e02d26006a1af0ec6d325749a26212eccc56c01e8c13029a4d3e0e7860bdb0d36dc530e4a5aebe6aed613588fd1043fdf0f7b6164653811f5c662859c0643d26735fe9b78854fb8eb5994f2940bf99f6c6b49e8504203ba5c55ae00683b8ac8a1734d4d06c060610d5ac3d08d4e6d95d09a598434b5e8f49af2a08f5c1d95cab91a090ad2894c0ed4d8368cbe25789bd6f8274aff71bfe37a58f21c976ab0e23f9d13a62554f7a1cea03727038f71c3ae5e24bf767d8164b164d7057304d78bd016fc678aba62e8068a7524d5fdc759943ff121e249c41d3124584fd1d204a8c13bd0f57e3e482bc24e31bc6478960a595f6508637e7c2e75166fca4a1d85b2c327ae8e9fd09f1ac92f533b7469904a16b8fa3734b335a2d8ffafd2ed6c42df63bb65bdc427cbedc88cce7b4855ae61f6d722c3432aaf9b545a7d56a6ed7a9688d374986a849f8db396ddb8ff275e4e5ddc92824bb02808edeba9472153a64abe79670fa51cf6acf14c7fe668180d30c9be3635f55ddb154daef9f490d1899baf9a96e8f1cf0c9474b5298ba7222e357d2ad9b46f44451e6d8d493d775df3f92508ec0805a59b802fe271bb645fb8a1b946dea32d7479a1f24a9c74221915b4789bb306200e0b1574799d6bdc7c7e8987bf52b008a7c673878a40e030b072cdaa914f3e67c19d0a14594ed74317197292a50781a20498bc0587d0fc296092c43a252caee4bb5445c96983601d17a028396ae82c039be989170f36a237844ee157a15c005e6fdd3b29c2091311f6c3d45395af80a9f7d85895a44d3e07e2c8a45e4d1cbe3c573609fcaf888eb34d5755c2941251055f43e2d913f7b4bdff79bdd33860c85e6f4faca7142c2e10a53eb56228a226a163c93656769b923be98fb35b446e9512dc1552f0e85f15cb6a90a2843b348e3f31c1799794208e57e554f50db27c79f9feb1043aecc84b82dec24b1629bbcf4c199ca583c78e94d97a3e5f8e1d8143f9b18c20a498c35f1819c1d6d4e5d156e7d220056584901ac4d561b88cd047740c25707ee043461436bf71168455f17fc8059135f90ebea4a36d101dcb5e24e5288052c1c7e8d4cee0df6f91ef79bceb013742501bbb9071516813e9add722ae28a0959bccc30820b37061edfe8f9a3e2e15f1cb08b4a0210c53aeccdd53c64750006e183d67a400efea803d035d8e66413dab8b5a08dc6f4f94220401037110e83d86bd66533ba3f155e7aa2df91bcd6afc018e0c7a774787811cbf3554dc782daf7b93ffc0534b4abcb2c4dc9db525ada046d60f883c38a5bcf51beece96b028723a3692d56014b42748a8b2fd81e5efa7d25c1428205ee975fec2d06c73b24ed1e702ef6a7b3f42c48cabfaf897838632e1c0eb196bd91f3d02abe848110f693151537ddb5d49b938f9a6dc467ba4c9a1695751927b45226f6810d99d812bc80737b43a9d893068cfe3592330f0557087a9e608d41adbb9977ed615c4a84587fb7e597cf42247311146a411fac9bf4380fa383b4549483e005b3579dabb617709f25ad70b4f5cf419b60b9f075cd7b1fdadad7535e8a160a58452487a1f2cfcabc6eae864b0bd7f2cacb5c6bcc98927e16e0d4fa54b3b3258fa7f5ec5f579cf2b774cb66e804ebd2bb413360b36aeb58b990d2245be64614b534359ce2899b93e5524e7ee6b8dd1037e16fe03156c83165c9b1a456eac5df8d469db45fe148ce41fe522ca4aec3fff3dd25daf7cc419fa30fbdfd7099e30fe9c6b696865688708bdad839d7f9750cfff3949f8e1f83f6c6101daf0d83355700c2675ffbb28dade47ec0aadaaf3b0ba9fb7ebf121bb8fdbe3d97fe4ee5e6eca981f28c81cc371af5ce89ad035e5724347fa42c9b478989f3d58d1b2d105ab36e3873e1d8ff7c8c7ed14adbaf79632a52477931d4b033a031303ff7ecbaff2f35483418eaeea68177677d70a4a77a8d1d230aa98858116b2bb7dfdd6e1be4c78fd4a8a30c074771fa10494b305367e633a5c0c53acb9388f5089aa9e6598d15d06815da352d080665144334bec47b56a22dbb615f255f8b082a822e03abc74a42be73adc82a8c5a6dee8ee1611f66c71bbaeed5807ddbd597777f7114547779cd74a0a83c8569105982b9f27628b243c5c5ea8638228286448e6966dc83983aac36a8255d4b175d6f391bae271d295bc71b1e4c58ef55ee50cff8d3896184c4ac3024ccf181bb523232038643d3a4452109271bf5aacc61c3d0e65321a77f3133457277a2a39d8ebeeb6fa82e1757baebbbb53babb7b27cacdb9a19ce7045c0bcedfde3833a7748712b1f1765cc9c02ca96b691d4ecd685250e0ffffefc64c36291b4d7707c2736f51e04f0410e8dfca8705eef6ffffadfb765484a8cca854314516c90d33a328b5b1a21eeaa4e9ac8bcb08131862570986128a10f10853c808e98d007684a7c589143639aef286e6067a92cf4f6f9c25e179aac130c9b6ed0fa962726251b0accdcc6aca89ade64a6dd8a3088e0bb6826a8cc8643cc9f152369fac8db5f12cc9dd8b5941dd8028a8ae6b4a100779c10565e2041a2c985cc0a4b52c625c3133e426a972aa617b9424d0ddfd6244c4dfddaabbbb7737ae43bfbb77772391e90e55329d1f90681f8cd07887167777afb9efeedc86b1a0d49af3aec0b9ebfa2fc5c2044effbf6d9f6d46ca7f0a0f75e97323d2dd1de229d93d7cb75d10e222ea9569d590e1e2cb252c1a4019393d9014b574fb919b7487ea0083421c31ba38e9bea63e648bc0478fc9801f5c576b4d16d4c6f34117471749174b174d03926c156cb14892811486428c0fa0666851f974e1684afeffff72c098a13401c6448882b1215fd5101f8cdf917b74014506e760499012478a324164003578ae7240e19c20ba5d314eb02f7cac29d88f522e7839a03f7c2cc9e9321e754c11d5384659fab8718b324c0ec5983467ba0b40e9a11603858b2048546cad29a3c447a826789137b8c39204f0a1951724766448b20c53204d63aeae6430f9c2ffffcfda30ea666c3b339b339bff3fdba28419bb7b3b4051891901fa001d381ed811e25077b7092d5313ce17136834373ac0975e904fe0aec264ebe170196c3d1e2a0506b4f5022ac0a896401d6044a6358f3c5cc65b36f3e5334c151e499c2f932baa33cbea0d317b702589c1e2816a32c30845141e3ca7a0ca068bba0378fc7fcc44e6adfaffedbafeffbfa7de2eb5b4fdff2f2442c85b984f295ca5c051f52285cb177300952884635197cc47897d9817babbbb6c475d636fc09b8f92da678d1f8acf30c2934a1991eede7ed1c631894bb1bbbbbb14d2c9737fe22ce951a4648a8bcbc571b4a2a45230b163ca19d4d0dddd8d81051be3299bd194d42474777787b2a2aadddd6b20d656963977efa65a13cbfd2870e474443c321e1d71681594d4773561356f046714a94ab9329ad261f4f303ec42595e2b27e6d5dd9bb630a63bf498cc1e5a2c7515768e8048534a25508ed45e08c5a87c0079026ce1c09e5c8c1f65672b80a282365c7da5259f43a12377cc6152b4d70162d3ff7f27b23f38953721992438685d516aac9c65318cb464886e53cb02d91257ff7f1592b6697b44c0d10f4bd0dddd430c901214d6ffffffa9a721ef5f885516d38ba220405070f91e625f4e6a287f8cd2ae18102606e25cc03d676387d4971ec22a2261e90c26eeffff6fffff4f407b488271f7ab648395d8c51247e6ec026b770720c8895531e4488331e8eed703b3b7ae4ecca0dc7acf258185c6eceed6800986659b7daaade2fa5451b13d79a8d1a9c9eb469fddedddc6a7659ba28940eb6e9a1dbc6ef5ffff1bd85a7802e439e72c0694eed06092d0891842cc783bed5d09598631f0c2e73aacfacc2c9cb8519bfada91d1e3e5c8060aa718cd53d175a222811555bd64c0748706e51164462bd7dd4467fcffa91532dda14aa6d383151a8d07e34dfb4f7c92c92979004af9027d490b767777c6b9eeb4240b0500a900f8f0e888babbbb93ea0ec5cf62084baa3b14afeaea5e1442cd11194d58c8222e17bf1143caa8708213fc71c31e78ea69f9217544ac27e615158512f95a436b51540367e932ada07c2baafa4e3ae90e0586700aea99eeeeceed9420436f408a4396829890365cdc46149d2fae2648b26e93e2cc092f7777f7a625beeeee4a073ab8c91115f6952c22c4c587e8c0f0bdf88153024c46c350ce39e79cd58ae90ecd422a994e0dd4d0dc1d7d51fe2a3489c6ffea56d29670cb698bb865dc3a6e257f022f9856dda1fe7f39852fdda13fa06092d0e9250551457577777777a73263f2dcdd6a2d4a6e02a9143a0b17bda02e6f391fdd949cbf9b5448e196727c3e9110912d5972f12141967082e0189169181b0b9225203a5f5acfa50444164d72a69cd0005bb32231bc2892a998a924908a14748c38730e011a0d4990b86af90983cae306d9d216131223be28201716118ca9eaa651ddac4a1491a05560d870d2ffff7777e308e2757777f7029efb183f8c1d8798ee50e331b96c3a089ca783c8817167adbabb61f8d21dfa13010328af747777069ceb18a81189d0a8febfaf4da38675edeeee35e79c6d96e90e6d82b079c2f47c206e7e6c8a8ca925cda3b002927ab0a069ed0d67cfeeeeee3e7587e26f75f75e66ba439d78831d68b70d78d0ace89438f6ffffbbaf7890b119c8f1cb92bbbb13607bb2b074773f7968159120affbb9d5ce54c845e03afce36be609043fa20e28f419ba7bdddd87cf7487c2f43c30f994542e0d31dda11e688cf8d6a6efe282eb70ba028b4689053b7bc6b5b4c775b7e3f6ff7f23cf7487c2f47c3f0fd105e49ef1ffff57e8ee6e15bcc7aab7ea19b0f901f86492ffe9a2cd292ceec6f0ebee6e14446c429007920fd6cf67a20a811b594f644d9e00295db454e8ee4e78ee2a364c541ae1eece44255a8abbbbe39c0ee7bf7e332885e90e75226aa034ba2ee306feffbfbbbb9dc625e154e9e0eeee4e2399eed0256ede683c5760741920f55a3ac4fcac49a9af8002d4d4c743ab768e6c0fdb6c198eea0ec5ffefbe1e15bf18bddd7bb30e05fb6528eceeee5b77771380fa3d2bca39e79cb30f60ba43838c96865119f828b62baadaddadcc4a7728327f502a571a674a098955ad70d13fba3726dddd4e8c60d9d7b5bbdde6c3e8e3e823e9ac50b282cdd2834d33e335b4a725353e618d8dcb93f0398fd4ce8c08c5b8fc35e37d3be175c5c8c7d8e64f9bb33af79bafbb7b89a8748716b3429440fa88b5dddd3dcc74873a710fda8d66e54687818f4e4b87eeee5e6f0abcc65e295508e4fc8f4100302f2c1551a4c6625c9e6b4990d916d9d166ed3ef3ffffff9311d31d8a019911df72b7eb2c1620c652dda158bd2362962953397c02b65b189bb39a8a3003c306a959d54c3b8b0255a6e2e705d62694daa6008eb633245d4bb7bb7b7229dda1c3a82206c9ac16a5134e7965c1abc480355ecdb99b6b81978793eb7093df06a2a40c193c8987562515936e3d5b320af102559aedeefed044987377fbaaa6aa9a73775f66916c7377f7acd4c1ddd6044c776890d1d23083688aea705f1d0659b69b6d113ccfc650f2cddddd57a0ad37f5ffffdbfff7ff6f75f7babb4f29d31dca74be4ca1b9bb3b2e051e1a430c8f40f2bad6f8dcc5e8ede67c8c1b36b8bba352431fcfddc873f756844fcfdb6e1f1fafbbbdfdffbf0425f14d5b707b6f5b63e8468d928aaba8ab480214e00966397ecd9f120274775b211d79ddedaadadd8df3cc81c9e9e515fcdddfdd18dd51b239b3f8518ab1197bd2d4d29a898182050a263a4512cbd679cb794891ac9e3224cc2340d49fb0ac22c21537d69a6678c14ac34329e152107a3f74a870c680cac8c87ebd244f62ba7aa6a8c66a41e884f208e22c2169f67a4f2b8e4dbe13655d30d070a85a669822e5eeeefe53772876f76653986300a84febc99626a4ac18a5a2c7132e0f92415a3b3b9a1889d231ffffff5fe35377287e6cbb5a125b9cf362da9cd8a012d5884baffbffff2a39ddbd484ee90e251ab307a463cef751a39f02ff8fb39d35977ef3fe75cdffff6fc14b89e7362f610bd1e46b0c74a390fc53a5589305a924c06eac7277769e37634aabbbd7dd7d044c6f4497cfdddd53565415cd11a63bd469440ed1986364630660d9a85fd4b374bbba81d4afbbdb75edee978a4220a57aa237bf0db77277075104caf97edaddba1ae429fc60e3dbe620a064e48094ee9bbb3b079ebbbbe3eb4bb8215d5fbf289398ee50a611338f3766724517756b6fde7a7b1d9972c89983ffff3b936dd8f41607837b0e76c0f9dd5d0dfad21dfac340b7e04a92ee4350d8d2a1bbbb59feffbf6f288165252818d0e1f1e26c36d483ebb35d5715ffffbfd774774b1d93f0abad1a04ac893de7eeee017ce896a6b8a7993ff43c6f2a0a701d46f26109b634f170b8e95519140216701b1ddcddfd8127d9dd6d639c730e90d6a8a4ed1d06c5803906c31904184103511808e334aea50114000717c284e488383c401e0e86a1803014068203a0301000008000800083818100201a4a63228e0724493a09d08ebbca88ae636eff2309db23dcb6e14342cf2da3e69aa9fa88fc60ea61aace68f9bb39c8ae881b299ebd7519b2df592aca4a7948d6404f8043eab54e4026f34f0c1dea72156f28d746b45e2724155f2dd64e0a1a016c728b2cad9c3b44ce0c4a5e0e27f1c9681b618cc27d3141969588589738bd071d9c3b7886c81484defa18bba78d5f66f248c42ed8f9784caf43828cc7a2eae569e6e3760f986e4a394457c3efb4c1551babf430e92b75e2c326c2310843d8a8833e32f3a0c7a3194982e4d323eed42e6738d60e33b27a655b240d407654a70f0346f0063820273a03970d9d4c0ce26618b063fe526c787d6f097c4d244604689989013b153cd5c07dcd93e8c1fdb691b60a26b574857453ee468c0a70ab970d18fa2ccb8894d13b42f3d2fa9a6141cb4843565da7250328d79c5b3c910f44ab74d21ebec02edf2977effa4284314911a5cc28f270fec304f65548d24a7f2a08d13284d80144bfe2ce6567cd6f68978447c94730da73c9ea60a082e38ac8891be2b1ae2db54b433fe754eb57cb1adb702096feb725b9292b755540c9aa698532983f950d283ae4e7d06cc00d44700be82936355e55f34aa38b53df012aeed69acd981935693d538a3b38261c2cef9134a6c288fd94c46542fab073b760990f647b412ec3c35b2bacfcff78ae4738ab7f24f2b6a075e09bc9c5583107680b9a15a03d590146ffa9690f861427cc2078a486872f4c4a09d572bd37debaac3ecee0998bd176c98aa536c18c6593c2a201dbc552a17b3fbec7dcd0df7b87c4d03be163c863e5a8d0f54e14fe9554a1de0d062674a10e5801039bf02a46650856ab4c3af0068ea5ca8370f76a69456ec2810418becbef3049ab5a997e94260bc26002e2cc5d787eac1d9e523ad0432283ae183287a86c1ebeacefdeff55b1b2df41ccd7121d954b08a914bb1c1834e6b2268068d000dbc52257de3e5b508f702439dce2672644f2657306dbe41650f455e8ad74ec24b7e20c008675db627f3e659c9804064069537e30d81b111771b148b5e25240dcb0a31f69c75ec1bf31ab7e67ba1d4a86fb880106c31ad34b50e76402eaf893df9a8ae58f6962d75a5937ea2acbc5632504098a2035371edf420bcf8f44d9a119abe94875e5ffe2cdd9e5f352b40b077eefaa88377742315bb19bb6f9a88e8e58c34388dda74af34f21c1900223dc9864a7214ece1b59674a433f6d6e4814e38e32bbd9cd498181dd93481b6439756921fb72570c2500145813fc8bb56c53f20e2e56bf1258085c311901b4b0b241ef27633bf41e8ebc17a91ac37972b7f0cabc2022040956587b4fe8c6a6363d923b6b4287f620d3cb4a9edad4926a6883113ae1531f6310cc8fe464886289252f298cec9b3cc0a1f28d608c7eec8559862268345cde9805ea037f8392391fa68207f34f099749c330e05fa5ad3f55e7802f52de0ecb0a0a9372cab921265739dffa32750be3defa7fcfa175120b2b289f2ffb606eb43cb34c4fa2a161092e5b02090829de034b76bcc82c9050351da98b57d03bc2759429a5cdb04a1e2d914acbddf759694444332b9f2111bc40818f9a96f5b02071bfefde870e51e0acb4d20d029b4c5a4a5df6c0ff87e3496fb76e4d6e8c2b077e739694fc03a13cddaeb0cbb3f2d593872c03d3671bd2b42688a3a2eefd1f43d01b03e30a788fb046d793e4bea33b691058a1564cb8f37aa7a83472fb74795da121272abf92e4429e2e2a3f06465c5e712e1344522ff7caa6f9d3e3d1c3a4164ea6db9997b727466a62a415ed6a405c4e06cf37c81110d1ebe24b0406bea8c854753164ae720a6f62a57b35608381ce5aaacf58c2c57d52dee31125db9f989d2f3c69d43b5795d1b9d4c84ff988c58a5f45986a96e5a8cc7bbe1518968551fbfaa965f20e53bd634a2055390d52e90095cf32c52916d90dbe9cf09e69b3d2667dfe2d613cd251692f3b0b675971e32da1585e799c8945730f0f261b54fa34a3f78f2fc0a136ee425de05b2a69da032fe55f99289d4db8f1d4ad25e951daedff45ffad5fc8308465fa85336a5d08433095dc1f2d7475b20d6b0c3377475ae02da68bbf0480572623da09b732c36ffd42ac0e3da25ae9820ca37132cfbf84d2596db92187a46129c95f7bbe63aa0fc647e9fc5041348f45d047d8f8b2eb812b5b54fe4820b185afca9b6a2e2fc344f1da55d94049544e30a1dc3d84346830d939e6bc146457d2e9277c30bf6c3dbc83ce49464306082f3200f9474e502e6a4bb146d6710fe77d65b6dd8d55c492d1946465d34950ce79d6365a4e101c815c1652b348e43a144d35cedd1fbb93e18539968e01b1d023efae738237ec913f1cb6b334dd8abfacbcb8ad08ed17843deaa78c531a81c8496cfd4ff4b712d56a97dccc1928ea731bcf3d6889c233e3d0eeacaa943e10e8b0ba73221beb8bca8b4c191088f5b82950f9bc9a0edb3c2f0747aa8abfd9dd87b1e45a0a352fa4366ab3e51073c056bac61cfd5ed13d087482a509532fb734ca5501c9b97ae92304e18f7755149205301421127b83584c98081a2d75d3d808e486360dca6072db9faf87c1f083d2099bd1c3dff369b55bb95715e7b841bfaddd9d3ad2695d8d332c97eea80788884e86495d2de9886211090ce2589f663dc6cee3908297008196924f14e98e0c0301d17b2334c0475b5d79f0ca0f083d7469b8d601fd344a60469651ae8cdd16177dec026fbf4c72b89ea72f976da93bb5a771310259147b1505f6bceb389132bf08a24ac6d61c659150943ba99c2bc7ea50bdfaad50f3c188946f1072a18aecc637506e41aa56f4b17e2ba60bb4b47b71ae5ad443b3b2d86117fa43a29a37f404d2ba276d9334b9d8485225fbf11fe2d438b4931e4c4ea79509c2533ece5a35c60e702adc5be6700ce5df0673c01003419fb27b71d25a83e6883bb7cc99d49e85c484f34e9445a1e119cbf15634b0e6efa51ea32f061228563d11b2686149d2a8fb6e1e757b97a7ba426de4540cd6e6d176a70077174aa4ed8e91282f0154e94484d2032231519cfe0cab281e0a7189c4c56c32be08f479b248ae30e8ea5713ba642b8442a5ed342a8394eed9912bf06809b18685a8cb6eb5a83e26d8682aef06375a8bbe4db2fd4e66244c0c40d5ca8207cb1f67a0c818a44527394c6e91a50649f5eaf068140fe79008dd1529316c3541c4eb4b9f4736bacf5864ac411fabd5a459884790798731001fd07d9936070b3b5e8328d681624b475503e989499422d1822a865a20b70baed1e7b8c1b53748667da877bd8b4e4334b47ed3c18212f618520d05bfd077d1784c9866d76cce381005fd62f64ebc7a4001b99dc6a1a35eb4348de4bc23b5e5c5afb307e522576ddb522f6c6fd53dd496f354a0a6c136ae16af4aadca4595b1a490162270d1b9b1580c08c976bd08c9f6188f304657960f7bed50b2ec0e0717afa1f5c7a6a7163b3cd63312f064b523a73363cb772eab5256cee35dde76cc914c5805a905724c70fa2d3326832c48948f30f7183b52103374a4551d9be06cc698e10c621b6731210c01bb162251105afb6d9200cebf64561472c5df793daf2f7c292b4af15e66dc626e12e29801a7230de76dc3ec4f9704f8ae58efb51701454a2c99874a894c72bcac0819bc90550049f41da8b5072a05d3db9fe0226fd2f9771c7104191d3fdc363edd82743f455947224de0b2a18308d80783c04be3deb8890b956920ae8849e0f9318250aae3a14f7e8219acd0b1b70018197771796b1a9566a7a65424383e19b0ed476b68c635c96fb8e2651c9b84a9049c1b6f75610a7f57b1d83ae00382ffbe93a859c84aaa3e3c2fd93690e1da1408bead90022fd50291641cbae2f8911555563a298601e4f2b8a898bf3afa6350d5bc7be46536258f213e09c1887d493385b4c9965a30dec0c184ef846589ca8e7cc1643379e00202a405460001e9756dfe82a375ea5d09774c66846c14b1e103489fedc36295b7c82303183687fbbaa1d0a08c5abd7aac071e3bffc55dd9c8f31312a6678fa919089af08630d833b105984b5a07f3fc55d096a9d355cb0d935121d2218567cca47d980c53f11fed08bcf05f11709560725f6f673da1a4ab640cc828fd93728d71eaa275d5f30f71eaee37e07313084159841d7657f89a9a5892481a40c195b8ff6cddc531165e9524e353eb9831dc9a67fa34b1a0103be00afc6a7ee70eff0c1461900708e2d3834632ab811a010f8a5de978722b0ae7933f681af38b61bd89140f4e8ac4691e1b9a4be9cedb6da3374537ddf0c580b124dceabf656a471b13fa753ab55826d6bab8f267551540696f6b5f95c6485e2616bb90632871c4c2533f165433ebb093df93e2eb94a5721fc0f8a2c0eb7811be22d3bfdd11f28970cad96f8efc90d0d3c90149c00438f17c77299ebd9484f90a564c14448f3c51b4676c21e406e399a366ec4f411e457411f75d39719d77f20c27b8e43981c76ece7452714c4d240092155fad76123d2b189b5c91a407491d585fc7d7d4233bf1cd78cf0b2aabfbbe6d05a3eb8b841fe4966086d3ce22c562a017ad04132613bd176b04cd8aaa4126c094444e16aa0ab1a562f2a1426ba7dbfe662513099d1b75b6b28fc3cc6fdab3b5c430f44e3fd181209827fcc8d00b33b5917b7e1ec211834bbff37ea3053d815907e9a04d327de6118d1d2230eab0042feb0ba7d0ee0340ebebc8a9a8ecd9453ced9606e078bcb10d39490a0b15e5e1e4f2c1bc627ca995cff8bdee28b4ec40667f9e721fafd770258e620725f4239181a2818a897a8e8f22559a291151eb572945e3d2f0d546d0a8d8a8827c09acc516efbe6b9034a059120f682c7a8614506f0b7e1c74492dc6a042aa97343c590e2b03de7005911e2455268af321997f7b15bf77f00be058730dee586204639e44694ab90b44a926f43dec674268d43d5620f2a699cb194371cc1c4e812ab3af179d30045891fda7e5f926ebe8c9947b86069e3a4be2f492f1810bb35c14b1a381f3caceb24448f1a46e9f3503bb554b1ea074b91ed8ea1c4a7407eaef91802e091584509c61593c76632a9cd41490b99742395d75121ea2216c0d183645fe48794984e5fe428abf4235ea30e1f701121e634149235ebe1bf9d9b29224e6f27fa40471e6d72e5ce889dd49866e9215c0889654692299fab0bdd4dab4bb05b19122b2ec3032e29584cf050c0a623cdcf82ce1665fd844028cd8f2cc564e4691c9d3082e16cac2a18286f39025ae73773c7fad6e32305646ee519a6948f15b6d05c255dd8ff64a1522f45dfb6231a615b6d1831e3846f146307c2b99a2cebfa5e418066c73826a1f8ccf90374babb54fa4c863810cd45d8611b448fc45502313cef79189979f02f1916bd846c614be1730d180026ffaac243adba448dffecadbbabf521a19ec0d69fb03e59e5f589622f4478feb55018303faec46d4df9fa8170d624ef4cb928e3b36517bd097a71aae04e77746476e7c4ba7aa4156e68d4488a6f2772f785ce2680e5cfce903d9001b592ab6f07f8f01d93ce4369b53066a5810a29aef36cc6d3556b071b9c05c02b2107fcf420ccc8b0d081712ea19eb6f0861226343903ba2476a53432e722b3a3e2379761fc21fc850256a3c54bc65e974fe5aa7a47a6d2b71eec0b3469caf03597d9d1628bd175be262fba8f54f4c1afb421c4b0897f267c211b4753ce99d147037850c58fd8eaa2bdf7e2a3441f06de92eee99b6ca0feb4f1f7a4efeb4f7ec9cb994dd3b25c49cd85b0c5d4c753667ca3646ac354ac7295761516954afd1da4f673730023fc9da10349c562bb7c9534ba270b8d1a6470122da6574b515e2c3de04a0bcd9a9d0dbbab378b23d2ed9509308f59e012906369ee0fd4cc8492e7479cf015eaf02361394760e849ccd4eba9b163ce86370dacedc413a6da7694bb686dba2b4b440f368fc8b5bfd8b07d1cc594a1a567bef07d22e3903329010e017b2246813748000499550ef87ea910197b2e940da2722a5cef8ce5b1ca3654bd441168ba3b5b9f7431768c7375d8c223ea50d34b66c9539dd7e94a0c402d3167bb34e8bdd70d4700c273dbc4338c08dcb79f7b602602ffa5a253f654b600281c74158b50027204808a7501230500bb2125902b96ac69047c130961999f760886cd299f8c25e4cc73c22ae664db8b3605d4cdeb2df24ea083520e91c260b45e7c0345483e019bd016fd5879d2a7936180271ff79a52235c68a9cee7a7204b00ab9de9f02215e24117ea5961534f24b97aa0b6511a173df0b48708b45eed5a6ae89ac2f40f46a3f9652bdd8ca6e2855c8b5dc07b94d215564c3a5c320841a4dd02e175cc56d2e32ca913b8821e47b4353e547c5ae9e752cb68a616741aa3e9d83410f38e6706434c45a6691227840aad6c4e3984328e31275b7aeed6be4c4e7701b245a8e71a56f1837c6f1d160313dbac108b95acc3b9b2706c7a33a18150bfc3c6b34079526020fcbe61cad49ed98b99cffcbc9df8a494002791632b1582766fece0c33b13afc02e4b4fecbceca4392e42e7cedece17ef0d1586de2676b5a8e2fbf27bf74f1843f2ba5e82121093b22826b6ff36e9280eec46de18b77109c701f10ae8b68bb74c472156e8a0cc847fb528fa0d942cdc4d14ffe1ff6e3a020d3690947e69ec05697975642cc4c95e1696c94969ca8919d34009560f459ec5802adb45189f2d076d80eb125b8c552b6b7ff2c74ebe20dca35668d2a076855fc283cf7a9f96a5b5a286820c7fae74d9275a44dc9b2260089a0f2a9c88220790fafcac55a0b1e3e1326059d70d504d3dc96df74bee132674469a19b96391108dadf2a62c6dec276286bcc8cedc6e3e05b12d2bd5e65a8cbeb986d6fb410d3660f01e43fff2cbd32ee78298dc8f25e3b285b694219ed7d4c535381859e617e4072e3fadb244a90180822f5bbd357247cd0bcbcae7315f3df4018c942d0b29948c3bf0a57d247f6c1329aa6067c283a155ab5a0f6c4949ba1ecee49de125db7b294bae18449ee9d6e0215e9f665c4ca61ded5f9d87e3913cd7b4579dc6d9db6eefd2b9c75268a8741ed07659082f29ff95ddad0e764a2838641d0b43cdf56ead37eaef0ae6a757a2817c2ec6bc8402756ea201f91b9f09ec9ee230c17ee8c3867550c250fe56d41d86ec09d0aae6e2b15d6d63a2c3c2fa1710b56c2c97d1c4df5b67525b18f41ae958f52c5d0c5e999ba38d9fda35fe2e65953ddf6a3da544439d0622a1a971f38d8941726516889f3ca6f4645a6b48ef81e706a6c6195102defbda2390a03f7b26d931c715dd0cdff9cc9215e1822dacd175a6c4275a0f9bdf2b57e44463e1c398ed47edd289756a960f0d1c98701a3e1dc81d9a8b97d225f0a9b81480011270ef6f68f9e7f0d9698e9771ecd2a6d26643ddd8de61a8945cd620e4b816f375157006800634044ef6000dd8b9cf13b67f52bde63194be8e126e16e7e88aa642ca15959e0c043bf3d5c480faa652ce7de4baaeb74a2c3c65a8bc298cb086e4a624049e2c88d275357f30309f53a3e63f257a2d4de8292ceb8fac2ce12261a7b527b3d738fcc1c0640bdac5d6f23477947cc51ba9c94bd24ea221a1bd22a6568a2c6aae335a1c12fb3d631ace0bade5592b52dc175516d9f4e0654e96bf3a3590617136d8091c9352ca03234ce8bc44a10421e253558d1f5be59a76f16e1f826210b9f043b2adcb09421b207f9abc41aab9d2b960b1fe7eddaab219dedb4d10adb7bcc5b663ed6df162e5316d72537de538c1c6921654022598a0164c90912732aba83dcbc9b0a87bdd7fd576ccb6c0996d88319f0433627ba0ee249b4a8ee520a31cfb20a9b343ee2646a2230ea7a8d8d32e95e8d8c12a9c902e45eeae5f4b24bc19c3e26950400d591c45da1eca19b473f0e93dadfb66bc12f0b7707dd13771000d9c865a90e4242d95f6e956c18019b0ebb5fe07e0005b5a0ccb7a250d0600c1b520398b4184a9ffbecb2f7ac01d810a55107b02315f44dc609225d1481fdf9c2e8259e1d6ac2e2f0bf25f431cc5d42ade0bd17335e1317de029580c7caee7ad18989679b442d4c9e09965d353ef3a9f0098fdaf5a5f06bdce12664550e8ae2f675d552d1f24877d7040294fb5c3daca475666191443ee9ee2461af9586ea9f5419d2a6a2f6b5b08b42d7a6dc277252053d10fa4440204a14284bee62ea1ed0bb0854512c406a5f4bccbb4095f351b13355caa4dcba979c9f35a0044f1fffefb3b7439f64a4785b5063e0c25ee7365fde66b4e2a5c58aefc0480e932352a941524491bd4708c29a3ba55226be86910ea622b0039b38e6bc052aba7f469ca056b0fe34be2282d56feea1f3ae34d4acf67659fc1f3affb70dd8892ccceab200d35b06bcd8e64a0e433b432b88351fdb45ddb65b48424f57d157b5d06a08e852066175ffa4cad54424efea59c548051f40883b302444c5183dec74de16d997524073f86908e0458ff66e37865f93ab81dec81c5964cc854a10ab9ec9695af5245c43daccc29fbf0e2d395c8a48b28691115ff2486991ec5ecf7468c17a0064b00ee020922d3156788502bffb4d9ff54d2f8a243c8ff60fcf63a20cc15e26a71565aab3644be18bec80a385327502af999f2505e3834de496307b7d7470f17cb1ca157858d6d41e6e46237315245d7eb45258504cdf258045764cbf568cc4a95d2f00aa606fbfd77e3b8d9f8b51b2f40454a7f9c5d3524f9de504bf6d204ab324860136fc390e46b6d5a6dc578bd0882c77cd67a8b4d437b0bbb815b4b0e499dd797bb53bcd2361c5b5d5e5f0b0d3292202b4beab90019b8ed657349a54f98a89bd6022db93cddc550ed38a6f130a3c1e6dcf1eedd140100361e7e77f425db24d43b075568eb5a6b22708d05815a0594b76f0ebb24e2b41a551418b7ce0ae75832e189cb600b35c07f2515284982de00f3df05a0ab30d77c243a73bad0f1bd89af0250a419b9bda748100fc35f53cc8f4bc28c3e67998759a784300d26ff2dd0f320f5f5ed432bb8c0c32789c1d2873758dfbc6142d0ff7870f326d2d1fb17d4d9d276adee4ef9aefe5f9bb3bdf4a8ae990b932cf04b8d5eb553d7810c94530d729db5875f8d3391954c89293b61d6e50349ef83d3e36c42832f898d8df45222cbd145e5ccda9052e0d08455dd712f8e99c0b3903c9fc0a3aa46038b563754ae12edb8e204e95be85289ffd39d33cb74d8e3238b7b56166690307bf78a7077716668ea0d768c12078b1811c4b88ccea5f09f3dab3c307677c8c502a22f65f1a78f04222a9f5bdfbdc46e96fd99a60601d90e258c29620f42f5f3780ca8763a43397ddf1315027e76bea5d60b8fcfb2fdae5cce7da5806952a343845ccda9e7f43573baac28c8fa810a040abc1e1f72ceedbb7bada82a82bd05b5cea2b94b97f782c352f1ab2368b40737eed030e2d58fe561f68d3d9977d6054294740c60663f26801204d83c534361ef8fdcb6372fbeef50477f533053ef430f95d5220bfe5b6de11079928b4487f705bf43ead80b1b503dd85a4b112374a948a3ccdd646cd7d534149269fa12655f35ab32b7103b52ba1f452df4e00a584c4cd0e8206d52f5e40a404a82a422642d6f1aa48fe87cdb2913431f46ce47cf567b2128da3e0d7ee96b85b2c6845cb4c715f627897cc25ee9c720f21cfcf4b0031b63375d3d0542a676d49391732e6f3ebb57d2877bb97c6abfe0b324236eb36e4a107dc522fa7ba09f4605686ff0ca695f37a455c64047a21c9771a7f738cc8c7df7f256d8ec23f14d5972830f7c60d13e510937aa8e281192e4e332a6c55ed1459e498142b58cd6870536cf3eeca6c5369688caf8098ae0c1a1013759bf228de00df9996580b40396614c52c90724f684d810bb1517522547e385887ce1ec838fd7ca8afa89cb81942635008d23860076b292030906e6eb11f4c6b8f9d1688f4dd3b32de84fe8e188759b33d19c57d0471fd2b8ca02e0ace5798ab71293b1a7eba3db52eec3cf28615f8669f6b2b74ac603c644497633c826c960e5c475f41e50019078147d22d609b5350c0e6702d9969b688af5003949a880778014757f2b641747828b3e7a18b6584465c435f520ef31419b3dc3b985e27827d719eab4f6a6033ffda77c73c218e418eec4285277a70420f14852cce9884028c87bb8010fe894e8befb62a817cd2a1c50dbd399617b5b60293ed2272b096b8d19675896d7c8d0143bb9d134a88b81ede986ca7a60188acbf00c364eba3b5abc7e90773ef6aa6d5a3903e30bd3fe898932a9fbbc93a6ed76cf8b0962001c158e4442b3531438278043ffa5321a928cb9548fb70a3fca019f5b14e5893957434be0a42f4896efcfcdc96ca9012321d160dd6a643791cfef4128792f21eb49ed2be079f949348e99933d935c3eafc191d690852f7c41c4c6cddab4bc43ee540f18fe22781a95ada358771e0efb468754ea33f0982336480be6a803cf87de9eb616fd7b5eeb2a853b436e62d71fdf18628412baad0d42a52c7f116faa8c934e323a182cac5aa2fd1f0b535601f7666938d5d00939509e14d587d5b9307ffe704e29ad9fee11537826460e0c652c684b3b07486e7e07109813727256645002acb4743e3a258c1550d659de649becc566297b7fa7a5c221297a435592c80cd87962561e1f7c2e5d28f50657852f2214b95726d78dabe5e8b806d58d8a4528873fbca0f0fd61c3475e68183153bb45fc36908086fd2613a22b0e893becd241bbf445142654d81918062877ee5c2b6d3069babc6d78e16f645523427a4d185677827bada4599ca46fc88b704c04448a8cceeae12e039b05c1218276d3c9ed4cd05ec3e34fe05698abd6a94ce7129c7e7f9aa67c8b16a3252be674c139afbf3bea147a93e5af8271f67595b43956e60739ed6fb902eab754ec4ead55cd810a67b62bd6a40a1d77ca8fe14dc17e25de92d3488a4b60945143a9cd4335ee1296b82f418824d30dfb25495bbc497e54302acada55786498f840250ef64a800cc66b40ab2eda03a76791696aa322306b667a1233b84ede7cb71e3c1421d2f80806f6536adc26ef2c19c73159c3c58ec513486f92c02269d51cb3894c8b1af4b28ba59c9f1e588206f1ed9a125836bae80664aef824cb93a430733e0c0721aa19a0144be5bd8b2645901eaf01c3454608e69753601186b1a574a4480fa1c366941bc15f53f6b4a7737e0ee8d864cc00c5e1411140910d036e6d399bce1af1f68810c57f08edf45b5883e08079454420ff54364517dacee372c81d359b2a54c496dfbef35033d031d03306ddbdd6d36cd21ccaa3d7f3fe79c73ce2b7a5a211b84a4f4a4ea6085d42bc0511364ad995263aaac43720aa3c8a827ccad91274574282d18543025163656c1bfbbbbd7b315b25452ea175987f04aebceb8dfffffffe170b9ee6e28642b64737a5c0454907bb7d717f6ee6e2ce774d88d8394436a483b2d08093ad3919385e2e58562362303ea655895e4a801aa8242f1668c326998eb0bf587eb8656a3504ad96129c934f047e90db6841d63d01dc61fd730134eb0aca908c578126919a01c4673f6045a093ba2657ad552edf1dc260f62ad24077032523ec25004f981769d006615737a73b1a66643c3d2d5e5accbffff9f714b775e93455ffcebeeee5d914d5baaede06138536a85ec930a8433a907335ee0ffff5d0aecc6d0dd69bbc3ffff7f4cd901b9ee12f0204eeaba5aba46a85f001ec42ab67a747777777793006224c1bfeeeea92f27d5f2bdea4e36388fdffffffb94edef272f3575f7ce332ccda4ce4c00bd400486c6c4b592d262bc7065bad0314ce5c8fb1683030ee766136c98570d6a77d4dd6d854336ec5e42d1d9dddd3f2036b996bcc48844786248209eb0c2b0be48bae917a2336fb94b90bbbbf3aa54245977f73f254ff7ffdf12ffff9f83ebc3419c3fe73937426a85acd2138411d5d0cff8918d4be4389cfca3fc59fe347f9cb9a4266d87f8545476b6c6c00f15341e512960d43e917f2d9a6eee09aa40110c0ded7ac1558fa61e0da449e72339e79c734e2e5b21db743641a3229253af600168cdf22b6b0549c3c47f2ece131d35a9172e4cbc8f43771dad56f7f3005ee69c73ce19896c856c4e4f1092d207c8270f7725643a8cbe598b8876cc70b25f449c226f354d9ea74b71675764a2e0e0b9ffffcf03ba6eee096d856cd483e774021b2e161ba3b0a2574eaa5489092a42a5ec16a7349f726adb69e0412cf581c31e8d248e31fd74d2e492ae44a92c245d708ebe4ed0308d9ae58f3fbd64bbad8eebda74779f2c419c34730fff8bb10c3b75e3ac72e8ee6e1fce6db7ffff49698748527bff30f0ffcc47cd58f32ed8b2a0b860408736f500adeafebabbbb9f28b642f688cce9f9e044106f280196179d2aa11f212d2fc69e903282c4684ddb88dd83bc98f6ffff57809a28bc1aa82fc3b06468d9ae7b895c71c839e79c338db315b24dd0e8b4ea2268aceeeefec3b557ad914d55160e4c8a2b73b9020c16696d38bc52b6786870d8947d204114757f5cc6f8b1dfa8718035a134b134d104aaf044040603ed6405c52f08050768ccaa78ed1543865e5c09a06394e9b80c21f21c393045c69489826101520275772b5d218b9d482a74b429f940c15143d9d1a2a23a6d1545d88abc91740a343b6b4e3c6b512e046c45b9e9cce410d9d871cf2365c6dc94b3cef519dddd23926e236c8a413efcebeeee5d0c2eeac4adbbbb79eeaf001f23ce48f2ffffbdf6ffff3794e02c35f44487bef3fdc4fcffffc8fbf62e97bb12dda2ce67ea53f5b1fa5c7dd87e883f463433a0b663d38baea7893381e8984a59c38261d63ac59d62cfb3cb5ea339741ac496fbad005df799c456c81a47306380ee3a515b21ebf4859dc87ac0dc3b507ca1a8a5e96799c4b67de5409b8a4919c6cea93a5163e85f400544b1514fbcaa5cc4285e9fdc5880313aa9c14097c4601ac74493c7347ca7156c9e5957397ab0b44cde858550f28d79a6d237c5a8ae98e3a8f76b16eed4105546e21c7627c0e5614bd82833dee10d648896b2cc82946137d46e4c1885bc00b6d2362d78233fb0f175b5946890a9a5a0b18429810a0aaaa235c5c1d2463312e8a5d2dde0445c93e8fbb27677f7aedda9e853f77377775e494f43d415b2d8f57a3d88779459a11ec45c3dc0f6bafbff8f76ffffffee7dff3974168fb319956b11cdc7c4c5aa2abcd0849e4c35ae8f268e2de37631e1c4bb622fe90a59bceb6e3f01526580d88c624a971112c8c45950cc8288daa84a4d937b417a517a79be50bd485fa82f571a975bb5583d5691d59c6a0ffe1a927bffa5babbff285d218b9dc5adbd2d4978a0ec92f5dd19817a21d0a0eeeefe025db7ab693944d5adabd803beddbf5f4e9901a72d88806fd95150d32852e935f4aff7398ffc9a930e7893bc51ba38a909f520ee32cb72d15e9f85d2d1a202f435a239ff7f77f7b6682b64a755eb15843636108610bf021d195d77b7db522325ef8b36d6930249a98559740424182d216654924aa710c33a3925693a14c59d0cddddddb8b2a85dd90ddcff7ff57ddf170bc8aaa1f7a3351a307c03feffa1a4a2c37f23eeffffd7955c4597ffeffbffff91ffff052a4e3d4ee8704673c4949ddd682157c988dd157847400bf4ee30fc3845fc3431b772ae745a40a161e230b6902934cea6ba764cbc83866e855425617ae8767797b64296fa45d6c132cddddd49581dc639e72c446d85ec17591a0821b7e211c410f2716e8b04b829224677fff98b34df97b51b5c8c733eca4ea7d3b9434677776fc043b7bb3b32da0ad969d52a02797577776760c8e90a59ecee5a9cea8ee8ef8d6b19d39211ca75ccc4ab432f905e828818b50bac2ab60178bd76f54ebaeeeeb91c5074d66bdbb1678318a3eac5fc5c77e746057339af51d62c6b9a354e0f66bcfbffff2ea2e0e9d4819de2ac03715ce6d86e6986eeee2ec1d0ddddba5cbbbf63d7f60331abbbd83547259636c27b1133e475ad6c7cfd68eff65f9b2c6679707777f7a3a656c842a3d35ce2a8ea21021b15e50d990cb6142250c3829c34b1b8d2620e3d08e419ba0ca30cae8a0896ee060fe2a11d459cbb0b9c5913ca2ec70154335d5b44482363cb0f1e99a7da0bd40672dd3d1f656857729a63dd5f35b7e2f7ebeeeeeeee467b0ebbd3b406f0b9bbbbcf4393575143dddd3710251fe741ec46a5c2a880b8114c288798c71838724cfc6ab44293d5820dab5efa8c287f3f563964adaa9e4adc24b8fdf7ec436c8da61c5a5d0e448b6ac6d1212e491e5e4f43345c28625942c0823c0df54f4eaf18e9ee4e6a7677f7ae713832a8243340233f1497f8e1c3884b1cb25032625ce22e46f741ec039603c0509811801642485632b03d16946c70aa587ac6aa3442a8628241435185e5d63d383f22dffffffffe3ac5b9ed54f389bbfe7aafe30e6e7f7b7777872d5b21db7436811006750f19ffffbf3395b46d3236433832446c4c7ccd7844dc5252a9cd02ac007777681bd2d0dddddd79d65c5b345371abbaf8e609e0e3b4014fb5e440bbfbbbbb5ba70b927c49b434772eb0ca298d04b7eceeeeeecf397777f7eeff3fadda4dcd3e77e9d3b990b8bfffffdffdbf3330205b38000573b936a9d40ad9275589a41418f4a9e454fcd812325677f7e58c57231b0b91c5c812c3926451ea3ee0fceededdbd056d856c144f7b55a035c8c1d6d5c387ee92ffffefeeee9f95bbbbbbbbfb4e33630fbdff7f124562ba3326a3fa3009ae093d3a7173522aa9544a957e49c9a46952b71b4517672da0009c75c85ef140ea6e9fbbbbc3e071f1b1667d4b613269265611b12a8b1a2f3a46900cce84d40a592625ccf4ec3151018325eebdffff6f2794293a6c7777f7a82b64b1bbef7252378ef873ddfd7362c6f8c7b2bbbb7b773b8aafe9dd15d92a6650f2ffbf771917c5264594324ac5e4eeeef6e1cc96eea1bbbb3b45b215b2ca6573440a6753efffffc552f8f05d606564e3d001c6cac90440ee36b9bb3bb1e527627e32e6a7989c7dc83de0fced9db7a4ad90a5e2af1e1930c4565ad00359bfefabc041e69262aa8acd294c61729929a1b9f5e8164e64301a0cee0d0cdddd9da6a715b224688270cfcdfdffff3f10b215b23923807a1ae8eeeeaeebb0da5aabc18523c54104c4e298642e6119156918b918495d4f97c1d2538b9b2e1ab71531527abac6b08a6439bdf8e0eeffff2dd256c852bfc8d244b4b865fcffffdeddddb9df4eaded0ababa3f285dc9ff97b051442a9e0731342cc8cf64a530893aa4780c7d91117943ab3a436924268624db0b82c5e9eeeedfdddd3845a78f9da2203451151a26fde3c4c6b3d89ce6a0d1473798c7c7e25cb0ad9b15867636c5eaa2b0a43ab149999126c4e4954d16648e9ca2ac366a97e4f0831d663cd7dd031e95c7e5b179740f16dd7028627c8796dddedefbfee79c0a33f47ff6ff3fe7fcff39e7ffffcfb9bb6b4d5b21ab55c55ad69ed61518bce630ce39e7a26a2b64add712456c44634c09a324d68ddb9189371499268e99ac167450677af428626ae16349ee0754b6c99474a831ba6e7b10af1c392cbbbb4b409b72ee5e9336336aa4bbbb79459d0cd9067777f7289de3d0dddddd5ddc4f0fdb52520d213f4cfc8709474839a384a29b6cd515b2d8f5ff779bee6ea925b761b78fdb0d9dbaed4df3c6897bbfdece71ce0002c0e19c43f66acaf6ff3c0862a4c9780a82aa088db042bdcc58012489ab895c687aaf5c907affea3782a76c2c5fa0eb9208255b21abec4068d9e5f33dddb49081c2339664018fdbd299c286cad2433800b4d20558528798eeeeeeee02b215b239b8a7e7810b41c0a0fbd4934a14d8517307479013a854cddde7c400c30ce319041841c3401488d2348dad3a14800719c480c08834404044160b842171280c04070001000000000100010683030050602c4e4a793c274700429a8dd33bf4f4a79fa999047c7963135ea82d4707a8526b5fef440bf8ae97b028f39938981ddb00738bd01353981b58cc0d0e70e07df5b69899de032968770f68c8bc3ec44675f41d216269c87855ff4c684c1e7f6ef1c26be3f4e9376e052d95be736f62836882c5450bb648d8959d1b6db2731fdf20c1278c821aa3124d485c1ca0794dcfde6fa4be39c7cca2621cd14aafdffd52b85124d8bda7dc8d20c64b48accaa5814eedecb1f52dfcb870a634e0b99d6d4abb6864b546a44f51d2cb8fa32efe184446ffdea59039e0355a230a7fc4e8f351a19d69a601af288135158963ecc244d06a2e9cb867c1f8b654ac327a0e35fcdfabd771601ad4d3a40db6aabed83c321ea55a21498c4a22524a568f72df9468428f0da708b104c12347f36e34a5292665c0000e64409b0370f352ae19334dd70989bcf4fe4754471647b3626d7f56df84ce54d88520c3aa1dc3c716e19d5a7eeeebbed34444a63a7f85bdcc998fad5870c4fb4bcae874a9652322bbad79b432b42e2fc93c13b97ceb888b3ace16fc02def9ef20963ccfa32efd145a9fa8431fcb86208a9d5ddd04fa48599dd6e3c98b0e6da6f371ea7bccfb2def0ddac805cd8d2db771ff0ce758cff226e7a9b60a024d73d7d1396c3e92b648525066c02ecada77066342c91838a68b3eb7898c12c5bb1a5df7b16aa0ed633050605c1f6cdbf353077f2410731ce120628e45923d247141937445060c49ac2a412a3bab305a650794555ea95acf0489d2bd08f15fe9f0303253c8c93c50de0530fbc86ec85f1925b1f6f83c1708c15666a8a05515dea2cd5bf7526c80b72f364c3c60b2b5c4d0c3d287681f6e417c82cf0d450601e5ea1aed876ca8df718cf50af6a71f5baee09f498e5e8c237f8c192a79738d73cb30b4f92a121eef037447a6778fc759ce2cea25df1497778c40a4fea5fddfac05320df9721e3f7af354232526c96924d26983935a1876426571e82eee1a60eaa26216e437f815b303c8aaa3a2981d1fd98ce27a4589adf0ec010980b8174ac1e3d7d86a9a82d753d31a6605fa8c3385b0d496d71472b7086fbc16303264fbc24673e750587577246c2d49810c9b728df4b286320fef1ecbdb410dd38fb907c848d0621f901229a9bad0425322ba43ad9e8ddf26b8e13317ec88c9ca4fd4aee1c2757cef7550e2875bf5ae89037b8856b1c5ef802b253078833f41722a92d9fa6a98ef488d5cb62d8b56146508245b52c74540d45aa560b208650643063ed0362dc4639eff3d2186480177ea1ac85dee1371ce9f4fa5fa0cb70d224f29308958eec79bc5a2fbcd3004bf750385d383226d3209d891416bfd8d3c5cc8e603309e31bbbc7aa0d612c7e0e768eea16eb87d22b4df8c48b5b46ec736061af89939ad292661b0b6f62dba0b12d28924fec46f75c9aed5c302c28baa76debf5f064fef0bd998884ca637541892154d9e9582967b12e9137ccb2b5693fd1bd884dc885353f7ea5a6c9f4fc77a33d27a8ba3dc3a35799f3a943eefbf549f4a785705c8eaf2a5004c382e96c0d8ea4b0db8adad800e839477de6bec87476e08a37929c3d57951e19a5367b4e75f295429bc7dc415e72a43f7c80c1fc9d2b059521a25d2f58a93654b4b69926b45551b8ddd989188c535960342d8e80471de39579e31c0ecd9c5995016c1aeca0459f000a3c7065a3011664ea6e4853224cc2cea091a02a14d51bac764188910742a3d6b36bff4162746701602ec4bb2a8ab37ea3d41972225404e2473479c645a022429a9b15f859f3c9abc4415984c68711e9d3a1fa905c4e284e0b7b90dab9a0af51c76c4a34f087c49b7248f954d6128c36df928900ccb893c7ab79598c4b41c8bd0e5920c0ce229e2879205751068342738c85bfd91a06a89026729b024b921058b002c3ce51fdff7ddc91f872126c7697149f852cd54ae6f171788c424fc4d288e3045512e9caf69d72fe86b0c5d5c92125c92ea7455d3ae16e3368eae235227138fc3ccca4c73bcb9b43bde1064338e2420b98664280f2acb9503dba31be8c30a9df756e0cd9b1c36be3e50baeada402fc1b99eccf57551993764718a29f368c6a6af4ae992c98440bd1f1b5d302a06fb3f36592c22df8f9a42093806dcaba2cbc3d0914678b5bc8b30005b3a3af713c5d35c440e1af8127625f701b5cd9565af49125375325f258caf94fbe7df48960e3f064603eb0576e085ea2ac6ed181558608e762a2e543606964cc4422139cdd25f71450e32178c322f4c1c950af94e0be48519cffdeca24e464df0eb7c9c40016cd6be5b1f7632d7e9d1d0857a67ed24ac58569b40c9a7a970e2391b658892edaffed1644a4d8371a35a25ab5842532859ffb62946344f0dccfd096d50c8055a265bc4e5a13000ca7aecad02233ebf620526ad713119459067dd56c2b72dae75c62b23593b45f966d1d2d7cae707136375be6766e0bfe306d38653b935a26a241e3beb1666788237e6efa387ce441aea9c89649c45b1207f65c79e233ce67c8ff2b915263e5d36e0a0db1ada4ccb7897b0395bc66efa611028fc74ce8e439f1ab2cf47f30acd91b73e925b221a74be94bdde658424cc518a9c7847d5d3b7d2b6087e2f4b2028211f50dca41919138f7e3f2c7f3825b80b2365dd61ad36eead18269912b5aada1c71d0fd5bcf12d1ff0c6f216dcc24996acb2316b901f0a30f9edc85185251b3f55fac463c6a1d37bb4d383465483e200016fea6020e064b182765f58183c539ba70150e760eabe557f39c4754b250ffaed7ed7506aa5c245fd5b569709be30f17ede5fc794996edd4aba29c0a607253ea946fff5de8329287118dd22cb32d95a171a3e813196d2ca53904751d2fdbdf59195a629b40a04c386ce3d4769ed908bfa638d2211149a2b4bc4512724340c9a085883a28876cb586dbb1d5e28a32aa024dd5019417806e2654f034aab2bb99c029ba23fd898532b6e7a1d49ca7e535c5e3664f57d9afa808c94a5b0138eb747456e66fd7936a11a6d14c3c632bde5245132fa6a94036dc5638e61429461f7ec95e3bcb60353b0aebe5d2de429a4cbc595162be3bc0a9b18e59388dd876df10c38a30514ef52613c112a1161cab8dd5f62a0b59d3b600deda5358567797fb444e4968ce4e1cbad7bd4691c4cd2c659b3d907196e50215b454778fd87cc38764a88200ca0c2f7f92ad45c45b9684226774e05552025d46dd23d3824c198793360e68940b3378457ca347cb06d8c187934b339a01037b2f293bf260990697f810540d244737ddc1d1fa22762b8f5b39ca5c59a4e513e09a3940674543b73b3f0e08457162ef1b0d1fe925e657b20caad325945fe611a7c69c8cda57248c595a702723a9a6246473c17eaad20e12ef364988e4bd5c2b384492e2ec23de52343afff9236f5833b5b1664d6aca141b084a1d029314506bcac79cdf9c214d8e6cfcb7900d6910985f32f208497deb0347e6e8aefe96e69146c925b82e85152812b4c24a17afa1d596e65f7a0a52460bd22bc2025eaa08b5b67c0afb7c55198bd5cc3e4a98d4b8550989434af411668c4d493cbd35fcfc3321d9d654f314801b4b17ae73fa44cf1157abe644939766bce1141885cb48fc585f823001c16d60ebefd40568923df7f4a437edd75cf1fce1f38f518cff6dafd2029a86a4e941104a6d2b34fea6a4c1da37004782b0a4ff7786cd40e10c40e33032bba6880609b8075c493eec9e8e9965f2dbabe43efef620334f9096caf0994a03866ed2ad58de88ba95661cd2559d5ab138ded0609a55018faf5bbaa5725496f015738dedd929262c00574c634ffa9a740727073d583d63059e362896ce296cfc2e156d1b86b277221f6d2a5e014cea6421d5c23071836bcae2d41840944d919130dd6c50c82085cb3fcea2cca2a25174e33d1909b59866b1d5d3357de3e3b22f36a464620af540b19cd6091e60aaf6d320bec4a57f426495dacb228e88dd773384df14447d3650844b612635fb492051b84955152a17b3c47b722750a37d37b3f96de89de7a8a316215172aec7bfe0a0ea0550c5f8ba2044aa74d297b02091050a6a227001596fac525dc680820c0672eafe8c7d77ccf9a189a4b49c174a26607492d85188fd710073ddb7e7b67d41e10701ac493b1efbe5e90f9afe410951963442f7f1afab771e8415e2cf48e36018bd30ee2a0b7e000cdb659a4edc45442704c8c083f07b5220719274e480950582a074e4d46e09ceca15611a2706b6f22dd1e975e8c55f993f06f216e549b0cad784df88bce7576af69121b780cdad4bbe083ae45c943e1abc0590d73bb8bcc1ae538b764dd6046f99c28e0b07ea2bfbe3752a1decae60fd258d5c83d775543f76fd5ed293f3e850546e4bbdd48e7b3242ccf536ed7b514084a65927c5401f3fc3a5405bdba51e7982094bce9c1608bc05ccf392f9ed6568403d5994d04d117d97cdd1fead140ab27ebd4f739858075d02087a76be943fc1efb74e67cd2050de9eb0f8b30e8a6bb883c2d41da25e6e37ee84b192e91f810745681c9807c5d15946e8f97541df11b3fab1869b7c86cd58f988a11946f77124e3a89aa55a998c08260d3da42d4551cab4d2d9324056e7f7b309cfca28c587d51192b0bf2c52e5f405068177614cfd83c536b76e10646b48ec4c9503cc78c995570f36eea5d6cd1720bdef9d372a3879be4a5fc1ef49c306da8e9c2f79c755e57077ef90b023cdae0f8c40926d4b9a72a50736bce02a44ba6951f63b8371e30155953e628de8a81119f3975d16392a1d916493e94c2fff20790df2959e161b444b0b5eeadd39a8d22aa12f382d49a010939e7ff8266b91f4e15a5371a71e29184493723d14d1849d703d3f4d99c4d500d135675453f245448806aec97865917698c9d450e984598f79928582365c3d6f475ac100ee88f0b34da2140761e31ea8ee893c6a7bc5e099f3281d4795ebf6d998b9928986e86b2ad76132e1f3eea3b18647ee1df0a8c3cd5db4957895c409ded0d467f16f4ac9e6f302e75e27ffea3c663b31702cb36a29e749393de90836cf46a6fdb5cdfeacdd677eb6c796ea5d819b0e0f92fc72d90d92633022a7408ed5df3f1fb40d88ac5057fedd56dab5041477b254818ea1ef16004c40ef38d74024ca130a590407d3dba70a8462e77825ca41caa7ee2a756dd7e5581079cd651fdc1aa1dc57afdd55dd764df22b99eedda6bbf8561593353a3033ad8b89240d137635a76f29d2d5e72e456c42cebf694dc024c6cb3def762d9c892db9f4d44eaa068207c45e7eb7a46e5e48412721f4b85fe2b7fae173418f88ca5d5a055e3dca2e3b0aaba7e52187d6c7bd046c4ae98d84fa12cf1d6f9c99337eb4a9c8a0d4a38b5165f525a705ea72d7377350a74f61d414a4f64fa85184bce3cbae5242d88492854f83140e4a1aecb34f44549343fb1010a46ea5b09f6d2dc07626a9cd0992e1c8865fc32110a2e876304fec66faf58c794f808c40c98b3339244c82a53c6385915f1cd3c208279c8b05994c26c72371ea28c67e74c38145422a81e6902264e1920389005cb205123082af126bad4f296fe9287a7b653e62aaad3c8673a105a3f4c93f2f36689c988649e0f582d72d8442e4d0806ff882b78ed5cc39583fbdfc5345c8498a38b9ecd1c34610ac42beb4f9231af1e496c66539866cc9d735fef1bc67e7b67f119f978ad278b88d535e226a82b0678af0c3bfeae458f8feeff1f1dcee025daf994ee110e9f793371a4d06f4e1296fd8df92648691cb21018332eb5c7e8affbb347b50566b9648771562f6009a1d4b435c65f8bad47c2764ead0e9f192a63fe0bb684862667ca6227f40c4c071882043adc1e28e18950ccada2093648f423926d5ea5901bdd1d80896da1a71c7ea7cecc6bf16fb665edc778ca09c94c827929aecadf2eaa51ae523d88bcc3cea98e21bd3e18d6befe84928d06638dbc27da2b9d864091e49d7350f916be24d0a8c08ebb808d919aa5395c88ad01b3b95cb0210a00d50eeffbbfa2372a5af4547e8971fc0b2cea2b28e39e64852ef52f549e215be3ad91b5f66a9096f35e6783cfe77c8c4aa0c431e0ae7b394a672916cf864dcc462c164bba5f83a7045a4a4022a64802082a1524f804bc94aae2cf29b2c67d2c9b67940b59c6d635e6ce7e4c6ae33a7deef51a40e72cd018e1a2e8380c309b0945f64ee84a65ba105338506e72555313533287a75ba0889d2166cd5c08a5e7e50a36bcf30b9b2c1017a7d70d69358b39547830b19b3e2da886f94c54d155e5355c73eeac487d2f5f5e813ceeff1bb40f3581d54421595bb52592108875ed8158754f40d237d667de6932a7de40fa051c5b96614db940697e945100c83b2f675134fb34530d6d0399ce2201bbb7eecfc1a326dadd9811cc76687bbafdffa93268f06cfdc0e4d0e0b8d7e712bcead32c16ec792b4ccff705389ff90e4e35d9529b7b5d1bf6d1dfc932f02f083a351d45ce4e613f80ee140597ec24aa3a76eab1261c479e605cec6b3824c427020f5d6c92f08ac342887437e668ac9af75da6c66fb6c0e4f8656db9ece8304ebb23d157dc89d728675a3bc378b344dbff10115b58307acf9c08b57061054fdd41ecdd6adf2f650479cf7cd69616c66da8356e6366f8c440808163035ed44961e650e56da163caeafe83f3d3a947eb31d0535a7542dc6bb595fcd12c39747a56b75ab30951dc1aedb858d1756e185e385f11d5524739bbb3be2a896c46e24529f206de36d7d636972a2d9d920502cc38247c2211c2c9f2afb848ea1fcc6aa7cad3a7b5afcdddc890d434bad8874ae80ac6596c8213872fb6e7aee8de95725b1d46e23f593604e185c59b0d920c099dc696b6714828c198c4eb58cf09ae61fa5b1157218eaab15ecb4700f8c68c9318e0c7e536aa1b8a44c775d0d97509f657745e44b79e85c761b4a58f8f401956a4a44453625e8e73388a6ada8194e81f477dc66bb46aa4029668cb40d0180909a636d1c012a073f0a79d1e5e6e609b1ca51819331bc281b2785135c7ab2228729388e3d83a8505f228757059701384eaddd1e81b608f58c08176caa3bd7733d1a99332dc48321a912c330e0a0d3b7e957e39cc32a797365f1c4b9e1f60b0a83d8fb82255b91556124fe030b8b3bd51603161ab97d3add7d804bd5de7b361b7e954e47dc1769921e53288f17aa0bff570934ef0d173f44ccd108d0327e98a20b42b664e4b087fd54d14685ea9f2735a91b6eb71865fe8dcbcd972baec29553cc2834a74b1ee9267bb7defa7b68630a44e40fd2d74dafefdabee33b78bfd4b3b1033f3f83beec23de2d63efccde6cfbad5e22438ab7094cdba0195fedf1b266a7f64bc0bd18649b20b99996abd204356da3ded4759258ec5a50e23635616ac0484d16101e6084b4ee128de72d5a1da536dfee4f671503b7a0589a69dd4a6fceee5847782152a933042684d9b821871e8d2cf9be32b629e1da147877e3e32f6e757358ac4bc0e6661dd36d3f0c862a29aee3b7093d78821163e90ea448ae98bafd25b67043ff12c18c8028d36212ffee0830163c2a5f711080c5ed8204d7b847c0fef7b2c6cf3127af2d36e72cae999a783952b00b8c2591a9620d1f44c6550eb60277c0712467ef46894b3afbfb2c9ce0acb9caca1af08961f0182f9c912cd442a2b6c221b8a9256f0956af144de50359d2330891a8c10311cd4e3b5552f287a399cfdd97ddf50425b10cd4022e8dfb794475ed6957ecc1eab62ca4a1b7a6d4acfb90060a3b9e5dd55d14480553ff769b3c85e5450fbe0e135b3e4889bb6f030934774efbc8b027cd5db33e80650f2d0478696bc90c5086d4e7af20b1640ba8464ff5f8d432096a2ae01de3590a4aa20c58c9a61e61e663bd1c1ec082117bcdd336dd5d03cd3f52fe12f33cf55053f844dce30c7d220e7914d4f3dca187cfd057752e5940bae2d2811bc8996ad828e00b4a53f72fb7d2207b8074076cce84f7a7d10693df49dd078509da0e46eaa81f83c320318a50aeac4c84c728cb2a6b3fbc1f43d176394482f87b22412fa0d88f77cde67e8b2f84e233a3256047dec300b6fa6ed064662f478c93fd18482a9c3a1791f24fe251ead6c2540de3baf3169a8fc80efaca74755a91fdfad38ac6c181989341185574414a124e81828fabf2ad0957b5cc822b460ac2f9eb27e315d940eca2dc207c156c7c96e2d061646fe00313870dd5054f0fe40a1ee9304434cd168994e0997ddd949dde474fea7b27e22f2a20a4a3cfe84cd69e4882243a2cb08c05a4a9946a5b324ae5df2610123db079706df3dd7aa4171f9e227b2c3b1f78e2690a1904a52867da85d44a99a284a806185a08a344dde915677fb4b685a84f05be6c6e07671400825c9b92299665b9c488c2c6242b799cf8a3a1b952f7fe24c99e4a1bdd52a417e1800288a7db014b290d7b9059ce643fa18a7a7e81c07e415abfe849b4d296832f73f2a07569f8d5a2f445077cb87e340e4100bd3c770d4e09585628c26373d06472eccb00ae724d959def5110550074b66913ab826887cc23f21011f947230b80267e343e5840c1141166cd57158b4e2e7e3303b5896654d719009c3793ca0a63d1ccf51ee0002f529b1f51aba5107b8e71a5a2d70a409894c2d1a107bd4cff8e10e413be72e153e6d074574c79c645a153e34b70f8d1f3a3aed14e4bbcc33a7774db34234a570d78662a9b6fede3be3aa3bfb6bc8e611fbdf1a5e70dacf70c7ac3899d38cbde157c8729581987cb5f1f8ec6702dfeb35bb720e85eb7a01154040a711eadf31121420089c07cafb96524757f81004ca5916a57485f8d218e2c215e4695f889dde69409bb02878cd8dee5b03fe9d13af9eabf88f99b90962512210469c316c6968864f1b5b73c3a7fd1c566a50eee15e9a508d59cc0f214333dfda5d6435aad84001051d78cf9194edf7c1ab53870b2a44d4edf295840337feab4c555882463143aaf3d0e1c022453687ae7b8328f1758829c27cce86457710e4a9e21781502d09c2c64638c1ad62990928e64dd80812ec81f30e01e3cffe480a7eee7586964a6040eee491abdb55df3fb3d77994e1455f56d38ac7f8e5d99249c46a33ff77b0bf2b49494f17593a7f4127f004c54a6362af5065dd95d73f61702caba4bad4d5854bacdb565782d4d7c23d34550a25e7d578c1f136a3ecb0912f0086052d190c6fe360c38f93571e46db90334a770136345cb5cb28bcdb56637fa62079edc5d68ddd56c8ee259f1bb8b0d345206854e8fc85317ada0ecc9fc2a7b56682895ebea65077c02a35889cf18a2df072d86bb7ea42dad7df8af791a5b7631d015935863796b60899cf8503fbc76771fba2490ac179fe0c541108a8a2670494cc8f1b7bebe4d199bcfd9d26b9c027d7bc4bd9023895cddec0f815255b537bc7a5f49db6355fd2e0a6d7f860a211abca182ee1529292d649a60d10c5470fcb0f429ecf1b830931b022fcec282f019a3084fc621e6989329f8315bc84778b1a2cbb73205d6b4eaf0b3b34599887ca31dd32a05e674d1143493a688abed5f5dec95d200bdaa93c44678ea31afb6f9ece9fbea9174e66db8c98215c306835b5d6461baa80d6b369543eb9b7750935668166f0d626ee54dc9a7bb9757b613c0c03aca55f624110fb7dd6ee0aaed7ee6d424ae3d4a7e0e2265e33d7be40e1070e72402695908794159331dd88687015b0833017830b67376e16d302967d3bcf85418cc094fb52711ae17faad43a760f80409f0ecb27e33230622fb1ef10ba6999ccd250c7a41628c09dcde1e8ca31d44a08fbbfc2d317b7d7157e88f2d877d8180c227d680646e544b724be793203c3abd03b8fe057f70275388c06866f6ed7254e7632a46653605de62a7045afc45503eb869326e878e3ba99f670a9632f629b7bfe250b8c64e325e28bac35e25e04350efe6a10861ed201751600d16fe8365baad526302d3b1874968145aca96b47ddb74c301572a18d8125a9cd61cf37caebe43dc61b696c1f215fe97099df911b65854e04ce9b1eec09575ffbdfd48a2962e1d9c1060655b2005a5654a6c13f6b7d76fcaebc17ad33fb56b723a7fc16253c659c198403a23e80bc94e311b730bd300d367dac7e57cfcd205042e3a4f98c5a7824bb3cb0f5f62356db55e382b650b79ca4bdb948a6ac9778a99277381a1e553c1296edc215b5db77a208e315d411c5700b2969aee44da2e8e0ccd945b06932529361535d2691954b32bcc685ad8734c672fa1d3d95a8c65c930544fe79ae11510174ad3baccc312eb9f77e9123c951e91764d1fb7bbef54a87b04a4f5c08def4d6e0d0ee5c7f7da792d5de914a444e4eb1272d3ca425e2281731def4a83bbbe960a442a79e1aa2fa7bb09aad2512472204e2057ce01dc293b5428a4c813951a0664d53aca4d398ecd1119a7bb8162dc7f0792b03500b6689e1c2dcfae8510ea311b86139b5a1badaa73f0a21ffd423c67acb9fd04291437cff62d004b983ebf845a3805b85a7b76fd242a71f0b64c9e5d5f82cab02b395ad72c8a90241a88f7fd0674cfbbbf817fb48a5b45e99a1e4b9611656b0402d52a10dbd296f5ce43e12ef978b36cdaa0559ce55435f04782aa252dc8a052aed15e0ef7c8c9c802b34a1513cdf2941fef7bc371ebcdce0f4b09bda390ac8b2709fad353b770263231cb5e9e9473e6087bbfee544337ce0b5b97ea712e96db18aef404f8b64647dd48f1b430268b4cdbf27a816445b1cbb62063404b3f680c30a8f3cbbc628947c429e8f9cb2205d47b020aa311515b40d0324a07a698e8ab4f5a0848ee42f1166381560c9f0885e34d89c5030cd03a0b802a8801fff28b0d1ecadd9a39a7c510fb06d280ec1d9b87855232c601ea8ce805e346b22308d52ffb10486a5040a7fc46e4de3b4999924c52061405eb04b304dd30c93a99210bc32435aef8310ddaa6d3fd584ded773339fd3af6377b41486d7ebd3f80da362e9c192b702c1c1144a81b4e006ad099313929838b197f8dc6f392efb4a5357794b2bb1b3ab1e32cd384f2eb805eaa5cb3372b9c308073c50a18803714628ec822829468a344356a383690e4e8181967c78aa637238d87077b1974ec10f9d47c2157823f9631b9e4d6ad57f6dc2936082affe3076174e61520ae0031611631373c4c7a7dbce7ef7e1340d2cff58d5a024378bc1d4f03c2ee6971672a34fe01c9281cf147213333d33dcdd903dec8676dd3a1242873923a0069e0d21095488e089be2081638a2fa80b260d47680da92fe8cc3619daa8814de6c25acff6a106c2f05aed6ef8887574b73ce8659a8fcef9b4f953526c2991905ecf387b76a0a69e00eca2f6b83e8d70d85822ee386629ffc60e82ac383bfbf351f323cfae3476df3f1a56a3d26c2ddd835fafe8737316fbde35ce171479018188e3dca66532cbb321a713e4812c5480b3872590873331b65970e47fc96ef329bf2cad6d1f45b57ed0f6abbb0838e5e8f72e228e7399b1612473957755b54d71cec8e51ca6eaf6e54aaac31dd0103d9a1f89867965bee4615e0cabf06efe2e08d72dcee467ee7328e5abfef8d04c24190ee0992c2a0ef37923b6d416affd3386763e6eab3178eb9219b2af33bdfa65133e148678edd3413c5481236c570156dfda4c25665d141d4f85b3f91b535ea6ce0db30427fbcbad156bd259e2cd1aaca1719188aeecc69b7bbbb4da27b82ee546e569cd4a9e32da6724c0a5da3467236f067aea0f0c7fbc0680234cadd16487c038eddef5af3e709656eb34206c23c5058638d35986b177ee26c666646fe36a4d6d4e8942affa9c6063333357bda91db137ccb7f473fa07ca0af54a1cfec0d8eb2a4802b405cf112ec854c7ce2db1a40428d4f536356e300aa8d1a2d77d323843220840288d136b731d2b612004820bce59eb50da7527823002d00383820a050a4d30900ff1f944a3634e768a806dd936a3151f9e5a802ee49754f5e85d98654e76cac767ecf9a8e7b5263b2301183cc8e8d5a0bee496bcfc7878c3642f11baddd5bacfd9bc331bf3758bbbf7f1d8ed1f7971c0ef9adb519b479ecb3f1345bea4295ff6ce2c364cfd9c41f65eb6ce2cf8caff8567cdf41ab7ce7bcc32b7f8be05d59632831c6df09d2c08fdae69c4dfe8d2bb3364ffdaec13e9110853e525dee8e51d32155fe37e251c20d52bca8fc2d902a90bfeb6738a1c6fdfdee24a364e6bdc10fa58c110658191a49000f5ca091a02386f0d1e2c8972543820852c28728bab0b2c5159d84548288e98a23588d806888ee7677f714add0f3857677b74bb7440d322822c847088b9a160c25e9a1882ab0a08284afaa2c891115a355c586a5713f4a544e7654013aa1200739591a0734b422a2405096889adddd2da71732bed320c39510e8ae9bb28ac01422ea33ad08a4a0a89fe82936a8200ce999bd28f2e2cb173b5ff494be06e8e3a25b4929a5ac81ca0629591aa77262f108027ad9ddbd02279635638c313686724bc618fb87254be39a24212425023f50b1254a29a5ec6e11388ad8d3ddddb4bb43b09cc41863f4186334a28234ce638cd61322a11a28b408a08c18aac8babb7bfa173b0461250a0f09d01841aa99b8400a2853d4708427d57d44ed2865c8870096d5520908d6142c30801b51e1e189318a00032e30289274579ae1a4871940b4df9f1096942e617c10638c11f6706131babbb3401ae7dedddd5186eeeeee6e225250bb7f62b0eeeec6e86e77b7172c54f0b2a5bbbbe575d93002820b6f7533c348ad766cca4e70c801aade8a89e539b7b7e5ad88784a9101175cdf8abd1c217a2ba8d202dbc57ee747448f9263ecd210ddb83e538d19712ae12899997b656466666666eeeeee00f8f4a4cc33558922e7d2ad0bd3a1837ae2093bea0cecc47166a6865a28480351b51bcb37aaad6cf31f3c9be181b39999534da3407054e527b01f39e710246a0ceaea3f54e55392137396e08d0d1ffdf65ba954712a0bf0c68646717062502898d369f43f4b254c73409b8e1a79a050e3bbf4c8a39cd735ba6c0341e549494330489c943154f9476e93c153f5847476d53ff5bd1702557d2158b236d4c83bb437feac9576254527599afe49d23f42557efff4cfd63ffda325d9729db0057dbf5d3d5791fe9994b42b48a4880dbc2b150d316e498b3b34c6687d8d1ad78ed239c2d0508d2cbb1b4958827df20cac8d2676d118e735a0eea43fa15038383f9ada46bf877ce97e43feb3a4ec1aa5ec585983d9ee8173e9d68573aa82997908c70ea9187123c4cd392f40292a10eb5f3d223ad485f58830bef31ea3d5e45fcbadd657b3c9a48e3dc670f4612474c06922cedcddddfdde777c81f9c6836869696476f0b9ef59a1dd6e03ec922e481a65942dbb639491c21f7e0a7d11ec73dfdb22e9d3d40676633ed5a2870daa6d7f8a418d660fd72b6dd351a3f3b3f0514ad67848cc8b446024d2ceedded8dddd6fb392c9642a99d8e33bf7c77a629ce5387466244d2a99b85720f85c404e6cd7141710978b896b8a9ba10bc8690922720181e0f333dd9d3a2c84b4d81c16a42112b3500c0982b438a19f22a76666666666eeeeee1b1c349f388aefd2ef0b6f52f796cf94b9636af049f7a9c00d555e54a4d2e22c1407874754a80e49a2b673a7e8fc9e5b39cbd10b39d6a7f0aa7c6c473c50a8d73baef1d2b62015d6d618031ad813bcc09ea0029050c13edd6a7a31c40dec56596213ded28bdfb12d2f99844824d39e20937ecf98f04bfef8ef9b5f36bfabddcccd1c4925d3f27c36a3889999b9bbbb9b88ee1a567116663a9b676a936acfdab30ae6b9bbcb383764b0cf3ecde0d8e28bf9b4854b3d50f0a687856a14a3dcaa875b758c7c2a729b3168a436f058e4ccccbbccbba7ca0d97c02410094c012c02792affa6b1371068bf68f00b5475814010080241200804812050fd5237fa256ab0c7061158847daa826862c45545bd0369e3c895039facbd16db6942132b4c6ce81afad3490e01d126008088ca162658712e35cf5992427952191d28897d7289040e4fb5e7c75395720b9592a6b1cb72af5104b796791e90f398a7050bcaeffc69a9db8ba91012bd22876af4a0468988a8215185ef9885ca9ea9f1b4b0135086784f0b10ffbc9ad399abccef953413896432f1def0604fe453404c41249209cb98c4bf3226fd9cfd90ff42909d9dcafd968f7effd7b1dfd5f872941347121832dad1da741cdc08ab03924aa6b73b4451fc5d18a38e8b5ddbde0125c13e6b04d0431719700d1ace3250283b301c11140706ca4607f639348b1c6e313e89d1542345fc592989d34b177133376f7067bb68d9a29d1c3b6c972c4b46b05dba089ec10ea8bbbbbb9999065112fb6c12848239148de91eb70d4088cacfaaf6d962921c962a7f1b80aa6e97126638e190f6a9ef311922a84c13fa38c0aafaf8860774eb9f7aa306e540b5564feb9eba5d596d0d86c8d9c01b1c287c21ea76299994f4d6a7f2173278fbc4a8cee0b86227e5d5d670f857c5ef60123128bf73f8a37a000f910390999999b9bbb1a08fe493bedd2523ac90b7002324d2737fcfbade7bbbef59cfcfdf750d33bfa8c59b5f33d17616ad13bc193dce15287e2c7ba9519675a9444205b20d64ee2d0c96b994db1bb1bd579d0333333333f3a44f5012fbec167278793cdd4299a6f09c01fb9c010995692a67d8b49cc311a7a0978f3042dde80ace063e0949e8fb11b31be2662d435e7c1c3333337377777777138e3d1679f784b01bcb53693d6aa2307749c91dafe52f1889c4bc71e37e8d1a673dca71394730306ec9ccd461b8d1cc5c7cc72eabbbf228679f5432b9b55209275a804aeca792149e32484a503846e3e119c53c914fc10895207f943199f2b16cebcc9e3b5d5daf6feba385619a7336d7653dc7792d9f801b46f1ea0b6f8d216c02de992e8d2674cb511f74cfed6932b6ee5cc4a511c21577f7a5b5e5d913fc92103cee2d8c7336f175acdb1bdb93cb53a14fcacc9a8e4ba3b6f3c0e3533b761a15ee2821ddeaeef7ba5fed28df954c2492c9246be60df6dd8dc528fbeed4ac811a9fbb9b8525954ca8221ec448cd72ec66f4fc0ec6293ab034f01f5afef0c57def3dd9a5c6acf43a56052774e2f08e861fcbb61eb4c6d7710179ecd6187aacc21c1d3377efe3780297d79c65cb9c93e4dc51f7259d8c44bb70ae54ca6a6f20ab3c2949ea6422c850b4445659833770428911375bb82722c1ccccce85fa2443bb85aac2cc2ac7cebc640655737c019555c62a1d8ed1fc0d56f92e5ffe3a1c302f63ec48b3980ca67fd43fb1cbead85cc46d3180128e999999bbbbbb5b06cd3d8599bbbbbb999d609ffb1e96795f96fff3df9173361cd977a44202dc6393de9dfa3e50a476ec2eed563652eda86dcf095cd0f7dbf630806364af3146afecb508dfc2cd2d909287077b22a8d448685d09fd33637279c7129a63f4f6e8edd13bca2865776c1e78fca19399992969ce0dfe3881900becf162e8a7c4c50230e5daae200d7c14bad44325081178cf4fd002502027b6338a3bc576eed48c7906821ab3861ea831b32a96b91a63c728250926f19cb7df699b4eec1663d3b1ec9eb737b783e652bbc9a0ddee0bb78358f904301e174b8c1f84e092a5197ec377959f2143c885756173d42307183ca9134a629f3a396cf408f5d0428e27cca829285a0a827db669f505c3d106d17dd6366861cbf080cfcf9a0f86432fb60c3231495da82ca394b23b46194fcece5149c0478d9a1003a5ec93bdfb75bfeefe7e1db0617777e7f889ecbd5d8670cccccccea711933af64601c18fe785cd154c688227558292d8279bb003e66ed0fd5799f71f67adf167ef2aff3eb1009f2fd2ad0b9b2be000914083491d3bdbd0dddd3ce912ca3e67a8c01ee774f7e96bd338bbbbbbbbbb19a89fadefe66eee8e5146b69a35965187669fbd9225b05027189ac5640eeaa0dc47999c98bca825ad28653b0a5ecb2e704c3876b843fce9eeef049e340a775aca4c6f041f18f2b83bf858ca244188491d7b09e493a2c01ab569c20d2675ec67c02702eee19d225e97ca4f8c9bed7959f6e74be5e73128f3f66c4f96faa3aa517b453656e0fbc23e4df4f8fbc23b55b48b8bbdd75c32914826d38d0f72cb99992507e1ddef15a09e44f775373be0053890dd39fc6f94133589e3727703fb28344a61eba5c95cefead6573bf3bf32cbd9340c9d73bdc5ffe0680757cb0aa32bf0fd09afc1881503168a32f2024b30645de12aa31e3089e247b800fb02df2d1d9a18ba8ac0f727bcc07757b560e680c345650bec87d3189a58e0fbd009180551bc8bf77395b1690c593cbce0ba01be478141d24d2614ac836b0a8f3184f1c842421a07e0a9c1f3147677e53483684865858b2a8ea4560d1a9200edb04351512fe1640a7db00f813dadb0bb6f9786ba5faaa2ee9ba614c1a2eeae0ce10a792ac18c3e531514a54569adc490a5eefb6e152454545275566288a2daa8ce4a0c47c81830cae4e66786861dab2845024371ca0e2ca5313a091d6adcf040dd3b39ea01be3fa84475ff7b63660643f01005cb1753dca0021b10f9b2850a8f1156c8d8f07690b9e162a24a0e5bb2c8d8a085cba24a0e5654c9c18ae6ce64dcd9bc77412c6081929493420550b2a4b0178317a81e1067002949617076e6b8842fe83ec667f80cd1b3b337e5480e44717686c20d540ca538d384486d1129aea8529c750d38a4aaa4c086ba91eabe69ab986055f74beb2c77c1c8ecf0ba09a9f0df431286164a529c6d1449a4dcccee2e13ccca0f445694f4d41c3d44608ac9d37627e572709490a14a8d3183265fd68a18eca8529b39212d5c1096a2a1540e789e50e9a0072c563844b0a852989c300bf28068a0850f2921bc8394b360c0281a6375c412984bc14ce6399bf717d014552a268c287e52d0072f3ba9cd5c2ac7ce959d541007c2c14e4a080e1a5f6c0922b3480921c52005677d38a0e0224b0aeb09330785104beca4b03861e6a034296395c2e48499eb81103f44a9cd504d5250a4f1842ab599698694907dcf0ab6fc8eb520eecb112a825242b02452be0cd8ef1f9282f0a11644664b8c8166d108fa3496b9003ba479cf5a90c7c409345629218e468a7f480a66321780500b528028523c2485ede4cc793962862af55ec73a2f50cae0928299cc96d4db950193712f93c26e753331cee65d6004f80308adfbcf8dc041f807107f99730fd617821db03e0ec2fd9e941f401eb6dbd96a6e13529fc6fcde11987b27bc77bfef84fd577f0071e76cf65ff69ccdeeaec6fb707f087caf09ccb91bb8ff34eafead907d19c09cbbb1efbdb743de5361325c2651b870e1ee6e69777d7788eeee8610ae965edee55f7e1f0b21e429180b9efcdb6408212cc1666e5ef8e53daf31a3ec6ef8e4da4f9b7b620724720502eb5b31a27bee758cfd3146f9788ddedef747ad9f7e37b3e906933836f3e041396d742048b5a7f752fb0adff7b4df1ac7fdf7dbacbb3ff7b4b446ebc6ff91f6e42a8f98fadef2c7a31c09fde6a5f6ddc869ec4fa8db93732f95200f6fa350c8dbeebcf6d19b7385fbdccd4b300c7323a86d2e54b8ced198eae3f5c704b8670d8a805617637cee04f74670bfbddde7f6b4055b551787460e022d40e9006f7362407d0ea8cf1ba8360ad547bfe3b83c6319e76ef46ff22f8d9d94ef9adb745e6b52aafb1daaee4ff082ee3b9d5d7101a4b26b7f1cff55206a3e5605222c4e675ef17cb8d8bfc518a3c3efec03b30b218c5ddb58a82edd2975d728873d03d2d5df6bacec5ab653669b56b95f3f6b94f3163e071be6bd0354feddf8df7b9a7aaa08a86eb4c3f7e448d5b999ea7e2b4d47e3fee9c4d75f8a1e3333938048259f9459e867b130337706c34ee0ad51597b01aeb146fd111f8857ffc70f79bed10eb8b353b7213b3bf547fc1f40bc5a0fa4547d047e6718b6c6c7e20bb0c6e7bd9c436466fe53cddecc2bdcafd881a5399d705cd10a10d8b25b50e641b37734270c7874c2c609fb74d22d1490aed2dd48b408ad8579877d320a1c84d5577777f7bb27655c567777773f77179bb51bfc34e31207973ccc9c6a7cbb74334b2d069a10a874cd9a18314333020100000ab3160000180c06030242b1804c9263c6e30714800f5a8c4262442e974ce38120cb7120444114042103800180184208420a41636611eeaa0c4d8c95e48cb356af8b95d59e62e5c73fafd3adea9154e8af9aa25a844eb6b649afea0c0bf7a3f666f20de8a3b930ebea08b76ab345ec42ce563ce9903b0e07f86774de543146b3d16bd4cdb2d82850b6d6adea6c111308f3fa48176330c8c4b9a0b3a78a8edc68596e1aa51a6df9b6d255d3459030045c36b7fd2368b21e21f76d5dba6ab3755196625913c8c252cbb81574da4d9599c7cdbf99adcd5626f737d193bfe18ffdd879af2ee3869ff96a7d49b57c9f594fdae713d9be5753dca2f456e029f2497b35dbb76a3346b8be6598569bad7305dbf76ac52b8cd2327ce5f5b2d7b7e5f7d5661f8dc372cbde0951617910f3019db72a8dd573dbd57d03ad8eb4bce735d71923b653e8aacec435c51b8ba7d0aae19d1bb396cefbaa3cead84fcb9e7220aeffc16d6b6fb599fb0ffd2848491b6a7e7061ada5f3beba914f9cae9c5909c45916b65cafeaecaf9ed3b3d7f22356a0127e109bc68ab192ce5b954612fe5da76e99ebfef6cb9615af8e745577b4cb141ca4d0b0a0e6393933b8a6b37aaad01a4f6b252c91b4fd58c9e57cfc6cdeb9774d0b3a0e41faab7279d2b8a678be5bc52e65570d1012812baf0220d1cb8ada3ebc14cceaf02b8f9f0e8f662d5a9b2a3cef2d07d723476af6edcee8296fa91b8772218c3bc40edf5a4267ffd203179c6c43a64ab88a3ed706233dab9245391eea6d69850f5d98fe87046c1cbe25b09ff19107538416453cc704b5e3c4dab18b6f2354c4cf589e0b71cea2a45ea0db416d84ccb804ac3818eb65cf3e71781fa213920c838f11030f709b969f06b09f82f4abdcad1e92e57896feb422f916f82402a348c6a4845314d5c78a4ebaebc45b956d347a2c969b6db1744d3d9ad92bc6b7ab8af145c2edbeaec3b0e674718d050e75629d6a739e57203e4400943dd2a0975a159274191103058d57b9b2e51e753f8a346f0ec9aee8126016f42a58b36277be4d5f1e0b7b04bde9b509d7c125a3ac5631978d6896cddbf01148785c8e9a987453b86ab0a88de744b18dd9ddb80b85a2779ce40f6d25c23f3f4f037cc4a660799acbff1fd847de07d6e49a01b31a0018edf814ece360e0204b44bca0a3f3b2da655c15775b9336f1ae2d618814cad59aeb5318c7f531961c86ced94b8ed186476f629403f2fc1b21390f050b1a2099173c577c273fcdb0f337cf2c6e3c1aea2e9dfbf3c23bf34373d7733fc759896bf48c5e42cca2ea68771569774e25e58d8bab8a034ba33fa70ac42009661026c808a9af75897eeab3c57ba355546d7b3a8a59cb4e837c6b73b54bcb8b539c637ca63602519ec99c10940aa295abca050ab9919e840b4ae5954eb0e22d05ce3aa4bde85bac76dfaad045a7e87bd65c867c634a315b6ee9f1a6a8410bda5ea584e1d26b50563c1ceaadf4d8ec8be6ad5b13d7a25421b6a1e476c170bc0ec6240b47418f2a0a67afeb75714d00c7e87ccba3e6a85f069fb47b3ac02d838c7d344fb5884ad5cf290be2055ac64d217e74745de133f10fa4b5eb5d6609bd1c8fd4d987a8a31121c79da63860f73516d02eb9927693854aa4ac1b3422640314dc52830af6b90876c38902d8761442b144fd08a70c256778b2d4b3f5d6870337591b9caa5a4307ead8a1a04c726a23be529ec373d5e66b5f98c0aba000172008ac7fd78ca73f732b07269241aa826fd91ac35175af2e0fe2f42874da28244d55394e0f7f56add6e2282135dc0230518771c655b153fe8a0dd0b8f32c7c171fd94af4216a6fd542f0c8d879fd729e5fe8740eff172bede2419041d85690b5b6e470e53ba74962c34e2a9045e9780b6371d16031d14ccab933c7e7318bd9446924b565a949e0995c35cbd456973c24acaac1f60cef810ce23d6d013e2bab34bc30e5b148e821ddc565a9ccea7d5348eaae752222aa12234e185cd45a735779fb7020030fc254fb571f1a236cdd9d0f80710e05b767344f9c180cf130655493fde216484bb17e3538184375b71bfdd754861a28d80f0f4cfb40cdbb65a1ef72809a18153dc1e5aca3a85a2426a21f310ff06254861c5911ecd1f85b8db2bde407e66617da63a87a095d105221f8d7d0fac97dd59158832e1af2be53094c0aa6b9fdcec7d73ccdbe9e4fe728bccd0d4ff0e2d5967f1bb9a5d8c242a0acee804d862dc24de285a0d2fba9850e8a7b1a34b24f6a4efde7d0d170b0488db7bd268441f41d8f828b2a12c5320f9fb028e97eac48eea1b4321f718ac8491b2190eb227f93949403356dec6a972f740f586d3db1191a90677b803a9158e8ab9a8a0b3221aa821606d2e0f4025f44d57323e8f57960a244b6235a7cbc48b180b729d65ddec9f013eea9df2bb74158518115e069c5488cabcc5e0672e2937c969646d4608372da938149d41e4303e0519a705da286ceac1765dddda074057dc16a504c94ac24577fa32b65aa8a14804f48d1e5d0a26f0c3dcdb90dd82b1c3da7005e2ec2d558eacd94cb8868c16663e7a4402e7e8541116e2931a1db209d71e36643f4d0d73bb8329d102160958c2c06053d6e323c57166551983fca8431c3e66b7061947f819ff2f63d86646b01b40be941c6b999adad89d2e556f80e62adf3f8087200f9de1910a7ed729ec413994db2d60174c206b92612a6ee53c2395275b6e8fc1e2bff08c7f00191b8187fa0432c643f00cb774f4db416e1af4643aa42df5ac08e029b1a332667ef54553ce365a1a82622ef3b32f08f166f340f4663ea04c856e130f73036b3b6a29c45f9aef85e35cd9b05550974c7fd54dd2a7a5cb35c841bc822db4568a83849f6c67587222acfa9416e79c1099fe4f5658844fb0b718c648e85aaf3dae76928c694812d6a5462e8148fde08df48d987888799321b17ee09f327afab052e3663d29cf8424708f9c873487aa43bf9bccee2bfa1460f4253876cd8c04d612cefcf8ecb2f21b55dd06e007163970e74d501828b6c07977c2b8e631f33fc4d02c54458a790ef92db080e12db9fa873e969d844b7865236d997330027a2bbbec2ffba66a4bb3ca5d3ce1c915986896c383d84ce09dd370bc650c4e7a77dd0b0b011d899731f11a80280f249dd8254be9ebce634ff23994674c73044200b4c01be4cb7d590c6bb61879aa81ed67d17da91003faca2058896f71269e306737c957689773c0c5f6fb3020f1c0c5d93e57ea21ad218d73d1086089723ed7ea28cbaa719baa01c060462cd57e138b0a78d8c778f3c2e0ce74b7d436653821c988e539ba93fdb7ac55b03fd92b85e83259b60aed20c6e0ae384e1bc8546aff4fa7f3e771a6afc813969e58790e17dd1cf7811902e0c6075584121beb2cbfdc855912a2193aa3976e5dbf371e02aadb26546929a03cb409d2cd444fb0d92745d8f24d20e8a4a130f78e044dd987012851c5426920aaa95e0611d13d59b52ebc9857204d8bd0aa82e64e192615b3feed7e878c42aa5af2d7c503d9086fadb7a1b4d18c475c2bc29fa958e40bd935986400545aa3e05ced54c5005a9f0fd9554276c876a5a7097640915eafc634ebfa17e6394ba4ec4bb01099512ab11dc80410dd9f4e8807549fdd3bf67b1d8ba798d5c087562eb7d250a31cfe900d60851beeb972a8ce987e69c0b76b78a94876aca8cb838a18aae10dd6f1a5ad31078237776ff6f03a329613f68d6e1987ecc3ac68fcf5aa12f6908dc3105d3393b497169bbb98a2a15be5d99b8406bf4bc99712f6401ce2e445fe647653ed5818c3026b50e1b1a32750a507c752f82b6da42fef5354b5922e48a6f60aa40be6e50819df342284e12f29cf79c6c40370c7107982b8887d2332c0a410f54eec0d3f3910f328743d0466dc165024923f0e166899c03c1f6ac331e3b5698835c51dd3400cbcc0f3606bbcfbcb3e29bfc7300443b3babc4369dfbfc55b91e6273d94bd7bba282739fb7d8462be310183f1b965c18ad46fcb586892ebc9f611bb555d27b3ea7da22bc9a35fa86bb29559e47bc5c7e7680ee76e1f81b74c1dac26370844fc65e7b1cc910acd9bf670816d8b9b59ca47b4fc9d0534252d8d33cbb846caa297408077896de91bd62e520cf1a42a580427ec00cb7869eb163003a0d17d3095f2ec0c3daaf0b1e048d0763d4820e056cdc4e2ea5e3ff1be0bdf41b15a81425a752532929320f0ef858e2bf513d9719e0bfd1191a6553419bae959dc07b174a5416ea372b1f80032565903365334421242a3636fd37d656782cfbf9f157130ee02bf11b33a314c9b48c14fda0203db92357bb1e5418be2cbebd2919b2f5001c00d0b93689b08afb37d3745a000f708234f78f11aa84785b332e5b7fc57bd4553add88ccb85d4b70a45a27871cb1b6d39dd294903fdca24b6707941d3f390489c4196e69354013cff384411bc5dd13bf17e6d103de492f5fe05927e9166dcb281cb194168b711042ca1f5f69d883a212fdb0b64189b6f6cb959ac404a01df05a3a8fbb7116ee92f0eac50e0b2aa7708743ec86d5b136b42fc25ed7a85880227630e05add37effd26979643c7e887e0cfbfacba8cb08338e9c4555a6f4081e3a8c8007d63ed99d779711ab897c6ed2b009e2a0960e0b5e4557a6c2a231a4f07362897722eccda4116d74e135e40f6ce18819263102db65a9f7c38e70acdaf0238eeec98e06c205b63c8af797e3ac7b8c05044a7501480950b22c32d8183d130814fa32a79a8894abfa518a030b00f497da7806907ba08bc76555542c09815f9cc5457d508ed0a069be11032448033ee1bf410a13146448091021e7d129f0ae20ec65851fbf3fd8ec8908d673e734e99e88603143a05b02769c21170d1a8b00b33c9a8e7bf12b6c6b66597467789de65272a8cc77614bf68c57bce716be938046e7894da693887e72c7d8600b2c9ae9ef9096f22f97e381111baa8041dc4ea45e5d45fbad1f9e0cb1caaddfe43e67c5579581fc4e0a7b2da4700c69a65e83f9670212bcf3e8ac4872497bd4624430cfe08b2fa9ed948da0952c68d1dc81f434e31dca76846af49df4cb466065a63eafa731fd8927bf9942eb97bb1e3a1f290d8c70ac64717e043b91e6656ce86ae5c30f7cca72da8c0e20f15bf09995760f6c8eeacdd4160e908cf338db7e7c3993fdd2178e67cb1e4636b3716ca8f7958efe3cc608854e4438b96fdf2b083aa666ea3ecaa0cfd62ebbe5284863c5bb6b98b587f9e8da1618badf940791ae3748d769c773b5520acacbd3fef8ba90b794f30588af8eaa61b645b2417ed089660f83807813630746311baa30ac90db4fb320ddb3929c1cc6c7d590e6d61f7956f97222892bca3861f2fdba632c754ef92bcb2ffeb288b823c1425d79da5ddb11bb815d78c5261aec166ab4530fad909a950b4aa6735ec3d917653e097445a187c043e5453adaac17176a6cb5a6437063d028a015a35d9e535f6c268c64c9d7801a83555bc81cc1d4c2138196fc95d31fe1800303bbfc38e33d6cbcd649af48c757ede615f449720c0c7de08913ec65ff8953ef6edbd055216972986d1fe16b45bb1655d5aa7d2982c8a12e3b9e65458503be290df755ff86bdeef032c8946cb31b6d6bd065959c4fc7e2b6d8a1461ccd4d00e716891e08a9d1d40c3bd1aae4820138555a380f8e08f14680a01f7398e0212c0926263ad4b54787e2d205d15d484f015d8dbe42f1bea2fd3efab48b3a243376a312cf2f56ae13fceafc520b9727146ae50e9604fe9f331998e93236b2b3c767ab90160d0ff29a007148af9c7f370b443708bfb3c2eee70c12382f684b222e479c764f7e6089f6754a5abc8eba1c8fad2ce3364ccb2eb22e6b18b307800fe7c32c57fbcc014c234d2a241fb3da3d5135f0b4a8eb073718486df9f9e43b45faed67b073101ba68b70272adaa62bcddf73b674ad32ff25d6d9c34f0e025726fefdce1bc6acd020fe33dc8ea88cb71b8eb35ad43b8d94f64d939bee5e585eb0cfdbeb869d6e0e7e52a8dced19ac9d129d49cecec603c05a2ff3dfb43cc7f1c11ac653b3eac1ddbfed5954f08df1ebad2f693b00b0f2d2646e6065174d145381ca2601666326a0b5faa9c06c421ea8802468072f1c3c741a2104d5377dce83b813bc8dcd795181565e0e827ead93c0c61373c858e43e8f799d43a5969623ed803c32bf9d4d4b7a2448889fc4a6f684eb9a5370f0d3edd5edf7bf7c86a3bf90d395d4967498730679d2e0c1a7edeb5853e105450ad65e8330db9bfece4a245f3bd9df0b1daab0492530d91d0ace74eb6a6223743da3295581c608aa83c1b184b349bcbbca1b7a61a7b0b0fd3d90b958971fec2885a055d5d00910c7585fd3e6d716e91ed6e79ac3331d6ebda401f827fe0aa634ae02ea815946c6af0d7bc59734fb5fd1137f93d359396beba12ed4a990ef6c371eb023ba59572b0dc2aa0a12268f099f4c54b774607732b3e052a623f7877f9c90015399b026586173e9e8e97e57fcbb32075f9494b0c2d505109598d2e3909b1df58a0d2eb050a2bde59b8a5dd139b0dbcb83a5a295f9b0564ed4f14fc48079626b5669bd6da20a4f21e979033ea4f4eae0ef3ab788a1f82ac69db66512ecc8ad06c60dc16851ef0a0d189c87030ea75c7a3cef455a521e078c494a9b3e15bb4418dadc127879e1565624639be87519b3f291e1f686b6d7097c5332ab6aa380645bc7297674fae3a42301973d31f95eb84a6ea9dfcc10afe9ae543aee997243d49d6a731f218ae014c5799065a65ef2413c8431cc200649db201dac2bd1b04a1ccb21e58ce32f2f659740b2dddf107a693ac1008f5c8acce479d9ebd156cf69b7c6c12261ca4bc6204bc67d0ffa2ce3ea36eb6c9f1c910985f541484166e2827ae431c8fc1f97c42ac054c65ede8be3a4fa05de009b97253035597212711d1a075ff6b9abe8b015deb88c186e0d9c9a2ae4bb78187dfe210c9844ae5414de9cf649a47220402e125eff4aa8077ab468d982d1a59a72d8a0079ea95ccc47fae56aab9513c3be56901de726cec86ce2ca69c8beb19a7dff6a3013e27d2a4793034c08763311311a32fe665d0fa93b00d4b8bd15ea99c851b0d9c6a5bdff821c50607d493bef04a7da72a7c61fbdb7015d07829114edcd8ee0447618d99b542ea33552c1326a2417629ee6b0540b33643860ff30c8f1b69034419adbb70a42720104ac85f03b3837cea72f1970acb11dcc3c34480a30b6c305243edf4baa0478ef90dbc88ab5d0a4504f84ef4f0bf3ea8761c9a75bd0f07039a369f0b9f9197464a9e5be33538adc9a3f5162db0b25244cf96cca5593e75166c0ee773a082b45862d824bd367da02c8df1bb425b115a96bf2ba2514698c87febe6bc9ce9e5e456adc66a00cb182119b947d5e4b97f026be25b6373b3fd1c3166d1f197663157c39d24f2199c3f5abf4c3deec3f5b0e0dff615784ff614b27f498b0b97484caf6b44cd25c6c87ddd510389ea2fd5ad14ff22740a23f8dbc4a155933710e86a3e7c603febf876a1ec948e0289cec1962973fa603fa3879d11b3cebf47805ec8c4ac4dbc62881731ed96938ad519fbfb0919ac8cf51eb2411138badf1553456d007ada6938c5ef72f8a70802cbc511c527a878b6ad65d534c84a4a77219409f828ee1f574d2eeb6625b4c94d4ae8a43c377d7fb7ed3fa1c6037c0f631d8ed17541c4f0306fafb82040cc228ac2fd2dab8c6012d663d516cbbd795675424fe5a240dfc21ccf0f9e4c17dc137e7b790b33a298c0ec0d1183d01682705ebc12a9892b3edc29866673d62cd94040469b0c19615758417925e2a3fd621c5aafca017497e292cd3bf67a2a0fb147c7b6976967e1c6a6ab3a2f41de378626457ecf89d6e2844444b727e4017470d2f65b2a396325c9a71271a9e6d1db978f4e6c96e14ca5ccf64eb41679434625eb705536eaa85884272beb4c8c5e01b8e98cd2edf403777072d691a61a8ae29640bdf19f95b3e255a46e196fa8baf188dcb751aeb915151da3600079d555752881985aa16be47c4b22c6ad29b3096fbd20d341aad2dc3bcdc03a70f2170739b51aa79c189b8f45cbfbb76620a95aa35adb94712bae6d76b5e1b59596f1553bc4abfe6161aad6b7cdd35e08b02c46f46a1212143bb0892a0a517c564ea273be7de29a2ff56044f549888f01b69249ddd44934942b86297831299e130b66568365e50ffb11e938b55f262c3d03e98d4816d89401ee50481ecc6e3e1101b0e2ab93e2ec5a525180afcc304cc8179aeb737e32c137eff4d88a99c65e4df4c5b318fe149cad99a7ccc9fcbe472b066db03c716a3d4fd48326bee71c1caf8e5ce430d9289ac8d3192191319de6a4f6dc409457dcbb7a828ea7224c6fe1cf950db5614802e69084146936857a14d15341bde45812df35c013b21fe1c3410f419c56bbb0e5b339bb000230fd1a9f992f46854bf218ed945ffdd06bcdf926d92157670bcdee1d8e602a28eba9fae814e32fd9abf9b595b269208b307f474a03909dba1ea553df24686af9affc6821fa67514dd169fcc7f8018a3f541a7105f8fd672f87515da173d4cbfdd1aba328b98dd813750d038c53b7e8a41d295cb12f6464d2e4920f0793264a60e76d97759a434549d5a3da996764d5dae6d24adf08376c7635d57da0e238fe54ad7244e63921e230ce4f213ade08a8998de3311237856b25e6c69339370d24e602e5ad25bad06982638cb9a2ee50538ae18dd36a59168f00fd42d9ca8b3eb5d02178bac6fc5a2f1358a9659c5366671c34de2e5db0fba9fa6ad9a34b30e63448dc684bbacb1d5b859b0d5cf683eb054804c5a12c1d0fea82f4599202a7214d0496c1d0c3f805cb76bce790268f6fc0febfd4e58fac1d14fd67f2a17dbd2d1e1a19f1422b92ae2f2aa789d56506e9884fda8199e3e9de6fc1dd5d4fb34dd08723470e180284efcb46a0dfde7044a2298aeccf472778de26233838860fb19cb95b463c580617fb9335e0f09a2823c18dcf15abd29f329a61cd06da60f97b6bc4162c50d2ceb720e45938052535e03e5995ecf3bfa3f5e0c8dd17485299eeec886200de27d2a1a0e3019cf8583b2dd9513caa988d6c9218999b358a6a708c05f94f49623b4f66331f58e5d8003d265205176791f3844b5d3dbbe261f64a6691164e35628ac3fda0ce97a6e0fcf9348d12872a5ede4aa53d4e2a650e27ca9172c8280a5e57cdf66d05f98a015563bb9fccb535471b2db824df39b01dc938341923a200274c6cc5d1ca1d3d263088a7d06b8490ab9ef2666fdb307302cbb6aa18de1cd8cb288454d11153de972328e1896016c25457a9104fc2369c1830117831031654566e5849dfcf660bf1cea9ce343e2cbc72cef3fa34300efa336f14f73d1bb8bc73335273fd8f0ca12c90713c8ccd170c617adcbe7491e0fe676dea88b749b146f5a10c7db205a3d9780cbc5c9e4bd1614798b4b6f56a6b17f430c804327039f8c116bf79bd766ff8711eb7bfd25edff4d31eef75e5852c965c2f974558f304a102dd90dcc2669e98d84634444c29755fd274c8e9e19cdb7fbc443295dcd74cbec4159bd025f266a6a8f100a09ffb5d5ce1acd5c712be4c2c0cb23d86ee21893f5332f95f8f260dfb5deaa90fa130a7e2c7652a08b332c7426a8e2e0c0754481148af038bedd0c3b4c46ed72da769af0db1a9c8eea716a51630a3840105bd05f8d75f9306168e6f4423cccf57cebc252cc3558dc6c96e10584d6d48950a89cfa4df51d1823d35795aaff9a729527a3fb2d3bffa70808de8f9fe43fb1e88d24b64dbbf3b5f65dda9a6e10443b017728bb97a62dd9909692406eae689ededa6dc2562a06b674c7e32eb51afc3d637dd9083eefdbe358732d1fe89679d9ae9878a84171dcfb21a7065df293ad4df3a514b49000f125b8e954435b03cca5f47efc8a398d0007463516d86f8d61cdf95d0b62cb1f86737d759ae5e2ac4512ea83812428173421c06165fade0285225bf830610fe6e802c7f174029d6a3e755fbf05ded819e1f13a94d179eb6c938bcb6970330389513233e55368fcfa63ff42f1acc8b711e2faedf8672b08596736a8e4aa05c1b4c184889ace9c56d8dfdb71c3cd46938669578d564fe4be07844e4897d2f1602058c465250dc83d2b9593e8cb19ad7c873554218427cf2fbaa5d73a0e795bd900d8098016409a1abce170bd92fe414908d44dc2af52e132442f092b77b0710dfc10dc35cad3b71d05e0e8930f3abf15ec663d7a94f3c65b2c88071341fb70b7073fc01719f28968948383af019d50f37f77095671ab83d5c4219606da5bf152465fa22430fcc006ce59cb61a843b6520fde4d3ceed4bcccd720cdaa49e2cf9b3eff1d77e87c4323dcbed0530d9567d0c0d32731842d66793e766d4981941ce1072850ee7fbb7a19c0326d4bf876b58d4c992b79da598051fb8c2d2a7d9531174281d1a2373bd4c1a3b2bd2a9e122cd56c072945a8a10e6c62dd6b840b79e3efc12b581bbcc871e368714dbdafe9f6e1b55d81b267bc3e3956031832d859c63ed2eb4abed40d7519cc5d05ad4ef3102b7513761985d5383180399a732f2a5a73e397163ca65b6d8c37de0cadfad0e40798e1e2a1dd0c5e3c0470c824749290198e0c50fb6f4227de06969fdad22c54c49479fa642826e62936694d1615db31fcf649a8c141a6b2727e862b48f509d2b61be10afabdb7862532ad33878a6511f2cc9cd204714235476ca596130ee1be11e71310532d95b605ca963c46ff191acebc93b46e9260bca0901e7a2575531d4a8706ae52280ae45341a230dbc6e8a206b25909913e71d5089620c59773fbfc9241b380d64681d4b76bba06cc61dc667fabff58882f5b57185f601363aed097e4844bed5cfd54a672065bd2fe52656ac7946bf6ab9c35f0949dfec9605d34a7413afb22c02cb368241807fff128d8c7595681857e8d58ccb9ad5c05cb3298cd6851461b51243bc2acf98de59a387e1d0237a79c8e53f6cf8510aa081fd3362db96c89146c0b64020490d316a5e83264d6a11aa86b353d968193112450232b226080c0646bcd7cdedad3893e412f843b0d4bec04ba862efdf087b9464eaf2620acd63ae7127c96bc87fa686a59b95394de8d8931530ff97489d154cf981cf25890c9c01f9b7a1af01874f96e11c71b65578041d486153cde5d23ee399ac1362cb11d5d0640ae429ace475386f02f4bfeeb6da7f0be4ea9c393b2bb90776768b42ac610fe819006ab51f1084ada3c48ae6e15e7f775b0d381ac8112c1579fc8b21bed4a0cfa5912f772063477d244f8ba91db56ab76b8360b68ad3c279e208ca1cf605100917ec329ef041d1d9d53c91b6b4cb1ecdd7fe9f31a80446020f89f1ab71cf5fa31636651805b3a0c8e94019b10c0b0a0358ae3db1f3f1e5470293adfdef3209460a028361e1d1c936b8ccea3cd252ffc5f929e0034552ba2b4cd92ceb94a1f429bffc3bdca4eb9ff5fb3b6f71683987c8eda2a4a03c933dce35a42c4309e1bf291007e72345ba8973b74b351c4ef86228af971984074e5f774508ee8599c6170cf858581582a9c3e26557b865615fd3651aafcd815d9b0122411b8cfef62e9e9200463bce83252e30308a3eee8a4046d1249d2124b0d85dce8afeb2af12acaf76f44bb83c574456b9c3f715150010c1112089b66860ba560cf4c6a101696b10039a23105da6b1d18e67929ea80a20f59da70cd4cf206bed636441c6062ce1bec019b10b3d56016c44e26f37f3b9b81db6883a6966fb5d087b973df4ccc2b7cb1c20ba0a4cef232ec5a662e84652b32e388fdbe79c24e8a7dcc82522f3671de7210b6903c908c0d26894d571433b68d785f97f7de054090056b0c0209bf1d58885377bba08a020a91fea118aa311d4e86ce565f88e76380abcd114b244a77cbabac05beead4c5602e8241b48850753871ff198d78965470544a15b9d4ec8a40c987ffbf5691565c67e6979e38a4b05d9ebb59d81250f8649a83fe6fbd0566cc1f2ef5fbb585fd4f61c1ddd11a035e18931ed95a49ed87bd4081c1310413eb12e632b9dd6ba5d781baa59a8ae69cb2e4f0f056e102919ddeb9400f64e230997c701967fbd005574c848b2fe3a5b3119fbb67d32007a769e0489c5794f9286eb560f460a6b4a83221746e2661d20d3cfe14877f6da7dfa81f51244df5b275a86d77e9ac683cd4b95c96d7d8ed124bfac8f9c5a92b52d75c51cc1360ab5a2a40136b2ff35dd22b0d147f932eb86ee3a9d57191a106cc129c4eedce75a90fce023ea2d44d3fc4e221996a9dcfc46d605aa5713e1cb0d804260f0155cb7bda96bdd4e4ce6fd598a9721858eab5be48afe0a1d531649f4790494684c36db10587f658c7b6b78dc76d08a64711865f48179dc337828d8db7beabb725c1ed0bf66fd3f53141957e62bfe1e0ebdaa870e328e913cfcd8e16b18b2a16113bf1dfada592c2b3bf80319079e483479a450d6433e15931709b3d261c9c243df423b26f4260c8db0479dfea627f216ba3f607ccb0203c5f126095f40ae92a0d84f00fb25e3a6677e6c207a00d3ec6021b82e6a3860a7b3e563c4eb63961b943004fec45fbc4965ce7438d02e8f82477becd74fa5e37116b3e46b231d88fbde09382979e4795ac126f3a68dc8910f5ea8ecb0faf4f8cbbeafcd920b4fd774fb47ea83ddd572c476d394ad1c39f78bab69070b137634dd5822911c43d6beb00eaa7184b312ac7e59a95bb4e1c59e60c5607b31274ac05a5138e5b7b6f93b8c3b01d8d9f1cce3c662ef9eb0163e915bb92fb52d6ccd01aa960c2ae6b07db91e24e5d14a88c2fd398511445cf2d1229644c39972aa6ed7667c46182addc0a4a6c444f42555002364422da4beda522d359bae0910986989e0355c2b3dd44a569ee122746baae309ee1e9835fdc84c2fd83f26f566098c4789437bb10f9ea48625e672fb1d25c12a912d3f324573483bac181353d0ef9f53ede88c2c692c05f01cd6e3e03244a1eafb238ceb5b937ae3b5ab0c04d0452fbed17de3b0122c128eae8250e297a39221464437d124301af1b65bcfe743e8cb8310c68b0a3e3c13559be3c081992d91455daf33c1b7afd825901f09bdcd17da6ca48ce3a91ce103cfab2346f936900bde4c3d9ed904f887d6972c7dd3ea306089e3c62c75abff94ae5f5472bab25957686ac8c6a5e235b468e26317af3de269a47de1f8c179c60371ae36825205d47d24f37bb6573b96817cccb0fc9a5c4105b4c590be07219475722b41dcdac30c872a9d2d6cf449f52c78a40aa245e7c768e9b29acee773d1821180896314f2b07b69f7c57704e8228f84edddaafe6db0f45011d165f1b8e198ddaec8aa0a6f6233079532160ccb2d458b002be95436661bd0b3a6668da4df485c3883c81b5bb5039a9457c326a099e94752476afb478b2416d436f4f05ee81e9c71dfeb0b42a3b545228813f8d3c4b1fa94b8ea24b3ce06a636b09a92517c3dfd1bc5e8c47c57dfad4e41fae2990affc07024b7c2b96aaeaf25a6d2a7470e965ec696f96c1faeb7c6aa62f87b4658d927069a8a09a0cde36705bb3ba8eb6719840e2a4d0a95837c55192abb3569afac05f10ae23718955870f4b2a22f1516b9a9ca0a806447187998249f648df1748aca58096cec168c21634defc6443f1143811bb617d9d97c9527f88f56e609fadd7c091b7d1d21582622f6b772a30dbd26c11c48373ed92ac29c80dabe11783a277d7affe5169a52a56ee60bfeab8cc105626fd7937ee2d27c141f7797b7072d1ffb07110b6d12dca175b145941e34d23dee09211f817e8688510cbd1127ea5214f54f3fc00847f152616e8619ba115138c2f632dc3953653120bfcd1bef3f6573a71c107ab2125c750af28d3885593592f2166cd1c989b181a9f12fe0885635e27939763e9be6951d6a2fa836eb01695beb873b13a2b003a2e79b86afe9b082620adbb59c9c7e411133026d3662ed29017c83ca8092d3882b9b35745ea7bec8124fe1b8bc50a9496fa0c5b3c0d172241193727b89432db19b71836754553457209c29c29778e89118310092349121c119c2853c3ae01a8d38e92d155869c0ef824d80b6274fd13b32c0ef34b8dbd28ee2b3baff103ce81b9b7c0ae18164b40f3e98696a9c506ca1f11592f06551e1fc988035f5ef38be0041a34d0bf59f6e86a7c9986108abb921059e5536f0ae3e9974f6f44342e7476d331109ce3633671918543bfd30429fa063752a352251ddce4997c86fd1a86294c12e291f1bc15a6071b134e687c98738e9624d4c8030da628f58d55a0df8b1ab1a71e3ba820244bf1a514e592925064b039a50d52d58263ec98daec079019ff0c657307b5359a057bac1b1bfbd253d39f504834a789f6b05b39248422d1ff01fd59c2391e75342839415bdf5d8e7e34657b8813338a8a3adbc6627afa34dc3de1b85f4f40aa52528dc0a6f005513181009ae6d04490e04faf8016e6b1ce87a6cec898d3696139ebec3fc976f0edd747c0a59c53aab68d1afd68f729635dd8159a0113efb3e1eee1d46b3475df3d40c905b958984b37ad41a5358b1ad7563f0bbd36b7a8866d06c185c981edf2a0f39e171035afdc0935458a694992298124e7f59791283cff069c6d9fb35791ffd5262768fb7e4e5d4d7503cf78cf31ba631c47eab404d8670d5e2ba1e3890001d4ab728990a9d729d1a52cfb82a4104464d760a529362dcf1d36345d11e39c9051402f646df5187e7199ed3193a62e0045b222d9d0048c6e05c4b36555bdacdc30d366b54678a6d4a7f83fdc89d7b8ed1be8c121a7d259c4f7e0deee251d7d9a0f414f20b10974af2f5b814e20e02671918b0dca619af279bb75e936284c75718c6f90afca42a3d3a2c984c663152f166f31bb534994acba2aaa4f7548aa8bfd0ab6290fb16ccd051f0a46aa89fa814fc6eea93bf1db31f1271c9a7b1fe87b6f674c4b61177fc301f7099fa91c275a85237dbe1ab91256f60c24a9af02564ce8caded045dad113e2a94add50cb38dff645a043d66295110ab948aa451852b5723b6df8d15e7becc5ab8f16907d4c26b46d33f4849d6a460313f0a4b13134c25d0857b6e55d4f69975f59b109c5b25830214db9177906267099184e82433a5d18fe088f94591ad84e8f0a02a79b7132bc12646462972bdb3fe99dc4fdade4c80e5c5d9999f5ea9ace2926c953034d8c793418a65a49a2578fc58efffaa9e50d86e2f1bcf03179b84ab09b002e2c3c8d65ee04e0459bba72bdd279eda4ad3e8d97c64db60c4700afbdd879b5ad8da4b9352678ad18b53792345f4115a81e292533af96ed4ce0ef2491fb3c18477ad9549b01fc0b401fdb5808adf9f4a3695969aab17d586a3cc9e01e0ec913df9025f8ccbfddc78f74a8cb5a95f5fc08d2932ca07feb18caaf8bfb042ec4feec0a71c9d0b47f82b053e330cc70ecc2b8b61822dcf5d7d9bc4c253fb861338454b8a6bbecf1550a68d11cc5801d2e56627591e0605646aac03443a9b9ce20472fde5084d36dc617e6c60026f5a42f68b00d773d2cb0099042f61532479a00538124882ae816fcb9aade78bf25dec0ea7d91b83e44c097b63ef32e5632e876c03303ad9e6cdc521e91a77a75307ca377bf20b605da3d7181bdca89496a9a3c19c9eb37e64ac9fc7094f0088378c714d0e8f299acdccc2f81422171422198d35126816530e8d36e56d4b3748355b6b8e5c34065f224d0a64708480ffde9c8c4c987aa194ddac329a8d8afcf4a5b6c7c706449b31fae0a3082ac875f3761ac3b7784a1e4e13d8f2cf8c0e4db9d12e26d51ab76b6a739847c52c07d735d6b91087e14e36a9ea819677ce3b796780218bd5f3a161205faae771a20bfc51e7d0a24e871033c0acd3d7220a37ab0d5c6127178ceb372f1505e99c7451aa94ec53c7f153848f2ba7679fc1697e415bad104673b7746f3f03dbf00569d80bfd6f0a31cd4eacc1b945c292da57e30168e04a3385fc7c8751db388883592a457c0886f217e0dfa1d61dc9379a64baa4ea444582912c7141e73697c205d22d9393dab53dbe1228d27a55e0560d33be963439ad9ec53236a605c7afe57034bb9cfa3e0a737595093499acb17df9d0008db2b616e7dec88fedf8cbacbeebf57201ae634f9e764bac110ee97ffa25461003cc3caf9cc5e8d70ccf17720addfe0d2cd89cfeac38aa593c28d0044df4cf9bfe8d3dbdb2fc19f2c33d0153ec147430119a3b3bb235830dfa7feb551b31501ba157294f1670e08d811b62c4c9c1fa2d56404d080bda55b2f6ee87c4901e0a822897022f0ab2b243b6d544dac87ae4c0fc6250d51ab06a91070a11f29d09f93e749812a8a40492ea9a5cfe9d1032eb996e3c429c0654c7949125502d55a533bdf6b934301c4406986c385801dd2d7d5cecb4ae62b3f8b56011bbb7aa92294458f4ff20f74b09597475f50e7a77603e9c1d090d4b6a391ea6997a13e4078dea2e53ff20f3181f5da6aa7538bcddfa1006f46ebad60b0471c99b59ff7b85790e35dfff6d334e88c3e7c941d5e725e5bff82387f2a22c46ce240670eafcba2e37dcea799f4b60ab6e91d4e3dd5b5c69fe854156e838e55faa20bf33059ea74c022a3b20c892018af184270760cb1966f584d970246a2cd77067a183d4e13ad93387fd8bc9db2e5f0b93c6dc47949b70378ec61e0ff9f23e0ae8f84c009d3f94b0739cee632bd9fb42b9520d5b0f6aff63ac861ecafa1a25a1470c5c94933072a7bc34b64f4f73c49f027c4bbb06f3490dad116db7534e2ad944df5f255f82ba8a0fe54493534eeda18c10b4d75100365a8c9106adc24bb783c06853899c0c1ef083f21fad739b38d95af37990e93f9dc8110b24384bfee319c9933cc44ae2216da5a5e445fae230085751ae3427a8da6528388b1aae38662ae3e268cb2c99abb2ae8a9c0731ce476951ca78819a881ab0e1a2970b9ed01e5c53d9a0aac74493ebf1df7fc87a9c228d82c31d27af370e010cd43b94e8c0e45ca92c4c06ad046e0379442ef71e976a7ae127b6113ca8a67214101e0ac1317874143f787de6cf582a285e05f04f823fd178bdba6c9c338526d522a95755fb60c22b09384d62b303d3eefe46f560e64ac95277452b88d06defc9b519c7a55ebbb91f293676edf002b450357784247ec00974114eef2bdb4697e273f08991f1582ef13d62c9d92d6df4d2c28d29ddf3ac97dbb5e04a307b14b53350d382ae150196d6b6ff48332fdee52f9799592b864f5395f65eaf144454977a858cd11cd70afaee74addc5c5fc7bf5f8638d7555ac4fe2dbd2ffcc692ff21d3ac97a6fd6b196b89d4c6b798ed058ff8e81a57b5a49e2d9312714d921d829604562104faff9e653801d129278a56dad111a72082312476eff407824c826aeefde4228d0bded5055d7794412c589ed4ee10cd82ee101a927698c8c66e90b61cac4a877490b4902e27b82a9a1e57288c4920a17a3ba34a30830d7b9026312eb712c998f787c20f4bd57c9088ce37dd5f2406ba98e0ee052dbd9cbf68c06ce987c1b5ad16931d7dc5548bbb7cfd8d3a36ba2d49b6510a0e239aa8742f465475eca650a996ab42a4e1b49fcdce005df3e25e42ba34f82317c513a3f5a203f09619b8d5ad5e09cf2201d1389900c198da1db8492da825a3c13b787f7f6f268bf04194135bafc9bc0e163a111633a2062be6a3dfd03df3bf5834910be0bad13aa549d7ad3c9a7b6c053b1ab891923724839a9463ba60ab1df0bd0cde392e3f51f70e5652f989cbd1810ee838c34e462ad6679a6beccd273ea53796875242e071504137c146affb8e24f7261e329e0c8ad99af2a74def2619650d495f6c06b86157711e0fe5425f696a9b216b8d69308d486e2cc0343616d3fdef3519f2d3e5ad3708d49b4e163a7e6bafddb9db5872e300696d5a07d8bae8f2e7e86f317360fee02755064bf4f9f293cebc269aaa14fbda8ac61236ab02d755a813b5a49e12c4dc96025d6587da1d64670e95e85c98ff1a643ca6a5ef61bcc09123131b161d445a6b6047c5dc152d3956bb1f01510d4f2b4ad5769df8bfe48234cbd59a39cc39a83281be46d42fcbfe3c4aaa97f28292d0da82e6eca75b80ffa4762d764e5a9b15dfff91a0b04e0a05411cf160e62df2155568c81d5b98de76de4248d19f0a75e471adff2f402ef07f97b0130af3f7556f54377b200507e24dfff86abe703ded4b0fbc5532dc55f628ffc83acc29a42ed013d246239a9510135626c316e52fed258c394fef843e5232322a265932b3f2fe002097ff4a90b8f3c882015f6674c2000ae881bc0c956aa637e761d056a1431742d0949a47fbf3575d0fa56341ab905a7a5fdac2c2a4ba2bb0c1cbc9fab45abf7054a78b34e4f3a901df3ac95d92bedc81bbde1b087416770606ba05284ca7753ae4b62b2b50979a1a3374346a204556b9dab27d15a745b4c941f573e8065d46938500499b151246747379e71885351efb28306e6a2444b5c45c5526142e528a277ad01e49b2f32304679f881ee48ed8d1bd2fb5638b072c9cd8fce1f30337a25973c0a83b04464865ca8aa81d18953c99580fb479dc5483b50663aa4bd739c21a75a1e883ea19bd69194ae4b654181e9b5a9228acc38288117168632b865ada98edbf8cbe80e289f7c2c8f30d345abb2f2086aa4e5d6ba18d6a429321541df05e3d54b2975df60bc7f354520d8f91ab9a281be7d72fa426813d529ec7caddd468a1735afa5dd1a9e221bc3d711aa1365c373c01d50d83acffa13abe153a66c4fa380e4acb2aac76c3aed28face47ee265e08cba425a7e0930e4960c31591647782bcb53104fd6ebaa8e00021958913393aa6a88420db1263e02e435a6d5679da613f83fdf03b77018334f745d57348d5a94468af60fdbc336b684474923fc3d73d82f27b72b57a15f13faec9c1b516f5607173d31e8ad6ad384f2ea531b6d42befa14ec78f6795e41ac49141cf24b133816ee297de546c7c28205303c012ed658aae4b7512cad88ed4454a471c93548293550e3e9182f79c5d60d31c6b26e3aac714a4c213b0e4924884ebec50d29af83db61a29b0b75280d2c052dcba29d7ee09fff2ed44c1ecea0b1166acdbf140949efb31a4a0ad7eaffd3f22c7ee75734b61bee63aa3c447e3730a97a5bc2fe32943371d4dab4af18c7cd377c7c972cc76097c33c754c408adc714b2f66053a6b9af25d4a30e665fc956bfa643b9ced1494fe641fa8235a295f960f6ba38348f54aff0b5681794a4e6710fc8dbfca147ec97074e937dfc9e4e1ab6db55de7935b34dbc5c252ca37c4aa9c9cc3cb11e065e9c4050fb1115f10e57a83e3f1115b401e4b3e0a94e0af4c1e56254a7332a58d2649bdc34ea268c9e34f8dd2317765d4fabd31de39af3c9d296c5dae5bbcde4e529d38a47951442d689139d7eb2da29e262a859054a97f34b12c984359a8dccce9546d17dc79d3545c4c961494c47cf0b4b9642221c575ce9754b85077aeccf6e63ffa999f3fcf3fd7585e7ed5f6c89c919209e937598f4b290d61f8b04d6610a611d495f8f82f86cfbd241c0c52c418881862529e30323936e5c9556f7644034ce7b1e8a937568c88b0f422ff275082e9fdaa3f50a5d92306b8dab6399d069a76ef02e78a8a6b98db619be1c9d812e08021200ebe16a1420e7a34cad25c76f0e6738bcb60695e143ff38aa40bee162b48f4f3716f2eb8be958222bacfb425aa5588a08deb9e9f3d27681dee722e101911d2c49a711925e8c8a54edc4e11b16a98fe8a8bd4a78fe336384037738fc95a19155a74a508a30112926b9594a9d7dfe61e4f3cd548851385e6795a08287ce7e0b6fa33921d0a1e673412a77df8a39716e2d905f30e13bf718cca2dd58141862c1c05543ea27661b92fddf66927bfa7e25838fa06a9296f0c06f612dabde294b0fec669b739e9d537b56f975e943abe90ec27f8d4da64b5103de8b14af6f8f13c51b166a699f3fdeb599b0392680e331730bc4c6eb3ad3ee774ff75c853d4508b191a81c3122f436c32d5909d195a6f995a450daed1de83411c96f4a525264d3d16aab8618b1a2a628726d00d9d301877267a9351c2dc4bd16c84e59a4536b3589e866e1e6938c61324bd59a86e9ba20ad08e10de7b96a0f55b78224efdd1e0b334de0edea7f351133c1f8d6d685045d274c3cb93c419c7c660a0525db55ef947f135c7479478dfb00894f858d7589a8b0d9a46e9f410cc609baf27e0758391d2dabf742853ada88eb01163ca82325ce99b6623ab62690052f109d3c4cc98e9a39d14240af6cf5b00818b11e8331600309ad457b45b9e1eee70da27f47a0862606608d0e3410d13fe230fa53a2bed2c8ce54924717b16940a61ef06d00dd306f8f045ce64ac0ac5d61a945611fa584a0d3112369d4a392921d65a8ab5cfe2d72433a9d5c124345e2803d87bcd9c660fdf91127a00152ef0270816c8f87c09f781bc59f6a899e4855bb9da3f308d3e49a03833e148976aa53736f98b8773abe3cc66e561063429a823ee8d63b551931132ed3f3a920535c34e4c871b14efe6c584094cf6ba0a9820219426c62859e3006882643c5fe2b34a7a6239f7eba09c9f77d00f9d2db89432471191ec1ca85833f0b202cdb91e531ef05f9dea4959945150660495f8ee74672d0a35198de3c8ba07819df4243ee07c55e7af9a98fe302d5eb8238ebbb88357b4614ef7462533ed4ab779998b01abef9b4f0d47cce87b04463f099e0a7b149b9f9d6373af2e087b457c859a98460a4bf4891696a7f743315a00c3d7fb191361b747411e8205f529b0d2490c5cac361990569bca80000c9b9f2a7aa5b09c6fa5be5931711554fbedd9b2ffb7074808a86a7e562b1388ea63d19d04af1eefcafe018b68bda47f5ef742f51f3faee73e88607664a03ca31836582e804785873582aaceb300401484a0ee184b8c0b24402eea49333b6eb850fac6f3563c9deca97c66fa80c856ef33de7fbd8faab787c37612ae2ec594cef0dcafb98bc65291652fee6580ef14d0322be8a7c4f83d64814d756cb46b2371ef82cc95a18c28be10c6004c38fd0498ac56b186dd1440ece6be378dbba2761ab864105b076ac2c5d95637c20eac749336f697d46e3b6d436afcf3982806c4bb984210e9857b15d47905f5520425641c38550e8191a5d2ae866ba07f50838620af6f67adfbfcd28c43bbf41245b823e0a600e615f093b2901809b3cc164383e0922865c4c0d7e2d9a28e8029333e58806852bcec991d9686f9f654be6d90a78d1cde8b193f4c645f80a42a9b2cece82c2d4504ce797507c6acddcd07a224f9b8efbb33db6262056c3e03dab692885b3054324e07a51ab35a14e458ca1d707ddbe61d4a528b5990c0189fcdabd21826106100d0790a110dcb0e8dcd87b83bdf647d0087277158610750028b70062b1237fed3e17090391496cb7b162e216be092b6f7de5b4a29654a3205d5085908a2082270c898a665085168403b362002828c2144e1b9a890c089336af005121e1b940ce18384153a18027501e10221126c89722100aa54d9810e6e884283d707af3081860f3bf8ccc0071b8fe6e3ae26530835a901cfb6454ed005c0e52d727030c4e5e2b88c032d86ae66b219317f71519c22c2a7f9405ffc30ccde98e23ff737a668697881bfd24df738dfcf38eaeffcec498e9a8e6275ddb366e4c75fcccf8f6fe3a849c30bfcfdb8a9b138df8f84acc9867bd38af4359ef4351e7e98edd9c0676a6b9383fdc866646fe0a7fdf6381fcb2b5125d2aa01eccc2f5283922d77ee2c711f21ceb8aced72af217cb8ece5b260ce9d7356dadea4532cd7b9f3e7fb4ea7784808a23bdf97744a5eb9f305be73e76b90b917f8e36cce163947dcf9aea45303b8f3a567920f3d57967d4db7676aad86e7c2306b5a718f3dfc309c8fe4e17ced01892f479ffde8336b1202bfece1977d474f83ccd047f03b4be7b7752044c5751bc8e5ba9cd7601c357fe4ae3b7f02d1713fe26c118e489f66cc77df31d614bb7f3dc9dec0268ff38d3ca8638a4f7a9c6fc714ad29c8e8b95f8d387bd313ed8a7b922de2a839b29323e2a8096dc73ae2c7b08ef89bc5accc70bc33226834d4502f74dd7ea882abfbe142ab64da0874b90afbba753764a49c7f6a55ddba1b382e4be6cab60bf0a2dbaac9adc9fd6fa08effc8de4097a3fa217b7d35cd33f18f8a4cfc23d67e95bdf6fc9abde961bbd27e646f6c1ca5fd7014fc16f8d210c33ae0d7c73e7b2d68f334cd63af3a0a9a36cb36f34c2bedb3d76c666d6a5a3e4b96fc8ee2af1ef7a576c651ecea9e4834966191802e655751f7d8a9b73dabe0ea4aaedaac49fef6fcd13fd1ecfd8568bf69efdab77c3e7bc73c2a4d475f4391d1919e2371d6a67314c5a273dbea99dff256bff6fed9affcb39f76d5afbdd6dcf7fbf6fe2beefbb777ce872988fff6ab7ece3437cf34ad2908f7a31742faceb6b627fdc8b67a56db93bef5699b67b219bde905fe466f1272c28b4a90ebdbfadaf87001c26bd3279b1cee49af7933f4d10cb07adf8d3cd37c13664d41b627bd10ee3bdb1a3df724dbea598d6cc951f4397b7214fdd666f9e3cfab2768d141129034436319ad3f765d66ee679d18a83ecce097795d8ccb391f36399835c9fa1a7dec71be9aaee9cc9b31c9d71ee7bb31496b0a923df6abecb1978fd99b1e6957d86bf6861d85d9ce51f46fd85119ce8763531d45f94bc0145dc73ae4c7b08eaf8e922f436d0c2c04dbb93003881a453f284110a40f910f34f0d9c981aac0e4043ae00005133b00e28325a8810f454cc14415349cd048cfa48722b8359e3d16039d583331d18ec091a38d817ba1861703bf0d1b93556f4c8d677537a6c6b34a37262686f9fca4e71a768419e08d81df06732d402ec8081ec946cf86ddfa64e3862e3ee9e16bfeacee72fdc83c46cfef979fbf990767592413c8e86cbc8d8f31909e5f4a3b43f732e6237baca77c9200e014f397b805ff11bc1b4f82e75f82d76fc3f3f9d4c6cb8f362c0b002578d551f149f082dcf81158f05bc3965847247df4481fe3b16a90977390fc9761a3efa181861abacb7d0da54bbf867ab7d73cd2d627f924af7a26d33de18c0efec88bac83f9370fb20e66e6affcd4e31960189b1cff7e496aece7c996274250842eabbb70084ad085f042d961312efc025c1e7ae2e5c21f5d1addfc256e1003264f6270c5103ef8cd21608b2e7395f610024174fc55934d664d14de0954db634dd49a82689fbd10ed33dbea59619f7dabbef642b2df7eb3ad4f72a620f5b51f827df691b3c9d12cfc13b4e83ec9d00d3790e303032fb8d08245172f98c2c90d729002041d38f98a684720f8b0850f3af08bc68f7db1e407052c3d10faa4c75fbf0b30857ef82757b9c028f8b51be1b20c726072ddb2baa2cb59ae093001f023675151a255a7f842bff08f748a879eec34d0121c5cd676b79d1d807059dc6549d08524404ee3c2af7f06c20b5f70a10b2e6bbba607f8f56fc1af9b0053881e047abaeefaaa4f367d6aeb429f78e073853bb20a6dbef6fc9dcc8577c3f99a3ebfcc8979c07be93fa7583891f381c9f876b197b9f09f53f529a594ca5c1f10b3357df2cb9c0f1a5ce8d3fc1f7d9a2768d1f5cf173a83e40f5f3380141d5ffedce3ab45d1a8300942911136c0c24709bfe04912635cc9e122280a2662a2fbcb82af0b7190e4dce0c41721a0c8808a0ab4c0890f426178d2d0e1830f5faeaa21c6161e92f892c5104a7c4c9484c90e1740fcc0043a7c30a64a577215fce0bf9dee63c6332f8af6836f3f7c466176a64f333426269d0c9d2a020311f758def58ffef2d9428e05ffd90f391fd4bbfd288471c60f920c01064138102185b310a1830e8ae832022d4c30e32afee01b7115ef60084e72484307453bf480d38224729408634a972d9ea0104691991d9304afdbef5ea46121a689ee2f8b898c1c215204026556868a007379a8082fb784cb43456071e17c2d7af0ba272fe45434f5c32b6fe7aa11969c60064450c1258a151ffc4206d11132f0410ea80c7db08b2e9860f2e2818ece37012da864d932840e44c8e283cf5c5746370383a0c18710fad734fb163a34e97289ee8d7e526bc72516659ee9537f8f1eadaa41b4824d058abc6e17b910508f767a78e8f5924242f79722545c11f28a4ca125d553dc7e6d015074acca432f9ecb9ab9fd11320f7f786bd6352efcefcb37442ba8ec035c1e9252c61d5161032a3bc7e5a1248ab81d13b4bb2395bd5d566780cb4352a2dcedf2901324b8e8de0270790b1c84b8a5cb434e4a70c1602d3f5548c1031f309183126630112a83a70927435748202d8eba3c24058b3bba3ce404071f707181922125b42851f2b50d0f3e4468d2440c2457be9652dcee9e2880cb432fa01b33c618dddddd59aa8c2e7497fe84cb43526eb8d9e5a120bc5cd6e9c2dab107da0bfc6ba50198118f036d68f8d720cd05fed50a0e8ab4827a7117048d46e05fb1d433fcab15d90cfc6bd0680b58add086802228b3216e812506fe75db02b933dc83321e1d60e17ae05f4745c8204d0ac4024be6843311a48911b18c9af8572c980a68aa185d913c567034f0af58b42fb2b022fb217a8145f1af41a327b2092c5892165cffbae1209170445982ea0ce20a462e88854742f161a9542474530495c01c33ac3801429422bc27183a2e238a6e112d434678b9f061e8140c83f361b2e1bbd27e7aee45cf7b47cd00f0d0b1a2cdf53740161d8b89881499d375524137a54f1ce439418b8e0360001974fcfc9bc73e895ae89f3123b2ba0f7a11c18c223ca1c10e0d5c4718d18315546101155d7072e8810756acf0098a810b12a0c41425aa18a22283269f3fe3b066b6e9bd0c33574608342bf637373dab6db337dbb38ba008e755e3d49be146f2d73f836f518699db16facc3032c6ca3a62fc8e75f04bf97ee5103453cad65e8cfef44e2fc1860e9a80b807aebfdf1f3444d06c370874ca599fd620fa4219d6612b1a3108ea45a93feb4b8e0616fa4a990ba1ad684419521041c8b08e7e199922c4088494304c0402429731866908211c0d01081979b64e552d7691f321272763a9531e5dbbd2db6a76ab17057b8abde458809c0f28317b6a696588d04119b11b9dbfb20382e84a385a759221252113b9b9a62dafcc126c4022a594524a29a594524a29a594524a29a594524a29a594524a29a594524a29a594524697eeee52c6126e604929a5a42d98b5feacb44e5a79a8c02c6ef74321b80506c1200804816aad512a048240954e0844421a108875f443200844a59035cbbe665856b18c463a79e22bc6f98a71be629c599645c98a8031c36a09aed974071ac3f628a790e6143bb5aa07f7b81df46308057eb88ac8904e19a100a73870ea14161344c7ea71313f62a45350a739c029b8039828541885fe23ae823b2fb803a7e0130683556982014d03d8c5ed1d2a3c2f080404815e3c2f57611293af4e4d39251556615130acd2945c8179f88e3e75b42414812151dd3203c5a1c418638c31c6a84919a5ac50e74a192308a40ff277348d3be57db56e967ff7e62c02901084f873fd4120c48a59d2c177e973f98140f688d3d0797cd2e8eed4c99c72ce499df89c73fa9cda9c73468f5122bb8ceeee6238c1ced881f1c78b562e331816626cc7d15ca9dda3d717f36e74d1832ccf8bfed18b572291a9e0b6a663c29d31ce38e324800528c90a123a935ad20febe8571dd1756ccd863ce3285ad8dadc18c80f1d6bba6e4fd7cc6995a6a451fd9a8e974ed379c08d4b77b02ab03d4af975c618618c248cd1c1f718638c3c37c61823b6028f72464aa99c23ff494210b650292e23c5b0a7f2b18ad18a693ddceea9ed684d341dd7745c5173490cc3b014480bb14aa1cbe117692ecdc53c5873692e17c6824963b66d9fd1dfb42dd3360cab3aae92d2a5f4da72dbb6ad086a21eb9075de4dcb689c735ee0fa438f40c0b0683ccc433e7fdcc2d24aacc1e5a993653f59509f52190cf8c755995050a7322218702afbe28707e57cd8e468337b24f5d33e137255e685a85319982f3895a10193302af3e2aa990c4ca7a02b438353100708e18cab34268cd288b8fdb0079716354d8bdf11ba74628cd0e52a8dd2185d9daa547bd803c324da7c42e51cb98dae65d88c15e8d2b9265ce8ea08dd492ab8adb97a5a92181d7c96e66aef5c99165a77773f24618ceeeeeeeef6c169d83f129ac01f2dab73cb2a4117f3f0875105b7210b26dc689f84a20efa308f0138ec114bd7131a330f19a3e73a15c2f8127a39b0749015dd25a574b6ac1ba1cb313ab8cfe59f81c26e5ba84fd288f9eeeeeeeeeeeeee2e4dee504a30240c5cba53eaee5c9cb8650c48136ad2429dd2611e5a5a55e2d290268d0b6dd70d2d4b8671bb136ae284f3e14da2732df4a5d6a10ca355f3c5f3c547a6f1937327d0543283e69229349d6c89738bab308c27623c2f57696934aa3f87e76e4aa6cfb664fe6c4e26d00665066d53a6908c560393a583cfc278bc355f8bec3d82ac43ba6ca1c9a551734b9ffa8154e95818cf96db8ff160535ae54ebc49926eeb6ea1260d7bb4f938d158866bb08c0b3aded2a5c9962e3a5bbee081f4dbc68d81562f0709cd8759fa3af5cb6c9ddad4a1f9ea675e8e0ecd87fd91eb3ff9c3bce9de0ca5eb11a09703247addc620adcfff00fd8ee51f7d46bf9a6ff163a453d658bdfa4713bf100f13467313bfbf100e13e69b945a76212a7cd3564741ef14cbe7957e630e281de4d8758ac6dbfc1f80ec3a52ac9daad4a3f70c8fbb3babfa1cc98f1e639ce1617aa58df25931c6192839b074f0a37cd6c1dc990d5e2bd43090779cb4321011185bbc24a15eec618bab3cc84ba7a20b0c4e451c82b6c424d195e5643b594e967345965397fcc080fea813d44398db43d0ed8f4f75a28eab2618d94d30be5557f1175d9d9a457de2fa055dec8f3db02a09ab4e75e653f0b07a3af5a376a640e541fe5ba0104df152a5280a3057a20b28ba5c358b8aa26b1651d1f5a0098226288b16222f45d817301e8359c43a665111f3e0dbff8a9d05692cc3cab4f68eb462425d0471a135884b17413409c58155b34b5117ba431730ba604c18d54440975b56ad5de730c2a2ca28377225f6f5c8954e25c4300c7b122da417abb43d56f122ea6aea72f5a99fd4826e479ffa9d68e1d2258c2f69085d1675b9c584aae8e0b3a8ab3397068411c7022ca18458e25868f6db960343682cc3c28a6e7b6f0de6071ff4b5b8c524e9c0fc9083030cf36d8fa47edcb35ce7b268ee04bafd330b3ef5973a35b3f4a9bd0c46f56f9e876114fae78fab1cc851334ba7bca84f5970cac9e0537f7b193ccbb83d8b7892c1aaa985e8b6d582c6ed772d38b0d0c279393948fe63b80056ccb9fd48663e66145811c9ed8fae6640d3248cea304c02f3fd5e947dd31e6e7f3fb36691d7cf661190bfd86bbd3918afb1815b81745ee4aa6654d681c901a9d78b3ad55e81c4cb791e865565b0ea392eca4c11181d4d0b59877f26825b1fd2cb793af5db34af7251d851ddeeb32a699503b98eff308ff9414b849cb4134d712f55bc88a647cd4bcf7fca873f3dbabbdd31d3a78e40aec2ae34aa3f4b9016212e5b6e635db0306ef74ce3763ff566d1fc32c1488b01f5a93fc72c821db4740bf043d7b3ab10a4f4617dfad52f3d8d975408a2c4aad79b883ef7d717029fda16f6f0ab6df5ac5a5c7af62fe22a13af20fc6a6fb087f56fe0b735f1f3d78ff3b1c7edb103d9f80ff1aff1ffe126fe1ae035c95fd5ef9f0f6f4d9bf85b3df15bfdf55b3dd3aee8c36fd5efc73c135b93b441faebaffaab8d76059f7e8bda198fc1d2c9226a18232984840c483b47b8c2a818480206162556c0c50b1ea2e821c10ca220230c29b0c897f4e17162e4c39303304b74384bb448c1c28b218ab81245e88b274e66f0c4123f68622788e727c6f9fefcd3f21648d87065580777f747db3b7c8d5ed3277ee659e5a9ced0943ea6982dabbb85f0818c48c4c8ccc02a1691407102d2e5212872ba10c5e8937677d16e94bafaf4194ed90203e212b3acdaeeeffa71605874228f708ad6dddd424f8471bbfb5f08b7bfc68cdb5fbb899ed05273509237f60d79634b0fde9737d26f4fa35d65ec329a8c21f4976eebeece64dcc962dcc9e231eed4b4b69a94f15991de19bdc87d929edf1aaf1eab8648310cfb8ad9f622cbd9d0391fbd4daf25cb396a9272c39827348d39c51fbbbbfb639fe002548002113af8b14fbc84ff8dcb9693ef649e1c6f6cdb027c50e0427a6b57682cd329c8fe1088bc1e65cba8c3ccefeeecf1a5d1aba4cc0e7906b8f5896de71b83612330de8e3f9fb58610420869e9d61b97c54510f38c78374750e0d2c18f0d3d16754888b0f9d0f16f97879e60e2c692eef2d013529620558dc299cdd860d520ef444177a376fdc40f377c881f59679e7091d05b576b27848fa3e0572f1076ff2062a7ebf7df18b22254bafd6f5932c8dcbad50b87a8df5f6f6d1503b5174469e6c934eabb5abb92bc3c64e575598f7141d919ca3aa36dcd8209055ba71efea94f10898e7479484911465c3a1c978794e46054a5b371794849160cf4829526b37a381a55a3a949b7a3c70c4d738d97877eb0b8acd28d2c98a99df2eb979fa55c78e197e0bfcc6907cd0f38de72892ef462e4e7ea400a278410c2e72c57c85cfaac1c4c9c81451341973ab1e452277070e94f12774685e39b5532f1135d37be47065411c2f58e530aac1b5f5607dd918852c5f55f61c6e572d9e011b20d2e6bbb7dfbeb1245b7ab5cb18495db07904177cad1a9ec42f72d3c0b17f211dc390b9528aacfcef5ef4a52aefffba071fd4f2ac0e2facf08718756f083eb5fe3ffa3533cb4c40dd785a01c41a262430a15ee30e58aebbf020f9fc76fce471480125d6e3f3cc2044864c1c59797101fabfb26982829c1122b68d2c4e7a5d5900a10f9218378062f2daeff0a9dd2ae5b771384d0b9bd015128ea5832aa2e47d0ed6ecd0b9a3eed88425fb50387497e9b4cd2f2e598254ed1bb893f75a51e43f398ad4f3828a594524a552efce8933fa98b8e42204d5f478b00423ec910dc08c44b81446a69a09c00f935946ef40ef4a5ce7164a5bd11a5beb33a96529919b3bec569a37fe5d4a94fccd1dbe25d6fc20d3e69e65405c055e3c21018c0d069305e97b579b93d25eca73253deb8ac7aba51e3d4f3db10d278129db4326cd75f83322ee943ad1e33aab68c76caa1bb81e1d39eb9158e4ffb9a2e0051a799eadd627a6a2b8b0db4f8d8e045186364c009265e88f099c28c34ba120c7d22d227f959ed96df2ef9ad53241f82910fc380af982a1d8b8be0cb5537fd6d2f1ff2c029add26c1381a1489fe4a35c1d0b2ab9f23528afde611d4a3a15a5f89063c39555c89f49a3eb1de6d1a45f50b06f0821ecaf0f3fc3dacb300cb35174fee33e0af7376de448a7288ca251328a3ec99f86404b9c74aa5ff6d7b4b782f7a34ff2357b03bf4d7bf99a17b3c4ce026ce8fef64b7ef3c8ef1df9f0a7081157d90c8931f628528227b2d0902864023249f0aa719a3e49d39caa147cba0994f6e9283ac5433d5faefc9f2b57422025722e6b93cd736595d1849d62c1a25bd4a94982d7950fa3e894b4e24a08218480a5114012dd4cd770428329706f5d77ab4c286a9e2a9dca52c5af98d2e5b2fa674a1497d557462e74fdb9615ff82df4859c42079ebfdb4ecc836f0e89854ffefca552f4f9e4cb49f0a1cbd2a91b91c76b272dabe4e3df3f0de41dc43c200f251183ebdf5a3a1573fdfbe52a9ccf3f1a7b4a7b47779712420ae13b74e8b05a8f4edf1b40bd1b10be4ed23aec1881be33c030b77b0cd7ad5723f5cb0c75acda3aaeea574f81a526173e0e263aaf2d0492e85abe02c08a2f29a115f97239aa97dc7ef9e32af67ef843e333c3735b4aa873fbe5aa2a0d6840fc715589866666e6e58fc34ae7baf3a505742206880ba113acc00c27b01c0d747909e1031bbcc0a2870fcec004566471850722a064e9f1620725170097bdd0a1886f017ce8e0c30b3985cc7582940eda28a615c9ff267eeb06ff684d42e447db63aa77fba2ed6cdc5647c1989eeeb310ea2123091e905c71c3d753a618b282c410155bb6f8fa3b571169e203175082b0032d477cfd25577980073f984048075676d2f8fa6774e64b18216cd831c6f82dc01bfb59720e26343ef76eb80b143461f289807bf0a5bbb07f76a4fc7ceda1808409088e5fc6c24517afafbdcdcb870345d0dd0133844a2022a20aa01290c00ca17a420d98bc40091b78f064044b90d104181998f173458c1d2be28b4a0f4520719f30a440820c2ac23cc1c01143e41044e4f365678aab470f9802bc3d7a94bad4a3d43dead51a9650b442caa37cb9b0d4454434e971e106c4030b208c9eaae28c232e848f03f2e494babb57a8e9d1a3baaacb5cfe2a7f5a4d9f7af4c9a769ce0a14a9a1ca75772d3e04c5171f82e28abbcff62aae537159db5d40145d3fec717d4ef86155da28f45f3b5188d8fc496bb2996f5ad528d8d7fc69907ba13f7f58bfbae6d7b4a682ab3bd2ddf8449807dff8455c252bdcb95b4a8e922747c577af7a338e8a4fbd1f8e8a3f3d765494b673940a40742cde52814ec58f3f2400367ce860dc81ed453c9fbe10f9d1b6e2cba7b6d5b36af19fded4f06190ab4c6d4d41e6c75fcd9b9eb62bf9d4dec497d6d437f2a73535ced73386a708ba8c1ca171548dc744e9f863b19090135e54ac08f31971147c16070e549271cf9163478d0b439c28075f11d2c2a58bbf3ac5721fe7e914cba57028fe729f302e13004cc7f21c38dc0975a057469469c98432a00ca853ac4c889575915dc98032212697067859efac23470f1d2bfbc97eb22868e7199114a02a3effa71d352ebcb4d04071a5f357a758d0e742812fe813bfc7920e36710135313a83bbc488840d1446081b76f41863742e602cb1e1246bd5e941433393e344d3d9db53a3fc4433421a1deb74bd8711d0e8581cb47ad8c39cd8eb9820a8924f9807e637363159594730198297d3be4c965126a4a16dbb7103078e2b237379da1f35467494e22075466500c173ce39e79cd8e598cbf029a5327b4e3861cf3967ed24a3e2430e0876e747d6116fa2d4589fa09452a794d2599f75fca0ab76c70c8e33bad50f9b1e0da45d9746a0bb031c75c7b05946e7cf32cddddddddddddddefddd0d9fdddd9913d0b3bfe4bdf303ade313a4f13242478a2080702201244684f9420c2850a4809f6bb48ef9f96a1df397989f99bf323faba082abbbfcfdf235ceb21742698bfff47fdfdb576e5734fb1bfad59a1ce7f3ce637876e0ab1ff2f4c39d7ed8a43d42937fab67c5d5ad29da20f5e10ba9961d459fbfc5341e8385a86b948abf3ae53694dbee369e8f283f54b0c241b2290ee67f1a8a8caebfc5bd7f6b7b042ce1cf7dab7fe37ee5dce7d0bf7d4dabe0ea4e1df3a037d61823b5986d65dfc25e9bb3ab7d8af521d7672eb33df2fba9ad8e8a9004e42ed058c6b4da3eb326f8d9e37cabd16719f7fed0aefa8684bdfc345804f3e6d7b6d5afd14f7ebeeaaf51a3fb56ccdbb02daca635ac080c363131d8d7e8301bcf5f0cf6355e48f736baafd1d9167fa49157c341a71bed3b2abe7fccf958f59ba4ad9da3227f313cddcfd0fc09f3e8c79c8f220d47b6e421451cd33d0e994ff3b3344bda6f8fbdf63964bf699b35492b57997f664bac3da6d9d39defa859ead394dfc27efb96f6dcc34dda55a4ae713f1ab92a12e953059a489f6c7262c94ddfc8d33e3b591a47cd6f954a8e9abf9da0451799077dd68f5298cf22e1f2335495206a3e6b5e7a61ec2457734d723eb49bec317b72d47ce74c369af62bec35acfa63b6e4a87a4fd0a29b91a35e97e46a748b9dca92c44eb50eb6c54ed524975fa375446f8c968e248411813ebb0acb260c7da28f65584629d52ec59e524ae77c6d88abb6ef17e2afd916f6fe6d5b3ddaf3e7fead7eec8570afd956f6dc631c7f9b35cde76f7bfeeaf4fef4fe9be5cd522298c5be3fb313fbfe1586ad366b9ad634b1dfb2f717e2adec9dfbcc2444ebad391f108abb13f14c3e69b43dc9b646bfbd8fb68cf388609ffdca1ffb6ca55953f5c77ed59f514a29a594561bc4bdf667767bec856c8f69bf71cfd9681a866150204f9fe81371147dec39cf640a82fdf642b2e7b2dfac1147d1cf2c74d1c7bad7d6447c865783a188832e22459847d65f77e2dbb8ca24e30f719549da975feb63f666fb6a4d92a38ff3d5d36b9b67928fd5a72fa43ea5b6a57d8b6ef18bc48fc1a2ab9fbd4d4e0ed867bf79fc25b9f5b3d7b9ccf9d06c8fccec4d3f66893051adcf1f3bea465a9aafc65146e21f894f247e919737bd826ba4f7f34cf1ebf3c791be107f6a5bf5bb953d9661315874fe39d0f7cfa17edbb835cdf7c7f9ac69da39634ce2c364e34ddf7f45dffde947bbaadff6a6bf3aaadbb388347a1de79920c98b71341a7dcbb93963b0e8e2f48f9fc3f6a32779fcf1377277cb8e5a6defefdc8d3edfb73b1b2660c296673fad49fe06edcafdb139c2346c54b5cccea73294ee8429cc2497e1dd4aa3bfe17e643b47cd8d1b6df6a687fe4dfc91a576b53d676f7cce292542a8624e5a2069bd23665c1d1b6e7cdfb816467788ab4e9574b593ab667341faebaf215d1603c1fa95e8c53a60118c8a0f9f453add0891b8957b81b700318f205739fcf1527463f48e382ab607751cee70915b238e8aaf020aba181ffe44d3344da7eff4fd5bf55fa39e898607c0dbae3ec5f701d3e853fceaf147db42a01bdf2dfc7154849dabbca8661925b9ccac03968adcae36ce00c3547a19fb09c4c7ac694ec0df3485648f61dfda3e7b21d873cfd9d6b76999c5da063ce033d64146c9140df06b28ddde62b7e7ac43aa6ad8f06ac421da476b821f1fe71bc2bd5b13b4a6209a06ff26bef6d0aeb8778e7a1c844f2b0b3ec5f8629e0ca55ba55665ab877e2b6edf2fb95fc5e7aca9aefc4d55c8e839ee5b5dccc7d816c91424bef6abf8da534baf46fad127f99dc7df471a59b9799a1d5d68392606dd64210c67b6ece2756772a8b25cf9fcd5abb972e5e8f217e04b1157e58031dfd59dcdb98811e6c157fe115745872f299f399bf8de10479da2a55121055dbf11873a0f4f34e8b0d6b9fcdbc75f6d1fed4d4ffd9bd1bbbdf11fbdb66347ed98470b7c678061b0d7a6b703f366b8e8e6b372e48077f29713ebe8a3d7eaa9df8abfc5df7e157ffb6a57cec1dfe1b5fc633e7aadee23bb633214b95996c38ea2568692e6c5503fb313723639a88abde6f1bd757e4df7acdc9ae0fb771f634dda7b2d13b4a6faab9549b3a66a83c48f7921feddc78f895f3fa67e57eb63d5f358f5b11a9f91a174a7dd91e3ca2779451c75a4ea48f6d2bda68ce67295d4b41f8dac893e7fdcf3277fe47135f27fc89f914f23234c214b7259dbbc1df2a9026002e4a3c03ae437c7c2e8523b0383aed503bfb53df72d0da397391fd6e4bfbd89720fed6ac48df81b99826ccffd4afbd1e8b5dfb8df7e357aedb9df4cf4639e3fcee348b615f3a3186b6b4cf14d34e6858c3ea67bd2c7d856cfaab324db1a71961dd5452ed4ba05fa33f36680612e66d9dbd127f9019c0ea8d46cf5a54d4d2aa56844000000e314003020140e088442a168344d2435233f14000d8ca4426246178a844910a330c6186310318400000000840031646884ae10005cd074a04236d036e36a125f7693fd275e5b54d8e52a2a39c462fa24db039e2b86f6cc9a84af881b2e1ee67692607e1a1cc9c7416b067f8d9726a4f2e7e878bd011ba76489f3d40b67e4310962c2009495f765d6295028e817d9fc0cd802b21c1b3eb15d2b533fdfbe0d8aa722aaba8bb81b6250868aebf9772ec12b5204e6cf8e3d3615140d28c78bbc2e5b9f4325542229f6688662eb50d4dff82d8fbdcfdd8032da61f173d8292550adbac024e75025e04259b497587bc1b0149d8f0f12ca4f66c9045ba8039a5097224462e2dd23c44e8cc092fa79578dd90ec759b17f5577650089316b0781c4df6c49f984a38c1a7c30191380e0e632a24c67d647b5e8d64771781e65ac15f2310cc542f948cc28ea971306f4848f5ed3ffb5e59b7a88cbab2ed3ec2c93090275491bcede84389a39372d97e7214798540474754d7e149c7dee5b8725a310cde28247589602f7031adcf0d278483a2b8fbe0e2d7fb42801023c98e64bbe3eb606cde420649a93cb2427d6aea6666977de8871d1afceb5ed98a1de1e22493c13cbb04486833ff8f8bee7056d19d4d0f5a03d99b818cef98165b026910c87b0d864256a3851b40cdee328008d589c18c3e1a0b26cd920cb47bf83d7a4ebda215bf2927aa5b9f9e827b2a73160062f38858191a88e45dd60cc4eb188a0083b8c0ba2e3a65c6a78a329a0f51b70845669525bd9c2bf398c6dc9cd305f7ccab7b3ff409585509a84002db48ba2fc3699000184b52556322da400610d546d248a3d0e7f089fe9871885c5076ea6d1fed29a0efd29d59ed16384be1c0c3a208ba64e7d9c8a8eec26308b411b139e116852034c2ee487e76e1222cfffef330e82843a926ef19a76c8a5553dadb249e32a36169e82b683d70728e1b8609006757a6b3219d32846ae98c368f521f0f086949a305f7de5f4f093c021fb0fcef7ec2ca1e487937675da2f55d523e820aa4798a189cd0c2fade6fa906bb17a340408a8424eef4e083eaf9ccc78e7bb21e2d671426cfcbc12c81484d60f6aa39757551f4a2b3bfa8bcd2ea04787c070a29585153297823abfe105b625b27fe3286397125ac681c84eab021232061bf5d83d6f346c13d98e47cacccc46f6e865f40718654daf50e6a3346f9813a22551c4a4b76efd35771340ad8934aea653d592780cd21d3382ba34cda44f1e9e35cc7b288bf3556dc02e069b3b60476bba79d9000ee8bacde6c852649f6f8a4d79925088bf4b266c6b2e1ca746ae4dca07706cc447cbeabc219692ce13ef9366cf85882cac428c652dac85a13fc288b86b15866ef5aa0d19ecc6ed1211bb700bb9506261cbb3844df594d4a97e093fd86524509c1176f6be2183312f7c28915e9375598b549e115c9dcf25ea156045bf1673d297f6f598fb1aeb4604d2ea35c278a0915281fd9b64e0be0b450b5677d634b2ccce8a6f38bd66121221c61c26241ea5e83a555398e26fa8f789885640fe812190f62cb11834e408517d7fb4d5607121e35665a68a09fae58339959f0ef25cf395ed761f70894c2b552898030774a23e779825b49539cf5f7ccc886e40cf243046f3f4e92918928abe1d32117ac31f903589daecdddb1d82d0ad7d39edfbd22c23a2687666e0bf3453f32224544feff3680c3e847f9a402f4d1c726f237a2c88706f232c40b8be52067a5053d5f57d7905d59e094397c52e2e2e2a44e12063d1f16e613988b4f2e771670101e69960e24f112f16927340eb0d1cf0ac259909cf92732b7fec9a2381d45dbb0eca84fa2061a3d370080d32e3986d0a4403852be8877dc5103f1004c2d3997c68f3bc1141044b8d586241a4c61220d43c085f98ffbd33b227686c8a2e543e8bc37b1702821e2848965b28728f7f5a38fbff407a1304512632a821ca3b8f0afaf9152f75225291b922f2b2ec5d386c838721724154360c20aa8d7ab56abbd40d821fccab458164d4fdcb494e6631314c03286a19b621dc5f402cea3a3e32025465408c5c20d3bfec054c8d71b7ce104f1fb0b259982464651f4224b8a93f8f37683199d2a847420ba920f81a42913baf2544d95dbe45a24311f79ff5c16219fbe1f4377c63748cf7f3f646ef824ad87201f8d28fc4408982ca48a3cbb885644d34ac08caa546e25e3d276b9c5ec0fa1b89120f07c83a9b6f3804529ed750a737085ed973ef4ccf31379c39f0bba17ad2b45c2ccd0b474be3d2645b6ee7a7c09aad43cf0f6c5899a622d5ddfe23c0f0636511512f493d1a9e52b05d91b18c90db383da031a65b6a3f420e9f2244b416849be03464d01a2ed5785261493e6b80fa3e66b7bab96c75eb999e8d8b50e8fe99a55b1f83796942a6900144b09dd2fb630dcd239d364bb64dcdd8332609ede2d2d7f8c74894a6b8c3af6f4b9dab545e24d8ac44616295fffa7020975922ff1c67e2483315326898fb852889d43e15ac9b1482c7632ddf8e2df8196c72ce958f70d0e228d3ed8e02e5d2d7ee91840453b5e179406c65512942cd36afbd94d30de58040e0df8c88c7b3e4686c8f4b82f7faa7121960e35224d6b993252e1d0f142a72e11d4642538e1ab8d79384cf726b5c7c4d3afb81827bfffff441c1d10413b93be194e319f82bb4baa92a868f6ef2e38e0fa15402e864c2296f4bbaf80f5ca6d8e05db88e3e76abb72c6749e23ee8c234d332fbec23e0417502c577fac4cc07ba923b4680588720c9cb32235d8c8486fb83a5b15938d982b5136c5d93868115311a292727d11b9a8c10a873e3d8779bcc9441476a9c7d2341c9d7f443d7fedd1535c0a1bdf87c576f27250f2a67df4629b519dd9b5e2e3ac8a1d7453d34357e9b6122c13f98ae71e3f375f21d38db5844a05bdf06c77a050a0a6fb46cead5b545d7ee8b43e3439f72128544f9966613b7cda79b788b9e02532614638450f471abc668dc2cb1aaee54eb742837402bb4f7f389e0d4480121c8b9789134a7b97d08545bbfc0077aaaf0ba249c2f0f67a3a6746ae76c20f80284fd973e4ddcc396b921f1f910ba90c980aca54da8ce83cba3aba288cc1bd1202dec0b22e546234807ee70c528637a1644211380d453aefb6d6d1e991e756853b6dc442524411ba1c6b56653530d3538271f63414d0c95090f7b021fa8898ade725f1d0b559318c1ac014248d1faa9fca249838526182abf965b77f2a7a9b2a9a4a658abf6be14f39ea7c2a8c12dc390bb721547c4cb4bd04b12c7268d214fe0b6c121871c3399b945adc7b7635218538587c24e5ea895860cbd25a13ce71a78f2dda54bb321203da956f4284e557c19f0d009e8ab72bd214343d391c2d2d33d29f24e716c36ac2637a3b15f840389528711475b0c37d5f60f27a09171917a73148e5460e815ab15af25da60f6526789f40055bcdbd1a96dda5de26e067f71d578c40ca9d0ac8c0d0de0abe81f740984949cc2f8adf71974004867f8e8c10e010ab771611f6f356e26184b87ea0fd43231033f390b794de7d94ba8697ca1dee880b9408335a21d2560881c6e55c59639d576a0720ac880b9feaaea771aba9c743e4789ffbadb6f6159a4545a44c3fa28003be0e67a3d4de5dd66a7db78b75de1368cdc4d6d44344926f5166528046b90863a58cea8091aee9e675f4e418af02c2c482c495b0a19881f563af4f28c42341df2ad6848ffaa98479956e730323aa11a4c71a94b9dc7424db7155814cf606b435f13f5eda4a0166431c797ee7af797f6a983cc69887e6748018833f0df0e94d6bec5d1c69f1d1cad4907c621bdb087c1260fbbe05550209385462c18407921a2b23495043b4f673146c26b63f65048b0d147a52fdf302bc3006afaa0a42f0bc44b2351da1400b7c90c86a675a593bd4e933ad925faaf095c54b20db599a8b6cf6920e6e837b710a864d86a2094ad54a1f45578997a5e1e4a17405824c09ec642a4115c5fb01bf8c8ed39140fa92c09a1896bb50eff61e9d5ac10adc7032c3863998aaf6f1a7599e85384f0d3004b8331f2932036093138cc3b40286bc5da127a7a60a16159a11d23a5293a7910e469255238a9601da10f0d3cd4a0296481f5e7587649cda626fdbc46ea6b0e57a2db81a952e5ce62acdef1a475688e59d5f5a2e0388d197a7a91367dffc0d3315398db2a113a9e1d2c91707f4aeae566be830bf34f4f9426e5e9caa6f7d3618be46d2ff892db3e5c6cbdd1cd251a47c6b324b6a0483a0cd66fe2e1b13772fc720fa4f70a2eed926bf3a96aaf470f9880855e87beb17cb37fc8adbc1ddfd6ceffa13d02bfb63df3f61b34546d77e632b29973d77979a1efe4d1da8ba5819c3c443cc556640b25db9d6e65bfdd35ec8d64bb77f333d9febbd5a3481537664145b33bb19f3d18af22223868a8909c9521ab7370b77b95ac95b37901ae2a4e8a0995aefa431eb29879ba06de4b3db241cad545b81aa5369c22a93393f8286c8dc0b1d28e80a0bd6ff676e01ed611c662df09659ce49c56953b7fc0e3b3a80f5df4feaaf1b9f0cf31ed0b7d8ac0d3109ef3825e14390004004c360a01f29aaaf8c0c599256551153003d5cc18e8c50c0124dd0ab8d56f15c104dd563724e20680dac05b9d68a428ba2fdb3f89ffde08f78d616fcfa3599296fa09f0a055aa406f0a95a2c811120dd12935a954cccca41041f8f02bfc2082003f1277bf3739cff937861d5e16c0b8c7a74951f4169c872778b6cce7bb1f0a8485f674b742a7c6329d9a6cf99b0c82b115df6b40567bcc09f21899c2c01e63d9640466875af66028cf85ffd1c4d5cdd2aa74e0ab98b0275246ae057e05960db2fc97e5c7f7e464c6ed21bf5ce1745f0994fb29460e60b823500a3064075250c0e69effa7044f577481ab775718b1923c919720f6d0a8b3a67a1da1bc0c99573d8dc8c0462267362551819160b4654ad07f1973e6bc1266595774edeca6764f61ef14b5f7bb2c9f098ac53b0c89a4f374c55ab8981eba703922f0ee35378b4dd7451de6d30c2933a7aa7514e031e5f01021f77902abcf41946619b8649d169f8396095325b9fa0b77d53091f717eb471df4cd174a83ae779a425e635469d57a1d07bed4826d9a6583911c8e747fd9bac9bdeb693bc92fb21942094f30c57ab2046da58fe51983a92087e8be3bfeb35ec0f77d886694eeafaa5d433d9bbe90336692100fc9e33a6578ff1b559a851aa43c56757ea59e0a037526351a15e48ea2011da90e5c14105cc964871a6501d9b240dd02baccf1834e7b16060843ff2f189e23248fcbbfbe6189ce9cf4b873411f44fa9c415a81cfb2200bed2022f39d640b287bba010d9d474eba894f59507ef4a27c243d0d48350e30d2fd19206aeceba8f6b1a972d2c47e2e6a0fbf5549d8e5a38c72accd68d117e282afb586329c0345e81f2cc3cce400ecf9e8e3dca41cac4931be69a18b1ac3db236972540a932456f49033d9946abc41cd4c0a5da0ad15bafe0399d7cd131bc1d33f19ccbda2f315cb050c9b65a8b91cf5fb4f84ca9c43a7dba51f806dc04f8a50120fdb01ddfabc022d4559300350188ee955833d79ceac64cba4149c464efce7070037bbe1d9f854b1684c8bbb82eb020adb158ff8f865ae6857f0058de4d17e473251d06bdf8619b29c1fe75bf74cf901dd9bec1a54f54c52297ada7c570cc8c970749c9a0a1795f53fa0c19c2e5399c748beec494e6c848d7166a0b1022e147448351f04a42b3392fa195793c41475a933c0eb1e7b8dce514df13af70dda4f6542b330bd8a3c4485d0af9e8bcd1a462e0ad59ce0b0ce2e2460f31ecdc03a4468bb21f3d501972d8e45cd4e62672b8c61a13903cabe9a98b02ecd8e192a0d59138b634c2bf3276e8d284fbfb9d68878839f6a181792efe8281cebb033f0d74bc0bdc2414908e787b045edb33428fa2968263528fd19e8005228aacdbcbafb56d8160b711a9b1bc30b6adfed14c547c846f10e5c73346eebf8e71e4ea4680c275ab9429f591c400b734021099cc829226c9f385945b55e88c12339c2f0c566530e6d67bfbda97504f7fa14d394275b4163ddad9f22106dadadb18535dff6317f68ebf8ecd62e3efadb7a25c48ca7b5adb5509993ae09e6d65b74b8b5f21dc93bde72264d64ebb01c1a4ffa04014d711cc4b661e1635c95f1cc7920cd23632032480f4ab52b4bdd9a00539941bdd8c5d3da1bb2195982411d4e6a07277b3c8d89072a0f45250c5a71b5a8fbc473b40307e30896d22f1334b5626b823ff9aded0901b9b5a95d931e4238ed27dc039b35c58ee800aa3ecc163e1f20dbbeb0ded1496fcfe62aaf284f99580d235a1cb343100084b27c3e87da0f967cb929303d3e6f76ebe8f0c8a437009626cd90008c6d8cfa36590a91ba7988ace3cfb93303efd67da05e84549928ab3d8dd6730d4de4c4cefd3d484143a0408c747685449942235e8e7fb078f1a5a8ac19bc1890b2a659106d1e3caca8109a5e31a0fb31d87c93ed9a4ec6d560180dda2709ef1ed82dbe7674c4e7ef7c1d38daada2658907c3ee4974c1c456013105a937e1644361b54151005be5930d2f417ed9c202dfe224986da9d775bcb8d1b2ff9ae29c53c1947c35a5d9242a2e9946b65abf1a361be0111cb2d3749e87a1f07f05c5f29a898678e9e5f4bb5a395ce7844e127f3c0387d901dfd937be3424d057eca0e3236a57d020c1d8e7385175dcce68aecd5ea66c9eb6b162d4c78f299b7f6737fdb4df002e77588e8d7edde981f6850537de17246a2c8798bf293bf1a56cde9ffeeb3128a32e2103bd84f07908b09292704695354ad9e9773f0e3e913feb43ae1e65ebdbc339342bb3221d3e43eaaaa09a6f193fc444539b9b6463af3225f22fa962af249566143447a4bd56b7aae3722c2d5099e2fa048429b152b302e87d38e95bdb81b9ebc1c122d49d540f7f486aab38214d3fffa091856c9e75d29947e7a9358b61996fb8ecd8c45c9e9d6521a91b4efb7d31c7adde2f1b65d5f7c3bf24d32c914dbdf59023da93317e6d09e4c90084ac75985c1b10bdd50f5ddb757f6d1a24c26d5cd49f6768ab61db8a4ce7c3324303d4ea93f63d825ebd22cbc65c3424f35aa7de2d7af85c518b8cde45bd78f5cf8b99608845853257f60f36efe8bcf0589ffba9cc79771b3e9a26e4dbd2e29305669a1c56c0b914addc2b0a5b59f5ae9594b8fd0478bec24de003ec625f6c10b332167dbb0eb3d5573e110456043ebdf8e52ac1f28c5a2cf275cb22dd3be60c14f857bab7e851f4e1210d29ce2ad91e558419de8dfbb390170c39d33102e8ff0796e164acde8ce20cd6007e01f414fbe5f17553e4add13bae3ddfca8a40b05ea911611d18acec5c0a87529091929d080ce7c5c807ef789c640e770a07a30e1be54dabde1e563d7860f3b14b8fd0b9128ca073e9faa5311006aacb6ded33311bc6c1a505feba1a662b96d09c2cb21032c7b89def181487266c0bd7e9bad34fdccef5813e423b33fa4dc0b04809d7e51717d573c6e56674a271cdfdea139cbdb0952da5635b82f17e6a25d0ae1e0e82408b060284a2964fcbc2b046bc06f032b816e89d422fb7d12d39de158a6657c0d49c1b6af43f93d4300669d350a8609a581a5feec8f4943f7894abb0b500dd6fab12897e46b5eab1823cea179559a47f57f619bf225309f22faa16dee1a3328cd66b09ee716d68777065d68d162b93c9a46359c59a6483d064eaceaf94e031866148a1a039baf89f933ee75d81c064f20632f3204fc58874f018cb93d10866775637e8b1583fea2bb05bd2d373f237748eb534fc0b4ea977f65a2ab4a153b2e6d22225bd5e9951e5002c703d126fae628f8c1149eb6a10c8b9397aec9b51d91a46eb6563e3ba119e774a26c03ba9cb49c85ea1b99b207c2bf1011eaf429fa23078f11444dc04ef9f0385d3a4e07d8ce19db97201816e6d478f1ab8dd2c24d5e83ce06d7ef02a0618be1cafe61c6d348ab5ee1fb1ac19639b9ca278658e58b71f9af45398c08c4923fb396feb76b3857e37c059192b6c6ac5f096024030b998e400f8f4504a6a50c41c9d647dcf92640c4267144bd3e9c7160351c499896453084297c3d877d5a09d524154cddd7a34122727bd3b94a95235db4c205f988ef212803f6a2a98b30ff384eacc9976068f9c97cace69a7163b3e60fe25db1218527cd241a6cbb51d9500a0384a9028a3c71d1900262b70780085e14a971cae9036eb737ae61bc01e9f453db96983303ee6a3c80d60cbb60e00a88965378763d62f4e5618252072733ffdd892c2278ddde6d14155b8b7847140bac81baa824e8ca04d1a2a2802f366351c25ca54358b74b07830649f8d554d8788a96c648349f9bde172ccbb4a7783baa4d204550e9641cacb049b34f01939794a14405721543cb29c422136f64d3191831041a24c783ad82ae8434e64bd343df056530699ed58173eeaf3f1b5c42cec2016376df85f313c4cf69db1be73fe023006965376d1b5fc9952171e79f226e8448a8d09df3d39082fab299960e3a67729b9e7724612f6b245dfec615de743d230b15ec5b184ed69b895c905c05ae956c05dd8eba12c4f2ce5b5140bd1ff124155c172a48f945ec819f842735c14d245b797a186ae74585b8a24333bca93704e11d94ff4e8896a31ff09a4917b10c9ab7eb863e095ab48caa03f401ace086e88cf877e5edb54a50d1615bb15b8c5cb86bf66204bb747f575f9120f4d45f1ff48e4b8750ecc5f7bf2326f0e56904e68e49b5426a1f7f839178d563ff5f14db604036c1fb1411c907f329031350a5b46518c0ca15d6d376b87097a5058a5425eb04aa1f80150e0db098eb80b7a8a2d5e95eef35a6abbcdf71fc4be591851545d2b8e3f5f164023b2a20a765ca7721d54920f0411c5d25bc74257e148a9fec1e89c60f27c82f539b29ddc9d7ba89d66cfd3884c5c9ecc7f822b4a5dc2121ed9e7e8e62b808a176a0b7ace4fc8afcd90f0bf7151a98a0da1681091ebce17c8d1c9b5fcd32241402a97244e061a925d88dd4804488b939750d91752a22cd4bcbf5bf24dff0cda82606bf1fa625321816a82eeadc88711d044265f74d1e1806f5badab94ce91dc567a5267105e49faeb761a851870b34da47632f81ae2d92539f50da038f2f3da75430db195e6fcdf0451ba4112dea0b06d5973610f2ee0b786cf80e3741a710904427fc163531bff03569be9eb8348afd78faf11b03102490ca3836e8973613820607078b9680b0476c11397580d3d36327ba939d508e249df637b2ce9336f8213767bfdd763b537d23f8520472eef0a5281e831ce0bd96085b8961787475a6944b216cb2f3bf573936bc5ea9c4ebec77ae70ab5e23aa39b73ae151ad6e9172270701084e1d49e188e476c1e21df4729bffae09e6f483ae53b856e519d07675aa7559e09ffec6e16142e279d6caec46185e43bb7789bb7231d92670f37730955762acb70c96df07008bba3f1f1b7754873593d011978403fa1065d6accc237b44bb8385020d5fd31da7be2569c2e43a1e37be8f524c7d88e01382ba8acd5e0314354c9a8bcf14787cd3db244c4fc792773f2b20b0d84f8cfd01707b1f752659c26a1a1f649aff4883ed7db5530315048148fb564ee7d4d539d22f61ecc1f32ac00679cb2ee4567b4346974dec410e0da8defa92f9f533914c5cc7ad5ef08edcf4a7fe2c0c93fbd5b831b7a74e49755b3b6e82c705f8b56403ac3405a580145f591b6c952a2389dbbd860523bf78c4c6897433c072a2667071f4ed945b43881c1071c02e59c402c0ff34620f695d885b116346f73009e01d72f5cb7bc19fff9529f8473dd71a30aab6389ea65bc44048ef516d398bdea70ae92bcef449d63b431ec25d4b983cbaabe0cc6a5db5ea2ce6072bf0bbe731de7281a8e6a8a88e85a940a6ffe8536da2c2e13cecfb0935300dd063cd3649656dad7fa4caf0f387bd15b8fe0bc9888db88167e56c42cead40c7fc5ee83dfffcd9aa987c08cc91124976cb659e7a9984e9f506e06b0593433e94a527099fd3b66306c40f55270a78f7993e9081a661275ed8535963c56d9054b35d75043ce2238218b49a72bfaf524032b6d18c93946f09ca683475e8f41e7609bbe1ea2e67c132858466ec66df93675d7e6c6edb2c6b5bde7f44011d8ddee9928ed2c5d426a7701b6ac21b1f29a307c4339ca8057a9be05bf8d2785a45216f1bc474de57d26938d13e512e59e5d6bdd6f29db59f66edb10a5e6e10c19b818e202f31244465671d93411fed23ce161d0864a6be0a47f753d1f506a3a9b366fe0b021fb098fc703f27baf7a809c4bf50fb47218b226b4495160cf66e91f341c9383d3d453e46d1c722f7a27322641b27c41f63d902cb7e2206f9c87af52aceec73a4a8d1dbb286e3bbfec829c95d440f4641c4ebfc723f62763080e62c3663ccec9d89ac7327e7fe3ddd385c8f32b899371e836ba586968765e2b52074a505f84ad8e4294839b08dccbe778ca387a5146a6261ceabdb8ea2f515968c8bf25d8e7ec47d5ed89c8bcfdc4856fb545e8b7c7e14a38865a2e8ac1446e182d72b363d4e379ea2c039a8ead1f98f25efa23adf70e3d5a87a3fe4b8bd8085ce031b84b4b8349d839fcc2eb3acafe257d119eec9a2b3bb30af8cfcb9aa5f5fd05330218a3bb4cc933b152a59744e504c134d3a2fd56ea7fafd8dae8d431b5d96520c8c5c58d5f22c2c53b126036338dc11d2e1627059453d1dfbe20027da02e46c03f2ac314b5b3468a7b8bd9878eb590b213435795ac13b7051a153f0438a548c85c5092ee8bf1cd146404fbbf4d44fc17d1f259d21ab613d966fa002d03995ef99041fae3c10a629188ee43097db639d99bc34e1662bf546907db91c4faf5a95a490fb77400a2d1c49c6a6d4fb7acb058878a43d47878db32ea9c4dbc4a5b67b56b613f87b93b501b15a3350fb6511894456aafa8fb91c65db0cdab2ddccd8b96268abfbf1b38ca10305bb5f47c50557e4f0124c59717408295ce5c4cb8f840a1bdd45e63cdceb2b751cf08c8058071f27da07863a193028acbf3a089e610c0b6e951abbecd05b37eefface29eac4be87dc79628cf12ebc877bb8fa26637dcb165bc21ef25a193dafa3244d24dc63526c45ad5c5cf1b486de5c9ec6982f9a622af7260c55efebcf00744d0c019bfe5c5aacf7d50dbf06b0c5b4e60b055dffc07f7b70649b55dacd49d5a1956c6a3d8ba28b9efc685d529ad7f74da12caf93f9722d10ec04587ba333d693b8988d4e0e55fabcbc88c8f952698d4dc7add210afb6f795b4b93f7b8bbeb7469783dee2393aba304eff783e28c01a5a69c0d230a828697ab8877c94acf9759a60f10b09dfb2d952e869a8d98501915efaf0872e5f53b5852bcd212434596b829b337e22308e618372f837c0156710e27fa2d42d34c4953387950e10113e45754b829784ce56cf3ad8ab9a92cacbe443de132343df63625e3fb8078c01d53405b730662f461acc43b7108fa9488bf3144cbe4df19ceadddaa2887acfe3504cb55a3057e30d43f005607671bf48c896713b6c78f9064f1e9d43222935d8b0299a80bdd64635258a017898c1da7452eced1721e7cdcdcd07434e513591ab8a939ed254c8654e4e4cac47a7b3027d23e25a18d683b6bfb802dd358015fb919b12c639ccce1647c3ac553bdcef9a8da3ae0920fc8c13cc72d4a9aad11f6c42c4ecc4a92a619af5d8cee8f00c5f4d88ea4066ba4e50a51c0e64cce1e2944fe463a5e3ead4c7aded875c82a217e3a45e2c5daf8f6d2034fab9e2dc562003bc4a0c2df7ece948911465b842c80c8e4b73c2813f4ed72e6e87b9725c2d1ee78b5e37e84826c1b7a64ea87db1fbd2dddd527642c42e7dd006e8997c430b32c4805c37ab3a15b0ae68d2670610ab63a2155a630bbbad85b8bc2a725ad5ca134c6664216f80c3f06812dae12994e3f0bd09bf02fb869564b63cde70bfa69345887a7a345f820e8a48e2804825879721456aa940bdc5d260554b12bd54e9c86e362556edda0a7757be0f9c6480a94c29d994b831c8cd262effef85331d3ee0092fea945cfd7429d66d6cb192189c2a0be2126d191e5d8608b114c3520131d56508f98d0778194e48419821c8c132831945c5f221b3701f624cc0137ea5333c6053b98eff5c329b96494ac660835a378c4cfdb4226e3af99d61dfcfbf332c6b1b2f2d254355931f39e4f322c2848bdff8f8630b79322d75d2db5df1dd42d7edc7736798c8538d225d190d813e110da9c400a22248ed7867ea13a19f82d0e47be45c125ee142389688716df80f7c2cc7c51e18a1d616eb3df0a4e5d59fbfe0150dae6bbf815952ee4ca04b065d8636d15ff40dfbc2f8ac13f55be80e31a874348a77c12ba78e864d2d464e2f25deca562065a2404c34c0a51b7ebfc9413404a597084c82b696c70bd2f5abf53ad12e5bb9254150449dffc605fc9a23db1563e62012780e8510148d4c029b968268c0c2fd1ee0eab8c6a8d87ca50c6b09ddce694a6214236e4a5ec020a30302e54632661fb87c689ece3bd2785caa0ed7adc95d0880660498365be6fb2f8e2f50a03a3a3f45ffa470b0a6d7fc2b993fe4ea64ff3e716aa2b423e00f220fa7b64b32cc4d4b974e5a697b7071e43b8bb91fa31702270d357bdf62c495e37bdc6ff3d6355b17b225e58c74dfdab3d5426d304a8836ae25b40e6482fdf4f56b4b0f0b6648115152332d585e0a3be3aa9c6789f456fc0b67c9915310e044e412c41b8076cb3a30db32f8b38e87fdf1af727d75940217296504781d24c6198581d0f139ad0ae23f95fe1249adfc585c7d866b222df0c74466a2e1dd2fa91c0474e7bc426e5da182447a26911bca7cf3b40ca00de36a05c3e0971f5508b141dace97b5734b6e9bef79e6d8a4995e0931233de2de2c98d8312c1dd7c51d7bc9d5bcac097710a715bbc84574fe29ccda91097bfe4fdf833757f1d106a347644267012e883d3fc998ea118b8b6dffa0afc0f3848f73589709b0368f104c0587989251b1e1d624fa1d38bc3bee6361b68f14c7ca645d30b3e5a56fd0505842baced0c1c475b9055e59c1e863b9d295e26cf39a445d4f8eb796e747ce2bb83db926da22adf5f0fc87406b9db6da7f6b8a374fa1d16915d93abc3adec8fa499a0db13145f738aac4a38322777f644869957f52da148a717fbe1801d0e91e00da852fb889684d689860ffe7b222a8f4e2b956f34c362e5069299f5bca275f1c503296bdcb9aac49a373240ad8dc441dac722c8f0f3b75dbab56d902557e9c733cb299ca84f0435d6633492422ecd049993d651b574a38db61741e44782b4598571d387f7c12c9b47767a12f61cdd1c28288e61459c61706de641ad44add6a8a46254ffd557483013a50b26d2ce2c226f2b14cfe92cf5b7a6043c8b393d28ae3518a771786128343179d181f9f1f83e5df20e31b0e1cb78702b063ecc91f779395e4b4fd17b9c997953e56cee3f1e11659082b4649b1b5dd106b06c7869624f1d2904858787206d5f5e1cc0fa0e9233df32107b54626fb3c1287e3cc1a7dd2f0ab3480e92f8d1d064ce3c3ebadde453727fc32611a4cf78cef6214ab6cfba0333a106b496893290401caec74d5352b6d6eab25ef9effda268145862b44d06b4efe29ef1363dded43b311a367a3234462aaca6bd1b510083329057720094713c81c739d6621884b291838d5f8a5dbef70b9593e4c11cfbcafb8ccf2679cca4db6d52cec76091904c356ca76f9e90e87b2fc9d02d2927a2aac6b8162631112f6d7bfadc9bba6eb5bda1b921a93261ff3d1c8f21cd4a7d9e48cd9dac7a6e7a37059f8354866a563f33a2aff142b9712d7b5971a0c9ea0b32a5eae136816c0827f860df52f0236dd229749c07176319cf27bba93232acbf2d70a78c585ddae1ff67c87ffe2e6879fc18ca2094df4b57e38025589f410c7fb2e4876dceee432b4fce24f469a1ddc1948f8f59ff1967c737609586d6b2cff6a0a79fad79900604511581d81295e217e36811d7392ddcb8efb08866efd11334d3d15b3713d1ff2c9319c26c9865255c0cc88f20ee5a0cacb0ab07cda484616280e1a11961a96cbf992401df805134ef016bdbc87c524d5a22d52ddefea14e609b2c32ca4dab95b9df96189ecea5251f1a6fafa2d276bbddb60fcbccc9bc70f484e5ebd2da62727a800c169cb4cd655fb5e10a47b6e5115af4edc7741c68fc5ffc68f6140cdcf68593f4fe54b0ec63f7bf7443be04380c24cf484d8519323217ce954526e20e58ec58026ea8fd15248d0b99ffeb9ad5f7ccc0a2cce0d9fb7d23ee89f3d8e275d27e8f0309c928f108b65a52dc8b118234d7d2ef74f74ac830bdc9c3752984af90a03111001168a3481200168e0e93195334aecc58b2b580501f02467c96b39078f6be8a583c860c465c634e9e8f5fe851e972eed892d9bb0f12a10de447a120b2455361822bede18d621e0041665d8d8e28b0a36e9c20da5a3ccadf27e18e0cb6bfc373be2b5da3977ac7cce3ee273417572c285034b0a5d43e972434e60b04eff54a23671c1ca623b87f994c2e337e889f8311f6ad9574cb53c44cefb14d94f07882ad2af017fabbedffbff5ede9ff7ed9ddf7d7d63482c7458f7d5efee5fd8e7c835768b4d5ef79ee0dc7f5fc43cd43265c37ad9e4c46c5cbb66433f5b01e2ba3718a28001264c9b6cf6ee3eb6765083391113933da880abbb6f09ca0d278a0df79ca3a83d22c6558a36c3784339f85bc377058a3b1b6a933b5a538996806d36b1d2a516a103a9e103f1c498bff918a4d109ab4b9e1e4e23c2070a06699697d5ac773647e1c245e215bb04b3d99f08f4a9633a7ea80123c5ba90e7fbf09845f5957afe9a03787cd7ed988a33062630bc20a921db8fe260d395e09c19bbd7ea477890808d1f46db53308b7271c684178fdd352985ea522880d24e1f8bdf270d59d02c209f7b9624151c8a50801cc028bb55539d26a4bbfa08349d505783d5db42313fa220e0a6517f3c12ff87eaff5a9c46f01f3ed54c09e1bf63366b050834b43534349fb40dc28acc45be73f0f495582076f444016218401aeb7801ce26cd3cd653f720781396bd4684473b9c4854407b227f21405ff72d36aa9976f30e384b4cc1d8d1b90b3487833fc040438ed6ad329ee0685eb052d5307346dec7bbc1f5e2ccb60d1d06e0e0fa5446252c1ad8d4468f82fafbf465e0442266635045e80be7dcfe6376c3c0588713a26ce8ec456b37eb9c04dc1adaaed1730eb5377eb590b909421761384f0d48d08541380375497e711adc7c013bfe892175f6c081168a8559e8a38ff478e6c865a34586ede26a8671a607019f23c789c6a585991a016dca9044d2f20f82560ecf6939eff90755d5c98361831ace630129209913818dc9549c634b69c12ad21c011a88da18af95cebdbc3cbdba580e86fe90d51ec8e5f25fe3848856ed67cd3db107510743f7f836905615a5c559ba68b6bb5ebccfa6ecd72415a53ae8b40d14ec0a1a99c05a65eb9a706060966427ad8c4a9d4c932b31938d69f181e7e3c51cf5bdbc2be3437586940d7f5e7bb804edb85621c1853d9a92100b9145d9de16efa853eb5004eb3b4c129d76471a07e6acb75225aaaecf9ed2cda537197793cfcb75734795e34cd1d2560543d07517a384b4052d905d8d9e56deca77087a44a12cc73ee64da0695da133d83a113aa351cd684ebd7759b93064f99684c83ec5371bd71c9be0c2c18d2514805937f52cfefd611c01f6792f700b41c4d72986de121bf63fd743e45f966ddb3cfd643962ace7e707378b7754319aeaa724276f540c657981294165269348c5dd54d9d5263929c1f7d407efd568874533422d3b7864214f3faa216b6bf5e04e690d8f5c1db7469dade1d514e40e85f353ef8d702021c451dbf018270f8ac80a8ea729147ab9a2171c1d2a94b50dd02121c71d06828738f31e146b7131c44a18a14cd0ad1354eeed5d15e9f7808da18b020034f5c62d9190572b263d3ba819c36cca911ec012fd87651e37967d3650cfd6e574729a5bc7602749e55088bc93427d328d8b6cbc3c6ec2089ed939107ef649b3578c921862ad3353d248b7495e498dfd998cf76c08cdd67405f30e31c666832a099dee95fa45403650fa31c000aceab08ae746f629618d64648ebc86f2881439e4959e0dd973cc92206b064ebe70b70324bed4873ec8f2db31ec8e9d471964baf44795563f62ade38409ca02d13a4ce36edfb5487c0fe80c75667192d3dfa66b2b503f823da720456ceb126127c2e66bad8ede3196550eccd72fb24c707e1fb7c82f29b3316f07099b8b71fc861ce428f8206cc645ab19a1119043d6d03ad9476fa7deaf33feb69db0967ec318155ff21186fb7de6d5d3ca9d5b4b6c12812b1124aac505aa30e9f4e400852b4589f3d144f08ef2cdda5d07037a617db704bac285e52ed1287cc4a37389876f080aa6a2d6b0a3b77fab24272c9f688e1b49c64c17e8d561fc082223f008e95c4172078d5c6289e3f8ba85f248bf0880b6b2092e1889b535b9be72ce00d12ef57529e04d8f704cab04b7071f56a9ef6c8898441646f641be0ea4e08a0a66e19b313db35e13f4e8a9bdb43bb9bace02627c132604a78e3bc09af526a4eb7be9225eb53cc8af0f315b155c0915229a817dd88e95e3e21ce4111a91023b8256fbb0c1a62115d9418f66eebe469145110feedc00c50e0885b073580c15938e40470e264f488bd23c0baca632d1779fc84e7385842620a1d74252c170b601c78d9374f46561eb5e6167f2dc632af8ef417a17ea8c52bd1332eca48a207a9a951be643beec102d155703cd4204d10fa36140af10da3f48980114ce165b2652bf9386d2aa4a098cb011401d9297270d8e6d0a515d06d1be0945240755134afb8519543b9747033e209ef6b78f648240ed1e84b5ac49119729b3edde99d3298a127829a3fdcfdab1763f7c917252bdfd5bdec2a454f9a0b75d8311211b34c940b5d063c6d422fa43cbfb9697252c6d440e1d3bc346b6dffb0bddfd8497d7c65e74e42c9f1006bc6e0772bc7f9033fe109cc3988b6ebd5c3624345e50b077c173fe61dba65637af20b4511066c7ad08b80032d926f5bbb8cf65ce1cc97c8525cab83a747b7f1fd08d04a8bf87d0df8744c00f35e2fbe1731843eb7b82cc74e7ad503590ea7018285a41005c7b123d035dcf2c01580c83e601ccb440bb99ca772194a39e2557e39b3824c26ae47f28f08a84c71d02cd95e8e60e6cbd1316c0ed269a08bf14357a612a3923775ad1eca08f7b8fefb4321b78da017038c9fecf98b501a06eab50c5b6cbea40b17b60fbce0e1bc30f48a142b2bb52577b3bb866dfe26358b96eb13fc662d034cb4125898e9e554ec02ba143c7f67a605c91c816fec25b90ce724aeb89451200c84255144fef6ea635556d216b4c4a0e279f69e292004774596c86b25c01c13b4a12329cbf75b30b1d5b6235ecf85c62cfc926e0cda87fc5aa8465316ae3509552342fe40fdd3331c7e42f1175b628ddbcd04ec3fa93a6c1d83369a4467312d54afdb0c1dd53ac5192be94b1b8b0b66aa1a293f3c03f1b1b02ae102769f0188b6d61ca6d4768190a71bcf154a8f934f4dc42906346db39e6670013fa1cb33c7f200a7eafaf932aad6d2aebd0d4da2e989215036b04183de624312b3231d0898dad59637196405f541d3dfd4da396243cc770b996916dc7ce48f26a03cfef1391e7085be3e4989096bfb91824052de53c056320591412177f6d1c9327422902f0101166147b288ed4b6633eb734e072ff329ebf4164f5449baad65611b8d7d2e36d2628e93120e9145d5ad7ca44392def250036eb628a2469d997d545894e2808c55a50eea342c6f84ac98e7dcc49a946f27e0c344071b5b2f32b5950d4ddc2e4f7351d827ec16fb20e63b522683e471b80c1e3d132c58692ece4d32c14c04769f69745587814cf90ca64af1901c19c63258ad97517b7c3ddc5b512884ef062a0244ded4e89d71cf4c299b05abd136f05a8a4d64e37629af2d4c3b3bc53194f216054043619221c5ed8a93823520bceae992022d7bb812bc323d8c0a89db8c569fcb940545f0c185655fbb77596a14225ef2203c9df5cac7b029d4c432349b1c82c7c9cecf1e7af640c42f612f6366332848131c8ac96b7974518e42a1897bdec6791f612ad0293a11ed2dc830c541524920b86b0cc84a6ae59bd00759fe328d14a1a6dd1b9875396cccea6fb59c3f305c0f17cd0b1b2b012f1780624b40ee3dcdd985ba6ecc8def97fa6134adf5b2f1677656fe48b0a7dd082c23e4e76f3b74b9fcbb81006038b2e07a8ac81c6eab5483625788978b6c618175ca30313631e860fdd96ec6febfd37022587d5756afa9639a27b59a0ba64dd343a7f4cac2a8cd2d2487f4cedb2218c9effd37182cdcae70f4ab9b3224e54c2c78f4da0609164310437ced452325a9393067af2fedb6fc7d1cffd0351f1ed21a68f2ecfb86a01de813729418a217371d7332ea4250e00597754055accc66993b1f3b3fc1ae6a1189c18292b9b1b2430f9a59f4cd7c6e9f21ea4a6a22f5bd04e5d6840948524d962f5ad4303bc6fba308793a6bf013971b99bc18d35f01945deb1014a1a5b5c58299552af42bb6accb156b636a352ad624d35251130d80da8d957c923e6dd4a99c24a82c198372134748b510a1979f764abf67b762a0fe27248bec187c1a23f2a0581bac4749ede76da8ed28eb0551feba21e40da10a6822348c7cd611201e4c4cd04499ac615125b20e884607946042cc2c8ec95e5c2056907f8b859902b41e4b291c452f2263480137e8e0b308cb859e72a24ea543f2e4dd787a6f5918dc32ebbee99389778559d74de454369de747153b4c4cec09ec613c35d99c97821941690f22007b4fa9896d9719483f3f9b28224fb10e3d4c8396d92a90ee78245de3467a95137c09491786f6dfd9acfee3151b5fe6e9f6ddbfa59a627232c0ecf8a75c39431286410250d0cad47df0463cf9f6cb77df0836ee04d9d76a3271d109c3643a66a80afa521eee3df6015ea0decd2dedccb3fbaa6b7de4a5222c51611f2063013107ba150df2ee22551cfb8123b588c5f975da6ef5b7e2e29f2469f66ebf1804ea8d87e9c765cf28e5ff6deeedb99056f295cf690d8cd15b28f22e2bcf1b2e5536c894ec4479b7f1f4b03429649739c243cce0d01cd573db59b466a59b8667b0e58560f17d31a3b00e98e1565a85b254c6e0d790d46a1d5ec9a25d111bd5c46a130a4d0431072c4ef259803c181f9a873f5b02fa8407856f8857fca9195f1395a83e45cbe1872ae7c5d5efad88efcb20eae3c04791bd519765bfe90bb6f24cf755dfeae764bae75ee60c3ff03a72c12bd19b67becd34407893fc9ba0d59c2772fb8c9e053aa0ecb9adcdf68ea706830fd1956b4df45758a1a96bec0a347b40050a89610cac12e86d040e4f50b7141332d871856e1f31a93d0940bf376dd7a7db3613926b99c1084cdcbe1f1346c30931221e6c5444c64e525bd2e9328b30f3e1f063b24e5fc93a5b153d5ec9c28ee2b63ec74587599ca3f6c6efe9092889d088b56baba2306f7f605c25ebd9b2342255e8c695a3c2992e03a929e755bac9051b4452ec4b0fdcaa199f973e88368df0e7e4f012a42452abdc869469bacab3507954824342e7068a865142cc4de586d3d7b605a33978583664247ecb10e42ad509bacea26c14e291179271fcc01a905eded9f4dec9e26b498344e08b8898537c600b5dda1509dd505937950b5e8d95f69d91063f86f33b40db6b22344367b148d393cbee09da4ba4b4040ed0c19910f8d43a691dcf700d4463a56fd2c52380decc80706e25b0c3a5b3126f4aeb917b115e8128bb27f4f1a3ccfcfd48981e3366f0110b84bfe423957b7904b245969d8fd71d2bbb265f6c68299934c58f2d18142735aad05aa8081f2dfaa4e9eb201ab3f5010bd4841c849fdc6427a753cc0c9fcc7d068850560c7cc794fba1b385f3707c84800fcc6788bef8140810e007cc539900d20c49ef073661bb5d055a00b63c5592ec4c4ce0c160ac9946f642fed17404ed3622dc240599c6f0ed38b71ccfee059dc420a4c8fc78bac42a1efd60fcddb536ae3a0256bae3858a0671cacdc165005e6a58d6173867ddfc696f0d1903cfd6d75bd265331f20df0c20a034972adf80e02b60de5bc8636ac4d9ebbc44f6ed98cdb63df7fec526bc850166b6581448a2de7720845521b331e4c4d0b4339ab162021d7684d2f248d8d760d36c41771411937799a5aa648bec5ca510c40491eca58c81660bc1915e6a494724e66e6b12486a3f4744395f31e690ea1971799dff1cc6e1f62a6bab34cf287261aceedce90e3e54c53e3267d8cc7b779d68deab46e3cb7487179c35eac24a8034124736268f9b16ccee86ac0a9b8191c3260ab9d6b215f0f770df59e85e03ccf76a5dc23c93980ba0b3dfb0e72fce9806e88f70f2b1c0d569063c163090eb8e468733aab32e30e71d2d23b8695d9521d14e652e53b24f25c2cd7bf988b2b6a8e3bfbdae696658d85de8fd4099b8242ff5ab6602c4109851e071205b797f5504ee95f6d9c71f5f31cab08f77cff605be93b7e864e14d83cea46e749e2680dae95ff0a3bb6622a92594fbc0b300102135a930b3051fd5d83be5d1952e9e45a280667488159055370b2f9407daf1b6848a1d868d57f6148692841b0650b474d22b668c33ae15ab0122103c98a791094809b9bac3dd4c09a97c10544a56b67fb88a5848f9b49d84831e4cd2545cff16b7047d0c6d56a1ae40e1bf44f3f0425a8688c08aa103c0c23f7d61e39c415e56739425ce3b5ebdff368ed0a93d3702859d6e62b434ab9684980445c5a7ed815b4d58aa92b3b3527c57a81d6529d3baa0dbdd61291761f37ee2048786fabccd158b32869495466d22b57800d038d2d69fb61e03eb418776dad079f822f59014d39ee971d2777146f705900eb4154323335350b3b4a3f95133e0d08af6efb00e2eb72a08a4d4cac70a34af491b82d9b8cfbe796a28020d3785ea90f614f5fc90f9458699e98244cb1dc328b6209d3e10d458a676869453e176fa961af7ab7166bf12fc5ab6bb202796646e85fffa9ea5133b8021148df22e74ac6599aac5caa2c8945f60471f01b3fdebd0a26afaaba2b0fe9ce6349e2e384d66d450a2180aaa5934662220bd8d14c2370f9f7cae2c7afeac1a93b858884f4aa50b3a5080bb0a48f55816a80b45e0db2063748228cc1744f17a14ab4e48ad09582d2edca0b7949c0c9fb55b1c4bbf8455686f4ded3908ae38b67c9331d2124e3da708a044041534c9307aaf2de639202025e55e3da5576f46e03c3047aece18ada754e57636c351d31c675054e81d62cca8d6e50eab9cc85fab1597b2c6a67bf51b2f50ccc1fa83903a0876086f3b86d1b59ab5e3cdd7c7c805e2b297006b6df1fc679fa5c12a9f19dee275193c6ff8e8468cfe2a0a6e38823bd4c501eae8f5d51c2823d5b1ee4a10a4f520f206e23c4c309d07588a71839f049f0848a7d921966fce6a165eb66a21931478c221db98170dd6498725025bbfab7ac5df375656ba2bdc001dc0c4be344908ee73ef441c25daa8f4f74a7e57d83d08ec955b3328c1210ddb4a475ee950cbc33341a5facf99129d622b714b76dbcd760771372318613fdf483bbc632632e8ff3043130bb3242bde5312e740ef789e932f10d5cadb5e88badf81222922e3158b1836290cfd21d56eee76151442e56c47010ad355da120f224b4a5622448ab28938f9e37c428a7e554ce851200836d89c16d264696206b57473574473cc5a0781baac528e31c24cf3af170cbe7065874729e3dae792834348c79e5713abc4b520bbe8394e45a5b386b39e8ef130d32514a5b5b59abafa8bb58895f851e730940acfd8cf0fea9621a638e87b6922f955046e126f44fa394ba3a9587b5cef5e42c422a3d9328b36709a37ae05cff4bf3cb647b5a8abd31e11737b575cfac46576eba966507f123cfe432417e4f293c1a733beebeb4e31175208a2cacd4a8fff68fd6a68d325a8a3c35dd554cb6f06bd1e054f679c2879e67fe46ef1a5359f83259e551fa2de2e108b72bdce98017c32175c02dbde838e61cfaca9140ff858e44a89491a8fad4f1b012a069e05422ca83e12085b409f1cd07b6a041405eea95d7de2f56abe393268828f1ffe31e80730140c9ac575f4b4b0872935c551fe1100755346fc2b69f68bf5a796d465298ac818d87a2cf60146cd301c266a736ee181eee16e890c2fbc749d94c95512db5eefd6b57a684e7a482f6b33dc9f5ea18dd103295e82df3fa1ad5af1258ba53014bcc0eae2fb77f04be547b664d56784592720430895c6c518b996f87fadbd0cfe643eb9986d5a26c35417eb64ac0a824bc81c48da8403e14b2c3fac88937c3192bb6ff677ba05dfa408dbbe54b0d66142b208f4fd876a02084fb290b242042aac9c054c14855868c15b9576561fc91a0422575c769221d951fe13d8eb5e352bba2fe8c9ae96e41717a83dee78a584930ecd4c79f01a0bcbeef08ba8d1a56ce446c49a3f92e9dc54414e216962d6cda93bb192a254185ddc2873d99babc69bb172be0218c9fe3946b6b5edf0cef7823f5aeefd6821a7b54aad94c3afc004ec73a9e5f40316d7e1c60975565e267250f588f5603d15703cf05c05bc189d34a80b5cff4e01ca3fcae02c6e81b200eb33693165a0d6807b2b1358cc82c1c70497e1fbc914cabf6c5ed9957604dd4905f5717eea7850b63ccc32b05a035c62182d06b612cbcd79a4169c8757e30a3925bc81d50f704621c4956a42112aa809409cd2d7de8ca705fb86ccf759a883855335d6e569a0abe88985ef131f76262a24da041977057ab802270c37d7786c14826a64c1e179bb46ee43c9358b6a9cc0b169d7e5a9531204f895b6b280102a38fea329ef0e8c0a3a093247b6bbc7799541a5749414461c2a625e108d392b6766eb434e8947fcca0eb832eb6347cd1e8433107a3446489318365ca638b85cb9bc809ab46dfc77ab6e559455ba0ac704f7dd4878962b891133d8f19324332fc8150003fe379e6e9847622f33f3f59c455c08cc0420d5cdb8607e089693189e848e3910ba475354b0cc7c62b012a913a40145af4976331f463dd942658c2a951aaf0d950acd5433e50242c8ba833d89f5446b9e74be4e4be159ee0ccf885c6c1d3c2ea42691650c40fcc11c51196e24773ab7e1c8d287356fb7753da4fbc9f2a78cb1d35cd57d47b8f87ce89b06dcf98238657ea6e18707b0c2cc55ca411f480d6447b774ca3da3d81ff4dda3b3ee43b00779db4d194b499f6a3c4906f184482eb513cbe4205e8bedc3c1b3d12ad9d0a1d9d0487f66cb30207895a86b4b09b50a14d56ff470708ead1e805367a9f8e68f8ecb45082ff757732f407382e75ba3ba46ab2cabfd761363ba6f6dd70bb10569a36b9455d07710ae7e85824bc48d65327f8b12cb1e1bd431603f4e11ed00d186c6527a7c28f0817b43d6e806cde77c17026d2b9159a45c7f0b496d149cfca26044c4fe5c62b25900ecac916f284c3fc5fb8b9d2a7da2c541b85a07b238e42b812c25c25e99e8536ee233f4ae29cca7c4dee76fbe07526afc0d5cb6a68c75e42123ead40fcec07a1073d44c7397bb253bd37aecb6aab580a2da1bd87ae5c9833acdeb382cd3dc5136e8c617177c888d29c727a6d2abead8cd5c69bbfbfe92604ba215513530217a24e1d89b7d05acbb0804ee38a8fbd2715529b3fc7e9e2c1a73ae9dae48f2332fde6b5088b2311af8e6019d67553e67de9d22ffd8db21c8d9ef2ba686f5ef02ca5c5852c2edd8dceb5141670fe4709e462f117f5255bbeeae44eecfa6fbdfda14bc1c881c6af9d6470a41fbee15d0442098dbe00b85f0075746325003b12d723e04829c0e91f35bbbebc8c2d679bf06672cf29b6385f83e87ff4e0727fe7b8c6d7dc359a29d9ed38298c33bde0dc477ca58eadaf22e1cf290cdd78f9c42ce79541c68c5ab11acdead777dbdc3ba93821c5e0fdbed13ce42eac232cca9134c66c1662ffbf8b14f89ea8e72db2937c229bf76efb9889a0e8135c6876e6f3092c9f6b8cf5986019bedb3692a904d4e88657badf216f3148f81b54b1669cba6c9db50eca4998f93861633a8eaedaec8c00e1236a8361d461c147c80af09174dbfaabc661cd4182270f8ecb71b1b6dfaab428ed0196b4677bd863c4b6f6ab1cb1557d3c34bb4a543561eea96e01e3b6ceec5599592222778a476030b630ee94b9823b9186fd58e7fb2aad045d810df818b8a3ccf52af01febd45db519597b0b058b86b1040b8984cf5ce7e9579d9d4bf314d16ed60cc3538af33a650a3ed33af5ab27670be6228959cb3b82b98c85c05c582c573aa7bfda2c141594263cb06ccaa2903dac32692dc272a7737a556611db5ae2bdf66dcc0917d0ce5589f9382eebbc7eb5d945df5588c732330508691516b15cd539fdaab350cc23a6667398140031330bfb71e77b95561c7e10df65f990f0fb40ffbeffb6fdfd6a338fe898e311b91c692258f16d24b6d39f3623317b7bbb14fb42d4cffdba53f7a6e25ce9c8feaa334bd40d5e663539c2a1e0b918e746c7f4549b79a476817bc4af69f8050bf6e5820bb315f76a335879ba841ff6b27402ba5c35fe139dbaaf3a23aef347871fdaa37d7bb491f18c748cbe6a33bfdb909b126ed97a731d113119eb987ed519d18d1a475a9dcdb7e1c8986fadf8073adeabbe903dd9f0be70e7513103b63bb953dc4775e0565d465c34492bb057a6015bc3485318e7ba8ee95799791cbd008f61b842fa2d8f301febb8afbef55c59c60fc33ca6957970555927f11feb907b951974fd7887b04e9b40d51df18afd40e77b9516696bc007e36c2e6b12d256efaacde6ba6227f116e7ec7c7205005fc73f6c867458bfea6c3aa075a44566da28751481675a47bdaad719f6566849c3304a11bdf53cb67b5553dc06431eeb382a3230683edba1579b11242c55559b1a98492a0b786eebdcab1e231d9835cbd3a4f07f39f36c1dadeaec8c6cb9cedab347844ac45b67249eb954ca745a5c5f02baa709545b30d8554d07fd74e737950ff8f8aefb107690c8d7da6b4e15dcf919396ef45367706bb3a3b2400aab07664f265caf6f659f3e3b5ec32fdc7f8fc19efcae59535ca1e0929188d634655cfbd8ef91c490894937217b6f29939432c91417055a051f05cc9244352d2655070f5db7b9d33b1c7c6c5b6d37c229062da8f3b6ecae5da59452d69a557a699c57d3bc0ad106b1afd3d1e9a8613efb3a456998cf0a3971713ab2af1805fb9d8c4e462728d1c2f806cb0becc74c68624d8e0e0e782b7d1b1aa6d28ea6c5821b2ed4ddbd2ca33960da94420a9b524a69cd48ce2fdbbb6c1fdfdbde65dbf16a11acb542ca0e6ad95083bbfb0c6942c4e8d503ec27c6e38a1b246c9a5ce131a4efa1b3c408470d8e1a1c353870f45cb715478d9a568c79ed5bf63d8b202f3e82f9e00b480e7c045fd6aa54ffde7f32973dda7d64cdf8b11f1be9f4882e155406f282122411a310321a86d9ab7f9be6348cd7eea6bd4dcbb2acd59a4b6c99aa485377779fdf31522a61524a1d324dab55d32aa5b56ab5d62c73cfb26dab3508dab2a5841236ad41c8f88df6542d19fe9f8bbfc05e0216907dff0ef9fae1ff63c6b4716fe0f0cc5f98d1a1fd26492ec32ff35f88e1ca8f35b1e6ca8fdc7d3a57bacbb6c954246cec3203cfb40c8f1a51aae363c76708132246af1e603f350df3793648f060e2514ae97b2d9ec99e7f061a2a1098b3b8fca5282e2bf95eb8fc2a15d3e018af32cb815cada6d64de3be097097babb1b55ea5e8ca935f63871a7922b5fa7566b239775ff4de0e32e893403cf74d6d9105b73d1475dd4450df3f5d1d75f34165dd4473f5c8ad8af899aa8af78e9f04c6d324454a4630186813e40b99f07858db883307e39800b7478a65e1dc4204c4ef076870ebb7ac69059d2bb94944f0377c28c52aba48bfa490fb5509321a2a2ee1ec26da11e62da7991c5aa82fd3a4927e9255c5db4a4c5076f77e8b0ddddedb7846048ecc9b7dfa2a9e1d130923df9ed8ec38e5462ebeeeeeeee865cdc1f5fcf8e08a546482fc63cb3648b5992c6c79d20689bc2fefc22e7d3866571faa194fa94b0638c59a604128478c269cb1a314a29251fa15e1e4c599ca8a83e74c71863dfd83adc28c2a485bd94d2f6418886df478f2840e0cb085f018fe028100689c0180482413534ccc7502860035fc15048ff6c4ddc4eb322101658ff8f9f44c9eadf3885ecd5bff15affa661e2e7f84dc3dcd01229e7482b05f6e327373872625adfa2459c7e30249708795eeb46cd4dd0159e509321a2a220a12453281124f4c5fd01ef07bdf3585882fd20d011720806eeeeeeee5e6323888dbc5e494c5b504a29a5944e99bda4b2a55645eb7583498d8ed96956ac89405c48d02a22de105fce39678cfd929b6309bcdda1c3767777e778e880f2c0361bb2942648292cca84709a5c4a3a4de0eeeeee9ef156e13591485a8944da389bcc6d2461257bf35d3cfadee944eaf90429a594524ad8dd1e7d1e0d13af50c290d7a53fe7b7233320dbe39c59d642e826b9d8b45bb6a494524a6149060edc8f03d77f6b28399ae49c950594524a29a52eed451b1fc2d2a7cf50a011c6c89161c71823a5778b6ef6e61745504a29a594524a61bf6660ad4af5ff79d5004628ed021e39164543430df3c1a24bd4301f64c28d700816c1238e002cec07994026b089f52323d8db1d3aeca1ec4ba989ac9ad84d1f7282824b8b2ae555f6e493be1ceec461a7fe80c6076c2461c4db1d3a6c7777f6e4b3eb2f0e3bf6e2e0e34e9a033ad35042d8b0a59452a63a46638f93ccf2d7b814b39cd9535d1c80e8485d1c76be9d2bbfd65aa51fc97e7619ff5cc1c63036fb7ab793bbbbbb7bd3ecebf76f2b348088cd9e7374c6d5eb30fb2dcb32e7eab793c928e795f46569c7ac5fcf114d731b78bb43874d22a5522f17214d28a594524a37928553f36cbcf6228ff6e2e987184bcdb24d4dc0830fda65274d0c5161604b979d34016bc2870923d04a6a0f3201844c123913536c4c989062fa1c31f144ddc1c30f1334d876f8f426040a7ce061e3c29a2e3b8149e17ead5b823de1c22762eb6527302d8ad879d909cc88e5b293207e30846d533db7f4297b76fcf6eebaae6727bbabb308d8517a534618394efedbb7ffff636c184dff2f59b06d0ce7bccc7d9205c6e662df4ed666ef2a4828bb6364f1c1b28c3d0da7103aceea75ae20ec913b354e8f4298e585700a1bbb48392f9c1042f7fa30dbb9f5619d717a7d2fc5d0373e75f9b6cb3193365470467f27db832edcb7e7350bda0000cfe86fdacd2ffd9f4ac7bcb16b81b5d4ea32369c2649a3904176f05cd907d9e15df529d3601af229d7ec82fc0dbabb47777719e69d4f230e62b26728216cd83208122a5f7e7d1ae90e9901292995924a29a5a433abaaeaa4c6e5b719da89d2836ac8138146e011524a2331a020284e4001728308eb13a8926e85e2363ca49441aa6cf24152e526524a19434e0d24f6e3253ebb23947e0bc8242224d38a31d24ed179e2a51363512c2ae2229b68834e0eaf1e86144509e203fba9d29d86e8a29d0d3384b01f04baa1111a8a2e2ed138142488f55b070d1afc225bfc226b84350c4c492091668ab8f057c3ce608a986d1902833ff027764492254de00f0c824b08318143df447cc37e3bba1f8cd110623f08833fd105611036c4a50589944abd3005ad99f626777f927cbd4abf954aa5d2bf7c2c39489f4e8944ea7e9456788684515a614f3e89fb2a70e79b64e965e94ddcb77265a94bf18bfcef06cb9e7c8d23b1d7c3e5e9448d08b2311283c1623f480c81c56c6e3a66e78a2b86625ef6833e3e2a9b201fd4da3a9c8e70001b03980c14bc26b11a3cd34360af254c86885e301f2282bc60359e3cd9c10ef8069c001738060230c0ecc75180ecd4e0998e41396da1041698301181851f1949994b214a29a5945218aa490a48340c3eefa294524a29bdde91daf168568c59fa34ca18849414113662008d988e84802d9e69e8eede7aca79cbc753dae299fec1dddddd9d766793524ab52e5c86a8cb1217a19ab9c4b21a13026a98cf658a6bc425e622546badb11b232a468a723f14102a165911f5ba52abb16a5bb5fbe47fa818075d1bc7b157bfc4b5c0acfa264e06176e7d97588c317dccbac46e7c1357e23217aa4be33218bb166e764748249721ca430fb4ed6bc95861088c20f7caede8fa2ff35de4c7cab1d782046aaddd8fcab1705d6af05abbe72670e5dbb75906a35600a16a912eff5068cf5fb5f7e720277641fe0eef5a6117e46bdc17e3ca94775f055474a4544cfc222f70e74358d261ba247e918f81afc49efc4a278934bd288a4f86849a0c11150941260df3c121c02550080ef51059d8c27e30094c029788b04808649862fa7c584a8b606a826d219152a99696be31847dc20455c378ccf65a8581a2d2b9d2b2d763669cf411b34c95c4dddddd9d1987109078a621e9744f25b601019e119f9b15ff865f64a240e29996c2dddddd9d74a5f4240799a0b40c60465a59748c31b690968c1b1f33812f66c9f7f181c17e7e8074a0104cc24536b210ecc6a387463106c698255fa502020a82423bb8fb75a0e8ce17bb0d77be8a9b46810185fd64dcc8464ba05c9874a2f24c4b860ccc2783e6868c0c569489c1325c3d809db9fcc4e52f00c7e4e410113911958931399115bfd609e4d46a2d915679c68922f4502f69a1a026434445414249a6502248c88bfb431a00c87e0dd4407d440fbd6ac08052c8c516258ff84444454546464751a234c9a13d9613158fa116c4646a10e5d8d0034810a11e88f888bd78411f0883f96ad4108143a846cdb4181a9a1853036301e5be3064fbca68981ebf5a16a18c4a5b325a5a30160485bb7b4e8c317111b389b3093a8812c425a594f2651457d22005573e0e29a5ec522a3b40789b580273fb4e24b48c0c659cdeedee9e19b37a76955fbade9ecdeacf38159ca82f3eaf8627a325e76c527bbeed60968ca11950ddeed8a82ad86f2f4a2a2cd7f08b6cb9b2bd1f2c023886e4c1976f009ec130137ad083fff56da8c2312466411b9067f4cbdff8c430fe31542a10c2184d3cfb6d5461e78559ed38d22ede202b28958e67e553afb2f2a9e7517994d1aa7eead9957263ed568fea7852bff2a895e741bdcab3ab3e0eea551e27f52b2a8f7a1c950e67a5f33ad5468024747af8f080e5872baff2f17df04c8c41bd077f224dc906f534adc2d94456fc152e85ea641440c47e6cd4e323c93be2f75aaa6f410a963f06ee5094e446f88242e87eb08794fb4118fc8144b43abba4037e71bb9463ab1a0bac2f5be145142f50703fe6c224640515845841051f0a635a7dc2062b372ea91f43df1a4b3b1070dbb3d7b46f9eb1af6929aff98ce93f7a3595144ef24b7dcb35bfd4fa26ae7ea93ea9567ea92a5ce5505c4f9efd6c632521d0d6b8c5461516ce59ca21eb67dead1b61dfa0b2539815db9b6a47b46f350c4c352b461d51d690a1a51c4e25ed975d55edc59454228559377237c6b8f16b96fd9c9aa67537e430e7a4934e3a33ee86f999a6454dcb5e7ee54893d26e069ad891d8b6d085f5e2eac6b7ad28136bec872f54a47e952ac824b2229318d3af172c71abfe5477a5d2a7ba9d95ffaa3fe57756be9a61e5538fa3f2292a9fb2bc42fa1e97b55765e5fded7b90f67ce47ffdbaf1d575c7b1a3892cd4af6c50bfa2c1a12bf52b1c988a00ea538f63519f7adbadfc536fdf763ca80e09ed5632d0972b19b44fb1bcea71607c8c87f1319e5d2bddca7fe57b5c2a5dea57fe26f52bdd0e92ed7756f55733d5ade4affc53dd0dea577ea5db59d5eec74dca9f3eaebccae3acbccaab3ccfa9db49e98670546c67a382ea56b2fb71837afb34b0cb8bacf8299f7a9c944f753c486e527f7a1edbeda0ba229cd3a31ed5f1a43a1b7a5c1f0ba5fe6bade810ead9657f856717aa43b292a16fd03e2eca9e72daa738fb28cef42ba787a5950dcbd3c02e96c7697918cfa595bf7736aacf69e990f4c78001e37b5c2c2c2c2d0fa3db81f12d1d12fa2cdfe3da58581e068c57799e95e781d1f95079966ff90618d1f282afc84afdea575ee53ff85af9d44740e557ddca26957ae842a11eba502bff96ef71a9b895772b1bd5f375ef6e56dfd2eda87ed521d13ec6f7b862703b486e62bcaadb414203bb82f020b951fde97938b2529e47d541d8e963fcea1b60c4aa8bd1c106a0c0da5fe153fe1453de7e044ebf42b7b2b196a66370ec5271d00583832ee7a012edc56f0e06b517d4b112078fa0c02378c4c2b10b4249b244925a5752745341a570efd29e8dac58e3aa09f6eb1793580f0df349f9b29fc88d0d74e30a0a5db804d6b1a0f89d247ec7e24bfa73ca2967bd6ca30a2bef2777f8530748c9754a4fd62a266086944d2a2feb29b19f0c015e353cb2ecd218cca2cfb553f10b7d1b55d8be00b81e8fc497895c0be749d417f6e32538646e348cbb2ce5d062ac5a25b547edd7afdead4faaf4038085ad5486d5adcda24fab8d816e9464a30a3b2fffa4f38b4ddb340eba4cdcaa92b855ed9e466ba1071bb7ca48da9b3ecbba1b93e977489b895b651ab7ca4a38a7ef4c1dcfe9b5aef4a34403bbacb6b2d17e45039b7e85035da6872e57a9d42159c9e09f7dd6dd70d9a5751c59b1aebc2ba3bdb6c9a1a9999ccc8df6bac6009058f85f0defa92da3d8a0fc0d4af8124a299f5d38b2fcf4b2932692b8d007191076bbeca48923a42636f763a10bbb9b66323e3182dbf476772b89c2dd2e3b5102e568a3a939ddfd79eacf9e9246c655ae7cae95be773cfed49f3ecf845242091f677e7d9cd20ace8a433b6f1b8015363e448185245a61d3fec8d04c9b1c1923f66323992b553aa4239217c56ba960c7e80ae46f30a6595ef939b21e751f7bba7f3313e85f8fa64e8d0dcff0edf7e44b4a2913591e2c623f66c2a386875eb0678c797a7675de1923a595d6f89576fc091264fe58a1ebdd3064d25b9ae5ef350cdabbbf6acb5cd83c9332c6f83cdacb2c09f803843e40a21893bd7d42052a296a008d70ff6c7233f8c5df442265365b96ad5ad3b42cab91477b76a914b1da6770c2361d297d9770a0ab04496f6b90067d20acf4ee2e541359a59cc8f23f713e489c0d4064a9a321c2f6cfb8feb4d559b7aabeaa2fbf947599f65bc783e4a6d4adea939e5d5a077f56b5542a75d00702694159378367a615a26276c1f6642df3c9beb49c827aeebe97524a9597f23715ce53ef2a5c5f18dceaf4fd309e855b9dbad50cf1591ea71fc6c767f92ee98837f5272eded4e937485a7955c791c52c50c52f6c9f39fb28fb2b36c59e6ccf28dc399a554dd37177afeeeeeeeeeeee32fe95ba0286b01f13d5d030fefe390d031f46f5ff2cc9fd61f0cc7c7f169e914ad8d865734fa1c2ae20acaaac6b6baeca99519a753cddb44696a4ddca26d3b4e7ed616986766d0fb5d781c532a3eda18f8e0f2031861afd1851fa34bd699c4c4d4e5669a752c00aecc7463a3d6a10e62356109dc8926fe4ea1cded3ed40c896f1ddcd710676c5a7e9ee7e9a8e95ceee12481b984c367e60fbf2fbc7c7f18f2c4a21d0e392410a78e1c031ec83674c3a5c083b8621b8d048277ba83d7c088b31f5e1c318845009a3a0167aa0da5c86e09323045d188b413fdc8f749f6081e409162f545ba086f954b186e127468872e15b230d3397cc263726abe94a7e29b2d9b8c7b0d1918f1df870c89218843005c2d80c750083da9b5f5f40e0570efac09f07b04b766f8362572f367611fa98d52a3e0e7cee78f8e1cf0e76abc813d96565fd56ec97894345584aec3f016048a0c48aee9e94d26a026b2f3b51a283fbb54c3e50c28416485825402b0c88228912982a8a121e5a0a1ff92db4c50a6c529b00358bef57ad9091c6002992081569d102ca51cae8dd5d030b80cb4e8008e27e2d130f40eca041b12b979dfcd084267e2802a5e20722583b58f6c31329e1572996bc6e3733b95c7f5a5455b2162e82add6aa52f50ba032779ffc694f9453c5a22ce5df93b9ddfd2a7e8f29e7dcf34bc38f445bcfdd20842958abcbe5ae1f7ecfedb95b77d7e88e2e564ee7b8bbd5699253727b1c65c0cc9caad9ed95db35384f4a295d62c7e6bef85fc76863c78eb2a36dcd8b6c5b9d1d258b0f9146085a42ff7a84c0a67c087980c122940f2384b0931106f3978473d63a21109c328acad62e5696929672d4a75c3c1415167cc5e5d131b5215064f56f5acbb83991d55f6fc8f80c70f9596c230738a33b46267a3c7323ed57559ffdac038210c806080d1faf39394c3aa5cc4d27c34f22292be5989fbda6fa36e2764dc33c7bf5f9197eb43dd906048233da32ab3ebf492563fc5265085f3bed75908640d0c6069a03b203c2db8be4f303e4026111126583a4e9432717c0db2d44444a140b130a5281b0e54a39e3c4116eac361601d330874608acf7a939e7ede1dd1891a03e48a20913b2980211b8707df64a2e7e6ea0430e807082984b4a29622f88b1f279d8c4996e274ed04417b7bf5539a2d003145450050d82b003d7d7baf2ad4b12222743082196f2a8f46c5a0972e9d0080000800003160000200c0a0583e1805034a6a8da6e0f14000f718e3e744c99482391488e03310662200662188618648831c61865945188cc01d457976dc0b070dc0e33b3effc9266ad8188d2fde21fce5e419c6bf09e3b3f5ee7eb709e2d38ac8e3643223169459ae10ee283b791d23a25953dc6c434b010970aca439c37a3dc3f63e247c3851f6cba2769f4ad2ff239c7d423579362378ae51495ccbef81bcf11ee5b9780eab926267ec7ab8604cefe7aed2fcfeb60a14194ad5095613bc5477405c126b05ed703a5b3581c510b75625623a4923abbb78c03cfbadc22e00fe6e7a51d589642d70a0c1c2111a713a710796b97b300fcf5a2ee2f1044f0103316d5b7fe0f437c923a60c185295f6db2ce94c8c6c32997e0d499b23c58d0d61c515f32afe0c121c0599ed4c9cd7d2a7a60f8e8d58f668cbc0d3255b3f255e16e207f0a1366842050288387f21db22fef38bfab46016c5e0f025fe1dd5f3a9a784d0d998631d14860164a0ad5e346c348d647d17918daa7d331adfce809a79b0d76997dc76bf37ae5898b0ab50b21d13ef15ef51f5eba9e98c745c0fba10270f58a6f715e65cd110d2de59500355d8de9214a52a4d13bdf10f651f44b777fc9c00eb5200ab71b617d20ce9fd9c9dad862385900192f8024f17a9a20c03839c71adebda0bc146a35f2a6494799f5af6930b655744982574e10b41464f2713dd01e51d34660c94dac0f6a13cbc53732343c57d6247a2eb3981c503d7a728fe600ee425be0206c7061b28735b3a284910f9f33e84fc4bbb164027d2f912bd025c600e0a163660af5adf0544f22d5deaa26b7c4429e05100931d424bef6ec75aafc808e77eb4a63cd4f3623b455febecbf57f10c575ad9c7041f92ea1a21ad7552c8d7e7245cce5589b0e5c636930c5387090f1745a6bc06abc61fbae11f26603dc892f5abe080abadb98fe0b4422e45982ef4193485495e810c3444e65872d8e74c47e87658c59fcaaca9c07c5d1047be6776eb8f28b691f2ceb30f9580f5243be9f9a1f471ae030c189ccb5a507c02dbfd0aee2896292db492fade3f1da6d12a71003d896289bee18bb5a7b7f9e6908fbe1c81103878e304e53e900bb17be6844623fd1bd3c16c1d400cc0436a0081a7299c4684d930101b207caa7cb934b5c231929accd2596d311b9be61305d83eca0206ce58b81d890d55c9a045ccb6795ed18e702099c3ace2b8b9469c7a57d54078d788c39b202cb4c6ab89a6b3ab4950b17afe9ae0d303cf588210a56440120e156666c068e99deb26db8d834fa17af66c9d35769df814d3948c25390445b95441e96bd6d860e97d657a7032d92e8bfb62a42170b251bc68c3324fcd5259e56be49c678bd08a1a42f939870b30a1e1ce0ce5f1c7d9765c577905c8c9ac6a5de8a927278b5e859197ed5aea1d18ae59784b579d4f42cf7776a3ab540cdbe1f7c3bf20531313c1bce8a80ed573a127d875e8252fc100cf1d8fa8d1e386aa2aaba775553646a223ccbe58461480ccfbe3be4a20be5851dc05018428604b907426c494aa11b6d067e97ccbc2f23d620d330350ee64a71b9cc5c4c7531f3499aa1b0d4acfb58f1b47b7a62e0df9cc22a03ada126a52e0a31c03c700368b0e2770437220d587d291b0301f5d4689dca90653afb90d00e8887cfdb9b05707f8f6816c71c9441caa0b6f992169f258e42a4fd56c360a69fea62fc1e21604d6d4adcad9e38c7e16937745e60d1dbc0228bb76b45efd108529b43b2c16e4e104a0c33a5c35a153de223abd5ce2fe7cf0ca077841f0c4b2c6e7f02326289b7fcb1d5905a9861e6009dfff52a5e9c90216e26d6905a6018555977d212e76ed65c0f99ef12e30baaf0f9328c64881990f9f895621d2d10fe0c4dd9626fb186662a476a7b40c92a9f6d54e2090884c1fe0eeb3169b38853b200fa3e8b085126c12a558f8d438b1c46072d36db37f44ebc23b2b1094ded1c49a6eac6620173447cfcc70bc23dad3e09e5403e384a6a21ef3f22c5d957762cc524357a6f19ec4e9beea609f34c60567bf1164beaa7b585655e4d9099fe1126f01fe8c723a6c463a49892b3f30b31a5d0235b0703a120c89403280269d5b92416705fbfaf75888bc854ec9c644aad8315f51f86a075fc1c34aa60f4bc421dc0e5aa422863f1471952c8545238827bb27494014835ffa44c4387ca14683db9ab1824364164b202f3b8586295331532b793609d62113ca863e0934c95b74160033d7b89a3518da9b351dfac124af63e2a71f9a63dc141ce997b14276f7ba958dd0060a08b8aa9266f4ec7cbf73689155540fc6d79db0adc208a37e56f9b6dcfee4b4bb765d16d9a4254142ed778ef951038ddca2fb0ce25c024f6b4216aae02b8b01706c86d4a9568fcdd91d4981ce56f4b052198b2c00f4cda7572a9a8aebc2248b9471c828264bb1f0e16ab4f45f19996990a23b8523401ea169b3cd8daa8014b917268a361d498aed0697e4efa3db2d9ee8afbac0b64053f1d66eaaf45d652e6ba9d5d788c2c4e84ba34954e6c7af9536478e374357eab4ecb05eb0b1098eb179174bc2c861f15c3ae3628ca6b8b446fa3c2c31d40327c832f7b94cd1666a244175981628a6c7bff5962a1f429cc020a514fb02d27383a1be81ac89cf44cacb9331b1175e4068f173e90aebeb0a4ae52124425ec4baf3c566d6048aa5865a7df02090fba5d8cbb8964b422313e7f00dbd3036d4805c61c214bfee21ea74945c0091fc4041b52ec104e3861105aeacb0ca21a3b0f32d5d008c4fffefbffe4865dac378c221b4ece82ebb486a92eedbeb8186db1564a2fea121dc2d9dbd04e43b29d1d4ceaac2ecf8af66b3b43862fa1f5bd9439d8dde411a7e8b162f583264cb7036fc19ec812d97e2d84bb9be5493fed60757c0f0fbb576c956690d7f990888c8330ef078358726852c98bce1e188f1204c68577e30a6d6e5bf6926d4b4e8cecf84345a3c0da160725b72d7c97f92ba7a9e5b685f56115708d703ed2b645383322e1f336416f59d61c6753f61736b187caa06ad1786061bd1389a8eff79e5662463d86ee1ce9004731bcc000aa510431e8340d99377a15da943156e87cc318a516e6d8d8a007e37739d7783d346dcfee70114ddcb84b4e8c52f9d99b5bf3cb1e06650e453be645ddda088cfa0cdcdb55e777b264dbc1dfeae04e4e48d58cde752f2531b124c3a364d410440aabcf07ef18f8818a950035995c72d5a4d0f1762d9dd805dc404546fa6dd1e24bed9d2ceea6ddaf0cc232c7591989d69739b1a5d55d03cc92692ea1a7294dc1e84a864e86ad94ca1601ebcc5597e835f45e42eff7022eb1eb47dda5371319f99d84bb688ff39c97998371b7a6cd0a36a14f50c8a6b984853527d74444c95896d04370a9f233501e403dba3c9c7506a5496445f148d0d097b5d27a3881f65b74d3c4c8b808e5e230292cfb52893537e457ba434dd19e0d10c6957e19cb0bd3f0baa12149704283dee5e4e94e18fd25521e27a33fb36338fab164c45f4e80eceb50674d00e349b63a21ac0ba9e69c76e649104389b2481f5afbbdd86a4ce8c6411255a6c635b94716d952ceec2fef0ccc56e278652bb900319a952bb2483f1b7a81d46ac68d4922db01a1eda3704d2a6877e51106504340292589785038d07622dc45a64548c9319cf4d60d6e74d377639ee6b0bd4f6c5aed70b73071e0f9c27f88ff44c51713859b684dd29d42d2f3715f64812c99762b4f4647d94995910ac4ae6ea38c22feab36d2a0b3275ca171d65be8cad03cdca6235e012b97d04213c4842f50f1c4ab1fdfaa1335ce0dc487496a9e0976314d30409157422c076e11e4cf41d7488b1a8f639fabb356bb2443faf9ce4eb0779d6317f03167b787a0e95a05432d2b492ee9933ab687830515587bf46c42a10c543d246d9c0f6f0404caa9072e3693bea593ea9d51aecfeed8af519dd1389aa5545514161f6eaf16118ee3541cda6a63830e332b7ca24a907a6d7742e00d648840f97e808cce7887c3c9552309b11e840cf24c62dd6db8cc8133ffa9600e891c5444fe524699930d880145f840ae6466af87d6205792a4ae7ff722a68cf7bace1e1f5a16646f0606f3fee69a10f92d73de6ffd3ca053d7c82c531992ab916b413874169168da67c135414fd478f5f3bcaa71ac47e1c8b046f748ba5b15e009825cb880d16026d38304587ec239b4457f8692621625a02030cad83fadbeebd7be8d1ee51c8a1294fb6cbbb4d0a7660dbd6561c3e332e1d2978d021f03b0a7da50e70033781057329dcf861fa26bf7c1502eab55177ed764b551b36536ebc34b36c9e2f598491878b0d3dec9d14e318572b90d061716ebd018411004af42a1cbb1120dcb447f5f169ce9d58d1e9698e2b0a454c5564d7e471d740c24d8458c947d4596457c4439ca89d189119da804f9f668af77c272ce09cd704c41e8d4e45d318072964e83ac401b8fe97f9d35f91694db3409fa1e547cd0f1f096dc0f247d5800472d9114e73a73a3930d50e3ead1970557f59c816802a8b61e5d5a1bde1601e3129e4ffe6a3fcd75e6d1d37dd8c19c19b3085e6fc868877478fe584d5376e80d5f39e44558684d6f08c35b20124ad1976756dbbbd38e36dafe2d1f424a97ab0eafd1a2df93887014dd05b68ada322a227aead4cbdb563f8b6bc089684629d348608436263cdb1ddb980935ae0444ad448a8c28c46ba9f06043e08491bee2ac2157abeabe5a92afe9f734a086a907c5f4a17c0aa14d378971d6e096c0a61d0fe0397ee1904df3c36b5a96801027cdbc6de3c8e2ce7b2484bf3dd21242e3e39413065a0213d70eb1a67488e542da49b92c731e22074946cf3f3d497e1c0789e1d44adeb970e4dee634391d54ddda23bdaf0a46df1264693a537d57986f1b2608fe34cf264148c5ff99dd84dc17152413e7216afd8d4de2469eeecda16ae75465b6ae3c587776f02dd212c989ed3ae6d0b1336c8490e76ee70eb99a132093b307bc36c1dcc166a83c78c18f90dc8c77b04863642dd5883246c3467882ec13978c67c6fdb51b1369d4d44c87fb15ec3b1d7db5c01a013f4ef6540cdeabe3c28fc15fa6cbd5ec63c8be3ceaf15dfbc2d55d9bd1be683cc599c59bb287c1de55d09b39f0f8d8c5c8a67400e63cf38d87da81bb9f904d16e1f01705ee841f59094f31b851398257991d40d1ab381c3f0a515f3d21ad551451ffa086cd8ed1a5510791545dfa002daa0067d89cd58ce6a27ce004eaee0e9405c80ca5b1a6e49d5a6eef162501019d3018c3efd9965f398c06e8261e5ede5e81d9f0d7fef595ebc9bb2785e0e269cacf67093f2eb0d1b8955f8507a27c487558fc2080f931e61abf5d711a6e9d226ffac10fe907a1c6bf4c171a99164025779aa5592c267429ee66fa8e3819998f141625062cbf7360f3593e24da5ac78f950103a108e12e6308ad3748018985c9224e63b3ceb73691d5711e709c2b846b42c82370642365e5ca032d28662b331ed9f8afdbf844a2ec8c26fca09c63a9eaa54cacb6b6028745774c9d291963b1c3b47a6d13f273f885d5e16972cc28f08f97736d48acddcdfebed960c9b277170e84f419a66cd6802a2a3891100a6770d217f574e77fac43784bcfcbdd0c394d44167b417f6c68fc17c86110bdc72c3c758eaddb6da163b9c86e4594e2d195f77824b0024cc7c1f2cf7192ce3e61ea55cbe11baaa214419bc77eecf87b76eb1afd30128303697b80d0c9dd15a0f1671f914c0fc7ddbf91983ea49996410663e5ea8df7cedf0c64e57122aae4a2fd59873c752a7bb6ff69774a5f732650d6e02eccdf74015cd1fa669b338a5c653bc23f3442a76b92f7975e510d8cdeeff3cd9b7296272a84e239e2142254adf41d733f205976c51067f74e92699941780870d4329b088e926c203ca4b034954fbe880fd56918abdf512d1893bc1f397ac2f9c5bcb917a954f5c10a92b4bb6e0f56d56ded72503a456a70de107aef38565d498f273ad84626b0db0055e24893d52df5f964c6f4239e070f05ec1f5a2582285170b94eeb5449e5f1a60ac670536ae0165d2bb7abe45083a4e911787d99902738a7abcd2a560adecb6a8d5162bc931af81e81eb829ba971cb62c8252f5b850d1658702d8f585622123a9d1c224253f2dfe830c0c470fae9fc6c9aec3a9d95632fc0b2ca13c8631364bd69c336d9b476ec0b12d2ea3ff698fa6e3e12cea58ee3a307752b70dd990d204a8000e6520c1f4011ddc78617884c5059069f7c5b6c0ee415b0a8a9c3988ebf6b96fb4423803eb8d1d218d4f49b697155dbc1af27ba0bac838f5dcd721017848e1b77ffa0ebe0b70069f3c128e92c26d32f7e67adc0cfb91a69716187d532976a22afdacae6670b3c882c53b99c0745120b338e8c29065add7f8d1caed0d1bffb85f253342d9c94037b08e02833271d4cac142c9fd7c304ea06762f354a85bb8048313c038f5797ed0bff407077b83372d88fd7af4098b81063a5fac38adb647cf97bf15ecc36ce4203719916243cb58c913a4ed4921af1e12a75a8330aad0b5c0d89127e1af8d3800a2605f00a0eb0637c59859f394e874770fe7dab8163f4a1569939630512ef728eca167955a421ce98b0b36dc0e0b04a4709bbba0470cd40e28cfa074eb4e72d17b533a7e042ff10c39090676bf719c99b71e15a09919ffc3b5075a1deab26295358e6a0908000d6afabbc5e21e858326bdfd42a03a750a7e99fc8c54040b23aac593926eaf3546f544b568e402470c60b274a7814e923651b1b0ec8281f4a8c1915399fb384fa8ca7e847ec23e3e121700cd0d2a65a239e1d23671be7f809ea5792e8a67cd1d6b02f0c700cd92fd0937bc4458f20bf50dd7c5060d30c35cd1115202b3666fcac7c9188613f99dd1c6b8b7c3517ce2e73a83cac2d76e94984d40f2addc9f38d9a6863836cd536d98a4581edd65688e0cf38e6d904f9d12783947c3e05f8fa0d398b5d883cb47afe71e1770be9e6cdbffbb55201daa97b9701c640a6549bdcfcc907eff5c53cb39bfacdda4d2741c2c2dffed086f85f592f7ed70d4462ba68bbcacd4d3afe26847bafe40745a9820ee80e3d7bf07391ce27d754a434981b887ba5f10d7e500db466fd89a4669c198b2f4b183a04fc87bee07e41468e13b260c8e55a8de654fab741582ed212950161cf220ef01a9d66a8cb31611d178b2da349d2197032f3840c2ea3fbe06878203da0bed03bfde2bf128a0207774c52b1a1bd6af262374f3709fae0da083381d22eab5ff2edf911c159a2fae0b17983bb3e5ad0982d945933e67f416eabf13f6c0d55ec76a9432918413a41a57bda28dc284d2250908658ca71deebe065eb743275579a2adf664389608b8bb1c9ccab209105ec28a53c6d1e2edcfd9f05d568844f0006bcee16e8f838b4e7b1a02e91ebb8d447e440321c13c85af5e3d2867c43f62ff55e75cee5c1019a0b5446316a3af89a41a460344e9f3102b21760b672eb4225aaa934e2a12e11a86f17c1d8f62c61b8799624b0b3c4180d8412d55d4cf498c3899c5263a59e06d9425205ae8e432814067e380d78941fa6797659fe012810054ecd0fad601fdab7e56b2a7308564f546c0464d29da1d888dc97a8814115a43e7e60ae985d57e685e1be7991f877d3c1b28fbce54dbcb5f51722e59bc283d4418358afca9fc3c444c27c89415a9cfc2e5bdfa0c6f7126da1d6c934141b7fd0598ca76044142d0b028a6156345a2112e78879be83c63c22425159b06bb444efd2caa08862af84e4c33a4a14ae408d5cca7154d769f1cde050a83e3f75fead19a58a60926435d605bae9b0b7190319550badb800d0ce4150fee2dce39c79b60ca0a6ed86282b9e526cddc30dddd62c10399b792f70489bd787a704e0ede5f285bdbc4acc3b53af911f4251251c291e323045c52a3ecd364cedfd7472a5d5d601890e326d24c616280c3d25786008361b8ae4935211a0d5384e58d1931777e7e19c9300ff5d3b059a9fc8796855b13c3d6b5dac8f737bc894fc8caa6e4c0d8502edac83f5dbf9a2479a37fafe7b9f25179bba63be9c5869eeb3c89c936b0b2df206b4d8ebaf138753b84d3ac8e9f88660eddda277c85f8234149f656c871a308762212fbcec76ffd24e33582e17dea44a44d11375fb4659fe62bd1218b8e62f012f75b0d418dc54e81bd6a78e623e3bb3a620cfe578af5809898157174e1e107e08093aae6cf95d1439bb8b29ad744540ed3de88fc91b5624d2f77745c091230a33b02202ed6877837a8bdced7d7b338cfe3c8d84f30f4759973807159ecd028fca8f0ff7cb66c15041d66f2a40688f11a65ad7ab7a2f172691795c4cae0a081a03b497f41aac91733ab33fab7e3b1a4adf3121d83241246aad5b31410ea94bdac47596dc653b7cc01707c5f98d3c41ba25791b1f6cac9180837d83dbd83b31522fac77bc50dba5f8621208892164b5a914b4fae05c4768721c99a7921a019884a767a5b709804920c02958746e2b2b09ee9bc7fb6ce623e1f1ff07ed8fc8986ee7f15c1c41c4e743b36e1f34918243ff653af46f8fcb25e748b06e49e9b867f6a127586c1300a667ae71c04f5fe134f11cf083cd73e1f9356b42b10501a61d594d459102a53990877a4a408971945e041daea99d386c0888bd493a38a0ab31ebf9b4d1bf342339f33ab03a22288131fa28a9e4f1970b52c8961f91c18febf47caa8b87da1ba4fa95b505097bd1f100be3606ccd4f609390bddce5b546f0478c04b30fc731b11ddb8e0a443c3d114411a1e20488ca5b73b6429e26d118a611e40c67e2a26bd3ba4587adea7d662766d537eda81e869ead1581540921e2186918fe05460f97bc930f1eb3c86ac5ecd6b19af3a74848d4f2e9daebb4329d16b4b899a9429111392144306fe58e581146044311a351d4bb21306d4881684b0c0c70b158753e006c84efa2882c4388d5a94386716611217dc8ea9d0e40814b9ac6ec1416a590ef138ad2e1277cd55439cc7cef18a8b8e100216b91536ce7ad2eb1a0d244b26e98f77b9dfb471716a927e37e88577fdf00291646ce1ad4e9211543c49434094fc189880e9dfe6490a10853fb3413c6a073df3725f04c8d47c77f0c2455019fd39724bb7b9c59fe51691105ad249635ebd9687924f14eef2549c236975e038f04a68716a7bbbb80280724a6cd77e0461f2d27253d5c3f92b7e33ca715d8b18e888a1c6268ec09e6952b722282352780b7a79bdd98f3f3fbb3e61b57b766c9a84e38daab75ff1dc2bd28b0077422a9d8f217243c01a50f1cc61d66a48dfc46cd460c02baf45f842f1d3dd09c5c49f7eb79f6e14833ce1a36ae7b67425a6df11f2d069d33924e009ef3dfdf096fefa6c703808640248df42179adcab07dea87a82c0304a5cd2484c318dc86c5b15ec0f38451c9601260620961c72e130a255ed9f70fc16cfebacd0a15c62dd21d4078e212f9c71aaeee86d4ab93a89e5f87763fd1fb1bdd36a5f61832d705d962f9fe86119e869fc528fe6009844f0e05b2aa4d94bc6614f8fe5880d47f6b631ca56cdbdcbe38823c8b5dee15aaf68d2aef4ce3e0d904d73c64e03d4616781ff3870f6eec4c0025af80d554ea3b0143309e96e9d5a6c98691c71c17471da1db69621d744b99d94e6eca16526f99a50218c2c2bc577d0785a45902c329943fd1c6fed5cb41351f7d79c9d3e0f6db7b0d05023b33c0760a8610be5786e3173660a31d0250e140ee0913f396c2004d327e929ae58afb373f0e14d9545679106f009a3532d2d81290dd2364f3915774484295cab93a69e18d3b55f5695ae829f557dd8d76bdaf311aa6e8f3202828da2b573fd5055b42da474dcf3fd2b8eaa94061d5841edf8f8fd11fd54002fcaff84b91099cb30c8b926a9c9051a927ad092ba3e9e42437a0e0cfa0340f9728e5a184d451d16c1c0883635e754bff9130e1b2784da71ee41c9b9f1d97db1a7295f9c7a402a367259c4beedf08977de88ad6d14d454e634941cb4ad867101c72a8579c480438f81344d66893496242595477a4054f3621413d344562ebec31638d41317a0e11ce6e1c8a547c011e9f4453aa7d68a4f81b91faab46e9467f9e9626fe6632a3d24689dbaa7c850fa79fef3cc83eabb1472cd1bae3811dce7f1b158fca530f1e4c005044a8ec97c7242e84ead544fcad904a3977b44502ab59838448cb5d402192e08ba9e5d32a0e11797079a2ece288eec560bfbdc516b3a478453dc831331242f5a0d11754f7898ab04bc06c9c2779058eb41d4e5e0a7eaf0367ae3e0627471859f1e5d4535fce94e8f4bff5086d3ae9f3e6caa7ede17db7f438e8dd3644a894ec803dbc2a1258032b3f87076fe9d2eff9b1dc44453e935c375556ebe648786cf380094f2f3661de81ddcede9973389f71472838a9dca0cd935a9e8a6600d0b1ff4525a1b9e06ea6362e2506c352cf03f4aea85f660e7fa3097b99ce4d15ecc15ea052db54572dee7302d97e8c7355aab2f28089d2a158f3ffde5def7e32391341b53b1d8626368d41265b9875a71fccfb08c4421b62a861c2f0415a2e3fd8e320d86027cd35c13363cca1bd047f686f4ce11f8a1636d7df14ad45c72ae602e83ec1f8b937d59c7a54c0c4d9b150e3ff89ef82aef397bca168767b62cde3299e426f4fbe2fc27e378baa08e72df7de1541310e099cd0278c6895b80383496411f13b4fe6f3dfee30350b58e970fee4000e1657ce00588bafb68e98c04e4819b7018ca63851abb10a800994fefd72d502fbf71e1846acb2e51b817184b084e5e917cc2e92e6784723935d2c6cbe5cd31f97a599a7261f8d6d27d910f0a0e7169352aaf61be59575cdffff3a0624d6a63afcd92a3b0515c565eb5ed486c6defc1c440c72821159f4696de5a2b190b5dee81bb0c17f12c3997bffe052d037b28eb12c4903332f4982425e997955d1f7f8d65b8c69d81fc65632c90a15b765229ecdf526f41cf2c5700c7325f81c35069a8e4ce45471c6f278e40b2a546b6e6d8b8312ff560008d768a45cfa569d1fb392c1e80ea642cc4817e787442dab578ffff796d44a542ebfb8b0c9c537dcad7f8eb11db6cf92b0260107f502bae7a4395b3ef79bd35fd184188d3e5b7667454c63125f5df84431d65553f4c516897ba2afcca6d737a6ab7621b0182c9e9cf36d9da050362fed6e68021467647e1e67e8d5c56e059fb956183c1d35d1ec229e8bfccb543443d2e9085fd196f2c377eab5387cb68754a847b2445e5e181976e199639155c7ea666d726fc62bbda8cff94b08f1b249fd16d76d1ce6320d773cfd022e890626789142033b10161812dc5defeb3f41f65a849dc69403e3a8d61bb2543f0a29c2ef791f2a87593b31a6f440084f8cf35f4d8f9e08d8946971c8bb9f100e43fc584d8b8f935ea2f3b00a3b2d2390f045e1de79822f4a08434b6ef6a02e5e83577f0360de17738a1b4e840a369f1d863c9fb1af2b466acfc3bc9a34b7c0ec45edcbd3a4ceab4447582cdd6a090814c396137c55760fa87eba9f4c7b71d0240f2616de5003c88617f7314e9e588944a4d238e73d4f981a5a415ce18247584d8f95c257d22a52adb88ded0e50ad755085222eee1cf0c78c2f0c05fbb21e0882667157ee0881f297387031ed6f2d668589df251378802850b6124ff60c5f7e96be1a3a0a01add71b0c76c9d9d2bed95538ed4379377ea0d04c3bb46c725874b5130a4cc7f65c48adff06895360dc31e3214b0a63309580ea43c16f9e224e322a39e320abcce4766df7040cc586b12c929cbb16e42b6207c2b68616b7b8ec612ccd2aa8a2654de050c2a3d0e77704f316c1b9e90547056813c59cac69c72ba3dd77f935434ccfa7820550258df29649538450f89c631593b0f5b241ff9942b92d3af273e170f460132983c5231d8fc320127bef14a86932f68ec959f827e67333dce900bc0be09345d1cf763ee5579d2634ee3364b1af77319ae2dc191345711a83581881090ce934b25369e47aef4f86ea197ddbc9084420689a5f56d321b90e2a2a8cb635d265b642608d60e1013cc6c54c072c7f796eab8d623e2a28e83fa508c40d681d94a09526f3a0262ad2e6dc76e74cce75778e353a687739500b1f5cd11e0dea17b6587a40d79100e5a367596c0fbd04d1703c6b26d129a5113334fdabd6d56c539c4903bc7d4cca6b34cbc136a7d803137fca390ae1cbf4b13d46d2b052be9134a738829c73eb3931acb92e9e80d228bdc00f56b61e6cb641cfb722d3bda42fbde858b83df50d2169a66406f0f4c0da719058c9ea60c603106aff0c82f0efa3cc3db23549063151327ed232f2aedd397787b6098982bf1caeb26f85936528c5ef28c1cf1764a7f4b5ca20cf85d0c9cfc8aba536633f15c749f2846bd1b544f09c0d61f56510ca39a6794afe42aa57b63717861ee9d0e2f51b34a27e4424382a08261df8f13558e32c5056ef364d2aa378480587188fc424930df461fc682ad7cc56d10942746d4545ce3837ea12d01405eb63213caed63d7908541af4007473b84eb52a2772d8fff9b9f3e85a8ebff54813d160673b2e79c09a450c3064429910d3a030cd69b402ac8c78581006a6c10559b8ec68c6dabe15d1f6c9a3513f76272c81ff3851bc30044166b84e098bc9779da4191716ef5341beae8e93e7a7283894bd54d8137452a903c050ec59d8bb224de3ded0c7f92e8bf047262632dbcea8a98a8989cccaa1156822010dfe18b1450e7d1e34075506d81d72148d29f221fc8c50b734096749d77e82570e06172954f1f7dc6400cf382a059d5837c461c803603d778c27d664bd7caf551fac3d2f4740466bb5c976ec522967436c21aa81858b3c7fc44eb3639c45ebd719c34e09813a5aeb032683a0edb42b9376f6cf862c54f66298c0e71fdcebe0841c3e53cb214b1a2cf606acb07f0108b99e90a294d230c1f355949f5528b1e23b5928c0241c34ff28869edc561ffcf7de0bb665c9bc7b3da2261800e59d931accbd991a46bfcb8b5da5121c3f2afec94e91a3a91bf6126a8f2f49931f12541d51f81a138d4c26ce1b4e1e794d07667800592ef5ee5c25c6b811c46c553daa1a8e82975f5f63eb76112f40df5a1d622838b70890f4c8694a77dd376c74a9cf3b6d6f49f591e13a5dbbb318ce580fb03107a2d7c2d6ae5ce8bd232cb8bc23f063ffcdbc3a72d5017991547e664658d279ed4c9125150f2d298d73f42fbe7f296ef744dda18516aa83177118b0a90c1072edc7ea2c0fb4f539c574016471bf4228bda1d6e98083acf7571dd0151ed8b3ec166c33cc63c8ba0eebee1264449ed01a5b9230f6e72043abbd19fb4e1a3f901148797cc489f1c4b4caeaec7d4148c0fc5f81c950dfc45f4f4b1656448a763743d148ded0f2fb2c032360ee03bef8410a40e2210d9356c662ae864a41be1b282680ef86f67b8000002a1f7a5636981cd7d973c6c065847f8a2ff4d1a5ffbe07eee01a6a92e9c35060ac85dece54682277745e161cb187930bad28bb5a8ae3cb42e17831c2b18e1c3caad2fbcf526cb44c99bf0e05e1f24fc5b0edeaf5d335ac8eb9f2a886484e8e5abf629c29cef2b212ae8c667d8cf78b273a7a06c9f81586c85dafcb2b0bc841762e5254492d4e9669555f633da24587eac5633d2b01799efe2a1c5e83745ae9f7521c1bb363cb2271fe565b9d2722e3db9fa8641bd3adafd323fbb790776b4e83b73ca6f19538a727a0e0c1a7d84284e8f6db64231b162a78fea6e2bc4222eae350842e1954bbd37252a9650ac88b9fb216607c02b5f591101d722f743c19f9479111697c4ab8c7486c590bb3b1e4bbd00f87520cb80782912006580708783bb920ea9a6e0a983f3891d72bc378e04790b90a305e2de113db959d79c32381488df85830b25387dc16bad577db43d3eaa50a234d6c2bd24f318ff7154e11f291e1a8768b0a1f8db01bb3aa9e159c708cea899a4a6cf6dc4f42c624c18bf436af778eec71a1e95f631ee251c0ca83391c403484595c2993cd67e4928a42cfb7efcf77a602052afc0322f204aa5c58154911c7a70ded00f565f6a4c0efd1791ca8725e948f8eec4f13b3ab1db5ddef846cbfd60d949b298b7a7bd4ba4eee5457f93c1ecfdaf937b36b1122a6f2d215d1d475d4fae9f28bdddf3853fd96766a22a4ff559263e889e31723704f869cb4804e60aab2a989fb74ca7ec9c2cef84312c019db8d19b63a5c5492cae08da740c390573a87f13013103ebc76dec23e2e1f523bca17a98d535accd58e1d00eba0aa01f63752404a73335888add623a3efaae0e91a382e88f4850c07f03c98ad5ab119d59b3e8ca8a90040c666c89647984b6418d4759d151e8c64f535a2e589ec75ac8a7dda10344921519a8edccb5b0c57f59a263cead7c21ba13642adc0a9149e1ec11180d44489c2c7583b2b40b62165ff8294f2da8ffcd289ee83c589dbec3d978ec0020162223e8507a319f00e2ad08d9794d792d844c5fef817322d2782f060b17eeb4fccd0bf2b0b19655a67250a418b46318bc94ce1b8176485c5739fffea5b8524575614133a513071080eea266f11247b29cc6ab236471e0f83efb38779d10708a985bb62be8af52ff1c0699285a970a5ba455ca90640bf52e4244f8508c9cf9bbf9b4590cafd876f14934114f35c9095d8f88b554edcf6b07e88530ead507d92cf06a0a7f2933c499e71a1088ab70dc5729ed9f756a2cdf4d5b793a1e84d2529576327a7600189f02682793fed44d3097d8270f4b5fec41662692952572e460eab45d67e4847345d503a8fa2f7d7c4a137f9af316b019a1d892335083be7aa2607539b1e9bbe11c80347dda7419f8ca1fe173b392802bd5a1b814fabcfa9e1963ed80cd1cd172c21fc65c33ec5bcced4ed099c791271c152bc13681d4e7a38eb905e8673303b7c280229604d1213a63ddb33c73208f8f831a57dc535b9b4e813f0f6c339eaaf66447f1b338d5f7d3a9b1175f9d4ced30b0d25055722843a0477023e12fa8423dd82322b8e9084ad30a62770988600815040e8397afe47530fc3a07c71d00aea18369285b2dabca503df7a80f8d109a4ea0b5fa32004e88fdd4dc69363d012ae30e396ec0a20425c9de7118ac14f958be063546a39c6cccad52d0bfd6929811ae37ff0ec0c43d51b5457275d6ea32906af8bae0f8168fe93699927c4295e9a228143b3882b22a824119cb3bbd2c28fcf581da7da28b0cf64b1cb4780af591d603e09ef422b2322fa2725b079de98bf6aae989480d1d313544821def1a2ed823858b0efa8865ee8670268c7ddd007ca17ae4ab57fce9a32e80128130e9c576850b1ddacc05fb9212ae015b48106dbece23470e30721511678b5dca94cee7f929584cb026cb11a497a34a61d65ffe2d1e28d5b15b5cc26be18f3403c193a92322a61bc5542311704841ffda4d117930036d1dad8ae43df5493943d435464ad788c29d673812f52287a020f6eee030304b2f6d0b88940ce58fd9bc2c374e75b61cf3446caf02acbe18518da7716b5982b412d85c560fba53a21adc1795f97f8eec10c189d6ffe1ac7e0ce0ad9e18d1c9879f7fdf694f99aad1182f098ef1995b12d25e00d22740283042461ed24e855e41f408409e53aa0bead393a46ddd9474c1e21ec095ba98219a71412fa620aebb029922d7f9e0d1a3653070f27aa9b681f5fcc8813808b3b490151e137f44ed63d3efd5fd0dcd6a68e43f8857eb05c42c4828ccbeb1c1b7007d942f104c5d32985d461fb861cdbb80d7f1cf032925bae6c0a2feaf57b47cb0fcc27b5dc00940e09394e84484bedfcc503e61332553144018a82cd8565e0c765597d2bf209b0720eaf5be5649b6ba897a42a539449b57bbb99c5d23e526ec337573acddc4753675909d1cd7e69e9b24a5ce89ee27eeb669a8423b5be9c96d083ee5d7a150ffe40428d41c8b951cf1bc4296af41a8f23b475f69bbcff1bb20cc4d6b2a4aa1889f1473ef68a203bfa3004ef2a481c225121a7ce56006a3e8727a1836c0873d538a80677b6eaf4c68d456b7ab56f8c06b3a5f9e14dd94af62c5f04d1c368bb7c751b3703f34fca041a3d63c237fa3687d6d4a38cbf4c29bbc000038490d582e7217b006b52ea18513c60f72ef9b71ea3d60d994069b099d565547c3df416c6ee6604a9570103edf66ab69f23ecabaeb13aaa63c5e4d5bda5050ad5724481e6af329bf5b39cdf41e019beaa6b3a2ead639bb4005ebf49a5a889c0315cc43477ba7aa2a8327699b224a38fd789de7b68102734deef63d3597da53ea34d436a522d936c4085950561152bd3ba980f868dd94dddb3265c2c80e4a0fcc6fd40746faee62df1b1fc533f19271a7a1184a8c13d728be653abc94d4dc39d5c9b88137fb32c6445e756085107f9d91c918c4e18bafc5e337cdcedb173d53cf6555619ed104366f78cfe411c9b05b9c13a3d2f6ebf10d6889d80d286afc50a45af387d2c7035bb4a2073212f55abd208d8fd039f438cc25f6d41314788a8b26910c47dd3210a8b47c609dad9108bb953757f6bc686ea05d74ab491f823e0bd402185c55ef4afc63c71e8398852f279932264ab40b990d2ff299c1ff1603581a12ce7a58ace3dd542698592b2f2f77233a8048da3494860328a044c7e1585baecc1655ba7221a38eeeff5ab154cf2daa0f01c28bd61e482d5eb27b7e35509b5bbf09a91ef9a92722ed71b95360d00477f4d871496d70958b60cbcf41885b2ce8cef1eec0ff95d34083da0ed3c6aca05373d8060609d922f9da1a9803f9b60d472c0e80f242cae5fa9f7d37b9d4318c74e9cb7e4fa2829bbad92c8c41e0d1fb2282070ed2759c326222bd82735d14cf199723c5aa63acacb852c6cb4a57bcb65b66ea1750064c5814534f812224f9c9abe79b4ba61d85763f39fa6ce48d06eb6f3e74613d52ed6cc48cbe1a1f528115ef53cbcbec167086d29db81606ba50c32015f46ac530d77a930ec8ea5238e0bd82f12c885170b438bc94ca73ba689406b2d6ecdc0c48d1bc33e20055ad8f19b4f58ada30ab19ed273594860bdede84bf54a5bf45d58fadb49f49fcf8853f33efdc418aaaa2ac2f8b4524b12c6b106da4d88742349a660f8a29561a14b45e6040ed9c64df1b4ecb8a855889b3cdecd97db07a8e8d1ba6a5a6ba5ef11f4aa7caa0b25328bed7943e361d251a28399f502f5134237becec5ca21f591e1056f822282a91d75899a9a5fcfac127927fa1fb38a9f98e55279ce3a579bdf384a9a801c30ad8889c61e7ce9a034c0279c9afd53c59a358e3515caca5a57e58c006b6764869c3c388486ade3bb600faa1e3261ce1990fe642a468226e85f5e5c2c558106b5dcb683a6aaa79e742c7e503d102340e627c1571fbb473c14364375824d847f847a2f0543b05f4511c09306e9d9415966122df8c5c2fbabf4cda6a78f1438124e36a3df380f4d712c10f45397abe46cc8f193f2ce74458e0b7643b15324644801f3a1fbe772bf720e7827bb9255a37b1377116055405946f2082570a49ba044d0325a4f6853adf6b7d81ea16be94ccdb09457c1287aee9e0a63046220aaa5fc08f2a7b4b42a20e4df42c40b3ae3c57f7e633b351b4dfe56405eb33e5129f0474f2e214120d79eeefe50f52e27ddd2dcc95e129bcce79827130499c62d0d2798e4097b43690355b0cbabf2757b4fb179bdc26fe4427ada6a92e6526049f206aaac4dc69234f18fe2b98a758ec2d07d2c629602257f0a306228b08c6f8f12331d12575ba7add3952d1a0c90da6af6a3000c701d59ec12be11edc5c460f6164323af56838b3e9a3b91394ca3f02f3cd71492dcffb10d27da958e459f4be72d14b54e9b3af86078f23ef46329ac7c35e586484467f5f956e78a874519dff555955f38f00e506216008ce5e6c31872dde0728a5785c4cc1533b92aef61119e6b95797663a07fdc67f8e745af36dba29cb4aa672440e5ce04d19181e748eed7fa8cbb5ad59c6055310ae98011a52361ed5a05ee4aaed14dade63b7354fa004107e1595564f68ed9e3a00f605bf3c2960c88f61b28179f5940fa867ab90fb45a76b035735705d1a6502f213a747609e22f1450381c7f64d5dd8c371e9b61dd4721425ecd5fe62963989f3f03f2a5bf8d69f636d06165b6970f887588373f82b97a105ad625ff474044652fef3c8c48eed7704c39f1d2189e81ede63960a051204fe8535c4a6b53299d62a67b5494e9c372e70e4472701d2c1fc97e33bd22664013f8e5d51a35de4d7f038c4e99a45e29b20d0305a130766cb246682d1ea6427a0b7df90db257cab56c24faf90e8148d186096d9480395288387758e85cf48a872cd07c5b66c6cef7fa96e72eb7101330612fe3089755770d94742ff8c16a3d3586a5651c0485515638e36958bc0dd7f3fa449cbb14e680d6a341814acc8d26db05972ba219e4c75d92f30719080f0410c4cdafe989e8a481ce16255f00065bfb28b6e1eab38102710af08d698d42e5a4acb0db22398db76491556298b1859173c7703e4f202099cd78e0737871c730ce253fffec24bd978dce77ac4006b900cdddf7ff4cd94623c24e46c54b5e707a3fadfa4cba205e1cf292109f273c0d24037b0831c40e2fafd4222ad8c19b100a0376a14a7018754deba43109fcef5e844084107be26eb0ad364fcd7aa1e5bac092be1bbe0ccc77e21aab962798659265c4a8e429bc00d74c4a5bac3e39943601960c28e839cceacb89dd121402ca49578b0a12d1656069be24356a72664f7ab4a8072e3e5e3f97c72c8e4b1f504f7831aee9400e47b817988cdfcec414a8be5b32b505924f44e55e96f8e2e9610eb52d7550d30328ca53abcd91a8d5c3ae79dcfa36394d5c716e80f327e28ea2bfc5dc9910410988acef4c0e203b39fee58c43fc0e26c951f9a001772e8c6da34308eccdcbb8fb4b4c95d99a236c93f7c806a494ef17f52906baed97d0be7bccc6a3a0ccb063ec0fe96a59ed45bad6036efa50d62cb6f60e3caa5cd9c8ec5fe57a8d702d663f43fce66be8df2b759341b246624e3fee3c98b6c4d5e40c6202757d572d1fe1fc48bb70445c7e5a895a1dddf2d98790003d786f29b74392350361635921d4d114e6e60910ac7fc44a861ee967d006b9f2f8b92903389058b926e1852a99bf096c22727aebcd23dd128eedbf67aa47cf3c5d1c5ea99347d8b49ca9f9f9b10b08afa9f864b54d15229fdaf96595fedf45cffc57a1a761a5f6625538238b5e689ed2448ea175353733c177b794543ccc0028ce806c344735f371883aa75d90d9d07e9b5a032f14879f799c1685caba793f5db4e474b66276893ae3b7c9c238cfa6890540aaa6be034d507b0e54cc4e9113bef42870ae4be1e712a54febc2ebdc069936d5e15190c1a125cae0a4b73a7e52689eff3c7940991476333e19569dd1bdb39619a5fc39e563ceb1f126c9cecc5816404357cdd510ef39156e08c0759b7d3dd6463785018d9332520a0bf6c48f4c4150fec89c74fbda5422789cef1b0e08a5d9c154eb4e0d922c5b61ccdf088a53a75a9205288ba5935c1a89cf97cd9d66be9c2f3e2a203d7284584d69dfcbce119350e094450da7635f066be9b274c2a19d92abbdd6eeaa528c7a50770162ffcae79a05d780f5a8d6927929ebfa3a4b3af6102e43dd9a7048a364b1b0b13d17355f3d12acf1f8c6e5f491bc4da32b9f4327a7b613a3aebec571c794b6928d85233d7a0f7e307a474294a453b07273a0bb1189e699f5ddc4304ad2ff56def6136b9700366ccd669646065c60456b3e3183d80c938daa7f7bc8a78d179743ae58f72045c1d037a2b8a705b3050424e07b9f4ebfb61a1711bc4f00c7205df1bf9fe99e830c088775ba501a0715ba9096a7fd030a635b6412b4dc717ede2b898e5cee59fc5463e7536df17c497e06c11588cf4ead9f553baf920c99290b6f7de5bee2d934c49060707ef06c3063e9b384e098a94652e45a1652e5bd8589e22889042e1bc14e330dcd4f10dec317fcbbc68b2e48e7da3dcd033f6ec32f86ce5f2f79117a1ced24c8da69b26ec67500d976d5836b19d44c438c5cc485424b9ac629f6126d39d67261a0cdcb004a50b28907852e6c78718140141e4889222467a462e62263e73598e3dd44a3dced89db2cbd3e8ce232e775c5dd5972657a552bdfdc2c455bd0de8a30a1906bb369f027d6c3c65c44dbd057d52d63e0af4b116e505e8a2fe04faa0eae9f420e873b260172717fc0ff401bfef7b0ff4f95248d79b8289eb7d07fa782377bb67d9a5382c775c5dce0695cb7152d4e07253dc703931be832684585c8e6e60047635dfa264c5a5ef4a499aae8a534ee48cf3999979252f7f4eef14eba4c15f6f46280d18980a9e6c91468806a52122a0a8c2458fbbbbbbfbd1f521b4b8eeeeee5ec859145d46239ab8808b1755ae285980115c84b19224944415b9c5859680d924417d264711e5bbb87044c14307d7eb9620848038475e7f6d2953a978f2c698825dfa1e0f25abb507d74ae7d4a7ff81133396d24f7f0066ec18a61012cda794864392d21fc3b03e5fc933550fb61385401185884c297d1384b0509a673f43c0a001101925327801a687aa006649065a60000a03490f7d9ed1672325ab0199dac6b021b753b0206eb085cb1d5fd58bd592b82e57ba2e534e44569b41192484ac46c4b1c0d621215b85be29964b02c6c06a3780546c21f2d9b005a88635473220eacc581b2dbe279640244add4c0b162aa87c5db430c199b1db95485a92d0b44abd7f40556fd3bab19e5ac0795908814c549d98a34f8b9113774593a765c85799645d17a80d0b222e4b169e2626a866399a41b5986d596a003e208b239b0760d1948548f5802b8cb230b9790093521623a7076801bbf9d02419722308cbc2c253814d69a939e830858c0e489c8cb0df95483a08d131b1aa2b917448c291f9b8d8d595483ac4a069957a8f72d62cb314b933ae44ea412677dcac5436292b9906f8791d5737ad84125a2c73f08e1d0840000108d075cc3a2237eb34539f7c746464b4c35386955fe0b62ef0bcf066a5b299a9b68de2e73e819fd71dd7756e738a254c1cf9546c8dfadc993d5947a3ddddfddd3d867776dfac54a7d938bc78f286c73dfde679268e75baa29a8afad4369bada62a676574a8cd1ac9f04e3cd2481e5da9e47de0077ee0c93ba13aea1365399baad467ca66b35169258c3b46045c02dccea6c6952f8eb084e55a53aa155ddd38f5792363ca98d13b5227d4eccb2957ef93ce08399441a36eaff3e299f6650f8d4fbe27e3c423674b3a8a48296d2e5fe6d6bc6c19047e5ba0d77e3f578acc96b5ad5b7cb9c5ead13ebf04fe2997208b61b0be12644911888bf20691b39ec96df585fee9e6a6f03a6efa94eb9ac2f8777e18d62a8ef2af9426cc16e8953fe5a7318b76ba64dce0da7c0df56b2867743167b92f244f7777f74ecd4f6ad7b5d4563f29c5d18625c75dd74dcf6b6973cecf82eeee6edddd4f1e0a2541b79fdbcf814c1cf937775210bce53edd7dfa74293a2ad5297eb9268e7c9f9452f799aa9b46b9178bc829533aa71327ec947add34274eeba6c598ad580282e0893aad9b16d3b44df398993de6947add34274eeba6c536ad52d7b6ea64d336adc69c6e5acc29f5ba694e9cd64d8b1d517b721d37bd16c79e7090dce1d5e902f8848529b2e6f4bc6f4b0185c9606e73174985d4e9be135988b3b82da4c50669573f1010044f94e3388e3b9d401fff13ca8fd8c887db4c293719a150283b797676763a140af4a18fda520d048499081c458837ca5158875091eb9fcea2cc66fddd2654c43cd8cb19a1a2542a6553c7d7fd7036715a887574af15d830ed5a9a4d1d666a9c661eec45eae83f4385ccd1fd1c77e972fb3d9bae634f06100a1063e5d72b9192d44c9fd69d9b5fc29c734eff3977dcb53371661d2109c3b8e716fe3eb34bee5044b169b20cab484d544f32e239d0d099cb4c043b733fb2d2e52eb289892e735192ec724ab5deea5b0d906c10ba0ea57401972211b9944281e57310b045694b0044f08985cb0d8a38a2e1c80b14302c29e0980be267d7af95969f0053b210af7fe5c27cc5ca75ffad7a999f952470ae7fb55696aebf16bec0b98a6f71471b36d0720d70fdeb13315c7f1b3e61e5baff183bd6cb7c0307cf70471044b82ec5ca94cec7800e007f7fe92cbbfefed586ef42a2b2c3f5dfe129018813425c7f145290e2fa73808530d7df85295cc0cc04ad20e64410b22659848a5c7f1eea1c89642491aa2c7125920d64b80e0589d8944d6cb9fded42005dff06b44ec36030981177ff6cb5d30e400a51b59f9a59e5b8d692aadd8410b7fbc3af3dc8e0d1eebae9683fc5d15b5b65315a95ede2d78efb57cd35ed676fa2d31f7fa1bbc58c81896104163341454a80186a32b4d4822831dc40896db675532cb7db89531348362dcfd5304395a6a019a6e82103488a82b2846184165ae8151ee80a3a1e2bdb5c50b7efb2e1c4098103e4f56199c35be6f0d91a11e6f62977c88681524a44e402574961471ff221178208951444cca3ef7c8741e7c8e6796205a13dfef28e7c9fccb8a91114180d8f590012cbcc2473cc77a0b9c6a17c80c4b26c265b363b529a1939113b49ece8b33bdfffa87346edcb9db3ce71a3cea92ea573c639bb53bef68579f80fb56541680f7db2002496efd643c5bae456a8d33f81a3bf3d0a34c9db9fc0a180e32a4a4a3b8784d3a52f692b3cc28edc04bb63ff70e77c17f3f8a1739a6aed2621546299a6eb0556b6cbe5f21251d13e4062e5fc1aaa2d96555bc8897ce6464ee445dafff4b0f641e86bdad31a641342dbebd638eb993b9fc54dfce961d14ae004efa1a290177ae8f33415a53663a25a1b86aeca7439ccd25c73f9271a6fc23ab86353c77fc9a5f447a1d19c5dfe39d9c5fef662f98e158c400c287f064ff01e1785bcd0e32e764c00605ca87bcee0bf18fa6a95a1a59200b6102324d25b10b9be5bc0616879255b903bdcfddddda7041e0d3fcb262c0800635877107e740e02b2d87e7f1e561676641817e91cffee1ca0ce6991e51fb68be5e2aa5d6ff32501471608cb47bfbf57b992b95cbe1287abd5e19159602334614786ddfa4101c28f023f0f7f09449a948f072da2dcf1a584058be08c581f0289164cc023b448811062d40c2186ccb6e6cb155e0f62966a1662b87c55c44041454db5a098295f4726e813a3c4c70579625ae0551f638c3a313cd8ed8c102746059e16ab6268f8e8c6c4850c1f5b1c317d519939535f4c4632fab3b55a3268c8acb14c45b68c1295cf8c1113119513902c893bbe3a2a644300c980f866322116c86e0063b0de9548b219a820f1e477b07df5371657acfda0ed55e6a861c21056be3379b247166b5b2a2cd3e56a91a6c0a3d74381d7438d7c593da4ec3ebaf29fd563e47b4387da257f05794461408738a5dbbadcea88ae3c2ddd164a01d743a5ae57374ddba8cfee9fe606c3f3bccebfd68d93556707cbdd3e37971af5d993bbbbbf4f35e4c91b230da2db292676acb73d9e4eb5ad729dd7795ff781f55453349c5643a192ccd1a8cdcad5501dbaf259fa6ae8f67f2009ad7b326222b39d50ec8e9dcc83ab3a9239fa6938b1fcd3519fddb45a6d8a765ccac66d5453b5ead577c39dd077b21f3b5947d4c96c27f34ed639f24646279b38b6934d1dd9d309c9f8c0efd4c93a998c06d1e90b29fd7acd7a1641d0774e1f47d8397bf6ecb9823cba5f8bd5e3e77a2cfe9fcbaddb2d56ffcf6d71e4fb00243bd2a0cba25b9f3c79be5c13a7bb79521f2a6f73ce39b5393fe7d7d9c1f2d7768558589673cefa1a9a73cea98131de5c6a9d52aa693edf2e39c45f74ead4fd4aca43e48c21f4832e7d12a8e895beb4ae069ebcc1dfdca810aa51bab373d9014c4aa63bd5b44a2be73e4ffec32aac7b36c226a1f7bde44c2aedec6cda476740a498d814133b699077b15b6fd53aea75291aac33b1ee3f75b8f95d65ba694472077d9733174d18c23ad1737e4667090d7a4d9c7e6ec7c54d4e094e893b451386b05cd125c183eb22d72473f4875674b10fbcd1ae7f509eba97913c924a728987077c524fda36a2e076d54a0d6bcb280d8303ef0a2922606143a54835288b16bc2613ec73203993816982090d7228324503b12c6a88c608634817454c67b288c1f5bed62802e6ab29584c81850e6118a7728551d5b42b6058626298a49b2230f79863c28fbe6f294c0f205cfffa4318356c8e03e60b9f266a820353c480db4f572b22cc10b1abef5bb915618d152bbc782074c6088e1530e8aa744753803dd8940db8292c6a893350bae8a13ba28a1bb0a802e8ca521a2f8ca52bbe234b5170362c5529826261c1a5286027fb9686565c91b7d4436dea967000b723b123b2c69177ac7629a893ad61a2a2cc89898a2fd6070e4b54207d3e6ea082cae7236644851036828a5815814b24e96203633f2cbc28f693827b81fdb010cd3a162421aa3e2471e215a94006496428c2eb2437abdc5ad290bad7d94d9db2f44eb25d28349ebce1714fa7dad6d1ad7295ab1ad76d9da7791ffd7c36e89da6bde109d59e65ef94e775de493ec785ed6e66eeeee9ee94d2962d5beebcba573de59473dbc01e7236f233f52f01ede61681d0d045cb1a0e3e697355d07e524a35aa755ee52ad7029a61a7a713eb07d51e4fe4b6adc57dc7bdc775dcd796ece9ea9cbe7d09eabcde1ae9bb4b29b59bad4a2957dc9c534a5935af9b6ff5bdee787cd39a73ce15a594ce3925edeb2dae7ade9df47da322905a45fbd106c7746529a594b3352aa59472d2a9bd7cce39e7e8af1f98ab436059c2bc8479496c09f312e6254e624b9897607132e70a3c79a3376e050e6cb56e2085a5ca6d17404149761a126bc3225c24089076f51f751efd518291f77903787cea7fe07ced5c162a17c448dad5ed6259e3b4112e22249b8e0415a9e08e778e2b0c65c7458ad8d8a208c739137143a1db9afa6cc54b914e144dc09621967d93725be8cb32c7ab5df26794d16a52d424e579b9ebac39dd1b8f6e661d1a952e67b3e63fd2d71210855685e57f7d464caa6d94e3386e00d72d702715a9cce1af5d3741d762e9f213dc5a270ab6c9755ae751eff30f9cdda941104419216126204b07925005d7f99c9d1352b25fcf69a775af148d2be57352c735715c6168adf3fc6eab3cbb7e61ebca695c473bcfbd6f76de9f0ff7dfeb471c5c77430ac006fb6ae16817085247ffe8ba7f5d05b83113a0859ba93b47d7edbf520747e29c3a07f875d16585e51ba7ae3bfe64f0648e45c16ebd56a26097453a5a9bd48faf9b6f7b193f86e18f7f6f5cf706071094d5d7f871e7dedcdcfccdcdcdcd8ff268c68f9279a0fe461c532d9bd61356d013d6db5022bbfc35582b25b11a2dd9a3520274f96d94045dfe9492225694ed62a1cb0ffe70f93ffeaec546979fc69092194f5b4f989eccf8b0256bbafc325a31b0c0db99db923d5a98cb4f99c65c6614ecf2f4f673d3da11f86cdd36afe9ee225d74e9fe1baefe17083b4188d04dbbb56e3432b89d6ab9a5bdb77e180c06d4b5bbbf80e236d8dd5c77d79d4687db5ad2edeeee6e2c6b62308c71a4880817adf9b0459531c230210411fb7df165e77aef813ede4b660ebae07bad910032cbef7d0fb6705c7e7e1cdc813e275004817bdfba01fef8b99ee8aac28e7ff9bbddea7668b0dcaefb8a03206ef716076b6ef715f4e9c20df4e1be5bb5dc8a06e8562f8ab8d57e4f409f2d842ec868957a1747aefbb47d624f89d727c1a9d134f1c6751c66c6d0e00c94336370e1e4fabbb8c8c10b8a9b59e2fafb3b18ee1eb8e3e07a1465ac94d9e2facf28a10d324639ac650199239fadd55a19b346fbe2b275ec7784e51f713c8eeb014fdef0c223ecd8412f7ed67cbef255abb561c855e6e02696ce53c26ba76733208ac91d20a0ff7dedbe8a53b5c5d2efe7caf343e9d327f60485fe0a55ec800ffaf56b6b96b1f5bda7ad59c6b676ae58faf5545d357475031913a66f903b4e2dda435ba86e36bb6d78ef3ddafaf920668f1ac7bf69d2b87cbdadbad03931e65163c895bf8548d8519e19e18e2ce5fab37c684f5f6b22a5e358491cf9e8005b2c135da771dd63754f9fd583fe5cadc5eac18ddfcbbbf978342e4f335deeb9a875241848c8ae6c19e20a1655f48c81e2fa330c3a87bbde3b2d42bbfc79c99f99fcf9c89f959cc334cefc31158d5d7367035116a60e90c6997fe699c2331cedc152eec84a1fcf926515ea7363aebdb3eb72a70f2bb5ab6b79f76bf11d016635ee3bb5660f6d9deeeb8c9c3a72da704ed941d3bf61cc837385e1f53abeaeca8bed22ac83f2d48f67c9f2b619b112694c17affb58e9fd5708af0af5bfa7d4032596ef7724c1dcefbbfa5d8b5eeffbba16ab613287ff76eba52d1637b5cbffe7aaa6b0dc7fa084dd3cf0a3ad9fdbb5e6adf1c114b0a9c343fdce7cab38001cec5674b5ff401ffcf4a992283fb76bf5f5be8f67c98e21f819c3cbf7032100faa84f424bbb947210f89efb0f04bf036b8bd5fd09f64f7f42ea514f5f1359ac4e8c80fdd307b17f7aedab1565e82aea79a6d6fabeb63eb0e580eedee3c0ad4f3979bbefbfcb7d222bb58bb37461b71ff9e8d4fabeef6a20054de067f5a0df3d157fae574113b66d6b3d3975ec7a074d1ce7a689e3df3386b5f9d4db573d142827952884474c61e2f8a39aaecf4e281b91b5bdfd9f9e94c8da446be72606416d3fc9d86eebbad693d34bd002271106457b28ac1e9a0abcd4ae2b9394ccae269394c078e8cef7501f6d79dfb5f836e803445e06db86d6f83d81dd2a76102bb56bfe2893644b571357904d97823ee873afb554f8eee98b2c1ff5bbef4e94ac63944932a5bb826cba9a38d21f015fcddedafac0ec22ac63bed6b2f7868b2aa488ba16b370d407bf3f8b21e00b729725c9b5e42801d963f3a91f9fd8a41e8aff0a9ce6cfcd3296fbce5bb38cfdfeb7f7be27a954f850820881626323274e2a48ea435148155d35745dcae21ec5a150a210281c275a8ed5636ee0e78e00b320f3c08179d4a7cf7287f7479d93a5734e4f6d9e164d9df0e9b35215c9838158077dca334ae90c4f5cca6539b538ee4fff7df39397fb4e1c586220e621a58e334c72c70c97029139f8e50ed93201fc49c67a2d8f3fb0f544f537888af68c616f7ef5e1cf78284164bc8a1501d5871f44f5a14a2988ea67884276260e7d9528430cda49519bbf1159e0abfea76725b240d50749bd4a1402057c21a84f3d2806b11162dfe67f7a401fdc7f362d1eb245b349c67a224b7b793b71fc9d2bb68a5d441c79288576f9aceb2f896bdffd09da7762f7db772c1f5693da9fd0bd56abf69b28fbbfdb1e05a215bf87b59e3b323bdad7cbe59a3d7b0148ecbc52e678568fa4a1a5db425f1184b785f0d214947de7148f7a526b31c0073b7eb3c5ef39a83909f4abe62d7ed6686b5c61fe70e9aba0a9b0892ab07af86b9a2857abaf732853912557983fdc297e770a4debfe797d596147fffca3f47de6e6aefd7411c826ca2b57e0c91c6b03d35ceb6006cb53b381ddf96e03bb1309cfe7ec395b027d054b9797b03a62c78f67726b859dcb2bec78157ca23ef9003179f23f5d094660f6683f67b3151e2b89def73360681efd56766610cc6b5de802ad130a0112450807c0f92f6eb724a73075e45cb18e7e9768da9b12a4bf3377bae947ea1cc0034d368570b51f998608480a4897f62790924ce842e78cd2a55540e2681f86a2985bc5520ee9d2be6b0940e2683f7368101827705d773cc1dd3606a22b8eadae0b075081158a0dc57e60e69e3124b123928439c378cccdadc350920e37dc5508866fe1ee4e35590e5568391c6d3934516b5c9994c3d0a651af48a4fafd52d67863de34da5ffba689e3e7f81ce77bb3c5af5dbdd3c58e7efbbf16640efe79a5bb86db540a8e8980e9c870dddb92262690ce78f9c2ca949ed61159be186383161ac4a05b669f952b564e558c252e77259218466c482fadb4526aad16e895ddd7ba510a017f15a8cf5986db5ebcd138fd4ad8af3517ae86a347bdae761d71e3d54fa8c00725700091b0f64a243160a06bd4d42bb13564402b476bbcd82b455528280a28506c61ac798286142d17082ea75c5dd5a2d8ec72185e6974858e963ccfd595bb594a2965b5dd338b15f79cdeefea62b23b63deb406ed623336655dcc2876bb582cb612f21878235fc93225654b690339ad94dd2d45e789c66b9ecfa2b5289f927b22e962eddbc715c91dfc737a7059f4adb6cf6fce49279d455c2ccb6cdadd5d250b3cb9fbb965cf8ec2cd33208e483a429fd0b62b938e48b9ab39e7dcea11181cf1a11e39c21d19d275693ca434663eae0cd88539695f5047d6bb32c98629a9241b6c926ce0c1061c563600dd5834323e954aa59231c348185faa33be2ce1894a9211246a7cdc3232c432d2c446776592111c00f0b1582c16003a3092820e6478e1c1c7ad2f776563a52583bb6a570bf469b55a62006a302a321480224c6e7cdc4a2a5244001f271589610037653ef8ac70d1a88213ba80001fb7c02b9388fc70570558a3e6ae3e709d5231b0fc648efed94272af4c22124b2202bb5726d520c61d2b2877c8a41a9aeeaa5dfcfd7cc69337c68ef57b7c5d1c49c0c44aa99303df5efa6f5fb77731c5c4a6e8b3bc0674ced82c4f24a1afd7c574803c6988922b75503faf4c1a12e36412ac84d6c9923332d39d3fa9964bb3dc7974c4c44caecb47ed9adf4262f947e719cb2618ca523889ae14a60e8e66e113c7eaae3daa05748a8d4174b9d6e89ab555ef74771f614a27641477de604e7ff7ae5ba68421bb11060c5ea8f122c389999a2aab23352e087f1805a9f101f583ca909a23aa1f4ec4e40e47d80fae44ca81e88e2f2e7248d2440e302f0c922e7e491350dc90c2f2cbd7e8462ba5e2588dacb6d336fc3ae79c36fc3a9fb082744f7ff7b42804053d2f706b54700d1386b0288447d6a8566bc3f0bf5db8c105857e7e179a9a9ae66bb4a747d61ef9de944c3485a70db1fcae23836501bceb15761494c9f2cf5710af20aabb6b74a395d2ba85dd3c5ddba6bbfb4627bb38e7f44a8467830e70f1c1d04da31ad581c1ff53f8ad258dd4748e6a487c34e5cf16d03052d371591d20cb2de9f2974fe9d3774deb4d4ad9aa67b4983f651710f828673f32ecf572b9fea7c88a40f754b14e4d07ab49b12337e126a1ccf2bb6476e4a6cab389bf256a60777c71613d1c7849581a5dba25acb685b381e5ae7849a67444b6cae003b2f5082e962382a3813df1c0850146ac228131844a93171587a62e5c9a26274e37686222f4c244b54d3bb4c018aac988fd7a283a3501794b609a30b81f424269cc7c5ccc4b73455763ddab7ed93610765eaf1da38923d324793f9aa4a102fed841294a509a2297a521aa3f7898a509a2fbe16496a649f7a387a56ac3104c77d36ddb665882c4134be34aa4253b20b184c890923070a024cd0e5c705fd81957222991a28a957125921229d50aab5d89a48489d00b4585a1b5a706e7e71eed346eab1ba7514fe98887341241ce42b82994081cc2e56fa53ee2b1f3fdbf5e136cee0ebccdae78d8601dedb5eff6ad54e08fbbf5dbb8fc6307b7abccc19ff2f213e5d4bac491df27f0f36637b93ae7a651d9e9f6bad56dd6ad6eb3bb6e759b5158fed9cc3aba5127f0b3a71a54b8a7536dab5ce77de0096553a889621ea72bdf659d383f51362a90aa56dfeac6bb91d1a164cce05033c21ad2a05143abc1fa24f3a0d7592cd0873ecb866b2fdf3b99455ac9a1de6f3ff2b8f243903c7c47eef0b7360ced0c618a65fb35d73247ff26da8024cceb9ab501804f328f7901d041a73af000fc785cf755e7586b0dbfd29407fff1709b80a4ca3afa53f2da4f320f7be57bf6546bb5818336af87a2f44a91d543e496395a475763f17ab2793233079e75a8f4cc592a6ac9d41000004010000316002020100c07042271381649922a860f140011688e3e705e2e160823418ec3280862180832c4180200318610c00c5345e701d6d4254417a272372db9a6e9f1e2f14bd8ebf074e25b5465683171a9f2dee75535e5d1d5606a57ead9538a27a5efd5f281742f5a776adaa696d6cd1eb24e69c61cc69ef1f12662f373c5aea4dee203e7777e2aadee1ccd0ba16309d301486f25831b2d555cfc0cad7d384941b43114f4fbce9e759f57d32f25fefd16ea618e26a1189d414cb14edc5c39bd8c7e7e4afb974971496178cb4c129ed2e1494fcf26191d210fe5cab40b02d93233dc82c04c3f8c48a9c5c44181f9269e24a304191bb40a6c6596d4aef47e9a7ef320a9ad5e17591cfe358e6651b35d1679363b703dccc1b06edd0eaadfcc431ebee706d9178333367555592a3856743f44e24d6f7496e6bd882192abf0a7af389f00110badcf9a9cf2cd16de26e66cfe0b26554c968d35e4d35b46d43b07117696456f6a03f3e759bfe8d45093f6458b4efb27bc91ec49641813b8de8ac254e79b5728aabe79c7096d4ef243db36ccc74443fe526bf50e4d5877ee2b9407a64200b4e9d0974e6f3d4053c70a0e5157ca5f716048ce0a73525e255d1635753b36bb8106cf4dd9afc33d00bfea40801fdc8b943386ec1840e5dfeacc2847b095aa27c14be87a9432f49668a084aa862f717e2521aaacfc64d84ffe334bfd075be893bc4c73177eb25e19530c45b98da68da3708a9302cabf7108c226e24bf5365d255492592ccd03d02723407364f193235315b4b049140905c3a5f84f7e2e50741570c8ccec0af078965d9eff2a2a77d36283b5637e6987bbedb71f4c29748765f0ce5d7b60b11da8548b0ea10622bf3c9ce4ca2026699081b018f5f0b25aa185040c3cceb122a3c9c85db403c8186197b57323c8ced30f7a7313ca9481b03a422862552311ef2bc34bb70cfe9d12763224a6d861e78d80ba266db642268a97528bbd3344158497ace398e38d759becb2c22eb302b9b9cb59a335deebd912a0a2a795a8233c283ff2dfe73a07d7d30d4af64427e29ed2408a0ebceb5eaa95c38e27e469330068f2990e031e662e692e534a1708bff935ae6020cb8b43bfed38d8e69935aef0cb9a80d38600ff5c1f43a8166d74f81156f91066d7f6541c975415a7f50763d2ccbacdcaa3b1397bc7340244608de404d890086023dde5c2c280e7faed508601a7570335089ffc2b31e61d1752c081df6f8bff29206a939c72a1b5e74eb43022363453ac6e254487d6a71649abcfd4f8ebd542da0b73d72cbdf7aeb92cb2c605eaf91a8b81ce082fd88be4c9196cf25be8b8c1139701be11cbbedcb1920abc21b11bb7031ef36617d3a3c3dd1b5d0d4323abdd7163c71a9eea69067e87bd425a77df756802c138b82b9c2d656c9b681ef2b122d13530d74c2761eebdf07fcfc6e1461a3e1ac59463e4c51219b8fadb35c37d40cd944f95eb09be08aa2030f5361ab58cfcf62aab6a75e0a5afc4d7ab55717c029ed9ca13f3ee077e7a8e03c99f13c6b339538eab22611841a91630fee6672b17213e3b825fdcaa13dd5f93c28152d0d23e0c97e75ecc459fa32bba1ac45430f128f3931579fc4e827cda90f629d9ff9642554c1fc0a853ef44e7b63b4ea9e4121644edd5536515ef1d880ab5e334e0422b5e3f3647b67b5e5fd1ee36fa7e3773bb8567293798eaf8273e7f66e00e29bb50319176e2a119896a654c6377c8d5ec9e5c82b05128c95e88e789be59d626212f063d9fa1eee944cd91eeb54d1e5d526f1ee852e40d80064e739d33abb000b7b4a8da257e73cdf3e37e627dea7538fa619a89a860f1ae3d8352f3abe920b3bc760b35fe8a7821f850ee09282e72a3160f6c08c7ee53f7c28e2dfe0f2b473957d5f7f1fe712779239684e76b25d92da2e23efb4b6f29612976188ece9a8adab5a8c052a391c9cbb8fd508aaa8f33652d5acd0ca61ea7a9602145e8ec5cf70186c883ced941a8305b28c178ac96e4a739e501cc446439d5ef36fca2ebc816e510f223be0425d2c85864ec81061c7b221aae949d59fbe7edc678e245a5a28cea8fa5599e500f1a2094f12ecd34834e9ca3fbc8d2b8208dff1c3cd59ecc18bb57516ae30f7b0c869f6d4dfcacc49ee024487e24a7d40af82809276bd160bff98d3b455fb54662a7bac1ba4d24a113c6a83495b9c975cdb69f187886b307ab795f5124e82e59e68403ce6a635e9897fa3603fd619c972c197853bce6903d14d17edbd4a59a57071bb3c2e6c4ed8cfd1749c5ffb020ceaef982f50b9323ecd4d876695565a0a4acde1933dc98b54689e62b5a34b5a40e492425283b4e93357851019aabb6f793597a5305b420f33d1234dadd71f86d03234c7c1341948f25ac4d0e78d2da11fc186952ed1de8362a66ae5188220e69bcdfc5d1fa9a2014dfccf79191406a05949b9cf60bf99f9ef1f4ed51c269ed2405f899c30bc998940ab771ef8c3b49e4aefe07246cb49e4fb64033093b9d6d6552d59401337f1611057a5a7eafb695c325cca880f988981e23f573ba7f07b43b909d8bc53e378257fc87159b1dc3432441dfa527a3e1ae8413148ee6440ac237817df298a8157a3d536fd0e986986e267fc855297ff929a804b45147d40ee7ec449417c049ee973095e0ca6360916597fa70fd65d8fa304512332cf308dc389acf2887dd7f6480b44c9f92d5ce27cb93d5a14bbe23290586193ac1cf4ee273aecb2f3c1ad02795b4ea9a18fe7892676fd4a5b764e6020fa929ff749fed4a5e63c144a98c5bf996b1dd0f7600063f59a41bbb0ab5dd94195316ef62924a178972c3d12154313b8c0d2d095df354119177a7367515cb16e2fb46a433fa1ce43ac13c2138dbdfd083830feb69b3477d4e89cfa0bc0d6767722cc5cea7f061d4c0d11fee1740276dd2844f2fb410259ea6dfa952310522fb99cee183e2e0789fcfaefaa036993ff617d4bd2abafdef1b5fb88517e51c79aae83624c9933cd6e5d348e29fab16ff6b10d0a5fcdd6f2d13e642ee1e8078a6a675a44116d1633059a8789d520a150cf0b0506db7829d42069b41e4f0e9c94ec7b74e7ad3dee66a5721e3eb8aaf483a49dfc543e57de58c1961f2cf945ac0002cdacf518146bd1df4a670926bd5f6f48d6668571bcf7e8325cb0e6abcf55d6bd134124a82769420b4118ec1d056a8672dbaabeb4ea03146450e43994254d21e8e805be14e87b85976c43637458e71126ffc91be85a8d1e262c1530d81e565db26324b578a64f8a05f3f7cf04f54721d14faf0d832adf2327568ca279873fbd10bf36f71ec135c06da9017edf1b581537f999a239fe1fef2a8dfc8d35561095aa9245a4b52e45532d1c26e367803b9561cc6c297b77632b7b140ce1161c6721ef115051092d557262b62756479b0cf2b8c5c9dd324e712c80d0cc69f9750992feeade077cfc481ed7f2f5e161e3a5e394c2ed81e00bf53ece17d9ffea2a38e5d3b9099e73ecb23ef4b9c688026bc75ef6bb850c57a2b2a93879df287c3fd88266158513ec7db07fbf54438072eab01a488e24664be2d5eaa44c5adee2c875d5642997f9a517f49c9bf8e7165e396cfb91ff8eaa598c8ab8243e8b5d31005e22ec31f342ab6e5360a8fc304a5f9d526179789fc6740c516d5e719a2329e1daeff17246a88daf7c003b9ee738f817a4430f7fa30b429b6c6df4abeded5c6526e90eca9599a72890852677ede72d8ed58204f31c42535a5413c3969eac9c5f522200626190043ba05e64126b0dea4824d4952457df2946ccb5ce31808129c4147eb6b4bc89142a2c748b53dd3e12f078aed12c31c69ac7ff93d3685b5425a21a1f62795b6fcad25a6d4f39c564e5d62d2b3aaf7891f614501e5e21520da57bfef568b738c8eddcfd854a14c5c41be955c253a150dfaf490f2a34f2c75b4b20c5a18d06a19155ac92ec08de7b96ccdbcac4256420612c1c00bd665fb34e319e6a00536f230bc53b73a712675803a39e6f7194cc12c4630d33fa692d2598d37a761a4a14a4fc2f7c028a409728a8f0c49b8ba602b562091833011770b25d8eef102408a4f44e4430f023872ef2b27e88821a69b591e6a56bdb7795f016bceca01d4658d80dbcb97631949981bae049c2138e705b1938928a9db1ea22121f8d3adc429aa38191437068e0430d09716eebba42a34c1f0f05de6f7a56033763568a9fa9728c7885956e7a65eee4d2f9495a7591ad9fa9bc814609a60f531120ec01a32081e4e10a39455c085a114860b42a80d8d1dcb4e317f3ccfcec245ed0b168d64a46adb0b842d3e0546dea0f762c5a5b445f061eecc25492a835113a1908beccb3634f61d0a28c986d0d1c57c84e8ac817eef95c12e141770e909ce82a610059ca6ea88ffa4eb56c4bc954bb214c0b0eb6ee694b183f203457e189adec475879f7cf3bd6bd09d313774bcac7f7c9663a3e52b9f41014132cde9185b305294d2eb4ba35622e7640834edb70ff81d73a4a3767d750ba13fc0b5d7183d5db2e09e18d1e00f9359ee1a64b8f0355cb9e04ed8b1a97b71661632bc12b351723518845bc3b1ce3c0d066eec2a1f4dfc7d34b0ab6adf91344a2f4d68ea28b37b035295271eb0add35c1f2f01997483dcd2e9e139ff9e42965ad8d360a8766170d54c65768fa7b36df527d722d430f9863cbdd008ccf1087e36f932cdaa5dc76cfa09e97ca3918ee1765650663f83ab9c6a4f0b78b2d373090bdb8622f11392756b1330c09c3e066e12ce0d1c76c4dcb0bc112d2d348bd6b641a5d2df03ddaab58ba1b20465f05943343ddaf1e44fa7b108147952c9bfa635ed101d86fc7ddcf290316326f5fe4c9dc4dc8f457370c0ac697b037788b8a27f440ecba4a6cc9107a47dc67fec2b88430b94cddfd312d276264181209c5bd3588c92eb100a5d1c57396ca90c763cb6dba122b83e8fb2032eac1238ae1b32af77c80e23e2a554e4343c9ae75ab64f2cd1eb1fd2035fb9e56402460b0b895d47b46a0010fbc7887bd5d32329551cebf6fb3155f556b8abbbfb75da3ffb22bc5d5745f4810fe612661f373f0076e815031d48a53ba82a2c47936a6a84435fe6a833addd5c2740e3e9ec74973e9c58df4b42f2313424f1da7674fcdcbeaba87abe9178778272760b345088e33a6bdd3bdd2b65427488bd81036abb8e09e4e37c7331a70aa9d3afb0a6a4c220cf84f35e0426efbb38d3049be7be2c963caab1d076081e77e4c9724037668cde06cff78578f2ea32bf6a0bc9a0aacb10231cff76c725e3b76827a0baddccd55376ce00323aeaa80f290d44674995801688fb6b6483faed48168137a00b973ffec158da9a420e0a15f2f303b660f3f072fe150acc2772ea1d017da11d1339660f8fec58e3bf8992494d5596bf03d106c5f8b2e4b1a4758e725586cf1e66309a0ba7b74fca7f5bd18770f4bb6939b0b77914867879c2564a6213a4eab4d3a13e95f022de09b5f7ec7ad74e85e207f525df9014de9c7076f8de292735437fd07a821f05b69866e1a5524700f99514552fedcbf29521d8a0d47469ad639d5726176608fdb1546086f23cca688651bad1ccbbaa9ec7b0555842b63eb5304beac680ebed77876dd0610fd1da63f3ca709da92dfef2493fd472314f33c60635a6819ca37b9fb14faf5348b7405c70353f435d172ed15c41e70d06a77257da5dc2c1d6bdd62c35bd5a09c4dab3cfcb1a88fe7dfee3844308c9b316cd83c89a1942d9df215248f3aca3271cbc4b1ac23bbf57c7f68893e56dddf93166d7b0846bc63fbf7ea0d22a0104e3e3977aee277b3ff1266f1e665a5784c4b2b4b8e3111d76ad63d9d58d5198f3872cdbe70046724a872a0bbd00fc20d68f210265012ffe0532a64eb3ad644bb3ce9c98542401b4d88a3d9c43ce7af421f4deeeca3399105995e87d87d42305d039062069b09fcc0489f2a56f432cbc3870f5d1f7515f16651111edf7a1d05f05e1c67101c45c1e4e4f20b6225d5eab9d49b900a02a87373ad8f9943d9883e118b251d148b2cbd683a7e8ba5d81c02bfe363d4d4238032203b11e10dd0dc551e96c71f822cab7e02f6cca0f5d9bee3c855d6f0311b241617a927e17c277a901f90ca456f2297488088b5b63c70039f05258cb03338c5a47b9f0c4737142c1966d0bbc011e0ce34e69ed837cb0ef81f1d70387634a28e92b036c0fc448365801eed3a5bdc0bf112705b71b1e699c8dd5308e8effc44c07f7ec3e4d4396d706789913eff6f8b6cb1794b3d28483cb8a027d3ab74bbd3b60ad02f7bf4625a8e419d3838ee37486ed4143513843c59dc1cebe907a151db70728538568cc64cc22a11dfa8297e65c7816d5b4038195ae21101b294da5e434f1bce79660abaa508da1c7432a15dee78cc1532151838232cb5104a4640fc01135adc90ca48919f28c44191b869e5b4b283a359a2a4515d9dbcb4154f9e3144d09ce8a2fda1429b617e83241a173177fe1e3f6a36caa19f4cc7df4fab3fa3f7d8313160a7da1c7b7fe3928f73864cefc2274f5961bcf9d4fff759e96f278bce445f8b7bf8a17d3a014df4116fd97d94b27985144b8bb18b4884988434c7894f354b3a36cce56b523493384f4fcab5f28306ae3f9d111f001d978702df5f048f280191244f9ef643dd393bd9365454e2ad266102bacd04083d25864d6e70cb268743fc2b4ed40d4a12e42cad9230a1e66af5ee7876e4950abf4a0652d9f4bc040c1107607c05aa0021a6684fb3b67a0d15f461a30a32d7f0a762308ce9b73686f86a8200edbc1537ee4defa71d227577b1992c29ec9bfd84464f309b7dc6b3d2fb09cc8b2e7fec8ce8a18b2d789ec1d6aa4ea4e22bf766399c94f73b280d7b1e0d4dfaa98bfcf10e1136bda2d59fe3acf6f3b8385240e7cc9b9d3a0786211d22ae2c06a38e5136ca05ab631b5582bc20c2a4bac57ef48ca93e1a193ea81e113696cdd232eb7bfff9055d75d5b64fb2e082de3fd07b8d7026202145d20ec619d05140302810c43b765dacfc6097fabc0caf8fa25fade8d86e3cbe7323e6d3042083f456e80154a8a194568254ff21caeca74427ba042acd94eb42d204741a868e30b442291ee4fa517e8b718786288138508766917675a6ecda2db3e8678ec2a57fe50e38e5b702f1c40e38f0a738bcf55fd4c781b08d2844cc1b77182dd381750a987b39545b662782461c4d5c4116a5d7dedd2864525276481de77cd51b523e2d57f6fd2a7130e9a1c02e046600a9c1014e8149b87a38ed7470564b32dbaf6f2d67063cd92a95cff3647ad86f04fd191b2ff34386152a8cea0b728ce5efa31c67ac353cddb366c466eda9032931d9a8521d16fe13909af8627d03807579dadf2e9337c4a482fb7f8c69fe1eb94cbdfc3a57ad5332c11ccae60a7d9b982fd6974334e9b4a0a735b781ba4ed2c389a070be57cbed9c080f356d1400a34be9dc46ab0aa619afee3a865bb760a869b57e7df1009616d0ecc0d808ed58f6771b794f2ad791be80ead008e746698b27dc96d608e758de81ced5d88bbf52b87f9d925f323290df57d78a6671bdc7b408eaf78f4c7d0a77c1bfc2f2e9db103d46fb7e16751989d00b590de1309604c3b99c26e0bf2401e047bbcb4a3eb11c887012834af6e45bda52c07e3116e118f1b8c274fca1b8fca98ba44c1237c5d4aaf24323a948051449870702509aaa2b6cb29c84a2f7a594697a961a2f3565147673236fadce450040419f9170d8a7fb602cf36815e357c5814fffc9658fd28d6aa89c78eadc1260a2e83092c211cea29dd554d23b15919cae24573d8e48bcd276e5253639716aa8d26d4380f193f4107d55cc083ad1dbfa13fe0d12ac3395908bedcdae10ad95f7b5867d9fad0d00730a1d12ece4409a5e43e8fca828a5259f52a6e766d41a63af91cb638e11a9d9fe9a1d69a6d5579cf9a05639ace6e867c3f3c28833f9ba33ada5d0c0dabc241077b881584a2c58a89c75a0e606814141d29a6f7f912f212bcecdc97ba8c8727f430e6050bf66e21ee1e82863048cece9fb945e0665a7f69c2a768080752e9859e1ebb6cff2edf0858fde8ff9f6333204fb7ffd13c1923e73ee2a9fc125d2293d3e87f6bc0200992f935809034a437c5909f30d13376e29b680d972f9ce82759c888bb386ec66d1ba18ecfb293e76f211f5f0512c5f1b5f91f10e63ae8eea995b7b57e7b3a4ed7069bad1fd216192866f7599a711f58de766a3659926079d9c4a5e2f70d54801d389ff7fec503dd3e97b89bddc1e50c77368bbfd67964b9664a9f75bb48f3fc5e67222b05843c77fded432cb2fc47333c5b7be6c52a5cff6490e80d3eed099db5bf0b584182b669ecdd19738f4398eaeeed63a1d20fec6c68e8d4482d2ab79ee2c6b7a96d9fec5444d869a1f16b290e95a921bfb71f9510c646262a5e90d6da7186f26ca87f0cb96612c4185d5d3645dbd6238345d96d7161411192452624114958128116fac76a3bad919c28a31cdec280579f71e99973460b762dfa3b1de6b4b6eac9098e61e6e271c03ee476837bc0a960c2fff69a7b9957c5ce0e4ac515fdb017281b73830f209ac924cbb7d0d2fb0023046d247fc083c1cc2745fca528ccd78872ca33c97f28c9d85070e589137c138f13caaa370522e788372d5243432a347774f653f6561923cb83391867779cb904d79ad75517481bc42fc4603aa1243745f05bf5789821c2c3565509a2f8dba9a83eec24ea2f3bd0288d312b876b4b7e343d2f1de199d73196a6dab0ff8388730ece4abdd2bf39d7f16abc9e6fb3d15af300101ddb184397ed2138d298bcd265241b9561c652c1cd9a243dc296f24c53e2a5b3ae40e5dccca4da83c3b8f68f51d62572f0989396cbb6cbc5ac8e0b5810ba98dcd96554b7cb0650b90da8910ecf98b2b6c1e5cc603be4822c76263e85aef8d39581d9f1654d9bf52788005de77ffb813f5ef162edeff7708a2868153d1bba5f9f2f0a2fb2ac5b7054ed32248afe9a80ead36d226162c24963af98043bfe238ce73003f2712477f082f3bcf1f4d3039c8d0379bb9896153874d37b09b8e1fdefd6fea0d8901dd1727361c956346b626a77ffeec016a628bab0186d72d91c281c6d6e1b5da0b5233fe1ba1f8558d665c000b2d0edc8fad3b2533d7fc1c1c7a10b1769b97f72b9648decd4cbec329244a11fe4d1595d37e86fcba6fad2ec9f3cc83e187fa9e9b95fc1ee51040c4817a7b4707dca23a30d7778ee1b701f4cea7a3d1e5a3d61309ec75bc906a73050d1b24338c3fac1dc0c4784f9ec914a3a91cfe2db86984f74f2072aceec4c05006f01e08e1d184f80e7c9caabdd967c4c4d4fffaa2888ea0f1a936a36d602727241bcb0a6c131bbfdbce1747fc1874c5dc3a0182aef7406a9302a018dec63e0255bf623c9e7f2a48c7096728a039185fb93b431dc801df0ce9b5e75767c8c12747c9cecbc1b991346b299bc8874ff6c0ee3665e997ff3f398934bb36b000b79697109af622d240581a8870cd7ef2238e2fb1067c46030084ee8e030894f511a66d065b7b898a441163ca6f81ea816064dd4e277b186a5859b34101a2503248130db2764b0dc2ac75f512b04da250d7344e15d6b3123da1c9ed798b4290537615ae5d9b7a9d167ee00e4aa1c45a13fa5f28a5f082c6d495702343517d4c2050d4b04478e55a78cb732db042b4cda856066e0307723bca16de1c8162970556b59feb638a5fb23f52cbdff60f66ee19a85bc6671634676eba5b9f9463377879e8845dce252722f4b35ac67bb4bcca5f2afcfeaaf55b2092e76854ccd27a851c6b766eafdbf7524545bbd841ca5cd4462670e1e3bc40557aa5641314d475a99e9bc9fb4ebd671081a38311073aac2b3240de384be927b416f6458a1838808935b5e7e9497da89744f058e0265f9cce0ae8761b765124c5adb474d53b053d9f7ae9b5a439c5c1afd3d50d861c848cee1cd04c8d73438806f8f65354c72be1a7d7271016d08305b30d0163fa431d16bb1782b46c46e098c1ddd419185a42c5a14bb08930131f1015f809a0ff862c92019a24df1876fd2814088a6f62d7491b5d3aa26353cae5f0bf704314e9ec8d9442c6ea033b2134c18bd9d90a932b4df522ee9abe4afe6eaac2fb5309aa86e9b05d53413f25b48334c3c59039a6c24187e9d8662391cec88113602bd02f9613cf269bc8962f6ef4c1ecd061a34ed6e944f9296f6925530b4e286d4d097dc12eda308cc07d66a9d6f6522ac8f92d60681275a22d706e4af25eb608bad436c39c60b97c5cda640b3c54a3aa8e77183e52471ac5442eddc4d565873b9192f5e0e3d56e16e926315c5d2f3d2f1ab494510ade09d40b2374ef9f94c0c83933646b1142c3b557966e3a037562f0df30b1bbbfb45573a1e44fa79ab2cdebdf36a295192aa397234ea709dbc3b45f56d914c3e0952115db8f4bf2e2636a4c9cc7801d142fcbf03fe711259b8250c8d21dcecb133f2fc2aff0e2a437e48f797f9f639ab65b989894b50813fa56b4222b52d06bc676db5ee3977dcdab8ccb4bc5dd0a8a419b3441a3ba100956a2e246f2958e70cf324e908feda973124d6828c1defb3723b6e60926637f8de18da97a92453684972348324737824471616140c66241c5fa1e1a5f0c0740b831133b7ede6f1ffaadbc5d944ab3bd419b61a2de30d11421786f289128eb9676f157a46037d20c4b1e3d4726df86a9c705583afeffd70741393288183a6e95fb08482dddec50b87c299f01bb703225600adc36e49d621b200debe8985a24ac8f78ed896b4e4d0224b982db7d50a84e274b0edd3ac65778fd93790091d71d8b95f7dc4d0494ca50fde93d0867b7c478e5e5242e1bf9f0860a43da0b6d8c0c0ceee10c49030e5469375a55d0d2d744ca3c64e859ea75f3c5217aae405830cadb59d875873f8506576c07141514e4aabac790152de3706ab3c3c69b7b7c3ffe579740b06e3dc2c10f9a68ca47317b187deba0f12ab1021061fd890e495ef0062cbf136cc2a12b55a9a70265803faa5b2eae6e39f40f656f492d13997d98b891542ad6d689c81290aadaa3d330905ba2b3c5e6dcce6ac148fcb522a7e064999eba9b1f587ab458d2ab1ed43640de57570e01104d53ef3435dc6707dc6543f50ed1b8cc15db8b8616e3caf682bcd86e042cd0ae2a409fde8124515351f6ad4b9d4637cb87b606cc6b9ef7d902be364d5f3d3e9ae6183b6ea22dabb807c58fcaac25b5da530d8482df794d4ce2120dba996757f5dc2cbc87962926858a895adda6e40ff8a099aae1ac972786da48eb47fe3fc3b486e77982257dda2a5a2c22724302317f29a4d4223d972dbc896c84bc47d18aee67df5cbdeec11281744431af5584bfdd93b3e261581adfee13bc06447debc4475ac7f85b66627e4307bd048d6712153898f364bbb62e793b112817a85b9e0759c931432878f469524ce8624c15550554a1360867bd949a97bc4727a411aeeb262c93421725965b66fe6c4374e1d035152c8ef927dd1757f771b7ab9bb77c72129234a51457c1d4a0da919d86d2a5e7c681d9d8c458d90d50ad38b85bae14089a99796eb1641c31b29a74da54d0a0e2aa52bee47feb77654469b1fb7cd20d0bd6b4e147a4a7dffac066e3937411fd0b71adeee28a8471d1f97860fb899c93fc15adcd04ec0276a4be794e655bf47e41dd5b6a2e679687f8398f16f8e0b0e377d5afd3e41c6d8b567d875a5ecc27ba2decb5fefe0d67344af1e0b61db224c58fcd6a266a1370a565c66fee32ce4472585f43ece5af06f199cd9b298fb47eac72da9504f8a9cd6b2c2e9d8520c19fdaa5c1695440404915298daa644d14b997b76566088a16f86c9862c9149bdd646b5b68cd1edb0c0092a4364af462fa2c4bd1a59eed5fae91f1091fd12a963fb8a2a9b2ac46df9f6cbff04b75640e54f5c31d0f7b13ccf2fa1cd6cb5f17fa0b24cdaed974edd24d7a361e95df04d03ddfca193132fafed2643dc2801815bc643cc8b980b6d216a3941636c2e0115feed8455f9aec9fe66a6b127d24a0438734063395d5df560008a5b2583366ddb0daaee0cdba833042d0558f2ab69ab5a79630ec769abbcf0a038227be033dbd8cef224711ff0e48095c08ed0171e5ccf776ec2e7cbc5f25d328e71660b4dc56109ee61422c3ec9bd1ee799e4fd8fdf4921d41c81fa59ad155dce47c8f36a7d086bfbb49e39c00e4081b77538979a7dbbbb2f36febe437331c053dba261a324a53f6e9e6b95bbc0fdf2c78293ceedb7e21ad44794f4153fc4363337c81c11062a35f85d1d70cfbca108c2f41631ec5e3a218509a7c90ee558fc1d4cda77b5aea3e85ea450cc8d94568b4fca3f80fdbb730ac9723c0e1d654d22cee80e44201fc84c22a786eda9acca4ad91de03b258e0905ef25404344707a32f1ada6714eb61a2a4350e1b166795facd05e281185e8f825d1641dc7beb975a637e6a410e66dbc22e34d0953ad1748157919b03140e08245c6595b42d9559331eab89e76028cd53ed603ad86ccfa08d6cea1827ffb21da43dbd3ba1d7a6c5f3b23bc3914d9c10446d3622124afa800ca57638dda79eec951585b4bdedca8ee5e1be3b27bdc138738983bf0b1cd27c9eab8f4c06ee9048badf49df4956edd5162440ed6646d54f247a070494076efcd5b3b52f770752c3d0db3f7c27b188f6d00c81805326405193ac4074bf5ab90c1113c29f0130d05d6757fe1f9820f68faea77f472a16b87dd38dda3b054e4e8e937619ac7a6eee0b00f12c3d302d4ae9e297f441efdb14740dbd9d77ee8ffff29b016d47bf592dde10530ec705d0fefdb07a89fd659d1a6c3909c8e82818614bd40e047abc377089d1b72d1d978c22552184276c282d16e010902cfe1591ed644e2d8b7cc4bce681281b168b83d221385b6ab0e5a23e722edad7c981618ed5e733e288474a08a3b273a5cb41fdc897b66f7f1a12a4128c791815d32200e2047e737b5dbcf5936ccc094f3f2fe9883106705e25f751e100dd158ca21471a6e83ec06ee7b5ad9eb7995cd54e97b01f2f33d8617db59757f991fcf2d3d2eab2dc79545487edf568869864c1e06708f74c0ca77f36c7e2b79620ff24901dff6d1578fa717d24e4479b8b42cebea676a3bce4461b65613ae12793368f679b59dee50c8cf587b51653f2a7fc103c952e16fcb4e29ac5f38a207495d907800ae808432df0c10a0c2f2553430c4fbaa6f306b7b6aa104b968d899921a31b665e746b65eb2afef655dc3ffc9600f375c2c24df0a60375a3d1c3a3b7417c294a7c6ca4250802f619809006b9a9b0b0e616f4dd1b53b704f186eb4272db42e70b57fcd4f12588419a654bd51102df5a16933811246c35245aec43f9566ee92d8712072d1262969bd27071951feb19b1e8c24376aa9139f76ea31488d2296a4a39d7c9821cf8ba6ecc041bc07ae5a7da9344c01c6d8a223656c695fdd6bd6072acd68487fc878a5ca764d2e703c3f30d681cf9cffd5bc5bbfb89c2a3afe8d8ef5bc3a132715fb867a5e65addb245ec5ca9ba5261edfdfba32e184d4869f30f7f7e4add8c5cb08a340ac30db5ee8a85a36afe5d101f5d3da53f563f4ecf18089a1ccdb472922ee3221bb687c98127acb8785a2449c786d794eec3b95e84801d06591b8320bd4310ded0ba9b323424454eaf5e974d473917433bf1d073ff133dfdaeb6202c10ada32030f7b101e49ccbad4854fb5161e9e5409280e0effd5e4879967d4f5aa55d765b183861a0706369018a5c8dc067283759636c3121f8ce0077f4e938a226dccf90733ee2b80070dc3bf22800c65812920dfcb25dcb92189d829d01f8de16f6b681c335194d96bcdbdad17cd0b46fa8fcefeab16fc8b909488ca53fe80f271dbb39343bb4c2b6bda0e33627f3bd3c20a1073bdd496bcc65183954249c7a0d8a0c8075ede0a8d34a11eeea80afc6d038a5c7b3cebf2386ddd80a76e1250147480a25c723c19855e7424c8696e11258fd4828849571359e40e912ec6dcb16feb8d104e6d41e35856dfaf1fda868f381b3e5734157d377824f8ec80a7b42857eb58f5a04eb164fd668fb1afe271693dcf10b19729aca4e62b8e0e4a0bd96ca90dcdcc258d9aa74dea965f4051821bb648770fd4e96b339a0289fc27ec5c81e3ba40bd6222c119ecc91d06c7b905180c9400a0df6e62b60a385df2be19a1a20ada92061d599942734f9e00825c80e20225517f33aeed7df2d1f30f2be57783a9df96a70646dbb1c5692845a0be20215c0ce0b1980bc370ee51aad8e26e799a35d2d95e44ae1fb3c89661bded59631f756cc10fd3d1a3caa2c67583b82aa16c5cc31a71cc1d7ac246472a2c1a7b441ca5683011181d36307422e15a4917076e5770066cffcebc617ac5bb0b6bf739d8286e8d75c079f46dab1533700aae328bb83b46d13b430c75729f2835190196e59ef650c29f6048fb8eff5d02d73bb6389f130cfa1867f9871fdfb5381e304c2be793da52363459ea0f190913841f675e7604ef4dfe573605031fd87e3fc5f361ccdd21866311458ca77f2cecf24652b17596208b1205b73e664a50ce0e40b0b3642b0b017e97f41e5886f893ca018e0c50407b8e260c7ec5c073d5efcdeaabdcb42f56d9914b1613b2633328c5bb16082ef54ac9d6bca63245172df048fc0ad34d3ea750021b48df81d292f5e19c3bb5d681280c5bf85e28708a0355c266b7faa01612e0ea8f517beb058437bb8f1297ac4d960d81344acf5acb4358e46f0fd8238da3b9b66dc95b82dd0f052d79e011956d1546964190d2616d65d3eaea84496c0ee2b9b7a168637d4a841a93946a400854744d80985216f447e4c4f61064bc99a09f51c252a40892dda8c4f714ec3783144ea28cb86c43a1a20c93730c58862735e96d58768aa4b1a5bdece2d381613a62446301001557620b0923054282239ea3241df58069667a00954c95fd2cb575e65261827a0d4518281e6bcf4ebaab61c575c59e28b51c8a61a6bccb9c194af76301ef47d1d36cfd384dfdf6ede2db2775cb300e8d4f65a24f5af2ee4431d40b27f5da4235c5ebc1c3f93e2826904dc451e6fee0b04e81a28908f764ee0eb68aa722e6fc26221cecfe507c1b642d8d7601291bd7e74f2d5392707df7558aef64502d0424759945bad2931117acae0a714c8b314784f94cdbac98e3a1b9cba1afcfb482c4e688d2b79cadbd72b0b069ee44daa2688c37c7a85f5c02e382ee06de73c3104c8b3eb57d2c6ddfa39267ccfdf476ee270fc0eb00790ff2ea6add9db9c6169787d6fe0a023b8301f97f95d32ea0673cdb08e5ba4c88bb27cda5bda8a8d0f9319d430d3598a16963e3fe7d3761c7b5c6bceff0dd127ecc5f93b723d3b900b31239fcdfe360b87e83b8a99ff3da2d2b406854f3f9ff70f05cfdc4a2e6d318c507d06fb145551672412d9294571871873507ca42fe932b39e6a24bf09bb177447cd3722f9c24e47f9d5976dea67c02a045bec2436f1069f3f767b02b77f3f8a169adea492bbd18bd208ac5c8a535b8535dec80fc88e56bdc1763af22c7c38c8767af0d68b4f794c7b5f9602431dda4b3f37a72a1d95260652e2d4cc7178ea40ba66e82480712f355ef28c147d7a1d00c0877a22e3435d5e17b98718194da2414ed07e1fc90f9097891a8e90fb4a5ca0ad5c33dbe42c97e925ecc2569d94e75fd2c12685e5136bb5441de078c97df3367f3ae46506b9c8d7c207d869beb769da81fd88db0292d59a89e73803b2bff8425d13d52a6404ac90c486e44497247f7f4cada7e61d24ccc5ceefc6ecb7f86a86fba0df9962ee4ed12ada628c9757a8466324091bb16e6a644e49c770f12e5bda3f089dcd9adbca6a87d88b6c59532df25d9fc345dc24beee076fc200c5181d6e2c8e7338fb0c0625ce0ecf38584b58648b7fefd0b721817f60738cdd40bb6af0a92bb8c52d2e2016d363fb0910dad59e4df6bf5825ef460ae9d54e3fbf5b5a56bafbd34a5261e885f3b3108a65ac479687d80822ebac0c4542a08e6739ab89a89600af2adf8d30b841ac3da992168c903282bd288029a0c441ed286c18dbd21b18ba24c8f07d369aca0173789fc1e9271f33af6b687d1b53741aa24eee5cf38d0cb89c169cac7cf64b2252cfaae334b79895e7018d93e1ecb774169851971af99311e60cac980786f087fbacf48115f9b7d043e15b798e42d50a4c697d31e5bf19b8388f0fe489bfd5a84057af1ef2d14f9b5885d43ac9c18ee2d739bac89d778f9c9d83e2153e6ce3138dd76147cafa900a2f499181625fddf17b675db712c2935d21ef237b38a232242a529fde4d5e8819fd9325fe122fc4859e81362fbcd40ff373b2423eddb3e9e950d87c4fc0ec83ceef25448f082c52e966dce8e1b669b7cef696b12fbaa0999b5eeb5ce4553e6e7697180751b3805b8857202fb344335c57d7d8ee68e40376781472af713d1067d9e589b3f82a96ad8d27e0b5d6d4ab2aafb280e2e05c3144efb617aa2ab47db8ebcb30d5bb44d77abdcc3d8a582b51d0448fe3a21db8b193d18339fd6a914b3c61203bb3a32b416eee2672f2e8345b0cf363d4f90d7a8a0da9e9a3d16ef2ed2a35c389d6ed94b3fcae6d74e14d1744d9f2f1ad699ec64c00d6ae62b96c181c237ec123659be8b7dc5cfc08c65f9266b00a16fd82befd18cd5c215e606a4bd3e4bcf09d9fc4c8ce203d3ae1e9056b8b4f7dde2f3d13462196160a9a448231186aaf1a390af65b99ce72cfc17c23cdbf056c0a3f875767caf521cf6a107774211034cbaeddc055f18402dc6f939308c070c958501ac357a24a16bf529326509eccfef38ded958011cdc9932fb05b7f515514e8ef56fa06a88b23fecf36f15a8746f6cc883ca81b13ef41535e50e58ae949872bc4e7f69292cf945d6bb4ece21ebcdad640501cef2f13666c7ae564c415dd46aea4e7bee0f2c6079b9a59a13482b1c96dbf75fbdf8bd425b9c961de2751b5725c60461509f9c22fb458e2464661b88075bc06c3a9ec22a620823691dd64f9d24d2e74431678397bfa0de64cd132bba7e0c297d57707a599332853c4e5c48d5cbfc8cdec728ac55c4b46c7207365e68efd3a6ec3afe7488ccaee89a44d4937e0a09b3d9bacc972688eff9f7f4dad5b041262e5b285f8acffd47a34af463ef42e2a1befa18dc4300fcfe23badfb4eb805787d77bc0dfd3fed7fee92b8581710e14c3679d50c6621de4ed91146ebe4a5ce41175770fa4500a5ac9abb208a970ecd2ed03205781a84f0eb8c2c6418da0e60ac8d3ea52c68e2b8cab58ec3ad641ca14bdde646c272419697744fb9309bcef8b12e93fd35a7a2d677ff9c9269aa74dc2d62820adf644ae1641c796c5d4d6a87642452ddd05a48d832bc1be36ed6d56032b8d833620b8aa7e3fcb2df81f566c5f7ee1a634dc2ee346d7a99463e8b1536653f3078a4c4f99e6eaa49033d94755f02dcb7e76f9395583ab134fc3ba00f5135fde8b922a59f960ad3c4b13d30b1911e7263647852008c7851d004647e7e38c6dc2ff9e19a87a0ce805e16a8d096aaef51a8998bcc54716179536bb5790386d19110a80457179ca6563ee2626db0289bad8a994e77ed2b54a1c1ccd89fa95b1a5f38ffe64a7f78cf72645ff084b5b47427214063e5dda8bfd5008a9a25d471cb3becf76a97170b2434cb7129b1d030e4035a66f54f74397d84e5b40752b23c40efcda7a07888eb9afbef44c778c0524501732a2aa43af0cac17b3e3ff6fd0dfad7d154960cd69e7363cab5f84813d4f2002e5d0b0346ecfbc3dbf49f64df998eff249d7e02b8c929a56ac81678cbaa98cabcbeb733c88d734330919fb8f92617ac20354ab13fac4eb826dc59de07bf48ebf5ff94495735c2d272912fb5375a6a3169afb6e50bb8f47d597683d756dba290d0b99289c84da990993be225fe9294c3e8061ed040ec56a8efb0045978abf0ff322770cd647bb5267ab2bc05cfb2f0b160cf78653beb5e527666ff359111d2a92e6a884009095c7438e755acd7f5eb0c52f1e79681859b8b54908f19913ca3d5166c520a552e9b2d54b6be1bc0963cf5726d8ac6145a95cb2c91a17a9aa3f3598e020c08b48cfdd61d214096b24a443c901bf5a905acadaae8d51d6ec3347d69c7907d4edcaaeadd44461201d71937979b5f1d04ef0a5ec4f9b105f5947ffd69be83aaf76d971c25d30496f3ae1884712163c9b6bfae312b65637f4e56c93cab85f56dc73089bd34691ba3eaa36aec452212796e95a3db3952df19d91466bea207c2c91a03cffb11322071f3668ceeb41c8f0c91aa7bf760f8f34403fa98fa45c6f270b3ce1a815cbfc51da8d15ca65ca47e94cbb6452b710971c411ccb013571750f8b8684b9b47c40c603b38ac89c38110e4a02d34ae082f93a7d7e4405a8a27bb2c21f6019284ceeb9bdb7ad3d94664d5ce7a6f461be4a923dca55af3a48b7761c216d2ecb183fa836bab591eb876513d7f98c4e067928457269a09923810071745fff94ea84c3485d22fa929f50503f34a7ea562b64b6ce5855c5eb8816e21843b6bf344d459ddc7d6c199619fb27627f038c6a75933f09bef79d0d8fdc281ab70178a4207031482e8fc7efbbc8ee3c270e5c3d53dd0e3c677c1e087c740228fd386ed6470ceb4428a294a13fa91947503ff2b098403fe2ee0bf1c48d6d2588a82187d391799649a6b096754a712211e4cc09acdbfaa2f4d6db1b72a148ec154928f2f74db07d99ef1ab99f499fe2daba83c8dd0d87200e6c706894cbdf3ebd6295d3bc499b6bdae23a8b4b05f243c8913b2aa5b997f0cbd12e248d1e84ba30bc07720d5858e38ec373c7bc8626309eeea60df7855ab0cf089d03a1c6958c9bd3a04de8c2846f6166ef3288a072f7c4dfc9237052551f5163cb5f0a47285e0ac69b3e16fd9ab035d93ab599e802f4d9c0cc357aaf84369638dfb02f710c915a22fd58d005df15fc2ff8e0669bfd0b6a4113bcab7b95fbb029ec75fc081a8d382a7fd5f860a7cd592b4630b66977c39351db553e0f750fb7d5e912b7d01fc0ce3e31b6a7f73b6bee9f266defe8ae1655a80819d3e6aaa0e8a8906eb88b82a748ae6544a291b533d7199e2da8e86b6ef0bf2c5e41bbdaeee970edf720d52c496d0a687966c6531a9111a863586c309f7406cf9b6b6342caa93e9a7a5860222919df9d00beb9410b3cf19260eddb903eb2e520dff16c2f43f63f1196eb16904a5bf3352aea00d9269eb0751f4f09adcb57e90b1c443db8b0aa630725db0a47475ce2807a77a66d50a7c789482b185afa4835679bbd21ae27f3ff4c04cbe76c177f15117a1f88ec14cead54a31e28a18d0f5c5dabb97f92153d39d7e0bcba7f47ce9bd802993f645c9162e0b6a257cc6079fbc9a0ded85c2fb8ecf561287f4396a8de3e232280ef6fb8d60409b0dd7223a5f24cde5d0efa719b45e2dcd67bc85c246a9054d824d711a4eed81f1889512fc46099fc22810eb04ab0e2c477ce5ba334c55ee8aca8fe2f763e7d2bb0d6e78b2d862530eb1983d3294eb4275c342d3792d21989d147412f2e2a51929edc394b82d85cffc2ec0008fb3befa6462698a2e2fd91bcf58033028dcc86d183e8ee681ad50513a61b1ac415ae07dcc0bf95b9ef74837d77623c7ee9866530aa343aec283c2e68db59d0f48ad5e72f1a97a6bf4e9f0704c44225f2c8da49a18dd98ebdc628ef0521044fdaac3e14575674e7287289dcd09c14e1011aab1f27624e496022dc68573d42f57358336720da8b39cc2d94b13f4b24529a096ff8ef6610cccdabe3d256234df6fa397c4bc880103e5f7e5df6f654129ac3e8c17c2b5a1e7327c0400f03cb95e4482848d2f27cbb83eed94f7d3342af88f6d9988ca02040e16d3a1272cd10d5b490b02ea60568744c80c59db780b3e48ef70d755540303683b15885d4d1cebfc554f39c8fe0e6f8adf166d4d863ebbc2835e6f70177cc7812eeec60adb78579ca27c97696eed06de8a30b28c7233ff4b86234e113548d52fb0399698ed9f1f8ca8e3ce8dc1526b8ffa2fc49d7b96fe36e77108636ee76955d86c6e94cb789a7cba531ecea0a5610edde920a8d7ad0f9a4f1c9ebef8c9c4e2845974bd34584b446bb2fcca7de93317b03992564bff675124ca40ca6d3d591f8e2222b21b7a2444ae9f22667f7a3794e1065cc9748b657ca586941b1e98049472b40a207509dc9183bc8df203cdfded251df93869e4178961c2ad0b1760d94abdee07b813e206a27b307df7fa498e8076f4e0071a05679d2dffec40be6d45e58030f54fd8a1be985aaf8c97898e9c28ced2eb62fb425714977da9ecb9cdbeba8ce8446cf80075da9b6f983613386e20b99bd118f9a41c09ded378322d89218ba685289eabb05064d403e0dbc49395eb460112d185e07b9bb8e6f629efcf3803f78a1cd8bfa7b9b364b1e23da3d1d71133a0cad0df1cad1c32f4424668b39140bb04d0a45fef9df2a040d568f62c272d1fbe5312d0c0e499df79af2850d63e2cd681e132dc5f02ff3fee99bc1fb4453f0249a4ad9c8b7d9a05b30dbab77acc30229d7e15c29e526a50598686522bbef8106df567efefc53c1d31a34db3de36d87120150ba94d9fa269f220d5a7df139acbaa9e2a332f132094a9dc01a906466df1a7712fd0e3e8576a9be38fcd0706de86d025b012ae54b02345d7697e1ea4d525923c6419157cf8dff6fe97cf69da47dee903d632d4ab5ef9dfb7e46c2da6cddee2e123fb5ee96aae38e0abeeb35fb5abb7e32699114b80e4647ec68a4ad5c89db48f3db9502a84893b79406a848e6b723053892e92d4969a0d37a6fc4913429011004647b5a05b4c3cbb755dc1edc1507a82d78aa31b069df16e06f9a9104ec3bc218e16a1ab4f3d3fd84a3c54eebf4322619c54f6cc96c520713e3c2909a422e8cc0b0e5b1e67c5c6dec7b8c3871d495572aeef08bf19ede56ebf39c16b645f994a21545176ea78a74a734c8bd55a0dc0358994dec2c0c5d08eb60ab13c8223eb1c3c143f62692f6b40e60016855da9a4a52c8806e112d8f5561e8bae0e06df43164eefec995c0da01b86b98d91a6974102166d8df21c1f732f027196ca2c4070c730317b8399c444da6287aee2f19ebf29e6892f72267249ef8372444cc1325b5ca629e57a9847dc5a0fa8b44df7fba0ee33fc20bc7a9c12fcfb0d0011b688d8a3bd851b9edc8a7c9f2b113b6f25d97376c0185086b2cef286a52c9df38ec3cffa1358a0ae2f599a6663909af1ca5d8029ff9d982cffa3b9d01b1372b9d354e258964d63dc6939675d70ba447a236a3a37b7b12078b6d3af18cd2ec8217cc408a93b39df72baed2ee43c042e55b8c83cb6befc4afbb5d64afeeffb7ffabfec8dd26878118bf70449cec1156c23049871438bb84b75cbe75f5129d1ff85dac1d6a4aa60d758e39af81fa8ffd43ff377738018adc67f85f3a1e4a0863e7a5ee9e7f10331584ba718b4b93ecb52407519a03fc657b603c56cbf8445f8e923bf76fe59feb2fd6f797bdf75cea1bdd6d306cd677b0162f7a2232dc8d4a800e28650ec42c5b9b6c072c9614622840dd5c0c0d659461bb9e4f89b7d68bc489b326c77a242dc89896c4f51efbc84b37562a3b9df543c8c7e57a9ca0afc8a642bd016d17f0a68979d27d29cc54ecfad4e71642d62f5ebf5a8ae9b1d81fbad832b073bb8c2e0ea40dd6c7ab70168fd2df0483f3e6374861d4d302eeb1bb213adf4b8266e8ac002c026228ec953d75e04cc3dcb3db6ef4100d65e58e02a4d8a280b79220b900e5b9f150c4f1da10318a169c19ac2faa0de8d8270c6e57ab74d698d26f16c3f3e533a8e3f4d189d2187de3452bed8c418cfe21c6206c22bdf9e5df13836bcdd421515143ddd63ab3a8f55a75c8d8080e4a510b1c3cdb5de873216fa82ebf9c8026c9ef0919b00e67dfb88c69cd8b6c8c766a3d1806cbd7abaa0e6294663a26cf6006c7446bfa1903ed8c55ab2d121685007176298de12421d6287fcb05053feadb6830df28e2b8936e7ccaab47e36cedca758adaf574f158628131337bf93a0fe0a79d999a6d05190c0da18ab43c7d1f8dbe0a671fd9d134cccd507487406e8f952ee5be22341d6052713b030e3dd7bf3a0aefbba6de9e29fc7df1337a5e3d6634ef8e07ebec8fce3c6e0c29476358e359357fc561c5642147e7a0c07e486010746e273072769076f53bff04dac360241532aceb44121436f5f1516b70aefbdc86e843463ff1bcae051074eef54c6fe61ef4b7c071d3cfb109de1e793df8c1a435db9ee09051e329cded31e15dd85096ab52c29a364d116d42c2fa9a261ae390bd09f771ebba2963636e8172a43b3f3998a47eb1870e38a84c7bf9a6a7f2d3c00cde0734ba3e75a819f08f21874d619eb231cb04eb49afd1aab196fd76b82d82871b661eb0d8ff1fb9c04460e38efcfe0885abdcf9adc1655c76a6d2e0ada0d4a0b936c06a313209f9df2c023f62db36c27768d8d36dfa0919098fb49620c1b6a31b38e9595c934947d3958e98f0093637fbd1b5f5f91d21a368d651d1ba1f2916745089dbbf59781cc5b8f3f0ec141d1794cd5e557cbc80f791a35d24db099a9588c891f01ac68b11a026b5caaaa675b56bc0f4028086d6dbe6b4c90139972c857f3a55503cb8fbc0e7887064a638a763af06a7469629c03b1c703647453f6096b4a6f9e08cde4914f7a0bc4723ad2fb010c8ec0636f7f0babc81c278a13cece5c20e25723c34734659efa7dcbdd7156a9063a2642f8762e3871a789ab4773c70ac430bc95fa3c80a239596a0585ba42e638ad412df2805fc06404ff66799b7cedb9f2cc01fa5e3bf83408c16c1b89d9f5acbe9c08777dfff7149af5057de0f4112827665e667aed66c3d0ba865270c148ed4a96ba63d68046379ea6a77cce0f199ef94e58a2ff7eec17a082b330162b8a3eb049c4e0d31f9c17ad668537a7b8628e4b905474aefbb39b34eae4a5b45a5b57d606e4cf0ce321f376c860e403a673def4be6c4b2550914acd70f444d914ad12ed68cd9f0c052d40966838a98af0d41c1c5ead8fce6e602b858d3f1e8fb2ae362851c9075bd3321899dccad5b8bce517f8a9d3d507b269d2193f95e69b2c9bd522bccb05fcc659c31e38e696a15f9c6a6446369d7e1cfec9f2f7fd5680136f0f368a60af87be1855c05d75e53a2bb955f1aa1fac4056467228cb2133a522394cce6ebd8f8b3459787a9534a31130e291ae52b10328e13c0ac0d513d2aadf3b5ebac66be741b42ce7317d11134c33163f0ffe14345990fa8ff90143949827e1bb1d1e1020b71a24b22fd5b3128c5187fac4786e01cd3bc99d67367d8bf246ab55848c689bbf7222ada55e6a173b3177a991a4e00c51531a7dfe559ed17defd163ef6bd587eee10efc142523c12be586ccf5387752123aa9b62d4dc09f1d94459bb1a9650e932201c258a6b134668133c9cb0c99f21913d6ddf000e3807db8b115aa68398c66418986e9652e830461c1501d72524546d7ab2fd04f4f560ee397da13887f40ccfa3b2bd43e98d4751cc33e8494e6d64b5d555cceaa62392a6c1ec53ca9261bf2112cf968cfefdf42568ba605213f65b7338bbdb4b18e2fd58a87d47556ae5f6f92b00503db3c91f97b69d11981859859da40465cdac1a545f5bd4f94901ced12b389feffe860863ca2fb4a59f46858ad6d18366d8b83082fee7c01a96b241a5b44c685bac085ccd15bd92521e12a60a392929a7852f99e16c357f6c8553cd0cc3faf1783da989376fc6d17409bbf1b9e6602bd590eb60ff97bfe733c12735ef5f41a2560baffd311def4379df9a42f4bc6e1e179c3cd67bea48b0852b9f3da01e30a9f6fbda783cd1b39d728e8a73705a044e2859f12115d92c7c3e4256182e2ac9972c9bb8d7b34e5efb24cc2ac6fd47185fa6054053a92891aa5b3c43cfa91b8629980eb11011ce1f78c4a2cc2caef299449e02abed57166a76a47a93b21ed4690dec09bc19b7ad91c06f113da5186690b8c54467c32fb0cde1586b307aaabcb1601328f2e94ab1865834fb437e474c574b6b48b3a298c46e25c0fd53b907b7823a1e8250ae51ae479d0a543fa90862e0814fd2c6afcf62f1a049a6a610c034df008b53cec36f4c938241d2624c54739dc119e55768721ded1b89ca580bfd0d5362270c1b0d7a08f7ac9171e548ecb8f41c4436dda2cf0cc2039bed03f34d29712e91f9b2f425ff56a416b7f3cacd455b729e1f4bb372942632ec045420901da4117c02a01670b741225d471af3f19821e06b0c6d1ee43c6115f2a48b3ebb76a705d46dd73fcf4aa624ceb0e005e4db6be0078072c96fdd0a9b22158b2a0af4cb54b0feb63538c5edaab49fa617c7a7c3f71161dde46e43576cb9844e28a8b543964be050baeed6fd7bf6872dbb6bf4b6b73a252bc02f8529e550de0be10c445622f963469c8cd57171215f254c2b322c744f488fc069202eba6206620e2e8fa67465fff633980161e60de73f11b349b5f85a214feea984c2648e81c88ab763275452f09096cf0b30e17d5b945b0364a484411e399a92d236b7ee333d252560482968407b9ab724637fda4781d7903310ad563839de7a597a8ebac3d804d4f44d5d0d5767204d040be9cdd71ac4bcd91a6859178c05d1863a2207fa50ef0d9e2c2c86f7ce80d4351003a456028d5832515053a00645ff0529f4e41b4c918253518553dc4c8b5787b547e939aa7d45db3f9f66d47b442b48718db05bec445f187f296da490e579294ac370ae373d09ca5826f4709852d2a8cc7b0508457ec9bcf1fa407cb4178d96f7d0ae45bcd07cf0db78d9fb645828917b199a06b48279b225414b1c0c6a9c5b70b9c3dc80ced842939eca232c18a44a7b6a3da5c959b9c16f43c7918ab82bba645a28e8563224a10ff2dc34c252ffa1d1eeea531a9fc79851e6b3bbc3a455eda1853fba8a9d34f7731447152547fae30c7191d956471faed10469ddee226c3deffeb632ea0adbbc320ac7d1f8c43b3e9e10164cb0efd7a2b78b4c43993c4de98c7b4ed4271344ab32ae06794e796f1f8857aa2175d58f46a29cb7ee6d5ee1ced75dd43312d50f27ad5b60a627c90e53793d417712525a7b289d62749fc501e141ae6191dfafd3114aa5b592e255852ef4f3c09fa903ce44b3266a24c8ddff03f87a80738fef201215686f9549ce05729f84ac114f339ffbb9fc270806f2b310ea9256892f55ffb6905f83fc1c263875135d2b38deb2ba496a3f4e2d71d87af9dd758381833336a36619ed820137cb6983df76a398848b32d48402ebc08e55fafebdc6a49267fea08a5a3183945414d21fb291c51a4ba8a625c53662204d22aa930df64e2d10a9526fd53d48176ed47041e9f5f488b1c34c5f8b41bf60e2635741c9cbf136aec3ffaa0da7eb8aea50a53632517d9c26c0980e14ef44e9b7bd758f28abf2fb34360682d8751ebea49aa3f140ccf3914a8e92873ad072ae2d0f3a8d8b11324ccc65f00ed1a56c8c3f0dc4c002829f605adcafb0da5069ac41850b015fbc7173f0dab04de05ac85ecf19d5eb29d5f2e41ab30c8e3c43c9d444d23ea93dd8b6cc5aa52cce515545741c22723fc2981d1561d0b133749babde54a7d3182d6ac1af7a2a26d7ec65c7e48aa560633ee6746c41aaf9d281c048362308dfb0eeeabc21adb3d8be5549cfb31efe2d33fbdf8e0ecc227fc9879b7c0dec89f36627a6448ac111432b9f23dba3c7c2754a7bb136b8177524e322ef8032a814a122183d44e4c6a5ff6466ad3f42f392255ca838a888ea7b0f5ff636d99aede3df1b6b31d7042a8583487958fa9f769c5cac869833f37c3d036a1f666d5b3050ba9a0e89a7316fe82c5dbb76ed55a5c6f3ea0023021c5538ede4a9e1956751cda5fa8a18dbefc735ef19470dda750c5728500096bab8a6e8c91e32ecc520be6ae4ce9eec8a19d1da97439c2c8e8828a8edddd6f6de52a69452bf06a7069d068b84c48d16e7b3bad61015eb2603d4e294f991a1d2e22ca38e74442d79633ed9c7f39de0550b09b08326d94b8de4aed9de197536759216b23b722ced8e9aa1eed91db2f67b652ccc5b5a6da936200a5dd23ea8ce4705b56bbef639cca3add422190c55e4aef9427687d0d649dffaf1fd17eaf0fc02541121083a7a4dad5813f3183365169b5f8f4aa8ce9a2cb50055e84ccf38a3a4ce1f67661cf310c0acf67b0dcf031b5eeb0600fab71095a5c5f928a2bd99cf204a4b8bf351483f72f3d78ca62287794ded9aed35159daad7d4e2fc14a8a0ac1d346a3fdd1d5dbb831ae6fd7cd450bfb238cc66b2f8e3a9f35552688d10aba9ce93d1decc3268ffc8aa315359e93a16a9e7b5b8ad212ad65ef9b6942c27ff046acf3ad9ccfcc2aa09caadcf05574d502e14ddc5639a9a87b6929ee1f794ef846d515ea15f3d6426ae6effc830b7a569b004c81e474e09fddaa31882eafc263a42831886cca8638f3a89b47ecd28386c71eaf042e77c96c3fca5d7aff94cc4ec4f612a1cf499c09f9439eb483a5642f9a5043918b77193bbf677da083747c1adfaab819eea1e1d0973ea42b7ba4747be802d91e66ae9d53d3a62850e493d7c49ead726519952fd35a47e6d920ac6547fed4bbf5853aafe33effdcaee83ccbcf7df0e90feeee577a1ce1519eaecb840f483051f4940baf754df7934effd4eac251fecef3e487fd7a5be88ea71288d0391799503a12f13ea3cc5d9d0bbb0253d8fe6bd2fa2f268469cea2ff32dd992e1d2f80e5c31f72cb4c9b850877f66423fb21a1a2b1e7956e387f5367e27e6010bb1f7aaee3d20345f13ea70121b79a14ea8c3441d5167e431cdaf4006b7357fe6fbfe2033a7e7ffb82de906416174f02393c552bffa2b4066fefbeffbd403f9e6ec2fec9f99ec6bcd50feb82c894996d44c1e80da124beb929ac9fb8d793fbaace6fb75ae00f97ee675ae00a1f15f0f09b11590d4d7843a359f0232f3a950a726ec199d160a91706cd5442da40a5bf37762eb2e2d4422a2f98dd184ad19fee0d989694b46df73ec7b9a9ff92b4054340f24f534332120a99f09757c16ba9086247fdce5df81dd8f3eeb46ff29e2852d2054e6bbb01584beccd350e74aeb47f711d8984e4fc7bc37d2bd4cd8929f7a995fe1876eccc888c8b5d02004134c28796111235d28fb52f0244f6afda8f28552e62e7fefbb1f7d904115c04354970675943fdd73ac73264f92095b40baffbed362ad201cf39e63de872d19fed090dce5af25c566bcd0afe336abfedb8fc3f688254224c1a50a1bd86028e6bf01396ce7091356dc10460d6144698af96fb3cdc7fb512b6ac9506a51e82885a490bbfc4fa0249260ec0cba31546c639b50dd108cac7664d710d3c9ec18777699d4473fec759dc2dd5d30af392f0eaab4a1fa73f7eb44178e3b40dce878800706605d52de48a0fa73002a505db6b0445604351186ca4856a354bbbdb934e185c619486a7610c60ea86842ca083f4ce9bfb335288265339b926b7197d05106d822118e1a52689de0dfadad7232540fa99164661a03dfe0befdaac9073c747ce920a7ad346d7273ca906504152a72a56402760447bae7cc1f3f780fd9829143bcfa3e3d9ce07822531ce2e564c1b1e26d7c1dd55095e6d053484eca1a954cdd6f865caaeef7a39bf0561393d5d261f0aa0c8788947a21a54fe587e540476fd3bcf6e1121c874c9feacfd367df06119e88e08452c1c10447939a18bc47ad0eb1f1f686071d3c44da5d46ee8eaa4466172d020cb62d1c5ba8d3d8e21eac6b441d5b2774ddbeb5711d5bdaa98e2de95fa3f22822079dbde971e26ec275c4f2dfa9445a4e39e5ccc171970e9b507cb0aad0229073e8f5d81b7e1d5040d081bee45e9588862383efca3133334bd9b5dba68f1801cb10af722d122193185b277895df4aa1049563a86bc5b8a371606fb849ea9871cb08b81701199b0fcac82ed24ce078820307ca8ffaf12184231c34a2a2dbdbbbdbdbbb595bed678e1cb9700031884822b2e688e8fe54d34250fab38d0d0e19ddc81d83ec818e927fd503d7b1e5f2b982d5b537fcdcdef0189d038ab7725ae4d68ff9b0bad58e9b3b55457b075f75bf201cd3421d233d26070a0a438f9ad3a2113d80becaa96da1f7da94ecccdbd3c3060f5b29b4b8c994a1bc5165b8d3638857b45377ea10e7a93f27b4161ece19fa24323d87c952ce161353e2540f7d08201c3e2cd2227d1002687235d17517951e55608081ab43daa8ce60bee731cf96af295dcec9b9cba375a569bd7974d55e8b1e8ee29c93db56cf712cd69c9aa86dabd367c256b9396190e14ee5f770d069dcb6bbfc44afa0d054d5aaf424e7045001f570c88a081e598cb27ad5c39dbadcca9eddcfad3c4909b61002af5548a03daaeec7fd682d3ae935e85593e7e1856b1575425f139f254dded746dd03932c5d172ddcd684a7c746e59a0a0896ea1e35c952475a778f6890cdbe547e39e33223922e4f7bd3cf350192dc690683ba62308b44617d9b340131737b93a5a31b4eb07bb35c74fbde2ea736355913269ab6296d1bd765e3c271272d43dbb66da7d3e984ea3a6dbbf2edca39039012334fadcbc6c5dd5ddbb40c6dee4ba82c41415d6ddbb671ec376c5902055c329b523b25d13d71c6942aac2c215b8a41d20cb19d1e96907ce0424624e628b6bfa1a74aaafda3038022623a323a6c83218e6489e9d0ef5c8885f6fbbcb088576439dac44d3295eafb665ee77b952a6706f4a1cac96915078e289a41dd27ace8a276edf56ca67d1cd672cfd3a1f94ffc5e07a2facf477b60cbbfc8cc7b4fc3210454ff7d10d57f335fe48a0c81cc842dfb22aab0b9a9459a28746bd72ff42868847b80628b1e62dfcb8046441bc4beef40230b4615294962dea740232b2b31ef3b12640d440211a5f999e722d5efc4daa97b0884d2908bdcd5af433f15ae87231bd1bc6b0a5581fde32e29b1197065beeb1f87755780a49e7eea8bc8c83c90ee65be1b837c20839f580c0ae0218a19f1c02ad52a342cc242ff32318bd197f9718d56a0001ea254c842ee52b1127bd3575c3a78e015d70e4254fa35b212bb637ff3fdb238ccfb2eec1f54188eb4b5b4e7020d25b2cadf9120eb9756bff7523ff64f6d20a4fea1f98df573129df920aaa751fdccabc296ff3ea5bf312ae3916163fea9df980cecc33f61cbc3569020df7f1fc4a340154659642de4b01d1a92780172a22474c612b1a651c2872963f490c30b4a10ebef9ffe06eaf7c0fe7157ff0706c009eab1906a506ba93d54fb3b7063ab4a3a35ebcbf20088babb7f6a777777f7b2b7bb3bc7ccdd1f722b0bb0d0ee2e8479c8da6f01167c22e9b69361d99859d4be3be7d4592eb9b969939327477d2a34d8dda702f7cf4dd3b6c981f2043a6af31aecba1ef73560ebec53aafff7935446867707ef0d4f4ff1def0f6d3addce12f00323a52ff0538a15cd7f3a00a1d29758ea394d563850565b9a4738176dda3244adb06283fd7fd5e785a3dbc2183e876014ea864295d045e92496706fadeeb1c96fafeceab5faa769a178217d37bf2dc520e24f399f0837ed7b9518bfd5cbca8c5fe9a26c9e32d95ec0e9eaed3ba6eeb3aaeeb4e5d87eabaaeebbcaecb290169c82275ff074850feb1478f128ee8286740ccc36bbff4994920ff4e107bb490a0eca3c52e81652a2960d0a40f467f1cf61ca65ffe1a14aa025dc8eb8486e4689f09429a6fce7286858e0e5493033af2501d877855fab4d8332ccc8cfa400f025d08f421d0b3b84b8237ea1214dabfb55d50f7091d6495abe491b39a547b4b0379a9a3a77d28f0971ce8c84b4b72a6c2117474a0996f450df5ebd42f0f51d8aa654bbf4efd6aa17e9dcbe8405d4214b6fa8ffec5955cfbd1c18855860ed462177464199007b5d87f12aafddc50f52c550bd17ba15b47366223eed22f2407e2dca35898eadbabf8d9a2b6040a434a2a414a2d90e2045a88f920b0311af2a45ee627382e07ed0e250ddbd81406ec0eadf6bb9092f9ee5182fb738e830ffab7e664a68609804926931dd9a39ea2eeeea9dd40b57f4aff29456d474156974985fdae247474a0daaf916542fdf2165dd15f809307f0b7583764ddc34cdc2485bc6e85d13113afd25bc91bb30e2ce5073c947f8857e794d29b599c6394524ae9524a2979cc1fa594524e9652ee789d65a03a391d0572ed4ea76d439d4ee17252bb01e82bca2741f5f7223ea5e69adc5a36146ef77ec5621edafb26a594f22439398528db484fa9b926b776299b656adca912cc12d4ab7bd443a58e381f0be8aaee51cf0c086a064d1349ee7b8b1a9ec92030eba1549c7c80600150d0264594931250cf4ddd277c80629da8ecc96ea54985b381e4a981cab3e0560d63c15dfc7cc3044115acf3b5cf84c9a9a46c3562a023a59a13cc7392c0ab445314fc43b4a43161e63c32410c21b77d51a54cbb2149cfc898734e6ddb665fd4558b4f20c16c66758f927c792199a28eab74848488d97ff40ba932d71aa2fb3e7cc59a2624211660c1ab5fd49aa36edda7ab234a01e6d14ac1cf384308f3e8c5d1e27e874da5c57d9e51249231a264218bfdd874d2b1a823bfb73db7b0d36fe1c8ef94ca78e1aa9b87d64ce32c65655ef58b431f0200311baddb86aa5b0b9b7c0787acaa3f5d79cc06a8fc1e7d1f0d4afe1ab053b7554dedd8b79d678a0b5155039b7348ef04fe2906ddd698d5f9ddf4e6a6eaf741ed50411d4a436d1cea84da5237b4d65c6a53db52de1850a6b2acce1c164aaa5cddbc93a79242475451dd4e1f6b6fe613c0093a7a4d4db35fdabf503fff937d3cbbd4e2ec4a18c1136b1c78f1c40563a4e06002a65809498c80f8d10117597811eb6d711e5de9a962dda3a0298eae00d53dbae2536fea1e050955ba3b168693c5e70725a408f14418076cb5db7ee777ea8223b771e00a57e8511050f5dfc09dca2011af5ac857700eef524f388e822e5a8a2a0db4c4c46e05449508e8da1b95143abff32255b88ce228ae1056d15468573fc7d5ee85adb0aefe5e2ebd5cda030feab85c54d89b5e61c185c9cd405a414f8b3ef4f820543924a2a35bd992d2999999999999a5377377f7fbe82ad237d807b3d5e3387ad254a54d9533bc6953cae7e47400d7f928709d5c15fe98515118535278925a8af205c7f35218a2a30ddf607133f395cdc1a9fce232603b81f2b77f515cd55edc6903b013d85c6e05a4056abfebd476ea0e9b41880acacf23e897d21b4ab71055ac0962c488b1829951e89e4a4632881123460c4f1331e1e007f77e2eb8a8e182f993283fb3dc690e8111778885911110ccb4cb5ea41057fe8e67cf0960f51016852e8710d645cd90b8bbd34083cb6d29bbeb12972aabff98f3fd88034bbd3f037607f7fea9d54e9fffc7e112757b39449d2fc5cd55b709705c68b3375b00e43b8bc59b054ef22573a90ee0be4ab9368c6a99b48c83e51d7e38514346d7d490e1a36db8799ca9bf59c64deee219e8f2aeff3a5307790c5342f7b92912295264ac4c59ad1a2085725ec358ab154e9416348fe6e61c9c63c3072189ae3bf1b6509746dd697640d7ed7bf7125d8d183d6533e0f6dddd7d774bd0ad9a50fe951e45572306ca451d0d22ca2fe76b529bcfad4da6a2e3fad5edde3bdab7bb5b8987385470807cf8eefbbabb3b92ce97a5b74f078219eb4f74bb5970bcbb4bd4ddddb2bf686324d5e0be697365b8bc85cd3865bbc39743f9010832313a6dbdf83055097ac0aa35644da5e14ac150fb57b5d33c09d2d499da719e0455b53b7912a455a6765eeaf33a1557bb194f825bed562b8f4657e349d06b57c363792d1b3652d247db683991927327b0746b6363052bf40822f608ee9c1c4e06552b6265305d0ee157bc7e9d3e10547f3e89409b72ba4fe6a297acc5bb99063a62bfc015b55f6dbe0712cc409dac691fa85355e79c6ec49bc590deaadf34fe4d9b327cde1ddb5e3b6f6ea16e3b2d4bb5ee5c0da16a17a832040eabe4386e9b32b5c116706412241fd37efbd51601ee2dfd63cd8b8076a5a6ba1bf2e29039a1ea8e64117453cab9cc47a43cd58ca1a0ccdef4cbc8a4f62695026a10e86f781e4211945ffa1b7532eecd2ebd9fbb19a85375e522c2c5419b5a786386232b04610c65044896d82eefee6631dd3a2c26753ca03a18db9146b8d98aee84b0e5dfb5b51b7aeda477f5255dc8d590ddf48963b0f3c56345564e8b4d75a02c1f40d582f4ba3454d54280aaf2b42eed79acb31ca6cad9bec1aafd286a61d53010ba7bbbbb3b6fa7bdd655e6ba362debb0eb8e64be5280245fb8a61b96aa484a410a7e5e7eb2f4e4064f967842c413213260469702143bac507eaf5b9b714bfa2687c97ab8ad7b269816991a011ecea522e8fac7789c4c11d8d85c72574c070d74e431d5b9bd992d82cabbaec93d8732c9db91e8342b28d33882f2ef1f200a7f12eccd3e0d2428f32e77d1753a462a1a6873732f339306c37bc3f120633f8014943d3c000ed4eb1e3dc152f957fd1a178cdade0b52266352896c0ea851b7701441d5c2e72f7677f7e5ee4a6682d5f87dffe997ea77dc30f554f3fb3823e4f48b4bd1d05ffdbe0a3f6036de03968d5022b94b7b0f384e7bed07f49f16f96b80eed32e9e9999f9fd8d7e4769c87c34be97f93e191a1fd8a2f17d1f0d1a2baa7d26d0ef5b3d8d30045e5761092df2d3800dd42fada9b4d8dacf0baba637aa17bcbdd9b6ed52c44fddc01736998fbe0a949cea7db4462bfd0f1cb94ac351722afaaadf5e9b013b3a93eaaca2ee2743c1964c38a9a8738adaf17702a77a0ace2f75bf8d82f3069d0aa430a89e88571354e10b5b6d41f532bfdf0aaa2ac3a9c08de350d8fac256e987c02b0dc72d7c610b81d75498a3d412c961fde3a304531ba9f6a3c0ed35adbf06e4b9b282153a37dfd8e606163a7a3784a04ca45d59c254fe1d43c453a4c4a8c97796dabdc441cd3486c8798aaa2ba95d7a08098c9012d0971f2eb32db2478b944da94c6529a8727b169f2eb5498951f3148d210223a404f4e587cb6c4be51fbd474b65c9b4ea191da84c409d8cd0a9a474b76d43930d618cc144a9ebb2450bb77bd3dc48eddba4a88d5a5ccf02a88e320759447767e9ecceeecebc4c7ceac849e905e954b7c5193ac992146a1530e959e245b89c831b822490cf0964982e4c8a767907ae76473768419af5acbb2f276952725e0efdf34587e1f8d8e60cf4352e930bee1cb73e9648030498c2c7de94808ecba4235f3ef8897c7364349488e150c9288208bbc35f36c883df0000089e37bd24744b8b2f8a2efe1045519c730464ccb742c76dfae9d7089ab6a9697e4952f408ea57b7e4f8c3746f9cc8c9fd82dea0cb505197a12cdf91104d2d5483ece8871d8eae34915184d4a4287184c452dd232490ea6ea97b844493ba3c03dda324a8d4916259aa7d94c494dadd2bf10a110cba728076829fcaa3f8cf62c93999fb931b03daddfddc747770fdfbf58b948502ba9e774615565c5002208e30d222c654c6b860064cb270a20627317ecac2e97096450b13950e03064c2b7de9c2e096061a0101301b1b9bd00b9beeeecec9c9f902e6470a11d243e57bbf369ddbc25da61021566cfcfbb969761a073ae0c50c908408d99b104c77776fa1140e446ac7e10c28621e1ea640839c9c2d470574e4a2f6d91d924b2d62758f2e99e3784e11d1b848282290876dfb01813df2b1f960a07eb50de71a8353746f5b78e446bb78896cc6251a6189babb1cb4bb7497ee0c8684205ab437323af26c36f3672edbe6fd42988787bc03a7c04be5d9c633209e2d1212bf8e0418e12a30e0afd82267c00845b2474e88c3c8b3fe1c9c9c8943f4e9cea29efb0bcc4f84288a481d8b75238452e4ac0d088ef983e856c4b3229e15f1ac080787632a9483861a47386b01ededddddbd431515156dcf02928c8b9084fc4047ae888bb8397ed48913f7869f004750288d25631e5ae8418b63e03814b73737e03c6b9b23ce8a1c4691b14c86435d6aa89003bdd09165fe321c391c9c9c1c96b15c1c5906fb76f1876930cdf2cf090875bba0804b9d293ab2628900ea1e0d0144edea1e0541441d45f7c211f130838e2bf79c95760a599cff8d7e712e73f0a23795ab2836e769db8f2efbb916ddbb5f76a8b5a685e37c2ef4c016e66b9ac6713aaa169e70dcd45ded35d7be70800bd36eea046f2a4e141c47a9b4b181758b365be88d1c263ab258ceea31426d1c6eb3ae0e6fd8d41bd2dbbea2c219ee86337c56bf6caae3c89656745cbf9ad9796f18d527e7e47c097eb7a6cd4d727e6a14fb7637b74327b9cd66dbb6ed79932edd59d48a6eb5a291eeeceeedbcabc9166854779773cae94d13a2aca669dad42438ebb6735679a5ae86ac78b6cfa6b1ac85396cbec76dedb42997503d4375a462d093958d8b208084a0b3ee511029a8a81e82d8c1a6760e4e104a827052fb3956dd232c61b02cd5a47149cb0f8f09b43081840cc0c8610a114824299212054a0b43423881048a27ac2cd979d2c4451459a228b1d2850c033c498204490633a670127323905c210593cf0cb620f2d17018000f46240963092bc6b4e055822eb6d062c99118a8ec40ccca4919622c09b3022d637e88f9141f6c20c3cb17198078e22e8a5900941a20b183142a52848630e288247ac86287253a70a23519010eb0d8618c1aecf045942e4e20abc1c84b0e586cc800d1153b0863c909c0a80282232950a2892a43f0108689b6a46ac0ca165c88c1e58c20298e70a288217c880289952bf807cf66e551168d27b3309b6dca5a6d740357444f7080c15010548662fe9cc3766260430f110f5a40c1029e98dfb012d963addcb160f14ad54769d3af3dc27283ca35756b33b21274dc251ed2d22fed592fe27c5e873a2db789362cc6a29fc8ff8b77123c9a0f8640297d18d07197788803401c4e9723d651ac381cc5e129f035108c2d84a25fce716098192c750a979acc4417ddc533171de6024d851c7057a84481b07e681eba4c0aec3a210f09fbf44bbe7430b5310647168e8eba3f1ea0ee4b0e300f0f13b0399a4717224cec18831b13c12be8b862c57117cf963ad56dea8ba53e950a758cc4c4326c80d9b6d9f2b1b1d48ad2ed2e978cd2bf376df6ecfadf41e7ef96f25d4adedde6fe27c3a776321d4e732ccc39dd7fbfa9c997a00538473b063847bfec46c0c29c734eb9b18cd2a19efb6ee56fd2b7f0343412d178a9454d4aa92dcd4dfbed97855adcfd4d3e2f699bf69ba6f5709cb6fde9f4f2bb8d5b2432ab360028ede3e33e12741f6ef43c6fd2344dfb66299d93242b4d253bf448f074e2de476b9af6a7506adad81b3812991cf7bb1cc7bd8f3e71e0f89a9452eebedc4229b7b91a38e7fa5481105e4eee978d955adc4d6325be829384f0154aac64032b11ad3c0a041d57387046c85909e12b94d60b1d5924d4febd3106651175d2e4705d7a139693e794be44cee9b3245f227f82fc126c975e60b9e208d9af3d9d4e5276979fa6da2dbb80ae1250b6d4147c09e7983ee31ced60856d8cdf4de8297f829de45d37823abdc91c639fbbc1da7ca0e38dae2afce8d77c8d436caaff8a658024e8f35651fb97b60880203afefb6f09d2a17e3f4bd1e9743afd4ee5b813c77994ae154487bb108aa1fef444b852a0c55f234b4ca7469658f7a7e7ba3623ce3e400b242a8c006a12031d60b0031c7e6a30449e1aa8a4ee1535b56488080600000200b31400001810088684a2b160309ea99aa83d14000b728e44725632980743410ec3280a6220c6186488210610608c410619a25a03ecb91ff38052f85c3d38fe3d0222d316e25f190820260c245857b14914f81a03ac180fb224acd07e6dd598fe506558f9f8060e7e57163802efd19eb10a00c53a9e933bd234cc01300e10518e62b85c853accf5017b62c28caffdc7363d465bbc1c3d7a321a37091f0249869b0bcc0b19ecbfc2560487b9ebe5cfcb3480cbacfb3bcccca6624d059f28bf4c95b2a4d65676d42c8fe911bb89f30935d267b11e83450afeb3635050c81ac2acfa4ed8bc30d2599ca0b9eab01c92a23955ae72911096ab3e60718c05d81dcea2570df424da89799459866b86f589cd07e4db9ce35601b98c8d2234fc292fafd334c5a59a435721ac21c4a1c89016f432d5dfdd17132c632cca509f43ac2aa1d87ae126d5c8ff61929e0d759b8b2e3346af87ba957aa3f3601d00b2ac56593cf01dd4c17f9a71260688e082ff9448a1f533cee7f42f25056887369b2fd7de7748145b039dd398faadc5c8ee0766a766e8534c2faf1121790529c373e4fd1d81d3a15affd87f2385dff1f81e23dd60af6d9e3d363e14a1cedc9170051021e41a53a766b519ce2eb2b4e66bd6727bc84edba1eca26db2d1cb0774eef72cb6eb6cc996f60dfef832bb561a136f19e06450c25a1cbfdbd284210c0c294f26133f7b8da6b6f6cadd63371e86b9a9da4b9dffacc1575533da14db03589740c5a4991f9b6036ed67e9e7cd7f4160020e5eb4c6a77527cb8a005e842971566cd34c032e7ea7f758e375831978818e2d936505ce85197431455a5f935e8bee7d5e3eb9dad5d79ea021a94d41725713d81bad14ec6dc39e9e2f55c462d8b19a1444a51b288e100c7c832cb262bff9f41f1541ba108624b1b26c177df1afd92c73685a59f8343cbbaece0bdfa80492fa14be9f747b75c54c513ff287999505bc3b778b4493ca19a100accb70a6de785c25210467dd9afdf482b4bcf41739cc28ab310aeb1b625d1fc222af837ba50ed1917d1d8f3bd2df1062c353e707098e8f082d8c0a399a37d91b179b0c71e5a05bee2476843b8f28f9602e9230eec3d05dd2028f4dae0e415c72e3aa4d1dbd3967e5a19136d03fc9a48292282ad68fa1944488125f7e4056a6680caaeaf7010e92b2fcb254eaa6a2cc44f29948e954076623809ae4e9ce1bb2da27b150980c07aeb4f64ebfe7391624542b345b57467979503d28c18f1faf42fe0c3a8ff89b42108b31fb1640dc7e2d6a4b13a2bc5ed0a93e44c5ce29680e3151920705294ccd975a5f741587416cb60458825682ebdea09eba1c96e1de3f870afe2f9efeeb7d015fb9e682b80748093f4fb12374a7c794647df2902a4af3eac87b3162dcb562a6c2049e2ea1517d68d6dc0bbad78d67d84b0fcb5b6b8aa162cf714b8230827e1a44ebc312c4ad22685fb8059655843ec542d471176343f2b07a8f36a99d403b30cbc35bd210b922ce5a833be26144731c11e8a194493cb7ec4faf98975cc93d6d5a0809a4fdc3bd6d63115ebaf33c197dabd1370d957c9bf066e7821cdc759a1081c6b13e7529160ff85ad79e53841983f0971107f9ce38a4527d18263efce085000e02ece190181230be5fbc7187a8a271f7d8fc62512d02f62b613096af59cd3ee1c24f411b8f11e6423b35fb285c0547004b6488be931dac42c3b2db92ee6a4d96c2bd2525346e5ae9cd709ca55090a1e3028cda5d523050e5cea4f3cebff1eb88701c0e6d87742dba482e0edf859adf8a184c8e8dd546d89d53d35ceedd236ed9aaed6897a6290483aa34d0a8b40a96e546dfe79cd24a5627af83ff68c30cf9071406e71c917c88c3b53ecacd3b8e70e949cffeef842ade501b250f05e5f27cf473ebd8852cc4c38eb2d3d95c5c87e27c97c6dc13b8b67d056b1ff91573c9e8864a54fcc288218e17d1fbaf64abde34179dc1ac548b0ef69ab3c5d98c0cd8133db63a8ef99c83c321a4d289fa8bd320d81e32f288049bfad9db98871a4d30e8dc6c3fc33e855edc136d0e7d25fd33debaa923589209485d5608168182cefb80502470d55833758f00fadc3975a86547faf26bcb328f93e4ef0adce8000d98be7cd989637cc48825b8608b6eef408b15106e0804a4bc73c99652bbd702e268695c3d206c2ee53679d9006f0ade2915794747e2198001f468d013851ec9814d748bbedff6c037a8d971aa0828626a4a58608f9625821954e389c22d5ba2e9392650b1a74207277dc6eb33569c3b1ed4a73f256f135c2243522136f35954979482e016e02de34ae3b96c1ec550e0915b9414180ac2953cc661ca92436790ab9961ad8cb1352310b04be807e1728ce8383f300733f0c573f802c790632e553694896454c17bb0b2f0d30eb78fbd5879472da5c764e6a43816a3bbd1c2b159c21302f9b30e62894f02ef7eb2244e0f1a5c4667c7b1c769c3129c1b049b9dfd0ef83f9b3d6aba0fc94c1ea1a3d4db5a13bd48131e5addab1bc56c12aceabea260f7f431da3bffe1fbee8778b30e1fb04467675ad52e29b495f67f57647f92983066f919677518a7340c8fd7ef808a9f18b04fff2fbcadb4b5f0c7b1353fe70b5bcea1fa26c763c3b505c0e972c126f928397027b6017176a47c99482dfc5d31d4e4799383585a9cdb067675b41fb874f043f3005bee00ea02c8ffe9000e79b31c601eb16d5f9296be2ba16acf164a597d3d41c5117275e021bd4914adee9e188484a240c032a288e9e01dd624b1c5207115fbe58b7701a29af0ac1980c824818d494becccce0d7ede4bc4eeab3fa2e8d03a4813829589ea347e58bd37bb0d480b1ad56270909c857993c89c3d98e75c0994099d856d237b40f87b7f0dbd38b6c5f56b0ece7d023c980c69bffe3e19baed09411f365460054d32a1366d797c8ba5bb745bcc421b62b3a44c2a53ea453a2779648ad39da354486b5d096df9835e7b9f042c83e30336d67fe4375d163e60cbe8a1a3d5dbb31a6e0393e40125f804c1526aac0033963ea358823cbb8e032fe99f1be429d841ad9023eac1b3b3165dc7b4ef0b10e3172bcac5f15b33def43209e51aaa69a0ec2dc77019bd5de5250bde77eb8b1d9d60c6b160ffb01e00320039b947cb71ad0656a391ab4d1a6ab1437ecfcf0a38d9a2b27789ff52f28af46107a8d3d883fcc01b0e39c8cc79635fd16879d917860e528c4455c39fc0f0f31cd062f7fbb3e52457ae8abb7fc8644e62919e0c8987c5f52435cf9cdc0e44aaae6f0ca68411c68289bf28a13249f8bd4780b13c658ce48389068939436123b401a05239d5623b19d68289a3c16f5b9672e32bad9c8ee84ec6b964218095824461612907360b8bed078c99f9636251e530b82a9327658861c2dc25d3aff1a6825d84341fc99520c347417334146542f19caea81c3a18853b53ab4f1b235fa5b3cf80c3f40122033d7c20a86a021cb32f3fba4df815c56fcd655a1a6d2c04988baac096306e09681adac2f7e53b8421398dc2006e56219441f0797e10835b92d651aa26a31ff31955bbca775575c8e092dc0e77e8bacf281085bf94adb61830390a5e561830035968d78b0f98a3c51c9518321d551cde4ae289c60981f7bb4f23d328303e2fb88d2dd6f445b8d546043e3be24239db1f463c8c3c4fd5b45b148a2a10246af73d9422f9c996e08bb0172ba07359aa2b512062fc795de81a3cd087f305ca9babf5b091ca90d8980650d21f0d0f99390b697ecb614a4740aa3f56580e6ebbb2c037ff943916685d9816b0780d046c47ea31b6f124d90c1b70fd0c3f23134060020096095ae34a9ffc4367c7bf57a9ea130d0cbca3caedcfcfab455f1691e08e09367e1e5183829711462840b00024564060000c2c80c04803482fe6eaa78648446215516fdff9fb6a12131d32e03f88e827ed8967ff3d8bb79a37fb50c2d1cd189155392d5866deac580c2a04e7c6c66edc8e3a71c3a260255beb0dcbb6dbb35b43468f1a336a693c92c8d648346a1b09bff61589da602d4250a2e864f5fd2e77b60341c326d2fe546f022056964c9f7a326b5f04f685484440e03a4cd5d621dcb643364ce8b2f3ed80592b903bc830598ae49bf4c736bd3aebc0814e31dbd0b25195c03f4d5f510683394c586d9bf5f5a1254984aa175dd17e11d96dddeb1e74d25ed03d49cb79cbc673ed9a64ab0219eace2164ad591d4eb6ad8cc64fabbdb67410896d015b21ded7afd97adfdd641999ec5bb2e3dd1654576637492238e164c006ef5ea24d80efb29db372e7c4760cff08fcf8e7ef967d9c68c1cae286620e640a53b597c5724869f924836da421eb6b17d9c75ca3b034e9d4b511a9d65030675183acdf135e389ce4458d78c0c7909cdb534c56af55e3c59e7258d3db41d377e2f66131ed4867c44f7e8ecf7a629d033f6feb703255ce46212ccf4019df642afa58f710eb68b8dea6bd4c5320d4d4aedf56079df491f078e71d2ba1a3a6c1bfd95e292d8914ae9be0bd7ca039200ea9a5fe9c7761a056c45f13a55cf890ee270029230c6d469faa37024f1235b762a2c315244b9ffc34450795781eafaf4e60eafc1a55ab96cf2f834211fed4cdf7b7e7ed3ed7730455bbf925433261c549626132b2e41901a4c2c61c431aa0bc65624e1f8fb44d17034103cdf791243f8faa0b14048d174c31717c8cfe4458ab53cd9ce0b32dcf79749a41edb2c9dd1690734ce93f7b6378831e33bfbc187a933fb82712f884691319af0c5f2c908d0d1fcffc55e3fbd9039cc3fa471e9632cf0d64a4070b1c2033421ee3e06eb23e5190fe74c7638ae7b34aaa19bf5d90a43ce3e0e77abf7730726b50937de310dc86153f73e39a74df3a8e32ebad1f4e8577e3ef39ed23d4c885c9809b3e7fd01a945761ec56f713ff8642080d1145fb30693d2cf4cfce3a85cce808e12d810284422a56982b5cf41f5f62de14d23320836068edab6c465f8fd07dccb23ca8cc8d445409410e9f37caf966d8a51aa4a152f73d75ba96a67c6931df83dd7f47f5300840a19e98eb3f77f4e0a728a133b00d28d6aabb15251cb0347ca953e77efc0e7f3d854ab677f2e617db173454d2f3d0ecd29e67840220a7f05a3954b40c2a6c4063eac432d6e9e197a425f9ce8eecf52f5ac24e0097b865747166f6f2b298111a38bdf1a2bd8bf22c25b8cad27b32a61b2416e8b9bf1472f8d07f1a9fa7321702f2074fec143312014c8e4bbb85524996d3eb57701a7ff7095c925dc79210b1617d4763bf039e89830a2acebafd4a691f1c5708cf2df076ed63ca48133275241aa789f575c01bc851c126c74fd18416143ae5f75114c127a403452d7fc97265ddf301552ac10ff0690f4465d0521c960625e04795ce770c0aa48385f365445d50d3ff9530e977204a0f8a22131444047a82175c251c0a70a0137d62398b2ef84f700ca27799b85f03d9c4c59f772a881b3df5c9b4aa0b73229ddb5887e3f0151c79f0d64ff2d00f5a69528e6b4f5072bb96038d6f3a29c7f843173839e6074d088a0abece9bb38c3f0c2a7f7afd5e3a22c4faef11532ad7f80c815e091d72a2bc15a9d8849290ec50da5bf7288a234741b02083383777a2ed8c6b5c1cfc59ff611aa1de930229077b608416a69d27c99c8e614577482b39da120462a25cb06370451c8727ce2c325bb1ff208d1af92514de224d6658db2b50438ca499bbab411f442c0f31d647e92e617b1aef586f8eddc17ea898aaef5c7d7475ceca01ef501f422d430a3d661274459c26aec64642bd67f97a21c47018cac923fcf9511d80504ac9fac35ec0e15e41118cd5ecf736d26790f1b4ac8f3446ed7dca56c84bbfd09fbe58bc92e9f4256e51e10d0c5c6662d211abacc05f9dfd86d2c19376c856f27b7a779f0ca7bb4b51ee5b613ab07f09f826480548544f301014a3773828591f2526eb7b45236aa23484fd69d985b769813da62e8d450f06f1869681dc6b889f7216bc131500bf264882114c624a8e7f009643cc99c30b8872e9e35fbb58e1cce7c32b029e3fb605f97b7bd58bf4698102fb9831c457c0fa41437ccaba00c848496286b98464b07ae7fcb66defb15e7bfdd8aaefadc14733e862e60c898386e6198679a07ac5548940929385d470e50f7e48df7fa9ebe35143e341987872e6df74b842789025e9ceeff196557179b70d8590e4254cbd830e613da53fecf18ece7b048431cff3fd4b921069a43de83b48dfb766096cb9ea04af74a6aa126e3851be245d8bad51f28b55f3787a816edc7c858a63bdada1aaafe2e1c4beffc99dd2e34a2de018b261fdd8c7afffb34887b109d13f6bed38e7b0094d359e555a09c5f354ca334e072a91a2745f914e2abb67d66140675f54124aec3584abe253cc3c64d40bdd40216c1ef9d2a822e249aad34a530fda7c01e2a2515175927ecca750ee99fbcf8308c237654049cd3d2403ec3c5b60c0d2ae256aac09a05db3733803d0e3297119366a9e9dd914a2da6736afc8dbf932a7916eab4d92f80cd8ce6c5fa2f03e5e2c2548845c6e499c8381d77cf6ea07791ab45f0d5f9d0a61aa7ac94fd00dd375b15627611e79c89389913e9d61c77584d372219e95a3edd0c357d92d378652f672083e55c4f9b58df518020f139d98963d09c40a1ae2945eb1d6261b5315001372030202effd7e712e34ab0c2189c9c2684f0bc2949edecc8bca3c51d9821ceae924d02342ae32fb1bd15fa2d6023d6daa519b4e7a4a1aa27dd2686d2d1c598f303ee0cfe194af048bcf060b084287ffa20c3f54059158f40c500a6e6d2eee2973ba5ba8527e84f1c8831ad735a7c9ed505105397d4165f5fca572b56dcf4b4576a74f27631472e21f851b654bbd3aa6295ff833958a7956bda6d3e200d157adab122b8edb84bdd7e3e9577efa9e7f18cba7d3f8c558edaa03f057d81f8060fa5002dca79dae9b7a4c8ef402a73ef51ddc4acf8d2c2f1862373def4744b8ff5dca719a7b2a54a4bae77e0118ccead6575e360893fcc3d44ac86c08538e8e557b33bdb5f97961173f0b0e90e542a58d5b230a6fe6cececeab18a7552a0c8ecc51337f2dbc6e5a98a1ff956e826c60bb51c09819c07ef7a8093678700cc921f395795c4dc87867797c57cd6088e211daca3f84ca9cdbed2a7869c003d46d45e2d6ba582033daa075d6a137e217b1b4aa704d94b35e9dca9b0bedec6e45759d0555e905f4131d7f8420171e3b6dccbe2bf03e07d642895dc35bd01e233a37f356aeef67b91e10c7962c8b0245fa5f27b593ddb8b598909493258ff03898f803b8e513d0aa943cdbb8183058b0b78f2f6cda5eb11a50ff9cd4680cca4be1ef64ee677231ef64d87fba91ce08f95b2238ca83e4db86914543a5a31aeb47df5b18bbd0b1308aaa2f09d0a875f80ae9d3d91c69ce8dbba43da23878c6e330bb4b13139d9b1937fe4071df1eda1dced862d140062f5c5de115f6d6c690a88d89bc73d18dc9f03fce7f4610096f5cdc0549730daa95b62e8d0cf43b81a602abfd2ce2facd0c51e2563b49dd155ae4c9909abb83afde87277157884188c93445a255399012929ebce2b2be36ec8f349a7c31282849c441b2a4d8c70420d7c333e6ea6b27a7c57b3fc2ad7923427de115157e600126c3ecf252de2d40b4b4e1b87c8364d13c535dba220ad5c12d50730e6f105620953e352b5496decdceee3419c2db4105841496f49506568af0c7dd27f6ed737106cf68aaa37952567cbc3ebf58274703172c96a66b75d391c8364f0b4a275622885585edec222ead6f71ab267e009ffa45cb551c641f10415489cb55855ebfc25cf1e1ff53679cf494dd0910ed37810611d44b1e9bcc302e9eb55ddd9b88200e7535052281c4118c6c11db815b9276ff61050cd4e2522f6104fb619cf8fa1661f99f9be93f6d85d65213f6d0954a4d8f183864431138c98508da8dcfc7483c9e514b12281d4b36cf5af571ec9cd0ab173fc5c2af8ea58cddc5c2190111c06e2c0bfc32eef58276c7327d58c1217fc79df8f49cc8ff2858dcca0554eb5fc2a18a0871e3756466550628b0ddbba1873a50ec65baaaff97ae910e13867e97c219d3f857e35676a3cdf70fa615999ea788bc5fde68aa5d94a4daff86d10cffa05837d623c966ef0772b17bb3119bb1dbd96d0dad0256ee727ca5588ea817c7fb71e966e652aa87f877a85a29568332e0ab0a37762857e5b6b62e8a0bd2a59a37466cf7534b034c8a2cb775a4ab0b9fcb7aba30531d149e1d7c7e1a3464171c221c1996882ddef52ce80fc09026d3e908f33271c3262ab45bdf1bb5f525af9f3cc633b95e74a379b9ae78ca345f0dede3df2c5779db197cf30df23b12b694770468fbf948403d785c08571817edbeaae17fe0fe5be8c03883b686c41ba02e9f09fd95523dc2f31b0c2f3186f8a03ed680825ab6d7b10b051b51be11836f59cd9cb9f26de4457e3877156d6b680646bad64ade895e3917896315b639e79c7735d30a5bd9ff8a1fcd627a91ee3051249287044f424ca0db818f31be112365680828255928ceb5960a97a20c7e8e6e3cd3a56020ada6b83279d5993d9dfe684a7a43900087a73ca664b9893768dfdcf2ad04e9dff6501ef19610d24a9d4475258f486b7322ad57582ec523b8e2499a6ed73d0619cbbc74be556df1aa867ecabe0ea7bef5749c96ea789f3c2d05f2d530cf0a27ef775a7954026e575a2c4ab48af3190835bb4cc7ea3a60609eb085072af39b8cea6ad06fe46df13c73294cb1e6e6de1aadfb92cb52f1189fbb14641c2194b62d1f21011a93ae462bd96a0b4d8485a2976f78f7ef11c430cbd577edd441edb672fb920b913c1f29679f1700093b03553a60da593a6896150a449c65b92bdfc2d2d243cfe3d715f6bc03f661bd480930a6b9fd00832692743f85f73ddd9a7d07a76e3179a8af632e2deeac3c4879cd3e338c06b4d6d30a19ab316811556ef9f1e5a5db0f0d32ef091d5e34b70b18f482281290fe668075450c409adaf76b2b0e8ac2add6bdfe6f8786fab260e9ed80caae01753a1741f5a0808935988a984ce0d10ba43f409a652ebf1244d0c387d892267e2ecd53270f3afbc134356a0af6f6bc50217df2684f7cba943226e154b7980e12a0692e4ba2a1e4278fa5c106696c213d6ce9a1f9af5b4a741e5e6e720fa50d2460f903796ac804f09400b43494debfd0bdec68da399b025740674a2f160e043a83d09d26c48d01551efe44d771e3bf5d7151041ba0eb4503ffe1e0dd593ee826463077e0094ce7f0553ec4d12034839b5369c1ab2926704f65d635a15beb3368105ff875b282edba539c977c12cb4ec09401fb07ed08e3d40d32ce3a10322c9d497e41fad3d2d604b70b4b563a9ecf16a40b1b895c68b9984a767719a845e777b6f5e84e9b69b8d8ec3b19a5e4daf004b45c74f2f6344ff826f7a6032c6b1cc52f9a84717e9c8e06be670dafe3f6396d0b02c60b157897849b3e80b6a46c1d4a196a168af75b41569aaf55995dcdbc7c58572e6f16b0c462d933993b5a2270f367649ac924daca47db43aa8619374995d5c858370072bb41d2095d73b92ac0a90cfe0a8ecbe639a6905f0a988870a9cba45a26f0f8d03b5daed2b5cad08e5be8c3909e750e339dd32ae4919957bbbc89669a0bbb4973dddeacf89cac447083f7c5aefc010052d4c32f900a86a7f44abe8170dcdfabbefbb524077b1f9d1bd354ebd0504363177b81197b40a84eb66fad679f7604984dc12bc8085d54dcf3ba8ef81bcb21a6d8918d1891d11be385332a53ce83e04d34d8ba413088c657eb381f9273ff271476803b474c4bbf033da4dd7c4867773e408f0ae2b8c87c742309bd074e771a03d755bb9f891ed836d1b49931d11ec75c9937e05a6204950d4757be8fd23a255da5d1443b340eb4a6d5d04fdca0fc77b4a1ca20bb3e2f387029504b87fe7468703860421e6ba32cfc08f1f74eab4778f5e41cd93dd885b727393378c08ed28c3fc251d39003df97bd668e87c52a4e76d1915f2f34a9f0e296e2a5177da5f3debee8baec94f7df78bc460522bd0a4f2f826a17e43124770849147af5fb14df18eb0c601c7811a1d74022c80becc8735d9abcf890484f6d4832e0ec97511b0235564bf6a6d9dd36188effa532d668c8963accdb881fce921de9b0fed994e0f497d86f979897adbb148991b408f03780f8a20d2f4d3adf6917ffde6ba5a342a2178bde3118480df53d09bc8aca227d37f6c7517fa94029b44b48c609176a0c29c01a37580687560a2682ca8c6e2d182a8e21b2c785cc45e451be8b75e346400a4489839c0652ec4094d2739aad2fbb3e925ea9250bf766b0ebc3b60004e71db286ae1955d39fd13bd23961af33452b9a02fcce08afcf9025106be7c7448b4e8b1a729f10289eafc7553f4f11f446afa96f73048331b76b819714b0e34164818f987e88e4d91236842b8b7696eb676921158fbf84747ad429a8c06c5d9a92634aad1d7dad25cfb92fce5f2c543bd08fae0764a0bda01697df8e63cf9295b8d058f5907ddc5dcca17eeb3b9911f49f05e80c3b7a51b935a95e60f04fd38af963b3210e965a0032f9dc88679143e8da70c890ca550c44f04bac7e4e12dce6c77b04124f500aa71793935a89d72328a0c46eec50f6aa8273122bcc27fca0a7fdb5756f002a41db8235914690a5d6800ac6e15661683d58c1086cb545479138b25a7d6b8f2c607cb1eba4447f537a209456b021631374ce0a840dac597ae137eb6e0eb931879de0ee1a967a224b21e85d518f27280cb98ce4003b1ab3adc7c6e69bde1f4264bb445dbc4dea7a965dca59626a82ff107be745ca7a2b801ced03e88fbde369c3fef2e48acbfbacb168671512f51a387763e2431db1aa9c10ecfea44de9a94add3103fe32f32faef6205e54abc084edcb002497c1d6b93e1a751985a4d853471f99129e2c7f1892d2a74149ea393d9c426968af5bed86d1ae7c56004c48fd0bc31115690a403a2a006e8c6a0fbff5efa07fb6c0720909087d27c6bee653aa222102a18c8a295eb11dfb3adcd961744088310286ab4f41d169224a62cdc70054016c6e022cf4d339c50cfb47068aad8ee629d680c7d6810797130cb08c7fca66e1cd156a9ca41e508b077564fca385eb4a981debed0857bb5356bd184960efaaf4b36654ed3691405359e88dca4576c6437a9fed38031c4d89082093140a464a2621e2743831203ec991985a4cf69ddf5d30bbb785132b1449b6eeeeffab818f74cd706e59a6ee7a43c899d7c6cecd2df6c2ad50f52836b72e2a4c8ab92dc1da9cae02850eeeb3a15a4357a3fd6cd34aa496e1551477fe2c2812f9b46870fffd1fe17457ba0a5554bd60a62fa33c623c541f8233632f40f4ac8bdd4cfff1a98ae02b620afea014299d4b570659824c56ad68988c8572ef1a43f8b703cd7cca7b46511a1c5cb2e520ca61b0622e4e1133cbc853874b1c8caccd9908b1d5b0485e483e1e8c6f78ec613dbb8c2da8c6da198a4bc90cc67244636d2979b5e4141fc229f29b28b3a95f7122c60fd5742accb3a6e761440cffe972bf579831b66638eb85d02b53ac59c6baa55764927fbf37b8e3fd7f87c48aa2575daa9b2cdabd4db67f21c1a1fe5615f6d23e2ff7874485ba647227f87e15f9e61ddfc18ae146ef673cde314231e858371e3817776ac852530267dca9336388e41caeca28d58cc35cb8dd494b4983054a560f26f84824c45c3df087e6e153f13169217ab05750af4000ed1724cd74ce11444a1bc84fdf51e0311b732f76676bc24e8ec21e5f916e38fbfab5d1fcfb584042166601824225c1d0e2906f4b99d41a3c1d15c520ce090c2f8d593100749d758e069545694d22580fe5e30a68b1c6c84579b6ccbc27e82281f9ba4c0226e5b711f72a486bb5b3c88d28f04e7dd26e8cead2e56b353513f0035bebb00295d8308b789ee078fd70ef0eba00a6fd8abf99ba60d395068646d939d0fd29b7046f4746b1424fd000d082aafcaf96da4fbe3bf29eef40f41b474eaedbd275bc24e1ce7d49196b5d25d19aed98a7112803c832d5027d094f1ff8df8a844e9e1bc583fe6667278293c4e18d3391a63af18779e28bc444c67ce512c27169e94a7cb414c6ddaf22caf6b15960e0085c12fde5e4486e70f9b976c15d49b3038649e887eb3d526854a988940a7dd11d66cff1a164ad2f4841331715af1e52e255740f8e1452b5226addc7a835245bffa84dc075100a44d6076f2a22095143f6fb0b85ca4b9f1d20f2fd9286878bd73225d1cea921a0935be17eaa5ab1bb4c7fc1f9ea5a163177a9f22c35869dad879edd19e4acae04e702b210c5433d00a37471e614198675780d4b8d400d6623af3835b9d9c79e03cbd5fc4d78f054c8ed7f5b4532ec099f74d55a6ed9a5dabf26ac1b2405881620774bda4e84eedf82fc00821af62e6b23cf5191176901d0a29e312c36090fdb85ed0a033aa65f6769c5e0c1dda6b097c785e9f51289889cc20045a68c07e6b2393dfff34348bc07650edce2fed67063f6e476b3fc39a1e900b3e83a23cac1af4390c8035cae7024c5aa3531998308016d1ee6b2958ecf3daeb75a04db934b6fe44220488e24630e2e95bb1c239bcc1659afd508f140bed23dbeb73a28ee8e63565ae523cf35556dcbbe45daf51806ce63017a322eabd06a9d3e971130571de756f37c436dab5524649e9776513d999eb39d27a34a8eacdfbf90606d8c0561b68cb85af6636601177185eb33fec4ba9718c684ed24c602acfed0265e3ff16256fe0dbf5100c702008d2f9f4f69f410921b2122781971cf0a7c5d0423d848b14aecf4d341ba787421d07835f32dfac98780e717fd8db488ca2b331619c15695c460403cd6657dc61780221346fa4aeb3a582a670d6a673653ce625dbab6e5d3347500268d44e9e46bfc3e29b8717a67748d88df0028822dedd132492239ab0b2e0ddcb01d987f6b8bb89b0ec172a3ce752f857d91319e33afaa47f86f907539c797bea00c0f6c5d3bafe233c4f615f333cfabd6bede96ddf389632f093d475bbe7db0beb8935c6192a5d4b6172ea0970507b1679e7e39f29c58854c1888b4636a2e47f6aa3bde4f14830fdd497327ddb0cff4a5fbbda94c84ede01346297fa84324e503082c4f43dc4026039fdf147ce02140fc5c9e0db04111e017b5e0c1e42bead4e93edd892810f2538d7f9f5457a864feacf734c7050bb84c641b17ffee2accbf93e3aaa5e589f62a4b37f6617131381885b984d8e6572152b8ab6c8020baacdcb70098bc6750f458524229ad811de6bfe7e785c4373a7e1f6d662f92b6a25b3e275a06db2e26201e27c5345c43a391ae9684654cfc4d3e33037d58aa2dd7b81ad58e393b36c1549b95a1cf6b3a2fc2c7f5d0d596fdb2632c58d176d297182418380ed1d7372e2e6c86a82b4b2a5110879905d34d9c32b5b93a49cf673eb819eedae40b8a1b7e03004669754c825a76043bf07c4a9f7cef2e16151a3e9b78b22516eaee732e8fb93cb2b66f81c37297ef8501c2421b463efea7924690db974b22653c45768669a5ada4236828b5a1aca554bd2cb427410b54501c3783f14616b88e3ae287afed1f8c0c45e7515f5255c9adf38bd0ce74c130897d798a1208468f71154f063d684aa85d03db423032449c77a8b514eb79df54019cb31520d6beceed81bfa3aee4941ef0f807a17e66acb5603798816a36b233415dc3d82410e7f74400114b8ab146288690b229a1101b5186469dfa8a05a501084410c67d59083e21db572221b8df5887711164508b580fde1807f5721ad7c5b5ec7309af5325b750343a53a9273d97f5db60bcb50335059f1ca8ce48c89679eff280244336849b8d68512eded58594ba027209d5d348387e3f688ee1a05b451f7f7b2159a796a8e4b2eb3a913f6a29194e953da63f8ecc0025fae86e9c3d53b7c29c514cffeed270c0b89cae30c0b72bd6d1a0c8ab1f8b3f4554511b5b753388fdfe81a001b4da40e85b1f80832f4c45872e8341c4e49f65b11285a8fe9b2254428085ab847ef036b4e887c51fe355d9fc62347715ba7d27b4bb3b5d98b093a9bc0de4f11f3b6f2144e862b53d8fca0c806bba063cf99c77586260c0d811956af670be903d8d4b2e5426ea51dd5e5b8c04b57e6e753333134f04821f8e7df9edc4ba5c9598875587a488c049504af561f04525230aec203c28399882c150a51bd8deca883a2345e36163ff9036bc0986043b40a67a80dc5ec4917aac901c82e033f4603616586d22592f292cd8e92d446120860ae2ed0c3b96807b5db4443760eefaba66458dcbed0b13b03605ac815a03a20920391a88db346d276bfe69145ff88edae4f7f2e40a4b3922c26620bc98960fff8887ea5d5e81dc5aa61c499540a62e2a49791d2c590b7eacb9e376c651965d55231fd465600fd8d54a948a34b28f9d811d198fcbad70c586830af6a283b31fd79aa57d3769d3fe25077d7cc97c03542b8358fe448af5b91bf00d29b454b71d5c3a1481bc9613adb0c131e9cbcdb9e5f50709879644aeed4023fefc459c20d2828742f1aab646a7e4f94cc7ccbf0a6bf65fc14832edc89bbccc3ead50e8961aa11a4772e768b11e3b0a115a52b4c73f70269c785a2281bbc90272de1fdb497c3cb7624f88203626a9e088310547c47c8b6dcd3f51c957b4c7b7cba2a8d175456fd777b682b487e91903e79b21cc4fdfcb5537e97931c36aa1cc289d76fb69d5fe4a64915adc0b89d0b32b37ccf2a1253b747a4f84af1b6364746f50ccbe7e600c572a4c2ee1091e4eaaaae2a186e781390089082e0c51d80cad4e21eb5641dfe7bdf1aea4791894f9b6576dd2f2c203b204b87d9d0162c04ab74f67a39f100942b36990f3f6398b9a214b1349ee2e15f283a3175f974d5f4006fa39739f2490c2723e6e0df3cdd6974ebd5618e33002f450e5498aaa6d44ba777776cd639ce8f7623f50757be33ac00755034a3bf0e7a1dce2ba90f5098b2d9a259bbf7859485fc4ae7c07601349a4104145dc0a1b9155154169c095b959d3decd80fe3fa614f62946c80c591316890d4e707be347ac7cbde089b449f03669320acd1bbc603f13f57fb48d8f018e28bf01209cd8e3847971612bfcd4dec95b6164ab68daa483d3389b5f907f3aa58816487c2cd902cb4dd37d0ae8cf852814b9e04dcfb97b5197318e3b238107dd5010b390839240776d4c761effa70314af798b7aaeb7186f1c22401fd49ca039c99ff3e159c85b11fc0dc82b48365d5b19bc2c4a57a60488285f7481054dc29239585d695237bf34e80e25546a517c6d517cdcb1d8449108712cb6e11363f26287b0bcdf4f72852a787cce6f244da1c44fe5e8db403849091ca254497422c1af8372752bb6bc378b0859a85285356b414c2342f9b27d5906bf840f6361ae3585993cab87f117a1d8266ce336abf1fa6e434c9061c75ea59bc4538b55fbe247f8c46cb90c1c5855c63bc0ea4fbbb72994f11426bb3d0cb440851f954712eb67e3791738fc762281a1e6a2f158b268f2a17ca0855ee345d4f9deaf7fdd4c50b6520d308b19421ec1335e03f06d3c1a29ca849636803957328698cf96eab23251eb7bd58186d2eda89b215b210d20013ddc34cb1bebd0f2b8ff39f218cafac255d054653a0a1891f81116084f412cc50929d04c3201034ae24ca3be5bae40010056b6c79ea1c5851a6b7c62348169755142f112fc4b011048402e60930d59fd89bb6dec5d034bda1c9c93b9d7a2c19dbaf5806657b027ace347691427c99358c647a9508271266bf8bc86593a364405ca440d5ceb94f7fb2602312eb4129a61cc33f60f8ba8a0d7b5a52dcaa8b5b12e9e8e34a600a2c43d099802e2a0b3953325360e4d74924b71099e704e4d9bf336e67c67732df23ae38d0fe17789915e3d8f05804ccab56f52022500d535252ff596bb987ddac198dcf5c571a06d33d6ef8d29626c8de885ae702469ddddfa97cee6d1eb2f261ebad3dc56e96cea1f702b343ac67930a05e1e32c70b55f81467ae7d3d2d301680563d72dd18137bf6796bd193ac9bb269e36cd271482effe005cd624fb67217f96aa14024833a7f39ee2d41d3ed3ea0b58be9f808610a499d50185b448ecfb815025210b3124628a1c3e5e34f05a7ab1ed1cd34f4cf7d70489c50517189c1c75548be18f2f2ca8aaaf41f27b6f3a72f6b72d6f55752a8fb89e341bcc5105fb66bcafc95cad32a1f0bd01f1a5d3dc65d9fd6a6eab4a7faef86a1f997d53203d5e41f8d44324b832d7d9bc802fc1ea0878da6ab6b9e4fff369879d2ad69b66a6d9b4b639d8e61ce19422b7f33bc987e0b3d518524dccbfbb5c85232c5788680485400f95257f3abe9737a3023e8203f21b84a9c8fb3eb9f269f470de4f00cca7b5d1d8226347633f96d09210700ebb44f11c87c041853fc90be0750a406f44688fa84871ce4db07720490f10c5fd0a6986b229d3099c7922dfdbf1d979cfa53d23fa6f45190337191e36d44cc15783d3bd5738f2662416a07e9fb9f4b4cce0660b5e9a50c799f71de2c2760c9989ba128db6e0790838630cfbd1dd07372af7cce47d861b04f6e89b51e9371f18019945f73051c9dd6ce0ba3012283f3d2d94278d1e190e32aaf88cf4ecd800d9b87885208041035741a9d8f3fe8b030a9c4814a4e148ef75bd0b2088a0cf871c29b61b1822ec73dff237bb1a44cd16a72b76e7d37b1f1f9bf8e760159df7c144ee4899fd1f3f488ad00d35c0be32ed9af78fa418c9a6ac2aca2ef8910604dd56858897fbfeac367aa11ae19c723916de3b7c39f313f39db0817dea22773954569ab5897559bca9a0e2c5dffa278c87b0039db8f1cdd352467e3d74bddab237f6217630344228d1a127a692167bcfe1b69ea00856c234dd29f013fcef4774534f6a1ea7caadfe1aae4c559ddaa1299c4574ad00e63c4c7b656c333ec451bdc9c0e353ab7d4a3074a675f63eb34a45c6d39fa9b0e9fcaff905592920f59e31be08e7ac90f286e3043b9efbcd860e337acffdfb7039d3a8f02a3c01152a3b8dd4fee97bbf7634f22435631b2a1799baaa80af3b7d440d12b4f38058d4cdbba9ef10f991d0d3ed0402cc0e1c17933ae5332914f7705a3004d79d42300dd0b3da781a1d73228c4d4114c1364597bf1b9bf27b4b5098158ebe109c81121b221f5149bf8158b0fb005310afde322228990d1849a66c785e287d28a81cdda7b77c8049ae735df1d907a2bbf468182178b6f4fb0c453fb5eedad7f063de423b9ffe0344cefcd36dadc18247a1df132a17183ab00f95b34134d58e405e5b48094ef64e7075f6faed1a6d0082e3375dd79d27b164d05be783455e662cdb1a20039f6971bbb0bdec3f6a2f1c31e50db9ded252ca0d6f69f849b5cdddb5ef200fb54b237d524a95db416dbfccdbd7be7e1addc64c8aec0789b961518cc86b4c8136d38e73125032b15603f6171a7552746aeac5f14aaaaa19c13912376a409140e1c07bae1d81b6214c86fafad1d443fa39f719002f0f042ee36b084193bdab73bea2233f86a1a7cf1e22d1ea67ea593fec89dedeba5a19eb2110c6ae6db9c61fffc757c019b350729d4a5a2ef01a7bea79dfa48ada3fec7c2f2b2e67a8dd0512d8e0fa2b0e3321a61b652b404b644f060f9d6698962d745c7e02e56e1e9750ccdb56093f6a028ab91ddfde9a601335c22777b608a49b7c7478de830bce7ca7ca373edef1140b02c764c7fdf724492d344c2c5841ccc0a8bef8bb80aace6699348c626b69d7d6d2cc6d81b0027c8829d8c5f54d90e264593d4da0c0aa625c7adb49e7919539c04dd30a83c524f7be56425cc0bf662de8d97148ed3848e7a806373ec83e5d182c5483f4d3e698bb664601f49ebd48c955cad060b4dc37d55574e5a65fc04bc37d50af493b324d36144d97f653b8343c513fa17c9a8c32b8f684dc7f35be3cff595c4fd752cd8b7efe83b7366c32d4f0e9ab6fd70122d4bd21472a1e302f06f77e739fb203249b430a23007734d76cc5c02e03bd176093da1b42ce3c3924df29b4ef7a08fd112427091311944eef862567ea30d4fe1684ee497f99cafb55b8b942652687f0c3bd231e2cb5367e1329ff8b520344d9aa8080ef633c5bbb38e04543e098f08bdb5706844fd86c0f15836c1c5ca23aa1477646020214305d320e18d4810e061cff7aeca2987bf042765ad31c1c173d62a18b04e2529d1484eb0c5acfc85f8f5501702a840af9330ca8d3302a6301d1c98798ad45ec89250bf1d1b2842113141d6112da8c76ffb0b2350a425e72c71f826eb63bc1c7e7ffc9d762fbdd2a53910cdcfcd1e29214d8bd77c0636dfcbe1201746e89178963298f42638129841a2ae2763e0a1bb7c88eb97e38454bde21c2c084e7402a8474c9d5ab556480047b34ecd1a358e476a073b4835a62a918995fd1095bcadbcb66e2df2e43642df0d2ade5eda1218cfcfbb0e95472d29481985f2ee5f54a4c142c16210e91fe1a9af665e0cd19984e1daa879a2ac7105cacddc1e9c1f4c60456d5d5cac1ab8ef82d4493c0d120518ccefcb9501c7e03189c086cd67b8029bc6e14bf08461d167e3972edc3d5da3361ccd7d32f6bd4fa558c3236e7c7a01310e3b3fcb71db58c18e6f20c284f2af8d2a5c79cb935b790925ff7fb87f48e1a4687e0457e8acad7957edfe24757b9ea1a9ce809cd830a1bc70e0a3c5b16dea1e6423b313f3c943e461cfaadb71d8d3fc1fe0eaf30062d266bd10721fa68f5a9f290d2a115bfcce5828b0c2a2160a69cac6f006d7df0612669ffd1de45f4a1e806e11f259fa54b23328e45fccdeccdabdf0fd83426f6f1a53f21410d1e8e7d216d88b4fc42ba09579f9e897a1a5256e361268131ff1d6282d52d5533f3f0153f470089001ab56f330e364264d6cf6eeb0244ced5962497bf08a8e0da7d67bfcd3d5ffa9130e3153439ff4e4b67671a07d01f7f71864225a2e8cf292cac3dcf3caa0cd89a0f9f54a3362c52db32e3b0e7cda749990ed6f5ed226d2c590b3210d77afd0092deac9f12df246381d8ce19a093061b329122d092484b22867a68ccb6121e3612835a25ac89a258e7d18255c42f434fcd4e89068bb87db6fa52fd4301d15224d3ec2f6ee0b773aa894b13d8314fdae6d016e5e481af2e5e9307c5d69900138a4670c3f008152d4c5091167960fc0e1d42cea4dcb2c2a81cc5c855bc6d5cd746526a0c97e04de2b28f5d871242e2f34f4003b076f58590324c5206df7ad51cd6eb551d0420479f88f94f68b41b459070a0bb35d06c2454daf7409c12fc355b283c373ef940d70b8eea83b9269c35026ff19a1e667c6818c37b227028dcf5b5239ac25854b1def45cfb0c4c83d2af48a83673bc09c604ed49da314863852867e0863b938470169357f97f362248cf434d014d7123ba5082590c878bd21081369c1dffb29c076aa88f752ec1637a3687a451664f32a396dab1cf8de607d9a0e1794388e4758c57579da52fca03d7518711e91aee226fe1aea2a150d6ccacdaab7b12378275f259728410f072dc85f5002f85a0b58926375923a05bd805a989d396024efde6c0143fdc7331690d12d0f3923e02462713c5694ea347683957fc331ab8e2c5e5b40485aa4599276208ab3804a6cb00c678237cb7a92309ded68af91aca10eeac9f5188d677eccebcf73aa278339bc29bd93200e2f3418ebe59076995fcdeadd61da11da3b161a94ebbde6bcacc9a7b2eafbf2f3b68c96ae7fbbdd4add0fed714e0fecb29267ce61b161075c42788b1bc92ba1ecc63a2d99253e83ea4097b7d3c30d0e32a8740778d11414bf5033326228ba6c65304c74fc0b0e72f7d02ea8c4e5a068d03a2dba4b7dc08fad1df166f4d3feddd0dbf7db5804d522793d31ebb58c8e86d6f49bfead302ee286896fbb1b0a1153b6b836ae6c6f7e846ae49f22b44d8ca58de9560db47597c78d2fcaec4b22c6e3f221f392d11f6842c635d4a2fd95f5f0a6ec3195b96a55b5307122e7389ba09abacac7f3d1677a6a51a69fe3e4a2e44cfd2fbeb354d59821439622c2054ffefda9029868971b44ccf85f0e9d9aa7fbd32c41ddc56a92812ef76369c277817bc2fb938b9fd5e1605ebfc8982a33e0d81d9301f67547bdc006e29fa68e692bc9f5370ce3eadc5d6383be4c6077fb4bf55cccc0158c4fa6388aa578487421431626aa1c8ed1684a4e57365f5bebe7c67b86714c9ffa79d07f49b4a98ce5d0410db7e4cc603ef817b8fcb2bf36f2c2a6a62f7d3af6cf518d3c286d51980b7ad4a1b653888f31258170cc10c7185d4754bf7c2ed31d0cd00ea59d05a8afa213eab8904aa9b551981914dae77dc0c1365b466cad105f71d5e66acb053a2ee14c67b677e73f5805e56836d89a1a5babe4a867ec459c8ae9cf8a21d2dae23b2924a152c30a8798dedc114d1647af48d6b2d02efde698d2358353ff595c57ddb740c134e5af9416deb14e8379a906be07705e922e1a3e97ce854e97f460074dc42fa74e767b2d787b54e820d4497c8898248de090fb55c57a2668dab54d15c4fb0ea4185ce0de0af07bc9d077cf6d41fce7cb70366a5988fa02ecc278ae31be4b1ea43f8c75174143c4a1eb4467e8d9e53e399695f74e39e0268540c64d857da01b8980f6bbb31a83b8eddedc8d1942aab7aa3c1af9175d5984ace253a154bff0af1bd4093512e41ea1a27db9cd44699baa9183b9538cc488d4eeecc13057533987a9f5d7221d612317b844397f660e25af7881081bc9be753924ff8193effd6ca44906840238f7b990182e999e86fd03f5adf1240f0a6d37ba62b801c5ccc7a1c6b778547d386db484b04ecf0b8e5c238b66a927f7dc51c194f537abf3a5675a72b9d6a7f13f41eaa10c82f82d4d047becf939d2475c0a9259846c4491c5096541b76f53c81081195d27a45e65f39e0192c8eb93f90f49278c402641d62031a86ba056ed7a8ca41c834787accffd952096b72b3a4f3e2e99aed128cee8595d96ddcbae8e75216ed96b0663d0f68fdd366160745198c8a6ba8203dda8aa7c579a763f304a71c4465efd514bba8f18511c566093400c672d3f4a23d2c1e21d077ec13a1ce9bb646f4c0f7fa3ea4759f4e30f09356251e0b3eb3c093c32d604d7b267360f7d2f799c4c870185160b34f22c077ffab2d3a1d1ed75cb4ede02afb9d00f852b881e391cd2ee3fbc13e3ac4423a32f33fdf35dfee04be06d5b42f00837ae67d37697af1df42fd5fb852810272df5ef20143522def5b82e32028c1ad886fad5e5335bc370618661dd9a3a4b4287fa7c97ab861684cd12dd432074614e9c22b996c03ac3ddb2f4ecdd21be26df9f6f70b29f13852a7957fa03e57803138a287ead55e1d7dcefea0d2a6681a91993732f72da728e58f73a4ca6645fdd0c200f20eb309dbaadfc541403f636eae321b0ef55eb61270a1e6d053274162ae0894224e915089a45fc1ebc8e8f97d67ff75ef26a007efc803d79cee92bc85e1aa561208479dfa4f816c9d7dad4573c622faf13a969727956675263f63c106441211318d9b5589e3c70ab1f4f53a0b52405208fcc34e311f0d43c43814f6f1e2990ac5161a0b65911a719354fe7a558036e2c246cd11bbe0a1994654cbbc3509213175f2b5142081b2f324d17dc2bb4b3c334e94653f0e1cb1fe43a51ed4637e09e8b631190d7f617440d2b5400d9df7cf884f7a9445cd45fba40492970aa004a9b304658784105dc35d6d6e3aa050d7e36ec0a0ab91c58d90b0d89e9099664677897e32f28d06e64ad515867d79398b4b76262c3b0297a18336913a363d230b718643ca848c1f449bf4e61b5de0468a087aa109293a40bb22456b6e057082d57f37b87fb1e0b0f533a81c5d6596f4db62b67bb20a22901269ee3caba879eb8e22390035ab1943bf7859d1315a1fcacff4e4091e796f27c7c74d5785d0481c88bb8cc160225b80a88cec415a16fbfa6bf1d1b470c4e5c48c0028f2bf9fa4d312b2d7761a2716279177508a0da156b08458f992d06ebbb969fc34f5f4657d7db020f3e00e77471e9c530daa5e3ab58305df3374e12b06da6ed1efecad336c335e7899986a6c1fdddcd312b16a88182d3885db4067c3367d2eba05edcec698d0168f50aaef5ed35633b785808f05367445948ec43ef8fe424b1ff37320651bc34a3f4a2edfe27b9e15b6074419ae9a423e60f758916a58ef2845ba49b908836784eaa4547f1b15495b1e97879f301c45e18480ecd61ac543ebd2991ef93bd00643e92eb70f2a5cd33bfabcdd0e63bada9c57a3fec4c93ae3ceaf19eb9c9a1e18148d6f10cf12517dff4e4d0f997f78918bcb99130ec28a970145edba04adb193a536ce6e2924b6a9fa17d4cea32090b361c617e4b11357b8db79f21594ea4b4936242ebc1a0b40e6eeef20bfd031f857bd148b10c8004d2c7663bea6d4948558d45f34e8e010f841495accc42ad76cb35d6eb516ee945086a165bcf21705099275055cca2c67274925769eddd9385fd2d004a56ca68007bad4935ff79cc9dd0a016d6d8c6bfb0d2aec739fe70333f9e8f76eb0c27323a0c339815d35f375f6ba74259aadae5c95e626add3ca5a58ce7a21e3f03d0d809a7c6b8801be73b4f0574f522508504e4f66940a323577d8a2bf9ff575947902810b248af4a60b1dab2de2ec6694f39444adf1271c2548a58457d3952f8314e1f95b11a91aa656000ee4bd1aaca9137fddb555ce2bf43b54b9cf5a16478a7d894f2c4531fff98ee893a4376f22cdab5caf75d5de6e9eb3b953a3119e9d0eb6cd3ff760e1df8a0787b86d820b1789bf292539775873d1a5afad55725d71ecb6952dc41ed1cab280caaf87e0b459bb3a3f00b61a65d4f118340b49d044f26fe6788e8278f33bbaa3b1795585591b881f53811bbbc1a03ecc6cef5b9fe0fc7b1f87a5e2f4fa1352c6e0f7ae164ee49d60f9bdc1ac8c91f6720db12675d1be79cd149faee6541d6a9d5073069499d48854853c74b9cdb358498bb3023dce5a622c674c5fb77098bc924f0213b2995961e7b60cb8a5aba039d9460de760904821086efaf2315b0abd9d3960977517c78a724c7a2f0075467982f14b03bcdf4ee4529a836041bb1040f8f3efcb3f28a230ac032d8de0c44954b5e00544623524acc09513d21ace988dd32cf7d0712781fa0174c487e154ef418dc0be91360de92db8d0d1ce046a2dec755d859bc002d2761e0ad88559e4bf9831d4083ad64cc2b718f5c1aa30fdb889efb221f54ec614e0010d5c2e61705f0a8cf94bdbcc53539133fe0c35162a65537fc18429338f4d4be2596980ec0cf1ade5af7625240ac2bc3fc581c33600bbe75cdd21f0e7ee388fc2c34594db7ba5c540c81cb550dec12cbde54b9582a5bfc5a0bdda5a8c0c5268dc45d9c05862ea53fa65c83199c07648060f6bf6ff1dd4ce14fd540b8f2c1ff0a63226d0cb1509f8217407d9997f1f4c43a912c65d5ca47c607e959b8edaa6ee75bb1429a748a3ae2e8b4642ae4b92389e49e9a455324c2f6579504010c5d6381a09592ebbb7fd0de5d22d7e1261adda456fc4d1dc8ed283ebc9b7489b93a8e6fe69e7399517368b5fc4581b8e182f25f94a134132361722c7b2d955ac9a5390ddb772249882fb7945c689ad6e18921a6c07525f06f412fa2b953decc015d3c91010b3a84e45d9b03ab108a672fcd6d9164e2213b0c3cf632a19ff8a9fef0f20fca90ebade6ea8edbeb8338daf5ea7c73d91d5c354e92a94413924efeebcf531dc7355fe1ee8f45170ae2a9bc96143c37a54da39252e0f314e55ed4f48fb0c245294baa428dff59de8966c1c551451ce30833fc03f1c1491f0c378bbf994f774ce0a591013b7868e80808a02b5be612bd8652045462780f02ab8692a74946df8a0d0cc1f3717ece92fbb41c1cd42a95db526c3f0b779244bd9f6c938a1efd0fd4644174c6c8349089a1ba8c071985187e1cf908224d633d91179cc0e85bf2112b51c0e7e29a21d5e35343fa126fed76e2c2b09a4d60a3158814af56e730eb7155c987187a2933de99b1d74e53bc4a7cd0ef089279708ca8d1b1d625a8c8ec6cef677d514c658c4853841de979c5ab80acf30c46e5e9d0c8ef01ba0b5958ac17bed87f821d2bbcac34f337e0bcde2f9aff6fb62ccacd39ee076ecfcd3b7401ebabb70f4b49c023a94412bf5b4a5071e2322ab2732737f17293a5f00e842aefc000b9dc3e3ece305b0d18b54c247329e86ac9bed48768c03d80a47e56115c40551a0ba09d54405869cc6c2a514c55fa37a161bcd547e1132b1da255baa08d6a19cf2dd46b4f15bf90cfd1bf5d118fe6a4f9b599b1f5c1e9231387db902cd69b40fc20f08429151bd7aaa1fc203a516e24fa1014392b546b8ab363e67e5448685a9eb1daeedc915c703ff0d4d127d338aab0135c5f36b750313e11464e0542577936816cd8d7f010a82de9a7a07c0416cbe559eb48d0b8c48077073a4260fe0cbbbf3779f593e8a831f1eba3d4aaf6201fa653e5f0cedd41a737946fba4457a5cfadde0df5374562a7ceaf782f4b06505a661b8bd519ffea64d0043b8eceed53572a1451274fda398e7cdffcca674afe059fe03acc1056fd85e2be3e52d8a4d74a5bad68078f79e29d2541138b033c05a4198319e9d2003067836851057d3e69a9c40d0a6d03fea6c10c31f91378627b61e6133c6ef52ddd8b89bb2cce645bf0ef91ee0207d7902f6f340c2ef4ff5e9713a540fc05894df13d947aa2df2c5a6253b84deaf59d106624223c2905f90087b59140e3ec4c945d802c7bbf53b342ff3cfcb5fa78227142ff9a5be13f2b38e78c192e115dc91c67bce262fa0cbca06fa8b84cb9557c477651e950b0ae6b4873fa98751048a50c5c666292c374b7b52a2e3866f4c9c90f6577fd6bed1ee3079c22bb01a8c81fb9bc658e0139126dc1fe25052356cf865f82da7215e02043dffa29cd86ad8efa9efeffe81643d65eec30559fb9fe36f3fb2a28869464f50206c2add6f8806fd782ff6b1dc4c052893d7adc84da7124c73f3c000211140400b00ab4a72e697a195c106936b04634c4cc6638fc4e0d58a7cb1c45e1bfeacf7376740368a02bd276bca20a9ad9405cec08b08f4439063f04ced5a0c4850ab8ed4511d46135abaa62549a8bc0cb398e1b445613767af62465505e15ea34d00c8728d0620de0cb6265d400283c440a6b468e0616dc2f086ee1064b384bc20d6efa1d4de8559205f05082251467b4c6aa5b6bea49576a3e49662399bb185df6a245a020581639de8468fe12addb09bc4d00e0afb56404b82df0f081ec0861f96939db219449d1bd7d7212c2370265a6f4ee666eb6f2663726596cd6fa4118477cc9796dbb65a574f57beb12040936788e7c493a269112cd0bdce4485f108a221182e8886d8f5a3e6f9b10b6cc0054b301dd13e0ec8446fd2b2fbc691e2b3bb8b8bbbb5aad04408158828d4b0f566f3e15d082367c6917da2c2e33392a8e319a55665c8f331ecedd31a8e471cc73fc45b4b887dd4a491880f4cf7d45020f2656200b423da427126b670e62566bb8854afc7c12e091c6fde69125baf24d8b137f8bc29b33d38f5aaa9e5aa700e365601484c2f8e489db0805a3014c598843c536c0fb44ef992261f22fe49e80eeb51457602866cd6e7146d49d0d270da50cb5ac161eedb5c30e99b5ffedffcce87198a59394ba243896916c3db624246088d4caff276d121418239064208fea5939efd15c3f561c881f15e3612f8a1ab2884962786cb4090ab345ea20b68b4997702d799040983669a2ca6f853f03dc8a4d27e135ae3896b7e917edad49a0897009418315f5b13a655d147dcc7ae182e735c4188291e13c98eaa46c7334cf890aeff9e28b0d3166822b0a6bb9fc4dd5d9b1205eceb1f17f590b1d40e43f7be84aca7db626a67c2f57ca3244db4c32ad89a263a381943e3672ec7f60795945d7f200928c2a6ff40069d81516e72d102a0f8269b29baff4c69eb8694624a97364b7ceca6b94f94c5b8ef40c6fe6611d33e3f1e45b976486a04b89885672aaa5028bea79d5c9eb01812ea694893145b2585943b34b015ae977d146675be81fc5092e28d90568098a314cfc1c1304618cbd0c57c9bab0a92909f55a127465253830e0903d2727902b582538a51ff8a0060a7cecb33de48fb9bad4215425e9e909c63b51aaf6795654911a058598b3f12830511932e7ed8daf9f90c2c2d7839ba5044f0a90ba190d7e4f0d5d2651a3467e74336929e163cc861e0891fd955414c6138f539141e2c2e91c40b87f2d00e49714d9d9e9a44a634b0d4e2355f989616bfcb4d48546cc824320097a27b35e0f616876d77085f43d0f58b482c8f5ae1a6f2e6b873ab22b454d7a3027a267fc4a586563abc0e40834ac21e006778b211bba23d03584c8f7f1c608ad91de6091e12037b537ceb1f23ae05e1b8a5b6098774ab3f12cd930076d9ae618ed6b3e5f00f6d5e4d61d9a8d068619de9159a30bf3bb04dbb9d092980ec545f4954ae505977fd95ab95078069a8877a0965c5e24c61760789a940f68a6d965f009ce81f85ac4c9a38666038bcccb07008d0e9e82240de2766f95272d0e34dda289260567a90bcad79b5edcdcbd4f0b5ccb131387335e19431e025d56f57e51bb802e9dcf05e8e2d37f2eb05654f47586df9a25349935f8defa0500c1c28dbf4f9319fe2c78ad082d423157b49ac3a97a5bd35dfad1167e9466a21846959a18035725316d0aa79fc96706d6908eb25f5bfb8e18063d44b84021f3774af10c226440cee3fee90a28f419a6d5e4e5441f8b0042ea7fc28078575872e9befdf486da07f1e056cfd1fd7488436c274117deb2f44d08b2f7cf8f6e2235c02c00cfe7416fd45f9b5a4607378fde7d02d9dd9b98d2755c43e5abf19dd21c33f60de1ac49c14cc3f4c196b2823947d746936f0bf14bb0d48fc57932debe82f2cf8d5f6af85d86a708195c31332e62dc656db72e4bc81d3bf748ef81fe1d8b5b0b29a6af24c9e98a3691caf9e0148b0e8b00642120e22658c5557818f8a8e22a2c88290e6c0bf163a8b4e462b4b4cf6553b3a2ca615363726097449fdb6f7bd8e6b639464d68fbb145f24d9d07ada7fd29f7ac391b05ca4c31251a93b680951a5ebc30631f33a23228e39dd9e4d9be56b036f6845668b81c47d3fc0886a836606f16e294d20dc8477456b45a0ecae2579718606b0b7e53c1d0bc94edbdf252cbe7ef39ba3cb127a31fde91681c28bcddf0e3c2793616e31766a5ccd54f8d667f241fc2cf14be544580cf409fb2be53b6ab4ff3c1c9a8d83a649e9499bea686edb35e8c4c25dc9c7cd6b0e2922afd83a62c55b994348741298116625d2a761f040fd1e40567662965e35a526c0a5102d0869268e852422afbd005b78695b2e140a35458c0f2c8952a10e875312e82e73f9e948cdfba208f75042bfb400a1d02c3ce7f4cfc8621d12870d840f006da50904855eaf740e98b4ebdfb3cd25ef4c1d5938af134d1bb5c08e0e0744654c1785499b21ac422c4814d3b6472284c1b03fa153a6d5c30141aa903a57538a9bda47e2842eeadfd917acadb8b150110dc3f4298a41c190046408a2ac2af34d933fc14415bc0e4f4817b38d107c487eb141e1571a9b1a3a9b4872579b316e7fe087bc30398db273622d2da265b6e29654a5206c0060107990675faf4e9d3a74f9f3e7dfadc890902cf1fe99cefd3a74f9f3e7dfaf4e9d3bf9bd3a74f1214574b07f77b7f374e777d1f7b4abdd168b1faa455524e9ffa9ab6fa9ab5faaac9fc66b5e485497dcd26742708dc3fd2180f9cab6a6cae42c9134eab46f2d41f1474bbf9f8d46a345fad5e5e62461a9b3f6f7eea0f0ac2e172b9c78e6577e596d00426ab7b89cb3883147056175e1a700f2fac00896c4941faebec9f73fa20a6849997d108ec624429eeca19d2c2273305af010d8da89f038b3ae100a2858247899b3024381ceeffed4b1cec310e091758080a0af8b7168911725b2d7894386acbe36714fa565d44b5388b68cd9d12746aca2d38867004ee4807956e540ef5969e4b6693b6f615038b051ee7eb4b2517d2a8f6a95fbd1e1d140a856adda05c355db335c32b1aaa86029540a13ad40b81c7d942e1c86ebcef3aa741a1503dc0ad964fabebdcbb17f0385b77a753e3fb889241281d2869c333af07345a402461f321891e78f32f5d2226e683ad872a96f068b0051046f45c018316449ca0092c725022cb13415354c1e30be9d4fb1fa16bfdb03e81c7176d9667c22aa803eaf3f57a75af97ab6856d4c8abae6c80e7ec656b30096ec3a81a05b3a8555831f0b8d2b1048f5e251446cd974d9caf6ee5a305afd55cdd950e1d9d0e2df0b83ab242753fa516c586236574bb1b0e21422488b5def4b05ad51588051ee7cdca367bfe5e8c4ba5da4ff86ad6d5bcb1e13b6f1a2c026e8c69111594e2f6a9e8700dc3e51a1725e8c9edd67ad303c61806789c37e2eaa6daff92f72aef781d2b2186c488b6840788263c3ab021c143449319f8f8a08a2a331e201f13a2f000c38f103fe002b7026a852e97e0766f923c3e6865c933041593fd4925cf9cdc852608e11899c29505a04f5fc6f3d865ea79cc91e98f04180390a9ec41df042d58fed8dd16270d59b638bf20c25f5aad561ea81e05c8fda30162626a8c0c63a01d356f9dec5b61d4cafed3afdb1811852d3cf244ad5c76ad5363cbf2fc993371c8e328b7cc55f527fd22f42f8948c57ec2f3b6ada58ed1444d54abbc154f11a6648fc9ee231f799b742cf1c86e833c8ef21ca34d0fa0b93f08cddd54b6d8601de1f1a54d5249f6f7a7f117e28f5a89ad566b05b4d9a257f4dcdcf20f46dc13842ccb9e2062b2270858c659f604e1caf34732035f67a9238ccd72dfb3649299d620579b91fa36f56b8a585b4dab405a910e744ae6fa483a55737d1660b92ec9555ac9b5d66ae7135761b184bff4b5ae72fd1a3f5554fd55fdaf2fd6d30cf0044414e81644efb5705f049a8678a2f0767f43e9a7f642e9a7b0d3e2b76c33006af8e656dc4aa7e8e3d841082ee8818919507123b7c8b9810d416c61d2c50c6408f3032cefc5b854b211d3226b9be7942c79663b9966188f169fdc935444928848b7355f938af8e47e2c4944dae6a77ef186d74f4d649288483fd921dddfeaaf56d5e854149a79b268d1dbe84f72cbb00911843cfa8d10b19c3dc77dfa04effd2ebca421dddb9005db2ec3bf06e585253fd5ff825a965f3ef936ae4c43bab76f2ff8c310fbf7af7442736f77f7ca5fdeeffdfe7258027ccc02c00c81e77b38ae1cd3e0dfd2ff774a1df6a230180d8d8686468aa6f5103deb21684db3397b043b6471f60816677336e779388f521cd5826aa141540b1a447114f7851179d300063460a45697a2eb5040c1002803a0104567eb9ae876ba5ad74457eb6c9dede707cb6dcab04cd9fca9b5aa44cda9b4aa44a5d55aad999c98603982720499627336839852e40c42ce9917e11749fcde5c972489ab84d068349a4d125709a1d16860147894b95894158f1cced1dbc9d39cb2c11d749d4b243a1e7234b45212f746138a23a6143c4aa5d2735142ad2eade628140a840255b234c4610006f081440da9b061cee984041cd189a71da552e9ad28a1e88d1bd20775dbedb18232c0f5814202f552509bb54e237bf4d7e424a04059d4133c4a5b12163ad55f63abb4247a950054a2e9f0d6a9f1bafccebf7588632da5a51c35b6660c3c965c2597cb7584cbe5725997cb555f2ad1b8bcdab064051ea7cb5297ed5dfd18b83f5a86de6665c542745d7523b30d6419c256d3d578815b43b8d94cecfafd231d2f32e7eeb47a5a6d65d61a5259006ec886ab0b9829d4db043f2945799c0ebcd76968cb565cbbff16fa5ee34568660afea528a29f2692f69ed96c369b593ab314093cced9778f9ab566ad596bd69a3169d2a5ef8218e2d1412dcf9c93dba402cd9e4725b9ceef1727557c21e2d7f0fd04baf0a3596b0d57307aff065f30c3c1fe5572e1d6adf1d3bcb7209cd8a7f9393da7e4951454ad3132fcfca7b5a24e38c07f0f789cb5247d9a0febd6516bf529528b2c81e77c79e2834eb9dbee75a7b9342ec0e3bd2f3ceb969c06da05b5c60802913cd190a76a0251f6b6b45a4b6db5d4d62aa5bbbb3b8d4b6aabb5f665740fa0039829b07d6bab9d2ec2c157eb4729a5947e5f0c924eb58af4f276aaeb836fa56e54ab90a08270b9924f698665b69bbb84c98c49d5b4a9a68c04366cca2bfba5df1a57dd8b31d8b07e522ad970e12bec26559ae070389bcd66b3e088249b32d908ac178542e1d7ec796bbb7b3ee6cb3c4317d9a3eb5c4470ea6ee76597b922c9597729a59473fe9197aee27baf5d7273859102d33afdf5fd70816fc06389270b4f16170f960a60e1c1026508d3c892070b0d1e1338264b9e2b5d8864c035b2e4b972abc0159f1a59f2e460069e2b335c7ac57b9bc8a43cafcb63709931dc5a840c3c5d20dd761070698b86b9bb3dc99d1de51a932bad553cc9b58a5bae5640c9d58a2c43a04224008e75bde65668d987e0022b2dc8aa977b6f80f1a4f36d73e25b041d8d5eb83786ee50ca23531414e08344a64b643a05934ca7b89962480847504103155364fa31a41f144a1134987c54c9fdd7c72505113f1a9b60278a2662cc7a722042890fb08065d182a18b16546159283bb85ae220fdf079a590923b0a2bb9bf44fad138071aea0dd20fcfa1a920ec10042d51c87ab8c8f4619ac272e3008cdcd256737777b70dd20fbf231a0585428b4ca1e822531e9d4c7b6ec8148a1a32fd17d20f2adaa0830c3290343a6b907ef854222677ffb58d91fbf1133ab621723f0dd28f7e092c11c39533c20e5268f0801db608020724540122092cda2d6d0c8819a4be171cd67c2778e04417b9df05094d6891e953fab8bbbb875a6e262f6f065d00cd04990212326766870a132d604287092c9ac041134099bedcb9c9f465d496ec5c9ac32dd3193ae6f3e2bf51058cecd4084164fa0e6818a5948a483f7cfa548192fbbda66226a5082e3cf1612787d53486dc3ad072d37e08cc587f1151eeeeeebe782cddff742c208f3ca4a402bf9029fdaf0521d347c920d35f01c127d3a7a941a63c4b5491a90f56c460a92881b3f3008825317c5f1e2a39fce4c62d3c8e66a63f950002bd740758640a83ebda50428a8e30b678520a99f3e7cd2d3d2e891db802573651dc644da7deffe651f664f9d2084aaae6eb4b2f2cf95ab2ac65c9934494fc4d54124db2dc224b1e2470903f3a32e22a21351210cf459024f14cc307d406e469be108c8b398dc81e73ce9faf099b4d5a7cb5389f8611f8f36b9286747f3b7b4392c4884dc8c264995ebc21496264becdad427a093c107133ee601a12b6509fce11e9023534c9eb2f2cfa4a583fb8fb8bf4d30819529f862c98be4bb4bf08b8f253773f8d909b4f1193a15bf459fe4bda0b3011f94cf5278b85c992337272307801c4132558a0c40640fcb0c4092a9c8c41c408bc7efa913fe76c956eb0c42ec893fc17b2fc09832ca50d2f584bf6906fa2f66f76d0445f66972bf873bfe4374c7e77bbc05e6244b73e7f5f53f213fe40d1dfa7f1f3ea9ea6ddadb5d6daf1c84b07f949be074e9c9fe47724d33f81063c76ab5bb556b09f7a28b6a8a34519e45dbcc0920a16b32c63003961034bfe84b9aa870e54565043ae86308658f2674bfe74c9d9a211843f8fb3a584082e7070818719c2c04118ac2c832b725876ac80c28725ffe58bf2a50e197ea0635d93a4dc8a8892651859de88d881480d9689486d61072a599364c2ac929fe60b4bb24c5d33bf88c8035a0d0aa4f143ab995f643e8d101826b03bf96096c0e3b4dd2aeb59c76a2dd6af22c5de8114abb4141a37e0e0644145d800e50531a4ac60c10b0b285f70f172b97960c7c0bef1539d61cb68f8d031f9048e162d3df0e9410a2759809060c30c8ca8c1ca0f361f98256456ddafd34aec27d71b2db5ceb684457c9e7477d727dd382de5e6053bcdb0880523f1ee7be569de82781c814b70f3386da169b2ea4f2b32539b8fcb0f485c359f90a7fa53c8dc955c5f2823719564b548d37605db7a0c2778a4a8926567cb8dab801411c546f3e20a1d9078c174966409842c79727e90431626cb46bc4dfb190345ee09078f530675ef542e11e3c9b999329e1c19a95bb9d2eeee49a2c07dd365996a264b09cb8507770559dcc0400c316458661c90610b2c9eb84246ebe186ad179689c83595587f69fc281902280745c8c2a5c40c40ac2a85c00330aac030c30f625644d48fe8811f2c6e9001162d3db8000450e488c1040f49d011aaf51d5cd5db0c82c0d7d1aef3cee9113dc0514ae99051ee58d0016d8379fde0eacf2d7549aeb50e8d33d73346dbc95528d7ef6e15ac0c507287426280fb9b1603e593a7169e3168c11217f28b4e1e699edf0931c0e34b4ca7c6fe528b93677c79c04b4cf70930c031312f194bead265d4066b74777844cc5eb3d431abb45cdd4d73c8865e78f1189143115b484dab7cb1e264cac3cb4ff46547bfbe5c25ebcdc9a1b13ed1a6b548ff6b502607db1f637a0a966982e9d757a7c6b65598ab64b766e1386b0fa5f4bbc653c42b536a7530adf4a9a5d43ea5ad2901375880bb5ab6df0d191204946491289437b4a4201f101372179a5440e5ee6dee6e33c8cd7376515ab4dfddb4686dd2476da753326660171a355e4810b071ff825dacc5aebb6edae8716de966c7ba28385d2cca4da7ee6de1746aeeb8029b807879d5a2f732bf9fbcef6a2db240f4deadbd9f1679d872b67e11785b00ffdf93f99907c319e427fb1f5e3f792f4943647e26ec7232e0bcf9e9f3be4f546342ad4fe47535ef366f5dce03e7cb80f5bb9a77f37ee66d06e5ba57d7a483b95c55df3e7d754f3a35df3e05bfdbd781f62655a0cc8f38f2cc8f2e793e9e0165400a7a385e78ad9616ed5f1b647f5a8ce1f982e63f906c424be471f4e2118a9128b537fbf3f968a958e880833cd29e6c6f56cb046d746a3f9d0aea948fab62defe777355096fbf03911c69d1fe84491fae5ac4889f6c67eaba2fd7aa1c32fba3169311ac5335db1f459992edcf70b2ed81e1f6e55e2fe0e4b194c72f972d0c3d791c3dc93696ede8265b3b7bd6296b47e943a774ca46c9d6de60966d0e79a43bd926b1716bbf841850fae9ed1b71954906d319f8f9a48eff60bcc0305ee0f9570c404ca9c58b4503c83ab21cc262bef7ef15722f914a84be481c2fde41f4a82bdebff757b746889fee890aeefb52c7a5ae0f464b77776be96ca5de305af07cd9dd3da3fbc1275fbe7c982cf0fc695221f7487d000202020202020202020202020202020202020202020202020202020202020202020202ea7fe9424848484848484848484848484848484848484848484848484848484848484848484848c8b3f1c26ca7d576d7137d23928c19d885468d171b30374a387298626aeb166b51598c29078ed20d1899991262d57683b1f1528386cbccc7c4fce58267c888e57ed283a6f9228d3e8bcbfd2230ccf1ea683891d78500c0313f9cb1fb02808e52be654f96bb230181c99e2cc893c998702347c0072c7b046113600220e3d958822a8db714f33aecdf0fc8a76ff20b9adc86ae9568adabc4b2dfbd05afcd32a469fb9686b55de781dd5fd0560b83c56ca75de9d3efd2d0246de7b4ebdc3eb5dd7da197d496b4fa60b0dc7e8905cf97ed944aa72dd28129024c16d40d4a07982b305750514663d0e92da5942ea594d265eb736f4a29957ec5b65aad562b8f011e7e52384145062e46c2c546b8d8878b8970312456e06865c02a05a91289422449e062303f18090950a03594978695f483ce39277d23548abe0f7c51a97483927ca714750271782f475ebcdbd92ab2c1ed6ca5359a4863ae4262633801e4041c217340683de19ae275ab616585379222db6d1b53da69b593478afde328356d4268ac9556daaad7ced6ce9da7a63e8eea4ec3ce4a515301a9f228b5b9ca0b678c0adb8cb57845cc043758b514ab4501cdf7bfae0b67df90525a7b84d93d91c88332a58f591be38b2d80e48c97232fb7b3b4ae5ce5bdcd66b379a81a0b485128c7c82dbfc8ede1d0595afd67aba6049b2e917ecc16b3c5c44b0232ca3666ccc90c510d3060606060607e4489a707bd205235fa9ee128b7c82d8164fc28ad98f1a39402b79f6e6ec424b2c70d571799a22fa9c80648d548a6e037b21c854964954c043c9398e066ff14c894870ab0d30aed295b24a386d38aecd156a40f59c3f3e16f2b7d5b7d68648ff69c3482c13e68648f19ab97910b0ef0b4ba1ef6536cdeb8e010e5273d9affc2f1e6c679837302c8a3cc0920f75f814d1cbeec21cd0dcf9f2dc39bd287943163e46334e313c9a0913de6ed65083cc41b44145037a0624a379474fc0d3fba37dc177c03660003182003274e9c3871e2644e27ee1e653645018552c06ad5ee3afe7988fe82714ca95465a7aaf3e0dd8ed64aa5b4ded7dddd9322201d3958fa64c9f964c1d597f203f24d3404c2aaa16bd52817e9b36a909a658955bbafa0ed6a75ddf65ac32aa911a2e9f59512a583add55297527af8ba4f7711be3440591bcbfee2e3c6177f9fe782478c4b8f658f7e8ca50f996df089ee67033cbf5d3472297dca2f7fa391943e723077ea1778c479b402750fe76d74292e45fad35cdf5dc301d673b63acfd699254f965b3665c99305099994254f161c3d028dfc4d6c9afd479464ef7650fc232fee92baf0d9eea6dd947ed75dd77583a397bda7531f638c99a199213cbfc353ae312a99b6e7fb4e88c1f51923e0f9d4fed8b4d65ae72dd3d0eb0b3ef99dba3f473fbb9f8f647e3eb74943b5aae6bea890e089279e78daa66ddaa66dcaa66ccae66bbee66bca589033d7a79ef9d62aa557e9799e27f2441f48a5e7158542e5b6b4d85f23b3c96c321beee5af1bcea129866c369b8d46636bad9d943fde4a43592ac9fab225c38ad9de52d2b4b5dda5217b046160f94e65d287a43b90b72b0e83a6f511b8c9c5845223677f7b91bba93785fed9e10a2578ef54370b30bfbf3c61bcc057e464c973859413b2e4b9a2b502cdd48683c0e4bfa0f5fbf361bcc053fe64fa4af2d5426b50f6239dc4d18ac44e5a0df249abaffaa27d73fa7d7397d59cf4c94e5f660a1e69cb47b5bf039dea9f242030f448b7024c1e810a5ad9fe373d195e785ba457a8d8f24ba7ea7bb7531da5b39bb5c65e6a1f8c16182d524ad965f960b2a041a04e2975774a7d82412975f739c1a00e0605fa81bdbafa82d1f09a41064add9d09a6948a5c4aa8539f94bad3bea9a1eea17c4a5d08cb9c6e230becd5d5172c86d7b53078dd0b1434f947a9eb860bd39f94d270748347e9122f4b9b4fda3376f384d77085999d86323673d4ade85aa5f96bdaec5ab6410586bdbafa82bde0e5417ebbd66f1ee402bfd1199579ddac0554d6ca379be87bf97e7e6309766f659aa6e9eb79323c94d2fbc29b11828acbfedd55ca24a4ea8675a74f3ed65a953cbbfb6f38ba7da76cebbab2cbfaaa35d9c37fc713d82b8c7abd69b126495d5777c26aabb5e82dab604ba93057f5cd272c3bac6f3b9280c77a536baef25af6af37ae925d713d984182cf20e14bd3a48217c9b54eedd831001a8d038cbc8c929633b26347c99fc66966b688bf42c5503bea08bb8aa2627896fcb463d227269b16edcb20138ed8d0f29416ed6ca76669d94e19ed945ab6b4f6958280bb9335279a2291efa00126f279eb540d7ac875e1882bac45fbb6136b2cdbff611a426f054d43eacbbc4cc802de21047c8178b9fb1b8e56d65ef33acfbba7d70cb619702ed4bb9d17d4a991d6709d1aad2c5bfb034e1e4779f46eded00a4d5c75662212d342c5f9c97ecc4b56054d444a68417a092f59251730a085b3fd514bfa9891ed8f5caeaa610bf567de862dfc30a4feccb7405fe6c7d12bdb97094dfd32af843513cafc10fa32332ff333ac25548bf6eb0cf8e5ecbbd05bb62f5383b2fd521578becd11249dea988c4ce8b0a1565d964a52d0697eb2322ae8b31f931018ff37b7b46812027b2e87735c8b43325efa24f58f5aaea553d2b7740ac7dbff729dcaf1f63d0807e8412de600fda7453b634609db50d98071c15017cc3748652dda77580c661a529fde78cc4ff695b0eccba7ae16edcbc862e8a13ed098abfeedccdba7b24e993af5e1aea6ea6a7eb25fe371bc24fdc8f134ed0306380433973fe0bd078e461e28592650f43374d6a2fdaef6f2f6858b253d3bb871d124bbf408a7bbaea9bc60e8a9e1c99c2cfbddb43d04a9d946a7e62a1f3afbe80c88983f9f16eda8e46bf0eb0e6d74649d92a5a6d8e8cc262853c3f365908e942c49416c74a484363a5346324a6a2af0e793ed93709db2743645ca6c746e64c6c992a442374687e3cc363a37f993a2e4a3f7dae8cc5a94d94667caa824043c7a37d034e4bffe2b61cd80a621334f675e098b862cd097096bfc646542213e58d66a80258f1176f2a83572fda8f976b8f0e8dd3c0a7a9fcfe9d245c688826c522137ab829245679d52926d74662d6b996d7470b28dce4da79464993f399f60c963842959927ed8e8dc48e962a313a54599c72f67a383437a808dce4d8b327fb8ff9ee67ee347eff653faeee6aaf933d4ddb2fd39c379c3f11f2866d17804c71ce15c261209db92d7934ec99e1a96c43a35a2c14fb63fbae994ec6f374d40bc3c69bccc3c64971cd2ce8cb74f7b3a6573c801dae02881e30d70a479ec72d9fee4d1bb65fb305f6eec9c6cff055c81e61ad495edd30047ec621f83a3ff8c3e1bbd962d92165bd247ad876c331ccc7fdca7535becfc1b6bf4209791c2d16fb2a575adf424db9b5bc976e8fbd1b3f4926692ed4b916dc224db25bdc55de3bca5f0e56601ec8f7e656ea1d576d7eb462f636c314419bd2acdc9207b13e5063b7832e67fb999c2744116c0be9d2cc8f6bf70fcc248c242cf96ec51ddf3368d60e609933da60dd9fe68d42420ddad59769cb85713ea7a72b5a8559a1662cc906db1831641356452bcdb940b0cd141873f685027945fb24f905148afec31b690658f7622fbec6826c4724c7ab6933c0215e820df70a8457b650fdae2bd32bceff2a8820c7634d4eb08b07b0b02523d9999bf33d84f379c373f493f5dd17b32c8df8b3c1aa55dcdbddab2f75314e40b7db237f36df1fb3e701cc93971c830a980caa2b7591492a0e59954a8f97ecdf7270e963d2f3cc9fdf31bfa702d8aae48e4dddb1722efd23e5c8ee82fd8ef81f33b9ae8c30d75aa73649d9423f7ed77b34eb51734a5535dd8e1b4686fabcba930bf3d70a433577db93e59182fb00a58f0486733d3199dd2755d0e182ff0976bd17e9e70a8046e5725b564684804000000b315402028100c87c562b14812c6812e690f14800c6a80387a583c998963490ec33886812004196200308410831841c64c0d9d055d23560319a94ba1b14f232a099cbb54d2212bf99b4bec67107f1053dc780f2b5a7524c76c1054780c24e55722c4077e5ce594e09a2035cceb5ddfda3d3aa256ccfd8061d4db20f52390c6ec23222f88af3a6835dc6a1480128beb61cdff593a56e85e04edafaa51b9f187d85770696e79468149b514453e78b3e972a69d04f82e5314285df27b959f0cbb3b8114bf64848c88c110e903aef29d5397a26f2d8765448cb8e1505222cf0117dc02e6eba8399bc8ae18eca0758735529284e2abf8f86bc1d31be58bbe743bf8cdeb4c5d057f845ec9f825af95f3289ec7cb5eea459005e3667c27771939c031fea2eabf730a829fd65eb7751950b4f18954a154583a73f60f75b31004a505baa08cf854d2a00f62a64be308cf881415d217bd51b82f5330704723e0d55a5285e239220894f8268484d7bddfcafe140a83e1a7576c2ec2c08dfae8e2eea227b0b118e32fc1f4c5ec6eab37d6f9b93965868315c5673451d34b75031ee0616065b52714ed494add492d7146598e15771dd63cce73b9237ba9bb8ce19b744e4b1466a4bdbc7081868903708cc984d66dc2423940c8ff7da37765d5125484da4831d2a44dcf950a566cc697b3ed78171e1e6ec2769bbe403b24d809fb457077bbaa5c9a7892467eef3dc7b90a35c2a07a2b2f4885597762df9ec8487c9f7d3790adb43bf115c511812080bbff423103834a7df2622736dfd31096053d5655fadc4d24e031b8babcd33444b9ffb7c340899df7a0c5b4c079982bc930fe8e2dca2c383a32d2a272bb2697958020daabe646e1878aa225fa9409f2dde8cc3999f417dca4de25422b4caa133fc68dfaa18130a197d5591aaef33ba3384a10767359198a271e898eb7fb8931428f1e8ed945bfa7b44f69f623e492ed0eb74d2e4a9814a78291bf1bbf515cf831fdfe52de04c62651f0edb0af13a6a48fb849602fa51c243cdf4e63ff1cb6f829baa6779c0361144b6642da46d0c9fa3d1accf222261e227d54648048623ba9a47fc2b21072113623037b0ca381da86763ec88f04c63e3829ef77e6fe8db2afe5d50d099eb705c3a7f850446eebf3db87303064d522e8eef369e23c3e69c16d01a515e6c6db11d950a81fdd73b0c23c5ead45dc440e0f7190fdd0354321f3b166fd24467404846e4a26463f3b92517a09189e259e21e6a652938b4945cc6ee1104d184913bc4e1ba0f2c3ab30eb40a946a25a484d2d23abc592d053aa4c31016f64c016afd68c101b4221728b690d0b5ada943c4be98a8b7862094f7c9e380251a12e485ba3a8dd89b8a6d13f6ae7b772e901a5cc4c89c5f19a723293689147595e4d72c2c386edc644ffc9874f4c4a164c2193214029b64f8b6d6b472d3c8199de7e600c979ecaa6b2fea1f2f15f509e580f55ad2b5184850d6af22dde7f14a5898d4fd55a89909742771bbe8d1bede2a40b13570be1b77bef8c77d871e56fdd127870bd02b6a8ecdec636f95f044dae80431d10c3a6c8ecfd5e659871ff17563e8790b195765896a9605a7cd49617e59a21244939a1c8501be95739009c9ac8c12a01c7df2c8a5034788b6d801637a9af90cf0507267920b41682669fe8f5b9da84348d72b393f331189f5083a768b71f651353af12fd2cfa0142a5532e1a53202416610c92b80589af104cd6222eb815ea4e2d7f9b964883b5b742a6c7792afb9bcb58c0550aa8091b2aec00e585b21d8c02f3cae9544aee1afb678c1880778187b05327b75cb4cb6f3eb9960ecc25d91cb412b8ce0206de22cdc025096b1c821eaa78582e5405e38539b000478c3cf51f3a2825654ad15abc01f42b92fbf921d529a52a35d73302f06f92852faecd92f89268712f5e32b2cc240fd26bb4d9df35f259e335cd14e83606c09de7dc68da98561e5533c92964d332c25752df01a63b5ca2b8447f8f3fba82dbd32b76f17a802d80652b8f8b3e3b99a0ec0efe1ce6d59c14a5d8a240d618a3da3b4cb1229ed1661bcb946a2b9a6bd09306716cff3a1de7a715e2b177c18aa5b85b7c04b9f15eaa6d5c9d729f3770d4221d69b61c145274a1a11295dc1a666c0518170ff2be73bde63682b1326d7090512eef127a6a9b724307ade2341e6b355f25f54d3e80c49c0459f30b05db05afe2a1d795cd141298c430229c64da8234135f0eec944905ccaa8a2f379aa67beee5a0824a232f8b1b044f6e5d2b3a546425ba7f0659d0fe015028140a987be31023573464054eb07eafeabc3803fc1dd581b3142d94f36f5318967181d7cf6b4d7291814165ba3a2278c58badb812ff320c30f5f2403bc3d519028dd8a70fab4452bcd36b79dd20a383ce5adc1e4a1a8615f41a6f6dc317b900b5b3dd2153f5382a45307b58d09bf616c1ee199d470f33b390942ae046ed0f25758f4e03b090ad75641007244244e3e5d137240f26c9c522f36ba4bef02f7ed4dc1110bcec55b6151dac8d16bd8cc2de1d7b175ca4abf6a04eeb4e692d71b733bdee8c759240e61a8ee4dcfa95b0e0a1c0829256ae65be16f44cb6151508d71cc172f5431a5e9258b853487ceef4ac0b6e157c58d8188c50655fe0b9d8fd9b369f5dffa0733b4584e17fbe89623b05a75c394f3969d41d24280c2f503ba06e21e236dd99b2ab3fdf860faeacecd6693b3cad7f268ce04a7c9d65eeb1e50255cec713cfe5d9cb23ab4905602ffb7b234ca5719772f2d08f338d668330fabc8237a6e3d805698a7233a512d7a2cde992cb51f9527c31339584382483f8ae8f61215a67c364ceb90f7a8743805cf8df87c4cef64d41b4f62412b1877aaccf61b35853a2195f6a284a9ef80fa563ed18f5ad8a76d12d1d7428fe52f0b430ce45fcf54eb318f7439950f2eacef6bc1bc3624510bbe73e29aad7b0eaa692c0ca1f803704912965363457026553dfbca168b804130796728a3b7617a2ab959c7b5f0c93a341263c1ae5501f0fc4f26200f4c04f0d7a66ed254da0b1a624b6d854795dc202f48d1fcb74a05e34790c83d1747f5a4a84fe1fbcde93391722fd07230602e3642f8b7b66aa02886991fa9231c1ac23722bd636a977bc05febf1ebaa918c63ca7a0e3df8e4fdaf6edd498931c3d90d39024a891814416e5e9a8e18164fc572984fa6b9f3b542c181146d7707f98e03fc4086879a18123bd8a9aa7501b1663ddf2df4412181f511b47d8e3a0e2776c6c11ecc080c99cae041601ad8a0cf244a128451237fbdcd2abf9ac4911a303d1bc90803e0c4aaa409e86b6a3502b63687b0a007fc4c4a3770fe2bb4f5ca725d115ce14b17c0e2426049b4eb0ee3128dac101bc23a1c848ef5d29aeed6a7bb8060b7beb1400719be340a07fab7b364980613754a88d2c646f9f49965de35503c010bd4338b1eefdffece2826f1cf0712240d9687811b0c588c4c0b9eea023885bd84dae180338481aed7aa3834573ee5161f95c419f23dfd75c8a536692af149388b5208b8e40526e4ce1a02b65da3510eccd1eba352ae0e6496cef37cd4346c9ece37a259e63c5087f592c6388de20ca2a169fff9510032823efbd254cba1894dc12808bc225d94649739eaee40a4bcbb3959a7ffc044c3648d080f7a1d7c6c338af6278d06051f0fce66279a2c4ac76df0d0329c613d7f6d14395bff123095a135103bdd171282ce84fe840f25dbbab3cca6215f9bf75ea272144c1d6ff82d057fb60028244174b14834d006887d74106b7d5a97f01b8c71a1d1fefee2dc56779ed452811ba4345b3758910129c96e4b508e5d7d53e13ddf2c663683220d020ca393a40bc794c491b5415b8e74779ce944a8a66b9b94636661d2468435655abfec6c75db657377777f8106bc25bda0842eb79e0052fbbb885a21492b57fe9db5da2fa3041f6b8c54d77e29b01a4237e6806de09ff2ea5785fa41c925bcd80d0b01513e719295c7762c0833dffa48528b693563cbf8e977230bc3c40042ae18eb6d7fb8f103be22507a0bdb913143a78d9a69081fdda90fb5dfa1e178762349f6e8ad262a0f95367b1fe6f2e39bc1c8b33477d4ae722bd6788d3b09cb3bd2305e1df4827ba97ddd51493ac4f6ab96c8e1539f252e0144078ed1d33bba2657feb259e70d929b57cfc5584f55ecc18972456f94ea410adda8383f6426c9a8d94178bd74b89454a19997a0f6badaf483c2fcdd4c351c8c33150c6118fc2f1ee434a400a1e50b0ac0d72241732d7a7682e67276d87b4958d2327a2bda814ea12bbc8364bcd3280b7916e8e0d6079b93beb7b41822203d7bb8a14b8de59caedd66b761c25e519dff2e6ea52f7d2c9602452e8c55342e8bce4da903d5372c15b898af350ce5a4ceac5a86fb2f02e18f0b9a744a6fdf13cbd4b1b3441d6810195798adf553883be75d7ede30acd6ccf9be1b8d58ac014aa42b0111646bc4df25fc251250c08394d43416c8b5176b5123f266860fe066fe7f116c818ba87b0e83cc5f1f91d494a87ff2fe493942ff670c3fa35215a2e05e9e69aaf942a00162e170088fd05303dc30290359302f067bb00d64cdce2ff056960e1b02ecdc025edf8913689d286821ac36c554a81d0ba8250e957772dc893a00382e9524899d32effeb4d29c46f44ab9d307537edecb5bea950f58a75a8dae36d1787c202b73f39ae7f128888bcad7eebb743b2dbee21d2f221653f8f1eabbe978639b24eff71a51a9f1874e657f9b3cf882db5788223609a849714fe4f68207c3dfcac86a300df189997a67bbcfa24c6549f941035a3e249c89e8a7f596fa5f86516a609fbcd3eafb5876ecd63d7842216705b6c297f4296d6bea10ef96b551774f68e61bae196ee597bfd74122f5fd8300b632f75300f631489bfbe4220cf7943d18ba5b8122017026281e70b94671a6e9816e1fe961c847b59a3487f3c44537d8148c8366848b58b2a96a9eeb4f6e1f2147020a03c44d4f73f0cb3645c3b2b9c7e59dbbd2b9f9c0783681cfddd30a800b09859179b6501eeb3c0f13fce4d71518b938f8354097948b657a41c4ed4eb8e349a185877149c5796c64c87b48fb4b5036da83a4e62319456f92373c4acd6abba52410b7b3f9723cc568dbb2bc8877ace22ded2e5eb17e0352c02af3d401a3b9d00f7f1a6775e16f576bce37cc4dd76c0d97617ee711dd46040743832af2025f3fc01362d0da44a379e92a5da3e85a20fbc7f339cf89c656a90bd0cbf7dc19541f3f487c70e7e7c4845795225739bdaf6003ebbf5dca26dcfa3f297a113052380e5389694d0f1f1a2f00e505c8d66772c4f526bdd815cd1f13b1134d4e8a6c298240c9bae39fa1f05ac01a8ee43df2dac3213645870b81fbc763f614cf1c41a879974b25adc33d234fbb0ec8470b08be081e23ca9458b321168c996ac79471ef30fe791b20ff290360fda1b62aa487cd148aca9b35caaea0872e4727c6841949b73d19d47b146d3883a8b3a2805108f1c2d182900115c9a13fe9edab324823c68925d5646bd54126e762856b093acd43146fcfd44725a006bd5db717f22f9f2fb13c969093f916478969f48e64fb867cf97a4e511ff550d477abeb46fc51ee273f0fa8e3fcb82211e0e2a45ebbcdb62de819c9d8aeaa930606a5cd36f1c4703cc6ed8efeb51976fcaa3d66b409fdbddfe9ffe386ee624a8f3813bfa82ddb34bb89f34a305cb7995f4e326f6aed3d5cd68d1cec190a97ab807109af3d4b1788ec87bcf99fad72750bc709334c0c8ac34a9ef511c18128a6ac61ad03ce21ce5f57d8f528ef6125009e7941be7d799db48153a5ad1deea8775b8e1942ddf88837cb367c5ce83f1eb1b71b29f1d783395f95802dbc650307b8e3cbdd1be11c79c4a540543988cfd2d1c67f4a43d667314bda3148d7b936864692eb28fd8dd82dd05bad765f3fd28911018631bc44a0ab2d8f0e3c41cdc12a5ce4f0021c8ac7ae76ce5a5e930e093d66bf64417879bfd343907f2fa53a8a5e19342462d0f75f9c17444da5f7b16fdc757a8071a6f2bea7c2125fe2ff8c9875c3c1d4a56668f1e51ade19ee5634a1e44ce078b65666cfb5ed8d8f69ca66bf595c8c0f65488516f2e9faae7cdcb53c4f4b6ccab86e2fe87eeaa41b8a5351fd75163a92f87131d705ff8445cff3436a3c8326e180279fbf7247cd3d26a7cc06291de2f090027f6de84fe382068ada32d9fb35c681e52833c3bb7932363cf4e5f13f1208d9ac52ca7e81b59a432db244141c5c59a99d2f4eee0c9169868adba9f49d2a017c6326b57c9c35839d30b8a7e7da22964026e0dd85224edcec52cae0e376c40b0213283eaf0929738813a49b2f727a8c89b4f2cfd8f51c52493f0984caa6309aa7862b4ef2550cde2dfba7b284ca287c569b34378162a0fc663c1e0c011953a15f4a51eec85b0e6eef6c5f05f51a532ba50490961ae3b3bcd81e3571f4a6cd6a4a2d940fdd816c2dfed0464f32206ca7e4680f5753245b32766d5a0d873e8e4031e72c89694cd3f7b71f66e9fe3dc38378e96b1c98ce1ac5902de72593889869ed39aef509545127ed2bb5be5df156905ea9e7c807818803e1fbcb96ddaac5e13474bdeb93d84a81400253423392279572c29d288f61c8ed04683ef90fc9987a0bcbb6456ce649c04a26725a5560822c1a2ed2df12dac17a9a720447d1ad231f2c5c33b51d4b34aab4c42a95f4fcc696c67101dcfb49ab2b7d1bc7ba08dcf24cd4fb769ae3bd08dcfc4884ee669d435d059c999d2bc6e43fc3a811271674adbd7404948dd2424d1f6a352bff2a4f18c8f87931307d7bff7a66ad41190c6c6946619b734a413888c658a868f5b34d609e8c662c240179334d209944c49a6d1a8bb41ac8e800a5c628adfc751055e289d67693151844ce35dcbd1f6582e4d5d84fb399f7c35de4880f75c5d6e05df248779ba4e9e1a8b318ee517e00d0d1913f5750dd240bf19cf583757e150bdcea703fa58378dc65d1b68ece36c08c6b86252b7b980d61ba87819a4e0af842c93620efe5dc732ab3473ead256f26ed3e94f94559992221547ecdce48772229e38d0b1beb9d708a6abbfa3023fdf37766bbd95249ba7af83776229249353f272168529c91a7197fe83cfb2277cf230d32abf183bb38c3e26fcb608faf79151f27f38fad6eb8e75ceafe4c2505832b1749c5dab4ef917241c21890456e559e8ff111ff512824fb3731b7975c0a7a404cc582d0d86d7dd7945b94c8f06b548a1868d5553631383f33dae98ea535c652cb08f9d860ac532321e1b86e498014a7c5492418e9963a040b14a0557af4beb1d2ab1d14c69c7da4b912b7c0bd8000224eb3be88f51da37ce8d887d9bd52c66764afb7f4186b366fee3be9496d9ddc7c90f2fb3147afd3d4e4b9edb7e275d9bddbb7eac94f982a1c080b43f9402988241a93fafcdb2799d1a8ac2b100d82756f709c2e341e35b93507854d796179c8766c22f3164aac38490012ef8367f26b4b426377be2cb2501dcc785fa780d9751028dc52e31596f1a3dddddd099021d681edcd9b1da18da39413de16d20a926b58c82e8630ec4dd32f1c41e84b788327eb49a0716872c6967be0eb590eb657886351b05e3ca490564d28924af15fcb404c90091d41732e1361849d40c7160d864ee9fda0868e14c8003022f305392002ab8110acb30f76c384855e2e449ac9047dce872c74193b2261595777c758fab481dbb8764dcb9b61714d219b11da1f70d9642f5e5613d317b0f6f3cab079c2c96308c71357471f86a803665bc13dfa65a84a24db03dfc63fa2b875a1dd4c5c3ed4a73a5c737ec278a86d3f1158a55c9d88c1b1f85823ae4f8f1ff7ce539f9141b10ddefad7b0a925ef387458629c50f058ec3077df3c84506edba0b0a4aa0910baa8c004d88a46812e39dbc2f78c995b0f91b2d96ace0b65ac1a1700527fa0a6e151614d98f220eb689f710bf7ca0eafa414e8799ce8125b58bd82a7d5eb58b6cc0502017e04906e061ccc09e60ba864bced66e5b61920709878a376141c293b26293b9a8fd3edf3b234a39684bda1726ea650185bbf80ea7dc473850b6829cd741ab77db7ccda1ff8cda3d61f44e111c71cd860e229daca482b26418f16b684bb530d732cb42fd670ca4872239f1e7b410253278001b0657c6e3a37ba523260edbfa0d5d3b0e24dcbe8684b60988e8215083f3659c8e3598099e80b733d0be9c5a54ef746450c57b2ee62bb43d2ad4cfed0f4e2bfaa6a5fcfd3e0baec8a8e3b427f11cac1535f24d6c6ce163ea5a349b784cd173a617aa83c75726685ae649517f490945527818d5589953d794ab8cd44a2b7fa0b8ec211a493e619b68acac9d36b6272581f8a52c5a6fa75d3dbb908ab7eea3b8796a6e001c15834cda493b700afa0b281af49138da9a7f418f017ee4188cd4eb8f8d64c807a39e7c0ebfb072b858dfe80fcae6360f325f7dd98f2eba513d23d73f67310f87cf1320057dae2af2279b47303dba7b515b7789c38b078b78d1d199570fdcb5ddee3509ac6e1f0dba804a51146683155440f363384a03dbe8208d565925f0973d3c196eca2945f48a767953ca4655d6da7342e0aa917b6893bf70e5afb19938c87ed2f7923e5740502d3da6146569da04a86bd8b619e99b82efaa67546cf236cf4ef7a6c99e93398785cd2441da30bef559bd645696225f3a5ac35109e878dca022b311fb8ff67176b5d60a26574d87e11bff103ddb2b7e80e3f83423653225fd91ac4c9bfc6e0b77d282090ba5219a463eaac019eaa9a614340a70247cdd6a130ed87793ae7c118f421686a26f818d8a3cc8dd03b692583c2cd3f30d83ec5f8e4bf5e4d3dc9f9ba6ee3ea2fcbd0198c9fd1ced0600781f036fba61a85d4cbd2583ef9e6bf981673d85fceafe7454fd5fd341c916fa31e832811453ac383facd6f809300c753c0333413191637a574ca0e2863d1d02e2955ebd225664e645f256ce8e057a9af5a96450cfd310cb9ff4a8f07168fb51c82b9850892e2fe7d25d465d8e2efd207a51d7e7470ef4a99303c395dc859d088c56218fa85a1d9b0c38437c8a3138e8e5b8f4c682147c2cceea79c5ba885009460926f128ae569cc20d54c8a3603555fad019e5b35e60153985ef914358906bb636ef42b0f33d425d04e20435934d3559e7f2cfd7d988694e186310d041c996aa1ef70cc9690c8e7fb6dcc130ff1bcb5276439b261d4b511912aed4f7c892e2400834678a10443c9d8fdf8e23901538825fc5f870ec3a24d88f0d552dde5d5a8089c5e39397413435057515afd0c9912184703cc5cbd8e4fc957fee46209c92d2dacfd0b13f4be70ad0814efc120e4c5373b628c34ba01e095c296b015e91cd2851a6f58c1d3d33d65415a9150d6d26e058ee151e2beae6dbf5fe75812441f1c330a6125b6ed27ae2e20b536b62a0666509faa5c89443a6c34dcc531c6a1f85528cb4a3cfee223ae4ac66e034ce62027c992d7d623f76c1cac9a567b3daa9570ea6a6985e14004d9ad04977a15c10bf3ea1b3ba069d4d94add6cdb084fa8e8f2744b861341010e43a0946626c0e8ea049d2c16f20d6ec54f7b9782b3f6034e2d233b99cade7344d219dc985dfe83a7d3b7cd4e8eef1cb9b38356cb67f1a1ea60f402fbe7525dee4b4dc717f81f81f104327b7488a4b13c952394d43bdcd94538bcfa34697589d77891708d16f3167ee4ba05b3972ffae0e4edef016cbc84a188e8f8714ab24cf36a85fb9539ec5b1dcd841d777db45c2b3ceaf38fdc6cbe927c54ca563047dac602b2265163210112a74ed5719b868641f2cfcfd4bc6eed7a4c0315e6dfba8ce0d06086d70efd2cf5624548990ea6a7aa537378182761e3bdcc230c3f76f33da3e29a3c66d46d36263997242f597c1d22038ecccff4a3e8875bdb852bcf3f804d0152e8ef6f206fd78e201fee7f6e881a29b8b10231c1c45b1fdea1def36703ca63c409c8fcad59eae421951c303041b270020002e819c020a9210088361c2c5b4041316c0696c2a37d530ac9dda7c611111966af10d9c30624f9c98a70b557b8253f31ad54a393a5f39230fd75cf03a2137c934a8168d2ce546878b637be0d03218ebc29e1847c14325fe6696d0a9dcdc8b7f5909694302e584198789ec9106a018d47c680c645b732704365b91d0e41d69b1e00b346a99af8d6bd350fa42126c83580b2c0d10000b78ae2f098ca7ccef39360ad9c896c20343b743a7193a67f3c0d224b547d20563be8cbcf53f88128ff88a5861a42c0814279f249d10b2ed0f54fde00842134d43ca842f5cf340beca4833e4634feb244a8d18d22cfc95fe2a8878f1e841ad6db9e8087efdea109945e00a5ddbb345e35fa078290f102ee5ac807386c5736daab103dae916320b475d575421cf7128ebfc9f1eac2cd15932fbb22489125029eed529cbdc8572e4001e6f8a7858b60f89d70e9816fe48e832771110a26b4622f1c426f08b25ebbcb32ef5648e40a79f1e1cca2e5e3e95f0f718df5bc2ee38b871c0ba4edd253ea9b6b1b0032963eee10a54d0fbe1403bf63c47367b11db83983512142006c22f41c23819efe88a02f06ef32e1584ee35292af23ed3ec29250162993c62b7c71dca47fdf02ea02134541ee1036f60ccadcc15327d63619c4a2c053c91131555ff187d89f06034fa46fe95f3ca90f4a7dc7b73ad37270887cf1ec042d974c4aad14157d5b827ccc8895e0a6de82c1893ec1de6cfce295c100a737f3be86841dc5bdea97cc9a0fc1b780aeee197c435397c5f616c10b5b06d02c48efd667b5f8887690172209004428c9d790cb204a0d0237c59d83a3fa7070431b83b444351fae2fed3ad82ce286deb394f1d6284cc0008b7336db7b5869d464843820fdeb8e6c1d8c7ffd46d75d356f9b3a16b173063d3d60b426ab72d4ed1e411d13ce124ba84c0777e6c394b8004524b3b14f2f12000ca5cfc7bbcd853ccc34200d0c0f0b52f5b2858183824e3b488e2926f8cc666157a31c7f792fc9543ceb0294691e9942d5141f802794834fcfdd6283df1531aa2ca0d1b1a70258e35ca25508af3a5009543ae7dc5ade64017bf33f480b906f3075ac920d7337c81231b09b2a82f0fdb998ad236ac6a5c1691aede048ee630a28b19e1f5e8d979f441ba0320304c272d22e1b6626588d66c17dedc76d35b35425622aab337ac42b24461d01cd7f1fb3551c69d9362a6cf405f6b254d4d0e7859b737fe99f950b9f97d2cd520e613bd925ea161e93b8523834385d4c4564a0bfe800b2e2aa3a7b0ab49641ebc1c972434576656680ed4e6dafcb5fb4cedcfe1727aabb8122fa72591f327e4c65fd5f19461f0aabbcc7f0618726b479e86fd7ac1831670dbfe72102e59a1b943876c469e03dbf79ef64f0366ba15296188b89c7dc6e91f5c8162e25ae93b99fe478f7822f4ea32f0aced56364001a3e595eecd1b218ee73530d912ddf0acf2aa76754f5b80d771c92eaea650b431cf442f62edbc8d97d57dd4d532975843f0aa5034ed0becd5bf605e7fbbb14def0829d664effddc2d6e5f77f574075dcacf91030d33f8f2245377f338ea5de9ab3c62f732a93d6f505172df394c8b732e6dfe3d195567482e16422b57177460e5d13d28473a5b8fe7f64dac4d6ec60bc4c2d2f91c7bc72a083bfa7614be8d63567330ac80f0d311ac30e250c572879ad9c2cd00b8edd3c47068f9b1e467fc74bb80e40915e05dd782901386cae9ac30e89f4ead94c0b15b224a422d4c1fb723988743f1e07a29d88c7a568e41e608627769731078361ddbc866461caf4ef2d3a1f1ea6f2fed5ab92de2c0aaeb69670708136e74ff85b503d85e2c49a584c5c9ed38186c7954058df87188acdcfb67920dc074f9cee792c06a84d85f14f5c66bfd85827e5605c3a5b7c215ab9dfc21b9e5b3cfa7104dfd48291da428887ec2b7d169f078d333fc20133a67806897590b7fc66f9c92985a5aae9ade4041065128d76f2a985073ad1edc4d8ade3630f1c0d366fa0f70e31c2688756d40887fc875499c5f04748d5a09829dd54b5f8bf410af6d2a2f0c3852ca4ede65aa510cad2f82e4b8a8b49a89a48706b583c3118617f750e8ad2779ca16c4f25d20b0eedde292b0c13a8a9afd196e2c233f3f8313daca5b1b9a44c5a2850628dac8530234f0e86ff06bc260b6545d4232a42f1d44e398a362c913a90f8740f6e2e1188065ab66d9cae41ff06d0f3c0fcd2ddfbb2813710f905b47e8d290cdde1be51bc8150539e57ab3a48f363bd6ebb313649f71e475eaf641d4854eca955b3dcf2e51aa427f7b14c9be2160c1fbd16b0cae13baa63feda09d13cbdb50c129b372ac08fc218656b93b268b9358d5cbed833ade975b81d9e3d6a8f57412c4ed0ee62498e02f704731a0ed5ae420363f0dd92140d9fe09cf62c108cc3630e8c334b34398526d1b6a0baa3866e378b878c26cb1fe947586d052d51adc93544db96e8ed2f2c3572e6aa6ec38947af6043a2237c15518332151ccf50b0bd32fefc21ebef4bebdf41ca30035b2fc9865e8db927250f5ed0d5c07f9d413a71b97438d1e1326fd3c33e54abd9a4c0224bd4312533e181434f634169ff86808051f0a0860eb14f616ea2c835591c0ff121e5da60920da22c35b463df7430062ec1d0e56eb0724d2fa1889c95a90160037201b919649e5cc9e1613b94e95ad2bb35ecd43258d5070cd36075083e1784eb6bd49adf955129e73b9f9dbcd971b91f9d01164f4099c9c47999341bee46aa1bc12eae8f42c8cf4db5dd8ce1345d130e495b82b01269c259632914cd332aabccddd470acfdf624b63e03af1a8c1935f6f597cb8ea5a8bde4dfb2a8307d7ebd18deaadf885254a2b81687e9abebc9b4ef33b77929fc08ca07973ff734958c39fb4bd3ed3ee92aa26930d249aa54f4eb364316a2b196ae56da7b04d4e14c8791610d97f55e5381738b412796ea431403b79d772956d78b0df717730206cd8732c9516ea9d702295908bf348fe9fd9062c7c77064a4040ae027d69a7c3232bad7e76d5507ced55c5ae144bacd2980efc8d7c701e0034a410848d4ccd58da8844834c50619341051781cca08259c1529789cfc09768bdbb0d51f01f5e5e8029c0aac9bcab7f652c179484ae2fe11362af7b4729193e37e1d0ca7b62caae203c9ec36d954be46de976544fa53c72323d3d6270c94e08696ca353486ee25ba7b1f61214f992559604cd19ef3901d6e2f192e2408be15be3ce34ca4107dcbd98dcb0e6bffd6dbf635fbaa6682491d1ed5ce06775b490470760604db753411772780aab48105885f5947fd0201dd635d7b16aaedf8b67d65152172cc86f66c1caa2e0237cc725de900e67a5495f39c36314e80a965efa1e6dbccbd52550570ccb8e94132fdc830862364c357c6418f192894a76bdb40a010ec3221d0e5655025d09b71f29fe4596b747dadf6742ed1132c9906d8fab1919e11c94a084531a045cd1a43813f9b729bd6505cc28153960164040e3105a0bfd323052c8b77110f6c4b3a84582c1d261e32e42568b29c5994ce4f07b5e3277ce07b7bb71f4d6a0e0649a0bc6b162fcad81cf782bab6b036142329f6f83498149b15014038428d64e6276f8f257ab5d2cab630889781dbd615d952b8e1c191b175543a6084303636f0532c38bcaf6664b3bdb203d2ae36fb82496b38a942a800e789fe6bc48942a0cefccf7428beb68192226c812c4670f86222750d98a71ca11b4fcf96c27c08321d4b767b7ba44aab4a3c4542d9b0877e2108834f7c7704c9fc8f7d90e195483f0a1755bb05668503967c197136744330ae7a65a2e2b0dd0a82af3a2889a911c3c17b05aa48f1b3cb5bcba169ad2b935a00fd25249d43df3a4f837d522402d69b64c3f2a422e085e82b70eb190bdd7f6c37e9e05f41bd8cc5ee4ce453a5c19cd918cbdf93d7374f84f050fcdcb07550edefc5a13312d8a45711b3e582c0a542780ef4929af83618c926e60b05c3432614c260645d1a7f46b4d7dd5e81b6552109229b3662486fd298e082ad98a992729ff6e5005dc33251bb80a09000cfb8df02d7e69081c894ebe12abde2c3e7d79dff710f16bb7839b8ec498cd0a392a462ef4a2e12a4f2d028bb47634dd1b0fea0b34cf42af8cbbe6e236293d20ddfa143d88f7ff744760f108b53c0cd8831b1d83f5344fc15c67a021bd850312856adb7638144806cadb17ce202b506f68657ab500d188397a7fc55ef147a3d40118e0372d5383ac9674c0bafd398f6896181f9df96123db437d24ea71e8bd05986ff709fddfaa542a82423429185a592822f716f6b4857bf27b48072f2b03e7bfa6b50146ce5bdb402c35200511e86dd8ab921394a0f58b2ede8f459848f8b91a404c18b02fda3d6a728a6488aca9931d62384e70bb19a984b06010bcebe40497d3743bf3a7804603da384e7e8bdd967ea37c50c37e4e2c13075be59fec0bb5850b46f7daab166ea7ea8e423759da87b801a712a250d96ffa62275124f214c8cc543353aa9d895b2419bbae2cb820fbfad13f6e3f45fac385e5598385c3e4cc68d1aa4357466edc427c9ee1591643e875dd4658f3284841a6e038820a16b3723b2b39b02247566d13e48e9b461903b5c06ce2712a5b3b17e7d714542c8d2d441ddb5955235a7336c4d74458f7df3ebefb22fb7dec01f96cb8e0e7ed645980d3f879fbf9e2ce5d47b413f72531b8a05543145534cffa4b60bfcf85ac4614cd045c871b31df9d84e69be5af92d8702037e9219aa402d2007efdd211a021cbb43a56f3f0440d815f9c18d8b77bc0ade5c0c27b5e8269f43517df2dd3eddafac8e598cd7dc3fa28818cb7546251585114a6c7fc4b730a33405806623c626f936752e69d4304689b665c23b195e8a16ce618a654b970707bacae2eee5d891dd4c4e5ed28ee82851e6e1a70bafe60601732804b90d1eebc58ffea96e80d6ea111c0dae2a7a11982251a3c793bdcf2cb56d9085c79e2a9e66491fb6b4efdac14ca05cd887d814a91b28205e0495f3886905d51842a7ed9df2884e2911269527368011b43b72ea5ed0927fd162e6ed0c178b66acfcca84d060ac3ffe205a310dccc9cae003281347edb67b454a68e5f0588fa04be43262f4d337bdd33566fe80b70ffe58c5ee1e3f87bef56057b1f7dc1015bfc9b717394c52712ed8e479901da604cd6c4525d0a4aa7cab5d110c19f08f283940d278ac2580f9bc1aeec66c8c5dc5378a2fd76f422eecd89e6a49288b6c33af8e89a7c9110d70361c489311b5eea6ee9905e8aa5040802cc92c8b0900befb89cca91e121f212cea16f6289006e9c4bc88eb32edc31bb24a074bb5479f7daf56a77294abf2da73836b3627a2f6d80bff98d10e59e7032d0bb0d087e1a5c142076cde84c4977fcaec9ae75ecd359a33857e7ed386fcafbac285d7e25d29fa4d9708c0952c196e5bfc50ddbb78812d610160a6aeafdc021821c1eb404ca62a07a8c25fc3887cfd5ba25b024ecfec50c86a8b241efbe5f0b5f5e6d1655528fc21eb6f7f4845b89054218775b9c93e0c6e2179c1deda648dcb3cdf82ec8d8fdfa9edb27747d3ca2e90f5dd1433f48f948b12f45cd633d10aa021494b32a2b81b5ece81baab0370262efbbf4f959d320e714cd8edf763b9d7cc52eaa34498b6512a26f79775beebd9de703827c444c66e710c7a2154fac3f153e20397ec32af0c5d2835df4e1b202a14550576a27c3dfd8157a911be26c5110fac2476db2b2b7fbd8cc002fc1f65bd35a950771962c64e6db4baea25620245aec2b2413f9fddecb2edefe60ff214ed5d87189a42ebf9a321d214cebed0cfb833d02e90bf9af0f9a5ba172da4b9544fff3cbb18a62e8a7eba3e51d3b942870da578f885edfecc03b97d5f1f8eae0c66a9bf1a65d5eb96da19654554a4f357cd7a6cbb9abb6ff0395be78cfb36cb482a7b82d51a26b345c8fa1ebc5576875d4c84f9711befbb5907485e3e1ef28698762666985f602f9aa823572bfe2c65ab4a199079a38b53c16340fd3c39cd301a97241b05fe9007fed51d54cd5e4fc8f4db88a74e90b17c1a203aa6c9e5a511b2671bc52f8164c5f04e448624f3b0ecd2808d16e1ad9a38f625d2d463a927813ec9bf6b74d46af00e06d8f71e4d74b25d2628cb4c4ec62d5c18ca8b345fa8311c4848129f7758da70cf2f1b6e47027fa68581e0bf2979f40d606df5a98d82ee63d2da6a0985c0d25c931483ae73625d52188f472858cf72b622374993c736b3c0394f23a02c4f37d9128963e665ecb0c1b9f8949386833bf1e30ca9edff21703e586db4689833cd82e62186a0de19d493d19e2695f809a2af14b1eb3bc56c47fb88c2690c3595ea54e2fead9c926e2d549a3ad18cfc4662fa7ab16ce0049aa22ee3535c2572644789477864efd286491faccab1d94aa4fdb7451b7ce2f58b27809a5eb3784f4f60042be7560cdc64d73583f59ce0ac55c265d41540f0a0f23b994322de9aa2c8b982440ae5bf1a2f2607259441f49513cc5dbd4992cc9aa967224570d418dbc94e88b76f46a8812061c47f8bb1537294032268a12bc9ed70ee5c4e632e8e5ebdfe32d43c98bb17629962fc98c28eeb6a0bea2b60996ad7adf4edfd5fff8d9e1e8f5480be3f21693aa9ef2fd1e9bbc340514a58f7108319a81eac56a8c50518651380954067131f03048d5d6b3adf76164ee7b41c2190b094dc5cd7ae363ef3407828cf7b9fb3b0669c8f7cf1238be75f29eef76b92058ddd8cf73de4092f850a30969b10387ff6580130e1a782ec644e37fa012d4f148e44f098a0032e25b90b800e5e3067697eb99b1e1459247961ba1b3736d8457c8945e2811aa0f7eb6a2a021bb75a5c8e86d8f0eb84df3b4f4af630b82ad244df2953bf3186d6900f39374aee37fd446b4f802cc82de450dc546d3b6e47091390f969e9213dae32c95959881076823ec5f387f28b0fdc2c223a74e02cf116fd1b984c74e0c65072aedec2124337269471c3ade01ff9896162b17e4619fcecbf67503fbb698a956215eebb6be796b543b131e017d81d869bb4c155e7e78fab245edebec003a42e15893f61c180ad06fb96ac334af0e2156ee5de7257c973a8b9b2a8da7dbffc1010cd0c25a16092cac83096e07be48a6211544b0d7219ed525aa85e3b9e1506df2e87a0ab8163b7fa7b594d61fd90a93944f8f2db71c8b67b626a9fd795943bf4788d0d926f06f0c69f497c0100e6a630118d1802fa24c079b2ff4cfdcb9c391927c5de210ea6f3a336bd73a1cab14580d81fff6e6cd1488294e47f86257340f5ec2cd74e20621ff1c45cbb5feb10a97cfcb1f1ed1b172dbb9091c36f561748fdbca9174f6315ac41a045d397b6aff065bdef227ac92a7440059c6434d49feace149c94753046486b7fdd20f6b7cade3687f1ae46fd3263b4a29e1a67df85c6e1dd0d30b34b0e63da47e4788f22e765c02c8806506043bcabfd2527a41aae0a85627a1be8e7f2004811d85c6952952d8d976c32cb5081fbe4da599f911cec8a32ef782b55571ce4de34c070e630669e55b9b00c8f43fcce2deb04a750576534b2958e819721109a9add54a3f33ba3a9745884d95d7b0c8deffa0085007fc5bd19e7414356157af958d477508ebfdabb2bcf19964d118b32b1ef3b0ac92342cd62d0ef0f16a5f9e4be97a721c94b264b4a2c35771a9c7d4a18c21d7d0df9931e915061466c448ff98f2b550fc8289ce41d9bd81d789872282992a38ba294e3dbf933ea294669ca7c2c5d828926b0bd8bf57fe5793621ee4808ca7c8e2ad80d19a6504355709367bdc27fd6979fb47c8eb90312513f0e6bd4eb12d6b2754ab583724248207ae8d1ce925a9e16a2187ac3d6fb8f37ca0f54080d6245f34abd41375af6f158ce6420f125c776ff7f61ab2f95be99145579bb0eb94dcaa42d3237575cacf5b61e21b9830d1c18dc078b0f464988ed57be8f15e729b98375c871f5321bd3a888f2993bb73b552a61d9a1a59d369fe5962660dd4d39f4190d3b06abbc18f20ad236ba991c72bd02818e881244054fb87bc5296fafee0743a50906a0bf49ef5057f291d9c543b092155e584f8069ca64367eb398aa147d331bc44547be3bd134f810944b2378d6a2b78924d3173daf423722c19d3995074c44daf420475f80ebac26ea01bec86cb761e50c6d9ebdbf78c50a54d3d852da6d11254fa1df483a2a1e9682a8a8ea6c33e02cfb5f9a2045f6f236b3bd7e2b64e0ad3dec6bdc39ec310a9f2a31b12b757257e69db4b4907ce6f33cec66d8e44b1187806d274bac41b98363c48f5160716729ed4b2439c0fbf86027eb55ddaca29e52fecb95f4ceb854048cb9f06e329b8bc5475b287e38bd8ab92a120e4bec0564e7308a3d4b871918c29ecc800b4b3b431e88988f176c22e3480aa2add36080fd404fad897f68cbf51dd4092b9237f2beb49e13a0a673ed48e65be8ce20f17fbcfd1c5594c316a35988830f1d40ef275cdf1012c7e6c5c1655cd914ded2d46310aa5727b51e483351f9c5ddeb4ded55e8a7ff9eb8bd791551a2dcb8604c39aa14db1f15254f647e8224468b923cf82324617d089547ab308829226f6ca84128ba8a2b6274a9611e66852492992444dbaeddfa6100e6de816b4d24f1422c956697b8a35b6248fbda511386eac7974a73b01b293f0de1581e6c8856da084016b80434d02bc261e39f23cc3de714473bd96bfe152101e427fe355acb95643909915f2ad57104780fe414f90f7d544362e33878520bdf49e101f64ead12d9bf17aa588fa3da8eb3f995c1c91f02aad21e91b235c4ea8a4b7d7527888d4aac9aff601f34dfecb750d388ca7895113075422d590dee6541f36aad0dbb59f9b8a659872b180cb9c384d143571f3aa186909f91e05f719b693a6dfb73629390a3ad32b9b45c3e8cb94b0ded6b4fac1779b9b427ce413b00e22ccae17b21aa40983960b33de67862c6a320f0956edecee4bcc7d79f55433aa562b71b28347e15ae75319fc833caa37111c7ff47273788a77f7252fa400822ab057f38979bef2533ec4083740d6ac35c24cd7cd4a4959ebdf4e956d21611ed9f3508d1545552a4c54748f8f7e7a1270aee0449bcee6cd45d7ed8efa3415843c097024ef45c0e4231e498a2843784500496e59cb8aa8a05ed182380f3f344433da4d09f338ddb756f4931c46d4bd851cb828b29abbbba02d0cfbbc0f95f06b949764cc8e21792c2ea1a82e6c9b24a0e540083c9de9b3612b6d43228183923605ad2a3b83b4ea2bf129c710a76832284e900f95555ecaaa7c6de82659fb117808826aa9e76e69ac2bd8bf7d02f58d03a648ed8f93402b4a201debca7230337078b890ac0c4c47e205aa130838043090e2e3732036d1c162f68fb84355bf22d80c41b50de9d71912282e440215bd51b2b892b2ee853925a11a9e7c432f0dd14894878ae36c8902f97ba92a484a06bc95fec9391bf3583884c48c7c1eed433345820490ec9758e5a9c20b95918f2233980142da4241716fd3eb01ac98d32488571fa6ffc950b20218353847a161c48d0d625040e5e93d8f712e6afb55798035190b168db55662038a72fb903685b32886879497a745b926426f01198ed1645f59b9e6ec99412083ee9ca7b16c3258c4d0268350f8117e95ac9c602a88e13c9574d9660961b21c4fb3a4d84482519e1d5d923ab4511cf343d8600d791d5db39d04e1fbebe2392e887cb2d52f28adb99a409535c81735083baa93375b8d52689852129e357798573a26f19c15ee440f3113b6a8c4ad5fe9b5c5c22384efb978d984707fcc96389ce487720495ab867c3793349f8da0bf065e6b7586c1bad6e0eaace335b8d149405234581860fc86f83d7e0b531353d6b94eaa8972b6730ff20eaef384f081bc81e15cc7150a5b6474841bfc72c67fe1b9766f53229809ed6feead3a9dcc4eb778705c6e680b5ce65aa9823afa47fad361aa11fe3b1f386fb899bc0bdd4aff0dfa6f6d211e964b695733dcc14f4c9356467186fb4790205cea53a45b4f802d14df80fa7c3997929f513783e0504547b291d61c65681f7ca15ed760a60343e9d14b3844877dd4e37b58903299f1879bf60705c86426ea0bf86673b84ea8adf40aa0dc177943a3f872c2792c0e0ea704812965df6db8cd779946554691c0fb527f749b7ca61a152d3df1b39335c80e9083623594be520b0713037ca295b34d96d75e218e1ce14ec054d7e4d0f6f3413a49964be9cb5dcd3acc9da89e9c562380c480cee6040ac4476c9e108aa23452b6480ce3300033425ee26f5dc5bdbb5c0a25cca56bc40de9ca1bcd9078aab5752e5961b1b7f3ed83563e6b3bf2a4821d23612fc76eb9947123c727056e6e9c5fbd3c4b37d2593695f9f30423c333c3714cc1c4402efab0e4307bbe7976ce6db67a7948b12cedc4d32f9fc2504addee823994f1d6931d55ffc2318e4e6777b3b134494aa8cbacc0519f9a620927c6b12eae894803c7f247e2d9e05e6f65aa11c5b33d85a2a20f07869e2d0b9c1144719fe094523c079f6f49b1c057c0778fd7a39ad1212ac3c4499fb02374dc734c9f165f3d7e65a536de4241b4588b149cc15117d127287e1d58719e92f42c24707ca7c84ba9661464d8f87678d2d6ce9923bf2a75f4843e29866df8e342f8e7c890d1cf6c8bcf460773f37c460c559237e686a543404f0af05f1f01b431947f13d0a738675e2aae872b613cc8dd4119578cb4e0963ab3e28d1e9985a4ee0c91d270bf95473834e70731fa0c0c4fbca3ee1fc9917275139ff03ca01fcc73dc7031666f581b60ffcdbc7b9f43b9c39f2e92553748234c65b5df4abce8ac5bddf809f2e296fcec39a6bd33e2b377d34d57dc1091e6f9dd675385bb27ffc840f4346f1337da0cd818bc8beb7fcf6437ee416e6441053e542e6aae68ad6225483a32205344e075ebbe8837b21f32de2c1bc645784ecc57f4a89b6c62b01a7c095323976f45d1ee0d4fbb944f915815d175e19ed83d56c7e1aad9f887858a22602e16aaf95c602291f7d2b17357a8e686259073ea96574e5465410daaf03ae72684269ef4cef4214a8768c17da2ba5fb435479421157a2d88d406113b24b62842a6bfca8f7a077cc981f511566ee9fc970c0ab0ac9d0958f1cf4b3a17e0188cb359a84992a2d11008c067998afefa6f1865b2b6e6422d3c74948ae83df43ea3197aa970e871d64dd283f6a6214a7fcef4c4049ed3de77ac882a5a2372fe0b56a876d9cd5d3646983571abe9f1232bb43956b5d5617b57696fb8099857792f3ed6ee7a1be64c1a00c268d605864eb7a637a491ba49849b6d36d1405dda981e9ba7ace2291f7f9accfe91fbe98b01bc4398d81706d3453106882acf94cb93d9b458164e403299ddb226399dec0fcaf178ba9cf6e972920e3d1295a7ecafe8c234b6b5f834175f84cc6d458e723509d0bfb3517a23b48aa2c841f061b83bab2778a2a8066aaaa3161fff6a56828d4d0c74a456d39d4bd1d235d348eab51244353790b22f2f4f2f79df72e5cc18276cde88465612e814a35e3ea8a9d80f6cc951704f57657c9014bca12570eec2e2a293e27ee77b7b3fd1924a61502d077cac087056b1b22b74bc69553262070fb361be408268a8f7b8a964a4275cb2f4a549358e170f624d1e0827fc3fbd12505c961b74801b8ffb196ca1501a2872b4216430665100905a60b05cfc32e61b27db59a763762360b8de88ceec9dfa152f7d9ffda850cda3ed71d09bb8a3f4bf230806aba6db82824afb91a13caad77036f4935c370a93a2ae7e4e44e1d6b920f4054b8a44877a9c7f0d51cc171cb511536b331dde819bc3aee7b153d9313b5228ce2b82455a53b513611519c8e85151d3534ea2cbbdfefcb4d73a05fb3cf9c929c8a500c156d7a560f7a91de9800475e31e3e7a1610786ccece3c648ae10923e8534433ebfdb0b32b0ad27851e39d23598a37c986351cfa64b4d536a114ee53e40cad325b9f19d519116ccb89a8bb08581aa9a64a8119f8f6f230a55455f9b6baba60efe62166ff830c850772b6fa31c46978280311ac7583c4805341218356debefb5fc0d6fa3de12a6886c1f09b9203156c124d3db83e230f7f0e51629929521e576c34326fd0a40143d7f95c98fe9273599f84cbce65079e865f7ab99047a58257b064a5453e4a4f4ee2b0b1e889de367a3c009d894b3eeacf96550559f6b6b003c4cc4702d70708412bd883fa60df43f3995e08f0f75934d573c4bac4677b6426a66cce116d1654cdecefe943e953e77de36bf6e26c60e98942fa0465605a4bb5687aa369928943b1ecd36c08381784b9cdc5b8ca8015996fe8d12ffdcf3d2ee3579c018871a9a5f27bea607b6dae6f0318aaadc7380085d840bd7a5561cdea817934437e4e1865d24673d13a2c9ee2c464ab38270e164179631393d34b645527ba196b92e6d820208b691b983b041da8b1039077094f07d0036c39a429ce8dee000eb47f16965513850b419729b2a253650d3accb8ef89d9ad47eacd00c0aa1776374d303f2a7a8ef8a6243982a1e57da65c4121390f41d2715708ca71f0ba848215efdb1b6a1bfe7ec45114c3035560fb3f1ad285ddcea8fb992845c906157fee81df165b8b10f2ce1c74332353a8b5697d13fc72336fcce183fbaab769e7ad5921bce453885ade6952ec386b525afac8ccc8144e9212c614ad13485e0170774b9e7b7484317740166efcbcffcef5abbcd0ef438242dc8144716dfdc881f935c6ba02f7ff0449d42af304b8933d0d87620514ccd02aaab3db730899b37fa280c458861b98b5e71bb2a6ab58b028d42034df80d0ce500a3a3a00a63490133175eef32d18c4bb977a0eed5b4004bd729c3125bdabb66385043b628f9f4a1e8f7a816256dd8a55a0656c5a100a44429c123e7d5056311b47de9e1dbc3b5d644221b59e375ed75d0577cbb8494c6acb8823c42eed66ed6429a72615f454170e80aefd2395bb056db04c2ae842fc9da6c47b8ef45b744652ff884697b36618a45704d9dbaae3d15ef0e91f6b3a44756f7ed768ee16e978933e6fc1155d4203e11097ea818a1e7eb141ec819c90dfdcff9892f067720933be03c4bbff0f1ee3468b0e7ad124ef9d4ea4ef53b0968d22bc4c8f76c900d9ec57e131fcd06b8fc720688385daf3a37df0ec9fdd80b41c674eb9f7975c9a2672bbfeb83a8af098b19139eaea0d13483b7beb162e7189e64024f5df7ab8b54f26f857fb12b899bbc89036695b10dbf95d8e27df19ddbd3b85f15a2cef713c693a67b0eac6dd967427f7c93b9ef0bbf72d7b22c3e3afa7bb28cd1d4d52b5bfde811ca56920e38240e333b04528467dac18f1a586733f72c27e30e5f59b68c2cf68946b065067ffc161d08d2416e9193d50ac7862eec88d7600baa720fc098dbae757fbeedf0d1ef3468b1f7cd13cef994ea4df53b39e8d22bc0c8d76cb00d1ec55e11afc28910316397cb161b49a307b4f4dd44f2787e1259f724ac29ff888fb7f1558fe3b0077b0982bd503573ce852f3b9273d71fe66c6a7d8fa144d7792714433e626e5d4afc0df14b8a2665c052c91aef625ce108a49f80003e2ea68f3672ccaa31f3d0e5cb422f230ced4f7629753ac559f02386107c2cfafeb874c2c62c20f5141044d78a06dcff15fdbbcd2858ae016c54dd2da29cdd0f9f83732daba3f9fd88a8d120a0182ea8985c38e945218d4a8cefe6cf377cdeee314a82836dc1e168524237165682ddcf71ca56a63384eef1596b360480d601b79ff74aba07924ae22cb11eaa63c99eca9ef9a4202de9c7d4700fd75e5db47966eb27f8e7d27e33d5e63d024cb9f82c9dd6445768498a5f0de60962beff4efc2384310cd4a8c5c665000d7d2858c6d6192c3dd955f589daae7692eba14c8e946f39917e7680e67d737d3bb9c26c032a3cecec94f2d47e3f1646a4125ae3706f7d12e30a633401ac9dded4d454f07090eac305de2692276df1f8b9a1bc42c9aa9b3080da6b03a52b987637a6456be9ba5be42a28dbe3bdc7d65af1573e0d6d5e2e7a427a3479443aae983d5f4565c062c0e043d678adaa25bc1b05ce0b003d8db9fea290cdc3b24eefc005091531896edb888e99214fab059a350067a88c68a956c58571a828df4338d2fc50ab03a7ac590b635c7fad8b9d5f8bfffbafb0279811d7b265a219b29f177d54b0568b09c4b147992fe81e2a4990be955b66e1f9c75e9f01f127dc7d0f1cc12bd59ace599441b65b1c1eb71986dd52054169e809e3d36afd52dc5876513555909926ded71681e8ebf0ef26b1efc9cd16b909b2fac6f79abbc9d1a7ca3df3a773c50d9da04e67acf4c2a49727b7d6bea1c25176ba124cc2fea7680f84261699e4230568d18249c1fbc66bc3115d75e6210879a4535cfea663bbec492e1a0ef63a10417f797bf5338573195d4365a58a42caf53b2db59afed6d1d48977de530de82dff66d20b27679b68e30d7cd71bca4c4fe61b578b31a0af861b006f337dff4f7f920339ce199b8ad5ca864e0ab1d591e24e4a999789a9e2ce8a119498ea9534d93e352ac09a12c02810b6f76797c6ce65148c6469164c24c26c39e4c89a344554bceba60777222ebceb56de40b3f363d777679ca099b080c50a6093a9fca0c520294c56e89df2ef034210ea724b520c5bace84639062a6f83e8929c4dba6d7a641069b1a28d2832cb8c6e7e411134f237163a449b36571258f3a3d72d83a780b0f2334c14b7f816be5b772657c91d69459f96d4be0084fa2c416cb3ce1a45eb3a628e596bd2cd85016f362367dad7ecae5569223cd9ca54bdd2c399ec511c08cc8c152e9f40a0c8db8eee6c84d8db14748b0af230c43c02939db6a32ae643d7260775c2de17d6ac0b8d8a97410fb19d3c9a7b08718d0d133e2106006a446450323f468b13ac35d76049181ca4c39869e32bde423f24b4f82f7f39cee1445c155938e5d812718cf19948b96af1ff0caca62f735e21d3b93351bbf40edf602bdb75278efd1fa27e814bb97acbb4a01bfa32b18169fd31be9a9bfb4948a1dffcf58193cf7b65e08e58d8b95d2819991b6420c38c441e6fb43a7ea05929c0c99eab30b5a516e21c5b7df3e719b21ed43feb7ffee09ab1aaba3c174b59143ce0e06d1b333d1a531ce85507956650fb3a7cb197aadad29ebf0c54482a12c94ed17213563a3011a14c3bd27f28475ce9643c6b08160341ff93423852f490d024b6bd923c38b94844f05c400cc8d0303e00867ee17232e763add8ff162fb44df4269dae8e279d4ffe802acf142c3cd8f7df2d3d5f5416a231b448b1bf46040b77cc8484cebe3f3e5c6c0138ea12b2ea9d1a012a187c282c31e64413962214dfc0629a9a388551956e7aa21fe8ec9ceaa6f673480ea8b80ac8982ed04c90a95f22a7cad3f9e590998acf7953615f7258cb9f0eaec7da96ada11d4c67b08d56493e4a69009bf6043bf733ba587d71749af833bafc6e74acc9dca52779c761dab99c85a871b8c05b306183d910d33db0f37d46aeb693405496a0486488de5df4c5e287d8fad702d549cfa4a3e61a55cb6e3029b88bcc0e9a48768e10fe41c49045567adf6d0181f238cb33f6fb4422c74ae162535f3c462bfd9dd3b94be35094852bc16a3240c099f487e67b816971aaa8b19cb09fa9bf793cc0a02ef3dceb7620aef7ea71e6fd5e7ed2be94f0093a2135e22acc740119daccb52575a45aa55d252d307bccaf1f3b259c1c6d4365afd547817a184a3407bc4cb9b5381056f987c630e54e30d37954d3391372ff3838754ca78976ce9769a11229d7e0f8f603601dbd1be2b2cd65e92ec76ec6139384bc0cc38d08ae8003328745dc6ffcb66c16f7ea88b4accced793ee127d2e70584d7eab63f4aed2dd8ca677ca299fdf35bcb4f716244eca217a5cc3e64d744dbb5d56dad1a53ae96254d295118ee717b9e148a52b8bfc4ef63d97f8a00da87f71cd69382b7bc7fee309fd5a04e2065384b39469018e5eba7a13c857af245b1e7f784fca6d9e7d1de43f3eaf8417023a26c13c605090996d0e2e9750cd86f2fb134592b8b15c480df7eb34e30a0a6b4c8a4919a9893b350240a6386e3962d54f25349f0d070b04297ee656cf7e41d0010844c0e83f10ba9e056f35d0176b012122486d1369c5809f9e4981d6db56f69632252903b003db03980347e69c519665d9af19cea24b65599640f8d21e2031d2dddda3111cd0b27e10f62b0168e46e60d0fd740cc5866666b8efa7bbbb795ea7af89f9a2f354b4dc7b81709fbb1c0a1c420a7c010f45325582c41245cc798410134951eea7a5e7b50e7a9069089ea02c0ca1c90f72ffa44e24310050771091211d8aa7a2e5dedb83df7dfc95fb27087762752c54b352cf42f9940fe5ebb84f164bb1010e7a151c8066c84a192d6ba0f81c1c889138653ce294bddcdd81fcac7c4a501e93c6a88c4749ce643f5b59965b5996655996e50f77774ff115e1b2bc8634e571f15a11017bdb5636b1ed006f57c5b6954d6c0fc3222dfbcbb22cb71530db394e04859db8197f81d12ff48db4d82d83c1603130922439b2f1fd9f0f88eb3c6d635297bf7c0f56dbacb60d21eba685303dcec23eaf9f0f089f919136e3b971d6bd3eb72426787074740496e0a8476847bfd84572bfd846da0854ea6fb350be8b4c1aff3662d2d46f0ad012e8e3ef0687966033e3a8ef76a70bca807be22a49320cc313f8e4722d23dba7a4956a200c17770f1410911ee5aee4132840586c19c993e35eec7dca0c7092ca120af068be58f98aa88448f11161d1018b2d73f50be559224bf262b281c0560f84ced3e1c09c2e5713165bd6325246c996b15cbda339f0ca7c45d4f9c26f932b345b355b3f1fcdd616922439b2bbdb794867b5ad1cd8b2a3965192a4242529c9e204177bdc081cb7345bf4b78ca9c91124c9913060b1653c2d234ed2592e7fa1efb52c47b33cdfd13340b9ff26196ad187b4ac91920080d29233428b7b123810c70aad0b5e00c97a758e7b94afa3b365b6a741346fdb6c5ddba857556b4fb8a914d80281fed4c7e84fa57e27739f8833b77da94fdcfef41deadbe94e36b2f6367e3f9adab4181fa2c31f6d5dfc9fd7e156c45bbd80551efffdd337a6e4d14b96e7d1cb282b20cfa3970bd9fbb043f99d8cea52523ec6fd94dfc9fe8915e5b90fe54bfd4c718ff2ed64eea34bd012ba20d4573b3cfd4c9dd0a10afe2e88298c2e81f1db38c68dd29a0b41d4ea5e84c5125cb8ba097558355befd73bb3bdf6b5be06da30db8df868ab2fde8c60711eb181d132372db37197e31e4707a29eebc0d4efb42e78517ea7c575dde97180a76ea7c5ddb0b85f688b7b6afdd5a1dd348d4aa06dbd9d0db35f3a3b515c5ba4df0105736819166772b83072d0876aed47821a5fadb5310638c0bffd6f8877b1c347b3309d36f3e2d3018b3322165dd4ff98d99058103a4bb18389898989898989898989898989898989494949494949494949494949494949494969ce395730675d67f4a5405dbcb9bbdd53b1fbeeebc9f330162fb7d934a782670d68af81d585ea8faa17072ca26e783f0628cd9c9920c3e2f6b8655aac37dc4fe0bad3fbd781a296e96b0c78f2a4c9b34d735f0a9e2fa882cd9b0a9d29a881fa6e679edda2c4df58906ef5cfd4d8c0f0e61058f4bc23b5ce0b031eb48e0e31618c3d2fac417f0993a61c16c432971181235d5353f303cf308a35f6aed6ce7e01c3b0ec7bdbb6a91dc019b0487d8486588c5deb421b86211358a4b12591fac462b1d8f49fa18b33339fb316c33e72161e4803cfe3f1cebe0ddae74465e4794f43f54778f48dce94d8812ca6c5468045ea338661886d4dc6a311d0c54c0268b44f0816a94f28e4437d9ccbf6ef0a41009f58423f156cdb3604163fa79fbe82d0a021ce44064ece8cfa48bc5eafedf57a6922c0227d0dbd5eafd74ba3410652d20d90dcf35e325db2546e1b1016b8e0f5da5e31b8a1b19f7412f98fd9bbf9bc9b66b99626345b355b71d0fce9112c4e231b37e8c43132c2b961010e616cda8d6e6ec21b67dd6d8e008bd368e6860e0e4dc3f575c03add7ea1477c3fb6a63b4f5309dc714260711ad9f0d309cf16a0ca4a91799a39b08d1b738451a382317261c402c8d7a4c12628d8b811f6dfcff317aff7dad4e0fe88c539e4420166e8ddaf073a2da65aad870a79e94b3c2e09202222801608a038746cc02215e231baad69423a6828b89c60984c6313457ae94bfe8a21053d3d3d200f3d492d23de253cc8c07c81c3832d305bb8fbdfcc17fab13b653f55d36037e0f0f3a3fd7c425c9ad42c5433e9267bf39e45075b05a955008181c02a15462a7c5001848a1ae0152b5a5a665cc44c1248f0a62bacc207dc2818948a1f1af0834ef3c9fdab9f19528754365bf490bf3455718d0c38c2bf7dbee82b6a904517cfe52f9a4f23394241242cce988ecf62310638c0ff17791733327050f8ef1502ba000885511885d121221f6030d86cf145300b7c13befd44dc501a77180c068369b6c2345b1f088b1406a3340e83c964b26dc60cd91216a70c882094c67ffb18f345ad320a23cb2502cc380264c22285c928d24f87692a1e3a1b294c27663468bc9099101512bae052cce7681dd412fd1b727072e812b1212015c75dc4584bbf1a626a4f45c5703a427436e442a8f6ff018b73890afd34e92c391776778f0b21d0614987d3e1c14bb39a7ea12f242494abb83d79f2e4091547ba89a3004178f4b456d85a604184967f38bc031e78e1d55a4145496b36027c3649d28351abbf1625adaa440b62205bfdb960a2d53a8230c1acd51f003ad0ea34947f242c35a1a16cf537c29056b769766e1c8ab89301a063070b65ab3f1248d05aa1293d52df01aa3ced0a05d86b8540ca91f6df68e24ed55aecb888928892889610257538b38b086966171152cb542224a22544a48b6809918b68495213cdaa8b68468444844424f35c442e22a40e67de98b8b5435bddbdba56026d6a9dc5d7606ad5aa375bf83fa5d1fcbdfa8b6076f7fa250b16e1bbbb87ef94524a63271f2c2dcc6069c15677afdeb412a2b31292126366dba1be512854bdd1d97aa8afb55a3bebf49e3de79c73faecaa9402a4c70e3bac8028cf0ac85677afee04c589ab8847cb689f8172e7a8c984b8b3937ab0e501f449d6403105faa485f6da4ef67715f17015f108cadda434e3c8626ba0ab88478733ef7057d18eecd3e3d5e1cceeaea21e1d5ad055e4aea21ecda37d52ae229f1d3b7ab0abc807e5a0ab68478713a85a6bb7cd5a6bed4ac86edbb6592bb3635742d65a5babddb6e956b3b5565b9950da4ed55ed521ad3b6f84533130e875482baaa6aa0db8bf3ea575d334ea75ab9c7ea766f5a65f0212e941922449e2f40bfdf2a866bee03be0997b5f65989165b51f0878683309a009c3d007f651b9662409fe703a89931427793ab9b8043000252ad549b5038b937455d26adbe5540fe27875ae65a89b2e5daddc9ffce400eaf36fd779bf568c294d833828e60b0a5260b6b01f430898460d170a2dc3bd7d1b375aa67bd4dbed639e5503c68505a6da11a6df5ffd5c3a9f8d0eed731f0a356898f08341137cd0d79e74d345b414752fc6de2b86093360b1c66a6c0146b9fef6bad88bcd1728b97ec79cd5f87ab85ffe523518b058631a10788538cb3a14c393557ffca5beb01f86ff15aca0177aab1fdcad998aa11141a34267961cb05f4ad33f2949691aec18a54ae60b071bc96c51bfd61f67e9606775cc5f869ce53dfe52ff7a319f3a94ba178571e7d50a5ed0794c9001fbf7d7aa5397de5f6ced0e04aa14ab5a6f0d82c5395b91fb59f4a031db7e05a561511386302e9f8a3631bb97c6129705589cb31e7f162e3398d2c5ac66363dff10e1052c625ccca88c1861c7d06b76c38d0c9c9c7096840c7746e443f9f6dff61cb0a8f2edddff4646cb6ced4273a808f6f72ef5a1401185f07435eeeb27ce32d7580e63667ca843899fbbd347bfb927f24c166f2ced188c2401926b6f6026575003beb59d41ecc6068691e712c2c4d8c0c0c0cce8c80841b4d75e7befc4d2fb4de9d5acfb77ea3c6781c2adba226aceedb517abdf4fc139153afb77d6be2b63277b53f61fcc7268ad4658c438897b2bca0318638c71c639ccc0c911825dfca9e77e0f27c7044a33332a098b9ed7282758f444cf7f64dab9807e28084210345b6bb59569e50366e5e347cd8f221b453c962ce9aeb6bbbbbbbbbbbb5aef6e7777eb1e037cfdc5415487d5ddbabbb5b55aebeeddb5dbdbaf0e2558896db29374522769b2491d18c1e4de9fdfad48acea50fbee019bb3a9134edc6c713be464dcfc80c530cfa078ffb04e95797a7b7ba65d3a7495f73b2dcdfe8af7339593e257583e05b87acf5d4f87fe1f0873582bd8755528570aabb5536fd3352befc16819944fa578ff9c142b1f0b292afa93c5faa9149952ad7c05543e85ea57543e45fd449cc2376ac66027e93ee5b341e55154ef7d393ef02d554751a96fe695afe75bde77349502698a87a2b252b1b8b44f6d5243e5b080edab5e9c463c28142af533cd5a296d64cca801b4c49348954e3c91c5197322898c4a5927c289a002e471b3d65a2d555fd3315dc754017dfbdb0452166990f614d63d3e79fb7252372df567f65c5327580a5bf9d9d250acbcea67ab673447cfb754545e6bfa92e25bf9e6f4134bf5fe3933cef2ef545f47dbc7aa7c38765a2a1dd8d23281afc05360b672e850e958016746f1e1c0287ec362fdd3a352283e95b7df4eae376a46813d025ac209483ebd8dab7c396c7460ed90fb993aeddc0eef5f94869a73ce39a7bb3833517a4503961e7a587ab0d5ddab3b61f9614951024a4ad26cadd556a62136436698c15677afde14db1ab4f1ead5eb75cde90f81456ae3a391919671cffb0fc398ccf298d44fe54d294f0cc350838c1a5852008325052b195c2b195856c0b282a6142446a4a3f1683c1a9146a43169441a8fc6a3f1684c1a6763d2488e4923d2281b65e3d17834c646d978d423073958f9b8563e2fdc3f61af5a6b75b7d5ddab3be9b9c10d345b6bb595e9861e414514a1d95aabad4c238d11168404094b0c372c31f8905a79ba187cbf1816e7c8d32c1a1414240810508f1eb9bf7b1c1584eed2a57b654440aca9b93560d1bd32fcbdba7b0b58c77dc6b868d6fd00c45ac8952efb5f2ac47ce9772603f0c133e121919b16915b2504328021831f363f586860a1a1527fd10201ff1defee5abbbb9b52776bad37a574f6a435c507448868b6d66a2b138b8f1c161fab1a68ac6a20c2fd9385a8c9539a48602cc7725c3a12b2941590e751902cbbc6a52ee21997c6a50e671ecbb11c4b9eb1892707cfb8343219998ce5588e4b4626732c83c6b1a337b5d63a43770783a8c161631becfa74c2382a2b48e669fa008b33e66e83732fc65eddc5cf5d290e8e8ad3ae7e8bb55eb35cbe65e60c0c1f9a4656abd8c7ec30c82ea2a496d156ac86e0fa932492e5126080fb4f08955ba8442fd864e86a2000109000a3150000180c0883c482c1481ac691ba770f14000c636a3e725a3e174a438128c99118444110c3200000420020c018831042ca640e2d8f3b68ccb669eab3dfe048a22e37adf2b568a1ab848b84ae0e9ec55ea2db29b3ec13ba4f7176f4740506f4700e4df94e52054970c462e67de9d4b99d45c574aa4ff5dcf5eeb60a1f5a59275a48991a65c704dcc32b136ad35ff74f0c5ab8ff2116d3f2b9cd0b187d66a14491b34489821e8fc444d5b38ffd5d8e5e29de3ec339f883a27ca4fbe5262d2db185493494fd6bad7299ebdbcf4e8ad76ed9e886ea28bf484c2cfaef82290f13133554747209486c8889a09ff07b355e9025fbd016f27ed72ea414a110e2df94b5ec4ff969b6b74608ac7ed676d767fadfffe39c4a888928c8d26c567b9d226fad978e95efd0697a0a07fcd425ddb9809261216653495b700b8583165d0df42cc3cfce219a4864f797519abd40cb38691d1c596cce67bd224bf1b15a1dd8729009ea8657902aa558127d8c75348ac218fba9542dbaf95aeda0ce41ff290004b0b046724a9fc2ac52eaddcd13af7011ce8af91a77d1471fa7503e01e41181e6d1fb03ae1676b39d6c396280c3c516830bcb8f79f42f6ae06cc71c35ca1b5711c463f8438df5498ced1c3158c24671c341e56e14c9ef74880afd1cc32f8a431112d0f7c38efa87883021949ec6cab9b27ef4f1d9677ef3c919a270005708293a0e2455c1ce0b2137d40a3a2a0c8b7295eec8cdd0e7351f911e0035544687589be833b866f71957ce6708cb5b822491e1762ddc8baae3c82eedf7fde468368a96c7fe00c650b452ce23eaa707f5fd0391cce959aed81f251744521d6951c092fa20c1867968ebf9d6a01a3bc4875d147b83447bf92e5e19814cec080ea1d27447a108e6ab5f9297141ae0c07f3546497b2dac6207aedc1fc690c1b046f52b94d26ea397375dfcad26e79212f3dfdd69d4b66aa586a6a75290528dad28eda1eb8a82613daded9f626d70a88cfbad928ae34d381031de5448cb66ea0299e3930f8922bf5ceee8704e2581c70fd019773f62f01cb4d4edc426943b9ccea6e47c8fd9d59f558563ed844960f1c139a7003ff2416905e5a68d2533e81352ff65ad5a1dffa4777a87f58c2fd03ffb5603ae02fbf3c0674a033c61f61bb014cf227de365acdd179d8a1db15c2a0bf9070964b65262d59da41f419661cf3577e2a01b199162226995fe30a9edd224e7dbb19a23cb5ac527aaa72220776c09cc4750653a0c7451e872656061152715f4d204f24c03b26d6d754ef0cd45d983729ca5bf07b4b06e7a95a2d185bb1b8e7f285fdec331c40d8d71c63c4be984e09e9ba067f9fe02f09c0b6f6131a4d7183d7b85d2b3466904102d88c085becc1f57a6d0a558ba2f23ebe994a34f0ce2d3d058775ca05b83fe0b604a744438d506650e5674324a6208d04382f13c49308e5e042d2f21469f39252ae255990e538550a73c82c2084c66f973eb894bf4fa10f5e83f0b118eff85117d3aaa8af2d733d4bcb1d410c0e6a186c4422fc9aa290fcb0b24bf7a7e4fec9e143b1e158c7f7d8a6cce6d1a838321d78c2d6938bf00d78ee052aa7c6952c0457e83e97bc8def08fd20058fabd56398046bb16c2bb22c8dc230f6a959291ebf920993979d25e642cd5843e299adec4aecffe78eb0f613d707034f1118c706b8165909c692c5d279b1ab94819efb743a726426c2f26d03d360f0e162d168a1dd64ab036350be9292aa22b27760cf8dfeb7aa7355f8b16b8752b445961d1007f741f2dfb2d8768cb698fb3a9104dfd2f77da39aece5eca0159a644c6ebf5c5a71ff39bd4029e76c22bb8b0a6535aa1402681507bb4911a4f1ae3bfceff65f576491268cd88cad38e9d1671c042df49968dd02ec9ae2fe01b7ffe1831fedf1c28587190eb07b4fef6a4a9a2152774375a137161a7bfcdfdfc1eb57e2125e1b4b5435bb20a369f68358c5a43bd75e665f421d77badb72cdf55b8ccb91b02840d8329e35c9ea86012bb7870604f232b09392e77c34ac516e08d2a3bba2807ee6bad02571654cd5f84000d682a01fe7f6b386edc0c2b70a4a4a6344d65bd2cb4663076b11430a5c56cdca1c34d22eb53c14237d10582896537810b296832a018421414aef65512969caeff5b7d1d77928746855ae00bf4f5927a8b6be5bc3face30d795031d349a7f4b3aeab998594faef146272eee4ec8e21a59b35f0253c3d39321db3da353f1c8b5da2bb2e78c892f2bd676826cbbd7f97ceec3f667373e2a189f446a2fa4d84c59615ba0e1d680db056ba4e430e9bc61dab2c6c59d3955080d68058fd9209657be9a14b53105b991d743fde1327471b17cb0eb7125a4e3577f47e194bbdd61a3a1a076d7273b82fec2640c5ed4c0688f4b2c5c54efe519b650a0125c54f0607330b3530164588a0545a3fa9aa1d8a64ed63819225dc7d72a2df970f4b9727034dde703d92a77d0a8b174b8dfe248e80bf9890bb472d6e9b3293b048b0638c0bc084fe9271eaa5b56eb4554049bbf1e272deea0d0ec6e64e11a21ba4a7925cb57e03ff064184e2f07030492de84d351bb9ae07c2a0558dccb6cabb0fd32b048aa0f7e3e56d0b09e188ceaa75c74b55aa2f630ba6f27051540c8a71daf959e3f9217bf96b36155bc5da8f8552724eaa08efb7e261a3364828d22fbcb3140c4f7305c98a35082c6ccdbf0559f98ad4c5522570f5b354cd29358a960b0878fb09a0451d6a1083cf2419dc395444d756d4b2362da69b258c4a066efd7779e3a4ba73083e9e77b603453fc919aa48843200f2ea654731a645636acb28e4fdd88600c4bbeb36265ca4cf622ac593e0d7e39dcbad588149d53a3472419d3ce25c4e1c4f6649bbe4b09f56d49fcd8840d4c855f362b2d3e446f5dfa11f20c6f53dbc9d6089d3939b146db848e8324558eac1e1461a270c64b9045abe94607411eab42660476b490e8632ca00988159d80f7cc14aafb5d9f9cf360b14d0bf08b7af73a695a4557592a34c836dc042f1b4e5439d723867fc68a0952b69add0e035d832d4e10278384b9ef0ed095e87064f8877b5536ba495cea36d3cca4bd4d01a9de61736f58e03c5467e6fa67055d1aff04b88de3b83c52ed15d173c1930477008e3443470a8954c40d2492e13e4263149217ec39a46282bf5eab5e0d0e82666b6fbd2c08ef7319559ac782391002653c64799839059b2d70e4e99e200cfcfb6208062ae9a865ffef0df4a9f921756eab76ba5be92caac095ff57452146db2ef82880103681482cff267d654867e504ac1a5ebdb1eba9a0d6d3295d5cddd7f1caadc8b0599a1338ddb17c896def144a113cc13c98cff38a25fe08b2521ece7c0cc7fe6c41ec5ad39d1791384986234d43519dc2fb74170ff2a3cb013cc6b584fda3f34ef35de3e075041bdb3bbb3cb8499e52c99ab32726ef4d48475acad7d3c3f4d3bd46574949ce8e54012d926c41cdda41f10961c93c45204b3ac7020ecbb732b3b9f7f6f9eff356a8e8a9b4b0699c7d2da08b33c80567c272a159688d167e2643dfd8ce5a89395fd6ccb8534d9787ce1d17fd0f60114efb6a9e581588f8e0a48d4f9a17a4e3b4be0622ada3025f87952781148852a7e6c699248388e78ef133b1d216440fa4b51847ad650fa032fe0aa00e9dd83486626fd81b69760e622a9526e8d0d983da051769548feb499682b131333778475271065322ca5ccdc646a8e099e997b4e28f74633f7a31fe157cd895770f4fee64307ffbc8032042b039c0c7ae73ab6cddc204105dfb5812c4aa3e0326dfaf480b7459a3a4860ecf42a3feece49c1e99a769b9e8ca436129b25c522d0a05c001e2d8cfdefa6867aecacfd756dc620b22b7295758162097be23043b9c09ac2fcb4618657a638b42a795bf4e2fdf434c3d3b733e8cd3162174efc72935cac0860927aefe7b5b4dfb754ba8811cd0c5bff8678f9c1d8d2ccd07ef5ea2b42e97f34c620319d66bdaaf1f72ff1282186961732428a5d367e355b27e08b36b175096a66b095d98328585191943db3d237c01bf29cb9c78c5f8d9ad5b50b5a5f9f8f0278dffd60cbedb4ae15a1355b00c5051bb3d35d6032b626b06300180f76e67f1c85ae47d516baee62685c7d909d22e341bad0dd59b981b522ed9c62e67c2423b6a20466ddcfa93fc56cee15026c0d91f866806c8fc80721d8184b24a7e6f17bd3abb6221213232b037b38f2c99abaea2fe0300509f29eac9abf7be7a6ec0d322b146162d1aec2289bd1424aa2d8b6c657a2842c102e13b8f2822a5b89a22395b799fe7d615cb24107e9627137f0f0503c8b7c12fe844b70fab3f1311b25df01faf7006e3b06116525cdcbc8c0bc173f99e3a133a3314297ae32148c3e0bc96a0e37d0d003c59cfa3d1ff3cd9ca9ea74db686ce54082e47f05ffc44b9c0fe006d4a60aba1d68d93b9d82993e71eb48af060232a6a4a84cd27d54d0d4b3578ddc8be57b244692ab21648b4453e65b99bd8cc26ad524ce4407080f2adf99db8b3791790ce08cdee91d03cb283985bdbd901680e91770b05a4f030a50417f9f2614f403c5294ac22af9abb3fc5ebdeb93cfc611f6013d25d5e7c98ead9b48a7b6efc9901f186b78d97f4d77e5d69869f80699da8d9ff745aded245e47fafe5513a61ffde44d3419ccb309e40063064f6c456a483fbb73e8257f932dc8c6744102a800f1359963944076a5e72d387259ed87f1df8ef814ed9f2ee04fd679659351c4c1b93e449648817007c38c6b012d06a0861911f034773058be6275bbe4ef7d0de9b911823da1c03a0d11498fe545f852789d5e11858a0926aefc79b34f623e5e6b4ad8da46065361ee6d5d567878734b49fd3584cc63578278b94745391efedadee86447fdac3f03e6594af8fcc3fc78ce38d114b0ad2d242e3e2777d2ca3faf7fe2ce35390d310cd036610f53b0f23a207969618fd67f9663174b8a3ad7625a1e392516e024128dae15e82d5ec7111de415cf88d4c8c6878e76087f3fece11ea6fda55051ab1da29802b093aafdca0c69d05528d62a464a43640e3b85f72a3d1adc742539a7d0a2e550e9e02115d4a0a909863d3c39ba0fa0147456ebb8054ebf13f1a8c413bed37c70e59c1556dfc2f8c8595ab7135d67731fc606e624d858166f4f506423523e9fb61d5dffe5332fdb3094c8ad1cf46f19a832325f7c57b957f5ea4e2074e654478b581d5f2a8cc3ccdc446e051dfdcda6257a15f87ee8a3759ea9c61851f16789068345518cd05d1547f4398c6755cebe517f2783478e9e98fc46cb66b44f9474786c6d94cf9b22778cb9392b278cfff847ace710b5513a70f74ab75fcd89c2d7a7c6dc144b37caf8d93cc9f920b37b9c24a90d7942a1332b192666fe2cf7f6cb15df656a36ed6474194690ca3b69632cc862d00f69e040695f9c03360f57c955028987daf14afdc289abda42f12d0d10e664054f8202341f4d5c024723618bbc87262446607d666643b109cee4644c8c1b23b815f25c687f91e8b8c0f49a02253668d2a9c2964ed2a51c2d1a1340236909a9b8cb078b6ed641e7af322ee6a422809278c9add17aaeea21c7c0902a8b0e69d55ae3dbe25986182f252d5d54585fcb01a47c2ae2bbdaf9bdcf0f3940b88b7209b435578120a18e9ae71fd359eb1ab9486dd67463cd88f9368b81e9b2b1838ab12818b10452af397829e5e0f88987c38aa181ca3e5bc88494c46eb138441ad8268fb739444e88ef9dd49588caa4adb9f4a31879a5e10126f4d5bcd6ee33ac8231095e964a38f4e9653f6022b84213ba368842dd28f4e82ae3ffb76b56a091421d1d14c1e7bb9045d28b462dde7ea692a924eb79255f60b244e446b6a7f0ef607936e7d0a154ae420f754d85a9aa25baad62abb057f37f6b417c5deb95fbdf675624aae1a6e1c4b1153c6be71acffe4f6b855412d692e7e548356d4f9088832203b737f5ca704ccc461087bf745db785b5a248eb049aad490b53278afef5453c41ebde609794fcc2ed7d59cea29f5bd35fc5caae7eca81837fd2603ff0e900c71a67b444c6e63998ef15c21039a1247c5e48de99e54a1d2280e5c85046a6c4c770b155c906cae75ee25ad6bacc1c02d804bf0bcfa4eb7b5945b7d2b003a838be5207a077be0ba1d951c9721ae51c9e8d42a951eedc6fcad6ea882353022aa2773aae4171ce464c78bad12d8eb1dbbec6e5aa90587af628b65c80fdca68cecae641e5bb6e377707527697e11293a8929c1a3b47b2652e4be5c714b5f45e54dfb954670d507223774a368878e295ee90648b8fc58628cac26bff0fdab6fa0a88685d1c6865397405d8a046eaa29c7c083ba893235b3c0fc1c667e29c1178dd414aca8ee8d6252d459e0ee6cdde7694c241b70d95d22992f0527c3b2ae06bfcdbc602c5f4a0f0de9174193bdb0bb1a3da95e441b93250d511325150dbbbcbf68a1ca5bf7fda71da05ad50aeccb82ca351a50096452e2e3a8944e2885f7b0dab9bac4730eba5f0422cbfbecb0ecf72dfab38dd07a4d7a5e685c8c2e4803776df532d29910030e40069d761c7551ebfa59f339aea167a55fa1f390c40043ada7eda47e40127b6e0785172f312b79b8c3240f76243591666da0a8f07bb876bbf1757989ecd529a340867c703a9fabd987316378e61852897c0b4901ed736aef8e364aa219515bb5fc1bc9ace9856755b0ca336f8f24560b4615b43a9c2e202d9da86f05af108ee7f30af6e0f9321b49ffd74ea8f2dcfe96de09e30aadb6280fc77225e0c480cc993d178bd00cadfa9098ec74fa84b681b67efbb6f7705e8adfc6b76fcdef86f0eab4931b297f7dbf35ef37307d78ea53fec103a9845ee2dfef14e091b88e8e99cc53b7ce4f8646aadb6a3d2f09a86d0fe7d4aafa11ae0f9de2730fbee326427a310225b7d1253421736246d2a661d34b92572bfecc87ca4cd3846c9a8b9268a24b25e4978a26a5a1f007d0b0c8d5ef36652e6d027c8633c19455610f90e4789b15b1954c8b0e7c2feb101de15df2c43d2250f6c2db2ac5e20d8177ba1a207dffbbe5cbbfa19360b34208f2be1a40ed570bcb7532842d43a85037a0d56927b9b65ce54314f9b558c2942e31b1fc77662af6973c8de867f98a858f6ad0bdd3806fc0240d190df2bd0361c22ef24a6927eb7e92a56737427a05bce93f359122ca87f9e9c7a38a003e3951a234e6e138838b306fba5cf049efee439aaee0e2012244f6acd0790a1f716462d489d839465274fa9f38e819f970e37132242fef0c809cf20414aebef2373f868d69dd26262e9d783db1a4b4875c2e285a873a6587a1d2653508099a2da206c16a40439739e80c38e440e37bec577a0d56684a82cbf5535f1d6d4da238c09cb0fefbc95a7a087f86543187d55cd16eae84a64a0c773f7255d2a027025f008d2262d284ccb76fd7ecdeabb6b336d8405000452b42edb50d9acc45d11b69ff03b200c8795d6e742357a8cb0fd3095915e8f58ae0f113e9d106558a2d0cbedb2d0e4e8f90fe865b4ab85b068333e2a2b10b50e9d8b7ee6fb54d555f3ea3024a4824180da3b1b75d1ad7675cba63d5af027041cbfc8aec4db0f6104dd89186d471a4de7b357179de8b71ecae4918f9658feefd1dbd53a0d298393c89111e903994f2db5df4fd61af89ebbeb0a20ab1614d54e5d3bc7477f56e0edf7f59fe67f57520d820ad7a64b4d55080a517f25ee83d3c2ec8e3561a5870c600eb4fb0f3347ddd6a684501fe9df5d5fb070513d1480ea8b91eef0b0fd75c569ba7067ca2c73acebf523fdbc89a3876654a5c45bd02b066e9be27c855955828b47cd2a66ece6ab573294a656cc4cf1e91b455363094693c06f4fa6bb4e654effb9d898201194671216586de9c29cd85a6e69c1f14f1e200d8626175eea28e787ee50e6c1addfcb9a8b7e3e9843e50a7a83e549d81a658fbc98a06ab5d3e17441c978d4fc904abcacd7c9ab2c0f7bec1747bdcbbf245b9a437ca7b52ac334607a4ef8ab72476368796aaf65e7625b65a1c20a11a598a102b95cacb8e32ff88e9c2a66fd6ce913994a96aa8668c66155264fc288bd9243c8db5372c9160eecd97ad6e8db69e2a31b8a5ba8718ab771c78236db77972c24c621444e11373545ccdf175b2c5d236d528cb3d9e6abff46c64d97aba54422cf4d4ee5e42081bac9344c8f35392dfa4525836d9f3e8c0baf636f3df93914425ed38b9d860336000a9186046ba0401a0e69b058d6c5bfed432f9ad2afffab75601521d50bf7aac997d7a1b2437c7514b456e80dc2b6a9c343da681c64eac45a32f8bf9dd9a76604fe53a7a8741c75151da89842972a99ff404943edc8b1c8fa113ba86d98e8a381a5da98b20dabaa624d7a2cc3ad3d5356fd9c5eeed43e0f97d508a58fa4d17f3df62890640a50a118e6e603616b7d8e02bb04d91c472f4c2175523cd93780d8d5872278d8c86ba4509b45c5a62949553991766a82b793b795c67a477907ad269aa8dfa4061778cc9cf5b8e726da05e8fb854490f8c662b7891e4cfde1557ff36df2f405d527c1529d9c26fa68fd5390c2b6c691fc439d72d6de87e01d115e8c7eb5f2420efd5062384ad94d4ed14eb8db2bb8c105582066a80fea915684f822289c0292363eac6d20cba7a369aea7299e4011b98615fedaf34754660f1e0894f7d3f2047d80c68c4f6de1c5dab09bd734719c5e9203a7a8bd13b6140287b8e9c784e8d6a9c28ce036c54559faec1ba25dbec2e0862d9550d7cfc903823a619b8cc64cb8beacf060e2371ef1c3cc6c6d4a27ebc2835c39b6365af16c253c3f2e281129351c44ed195015152477604122794ae235ed7809630811c307eea2bac80a1e3cb61b4f88cf732d6c99691d473ea0b49b1130667c05cd2cb49c7ac76779662383cc8af9640a0bf629195d47df298c3ef7a98d359f719ff59346f5da9c0a2eab05aa693e55aea99e8506d4ab1f6f83fff8478e8ce89074f2b670d41cef7aded6ef6c8cd3120a96a0ec8e3d6786fa9b35350311480c38f1a095a8dabc6162c4d455875a829b78434fe1c0339ecb3633583756eba4f0876c2650a4c4b444f5955761875290b38ea7388e6ee5a4063d3419bbcccf80d1041a96b8c6ad8e62b3c3d8b680644f37d3408e5d34dbdfc1e1205c241ef594250b23c26eb01cd79d8e05031682d188031928c3dc4f073ac96021f699713e6a07aac8ca5e050ccd8e1c0735aaaaa5f6ea9291ed6a0eae58bf92903e38e0fff2c5ff22d15dc459559357e2e40e5a352dff5ca063c193d63e6f12533f04ce4e81fd79cd8ac91f1c87dd178fb60741e0e06f0f2d044084ac7bfcd7033e57150f8e3b9746340e9e177902bdcf206e0da558ddf1a2902d034aa82f561a7e0bc5c516408680e339f56404c484d0a5637e23f4bb0af843095aee5409ed857d034ea0057fac7a093eab539d8e0c358d4c03368a96ff20d487153a16acb9faf2be6e5333339f2ee8d9ec5423dec6b1794cc5eede3c887b17b75010d523239b8b15d2eca384020d8fa954be9e9e7257a2e01bf96c4e5b4e48640f376fbbf86eaa5df3fe1f3f06f2fe150ba45166611921d387160d0342c07e40f89f25191c70689d7dbbdf4416cf93521a4aaa8828e8251152627401c3539c2b0b12c19a26df7a8f6e476453b2983acd283f411d68c6cbb48469fee3d84b31869e58dbc7ed834255b3c0a54781c63b7e7ba531005742ada485002be3927e328cdad01d67493a5a5753631f8c16e2c2aee20a21bd56d87fa73f1ac13efdbfe3c04eaf2d2622b29343abc1ed4d5bf23139c20c563988c63b19c091669250cd561abf1b5cdc9701157c51ad6b29e2f43023a425ef01deec158830fc0709f65654a802c1b28c1844c5ffb928fc405eb0743911278f26fc564968aa5a4b882606856f1e679da0a9ea675465242bd436626d9e2fa79a007f31032ee559e1fb19d6b06d5d7baf6c92feb2f5ecdfbec85ad4c2b8ed52c708994402e44c498bab1c99bab466daf7565a413981ccc3971b44237a09106928d966047ffe66114baae49c704ba22ac0ec47a18b40a36f33160541312517c7d87c3e80c80c0707ab9a1c71bef648ba95cfffa1a9d2e44b246d435a69e04a241e42620c02ba810677597c38b96f8bc1eee33d546f7d0018e65ad9cdff4c5d860e8f66346c6f655807a99411c2a3d6ec4c349f8c37d9e68979455046331ba6f23b21f37024c3bc66d6326d69c39447d99b5822837bbc677bd7aeb3a97e0c3c7e76a005c37fcb89e2241930d97d5d7c118b7cd5b12597c6c51bcd784da9e903caf72fec89c6c9c964c6728b673eda15512b721189fef544127bf508d7b0aeb961a5d68b37f4688463721c844c3a6b523d655bd133be437ebdcce050e5d066ebb49469da720247a86488ecefe99055c5041608350f17dc0061fadd444be9ea28255f9233c4a802cd743524724caf42c8b629030f1769855f5dee761d86b368b3f6a2b60787975999173fb689bc4646e6271e4f17dfbebd36f6aef6798a3bdf42d5d30cc3224bf65f980573398fcd5761596993f36015b4b91f11afe14532c55f189df889b1520d68e599a0e4582a7a2c4fb2386bf6783c493fc305f79c78f7f409f2b0302e5882aa4984bdca310120d8522269b7e4c2278e7262fa1acca78fcc2b514148b1858d6c6ff494641a9350d434572317b71daad63293682e53890bae0122866e562cac6f21242ac4589dc8b2ca97c1bef5c5d66a704373df3415cba83cfd5a217a5fd27020601183b7ee073fd25f9ac43cccd3559545966919abca669654061681f30ad8810a19b0b1f3d8aa7f6669aa59e6b0814868eab082d0a36777998b953d5a872651614406d1be8986522f22fa9caa2944948b61a0a2c351aad9b7d441dbcb0baad4f3620f6cc4d1745c85d721ab32375df6899223ec4863fd5deff41c02e6119b9ceb656f221017281f779702a00e3b7ab7ea4aa33473582f986d59f156a281bbad1846bb87639bdbc634f12a4244e7ea683c4c23eedeece1e236a9cedb24fd959d5abcd215a497d06748ccdb96dd97cc8478b2243ef24185035c9cb115c3a8df05cab0e3dead1ad1e13866f663815bc482b8d442e39cec57bd25c22752ab6b8859ba85a50edda423169a81b3c46fef6c417fedeef0e8623172275cbe2d5969e6627cea96a550ed05b58e29acd0c6b5cca4751bea6c3e5a3dbc6f0c8e1c68d4fc0d59f41c238f8408ee724e67be5b9d7330294ccda628755d19c0d95e5e76f270c885159a21c75004e231a5047a198e23b7116af288d1c77114719170d700f2e56d4e28b97809621ab4cfd0dfe3dff8ecb2336040d344438c439c39583c6091490b43d6806395ad97450b55c8f6ad3933550e1be1ef31940c05979f4ad64294f64094ae9a9b7b63c05c0820175d140e2403afe0ad84f28c339f2c744e052a71029395ceb6f9b8f016d49e8c1389739fc3ac4910a0038bb8863a2789396eb5ab965d5c8178ffb6c8b2b06519bd4bf51f70c5f16887993a543ef81b4aa25f115dbfa9faf811e3ea47599db86a4556659aebe30c1dc6fc69507b6775c76b3c54d5416cec03b55e5a19b834a35d99aad65e94a8b1e5d26217ee547d5dc611b6d66668eefe16b9b1cbac97c9d12224fa50f1818f0bc18b55d2fa3918e277846759157c9ed969f638d613980b6dc9f9217c3aef059c92beb25251be97f886291fedad57468e8bdcabd07d6f84f69672272a2e157c9ebdf099223fd669c21ff00f407ce0f12998f80cf4c163c777dae49505ced3ee87da0c380f533fe6e28f47eacbbd77733ee33771a55ccc5cb7b009059f37a659706c5e70c73bc171afe322394f70c5109e4e95d0d21032d83fec3b5e4715ce1d9200d9bdd0c05b68f8be55aec068382ad082aa89c75741312cffb51a9bdb0e802080a41a47db282d7024167c5ee30c2248fceaeb3337eacf5dc48b0a2b2e5910b88100d48e9da64850a5868cc8147cdea6282cfce27d30597b071f39d17d286e1c74ba08cc49a796e9ac4f7b6302161f10995d66b0a939a3d8a38906c51fc0d46f11148e896bc39342296f8abd1528a2b32177e64e045e4da218b0a2431a71ccb5df43f957485d5ab7055a09ef4550948fa371409a423f243bd8331fcb9a0d3f136fa929df488e02e5eb38e49ad015a45e169fb3d55e364bc94a6e9987cb6fe4ee77ad66d6d0aa82208ee826c3dc365f1928cfcf69170b9870d33772d06dd8387fe33f67cbd1b542722ae9def745976f4c79e6146ff88f0900dd4fe34cf4294feab003a7e708d6a5e768f3a81371c8d96f27b970b48cfb9d5ee6a44ffdbbf105bdafe7634e60f794e3fc18bfad800c1f1ee2fb14c12a5d84e8c2dfdf08427a62338f6fc96e6aa83e849f969ad2e80af2f32a713b63580984dc1a5470fc7e8d6b2fa3db4baff0a9ad86760cd9a588b64f03e0f11c970d88012a4d00748544cc8e623f7a96d2b9a719efe7595ec64ca007e7d0bc25aed90b3c37a4ec9575939aec23856a1b26073c1cbb170bf8205304858b3377cedb2d60d9c9c5153abf13a8f99547dd225da2d50296f7af5332c8f71098a8f8d007d5d784d91f26ad29f22cef99ddb4b506ddda1349aafabf5e2ff04aab76d205bf046b9d60b6ebd0db81727bdedea9ef8a81f4b3b6dccb539c37eda1de07ca0bc63ee59de8e00d10367d3227e5df289f784ba15fd0d3432f72a66192881db841d1fc42ba36b5ab2bf18f4f5f10e56da35ca9c827c7a916d1d440c5854ecb5058c7390d6c51a8bc40a997a74c6c1f7252c8783f9c600e468d6af2f943f1f0653aa2c9cc49d709c1fbbef8a2524f43edd9c6dd6a156a5b6099da425033d5fbfbeedcc501b527ad07a5095d42a5ba0da57a69b40c25a296d8a33d8e9e917f125a4c728899d3921a60dca491a00b782530236782463f99783c6a39b3580b580320f3a21cdcd8c1e836051f8b1380bcd19b54b30c11ff72306320f99c982a41af06bd694ef30235a23f5a2003201a0991452ca6321fdab4959aa6e55313e7b90dc9083ab8954bded161129bf0b6b5617509c3c98ff705880f55fb0b6688f594470846edcb21224bd025155aec2cada922657c8a7467adedf24e4e03de1649c0b27ac695eaeb543923004a4ca59bab9f1abf7c42e8778d5fdff056cf12890d018c8705db02265e9ac473869f9adfc0db25dbe5e700e3686d8c5deb96bb8cd86c3aeb6b96ee9801a4cedcdbf62a6462c6f93bfba41e53630f6a504a7f1312db2d798d565f14690b40e7738f332d756c8b800ad10d264e7e86905b258c688503c6a1e57e14ea5e2eacd5eedc32affd480e65cfb44f4bf34c4d2e073dc4cfce85d46b0e274ced35bcb7d6eb3621dadb44896cc978baf398d818ed154743a18d82b478a887c28f8d63da1d31ccef8f2b04b430172f82e7c9346ecc4e24a2389d076a263abc2fc5f7f5c02806e1eaf06f2ae533b127f9374ce97ea570ce6a6d3f2979f141c796ba35da406dfd067f81e4a67edbd19de9927032e040d5c35bb74d9554432557910b47f2b3724f39f0126647ca77f5104982657a693c4f7656f9c7f95780d032e7d950c006b701e9ad80047210fa61de1820e1eaa2703996d5a4fe2959d1fef3d885be57caffe5f533365ae19b0c9b0bfe3c8ea2a6e1c660835b5e97f9dfc414822ea7422dba9ff28b529cf60c6bd55a9b2999994389121ef0ce081062c5c4140fd4bf8971b08f182cc15c795e0f6b7c57cb7ac5da2cb8b28e9c347da443dbe6ec77df668314fa3a537d22b2f03109b4f424291eb330c2dff52a3b09a4d6e0ea4bdb1c72dc6d10de48ebef4f9252292413d69180dcd2230d63e8e937526a21d36f5de273eef94016517b18c15719ff1e9b35c40b37465ae59763b08511492057c0f2eb0c36d62dc68242e3114a40f02bdf944a5ca0f90096f547e5ce2bbbaf2d43bc2dc09220b684445b1fe80a5af4f201077086d5f2d6b3a4956ce123b9512791333cf95888b48061ef5f37bc9f617b1c11becbcf82b5adf741d6a2f4505afad5b76f66cce5a044f3d3089fe3393ce860c50bb7f5969501aa55ce52404a572b679d1fe86361f06a46d171f0d339c18cb5b6ce7c9cf9f281af65b79e6ff56924bb909b12efe163834f92f410e8bc7eb4620a5d74567eb4dc30c0e10a398e4598bcf9d68c9a90d963e4b86fac432de9d409f65f654e24ce4f10bb5a67015d0460315669a4fc141e30f4b15611963aace2226f21e41f07de25bccee09098ac1703172868ea0821ca0bdeb35383056deb5d51a94387b993dd6f1211febb38191a5a4e668668e092823885a24c0a347c037456db0a750e63895a8fe3c10038387a57f041612d35524b9d6f5bcc87299061452e2f9c084bc96daff6e2e4a6bd0b8c9a26133a185ba481cf1c9ae452c6ab24bf53abb49ad53232090b9570477a5b040b210b60ff2a8d3b33dfea9ca7920ea9ef80c5b732f66a5151827e8f6454b4e517f25fb75112365081d80da0b4c82b1b3f511e7bfc44958e0e0c50113b77c08ac7fd05ca2004ef6f6ccf0e5615752c99871a46aea746d83dd9b42c9f067d962397bae524dc483e5d44ef9d1a174e785abe5e2111c6fda93f9004a3674b7c3ee9435c41f7395f2122cd10993c0024072d5ae58ed379a827af0c14d5fe48b21f2d8d32e54909a11a64569079e3a90fce610e94a03efed09b602c85079aa2bedb0f42d069db03bbe3f95977eff064097f5f6cd95097454be623a7a06ca3a2004ac7232be2ad0a00deedd35ffb9acc5b9295e6769a00ab206f50654d2e69aea6d7a4c0008aa2035a5c96b5368772a240af4a77d9f761461b69573572cdb6204af953cd4a8bd883693e5db346757118743ce094748923c29269de2db5280b3c5a02a02ccab49d03125f27cea6cb8d1fc38ac964678e63f171689d056b7a023ac707177aa6208bbe748ba0d0806a4f15228f1615996af88486b84726b446316284e5f547cb193bea558a4651f2cccddb0495a4be49f98ccc1623aa3c1da072a951f010bbbf482413e0a1861411a0c47408334cf5afc9dc13bd7faae26a7bc12aa81a98d277cca185100e1ad36af28eae0d79003becb67c9e09643633b5c1f8457ecc81fbebc07ada220e701015801a0667e424af8cccc9db4ae31ab474664585126519572ae3167500759fc5a316d184b2e133e43ff828c68e51a1736b6e8b608855fe181a0a2491efbffbd0b9e8bc67518291f163f72e16dcce3b452bdc150a2410049be123c5b931f408920410e3482367110899e42a2765d219f0f246619a2844e7460d768cafd4a8261a5040acd914c9544387232c25d2c3a23c46d7c246b2bb9080618b46be26ce8fb91b527c111a15c71b35a3a501fb829ad1f7435e7343a3ea11fc127e646ea01c37bb7040d4096c691260c85869f37b726b61d3dd9c2f7f1499df25bdc46dc2c71dedaddaf8dcc26d9d7cbe82a883d7ed8c72e964698bc3a67a35792404ee788568a68cc6ae63751adadffc2d2ca843fff68eaf2788fa904d35f9251c4f7d4ae69d5dba7306907068fb1f45bf0234a493cd9074a945915a2dd0bc49f0994226d52b54e7dbd4cfaa0c504a256e344d78ccfd819cf8ff435788c691855ca07f7717fb7d91e855011ea83a368e8d097d398f25bd135ca218aaa903464578e1510bc59fdd841b280b7a2ec2580872e16987b9c8e169b57e0769943ed9fbfcf849ba8291edfaf479ea291e3539a4ca266b4f44b14de9df2bb45a70ab9882c2cf52b341dcff0b3015698b50ad37a98ac743a11d0be66280721c893380482a1cb532a4a2fdc221b77bdcbfe572381dad1cde5580902eae91f43992ba9b7347052a336f511c4a39b0b3b18bf5315495f128aabd8f9c45abd61e187390cae46a140c7cd3fd37cf5d3dc1e8ec5c1b5f946d9c28739c23ea39e2529810252600a9f21f8c4e02d1bc451068bcd7e2c0abeb6750ef9ef7a694511dd779c7619d08739c7904547b641c76562264785c0f2b89e6f37ab498e403265674bb891b4353e54165299251524ba29f58911112fb21eb1f17e964e79438b5c2e6802218795cedbdb306804dda3175c9aa36f9b80e8f75eaa49019dc9da250d72a6e392f12c51b489c83086ae19842ada2c41ccd385f6f2461e5d1920102c58c059fe07f10547039812aaaa5b1d16e6df2a60f847beca2f8e5186fa75bae2ef0c41adef844404517e533b9bba3c3dcf463ed4942ec8455764c7274f1ea012b919c6177618c7f2f5980a0b73442dd79090ff444b8ca101009818626e14ea2e760b21e79e0284825f69c3c8611b1f144f976ceda6314da00cc76927e72d8731b90ffb4ce40e8b75760fc210186a36e1fbb5f1a85a67ee80043b0e22a4a8b7d8deb35672bd00c4a58d6756bc08df9a357b0d214957ad2e722634ef61e1699c297b552a499676411fd3bb204eb016e7293605481a0595a04b8acc3db45c35d8a3945c4cd3f913bc2147cb2680bad9feba3c2e2cef4742eddcfa4889d930f3da66eb8333ce8f1820e287a8a107169f9048ef6acbeb64606c852dc00f2e657d837e98604eb219dafc40f7186c4253e91fe223932331884f1cffadfa0acbdd47c84536df73b22a49a4396286931bd7986f651f7d703d9e1603f3f05e638278530c52b433c1350b6d682f15bea3cd9656684f0c7539732d9033fa1a0afb1eb3034d31ae6d670c2559bfdd03075b2880b21109b915b63e6985ef691c69591d9f067ee1d8693a14c4e2e753e099313c4ed912c9ad99dad7a45294a6b8da0203d6a6dc10c8d961334c0a5c0104993f26144592e3640a22aeba8a42fef0ba29d5bb0faa899d9a3c1dab4fe290b4a2ca6609358a05ed2bc3a82fe12a23ecfa992878e5355a306150f8c9e13984839cd5eb654f5376f32cb50f23bba12ad66673195ab3336354152ea19bc2c0134a2bd282e1120907fc5bb97bc0f2775877c3cca0c17d5e10d364568b21e2d108aa865a4e45e3f449de8a5f4a689ad92b815728ffa000f3660ae99ddd95a62ccae0cf1ef5ef533bd28b2c4534ff088f543e2a318d8e7d233e36032dbb64e0b2f07428af96e84d1ef71d89736d7aaa443a5614c841227d75d62b04e295d69a641677701bc5c08f3a99900a344876a43aeb2e2efbbae89fd99e81a011597a0cb67c4591f0227f2813fa21695eb91028fd8dbdb11d83f3fc688cd672478686d35adc9a37314b089be7cf05ab60ae8bb9d63fe13b8bbeefe34a20f4f38c0ba53ac38a882b173a9d1c62ac2716a06ca93d9e1c4c389c457e4d2f92314e6f7942dc4ef33b7758c858a4982fa7a1f94aea55a6d5a77399748b22743c0d59b22f1b2dd8d521a45c519d5b900c136517cf7eb6f7953ccd132a4136e5b32395e96b45cd9e391e264c4672f37c7394ece0c7fbaa6f49c6438121f93c80f2dcd964d4784c2bb763cce589932d257bf1e28eea9136c8fe648d1dba956bef58bb38722a6fdd76ff2c7a6d7e4fc2ed6ff85e9250db7fbbe189269bb1cf99328c857b0f6f70883d30c1b0df50ad483683a519755c64991cbf0a99446c259aa09cfa1b06d98362cd223162cd8861f95d5dd6d175a65e9f950bd5e90fccb225e5c9c3bea6d010737da29025a768ba2145019c6a39a144233210e00c216c5b15c3fc1c01c9261b6b2fe44c970fa7bd7544b85e5adb8b8a3156ed2c089c8b5234a5a0b5dd55c6595e74368b2a54a843f2e233a72b122b30531147e885636f0fffd57048418fc2d01b31d9c64cdf7d838ebcda82bcdb527d02849dea621ed1ae6cd6aa4a6d5eee016c67f911317413526800f65708048a5006ef3ac2160ccd53b065608709eee6fa5e4b3020d43c9c3d4d0d90befc5ecc37719656a5c6c8365ccca01c57f8894f8ecdeda738dc1530c6ac429577da7932ebfa91c65bb9976ca4df67176ff867bbc3d9abb96089b7e278cdd8fa699a31787ade80a48aa0678bfa3b8331ea69b3b4b50d19224e572d05261ad545268f59176c4971a6b3d3c28e9fc7086de10b716b89d04855651570e60d92e35f240a9631e8433651cb6165e334fc7182a51d21640a9ee6c2b8212d62d7927a82ebac905d69dc482d33cd14d54f1958d1fc0f6b0d2b9b024e1356265d8f67786cc6c9985568532db1c21f09a4740f01c9481957d281644301f5409642d9937a429a9d6c483f58135f1af99e614f0d8ec573954a11fe8fd86a84782fa39e2d2cb826af925e8bb3d444fe307b4d0fe632e67d6c31610256d320610de0aef3d1f3046ff308d95b0ddf5e595be38915ef8efc48b0204813cb394175714b2b947a1d00d08c94a0d903cad1f64e4fbe54809369b5a3c27661b88bef02b048e4161b18940e1e739e50a30dbea6f20b7c8a0d032b7be3d4fa90a54635501f60eab02dbab55c8a4066b94f0a07b856404cf304cb69e4786d19f240750a9d287222e84df6418268a65b0114804f750e45fc29043dcb0319c6383bb172e6bb61fd7f78bd05c6a33c36aa9e431323899a3aecba6209c6ce5296b317b63b83150724de6521bf6320ff6b36f8ed5b87643857b812776d93fc7659cf8b41b22dc0bbcb1cbde3928e3c5377cc4073ec4b79ccfa1a299e5891d6fecb2e71ccb382d430bf3220f76b3678ed538f8681bb2901779b09ffd73acc6c197f8c087f8c267394ece71fe2ebe4b8ca4e09768e3439b1848062b073fd4ce7f441a412f7682c93c0b031a095e695a3092b24a07ca05c7f62c569415932cd592c261aea181648069df9a2c3a7c8175e2c39f4b934c98db05f3e7cf76dec3f701c3f0c867012312427d03cefa5e17a5d61b348e612636f761c083540f1241cd92bdf7967bcb24534a01a1064b069c06de06711013ed586ab5b06469c9056a106cb5b0973d2dceeba0239187919016c041f339acc3e4c7af56f2e58c25dc14042db66cab860c66a832112697a877568b1a6078b5046129064c94f196cde19fc1a23113316a04544362fe366a260d16f10be12d5f5475794b8f19d0ed76f0631be4018d9e8551db8bd4dea46afceebf044d4ce742c3948ac32e85a5f62908912fe876f1e54a0d539b93ca02001b54fc1d1324f08504bbda1aa52cb835cc6a8ca71844a6662a132ad73e45133ac620447840c3140d1d93c017270bee8f04be18b13a5b53aa6dc8ac59ed2ebe38a9fdc9c694b87e4e66012dccb85a991f2b50899f5577776f9e31f1b9885b4ee688a7a6ca3185e883b29f927d3e7ad5a18c8f069be5020b277889a22e964d6de33aa1066d92a041ed150b494185f5d9ef5868b0ff043268b8adde51aafdeb3a016901b54a48f3643be40b1a9fdda7bbe6beb9fbbb6f98a4f2e660bba4cde4a8cb93ad18fba18a2876273eb33fc645975836b593ca081a6eab390c4352e53737e704a4ab7373e6e6c4543915614363a421038695343ca0c5a802500a4bb49438830b180cf9c0079aa5850edaad2e4d5d1d46316cc472142a29a891042a54bebf7cf67a9841433672cdc8d31379ba8fad39bfaf72cd41736a1e676970f3e49fbc0eea893c1bbb86fea3256f6930f64efff23014ca4f3c76b23af1a5c7456c4ec43e36c242b92f072a9c6ba987a1a1a0d337a37b4165286883a848f9d3e37adaeed3d779bc1457f1b9781457f1b7f4d081e2107954bb8aaa2f3154855e7b6848872ae5f739cdb2f5c0f1739b73d3a8ad599bf5c93ec53afd3c5c8df6e18d8e6a5ce552205205710ff28ff6f5b04ecb4f85cf6773406f0be2bc0d027d308e0df4c17d42e2aa5ffbc0dfbeb06be8e39b6a786110ec0adb3628b02be60019b5dfbdb8b202158afd361804033246e711a982bae73ca20feabe2271258455e01f23acc3a017539c8068cdae69da6a5adc62fc819a861f2d28d70523848d08ec4efc6868b03f4ceb888a08ba35547937bdaad19bc2fd9e8800750d0d1e61a24c430ded91c1a0fc3c9069aa8d83d795ad05c57a9841c39e1ea0f589f2691557e060bbd081c2004394001b53fb53d806a3507ed005547e0646a11f0e486a00ca7eea80afa2b1870e3a5447945fa6c9c160b1582c564fd6644dd664b158ace1f4f23602cc4a838dd4cd83c350af9cec8f0dab53c4fa58806e132369b057352cd16f7deb5bdfd2feffffd9e8f4839d6c4e3f1bb19191113b593662233662a34c0a796a2eb23efdfc30c4b06d34343abc134e700105e6d9582c56632d1a8170ededdeae1ace9c73ce399768cd59f6cdd8b13b76c76ef6feeeeeeea6b3c565deb6ba78524696a1204ece74c18594369460cc8313882185880c0717557808636828889b9d841233ac581a0ae2304c76315ce58a13f4d005696868a50cc2276c4e0f7f2c16d6b2bd6327c9bc24417b8221fb22ddfd9139fac3b0459cb9b9b9bd1353e143ccf63daebb316e0e0df202f5dcb2cfafad4f641e1478c5bf6d34343a6ac8faea571d6bd1753f6173f8db73e163b1224ffcf0afd01b1886cde122fbf20be7f42fa474ff39eef6dbef9bf161f0cada4c8e2d3f3dc0d1c5401352aa3c394a2289162c9724a3a613e8000641f001280268902146146042d0b40221333c8005d2942662ec60008eeefe6e5d6aa97cc36c987f3113b3bbc70d12c242ec991cb47fdf11168c60c147fb4a9202aa847f3fca14334c81830816701001460445227882c3136682858207031ab28acca07a168bc562b9f7b07a582c99338e303aa2260a939a28389696a4c7183d828969a30827d8602375a306fbffffef5b010d5f880a0792111c489462b405f408d396d79c94aa54ff20e83dd14a6464d6c7e5e670e4c13f16c84f0ad645f68531bfd0300c2c81d23068086254c584a4a564cb12ec9bdbc7046746a783d38311f3719189423f8c190f0c9aef0beab34831dd782c180eaf2e1340d470475d705ff5420dc61450a56ce648144788701b95bf8e425175a32883a882910788d5b1e56da1a292830c1d3fd830dd7c3f08c13b42844f88113e2fff4d782fc6e7fd008026767825e0c1301e557a7c4724a0017a69ac505042094c782470ace4784d01f876f03a18069670043b52040d41167a402f4c9505e2f860e9042007c7841256e0093136437458b58620a871448d27137882d96058e6eeeeeeeeee8e65d2dfdd5d4a29b3faf2b79f1a50af6a73fc33efa6417f9d25a80e15caefdf58f6582667966158964929dd3177e95bec4b3382c33077779f68d08d9f94250c4ba96ed4d4f8a18e1add01a0030d5535c618559155cccccc2ad5d2195c98610626dd5dba1a23000adbba7b1b86619844a56e68128b37543fb7470cd3fb20903afd40e1a891f139c31cdb2e803afdc024e63492a64685d1ccd0215e0e2913234f39ba5d1fafbb39640474d8743e361d7147ef449c983eb94bd97d7336b377a45c90bb49c9c87f830b65d9d1aef446121494723b0d0961699400776396547bbb92960d8621e3d4b3d4354c5579b373429836aaa4a24af9548a2a5d4332a8d2a50309aafc08869962c52c83860f6245506eaaac2e7cb215da9c57c42c621b3e14a00d296ad412a6881a3f7e131b30a8f17d7eb901d3a5c6f73865891ae30b05c52fd23c1e14df08dd5a27751970bb835bec7fb8a0bd270ce3f1a2110887a9fc8980d2b060c6a0f12bcb18638c318247b4071a34a4959d936a5c5223137d58d73b314cb24205fc9328a991637f3cc67812531548058e8423aac5b9f1eb8146c4c10183c3cbb66d1b50eff78ef62ccdf3213fc4a91167bf9c346fab3859c665f3b70553b3c780a2c66a302e1814aa1c83f2bb5764735aa6698889651d7733c3e69c73ce39a751f7333e9994aa54cf9fa4f27c9f1fc4dd03759c73ce39e79c736e50ece69c73ce39e79cac84f5124f9e73ce39fbc54973a6d03bdcf6f37df44eff943f9f97ac0faba21851e7107532107536504f6c62139bd8cc6636b3994d0ccb7eb8a05cd7b7afb5a94d4ef3c229e79c73b673c719e7fcf8dac7d73e49d5e69c73cec94305941fa8e757019a231270bb23a439aa99e489b59758c7632bbdc26238030c3597e5e9a5989a7d7fb13ebc858d2c5ec6a8590f33683c8a46bd333fe33ee3a4279352952a1e79f14983d9731e07b5c7958b460d66cd0482ff2a157d71bc95fbfa1557d987bdd44bd9cf49e952cd22e6c41267fd851d45cd9ec3e1258b4891a8665149cdc2af4559d29506b307ea15d0d0470abdb3bdf6d9fbe81dfeec790953591fffec8f74f6409dc9aca96658c6b5c4b0f571e219059b937d18957a95fd3eef0f57599dec97eb163f6f30d23929dd8975f6cc495cd0987d3f507343e6fc24365b3b2add4dd9f797ecfb957d33d11c75ada6eacf61f4f3671763d91c672486d256d647a9774ed5bf5fa544fb79bc28074aa1611b9151fd598d231daa7f7720a97ad3e6b8911247e1b831c6abf31c89ab2f403cbaabbcad488faed4a043a1ed46d15fa59a9168c40f51757f667f6ef8676698f4ae72dcdd681fbf70052a14fb6f309e3ac4a9f13b8816834c3f05b181c3d4103627be0d1c2648d6bc1886450cf32da63fc8cde6c4ffe182760d6fb4cd893fbd8d75e26753e504bdb9591faff1e313dd8d2d5106c603adb36857ed3ab92a321a70dd5b5724030d4e51f74ffba3020c3bbba0612c1933057ac547bf10d905dde4829a2679418dd39c05a1065de821abd3bf3d4436277e4230fe21e485b45a2d6fcab0f4cf7eda4ca75692444c151e40f4cbba5b4766780f6d787777d3740731971041279d092a6ab85f5849ede5223054fa81aa542d60acd0ba5ac01851b5ba5ac030a921d84561a2090c17952eb5ae8b89978b892d1cbd1a2268dd071bdcf5f0ab47f72ed59999b918dfdde7e6f8fa83ee638811c69438bc50ffde8ee14de57607e377c3cdcd895f6a7310d084c607b1ba3ecbb305f583384c55dec89be6f12c5b6bbf904ecea0869dcc9234962cd57097f60a16e9a18713ab52fb37ec6a8d1a1c179ad5d50206082fd670629a41655d2d608818006668275d638bc96531a930dab260991559b42a32ac8ae9824eca00295bc309cd91b0354c3089b49ad620c18908155bd610a22362c51a406044a650aa3df3812e0a8da9ab25a98c20284d5d2d49af181a505a574b52961fa84c5d2d49509cdaa0a7ba5a929ca8a9aba509263b88eddd31c618fb9360dc2468e66e8edb8d58ed97a71f8ed5de5d8e2f7b20d71b7c29638c323a736c67df6ea5dcc0f0e873320be132f68e47ff3e671141f9a794320c6e57d67d8fd12557c7e42eedc0fb5b420d965837e4e0e8288a323a300516dbaa428833b2d862072f57242ded804289b30c14308184112e68e20aa23abe74a00a2f4dd008821841fe2a3f010cb868ad18c41cc68eda8db57670dcf146de113b9cc5c9599ccdd1a131c98388e2f4aa7f6638ce38eb450f33e8fc181497b55616f6181f28be0a510735d238e3832ea0f379a606946bf7a797092313667d36d65d6f7936fefa64e1ff68419d3bc69829dcf7e9850ee27ef3342f87e9e1e009d99cf827efc8909a1ae34bee03521d31c1b51083e696da4cda8839222222a24feaba905852c3aeeeba8e683a82a96e755d477081b39c0cc8dc00b230127771768f3b4d20580af90a337153e4c8cca9b0a037f8569e09f4aa5f49e80723ec1939c2ad6db930f3344ff3e5303fce1257fc49827834b11747312904349189e495266ad8b113cc4491e78891a11ad42640ed2f61083a9fe6673ee3a3e623a1224c50fb25436a778a34d81f7215322f04c6951bb04732ebf62e83204d245cfbc95183315a4ccc09852198d4ded7105044e88e3969467aa79f4ca08dd8171f710db741b05f4240d0909558697d30ffa07eedb7e734ae3bc5c89c8468979d10f0405e0a325e5d9d7ecd13925ab06716ecef9e06fb4b10019dd917b2117d99f716e31140d26e8552fbbbd4e62c45566a4b57c290e876d4cfe605aa812c1b64f3820cb7e28a5fe663a5a03e750d0d9a5c4a747129b145d77529b125072e253c90860ba9c985f47221cdc085c40217920990702135712101e142e2c135850d20b8a67ce19a92c535c505555c5392704d11c2352508d7141ebcb8a4707149b9814b8a0c5c52a0704951724941c2250508579435bab8a26c31852bca13ae2825704539c21565892bca900b0a182e2835704189020a0b74d4584197490a2855750695482a2d28afb0498124051258a5b74e64abfe915093a45092522061986f9465703d29c8d38f9e14b2d38fd54e3fb4ad41ae8b91b15901dde7649670508b0259382c1f34299a5275a8144da93a55eaf423a5baf1e9b3fb1db46e7facfd8518e836557344fb73b477a3e3f44325c5f6d4fd9b1310adf628a1fb2188307178a127205a55bde779238810c28d8de7e9c8a1aaf170dc48799e87f268663ccff33c9d98a17d9417ae249aac702531454d6d3f41020a12435505474a59286139c20435aceb829254a11cd585d2c405a5a8a6929276bdc569da6dec8ff585bb4bc953a879b6af86ef8ba834687884eb51614185449eed6ef5910663fc1bbc661e0d3345d0230dc6af7142f98f449e392955a93e822cc90487c51839fbe4d6bdc21d6eab623f769b391283fd0ea7ea41d6c9dbbcf8d505fbe3367b5d1e5e7a5783dba2dacecc2cbfa8d24277e35083fd7b6ac166011ca47d7f31fa6c16b0e22f1ad4da28ae8efa4b5c0ded625f1f000a1a7213372d0d29efa211c8a071043228530ca2f6b7fb1c8b90fc260aee0ebdb24bb6d2e0626da59538a959d056da4ac69893579356bda9fb6a52829aa251d0f85c77ec2b689452c6ec7edde6a8aea0616abdb7dac061a2f7cc137c2c8f7fb35f06fcedd480f28d3b71424f755d4457a4768ca02ea22caada48a9de61a37a2345cdfd44a4c6b58f865cb9e975edf8ed3c41b38f9f00a650fecc939bb33929d5faa83687b75da3623e026842d931e931469e7c73fa774e909d82e42092c303dc7232f27747aada0084eb8ffdd8dfdb13fbb361598961d9926a08fbb3b558877f7dfc5358f8679362755afcb33db13afc5460a9bcb5a0f287cd9c95caadb7596990b7a40c88567b4b525a9fcd4aef689a956da9f276a5eeb71bd2e66ce9213fa0479bc36e460d6fdc9055f6475b9d9556d627ae0f924c5a1ff92157438934bd4d6dceaef6f743bfa2f2cc3099799d9ad7959bfb492c9bdac6c96fbfbfdfb2682f6e0a8d755d444a36755d444554eeeaba7c28a3f2fbf00a546808755d3eb4b1dece34312192dacf4fb2a62676c4a00889617204ce494e12034e2548e4a01b583dcc5c308e11a70725005063ec014b8d1c20418d1c20a346970f55b06a9466e4eec1d3143813af0e38cfcebd8b8c454f1e946c9941edefae4b0a8387d9b977200f51a6774680416fd475f1506404e5eaba78e821460669704da80c5317021aa3c526860d4e4ee856d7b5438beb81cebaae1d96b2a02eeca09444164532b9761082e6892130354a674c21a5a12fa8d01348315654f9410d5949b4f362034365b49ccca09a159a139a52c11c429a4a6857574b95274e54f9c0f6846275b55421e2caa0b3ae962a434b2cad803bf6e6ecc7d400540e7b970b8e2a92decf46ab2bae82e36686b1e4eff883c4bb3837a4a00dba943b1aece66eaa06c71d5d62d9d4b86e82dd293bc5603132525b6d673607b8e0e6dc58c23710d4369aa5d6bafbfac86d4eaacda9cd6c0e6ffbd047dd14eaca54df9c2d3ee717529f4b50cedcdd9d06c5a81408820d3aa8c5802028f395631ef554399718d8a30660566e4a30a84d57636a923a9989e35adbd973d6986d6358ec7e2c7e5894b3f3ee08c61d0d76ec19bbbfbb514c709cd723c6031b0c6d70344c87d0a6d3ead622d87c41ffc561e3730e9e3afd40e5e09ebb0ff11a1546334387bc2a87948939e5708ed163dc3b77dfbf8991a3bf62139441df3c84dd5227e08e2eb16c6a01ab5055fd7b78ef8549ea3f17030a25030a35030af500140a022854045028232894045028ef73ef512829fb7ba096fec926547ba8df937b1ff628af9fe3a47cccf32eacd3db9cd7ee776fea967de3716ac8ac387aa9c1d44b89e3815a7a381e3bfdc0f1288feb3ca19e43f5e9a61fa8e3e9c73f972307eae37b237c363a7eab085f08df141eef9e8e1bcfe60bb255c7e74f1a8c9fc3537d3633bfb5e69bd2e37178373e67e2cd3ccaa3f9826c9df9a690f0d40b6395f96ee0182f046bb89eb7d58b220f099f7c45a12028cf0fe5cb7b7b7adbdc926da199f176e8a8a3aab0a07ec3cb989c4421eaba86b852650df7d53b61c674a477e26b495d231333d19888dda877428ea8c68f9252f98aabf824885631a12028b74b621947b43e9fbad9e6569443f565b184c74b30047b7c19535c451e1fe71a535cc56702d34b72534bda9631459e8f4c1c1113d3971a9f0ba1738f847a730ab2aafec997103487de0935262438684871159d86fea4798cc8d7547da1dbe00fff5469d06dd04fa71f2f268d4963aaf135244da9c6e75af04ef28546968454e31bf122a6d944551a52ef98a07792d6a7050674e742035e704091ac83e131a49825cd4969969425d5f81c033aaf38bcd0d7abc108d61a1ea803a077fa5b67d23b2e74dbbf0d78e1050738a0dbde21c1f92705b4a8b912ba17a6099d03329cae0896d3c12003d0c5e03a9d0c91d5cd90710fe84e38212049cd3e4301052da65ffaea0424a4445c51e49971f5647db08f9b9e83a15b2ff222675280e7e24546224f0fffaf5d3af2f4f8fe533c3e555c713174319c7ef45283d1bdaf3418bb4542e5b8db55edcfc83725eca522f9ea5a860e87172ac30988564dc801edeff1247ce8453cbe8dec679e1735187f003dbdea8f4b24783dbc385b159f87c7c9c0d3f3804ee8072ae4011aca1726997e4efe299c82f8cca07ebd521350e10404acfd19f142fd73a306e3733d01d12a2d6a071244c8100410115a21010a6061012d30c08506d8dcbce08010442802430c23bc0cde0c33ac189b21acea8f5537d23c5b45d3d0d0900e412b9780008b7c31e90202570d59491126e54b7ed13b9813357259bee62eb870dbeeed1edddd5dba63ee99fb74671527f164f90969e1f042dbbb0df0c271bdba6cd37ef11e283db1a787474848ab4836711d3951f9f7d4e3db38bde29fa077d957846bef36c06b0b96b84d41bc4eec180adcddb5ea0860427db70861d922b44b8ba57e451a8c43b8a03da3fbfb11d601b98a44b4a0fd91ee471f446e40594470404355b8a3f2fb600de182f68794a69899b5ba3b627777e176070e2f140144ec87d0a261aaba8fd973f3dffaab409cce374f091de18086fb6aac31ed314f4b091d6144a8090df765a4caafa177b02fc822c1218706b7a8387586c92ef72459beb4119c301d96e85c1105599a3811ce5c8698d2ea52836e2e1db27e0883451dfa67d3d475fd30469da9ebfa610b6d057473e67cce5da59a9385655986b9c057cd604b36c42d8b76dd7b5c65c2d0b0f36741b9c152ee210d5d963d6753696213c3584a89614a9894d8f3297b8e4f990759242ecbf01851b50231ba3b4da94ca0828693cef95d8374bee69aa66d49b470033fb42c9bd99c33cbb26c66a1ff0c76fe7c81c42b6b186798e4971ebbc41a741bb28a6192316ca6ba3b55577283429bc3ae9a58bbcf197766f13d3af675fd52739fd5061c6a37abe6cdb8aafcd2578af8612fe06a7668af66079f29a2fcfbbe1149a25a45a864705741fd53711ddd3f4975f66af46ce227a9b1b3f0b72f94758c3c4d68e8353bf8bbc7f885d9968aa42b1632ed857ad7f50ea7d6276e45bd6adf1837265b51ef18f57b4b974332cebc2408e44ba5a254be6a670e0299e56458c635c3dc63a098d98af625bf98a54d8ed02c53844591a3a8366b4aeb139f6649e5df3ab03b340b12e578a2f286920825955feab03b9288055b934764cfb28903b53faca94ca4bab13f9b12d6e94f6d44918bde08b548845ad4abfea2f6982a4a314919ad8f2ff69b938d49c6893c4286492ae11f14988d28f2a486e2aa3725eb9d16d47e7a330b6a2fbd1b9ba33de7e5d89586637534541bb537ed65f652c649eda21aa692bc14520a8a973a4a3d69b01f05867f525156a73f55949a8202533bdb1c6d03357b39b74caaa070523b55c40444848a7daa2520d0fd303542e53c47910f98f9fb14a43bc80635ec1ed4fd1deb03058fbacb1ffff27703f3129f7004e59e8f6543360a6e1ce217ed8bb65fb49f8fc1a0668f4151b30d2b32830b41502ec24cd0b990089c46a8f4cd1685b964884a02008200f314000020100a88440281402418cd83adef14000c7e844880549a89834910a3280a628c31c4004400000000430832c8d0d80e93a8564a0141f3835776cd1bced5742fccb387e4c841e7e811aca40a3009f35535f0c3ab8f8912b8031084e5ff68c1b3724ba1da47a06bea00b5b33d6fb2acbe3636d22056eb611706c75dd1cec2a2056e7ab420b76b6cde8e8419c7d12baa6b3f377d60e25cd3c49c99d66cbb6d2350d5efb66ed91afd80c7f2ac51510ca4271bfde7916d30fd0c216e8b3da5362a1dd988f48b2d9e5bb621284afe821d64d2fb41cb7f89179ada56359a53c3dc7489b220778e4d1e41b446620009c16844de8652dbaaa9bd8f21f5ea9c9f8d0d427370b3fdcc38cff3d6fb2bc55c8461cc9182182ef3e1e9052b1f4f83ac564516e22858e3f83b8a43ef3e6b8b7c4ee703688eb90de4f50dbd071ee137fb907c57d81eca93634f94df33c96320fed6d0bf8d310badaae76ea0079e64dc8dcb53d4cb661cc5b213ea852a7dec13c1b6d991c13963fbe8767be28bd72ab64f44b0a239ab9d81aa909d08f54f00f935c3fb9672e0e357231581a731a86e0ead4195191d6cbe34080f7978b819207e01a87189a074a6dae64fcd3234d6e90eaf50a0afaec4a6ad15a4f124f460b62b44c553bf40a502ea2550401155a5e1605c03ff288d5daee82eadb9a65bfa5e1d83046be51413cc4e8c63088f0e21b3501db54cd421489c91bf479e63f80d99a9c9a40af342cce0674d6ec909b61185971853159434478bde17c9d420b992153b117cab64999485e0966a2fb0c93375cf70373f9443dd62e8dead6b61610978137822f7d50650acfba11a3638593930261e035544a4f96adc0c94c9b87493e5b8a031b16b799f392f32741071830120373c1fd03186899c7c000ea314ad4056f0dabbb1ade275e6d994615732cc44c23e0f164a6a6575ec6c1cbd7c980e015111e67eff3b3dbb2670670f038bb20eb18326915378b4d3eec90a4a82c1e0621b705d72dbe599c8228e054bf32bd3f30687db76efd289a755d6e64717dadfcd5a8639e58c4728d800344954fb29810b169692059309048b9575a2611117a1a02526e721e30c818c9951e4fb00a7eb88a29a5e4b315335f4a7bf88f5075f1e3257d5a729cf55a8714d800f858af2d077a0848122c2c503d3c1bbb679d50af3be066968571233bff185bc58ce308df87b7019a79f410a08accf646b0853ace8b58d3d3e29074dc0f6f9328a6b0ded60b2bc70515dae5112438ce10c632875988b20f330b7c6b864d0ed2362c5902b50f63089586a0188811c307c380509a6966a3bfa47d73fbafcd1e91e5d771f1d605ee5473fd7ad5ccc61c7ded16976c06d1d26b3ba84b07c09522ff35071e7d87e92c36f52fe849ac388b92c737e730bc266579ea863123f9320d722bbf2845c0da6e16082a3a76eb066b67c7384aec9b1d125dfd2b063401103a21704ce7b94265eab813e4540d4bc21d15f71a844217c6f11a0e3d99107bfd2b16527947811b1904d904dfac4e896132ddbb63243603b23518137e6f98b3b785d28afedb9a48cd60dc384d69d448ca24b30383729dfd3de34aac90eede89fadfea0e8443068a1495fde8cbf975b5f08094bc3be04bf2eee86064a57c881a25437b39edfed9f993ee33b768c1494de2ebfbb7c89e93f47d3c4676a7b4d4864f389e1a8aaef4e3520b976e90f6d6d9487e349eafd3a63ff3160a6c3d10a6cc57a6fc1b219a12dc4ced013b7e54c82d4be9789bd301e06b1d79b990247b949571b86e53176f8607f813a16b42bc5dd68423da7277c117c3a82d6ac2a6c7bacfb0c542348880988bb62c1fdc26f5227ba15c2e16d23b1401182c8d13bc3d6654af0c103fcc4d87d015e66d59b3f6693143420a6680972e1a4cc3dd4f3e644e3b67ef38ab7709ed74e3aebcef038f1ef81aa44b2e3c6c3bf74ad4fccb7f1289c6a87ccd25141e5c2d22cb151eeb169030aa06aa5a9d9b45b63194f0f25dfac818724480dd503bbb9a8f7e94847e6d29847715fd0a5a071d0a8c0a30406130fb18979a6059e7a5f8320c94b1833a1d6be4041512417737382c925abcd10012b170d812c3b69e66ccdd9a574cfa123d701011d0087c0d684ee8988f83cc425ac764ee48d4658b063b42ee2e2437c2806c83847e4d291fe3020542d1e6cf32c243a4556bf75dc8761ccf0169ba3a729d2886281f605414524322bf5cd8be21708712755903fd6f08c0aa459c0b425d66754bfc1691a774bee0811621aeb84a9257887f227460633195fe97dc55272e203c7512fd3dc999725ea51c45d42206611981587642d494c600d78c90a8c865b9c92aecf49ac747632cd6ed80302ee553247d7a93b3649151289433c94438ae99d2c60c8c844a0ff77b1c78950f45dc6e33a417267529fca6f98a36258e63a8d8b91560581c6ea3b65a21bc3e081a015d5e323697baab8c0fb1627a8ff7b5f428931443a06f82f7f68302bc6f0759a1f799f941b2a90ce76148fd2ae9721ac55d87515e8ff270db3bd7ed7ce6abbbe384d4a4e08ecd708133b82106921b1299694e9e117b35bb67b81325cc05ab63fa8f458b68ef89913f4589ca31e3ed5644c1ca75f3767194d1b7bd81d6ed998bbdb78f00375d3453908d18191dbec9e8b3d51f54bf06842e093d87f7b815d516e6fa1e7d3bfec89fe2a1e244fd34c82a6025f99a3a9f7287c9040004f45f218d5caad80e23d8d7d85454aafd99f7ebcae6c92759027d44f62f6af0e2579df9627db43590696e5bf828245787dbf415ea47e54d1ab77b392eda4c1798eb2d7838c48cfff8e4765e0056dc37dfcb08d9ef2a2276ed4e528021a51b35b25f2c2b154b99007e901a54eb1cce45d83cc33702316f2cd9210baec85ed35293f51030f9a55f5f9d26cee5d0560eaafef5b5e99b5fcee5440ce72555efa77dd77c252d2180d41d27dd0d7e8a4df71081a64e86b4d39511d0fe71cb2b82b75e2eaca77ecdd792b567d384326f69fb9f8f007c1660f9efeb6bbec3630fed42487c62d6e80ee109d33d61a345e662e73e4ef64b439dda0226c947cc86c73e907cba22ce69d94c800a102454da5ba2b228b3c0c64e1dbea78c824b3c623437ebbc43ffc8ac60559b81a1eaa3d85741e269cb2a222ec493c9713029373c52870121b9a3d13ec0a14406a7b6534b5c28f7e57c619be342baa464a43b125026cd68a59966547b6ed154d3a4de91e0bcfdcd562ef7ba070b5a8a14ef64cdd896851f24f4c3a74d0d84e91b52c3b0ec636eaf300b63cfb3dd9fabdbd65c2871e7fb2ddc70beb7ce28921e19ce59b47344a9adac9f4957c2a72c407eb547999c2a00e2a2dd8d2b1c3500880586680338f27953b0e38e8723b9f12fccad5dc16e4790b6933fea2ec0da2d4658a3db2960078f0a2cb222eab96a52cfdb12a4d0abedfb08573933ea66b8f8444b0df97c2019cccfc0ddcbab09369665629af8a2d13a6dee3027930ab9d897010f98efb68bf0f787eb72aae2acd3d1a07a082ab6e1d4c0eb43e40a038a64bcfc8b075e10628df9d4449c3546cac458d75518e4058081a8643e5f9a5d64466109e370555108980804bf1100fad551aafeac6de9167d0ae26047d00ae120f5b53dcd13cedc48adde63b9af539ebe760e6f4594034de6f447c627bc3dd1f1b3fc8871fe0a8863ba407fb36fc5caa28cd4f0a43f63d50d7bde0d726b4b21b05b370f5635d1f0869d4676e558948079ac3152d4c6860760806e489ca5f1702d97bdc7561b45ea563a73964770f8576da1895ad6baa1d3c477d6855b0e819c137cb9e7df64c41132b7b08d5a29a2e1eb844d073bce293db51ffcb3f18302ae025a3bb824a7a595ca0b6652e40928d7d1b6e18dbd8a24b9c1606cf3076ac10b557af8fdd5186e60170a2d76153ccdf2f6a498ad91abddc111356deb0dc63a4c877a50d696ea8d14b6ba90c4da7569a0eed76402afeebf7141867a933db448ed4528e6033ed36e3cb1776cc3538df0c5b538666a93c3799834cbaba80f1c9fda7493bfa9e3e5cb4debd9d66f193e9edf002aa14c5e7d20d7758746ad6e6cca06430876dbf54f26ee43ea6c5587767d51cd126d437fd18f1c3d91b6b57e4dd6dce73ea7986d17af2497f034e588612f7edfb96f60b502f961a4c261a865d6325f84e12576b0b89cdc82e11fb0062997844e3a23ad825f2bde58526b31cc47f0470091346a3c2127ca74f0f2f295dce309b3ec897bc2e6dcaab2d546b2d8407b99f12266a6715ccf924d1679edf620a9f916b24e8f48a8489b917546041660bd23950a9f0a8857a58eed6a87bf5e9a6d0b06c8a5f7d4f6d10d944aab946c85f138f403af2d7e31ebd1ec7fffeba94949d1f0f528723f642344294c0272734ff6e38bafb6c7fccd22df261171c1c20af76a4981f313bd33ec2a64984828c90d919a885505df059dd9db41f6d93f9b9b1e46c4db476eca9c8b36e224adf70d7c2ec3bc5e096dae2aea7bf70741366368f962f67812dab8f509c572d9ea1cfdcae8d410d10c61e78e0232a0ba8ee91dbfca020fcf6e8df5f8b271f2f750441e5225779f6011adc17c18677873b1fc72665536739f48cb4b9e163fb3b16e00f08c88682749e277dca36e57225b6778c384a091b52a0ddbd17b2be1e9210e010c958232800da877f118ed25f0cdb22c4f1c0b79a165073c44fd9659f97ace3aa9fe1c06dcfd2a433e675940ba513fc3f39c7f78967e3e03cc2bb7b540767cfca98934df8b42438230b27e1b1f48fd3c8d0db18ac51c10e3ca78188537d06f4246ce3db3cfe82a03a43108d72e60c88e0d0b4509aa470524e597651e4dd6b7a09b7eb881d7cd3adddd63a97f37b5f7f7838771b400699500478dfe45298b3b0f0ed833503ed9243ca826489c2cf022f85ad21920cbc84426a16df339c1a49d5443e2ce4e00b1e0442a23e59371fd0937680eae715d509c2f10659f310b3f06b1efeccba9106668a9ec34263f71b984ba09e9d916f466120686f62898f26ba136f9901ca5540278146cf12db77fafc38d18e295ed6a18b550a13ad1fe34e06434d2a89f191168eb92369568ff02106f2a237ac588666af531c6c0abdee172bfefbfc495251386d4babb6a21ed5429a12e249e2e44ce59404fdcaec85fb894e1b6504fdcd64ab258c138d600b5a8e7d4800aa2dc68694faf865c2b14906da077b02d01d859f4ed5199a917ce617b2327932651881e43dcf84847802526d0a0fa9b7bb13ccfecf9f730e545db03c11d53af3156a77225202b18672164ec0f6af86a7bea462adfec08a1399bdfb4062aaf2907608a923622fd37ce32f4dcb462e721fd186360927b92f64f87df87c1c4bb32952215c20abba871824580065ef027803548d094cfd565331e8b20d99896089697977f30a4802ed00a0c32bd5ce72b88eb46211ae867111bf0d8adea901f9ef584e42974f2326010178cd7928b77b2bc8bf5c9f77e1372eab21aa6c01aa45b3ee7e64213508190da8c58d8dd7d0f4c9482f45df57badf8576d69af747f73f73a412437b3ff306bb00a3f5a954b3c7e155b7b9e5dcfd5d0474bd1b3cf3d877b11015bb14a48e3d75216d7265b58ebc8e8a645db45e1a5716198b6088343e87691c320b14e059fcd8c92d7d43d73e09382f62dbdc08b950c5f143566133fc5f09630fa8571a019e1f4cd6bd9f654c51f3f6749b1a3977d13af5e6417583591fc060546f3a77f393d98a360d8c066badac84e5bd605382d89da480799ce661bc95605579528af15fb26a5c81a11e5884d05e0b25d86325214f29bf6096f6e9194f9d4dc546c932b8ca2bdcfd193882907f5372b31882311fb22631224bbaae71352b4ca4bf145629d34783bcb034b7c6a1b8498dd74f84b8e0f00efaec44ed824e7bdca472e7f212c327eef95cbb6148c971017f1801fcbb22af23ed3e2e382aec3daabf860ef4c18f05dd5111c55eea114c40a531aa90d796215061ac52b437defa2b65e45996b240e5efd3c11dc050e865936e92192cf4c4c287bb6c29e2d40106e8ea53a4a9c3a692ffebbc3227c0113d0b9a6a1027926400f3d589ae790e6b3ca3dea16234cfeda44c6231207085dd95a1eba0e175188233c47306906131222e43b6ab1bb37af4d1988a30a7c872e808d4cbffd8d553e2ef4f7bbb4d2fcd242c1750b8c821562eefe0ee2d91bc2e168b94b4b82d157039f74383450cdf1e7675f22652206b74101d1ed05bbfadb814cb5cf8b4a9c838abba2b36935163cf9fe1639a31958a3c37678a069d641d98315481e7692e4a2dc72bf5ee85c1f14246c35f5dafb59db95f335cc8eb5f01b85ad7497278ae9bf2614af7dfcbb566cddad774f7e4fd2079fe0b4f9d79b0b46a6c42031aa36db42578728305f6a064b63971e268c5720d2491ab6bd6b4ad8f1230a179bc4e5d376d7954118cbbf4194335e5821c7741dc29d67709042d1eb94a652026bdac4af41790ae017328ee01fa6a4f7e5f4e8c3ee42354afb3e571aed6aa363e3e3f0fbd042d75f6a78a17d89a963a4b157372575f8d853523cd9612b24fdbf7416493c3449cb971b0880cfaa659c1dd85a6a96c734e38ee72497f4de8750060900a1fd222eed5a07bfce6419d1b50848226c684cef0a9a85029cc3028daff5d07dc071f87e29c3b616e4dabf8790d36fc991c243728e67205a46b6d1bd0c2b040a5d2daf5e46e3acd143b670ed04b80407e29fc9802a28e9362aa5313c7eed179e5a4f69de8dfb967ffeabe8155339795f76aede671813314c5deb3d6d8747a7078193ae3e8ec862c5777189aea7a78b5acd8f431b142008d702f0d4635cf3dacae32402c3845fd45495a615fe0345bec3c4cdc4f830e86667975de0880b52b0009eda3817ffe85b1a0d50b8279238b415c69e0c89440ee40976087dc62f0b2b651234ca61ec4d4a48cccac2606250a5789fffdcb396476416076a9c0bbc49371b9c26340ffc1f4e4ab7994a8d701bb58e77a690a9804dacf4ef52682bfaf40433e5a009b95519be34d611164e9615f3bfc94914bd611ec878e4eb18155d49468323710461db4ff3b7a8a18d53bc8d608a140a3df6f40bd8ec91d670267a3ff61e55fe8fd0f4a39f014161572d49420aaf2eb40618030c785fb585d154d25dbbe37eec16ea65e5b8a7c3b768fa97f9b391dd00466d90c7d63327d0c6c5dcbeeb256d0d23af2320ed1ff99659543062f8a0f67235a2c18bf1dae32a0818082af1feaed6b19110133e9cab2996078625b6cf107c1dcea19dc7b687f57a328801dbd04ccbbc0c3d513e8f45b26e2af8f719eb03a278af8d08ef88a5e367bd1b3ba3b47b5783d6ee9f7055e7a609d1998b0f334512295d75ff966c551c5f27a860535c46d73143ec0ebaee02eb140dcd97232b5773efe480abeb1d8b1e0841ad9053f188856c252f839cb0ab0f637c9681ea972b1409c60bf63a20ac1551489261781501100cec78012d8f71b43b242a2f6b028e7fd31dd8de334cc6b8c9b56db55abc3e45007b26dce088ef7cce19a8043a3ae60d79e1c08e600253116cb69d21f51d85248bb6490721f6d1e2db9eddb7067d8a7b5b1d6f24e86be7189a9afa3d42f788fe1023c63ca4bc3dbcb102241bdb906e71efbc18185b794448c93da5b72380e05c1aeabc6d591eccaa116986631fa1d45a3381b200d0b19e6a46bb71135d1963ca2767b342da0e8774661847ebdd5f1f483cb469385f09a0a3c7534f2fb2bda0b8a40a83116e5ba11c9a61455445d9643627fca9c6da287cec49446c26d6858fc34fa197609d6d3999f3cb03d54d60f764d3aad13637383f1941f6c29fbea891a7dc4d0a62f323d6c380aaa04ab0e2e141aadf41f4780fc9eed8802006a2886d70e4078f12813ee32d96740f07610abe6bfe6ddb1d8932b0e69e34ea3fb98d5ff5780d13b97775abe6a916ead4fe900e7831e36e0489d32a8d306dd346abeff3b105ee848a3751ddd9a0b37a930f406e4055d0bf057915ddcc835e273a8982fd64d06709975d1a637f772da7a986e5af4045b0433e44c1b96a9109a9816d64fcd2d5bb4e96b7acf1572d57d4e6672581c75df06d9f4ea7123c247ff6335c8f08ee3b31f14b772a7ada8b5a91d7bc506ddb7bd0cd241ec0c461bb023f6fab3ba7635e53131992342c497579e1de805d32413241e8e3d002b5484726f3f7cee18e6a49f516ad88991f193ccc5294a031d272098988470e25fff76a3701e628951913b94a43f7266b92d0bfc2740da70fdaa71a51dcab9fcc3e4874977a62a71e7f1487933a73d572278d505e587dc322b4de3e3051f3ae7ce7a7360ebcd09f58d21bb15ad68949ab4ee5b77db0ab2561858e8387c6571475293fcf2e132afaf2d9b9d410d66aa47b9afa5d708a5949d5edf4634a7657da09aaa39e84682d28934a4e5cf3d438f08c565fc83a8f83dee316a0ef5cfd257c88aed541c797e95f397384e0f83daab34c4fb2cbc58c8b970485d3f3f0cd7e959ec0c5674e9ede11239ed9e2ab54c398c3eb754daf2023f15bbb0a0a8e4190b54de7a5314ce486fecba455c48d4d65fe889a0c849eb4185dfcbcd783eefaadbaa69a277f0914b6a7965923c39c9966b3a5ffaa1d75012f7e527254568ac7bcc21d5d491d0f0917bcd4813bb72eb803861b7e37533524898a67a20f5aff0edadc370141a6382c59de8b298fb8e49e228c53c2d46abca539e62bb873904a47f930872d74356e5d0b1d316654dcfafac3595b917ea2fe03760d42104b979033b8667afbd8605c8687d140aef37057e21eb400629ba2c47139b6521b0a0cc4aa767fd717dae9a10d6f89fcf2766e06997cc427f494df59f1bc81888d9f5823a15bac8f159a8c6790d437eb31c9225ed8cd3e5f1436bbd5674be3df7426aa00ef651ac003060e5c283b018e488dd3fac2833660805d47100ea60b91fc2f26f18eb245609d643648011737a744c807398ae8185a88e06811455f19ecac1e5df711207e6bddfa0e719e37cb4efc3473f639aabc81c68895e70ed021162c52627eea35004c746b7bf1c6f573bd6889c519fd05d6249ea97e544dc58644935ebb8d89bf2eb0676ec1339aa1c8c62911fabfb4917753fe370917ccdb13d4f0d4f35425bd618f7e532871651f53dc7b1859a434c06c84d9cf23c4de2838a677b3725104b14a49d2ebd29d89fef605a86e267e2f94682232fe3217a6e68bd4c9b45634fb286083ea90a5adf08a00cc4f9ec7dc2614d0dfb8f2d2ece9479fc545cec79d000363d481669cc14cea90c0e302b0a0d4c56b46c2427cc19d7828e20a91dc34c934911a2bcf65048e93c926a8650920ed1e1797def8d1843e16e9a590b3bb0879f577d77a69f22f28e8adab6a989387d8b0bcc5e520db5487d8319576d14e58c29e08a766925df7e3a66175cb64302788d7d0ff9f5940706f7552e03fc6306fd1648e2d29d233666e7f98819206789ebf0d99b7d32327bb87ca8ae98f18d27f8a8ff073d7059073cff8c2923b325d7ddfa49c988071928e651cf224f2f621095c836b581a7f5811eb9e875f12e292c38351b88295cdf9797179c5bdc27d7e9387f416cfbf992cacb5c1840293988967f87f035f980af6d483b0ec4df007838dd5f74059512610bfe2dc7259cceef14bc5a853385bf237a6a224a01425ab379104b4c06dda8049f876ee3ca9951d0afe30d222db7363aa584676b561b95dcda288a7ad3b158ef5edde8d8a360f7429899ca8cd54768e69787928eb0449cb3d30fbff2b087aba417c415596678c3cf34b50c7d300283961691d9fde9c7193d3ba772cd500b7759c900e1d72961e8f22abb656e9f1f24ac0a55c885e320bfb08b161894767586589616cc8589737bc848351f68fa5761ce73160d9c9f36b9c18f87c7d05cfc977ab48faa973cd310b6272e64fbb7115d6286fbde6d51c3cacb9ed1699fbafb93303f8c47c090a81a016dab2ac03dc26f959d2ca2779ea94015f61c14eaafd3a214dfbfc8d093c92ee0a662a8f51d31cc1f2f3a1dd7c174fc6d3e904415ae5b4e4f71a0dd4d268d8e986c05b5edcd7f8613ad8bf285692d88465160200b2f624f069605ca86593d7f255069c689930d22addc0bab963f8ee365688641eec6693151e107e963c34189c5e5be8fd652dba8f53164cfa2fa7718417fc880313ce100e83260fbd8501559d1fa4d162d07003ebafdc9e6025f35f7389d371c5db3689acff22e846c8bdcaa2e1dd834e040ec3eaa08a1c21e58b3d4fe61bdc7013b7a117aa063475d8236ee3c305484260d4a1bfe36c0ab5f7840e2384f766ee5b905f9173751f916acf4872be5ce5ea1dcb17f0480e90e30f6cb4e0f331e07c82453e539ac28b98b0d39b2b5b1c41f61be25fe86c34e7f086eb9d3be6ea35b115cb419e81f2cf0402961865037cc091ebe0e00080b5bff333e3b79ecbaafffb76d0364d95e10c3f3ba1254688003126d0773f0060852d317b683ffdd70d53489837992c9e82152b2c6b02193c5c092cbac1e13cc7a501828f26ed1c2fd049c06380f1d27316a4e4bee4ce8a69d1c41d448e8a02998d8e2b969943a7b83402ecf9804585f5d94191fdd300fe8f1383c08e409fc62000397f5cd91cfc19c5b3f455556f9ee3c064179379101b63d119282a61d116a412597fe660a5997227b40f342ee304d9a6308647eaca2ff4be722eee0c808def9df2b62de80dacce657ba0a1e64c561d7edf82d140538be93f89806ebc69cd22d84bd18671c17d2a1764c9468d3bd7091dbe2f99ad2fa1c4ccb5f89b60390f96e836ff921db9ec3d76718baa5609f4f8a9ad2104ea60c716988d844613f9096f1ebf82d8d382c841d116d803bb5eebcb4bacb4e9742e3f6d358c723fb43385f266ec8185af8354503dd0b16b1d49303258fc605af3d391a82c20ef927ca5420ac433d5a7e51bd71a4ee6d37d43700670d8998c5d1e07dd2108f475010f086814d747520d60142c4f75b0c215ec6081a343dd4a5f72a3ee12cb1aec0826be22add7a8106ab03513b08a4d2627d50bae907c7de11f64f6b9985bded17fe8d3cccf5be7b2bf27093282b46f49ee9114361572e3aa150f2052f3615517dbfb61fa2e557d46e8518eb59419f8ab19f8bdf704949111e2dfd0250b9f3acd8be21db93de104a3f70a489f1289ff31427ee3fe35fab3f1c6bfa2a4599caa094478ab73ee9e206cbfad5e5dc025c60b187bd13a02805716fd8482d19a95247c80070fa39ce506c17a12d2ac2fb67c1b6de044ff59538938b4d87065696d10b3ed88f6f69a58559b6ead27e4131950285edd702365adf1ce59f9c6c80a0ef574eaf10cb81ac9947cff09b88fd5897c930cc79309404f16fb4388a53c796b944d39e002d1b9953cf5ed5768165d915dd87771e61d7a1e7b5dd0ead334f9f6aba8f5feaaa8ea49070eeffd4abe400485caa35ef28c57e0426cb15ad946e6108e309b9467c822c95ce6068638a288723583a7613a14e6c48ab4e543e1f712ef8efe77f07f8271e366f407b78a01dc2febd22ebc02e5532f1d480ed60a24768eb4915159b74416048aba08f8214a8e56c85ae747f20133e704640f8a67421b7aa30b7e907f0cb2c04d7354151e3940a794e96f9933640dca42ea640f22670ff2ce01268d54fd1ddc504a5caf2e58f347fca9dc5b2294609d2aa2c186b01ccd563e83b3aecb1a6af606ea0255122dbdd9f5e10d13402214d10b3fa4002857db3f84d56a8d93bf72882ad82203c8219ae404714e3aa4aaabe77b02214eb5a2460cef77669b11f32243ad5d6a9d8caf173f904fafefa2c12691f77c6614b78936551d1aa678e2533824094d0c5181ab947fbfec801c102f7d429ab58ae5a4288440ecfbf6d2996abe352b33663937725a026713b84b7d79eb813f2336729989438d801495f0e61edc1c02830b02a8bf1d09b74a18ae0872c5490cd81a9a67e9d4f65513c8b817dc4e42a0c6a69bb2c9988b51203a22b9c1f910f14fe7f02fe33b9ddf69c2774f81850d9bc6c87ac0fce546d0f936112d0efc76c51f6ca97ab62f6b71dcdd1befcd2fe4fe1b2b6f2c8c8da2c2ab53d9cb5fab57485b8107f9fa1a81472b304756774d7f73f9779f4e3e1489da0a35117a94a5ff3c44589f6416016572bd18e2e3d606e8bf73927cc2334134fc34c036c21d7bbce39b99241ab567fbeee56848a7acc0f4799b3d0ed415fc40af626f4a0efe32af41c7b19a142fcde5e2492bbfe92eda06254815930756a0ef0045df1990eccc95fa8b6080e6848a993b12c8f83cbc6a7095737efb67280cce6f64c9eba0f97251c4e5b0d696b929b67223f37d701a80b30d91fd534b0177450f3a247a82cd8d1283bea614bb00ffafc38c68aa15e5a042a5cdbe452900365ac8582d126ec679718936c2f30e669b16bf3e7620ee5b2c4ea19c47598e898693f2b3ed963a5d3571b450d2c01d3962451f9f460e1ec750cbf9537b13ca4bffed4dd84e12200e4805b7f30ee17d6970fd9bb94b52634466c2039a41cb0467414e048663bf6fcb8dba68f745a14dae76c68d4066e672e4feaba9857be9db47e8f38456967ce44419d00dc8e83e6b85e6592d685d0c16e3efa61fe4f016b285f3143e280e87eeedb9ca4d564d57d13ba2da8a15588fb11eeb2f70cb785537373430512b5fca244b5511a7a17aeca2dc2fc299758be42c92597d07afbd9a45d04fa56ccad04831efb41aecff0e459100d158712153a8d79a5c95538c91ff02650bd01e43b3190711a0aaa4e56a6fda43822ac4f66e98e01efc1d00f57c6d850009034effda15183bc8ee235947ba612049076ea0c206e1408cf379a3ea35ce98d8b6b183e689ee043b52a768509bb05581e63b472a5ecb7b078556a918841b9bab1131c96dc6d3ae35b16d9e803f52ee0832677be1dc65d26f040f58ab5efe73ab6f95c29193c830340b9ec4b2390d102ea5e219dd9869c9fbb71ab8007e3362823535949af47c16912594f016c8b7e19def2360aa86892c41d02369d99d627c1647aaf5746319c17284e17f1f8f42a00313b5bacc61d53c93cd6c6222eb10885be9dc09f8209c11f3f601a52ef6307d4faedcbb4b452cceb538ac32e2f4828b4f2987831f7a7641bdc47905c5418421eca1249eb73ccb0af4788117442184fd6824b0675aec6115243f17a0974f87293e3ec074662e14258980af291d4f31140e91a99339d52646f44d139e3bb970ef54d18e29d1d26f2e41a6393619644ccc8a0a45c1354f556ae3207f0ad5227808e98dd33f2373807ce666a129cdcd0f2d404366f18948c684dd405d03b91799adc068faa88fad77b5da5e854ff79a996b672a78b02e57b8f36674cabb283d9e6176080d2ae777e6607bb49fbab47488e72e810b30c8a8da392e213fdb41d8e7526875b976b8b71c0ee5dd0e38b03e53aa8dfb21f51e6bfa09c2c9babfb4994823d79cd4399cf3f2c6075ed9808423b0368d368afe1ef3a2873c0249e1642c461e477291fda0186962b1ffa28e65ac2b90c2914d56ef4954ac83167f3c379eae4964c5c1a18e2d56676ad135cb77eaf4d085631a1c17f460fb89b87fbd4e9fc61e49a9ee6673c54577d7902fcc254e7703e95974a222f164268bd338eb8ed0ce80d1fb27644fde0b3103118a401ebbc2a8aff9ba63064a2fd4430140ed8e133eec25a741bc21671f6ad78e5380f375b91853aa8e997962f6bf8a36a0cef2afbb135a22a4b60d2338a863603219dcfc690be9ece2657e35a27b58ea8349f25e1af8237a382d49bff05e65437c797aa28451986510570a366321bfc0e88acfa080514930305c4678dba2d2547b3046464baa9bebf09bdb37ddbcd0642fa37fd90c360e05867ac9b54ac3b3c5279bb3fe612f1595b362de526b5bd8b18d30655e68ccc10f1d79651c3f57acc561728062a3475d6a40097908d95eb9f93ab0266f68ab4ab909e6df5cc056af0c68186bae7f443f64ee9694400ab995a40aa350999f183cfd5c16e4af16660d027867fca68f9f93ac790d5990100416ba8dd1438d957b58660a74084d9d84f577dd8a4c6b9c56d27f475b9f5834e28fd28455c8212fe243129d20f0f7de044d7b347dd9cc07930d60c7ffcf806e5a246412bea5bf9e71e8c2ded379c27d87051f3572abe1b02d0a2b730ed3f0b81acb8ad5c345d5796e0753f765137541fd88ed64b9feefab2a44e9dae2a390c21edf73b6606ef966ea139bbf98dd4f94e14c2bd1f67801c90de1ab94a33711ca0d35a2e48ca5babfc4c8ab170402ab2e9d23576edc794a92b79d0b719de083fc407b21c52675c702ddd64f1ed3d9a5736c25c28b55bff55487db92f22e285ba90b117cc804d2e5b2cf4a1268504b9b46ed788d4ffc6b8f95764429f4fb34c4baa11145be0f7fd8c125765b09e550d6360d26e9f1f89caeb1e1c3faa4eb7ef1f98a24c462638f4881f75c76562f38a759dd8b4e25d077eb2748c69521548811765e6eb7c44cf21c0d41b5941635da9897bc521a54613d0940a33587e390db49b89dd69b4e10705861ad464e7a668dbbf251e03b11a01c701d3798ff5b9e6caac5cb03c12ab8f25abf3668379f4383f1ce9da71dc2a73b9d6c18db68ee16f117dda7de0dfa52f192f67ddd208e99fe8f071c66bab92f15f680bcf677682bb07a4a947f98c5d7b0bb555eb3f1e001c373bc0ea57160e7602ecbe21de0646096edce61e5a00f5a86219f13098a34341ed1192bf84e9b3baed5436a338b9c38ac2ed065f90cbb5f00c6c0c0a61f22d509755807f89dda4fd0c830068c52142ceedc825cab0dd53db6b01dce17e329eb6f6030adad44b88a48b5c2840524c7f73c72b5714f33765bee639a6a2182aa159670dccffb8b146fda75a518de243473752b551d8fdd21eaa9aa171ddd3209c7d4c9038b056eb4f90aeab1505ffd22df3fb7a92b5121eae03aac1929b33b3c3f8096c1425e1ea8dabe8740b342df6bb79a24bbb0ce1c58fbe974fcdbd4b6c4d46c0e12ecf45a2ffb90539fd3151539718db21bae9148d031320e7793809756053547ffc9ef46776ea3ee81f5b7dc71d98d26fab13b09365453208451f0cb3bb3e0b2e337ea9a102668bf9df4fbb9e839ad2224849a784f602c3e14057a5fbc93f540ac8f5ee79cba19589f1b0ef825b24ff8a3d0af8b75a7f1ff6abd3bfcb463f026a52152bf10e018adf1a9a659ee6b6d4e888187e3ee2052cdc55238874949db784f6abdfba1c5930cdd3d3b7ba87919b2614cfb80bd55e88284c01a96468a12c74050c8476040df048b67ca2f48c7c5557a6d4aa996fdd2bb9fcffb134da12120fb3da6a0ef6c8f072b3de713734276acbc90b59bc7bb46e56eb808428795d80b21cc9da6e74e03ebc7b7d84fbd534d508ab8b07451439697345771de1c6a249c0e77f0811494ef48954b7a11a78964657bdf909f728af2dd07ca502955e6157449f3948d0be6b124a8dc91e5ebdbdc881ba00bcd265108ead5fe9c7653d52fe330a01a5f411a6de4e405d2c4da8853c6e043e39a858bf91e125f61d5b48a64289b375428755a4462e0fcf389120ce8c39b9bd99851911a4aa985eb5867f2c6281b704802f1be33e1dc3e715ebae6d517fc34799ea3ed2aa2af2a9fa2d8d3aab78288d126adbe465e56b00a949b46a586191f20240404fa97765ff56101c09d700f77c78b37d0364e759b42b313dd8d62f34e313005d9836c58f07fabdbafe32f56e736380743d69d7ab20cfb792ed51d96c82b4779e5a6e640caf48755205abc9931bbf73cd11e676ca44c258ce7659d796a3b9944349231609e71cee52215efdba1e9f07dea375e7efc184de6856332ea3697a023a388ffe964e7fc2e680e043cc2649f6b3b4c168e1aa9869397224def47d20264495609d8357386a739635eb4770bd4733b9e89756a079ee56bec98f758c132f06f3470cb1ac467a802a1b4e3681271c957f98628aa448e8ed9a0008cd2175b46f333504c1311b6064958489712dc3e067f83838368c114bf093e832e0cb8b0c5c4f7d14c59f40718596b1901c85c50ff7f3830610cc9c88a1c922ebb0a36d2897415ae3538db7762d8453f9860924f140cc8c17e61784a0dc542bcaa5b09b02333e9fd6ef346e276d045c06efda0c26b9eed9ad41f0da0a876acd3b438f4a479d43639f0ce7ab44f45549469244685589a8c18cf9deeae5209d36887b06d514045e21f72044f4ec5ae875e7570cd02ec88e050ac34cf996b5d067b059303048d00c6a501c583efc6c0fe4eb83f8db238a972c0ff73ca40251e90885e433982ce137d52ca4dda19faaf6adb015e571efe24bbb615a38bfd5bcf74e1dc46e5e7953f923fb15405e1864aefa8a02823d6439336313eadeb445b06836d2823394e42249c1660e8e090b5cae569b75f50997d08a8dc46edcd3be8327fe712bd216d484adeadb1fd2267989af63bd1058a828e02b9760fe9cd0962ebb9f4667ef96ba0292d95059ae68322a83a0a9a7a990ef42d2ba1186d2f5d1ef4bc1f84184b9ed43055e2bc7f2c5775e3db47e7ecf952f9fc99ba604d9dc110fbc437552b2da8e1a75e7d50f64e242565c53ba0ab49bc5f72bff0fb37eca2b1d3e7c5356bacb48e1eb9812ba10fae1130fb9f126f866e2a14b4295dd0a3b1c8454b77de3315060d89ac8dfa7095c3febe620f48997cc9016e89942d60f0741bf61615b7ae013acabbe60567b3cf88ebeb5eaa40735d5a3455ece79df1228046207305773b23049a7436e67747c0e19352369884031339a413176a3a8ebf41e69e3d24d7484c80d6005d7d8a7822f690110e1b99fbd003d8faec83e0badab0780441d48e611208c59ad8863cd499f148ede527be191ca93d491f030e1a2fd1fe7b9bdd3dfd7046eb643a7139d8755553f63ba68d31c165d746804bce7c0c7e87dea40757a9844c9739720b4ba79bf35e1b3041c24300dbb952025e161dd592241fc8330d5db44f5807022bd2ea468bffd4ad32458014024cdcb1deb5159fd08f1d8e03971334f98a1a7176fb2397fd8150aa4512bbd6c763e823913296410dd54b532b9faf7c346fa867f7042e88b1e90697cc729a8a66f6f329beb00574f0d7cc0cc95eb7a30c8943a81a10adc9199516f7542bd87e2c3e86a595d8918fad1d2d8bf4b8e053087e5c7fcb6468dd19bfdf0f1e7d31cc173147abfea32bae5a1218141823886d1a4710f094780cec85b1dcf2eb91000dfca8bf915aee27019171279e8b918c9718062297bd474e76240dba31210db7a1130a3d6417f583379de0a87327d5cd6896ce9af9fce68fbddd0c3638f4ed3efe4e03ebdb304bf54207625db3f20ad9b47f089adbf8a666ad0fa3ffcf6d7e105228290d8ba3c0910aafe8ae6e47fe7f4e2a9e96e90bdebeb2d72d199b8a52ec1cba679ebfe36e36dc77431dfb2bfadf4dc5916955bf76f33cf76a81b6625e46f664ad5511ebbf0ad72258d6dbf8938d6660c9620e384fc8ee7be84b1ccd8df64eb07d86f32eb27ec93d8f5dfa55ccef4b3ac6b8e67e3aca8439deb7385024664c98c2573b80c10d367d39dd304683a7662ea2b75bae7168b287dd7a325d3005d38bd34ccd986b067cc86d1dbd6ae54b200a0c13dcd1ba053f0cc0c50027ea3260d95a7a9a08b896bd48c54a5cc9e1f67641cf3cd7509c5fbfdeeebd1775a796877e80b429653f609ec61261f6beb06857f1cddc1065826a20abc9af20b5d03d24f191f04ed2c07d759dc59546c25f8ceadfc0be3b5e7e3e60b91d3de42206a4391ddb601e99b5d05a2272d08b6a63c96afc01e12fd6f53d7b09a1c94c941f16c22d7655936a31516f7d1e1547f4e612b7192c26389a3091dc523b409193e7691d9c0801dd61a8d0b24ec374483259ec732e73928cf67597e639dc7cbe0e6d908c43358cd28e0c18ab6bf5d4378d7d820ff90083e2b4160aee199f0360a788d21c31755816ad7912494343a0fd8ec3f2b01f596963dabb46fce811d6160ee671748376323146f2d32b70daada4e4ac5c1ac1c6dc8123f1ed1749c41fd7e382ff3ab016305ee861a1027d00b1ab752275c266e99659d6d68c49809b3d25c9266dbc6040774c6fef168d0a9c1e62d8bba730b226b205109898b58803d09ea2fd2b5780153bd5c94d841fa951c715131f8007d062bf0893f8af4160e06add2b9d875ca483d5791edc9fa4a1cfb62600019ca29f5a5687cae5425eca334f19d5cc9748ec5577b88f400d6d22e9fa016167ddd384f50d2363af44aad69115316df0dd3eede6a4994b8707e1eba65e8f877ee5a9c648339f56006a2bf2abc19dd1899724248e9498e332b59f8fb5d91c83feb656e52617184690a4cc04d55bf7e0ca5ae58a72b92caee57283fc2e8bebf4025bcac236eef8bdef3382ffc7d2b8cb50da8c4d2b9e87657c0ce8b69788d96ede5534a4d5ef573546c26e37935aeb998e4b3a2a11911e0be5ea659ec69b37209123a80c6213fed5249e4fd5ec0a61e78e1b911d7a0ab967692b34dcd36f2f19c413257c988ec8e0286c65d52fc192554df3752c3d484a58669fb455edd64980d511cb36a3c249eb8e300feeeed6410bc8825768c53c4ca0c405b89089f423829200e036facd30d8693dd2e58596d1d088d9a4460bc45a86db696cd97e47927fac3a226d7d9ec6bf5fbb79c7afb0315814074649f55c2a21aeef5b5e3ededc2de92102cc34b941053185f98ffe48380bb45b71a2b8229c3797cc4abf9a89340a6411d6df386da116b40bd108c5d6c18fc5157b633947b0663bc71407881a6ab5530691b35fed2391e625eea556f437b7145c5f4869891491d8b82902d51084976d9629135d639bc2e89d29e47d8778a6a1059737b0d9e83dd3d4f24f10c59f3d50951332b2c1d951acf8686a04cb003cf45073bea0d7682366de3d68d827a8d31c739ac6e944baa696158a3c81435d85b6d97c5a9adbdffef2382cec94a906770c303966f82600d85d7d60ce481cf7094024d9f385a18b7af51f69e393917453c8129f02e67983a88a30b7add06b04acbd29490771df61cbfb29c673eb9a701bbfd2b650f822e3b3a6ab2afdb89160f2b184d843551f0ff8c7db13afb8d2e55925bb371e841490a9d01139e2349c41451185328d7719a7782271824c39de00193395bba929f6ce7aa3f0ec9052ea70c5502dc35dcecb6900fb63b281b5f6dbeb5fe2b00e5328a5cd5ec2a7bf1b728e2ee04547d4c1626074a20151513b25910b441da43cf4ebff11e7163db9978019950bd4dad7999500bab667710acc0b71519ecb1a25aff3b71112836a5ada2198696599c27d69d9e1ff220be6191e06ad00a3eeaafae94587807bd20a89b40c6a40b7574d60715f05a007782602fb480afcde4f49f865c7f1dda71ae58df9c097840d58007aa3afb54d38de99a066a50516c711657d80f0c775f52a4197ef2fea1806c2c2ff6754e77f0b7176232143195d820cf937412620309abf3a510831c37d47c88dbc0cfbc2666e0cee38953df16d76548ca488f4fe44b0c014b7c2671552da36b624345525ddb0c919d6b7fdc81806a36069c0d1cee426aedd255bd35006cbd6399a37cf3353535eb16a2eca3707922f1e0c9242c284fc57be263c9ef746eb594caaa04d49c4c165e00666f526e7655e55c7d1e001a5ec550dc45ba0af95d0bba7a51f523324187a9b67fecc637401e9bc251aac50746b29ddde89c65238d3339d328cfc4be06a5aba66389d2dab87a8f88ddd15272aebee5be541a28c94e97ec808da7d0e18e86e4630eae425fd9d26b6ce6a90f93ee1350ecfe79eb2525657d59e50819b2c5ebd3d1ba92f5c463592d15a734a9ad6e201a3fa9b36d86820f5edd9b263b6941a3e8308c1378cf5dfd5cb4ac4c8189da97378d358201940cc93229776407b39a6342306d780d7503cd2c5b25837719bb0d19d9b6acb668562d8e3d86d9c991d1bc713e219e7432b6f67e6cc27195f07d6acd7053cf88298f63a1579130937285c90ca0c5a6740f5f3cbfd29b9f9df2d74c0ad96cc3812331345f215b3761c7e4ec6120ec8893a54dfce56791b51cdaa07453b7c50e4d4bc4a3c183b2bd5c17332475ff1fc9aec73b075aff5c3cedad6413401b58a21794955f43d07546268b65aa692fe97d9b77ae1237bc0dc3a43c39ce6f5e4c0b78406f581f5fd64506d8fe5300dfdcdc61cfb3df11f28c0234deface9c6782d70309eee4e68e2121aa1c8712e017bffcdd2ffff25bf9dd8d55ebf3959bfc9c15bbaf05915b41b5c319c963f64356d2d984b30d3b30e97dcee8afac657f7a49ec03a46034373416bfdd35d3c6e2967b6d5a84acd15f97e1e8b902621f9228bd08b9a74088fefaf9381e1e7ccd3577dddf04694f0ed916f8fd51146e29d2e4dd83baedeafbaa9c598f77344b7de17c6117a8a10c6dc8829cd73a0cc8d8da9e3ed0515cc068f02ada0042d2c4a3ab8ee00e7f26af923be409ca89eed0c63191dd211c780e71fa884b7ae960244d04918e7438de4b986d950c008747e6430d638f50b82c30cab13497f027b324401c0491933efd7b67a7a5ee079f5c3c37ce9201ebe118e9b2a169119a8e6437a1faf8f025dbd05d027cf8aa0992cd92ef9f9e472fed332eadc6dfdd6d349e2dc8853c1c58bc4c1735e845a9a355b7eb7ae71da6064713d59630a619e1a913ac4a4f790d4c7f47525c9bf687c55159e4c19df4d45e49a3028ebe5df35d00af4ecf406699328371e17837a05e8f781a4b6f9d67add097fcda3982c624752dbcb69e9b40f773f94236bd3f74213231477da2578d2ecab767ee121c017688dbb28e65e18ddbdf1c9fb0777ec42520365f9d4fcdf3e1d0db2370cacf9e528c2b1d87183a446057d1f91227f337feaa3a8b72e8f6d24c7619e630d7dab66de1986718bb1a121f9d488222311605192016bcd500bedd8df9749bbd01938c113ad91f78920391b391b459d942196a4aceb3e4375b58594c7b36b8d06b98ec2e0cf0985dbc5ee3ca3a4d751ede887034006ccdd7ac56a3d8b3834d141f420151a5116aa34f0bf850cf694367a9e5efd4d95e1c9548ca7006c79b50469395f985b20e0a6ffd7b67cf4be9065cc698705c88c0b3e0db09f911cc2a6c6f3e3e095b2c91d976462550c57370e0e33b05df29ed6f1b8f41fd4a8092d4d54aee2b43f0fe2f1590b93d61c3e2ce39c59784031d2d0bab10d7968dcccf6fa79e355c759078f3684ffc2091d0bedc4ba80f7003683cf9578782a753198c9ae4d1585d7367582d19f163f6cf7e67bb61e1e6237c23be53976f37a959efbaba74f336fac13b0a555ede1cbebb1a38154c1db2bcd48d75d5efd59a6e269108ce9b91ebd48e9c31f29827958e2b0dc660e71f17a16fb1c0a25c34e3adeb7ea5f0bf5ebcabfa341f6160e14189669850c2060794b358a534332445a866a16b8214a4e70e08f5173866f244cdb6f5e52cf1391999d45f0ca29098e284b2958f002fb378d965cc181a4bbbfb4e1575308f8d7abf988cbb1c882b73efee5071281b059400bd8bb85953df8fd03dac189280a9d7534957cd35442c7c07eaade560ed7a0c8b03a00a469fe89458fd297a9c06cf26e5044086389159d7bb0c0a65636769c092466af87e27c7ef9a22e7c844d85ef6b66cf49d5e5cb1aeeff240e4f27a3a2dc4e53f4edf8e31fba7c62a80274ba3dd9dcf3e388df9e23bc34ee5f08fd9bdc41a5b273b091cf86bdaf0f59b7a110cf075508d316063f8a0481745105b55b938b1c54f03f32bed31ea71b136eec37d040f8c3a6add8f38164eeb1ac1b94202683d217e8e670ec2e276e9bd815c5cd905fc00db43917498e9e12a0946b2c58cb3b609c76bc918606a917295ca843682d49b6b00cd6315e5eb4fb26e8d8ee556d9c8fe45dd0d320c61c7cce6e825d16521ed1c013d05a0c35de291f7495a6f8f9d8985c7eaaf4fda9a77a84a5c69528309e31acef00bea1b2a92dabf25e1a01f45779627f7097391a1b84b34d86f6dffe3f4f7212baa1cc8e7cf289e0f4b6366d59e194d96d7dc515ae41ceae97c69c98b95cfb35ef1457d27dc04013fa62cf7097c7f8bcea2a688a9fe44c55f58ed55ebf8d1f1c883a0e6964f5c206dd5ea63ea0b97570efa3f1c7c05c7a89c7830c0acd7869c445bbf4c6e3b983201f2a0ee383dd5fd374bddd2190af6743fb075670bec17ebb853f4018bf03340a5e5156f7b36a9b6803ede046cc7953e99a55f546f256620719954a6295592e279f70c548db2195e258e76130c41160d9fa4c137da71b83447d69099e88875ec887974555ae3d223f416d73089dedb68031002a40248aa9561528f350ec1b7027f4c5d150bf0c3dc59d04f4859efcb86e077c5e5d21038eb826540d74fd7896bf1fc9f8018762b12fc196b5f8303c4eefe580be44a69742ae8e5510151a0beea755cbfef28df0e745aee4041c4e70cf447c2d05ca45503575d06192f5189bafa712497225d500581013f0665fd8f39cf4338e785cbac5d0c73598e75d11de65f484c7aab7e909d784bc4cb0a857cf5fabb8911f193e0cc0f2a511c6cbfe150ad63c9a42b485a1fb4aa9e487a83884ba360d20b02df6f8fc68bfba4602764714f7743cd51c96035985b156047b76fa9d262f2fa722f57b41d93ff5f484bcc9b16154bf044255ec8bbb3af466713433adc264fa3ea534a0b5a7d121e0ca8966eff5776b276ca414ecf55329eab884ac09c8989b87c9202074654ab59833ace984bd55dc7a145cd5d5f0a406ab4b65a447610e25b3b8cf6f0f6ff249ed476b8b76af7de314675b58b901e0eaf21bb77ed6152d1423f1b4ff2bec1b95697ae6138155cf107180572295033ff5882f91a2684af4d7c600c72aa2c95e6ca3884ec1e7ae1338c669bdea6d5c43be36fedf0b5928a3944eaf42e83b462900f7d437aec0a83b74f30069b2343d562ed0cfdca8bc90bf518b41ddc994cb4b3251572cab1f04f9348d5386d2525ffecfc9f406251aaffeb8156448fc636faa2298e07babf8af9ec1e09012cc42de5541b69c002c1e934a2e2d5e9b5808dc9e4abd33b72cd1606865316a07b85a3a10df092167ad89f3c5366d339d5c0199e4c89e95a11f265c54c60c0e9245af32fe8611bfd9d70e893100b2887d3c63c6cf30c160af63747945f32a05ed78c0fb3de1020f7e1e68189be66a07e0a4d0d633695ffe4ac6b998572244df1d7519da6ddd38894081f10afcdf0bc118ded58b0f8252b1e847654006695264c4e243fffa8c15fd4498de02ada8010b3b82dc95d723bbba78201ca5c5def9b4bc15414b9ea3eebcb92adf4c2bb93daa6df16122ff5479fe3ae55fc005ac410902f9b32394d7fe5d77189178828b39952420e1e4781ba6f73ed4fac727201c107e25ce6977a800b3cee0cc4e7dd63d0749a7c1d70aa90d26b6a867ae87115bc1b371398db35e10dfc632655c5a80a5815a119ac01a934c61af06022e037a3bf6f9fc47d1a58de91e6af8c40e1ed9a19588fc368e29c0a022796d5a2031e40c25ebb7569c985b2d8b55658e8710e50ac71aff7533f603d5e6ba62cc6d36295d999a044ae9a49d3a95eabdb9185470e3c71df171b51793efdeadeb8212996a0dba08bdc43497d1dcf60108b97f61ad4a70676b8e73f0631445b47e8bcae9053ed68a850549991b88fb308a534f83da417c1c9cea1595dc943db48f29625c68c784f8817b54a358a76a40a406dbc133f294238810d1f95d1bbb8c938a94e2e5ae54271584c94c0a52760d86614a72814577c7aa2775314ace1d2e1a7490c84e1133678a9b148ce33fdfa588a6e41ed19e902e07d128bd5b2087d94aa94ae2ba405d35fb5c74bfa99d37632870990614e4504aba297e9b2af1ead0cfd55e399a0e7fe89cef10c73cbe4581d8aa0894c7739177301077969ae781e6d025a2f33a86ebc952cfc2ee59075c255b03696804b04046d3c92ac3b4ca4580cacb3849b184d7b9fac07f502b21b76a2cb15fb152752cf998e41af8de137149010dd0f1872208af0d2f0d1f400c5078b1868fe48661c71ff7f432db69d3406110815f85da052ca0456cc7a69a1abe204a6a929511968296f96122b0678b3da43b6ac087988119843b1a7581f1b86bb2970839b4e0adc4f48b9825281c9c90b887d8458aa804e2ed1103ba3f102eafe1640c271236dec9e27a57e510ac16e107eb848436227f73275f264261e600e85a382565aeb0888f5208874ccaf66ddb0620a4b4dcea756eaed32b419f1600ef62cac9c589ac574b26fd77ecd03b9be66810600029921287db3b0921e6e41378b9fa5a352bee3748c5786368de459c23ca6d5c42d400a101f142b182728b686a9ce9074c06a51fdaaae2b560bae7a612077ae662d3dcb874ecb4cfada8d0ad5994a23760eb59ed2f482ae223cdc67a6e85cc959d9d995657a8acd73d0419ffbf6ac7be3c29c66b18d4be79619d3b914673a7f2e21c33631f4711661d75a4498d83ed2dd676cf45a8b6ef7ece71d031ecce11a75c22edee49d4cfa1519d2c739686d344cf867e7d07dfa2cd3320f455ed07f3d0339d7dfd6197d98b853e9e63efeebf9fe3d3e8cd496c90401a927b42c871df4725f3bdf67534f2bf3963bdc721977466c0e32079df4b9af3ae32647d8d4e3d71a36afeb943562eb24b3e0f567d6c76b756f05f6f9597f9420c17f654e098d81f5dac0e8313aff480d37ceaeef51a2387714bbca981792b9b2f47e66d935fb4fe88b0dc80c7a2688270a321887b086989b5e44fd363c0bcb01f62a0603f2f0679b50c7dc4ba3949674769684c14f87fb8acf73be8aff5d65ae6f85926361b4db0d173be0b5ef8c95e578169d9c33be1eb7d9a9e755b9c5b36b2ecbce982c671de9f2cf3bdeb35376aec85aebe89a67d43126cb65a7d2e5bbf6e931f72c7282ce2bb17e7fcef0c2fb80c162217a409fe5aa833ef7e1f9964ddf69256fe9e1ce65788ec938eb4497fff2b8e7a6e9bc3ab3dc096eaac8a8a4ba55f141e7448b534f82a4b43f7b712c407829dd7f51e91ef9c52898ac6757b0749724e428773ffca2857e8a1691e4a7da2f6acee374b0052b8841075546c285e37c1de1eccbdf38737a0a9ca4b35fb3ce5e91f0c3196b17cb0a023df6845364d826e85cd72541d97a7d93193582aab76b350f474f84a6bd9d0c483744348178c13229f258333603fb62ce2d5d1ffee1798e525fabb94d55b100b0ed2f1d468e413f068457b1c87603bbb3b3d740f0c1f250722aa73503c97bf28e2d9038bdb8f0f8fca194ce05051490ab00589129add95f3e7a443b0a34a4614c2ef71ad655815c3370db961d13997e7c724235e20109074648259379dbced1a1ee6b3f5e2ec3d9c3151eaec0e99724af0f5953d62c541f293c012ba2eeda755acbe0b1676670dd702d0877441d01c4e3c7dab3fb55f5056a9a0c44db6a6616da3513c00e9030fb01f559d10fe3c02e68fe6b640f3cd2b987207fb6c874eb67c92573a883ef23cacfa3d13f398c0420798843df4ea49bc4d80321aad0ccf44acd99ffdf371e11a0e9824a7015035477268e4108a44bcabf92a4a488f825a25f241dd9c014f13a3a48a0ab4abf0f22e991622cf4acbd5072f9b31ee99b19022b047db65ae6e930791aab2d1722e1f3db8dc01a284a05102beda39a822ef737a4594b46160e4c6bf11a8d6293083aad0ae611caf63f638733f631017e02b7018c36040a16f39d5520185aa5036dbb68c865beff3372b51f6f885596d987a4d8456614c92b1f933e764798712529d5c3b6ddfdbc32b3ff7af7fa7a0739b32121643b4ab53f4050caf447b12db86f43a2b2a84942f69664cbbda59449cad309dc09d6094d2f1c4aaae6946651189efbee510fa7869a53523f313da2154615e399a3aaa843fd880623dce6c912b52cf595666a9ecea937966e6a1ecda9771689a5795e9cba6c6a1e17a72eb334cff5d43caa91821b63139d74d259449d4ea2a75ef4d408c8a24ea712f40531789a00cb33b0ec02fca8abe28fd422037db8f05862c1b24966f994975bcb525fe98f7a879b0937966eea2cfd519f69cfe29805472d714b6cea8f5a588459e903baa21e69cd9ca6562d67494b12583311a2b4855c50f4b9973ca55df4d4ab96c92c9ebad326148bcf389ece25265828e56ca244b38c7b5dd31ca667324d2cf1e7e49991fe93a3523a74e8d0a1e365ba9c3c3abba02cab4010305808afb5d6179779a3a778e49925cfa6a7ae55e97332350f96264a29d177b84e2d979b4d7396b1c37a0ba79dd637d89a9025dd5a6bbd2c44cf2c63961175b22c8baee14cc34bfb729631996619b349ba44ee8a8557de464ede6efafa30260b39ad1b808b97335779c51acedc6b9bb76f9ea214c64f9c9f5efc44fd6e5e8eb4b3883ad6516ea3514cd6d4ea96ebe69c83f1607f2f98d3fc877489d74e49e1dcb1b7ae7128ebd266d1b10ec8363daa036aaf6ae1765e46123d7ecbb8b5d6a9739c57e8b339673df3ce22fee4f8d6a9cbc4c86e00f6add759a0ac77fac0378439fd436a38facc314a8e533e6611758c3a8be9f2a54f6354596de166ab5aef5daddcbf8fae7eca9e9de91be773deac621f927035d7688d1935dd1ad2accc87feb2956c1931c203122a2044b7b28c481059cb16ccbae2ed359c573fa36c7a8685366878f8996f7983910c2273bc94304829bbaa9ee0ea928536b2855056016e5a38a3c61177c26233685bb64cb142568985c94933ad6ea7ad48db32e984516f2e99733291f11c8510dda60c094ca66aaa6664bc7c99cc4829a5ca25551969a72a9753f336a6a1286405376b4cdda331ad5662dc4835ae63f2d20085db66dc46bab2057dc2e612185e3297f43724f33266dc867027131292c4cd1396e90988fa49a6fde7b4d67692db387e83838788cdaba403aa5498502f352659a954a4ca45f3c4db33e593aded867f8ee37d8323588b6aac6855859b35262cdc98f3d2b728dd0aa26b085d1e5a37cecd216d22759c45b16e9ce1607aa559d2350c84860c2343544088e9ed1f91202a706113f6590e4865c3711d90caad8dc30e48c67f740f45e219df81fbeed86bb8c3788cdb788c535f3d74f1e82e3eb5ea58d51f8d87ce4dad0233984810fd49f7f1858b572e1873301863c71d5daa495b0d3ced355634d7a152d7e505a626d5a49a5493505c6b4d58b811a88611377e7777778aa3d99cd4ce46bda59155abeed6bcbc196d47de15ee075a384318c1c11a53b36ce6122652b8209129b3ce34d45c927a8a6560c2cded32deaeb9ca33cc1a49067f18477f1a16a6cfc6db98544a6e864b41105169dece0e4db8b96e79e93cfaab5bbaf5634ba2f5684c4d29d30b4c840ee532894d26ac59d2613d6173c8052605471c71849297ae04b604461523436355632686b7aa8e39c104134c48d852a2a65b99c9e46533d988b6261dabf55e98a4976eb7d4c35eaf170a5cd03b08817c9fb9241275a48d43b736387b22f1677b02d4912eb727bcf46c8363782b399c9b56b9cd38193398a4bce111a953a23a17f12d248c2b91aabbecc0a08f66955818cc917ee341f8b871ec1eec4fe5d9152e53b780d8b221d9b18e452f7f9912196fc6cbab1baef2f2e5f13972bc0725cb3decd9e0fa50b66ec078f9de18cfc5cbbc28b46abad90ad540c1cd5b114ffb54c5c8d058d598a1b142b5debb5aeda8b826823e315cf541fce2630f1e1f69ace0aa068435382737fea3893039126668683aa0b9c4c66d3aa0cc621b5c8d13dc0c9724bdc285be375c8d2438d946c1f11bbfb9f11bfffcc6a10b6706c7711cef08cd0f387ec36f7845d0b4e7e486e338cb711cba66607df806a64bada386096e86964609ee0d8fceddc05b9164c5170d0ff1f5ed6d46fdc91f2edc9cbda8a045c10225317b1d711154ebbdab95532d9914164479e9db932dca366f5dc1244b6e451b53b3a4d7bada981cc761f783156292ad1b8f2ec9164e86c5cd1d7b020e9628968d09fa08756b1a6d5280ad1bbff1e60a204bfac6b431194dd87604dbb47809a115104a815ac06a90e066cb4486296ee659636aad244bd678d1213c545ae2c9d3cf7429bbc143a5255e91fb4c9720f4a17ee35a4e3dd4bc098b3a1d6b922cd954549e6b66643a66f4d937a39ff1f276f42a2f6fb197dd37bc39d4516e66d1cb093be3662a23464fd701fc99b03897d0e2e5f72a8f2ed12bfd31f58705e6489fb0f843a90075a4cbd4ea0b5787b33b1c84ad1b0e1d08b075c3a338b7087fe3ad3a8c976e6dd89262c7260c06eb18a783a767c3d2d3016d4c1b96ad8988cdafbeb8195e694122d3fafc70524a3be712db03a6ad8f1c38bad4dd5fdc9517842012441cfad8ba71e9d125c9821f00286e864b2a9f91335b6e8e4a7ed585db5e8eafad49b6aef5c1c50993ad95ca83f9a8b2d44249925459ca21871c3826d9c2f178e3b16d8ced1191f128324956f41b5e3c1a72c33fff6e783837f84a074497e8920f445840f801137a8e0629dcf61bc7f11b2e98d0bc81ef0dae92d5f333978ba381e9b6b74754876446a389bbe5a3472dfdbddaba38007c56074ec68cfbd168e2061154019823dd027900e060f3c83c74ab03b7e2c29d4e83be8f1d1022fd492702e47372b344c710a2f2700c239070783886114b9e885ca24b4b7469892e2d11402b52c524ab5b157e71ab3d9db6ad48b6e8956619a11c7a329081a96743a89372f3eda2b835c09003fc800020122083023a21485e065761f8326015c62ab781b3f7544e555e1682c3c1379e63af813392afe19a6643d354365454c3183bec549ee37b9e8c63acc9c868aec239be4ad35c46e5321dfbcde8e55644bba0efa96f45589e6e7949b3bc742cb2c89871b1cb30851b853297322efd2605f093eeb943a9720879ac90db063880c80320108120a604a6672f83a7fcf46c7a59080e07b3563823f9158d4ea30bed580c758989710d53b7d3639ce2e931b88fa20ea5d4631c3ec52e1e83a1e5565f5cdc3f83e1d325a1e6994901e48189303331e08ce463701b81202420b9095020e32ca071b91382e4676634994cc6356dce19ffd173cecc19b7b1716dc646c6b3716dba8d379e6e3333336d6666dc6666c6666666dad8d0e0f82ef8879c312e2e3e674c8ccf0e28c65fb2ee85bed0d0c4e076b57a71af73895538afb660a374b6c84e813e470b6040031c3039220fc8380844a0a9a7694b58a371c1cd1a5311962ccd93858055fee49b917dd23c451a5353f3d828bc7420a0cfe9db236c1189006c59264ca6f0d2e803d0c4cd96c94bb741ba4486e8f981a5feaef4170465bb5442b130a14d91080a5172e1671ba5cacb964b16136e762bb444b3d8f8cc0c0cfea363dcc5ad9085d1c83818dc2f64a35829904706b7812fcc992e830ac2ef06431941f171f864f98fae01d7e0b00616cef11b8fdd00703cc7abd101f970e00bb03cfe0f49c30d9f017ffdb5b33092ffa6dff01d98867a0fdfe13f98867a44e8208a42c97564878f800692172e28d37df88fdf80e5e6fabae1f5d53c99861637308e1d1b21e0dcdc78cec306867f43851f78b80fefee071fefe1dd0df9711fde911ec214d78f77376487f7f08ef8c8220909d70eff2165c0f03d8ce477e01f6c8de0c238cfcf10675825069cbb05df0e03ce2a1b9c6f0dce1d0d7ee5db5e03e71c2b9c2b0d9c6913be5da6beb24a85730783f37cc159f599c6b2eae2dca5b2f6ca3cba3825f3f82bbe737d11413fd757ae790de71a8f1d0fd16786eb0b265b12e081135f805929c30b5a70b5d721d992818c2b58bc94a040084870b5d7577b15b24670f1f07e7e1480432c0acce5b3034357e6c4cd958645d26ad60b82e64fcf28cd289d1e07b9e699fd5524dddd320a1bb0a824be98f492fe86fa8bcd247ad3e94ca4943780717b5af1713299de6c826d8270e36c52f4c4a879e6514fe958f3d0b44744d35e7c218309921234695a0209309c600982ce16922c8183265238894123804106124b499cf1c51228042556c005239c58021118ae48c343bcfedd558e262e0dfc69a41da11405179fa711937914b3279a072a4531e5a3cf28734a8c65f8a596ede5123ba06cf368aac7c770c664cb034238b0021431bc508524e883319292bce08525522831e445cd336f1871899ad46ce54d96dcd8e24ea2d5ea5ed9e431e92f12bd6e363489709cdc3c977c749a5a0b108940faf632fdcf3e8b9997fb65930f1fdc1c99a2b0f299e76994d4f4d1ef15431fbd6b12c58d6e999050dcf970694a0be61074598f275fb9d8e07eb249b6e61590151d0ba9658b8f1e0497d4f2fa2924c4e7d284eb6fd447dd3441442f5accd8449a46f38800d175f2d869d529be40e6d1ecd0be79e6d5a3e1a17df30aa47df372e61d884f232ceaaf497f2f49aed72083db4e4e3b2797ae531b7d7422024cd7c99b4692159de905083a9adcf850090a2a1f1da278acf4221d2802953e4883de8d939bb99fe18db4f340bfbdfa11fa10b11a4998d3d468cab90398a479275cd129b365cebb05019e86f27dd102739478d9c21604a39ede8b96a61b3da390504848282498a4220b6dc4182317d12816d580e2b667d834846cd5dae438608ef41e49dce919472c92334962f9dd1589f687803eb108e648975e04b6e20c204bfaf7615ca3868b4b2ca25ebc99c26dcf00d06748ac36c49f1ca8137962ab7a865664f564c6812372d13c2d5b4334c54cf6947305aa2b177af41b5bb871859b392e47116e8ea40b3d7304b059265f72b3bba076557f12a8a7a7a7a747a27264ae6a1ed49c0f7da6f748960bfce1e2853e5967b70b7354fdadb8f8e302753a2fefe495f5f26af3aae703037364733163c1ad726bbe16dc9afeba0a1055aa54f12ade3ee050b9b9a63e10a41b5d8b1a2a2301e2f695a5df5a9b43d6e6136fb6471257f32d4a916ccde0a27e3dcb29bf396c49e537c9c56f9e430837f3cde513ce379751e4919c82f2cd71a270334cf2416e1e5fd0a77ff321644bfa566b6a8b9b8581e216016588f4172f62ba8b172137dbc91940d6a679b208e66c0e13c52d024aca8b70f1e945bc4c1fe2e247a00c81f11857f9f49437e425c63b02e312f7f4b729f9cd6dd4bc4eb26969158612065fc9dadc46f374be398ee6a96e4fbe79cf0665088cab5ce51d81c2398c0705e55ff370bda4bfcd39d778406d7e720dcf3f756fb5fc8f942b8bfadb36876d2e873697afcda5d0e619ee3087aba67d31ca22b791eb91c4e5bebebc608924599bbbe02d897b925560cee6276ca36f5eebbdab95fbf7c9a2df8ee4df4ce1d2cda18dcdbbc0cb921542e6b64712376adef359be3b202b73940e1d69e0cab8804a5be63851b899d3cc77a04fbff4cdcbb2cc35af07e664d3a3d1a447a3794edaa5f748e2f6c31b2737f7f4340fbd817269aaa99bec9499cc1ac6d5e349a337a43333c3e5a42de9cc66363598d139adc64d9f754e4dca96924238a794524e1e29a59452b616a7bc2f3dfe902ce8199c94ceca4929a59c52de1419f1f49bf612c3ed339fdfd1e2f9c630cffed36fdacfec1bd753851d37d45c62de79a4763b4ccbcd2310155129aec21bb399d19d9d1c3dddcecec4d91d62ce399d886733a358c8e8cd81853b8f6cdd0e5389d872d24cab1c3c9d380ebaac96d33a88a21495a22978ef8f76d8fa7a1eb6efecece4e8e976766c801fd5c1c36b5cd783fc69c300ee4fbff7de937cc95cf36eaf7264b9d1f3a522d8ec4b15b070211436786b84ab3d5482e249136e7da80445132aa018dac08022895b6f9d5024e972f4ececf44801490a49a9bb05cb2da1cab096a9ab3bde4f5c399db85bebadaea559f06f18dd76a5c922a5044046d1118c8a2e160514969e50e20ae009474f98804362d2852a00a6222664b808200a424c96d009000a42ab2544a16d4e99753707c61490e0e2c698716ac1ad54d869988b17644041a3b50b242cf9f616da94b8f6a1176428a1b372e7432fc808c3c93d3df4820c2234b9a8875e90a14527845b1f7a4186144ddb323a771e7a41052d7471efed66a284bdce64082f5a2e2c7abd3006919834f136d4295f7a752205d74605315842f472f5a57122e1dd1dabf896c2896f186b17d2dddd3de7aa092cbccc425bf9acaa618204df5b30c18326a0f02d86986a4c1ee06a047dbc876edbc6aa0a59037de0f3a0849bbf5515b1098c4dbe9d8859668034832910ce208a150b6d4ad36cb497f3ac5773f29a0b327dba47afd67be70cf2f4febcb32fed3c0937f3ea1a52d4ba8b5ed6c4cd57480f6e90e6f141f382e0478fd469a2c326982508bee6509b9a37bd23be2bac0a9a2e44890b85b4e65a13559a5a8374abc7c8870554c0c8d29c43afb9cd3927d532d7c14fffe60cb22932665c997d747142a3c1c4cdfc6e1fa4795e7e06691e979f58fb201ef8cc83f8205bd38568539b9aa6658ee907691e54102c3f48f3703fdd6a9c86fb83348ffde9b606699e9386e107d13c9b978a8d2e2509518a115a0a105e25b929e714294f9ec4a4c040ca901421251c5841c3811815074288545ed55fcc660e6c74f9d1cb1e48750aac9cf36b69535d0cc8ce8e8cded9cc08d0d33325557dee79b87ae2ced90559fb360524fa90e4042708c230273a8639750b02c2cdfe6a1704e1975dbe2e286a5dd0bda9e9a7ae00a72e28feccd32dd71cc7715c84b576419e3dc178aa271475ea21a1315b8285364503bff63c71d4557f0dfda35945cf3c68e3dcc130c2762148482c2c0da20b955a36c68eb163b4d1df11b3063a9cdd824a88cd39e712a39f73ce39bd2967cb78a7abb21c7ce67ec2e80e61ce8c5122c1429b92524a29a5fc82ca257615a3eeee254bdfdddddd1d6312183686f1d17b983e0a79ae293b7ac16b655e7baa2a40c81c3e430beea51ed74db4a4565ab83f6cbb6d4c002859b0a5cb2ea8b6ec39e78435a8ec819f4b4f3dcb1e4075dc8433f6945343c52c1d63afea0f2e75ac89488c2fa61cbdaa3f2c549606d3850e350b1b4aa14174a1b79231030b2ff0c710605b9ba2928af5175bca39a59c93d22cd3b49dca6dab1d1933aed778b70242a13a2018bbed65d54ad51f8cf13ac7a5bc1a496e74ebc2e1f870d4581898296160606032925fb5a7bebdec0059bb8a6c2b1aa51944d256b1d60a290a469d1a3db876ca436af4d0218ae9a16b17a8bd7641dadbb8ebb9f2f8c6b6e961cd37ee82707ce3ae0bb2d55acd66d44e2bdb468b83a2d9e1467bd9c877ecc2981f796e38fafcc5e076edfcf0cf77a20ba68b9b2f74edc07471b3e71d19cf3d72055d07e843bd6a2eace2767a3257c42a1d604e4c4c4c0c879dd0f09cd0885d1a3d3443a44bc6a18c772404ae981d1c434984dc15e32870974c12289ba3c05d319eef36751e7258bec4f2ede4348ee39cac5c060bb94bc663643c2177adbcafe7e776b78f11cefed6ec1a721efa8e1be0787863b5c7e54aeedcb8f3e38b5dd9e3dfdd59117551ccab5a92ecd9e49459d1a8728569ecf46cf5f3d59d818b75b5f3f95db13017a39ae2e6127db1c67af391d3ee1413e65855cf4b23d4501b77bd2b4eec4fc68a9a1c6c9e1b2b39bcb879422b78d46f896fcf3607875bd5eae7c2a28e7c2b7dc3fd3356d501cd974e089297fed2f110e5dc24fc18a9e2242cfe40282f6c8707e74198b3fd7c9b9281a90712d78bc1d1055dd685abb2f5ddbb5af9f7d95822633d3bdf55b95b7b7ba6eabb13868b9189a16706b52d06cbe0283d0ef625aa02036482308c1ca41b1b18033df380b19787c9d4921618911f92c5f4c379863d80dcdc68a7eae1f1abe778f86880157af18dc3ff4f0f522f03a10d195ed191e1d216244718122675f5cef9d3cb455e7a31dc956ba52b54e2b181485472e0a80274a9811bcd598d114f19715f222b576cb8d1b1c5f711fae0071f7d6637e0a4967a04818707357c8c3fa92a3c4d2dc99710faac9cdcadfe7c51a7664efcf2e9c04fa746b972026feaad4bfc65fa79060a39e78878ebdd0b03f8b55fa2fe3aa612f5261383bf1dce7db5ba1749d65855912ff949f9922cfb92ad0b7bc9fbd57a6f6a09265b50c64b246360ec239e3158babedeb950c6db25e31d29c215e355c99a592d49e1e6fa34dcaac7d5f130e7a1cd77379048e6e8e8b18a1fddbcae86fb6088701b4a2f6e9e30cc56c500c3c39a8734335f6345e3614cca33cc43cf2f0fe3f3e202837ba0e246eb75402ac7aaf8e2725fa2a33a4de6e309e6581c9ddb260c317c74eb2f3a24c09cfbbd3b3057dc5c61dbe8a9e928bd6963f330e661f790a21a468491f686e5788823d34c7bc8d5ef99adb68ab21adebcd457318cc18a0b93add4d2254a5dd8a3509f3feb1cb612079dd412dcbc79ba11862a561dc7597b3a6dbf555ab5ec63c6f1f463a4c1cd0a27cc898ef303241e449f78c30a5fa2d8fa66603d2492acae198539c44b4434e55f22798b6a18497c5443dc7929c52f0cb84f0b151536f876f8d7891552b2083514bc81a2d9e1c64b3fc5607a034988b540cbdb14f45606ee05a0c3cff1d50233decb7162a1e99a2ef190eb9a2edd2b927a27d36118bff3199ef1197afb8c4bdce8f13b498aa2a52aaaa82207450f95ac187aa882ff1e760f95ac787d740e02b1e594130649551c4d3a6915455534f9254754f1d2320dca16fc100a14a05879559c1dd09c130a17506235cbb2ac6e508ca010c5ed042b14d837941470679cecc9522ee48ac2d21321944faa3c927c72831d8eeb9e3ca1d9e1f445e21946ae0e6c8da308e34b13b1633f39a265cb27493ecbcb2a4859a340459231a850429e4a548001690d10602194124208a184504a082184104a08a5845072f0b455cd6e61636c3969a67111c24eab4962c41863dd6256a494723b192581524a4f96a88aa6699ae560606cdbb671dd152f256baded505c94464daa89e2baaeeb248a8bd268c94375216ab152de265a09a324934e0a7bcbd7ad66a1653061252b9aa004698517274e5a71eaa4e564ac525811845c1f5aa1032ba458ee044fd04fa72e08d7ae483c43c62756acf0d7a6d81a572c81d1c431086e741cb2b8a2c900167aec1b74b10739c568a7328d3ec638a9951c3856feedf42c3d7429650f3208cd84e0b0a18a535c1863c2caebd04310214968afed9caac6c65d7d59c2b0076015dc01309a3800958c2819517918fbe833c618638446469f211525a32a5ee58d8d68f0aafe5ea6be789181cdc3252dba10230a4c505272021b9946ec7b87ff3874db343d0b6d73997b9ee719c634365c3acd0e99749c2cdc9a1b8f1d504d7f8d83e373ce39e7bc71d801e1f88ffe886ee6b013407c1a1c76366e38ec8066881d0e9fa9af1ca72c7c011c0edfd21c308752cac11c6a6dd8e07270bf0c32f4110d38c7a781c6e4e7780eaedf0e4344aaf1d8c9e056723273b93266dcce6717243f36c19c4e8a5ce4e46018585e44cac1356e298763859b259518936c49a46601e978a4d9213acb595ece11a7c42939708cf5d7914a0e8f9fc38b545818c6338de5782c0cdfeae01ebe03fb406951604e2f81694a6e70086d48390e29dfd9dcc6684a600e0bab5e1cc70a3a7adc8990bb76787b3d01f4c9489ee5ed3a308d614aa5bfa64afdb5e780354fcbdbeb926efd787b55027d78bcbd56813e5b803e3a5ada6bcb8f769271db3c387e0b6b2fadc68a6bd3c23f9807c3d75eedda969aaed1b6e4f0d2fc06b7c171f01d2dab9acc71168e6f7370441aba2c1874e0be01cc69cf816976889ec37378b9c773b2c3a323f9caf29c087dae1d9e44ea64277b48c884161891e4dae15c07a4e35c0704f52cd7c1924a7f6d047d74bc5bde0d5eae3c9e0d5ebe3a3c1cbc1cde8e87d3c5cdf1ccb3a48283e7fa76c773eaad91771d90d4b3747e3800fcc77bd860c3cf0f7c1f3d300dcb73f29e83f77069245b2cc7c133fa1d2fa71e00d8e53a982ebd6878d3f09cfa5c5f349c855dfeb8870300d32a92d5ae8351efd1580f4c9124abdd8569e682cc0737d7d7eba5b3bc5c69562fa974942d51391e0bd7780eaf5b5f3509f4a1df5e8b9e344f8eb77baebfb9e79b57bfb96777df569eea82e4b39c06d1cdb2e97bbc77e487b763880fefe13dbc2339783440e2eb785c5264e48a2e586a722171edf01f9d6171251598d3ae83a50f60706bb8dd816958ee83e511f1030fefe13dfc07ba7a8947c3f21ddfe13f5ac71b071fde3ec372cbc2fd5e6cb1f2389ee3b69b8561e4a2bf76183cd7d70d4e3b201bdcb270fc191ac7c107ae4292d5afa3bd9ae7066fd79234cf8e57856ec035890d5e7df5d78e23e5b2bcc67365e13aa5bf3eea8f85eb517fb0514e7cf8784956d778aeaf9aafe8c6b0244eb181737c1b9c1198b303040fefe1b0fbc1c77d38ec86fc780fef088d8e1fa999e2eae1d0f5e3b01bb2c37d78476858eec38fc02e602e1f1e4d917846bb0f3ff2f9a0a98acb87efe881a14b07c7f7816315a478b96ce474307c1ff808cc82145314b946b03d71f5f0a0e8b8d5c13eec78b84792d8ff681e9637766b67b8d805b2e5e2b37ae7718c59a7db38c69c350efb7bd1e06bb4abcee11c99beba26651da37a64aa75e8ed8c11f7e46524f5c5856e63bc6028593d00aac538461c438b5811ec3307634d8abe634542df7ea53cc19c1f3fb8d49bd7274ae92aacc43c44f7e7de6c8b6fb71177be3be6e042a5a3293f5df51646a30b95a4343990a49b4b90eaa7cb558df7b7a23626b83672d0ef690f0f2a2f1250cc13c5e5f150e9e8f53636ed8420d1e21be2903f2397451cf09b556cf3f010dd9ce3e76618dbc9b0ca374f16538a62141f469e1bbff6463d0a055129d40c096e90e819f5ed50072b57be3e3a8410e295afbe954d5222a94aadfe83a679d58ad03ccb76826448489a47bd1a619428279ac3ee87762529919455d936ff81d2cc692f35fec00bbb28a1893a74456f2db29565d4dbeae64554585134c29d54bd58448ab12f2ef5cc731bc558c3202bfad0177d5402e6c456e2690e5bdc9357b719a669dffa0894f68664be7947ac677e64b376db360db7cb46cec27615513d738a8b8032a47a34d337cf3cf3224e5e75ea43368f66fac785262398d104184c8107aeccab47333d228654dfbc00d00584304ea04415484061c5459d7a0f4e5ce882575c5b64922cea492ee8caa28bfa2a661405d105c507ea10cad76cfb450d943ef3de79a982ddec2f33cfd1db717fac9f7935fd49d7018aab9aee5dcf26cbc59f799644c0d877a0bf48dc12a10f111da84fdd48f6ed19eecf78c8e1a95704ee20c176fc89de5206f5cd0652812db2441df859e48130c8a01e66efb9dff3fc117c46e264ca673327f8cc6307c4a58bcf763001c80e24ba2210e9d51d5011498237b241b950290a91a5dc15a40085299f79d601814c88e23317a30b569e30010a880431bac00212a108908b227ce6b503027fd00489d085152a7a409285189fb94e171a2aef2045ce17df15807863e81061c711f00755f8ccbbeba1fee6e50c48e133072a02b7789140eb7850fde6650d28b9b8c06239a13207923edb765079082d3ef3da05553038b0e533df3a9083009cacb854784d08d29cf0996b1d10da44d56a87ca20d042903cdaeab6d56dabb56edbb6d5ada180ca4f99f82c00f58bcf76f8f9ecfb56304727ba8625d489361f575ed67c4aa8433d1c3a39526fa73f09c58d5e0d5f049ef185cf3c28cbf09a532288e840f6d58df417c9e1ab1761cecf87d9a4f1eb0f527999e075e84f3671a1520dae48a51a5c79e95a4409813adc1caa1e769364b9b8784daa17dc4d92a50595f2a610cca1313cd14a495da508fac4a71e6700a9275df174098ba74c5b442ea8c359b90ba3920b99b668f2390f99625978272f6e51afa77eda929654264f3da9c9d35516d85fd3a9b31c57b99a6559e75cc77531462da3537677910fbcd645b4d7bc8c4ed911fac0e8f5abc415665c27c996945baa24794aa792664af2d46901dc7fb46df25926995b706bc9d24d42dd8a74c27e0e0120cb8d4574b69397de0204002c5c1aa7914e0304be7494cf178c678221625195d42f7ec1ade5a9cb94d7593a1c7470f3081ee5b9bf9b8c1e429d7ed48b3b79f13a4bb3a877b8b5f416f99249faa35eb154d21f750d4b212c61fdd16ed281a89ba6110d244a50c3889ba7d1d2928475aca9291245a2a4e84bac94b20b2a62585c41850c9ea06289a6695a9432da000632461a64a101161a30512f58a845d2b7733b7888813baf0d251a0c7dabfee34293577f4b491fc524126a25cdc3398c4a8630f281593d764027259f65925e32149dd25a6badb56619edb6d65a6bbbede63f64dc4ede5c329728c10deb4ff6b745befa933261dc1cb7f496e6e94e3289346ec62afdcda8d4df8c4930676e3d5071a5d1cf3e9242f208d8924692357dca15fc944cfc945220cdad6332691b922c99336994579a278db2a5975e8ffa9351fa93d508e6c8a11f803ff532a56c8923ca9952cc94b22a568cf012a56f136999983050a234c519533465599669354eb134c50fda561d4c01a38e0b9cc2aa9d61f268a2a605175ad2cdad45e56e6bb171bef19079e74199779d23798e6bdffcd4747ee0f5a2302985edeff61a56651754740822a45b3ee9baee7acaa11cea6f5eec18853520dcac51d12188104a2515d1a18decf1bd1cfd490973da352a374b0dfa68d15a8f8687e9d68326923fe11cffe4aed5e81b928f37441dcd33ecad04aef36cb47bc7e06944b839861f3a0489c14a69c583aca7c58bb922dcac554dab95d2eef6daded5359c79b3bfb8d35b32ce9da41cfa949f6ffb0bf9fbf9e39b3533cb2cee2ca6b4523eaf4f0ec78b7568d6e47cfe90ace93f7c4a471a945fa073cd515e0f502ecd0e9d6bde7d28afdc6746de3a0a775608ee4f5e6711a3cc8ae304438310d6ac86a62d91855a398ee3326c39b904919f37c8b4cc5acde9dc6940fc894d70a9d62ab32ccb324dd31a10752a5cd2321aa77462a6de192c334c344d68818668064b1fd1345104120dd10ca89f4e5e8e4a3e5b778272f976f579b9866b71270c7d90883ff129101d92eeb0c33a344bea10a4796c07f443b264753967c72ef32ecb5c73246fe44fded1fa2721b8dfbc88040acf66c1243a94d5f8139dba96da2a22cf38c3b34c9e4e270fd2fce4c1a883e4293ee13c5dd219bf7a59d49145a47bf71786be5a5b6bf5565b6e5e3da5d489486aa9a596724e392ff340e226273914679db3ac89ed843de71c378728ca29adb285f2ee2a45536d51dc1cd234adebba5aed66fd64e96fde7441d4c9bce2dc499f651449cbe87599d19addb79bb57e6db66d7d452e0137e88adec472f3a4ae699a6bae695e39adcaa1eaa7d349a652290f6a4f7957dee2ec6f53386f5e31e75d3f47e4abff90a7d86d75673e6106f4094f7ff293b7a2c295f3344ff334edd43acf1542cd5318d55d691ee99ad601697fc2b9a6d5f9849d7721abbdd5a126aab32ce3388ee36cf63f9deac9b71386bfd55ecae28b4211a344a331b8702546b9718c218e60ef959d84568286a93a899a2e645a7e6657b8195e01a259ddedc0fa18710f31b830a9297ed4f237803f3546813ed1a5640e880504d13c1048bf52d2116ed2d7f8d303d4899e4f3f8d786529423355afabd7cdab0f52bd13b73987ed69eb8036a68aa36b26fca277214bb64ede5eadd28b1167cd25f58a91bc9c665868c366b546187b5ab0679c5eb879be0deb7352aa711ce741ed1ce748bee2cc7d758b719e39c39b9ffc475b8ce433234dbde21f52c3473f3f76d9119d43b0d3679c56c8ab955fb97950f4cd9b5aadd848bf26737c0eb9d354b0d6c2cee19c730e0d21210423124371a8234dc252b754f348c383f4ea413246cf471e7a954be0dc573291efb9030be5120d677f0de79989681e35dc9e61240fb111fad4934b449d5efaee781423148c785183240f1df5508908a883228444484438e82a7ee5a16779e819691c60b19f884f30fa8204108ba5c1a8e4cdf475412a15a211000000007314002020140c88c462d170340d6439123f14000d7998447a609c4ac4244661188590218810028801030004646066b601017b7de6998fd394fe7dae3b68704a0001f9e172023e6782e5e810be7207dd0903657b3efc18b99cc61e08bc9e2975dc2de62ef00689c91d899187a253e66ee15501ccc8fad78647cd69c213b866c18c67b322388cc6519c3db443aa0773d892751aa32570522dfc7a46f8e8e15d7de52a202ca6f4164d923f9486350c46454754bfa41997514f8c311d9b34949de886a48618f0520b4005a917fd4883b5943f2822d999d2daa7da391b6cdf89cbeb1044102b03572be2beb320850bf43b1c163cc3b7e0ff9bfce8dff47bf7753c4f41e5a087eb30e551988cd74c5b156f27eefd2258902e208d523c9fdee56ff5f4084f21b576f11a3ded41cc70825f1acc41cc3c096f7767d4a979e212d90f1cf7a026fbef00c96f0814cdcbbac040f8f412b2a1c3f800a2fa80544afc0f2e9bc02bb7372ad2d677e10492469be07cb41f1c9098ade1b765d70bf1c341e4306e6d98837164b98309aadcc3c8d1d25a2935ec41c1c8346f5f647117a10dbf486036532abdb233f91f4fdc51bd80a9b7b5fce9e007a63400de8dd29d0e2e0411f0bcd6a3e1f612e7e84c9b38cb6036848c23f0b8fe91416699804e37b45154aa0e14d69818dbbf6268449d19dc5b126673dd1ad1bfc299a18ca02d52aeb9ec9072dcb3fd61167c450cc1f950babc4c42bd68c4481e68213ff50a0fff2387603263de9c156d100ab5aaad720db7585b94a4004cf445556c80a8b7527bb5e615ceed765981e96121eb6210b58da343177cc5e854f06531312a0929102a9f774554496db7249a14883b5828e4a9b1c98bc3c94c2f2bcd5777c46a8065af55146aeaadd3c5375ef35da16987f4cc710e46b2e4ae0058cb16f06ad295834e6bf039a9f3539037af1a75e6db62cf44ff3034972e01c4421ad9e4a8e5001fd078f14cebb28385e14d9cbdc3b17af9abbee0700d2b7cd9346a9ba277ed1be2d328a6bd6825270a53eacc51e0688a2a4718d62b60f3c13182774e844c5388d4b05711ab20e34fc664c7e6e0809e6b25aaa6de75dff9189bc4428a645f43bf71928118d035570cc6afbd40c269dbd74d1be3a471008f806f39d5f028dce325f44280b1c7578161dbc161dd1086609f70e7c1ab4d1fd56a05c00175cdd795b1c93f2e10b87d38e71ba9fba34592b0e44b206eee8dade48b71a4880ed02d1fc0aaa2e1176a2d14e48ef249985f25b5b7f03f18b08c04c90d936e913bffe424f0189417943a00de1a5d90683dcc138a25730c558f0e79b4521045d2edb5a9c65a8ba07d76a34bf15d327b7f675c3071eb272c8ff97397ee037e19f50916724dc600cd0fa461c3866e02b467eddbfbe11a34ea5e3e334a2a04c5e51d9ba931c9e9b90685c100933fbafa64e1bb57a734208a7716d63689cae61c66ed63da2f358a19659a5b69c58522f23544b40e1f2a8800bf7db8f1b42a93d557abc7044d881d2b9280256c19dc045f0b1e8384200ea4f9214d765b33506b5540c66f46a49cd2776d4f7054d073a76a8ba36df5aa3738d0df2427077dce698f2090b23f0edfe9e2b5edfad0b394d64f48fe6fc6073a652486b357dc21406dcec4a85275975141cdd77860c76e0422339fa7715d356fbfb38172f033b3293345338b4adb1e7c72280f0bee0282a6d1edc1fd4707310409801440e582ce1f0e1311092027b866525d1c6712c57c6dfaba93cc570658073d07b62ca84364755da590ada45f5de8e9bc6704efd7f7ee1e382a2d4a86970e9448e2301965e58f1ae39fe48f96c4c2038adbbc16a21548d94d5863c352bedfe4531594d06458d9d329132b61e0fb2b0074424b5ce8e25be8e5e7ee2efad8354eb884866839ab0755c66066d9b7fc695118cd29665a19b0a5f268294f6fd009fe207e15c3b0b2331697404195acecd106f3b318c2f6574189270160fe80834ddce58f7747ee8e21193c6ec91f27bed8be48a2573a0e10b5813af8b90666b08febddfbf0a232af4ed9f8b4c41263702e83a79f87204a5e2cb0b11d220058b21cd6f658ba7de328558c1c23cd1c39e409155ffc0c96181cae82e7bda712e840fa9072e8e81293b5b6d48d012142fa225f6aa23f1594aa563fd7a195e2412c4052cbf417909ae9171d96524418a498dd1fe658ba1c72e076e47fd020cb8edb3ed4fb97f5302e7c0ed1ea86a93300ee0e23c70916115fea8515237ad3104057836f458277d77a9ca1c003e9d87fee1376e230a06462acc19667bc6067ba7df4c182d85eb5d1929e1bd11c0fd5be0e9fadcd2fb414507ca0fc734ac06fcf79bd122fa0c13ef7f10c97fbb41f7dec8028be4b38bf8939c60b87d552747534e7f74db40a3944c8968fc9d7e713ca5a23a7a15a8ae7493d0e88c0dceb3a3030ed71f43d7b05627e7a06ebb007df3a27199bce38b669c4b876933e0e9647c1156f2ccd9a6c19ecfc2e9c7432d1d7f5b023db7aeaf599792c0efa91688cc2979530b4265ed52e083152f00894f85fa5bcbac17a7845bd2c1f3f6c97915f1a8e41bb5d9c8cbc8a666f716469ad02f07cee7c7e4d092d67cc5509eed999d5556940c93c9359738e0d13beebabbdd7ecc5a8e8b494f1c1168d07106aac37ac10802b66c1b4c67489a51ba23683a4bf943b3b5f9a25968615b04ac509364c5b0d70f6fca576f569e0b53637f95441e744f0788a78d02b0e496766ee630b227012f1fbd288e72ec3bb4a21c9bc64014950ae9c93ab75ca435e5f3092fe705b2c145362596f427cd2c5d19f5e22ee6870dbc0000b9350dfa6ee9b85534f0b06a0dcc35bad448674686f572f048c2d18142cec8fe034f56246a129c5c794b88ae877dd82f340dfce198e93069d41f3e90c2b59571ed551b4c13f89dc1c5709768458bccba45b8cbf9f9b2ad4bb77e9ee6495360cfd20882956165ac2ec8e988857ad76b334776c472dcfd01ce0a0580c58031a97598bf9b0d8e3e483474636658274f75da957a54a1a738513b6288c9171ce712faa497d22eeaa222af2938813a00059b74ea3fb9ea0f8ec7fe062bc6d5a39e72b74639aea84a7f3cc7e44b818df39bf643b8438102b5abf1513dd8d03fd085785032094b0931b1ea4828a1da4e30e2a809264fec81c761d0462e66c3676ca9dcab873f840e8ccd76f164a9e15185b23b9b618808aefc7ee651c386fc91b366b013f9c68eb706212602c2c0b238d1fea403d611e183809c3769048348632e120f611d8f423a1ea8699cc8014aba46a820ba2b580a679d6ecf69565e5a643f44436be3f351dc28548650e65873c5f27d5ea0d81e81c87f4ed6a04f25cf7dac9dc5446a45a34a51f97991f71d009d56617642ec91a3d1e57c27d105d089dd788088006018804b46001e82c9fae2a26b3bfce91347125853231668745f7674185f25dd28c405c50e623d7540d88638585992e9010829970e976032590144826c0b29820f36118a034910306c3d8774453feb55135b7b614f5a4a733f9748879b3ad67934cef077a393e112eed859725c45c5f82dd71ecf5bfced5ccc4dfe5b701b3fc939d0483e04dd77bdc38c1bed78b5ad319755cc1f55c2342b3c43b02950fa5ac353acf1add147ef80378086292cee844eeea471b3118cbe92a45352c945e67510232bf07ba914b4d34d5f09878460a008a14caaac50759a8a108abb2707261cbdec8cfe2e4e4cc737f276278908a35d9cd9caac5dbbe9290d9a343b25a36c83c7f030ffd370c18e0b49a3cca7f833d43d07846e9f35c1369ce224bc7a3a642c8dc591afab02f040dffb1e50baa51cc768f8a8aa53d8e692110d4b1f7f5c246192e934b933bd69cd970110655cb712cf9d3a90754a335ad9bf55d584bfd78b43b0ea143fd35f7cfdbbdb766fcf642a0a9fa1baee0d61fda01cc5966aa4edf10e03664f14e81b727d310ff09104101299abf97928fe3858ce9adb7ea03c258861355cc73e785a3632b548a39169e19dc9206eb653c1e8d643a4d5a86083e7e3b2506b5113e6b59a2e391748ef4fb5e69ab3258e6fd7207582bd09631440a5baa963e2076ec9e087189da2cf1262d578469f460604e4d5f321692c916f570627705c4af6b9a939b06dd3999776f3e4c6e1121428a0b735c1b0051d93252616ad051361b5287ef4ac05420bb2f8ec6ba5134179564ade98c0b412613a46634353e61721ed256144c007f2aa8f4f8aa0ebf2aecec817d053a971b841bb0fb69511b84f0fc1e6566d28dc9b04b16e99442545f3f37740a6aa5b632f1538158f46422d83ca59462fbeed4392b96694131fd55ae0e8e92fc298a69e1fa7b811a60276faae1f0452f0bb1660cada359639d7e176cf23e93e6b46fef123cc33280136a4830b553fb25d4909ed8acc0e1f4f472389df0aec455cc358bff74412c619850b61d45e28a9feac0341ae9c26517362225fd7d919ff15b849ff5e6133ebc8814f98ed9fc2c08450a1180bbec7350483929ff8db4941af01892a2a47af45d14ee42cedca09c35fdc1e38726cda750b01b153ee87a1538566e62fe14ada08d8526d1369e13ae50b9308f0a3203b85271ed9a11e6341310a32dfd9b8960a4f237849522fb60c0d7e7324c82a5212f3902fbbe8965a6199185096d6003e91dd0d67fd6a97e729559cf628db7a1567242f93d6bcaced4134746995544f219a83cad02ea96dca219ea4c42494f00cc532f172c616d39c03ea3f0aff926a1da5c21578cc427d40ac47931421c1b978e9d0236d96c055e92a8cf74d5f1c0c430937ec27ea802e2d91603ac27c29f7a200c130c3f9f7d4feb6fa81ee43685be5a3627f107e29ebc8b29350824bd4fd14de6499b2e89311c054b76048ac9afef0982a03da44a73e4cf1d33ef74270480a4ac4ee9e8b8c17e47422265c34805aa6049407087178c8124b9e19d6f49a0e28d18a41ba58a581dea8ac41140e0e36f248f1fad3a7263ec8f505774faa2b27b699d04683d0b0bf51e46662a25202a9bf2d750ab14abc9be07866b6c0557d83635f5d0cb840de54dd09cc4821634a15ec801c940b8f892191257da792f1c42b8672bee8087dc58ccc462dc90c6429bd4bbbfdec04b91fd757d2302e1983232671dc1110183b8d04a2580151eded35eec145ee6c173b558231c5043ed4514fe7d92c2c7b83213cb1c2fc919bb84add9d60410342693299880aa820f18083455da1c1cd27bb179039a2b5e9f16ad1d1de5eeabacb1105fb351af650c4587af76924328df1c90d3da978354b1abec26f1f0590de3a6549c8947d0e012697ca2cf86312ab3c1a3e9de81c6789afcc391992f4d73effc3a3863ca18d04f7b17b247a5cd68e47107b51da973795b763a12d502410e73b2afa416532e26a02c60febd21f49c4050ba3962b5aae6c0ce2944bdcc0dc847400f1828dc6f79cef3a3d34643ba506f613c74a070e62edbf73a341bd4304203cce2403735db2375fe66f6572bc06613dc5e4b7c46fe33a16c27b0b08017d21c7fbce06f65ee079245d3933f809e59dc52a83dae355a47865060819232c40c79ed6e05887ce06d5d5a04a21dc10932081162db603d44e025d8928af468adfae3c53b8a2f06cdf81aa092f760d6042badea6dc77875c5f735e763da152b60d48b5290c7453dbd5f7c0bebbdaef1982eea48ad8489429a152425720052c38e5adde8ce75089f6a0b344d46a1443ac98c2d86bf54556afe4f29b1dd1561a6b655688088b6b35eb8509c40f1f17a22da663ba129eadb38f054602d9fa6d85cf2e83e377296588f8427f8bb3a0f2d2fd6a2f0aefae259e1c3c95f3588b2b038e5f11680e8b83f758b083ec8038c6b62c9e784d076ca4d5402915509f0629ffa7b2d23cc8960926863317088801c645a8340d00e7c5ac3a5a40a58c4d26752178d0e1718183df51e8d3cf69b0b054f2bac1533bd0ce98d2c380abd4d5f8f520faca86ebe963c9069eb2bf9c6018bfd737bfe9c3e3530c5c005a7b125ab7052d304ffa3e4c708da1fcfe4ae6af033a47492ccb92935017b8d7bd8afc2ab8c6c89a3b153519074a29a6721b033095b6cca26aada1a6bd2bbdce8354d5614c72a61d9511da6e266180515d94bd7bab36bd2f8a5154d9830bb244a1294471d2c385d9fd0ce7aa1ecd4259962e99bd3f4527972a99dc1005161888c54dbcc44dc09811f6481f67d25db5e4ee6b880b73195ce634bc74efb4c11524b3f4195a454a8c740f9ea1c64e41895b0a1c6cd39c0ea10a05d991db97ba2e958c9f4d8cca0ab22910031eff1577ee9a4653e5085ed6b7b15e589ecebe44a0a3442cc659115b1b08421f4bf98b4ba1883d0220510257839bda448530ecac2915f734102ea9fbdd4a8f03320b3fbaf44c7e403e1fff63deade2900c28b433f80054ec3691c4b169854de472a42572b0395c87899a4c3fa5c5893934ee946181933bd613514f172c5961b193cf2a81e0384b7ad46827a2a2ec1ecf541fbce09628c72bd49e156b092b78afd557b217bc26e012c8be037630ff582f9af1d3398d3eb1e2b34e39217d44b78d0f15fab94e73d77ba908360d7287ed7686c129ab9000d750c0f101682cd504243e75e88dc93a563e34b83a4af719255a96bc94c3a56c7cae999fa29cd0323bd9f28a25e6b734b277f0482862dee62f391ec624fcf2e9695daf5ee6e282a642d3e61dbb70b530252fd3265410b8e0ab55d29ef9a2ded0bed58073818a1309c72134ec8843ba739b47f9c971f748bd039a6e9badc8b04a626c5e1eb43e8e480aeae9c19a27fe52b91eba65d3699a385e6663dddef6ce8258742c79f6f0785084dab5fac351373d3a7964ec1987f348239a3dbbdd9d8ee6e0b7c511a7db36ea6e85bea9263eb4e1a35576346040ac0c1440706c1e8904c78523288f445eb65f1528f3e6049d4b0ccd1c923672b6bc83002cac22f08b1d1e9a952df45f22227346b94bc91abbcaf48d69df956b2949121483e6661faf793ef75da85fc0e5e5cc8adf3b82294ecdfd8d8aae3260a02a41696aa8db960007924a202000770ae27376e4b34087150cc3e1b4f0500606862a2ae8cab27839a928ac67ff84476c3951a28e4a0b98a8b5d6a1ecf83c29491296537459072cc742206676ce84110a6bfb2bf725c8547532f6aec20a653ab58d1c39b6c1cfd5f50e9a6dde601b1dfde78eb5168c04d87e3a12fd34d20cb86a795983822ef10e9a937e1e9937ea40b53bcd22006fdd5bbe8f302f4a7f72292e8a627fe17ac0b772e593af58a68a42c4ee9957a4642968a51334c77873a7a16ea5a9071de133ebf594bf304203fdd0e4d980bfed99868942a131d04d4c30cc950ab21f03f1c2574323595e661c173b6c3155f97688914f49a1c6ea41c31367b0d3fc3f350878d07fb7df9aecd7bf5c2740a9a2c4acdb53063d774d752413d6c39a0615fd344ee0a53414b7007421aa692a4dd55e6bef90c06e97c66a43888f3df1d22fab0ec2969213057ad80d755a03822e9c4a2f9bd68853d0eced6c20e0e18a282b9172ac059b87967b038c79e5440a4282ce616d7d0b173ded9432e46c57fe9a4b49ed7a6302aaee763d063f156d013ae019dfbffb97c5b40d6b70461da1185d82a1c2080c52d7a1be5cdc9937edba4b15442330d171f621f09e81e0d87f755e1849ea505e470449680c820536b57bb33190be281aca1d8fd230550f34f3495249abc4b36ebb150d6b023e46e936ded94a2fdd22393abef71153a4a3b91e75ca34238f5cd5929cfb847f6996ac6dc355943a5173b4e65d70dce193bef68d03dfcd58e17560fcfc43f1f374c00d00cab32d9fdd339abc7509924675a709111fc4f999921c749c352ec8ab99fe802ebe431acb1ce8140d7a3ac9757d217e60aa63b28498d1981e4ab98a075bb14795deb68725f44eabb99cb262a15ebd400320369ed984d25963ff72583402c8af5c01826eda78c0ff44ce5091b5e3a1d5855ec6df717466eb87316c82d7639a90a4b332de1b077068cb072916127a62c3afcf10461e47cec189c49ce958290555530b4b3a4fdabba08b636744cb405172dcd45b0c5ed3bc1404b039ff516cc322b0362731a409bd7dcd61cecc08038dfc080d06f8933d6e3382bc5498a1afc92b6823e4675fa5ae75f6a5bf79ede141544fd98c19f59d93231f8e719d79815e0b4bd61ebf7d587feb0f4475d8683900f5422f60796ec4b0a1ef80559f6bb377ad087e2d3dad7c5dc4714de51cf5559f53639b92d88d6e799d3fc335bb2ed2e1528b003238c1688b08d47aee5bae3f9177c9aec0f9155c0e36586e31d98731b9ab207c42ab487bcc6f17fde326234ac5c0e9a8416bdd6231a82834813534b1c61940c2cd1a8939e1b0f279ce2bc4a9610e03c3167849605f18c0030ec85f51f14b081d81e231eeffa2851e4c1197d66395b717e14ad73eb8a7cb4b682e87dcf733e4c4054d1d78991800061d515662ee88b8105789a2252c6b771ff8015b6296d7e4ea108a3d6c398d80aa2a57fa1b69cd2e74211e83411297aa09c73509e6ddcd23f4634249a5f901c894f4ce88d716ccc058fb3be9ea9e14616eb352dff37a01d53683b5f0721d52ab9f4ccc07193f4f14e69613a16175c5395d6a2272019f406b7246cd73ef92cbcf4144efa88730fb35e105449329fb2abdbc8de37a46e51efa2b8c3d85ed18f77070d9e0e6ed833f2746564b1b9fba68817f23bedfc6f2a121098726cfaa8bc4f0908d6ae65f42922980dc9eb7336df88dd4a2d53d3f91044ae3f9b36150a249307324cdec5add8bfa56cf47b99840f7bbb27b3cd973e0db4b87d9ebe08506eb7a83a6a36b29c087ffa39311a7e8bcc31d57d326f09be692e0b20804cf6b7c013593fa9437361430410784bc689821e866be5477441244c86f1e5ac5c2c09e0f97dac13bb9b74115aaf8d4a9dd234978d903d41fb9406f9a8f69f9c795796d696d0bbc0e8e9505d96e9650b2e2f06bb8666ba952cba8c3c4796b62ea88030208502b256e459c955073aedd540aae74695fb94371672d57a5484001088dac3fd1edf39888c041edf6697bf6132213a97113307657f754756379bac8120b557774b20c0f3dad6159b6b2e2106591ea598ebe61847b52bd4d31c4e31d7b63f2dc0277766eccf876017e3c81d7dbb023f6ca34485b7838d14b164c447cb5e4a9ef5751ef2e5259fb3764a91809bcbaa1a676e51559a4b0d70068e63ed88cdea75837fa5847ed302664e5f0a7f4a33b6a30e84d101c4dd570e83766db6d1aed7a317a6635dfb9f3a33132baeb9ba8549634732bec01adad28a732b89fbee74b2ce42e64d2c52a83aea53078ae988b9a93299c5d14f3f2e728dcc278a325281c6e1c438003243a08144f76c403427b278ccb9a9ca681483bceb67f09f27cf2c3f24e2044de0120407d1cd73093d28f2790ea5146d281beb8476a1e15b28fc8656fe901237bce26bc4b8d1dc24986dbc2c127938df759c76d2e4dc31d1bdb104d2e6cdf3a4280808b71ba100af445f4c90ad8ea761447cb8e56806a9c0054e6031fa52529b3d28601201b728cc207dec00b7497e5d419475c07b1b903470ab38411593047a7bc44aeb914b04dab78f2f7c0e0b484643b449e56c2e6ffb7c4eb60e9558c36730849062bf2134afa23409d597f9b1deacac0db6e5e11f5159d5ed86cec036790795ca579fe21826bc3ab9129828d1d81b3ce797f997e87cb4c838dd162b6a4210d949e8d0cf9a9880d4d40b1443390f23eca2988c510d8d11a52d0f494b46c4d5ddbede74ed6a046cd470c2042a4659e4792bddf3ea86449808876273813522a9d4c9a3f4723afbfdf56dbb5332e04ad05d5ead43b805d07ade8b4484bb58b4d76408c57e782cd1778c0a9f823b657d13514242b18ec5f8b52329a95da7394df5f8715c6633ebebf48ffe70f2099c66a591ac11c10d470126be55e7f6853eaf0aed73c3547b1e65674858835c68447f5341bafb7ff33ab07bc8f6dca27f4de047580a82d45a556e3b2df088eb93e6660a8896f13397dcc4fed907251b248ca4b97920359adcd4e230ef3eb099f30efc8c78a2d6c86f434b5fc181512235e5356722fe18b3b7aeb1e13ea0208435f8d96e5d20ac794a0143d626b27982e447991cc7df34b1954d2bab6f9e88cfa43123304130cc2a8c48c6199119b1db2730ef02aa8e87fbbfabc283ecae341ce6da55fc2de0f72b362e773f91cf95819d4f5a2756ee1ea29f61c6fe78a974c01a6c35cdc9669a91de027ab2a0cd41e9b3ada2027393f8eaea883e6080db00b5c1c47dbe92543271fce8a69be27912f8ce20e32284c6626b07a8801132d761e0a0621f4fb9007135e69cb2032c1436ec5ad05b814d03a25b7980bdb01984b6a2f4b82a9675c74e1e882e8a33204431789c86b30f01d5e1c00ec469638579b3ff1cff2d5989491110c42263537637db9a579718c3ee2c70b862a6d70560eacb927a820a8e7659c0dd418683a428b8f062d7c3d5f5f03f0007aef8c9400cef9043310339b9a6e3a8645ff866fb32af85037987ad9da5e56a3bcb9bd7cac466266b4e2adae013debde8419998315895949e7ef005e8ad078b788b43a16d1a96fdaaa3a68f8a7fc03b743b7b2066a2da8c10b076ce4cc5a6781fe0e0f30802bd721a27d2a268016900b939a8363f0a03914a02a5fee8d90bbb9a94305926b24b49fef7d4623fc7e11aa47065b8cda4fce65274c5a9d3039a494108c429f2ab8a80d9f5d46de32686e0766027ee9beb8736b14b413e50810f04cf8548cb5ff5157e265293fdc4980f90f189abe6fea9f145a67db28a21441acb36c38fd951d712de02546609280df452c2b42f8d5b18e0586e9cc562f5fcf65e12f92acf87629320c0214af33a0ac999f93f10b8b1620586176149aefff4c3918afcf2e51e3e9c382f8fe0552284c468cae2c87792d31d38dc5aaee2713694489868e06ddbbfa0fe4783eaa5ade66f33bc4e523a6a840b588eeda622ba189426fabe32e900836a12a22ce45b6da4cb414be199d3d85407afe70ef7e6200c7c5b583a36b69135a0fffc2391236a935e041ed72aa7a0fe5f7d5f04dd62df494f687a60d53af19d62a13fc1b3c59e83ab2fac1d0b3bd004a3d56b4c70bb3674a7d710576f1719dcbed19a6e99b50e0effeb0feeb1ed135608e09d1bab8c31ca2ddc2b071904080a387e9cba3be9bd1267d7d20a65eb162e3fe0c74e135e475f7b3fe15b2b04df59cf78bf65eddd8bf2503cebc927240a04454053336e71748a8e4c838f2391fb30b79e2848c9a9f0b2c56cbc5e3a5280e7bb52524e41e784b18cb444dae032453bba9bdf448e5498c84d9c12a8475dd8aa55b5228a926be0366f2e15d047d7043f10a5b7a42d0554e1d756b07c1edb0af6aa1570ae06d9a20bea478a94dc63aa64e4a3659543ddfe9954b623098a41ff7d0a195b07148392c6f75e385ca08bce42b8afa15ec4024c6b290f2545af8278fd752902cf28e20388e7865cc6278b57ae5e5a652a0b137fd80ef7313d4458487fbf92d1789c2d4d15360ceb5b02c4f4e0a2335a31275f27ed1eb88ef0cb84801a3ac1b6c46b2bdc31c2f674cf5a88fd184ed8780ed97d2264f5583ae5ac3e5c8bc1e8c6886862797b547559ee8f1a937dc814a4082618aeaeb851fa73544efa3d1e7fed14364d043155978971ab3813a4163d18aa9dc91dc16e45edc25fbd722c8a3500e427ace912e983808acad65c8a80bdb7a2be8106e2a5c1acd8880014690c60b4069f667d84da7b233eaa7e4aa7f46fa69b69430c88f6b07a9ba576a559c89f4462e117ad0f1fbdb3c3f2985fea380b50aaa73f45c66f4700536189e9b2aee7a21c85013c5c301f2e0b5a29107eb60e169d318287a80bddcab5112653f50354710fbf44a96a2c3369da700f50e0d752557c59a0227b6fb9ea0ae6e1f66d31c1b3a59dd8dc4ef1cc5f9e86a254e9a91a308ff8c19ab621e197b243ae1ba50c48f339ef0d2166c516cce9aca1443c3d3f27b75f2a24c3977702eaff4069fc294e7e7ec899092f862c9000aa0a496946e12b191e87fcc1e05ad492d81406ef1e0e3c206a16a1c05ad2c9fafae81f2944322d2887467baafa404541bbef66313801b489f215ec8606c14767f01d9c290171517ca07f71d5b5394a5bf3a103bdc0c4a9156b76fca64e878d614e0a0618c1c417005d4b7ee48243d339337458f8a0095d18c6a297e3cfbc4cb0fce48d06fbd192540b229c0c027be87ad8823ad2601f742223805da71b76da51e3789b60aacdc88aee510df372308b181e9da1184902e32639ade54c0cadfddb93630b701ee75d6c0e569a41cda1dacc1830c402d56735c70d9c9a9be8c430c4876525de0fe4f4238a4e1642d0defe3c4f5a0c89f91e85d24fe79043af68f13bfa874fe88ed45aa0ad92d839fc038dee13019ce3a6db1e626c79374ab2a9889ecb124eef3083f5af26c20aa44d8915d0b0386074bba50664bbcd164821681467f72c7eefffe53c8ae512c1bfc1b595a6f0a567690002b825697574b50ef5dc9c3ad711c48ce1dd051aef9a6e11e533a74de079024364e6df724fc913818f86ff30a237d691cbb1148158aabc5bec4bf0f054774d0d9b4bb2223f05c438f682e4a5ddebbd207564ec136bad560d889c177010df67207884bbcc6f6ae890b5fc519edef4c2eaba7953492b8cbd378c00e58353b8740041f09d90d05d3c703c35653ad9171e8fe1e67c9a4c9ffb4299151df0cd7be81cf3b95abc6c1f78144ff4c46daae1d852ec0d5de5ab966d1315e474e6404e567d60d78b15a12941be363c1200567969cd8701b96365508827b402fc36f23b04a2f2b4f82f958c6a21b583443cbf4d2c9a9cb25aa09914d6d8a27234f9b9b978031545bf036de28a466f91b0cae3dcc8545cf03a1159d933b4a808cf4d8735ad441b207e033cf3e7773ef7982089a13e910078fee608eb52a7af4804e37138859055409884860803e9ad585d1677b3accf3e8c7c35208ba44019473e7d8d3c1edc674dc7c8835815d91dc4ded5312e90a44a01715a3a77477a9ee2a870739621c7e3ba9b48e40a222b13dde870666f748315d5b03544492c0f14495bedb5ee004f02da67bf5aa8560025b08418d76d7ea372174e0a9c89419ba2b8628b0dcfaa93cf0f3074f49515bd47ac8c4a34099287cd6830a1943fd00ba4bc6d38a83b669c34911fb86b051ef7ecfc276b7ec59fa76505638ae398bc97d2c01eb359eeef694212e0e1f590cb3f1e6cf799efba9ec4f40992cb130deb33b720d17363a5ab1687ba54c72984e2a92c6feb2af9a42a7a9779cb1c7e5c38e8e2e0abf3bb81ccdba58b9eb5502c2b6ddd8afb29d26383371637a02e9536b1bcab5aa95992a4151dcaeff0cf41b66cbca6149bfdf28c74cfbe562907e746fbb2194ba49681b1b42f47cbc5e47c203f86e0edf26842a53200398d9fdf6313c7320e956cd5432dc224c27865c1978d87117c90b616125cbff9868cf2edbbd0ab91c9bc61aac2126d0945e4076a4793ab7d72725284a8c16117ebc7280094942e623e2dddb7730b3556b7dc1a5e3373d1d264d8ac5d963574712244fd094c3cd4b2cad82fad4c5c22de96d70e2008ae06616d60ad16b9483205d817e68815c00c0d027839e8ef835e5996a05ffca7db4ee5f4fe3c4fd0536034a3b0fed25112b875eeff8445ff1440c18f623064de95b234de2259eca21846cb897f0a4776cb97c98a211bb8bca7b5d76e94254708e47c4f567cc4bfd05e1e9a0015fe0d981bad74fbabb6405787577f157db677ef6b58e1c49272c752e727042334b6d944ed5ca609f627c463a597921db45a56faf38a9f6afa71b67d9dc9ad061862829750f49393e20c6d067895a6d17c6ce36607f93db0c52eda9a4149977ea28964533407cf3488a73a0e1c56caf58a2bbe5c1dbbcaeb14d6cfd38f7b98308a846461e7006962fabfc992e9d9b03521f57ea9676f9ae57ab608824d46c370d0ec80b4e612c3a1c2ad7b0e15fe823b2fb8f818062a13ab55e54c8a8ae7c0caa3045df9f9350c22f132132a92e801eedc562700fb0cd8c2215066120b9f3d889c364dbc1e3ffe10d0a702c4b735eaa37191ae22dc886faf4e60bf55bd56f5f685982c08baf8ea5b3a0555728fea8ac3a6645af3d9139944543ffc75b4e8b2df9ed0020914f11fe883a70995b32882d08e7256788f4fa61ce42358ee487881bfa81b84f111c31f3fb3d5f9c83f7600a800a32853f2f5c697f6a770b4b78f6c871dba2005c6900e131f70c8860b0905f34f7a30102b658043a87d0bfef042049ce80f37d378514ad904ae0c9a4a443908b0a175e573814f873de685e003b7603560c8d7764d746aa4432412633ea9dafeacf944eb1d950074dcaaa6cbaefc196bfb41d65554b8d652da9a27a4bd83423aab9bb4f1ef4fc86bed3566410aff14d47ca895b7caf9c1b02532f77b5ae265a12311b51f6ebaffec675ede4e354f99f1fd8b6bc3538d83c1e2ed3f4c412f493f69dd0fb63bb66fd569d13ec87e878fbb1d6a3b01977cd032ed70c028ce7c0306c748a09f5c1467a60c8ab23d1406715bd0b32e14ff2f4903beb8811d702a6bc398602ca289830be716e8c1e1561f186431b88879c0cce361c3884ddab339f8c11da08f86f5e8f47db6e9ca077490833ea803fbc050874ebc6f81cbed710dee1e8467cf5472c97e1f7a88e8a93b1364202ba0a0042738dc21c61e4020c478d00338683968e1212007e3d91e8d3eadf2eae0dc6129b060173ae4469e8979ac55820887c0870e71914f611e2aaa20c143e0a1415cf830c01876530d092e04063de616eaf23c2c2822e745a040c75cbd8f4187b1a946c48380183ae2ca5cb4369cad3a64e0dc383141a749d27e83272c42c10f41014abd3533882a4ab39c09908362199a4725194938d38420543f6480b029676829c182126ea88a1e3bb4773f754df9a14ecd9d4e3f06937fc4ab8000220ec41a40400a7a695cf8780f6cbc9adecb205cddf291edbe9b0c49285aaefb59d18798caa8ebe2ad18416ad420ee26394102379a0666c1d96401ef720177aa93339026d8f6aac07b17bd6a00147e1d2a56dab29220c8b60092d1d4e507cdda798070b99330adc6e9ccc5fd5a7413760abccc368169e741734450b0e8d64e21b3ebeffe230254ca01a2499a28139c32ad36198d297f2c2a10b24700060286398bcdb5fafc287b14d4a3e09709a87630bad8b1109300871ecf2cf1d331d5119199fbcc83cde47a29b0ced3d12e54014e8218ab6d600031e20093bab437fe66862afccf77c47c6b9da1b30990100cf19611c6d656b3a660247018d051dd91795f6ada46c3cb7e969309ac0c261a4eee3f7aa9e759bf4e3d727c20102f481dc55a046af01abc0284bf14a4d3501ab7357093cbce86b9645d8147397d26070c89c21976007873b6e12d9b1bea6af6c51ea458e357ff15e2e666d45588ec69141658d692de1e78bdd92362805bb962ba00e7b6c9c20282e8f09b830557c738082b4ae73e14a1e2b39508d11778289e576cde8e8fd60ed100cd9e6fee399ccf1abb6f909fd781726a0783bc03b42d33bb826057e8cdf12ec51b173ebf151f15902ddaf7368f2f427740dc364f7a8765e6a99737b2142447a6516f1eda93552150c099fac3747fab99a1678b66620888def40d71019a7ff8762d7b2ab1690e07d4ab408c0f6ef97f90bd4490c357bc75b43c519dfc18ab63b14149f6d407cd3e0edc955994f123faea70a3798e1cd8c81919c61692d419d70cec3c5ea926eb529bd09f12e0de42d3f643ba0f9002f85f66e1db1b3220972c020afdc3fefc4456c5169670d239fc75c716cea593b680be06521079a95c49adbc931def0fa5066643e064094270068cee194e46ffb17fbe4884268798038d80dfda2a653c408287f6582cf3b85a00537bf430b19ccd8d16a1822ba79733ba2e96483daaeba72c1af20642c07b7b8466d62cae83f8187a16627f5358fe21055b7bc430d2415f8a3439738474eed83e62e3f7bf1c89e90db9bd7e7a67b28ed402230ab99a45001b59a92fa85ba8f19541572c906d4bb65ecff354fdefd78b4af1d6cc17c8dbe6c016fe4069120d74e404b19141844724f01c108c2e381b8efbf5d3e37e9462c0dccac099364c00151c96bd221123157e2ec5e916733f03f0ee1cab0b373680a007297493c793f7d0466ab72e733ca8db8f3f1d0b6a8b409d44a0865faf4d10187f8bf686e1e5ba10a2c9f089b4a2c48cd624ccc2bbc9a91ebf575d01a770dd1a4a7956217c473443e5ec373dbdd1bc42e495aaecf4cc3a4dd51c0165043a7d73a594b6b96c1d75a0660dd6faddfb30a01a210f2f1d85ce3cf401457f32fa904797b5dbc0ad5eaa22f7c3230bfae6b3a32beeee4c07b3bd249caff566d2fb6f5a49bf430448d6a128be35a19674492c497b6e875b86ccf0f05690c90715c7cf867cccf8842fe8310866d0d76d29640e6099540c8f17152fc20ed667bfb17a4e9fe02d23eac921526e6b49a5ee710989355e066ea0300bb47baba64c3b6543eb1126fc734aad667fa92614b9924bf35d847a8d72ca814780327f2609c16380373c1d73f1f20272f8f56a1133c1192eeba4320e55fe02b0c8a82aed60cf161bcb731bc14651f260afc3ad8027c47d69895457bfa5e036e030206476c607b034bde7d4993cb0c1f2ad8c112fbee744030ef529003b8a7271cd01c85b4c00e1bf1a9b3965db68258a07b32483bcadc9f677afb3fd4c025f0bd31cac90239a82b23be83f0a4252037d411d0c55dccae7d13013adbdacee0ee0cc9ec87e62f558507f8cb5e6537e65fb221c56090886b04884c34e50fce543aa3fedd012997381dde5db5408e77e9154fdd3e9f16bb11e2023292be7a1183dc22db46b454f32010453b6ee7d5d4e4c607ec9e5ee3d807b2d73b9576f1ef7d48cf02820cd828eb6c0b8c04063175b6af431e906a952b14bf1f034587b4d579528ee5a4b4d24492e8b4b4c46f9598981e5d91672759d43c9feb5757e024f97fe79df81df8a0691e2c48894474d0fd02be4a40949c81a53167b765b2d42e5cf4aec750645dc9b1058c0ee1579b4a5dcf2691b1d7a97ddadf93a2045d8fe98c3787a13b2f0fecbb2c39dac2d7194dfc70980f8e70c92a06e6b4cd468c6428e6156b5c5594adb095dfae97b08f783d754198bc4e270415562fe79f3638821c941a87ec87696aa84041a44dfa2cbf7e56449094a884c80269a0d08b527f2c4b3e5f9520c1b47f65f5968c9f9722ed17fa0d47832bc70ae6269c6a673f56bdeae75bfaabff7046fe5ac42b8009efee51fb4f3a03dc1908a2e993f9d644293beb3197a9b0d5ed11af44db84a7fef9e39929503178498a6465112ad1325c5ef66a7c03ab71f3b7007fd1367b90e1988629ccbda1ff0f46c6f73877049f1111822fb8caf14915ccdc543c6793e7a4384d1cab92951879878cd4d6a189b2c6a4db2f477b0c487afe1ee04582645eb5e1584a9e42e31a89cb929c170f36b42cc7fcd724dd0e199baab94b250a4dfe6fd8ba39b9e9db56d13565198b1c8af817a9071f27f8f4b88a0aff989553e144f33cb447b446c5488cb9ccfe956474441e711bdea5ec3004071ec0f1180651e2ecfd523e03fc1153aff882c39a3dbfe06720227e8384ba566b9da1ad04710fea28c111ee1fd0069384bb69a5d7533346cef9cdd8ce4b46f1d645b832e26ba10539cf7b54c1397f6417752a1c48e14ae92d1eca48e25f47ead3e81fe4498ed8e6394022e6e13104a0f72f3c6c7f9a91ad994d897b222c36690ab1b634905bd2260fa8d5101bc800d3f7009c7460a70bd38540cf65f5834b01d42fc0a1f829e92c0d0ea475eeef6c630bc8477f102bb059f6599c4b73dbb764fec7bb31174075529eaa23f6725e0f7877df707a3dfd55461740d5cea30f65406c34e0bb887ddbe452d52f0ddd168f8376ec14b736d19d9050ca8095406e62cd94136b3c3b6ef9d615b80279e3e75c25b10962b897fc4d830623d4fbf8f63d6e4e0691c5eea7e9863423a30f0edb6b8fe142434c931b70edccc7740d9450d0867b950827f9a05646b0705154c62ddac437324d83e891740053f40048bf0f23a2761800dfc0fb0d7930fc4c4c69455a7aee12e3b4933471b44db9be8702b46065c55a6bc4ed284906de1da3ef91d19d853ede25e35eb19fe21b59af1d4f176445a291c4593f759d1530eca33844911c56ce46e37e7600c091f6f668cea111d2b12bade9606516a38058d11a5aa056b37f4630049258146b1df52aac7f4cc3a596824a50ec20090e73b569a8e899558cbed7fe2795cebca715e90878228b55cd76375e2b6a32eae21c8625ef17ff56323320d2b26f9fdc9ae666ff883048dddac583bf263d3d416f64733bd587240f29cc1d1a10f1b7e4fcd92a01ec686c9a95ce6c6a99055c43be22d23f2f577048a630411f26774e70b4e1136044ec980c61ca443831ffe9c6ad355cbde3662599fe3d76def878060b419458bd5811fa2159ca9e9ddec355302c653ae8cf1b68f07411d74f3a93aac2abe9b1a72c12f40cf2a9922bf2854117b5e042d3105efe3bb5d57fa89f1fa5a3d00f5b55aa09a0118919aaf66a037c89aab10bfc4db913e3f4fad38530d688a43e81ff0e79cfe42b3a0349ed51ebe97e993d2b4245797879902700b06d91ea698f04732d264be0029aed1f235b262125f192f04810531964aead9b45b731ad7ba424d9bc29fa05311dc62924d88f1c615a29a318e7456d33184d3841da8d53906dc4d6559e1ddd5cfaaf12883821980e548eef20bf036a33402e23b5f88f181ccda3051c70f257ed349c201875629f13b8fab079229802c992f1be631c86c76e248578cef61720558144c6892748547d2b40ff4fdb7059f9117c063232b88bc2a37a59a5ea62a9eee283b37952b39ea54d76cd7d9465e09c9ee54befcac7a96ca6cec0cfe54b0db0576aa6ab995fb2c4fb5d5d8aae0e150269e22c83478d8dd93f13100cbec4078486902f5193346b511fb72ef56844579c7037dcab7c54312316f2d0f07f53704415b04d2282232a53d44b007bd941f54860e9ff120484d756c036a3ec662f7110e2234c827887052b1fb44074b8b4375341228c25348e7ab3c02b48450e5a9246f050bc6f900215dcda291635b340aa9434eb90bed1c73b8a99058dd02c7195a8b66c0be618298dd681ec65c3215de06f8dac550ea3965cd933e301233300dc03c4109b0cc65e1f71f775d49f8bb1fe8bace73a52708afbbec6adbc1b2dcd4bb1a2f30c32d99fdcba91c57e8f58cbe1cce2d0644b69bf92161ac012e5405b5fc3128eb29fc4fba51d6e5eb8d6cd8ed057e78c86ed99fa0642cc2c96cac799393931a72244a2c6231ff2646eab47e1bcabda5848c8fa6401f3f31a7be3acd0472ef4cf9d4c5c6b42da2aa8d0c0574121536a3e57214cb07b5c079fe02744e3f29de644f0cd93ef9cfd07db9b7aa8fed2da03ef1f73ac726292365eecef29bb8f39e9e3a7d00ddd71c348dabe901682e5256b8d07ad44cdb72519f0d4b7da6653a63d5e4782215023a9d3134d973bccb4db44d558462e755a2f9ebc5cd8a3ce4d2e4b1c2ef95cd742e615c0265e17e71e4b4eb5fb5f31c57ffcafa01f6616909ce8c765602b66ac5b9710669084e69c7127000fd146cad5a22486a97730ed9aec6073a96a09b77cbce89ba1545e40b4eb441866f59689b19e4d20e6ec6eb2d9502198d15e66a76a914b99d70f9d83b9d8d97650c32168d84c8cb04f647c034420907d87ad7b8213b36d2dc220c828e3bc5aee06f8f4732776d920ae757abd9a264262c6c4ad1a258a087329e92c973b0ee649ec52f9bb6cd0e750d8a49758dab5c1332f3a85134ac786e071ef528ce83f94251190693676bdc83e6b0ba45bf6e73f0d4179369d0cb21ec2e9ca04683659df2f620507055c10fbd2db7896260a61af3a1337192d17f9d2efa90803d3ea2e5fef5269fd9803d2080b39f5c10f495b159070c1291ae81af85d3fa16bc7b076485c427ae33d7dcc67c0f3abd9d5ecb87cb637b6640a2b56215afba142c32bd5357eb1588003051b2a9cb8e994b63d01babb41677a16b627ab05d5befe55728a8af67db53a60c0d4832bcd541c923b3e24d74b59a9a050e9dd8f581fe3479218a516ab49f8b777f211f60ae42ccb375a6dd29bbe3b1c502f66708718882216a7578ebbd5559c63a4759613b321c1aa86da0780e344040ca8874cba8a3151adae309351a89f4dc80c46dd1c18474c6bf92035d460eb99fdb4ca0f2980245776acf51f87fb24d1f65e87816cda515975ae4bb3a56c0307b0c7f878f80c6e213789116fb15333362326effcc958d7fa104963c48f75184a536b5d17f510a9d13e21d78f65d0530c7a64652541472bc90ee46ba45914d0f0bdd6f0114b7923208b978c974fc59297e5042f0f389bcb7144185d068a3df07bde837855037af5208ed3660a22b2aa42e5ce85eb7a773265c0fca2c4035c1dc9a0183bd548ed0290bceceff0ea5a8a88c5c2418238d068f202092c973bfa8e99979684b267c9671e274ca5dd46301dd05163c045570b7c38094bda9d7434a888f9deef235df969080ebf7295be91789022941299fc4813e83c9e12d80856b7246dc1f73fbf91f753692230f927fd69b4cea6b52f71f0adde941b9c7b77f9475fd427aae702818517c901105920b1994557ee475e233f80015fed2430f78da789fb1431d04fc5927fafb1393598c52dac1e800c6a2f3af268fb822404844035b3b97bdc5a8daaa914037d3f3a90bd40bcf7d6a41b7c8a6f12ff34de042066d338545ecf381131d9743bb8ef40aa70e41818257cdabebe4c81400458ed2c33878c9c4a512d69d9413e730b9c60a1024e639699af9de80ab6c13e74ce9962fe53e742386ac8ad6b1158d434b934825e43ce91a8c66c9a10333720514c94cbf7cb80392a0f06bce3c81f802a8e5289152862acde4d7ef6888ffdd95241a616ea2ab96d211306dd04da7bd4147a6a334b88546f5fe629741080c47655ba166013080a010e76b32f60843eada845616d58cfc6a01749e5d2dae60790b383421cbe54b96b1487b3b3c32991f90420b7ff6c35da44f5bbb197f36e3c3a3633a1ed60f980f54ea119ae0804f68fcd3a7c75582db018cd5780e95bd83cea27fd9721356e07f04baef91637bbfb7fc37a2b8e784ae078d5558375983634b930b636bdd071f4f60128193b58e221b347a9fd2ed784e6d350e827bb1ab0e689b8a09534199602e1ff42663508b6eb0515b1250aa16057e1c3d8e2f3e51ec3fb5046671c77d10238f7c74bc99ac0f28f9bbd43030b8cce52c4359338c97060d73faf00bd75c5efef482be35aea004b56bf1781d2c1ad75e973fc5c5aea6d056bbf10868bd73c2ad8706bc071c960c2b4f3c085bed041dee4249db32c62a542e5665e457e705608b055431e2eb9a1f31b4872387a75c60164821023c9c035a32171dae4dee272f093134bfa2e7829728926eb0cecd06376bb5745885711e2ef8b7d5788478f2cc17c8309548a8253696871aa7c25108c9469e5b2c4f5b409cb80214727ad4007d3d275a6b81ede3027bf37f066157b858934aedea931ce5a5c49bdca95351d295c871de8ce6559b3e9516dd8a93ec01e4f6ded3b079696ef85b461f1a9baef2e8735cc3f08721a9f4dcc695afbe7f6a38de619459e1c8d67691efb74743b136a5be6eb08eca6cd09927be9f6f90b7809a925a7660c462b33cc070c7d9244024b2afe267fe5a12b27b991064d58168072c449832e2ff014a4ba1b4d689a28aa1c82a585df79ed6359908ba8067d239bc64cdccb00a986080aa4c45c8f55f8301f0ab43ac91a089f21232dfb6b23e3d168accd112eef723bf9003882327ae6d57bc3ad76bcbee0d1fe51058d81f1d59859d39c9640b8fd8e80f5115cb0f290d3aaa01110773f00df83e40369be884ba08a7c77a726e8af635c259fc65d791efb4bf0525c02fdadca2502198190c1bbfb46f38da0610d998557e7a3326272a0be782d7c81bf3657c9ed215a03e351026a8cdf8a9be5a83423e610b28a68606be7798ed5c6839454cd169b76c59ef6f020945d3da4df29e32bdc846bd4bbdf0150f2984f80c2e94a81780803e8760a25e1c0151422b719051a36fa4a0ea23af88545a3cc51384cfe26b93b05f0e7768ce9cb6aff7fed5e04f9fd2a6a99141ac5b1e79967f4fc96b60739bc86460e2452c7296c8997c3e9b22fbde1ed55f85d12685159814fcbc460321b090b001c674819dc2c07e8e8d8aa679ee32e8e898947e39a22f46a3f89c701d658198e10ca15c9af0393b67ad45c08b6213962f0c643d640635b38ea6b1b24db9427375c127de761c5ba65891678fd4126d9f31654ab6e2f33b874af9034eddfc1dfb2346beac8fc977f9f3253aacfc2841a301f9fbc189cdf141f005c748f3eb6e14c3c46e8e61af8c439b7889d926bcf0266bcb268f18dbcae4c3b465950a842e46115a30148b3457c83863dba62976a143a54d7f5d406238e00b9bb56af862a9bdaeedd3ee4f3bf8dd993f957113cb755277c66776433f5fa99408faff80c56019e370118a1cdbcaaac46ebdb22d006defdcf71702fce0862bbb6a87ad23ad8d531160a111a193ac05da9f17b48be108e8038bddbdbb42e91bf48f915eea26a95266df17f92d6334b6462502673d0ae891882b77e5eee3e14dadf1a09012cb1108305da0929483a4c3ba53a421528e8e52df2a35264b75958bcdb12ab72511b88adcd30d0cd4cf97c35f3aabb5fe181f1fe1e623465d9c6b1966f060cd1c6af1b9d363a95768a3ff474a35d20b145408a5cbb44ff875211cdde26fb4de85161c99adb8d85a984346704816d02228e3c2d0c4b597aba9eb8c5304471c15d1a48355ca46eb501dc513b0e611067c6edbf21ff500869623f161b518afcfbc8e0c075830580fa59b5f38acdc5047151253a721b275bce99a0d4271ee176f18a4bb91eb886acf1c65e779dd0dce65cddae7b5745cb2ca7d36079b81a34ecb6b097affef42e1ad28dabb9459b263a1255944d13ebae401049747ffe983f0df3de44a3e0b9cc1c885c32f70e4a748a381d6cbe9b359800a933b32dd6e7b74aa88a8542ee56bf055d74db5dcad8d1e5cf4ab8915c9d6d58ea12cab70b9d98248b886975a304b03781bcb5d3abe134c15a331ac80bae8f113c2d1304a7857d64df812865563d80560f637c6c87d70219f388a9f83964fd1a3f4b78be936a6473083e5070d23c41f9e938762eebfa890c89a11b740e5720b02c017296a6251b14c7cd191d8b6eee381731f8589e2be8783faa492d162e1280c65281b56bbf3b8ab4ac027156a113a9196b7c8f0724de846e30cfbe137c53c1e5db4d18cef0b74ba725ace02e9b9b10954192e5f5f1af5b3dac93526b66c78036ec9168208ac730bbdf828f14a966e80f706ef27e680dac7d8e8bab05585cd966f62e47a810a2d99f2c6363551ffde8565a7df5eb68107c2af241bba236757811f584d59dbf4ffcd5ab2ac4bb366873333ffb1f9074f3613a2098a74c60059ccf1a8b092d41e230b9c5abd04200bc1d9ce76a1116ea130f6a271be13c61a9d68a3a5694ff408698d204a337cdc7922c3f973e41e8044a773fefd94a5ba42f0a54a781f071b3088751c34e2869c93ddb05b98f598623ac230bbd6bf6dd51f6273361e68acac64a863a8baf466c5bace48ef69ae1ee5d819b5d410355d05da6d5fac4d8407059818b9d99202f9e95db42037956823214e3fa889c5d6ee0a31b01761e1d6be71425ed9f5a049424796bc64219e0e8e4daac1f8f9f60567d17a6f835b78e346eeb9b4f4dc2259c912e26df056d60fdcab088585cec220e30e2d6144b535941bdfd3526531065c5af2f9391ca90662378d814d86d12c4831a864eed3cd6e5fcf28e09ad37aa8f0b9604be4b261437bae1d22cae06364c0619c044bb5ff1de655c0248d037728ee254da701dc86ef6b93c0247100fb622af7d95fc46eb97df427b1b226a3be392670c32da3a3101ac21d3ccda203cb8885342805544e52c3010f4cb160bbdf6a1510d5c825631ea780ccc7293dfb4e70a0935a606b9c36da8defe005c9be64d14ea6ed3b8890eb95727c762441fe407c34a8742ac83ebab8cf3216d139ed36d60124414a1cf1b5bd0bbdd6a7929a591d5d69815cffd97d98a38417b2b568c73f04dd22002dfa9bdd6555b969e5e5e85b141aa7960548b5c81de351c5b0282034e53b879dc254321bb24d543a3d69744f6c351d282770abdfd9ad5c13b1a70ac7ac58b250286a23a940d8900999efdd189b1bf96bbe74e8f6b2e519db63bf2b39d44a12f4833445b31116d5e29b0cf6fc26760935124e1162cef2377d7496a91640e503002e9cec23b47b2031ab48339863c1ed34791018dcddbbbffe2aa746873ebd323b83f3d90530ff4b1ce00e3471236c1f95c636812ae2ba4fc1bacea19a42857a0ccfc9d9dec9dd189b67232cf8c1cc96cd7305caf5578851506060d579c8c09523c11adc5deff476b50aae71483f4d6cedb5f73e48db921928d3320885ba4d724716181acb9b500de2f7004eaa4f382e4e0dc0de204e58be67b387190b6fcb56adc10a5456d123555da3e126dd201360518b4e3ae4a1522558deb415124cf0a6372813b2022b1da961d22f0571b64c26962c6729b3033365cdf10673b8080cd17d08650913d0e2ef568625c9eb61f1bd72e841fd9b828b0c8f8b0b31142e372918fc72c525d2c1a575bc72a20d19ae89dbfbdd12c774c29fd39c0c346a38ce30d4a05f7d93e58ab1d6095d7d9fb0ff25c99a0b3eda5647107d6fe3bbe6d97a311cbdc50490e90af09737bd4cfeeee17b3c81c966506ee54c02402c3340b05cccd93b6391a9bd245c5ebe1fac4b3e1527db54726f9e1b6e14c65aec264374df90b2c08d08353de636ba3ad7979cc414309e0b4a411129a6564cd047a7937e356ecef701d7f3d97aa2d686163cd412bccc3652b964f151b3904d852ecdfab74c83fefc0796c91b2c75e968b00077c0432da6c9b260d0f77140c8125a580e49f5f68f1650b3821a0e048708209c0717ce9d90c1def66f98c9d968a15b1cff661c0b2374200b489af1e28bc31e9d732a6a929a1d307f6b99ea0d327f53fa480347556356d0e55ef878acb1e78e031f597ca1e1acb7ffc1fb70a0107f304c63343d29d4e4329605edfb320607f28b8d03bee88fbdf58c47a4a501a27859fc699b809e46e0cade6a8c8fc65b075d9a1879c603e3be8221f72351600b8be78572c5da04865c07ac899f559588230b27dbb6a883333d0da67c0c596870b764d054b87608c8420de309bf14c7f9ecd9c03b8c2bb39be32dd66fee070a909cc5355c2aa18ea8d0918becadb3a034bed1d804050de17064a881d7b74f6ef1041b3b1eef9767d861ea6dfe5a8f711b5100edb78d66625322549671937e0f83bcfcd444045e134febe1223db0f09561a99e6a5d0e41cc0ff8b1b5f3ef126efab89423ca068bb66015f0909837d6872b0ada20327fcab44323a64c6ebfbbb34d4c3b312573f069cbd24f726d00a518a97108cebb6cb1ee3dd704a686fe184c8f458b9dc0b49885799abec40d79c9c9841e52a7777e09dc4dcd2765f9a47cdaa04d673ae0efebcf075e48c33dc3a0eda10ba10f253a3ab3b872d976a1bd4b7ce4ce8aea2bc3315da264a56562de7ea4ffeddef0b086cad3ae11135674b9c067766f7613fb598b6051a120bd401781f9299ce3efbb5b345376a2a9abbc1b28b0546fc2456bc40fa072381dc6be386ac99f014dac025c6d2b5c29e5b4601419c6246693bd5012d553d1abc7b27e7424b87ed652b58ece74f0a33f459b6e6ed1d8a38a962921781b4eec37418e921b3e901822cb759d341fe186ec4b443d8e851d269a0425f1a736d67a4c9c581768c053ef81fb10ce87a9d96bf7eb5f3cacf269c9b97115aff5dcf440a5f4aa5dfc666f90bac65c986c3f4ebbecabeeabe82a7f12a9d0d6355b852813d46f580a484c092fff4a01f9e259a4f99ec2871d6da27633cf2cc9efbe4be1a48cc8054cfe926a7729b9c3c5c079c8fa0ccae2d1942192652e0d0875ae049680da6ec9bb87446ad732a4d2f7ee089a27acd37090e05f5bb42fcd10c9dff9398c7ebf4fb228f7809c81ec65308a5d0529e80f7416b9f77f9c6e9de740706fbbfacf284ee81d4d05f0be75a45e54ce6871e5a450e3b4cefdf565266dee0f79e2bfa082c0fe65e650f4036676b89ae1373bb8ced22401bdce5896c925f4d0ae9294fbe33dcdfd1553e779935859b051c5303a6a2740b233945aa0340fc0220a149aac5051d76769c51bb36d033bae19671cfcffdf0a8be67483c7ee4602552911814c87646a02b2bf15807daedf944aa6a281136656080245c98142d953e86101173f4aeedda7f73df9e82d8c6a4f4488fdbe7deba6950426046199d993aebc4d0a2715b09309cc47021f17979cd08b506a32b94c9a81bd612eab02a6f27d84543d241d5ff472ae77e443ff50e0dfa65986a5cc1c973537fcf688f7c03c6b514232f231fd7551a3c7141fa734f3ce1f965f317369c46cff8687892471e5e13640bf90665403aa4028bf6d04af55aa47aeea05a09db1961c34d81c9b304e5973515c1e4fb7c585409d7eeb180e37c7f43baa05527959dd4d2b595faf6725a00cbff9f2e09f9cb7027565ea1505880250b35ad5069364ea502f6d6fadd0423fdbb5d754a0f58db1cda19ecbe47e6fe470ccbf6fd84f136fcf28c3d14721bb28ae162612463f2dc8bc324c58d61621166065b686e683c73c5c010fab5237ea04fbf4782019526f972a119a8f7d438869c29842fb167e25220fd7d71eee323f629891916c943e58bb8cf5c5a2349b700fbbb91554490440df14eba41107cef8d62cc540ca9f4a2c9f0cc2b23fd3e50dd76d7d25fec134984e46ec43ec452704c0f073729877b719fe8e5b5de5f7ab70b3c0554f4bd37ba57dbf8877eae8ce0506cca49acec905caf8e6edf5dcce90c871626e9b4cee4f9cd89ed7cbdcd064fa0607c489a7137b294676b2afe058fa69059ae78c9718520ae713bf15f11b983ed932568b813401f92aa2270981be14a197434626070cd67aacf34378924d0a4b1d54a10e6a6092ea767c599bc6c425ef907855c5bf1d4309da8536ef4a94301ff7c320cf411961fcf44613239b3fd71ca56a4429dca25a18807b35adca18fe6db575e21e34b90bb8808c167a4aaafca605c647573bded5963060646306da571b70a49661120687f4f33e09873bed8534091b92ad71196c0a644da43e94e0313a19669546372f1e8c9193701ce85e9fe00797968a0d7cfcf1691c11a86d6b2f0ebccd2404c305e259e3e970120ed249b2677b479ce0e9f623e7b9f2f3dcbe9f5bbf24491f2738b28a1c880783bee15c41dc43c1943d88e9e68a45ee32ab48349f4ba15dcc27481993b54c5128a334fa769b18136467873e3dab3e98a3c96ddf496d9c2e6c19ee7ba0bed59835d473a84cec9295c48808ac53dde4ad58f5ff8cd1184bba7a7263a6e07e7d5d2b3d79ae0d423d7383606c1599b46eda71bb291bf19dd80f2bc2ce096e76262d9183fb79fa3505b9ba0ef368cac5a475a47ea90b5fb9a435a4453e9ab851f43cafd407a91d6b7516609bf558eda53441d6cd8b7455adbd6a965d4bd72662629e586d819a4e4c5d17a5efeafdfc49c3b16a7e802e38e37909bea281d54a74ffc5dd25ce58a16ff51ff8255d448241a0199104e7fb3949ca18431a9dc555e1953537a221b05903c57adfe631e2658bdda0ee32575fa6eb26833ab61b6492621c0d4e93d0e380812df748d4a8d462644574bd77f9631e4d12fe07d2acb0a289c52d4a4db5e38ac685a4d8dafab385eaabca69c0c970756567f22219c804ca6b34a55f1416d786ae66cd2c769db50df76ce456c5aa1db8edb58cd73c21079a3d8636fb0a2fa7f2a4d992667dcc83f41e66e7cda59ec7fb963dcc51f8014cb32989ae4decdb9b7f2cdb4ece8599491fd64f1c4aab411a2baf6268f7380350ef302e764a9cc90c109ad843ff4f85d74c68ff7352eef21b7658ad931a85532e2e05e85fd248da92dd0cf8088d67a4d5607655f8cba6c1ebf144190d8809f535b314cb8d3170f9efea88e8e82cdc92a3de8e0ff3c948a3640a28385b76503bcfe1053905a861994a2443b2dae4fb6204312d028e8533317c27b7c11c5f63d387d35e820523175db84446cd61340e4aaa7b5bc9c840fca0d1260ba8c4bbff62cf9f324e2220053cdf62a26c680eedd6bf4f011b694b167d722699bb4bbec44df7a252fd9bbda4179d4d1747de689b7a4cca5fa6376203e1211a1849170f9981e922477826537f90d43410f940dee6c2d85d6843f131a3ae0b95a1006e9a2d33433909151c6dbce248ddb9a850306a2c29719a4794d46bce48be0ede135a63853750966afa74842910648a25cc9a8c8f8b99b1c78a126a210e08b993a1e343ea357e3393084902e84b60529c097494e65759adc4d139f50a28a883949943099453515c37d4b0ecf44a0cad55a102211287e54b9e686a769896f3b23091aa620aa8ae8394d5422156520d729b987a3a2712acba441c081e162e53c52473e537531bc3a3ad34e4e266fc04a33777a9ecb06da2277421941be39f1131413edeeb89966281a9e26a5aa1c66c3830f95c098a387697d30140156c1484af5f30de3a31017c5b8afe013314942348c94ff086de1d4bf3433031c76c10d7c57020f3748b99169396460a933e29400c930c80fc26adfaa1b4b95adfe49bb4968ce40852d77beb750c36b324c0dc41a4d0986e0e1b9a7354a896f30d10fe7f1ceb913dfec92a017e7fefd263986dcb03bcf69dfe3a2d20ceac8dea5ac3d95e28d346326e080a310d9738dcf70d99bcdd57e8629d9bf0fa82b598c575a3302ac62ad06620c25dc21700f27dce0dd936509a3fcc7ce26b95e4696e3f5803568f7a0c42d210535f5fb1e82384c15135d2b5cffea3b6b444326cc6cd8146819ab5a259d7ba1f4f8b2f320d9182fb8b7bb1fec36e8837816a6a39f552259317a8ab7f3c1243fe36187e4a153ade1e0a80e680acc2a9b5bbd6f390064aec94207787913cb23b31e08b4dee17f67d328902ae08a3239104f13484fafa7977c8a13409d0193582c87182020d82ff1b818eb145b33b41ccd4f47df4e18350476d7892ebc3ce608cf0127daf5afc0b978f145330bf6b2b45b435947cb0cdc198ad1005299d00e1f7a93bc4481248ceaa11c9c7b3ed7dcfefad974ceb97a13a94e169a48b29819956fef52f1bbce1efed91a4cb739d1c2c222a1ce300582bea8f558539fee52ba9e8b9c76c3786dd899b16a13730fd8e74daf249d94f7d1b4ce594601390a717081ea4e32037a62bbaf3b1c29d0cf85aadd813b1735018b164e3176bf0bc143c2b60a1f123c8daef090de8f938c72b251ceb9a5e6bf485040a3bd8f993ae72a0143358d616fe34a2089d81715b1a36425c5cc9970b1ebbd88d731304eeb3396a4ee4c208d95188ffc7a81fdc85d84080033b02b0160a6e134f8540e02a9ed7e3f1d890aaaf2601b257639e91d5e9193a733c39f604a70be6ce2287bbe4e64bea34ca6db543cfff813b8e75b3601d35da09ecaaa40906975bcd565f629c6425bc522a1c86da7b69d830cd495195ad3dd72ff9058c046a1322e21ae42f2ac96575058b30794780523593153561f92fc28575bcf54b67a3f8ef13be9e5948ef3f21d20a02fce950ff249892f76b85f1e980baf04472ef3b4bd96790ad72fca3f440a710d62151046b4aa5c9445273783b8d24aaffdc81574807f98213b02bae54623e2f81b599cfab7fadf3cbb0e28b3d37d2cd27ac61f692f30dc6d98d9f7113f4eabc0cc4a030312742eaa804bd511a7e8f16ac69cb93a2618a24c8b96707be0eb8069b134d0d56d011473d87f1a7780ed6d0901abd1dc0c467e90d6a56cba579d05c9339b8c6c5f0e9fac9a0ce325657a6eb2cec97d834aed7dd947545b97c7bb12c1a3dbc2ceb859a73568075a0c420a9d26249fbc55db39802e5fb4dcbb148585b09a9950daf6cfa6d6f45563fc377e929b15fd57074f4fd693463cd21d98d3050011c6ce35896da16787338b0e5960ad0e4f0b0b6d54a316192e040fa9f27de0a134bd2fba80d00263a4ba9877805e56a92da099cebc9443694a844db4c7380a65771ac1f50f7a938fe732aaf8bce0cf2340f0ac01d91a6f019b7ae8f3c9f9b8d864e729bf8150e7cc639a1eeb3b661495084d8e1ed57f0bcd16786ab771be5f28e8c8ff3cbab90d98e54c25e0cb95df2e890c2320a27bce8ab8749c51aeaab414c8b99380137f0a10eb4ef89680ee2dc540d6c0fe72b360c13688181c27476b41e43c77b5e7d07fb4455b7796b4c042e6f8541f99b0e9edbccabd95ae227904479c3b67088e7b6d1733a1e95ccb7730cc3bb7ada04034a2e769cee92453ebdf40d9154bd01e03f16cdf596e7b7f90aae9c0353b31ff2130864d273689bb376453859ab751f105cacd559c18ae7dd235a8f7a54baf9ed233a3a5be4e6f06cacf01ea511a8b2145e14d71ef4a2499171c375ec7bccba2fe579e4eb3f3d3190199aff0d4224bdb64a689ae66a41e34ebf3d9ea0c1f8fb5173042798786d35b9c90ab524560c2a465ea7aedafc177ac929e64b1ed78e6241d6d29552bff08925a1a5dd49dd8fc15f46e1c61edc3d71b73d2d456c673b096e45a8c926151bae0cea23b3fa65aa1eca2ce16d31f125fae68d2008094d3138cb35ac8c500ea3d55821a6e5965729afc27c10ab317f54848283567585e9e2b7b00f8a5e94eac142af07279fbaa2fecd32e6c4b96a5519f10772ab3386f3cf122f7e045268b8f16bb480d433b0b581767dd11a0a0f3ac4e77cb5d9dd1a520ff6fb649adda31c6d7c6e8f12e81995a8af719752c20251aebe4c3ad461442f59867cae8526b42e340747b4da8a73b48daad0ec70b458386b2286220de3ee938383ed1331aa205908a5b15b9aee320f5491d50f9cad5d64b680db633d6e995a69010c0733206888efff5d9041b5503f3acefd0a7d02f519db22d0b54a7550fd9d53cb116a73f4836948cdb988d402a4399aced8b868025acc8f42fe98d0bda278b0231e9116392c088fa184101214e25e20e95d48889446f430d2e10dfd5cf94705dbb0083a3603410045b270f52afca90381c800a0fc0851bef819d7371d4de25311fb4084795107990cf15f04fc924a9a2d27987c03e6a3fae1d0c08e3edccffe8035201471fd13ec61866be584c0fcd836533d6eec4330bfa436f47dbc2f080f6c865b821e2662278b28ee94b6aebf50f9a3bb9b67eede741b3376919f464cd985c1ed8ea588bcad87a06f165a2481983179fef78551283a8b20c613d7c575f16b28be66b5c3b5b9254535cdfbbcef962b698d6a0a896726c8b4986831e70269907d1045b2921e4141442abb05f65cee40e31049ae1914d8e34b5b21849e2d840105d9c8f261ba36538e29b9661525862143253c37657d84b9794271faa4d1a5f08cab7aaaeb186dbeaee020261e4353a440eae6db64f2006cef94034fbe5f4b0f3d7374a8ad89cdfcb5b4345550d2c1b1df04fd319bb994401d57e9c108c01006831199ed5490ed9cc050d006cdcb904dc81494c592e3211bf74a0a63f49d9503a525a89a39728d79439562519c582c1b2056b0feda3121fb441b53d4c0c673fab102c4df000da6efdb4a1cacfb367642aeaa5719a34ebfb872c5f898b2ccff317e16f8f469766653cf16f3b8317b29c1ef09dfd82a94387f0cda5e97b774b0276ce989042580b11fd8149a12008a10fe5859e2bcc4f18040426430133fb36601b5b4480ac8be26deef342ce9a0c8c7e1a4c85bbfba569c097da6120a97ab9aed6615a8d577d4ab4cf250352e653a9897ab5d3b64969e9fef0a0886706ba8e9b3c16d64d686ebca101a48932565d8b542a27a4097619e6feb1b83443f8f41abdc9554129fc69c74ad4125c9ac24eb5c7f633d221173e0f5100dcc29a156355b09c68a2abb5b900b0c9245ab8c1d81f4f6ff9047f52a08eef1965b1c886dc2305294b6daef3223e162271c49135f25cc8d90a7cabeb78b7858b00d5f90437ebd5ccad8951b4294b7203c837bd5c0204665cb0742ff9110b6c84d29eef6a426705c00e0155be5b55b212adb65533386051c29e7425a4094d4146f4fb5b6df86b4a60641a8ab4e9bb69b861b4b4c31379417e5fa6f00db50592669512a731eaec22727a39981026cdbd6a2f2877eea72ec7b48e79a44e2523914ee4d7f9965055e25deabd9509be90b6a9ebcb892b7d02550ad251b9550c9af2e412b7e4cda5d5c28b6d86fb9d150b5853e45b82849e1b9b31e2c55b184612602cb88b38956d2f0fd533489db0581fc38a9b7be335b51f64c9b062eb022da8cdfa6962b859a9a4f1ec2b7885b24d52a153040682ab787c8870d24e5c2d7e1617544001da59b9d0be3c6b8fc036bea0597566e31027a74eaf5cdb80b1374e7ac6fb9f125664842af342c895dcd0c679c96cf036b25e6194fd9e1ddb68158e21cb757f1bdcb1701b329dc0af50f7d4bdde0e34c2a4b03866cc93308d7eda0a06b9af1136c4402d72db333b8bea2637a0b3eae230cc21424a34959a2aec151b5711024f6171bedcf771b69631c0f9b11eb10e941690a4350da6aca5b0e78829503246f719336fb20909abf96bfc65d5de3d84c4f1182ba28ac1d65b740f42d4f46b47c4fc74ca06c667729fc2f659e0eb9fef8aa9af77f1d9a4c76c004b216c284f68dd9edfd8bc53f2ca0c980843a29267dfa038745de6e608bed3aa05a1160c917b381d8997939264b1d9cc43df9ab024132c511fdaf8c62ec8664994778ebdbf3dc1ae01fb62805a8c564634e68c06caa6727dbc66273c6c5d02a598d9562d0d19715ad93381bc23a5a86de90a9246dedd9d72bc3c3951bc22241318625344d29db5be650307d4da8d8988a40bf72b3047b9134e526f8f2e8b6734bb1a35201dbad48156858030be3090e58788fd45fe1ac5fe1bf654c2b56f86a5fb20569bdac408c44d0639f8ee256b710814cb615007c3b0f419823f333ab75dc80ceddaff07f5ba9270af90a42cecf5504c57a4d92e46fbd556364c3ed6d9035cdcd164debe322c4f7381e876274fff47c4e4090a9cf029f63687f3c613cdc1826253d8235e56c63e7a5530d2b602ad3b0769d4443fea3798615608a6658b38e9621f5813c8a29f3a640c4fb68e3403ac001b56f05e46af0bdecdffe87c6289bab2dd252d737f56e0ee754f4e241dc9a87e1ccbddbe99b02fff0bc4f038949cca84ff34c63a08e60bb2df735af39ae8a647d6556fbda611d7a958f22c7c36c7c0d4bcb2d9529d7f1f9953b6eeb0f22a1d22f95d02783053f63dc9f8f9045d0bfc63cd9f68aaa0eaa7017e255aa6fedee7cd8bd3ee68611ad272f249a6571836998d5c3733b902f89858cba1a974829a69e849940f52370436995e7b01ce32f6ab3e3772ce61feb822db88a5e6acc99eb9fdb6b596014b112055eeb5a1997914ff70e709f5ca9fcd23da5457eafa27af5a03da8e039bb76838c917eae5c65185fb27acd77f7fbd9b88f39b773df3afbf6f9aed4b54fed9494e5a6bc1705088559d61fab58740351eec64d63fd446ff7e80d70b12e64ea3495dd262c93baccc62586ae00c45615138c5a97f007387849c0ce91a615ed52699d34ef03100cb5e27e409848790db7edeea688f56852cb18707223e584c7c6273c017cd29a0fc89dad903f1246c2339d5a57b9cfeb1c5485e2aa338527095ffbdd0ab76eb63a8302e802e19548dddcba18d95d27c23a195afaffefa723066a82297ecd56c85459c938742db713b2a75d6eddc26b51c6377bf6fc8719c1f5793dcee10820f102987561e8a8505df1eb2ca70a1f0e41dc51d223cc80b3d258e9686c51c3a657662158d0ea12828594cd856081d06c5624040b226961c2eb0d87160c7aa8b07aef874842811f525c40ea325dff490a28ebf623603a83140b04660b39c74eb2f1d91fca3ad21b98709933f13e5507911663490400c0d56164e81f7dafd598679501eca0e3a76ef328fd2beab06abaf907238ab75abc9266a08a4fe098ef03afee91720796868479049233e454bc1f9d2cc52e0fbce5172fd716b1e6fc7d25d295e111f13a933b8a2aee6c5108a9352a275f438535f1f2e6e4aab50516ab264749dccac2bcaaaa5952c52359b28eb8da4fc7d7f8e0da910d13fbdd9bbc0de75379f838983b060ea6405e72c13b033594a76d01cda9b05e1cc673b9477ceb5baeb8bf88fdf28f60e4bb9c78b57cad6af5d755b2017e25ffc5b22aa48b349d73d001c47f03da7daa8658208c71950ee22819bfbe8b44ad68b19510d83a56e80bb34ec2baa9447cd8cbb449ca29ec9e235ebb8c44d0d00d7000bf06c1cf21b7ebb8e1e38bd213168a9639c6bf69e424537e3e09d0c834b292902df7de726f29a59432160acf079f0735704061e1012d576eaa78e8c0434b48cf9a2833b29420c54d795bc8adf0a3064d8d3344b4f67c2d6020090c3a44b9a3c306139eac953776c6d0b1426225c3940aec1903d665090c53709ea2a6f44ce1c10f1d5d0c5ca41405d1e14292ac1868a09a79fa9840050c47172d24640dcd9042439c3e4bea30a97232c5864e0a294845412186cd1433566cf80125f746cd0d194ccae4b8210a0b4f24e059810b8d336d5ab83ab03881850413ee0ca19245c6b70200c6d490c31d1bf840c9f334c21631369a50291152e5c34233c48a9614b88489f184c3c8123e36048112a6cd0765d6f103856a4c112e336b58e4089384851a5e9ef8781265c34e99396cd8a4d9a9c9d933390a66b02107061b789adcf03931daa3821b2767c6fcc9938786335ef074e172c3d7c483302a3252b841468b4a4e86279a18a91eaabea23c6122c28f11a935535843fc945ea09c2003982f2ff44161490a407668a3b3f3c7060b30596a9cf92307ccd7a704cb0d60525f6a5e289394831c2a557574a012e4ca891013f8f8d941031818bec2c2043d88747943838c172b493c28e1ea046f70f068d22537bbfce0f2868a961e302b2ab8a9b283b563cd0fba20686628d3a78fce4c0e244a92e078b2c31e13e01cb101838e2f524262a8d971240a0b0b7ebc70d9414f112d370451f335638d8f2929b40c0d2f7bae6864fd68a3c50278e020018347cb8c1d2351533c74e8a460fdf0a38c0e3248410343070d5748be2221cc7162954706262df8d0668bd6963044fe947193429d3033d0f802c227088b5a1e1d54476290e0a5e6d3394005ae2d637cf451c18fcdb201d88e1d982f2e0c89020496c6071bcc5c51a1ea2392659059e10c0f71d87c3d31e18241890d12aef8b830e4851f84ecb0c311197e88dc255243b8745cbad0f984ecd0922389139d94383df8c46981069427ba2335be2051555c7680f245cc10263c26e0e7cf1d19c8fca0240b4891202ecc5045c3460a716618e345898c2c26b0f243762589ee0718277465f1b1c584ab1f79d6d0798282087daa6c50818d161f5872425c60f283841a5576aa7c566fc2ba7210f2a50e171646a0e05065051d55921dc532ff0881338507184770646171c5e42658098290d9b1844c0e396f2470040f8f1a6280a1439313ec6079e304080f48e4e8724a48761803e682570d332638608742163c476e98c1cd93162b593b7c81a93952e5c7070d3e8c9440e40437407eb060420390245cb8f08859e1ebc1011ab6bc50430b0c727ac8d9182ca809f0ac918302589e396a7cf878a4f15263c61f25467654b1b0e2c02a4f1c3a7a867c91dab1a54a0c352e30f152b2cb355181644d1b385c5b6068e9e812e6043270b1f283464d07ccb4f9c10f0c1ae0fca9f2fa42862bc9902952e0043153a34b172f7a72d0f0e540d3e4860faf227294f86161c1191252b0b1c3ce1c153e1c154c9d60c3ce0f213cd23c51394f4f2ab069d3668a181e4c680c7c6c209282111fe6ec00c3eee6092c14235e70b4f902838e1b130621bb19516cecaa9cbc716226cd8f293da83098f3438c0d227a7c9c00868209e0d851b2c5ca042caea41983e36b079a2cb9a81f31ac0841e2021322466c30a087143d7bb2b889b22707e64b14284166e8f0439b1a50ee6029818a093eb8cab0d86a636567aaeb071e6298c280cb9c2161a0a4c045476e035cfce84a78b345a58586ae07ab2c40fc18a9f2d2c1822e480f3f45b614996186051b63a2744de9008445062cf8d0234b0e0f2374be1266200903d2e583d51c3939274a8a48f162246b4e984f06a5d291c28d2cab2c6c7211e8e2030c3877b05c98f1c59874c8846132068e922c637215e866d09972610776c347c2069c14d9e243c31730134c19a85ce99813870690211f0cdc0972a0b85045830c8e3e5e7cacd9f1446782954fca29060f5d9a3239f8d0ca01a90252030b56985c09231216030e3fb8a8cc3c5df1c28315a48ad79518ef8f0a334bcadcb0d1260627b99d0d5c6166d0bdd953f5430d166200b30317336bf8b0b0659e261c2f38544e804323061b3f33c850d3030e69d25c556131011ba2f0a0f1a5061d101f3420e30b099918b6d0a1f184058e8e2d5d634ce8a1afe19ae223e684295b5cb0c050a345852f263bf4b141cc55189d12d8d0f9827b210c0a79b4f84882066c0327f8d0324686983f3e3cd51f6aa4b163c30f3d316ee8e13306071c3450f883d5a40f0b1f3982b409f284871860940c0b8cc5e27124c172848698139cd9d3c31b301d7655a6ce74b1f9ca01070c163155a6f49cb86287863d3a1e59b60aa0278bd6951aee7cd1f13045c8949593266b66d4787a63c306312d9410e5853c436bc27441e1cc131d10a7f9f329460e3c68e9bc4c0d39b383948e0f12373b1e6498b0e0801b305c424a3003070f9ea82a7f5638f3650f096fb680a0469f222f74d1f153c5bbd307061c529edcb072250acd129565ab0e173d3ec2c4508685a703183378b23c71c18b952d9e992038d8a9618817205147a4a8c17a93658b0d2e2f07134af258f1b8b2a3490e96c912376e7cf861c293af2a76d2f89943a4480e6fda44659971c3842ac80c38b0704525517347e7870e56192a36c71c3c7faa4499aa523585855767d6e102e30c0955f8ece8e2d1e9148e2e4611232990a1aa40061b343b64009b4af205ce931e47bca460a160ad582b9dd2a795993f7362579fbb9e9dbc39bdbc75da7507bb4de9d328aee73e474a291d23e25d3f2524dab6b37c74ab4b20d82dcf351161edd2d66db9deaa877959ab0513a7cdb37f7908106b76fdfc1493f3be189221596e9afe61e3a73f29bf6fa16cfde95afe6337c6a0008d48426d358a57a874782506088289f96b7f69843c18429c45df28fa888cd23e0f48ffe802ea6d83efcbb94b12fe17725a3da225cd7c325da70f8d951cfdfbfee705395b3752aa47b837a26d40fb9b89eef589c64a8d5ee280e888ff21420405cd24a64a8fe84f6f6bdf5eafb57726d5187db02ad7b71b0356a1a922a30fd637636022664bd50c3476bce04459483347ab88992a2a546d59d245cd080e554e23d02e1b6286e4d911c4ca290c9823779c44ab9bbc4941ca6984a013e8141fe4603955b216c787ee607a81d55aeb65536badb5d61a865ca4e50fc9d9c55a2b0fba622e4cbfbebee8d7d4e5650beb55e1a09a524109aedbf7e6f722af5ff5f67d6cbe69d32deecfb6f8cd59c13ae79c338740fb04eb9ebd9697395d95504feb5655af7ead6e8f5b754db8563ac43aa7d6a4249e2f5a4de7a4187b1e16a752bdcd2ff339e7f4a637bd7b3d8c3d0f63cff33cfcf85e70c9500f5997aff25556211fc9baac42beb2b2da61adac559c1697ce19e7c62d40905dea7badced395c095b03aab9b5255ab68150eaa8aa356d52a1c280eb80fff6c67cfe35a5a53b2a66865ea79a15f72e2542f395f5a2170ec12a7a535256b8ae769797cc4f1896d82d8b2cb5cd59a73c9fc3aa996d5b23bbbb358ec15ab65b1d89ddd89e2d500a59762e00218a01a8061c6e9b7c438caf25731f62528061997982564a4d1cf7afb183092b3dfdea4542254c278c6e9e1d406954adc16b5c4ac1e59de1223c55744fa6515e31e89f5fd1cfbf753fdbdf8f8415e53f1bdf8e0ebafa306df8b5affa863b16d5ff627ac2cf68520a8b5f8734421fe89da43717cfc7a7cfde2288a5a0c3705f3d017eb895a71c873bde5f1deb78f2f48a6a897049f96b9f984798d03f0f5e317794d0518be0ebdc7de9fb0f64e8cb9a6178998ebd2d3fdfa13e3321775d5efdbef2b73f7c97e15e798a27e6f3f192508ddfee4b21ff4ebcdc9ed9681367f395a9f3230a89552123b7fe9fde7799fe7d90fe70f5f8a8746c19fbcfc3e7f9fa5ed2a434409750336ffbdd9624cb3d6b34112591ef58934803e4b5caea9db172759e2cac3aab595fe7063ca5efebeff6eb4082effe779d8da9ca738e77cfcb64a4971bfcfdffdbef7ecfcccbfe9d93bdfce49759893066a2da594524a6d89dfd2ea51ea517ca9ad3a4c8caf8bfefd9d13cf26cff87aafb7fde69cbcbcd85a1a7f67976f1074bbc5edf7b6b8fd5a6a676b4beb2d471465d55a7bafb5f7da69ab8dd1e9958b873aa2b81763cffb7218862225c76b65b2bdc770f7c5d2664141374a85349d0d0d111151221cab71e0555e4e809244454345454533a1a0a222a05d5454242b8a8d454545e11951945dfccd76be3a14774c26cb7adf20a1d9a6cd6846db36dbb419cd68e7abe9fe109452a34b818811f7ceba446a2ff6be9b519f5ba4d56a9a11964d5f66e4c2a6e5b6bd6d76777dbe122e572e5bd16c143ac5ec32db999290d5b236ad59f8ca4b96b3762d0bf7b5b7be2bd79b98c2172e71ce69bf966533a09645944dbabd496d28ea3126db23d4c9b7d26440559cb6d21c34a6f87ad62a2ced5659262a2aa2d1b6ec8dbbf129bbfc2db31a97ad1465d7a2ec1a965db96dcb0e49307f1e49c662b515a393f8315a34a2b096d67b2fc7d8f328bdf5e679197f62beb5d64b693410204284a8d58c2810218236db23464c34f39f2479feb8c739c79c87a821dd66d2fc7c6752ad941b7936eacae4a17bf75ad9222a156144c1883a6204052248d292642545907cc4887f92e41c0000b0d96abb0a2ab09582776b2d2407802d00b6d200701b006c365b000450c1addee80dd75a6b59b5ac5d4105377a9b368f1861458c1aa0a8fce8de4614f46f47032000d2882269d65aa9adb5a298d55bb5c0024ce2922041c292205149501222c417210e60000440424a4ab2c002190912331405c804404aa249d3c6ca1190746db78f8eeccd0e6044516b5736093a6bcc824c62443171381cbd48baef76894a4bcc12d89b49b859891185f6ac570d40298d2a1d6049c634a2984d4d5f130d71b85103dad697c4a8010d81166044513955bdd55a6badb4628ab901e89cb5124614881851a2c497204b9428c143942801a2845742c50e62adb505087386453cf1ad9c8e28d26cf367bb564aedc55694cd2f55db8bbd8f4aa62203e7835733697e28ead99e56d4f5f933489f3fad66d2b4eaf3633d52dc8eab6a59367d19adb34714bbf665539b8184469c452925852a79452bab0f0dd121ac2e7489868888886642414444409b88884846141b89888874924d69ad5a577f1c787df23b27ae63ece99a94fb9ffe6a2fec72eb7c4503ad55bf5f7b6197b926658bba26658b7abe9e977af53beaf17e6deb6b52b678a2ca6eb21185ed86241b531875716f20a0a03be79c9e37a7e7ddfac54142405b484848480844accc79581e059a124551a4d5dea65ede76dea76b59531445ad471d8bc96a59401aa774abb7a0d99ed1b490d06ccf68f7e69bf51cd2f85222f116cd228b35d188625f2c16e95ad62e69b52c1b3f6d1ad1bcdc5a16880d6244a16f4dd7b26a3517f67cd1c888020aa6088cef085dcb1a31e2ff455060540bf10f825644f44333a1ff0f7aa0fd23feff3908bc72f5f3cc4aacb746655b5a69ad054a9f88220876def53c5ba95769b5177ff7fb6ca5df8c480f0d15e921a2a222101704085b2988200d1434d34242b3d910912e22a25d1acd564a23025293b26b597b52079c69f265041e1b6f83a633759ac68c80cbc34273c5c31a618a825151b0a8abd975866a765191008bc1160b4d138b756f08e6871013eebac5f8ca30ef1904d0bff68a09245bf7cf45f7eac5f8a7c5f8fbcafbdf37f3a8b7fbe539dd2dcf7e6a2dc5ee7dfd3af53c31ecf8c31ea6b257633d3cf3f8c679cda6e77df7bca7e577ec79b36b7979afb595ea5969bdb79ffdecd79443f047103ed09592ba3f3b58f3780721c7207f7b84b9517f8c6736c3da7befbdd65e352e3ab67fa9ed4ff3678bdae7b5b3ee11e79c73ce30c6530ecd98524cf1c598524ce9b5750412b552b93fed9d4bf6f3d3bf75e9c97eb64f3debe1abebed47ed41dc1fc59ea69fe947e6a58bff01344403826cfab37f7f47145fa5f43fec7d7c3e005beb5dcb856517785ff8f3b5ed1f7bc26f4731f6006f44711f5fcc351db51882f9f36c14a8a65c93083e4d50b69c4d04d89d3b28dbe78980bfcf5e0bdcf3832f6690c7fe72bf95894a651170f77815b5211a80644391fdc9be0e711f3c61e79f1d7c8008b45328b27ffce9bec7b506358758866800935a47fcd8f82b879a5df7a99640cc796f1aedff36e9d797ed61b7ec96ddb2fa445d4a9a17d45e69b78e9ba89565538fea833cf3385ff9b671f53d7cad059dfe52069697f34b52d24caa5355bb7e174dbb60d8957e79edb7c0c89eb95ad93a4441a701e8b45eae6712fd05d4a54c7597aaeb3784883f9b764ae7569ea65953afba0bd45b9e4ddfb2a132b12bf590d32fb747a98990dc3036ed6215957a4e8f099bf767a2df3ace04178adc4cd2b3e997268830e9c16686111850f690a19203972c2a3d5402745743dbc34f617b580b5fe8a7532de43508cc9ee83d187a21fe42e8879e88bf20fa17433fe3b5f0a7d3eca71351aeb73c4406d9b42ffaa020d2022d1be8cbe9e5227ca0cff50654f4b4af37a2af4fa52c53d1cfbc62e5f47a7b44c487465ed2669a975b88e37ac8bda75f81a4802a1883386d1e9897f0ecfb276c066df67d5caf6fc3bf6478df021fb50bd72f25413015958e1329bb8e73c724e616cb8fade76ce08bb78bba8bb32e865f1a75510c8d66ba42d96c5458299838eb52a55df1e289430d2b44896185a91b614e202f81841b2763f86845c122c729f349b73e7f3dff14bd8f871025d5f304bb9f67267374aadb6faa7b60e6792665a925e2a442f644b3d375116a7fb27f43b09e9745a8fd297f0641fcf7e703beb0b0b0b09eeb8d7b4fedb67c46656a6b88d3666f797a7cdfc6d78ff1e3d80f11fdd03b91bd8b5aec877e3a11f115454ff444dc452dc66b1008faa1f720e887f80b272b887ef62f863ee83d983ded69fc05d1cf7e3a15f1a81a04863ee82940c4673fc70fac20fa21ee8288d73ca04e424feb10775253117bd9cbf8d3f8313efb7402caf5366a70eb2d9cb4dad8dbeacdfb1929f44140e4b44fe39adfcb7394acdeddeda22c3f79fffdbc5de7f77ebc2180d0b5eefa47d21b49ef359943eaf6c7515fad3fff388ee338e2cf48bd5ca143a03d7328a43e720c82a2c84ba43efe47ceaa546f758305d4db9e1dbef83a77ad3f5ba6207eebd1f8958f3febe3f8e36730f3eb71aef308384a570fc795ead97245f58f97237c6cdabdfb250503a35f72017686e9f5ed950213a67e806ecda43db64cddb25c97cfcce1fa7d285c7fb29ff57b1ea532994cf6a14cf65b1431167ff2399364e4ecbb8321c5f4d32414aec4752c7b4cca5ecc6489cb796f1a2dd7a3faf9e7897ab3b2bffe8cfdaca39ef8c5a77cd625192f7127ecc7c891d42207ed7fa4f73acf29529d622999006db656c49e4d3bc61f8021504abf538ac38241c1f159effba46cae9452fbd7b394524ae9635b2f2f8039946d8f34c73caa7f4226d26b4d8263268141c181158aa994528a01e52364e419164629a518d0a9b761616161446474da4599389b53f556bfea680dfdfb114136ade12b555d9a15dfb953f88e9df84ead54f536ebd4fd6474ba2f8ead5d565d7971f43a7553372dbee34ded6c365c7e24eaa2535ee69b0936db06220ff9a7010836b47790baa53dee0270383dc3f3ea36b04c20e4adef99eaf2cd00876d94a5d65aa5ebd5523de7a4b25daae3ca4daf0efe8fe8616494b38e8acefa25c356d5affa55bfea57fdead9f69051973ecb34b911fd1595e9f694632b55dfd6a9db8d7b09b81caae93eb54d299a52d4ae7aab5f426b9714ab0ba9d25b65c3f5575db24fadd5893a78f5ecd130b4425fee4ee93375fa079818206092a84f1f47c31f7f883c410691e2486eda4351160bcb04e83db3da8a361c1f5797c01f5f695e907fd4bf499c3da223f81324bd9ef99c49d88b8a55afc8dc7dce748761a847e4c879d29abfcf99568f680a01c8d85e39bba2a454465df527f19fc0f71e93a289ba5483becc9deed98ba00662df14fb52a92bd19c37bfa5283ef832326bad75b87528fb30e799b70e312fc5133606f2727629d5a53b7e7d13b38ee37f5d127ffc5999c6514a4aaa7e9f289657141f6a76f527fc1e29be1d51e40b3ed585a0fe2cf224403fc75a07411f81e914c43d00e26f8f1420b5690f7aa09fbdd04fa79276c21e61206e43fe7fbbe170b676506fb12296e7fc3d83f812d7d4f3022ad3077fa2468620a73dda40415f44ce320f5f0c47586ddab5082c53bd92cdb810581007e29b974d1f8c344f56af62bc4be4140cacdebebe88b4b4b4b4fcf4708ad9b1b069297f18de2c53bdda3751c64bdac778f9b79197b72b1cafb4cb8af52aac575d60ce9f08a8945579bbd5297be4b5eb14ed6b261aa2f1a29c897857bdea3548af54a88e37cc2bfb4c82531446affb690eeb6585513600c99e605dfcd8879f53849b745142941309f6bf28c1fe19d4697317d469daa3fcf9d34f4970e4393ad535971aee8c64ee73d4bcc601879a60fd49e4336e94f9adb7b963d52ec95d04dc31388ed34b9f4848a5519e6020dcec32bfce3ae718df349bc1d748bd825c04dbf193fbf64ccefe74f9e53a46af0942181116163677bfbfbc017d896b32616293b31e89e07d5160ad52aaaa51cfb39e6fcdd9444d3bf81537e2445cc8ada6a07e6ad47539d35dffad4cfa75d51679481f7f7c7b14df10675d82baf5dcad7b3b1a6ea630e4e5f7bdd5c042ddfa93e5f74681958289b8fe6cdbaf640823cccb9fe8ccd48c18f27bc5fcf7de0b82f75ef0fb6c6fbd2990eaed9651fd66c3af0fa038ebf132f789773aee61c8e74cf2be073d7a454be27a69a25f5cdf529e45ea9d40bc17fff5ec5f1293b4febdd6869cbb74b9d2ef87e037bbe46b2f073515e0871ff2a7f21be0c46672da0bd20a47cc75a9b4f66dfd27ab80ddd39306c3d07a21dd946e4ee7f8514ee30381d9f4ebab6c833467214e730c2cab540c676e3d310152bbac533acb24f437af5eeb54af56a0d0cf7e85d0cfde1ed517e2514ef781c0ec698f3e2ed58f6e3376f8d932bd7022fe8bd90bfd0b3ad620307ba15f317b212ef215419c4f7bf4d1abfa7a76c8cb0cb4cb4feafe32ef977d1fdde388b5c6fab2e95a6bcd6dfa675b8b18831f7a20f8e2638c310e458cbb87b1fe1335d4e3030191b7de025d9cb82dca665daae50ebfa43ddf9e71d8f367f547563a3b2fe9773a6a40ffda7b552420d737e2c46dfdd117efadb79a317eefbe773dcffbec81dee7cff33c4aa9379bcd6846b6856dffe2f73cfa987fa49747effbcfb6b040448f66f436d044bd590dce70ce397bd8546f76e2ec853082f751d95a294f9083267293929192ad84bb3dd9b37ab3bb34ead676a5e5c44e4c0b0f4c07b8344d706982a0f19301f20a594703cfa6056e8aa1ce07b433340adcd004c9ddb65cdc346c5ad42d2e3cf4fcb63c6d4e51792653ecfb4ff6f397c5327330674a7f665ed64c5e1b26c50cdae0705da2124a97f0d036b82e51c9d0570ebb1cfaea57bd865c435fa4d40be2c4ed9c5f04330882e2871fc6781985937d792385664033192f47f4f24696b62ece23f1eb4ff1cb5cee7244af2210d0bf280110506cacd546f39418d174f71ec728a534d3fa7e7a819e63ba6f5e7ed0330d2b5b68dc41ad63b19fd5a5107d36d579cbf468376927581fc9f2565dbd67e17b238ad07a79bda43dfef4b2ee10c1bc5ed61dbddeaaaa3b658f66617689a7f014a69a7a665c05e6b8b7b4f5f2e3a5adebba34d625a02f45d069083ae56598f3c62105a053d94f1bfb392fa0af5facba6e95395bf89ef7b34ef7e656f738ed5073ab87513d7208b443d97ac8cb28adeef1a7ef9ff07b402fa2101f88e4bcfc689791e5d8cb4d80fe91f3bba39e427dac7d7c71326d3bbfb914fef87362804449d41f47293d8f280614207dd3a39ead530e863487649ed886f1a6218c97d14f80a447cfa3061687bfcb62b158ec4fd4edf5159b56fc5c97eea8c167159f06c30f7133cd923457b9de12f490d78dd9a5f55433bb6eccc175cd430b86ec52d489baadd935e43545c4dd90907060ad5462aea94949a98720eed604d6aa8b15495551b01c7bef738e65ca27c673142ce72a3f3b53b0f1fb92d6e9dfd338f58bfdc7c3ad18d716e876a9775bbdea91d464935e3f0433052b92a263936da031f6f481c84dcac291dc797ffd1db385fcebad56b0e64a6de3c762dc85933249ec3da039480923e5f462848ff111f6c77e94fdb8b913fab271fc586cacb5569b58f30dbaeb99ce381bd07a0305c58046fde28b22f9819f1967033172d7c7aa55e0c83ff6f57fcbf8cf4a2916c5a258dae31bf820e7c2c98ad8cb7032ee22860d0b737252d25741c3c2fa538e43d9b0b04e9ff21cfd242f4e7c8ce3b2088a203460c99e3b27f437ef20f6b217e94e162341c04fa3519a3dce9feb0bcbe1c39d1c3edcd1de9d5eff82187bf6dbf3537ef0cbfaf37f9ffe00a0ff82181bca1ef9ec91ae435eda23b60ec6c011bc95c95ed9a30a7e06797669c5dc20f5563ff1ad98dbf56b1efe096bc584fc667d79f6eed8b0996e463546012b87a7ba7e50840ff78a5f6214eeb4f89eb95057ce4ff8c33f613d4f67a09c3908ce747daae95576c5f467e33f61a1b4d629be532ed43593ea73406697a1eeaad70f75e19118d7bc6004c5a5d09a5eff9b6189d5dbf1f494e6c720a5347fdfc7a1903ae54ff8a9fe483d6564a0676b2ae2b49548585d14455044d8a5dfa42008fedcf51208c605541bcac3c219c8d965c8d5ab871572cd0b3cac1405e8347f0984719df2da6e49875d0aa0b6eb0290ea35e49a4965c855fb3c8c14528fc61b850f922260b0d238463d676434a3d18c689c10c49522e8140ad79fc4d74ff1157989ebe2df07c11144a7404025ed947e10891f0808df6cbe1f7e8c2cbf820e3a0e499066499aaa7e3b888b55fb46a9e7949490704a382aac5537bbf4dcecd245c98489598f6697b056321fd7bd6148c1c2f7ee053f6b1d9efd522297fab8f5b25ed6ab8257f7faf330d89765ba3a7b542dfebaf8abee9182cda4fa01c0b3cbabd359a6fd59ca326d59ceb1bdf195a21f97583faa7df54f2730d4ef41ec357fe16405f760fcd8c7f80bfde3c777bde58fcc95871c397dfaf4c9bdfe0537f6ecb9e7ba04e56161ad75beaf557850facd3ce76169d2f3fe821b1b2adc6591ea0ce66cfd992cc35d067376fd4ce2be4ffc92f6ef7b3b6a60d4350f773349bf054db6fe10e5bed3717dce24bdebf9bd17c90fd05e86bbcef5f5b0fae53cd7b056c033dba43780c9b64d7a69cb60866d2bf18bb130c6477266546fb4ccbd0c6d1312757290d1319e75cceb994cef847fe7aecb28a594d210468485fde9b1a75c04afcbf8930e4badffc6629f010dbbbef813175a6ba98e91e0898e6717432f0a0a6276d8d3833d9a3ffc9fbf83609982bee6cd4bda9c47771e55106f9e9b5cdd43418c1c5dc74f3f117095e562a2e74c98b0751169520cc45009c944af59483d87846464fb6c4861ad54e25cdae15f28dd9faef8df83e0db075588dd863ca7c94f0cdfa3f84110044130f41e63b053a40ef212a983183fc83359ea9ef35390df8f4fcc750ea9579ecb60c56224d4f4a2487d1c1163d33efe898afb78c841dc917a849fea44ca8fe8e85513f1eb532d19a5c08a7aa30f422c043ba837fa27ec68eb3a6b195607fba358f56872f550a434e4219f24d4f4f2f2e21d7061d55b937acbaad5d925aedcb84f7c4b93914f8115f5861f844cbfb18e38c4599770fe6c0d695b837f404a42e90e526ceb140c435ab6e837db3a4eb324cd917eff44bd55f7cba3406ac30049d95b24449e287acb54f418db3acdbb671acd92944602855f0b027aca435daab75a10d7a0f6a0f0e9ae32cd17bcb6986458ac1d1e344c3246292d54360e9ba5a15ed1ecbaf4ca649dea07018557a65755edbbd2ebd32675e9b3d2eb57a557aefab4ab7e9f99a8344e162539c91052030000820433150000200c0a078542916034503359cc3d14800e75884066563493c7223112c4208a612086a12063943206186610021a1a221000fdede3e5c3753ad7ffb5d64003727eea79316e955388c4ce00084c87d6f3b6e724c0fa19fba118c36b3658fa4d5e79197d31b938c1fdee05f2a9db2f299861c2ea2d1876c89732bbe772063b7e0827e9ad0d1c1d9562891eface3272a87517e117124e329acdaea976b7b0b9613baf987484a2f8dff41cf490a15ab20d5d278db0ad7176426c5b4e5b88d6b57e90b6ca202a1f47289d75f9444d9575b9e6bde2ca0df61406c8d3130fe7491e4248c3ed1ffe9a4c215b0dbcd9f0dceaf65196c4d277b26dc4982a425ea69193700147362559751ba74281600cc7156c94a7cd6d5f80f808ec031edc7a8823a448a4e14eca0890871e8bf8fd1b5a29948053f97a4e84ae5960e32cd4a51baae3f8d24dc35fc0f4198322417bfd878c139ea275d9fe964e92327da7ca6a057c39d8cec93ab9abbc3810b2ccfdf2a60e63864201569f1f6ce01fc11d9600ed688359e366c334f5b10ee40be2ed2081f6c4852800715bf7096f41f825feff8469cb632358b7e38d81248e7a032c74ab99382ba55cb771f4e331805689f45877752ed67e2149f3a0a53b40a35650366c426c6b5934096d8077fcafd55ad1dafd7b056beb07da0747bededcba02ebe5424166bcdda476f2fe310e662ca83880d0af6b07cdb0dd47d5fa90164e92253e28715d17b9a1190eb8435fb7822298dcad9cac784abcba752928e1251d7c37d8fb0e0eebd9c1d07fd71b84a6b0e6cd911a4d896dc6d1c4e17bfe264367134f3a4e1b7988020bd11959106973118f553f6e4ba56918f45e196e492265566bf45a49455a7a688b73204ee0b29beb53c9b96e2c396368e8496d0a7466b605bd85a192735bdc439aa378ae92a3416b12a9797447156118674250f2e1edf5b8054ec0ee3b8644b6c838d4fe708e3a97380e6c3c308c785077f51fba72a97a99a176fbba7ba4072c13a97c16a23b4203be2bcbc34e011365b0f9158b6c706bf0bf621e64a77af64acad902422aa671b06eb8f244478f3bdda3478bc2f8502058820eb974f38a26b93c49841d029fb17d24f65e2c053704493a60439d6012e03cf28a156d9d826a997a711b8388f711f6891023226d97c53cb98e93beb74d4ebb6c064cfac01cbf4893b01d4c2ae7bf686a04b5e2ebd824fa4a10415c194edfab8a6ab82984087ffc221c852541d31372317a10698ac2acb5d58317bc91e87b3eb580c574f76121121eea8f129c394b1e285a3ca651c393c7379d671122f50b6bcb37bd3e07a74f88533b97b2b15485382d47ed55bb38180609f3202044eb473cf7e53647a355ca31b0ef006d92a6b2c12f2947c2d591a3f3a2861894786c1ac9578ec56b332bc9559b3e5dcd63fed6c117816190df69089a0f8518c9f45ec6d0698ba9722ecda19d0b6f1debcb25f359cd4098e6343df64266a5f5a99d05a118452e94e99a2070804e367dbf9a84a08871399c2284899e22b870482e07ea22280a08009ce30660ab8b480d1d898b78f9883e1e0bfc90394609def29821d9db51f81bba459c9cf09ab3104051060eb26c3de4558dc76aff6d4c15f58cf1416a63fa21d716ec800a124fd9279c759f59a2b2ef8082745ac6b734387f159c1570512df833dcb73fe50858217807cbaecd14828e9da5885897dc5e76a36684adc396686487f9b0f3fe400b21f4eb763bbae1deac7312021d81d77b4d9611832edb3de005681f1b3d73e5936dcb01247199f7f9f72bc3b9a55ded892dddf8f548b0d5e98db9917e0bceb92084e60582446192ff629ca3c3647f7422f7dea2d778c43b304a768fa2df67ee5d0269850ed2b4d25c3c6291254045d70d251ecf36989f5c226ddc44f819236dee42395063f8ad71d6a9a78ceafdfa3d2743123ca12dafcce9818c810c4cb446936be393031c5dd5f3a42278146d630f1b546a2ce4765b451589f766d07ae286df10398228268bc3ba8a17a9a95b69e8eaa98ad712302ac9b4fd0af6112028fa9bbc5fd09e0259f18e28a6ac0cfc4e22b369b710cd3d7ce85e2b6a1509803e97b31ad3a2b56cbcd17b9f268491dd00e1e0e7d93df89dd2a1695b9e3090722af12ed77fa0543681b5cee2e983e914ab6e38602ce90cc46f1c55eb050267df392157c201d5a719980585f0a33883d1500b4907ac57ee73eb6b960ef0167f8839cc730f69d1a230863cfc0c017f1dad0ea31468fb5a9e0e98a70bec26855ab4eac2ef9c47bf41ab4e25f0007e890e5489aaea19c1501e6ebd27d30d8515faf1864815c1ef6f0bb4b6b631b1c1644d404473c348047b634cbf24950eb7c67810698c71ce1acfe4e9e97374ffd3a90d3523fba4b4bdf80e76e1f382436ff6fc643f72cb28831f1f8c3a3cb05c7fb5cdfc1c158c7199eecd43119f8f793df46ce54f5fa3d2c6b52237b8835876538090940793572bef4438b7acc6dafbc2341c0f4e763b3c75fccd63a7c63ea40eca63b3fe745c73e652c8de60b73198e3598bfc06e19aaab618cf8a3c845f28a50a6ea00a6a43d6700db1596ad600e3f25d86a983e8c24310f514e9f780be6eab62d8af6f0b9dffc6816c4725dd1ff15c0f43df21d2332d4f7cfdfc2c2fb2f509ab196e029e40c489440069ca5f50b02a5cd102847c4f3bc19c70e93a00c9e8883a51140c5cda18621ba3ad97e09f3c9056ecb10e36bd08789f0056c04f68b474ace35e87b5ef907268f62c33111ee97387c01fa6aa044586cce5deec6815d3773ba859202c6d2f8ccad8daab2caa0fa790038c8c51558e0bfd69c59d2cf6a395cd97a0b7525eb49de937a8447b9d7a4d60558e7653e907e956a096bbfe198980893dc94a0d503cc078b94e4a30a3cb03491e0ad9a7992f0209b29ac8e84a23d49ddd2c812058d9c025f203581288c50d5b22862e3f01b656518fe7ff9408f222308141b7463a17fb1b402c0de38ac7e96f32553e94bf6ce04837ab917681bf93be01cc46627896a1808b3f172e87c0805619c013a42fa35001f1a7a32b5d8ed6742e6c7d140998dd10a920da807f983f0466955c66ed04cb631488e694c7944ded91fd171eca6d0ab4ed5ad808891d29826ec64400a9c9a2dbdf0e30538e84ee0fb9f00d475b5281850fa9e7df7416226618c3d1ebcbe3edcd15fbb460d95e8d812f2b2ac5de992bc76fbf7c3a3245fae465cac844b8be5cb4df22058ffc71835db350b98afa84269e55436ce6f9c9af1f8e203f6d68064ffe9e99d1581f508365dc68b2d4134c225508a1204e1c74c4a68db5390d087cac3129257aa34302cc24eb6b4d10df42781fe7f179b2dbfb78929e15da2cc1d8bb79e7c04226ef58ee6dacf2dc09e71ee365bc40adaade1d701d10808d590b77bdb9a4b76ec3d107b8b23a29e199aefb8c8b927c7afb4e36575ae2a84196a5653140b4f230b4f79bbb8e81b6838818878aee40ac4aae44dc3ba697c31874f90e0c53baa4bc230845145864967931c2e22de6a058546b9d343378fc2b2c6634feb55806f8a7b4c3faa4b0e9d2468d59b40c6c863a53e3d5474590605d83d1b7b358bd4ee220eebec50b1617fce107c61e0181872408ffee9387368fd234d539a978bd6348ec44f04dc356e026f959a3c9fff30454832b241f730532f1786545fe5c01238e2ae203997ddc53235d1355923056e946d33a761197900ab394a962d42078abd20a4d12fc677284275221f5693a40705f12eadf272b205b53f810d5393981db4afe2a570ddf532f858bc24b8bb472b8964c5c5c087e4fd5e888ad0411b166b159cf4efa6610f094196a22150803e90d9292a396d276e2ab8add39b8e9667cb01c72a3c7549f78bcbe15ebddaba0e496bd79f82ac20fcaca897e2dff642cb0118808181cb9ab740f746a357e3f6ccdd587af0f19424f255365d7e5091edc6674cfa5d3fac04a8bd500cf1e5533515c2ab7064080cc7cc6b979d3fe4b8b61d0bc17f53a86c0fe604a838281511328931f912f4e68b39cba0b3fb01a8d3b95a7af02b3f1e1e8fdaad9e420fe3ec8c00fa998df93c0afd635fcd0c610a11c182d6016b2306bb0986e09c115afff8a2db4989d627365924199c0290bc69abac521c7625e6611ffd62360ca5a1f850dc1c1f887b80bbde32734613c5063487c87aedc50785a2065ff0cc3e42f86a4e0ad49174d4dcce7da7800aeb49f73dd6785e289d6b6dd05ccb6460ee6f238711991a5a4046a05d3ffb558afc23f367ff3eea10575a9d46cb11bd4b2052836f183d189709dcb3dab63e6156b6503696609a4d89b3ba87dd0e519a50470c7bae7b1fb24245b5b2acafd01ca2576b15191ba736fe9fc6e324c15c363e029f967a0c3772ba81e561f33220b23b2de42aff8a10d11537461c1d7ca0b66839be805e8a1ef86884ca770d70ed6a876a945e41fb67fb25a9f6eef55744a39022bb5e688520a86e602065bb4a1fc9215cea0731a42458b479bdb82e170a23e6f5f98de1efc238a4a9fdb7c2d5c33ab37197090aeca1c2e83af69fdd016d05d766c24de6e674833e663e6f38eab30ba3702000a7adc14051305c8f4c55c2ad23676ba67207d68754fa28e4d3c752ae674f311a534538f0e41c19f93755b654fc7c64ec7b9beadc2a01dac5ab29de41d1efd3c23c2c5dd781736b59d29c2bf128b25ed338bb8c61bf593c4c84a5796897166490e43f9aa6132c2dd71c00c4a767f412e5e85d47d444114480c2fb4805e3b731b67cb187a6c9631a1ced36fb25f96512f957d5ac709b4f1464a13a192d710097a161c5a6be19082708d6f59520071ac80bb1b539a7325e8b1a79aabcdc43d7b5493aad78fe49ff02e713c36f32d6ebb13bf85a622f317fa020e1fef13ab03de3d90bb25603c3d75a04a70efdf2f969c78e686f8fe5fc7a9f6283b7a6693d2d407c3dc17644a055ed638499153599c571429ad94fc5abda1c80a10df313617aa818a1f72401f9d4818cceea602202b923f1c909779cff2cfbb3e2cb23c00ae3a483d4553595293a9e8840258667f78ae72411e0cb4d79d322b0bfe6b5efef632f27640175b6f06d17fa04c861e83d62903ed27f12f1847426160a339a77b494ac5cbb8eb65d84e227d8ae516d2a050aabe7fda06274f65f25023d164bf39b6718610bbcd69e6d9155f541572002aa35cc615d8a181e7c31c809641abb6c95263c51cafea91289d57e88cb3cca90c8f564f7a57af242a113e248384a92de11a589f8dc311c53e9d36449c18343ef7dd0ecb317fcb858644c2dd3527a24e80e9b3682b0e66087a10d097891a085c880cb779161851315112e8f1df3a83eb60ca117f5350a3cb039e6a8da387d82e02ae18e6654b9046c12344a207e56e328d2c03dd95e307b15ee486bcc139131356cf0221db0077d77759f5436fff8f7d5bd4ccb2bf56219508d59f2a7061da4d1de730823a2addaf2df678bd4af79b6cdfc35c980aa2d8ca6f318f3cf24159c5c067bd5ffcf57e0684bbd535c4ceca9a8e722a8aa45ca96eff69893dfe339ce40134c9a8ec34865b80d8d7446f819dd9125c8b4d2f48b3a1216d71a4cc30c660c719f36aa102a1a483f44944e2fbf68f2e50a4546b6beaf28c0e86ab3a27d9b17eeaf499fce76831f213e7405c9e70195e501a214f66ceb2264a87a03cb72eb41f752823aa9b9179416d1f596131d35e9299c5f66b57c99273e7840cc1c8cbd97719039287ee4909796d135199cd05410090c87c537eded69f2cb8324e0434ddfe87bdc8a24ab8c5a32f7fdb5df6b5d21c3c4a29b27ea28ad4704f5c5725f4be5c8f7f97609e26b111f1dd048ae25780d685051c6fbc6d011d64303213d980320c89f14599020abcb907d88a9a4abe783faf74859c1afbe9869c3e9c956a6ff39cc36868aa907e933e548fb81dc5b0d17d1c386a9dd0f6ed32dd869b333d1bfdaa2f74424c65579f24cece01334c978e63f6cbc46d01eef936e9d239fd12c4b67206039ca7ef7de9955bf4593552b0471a4f07c85b83eebdef5f0474725e5945c0f861c72e50d6ec6d6712863fcd5bd53a3d4c2d330784d05f70fea3361c5bf1b97f81e6b2102a8a93f96ebe0dc8bd011711712edb5db1c9ba56b7caab904bebcb789a7e8aa3c58bc66547da596c0fd107c2bde6a4103b56345621c707598e6e69a210ae0da50d260a2778e00f95a04a6697609c4f3dc79f4f8f4ba20d594f64d7684e4a2ed62f66000bfe7bb4978e76f2b9abd708f3e44918d47c40f80500c0ab814a4c7b5ec089a9fe2801a6d5b48424f15117eb4f33c34551c3524caf637d66617ff686397f3ac4e47efa6526e13519aebea708f21af2ec3c309d43945ddc423612eb700594f8609321c8e6feaf199cd0c426f196ac6899bba613ba5fd36963636816d868a9655adbff54c30a0e8b4ee9cd5b58f2b4efbe438de090459ab3db4d068d7d48a741bda68a68e85399ad0f7813afc769116836c4ae43f92dc92756973ca7984e686236552a2250e4cdac35d6bb84c995854bff5aa67651a22d32fdabc7faca7fa3ca3fdb5ace115d08f16695f7899cfae1872c9b345fda4f7a800d802968247ff27d48ffb41588ff7df9df7dad97d3d2553391eae29a7ca200d85a74a15e5156d32f34f7b147135a0a3a83bb5af7ef914687e9f3312aa1da9d6fdfc3f6fee57077e730649af789aa1e5a804699ad6152358fa1c5d48b66697f494f2c7b0c9fc56160d4be2f419a279c29245a6d657aa3c8db02c2a4852340f0a57300cb98f3558668419e19c43f9d7dedf636ef8eb2b6cf4ad60b69f4bc2442e8c94c8372819c4ee0cb34c0d51f67a5697c518aa93a1458abacc8c37f53f62ac029dd473bdc1ba3145f49e59989805fe6c7733977884d2bdb8dd8f78fe3021c67cc2503d9f95ae2c17aacac81583775e19df32cdee9bfcd5d65cfa7478e9f35f98dfc14738d4e6a6b26da5f536da9c83e594217ea1d15f7ede96de9a3c86971d4dd07bf2e9128ea5190b33dc57b2e85e11a6f9b792fa3a9d697a4344bd3902928d498c108d07260dc0e9517e075c8f3d4414e8d905be7535fffb453bbf15d9f8a247f43dcef55b1487bd2a001888b4ae7d9c9472f2c6ad55ed7786e1eeb711ae8d066d133cf636042adad8046699817aacec279efc36735b5c30071ff7985f1a53b46c010d27d9441c7ca22903a94fb4c748bc142f4bae9ba569c74df8c6dc93715d5fa5082c3d92ae9d18301535f99a32d6af53742eac0b871c02123a5fb6041067c780bc2311dc832c3d29d90e3989faac4075bdf981b9ae253598b0404da23de70cc259208f879ad263217d55138b2ec0624a4bee282870087e080ca85200c08feffefafb63e13aa1fa8560de2b3b1d1a9a2b7398c04df1c45bf2e6a23bf43816fdf4f82e0442dcdaadfc6b7c65f9fbbd44c93b47fd816f42a116c3c3ec6d78021d2d4723b7036ed4340c58753656dafd459d3c436df34957f9e43974bd2ecb7de3d2adb9fe5638477ea83e718b646af0b55a57fa03538cb4efd56e519cf8d797bd29386a7f3b0f44fe4bcc886c1f372d7e3641b0272727c67bc6da8ff85ca7c4591b521b1193d8931fc72ce9f3a476044fc3b5dfabbcc81c1ab8dac33891cd0ec99e7113afb59c72bbdc26b3b702ec438f652ccd95c16fd5fe58ef66360b2f2d7cd607379dd05ed690a8b9260511c8542cb45abfc081451938c3f40cc902e201d5bd945a0550c3b13f689e3627021fa20c184a4effd0892aaf2550ea4e9f505ee63ec283acc2ac835ef9c2dcfd7f3f22f066c457c0ef89c2034dda07deb9f7f113ea9da3fc0590a87f5ab32376f4eb189bc72103b89697cfa02a1ba29e2578c1ec6220efb011828bc22d8b90c377581a2042a5ec4b9a777a53d77c01a6b5d8250eb10604b3d8a025667e24075d6a55e95a0d1d7de9a9181297f57884ad37435fe5a8cfe95c4f20f23b664e8e72f011699ac227c9f37dd67fdf9281ee4634260ef556496123b76d7d18756f776a2525137ab5c22afc9036dd24e5e6ef30fe398c217a863dcd369c0b30d0d700aa474efd536f220d3142f43c5a58d768d8ab4f04fece6cc073deaeb48f78e0748b0a6ffe2bbe712542f2136233c3e888daca719e887484e0634578d041349493bad57e0bc0f1d5bd81b04f083c6009d19b6b112ab0885ab38bff921f2a2183c675822c70f14078ce5e917de545b4559d4a8e33ac24b248a1c74e31540f5c84a7be73058ce0298bbb6364f72ce5ef3f5d47d02e0a800445fc90cf12b67c2b25321e513682a88b64665bc778b054543de4845e481931e35d061eeeff3ccde5f7063eb8ad5f2c9b79c1a21451d70ce05af42ea5d43ff4cc5655bc0f950fe25e1bd3b12024455c182b04298c6cb7168fcea3c2c8524deba710ebd915741fb729e44cc997c7fb1aa6ec65832635858bde0cee87bfb279d0dad918d06aa17f6ead8d2cb20617541da01e97752d1af66fc342e42df27319a5c2ec2d952e6acefac872e020433f6b3363ab918c8c13c3aece78fc915f0e79ac51a63e3da5ad084d440ba162db3d1223f2b91ab2020f4b587b188e97e459c6dcb8cc7d2d4526c6d5a84efa2d99d88449a320f2e9aa62e7ce159f7109ce9da33077793fd13428564dd58248aec33d773d2c5b6b5138b6a8f21dc681b84121050c103f1098b250dc881f4138b2a0e51ca6fa9cf9f2f75d3fb2ef1d836ec9c88543344e4b1439c85745bd8566f3c6559ecabd7e1c6db7fe0dd03191b973fa59501dfc5320e3064c85cea7bc0f9696180de1b3d4ce152f0feac2c886e9181a043cdbd2de8c923a523eaa206663843d5d3214f4ee9a25d6fde7b69110a46a9cc4c0416bba29a96b896b584a8e9f1aa527d8a135bf84dc7314977f28ccb54857a51b89dd78a63bad0af77dc0612940e19a0395d5a85f03b04d65b44ee4be8bae3d34fbc1016cc2f80f666639f306d7cf8d03a156940a4ec653a0f9203058a25c34d7feee8d83b99b7a38412c3a40537e93100ea0a2752bfe5b792887bb5e35cf88fe3ddb6410ee5dc51bebd1bf473b7a0d12a66bc1c2d1a0c031af80eb86f4f8ffa1c6e7d2959567643e37ad8b0289bf5d422e6f37488872f6fa36ea3d8703d8979665aefc0f2237a755fc0ddd5da26c2baaf9769b5c4064fd41513c0fa1e72e4c36c5b041753c12e2d45c364e72bf4b60c66c7612ee558a73512c7ef05df87519ec786fad64ed7e2a096169e5904ac0d5adab5a80846e0bcd3df01aa7233812356119591065440b96f99919baa210020608c3323ccf915688a23487552d2a0a3a27e220bcd774683ec3e938c18015ca10e95346d98acae8db3b67f7de23370057ef292a8d6bb676606a32074f4180941c58cfe9a25162672f8074b3d5f6400fad5c40395ca531e369c4281dc6b20ab8f125bd984ddcaa2fbee717dd178db3c464ca4ecca865d875cb54263b4c4984022fd2ceb6faed298a2557c2932dac35dfbd3abc8575671991e22c9fe25f2fdf72972333f5be4190f455a47696cefe1982093ced6ba69003806b172161e60784981a956fe381a6201d4bdfae608e75a86dc2f202264b6709eecea1fdc5d023207585caa7294d9b5dbfd10c2504b8e1ddbc89c44b504dbed6434c6d981254260fa5e278d4b55245c8daf98824f8d62b30611b2e8b8abf804cde6419ee286a3c31e0c692ce413111ea0a9401ff47cd0dc84b8c8c9ba844165e628aa9cb404efb20c2ed67a241ea3308ad818fe088d30816229d6bed9a0ceb74d1cc0437438b1421db41d17e4e5dc8bce4b1fb0d76fbf0d1977cde26836742eed5ecc3b74547581aa81348b5cfba932e326421982ea93970c774a87c5b039086f6a4e74ba8acdbd0c8d1487dd2d37ddf0129fc95bcf9b39f39dd1a390978352b140c601b1e1a0aa39ae221ec5ed61e7038d4dab47b226c0c2c9e08a0463e124de49526dd2b89ad631749b9d48a295d3d7395956915b0ffb43b29162780d4cb111e254c6defbe80ffb149bb96251a19cd6cfa70a9e9f7e85b4ef987544fbc889d49c27999603b64d0a938218b1d485952e5cee9904031919e43372a264648d53acb675670444cc2f4ca22dd77b42829b6541c3567a6d1585504628382c0e03ed12818e0958e6ad5adce9038ed299abc91c1b503e1b089df093a82c5468d40922389c190385a3683c3f65ac36b15c8089ece9d835766c27256e10416a5bb5f89f831a12bacac91cdc0b0a92eb3623c82d7edcd2b2e3a8c16c10f02c4dce1d7ad690c9a6ec3f641770a724af51c3c092d7368c2cb98d863d8872b3e29ec92d56849dd5280e81c4800db95e6c761aae98b086e3cdd3b7e464b6ac73e2f5cca8ffeaeb7263cdf657aee4cf2d23bb02f01b627ef62433f968774207144c32e7c4053bb196cd347b6d5993bd34140b22ebbc94f2dd02dd7b8de3df33d1af48e477bd2ab45a912829b3f54eb47f0a73737059a695a68a00c6d57b3d2bc5df2b88d1ab375ddd270423f98cea2453c889570ab545e819d0b83465a97f55c6add92bb2a5a6a26dc54c19a632ede299e967869b1b3e14744d822ba94f87c98681493675d77179095dc14dc2a60edf1a50f38e3e519130cabdf54d706067dee1c0e0e57ddaf1f8fc49cc296e9af0d7d026d23ec6db4d8be3bb2a5877d92d1bc76d762c0fc9ad4aed65c32640bfafe93deaf3b95dfb50b1dbfcca42928ff0e0c8202f2c5641416da8d6a6d5d9005e5f5b09eac422fc7dfbe80d50ab08913c07ba9711d4038efd348046f18e89d04b5dbb5aab0449cca4d4a19ddbb8738f18221e8f6448bba5cb0bfbd33d493eb8a20496c2d76171df393bdfcb552b4f9aa5f980e45cc8c03bf590e342a84165d92c13777469a438a1628ccf01eb4dfd1e9a7eeafe1c86fe331c30740e3be3a2e071040a144067e8a49080019a93b844c190ed19780b0d5d206a17144609fe75af6b6294b90c4d5a6bacf860ab52b65d8abe433afda02e948d36a2a1cb619dec4c55a3470c87de5d58201aa959e0c6c43becc1691adf9c78f6e181ff6f7b9fd301965ba72b841c091e86bb780ad9750c40df9ad639d264ad2be2eabb8765cb9165e2e6a829e718bc6ad498b68e5ff2f52782203410a1864965fe0e5f9cbc20b9e6954b3d71979d6116b2d9dd9fd4e2ae53151a375d21a241599a5a10c8cc154ddac15204c8e9d88104faee2f8bd9b616b688f6542ad8cb5fe9b10fd658b8578c53f455fed0ef00466e42a502c1196e4fce21e286451a244a7cfb759b3b99f20a471f7dcd7e0fb2f593962c70c0faf55f283ef7e9b3720033b97cd978905045938386275a3f0ae35ff16487b8adc064032474ae1b79045186c635b241ba5ccd6dc8ae40d05f56b115b26b6aac989110fd42a1971955fb3c1d101850b04be3326820fe9d2be7633fa2cffa1f90178e41ab859bdb06c3332206979c031240362dc183b2942d1ea385d180123fb2279857c1c3107e440b7ed4115e4d0c01382c24425873c14566ba8b26ad57d610a8c25a91753c347e6610b6b46141e70a745047f86e29afc57e205123471465de87e8eabd108d5ec6c973344103753d606b0a480cb23ca5c613b203b4e8854933d0aa013f48b96039a85d690b360e13a80e34284d5b5e45868375bffcd3790142d8c3f813e951bdffd1891fd337e0bd90bd8930948f1d4de03189591d6b132199cf3d1ac95f12fb9c3393bdf419b47ccfa5a8c1b4a558d56a5d076cb3ea2746e184f62a831682176303b3231d18526fbd7946a9f73c2addd7cf0209c6d7d56eaeab95ffdb8d4de6be6419f3100dda4ee23c2c9ac7abcb98b0b990de6873fec908b00e4b8788fc15bcebb6ac3d09634d682f12c098cb49b08ff2ed5c69677c50272d00e41523fc9db6c5a3da0a5f8e925b81dc741ee20d7554218d9cf53f2549c84970e12ee2a0dd0d1a06a0efca07fc3ba62d6677e7815d4d81232194f8942d746549cd5cb06fa116a12299965acfdc20e74d66174840f9a02825b83913f7c8aa4b3874f144c93415dce21087e9939c8ae7e34c84291295ce350cacc5dfa757a34c17d95f915cc79542dc2ff374c023217d9e2f02e1d54fa721d977f58ad5e92cc417768a3b435bcc90d13514ffe43857d8e54ece4575fec18c99021f54bedd298565560d246dc1b0057c4e3f6a57a2bc7f6ed4c597e2984a94b618c55c41a8cc0145cd0a2828797f721c59079268fc33c72a4a8344f204a40e7687c0a33c7925c2b0be558c1428fcd1e8019603d34a409ff796b86503017544d8ce1ed6646e82325497dc7e335df9e7c184856ed9870fc84aeab5b2e490b980dd744e14518764c644d88c2ff60a32ceb8cc1e959b590f17e5b6b4fe8d9d023a287bb9d4b9b537ce187c923439dd444c935ec5350b6e8e2c7cb4ed14b476745f2883bff70c44e6f0b454748f449e08ded616765b3c961a889ad44918c927c545e44ae66a31ff80903777b4773965f7521d6682167425eb9dc8414e35b68dd66d81d01a99abd891f93f2280490c03da91ef83013104908c58996f319f8cf50342266a67957e3587da0e8600701edf124894dbcdc8f20ce15cfd8f0e16c3905d071a269e73493c71a0ac0b8cac929cef12454a3e4b6290c91bf81373280ab4f2716263653e234978511b8488e2da0669d367a361c836b581edce2610e80162145e26deacb8a4c27a674e0afbda09c90c554bbaf2d7ee39b0a2abe96de11b1ae994070475fae356a79904a10830b74c0dc95116c1c0c58584e92f98da6f4996d926f7f162ad11b11e33d4c78fe4bdf664d2fb5d6c040b0be4a2ac2774082b40d8345400f28e186c32e89d3c449fa3243ee66b0bbc4815c692755903841707b932d61fd3a8b4338d2a0cf4c54190137f4c0b74771fd52495a0a41b80b9ce0cdeb4202e65ce6d76e79566b4a563ed053518a8315a33b40aadda489b3ece7ecffac14f331afc8700549467f644b36fbe9515051653bcc9e1f8c2742b85f5b656adea215a61f4795695188fceb85522ad573f11de43aa538569235c9c1c5a813cf645d1277535b83acc558fc7ceaf79c1c96ac1645d48fa120c0eaf78f74518f704c875b0121574e1d9548537cbaddc11efb96471edbb26759172a4b819c3bd4afab6d44833e3d4460d8d488cd220a36e7ed05263e1bb185dbbb5d9a8672c8e81bdd5f774b45287f305b9c74302055583ec8263343fd5e9ab440f158104d8803bddcd3134ba29bac52e740a854183417b1336becc717cfde120e49519f996bf45260cea27de2d72e8741012d7fe995a9e9b595b3a92a49d86bf16d71a157c6f7d7e197b0af3a7edc8069112587053dcaa0bdd05b885efe130b121d02f68b0b13789ed977f4033fc42792b87a2089bd79204b2cb93da643fc059a8c5ab610bcd6ade67e36ff1e6a190e8ea85b1a41cf52aa9407d922c90a80e856ae36a4f4b107e9b2083f838145e61a1d58ee44590ff840971d4344789efc55ab6592d49163a5e1761997c92a83f0cc3658a28613bc2beaa4a8a13f2662a6e6c09c5c28c1132f6eafde2b37ac635dd158631f1f293a8a07e4bb355c87e2a641051712295aff7ca50e5ab3d2197dcf4d28db5d6a7c4939e601707f6e22d45155ccf48e78b1ce829f10197d258ce8a9be19496c69694101ed4ed6c5584cab229a554e1481f1aa1d9a8e1ac1a93eb147987060a159164184578ea802ab18ca9b2184388959eb7da0c6efb499e69bd871d8ea78bdd1c1dae9353446143ce21474b66c45ce2e2faae3e7f009174e13e11b40e549b74d9d53ff3fa9f775dd2d1231b5f2ffd1133510d00face403c887e1e960e39b35744874ecb3438ad6a19a8decf89be9a72df06475e14ff6ec7cc146c0a13eb73f1dbf80e5ce3611315c2b573ceb4f535208ebd4f5665bd75e5edabd49d936f1e89c36a53bd34eb5d3fceb561364d2c51ef1b52b5eafb7d520251a45114d19489bf5810798563b763e2e4ec2e6b0464f03d9747c930991d6dad9b8a823a3ae32e47d10cddb7086c3199329e69f3c2e7484417b9c1a404ea59977c669074a227131c622a853c61d0b03f3eab6b6210d84f5602f5b18f8b56485e4306be2344f682f74af0e9b516d084e309398b64d247246d6b1c00b358c2957c14c8c115a02dc48393832aa4bab43a68643812ac5558d249243cf717281e0bc08c71a7a68b32e7bf7ef1a10b190ca799f65b0b56f7db56730e8a54769f193fe05961f2e2c2b12a3c5f02144e75cec7724c2d91ac7b022d41cd0ed37a4012b8650dd5d3e238e9944b09f39f1687f8de8852c497ba4088710b0d092f4549a04bc852422d2c5b583197e37c6f4810b186ff841e08f2444314b05a6de50b6d637c7d2fb5ffb5fc275db688973f049ef3020ce018537d8cd5fe77e6e80c2fd598df6ec0bcada373d06b63b9ec81f9ee7f13c05b64240cfe42eecdaded02f32d6d0058e1fd27d20dc370a0068d4e631e0fb33594a2c7445d5c31d95427bd9fa16969c5b4578c42742c23697c22bf75ac1adbb2717585be2684d003bd7641c09dda218aae3700ccd9c1d66df133f09083f775efc520a1ad628679a5a0c120ff0932ed96ca7aff58f9c48ba043afe78caa2631bf9d49ca4a195b37332172c8e9c107503d6c97ae22377473066b389422469c4231d7fcc7df7016ce1632ebdc97322ef2733d9fc5113e2082a2da80035a5c67d0157ac371200e133ab41a65609035b5f8072e92df19e13af235cc057d2f9850866486f4ded0a04991a5db84349bc88edf6a1c7ae0278fb1f78cbfafbd642576d25321ad64ef72200046ab86d749b883813eb29937d39e3c1562589ae3ad02f574137b43338182640640bc35be7e30971efb3880b8033cd215ead43fc185e4055a56832231b7763fd05a35acb25d1ad6aa29209f74c358725d99a099e015b39e66f85adb0a522f85c7b67b767989758c2c58b5d254476d1ce8a5147ebc4b6a1d5c10fa681acbe1e0cd6c58c58f78654bc52931b179ebe242a6cd9030555061583fd7932f4077cccdc80317add07f7c44af329c896614483b268c318a6813c235582eb89c115207950e4c92c88478d2df44fbb79f76a4cec5d5caa48db9a4f8cd9d5d03787b8f5769710d62f18daa958a41078de86e62850ab964c509bc2bdb862b8cf292c5746911a56dee64af6e6019b74fb26366199db108cd0ffee026e0a17701e1ff4ac0f9da17d1ad7e891dec0674cd20df551b408377ac0968fec59b8b91ca7a95b42dbc09a190e34ce574bf55d34eb165aedc434bd0b5cb1a905143a125013ba98799126c0f8992206f4146ff168baf988041b3244a9564147cc3f82a1d543a2d4bf93cab89e0d3e6966339d17c3d194289a2a99db29eb4c20693e51db5e15b83b1b06d069538f92e9d2146ccd58c4c64eff90b6205d1e53eacdc7725a970021bf798b6670fc27750833e7061d05220d75eee3d565d6c5a949b67b9e2f9fd59dd75a92397a100e80fa80d14baad5315f70ac8af6bb85ebcf6286db8e3968c29cbe730510ef05fad48556c2cc751d6b82b441b55cdc128ccc2ea0fff20a145bf88c08588ad96f5117768cd649b15888812d0aea72984d0b345fa6c9b190b190a0a0cddc11de6268eca5a2239472ea17700995450ed7ded332e00d49010dd6fc484124087759c7910096402908711829e836c9bb111f6cb77d70e2f7f70b2e59caed08c36045359118dd43881b5c5ce6c668e9d22d0042118a3f9079b0ad8acab4e245f3454f33f1b50354d0f52fa1c1a4d313978c7cdd662a70feed4dd7d1b544816a8eed4709c6d8b54628474239b01c0ec211cf5aef80a9ae2a3e85a7598594bb57412e63b7671d896b0824aa07f2d8df342080c348ba70542c45e21a316bf5bc14a5e9d4434a09cb9574fdce655b3c2719c1461fbafc25d767a347f57646415413bcb16b3f3cdae830ca6d997b5e996c2f5c675b84626235ed5e1762a110641a9d3b2611d4347f22f0819d02184d6b9ef89c263a210ec00a0b46dfd2a7689217e694e3f7a840e91c74fc8841ed79eb143f4eb53ed70f2192690446489f526a58b7b218509a6b7e4428ca81fdf7914ff137602b239279acbcd8a386f03824a90593c2fc2b06c424bb599b5cebf3301a16ec255f470a1abcea80bf4eb1475aa6fed693a80ff3373359402c5e39cbef246e74b06d3d5c04093d2cb9a3f3e02e8db75e24afd40fb233235f1c168d5ae64582e172ff3ded4ceca3b894ade17e6329aa6939df852e538b66f2359fd0b6eef976357ebfaeec764da9e6e46527ff81cd9c08fa5f180769893b68c8a023a0cc71b70c7ab1b6fd054161ef0cef661e80a7c9cd1797e060c79ccfdb855cfcd8eed9f334ad2fed83dd5459f237d02e928c556b08cfa4f4eb7f9932eec797c19f60120a1fc911c615cd75dfaa63a826dee1a5761766c1b5f65717bd334d142e8349f60c1a7029bc5be6645c3d3dd9f0a8aefbfa6dc18714678d4a22b2eb1fa11f71369a5227b12d671ab67796d0177dba1576b771d79bbe8c845bada66d5f6dc1ff6cae6ef25d42119d83edcef60f0395cc4f043044be092c8be725a9a550231ace06c72ccbc0a4a386e10621891796963f358f5463404a56aa58a5d6cc1341306023bbd4795e42d2391cc3cbd97192b4df715faa8fcc55e122c931bfc37073d096e0c07e6746f2cbd4777094037f6b126aa99275b69a59b786baeac3b0c3dfca0fb8546916430b77d36c980e9773479f7e0671331eaae002352304d79dad953709e57e3f77ddd03c53387a1170cb34ee4f87e77e2a1f0bedcc46660cdc0654d20b4fa35f50c01f29ba9ff25a8a7f67645675635685431328a6cd731d50739d360c439f2f66ed3ec9e56afd9e39038eaba89c8c9b06b00696b1e00f98d2b45e8adbafd89997fa9224ffb3cc5c43f744b798dc9f8c7febab428ac68b67011223782ac0a99bd246c5251b4682ed12fa758822fe7cec17a1fcc66d27ce130be08b1c9f17f574677b57d7ccad8b4d2b7db91ed8fe50b47d7bc5600666395d07af43d8311d53780a70ddcee1c189357897cbe7d71ef9af0640efc7ea1cf2786534107230fa2a96e167adb64ca786d0dae0bb4eed1690c47dd321aca2171ab41d729e35eaa98c68471985314dbaeb675e844423e21cdc9144ef4158d79c080575059cc453205bc177e431bb82c6464cc8139a06a1e51f5072f2ebb54b3c5baae31c50761de0d474187b3be10134ba6d27840ccfc186bb39cda4b9bada7d8c079d7283e990bdc434e08001d27bbc1b6cc98b1a656b2c22671fa888167bb80adcaa71b703b0a094d0a28f03212a20968b217fa849b70fcaa9509e1fa010d187c73bb57aded3fd963706cbcdbfa857994af9c6fd55a7a5af64023b41ff694904c562b4a82ec88cbbc67484a5bb661c6a6a8d11b95a3309083b55e191f55c327e1d0bc0ad64a1d619719212f439822296312281c3fa34eebd6f49d0adfb4ed31ad9d1621d38a5044e539f74417d337463a1302a386e5f32b636676f2b41282feb41a2a390d655db0f955011a9e82848ebb261ee2459b20cffa492fe631f4e7b829e37c0cb9b35247b7f1345fa4860473073bddc34aab9d1325fdcec7e9977b084329f5ff71e6c2167c78f636c25cacf58b1ce2fc15a8b182202d5f8a454af6812100de83d17318ccc43030b15131ac963714237211e044c29d189529d33aea37253625f42315541b04c76b2e1caa58852a5a6931db45d43b324ded3dbd4e9b3d1ca9bc0a18a8f1d3d380516202664d162e0ae0c98b0022a2baec3e4fbbf6606eea003323b99f3bbd905990d9f9da135634949e89a1ac564a97caf06c8d9a178a7c187eae75ce0dd992e3b164da1cae6d535b7574017359220796a99a43c71c8c16e53bb4b8f7a609f4bc090964094e390e1a1ceb7b5af3e8c7b69325a2544bff86e30aa4916550fc75ca8b2567c15516e06f4450053d5d2da3abdec3aeb4cdf418d8590b9312e51eb1fca665aee377dd402b44ef308a2919798b3a6f6de67dd35aac75702737384469bdaf36f70f7d174c976b9ba50cfd0d3c0668cbc1ab4288b519226a7ffd2efa95af54d4ada71e8c847117efb1c97f5515e82bcd4ac58f92ac4ed2322345cdb3f492adedc0e06008866c932dcc6ff7692b6afde526189629ef4b8974458ed9dfee919ea72b962fe11469c98b74ca601dd3926beb7dbdaba03d28d880f9d9ffd28889fbb18857e4c82379584771b6a9395a38271b6dbd49101eb7fa8c3687fb04a1155301eaa90d10de82d6833dc8594e5bc9ede87d8ace3d17c215e9bb78a3e61188a3fbdbd63be821725282c64a72bb32174dacb68cba9052a2ab6f94fd9da92b063b204cab888d5a2352326f6a7f3e96b9da7fe15b7c37575ceadab6de67f82f665096acd9b54601b7b4b12e012a93f921affd070bac61ae89715805b9ff920e9bb7f996895b6ffa34011b0b9649a14baf41c6457cc5c0a6cad7a3b4c66f26cd6e9087ffc4c60a9d7b00d79912c8246c48dfebb7a9d277fbe64aba5d3e2b9ab1216c2d8f3e2625688f42c0c6bf9f722948312fbcde172634d7d90d0cb6742142a11e024a1bec612292267e115d3f086dc2a1f6aa2eedc8864263ce581b35c968a0f466d37a4d0385236138d4ddba2c2b4124560e5ca5c2fd3e26bca74e66132782929157180295885d7dc9266e923a6722beab7023866ffe2ed4abecd692d8d061109e7fbdf937f3af8b53f7c1ccda76d805831201e17a5dbc1fd3f7dc65668df13bbb6b9fca9f9dda8c11c9502231c6630c89125b301b18f20d9ccf6855c9a683f27dfec380207ef11c762da877606da09fd10d81deaf1cefd6359fb1935971fde485fa82d9f97ccb72174e9d52cfbb5a300134c1b85ceacbf0be37092d07e13fcc590a22d303c90ec9fcf35349b3bf515a0715ea7ad956fd05ad057c85bb1d52cac8f7429db8909d58a61325f87b473387c798c4bef05639c16416dc60f8f9f0b38b25d28d5291b7db8899a75a80192212b2878ee7bc52af84fa542e7aea8caa84e1e59019592834a01f494f93ab38b9275af37fc3806cc51b743b98c0de141a605ea13ff844ff731130c0b4546832400a24099def21da7d42904b5a308327754d11a63ceb015948ad5017de9b9bd257ae588c0a4c2e1d4fa4b1edff6361bc27727cadd1cf2908276f1d8e0a27da5bfc1fbd06096928b7da4a82acfe7be7dde7ca752339c1b42ac032b8bbd1bdd85eeb98443a3741bd7f6b53125a94c84e7c6e66d726c468ca7586f6971e35b641c521f9a6404d163b6a7b09d48524af4480709d323dfd4da30c57417bc6930f775e3d61000a46804e25fafadd96f81d827d4fa477899d8daf9c28c234ad13327c5d736ff43f7ca35152e186ff2a585e277c2faa35aa1bafa82d5e82ea295dfeb316f42f5df11643ec29f7899359ac9ccdd2763d9e03dc7d79bd97747678a6946c9f7431fb9eb6b0bcd9624f21cca6ba2eea708db82d3f07c42724dd45e2430869d8145cb8ad8283c54ada8666789e548a969270acc7c827d8441d9eb6401d2ead86f88413621466f31d2ed548c51e38ca3d32d2dde772787853c1035c6ceb1f7a945dea0673014c49af8917a4248288a8d0037d55db5db2a5aa5f0d7e4aeddadcb601d8f5f5485c63818ec06ab373402863dee6da01d12c1b6a6ece79e8256620445fefca5231bd7b47ddf1dd79bce38c29093e1d1d34b7810e4f54f046f998ce7bf48ddfd5f9d2eefebc01b3b3e24e667e8129d589c93855629ef2aef8507a31a2eec61264692603dd0d79d580248845e36ed82014192020e2de4f97621fb23da1153746f89afdd6d63f570d8f4429357a2699bb0dc1d6f11e9c50c0b020fbba58985f5e11f7909ef138678ce17e92ab5058f49db1384995752695bdb14889f77961a1f0094295f53e5d7f43831f0b29853a008ebfeeb1abe9ffdbdeafb91a35d7085887c1537c8fbe8c2618b4aaac02e6218d219f273f83ba959a5ccf710c2791639bab8122520de374e2393ce6fdf2c6a37795e3f4e68ae30603c68a61c0daf277cac68dccc139ff6842476585acebe446124d08996fc9838554c34a4e428194b7efafad88525e57f5208a3ddb6d5f90f09cbcc994368d42e3c046020235e25e707d58b45f04e84aee101eeaaa1a342a26672423ff44783778037190a6ec41a0668828799a2eb43f41d26bd09c87b708b9a4b304300caf6df2deec8c7c9d0b25def5e4af3ef2f895e3774c1bc6780af9c8399edc9f85e7fb09ce65adf0a630a9a49a4e778bb63903a73dc083cba30c08c434dea1eb2dc3cb6138508992326bc761f6e9764921cb90db0257d7a59a3dd3f4f156d2004725e2ee9ce3669a7e33050972f270e367a6491f156e51cb342955db862be85fd77447f1456e197289729e58ce9b238562dc022426cd355f6932a4525b1633cd1e8d659ac862f001c43baa50e852a6e9caef9b7c3203796ec569a78d17699cdb36cbc81995b3f5c5f7b24f29926db38c1418ddae0661190c26fa98a643c107610260674ec00abe8c09f9e936323006ef75b582a2f47508526580610ea6c63451d7dad1e95ad8a1feb708dea296f4c73095f0946af94542b2e5d6f78463629907f0791029a83634c94233b70613ada75039553f099dda1c9dc9794a509eae99fbd74940f679fb491fe1ce7c324dfafc5133e62b39ad9da17d9f9db61a41adb3aa4b80967da6c9117bcc3aca91712a1cc476da741f71f2559a260024f952eb983ac4f3574b8c00a797695a6edb31932fd3dc4794fde3ca227b571b405b9d0515dc3e73045dc9138bc0fc2c1462e661415a736e4dd9445d301e6fb10dc6427ac117f48322ab9477d56bde60d304244175b69f70770ba46bc7b782a6b2a1f7ccde7147e274961383e77d28aa0b76ab309d64e68048c40aa7c8d81408d14e70b820479b9c4a492c87fc5913d06377464ce5810cf07ac39f3e84661f5e4aa3cae6cd397ec8e685fb182afc3c8021d86b3b3cd89db296b5d3c74f55547d3e70329b464b7716d411f79a54f9223ef39a86f8a90e9d2c2d3d8b19666ef2c1f8d7df01427b92233c8b98a72c72b55fb53cc95078cfcd169c6c351d8c357aa0af8731a5deb8db605226836840983f4b0735b07e549533bf8eb1b47d82275cb82ed59fa50995d8502c214aa172885c339f4170b54c5c5ec484c2d8deff1d85cff0228f19a73aad4b319327bd9aee2593dde8b5880d27fae6123189a6f3a4868bb995741e912dd3a8ae0be6d3256e8cb13b47ea9b3bdcb56536271357711651e1516b8781be5b7ccac8d9342d295661d06c2b3c297623e16ee0fe7e2fa180ae33c4fd7e5aa053b5bcd29316bcd4ee692fa6bfd5e2e2177e5dccc1a3700c92076d664c30d361566ab7675528cba8c5b5ce250a91a02d8c0a4cd2bb41005da2978d13b81418325a5f9f36b9204de9e09c6798671725ca113a9808ced6541705a158248930a53e2d3440e7dd785255c0b398b45279ee20b8fccc8e778d196b0add6c142e7508487c82028a0dede70083e4df88e3a2a4cb3a44a1a88cc92987d52c0723e7a4f3a6d311f0f945ce544e847c073ea652f124c92ee55f98295fd943c0220f7bc83c8c8af666042ea2e051bfd2480f734aa52dc3b43d37c600cf5a5d14da6e5526067db0a81b65d545b28680567c3597c00913f3c8a59342b39f44bb184e0521483ea51cdf3eba2f5a08dd54ccc82f00e90848b7247d8e3c44844cc9d15962e1ec35df2fdcd46903229642583736260bd0e20ba0768d529e1031a320e6ec246a09dd59bd2c4658b5376e0b68c41b3c20a78dffedff6a8eb36185f08735e86fd0f0b9e5a8bd5658a17d5c59c98a1430d81d546817f01d39cf5a8b16a1900bd49afcc42864cb0d1b4c8a1bdf99f603dbccb6d7961c77272f96644725a162e3066dfc80d07fa5830cc9482f9232cb928dd8602ed137f9d0c200d9a71d466083f3102ea5d40276584606fb1fb79ec3866876da6b303e9e1fcbd9a2a58bb040777d96ce28ca7776603dbd1b4b722c4f4749c1ca66511f3a9d937db6b0036fcc00d9ca5883e4a01037beca521d1ed4a1d1d6049589a792bc4b9571080125c264336ea99a96300ddc67bd9937b7b06f45a8fa64e9632d4a29095cc81f594b6163661d77facc0327ad4e3289f66e1f3bda55d2bc42a48e15132c0c6aab1371293fffce4973df7a3734e3dc83b564aa0e3d5129887c067dcb6252777ab8285ec87c540723b99b3a7b2a5d7484539a7be09153cad54234269b96085d1ca168f697cdf3405c59832bb72ee8c96f99e289a3745d109d1fa20107ffa8a8c5db9be1f99598556fba3b0850465069d50826c592b6ba520d52cf308d2dbc7cb8529d5add166147f7cf98a94e26be227880b29e38c13793e603a04ee1adc7831df9d65664a8658ecacc4ece0c18616a75ceaea214206e319df5d78ca1105b75374158a5d9a655190e332e027743a5cc68268c75ee55cacbf3351fe2d67c9225381b9b496d4c8c828a3f39c1c61b10f70d2be5db289afe333da97d1868586671177bb9a77efcd22129b7789ae97a0042edba2b3a456f41ad624db393d12a07cdbba8c7a53c8ee9516145c3571d80e0802eb54282d92afa64ca5cc31a15b156b5a1398686c25233a35ced1f83b50202cfe842ff257ae33bdb30482c47d365d0620896260ac01da18ec7ee77d5cd451fe716addb369da49f8ef09aa25f532fc564229f606260fa270723a4acd84b01e39f68d6fec970675bd27852996140db5e646d39f654edc67110b6d4302aee167a5f785b09c20e056404a3f00bb3ea0052a08c50d44990e5f60a79f54aed7ae0519142f957d36a3f653c346c74af401ec348065117b605d587d7ec3e0ba750af670acc9d4ced4d08292f74dcbfbfe16c6d02060d74ce80c19ecb21691d508d04fe383c3a4a8862fec6c495a12d689b4edb48b0536c82ba5fcf51227d1082e4111470d65a32a005a662d07728f27ea4037a9292a62ac1b787ce42378cb99cfd6039015df932ba88fb980e668e7080bba88d71985ab44a7cc69820a174d150eca4ca9afa9c606d20177476ae003423659f960d68f8cdc464b2b00449cea508e75e0db9f629443a5eab46d2ca3551485f440a396b33fe223cc0e11a2d8f8bbd371660792dcddb1cadc6ea28f170dff2712c8f18ad6ff6e2d90098680e9d4a03a2f4783c3b8c43e2c9b2cc1b6200d67c9dbb843c90fc8bca140b2318d16fa7afef0c7e90463ccb393d7f1f0e9e71474d80ddd110b20aa8a381ad33814868ece56d0a6a6e439c5d833d473c08106ea89c8b73d76732e1d9424bec2c55a787547a9ead71f3fd3b394104f6e2d8e3a4bc2688c5fd011f185250e1706085ac941d6ac95e04b976fbce7dab4826a829fadd81f72a90079ab5453558cb6995ccc4b2d634b3f2ace259b40238cbd0eff762dd5218b01fca309175eb12d9f3c14081f9d79c1fc0a064ac63decafe0e8efd35355ea86c7009008a5b1d08bf579c24e810c86d3a1883c41fa0f069ab7cfacdab4abff8e111d3eaf9e5647ad68da8c755ea225c06523406b2980f171d4e5804e435027b3c63895d1e57d86bb3be1a11043e46d50980b22a232305ff3e4ae87fad9e32610b37165ef0576412fc89ee14821559054c8ef6af4c02bc4f43c41e3ec3782720dc6203e580157ef605b6dbfbee51a68a812324e3c7190015f706b69423a87b0cae4ff9ecdd8434b446b017b25441d1e15b01bbb3d2b555042d8362321994a5bdadeab15142f17e787f074a4af7f8e02e39496d741a4a41d3134bb09c5c76087648da8b33f66c5719f6aea16d7b425e9ff6aa60ef15687190656c7bfc126d1cde18a1d0acb805fc8f79bea48b8a367a382b39b4df661b629f01842cce4031a9f4c61e6eaefebdadcfa37c490d5210c4107efbc9adae024b9ac38e56e1eec3303597ce1a992953cc7f2fd6a658a273cd68b63eac543b75ac65b0835e383ccd14184858a76817108bef29e08ab72853c3419974ae963d085781d55a9c536b2569b103c6a9a8a2b2c55cf708f692ba6f179813598ca99758477e3b1b0b3591cb55d1d01e7a5053914574736c805c8d386fd0117ea43af3376f60cf85fae4b72dd21b619b948a17f15c2f8e59d23c6aace038254703cc43e6aa538191cee1b32df8f896d42fb2927cb2f74b3366babd90346cc2b947ed71e72b4252ba83e83f75ae48fbcdf543cb2ea890ce8f652d080cca0d232aa44d191f15c3b1a9912da856d772ca818e10e4cd22f660f7f85d6771e5a6093ebe47e522934c5fb288478ca20513857f2388e8575fee024bc3be9a1504b4b5d4a8fcdd51a279a94e027a7dc61429634083e3b10ea6fb459a8d2ab8c30bc89c8c6531525fc42fe58b6ca465f22507dd01824b5ff105797935b7c37bf005d330a80ef335022d3949c28b7118b184184aee83a478b10d1e44e71aa393cdec7d479686256fbd8bae02890e32dd27e18c905f84d82fdc3fe2e8724763e1b75cb16779acd8e608281e1ec5af354fd23c6bf3412dc7edee1c84c4f5f859c47ded62318e76ef6c0ff7ff7d81465094f6046912d035275c68148ff0593461d05702218fb174c302258212174709769a4baa439aa66d583f92df6f4543b1f3ccdff82cb5b9dd0665e6f4792639f8052db99cde66a377afbfe4d3d0002cfc64a052c10bbc8a93502a54f8d46faac462c9b6370d625942fdcd12c74490705583aaea52d17a11e7f93bc6964105577aede35a6a3fc5fb2acf15b2078f8a22e2ad809b448920251f5d6593177b9d55486f7eb03f7517e09c78348b532f89e658d05adb7e54f6da4e15fdee4ceb54a175ff771dc595120a9f6d0197a48ecfdd6dbb9006d2c7aa1185a4bf88df96b3af2339540d8663b7da56bcd6426b3b49cffa9009c5283b25660d3243c83c39e5e8d84abaf6a4d71b7b50499a9b3d045a6dbbc3c70a23228a400e9fbee5f897262210b5122800de9f7d0867fb2b3c8377deae90127b145395694f10b824dec2f63cbd2610ad30b2255d72025850f2956c4d000b0651b543f146829497916dea58a8b710e59d9075641ef7b8a42b0d90087be152f015f116e1dd4714bd4f383602a3e0049c5abe3c081ef49a444a527e1bfebb9d5ed9a1037aa2b797ca6fd8b57f6d834822db56849af0adf0cc27142d75f83615300bbe51d8d5c4717e5b9569784cb76040650f4448aa4cda3e20a1d2eedf2e939ef154d07ee8026244ddc11cb2d2570e69507daf9e574d208da0e30995bda2e7248ee670e8d088827027dce9892c912d91cb831fd907bc16d5adfaf9ae3ba513f8e7b9d8ef3eda43fcec8b14c0bbb52c6ad88dadfb2e0f1ca9d2c78cdeb3e01665da7e82656281a8eb84df8f4139bc1f32f76ffb0973a5e280adadf1982180cd22715336e00b642df207a77b199e4cfc2e0ebcbc63f0677cd5e7a8a6edebaa3de8c26c01e83e32d4275013f686f594c378c88417a2d9038ea2a7d0195259b678a0c415ed5349316b5053a6b697e3a8226bd7a58b90a9e3dcb63241e4a7d150211f321aecafaccd28a36d62518dca412c3c433931c1c12c4d4b53091e6df223d3d25161811decc2681101e914a9086f31f43822c1e54a5015978219ee3e7b810dec753123edb4239aa00f88943136499c5e846fb84689b8de0bc809250b4d6e69ff2816124c0068c29c296bc40967215c041019882ca78afb138c344e47fa8e435d76f320e6c7aec646bfdeb8436d0adfb6c0aa3aa83c5f24c2669526033bf3b46864b577e2516c70538a2d32edfc092ea60bf33042b40693c34297616cf752ba0d850ac7d22b29e0ab80605e8df7cf076d2af4361b3ac5d514d2b5164c9e656b90ce6ad292556bb13191cde9832b6fd83475581f130bc08b3956bc81c194b03e482c8028b9c22d44de85338ea7c6117a3fff75fdd521cc483b81a8be27e79b98eb915f42dd91327e65baba4acbea7d19ae82ec5997f8738fe18beddab13d9e8c2a952cf472fa184402390810858ffa19351a3b30899df62b21bc6f4670e3770aedda8004b142e87c4dd47399201e20dba3897c95c92328a1241ddc89bcc3458c5a25e80850b82c0739846442df22998a038df454ba8cbcf273c70f09c238782a6eae0474ac2211b093199103f855c77758a78593dfe918a690340d6c4b3935350ef02a8f6e2b490cca12afa9439e6e7b38d9ea7e7a6a40230c0378f5faf44656885f5d775b38d3044e4e9c8d474bb0a540fac7d849868d50af640dd766b465fbfc66b00ce1f2f84c7ac30dd696529b79a2b01068e39a9517e0082011a0e16bd95f9b2dc3cae49438377e481071d378766e2d2617f6e8e2de9d58c9eff9ee3fd51cc8c2aec6085092daaafc8f857e770e1b55b7ec9a602d512d72b22c72a927aa5ce4cf2adaaffea676c868aa18a1a4feff5ee99f247d2d96b5aa1b3d3983535f0d5fb0a99929f6fee8a4977e4ab7857707bea4d2ff81e37d961468329ee810e35460272764627a53f8a35af140f4b96ba7d308903b3824262d4797136ab8921ef5cfd56f5ccca50ee441770077d0ba60f7ef2accbb6dea4c1d2eaf08fb8b92fb273dd03ce986a0131ab110b8bd887516601f2a09c75e027bde2edf341de16fc7c066dfe583aa636d455f7aecfac1372dc4b6fa56cf71d27afb3c7d04b2ddec05de60841c8b659b51dcf68940f309dd976f31e14902b6b84e2a7b5ae857f713dfad2eeb19aaaa244daea56e16528e7fcd1820f510ac5c1362c441b40471a483c8e256514d99b63c6afb8c729764a9566036d691841170c3b5272230217dc449b8a80da9ede6adf62b225c899b783f7851791aeb1bb711c8ba7bf960d82c4d59cdffa87c071d3220551a1c875bf4e248caeb902a222e35ba5add1c2c60ece2b91517c4d3fed66a41f8e5212ca3892212515c5c5dd886b0097d9dd220d13aae3bb1be2aadaa16c88bd4f738459a1db134ec016b7cc45f4ed10318234b529eff0e92df6b01de7a4366462c55b1acc54b9e3a4def24728fa29859461de22e8050c5b35d4b4758dc4664db2e637759165f63ffd228e78ba29a2f7a247b0040a70811537050c4aaa153b68d0c923536c89cdc5e411cb5b244b6cdc77a9be8ee48e114520e16546eb25b999cc53878d4815c094420ceb1ccf8a0f3ca16ae6dcd8b108f47409d41f26b014086159a9670f55a3df7709bf553fb06f82ac5f5d8f0a2787ad9cabc39da4678b5e5fd12de654896e0283aea87f21419bcaffe92d89e4d8a05dedf04bb535b6b4fb4ea60f86831b0d7d58bf4336f2112f5cffd0753758dc37707af0ef1a18c3dc6dc05be93701c4328b6d85c271df6d3277aeb07c585c0566f8d76497706fa036ae2481967e4219ec45535d76fdb28d16d7486c99f17588e463085f51416031d0b1dd0136c8992128dac26fb6009a2d0bb1008d79cb41e00cb1fb86ce657de8ecd1bea03809b9b998ee095af564b4200e2f0dc0c0779622df4fdd48dfeea1020aed349fc5e056f50537ffded923714dda98c8d103e07be4a61630d4232766d8b7ea8a2d23751a783dd86d6433c9bc3c2c2c735ab03e96f6b3983f3b0228ead4fc2c350fe4a5823e8da9f7219e40483d143ff021cf203deff5d94adf544e0fe4ad763ce505d06c30dc715fb46cded0f05852dd0af31025e3a25c144b1540f1200307d024b7d84c0328ab26f55bcf51cbfb909744c5ce4d4a71a8fbdfbecd5bdd5418ecd2db457212758f7c6513509bd71b99e2bb5bcca41d77a291f5fb4decc2fd398c0862a28f349ef1e0b13103c66f57485231fc04042d52cd4f01a1bea9c59499c0438f59e489731d9b5d51162115c38a8f714c9833e2d6640491ef51edf9107fb00318ee7cbd01b48097986f0beee0b6646e1ef1fc82ea4a79cadcf3bc6ac87affea5b74bf3969a4460b7989618c8831eb13ea74d304d3772de52a1ac7cc015889c9a813efbb1447fce5a22dba18cc881089e3b53f83d5aab75d25af16a2dd8cf1b71bda727a62115d018453bb16dfb65264c859145002000ba07f3c3f6f12d47f5a3c5452798f2b0517243c4c23a64199b6eebccb6ea980de96a898ef89de466c476aeb84241e3f6e2fe9c8a771bf3a0b3da9600d6297cf1109eef28651dd58381af384dae8df733f814b6151060b772475af588277c5e96a718b2b49508090d2aed83c4eaf0d9e99aac0ede969e9b5e3176aec0426b1f846d318256a25de36768a34f823f0dd59c82674cad7e4123895009fd287a3b9d9ae19d3990d6f01a943d0d6de4a5a4b99ca63b32f72c33b898d98bae3e8cee0d0afa4437e3600d7c36045abce68655209e19a503cdd26662786d529bdefda1e79a5db9f5dcdf1cf2ae91b431cd5e5b9b593b5b84335bebb0aaa04465090496c2e217de601ba8e251cc471a827a9a0f6c9592fe2fbf093ba19bdc64cbbdb7dc522699920c23082e08b508488478c907f8c61728184c6217e2fb0b47ddfe56ff28662f3983065a12fdcf15b94885de5f211c2d389cdc64dc077fd050f1fd465b8aff7383b4404b47ee26026df3aeb89a2791a473d7e25adcc6305c14d3dde45b3db7a229c19c5935e2c4e58e31eb18fbc19fba9e37bf80ae4f86ef97d398fd07bff3af1e327f488fbc3da4ebc3e7655df41759977fadbaf3deabeae5ec9becab4a54493d3e06345a9ffeef231a68cf4c444553246a69a9d27d93743e8e2daea5e54d91e4eb55f9b24fd9c3742c4ae9f7804fb3baf1cd5e54379f2bca2af60e13fd5c5101f8c67555eaad576d7fdf943c281e1c71204d6b9b36d5e0d117c8b5b4ada77174505525bfaa78a82b5eefb06bcef79212bee19585a9525a826ff8cfea5789496b7e5defb06979a87be5e868ad7fd61c07627104e99653ba30987d460fa3d86f34486b1b8eeb105695bbbf5fb797d77f3cfa56ef3ddc85048f493154287cad0874c3713d05e3cfef117ffecfadaacde7facfcbddaadcf2d01a3f8ef7df1a15fabe66abb99812720a26a45051e56e4c90a0e4f6c7ec98a72b74632346fa643d1222faf424157f085f92cbe1239a25e87c77b7f9c3fccbc7fc395f0fd32dfda076e453ef6e633a94f5eb613eaabfec463d55957e5cb7c79457d608086181d6f8670ed76d10282e7efa7cf8bf8a0deeecffb09ceed37b6e8cc7fcea2ff956a5fed5e7a51feffd4d81c627f9ba5be7dc6ffce17d94ec73a997d6390a92c0b318579d0a5ac3d6f5eab3813663804787b3d138ad4d2c62b162800787b3e16e7236308c31f7cb2b1ce2ee8fc98b59cf0eebc68177dd6e570fb626ef40c5269f3bdbd20fbffc7ed94e1db7e7f58c01b7bdb7b0e7fa7ac3c07bebf9731ec6f3aee35c389ea9b51a18e0b151c3b29a6cd9b4673174b8c5854398f9ad1d7f79adcf69f7afc227f2ae6589bcfbec10b73cd495cf53c47d76a7e7b1dd38f0aeb41b0f75fd218f304a050dba6070512f21a49ca228f8f1bdf364176297a763354cb9fe9784ddddefa2954c4072fdc3b8fe5296d0c575d7f970f7213dd43b6763fbb9fe44e2bb7ec77cf061fb21e2d7391b25f9ef319d92b43cd4e5a1eefca1f44383ed6cf06b14bf2f24f3c90bfa1ebe67598ad69a37b64e0846214e488807f293d6faabbbdde127a0785682e162ecd271aa65b59ea58cd85bde334adfac7f59b25c1f2bf6d2badeb23c8fc2245f0a4eacf6953dad57998026509e97258b37e4385d6e7da3e31bd01d46db13a3881476c58c6d251fd2362901c9b264995f3dea1be3c76c4fee59fd56d06502aea04ef443e9fc71eb795cb79e499274f303c4674afa5c08e1b300c6e883a11b61c5124d96c8cab0040ab21a5041848506222a5e042dc9daa082255f5892832544675862091a96b0c1920c8c25537471852544598c30826c0b2996700797a002174b644988beb0640931c8aa40676b3c543174a98f7e92bfc5c75e1f2005d47f27c6a7288ada28ea6525a918df7dfce86a6016e67edca2e7c3664608b47968f7bd1921d0ade6728bde633c5edb5c51c987dff7ee739db3d1b6c4435ef79b27f91e22463bd7f5e3e8032eff7ef5aaa1d538e6ba0525a594524a296575d9a9534de72ce7e483133a89a182be498a02759bcf75dc04c939d7ed5c370de091eb472a2b880952cad212a8b32444723dc9f528a86b8b3bcb73aeb635e2ba7e9c1be272ce39b781ebfa0943c76310386737213052ce39e71c7cca51af04b69875a85c0e4c3870627c100d19a3192e345c668c64e0c0fed968316659b264c9da87b2676619cfafd5e81326aade379c1b5b3886ddf8e9639f89b08fef99e8ddc477e2744bfb0b98af886edcf43778e9bb4dd677f9454fe5d3bf2a4c47344595735a64b7794366dcd5eccc9a956f26ab48da7e178e7e180006587821e308845955d5ac2ad8d2c4a696930ca735652791b496e14e3838adbfbfaa57562be9f49246cc4eabb5567dad2a874f422b508a43b58cbe6b4a9f52bbc5f76fa9b46db845fd5a10149cd903ea0e99fd75d6ef4ab46efcf7967ceb6185988ee5d684b19b09753d5fbf31d7da48a36b5927cb6e3555b5beaaa8793d755d10ea3c7ffe5ecf7e3f80cf176b393c2860f4fca67713e33d4a65ba19245dc776cb7e92a8e491bde8731eadd86753e4aab8f15d84bde7f428468daf637cabeae98520c0206b88c47b761ee77344d1d61e35796a685a6b317de2a969ed7d6baf82d5c377558df9eaa98d92644bfceae146a2bc8a154eb95b5c875171485555ef95dd812faf57155252bea488bc1bed062d0f75fb8540f35276f7c86b3d006e6e7ce7f0053040fd7ebed237367f33806f1cbe9fa7f44d8dbfb1f1fd7dc3f717e1d32799ef993ed9bfa1c2afb59fabe813f6f34f978c182df4b38f297d9f605e48345c668cbebf7f88771380178001aa7b3605a8395453bd51637a405d6b460850e5b3816fab6bcd46855f03072a17fe002a7c1bbe02ad5a6b7ee37bc36f7e6d72d8afecc62ff397adb0b2d56f8d4d65ebbb3695ad7d6fa86ce57b4365abbb3754d55b9acf79b5cebc8e0ccdd7307af8b934b6c7efcc3bf663e61da63363816e9537a6bad64a153e0cfc17f82426173e0d9719ece4c21f3df1315aa0c84441173e5605940bb5ea9e006a00f8ad5a3d233def1bfbf19e673f37b4f582f7eb17fb1a7dcadede00807f7e2a7a7f9c7703801a7b83a5d6e2405847757355eee85ddfe0d40d87e6371734b339a112d7fcc4c1f6fbe544fa4dd2e06f795bb5b6a9b6df6e94c66ea419bb3d7c19bb6931b664379c5b6b70488a73bd541aef52dde5497f59980ea98297c657d80f1a241ad3c5e5c51d0ecebb54bea397f15b4391bb2e155ec6788c3e868c9f51e98f5a62c888611f623faa2e9afce0d2165aa3b5f82e7efc2be6c6b76a58049f0b4388e9fa7bef7d5f4f5e06daabd2daa3d2da9bd2da13c2a85780b3118017d0cd95389569afea3d2a3664a07c9f944abc6e2e0a960549adcabd888a0606ee423cf3f7735e9527f9f9569d24ea73dd6e96d38e1e238d574fbb534e59494a4a29ad59515a4573e5c32538539639cd0b6829fb9f9b093993c964325591493a7f91902a022b48c84c6d23009afb1c1593c9246412a226062282151a54a608d186d258bc6fa1534fb9d5448194546429d4422dd4422df484fa844547e91bebfd5bc8ca8552ae073fa7dff35baa826e52c96d8b8a55a55a5db475a535ff0d4ab94b5a03c0954aa4122534a250582e5773f2829298082f28cf0e395094164257dcb86e052b5c226c94f229277b98aefc9656480fd3853d4c3ca81e395c687938cb0de26c308147f8a45901e9d95cae4d55df4233257e8b21689a5ad381d35a8d172677a7355e3816d35a8f6abc8029a0d9939b419a247678d8e67c3c98b3277f04dd484d4710664f7e382a7830c57d76a7466bfc3d0c705f82e8fb972928943f82f2e7f4bf2767c0804e45a728a7a2c718a3e3bacd791996a253240e8c211c2de0c2c9dd54ffbe872d8060e4befb3e489fdc942449decddbf11cba2d7e10c67d3fc2420c9040255047b8cfc7cb12c6752319132cbc00894bf9e07267e6815757f346e7f18ae9c83f7ae5b9f09ff3f88e79f9df14ba278c3b6ff4f6109316d02856baa7949492482f4620366aea93e972dda4bb9bdc3da8260d94ffad0ca183dca3a0514147a183bc5b0f5fd2a351d08f420434ceeaa97a559bbb8d1457557c55d6ade6164172fbca95f25dc1ca9c41101365ef5591720e070559212eca25457f1445cd08df2fb425f83ff71d846e154082820405e548859989deb721ae1f41f952fe9ca3c7e75c4dece593de4df6528e9c4df5a25a518f557736d5cf5a655756422ee58352aba10aaece6cffcc5cca57a37cf2b1a464c697e2eb4dade4f8defb9feb3e2d3fb7c516806fc877a7956d6cf01de6c31461d06ed8bfa7d86e91820ffa7bd53f87ffa0e579f6d96fadab5a63a77e0ce93d8b7e233d87f15f2dc1179f3f185f5e18df89bcfbec162db444dee52b27b5acf70d2bafdef31ff2bee75d9d6779aa57bddac35d22cff25044de8d3b3ca11b69c88eff16adf7699bb34a8cd7955d99acfe7a2ec23eb39bdfec63ccb0cfa8c89508f657bb9c3154a4221523746ce4589e7c94acd55f0e7befe7bde479d447364c6977a88f0cdd65cb8676631f9475533a1bfced52643174af6c860d578fd8de586492397918651f43889b519a2386985566a4551c942a3cf08e21843c7d4f7a5554e1016b2a082f0916ac977c986ecf7949225c0ed39c0ca5b404c6c24d17da7eb2f5132996b16828a0b4d64434b444381b9bb3d24f5e6e8c3dc4ff727b09947976b8ef4df759229c8d7e1c8840fb8915689fabf282b81c3900719fed24b1093c3e77f3b93baf4a8aa2a644833bed817cb1c5155f8f24a5f329e2d5a78deaa1433d33f30b315d0d98ee4e65bad46f424c9b1088f1602b3f6e40dc9df9a667b2442d3164d06cfef5326a4b7d5a49ca319deb6de14229290d982eb4a28625702d140624f7f2f9de8c3449283794397673425780784cb87eebbd65fda47d6a6255cf24528f7e53bef73ee634a94f7e7738f23bae4a36b99eb5b6e951d3043afaade6d2f8527e8cd40fed5892b8ef6085c2b9d1ca6e94bbbbff1055fec63ac475a0dd6282de733742daa679689bfe189c91c951d95c95cd05d19c1dac50fe28020df0910badebf92fc67458081fd9845056caf8f1afeb2d9e1c2134e2c29775e76da13fce10587fd10051becc4428bd8e6f6ccf32a6b568b918ab661d88d03b84bf8775e0afaae71b8fedd61305f994bdef95e17235d4ce46d9ad88dda8bf2a05a1e3abfa68551fafeb62bb39ac1b85a76d5e579defd45f3cef6ee0e7be45513ea857fa61ddd28f58491aeb68d2918c11ea4008277c1f6be907dc618cb26207ea630f57059011f27da47e63992b4d6493ea739aaa2c4e5f2d288e95399ac87f8fee20ff3dcb7ae48fb8a4ab05ddfc8de1f2a0f7ea5afc371d3afa8600499c11cfc1ed1b23a2212d9660e1b45872e4ce38212b98dc7e213d0fe2f4f0eb35849840e5c27751155d17b4a23aea03f44b9b23d04d8789b117a235768cdd10ffbf1a01be0119c27fefffa4acf3699f366e421f7bef539323bf833e66e70c18f3a5bc6815fd744f149fd6ec67fb7b21e0fb77abb21cbb27f2cb5fa3e1c0691ba6eea28ac39f9f71b4c67d751c41fd19a9d1c357073e433bdb52438dd69821dd4c2693c9bd860a698acfe9ae1ff509c2f726d6e29f897a404271309b13e4b2e223d05db9bc91809a448a52c78d36da7f1c7dc3f14d7d7287d06e6de50601a209fafaca7d3758a24479a4266827a998f0c5acdbfcf960c3beea763d91be54aee72870eed8741d4ea5a4d4e723c1d703da6dc58831169f68622d2d18268a917d8bdd6a6ecb6df9968f219de2b7617f895a3e13bdc362c4af5aaacc2ac52ae9b51ad02f85e948ca41e820a436ea37ea89f4ddf948c5f7a8bdafa1b20651dcdd1465cc2c323d7749df7a8fa29eb2544e3bbff730fad8d491072c424d9f300c7bacaa246549aa5a43288af281b23b95f544e415316e4cf2f8c04fe45d0ebcf786f05057dacd7a7e9e226ed4a1b8da86e0affe89de391bd73b4c567547deea871852591cad55555543b493038fc9d9b0dacb87bf6992aa6a89aaac4a56d4a5ac97d51379b7b29b65294be4dd18f33553b658d4438bbaac5abaa47c0b6e71874829a5dd61b6143f91cb9293080f752922eff250f789f490cbb23ec26837f94fd20827c6d612defacae75672060cf757dd694fe3f8e2bc967c775a453dbfc37ebc2bdfdf1760dde10b546bad47efbdf72c9d33885551d70bc2cf18cfcbed6507c6235196f299a40cf26cfafdb77f1fb6e93712b6c8cbbb1d33b6c4f64bb68813458228fdcccfd82232d6ba1d3f3b2e587a990fa224f341d03c9c315abe5465662acdbb77b6e41e88cc971e08cdcf949c6d007cc67eeec4c0646ae969eaccc4b08f5161efb01ea25a2a3560e64b1fc48c0de2b945d412a3349fbf04dfbde8676a69966a69ced8127c9a92cc973e081a3bf332d6d95216a3eed07719cf9da9eed9645faaeed9d0cae3b29ed6fa194e5295b1eed9d0a831f69f8d2c620a2afaebe9f3cb1284160857b97abda86e96bdb0eaa5969899991da61382970a53e7bfd812fcd2ffecf0993016e65f1e08ccbf3cfc97972f599f9c6703ffe57dacfb9f1d3f3b721e4c753bb85e7688ea765895a7f284e05615a9ba1d34aadb21a304b5d2a5ba1d33aadb91f37c1312eda8ca00a23f2ded92a4df93f308d447aea7493eba755a8b23426b5082e55e0ec6f4a98231cfb268ac35c68b4755f5dea39cd9fa1c96d00bbef5d65fb0f2c5d833267a58379f0bdfd978efb3ade54a8c9fc25807cebab5dc57cd6b59df6cf9731ee418ca929ea5930dd4dd4d8e625e5a61288a957b65cea3e3ff6acbe57e4d8072afcc5dd9a77ed6b5cd72f97859da70795e132978382658b908d0c26d0e437ff76b8106595883178ce0a638b14216ae7b02115c1650e0e1b080c2ed273cc902186f741f029080fd8ef5b8f1041b54b8fd10e3a17d714240161c164fb05cc08ca0e509dd59745f5db849b41131c56db7441b07fabd2f31dcd6bca802c585db0f97a0b8784f9efb7bcfdf737fefb9bb3fefaeaab83e74b86d7f1e4b2497cb9c73cea9008a73dceffa4b3facc64b2e6d4889eba40c19c1e13a295a10ba7262b97f9d9421a17b3d1f9aa0f15d6fca920fff8b9a7042483d630bf8b9d4fb4fc80077311efdd4c35a82affde88fb604ed0f4d93a33b72dae89dcb01dfeb8884856ea39297fc65c9a35b766b29434f8698b8574f179f7f2cfeabb6f5a392f59af5daf5bb8dee2b59f687762faba3b5d7dad3b12c993450eb895c60fbb9edc3e6f6cbd148bbb0ea98420c97ab31c2719d47a0dbe8fea84f2412119abb819fdbb6f4a387efd6ef04295086aecd7552a040e11713c5c4b4e63f49fdafdf5dd7c7bf26a613e31523b52a3be1335bd9dc3e34f11e84a3d6685f41821b7fcb105500891eda2622eb6de3bf698ef188e18f980ef7e9af9ffe4ad2434c87fdc43a5e7392adb1bbbbd6eeec4986119558a0126d40c2d0096e80852498a18b1c5871450b7c70658a1a0cad01078ccd05e1a8e171c020c5b8201c274d58a82a3a90a508540c39914111b008aa620c4a984891c40dbaa0840b2031851448d122055e580312922802129640e18b2755da8a270223c431dc7ed72ffb49aec4492b282a9cfc000b48a48009479a2004092071c416599068a1c517fd4e4279589c1740504ae0051b9c10410b2a094068f1822a6081065d6882075450169cc0051892506105514461052353a07871451651fc14e10b27483105255491c40b2856700f9c9a020457c0c20e8c90c4892d187185122a2c69831784b8b0c4fb3ebd0c3c892b5c167f495db89d041251a4000d6398f2e4881fece81d8021041b34a185112540e125ae604215fe3e11f4cb7e523f85841bba00d2811753f8a2490c1c1470004485134058946cc1349c0cc7ee9e444b5728ede7cb58fe92baad486204370b19b8380b9cc72e80f17738a117633a066882f617e8c3f76b8026685f27c58a2477f3c8eedcc397dfeb8090520849904e5b55144b4a5a1d4e2825917e5e8fe9c84dc8e8ee947cc4bfd0caaf6674120444ddab7797030c193ff6e8c8fc6ab8efad0ba397cca9801c274139dbe83a115bcf2de2becde7be127003714140e8f89ccb7a0a0ab60ab0ec10af35d7613a2e4ee8c863e4817a767122f344ab8981a4e7e2843205e5720f22840b8203871041686c667642cc41641a9e0fde80708947dff8402ead385ac3b90dc304a5504a4a49a47feaeedc7c7c6b48fc047d76abb9242054304c50c8b289cb0c74d3b0a7e6253dd65118d3b1a501536f239f23d2a42379a9e84623ff27341aba120e4125d7696230270f18e5f643a8e44229300a5472df680806e120450c7421bc875951888bd98d7a56553dbfafaa2aee945dbd7ca7557f5995103f1b4a41d2f983efa8446acd64856e23f767b2427930a703bc8ee6c48088582eac35adb56bac45878549b4ade4d9a481ce4783abe40a415e851d5bb98cf9f0b671eba8f83ebd27ebd60e4bbfdcde90ec2a57fe16ad5c89457e3fa4798fe7dde7cddf41682bb7af4b8acba5305d982e386e255a891c6e045c17a488a2a8a1562212450682af95b014ce033eeb52341797bb3257c314fb5caba7adbf767afac61f36f073dffdba2c353dbacbf2a94b4a8be9284219abbb10ba58f2115f7e7c693fca920f2a5af61ba758c30f8e0ed2fb4831c55e724be713f9f3d1bfe8e4caa267b1954f4a8cd20b66dfa3fa4c54ebe6b305b9f3bd09d4886f39f8a275adb9cb1856316555445551344ac8236e0ab535140f520fa429cac6f81a8ac79bd63dfa89d6dee3f084f26f1b0fddd72fa89e779002dd9809262433898180200d0d090945890205ca46baefbdf748929fb43b948576c7ade909677205b97fcc887ed1564e40f95ab90ed3f962be7705d57c21e572355b64425dacef892842826e7cb7eab17f7f55d6cba00f5ddeaa8c5dd3628a996266fe9c477d4e47ea31c9e104bd5cac7717567fe2b6f8bbd4f859a5fe2de9d3c8bf9bd0f8fea78446f5b67161d2276745cbc69e129f3fdae784893ef13362fdb3987bc878d6a17f71ac188f19eff2b1ce789777580cab6534fa0b56ff7e4af4c9e1f7e861bf96b72ef5cda80f093371fb65386902f32db5c9cbd3da84c667b509e91fd0bb81b152be504a2291dae601b5888a44df988ee85db996c57ef490132337da52bc2eabafb895bbd1f7cc4d68586f9bf89cc309caff5a5fb911c36c11318711ba154902a9dc485d8ffdabe92b988def7d9a0c4955152d2b5a965513638cd665c548fd35b18f315ed89d315a1ae82b77c73f7e8ffa0abb16c5bf624c6432a35f4430e7e851144501d183e51e4aa4e4ddb492ccb26c25da936c2b8134803490926f7c205e9f280c23494a22319486c25002fd43c81742449ff8e5f7f8c89748ae8ca2445585684d3e570bb426bf23d09afc28a5a4ee3185f5f85b55947cf942faf49e6a72fda86f9c9497adb9b20633a14a70bd44611d54810914de137245a072e5f965b9339c8da66f94e4b20de80c9783f689dd75529e0054d32db85eb078c9c23966e6f9a4f20c2e1e68f0f204caadc5b8324037a98423b0b8ad841158b90d70b79dc969fcee73fb798a28e2b6f3e23a2abcb072998a3228711f155e48b9a3eeeef61f94194c54784cdc7a9d142b56e04ef953d4838f7afe9ecb7fb689b4de36cccc3c4d52704951504a1289b274d20811a2212129138e239e2291a4b4db7b1fed6bf91eee4487bfd5b85240dec2e58f35a0db1c7537f4e7f79e10dec2ed1785bbdf8b71f93e388412925412ac23bfceb91b77733686ed8c0a688c2c9c8d037205159c8dbb9b04720516dc0de7625c528cb36f1aa231ccee492fa6b527c4f1e8fd1c916284b8286f85bf6df20d6ef820f59e0d5d2e10bc793a57d3108552c658e513e252f3f9a46cc98709e6b43b4e25df0315ac34e938f069492477dbfd10f61bc255679050f757f773eeefbdfee627fca2a437097915121592964c9f64fedffdf5320fa8fad00495f9ebb34c46c65d99bfaa4cbd9c0f49d0cb5dce8713d06b4ebfe00312551dd3c116da5af5db03027239fabaf53e20a11b4e96591c1db4f6b83ef3cb1f8e0e23dc8d0b3d135cda834cd521f46e72dac6df49242ad443d771689aa0f3a9c75ef47ec379ef37ec6c665c85a44589973bf3db5bf2809e9107f48cf83fa03ebd23fd90f4a95f2ec1b0df9e934b296c888f7a659ec653980ef532557335a396c7f58ef5f0a333f35cd3dacc5f6f4eeef944ced99879997a5553a63ea0678407b462b2d5b83e639db7ccd6aa7fef2db4b5f9ef9b46e5eb501e63c151a6087b6772631006174b90dcf717174b96dc778dee05f317934d73ce9f5e3f8fdcecafbf629e319dd23310eb7084cb61bd3f8bc09d64de379a63e46cae1fbd4c7d4ebb5e56e76e5c9fd1dceb6bbdfeebc5969565d9754dc67a647fd1bad1972fffc244194da591367332525a227c65ec767db6934929ae272da54f332efe443e692badf9d7da57da4646e68be06b052cd7faecaf8c62d102050a14a772dd85fa34f337fffe4ec5ad381608e455bc0bbfe261cc7c4ebb900bf9141fead157a6c4c3f77a227eade7c9ae659f88d67eb03eb344f85ed6b23dadcd7876f2445644117f653c765c6b33536c0f58e8e642565c68c666738ad075a1b6f177334de8cb63fd56e6e4090731943ebdfc13d7a1b8ee5c050ffa3d60a19bb3727da788d6fc7bf8f6d81dfa3d7c1d8bd6fca1bc1bd7810ea090e0fa33133ab82e676a53a95da56dfc61687c56f90943c14fe8e0c9d84dfae7bc6a0726d0eb63666b93491f0102023a6287c7382191de3912e553aa0fb5e61713ffccba9275a1d660cb6c0d7b17da81cbc1c356ae7336b6eb99fcf0fe7a67c24cb00e7ebcbf2e25c2975e1852dd288dea52b739635487500cf464d84dc668e11a5d43080b0c219f8dbfbfbf8ecf70e8cbafe1fcba2e51fdd6a8eabcb5ad660a49eed553d698d692f0ce307af793974124a0ab73406690d0e7a2920fc8b549b4a4b6793f9304a57306097a5136dd684dad457eb6d3d998da9c33d68880b311e3d334816e53c6df1c1b3972e35740ca107d13df027df28f4f01a70310be113fbe102e07f5f1877070008958441df146156eace16cb077d0115d5c1764441741464cc14492ebb86002e8e2701d173790d29894d57dee765d780605b80b5d8e776312a8068a678e509f7de2df282a3eb543b9c3df46d5f58a92d4df5077305c929d6bedd938e84824295fcfe07277f7f7de7b30fef6cfe6df7b4f09c7c5e59c0eae9b9dd5cfdf7b689de41ba7e8d11b42cbdcddddfd7ce09e7d3fb4d863849674cedcc572871ee4ddb8b850664b323333cb2310d369e2e21c477709dfdddd33eb21cc6969bde552a5e58eb9bbbbf70c97e12dee32c6ab2eec92d5455fbabc7c33463262b4788c962634ac8bd162e736e15fd4658ade3d6a5571f9262e99f5f8a2bad12cbb32be94b29252c22ae163e89c085f396a6aa5fafe6ceb815b0fccac74575042bfaa34c75557e5ae62f7aee21144e31fa5f150ce88fe34aa4b9d5147d5391b910c2963505a4d1289526f4d66564efbdcf54ada4dd208dddddd9fa8a9213864e8e3818080a6703599f1ce915c1086984e90d6e4120ee06cfa678cb0e26339b644f8c220fc26cd3b8af49c0e26bed1efaa1e7aa383f079dc436b3d0f8baa3ca3f2d5918f646292436b3dbd682ea471e1671042c81fb1ec2f9ea3df648cdf28c50144e36f38dc75c9f9977bee66860e42f846674fc4bbc1e16cfa65d0db427158a190a96525cc4adc96a7d4aa1bf5bfb204b81b67d34e08eb80c3dde86f0ceb82b28ae8c141446b5747090774c3713bb35e56beae3516dab2ec464abaecf631c6c791e390651d11bfd1ee402ba3e91797bfabd918c865bccb0719fd0c6967d4127f2df18ca7f12e4fca61092a99dc27b200ba8cc475529c7045064151b24872af8b9a0ce70bf16e4af0055a18eb03f3252b84bc81b1a50a96aa175baa8ab82ad59cff2f96da87a13ec440e6eb4368ff7a0bb4d6b596f867deed90a9305ffa205e7ec61699f91753917780db31f3b303c6961888ccc33c3f4cccbf581f988f799f979711b91dd656e9c67e68522af1ebf00741f3a52f599f1f0ba696dc4b2db9770f03f325eb531fe67dfe5f8288f99283f9d2177909a2f4f6ad2d0263870029fd8cf52939c0edf8d9e176e4f4bb1d75280a8d75c206fd6883cb792fd5ed80d55d980264816e2e8ceb7dfab4b930eee788a62d35e0e5a5f4305fe44536089822259bf36ca685b1eed9d8cd0dfdb8bfbeba1c30b9574f08c878922d4160f4345e1ee681bc3c4cc93dccbb1d2fb6c45f7ab7035a2033fff22fd6a7e46ca901320ff341c83c8c2de20490978ff922301f44cccbbc4ca746a8144f75743de9d0cc00008020019313002020100a070502a158482e1bac827c14800d87a0487a5a99caa3208721848c41c41002040000000060663460089061389c06a9bdb9554f178f2151ed03fe4219861976684a9a2f411d1b158acbcb9b9a15489577c5db316006969bfc86d091e2092d0f19fe22a7ebdee674bd369346a6041325850f456bdbb8ec9bcd12c4e3634548a5e5c4f494e96940be3dea2cb851e133abad581beddaf81ead6b176302bd4f48f65571eb91ce83256e2ba439c0c879a6d2670b2618378915542c5a07c580dc1f799b5a4a29e19fad95560f2086f36e5aead1b1627d8f05c4ae41fa7a74bcdeab81ccbfebb164f87a206f8c3b39dd5653a9065ff9fe39a83a3f2f478850212ba3ca7666c875e1ca43da16d7fbb1779215f55c291fb439824578e7b0a7b674bb14a2f6391f6c0cbb0f079b5115100e681baac7093f47b5130cab6bce3a0c344d27aee7b2c3b2c4f21bece6770ef887a991d063c0e2236a2e6843ca11d24a96742151631e1a529699c43447dac09ac873ff01e9238a6dabb1d18feb93d3a74a850be395a281e1657543cbe2579cf8f6f9add3792874eec705d9d7f4a925199bb6409a70647561fe637fa71103a760ea16f2c856c942ba66ec733be4718a0476aad0cd3925eaa342b973ea6c8cb44cb8d98a16c4d2451461b0c7b04dddc331a94324cde094bf3086148f28227374450a8494e275ba5ce4b7968dda8794dabbf8e8da3554ab9548deb24a0e47f2fb658da568ff29dd9e564b361807ad85ed6dde2277e804ef7d4e8668cfe2c75559b6056c97ff68ad89b864b183c2b8fa50ae054ecdb63ef4161fd5f20a6310f42df461571be7802fe8b8d4e0f4ee80be7baba26026a0639df136d9a2bad02d2c796ac77121118bb969e75e866548f520da50100c559d967fde075cb79489f4398138544229699d39c4d2332c2b4b36c65eb8530722668cc66e234a668840e49911f5d9867cc13b75821049a405c84556458d29c43b595dcfebeca00d6f2773ff2fe8ce8a6b339de31305ab5505d86ae880a4798b5fb35d480b041594971a5cf3f68e269c12b3dd0862999ea34ec6420cf5554ab3496c0d85a36a7cbca5ff7357a997b2ad2fa20673af92adf326fb5f043c9333248ea33acabde55bc52ea0431edb4a5f8ed3a65bef4b83a2676cb49bac668bcc82cc98b72e5f0e139d3993c709174e6616830b167944f2bb3c59c487c8650d0ea2cf57fb72fe8d85d3d9875b859a1580fc715fa59a7413a78880856c1b66102c97a040246f30a5da3f406129c59c1cfe1e22f6d48691fcb94719360917f72bffa9ffaa9cd36340948a394a59ff6afcc52e9a98b8f2eeb79e8b22ba262abb3b43a47a01666511968607026a18f20f96218e5f2711202d6a9236d1209081106c8e52d233967fee70da609e6baf21d836c34c2c76b0f83b529068169a6327ba2dd94a0a3053ced169a903ec6058ea05f76b9207d6465702ac14d078dd25f00944ce0cea08ee3bb36f7ec6f765a9ca358d6ebdb238bd5d03a93126ff25a3ffbea946ba136d7e5305e0ba5a72a3586e7cab9035f856ebf1051741f8003cbbb162d92604cbefbf3e2521623dda850ee32ae4ba2bb2a2f81960f1264466b891ff227df81829b7590e09880d60d126636f41fbedf15abbcacbb811ea9b381911020125a80d0f8c85d95aeebe0efdeeda8e3848e9f50ce732a60be6f54de41472c10452b6716e986d1cac92b0276e3330a725c854974a0400b08d04ad76e2274789c210c2a70d0feb1c966d44473a1924acf59c64a777fb0b961ed6f42c18c04f18bbff7e4f904d0e5340a709e29452aeb31b0b02e7164c6865ab10fbea5479095a7148173aae0d76af1ed6928aa8c47ac84fbdcb5c34ed047d2a4d23079eb16be843fcc62dc82d9c5b538e2e1ea70d65df935945700350ff532640aa6b3f610d26bfef40ff3a5c40cf4e84288e6f6c872e3dda103c840601a1c723d1857d676e57e265084eedae4d4e89d0a387d0f1751da591fba6452b889bf8a5d4a618374ba1a594b88d62aa9dfead21a05d8b77ff653f05801ebb09d25855d9d124c1db8a584025908524d4a56d5a3a949c32cc71253d8b4102d83efc75abcab738d9efb01b5283ecaec294a51aa75d27bc93e3d45c14e097872303d292cbdbf0ace4ef62e2c7249dd05388c74b0bceb9499b3ab81318bb42d0d85a5b0e9736ff9a07da00e151c646be739ce664187e69f55199e8df08c2b06315919d1981545ec6d55854c70240ff8208d8b21e6be67dd58936104ca23a1d6a1110a3773ded84526c99c5fadfae648e2a5059cd4c18b7573cdb6fec4daa2e7a4f880cd669f24b8312a36d84883113d4d3e82851bba3be9b5c6a9d4246c6c5be50d86a2110531c5048a1151cd1aae01c29d8843b17998e61610108ea1c5838a604c321ec2ee7be21c443859470c3d7e4552083f7ac4b5c015cc79f0c6d938f349fa7c31453581981f3d868e955dab209ec35aac6db54121306aa6b72ffcdaa30b914e3a1c88510c2f381ebcb587e9c59c8d279fdf483993129c86d6e2d738d80a598577aa3e57025af1ea0a7a4e05b08e87559c1c5b59cf167cc69485f2e4359f9d14d98c293fc192267b802e54277870015f546c8d18deb68387a557b64e11a8ae7116d2986b71b75e9481469a03a810956f2b70fd1752223a9c46001865c667901acdc429d82b53bf471617a60b2bed6f3a2c0244fa6bf93439cac2c0d998618726b7206fa8e301c415e2352fe0ebaf9a038cf2478c0cad84f77062ca2d9b9f4da324f6b410f7c14276061d3397587002d42a0254ccc92d89bfef9ef491a74616ec46e46e74b8fd1881e407a17d9e75be1c753257da0175aff892c50f89ced028cd936ec6e622df31a54ae55dc840392413e8dc26cff4b81ea985c7b60a1030dff87be6871eb01256c7ea594181f287bf5dfae5ae92d98a10a00d8c0098d814ae1b1ab8747efa094dc702beffa09a07df201c191afb9e64ac1d0d54e06e4c97c4ff4164f529f7c9d4d447f8d0474e55964431c70eccee5444a82d4b409d2f79da05cff9bbfc66edd9fcab488af4a8d0e01450c30bab241a3c12af830a22d1a799c1b9fc9c27dc27467769f02e8369607337b31438ea8893acde5cfe9b2de59a344308d7150b0bf9c744f487ce5409950f3ba147eb80b45ebb585fea11aea42a5cc40e78520a8851d7a517f4981eb2e4f89249c26f20cfd651775ed2428a0bdcfce58128107b3cdf9ca8081b1183cc000cc4e41aca49a1aa60d1d08482b51f53da9b887adf6242fbc50fbe68e123e79684510aeb5db2a975816c6b6573990c5e87982ae1e2cac75f0e122c3a012020db08b8984f2119606f04282adb97a9eab5530a88141dfcd0361d443c28afddec28a792efc921fc919050a9f524e38a0398935618f4e354348fc6fef9c3cc468522f4180473fc1f3d9bce4e17e177cdbde2e9271002a0b888e98981c8b9f81b47b8309f00b5a80f1ddb94810ec5d069bb5b3a93d579131756bedd32225ae849d376f0284c0b0e6903395fa3d060e5d7c12f2660e2f6dd5f75cb46f19d9d4f77bb8dce455fd35d3a34a4d89fe48de6043f47c43646e5bf3c11aebaf9f1a43790755ea26419cd8468a33ae44be9b3a02d7f80d278e7655a5c645363ca31be722db3aa617d16f38d1a244096d1e3b1fd8acee7fa8a3d455cef76c41e128479e14bdd21b5b5f2fea3a0464512f7f6093a53e830d26319e9838b22608683cdb468329b8f840a189aef15a83dfc6d5ffa589160cc5e39e57239a1525a17a3c68d581ee41ee11b6c9c83cdd2f6faedd4aab656ab52ea068977200d4264da0704a09370c5a616e9abf13d0c7b2f46fabbf9e80d8398fcf6cb9bc35da487b8e8b609d3d3e76bb4811bffa170c4df115578b1ee66bc96340c8d4fe626b771ce0522d134b078e4ef0312ad95b3a8b805c42beb862c4279b950bb42efd90f574bdb6e5efe861b98cab95905bb2c3b1acfe2a90f552a25f0d32d1e975221713ec45ea28093c52b04e8e72737aeb670198e06dfe164b4648c16d269aa915a3f75a9609a1f02d918cc427009a7b066d3b70c47977a3c5a02027b77cd810e178e81827deda5cb404dd9e0d871fc95f9f880a973b530b0b57dee54e0d53a62d7e61548cf62d2f349064e17a65dbfb9d63a15afabede90b6679a6ce2288a158e7a0a5e8af8a3f91d2a9f31382a0d3d32e2128c9227d7a3f6b83528f04db8edca1bdb823fe2fc9bd332889207da4141957ec41765156e48e4dd13c24d51706e7885530dd1125599d8bae90766893f94cfeb3716133fe58df874cfdf87b0c888c507fd3ae7ffa42f7c23bf537305acbb1c0a2378750b1c11e643f86b5ccd2be59bff5f498bf426a1be14b7574cb6022ede4a53ee5f60f12d4207d6583a53b275e20ae7062a9b6835aa1b7b43930328d55a20a177a76f1d3a79e0d9d613ede002480b1842bd738d1682d6f85137a261cd9497cc62c3809075d0395e0ac350611bff748227e81817d09048b0eb0d6dfbe1b66c4ee4d9c99cef78d48cc82205aeef530fba2edb55bfa40adcddd54501bf80cbc0b9d96311d62454fce826686e7f9711899f395906faad273fddce90dbc4112893b28495e6e1cb683089c655982dcaf1aadef4dcddf8b0b10b5b7e1477982f68a79f2c4a50164b1435dfdeb37d21dc30ad917f8c9410435d624f5340c2d5687102b601e678606b65565cde2a8c91190a133f216a413a4bfcbbbdcadb27ab98a679119853aa448abccf6c9cc7681116879e54c6bf490b6383fa12f0aded36511b149303979187436dd14e4fbe5fd1b86e06486a2ec26f5f43b6c897834f310f8c09214c14287c16a976a5b606a921395c95d81a3e4ac391848891038fa02b12ee226548ebf4fed857e867bb4273dd3fdda12c0c56642a051eab286d0903236dce25b38f79cdc7e38f0d46a51c3a18db5ce223147a4a3ce7bda1b32929762c949f536e21b897ffa088cf6a34492d499d3447e699e2a91bac36bf64cd275213b4178e887efb994eb64f92e05205283da814f2e9e1b678e8fce29230425b0661ad20eb569f40c4b789de66b1a5efdae5ac45131e3cebb4dad7e6cac69489db71322fc564d9adafa75a0c67081bb3aab7967fcce1f40dde61d61d17be9a25ad0839209897ed1f336428781b4829402ad96fe97915e5c047eb0adcd89d00935f9b3e9b99165542be97bf9a4b459634b96dcd653c55cc1603fd68a6b2a7c89e7734e5aa7bf800d754f81a21f3b3ad4f9183275362c78bf691d7ed87f4300441e0be8b6a948ab668ac98ed94528080d299bc163e1d46b8a349edb55cdb6060daff8455ab027a70bc8e04adc85bad9529156fa7c84eb0428254d9c71909490496385ea831e98be2bf3bd081df3f37fccc115f2811aef80c885b279ab3690745f7648812c5aa6a5574fb0654732262942394bc34e98e602f3c79c0630dae2d06a5457fbb9516100f3a30328aabc142f2abe84ab2b6c1faa34ed2cb24a665515e733589d825ba9612f0c8110c3afdd8767a745729dbbfb05fc54c1fd5012dbe9db5d4f5b1b023cbdce251a5d7c34b99d11a7df62b29c51f79ac9f348039681242a620fe42f799f17d56f8a9c62a7d74bd4abf9e92975aaee76655282c6dbd75990b9eb675ca3e769d0d5fefb7182d6171f7e281bdd6afa06c3274c1283b713a80a7a2b1617188d8340f10db44007ac6dc009e306323c6deaaad1684d69674a37746c574fc7b26fa13287879c6ae19f096375bf9e2efbd31d50d6d5b5c9ed395e25f6c66cc2ffc4ce2145d28fe41a7abb01a78aade5a161fe2bc91baf208823e5f499f50339f5efc6a3ff695cee1fbf65b2cbdeefbcecef6fe2a8f57896916fd968b3e4bde1a72204e6f131adf46e59ea002e88b3879bc237ca7e796e8fec359290e3c7ec44466dd9f50065c8753c92bccbff230240c14510d32344be34a24c8e6550e8e295248f5c2fa044ff82625fca86538448e96b94eb5afc446fc51e01be10cd752c7318575debacdca15e4b1ca87a31fa2e29fc3a3173981216b9b6de7cd6800fa74f96d7893727dd9a8ae26388666fd1011192949a4b8c3cab9f255eb261b7106fa1686b93fe5f6cb012f6e738447912e427a73b061fb78bb485e74d4e9eae4dc11a3bb0494be5544a1532808a4f6da669f37eafff15e2982f8b54bd7abe1964b60fe4361563c7cd4b72a51fff3842a3f854e2ec0caaaaba35aa90e04d1402e11dc331164fd2a70eae9b103aff2b94b2849000f8be3e6eec3564f54cb70bdf833d21ac49b4446715c33d5420d5896d40d8c5836bc62a0339fa152cdafe588c66e2a38c0dffcae7ac54bb81dc00708b6e8811d28087e6329a0b27cc861240342d8216bc060ed333e4d61d0b5c1f0d599364dfe0822a5b0d52d71f23b932e17aae4ac2e3ce235b4c81d0eaa40abcaf0d6c789c7d95d4c55042e380700f26d478c644493b0333995e29d1addda14d4cfaaf0d8777c2d72c9d80190a074263c8fa9c99b73ba4dc7426eb72e799bed85fa779516d4c1e8797228b7beb4da92e8a96b3c7ddd550f5c9e32929e6cf1feaf45cfbcc8dd9d4653c29bdeac1150551f3553fbb3284a693f29d2b8c7f9050a1b1506ed84a4fa9cab3e855d3f581a7c01d30f005cdab897d890d451ec37d7ab513e9793c2bec1e96e46df3444a3daf0b226b287c9de733a183021af69d89659002aeaa70adf2bf478b211c3a922f926ec44da6b0d342b2e9f6c9410ea9457ddf75ee931f8c391b143e44cd9783f8770b5694c62c56ad994036745d4e897ae3eb9c22803fd1e8138a20eb311aed24618a6e1ede251c42cbb2f185bab90e7003d2380bde42f3149fdf088cf3a9bf60261fa2af9689f2454270e45a2c3d3c30397ceadd9c5822fb4997cdd42db75686f829873495391bcb86ce4fc8ad8ddeedde380612c8b6815a9604aeaee3fc23d0d5d7c631055175d732557675a59dbd3279cd7ae2f7cc7c24e9e9228172404d5f2937534acc9883a31a06254a981b3e09444d110a7b11b1d38f53ec58760627cdd040a8f24473a1bd350da624cdac4e5a9742f05b08854d5fa157035c18b4d9493aeb81934fdcc79ece0c0bedcaff4493788962e31ad585f0c040d792f20674716c8f66cd8ed44b4326044f30b1fe0d6ebb8513a897235e8ac8dcb1e602725759d9e5db168eae5aa71ad84ca2445cee7b14f89bbf0a2b87f13c73a2a462e1f9a00398ae0f183dcb251d661b508579781a6c3a7e3ca59ca5c7a88d9b6847baf2dc2a3f54c0eb2abd2e7701cac1e5dd9c734874f6dfafb696b843dbb6ec592839ed04857b27caf7c7800aaa91dada647afa76f16d0314b355309bba932e7ad856c8823003197c5b1eb5d46b307bb9f5235c0ac42dc182a7880cf37d00a0ec9080c82cbd947cc86ec5391ff57782659d970b6e5b4cc597c91abd11875206856d302d269485a9168a969260a8bf0cdd888b410c8dc93d3fb4b0c50dd163ceda6b509392cb82c9df5aa175c1fc6fa00f258a8a973c06afc3cc39acaba8a272e5e0e07bf8d0889ab0efa282ce0233cbc2aaac6f93b8cc31609cfb13f69354994ff6c5a1b7c32b660f9a803b6078935f6ec613251fa56e7259dee10b9d46d7147d6932f7e2ac3f4c017baa32494249754fb9e0c976e310aa2b221f45292b0946b421a7cc9b65c391f73e20b3bf10fe90402bcf3b49061e5fd1cc5960531eaedc1d9d2c3665f2e1e3e150a4f18771a8b8cdda1a1072892e0c08aa3ca4821169dc388ba4ec417e2b354c3641718080ecb156783f33de539eab06b5a82f83fbb81171d082089e22a6ba8476d0625d4543c8c5e7c68d7438d451ca2838383524eb3bec8f52b2409ba21fc86267f31d32e23c2aa42fb0cd47c1724ac4d27b4d8690578fcce89bca3910b367a81a02f7e98b404ebf3c54b8bf4de57b3cf8169c019ca00799bcea8dda30335dde0258d97735b6c5af32f39c120e428e05d16a54dddf90fde1ce85d59d622a5ea08c79e150400d96b5a541eae402925dbe6f8b8d9a5f361ab06440eded0e2c7b430785df77b3555b767e7a16492744d7c58918341b7a8814bfb3452496f9a9a0333655027ea6c35a906dcf0d14f830566a11576d8f971b67dfeebbde36aa121776ddd36ebfb7994a59d295bbd72996f3e907c98ef505b745140ec067cf8a3e80ec0cc186d9915cbf9110c17dc26ea6029b5091fd562dd041943c4e76c306a19e664620057fcfddad3129d3e701a6b2d1d3cbdac26455f30b1fb5ff7e531759dd09e9673d3b24682512dd2d6881b5e9831d6ea9438a62d172ee635c498c7af4b17332b791d9b054cecaa73b580abe9f4ffee73d0985a45630c459692b547b248057596f3a185990f0a5a10022b91be46c11ff14a549a73f8204c11ff1e2f2f5ab452ecf777187e76a36ce4289a7ae67e26916fe93cc62b712421fc2621e4b432f0cd6e1eacce4958d4518c7d70b9fd5165178fc356f5d599adacb3701d3b7abd0cc29adf313107d6c097d7ab04ac4e8964b8e584074014c82ecc4990694f53c439477b92184fc6f43858561bc4c0bad36bf74230ef13b8392de1037f5ee6430a46beb61f11b25135344923ff7d80be34f7b9aca24c69331e878a125d1f295827ecdad02d2b40e23969004e05d529442b7e1ea82f406daed536fb6a84a0dcf07840829a4e3cb117de40690037e4073ba278c6bb54c219f6855d72552386c9dd79c834bd5ea2656c9951454133f19f9dd1a65823092ba4c1022fea493d84350f4dc30448eb0a35a240d3fa5327f2204c0a7d680bcfa494b925e270d1b07668cb27a8689b5da9d779228e0118c383352cbd7d5f5eb7e82162198dd1f2dfe44b25cc52720d59ae89a24d37322a747de4c021e71e9e17348e484328281814d536bf2974ae3c63d039020b8df2857877a1b37b060ee979cbb921fd4578aefc45d2857194f82555eeb2e3aa0e87176b87c9b33e586cccac50e9a1df569749a40d3d3c6805fef0cc443319fe8caae9735fe0755663e6a12f07a9681e568dde37adacd55613f978414b8e36537ab2565b8d5e898732f687d6a04655d4855ed335b3bde462a8322f939c5340aa03b8ae6bae29376835f9d7eac3f73503a5b38be49bd5a51530809524faa1ddb0036cff4cca918d617360a75114d675232a12adde8394e89c61d0e6a85d79878d57a6c7c8593d134a7841dcc2a80f72c346b5397a27ad582ae60ab097504077ca1a3bc2432318e9ff8f527f6aa3fb54fc438765f96575882751afa54b0639aa99dd7ba9190606e226fed004c9ddc61f3c374142932c8deebc277a4d22be083f025fcd0c2a1d2738ca726058e1726801f30c24639169f2adc49b61186d95c6add55b387e48819d030daff975733607504fa6b046749830d573415b0167f632bddd23be41aab798f8e888ef575e2657b447b98e75f12b21a7dae08422ee0ff39e64d3031035210ef54d394f2cc6143579ca041e301e1bcd49ad728796a0b4830452bc5c7c6f177cf3926bf15f84bcedd282e7cee212f740b691d383b37d413354ae97177f6a546294133e1b9e611084a846b01028f1f6d1f5a962feec3a132c4acd3814cf83f9c16d9e9cdfaa7a2120ca1db6f6cb82fca62331cd8107e6b25f7bab56e092436e062a6472dc67176246351d196e8908cb2c7bd87886becb08b8e7ec51d8998a43c854bfd77baf26eb33cc20d4ceac7a62fc5fa09462e8be571fae4747586f2b17ee529226110acf225a4a43b1f3b0c3ed326cf1daf91727f17c4df6eec09b2aa91d516854d4af1decacb1b9fafe390467f77ad34e485114d3516eb59a50b92f7308d5b357843d5169e8eb71f15559a75e626ddb210046c470008fc4029da88933fab98bf2a8b5f45ad5fa5d94c09ee3f84100fd69b9e630f364d023d29fb22fd26f87b13289db1eab653e4e9df78da6765cc32412d72689b9de72f4b44e8cc1340497164d8d1403cb7b7c5068016a6aaa5c9613f6cc23988781e450749689776464ae0368972151e0c8098242838e135fcc8aab2449c915519e7ec29ebe471ecd146daeffcaad859a7bae4916353deb9749070eae4313cd4ca56b886e9aae49c1a966504c0f802c677fff8503a94f3287492438b17924506ce96d9a4434aeb9f97dd1ed08c1c7153763bb5273a8368d44e7173b6e7c59764b445466406e4f5daeb134c8fd4add05221fa810859bc5c0016a8438b223ab7d402f8138a337689c57fac57b000a303563574279122af607a70d5405db43b44c01c8218762dc703e73898e7fa3cce3485bdb9254bd46cce3e86d3331db0694bcd84e3bb4780208112528d66bcdaf736961aa467489e36d43054065b180d6868041b7398e5e76101424bc5c940c8321c99bed5fb64d8163f685bce68b921fcd7d03fa7037644ecaca0049cc0e7831b5ffb752f17a408c590d79403a6083547e62c623d865ded9a53344acb69780ef70fa43daea9c3611ca8106e92737c16834f43637f1d12eb9180804ae43d1bc6b5bb9113703a2df5056062cb79bbf7488c9797aef2a9ab6338ed0354dcd04f44535e1b5ef58330f59a285b19591fc6a3791bfbf85c715ce56227cde1963474f8a6f304ac300044f829308114e752ce950be1b87fee747f4460149628c3c5004f67de3e32246b47c327859c287710841e8fcfe5c7712247dc69df448896763a68e3a56d50411a29d12e83188fa76e6331dd058153f3106a9652d63eed8fba94775d29112e137ab21877ecb6402c40d18d2df55266c1abd83bdf426044d9c1b8e421a1adbd8a7ca727362f5ab9487f4aa5229a8049ee07d2b79b1bc9f1e15a3d2108d58195502cdd57c474ce04a235a94f42c45396942985f4eda93f16ba06c4f719e846730bf392ccf6a830571914b8eb7a1f4323526e50f6541dcec275646b59c4237cad208beaf145352f05f2e095ba822b31304e0eb4bcd481e3edba521c619ab295eb1ce7b550cdfcf2987bd46379b9b96166b5b4abbd8faf67a460953509bfd4a3451ece7038ae5972316c6bce480c89e26c4df6e08269ffe5e80daa74b2a8a9bbc8ca5cb38124eafa451d5ede1cd551aed594119721e04686695887614203105ebd805ba181727f3350c09510884bd862e7f6262d4bef44963a02c0c288ba82b588eddf0000d80d174f2852f867f00292cc1884a3e0e436f1a724fa0fa5e087b36b1a160a90fa5b64ec1073cb2481a4fc2894ae395bbeee4dd36f1f05b74be4966a5f369f835743b16602ff6b9e4e9cc6095baa6cdf72e297d345fbe1b50d8cdea2b60ebb6a53ce07e4b595874234f846452517509474afe8d19b8dcf1a9b81b89b87cbc52f0f97c268f36f53083d134951417f5d02113ae5652dbb963e4284072722f2dcee30630055c2af95df61e7b3d3305f1a08442b8866c8ec029bcf482b1ca1547ffcce05d2af23caba4c8f2baea4daf45d1c4c31cebb1da1dc399198c178cb141b1b678412189b7d4dd261d84edb2ae28581a54cf55f4f6d02f2690386e69b760a04af12e366a24e2d0ac0ebae844c4e90a7044ae15e221347c59941d0d61dd741eca32dee10c517fe8944d1565096d76bfd57d645e45e1943d1f9fa5ad9bd9c2bcbb22eeddf46a23f53574bf6da71fb64adfef66309b41cde281bf4806baf944c9bb740b94486c5532035b4dc4d6867f10144e00780ec0e52a323b5342fbbaa5868d5b61689ed73f67fe590a5065ad68f3a4ff639835a8bd51be692fa17cced937f4bd511cee0dcd126aecc2c55e418bffd6f5cca82faf6a20fc80d92b97fbd2f47caa4dab4cfae52151cbf4755dd2f82a5b4b10a28728eec32a93dd9da43eb6fa0b7506957fb1131f8ffd5c1d75de2fb3a1b409489ebbfd41abd3108d79cb6965f72afd8a77bbb849794e8ed9f58fb7355d91819308c7369df0a9e6f2a54f5b2ef6563277d64c6a3785911496ac2a5fa1d72830443fcea89537bd0441f55b28aa2a16e15d6a8fef0d7759e2dadf57accce8ddbf49f58bd954f1bae0be0615c6c417acb3cae80ec88c1209f504db5c047ed0cd04ffbbfe6bf04e08015cd4ab991199edbd977c7344e7d3af5ee182224a5f4db508c800208f30233c34ff8c54876e55061b44370f3f011b5ab352b748acd620b55efaa4a9619d34afd364abd803d0d5446614ebf79a7c2c452fccaed8aedfcd6ef62c1fe2797eefb5ac3d0561363ba8191ff0d3ff6c50763320fe8afe6d6e3b827522f6871722acbe8dd9745047aa6b35b982b31e84056d8332f7862b09618eee0e0036838aba78af29a800f7da9109aa720f670a42cd4684f29d6e2c172d3787e6b8709ca676177dbd0e56558d9a3d4225c0a271e784d40166101ae8af5849575e8dd81443fc6bf93a98175b3439afe35df9a53d1fb02a234ce67919194c94b319583e476d6de057dd3375df459b0141af5154f8e278d0e250b8314182622d75724d4482aaa327e2a10c63e1ae7c34250ddae6ff0370c2b38f4d5b58bc3e36887d70f66cee8ae3c68b5dc73613152adf8ccd18973d75ebf17a6dbde3ecf7c27e9042664a649eec8c62a000307efa2fcb553f0af3354d35edf3930ee42b72e141131d8023764661564df55a25c8cf3c9108734fb8b38ff2bbbe67a8b92f179abf3d022cb9ebc3be9c372b35aa22a28435244609ff44f82261ade9b8fadbff34113241cd3e3bd62e5a5b5224dadaff4291f4b9941f45c5c4ceb422bfa4291ad8e73aec20d4fca3f98165f28b817a5092667dcc2e6fce1f92e835e2334dee439b6982ee2dc0ba7d5ad3f9afcf7871d3abb93e79a66ac68d9616150baec3ad5d66813b5d0b50f384cf1c751d2d33d54837bbb3ddf95c7ae1621a1ec5a4ddf5ac6b97560e27bb3c5866fd6a4a57c27688e1a34dd4a0f58eda667d7341b02a166bd92489fd5fd61cfd363e6c08fe8b4c07b1687acba0b72b3e97951426f9b34b327a8426f926db29bbd2deb3657fca262f5f6932895656988caa49a632aaf883ff636a1262f8c2ee91dd320a67576a2270219315edeede295319957d7b58c80e3140d0baadd3bbc0ddbee89560924298e69def56ec6d46c6beaad8c72f043fe643f8210b3a5377a0db7c0072de0dabf40661a5b38ac3e68ae3f1c0914b99e6ed88772e49e65d365569324f7ffc980a9b5fd7480164c1dbb7a7d90c2a263555c8aaadbd17f1d8adc4c41aa28b6fee61d5d2a39f1d97d2102579e397eec57b89cb6a77c879ecf6acde41ed972724ac494739108bb47feec8bb018799dae4530b6b03b4de017bb26cbd7eab4dfe30fea3ed31f0b607deb465db0a1f3331f7c0976c2cfb0a58d1fa62d4fab659f71032c0c2de41971c05eaa6353ccafec392e687c4396c2ddda148cb20a176288c28d8f88db69b9a78577d875e269186ddeab7e53bf6ffa377e09f600c553494d04ca18613c4a9d95cfa1b581d731c93ccefb5093314f33262947407a82cfe88e6e40b3658daa29a2571bd8cbced21dd93e497807116202ef99a3e8fce63c4de81cd42f60752d951cede437ae1e4c079dca64adc7696c78f24267bcb27d5dca90b76a210175058427b1264d8cd4428c7d4bf7a65ba6f69ac4d421ee029ad3c4f3dca115e77e96ecc44fe85291141f5a022822a1e7ed8709c7a9685094b6ff85330e0270cd291cb6401835487fab0aa580f7a519e2f43aeb9681543398c6af0b2acd1cc4b05255c821a9a507e2bae7d011360bc7691464ac3f7cb47650b4edab43d201529b88fe3f1524359e2e2b06642be0a047ad6a89090a3830454e7d64aa15f53f18a5fc11d4f398f1030c0774a18022e45f44f99f94c7f441535ae934646478247007763179d6eefe020317adf4dfe1c2963f847bf8d9683260cfba176280d2d3be97b2dde103a1e4ae941564d42757d66967909decb23f5b056c0005044413d18d61849a902ca0013479a494da06d265e52c0db0161246883ac3ddd4b460b33983e35f8929d7ed9e9d6cb2952c6c78b0e5dd13903251a3a3dffa703598edeeb6f1a56c030c08b162feae7fcd70073747f63f783648d48664ab8110664ee3dc894acc2ffb44a0875f12cbe70620d93a4db8362636272e9eef96db0be06e9b1a3b190a6a15b01eca4c273726069f04169683d3385594da9004c601e68bbf60dfe1f8534e0b42c44d3ec6107f751f2c14dde411935d030c0a48d3dcc4d86a91c0426982298e70e450f14e0f25e49fe7bdc5f598b29c3f3e1b21f8eada75650417d6d69a368758c05e089e7a0c3a51f41fd55fef7b481c62204fcf77d83d1d0c15e05df4e7fabc1cd76466172eaddc5ed05f712475adba9d893689a4eae6d0c5df1a8cf5c90bbc765805d8b0bab493cc95911e57f60825b8405d584ddb0075b6d0a58878dbbfcba76048bd1995a338df561d4119b533c2ffa7dd813402d5cf6e3e9d418f5af5555ab46e221611c2d299c49d9b62e85774b6cbebee0d06ec580f122728230c331a36ad9ac5bee24181a9328b1603c7dd1260da8b67c70bc5937c5d7f1f5a46e14a70d91bb53f4463970e1c0fd52eac571b14d71de95081ea50bd91d5a6bce3cb814435be86d58a40ef9f4f7884c789733508e61c5a5909fc93056a880a7992f483c7f6eea052ecb8b8715ace7a4894256d0a9f3cba0a121a86b587dfd8296fde86157d617be1997b06745b3df5014f418739f7b79c64b1d01da9f2a0cd88fa25ae91283b7cf9b6214352e20e04e759c3dc20ec80a50dbe67e6822a3cd4d323a0586ea8db34c3bdd2b0621327d1041af3e5a4269a3336b88e73537a35e453f75c6b72b9f1613e1333805d057afbf91b6a093698f4387ab07f05050faabed72aed9c3f2104e9eaf91239dc8b4a3292da5143c2e00f3e1501fcca53e2c6ad16a1d9fbe2fdace7abc488456ddb3392e692c1b6b7e08457ef8e63f646f91c1d7cfabceb68390f436d8df88c07e58ffd84d16128e96a0e1477da46d3f864e38091738d000eab55ad2483a1282d5fe6a2fb5a98181bed3daf3386848407bf01424f27dc2ea617994a7d006e62bc756fb4a028c582e008b8a1f2d864a0bb9dd3d135c8ce0056b402c1fe5d567033f5a2f18eed18d89ad8fec42b3de1b2f83670e5a457ae499ef9f9fabee7265ea5f110b1b5e55d7a7abe42468e5058930809500ca10a88f05405b4d1189163634347f7b6d0c6aa8caaaafc79d63b91e5b7328e5bcec21d5ce4280983e16a20879495d2a61b491c4a98a597f737cd94a15e49bc26dac91bf077ee0faa11ea8c035e12a7a7e6fed613f304b39056abddd83d4075c2898febec5a219a15068226b1fce1d5892aaee9272b82050876c6d18514ae52eaabcb432d94351f40495791ae9688c4aa14da9b58e6aaea0ba207143dc68876d3cb62f7470d0ddad47a193eb8c95f5db05c5d2985ec0c4624e568f66e0be817dc4ec51538008a6086b235ba5366fcce0d10e585aeeae7d89bcccdd0755b99109ea8e10a0e91b62735499b21c437fcdef7b468601bc17551ac8b0d1701d724cdd5b6d245766895a6b3042565da1116782068f6ff42bd541341aea87bb2e4233c7361061354d291679d2bae5bd2be5584458e06dbe781505a296b1e9b9e83a293067d7014c2f1798ba298bd1598617d4d89f20e6e50a1ddd065d4c4dd209672cd422ce9411a966d920e69b42c510e88d5395b5d05ec1a3a5e175a2096648ffd1e89a80a12d002af6d9964f9ce63d2fe02602dc4f345aa43819e3cecfedf27c8d2633d12a7225e4e6e256b95626f16e186a37a85340bb6542b2f4c03398705bc4bf480c42834ffc0cc2319c4510599a4555ee8bb1b8b9dee4c8a3e24e3230e310b194c7633511f7452637628b9b725f42378331fbad83fb9c309863efba524051502fb190a2292a22c71c0169e3c10a23c20e2e2d3b427764ad9baff769b01554706aec472c88ed130ae6c98ce55c0ae91d94d1e71c0c21bc4b0db6809baeaad4133ab997c4dc54c5967fe7b4c4a5b3b29cfb6ac06a33e7cd82a299603dde723c7839d06157fa43ad0624121a4e544a02520fac712346bfa4290e351def9e8b43f80c0adf59ddcd2aa948009ab5ab129138eacacbcdb57734fcf073dfd52b31db0d4e735d8e8c38c22af2400f16bc1cee330aa19c8d29a369a2e538b303f06c487d5f165f67aaf00b1cea3ef1c9e105a28fe5cf6c2f034071b0641289ecbe164959d2dae06666118299d0005bf8052d075ba62650a97ed6da6255347e896acc56a978a4d0b1114a9ad82223efe595b28bff041b915b79c918223920f7eac771d8c69ba12d2958faed55fd1805c0d012698a0cdb7dc5e36c5622899b64b596d38963bf42d0fa3cd3a1b05aa5d8cf7bf5971cb3d58298e1841ae48207926882b3cf303473c103028a9fa861daae0692740737b81278d51cac3cbc2143e8af3b65c2c15cb0ddb6a61cb0c9499c7abf3be9c51e25ba2cf8591b70c99b7eb7952238daf5f5c8e78cddae1d79ae870b254de3f8077772bd6852cdcd4731a449565860bdeeb5ae7880180986b674cbc680a2b0770255533e35e219816c261746ac9c232517c9b75ad668c5f111ea47846ca58f4ab979cb893192e402ca119d7bbca8dd61e5d453d126fa45aa8c9ee8d6322aba523a24499343fa3a2cf9364210da8fa8d00d2334d50e28995521d57038a52bb8d00d6b0f58bd50c38f9af9d119991a85e5e5e6184a514fcb92e083dc5c901576fa36f549c05abdbdaadbb2712b81a000cde7b3192236843416e469854119cbf70c38cc8ab8775242e4f6b517149b297e57100ea97f78f1b7082dda7aa1123243d827fa476202a7f179743ceabb3a41e743e57d29859e1562f76ad9fd86f445fb646164521b3bf19f4323df145023f0131cf227a9214fca7102c146db83f2b222b07179ae629d2d27968803f9dfd444528233f5fd533143d21344d3b87281ff93a9df3693c7c3085a03bed05ab33558d976bc88799e70af6a0d283a5eafd5b45f02301f0f7a4f25ad294d52fbd5b632d9d491e9d958c6729caaa0749150cb09a5f67a127a36e7375b720d9d4e4c5e69c964879c0e3046ad0f43758cc4e061a682056a09f77266b1548567909da731b616201ec33ca382242104511feda6682330a42696d481d8475adee4ebc9f62a8f228aefa2928862072e270b07d5efc6647d7b5e04b1e192cad366679bb5a3f9778259125a2873721bed4ee1e2b8bf2d34ba82250ee1321843b30958f02026f26649eb19d3e65806eddf4d676921024c58fcf04a52fab941408f29a5defba162394d821c0324b80889f11d37132b1420b7f6b2a26816f651d325b61b1058ece0dccaa0f7a1799956f74a76433c899a991d4f8e358f93282a96b67427abd5b286f70b297c770f05f3e8f4d1994a9f011d91f43077eb93f7cbc8c798b26695e121a458492d23cf7cf1d8942f0761d36bf6ca4c93a009ddc38bafe602fa9b1f18e4b8c93fbc888479a28e7685c81db1c9d9e958f64cc69a0a4a78d3cae353d1ab26b8093b6db79d52bf7a0ccab4e08534652f20716b728764678048550b14f74d8e9c60561372080173313a4c4fc78813aaafbd1649ebb68ef29cd79bc63ff9a66ace51a9122a8d4d48a1e319815960f28e9e2ea7ec1345eea8698f13cbc2f90407e2b0273b09d7caba9a11dd331cfc4722d89347bcf085a0240699d8ce2d4f265ad1464114a3a9d2cfc1696456fbba8b83dbb64be89ed017486e4d1f9b5673105fbd77e9af1d4a6f9a5c26b335ace0febb2ee82bb3830bdcd95b1ceb2006953e1042fcd1a03ed088c7d8df370ecf30bf5eb2e663bc395c84ed5d4f40e0aa213977dfe52d94f35f301957d5f9606b17e623336395725984040a962189f6267590300cfa864cffd752598a8ec2aa4d8719acaea2d287b6bdd0777d885db66166e589c157d338b4d87559222d0cc144440125a9a45b5b5dd37be37f79980cc50e7cf0d349c9e2f09f3c382225c1033ccc01f94c0db08ab9f64c9724e9b88a1a76124ee69d5562547721d09d4a0505bdad18768055ca8a0e8299abbb7834744841b940171bc520b02779831e402dae28d7132beb5111111851ee0c6e947d207fcf2ce2c55aaba792a125d8481678db8381a4d2c2004e13c11b8e391cc233102f106cbbb1e55259764a046de82767a0d2477793b00fb523f9a3aafa3f09dba8e34a52fc527bbe0357b6c33feeffd3b98827e2e6cfe6924087955d69f925b8c0f003bc48a88e879597c645ac68a7a878961c4269cd2ae623caf2e214fbd02b3fc0f81457178fbe9a25bd5e33d9f3df3ba0de3f773e15b385e7214402283b035246d3b4b7dda8c1f169ed0f6fea0f95e11872a46384443a30b83f8b9b34a921e6cc0f51a9e0e1381fe14014246afc6d0de0220271cc0c0d6142e2ab4348228a9c1e7329ae01f689fee9ef3c68d350253b7ad09fc6936479ea2d57073c44387d3488e93d82c12ab04bdab1cbeda9c4548f5434e9dfc5b55186b708a2f620a933f94ecd14a5bfd7d52e4dcfbbef7c65933a278931695c764f7af089ff69c5df9ea5f7f3cf59a59fa48fc04b5e39f78c87c5c810436dade56fb311f3f9073e2ed981ac64e8478a61804fd8a5a70610eb90c48f330a0309667df5d58ca3814d8b9ee2ca7f4c4d5443d208333802b8c3fc09e24842e1dc01e87304633aa349b4a6f8737ccd9014256b6fac0f68d22256a846083f23a394b2f842dfc0ae69054dd4b32c7d3425204359dd392519c27c70f5354a3d64527870372fe4cc8cd9cf655d318c950dd442dbb5421f222d57d2698f1148ce71006256707cf004534cea40ee6622b58c7724ffb32718dd6008d2692a02c470fff62b3b9798866a22631a9d6c961cac986f73dc0ea8f12d04cacb6f7bfa0c098e4e567fa6d417e0a8697892426cb330d834c66dca904285a1e6813ed1485224d220875838f981686efa0ac9473fef65859d49452b32900fa8143fc9d24ad9216d34074e34f08e39fa6691b97a8e0bbdbfb636cb703174086346efb7f383e46ff874624969cda991ffa410aabbaa70425aff9e0a240b1ed140a68530ceaeb79c0c4548ba68fa6d36ffe08f91ec4af5810e986f9186ec7b627c2e1d306064c413d4b36d8db75c8e21107b941d026bce77af25d6148628940f88ca3c6c221b8c530e1af60c04244d2050a5a035af31fb1db6a0c698b3e3b350a310786c995ec4354a7dbfe1140344f877d719c82aad51a0f6e3cc3b2463ffa77132d322cab74dabfd5c43428cb19f2903bdf78f31c6249717ae204bdee95840da3d35dde20797e64044933061fbf8eb8f5a0abd712e72877daaca1d5d4264480f4abaa28b22cbde3cb5f0096dec666f25885a7a75a672e33e1bbde412ec0b97de97648c9cc1064111ef2f753e6e3466c13d70d341204a80a9c088bfa3d8972a36b2d9cc2286aec677ee3319038c4f62e291289d1918ae44ba8521a5f4f631002ca21d274131a96e8b90c235c98ee1811d72b78c6a2ad0178496198473bc54477284df544161c6e763bc3a171ef8b585f15238cc6e7fbaffe5fc4e7f5a4c704e1285923abd3aed49349b8308603348354c77aac883a8c2a03b9a3802d13987af498972a34a8904d1edd1b823cfe3e9acd7e33638e6c37167435125adb2c0c0f6a247a8182b7358f38adc693f4b193b2776203e516372fddd9a2717a97195921699408345ba27006e711aa0e95c6146a899f6d568894a55ccdfcfb30038b4b7077bae670479fa67ad46b3eacb857e256f76718622fda5600986bf47c56cade2bd84b6901fa14b06e793bc1964bee27cea71622fa540ddd6a3d36607f5129d1ec32e55213372549a28a0378d43a506ab6a02432d0575f5c7b6cf03e1c0429246a4e19377faf4573d83ba104ceb67769b20280ba4cd6c615a4cd1b49aa06a11ee99ea7795ae0e67f48d446f5d9ba04a2409d5d580049158927bf08bf44df7238e27a82b77b0651b61b63a9730487cc258f84f93db4e663db92fbca90c18197355507717393dcb7fafd4cd107d06eef41e2c95d892fc1ed3a3a4eb126de308b70482fcfaacede90a0806224372345d6c8abcf8cc7ee7b50aee33a38578c87e68e2686d28da612d487fd8c6b954533fb3dfd760634c34f27b6b6fffc2ff8c89fe38336b4501e17fa93df69bfb7104e5787b4a724f5e6ab9ebfedabf611be4c07d303979e4fcb57aad4983b9369e2b8d7b9a8401efc9d168e70ba656de5eab6eb604d9d4d2f69a6bb245dddc6f34b1d6be88620f1db48456201671b7b57d80b386f798cc0ba3a02cba6ff42c0711f38dcfa52e503aa03297a1cd4009adc5922de0d1461cce24464a9af5ee93a0232fc22133df450f3bda8d6def87a725249534cf27cd78f9a4e7815424b889924f480ac47b1731ac346d154c373607af30ee032d457c5d80a845c3ce6ca0ac2f4c0f647b6df5e2cd26d664456f08f0c0e68b4d54ae0b0923c8f4b8305561a9cb6efc30b2c395baf46c45e264762304566fec6760aaef00ac8410b922a108bd97e39c26cd682b325fd833a6da18fad92b1118cf78ce72e5973acc742d7fc2ec4883445a45e31850935fab4b1f5536ba2a9242ae6aa509687f7e01772afb1e8b4cf56088a8385aba841ec63e068166cbb77549d91dbc699461d212a9eab5518081cdd45e14f44ab23feeeb9927f277c33bda685f5664df9e6890afb4794d6819eb1c2a9916137a4a87363ea1a079fa109a4af4c78c057e24cbb25a53aa689f061be9147165881878fd7f3b3b7fb88754c43cf03a3c004032c4d473a316f135656b4f378ebcceb0302c03f30d2019aee2d6b9ccd7f1155045edf8e9101d9c1e499f235629f887d2a49ec4d14939d292124ea0a44bda28b5865a523b37883f6ae4adf6d1c6daf4eb3270e7e8ce889832698739c64242958f88bf6889e134746878797645411244d41c9c60c38f067dab313d53ac83416a62c93d22ce19989938c49f3653f50256558b5d8b1117ced389a4c02444daf642aedc28f37e3a7db38a6662833fab0c24344f665f23a075fc2792ad2b7ff6db292bf7d13a4f072ebb36f8d649d9a256eeb3af7db46e9128041c9624b8e0923803a6384ab0dd700fa5ae4f45cb57c321b79fea525c3c954ecd82a6e824c2e74bf1eae3b03db9c8e94748116778a44f0897f82fc65386f10879489004ae17fdb451aa3b1a6eba64521ff0b26c12bc4dfc51037931296dc3ba244b5d659ba1ea95acdadf0bd9d55c2f3e96507b214beff552eaab81607416ae5ef2960bd3ffb314efa0c05ac03263383e3e2962068ac1dafff03d47a074609af1b065eddb1975f8f30a065f08e1c3e2c4dfc6c1041218bbd01bbbd31c25e163f60d0bd962923cec7e1f4a21ab59e98d654a3b0ab68de5f470b0a20229f58238cfc4b4e73c7b996f90829f177b6c687313bf9a80e25cd4fd1f50ccd48dc66a3589608b9069d3e47ad9c01c2d61a43f670713acc226b9611a300caf476b0aaf6fe41ecd806747b8ce7a63cbaa3dddf5b4445a373192baa745036b88784c020b7c704ae427fc727186d243b48f4baf981cd20913174f4927a0d3ee35e9312b7c05e94d0fb1aaf1dd3ab0283becebc551f04a9ff8922e771e6e076a41c04a2bcba4f2ea963cbcb139a1eb9b52052e41aa830e49574c81bbd82cda0eaa109c4a6b39be1b3854be6995d014909fe94fb7ec5a513172f1d2ba451813911839ed33615c5a552eb760517a56775956c2b395ffb7b4fa61e7d506407736a2166df90591d1b376d26733f0ec173d4580f4ac11996888c57fd5b5d3f30d984d0d9edf73156b87560e1a8fe249e631df0f5623c6d7f936a9eb4b715c257dcb831e510de166ae9c344cb1cd306c2a864cadc987a63c6cdcf4bd9b41798802bfd93bf28b728fcf3ba5eec37aecc9538aaf18220eace05460510a11ae6decf9429ea5bf32c8e3e981760d82d78a786317e586b3a7e429f1bc08a5242f83f5f09d8f3a15bee310371efda89a65238831b437a5bc4fe60b4b24c0d4f6f1662b279e80f7e4634b124f1460700ccf35bd14e429e5265a47b2decad5fedb36d171d19c2ad431c661c925c9894ea0203e291c82188b0803faf48deb4a243f938b29109b34b2d0230dd017a493c8575595bf3074315a29cf4fe7ddc7aa8a412be0f16f85dee2657e1cd61c206298022187fd4540046c64db369604bb1104c3ff8c1d75027a4a92e7d29d79583105a3fdb549925ecd1de690d142f89169643de6893d15c7d12915672d99f77eff4bd066d0098601b302c8a21995d26befb0fb2c524612e71ad8347c32daded47d9db8a66a4fbf8479537ca63288969fc73052f36490403a28497d14b87174e5f83b6342beb0f3d7a44a070063920b661a37fb2b92d043136fee5fd7dec4a42fd68d49ac537f9b7698488361175d669f6fbf007bd1d748b675e379d38998bf9b45d78f5180f5810ba6b7eb20318f386318c52b2e6f41b6e53d76d6a8795322e9b250d57dd044fba83f214851401baea7158456dac55e2746c476280102b8756ee7a1e063422e2d854d61c8097955e98477f9ebf4f4ed559525ee4a3045609805272db4a7c8f89bd86d088078df554a9c2956f795556c049544564237b0151a1aef79aaf1c25080a3df15694e5469d253aaec37209ee61e5af405e98c8c275ed2246c84b6b9be1d5e4063c1fd3cf39bf78054fea888be3aa9abfa2bd7df4d06dfc90094087c0f3bf87524ed67fe42046dbf66fbd05660bb76a5876e7d1684389170ddd17241814302d1af8c99ee51c39a40401e0cbb79e9f412f5c82c459975dd4b32550de6bc3e8847c817b4c53c238b8cc4d624d3bbd187f0ffa7c44926287f2b53a9cc84133fbebd2bf0b25301e9eb842da8c7a7c7be08672bd488e3f3e066eca50a4b88a9161bbc76714a2364c48b1c127d3fa45c1935e6cb2262209796c75090ef3d7b4bddee00dc82728f5580bc5a29cc455ed0badfe6444c61154793e500c80cf9f4447302950b0ee369b91d1c553615caea7490382c256194a81624573b90aca6042238d1fd38b1b87b56119e723e3d60a6d426e603bf8e33a66bfc80cd83553d40e29994a56cbd7aa073ce9d7658ae47170d2b0d14fad2cdab096c261ab81afc3314ed81172e392c0ede53b29f2b7aba0c0c0424fbb5dca29651a415ee2ad7af8c6d8034bf55a90703a3462a8b2f38bd7c395763ba8cebf57c96b94b344ce73c508633298d2ae37aaa22819c98e3b819f887229286a1d830960132bc30fc2d3df78917aa1a94651f304b40dc16860eca934abccc77aa63caffe49a18bdfd1dc4fb7674d1125d9bd0b3b240ab3571f101fa45369ebc3c3fc44ab3be98545398c5ecf7351f6e0bb8195af1259ec2531c2bdac23dc0f0a7681169f9357e6e5a39bfabfdb0ef5b33ec6725efe028faa546ff14214fcd6a24ca937d4049e0ab1c30c1a7e3c8b579d4fae4fcc972180f08d570cae9d1ee4f14cc1df91329c941ebfc789dd0c84eacea12cb96499ab1db3c4aea9aa2a1bcef6164b5b97862127fc0c296e266abfffc68428016b3e33b11cd3964ae4d4a3c0383e2e5a6f0722516477dd301536edc391f73837d961278c18114a8288ae814633a44357c0ae262ae9eb3df178f409a3c06015afc8f61d28b446559348157c944cc411ee257b626e740dd660cd8e3aa106f7ba38f38e0910450eae0cb15587181c91e7d919662b8cf74c9fd897e79ca77629b90b6f4383ad35725600ba07239355e0b20edaffdd29320f062f211821690abc8c181be11721314324e8ac02e10cf7c0f0b26809bc03a64d7a04017dd53e6e6af6a6ff004fade69bdb74684b8d1c138bc6f623711285522ae0fcc9c22b20b74b88374d8b47036249a77f209331ae2149c817e72427260e2abd00abccd049237677591cc8c25ee000b7d91a606fa8b41779362387606e200adcea1df42bf33e85b908a85505e2578fc8e000ba1f0b82e1c4f250621c9ba544c4396e2901f748952e68ecac4fb3447de8bec2f045ddc45a0f4ad09191212f32a94f5192ec9774f705413d4f2f75d0b540739fc59d2efa2f6a2d6d3bfc56746c8efb7e1b4109c98aef05d17e0fa5617ecc8a65bc004597b42078564cf408cf916181d5ea1c7805d2bc0fe3fc9d3da2181a02173a1a26b0fb6ef3642c1b09ca650708e6d2fd2f118fce794437a4d6e42b775c5119a93e120957c7905558eb3cc64807783b62bd38b5c84477b23c5dee3c74c7d40516a8235c0fd4b1d34065e95f78d0db695d0cf161a3ceabce7627fa72a317e40806757127f87541fc9ef600e288c92840cb131988957e26635ac90f2ab6c0fc430667b65dab69940212c6d57b48d660e2da70b7cf063fdc25f704c476b9c19fdd0b48a10d4c876422b9fa746336b8cb124865a1974a0528e7680c45b7a53a33d98cafad98bc2bf3f9bb29fc3fb5e83f453fcfc05a4f069ba4ea60be13e9c64d58911144b216d68bf80ec2bae9f090882264021a0667288c41068895d8d457e4b74cced05c0b22aa630975a7a36c5a1b9856cab14341f9329a06439ebc9392cf237a4f58dc3cda38733eba1203c8644040daa1db7aaf0f4aade210aefe8a6de3c03e3836116e33008e643f0da7b0cc05a4f659e40d02048fd08dc07f10016102122084d556b9022aa41fc110487fabf23e206a35d732d20e5854d58a5e85030df68401ea166d6c509a5e0b24ae1612701dcf07fbb60e63c4630ce63866092fc540fa2d813bdb5e6dfd806a45975cd24cb5a8f1784f7c9d5f4cf49ecb623362c3db8e8bee67806ef9b63109db7facf9a2d774546b4bd5a86026e2dfccdff591c90321f9fbe5851a6b640df642ccffd73df645bb1f27388705585edf690b19128765ebc42ce5e31ebbe474e78042682a53212a95f4056252da47a2958d7b29e2ff97ab0af52ff16042cdd28c588129525f88fe08415593987dd68c483ca155835f2c007e5841b8754a66710b5a16cf0c9e6571de60b58ca7946d5d5ce9174b1be42c38dfa519f72da42fdce4cc0254495aa0e21b48cf028ab4329d683f924a3c4b1c567e6748bcc515fe3f39c9e1e3d03519b045bd617aee4fc3e98eedd7360d9a78db6cfee81e1d323d84618ce19e20c5e8984b8a218abf1f334829dd3012b0191d31b2a4dffe085eb568e27b9e3301c4e703a62c3d21bf4c57416e44fc9104dc9f7f5c74227b970f5b981431689c5e20805e8ab1752e8565d0c6f4453da8c5dd763b192380625230246997ef5177be00c7bb84cfa49eb6fc42786b766e649a13795b59b3de3d0b8e1c57042dd97cc847151574fe31b4c21fb23304d82ee4d97aa1aefb05781f3740428b1753322709f2acb281c8549475981c78ec8e5ad56c46076d2062a845ea6560caebaaa4d471755c10530c50d0c74c3531d95c0184cd5717802075c37df4d1707c5b6b1a8b47cfc308018a6b50c1d41dfdf24b5ef0a4b54fe09bb35c641523f1a85c2074de13de41caa95b87e3880df6ef33e752fd7ec9188978d1e31c388a7d77584fc9b691555de97197cc5f491b63fff8bfab537071b4c5085aaa4a775b25906132a0a23745583d609ee858ac9c21c9962b0a233ffd61d44aa39fb646c17a1873c284e22f1952dc05c5223f6108372d0595364e13d8fccbc8522870bd93a8ccb9a11a0ce46ca7a6ebbcad3eac06f975e6887d0169fbbbfee81981df6cc6466c9b06af3ce31ba2ea53e8cb943214fd602a4a8ec59b89f7bd86704f59d4b5caa2a2210eb270a8c00aaeffbecf3e4eef24f62e1ac47503946b5d2b9a34dc22544e91fd6d573aaa8cd804abdf7a1bd4005ebf1ada904cc857f0ffeb8626402914969c060d8e2e6d0ccca77853ea6c1348d6e148849fccfc145049edb4549084158e9f36b8fdbceda8a1dc89020d1539b1312036565e67a93b8e80f3259f0d9a057b7161fe59e6a51d0efe46b651ffc2fa73b79c57cd9a113183637fc28767d6152b7543af97ed0b7ef955cef3aeadc710ed7eea1c6393c3b105b6d27f78e40f05642e9848088b3035a79112f80e50302d2f246267cfc3aef495fe94c17892e4c65dba7276e3bc9ff13f167f08f0bde085d24aba1324c57e71bf1097c9d1812dbb3891fe0e718bea78cadb6fcc69caa15a79adbae646631d9d5b69ad18898dc69cb6cbd05cf367c417ff9ec5182b691368a583a987778a6b1d4d2419eda37d03c750c7e9b863c04d577301615f465c0b01fcc09a7b10dcbd32dab5179646eddacb8bc0a86ad0c67bcec433521cba35ce4c2acdf57e22961656c9235514aa06b27d4ccbb0199c1bdaade9798cf27b5576773a0bf2392224e6488e0f055fa099dbc2159e5979238fe85afa51c4e717715f03535021555c9a4110c8aeb0db589317ec23b9fabace3dc5b9ad775bec8fbd42ddfaf126d02e63356b89450df4d2647fb31e03092aac218016dc6c10858e7965b1ac27f9181a712fcd88b5a890605a9d6f6919276373414d8f07f9ba1bda689b441ad025e587d69a4782bc43295004a9f15703828547cf972032a8e77a971e180484e1b7dacfde131fae65a32bff2a3302cad6abd0e229200ad358727dfb29a2c05f4fcfa8a9cd28fc7ca7a11a85ae5d4e8fa16605278079a693b213c3b76f49509fa4cc841ed436cfcfc32be6d2a9c06e3ea0b45dde00c0aa4605e55437c6da017a214ef49b9d3a82b54bec2c91fc8288dd472ef517f91aa31cc72ec59109cfd1d05b6ff92c39e813c693c81ef3f78ba6afceee87a8c5b9766c3014496050a24a68463d8201dfd9e67fc2706b69ebbdc7c0059730a90380380ac28180aff99850d3e5f763bfd890398fa5ae0856e2c74e336f94d16a69418e83018b26360e2cda72432a80a325f7427112f18c15c32c6f938dd2c874369ae7a1c373d8e029cf51b5248ab393f484af600959edfcceb4fea04f9fd2a18d284605a3f6da487302b186213480031d9d2e858069e2d04f77ba2f7fd774fc5d0b5da2b142e3524072419593c5ff16f7191b6768053f285e434435e8884118b0d23a1d4ef636818f4c80041ea59908ff0cf983aa7d43faa97346d9cf5b49b05bbf3a74e7be67653cb34a735fa19ec5183bb3c6e851b2338402c2a6b34a873cb76cbc3c548576453e3da1a48f72085dcb2ecbc699f7315290909b8cd0038211e47be7c31af043209fc9ae178aa6c3c0a520eec0ad2be8e4f28d4e33436eaf85c4c89bf4b8007816666c195229537f577d7143e579a0f355a21d849c79e8cd7419be9d7fd3ea50aff7013a0ddb73af4531ac63381683e0eb4781cd378438b3d117c27a01f6e6d21dec9e2efab4a80c4166890a03758a5c06b170364b858f582ac02b55349501490eaa9505e9a6fa7021e5f2446d896ef0540838d96c21cf84ae89989dbbea25a9e91ceec216a8e4002ae778c5e53493fe2fcc7d8cf365140e0b531d8aa5f47438a68696d5ce1249df032f1905d5181e2d4e3432e8b9e9d27477c2400e14bfc0280d51cc19efbba455a2ca94020638bd583820088036ea139335db8edd5f939f84283088188cf45936473931d50998cc6b683c91a450d5f0c74f7b8bac27595649b87e004ceb8756c70b18b432c33acffdcd42f3a0e533e496899ae25a3bd6d50510fa7e698d5a339c7c857ab13db13fd2a395f4466b6e4815766f3056411d664b0fb4f97a6ccc2ee28553ce622454f92a7d4482054638171da37e5bc28e7a07227dd6bfcc1a23396f04a8d079e72f6ba1cb1faa217a0a3f710a3f39ed87fe1218d410762592d7a617814578f3a120d33aedd0fd1c4779762ab0750c508dea9adf17cb196c1aab6ddcd6d4a03106c9f5f23efaa54282e335b2f59b7f3c8648f5f9755b194e711b81c3ce6f4c29c51f1b490232dd3bd6d1352819e6c90653a24a0ff17209d6ee7d09ae472b6fa03a3fa82702aea828b08679aed29304f687194212d3e111f366f24f1b59db1a4cdd2105909288386902cea6f2f4e94faad493d571f121a647fa19b8c6ff74c2eb7e02992ce6f1967f82e7e30d72b1b23a4794b0960602ed66fed84347dd3cc9a6f58b5b9721daff807391d0808a2e580b8634b008b6ab60eac81cd072bb3a5c84d800eb50ad36f4fd0d4a9df34395a06d89cf90d4824ad60d9161abfb80f4081fa61d37b9300b5e8e6940ec7a5078a5b60181a59c457ba29eba9aeddeae43147b02b0914e2d36e777a937ea4dab575d38b0b42335d33c4ee667ef97b683f750c990183a1c04ad25c46c2801c8d7700cd1917c644dc5e2762d0b44f222c3150f414dc7d3fa06b88877d3523eb87563448825c29e2677dbc938600ffb84008b5dcc92a878ec982de2dd155ebcba92ffea5428c5d135af170393572861f2f060d61806587f0680466920ca15ccb58bbfb99d24e25857fbd25396e34ac2a94fdd8e827946abd051c9499ec19c6d3d01000e8121c4b5578a6494f9219140a2ab6bf6fdab34ecd29e68201ac750e376c428cd23aebc317dba0181696c5438f1bc4adf0d8b894d933a37197908ed30524ea7367db4be4badb80a20899650dac35c051f45b314a2ea507f073b3dea8f7e385002a78a7eaa8e89ae1f31c1cce1bc4f86de531c2db7474d299b8d465a2af381331eceaf42c8008180e3bb6b661177901d54e737ac5f34e61314181cff059c9450d41bb6d892c6b46a79fb15328228b618692514ae7a6edab31b0a177a136b4d9b0a21a228976e30d52acab0ac1c120e8bff887ebe9461643a998a921709e433e3a8d13d9cec42523541efd14bc68287ca063c59d8f50d75cc4c568385df57a005da89669778f67195daf30bc756c662005d7f656838af3b98ac24dd85d5abe65289830b84e8f166a36e43fe4f560c39ad02e587a676082a2d7ed0e924fb0e293a5367f2c0b114c2faa4b08cc7329e1a6a2e779b5d90a36ef6bb11a7a687545539eb6b00d6a24180144a839c8e696bfa63733ebeb997f62299caaf273182be44203dcfb00dee4f6a788221155357d92fabb7d152b41d760189492df5ac8ee94b149d9fd60ccbda6239d2ec26c360e5148822043f0ff63c8e1e2f615b568d851dda451e11918520de120c961de469643aa231b9d20f68e6862786e0fa04d4f788acea8e2623f3820a09bb22a080735f6d182fe975284c6ea858691967783dd583e9880865a6c2999fe19ada8f3355164c6b3b06fec3d56a8fe53297f2df6984eaa7125db05f1a3486889a84be7803937f28ce380438eba18f69a532d1ae6e08791f46ac93a6a2cb149b7bf831e4ba3d00df1fa2a4b1235864e519c2ce5e0357574c04fb5ce7b2aaee46c8b9aa612e9fe06026eda29d6b0d824fcf7bb08fda901925db8d234e8abbf291a1c9dfa6a01ad1674a4db1009d22c5aa8f8bc17f3ed458fb621b32562df3f8425733a37338a38edf285a8e8787ac6b59ecfd15236fc21ffb7c58a7784fd95214d0349633f9c5f4e637dc69cde7b2af7755c04992074440d293ed825eeb185e4f154b6d25e4e710a7480f3f440611ad1682664201d2dae61eab722484a0539f418fc0033e274c00192190db0599d7d097b25d69b3c0a48cac80522824788e8ce79cb050895d620e381e0d31b908d5f9a53a11881d004959504a31bce99a17676cbe0fa5163b780fb33186e08956e46bf1e50b752d457178c3f0da21a7e07699dc9dec7d9521005066452d0de6ed50faabf35011b4a1a95610c15879a1b589c2dcc114fa3dc25028a34dc15d195260de508891c4d4da327811351c7902379d1accc0427da10894409c93a078f5862e0d05625b65e968ea6d35c5c4655632445b988a280e0cd91bb553f626106a6fc5cfe554a29a3980d2e2ee6b2613b09cd5ff427fde8976853fbd0222f95e6fad1b50868ccb34b2d59efdc770aedae43e02bae0412d0c2cd13c33b12cbc96d6d388fe4837b249b9090f173c134a85f035de4d82c7dba2a9f41e2210a50623290d6112dc069a38da037e3fa320260e8998b80b335650ed205a9e47310c8ca282da38f7afe7ecc98964c1df257bafab4db20a5d762d4b09f8f22ab6ec1577c9f69ae5f556369a7e45593d281b28f85fccbd34630c573f7edb06f741bd0897e4ba25ee4f3303c62ca098106587a383c70673d13cf73059ee479a2a2cf6a833af09f5204e7a3f279d31dd8d043a118041f79d7ee721bb9a125b925894f00f1147c15fb8ffa38d591411bc02efb48827ee8b49fe7128398e70eb8601868636bea3fd8306b49bcfa15dd304be472b35d8ca06c7c663783b744ded8e9e2beae66f2c8069b6d1c8d9248f73a90d2552be2666386879251467ac17a9da7aaf97056962d0948a75571c5655a32ef0057b62046e5e9a46110ec659ec68b0a364ea6ca726b94c9dbe73adf18f7cec30bbc3818c1ab3ca6b935d94c4afd7d0e9509f59a0dda60d03c5bd303a80ec72d20096203ba0bc69229696ca8c0493b9b170f25a335dba4b338e0b48271740f837dd3706c9f703178d320ca871c896338b5d5c5b2992694bd0496908c9412733356e4eb643a365d853eacf8fe515dd41e8ab62713f457c4e8f1ede846e8a08e34a343b445b39f47544b2d65caed99673a991ac7865678f0f5588cb0161493e16c417898ede564d5a3ba99653b7cd17fc01bb71c494a105e3983e85e216769f98bab1c81e24dbf6ce15b01f43311a5e3a8eaa41850ae7967f7df0bb68e5abcda670759b7d663bda3cc82846734c00d853f919f7cab8164e00f585b07c66ca8718813939a72f7a97ba79d819916a880eed92c49c7a1177609d1167620b836fee04135f456d11825432a0ef755ec3c1e1c275af6faf5099ecfd8d501858d957ca2a36925496bfb0192044e697d649b409504825a95780dc05361e9fd3bbdc4f2f8d0690ffe8191b371a2d625bd4197609b805870d2eeb55e18cb92aa050e55f9316378e168f79ad253801ebeab8a8abe31e34c6e76da362e9461b143ae622f86fa27ccb448e63d875f4115bd5783fffc6b53ccba70834ec2944d286288862b99482df320585661bcdcbc51d702126720eba10985c7779c9c6f6fed0ac332765a6ad50274f26b39701b185787f0d4d42932bbd8899e27992c9e1323764b4aa3de50dbd5bff0c08db41ea9463442cd14f80a327f61f159c97e5cea7e8fe7be7464cce72cfffbc570d25627501b4edf45c7fa76269efa63c77110345044d1ee1b9bbe001f6a44e2b207d921521a31e2ea9b1641f8cd9cade1547b0877dc9a274778595a62e6ae34fbc85f28fc895da7af3526f70360652ac6f521c6f8cf7a15b2a1adf562d323c567bb3ae5e810da2bf287a99050bd3287f55fddaea1db9a8dcd176eee20e2bc83724a3d6312e47def749c1b8fc0748b130fa9340abe16934c31b314c081168c501387f56f4c11cbe9eb8a879ee444e7d44858c159b56e0dc9a22ea93d467c4557c8c3b618a4e2bd323cf476a668a400a5b5d943facea4601ccfbf864e230c8652daa5301a563a910336dbd761686c0983b83f950e3fd590a2499d2ab83b4430bd876a894f52c5a336bd149d8467a0a33a31e83b49edc0d082b573151c6d14afb6aca21dc65a3305980c79c6404521735a4b617d17a7d4b48ea5ec45e9e327a49614fe809c041cc9578824769a277fda090c82e281d5282a76fb57f4f1d0ef6c45d444ce629023ca4bc6cf10cc3b0ade24fd0d3bfe4f2546edaae3fd5bc065fb05000776f8dccb8e59db63912c22261ed86dc70e998df23cb512b9a9413abeaac5e2df8cd02168162a9a40b3883bde55a902952e07a8c566e07ffa7e2e9f348845c2b72bb67ea28088007b1ba00f0a9a18b4065e699195a41a8e6b3d4332b2e91960277499c46a752fee3fec7dba1cc17c2eee8ec1678dd4bc72e660a0c7e317ffd0d0580fc1238f6483af622b552ae6d33d787b0e0391ae4ab9959472e3ce2bef3853e3adcd544fba956c66284e35c8800704d3af5fe7d807eabea75ad6eba535b487eb6822fefd5f8744cff64893ccd1cf6680cb2321c66103d3c5a9d50a611f86dd0408ff5455c3956c477becaa546cb1e44c342c42b2c15ef7edaaae948e3791d970c162fd5c3836b4e81e6794ec7a2a3b719e3ad656a9a0fbfc74ca018bd4683e8268bc45bcaa601adbb93f606218f78c6064e9690778d72b1f8bd251ac5d1d221ce45da56b3f39d6380fd10565f32baae3ab64d517be376602ce38d9a2195800bd83ed67c4dc9f25a61f0dd11bd023945e484f207d213d215d8113dc45e90d44b90c4cb915f8c1d540947b48d7c095abc00b6e0da4dc84f4437a0646955b177d64e3807ea1f484741ac81d3b8a03b29fff53d1b6128e208e8e474911c9170bd4f32fa5207f8eed307b13ce69b1bb702e8d0772721f44874096ab1018f161de954d078187e751614e4b11854a11e805a6074ebc1bd06912bc9b42bbdc51389e89c178cb6916c1235e93556d205efe8dab3c480d7a898ceb790626915249ea24bab18720a4a294074a0bb2931a6b6b9bcf5b156f4a5dbccaadda4fd8305ea4439ad85144ba6bdcfe39e9ab3beb4b0ccb3bbc2b248d847900fc273ac25c60b5d86496688a6662991e0dde3a3781e33a24bc67c4fc9535cf5252f75b1ba46500e46745e5803662009343aa0cac0e2918dbb0af7da308fda8a5b837732a78c34da8f7e16b5490a451508512fbc7e6f4002f46eba33305362b50f470f83b00c9f9db5b401166c76ecd1224d3db0dd41dc48d45bad329cf53060c632b75081fd01cdc79af573aa84aff69880c1c5f569c6203d69924b7f0f240733084580f6c65ff58c6cb9127d1a8743ee52678b2797d6874a100975c608636eaf4d4b6492bce34e7f5788b7b46b8dffd3935b75a31bcfeabb4823f3fc5eddd1f093339df4dcca95c5f86001441074f45ad47d45521739641db982ac7febbbff832c281c5164c01d24c5a3d6dbfd4a18d6ad7b42d316791a7f9d12ae9a89108f7fcf364008c18c7949dcb731c7eade534ac22ba5de2deed4b6914e1ed31a120ed5d5c19c0bfc07e36f0e1b4276517a92bd77600c4d79df70a07f03122fedfd60a8252856121a762af0047c205501aa5292c0371ec850dac176aa01b7d4d78b7369f0fe6bbe4b525fe18649502c873f89e89ea099a1ae9018021b2fc6375ac0538f99578acb9c9450b8919dd9217cbddf0b52fd0daa73407942019afe49a46df5e2fee647b74b99b4bdebf095cc4d6e02e99c0aa8f532413f86db216ca2089ae022ee563c44c0cfd0d45fcf442e864b47c6e4e76b853848734d55d0e16cdea3107529e9db610707f950a02e584db818b7bd58003044a52d98ddc1afe7fe9a4f95f1affbba6f4279a233d24b38c3a32493eaddbe40053ca3f0afeb505032715a9f9e7bcf6c1bddbe19f8c95a2d52ffa1f64a0bf020446b3d8efa7a9f4e14b0fb668b3ece8f0e329aa55ecf63821cadb8d06ac26ecac5630484afeb125d4db8e0cbaa280ddb9754e864caf0dd3bdaeaeadc06814d0afaf98dc1ae7911accb1c4c0e00034f4d97ab205673a6899e244e378970528f76d4ba41d909ecd07075d1f04db337530d1bfc348323b4012207142d54536384999b515b2735f4409c1466fa40d2613824793a281b1e64d3e1e827aa1c9c7d064856147e8c5665f6cdce911fa1232c414908057a19d549bb97623b5ecc85946e38b449cb2d8ecc0570bd8df71e7abb0829829bbdec116cf050e5aef246abad467a1510cd4d8d6609e770e50dc3f2c88017c34cf21c3faa51b02db7f875542f2bdee397f93eb87a958034424f7110eada667802210fc706725822463eac6f8077ab0ea7aa7686e500b2b7a53b036e79e5ca82e12511d101e358c6927d01ebfa09b5680fd60dd8dca480fc93298a0d55c90e21d4d4f037def6d8a9f0276e3aaf3a18d369cc4fdbc07cab4cddeaff42f04edb3def36178ae0d46acfaca82287083e883011d2f32490ceb688e966ad98355aba8ef35b9fcbbd26225e1a29b5c4e1537a000bb074a205b7294b2a621d43aac2561d5f85f04f45f65833229577f576b178479321b288a3a4ff3c3e796dd870fced69b7eb16a8f48ad2b8e2bbdfb69fca1b0c54b56e1cfcd2ed0cd947afde128bb2f9d69be1afea1e134b5404d2bdd6a851fb327a531462c20dc1b11439f812b63f5eb479f71ad3bd6cd1c73d0d5fcc0324ca3285fdb876af5db35c79de714600874fbafa56f0e4783b3a5549e2d3b411d31d705b0f7d45f1ce2ea9903b874c6b3e5765c42fc7a54cd62cb429bc530ab356b95c4c33be0290f141739c5aed1866ac633c5d9c7cd071325c97e32b6f8830e96ab712f6d45839b525df854590f7dc65e12651d37fa87309f5f190ce1cc632e93afe75d819b18f48a4125645ca4d707d501df97e035a0f5e7a92686588796da3393ee8684e55261e8ce21d0abbabbb738784423a32b2cbf5ffb23c289fed0068165dea55e95839a0e52b135a50a1724ff61ecf5a9325e03e5ab53b0d8072cd5ce096c56e81629d3dafa08090b763b9349c77728fcf88495b0983017fc572e38562248eecb776da02a3b3eb228b690b8d99263ce7bf7c62dd8a7424168675ca0f257aa569c0efc2af7abff3f0821f7556574eb5587587909cc1996f942eee9536a31f3124666a228abaa6652e5795dc06456a3edf4358e3428be3488cb98de8b706018c3f947787e2f7a99731e0c0b65a84c7f918251985d9929b16e42e18ad809e92200b0c0230480623294015f801087a7e84fb8997c8bb9fb4bcd27c1f379258f09f2902f76ce953a43a2ef1b84622323c3818b5ac4daee4a1761d91863cea992babcc68a6dfe3bfee66620e207c1458c34d61973985c8c4ecdcb4578c87785408233054c40065365cfe92482560b7e981426437fa930f2fae179824cf1561062c4a94a8426ece9d1ccf88f6d9136f618e882a490c72e97821a361c4d361fd8067bf82605df186d336e05a1ab8b0991fc225ad9576243142239aabee402cf535bd331a22a05b283b202463f40e351624f49a97b03109f2020b8896baa0fc61a7d05d61e0343c495e88910a3eb1dcc3cedd7aa82f8bd7d850246fd8a2e2ff294f8fd8bd7980736121e6c35ce5dbec6ef005b73d2ecc1893e5369e64e98e4f15dd809bab51f2de3b6312db5bdf01f2299f7796934900d5b4c0397287201d000b52b16624634c407ba4ca5ab24c30611f8b8783952cfeddb80424002979e0a6668faf7e93d64887ffaebd2c3ccfd631aec4f00e99e29af311d46db4ab2ee390a99b7afb6fd48c0bdc01f61c466ef30e378c05dd6805ff4bc9b1f1339801d9356d5d29539d340d77bc5294b32f08cc1a2d8455c10644966eae26cc7d8e6ff9995223ea9a10212a2b0e222058f225b0db679bfc44ebaee664e294c520623295e104caf242b07ad8390f3ed7b12bfab9258326b492323396aceea14496f7376c3092d266f12e5d31bad35c98e6ee67956128b48286bfcb925865608583f950919152a3596fcf2f7dff8dc161cb702b2821f4128eee552bc5634b58d6470231549363341f0a7d22e49c828d10777c7318f6aa37698b9255ba752a6d7168c24a9fed4108e0bf80cdb624953313abe536444f671fae72a540f2c47277031a387e6b982763638b6f96556bfc0696b8954b1b3a90aae75a6e7569f288d24ec74a9c8bd7182b8da95ec7fb01b508a6c191da7c942ed76989b39b610e95d68a6331d14a64ff353d0a8d4f0570dc2e38b06a6965fad5a6032d298c28ae229871aeacd0caf9c04052ef4c556cc9ced747c065cad9c37f7231a5eead7e0075160ced1397e8f0993a026e5aacc9ad272dd9c64221afb138d521dc20fb8075529a10219aa94dde3739153a138e13ae24ed6833d8d3068f29ad85131762bf42d1d26a7c90fb3ca45df1425e6e6e75d4ccde9100c9a1d529a634a4fd90d05fee5fff9471fff11bb6943b31402d34d860ffe5a2603d45a261ce825480e868f098638e29d837924d07ec3c33fa30b71493a097c023599d63cc225fa8ad624cc032765ba482cc7495d4cdc55eacaa0a8d4e91139a5748399cd9fa11fb47c93b7d1789a675387fab1d5889f5fdf5b418cad0bec1dcfdcc72b884b00f0d953c4f00e9cf550768e6d1fe880a88ab3161dbb64ca6d6bdd6e8f108e2e1fa53a9bc783061b0b88061f62e14288c1b5078f60e2ca611a52f93d96eb1b65b7da9e5266a7abb485cc87271905b30f0a078e3863d1f04b259b03abe93350350146b28027271163b919174b08cd530cba21e45245cd871f4a6512fec06cd0a28be8be6f4975b325e404ee0fc0455fa124f6c695da1d3033db2afd35b63f7a7fa3b2d23f2f051c0cf2693387c55345645d4550f3ef6d1ca0fd2c75abc9fda037f0a3e7c2193b0084af285d8216d07d03cb42a32c8859884b7c41ea772ac6174087e88347c21bc7d49bf82173c04a2208439c60b06bd542a5abcaeaff1ea5454341559bde27cf8a7362c69f1fc0ffd7c6b97ea7509a4f214e65ec8fd164f477ae1d0232fba06f816898110ca9c585bd278948a603840181858c2ab7fe2e48043e4d861e99f3735eb5bc5b3751049cc94263db9b6814a49f7da4fddc23d58da478c08a19ea03caf67912b3013cd8039a0a5f9959405c514d07c91cacd42a6a9460bd52aae30ad4a1ee5c289a1dfa0ef00b97432c148d3f10bf8c331da477c797192e949d4146b60fb009194e14b8ab79ef615213359897efa0a12397e7f6798e4cac95ddf6eeb6e5de52a62465c3097a09af09ed65ef60ac21211f5d55a0b2cf7d92aaecb32ccbb20b7c1e490f92ffc0ec35f008894797021d662f6d2ee0a65ab309b889e4f6ad10d882c86ab752a230bb7e63cebb03a068747a8812638d2865b0d5858baa51952a7f7abd46fccdca105252a252031f4d8041137634e1034c88514a69a63101e614670db40b61cac8fae8c2ed04137eb003e4cc0338202c2c7a09a254aefb9cc96cafd1ee3e77ab0b9c9f828d254a196c95a24d036574d99e821e5d682c6d7f82b7de6ede3eba883e46974c5f12415f136111bd463cde341cbd1fea0ff9e2edb5867151155d496b8db86aacdd206ed0e8f046874da3c3ce3a601f57103df4bfd64416b3a85537b1c4927f952c968584a7f699858735b1a182fbe525a2ff735f931a8fb37f9cddac812ff52546b7ff8becc6e8d0596a7bf62f1dc660c9320d8cd1a17f65c1fe12c36ba6652c24b8c1daa1531590224cff9c765aafe1e24a3445193346eaf73b2fc2f8d32987e01a9aa2e69f90e2478a96144e48a19282092978485113c517a2c842143ff2659451b4321c5d51b0a2586192287430090d17a3b019ac9544caba6f3e22ab6d032eaee4bac2f3fb1465fc8160c2f6e91b8968d22a086c0956907d457ad29537d96a372b5fb969025e9a1f13f3f21286fff16775d38415168670962d6f4633fe887cc8d3959bb21b2fcdcf4823fbd918eda586db77324660475e23c21084f0230840f881ca073de0c1ce0e74d0844e0e7070031f4cd8a006393d6830031c19c460892873c3c91881cdac882d13e60cf5e6e6d482453db99348d69e6e62625e5ec2f09f44b2367abd9131029bb353b672d2675b4f9eb3159ef4c64dda4fb596846ff07ceda7871c9bb593f683a775a19d5eaea20cc9cf97564419fa74e5a59969376ea223e18b76daaa254d921b634bc8cd20f61bf2fd920a393fceda8dc8ede8ca4dd1e77cfae326959fdecd1525e5b99b492493df6e0eebcd2fafdd1c8333fd51b92924128ab527b59a84e18bfb126389743f96665cc91881cd7225658cc066ff998214a2e003852aa8783d01c8142e273481092d29a258420f144a788295042438c173042314611565c01b61b0d953f0872f22fb1b61b03ec89701022b7d85250b4f7f9f7545d22f64e002c2d1e5f2c12f7074b956387493e4999f5ff074f17c5088571097a841ac4de0d47cd93f3df8c0e61355d04cad562eaf0b9fe01c7aacc339141b83cd7225069bfde70a1f1c73937795c4c65c1dceef8109fbf3b9547db98aa5f92492b53df4d83c5378ce9b86c915a761f24c354cfc11e2d1301efef1d27c4bea1f37c958924fab9db5ab9452de938e6449482ca93ba9bfd2304618a18384e91b7144a57f0409d31924e2423f81a69cd0011868aaabbfdcddab7715eeee3dc56c7777ede5eeee5d057dfaaa4e45d6339ba7d3e9748494733a15f2dd2715eeee3e58bec79ab003dc3e41415210832077f7ecf5a98c6083d5a7ea2adcddbb8aee97bb7bbfba0a77f7aee2b2540fddddfbe5ee2ea9e82a66777753e1eede2f8a52420ca8801b5585bb7b53e11eab3c313001ee58152bfd7277f7f6297472b073029d5775208d4423e16840e23445116211be1f2274608a984fcf12b157f5176c03eaa103d84bc6a68d114020638ea30281158e735be21a29245082e702893fa2296c00e4e7a543088a47063a0011ada215475042b48ac2461b018f1f481b47751439f080a35e20a8e281202238a13a109b24608186dab450fff848a2855add1576c082d68be753e20854e079d12114810854e7559d6485cc21ad98487062678aea3159664fa7931372ac9ca8bc106405886c89e10454c8d6ab3a90b0a4e70a3be1d0123425187ae560711103a11ce460a97556fa14486633205ad58074cb93a85941b75e33ae668e9395274c30831c27a41ba6b00110924b3f22b319101202aca0070b244f7861f1028435e2a1fa022bbe38260021155faf6e0a1b4cc1448e6ec6d57c428c915714558891e954c735e44dab0638d3794929a50e97ed2f80e021ef111a96522ac1c5882327fd7acb8f5edfe04027c1dd1c382e76383bf7a68fe44f2c6f9400179be3647bb400177b58393834a71f9f1faad40ea1a0568f8f1c144d909fd50f1ea99890abc5125b22508751b67a7ce44cd4a409f2b3fae13c3c151372b5747c744da36041785692c750ec95a2b2ddf725b6c4b0e552cee8cb9237f0ad808b71de4c1e43b1976b47c76dbc0608c6e2c1e99b3e0df9bc543bd22628078d9514959577d220701c17efece80327dbfbbe7cd1678c31c6483ff3186347afa263124ed8ffbfba914ae43769c719a508786c718593a497ab9796afdc248374a93ff395afb6958acafad0aec30e7b939a9cd25fec8fcb9f9f493f83659905bcfdd47eb66763fbd91b3873ec30e8092e650776e3babba597000e48f9819b158e5480c10a063bb893e9ee5d8cf8c5e7da1cf566cc593d93f7871a8d10638c114b1d227f17a927f2c4b02bf47442424ff4e49326336dab6e45b23a59adb054a139446968cd8ce1fe09d42b376db00db65aad561b9088661b726d42af0d680beaeacbd5ea50ce96f6059b654b9b1bcc4bfd41d692e86983b969caff27916c8b734da019c4c7d534765ef97385b33da578abc31daeb079b660b466b6e889d2f050d46cd9184264e08627ca748d8e2bca348f95074145191f51a64f5e8d12a6391df69491146563482b7a62d11c3b125bbaa3712624baf4c71fd86c9ba49b8504677bf3c90f8ffd6e30dc224f52ae9314ccdcaf05e264e9697a474947229b11ed2405158e46c0d1150521cca5e4c04a5887fdd2fba1a6e0e085fd06b93248873b20c1ce20da0908dc3bf7cebd6bcfb1ac7cd73a2e7ba9997826deb5116a9da6719ae66028bb45affdaf683597b0f6d403c29f93d2a4be94fedc35a9f5ab94f575485c2f4b87d2a9fbdf4883cd3eae689788e8028977e8c99ece19b29b49b09914149f34c3649accceba99492a65c7229302c2f27778c266d25401c2dc210a9b672655ff5c67c86f7963e0b972c2893a399db68c365c9422c079c10edcbd7c010dc7b2b1432d96e01b4396be0a126c7e9c998c4c4659ad360b63ac21271d6effd9ff4a1865b8cf6c8438978090df997835e477d784bb3642cc3d77c30e3d1d1273378241c878230d96fe8c2bd92a478c08ce1327c0f2ab101dd2d8423f25a7696e6084c4fe49bc0c51e7a0793e74f612d4fae4839bd8b038beddc0091f51718e15980960f92259a2f459abb52452ad53ab1d0c2c592858aee47bd114139f8b2935b0f1070e881a2b0404b21fe4c79b49211ac66f7856df44fab5716362bad601d38f608e11a343dad1d84e257df0c6192610a69fc32967ec998d4c6a647903385e2ab8200896c1910a2ec8c1313e9b481b216e9828538130818d26f17388e387587b8fd74688b5fb828f9838beac3a2a8e515e161431d8ecda08b1df3082b1e3798210defeeb73f98404cba021bcd43032939b94f2c537c984ddb8eacdd0bc1b1c98eec92d7ef44dd326caea9a1d2316678833344890340c4599919f36d19c1c584e504e0c8f44a888339487070aaf2813f2a34d14c5d333ea7ef492077186e248178ae3033cb23f7a996ad384ddc07246a23f011ebd2c419ca13447b469b2bc449f3534fa0ac4991944da4499ef47a3cf11651c667f725e78f441348d50e0d1d788339347bad08f3c56073cfad831f0e859da3451371a86fbd1d38832f5471f368c966dc0a31f4d1a3c7a0f740c23ce4c9c9528337ff4b54d0e1bbd8c339346bad01ffde85d7833462b1c6a2f4dc886abbd0070b5178cabbd56ae2684e9c71a8660bfd772585ace6b395a0e0bd31fb923504369381aea359486d270307d1115ef04a6d1c04e60302da5436105619db05841307d6bc291b21c9e2c8794e5e4f060fadf0b514986c2c950a40c95a1321c4c7fe46223816534309807cb68307daf4565c10a326291b03c56104cbf1bd144680ecfe8e6ee06d39c1c1e4c9f0bc970d67a288ae290bc4b51a34b513898bec852d184519a099bb009a3348ebf21d889b3d6335941582c5610ec2f371a2387272727c72be8cf5577d4c499a889425570be76d2e8c90d5e8d12e69ebba11381196e90547a4fb9a95bb9ca4d27ee923321d1857eb69e62b12b2a4ca9776d6ca1cf43ab08c1761d52faa7d38903632cc9ca4d24bf2bf7f11f0fd2f824567768312da6c5ea8e128d47b2da7483252175a0fce9903e0b288374497b87b9a9c6bc442367b82192b53118a61fb9213ce76be0494713735387ea123724673a24ba1b12c9c63a0fc416fa994303a62fea4eb185be8a10ecfc6e556bb7c29d8e0ed67a1a265bcdd530586b396849da547afa274d7f0587ce0325ee408f5a0cb3b76ee262297bfadd4a52144cb3ac6b8b298bd7c996ae938d0318a35f3ab440d8d8dca3f4f5eb67dbd2d2630b1df94fbc81d2d521fd1b40f9ea12cd2c15240149fde04ad8217db1f1939b48e447d20953bffeb4fb59e9225e004408bfc0d105e485b31a49323285093b3b94ddb6c59212e9758e10900fbc201e78e2e983290fba03e75a7d70bf83ce934da72ea3c32941e799d7572a5b3bc4e177a628433a8e31bef84b391f4f2f28bb21fd8761dcbeca2df64b8c31c6bc7cac5bd4b45b5b765e1edc796823c81d463a7c0f03c71c23afe04802f18bd8d29f6bf8134f466c691ea44bbf5784275e544856875be826d9a2b713c0153107ee654820f922caf493de6ffeeafc2cafc893c5dd7cd2a238cb2b80e48c0cda248b046779c5873d9ce515d9719657c82ee0be22b6f4cb3081cd32e70adc3267882c83651ddeccc2601cb8a1e14ee7ad3cf08128e80bb14e33a3ec91adf819d017626b7bc43edc6fd5913e70d668be8c25024acc7122ef3763b92903aa9f0dc9807a70d909d809b8494ee9cefd047f3216fd16a62f4cfd07d3b79785e9cf9ce96d9ef4bc4d24b54ddbeacec887d86c483b61fadfc8cd82642684e9cb1e4eb66b668ef4e68181309556d81c7fb2a0eee8b707c9c72e654259500634f223370bca84b2a02c960d69270da5d16835195087f4332051508b2a10a0440bd38f1b3712ad6cdc4834f25273bf59432991c407683cd00124b4531ad07086213394810cb13188210c4260f8821782aee8021780b6a0852c44991865e246325773355923375be5deb1d9441999bad9f1cd632b419c993ca40bfd79d299a76dc77cc17682de91c132a0861979fa59502694c5daa794241170f28c3c4b02ae5aa8b0131498665520412173427b00e7c9d383e4b99ed674758c317a4f960d9e0eb1f466cc157582f38e7693879cc97ccc1744191c60faf3e4a67a72ba3257242e7e04f668f10df66091c1e64d75c999f9c3d690cf1548900bd3cf196cf674487f049c3c1d521777b3b1992b9bb9b2992b9bb9b299ab163673c5c266ae3218bdc960f46493c1826cc6104df3060c11c68346411d142467466610a6effef3e6879c19717731fdf660f121f30726999367ae48eee4e9d264f1f4b45c3eaf0e7fe65ca59c61fbc1748688dcbb6d00008c951a2ef82a292827262f4a482e5ab020191109b1dfc8eb38d1867b9c9c801ef3d249e4d2d80b6c6ed44dc3e4340c8f86c16910c4998a235de83f0a8582e9cf5d5369105be8e70e41c52221ae83412c7b9cbc08a41fd223e527d803e525d8e3e4c64b5f71b653ca6d540ce9a54548f2d14d3ff2d14d248b524d4e425e346a3b29114ddbcde6810d06986e2ac07423416f376efaeecf9b491fbe946c37b19a5c274374a1ffe296dc1c43ba39c6c5cd2f2d6e7e61717318fe533703a62f39ad8b5ee7799bb76559968dde1b793de2a1b9cdbd372da3d36f96bf3d0f2e8bc000aeef93e3323a3dca6c12f7a655adab38728606912e34a057c0f4331e987e45b9693b79899e502814a68d628008d843e527d823e525d803e50abc9d5c0ac9993a245d28693be5ed84473e4b3160fa394038cf9a1902fa508754e56e37b1443f26e6e5250cff49a4944aabcbd69c1b4cbfe6209aeaab321161fa453eabb8f870ae39214fc3d686e44cc88dd1a59faa905cf4cb71df1e283f7273e35c8730a5de0c8fc516fa37bc604ddca4bfeff611d7570cc7c5f24e1e2f37b9c8e7eaaf17a63fa1b0b9e660fa3547ce7c4fbfda40c27ca09701072237573a73804481f2b922e1e4731d02a65d0ab9d9d61e601abb99e431020cc1ca3f41b9b14bfd169c271ff298f4983c39b93ed4f3d4a10f4d9a899a353d77746833531edb7e5c348c23048009fb784edf817c9514941393172524172d58908c8884d86fe4759c68ab5a46a7776ce91efe3c74b7df6e29c8947f2c807bfcc145dc58aeacfcd0320d32b674f5a6ecd8e2b8e722273b8ef435c61b0df33438ee1d00813691bcc47d0d4202ca5108dba86912a4820647201c5daf14e6a457af9c1dd61b83ba6c1a69567fe27af3066648b0ab2124ae170dce3a60eee9ebc0c170df038d1a4bf2b9ae92d813ae6395b7cac8a2c1fd8d86f1e7b8f95cc368cf3d495ce12e11f2c4cde8e0bc809b5a7cd671a26f01b200e78886883c17b9d9380de3df52a57d83f235f0877e29677b4b55c3f8e8b36f24b208022dcb3e765b3755ab65fd83b6ac1d49e6d9d33a5fda74a8459691d731b1c817f16191fbf61dc7e845ae0e89476eeecf44f467d9049236a34a67f3f40fefe713398ddc6c45aecd9eeb62e828af5ddf957e1d13cb2fe2c3f22d8ed1f7db74980d71b95acb6047a07c71935c7529fb27916c96bd0a13f625f70947d5a82813bba677348fee6998fcd2380dd3969e483cb67fb449a67ce0ac7382f0521c813131f48f2e9d18796e7a70a67937382047600cb76d37cc60f3c43e3c30aa613297cf0e9cf1c0445715ac1a9c3d27eabc93a89f65ef226f46df970efd42804eef2845be4fd9378dbc2f1dca0b810eb3e721392838e94ffaf3e79d127b37e6100d133ffb1c59b64570bb73ce39bf8b1b9863e0796364537a16b3ed27de6edec0fce892020b6b43344c9623ab35cb489664db9e44aadbad5b9d43c4200d8a952ce50f116bdfd30231319c773178f640bd0cef7b781f6bb51d86ee24f684b4f21e387b760e972306fb5db96110d94d87b5be10fd49bc0cefc78e07c6ce41c445d1cd2bf8719ffc2df66f306fe0845776b23aebc97480fffc295a69980c034f54f62f31bc68c28097e6d7eeae7498fd7798e17c82b3cfe6bcf10a916d3fc1f93e3980a71010e868d29fc33945d7a46f101d66cf923d06dc643f1322ab36d32106ae1fa3c33abd1996662e63d659e8f905675996ad641e1061adb5d68a27892b0a3f1868988cb4d2dab628a594523ae79c74524ae94f1a83527c584a29a594d29b168e11c3401458787e0658e6bfcc9896b81f3798db9445588a6019a510f3e79cef17c5bd141bd8f911b7cf6709a21dc0756c797ac19c910bf4e7d3d9cd6e045ce44ed8dfbb93e8a2154cba7485c999cd46bad85418f78dc49294539b9164026ad3cf6d2ab7912412f8c591184a17335069ec5a147660d14dc3e44d15851aecbff98b52fe221e229ce94d20073480010b18090287028020b9612301354268fce0c30c911e1020037f3c1c600703581d66640ae0c598607218c520c00004c0bdb804a0a52bdd80030b0c00d8106ea2951a2e8892a2f25a3d317951c2a2850b52e6800630600141e0500010376c24a0068d1f7c98d1030264601e0eb0830174989129408c09268718041880005e5c02d0c282c30da5d00600c058a9e182af92827262f2a284e4a2058b1116090b16374f1c2c1b8f84cc93c8c8c8cdee2302360ef9543624e466df8165e3cf0b1a7ddd8365638fcbe93cefe6a6d97e441c77b3fc21021b6f9a4c61f91a4310ec678b425836d6b4d8ca585832c7ee4d1744d34b033ecf1930e0f3bcc1023e4f1e04d122dfef64882621707c9e4828e0f30401109f67096ef4c814d1244f363e7b1412f0d9ad50e3b37381c66717c26d9b882699f3c367ff810f9fbd08333efb133d74c8f7bb08a249b610f0d95120e3b3bb007ff619f0d0a32c44938c1de0737b6187cf4d06037c762474e8cf8968ea9b99cfbd0499cf3d45013e771462fa9b27ca74dfdf4b4453b34c9fbb06309fbb891c3ef70f62b4f7fdf20cd1bf3f8007f0b9452080cf8d02dccd6328ca50114deef2595a1180cf320b2d9fa517300b177e96ae2c9770c367e9040e9fa51070bfe441f495cf5207865cc2867e59826872989776a24cfdde6af82c6bee67f9011ccf10c380fb2b104d279f23cc8a941ad1345539a24cf6fd34a28cf6269f23cf8bcf0628f99c03e9730b26f910dc30a269fe7829cac4efda809bab65c05dc00de205c7cd5501375b206ec417f6cdc6c6cd350137db1a277f1aa71c3755d80f37571f6eb6336e26c1b07f0f392d37d515026eae326eb6b8b5c2fe3cc8989b6aea0037d71d6eb60690317f1d64ecc64d5ad0cccd55e6665b809b4941d83fe686e5268d65bab9c2dc6c7360f9c70872937643809beb006eb602d06eb0ffcbcd2a3873b9b906e066db928a617f969b5570d6ca72bce48fc3cdf5869b6d69d5c2fee1ca869b2b006eb6301ce6bfe2301b3765a7a972137dd570b30ae9de4cb2e08d6ea372734db9d9a24cd54bc57ffeb889eab828e5266a72b30ac996dc6c75b03f69fe54cbe2928844544f68b1563d2351856449486e9e3923606311b03167379b1ce46c375b6ad26009db94d84eb12011919bfd27046c6cc1c6dc683585578bf503cb9af2814e4ebdb1f6664f7d60e311d898eb822a092aaa9e62429ec6c2c2cfab35ea16968d45da0d11543a39314d059a8d86d24e5da3c0c6a2d615b09f57902d27092b958e48d4b866a70c06592ab3c9509cf61a4310eca7564975a460ad5419284ac5167f8a72936805b1e4ef22558f266e6a90c22e5a02bb4a116c7f7ec12fb1453e0f3dc1c6b48b1108da0b6b53858d69cbef58858abbbf3f4f0f07bdb56f47fb47d402ecafb2b2fda2d4a6721deca21c0d0840a080e4add518bb6285fe998a523331944fc103c450fea67213026289be6f4e608762859d3ef77573520a040a6c9ea9bc01eec400398130f8f0f981adadd562ffef628bc70eeb0b89e4ddfdde45e0e20ae73305cf7a225d665370a5c339051596292ddbef520a78d238237da4cb7c1965e8cb4fe1813d42c36e52a37e7fbd5d87fe9984e427e92367c0e8326b882d53fa544cefc7961fd69f7eade15baa9dcccfb2ec04cfcebe9b4e4a659cb2fbc154f4dec7683f7ed73d67c2e15de5d270f49497a8c9555ea2ee922ed45fd28552ec2a37d96e75b25e4f29ce0323eecfba6ed24cab9b88ebbcd16743445678628e84450b17a49217262728292a0fdefea730bae9dd9dbc04a373d54bce743a2ff754aacba941d1c416fa229b0f44974ee7a6639d12987ea7a3bdb497e6d32696b07b1cc00ea7bbe94e7dbaab9ceae335773e00fcf7c1f88f7bbd5edfca7f5c2cf6d5f01fa752a954dffd8f73b93ef03f2ef57ddff7ff713bdccea7f29f28168bc5be94ffb81d1fca7fa2d7ebf5fa4efe1309097d26ff89542a95ea7bf19fc8e5fa4afe13a5bcd4a9effb48ff8976763e17ff6db1582cf6b5f84fb4e3fb58fcb7bd5eafd747f2df2624f48dfcb7a9542ad527f2dfe6922ed4f585fcb7a5bed4f7c9ffbe6de7abafd7eb25f455a1cffef717c8116538954af57d106daa2a2f51d7575d5feafbd8a9afa63eef3fff6fe78b7db12ff67d2faa3bdfa7c5beef659ca93ba40bfdef639481e1cdf800d09d5e308860bf9557ecf57ac5307db086d1e5542e4ec5a938950bd37fd07b2ec5ed70292ec5a5e8aba87429316e472c16e37660fa2928dcc94be8f57a0961fa2826a21722954ba412a9442a17a67f52b2914429d18e28254a89523b98be898bda628b89767c5b4cb4c5465b4cc44223d95e9bd0b7bd44db6b7b6d42987ec908114436d5e6fa6eee6e5427d5a6da5c983e890896e2acf56ca96d674b6da92db5ede08ff47ddfcd71c5c34be8f57a55214cdf7220f79b0b2e460c954ba552b91a7b2d3caca9ba53533595aa3b2ca60d9d08d4b0abb49774a1cf7d6097d3e174a88ea65bb9a9abd15e3c5a98ee60695560fa293b36d7588dddf078fb89d3260dc6e7e90303e0f3dcb1e1f3fc8147e18f7eba20ce68422b9f270cf0e8278f2853c38f7e9edaa4e5e44c54ceb4c999a9a1867932c4198dc532432cca5c9f3669a820404278044e1167341c1c7f021ebdbba28cca8fde556dca60305fc19ce52d3c3af9d17b137146a3a1d9011ebdeb4499941f652c96f360e1b07ce0d1bb4dc3a0fce85d0471260b12c4498047ef3551c624a84d594e4e2cc74f398e026a185216e24cc6c3b3053c7af1a30ce5f2098247254ec4990c07a7938047df3c51c6c58fbe73da4461b0d681b50ab6c223921f7d2f1167329a96011e7ddf4499a56c717fb6d2c6a37cd7a9d55af9b3256780882ef165940247196fc4967853590a014b69d3a2099b65900c92423226879ca66b6ce4858910a0a7daa1145c5c9152befc61b67cee45898f9dff6e0ac24b72a64a17ffc88a2b524c6ca188c1ced93c349d2d1d48e5ddc7e752eeeeeeeeeeeeeeeeeeeeeeeeee146893b4913758933943f2c4e45f9490dec5b778162423222fe5f7f279e8a161b897f26fd497f2856813e891e0f04b5a41f97e947bd261871d1ad1efdd9236d2a6e4bde47da6bc076e4f4194aff545a21f81dc7fe02804b42ff22424df0264f12ec0164f025d7c0948fa6e0327a95349a41330e54dc0937f019a7c09f80204696e80f249bc0cf05f94f8582975bca49180b08fcae7e6f19fdb050dd425ed1dacd85a52c9e7107737cb20ff0ea8e4e6107b600fd4cb009f5301257eb0880b744f3d1c25364ade4bde6d94785e0ad842b12114d079220562a915652a904e6b9a11d2bde209f609d8422660bf007ba843ed4bb427814ed3a1f62e404781ce02749b0eb527017d8708e8215aa8fd07fa08741faed3e18eca7fac3ad41e049da74b3d0df4ad7dfbe89d18730a380b006b5f6bddb62afae8fd20ba156b93d4ddddf525285d1e8edadbd7dfaa8ecaae5afb06e21a48f4da03491717e28c644274b922ca4827c416edb5dfae6cc516ed557ed86cdd5dc775644bb6b4973fb90bd29e53598574b2255bda4b977c75b5add55abb1312d9f2929683279d420a6bde8ce9cd881dee682ded2b6dd72a498741e8f48d5908a9c396ffa2026bdfae6e354cadb55bedea57adfe61f5d68b4e51828b2b398bd15e8b79d915191d9686c74d2467bc589ffb11a54d7b6617b79f2a91e8bbda5a63388ee37efe556d8da9cdaabd44ed256a2f517b89fa349a7a8958d2bcafb5d6af95c351b93a7aee475cad45e0744ff3f48fde691ff6bdcfa3f7eccde17bb77774c8fde8ea90f8e39ebb9d126ddf3ca2e47eeb40c975404f74ab8734c7c19ae63bb0a67dec969b6287ff2452b75addddddddddddddcdbadedd2eb779bda343eeb7d7bc1a3daa0e35f779dfa13d587bcaf2ba6f56c3646d637b6ee6ed270a166db629a0f00d38baa4e083396b473adff1e9509bb3db858645959b368e03d530d1a63d1bdb4659b4a745811a26a861e86bfd9df7672e7f66dfd5e7be725fb9afdef675fbae3e9dde8bbaaf2c006ae926f87d74ccf57475dbbc756cf826a9d3256dd2e64abc13759d757eab0e8945378b7e7b9287a3ebe839da2375625e5cda8d3158ee66eeb7db51c7c4f58bf870fd91bbbfe71dd326790a1f24956c98b25e62b80bffdeffbb27dd148a489dd0b40adda3d168341a8d46a3d168341a8d3e23f1668c26eca5abe950fb17af4609cf9d0eb5941fd8fe0ca4e126db0d4a0fcca44bff07d60e379593ca2b81ae0e89b92b83bae7b2aeebba97b79ce52bd7c93a52e77df75ee73aae937522169e8daca35e0dcfdccb53adae799df7f5ea90374bed03a90a1436535666c4119613813a2a9eef813a6c8b09d8858783fbda303db4156522d6be856783fbfa1e3889b0a037115db4ff40df416cd144f533f7555447b8e73a50c5876dd79133116bbea37257c3bc6ad72f37c410633ef7934a1ee904f75af7252521384b9e4d7bf7b8efbc2dbf7fd71e0ed1edb8b735baf78188aebb448cb8cbbd1173d6cc9d0d6441bddc34e722773ad4dc85b578ddd5a116e3751ebabb0a6a5882aee34db80e7cc755de7297bffc87f7604de3c11aa961bed65a7fb0b7f629acc5d4381361264b8499efff1261e8f6eeef5e7178f5eeeb7735ba77d9f69e45cf8677b70e4083e1fe0a96874142b12c683451562c691f9f42a181e1b740aa8285c267ea041c7b3aa884e813816892110251667bed4b4a4242baeff6457c787b4e6ee0570fc7f6ddd521fbdad991f80b6bcf812f2892b636570c10d63ebf843e73ce79f39c73de1883ad9f258ce563028345990c6bb1a94dc31421b1f79b4669b0b669421a0f8b43f28135ba437f749ca87beeea90d8bbb93ef75c4ac78174a8c31815ea50fb06695087add8a2bd08a44c882dda7b206d82747181f4d5a1566f76a2e126ead325ed51d5c6a6b29b9c954883604dfb13cf87c64f505694d1b0f653356ba28ce3a6ac89922edae8fbe61c2bd8a4880f775f31476a985fd5182c6a59910ed67ee6b4482cab99266a9e564828968515b89f46935bd199e8451e8ebe2d7aef4537622fec97611141b44df321ac6d9a0361ed27aa566b1fe5893e9867c37bd1d521f1c772539ca8ed3512cb76eea846c4776590472387cdce4b0eddf034ac46c7c5a3d697300f47f7f53d1fbeab60863b7046ff065216ede950fb6c6bfd93accd34086b0ff36c5489b72b83684f6cd17e8294a5049b7d95411d6aef814748dc5d09d4a1f615bc11b312c87db0f63d425e7b19d43b88bcf62370826e12b961cb87be4474b77974a8fd111273b753bd036b5f4dea7bd788e93b9d6a980e79348cebbc8479572de9b5779d989565915c005d475f52cc8145484c595dd2be566b49ac507e7fa8bda87a36e4edfcda0eb5efd7b44cc70268188d462e02a016007577076df284a769882ecd2eabe970ca4453af36acc26357b5ae6a3609f3d2acdc8b9ee4347668faf45e7edfb6e99fdcab1feab4b30084ff88d2ceabe13fba26943ea54e67101d76d768ea9f86594b923f44c897df361dcadb3b62f61e07da6109b6ff0889e5c87d340cf5d4a46998dc11d1cd9a86b18932258832ee1df881128bdcdd23eef91ee8b1f923d06f70ba14bb61d9ec37d1649d057a4f97fa6704362e42c61ac6bb269ebc265eecb09fe85ee5492521d10889b3446ddecd5e43d3d276f6fef44fdc41099688548751860c36cf1df1f38cd7c68d1dac61fa6180babfd96b9cc6564eeb82d42861af49e9813562ca9e0e571ca8c3c98a2df3a5b079d2e023e44d0d9eef37de13e123cadc20caf4cfe79a5a0f87fce69a82fd73c7f7e461049b3db503cfcf9306cfdc3f61f8c3c3813ca861dcd42d88a5f932a84cd8de01a983d0417ebc06cf1ec2b385f004c2f3b96ad33b3e6f86f47e62cf5fa61a26cfdf01a54e87a8d83225086269be4a0929c4ce0c749408ec203037f909f663670d1a6c76d60ffdece54fff2ee2c34f25ae1e8e963e6ca4420b7ca47c776fd0c45514e5350db35d96f68e43cc89e389a43d20fafd864d84490d7ffa4e7fc57160d9ec9e4cef4605c5c92afbc624ae75ed4951a671f63a9444138dac843388614304a465a8846c17664d0fd5cc08000000a315000038100c070462b1609805a2a4b90714000e759c5870549d09c32cc6718c41c618a5083004000060080080d44c11000b52c7501820ee52d8ab55f2da9ee6e204c8e7b05f9cc6f43b6a9f00557571857f0380511f4abfef53d39f0a7d3ae75a3fffd13264d0a32abf5728d809a4cf809fd1ae144a33d66fea4c3f77761f423b2a908dbcdb2b0823e0a2f0c594909b47f21869aa4756471dcb73c9fa6ab1e90358ff50149193e0cfec4081c0e5940fe02e28d9650c70f2d4cd157458d2926e5113f2012c3877e9710041c7351aaf15e3ffddc6a8c00dbfa2c03cecc4796af6a66dd051feef1857091c643374a26991122ac47860d35a7159bb867279f6b027fe043f27961ad4c976fa1ac404f8a9eb5757fc6d0dd9d09accba6ab7cdefca3238071a493cc9f5ed4c3b8947aa3105c7de13559a8a484c328ec1b12daf0d79980f6c51a09a2d0d8d8a9617edf7c9eb036379c339fa35609d0d4737a4a5e721ab4863b79a7302efa0b7e211891738951c2faa955521b7dc900fa8c99d1f4c4f2636c603fecc3420c7ccd82017fdcd48e285ed538dbf5e2e3acf43961af1c7aad350051e5f656b3e803828c84f5d825128bb268f667bb5ffd360bce81f9d69eaaa9f04668248b805d1d510219e3b49a82db18995f682461c73d755251f62aa2c0f55bc4ed5fdc2f18190d64e93e5c0b413e9f428e455d14a26e3d959b8f0c8e82f976c1e1f712c52122b7ae5ce2ac838c00f99c781ac7d8f0d8ca92a41e9f81c6866b450f92b29b11cff2f69647647c5ddf4ef05eaf5b4b58a7eab330dca2b494efe892963efcb743bb7c859f13e82dddf51ade8654e1f2688bff80c743ab34a3206ed0ea7923638ff60f83f322f70897b65b80fdc830e84f3ec15387bab78f91ba5b502214feb34b36c4a86a9236fef8e295e4a9a3e5e3fec8d438853a2a79ddd99bcebe26015fb0d31d3066b414efef51a4c57102fc60dc479552fed5a12db4f10aa850e3ad173d67a933acc673fcf100012a49fa0bd4ac2cac59bfe3505c8398f999a56dc1103e4356d76444833e6dae5f7820c6a9dcd05f7ddbcb5d6324e5c0e6b7ce53dd7a45fe11eda597e6cf0967c942fc7e9ed3f1c3b9531285ff5b54af3d6de7df7091441e7d8c914a61a802b580f21f24cf1fd896a9424b40f0a7c890acbd7421d1fd2570a164325cb7915387447c1b296abb81a567f65df1e5fc47e2f459345b8d62e9107d9fa7725b38627c0c44c21f6b28646b557722875d3ebc235e128620ac20987acbca8213405bb7cbcd28a565d082c14345efe1eb98e2e7c0ca11634bea97436d4afcf930d05d2b3e30937e981d68a9480b1a4c058d6c47a60ea5d29f7a30383c723eea8cf538a11cbd42571363c7d7909a18b47095597ecb2ab020f38d887734ad527926f34ff88fbcb976ff633a5bb251f99fa8df8641c26a23c621a2b8a0d707a5560a808b35a64ce401e5e2a7a04edb80e5364e8171d5230bfd89f4cf6da303c28e214b9ebfdee9f0b1d4db6bfeefc6f9082f97bf9002da84c9ef99030db908eda8c4bc5ef489c1e22e7f64914521029e571e345c8f2b9dac109009d958fde08bf29a7fd35aa4b76fd1ddfe8acc0ad7430c5a161001be8ca4a55e6b8d303536b1d493d9087925181f2291908654a0cac7f613345ead830a15c09286cc66449c57508d1dfe7137278842f3165b8003c74dfb4a17bd11475fa009f0362fdd226169b1f96c8d58416af5fbaeb0e7cba82bda96a9a6470daad30d1e64137fe0c94d5e65b14fe0c11b679d997a73504e37342a2139e5bee31b1243af3edde97001ff84144a80e38d8a896efd417296cd062245642643e351d81191840f9fdd22d7846f7ffeac6ed732d8090b369e2a8b059e1a33472160c331bf3a660783eb04444071c0712ed85a571310f9e0e5ebb65c311ccbd32679f01ed347ca6517a6f0bfddc52b27693d740f6191d25c4bbf480069426c808dfb693122ca49ebe6e42debf356169c858b0153e1f2dea7473316b2bf261e263401a33d0b40f1f36e330cddfc14a09096311ad780368fa0069a4bec2e86de47c557e4827630c92c42bf37f0f16f37e1e4c6e95a54f06bde0d5e3991b9acac569b97c808764e927c01b8c1c2f682a1da8e1b9d13d4f61e2d39a32d312177b42b00c02421019800337897095e01b4528c95916c7d26467f97005320d29a12681732ba97193d786347cb358d8b0a023cb4e26389b5709be40fdf10313112d3c8c76081508bffdc9e445d94308742c9f7e007ee3d41d28cc3a7ebd6a4aa987b1c44f210c18f925f21b989484ab1c219b40b642ddc8bb8c46250c756511f8e8b2b74f5700552a10a083fcbdd9016f22b22251cac2bb11e0579af11e1bea2906150e88b4f5c293636a2bf9dd852c6baaaf6ecd9c0ea6de2d5375a4d85c08b60edbba79715a3d0c003b280576a4575a0d5af96c1e624672fb0472b747003a8bd649cb41d4f3613d9abc079097fd6f604147033e0c132037db8c55a018e267cd389739a15f41829f3c9dbcba37b36d9cad4671bf66e8f9b49211649fa25df4aae333c6884d4250313a5e75b724292a202e4572476b3b64cf2da618578c7ed1162c080a83816b8b115c0b886360e0b3a55f2f2f50f84e8ca88a2de64681dec6dad45e78325812f370ec1e493f70b1d9ec3784e26966fb593094a619a4f81d5ec79a03567811e01e591d282a1bb824a33ba3e419b652c194934b3a85499b8b606f6e80121231a5010eb98a88564b6ca09bf7810558ef146cd5c98add42b4963011991a55b77b81ef6386d48112e0c002532bca52b8aa34a30d1a3eea328d122c2dbf5292a6bf38b1525692ba6ebfa41da8c85c8c7afb05b1f5867290332af858c53c20e728269f356a86cb743b472171fa7859b2df5ed73cb94828a305a301214767bb34d25ff2a0ea4dda29b4763416de70845cee8fa489bb3e0363a8a329602189ae33b4c369f5e2f589fe4685b44c89836a7e5542730425632fda6dc94722f610e7ae401e11fb491768206e3f5c48d5d6343422bc36d05f89c754633a677c93f7b75953f72339009549b1363c560cd917cc1157fe0d5e89982a49ef236c6618950c3119ba2a096cabbf7a2f369fd7863c682e81b9e06c5fc3e20f14edf4871459e5db6e3e88705a5a765628896959c24c78831bdfbdcabcf9c26b94e46370fd8e30d08363f62799217e40292015a53eaf64e295d5e61001f27a3eedeeb84c2c965d28059551b07219eee7f1cf5cd7cc1df9de7f1b0146bb0aa3a458b79d29f78d3ae73c722128828e8bca853bfa6be8b21ad28951b499e7f8e1d45d4d9a08c6f54369c834b28803ec2065d2442626f6b81e421d29b7726e8b520e85e5b8585f15ddf9578bb2d2147e1296d88c87165fe9b790e11053c7437c295dbca80b21104a81ff54140a9b909bb074d37db50c881ba83d4ec5a2f43df5119e879d12f23c4eeaaf79b151678a7219dcce9a40b1fdc13a94dde31110dd1ef73f84b31b9f68ec34d1a7de4d8f22eaf308a1812a51eb37a2c7e17c41694da1b8d906b91b6c9bbd2fc867e13977a763eb6419532faf30b04d23e6ae3cf8b728c9aa45285d53b46f65861bbcfc2db95f2b4342d8c5abae949d3815dcee612c37805159718bd3333d949b0ef9b089167bd93c7f3c53ec40411e31bbb2cd27a70df094b8b0567b8d865641f5cb4b8d8b704d85d8027666b86b09241835de4ce94453e515b80db13f966dcc5ec0f422595797c9b31207c3654d8b4b1d9903c1cd425f4d14d5cb765df6b806fbdaa5ba10786f599e608251841ca1576f44acf72034fb42f702de3c193e929d7843fef6a1b631b6bcc197ff6fa1e789ff5bc97a2a9609aa07de2bf160ba3781b3f5a4ec844826baf72a9085df76e9e33674f64541adee40c8e39ad50897ad5afe4b454ca401ca1e6cfd56419411ca5a525459b5952fdd92c4e1b9cc5b07bd6239825c39d9a46238e651e4a7f3f0303e9605c30987f20cc30cc60fd27d4482b13434807e42467d736388b71d9622c165803a5e7501ec97c0cefd370acf2bde3915692c092480a40012994093fe416f275210b44e4a1a2b8faa853c041457d3a4443163b92fe4ffe0fdfc79452d4f4842f53815ddd3a0c1c08faccbf081d8cd084c6c21ea3a94b953845a00d24f157a924426c2c64f23e55818778b197d604c5e4fada945ee0f13357b73bfd6b4d6e618c905ad5aa5a2a066176562c817dc08cd06f2113b360acb2f15a86da915f2bd7161e1eeb61434235034b6da7e994568a383e3f58a486cfeee2636c2ed5a81ee2b1db11b8c51051160d4b05cc3d6668268d1c1c87bbb6b3c165a3236861b198829dda7ff30c7350cd5db66e6e8795cc693185b3066d7586f402087b7890047f0a9aeed80fd78055dbca70a0e61237b59b7c0a8f8ddc72ae2793fd1cd696ca38874c9f72dce39444871a60c63b43f5a790d4b49e00c208b9b26bfc4221855bf0a61b7e5c8c35c2c6e525410b9954b8da355183355ba9f7c0afd373dfbd187331715306b237c28019011a1845ca51e5821432a6cd7b5a48644fa99a074b20ced67c0cbaa4a6dbd0fb29c8502e9b35c7b2f6817489cf4c04ee2a7aa309c7be324f961b89d7ad511b2fc6fa7d43498999038ee5b73f2f2de999e4936843c9e7a788435ab1e374aaf2be6011b53ebbc29c7df2133c0b0fc94562c57e381408ab26a7d74986e2cbcaeb1611dbc50d2199918c881b96e9c367d405434cd0b81d3ee30602f818193eea2f04bfa5d96e5ad720d7028c2e08e631069b57effb4171527cd28acba21fd8b53d55a99a2e0ff54007be406413ab8794e6eb5435aa5db165aac5637ac7751badde8240946cf991de95fe4b2e120621b30f86b24894cc2265117acdd3838b2f41cbf2e68cb516382f0a0b27b0d6f4dc7b1a13b7beeb716a65255a494c3f3870fa9b3436adcb802138ac3d46dfb846d5cbf68247aa4fdeff1fbd9f09d2303202d44c1a3aa4e742ce052849c12e93f49b549ac99084bb12ab5efdeae1f3555251875871add6a2543557ca0ffb4ead5377f223d38571619e890c95715fec63d4473705517125c2370abd4f87fc3c16365666e236f67c48f4260c6e2d59e59d5232592f98be21a2c13bc796c489100a73b51a57a420745762f5d0914e35719a4cd9195357a1c6d279bbde34a1bdbbc1a12bdeddae9291b03e430e887760b82fe7698514d5db8284447bc1c00f0187a41e9a61be0ea5f882acff62aeacd90b6594b1698dc2f20aa14132279408c703b35e7b317c7607f40d370e814569d940c49aae051a99877d320fad2e31d9293c80cbe1512adce897f022ad073e4438a240987a00b3760acfbe9c6e7905b2658eb51bc261c6119231ce95f980540b1a417e29720a4219c9fb3a16dd5ac225615095b501abbfb586922096acb872769aa76ab9f0175f094b146bb01ad22d2813d6dd613430d1727306ea8faacbe4fe05b0206ed101bbc06de6dea08ac742bf546cbd4629df1908137bc18ddf0fb7027c44c8d9526fd4868a465346b7010b2aae448820d57a288d05c4197ba9bd658a8039cf94411375760b0d18e6a423368f79fa390eefc43101a55a3f31277677fc2ed194d511844de87e45d1cbd4b7a72df3c937e5e44c12c258fd36c6126f0a4aec3b54f954f427f4b67d3b9e1c9632693ad64fe356c45f8c65460794065d0b9d4649a2aa8596cbed4bc9a229b493e8de1f8cdb38e6290699bbe46d7dc5d0e2eadf29776dcaee6b55269a855ecfc0e9b7eb8c84358b3238099fe7bab824347fc39a5e8a38b69f5cbf550aacd9b29201c192d7c4a79d579abea4055da311f333a123900553c0bc9bdc4ab209b43a669377a6038c94a498a2223745836a4d7f32f0cd88c8c137c37ac2dc85aea85106dadb6f4ef704c9dea61809040eb9e2803f5a13c0af12125d15e4bc88f0ec53191b80b7e047f67508cbf317d93274fccd05c47cf203764c38467f0ca14da5396e8c65e5499eec08f52adb0dd2fc1d0dfb03b61fe3c74a6b9e8022e39bb576f26a633482ff66f26d5d7b9c130fb0d79fa8c2422545848015259fa6882fc741f457ac5f0af3dc8dc12aa7ecc87f81623e62625637a620ba5ed9734631c8f3266f90c43dd2d1e5092907906c8d4238a0f315d3d152ea855754f6994bf40b27e3bd0c1daf197674b95d3257c49f7844744ff8fa814f0cc37bc1cf9a4138f1942071f7784adc854d7213f10217aef872efdb9d9c9ced7aa7b35c74b96aa105b5edc0d5e18952ba4abaee69bcd2656a1d29c355a014f35a797b0708d466685df8866a1bce75036dc5a27aa879ce812b492585212d4de619b5664ebefe936f522a9bd1c056dde6bf38e9cc39a4fa867bd6fb376f674a5992b2879aa6947c1c2bf9f51c725597b7f931cacf3142464ea7b9b1a233ea22018c42d875a5f78ccad7d98bbf348c15485caba61c3eb35ee74ff6ea63a3ae47f60ea46e481278dfa9107da1eb6ad134c212d1889f53761522b9d9b091226d06b05992790bf6e4900974c301845da039197a3d3ffb2a1682b4a18661b80ebd30dfd2f1e4399068dd4d41b8d53fa8317047752623c2cc6e28930a2ce83174ae7a23239f9d80c448bd1f8aff5ff01781ee2d9c3f4ed07df773ba79de85000716c1a28e9f500d94f38c439837416350f4b33a4c509a19afdd654c1e2009a3678408aa237de602475246f9166f495dcdf9525fd0c505e0a81c90260202a90d2008082003dbb015d0028eebcf8282c7a7f94b4db069f248a851328d36bd9e0ac002cfbce6a96b2ec11e45ac2f3e68ee773c91cb1dd4c053f5f606d065693defecf9af0dc9872cc9a1aa21a33e6538184202706dec8b16585318d888047e55e1225ccba66ad4977ecc7c1beda089c2d6ac2760558c16a60b98bb85e1d8defcde412786c9852eea2cfa0fbd66fc83d3a4c5f6b40874343af66d15eb2931d3d6ba90b02e30a001be68bb754a63ed742d92a69cadc8390183749ebe2f0f4126bb6fd976cd27946a2fd51e89d1a6ef8d47981ea672236eeb0302942d534110d882f4914887b462d107471bcb8ce93df4edfec006a8defd93a6bad655b812d0150792e6fefab143da46b7255893750375068d18037b793b33bd52307bda2fd941deb97761be9409f3216eb5ced3cadf20729808a1e14aa118575e303e766d37d8912227b69fbe880ff27953a4479434405a91bab38ffc5160ad00cd4dfe47cae0e2705c509bfe6934720c6503fc0ffcc43c3eebf75081c170358525359ba665470ed60b87da143ab8e7d661ea248ccb1bd14a190f00d649fc1b8c087c57bc361c4b00304591c0d387696064bb704bab7fc100ebcaf5d908ac836302c00577dd6b764b3eaadd9a2d7d0712604a84da83e7b09dc3b33e4ece5037469a36ec3397dd4e96a142e4e716e2b68ec8eec1fb98f2cd6d6d10558037dd46df7c9f8a1c9650d234ba4c47a865aab0988cfeb3142d6204692cf18e03235047a08ed40be215bec1a526503a11ab59d6aecb58c8dc882940aaeb40bc594f811462cad3ed30cb931090a196ed96428c227d00aae3ada90872df8bec61d734d8b06a364cd0b70168a70179b339a656cecfe8d74489774dca84879e3161e957f27aa9c8f2e37525ab2199a2d85a8e0c5761429b530ce2f13ae6f03af34962a3d2e6b465c72d69537436cc7060749e4e314e8db1de3091c01cdb676691a980f46c8c3047bf47a59ad1af067377fe7f938c3e3111e6c4ade0d161ee924af7e24b08753566d4fc48162fda952ff32e4cabfbf2223050379c952874494cdc93196ab0faedc942e218a6f34890c12bd8f08a9fc59636c7b33651358fc1f31f90a97c57e06af6376e7d50082f0586c1b2081d5245889f4517961f75df0e82001165ccc77bea09dba3afd06956d1dc85a65828282f31d2876d7024b3d3963a15e5c7df3b3d8718f854cae99c33942e4ef8ab1cb1932c8997f57a35200ec1b2a71f82588cf38acb29db0b319c67c4ab206d97a793a2de34c59b11513749e7ea79a6de152e6b010c9eeba2c642f93addc8a6beeea291b628ac009be0a44015a3a05d4d592a7b473769b23fc9a5bc6c526ff7d1c5eddef34b04ca27c1fde2aa23e8f3fc80fa210fac1e68f6b4677cef083a24a298231cd120931d0ee1706b3e0ef4544c01d8305d18d749c8f76ecfe73ec0341e07bccd810630abc51b0199b6e4f4f39660746935bed95bb9a32e6f30bc8edece94c4bb99e139c5d692434d0327cade39b97e3c19bdb769e8393524a08d42bb11a2d5123e2a2acc18d7acdbbf9d04024b3c46b3e514e6e9d375fb55e9d754cccea1dabcaa30d8e4be4bef393872456121278b9c7bc6d3112e9cf592e8e946febd016f0594e9e977c3454b50055a855eac3748ec038c878696ad4ccb277e5686698630db712c7ce13638b0782dd6605828a5bebfabc39632137cecdcef21fb9a1118d355a34d471fa1e2f686e685900d5b55add74c3b38c390a7eb6d0fa6251afce531b3c8222f418fd43b551033af9d8258c818fcff344a40e3e8811978914ee9ff4927f1d7540252e99a174d812977269e7317cd7679fb85c56e03b025ab3cec68c49071bae97249ce8a4fa4a232a1920ebed221bc1093ae3c4e5faf7e5625bce6f24cf369cace77128731cfbf768baba37260df6c4253862498676807bef5b8e30a05483cde2e40d2a30ee74dd02b24d8831ce02f098299e30829db8daee6d0ae165ce986d44668f7cb8fd330046e94820c19bc2f5daf077ca909b462dd5bb4b409d7beb66fa8eb148095e4862de500d6fe213e32fd7932ee75c5d1a75ebd725a89bd7a5767e0acbd5a5ac409c0e889bd1be5d53085d176baa345145bfff7f5262578f6c4946495c2200b3edd4c8f232597552f91a51b7c848a611ff24bd8c4b1e81b4520dc4f6ccda7c0177e13fed362002ceebcf106833f6477f0205e580fcf0d0d440646a4da0898419a5405d73c0fb9c495b733c620293067154825ae58d5e9034260ddae9ab26ca95a84fe8fea8d7def6ece69374c67ae2d28212623e4bf24e84be3bc71e1b99a2e6c54a84b99289f2ed0bb995bf0fd2a12105df126a4f11f535586d436c2573316c2f668160030d3fb7188a49e4a85937ee00ccfd5eb98622cb23a890bb7ba19940336575921385a53ffb363037064a6424fc77a61ea685333b12efd3f1279f9c64426ae1478f7d671ea44ae2f6726c08e4d8c7bfcb00975bc47d0ef0287aa65aabcc9ea75834f281fe887282fde4ec5627ad75e89bda1c10529a9480c5c67358355a90dea54d20eb504342aaacc0dd7a54b57b2fe73470077ea1309872865f53b67ec72cc2ca78ea358ac02e0483bd664c511d3735622a9f5e91009e4295f124dac2044c6ca3d0ecd8ad8b47c2141392f49a25c470da56589e72f3ea3402b76adda6360e35395dd6ee332cde977f381b7a87fa4bc446121836e7d8f551b422c19dd497b6431817370a6b4a9e608ebca7127914e34ccada7ee9572b58bc074169b09936aef88e3090558a91c9c6de7a42801e011d8e3bbd68cc316019181252e14091c1d00ffd5e178285d1d626c5e51c90a6aedee5149fb2d30a731da6d365c4c6eaa5f59f755020ea8f73bace1d32bd44c58caa9b9e3df80cd701cf0f6635e3e0063cf73a605517e66eb51160c6b90e90c4bc87ecb9a0cf69d4cd6509e8e2f4a32809a737fd5ffddb732325b23806de6b0d888784d33bad96bacfc5e1d45d765880e140fb1e0707fccfa749f5e0921251c6340367c0cc83bb368584a8cd8ba2077443342bc1a5b0173dbff74b00ea3a464ff8ffb50b049ab9747150d64e26da9a6a212a9c35993a6a64262912ff6d57c6a217243563acd0865252c8b25230f5eb291f00e4a2cb0db49996f10243425f177922abc0a035b2f6666b3316fa04606c8d45ff4178f6fcbf04baba4a1762365f39a24cfb003ea989699eb968c9a5c6ccea7054383deaf0bad012468270967295abfe39881e33738ec46656bf3763d70a8a99d9a30e13ccf4fb5207bbc801ad2760ae07d846e4fd3077021b82220b5542d0b352b3b850b4a923730ba3b3a066bbb0884907b316a067a56671a1685347e616466741cd766111930e660df678d908a8fa367514580c0c025f36660d829a493de0a0f65e6cbddb7a598d32e8d21b83d5fc8bb228a2a206b2c2f17e35920d87f7d4984cb8bcafc664c3e17d3592198ef7a881ac70bc5f8d64c3e13d3526132eef9b7defbdf1debbb7bd798fd979d79bf7bd7bef8df7ccbeb7de79efbdf7de786b5b043d9d8472607f28a3d00e780b2b5d1649f5a1ffffcd6443a762e0c21541f713a05ced0fcd284203e7e79a32925c15fd6f06e56b7f96ac1ce897ecfc1f5a7d8de96939a5fff5ac1d4d68f2bffc8f5055e9bf324b83feaa0008a7f64740affeff822ac6c559c3db52bfeca154c6ea6244d5a8a7d875ef83d6e617be3c47ee0f4ef46fc5a32c3da636d8a47b87d17377a5c03b1af3737b049f24e43d14bf150104ffe95e6bfd610de1912c24f17e33f7230f85b395a2b8e0ba7a49dd3e492c3e2290a347e5afb644df872522ef88e5c1e3f8572da1ee6312032e9776df7cad6ab3039d1395887e3467b2b3bdc351ad9bdb0759057034778e0e4d19fda78385dd201c1c75d8f4a3125c18d7c16a87060e1d47ab6f50f2fd0209074d57f38bfd3f299bdbd5f986d97a8f3a0e9f17dc3c02c0e6230ab091fc1d80bd87ce9da4da2d41e76a8e60de8e53ef5074ae8e425b833142d4e65e4bfe1de6785f08f5e366e2da1cef006db10266ea370b00dae86265a31fa6b4efab8c51988e0beed99e2c983a56a55506a2c7b1901abd092c29927e478e1b155a635a4dab8a300bc89ee297a85459588b4c9a2576e6f5d37c79fe322abd02de6f7efe456e52bff38e14dde492754b721defdc7fa7f59c422948780f190d2cbc2ac60104c5a1d6e156b8b75f454db536deb3ea40e368f35a56860d26c93a39f6a0a12bbe47b16b53a793ddc0a5f66b69d4ff1707c224c84f4eb530d5407e8cca7d8c21ad15d804b544d6bb0ce5d91c8cdc9b1b9a031d2b8a751bd8416c1a3b019d3b721adf96e22040b2aeb895b28bac1ef1b5bdbc2cb2aed3a183fabecfe3ba0eb5252427aebf35b415d4ea42ad14ac82f47743d69a2c3fd822c13afc4f4534b476b13537c5617d3bc7de2aed8d43db9fcdc54f82a4be492948780f190dd8896b5fb592bd2752cad4e335b8e1c586660eb7b47ad72c34848395b1637207659f1915442dcf4c15ea49c8bbdd75818c07c4b43053e7b880981a6623a8d166152eb7f97df57abfc3bfe136c05d420d15d02a029059a6f2e0c09e72e6d5f7924a46fcff189c582e4e17426d23672d25f1819750faed2aea29f8bf9b426741c90abe36ef03e75877e8261ad0263184d3f22f0fe2861d1eed9aca0c4833296ad7a575d5fd0fca6e30ed166ac9e97f5a1444fba2eaae87b6cbd051ed609056a9f7520ffe8436d469bada54ea537f4a033be9c69f3817bec2434db96a2d9f0d1db4ea0a56267738c4aba89bf8dfd0624461054d543d757c9103e1a8c6a072b902deea5d292db1c1df9ae5673304a1790ef858aedd688432b0de2341f666d746517e3b92d610ac922f922f0b57337aa71317c5b52e1528fb8411cf818043bbe170011b2f193aace65cc56ce6f856d686f99a4da79cab91b03ac2a7f9d30d9beda6d58ad4eb35d9221ee5b22486359bd67afa5e70f23047811a63690a840b3ea19cc3ed97f676ce52e2fc69bdd7cea668172bd4b56ee980ccf050e7949c3637ff4f28ccc8a6703041f9a72f6173b4633f1ca4e486b20e3e6a0202422943943d781e33c5986c614e47bd3dcfdeb0d5959e5850e82b066949faaa5384e02fb923a1cd8960dffc48f116fa2e2e0bc6b13b9dcaa8648db7b16237553cf058bc3bd8f8f6e7015591c892e9a318e11594ca68451148cd9d26690f2196bbf433da018b418b9f6ee5118ef982e76195920c762fec859bb294631428f70a2060cfb80811910a5cbd8a9c79c5c3c7dfbed5aa58b4c9524e559b628a9189ffdd9cc83e0b1bf806855f92a26e9f5d046e97282f2e2ed936d76e34b7a3aaffef657ab26d460c55a926184b6dd92151a5ffb24bfe36f4840435bc31b215d9cd1e8384db5f2dbc74bfcfb76c96f3a4f41a3da360620e945fa768845cd6f4e9f0066a8b1a56f64aca71c8260ba6b39d46bc80fd1bf5dd887d76d5e9e1c237aaff7570f9a243a5ff7271b189e8357346cc544766850868374d04735650ab99146407f88b93b2456c4177741303533a702a5af46aaa7277a74ac94b56d5f2ae28b01e1e2a1a07a7c876e6933de5dd129dfd75d49df6aebc44bb5b6215062defbf89da544db3d221c086f8b573af1524bb4d9ec5e1c5cbe023ca559b4310ac8f36a97312c596d489e7e98a39a321f329cda4de43b69051d6084e0110ef641026ebb1702578e535164bd483b20b811ecd33823f9e02b7efc0d4bc04faf85079e69184fc5d11473dbbe82cd6f48fd616737017e0f5658a9faca292fa6f34b20e90c335211ec731f12e8758177d9315cc89e3e8d451593007d977890c03589f145c9a70591298c8436535c28f8ae4ce4b9196ecdc902d58192636f2790bc2fa656911fab98ce17363f523da71aa1db9968d5b04ad028279ad7952a71f144e8a7f403061181ba84feb318f2ebe7680b3407eb2c9fd3867b4fb825d5dab66d082aef5038d625a41b02a25cffc4999bd3aa29c610720f6e9c49d73b9753bb33b0ee445a660186a15d6e9c0b5ba4eef520c22e99d8c961d127c388c8cdc4260b297e8628c79af0d19f2c8158ab450a57cd42921e98c02211635606fec384fea844a6ce39a91f4e7437b1c3c3c6ec8a98560e8f83a93fefc7104191f5ce73dd26289dd27478b6e0e910e698ec3126b2cb1c21a6bacb162110b613d98b32abdeeb47809962c62c56ad6ac65c922ab2cb2cee2b0e263bd80a8b1aecdc192dcc18eae8d8a1b2b1995240423a5f2f3e637fd1ea51087ff6659363a22d231e373b14a79404de9b1cefe577e6c5d363a8f7f35dc6028b275ce95835ca7ea73ad295622167e9f3021fefee0e1e9288ccd60980633c691c805603f4ad82c3dee162c65e07a4f3eb7d836b0058dc4cccbee7d8d1ad48b7d2ccecc0b155c1f512ca97bed25c8ac8ae3be146336f578835f1bc3c653c20fc8223cbbe8cdc7149dd09708ada07fbebb86d52248a42419db787f37af3e9f65a299aac9c6cb6534d09b5451f1b00e8d62d05dd8fd0750e437b03d57542be91f2ea5585482e57f2eca6f02d74f294a7f5171f6df4a1cbc091f5a81df3a9ee0f7f1c4bfe0d3a0a8eeb7bc1d4a8b6a32ffef4df88ffbfe43c74445256cbe197aaab34279512116bf01283f115ebf45e31d45b5b2fd7b3ba1a21276ffe702fe1a58fa19f5e91615b7ffaa368f2aaae5398c2b2e8ce25c6a0e6b023f22186a492caae6f2a789122c2abef37741f0efefe57f5d346658ad6e48dd112b2a44f617c1c5cf40e117903cbca856d3ffb8a1bda884da7f5dd4df00d79fa29fde45c5d9b31ada35b6fcb807a9a282ac9a01a6c1dc2a7562e08e7f22c373d64f06249308b336b8031a39f5b2060bace1392faa4f3d03e56feb818b96810256825151ad147029d61ed2a061b0a22a798b54f51a2c2adb5a1746a1d845bc10d29db28b4a8c405d5e5436f5e438be5bc6df7e20e56de80bff7ba09de4108a4a5aea6f24830858eb6b3dd52168e7dcbbf3d476e5b382aab5815c1b4af57fc4c45416bfff4e83fae61b30274cca61db30014d18927a824578a9c3fa35cc3859103455ba9eaf143ddb1a89bd4aaa6395b9312ab8bbacb36ea622a370aa17587f1f37c16efe2dd29fadd2abbb34214992abf65e46d6d45fab2ddfcc22a7847445323a28468c5fa2fbd0dfda535f8274d5c545d35b5ff6031732b4e500aa9ce7dd4e39d5e33360127de88ec7378e2e6b684da5cfaf1ce16a863834885ca7d9f53a2fe6f1ba3b33a461753de2eece1bfe25d03007ad5d258cc6576788ba8a51b71db3107dc25b12ed9ebcd37fd01ca8cd867e209faa60db789393de544674bcfb522bd242ec6990a05183f6b6f086aab7b652d1a72262330f95fa08028748dcedcad062684b0886e0b06859409696c66304145eeb2a4d81816c33b44bab9f4e176cabfa30ae1ae2391e1c1523521ea42f35deb5245c5d0b6fb01be2db811f0bcd58558d4de001d8561329dce9af4d42fb16c51db78b52a8deac6e004b4af8400124c6a24e549c0da48dc531391168c0bf029bb55faaf9001203cd91dca024e05f6dd556fa7e1400e45d0eccab3807c850a38a03e24528137367a80c604e8006883b8c076bee5bffaefa0e824c8aaba608bff33fd52c46c58f3a8d3526e30f4022991ec3c0f2b9f75c06bbc03a709b50c5cefd76e97ec913020154eff28a75a708910031b9707acb30d284f6455cf33e060b1ec19586f29fe4e2fe0ed288f59426a0ebd4f137b4dba5a358704f3affa0436eb0b2622bcc38ffcf6382581584d06e633a86b329b6d20a39ccfe19dba448fdd8cc3aa18efe704a2c71bf9b228c5722e2f14d9b2a44c234cec273689175807692ebe275ac0371b09b7604fd4cf013fb4c0ddf944ebdb6df61ba510359f3694c5d90f7a100ec6f81246ed106c758d0f2e278042e9972a61b62eb04922b6a6011c39403dab8dc610a60147cb3c9f82fb6804db4b51105442f75bda9ffa767b9d0683c328630fc150a20287298cb47f34255f585fcb5189aa1b063876baf38cd82cacddf68dfab36027e80f6b69aa6e65d7fcbc40962fb6a4df9b52a1e79b8eee6e45a4a3f25f7b8f4393524c3f5989a5466bbf1b9e2a90b5b659a10c71d52a7ca32dbc8b8d7a51aef2112f525eb18559cd217174b07caaec718a9dbb48186a96e46982a5b420267916c19ea638a24513c00755d5c21ee460681b90f8fd3dcb6211a8edc4b9b814be51d2148dafbc0605fe39bf22849a699082fc8dbf489b546c2bfedd9ac359ddaf1aa46c2edd5a03bb19154ce58f321e3724d2d8206dea9fa034a0505a5e1c9a63dd8847b8f99160e871a0ad7a9fc050ad0d5186aa1b0d04623e6996cbf3836980a0a58b2e1b98878da3714fcc92016cd4f37341fe42d4603a5e4a52c1074ffa417970ae50bc1f545fb6c2a29f5ba77451e535ce2d5758706655fa8e556aee1d34076c18e68062804ded99772d4be2811b4d271bf0b5594b2d265ceb60de7b4730686aca4586caaa1614bdca0468d05d80930adf9dfc40d071cb03a522901737757aaa7c6678d6af2c0ef3e391ac1d8e548029dbb683291cb8621afd1ddd494d7ec4928569a2330bc7d0803c87309d9ce53839b844c5c34d23591fb00e7f295117db303e7ec327e55cbfeed9e38d87db05da98264ed52d547a129f52e4ec170cfe639af23ae0b64a99e957264d5b7cbe2776de7a0cc8bbee30295cb021cfce719b2fb698e8627c917a5909efddb6755cf655aa9d26160e461fcbba72a173701940c75663e4612a7fffce7e4e776c5536a1f17b2afb53247f7af9d22cad96caeaa2887637afb0d6fe5235538390abbc15d217694da594895ce96805ec59eec82df156cbc8f49cea317752cb19626e477f21868f346931166679f830b1f47f5e2cfa81a36f002e9a20b94d27266223da841b700696bd0950674e92c813b344fa85493c07bc89d9e8e6d1bba1b4a3e92615759c8d0628d90ec585a02bbf468ba3ce87eaa755b2b2fba941106f89aa87c92878646d071e6734d62dce754f9d01139f04fb12bc2c0a7c1c0706e81e0534b26d1ac834fd542532baf7c908d1e95d080f0968f025e2cef43d6eb1f818acae0b8f86b326d4510a59b09b13e38d668c16ab93d023451f2b0e7f8f19bc4b54e180424dbe42893fc4e4f8beea6112f0acb74af54af17c4516d46c3b404aff65b484e933410b2e9c36ef7e166db80b4e6eb284a16d667a6eeb798a07bd9dd7e07292584ab970fac68c96e563fdfe9b325fdf7ac8f4201045cc2d684ed3e4ccb2b6512ec75a8fcb44dbd03308160a6821ac4ec9676bfa1822f48a931e77eecfc47c3e5edc8b1113e747e81c6af8edd9c396f3e40346260e2c1916725c0c15263a2c7c772de8c33bfab0c7cf89add8dddfccd94c658b4be19477b059cba37bf6f0bc061ca2fece60dab0a80872c4eb0761d9e5ba0792eb895ce1e95c00adfd56fb6fd3a9e9951b55c54c39a6d8382e64eb68d10fac6e1ee1cbd94706fc8187da8ad0d78533fcd1c80c508db2f0ff0e01150c7d27007c7fbedf8838d9a01e00e43d70340ec333b428d4bbe64330eb3ab5e240a185f7d10f6b5be752664bffbd08e2e4496c641c37e0bbf500a0f21143d2974728ac424f3236de57ed1e323c159256a777532171678f5bfd1d53b61eb9937d42068c3706da888f7d992844eb25d0c6d8fa4907a39595aa193056f6e73d57a714921071e6d7f1cb914811637a987ee67294b21715a8bfd60688ac0ae933cc7b04ece9b706ca482536903a05c3a3d823122018462b05e901d19344f5dc7a8afe96989742984bfdb518485d837c91c4a705a774233580865d1577a8d53d7ee30d22a9ece48e85a34a0c4125857be03973ae80a126f97bf1cba3ade664d9e2164dba4dd079c8272c1d35189892e9e2683806bc0bc741cd0fb4bcf26e5f067831dac76d5558d4fcbcddcd5172013164545df087fb8155613c66e9d2956b63b23abe3a3073a2814e4a0c9c3d195442115be5a174c42c8e74b941b041967ace21dc685e3bb76510d58ef01a8a78ed3c5d63250bdd68b99c596cbaf2d70c039fde0bcd52f14d37129080544f406ca7661b5f56ad0a4eca2061d74282b5d3e7cdbbeb218898fc90232a095f4de139e834a01e133da18046a49ddb85b2d28e72ce7242409602be023188c14d051c77ec1c65fb365168d58ef4e43fbb6fd5aa026dab58778a1a47763ca242dfb08de97d402e553a16ed14afcd5008e64d9e8d72c24da0aa93ebd41c263c9d8df41d09bfbed9ed3f42a423b9a296297ed259490c72b0fea7fe7d69c05b390aaa85af254e033980a3d692fbec1017231c9a18bfbaf81ab70f1314612f68050806f7b90d5fe54cabaa6a3cc99a4aba0a76c592aad16190bdf14014f5cbaacfb46b7bdd22a46a78779acb7152315aaa7a6c128c7ec64f0b90a0dbe22c7e8fdbb07f4f3e62b897b0cf91cc8f9dddd61f7d602fd619b46c3083c5194d612a10c93a35d9038f5f35914324398e84f5b0c3895dbf14340a098f6a4e2fe68af855e77d7cb77ab6e1c4a627813a7d4ddafe293bcc4a69103d570174d18736565fc83a1b62684bce97ad79651888c40b7340a026b1b9621ed66aa14803e9b26964eff15bd002d9c81fb269b7b45b85e178861680bd6ee7df99b7caa896003c7052000d12456c248835fa02b2e6f9bcad03662ca5f8c260ac71c9c186d1e73e600c1832193ed5fdc57fd8733e8cc42b276003a4c4cf6bf4d9bcb4b1a179b28cbdbb4a858df8f8ff48044e026a6ca389beea1eb7d6192be4d29cfa888ff9f52dc2f7d29817bf6adbb310d456e1f07fcf7ea8cfb589172e873934b4cf7a5c3be85c875349209a6ea121b5e9ecdd9b2c7534c557abf1c6f7c47ef3c77c0edcd7d1dc7d3e0aed6e81626cd62712c9a9e27f5be1d098c632487a198238e0326d1d400bee3d82e5ef2ce65f9e91f8852087f74ad9f2627e93ace769f5cd0c7362053a7189a5eeaf73e2ddb48e910256f7baf54fb02c71ba9ea1d0e7008f8b51eff555dae1b79dd345644e740351a1147f2e2012f5383671c5da1275ab4b163483e1044f03a5351cce6c96142c85f836c30ac156a4882f2600f5e16c874b64f3ac8f78327cd7807a868ecfa99e9955b437eae6cd4be9a11a6fe5a5be8ab6c20f9548d3ac367be5f48238f9ec22a19eb2cf43a47c19e4dab9ca5b496fdd7a3a7e146f79ff5a9fe32c601ec7ce571a3073c7983fd9b2797ee9db1b3a240f7685e74b30503e99228c55fef7bff56b298bf004a1015c57c22dd3fe19587bdbb293a0c3dd3df43cf9c46b43262f109a8b01b3d7d3d48433dfc91759296c5380ba50747a9a212c0e66ad1169a569efd74b5377adc1fcd5adca7d976a12959766db893dca9e94aeeda7001574e9a17ffb46e8728f7e9cfa6b072bb11060047787acad0428f2608a698b29827338a5c03d8bd46cec68d4d072ad136fb4de56fc219000024f554ddb53358134d37b866d53ea9591b239f27cd9ec4b5c9e454fd7d874fa62296da898a96632cad66f9598e0b0bd5411ec4914e2cec3d34f0b38dcba214c73e76e20331cd34b6f0424b320cafcd80e0f8db277aa95906d58bf37791339941a4d7099d621c8cee943ebb4f2bf54457cee689a9b85a7762721b28121817fb007b120fe035296a366240bc4e08c84c7e6a348279e42065944f27be5a2a0d8d8ceb4455d609347df6420a8b607c10a7211dcda808b108289845de57f89206710f427bcd1079b0f4c6236b1b0b9c87dc1c529fed2cb046aa6082b1b0953d3665c791855756d3ed219fe6d83e463543e114278f78f5179ca8d2866d9c5b28543acf081ebfb2f7d2d558446b30141132b4f7e9e4da9d66596977f5fe54ea6538b33f2b70d1b770fc8d48ca6bfdf66dccec447ad68f7bb56338a232777f38bd99dc0c962feeb76367c21ec8369731836f6c59ff2b316800c19df26bc496472f9e72534e95f1ec5854a91fc0b597d63ef2baeaa092d9d5e95af39e8974b4cee3e932e46520ccfe34ac3a40ccd9d308ef3aa4407b32dc6a5fa779469463a5f89d1cf60475fc757efab333cee2122c4a504e3737fceeb38c9a8456d5ff4d387b09bbd72542a87b8326184670421fdc8b77efb121d315389e4666cb152cf3afd8b1bf5c0f82527eb2e3fb817b49164cd317915a19665b7e8909bc563137f86a006befdc6d4d473ed578850ee2e19f998c6733c026974b513af835676861ad9c1867a08507c42769d7b766fdea2ed06d4b0d7d5537621026a15190fbda64ba7078afd89de19e7b1981eb3da6913b8cc9a84ef43d943e0f4db7fa8ec874579871ea0b6f304174d728097902772ffc986b5fc7f3fb2e96c7d94632fb785cb3794b05a1b7a0b1ee8a6e917bf5fed1f6dc7b0ab52814430708b879e0581a780e90ab0ea14583ffbad8af83fe458b6b83a58b638eb9951ee1cbaab7a1fa615eb2c7cc250abc18508ebec3e2f7b0c18d1947e29c5b1825f70853b6726fa018f947f26658cd059ca3ddfec714b663ff3d33c523720704d1d4eb3184fdfd502065fe8683dbde013cc180c9c869a17676f0dc1e7410e08c21f21dce4c37315c374dae459a56f9886c6bdfdb01695ea17c112771c272e120401321b68a85d0e214b17f50f5bded456b84d925cc6ad683ae5dc514012ebe3183f1bcee6f04d357e83e3f1bdd6ef5fda84f78a2fa73df2c843281679491f53ef108a7788eac2476705265d8a9bc0a279d72e5e2fa33d8374e4accc5dbc1a50a73672fccc012f5f77446df200289d6b1b3da136cf7390207ffd4b182541b678dc02a71485d4b09a41af213ffd553c12ca67ac78263d9bef2d3ae1a0298a871697ba107534baddca10e3cc344bfc2d04277f82e400417e01063203bc4549224e81cba48b3f267e39165edcfd26cedb2b35f0a9cf7d1d97ca1e130b3a0c5ed1b387fe2012826937fb68856b7eedc8bbaa4b706543928f3973e7cafbaa3671c35f6e6f05ab0a1b06a971f5370e6a0f9a7adc73145efef7c9e824d0a7d185b31bd56d98257aed2e429d2f6c4102ee5c20b855f039ac0ada58f6895428cf69ced31448655b3a7d03eb2ba0552d0bbe90c0cf04c976f1a9a9d9c49f2da92a4ff8745fb860ddb9ac4cdaca087c0be49c31eb8a01749e5da6d9bc63ba49a00888d48d33ef2047a859a7d63bcabda917198795aed75345bbdd45c5a77ccd762c20c24c4eb59abdc838e92c3f702c7e04b2184b81a7a4e172a0f902fe678774a9b716d6d5e565276af99bdbf8e660fd717927c11299166800a5e06344980789218bd3145a43e92f4f2b257af8c9deae34c3e9d23be6c04f83630e84c28fd4efb3008271b882d880f306baec027df912890331f4c5fd0a04015cb2aa112149bfab8cb79a067caf81be27abcc75563fe3d1d70e899f07699f4306de1cfdfee4702e7fd44b43285f6141cd7a149dc327fe19191a938f5fb23b34e0ecda5b75dc2b57d65d3404c48e46c0deeae064f2d743326de89ee5ac6b038fc1b7aaf7090c0a92ab9b6275181cc613c904646e34ce0108f586f9d8c93785273d69a06647d5dcb5b79e3ec1a8163256ea42d748b5a5f338626d546727a6aa9890c6fb9aacc19be60dd15d4482d849e0ad97dcec3cd1c5daffb95c908756153c3773f6708c8552a389edae697275e8717f15aefda8d1c516a0d1d841f024017f73b6a4eb1a52c03f339bc56034d4ac1ddd35aa1ab217bb13fe068e0f1b5891ac5f9601ad567828f1484e8a7c6d80c2f3bd13cf13629e7378160323bf0d01677f93034db2e108e37a39960794d202a1da4164b1908829f1efbc28757dacbae75755b649d49de24f168e07a0b370f6e300acf60c41d804a8fab256fbcb1c44f0181a0d8fd7d40a954df10f9422b1b14cd2f48d75f58bdc74bd44a6900ed5a1ae96b6984e3c7b4e561b6552c025326560d6bdd2b5489b81eeb93ffa1faa50056f1315b14c9229a41c623a05cdc8805397c5d8e7f8beb3e553a17dbce3c8b27fb2086be347a309a06f3f945aaa63b01ca5c8f4b26f87ec3b042e2c1b81eb6942f3d8888122e4584ca7f2466b96846b493d013eb9f09daaa13c0d056c9b9251aff9254d782a0526240acdc97997f35743aad567257d96618f0a0486809bd5009a8df7c3d30d831b49cf84b0256a6581d402cdf8314cb13dfbc47056f817ba83a4c4f53448dd81cafbb32be21be48559591870c8379875ffa6a7c11b8c11c0bfe4dd4702f68f9bc728933e8bf8065c171bb8551f6a12e64c448f6d3defb63203b3815466b7760acf11285b685d2f559c8f2cc007d74ae18d70ee2cbbc2b8ce54eed628f2b46148e1aa0c5eb0b26e66880783742600ba71b6b483db3d53b672c99672c0aff413fb89e062b09e7a1ee9b863a71ac24394f0db0ac3bd74b20fa588f98a93757107b26d373975e05b32242c6d0b7caa6e10785e1efdbd4699de947ae895b7312a22ba4f004c0e322f652cda37528c70c5c380666edc56514bda358a1f9126e64585f42dad29e1f2f8725824fa823a113ac3b5a10d6cbfe6e9f5daefa9ffb59f51c5e7222cc6a080037f10f8aade99faa017364ff4fa7f9dc998b71f09c1bd7b6401be2d1bae96a89ecc4cadffde052f421e29ec190cd402ee263f1f2f39120ef0e106a938e1aafa3ce15c8e8fa5baaf25f3d49799909c224fd67bf8434dd951811b878e6d68fe6ba5fb6b14461156140399a9c821bac391a3f98d234bb66505f3ce72995f6c55ce0e9300a2fa81c6e7b0c445206368fa1ae4dea221f36830f9cb78de07596d89e942695b03beeedcdc297597857af248ebafde49b67c17ca50f4f6d0dc4c1aba32e468d5bd303c8a49b68ebed63e29e9c34b65253dc910a7d404a37ae3957e05da2e25ecca0e9116527b4082a9e7d43786d7b7c71ced7bd9151290a80de2bebf82200eda24a3574b769168fa70192ee3e73b39d744fd44cfdc20f3540bc4d8986c309371641456fa62d5c6badb71eebe2ec3d88d7508da62b9250a58cbaf2a0ca419a98c50391a3f891cc381c1ee11ee7f6cc98122aac0e95213e1122459561a8299250d93069633ad1c91488af63e970b6547337cab8e2a1263005a6585d7d0c967d1faa3c314882e85daae5a783390fb6e4d12354b255ca35f0a13198ef6b2e608b091960ded077cad95b597d62e8f15e058ac96b099e1b6382b9df1768f288f94d02d31c8cd2d17812e2d721c98273294345df52859a2da57c1d93b634bf472bc3d5bf173d9aa706be73517a5dd23c4fa086374a647095b740535938184835ad9b8fb3d95416fe61b253307c6503cc19698b4c91c412e6653baa19d597e609666901ed75660307ba79d7bb22fcb25500f94709ddfe176a141ae01daeb48fbd1308cd14e65af766b865017cd6144afd56b9d53fb129a1874d09e27250b52241a0d63ec89e0eba2c4ac661098a1c1d239583e9f5856327e78e2e60ab9307f93bfe169886f6aa9c54e1c293ac30f695d84ffb4a3c65cf5c02ec2bfd14b5b050de8bc8aedf26f0246b3db827c495c78bdea4331c9ad4f2ef3b464a940eb424e6a1da967c82f76f57a4b713012193e77d1a39a0c575b59befd86fcae1924db082959e5181178aa6cd1258a6222f0d66d69e5c11d54d2dce4dd17474b7085174380b591408348f26affe668150f712fd8337c1f2fb5374aa4cd0a702864fabc1cd12a79df170412885e166490477d6cd11d8021e3cb6d4a018810b7d8314d8f7e701722b2e028890d8cd726973c4af37cb33d658a0de4590a2fd5963cd114bf94976ec04944180c26e07d415123736691a59bf240dea7daa44be890b0581510636069cdca9081d2a99538969be8a114658e774a3e83add2b6cab978eb7ff624ea15d371e4cbfd16e079687f983bbaa056076b3c976b3887d1deb0a33353d0369a01e520749006a7f9f2ce5e8122613f1520562f604f84811fe69cb3b9363d13caa38af36081d288b5e239365daa72778dc19de68e3e033f4927987960076b52b9990dc2c74ea98a001e0811c852d3e5ab41c9a6d5a80c2b8f194aa9341885cbf2b65f9d2c951274054191e2a85dba5313b780bacfaeb3f3604f4dbb81a2a0589c11dc20e01066162a183f5fe7c5cdf33b3e2e93c1e526b7a03b2c4a7d68ab96d21b421de97c366b2fae0a7a561f435a04a3cadf3aa56724ca3617ff9979415f8afcc4706185dc90b5aa741c265fc3c1b6a8035014b507c9c7d15ea304712e4b12eef2deb8abc591023c3000b8030310831a6c0335d89a222b613648ab7af958918102b88093187288f9e8d7d811f8948591f239ce80c29f6e51bc1d7106955575805bedc5b4cc492b321b972ac6d8a89e02f7b382aa42f119e16cd1544707b99cedecd070df13f2c2be3eee8a51f6d5b1b528f71ef4d9287853079388756d0cea25d8b2d38b0514fbabbe628805839f7a03ad1b252c2065dd3023331dd5e16587de2d9a85650f10f6e3b815e40ad0615f21805f3e3e1cb38dd90371d584847b895129c47d892ed0684e656f02ffba83c0e5ba127407a6c48225336401f14cdb039c470b4f5255078be4b934e8562e9a35223ad0ede8fa880f9515429294715838bab185d7342b38581812844c2d566fd7021cf48fed73662071db5ce18fa3a43ce88aaf81741a45a925c6e48bd088f928501ff1107ad2dbc94aedf0ee23126a3ad4b673a844fe66a1982b9d0624801a24b4d4ecd02e03da7de52301f79221b51357fafee0df1f3df3d16222bdb837da2e75aac248a41a435cf66da4b5e200ac04254b95227c1c69c6a7cf5149f4ae07ed90a1ee6af2603eb83cbb5a808ab8960d53de2460916cda37120cc47b0049e8401602fcaa039240680f9007473218a51968305d406d09b1b2ab98f2c89d319b42a268df9b80cc389bd1950384ccabe2ba284a0481ea011506c89d6e99d72f07baaeb709c707779acf19bab552fb34c73ae3b99dcccceeee52d7d4f41427f68dcb78b774e821300ad46f1e21671f8cd245a1a3d6f7590814bf40c8264cec28c7387159969498998e730015c246eac129cc5f44c508809b760af0eb82e03672f8164afdd8aa80cefcad92ca0707ee8af450a82a1055c53513a47cb8fcb0fdf23a9dcf8265f1ce45b4c79bc5ade1cab9b2b22e4c5501e5c1df910d0567d3b9ebef98af38db10adad05f82f498d026809925357ba2282b514118beb75beadd26e6cd69cd17a6e5f2ed24134014fe4dcd44e771fd50eb4ec2fb8603672624dc22f6c6df5a00ce8a01e72171b5a106bf44e7e0b395ff2f4a60b2fa491a6cdc2d63219197f7b5248e071360b14e7065d3f4b7e68b36b0da8592404c6396b2f0ffd5d934add4359a8859bd9656a7569125b08b65cea91f949fb070ce78686ea816aaede6b9d5a70ca6baa3447ceac4c7fed1da16207f5f4c7c374f387a2ecd172be72994f5bbc962b85b6e4177e78261f9cc71c0a35255fa080a317fa245a6c997e3f00fac093d335ef64b24199d6fb34fde8d17f3494b03793ae957fcbc94b98df43322940cc9d1e326d445b9d825343708fa0ba1899f9471f6b1f7f1acca9e86e772f374850a27bc4c6412e1992fdac1105ee8c616dc0fce875fb41caf549cd8345d8fa2868ef09b6c032e6d0287c0114bb18614b1450db80118c9cf49d131fb1fee2c3e79a9c537dae760a00e91ec38d289a95f112046891123a45249e48ab1fd272ebf363c5f2980a5114aa28a860bbab5e926e7fae5e7fb689bd7336e272a272a40e80579d8747823d32cb2efa26d36a93f4afdc16deb9f4c99c7c1c32a8633845fe5f94f9ea9a9cf5559609c89e681ed2d30ed2747fdf7cc2a61168dcbeb114c87a85957f1d75324dd0ec853a0c1f445502f4ded156d1e15ed247cf951979dfd16b0425680bb823a2219221c15eeab23504a729a0de07bdc8132094921b531e3e69820e476f1e580147ffd0ada87150847fb4afc298d023d9e030602abc430cb510fcd5f43d90331f214fa0d969f47aae77776384de4e75d370cb060d61a76f84c8671cf88615f71dedac3d6fe3b382f8aa1444e7adff699dbccd09cbdab1685bc5db52af2ee1c5a75a04f29a4b2c656431e09a7d9f272b9fbb360994ada406533dfff5c64af7ccfd537ebb3e3783f31246821712c4dc35284fe528bbc37e238b8418e0f730b1a8906b16c02f91283eef4309f6e6f953d637dca46b811da9f7b5d9b8af4858fc6365eaa6bd75ad49dcc1c214008741f8d7a9350aab500ec6f1b7e9eb988a40871d27398e2740ad908122eacc7f23b09d915bb9bc6f6e1e08ae9579622a5b56c45346ea9c4c4ebf2765c1e5638d05db590883a43dbfa7061a5a94d74565c934c60ef38931bea2ca3f0339108285a7bc47726ca6e41e89c2fc85ac0dc6b67429a7f6678f68a688075a092b3556fa2f2b9a46ec372c8faa8c9343a76d853da48a2c76c704712dfb134bd05f2631349ee02e0cb0c120407bd922d859f1dcb35e4e4be6b332d1d096ed35625d7e75d2e26abf7fa6ec4a4875eee214564bed62c0f8b9d3bdc4b5bef535c67eb74ecbd37123d55a3cd35d0ae9c392b4dd5c3264239bfa323053f1c8e4497d4f1e6a62a36bf08746d11979d670a699abbd277566fdfe72e71795f5546c5804aed6d9ddf83b78ae90ad359faae236628420f712c55f6ef6a39941386e123d624a10c2278ca92a419f332277a739d122b5b99257731e0c82cc0e115d750eb0dd9e122d24d3af5ed8dd8354cf56c3c93b8251adcd9916f87ec9b4436f9203892797247e1ef9a057b9bf36e98a07681954fcce468422035aadc513f3b076de0217e34a71b5b26ed95a569cb8ab452ff7fc54a7859f45478a44a95f185a88e5680c6311fa5be460fa1f9acd00bf5f181b2e96eb0ecbdba6cd690218aada9e87b3a598db8996a508b397dc2519142efc85d478ad4368a328b13c9ca6d972c6591199258906e15ebe6704969853e14a2fbb4df042e50fab349ab4af54650ca9e9a25ed54736e2dc333663faa62db42abcae1b4b046c90d17ac3aee5a3159d40a4ffad6c3cb2d5afbe63966d159855cab8bd0f2aa849e0aaab2f3ce721fd18dd28896d2a3df11d231c78964a55bb73d45bbea9371052498ac537103ad55ade1925ef55b6b93373dffae6fc13d492fd2d7e1b7c18512bd1211b9c401cd691d77ffe665323b39b709a1a0525fd101b2b21e1ed6124ab69d88aff6c903b4892fd83391d8d1504e22d398f09495fabda1b8f16673079d15945bb9b60ffa6e16a69c10598551c54e1856516ef2202d2659aa1b0f0fd38c956566788a7d3b306866074966632de00dba147b3bdbce966ece094456da48ed70e2464fff459d1ba926836cadc858ad954736172a2bf41c7ae7c649ddd857744a7b4356cb12373e089f947ac9e8b31927222b674a788a36b93398177a5127a3476b65ae57217918c83d752b7db4ed7b57dc438f5e3c8b7677ada889a8d15fd2274357355b5cb4a25a13b562924d60f4522a712dad0950c31ae9f63fd2a2da3921ea534c41c934f59249f0819b49ea2b737534dd0720dc846658015707c026aad310691b81182b04c788cb11bad7214bfd8ac734ef42f0f50e4fe201dcc7deed586ddb3933a81d782267f832cb1f295635bcf8f1aa699cc0ace0c8be373368b82c42e995d5cdfc8791a9323f903413d5f8a0ed0e7937cda7a1c3f5c1b627bcabb0899208e1c98b56acff5b2f45406b5461dbaf564df1a13e3db646cf55d59a639bc25be907802c40d4cd2f12a4409d6d5ba435e6c530493b8c17ac10162d4f5fc811c6a12904f545682f2e7ec20007476140040244147af25191850a854f142a96b0a5f80bf8f0a91060ced2486cf709aac0c4327d59966fcbf26579be2dcfd732f9583e1fcbe56bf97c2d93afe5f9b42c1f96e5cbb27c93e5b9820c4cd2a7089587f0af31c94643bca78ba4e281f90104f3470346de0ce053f58fa30d3e3a281ce6c332f81f04081c877cb32cfe1f8102c7215f96e5c332f22f04140807f8b01cdd1482f11790c0a0833a3a46a70b3a6094d29ef9ed750e3c53b476c26886ac8375ea21d168ec2b5377282078434d9e1eae611e77e0056574bee442f94e91ba3bc0ab64f99f36bf108ed188e8ab93ece89ea30e1405e18d841399ede13318e77c7e9f20637bdbbab36d7bdb4e3f93bcb36d3bdbdadd24e9b3ed1ddbcebaaf6f5bcba289ee9d09acad4327e17a2f8870d9560d98e1442aa8ee475cbb87a014c3445ad80ce2dff46731cf2e290d8cc38b8482ae485f40930a1433da863ee824e2637f5d8dbefe19df40529d68cbeb5c51896c8849c165b0bab11ec88050bf01d1550323ff1f8dc3d0fbf4dcc4b073ace7deb333a8de85231c813a4ea4ca00faf4d409bd5f928745b5615951961c2aac9f75e8e5b386a021179fc6fa77948444b93531c5aee4a2024ac1bd07098c01cdf43263544f2e55577429a2315f413ba94b60a96d7a6546b0a1558225b615bbce07abb5aea0c20001e1faf3d20c8125b0029d1970e121c3217c044e53a4fbbf58c276d1577e0c212b2eac20307976ec045652d38086c4653585ee73db57d67491ccaafdb4669f7b2a9ada430e50cdfe8c2a925bb2355500320f48a54d62dc54524b6e78aa4bf3c1186724051f8daba3bc8013e3d4caa0ab340a628900fc31303565fea25edca8d07cac048e7852bbca3d64923e8d813a1fc3498e8611cf22881898bb0599dc4f8d88b3313ecbd4c8054f1c9f3601c818c419f21b23d65d3bf566fe094de3ec7b030f12ace5ea992e47557478f62a63197a3a2c3474427a2f6e91a719385e64f8072114d0b15752bc8aa18597592924300202f7890cdbc2644298b52f6c54e2bf82ed04bccda054ae7ba2e9a1b60519266b216d606cb7237b57740760307e411240b740291a9e11a5110214355e1195ec9ad20b1c40b7c55bfe8be623f348c5e7a56d9457d14b2f319d015243ac27bb4669f9a38f478afd4d1736c012966476ea29877af75a5912ee75a7243722121b3dc1a7145fd3e19171231832fa61aad61041465c6c7f1c3d86b1d0b4876822d2bee9c508dc556760d5450cb93cd81f629121a047d885cf45a08b2c0d265945eb850ba1502649bcfcae958eb00ffa82812c37d2010b30422657384850cb1506a2274763f6af6ac29a89d1a6b980cc0766a0921f3bea4ea0023fb7a1253303e8049fc7b1c323b009c0cbda24d2900463a8950c581c157746d53f9d302cc0bb58c544a592ca4595e174a39406324b0fe47cb60df1e1db6d5791d987409c66458bac1982e9b479b85c07e5533a61ffb1366231a088de766b1dc9494c5b1c8010787cafed5c3213151124c1806494609c502ee8e6feb6fb475a1fb5ddba9cd03afef0c07a5efc1f95f2f27479b9c53327b86f39dc7b898aa98493e235b049502a508ac3641d1e2996b99c3db43fe37fb11099d54963252bb28c9b83bb6def3e436f34d9a097a070f20bdd7bb776ae7cb180882778eae5203d3202f414592fbee793013d204161206c243597e4fea9d7e3c0e224735d95594b0140851b0845de695013680c0a709ad9ab0ccff4ca4d3a5d5c9459140c46f4c60df2c6350ab088ba1f18e308bfd9a5968b994cf54df5d122797cdee60f204304b0411ca32da66a0d8469973f8925f5d82bfe374f1cb34efbfe4402832ad091b847509965fae45abdd12011be894ac8eece1711534dbcfe29c7f90335bfd721a55a422e1bce4379cbbccc31477385394ba4d649e7b7bc15fdcd2549e70fc6085b63febf475e8670b177dbf3b456185bed456fabc8886327b483628b0d39a9a8be4743375226875fef8e9deb80abc6a351f9847c5a81d1c65c421afc9be694b7c404264b6005c947877480413e438e3513798e718357070eaa11799c99c2a448693609cc6bb9e8ec247daf2a488c1560ea0eee26e604a16202d64283e643c9576405864c6f72b6164d29d050e90f9d5cd80238beaeb366c74e082f86d2437f75ae633389566610181e239a71f62ddab02419ade4eaafb8dd3d8a90bc6d62745553971c68c7b38a923c73e7ef4c642411b7fc567308bce52f65b288485a03da0931b9b2cc06c0c5cc941953ad4e3eb9b1feedffd6ca6dab6f81d33a81082df44478c94c498716363931abdd92e759fd662f890466bc44d1f923bfcf1ca7dd0b487eae6b88f4e20cf40d983c17e5ac0ec7783002ac35b4c0818a990164b194ce70f40286e2fbd45b5e0cf0796e5f3c52f6a3074106fdecd78b383d1db37cc423311d6515681dc54cfca0892bc87f3f2e72cad0542d278cb73cc3af51fbf19b9d188d97dec83ea3de69adbd0bd236455f50ad5fa292186c1b3713889067a9f1580aa742bcef89f32520369476a888e725e9d26378cd6dbc16c8bc483ecbdd19c5dbe5e357f84cffe481489038486e130df8cf5de006638959cfe6c1b19d03d5456193abc030cb9a9c6fc479d32a2408a7900d97dff031acb730f2f6c63a8978fe5df59cfec2f1aa6e1d24d07cc2618975894592a19ba56a0c1ce2dd2706ba5738a471acc95e2380043fba799cb4caf590534365e6eec2561c44e2823ff5c26480a861404cdf6cc4764901ce69b82aa6439fd510840318da3cdf8888d0c83f78de39e7df453760333895a698cf19deb2fd6425701f9572135879158696080291aeacaaf4c21d138907127d87e01161e898294cde17a0113154edbe91d35b0323739cf6c4f426af0a3d6561a9d3a6a35280561e54d99f2761f3c4ed807959cfd793a22fdd34b4809bbb7ac7173c4bee54bf603206c7e0cf98d0f07b1c605a10e507ca622b48da6069fa2916a233a08caed14d385de6a0259534a4afa9f2b704217b3ec8b268360276827b830c0d24ef9e53412a79f750492290ecddea8cd19d79bb6a27b9e15fcedd6769484730a7a7ef91946c769be2da2c054b069ef64ab2b18a3461d8961728adae07260b405ab632834159f4fcef3c5986d524b99b7a760576c659e717ddc17bb47fdc3cbd2033292d20d0500aa2593390b82bf5e5b38f90f8fd6a207f2ac7724c58bc6833d66865214fb609b73d492f4967c7cffcc54b8d7ec9dd6d88eddd8a53213ebee7ca8ac0a233ee71392c01d5877ea3410a3a2db11c727ca31a9a7382a263c12fc53b411944bc43945e18746d76f14faaaba94c3011272d98e9a647e194e57a5948b0d397b05ecc4a612f76ac3ef797a8fa44456befc3fd65e01a86f6f6c185c3d3ab4debba8f09ac659bc2b1ab6108ef4e36a153fc2b8c3a7773b1cf26802de6a2c1534335b140429018c9c5784743f8b2ed1db6b36a389ffc0bb92e035506f129be036d0f4c226a07b76f74225b052d9e051f18c1fa020c085d11a6048c8f49f417cb47046f702fbe5a0b1e00c93992171e57db2b544843b0b10e49b026a7f82f77507a9585c395a3dcc1f2677c4fb09e98172997887910add4a0b20d5a51f7c817a3c0658a20cd0ce93ae27fa592001df1711a4b99922da7c42db6280273a5587405d763139a0c71b9f427aa4b87ad3bdeaaa142a34371d0e5a6c7b779772890573387abf435d171177dd69b2c97f0a226036b6d8e0ef2d6fbc5bb8f8a63a196b83158d108d8b667b669520b8d6748cd818ac6d58f97be4a0dfbce92f37d5139b8100ce4ec6501c3734d442b267fbda2e77f1a57730287f2dfac301ab4102dc0b63931ccf91940f5edcac099cb8e746b4595dffdeb99d3cf8d971cad97fb081c179501c5288d726681adce6ffb64fc1cc37d5fbbdb3364cd90d311c842dda4bcc08a44f75d46da9690067bcc84dcfe5b61d2ad6b7f5069fc2575f1ba7257f907b53aef4c735246d9aa6cb25c155c8c03da7ef28459208ec29a0ebd80b1fb81b70573e6094b2b14a850b14e6219996f48e66be3b1627866019fcec10d1468bd7baf2d4f72e637333a23377af7ce8ffe05fe427939bd287b8d58b6c26122ba2bd8fbbb173e32db4b8d6cb9b79429a59108060821083124cd39999c81823a13c68442c382097566ccac31e7fc8ff6973b7bf88a4e5629eecc9152c2fc13e60b993f64eeb86cfedcd9b9b93b38aaecb42ae0b469d3a60d0e7c763d80eec21f5af3729db38673ce396753dd4a6908b023acb168ca7c288a56a4a76701e2b73e04d6d11171e4291b79ca8eb0c61f9b69cafa83c450e16364818512256a38426ac2399312121154dcd0c5149cbf9021b127a1d013a80943aa0d164c2a38b3841a1b920851860a9597f0f294dd71528afdf9c2cb9218b05839f3023b918236486ab63ca9c1050550b27d4d40c0bc73ec40b79963cf07e0ebc6f8c1be08be48e207a6252e64d105e73f346de51332d020c4105a349d00c75078398354c4162f70c902770121b614918495226a98c2793d625e46420d959c5d9216ad2932b9d91f26c16343c5660cd5c7829883e282caadf02286490265851616beeae5e6054e9aa46cf89202245c0e2e5890112247840c6990f8eff317e99c73ce39e9c8adc672e9f758f680d020d0232e6bb96cc4a5fffddcd8fc0f3632ddf9c160f7ab424b66fe398ec03dc0d81d6f7ff9e72c099771a0d9b9cc513d292043b47e623be8f28761e823ce0755c071c696b4b75a61488a8b052baa2f0713b840072a2fa2a0e248171f8ae018fc50c1e02af187a661177af9f203925eef8a274c94a1402c91018b982859724d3eac8c845786a0220c5e9828232dac210257daa218f480250c17c248f1d482920316206c60011a19289429ac167a061fc225a2086087285b9cec8810b366173eb1fa81ee86845081992fc05411451bda348585867231e5c64bd00d4d4f72a802c51726be21ceacb063e150d7502a3e88e2c99228697638c34247d9d52a5a304caa9d1c0e475db4fc50e508fa458c7cddfe90d6311ae2146500954cf170cbd87d62eac92dc5181914431a8202256b9048b1a2250c5c69ef2c6953397c2e4ce970e787b3a44e9cdca64df1a20d1b2c6496e89696acd0f4e26267e60a353bf8e01404ce5be8f20483a61a9a76a85d5e48037e01bee0054764c212634b5496a07a21c98a2c64b4589385091dbc6881c424a302b089139cbb4b61dd43ff304a1323ad17ca887efb96b1eb43764a89a9a7eb1ff65c869a9a32b5825b922c1e5a38c0587eae1d5eaa86ca5ce35cee085d81f45062c65c7f7bc512162afc0a2dd8a173493c0c2a63e6862c381433ae127cbb40dded23042124b8d454d74aa0eb25b983064416604a1961f4a088678e0312a4c80785bd60af221f5db4381684ab3333b3f39c8093544807486c197429354109c247d2b8f0a58c00fe7cfa41a6ad7342bc1644d3806b4334a8c8039ed127326292be07f4fad837d850b2253f05011282d76ee01b8bdec0330a847e10114a204229d5a5f3eb1b7c78ad1cf280fad783deef8621af710c74f072e9f3f05a012e1d4370d217c033ca337a02db13e27a728010427f087d20f483d0ff602f9f570fdf9814fb42e80f01423f48d2fc6e1fe004413a349b3ceacbf23e80d870879a468660770fb92dc26d8e319db01e3cf339f985b86d832197c9531fb58edb3f887777f7e0dbf75d1f34aeff9c3cf3ef2005fb143a90f9648212d447d2b84a4e5a0852c222418814c1d57f4d5909d39603ca965c992d46a418c1f99f306d36c64cc1840b1aa678c082f317326d38543778615202062850c23db5a0c6072ea690f4a0c0f957d8ee731149cb75301bcf9abb7d83277ae77fe0cb9d436c5c578af74874028caa0b8619b19d6d777e8dba338a5b8a36be7d77ee789913d0f020d161acdbb00e740746accfd6d11b6ed24ae9baef1ce923c0b72f0c6fdc49b9806073a9652b31157e18f654f8e58d5bf6d40765b258f19ba4084b400f9693f89a0bdf1cfc56c2892d7c03df8b1362bc5c21e67a4fd511fcc9e536ad505cb01ece337fd208ebfaa2e9b253e6221801becd92abb654d1323cf3cf625b11e09b8b5fe4bd657e185a7be3b6b85cfa2c8e5c55ae56b77c76e2968e44bbdc7e2f57b7faa1e50f6bf1ac7ff2f7cce9b1a7eeeede71bbdbe9b6737f7743d1eeee37febe1c6b329383e03329f0b85893058f8b319452ba6241b9b4802008b25a54584a6118865c2071a113c5c945eeeeb4d2dce48c71b95c2e1c3b05053261c539a7acc410737272723ac6d41167f3a6ee0d548b836cb1a71d453f82f8f48258cb13d49731319fff9c7c86a0dd8f720750e0ff60b4299d39763d2617e3e9ec1dd156de2dc55b8add2d3215bc3546b4e0a921c33ba385a786c75363041516f08e56e0a9c181a726069e1a17786a54e0a5a9e2a519c34bc3e5882abc34507866aa786974e0a589819746098faa0b1e15163c2a303c2a1e8fca8947e5021e150e3caa167854395e104958f0d0c48087a609ded4113c3442f0d0b480870606de19307867a67867a47866a04ab09493409102d2086c3f655beb5758cd065bdf3f1f43295b9f41f010f44d80149b25852f97c2d67cb9db4fdcc9c986e2e0f206ed2d180e2d4ecedd6ce76f1c773b1ffd0bffb41920052697192005203cc7d0a302c0c02ad9be780d8ab252eff653a53ac2b7a3128402983f0657b02329481ec7bec1e7c449127d8ad2757fb94dabe8308aa46bf2e97460c8619d3721cd7db3d7f4347b5e1be3b655cbfa7164b1a5f8e4490cbd56c79eafc9f7f90cc3e0e3f8174f0e8fbad5f72b306a35f608f489939d449566ef4717b6a44e9c80ef57c08772d2d28fd34d8f9c6cfe923e417dcf5ff83645bb14c04c19a44a5e8be2b59dd73a1ce364d3274e18469326cc04bfe5ec85e19b98b6d1a729eba82b7a9eb93dbd08f3346d7405d407daa352548967fd37a2502aaf4179ad0c695415df78f678d6efc46bdfd8337fc763cfa44fe8516fda9c0a96f56311a2b15fbca60ab7a9f0fb4f9ebb9793d532af5c878af21a7fe9d672bb99967afdab30c7ba53027276ca6b3dfe3dde3f97966eb770c420bef17d7ddff751a62c84b9ef8d20ec8e02bed816b7d7dcfe36b7fb04b79f0363102779143fefeffb4427753c6b1d66667692327fdfe8cca3f8b2ad991373b2ffeb99df4d9c94c2b77e01cfa2f06d02796622fad442ba30f4af5b7a8ea7ac733f5c3ca7737f74b09eeb0112fe244d69cad11e9a32ff5c76c6969ebb9e63fdeac1b15c7d6399c33c4258e6bf5a85e15832983a960ca6023cf3ff31624bcf81097259ce49cb8b87dd118639cfcdcf5b48627017c557812d43da066c630ef2f577bc96b8b57270eb835a6cc95111601b7310bef5e5305ce6562e42f0eb15af272d5494d86a826ab5dc877c276c9ff49bde9f4ffa81d31b9cf483dd1615f9d91b365f62bd2db0defed5aab2e0c355cfd0cb39e79cf463902bd318f83d796fa1ffc48fc8bdbd85688dd2f9733233739d73ce4967379d73cef949c968c2f6972ed8e6396d9421d89d419452ca73964ec118cff8b97f86b7524ae94b048dd8be7d9b524a439c14d0af86e02aace047ab588d32946a58435047bf1a0689a2e85ab95cae9b10a4ab1aea404ac1550dc55fdd1c16ec6b90ae6aa80bc18f82e10c3664213a2f35c1a4340475200b7ddf090e7e2400ef8ce132a21f4367d2984f4875af3377bcb6c26f2641f0fbeb90eae66a56b1a294867575c33a4edd477b80687d3ee907d690592e23f059556485d646dbc14d1c44e4a385fceb5bfa054dd628638a05693e68b455fda80d620b8e36481445d7cae572dd8437373731becd9006feb89e29a55d69e08823e2e0586f22f2f95f76c7b572c24294d65a6bad6068c51cd19b8859687e7e279ddfa434468c183a5347d4d1993b4e3f4b82239d4ddc0fd0efcb2e048414a4953677c4ef7764b06231765c24b22de43f7ffe6ce2b64b01ab3bc73959b0d55dcd109cf4202e73bf298067ac1f2dd8fe929d5a2c1f1f5862ac7899776485981796759977c4080c7675997754e522635b97794759dc9276c32daceb32efa84773c0d19114305d6f19b272a83b8668b421324956318048e10ae2e7834c540d694729aca868c3d096d181345ab8a62525b54568c51299d08a1e4f855e2dd38bea41b23974685fe5e34451c115a5137477d71316e7329498276a6012a9b03a97a1c448b925edba60c3cb506276088d887162c6b62e43897121741bf77239eb35ff30fc970a37bcb9e1bc61188621d491cb9849d8c43a793d71195f1f50515cc6b724aff3c2ac51635797a1c268b14263bfcb5061ca384005a59dcb505678e1a5f0254a18be5ea3d31aa5d3032727fd788b73f12e9765fcaf5718c2ee6c27726f5c0b35cf3c64ea3cfbf9e6a93bce97f6493f9082757ae0352769650268005be5f07c976d45f4eb18e29aa86f2f00005cb6a3b38fe00a6c7f11fd69631caf847eca7cdaee16a1eb73248252c4b39bfbf5ac97202cd71c76b2899ba66c49ca08ddf5a6696ba7766a2727bedddcfa3a36d8f0574e4ed6268f9ab2fa3a90b0a5e76e35aaeeee456e1325b6e4aa5b4b704ac282b76ca7dc1fb1a5379532a6fad67e1f2767b450fd86bdd0f01af62fd8d6bd299b6aa266d342f56b16af72aa50a9f7b713dfbc9d2af5fedcb4b9525dd2ddca9473283cab3f462c945b4b08a79a929c74e264e559ed272e63d3442d030bd5a762eb33df6ed96c6efdda57bc56ab8cdb54bf3ad5f751a57a5ebdbacf4bc68c26a2ad16bc25df9f4090cd91dd31b4030fab43c36282d5bd306e7fd963ba2ae747340b8fd585b6a57a2ae9b62b71e9735dcf305c97cb654489eb4a21e9ba5e7419b9de859062861c4efc50fc96cb48b4dc0a5b4eb7d57afbe4b6783935506da258ac5fb98c582b3042cae3d630aad4b0f64620fda238b8d46b42f76393050c1d18526c9a7c64d72065093b77eea4737af1c59d5f0ce145956bfbca485122490ef7745dedd2c1b2f051d1ed05930caefbd2cb879b6e2956a1b9cea50b2dd769687d3f73fa8908c044f3e9376c886f50e4ae5cfa94d21d5cab4faba8a055581011dd22ef61277bc0e76b2f43553d71bfefb3ff3df9bd7d7dcfae334449d8196b18c9335a025d7e1e9e9ffa32366af96cadc632c85d7dc34ad248fcd617b94859e40f0bf5af6e6b8cf1ecd65fc14820efea869397b8d43a49753ce1a7362d1576fe3dff23bfcf4683c6c347086b8ec22fbb3554c89ba43551dc9299d63cb94f1c75d9798b296e8bb7f4f982f374c3fb41d306c00cd69fcba0cb380a9862baa8aab928344907570f8aea88592badadbaacdbefd36aae40a08b0e48c268018925537054a03022441866d22ce5a284e175d67be0b5f9fe1516e3572bbb5a4dd96a2ceb4f92e70d9ddf47e975b56030145645429f4f5431b133357353504f55305531b182c01052501981451621a8188c28d22839f2449b2da2e83cbfcde11bdfd60e4c832d659e704e4f8a90c2e9c076bac0b5a60e8c881806a7f33b30223c56aed80209278308920fa7f328d015e0765e068c080a1e85640527658e3d20748c9c2f72ed17b9385fe4de7c912ff245eeea8b14b9df17b9f48b5c14c225a2c0ed3c08c5ce2fe90e4cf40dfa63e4589ca155c8e4ceafe0939d0e8cca78977177604056f090703a30c6cd2239fe216901b50eff11c35bce39e7a439be1184d50f71ac6eb06cb47cc41e578d1b1e9c97a59133c33665326e397f4e9d9d1d1d193166e4d0b02f1c9e9b1aae1ed1a7658375638523fc0a03c72f078dcd1fd7c1cc4022f38dc99b1d3024900e3266a74c05db39aed7605fbb51f3115b37227bad064ecbd29871999431c31d9d193168e4bc2c0f4e8d9b1e978f68a37583854364af85227b2d472b26b2d7e81481445226ca4820f20beb32125e2ca14f532795a4278583174b5806c012058b343c5859c38b41124e6bc0680343ef08e75bcf07f3f64d6e07cfe69d36127cc6f183302153369f9c477d9473f2488be51e913e72d2ba60cb9d9d9eb277be9069eb0901249201206470b20208199caac081630f10f08be09aa9086e3e082b81719d846fad6b9267f3b375555358a7f202c26ac0365f02bfa73f49aa5bfa442d4d9b77614fe27a3f4d99eb6e094e3d795483e0084e51617b2cc1a9367aa9c096e01439054e8153e01438054ecdd83db5d875be6a3bedb4f107a493bdad57629b68559381b745c55762bf2fa4d40f9ea5209b51049eb9756beda42008822008822008822008823f86acdcd6edc4654de2f4b1914ae8dc94f9075ce6737cb1d36eaaaba68c0ad746601fb836c449e7db17356dabaa1d3965434600ef37da5658451cd70f3a0ef110816fe1aa4545d1e5fa71f3cdb74e5a6bb3803d7b47c4f1b431e34ad9e592d60aa70dc6327f99a571dd5e9e36af305f9a329fc196ffbd5f7f59ce96ffe50c31a2e9bb3c450fca7d1e2c65bf330a1c3b71fe2490214f9b057ae1d48f135bbe66073e4cd10343a3d1425a480b69212d74b2258dd29043be4d9b0df6b1d78767fe3b626ccde296b44ba3f54eb0a4eb71c3b3d89c37d71fe88a2dbf556499a7c4e952110cc35518aec20fc2b1a4d77e9173d42d47107f15052b82797003fb01c4c91efb634efa588a455a54a433e66405a13596dfb38a5c070fb67ef94450f606b61a4b7a27ac058aa0cb087c916f4e0465bfdb2f1d4885d3c30173fde7f7ed880dbbb9b45c2ec7038e08db53bf0ce77f4f1b7af27d684341f4717a645adc3e8dc01a86ab9b9b9b9b1b16abd5125d373838d64e6f6b77ae584bd282481c3b0e61ff8addf92d56490f1c56ec5fbae399ff151b73929f8787c78874927af7f785dff7f917abdf749cd6e6e4c488a1a3b32363c60c1a345e2f1e9e1a61ad01d6a851e3ab5123868e2ba8e572b9cfcfdddd9dd21d276148768edc3298b6de7176ac8c1c1a4e83468e8c183374767878260f8ff3cce0a94183c6ebc5c353a3464f8f8f4fac081c385eb6864f4f11d669531897456ed842fc0ee3d9b1346abc7a787c6c4c6f1b9fcbc804b7c7c709b95cee48e9210874c7c8c777f8b810d03d367c6ed8c0f1bd15eba38803c7bcc1e132122d0e9c7719f53f6ccc11e3ffd1627dd4a103880201014d2020076aa071cc118bfdfce8d001044492b21c39c4d84fffc45c46f6d52ac18708eb63ccf5c1bca1933f38a211030101350d1283624558004c07400380410a44ba8c6416002e23c6627dcc2068160097919050156ad64d5984741989f39b1fac036d99247192747d302fad21ebf1b1714326c3217b994c06e391c95e32194e492717a3cd64d24da669e3d6f3607bfce124c9cc0cf64f26974d2d36aeff6c9a5bd83695aa5c874d1dcfa60b4955a60c4a5353e6371754817b93cbfcc3d05af08aedc9d4130bdb82b4cc3fdcc2a5655d8892b0f57a6f8e39b2f5cb21097005f802fd739d5f585c8fbacf839dcfada65fe423e0aa50c9f5c9c4c40404f6831644f2acff35652cd49fc1ed9f4c9349272712616f98367ef6c971f9c90963a21a2de4d3e6b8c611c949628d0d4fe050e0c048972438fa44be1666c0a150e3091c7dfeef2067858880016eca220d8321826f90235257f7fc265a89e0e410afd1441660a10bf8f4288467fe432ab0e58d1b4dd4ef381cc8856cae1b375a484812e802ee6036ece692615806a7bbb7d14b6739b4cc240537c1ba17398881f893b3e5bfbbfbff1310396f7d4d63e878479e863e3ad4020f17bb29dbdcf51e106c6eeca17ca3e3077dbf311c7964316788113b27f9d2779bbb7c69eebee0bbeef5e82c384dd30e4385ebc307c108431ab7eca525702cfd480a34a1278c0ad14b0348627b7418971fcdaf2df512bffa8c095d3d7accaa7b628f0e334797ab0738768f6746883c4cb443fcef5de275c2337f11d648dda489ba061672a27601876ffd02cffc5d635913a276777413a41d355c7faf5dff110a0eced84b2ef30f436bcb5e5a4240186b02ddb9bec2f9f7981ef4f6120e7608dfe6bb44be7d2060a2ce828536c0441d6604be35153cf397c2b92c15866f148808b6bf0211a11765456fca3b8b1b579be1dbf7de5ad58aeb076f602d06d663ccf0ccfffbfcc8c99eca626475d5088ae95ef7bad7bdee85e19977af7b3b97eb58b1bafc4798f5653bb9de305c6f14dca61f8f8089984b40a356d66a559f55a49dc434b83ebfc8a37816d6bac5d789abc70878e64aec0092d85762eb7f2ea3bfc1b29320f36c07e8ea515d26f835c1e757578f11f0ccbf8e3f3cf3fe399ef0a01136a601f30dfc3276b4e347ff00c562778e4c5cff1f2de430224efa372c7774fd7f3411337102165bf2d304f8d64740f8369f4812a70013f511165a00138da0017c2b01cffcff7d2c717046c0b72641dbbcf936ffbf460d16df425c94bb7ad03bc7137ace8fd22fc9b5055397324cbe0873c4cb0f1000f30506bc2c6058a043511121b63c21c9418d0c5ebc6025ba8802066a0936625e60324834495293c50918a8223854798ae10910bc2343f0f36d59e60fb9c66524aaa2e024aaa2a8d1020ec1eee7afadf0ebee0ebf1a4b400a8e418068008385628974120e431c79c2a130d370990297f3161673991bc1d9a39cb7f35921c8fad69432dfc2903c4e0acd61c532ce7ee8e4eafd1b5606ddd5b72cac75f3ad06c1b1c7075ff07bf005bfaf90db0f4e76f52c721b679c4444ddac70edfa40fc55910f394942d06d8de4185ba11cf2aeef52c07ffb151634d25ce61a240d5d07e2c1f7de3e34a6d89284a16f77e7386332e609122b20e1e4059c056ee02db126cd942b52b8224aa038128329219eb001833b809a2f6ac0d203551917e0fc654f9e7c454593259c7f10db51c521799c94f043980fd6f2b57885c2b7023f004dd6fef80290848d7143b7705d884e08a54ed857d3d38b524a3be840488f7b426ec829e27a6e29c637cf4d9bbdb931283bbf8cddc93cb292ee18df6e645b58ff3a3b1c79ca661d87bae0ca7eea20675d376dab67bdc7b80ef67c1fc22a2cc9a14d9c8927d179121d5292922e2aa9878add62b7a34d9d1886d6da9dddf5b7d8dc134a680f906069dff795f6bbe55f3b6d4cb3750d3b5cff9200eda49d38f1d1b4db556f5cab032b2c79c6122100126ef5218c48a7008312241c1114c23070ab47a17eef66185a5bbe2849fa0674342374f936930eaab0f41bd7caa24c12aec5c37110c5d20f8290c82631dd33f149e2e4ebc8c952342acac1824dd892cddcd7bc256db7840d47225242087ff5ab91c857e604559272b870e429eb3a4ae9e7208a6d97027a24218b7d36d34d3ee6eb521809c282687e2d0915f6d8f18d7e0dc664c7aeb795db762ae76937456ac8d2649ecca44887881c34b12d186cc96492800c99327f1d28290f34c037be462cf35f22e44d715d4bd09069a3a2d48e948f14cc5ba8a5867c6010e087170a6cf9465089721b07cb3c36cc260573f2d82c5983b426052ee63e33c4991f18c0389eb21c666cb10a633c1b3d6673dddddddf9ce004bfcf459334df5762cb4e3a810d12949625a5eb4b4b39509e1395f325478bd7b8c96d9df4b4346ddda4c9d2f5cf519a394a3df4524e6f860e0c9d5291727ae19c442fc46e1d5b4d158967fe414b2c7814c5492ab4225524b7b50d3529ca52d5925b72ba6e4689191a6e59775aec6e192b2bd3f5c79575961d65e84a2f89b9653b85b95cc66ed94bbd5bf69839e79c936715add81e4f7012fc80d28ee2b5ee2b3ceb1730e91fe5fa0b967580158c48493bac60eae801ca93fea8b38b330c89d01084b706268ab590f36dbe8ea6e10ad3521335161d3bd456a45613df90f8363fa777bd22e5ccd0f1ccff0050393d980f085a58708967fe2738c9c46d7dc57be96db065450292e415e9a92255a4195334a498bb39e57a185afb7ad166185afbfaa7bde3dc73394ff2b7fbf20a73059f393f9a4c3ce74de69c7305bef5fc99f31af392285dbf5dff9696eb4c8d022fb9e7b91ccf74c460cbcee5f8e6e45151bd9e94d4d4540e06d784be26f47572d27393891097f94bc1e03b74cec542ab45d8cdd5b1c10ec0c6b5260a6a21b75366e33acf49e9f7fe9796b46a832c8dd6044f9e93e76cd18248f1d207413a7660fee45a5ea5f557ac8f2227fb29ed29acd58eef0429b1adb343a6cdf561eb7557e1685dafd738f4a3c8031f4e364956ff7ade7330bbde2df52e68171414c4b79bc93cab8b99ea7c0e1194edb965d08d2f836ec07c88293ec4f577df69f9b4485d9fd3af80b9dedd3d04df6e3cf3947cb99e63e324959330be3acad8d2afbc5ff9a962cbde5d5b918d67ef79761e1a3b2fc3d6723e06ade9d84a98b2f9852cb177b768dadcc6583a93ebef339661cf587a93eb5f632c2dcff8a23196fee4facf184b1963e951481d98c7807515aca9dc0796f9af70c632ccb9195dcda5bb749866d33b2d6ce957fc0adffa768065feab554e4ee9574a90b1ac5f04d060b7dbed7ad73bb7d1372d7825329e64340182a00eccc18278e6b3e4272229ec77cb202b767e10df3c6c893d76bc15cb23a5417c6b22296cfd322808ccd5eb0f1e792d09c804d4814860fb9365ac8e3516ccc95892714586d2b4b564ecae3f08509605fbc212d4852418db6a6e76dd8c34c8d8f28b92c24265de3288f5e23fa0f5ae2ff2aff7557d51d3e61a3fd727b5822dc19ceb2b982bc125dbcfd289b0561589a4b0e02d836e7d3af68000d69892bb60cd813a102997248a5b521fee7ccef10d0447baf3316dacd6f89a3228d605cfe572b91c980373329e42179f687911d77b3eb8b9f3a58cd05d761bce8dc8339c514c62b5be86d47938d91cb7146f093ceba71f203885ed27eb13b60e3c1a0726e2d152f21a8b6fab276e2b62722426a74106269a400b39f12447e21b687da82e5d93868988b4109528766e3ecda758271d71860a17fc0004d51a281c73d105541727b2b040e5079c7f27b552c3dcf5e3721958e68f43b882eb3e5c47eaa44eeaa4249188cbfa8f987ce0041e4dd401343c2ecf82b8acbfa598804ca0dfbffca05308111ecca6933ac999447721d1bab9b225d6bf963b3e999b2f8f1e08c37f7dd30884797bf4c087645841bb4353b2a34329d5dd3865a24c948936f16d0bdf9cbcd6a32f7915be4dca74731004bf7a7dc9c96ff4ff607e9d698d9afb0ae23a15bf74f42a34ee100fbe51ca34a48567feece4240096d7961797d71065a24c948932315126cab4936b23bef8e2333911d284fabfd63f35b059a20551aa9c51c231cf092c4e4c54577aa00157c4054d82e8c2444d0a9890c1850085953449a870c50c5d70fe3f49dce992194f339aa83a5dd5e9623c9c6ccb4110249bd4a4ea42d57d20199ef9fb99cb505520ddae49bc568264ae7f3df207a54033a0548d41cdcd392719a028b6ac3a275918c29634490f4808b28817d8b2ea741c457b1de42ad3f45a8eeb5f919ac88d5cffeaa4d6a61bfa0319616992699b61d892016179ee2a95baf31a7dd6afdeeb955a9160baaa73d23f83156cdfa11e4c7a64703398c16600836da604f4602b124de23d205587124bbfac3a2534492cd6fe3c9cecce2d6912b02a615b756175b3a4ea3c0a9ef907998009df35e183d5263cf3aacba0054babee87c996439787931d79f2943d80a7ccb9cca023e288179ce801e75f95a68db358c1268dee484b1428c0f957ddb4b11655300521858b305ebcc0f957a4690382c19127aab240f9a206170196f997b9cec5755790aa0baabaaaabbaaaabbaaaabbaa79c14988aa8b0c635cc6f0b8694e41fb23fb3eb276743fbfa2633515e8b63e58cdd8c29d77f894e3ac167706adac0d17a5497ebdf368c4be19cc0337f6fe24c809ad892f6686fda28ceff8bf25a0f7da652d3d6387ffad19ec8a667b2bbeb4a4d434cb425b2a7d42bad7f8e145b733509380556553551ebfa8335376dfd34a7bcf6ba1dd57b29129c0aa030a8740db6a53d0b5191000000a000f314002020100c864422a1482c265244d57714800d7a8e427c509bc9c35992a3300a328818628c21041800082140c666866a1000402ab3f0f825b6873a4e893f5974894e68962df4df9b361f4cf4dfe473c09a0ec7c2466fabb22b882b96708ec290811f2ef0d09a429d30606ba9d92ed120017fb4913edb807edd30f8656c1dab88a80bc2d6aded640e5bc61ea40e6641885d700ed0172f7e8259cd5bc9e22ab3b0a0d3f474543181f2bd38e20ddecc6de923eca1ed632ea6e9d483f3980c0e31f898f69724ee97d22d987f20a20d46ad153287171bb1a0745071c182f8385c01cf7647331eb059a03dbdeb8cae72f46a0de73a1f2180db678b6158782ad21b9284b48687a413ea246939406eab8016df7a6e38ffd69b425d5d74f84c0cf1f50675d8403f0e51049e932a2c80037a00fbb1fe09b2673c26bafbbc14dbc4c2566cd93facf35ff3d0f2e1a6a6415ea5d10ebc9287e43bb4711b71d5abd43f8ed2b0b6f6800c9c4e7609a71e5c6dece692624a6bc2fe720de851fa019b46b470177d7b6356e8900c3eac1c080e401c217bad0975b171e112ab176e4008b24351548ff21a5a4351686e1ac8d2ab0c5da75f0b449dd91e427146fef21811d53aff29afeee9ae4b2e2374fe6c687629693b302041c75f29665b18173242a276e6842f407c820a29112bb7545e67d774a2f3b0af85c9461dc2463116bb46298b1a6b5ba3c5f9462d1f5ee4cd1a4e85b0df1d3c0f7dd1d3b109d25fc361dfbdf76d62bd1e7bef140bc1647a0ce590b2184daaf1a145941a9496cd0af0711365214aa8877b0f87981a75aa2edfcd97a12da17e35bd080c1b3c376791d380b642759d068f7ef0da9a7529a41ba807663f633832f054daf860058ca4098502e843aae4356ad42e2a35a250ed91144559cb9418b5b923bcfed1ab060b3583524ff26d2bc10e8aa013baca2329df728c9375887ea374b4743ac6bffd34d46c9b5517bb7bb07a2147652ae3a5328091b0ea11415fc7a51b5c91c599e38de3a40b80c1b5ba7e5ffdd31174ed90a0f966dcda327f79baa88cd64449c4dd584e36849e881e826b95c20cf2b1a820400b1362188955df72495e0e6416ddbd1490f76a4e90aac8f18a4284aaf93613508292259c715eb97f1cabc48008779b4b9fab9883a664c9234849d9bf90714012b9e9b4eab68e1a0498d80ce99e807c5e650adc486e4dec8ce9fce743baf12d911c6f9419fa9e24b222a6e1826f6a498b50c9354a1d15c8786822667d3d8559b30120afcd54e1f618d831e99cf2beb689a7693ac575771ee734675a12981f3c4281890a2deeaa3d33e230ee06273d0714195b469e89113c16662ddf1ad90d0c2887b1b4d7b85103365b7571ae0955efb9663f46f7ea8bfd5e3b2b7e2cb1737fc7213ec8d99345a6b8dc8f98087f1a622a140f5bac64c3fec402c599a902582b296a2d04507f1a415e621c7516b8fcf9d1d14363de134b82879c63d50b40ff8bc6125f015a0be1010892c3011bf7d36e538b7658a451b2e7ea94d13e577bf343af70a43806e1c5fba9deb110b3cf6095fa7604ce92a33ae9dcd451b0dd3141e30cadf78e6e935a5a12a2b1c90bd35d5ce43004edb362a68b911bf55cad61c948a2ca59ed84846870d15abf48668205897c6362dfdbc1c3a51c34c47415b705474fbaf05d18e0b1c6d5babae366ecf3bdaadb3a453ddf00e8550d358fd8338bb2d4e61daaeb869b989621ba71accd7eaaa6e66675306f3a523cc16881fd969a0cbf58c35fde84b66cf04cb46fb724d0046dfc937bdead4803ef40851ae9dd3882d475a57b5dc16c9e29fdebf6cc2700bf867c85deeb99d8b8c6030b09bf942e35cb10d3f6018d2819ba2f8a8bb6488bfc22055bd31ec5165c37c3b3a33b2c2e527d025b89d148224c8a91032e7312c7c3606108cf3244d70bc96e4957663011a0f9f03d38e85a5d8b91072151c3e9142a687c32993df782cc01d22893f2829bd409f5f65f3c2855fe8e618b820d9e10d8396063ab82c89795e1f21ecfa6064fd55ae42e3ee5762b8e0bbdd423fc0950df374ead9d0855f74ce42dc77f63ed760ec2a605c987bb86c54adda79f3fe1fdb8934ceb4673b9e67c7926ac99f7b52f624f9e35af5d5ea5a9096f61044d0e09bdd003a67604cc6c5e452c64d5452c30870c8783c80fe646ff064f648866a1b9f3f532a7df7e041a4d9b55de7b53c399c3ebfdcaf3bb0029f36497cfc43fb84e8d49fbde95f7c9644c22b13c8c93924accf9de5b89353b25191f1dc45b834e9b1740e6c8771673c0a9f3eee15618b32fca7fdf68a7518557a1845ff3b76c3bcb5113f08ba6a89286884eeeba16c4c12f918136c509047ccf9e67f8e979544a91e09385ee87dbe6d11c083401ce26e1f86121bc75506ced92f4712543e01e691e91bdc8446ff818bea00194bb85da6e8eb5d7295b3d37c0b50d526b119b16aa515af63bf83ac7bf14622489a91e34c796712ea959aab109c4e9d3dfb898f7b2edb27f4f9c0e35d45b40c7f3e00bb8dd10d4dc43a4fac3ac7d03491200e502d74826c0c34998beb9a983f7a95d30ea1360d91adb332e1ff685c254642d165b2672ea8dd2bc9669680ee48177c9dcf0412ab3479a6c07a0812e04613e43e8629eba743a74d19e695432b853fc8a98ea1d27d8960007784399c4655ea39772329858b06ef42318f308adb26fbe51d21b69d9930f12a361e02cd76b39a9278a2f4862572a1404ee8c109933b3ed7401805ff984d17c2b52e60c33ef61b554fc745662446518012f2726709dd7bc0153ca68f2399f324ba3cc98cfa3942f111b548b9e747634eeab197958aa3f3976b3fa153d963db155eeed87fd8ce5f66e364d8fabe285a8644a89da39494ecec3bb9470f3503b10c10d340261c8f2276148b2fb058d14b64454894373dc07121ac775d75ed9648f53a02b6578418301262c2ba50548866a12b296735a5bb07a31b6bcb3ee22c68a23cc8d0a21758e03a40186e3291a0931d0fa5d7f2ef1935355a0eda50f0984d28928320359b88ec29385ddfe848825f3c8da8c6824d88f08576fa36890b500da96374f3c485f65c7de5ee91cdf4cc8aa5238993cc55c334f6bea99bef1065d81a0b32332f1e2310feedb8d9a5fcc90e377c11b0c9b025862af8ac015df3a5af1518f04c835a3181cb4cd42aaf05b08f7fa677122d38ea6d059b067080160d0dd0215f0825831afb547d6578e39c5d7ad3f15df93227b3d42efd6375639f72a5f763fa177dff4605ccb8763eb19780742adfa9a944d098aa99bc6ed640aca5663b01c549c096560d0dc39ed9dee2147fe18694bb098b764d047765ad1d92273bbd4547724f7b09d5e5244f40fc9d58c59fd1f84b315722a6042815d12683f9aa4a722d1026fb8a0c061e0f746204d3f309ce915206d73ec234bd930c025f448324e8ac87664312265f2c089b7d7c639ee53f3882c2d9565a61ab24b91fa181c5401aed4baa367613c70509c09f22114a51f91c9a97c03b898cbc9a6abeca25fbe909d17159727d2e8f391f265bba97a126b148d22fba8da6cf5e46397c731bd1f59c5e3581070bd85cabadadb28b2057fa253917d8c60a6953170f5f0170ab878e6e82c5c768a6ae588c97757c379427c8bda9615d58b6d61b488ee31709f23630da41d1ab8c480101998b50f00aed0e7d03fcb5901a782781279a04bca742246abae3df34c5fbd0121c59ed952d5762244b578e562d9e3a7ec590f821c9659cd6a87e9cde40e5905638abf08e883c33cc198cb72b5e506ca3c8455dca31022a09f4e12c5afe66282a2e0cc6ed3316f582d0c138fa31a2204e51a7a2b84b6bb9037aeae81a6239370c9cc551f4ee32ffec1ddf41de1a968fd9e8068431db9dd1c7e90ee6951fe2fefb044521ada2a6004bce0f5c2c5424e4386993b33527f83013864d5d7bfc83a83d09f528833624d1044d48e8574070a0cf12cdb94beac581ee155eed8905a467524d484f7af0084e9598fd7aaeef4956c533d4e4c89c60c01d88a53fc182879e74a7d18285cf2e5fbbc95c0559be28fe54bb0d1d68f340fd472d01b9bc4287c97d079299585aa3832090e2fc38a73580583f772c985c2b11a8f6824a51786bde97706f34f8cf323af8855f9c8990af72d80d558806f60b01aaa5a50724134f479f5f6d43dd1744edd2b0cc54222a9fe18488574d3244eca868cfce03c0c04a7df19524f69ff533de6ab55018fe94b298d32de44a50484476cb494e0c7b6d10488edeb7cfecaf8f0ec07fd7a2211df7ec44cf74bac8ae3ddc6cea6572df77409f4cb0218ab9e7cd7016fa9d53b842e0a3806e38278bdb8893f60858fbb4b17c544ce7aaf7321298d661fd5d8946b281f31c265de651be2343258ebd0abd6645faec1350e74964b6dcb90c2658759a2d9c9c6c7607477b52d7a7c87c36f655a3337958d556e493bec4ae6786fd466fe877bae69d67b6a4f373fd8bdc3c7ebad4ffd38f9d26e7102f89dcb5df1a352df4d927aa40d50f1dbc40df08019ca09945361441b1d1b8d24938a430aea9995d21cb479ac390e056d90b5b5040ac762b0aec0127336051a986faeddf97fff9948fbbbe31ed061be58f5d7ce3e08559bd11af02139fb915f893e3b3087ef4fbd38261d19dc018685175b94ed1671a750cc0a3859bf95ec5e657377a39832756c96f8128bf4cbee64147cf6e68bf572830761063ad6b7b09430da6a44f6a1d032a848896a45f47e896a84e4f084f8ec1a92783affaa56e6ae403dbb12862273866b87f175f30803e714045b24c05e3a75e17ec30f5bf765cc27b9fd0d19c1c26bb88bfc838db3d9f70df070fb97a5ee2d04b5c9d2c330cf631f34d1df7fb0749a6d3a9adfc7bf4db0e5bf4edf0fa60be46f4c04ae2e967043510e3deb84845d31d1ad13701a6ec8595f319f4a48274286979c0f4c78f5ea87f4ce3781f34e6d8085b496ac4c8d4afab8a989f97bed13071a5f248eb422afdbd9bfda942ac80724fd23065eedc6b6e5908895d4b1e88c24f208238c0dca86d926b6add7b604b7c7ac46c8ad0fdb5af981cdf21f22a2686bdd2d451ef370a0626c901d17d72a297e731cd554975e3343d95515ef625161d65eae13760622bd3270aeda6bbe30ec77c1dba4e2aa63e9d9c7c88fa081e91fecbdfdf0891aede4c7c7ce35b802a78169586ebd810f8ed36d2903f80fc0795b93dd1d9d69e68f54df6fe65a095014bb5ba2c6cdfd9e42545c71d2f7748c83f439a78851554f936a293340ecc4fdc4278a8669b0d8f354528d82509a317f4f413971ba07466a58cc6f29c3415ec19a9fad90c2c8c7bae028607e86505e5c34439db40b5d6d59267b984b665ce72f54935a4e4e66ae491b3e10ee12118331c7933b62c688e2e5686d057397aea8e541b4330cd4d688388713f50278a50b50377be28e4059e353957277cc397b2b739014fca83475909581c67b3345a58624a7b862b85557668db83a4e7a4e1d5715fa76e2995c8f3d45253874f48a660484368224b9dfb0c5e0f372b9c619edd17274476258bde9005d2d279a890476d1ed26b385d6ca0e782d3c17f13c6f580b3ccbbaec55b9c34f7394c34e116672a035e82e5d26aff6cf5446b6b4c7d1920639e7051a78a062383203a94b33223c2d05b9ccadc60861453bc4dc6f0cd39cbdfb4809150aab94392870c2956b734e1502c0ea02f5b9a3770a4b7e86fbab3fa7d0c22cf9835bbcc353cb3cd1895aba7928fec69f10c702e88ba824cc31abd62b609dc9ca70623f6633a3c476059b489d91bee3ef9a7439782f471910e1be445ca7c0e7f8290ab430078b75d85ded0128366a7d1f6a05907c8f53403c638de59e1f67b927cce1c00c7c3bf035a8aa263cbda4eb16cc7bcbfabd29255fe2aba4cf820de9f101f16a364b486e23cbab9a2d1beab050769b2abd1696f17f39f17f6b65140240703deb93364a5b5e88f11fe9cf8024c307d2baab434ce85bda7f7e6828e35b7e868eb38869c8bca3d085c400cc4a03344ce3a78498e58000eb3bccbe09264fca3c113c665067a484affec9369d0a669a068ffc995ada8168d51fa58949e2f01e80c5883e6e8a4504389803804d1006b1d49240e0a69b5c49bdd0672269873ad1728c8b00610bfe2c1f16823d97902ece7b996e921f093de8e6d933f6172425c29ecffce65baee0016f10269be8a1a92ed8dd2037516101ee0bb0eb7ebd9abf47af5390165c7db845e2f82ee8f0504be72fc077f79ba042982ca37c2aaf385ef1e4c1d18793765f3c6019bb610f43716d6cdbb3b4670234ada32dddc35fed9431c3504b39967253ecafb44b022c71631b09872378557b3b069209eaa0891a26fe22d0dae8ddb93b691d8f6c555f67402f960b7a42a1ec741d3b4ccc739e6c9d63637745f8f3ab7706de5e3382ba9b99e1fb6036b1d02eb5ba71a75221be2eab0dd7ea368808a32b5797f2f7911b1cee7d67ee4e05e9dc6b760edd0c4c58fe5e157c387a5aa48866de5108870df36d6e61444e61e1c81d42e9ee49223a949538aa7ac3efa8a8f2cfc3420b6e7e609941a5fa6f5abaac4a2a707657e8c7d282e8210db4d96339f3584d6936737df3e494aeae4219516ccd76c6d1b6d80ab1f6a158ce02e555e306ba4e76b18cba2926307d4a10243b2ea8881bee3f24f9b2e26a41e8ed74449776a56ab9a7eb26b1b42e33c5e0437ab10af751a6c82aa9e9edf58965e01016d9cc0a4c73258545f96385c729983c38c0e48c073369b33049783a242ef42a7adb01b32824f1764b1407c5430e88e2f05b8f42f635a590aa30d89bf7955adec26a260d08cc856e54345992ee7a11d02682f2162896e04270f422628745ff9d85fe3a0ae6eb032ce3e6f109cc3210152fe2aa3bebbf33f95b0ce9d637d621775c9d6f918aa937b8cf346a9d7651e45fa7d24b9132ebac8e59f7de24ba72cf91f918b64ec86c3cd7615ec38fe5b808e8f409f3671b70f8b41de13d73343e296c94a35911a4b0f5e36dae09fc0ad78b01ecc45cf2d11faed82a667617a2b1e64d445102e87055a95b61ca9e2fee065b250ecf587749d8676d39e1728e6de3504d271e6c42dad0f3585562e84919aaa15272f3028879a107c04ac896195d3d51bd4a8b8e803b3853f1528b08d075e0ef05e10813aad7407729a5e5d8fc53ed4f6c07f7bbd199a1951b7152ac3f61ea7ee67253ad282421e7b2ccd9f09d58b6e51f849891459920c021c711389fbc517e86aff0a15994b13f247cd304ef510dd13e9c7517aeac593548e76d44f8b19858e0ab459121d8c4baa4abc2bae4e4c129cffd7512a85e979563a512de13540745e3c9ee05142e65c92a74ecd88137e198ad6a7ad515641c2905780819528e84697b566465e1e5a010beb2579e490e0c2112e0e8821356111749518fbf14c01d434c4dc99f7cc6f8962e566742072d9c09526c65bfb45e571d8f68d12a3091b39458fa986449d560ae3eafa796b9fedf136acbc5a57a3944dc19139bfa2b38b47265049f396a218744b8470004ad9864e3657f796fbdff9d6f2ffeadd076cc55e14dac5cb848f979bc5463d6f9a0b7169fb81e9d80bd7555f980efef7bc7cacb9cbb8aa053930ff73e5773e441af16f8265833f28e815a7920562d88f384585cfbe75e04fde03444a7d7550ab953074fe2b350d9883f6575af8b26bf86d3791d3219062259b7de420d987cd945f9e319e91d3af7b737d64237e39a314278f1d6dee370ab3e4ebbb56adb3a6911bab6edbbb16161109f9a04495400c55128b30587c5940a7351a5825b4d6efee6431b2b75d88786a5d77bc537a007eede1139f37ed1646f11b80adc87bfeb5752ef8fe5cc51982702718640577306ab7bb4e3a402abb526b35e4db3448c50046c1c22e0b0bdc11c34f30f9843af0e2da5119c40217b8439a37d8738aa5b067c76b0b429a59fafd87a4da97969ed3ce191cd80c38374a036c8e3622618e263c0119da1bb09887c0578f1b9c79de6f87c688475232724189425811526cc19b32a9ef1da3f55d7cf08cb2c927402aaf71542b408198cb654fb5a40ae7838c55ebc0a01ce27948aefde92db6ebd85414d9d08e3c5f8d0232603d66aeed2f419be7c3927015aab5e15cd34f63c94a99c5b3475fda39b3b395175128ff2ba9e9d33c289aa8536eba570fb0482e66082dc3a222ae64f3ac553d0a5826545b5970c72123e037c6f03c49482cf47ab3b62cfeaa99b55d4231332cef8f0201a20e1de6eabd4de7068fada11a105c11cc4e316da0bc8784e0962ec5c6a20de0f89d3be5cb5d1bcb59ad163bd31baac36557fdfa5b1957232725e33880a4357def3d235562ded628c5cc949f3619b7fe29c83b8fe121c3366624b312f25ed8806eeeada6eee77c308dc346c3c5c5fc0dc35d0e602a6283794d8905c5f6b15df361d743c7a319f17fc684ca45e3e1160bbb0c65f65cd497a5d01dbe382218d54dfe0fac4aa84577c78add60df6ac617b9b0a509b6e0fe5cedef055b3f410d4185e4b58eefa5172cbb8adec6672e34cbc33f11e1d6233b9bd37d775aa611a752c4b00c63d904cb715c89ad84532f679300cdd8e9c62393a246497e9ca2e51c9ec377c16226c7ce867264c5cf8f45b9e14ba3ae3ea4725c6266816352c3dd33d4418e9b99219a21696d35071565427399ff3322d17cc839ea4732ac65e7cd018c952b2a4dc33984176c9f26ba3eb87494c2042d637093834f2d6ad6cf0664b386639a134864ddc0de108620e6b5d5125961ee0c0787f059c65c3463fccfc35b85fbbe2f59f5db5e0c3164ef0daa338ce53fc54a7a670f1730796c6a4be15b2526ebd37466649804182d2b73039a5d14dc0ea0e93436836999072141a5640f23cbc87928a8d3dbbbc3c9c285a4f25e2144fbc487628db31c4711baff23db61be829c585783c6ee6d961c09217a8a3c9afb2ca8d8ea2d59d329b02b8b3518ecf70cba52d528d76a483c46827ff0712f5f6166c7102649da25c9382917b2a571805588c444226726f7de4c9cb6e1f5d9716d91e6695d9799b1d107545e6f0995a5fea877938d44641fc8c20321b9c219a16e008df15916d223aa721123a501c89163d10d767fdde4fe20984f25700883827bfce07fcf97b8b3946b9ecb95deb2dd61c1bd9447673aadf38b246293dec59770c017c2adcd17616fca32af46ed369e9cd3b24796ed352111922a600ec05bcc7a7e2d51cda9aebe6b556720e9a337f1ae2b918cd8bbc523ef62c7dc24469fc0dce7f21b5056bc33d0a761f35ae1d3f2f53522fbd08ae65641d6a3dad122634f9311b1236947c16d6ba1b30c799008fac40c4a47594e7ffad37d01882f32d32990c104de9474cfd99414407635509fa29bc87156bcc3a69379ebeb751af2496850c793c4501957af1b17e0f51a256ea7846255bd87ef37346a4a2f148a2cf0642b5727b1012b8770ad5f3b47220754e2bd3d317c8c625fead92d3030a0e555fdfe0d5d0b7e44e2b73b6ae83ad4a17cca59d131937a8456b1cd44aed80b407963102714a23ac1523fcb4524687990212f3690568e8d00b7b4647f8e30531832d9f6267e91d9a59256d7dd3951585c56fe2f72eaa9b5652208dbf8b63b836ada44b24e6e532eba7cdeb7dca9612b53278075a4226d4c830c308bddcdd3e16a63b77387be88c9f36068fdb70f54cd11d6a837601d4bc6e9d6e4bc6ffa0579bfaf8c5e3ba7eee644aa20681164a5951b5ac54e327a124ae6ca8d2a9737d096ffc67e7b7f058fc81766c963d423b87077b1a2b2e0f1bd9bd563ad335b7b7a725a0317099ab40dfd02411a919b49f3440d76225dc51a5e505324c9d5814a29f7b7a62229ec47d6574b82ccaca2bafa00f04dc32705df613fac23252b6bb924e3fec3c51124f094fbd446e1d795e4c386401a52b9d1773471abbd3dc0ef5327e038e83ae83108c61c8d1af3fcd71daa40f380af68914cc2ad73992c7c23c68d56fc4fd560abf82f84c5211a41837485339fd3e18ff7c7604732592a873f000537059ff6533658e24565ec5a5bcea59a157adcab0207a6b723d3dcc8395f0f66e07b7cf9fd0abec31402a3098503061b2617c9ba6de0bd6f6eba7c6072bb884063dcd10c406d0c374f23d4ea5cb0d553580ac923a033696bfa18d994595153d15fae6462001b6c660494f618aef560c314f72d9bba810049401254d0469cef8e1558b960caae1834441f81a9692999aaa3f0063608a224bbf50bf02cabd4a7b916750bb9028f7a3566d259e83b5b8e841998d78365c47d51aa450c81d7185a768b014f7fc21410b497cef8f355cb4aabd5d51911638159c29801a09fd5995162fc550a3a7514ee86f97464094eefddbee59081ff5a4a3f0b59b24a8d6aabe227d465f2dabfdb21af734e4c8602dab317c3a6256082dac84472608edb1d1266b29356f51b660db5a7ad39203e931c2c1f9de0ff7aae11cadc0e2c6349ac2da8949a89c4d840affde281d3457af67373e5e2996a358c0bf2f0a9ce918102d7b3ee311d3ea9086058c913606fd6fd70181438177565227cbc8ac5feadae72bf37853404fc62ebe62160e0e19f3b11ee537fedb0a555500a0310062f8b7f0522aeab3e1fe2419313e946726406af8bb17c17be1294427183f1cc4da39715d00c335a90ccc993ebd0fc291b2b0883d8d3762e0753357281511e9f3bb2c8f9c8d2a7ce53618371f0bdba3d6b51054a830fa2684127c13f8ff6b3c9dda265bb7061f9f0251d4f0528c8f6f0a2fd8b8d80a2f64a63df529eab3ca734352fcb9c5e81e4dc5c4dcc05ba5f4a512ba68264c15c154a35ce0d95574908ea1426a47de175cc54e3dc6f41319eec76165d2b1645f667bb955593571f20d0bd4903ec827a7bfa6b99356545cc75da42ad5eb9cd721897322be32931d8fcda0c2dea899d4233280f52054206c72a3d4b6c94462bcc921c432f8af354bd608f6063c1d4dcf9889e2d742479b9f4dd215315cea20be388d31763c2f6239509cd1090f421acba0e954744e4b493fecfcc7885563414cf0c7e9e13bb1d25c635911c0474b6f9a301348bd7324b0550bb290a222ff187d584a2718f03d28184335b90ec0c17565ef07deab8a99b5f1c99485dcdb85a7ec10080ed9d1485c0058547405030dc563a91aff6fda4d4cac751316710008ccf72347658edc0343990e5ae3dd34b1a9a89c296da21ae9f0e3e5e520989947c330f0520cc0ea84ecf88bb49f35431126e74feae6da2e9e701784ae1da0dd18e36eb28bbab6e0f52dcbc4e2da65e24709f53dadb31a5ee6d8275aca84a45896cc47331725535c143b8d07a954c162bf2220d480b62656c069195d2c24386ddf1624ca7b53fbd803b8e0b2519bc7f40e97d2ca89a2d5ed50ca2db3047cf400c74dddf7412cdbc2b8002dcea15ccc252319f82133e22ce75c540c48508286d2e090622ac9207174d87389841a150d268486da38129476f316c9c980c746829a242297b5ef3bc237638ec4fb6b8fd5239973cd22a5e0fbc10784554e3081275bfa6c4b2836a0aa5c70d86d004e142d906e3de998790ab3fb01a6424b594ff56801b77edc57128e5aabef4302443e35714f2ab7f42091f391f6d865f56a22cce18a6f1e310abbaef2d8d9c88c9ab2e328bf82e0e9388e0bd5b02a749fa489d2be84d4af279ef3f62b81cc382a6039aa944cda9d8c606cb9859c12244bddbe6446544ed0e0f2b3e6ea5570b4f7e290f36a858210567322050b1e9abb962f29747511c6a5cf75e2d1f87a12729b92cfae14e3e5dfd15a4ffc22466f72098c30c70b5addb9305495b012086fcc211c8fc3a160e20e23b5a7afc69f8636c6640c12bd0bc99f4fdd4ab771a1b9417455b239af5ac523fa1dc3776eef6447fd3c72e383d1ac73ecca6c06897a6820a2721e4824e9dab813a5a91f0ff1db10116f7eb59f45a5e0f2b65722cbd4fdc6954bdd6e65ebd6440f27fb013a82ecdbf31a2b14c03f46db76454881187d480ce4cd879f5d763de514d023766a8dafae8e3a97ead155e99342e474c15caf7c77782350cabc21626cfac8c955eb852488776e296e9adc37f12f5ce223e8074dfa5041497bce084b5d887ef1b00234035aac597315c208e12fb81e3353da615e81c6fb375cdbab3abb4ba7e78cd05da48d186dd4eaca368a2bdd9facfac9dae755651f93adf5e8b4bf99243415b68d67db34adb0b37e4f7a5ed9d513bba8afb6f4df450167cc7177f7693bb2db09237c081524ae09cd7e07c8492a6fca4b8f0a1db9e2ba49c3339cfd5819d7e1efd40274479d529fc6a1d83304653729f462a4733359ce67e03c1d49fc0e562bd3b5861deae5edfa6eaf17316f5012e05edbf1d62c04eac8916f7240317cd26a0592e57e2ab9391ba3b44eac8c48eccd50c4c73ba146484bea73b167caa17960ee7fb3ebbcbf83bd2b7587a53e0f5b94a915d792dc7dfba441a9799ebd0857a2efedf529c347d2e5513193b5c8c19e71a6998f352fc093d58d8a9c3e5223b53b638389a62d4b839ccfd50d6d1f07980d88a730a85212c5504d049dc9a19b5dd9c35a12d9c066740dd88200e865941c6437ccfab7586ad3e029d03425ac647aa46d5878e99ce0c5031ded64975ce866fcfbb420956d80338b2a987f5c89fa992531d6806a0c8015065c63483c41c8e821eb2a06fe05c090a67426b4d9e5433e765b4b02951c8181ff84de6745b45ec2a09305441f723165511bf62efc0b224c1e03cb53d5a86c14f84da8bfd690876e16dd6fc9cde26131a2f8b970133d103695ffdc7beb1e5c5a2246c74f156e8abe43aaa961721245eab938fe0b073e9c71a3ee19c60d847c7d6da905cb7ece4f660ad0c8131c057fb81b068c277b02187b1065d2751f6b0c042b1ede466123a009601ed312a5eb9887dcbf677289cc9af5f706c401ef5e162327f443622f69161e32350c6aafa7853447c23967e8d3fb9abee3dae95c070f33212dea020f887a9655bb74c46ed4ec9cf69f0058b4cf64a6ea904ea868c2e8e9b81ad53c316259b7d863abc5925e35dda3c234cc146f57ea46ea09d32705ac8a3797bec1b9cbee9dc8ab3d5c8ca6c22b4ffa3715c93b0282e0fb4db9eee5ce4630371cbac029a1cb6c45e291eea851edff0298b0bb3526b9d3e47cb8cbf523925c8220fbc72da1d04bec67b12feecb06a895030241943be8aa4dc3cf8cae1b40adb5a0d06506f98925aacf3e3a08624dfade3a83e3f13b4c130a77b711c73e18c92297f3b30f8a87e321142c2c9265d636193139d2fb623dce50f66f8659232b12a4d47715b01713d5226003876c15427b11a507f944e21f722e7c9ec11f74cc1a0c47aa8875536443dcdde8f139fbf283290b1ce5541698a0afb385cfd135ebba4be22ff99a694cf53de7e67dfffddf31fff2fa15cd09a4dea422bf8dcf29b17763f7ab586e5b24b90f66bdf8bacb19c6fb69d7f5ea664b8dd2cfbb8e26993dacb944a844ede4b1222e56bee3a7731b10eb9f0141656c8d535c82e53a9168e7d445707bc944424cd4c5871b73e458e9f528fbd3204d28805cb8972507ef91b888549563ec6492fb3bd570097adafe350bd387f49b0f0df10ed710cd009449307dde3c838ceedc2761289b8e957b327e46a575df65fd17fd8ceaea49eb16063a7a237ccf0c09cde0732422aa956c543b4613b47d7a140c97fc9c81b6fb1f8f036b431ac316bb105e07c9a9dfdc6d970301af8def2861cf8ca796c3ca5c7d1e7949b7bccb744b3b1b4c36d789f88b02ba575ded6c6dfb50c1f124095c8bd1338e17b4bd367a06331edfed90f8b577d7a30e00f1e29c058de466fc827d35a8a28ea3ddc41ce93a1102b3a532f565157898de700771f6a9ba112f242831f9c1b2797e28299971b2f3ee470974d857234a70e667db5120113fed961d40278669b314f94fbd6221af0a5662344e72c9a1677ba1f4c600725e9156e868e9284244c31ec875652779706e132d470c47bd28f748d8eb1aff571aea80cba1400f20747a26d399a61ca36c276116960a63ef0b16397ffbefc0731efd0abcfab870aecea6c5479b26f558e2284204649b383c4b8064947a346c05c54854641a714f56b2a556b31098c4e856e857f934a14b74adc1edb5f612b7a5ca9ed3ce30fd0b6896b8a706ffbbb89924922b5ac6753922c4a1a6e7470939b27a83420aae266e292712a110ff04745c78347acc055c2ccfaaf8c5a90562baafd444d41d6aedf37f29436c93e66860998decfca15e6427bdc1dc767c13ec5e53b779710cf62ae6069609dd0fc629a72ad765891f4e49324ed9039befe6c481b66bae8f204b76fdffd668909338bba731a1a861b3e4c3e6d4d6e4837157998e764d73a8c6711a14b53ca06a0c4af40b4c990b189fd073a477a5906f3c96047643980510185ad1565a804bf3ae40336ba8025c4f30d2a55595e962ab1e225b6184cc5269dcbedf59c1398c65710dd30efa0300a0966a982ed7e21ba5b995cb9ccb29249585987db45cbe99923315708339fa56f4a7854541947e107d116b734e165d5437525f36d566a796d50a8635ed7d081de4497047b9714168cae1930852105c872759a4873cfa02a2d2c9b2ddb5be7845f2c33a91d6b800097eca4e8cfaafe998bf0507a22e3aaf7fc422a974b26dd8e60d72ea7bd9288187b7fbe4304f8fc7743f52be18a66a908a3a15d2f3f1484e0bca059989b882e8aab3175006db2c560b86a170c205fdde20a0237328b958c8c904987b15d8a5befd9b5520e7b62519088d4f1a2e7a63f3f78442656889109cbdb921b4d05e766784287c80d985f37a554cd77de2a04b720e1efc24639ae7f5e22cb9a2e6341012fb6baabd6ef5de990c0d7054e10c052b5ad0c89f916c1228693a90958d511dc9b40965d2bf691c0994064f14169800e874875d01fff6c4679f78b0c5e70f46d04e30fd7dc0e224aa84c0524505ffa01e639f4a8a9b3b7419b14180ec0d5d99d7af858b83629a1bb63d162eeaffd5e97da417488eee23733b2a7b86ae2c6e2151ee3c938534bec25c3d6481e690bc23893759e2128e44630d399fd71b10f224162594d4b9b59c3ad8bb83a3d7b19b9a624a40f3507c54e79e7df5bc3cf5c1af5e8509dd2b83b088e5ea1538de86dd7ab0a13591b5c764f608401a14733f0edce148f1e3d3b9847b4532d73c47593b6c8a47d4e09ac14853de28e8b70b87e32bda8e60abd1d1e1b52b4d0c96dec2a14df2418a8943d672796ffa51a095edc8735f9678610dbccbe1c699bee2042b93ac19398365dca58e8a87df955a3c892dc15a8f805f89166b38482f41ef3e35c9f8b0bf0bfc0b86ee0a419e0845372213520b8d1002b10697e686ec0f476b355bfb2768c5869c069a6b769018dcdd81f91fe0b35a33dd42a229829a115d4d054390805ea3f718ab6d84980d35530cff72968d5c84b708a46666e238d82815e17d3192299d085e2726a22a4ce3b3ad4c6a914483db08a5a08dc136d381546ac89a555e3e5b7849def3f35710c30ad09dd18aa723182e875e08361a0f8224572c5409497610c53f40ae65b3abbc9bcf06e1fb522b5275460839435425de9eeebeb81b002e620ac10fee3f5968c5575d088185ba58811ec9d5dd260c51d50849b24cab59500409475feaa6bc297348645d38b17ef24cc58c900fe911499cec21f72e74b331d7ff31482797bece7ef142e58aeb20cc85b2ef1fb4e580b1f50cdce6b6da0626b813eb27eb24e88edec1c4e8e05a5ab0c65014fbd59b44da18cee31637a8412be896d22fa9884e8a5d76b084073f5e459280a956d30b41662ceb6f88c8f457a597b941dcaf624e6a656e0d2880bd214be198ffd626c5bfa9ac658e428c3b29243a556f41237a621e4e8494f045163d817004169d94f22a93ddd3e718e071546572dc6c619882213ecf6299dea2428c633c7dc9baaa280f4621516ad67ea8f2f998722545af4f096ada7f2b6ee57891a10914c4ccc54de3ff615e3675d279001fc3ac5b5331bbb1f3760de7027c7039ca43dedc1c0b9d53c80e4b2066a2b726211c5749b8714a3a535025f43637516a8f6a8fc9f3798cac1c4207fa578d92aaa8212f8d9c1d4217f0f6e1cbdc21d577b21fe8687fdec55e547ef48380deaf9ce256040c770296a5cfb5a1dfdc0359fe70649c3ab5d4313f260978e14cc90c2f70e347e1c60b7cb43eb5b8dd8e0d0fe1c39126b790c49275c0b7e474e43318e78e7c11aae976a2f85c577e3217c8aab315d929b95a72c79d4dbe352f0e5b2bc33c4b64b99fde6563d6a2d225417318a5920f75bb17e3f35582021ff07a0f1acd39f4aabf98eddd93dc17edbf76fe321b1871b34ce9263c86d357d25c2947550e689e3d1575a2866b3e7162b848698c06812e5c60f28e57c6eb530facfb54eccf08d270568cc58a2c4db346edb226206fe7a507af05ec7b2a80c38cf681fbcbb113e7b64717609b0454112df25864af8bef91e66827fa3a3feb677a7917c04b4d38b79c719118380b4f9be20b6bde661b6323c76cafecf3e0ccffbea2cd20737f7330afb2005839fa5bd58879e961f70fa216eb411c74e7471d00d2a5300d53b46de258155387ec933fe3f74113a338afaaefb60e8b00ca36a28b26b3790898928377c4626ef6878647f0608a33b3ffd325ae005de3c111f47269e1c9cc3b59f372caaf3624e11fa6556c67b70272000a5b994f350dea18c6b1364300c3ebd6a05987b9a3df3f01983092f522885f59d5a48dab7734a673c4c088d10c4591249f63a6374eb6cba7016dd3d0abbcda8f99b9874497d70e6c641e9387eceedad6fa33f5da244ea216ba181467ec930d42ff92ecebe741f265470ea81b52cbda852783696c5bdb95fc1dfd45579615380f8f16efed2b17d1f27bcc69e361fad44a300b9e0b61a89de87aabddf24d9e20590ddd973035afb3a632d8105de68295cbdbc6b3cbb81c036febcc712dcce2413e20886c76a6ddaf4e560941c0e858b4a559aa62174940916f92afa25c23484698fb21b9420d8ec13d7c7c3b12801b243fdc2d8da0b32c57fefd91039da18d3660122ca97300ced9cde4cb83aee8c550ce87808c78a7f59fca4b4c9bda6b9e2f14a14d3741989e5f1f892feb3d0dbc95355c86ce991c48a8340e4bdbbcc4d0cad2ad1c141034bbf7e1cfcefb767f8134b9e7d876fba65a6cc22cdbdab7af1e0c264ccfa9e8c527803c4c2fe5f082e3b2ab2b9c771e99c89dc0e2014157613b0d21a44afbabfe8f51728097ad01c588353edb3702dd4aa857874f4e4dee308dc80e7ad82cdbba483c62553fd54cbe26633da3d3dcd91c61c14e156074a6c323e8ae8ebf523bb8970966306d2ad2cc5efa1bc2169930b18a4c41f03a7683e271786b8b985613dbaff7f3354cb7a6bbec694f6448516b2d71c5017555b681cc2703877e4c942490002b061fb9193b6f34ae325d23b5fb8918e89812963e466566a766a8b7cb7e1739d01296ad83d0b0ca1252ec1b85fb610dcd5190649e79b8ae662ef77c593a58ec0ff722833ae595626216f46a1162bc46e045ada07f24ace21b63670de296379ab9b7b9ea6d9efa8a92bf6dee7746d93904ff76407f9b5b775340ce97b50681ee28fd363727fce1e59ff99c8e5526aaa84c746d73d64ab2cac50adbceb517adb05a69587b6da675846339f8dedc08df44c06f55e461df61db37b16a89eaf01b43f0d72d1cfc5ffce67a95807b4ad0d3366414da4c1c1b0ca50b0e2ecb10c4b6eaa616b7669d4b963e07373c32269a18cda65de067052dd1a448aab6efc941dc345ec8b038edf52d6982359e87a6bf443c9a4065cdfde9d7ce13a4b85656957b3ffb7f71f15e2d701870bcf88f7c9b5eae6135b725d4883209ec181038b0ca48347707dd7f0a1c4770b340a57db674020abf70e4f481c821d9cc010c3ded1e6a7107f68ceb98984b91a90349a8a4bb218ace9018304b6b0ab5fab85e05ed7e07b64de957b01f88ed92d5aa8d1fb702b273cfa823d11a7d1ab89324986b1206beed9e2408691da179a9401b2205ce609979b59fe932836af093b5cc06754cb59c2a8084577dd9b2fcd756e8a4881dfee72eb47b1e72d0d0074cbc1314663c83d0711f1c406952618395272cb7c624cb9a13be261480e331eda69f47553004500ac1f0d208ef938ec8f0c71a4f8c8e25ff2090cf5ff8171a3a86768adc0784781afd699efb30289e4650354faef3664fbb70722fef55c528820965e0ad749f524d9ee6cfe5c52e28de0b8c12dcdbaf2daa67e0920138b6dc6f5d2b5db20eff68e103e2308d3fa3e3227b328fe0c3fe1d0baf49d4307455418203ee9a36b5242590bb260a8301926054b248fdfca8200d23b848d9cf9ed0e12040e173bd85501b6e9b2a0b9262a617d3f44315a22661cf3376fc660e9e11c0be9c9922a45b4cf4fa835413017784c7d8dc8db0c13330a53a344c982910177999f01726372e2c955e25ef9655be8b5645a6ae28eb11e0f211003769d24131f31ed9d04ee0807b4fa3815b3060957f96fb8153f5017e2879dfd60a98348f9713124571865e3663f9d9b50f5ce5bb4ca6ffb40025587a89108f6914397908e9b9396e5d8bf4f8b4ecc63d451053dc792ff82d326c5b389797bd764d56d0c904c75035516c6ef4f0381fb76c16254cfb183c579a795dd2ea82be1e846576da4f041fcf4b686796b0cc98df84327211dbaabe16a4fc23c794c2fe552ac9b3a8feb48c106ea08c7747040b4f5aebc4df4a4b57aed8614032c6a8ed8293c0740f4db658c03a6dd05a4d38fa4cdd515610431fba071d10a0089cc3992d197f88817ca9283e86fb99bc2d27fb36542329b08a98a81341246966ea0eaac49a4efa203024c759ccea1d529b4293bbc8e6a1ff1a8cd7746075242917fb045c894337020ca53bc94e63c6a8a8fed9d08fb4f4838f8c447e5c30fd9d7707dc398231bd40899308c0ea050d29af1a631801386a2b6785a205c7a80961c6d8aab7a896a943a6b34c65d0ce02c9dd8290fae399f090bbd3a341d880ac115a6d2a3bd9a4c2500a9eba0a48969a5cd3be47ebf458c42d04d25bd4839d938cc6d38f81833d29edf633b400faf81623b87b3a83c0c3eaa62d651e056a6ba5647483ecdbe86ebb2d611c37e38200a96907e5301ccecde37c90836e0c2f08001ebc4f54a301378fe709a60dbde377015b01995442b60a505030994b0cab481e02fe90888a4e40fc3834f7d209707ac06a22952ca70185677aa5637f906027058ac179f82794409bebc221ace4af5ff1a013788d857ad0c2c6b9ded741f83cfe1dce6adfa603051ec879561daad4311a8605c91e7e47d2fe8eb11a3543a343d84cdbe4405e45a88837b8a2f1218273d5e40476f2f6265e3cbf9a000e16f1e64d8dd255894145f548b5f8c975c76d3bbb640e533f30b45e8d082167f325cc1b0a6ba6e970161bf0a756fda12f0869722a4aa5bc202426531b5ce9b2b8180a8c447a7424da3fb84f6c0b570729155fa166841cfb8d85919cf3aadb91a28b2c2178a4eac0ed0cd0c7884040fdf36bcc48fb3a613aae472033553dea2dd766274ba86da8a3ed31ab3636247b3853422e2ea83f3ea27f58d65699e6bf2bd0a1a36f4e2de3cd5960b396c27d0e36c5413c8b67129ad16fe1ab549e6a471bcdd3d20b56d38d182384ee7080657af12f9508659a2139ed5fbd6807000ff8ffcbbea7cd0bada37e3b2f019af2903181ec3e5b646e4532ad1579558e85d08855e345f48e51b4e008f82c85adbfafea7ac86df6eb648d096009cfe5afb0b19c0a6af2a07ad6e9564329bb338b59b9b30e24447fe2b0432fb54e4c7f874d2c3ad59c1406878d039c94d5fe6d1d6d488000932f19c8a8ba0b07022994fcbea1bd2c3d028c6bc254c226ba2636a917578b4c777d1961841d84f8b86753768899a2955196045a97d304a96fa8a0a707c51f42e2be0e6182654160c432660b993ff400ebb0bfcb0464cba56580e4d2395f36244cec51d5f6b95bf9c7b1c63887c6289c22ec74d8614c67cc9f5d8d60741aaa50e7230d94b695c1886b6223bd676bcfe0ab761f71938a3d73b921bdcaf1eb4c8e5c9108204673ffd20c5bffb4409ce4848a062f06b2ffafe303d2e63b24424caeca15577475f93dc5803dcd8840b38a8e6860f91d02dda75055147209ac23683f6a80d38d5e2833319f4f3a7bf3da960dcba5687879286a9c5774ecac22ec5d13bc1e2f1a24cd09ad8800a8a5922a85ce3fc038bb42e2bdcf9503bba17064552db7ab85f60b185408ba356ce632a4847b371ee4fb0152f5190952d22c18aacc77ccb96e0381a00275c1e6c08df8b6c567146f2e84867a962ab4c98d2e15b31bd4672b781fffd34768b197d4f2b3f1d3bcc07f1c47c815f90e08c396706d8851667da1fc2b22523988c0fd0b0eb154d5c880c8bdafd2ed1a17139a7d0cc10d3774508ecb9ea805ea4d33b530b09287cdd4ce1551a5064198a5e9a628987285953b26b88a92e744a98f47fb55f460ce347328c22c4041392b84b9f01314f1016dc76da46de421c1e1016cbf8379c172af207d8ea21a8dcb59bdb6ce023d0de1e6f9612647afde8787b0d9ce847f2d82d076c506da84e2a7f092c2828b61b0ed4021aefd0fc5a220afe93ff2a89f8482c4487087c91371136fa407ec1b924f0560a2a1628a507b03708c791113903faf9bd3f405ea29a8c1c55575d5d68ef96c853bff1624b809e9f81d684c8219479b4c74ae125c8c128055b05f2dbf282e5f18f3d8777e3811d35f77a5afc169aa44263476ebcc0da8f583c22263c1c56e970f117c2bb876a74f2c3c5356269c3dfb8797f6bd1de1d19828d1a0b2b8395e58239fbaeb01bd7869b4649b727b0d2d0834b776c3b7e04a9e750411b1ba0c57aae04d94fb2afdea91e31456c156470ea6dbbdf50ae967308774de6fa77f6b55ef6f24a2d96a0de501495a470bf99264fc567348bf58839e1605f5298b17f95786113f0cd2ef2ca34824434758408d72a1c50c422cd416ffffe4c73240f8b339fc6d989ee6226d536250b5e51d55ed172905894fee0509b6b3275a7c80f0a2de9e2ec6dd6358cd8cd3c670778c579bc1f418ee8ef16a33981683dd305afd60f84b8f851916181c6ed82c7c229be65100587691b33ada2b5f1245fffe7925a21515b2b09049ddb64d86b3673cbb0cb69561b6196623c37632cc36e3ec65d84e46b365349b0cb7cb78f68c6697e17619cf5e33d8e718f7d59b753e6e08340c85db2c82e52bdfc494e413c94061814e65225133b2972c8691d2f4b77b6a5156b969da1199c1dcc8d85cbb0ba7de5dc0d5ec96fdf7ac44a0b1de9d96669ab52641caebb7b2c1f2b29a83a69c405ee39b169c341a7c4c6ca14d041dc183983709ca2a83a6cf0b0ad1badd273fc74069f59676881f45a19f6580159bd4676c5823811448123efc55df65d885b102333eff22de66468c3fb6c18c7c0e659c6b37f456566bc4d8840e651f033d57ca42c0cd5f0733cc5d40607d69379d0a2d80071fdb47365b2171df21aeda3adf9576923c6bb127b6eea52b7c8d2f0c827ee32bfb1c91f01849e8ceda3e7959a5fa587859569fd0b1e014f0dec095d8ca3a42fd1ac23fe00897b2b82d5615d42c4bcae77925ce41bc9868c83dd26093315180a0aa880ff6f66e4e13b34ec055c37850a32b7e798f9c07b9fe06bb6419e2aa55d9300d22b78057452bbc8fe96625abdb2cfeed90c335dd258269a015e4dce9ffeca35515a90e30320463cef6a6e1bc03afaae31e37e19b7ce5d503917e1d506563971271b23db28053dcd249985e4e10c9172de5b482f20a47e6ebd9a05dc48ad00f7ed32d30e55e3bf913a471fbff5e5bb927b0f07ccb87cbd931a16a45f057090b8d422f543505528b0d272657d48ef1a5af2b8921521e475fc896d94adf588cf15d8ab93842c871f7e6d198f46aaf6e378853d4c3aba49ca678b695742825c85d0a67ac5215259eff52e5b3fe8008804b418a73b493393dadf9e4379bde21c9fb587c10c92de84acab2bfd412b612716277563df3908370d6af67a66f4a39ffd44e0f638a59ecf5685dcdd505c4427ec5ec9849ba41204301914a1ab4a4302610c02f931891eac76b8368d1ee62b00e5eafce1c1968da9d62ef1b36cc9fb5bd1a06a52c758ed1a612a9f8c8be92dd8c2b26e216ec28f55fd166e58613866bfeb8d3720d4b98ec135bdc13d1b51e5d6651d671ac48968dc321a64d5c877a82d5d1ed475baa971c370ca5c458c17d45f00bb7138e04b23cce40ace687a2ff7d6232d35ac5177ae239a68900a86d50aa77bd39e35ce05040452ffb4b0475fefc4829c205e226ed1081f00d7fa4f2b23a385bf7074b9444854129b910a84eaf2336dea0fc6ac2b274891b5b87058e002b2b9a3f881f9fc18206824982556c46718f3209c8d98f76d2ffd68e628ef519a49dfbfbbc74a0075ea12bee8e4153c553a803291c27815c32df6970d4fac1cd58fc4b5de5757ec0c1fe12c8e3621b3b78b3c613fa29aa85a55fe60111a2531352e8bdf8c88e6c42aa0ec6ed5cdf0beae01582a32d62452bcc6748ded4a7b8b0bd51ee5756aa9a3757582ad484f56a9ae2fa28ce89702357789a8b793182ea665b58e9fc6e4b05be4ffe26e475010c844b715a5aaf1a98af0666d6c09e1628b37c31932b62c52ddd789b7778f41d1e027f509321c7c97782a3a9af73543f7e97a63b6d2e3273ef9c70f46e3801e269403642200fae02e938638f98d52ccf21dd05cc878812c2e1ba8b97e49a91b6e3457616a746813af7c3008f5098b517246dc01aad6641c125da502d79a3f6ac0ef30e70ec7fedfbd10cd8b2638c12c2d7c2a8c95a564f99196b929926839341fb7441c6b78fa31594585a6010a153fbc461a678b094ecbca07314d1136de7f6be429fcca83ac9d9381b882d6bbeffe40a365746fcccec7c34b68d514d91ca27b5cad6e73192eceeadf98ea8866f62d414fc986418782702d224fbb1f9233fca49765ffdf13409abc082537692e5140dfb79920533147f3ec9027c6143e89029f425f0eb780ba320794885c64268a2ce678896d94e571db71bbebd65b0d21621ca99a7aa5fb3d640314f6596ba73ed1575908b13eb8d338028529f2c2d6a00c94cebcb0a3d3e013c8eae1ef4ff6b51d6418bdddb06a2d8fc2d77d91ba503155c705a791879873aeea5f8a4f63d08bc5bb4685e5c1b0c5d182317d660c254822d7d27dd334f9bb1af1da567e78ffe2dc8c05543e4ecbe4d6e3d12905b067afaeaae9b68329051259ad498d3c087f02bef34f4cc7a6575b6a55842afea20d167f51986125e0b436f0f7a8daf6406a22c989546d1df00d48d1749bda96c6d67045f2a277bb4500cfa1521b8407582146719b1c9afbcd80a9d805e5d8b28175636367ba2302d6e657aeaf2aba3ab3c2d1703d2879dbda9e7c3ee715f4558d99bdfc0a3cb493d5a172a0757875159cbe85cd4c210cbe05628be944eaff7e76785ae04135b4a4dd040ff5dae076b341980b069ae550b1cc00e6c253de9ec57c65acdca91c49668a9f06e0236141991a6ce528aaa18c196aa476f8814c5b66a5aa13c93e3cd7b81c9f1c3fb975a15e46ac87ba14c0b4be87ecdb378f0e3a4defdfad858703b61396b8bd13f5e0c99adc4fb75914d6e606abbc5bc249bc5aea960c1d368520a1e15e7db273a0a3c89225fe4fb01ebda4daf4f1e9f6754a94ac6aaa53164753be73ae1f1f29b0ce8a9ab457eafe5514126590c3900028e9a6dbd8e26003d0b1b9357401266cb89e865a891300fe3065d2f3debee78678da2df299e9f51eb541446fa523a27ad53c1339406ad7f981d29c6f21cbad23e862707b1c9282d959598a3eea501823690a9a1e6297e53c13a28b0f9c1f1d2259ebc44b844a79b6e78f8e1a041b4209b8192bb6be29fa31da248172cc74e734c6366c9cc332827e8f58b589bfc253969cc6ab4aa5793ed11d9e71e894d4e857ac174affa7dfcc540c6d3c0a225e118aa07da981e391838e47442c652abe3e6603ceb64441a65c00a28681642af85c7e91094c2217ca958c312f096a4b7e248c2631441fc7298eeee1836159e351444a1b39dcba0d38300fb9e87766af6061a77fa439db6020ba3c26ba2e5ac4ccfa740241dc19ba92b02f10802a0f661835cfd46a69f1ff47ba98a07849cf430449263fe45377100ac4ac2433b916f157b956e999c089ed9574778c0259a23de22ddbb2d73e600816383924bca85965a1ccc82580ba7f9dbe66bb213d4cdb8691c89c41fae5dc9b7e088cf5d6da295dd95f62c30bd9201b2992858918c56c98ae8ba8a149af6440fa58e4e17f884e289bf5409cc0a4882410d22b73226b66fc94d8ae5511b0e7ad2396b070ac8b767f00bd1a324349006c779f126e3d2a3abc21ffe7594de7c240f146837c9e10ac29b73ad44c97334bbdc477a782904d3d153bbb98ad5ec4b28a09030c7d0acd1217192562c8cad8ac2224a892f89525830477a55e24270592f0828abe09bb28ac9518b882a4065380d88f63198d27c03208b89469d466c518b050943f2532a656389c73c4dc295a33b58c4f731b378a91d659fd2bc979dee725564cfa57f409deb62e0b388688ef19740a68752886b6adf9303b3c131d42e61d0e8f0ed5d3f31f9dc84092a9e99447659d9f7a92a70a55bf51c19bdae0c6f248c187b9c9b305485d683071f4e7ddc080f2b0fbfa37f5b0bce37be036c584810286639c8277f22f83b210fd2adae1ddd1968c9a5e886d8a4422b8722c6487018bd32cdf97c96e6170433e6a26ddd57861780304445d52111766240b62c746d2e98d590573c644c10c27a3a7c5b912cfb52dc88d8d52a3a6f7082469797ac854f267df54849e0524b519748980c3d881d280eb4b9b1ea3c97397b477da265990d62452b31a0795d0cdf6b0d274466bf213e59311168425f67fe1102c53409e403fdfb3d569142900f2db6038aa34220f72359ca803c4e51fb809cce03593825ed387a153cfc49abb464963d69a54e1b97bc4261a5967bd8cac63d06c4b7e5f831f40a44a2b45383e4832aa372a89d9edae2bcbdb27932bf91a688787036cc1619dbf430ee2d1316bcfc849149ef525249998eae307a7b80a92d40133646721c2a038ccae8dc68a58a7959b142680ba8fe0d3a86b9517552cd32c5c354f4330a70cc66edadd6672e25376610441d1a20d226956955b052d057665a6998a44a6df708c364db4311102458187e8399b558a2552f8b935f6af33e5db19ae4c745f7e6a67a276d28d668a878480e43c058164ec4e203ee0ec15f986a310d28b37dbe7f67b9b12f0278e6a3c6356e0594329b241b27b7cb0a94529ce2d0424e957753512970aa051f3989999baab842394374b8e0d3c1db67552d58318366b7fd9aa73a9e622123df2ccb65a1eeeef7ee9be846c7d340354544abaaba3036dab8facf6c5360cf4689058811f2cb548eac641ca21246e4333c1ddc48480bc801ca3dc5dcfeff670a56df8d198804efc8f7cc63ba75edef027b8ad49b199eb488a61f956a949d4d6128aed3f10de2602918f8d3963efaca179acdb6533d219cb440f94a00bb74e93a554e1cd672d0e8e7141cc429c4e6b7276a1ea3d25ea3e9f39a3d690df50f8cf4e34226b493ab7c83246d8eaebfb7d22e8f27521150260be94a048ef94aa270a7e355c2fa53290325a716696e31a204cea8726bba573cc40626d5bd2fa07188d0a774aa4c643e9056d75a7e9381ddfe562f118325b0aff1ce3c5b6d57ff51bb1c24960676760a854e844970413f11e896d3e9f5c2c9860d45451c457d63c585a42281c9e5a08595d4af6bb7d126846834bb3c53d23b3e9c743807568436394190c73a83659e8d6f4ce345a7a3d31f69f195b1abcec8dd543335dbafb79a4041b4c946d0ba9b2ba2ee01ede5b1104b93099df73cdf0e6a2ca2b436b7a1eb57f868366f82178468c1a10a2e8058a55e4ef4d459311290d91baea6ba7e670cf4ddeb7e230fc6cb898c6db40bcf78372673776da334e7f9fe0fba70ae8289c4cf0d8bc5f9005a3f41bda6030e07e4abe6b6ddf132a16a48808b81a9636b617c58a2332b6b2d9855e1c50fdcb013bf87b38f7c6f60b9243241a50ec9c730d8a3921b95b6f8bcb18048f5239cf3c274093ed00900c2b7bf372cc111f53d1ff3bc8236836193178ef28e4b0a374e99583fcae30bcdbf1870920e758a1c1969f2ac36372aa40e3d260a2c4783dde33b87bf2943d9b52f180e4a6a7aeab5f686e31283d9ffb94799a2572b1b9d3836b929cfec6e90b7c74be8c47009666d04850d325c62e5c69476011dbaeddb9ace097155c1ab978781013359dcac5c72af31ae876973789ddb929c63b2e4d7fde95f9a86bf8edd1c49a3bf1993bdf653d3b3b8268b98d9ba18c5f9482bb978b47849ff2b25171ef8bf0564c777fa7a16e17d74df8ccf0f75bebd2486e09ddab51e8cb72012a318151d7df723732f87bee20ccdd056be7a036214af7556d9b37219ba8ee062e75f65f53ac721cd2db29fadc6d05ecc7d9a8194d9973891784e1bdf1a4f88c8a585084e858b47541aa9e85cc5eb67585e39f02017e161aa38a75d140eaa733c2971132f4d18e06b22b333238af78cbc53796258bc7de8211e72ce4dc4a06a2646ef1a341ab4013ac5d151cf8ed063b5db3a988d3901d855d5110a7722a53b9090e10f7bea10d6375a41c6043578312855523b9e221cba1c3f51c85b2209a681a4ffc1b743934a46ce7f59cb05b9861746d2dc9f75afd1843a47b38aa4f4ec0d3442b4379cf66de95c611d420c3b3ff4c4b3f7d595926ca6da760353eed561d6cff9fea9b0bfb0bde3d736f34c86ac5eedfb2266750417f1e3dba193059663fdad67e75b410230281eb4816aa07050022a81be811c33b2cff608025450ea4b457cbce332500df40c4a403350738845485c77603cdc1e5481c240a95f4ab35e4826879b400da02c68085a828ea0302839108e561d3ab74f06a54e9b85730169644e0f68c1fcdce403a5fe663ab9b6bf214b5702f79f69c7c53fcf00b155880447d14d9f8aedcc0b82b886bbad4f1f1fc929500b298927960cd92e7e955712d16e00c1a9644406d2c0ba1009f0fb38ce4f8729b19f4fa5ce1aa8b366e3a90d6846540df258be5597fec3ab49eea85bb3ee5f04b813e3004abd43e2def0d5e903781b3deba73ff9c826a75f4dc67affff8158ff29dd8a36365d3b7e7bf470d68fcd8143c85d02e967a091be6fa62bbb1fe51383ccaa9440b5feeb2fa87dd57b176bc6a1d76b035378c90cda4c003d03196b46eee4928016052acea7e95cbb5cdfa9bbcb107737b2c29485b92277441ce3fb01a2f6726bd551b1f85a79638eb5004497c4e3e4b3688fa63275c33d5d517376e270f180b3a40533bcce94bedd21c6ab9441a501aa9cd12c5869588f1cace0738b4cdc90eca51cf2c805a3c0ba7c00f2d174959dd93f1e10c3825fc465edf94041974af773167ceefbd36fb294f5f3443072022c30fd9f88a64c430c180db3bc21023725ed5fd2c9db05dddd9d4d4b7daf4b1877b65066f6cbe6a8cb8bffc796d41a1a848d504c44aae3465d8bc547e855801a7deb2869b530f287271b3c8722c40c60aa11d8c18010dab844af2674a7b587e7befc37f53186057beed78d421711e435a025e472235c032a1c96ce56a81023cab785b7b192c27b09b8898ff924c666bb235126ad86b7cb37b5da03889c82e3c60a5deca07f36b2cb3d6ee0b7db907b3d9c48209574aa6a1c5e3385aee1b55ab87694497d8b89509b26022d1d059d4ea0a1c9be5fd0f57d99e5070958f12192a04551fe2426df1579933b378c0c14e069f97fe5e8b5171643df13df0d74e9c4d1e20b9d9b89e22eff4a366a3961a6cfcd995d0c9acdca17f89a90b5a083c2c99c8c7e5f8b689ad29a68325240d232577f38b736484a015667e9060f4897e1dd533bcdb6fb5a4c30435921ad1ab43f2d27a62a310394ce577aca07ec663b26a463c88f9c0f3f036b8ba2e6f88837848b34f120b3c46a4050bccfbf56b10d56df0b5a5591987710a6b67a88712ceb0756d2225ec3202c3e66777dc411cf8139e595da22ff0d7ee1b1962ee1e38138f96fe81f8383f1e952f6fdb2235a8da4c263078f1ae831e7f43e6084c2e2a995c81c64e8034593a637b95f6d9c4c95e5ca6e22efaabdc6400d035b3af6bd1d854ff8dee362ed4ac94dd90d5317c237d92d498d559134ba35cf8fe71041794cc3124298265b9eaa888490add38626fe6eb9701c12442c8e27fdbe2596d34916ce383a8f051f1a1face4d9179bcafc72d31b8aabf49018d0046196211a33264ac49880180c283d58646339deb9ce4ab41deb298277f7c2bddbc6d90998337cc452f11c014fca59fdfa8e543c29a9fce769e366f0b71f957a0fbe05840e237e7316644620dea933d4bd78eec8399e7587ca98120a8d93d11924ca69becf36d0e02a06f40ec66257dadc0edb301eb9e057b91a1f266f0fcf8d67bea7f654661ddbe2fe68a6e873702363a17f229cd5cee66100f95c0d4d7dbfa61eb163387ba20aa7fdc890726bd44269b60e398db4ad2b49eb10867ee2334da1d626cae7643e4ed0dea97623abe10a6abd3a5c1f9c65e981460856232cb6507fdb7e0627700a53766b8360a562f29be772e937efe1629bc9e7f7aac10352c627e107034fc50f733e9d103d7ab7fad0579a7c01b34a89baebe9dc6e4668a670d733f3b56fa687f1cb4812bebc343edfe69a46f175b4ae3e40b7894cef924e5af371b447294bbe259d0239d94f87fd5fbdb446dfcc14ddd9a6d8716137e07dfc9f136943913872a975e4adf96c93f801281b1f6ffde3db067cff1df85f695f98a479e020280efec4dd4690d465203ab72ade2eaf52ad4d32c6f650669c238bcf4124d39b7a3602df8f40da95ffc74dafae0dd2786555190973fe7c9ea21b01f5965bf545a29a4f6a731e42cac397a4f44db4ec036a84b6845820543a4e070d88aa10fd9662ea3df6fc3b2ede4e3e55d3544d70f57e4307aba8f13ed65c3354a7169d73fd2de3f81c2e16c6382e71ac330610bce354c8f8af5dd288509c4deced45e7293b817f146a64b735b9f796292519220825084e0873e78752e9550775aa7f7867135b88d9c38799d340ccb19fa43f1dfbb92ddedbb19e71229219bb6a477a34d263911ee76cce9c488f3397cbe5ea1998ce89c53ad6b18e6d8034abb36ec6cdb6d96c4602c1ff71147bd6333a438181aaa1ca807d42373737372bc8c0dab8e40da5a67973c25c15e04615a5d5cfeaed4f3dbad84d658a61f29881256b8e28b6552a954aa552a1c8589a5a19414141424282fa7b68c86e3f5b5dc7719c68c3dc77a20dff6c753f5b5c3b6fdbb63a5f385d213c0cb1e083157ac06c752f2408e7f6bbd0151eacbf8d212c1fe16de442eef2a00e7217a5941af9aa873ad575c8a8878460c98e75a24a643927aa3a8a9dadd9e2c1d25c720e0551624303b8a8c77e1b2032f4d8ef82e833a779900b6d1f94627e3a57134c0e84a0f205105098516bf17f3387525ee2411ec4838cdde1558120825f1ef4f2a0a0209a9ab7c9a8075f9200b77feaf01f210d20b8c0082e6057fca0882164e1610b21252e88b2c614540c35a1bde027c70ec400410b2f8ece28d3eac7829fac3c7777d30bb52392a1474f91e0042a9846f8466516eca871c33053fddd45ed1aa9cdda46bdeea83b6a46a06071ebf755e9272d09ded04e29ba5e4fd1723dffa2b836a650b9def67568d3dfe3e65c0e6d5a9c5d48b1e2ce2ea418e17a5ce9c595450e40b7c5237d5da85f873446b81ee9ebf013e37aa5af431aa2eb795f8735586ec9c4a2f77d1d969cb89ee963fade3ccdd3a9858943df74399c5d0055b99e7f93ca1084fdb953677b4a6b660eab474a29e94b32744e0b1bbf18d6abd9a2af1e7eedcc1c5e3247fa75f448212ff91e5f819ee2a773e4a71b7b26193a13033a91eb9e991fd879e79db7de3b71485bfc0fe84f0a3ab17456d1b0386860e98f406cb6ad4d8051baddc9258a964b7fd225e8a9e4624417cac50819bd4129fdadabfda8290a7b60e985f152cfbfee8382b8f7d2f3fc58af226bdfaf73a6ffe49baffda4ef6ad889341c6fad3fde9dac888bd91ba55be7d022259089d36ca2948f98a9fe2a507e40993856ececf1488f467a7c22243470061689afb8089105429bb44963501469408a4a4f8860ebd4f13b9f5d411614afcf9677cfbd3397cc8541d8e5a91cead4d9de7f025387be7f0dbc623138e5dfa5cb108620c625ab0d7c6de0bb711813c7d996340634b026b7cb2ebbec5248a51ac7ff52a51a47af1388ed3eb41152eb276975a18d90ae8a2aadee93b43c37ea91a8c71aba162b5f08b5ba705651a5d525d1d4e96e77e9657df4f28e203b8a269acdb074d9433d63e68e62ea34d1c479403f174b002058b2633c6c6053351b9b2d0304619d64a250a70696f425f16d8fe4f645c0cb3a47d89b6b038e595812b4715268e39e57938d03507ffa1a66debe3713fee8c592bf815e753971faa74e9f4e33212a1cbb58930b3ca4b064c77860b164c7ac68d3414e28f1f4917eb6829844259e68e34f7acf0124d2f7a5ffdef3be1e1a48b728566bc7624c63f6ed5d56c6ca58192b6365ac8c5d77d2658cef0a89a7fa2b1156ca3cea249aa82b6a0278b13b4d6c7b29eaa11e4b14a658721efd0fcc632e73273d720c888dbac84090980829476ee25819ebb22ccbb22c69605e92ad4b306396e10a20c29273b6801f33861beee140e89e5347cf6c36e3367a53cb32679d6ec19f4d640302e86901acc9776d3852fbb3e1748fd4cb2cb8a68edfe7945b97bd0fb2e0c30df5bbef0fc2c2cf0d559a85d4ef5e48c9864507d4ef3e02559c3e3d15819248438fb76ddbf49409ea7511c8f65420413a310033873eefdc0c803cc0fdfefc6ed4672d6d0996dc467ddedccc32482d63b1a0a7cb2cb874c46aa85b174e5177ea5e675f6ebbc175a8a2cfc4e9e7e1034b328c0c39bbac589eeabe6b68810c70a086d9658c8dfde44f8199eaf7a208f38c1a6697db39b32d6b17a7f4e746d9eb690188af6ae97d7e28917512bf5a3d6b4590c435ea93a37122052980909265882334f1722b474e940186d11364f44ff7c07af44f5d6181668a1a685e21e5075e761065cb1a3417749102cc154320d1450d5afe41fc6970154ba8c7c4f1e731c692b3c775aff4a3bc754c85b810246609f0fcf20765b684d5fa3f8eaa7be46e3d62903eb32d2cf2ddadd63963b8e5ade4fa17cd2f42286f2792a0f70be994bf17220f637483a0f0847d81fd87f813f12c618041c565f464890f5afe34f8fbc83f77b8f881de1a1544b70301010101017940ae528de33f085acbdcaa5d6737e79c75ce3ae74d0df8eeb5bb53ee6badf55373c5525297ac40f5577862b93a6560c90eb2f19fb75decef9950e73038ba1814749fb0540518531f823948407c3557eebf995c70205fb5cb5d642096144b864a691341d2d790c348297ab2858a6420d84b8a269c9360232c2cd9ae8eabbf714bb24c519b8d6547122cc940b76500d2420f0f90af6a6e807600a900543f20a01a8d17e025bf6ddb68977c15eb47ae810f604d66b31e580f4f173b7bfc99ea1f5955c74c47cf6c369bcd7a62420dfb14d0c4f625bfef074dc00fdb9bc01f4b3ecb877fb9821d58e9a8ccc8669e9c4c2713f3cbf3f8fbc86a43b324fd94841cf217fb624c5e3d76942f6329f22217a8f77ddfb66ddbf67d9e7f3e6c72817b1fa66171675a8f74a7074b53abe99f7cefa99e6e3316eac1d238536166518807c962dd5d04d2236fdbb63db86da523dc39545372e925fb9543a50b12ea66583a5af7d301754273a80cd8ed6f269d536f77b00e0a153097ecac5c2f9cb86487a5d3d23163a165c1b2d3832dfd188019ac040a29e64ebfb8c7d4d95e40451457ba9f1e631decc53b1d1041bce0ab1f6ce2749f480d5c6f3671d8d563336918f48b135f608014980f6c6b260deb57cba07be80d36837d31d81783595abfbed8f6bad944b05f60f7e284021d4f1c2ec04c7102b834e4c158e846cd8d1a99cc060b2cc9321b343f7de6f9d52b904c0deaf4fd49a64eff0d73c707f7a0c004e68e10ee71534369ad75a2bebd2f9128cb6c8834e28c48fe0934812552f581856788a64950a8eaecb88e1bc019969ca38fb19b0a0e188e26655996befabef22b4beeb6746557124d1deff6775e3a87bf3bfa70937565576e328ff538717e2cf9258d46eb1c76d9e5afeb5835dac0b03dbf0d9df9c2fe25bbb2c8571dd8e2072e723062222ba3d5938c165b2cc1e24b1a4bbc5afd5dd911b95e44343743b67d5d948ed63964176536c3d201cdba28b34461073b7be4d11273d22ce8ca5837d465138bc4575c76a5afcada95656da82bbb1207ec0bd385e5f72b59901c397874a442d5ca98e417c4ee3b7cf4fccee739e7f7f8bc53fcc6cb416d9b9c3ff622f940072b77a473485ac48df4d87d591b158b1839c239085262ae6478e2f66f64587f2d488e8e7e90ae0c4d2cdf23a2eeeeae9dc155a51ac76a2dd7f7612b4e7a10d3c2816661d4aa328e3c9cb4c8bf2dd6d93ae15f2f0373c54dcc94144d3be560e9f7f86ab660e0c183253916c47c328de01dfed1e1da20c677a3b5566ea38ee4e8887fca2a3daa33a9b582445872921102114c126966860c17c122a4b8ec89d0f77d9fbbf7582702dbb6f9d97e1f3cd8d7aa56d0344315cb3d9d5ca4bce04e2e53b6dc36fda834dceeeac81c73a47970002bb61ae9b1e9df18d8afd5826fda91045bd2c1837dd3e4a1c4eab5c662b11a63218cad9eea6a7deed13d115f5d9e1e99e36a3eae87a70b7dc4b858acbb245d938230f6f83adf572040834c112df6d5399577849027d4e51e5833b8dddcd63e84065394ea2950062e97cbe5729610166bc8e5ea80d8dc698fdfe49938f30b008425a98e27963ead1f02ee11eed2678d7158d190a2175600b2f4c98f52ceddddbd73dacd396b3e5ab9efe3bae744ee468003d3f06bd8f0f613e19daab364ea4c6e86c814970804e68e096a053e48e76cdc4f9a6a88beaf00643d1c6ed771495cce0892214486f8aaa67664654d08b0c5f6ed30425bec909f60cfa49544b4562bd2dea0f02e4bd8894b9e97f527e7d090e572e2f4c4c0eab8934b11572e6772c06c29f1545b66028ab14f8251ec27aa3c15b23cc5c30acb644e26e564524e26253f25a948e20b2cfad3ae88eab2951ea97461ffb280c5925c2a614966c24ca60e0e2842d8d0f7a7653d9648f08ab7cc543f5399d1c1ed9fccc475f2e50b17b52f475fa6d19797e564e81148098025ba38a23c420b2228d19a5cacc009278248e2083468f554434912c2f0624c972c68b4fa99c857b38a348298d84188206ec082569599ea5fa2425105951c984a5996655996eefa94d8d962bbfaa4ee6e76e8cdee66ffce16cbddb9c56ef47bc4c0922ec4dff56f833670ffc4719ff9ca449dd4f7346e4d0d233145611075e1b42d94c9750abb3dcb328219bae79e4d317c353df238c3fa24697d4fdaefa4a467e2f89d293f4a434c2d0ca32e8ab620baeeeeceae000461498772fd1d4af7fe4ec583947067e800060cf6f79feb5e5a21daa5fe3d5e6d49244150f4c0e9130cc0129604af7f612b6926b0db4d65a5308f9a74ceb9d1adeb6e6a28d731fdcebf06274effa3619bec212fb77b4c9dc9c3bfc3e8eb144f91e4071b50e18310613461851641c608c20a96e0e2851059b88ab8a8b5d65a6bb8b01409339699613c739e6666a6d223c74df7e94edda9ff911f9e8d154bf2ec7cb13c53a7ef015e96642a17f6ba79c2f254e156f80ea60e5fae6261b5b8ccc5ed47418c25b9c3c2554c9d4ef499dd17cb7ce5798c613991b1b0151492b09b18a47c95aff255bec0740ebf5eb3d7ec357bf1ec488ffd2acb2eeb6ce6aa9272d9214021cbe1f693f422c192dfef344f886e9463beda444a698cc608d0030b720c04ef15cd430cf164ae724c70087008700830168bc562b158acbbe381e5eaabeb736671f4d85882fe0913e7e6e6abb9d9b1f55c992ca16e967b4f2c96c4eabe2c1c334bd610cda209c66d9e352c168bc562b1585174d77c29c4c036e790915fc37a5415db36e9a6d33c5aac005658e1f6c4d1724611c628600b179d2012ef2f884b089a73236d5b4f8fb4041cb02e3de2d339debfbca75d7f4d3dd229fa9fff343de97a680a73b4be70b65aa6b0caf6de4666db369b6d134bb06d5b09b66d2bc1b66ddbd1b69139b25d0979f6b1964b6b582ecb68e0d8076a4438077e31ec7bd3fb18e91c6e7309cd68a02cf48199c34f98be278c081d7dedd5e67cfb8cb0580960b14027b6069c3a23c8319b77007905978297ce352e058dd81eab3f59bf8d34d9f463bc2e863f96be1fa9d56a2e396b6d32426bdb660449f875b5aee3de48af3a171225ecc488178ba1d4f875837ec76dd4d6f050d6d4b285fc9fdb88328ba29443eab886e3367a8394baa20966f401aac153bab5b6d039243ff7a4a7dfa3e33ea9fbd230754aed9a2916cc95f7cdf192dbce002796f421babb3373dcff0e9629c771ccaf5850107d8ec491beb92040d84b0febf17a0ef7f339915fa5c93fae2f2c59993edb707ff9c645155a6497cbd48302ca70f993a332b7b9e673fa9c5c63aefdd0c2622f7387c8f625590bcb572cc665c5941a8b9316c4bdf49265ae8c6cb93c423db8bd22890c13e2b202e9b9162d7be1b182641a0cc65d16b98602cc46213dc93523b55a59abdcb671614adfd34cf3558946a3f54b0179b85cf395d72ad79869b5665aad9956ab4cf3516bad710d9545d00dee6fe16c79779d5bd82d165ce438d63a53fda49ee9c6ae66a456abd58cd8202ddbbbd8230bd38c62c9f717187bd1198de2ae4a53dc9ef10e0ff798b17aacb306b6ebba2a7c8389d3ef84877798c5397b902dc4ed2750d8c554264e3fc88425e9cfec55cba0f4aa813a0544dc33ac53443891925f916f6e28f164827d62958e0b478f7e5660b02464009342040341c552a3b6188109a0c5ce1effff93f0b5ecfba0985ce8ee51d4343350f5b3fa7f8c61f67bcb64b55a0b82583469c9e8510f601f90367254adbf8428a522288361cf5d3c54995abb2bf7d51c1c129d2122c5518ff3d2e7dec31bd7066eda70bfc36d38f1e62fcd17fb37f6a40863c2ace12ab368351a457001c5104bb46cd19a81131fcc1002134250741816f0c0c48a728c245a33d795ea1e6abab19507d83f8f2c6ce5c070652a89a4c302211a7bdbb6d97665139a38dc9016d30322405b25234f713bddb8ae924ade671ac3c809dae9644fed7916605cf42385dc65066808b56ab835a141cbdb5e432e4e8c18468075352a6440ab1f299c627c10866484941e824a1f2964284640f1c80c21f45551e68c98290b238c4e1f299c6a8441c4ac55430110a1e5a13e5238c740c38858ab867dc59596672dcada933f0b892ab3560dc5245a29fc50235a44bb983836bc58921a51a30da873c44c5a9b3a5d5952e915cf5615e854ff8e1d2aa8e0831a89e4cae7cc01ddaa624f97b4d65ac52ecb2e6aa32e9b889a78b86ce73a95217b422a422693f14e0bdc038bcc878f4f911208a9851f4e66e2f49342252df00e331226162eb384257d4c397332bd6a97925ef5ab53ed6398f4aa619d6224381a3387d5f031473e868f780c1fc9f8c84756229901a1d16834d9c5d239ec2b3e3a6ad951cb8e64472d2b028446a3d168b496b58cca504b6857b8e480ca05c11ba11d2c832764850a90ccc90fecc54ac820a91501338448881620331e1faa71c70df871c1250cd18c1aa4bd338dda9d5cd228baf3b75cd39d5cd2c032990e75cabd7c61cc92738631cbbea2a1097b4c7b5d508ffecccccccc7df56b8eb93d6666e6ca1d7a94d6e3ac472c40586fa276d439242d6fe94f87fcbb36c63d9389565ae90d3296eca2eb241269db56c0f1376cf04c9d5e81e6e72ce1e77fb3e905a633674aa3344a74b0f136af43cd9b70e34f781d4af89b57a2038e07c0eb007e8eef69afe776cfe14d68535fc727699d10da541a9aaf4f23fa54a93a441f1d343972bc8e0700009ee685e4a07913429bfaff495a36a14d156d1c6063f3267cada21013fe451f9bfaa009ef6353451b84fc87d653fe341f8a3e3ee187e28b495a369fa435c394d9d23169c41e0740988443f28f70000893b44e0867eb269c2d9b70b64c08672b4798a4354d05f0c16e62508f3175ed095b44cbcef1deb927bd6fa257fabae7542a741c695e9469862add7338f3a590142f158f6ca8902c2272034e9f63c8925de4dd1edf42ee4f6163213d471aead14db40c639d9c6468d929e71c5c58f62eec5a57eb1a5852a2cea9757e0d1b8b13f5e8a702fc6027f778ca632005a1ae9b7ed06f2f6177b928969c6486663df6951ebda3b576b567516854a5e74b6a1acdfbf795ced9beab5c0b718437888a9886369b61c440420b278430c20f63b820b3b2848807181ca18a52a8f2a1a4471733e9d4ab479f193252e02468091450a288f2c3099e00b960ca15502421c59fa747afb9cbdf5ffe5df3ef232f42b5b846ecd5351a8440582e397072bdc943d8c94548e84e2e424061dcc9858920239deaef3066c3986571db6e9cb0c3c5839077a8ebf67311bcae6edbb6d578c62f23486ab51604ff4715abf4314345934b0e8e6ae4387323aa2e085f5c4a6b2ad5aca966ad565916fe60fb68f6e308cd16fbd78b23ecc0a80b31c890997262a20a13245c3d90224aeb748d1c59ca8589a0db61ec4842a8e2d96c369bd9206feec871e757695d0f0707a755e8718be5befb3125804b9f4af13a06184715d39a8a07881028e34c4b4954541302415fd56a2d08fe7bcc711df775150b778e87e3b8d99ce74dd324bd873fb69ffe91859db61c12ccb1fffb521b79cf86f414829d4a9160ec94cfccd1bf595d797a6c2e01079604b96b4d8f0a4fde891c8339e9d7e3b90c448e9cf8831bb1a8aaf8635e675d12bc33c7c645fe113a1a61482a087e6d6a220be61b58ea1cc751fe9f21cdd5f6fc3c5734fdacfe1f836ca6cd142408fd9e9e382a4f79cadddd3926b3cccfede7b37d1a3c45e764da335a8fb20755634eaf6464e2b4271a71195836a81446ea7ef4954934f2d509c6c8d469af899b8802cc522030582744ad0c9293c2d93a8147550155431f07430925865a38746568d043ab3e29f429c0162d1cb808adfa734637aedbb6fed91696fee63db4b09d3855dcf29b2eb60605215b23824dac8f0dc5a9512ba3566b41f05fe542b55a3b8e30cc55fb305b882d50180889443231a95b2ad2c711f4d1855a1e44a5044516fb8161ec993a73f57d3f103b875e9e6a6e41114325a885c354a3076b88d13a3dc95ad2c281a1689d9e9c338a42cd92b328880a1459acc753e8c3ad53c73e6b3f02a6ff4c6f4de20da6e7f8fd25ba921ebdc99f17ba4c46e340a89ff908d8a7b13f63eddf607a14ea67cbf5b22897c75c2f175d8969862ad667b59244d0345ba41319ddd9da514647842bbcd3aede36165da847b7f24325015258c6d2e38907eb4ff64f0d26b1068e0585a8cb638b07cdc0574230b388e1ba2cda7cafaf3db4b70b7fc7b33b194b87cca2209a52e3c0f2d5caf36045cd04b02a0dc57262f99235f74937f5c6ace15103fea862c138228000aba30fd6554e4f0a88c11c7db0ab16587ffe3e5d7ef7b82fc713ebcf3dcda50003fbc4bab8a9aeea85d937a34ad5f9606751b85c2eeaa22e4a5dae1f503ae95c710e2e3fb950ad0b70aaff8b9f360215d9558425e717fe92010e78e00246b8ede30b753a2906c028238d0bb8beb85c2e97cbce48533c2f8531ecf61ce80e8229e4607fcc8b42159623822519c6302f9a4545af0f3284c872280cc17a94d23aa3a0b085e59e87cbf693483333aca2c962b1ee936151067ec8d4a92be01deefe8b72dc398b44eec1ceec199843788631c5ccf62822105534514428a2175044282214118a084584224211e9b8c12c0a8ba3725bad63706ca08b9db3cfd9be079ce72078f8b5e2c04cf58f711b091be0d7abf3e7f97fbdba24baa020cceee4d2c58a8f3bb96c81844b37a08d4ae7745fabb520c8f4eb9f6d7a816c2cf46808967b921e5dfa26e40882e5be7ed751eefd7f701d6e1b37e986b4e478699df66e5d58a7a73c8909331c618bb02e498224ac2ef451a4c74dac5d1014cf9b1cd7d49fe3388ee3362edcdc8631db629dec9332e3c0ddb0a71e8aad74f3ca9ddf75efefcd985c706a29a35c40451797f94a2704442508852a53a64c1015273228279e99179622a0308c7f6226160d942c3cc45809bf98c9e7c306910f86c00409194fc55fa436a6a4028e22c620316608182352913187962f94301242e4a5eeb81112e38517205aca6ee39958b89b1d597880a2f2c1da8a80ac1da30a94766f55009db2d0751be53285cb94db75db6629bd1c5b2a4e38e1743ac14e325ff99039f9781837a24a286c0520bbb94fc83b3de574c5d4f9d17fb2c18c29217be2f6035171fb4d1882d332c5a250047b92799116ba54e486bad0067a392d53ec4637ea1db96e931e992bf3c62996d3d2630e3196e44e4025206149928be4ea1c4ec98b098cf4438a919c90649f921e3f26e13886f5c610a1e6b71ad18d3ad55f2b153d2377a39fdd7e2b14a3b093ace66f3c8cd3721b46b9ef2692a07ab85921b9b4905c3ea67348be31eb19e500c37a0600c2926ec4472b00916926f98454d84bba91ebf69f804ea7f24474fbe4e57a18c6ac27d442beaad55a10744fc81332e18619d68613bd267a981e49aecef10ce0c48dcad350e7f837ad9696e42092834eb25108d6dda903dd106dfc6d3891afc0af415608f4d9adf91bef7f43f4a9e2a2901b6f43f429e16fbc8f0dd24b1c1f4e61492fc4114eef31b3ab39758c7cb5b5fabd5ae71439799295973cc9c893ace8ce4229a8094cacbf094b2c7d2f4c8f46ded1a7e4f6df084b086bc20308c1ce96f78318903173b55a5e587f1bfab3e5534548cddff8e9a9204a4eb25a952c9c78a2499932ad1ba24f8d780af254ab8c9dad09a6355b495ee005ad8886856cb6bcda98ce39223da38fc91676fc62b7358e5ab355c59f1cfd2413c39227d9a9bbe4242364c8d7456b9a6aa0818b2527d13d9d643d6edc73dd77f52be949a52f7dff99de74fa13ea51f6edcccff8d33c8df39327d96d666666666666f6c23402fa6d78b5eb19792b005914912246b51ef96970604fa7d3c90bc31303f3d4807d39c03ca393ec743a9d4ea7d309331d7ae16f1255716b98d92913506e0d7577a71b99212e64b0f425517053705d9c4e6c91e542a81b04653220dee15c53a6ce155327a583edf7415202a322a2526705695c1008345dafa3943a4be5a309150cf6c385d508983bece21eeddfdbb32be4e9114705de49c0ce77a98c5259af7887a98546c4b02116c24204cb21d9c5048c2b0b12920131bb7ce543f53115dbc0c0370073e9b39530c9ddc224d74e9cfe4b83032b038215a19a28faa259269309b1fb0f1e2bac5fb2724784accafa92f5faca4aa954f391482617fc2be9fb49f5abac234bf2ebbb67a7a5d10b6b43fa249724a68004920d20ecbcd353557cbd6617256ec004561b872c65d90ff6862adddf507aef9b9c3396d938a0247a423ed124b2cc5373a6e3084bb24c16e6f63394ce01f2ed92d5a8a7194aa7faa9b0d4b05316c3047379604164b9cb6dcec96432d9e632b56048474d4719d6ba5c2e217679add68220592abafda5d72ded04a1da59b22f3bebf16aadd6ba3ac7bbfd5649e7bc2cbfe7db759194c07517a36c5fb3c5923a68b75f07cd57f6e59be82a6feba0e9a0d5df0982f52e39764fa627ebea710060582a027900b728991e9b5b146663d6655ff4737049d225ad6bf69a38dea2a275c9c0ba7aaccbba5c2e97cba5a3f649f16ddb6a3e15cb478f0d001858fa7e850ec2d0428d23cce0d22a9911c5071d7c5992058c56ffac3b54d87ca2fec36eb97fe9cea1a32cd3bdbbe79c3ee64977d789422b0a6b636b58fd3355900c21023ae8600a44b03cfd447e886cb3621605a9d44d2a5be8f108dbf80d26f10612398d3e3045304940e408cda592c7711ca51b85a13d88928fdf0b8990421bae14da709e7883784315219e5812f9d5e2b1c57e0f912a1a19711b752233d20e6e7d1cc77febd36e14d6751d90211e982bce618717b6a7db734fd925d29d22db4fc3affb80c0802aefecb1ba3c17172115173d392e6dfd833114acb0a48a8adfd3a5ebe20e1f2ca9e27e7470d77f0b4b82cc6bf89062e7ad48908144ab2d8e156060e99337dcad94564a6bbeeaab1378d4147e60c939236fae8f20dc0f9fc27547e065ca7c779ba6197c0ad775d1060627bdc877b78fc9cf348317c3f7b56ffd44fa5c2df26da5d20d29e4f1d1237f353744dcb6649cb1b3d96cc6fc7d6d85dd2ef96ddbf64d1d8ea5e0d9ac5b70c2e5fb05f30e789564a6fac124dc3602196566360b9e65bedcfe149c5892677cfb3b8767369ed8d9dac4e0411a5c5cad59d3ee76b40bbc8532f448c44307f675e01e2e0221024d49cad41cd56ce6fd602454abb520f83f8e2a155873c9bfedddfd1cc781e15cf516325554e71516a2d22abd740e0533b7b0feb4e4442653b25865d33aa88562406171a7a901a8f2b258b42ccbffbf304f07ce9a3adc28c692a8db6f5124146ac68a4d9d903da194ba5f8f7e74eaccc93332b1247879960ca16051c79c68d379b85d91471876c99222cfc0c4e95b64c5e011c692e06d05f0f070e1e1291a9283120b86c16030180c061bc7ffbf5e7f30956a1c41d0823e930a33a20499bef74940ac6512abd027c7eee79dcd4f1ee0f2f729e49f4e31f730717a74d823e8f442339fe181e5cb1736a3c5a2fef44d9a10319a61fe111828e94d9ff97afcf1c428a6e79f0fa4d3a844ae562539748846000000008314000020100a05c3e18060402a9f6c7a7b14800b738e44825e401387b32448611c42c61843140010009001001821ad02a07120ea655c72a0dae11943810390c2449717872e1bbcb74a3332f5b64ad1b03f042a008825aabfb31bdb5b1bb1a3c12ab6528c22c7199db290a64632bdb0d36df7b4703ae28cae9828537146ea385896fe0bc86cae87fef53c36cc406a45987edebe6a54174c884aeba987298d51d99c13ee4c4de9a5ad53c3f268f7ff5a72e86c4e4d122b312841a1e8e4d4850f299a3eb8a8fac98b0beb24bb673eb5fce7875cab5bb8d244325e29a54f1c70495a06804d19f3ef8ab7cc1f17e6ccdfa0f9450c3b81d7cf44422887eac0f52236739e1631848258dc5240e33e0e55f4f0105d0f5c09cd09c381b35588f95dac788ef66a7557e849e6bd2d85594c11b2a52089e9018615cc9ca938a9b563325b59d1d992684b1e4a3517da2bebca05919f97da05373bc035938ddb385af0eaa02c5c42c4b294ddada669f20dd18958feb808a0006ab579b63caadc4891db2c51c780891975f3e27a1b7b9188062b631c2a40d120c0526e7d427ecaab2245d2d02ab1d33c6ecdf32e8787b682898f01b34b307d14518aacaa850345e1c131f96eceada8866d937308b082ce4de9a8a5112bcd36d8ce2a4b3521109249fb82526bb5f634a28768187e17b84bb8a30a9ac928666b1593dc3608c8d9e5a6e19592e07fc29fbbecf42e290e43e9b8fec43dfadbfb0ba52b035afe6a9f7643d0ad8392c89b76f7db3af451268aa1aa462cc8efb7b84214b90e57ac6ee7b474e69daeab30a3191761653d6146993aa49c08017de5856df8040f42874f873fda3eb412f6fab80e6eda1fef792be045f878abf1b3e3ae7f1f27f8f453dfc1fc5df92c1af77e26742f4410f3db759d4b9164a79e735c3c17cafb797bbccacd6b88d9170de2ae87882d5f1dc6f1cc671152f5464e19da9afb9727b4b7de09cfb6d8cb02db5aa142cbe3c5e21235cff976697cf106271401289ee77b2df2a516c80cbfc1be4948f91c36a0e4611b264784d0b41de93c2f37cc79322664f698dceaee79c629560493688370723909c174ed7edf41b1321e74a462970a0efbda46d7ce225edc425e6a2aa0c6b3489e98cadf1e82c95b631ee180ef44264a1cb2272e98b4bd4e93581b9119bae96a23366d99d27cc2dad71e496d9acfef86cd49fcd5853acfeb5baeb535633add6a89d8bb7dc979c5b9036173de9af6ee71c71ce72f3aa64f4502f91e07a63d79dd949b41ddd7cdf77300e235a89b53458faeece792c7ff8f7dad888169e4d6802313cf2591b68eb60e0c84476b2120f66c641c1cc6128ff606f29bc830242bd52c24acd3c1d11b0c4f9540088fdf2501463cbe0267952948092987099595891bbc308cc854d9cbc0533af24db1c12da758ff6ce7b48e618dd7d3c734b8d6bb6d84b21caa0b02cbb3855fcad02f39eb42cc8b490332ef724f0c87687e9ef00d27acac6ce3454e1990b0603d606c0f1be39d0a3528325aecc2ac56a81ef142db276a5fffd96b95a13cf888bb4957575d4692baf4755b6c6c90110a42b9d40b39328120e9a4f7819cb6cc193759c7a64ed46ee54c206fe40f093dfa9e95fe9ac9a13bf8aeead7c3c088056d0b171def93d38d43462064bf6fc5bff924ee13c2725a395e3a4c2da4c27722c29a224fccc6c40aa1badafd30831f36d9cb03831668b43f2d75b0e87f7773454e4ca7f30c02af87cc13b11f1db4544af8fe5036d0eb34cd2d2e299d7b954328fb05657c1b1b3118ca50e583343d1de74b8af3a11e8e06893b8dde628d0ebd77f1649354534108fd7305fc16a20f80a15c65bf42f8e4554420387618108b69c88dd385049817ed89dac993355ef35d102e78ceb917892303eedaba29fed377e37e77a6d3a8873aa6850952b22700dcfee0352fd27066070053d5c85f3045baa7fee585f7cddfa66b7b34843cff9ece93163e29ea31ec6731b181754b29328e98535ff1c70765bde4b19c3673b7e89e87bad4dc7e7cf7001ade0136f125927f7b3271bf48e51b8508ce9f76bbcbe3ede824d54006d756888843f945ac37860c8aa08da87e441f6706eeb4fe0f1af877f8a6293cafeaf2e0ef759590c5c0f2438e99a63dd6086c715ff365fd45769b582a2d2bd53f0e00052a34659caf40003923ae2bfa2fc4a4cd472f393e8990de4b198e4a888388cc54de5334c3b249ea8c181b96127eed2a110d6b07908fc201c1c8ce08ab83099359ae9e1aa28731984c4f39e2ad845172c990335807768c6f0b5b56ee1dc6810772e0b2f6cb3c1135c33e5906116a4ad4f07070595e374b96f3785782c8c2f7416a4ef554059b7c83c4875fe59126c89f09c807a83eedb5e795ba39f0f12bcdf41f18ce610586204cea274e371870d73ae9d4d17a03976483264e20596a703d022649652cc2e40157643b1e51c7e25bf23f409f0d9a81be80039edf7353fdb6ddc86408343a67f28066198c8d615116490218c9b061d4a3da05bbe08f5f872da9a0cb524a34e84d8179197da415d69edfe93b0c5d39328ac340d19490cfaffe7d7e9fffcfffef37192d21be3ddb8b0cd612e7ad02a95be33fb33f455c308ebbb63a8985156fd9a3a2c6fd26ce3698815ef92005646036b842f1a2457f38acd367b5f5752cb97ca1946a1c1a843e0449d0e9d325169d85616fe17c0c4d4b01057171f54cf5b12eea9325791cbcb0b6e01d2ecff1f92d89f3affa701fe4ed0002add0fbbcadd36b4fece00491ffeebde606506be1553a7fe45780a39405fece8318aefc21d89b1f3d81c345c5e585c88bf9b4d8a53260776a77a6cc6e2acfbe09a7d934ce0a687d84dea0b7c8c815c4c12cc47b1351082197cf91c300080925e25c339cfe986b99c19ab0e5f06a7e7d9ce40f468f538913997ee178c7413d504aa8d09fe19f45882709fd09fc9303407bf43de3d0fce7144282b7f3c786064c9870cf11fbc44ec001638e265b5d2189ed0aa1bc52217c6b97d3fdd6a9006e957a6d0eaa23007ad2650324c105fbf67d8e25a17c1a77deeb0ec28060eb971e4c20d34751845973f8bb2374154807cde9558830c2b651a6d3d2a71991cfcc726bc2b7a34f47ac86ce8b2c99d09052dad85e5717653608146c11c819bb691ba1053dd1876d0792907bdffe27e5b5257b4868c86b92885113d021e918d985d8ab5e5b82a4236182b181eb554ddba2c88f908cd1d34c6333bfc75d07173317634550f331c02d265344e9df96028249db2589b755d08887fadb227e94c52b9eff1acbb5f828de228929af0f20eac7f6fc27e4e5f83a2661b2382dcf37eca6b6db2c897ca54de275d54096099dc3275a28a541aa99b883e354cd80af37a18025fd27d45c5a9a31ed1ebc5121ecc572916ce9188f6451c14edfdbba6c0444aae1a0e774c52dfe2e22aff4d29bab5ef590861e30c026cbc0a679eeb85c112234a69c464ba7fd42177e79a837b4e545cac0724e2f4f6bfbd299956a3d121f17bba91c43da2b9c47ac16e9786cfefe8763aafec452063b3020d5885eb2599a43b818e7911781c20a15b4ba2b5b3c12ba8c2c199897f8d0fcdcc1bb7f72f6a79eb6c834328431cf655f16ed576f32bca821447793b7582d4fc24680d5a83acaf6d4723b60e11dda8e6a886d38290a859be24eca2c7b3b4bd66198ad208d0487ba1e8899df230681d31bb07152b7edb67f9b524596c749483afb93b22c1a926acb6bedc0fd7addb1a98befd9bab1f9fae0c7dcc197f9c198d1fbafe629e63ec4c4587fa9d6a0b22805ea872b72422dfd9d196156e4c5af22e779f6d70e8944592e8a270d9afdf5aa28b346e1b27fa46d58aad526301ede72d752cf91c40b4ece47203b0a6571daf525a7f6a67a90888ffad5f9bb4308afede139f1f504c0e10d27f87d5419b60af8a0493f192b3f62dc51634645f14af5062e08431b51dfe8808212078076dd1c1b2834902c993486d46b7064d780addf20347088c8db181ae50ff90851fee614fa381749b3d304ef2057f38e8fa9c41be27b779abd929f3df762e6f6dd37235ae0a31f9a9745408f0b3e0179530d755bf718aad75b2bd19a340c836cd34cc9e43dab303fa574e28e1cbcb5c05de138f0d1dc752d352c03d995be11568b274c06d33d8e90dc287a079e53a3da41fe28d36e968438088956cdadf96b480c6bdccf39bd53441671871e7497e0001e52b65bfbd1c3b9907da3c75065d2a0f683d121ee940ad0d48f6c32388038233501ae53c2a6d57f6cf61151b9f121b297cd3ae866bc4ef51b0ec35b581fee6d467478186cd7b4e71767959eac1f4777d4e852cb1744a9f36a9146e89c92ee320ea1d0983a444c96c74a1f55b2313442246ec5809370f83789e331102879ca148a6d0f183ac8fb543d1f0bfeb51d05bec84c2314f6021e8fd9d8231370b20227823335715db7d7e3b122354ab59085e447832420ca0dc24a9b6f03a605e338be9f721ccde9f2ca8dc83e5e3187d4ed1bd4db9f78cdf92f66cfec1d55d46a7b4b30903fe067072a52bcb1e517df58dde2808348e22b0a28a9c5f84585fa7b45cf3f896e365be1332a14192e0f97cb912ac8c6675996a9f7fc98aeef6d5c3038366108bcc84dc58a1a8b43d433f98aac898c0ee491e907de906778d48c72b51248b4403cf0de531985c94ce0329351e66786fba9b86e318b7c1db55d858eff1de6e02a07ebde5da8cbca113c065f69991c21bf2d6e5e90919706aed21649b3d180a6bcc72e4439dc58711bbc3a440ad75007e457f53df51ef68d036ea8d2789e84950101c37aabe5742da8aa793bc81b21e8317b196b35afad872dd353754970cf4fa065091eb6245a423375076f0e0ec1a1d0d6329e7f0989ec8cc0317e231ccdb943f823fbe969608904c7645e9a93619dc891a3b225f59b375116616cd77ecde834e4ac69023e091b5233abe74d79183332ac2e847575746dcd5bdbd159955bd49935edac55938597de012261e5d5afb98e4e65252caa49486b9d5379cb897437f8fcc11e3b203afe365cfd967abf6376a498289220155ce6cad22d2a9cd402f4148308a41981252e51700657392fc3f11e764dd446a176c1e3e2d0f9f648ff02ed8eaac5acc807514f962d5ce68ad8d8d126aeb97ce6fd1deb719f97caf76bdd60e588b6826fb1dd842566ae8348707d9381d8f3d3148f85224e8b380aed7a7bdcb0add569a3fe8099c85963f79b87f81e7597acff92f2786b57fbbe82942161005eb044ca2e0ecae048be50698db39f48946ad5cfcc148a4948ab74ec32d465810bab81bad05df19d8689fcd006ba9ea99f6779f06553e03bece6b0de1c26d06683afc82cf8393c8d0f64903f5dce7e19a6ba166c3d232c5d305ae4008213bad0de652c813c682c972b57aa25bcd0428264d4398e8ef2fad2d51671d73705eb722d6c94c1b61168ef21938cf512651667904824e362fbdc7a002c7d208e544f5d35deeafe7fe7163f207b410ba99974d834ef9e1b051e9b2d29ca0325ee609ba1d32bb6ff0bd3b8a58a0df573630504b23c3b22e0b8da94961e38df1e70036f075dcdd5edcdc746a4e58295c33e052d421748eb6a8d63346911cb8d4720086289cba2ada01d3d243e169486989fcf494436c2fc6aedb865fc01d49b3eb74e21fc9796733ffe366567da27a4e4e2d8567bc0c952f08777dccafec7ac27f12fc405c0ada58bcf41381eb8a15e064c3b6f395c55b125040d4584125a47d8ba1368e814fd8e44b83289c63a7e90aa3934379bb2db0d78259ce1c713fa298381f3dfe36d1a218e6cf912e8216b0f2424f12fb4169468ada2996b3cb6b91f31a52736aeeec99ebd9b54347151e7aaf182d1937ab00e478f812c3f1f3a7e206474430a1b2430a867e977f7ccfe3b93329feeb4ed8d554bf234bccedb28f83a33776b7ea7ea4d74befbea615febc6ef600b7da8b3c51846bb60668117f8897d0baf1eda4d621ec02292ffe7db054264d858203ab1a07b15958796f5eeaea1742eb0ed0a43fecc0bd03f0f2b090b315891e89d1602dafb0de44aea08429e60a850985d89752fb51827ee7aaf822486ad3476e4d3cd46f5aa55665758839163814b69157865587ebd6e79ad264443e22b805f24aad4924cccfd87288457880de8a5312b287fee0383b451baa98d904d5b0bb80a27f0cf42d9aa4a53c8e7f5030f094624ae5d6bd2509a8922bf1944e977ba9f5081dc8c14ea979f600f29894a63269a16076d76ea6290a510457c613d80d6a6f80a33bee602178996203ef66a1f44d296756017d879ae3b917478f6f518ab599bf4f73f5fb1013b87bf683947d57733b1139436d18733967c4d4bf5d0310ee7c507d34b76b2dcc368ba60ae0915aab9bcc67dbb13815202e5e7088eb4a3dcdc6de861dc6dff73ec6631f6e2d4ca0b7022c2fceef0955fc65cdae45506050cd1eefd5c18fd243fd269b26e0d567fec2592293fa0fed0d0b90c9b1bd9b512aa86825c4069526319254c95f7cf3c0321a4e6ede07628d630467e15eded42cbeffefb1cbd595878a12041640b55e48d559d10bfa8a8bf16d5f51d56a5b2b7b8a2d3a67d9503a207ce2bae112638c52b95ac9a1419d8fbb3a68084ad436c9c2f4aad1a8c72551d66d4724ed50ce677f0a94e878d1f818ed919cbaea917b5474953be88a9550d075ca8e15f2ab17101d97b294c4fcb354ca6510e6d67b66492a37977f7ce8fdce27298a25e84b294cb01ba0c4d9303654d9879ef4e038d87e3e2afb7dd50372d4ba195229ed9efe27070a5d8ad4dcf6212405f1c033594bbd12c6e6060312c6ca3e552c29b62cadaa7194bd675269cfe2a0a8e120c33418f4214ed4d50e7762de27c12b361fe9f21cc5ef1eb34fd94caea667867784a7004d73ae3a9e7fd763b15e9a16606287dd94c56d2e903b07ab17952a178d2c7e7c01be944072c0626aa6cb1fc92f378e26dad7612039458649720eb2303e114a3cdb58091f1370c1d7b31af80298ec4cf93cee1db6190974c3f5e6d50f14a2dbcaa8f8d7569988f278e8188db8e4f150fd481ffc0ad0fb1bad2144b5c18485a6069ca114b938822620c70f8f700383b46e57e0d320320f00b1e1b0a4dc1213ac37760a448051a83ea9bd4bed1b656804076700c0101ece11108f1e9f40e33182b7ace2b38e49ed9844b65046248895a12060a80d3ee19ed86ca5a31169b600482f33a9c23fc85924effd443ef806910ca35ab5cdbbba01cf4762121c7e5aec5cde95ab3e2e3291ebfaaa679284fa655d783ee9937e2f651bafdc5c27f9f5df9610759359e099a2f17b3b3ebc19ae0661f9385033c706067cebb75cff218c39a2f2b5c462d6048f5af183c2e92b0c816c514132427150325cbca51296897ba75eddfacdf294a30f73c1209d1e8578c89dd364f95c01e051b20709263b5b14ca9ba306e00bad0f677d98a2201d6e278fd5d54b7b8239ae0279b74f5bbcbf55b50a7a3126ea247854021419c7fc5228bb697d075ba450c19642a94a3420cbe0fca159f2071d7a97c871d98bf9b7513ab2b1f7144662ab4911c6e2b06d84aa2360f43eff0819bccb92195ff4cdbdb89b9ca0ab42bf2b62b448b3f38a2c4841c3bbd5a40091908f30fbd9b872f0eefd2bf8d4f14fb5c7c158487f69d3a96458f1666e168d73fcbd2b971f09f6be692e7ee5aa7c4358a7ad73e0f47c2a8c0bcaebbb01487851756daa4b834dd1101284f9caa48149320304baffd2e60a5429418020046712afc8d3517089e64147ce81bac449cbb63092187a816a766468ca36e93940a1549cfc63926bf4274a1579d628ab18a9fc609fbbc6ae09d78fc66aa7762437c2fbe471d1db7d9476fb325603cad3242e463b97ae85dbee0c823c7135030dadd1ff2ac2704dde8f42e13b631d921cab4498dbf51e1a378375f616575584cef8013eeaee99a8de5bf339f2e310ab9329787721c18506dfb8c77e653065f7d0e475c4fac3cdc376e66441222dc8982789f9987c8ebb6ccbe2806cdf5ddcc20bab4803b333cdd1d7384ab411ca40a5de25052a7babc3fedf2524c2fd780d02bd768b5d10a24ccf2f9d2df11d1f7b5690dd57f40291e8140b2bdaaf49d08cc11278293290ae1da3fe8fab2f1333c95d8906f6bcb63ea8104081bcfcb8f5639c522dd2887a89aef428517959cf8852c7689fce27dc4bf80d8cbbd12007b8aa8ef0f61c9db111532bb4e66be0a4816ba0d5520cbe1f4f449b19807cf076605efe46c0a8d5671449a0ad47336e57811fcd46acf0619677b516f6577a5de8a468c9a842a77797534a291943f84d32f8b67909f7369c71f62eba10dc21cb7fe4059319d5b202378ce4f72e36fe0aa6f0644ea47051e0524895bdfabdbbd753c0536504aef900016a857fae9e562dcf4a596208d99db458a59b938a1ef3ca6c24153b41250d65476d0d9870dee84faa19e3064a16ed07b4fab992c84d971bad23ef64a14340d01cf20b94f3801a850138344fca4bfccdd4780dccf4504c54bd1def1d0bf7a9792c70117edde93545850633f0da8800361e7f8e6c0870e4495d96ec9e70ac284f0a5d659b74da15a813fb257362ecc8532149071032130d40d1e6f52caf47b8686508b5e0f759502c69b48e883dd43a44c3ce2243b35bea9469a6048d4cb0f3d8e983e61d1a4e0acce46feaebc4b4c652af1ced4f874784b6e341bd23949f652c69611aeb413bc819932bb65bf9053a14b281be4b33e43a235c1d44b2edf10b17cfb4880d9c662fe07c7fcf51a1e1337752b8a3b29db2bc827a044c1dae46b41574030006d3228eb2accd636e74033b9f400b1d616e4a1f7b571efcb489446a0c0158567c017e8c821bbb8002434910a62002659f6b7d813c466f63be7095334fb91ba820114f9b0ffdc07083093861442f3f77ebbea264d295e0c4080b1a06580397540ad1a507c727791276019964510039ad263808c1a2d0fee037f96b45679eaaaf6aff36a3afd1058829608ba18b08d324ee5ec662cc5d67ff310ac5694237195f3b6a01eee4d3591118e0737b2ca54456e28bdac8f3ee8fad4d341d633230a24bb97274b5cd022b1b1fe21e9147e5fd3f8d2a35ceea5c01a4b08dd7f24ffbb708ecebc5fe9a6551e22a616d630aa1a83ed2560efb57adaf4d2126e410a5d4221507d8b64d0a5a4f2bd368610cb7a2a224d0620e199337c4fa1f8e332540bd50607e5dbc5dc9fde2ca29b4fcbba7e8aa751db18e542a98e4f6e93c49608626a64340432e9f9819098a47bef79f77295ce5cfcf2ee63c398273961021438f924efc00b94d926c446f2252a9df8f41cb313ce9c6e3bb74e90e4a9a6dce0501357a59941f8ced515e37df46816828eb4231718ac83a68947244373434880f53ab6855cc9f200ce3941feecf37529cbc2e4974e9df35ec19d201fa8504bbb47ffcd94b47e3a9fb75c4589c80026102b8e6d8b20f241665d2ae90bae285203c02fe7aa288156c948c06916d5eec0d5cae327ee8feb7d134fafefc8204298c4fba6a50dbc7a603eb1a9e7f1a211e3b8b39bb869acbb6faabf5ddd372311eda6d478315e4548d39b1ba650f74dccc6e5b1328fe0acee7b88b9ef9958dd3a9490ec36f7dd17d9c4ef7bd105be249cf3fb266af7f2ca742a31f48f5c743e0749281f97347f322f6591f6fbb6e7feca2497a2157157eae9a739ada66b011e126841b0055e18a1e4576e8a58aede05785964239e064184ca7153996f5a8ae5d2d0e1b39c713c2585c572054e5f5c83765d65242f20ed0d5c5a4735ee08a825c27d2f5160e96bb7b18edcb3bc6334e733701db875f4a1141370667405cb7fd7677f673311b005791c8316ecf69625e42ca710ce3d3a8500e70283be8ae171afdcdaa578834c75831f043b0220b102cf5d930fb42f1dd35e4d151d34f69c27f9b1c2e2688ed32fdb774f3e8bf6d041dba08462688629a970446daf27731b5399fa3e080effc06242a48de19cb727a6dab0c3764c63292581c2cb00d7215fa8683f42ca768929738c2b32874aa6953d31c85e28dec8c16b1540ce67176bdb748d2094a68204aa3e4a1106207f1d08023e87c116ffd298091bc5adbca76c74946551615c704e015931fa63392b3adf9074945300bd56e9f6cdedb945cf41540cbd6d4b542f952cf9b5e4b47d943cee90946db38bcf118b99cb3cc4b887b26004584f3ef983d721ed8443eb727683f8d5c8044f75b29b9e8ad3e4d81fc3cd88a460934534141c4560b6172e0061aa8f4f534529bdecfc918d63c336d938c4b8521a7ccbbe2e7e57d9fa4a7f3a8545f74e97059fdf2d436eaa2499b3f4f3d5b2de5d5f526e03ccf60d9984ef4571b60b8ce89d7aa3d341e6effeae95cf3b12009abf8e7910a1b1e416854c16fcac8c260dc9130778416be17f4653ce7f0164dcb5238509e6fcb125d6e17ed606a2801687160830a15b1c206de230f6601099c282c5f79798a8250ad1bf157f26f7e2378b406b3e1b67184e57a6b621ba8ef78a565c7a86543b93084ad01b6521dc759d8ee42b47d985df5ef6a7623bc03ee44441c359063707bbe85c55acc43f0acb587a303fe231060962c4b6f0a708a78d6338a15269d6700f3f731b8746423528bf289bf787e34846f52b64910f253340345a502cea43f8766765c17d44b8d5e25b0d6e49ed23c359f1bad9c4280f79806ee07846736db935f1e46fe9a3ba7a7011b167a2c50f826146c437bf92a74b6dcc0f558caea30e73084917296f4ccebcc167ac9d250bd6f31e10ea03d89dcce68fd5884a9497054705c16fae28e4db54ab7db67945f5580dbebe8715a8b9a0acdcc032c609ce560df830ce713eccc1d7b9bde8960df9e2606086fb025ea15549c1eafbe2da4c83caa14a43966bc3a2d3bed32cc2b56b1ce8bb9400a9934dc628e8aad766329fc123013b2d9a591396c7fd9ef1166ddbe94d228112445fb555720f8543dc1482da25e3fa695de3fba7e7242f4b44013df2858bc15d32360da25559de1f35a3097662bb15c0e36234bd9cea559a0d6ec1c7b6b8de6fa0a23ea427fd4ef0897932f318dfd5a1c86028d2171c041996758319b410dfe297c7ddb16013652f5d923960c4fd5c923fc1810188c1a50599df1cfe10340fbd671ed13d76118c5d7fbc3dfde165c46c206111d23fc2d648f256352891d69a3f82d41f8b654b3a199620380528a5fa30de993ea8492c2733d3c8a61e7d64a2be8e6ee75b727f32b202d46526c4cb006bb2b90dece1d6065683237968820d08f56d0ada0edd5552f50e2e02c3427344c8a7fbf55be2b3c3f649b1b4c03bdf11eb16c27a3f6b1c6812291bf6540bd9749348117f747147e3947c17d823494e3882b3cf4eb95e90889c76147810e9da830b3120e1736f8cf18d9cee59ca09b2b719392c112538fddac5e50d0ffd46b8990182a066288c8945ad87381660bbbe1fed0702f838154970d32db0c5ad54881a5285c06f1619fe08cdf57fec79e15acfcb92183f74dde23d7573fa28eb79bc38a27fbfe96a452131ca75686e54ce45c7a7282ba5c47779da30bc9cf1eec8e90a3e50e88cdf2549c1efea49e5e723805e2b6ad4759c2761c340c4652071e91e381e673fda2f29648578423352882c1b171c85b019de69e52dca5a10ff695753ff1610c1845dd2bfe9a049e2351ae05053a82c3dcd78b4c49faa652505a6c24e736902a0b950d65406aad3d289ddca5e435a3a14b932cedd36b85b9f138f9705d1649c57ad80aa6112db43af514ec4ce6e8187a80f7f6a8d9cf3495f04c7e95cd866a3e9fe6c95f17b8c374c9e979f0e53cb49f3af7a9312c952e7bb97cd9976a1cdf3a4174c21e355c3ead8f4d6e932b6a370c70ef2bd50dba7b8bb887c08f784727b74729a73eb8fd281318b84552e2321d80f532aef260871178e00e51907833e78fe0535ff97e7235d180a7b8b158b820a2af114728ce59fcd2dbc7a5e38c9ab4c50e1c9a2147b7f365a68704fdf89459f620cb84964ae1fc2060369fc69f09e51aa9cc753031cca823933430529c72bf21ba3eccd80e578938a337b3956ff40c2648e9335f2b8e44f59b02a692b43a0284aaac4caac8e62dba38e8e11533a26224b86452441cec23fb6a6e3c4634eb06ddeea5de3ca433de5f1e9183118924dbdc8d1130d94a368d0c5731960d93bcf48800138dd8b93e18065ed84e9a77af2e8c949433b825464879ae5637b21b7a1a30158708d4cd19245c362039f006bc07d86707664cc7e0a1a86b0110d6199f297f8dcf8e81d4cf12c5b9fb5353531f4053e3c867086074f2f4a35f0b862fc3ac173f64dad975f353a0cf572017b43e44f27da607c1d5fcc361925c650d4f91259096a7cfbfaa74ba444cf196c0df491ae57ff40948782a14f2c1862752dbd0551176579c8f0a35bd386078ed62e72720abac2435f71e2518b0b172072a065010d9d02a6a25125f32f709a7c03452b65710b98702bde8de0373387ac377cd926524da85097392b436d60c79c1fcf141c5dd834af5d4492446647751e5dc276754342accb845e23e7feb1055379e3ca2e8315a9df329d845e7524fe8942f023963897d672b9167eb8197608000d1a6f0dc7d1a84ca11ab135680e9033cf6d4640a73a88a894bcd0e6206b2b56991da6e020137256d906c718ab9b613fce1402aece38af78435ffdb1c61548abdf71759bf203367a64cde1617efbd82b71354b53273adae3f4ddc984fabf4801b56f8192c2523387fc1d2d7592eae3f468dddf394e43b8c7d7a8654626b27b7b59f4ab53afec276e3033058792c27e1f8507ec9241682021f925e12f6cc716a481e38a6ab14c3d29dc726cda40508a2a70761bd52e3e8e9cf3464af4261926bbb4c861c8d7e3fc985a00006fbaba6070eb8350b405343e465bd015854341cf45a2e4461b8275b41dce0d33f8bc7098d441a596956867ab69acfb15f6fc9cf90d975501cdfe14e34f86e235fdc4a681f02a2b4add85f3c50147d3f8e6fa5843a68864e7cbd5fe1fa3788d03c1c1c13174f7fbff8327a01ec75217206c6ae441bb5862e6aebb9ff2ec4237dc874659141e3c77680185457df171c2eedb5a88886c67ee120dd41d05f5094ceeaf6ccb34233132ea6f43760048ca9f983649b5761b45628c4daa9e4de02eac294ec1957321001717f89c66c850563d428551cbbf68dfc8b94d1d80172a247bc5796c0848bb0d324a061c138c73af5afd8581c2c0d5ff6e1c09425c9e70273dc81fea14ed1c2745a6bba86d21b7a257d26a554b81c6328503d52f93f12a6f355ab44f32d46b553affe5ff030282331b632aa98da7caf65da4da15fcfa4dc51cb77c27fd4c890a92fad409ea3b55bd0db1607a301236058154647182dbb54a3bf8a999c0ad9330e72b3da4507c3d9af0c91225a41efc3ba3099bd89484a19e5b9b767a926c88b2f6cd27ca57109892a025eae743c73115c7d9d22d718fb8991741ac9926e3bda61aa394f6fe3c7e6260efb038536745b4657b02cbfcfde16a8c3c602df7eb49e39ea5635ea145d225bd8b9547d012c5fced2c2d8d25aafbae9c18680f57fd3ef4f33fc1a7d8227fe8d8458bfd0afeb2ae8378ebf155eac50313f5a30ffedf4bdeaa08d66450d899dec4067e2c5bd024af8ce1d4d1c72e48a5a24bf0c18b9d3de59929760622897dcf498c3b6b20fd85aef9d752ac2e93b2292c97b6c4a105af4069d47cd4db6a53b793e4ff786ee64dc95535422b35b89980754f8be95030d3729372a2d8b9d811c25fba67fb882eafe39e9da96ecfba85db67570b071d70a03031acd6c3a4ae8f2d80070b917c7195f8cf4944d58e89b9eb3c39d33d6e93a344fcda8b22e4bdb01232c0d3cc2c3161c9e11b773a0d8efa9e03b7039c2ac939a91d6605a525ce7c52dca67197a5b83e929488a9a5460bd1f1d3d3454c57c50d02d0a7ecae5ea849820858a85a4472c0bb04cf1215404ea79d1b98213d9b16297f180c9c8e5600079c41e2934ab57f860e9f735d90d6d48c1e158e0a16a17f5a227fc51a1736d9d2b9a0f4c794344a5fd7d6334f091397c1d23b01ebea69639f4f86c773b358c1b66a25cedfbcdf52b622636fbf205b7e9501d588f932bf728e9891f01346e8f2ddfd62453559f9a24fdd86169c1478fe8dce88f0ea6590f79d46c494c3e0c891d251d31aa54f5f178b45a24a81105cb0228c56d5f0fdc3a0d7e46eb894f7daa41ac42b9c4305acaebc59d5d85a1c4beac09e0684b8c933cc31af6ab12efcfafcfdb694ae3c970863c9b24b48ac2fc52b50f8e852c968cde80d44527e3943fc6f09eaaaa3ecd46fac3d0a7ba1b3d952c135b379a4507235409cc60d55c01250289c04e88f59b86a0c103683531b4efdaff32f08deed8262db1e05226df7dd5cc272b2c6a974d7368e0288737ce23991aa694db61007d6a8c23ce9df1627d24d041fa16ac78af470b772eb61abb29f88d07bbd1898a70adf79e8e5e2e59748b2f5d1c39c197802d8cd0d7c75aa13ab91b2a03a9ac86bc0b6056ca72de0f8714e6d4cfea1b139e393971be2e6cec4ddb05092588fc268eeda747da941546983cb7e6f76368966345336d23e274064649d4b6c1daf194452bffc565cbf997e9164a332182b0ff434e46cfb33321b1373cf22b046f83974a6b056a40420b7eb3d5df312e9d39e68c6bb4efa24e2bd2979df6d68f348fdb5f16d9e7732e9f2fb937607becc6fcffd0c56fdf9a29f0a68ab50262f2972630ec219df994452ce0616c0daadd17f5cd21d8447ae852c7633a07167cc9507d22f07005e619d10279cdbfa8b1f017ad621e20a98e9eaf53e0283d018e1d4235b61bc3f6728de560e8948463d22c983fbd490bb9191f6d697f685947eec5c6adf5ed9685291afc866d0345cd2e4eac91325498e04f5c13a772a22c56b204c725c2c64546916e52e2d038f08c926f48cc0b226efae4a931cd8597ec1e20d67c4ff4acf56e46d9fc7a392eed5794578c5ce05d0677796995611b0617a45b7c405295492702ba995e8bb7957ec347c4d7cd59e5a137f7271d481e9282abac06c678156096a244ca95cba0c51d2b49261fc52be87aaef1d4fbfc45e6bcb9a9f6ab1cce84b60d4d4ecf8bf473b8d1e13137c3cbccbea125ff29e0e43d0462d46cfe0ed22ecb0cc41607c66dbb191d4590bb0c5e98e3538c09296f55fe0a4ab710e1ca9f73bcb2b8752bade3122da9158b421ff3ce48370561dda6d1e93d802d7a5499603b530b90d1122392cb8388cfdb1be1aca82c8697e99ddfe4dd3107c5218cc70df133c89de94582ec744d9a0dbff78bdc196463782bd71c8e7d08c614b8b1359767111b047c2bcbd6a08e0c03247b22bdc289eae154ede78a9d31f3fcafa2cc5cbb702bdd1cc2c904dd1a9c4cae38e293738faea32b132b01fc468d3de6f8febb61a29cd6868c416440a0dccec9eeb70ad208b6925be2d2c4462d6225fb095691840456508861cc0ae2994ddbbcf7d0ee97d18585ca28aa3657987c0c58a19b04409164b2e1c8158e0c565c8e57bc09e5f8fa77b3be885061110d63452fd264e8c9348951d5206e0a5cf2bae7f895789091371f8905b1c99e28f72acd09aef12065b162c866ec997cd0361c3fb9e7f312f7dcd1ff731681dbeb13977b66ca0dad4430455b75158c226e45869e07757b778699f1776998a23917cf404a787027084e1da9a25d17f4014a2a6dabf0ac68c0262389c78129539e2f76ec4b7f313a274ab8085eeec44f68b62f28b15e35573603cc7e66a2ed23142418a6ceba3b5a43d85176cd617943bb0f7da98cbe198733e246735872863fd9c940c6f5ab49d68a37b662b56901c15b4e76dfec3991ed38546d743144255946227c3e2503c95e71f590759b181bcd394dadaf42386825d431176ad1fc9407664a18b9de822e8d88adc61e6d65b0699bda1468e76a6cdbfbe49b08f437d2a6071d60486a2138d18714fb15b99a859a1558428eec850c14deb106c986ec8d96055446195d2e1a5fa65d83849e5ffa1d552e10de34b4fbecc97dc7db92fece2c075b5187e2080a775d4142e4e1406059ddb90914f31ffc0de6d976284e735c8584ecf8506232e45970079bff3d1b0d3f5c5bd1253cd19a5a329a325d8b2bd0e8979068811a25f27c1eb8fba1f84da2c3794acb8c322168c61bc4f131ff6dff62a89ee308a79ae7bde2978c9da0f49847b2b2788c7ce206e153bb788671441accecb71c0473ae9f052f1450e4150763ac3428eacdeb52d866c1fc0fb03ad9d1d457b634c4650b477fa05a6993ad00d5a2541917bb2af325e947258290c5421e12d9eeb4fe52606e4cb43a1e652a3a8c631cdffda3885ef2e2066c14d2f36b38039d514e6e76c94d794d027e6958b8300873c38025dddc709ba81c119c94cc38097c88748300b5be026a6fe34bcc96cd0ff08ab0222cc0d3143f32c20d7457e2f5154dca14ce8db1044917b8dce1416ad7dc40f783085197151daa696b4e7235b56e61bb5758254c9b19e80d5269a2ac06c4ba547186de1bd9a80118edfce2b80c92bda91dd197fe5bbadce3fe3453fdd1306b284a428eace8876b37002de50ee601ee7dfa15a11f217bed78723e8aa242a59dcd0aa087fae57292cb5ea2c1b10322177e496637453cc055c1122040fbea0db5af3dcc0326e6ef8cfe9e8570b8e089547c9e1feddc1d625efae7f0df9fa4e5162eefd6a09c4e4cdc6148bb37565883f4a68de72fd17094ede155f2b0d10da8dfeeb57b7847058d911a841de38cced2484028fb358ad0fe29890e2c16a51f4afba48b99b4c67f519061da5f212057843678bc777c354ae612a6ca87a21784db756e044a10b6f07caa93799f049374a5464e91acc2784bf38cc595471f164d211f0623a11be102aa9c69d9fd898b7a47a0317ecd6964401e8d802a70b95a8184278d159c56db9d9af265a0d1ea734778603f299238b3d3f352a207fff1db7badd9d60f5963108dccb7926e712065fa7c79cef81ce86a531fead86f2be6261d034b35db5c2ccc8f9782074bc14cc9946d65c4def571ac320f444d4d5330fdf973312ef476666cab53b1c9668ba732c47b49e750bb6063f6152e943742fd77c94703c10f0884cd1f20f1e48ba5825b67247c692a05070962d9ca8fa269b8baec39fd88b4d0d700e877fe489be2eb7dd5e0f9ad2c2a0123d320b92e9aee66674665ed2cbfb10a900d658e369179d0727b4b2d968c65ad1b4c7c08cc840b30929daabeac2f2b03ed23c3511b5eaec202e32cb9dcc0a6a6711c21b4c22b31e2e91537ebbd645bd59133aa188cc83c54aba0a8859c2b93e4a9d5aa206a7d019eb9c3497567874e222c571ce4fc803bad7bb5f5b24edda4028f3973b60aa02f0c1b67993e771903b810d271e7087f79a4e1003d135289a8619903b8c92d39b3c9956ca4724cad30f8c651bbb254b6e9df23cf9632a466f4d068323a2cf508772da6a03cb09146b449083124a5cbf268c42446617143cd37453b844292a9b9e5358ca5b8ce1b8a324e832dda8149ae2894ad87409d761409c5d18d60bcaa2011065a9f2d88c9c3e0384dfe7b3493044c6202a51b04afff81da6085afd03101199ba092438a3f4e08471b7e9871211b39dd24f6e79a030c0bd9b10de419231af7c32c9dbd2183a8ab45b65c1b262873d9606d6c179db5b28a3c87f96bcc08e1786c4b010b0a11000075e91029349b6989a57b9ede428830c68b0f175f49d806d33bf06feabd95f7fe0bd1062148f9196db454ff5d98a48990d4ac9506d52383bbba116fc55721712ab5acd20e87290d66de601cdb18432e76a097c1e772dee2554d270fa57eea68bdd6a686ef646063462e38fa7315e9114f8e843eada6bc7dc1dc30a28c25aa533256df760770d598364af65306180fe4722a022bd2102b41bd0f6eddc9b9a60f7ce214d58f8b74db0f74b3831c58a6a8af92742142300cc237c7a322b5b08097481eb9a9a7bd86b8ec647950dde7aff7728d91b69071a59215fdbecde8eef45bb41617e729b3a64ece51bb6010a8da91ac2db9bd21685e487e72634b592f3f302a54bab09255716478e8888319b05bf1499a0ada5bd2259da8c814b871dec0c3ab3d91974ba82daa2a3130559f096a79b9775c54b1f60f2023ef465af0cdf13fe556a7e2949cc40517c095c46edbd3dc00d44fbe3c3241c0755e190e2cb39117190f558d4307d052ad9c6a6c59cf9bb96c86a5e2631b02a15ffe7a32ee328f3a4c4c5476fd8a5374fa75d36043a2172408589b83de4fc541f232174e09c19b136cca0bd7980ffeef68604702105dc6b296d37eda3432bb156a21c97a250ac2bd9b1b749c702a00b6fe6853f48ea24c6c4ea948b4cec284162b89d897d263ffffc0a7864c018f92d9466c12103824cc4bd20416c09de762732882837887d988520b3b00d8bc0cba768e7196f541fa8c5ad0ca4137da672cfc1e212196d617898eaa9edb50e69e8dc831835b7f177b9cc87e80f5fc76dc3802ea97f7cdaeb12bcb129782ddbce05fe14d3886543e5df3e0d4b3a635e2790bce324e9bf54efc33d037e4c26b764e4fa55f100abf56819bbfe86807ac31c7f880c3b9c9c38b46a81712aa7eb6016ac14bf4ae3fde6540d3f91d244a8cad794ca37ef808b08f723e5cb1f54e1101729a8c8dc0756720c5590f21103dfe325530ce0bea20249eed1342ff97ac4f2790441da58f6234e97d16c8c9629cb5ddcb861dbc78b98c03ba3a15717d129c60e41d4aac8d5b0774efd57b9ab00124f5211a2c638a41aea5addc0d5b90b0cf83acfc2024d08ac01fa24835b0108f61658c20dddd5ceb4af0d1698c727b6214fbe735294c97d6992a700d0e3df6f7ac07d22445f5e9f7634bbdc3e337764f9703ed8acda9e6bfc7ca2c57944a77600e890b951a98010724fdd713fd70a91ba87eab31d60ab4688a360e7d643babeb441048a87612cf7db673fc57d5ce417442c63f66b7a0614555603b22c561cc7811ee5df1ba1442a236ee705485be8334dd6ee810ac37676fcc2eecc786a5ff8e9005ecde3793bfa2eb211180d06a6dd0564832de981afa0f2efef2e2a6ea67eabc1ca3ba29aac5ad43e92fe897be5ab044cbd64a68281f442701119c09e6445e35c77ee17fa5f02a93613afcff7e29209fa94ddeef3311ac771c001338a008ca23fdcfbafc2258fd30edcf225896eeb319c6de95956046b584ae487b9e5c19592150bc0d29644f3641dc9b3600f3df593f4967941dec25e6700544ba61e1dfaba016e65e769dce221286095caebf3b5b583c96f7d1903dbb7d8a21dd63ce0ec00471d0f24dbb7e2b08629d94d977c84bf1b972cacf1112ae270ddde29fc1abe2536a5e46ae5743f592c77e92a251572b29f368ba95949a08eb272a9214a3b204090701c312a5282f29f7731200f5d15b860d785b9d0daf2edd7b3320703f34b1fcf1c41ac173d9a98c6b92d3911a2d4d679ac62a486f677b7cd46f89417a6688a5e652282d480426b066d72412113f7ec585109191bb5e58a829011fcc335fe44f9e08a40b4ed05b343d491f598efdffb684b1f83c77668391b1737026e6cc4cbc0f03f4e51e7286c40d6a1afc6608e602ad4a4d1d08930c8c91571a1f8b7e974372b513e369ed0a23d0d10527d680055375463a59e9ab4bfcf1c9f93791a51ef9f7705b881bb654228a13339a2a3f76e60721fcd01f0bd6578596e7d45545243386709fb245836cbc1bec63ac9feb9adb4c7d60eb06ec457ab0a3e8631d0678de4dc6bf6026e7c9743881aefc28fa50f23802a61e1f57fe906d7b02629f3cdfbc7cbd74d3dc7296b66a1688adf8d4148e0b60af47d9464d57897102de40796f8e2f6d8263b21bb33b14cbfd5fd8ed7a85b96ae57a95df785f1b689e23f9c7ae9cbc52ed8480fb0bef6160256a920d28444ad95868de316a2a94e08684a1246ee9b8104b7f488b88371d550387ceab86ce36e44c08d2b7465a5a7fd7ee765063ad38d88b3f96292dacdec455da8ffb9ef34ebcf201c4f7ac65abcae0816b1673b4974da778194c35854ae274faf25003894d512eb690acee7a6c0ab0bd81e5392a7236873115c8a0a6b3903d68490e10812c22d3fa7533c1138a3e2122c4405ae8c2dd112425439269b09c8b6c94529ac2181eef5a34e024e4c0403d200a514e7c85482b21e886e8dce28b4d153440e89a626d8a0430a5111be64c58f2d3a525d8002eb9bafebe529b45c8771005a1c1540be03c43d7791998eb390a3c411feaf24c7214a3c53d3829226c9726f58941238ac498ad08696e3eb9f45a523b5cc94c27a372632333d3d92e03b5c606a6520ec8e3b9383ea900fad019d49198aabbcc3770b9d26704daf7985b370383817bf6e7156df6be3d273f110e76040f65f89758124be920cd7025cc7ebd16ae46ab54715c057fdf61db84dbeaa0ccca88cedc723340a040cadf7c2e1aaecbf5036cc96ce10a0411630955ce682bd488f3f1d4d78ad3b82f5242ce1afbdcaace54ec1228bf0d71497edcc66b8de4cf49879d96efa6c0540c6a3337658d026b674c3d06f8a154883879e3bd7cf33106f5e522b2a732ded87f9ebdda264ac552425db5a9301f857ca73b328d0d6185bd13a9a65a1d22608e8e0ca421a4257dc128bd3bf11ddbecdc367cdfe2c779975870be541c3c4673cae2534cc11af25eb340c66792bbd0d29fb97dea6d1d3d54fa3e67e08e839b84d88619246f8159f60ec87468a39a001a8391790c639b3ad679b67fb6376bb19f6dc8c99894cbf339a2d226f7b0eac69a66e5036c582eea3397fea0245b0f79a68a65fea9eac1046cd909b954521ee4bf848ba15d1e834eb4d42b36cd66849a1ecfd1135e23c6016675e10135e8a7f9bba80ed6093316664054de77be4382dd40d837042c29155ea23e555e7515d4dd540d8ed2de6991d433cf6e1b5e959c36c808e91fc089761fd83e6a022e2e541fab6a56a3a419409bf8d28b19395c7d126620ba65cda5e940b2852b0fa340711569f9f959e5e947241a686bc464379d240e3fd4a20700b31b409f2bbdb6eb381cdc6231a11b499b1be376544d5f718c075aea3915bfc631377efda79fa2ab32d81c812818ec0a37fe9971790f5d30e07006f88bb2e2dcdd705efd050ac7b5f1f8610b8c159608e313260208fe12d228be9cb3de3b22077a83e0866a28fc36cbaf874694f3d62e88c8ab9be0ca502923ef86f7745c57f7b181f596f30cf71ea3a020c0b18a7c165d26009b757c26a902a3007555ec02875c4bc5ea841e9b27967a4684cf874288e5495ee189150dca92beaa2804d0f2b461163adda8366ae4a35dc4b1ee943347dd9dd05aa087a1b468b8118341ff52880fc0d9db028ab262e51a0e18d84ff34952197e62069c90706b8e88d8576c55efdf22f395780f3ef11d52dd9a05da9a5b0cc677da4e4d5d09acbfa3922e479dbd8f6b279b1db3fec43ffdc09b4b8e27b98fe0cb70dc6a42424e3ec3f6cf7a4754d74aaf94475417d42ac1077058748c046649e6687d133d33ae1648752249fd4f9937c520ec4c117f37c63907c526e1fcc500fe4da2522eb80f23a12743ab0325d2e4007309d4b0bcdc1d4e4ca41db7249e238c055c382f03c992592d50b14b852932430e4cf431729eaf21fca2f6a64a1a6e72b6ec033e5f9862c2a10ecd1609940214c6485913ec8798817517149a1c51a0d475fb9b172a8d10c6c417a27e060f5a94259041b6368a65433354a51b0d3d1a161419f0e648d7188ce98794500995af04befb8288b5bd80f7203f41f2ca57df2fc9791ad8174dbceb260623c5da95a77be38d993955d256ddea2bb5695715b48df5d0b6357161f925da9ea80318bd9952bae8af65d7dd3371639d0c5fca156bea7d0ee824bba62fe12eebab36c3dbb00ee2a627288e8cc35f3816f5f3b7b29e013dbce96a70a4edbd91bf18c2d98d2989aa3e3174eb47f5358a72d8fa3bfd2eb4f583a2a72def61330ee94706c5c7e950c61214861428c927d18ec717a02b6d225dfd82642ed6936a7ea1118285d014b95f434abdc0cf3ebe4b7a8d3f246a8ad4272a72d382129d7634b25521ed1e8c5a9544825f949572b3b513b11b936328011adb5178dcc6727982172e52708b3e543e06cbfaf90e142213c4c7e0cf5124aa812f330b9d7d3400119609db4a0454f7ad26e91373fb848ec553064621a94505246d9f448b91960575fa5ef860c6cc13215f604639dc4a9a16f42a27c9da6a5dc6baf2e3e3f08c221e13b9c448c81578417fdec4a812fa9272a1efac9e257c3d7e24c0468ed34acb0116b0136c0a9c2a1fd7292150fe1711ee023f6bc89411d556236872f2950297c040c33e8067b24a0b57c0ba5dec97b15605d83555e9f03145c78b8d059ba4f9dab028c1d9fbc9f0c38d9db8483b1cc82e7201a567e64fff3c735d9f065cb07bb4771c2580705b22e6907822deefb086a66014c15956858cd9267fdc274b05140156fedc528417930e886a169e03e4273f1c059ef17660a46310021109f32e94e5cc4eca456b686f2cdcd0ba0ba7e5f3ade7c7ce31c56bfb54d95a0c599c1d2154f565ca121c31f4b94486d00786f370e9682cf477a69f93aa574f53c03eed518087184e5e863e1ad347a6350bf18b37e2e1cf4262add67e8765b213224665a10f07a85409d7373e052156a3ef91a661db7c6fdb483c5c47b692bc89a63d52dad24c0139c4cd6051d1f11115a6e80f1a2915f649ed3095675c438a58f28f8c8650c6451d600d60f6188632c84269046e04084a4210941d5e8ef9f7105bf7d2a2a56b90c2802eff12a30b834bf3ff4001cfbee4074874253e2599c96260c21e4076bdf2a7555813283b3f4f36a5a3c77e86f6238735fa6fb425f44ad8d76e373b4b7f24bc6cd023f29aa389431a19c37f436534337294b6180b84fb7665d762135702b99194538b3e4b6ad44650cdf8d472102c445a26f5bb7ae5750f2bc61d0228ec43606c8138937ac6ee3415143e2fb55bc8475dd06d4ed6583b92f211b0294352aab602e7b663ee42ad3ad16a6dd3ef886b73213cb09c8e99a834104e5690b6f879492464d49a76d4fab5432d2da32a777fbc82e65f508bfff8a145a23df5f440e850f8ff25bacfa899dfd3b0a1f7240fc9863ef36f00181e873612757e9fcee50e68ddf2e2db5de2e0bf25271c561ed3ec412ca3501cadfcff089d646b1944a926e6b62838e3c4593c70c6a29c8393930f1f8b98096effc2c7b03231d0f5e4b9a337665fc0a69fefdf963d9be010670a19bf4e316caf5a7d13c3325a2ed500b939bcd28e1d0e191046f25424b43ce407d5c76acc2a9c9a57173931fa361a374d386da585613482063aa074ada62b1965760d18e7076e5fa7bbe2bc8fff89582f655ef6652732877e33a5ab4544d96d121ae24ed3f0f6f5ce93e5c2f948e4734401655e6fe19f41d7072b23a67b949a45a0ce8f6a858f6633fe1cc8ed98667829338d4faef5db53e4ceb2f796f8e10308b9f158394474e55546bbeff4dc85e36c6705849f548b3c639836bf3435c29965c4711ed714c892325f43627b09e6b35f6e49e759ef3363b970034c21fe0ac9b4c642fa79fe17f6ebe1078f395cbd0be554d97b2e69ad0e71d9a7338c556a5619ee2d69a4aec17b04c94974cd5c608d27620d41eb165973a4c16620bab13046ebdc89877311868a5682129cad57f9526de9dbe1a1f01652d57cff6c935fd6c56931f78b880f046ed1b13e252c00fd8968788c693918f36cf436dc75ea39d41a6b8c79b27954501424c7589e6e45466428f644b7dff3afdcee5b29042b7b4241e4e090fa32d357422741d18f0546b9a8a493c4162e4f64448e58159ee44bcc58f4a5220350aa28b0270c1775cc66a690a4986f09e437f636d8dfe47db729a64a4a7fe8a22cd5b7c242bbe7d1b45447921dc51070c006af53632384bafa55b9484466274cfaaa6f7549629c8b84c9990768852a4442c633d91fd8b0a489d27722a491cdb893f11fc0642f4fe1d18aafcdc5dea9ce22e2af8248340ca45d761e589ab66cc46e0e060eec36481f2c3c2914ec87ddc269d98c1c71f3337302904c89cdeae65a010396143d6b6903c6a016acf3cf2571b5f787ad9e40639c1d46ad2bfd26203b2c33e206f2aa2d2a22101eabe6275d3ec1e61fa2a036e65997e6d606d218d8ef918a39b0c378ae8b0e89645bf232289db1a70804f111188aa37610c78c1116227815b7e5ee4f5cce95a01e714354f39ffc343e0073c116c4220e4fe547a3a4f5f5f491403da26e3f84a7cd16537d257593ad5a2832f3a33bf4469d26cbc66aadae8d275f0e964fb83d70d356195cdfd185b7742e095f6be7f6510ea8b3c61307010ad6196169741c542ff5121105dd768f2457d8c0ee164d941962ab3152182b70fb1a2d8f33f486341aa76ff986c58b6885a40a8b0638a7d781671299edc90c1626a130a53596b0f14d818e3bbb4b4249f4acd48f2b5c33f900ce6dce1f7e8cea4e68b4cfedcf671fa319aae89e33eb5bd63beb60a5a334276a7886e3ed09c145517085455817a216fab6989bd067b004d66935278ba5322901f5077f7f2884d4241333cb3a3d7232a9a817f2d5995ada51ceed528d16c0c99f44b12b0155dfaffb7d2c25c601126cd9327a91124788e96678c7e7d368d255bdfa971d8a742ad5f373714e0f87eb3d0e4c244d384f805e4a483f184fdeb824465d9feddd7cf928458d3e1a767140bc9603dd3e7dfd9b09d1cdb9261c2b54cc9cf498284b29c41d6b95a95e5d643f2702b2ca82bce781d754d1da5a3d325e04e274fcd6e8eeb9bc4b4e4ad0df37b3cf02a7bb1308aaacc61a569ccbe93c035201348519bbf3c8d20fd87eda8a0e69ff398b84dc6295be2b1f816bdaf2df438c6f5640f37456710e46c03a56c973c5249ac28f94247f83129d36be0e7339c52244f80102b7d629db4e3e8bde497cf71e0e48a9998e438e09a09cc1b2dfca6ed51d3d12534faef68f9eb1d03464cd4efce951642013c1cc063ec529df152558e436d28339d7581e8d19a0ddcebf14f661512b8983b7bc9c92c7e4760eb377a600b799289263537741a51ee0768a3a849470968891a29758dfba02c394d75c3cfa71fd3373fcc49811de4336410578f50de1b8a66fc7031f33c4e4636f710e1dcbe540a801add2f7d516f3e71b39edf4acff322ca9513a17019f92e88b4ee8d201c022bd1755a8e9f51c4154e07d9f31c332afc30feba22889a0235432104e0916475e93a2f72bdd9ec970780c055a1e69714b4f63a06e43b6aefc2b87b5e9b283ca8f72770ee1d42d1322c1c0adb437fdb8d0fdbe24ac17141477dc3de355800617188c9f23b1b501e567cc213757a32cde66a24c714bd527cb1858c51e5e6174a0e53515f0348e4c77933ea4076fa7e531620b8a9e8795794abbd5c8b4bf2cc03176da8de9a8928048c6f0d021c28fb62e0307439af8800f877f18cb8f44baa9d4ec4dfe3fb45cdf04f2d0368b52a76edf54186de6bb4231f7ef79bb75ca689ddcbb951ab4dc5e86891f3e448a9a9f376453e2d2b99bb07214ee6164a79a8c93122310e5414e9d51a6d73160af806313cc110f2ee72f4e892561a11fc87773a499625d8087b3212695c53e55827c5faf42fcc64fdf6172dd1edb5d0620d56d0f05a26606d92bee607c254c132e6acd2b748cfff414810a321722df0927c041e6cdfaa95659080d6d0407ba0ae7f434961d22cbb70e68b610c2def119b79f884c94e54663f0bf4d7f26278863f08076f7cd9df069d479fc43b8633608b819b58f0099ce11d666890db0c031cefbecc941912f50d485d99592ccc26d67b22ecdaae30f9f3f8569b75ad24101ab284bca2bdfa236d59e54302044c828563338b2c6bf009d680aece20ad06ff8dd49e0a0ce59b48af8e29f29da3b3e4157572223dcf3d2476b20066e39d2077de5f3c02199735bbf930d1076c27a8ed42b77ea0c0181e81f767d03aa7f706af64fca958b5fbecaad80836ef1a42e22ce714eb9321726cb394883b51291061274e6e937eba55593162661e216b9c6ac5387863ee3f2b6f8f7094d31b5ce2e8a10bc5869976b6097136a03431264b92417878a37527b44bcc6a07e4ce62b776bd9669d888af4255acbcdc5e0a97c50d5da539f0adb9def4825179372c88af606c8fda91dd973dfc2d18eeff52465440174781b1e79803cd0a97c5ca3e31021dd0689a0b810a949211beed22374e627db2b308a4a6bc7b6d347c2a1980726965ccee6659dd2306625b1d2134d88927241533e51c3f19f95e52da640e7fe311f1403f5bd87c14293c46f9449a723109cdd1d8be2a9035869e68c824bb38f3d35ea6aea95c570fdcfdcf1d9bcd124a0c4b6258945d60b1c62d7b7c80fb38c00d3a45134b178d2f4a4449ff35430354f14cbe57c6363d6d7b7f1693e15df556fd71bdf39ff22793c577942097ae2e89ce65027cf4bdc95453718671baf2a98c8afd83389c9a7089cac5a55984b8463ae484fb2c3fe5b2677eca3813fa29ea9242d4fa298b14693862e4f3f5305522e9613b104813b4fccc122839c7e78b9ec204cfa53c3189f816a8c46ec6cde746c8f35895bea007e5693a0dbfa1283e30c2c19b0ae666d547a04c1a5f1ddcf330abcc6e6b0d7aafb985faf409489e9a078477f3582fc84bb78e64bdcdc76e29a4fe5f287737ab6f25e74e94da57863c486e523a4fd39a94afe60701432cd6c63be0f8fed2893d5fea86bf9a8962f150fd009133c421d4b37ec9f8d9bb4b0392d576da0631379626d0e3d02a737d59af4305e77388c0ae3f8a00f1c7ea9730da587f0c883ca338ae69b01651e0f398769b55f052b6f1d9d6816f8b803e3ff32ed6cb2a3f4896d07b09e86bc3692b0d01959f062271c959c572356c632777e483f6781d48ef45db2eb2abc22f557d801739f049fa00fdc6c25fa2871ba58816fba63b6ad2be3bf3582c0e66cc2e926c5250159b96199e70b3afb284da7d7f764fccd2f847eec4e8d491aba0d1a2646cb8d2e6046b37b36a59034e49fb1db4218241513ed83e02914febdb47f8a5cac1d6ecfa4b55d3bbec384473e29a38f553d850559606d229d8a3927fae925bc108600e4d9dcd60607a0153c6d3126e6551a7f6d37d17d58b821b2c9efeaf20432ea663f031441687141ce097f3bb3afe689e87a1462de4a95c997a995935afd1834d9852b55ef69536e42d5b688d7cfb11bd5b4f1efef8931dc5f1a4cc888e95b535a4361677a8ef4508607600546e774a10f21b11fd71a52e59cba85a7f80f9fcc940b36f778dde363536bbce1b8c7ad9f8593b45db729db29a55aaf5f6421155446bcd0f2a047d38c6e9669535c664e97447ba8d2b6ec300b2b3a13925491ad8c4450dd7c06dc39acffdc2b579a8d3cc8726a5b7e688598e208a8c1ab95aa13504191c845fe7880818013ec9b66f5e38695607c27bcd84d50a2a1fff55f76652710c49c5ffc5b4da7a3c6ee19cf0225706aad20ec5a41dc5a7738393dab6b18045fc584e8dfb67cee2f33f72b090cef49b8eb22c4757ef61a8d998014f23ffb35b80843841e12becba9dd51b2b758951c95d2d2bd631069256841532fcfdb9196467dae6bd8dd95024aab4112d903866930d20dd110c1214a1a33f5d9c8ad4ba99f20296e3bd6d2388867010da4dc7f00dfbca5113e6c4181181b34da4b3855c3c23ec97833b1645e5ec0012dd2a042237199abb048b272f2a32eb82f3c4bc6c76e3aee80f2dd6601d5d7960354ae88bcb6027308547a8e62bd039948e110bb72003fee31964ec4b3a29771b971ada94103a3c0a7ae2219d15d74cce22a99a23a36531aba9209341aabc0634c51f72cc76907b174b72d0928e0dd8984af85969638d45e5a17768b997b55491b0dc718ee1eedc1242c311c873c1c257ce5019484fad975c6dab667a9f8c5bf26c1f5583897ff71dafeee95941accd594ded71eabe9d7593dc0ac5240f47a29267b04d92736a396c45d1d66cb2b1461deacbb9022c99380285fe0ca01687e482d466013e3e78ca3211367720bebb25e55b02daad980080121bcc000e5714e0ff95d888c142e9ccc260cb415af2013a5537d16688c034199c064847723a1247a9dbf08d03cdc3f387d9aa57b92bf76085292b29ab47522bce5d74b5ed22ac63e3ab45deae35255a6aad0d8198d95af4f6a151b69dbd179692dec02c6314e8fb01420ab84529c30435f9c7639675795204df46cc78050bdc4b8469d673c73b4ecbb576c4c6a33667ddb43e12be81d6111e290e928685366f5c734e8661263fa59392d2d3adf28b79be6386f21fe125a60d284c08c229e8bfb93a740e6440ae300a539bccf69a8c1ff370520ea9cf5685097f8193f4838cd8bd00d7c9fc9f1b65db06418a4201e389d02f6c3aedf1f4b97dc7eb20c300c5fde6314d925a50709258ac1ea3d1ceaab3c26cf6f1260ad3a00b4d0b146b2ac79576571502bc9b48549c87320f6859e37cfb6b77f17c66c00e7f2239754cd9adc09a894e21de684129a162071d24486b6ca8448619ed7a98cc9afee39509d64a5c8317a80634c17cfa05e6e96f9b22c4d5632c04183192eab06fceb89fe1da2333830cca3f16707878784686f33dab6e35b2dfd029fc2f1be3b9c491d2178f6c12b036a3c530e3bf0990a7224d6a811c3c7b4ec645884038c98eef1000b530251ac98509db6330e6c10f54f76380ef3735921d3b5304cf233a337bf6dcc6260c2c10d86072a71c32154a700f540686b233c0a40f606382877f3aa93b9b2f854d53563611d6f812e8db73659e9ff0d0d963806f81a2aaaa680f94688b3b5d1260193b2eb65c4dcc5ecb71bc2b3ad5006d12271af9be31e82374609b052b0edd45b26f0398ba4e7b2a0a8d58f41bb60e66095841a29cf05d51b1efe538775f7c85ad986527724515b3470b48fc0f2e4501a2ae818112f1f95667b11af76993c3cf3f46ddd5ce7eb55f203cbd0c4d2bd0718711ebdb4c01c58e5464ee727d3d7fa68ad2d054973f3072b4c10ad20c48d418152851d18f72084ef08d78a815dad00ae2d899d67bf47a2fe13a91812177d1927b035090e3c4a255c51f354a2760c62d75f8dfee2c30ade974a666ddbcbfb19004f62f7fd9db531825594f1d146334154c288b0b727ae9e09fc870e39503e4c1f3d467c163a8911c77291f8b683e236e690506c36e78d0b8291dbaefc3a276f99ed2fb381bb7e7ad727cdc2cc09469dace35560a3cdb4d2c1c6b4e733bb29815fb8803e2358e16764ee29c3063c9c20ffcc09a0b6c86624e637ea37297634625a1e5a80f89eb38011cb6e0dd1cb7f48fb3fad961985317e63b48865baa995b34aa5bba048b14d1ca17171a808548e3d95abb5be045032d9cc6fcafbb25219fb7fcaaabdde36e09d9b466cd1d504ac42d20578e17fe4e18c52578a293989acdc3be9471e174d7d9891971592a09d74b9fb3929c566fe2562a4774798e31970814f322c5c93f12620602b915eb0a82c0129bb24af714b726b622610662a4c4119045f93e44d1d52a80035436cf3ee2abb80893312388cb32e5a3393d85b8cc222392872963aafcb52700195636b21fd241b01b74f36520f65896a0d9d90e336c78716333fe549216e247cf1211c6e587b035960afb5c5183d0fc8386bc0102440384a906e8349f7427ceed349ac50685528c0a6a60a687bb6a43c07d06ac7a34985d09f953d631ba174e618b44c9b4c083c8de6bf005429480992d89d25563acaf2ace166fab820e49d69d3ba424cb03380a131c99befc1685c05ea81df824b161437817046a118692f2fe2ec728931feb2207b0141d593b68ca2457a0bbac3d66df674802c87742432d7a647392dd75288afc53f00fae0db1ab76ab4bb066a8472f147fb306646669e357488dff33fee47ff361388398e5665b71e9d6e3d4cd2d8971e453a2bb71852e25ba95becc65bfe444f2f70158fe1a30679603944a2e956ac677990f5d180b8d035ea08ed041a6053ccb8e38ef72832c0636c842c9524195cca072cba62363f3eb28622fb5a77a1518d21607a6c0f366608d610395f8d5b21c568a226d866a4f9ebc019c4046d825cddaadc9ee06db65146518c0a5415556cc70e3d8e08926151f8978fedd8794b630509c7cc26e96921bad549a1638527d3147bdf9a904118e5785228656787162cb15992769ee6d3ed2a3801aec40dcf81ae785a0057c9b6af21ac659e60992dbcfdaa82c42643813bf93883ebb31841ec64aecf3f652ccc44ab8398eaf61dda14a6f2b5a118812966ffae240d188cf9907f90af59fef72d1b73fb77b01c6e0e7eb7a60eb32ca11b83791cc7196cbe1bf4d55c05b1b49ba8e9dd0fc34dc68baafc81f1c9aeb70876e1bd736dea6f9fbd9703a9b6025d419c6e73791c1d23d271ed549dc7dd026306c2a71ff416ece44dcd81a1f005ab48a32ad1d72c5d103978316f6100652b33908fa51b967c30653f43787fa89d42518c9a39b8f0899a49d94fdb11df30fad6004f7687bda8aea0bbe6bf82d3506f76b4a608895d1834444f9ee7aaa6454f3f8325530daf3434be2770f6f732c03886699c58e5776fd103fddf2297e7905024d3551c73b55809ef3e798aaf5a097f5e32ae8be6e235d12f8f0ca37c6d11bf10f53602b771c035b7c075851819e644325c028166a15a7620154abbd974f0bf9c528cef311b1a29dcf89488b91f2369897c2758b7ba6c724aab91dc956ecbb6b9fa85e839fa6ee2184970dac26ba5e66ac5c0b546dbc76c9ecb31c4d75231a8b48fa5c8111f01aebc101350efb58c74212583ad09affeb641a9c1a66c26bda7fdc5cf7286100f0d8f7fbcfbe016e7823d5b611b0c559ce5a8e46f133956745badac6b1fa8e78ea502f01e7d5e801fa738ecb7828a0332be57a7c8218d92f536d00c7e9d47363fa95f5b81940611661787d2eda672d142e2c51a60e2146ff2d7257bb159b5bf66009ec9e3aa25446883624a316c244be8f9c6754c2ae953b987ed7f15b9c84d6e0d97d5db43633671edc74c8155fb1d3f50079cf40ba664a2fc73e095c2cec793eb87c504622362465b163e804fc6fff12622ba19bbf864f078c3b7e48591b1793b1df41a1a83dc64d119e960bac2283c66b76b27022d6b075daac61eb9010038db33dc375aba0f1e387412d9f1ae3c58233ad3048ee7c6cb9e793d26f59523da8e93191f2566fc6fcc9d04f7d71c13b5dce1f2ee42c00b7ed3dea6f8d246a5a8c1c395ffcd7bfcd59971b068c4eb5f70516bc7fe304997ef0a6a23420622a9764a0183d7e8edbcab34cb2d2e331aca97f7f97927e97a1f04547cb5a8e450abddbe660240588cb2dcc440de59610af8e6038221cfdfcbc4d3d562e14d43a894221a5c6c6419f503b3c010fda10e22d4f264fb8e3f7ebfcdd4b2700000295b941b4c7931bc21896203ac8caf9becbc99b294eb35641481ce8650cfa9896eb72e62090179cc5a7ab0621b4a3ae84769ae18143c1b8ba4bc2311a43e00f2233b8bdd5241ed43efe76dd34b04e9777002f57d9f1d858f6b02c5da5c07b9eaee692f8170222f0445b9426b90f7adeec86c9122c002812951c6b521ae7550d5e23df345c84a646e68af4f7f23da2b271e35d0a36b355c871be19d54548aab059c392c9e8506c5f5bc1a20d004039af274a78a4689c86f7bd0cf44680810640c7f07fc1b74b6c0ccda45d25eab5fe604d8e889735b740f0d3834bd4988eed4b700846455f00483116b6f69d08b3d88fc59b1f1e7bdb765ab1f239188facf6a822509462fac67bc4a789a5d24b874be015df410dd915a1e4f7fbea7da4c6af59304844d2a21a8a9b45d2149e066c8552eb23c626e11027701169fdecb8eaa993e7a69b27f889973725a067c2086d3341b7bdaaff6649a620a6e28340ec3a9a95746f1e886086e3d74209dbe59bb2523c9a5589b27b9393018ce7ee5c7a5dc7b44b4bad59a1058fb84566c909c8a2fa53fed9a0e51122d15dd47e584c1249be07719124d91ae39aa80d7cf4f52215d8eb8b402a4cf7e1ee367e4a5c07ae3008e067e5cfc11745ca2ac3968115db26ab02680fe9369102c8d14f57bdd9a30caf67f568f1e30a0135aa5c95150eac33ac50307428f77b80160371a2bfa5617e218499ad63590d19b454f472c59ba851909f29ae5fd3b4898a93ae68f259bd40b644ab496772f65aac26b07116ebb56efae578998a82850c07055a21b636b8ad0245fc668e308ed159eed7e34b7ca7eb09ee8b05eff8ed8c2a0f50ebf4d52a15de16d8c6434a3c86723379ea95d4860c5ce660923e56e91ea0243b5229e99a8f28697c86d4b89e865339332fef8f9b962945264e9bf8c2ba32e3a152adde4e08ccbd9971d30668d9b0c7a0e2244a98e73f7ae7a9ab5b4091159698ff5f023865217afd75546bdbf92b3bad2fd128bb029e4b6a65f92f6d57ad0c8ee871c64c9d2a6f09e4ccaa80107bdf5e821ec56a687e45fcd471309ff1e245bce99264c4213c0f08c1bd67c8e384fa7696f421cce4bbb60ecf6d3df75a6469db3101762536e0e8a9e267a3119b26582faea2a260adaa48ff715531e63478de1bd28eec415937dd6ff5d5a11209f9905b72086a51dc60dd8479cfef57ac6505500dbf9f2009686c997b8cf67aaab150963ee44ff65aaed9e785132875908691d52d35327118ce7e93ea0d4dfdd0ff4315e10236d669f0708dda13434fc344c3039ee44c67bffc3ced31e8d9ee3a7efd39ec27684485c03433c4b49a50250648864cc6961ecb779a940facdaa88361bc08760ea590a461f68168b4208fb80c72942787a2f7ea57f4e64d2b513dbf0669910e9219deee897f64672d6d4d678c24e9ccea38b0818d76ce8907db83c1ab0b9f51621275676d3263af2f615105984a97058d55b40b2024b57d7c4528f026cd42ff9e666bd9ebe6b148af5611d13cc9e8d0011a3d0b22b85f59ab30e1b6ce39352b3da1f128610fb8abb695ab188655d20ef76633de17440508a6980311bbb299bccabe894e70a27308bda6c45fcd811f36001cd999abecc0766ea025ceb8cb4f454a157e074de432da112e561af7da86121aeb1469b8419f5f9a08d73e8c7bf23f075b55ec95c8e63fbed814e0cc5a4972d1facdbd002ee6ade1de7d09efed8b4e59406ccf836f1c380d91db8a04b595d326920a7fc51c50546d87cfbb0ca1a5b51efc7aced0a8c5a7652a430dd92eb129c79b799acf173d3db159d4797e1dcbe86c6ebbb3738a090bece95d84e5596ec8c9444166c4036b98114c88f55c002b09a04b474c18f09f1e770af45ce168c34dd8588d46eeece55c5a68a0aa32b9d099aec2e708cacd3bcb2904c903f1b9dad066afa73e16e0c803e02cf1e8a6d7abb79914b9a2b99707e4b303cb640e7ff207e3071108b50049b0a1cf3c7565e2b81a47654851b9bb0cca1d72b83e5d28004e2ce9b5eb5e732753db61699dc329e1030f8670fd5d4baf464ff9ffd0e8a53d0c6cfa6c58b7ab867281d7d9b98fc06bed6aaddc1cc1ec2a775dc784611d25b97b111c2ea9ebc22f9cd7753b380f650451d175effb39174680c3ed11f0ed766e607be7069639f4db03664977f53bff7b1e7becb1073bb2dd7e119c38fefe9a3a4ee443d70be04da40a10a6728433394833ee2eee301d86fbcedb063b4c31842836423cfec823f47a5fb289c0c9e786da0860913472c9d21fa197ffe402871f60d18623707ad47f0e383dea087d137ca1f71cce2e7bd4d2a3aba6651301d30d344e2cf8024bced92904330be2fe34b87f8f3f909d1b58067fd02e4fbd7a84fddc8e7951a9bd2bbc4aaa5f2255e639e79c734e9eaed475a5aebba9f9662d75a5234666d7da75a552a9542a957abc238975474d18044b4ea2554d11980ef35a4d1d5edd58d5ac6a5644341419d5b8af533c896838295153d660b1c136d816db80983a57361a702dc24ee10d07ee4c8cf86e54e6ab9916980184122556c04451ab7f03f2d510358210c2922daa8081a5d5bfc1b6d8c6e4bebaa847fa201476896b54e5b6d1111bcc572aa8a0820adbb651153a235f6db5c260461b6c33bdd07dd93443152f13e76e1b6cfb9938bdc1365806c210a3c6900d5684b3c1aa50000236d806db601b6c836db09af26b01330bc97ef02082a5d3b18b53fdeeae0ab060e65017cc9ccdc5dc830588c01a838506ab025ed80c6b8990223341e11d9aac092b3b926141d22d6b59cb641db75199ac64652b372cf8e8e8e8e8e8e8e8e8e8e888dde9f77674747444416e95429b920f496c1cea115aa44fd2f2421b21259f13ae68f994c42adb2769b56036c6b0a41f01c1481610905ba0af8175130dd5e5a94e35614956e52b1aa8a94c9c4ec3920dc404a839d18fa2907ef3e25d2b92e864fc2807767b1e4958d28f9c037bb0a41f5d951f1d1d1dfd3d3adaca4fca4cd0cc0d6ab59a10fbf051f351631fd3c790a54ffa60263e6a7c34754cb75f8db92a7320da61b60c6e3f01b8587f1308b04503b61f7f606908de2dfcaa1696ac3ca4b031f8d7f498c3d66c1cd03df711e8c40820a9499498c2074047f822e6cb17ad243028538421a400c20851a8d48eb8675c9b34ae4d1ad7268d6b5c9b341bf80ad7180b2c2689343343c302488d3671babb67823c2cbcb963ce3a7b8c4196fe34a1e0b2f467af51a3f4c1323eafc8c40913869b851b1852011a989999796401c1139a9387f2989c8d6aad1d8f314a1413188c61b01a58cdcbfa256b645002af98074ef5d3d0944a97ac79d9ed92352fdb97ace179c1264e4dcd8db962aea9a901055355d869e2a18425e22b20549c4655051c7404a082653071fa3798154b4e1a757efa1b92225b584445c408c643090bc3dc626e712eb908c62b96016c1ac1e61a66dcfef6d2234c459a43d4983e19102ce68199ea6f90080c561905c5dddddd1de672577fadd682607b7f281d6b159004cb977c6b3d4f9cd69b1ba55db779a552c9642a954aa652c9542a39b9fc434d0ee8d6cc4f5fcd88b55a4bb3494a25936732994c262f52734ba5ed74f2bc52c9bd54fa8f6d79dd8d4c3f4d30d0cf8623c0e17a897bf4de7337b99bdcfde4a178fab4f438c444ec058c5198da981e3bc8412a2399b6e32ea681b924eb64f24adf4e6450809ccabcf3074bc898e50f97305998d801118630bd20420f57b4408185ac685a71c50b1469082121c62442117600138494303b80d172d7759743711366b081652697544dd3e79548b5db31bacb5da80680139a27de5dcc547f185da302c42ecca2309d43bf8b8a5eb6b5ac86483cc585456368030ca8f2d28701555eff59514934a3d171e2dc225a5454d4455d24f324b4ab105d865077b3a2d8da391c1771104020907c450e0fb8ee9f2c245e7f7d124b44645894cdbe8d7a0e332161908d96b60835a5eeeeb49bfa06f849ba6dac8312aa64034a58eeee466a5d631e615872d6b66b64ea246004b529d460cd3b878600e61621d2230b0c0882e0ac167c153a05b258a41ccca9e279594ec5fab101fd12fa78a75fee1cc7cdfa5c0fb4a458d81662bb33c41caf6609b75197451e9a385c264e16fcc5fd32c41d0f8d61a99499c3463dee50843952a932b814084ac4edf75ae7ea9c8df40e83c11ae6415d4e9d2d73d55d5c1738cc89f01ce631974d9602f47d5f9d41268ec99b4c1c97c14c39900b682ee94d5c3a603f7042e4413f10620d936c081f8cb0740e49adfc408822177c72718150e74c30d79b88e14d5a8adb9ee741bdba51d43965e7f0cc6206aedbf40a9816ba5904e1834b3aed360f535cd2876e3b911779e94ae7cc2c647044b174cecc228820777792c8401307d6e34f4c06a5085a38cb1cbb5663b154aa71fc07416b612932e6bca83f3d49f2a01c28d101a7123495e05706a1377c207403bbb9b9b9d9b6ed74791419f97cb12a0ac2132a31a84111910ed240e28820d4008ca12ddce423232393c964b29293c14c398385f5906d385ba8d0a77b4046500b0746a20b2c8c16eaedca4b0b2556d968eecced6f2726d828dd3a17797a5ae4e5c7bca7ee316cca8b2519c65e3ae7f4a6bf5eed9328c3fce92baf449a71589b8adf0937b064252908b364c3603018ac610d2b6b4d47a9030b6b6d8dadb13535b6c6d64c1c2cac1ad770dc4e1048d7ebbe9aa97322f9e6e31d7dc52d54cd538d32eaf107767aaaf41459a291ac3b02be51ae9b66a08f02c35d37c1802aeaeec6f6b589d62503ebe3a8a3ac4a74c8743c4111c150441ea528229497fe8260eb25290bb845bfa741ff94ee6c61eb256f38ee860873c542330580dba4d7a295804840638cdbdf403437c84cf583b30eaab098974fcc55a582f584ed9e9c25926f678b9074a7e9c7911edbbb0c6464eab4932e2616952a950ac31c396666b8a81663055992854a166a0034b1f3cb0f30dee1c270210d198cb350045b8464836182b9740bcb97bc99dc83038b788a8a8ada555434735a81a7032b3010a21d21b4032f5a2dc86009276040a5ac010ca80d84ec06d3396d30544f9c1f58fe393730b79f6e451c196e4c897bc17cd5fd0479c749e7f816b42161c90db6c144168bb56d3b42b0a6ebb569a3b1376f28e46049d606eb69a7ee12dd63eef217a5dddd759db8b11af495e73053fdee7217ec84060b35eda674db36322c3b083a8f99254147020e5799dbefcd58d4c9f45971360367b3aeb1f415f0a7af3a3a671b5bda8907f8c276208d77584be750ef4bdecd8e58f4571792b64c9c2d368984606960d773bf053157566c2394b82961037133229c2bef3db1ab42aa525bacdb62dd121d956e2676543e11e8327754589d28da0b8377dd56b7eb6183e11efd42b01dc4fb9ea6c157def70ff158cc5e8ffb36596f400fe896276e31de649ee77962e7c56c0362236293b225b1cd625dd7755dd7e17091da72e145d5039c15859acd6642de5b4a67beb27666f34277fd49f7bb3b3d58ef92d66e2abc2cb959b1b23501c5d4a15b14be59b9fd9bd0d4518d059828d09eb5d26cead0d256da5c3c8d40be6d401ab89488c7cb92db6c9bcd66b36db6cd50158ac55199c715969cb37175c24c350f2d3808685a9a3e3b714ca29d99ab6e62a62a8c44d54bdad325ed6dde369f530cd263183263ecd43911f14e17ded97e74103c4ae1c7925d025122ea8577be4c1ddaf72db0c812552f6531d8cb6b578888b963b9477dd3d4e95e682664dd887ac562d172fbe9d0edb7f1c57e51c84ef998c2beb7865ddedcc0da402f399ac2b19f1c85063071a851c95d46ae96c15c711833d52e92f85514db8a4e64231008363272b95c30688d42b05b98b26299e6ab1ee6ea13d9a8f32ab6d01323a15ae21edca3ff061adc9bfcf5d1603c4dfe528092d9dd427ff5f87da20f0e2d583f2936231b2d15c789d3326818108f1d2cc9aeb204f991f4082b4107bf6d1e8357e9614b99285d27baaa50fa6c63c387231b4a55abb52a15e522c4c3c3c33b5a587e9e6ddb884c9d1bbfd9efbe7ef7d6bd6b0409d770fbee23c03d49bca13e579ffb1b3a1bfeee93b46a68c342b6ca7d27fad4e7dea7fbed93b4a6694e1c4f8d9ea2e2231942e4ebe921a415cc09ebb84efc9a0b4bfeb6a96abe2d066098f13720b740366553366553a67221225cbfee92b3a4416432994cb6556fae91658b508bb4978b1084160a64ac1fe9363d6941d94822912e39cbf00bae74bdeddbbc1f947762f9c062c9398604a174cb3c1f545824a310462e5d13eb3f0e61fda9e985be3e94b0361ce1cb91b8ff7e052cf6929e136db83789636c38719c38fe9eabe4b5f701726049f748e7d0878282b963c70927dc20e71893e9ce1b5815901578b024d391ed927eab5b176b44fa948357ac50b9e3c4a181142dc8a201dc4fafa2cda8c2f7e8dd87369df8dbf39da932a6721082ab872ab0f06189920e9a8882c50b3178303ae2b3d16061ff8eb15d7e08aac111b235c810a20817ecd003192844b492bcca2c5c20460e60c002246092b00233c2e021072c68f53b0d156ced6c36bb99ddcc66bebab999dddc54a076ebbdb9993aa70d0ccbca0d2bc901bde40d78c99b5bc2c19d4361c85cbe429d437a344e88bbd2391c0e6e0f8d21749999d9d3d21ecdcb3772b11e3927b73918c72207ebb18433acf7c138254df3d5067a0064d859b91737e3689e6a6ee6a9e694745f66017bcc3f61704927d231c15714bb4c7afece61ee6c49e01e2d9aa0ded2730eb79f3477b81c668ffe5a15b22ff7dbb6dd6d4b02ef704a3a09e1911e8d28e11d14cc1e7d8416dcfe2a37ab558fc6cd1a75346b34af4d9c76d2569355a0c70e89911e1920859b71b35eb111411c6da8738a3a27cc1037869b7144b77f86e927c7cb1ddd7e3ac18cd73584302ef991ac4485bf62c749e9a474db36d039bc3a6284e3368e729c8a536d2aaa52a9b819372b21092c7a509fc552dae3abeab5de9b21ec0683bec1c944278e4869cc44631be5381e2d9681a04c4130d63541785387f47a2d19da61ee0861027bd1400486088c511830c61061ee1c017332cd66338e8d3db024c77a87964103d1af592df80382a00f1f6c246488d2708488688e89c5be1ef8cca31082fd989c8d034effbd10d49bdef3125061b595db720312fd69fcf107962ce25f9f247d0c062089219860484f128bb8f8812213ccad6208aae8a347175443b6844bf25c36f190c2f2b7890716cbef6102260ecc3e4b080ba618e2ca94284df4208c1f18e109184a8c301b33a37d3c587a448105168b9d4d1d29e6aa8b3acb96db69102949c387211e1e25ee8467eab4e7992635b9e02c9838ae83934e830530b84de219a9ba95ce211dcaed0dcbe6be99fc1d8a03b1605e1dff285bfce0f2608a5baaa512e9063b152662306cc4b512a93a150f722b4ee576ad6fa4449a380d6b2535af3ceb22e81a3513162861c1d49995646758e0242f610c83f96c0bdbe0823fbf4d06dc39aee6f30d4c9c3175c8c4e90769606db89f36b7379b9bb952008f0d8f0d8f0d27f24c1cb0084bce2257d1106e89e7efcd6d6e73dbe636b71d58bff37776b003cb4efc7d6366e6f69fef3d9a5892be9a524a69c39cd286d197af2acc284ce76c65d09266a152d026a894eb332288ae532fd7a7a3c0c406a97e0264b1d13a87f86ab6260f31840a9587abb576617cf333cd543fcfc926a42004eb9f4fe1c5f2534a29a5313ac4a8768481e6c252d007d8c518f479e29072caf400a4c40915576031828a2a69a4f103163e94b532d84d9cced582200421f3a2071d623bb2d0c0081e2c5104900c380edcc092ca82a5130fb3a686520aabd56a75e2d46a467aec5ac7349089d3b5bb64ad74ccd499f468eaa8315794c853fd158cd7edd9c49162a6fa6949c1a059a8cc533ff8917bd31ab3d054630a6d396c3b5c3213a781260e0f2e96a4b56e25f4a873c88652734621d87e95102cc9b0a9c33ecc1efd2491d63ad555249fa43592898038b1813651f4ed4789e59f89d32f44c591d0184f4431735c07a13284b622b5313db3b07f7701dab8c219c8c4616f205aabd56ab5da11add15a4d90fdf1a68782c11a06b31182f2b18f12e92769912d53a91a687ac31ac6d6573eb44a18355a3e3870cd072dad2af6fb531fce9c392b4551200a406570fb3b4a0485256950ad265124516f23914cdc9b3e66ee3a1a1b2176e6ed2769a1421b21a8aff91ad1a7e651333536426cfcccdb9899791b5f13da08b9f1357fa3c606cdd3cc109121f2150d0a220a220a220a4205a1b6ef666bb3a83e4dcfd4353d746f5bcd67bf7e1f5fffa8a24a826e7072b950a793cbc53239915e0dd900062c50015602e6ca0233d54f9a5e5894d2ae2355ea42055c4daa1d087e5d5f2ca05acf43a42a852db63ef91b77f33d5c119fbbc35a0bcbaf802bb6ba72b8cc06b87cbde9a18ab8b0a4f0fb905b35a8930552385ba5703253cadf7bdc22852da82dd2b740d52abdf7524c04f473c8b489330f407215771640e52bce32534db4c5540abb55431b21f5004770c15af593b4bc1a32ac7e496498cd17da0811d9136df84b228b0ee816e94922037190070115791496e4a222fea2f1f273aab9d33dbf9dabda4ccd1d8e261be0728f289e04b7659941ae0408a808a808a808a888fa6734039b69529625acac73cebea40adb6dfe3266ce1973d5c3deb76b002cc66d1e8b6053e8e11b8011138885bcd086a943e29dd26684774a620598247ee1e1ce1e4c16cc60330d60c8f2c4e24a112f10c20d8e001a422b4912628ed002860c90e84111ad7e2e9328710613475cd410c252462b08969d451c6074043e229f376560cbb22c694f05b0f094e50ccc9bc202f84290173362b0044683288620210c0bb20c618a0b76e83a0e6cd922d4a507211e048d4608c38511a6001186171c37cb1d1061050ed498228a1334946268423843ca95a34d00332d4708e30930a864218017207420860558b4c009a5d4f6ab2c583d9f3cf39bf596b288004b587262e920ef1bd4d9ebd24c7d831bdcae81e018d65251851a505a67d8de375387e66eab1e1616b7005b78ba343c5d6e1acd6a4186d92b3a3aa7035300c14f410beb5306b687f2e053e07c6ca2e8ffa89a9a6ddbb66ddb60947e311a637229d0edaed6c7e483191a2d9fef71e02114c145ab0a7d12fc7b625e91b1fe828780cbfb01fffa9e770bf5d6e7644fd6fe8cb53ff3a7d04608cd9f9ee634637fa05ef7f9b66ddbb66daeed29a5737add374d3fea77e2cdeddf944c1deb956c847ca7ff3e49cb14da0831a1def4495ade29f42237f2948d10fba7b7a217d994fef4f651a18d909947fd8ce846a24de9ad485f304fd9944407740bf528d18f44eae2aeb0240da24334c857d40bf51244839a7aa141d44b900bdecf86714d58b261a412496ff75dab0bb7e7163599b6ffe86f5c2c171b5ccac3b523097683d239ecab86c136176c73c13617aceb9ec8baf8d1bab93657cdcc861ab227423c6be7749de779365ce028854dc165499e8db4cac04cf5936cdf8dbb8fd279ea8863261cfa6f1bc7f15789f4b8819f2155ec0b0aa8a2655b938a3aae763fb96e7274cec94d3a9f9bb3d659eb4d4d9df56957b9abcc95b932fb4d110b372c4c9d79c3c20d0b372c74438c761cb986a8616bd00282ad36fe497eb4a06d6b6d111753e5e3f8dfdd52b128a5ce504cbe027a3abcfa7d9b6c8290bad086fbd227692569792ebc68f0547dd273a210ef4ba24fe9bd6f5672e542316b153de0c20a81844e587fbe7285c535e908b532babbb4fe3a7a5e5062c1711cc7fdc098b0e08af9b0a261fe5bac83590bb33f5ad0d5b2066ad8187795e15498382451858e999bddcd7d2a74d3f3c8f7508591dcc14dca711cc7719caae6eb31351586ecac8b25e7ecfbb98a672bae0a53c7594ba77ac5587026533171da9f39ee39c471a70986192d1e8a8ca553b389a30384255b8b975a911dd79f6eb5fe9af7d12c065b733deee3c2ed4e9337807fdc62b910c7e54a822c76a003581639e890c51858ae08d1032c8d15c08007166bb27100e9eb47802446c048cd820926e5104462761863035d1c41c415390843a6065cc366b3d96c369bcd66b31973ada5b5740fe6eace5acbacb5ccb4f4ccb8249af941d00de6f43a67ab28cef0411360a00451c6077600228a176750a1a203bf2cbf884cc1af17cf597767164c1471b93677600424a85cb031849df335e7d18e352cf92bea72b95cb2167f27c6ede7f1b99a5c04218a5a152170e14496168f5104d7144fc2d05232d16231b0c89204126044e0418b7d40e6889a1843b88ed08216f3cf7a484d948d85d09c73eadc9838bc2aa1a6a66b08308565e930c2fa3c8309273030821828cca8b5843a0713a7d9f4425f568f77004d6c97477897cbd5a4888a951cb1358185aa867b9001a0a16941c4104445ad52e9e7ff904640bf4729fd366081d9c30b066a2a50849d9e221909925d2c7716cb59dbe7704d20818414486c1e3739f6937f055c42b8077f057d80a00f97ab24bda0ac95483713a724de74d1d82b0ef37d828eee9ba9d301d7e38f867c1de63d88c984c0eeee7e45c6d56ac801f5c8b96003836bc2cd807b12652ba36e696c65b62f264e15db0eb62f5b169b0f6ae59ef420aedc8ed83aa0c995491079dbc7d5a64e0371358e715b586b3d2231712a16f30633d5af45e5028cdbb50c9a1560143980c1c4095363c0a9f65537c64cf5d7001cc2fe5075009100430336d3e06a5c8d67351e2e4b72b59f9aaf2850a7fa2b0704c4d580986330aec6d56ca43802e6e9fa983a7cc11e54412a0085332ca932d24458616e68a4488b867c3d24d2638faa076d8b1355aacd55557418960f9664242a4f9d1ff3cec0da38d0078f18d8830f17f708f260436c28b124c72087fa307336206250032262f07d749a58282a2aa29d0bac9d33885039e7b66d5b8eeb2defde8340102153872f38061184f05bf90c63d2e3e596877c27bfc6f1e737299cad20fc2930f96ee391048bb3742ecb9a9a1dff412caceb92951ed819bf2ad38d545bb43df6536a7ae17b4a371269e3388eb47d61bd2ffd17d61a8ed7f38fdbe8b6031e7ca94459d62e2bb710edc449ad241289e43a2608ebd4397969a16b387d3b5765d9e7dd5711d2c9ea93c4d972514715d6f263ab8b3dd465fd4e013cd8990ecc2dea72a44fb6131a35b9e0d489139b1a645d1e5d2c7446e991af3ad851c77144ba87260e196ba4e5666b131aee1bf0daa413fab124e5542a678db96dc28f2d99108425372ab79f6f98f0373e49cd97f025883eb35553d6843c9cb4389cc0dc59d504a1130a67eb065f1e1e58b22bdbc59b50c905758e4e14cb97bfdb456e64bb823aa19a11b62b6f60a7c9051e57c62796e4201f9a440e4d9468e1c03c04b5662380fb148c50e24aadd69665adf62aed87419428a979257300314b727923645a73f98a8338d5d57c5542508c8a2c8add951e5ba8c7aef91b0f8a362cce568eaf116d18146fa82244c7837f830dd77c04c0ff7ff1061da20d833f5b399e838268a723bc095548c276b4b6896257d64a1bbe11da70cdf3d7e47850f4013fc7fbfcdff824ad12429bd3db7c92168ed0e6f4379fa4e5d158093f5b36aee36b3e0238be041c5f23dabfe1c5e93a7eb64c3f7df55fc24700fc13c02f01fc1b4af8ffd9e2074d8f43a4b1fe729461ed979eec4a0794f0383e0235af8332156d1c0000009c00fe09e09ff037fc03e067cb7f8a3f5b1b8e0f3f023a5e146fa8791d1feaf81b4a781c3f5bf4c1f0431e20d812bee67188001041f2f94385dda39e2624935c9a77930b34efb16713c3ccd3ff31e3e116769d8dbe3644e7817ba0c05cd46f2139e4a2bec769424a65f66845944881421b07e0f89b1782e36f449f2af47d4a10713c158594f036a24f8d383db5bd7f095ec7463d7adc317b1ffded9d8bb887bfe779488ceafdd8c8fdfbb6707abf851f8e70b6726c4137660b47385b25b0b8514961083f3dd2a6d7b998c0165ddcaea8aba5528944a2a144c5d45f5133b6158841d718424de80a9d2e49dcac0061372af5e725bb5288bae8006460490e22997e985ef8512f6fdd67fad179e971ecff4c3f5c13e7339966a862f9bba11e47b1233ae2deb68db76d964ecc5400b95a5d48c54c9c2da4ae9c38295cb22b455a9b38214fb145adc5535ab22ba7ce8bc2a80e8484c0a759e0007d50823d5d920ad57ae4a19219b446d29790d0951aad09bdba520063924085173cf830b4a4d5012dc474014614970dc468f577654794e3db824f822c926c045ee5103ba21a5aa335f0638003dc5a508298841b22d9ae1a9100976c5790ae7462490e622526e760e66c4ff00e334102389904b182d0b003cc08935a8d99d0740f1ad45a730861f9c94aa94f920ad6a42ccbbe296fcad25737dd37e54df952e272f2637ac0bcf1efa6ebbaeebe9b9212f14edfe622d54c8aa9437bcb4cdc72b88de3ba484e3538e64294fa467c65c45342b0dc256f3cefb81385815ed24f9287debb0b2ea54413a769d9b3165892969796b4a4650d8c240305a0e1e21e29bcc0ce2ec3c5101dac6b72fb3d215adf9d3a6c3e4a3ca954a671fcfe3d10ac363c058d19508ba5801982467e0a304bd2161a4b0a3f9e0936b2b0740cadd1a320d8eebfb6bd688d1efd26c357ed2ca683a316090a80082df26f0a61ece41e5c925be4a9ae919e49249248c93622895cb208787d022156748bcca316ccb0e0f5705ef70fb86803c3d7a7bff99b80eff63d7eb913d9c483ab75b00f0c1e5eba972c88172c694229dd28a52e97cbe572d5159499a4f9a53ae79c9344229548a412897453d324128944eab8ebba8e44223d8b5454fd7793062f7c4e9f93c1ebdf63ed71db46c0ee93a2810347d7755d27a4820a9e094158a7522810055211ddee868a6ee3a8a0028944a2744885aa82093fd69f474b9b11d41151a072a8fc428128a5b483b10a53070b4b5220222e6bb5160465230a652c504a8a9d261e4196a44014a8739c2baab5a8e48a38aea847ef1cce4b8f2fef8cba235fa1bec2bcc6ba92c5d30f96f3d2a30dfd9210d37b4fdf137daa5051c8f7bdcfe94d9fc4a6e34eb47180f7a517e295449f2a9d28a4f456f4217de97d2a7d9e1f984406ada738c7196457d41179aa0918058ac17e6045e88e7a1c61676b725e7aeccfc1c5929c976e003bd822205f7541a005eaca7701f96ab66833a1a03248575ab13ceb91a3402a28d1c1bc1c000fe5cd65910051d8243eb0a413d1d2071003ebea86a68edbb0713698a97e25ea13968adb7f05597a29716dd8ae334f0f2cc9ae25ae1eb84a1b1dd2dfdf5f4481baaeeb3a6ea39e030ca398bbb777e67959b44d0c292a2a2a2a2a1a52545454545434c403a261a8946eb615317468480200900093140000200c0806c3c170503c2818cf6b7b14000d698046845e389487835112a3480821628c51c40003001833203253b3021764c13a65ac41b0b420490792cb65b58ee8320434b928e26f9ea4b153157729104cf114222067502d8bc0984ac860e78d40b8a253763fa73412be05f1af3e7128f6071ba5cf0ce5fe044924b000dc0854266976f400ca0c1ca732804850bd084fefddad4a6ba17a1d5bb9cda5d5ed389be59f56a7d72455a360989d39f16ea54cc252dd7daa2a417d9818691e51d6cbccf1c91916acc668004b29fca2a71a7ef46d614fbb96a95cd8b1d062332f3cef3b5118887572942895b674dadca6b48202136ec2ec09de62f619ad6550ccdf889a546c53d273c803dd8eb98247cf0e4afc6de5c851411c5b0f6a809f8f38b48026986409af50f001e8966ee784ff0269c9ee2f4362090bce16d679ead3a32cd9be3d63089a8d45fd83d7888c0c461c2dfcec78d510252417c6fd722ba259e1c3ded2b3815931f62b0c9a60261c140d700dcbe17e1115f3e7cf7aeda2fb1db2254dba822a71c47c54483439fa5355322168920248a5aee83142898d1d9a54eacb759f7a50d6800171b7e7d4da8653a082eb72fb48003193aae3c3b35a99cc03d9b4b8eb39e1697b3fa7369f103a2c0b8ef9cd1adcc50ab224e17974a180fd369184ac03a94d281fb8ad1dbf13021b857085c1554c196fcda51ad65c71923b030437bb092f4d8c1854786923d386f17446bfd20d5c142215c12b7166367323adb440299bac8b9ef1b3c391467a5e140c596f13127fb9beb83cd194b8ecc96ab804959c0e20c345bfbaa8064767c8a6294c08c9314b77dc4e3b5ebbeda2cf74e6718dfb05e42bd1ba214fff62624a9ee960553fa35433e9cb6c83a65ee36e842450dd23a50aa5375affa3c4f92bb0cce2b84a0f32d23cad2d6780a8870a40b6ffb4de5d845042377675aac78b1383badbb417fa0ec6c64b5b39543228f3f357f23d64c0deafe4db2b49d553de0294a928c88dc4ec520749d021e4f9586f4f65472f1b9e1a061b91d85237d37f4bc390d2ec28be55a9bc37f0acd4d71049e7d299ff95ac541263f7c63a634c3780a9fee334312255af9302ebb8d2f34b38a8bc5ed95c6d8aee18aac5fa29cae9d9bd19098def52016e7278db7ba0a0bfda395c608e124bba9812b6040e51d1657c44c7e224d7bd73eded3a4f52ac4ebcc0fada0e42cdc90f9ae1fde313badac2d03a29b4b1035e35ed7bb8f72769b25c27d03b1ce1372b9377c8fafa55ce787da90c7b081a5c29e1d29f12bad7ca8195902ec73c67db306354a1c8198d3c6827b210ad1594bffd4c85234ca641bc5e1f9d488e24c88e3422c7484b6092482ded03918beaf4c4a45208c6812db3d33c00268fe040f50760cc97361318841f0997168aab7ec3882a5bb9189f21c37057d25bc30f6cc3d75074190440f13b867b1de6f5a050ae6590ef18ba77b0af84b8fb540e7024b16a8030aa9d943a7403bf4c0f1946eaa90982947a72ef9263d2f304ff3e564633fd74298b7e975cb8f844c41e185541527d3c5a240106dbef37ca53fd50bf598c443fe667c629de67ab971625481e0efd99220c90d425b3cbd91be92e7f9273f8e2d490b7344e4f1ac7c77a69a5805a4f39b96e131c3bb6270a694c9f9d18acef30c1239979efdaf81f0979f2b9896c93bc22b9ac547a3d6bea9a95d1e3b129752c10556775df61140b3df1188dc5ed78140cc5d482472f4d1c31dce1403fc4a99ce4317000957296b486ff54d361cd3dc25c2b0e8bc27ecf1316c9e741743648c78021b6abd88881fd8a81f59077b9315f58fd60704adc9104d3a427e01224d8253e2e25d9d288632612da0e1734bb381ee712dbe2a43f19a03f4a6c30a6208d98265f9eefd01e46512944d93cab34f0cfb814a608c479c6da43c1f512464ca75a78ec5c620484208cfd6424a6d8e55e0afd221ca6d89a426da38915153d46311d142750e3044750a33d590a80c4fc76477dc6d1322f8e2cebae88ae2ab047f2f96ea8917855683354c635b8913dc803ed6c7b2fe02f58535e722d2294312ffd72d458b4e879fad8d291c172edee8a39b5bb51ddde8b0af39695378d30e5388402b62c6aea348ad9017d45f8cb6aad0b890e4ce6af4ba16914d3a086ee04ad74a490a34d67b01d9622253f5918fb358ad91aa6eabf938b422372e749a0b0798ce366f3d044ec745b1c419db9a9373367b5c0bab3e4d0d58a501ec76a346e5ae9c8312170c9d16c9d6f8e61513cd61e113521359f5169e281d71fd1040073f7137e80fdc866dfda927d199ec1f97d9d56be3c674b7f33f87e87e1f0361c5bdd1aa1e653a3244c32a5c39aa6b148c89cb722af030c2f2078720fc16e771dfa86cd82788d38f13e5e7893d4f17a316e62a48e871ae997b76fc18da8506aa9cf9cc5e8f450ea7812fdd568b8907ac2e9471bc06c23f7451ff42893833bea2c671b72f0f423904cf5bac57c389181e8a65b99c4513f722b7457aa29abaf9a3af4be7c3c308efa02be5be7a0431f53dc5b8f77e7b75f2d00621cdc21bc59e8bdaaf3d6ae7a0ab144b9f6d5e84f99f4941acf79097ef90de41d5c09081b6ea807f46de7b88033a4e2b9045a28ebd833600776030af91c98be7113f5fd9c4e29fe6ac9a17784f0d9f643c2210191e763141af7dc09ede34af579e4e74819c124b0bbc6d4a397b9651f7d9bea25e8269fc976102777873beced9c43ab2c66d49080e24b1884d7c7b182a7d791b364be1a4ad9005126014eb9cd8e23b1b3b5c7b20c1040b1f9fd8a69e4fe61dad27a4cb8a7b38c3134d2436c9d12d034eaf18e7ff2d90c5199cb5dc26cd491fd66291215ce919874a07a35baa77f9be3d96dba0ba2070f2a23f5e3e32ea40433fac0c97acc1d34afb9a11a068cc15270d8ad11b495f0f2fa3d3661d5dfce14bccd983fc82345aefe3e2244d1687a2e7267a2a8127d5156471fdf7a85a051ff45ab8db0850b6f75dea2b596fac79cfad1493deba32e3b781c24b75e3f1472dda75f27ca57c5aacd828a99189a6a2d0c9f1dfac8efdb93ca7c715b3d32836c4de0b21d5dbcfdbf1f0d9812d1569307bc11a2ddf8d5acdd4a704a988024033570bfa7489c91bb81c3d21739d5c5dd876aba3c67039e0fe30d0d27931a64032578c1aaf0f9af4056ec77b48efd85e1576bb88d664070ba50cbc1c3264a09d1e33118110356cd105d3f62990511bd650db65730d081f281b1fae5a4f2116dff40cc9e216aa538b1452e2f9cfc2c45b2be2ee2d3622677c3cab1d70d601c484a3cf57b7b76f13ae09f7f190c4a45e2cd76959e43b50746732247ee0b1cb2def8bb1639c24744f200a0aa626b766cc4a5b242903a88424cbb3103d4934a52ce210a65bb4f1e4ac81f8eecdadbb39d29cc2c5bcec0efe791865e4ae2adfd98ff40c701cce9a7224266d65ca6ff6e92868f2c6449ffe072d32643209b3aba29abe65afb64899c7f70ddbcd79be589a8d115ac822c49a5118d66b0005ef93b96907691b19a4099a9d108800ebf8b47a702536beb21aadec0996083741ff3bc3ddf3f52cadc20ec8f142643029bb597730eb98c167a790e935f5ab07b027a3a67629a0090f66b2d5a81790a984852f19489b9fdb1d3b655f46f7e09c65957277e3ff8eae61e006edd635301dc71a98265891b75cba2ee475cb95f3c012179b621a7a89e4d31422e4b33dd5e4490c0fcc49a31a663a0908e1dfc54678bac28a6980d565de31755c2e37032b5711973c90d8ea9e923c199389ba90db9cc3012d93768b9704470100c9d1806e8070aa1e6e5e08a8d53bc54536d53a894f55c8123f17ad711b777a5a8359213d51e559c48618340c9b1cb5f839a5e4bb0e7b8d9082990b939f0db18dda0f13b7bd6d983471d579b2763471bd2e433b9f8430150e0c8f72475f68bd7c40699d9672269191d6f2ad7a138c5add648a4ef4d1c7b6e30b95778927e1d838bc81bf3266901f501ebee28b43ce7b29d665de41548a75b849b760c4cccf87cbe460d91e586681e4253c4dc1a84beeb19edb09f43fad7d314a178771d8335113cc120291285c362cfb605aaddedf71aef784e4c2a385e020cf9ff6afd7b41e5af936a1060e601598eb6c258b02983bb1b6d4be1d5a5de730c8e10a82ae39f9e94ce2a536782624136ad8bcef8b9c4b2db359732659bd2c3a6e32a3bc0fe6163223dbd95e5d576dac2a32db4a1742a40c7189ac910a5cbe486caa267a228787230a05e5ba8b9256a3bc58d11e08c1387bf3bbd6873d9aaa6b6d05c203f9a1d7719be8bd2fdcacff6d3d9de7aabe6df61c2ac832ec64c058bcbb44dd77d2b5d46fb2a97aafc61a3775da52f18976afb4905355880763fb856b7fd49dc7c1aa4a9068ff568ab410a253dccd09ed110294d7dfefb71e8bfb7026552f1bb19e20bbb981a8013020fb17820cc3db412200b612e9715f34afd9227e48d239e54d09fe0d2b6b25cf1b63f6e5201717605d62415f04dcd8dea5d0b1119cb13bd8db2d5a4602c63fd9f3c16321d44de50069912766a1caefbedc2918b4acb583f2239e48724c01af72a140b31fd90373d17c89d53acd3b06240ac068f17a26798d1aba90009d470c6526fcff4809c9d74f5a9c016d44554cd9369de884662d5fd9d4e7635ab1139f44871fd4da448fd2f283dfe32ccee66b73c2b4c42a1b9d35c9b25b5aacdc5af8082f64221671ebdec1b476caf4eb5bf0a4117883c254183d42d24d69f8bd79fb2fa4d1e9334ab3ee75b2eee1b51b74a57d666e724ae37dc77517d2b73d1cb991fcd6a04641e5e06022edd4c79921fb349dc917b9a9f3136f348a2305241ff8ad4571b0dc50305b853dba89025572bae43d14d87211ba2fd680af75702d1054b3a2dbabd2681a7c7c328073195b7f80ab913f34c5547cda3bedc440558da5d53fe643f43f4a9744dacc3ecc2d235f39ade4197aeb5b02844f6c0e2fd896ad5b359ea15e5d6871b8f197eaf77165586518b17e9c74266a2b9e2ca49cf9e231a4b7158c7a1eea57bdb27a23d4e4423b90a4e00133985dd0bc9dd86b0ea28712e2211ae637c6b4403018dac549789b421207d2bc711eb2e59d83f82cbe69d06756f7ed63019a4c7fa0bc3139d4ec789a3da803f1a03ee27fa749727449895c6e17db016c0ecf88c6319427fc26e640f07b926fc36a4abc39289d5e8bb8b5fad896f2ba28b2e5aed8730b29cb3b474564fbdccbc81fb4d3fd934110c9097f9ac6c41725848805ce9261b8a6f0c6329da0e98a269ee06c74f3817c7d996bebbb29ddea6f6688ce2496420a4d0901772a03fe01e771caada68c95a486c71b925c7d133fbc9d112534279c75904d8782a7622b6be6062320455586f41104353f0f9f473c30b869ddefb43243c7ce4d89a175c9d7dad00eb693be3b700826af9012a15642fc1fe2f6d4a296caa125a2ee04556302be58eb4ebe6c28fd0d15bc4a36c8d02880c62c48f273bb6460f1d1a7afc6e5e57afd1c7ab6be6fd5fe3cc04658f92763d19ebc34e6c3537c74de361b3df5990c68c0d90b6220c9df1aebb0631d8be3302a89d11a2049cf3171dbd14f0d9bcd95ad9fb5441f7be0d801783051c7e1088eb457a6f77f5865eea45b37d5ab6474cfa43b1e8f8045e8b683719b22dc30419de1594657f6469b9f7a8b030011e3e89637b724b9310725c350cc85e618e635cbd1db1e3fabff8f6a6fa4433c70ee040b4245ae8707ecbce1d761b22cb60eb0294784a3f48c7707329b7dc3ff0df0c35cd73bad111d9fa80f8c8ceeb8fa5d4a53fc23a0aaa1007499e8c25a32063425120d28d39b4c41c727fa207bacccc7fc29a96fa6415144831a6a74178180b9123b02915acd4c08461432f0b7d66ed13a345ed7b00634169320badfb0d14586a7f862893e05a68c51412adce414d1e2678301d94198a435a4d27f8be4efc3836d858b3f930c1aba495a9231bed2fcb998bda7b5bf332ec3510143c969cb37af0f7879b57eb2d8d0f1a1e988c34ff6aed9a4f039b8bba2e6ec658738a8da1154104278791ae4d58d4ef2f8e39048b9038b5db8d4b7cb338b239525346bc8c21f2145035b2a280e79f5e69b1098618f0200865aca3c80918fb3c0d151e549c78b6c608382d9babbe699b8c4e25146b2763dc2834da8706e0e6d1f62b53688c81b616e97e2a12ef4654442400f8bab3693470e97f498c9020addefc8fbdbd3e7b41ef020fbb2ba9e5ea38dac1838ed792fad6dee816dc311177648399ee127b6b4b78a9368d12ec3a695e5410f7279895a20d24cf018ba32ee511ce9363fcdcc6fdcfc1e1266cca5491262efac4777287c9abbc17806b3edd8190966eedeaa5f45269657226bdcee1684b0adcd5728ccddc7102b113948ec966e2379f03937c2a0e0750b4e4f7acd2e9347ec21eb4c854acd6bb466b59465e70d05183e19d9880e149f44603971488a60b8d7c53d3d88b9c65dcb449f6a54ea63af0f7fc667337d241a938fa524224d2eb9c9041ed6b8a60795490054b82ea259c740bcfdbaf04ac849c015d2b7e80aa02b7d360a1c8613518606ecac2d70a917360b739992bd735921428e5009a9a2c8eca5e696c9047684a5c6395e798e63d1e44cd845a95ac7c67a6c7eef5ff58a4afa3eeb6b208db0c8cc23daf1f55c1eb0ad3d52fde70534c92f6a3947bef6a00b88cc08580445e8c558dba828cbe66b107f3961120c81b1dd56c9b0ad9691f81810d9ee20fa18e31f9c8e6fe2b4bc82ccf784f6c11c8127d1520cc0a094ad4bc404a1a0b9e91fac079e3afeafe3a296288f98f5dc91a9631fc662e8a42aa5a2305406f7a0a1d7c188363cd42c5f53736e06b756d4a53b3c70c0cd83b149a02be7da5d520a15b033bb42468dbafab912010e65fd7e21a67628fe3524fd5c7d4ad3b883d69ab5b37c95bfc944bfabfebf344771e58fca19f36215c1a019f1412fa496972311b804b2d10b16c2c939fc4faf0803fc863d6fecfb91192d112003151d7c27fc6955f05616aee1a328e50ed448d445741d8766c244e0ac22e02a1507c8c8e56a753624f8a376cb95a92d55a235110ba1796102225f7169cb0b406cdcaa2bf28a53dd2c6eff9be45d487932e2c5d2c1008974568b53f117cc05645c538f327f3a3aef9ddd942d05593e3375ea43e1eb3802cbb6dd135940d759edc770379d25029b1373d6a40dc6762eb88d93f91445d1eebaddbaf1451e045086c1903fe7631812a8640879e43a969170a8c478aeacbea92a7c9411b59829020fb0df26bd4f30e02ad571995cb261938970b061eba815e55657577d9347dcb0a5fd6d90a134a54fc222a2ed9b47cfee1aaebaf553cd8da56f6f2ea1d5f9e5bfaf2e67951401b4835e08e2650aafa4d1db1f0e9bb245aa2e5eb84555e3e28d4eb8ff9680fc4b40a353d9443319ae907da5b5aa8b63d2d49011c373c1557bc9858d8ba1ff8a772d4d45d3bc70689b7402967e3bb4089b62efbcc765c9931178b50d78da78b9345ac93af60e21077944835c466f5721d8c2f32e7a7cbf51b577d5bafbe26de2143eca77fc3187319e4250deff4c008996a12e569a9756f53946e82f9853367af1e4e517db204be69346890e4258592c593a20d43e676d2f4c2951f50bd3ccaf70d6350cae0966b28872ae398d8b1278ffe8e2573c0f2f87dbd00990bdaf2a8c08dd0692da115042f33040d82fa63e2769041f76605fd2ff613f11296287e2f630f3063f27c74aac574e33eb5009effc694090c43d0c426488a21f968467eb640b50a5ef6ce6a8a236b3ae5fdc1929dc78175360b073db2864d0eed0866b52309932b13c136313f550dcba14cb7eb44c854b03c9dca13452b1f45c7678ed568056389d4f699ebfcfbb3a42e2920d89968f1dde954679fdd54c18431f6b2e0de8aa125ecc0faa13092ceb35222105957306124c3c1db222443a0062fd6b4a11069990a6d4220a329a9914240955f82a49544117b054cd7ee6a134bebaef4ec042d7d60e63e01e043892bcca9396c38fff1b7a3a7046fc2154104a16d35aa2e0925cc5f460de54d097ada0bef40ed158a7e5d1db3908b99b41d6518e5e1016f1df00eba1aabc30f078e178afa73b4c0438c3480d7d35a990eb1f26447a2f8780453c115a64675abe2a37a6087fa5ff5fb406c1d8fe796198245b1b71ff9340047ab067bb5729fa473ed146f03ab434201384082885be2fc876d16d6096085ef12bf00c51c5c242b38fc8775852eb0b3cf1b55a0c0254a8a05ff1b2022f074b1a8e1f785b976bcf9d7b0c2fad33b326beac2f2468923b2fba311d6dde357b8d3636df5798cb863d37a1d7ff3f568fb4b11a9dc6141a83fa5e1f7104ea4b733a37266db3cb49c11c8ec8bed81b069643abb79428c395fbf518f8c98e11c146161124e7ab1035288487448043fba2987fe7e005112a0d0eef250d0232a42e10445d2b56c5a687bd9c75baf37d82843ee29893375049e22b8fe1982b631feb1728b11c00638c7f9722de5654479c31916791e280a884048b5b63cbf1902208dce1051d10a498f10c26ee7793849c5397ebf0aa15de873cc39f4a36c9a58bd2e6335d317538ba515be8d082c6088aa3392c711fcbe57b4754b9441be90136b12c0804805a79d0dfb06e9c8d7d4fad9d894f8e0d994fed5da947cdf676484adec3f8318104ed7a194e1f5f0c4c70c350631584112b580cc3baf7fce4a9f384034a4c2fb47f37fb6e5d909b4a29cc3c6c30ab068f58ca558f58849ce71c0aef2d4492f222ed43ba180d3f29958b4d7ecf4c0af9d8e8c1b39566cc681257257e741b2941d91e150aac123976c23e508d42661f4907899689a7dcd99b71e3f7d9b982c192a9778069809b6e94c0c29996a3f9f8d9474e553a22fa4cb55c6c8267a2547357878b8a86a4780d24d93520fa4893598d7ea0dc86fe97307f941cc86504baf8ab2700379fc7efe364a62ba8049a72595593739dd4a68816b951c13e941a1cdbfac026eec40dbcbda765a0ec6fc1ba1f426e176066524cbee9209a25111b8d1433e5820964cca2617489277111a1d32d4fc812488f4cf68b3034e5358eb6442ea2363a450eaf8721e52f36b8ce70d5fab4817e98adcf7c2bafca16f100b44c280173018d9ed6b487a65838f0b1cf27df2bdd3fd53b66fde8e5b1d394cdcbea2d007952d1a1ed719e6898b6c67058c9f568c4f42040cadd56cb487a390c9138198b6a32640d9a550ff169de25fe62cb85bc15372d2fcd30612e6ae395a8e902ca2173e8a734040bd9790c54ffb50f556c00ddea1e6c39ca680cd9d41ec7cde927c939bd3beeacf1e2f69afb4c42187c824a6cd97d2404805a6192a988aff756911670f2773e1fdf64d03151760c5e103f73bb5844d9c7e4becb72f44ce51525bf5f04a176948245251adf93daba1e83ffdeec6152f023ce07413fcb8387acbcbd0cf366137811222afefa9b6e7724b63b9ce3d503185c1751892cb54e6d6d7ad0967b9a6a3ec086321ca67fb98b36e03423ee281e5c3796b900bd1e83397295d79a34889751083ccefdaf117f8352b1cb283193da1eb93985a018a1ce23c7e88198a6527cf6c4fcb1e1b89f839be80db65fafa04d4fc9232322725a29294541c4ea5337506b7a49c09f04f3eb72feb0f6550ad1b8a64fd147e21a45d4d5dc8ecf693a3a0d149c73dc67a1133aae8c517e1bdf1d67327b5b8a8a9e5d9c3cb2237a33c397c65744ef0abd204ac9303b97f9847e64867cf019c944f4c06055466f6aed1461b7a415557db69047ef9f5073d84f29704301ad48adf436f930002ab813993b14270753f8dd45dd943ebc2c16dd1caa30962e60fac0bbec1439d229f14a4b948a497c1495aae0ca554edef8fd050cd99df2e1b8962f60d9a51b42107cd5b520a51d583b2659420b181d64fdd9cf18dd09bb38182861ff0e793452ab8dda9870ae67c7523dffe4f17487de900d42ef4cf79bb9f90e63aeb1386e3a620256c6f23230666237a039825b05cedf9b8c6122da8a7512666903216e62d48d8fd58dc075707ed0a9e747c002b9f1d6669579821518b4cc85b3b4ba7211fafbb8cf3dd2b43684ed29f5a9846712257d68d9d31f73a7e72230a5b4880c52f4c06ae8045b1f61adab3ed99b387a0a3af21810e113199603e4af337dfb8697088ad88fcaa0d275f9e83b445a1d4e82f45da40dd07de17ab463dccac229a6b7de07efb204f846cd1d0df2f127c4466e30cacd62ba1b6f4d5eaef674c739088d6dc60ce57f466f4458e9286e0025c0eea8a39c3a1d7ea0d776e38346cc0cf0fd8dee150598f7bd7eb7db45b28902b56533ad63c88227a4be7aa3a83ada48676bb81b46315e5dd8df2fbcab96599ad59674f54e471c852eb19b93a5b572feeae0c45c287c1277c7abe62ffa264286dc62a11abe22b55c5636b2118b8e93ad2f3ea34d39cd12d0a5ef77f0f980c5f6d43426b2518994f5086f46dcf3bd23270e725ef760b73df2a369dd3537850e6e27315d77074c705c4c107e52d0ad1d00e6e77f6ec24dc336219575098621eb266a4ba97f66f143e3f494386012775cefcf1dced53dcc2f8a73931a58fa3744841c35690d2b55f8fd27b12cf4e9a2c4394cb112874d5b6c7aad0b4948baf0055211e6394c2866de7740617157c73c9f4139007a7b4959b5c28f15d25d37292b5fcb655dc7e82956a70c9daf981191799ea3ff6caff9653c1320a1e2adbc7c695e403f431485c4157e91cf6c486d893677e485ced4694cd3d6bc8c6551af0fab60b746b0d12118d089ff51d966914eb6d7485911397ad05b0f91726020560ab86f496d3ce3b372ebe46d853d56e6936ac285aadf493896b3aa71f5e6dfbc428e69d4a05323e6b28652a17c4ecb596f9d7c29b0d17de92056ef634d7656aae783cab20c4d89b40bc619d663ee8380de202610f73ee029f7fcc74b07bb4b0db3294e0335af5280367c65075467fc8be47e542d4e941f4c869f9ce06ce97bf2b683fe2a0b3b756c73566e2b4a90778862c4b4a594a0733e897402a11b4fe293835843eb7d00e2f4954aebf42863b67462e9a1d86b383311e6433fca2dd8579ee1aa7efb316ebb04baf940cf5191f2805b319118f66fd247601ab23aeab515da6fb6167d2b3a476707cd359ff899534c7f046039e0bd5ffe9f5e05ca2c93ced300c6937fdedcf64a34103b9826e0d2798b8b4edb3af86ed664c93afc5d95a66112b9a3f6a8e9d616813a3747a6889d63e35227e0b972bab7d2ae3c0bfc7245314f8ccd210a3ec29df945420be03601c63602595ea20c64cb48339ebf97e815da897f01bf72598e0a698d60477ce578a82ff5a652f9c63d991ee48c05a055f1b9b00abaa25c586b96cfc4a32e8865871932a7cca5cf02fa235aef1e36a3223907766123b503c253a093f45f36e4263d294a53f8466310c9e826118c70d47035a4c50e5f8371cf69b87f5f2c03b5145db56708f322b8da0f8c7dd68d605740780c04562682a3c8fc60c1880b38e323a6c6b0544cc76a6af26390945e8a448d2a4c891411874cc9b550be1efd0b9b0ff2212302777f78f5c844999696f782423d568c9f0680fe110977469d4de534dd0d6d6142e1b5c3025cd55e3a6e49810df3f900c0d2689e6e6307d37ad29dea28d468046427adf00b82181cbe797100e901c99953f4cd7884afc8c647deed6bf3cef4c552ccb9aa78882f35595106f209e94c584ab61ce63cd3cda2d2cd3b8980015412042de98e2d506abec4ebfa6c7bcc9c9ebdf1cee1cb87d8999660db922a56512851bd9a35e0f8138cd020cde8923ae1d597c987f0040aab204778c8d4375d4d98ddbffce2264f55ad6297df4c2e73d8dab9e7a0b9ffedb85b97873e4397524f6d5315b7b7e31e7cb31222aad654d728230d6606d94f912828cdbc0374bda135f0d804e975ca420b62f30778cb6bb6d6bf403d0f0464d4930a4a1199da28c4d86c3e3a9df774501f11941d1d689c24739c5d678f07f9848624cdd055a021bd294f8d4d82a3d00f7cfaa351def62806b4c1027f2585945b775eaf03b6d9a4c3681ecc985e88b107dca6976e68a5a11ea9b628b60d7582c87a4395054e438f3b0680c9047d75ad5e50833040d1f576f5f00ebdb0014fc766a912fd3e17a605cc670fc873ceec2a0cde8d38b174f4bf50208d03ced6de38544d3eeae14739c42e6bb7aad5ecb99c4c8f79539323aa40c3084f128ba9082f416c5f6055b430e9cf8772c3531056fcf706ffe6c5d58fc71a9e84f0c5348842093fc52d120604eb57cd2cddc97084b2447972caae33b3eabe832ccbf966f56d735cebfa8e6d6ffa300191fa5d521cdd443ba289c2ecb63e63e01cdb55a4878c80aa40432d27001280e3b80b34435c095f9d9bbf3b99d43a1eb81e3e39628e192c2de1c337e6b4db477175af2b8263aa64f828b767f41516626c01e96a6de07f183d602a9aca28f537d8d82a86e99a87f6ee2249f0e3b0612976a72cb6a70a265fcfca3325621b09dd93ff2170f62914413160eb7b298066170f8be62879dbfcdd752cbaf67d78fffb4fb276103c3e618d052d4db3769d16b817cf6b8c41844b440625034d4cedd42d5fb7a7612569873ce74c650d69678653ff26a26f4c289165933a26568bdf7135dd1134c3667204ad69cce21542f68d6e91ca3442836dadaea398847d49272a236cd80a6fe30b3765459327c84923a93314624972de7c97dadfa534342f56f52d2432b736338eb8aee6c9e31a3ea8b05c94ceb98c51b63619bc950120da5a240f36377c8a4df34d517ab4ccf4faa59921746405435c3ba1410be6b87b3fe270f76edb81daee14e6a9848d22a434474d603f0cd70bfb1df4cdf8058c276276e3e61ff3e23a8a19c28f703445c2e083b4c5a43de41d4639f38f7e580eecb81086c8d1138aaa006ca391b41b39bfd43fc2616a71018b64360b41d82df50177816fa23e803634ea9c522514c6af3dcaa1e5fe17935fbf075d877b2b23b5e330c4bb68e5883c5d46907c58a36102a3a8333e1529da1ee18bad20505e59e1a4c253a558407495606421b1cf9c7660bd23888e5ecad0cbdf74279708f53f3bd37ceef23bc59a6b0d46a6dccd695bad0e2e3dbbabdbb34c4980c6e8b546fb7225c9019eca4eae082ab41413de7a1add20a6882272338ce190f39e7ec06df3ea0ee07d8bc2a93a7788be7c2926ac4a0e5b6cd0e7b9af81e75ee522942e91f7e69c5babe6f46e6e3db70d605b3b2bf6e31741e87fb6b87c95518c46bd448e668460bc829d751a270b101f825f8ff313bdf7fb94706f28bd1751e9755aff0dd5f827d0df17bac55414bee2f3f5416f925a1a3b0e3f19fab15660565e4bc234f3e5354e7beb5967f1caa8411abbe51df5698582f71b2917994b1980e196eced4c269e9f310bd1d74991d42a75ce2ed3f5714046300e46fd294b7e0d57e80ac4656bcb86dce971bf0371edc7e17d77e46014a4c78493fe39a9527d36bd70cc7a7308f6953be155b37b01edd3019588e3d76c4f422843945f7a851f0ab7d5260b5a05d3d4cabbdf962376d1fdef4b2af873af14d3b0b015a8e03629e112be3b04d91c57b9d70ba84c4934d2c7054c85e0ab18a83770b074203a7799e98474fb2e0bc6c9a9c991097cd5817b805d387911af0ca591f763c828e4d61c22e3486b609c0159a1d8a16be0149a0ac795e38a4e31f64cfa3d9664b21a30c52dd3569fbe41fa541e52f53d1f71442a0869ef7282d4a0ba0e15a483a5d5f69e14810482aed4f8ae124a96aa0ea78dc046952190bf5535798dfaf7aeb210161f31e971b2e117114e2f9db81f9953eafce6d87920d2b26371aa9a390c015480d32e0532e35fed0f6450d344b9033e60a6358a45e437d4589c5345ede8385ecdded1afac6a8dac13a507259f6c71bd20c3046cc1859a485e9cf4758bc6697a1b954736aead2e5fe8593424fd3e6a6d2d40759ba82c9fd50909dda2298844c9f8678eb37f88a70d9001b4fcf5f23754499c80cf1baef675c64f1c24ace1590451fd99f05ecbd18518a39c11e52bdc0cd741e6f75f088a4f766ccf067063bce471d27411b20dd3b221ae00de97f00ec1fba7121bea9613be901b8d73ecd9ae28638292a1219800c93010e7a9902af3cfdadfd5f1e766d730039875b18ff2bdfd3ae7ef3947e0bb5bb9622aa29170f349cd3d20b12a7bf12275d2d597c8b60d15b3e48a70713d92adb3b476cfec72e9e5d4c84f8908e66a2894f82c880f475410d893f4e673cdbb9faf4c03d274651906e12003f257eec712c3d7a231031ca29981ef57ad6c5a373bc645e46af4b959610a2474253d9cacd31053964051d7bda89cca633ae5419df44ea1be4107b63898f8c678bdb8a038a322ec0f97d9b5a5a781ef661e5a2a9ce28ebf7ca3873a22c055e3a4813043ef07d8e3087370b72802b860ed17df74c41f87182c9e240170f9b792f0750a853cca1d17cd3b2ef99aaa1e91a8bf0284e73c810b7d41c36f83f0cdfff73a06380ddb326d0e7d03661c870c493513638606f14acee6504de1f74e7012076b33c5c585470f79c597c592774785493e5c7377a0f4710030a1e814be342e6c43440bed2af82682a3efca770aa6e0d80a7bed2ff353db3d7fed3835e302db6a6daf9d2f27cbb749f50403e9d5c594ce62be304b0f5671ab6c347c44927a18624358cbed85ca4601cfb993be245ba965b09832890cdcf4a658344a2d71edbe85bb83eaed9e8c03d58db143426774174bce0aabd2072bee04ad10b6134442057689f02c3a1d30280a12a023ab7cd7842c27e1e98563e01288b24e183cd4cdd3db21327f4271078e1923c9d27793517aa981f13e3a3ef3516817985f777e0ab151e8ac61e655e835d29bdfc057cc2f3c78d4da43dbf28f07d9f71eea95dae82b325476f24d38cd6c4169e4f6844bee65a3b9e0452b89578fc6aa75e32359b9e1757e940016256e9eeb2c85286b71ab8ebe2e30f658bceec7d2ba4e5ca4ad0f7eec27501a18f2b78d099f85912c03c469a14b60f0945253a2fd41d8db30186394c03009ef14e6d28c2d380cc3d04ec40f4943a56b4f51c57417d8f2c8a8cd221a6196043ed3c63d6dcc8e77b92722f8c091a17469287720dcd61b5363834bed6bfcb1b367af2867aa2c1aa14d1b49d03c6d157c0c1d5c216fb7f9aa727aa9aec0a5718b98c5aa2840c05a202b86830f5fa954a855e5c38d2274dbdb8d27aeb0ed72d7f79f295683a2ab98d118946f55ea1a99ee5303e9c3d56e4268cde73ea12fe1b2229a71eeab5f5817b40e527981905c28e8b9e7a4d731a36e304c5398006ee5431cc459bb29e956f4fbc369ad6141587b6d90ae1cbb1a866c90fa0c51cd3e98cd56cc16b2d3a753133cdc8cdf8da6888b97bb110ecdf8b9c82055eaeba830c500af95f92bbe2ae68f22c0b6121556853a2ccea8e33479ca44ac94c160cc8deb18e993d5510228653906e9048ca0ad077c04cadee1c9860f08a6093d0fedd757f4f506dbd8f25c70412f0b6dee3ff29e645f809963146b9b9599e6a518a24cea21496b9b3847801205ed8363d56891ce7946296b8dde40ee0823fd27c161e848439495c5185ea5b90ca1d1ae51881f56158651c503003c75bc2f95a80583882b4150248a54bcff328af0e2cb8121670918ff33000b1208acf8975b8a71619185cc53a032f14d9e223603a1cdd8be1270e0ca3979b4b91cd275078123f850f3249dda182b4dce2cc295006f3573ba86fdd1383a912135f8e2e8c0f2ff4519f5295b237d31ea9e23eaaea6ff5e03e42be4d7fa90c75b141ec424384e2edba7912653dc004f3f887e7007b7f8ed2fb7af0035a1a67049459d39c04febf3649cb81d0b8ec063b53d781e94d868f1784242e711099067c9c71b016107d41e036bdec1f38340e40f314bf1b6858e0eafc38066a9f696dafc48f581349fb26890eb538626d1729de8155a37873d7ff0514a3bb29d3bc1fd6fc18db269fd4aba74fa12d5fa4d9d533b1f4938648c9650938bee0e2a0ebd0596830366aa8eb108042fd05ea8e408a127727505cedda584096c397c9a176de3322e9620011a5990672b6d0abee4f219ca05658cd8642ec27639bf2a9425c58af1604c70156a70864cb7d006b4068ca9e0f303f1a7e95dddc81be695476f00c5acab31d00c5895c8aacccce0b65cb4ea211727f698ba03ddb27533d023f0a55b662e9aa02f4b8b2f21b9caf70f9fd3d2ea8cee9e28afbadf88a83d97611914bd0ae5ef5b4f5708f6e8a2672424674804c3b68141756e68423213d0e0b9f980fd1d8f80d26bd9205ef4cbada66aca7b960c4aa48aaeffc812d4a8f6b0131790844afe6930c28f81235df5a4409813f1949cb8a03fb90166612b687d56052f5b62c63bffaf772f6f592f0c98669d29cc5a20960f84b45d7ffa4b4568e55902201c5c41b11aec88862317116bee06b4de193f08ebee04693ca9e54bc3af0e359f5b3fd0e54bf9cd9689bc5859fd728efb243965be4140ed2375394939a5b365150cc72c16ab14504bd36e1d43fecf45a02853e2e68f107f6c9ba0106b3fe204a5721deda73d33872e4dabd8246bfaaffddbd6285e42a4107754e1616e4f00e82ae27dc0ca11ade81b542d3d089ea77b5044fdfabb01550acbd8b121ad138dac0f20061b5db3296e950d3a2940d5d14dcbca5deec1617cabcbd9996966966f16b4921673f6e2b6d3465e40d08ebe06b862d0618290ea235ba34ddd2e2481c2601a7b8ea852bc880a8a947c3f0465e1c70dd13d5c157c425d43af0bc3bac8646b9dc9dd2ae1b0bd2537cb64eab631dbf6807692486947b75bde377b6fd8afeb95270e06747b52da4519c69ab76151db74fff68f72a25f45dab5b4aa89f21b6a5404fc02ead3dce981f6e28238fc48a4d8c7f7840a1a2cd60cd99738818111c3b6524d090dd91f655ad54608a0ce9cc3ead44c12d33dca44f95490588cc5afe8085bd4796f3a3f3ff2f32b68250bf55e8ee30539cb8f2ad29c12774051f042dbc34b1422cf4af9458eeea8e2473c5bb5fa4c47203ab618b794dafbdaf5db5b9d987abf9af6f2c8df32dadd86233ad1b68d1c5d14782024a4d243c4885b942ca745ed76f55e8e8768333fa1da92d07a91b85d7a27e5400dc4676c83b1d55f2de09a899490349f361655bd282422af8d422c68d3270a3a191c8922a5e0f65cf09b47ba85cbb150aa6dfc72aa399cf82ec77137fb69bf61b79f6407c0458849fcc78de29a5f4d7c6e6a197aef5d9d5e8e6daa38446f1cceba1b4e1ababa3b614dcd200c2c623ab13f88db61f642176c4186338967b6a018299425c429af20c0bef5da44e205e0b83c62a6e847431297c997aea9313cc3998fa3c675e9dbe828a6d5b6ed612f16e605a4257f2d80269f5020cfe63b21fcdd76ae2dbe5c13e8ab3caf9171686370127deaca9938104ca50416b2ceace77e8dc8a024874d9e01b12cf43d65434f080609e0099ec8b7d4f7fb5f0ea47dd61d40da7cb4e1eac3c278320eaf27a5d6cb3f430c87b1a083f7827a97e1cb3c170649f303df3f4f6445533bfe5d7496b7ac9e4a952c447d37ec8fa063e03aa775ad06b39a57552f078ef1324f8e23471ae63d2581713035323420a5e727f5d3bc1c6d02bd4699e09b9823d2d9045802cc3efc566135e91a04c6ded4051ba8b3aa807a3e36e099134842185ebb2d16ad2f1b2aed2b9faa29f02904af126a427aecc7d23e6bc3defafb0fb64a027273bfdb39e0e7715b7b11ab23dd0261576dc357a3cf8cccce594fa77cd58af572012153785f5be87aa320b5dde316e76a16ac804f76690052256bdd05519d5b8ae3e51b736928f922c86b67fe07101927629f4ccf0412448c9201b79860462e12c64c424037c4c47ace110b9a99028486548c0aa7a48cb61b383042a856e9df432845782b71a9e43b2fec94864ccc5363d9b0347d72d5a1f5a8c23d2161d300795d556b9c9b76dd11721fe20cddd4e8d8d652fb0ceeb9cb684713d81368d43f45bf2ae4bf37363f94572bfd6f586935aae9c65fcf81c54f9572174681b55e7e86cb2bad7a82cab38625a75b473d24772d5464e59ad07a703727dc0bfed639e6a0e8f317c0f086e004368a776a2386f61c50322f05217e3ff97ac04a65e3fcb9fc2f1edc757f3b0c1735e73e1b3ce4a2725201b2600575ffd816f53d6d5bca57a11b335c03df97dbead0e6a31028af20c10dfa1886b78743c261b93d85dde32d6be492c828687148589b74daa6a81db342aaabe448ba3aef339722573bac8dd80c90babc8117e5e7f77601dd03d68218ede87624b45fa25203749a06fef4a499c3c1d3894f9a064c66ec1f16c7cc0fd4665adaf0870a91daba63556b439a42649e6bf7c95576e11e4249cf492285a53333dd4b578c9e06505f20f0593054cf2ea169c767b86a84b408406cafbebc180ea920297648cae4f361077da20820ab7cea4174b11db0647f5af6c01c3cc243c5e0491f0726bd1c97438f54f6288da84f181fcc2440d832462c2cae97c7cf833a3ca8095d40fe9700e5abed5bd9c869fd573292e3c9883db8df4f32932d2ee7fbe579f9a4389b1ca27a3e7265b0fbc49e44ddca5a90bf0557ad848c5972f20e41875cd7ed8a513dd1e94a1922c061a6984fd7ca12a28f3195020bf46105a873c5b7ef622e490b4da450fc8c53d930ccf0ff6fd0c113dbc75bb3c2ed792e1dd15b80159b23a7e74630ab46037ac4bf046f5533b1afb1e2f3f420a229dee796a3e328a0e009b7bc5466a2631b85f8a6f71abb471ab0b6d22525b4cd846ee850bbd7cd974f945f268cf1c26fa401e3479c225b46c3a43325c142b6d7b6c50418359c24e7fb7defdd3640099f26ecd5ad2ceea1007640c5bba4cccdbf5de0aaeaba534ae231c3ad4e4ce21e2373deb021777745420d6c94b44c566c8e577748831c9e8bead23905c75f79c76ecd322c5e589ced17dc13533fb347bb36d1c449094246152e73fe880128573c93bafb446eeeef2b0182a0ef54ce680b0683d3a946667d8fbfbca4cf658f4dce6e870c5682a06ae396fdc93e693f8dece942d430cb36f6ae114675bdc85228dbba84536a7fb5da09b03d6db9c7ad62f63942da20e6eef3a5eeb801e26245ab74e78c77948c59402250a26e9c445215af0ed41b4ff7bfbc40ed903a8a3d8d0e62c028c17dc6fd62a03eaac9e9b565a1a36160897f05dd6903e1a42347bda88357cd2b3285d7d03e4e681c01101460f9f8e20d198a2795fba9dc1782925019bf146adc3b0accc87bdce8d61a227e6091276b58fdaf6048d7ba182913f25e8dcd9d676b139ecb2ab7985c8edd4aae5e0cf2f3b598a24970512300cb54b2f6c2fa2f219b4021717d957e22d0e0987be4bd6d6f530d30d0c07216750cad7cbe528bd7ce8d4974b88bf5c62fd3725bced5451dd5c065101718658d1ec21900cb7e5cc8a17ca65c75969de4d1dc219d3a0ace9f555ef9d8f9b3a2f6661d355db6e8e1c5eec48815cc1a809ea828e2b597ea92baac0d7c635cbece544f59b6ad51856929c56ee3898278f33c69a6bed328ec61008f1ca065a49eb8971ff60fae78c426c1c69c38131c00e93f8b2ae349606bdb870a4571abdbbc2d2afafbc60b98fcc5e0e86ef61e6ecf788c1be13ab3e2a2c7cbac730effb037311c7125f6dd7375ba763045965891528dd1528fea709fd0162c825b14a19ef4915a86aca4cc770da83bc727822aea0986da750209cb6c508b4a885407711eb5c45c99c5d80ac20e5f54d0c3a21fd18e84ea5a7d48ae623069da276564fd5486208864becb36de9158185cf126ba75617b36eb67f6d81ef838d9e3fd3aaa5fc1149f370f5e79460442450d559dce077d8e5c29d23a330689f4aa4938c16d485ef816d3f8d6c29c2190e5e35ff35302b889b2b9c46fc17771d55cc383be9081f18d9f0d78566141f2a5aab9760a1af17ff8e4d73d2fa754b1d1ed81d78cfce0e43c57fb0e32a3d36b93c31e2b56fb955124ff62287b719bfca792d66a2dfffd592507ad306de1bc54ae02c0d3a020f86b4c8ef81da7e95409bb76e80b4493532d508f02f2f9c4ca0dd27cd0da710e710d5ebc4fd6ddf7ac953e3b0035c166d6748354b0225ae373e952af3b74afebe83f8de584a849a8538aeb708ed9272b3cf48097cb31efeaf54ea121f7ea174bfb24394cc447523f3039e38539120f702ebd4afe20a58d9e2bf924f656942abcb98ded6c7e47f98516fb808d7318b77917797a3281fef13410bfe4cebf26406730ba87c563c6959d6396cc76576213246c02ea103929ccda96df12517ec7c5df9e3bbae791844920c52ef464ae2488f196a6f44c2862d9678a4c5ed4caf9d6fe20bd14f8c0c62553ef53d668f1b6ae0c94a73408dee3837af3be00d92a7655a187528259ec07d0fb70468152c06c04ad96c112de6fccc23479cd0d96b3c09c217f1140b559048754e38efadf2c42b081f62163549f78f48bc7b082f8110d462cf4e2b449f7c542a06a7b6519a5d2676009f8f92e0d308f3b7fd5966404795d32054fd0784aa7ef5fd0f75b84c21e4caeb6f067ec4cd96f23dc94bdc0007978cd4b39b97aa2c8b220579fbbe4685918e990cb750a1162d5887f406db25a6028db6541c06f73d6a9b31ce0ee978cda19373a9374497c42d626a679265303c778b48bc4bad9fc622f588a09f191b5c93d9f274e23d187e1028ce2ec5302df067d8b9b1035763db6128962a2b294a812f0b419f411404359c87986851f19ceedf88dd8ea32af0872147651dcaf9b6a46c48a107df5760fa3540e49a00f04888ed4d0750031c087f33a1a3ee57e1e0882a615ce1c857afb26542b4594b56f7fce3a43d5ad0454bd4501c8d7caafb6ba04a06654c38e3661c27d7303e0cb134442ad993e488c427b219b1cbd3aa32b9568116bb84afcc3509e0ad904ddf5ad2cdda8505ed0c7b76d1d7e3038844de20a72662f25ac726c629cff81d04394596127c171e77aa1093973a86d35f781eee0805a4c3bcf86dfb4969a55d8558e949a87999942a431b18a89bff6b6f82730b681528d9739b13a67414a0690abbb36178a1951a6b47294da7e05f9be7b289470d1a61889a6b57b40363a01d0c63afdd2e66907a7e56f08d5d60a92bcef41e79f0203a1c82f3bd456b76fc2ca401e5bb6852b8b257c6669528a8cd3b5db494f5c503468204a13d8d115dd90cee43f6c3a440a07fd0ab2b64de52d7b7bac9e566ad422e83f1b619b8e6d655a15723c28a7687b3645513a4df1840e921b00044608963a79ae6b91160151a2b9040da2194b162f1c011369c305f0d9ce7306bea916e1d14582e0280ca025d9e552c15119bf42789d504b1a9880419387bf01e6d40a29d421f6b52bac846b28bb1927d268151115cf6d085a5f5d4234e806ec36515995ab2fb2a5d80634b6acf3b0ff4bbaab496f9f45fd0bcf27a41e23729ded1084db07e103d321aa38bace00d7432389f6cf9519b29cddc0055b598f2e4f6106a46151bdec44211a22adbfba9582329425d49b6118301e907ba22207c3fac5cd993fd540376997ecfaa382869256883e9fd10e37451e72408028ccac6578b73cbb66c48c1f6c9deafd014d7bed656d511eec6cc1c642630b1bc6f062a3743de3e13b92a829556182b14e7b5bd5f374127b9c8dd0385f96104454b6ccd92de369e301ec10445d87ea50be7de0f5363958857b1b214611846d10baa7b0464fcfa96a18498e6cf297da0f049ccaac42e95c2e7e1a2eab73131adb5b95a87f0745c00a1b6c14121327f4aed31bdd593e36b06b469dbd5e3ffea66cdccdf0782ddfecea66a28a40cda12342040636d3738ee4c569a7af28557f0e15aa9fbe979430d6ba9ba8c0a1cf1099d5774f2743b520169b02d235de80533f0f270b61878f10155a5362ba285ecaa538c982153b9803b751792eb430eb412ae85daaa55ae9af4d78d271910be71fd554cc830565728575d541c880992be362ab66f2ef4ff5f480be91765d49816966005c9dc98f2b76eaad50c3d2c680be9f09abd6c6a6982b49a31d39fe85dd708a69b47d3acd7c4298d35c74f5b687be7ff1f57a8dd4ab421b601e265ca61c19eb0a24ce2d8031414d89575ae930096bea70e39b38d38a14f3ceb0e6172baa0a9bbcaafdbfc3c0062281e5210a96176a9fa2a16c1e303b725f0a26c2b2b548d16923d1f2584dfd17e5268926374f769deb9d29c6f50022a8d5511593a630a2e183423811ca68f58b96be8fee4bd748b1b3998614a80371de963465fb05134a00458d305066cea4542bd29b4cfceb0de2d5ee3b0049836c38879b774ff5123cf1fa97e0d0a4ee18e2c49d77940c25e29c38ca321ca87cd39f301c613158930642eaab81d14159b9f572470daa98a0656181a10ec5e043c49b47d63a9b46ea202676ebf0b9cb1d4e0f3ce3062965c6ee6bde73d9073cf7373bba605438d26808f2040317118ee420fb5c37a8914a155313a3bd780c736386080411947f6961733cee60e88ff652023a63cb6c326175e505cbb56c0f3360558719e9b25e9c6a702bd01599a0842e3f69e47ca02476033c274c54490de5062fce20323372acc168882c99d4632a093171681da5f4b6e9346894e8aa4261269975874018a83e77987652b734d08393285801b36ce57262cc89edcc83ab35082d54891b621f5d0a093627c2e61fbb1b0f6948e1a22a226ff0849214d73003d5a84cb142416bede4584b8094b11defae1d7a784c19d0368afbf9880eecb937c211eef5885b9e8f4f9e289ad081fdc811fb857b041c3892f3f8b92a2abaf91cd4f00c604800ee845d92d10aaf1c2f62f918375b08cf447e4c4edc1cd11230f00eb5e837aca789c06c85d1bac004f89047f56963f833841df021b9296af7d0d570865671d08b85565bb3848c4750394f358ed3c16625c859efd5523f0daaae8721a5419f0b521889bc1b7318a4c4d048c18f22586e00c235281e770529afa615d0da085e2251091f51bab7545173b277aac8be0f645f355f41a3be801d6b8945fdd8efb25b988e9fd5c24ffeecab6b4fd59ae0a8f062843cdabe3922a39c9e4f868c5238f4fc8244f59f6ef14ebd1d59499663e68b1fc668831d321d2e626ddd841164e2c7e5ea8b97f0121ee693a4a3b2bceec837152c9c4d26025888fe2ec86b8353bcceb41e8dc3d221fb51b74b449e455d815f9c73de1593bbeac40b85a338e9b0eb677dc1200c55f7461291b8c1a79b57071dc8510edff9e54b8871dcce7542b0175b600bd21840d0f392a457d26edcc2a2cf682ce5ce6b7e8dd2705ce7636257b7c23bda7732adeac40e1e57e2c2286d5ecf56d4c7ec9ba2cd7404c2737d972d626992b09342875872a94ac9a6cbb844a1c2239e98a18231cdf06ac8c364024e0fa0c51aa44e51aa3cb55da47929f970caa714f91a009137f96436eae7722b339757ef44893567d025bf5c4a234521bcac7a0e4fce3b8e31ad3c473d2f6949af527ecac364f4b8b45893b6575a54372d62b4402d7573f292fea1f974fbfa41ee93c0c9db673374345bc24ad9b0f794d4dd61a0b4fa3a39ba296a107d696f5686e09301efd17f380d88b745b564a43855f4df59234b7fae8978c8bff122db4915348f796399a81016970f309a111236f13998cf9093f9c182403abe52419bf1d433a7a228c507f61c2ad75aab76bceeb414d09e5dff1f3d875a9a042165c715179761f7ab107125c9b958985002b1d1020e2d52fe7d2612a08159902db0f55f03c2a82613ff6d9e39f2ebfded3f541e1f6b052503ef100c06c945121cb7bba3c9f05f10eb58fa1c9eed51b9d20b3484067ffe8dc8f26afe8caea0408b98811f2c3b09b864d63a6b8cbc657a17c534958889c35453419df88d1e166f2b0463247ec4b931db0b4fa1a1a33f152fce8f3502cb966972de653eeafa5ceee8a312d8ca2ce2ede8b9b0e4921fb7d140a6414357c0a887646357c420e71e9ce7e4419b469fbd16736441ab0d6e409f031efe67372b37fb19b1846c7550557b715ff3bac27bd5bd1bcea9a0e5096043d7c9bdb230b1da0bda654a37cb5614b391ac7ecf4e5a0432556a53885d0466c93ac09535aa31e42b1f14614bc2bad5f39096950879bba438025a5064d3a0768fe6683b677ee7a855fe2e8b3cbef4101566f456fe3e479a9d40df2e416dfd2e572524ccb66950723087c11cf5537d0f74d501152324c319f51ca8f511d738597dc4680d1f7bbafd794f5b92ab869cd98c1816eb19410a70ce8a25515ad4cc4228e0a323bd0dfff21b4aaeb84009a210311d00aa4f6ef9fcb3f6393662bbd3e8afe61b2d578f5092287116334f286a98381a650185d94cb790fc624ea2b452510623ba081190a9d99623243fb406bdacf3173398e6be250734de7db26bef4151461daadc5b502947a4088ae284445416e8197b7321b4d0563a2b45d6cf1985f15dcf433d27a6343898293f309dad9e35187d3882a047119c258966915918b4c1630bcefd4a2d6a56d4a67b71c44f075b76ddde2403de04704a876cb388fd2071ff342f731910266589cfa631d46785d2bd8b8a8c12795a4164a5f379f40873b07d92a4157eadbca6934cf872bdb8e69baa60141f450f4234118c8709ba5317ce7ecabec7da2013380b502dab4ee6cfac85fee6c2caba71f01e0e472b6840d4991a70c83c6bae560bbe6661186b579cdfb6c1e0b4581739e2f2a94416939f8b1cbc15e4984a3a8a9cfbcc48329312da4625d697770251cedd344141d7112b9ee4eb6b2801857b00086a86cfd9c07aec0fdb3153fd7c73b422b1b6ad43bdaa66a53a1a8b7fea0223ae72a0c592560af153881d07e115e1adabd04d70ca4fd9e4f2735f7193a86a6d143ed9c0bbf36c521dcec26bfecdef5e0bc25d97f074016041fa7ba43485c8b0e3ff1281e23932fbc7987366940c23b71959863cd4d9eab5df4ad301f40c116167016fe6e1e707400c642e5caf282ec72a436f252bea4ebee2d2a01abaf4b03f182687cd4190c2b57bd2d20477acd3d820156a293204e9de30e127313c08009fc1ec1ed03fbd581b348a9409971b4e91dca82a32a14fef88583b36328655cf73a32b58e32ee55dad628741b8b309e7eb09214e799772d599e4a6b9b24c1b519a18b5e272b497adefd3797372b57b25b3966ae0d56a234b780475a625086930d0d6a73af4649b285db381964736db4ce50f26dbc1081d6cf75aeaf99e7845ac8f4d6adee5eedee35518d969c2c39d9f26bd6454155d90d75e18f1cf029a10998da55009a0452e44cd2ea95318ae8bc383ec1e78341d59c34070d52173190d3a24e8d1c15ec8295a727083f080bbc59fcf729952aac45473b902a904979c80da40f0b375b9405ff71f410e566514f450a6a086c9ebf82c44b04ccc05acba0b242e9a2034c1b23b50546cdf39af4d69ffa5f7d4b7a3b98a800de7fb591bfc2179c02449d962382fe9d8e9ea43d2b56bf832e7d311f5cf18e9c4890489e4489843f11423b8c118ffab6ee11405f0098009d91e352108a7a897838834a53a1daf20c9545e133109e356824a163fd4e3633086ab938bbad8bffcc95935827aec44c2a0d20a80173d090ba41c7bae876b449684e595fba8325e6a714c9cf4355a54cfc23df9f15cf3d452ce6c2c40c013f8cf1c61449d20ea64a9e8cc8fde6b1a06294514232664d8251145201ab9dd7bb4878ab6db3452c8ab5f81de79295ab5ae477d743f279b48bd137ea83362396850602b458cec69a02f0c793c38453327f1f51d66704d4f1c23ae5bf92b6eb1291909b421cb49431fa060f185e8fe2b52a9c3dc63d2f4e2d92e2117582bb67568ad3792c3be11b2648ae3a6e72320f77fad7aae82d072cae2a6cd6b5cdb4cb4fabd97394b072856eb90d568b2a269d9b1f5f1715ac240ed44b9da893ab40ca4db63f8c66d094c5c2df8165ae0919e2c92c01a23385c26ce482e671d73692e70d5307787368b816b551e3d409eb5b30311f07bbe221cc4600a969d48e6e1c0d93cd66ad70d9f71b2fd76a0550a0cdca695867679a3b40e0b94cc62122456c0016c59f2b701c8ab2608f5e2a09d8e949cbb70dc32e2a2441c94965d231820ad973d66207c939a6ba81e943ff72f12fd516f33eec652c130ff18833b655b7984a4d42b6c796986eb97a27e5dfa8bd4b430e1f2dd61cc2e67764e503ba712f5212544faed5e57247216e9e82e62f97ab650dcccfacb1aaf9141e9d5ee4dd48348c65f4a3864311a945bd24f74e21d7bc07970e21dd9f22f2907077d9c04e1c6049fcb29f6428f15c068a087642c388ded7d3b910a505b77532400f8b4f760e215990761dc609181b1278fcff606e16cc35c9b93ef72db16cb675e8886076a4c101affa15b285792562cd392c582bd1c55902aa983dd588a17de220a6adf093b0b94139b9bd32b1fa136adeb4dab536f8f4a1328dd833f469fc2e036bbd7908130f3478e630795241f90c6e601b2a0fae0c659160bdbadfafaa5f69c4e8bd4b25b188b879245b832ecfba8506af67d883c74683a725f895e636db60c04bf723ddd5f3a558f39e4ae36c34ddb13e3c263752422a31b06ca1b607608b88e22bb5b877a072ad0f2d823a5070f11c719aa4bbc32e7e2561c0c06375aae128466aab7548dfc6694ac518b75ba7a28fcc65f4d43d13128cce4bc05c44af7a2d5892e0a3549029b432acf43122cebb7eca5252bd41311df343d284c99c3d99a047c9c578b7cdc7aa479a409964d22b617310ec57d86539c0d31543d2a48998242cd975d4090ba3c28a76c2044220fea427605dcbdd598b260c4294bdc6b997c7f3b4a434d70c4aae19b46836713859a1f8522d555fd33a2ec0e6dddafd358d3bb07a07d7f2f2a8a9ec9d3f074c8caec16621029ad1984759de05d593939e7991d3708c79fdb8daf896002279cbc502fae81119a63db7417e2ebd8b42c3708eb227aaa3903349f827cab01f8f8d4df704f2070025267c3e1683d43d63db34773ca23ef155d8bd0916b4ea2be0569b24e281807cc4be9b8e5d67cc0a0a93ea3eef2ee44687ab62a6843f8c22e3c94b736604208f2500eb9562424659448133c5cf75848b40d22fe9d3bb5b7458bfeb917e9e3e8c03c6d309a0a82dfd44aae2f09d8fc827859eb3f776427bc220539bc9661db07c3dfbafa46a2fa39825fe34fc7c800f0c97338053a52dfc4e187e185a6b965d7ea52c1e1deb1022b1b944756c9697b8c3afb9c0396f950e2331d82b77be449eb23c0125f1cb8774fce47bae719b247e11c1da2f9ba695035cb1d255895fac183bf6376be65f5c68335bebdba9eb36e79b9ebfe866820100807c61fcfeb8cfbbf601a96e963da96794b5fd7b1b090c921f907144e347258375e7525c8c6332246c2b2c9e17325208400c823e64d069d4883f45d92ced3fba01e7b79fe3c3c9d38abf17d0723fd0b45ef819fb5e354df3feaab12a55a9aec23ae231c715f60a19f338bcc1830d8255b206894b5503d03aee1082ad35970f4b8a8907656503539ed0747d11572fcc6dd845252335b90275c51393878826536846dcd466e0d8763f6e97636e66ee41ab021140469a1d4e225de1891e215c703a1d95e9951c6c009d14570f5867253111b1f758b64a7e033e9d32876080c92c360b4377134246d1baa8748e59aa51988e35cd9adbfe85502d0e5b71fb24c3fc839740059179fe265dbfc0e3f7ec968beb97c51785a359716a60c3e7159932d5092db7c9933a0cf2ad1065ee765e1c9efb2287509f18fa80cbe136d9d0944c507db494fe98da624a76540c86bac637ca813cd80e2a19b37bcb66c1c687456fbfac039b66a78175b30941798880f8b093036483a3180d5f2c00645f9a36f755d3584bd500e64e96728b44c335905aeb72a074e8928492f8e807724730cbde5b8e2fad3fc929619c2dc82295b925c019d9891859d8ed30a92e9ba1d100f3d403888ba98d109ab0b69dd53ccd9795892db2eed4d6215950dd5110e0723bcf2a0f872edfb3b2f02cc069a72df4950d2c0201955fea94d45b2a103bb8002445b587f4f8e9c8be3911612514842623a783384b845eceaeca510b2bbf90bce59ac8799ca35f0384a93215551bfcfddbe2b3e56314f294119078353537144f784c90c05b60c130dc9b526e9b7d7e082f6513b882da3b1f9b201e05c4dc100b4c9d1f4c5b9f29a1edf8f0d92d9a429da033397e5bc3740b681ddfd0623b05f5565b987ad58d338baf5fe43d67fcfb8fddf2305348e1015edf0a794c11f2477c4edc84905f60e8ecb9d68140451d29dac50ca8552854493825d245abf9ee622fbda7d096125116f0beff17830c3228b51b3d07d04dc8187a3f2a23160d09bc05644ed843e2ac77a8fda683100546c5b0aa2f0529fca24280dd7dc38f129e8d455772391e073446af711eef21ed931b1732acc63215ff2348c5cad075a8fc1be5a14ae4819bfcee2c6d4616fb2a1d6b604b6b4d812b97d5f783d48576923beea47bd70efa8092c2fe7436f60c1b367fe22ef2730f8437cca608860d60038d22d0d5a7b561200cf8abddf243193f13035e247690fd49dea8f4311538c3aa5a69ba0eb855aef51d754fcf2abb6723bc3a99276d1f365fd1889db482cb0b52cd2bc1f49c80976045dbd8576d2894a172e88914a2de79b852c5d8ef78a67818c1f2c1a03c9ea9cea09d1eaff152ea49f09946028eb5fd67c00a76756fd64ca61fcbd93c35669b7eb81642440d4c109f6dd2f3b96a14db580efe1248134d004639d0842047678fae39f1fb2339fca6828bca6edb4a3567d5131838651e0b479d17eed57e73fd7d63d064703597b4b8f4685ac3604f19a9ae95c71724029fde290e7766adbe1345c5e00d2b62c6880062c50228cab675ee40dfb90c39e717d10248d502047e29fb0728f286031d8e5cbbc1770dbf63c828f25864bbbf1aeb7e436f783ae84b21754feeea37cf439b6dd0094f5b639f2e4dae06dfcf4f87093b807cbb16091b5de3a81bd433f00c613d75f27905e49115572103b12ee89af90430c41be86a8b48847c5a36c91854255e297b69529e75028958ac1f9f6456ce6aeed1cc85c14f62855b93f2f8112c0810025457076ae9a591c29ac793bde43070ad5c5c3507b8aa60795156358834c26b4d99aede1d6d2c89c658195cb6264fcd6ea063e74796a02fcbfc954f535d1bbfa93b4f225d3109ac677fca68cf5f64922483a90832713b87ac59256b70b28ebb12aee555b12c9d6323e38b2e1c95070b35d875a1100f3eee4e7d517b6737f0082ea9a546711eae9bb110fcf6a0c64da1c10ded334730087b6a05700fb74e558d2101f384598b7291dc545a1fed136b338a4cf06d4ae82e5ec7bdcf8813a78f59ebbfc00b2c127764ddc16e5516bb65bfecd6b2d92d31bfbf9cf4de8117303d26cef87eaba086a9b715e31de0cc6a80542ee9b40c009b56927c25428024e5bb50a69d73ad173eb000b3a1dcd38253071413aa79c09781d627fbb98b420dbbe6209e1e7c204ae86e54ca3f885541150b635bd84a2032043e6c402f8bbd6e06f1c183fc8da32dd4a4b3cb7a4c8b032fe952d4b6efa6d75760fdae87f85a7cd77103ec18f46d1a0bf1ac31fd137e116f7d7fb5ac445d373962f3ce2fe9bbaabcddf2dcd04be257414aa07b91d3be0d84b1a0a5c06a7751c9be028791403da96977f7125410f3500d6cc38a455e4ec8f92e1199ca4c8b036d0fca170121023e03e9638f40f89d3666b9b241e7a0b1f5a1193b01ad0443d099d6b07a4b2bf432ff616500e249de6053d7fa7685bffaf0e1e5c70f0ccccb7fb337ab318d74b3a70c98add92970b80e278969d5ebfbcae4eacd4adea50019777f760d0fabe19319ccda801e256ca982a0f006bcd8843a2d7b0e9c76763ee39295552cbb090801a5c731494708ec9ee241448d271c7c84b4ec7cdf56fae51ee84225516f245cf211ab91e5924924dc566bd6b6cd8304245657e7415e531347432a4868bd104c8d693b1d5e649f1eb71432fb589d89ff0aa735a2336a7144f96b7052d78ff63d64bed4ed85616eb22f8c71e2453b21541096fd81bd8857cd86e74c263f9b8426fc54fd6d4bea1de3b3735d8a637c35fc6910dd8fed94af4da9f6ea41333d0788d040ed2c6951c48588f9edab1acd4bdac0b7950088e8b9bf6b1550c3f0636c12ad8d4d059b437a0e721d3d196b90492aa7ef445e37b8e43169cd34343e78ef11fa890ac7580c6e75e7b9c53dcb51a47afa9710709b7e0218d1182be26f6eb4d174a65083bc579e54426cf29c7c3d36a24d4fb5063097ddfa3da6a1164927a1472700c5bd038666db59bc2cc550c2b4f15e4ab9f2b6187dbee2e8430916ca4fa2b1bef7f92d933df08258a56b81c4f16db319c954d6951d436ee17d603aa787637c5710fd72c0f02ff91e6b9212dce9deb03d1aee1a4157291709c18c2c4d0e42a9471513cdcf4e9194cf527653d4feee7251e076039432b3d00cb4aac7b4eb70bf8b190657fb5a6bf1ae89c9748c5ef9e8cd3d5a53d9c75a97e06d79e510127c13e6d3379d6dcf9828873c21d936022bbaa81e9823acd436a2453b2e163d38abcd6e696a0740d12eb6fd047c701132bae0ed8bb7114e7da32c55b351e71e52d93f563099b6357a9b66df7daa34812f3b907fa06e500bcdaf187bf8e63f391a93607b991b8629c691ffcc27f84a118911534cc3dbb065b4a319bb92857644649d0deb990819dc8d0b1109742eb67b519ca858b682ccbbd4c17e2082560f5c1acf64b05307fedd64bdfef254d838cef16a4e8cadace923930b2d3d6a241b6b8cbbc7bf8a289fb24ff9f2e11850296fe256c0ffe4bb18a9f9aecb5bd5581cd9a0f71b03f9da2111ac0240a00101d44108583885f50a8755b628d3ab493d1c93d59fe7a088d2ac81614a1f23008b12f197914d1dabb79db2ebdd143bb81404e0627a5e0af6f548e21e90a95a16125e3b07c434790b0dfb55d0cc2e24f04b0ed1c828ae92452a7a27151655643f0fa249bd42a6cabc4ecad17e58bd24d6a19f64a71a56693ad745e51f588b615e181fb3c94f967b125a46471578fd3819815b33e939b75ce4b57d94bc924c796cafcb4974050998641582807b3a4a23a03c9c561e9f3dcd8d81e1fc6b1ac341a8365f393f64c709393083e80a9fb0278c94f37f5e7d45e4c9c2901804e50f19845da3dd6fbc3b1c9da72536e3e6c2e23f8e62ae102a6f8e64b3a6c6d0b84966036fa7820fbfb4bb3485a4ef3d5c8f7c6f9761539d3a18a2c2d1ee8fbf3ed8fe82ff3e6964800ef27c1b4d00dad2d8d2f694bbd42c64dc69e75ab7afe601cbde03ec8803ba3812745d30903252076680c469b6e1a0f9599fa6486b27b88cfa85b06c076b4062c939af43d139d797c806b05a5aede70f6f781842d4aa1aeee273198670a9fe8fb0f6a501234bf3609222630f8cc45edafbca8059208811b29b6cb9b7943225193c070e075b0734a7d168349acd7302c627e66146fb52a92c0c34652735c5a176a3518c58835fe68bb860c49ad29fbe880b84c95516cec9aab299f20fbfefbfc7628f9897197d643ee64b620f1898076564647ec648713366bc9fe19dfe24e3612995c6b2c1f7f67ec76348e2cc302bd8b242c9fe5f18234e174cf5da33f909caacfd024ecece6eed8cd3e727fae5a93573320e2a707fd9f2f2054220e2d4ea56abd56ab55a338a909910caaaee4b7232b51575491966db90fdb10cb89c4270736812e59ece9ec25abfef8e60aefbb2953daf3b7dae8f82824aae25c4e6064708198f73e7d7ea43ecc40487c385b81087a3ac30c485b8300c571fd42dbe72dc12b8e22ace5794e634213eab8aab442e854f297d2e7dca02ac8e1d5f515b7143b80cc553f918fc0e0e87c3e17038dc29f6013169cb5b24beb5b6748426696a81cbd9c57f08acec58cf9a2ee95e9ce210ff3abd45f3b4b8b4bb43a3d168b41d7b04b4f6147e9866070e2aaa2e3cd9d45437e4ba50a9542a954aa552d51fc0ad8e37bec02a954aa552a9543922604338acfb2c3d5f31302dca8a8169cd3904f331dfae0b0089810147df83350cefd579546d651e4ff5631caa8450dcf9b16572ef04d7347326118cc0252a7b0212f00387c3e1703fa6f80242165cf6ad49f7ed76bbdd6eb7111660ae8bee9e619052aaa3d33aad13a4e3d5fe2b0551676d67bfc5ce522e8cb22e0c0683119929ff6942d37478408c86c168301a8c06a3c1eecd8d7ce8eeeeee9e7553afeb4e617d1c67b5121727096dc30d1f74175356e9effbe348d12f5507007ad7e84b0f748054aed1d398081875087e58c51f489ff803084dcd9c2321d0759146213405e6982e500c7dba1eb67471b140c3f831fab8d11a680ddd440dabd46681fb77bc06925cd21a5e9dafec6c5802b618b2ffaec5b970303c073e3473fc7d283cd9dce07454e679498b300cc3300c6bed3aaf7b704e7abdd7f9f9a363bddb5560aeaadd89008a2663c515ff9dad54672702349a15df96d3a9d63ab32131f183c8f3bc5aedbd6076d20fdfd7a2a902e421f776a67ebb006796da9127a3acd1c8c393f1a0415e54abcfaa4cb19d4b46f36a9ecc9b9980f06eaf1106c717fd466ac73bfa1da7e0bbd7d5fb3055e05438362e87ad2743350961f6f7a4d06041a44c35f388ba6c60b27cd4111151d8cc716a471a037d158d46faf264f44561a3d168347a324f56032e3d9927f3649ecc9379324fe6c9ae9b6aa85d64ffe97ee70d1e70df8b31bdc9b5c0b3ddefe8ec8d747cbfa376c98dbda5871a3773e037ea072857949bb99c10222924240fb8bce149c1491e3d7ca8f0e302409c2c6f846e3c47e672b95c2e97bbb01d13f735a733c0e0d7e7a1403e4f7c6a3ef0c3d1a734d67c3f5da50fff2b9190dc20091a4079e1a08bab36c5171100cd5cd045132eaf228b139c932db424b1c4e523c8a1680b0b7a78d20504a0d8249cf77fef0530f83e15ad85fbd15e1898e6dad0a6a10336d9720d0a265bee37d9728fb57e8c0f18044eca18238a961ea070717900072d4491c5174680c8c2e5bfe3cf43730a10b3c29df62d0b0fca9ad4d6a2e49da828300fa70138bb065c9f4e2b5c00e5f2665fcd1b6b00708e333c5f4093529b2fa045c9fe37265c169203ecd7e74159d5756386504770f9d98e3f22e45c7d7339edcf1f1e8a22e0433373d5b723935a2ea71526b4ec7fe3b27544d1148632c99b32beb47cb84ddbc1424e81c7f891f942a3d1aa7ba579b43251699536c55795ce9c1b708fad4a8b82b2952654b7b039dbc5f5ec6ce6dcd1ce66350fd49982efac9e423b13a105b8b43ff457b67effcca59dd19c34e51e77ec3169ca75aa600fc00b7b7fbf9cb40e74c065ed926d3465a3acf07bacd5ab16866685a3dbbc9f1ff07918a170f8c6daf59a9d79a39d79ad16934b3bfb2bbea5acfabbda9499e35ef39ad7bc46e43637a261627f85ee61d82060510b3f160bc721f607a0ffe11b1dacd5565bedecbad975a75048cf8f8e39199bc20687984f917d55df4e3173cc5af7fd9d8b7dec63ffb15fc1f3aa576f77b19993c5d8c73ef6b120d9ecce1a8be113507985948695042cb0e732fc014c570d610578d2546d17fd49022108d3dff1cfdfd160a3e2003838381f2009ee7c8024d873371a8deec49939be51c37a8993397cff06ad73445d26ce46dba10f43bd3090d3d7d736b040055a623fae72d23ab8610597fdb2d1047b5f361069c31f0d13e02ecc250e06668e7ecd9c8942c1c058da16b8fbb25fb908dc8d9374820646ef7de77d4d909eefefd7a030f3375e3b1aeb7d2f3c40124ce72b16f4023253feb41f0cb4a7b04c2925b10129ec7233873476b9dc9db3bfcbc96cbeaaa1dfb97a409dac93c530591e94c5b4359839bafffe92cb1a8462824710d421b15f6c560ceb445b27d3b660e6405d81ab9802a5042ec23e29a92cd715cd1c63cc1ca3f7f74830738049cc1c529cd5d9684a87c9aa41344546b33a54153cc5855050b2071164820b023c43f62e89d8b906dd8b71ee6c94e5b95c67cb75b65cee6494455f34e57f2fc62fd9489cf9739bc7e0486e3e029c337118668effcc9ee35206909619d9db92a790afdcc9929c53d180cbd9f558abe2e905e58a0c0521486908be66ed85c264c05cddf77fc0645d7a736bb77653cb77cefb791c982bdb912590b929e33ca81772eff53a5b6fc8126e3249d6783e18380247e0081c8561aa065cfdf15def6cf57037b09376d7759d57bb7e30e8edbafb41942bbab81f1f4c86075c4921214cc1a58e8e8eceabc9ac5b89962285525a6bad1eb8082618d3caf427d9dd49f62f7d87f9420e465fb60cb4941e48d901b388e02f5d496319dae25ddc8f9032c0446827238d25ee20d01bcb8e356c3496f77e6389f11d3d129ec034936ef38f9244426882cb799300052ce0e366ebee2e3599edcc1c6f80bb5a1808f2a3a8d5aa4ba29001779daa670e113276ef1efbaadeb464c0fe3597df9fff4d21c89d4113094ee0da7355daafa93fb3cabfe5ff11a0828229371e66c801152e1d93f433895787b004ee07e99dffdd4d0216b8731906611b032aeced3c2a62d4d3542a05f69c239a0a6efb4cbc536c9727da2ca2c45cdd887b0429e39d96cb0bc9ab569d2870abd5198009286aab33e2eac68dbb630d13db852ea8e05c26d1c6052ed0c37b3146a1b0099bb009db0e6393e86300d814fa994191cb87855b86cb343ea9a5ef18a6ac39f3b432c44fbe53071dcb21a410064813b2b161e1d84a5e4d8ceef79f5866a0a4c99426d3b1622173929b74024df7a6c7d8541a9f78a30a9b88c48831f947a13255a94812df49c7aea394d6f7f209b7855c1fac56e03b5e166e193786a12f363ed0dde77ca245599d030c06c3824926266bd2a8cc18747757cff35a71be2f55e0fe329cffffff4fc923707df0eff350d6686c5ca3ed3d3a3b25d04129c1b3e6a0671fca584b030c6b2cdf2a1c9e6cb92116031239a022882cbc54e18217466498010d89932b92ccb2b85490e284892547bcd0c40daeaab2a176a9efbd94d239e724ed10e2de9714216c4ebdf8aa7f74ca3f977325d4e60477c17d4b99acfee96f20e6d7415367341afba708048cbe8e2fb71949a9415d34d2d1d67916982bbbea7e7c31715de74daf3b48e84b21982f14ca00343cfb3553feb05beb9d48406801c9ec82fa51029caf8a64ae4e40662a1c2db7d6da5aaa91c17bad7dd052db8a62e9184e22209445efc51885fa276da48f34024921c92bf5987215cb990b411c9a483ac212a9440a4b449860300c36c1c87a5a3299938d938d9f999ee80c1198dea88df6ccbcff109f991a3f63a68ab4cacd49c7e2a9a10e7e924cb0894a30fd128bff37eff48949fa7bf0353f298bc668ca9fc6cfb9a242df37cfb89769bafc629751d5661ab6e60e3ccf13678de7799e3def861e90522892c771e4fd8b5d16456f2c7bc20fc41bf17ff434625924d388d7133def3bdac8eb7eec7e24defeeeafd8df893eeb116edffbdd9d199c018426747aa3b8a1bc25fb4f12b5098131186c2a91dedf874ef155d96f2f68453ac5c91a15cade2ab1a7e5a4671b64b2e88cd2d92ccfd498f1271b32efa2e7987d62aec68ff917f1cc991fcc07a2056d3cf0b0060d6dd4f0c70fbe1e89628bb5a79547a097ff771ca4f6c592859aeb3c1aeb7f227d109c5fc5baa547a094a872e911e8d79a73d256b17377776f77ddf7dd0fa5037c9086e6bfb73152dcd31a23ad32f31e8825cd36e30a5d92344413669e799468c2cca7a7116b66466a9b31d25bcd69a45864464a63c6f2521bade2e48d62a1382787dcfae85b3fef2dede25eb2dfb0d4dee2e49013d928cb95141dc95123445ebc8bcd8e5448a849cc49b7b4090d7232006560a1da94142e0813233363a60b69508d9a393d281d7b74efb987af4acfddd7ee86e3022ee9dfb762f7b7bbae9582af7ce5bdcf9e2c2041e6287b3fe717d96579c7672e31105fd1fb9f4f0a34e021cea2364a6d20aa087b6ff3d5adefd31088af26bd55a158288e0ed1a21490e0b609e1ab15bcee7bfb3ff98e20e9ded2bda67bf1bd30f7c6dc2b73efe9da06b337ca1f0e86899139cd98093d9202da1bbda7d9fb9a380b48cc260aae361403a92fd15732d20b947e259d50f6d00fd2d3df43c73a6aa0a9adbb5fa73e9d7690a799a3d432d35fe624087010efeddfaf2ce48ef67d5f03fa5e8c51a820436cd90ee8c4209e58f6f77d5f10ef87d8dc7f6da6a08f658bf7a9377bd651c253f6cef34e271bd20e99d295c922dc700562b25aa60267628480d158d33d8ea7fcafcbf36c1b6bd2824694357a5a74a3075cb6e965cd328d5d45a7fc4ba512696626973d430ec7d9a9b2468d5c368a0b0955b04d2e4f0e982e23e08faa6856cbae682ed91fc45eb08d1cd6f4f8f59dc70f2765a3ac66039d2f3073b46ca031cc0dd72f71b68140e547a6a2cf131ff06bbcb1010fe58a14385c7981e80bd7a4a82176d463dfda56850c1b12b88e2a38d93627c2e1ae9fac88c562b1582c168b757713c1d175dd9d95d28a03c7cc810347534a1f870f5d4bb9ec581bd136162bf23a5bc32a6834a7d16834fb14842b425d770a6bada85cd60084009728cf85668ed368646a00265050a0a8a05a016e8a81f3066c2f59e052957dd53738dc1b88a67aa79fa75fd5ea066a256437f51a1f77f8e8d33bfd3cfdaafe56ff4dab7277fbf4d240fd7da4dbdddd7d1a47ee0fa1088ce729df50b5d3cfd3afea6f7564745003be11053e95734b75222aff96ff932a1ce07216b591e933d6cc17b263ec51b59efca9ffceb2f1ca291485ad29346bd34627112b348b7cce3927c984dbe3ab696508207064ff108ac0d557a7dc256981a885a279e34068aa6b77368ccd30c3f667862bb97334b830434da6b31597a6d3ec233e52a0060272012e31ae47e8894629edce51a96421db3aa26225a0f9c07550e05185157ed43afa70923e0f7ef5200411909b905a0f91ffc953f4292e6deec5187b8ab4a3663c73e8774de07212d1b7e1e640e903cd1cca432f6a09063261e6d0b7b157a6518e643a6fb996a006b90c634e72d9b112d872d942cce499ad3e54a05ccc5ba6fe3cd48499c39fbe69e6701911dca23cb35fafb0ec4f7ec8fe25380d2d4c223072348d81864c01a04494ec30c8f4c9cf808461309c8f1be713470416bf24dda6cacf8f0828c065e370355a7089baa9b13fd6d8c771f2dfc620813ffb37907f18a218d249e71dc234ebdbc89d63ce993371b53c655e94e77b03e5544be0fe69eb2ec0794359769294c9fd4ec54353341f34d52e1513dc604cfaf57774ee718499e32e2be2a729275123cc9ce91a21fb8fd0de57666baa68c28cc2e1a9717993cb9e9bec85a109dcbbdf06dce56905861db2a372a878e649ebd4cd6984e13077565981e1159ec22f4f2b30c490cb9b4e89d7e5eb2d65807d5b5cc8d0e5a0bf737b2b3b4d9e565ec8659ca79517703570de549899536badf3efc54644e9ee25bcf4d0b3221cba95084113e16586eeeeee248a62e8eeee1ec24b10b35b56049234e0d0c9f9f4c94d8c2b49665404597173b5cf4f113819107511430dae6e109ac06578d34dc60d134829fa227302175099620b2982883069c1c207236a50664ec8c24042891b4cb03fa5b4524a8b18214518375c14349871e1a2414ec260c20b3180bcc8e0a28f5143502f42e890a204613c71458a25478cc082265ebca07189d52089306e1841002eb224d183185608e145cee24596329a4cd9e2e60411217811841120c0fda1939da94f713211850a2737207038628c22506a20831e8c18c2062fc05cfe1845042ec34c6b32fae79c734e1dd49c410a60e801f6c40b3194c464e10517392882721bc3e58f51343c7fc73d0a387fde8028d049c590014e4070850e49c4000a1d6c6449820b26a2d0e10912b8fa713faa4170019edfcd457796410e5fc8ba2c61030e37985eb890450916b84005165c5c0bc0d9a0850e3f3f4c61eb80900e5788f1450d08052effc905ec7e3eea6f7cf583fd6a9f5cd1598ac494e53d8db9ba3fe70a9ca487e3e4fb038131751a454cccebf57abd5e2f4aff276aa2dedd5afb1535b2241d14f59ed3a01ca27c71b1608da4c0f5a406850e52fa580b9eb84a1a4461af2f30232faa84bebecc1c14465fb75b1e72d691af46505ee8165b090bce57a4ff779bb7f1e5adf1f86bdebedf28ebc7be511be3f5e0f6a2b099a3cb1ed032ad65580d8f1a9bdff10e0afa7f1b2c259bd83792fc7fd1941634be9c5868be9c43734bd93798efdb8af425c74fbf25805cf6edf64dcc656b11d20ec67262a13196772ce710cd58e299b19c5b668c256a2c67179931662ca71798115705c8074343a42f22187d39c5e2e48dbe6e1920ba11dd886e2ffa7abd5e2ffa7ac5d868f84c93f0c30f3b9773cac773a3379aa2527bd95ee11147dc6eb77759f742f72b0cb999f6d8c35ad2909e798499e33f47e011868d8d8dcd085734126c5120417861ab9a304c730d20c393a69edaa0ed5825b37faab3843c8e2a84b2fe797207f66ce6813f292bbc34ecae796013c630b21f72d884c3d63878b438ca93c4802e57c1312ff342726389ca636ee651fd4a94822b421cc1c49489c9dd0cce80815d0811175380a969e2a6d8cfcf8f8fb38cd422b23f0be66d9e564c3023bb0f55f2f5666d4eb136c829c8fe3c2dd23c49a821b07d0a2356b1a7956b4e08cee4242b6c5414151199b913293241e686cb5994f3cccd2e5909f672597ddcb1a6dffaf8defef4f87c1a88c8a5f2c3c71b6f1197e779f7bfd1a7fbfb3e56c8108a6ad1568b894ba4a8a8a888880b5ac8e064b2c462b158acce542a92fc8f51fbe5bd1fa3ac1a8bd91bd6b149a49a211769ace90743b126f421b1004a717d5fc405dad05ad2933efc04fc5021272aa910e9fda94a45925fd2a04c672ebb20c601cb84ca492361d8fb0e357e05f0ef5ab864ec8e78665c5013276bacc6621f298522360b5a6335566335f6b9c66a4c06472aa3fbf9626bcd8eb6561b6bb5d6be8b9a8562e6689ba46693d8dab4494a5bb3496ced86996393a46c8093cc1c33d7dc56ab39a9a5be7d08d4b72304ec5f9ab222aaa2660d658de02a8eb2be0ee7e12ecee22a8ef58d7eab496c926b9379b6a0ce16b3b65aa53f35db0fb4c653737777ef7edcc11fb6b8cd66736b7172b2778386bdbfbfeaa2943e081cd968b6198a44442034d5c449d58ce766abd168b612766c5f0c56c898c20a194b5821838859c5d1feaa3c23751072aaa127433f94d66ea9ac503d32fd7e937843fa28893fba518124da7cff231451d7e602a078f250dda9e713438b85dc1a0ef1e8ad99003ea30a6519b93fe75b9086d757e48d0cd210325841b8c923b16319e93ec8a03766f08a19fc3e83231b19046b6430f42083249b0c966a3268ea208398460661626832283393c15358c519f98a2e0819ed4c59120766904eb8d97b70c62983333219a441c1649006ce6007a60cd6d89032e84198c11a60066d8c32f85f06c5d1cbe0075d066f40a0190ce146aadea0de93244b75ac33c7fee7fa4057fbbb14742bd2093879d4dd8e44ea9e36adeb8cbf4ec27c75120627c33c38437c9a2a7b5aa4c949d3778c92989791917177afd9fa778a39c5bc8df91d2a235627f17f621966989f241d31e38ecfd8517a98118b583c8d1ac0c9e118a47befbb07450de0e4d1d88393edfd6877bdef8e93cb1e7e77dcf19dac5fc9c0fddd771867ac37be527933f8ea269c1e8f6cc711f8d12f5fb2df0ba26c8f6af457c75765db6e12badfa1a99e31db6f3959630b6cbbf10753e91d305da5d1340a9934e5fa82491fbee961fe490f6cfa1ea5378d3e4fecfbf4283d4ce9042ed3974ffad24380f4a5f04de3d3d47dfae54bdea17d638947fa23b147956b4bc776cf88420d24313491eb83572c555dd775bf43afeade0fc59ad1972e8fd1978ac46a46630fd2873e4f46638ff04ba34f789ff4455c3bf4bb62ab13670e195073fd918323f8fbd792c2cfe02595c0bff755248f4715896570f497b24663c9422e83a492b8019f7c65b96fbe6f49a2755d518be0acbae59743ea57b358362d837faf6ad692651088bc17bc7fc1bf6f123df70dd0ece3909adddf8ebc0bc2c7be404dc2f713c82d8504307081e9972f3ee66f6ca0fc350cdd100bf2d76e6fa82d86f81b75ab501699e52ea2248f3e5a73c288473baccd165c9e6eadb9bfe766885773f7f795bfefefcbf06bfb9ead33572b829e61542b75a10912186e58f36472c35374afb5d6b943dde670b1737f4f12a3c0b973ef78c715747c63cdfd12f20a0ba8cf83048951550c679ec065cf2977634d7d9e9a3a960003c6f793fd1835fb67f3a0fd3e68ff0e0fcedbd25d4d9f8fa81670899a557af850c1dd57253e324393d0fdfdfd99af5816d1015a3bd69830b31d6bbc0f62bfbe372ee049fd9f45728b65d843ba480ec79ea1e7a495d6ae7e2bed808616fc7d6fd7759dfdecf7df67ed77b8c28d4d79ea20bcf7483abc27a550a4ef7b7b3b89530577d70802a3de4957d94a3d575cc90670ce9cd27b4adb5616ba64ef9b67e6fb26cc7cc79aef83dcf7ffc6053cc1e590dcfd27de6f1a7227f684d98e3d8358d64c3df4baaf08c7d8e1885caabe17e09ba7951d5060c4c8135b7804ae795ad921889b9b0b322962e0197956c9e28bdc4fea92c510f8441659baee5ab15b3b9c203b2acf2ab92af50af0527a73ad95d2dae1fae31dc512e7797d45fb7ade9c5d879a34354d807a0fefa3a64753f7fd3fb71ddff533a789a7350196edaef2ee0e7bba7be8d3dd3df4d919a4b5d2f166e6ccafed2d00c119229dd433689aa6e9ab52cc4e1fec192feb975ea7e75c1ff46efc0b08deb8bbbb7b4f7a3386e775b6bebcced6d7eb65675da2efcdcce15154492f0e8e3cfd066569edaabd77be8dcdcdcce1555aa91502e70afb2dd7dc6a1c5f052000d5ca0e3b78b9ec7f27b5112197373838a6d0940e7239ab60994373cbec32bd64da46a6d02f5b49d94d84c86547c9b471e4b2e9a43dd45b72d95ea81fc9d49564ea4b9ae8e4d28588e2523215bad19fa5570901123842c025d31a90c0327d5285c4894cbfc524d3df798191e9f3f0a065fa3eacd86045a60fe449a62f844892d90f50a6566eb0bd96c06249c8944031e38126022e355b0f371c0e45997e13756e045d340218fcc05c00825d79e5c004964351cc57d30a09a608f241369b41a6efb46945072e99bedb9638913112dcb53c9da8812d97a7dcaddc1f128d4295b85e148e0a1bca88411357845c25e452c0c3122a5780287239a599a7697def6256837c4f4e70f99e6daeed442e4f99763972850e0125fb97708391be61ade1aa06c0872342b8ac9d739facd04086952324c8fe139577bccedc0de8d38c4f609ee68bb88a8060d775241db54f1f5345115de48e02f924c98c22101600e5cf2505a240b46b18c99de743840ec9ee1af05c0ee27fbffa6861627e4767fb34624d2773a2a1428a13c85c340f764823d6f4a0f1996240f95273d17c11d70d1b70496dd9d63fe3a74c317df7b4237dd7c3fbb180dddc72af4a4592ffa8ee757c755ac97cf725f8ca7ef73cbe8af9ee53f015cc77df0179aa8736c9416a4e98f9ee67464a73b24b3ac5c9194f85c2c025a5cd1869b91f288426306d6fd2ef29ffd04727f1c68827948d49f4212772b2f49c8b9e48234ed7279e3c977db4f18008fc37dd5c72bfceccd1b9ebbaae9bd3a7f7f3982cd70a9a4439620b2632e8c1d5ef63b2a6962127378ca1258a27787035294f278a6ac0cd04a0bea8742ed724bd5434030100040093140000200c0a06c3e170482c22948ccbda0114000b698446805e3c1488a34992c3400821830c41c60002008021304343b30aa844048936367a59cb717ca01eb72356a07ca2b758841cd71ae177ae8324382287b6d7d6e9f4bebe439a2386a31096ad28ea80cb3dc746b1e278ef98ed940288e3f5557dfdcf2660dc621d65b72b4e8e4e9ae40e7aa51466a7bdd3ee171c26af2f418477fa5993e212c2e4c8d3c9b74ec767d7fc1397569a43c6937c747b64dc872f12932a3cf2a4bdbd87951829b96fc48c0200c2681fde03303dc45a1bd9b2c4c851f1042d5f83caebdcb2d8bdc0c38eca3b6890fc56f33124dc5d2b9a0c0a10d2e09d046e20ece9d3deb2a119ba0fc833fcda6fb6719b6b85b7d1ff77c1347a1ba287f4cfeab4e20fa980d21c98a61cefba602c0629faae981d97f05e701bdcfd81a82665aba9724197d6e64d6ed4c1518ec020b801039405d519827204280f8c34d5f8e2ce93bcdf251454d2e65c64febf2dec0030f09ab88f7beb55583cb38b2dfb25346cd1a4133d675fead3a181668071842d304c108686f5b8474d8ad7ff441989b3235038bd9db60d8481dcced62393d44311fef3c50a8b1e737fb817a53185b765ed36629a8d50e79c209a80de7720cfaba39cb27286dc0cf5b1b1a1c68409c7905c1d52bf789111ef1739eb0370f51ee14505e5a4f91dec54ddb0975926105766513c34e61e031153ab528a82bc25c24bdaa1bab657166703db862910890315e7831a02c5c2095e43d90a7780e1de3640a54eb6cc482bc64771a144b48c538653d95b4775c3cf680d6f2fb7f9c7f51793c918d9daba23aa6c10e8a44a5abdd845df2d4b4e2232b2c40c4d43c21116acdf6f23a9e9697a35916beb009b449d92514d3b6ba24daca232c8c15b048dc1f8498ca473eb887fb808e49f7ad26d2521324e1020246ec2929a8ff30058309e4a159dc36040ead649207ffc653cefc3523a045e413d7d483481dc9d28e1aae7ee1943b3d8339221235843698f1639096bc4d3b6dda23f6d52dbbd2bb91d14d4c241f9faa94fea2f6e07cfbfa3f71581d8bac20c905c81d53fa8b601ff9db6606b5ccae233f640d465e5c57d560c191075cd2b00e633b0b7561b8f6b7020e6288664846c16972271b32b28342882aa1096b9704d3eac71274fd473ea912fd13b93485db7c2a61ea19cdddb364797191f8827b99b4eabe4faba111ef48772102fa4cee1a1704ff6949b579becf93ffee387a82d6c03d0ad44bad589c581a3531e14e917d0d56b8f6eeec8ca1b3d6ad815b061b4ee5c63b7f6a9e3dce5064d2bde09359988bb5cfeba874d67c8bbad3898c93b5a1abfba9796f259596fa8bfd6cf6c77e4b6cfaf6ec4607e258c1f7e34d4650481127445fca029d12caae8781f2c5502f859dbc2a26db16996b64c02cc42c2acfc77577f8aaee70032615acea25508a9ebbda3661671915b5bd207ffdcc492dee2e7984c0b7b66db30cd993c2c47f2f92115a4c72324508cc6412604da898662ce8964dc02b1d48fd55290514d5cc43cfde2f7a466e3b917f6b43b28384a64f96086919a4e2714c3574e91d4f86990a25d8e0b482b9afb47936bdcbe22c297a7e989b88bb2b42bbb035c976dbdfd60ea3d0a0a8dd555f2a597d506539249c47e9da8c6bfa0eaa9932b5431dd9907ed79442586a90fa7d49ac082445647585b1328c1466d689c87765c1569a2e2b5012ba41dfabee5cde4b7d0840e6cf8c602895433bb1c90c3e494224bd65722add530c7233eef727625626a4ba9b55082ce3452622a28389694e3b5ea514636f942c61cc207ae0e6b91465de5062ed6216023b4349b0328c7b2bf22c427df351134df4efb32bd58dfb9c82a53fd03ae3913f545a7679a42793a8f79c26b6275af418274cadf44127eebc1e7f820b4fa7e94ffbd0f21461be86a1bb4157b3861bbcda793aaff3eac54c696cf9ece2e743fd07a8478eb89527fdc14d2411ce02485365c642a25a277a4a053c60a3ad33a089eaa70dd8e264e436e1bd62d9ebce08bc78105afd43e9258d1a92c1e440da8c1aa6f5199f8a293d3851245d5a397f9a736eef38e0c5108d3b731ac938be76d90c87ad5a9587041ac135ba47127ee5afc5c82d77b1fea8ab6d4df208aa196d711d67bcd56170d28c939a00d8ccdf76acdb6efe69a2b6278bd394c68c96031db95f8d6a004e38b8554a752703d3383833474382dced015fbe1bd05b5db5cd0beac3f182233e96b8f28b66050998619a0741f5d1dabede76ef2bfd804ea477aedd06916461e46f548a45ce371040b99496029ad498244810b5d8da45bc99f9f6a42df54642126441d9d27ff9371ce828dd6fc6745c7db9efaddea74d331cc4e4ecb65de2d94344f38d56e7e08aeb56a00b5b60e21403d8de8bc31ca5d22572925a9eab786aa41467c102e23ea4a8219515a8d477881cab2cd70f6615a897d05761bcfc09108f34fd50cf19208692c28e900659521487511cd570b3d8d8a53c741c824b195cde017bba5da9dd65b2793c9aac5c688b154b7d8aba7d53e384b26bf587b08b53b1139696459335e4168ccc1701d64c183a887c92a99e58b1146bdd72b3a9b37c668ad62be1e4c6aaa532777e492bbf83a7c774084c3bce89753a044284c3297714b140587a5d84d167ae09675a464f154e52da6ed69268f09b64bda8e317adf012ba60c1a110533e83a647fb1f591ac23519481d52c467083310f357ba9c0f50ef5a30afae3835509b6b3742ca40eaa6248a16dea706f9bea986d0d40ba7f5a9eaa45a47a4ee3bede097712546bd91880e16056d276a047317ad3f7dba6283622f95a18268f3fb0e9b6a2ab72cdfd4c5e0abc1c032ce2c0ca0896d162f45008154df88cfe5f84ac01b3a1a8d32dfd2935459dfa9a5a5ba4594bdffec1506fb9f429340eaf252bc76b9e1f18689dd14fc3da2d23a0e64046afd6580da34422ddb0028aaada3d3f3c651b5cb14c3a2b5854612ff60d4491093f8f7c8d1aa96bd6ea43198eb0b56a568f2e6c40fbe8e3f2ed11d864f5ca89fda54592a898ef28cd736fe2da15a24ed0ea55028ba4be55f08df056ebe0d124952324204be5b9662167cd378f5902ba03c225b252659921c58af22e87de060b3e871afe1ea65bab434ac67f8601e00c070d8c5eed26651e642d14ad0e3199318bcc2c996b1310a4370e4fa3dc2a0fed75b933f3186c1db6ff0c0529710b6eee054c10e928c836e5c28290d7b27cba13342535e9cfed441f42e82d88cd8eea8321fbae113ecc363212287d684e5036608d3ee79e1faa407e266694519c0c199cc117bf59803190240d21c0df1f861328f2a30e40b76259dd5cefac69d74e42ddcb7f6f2ef8cc0124175b6ed7e441eead505881002876b07e14c41060ca1ef33f077e9f030bd72658e3c89d5cdcdc13b0508b3c1ab78505e17e057286c7a08501aaf351bc7597b6c48a59eb2a8e594e0617030311faa45e7dd452803017c75ab173e3e10f9572a1dbe4d17de03525a54ece4a332d1c3ff59120638617d9a94f9a07fb99a4d53ef3ad58c9f8188562f0fe3bad8f8a8414300a4d7a51ab9b052d0840df1c4b1cdc23ddea1da29cbad3c48eb675edcbdfce220d70bf67eb5989ece3931b0ecad7b5d9f2e40f3eae81ea8fb2f901d6739f895a652da0f28a6ee03e20e505b1d0eb5c7c20219bd863c11dbaf2983aa9e57657d93eede8667158866b1e4e0c108e87e92c62024126e2708ff81a530ed01a02ff346d4a3afd467c10a031ac4483379e4a0d08d30153c06ce7fea01f00cd14f34725f959efdf323e607086881a7b180efae27d4c2729e23123e20a0bcb2f220a74202b904f0120f70a6ea886ff83d411059b80b6806fd79fae5ca99866aa2062417cb10685e6cdc59bd92cba1ac7fe69297e9cc40b269b806ec4b2fb66e82f431f7e3912c69308202ca4f8502dbb0d87f2be89800f751930ab87fa47cad88cc96b9228c1f27d6a3c9869c79e2610973da1c26186cbc892a1de09c42634859047d86168f671bc6a1709a466d962072c6fa98450021acd47abec5ebada0759ccb1137466d22928530627631c2c34bae1ab468e2d33a21a1486dd79108628b83609b47185397e6ada2e04802340e0620b2a9ddec74f98bda10a09bf7fce9e07856b60a652424f5683f31acb8dd73462b8f6880c8bf8f0dd5cdfb8a1faa91c569e4446039546c5d05362b2133857fe82eb41940fa6fcb2088f6e0c31ca2d94925fe21d25466e822d946538654dde8af735696053a5e564d483289a05e7ebbab0826891b4ed22b975b398cf5c70b31bf865304cccd7bafdce9a115e3039933b0af99e2148109537d219e158bd741bf46b0549c0ebe56e5358b1f6bb69a00a2a7df346d46163c5970b5948f4d15acb96e232691e8997840d944fb4d60ff82c2f41dc699ed51460282bd1e69530aa1060153b8f59c3b89bd3ce3886d73b58e7cf8043c40af553f0c65654c4657fc72102d6c7917b7078c4d513706b59f8bfc92ceb393fd082c932744b32951fb5a80423bafab2fb6ed87f95d695a0e7eb27364b7ff174dc299919235792139520ed6c7621c4db3918842635c32b2ac78bf40bf92ba6827b774d1918dbf577ab12c75bf21a45133803d8cd94e578ab2727c600224c48f366fd6b221fba4e475df1d515bcbd3b758c8ec5181171dc5758a0358d350dc4f66b30a879eeb566c1f1a845444d5db7604a9e2979b17cda9099632e5f36e55dab5bd11a776878516d2d3c2491b747d1fd0d0aa9972333c8221bbc8b4bd28a352b3bc6f379a33d3d45246dad878d73b7b85e3bfb09a37e4bb80ce0213146972b2ad3de2aed6ea91e50b48316d026fef1c24dd43edcf3a33a1b5019ff6c7b47d1b44f782aaa737a04d1db4f54eae7af3a573695b2e4f4a1bd4d48fab6361e7d455f97ae702cd3bcec46aa11935a5bf05699280096eb1ee02a994667449eec787b3d2119a877a7df759ad77fdca7f98a496e91859206b28d552602e596e052870088a3090336ecc8a760bbfc3cf30205e8fe2290012f8662c0e90ea4556ae3cdc99c7fdc71f4d8000eca57b475fc4ca92866e76545878eda58defcbbdcb01bb7b59ab3865032d150d91cb2f48a87a8de3c8fc3e83e38bae6481d524522453114ffa6a8f5ef95a0f0ef227877ce399e8f0ae8be43e4fd5503a89a8f8fe24ef8539a3b734b846b48377744e4dd4509617d4d0d8ca605fc3748d7b733800f8ee79a7bb06835b7e8d25dc8fc6c3e5e7cc0ad795f4b7ee7f35e6db33bb3d88b25267cb3529cf8c12f0a5a07a6956ebf049f4e3821ebea615e31fd6a55dbb24c555be50e381d3a8d606adaa7a3dd223f619d4034eb01c66b44294aa75bc33ece0ea77189e4d7d70b4a5eafcd98229c2353663377e6615d425eb9eecebf236ca618b6daa3913ffc9c00936c87f6a56e982897eb98dd27319a7e5933449d854996b45e8c8e7804f2106297027471355137d6ef66c0e8b0c88412de5e518d74d364af9795a94824a3f99fedb8372a350dfb1b72513bc1ed0e3cf1013e631b9442c3ff634502ebbc32e1669a2d800fe12eccf54302ac462457f047e2f6c370a15f6c0b5750f8346ff488443b69dd634a35e11b35de9dac986681595afb3f589bf3735850af11013837934013a4537e214bb695b0b211cfa79e49e8103787c8db1a228e37c3976501705265dd0070abf53e4e1b31ebf327648194d9eae63cbb4741bb23f0249a1a1df0b01c3738101b4df0fcb069012855a735fa77ee4b7d2cb5d200c9a9eb5b987c6fefbe7ab1436ef0a76bf7ac61952a6d997462147ac9920226cba8ec0f59f67338e4e5294e089b0bc0a324162c8368498dfe8b45a5efcaafe7ecc65cd5ac21001a534cb61dda1bd5f961f65a233e30ed18444b722b0a6411b8c3cb5b40c7351e1ceb4b83b014439e22acf345bd9e42dc9b85539d537b57713790826a770ee81180bf6a5da15cf24dd8ef3fad967c1772f1c268ac4325316c78a9e0d6510b49196f938c5684e031ccaee64aa52392cf4003d10af6232254b82a4cfd4ac419e3cbbf60708da7436277e4cf87eb19a8ff7df39c6ebcc6b8aa6126a2ed023d157b68ca35741409be11986a971d33116de2090c17040850a807ee2b601b8135ccee39014f49ce484f61a9dfe0b89715ac1d9ae983b870c7109bdf227cb97d63f5e158145c2b2214e0b7be57e98f16199b5120370b5042ab86dc1ba82aecab0657f0006de7f87e039fd3b32f48555740c60591a8d041b1e0b07dfb7d2e33df1b58a2ac9e801093849fc9a8b184ca6af0c6acf0f10053b7e85e58f9ce9b916295d10fd5ab1c2db4c1e90deeb5ba0199851993c3d921542139d035efb7d28ac7425c5fd62b83207e52e2b11c852652fc59fdd394a54c2685bb5f001dfdb6e54f3cf063905b6e3f7d4fa5298289d7895c211fef9e957ddda22dd5106f8721ce47b4c61694690910543cd72c93619f7d1548902b74d8d930aea9e1a91a110bd0b6292ad7254bbc09e52a251b6d2653af4da6c6aba6485653e03f890173186f008933fb5e024a83cbc06995aa61ae890086460c2fd35f58c5fd715a79e7daf9cc244b87e22b8b211c52660da35d1aed5166df63f5f8fdc7d51948e073204605a21852c70f5aa1ff568f3d6f9378920110abfc07588d066b94598882b41b0535dc21eb7589b9f4f8d76957a8ba514893dfd9d33963d7d7b951395aa18460f5ab3d41197919763ac7ef191277642bccbfe93a0319629f6244d749c60241858112fa47b9984808087a287ebe5315b26d9ab9f0be9f2f304530fe5c0d54225e7bb211e8f8c5f0359060ad8d6f710ae1cbda80abbd31e4ba8f6aa6a352b20daf17b945ab24e4eb43b74138c15bb14ec15cc76da872f50f6646db742f48cb504865b96da8d4918ac36c6350295b394543431fa3bb4b0440faf8524acc7ca3c64ea9a6c7151f9696a097d7114762dbb9b3b4663ad68362258bb83816254929ba11875c1c906b405c375c50f402a9ba3ca81ab818637108db97698aacb24451136260bd779cd8343e0cd027326e2cba6aa937da2ad72ca7a965bef5a72e0fef332b84b8fca7c187113f0a0ed692378655c18c538af7a3c21c1641a475ff6ffdcd8064220a63d7b51f3d379936dc8a4c0a5310e1218648f765b0f82c1f88d114509b7ffef13e747f1eb3064842ef6560b7079a170669cf1832e90d74658cf0bc5df315c6502df4864bd07a7c4c9dcb9963a9a45ded85cfb34f567912a4104bab1334e247ced3776584c93d6cbc4391e7b3259379e5b017dc6f27d5151f81a1d559ccc567217f3dd662e7fab0a71ff65957d8328fc5c44621211481590a870028323dac21a42a0c8ae46a783346c87244e6acfff6cba131f1cbeff557dc18896c3a572a33413232c376f54d573bb56c499318356a686090522528586686a4fced920627355e7abf4fb7fa736a31c81606609d94a7fffab4f04c3a80af56796da1ce6b565ac47a5fd7c0f04c36b0313a776c3a559fceb6ce3e9052561067aa81ffcff40ffff644a3f75425b20daea298ed69932840f50ec24aa69303e7c58148b15c9325ca0e53637af9402092dd5c746c15e1f6b7b2a5cae3cd2a7caaeb07331f59b654e6b5bc57cdc077b13eb230a4457224f8290f59ed5eaf765c78f2dcfe8643aa4595ad60ad857d14e480757da8b614a9673d538205f5e8d9fbc10be28461884799fded40790c8e31b021ad451d64903867765c4045527be9113f34f27d799136290e73166bcfe65cd707d55c1778aba0ee3b4c26019f0a0307f4eac18d2c11d0cbf7b82e4916a0975001e875c512e8e5e09f1c16fcfc02d4eb2058b940a9f9f87e5fa2507ada187ba30b4a2ab10524d0ddc5e6006b9558f10534bde97fe2a4684cfe76df011a2d518d58f28b4d616f8f380efd633371ba190dff2a71ce2022501c8ad2187df290cb7735160168292fc18e7f393f889ac5bd072e98e89301c97ec14103071673a8d6fa33d833ce3e0b30b37ad25ab6c57a44718fa45b03bf9ef203478d8c9858d578a8046d617d26498eb724512c4d27d851ce6cfb52c4462d88759c0c5ba90ea5e142ec213ced6bc8161d58c8d32d63ec320ba0d41fe3942a831127dff3cb7ba985b0f3ce35b7a32d5bd3e57e88a09ec7ef3217a986b8cc3bebfd29da64fe1d9735a8edd72334a2efaa479409a516fc0b5c4971683791969aace855d7b3837e85514da582d817b49a77d4b5f4771d2077255a88d264a98de7dc58a055f9de8b817341cb19a10b9157f481315e30da99312315954effaa81b5f2febfa0a89ec58c2a664fa05f96ec3c087bd7b4e84d69c2ad40d3a573dd55736f1e1351e2ca25afeb8dec768a3643cc22b0055be6291b243e8dd0ad3b95b7c0cf8532b93297d4a1c7e449ce09a968f8b0126b82ccae540299441620af2a38f0f50b86dd3a40e024a80c94dd73bc7014045331ca5a49c96bf03ee9d9e080963beedc4161d415aa389addd603d57186cb362fc387323c748149edf1c0c378a78e3edcbf24889083bc2e9fc99a592025fb10e3358ac83af9fddd166377d4afd74224367f93cb156ef8a975fbda0d2ec09cfcb3e26dabea464dbb4ea667c380a01733884f76aa874d034113e80e9492e7aecae9f507b33353b960bddcc720e8110b12bfec74ee8a5aab8ebfd27a6f8ec40c58b4a9ffe879ee3b8d6195df49e341bc7dee3aa7044fe30844c707794ef7d9e21270a1d92f23f5152599a01af1ddc97f6e038065abd20a5d48a1c2664927892dd32d4068741c6cf50f2bc54a6bf62ebb84ca09dad7586b64a23fe3955c87fff544254a25414993d985c84670eded7cdc25bedb5f278c5333fd4d29c7f0f93b8aaa8e9af804617fbb193b8923cf3ffbf563ff0ed24cd48a43300334ac4c71355ef897faf12379148f59ba5f0dbafe345153dfe3178a386e4ad3bb496a8fb8fadb3ffe54d10b770a88eb04317bbb87e8bb55dd15cea377d32a236c66afef2038e835fc245f02c1f0544b6664dcea1d9e07a63dd094fe34d1a6d65f3d984824fa0fc4651e3d1d09927962edff1b8d5e83fa70f6e561d421f90e74692df3afee9daf2ddc2ebc1b67e812b51a93b0d213b03a2cdd0521b216f8316ee8c2252f9c23cfca57cec1af3adeff1862651ef7d465ee60e5901aabd89ffe4fce6a134b8333a7ddaab8013a0daaa6996b91058dd41bc46d7764f6ceb6dca4c1255aa3e98ebafc41bdd1bbddd76c1b8acc92d2ac9efb0fd6bf9776960e54d67b490d7090fe5900a1220767577f30fc35e3f24b0d17979c80ee451605011bbe4184156ff353212e860095eac7bdcc3538a834084911d4dbbc9b9653de2c41b7ac5516f0bdfcb9a31814b79f39c3ad27656dacc9ceb6632de35ebe346ba398e81e2be16921b6900914fdff409362c26a65297eacfd280dc59f47cfaf4758917a55671bb741eac61ddc2bfa62519ea2a5e29269074d43ee6a394f8c209b2e9e5e3c494ff61e56cc278abf83912557d9af79b49fc739b1d2f66ba9f43db6a6eab9572c79e3b122a43700e90dc88a79046191a2370f440ad22d8512e746f50b84429d3b238e67cb545222c8858affd945f5244f8a5f86b88fa858b157c22b638a581e3b56ddba821f20e642f892e3a59aa87e9d12280074df79983e0b1d13bea1bdc22e233656c5805a9907ddec52d440590e9790a4011cc6c5c8aaf98b1162b0f3a9f45ba16db68f02983d1c75dea6a981cee9318b42376195c462fc3c151a3786feeb3de46c23912323d3132222d372b1d6872d8dcd3b122ac5a41b0ea3486a96b87ad265c4c0973f24df691d8d9c813841a9e57415eae8d412cd0c3c42542344adfe297211992b3f66d3161af54692d3976c268d93da665f2a8892009f496f22d592445ab2b24a55faafea940fad8fda6846b33198174c1032811cd6a71dc04e64c470fe0d84353c72e8c341f546847fdd55c05ac3104a6187e61444201e93350a218440ca29c834aa8480818dfa13ab2d9484e314aeae02298b29d480859c0c59deeb7d1e95a1b7bd3360b2f4b102daf2445d288c2430cb894e63f4cf5f4ad448589671751ff4fd50116422089f279a9774030de12515bfc92713eb8834f667258fd543a6faf0e29b823291c269dab97bb97582455862a8919a49162810f6c0744421ca61beb63a1b277c85efe303b1f4d96f1f68d4a30ad5f2c10d17daf3f0945298edc7e23d5307b8256a0cd38fa03b3a46c32b104d52179e808d7348aa85122942d7320ac122998103ec8bd8e69ebfd750c8506f9bc02840142307ed4c8f27d183f4cab5fe8fab3d5567bc19730bae107b27714cc90ff9355e292f9ae4945141c29f0a96bf83f92ca61291d6459991d1392305f640b4b0808613ae9daf7368c102e171a10289ee07891ea9decd0426945b04deed642aeb935a0f8e09bfa03483279c03760f346a3e6d5c4b8d847041d7cba290090367d14018e0f60a16bbcab9a05376208b62c55da52a93d26c903bf0164a542d88daf87816dca19a926aa0c5eb16b4d3bff370e7bd84b7fb01d7e086e98cb4987abf0bc587466a1905d1054399ca3a35a80de9574c64627e696ec504e38bc909b387e1d680b32c41810509637ac6d580c255deb4a8be08b41e5d684f5414f5ddb005627abd52799f907b3e480f650e77f7a7c35922c3574b4031049bedc683b8545dff9038e99ffc1a6124b37fb9a1f485e230fcedda8d27bf370346eb04d2e5b8a1a9d08d130af9e1df9bf7e15b3f98dbdb449ff246e49252c9d82c77c7e34273c1c944ba173cb73494abc4870dd202961c9af466137389ea762625c4458bc2ea5181780889f848b66e9134d453ff997516e2c31e04cf4adbf819db4fe2da44afa265d15f9afa82a825fd6591b2823531228e0493c6f1751433f83bd52b7aa9048aee8020358a5047d3a52a1957699e34a2094b123b0f09b0e219d48fb4f929a46376f75f4dfce89f8621f6f826a90b8bdc872a8c368ae54b0d5859608cb3c4c40c9468ca7030555b2721b0d2b2b6ebe8b5a7449e1526abf7bbf901d9bc15717dd7fe179fe8dd608692da4522291ef7e5f8c089ccf647a580e86b58c0f1fcb630c34c95f71ae6a30624cfad92479afb3fa9e901b24c181981bc115aea6e10c3929a787b73a2331e737d083621030e8a9ef2d44a1ceeb54529936c1eb76a4d74477f90c6b945dacbf080a50bec4fc19a79c159f47373fcd22b0cf1a2db717705e2289e0589c187c5db81549d2846cc6cf40ce7a94b18bcac6fe79dcc9309316ee33a0c1369a1c7799e8a130b0267a4dfd80781ba67accdcde285064e8775f89b1e57d5dfc99f6df167251e6b1861f6258476040ac58718f3ca47b07aaa6c7511a03bffb0c70a57fc30241895ab7b0bfff816995a9af35592b1dbe4fe0e96bafa1487485df0a9282bae2b56dcaabf7802fc5ddb535416e8c1a2413f53a001ae2b4daf2103d33270ff4bbd4fc43761a8f831e023a970025cd537c813d1d3d32ba778e5e29f9b35e2aba24edf3cc4624611dd7434ca2746b03fb3101641c34174d355d9592e04aa5d9e6ebcde7f497a284207d31c6965e4f8a9022be0a34334afb6be868c4fa25f7752b7b0f646acd19d000e703ec1c365cb5a51212ca36f839a9c103fe500ecc5951ad47dcc8a01cbe15d222b06c3329ba0a89555abba997c99886e37dde2ed61103a0f8918a837f06cc5c93555407afc50ac309e8c9921c9cc68dc1dac068fa048d1695e9d78648cf499d7efcc46e7b7101ff3ccb8bf8e77940434513469e36163a8651f655a4dd8fc06132db59edf7cf003a17f2f86fe70d69db1fe1e54f63fc4a0c12716b41813d835fe40e9a046391657918fb75c642c42763b8fbf5af03a901c58441064376fcdbff169f4103588e83c27ed55ee2bbbe2c9a8c6657cc6b2b220cbd667ea3c97806d6702866d1b6b339a540398cb4ab545c05fbc24a0ddc12207bcbcf55afad61d88553fc302aaf8408e42c39cab5f2d18a65ae9e7469279160808f14750192994392811ab66af6f5ae034499a05a1c9bee87c7754444b145841ac08de54e40b6709c000b4b45fbb936bf9cc112f57319b106733fb8bba0747407326600ff26943f3cad099688cc5f3cd21331787182382f6cb827c3370bb38db73e3f99a02333006860e1261d43915759b8dbd89eca7cb6bff4b4aa3d1897f2d8ef4481ed66537dcb979135c35d9b44b5ca56ac2fc4b1126694a0f57b8d13f57af077e38f8f0a6917a221dde88d7e899ede2a30a67a7e008f4e5235c2940de29dfaaa75cba35ce96f2088a4e094f7fd7e0d1299ee5b0aadd985e1568f39a9eb7f9ec7eb15176e74ab4de54d21d34b34b6a78b8edbf2386f3e93d26931d983a43657f8b001718e15b743e1d50030d64f10e48c53c91c63c50b0801e5839c8efdae6aeeeac1cd345e8a2e994fdc8e910bd9ac840110bfa310fddd8b4f5123c815832c759f6856cbe152e5ceb8a85cc4f5b315b483413ae0e0c34daa70fea29193920f7d242d5ee56f0920d9b9af57a9623939a64c2449ecfb959c6fe3c8fa8e10c795dbf4183102e74935588c99f28f43d2b0404562f944af9edfd5e55626257831d9b6f4e2d4b3e204102347bf933b5fc6483e41b7944587efbc9fccbae996257f246881136520e86cd667eea8ce6ced56d6597bcdda30ea3a75f923d198a238804ac0d6586047abf85c67d4b3c434f3923d2f5fe48b5fb3dc392e16f166f9159c00616253ad16a8d65459f6e6b1bf9b6aad6bb9a5f95436e2e37607ebb9b489ec9386bd1b6bcb3307686e952f7482ac128c8083dea008629c21d2f0c54186f5a916611ee78c9764b9995380635475c726b5c3c6ee0f026e65c3c86cf848e6848456fd775ff445d200fb154f788f5b65c6749becb0df20825b1facfc12d0382888bb98301191d5133892bf5904f02f78c0fb6657a3425aeb74e5b8af4310ebf1dda271907d54ad6f8cca142a228bd9675a83f2e8e8fabf9c021d44940b11b20b61d27e643dbec59663b4e2fc86cd0b333cc3a95986b568b7fcb33a092d8beb93147b4ee628c3d1fd8b21fd6a58742b2e6fc424aa43f3220a4eb2ee20d69db8eaf8b8881d98e378edc251d1cf7bbc5c46124c30b820190f418b0975b3ade103fc93f51b9bb078a072040d0d26114a94f421867ab7200539b24a8f0783dedf2c3c62d1d4b44f9f9b9213b4f18ac5523f62fc3b67b910662bbee024fe124a6a40a1bc2d6406cdeed05b96a818841bfeac368375f3b4bcd0d5c4af4bd78b7d7792a9d577f33f200dab0f0bf4d37eb904f06b40df6972e28f958d2b2a748f11c778a91d62e97894fac88d91789625b7778fb41bca970da8b9656a18de98e35c5dbc8ef3ae0b9d27f4eca56f54953c3a3050a255d62711bf9fc89d2fb940e18277b0c1755457671740a9568e7bc377dcb74ce346ebe3d0cfdb70a5b8a772dadee0a024e22d91fc5549d0746397add60953ed146f668347a48a80c6c212e4d0a9e56a34060abf27725d4f83344cfb39c6e46a3949c562cba4cfff0835e60f94ae638702d404bf0c98764a9ad286adcfc1cb3d2e6cb3183b696a597c6de8d29f56a9f41e39a9ec0a91678f43b92a3e1a721ad2f85242a29a2cfac6984e9dd68ea483e458d737cf074eb100135917a85f3228005f7217cc392833ff38da487d2b587e68f2ae750ce1863ee4e332221294d78dd3aa2bb34315e1055c5f9d9806f685f3f2f8b543f88061b073f8004a4c5e84b5928a4fd0933ff4ca7c481c86f1015316d81165136106819c2ef095d4d8b322a9a2229e4ca71bdd38e32d6a53ec99bdb31b364763eb0155b5f4d8a038465efd26e660d03aa99d3b4f13ad0a990be2928a33310be98b3643ae3b728a58fcb2295ef78143b98cbb925a4cbb9d17f25be59dd134e125ab2574140a84979bdb86855f2fa01f3aae9f67dee3e0917d9361cb93d93045037b15db440c4ce52b622714c9b0a2cb09ccdfc4a1fd9e06897eb19dfc1ee8c9b7ea4488f73bb9fcc993e31d9eca9341de61500e526ddf66f0daa5b37bad55b12f82449f163a08a379d818419ec7210da3acb3735b088d0d4e5c90b122543fd70c9a37397bd0d6f86f8a0542f11a2d81163cc1e625f4804507466d52f18941cbc9a8f333c1e88992ba4f1f4310589886e295ac67ea594576ea98f3be4909bd88eddc0353e1e97bf57018ef36cc121c9609947a944a7d7d81ddc75337b26f2447599b8cc52d0a1aac42db8cf7528baa65e38f54f71a1ffe00d7131bcea09224de1129760a7b30633997a619b47786e7f1035766554fe273ab3844034d7c8f541260850a42bc1c2eba88afa9e06fae0477d25c84088762da9b4d2cbc53be90559bef4e2628c250d9d47e711c26a97da91b4dad856da3df8d77bd0934196e43474ed56b305d629051303eb4ae5ea948a88621f3df72d4108049102e25339ed0194cc51400b06e7352066433bf8b90c228508770d7fe57df632ff19617ef167175e61f5b1bdf5802df627083f0e9a363025b9e0ce2d87228f86be7d5b943d7e1000d3f766afd5f5d162ea8188894faa12c7b36808c1fe13e555c8668586f2eb3b4f59b3c2193bbfe30fb53b3caf160737d46eab941fc8abce074db2794553075e1c71fbd2e8101fd0bad6589d5e1afdbd93da595d2e77abf1f6d966e418a2b73b6f33add9de8d0f25a83ab48bc23d1a92b6613ac4a4e922db525540c58b4de304967cce1f979c7ad1a1ee68186e5e06f978bddaed5f9a27585acee3ea3ac2aec6f0c5f9d665e2ad4521fcf1b815b74c318499f698014d4ac23fe058c82fad3a50bc135994f84b4f038fd244252fc87fab627ab281956259c6fc66e754f46bdfbb9d749c4d1a1d10adaf3943e41ab6cd8721b0c0aa326bde6f0d66d767fb4d235e01799e87a4d8e229d33638f8f8da3fe593bc693068a77894ccfda84a03fbc6deb76b16a980c82bc46775a5fb0447d1fc2113626c17e0b0bb2974b43a49f919e68f2e6f558e0430b745d5942f1abb530b3978f55258c5d227084fd6c8a97eecbbca1add43143e11f70447ec4448ab4523abbb4b3a5777517065126a468f898b2c077de8479bb78f3e97cc8219106cd72461437416b374609389698c149aaf62e4fd185dc986a649fcf807e23efe02ec6207fc9b6bc7900082b372b0f9ffc1869129605c6eab43823d57be13864e96548fa8db6d9486d8b8e8f5f49f13d1be12d49c48e8498178bfb1905209c719c73761f34adf2cda403a9e58015e0a1f14adb9a6245cfc4dc10b9be7303352b1fd999afcc20486080f88fa4376d28442112791b1896872f8d7b79125694f463384af0f73f750c451c0a5530593d2bb5d5d3d8311a4645c386ff84346f50a56174a1f946d34bb8b6717734839b1863ec3fd1655a4de1597a7195cba670ec09e04ba52e82e3a88835c4949cdfd77b9264aa6b75c1c99a86990a8be0940f1b8f5a556b62a49372dad9c139d781a54e49be21e018dd97a2c826b7b5b1795353a826887251c985db41fe45680d73b4ff80e81f59b58eb6a2ff94002f46b865b3c2d8887f279266e731ac1247abb27d72db87f561f15c72a15ebaeb4489efefb9c1b945e86a5037ca5f64636c6a6e2d544eef54a0dffe103149923e5e9a71ded2094f80cc22fa44656cf187c93bd6281098291f36fbf51eb5b72de675e3d10d95a7c6c87ef73cf6ef5b53498b13e440f42e3f9bcb15be0978a9594f0114ea3e6c54c3d1ae2e7a091dbd45e5ea870c6feb69b0ac8e2856ccbe90bd28128061969d393294fcf2f13ffa85dd62f0af8cb60fe39774a13c25b1c664d3355aab003f95e8906b73f8672797862fdd2fa15cfe280201fed4a8348760f809ce5a03ad637ec6088401d436bd3e084ce6139f686dabf883e8a9b9c34434f3c8d8e94d64296a174fee00db7c09dbe7ab872e6c82c9cf4cf79b14587e3bba1f52a2f775587b8d43d7700b09dc5b4983f3f69493357986c65ea3b0a9891006f8f2722c337a85d2396b1799007b4eaa6fc267a30a302e237f35a46e5fb3da5b98488f8b41bb634b28b11b09aff8c1b04fa108dad84f734c5e18b6374bc176df449e5710d70c5f7d48776dd364a7b97df4fec5a6064b777165f4c544765e8724fb4de09fe4745c19ef5d4c3ff7abd1c373def4d474522c98705d22d222c4553285086f4abc8a5afebe2004f2db20290bbe25c847dff175a2fccc6288f677b54a2e59c33927b19adc3e92e5c8eed5d082fa8ba6b682bab76c3d004008df941f1b402524b9894ea869f157c5cb2078fc04c33746e61ecf6051205a1153472971d8f1c151ca57faeb2b4c2e32ef54a2a243e1c7c758bf14b17c75b0a6fe40a92dcdf9b428dc0b7d8f2cd2d6bb973e20796813135833861ee9aa4ad2d29e14e1d6f601d074abc7b0815811f91de822ae08a34c8da3c1fb689638e4ce03911c098f98a3914dd5558bfc7f60a93c9b7494934712423c8116212069eb82a7508553b33e41b86168a2598a97b97da8286aa5faa409cc6cb3cd1710484078d6cd04268ccdae0f289a3dc8542c7e664b0f53a36e9e121eccbaadbf3d7347681eb12d2dcc04b6107cd5a6a009d7b09f26891cd04c8b78f8afcfaac3830e6c3ededbe76f95c6b2c50d60394aa6f94e3b4fcd483d6e3fe633d535390fff1f9852c8bc68d7ba99f4fbbea403aaa60cd3167bab1a4529d328de62f441c200babbb184d80144c70308dc4f2edaa41e970615a5b1e476b0c62f6fd02d0c9d378f0000d3881116446726314d7bfbe02fe78179ff36463dc09cd3b778ee1c38f4212f58e735f2c9ca9a8ed17dc24cc2c6e713f8ecb06451d2e07a03e72e9e2cbd1bb35186ada33b843300aa870a160a54498a4691c13824ce5c8723666a12b1669772cc9300b15c0cddd9d596bb3534361ef005d1dff84638082fec27f9fb8939587160917d71947733cba55b5fe29e06ea92b7aeb7ae958627ccebe9fc52bddbe59c0850896f6a975db28241b8d8f131645aee274d992e792172fba55482657d63570cdd9c25b2e54b851640b4798003d8ac32c4f3172b11d1e28fceeb20b5ebe9c2b6cb5262d896fe46a6a1015f2552eb38664aeff9859cf31d788184eba091a541f6af51fe3b86c1020d6477903c5460298c3b95b011b46b543f181d035f0925aff927af7dff0362f8ea9351864d68161ae671b167f6cbca4f4ff0434fc5b5a29ff739c3d7a2a42f83323ba1d0061a578ef1a1ffe46add23c04506ea03e0e5f012fd2b32bcf104da94697d4431538235f78f35d81e0348d544ee5651b110bf6d5a55d34c8c337dc3c55ef955da02c091aa740bf28a07e811c3c8ed597c497fad48824f30a2d6642373d1324d4d6851fb992c9ac666d2ecc56d1907fcaed415b4fcc988fc71cfe63d26296daae8825237857ecd5409a05afc02ee0b758ac1b0daa590e94a9e7deb37dbb8af5de6065ca839f64f93f216aa5ec19262cf29bcf49df5943cde1f3ea4bfaeb124fcb08a2095bb5c03a39ea9787350bcf5d9a386f8e9abc0c8460937042868d45971cb2823b7bc40e5151c2b7a2832c448b221b482c92106f4b7eeb47641403dfb30594f31e616da971776c06fb4896d5fa718ae9a7e2ca0ebe0073719aa44c7e02e53fbbb721027a5edccd7c44c31558df2e46221c3d9cb37df7b4d082282850787d2c3558da10499605bc6dce073bc6e5a9585ead72e1a6a244f56e522ab62280006ed64f2d50cee8fe0b69b4b3b3aa515aa14fcd9452d5a41aac2be5691560b0069944bcac8239bc612d19659ed8ef8968c2c2eb1010184dea8f317f9ed0ee3ab548192520522c048467217ea001e8fc703ff2ccb45f84b0578ffbb9801e22c912d5c7092c766c14d9a7f7ea2e55020f2afd6327836a29d87861c16e1fe02b935c75d36a4a0253750f4910d15e418ee8e1b898205460ac7516f2966a1d44dbfe4cf48947ef333133205625aa1dd96643fe1a8522a915ebfce487dbb21e82fc486a7f533ef828a48ed06063816234508c1cf582f8f1eb2c0a81ad8cf9c5c2ad518a1893f37573790c40c95f599e3a556bb58bb9eeba82f423d56a572cc1e2861a2c161216d3286692f6d03fcf3b0879c0aea712c09a988df5c51223df1e8c7622b650453dadd10082039cdfe62011644615e510c2e5a402851f9f0b72c25ce0b9286f2e8e7a98233c227b12ac10d2975e779082190efdd84c6a598f5ef7ab62300e14969b75da986ff4fc1a91332d4bbb598a354d679d5e26ffa1cbe4d2d95ee4eadb5a803da56888bc1b64b841e5a2f9afe97a0915da33140e6197e7d0f44c2f92c0a07c5b501e18bc4ffaa082311b2f2ea9bfebade1cd7f4919cced8aa5baad3135fef97a393553c1566d9ead618b45feaebdb3259309809dbd54e307a4982987a781889b3b365f021e6a29f69d6c85ef6f4ddde64a8aff459165d832c400cc11184ca0e77e9b49b8f7371808779d74a1ed8426b8697055415fe8f8be0af5c64252426632a10bf7212664806ad258fff6d402b4d404a4529f80055595612aa7825888625b6316a3d82642a037ecdf64340509da94f8c79089008bf71b4e29e4d48273fd7da8c3d384c8562cfd3209667e41d35baa8ed8a922d14c33243b119a72c044df17af2bd273d4f4ec71ecaac2278b47f82b0fd8697123fcc7fbf28a6965eec8af59b490eb737e621916c3f498a1d6589f2e79438c338d0da232ad74b9f5eca57b1b738074b451750d3528f1dd7fb492e786f2ca7f079d111a7502c583d1a543c6aff57e95afad8821bf1d4918231708302dd2b399151db15f7b11a4ea863034ae5b7e5887e1e10969ef6919613adf59beb333975ba7e2d003d9e6f5a361a5ccd732072f2052a8e98860cabbc50fc9d6aa27a1afd5fa15a619148ab4c3a1a8af8a93f59108290540051aa5e2fa86d20e549784d234d32117693cce701ce07615fcee6af0b8359535e7a0dc833ac70691ae98806705550d837c3c0cbea0c3f69e5cb92bb7d51f542c32d6efb0b9efdd4a3505e5bca67e1c5cee1369255955452967b496d45592d7134cfb2fac9817a09abce585ced1556e196c431850fab47b9a460e872c5824f1e35373b129c58c75b0a192e53ec6823969270554ffe28ca6c09834f644e1e5e109f1f1e672337abee2bb8a173e1aa65346f2ac8ee76661849f7a9258b66d8829d6c8bae59cd29d15dafcb97f364aef1ba189abc2b33fbf4b1cc1e2f89fefdd9f03626fdfaba0fdb96948ffdc8e059e3aae9952bfd91c86cabd06d8f23aa224d66573bb3b8236c31bd28684066e159e1a600756536587ebda0d23649c349647efae7acf32385d16b50fbc99828a966b9328b94150976dc356deb30b584c5eae8a10ed3149d40b6672bf7344fa3e7cfbf217ac0b939bf54cd17d843f68320382fb52ba1bba9db805926f7bb308ac04d14af2e66e9084b735a5e8605e71cb6eff4d55be438f7f3654921bbbf7eea6dbb1332d6c0414f83873e5d37e2072437c648ee9dea1bd240f5c41d6db9b2373e7726f909da2a1d05b103f24158a25c26f2c97c83888f5643e23cdb4eac75dad0e2f0dbf4eebbba907fa65dc63276f88696effc78cf45dd9254423d4434829bf3252f02d3562a331dca3db3183172aa66f1b1789564d510389671e17f57839bf13ad804614217ea6b127ecf59a1fc43284aa054fa141f83445e4cd211198a05daa7a7191565100e31bcbdb0dab4c846d7f47415112dbeb856338ceb9047702c2b9a7b03302dc7f8e9a1e1f43928553d8aabf730fad639bde7c4727598849515bba8c2fa74e8840bb6d5e8ce2c00fb4eaf3a5722b65b209ffb9374b693a6431138e2bfca67925322d536245a054991290b5e30b1f43972a313f1fb091a666de6acc8905981c13b4e29e8da5829ad7a8a621f71ae25a9979cd3f0f51d86b17c596e706daad127c46f0172e970db63cf4ef04674135b3188699bc87227e43c1f096df65bd774979f8c5d6af1da098c787babc184954ecc75f7344f866ca42e8051943adf65a9bdc0af88b0f4736442d4819f27d9f5d8345a008901dc455c51e2c85cd4d39412a2c30f962a4aedfd064c8dbd1de3c68f6342a0653d1731fbb3d513054e8985354350d8a396baa21e601a4e06ce63183b9e5b55a5101c95bd68272b82c420a3da7c435134ad074a744981346bd635e7b7bdc3f31e9986c04d1f98e06d11c19e77af52e524f81981b58298d8223948baac38d40a13d01d6c43a2d65bf1410e50620239fe2c38a740ea2eb0a671dad954f0ef8aa07aa4c5f70af831a8888dd6a327493110e58672264994023f88a998fa367a0f1bbb511a00437cf3d824d5016f1f1e4ab4c202481ee3fd3ca7df6b0d9971a2e79224db3f682890562a27d7ea0efc1e32769f41a551c3d2a2887a855be7e1962aa5c7e555d92aaefad8e0aff00d82bbac43b2bf570b202d9e434ffb926ef46297b1a8db31075bfcaa324711ce16516f135db7d43c733955d99f658e9ac2307697f9af0123dc2e69ffb52dbf64aa0f27edddc70384c2304aa6b2ffad8462cf9cbfe3274fb79c6cae97ca6dae3e42c18ad5382845cad5d91d4c4d916dc91edb0669a1aaead3a6020ebc28874e78f2714a261862f87b3d8eeb913eea84b2a5c7f3aeb637e1dbc67fb658d99d6691d8b4621feec9cf620167a759c22f220013aab1dbf8f578497d7a2b8b1879cc9d52aa55e30a1a747d3a70b250f8f025aac388d83e3078511d9cf8149da5bc9869bb0328568423940979606bcada25b0418a1992f1ed73507032bd7278a15b46f22a385328d87fdc17fe5436bdec92f46e3971df73a46c5c1141654dc1d76103ec5e0937acd3a7b46547bae2e6a000923ab3a52424c8dc42fb1b242e8f61a247dd61f264b823e10c7492d276d683b4a7a9c496b8880929addddafa1a8b62db7d12d75ee14ecda37398d358e83773a060df3c599bd716b9fba476af1b97154efcda73a2817335ad5a656cded63d75552257c1879fefbf1492f034d0b955c08df10aefd1fa2e5cad5b292a31025bf2d7c4ee03388d4c0daaca3d8009bbf028356a8237e3fd9f93457f6a93c050e9479e036210e535d98b5bd6cab7384a88154a5e0792ac91429381c36114d70e06dc012d019829398e854362811b22cc198697a27be5a34b6ef6e59bafd512da7cb5a0f53200a0c46e0a9b35c6d6914bd6062fcc9044622ffa80b4409d52035db9f13ccbfd03f2bc3cd2dfa045553710dbfd143ddf01c59cf1f24c9dbc5bbe46775ae0e007fb43146ac24be29ce21b6ec2b4680ee8f916ea4d9b4f958be3a4db2c434c3f6be61ed257973655529a069d655c7b25eec48808967bbdfb0420d47ceafd5448921c886d905adee39d7ca69238a615df2414aa34b0cada744b6ede5e0accc0dc7d12d5fee0307ca74728b60cd80d4562f72397573228cda390d0c5596b3588a8f12a10c86f1aec7a2a0d28ec151a1a3199a9bc605fc62c52f2d09e230b34c77d8986b9328e492ec966c43796d4ad4e2c2ee3ec781287aa1fc27b42577173ce2559c3e5dff59d380b61a6e29e84003a61c3bb6f720b2bb5c90d65ec032954ac1bbe1aaa5f7d8ecf67900fa1118da7eb7e71de950fd51353f7d2bbc5263eb61e74375b857c68a2883ba568fc0074ca9e7ac712ce3ef857e535122bd35e3696f4f1c2009fcdac518f2e89150b3ff63249805dee00f6934e569be67ec98d141fbf3a8150ed0236fd6a1a921f6006d5aee04ea50452b89737588d1423f0f563da565b3c0a63bb048c852d1c5d109e36ef7cd9c47f8a9815eff992bfb8e34e08044fabfa0a1cf7898658e1feb53b9a400294986b7b29e11dc0d44a993d6bbf332f79289b8cfab901cd83487ed6f9d1abf0647be9446e1e2987d2da10d7b961d5365856ddcc9f3c9bf2178eab1eedbb00f9a045a2434074ecbf4ae2ea8ed22032ec92906812def55cf5c358dc2d4d97806eabb97ee9a34bfe52d35a514ba4c4724493de9f1ad66ecb7ee4a24acbbf6862619f32d4d58e4367675255d84e3fdba7555dc6f3d7585e22b69729612d599ca78e0dca96835e28121e35ff7a443ced2aad8c71d6328b5549ff6cf045a4d9409459782c836b11330dadc00a6c1a4f134a537b4ab00b08586ecb1c7c0d077bad19aacfdc52fd2e3b452ba6207146fff6b4916cd9d2343ded70ba2712dec37f896b58444d02d94368a4fcb4f17b5142ed262b5314a2e4b85b6db1d5baa7f682c994473f579238523cdd357c5bb2d9090c6d4f159ead1679136132dff0847eafaaa5137456018599fe55fdac02cdfbbc217eee9d2ba42612452207c5dd471a5c32ce3227c3d14c6486d391a5f11006779c850ee8a289dc5830d736c35dd40709133de2c3a4de30c2f868487124c95fabd8a8a7f965ee3f445772d42198dd0d8f1b6cb720f112b3f988540571426687b958e0eac266ae1d6a6ab50e1c577127caeb281408d45e8a67c12f60a0a01e80f3a652d0f2775868d93aa247297695df87ecd1e9dc46aaa497e5e7e2df7afbbf1203a9df7653b4923eac03d72fe9650422fd65d40adede25fa9770601b4ece1ab86930949b829e09d1a119cc633d7e663e62dafab8f8204c8c76ddfdf937448460f429729c0d4d00b8c222bce08384924e3c76aada39697c18902c5c38a20de32b8236748ced1799f6c2071626a5ea346a87b75ccf0a147c1239bb10428a39933b38aaf8392f924bcfded1b67f03ca2a3a9ff21560dc148295d8e006bc26279a9ac79d5aab01e3781f23bb408d0d9cde27e9e51ae273463481c296e039f800f7c8fd5fee5f088e3e2256b92cad76678cf8dd6e760f6da264e6e8cf4823682a0d6f1cd5fb583392955e13707a1a06e010fc5d55dd5a6fb611d4fcf599c374dd32a6ade34f60e9d26f5c61e5273a126e5366d2e89221b1bfdf7524536f89402daaad180ffc4af5163cd3b93b2eda4d0f7be56a9eaceead4002d63a8aaa3a81ce64a1f39466fec67ae08828d1155f18a4a6c12ad36fc7c778fee1417be0b4f8933208fa6f36286f1063bb0086d7f2dcbeac0a63ace18aaa8eac05acd65f5d8615ad11354c2008bcb16e1156a4dc4560c2a73592d8b1668e32acaa81b2ffed9788b2687516b3fdc67b23d35e74e1eec5045ef946ce736ea7f07f2c1309da263cdcc80fc481ad2dcb823769fe39854a48896cddf85a37fda16fa33528347c52fe48b6e7454e6cc8af353b18e1cb22fa8d7ab62ca44dd4a588a87fe140294fec11cc9405f3eebe5250dc6b1404ef6669e55464d26f3d157f4c98815ec2426342c11fac5847de54a9c81e73ff148831c7e9172f322b63034d2f38a25992814b981b65c79b9b76e685b266938113eec87d4d0af1bbe380c1a1c2d8ef59f58eb794869d52e3ee5f9fae5b16a46b96da303f53b64db3f94581092c5ff2568892b928d0e9217cb102d6d190d6a391559f501fe121b5c65448ea24e4ef0d199411cbc56fb3fdc7c381501ccd21fe6e5fac6a9fec78dad155e70fc253318b3b20c8a35ed4216e43c39dcc531625cc92e34f7c752aa5225704d1df1ff8c37ccb1afd40e096942c2caee45c16d79fa1889474916a70b7cdc9675a315d4809caf991c49a0769b9d7ace4c8ada15a419d949062ed9f8d5a27d3759b45fcf077b1a357f18ff7855042c23783ce95237ab957040ea025a9cb8f7180cfb341124c5c4c4e636987e2c2e059b31dcea36f3b93b119b074de2a2b95d77088f37d60afe20cd9051b8026808d4d45f475f0451b4d739148c2c50f446cbc2cded9bd1ca332aee1d0eb40d45e89a89bf433a545084ac658611dd67f138c7f6baa454b0c4b46b4e2ad86405c170ffa5c00a25b3bfac7489c3689c90cc3e5d1ff27e075b8adcb6588c6004d1f0574d83db09d2a08f4dc74152bcf3aa4df555109c7aef0acae4c698c2e2e8cece682b3cdbe4fd9394b81eb7991bed8c8b1f4415eb42f544eb5fbf2fc1bafcafb0ccec9a10ee86b193ddac96cda8cdeb812bbb9bca441d93e6dc7f7a1642f1c791f5be17c8ed40ca41b9b65087339f4c481a765c16a5be029c74d0940d05c92f7eb71f4cf7918e6ba54b5341f7f23aa068cc3c242d5b8e4b841ce423f16c96a359d13e6e3ecb11cea044fe9452af6274b4f3d49e2dace9ccb3900d6020a49f8ab3287147b16399bf79ab90d8d8f924d155f9c62e64c667d83f2e3b743b4b990bfb482f59afe493039ae5fa00a878d83f1bea149f62808bed59f57b904af31bbe242d99e171602ad0313fb14deb260829adf447b0dac09e8a076909f4bc91474d7892d417d59e0ecf20cdbe1d9b914cc3ce9326b202328ad7baf79b01a33fa81a05d84b152159b0629c02e17f4b89269c29cde0c4dcfd2b4b010eb2b23e0686372dc72f1c384c1f90a63dfda357259b3d8d8afc40b001cc0369ee751e9ee46626d0c82cdb0ec6926f35ab62b43945330738b52d3c81db0248eac69c34c516d024db7c2aba83ef7478d91b77a037b2c3e8e17cc45d77ffad8864eea9b8b5bc0b36f48ac7eacd3d2eee268263cc2a5b3bbf1535e7673c450f9a4895d63e3d19758211f0f708bd5f91a95f5cf82dce0c26bceeb053fb11e2851dba6f0f69eb94769f0fb10e534716b8a38bcb5ec6f2225a549a963d6b0733a04a2b03aa0430f43dbd890d894c53459f399e9c9288d6db3b357218118f2fe85cec4b30ea1a3b4236904450cf1b84115f4c557a958b525511bf53c932a938d5011ac83b2994183d2e6a839f44d48870ec3a7b3eecc5bdf78b74993bd1c0a42bf9784e4f00b17bab33c1a3eb20f87b440bf2001fbf96d8afa3c8f4b5c7409fdfa647efefe6a5ea8b39e9b13a98f32f0534d8f7ae4cd730b103f7e86d588fc37721c81316396dae0ae1fc17fe891b54964ce4759a551f7a0eae0679741b430e5a57907ef7f8d70e44c05c73ae87cdc07e1f60436220826191a522e580b731b38ed9d4198be7c09172e7e98050e641d84c8f9764a960e36d05905f5db3fe9f416040c9230070f0c463e39b7c1088ed14718ae7676deef401d873fdf24488a8691e114a918967f085557f0e0a89f24ffdb06c0be1527b9788b4aef63b1884d3d9522912ac49a7478a6f05b27ed041fcbcccdb609220696692e33271e0eb3f5cb2fba4063bbab0ffd621141e785c9da2c3ccfe69f6589403ecb1f3b0150ed15d68a8635f03c4238232bd6d9fad3db59f0697f438b73203c13b56a2153275c95bfbc4f3bccb2abdfa39fe7a39aa5b59db5d2105d088f9ce68c57490ac5e1443fda3de10a68bf4255d219468a2e7e22a32fe0cb4b5b936960459141f1279550e72f98b2926cbeec9febe3aee6e67c61865ad1811b5f6ac98b80aa29bf5bd4206f4191bbdfbcfbe1b9d01d77904d409461dccf517714ca842d308541c7d1cc6ebd7efc84e04cb37d15153dd6c7252257631b34f01bdf3b8d8e9b9be433ccd4cb31480e6d9abc8bcc5ebbe067a5a957c52dc1e0915e8580499348a7709cc2d73312e5492d9ce297e8bbd3a2510b754fc9c2f9c0f0929bfaab6cf60d6320dd69a0746c2c81b1466814591125a4db5757ac872700f00f49da6462d77df2545f0fb4e6b1030ee1aed590ff6398a0d17e789c7c5e86ba59be6f3127817269e8d4210ae484a8bc615920c57e1eaddbdc815e3b9e2a580b06c8d6d0e0b5edd59119e461b7718f905850ba9ea4bfcc8530f66a729ae2fa778b89b901acbe0d462741f609048efc71bf5ba46e347cbe676ede0efb5630203920a143c4095f92840105a48aa50c2770bb563a8d7defbc7757daecc8b74a21a435544018f7477a73e0d556024fcca3d520c27ec62c38a3d0a1b705415e696ad4e9f3201a571bc61ae095329a25dadd062b8c9615c18997040c820fcbac36f90526f58f385bb0d80eff3805f55e615bb1d0e4649f40902d2f16b92dc0a4dcaecfab25312b9b773416ee6fc3866bc84f857a1cbb68211a5888fb913929c7adc22191a265e3ea8864064133e66a44273855ce8a02e7741d85e7c53219d250776af40c3d46a266e04e2992d426db13a799aa4e21f3c2b31726f25673221ed36bfc7ec91951bb0726293fcdfaae816323e3683c14ac4228d06624ef9a336bd47f46768ec71d32107154244b62d522db504c2287aa0c5d0979aa19635081cc205fdeda9e76458a8e74b99f7c58935d7b7d942194f248cc173786435d54878ac36a20db5b59fcb5e4da39ccf98f836e03d465cc5e0b6db2c3968b720c1aea869547387a2a28b046542f96041b73b2648765e216264cdd998f10e0e6360358e793aa00bebdd0b98ede9e5a2f01b72c8dbb20a45f64cec16d6bc5f32a53009968884a0f11a42e8a5e8e08594e8f587081a936c7c315e2c7c3c148ae126d90216e6e2f42b8abdac8b546f7dd9407e62b9028627edfdc4680c17338f0583d6bb8b5537d6c90d549c51f9b4895010e1c3b944ff5d86c91c023219855a4d013c4539a252276f4c313a5170f374388033f272a89abb0e924b37493b6db82031a0b60fa231471f03ffcd2630e6739d232119e93169b30e2308a84e18a23eabb1957c8b3eee8075386e878e2924798b717dd04d6bbdd3c7d0f09fef6fafb05da5925b521ebfd37284e24562b1260d91dd13e1790a9526fe11b5efcbde0aeeb1fb4305f8c651e2f4f91c85e8be8e8cdea9aa020ad998a30b6c159b616d5b1f604b5f67d2537c26b146f14c802f92e81404f32f272b060ea86e8729b03c9b6505a702da81ac12c13d8a5d9169f22179a1f84a44564ebccf5f24be0fd6d6245e25f267f873b24433d76f10626ad7e8211ddb7b891ab6d21125bb10cd953c3f7821c08415ccdbe85bc1e088ad6058064130c8610a86b3a340e8950491c38d328892d6695ec520080e7bea6d448e1bc260eaf8f0f6098cd6ad1b87c5fe92fb9bd4c0017e8fdc38c7fdcd0111e8ad22b59b672df2a93ef530d73f38843f9ad7646278a74f308c99df0b27625759e85a72d4048a142923b250a30c5acd055616c7eeeff01a317ab43f53332ca051ac051cc30c9eceb884f05fa2ce50fef1fafb41652a4725107f286355963f295ac297ec5d0f167998251b96cf1869b4e939fc11ccbff5726b78aff4de7a29a21b3fb22ef9a95ecc5c168bb5a4e46ac6d02c488687adca2664cc8a2810c24d58eacb1ad416343e774819962a901f5f8c88251c15b0d0e8d20e99b1832bf0633cc76cf1795525f08a191b3cba36e160c06f74352ce74c8a9978e0ad6bdbc81fa8037bf0e858f5f2cd1f7eeaabf736ba8c5ad78cd7a5ef42f3f31eb1a83559133e8c939ae970172bacc29262f7e841d76120b6c0a1a5ac19fada45e76d4b37ff63ace501c9e4ff70c8afc31905ef94d0dcee69e60ea8a4a98c4978504f6c59c671871baecf8ac49ad4509774e9c575edf4a39c6bde4ebbf991cc6b43a0b84c3feeb0327b0e4a10d0ec16ff3ad9464ae06035fa5eb6faa841ca9d7415600ce1312333402c258adcd163db2676221ef3494c5f4f17b7ac030fbbb58b12591909907c405a9a6f9e0742594308bd677d741117eeb4d8d1d5d27ac21ce31d0558a0207ab7c00ba64098819dcddefacb58ea59539bd3a3ebb65794b09d275dcae6b4d8668cd2bfade40e7c6051ec3573497f79a161a3ceb3675f60825bc42ba201d86ccee85e63c4fd995ab5b8df4436046eef48f1486fdc33bc50565973143d2b61dc32ce2077f765b448b64eacc0f8c985c2bf49708c53d4ddad6f77a8f7502274f0a251d6807f93dd380581845c0b53793bd2cdb6607160410d6e4f86e728e65157ed8b92d6523db73a56bee0fd24ea0f8886672a2dd9d9274cbdcac76ad25402239b285091744d512e813327d6d63d0931a66e69f5d10bb72c62457596a37286a5ebbd1dfa014d7cbebe58a350e2640c4a6f30004f02a2d095e63b96c49fc453a4021f159939f615507f2202c21fd2a146f43a18ce6090f77bb7e83c2dd4c8cca4076f940ecdf728045257c464bf80b4a60d686bec52d38638e519b5fef50980eafcc8c998a623586b74623ea8062c380dd891cd5a002c507054ead70249b87e4b7b08c6482344afe9f5e7ee019c1cfb2f2345a4e9f4eba328c4b392adba62dd0bc31f967b2a53431cc115eb59aa91710431053d064495fd62b892303871e5d2b49293e8c4611c59af9980c6915be6ff4d786d395e10446051e07879bb6add021d6acbf1b64605031c4768fb4796080b7531d3b58e10f8cb8783aa29dc116bc860f25051dc13eaa6ce29c11747a5ee33be2e5f304dd8000cc846f3a4b298570aeeade4b2d45f53c2b73a3963177b04c9a04efa3f5921b6edec8befb34b871ba6e9ff3e2a38e6ecfc1b9c45b531b2ee816f6cfc5cb8ff55e373b9259ab771fc661488625d6537f0902d0bb6221279eeda4ed5e3a00405f7f4acf3829698c4c602cfab4cec391458d42c6aad467c653732d7b3062a25414ef29108e22edb770a96e1ba1c7968436f4aaf53b7438bb29eb76544537310f2e181610a472dfcd67070a58c15b98dbd137834d58cc74cf71fc947c0820637d559503581c7c862f11a154097168c598bc0a3bed37a30e7510b949a973222810a6a890056cf7b194288cbccab64067c0ce39a174a73c09b794a1e28e3d77847d1f67d7b9b5372167f99eed8e43c1a8bc65fd7cef89682a7c0f50e312b5f63cd7b95ea7ad970778953b05f58a8056a96111e966b14957446dfaff0c70d11058da16fe4fb894f056b6e308143d441b40b9460507e8017e09f80c7da3f6230ad00771b89121ea905e72c122e537d68c1999d4528eeca4c49fe3a5c5b7f62cb09a181eef42596d18f993db16680a8b2c98d7e84a4c0c74d7811a7fb73ca07de2038ec0ea355dd0c4d9d9302e493c8ca100a3bf1ffb46a28fe4127887db71a0d940b60842a17fa16b05cf0ff1855a835ba7181a21a73c195da3b383ae87e90973bebce2f7d7e59878972b92f8026a5f67c8892e1fde97315be40ad821f1c1e6fb5206f4ed64dbc0fbbf299807659b9bc4ed368f2df3d65914e372882706e81d5647577ff2fbb6f581a062fe1715aa7713295afd7749b50a572a2c44dc0d84a643d3701fcedb423815715016516d8e23f57db049c0df75f7538954ba685c4263b6ac67611c0c029fb9c54e8cd95c5edd96513cd616d1e0b116b8fef29e1ccd1cce6db3f743579598904ed9b43ecb9ac30575f80c8459335385a7a8a93c144587a35a2dcbc2735642442341105abac58725b8906037fa5048fec28f8186a9c7cef0fd9412bafc14596f1df2b53a58fee8608b7afc684738c7bc229cc4cefad203e9d99bd0757bc580c3d945cc2185ee0d0c3a91c6025967b81c6e7b758b2a0c548af0ff8d0d665cf1faffc1cb3be07ecfc17c51447c08bda58cb7e8b241a1508ca361dc009a7e84c5fa006ff02a5948ab92c560dc7374d079ae6574ec6d1cc4624ce415a01d48b965507ca18d07df6382c4e2cfa0859d757edb92eedd7314baf98f620290464e11e9cd3aaeccf45547cc157241e37b6dbee1bb432da05c87260d29c31aa7781391dc628417cef4ba917696573bdd9059dd005188d9a0286e55743019f71b6d848005d2839c9b02d5a3b5aa540825a1a587b952409c98ba9ee66d47a99e4313183e6d3d5e782eca1d27aaa103179f31c0df1062552d5c1fd7df9563b6bf58827bd8ebac2d17b86687abd2b418b8bd484807121a1603820b052e244d69532d6e86eb3410609a4a2418f2544f920fb8e86b628af731af55297a756682d095155fcd9ca6ca52a72b0d9e9b65144780510e5096a8c2683f069c38bf6f157ad7ae79ce559cf21154bca7fc30ae8b88e13310d75642cd8cee443e24fc1950651ad49379ac3cddab74095b559c06ae7a23c527a7175cf79104421ddf19a0eaf7ec61188e970a6e945fe34f82bd63d02ee10dba4167aacaaaa7ea8625168bf5b6ddec6c7322e1e3a0b700b7190172db26df858af1bff3e80feedc1c6481cef15923a2f0ffceaa2cdfc021612c4293fc6bf423e3ed663b91c3536e365c2fd1c23dda5918ae74cfcc8944711dd714d25ad665bf0f19b6eb326063845d17da09f1228145dddeb852ab56d8b1f3ea6ca86db0e6e937b213380c45616f0d177937b2003125104cf983a9d86aaa420ce0751d5b1e58a9578f1f0cae9332c7203ba8965f1074d1dbe2640c91fe8e6f8a54700c46e0bee55d3dd684b117608bdbfcd193e68fcd18fc866f9ed7980bdf32521f6762c0e2c76230e12902bfa174989e9e66290067f9415017532d622e2fa0bf663dcadbbb40ad3e42c7f47f27071181cf62e13ce05d72c38387a938c8d5e39e97e923819efcc8c9d96b466796579cbb55d5c34d1fda470cfa413bcf2d9c610bcac2535d07008dd5b1bdbf3a7026665366b71b2566ac445046a423baa58204c434a0785283ce34d919f4a482bff7173d6949c89b0803e3def54d8a13281e66b3ecec4904acb07db5fdd6d821faf2f8181c140bc7c39aa5e807152c72b60a2d92ebb6bc73e01a342f4374c36b2f7265bee2da54c32056a0a6f0acb0a4d516323319d73b6ac5f40da95a691bebb08cc9a3eea59d3d92460ea39e72401ffc82c58483b8b011fe0dc5a3b8f66ab7d36d16c19d78add51b20f3404a5f01dc5fbb8b9fcd3df9f77e7f0dd3dfc17f26c792ba69b924db3c5140299cc004120b0e107acb3206156c68a7458b11ac287888b5a7f3274cc2e9e9327a594d2695ba4954e6e2d88a656fd88fcc9cc959bdaa99fda25edd436ae4b7b49438cbcd4ab41eaa1f02997a2d7795d2ac5d94d036b2c8aba4943a3bc889aabd5bd4693fad32a74f3644532eaf23acf4b4623f80e87b571e7471d7e3915ed9fb094a4dc3abbfc46a86ea973e393ead625f7848a8680ceabe739c7014d4b457b9692ceab775e9d03472ada73be29a9de854f2a173e6129618ee2d45983fdf2751cc7420a3210596182219c645f7648cad2c2172aac59438686851a78580ff2bc04041bffe37909882db61466485d1736944004311ba850e20a1266bcd0864b14703c8980cf809154cf7c520ce1a491f9620d8d4e8d880f98231d3b581bb8abb30aa3e304dbd683f59e97c068b9c29ac1656e1c17de868261362362830a3190b88a21c64cb1c29b2088586253e34c196a7c67cc50c102cb5b14f8bcf425ea4b193f8a9a1273ce39e79c9367c749ffbc1c6756627173612553b86db05bf6a858c004feb194c5cd5a6eabf21a3d329f0681cad9fc6ece9787041cf032fd94502fe1350fdca4f5b13e3e5f4e26135337fa134a04914e56ab7ba7135f97f819da100c1f30b93ea8852304bc048fa59e646c087343587747e7ae4a70479e2d19a110f92d847601f5c64504292e59b837dd16afa8bb8285873059909838020b990ac451031a387049d382115b9b2272c85880c310930d2d938c1632baed0c971bbe6c40770a1b8cd8be6c3aab7b81269b26da4023431154e4200314668cd8e214c3d11948540d7b0607363aec5c618a1a9eb82419a038ea14f50455c217f679e98b16394f1d53293550b258bfeb1a02f50ca5fcd2c397a51feff7c417335fc874e1f3d2971dfe3e2f7da1a132d171ce9a774e4c982f1c67a85ecddaa757abf91237205acb2cb6d1821a2ff092944d84c5eae27c15e156f5f625b67afda51f7e3ae5c221021041d5f375c8121d6e55f740259787047a75a0c84fc97dc24a96044d5a1c216df1e64c1196382210851342b439620917bcd8d268414c2bcc26c51a66e6c6514ef5cb46050c5ebe296088a1e3a6b971940f27b1520f404dddf3525154978581b6d4d8fd786bad2c2d57a7488b435af4a82822e36d28528187e5e23c2f15a9e18ad07cfb4edb30358adf3e45517cef785e2a0af339cf4b4544da0d682e2b59b6362461b261a79f52ca14c7438d69efa42c4a7728ed8845d3f6fc6c3a7dd22673b2f4ba83177ec7d47915cfbb90c96cd1147f60daaba43c6cf2b91756e9fc0b81469ea53cafd22103351327404952deb904c577ea9473a959a0b985e3aaa79d0e79da60aa67b2bb1bdc69a963c64394cba66368617cb5d3840e322d68a431e494430f345c4129fda18da79452764a29a594d266e65f3d6dc2e274452ccb087e2802d684dda93b45e36912443cf510dad539600687186104adc0260918a594ea0871c73b5b56c68730329011840966618cb22411841309bcfc7074030e38ccccc30fcf34c0d897703b33b33387b637d0e14acb9675d65a4edb3667417137079a1ba86d9b5b0fc6d399c782e998a75abbb15f16ae742ae51929ab4b29a59455db9ced6b5ba86dae6de10ee368b946f205a49b46c56abe78471e90335edc2871830c8b2124e042136308e185080d1ab633bc30538518b75f32c6813de24ae73691160fc8f31297373ef5bcc4e50ca52bdd86dd557647db59889414ec59fdc78eea13d451c39f3138ffc83a69adb5569f740275832103ff483d4f563acae79e8ede8a87290b91489a8d6e94cf5df454fafddad96a9fde4daea577da34c2a4bd34031a26adc8ee2e2c199aa6699ad329da43a9de5590995233229ad1533008d39db099c60763d4a1a73e42c1393ac01b57fa1500e0e0d68eb42261bab6452c6e8b5402317bce66e5c04feb8f4aa650993fad4765c8d344a758a6a2bd87d4a5e426b5d07aa5d65a91e3389f2daeabb56e9a26bfced949da754ebbd95a74b65dcc355c4a3d49a947ed7cd540ed9c02651279a3ef7a4a6eaa9a46df51783a1ed5f1eef440d46be842a9423f59488dc963863bd2a22bbda6d4673f8b25d5c4925a354e791af2b49b97cf54faec399b071e2c7394822d354fd5c97776d174fab6d83a3a2c5ca7ee5d9d29940abdf250743a5974b2cc392733f3d434caec94996a61382fe072a5f7f43ad07225506bae699ae65d76697452ef40cb95d26bd156302e0d939817e41f392620b9b317648adbce6ebda5a54f457b1613eb1dfcacb55e4a69c7b3b615d5811acacb0bd2b8acf372e55d491f8a0e956774f65a1e346d4cf9a8f9b839c771622a95f2d962e7346ddbb63b5becaf516a67ebc909f3bd74c073eef96b426331af09cf605ec8b375e91a1dbb2eb779f9cef586f676d16cb173204fea1e052fbdf6b66bdcbc56a7e0dddce7a1f82ddc611f757c7c5ec6ecec328a5becb40df549dbf86cd34da084164968915b26516a272d36ed6e22b43bac204f107ab8d2a909d6526a9fa03cdda7cb74ca63a5b45618aa4f6ff7acd5beab336569de4f9bb5855290b412fa357cf940ad4667db257de4d5cada39ad5dad34e9ed766add3de7ac2ca516ceae749a0035a793d962df4069f9b56949668b95344a6968516891bd06a0af4e29fb93283e0230d2819c1e3c57908af653bb23cb7e7d06c721cf466638f6539722cc376fdebc617064269b7bf0fd9de6b49b037822aef704f014b45e8b60dc91cade42ea66d338dba59674d553d58709075ebb2a616b5d9e21dd81f6e4d2b14b09655dca94cb5136c91ef323fd197ba0734bf34e7ccd3b29671a93a73e5b9a7320b356c253de6cd5a2dc198b75b9ec334cf70ac1955ebf5aa54b49db6c765a0c789edbac0a13dcf19b9d28cc90eea8df6140bfcb607ea781675b0351545986d1da9a120f67d993566db35caaf33e15cecdc9a14367078f958f1fac1d0b805ce060188407830c34105b1bf460e03d9f910ebce79362c4033f221f030e3c6ed78f20ce3c19e05c0c9cdd49bb3c707612dad581b39730011398abc8588eb34ba176e570d6e1ace3bcc3d9e590dcd2aeeacc7276d9a55d3bce2e8be497760171bec0d99d41e7d0d987730fe796b34b33eddac01900ce3dce2e99da25c49903e70038fb386be0ec924dbb44e721ce9e6449bb78383b9376adfe0377b900c4f922e22f1f7d7e9c8780cce20721b758e53f70f98107e00adcf98c60b0c11611e46151149d6800fa063c24f8803b2d2f2100e04adc990007a08e062b1384803703283da087411400809687ca06a207d14044a1257aa881a8413856790c5c7a0620f829a18f414879420e027adf91fe1fa13d1ac2e28f1f497c803e40862c09c11e0b7c9880a0c8e20fdfe969f203aeb8f5c30700fe7096e8e4c7a7e4be0ff7e1a10e8b3f5626f8587d23cc35646449e12f082f8b3fa00001bd55140b40db83cace0fe7e1e3070a2c9059fce13b3e25f47dfcf0118e55be874b5ff50829b8fa8ea870eb10054bd0e1b4052481c5ea393e25b4693a61b17ace9a2e44c024dcaafe0299abdf4f09652a728144b8555d0020730be753528f748043549f924b24490ed0e71bb22407ecf17c985c50ec7ac63c5c8703b5ca2f55a9dc535df778ec70a0561dc9e177488bf20b7d5a943edcb6687df4e97c741a4da57cdb36954ae548181cfd3fb073d5e781edfc751f98720fbcf25da79ca6ba95ed7a3850fba86ec3eb2b70a4df23e4dab408a5e7798418e8f91de193eb39fcba0e88819ed71142e979ef73ca755dd775d4552a2ec440cf77e113ea9df377848634075880a7dbf9f5eba9582a76fd7a5d78dbb0610375d4a3873b5219d744b935ed529aaf542c15537a297d70713f27f29d53d9e44e36a94ce5409d8aa5843e6e0c52bb92daccd17c715fb845ee0b77f4d273bccb5170f554ebbacffb3e5779d7755da7ea3e90dfe3be70462027a645e9aace472a53a93ea7b27ebd663c660cd78622c9681115438fe88c26bd74d5d7716dda65632fbbae7324f2bbd97ca582ba251d094e0737dc91caa45bd98e1177e4bebcf4b19bbd74ae0d17d52e37ed9a2eaf58abf271f59f33774efd73f91de93ce540d303a7d3cf08979aa9e973725fda65c48969d7e6499670d206a6845a0c4a6149c952595a94a9588bd2692a468ba88c0e79b15513a04cc73c63252108a324eb59c9cc4644b40b194339cf1ba7c24b636c416100cfaec38b422463dcc67ca2072f2f73a092a8cca361a24e8da62372d3426c9a8ea45237d1c4111212226221928a79a914d221d08949248ff8f84987e810cd81e91025e29f4e622162a294e196743a4487663d63a88d27888b31389af754d960d1c62adfbd14f966cab74f912dc442a4cb356430c521e7e41f17f8258f66317cd79e1311c923a1364f6c5e4aa7b085701e74e2522d39149179e9f23be2e33ba4432cb031f39dd4a274cfd9dbf13deb24fe29c32f1c97ed4cb516e3650bcd174e4887664bba2a1cfa420d7e6ca14f62215da6a13468ef2e569dc5cbd968dec2bab067b305e68e0c1565c9e9c94699af668272e246e19f76e952f8d54d70cfa2f00fab07973bbb2fbd86972d7467b359d734848114a5bbbb85a45b2bdd5b08898fefb0672c240477944a2f997a4db7e6cb0b3b6986e38ac3f10e19d2d3d3b319ae7882ee0546623cdd3bb5dc2a9e979c949efed849bc44c69697dedddd7a5e727a7af99d8e0c8c36b5cb8f6da669e90b2b24af7656dd5d3f23422d4487e890a6c954d13398e3e9a7849d7a279999c820f18c00761ad22d4474a8458954f4bc2446d4cb6f0476f60ea1b428fd9382a4bf5d09b5d294520984ac36a5a1fcc4127ba2446ee6173f35351ba797436d5eca767a293beaa5f3eca1b159448a6c69d7a6051c3f7ad273c0109942f3d599c03f1db28e683e0e2587103edd03c465b5a77e4cfd7456934e6e218275217b8e094847b0f14a9f3d53629a25c92d44b0d44b772244d08fbce6e5c84df5e5a693524abaf3bc440453ad1a11494b4418cd39a7b6b19e978808aab56e564c1b9da66ddb2c2746e9c7f392982198d62a2bb099c13f405cc224ed2af24b0f6fc28079de552b3b296802e659d7521c9702b349c944ba13e94049c430ae75d1e97a3e2c33d75956dcb1a78789cbcf7917da53446c9215f1d1a227e548e8a7b89d9754ea8ff539a016396eec076a513a4b49f3cde70df38e3d2b20a6e7b470f31ce748e6739cd7ae094e2d9d15cf4b6262df3fde1f7b8a306997e402cb4bd7e90941a611b7b893b3fd0a02635d84e956caf62e35a76bddc6755b08433e05f292106d9e7e08e08cde8621a442200ea2b8197c0a6427d610fd67a19284f093b3320815fc16ae742a99d70e37b324fd62980e07493749d7aa2f64df3ea44810a43b5ea12158da057e7d96e6f2abb38e68ff637b6e092674ac3499f44b86713281f9bc9482a2a743ace1276ec35131a16759e40a7db78bb5da6991c890ad04139838617909263071325f3a92f9b2877ff8ca363444cfdeea72c75af4b5887ffa35f00c9cbddbb64d0341096a6b1ab7a8e74d2b6ad7d85064ea11cb7a5abcf1a3f7758ce5e1c3f5e1c4ad469472d862daa88bfa0b3874b3305ae209a6815f815de7d952794db9d0d6d434eff4bc43426b518b3ece985b136f4d194c71351fb758bbb4d081a60a1c2bd15865cf5e2d9a42ffe96f1b3511f59ad45040b3a16263ca8c1b2ceddac23641536856a416d9a9f46b49f3558fe68c4da186ea280f94b85ad845dd458debd42e7eba4151dfdcb44b73160deb5138ae5c0335cd8e168bcde2efc68f76cb5ba28ad4e5190041103114848309741802467dc5af2b446090016306e9898a2360d499a95ba6b468bee4500f150db553c76104213dfdac51c208b6e3022c03bf0233c0cc67b6d8756cf1a10470b6ec2078cce9d53f96b6e8d23c993451eaa69a6ba6f4dc4e599e9dc74db341cf756ed4a95d63b37936ed623969919d372d98a929a5948c0198b825cc167b4e99cba24e00bf0263d190d580220e8237f97102fc380d9b1471101c84b04a11bf02d381c305c109e04ddb13ff4c76a167d968653ff4bca254f3996a4a29a554a3a0b6b91b4da4d4699a49490390d544832a561a07346ac0c084de720dfc0a2c0390d52403dfc03708ab889e815f8181355cf9ecf6ae583efa6be2fbd07c3a007ce53ddec35f429cdd62b1b2f9e2c0d9ed90ddd2af0038bbed628be6cbc7d9ad9115d3af0e9cdd8e69d76cbe3c70769b64cdf4eb0367b7698638bb6db24efd1280b35b3616ca46bd9c9d0be284381997a55f0370766e4bbb521e04039e2018601064074ae6b8a2862889014f10f6eec24182047124f283c44230f4201e241cc3d0c3705cf5f02bcfc3affc0ebff23a7ee575f895cf112300b815013710c01f30365f0c86a3f570bc1784e3ea8184a3b5201c2ff59d705cb1c21fe128be8f70f4f91558c7b468d4227b0fb02681350d589b2a9b16d97580350ad4825a64cf013519a86d69911d07d48a34312db27fa0366b91dd033533a0c6d4227b0ad49c5a641f00a8ade9163b1150539a2df617a821758bdd056a47b3c52e0050fbd22df621a046345bec1f805a966eb17b006a42b3c5de0158dd748bdd07ac50b3c51e00b03a758b9d03b032cd16bb10b09ae9167b0f5867b3c50e00b08ae916fb06602dea9ce92c9b85d58547fabbada95f1fb0e95750cda2cc7354bf82706628407a761b6b5710bb15b258dac54b6b849eddcaec50bf268c5d4258ba0b7b176d493c8b69d7068614624a1baaa15a64079fb8ec5b13d0cc006418078e5bd2c6f4ec1b386e44a39c69e3d634b6c02a3a6894000b11cc8a452208a6818b60152f095685850a03c3a2ce1a84605834ac45f54b8b0cf237d973a09164f8879f25652d6669915719800ccb0123651c28c23203230c195bb2b017444838e1461152161cbaa26eb1b38c1115e578e13af3952f43578421424d155ebc00e3106c80228e17c030e2820d8c7d6b9adbd3e4e1f0490fa2e72056565732681f2ac4f8f0199152f684238b3dc1f392182eafd33fc3d1ca73c7c1120d2634d2e870e13a314a339ed86d9fdf49a7599bab73fb7220cfd8ac198259b08b82753cb1fb219972ceca45538711c3a67b5609a55d23bba912a58d1f3d5b9d3413139077c242da7952b83cb1206faefc907c2374afb9f621402a49fdb881d73e25dd6bbe7d08902e9b698c1450300bb2b4c034f089f461212d63fde22d948c9ec4c4861eb6691528499128226cc49864acd5ce6a2826d43efc5343d611cd79622e1b8a09f5b42be4a0cc95aea40aa2631e1807525c1c16d238ef43006f5a41a60219cc0a08540831835967b75d885a9ca1b6cd39e79c54a3b24b6741ee41027ee6f07e840ff8994a7d75990303397e4a1602e3768d6d85824377fa6dd7bc5f9026aed755e9b309b1a2746addbd4616453ffa0071b7e7a52c72e8c0c8428bcfcce2055553cb964c976ef1976e593262bac53f5ebb5261b939cf4b4c6e88e0b2d9364eabd4889c2b7ca8c6405d283e251c243aef48f545d52901f531e1a04a794c423cb8268c3a2ccee8611530834a61e105ce11166774086191848e029878c262071e4a58d480a300278ed4c0e143014a10a9f182a5802588d424fd5040134c6a663ef3e1c676425c1d5ff0405d6d0b550cd782e7a5a50f0597f5bcb4b4c38f3ebfb45443cf731a34e2d0ba366dc9946ee19d607d1009bf14f9c6c3613d0791dedc2f7fc542b8bddf5d147d7c5672e2307bd59c4dc73ca28f8b2b9f30db766a309e524a29a594b645f69da3ab810c9b9f1126d53beb45cde949494a4a4c4cd36a3750a7d75e4b89d8abc954cfd2c71af4158b51517daa4d9a9016ab4a75ac59563e5637515075cdf3d2520b3c7cac487556bb7c7b2542a36ef9f62e6aa26e6aa621d9549a4942344667f488465128da3452a2a7dbb31a63f3e4d4c3479a4629898a51f365878fb448c747ba850eb5cfa8363a7c9c50397c9c4eb36976850c63e697593489727e9c4258cca03650fd9486cb77f7d196157c77632993c58e19a8774f91e5bb082b31d3cf281938564882d16928b966e8db47e924a33e8c202d5d7c91840c389c8135cf78e428199346bc721e9f9115e5e13b3e233c287db63f7eac9cc78a87f7709dcf480f1e20b7ebeed8b1f33b9c77f81d54fc8e2bd0f81d3b7c954685dfe13a3e233b9c337a1dcff119d1a11bbc0e2b9e5e87e77c4674e4f0fb19c9217e8e15417c8ee37c4672aa1b51b07b5df519b9e1e3a081e371fcfb8ce0a8dcf2eb33a2ba1f1a2fff79f719f92c7dcf539f118ff2f4cba7c3a23bd375187cd79d01e33b2525be4383e5bb334d7ce7dc67a41389a0717d966e6a299522402a35640a373e35804fa5fc9a19e253be12fa943b155d7cca451c3e55c51944ae9de2046fadd5745edb7921af697e4df09a1469bce65c8653eab64c12494f77d296fdaa592f10f1a13e3e5158fca0947601454377f7cf27531c50b7703cf5bb6a810c0fd493364f07841f77787a86206d6101921b50a4898204dfee138518dfde7d469a480c9a064467a7a7892fb458c28935dfee4f1c7dbb8844c3b7a73ca317b448194729a52e8ef6169d457bdd28e866a4d9772f21e69b8918be9918e3bb9958e3db89b48b97664a4b4df0a0449b33b6d862c50a5f7cb14219b0f13e11106b88c1c18836bec09a525a67c821cd65e28eee4a5491c1e6dd4565be6180757777b7a4947ef0942ad1e529753ee3a9d7cf081501a58c85143fee24216647e9db5763bc7c3bfd8cb4cb5648507126892ddf2d13f3c418468489628b1678c41802056abcbce9020a987c7a04441a6f0989259eda2f4c2108d2a4d461710f008ede3842298d174e479071a444bd1d6728536776dba20ea594d2303e2c8a50883054921028b3376bc8c3e3058f88e3e6de3b7fa8559bd3c767083b7bae727e19fab010dbc1db115e6b59ff441f26af7537c56d1cd259e91777865e8b963e61814248920484162ea8a1a6091cd2e02e4e90e6042388c108277098a14c96315b9919ce50715c540a8ae8228b08848e98c19006173780c1c4961f54604340c51ada0c39d6db5eb8c098252a607892210d134574b1010bd418354441040e496c848135d315471851441934b2a032252c441b9a1f82709cac6141368215b008d1c20d479069430a1284c922840d526353900117c212a02429ae8811dc957fcf4b45c4ce7057679544f5615ef1f224c60a20b6ec00c312b48b29d84853cb7c2f0a23a2c565bb820f338bc687a413b6d8224cd11b2d940943c41b695758613144181d54c074c31addf312116da8b860c5b21a1764c5b3b3f21d9e95fbc09305509238eeb8029adb0ddd2d86cbdc59bd78b61ae2e33b2bcbb3127343af7cc5f3f57949ccd08f3e34a8d0a4421b19a57e47294d3141c921ccd01453a9012a63fc03447694fe14e8b568394a95698607359c6055acf880e208e6b9159d147280752eab583006ac8a152d06f3dc4a07b0cec1a452447eb44e45fb1a6ab19f9e02c7711c53ce2d8e56663f3df6d3a7a76454e5dfb62df4d285420ef3dc8be79d8704c8cf300a0a60ad959631ea344a5de964289f266d285d0f4aca65ca8f5447d25fe514b9ea9ffd1a30232525938ce4182f84a44cca194d4d3654ac0a3f7a3ee77424f3a7fc9e164529a594e04b97435aaccb2231fdf2592203203dc98c7428fc9372f9f33d1089281906e32a5eee7c83545a94ad91a35eb6c38d1c57ef335f4ce6120902941552b7a4a74069868510817268b6a494b1102650240832060e80f431fdddac4529a5474121c89bcb3c32d53ec258722306d5c587161df54eab5a776b2d8fa8ff54674ae6a94b7e82e5144fdde7cb8673d6b27b62204b9a4a3da552bbc6c986a98965bd99662ad9147e9c4e56ce62924ea3764928399b2de949494a4a4c4cf2096ce24a1f5f43262c842a805b7472f1b45239eb174f9a7651974f4294524a7bced90b51167519449d47efcdccae12939cc9243a99505772e9ab9de97d21253bad2ca5949225e5af435aecd6bcb59089cf564f103aabaeb3567a9be8d217599ec80f3ac77bb50043c4c539eb181df38c5eeca5fdc61508de0f95b508ac504c16cba219b5abf34d0b9bca92129a82a70477a432718baea3dd6ca371fbceb95d2aefbceb3eeffcea5406c1f3a8d9649f2ed48c7ae9b191955ab579d7f49e8fac446d6021347000a4ab402a6b9176a1442db29054504a084b8bb22954eea7566021d25329700068988ab170ebf3d253d357a6f9d284a6166b170bc7e55f975e95dad5c3a5d734354a559f7e25dd03a90dfc73c2a53430089e7716feb12eb9948e26345f1bd36c49b7ab70b477c524f4d2ad66f43ee6a845a9f2d5edbaaeeb3a55b7ba2b6e96d4a2440255dfe04637da490b725b52b10ec9ccbbb93f5cb823d7f4926be38127d8a7db6a5bf92a96ca9292f500bba4ce0cd37c7550de3dadfcce6ec654c9b8238774f4a20836910a4a09a5b0b4eb7369f4e3bd5be850968e7313c5c5f57ce4da50a74e054adff77d9d07b244e09ccaaa0aee4865e128dff3fc9f7821eb73957b4e43d6178ac0f9e7d455deb104737949054fdfb90aa45b24cd42875a1cba41b19410182c2bba2adf9c3d9f5ed7792310f7e1a3172061cc47680506e60914957f0e658299c18ad8ab420c7ce1f771f40347d7b99c7ba0142bffa9387043d2716edad5b9a4cedf089d5307bba8cef9ab0b519d9b974e37d94b4f05b56bd22e2ffdfb3e4742ff73d32e9608d43fffc2279d538feabace35ef1cfc9cbf2a20f012061918102060151f639e68010dac8a05fc19f93eb0e3af890f07c31f92cfbb0e6c40c7e0e71ea8721608e6730e54428f74fe759ff3a7a4f3ee89ca3b979f129577de699f1306fcf09d263e9ce5fc35e087ef80558038cb55e009f23dcd3d5003624168c55281058ce53b55acd01e60ac108ce62c541898e93ec01fa0cf96d496eeb8fa54acc52da4614a880a7d95d394ce5579aa2eec90baa4a0166dd8cd5850b7885bf3d247aec9f330d043b797ae79fc35ce7b298f7a4eede6ad7d47ba70ec91df170639ba63e7de11cfbb104acfdb10033dbf854f3ceffcfbc251e523949ea7ee59eefb9afcc7e43f0c30d373fe75578afe73a0a618e8792e1c9bfc173e5139e76313eb3daf722e365bd2adbd77d50541e27e5dd749957b0e3447ca85507abe730f4a4f177649ddac437ae276fe792ad62175492d4affd18109eed8cddaa5e3d23ba42ea95d01abd5ce6ab55aada1e296a3398b0427257056dbe1d1344db3cc9bd5e9c44df3cd453a872c117d8a002561d2c449099b36b72de6ec4f4e2f2971be68cabda47ca4337569cff4e9a1a268cde8b863ee9cbad92a857668b29549935a6b15227a1ce6a1d6debb72177d8810691ed7c6ea3ba17d626863c2a26913a822bb9400250a0a311924d32a9dbe6d6145af45cab917ce57dcce24a15b1d0406013f5caa69dea26cf10fffd4bc92d0623b69b110e9449c920e1f88bdb0040d492c1107d11522c6cc60c4186db471450e12087b020ab0d0851b2cc268818d296065401115061a2c7af052655c861467a4d0030ae220410d550d126d8e4001940f4dc0c65bc3f6c5fd1c21e25081081d6890228626452e0c9131430aa126d82832619d28b3791c4785126a6859a03cbb0428899a178c7802e953cf6aa040a36959a1ab4ee4e07426cd10476ddc40ab980d7186092bc8a8c2e6a04293a7020c158c4e0a663481a35d203533a85280435341e96e6652f8c29b572465d164c6122958e30b51920e7050332ae4e0a9191252c3a5876fb733352f047d8f67355c5c78ee590d17221c23b894e1441c69c4dc7863061bfd673706d21558d470f326052d0b0ecfce84896702d001ca8a326dd8408181e930a3c317688a62206206186be85a1a3ae619b969b50a12d3c9d5926d4bc253e4256b88798f0f11a01056e8f2ed4c368d0bebe950ca2bcda98f5a4b2f3b2cc45a7047db5cf39dd58abee9b899abcf6acecc7e8aeae883da1a76e76ccea212e5052221d9b7a390e2369f21377cbb1a17b2fcf4e4b6f5d89c95f5279b733e6e7e431beab428a965711b7f927627ed4049722c5dd2afa06e12a36605312f5d3072b28214f25b4d0b4edf1e0585b61badf2db99395e8bd47e46acf4d275ab732f5d0da15bedb44525368416673409ce2ba83973384ed18788cf59b7d04bd5ea2075d07a0591686eab73a0e60cd269bd56b7ae81367cb2f9a4e1139692ea34b4217b5587cbf4528ee0ab1ab216c0b02bb02b0cf3992de93071b6245dd22fc9a64909505090bd9492995e32541b762369db16a6b8239b197d248c67155ea914a3e494a6c709357c08c1e433d2600243650a2c7c310646c11e27605d2df2c68622609d568018ca6082755b112a7e108275d62b800d2718018cd5a4566127c4406205b01a5a0ab29a54e1f10256b5232e6d916d8a53aaf1ca13e00d1966c028c8e305acbbc7708dedce6ab5d9e66cca5acb591dee5e8fa329fea1be695c8ae3b8d4b7e48a674bf0f5a7db0633a9ece6fc94cc5096c02ad55a2be59dd54a6b9d7bf995fae1dcfad862b7da13c242a86f60b310ea1a58c5a6942bd3d9cc2c39caa503a1c8572c847d0713cc4276307165c3a40f0a3274d2ad7682c27c9570b720365ce99b147bebc9b255a2d64fdc3961220b6917453ac4eea91ee73d9c6649d4f595d857bfc2c4a43e05e8ab5f79fe8cc827957a017e027120df0ec40054f5ed53aeeadb55178cccccfce61b1cada4f0921da8a5c8374fe537f884254201be7d0a4b4901bebd00fce6b731589ad7eab35d3c69aee466ea82fe905c7041eac87d295264d35b9720482e85cefbb4aaaa140701d5533e41ce53204db995d42d6880e74f042406781b4a31c05befaec732d593aa34d07f82f676fa1672f5a98522d8aba5603aedd70a87e97a2d367f46ec948ee5082e7711c6e8356789a0557f0a8ed639f92140736e8ef28d1c41730be2bcc49148e8c8543a3137a088de6081e80d2237a25460bcf6c96d63b5d62a855a8c512a63dbdd1de51bca5c69d56b8fcf10a28a33350c4183145e8881c4d09722dec8c20a356c7bd3674b7fad783516e17165bb322805d3e8a6334fb76a71b6431052e8efb01019b290eadd0fa8ef06c7bbe684f9937fa46c473f72122fb5112649bbaa8bd585f00f3fcdb9c06dd7421db15da3f59911a962121cbefa9276e9f8ea3d35cacdd7dac696af1e42bbba16f95a7bc6d1b13ce2f25294d3cbf953a49f309ffa1429db53a7327f4ad9bed6f184f9351ca7d3508a7cf32d44b7a369dba669dba6794fa1afb9e429f6ab14fab5863b2db24c43522a9999b99ba5f4984cc7e1a6677eea78c6f1bc4e0f13cf43d5cc63335f9228365bd3a5538bd355615cdae679369bcd56ab4967a5d222b799ec920a0a553e69cf74d2471f7dfefac0f8e551d2abc186f7e1cb2462399a6e0ea599195f66662499b1e5764c947e5b6847c6138bb1813385bd3df60c32832c4ea3c412a86994b2fbd297f4ebc7680d9628d208815318b02ec268510618532c79a102d8c869a653e72b9320b40c3223837cc178266552c63329e39994f14cca7826653220fb326ab66ccf57c7ba25599475c72aa5d36bbaeeb3524ac3986f3059183a76e94472ca64cbda354e2e2f5d6a4048d972e6c8a41c4234cb20e25bc1d08f5e8624f2b248f7ec6ebff2264021a5946c0014dc9e75fb0f094da238ba29edd563dfa0e769b16f90e5793f3f73ad3cbbce5a6bad651dedb31de71f528bb26718f4708dc6f48bd538cac20b0f3fb8e0841730fbb25dd60c315b60a9c1044ab01103364aa497cc310942e72fd9a65b66d84cab205f5208d9929e4ae5c8f1e347186eb081071e10f9d81b490915c40452ee1071c7168aa5c01662e7d82d43e9961c6d11b77929d947ab81b6452a2da2d0509f97a8a8a7272626364fddad3aee8ebb934378b26466c9dc43c73c9d36390dc7aafc0a0c56a50bfd0a2c85e39e83e07ae720c071cf25cc082be50cc8c10173f805593364a54205749ee34d3ccfc1b02e3c627df3b00a4ec83004f87019266f0043458ee78455721c27bc024bb1a4acd22f090654109d4fd5c4be54994737a237657e9459de10b5e897a772a65068d7e825b49043a7a0203072c1ce7144a8be39981a3eb1be793398cdcaa77cbed690cd587b6f75f2d63b053e69dfaa0547696d6af55c8a4b3db1de47ea73ed5afb26bf41dbe028b6dda87b28d2d9d6dd50155d4e07b4c5f5d494e1c62e998185f210017121b983a50e2805d79bf335c23d813e0da5cc373c5906407e30b51caf451df6d79c22c8d873384af004faec1454729f7d4eea2c25a9a7a1149c67672cdee7477ef3e3f4f616c015520d202da25cfa3cd372c64bef70a2dcfa3cd3c2e665065d07ee8e09b4e6022b98cea4399943ce018c351671fcd071d4f03a71a840d7a863a4008e2b5e67dbb6cd727090e1e010f33a2dc2d1a5036c9eb6e7a53852f03287cb4b6d343dbbf6bc1407531c4ebc8e84b23dd4456df43df443649450cf31aeadf3cf1b87c688c64c1103e5c3e29c4bbe3ab766856a592f736ad6ba1919ed70a58f9b9593fad05cadea500f59287b456b0d881e5c99312cd0d5c2861ea82023031c4265d22001140c6bbc70b1a4c6b280664c083c3465d0d8b18931396b57c8428da52cca6471440a9dceedd6b46ed76ab7e43ae99cdf81162bdb83b010761d1e2e6b2ad591ece9937f68e5da51daed1dec40abac1a9d4935892669ce81496ebd495afa881b78b8fa91e3b9e5eb4a1ef2653d64325bed321c0bc0f9e84af9c8c17706df403e2916b3a14f920e86b68d7fb420fc233df59ca386cfdecce11dba3209b7dae765f6ed3bd2bfe3049f08f467a875a94dd338e913ea46c96232bd8351fed8dcb2654b4a6958c50a6c863c5b43de4a5fe9964e57a7525a6dc85bad3ea71672ad958eb105e416751548e908399e0f10022990d69ca719c8f949afd02d34c86ca3f64bd772daa9692eeb538d59acae7940abb5d33cfb1999da76797656cead70c07083af01a634a814cdd695392ad1d408000000482315002020100a070442b1582c0d5539113f14800c7ba64874569acab3248961143208110300000000026088c00c4d6905c12dba85b470abc89abdfe908e3ffcf8ff8ea0e2a0436680ea698a7e9bf889799d08dd47af0b731db1b428db33cb503d6bd9b34046c162658c9cdf1cee4489db75fa80b64cadca1b34b0522bd589af2b8c4db86acf89f941c8ccf6739c571ae2061ab3e846fe64492aadb88a822e0eefde5b28057c9dd7393f8bad030b0d28f6ea9a501e5338bad41e15ba41400942a8bfa64f88d40c02da92ff50166fa0cdbe724c908c54628698692b4d4b59a8272e04be81478be7e9d6d625592cef6eccc0c40e510bd188d521938491d06c188505cc6b0e1abe826ae198d26617b44aef9294a3677e092ab9a572ac75f842096b30ec4dd0ef500f657929a5a8d4a5dc0787b41ecfe199f03aaa3b7eb906e6826d1d7454cab7184f5db00a59cc081df72c231c31bde9b0f1d8f619f89bb3c18bea4b8a29b8a82f024d8037bd430d01f0de1d9032f44ff4dcc55bee492075a5baa088b05c9f05322e20a88e75c64755b89ec13e9666d79ddaac518e71a6cb94b6fa8ee2c121524a886afafa006fdc912803083ff3f7049c8090b8506f4cc6cec0ec07662501b899b836b9d33f6475fe7126f1663ab9df0bcda5a999a926c8866b5ad343ed191e00fe5c330d97298b1bcd7e45b3459912b27311210b42ee14503c794a23e858e8664dc3cfe06a08060bf115fcafe760da372230bffc29b9ade3d99f78fc6bc9545a692616bc882b157718601994ff888d2bc313ac243fb2a819a92c2e1d48f58819f83e6cb88682c5de9e5785eb45ce212ebd49ca8dd774694a58c976391354f40bf99372b0d59fea2291e86aa3349f8d825ec9e77337b861f52f9a45d84def300f6293a7b38a6c157436a9ca2a12b34634528ea31e013df50e001bb4e927993cc04ca6486cb26b432f7b34e8f034255944a779178ee889cb92fb88108ec0dd98cccb709d2b1e207dbe232b54042ed3062cbc9fed822c18d14c8f3f3e15cb93c62a7ed54436edfe237375cb55e255091e5ad72d187af2865bbe3ca6e8a2115d2feef000746b8728cd135dde0d46a7ce6faad58e14e7a5818d67dc0baa4d0168a089458145515874214b4488e44d838ec27de75f20acbe2091ee3ddb481bf551ac9dccfdc2be1a4b88964bbae73663f8ec649cfc8c4006516787357f8bbfffc4830a4d15e90de16dfea643abdb7bb25851ef7f777c1a6aee8847f9114c41d5c829378f15de5d069ea91656f20a607c15ae8d69b9712a5f6bf617fc6af174a3bcf4b450cf9eec42c49e88f86df4baafaadf71568248ad57b5b209d846dc469fc2c3b1d24cb37239ac01e7528da4ca8dd271aad3a81406e29b6e925abddcb0922fdc6dd50c3a93444a0fa59eb4762211a77c5846b0e491e17102a4b0349d64336bf98dbb2eb6ec257e72b7560fa66de55e1996035790bdbb9f6a079e320d4104fe96def3879e28009807694ad80cf69a7fb3bb6f746be5eacf697753a1570d139dd0d16ff0cd13eb3ce96d07c0d3e3b0c65b041a794fbf3a34da6bf89a799bea3d0bbbe79752736cb81c17119c26269f01069aec8f9fc63589dc3ef9c467234fa3a554f2c0d96637daea23a8efc511c16cd094bfb528f89b4183c7f0b9ae1c44f06649b49e4a249db2d171abe86a8acccf903bc14db6f8696a55915bd14d191371b96f506483387b4dddaf3b2a238615f34e90a085de2a57800264ac565beb2b26ebe103e649ff13cdb528cc6a44ef84cd56fe162ce477155e8b358bfaecf961a3d8a7ab04779d9e2ddc0c043201524674dbcc4fe574f6438a523183359b82faf8f5434114a3831ae596abfb99be0b631c53f29d111225a9d0e3130e420961eaa591efb62aea25a611f1960163b0fde576441805f4041ebe67260a9bca9fcbb15ae046e5816350ab65189c2babcc5dc7a03e588f11b5b39c0327635bfd0c894997c9745dcd765b35c4d6c5f0721c517679fcf8eec85c6cd6df0ffa4ee4a14d5cf6d3ea6aac8a1680c35c92e553cc04ec3c1a44ad97712d9bf933070f14745c4f26e0f592b1224993037b3d748d6f86f937ee4dd22946ca86408789b6d35a5bad6c7ff1429413ad707894282608e4eb698b24d077c75060777cba5b9f550948cba93bcb21797c3ad9b7e8125812ad41468231abfbdae9eeddb0f9f5b214f30797ae816623c0eccf82bd0920c6bfb7f986a06f578d9bbdc530e3d493aabb5e22a2b4059d289e450df6641f18f0f4514697f25c18dc8bc0bd9a581a5cd8107b1ea31c55d7ed53a3aa9e380e61da44a3a7644e1f1476845f1fde6161834f04e15283cdbb82366da01990820f5ff179033d9825bad3875c4e50d8ba1e56364727553d8a505bb1e23be0222e8758c83133e398a85701865ea6476f0fc8b5524a3b2b6868099b1d57e60b96da8fe3b45406aa1f4ac8a790da9d2e74ced83888534bd659477cd6fd5d568d72bb7d651d221d9fd3c84521f43e735aeb9e64afbd9023c0a95536afe32ac0de3641e6f51e7d3b851324c77a2bab8e6a1820b9d12c744f6c2778828e5a5e4204fc2708eff9c1450b43cd757a9d7e4ac54f50e70e868f712f96b55db3f7ed98ea5353c6d02b8e64c454501515e1da95c7e57aa431ff898843357d5703d50da388774e2ad67b53376a46bec80420b80e7ae8360c8e63d1b3f3c76cfdf1b32beeb05dee78ad35c881823397d7d57225306ae1dbd300b3f8bc8eb4b34da7160f06fac938d480d7d777793d8946cacba1d0e8c9fb84d8c98f46325b4533b1f74f41a5b77900fcf3803eb1b421195647ded04cbd418af14770cbebb528a045af787d55afac73ad8ca62ab59ef559cde3c354144f5628c95ca8cfcbfa37db6e89585a5eab53e18dde72c5733a650664759dd1567d2fd341e108748dd6cf9573349e1575d987daa27918e8d9d0f7f7a2fedb046ffc04871f37fe266b3f67f1e0d4c7625967f3e6df9d235aa71b3b6521968406aa4a46640113a3d0f76ecc8024710522b72b16207c6c817aef9121629711fa0b045b35586e26ea29a572af1148767d192354d55a4d1ef6daffc0cd8ac9f5156c43daafd667e653ac56e355a23cce0f385a17d161a82ca6330a6f70031258c2606f1ed13360c045a1f6ee397a85344279978a4570dd53ef6fe47ae95f8c8ceec9a3aa978ef30961badc42b67ac9c9c7c14edbab8c489cc48184cee157acdeedb4da838dfe7c3d62a8bc6776ea72a8a2c5c9fddef8fc945dcf805619a4115e40b70f1461a62f9501b7515840182e7a7e1129fa6ed98caa8e58a3410c83b74c6f9559d065064d22cb76c90d316fddcf84ca67a9879cba8056609daf15d8e8035a7c2c7e825254cb5ea22bd88d4c50cfba1aae15f65410c365214489410461a80b22070e6be62f8b41a885b47d0c96730d2a466f4d27d8ef41b4f52ad567b7d5fb8a2da3591de10730619077b05fb9f79964fcc09e5228df0cc415e05e041446016ec12122f5a2c4dde4e1d2d5e52cc4ffd72bb5738eeb49cc940a0140d8c8f0264034d6b9134a138d5d8d93cd3c1abc256022330b690a23d20bd2cd35862ac7a53ef67bc7e6671ea82501ad4df17467c4add9771443968676a763523224412f7918ad32ecb7bbe5f53a315b1a08d538d43181a9512baf8e4e1c35fd93368c713e8d9e9255d1a07b991314cdada84e9855a549890c53dfd9377246fb3944f45da0091b3f914008fba1422b8d8a974809ccd4cc94832744cd3dd852e4ea4e8994044c54e612fd19b90f37fab8693858a8094c073a3bea47dec567fa20db786b7099d1dc2358ba2821dbfa2135cbea2ae981638cf10668b8ba8de2ec6d0d717de1a9a862495ffbfbec514b5cf401f849150a86ddd58e7d62eeca84e3af6f2450a87f9734af4a233118a535cdf5f7d7676f9cb7eb25199f5a27af824de9fd688e33b83d7986986293f45bda0fdc6848d8e0f851ed01ad758ecb98bde834647ac7c5521c1a29c40181409bd3f6d37a7d64a47a085980684f3ee2ee1e5f10bd6fdbb32b9a3c51a451ec5cbb2e4203875ed030783af325992b6ca147f8111ee930bb6bdf094724437f9d14f424c1a66bafef773525a23cbc6dee9e06e307902562af8921241de8aef169aeb7516b01e680d430fb9ac99c11058ec466af882f765ce6e848d94fc78f37b376a82441a4dfc14022ae91518b58d46c65328ff5294cb4de768e04fc05bba8916ff9b84a2ad294dec96bbeabc49877839bf3a76d606ca865a22f66c5ed2ebea6bb08c106e258d3a5eae9fb5072ec9c7f9f9b3c090af68d9d27081cb6322b3e0ac6a0613ec153912ef35317dbd8cd0c8aabf52a0da42040dd6c26480d7903e839055f2967bae88f6ac4c7d059b2295a6e06bbb4766df53f518376b3dea371c377702244429b0258951b8222b0c0abb8964e70003e66a5720db882518bdc1a0fdec43d25026e68514615002e7efcc2c265bf87c2f8f5104fef145b2241c4fb78b4a84f0ecaefd1597677efc9b6f5f674616dbebe9496d597526abf040167663c19d4d7b908525d7087bd11a572a41c247daa1986a575520fb42feb7c42b9dd8a6afe2ae271ded3c5ce2694ea4546cfc09fbda1351d9c510dd2aa88406fcbdc34eb1d2a13c0af60b1a74f7c1aba2afbabafba594485ad47c2d9788a81141e290757b91523a16b883d2cad2078ed63e254f4bb2efa7a39817c48a50064a2b0887e4f70c8dcb1e6dbafe9eea828a435bae847f7d535a3f08b1a53e64ce0ab8967cc7526b8ce1d6dc8820bc7647359af9afbcb2c99b6191304192d85e08be8027463f65ed1d6923f5e9086a1fece3d9823de2e7a2e3d1e15a6301428d765b95b02819368f6ab4f7d85dcf0013c736edcd5674fc288fb0df51d48d05612343405ed6314bfea8ed9cad98207357c1138677d9360814e7e3a53a06b62d5aacfc7e82477d84344928679920c3bf90bbd3de716da62803a8c348e6b0708890ab466329e4117d919ec44f3c97d7f801994dd359d9da699597d5ae5d52df4e297770d5a9e185e41ca8a80e8d78b561d13f1059687dbdb3b76eb9bbcb97b5e62edcee2603fc34b222d47c515e2b39e9480f71eca2bfb59097a86b58e73d2012c0b9686d8ce794a65bd00997e9ba524be7e352ad12926dbb0aa3035ee2e1fdfd3de938584f752d60bfc57cdf5697affe1882d4323fd760ca0daf453b771f1718e3322ff1be9c281be8bb5a0d18eb7194b1f8904fad792da3af400fd27f52d28c283bca52f9f697387f581f8bd9373799ef7b1146acdbb9c7300c7d039bc48ab115b78207f04c5cef9e49b76a9c533e72ea7dd768a8212ada27e09c41389f04ea2414e9fa23d12afb08aa347e6f728e87540611ac075302559fee5fe9bc09f9e3d03fbee319ab1cb41aea5ada4aa57671df069181f3819117bc7a9bd497d86dfa20d32db3b09b51f1d3192aebd632417b24c61d48a19f41432ddd52b57ae0647bba81de465bb001dfc1226d2d7506aeeecdf9c61e9b760c02fca9fdb0ba5d9b3fcf93b1cf5d3ec7989067a1264bfc9ab3bb30da662636face46484a143e50d5892892692184077b5bcbda65f23e14b9fec83483924fb92b8428a35121a080d31195d43268aa85b039808e9823a4b06cd413708df5b30f46eb9f6f9ce61c0e0a9be4b5145e0760c52029163f76614cef83bb073f83b0acdbe072aadb27f5d26123dd3cbd9e182f617a3a98cc068a1c1987d6eb5042786eb79cadfed7c985396e5080e80952717ac5956db13c719b49ba5e04e464f15578e87dec6d5cec4b02c7282480a7542b609dee05fe28a5fc7c396fea09a3026f1b0a5adc262ced56587f3a146e69113ca3b4dab12583cd9fbaf822939a565411c90c956f94a4509c951c93333cf25e32214262e2a384cef1f7b16da924716aacdf788f080b8abacf5b9329dd8bbc341dfa3501f37d5eea994ffe4790f7dc7eed348dc70871027b9cc5a64ed01517bcf90d6021365373ba4a95d6f6c5045b7183138082c61be795ca05c4770f80baf5382a58808fd6e8352d3887da2d83ea4c4cbbb05f7070f3b3225cfcb002cc634ecf8ec63938c422c965f3b965c1668a4addf73dd8f7e7148ec77b99df74df1ec7255df9d583e028498860d4338e598b89591c346e15af89f572177b3092c4cc15c62f98aadb0e56f2623cb451aff50b7b77ca8443bfa10cfdfeb7416ac8821f0e3c7da9a43a0287418f17b6cb7d1871928eef9e90e89afdfa76470ad2796a880ae85256aa7443db26368537d26ea9533641dd1dd799689d87572b0a7fb01dc0a3cabe47fed69dcbf00f5cfc1230ce1b96d4db47a09e3ccb52eb95a228f16c92c027559b0a77f54361270178e161228df5799ecc51171d4d47ec8b3f5d8de035d833955514870edeb066dcd54dbefa608de2783f794634e4cfa7e805404d75cdae5fad713a4f066f66cb5b8e58870d06e38dbb3f5d64cd88922195bd4d386fdb7ea56069c68e342f08c649e40af06e56e13d7a5f024a7f4fe630a0913ba71e8aacd3f39af7fb9cb247c0b452d2fe58fc2cd66f0063799acc900584703adb6a3bb5fd29dc1fee0d39e8f720aa9314204740d3c435bcddf615ebbab9281fdad485b2f6026bc5c51b86b7204f28972e1edb40d4348a53be2495be9817c1e8a036d38586d5159ab5b2764e457fcbea29f41b8aee4742d7a934e001f622ff984949e8fbf2b83921a4fc23d8b2ee5b85596aac872c4d4e034ce57187ea7b6450bccc582ef77833edf64d7391df7a7bd184b520ce0869de15e3b3e8d6b381de5515ee9234cc655553e69b7a28346660bb9637ec2973ba2cf2b5f10f12f4e58576979743c73f7508e4d9743cc3fdec77e92b19c0c6824ab65756bb6adabe4f9ac9d8b37846d95e2bc9019b6269f3ee31c80a09028c22f54f06e07d5537ff94ac673e051ffe01906fe21ec764794cbc4e3142a789275e48acf43ae3d64b0307e6468c0c39e4499bcc7bf35daf83624b7ccaef737282afb569e39994974b42e0c5d0b4a0b3583ec9872d392c24526612da0f4ffd24eea1aff7d6a9c8743dd90020b7edb760c15fb7cc34a0cb980c8fafc3b05bcaddb92e41953ef4e9c5ae1c7ce42f398074a2787ef8f3e70153d808bd55f3d5a61de1d3b98e26dce91ff36bd2a92e349cf18e7fc36af22d63ed0fa3b25121265a22cbfebcfea01618ed00a79b7dbe482357c18aa9db440323de563a6603d591de1d90854bdd81b7f5b9b7b0562a8648ebd1ecd9816f2c82322f0cf3a2bcf22f9b7d5f2ae8b0a745173d69016770646e8a8cecd625027cc14c86e591541e4d8ad69ed7106cfadb3c146a3eb84b90a793eb20f896c7da3af73e83d27f59c3a7a0e1f08aa73ae473407380ced0d627042a6615566a1ee5b12cdf852bac06d5e87c81d8da48a8b759658098e9b713ff9625d34b9bfc78aa9a7e9d1495a3b774e408bc369b41c59898e58862719388ebc25c1a4ca2fc6561ef95356c095850dae00d0ece189168e28c33ea5ada68812c78c0105d1cf5afab0db81ee78653c76eea0cc18f872051b201643f3669a6e52ed992d3306dec3da6389030ea529fff8000172684671746f7b3c5011d38e321c63cf856a4c0ff81c260a998691c2cc194d3b730c9706bc92c4035b73d4c4cb289ed3401a249369bb42c0c154baa6889d15c9d8da2e8bcbf890ea79e909c026359a478dc3c9fdcf2efb1f0dd116b86a54cb2743116736d3092b3fa7876ad85160a23e33396542b7b9b68ab774c27146afc4af458cfc933dde72e7c3e4d25ab1f5c4585aadecf91915215e5a81c1ba77b6c28533b7c497ee214b6e34ee49eddaac54072902c2d9923ddbc55189f41e40a9766542bb71509ed93d588beec6831fd62869860a52fa743543abeb179cf92e3d62f165d84dc932a51a8d85130291f8b56b805fae2d31826d66db8811ff3dfaa73b69d162f5ac8af6cd4f0670b970de1b43229e598a37bdf066410e1afae0d19b6ae14135f858f18abbc4e9b3a6d0957876bc6eee3a11bcbd08a16f4d0cd174d2ddaf60f7329dd4a04f3cb7452e21cfd822c20688f4a4d8b63b0c8c4eea14a763817d9453687680c15e1ffc0dc3ad01cd241016065f7434d96f3401ce50bc6aeb685de258aa6cc483773451f8b4c556fedca06a5d4681039f4843070fc7ab6680710d15b1e2d8448579c41b72fa2e3d5ad480ed4ad3025a5b9e562f3f0d8cd4b510c5a3a5fd1819519dd98eccc76f65f55de0f3d837ec2b3a643b780f9c7cca9ec04cee6d3380ee1586694d07ab2ba597149ff446e8297949a9e34d24415be3fe2c32af6b5be14970a3b12aab248bc99000e5038208d740861fb24bed3062176a9526b1192409bb3021d4c3f6b23c2e60628d2bf2118d065abc4f0da493744f9be1c90d9b266bb2ca2a359e65d756335c2a8ce5777c9a56fe8aef15a92293600cf9a829239d09f40d7d5e4ac9a2f3736f2a198ae7db3e02f6f45e75586d4a7e0f582afc5bd7807834eaaa60b582a5270e35e05ed1a492fe8715994372ea54c973a9fc98509fc40efc9d04a2ac1f02ab76a3da6de0c89bc78d009fd97cf04a8d0264bd612f4bc55fe53f2e62076d5c8ee6e11b10e4f84cd50595105e90b0f759e8255bf34368d7f729b319d428a2126a5632c4121cb62c09aa5becc3151464e6338a84d1fd4f92e38c7543e8f0d5f7639f6407eb9b4c129090283dda320c31c82c0ba5cb9ea11f7140fbfedee609142b4a195da22b985b704bb8b139e43e06435f39cdfdc1a427d444a6540303d46a099c5112899eea3cabb9aea6c3845b0127e393632a213dbdf037f2d30a71a1416926873d06d60b93d4706e77ba58f93e5128c298d2d07e3d4e4a120702e032487f71e8be4140fd3b68a6f0d68f5a4f395ffab404c5819086c4f3c4a4b5cdec31c329599b194f55bdbdd2cc651e044c24c9e788ecb33e80144bc9ac7061de11e832e644776c9d5a02b12729d3313a0cce48afc6c4c04d12851e23b90c1c048377bd6d49e90b83e0e5b98603ca625a17908e4f4ecc320bc0b1506d8161f5a6c93b1984a2bfd89a7953059cf7e69c43858d1ec0d6d37b5bf927ca1f5fda305adb2117e734505763c18c86eaf6a8a20377e1ad5208aae6cf5ce139d9aa7520aa41b77df80553ebeee81ac15ec0bb713776bd4623044bf10705119744a302e29c415b652064124396c206772f777e256865c8cf4dc1a706f5ded83ca6b03f094fbecd92882a70dfaff908a4021bc136f1a4411a744c53cf6fcb1cbd206db38f0e52b06993832a0aa9d20c6b14138299a27ef80056d43fa417e43525430fc870e31bc39c1860acf9b2ae764aa1bf0298612ba40bce7e1f95848438bd891389adc09d3217797185066c284eba5538f93bf3979ffa1c84d577b52dedea0abfa02c4e90b387b45b9710cd4db3e29a0566db1ef2fad58edc0bdc7f05bd71fc2f309b9cc57c88d68d573fcde1a6585b60aa981f8e6781b29a953b55064ca592d5623b095fc39faa7b6c6385144291b1c57b7f840c1b10d0d35ecbc957424fa1f85ce6a0f15d2615362a8f16bad5bc9a4a9cee9165c5423d25eae46f6bb6146c28fe79042451b2bebb99fba5caa95a3ea034ea2b1fcee72577426c5b2776ca0e17468d025921f28d79c7d9e150cd22c2374a9605f9201466259aa6b2cf682cb6ceb779771bfd11ddf08347695f717d5062a8e859b2de45167ba08fe40152d72362db1605118531c6663cb43933a1dc2089f61815b1666e004f835c5f65c6895af45a985b98b5b0307281823e383f507d7b26187b064657a5668234fc635a0c9acf317be613d1806ea277b2739254942abf80d91e8d61bf412a6f1469f237b75c0b27163f05ba4dbd0113184a068f704e4db9c089c3e5af9c21aed16e5087846d7e19ca87865ae263478ca0415b81de2d98bee90ca5f882d5ef4049de154b243d80c02b5187c3527a3334f5024fb13e9fe9cef31a1b674940f7b8b19a419b276c0daedb20784b63ab08010201c1da21a1bfa74aa6b773ff17632b5d9d6753fbd03f426657445c89331b709bc4d437033da3017941aa6e3a4ef81e42bd1f586e933810bee160ae4abb2a6648f7b39ca17fe0e0c50307a62ec68abe037aa9eecd984d667c560f81c3a4584a712d6bb179101384f1360d2333d70e668c2cc6a684ec23d489b12f2db49bc4819f13f262034bb0c88bec97c0ed892b44ed7a1541ae31194c81339db81186541bd84ccb601b852dd8276a30c14c4c52ef9e2d871728f1c18a323f49bc2d723361052b64c228f4463af0327128158452bdd614c277ae4d51155e3281ccfa9782081af2c20c9eefdb05dec5d8192ea7f3cc8db4c772066e4a15fd59c13561fcc9f9ceee07dc8d07a1678f4dc89d93d485872d07a90898321beca60dfc26f82b7ea340398f97e36627ecbd3c5521ad757b99cd241dd03af966b9b537595da59950bba9aecafe579c1cfd06c95aa4b60fe39a731108714f641e5c072598177b04cf47391faa677f3748d483c8119288f7fb0a882d70c26b134894bd2f4bc2e226db33b318b6e3a5b443e8c508f0c7ac256c6406f4cd53c9e98cc6b23071810a441f6bf3f7f02548186933336c738c2532a88b4683a399875b0887bed2a3cb8612981c010fb02a0fe7e20ffb33ec20af2038cc3ff5060963f7099fd9918f0a458067e37fe8b73559a8bea8c1991e4f95cbe91c58c0323a393171201777ad5b490915bbc4f67a10dc7e1278db4cbe6ce4efde8b8cfd53b7c328e98e87f76c9fb21f8f08d828a152f4b4a2ff1605a85d6a18f7f11831504f7c5010ae5003ff73024116e4e39c64e7def75a1442d7bde675ae23e7ef557ec90fb8fb45e1586e65aad04d2d0822bf1048310daa59b604e355b17aefc59df59cac6201d187be39f4cb9b979a2436377240fa991ceddfae3cdb49a51f58ac58de3742c30159b19c6995bd12253bd50093cb2d94d90af6b50f031e4fb8bb0a221a1b2a46dcbc2c2fcc3c1709284bc6398a717f29c84e09236a4cea8fd258f35f8c18755fad65a859d972712ede725c2610bb68b2e8879b8014969e58fc9bc6fb4e0879abc6d541026cb1e29491f30f8fe343e08c44aa8a84dbaeaaff023f86e0322fcf087d46b1f922fa2d4afbb536c4733d026648a2d511b33d8e1f6ac79c19a920f2e4f0b859cf334710e1b8070aa7cb06922f576ca2dd8d652fafb60e8064e0fe8b0699543540b48da16afbed3ec1db566390014668a62068e01aa643d0456c5d2c54863bcc8e0a056e7536e290f211f89609faf47e7d865dd1568b45aaa56ca4315a057856f9b3fd680a6d6a212a6a5dec1552d11e685bac6f95f804658662a9f3ab8654093fd5089b2a405c21e4dd5a54bb03fe8eae95f84712b82e063b444645aec9d346427cb6a60914e26ab6e9e25e87816c28d8ba522c4b9842231b48a38ef3460f0ee63564fc0c034c654fc671e54faf66ed010172c00001d2a028144acd07748a5699258057ec291b3ed7f915da237645160d9fcf0d945ab86c9d00bf2d1f802c33a84a9322ae10b052bd1abe165191a49e76bd58f84f3e4ffe38f4e4f418c7c31f070f412a6fd5b1663e57e8e0770baa3c86efb869561bab7691b3f8601db51bba001de736fd8387f87fab68c396d9eb59237f857b6d23aa7a84b7975408451c01c51184081143154e1783083c71b2d44e668b4df2b40dd46324d42ebcfa917302719dbdeef8ac5ea02dcf0a0b8d39762c7cb1d7f6217b10fc87e2c26c6ebd1ee9ae4465810609e6fd681edf643dab154de0dd9bb65a5f167fc550dccf21e7dd2d47bcd41e24306611e85c37bc9dcc826e2d6cd55509104273d670226c24fded6214d83a99fac73d69b730f1ec91ac493b529d679f7c596c3de29e519139d08aa841f08826c1f36a5bb9dd52921951436b16758bb452cb79044e143487c2d250a930b8ad821e9b2f77de76801af322f96ab0404ec427f369c22338d6f53a86157f8e393bdfcf892adb282b150d182fa96ae5845aea2116bc037147faeff9eada1fb3c232a31c97bb512f6471026b990ef76fe39b0ee4c65cebd6bdeb100f7655388baf1dc40abb0c44830b87c85d8f8b6f352f9d570e3ced556d2eae029b28641de1b582aa7ac1c9bdfc2414fb2de8a758514e02e862832b5a63e428499f6510a65ae4a8780bc3133bda1e286d866d5bc8ff23ac02f6a44e8db113cb72b6af62644855889a52d21714dcb7ddbb4e439db9ce39a85c4bbd41831aaf61f2d273f6bcc600ac3163652bd91493a5e6740892a7f8e66b392c97115906ce3828f1d77c9540d56914de461f768810bbaaa7edb19765e7a9c0bdd1f54fe0734a503929a8dbe38ea7217b1827440c3878d2fe582c6eaa5e1a010925661cfd622b274379b04236ced97720de235f023389150bd6baa6c4ef9a1bd42583b8f3c989039e1e1f9b901ae17056233e412f3317be485f7f10f97b374cf2a4466dce54d5bb825c145afbf314684078f16d662f75ca024dd28c258d1e28866a2188fb6f0e02dcc76b4fccefe172833784bddf50b522af223d68e121a80368f7f10d70982b688959cd9257548edb235deb1b6b1f0045867f524c622d71459b722b744f0cd468147b4f64b390c27421e04ca896e593e8152daf3374feeaca15b80fa4c73fd92e3a2315944fdf2a7db6d59db04a06af1f3a3566c4e3be4f86846270db5d9da473b706d26813d56c81df514721416893d048da0d7548ffb10278e9e4e67b0d178126ec585a89207f0e2d775e171551c98a26b6ccb362a0bf341a20ec46dc43416bb1d4b33e142db81e8af2d867b5a2011eba89066dc4a75932f5bba6781fb4cdd92c234cf0bea027f0d030b03ff29acd81323a73e956ff8baf2f3e6b97592492171fc82dd4a0de1f0ac9b69f5146a196bc3f2a359396fc437e356a3dabb71b19ffa2b11173fa95d9112170de815e6c5745319f06e442f5e1609e099756d733e3d8ca4fde5a2310f431ab489a0f727a16ecef4c4eec14718c1dc92ed6caaa3e8780461833f9d34e86dee12fdd193d6b62fe350c638681d8da2f1543b912aaaccc8231aff72cb0516174b4010c7998ed8d11180e91c0cd0cd266eaf68014e5597be200d01990ed57ab7058e33f1526e35f46113be6c39eb2918a09e3e578b5935881a0826416b7911949bec5fcc4d8e2b4c56d6ad4625a23aafd4071b48462f6cbe683743dd2f7e93afcfdb738b15d626ac3a0c60290bfec3cf272635f1c0d72638d538ddd87563f86556de2621cd1548765e4ec6523927397ee536e0b3f7d2e7a3ba64bd50fe8de26bb347825ad0ade941cf573b941dd7f3211f5c358adeeaf9501119b028bbdfcc5ce0abe298caa22d9795aad3026d3c35350f74799b7728adcec6f0a38ee65de7cdf2853463ddd9e12fabca9465709c330d9b7e22306675b869228aace5ccb4da43f2e6d158043fe882acc09616e9d84ceb3e90d85611af529827475552cbce32c6d25cd52c0c4737cf8f25f37d1d876bea40cda449550f30f604dcb1f9a095fa02650daa2dea47a26bd1a8d6c532450e5de344749d3da7f9838cdc7407df3e1f455098ec30c7243d3d7a02d893d4985af13d9e624e73be5a55fef9bee9402363bc87f20e80e78325ce70b5230ca58b84fca3378239df040748cf66ef827ec510b3f69e5b3baf2948bd662a443ee8d14e7e5db294882d2668ba509fc3aa84f47c988bc4ae7a8410abc0e2ff8fd415c694ef77823b359582cab96cc62040f2645848a68e28bd36115e72a1c0d4b764258767b704e6114f9a416af739e0e03cf259c02b83bc6e304394c2eba12a1d5c1dfcba5552e1dda087de1e745012d7d92661e01b1d175f5f24a82f43f80e4466c1bc48ff766433a04b10cb14c1ea404ee0c4d802b3e8dae20561afe8cb28a2c2811313aed72bdb2af464dec5585965b77d965ca9f42ab9e54ee0af9655299b0adf1d23d65dd52a5e617420be037acd6372c106b51a03c252dbdb0a6c0d0684ec45a1a529c2233faf6031edce2f85918eef56d9751984bfadc5744fe84a7c846c10c44e5a754fadc90f2374638c6268d737b35a6f32091015c1c6297857a99966e5dabcf3bd97567bd6a21df7d8b6692993fcd795cbc85fd5272ad408c510563ead5f53729ab229823e922e323d40e10b386af160aee5e1274af1b3d020c749c07d9091aca5dfbb026c2142ef34948436149dd7ce73e6b0de4d02fcc753de922bcc831af25a263846dc573fe98369d94047632bf225cebacc498cbaf86d23f707200fa5a6ad0d08b501bc1b2f7c3c3a29b6c9cc50cff842e4da8a9adbebc5392a43a3b22d870c7d244e3408b055a5af6c50cdb98d53eaad3f97eb8b7b4ae692ad79451b495f304026e31da0275a0d681ec66a2df2c92bbf110bacc4b8dcac3964fb3151a251dba9351e6dbe88bb0c0c4041b4fa4d52a2c5ea6de13820db0dbade5534c69a82e56ea32596868d132c6401ceaf0d152c8011e6db8d916efc8070f6a59b4c6d204734ed35468025f50c2cdb6b3e40ca7724a2016ff09b1f05d835a888c96cb79250cfdec882b2be5e157abb18a5eaaf5c5dd813aff67ceaf44c8bd3af8a039b86d05b6400b77f8b8922fbc630e50e87ff7e954c4caa1177641a39bf29e60fbb13d89a7bb1362f6eb46c13584bf87b2f9944ef67a45360925659b39d81b102894d1c88763c27844463dfc9291ba854b2cb0d6a008389466e42b3d91be0b11446c2ce1664de9717d91aed784063024e36bc1686fd70edc9107a02038ee362cde94a7461cf884ba490f78838b4e15f82e3c2894564e1bb0827312a90b765b0bea49304f081b152546bd228e3d81859c4e29019cbb52452025d208584fb61ae831895edec7c009ae1b06283274738846eab17001800c36a8d83048a92ef28ae77e0a3fee7e5524ab8e4a42d380fbaa16748868285f0faf40fd661120136da16c145176e55c20ba5c07406a182c9b1b97a735d415e7808d2cbdaeb00ea52b12dfb0b9e1cbb0f71fcf070542085b5d8ca8ee8c3130d45818e714ad430b1e6822b82e04bd978cb0566c7612245c45be11d4d6c55d483242e1ec1e344eeea1e198a91a28ed64ea3dadfdbe0f9b20cce5b474a899d7fce0130f678b00f9305dc0c9de4e4848a8d19914745f603281dfa63d19b80c6dc635971b263908c8c7e1a097bf7089584f8ac9bd25c6edc12859be9468394a11018601126934caf414ba2970ba63b3806449b83b4bfb9aeeb9dc0ebc94bc1b67314175dab4dcc8312a3e85d441aa50c8de179fbf194f041608fe56142a1adab3021658f364901b4cd578da169c2950c112f47643b09e19699bfef816247fa4d82601a1729ceef58a33cc988a33aaebd3bcfd50544ff87ed2ce92909784857fab34838e9f6d46d6b2163e48a5549e2740193390005134ffcb3b946a88e9bb48ccd367a0e1791811b79108c3dbf997d15a2081cbbfaadadbd84b74d97a99b71919ea306536d0178787d1b8e137204c8c0c3d8c3ba1d4c785e120d46974e9a979622bb881fd9183591fe6aba80d9800e6d4a73d0ffb7221b4b0b4d381b58b7553ebf05a6b270626e13b2979a6749d500c585da8c62b6fafa8993a2780ef590dee2c715571a57d0c85625a8ff6fea4ce417a4801e3a0f9928a5e58138a36145e2c600cc5a62717b0ba36d01c25d0648f8bce8b033b6f9955496c03a3be29eedc22c3d82c0c9856481aa80a1c08bc97d4893f24197fb409932f2fa31510b205f6ecbaac12b623f55c9c95aa44ec2f3a42399180ac8e4af8c85fced83f5822d9d7dd9ac80561a1f2b75b812deb3bd0c0197f4b09b49c44021e912a43d199eedaf3486939724fc891122da6841781253caeef0b9b8f4f49407bfbc8a7938f2ed459304ca03125c23d336fa8892ed1b57318f281c74daf5fd76395dffe6e84bc7a12c776f5494c64344de9b423548720c7073956dc714f56624ec1f19a09e0c370010eb90aae43ab2188849f5050666e2e5399d015f31f385b2de25a1aa620e639421c9865bab6945421820e098de4d36548507e62648d103a69d720f55ee37bd17a09ef3680ca6d92d581b0f010ac2711c73bd59cdd66dd8ccc00c215c08100630306dbe66d055974d25589ff18f99528be54984f4f07cef1ca77d4cf135e720b978fdceb1c21487abdd451614806d213e1a3bc8947f76fba1a8ff287eae66a0aa92a3427b4dbe4916c8f71269128e1b4a1407a227d63eaf0c1ceeaa3c5d4603b95ed26f7603620c5dd44e4296989329fac2e2447a4f8df4827fbf01bb67cc3ae4ea1ef54da49a50931a912e4b0efd70cc52bf6c494a8817afc27c76ca018dce6cfadf87fab704816a718a27088e80c235972bd5d6a359ca0f15177ed5c43a195b251815ab391f56eba26e43f25a601281947aec26b84b198a50bab6a226e7d50ee21300159be2c6d22372d085dedd8d87f14ffc8f17b6b0f20b44de2d416e0fdc128e86df1b71b222df8fd2f8559fa42e8cad8c43f0437fab97d68606ce106e5e0a4ad3ca14f1a3ce82251ae6759ad4bd263341c6e704bdc4672a667da42c5881dd3978cb5fdd583fd44b2c11db0aba1beae9cf85ea6134b9e411017b0a857926ae53b6f71376d78ef0529e3010c85bb10138c386b5dc0aebd7fd1365352ace036a648e73e20b5d450b4662300b3687a04ced7a313d9b09b38915a9be769df8177088d903306be214c74ae1ee53e2312b3f45e5a8a54c193587446603cf8458edda90a29ff83689db9fe2126488819f1c330d1d24ae62781250debd34d3f68a4c0dac38f9b680df6b1ece7632ccfe7bce0bca84ee4239d35999703609a5940a166db5431c6a7ef133788fc1778cd0687f245a70aa1b50e061fed9de52bf52d64d18c79162bb00c3c789c8c453ec0197d79d9b10ac681fdb4d47cef48b3e0b621f7155c31a575d198c40dc1386176a32cba1f1377414577518ec3fee5442c01bd33e41d70a1c43d2585a09e99533cea910448d98951c49728bf7bc99fc61944359a286027a584045d35e1063710157ad55801d0f1372d0394ec61678f0c3712f105e46ea32b36dc8ed01e5724a1c9a99a9c6ce9e4838ccb250b93225049c50b798b13cd1e2cc651df353fda0a2c3d69271afa6eada7b4055d30adf1810778dc5b3bcde92df84f8a5485fd65b5e736914a3782c00c1cafaea6c2ee8d6945ffcc8d8f097ce9251199d8b404f474db70a1b77fc952f5a6e29192095201bc72583f21426e6dc6a620388a989316267442fa170a04da756c824fcf64195295831a4589753909dff3a7d05965e6ab7094b50c156b7912a4c30f97f1d810230a67e70a3115416358a145a9def9d2e5f9328fe89367ebf498023c72f3492585b533a6f3ac24cf705c6be250d383fbaade32b4443cc81c8121b60c1fc75b2254d404b84e1402ae8750e1ae92dd0f26686b898b7f8be85e292adef91719abe78693051e3c9c11a1a796ba2f97c8c4c701e1ee6d4ec44010863800c54f33e0ae1b25baea877a6b53b789b16508e884f5f906ed7f3f24ee786efe08817bf4d6175cd650e2d0e19163365c62a61ae3bf9461711e9089e5d1ba3acb8356fc6779b8b7e718102e0201b1bec448f38240c255fc11f88004117e93b6872278bad8276cf9ae63c17a2018894b103e443da8ab78e486e781f64677a1e29699bd5751d05e8acf11d7354ff2cf0f02360653089254387dac4f4e3636122589f463c0ec7d0ee8cd26554f46498d841e970d540efd71c8006b97e2ebc4178c5d71f437a28d1c59cbf93026c303f71c34a04cd2fe84326f8909205be80a04985914a97d2d5b70b7712a56010e4350a9447075edf075b3b90785c2a81c7156f00190bb94ac9e81fd74e1a1370866599eadaba65ca99d376481be291c9102eedd6c9a2c042ab59e398411e933e9507011d9162c4ae8c3821c8458bb3d279c9b7babfc8b8821b9495c72d0c84dc0e34fc69191b6acc2ce53024ccce0b1b3b430112e01248152b60a91153de745b8f56b052ee427100f1535fa0c62928e54cccfa3c0be7a6838bed131524e8e86f7e526874e99077159d10f052fa3ef1293dbf1500e24e4f1356fbed189d28cf3e737985fa83dcc08f21d6b05e8258037ab9e2be2e60d61ef3e66d1c6bb9e816d4a2fcdcf0dcfc62726c12b473e6bab3cb16ce22fc82269f130c4e55d2b9d8868e2e356f2e4c81240bf5949555ca28b2d2d2be919f1e2d09ec94f6aeaeb83e23d3f3dc7e0b919d843a1aa16ba645955450c8e3e1231945c76621cb1a752a0751ff2c63179dcfc93610e26197a98c9e2ad2b9a9100e6e21d140120dfaf87ce423a8c9d933a9844c5f75efbe77bea5d3bbb23d1c798819a5a26910a01e575f1ffbadbee4adec8014bc872a4d1bb61253de78d0f63ecf03823d84b62bf3aab08551baa0ed37716343239cc57cffb90a85e47bcf0d28502ac27f1f4d3781b2c756f39fc7eecd4085209ab5027416bd5b876535f66cd742fb3ac43054262449fc5ddadbc07353386b712da0f4434cbdb8378777aef99974688617c6a1897e8167a73b1e89ff5ac2e714f0ffe682146599471b234d68a23033c11fec7e7f962e5b20eb8267620463f3e29f974cf7d1880d049aa80c075f6878ccd7b8918b139ca22193b8f21480f0cd82c21e8fb1541cb1a2a1580744a2053603b3247bd725dcbb1eccea8e27f6b5063c57322d5909fc4e7e60d300277499a7a2e6ebdda47fad3398107854746db2c80989051eed18984e6f1c59305d53a915f50f5ce5071ef6148802762347000906a25f5ab3c606f156416566e82bbfa78b4813a9bbac1f069c5394840ce82d7370aca78ef8a16886dde634cbc9cb919844026224e6c36d724729d58a898a40ccfbd532092d989ca0412576c801448631a9cce0b61fbfc9b37ccea1190aeb8433764a5f940bbb3dbeeffa766a95764084fbc9cfcdfb043adb10468e2c7fd98b6d12370ef7282ee9c63ee736777770ac059555813921c381989f56808aea1862264a9ecb63f02f838ca6ec8ff0444d4e56f5ea87cc95e25013410491d9d4c8255d3c4ca15a3444e5a300e10526a2141f105585bcc5bfcdb3d23ff289ea10921694c2dd2f6ef060ae6c1a8d9ab94dcf1fa2094c1e3675d83a739785b5b7b66d2de4ac23ad88f37acf268fc420a416d85055c3012b4e664fa9c956ac5f27597c3b54cb608fc4349548e2f215bfd66f3e3d9fc5a4585ebb5a7dbdf1ab507ea461b9ca584e556d7966cb609e6800e84a1f60847f58f84445f040b904ebf3a57a663d229e6bfacba269077af4f39ba2af9fe648bd5b4142739c9054a84ac7d066c0423fb3b01fb863e7bc8d0e70438180bb879e6c61e2b42f0df45b805fe154c8ffce0b682808ca5e077919c457421636fae5d44880723525813c1c8ff4b39ff58fe477d45f745061f1f33f519615119fd6463419254988ef60de0f24f09e2511245452bb308738c2cec545e1d88547f8f2cd52bf318a69e9cb90a1674f73f4d90c37e6471f3004738ac101357c67dc13cc9d1ad08d1194538ff511f6036f4f340dd20ae4697d4ad84c6e3e49a3e5fe9b8040fd606996596bbc7ea31435d22bb5061bb2f6ec6ce8046050c1e81ef79f8aa3cd4da5fe2ada1825ae8124c1c24303490ae6b5803161134a491a25539f7f99a8c960e265e8bdba77d60c0f65102d1aed570f5c8caad007728e3b5523657dd876211cc2d1bc0411b56a61ccc40c2d0d487605e2a66109473f61a7d83f03cd22c5ab551998ed2a8fd587e1bd56037b49c263177bd67a6a59ec8fe3fa5d23baf14397da79bff91582a3455b13b5e405bf63b05b726b6718f79c05c2a9990e523fb910cb5a7d43a7156b920ff81729d1c9dc1f88a741840c8de3406caf0640b50e534010a490d3206c0b5111f71947340977bb051576659d2433997b5d335332086bfd26cb393eed92a072759f748fd2a3550c74cb84da927fd3d4408447fdb5571c263c787a6a5d825265f0666d788bfb74dc31c5d6cc88750f963c48655559ba2d8332600af6d4db343f06602a0afd59688f223ae0142879e5c0d8e362cd6cdaa83afa78d691cae733440f10965799625ecde8ee19f88f1c8fd408cf6b1d712cea73fd696658c599975471895b2c25ef2914f943f830a07e9c9d768970d911ae9a480c463a8ea31334e16cb96dff4d8817232aa8dd2e25ffb946bc6c7f211243c24e09e839015d9885af727dacab8030feb668b02dc7a40bac00ccd4eafa3420b1b758dc3366d2837994e07eb174101cffd8782f71f519047486cee3572d6607949d16156a4258c1a403edea7f5b7c1e4bd2e2c5e345850bd7f842c11aa5cefaca992b85a7c851efd513f1b4fd44ffba3197ad0e3c0960e76fb20eb5d76041de6879aaf9a2f4c1632a7cdaca86175062a5362bb4782586344eecb9c9857a4f2b9037a30cbdc32b4854a2d97c32602cc76107cf6ebe138c692f20f7694286a843b21a1c55e9bcfcccee874cd227b8c82ff24e418641d0ea40321a6cda828fc8dba2461a893a7a839d15f2c5133523071714e84c14218b2dd7be29e2c2266b8d949bd12895da82bbc84fdf29087fdfa2d8942d4742933e9720b73d7106d766c0274ae0278a79988ac6f0d1c3a73ca7fab66acd02dc063cfc0410f68809a570a8dabc4ab28ce2955307cbe5516570e59cbe342fe837ac25093a12e06abfa6cb1ce678c3d162bc64a7202b046ab5b21f905562e6a00c141676875132f815848dbb4a2b68547b82ffd408c399a33c051b367ae22ca83619fda72f3f0b2365cd740e10e740c975a4003b026e5a3e0f56739f4c61c1941d21c0de7da6cbd19ad8569240add3cd5c19e1ea673772a6a071248a7ae8ef6becfa72a2a0b372a780d3a3f6ffb03708bd2809fd2cccaf1afe5159e787b45e73b3938f4ed62e3960350e3f9a87c583dccfb021625024918c4f38c81d1676db051638e0f97839491138c90fb7b94942aa47da9920202f1c34bae8b90e01b6fb9a3500103c158c4f7731143ba29984666e06b78cf488f3b97d373a6722ad2a157f675911c7cd5d673ab124452f26ae1f2dc21c27cd06d098170639b4bea933d1d620a83970838db21d4c22e74e4b0f6134e3e6dfa6432f153e33146180c2773a866c83191cbe70fe867c24d997e37b95d008f720a7b40efa78688a182a71334fd11c0133f3a249a0a27e5e933e5afbda0bdde877bda8242da14b847a3e47eb398c30638d538805100ecd68b660af535e9ac2f5825bb9ad1ea403cb893159a8a26d39387ba278a940606a996ab5b9bc8bf22021f1cd283e4557c0e4006a077ec0d3d3f28b7f8f9dbd344b6a90cdccd5fdbf9e60d324e98d03cd3e630272e7e1cc0958f0e73ec7083742e462436fad76dc82d4ea3c8858346d2178038aa7b58f3165cbb88d700b58e0d0c3d2e1222b4ed8f8db8fc63839ea3623e584d445da9a65e28251d45909840c2a18dc3011a58bbee21e807e4496329af97f2011c14113de4e624f54e905ffd4bb20260ba333b53f79328343f3d8a72cf72215a610a245769561f8fcf4ecd6614a58ca88b54226907dab3193e22133899240dd1b73707e693ffcef8db5b11f680e60e89caac11b136ee72a149f0df548be458c5b1463712e293683d406c639376b4667ca1f73bcb24ced89830e62403a48b77dceb1aabce364a86be743d4ac507d9804924cd5d59a58a141aa50b4037ccae4b4451ef140c09c2bab701a03e6f4431286c47f68ca87380dce6049a563410ef4d156dd2c63e105604e90bc930237a4b6f357563bfa5462e1afeda8d58b52804ff2f4948a4c74201fa283fefbbe3a20613f269772a1a904efa821956c5e6dc9a10d606dbcc8a1a7a7874df5c9e1e5f0b8c016b257515026a0a22f7a86f2780c994187390d542721a8daa7f70de510e4537c341f0f7798b93dcc900c547a9433c8b03c4397bf6d22babca2061a14b86175a3d8394374644225427bd4d9f008e0343c0b8160658898187959276db461a40b212c700cd0d899a9ba4645421c8cdf0503302c8bf8dc3d68571bc4d7b52ee2aced6d64481ab02b90354af7837c64992ffbe66585c826021e756e56e037622ba180562c721f88688ce03d5415eff3d3f395cd223b065728674c4cbf1fb363d87bfb15992f528f627c9f642378992575b61046422eb917bc2e163a86281e443364450697a1d06303a4c63886f5cb169bdfa5e0f029df273d30b75a57410b3e26508b6bc13a62b0509fc956039b4559eedbd5775cb4f1a4b496e102bdb78bb2970af02b5132cb70fb8e0875e5209b590f618b0cf253155f57c07dba9d4328bc9cac9fb2f1d1509abdcf5c47649fb226ee2fd784afa4f5f22cf973a62235a43bda51585d77d97b0e24f855bfc8e9bad10bcf88d6b70561a272cba7d10dd16d1e02824b3cfa4dd6ec0b7a1a4a5fc44a26f2a7bc75d7edac4211e06f43cbcb20a052238e2b0dbefbe9088badcc04c9da9ee0faf037d5ff19de14f1c7609feb65a93f966076f9cb98e2d0a4d6d5285dfc35cda8c9ad7d04de1dcf4f3dafa2425a057ae7acbf858d234ab4df8bfc9ca6c94ecb2c92e14f162ae430000079df7f84918cd28eacfa5a08d509d025e186fcf7fb918be7d15709efdf9a3f11c0b863b936804436faecc6974a5537e7c060d8d61c58136f865d4f7287bcad967c059ca8f6195019cce684d75b30c1a426e98508845abfe6eed2450e3101bc11831d7298bc3a20f7042e5207a48f81909dd29cb01f94b0a7d2f87767449a1e91946fbea80d8b894c0e7e4b5742db430211dd9cd1ace355d24f5168259d182d310faa8dc2e4241ff7b3b6f6e35f231871dc81383868e80687c98d0393049c9b9d999d74e0f8e09446339f2e50aaaf6172f8b597a17582cbc56e9a36294bcf911516f4e44e58d07d1f91fe28a8dfd0e25762ce5101fcf033fd80a6d3f0d99b054743d8650a3f02c67e28518b61459221b582d21cf47119454aef98794c84883749c717a8dea9172cae999c68b91cf89c8d2dbf18f54bdef5cafe93434022184164123f2655a0ecfcb66d66db45da5b6182ca09dbf954d7b87d558f2e58d0632e5a6d857dd62631bcb2b45af097445fcc49f5839f7b532539cab07ed680d3621158dd2d12d3b26d038307f69853fc79aa09fa6c7308ae36f002a76213220e1d0fb5b10c70e50deec1a6a4376c660ed161ca1ba0e085460b55ebac4d2bd06b8782fd56315f52f449239694f67538daa7c8f04806fc79d1c4486d90e7c0a5849e77fb681350ab0cf96070a17b23dcf067a94cc851a2be0b82d818c14f0f09f4749703e12f0018c4de52ed6d61c18efb50f287ce4dc38b71a36d7849e0b35117100b70128f8a41c1b88e2a56cdea6e23abeae897ea481b41fa236e7c8531e3fa1835d1da8ca9cbfae10c87815fc72a4d1907adf537cbaaeb1974b93538f7e182036a971257e4145e158da367e192e29a3ff753527de3843e4f7e03ba21f4b78513dce31323db3d0c8db6b6893a2c6dadf1f8a3e8d02d92d0f0eb5d80aaa9e59874495c5f0a64cf7e94f14c02660ef0ace1c40f8d135603313643921fcb79781ec9dfa5ccde737d4c9966235add5cf3c7035a5904d626c8923f499faffb321b43c43705c37c1103cd78e89983ca08e0d52a418a5e3847b50cd3f0a237e54dbba8fc6d4df73521c73da763d2ab94011aa26fe0fac72aa29322a69a82d25c1076c92dac2ebb31ed83187066046008c57697126bcdc4eacd856b54f1fb0f5745f1686d95216854d00d2a67a15b62017332d365ec5405fe7285e33c1cf5669b7d338d07d468db5607f26fa10e01510e0f62d580f3287d3399514c286e0cec451bfb7ce5942402ff55ca422478f211e4286bc386dd43335d57931c833611d4f829ea9d5613c85d8cf208cd7216aeac1061890fa713223c24c0943e86b9c252bddf669f080c98ee0b9461c1daa4a1367a75bbe9127b8eb39b8a23e801b19159c32fdcaa93eacb27bb9aaef1b79a193f5a40152e1c75d4e3258079b9c6559e6699b1912424e4b198ef8a2551f4b76e6d8fd9f6e98b597b4e2783849c14413ef61da5e71a61e7909d772e11d940c02e2ec5cccf2d9b3604866945c9312c14086d39edd3031339d1fd8ab23b76277148412cf2281a147e4abdd0a14d28c2782b5b99ca2008762068cf24e61cb8b22dd8bc11c46342bccc3a8ee1920c39d90cbb712b3fc5bb0852d7518545ddaaad42cf0482fcf878ee62b2d38de8cbf31e8d89ecf5977338ca0365fae2b048eed0ca5ed39e6c59e1966b59d5e1fa4bc50dc5741df2aff2c65b1ea5f4e90b23d40b5586dc7cac8e96b16aae4adc758d050839e6260dd10d8271b1f0f79f7a485f5da9f21f9f00dfcbf14a7d4f6608e3608df6dce7150b58176a72ab10f7f64243c2e96d1fdeaccb1a001144d5fb410e108a4f68cbbec64a5416832a98a63ca61109cf4046c92be4d4db40991edbec1cbeb7920a7c3d1ec981302d5e0a76a467c03d96bbb7b60742406e34a5ef909b30599d63b6da37dad631dd8f1fab16f52873a0e04fab1879eaadab9876cb1088e2e43ac6fffa734ecce9dd0bb85eedcb7d6ee5a96562521165abe627b3308d02d99d07bcbe23059c0e0adfbf392858d32969ce61631d9db2833078d8e0561bc137089bb272aeefefd2539af9528484e183b4f3dcd8e654c054d6c86431ba55171156a20ac95dbb1d63c7e286ffed11761bb20c8329679c7d5b9e55a68a78f847a522325e2ae8f043328693349526c734d03515fdbb07490b9808dfdc344f6f3c6f9fa079b1795603c500e2c23eec71de4b1ba65137b8e20af15c1412e769058cf24a491494e1e37c8396bc761f1b347b498d2f3b71569a63b84c3ea2ee4c681b93b6f02e9af19a491275c843dad0143d70a46f2a9482b0986f238a8530bb544860c53a03e2dd20f633fb4d7d72c919765180744ee1423fa3c213e118ac363a2d9aba897352e38eb098c849f5219f9cd60b3056d49aad84a943269d4f79de18e19091e2f025c1a8aa2c983f327dfd21298b85c2e29922488f4f86c2ef59c970059276572f6a7ee9a5074139317aad4dea97d34183a9208d510e870f2f3e4695e86b3bf70adaf74597a028b583334fe159e8905a553c51d84b5c5427cf22897604bd2e08f547fcca8558c649f8e4aef08786e84b1130b4f8ddbca55e19f05e371f2a818104f5361e22edd6a5d594b9996187de9d9bed612576121d8ce356e23e54e4acf18624eb45e330fa7b11e0a140331fe0ffb15b34cd5fb54328f4e2c39bf7dd06661ce92163b59efde41d68f8eee5edabe6093708d1a69021baae09fedcbfb5e8095d0a491126baa95cf2665527d13447713fe72dd05919d097d5d4e7c34150ed3f6b4f34a961b1d625f07921adccfbafb1fb98c43be11cdaa6be8ccfdc46b2ff57c8a6e18ab4a56513a48fac7ea745e67dc2d99f21731065a4ed85b062b82495037d49bc4b9924ee4b9a783dc694b0f398083e226c1fe31f8b8a10b502802296f33a51760b482afbc741b2207f92b075f13a45b1d66462382204c384d58471a83b010596b6220fb4c9998d19df64c0fea27c55eddffe7f7d2eb7bacecf9bf468876a4ba2bc3b3a8ff2c3c6eb40d6bff9ff4498c33f87f1e27b2bcedc4e7636c2b042d535e1ee1ec02e206e84bcf4eec6b7d3445dc8a471ffffc5f138b813fba6581227c55d1c39fec2fb6ed84aa9e261b9a1089e3d2599db4427aeec6b844551ae57b11c0a33cebbd7237750acda334d4a8725b0a2e16f4d0efb48b25053a86251906b7b165bd712629525e8938bf3a6312b82bbe71463842656f5591a1135745b691313931491411a66dc17cb8e8a29765e8b9ccd0220b47c747185296b30ea74075acef7ae7b15cec070f6147d458c75734a8d10ac0305519848e5bbdd37935b0b6abfbba7b14afb9a88d8b9e2d93b37b3e970238f05cb85ff246d82aca8445ec78a43819a86908442f1a6d1254c9f8fabcebb844f7590fd4a5ac39610005714b11797dd3d0c65498e630220d9794a25c419528b423268798220a0596c4f7807057f00796e4b8a34f55a428afed385aa28b9633a3e91cdcefd7991d92c73b807e5429482932ce88d1daf1e54889fd11ddc80f2046c528f240fd0a128cde58daf22d55900583da9a564a4c7436efebcb96424557cad261cdb69b6d9c60baffdeb66bd98b63d3637850c6e3f6900b4e90d9bfe1e19a3ce52d7497766e42d18711687af9b000acfed7b8f5c6db7c9d9ac29f31722450fd7c5655b5996c33a0bbd27ed9605ef78021eb3fe447f4120da6b8e9e28069cf7820d6645d8e52b636b4624fa84e54f486514b60597a19778a0b27cf39d486b9bfe6956f4d56aad78f4b40026873dc5e6eb7b4b2341542e67c8ae15bc47512f545e255ee0dd6d7a23872c5ea8f63ad06fac85ed779bf929ec690755870c0d82735b95ac003fd8959b6e5cca13402e72bb4c9548244c92c7015ce0544dd3d30bdb884a2d82e1ab26ef7994c22836bf89708d6fd34741f15915be010840b6f3cd294e09c33491a3309ac4ff0bf804dea1510a2df8d7485b7212f9d12a1d95be141b81a4944edc9f5dc93d1c192f2b1695d6541351e36538907ff1bf65fa9f4015ff8a6765d052dc6fc328df11a42e7323eb4289d3421b7e0d9239638796cc9cce8788ebf62625266a30e05922adb7828a472788ea71420c8bd429a35e3d04c62e017bc8ba248efbed14ef8648e74cd59a9370be472cf85efe3e3a1176423465916a302fb86d645218be44cc234c600c268b45f24ab70cb582c435226aedcbd66c821f7a5b819ee0b7bc97c0bef166416affca46b36bae1db40738a24ecca4a3a7147646bb4a3ddd4ee7fce1c51411596c4d0e2b8641a0c666593056954fc3c382e4be6851637011bad153c0a3ddcd4eaa39f249a0390a1493813e5e296a86e25e263075413bb6e0e5762b72f03f88c447fbc611ff1c49a5660ed822dc71512edc669005f3f643798bb65885d13f30c801faa506a5aaa611169357a1cdb7328ba92c8aeba7dbb974b40b5eea38e9d2b3533fcad17f37ea3dd078d65dd78c4fe6d1ae90de16949ef9d50748e04a34cc3384a861c5b4cb2aa0b433084f831cb0cd2de02df1331c12162a5fc1d4305f7b5ca6c3972749f223e3cd50aa5ae4092412b3d4de83f68bf0d4f674295f26cd043f680306709936c4d62471f98baf19d84ba39b656ec1b469362bbaac85febdd62a7991af2936267a1bb3cbcb76c70b11c9321b87d3f9191397decddb3c370f1f7df5a6e9fa1352303e3908cbe27c46ae362b3ac519fb5a26f41d2dd9a14c9acd07f4ad5f39d45a42d4944fb75bf3b9dafdd6bd23b77728ff21f6b018dba239ef0b61f3b83bd5eade73695f13169e5cecffbdd675aa5cc6a400436b649650bac0ade0d93e59a7b497e8034b9415488dd7236c3663b16e83759596c031c43cbaf44230fc7c2919b3bd8674d2822581411c513390715ceb2d69b5cc3f1b5e6a94c35b43c4c4262682732a055aaaa9fc46f81a30f907a38307437f3bdbf2ceae30770ae2bc27a73ca6de23f0a582beb5ecfdeb2d133efd8a2ca4f2886e99aec6a79386abeb1400d509a66caddc119a810d184844d29390cf8fe0d0d8f8562dc41c224c18517e9553aac7fb6ba0d1a2bd0035aaeeb096c52488e92adf36d1020a2d214b7f48ae0026d2c5688ac31516dacdb38184aa0332ada33715dbfb9f04582454c31005e01db262a939c2fd2a237740c7f9968814abf12ab8dd7581e36818e632809c1b148783c460d08ccecd3c07dfcd6af60d0f201a5f2140c860172f5a95047bd50cf20fee4c67d095ec731d6c0eb396e792cbbcdf7fc3a4d660c740318b9a6ebad62838145571283ae2e608e0e54566bdb6c24276a41ef726906046b1054fcd215cb5a94539b98311ab6b492a9342f6d26c3b2cd1f2c8dd05788e06707c3404cdfa9385b27c2900b7cd37b7714771ec686ba15122f559209b0ec78e3c56aa036b4968995efdaa1a22d0b6884801505aa09741974a40f2ce61302f316c08ed202ee002a5c83359a9be29fc95a022419900f442ef067116c74be052c629b2040502288b7c51381b9e35d93fda3736e011d12aad29e96f8721a4bdf17a8c6b81df739897582fa0f233e3ed0c8f2cbc3d5e252c725d3e128c48a1f1fc4d4a2aac27e639e5d213bb1af90c34615320b4afcf64f8c0ab63333e801ae9199ec02aa967f6283ae1c1005230332c74d01a3942913e3345d52dc74ab583019fc3b10ff809b3b72efcac2dd8c5269645b720313cc2195d4a9dab91ab020140782290d2d76eec80f02934fc63391fcef144b7fb6b4b7a74c916acc0db84fa7183ab045d5187654e48d1f52c8305b57150593acdae6e7ef76af8919fb0b1303a1d3d7c44989ace58d5007327d7f7e1bd1f4156402ae9dd7d38f269ee72e01b41e9bc6d6f66ddebc09a9d05a71501aa9146a19caa0e3796ee781f547a81a891cf9d1d5a7f01383cf15966492dc6d2ae924314ed07c33e705fd42b676e4e5cb17a357756951fe3f70af31375c3a4aa9809339a37cfba1fac0cb144c93f8337e3753f57f2b959c97e87d2f407b673bfd50a9dd8bb81de4ab7ca9e1997c4c43cc90c4dbc85a15d7e03af841717bc68b62748463cd8c7d9236ae53024de85ef132b6060758421ce2609266d68f2ef735b32c302eb8bf9d6f81ff6a2fa385daf64c3be5efb40b7d0fe585c2226f50343aa1ea866fdd8045450ddc518ad1a20b423110eae69ed5a95c20a62c2444016f8ac3c016dbd17fb90be79767ff21e6260c3cb7fbd571427b833a65794d32eea8e56c6a011eb90cc00a9945fd7adebf2a93a43c8fb83dceb606e6f22d90cc51e1d9e124a84ad6e02eabae4c09b65e23b0f2eaf8b11738c753ea253eba7dce0a4b2eeaf38a2e9ccf2ab5c24aa288d7e5396f5e24c839228113158dac27f5c592b6a534d708fc9afd564c7a7dc6f35dd3f9a951281bbbfb725055376f263e09e8de36e84b40fab3a3d479622c80b5333398a763e9fd61cc567d4015297f58c65377de60f62904b5858f488d67969f8eaffc7f14059b95db10aaeeace3f614a9e7edfa964fc139dfae90ee67b62fe2c42783f769bebec01721d6fc8bbd6e7b177d8a998437c36d638b1ef2b537d58500071e96b4abd25c6f83061e5e6960ead4829201fa9b86d39b0f956f6e176e58c759492d585d70f1f470a9b4f03a07e7879f81b114d3592c053f804a0484b8dc4841604bbf05ea36e816cf814a91ecd794a1268693e545cbdcf2bcad9aab0916aea840cab8a52d889359470cbe383295c908111503515d41706e4c61378cba17286daef43f2257c1b90bc8715100a51f9c16b1f933beb7dbaa6ae5d344c20c1181db6021943e4a95a776a3b950f03d95560bd8f9c1af1b4902c2016671072d0b07a9e7e082a0348f899016ccb493e05356071c209a5374bd78693bc6cb58a4a369d373604df17545974ac2010506263b37d669deed68078be56d0595fa0b8c57a48168751c047ad684f79d0f7905bf67b16d6d6e9f759067e3d571763d540426e0c53ee95096aa19dc0802fb06a232132fc1e8096e1102b20d3cfc3dccc6ebda9ae686f4501b6f8fdaacf00d72d3a0be5aad21a445ea0815b5c74977317da75ab6fdbb45d9c98621d2d0678866e0b3a8ada4c10daecddb9952a8bf1d91dd4a2d07f5cf06f2b723ab029bef1c507ce4fd2de1f2a3175afc2b7de14ff750a65e10339b79fe755639cc19698288a4fa87745f066a9ec18ce082ddb3fcaaadc89e6166c60e0c075fb42313f08be24b3687af1e3b1741ec1bb8fe8c28470126e2b8ef2dc9bf186142a4e1e38c8734eb33f4dcd0fabb2843fce0f2e08b2004d95825d9d6acb332ba47c07efaf900b1d694e4d03f8f31f5635054c0f21a130ef35340ea133260cfe0a77f1e791850546508d9d42500cdbdc1f71529752087380dd4241ae3921cdee0a561e55ad494ea4f5e39c7a069abcb5dc9114b20b3d9d2f8d6bb351e1482fdbfcbf75a516ef017626c364bdcea821102cc5cf9716cac36d8ae055e964be32810f91f0e70edc45165256484246a858359c8fd6ff934e8fa4a0c9f82313334e412987313e2d2b5e2a9df4cba589deef1e292e59372d2ba3b126a8b86d6e6e18867893070475b1baefb50eb71c6d5f44478e044f6cf99afac590cc4121b22c4ff73ac253a3368128126c0cf5c94c5509ef39bed5ee425580fc891bcde9cec2519ad9f2d5524913b447a8d9d35a3a52ed793d07ad81c985e2e6fec95256b6226d2e9b6ffa259239a5f7493587c956516af2319a9cd1c07cca649659022ae22849040521111813495cd31257a33e12a32fd7c08bedbdb0186fb94358c2e5e6d3e3363a86a8b4a16b60621ad9c905bf7963e31d37377f206c3c62194c07cac53abc9503f862b61bf73d0a866197ea9bb412bc291b5ded8f3060454ef018111535071bba61cc805b44ab7b6df5a9434d146756f019e2ff4c4df63ec994aef821a0da02354242762fcfe83ac933d047116d77747c2f35c10c43a998666deb0480a69cd2035a724d360dba71d4fad4a3b6392190ebc38128001a0482f177d568f38311607d7642900ad6c41f9c6c61ba03b993517446f73c01d65261db1c727330fb98ce911eade63346705ab06c283d1fb826c4f6f66812aa98d9163a8d81d16aac829c41250b8bba939556b72c48cd12073750bb8b90ae10b36632d2ba2a316023f866d9993a21b2b901420c1ac221e5117770b40548142d4cddf49cea10d9c7c569dce8b2fda0948a5256d3e0adbb76839d871318d00589396785866ae32ce29af5e05a37e8dee6d88cb0cf304f02079450aaa729fcd7ed18cbdaf13d261599cde2e22904abab4ef5eddfa86369260171b8a06ece96c8aaa381a150f7c2bfb64cdd0e16a5597a4b6cc98d7cc3a4cd1527ffd05d66d4a0bb62baefdb16435125dde1ce71011bf97634bea0c6e5e07e4e8623a96f513856e2ac85949291d9e0c4a73a0e3bd17952892295f4b7a3d3f31e982ecf21590ce3ad396ecd8eaadb540707242a782162309867904fbbe61c0fbc5222abffec2f0280d22fb1a7ef403403753d2f3b468796d34529095592c042e41279742b61b13fe801813fcf5776a615b73d34a4f14568d55ba064f22a256d590a92ebedb205cb2b1d18e28287b83b103e64753608fc11c7aca946c9953ed4d0027c96a1fe43a20c810bd0b5b00be64578e413245dc1aa5aeae8bd332536c30c1b2b7695d972ce80643219a11b325d2e7007d19f9c719167b9f17eaf2c0b38cc501d7e9fefd6b57f5e8386770fec108d51f613a9383d55d8e86ad21181275e93ca235f641cd657e4a867ada0cd1bbc9d89fda46e1cd023b1af053c5c807778eb07f800b9b9f801b83e250889d30bafa541989d5e667e0be58fe96e9653050fe9a72570415260b95e2d2e33a8864b977007ada4d78914ff56a8533a8c5c527f295655034e52064363199e00e35b71e4f9138d9623c2763b958796aac8dbb6960893b1ff10667f819aa246d21985105a990ad44a3c13910ee420795acf1279029a075072a96692d624e693ffc62a998a87a82a8646d17d137f1fc808d03e2cf101ccd5da0b7bb00097637121ccf7d9dc66a3eca76fd1e7c8a719d0406ae8b27cece06ec1a1cabee964e0c81536733c4cc847829d9cc50cf4e9283b8513456f1e5c2681674f162ab689f91937a08f798be349696d4a71d4226bacbb5949a9984f2fa9a3663e9db6c334b9a54ab05681f9ca91282ff4244582ca4d046111510f608e4a31d4e10c740053bebcd4719248b6feb744e20c0e8bbd14a7b8547a0787a3e3c3679b786abcac7c9466509bc2327ae3608722922db0792c953b18bb079096ae8cce103b7e77765463cdd288c4c5fc97cf1d94edb1bcad7ec1a996350a74718fa0b3aa4239528fb183d37522a0f36fb0b765725f8c6469dfbdf0755641fed8bc276405c2b4c62f56c63636c85f5c5d86958c4585c73e5a668fb02743c2d7d4f006f931da0d7e3f5ef0207d53e9dce859a1210508648544ad1a59a8b800c3ce75efbce453620bf575d455ecc446c7a6bbfa35331b0a3854bb2e60c95511431064c0b8d22506dc7483d46b38c8ac70e7d1306fc8609ad77b810886675abc843acfd02e05440d677276185ae05860e819568c45fd3c866630bee6215cd62e6ec4a18bae03d94605a4f31ab44ad9b3018f71fc3877d2d8e22bbb32e44448bee2cd6941455fae906a4dfd5b1264dc5a19a5e34b4c0282f61cc0d0941229984419a605fdcfd71d651eabd9bf0866b150c6ccc30ae17df140a25e70c6fc43add5b2292cb0d781bbaff035fe0ceb4c90d1450f35f494733bcfd2f649bf0c85feb8b0ae652c9661a515d75edcd719c0c624807d07783cdc49c81b3684b5dba6f14eb07eb4668fa08b03527cfb79d924d21ddcd3d67445cc55dc4e945bc97c72aaa37bc0bb7ede8119e09c9af4e73b0b730bf327af62d7bd41ec6490c3089ea37ecb81a251603ebfe2147d300a14b0f295bef6bcda6176e20617593af36cd2471eb084a8e452992a94f95fb551285117a8eff4fb8753c3c9af6c415c2dfb39fc9dddfe029032ecde10981e7dfc34ee01107d68b31c5830f00cb2b40378176b183b86aaaf70b6675dd3c83b0da643bdddd903781966298ede2927085517fa13b7d8d1bb9cfbf48c0014decd8fde006dfbcc54248931f6819707daf3952ec29e8f5992bb953c701caccb4ab708536924c82f597bc660d878beae83beaa8a9997c654c97e1ab81b51c90b33187fc9dbb2af5328a4919318494892074cec78f4865d01952f4caf28160637c011697caad1046edf0714b5ebf080b2c1c4c1fb0d71bf5272c508c06c956e2fd592f3e67fa2f920887d3e8325921328b9b6d302f98be0947253601fbfd7bda1955162e979077dcdcc4db387ba3dbb0ad8ba0e02ac6f346b9c1115c1c5fa7c92edcb681bba5d4a17616c5985a9673a97e2f74e4e3baab4ef04ae8241e3ec6a7524c7c285051f4329b16538c7c33b09f78713ae4c418088eaa858dac9ce0132a96dc072ad9ea975ac7802a43d078a8daf759db8b6192862c4c73a5e2ca137e96d62b6867a45221b5b4ffb30c777106b9fa702f51a8dcb1f3ad1fcf1a3c56ff8952ad1ff254852c07cf15039bc245ca5be45e7c0065c5c6929e1f69911d304ba8c85e04b25ac34a91596e1267d54735ec458f731fe4bd6257668d8149174187a102fd1f6ae2e539b4c453e7a1930c36b3d435eae00a0452e44f0a16a4a93a160e23a852eb099e9eea58320eef0c7d2c296e62cafcb76b5cfd9ec1f2b86c6f7b36b1b10ca2f77bdc486a700d2f8eed6f95e97a27f5bed770083238fa6ce5a25585e3aead0691ed1b7db13564f6852ad1f40cd481b937508527afa8089dbde1026af8458b1a449d60fa01bcdbbea6afff603443d176e7d6390ce13e9837150aeb7cc79c1062f9c9b528b6d1853eb0181f22f3d263e3522a7c89619baa531f3c91dcb52dac0a3927b72edba9df99fad6c379c8143186e0e92e6622b6e519d62676afad95f694a19e1f3b3bb7b6ebcf79930f4312554ec9b956ffd527f4e6ea986384fd0557c1a7910fa46663af528f7deaf999d0de8753323199aca93b2e739d49fea0a67adfeeb8f248dd3925781b8428a9ea3e8953e6f081ebd640e312097c21ba0dc82802ab8bcd076c2cc82641d2d3248f27d58d18b0aab186e601aa1bbd410a18ef42df063b412593eb3b89256b3ebd86cd44dacdc28d984ddbf7a5d2b0d0bee7840552f2d8f92206a69dadb7763a7fee07f040561b436102ee0c5ffff44fca791e0c2d28e738a636ef291868bb928ffa0e4cf25b665513f5611b4b0089ff5900502bfef05acd981b1e70fb299196b9e09563c9dd0ca3ee772bc1d3c7cea4bff2929917f771bce2f41cc939a9af4636102df4c7e18311fa0d048cff14426c3a750098645d9addb8bf5965ce01ac12315447872a369fd2e0d1206edcbe023abca1595c4014564d079e9131de569db48e2e49bb25a975bbcbd1049747e08a6aaab6f5b16d715a12c68b6cfac31ed5130258d79e5a33bff1b6437cec5c61c2e5f3dffdc35b5fb7f6e01fca54c586a1db45bf12225454856dbbdbcab6a54c29a5c3054b0587053576b71fa5b0a40a1f000145520e4cf420a2871a9af001930f285182b103206080c32ce90a163c41840b6e300283225240a447d10c55103941c54f0e5778214491929f16d8308b49d18ae208433dcc500417e010810fcc809860880e8860072ddd0c6ef9301cbb7feb6f875cc0a6c031168663b3cb6671dda4fc5c0bc39199a3208109f781127be419cca62a99bf1da6ea80e831ebab0b7a35bd737593e97bb1c8ea9f37678c3b3f3f0eff97abc1c661777fe17c350dda80865bbb91042dce49571b7de6455776a487ea4a74914335b520a7892342883b233a4c7fcfd040ff0e1eb32a6053e8e7b1aa333fc315b0607f44b5a081aed337a6c0e0757e310bd3df82acf265955f6c2fc583044cba62f48f1fc6c48f7969307e3da7336b00509c637a866ecb06348c8959425bf2311be331b58bf8a17acc2ac14514358cd966a81bba7df9a66d63fef1da79c282caba484082805aa25d170948924b47204dba79425d242048003112699463bbbbbb77b8bbbbbbdba01f41e3ba4b94bcad89a9601a2d51dc9df7bb35f9e6d2a3ef8c01d8c51f011c4df545c265611cf499f9f9a4de1fa564940497265697a06f4696c6beda677e33a23b585be3f6a0cf6cdf9ce07ea00b088220585912211463e2a48ca649939838514e48322f75101020420019a2f6efc0a036121022a102d4450232434dd545b2614962c19cd19c4143a82891e37c2082f34106a6b9aa8b5443ac0e89398114339c60882a7c4c11970881204891284984240d23d87c08daa637f1e3064e8204514cc0040e56d0b8a099420824417082a4c314d3071f76f04105cc459c14b1f4440f2430c10c35b00969ed103452fba33751fbbf05f30493c81531081d9127ba79e4c30726520d5050028e880f6613e9421e11f94272dd245243578f1e5aa00487264aec9082199cb4d8c10f4934d0000a931a5020916a10f2ea22d500a47638e0d5e4388e9bbb2fdfa3baa18a51dddf7ea8bbbb7774778fbeebbbfdaf5ee1baf7c42efd5b17e69b1c99237f77646e6e6efe9035a73751b743c6ee90d155464b276394f1a5250a0d696fa7843ed5bfc92d0c77afcb7e0f2e150096cfe9ce6e85140aa7499ebaa1665239a06d0eb17a0a01f221dbd026db989ca494527692ac9dc824fdc4482e25f959229f30914f7cf36dc8ac480d8a5c52b7a12133984c884be2b96e2afd31e5fd7ba9bdf01fbacda8cc50fec21ceea30023a073c8843a12aae10624971a0ce22e4ed42e449da4654643453d54544d7d34874ccfbcadd2396a85dd36ff51b7411f0db60943d0b06bbea45dfa9904711294e4c506e4638bfd904e66509250ed373d29325aaa496af79b8e64915a25421b621a8252817ec8a48f9817b02421274ce413a2a324464b454a456a44fa3d225376c2a2eb3a1673295f98a3a6701b8b2ba356982cd473ac130b95c2c29143554dde77cdc23171cc199f3fe5ddf418e851e733ea0b7354d49f5861ac2a66617ec8a36bca1773a82a4b0bde9bde8b35e41e470e558da6f73e1cddcb0f4dffe1387d737b741c67d00952038746ce6af50f82ad96cb3575265090396973beb0f3024d87267483f9841bc2413c7874c4104488d0ce0b745eb831c3d927aa97494d78b015e37a6dce9383679f40b1b1a4a127464c62b224335acd89122cca5011a221d8c2c898d7b253b57af0a5e5da3cd632519e62b138e3fe4c1cd498f990713f80705e3734688de92e7336b7ba4d09e8e0a30441dc400724132c15352da030a2841094a4b0e9afa1536316ce1778d4d0b9c1a3a327861fa0e9cdd99c393a39b31aa72f5c2dc348b496a6718ef6c8d533b7783327a52b106cb5621626e2e4e4c0a9f1c20e8f0e1e91460d1a471c1225961c924c5a2694412d93c8210993455226677289ac49a19609651632480e99ac1a630b2387641139342487e4d0a4b5aea533f9c66d1cb7715bdca3ba4bf35a76aa560fbeb45c7d9a3a714623ba6d99d381bca865c25ef258cb7411070a22e4430e73a2b9f912bd64ea81b7d20ade9cb3a665420752bd4c6ac283ad18d72b3a109003399047bd39a7cfe6f4e62b4bf4553e877e2a9f7f39aa0fc6679362adcd024a4037b242578d13066b8595625156173daf11ff1df419fafe9ec305360fe8ca58b94b8f77faf985f3fb064facf566b8cf7df15b26863a9fab0db5e0f5d46373b8260b477c1c617c0e06af275688811ed57f9d9bcfb1fcb9a0f3fbc3e1bf6ab05df0df9eee91826e2f6b7a7cdfff7b5e3d27f5958c61695ff6f40cfdd9efa6c19a9f18947e69b564c451e542861aee5285a15a4587211e79c8c2380f893c646b2d0dd7ed7f67d666db275634b56dcf3b33e437df3e1608789ff2363cd4a77ca894f741bd67e3fdda4c16f52177f7ef58cf823104c6316c694eef2f8fc53feee2dfb1b88f832c8c3f51f3ed1b2279478867e706cf0e8fffd67066373466b0adcdee6c88a767a28f6330159e50d3c78e28d67d7777776f9eeb885e4f32f438565c18f93a7c4655a5b73c0501eadab544f166316c61b6250bb17e3f781f2fc9b15ed4d36f30174ecf1f8b941b8b455606f299055b1aec67caad4c414d1e90675251cffba19a14a6a29e47559e2ac82a3933f118e6483210d4f885d4ab5e0f3677a7efe3977e70a66f73976fd38a6e5b624dbb4459b330f1650d6b6228a1bcbd7834184d9ee9778665fecaaf0dcb5c5979fa3ea9d6d26c0926d373d5f4bc26af599a945d9590a22b29965285a1037dffdebc184a68d785812b2a52d6bb4b7c1556447dad85e1ef0bd78a1ab98f5b51426bb66dfb7d3518b76dfb3a136bc68d33cacdb46dfcf935fe8f1a5176cd51b1390b4db6d403f94cea7b77f19ff4a6013fd49f5d60030fa0fa577f16c1d274efac44759f463885fd97fd5b3e93fa1523a39b9ba5e1f75f61b905817c7c52af7a9f9587f13e2916fe1c18bff239aa4f7de49c954ffdba0dd5975af96810f1e31054ffb000951f858dc1326c0afebc0243d53dbf0ac62ac512800b3ed01c60c5119f7be6fed51cff74020e94b91b174ea89cce03451c92f5f25558a547e59781423d656921e5f965a43c7f2d0b43bf475d143353952f8caf811e95fb98c28281a3f4b40ceadb0697a6fbc0d7e1efc46af921f5ef330cf41eeb83b5e5aa0e94f2829a7e73066af0999f9f9f815a1a64a7d1683aeee2cfbcb1f80703c56d6306fa1a3ff0875190968946d5757c8681d6c59fb60c54c40d6a4aafd4669224a1416361fcbb184a2857e95e0c2549682c4d4a4d7995eff7df0d06ae5ea5a99dd9313dd7c1b4dcfb5e0b935a17ff2f04ab73519dc5947f28af5494b28f55ad56db8994aa56de74c5400dd29c1f94d66ab446a92987997b13860a288d1871a657c3186aac9275d3e0be1adc3973d228f0e072125e95e29d565e0500bf3e13804fadbe12f8c736a8fa60b0f867dd25f585abc440757edc07fe3ea93da56b2588b21017bf6a5c2e0e7acd39e7cbe5aa79b95e42dce57299200b57093d8d74b097971757c18a1fe6fc5eeee23fe9ca97e6bdbcbcb01174916c78521b5017c986a12aa37f8c979796d9c113a0c0c2f8fbb77ae68617ee2c8c3f0c1ea84f103edccff7e9fef4dbc3d88176ef73faeeb7d377fcf38b21889cf9a7b7d1fd697e2b77f1b509823f5cad4dc7aae12efe2777c1f1cf71c3fe049082b2fbff307f677eab35aa617ce1b48cd3aaef34e82ca0b2f6b2c37363a7c5c353dbb9c1137778fcc5dde3cccebaf87bad2603a11a6b304fd6ad0c55a1729571f2ffce74cfccacc2d6fe8692040f663feb939550af2cd05ddc5dee744509951f774cac19f24b962fe58d06fdf339fd45e5749ee99e54dde9ae1c2966831abf9016c105359cf567dab01bb3a24574545da42220b6ba4a14a1091d7865463dba13dd5259ad5a31ae96e9df5e76bf2b746ca1dff49d0556aa3fc3788efef9a99dda14fc79ac6a873848f8520bfafb6c6785a9ea34bc408dbf491d01d5f4443d6ed0c110125908a9e2092336f1f989cff4f8910488861eb0c0081164b07158d211400c81065154601327b0821d6438aac1a004b1614e464a3c3df73aa74f4787bb44d3371726be7c2937f97232118d5bdce2c6a251fef4284f2ae3ac31fe34a22de385d18b19658cb27fba2c3a765ab76c5917b5b66debde808082a86663840d770a899efc3bd3a4f94cdbb80d1086205ab26911d970bc143ba18d5a4bb3553fd184c468426af8f0562ba35eb27ddced37d40a5b9fbe989058c784c48a4eb1f398c64a4bb3f554435e8aedce724bd97e51282c41fb6b5a4c56148b3113594b56148b15c962b25a8c161322232a1262444454fd9b28168bc562282f28135a649190fccc2f7cfb5d1b13fbb32b748f6ee4373534d8e80687c60d0da31b27386174626474c49035bac1e3d1a4abdf1e3f36a16b666db635a78f49bd3981687bfb0ef5e6f4e8a43e7c48dcf19939671141248d46a3356d76428d4c82b84b2dc87d09ddbe8374109dd3a35ec7fb946f8ec5d21dcb9c1f0b04ba8e3ef73e2adfbd0dce873ef76be38292ca77af439b95f23eddc7d2a8b791f2a9cf87fb58fa63317d1040fde97352de4b79149aa0db531494d0edc3c97df7212ba5b07ad6b09e75f56f1aad9f057ce9eed6717f3a5b4a310d0eb94b4c460b37505b0be3df6a58cf684b66b326a2b55ab425b3d912da8cd6b1908330515252ea59b75ab359d7636baf0a6789bfb57f6544d0e28a2e2a2aa22d99cdbc9b8b4c1f72515111fb505595675ce3274c73f93627a5db53d6ed4dac581985c212741bdc4a8ba28c3452d96a369bcd9823b35183fe949718ca920950a04099f18cf60f574410d9491e26938e067daa60858eb9fdb67575008d76e9efc5bdf73e1f2ee7bde8f0ee81b66fd60defb966ef6d70ef7d9db775dbcf0663d480364b0fe80d9ea531bd7f055626030bfa9b583c4e9c0e56d2c13d3c9474f4f4f050d2c1a347478f920e273d31ac131d4a4a4a4a1dd18f1c1a1aea8d671f2769d0f9a8371677a0f210d34ea84b36e4da6cb07b7c06f5ee26b438ff0cf58c26d5876834d2a8a976ef7d4ef739a747f1908ef7e92ccfc6c5d0111ff15191994b97cb334ec24792f988677c341472519296098baa3f17ad8bff9c477cf4c3399152625352927fc73a0154d0b06131c983a2da75fb429fba35a95bdd929606083bd34224d5e6a4869d504fd5bf8b7cfa4b8f457eb84b88e0e7f55dc73ab13696076b591f35ecf4ee0d3b7d2c36fe63a911431039dd9f58729e26871b0cc97e6c4e406c737a1b044042c8c6030cf021b3e100019010b2397d3ea7ef3e8e004808d978df7d4859e07d2ea08063eee23226d1a8e4561665ef724c097deaf6a5b8a0f1931a16c6281b26bf614a316ea286352cc6b2611d930ca56149d5c326d244219126d2b07571580c62b0f4450d1b965262e23f6cff83fc1a97cf6cdf6cf96d6f2760a98b247301919ec1357ecfdccc6c64569b89449fb40687638c4751c6186bb8e3d4389271f7199ca323df232904152c642eb9bb5abd0c92fe7f1c21e4480e8890103539220392a22582404242048cba48468050c102498c87eddeeddeeeedeedede5e75910a88bcd8024a8caa7f4e4a3b86d256fdbaf0cfe52cbe8b1e6af83287e2e550575789a524888ac802c908baf801e9082495ba4a0c018b26dbd6bd31b66e2e17d291205cabc41634a8a14bd6d0bbddbbbddbbbbbbb2bc464084a90201dc10517343431228aed22aa88a951f4beb8c25d5fd7ba5aaf97cb5d2f6e57cd0dad7677bb5c47bca0081ea8a1ab4aa2989773bb709819875f37382f9c0028a1cccb140075918c6451f7dba2a8e6e0cb4a1981c69806bb3d8ca931b18699f90b630d737f8c8bd7a37333333333ff6ce694ba4832d8a2f6175225283a87d5962a1bfe33a1c1ae5132560df62ea1fc0031f5b1a1da1d036ca03df1c35dea6999f8bd6a50d5b3f2f904e1ef435fe5539f8fea61fc7eb801f171c8776dae9a97eb55dbe1a1e5a0f1f753e1ca810d8e81141bc11542c44008292e688b7484075a64eff6eef6ae41114e6c71049ca9261404676607b6209afbdc3b672361422ec1c1898e2b47f68f24b55a374411a338c2032664ae8a4a5161840e240e2458798149c9ca0d455d14914981c4b2e4e6a6dbead611466a7f216db1d41522b4999b9917690640b5b90812a4966e40829541116921883581c2a3b75a2d1b28bf6cb5a44b77f72f9492dda53bc7f84658b18255d54c2cbab162aabff47d77a6ecae7ac9642be3216644122368382d39c1448be4075dcc9ce09433bb333bb3bfbcb4f8fdd9bf9c1a0d128006ca2f2fb1215e5e22133963706e642f170ea594e2dcc85e37382f9c5a8d8baab8a2862b338290e848e122d9e018b21f3bc46057d0a40b2d640b8888de436461817f3df5c58b8b23bbd8d57a79bb6a5eae578ccb45aba1bd6e68eeee8eb44203dabf31234825286a1c3345f41dfe5790e8cade67647777473a2208d5fb03492aa91fd01677f7a7a13a174bc8d018956a4504b448084dc4288010a5472f2a0114999010c9b1286b45071aa3b444a1bcddc81a0d36ceba4bebe4e8c84dd6d0692a8c6accbc6791079ec3fe4b4cebe5a525664e4a37a6f512e3f125a6c19724f1a5f2bfbc14d1c5911abe44243c2c12921e564549d26c8dbb1af4e8cc2fdfafd99d1179c817919696e9dee3eee0aacfae013f755dafa5e156bb839d6b831fec6ab1ee7d4c8974bfd377eef98e8cacd3b278c8da3d7375b64cb7f28216d7eeee87ae7dd7e7ebbeedee4b4babd5dadd5d57e1ba6b125b5accfc2db0c1af9bf7e377db72b55ced4e5b19fe18dba8fac62bb6e93bdcfb4f60670680c20fea4b10aafaf390a5e11aa3b4413fa5d478a3c1e57ee7064f8c31c2c0cca164a4d49d858982766d89424d1e638c31cae7582cdc778dbf4f7616c66544168b8caede774da99dc9f3ba5510f53e6c85aa1055e37a8ab730b14655a0e76ddef703ea777cc6835c88dfea6389cfd3a0c7f8dda82b5350eefb737638deda8e0e4b66961db939f20bbb84e747901f3ff88787aa209fe9f8c596d924a8a915243424282846a856abed080d090a1a22148384860ca03a131940501007cd58c2c0958bf26538bfa6857ecd0f5d32e6e7f2162674bdd47055fac6ea07f4b7926b6f69e617535fb85e352e974b972e3777af794577bdd8a3fb0dcd3dba7b742244a5ead239c62e1bc7d806d5dd67c0ac58bbf6e69c2dfb1141d06cdfb68dc572f6a8dbfb376b9550f31db5c20ed3cf8da5eb623dc34535273496d500a4866ce405410282d59067483f82d4909970ed49c849dd69dbb82f47a7415f09e218234777778ec598cc7338912fa594d27fce18c794bc1ebadb7d878808ad10919ea5e94eb64ca266f4d6b22d854475b8b5e9168d72390dfa8c263bda81ba8b7fe1ac42b0ad654bd33bb8cafa7bba6f293d4b423db28708ffc8a43f3bf7fc2c09d51f27313c611f4e9cb4931e972ded92925743a7b4518528b83a8a058ecfc2b24aeed7e97fe1b0e969a7baa0fe31af18638c716f6438fbc2a979e1dcd058590c3a6eb9c92892a1aa5a866546fff6fda9586683eea8de3e281c043b061bf488f238aa789ec7dc812f2dd3c94400bc4b4fa256e03ed2702149f4517d092f4b80f13e25bcea6309309e84b701e3495891f000507d091f0048f85660ea4f1f8275e557be63160efe542a46968c948f2bdf02fdf832e8c7af656156be070bced6f832b6c6cf8595d41772fc8e4f4f55501e6bc70e1eb3ca8fbf53abc16c0a2d15cb15512c3cd8322c8e05822fb55a6da705264912638c71a756ab5119ed142dbab84558bbc4cd149fdf14e312d3168346bb1a326c43b190524da62ff4a926d6842d4d4a8d6cc4462d1339c90aa63a63a7a8fe6b62cd6098f83ee359884d213e8f5565182c4c34b1100b46b9dcb105594d2f039b34a844ae987cd8319a190080800063150000280c08860242b168381e0ca21e1f14000f7480447056369607235190e4400c33862062080000104000009919a2510d4496c734998d81279d08fedbc53196950cb6f5bab4b2cb538b371adec211c74a705416db1ea54af82f09ebbc7eaaee620c37d240f25acc20d69e9538017165bf5dc87f9759276ae889aaf683cb67d9e797c7cb2cb48c78eaef50f60b9a5f9ce045d9808053be6251aabd1b22d434eae4c3c53f773cfdf11524f507347a2de9b2e526cfa0eb876648981b74a10757da0c37709f75396207df9a1a5949291f96e40a56d53bd672fefff98d7575d55514980904a3538060fd79b9ca12f09acdd1a7eb287e27e6274d57bd1ba08969c66ea06a3d27993a21146f91952a65810daa55c5c538adc319d82bc98368aa5a291911bc5d0e9ebbb4b0752be4fcc713f5db8ddbd6f91c52ad85924be14b72ad1c6ee537eacfcd9d6d6ff13acb8db268db169755ce1f89d031803f926fe5d0de96765cfd69cb16a595d1e5fe146dfb7da74b9c14579ee69f4f30240bdc05d6d7aa9f9394311d60460c05011ce8ef97226ba42d60184066c3bb8b00e4e4cf47f71ab07fd89434dd284c5504594f07e95de461cf53e96e87ceba73a3305884f559a3fafd53838afeeda6df9f7e978f66bb99b9ee2c1fb80220278e76c03080409e29affd95626d30dfb688a3fd80f48fbf8772a724ee2f5c3e59dff62f99a66f06aef88a0429d669027fbfc66a4ad3399b08634ca14a40707a4023f4d9f1e568fa497a046fd1d7fae131de222160fb5ebac358c1c3a86eb94be7f18c5e877e97014ba1bbfc0821368704fb350bc6c706f0d52a44e7fe78e4768bcc2c33b13abe6a91e5b57325840f48b9c0906f4c86ad58e32c1f8f4f0deb6d4aad40bfa1094bb7f1e3def3749597d96c0ca4e45ec164f3f9198bb6b5df708d19e1bf3958253c90eed1330ae6b77d1c06004efe331e2424c1061c7d10354f05cfc3bb35a0f729af67f6034932e60b5c11f1a691a00ddd5e0ce24fbc708940bbdba83e94b8fce121df0f634e6ec83aa777e6a3fc3e40184890f6a3aa5314b6f898fc275e38ce366d1a1c49c82fbd24fcd4c984bb1f6fb55217a133519c07caa796193b3dbd0eedb15c5990fc8187cbf648b636309b02469b91694bce596dfda891e4b030f7933cf9daa1d65553f99c54d0ad234d708da391c05d1a92c52adf31b4907c042d5dcce8b75108b7e7dcb4a9d48cd785b57557c3f9a417b737c1ff50cb2aa5b3082cecee5cba033b85294a6351b5fed42cad276c07e3cc13b821209481f3a4ef309ab50bffe88ccc9c482b49c4e1a25b2b17441a1f69502054a6ffe6973bc923219561eff31ef7f0e69ddbec62da271023fa38918d3a4823ecfc519172509d44e897008de60d795b614cbfc948a287a96adfc5ec5aef0d60e97bc5fa06670e993d02df95e5dc7ba84e3c72f7e1ade37951cb338172e9854e96656b7bc986255196106c2cbf8b04c537563da24c3a7539f26e696fd9d900d28a6254fa29ff043c4597b6f39a8a07aa57c177eea06fe7152ec0262f405b2a1587a2242ba0df3e7c10c266a792167286ab6e0beeef5669a006fa85ab31ae8ab48750f20e78791d405d2f13da818984ce945b9d63dfe1c5a5ef2e1aed0fe8643e0c791bcd201f46625a0fbb30236d47278c3c20562eb4825351848e2531852656760af747b332fba28be64264db8195e29e67472d51df76d08e39095319d2fa89a2522dc247e28b870519cb7fd4d7230fd7674310c626cf3c1f7b37ccc2f0ccb3b75eb759ed8abe017d3119c7d08f89c95770eec493eb91ce04ea80f44b3616d44a1154fe6ee3e368e56945962af495aa3f4cb2dc376e94935359b761514a877d3b681617f46e036e228ad25d1efc0d553d772ebae41ab17f3cdd82c643fd3cd87ce2b63a08745496e5018915e1e0df7a5d61565385931484995cad689a248f9b6d5c61006e56e5fa73ae176b71ad590797b66f280c1d73e30c61424dc661326b721b94acbb8e20ca2a3b28cab3052bca4a46e5c718ce8a300766de00c91cb9240d595e0ea0047db739ca2b22044c8c3007a4c42b18bfdfe3e54590fa36e4c02fb3fac62bfce1ba580c2e21842e7881a8de52b99f7ee14ad95cfceb6072722bf5283a26154965f140bd7eff62cd16ccf07fe3de54df54da7b242a5692b4a212ada97c43fc3a832ee8fecf5cb2de2b1315aa67c091015911832e254e668e0e427f2bb1dc14f55c49b8fcda5e07ccdc4a41807c938d4568a175a7f54a8ee62c5a981237d4f905bf0ed54ec90f9fbdde933a2eae87d0de4c336ce1f51350bba679f53eb4a478b4b58f39590889359da3edd0a46816631c4d6fabd5faf3288f56b1cd7f818dc09dcea39fc139ba6eda0a2a0b1068b15c2760d1acd7624c6d2f0f402f6a03d97aeaf15e01458cdf28394d48ef856302ead0d3ab174b380d774bcffe795bad5b1a90e3a500d6e462ec9f1a310b8df73a48b60c98e1a1552f0323a97f906a62b260e88306367db0ade55d3a5f802813ad4e2d26e96f872a0cf8e5de4c50059f0806009e1c072afaf659438650172d2a62f7fc43157dbe341de7028533ea90585eaaa27f48b8e78e47304f355cafecae9b747da33cd6b9d3e7cc8b7bcd8536451cb6876d91a38eab228fbd560d102e5a62e77526fd775c16b2ad92d8f72309dfb216706e546fa04a6c38f45f58ed806d6428416e7d2e5f2d6334e3a4ee312a68f4adb4a270314e8004b8625505f730228e5991497d2f42f8272f867db31624bfa7df5a3bf944211ace3309f35a9ae512c176aa52aaccb2a8e32ebc3963cec859c6602bcf4a92664f3b132d40bf909da4744d560125582a5ca8ceb62518c7eb95ad97ea8755e425ecbb4e11720a506d5e56114b77b2899cfcccc8152b112ab669ca3039afd5ea4a7eaec94949f70a8fc75061ea375b3b16b7a47e988797eab03b3ff5990d262887591431026a50be178bacadb6cb68aba43bd9a8226a0744614e7615e290f1fd0acbbcefc23976331cf5c87f14b1cabb6bac0a009cfb9ed559fb9dbfc35a52e1ef6dee616fb7d0f7d8e6bbe0bacfbe82d77c05615d9daaaa7934ae3419f1e43177c2727f053fb75f412e61810fb2800a6b629785137bce9fc8d082e90676e40003e31981755220801e83fc2246fc272f28038273e5021609403bc8751861dab18f23d463c932588d8052e2d02c8a69f5e4bdff91a0943fe26466a214aae2a1501afc8cd80df15dc8406a69996a3c49d6dd1f96ad5af55af6100ac6b0170241a1a9acfffcd930e1e480541c0b3106991d58debcbefde71e9aaf4c24a2edeb343780b2cafdecb8eaab22ea9e26854a170373459271fd22d54a8ab235ab637440df0f2e84f32903fdca92094433dc6028a4f5ac0810f5d9bfa2585f647c38b36b5405f95555c1445185e415d7c7793fb2a7f64d918710f12214beb0f415b0bc129809cea89af55c910843c07a9a4bb35ce0220431a582e5b4d08eac22e6c35c804f624b0aeae398aa5e915c28f70bef29133426def238940a6eee5aff342bb012937eaa67655edd49aa7daaae6418de0368a568f2178227fdf3a2d0963610f1b51588e831b07e161398550ee2047af8318a571d368be475af0ceaec2926af47f2b72ded0b16da5ef2d0a1e6d9ec8233eb4832b5fbce195075a480eebabe537ff2492746d69c1e2e77b9519fdf8bc42205d5863aff817812d8e74c00102d57119fa9c562c58c9b5ad34bd165b5464cdd9bceddf4cc7e875e16d8924b328a563ff05be023f7b2b9a80366bf085dc8aa9d36e32b2a6ea99c2465f67bd8f35f62a35575c005a451c7437916f8ce0c1f12f2210d70f8445640b3f31de3f91f9243da14adfe855a95c82810202edca99b32b793be070ebd84453b0fcfee782015f6c55dcfe2fe5fa69bb1708f8888ae2b6bc9d8899abe633b2d22ff5466b854cb384f55c3b6f3979e9e7ef4506c6b83c28e376bbd45ad2c64b94714aee568c2a3d2ae7e652b2882f41339ca530c94567ef54975c0fb8db6c63093dd729a4e5033a9eed61cf39f723cd8747732f9c9024fe908ad4dd4dd998d8dd845b1d174d838880ee38ad4f0ffde224b572899fe354f949251e3ba8205a63693697c0504338d8665dac1e7020fe46b0b8182dd30b5258d6e4647fd44136861ee68cc5286b820caa715bd5226f3870e012594dcfa67087338013cb92a0e89ed7a18181c697cbfd15e518c6ac9325d170f6229301d33a3b5d1e84f3ca5376402ba992b3c41520a3b61adf8482108aa6a4a95cbb06b2a3664d5dc8dace6d3ffce0226ab058df5a732b9a880db58cd09943b8860f59386643d9106e1dd936ffd6e8544a14cf6d4becf24607e97e9ce04f2f2b308f7f799561e389e9e4925214b27e01ee067cce9fabf342f7d172420540dae698a8cd052cbd3802cce07e9c1c43a68a911209eef8392473116ec650b648ccbf9da7ec27ddf41a61f68ec36a1e556c4c3ea329a58e8bf32fc77bb5bc27e94b7ca2d343c3579a3f0bc5787cc8aeb3b2b1d29bc299a889d11e8c2058d02432320c3fe9e8c4452f6bbf2613b523dc111597395f84a72fb3e978c6ad72167309d018403c78c9e607eee10ce33962edd2149b8a7ac2170cf70e2164edc53434a27f45dc4361e6b55360ba0cbbd76fbf1cd4e0509709712cb07c326fc6472e988ac47b361052e757085e4dbd7660ea9c8dad779457e01f62645c11be70f5d1a0e9731a9dee65d6dd4b9f0264bb5904120bbf159719a96481c1f5321538e141df977309ba009c9f0a051f5c8e7ecec48c0cacf5717a5c1f2af4db6c9af15e2200f02a9194acd605dd7937357c102eec082eb0e38b5db8d4f4a069f9c2c58a8e676b08f951bfd9cc6c879a9f9a578bfd272221e6d10f1e199bec3e099186704a210c81b4d36c1010ba228b5683c306ae501bbf2038a9edfebc1bf1cbd28e6deb25963248dc43eb9687c7024bb8835ffb5dc22a29307a2eb09c3cedae2afb2ca8b5e2e179400d1fff0a02787c748427940491bb5f496bb0fc5d2a08c06f30212aa456b5ee641387a00a20090d13a24c5d675e7a48f9f8cf4ce23acc1c21d44ad61c63482ea53ca303b9a0ab2109784d81c19b104781e1b8e66bf3cf9d23563d71d33d1c115162ab80ce4aeb116c6062ff8b02e4b7cacbe96883c561a3f7e068e7dbb414df3e26b68e1a9931064c52e0d2e6ae18af72003b6078c29f2907a31a7542c0c62ec9c72f72e86a324c9678cc1058da05e1265afd1492625bc5e2d719027f4c6b4510a3003e8c0e5126d94e814eac41614eb0371cf2d826ad3ea46120de34d735b1677e5834256604bd93d2e88ff8c25253081cceb1d1d089802a3669e4727fc8901d2d153def1ddf1dde8d44382a696a4dbabb87f0f045a3efbe93cb5a0e31b5bf2c30b716b2ed74fa1f7dc91b9a0f340151f02784f4244c665cd399bb12ec8b6d399f57ed140d259e124a575b85c283c4add583a6172924b82a256e1b50b85600c6dd77051d12668126d06c2592efe40084c4451cab5628b33648c8307f6f3c2739ad15319dfd8c0426f06c2a65b059569355d219773ceaeb501de32fdeea8186afa31b1eb1a908b2bbf3b3f76c0d08cc3a90d109c6da4c8ad04da95691d238514967927f140449bb6310b23b0c81bca2dd484df931e8e718622970ca3bcb6df15af1e5b0c2e61edf4efb6659a7a0f48b5a6a75cd7c357e2544be7a0a6040c51a9974ba5d68183d11dcb9599fa7af80c4871d9f51206a74f4457606d1b30b9a45fa872f2091e7b79bb45eaa7efb331e33e10e7f971282ad8b7a51f4551bdb4ca255f6230c00cdd4261a53554167bba671ef0507e5d76740b21ee8814bea43e4b529a6ec95771450f6ea9d943f471e4e640bd38dccaad0895d7149330d171789e63cdd9d202c49cb7d4a3cb984d87effdc927c723a4e35392dbbc13be52d04a9accda3b440fb188c8afd883565f4eb793cb1bd12f48a5671b5f02987817c83e626c61c8631c062168297b129220492fb129a84fc00345b2fa237436231e0e4db036a08bb82857d20ade9325af625c4c92c262ba61a7a7219e86a31c272b7e299922f348d3a9123ca6169fbbbbc2c6140591abf780c69ff99192c4cb10c658ca141b58f8fa0929707f6a0cb2b085fae0b1002743c20b58c83d6a6ca0fbe079bc882b4f6bfc9b4f5754dc279b2e6bf98e0196c627104f72c133029b1894bbb573e4fe97e0861780f0c44bce1bb2df231a15e1e19c14207f7621d177b5a870f0aa5c1886bd634992823c480741b8d8a3a474547747e139063ede118bb0f9379b6b211188882c0ceef86cf38ef78476bad0a3462aec085694aef774838748cc45a85fa3e249497fe21719bd9e7578e2bcd67b11cb4cc0fd17f860edbd3505df2b77aee0132f084ed431755bb0a84289a090c57bf7b44bc12a1706ef59dce23d0fdfef1383ae3798185525cc2f5cb656bf11e8d8a99fb3288b229c5f8aad4fe10a926201e3339253df4a58853d7c8602fa17db4916e343026470717b59449f24e6355611705c206a3f730c25d4f8c2db71702ae5474dad29f0d7404e9b2c0c6f18fe2f931edf51476380c96f15d846f59480e2018c89f18f20188350c4cb7dd1fb3b6687c550f0bc7f298986e4723f5fb9ce690b611412a2cd386c143dc4ce9a89358f395da530817c427c027ab5de6c32b57d54ffc49120ebb7fdece83637a350c36699c8b337d9bd422b7ded4a28e758580d8faab53b1f905e706559a909fe8ca1ee21ab3571d5506ea23be7c5da7856bb06f94677e5b5eafbd3a37e63014d2825b238a17347a5f2c0b8e088c96b8fba519142c3403f9b1323b40fac717fccf67f3bab1ef9f0c6a8409e006a5868fd8a01b8e497244d0e798d190a8a4a7ff5bebc4ab41577b3a88b249844a1d5a86d408bbef328b5de64713d58345cb1c18b4cae4822bc5321f657e6f5e078688c44c1eb7bb66c1a6002afea4ac0cb5d56f50a40437e66520078f1f180c8f3cb355ce5dec051e97741615f675aa1606abf2bf3fa9333c3ee9b407e8e1013cd7e7de171236db93751a5c8e18bb305ce7a81acb81d2c0b461a04ad0aa6d9a794fcc198a4f41a93618a7b456acedee77ea502f07c9c6fade7e07034c34727dfef973762cfbaa5483e79a06dd233bed30c82a68ea79ce4d70f27a5240bab414a08b168a75637447f407defc76a411600b59ee700ae6e5ac2a8e292479ac87831e9d83d3babba211d614a9de43bfb8402c4130764046f566f3f86a005b8cfec1d5e44bedb6a3713d1c0d801d9790e00cfe7c4b6dc9e0beb73dec57ed9281956042fbf41cde4e3d51ac58fb1ac3bc7500d1772ab1377141f77c88909e7c659d2605386f78ca586058381da415dba7c6d6dcfc50688c569cfac980b15ecafd7946a73318d58c5427b1b27c67e872ef7d8f5ee0303895b4276518a824540c439a26bfa5dd4c323079e567b0436665f37db25b22873ee48494cfd4628ce8e776bd695cd294ed837ba7af5e4f39f0bf5fa66406e0c7ecd2109674c796b346ab09a0bfbd23edd0c21ce345fc9aca17468f091bacaa544cfa7e919783021024d060ef7f357146b2440db9fe8c8e8babaea99fe62a67d77a27c5aaa992847629d52feacde37eee45fd0b9bdf9108a7c4380d1e5ff407f092f39dd7403b2da4fb97cbab6219238147e5268a000464ce893066b22c5b4dd881f56191ae68170d98ecd6ed9a1b3a97d42e1b2881a2f99899b326a3c97e66e3113460818c1d0b773b026b7191419322fbb34725840fc126acf42477b090c35b3d163d185193ed3f9693113ba7d0be24b0a8a7be5a01c99d2bb1a7da2f5f51674be619124cce978055165a28d57da140fff7df036883b697d24ca8f0cef489fe8b9db6470f591a90ee10b8937502daafa77c9419ea24161567633bbe5475b0e2453f6502a7f5c9ee5da28de8f9b7a522ab496d5a4d1f4393678936a79eee19b93b3fc7bc8fadc5d017057412061536c95223ba3ea396b962fe6aa4bef07f31478243b537404b0c51a0d18ee2638e046434ace84f320465a955441fddc3b06e96cc96bd741e55f6462e42963354f0f0aa60059d5c4889018bb9bb6696093ce728850a3f1b7085cf8f37ac7943e4ed6730067e4d9dbcc3c4acd91a2b70d0c445f51ab3e69950495c85041d26a1d9b325d2d15b3c0375b24c3c77acc8ae528b2080df4f7e8393a18144a12058ea4a8b2754512afbc0e78a8553d6a7eef90ff3d01a6bffc29481053ecf60780bd0984758708705833d3761b7dda984bee9da36fee086efa7063d77598b5ed76d2bebfaa932eea8ad9275a1c3d277f4c80fee2e374b16d71af4a4f10da52aed47bba476c10daf55b82e8520cf120b49f6106eef5d121f09d1eb5aee9b395e183026a331e3f7d9acd371240019b1ddf0ce333ac66517b11a65e1bad89fff42cb495fcfafd3009270c59906b11f13225e3b6fd85185025e45dd9057608477768884001ad1252b6a34555ac150bb77025d2149a473f89e7d910ea3e2016f50c19e98b002008ae1b3be6907242c7b4d5676c8e02104a41adaced1b5302abc9d23414383c0a6a1a51d52f54ec70cc9a3f6f9d95adaf1419e73af7f78788ac5b16c96a0a766d134eee2314d7cc0f1b2d3fa5c0ba39bbb03e4eea3415f896e5e75b7aaae26c109d94c6736f3685741b7c0d670cbf6cf20deefffa574c77dc01119abb77a05566814eb9275484d0f1814eab7198089afd9358d1bf805047b11b81aee7b5d1fba593c1b5e1cf01d82e4ea45a0a415a51a5235dbb4bf6c668aa64ab04e2320708a483b49d5047d719a1ff7a5018f1ed3d6f294f8ae4ff72b9b1bad8509a83a4deee723bc2a635cb884c6d431280d743bdebb187e530245ab4e0163a56bfc9a4a8b81c72f11f0db27cdaade1800e5582f91c9760d27b0c200632c3c59217027201bf8a541119076266bf7c2d0774171da0450ca842027a2e2e9bc952f411f270354e0789966780c4d3ab64647645a40ee38e8b12b20ea4bf4d2b531b4a6f58d5cb41122a238ab224c13b1892e6d7399bff262757b66ee08a923a805c94e83a0ee019ce0410c2dc9918e4f22b9d4d926472fe96fc5fa4705b96b544e683abe2523affd153a2f9dbe2603615228fa5a4cc8a6602041de07ec4ec414aad0c0a353b8fe844509b4e459813c43321c21b7794f84d7252418ed4c434cc1e915bb57822bbdddebb33873e8f03614c39b196396744b79d7de72c213c7e858f5025ab8c9d72026558e6644fc91d84073b091e38582799e3a885e3fb9b91a8d864c15110cb89312f656318f4b893eb62742a6823f6073d6062f108a74d16cb9fc198f69cdbdc31cfb6dbc0f1439593c2c2a09049955f1bab42ad364025a9a3360187fcdedee9b2eac33546b14097bf2b23a90383b3a246b10cfdc9142fd2b7d6fea6d4615e2e15e88caa5386df2de8e83aa34c43d30e7c56aa054a837855c414fb31350217964862782271cbf45291c78525b5c78fb29c67f809e2f180ef33e95e37a840bbd3040385aae69551e0968e7b3b11040b6082033f61f8b5d40d311948a8f2499e7fc0ebaa96a8a16ad9a58704f83c06d3e68d100785d6a2f89dc13862e49358c7ffc4887dc7caca91ef5151e33038118dcae46415343d9547d50a2c7cd94c1d6c2a017cbb0a226a2f76a0171b035271357b6053319412eae22b55aa3451a7c6264128cbde63c6561456ebea8ed8024b6a230a6b48f083f959b71f0a4682cae5903962041972865f774e6b8a60290e5c31b1f8645b809920a0f0008eaaa0e9494b87d4cda24af153ac4db878b5013b768238ba966b74a67a6fae725218196db241366352623027de3cc4c959aa238fe0ee5b6bc8f6314aaf1d1a2627dd19549f334627191efc6d33a363527bdc3de2dac32028069495e0c37879a1e8716a6ca3be43c7c51f95fa57585d0a7b5f7052345eb93634179089b323ce4998af3454a441286f9a8ccce8246bdc9cb613db053d4fa59705f56028b6bf2e060066b2e11828a539f199e09592a0afe4b6277fbcba111842b0b1fdf89bffc768ab566f33576828d56cb365e6fa6190ac3b3ce0f141b6b3ce9f132adaa7bd9f8ac740f95a1f126ee8f422d9e4c40052704735f97a881f2daa45514c288ef268b65158cff8d2e5e924ec28d92566703418949a4a2f28e5351181535541aba054d6a8cdc4b7b9506c92f83095f63d0cd64228e99998b5f48ff74b1bc34cf4ddd85af4097fe8c305e92d1c921a4e91be81b2f835f4cc765b053f608f7a196334259f0522cf4bc33aad50c18e1e93339cbe204088eee5e19d910252b254214d5e998a9af366af2be1adde2ba03b3f0dd3ffa832fc218fd799d6da64113abee11f65b2888c8b2c55b2f4c670990435ea5f2979fe20c2c8d221166665f12869426549e0b14c955de8e8d1d176b5910ca708b79d33591204635c1ffeffd1dc2ccd62ab73a870188c4b6d0102ec0de34cc4bcfd462fdbbb2f12ac6546a2faadef40572996d36c3ba0a096799e3dc6a5bfd7028db611a066a285020d4cf153a1e8af8c5a657401e9f2304d0191afcd20791aa71c02ad8bb2faea7fdae96d801949c0807411c7b12a213f50aed12419ad8b2ef21d22a702d6a2211247a663eced4ce8031cc4e77cd0c1c3259a9047421b6a83f44aa54f5d094d173d549dfcb0b1a853cfddf801feffd65542b974c9e9b2e03dbabc485aa9435b05aab9ec4033aa0f06357e3a6628965474998de08e119a3ebc0500c262a920f7285c701757b31c32c8ed71d1d9c8e1e5f6c4ead7906b02e5e2c01ddb8046d458695870dc2049b237eae15ae8dfb8848fdc3260af850670c34c6f030e31fc72db5aa4a5fdc69cb2b595364ad052d554e95e86a7e09f9cc7fb21705e4fb6d3b5d0fe357ebbb0ab9b9913da9a6e4535b8e098ff014f94f7e5ff29a696d0c7c8731418d5937a0533a03af64cf9c4359e539b0a7cc5f53c8c987e210a2fd6ff568b067e07774f8d13e36b6d7999c693349d2d593543e02001901d25b877858719053e3444e501fb4160a8aba63808561856404c93380e11c8d98c29c9b8082deffe56f6a765d27c6ec6dc8f71458fff5676d5e5a6af5f31b1a62dd816011bcc585cc617c72c8685c5b8568324171fbe494a1a163fbc44df6c8653dcff6e4a83f6bb44f98e50af8f3a8cfd74bb9760a2037a1620da4c6532bd1925be9eb5d477ee6a76cd6216d9b75eadc15cf25a4b14931e7d8806a8d3701b207483b31e899519023a16397203d5449bd968c7f7a1cc5a17ba55469f29052e109abba1f4a1f1add7f405f421e7c02d0556498c8adf5904a6b7a472a5f6c7f6152817de58366c968b201ea4a0b0e6b620d6c3e583b959bb2036e6e0e3031461b706784e092456f670a0d4f4a0bd651c1c888aa385cb829ba94605cddbb82926f49b88e96b03923b484272df14c0481cf0a43af0a25dadb76285bad4b08803acca9340e946f4f7ccf8f3fa104b21542cb3aeb02b1600c0ccf421a1335c2e0c2b461820b72ed18a3428c8dcfd13a3b802e11c7df1193765f281e0c455b5321f6e6b8304ec957089f7e9d82b95b1d145a2eec8762a06b2a93e50cc0f79fa252710d1cdcc840f9adb2b33812674524e7fad21746c82add8658b8ad8cd994abec9e9d40ea8b60fba588b8930fad36f4519faa49a9761ec84ca44e112092dc1481fc1b90235f9008532069507bbb4b84034dac16386243389b99c53c261584af314d7998dd81aa448242621e81ab2487afd859509b7002e1e9d532b4dd8a3a1ddbed82b8c88238de79b172d47f6c0f388ddece9226a1396f7cea0f97a3dc6aebb331289908c3eafe644805fd678c34d97af04fac2b396c52c1d9b7cc0aa06cacf49a2adfac40aed68b549631af3b166990054168442e8e53668ab5a63d2544c4d4a98fe4b03b4a1b15ff22b7a810f00d66576437de3f700c666312c358b0beae16998aa12407bb0decc7414a97caa7c29c2bbef734531c2e9e73fcc48f9ca77a78a7d7385613660ccdad3a19af9b92f1c50c34b6e95c21e7912857acf60f36ef687dd4af80b66da2430e013431c740903e6de06c833f4e2fc6ac91ef5850b0a3292c2e8ef2f9b682ce04ab3ffdc087f2798dd6c6c4258a8399324964a5b9680c44740539468a0f23d5fa6590e5b0ca806e54b89ca086e4f89d4f25e06375d39e71488d2a98c5df71b47650d8d2df4c7e303cd8f185a94c09156b3d7ec4a6bc04c94e4d150cdf444e68112c0f754b91430781760c9343d8d72201807b681881b14cfb7738cc8ef32bbbf9ea6c66bfc9fedf708b1ccdde719d8e99dfe2421d91aa62180274ed644629856801e5077069fe670e2fb73704e5ccd572cf6bc738fb4172a5d8dd4d4c91826fb0f9bd48003ad7d0e474715600ca1598558fb1975a067bb6ca0a67b6b40a498d5b1784994d0d3c1ed61a5df14faa35005949590fb2e317b29d2169e33f7f82ad9480bde4b0b995a21c81ff61ea1a7c947ecdd70e1918bc8bb18be70b8bd26ee77c42ee33373679b333e74509fd61636c9da42e200008cd61612cf1c024913438e7dee3d72d312e5232294ef55a99bf8c1c2d656ba45615d0283200121265c2ab3a41b0e08bb6701e37842e11be3928d21ca8d537d088b576d6201e173dc71169b282fc1155e2482c94de9c0f5ed1cd688073d6934200330eb5be698dfe4e4a517821eff34984042f3da6f3df35fb271d2b48835f4052926a9e8d0ec47972c52ff1e84e7ef6e590af6d79ce36d59652ebcf1b4666c55bd49c5525d9b2d1e76896bfbf8ec04c7c653344905aaf14997b34cd8a4aabe2eb4b8ab4f599571a970d91d1fd4380029496e10c94a0656b95ff17b42679f00c0c85e74d46c4973bef9afa445e15b7311c1f94f20583f4a4e7da978d829b8f95c93b65a860761d5c31a1ed67074852380a474026edc0f2615dd70109d1530daa4e904844058807223ab05f43301f50532f432599277f7666308e270f22c29d3f5cb46200d63f35e710bfcc3bfcd2e57f41449318db39d10e8ac393daa74c2b5810712ad99dec1796986985d8e25427a7161a043225a8c59a4a78050ac82195f54a60d63d94b16cc6ef496f08b9c67738d1ee6f3249bfd75130bee76445882ff460401fbe62b9311e3090454958c8877674422ee8d9b2f4b5ff79e28e12adb47cb92ad010992b365ebe45a0f5f8c2c599291cb9b15eda92a693723ed9f5b460697884ff1c3c175371ba7453f813ab352e4499d9e333fda6222bee0c9527c28107f1f18465eab05f59e6c40e1c13889ed4fb1c0105760dae492c87444a7a7ec31e62d79d0a908e9af61087f50d2f6b3c93d5ba97b3679d4d9cc1be96e60d5ed6852da1d5b2a70a56b64ff9b9ff6bb5f5e44c1d2c956bcbf508ff30dd93d42a064b75db2c7745f091e845cf4fddf49e66c1bb474e3aea862a30815c1ff9bd319e3003213ee1115e90e84ac7b2a66ff7cdb5356235408483a957c0964ebd189b8d90088c49441b7797c151cb955b3b2663b6f249e9ff35bfe9518ae6e7d88bfb120c78d2dca2fdb07611e6618491046cfa2b1116a260d51a90c49fee580ee76837ba5e5867657fbbd124a4102a6503b937e90e582d182f9e5b4620f22113e7e7ca5c6cb593b828035c154581fd30c24a6a2d578824e300cb5e51a6364f196b15d52e10d16ca2a3ecafc3124424ba6258a32cb90884319cb588a0955c87e75afb1c19ecb1efe6cd1982949ddd5f8e3a1b6a93e38038e8c23e881384b5ed638893ce71f458bc7ac6807ee2e3ef6eec99fefe78613f59b18106e73c9a3e6fef3fceec93d57bce874077b4126ffd353fdae70175e8d591a1ed7fe133e1aabfff88d6d4b525b18d632ab673c29234297e396f375b6c859891f6dbfcf9eb897c38865b0746b9213c5be8794c7d1de38acc1775a946036235b1bd9051a0b736c68039b191651bed7ff8ae36a02df5cef1ca0736729abf41f477a2a12943c0085cd9ffe806be833772448871c83208bd90e41c4e48e9d20d8106b853e6b89c6a68d4c00598261e2679236c24312000a83ae19987fc2f0dce32cfb557be719939cddee998fbab3c7395f50229d16ccf1b1d19c1e6e75d9ee2ae1a7ca446117eeb2d003aa0c18b7b9969f878a58ba20c307ab707c339ddede708a144fab3771993197a04d2d0bcc31d39792000f0bcd9ea6fe842d54821159b6c89e732774da86ef1bb8f69b249290594fd74a716285f1d75cc4a7543857007156dfb230dafefa116229e43464403d52e40eaa70ad123628ac11dcdebc8163e224616012d3badbc4771421a625d3ac48c3e9de9fd5f5c8dd498068035df00e8bab6e5c1f4ef76fc143667d90ccbf10149edfa12050fe773b39d55f4078a8e78809c9e7e929299c26a6932c8880079d11b28157cc9c055d97f4edec2063637bf30970a819fa9a0c54af684ab02873e6a036f60f493624bc066fab1c1231bce9433f2d5c5e0c4e40cad43f9dc233ae771a007f82620e3d6fa29d214e0626ff036020d6c342eb71599bcaa5924447c0009be622912ca42fff4c99cbb2ab323cf3f1ac94808dda59cfae2ae8975bf51595c7c6f09df318509325fad8ee5e23571ca980466c25ccf6848d5cf82106e3e8e06552133d4207e2ccd3cb075a1654f6d688cd10817876f23af7dc0c1fa0112b7e880dc87f756c601328a0740888fcdccc8346050a97e0bf1ca2fac53ddbc47d70f22da8ba51a7bca81c4fc8d0987393ed509f159c58eeea3f959cda567b7235911cadb5a04fe3d1c87b3f09853a09af18abeb27684e8de8b6f54270de7eee6694f77d9200d8bc0d1ccee2267df0c95004246d181899ea41e11d81c114fffd42e63e551f42ce3b51cb04f7cc3e944cb114e301bcc3a3e8c6d0266b0894886999f28983fd8f46eb28f53b8164f16484c1c38f058f62efceb9cac3816a20531e5c3747b4fdc237afe4227508ee6d321e3d000d0a5ef300c6381bf9c49f3c41932ddd278ee8faca066a41aec5eb41d08b5614897ce588ff7bb0943aeb9c2efab3a0dd39ea633592f20746712fa6fec66cff04f68539a8914383fcfa98cdb60e68da1483452ac07f2274e3a60c091ef0b77845870d59a757be02318f87ef44cf29aaa353c8f679efc2f9abed11734077662a247b255e981f28877d381b22fe75d0600c46f84ff5f6473bbd65cd00af0974d7e84f5d882db627203158dad62bcad2542a2162be45a3c7576f4d6aae70e4212ec1bd74cb4e788afd8479d38b4d992f45255093c8ab835f553c24fda261ffb6b391212afe7512ff43eabc7f1dfa1e2c7d74fa65a3cbbd73771d76f0075f31e43465b5bd6b6141377906f1a7bb45ddba1500f2075cdcb3730da24435d90377a470af5e1dbe18f52c3efc278ac795fc1d309679a9d02987e860fc702346c04d9db8edd1f91e21949e58ebb9d7b6708574913d528e24b64e103f194fef762819df43dfeb05b4768b403b8bea6f55d1cdfb560cca1ac9b5907a0be8557551d25f0d94afcbbda6fee3e6c699fa4bfbf4a5d30cfa947e2b888be980b0f755b8941e6dfc77adba8d638902d6a29874f19829c427a123903c54cc80a850972c81b77d9053d49150274dd7ab4e29cbe45e153b71e52a27df7d58aa395cfb4ebc6603158994cf5284ca7dde8118c74769e90456f72cd09c2384025151d3d453ea994e89ee9e8c006e6adde8596b2c02c77fb1f4b385a7c449e0e2a3f5d26f9dd482e5af93098f4da6abd2ca812afd8eba5c2d5484e548e5abf7059955572506cf42cb59727c7fe8ee7d69b6588b3a8be94baf610cabe7676ecfcd5a4e8d8ba661209046a8ca5c30d853cc2f49b18357296234499f6f83548af22315827f6c87871bcaed0488ee4f488c272ac6e026aded4274f9b14815035c1ba34acbd4752899e44df6ffde7c2aba5172e7f988b523b6884d487b6288ccedce204ff2bde0624cd2a8633d011eb0bdcc97b7fca3d42179f1b50059aaecb4bba84bd64fd00d67875df2f70dd36d1a4c9e3b22bc1604dd3af8458d9370c1bb93fd769a3c053df37964927c14b82cd697e496ace4dc3514abf66cff1a54de6d2743da40a3bd60a751094e9aa73f962481087e67e3263b142a74da7994ea97ab0a6c7503dfaf40b18e530675bce87548ac6a33f1e73fce6f2811434b86c2ba556effc557fccecdcd3523099df91370afc5f65f5f75d39ee2dd655ae33fd44f39d9124a14e2403310c4dc4e7ff056357876926bfe23ef4b1c72d8f94dfa03e24f90f9fe9dfef93d96f32be0d5d46d0db3fdd24af161ed7ed0bff4740378352c8a2369cad13a2aab4c3e757cfe5a98c004cdf1f555fb7225a6680a50274fe579230b1da4183033b4450852852002f44cd1296c13c41b100116e4fc9baece3c2ff6515e0e10f542b96010d00601b272023e49a32e6e86334eaa9c37cdd83dafa657ca006c1ca5dbe800e8a28ef2c2563713189777f6aeefdd9c9822d9c18a20557389c5aef4682b9a0d1b2218956c4efaa01a9e99de12baa90116b1c4c21ff81522a78414818f568683117ec08e5c554baa0312e4d90555a993ad4057aba4ddbb682e531b1ace960c80a0d029d8777c1fae96f5a447b7b02e4e0452e45495880b3025a79a151f2a41db4ba23c68ad33005b139b34f6e3a8468da55cfdb684f5b4f8f3913f233dc1838f074a46166f957e07d903030f4c0be29160b154fe0ee63bc9f51c557c19ede44534e141eb9cc48d308ceaddfcb4ec4a424ff76563558081cc6dbaba0ef41649ac0c4fa3da529af49427e95fd37797b7676c53783b0ae3ed5028aea5387cd11d628a49960cfceeff1041df75a2e9adcedadb28d14e8f7d534d6a0811b3bab11571d1b4e557921aa3775bea4e8afe3a42177b0b13496090ec840596fd95c807bd3125971fd0bbf2a214f3d2a975ab5e6fdd74d6d47b405d25824969d578b523316ce2d96e86754fff58e9766cfa308d305f02beb097993dc316e1c5c291d0864eda8d154cf3e754462114b91947eee0a71b8ba37c5b61f2ba76f2ab906f53382cf0354d039c9d62516d6d4f7a0a759e52fa835238d8bb172e4dedbf86cf3f525fd48f5d9f46e7825383ee5d3915935aee004bc592819af8278961418f56453717585e55e121459b3601c79b5708b399727cdafb8f84a14ce68e8a333e92ab04451c8ba91cb2f1bb8d376ce6b98cf28e591d9bad1b6cb76976cce93e1c026dc2ca88981c36b4b455781d9498e3639538c2cab7d9131900d67f085d2e233acca98f36302983ddd57106e55ca1517b96efaa2760ba3467b72cf8f67d98284b98386cc1b7b5156db251a10abeec6ced28451b9bc0036560825fb1c62ac0835e0a8537531e476379c3ab3cf9588a015621d0f764efb9b70dd05c3a428e776d9c76d67a4e24f9a008e57baa4f58f48de93d20c252b2dcb67a8a269832fb4d3dac38e2ecb48e0a3488961dd223788d2515d244a6f34cf047d52f0376913d81d4f17629dc1ae584ed7c4b83edd30b4448acec19007e4c90c3ee3ad5cf0aa857fe2515126fa56933d5c041e4704b9c3708e5c2fde243b8c09c8e5f80f8149d732cb15dca26f92f3cc7605b184fc87f6dc8dde1d048a7f1270322bdb9b83e66912910328316e4764403c08082d7d1029f8c453c1c28e32ccbb23873d480affd3a4c819948696c650d052ee6f512c5390462287bffeb051a93008f070d19e94ca85673ccff49e9892502e7f43759d95c0d27f3914c5075dc2941b948634cc360f9f55c3bdacfca911e1d3fc1536d950662e84b047be40dbb86e583b94e0bd744f5223f4bee1685a4cc0bb7d7e19346280455762f8008dc97e7539e888f1d2a5082ef89a50b2e8605c5742ecce8568d1cc924474eaafdab088ee3b4618c3ed3f1abb483b884338f1057f2b0bc2d159335e120f4a3aed7eeb1a0f50b4344041af6bc9e7b39ebbd5cac038a464278f1bd952c61c9249393981160b44765c6c5fcc989cb5bc8244ed215e13453e749ced0ccf07169461df846e16a0f6b22584207419948638a5ae3b11c487b63c722521f8c2297b01bc2df1cf3de093e1a1c21e475d5926aac04a7c760d013ee0059ae822ab68917f41d065f71fa6fe6d74d29638cf10ec7261377d3d27a8bc8646f8c3ffdc6f672a5039f9837bac4835d863c02845d469733f6a60673e9c3620d025ba13f1da3dd1585a0609c3417042938ecb369e1ba740fe4adc3169469893f466e85973262837aade5131a82536b1980e2632ff60d5bc8dab0c0b251788dd6e4b421798736630ec7ba6d57f283b5dfc8e0e6524bb957707b294500d016d856e3e07f5209d12c1e17cdae2b60b090cca7de4fc8bcf24f5a0935346ebddaaa5776e1ed3346f33d1b1b1fbdfdff933a57447ff7cfe80a019ea4ff6066ab5cd9d72d9a819cf3e0c44a25b57af9f15b6f586f3cc5ac564582cacded54b84413514d84b3c52481e1146491a4aa33ea33093e66780b4407d77256847a18da292ea8814c3c228da4275635a08ea46e77c82ff6ab7a92c4a8aed0d30c4c5d24a9e76ee0237451dc475e2573e62a8667948c604455dd006a190cf0e80824f8addea22949ac4b80fd20a9117096ba00d2000ac11dbd0620edb1b01e32fdcf7250978d6b10c4ec2b9b02894b1fa5af32a31051eef60cc4622e55bf23776e7954ab348c0e23dece97e85435176eb412be6493481808c753830bc00daa7a85450826e64c9486214855ebfad31e15296be20e24cd158b248c5e1162c1d966d5a05c983c0966091dec58eda78f8eb4200fa08466f3c03a976bc0942ef7200a5876311d09c0a75ce9606400577f40f12b0bdd4eb9d9e5ff298fbcbae88c0615279ad23ff8a946528ec7e84718117171b45f9f6bb7828a37a6e7d0cbded900bbfa64cac801e89dc35ba2b3d49ca403fc0d2f4ef3181f0036af0132974e7c3e9231eceac06e254235edd39029422035404dd5e920992d79bcce1e647b7afb5f3263c8d149f405a18b73df8d4b6a3c36857691186cb4daee5d62d4e0f89e02fab4a6141d9f5b832007a6091db13a07aa47163e8c432940253c5387beb35555758b024a5564a67196168ddce98d002cbb45ebeb97e42e9ba24213d1ef88b5cf6802cd008229dea7190132167ba93530e9469f5fa78936d2a1784323f23ea55f44cb8810ede2e25552a63eec234c908df2589f400e2cbc7a898c9d28f69f5dcbde6c1b9672f37a07f7f3629755c76513e202bc6730b21e82e9ca5c878c3dcc37a25466f1901413318b822fb4f771c5295dcea4d8f27021329b8f2b69c54196a0c09458b3c1898cdb2c05d818009352cfdaefcd5c347661ed39817b5c1171e0a94a4d98e9421aaaac4313281bacb0dd3ac255338c007874df9720822306bcb70f923545bfb3b0ba03740de5e8e320401bd031ad7f00f4a77e0e65e885a83bab59d648eec8172eaffd0cf882cfe052fba07e6628ae65d8864e33ef6267d01e3d2f74b9e70be2f72a0b6a3456026af36bfff4b09d42fb83128438e85418ebf042d4cb20949498cac13f8396ab62365af6500d9298995b209b071b5d39cfe2b9d33da69f9376512aaa3cf595acee2db024aea1b7f8fc1646c73e51e101e7c73baf05124c1b1d5f59be330cf356007ded51cff05fe136c14e4b4a77d4e9cf41f429e186f96956ea2eeaffc50e7f64eb2a1af82acee7087c12fae1352a0c07eea374ea6313ce511f466d0cb8d9b0399e5fc540e4525078ee55d4ea426a9bd10227c21eaf2412a9aeeef111c9f433337d389c06b46cc96a79ed1e0d94de2a12d33a8f7eabadba7aed5925a80a7bdfb6fd4fe8aa6b7ecbf0e86ae6e60986bfe30dc81b2a165cb8a997105de541671de289825842e4c8675f942ca456db12b39714e27424f69cdceccd4f35ea9e930f0b4ace029615c4c10dcdf47438d888fd9f873313f060c884a358b24639cb9d6ca130bc3a0a9e54cac8ee97293891f32367be20871ce7b1a709021b28b743d383a2076c856f6da85a3f2b054a3ce21aa8455278c5ad9cb19d4c31eb3c0f4031becf07360efe822ed7a508a59669760cac83cfd48687e59c1fbb88cc4751d22a45ba072911bf6a4581fc2c2aa5b7ed1286c4c29ecb7991f9c2f0504f78fb075973d6144930b05e05a498028f18063e037127591295b6058d8119aadeab525bd2a38e32bcd2293904c51ae15852c88ce50b3b5143cecc877a33833475429db5b60d5e818ed56c442c568228286a9f5344946420a8546084d3e839b7a4435f8101c23d591e3025716a94a1066ffa4061be4520752a6e5a207c37530b3cf9f32b190dfe6885659e9a9e5d15b31dfd2651a232e6f0df5d35462410aaad062cbc816a864836245001eb8a9cfaf00241e50f48dfc1a7d3412a4a2c891e623c02f64480594a19fc8b12148d30e42132c8da3d949a54a03be234ed5e98b9d83ac50d7728a7e9c43d590c3a651742e5f63b8907218b26021bf88b62a2a2d3fec7d144122915cd0d943a0889d37c02c86795806447ef7ef8845fc541458b927a8cd3ae8d69d7a4b5247718285fe012961609d1c00f57aaa5168f21655e2ae2dc0fd86a4ba403f02505b95c0b259c8599596d93859f20b42a05aba30f812242e2e72d7905e0ff3444cb3532c11c474af8d76ad0ea02ca411340705114856d147ccbeec30bfdae1a47d9844e488af1861660eb1543d4b156391030e2d205588585bf50e988a04e0179e35607503cba7f94a015c5dc6b8899c510de524a1d5ef018d55bedc1a499dac7a932ada568f832e93fc0088ca77ca576b5f229424eb20089b1330c70bc7f647ec9b205912c98f93ed1561e258a5390e10e2415265974307bc86b5eb932da18eb80e9325b09bc93f8ee96b60af596681e743bdaf8d2bde7185f2ee099749a841c716ec60e4fd9932365e3bab8cfea3e502b82b1432bcccb23864244192712cd515523c10757f8c0bd5d1968c13018c436ae2dd1f9ed8912a396591e141761d0a7b41449a333bf1b36255f62c4b789e3fce27942d669a0d20d96bc3d25db74821b12f37ca01b6d2c4b93e097cd55ffd7b96f3e893cce47920fedb1a77a55f94b7e16b0971aa8f1add040e2fb0903b9df4246d08c05d3f46051db4cd069cbc07e896a0732923bd9c47938e2004bd30e299e4bc15887693549deda0687f24cc69f9eb189fc8fd48194e6f5a25c62d78acbe778ed6fb7221330d274b2a423ee3f1f90bbd67ffa580bb28e1f8e1f6233483f73440d4eced4387ad7aff5466f7c2f7de0d24bc12602a3f8373df5e2bef86cb085060f98723afc84cb37d6abadd49b71a12901e0153a3cf63d8cd5ca6b897e231058c105c40033965e9aaf450bc5180d7dce2eecca464afc5504db316cf2efc6bd4fc335361a6ebd99bf0234ed45a41a988a18e9007007b87b6ce350d8e527e4516da7767eeab6977fb88b47482596d6d6bb66e271ecbfc8d0644c2324ccdb25870d55aa275dc132d1cd5c0ca656f5031e4aca06096c6999b2c20b58f0db802a47859f6f7a477b3f8a431989d8f815eba1273846cc542c055f9eb5056c7ffe952064d7463e41f0816546a42e5fc84c2bd9f1767db4de19709a969d3e2a8fffb2942fcf08371481bc1558d823a18894d2d638fe06241922e0ac0488bb8709fca397fb896d7da416c14ef4c9967a02e5bbd17b297e8e2f029536f124e1a51e55d2acf9dca6bb0ccf3c2c595ed8278a5824561923db5e9889f79b2d27b48bd18ecc56890baf82698568821a3666444a36fa5edc764f33d445a8468528560a737622e86c695c58674fe2d2bd9a77e28d279f9c59fd745ac957dcafd4fc7486d23b9fd77af87c8565cb9cc021d4d185af10e5b860a1f9b5fe4c8cc1839607bc177100ae7a234354240c5ee1969b1f872233574b19d4967a4b866108178d040dde30240eab02e94f5016048a096a6b9d6b939bff4ea9546191c10e3ebaab2a04acc11ac60d5a0962f9cbfebdf80a9ebbd19e29f88d36cbdd453a1606d9a08cb2dc1d4f6d46b11db3fde956cbd0985e125eac5db0420184e66594e3d746c07ddd81a9a1b565ee7b6abab971414c379a1bda1370283cfef36537c064e142da03c406244c68058f0f0b1e2acfc546cf2f723047633fe9838468912053d093b9b5347aa42fe7ffb90fb74f3b74e4df864a1c95bab7fc082ab5cf14e570b285f9b9a17c90802fae6a53890fbc9aaa449ea39189dd91f20a1ca5ede2c51b5fbf5f72ccaece118ec54c7ada2c2146ace6eef458d937d6fa46624e3e9ec5d5e38590e13aaf9445ea6cb0f7fc5dc908161768d74c1edf364164fafc5d777ca6540a34b9b6e52a13bf3524feafa45117371542291b6dc21f989789f534c77e9505980b9121ae905214154e648ef8f8f0ea72a67f815fe341c94710db545a262e4ce6c83ad6126a47f28bbecee9768019ea02e14d53c5d0c0cd273cacce26597e5f7ea583dda32d29bf51a65482c955c803803f58f3230aa13b1f0a454ab816a245517dd56d5f1f7b6ab50e3fc79160400483f3796ff650ec16b6a216e1e65a4c0634981c74ec4c3604b4410393ae9b4c0490aa558fd8d323b52016c919ab84bd0d9dc75f183f0617efa5ee7568f91cd1e213a0779da57a6a87c1e624b24c0ca2f84b1bc0266b096b71c93a59c509bb2c42210ed04172e460906fca1a06b1ef20c982df220692a84bcb42e0bfa206775cd85269d6d00fb4c44be9e875391686427b45ee5098fe5edb42fbb225ee0d4d30133870e2df292f732f1ba4f9b913a6a4a922400a4810828250db6ca842fb95784f10f7775ef3be3c5ee282f869ddf5c52488544da0b3d25fb062c7117755a5590b1ecad175623d021479acf09357e311c9e6837a08dc620f9ba4ddf338cb0033fe8dd9daf92a492aef90689d59e2432e4622923f58789f000e2b80b3c0100047447b685c169d085fc37e4446fff5b47403df4262285e3f93ea73c9ce64f14159c91bd5cf8257845e45d76ce9a7569d67d266850ecaf3ceaef129c256000d9220d39055520e530cfe46df7be8fd79f19d11fe9bd17f5ef4225115ec4d1f085de5eb3ae793a78212d39be530e32f9d26eca31f54fd82429f9c4b1e0bc247ea46a050c78cfdbf380c5d76924d0aa7414cab5d78048cb47c6717161ffc20fb380d43abf54daf3c283a40fa0a7a9129066b0ce86b0a49abe2fc6b56b508dd323d2427003fdb09e22b1f423881d0c7d1c5b457053f683b2af2b35c8ef77a4c183b02cd4321bedbe076f2c0496611ea9c69e2ab73132f7f53131f20552f1698c39cf85fac524eea2d99f2e89f7426b4b0a4911d4a16b5970afdca2a1932ac80c281a7d7f728d469f7b5745fe9fe0dec75e9befb65a9f41279013b0ecd47dffac3810dec0262c8fe0280ff674a7285b8448440cf301c13090351a381a125f2340446baf8e8b8da3b95fc9217111cf425626e5d9418600f5e65c8095d428e673d72f8bd16f83522b7fae34b40370b6dc538f68fb0134ab1584463f8ce82244434ada5d99e97a87f2aa5b241f727578024e88460dd018a969cdf6662c35bd156baca1aac51f253189c146156a3203a259586102f4919dbb169e447ebcc6fe2299f29ca4bc430389a597fa22a298aff225637227c7e011ad6fc264d709e4dd20171ba00b6db0eaea9c3cb4e6a8bc349f6b48e273f8c13dc621765950d3be91b286571bd53f9d8e13b8c105ed846938e685805e74b71199b6f610a72a5f13bc2f7b78d34b265da32059e0232025b02bb9bdad5302c027cd03372b80fd7c9659eb3ba2ed506b45054d593aaae9ad923babb64a2de8018ae46d1116a7f61e21d263c4c9afc7c618235b9aeeb6af2f385c94f137dcaa48926cf174dd3987cb9ae2f34f88b157923071331146ddbb66dded9509b8f6adb523ef6516db9f9a03055b604c3b06ddbb6ed1de1ae7743074461ceb9c5d2a573ce9d56b9dab14cbbc334a77f3f4d9cbc7d6edffbf5bf3e0c9930f97ff3997fe6339f1b649a8bd3e20eda6659e6b2542adb6cd3b20cb56d5a96695bb6a5321e8d6753f178b3ccb2a2453b978c80a1e8d705614ece2e2affccd4af6d2a4dc583faf58ca25577f501869370825c25885304bd874d04404f36007af2c4016df0440ff4a409d0064fa22c502a35cae2d34d0bf07168fa897b9c76bd764da56ad5a6699b4a53a59ccaf1d8d6b4323765c010e150c4d516dde3b698da7c54dbc6e3e3a3da3695cfe6836d99cf926cdbb66d7b5da8c584171bf24822b92ce74083fa9ba92c95b6442db5e0c8b444553eeec8554b3697d25555555555214e40af6d7c68c260a0a1778e28c7180a165ee8e242006508307377027cbae7f3870a152ad4253e77df3431107e6f15a23bd5e0e5054b51e5660b44c55c6f2eeaeabca4160603cc33418728ceb8d1e24409375b9cc8a2cac88a5ed36edc1000cc93a28e26f49ba6f222064442e88a3cbcc45516745385162e7070e6f0efc4813842e7629d03737f97cfe7354b0834465de8836471675d0e325b82b8c1e2b674d13950629888f96922064587ad20f3638c10397a887115f9ceb93bd7c58878a787a27c7f476b253ffdd0acb5a771376930f1a5feb952a954ea52ebe5ab895beb0a853af2a3cc658437459d6582195b70b8881041092e425d82dcf305952cd1ebf5caa4944aa552a54b4ba9a51fd5d205559f774d08d911c01b9047536d9a0501bfda0af33b208f55d3a7aaaabff557556f2a1fef0a45186683e4948ad46111b147391f09fccecfa3fdfdbfadb7ffabbbfbffff72960dba9a4ab36deb5ebfaada16a83e5459d4d45cee8873fb9d34ad52b9a4fe87169aa06855cd1f3f7cc7eb7e1411bd396cd071065e414656bc27c40c89a473412a89a4938e046f494b7a4baa2199a4b818c543170559e0b58f1a003014736982a204ab8c01c417c543318a876290b753628dceb553e23552a198a6f84c13740157af8678fd60dbf6d9d8d4a5a9f84c676a5581f82a1136a06ddbb62db46b2105aa584d5232ae747e466b24be6824daf675780a50f3facb5da5026e33dab69de9ccb7fa1e11990850317aef657cf1897b72cbf8db4fdacbb66c643f368c69d8fffffffd67f77f2c5bfdd7178521040e98085461dbb6ea3bf9e4ecb46d7f8afba94edb13f2065c690e82c7f776af5958480b44224e325aa77468168844229138ca32ab8ad7deb4cccfb67ff56f5ba9104aa74c9b024479f5ef7777ffff0b39a169c2b0c09d988b8305ae30ed5aa763e95c9bd1144d96e9724f8edc73cf5a8661998669d82323d5f1bd7c9a65bedafa54bf041331643859d4fd7e9f5eaf5755dbb6421d8343256ddbf688873f4561969661d6b3ded3320ccb344ce3c1302d1b5ab7988e71dbb63d26935881be5eff2bfdccebef4c30bebfd79593e3ec4dcbfc6cfb57ffb6d55118aa00bf5edb76ae681d1130d0eb9c99999a9a999a999bcb2cf4244a2696c745fb36b007b46ddf5d9a260018207e41256a7c0466383843bb01ceba696513bf0518490e101fc171a99764dd63d233e67866665eeecae10285ddff3f4d19bb424ac3d303e9025315881f51e5827bbc0c5001d30b040b9840bac0dcef38ef954f9fdeeb2d22065455752ca4026eed4e2084a0e421385713875edff18fea3b56d910d171a724a26120bacd7dabe729f1478ae5cde8d5888ab9867bbc96dd14e73ec4173feec985630d0c9c613c34c0154f746f94a32133c05c95b36ddb0ae2de1f23f94963aa17657eb6fdab7fdbca44cd171f6b574e79a95668e9044577b48eba43603014ef4f50bc1aaded67df645a39c083d7c6e45593cd5e2608be36d7da6b632aad495bdacbb48af22b37e97a355a929aa0d854709da0904ed78ea266a9d455739b072ed54b7f258e4e257d4fafff9fffdef5f77546c70bb8cab64c73523446c989cf7190399db16ddb2415c4dceb9678655e997c22fe4f080969d1923fc40c32920cf24e2695a4622429029091007927578c983265cc982122f2908f44b5fe13bbde0b0e1a7d5ed9b599aeee0a83a227cda51c69d75a3d6157d4a655db3fc01516372727a3a1518d1eb8483a7d51e3002ebd6c72978665d4c1c04a4a0b8285947c50b31f949608ea74fa299d1c154b69aafaa7bf5af5a9aaaaa3c942a4880e157a9139202a7a2fdbb6f70733e4801044c5dc5529baf5a64b97d0868939322effcba3a936edefff6dbdfd5f4f861b7f34fbb667fc6ad03d69efa66bb9a4a1d9dfe5e440785dceb98b64d2b6eb2485143d78e92c4bb356b3fcf4efddbf5e76643838f66649c50d0364809a6f04b8cab6ef755a65c2b8ca60ec80833882916482dfc985d1f43e3aad50f1a728a83825fbfb7ffd030f38718f5b9573600cbc96745a9522746b38214a39b99db894030a0a0a0a02ca80c8490640cf091091834e88824c4464a214c2710058d1e2a03103068e0bb66dfbe2c348bc1aa8c3487c46de5355d5dffaabaa4b4684f1d5d6a7faab65017ad0340cb3dfc3348e4c3e6ee859b6d557fdfb8d61233116e823dbb42c4b3ff3fa3bd308e34773630c51f4ee8c6122b51e5198215d9ce47db8c74b0e5173ecd3e5dc1e09e6bff5120802e6ea9622bae8832303cc0502064c205d40205cc05caf6619d2844da9e6adcea359e990563a239d6b0788496cbcc4dc9229079f0df3d5d6a77aab0a31b66d1b0fd5bc98515323e40c5c5d42ce083903578fca06e90257417e3c5063f75ebe07808e043f82fcff9f289b0882c41f09380157f072a9a0372409980a584977d1801922673c51831c5e1c68bf0139e0c97a02a54fa1a2f78016604d163fb6b87fffff7ffbefff6dbdfd5f494b00915f43adfa4ca7333397a8fa2c793a97a4d3df56172996a1a163b7fddbb67fffb65bd022646cdbf60b3c7fcfcfb67fffb66ddb58bc88089a6ad3b4f433afbf333333333333cbbef7ace7fcef0a73121cf76cca70792c9e5bff6febedff7a058f1803907095460abfe325994ebff63212d25ed70a15bd357005427cf691554dd9a5563cd13b2592a043ae20b1bbbeefafa5fdfdbfadb7ffebddffdf55f169e5816ddbba7e579d2b6cdbf69577551fb9de6f5996f5ac5555d53834ddb334355badb4e2bb5d7ce69fcf3f3333ff67e67ff7ffff8e6e802a400bc57b816305202ce8d180b66ddb9ea2c647a029667c918da8946e5d858a68020404a31700001808060301a180509a28aa64b303140013475a2e6852343a1408c271603496442906a4180a010c0200308418c40c6210222d01f7b698902921e4c8705ab49fa79393905ee8fa30b7919616526044fd5f88b3866cb95233e761e6951e080401d148fb412f85dc9d1956b5d173c4e478fba9ca4cc1da3ede8688b68f447fd1b3252ace4b334f654c91f5d28704a763656caf338d01d8f60dff38179c669d9799593fb7a8283fefdebef724ebf32cd0ff84ecf6fd57eab0789567bd56d439fd6e2ec90681e7a217d1cae76153a60e0457d4ab3c9c69a8bdb8c564abdcc660563213e8ad45a6094d97de2e7ece466007b10ec108e4a4b9449fad3d9ea4628ab0fca3b39cbea821131d489f91fea03e160d22bb16da7fdd32e05751ea1510d476e377b20b68ad52713eb84492d5d90a4f2ea9864fa2307891f9e8ec27d1db7bdaec6463c3a3009b5785eb7d254a7027805bce813d5d2f606642eaa5c1b58d320476a7d8b5b5166e9a7ae5f93d5723d93ddcbb21e5c50f8d4330d6c7fc100ebba4feca4361f343d09d7ee18e28b5e365572e04510fc03a62a7c5d08b4e50735064881d7b94dffe71d880bd6d47e545f3a9fc3d845c5e6a794dbb507bf8540384d22484b865ce0fd16bcb6f10dcff53ac5e44f48ac71cad105cbda409ce3e6def4e365a7da42626d41831c57e90a5dcb22ee9bb205d852870934981519bc31638cb0df6c96b7df948556bdc13bfd6ba4a50dc3d43e8d422e99665a52fa6f3269093cd51642ef7d52fa55702f6970324e1551481ce232b81c00b7f623970574c2252de59d651efc1f5a1fab76a5482d4f6f2bd4228146b263c85b12fc08953c8ed9f32cbd1425500bf78b1649ee3986e936552b193b6dc9ef50ca913796f8a9bb4ad696ad2d6edd9f8943af08fa454da608a3eb17928749666e2682525fc238a86ba94fceabd4f205b9df78c65d3f636d130076067eca7439cfe6e01d06454f98f987adf5375671c2749b0c2f414911005e227f363c23a652e6e90665b16a473bb16ff8d5b473a4c5a0b4b6028258265f170b21cd528700731117e748ef6b4851c643cf07a5482d7d6ef1d632d37394cd5b6c153c338f9ca1eb0bd77c32d6bc51be72b5e752476683d82ae3f999ac311da3a3ad1f7f9fab96804a597f625de2c94426a0cdaf88bb34935cd64677e624ec69817a30d9e1368b5ea220966e65591d28c60f1f9aa42e885176bd35d77d9b84d7d627ee1311103888aabdb1e9250d64d55df059d0c5a956dab9e5d7a5fc43875516fc294d688e9bc091f9c407144db19ac6570d143263b9036a3ad3e751fe2fdca5118df43bbe0abee81d2fc2db945bd230bbcd5731b0f56b3aa90025bf477222b6655a9de87888eaa8a828db4e7c0b7a9c1ee21ea1d06c6b8bd261b1dac4b3317c15c2745e41f694d753cd3bbab48a48f1898e638848e5cae09f095ee22bafd041c5039cc1302659401f4f6140e065d858befc7d393eb011567a985fd666535cd8520d42b2c1fdb79abd9535f70bd9d7b8702e4edbd6e7fb9b3e9eb98be7d84aaaf74245dc20f0986da24d286700986397b52df8789627f2942fe4701531877b3a9575f4c599f0638274225a0144470d9cc19e65e97a798e2e579dfbd824bf10a9ad673852004a67633b5edc2959237a19895748903e78ec85f51e824eacce2b0c948f253e4e85c1dccfc8a3a31ced95d4c30a8c2a339e092256b6151e7e78abd286c5a5341b440755f310d6e2a2bccb1aedd69dac85aa9b7b3eb1c4d1c257c0cbd0501ee15a6f58c7cf86333255a6c001afad8c3063e73689208f24ff33fd83738f90ea304382228307e7aeb3902fb00374e8852ce565cd7cbe7b8973651a454110ebe2f9d7cb800eb835f75794ede248c70afc66e960292fbf6f29c12def29c4b4478a7e0d94502e9a3730e1815a796901c2bf49ddbf6fcd017e0fc0f72d17ad5220927bbe2d67a5c8a652b1c96157a8b24f52a20f0dba80f2dbe8c1d14f15a61bd5cbe578b4297a874987e08a7b0534d5890ef0527cd89363b1a7a619df8588bae30e628d7ce75747a4c9eb788b8896ce9fc23f132d49813f4918d14d91ec74360c9c1fae124d7205e69be4d1b1c2af2606a52c888abd4b79ec87ce4bb76656933972b844f4c5486788513833a54394a4cf481c9a98b181291c30999662e811b46445875613d9629d4819463305ff5c27a3c5c6c4d89faa95687e73a5e8cc586f085463172a9f26b2f029e2c7207bd42fbd9374121568807058ad2f83d210e71e0bdd288aba9f0b9857a9ba7c044ea944faa2eb2565e0ff184a3a6283a8704c48074b66de15438019e4efeab35a23d81fe89a8a30c9735749ac6e2c5ae570b2224708c7301eb838e088880be6b2bb976b6adb4801134c7d85710ff300dfaaaa73c5f35eaca78fec59e58d28eef0c9de509c336e48e1f3d3c765844c2b6d8f7b01012e6562b1e82c336e2eb4ec9c788ed79b89ab77f86caf8881e579bf8a80418a0127ea9afb64bce3db3cc6f0875a23077d3849f8bc0201e09617ce8b1fe16df6cc3fcb1fa72472c866ed18ef79b2396152654d6c2db2e8cbcd97a75ccfec5725b1b9e85386ccb5f7412b18cd27fc2e3f99e166261af78b6bbdbd3b6e4866a99e14920837b50b9f88a9af2380a6e584375693502333ce048fae198f4bfebffb9510254736515879d601cb2c128510776f51e302078c4f5b64c6ca255bd9d61553b0685420f1871b6da85105801319730bd0b6024916148d13a0bc35b04779e53be110bd84c17505907186ef1b73449732a1db505d1d5559b94aa623047260b3acada92d8f5348121e5982552177d9804530b3686eef0c0456af47babfc8929090b68b4f39fee89196ad6a65bbfdea4f8e0b6b24fa42cf13fecd31393a1f939a509a765785343273a9c20d3f269f862bc0516c8a028d875639463c6533c1073835a806c9b60404fe07c74f351c996a242ae9af2b61a290fc9a0065bd00f10016f4d3b982902382212aa18903f49b42933a4254e4f0b05729319464e6008834339b77f5217b51b68597f8e41c64ebdaa5c6a4004a27fbc00b968c150a96002fbcd955670c060c02db65a30bb112635fab39a9c7773b10a6781a19139639ab28bdc7ab8015e3dd78140660c313d90a5ab527047262a45614e024784b5694a71968878cdd98a12b70e30dec3a082fbf81a007543fafb5bb709b7b220f14d0da6034d5b33481f928e684d140f98ff07e338b3a0ba11dc8cd94b3017aa14ce2957420425b4cc206702231df7635e69d349c49554d45043c09df23430e3ac534874563206c6aa320ae403f278fa8560d5b81bfd3015cfa68a36fc3f29ac27524a785f4b5c68a701c4f5deef80c5304a5c6424473327e2358fa063722faaf077b3fd742921e13de28d36f8588f30d616f1c06b23308cddb7ded7a64089649b7d2d6126db198a21f9024ec8b949d7c59e799acccfbca88a98b10d0844e43a0408d1f56c404c287427bccda6ee8d12bd8988b4424f89be2d5c88a75082ef84d83078ba517af86ad437f7233fd5e52c1d2efde24ea7e92283554689d3271580313a9f1727001fa93d565e70e30b203d39623b77bb0dc562ae3657d6585031a82ade028b0849cb050431909cead21dc89ba34b320b2a849b0f3ae63b306fd4526d86698105dc7a64842f6f81fe7b6091d74da6675f781ffa8ccc512e77d38919265eba1f019fe870121b862aa6cf4440106792fd1a565716ef0524cf1ab21b84cce36e67b59a38e51f08e1a78cef82384fc7d3d6b4ef83c6e7d7e2f9c755a977c973ae8b859630134e6bd854e91a9de2e57a7fb2681d3d744ff21d48f1c97cf13108f19df478a66b1013fa55e7c74eb42d6081ad10d261304131b2b198addfe508fccf27c07f9749016e3b376983814be50ab8c247f09f4023df4d20465fdb32e813e0fac1c269e3354697be76046d8318c7e767d724a2038f0cd47b1e63953b81031719ffb0e18705947c18fda13b028dc7b132e68fa50d6291d5a029ffc1a08ba62fc509ccd054b7c526a0d64e5eaa1e0d85cf83b2f0c62f51f059bed52c52038e3d725b27bb9938eaf9d9e720877ff88c2805f66321a2a47233db0905a22bcbcc0a257033ba3e15163ae5f10a58459eaba6455d08d81c6f839eb2b8f08664b97b0b9720b032a69c2f9f166ee182a2a55e06d85c518ecb755c9724c8251733ee26192c994aca3174cb53327dee4d84e669e838d71ec0d972e65d563356fad7602a997bdb654b08d90cca5f0095c4660c45c402768506aeac00065bfc2d9de4bc42476d8956d1b06c59dd8fe6de162c45c6cc91a39d7b498e23ee149476f34eb23ac27b5f76211725a46c83c94a852f73198d42cf544944b99aed62a2dd2ecee379a060fd84f48f5fa87eb3286090326c7e8222c1f97757acbd78624dd08bca01f8a0e7869eb5f0fbdace4a98af10feacc4324f5dad9fbd47b74da8caac0c51375094541a0dc00a43e4d80974a094b94da3886e14970da44adb0a0e2a54ce6893367c6659681639ac478570f1d31e60183d2568724af39c8a28ff8ca24ad9a7ff17068dfc5fadcbc82ec54c7b587669588aa3a830ea141ab36320d8db9c1edd333640ac062a495b75add89afc7e7d66aa317d91011c57d15eac9759df9d0e185660ed4850aa9c6a62b9c6705882e96414ccb1a7ae577a00d1491164f8a0718c647906461c89043b7523196203ded7b7b3b9c5266fde38e35abdd038b0f9e7df78d4ff8255007eca0e8eda3f30d1d0e030c5861c0c14769383797035e2b62257774a20cf8e388b6efa289d18e9955ee827c920c65f3ef4b812961d31e6e81a3d4b021e227f6bf48b4fced20c7bb09b655ccf71ec9ae889e4484286d1ede0e9860d0d8cc5248bc683122176d31d399404c616e2aa286b439fec50faf0adec7a20ce85aa689f32bc65d6107547618aafd9affc81a30c53673144f419f67270ddd83ecc75c7110255a4809cee42e480188d49ec7321d0810e50aecb61f7372f6a7b2d164477d54e282c28133b2697aa32b6b979a31cc33512a521906801b03c4755d27dbb7b2e1720b21bb3b80954b88cc1e49782e00d214fb46ee3ac4e2f4fa00964771378e33e6020034d046994a39c8ec8f08a36025418591ed0cc2a614a352027e391c3f51527b648d88698fbc474c90be8a18a873332d05cc3bc347d2028abd511d08ae8ec416978d3b440afa59076ac102cf0479c35358dbe78656f08d07bceadab654698a627f89871bd0004c39a6214f303c60fd92d4a64882cd575560c0d09f2cd56cb2ed180ffce8a549476db8a296628a4381b7aa28cac8e3ee5b86b334d778dda8a9dac0c31789cb683975bd435bcb22503e3aa3f83443a536bb7bce30548a7d9bbc0a94a5b191c67f3367d8b8cf2dd0266d5e6a279bc7d241771f334e92d3f2ecadfed99743a07a57b685804c5eb61697384cd079c2c689288cd2d555ff2dd7bb2d2bb07efbd884aedc4141da4085cb9e43595f67ffd4059d8bc887a3eccbc6b36caeef0db8568b8c8b1fab83a3cc6db58a163b06617409c61f038b897de50434015a88e428c0f58ede4985898c26351e3a820ea5f5edde5b19a2c37b22dbb3d827788749b94072983cce490c26ac4012ff61097f0c1971f150c81297c1bd232eeb84121cb6a898317bb40821d3cd64e2974382ef1dcc4b489ad87b5395d046389b5fb13913ac8d557beb08ae75ca384c5802e941e07bb06626dd1558684b52722cdfb765e7379953ce86b6f7d6a48060a92db1088dfb6b75a764d2b12fef82d947876793219f5bc8964e144cc4f633b41d1968014e77ae1c5469fbe5151d958a7f63cb2bfa20a6b66d0c637c1847869102abb8d5e7aacab2cf89a8d6c5aac049e67d6db88bf66ffd2a2210514c4c25f0cc4b409e5d6c66f3b0d938ba1c77211c411a2802cdfa27e43bf601099299fd5e961cd5e336b52f778eae2cad6a029c673ccb066b581452ad8c44b61fe71e64745a09c890574540ba81322b5ff01c09e0386fcbbf6a16c1781896119d8cc815b2db9d0f9d681ac6f0c70b23f470882d9c9621035c444aa26d99471485a24491d681a31d7c9c07df5f695b845b4881baac14e29f923e25b47151d559479ffd8bbf7d26efd80e9ba4ccbb8fc8d9bf8187e81bb7a0612aaa0c1bd16fb5021ef56a7ef5809a48142d0e15ba82dac5077a3b8201d6eaec49ad117af7c41feb43271fa4226943b1a0da041b6583d9ff6cfd49ca56e76f6eb3d13459e7a2a89aaa0376d4a6b42d21fede87300e642bf72a3e464b6e9ceed6d05b868d03324f82f29cc98ad0ffc3f680c948a41251f00810e2e34e1f0830968a9343748805177d7673310ac738c8269ac89e5533a1a4a400a0aa2a7c054975182675ef1c68980141cf622a2ceebc1cf6fae7d10c93bb111c86e33e2017fbf732c926942929e3792d9b891fde96c6738b42520aaf66018224b846367710a92ffcf350d89204a6b44686da7b4ab33718ba8eda746c1e33f4877356056531cb3ab9e141bb95c540865c1c8ef95b165445e3fdde357e0f26556f0d020b4bc9f874f45e554cb1a5cc187bfd5c0c88d892327cc7d457451a13e8d7b6038381d0dcc8980975aeee58cbbef3d1ca759dfabd600127b4f818e1b06ae240eb9d3ab18344af691548de1ff88b141d1322693184270845727ed794a4c9543df3137810dc125b92c1f115758e0542de47213d061af244f79453d95c511b49351df8cadcac68611d73900d0c2d5a741bff565cd1a4d47d6575e7611a797a0501ca38733b7caa7fda3387636f95ec06b2459b515d165ab6f939fc18b441a09aa882e0b008eb996803b2843d8ae42d492fe28c28f268574295c16f2cf2474a893af435558f3f913ba42336f071aa05d7982ed14ad5a7b5aa53aa92105fde07dc21c7d7f09f541f7af6f64d5174234ea4359c9494fef1bceb5e4124d3de67c53e6604b8569de76eb53fe1762e9e98dad50089bb398959ccf355fe5d05fe612467d33e983b81ccf2be633d8991826270e92cb39e2902fbdbe8921e0104e22d2a66fb1c817e1df977014df2fafc7c20b9973f4bd70c97fae26a797c4fa0fa61a908187b00410b3e958ffaf82e8d1b7917dba7eb649e8264de521acfd6158271ea72ae1c0098fb52f8d3e625a2db1df61463fee8aa79730b6639ab8a292faa00f218c99a54935043096097876fdd80f734c5d423756fd009d1616d1a1cbaaef3b7d466dff4a243398d5d8b6351d010d2b6941705fb4c84aa6b43886a286c5d9b67f0bd7018f833b17ce25e33ba7a8f7a057f138ba8e4ba25c326a5968325a09ecc3ba019421927b8ec0037bf29e360d3a007d5811965744c9baeb55668a4d74e1327f73958202f9e9b5ad588da7b3a1ec27af48322758fb8668eda40dfd0cdd505485661209716b057a9c608faf8ec130f8322d18a95f68a52c81b8eeac1baac266545ac0506835902124aa1234e0609b025837ae58618e72884d2e1764b81d7afac2c66df566acd89dc032318c17aa009f5cedc5c18b0207b281e60d04eb1cf813773b49209465a6ba4862b35efeffb34599ca1018b3d985a485d9c3273d78a22efa1659fe0d9f04ac548c7c105cebe848eb21c365d961d8fad45dff052dec808fff6ec4b5aff68d704703a7343fbd96f809f86158a52c9c321254c2b200c6fd1ea1092311e57f207698bd99d2403bc20674cb180dd72414923771bdc088851f2a3690b89690ac6fb54cc0f20ac96b053f6d245b019440bae4d5e4acf5cc4d66be551f7a4360b2369c1753b8adf0a202e8802994920db9fc0196a75597d3b8b7eab67a531379c842177387712fa9397743104b27a94d1ada849efc373a84341beb462ab552ed1c02e089adb71c1b346b953f3ebad0d80ac1f296b63af5a8ef0b679f0e3299028c9498299c99ec05bd8b4342d1cb773f5a7a3b69d54f4e868b5985853d5fde5ef8bf99fade10e5475c62fb5e4c54569338ccf4f426ab9c018c43089d4e0060b711f4783d02127e8648bb32dd26869d765644374817c3275cc7ea77d3573458504bb41fe9b373fcd9bcaab9a044fa295a0a3149f512001576ddd2da37bf9a75aef9bd542df40b326f08c694bb2d584caf19278b75f1bc9f1b1d189df47eb6509000fcb7c823628961863318a701a23a0076e704a76b269497d298e6f728a89e2730632f0a0adf7d0d35a120a6919869c2f217c4172f8eb21535df65a3cf2539482e9fd1221f11308377a667438f6a870411223d77dbff70a8dc0b6daaaf978254da2e76705b7f8ba66d5ac49eb84106a77cec08f7243408237287dad6b6096d29c5111ab3c99b85815073a00818280e092dd0c45e0f6bdde091f4b304b03f29ac1fecc143915a91785c40b65690a025d703bf1c928caa1007eba518cf2794bb1dae63598edaa671a0972770e0368d5d2118191f37167de8029ed2a3cd09c84e5f304bd7b192329df8c97ec5b1a4316493fd5143f8123ba15eb9732f31263514f2357f537700810ef54ab1945feaa9dc228c36e47965d3dadfb513f1a747fc4368f80249d715acdaa437840528684f1ac6678479723ab0e942b613bef87e06d2652fa67b146cce5947c24763bc26c1af7e109d19cc7020eed8ccb50120d43882f1c2adf8266ca868dbc306a6af2fbb360a1fbb103b63493458c21d6616343e30cdde99dbe8207366e1e4bf103e85cbe17db56d2e2616ae93fbd7afd79a1d1b9a64d2e706685de97222411494475fdeaf6022466961c5315969feebd120ccd03c539a45f36ec2437435fda2788b15d189830abc038b632356f16cc00c1bcf7a67e6ddba388e976e8b68f61b59fbd29f350c0f43f104a72733362e1940860f194f35b90da6248250cc33b297d0a4350e926ed6767a01eb5b539a0fc396c1031ad22803891f5de422197415a3790702b45213b0143888e262fb0301ed07da57ad9f0593c947ee17c1e16d55e270991d193018430bc375083f151980084cd35d1770c27b89d02f8bc47b3f803b087d82236906309abfc3a929e83a78c6447e96f12376841b950dda2c05281e4800473fdf321f72abbaf25bf02d9017084f09e8720a8eb0b208c243162cf5c36b2e2826885c6727740768d7accca3551d4682bfb344bb0f97670fad8f30b1863b02fbd0d906589a417580b6552d2f580cd7e3a6ac4f19c7aea99ec98ea7cd30ac14ef3342ab3201b2c2f946757b679acedc1ad45544946868e8ff6655ec05747912fcb5df015bf97a3e18315fcc7ff5f69bb894d82cd58b67940a972f1f6ca8b00095b9a7cf53a9da6f44b0f3800170389f095737e90838443e808d086295f9092f75216b82989e51977e4b71950fb6f1606e203001d7bba00eff2559ca2be8515988fd2d598389d12f01f5bca5834739b3532ca1071b457154eaa9a185f44d0fd1da3f5e22fea6d918cdf9a79e31774756fb40c959a616c9c4bf5494b8b05ff17534ca3486c2bffad80c3c80bf6037260023704d46cc0e67df75e9009dc85be63b4c98f2d3c579a0e3d803becfd1a24e9cab08d0aa8b6afa82f4450657d6ee462dd0a6bbc6f49fa034928e94bceb8c51d6340dd1a2871dea5469c8caede0e4e35bb73b7b86530545c1d674240e319d8adb19cb59c6dd9281fe2b199abef221b5ef85091e42eb2c2bd9155e570fbbcc793c6ab3b44d768e5a0de46c8c5e8dcae278a9e0b01ebd6d4a0e73d81cfb75691058c975d19dcd820135f3c83bcac6660c7ec150998740d132a4b2f549f697f8a4bb40d3707d660f59be93003d3f8b63158d0011b53b86d3bfa645fb54ba0816c8d860b4fce27e84b66b4e034d0d8ed84d591e006d2a0068afc4e48001374488ae1b3afd49af39235e30b9408caf2393453400ed912796d5ade1658f33ae7e40622f70a19c932a81cbc4cff4c61811395c0629e2e25f68c211979500714378c8f82fe13ba1b3f2882675dcc876bb558bfed3e40c91be3adb01bd1224830995ef7200172e7006c6680369eaad12e4f8c6f221c0026e953c05eaaf70358e918434220e93ae5270d94869de84b56122246eaa0776be8519bd4fcb88134928f0b8af7fd0824c5ba0b2f5fc60c6a283f450c411e394b949514b9ade86ba8848c91e5e72567881785ac986d6acbf5a53d4a80e7d88f2f897654b9172fc2c54d15258a2dab8049e61299598da79ae85c085610012a718e84fdaf950ad75c9fdebbada7906e7a7be3b533250148085532bc2a9fe8ff46efca1b720aa9eaf9bceb23fb7b68fdf2c1217392311d918d4877f9f984ab41cc72f868746f485ffc0df2ba78455629d77d578d9e5970cb4e8f4a1d8302764c596d07e9e66013916c58fe8b66842209ca2e11c14fbe8281080854f6ec08c8caeaef8d15135321e53ceaea2e2270fcc858eb8b8dd013ca16bb127f7a0c1a1d8c34173e0c7f523695ffc5bceb10f714e4544525b7208462b0910403ac407a2fab8f90b954148cda19beaff289f567633625ee410ae992193775a8408ca27277ec9b7a8ce32216b99a33803274563315a84606e1f0c922d528410da8585170bf8aa5b0093f5759d6582b7fd6a908a6c7072cc71bda1a3449f89656242e4aee4578ffd1f909afbaf3f296c9487449d6562ef6a37f7a600ca1c77b7fa7b7e01e7fca6e1eaddf919aa11a63d9c2b18d70b235064d2444b821265aea3a4a73aa8b577401e40ea619a0000a11d52cf6d340e44b7c1fd8450f043a0435662fcce2497643f2e5ba84c4718e63b640a755722a267d74d141957059a4f562d595deecccdab27916e520493be9d9fe679dc744102711029caa8fcc7cc7f5e96209a8136e4a032bd1e72385fd7e754475059032c7e528b8fc68afe29f8ec7a00432af85cb1a69fe585b82f6adc7929e78a2af4273a981054c4b5e6820367f72f55730b5c4a3e6aa2a0a0df268166ace1ae09feb7df465c67540f50ba7c46e40ee5baa50c58d0e3cbf34e8899b589f230e0c8315c8b89b3288ec87fbbbdbe9024836079d21e0862842f6766bc5d75593ef24d689f5cb713f4a440f665dda82820f475b8cedd511066d5fbe96e674ce0669316acc79c9a7abe4ab6cf8835127dea70668e90b98cbe00b0a3df38b231304147d7872f6e1c48beab535aaff4afc6b9b13556cad15d0ff0679a08b20fe5a40a4d0b4b5c63960ef5db5800d5a0bd3c5733f1925bb8599346f58ed78e9d35ca54c049f13fc50986edd492f67603dc522eb32f05f65a2b54c1185f61b8dca0fd2cd690c786dd82093ffe1b978c448008957ce267ff8181bd46690167a72087eb3d05184143b5e81dc5b8fbd1f07942575c0c2d884ce2b7ecb8fa0cfd083a5ba4d8b7bdd70bd6c4025a12c0f3cbc40631a76ad725814277ae4888b423a6a871c1c44bdc5065e856408707dd096527ff509b5267cf13fac0a23e11c75386c0d26ebf105b9450f595d8fcf4ac59fac4514bd1dcdd29d98e27301d5b4b1aff8b00df03c29a915ea46393dd11063f6d194bbb59d4fbd8c2bc58d4d17cdbf66723562e0908867d48f438a6b85e2331afd7619b4f55fc51ff096ccd6d83be48c57fab1541bfa9fe3df46c1daab4bddd9ab28742233fec949a3b97a1d50a2326b5786916feae2b084bf2829d26ce8cc99aef6de6e96b2526e63c2e0de9d521d07b10c1b7d42fe2891e76fcbdb1b71d6d7c6ea4713e1757daaa2022d0a5d429df031cc56944eb67b1298b73b4249bf5fc0c37749fe401c99d731e1d0c1285e34603a83f17b3d514f8602e96a941189dfc534a2508fce664fdb2efa067edf7ee9cb24b442540c0e8bd5f4e67a6e7ace0da112022b829d98909ece144c61a9a5601c9897a79ccce6ddf0d3d16ebc710d1261fb1a62ce598283c3fc18a9b9367027ed3c29bcef5f1a25f70c02dedfa88f296d3ba404036885565495383958c78942e135313c2241ebc848bb33d34e2b15025f170d576e8f053c19556d28cb94e19cc6110eb58930a975238f1689d9a01718714db7567fc4d271e824aff237ac0afbcbf989c55c49eb86aae35aed3a62802b1404a4bbe8089bbaf4b6269370c7278f92d9ca026e1f230703d2e8bc6fdc0d95e7879b8a8b6d04197b5287e081757bdf5368905d98282297e9f4c9a8808061c693dd2b752381352b7eefae9c1e9a50af0cb21d055d08f72293038e2c70ce44cd464eed5691e06371ced47481861c7ee76ec6754564029ef5eed575fc1452b54716fa3fa93b829c11311f6abc4e9ae9129132343685a431c256428cd9e6e28cf7e13a3d330ec71280a1c9086353f2474873e54d72c85c893813fff7f117c4457f61117d7c5c4f2b9a6adb0a4775d5a6a3e60835707263f9641fe32344cd8650b8ee5817084ed595c575fa3db816cfb46a926c0f5d7a43f9b473d05f76ee9080db886993b5f67afbf219ea189a360a11ddbcd021f19a6f9624ad0e1299e06998675f4aded1430683e6247d77e0d810a533676fa776fef52368ded7be61e76a100a1704652d24622c71ad2fd4d0f8ca1a0d0e2547cdc88a55de84ff0eafa6d64d020efbac2a1205bd10adfa3e12a24e91d2aca393b74f54b9f2da9314c9a5332a66109a0a389ddc305257b049429c91c804fb81e97067a8897fec8b49800ea46c1f7c9a31caf8c46e672e862a896ee136093432fc51dfcb8131d6b5cefd5f6d0e93a2e53aefdf4278ac6533d0f6293b0cc595bacc6282686dc2649bda3a7002255196207236ca9696f786f7af618f3a626166525956f9f57222f9cf9dcd2fc0c1349eab0cba5c8b16c95dc5af73254e8307cf998892f374ae04a9c041d7af8a5245f4e978adc4ec3c5cca697dd5c58461d587116566af4f0ed31ee74f778d0d8bab1205a1ac226e6518b8dbbf4f1f6b5a7147a1da74ba742a03cb6f2169a76f9e5b73ee749b9295d634c9b36f0b5dd6eea8002820d2ec2afbf516644dbb49dfd63ab204a8ddc54471b060906951c7369ac212b5502c61b81793d66373ca90b7ecb8b8b44dfa1c3bf39058e079390f448da7edad555cc84075cf0a3ba2ac22a86852ed543f1b8bd88c8d1b07ef80f00ee1a561c33fd6298432a7dd50883fe7e07b6aeb070b515c33a0fc6804349cd479a8bceb074595d5b749e01de6bfd5bd65baa87b30a3204797a525aefac2188d8db165b508329c30119f7b54812cf0ca1ec0bab38c23b5e8b2115d0eed103aad0458c982ad22d67d5d792268129da363c763dfe6177e2065dc01853931c332a0e4fc1affe2ad3e0a3d65db9a90a0f708ecb78e42e591e2f792eed3dade1136be3bdf86fbde8213f5313f9b38b7ede9a36da6d688166961a4242ce734447ab77dff9605371cfbf394906a664e281dcacdacb717e8444384c688a0e50a00e004ab41e564c0a623d5fda59112ca0eb5e94ad8caa2f976b6650dc2e0ca94ebacdd220ab89161a07c5b869a54a2321a3eae434b0847aa9a7ba897918a49a45fe3970e71fb7525225ad15796b1c77072b878a3691b630bde0845ea6cd00eb41ab3be8bf65f5a9335a8a39d7545191ab8b869970e58eeabff74f92647e1f7a8c9bc031f0385f51c5029c547f9103e1f944f63dce498789fb5f4348e5d341fae96230031fe679fed4e5309460e40f1429a361d8090259b99ba693c8102941d72e4f5d2925f8dd35b0c2b7c38d10428724f58d18a485f6d819f3046441d42995b43befe888bcf48b179d8cb494a04adb8719b9f8817f2e8e7c9d6627ac051ad88505d9f3129c5e032a2caa6d5b30d6594d077d94eb4f79eab8bf99a893f861d2e68200eaa21fb2eda4ee6293cf2236453f70c6fe0c911387e3d859fd882c1e4ec6e41b3cbfc32847543c9bbb37b91c17bb67e3b88f46ae09aea51ed35025bad1265beebd654a2905820691069e06a144edd2b0be1714b33ccbd617bff2303631df2fac3f7d0c8b6ed3c058f659bea585bf9eed595e7cfb8c6a7177dfbe1048dd587ec5ef0254b7cf86a1eac2c2f2b1bce7fcd49c5ffc150965c6933eabd824568ddda41c1cc4ed6b5d23c74b1c301d3228298893925c1a9504edd9b71b8ec2b6deb62452d2cf258529bf7b81a0abf7195ce65de6655e66c905b1319260b566de5e6b3981132b9d0d9e28e834feeefda9b5b126e4eaddf74b1afab0aa7c7e4fae1065ca06fd65e897efa940c4dc212491d51d8290ac7acb31220dbbfbf6615558f72dc7e0980bc642c4dc187cd6b46e18eeeb2b711a0786e302dbbbbbbb91d4fec11647a86f7fd8a3da923ee03a6ef9533dcbd7e267e15f791f30ace8acfca2e6964acdf7b62fcc800f1ddb422febf9c30cecf631abe7cf3b66f5f90012ab0f8ff565c0078e6565c0478d190d521cd376b4c5c4ec6e5f0c0dfb3f5e7596fae06acfc6202beb71fa571facc1d46f35788da121b3680d5e4d373505c30718382acca8814387ccf7ef9081a121508559c9a0e187ebfae040d3efd7e095e94d0c0d7fd498d67bdbf76a70fb982f04aa313e5a5fe8811ab37aad7e57a603708c6d7bd3e7e218bb07e018fba6e737bd1a64139b4cac8f2beb1fa765def4adf0309f0a32afc22f4a47867290153e1ea2020c16a987f90da5c3da85f9fd5a3752dba752bfedee467b384c3da776e97e316ffa76db3ec6f4abd59b3e18f657bf99561fcc33cc9b607e6152acfdd4d29e8df5ad67fdd6d6b33e9532c5180eafb6290ac27c3fc3a232327c982f965fe22dd7606e141e8aaad727966f2b0be5ef15c5647dcc879bd23683f950a6be5daa0fc11536a2169791f970c5314984c9ef33b799d14afddbea95e864adb011a96808d68d86b1f2cf8d4807cbd01898cf857c88aec35edcc55b31fd466598cef0ffcbf7e20bc11aee51f85f385f214ca687dff3589e06d795477daffa509fa281fa13a77e53db9f4c7f7a14fd0643afc7148389f66cb4a735e3ad8c4c2e1f99d1e04a39e7f6b11226e2231c77a459c91612c5dc868f1c8935533eb22ab08c13f661ee9324906af7fc1eeafb6bdda03dfb5df7fbdd03c8817bf897f6f07bdf7dd83deb708d19fc3d7fe1027898f14d1fc70f867ed3ef67fa50cf1fea23eafbe347bd17bfb0e3afa76368dab3b4a765c35b87f1b7cdcdcd1d8db241193ecc70561f8ad564a2a14f6441c85c1af6b46c68afd16d90caaef1487bf8bb67f177f4245bb9dbb638316a31c6b8d5d8a216716ac4a397bf62f48ca0fdc6724e16eb1d1c42a44488c67e5c19109b3b3c7a8b35024769f0d76413753c6439fe6d95ddbde334addd6cabc5b83b383cdadb65741ed17d87876f8cbf235b59900905d2140255d3ef9bdebb713a7dfc3ded7e173fd3efd61b53dc96d078356de32e9f88d06645783bd3fd3329b02ba02851e9779fedbd64bf10b036359c70d04a9594a3e14a757f46b2fe27974954bf63a12c9485e24b2c9b629e389951b7918c8f6c0bfede024a70a43aeadd88e3388ee3388ee3b8eeb995e7388e939d9cb2296b1b9b985210ff25a22925199943464451592ab74f4ef024a94875238ee3b819ba86abef528aeee06e6eaee4024a30630d5f3734ca4a0d3a3d3508a5c1edd366d50736c584c95c6053917132a3f671f9ad4e0d4e94f6f163290df21253e119cb1af4671162c27e6d584605ca0ed9d2f82f114932960da51ae689017af7b56f5e5e9601a2d7e282797ad487acf7603572f83b5d27fd21ab076b575bd6b27ede35d7b41cdacb34e82c996fd6ff68d0bf8beea20b2039dc86b534fe924be2099c44ba58a3e18fcf24e6f6343657839ec56417f7eeee76f376ef2e371257e286c400bc40e270db6bbfbc4b934a9982799fe961ce9acf021f289673e4a4cabcff36c7e321b7e9fedddddddd5d04f09b3e582705ebd8f1c213c0c99a793f817499777798997770134d9a303333d370723bacd6b970c4dc4e0dee4fd71e7ef9fb617cf9f35e2797dfd41f3ff9fc71acd263727b6dbbbbbbbbabf16adaee7237737346acf7f3f782131050fd4f08f8a08fbf75eb6975efcf455606d39b6dc15f9c82b551c0d234d184124a84d208052840ca39a554dadde79941699fc72e0db78db7d79707cff22af148f26ee94d979dc827456ad45cba98ce447c64e3a12a936869cb86d3f0a7ebd29daee19ebf1eddc9a20e71295b4add172fafb41fcad4efb3be97efc507a46b54bf2e6f7a960dccbf7879d4c37cae0f749a17da2fe8b6aa88bfeaebe157bde72797cf9f51e0beaae55740953f1b86eaeafbd16a0bf51c38864aaa54344ed0f352b2d317720d5746430cf26774cdcbcbafd135a6978fa36bb4979fa36b56be6592fbc97d2b0985b992b98d07c96afb2cbad18f57f9b2a3ad1b2f7aba7f417fbc6a8f92a1fd6843d9787997d7503a2e34acb2a17cb0522c16ab2fa82f692f9f4b39324327d2fee5bb7ff12e1f3ad1f682d5b15e5e3a97cf7bf95c6878797979ee85f6742f2bf7f275ffc2c585861d17633032f7b7ae3eae29940d6fe5c42819e4771dfdf18a9442e9ac567e0d5ea50ced4a5d23a96cf95c0dca67f95e46dac693dc938e1031335329df93f19edfeb3c29658298f2439fc96ff9473269b2e487d267432e3f8c444743429fc9d09db45011952abf880ad16c682948d6439c2429112d15cd8c6ae8b36d30ce5cca772294548f78481115a2d9d052904c863e931f4a39278b6ca2fee43394f7e1aecf7c469bc562b13cef732a3e654fa7f6995369ef59d8464e25c9a7b491779194d4cf721b9fcdd8673ef359ed3775932513d30030728d5b99f42dbecfcaa21133469aa4eb3816376e3b41b77f0e2d897cc93bcc1939363ac95163e7ff7fc7bd775ca6babbb7bb376522c36db3a1f5c8436ce46321a1f87137c6c8ebdec4911c695db66c740d81b42a2537115113395213694dd4449ea4b9d0466d35d7909818313132625277599098db7313ed36d136d1a948ca3959a8a8953411878e143a9356e2480d843371a4dadbdf44dc448e7a42dbaf624ad72cc194de837547b9b4df0f5dd5c5cceb82c1a032e5c619a6ee132642547655e78c70dcef4ca81a52195109a95ca842b62a2197522ecb9e85da2ea93c511da7473d4a530161f210a75115511551a98cb09396d1a83f4d0075a213f0280fa1bf2d6c556931f7554558b69cfc90e3b857093528bf398ee3680885651c14254e7232254e654455c4094b692293c998caa2ec9ac84d468de90dcc89c89c4a5190a59dbe96e6a1e97d58556ba5d38742a51e455128ef53b4d5a17826a5adee575a1d6d3d20950a818caa6b3eb64a952a5d546da99ab4d700ab863cd507f549a73199e8e6b822bfa03dea9dba1a8c1ea3c7a87da7473d4ebbbac6698ff6dd679ad387a76a21d7e5189e17fab0c0f89d7fa7f917b2d639c6aea98bdc6f919963c4d1a494728bf106078613638cd163f418a347d4b73351766a07919d63588eccf80c83c1b418b518999999790befbf269cbe312c99abcaffbf2df8b33ce196dbb418638c516342f39f01d25e07f7dac748810001d2949c5ff35676defc4213e66bbffde383c9713489e9972ee79a7bf4e8ee9a6b9a47772bd69d689c1b3110454533239f2220987989c7a76de4149e2a6627a592233c4b4542478a8a8a8a848498999999890415e1f1f9c181edc87c61ee51d5b2f27972c16030d8d2aa86bbc44478aa981d0d573444e93365ca15cf128ca787cf12cf4d8fa2a2a222efd11a4f0f9c259e1e2c9ea5a2a2a5a2a525273d68de767f6bb4df95fb4075b7a3ccb8c565de5dc97c13b5f8ba89dddcdddc57fcbfb7fbbdbd1b4a6777376dd3503adbeeeee6341ab747cfcc3accccfbccccdccdddcd1d6527c47f5b514eed39dacad99f91633d077be3d8d9b1cf6c046f675c737e1c397949c2da86833084636786219599e36ddbb6fa1c9b397bdfe6c46fab899999d9396adddefd30a1eeee766ff7f686e134f3501125eeeeeecccdcccdb23d14741f5b93df9d18259f3f136ddd781b5db7d77713656a0fbe34edf56ad0354dd3b41bd8eba65f37aed70d0cc7dddddbdddba36f49b84db2d94d28273d12232180a59195b1837f0fb7992cef4c584154e72515c93a61a4a6f1978c34e777fa952ff5aacf7b960ff51e47d4b3bc0ddeabde06d4b3b4b49c6c50bdf736b03c4a9e4ef1c428d57baf83e551aaf73e022aba4e6d5862c3fcd3db40853dae33626d98083e65a95f791b4e3fdf865d52bde7a8beb835bf5bb391000845cc3a9d56f73a66aba30f987ffa08ac7c6a012798aa2a196965a420b0394184bc902042e6e985ac50a76c84e7c70e4b7344104882e4f7cb7864f7a1fc1e3ef279ba1e5d23a9bb74e9b2ebbe1e3e0dbabf4f8f969de4e921799718a99178964070095c5a8a51b66ac65028f500a52a1d31a284a48bdacf41a6e7307d0b029b63fa5604b86f130d721a9a1410745822051b1c89c5724cdffd121d7249eb01dc9b5e07f726203ab8ef28108e3ec736877b6e6e4e2b5257830d73f1702c728c633e4356d618c241623c84636cc89029537e62b1a49844c101aad398d903b8f685be81fbeeeeff22756d0bccce82c5f49d75197b7748180c06db2857ae94c83374cd32f316c57211d76d8d8d85b848d03a11c2415b3642a6e18f566bc8a8997ed270a6ce9752f54482d01a412e7fb8d73c5f98c50cf301d157b211a2c844f2e4cccc3fdc66835c9392450733feecfe9052e6d8a2e65a6b401aec5f1963fcbb58ecfaaefbaeeffaeeeeee3a733373f30e46cd2f9c1a338e706035e69cb3bd06d7d8666f04954f3b40a1cd947677999b999b7588820325b499366386e2854a94190c18ce0d0ce6c29172aec4b981c16e7060382f18cf0c3e3bcd451d12da4c87960f518ad56aaee6eac89f6c918439caa68498e2eb0fe3e582b1bb2f86e17ac17831b38b9b9999b999b939caeef6368bb999b97988ffff1731337b3333b3746fe61737b3ebc5cccfdcccdc9cd4dcdc3b0383350fb1cccfee3fe36217375318f3b377bb6030767638bbbb3b7333737317a136c7bcd55e68c2dca2296eb745cf0b7f2277b132ed717ff9c52f5649c39fd8fd6aae0782f0294c57c0acd877457ed7e2f6bb4bb6f73ed82dede36bef1fabfc5a1a85495715616ebfbfb5b77777efeeba60af9b6eef6eef275e0fb362e90659d21f82ff71d3ef17bf86deb76c38942b8adc507bb4f7802ad7968d7eef69747cea763d46ed5da3494eef927371d1a5452dc66de3b6452dc68dd1979b1282de8e2ac76dd5b232f99b4cefddbb4e7b3634fdb6989a7a12cbabc205f030fd59542fbf7dffe4ab3e18faa5eaf7eb57ad7ebfd067f52ad5afbe57efa9bed0f4aefa5a7e4ddef22edfd2f226930a564dcfdb289dee36d16fd0e5936991e1030cd52b8ae9f22d1f6e435b91dbcc6079de864ccfa64dca761a7adfbdcbe7432ec482b4dff2e568709f25c2e6ca720ab5fee1beea9dae96ca3cab41de3abfd0b5f28560ea0be7e98385afda39929cc961d63ec61ca91be4204dfcbd892735c849de84637b23b5cd6ce28eb44a72272b47424242da8eea0200c88553489089351c8e061b012e985f631ceba16d6fafee34c8fcda8e562433fecbf5302b5c49ba8ef27811204b60cb88c10c3948469119147fbcbf478ff8f9f034d851060f33dc254f8b5c5b30681fff8643b9a248acf6689a8d6dd0a7411dee17a571d00e1d1e2fc5102690c1922878b841871ca01b902c218a2c9cb0440f50e4f4bb60de4eefb8cd1e7511621e6374b98204050505c15e2ed70be6822dc164af9b1d2957881e5477b958cf9a2d7932840e82be061250d01096707283204b5441829ce522c98a1c2c610889942639ad031dac181214c548881be400c52088268428e20720ece0430ecb164748394206d55b2632f7c90f946a02ea3ef9c12c29fec2aef0d3894a77e972e972e992b1c16d004798daab5d0388c20c57b6e32dbfd0b2e145c42abf1711fb50728ced9763f00b21577e8169eb06f7108063c467bab56968aa5b3f3fc82f34edd10f728cf8d1075d754dc010a68c2fe574b9e44a0898bb7c87741bd7d2c497261aca75454d04f1e3ca6afa5af14fbfd5f42b1c66fcd5bed70b7cb56af7b5bcef5ed61bff6030bde75ad45cd37cf705bb29c2dcb84d13627ae2b1dc467ab7bcb7fc2d9aa6b5bcf87c70d5b497ef9a9716daf2bd7c3324cc3423568ea98f281d1fb36a9ee7799e8f655a43ac1aed49fde971ba537f42d1387deabd2f9cd59baa67a161ac2cef1d805fe09a8309b3876bdff23c3c8f4f2dbc289dd5cbcbcbd3d0fe85be3c50e518f6b7bccbbff806aa2fbe9fae2ef4001ca3e5717cf5dd34e8af6ea1b006fd5513078e95f913411c3e983d034712d6338b72834d536f7ad467f2be10aca6af8143fb890c781d3b118693c30493fbad478e7e66cef1b3e3cee26de36df31f39ba6647c70e981316cb098b0507274e5c7aa587d80c942335a09cf553f74096c8d7319dc6812cd1d1bd890279a7e1807834c7f4af3d475bdb7b1f4e495b1b6d4d407a14c892edb9dfa8ec684ba3380d7a0d961d26bff62388230735e82ce42dc445825aa88384dc83ecf8074916785e4c0c34983e7ea4faf89128db7df89df6d01883d31edad3e3f4b40216935905444845f2488d4c18513a5a42aae19848aa32759f30a1a43e118292ba4f8460c485ba4f9c2c554fea1aed5f9e3891d5d093949c107145549e2cb1d424e954d9db7fc13d7fad1b2f3dddbffccb7703c861cac771299f69eb46477b64f8f2f2453a159fe233eff7e3979d7b8dda377df23b18f84d2fbf7dc9bde47eb967eee5bb172fbf1efe17dad351977ff15b5dfec5bfbc3c4ef76c264f281dfe7e799c767971a22abb86a70c10ccad216784e3de8db40f713ab8e7388ee3388ee3388ee3388efbe538225d33bf9f0be28a083516b53f3669d1504a89a1e1c482863e2b1285bac646e65b56df1f81e89aee5fbe3f1e45a4aed1be6685b9b22845a174b823d50545e3474caebae685865cab17e99af9f25dc8a5bfd4d1fd124a2f16ac97f2675ebeab6b5a5efeab6b585e3eac6b562fffa66bba97013be63ff834341f43bd98b932629e574f4343967c9086f3e92eff7c2f46c55344ec5f56e0ffa73e482ca645009a672904a030742540cc91914d9018434a6a9b20a8990ea6546e02a9f2b36c99d00110959f9578899f003431552aff0f34232abf0b4c66ccef775d2686882a0d0d6ddde04af334b8d28034490b8fd31fd4c22906e430e63fe6c10f9fdb98ff98ef79f0bb7970002f800fc0f3781a82bfef81cbc5700b7e5b1da5b3dc0b4771b6a868859759fe074005f001a021abbecce3f8ccb715005fcff72c3cfd7ebc7ebfc2171b9479220c715459f86da2082a9585ff9e51327ccfc22f4a06167e690854bfc769d6eff7fdf7c97ccf020bdf281d16281fadf0b10a1f1b7dcc24e6db2af3c51a435b0ff321c7f088f9907b98f7b88f8d588fd331df0c0d72312f666de16818f330efc57c6cc4401435c82c988fd18161b18ad888b54a2796e7a2a5e17fa1a17cf12eb3b26a0b0d59928b58e836a8527df1e7942958102c28f674dffdf6f2bdef1875e363e783b9efc7ebc65ab590a25dc221872b82108521a290420e5b008ba3256630848b259290c3ee44124f0c21b6840a2572808a3891222907216e30041339fc0da30dd084c7bf33e1af63c0db998e1df9593cc82aeba2bc9fd5bffd9269e0792bedd1234b43e9ac5832db64c9300aa5b3324f75aea0744e55f65750307475a6ca4c9519ae5604b0c59ca9325365a6ca4c153e7141f381e90f8201f8c00c5f2f1969cb466f534ca74d93ea4fd7dd2a6ed0031eaa984541063109488152c4101a8440044cfac8736da6d228c20c5d2f6e58d39d1c8307a6b18191114aa870420d9ae470cc87192041fa010a2d72f8a790ea4a81ebf75ffbcd86e3d63f578e6f27fe852940401005cd6ed0050e44900091e008499096a08426ae68028ab733610fb17a8134b853eaeeee5276c12ee93064892842888008090ab0031e10618a202c7690839c98238870820950c801490916a61085278e308329465b6cbfbbab79a0ee4624aaeceeeeee7a8cbedb43bc0b549c071542904216040e9e30ca61265c21848712045d61831cfe955078bb145c218739f957f60858fb43388816bb3dd4986d1d5e2eefed8371d13fb8c7a2ea49802952a287216e508284c405846210c509246c80830f39cc4decae56b0ad1cf15155ab383d597b84ed6d0658c10202bbb6edbfb2fc60343823bfe94c8392a330c099ca5a84e1afe1da92490a90a2a8f203266a10c3123f80c0c9125d08a1850fc1cfd2406f2f5301a3a2014429506a9243125d0831928224a4c8e2083f2041cae15f7ec928e097fc95bbbfabfe7575513aad0a020e424499810a40102487877a8882165de0e004921139fc2ba59047bdd161802e180dba407ad3d4b560e553dd779f6e0364032584200422472459c11639ac821554c10213d020074339fccb2f65dece18608af993b59203dece00c08807fb276b0330263f8b7ff9a54f6f2fcb3513fec66a0452e36b3fe21693e2200442a89021b134049c193c1105245904a1451472f857f213bc6180334bcc90d210eb642dbf642908a109446620821d60c0032e8030c293a1231c119ba2c53e4b46123c332701670dfc3013ec83bb1c68a7e17f173f8cffc1a01af8c11e8f9d1f640ebd18206d4381a458d36ca540d290202c65368b69c1822aa688b978865fb5295dc33227dc29484ceaeeceea2ed5dde523468ad4fd7d96d2360f6536699b53086af01113e98e75107f0bf1778cbf870c6db1021046474850f1c10b92604821072510d2e1891fbac87140932e945c61a4022db2487da0c912a820a20222623f2f4b8414913224248824ac0ce1a208134c88f0829fddfdd901cf75e21e47426646968820b122a7070eb28862042508dac228677feeb35c3f9e9473b258ff609f1604755554ccb771e1091f18599244c4104515184202c514b125518272f85dfcb0d8cc4f018683df2904527bf87fba76dfcd5314517e21c3b06dab930ff36be8e200086e98c2680809232622e881094324e1021e7ae0434ebf0ba6dd10e463fd5cff861cd592f9fc204f91d1f398637e035431b5ef7eb8cdce699ae4773f3304cf677069bae7ee4f26ed3b7de04b4a1953243bedb5b383070a8e54fe197c5eae692819be863b5a10e6ffc12d444a8a64a769da571f3faab6433be540e9e06850fb96c79ef7a36d58330e92431341524726704265232c4f8296aa8de7f07b9df6e287f1931c8c2afb40f650f95d186276dd27391cd570350d054aaaf65f1925c357cd77589a981aed6812958a02699afe2dd6200369f04711448fd21ef525517da7faafdcf715a5837a1a7272f4c7b6364042a8448182122ea010b4c3da000909c10868d084275a608326e4b05c2a3c74347ba588c7acb1a6c5d622c7c8ecbd84b733b599866c6d9be6eeeeeeeeee9b16638cf106d7514ceef717c0fdfe89464b6da1f5a06d5caa21abee0a005466af5632e00be761c05a929a9ca68bc0050a79dae6fcc3165c1a066b0e7377778ec6ed35f062acd9de66368df6fba726ccf662e02afe2db4071aa52343d464883478d4b6dd430d644d561f40aa6b6d930a5a690f03d64433014ad1922d6286440d679800e555358fdd7d83d34c108b2295073c60c808ef50d47e681ca052a8e4cef793d6b1a1194100820003150000200c068503027158301a11747df80114001179824476541c8ae4419642414c31030c21840008000000c060066007f77f23601b9c9373523b855e2aea16ec2146ecf0f30eeadb4fd6c87fc0396372d871bc6981a41c229e5b6e20bf30ff09a3f118d72ce0481bc836c13031696b1536802d44911ab1e06fbccdd99b513cfd1f7fdf2aae6373e2f245be4932c622633ade00dbe82e372aa70b06aac1716cc5253cbb46a5333babd61f016a1f02cecc072bed80ca9139d0ef07725adccbc9021eea591d0045a4abfb66c30b958644e5532052baac658d0db9891d671aa6505d9c141a4e6cf9c054260e11721e8dc01cdcc40c05760266f0490e0fdd38079df0b3fbf773029d04fc9fb88ca049b669a0ec00681f57093b9bf7573936174a4c97fe6e5725708f0dc10a558eecdcbfba5ff48a41e5c2fe87f8f4f443bf2aef2a75b0ac56a834cea99a1660d5c75ee84664e7257476bb4dc92a85e91bed50b3627d0098c343dd56b46f62a6427926120ac5de6395cfc1ecadc3a5b494635870ec157f8b89ef06335cce9b843513e8178e741c313f54842be50fb1beb2ad8dc8761e2e21d87434b38799c9f8186aa280fd26e6c64a81cc1312ac59627682fea24e521439148703a13162923138c2fa640f03e749f83e08d7cd82f5ffca7e271d3940302266a1aa273546bf40588f398b9b97e140d1cce31e1a938bf574a525efd5580785233ee6f5a93588e16dae811a5ec8e0169cef266dff8b6693d762235c20f404d085ee2f0c1095415c26b7752d95e5de18971460d19eb8945db81478e016b78824e93b4c1378c89dd800c8e5313486b236e89108db973cbaf82c1da8eb449f5c3fea5599385c13ac56130171d65a9510952a11a300e189fd6de8c0a400fb33ea8136404080b4173301209a00177c24b74c80c201fb42c48572067b0c22348410acf3c7e2d551591a7f7e7d44256f2987154dd33c7a354c468d3744714101a098eda704146341595094d4b80b8315baadeec70f622158d0849a9cb818147c45ccdd842882c1303ffd0fea46d62b675be9297c7c49eac78be2c147534cad4f5328270b27c2f6071e1a6c6ff061b5a8fa204c406154432d106b444c254ea5599b9bafc758e99255c2bd11a9c8fe3115897e4fdbf969094c84a3909531fa9047bce106782b4ce232a300b855c292697fe38b24738fba2bd6aa59d3819be3b4d6f4ab514ac8ea206a52af3f53043d4a6637e669a93aed3fe83f32318fc327dc6c4a6106da3a7e2ce3f32df18684ed9922fd375dd0fc3da9c83be997d342c68e1c1a87e20401275da9cdeac4a89c7e8bbc7a79a2a48e6ad418e28d663433a1640cdb5193bed5a7aedf445d7adaa2fafab644d1cd6897186c5e44865adc52687e732a1b22ae163aebb30e7ed3add14e0a47715f1afca64b7f78e13779a81f81d9d8c666a462e031ee37e9f940cf68d15f2740faab5b755107f1c223f20f2c61686bf65971075e8b797b506b3b0276076f114212a9ba84aa731269313537ebcb0091f978bcc5902ded7057bb499dedb80aabb58c259d1d5c4f833b43209e7d4237075b631221d4e93904ad899c6f053db9ef71664e4729f22f1dd1114e2710adca7efa819b8f282b8f59ef5728cd3e150d10280d632004e83df1a62f8afd0d1cddc809cdf6528a5211082ea0bbc6576402fe0cd012c802ef86948ccf46a15f4af10a9185c30a258915845ca62adc792f6dbcf171e0600382bb8f1ab474a71dc8d0315ff940bde144fb2d4f5784afdfc7dda6e84ec8c55346eedb2dba7b06188b5eac2b02cd3bb3612494ac30f3af7064febd68f2c1e628cf09840a69d9607421d12d7d9ed0d8d200a4f7af8cb08e3abb22826885214bb9a214594af4ef583bb53d9786638e2211174dd68d16c547261ae0c7378feeb64f33a61d2c0418aad3176c1308f03c4569f41dfc6992fb1b297b1f03b7b1c89d7c17ec75edc64882ddfcfed7542df166de2d44ce86d49be88e71e01a0acf460da15b91cf7a564b12202124cc93472bd9d292befe91067cf8df194b59d9592bb34a19322adb6eba0fdc009d4837000154303e428ab81a6ee91df59d94c8a8155f03255a3769ed63e79dfdbfa4d9b39c45964ccc4d87769e68745d5e319f50b0538c955cf76e3c89df142d625fbfbd07b812156cefd7927305083f14f1aaeb87e9213e67f7fca6cfdc1151a0da4c2671339236f780bd65089261234f86af906f50bed47acb85229bfad294556f4793c343ba6fab4ff5c1fd4c9e2749118af336b75d06e1422f423f05d01493d48c9264391715d802eca79631f37029376668cc2c55d68dd9dbe1002de893977725d9be866b8a271bc6ce995e8d309f12741eb9af7cc472522b1f421950716173b91fd5111ac3d6b6e1ca0b508363527e8e77fd00549428e512b98c58b89c3057068e1371231753487a160ca71037451f4c23ec7fafe4c623d8ff0e0dfe7ce58204c3b0eee835b2bc743fe9164c5433869abb6fdecafec9082d90914cbbb96eeb5bd43d5aef9c2312225ca5ca07d3127d347f2d51c4abc1ac343b300294983b5bdf8f01899a951d59967f9370d9b24ca201dae124126e9339175317b1af5cd749e07fb5801bf896594665ca3c9af64132f5f66a9d61d1190f59f974e64914aeb9436b885e8e301648249980212241cf2884510645e5aa3d78a91e2e127fdb0ab890773558b84d0578454681da1d08c4ebdc40947d741ea41c9fcd900c779f25e2d0327105a58c57919f0e437ebe4e2b2775ffa24453c67ea2f3ccbb342fdc9ecc9abdaeeecfdbde93bf4a2c4ced706f5d3af066b8fbc545d0e8fd243a1b76b0ed3900c96bfb19b1a73e7034f593041a0b8ea6e63b6b8ad6189561f8c4a963b3eb5a5805db7ccacabf4fb59c3e5c5b71fe54add56e5245b687161fcb08c51c16a328ee2b055faa894ae316764279efaa31c1c868541919cd1e01957fa1135f18286e7615a5a8dc57333eade712066de1ba8aa16c86501ae55c52f00ffbc5ad9038cc57a3d496c11a053901c1a90cfe1ab220f39f69802af0139baadadd28f0063aa76069812d497848b2f8ea03f214cb3c0be4276be88040f4b1fdf63380d9735a8b015cecf1c8509fa7295bc4ee1041df545ca3252404678636f46027d4445e3e6d394eb97aa7b4f47c985970c1855fd9dbccb85565b0a9e391fba1e54d2c0868d8836396deae8bec35456c8f6303120a47b8f063c51320edbfc91cb47eb2fd4e3d77405ba9335fa22dd99165bd6849b335f1c748033330f29486eb46bedbd79941ed7b5e18e00807be13569bdbf5d990c264ff22ebde92ebb01121f410ca7db0886141be3cc054acb8edf061376f22f9c4018e49d962cc7dcdcc88fe116c0d1bfbd38454fa5dde1c6a0735a3b3b496284d9597feee3832ec062857bc66c7f265f4868f24ab726b49ea9f9cfde7457ed5e665574553335689d955326796094ad1a0c31cc5790a8cfbd16465b2a3a42374081c753b09ee48650060a3703666e0936430ed3b8753297a5ec0cdbf598f3255ef6155252b0ca3a7d6728bb9e71f12712282181851661cf2917417e858e288bfde2ee03b2328d0b86a6233f900d644d022462d348ebe37a3403bfa0fad66d37cccce3f4420ce62378febe3ad9e5797c63a4d1c1bb06243aa71f619e13bee69c9b10b135e8b1d9417e54551660cd3671b59e826a0df496c47fa65a9b8d4607d142f4010a29db6332bb9f69a35b2eff8f428a4424262797a55e03db5c84b506b01e4d389c080a5ae1eb0fe4863e72b3735be872f6cb9294966f4e3696cda84cbb4ce8167e13867d01781acc63e26baa03abeca9dc85799a30f5aaac7f3632944d240e15caf77c40affbe5a88fb872c745dcd5621688eb0b50280a9662b8395f82a00828de980a363bfdd2029be57a492765a384939942d84739bec76471a2f83546a075870fc5450d9044579fd94f1455cbacae3d43a034f34ac6a25551bc55acdad829652c88cbf2cb0aa89a2640913bbbf2a811788b75f93ce1246929872a0d5ab1ce8b1e3d88135f5515f349fb27e8f3abc404979c8244c7f280975440e4417bebf19a416e1a8c76d8b5a7a4996b2a8f5a7c9191f4bd2a45eb23c9dac9b4a9f52ed533a6e8bc06f466b21d10d425deddae1e042ddb9d68624fdf94290242a29fbfd9c22c62d50d4ded55d8ed3454794b5373b5d3ebc65a6f363d859f2f039c227560e6bd06f2f1623d5d31987411f12d73afdf1308aeb2c7fbb3349402d1dd2de2a2b0e0d1025ab2a32eb4c77ebb637233022b7195848a8d8ac355a5c4cc03a27a0952072ed76662059f05478280b2ca1d79486133d60381c6f1eb1190594f360b1dec713c8047e8055bfd4bf3105bcb2ef98c46228c0e4be77f8f8ba035735c2b36d1c4da64f4fcb71c290618efe8751040546ce9102bbd785f14a0e8d5aa6de881724e7d364d82ca177d86fbd5f5057e30ed818d122214ccfe1fc30025d8597719df9b87add31b420b2bd68f163cb6d01973d983e1db6f06926f97641f8551db7cfc06f1203bb9c12864119849961645ba9c1c2d99b3c94936d501548c182149aa47a84274a478f81e63459898d6122b6249a3bfe7009486f20255ca6a8c37ce988beba1dc8ad4a071e5ccbbfe8eff0180ab316530e3b2b153da03d50bb617c115878c548bbbbb603b53e694b78d3a4121b866a60253c15b284273abe13772b02ea676a53aa907783a2475dcdab61a4b0e71027c1bd2d11ce91723bfdf658f15d221de094c1223d623b4e8f982e768fc024570b79f6baed0768bab5556abd902edd2662346c1fb4e198bcd0bc9bd28a3591bdddd60e93be316a7858d94a2542f4640418ed1d6bf17932419ca9de2682a25c5952cfd11df564ca6708598b2b66aec3a32c6097288c671ad104690636c441cd43c7a48116e47635e4d91d240ac0ef469df3c8aa7f5f7325dd0d874c1860d2ba1fa7220b1faf83b4cb0606e0e947d5b44b821793e451bcd967c04c0b8ee037bc8ad20c41b322080572239affade1b633be9444338dea92c7e1815127ee2611d12498728f4bd0dad0733335ad38e0c51c05490bece860d194350a9086c4288bd1bc2a54ff1a8631d08f8217ced162cb97498c7d936873127e666a20571790da2818f9b473bc27944b102cbc3872796d09184c5e95956cff8c845df8cad9b2879bdb1872aba4aac12a0a84e8df4c3b00ffa534039788f8fc32532666462159358635f3738d11f8b9fdbb5a636492fe456d76a589e595365435ef8156672ccdbc0e27631d210da401182c865259bdcf76b03a5487f33729335e86b10e575f88828ac1fc758e646279eeaf34f691507741c6b1615465aae086b5cfafc9145c2246c72d9bffdc2b0ef02a57c824edabaa16553418718c42353033389aa7859314d758b266ac1e24587bdc715d4a6e9e3b845d5179db2c85ae83c2365ba4d2799b6d360ba93475d5c38081a8ab28b9d1ea82fb5241fc17b83b5dabc1a67aeff5069d37a207fbe23dd96ea6eec06db43f7b6d7063ee5020604972c066606812cdaafe2f922aacd6d3f8b1fe29a11436890ef49f6a33ea0b473e7b491f5f5489e05a5b22f2d66575708b2316718b68ac23704fd51ba77d138a9406be2c2b7f2c530f21dc7b64e21cca2ab801d7c66f1ad295c15ad55e2ac826c2c133a12eaf3fdd56f2c9fe9ddbb0c201a436e42a4db47d8fee19a76d3c5e09a9bfd2ae77105f83a18b43fb2cf81874f11efbe0f899cd3c4137240e73cd21ace20d7cd1d24104f5c8ee0e12ea32a1b7ee172abf0db6dbfb98d132be0901575be36b37c18573c85dd55d682d932110f1862d819e6ad25194031151280375d2ac8f8e52d998caca62c16b92d50bed13ab52e8647ed9f1bb00eeaa2ef2bd53b7f1abc61b4742ebd1b362c1f067e606d0eaa7c42308739be053c4a60306f9b78c3add7f39357d324503eef9ac341d678c15d228930bfe87196e289b20db06f1c7bc78452f843ac3176d609b4bc71ada5162eb5935dae4b7ad9b3ffd7fc424fc6998480030cd94230481e1092e4467b9805b59faedff240547f3585398b46ad20e4e4371f4f96a83773d5993bf4bf150b015da58ffe2369e5b5fefd0c14d139305de463f5e4eb0b4a3c6e60149d4d522a9a84b55cd9744fb0e3e5ac30a3fbf2092fac89982aa614f1ca49e821a058dca9741c30d9ce7779108f3142e4aa0b49511d873ffabe71decd091823b0a060df9dfd3eda65e0ab8343bda77d9146c7454501ed279c8ce8045b2c21ffdd15dadb973b3acecc7ef8159b5f1e56258df728e8643ea3574c1b9132656fbdb19f383ccfc9ea0166b143fe1947b09ffd438ff7cbb2236f760a09c3557feebab896238330ec2f80298fafeefc23e32ba16bf003bd2084252d4b147e32089b88897862c361406c94ad4f4cbc3c8ce23460da83ffe7c7b63e19c2c6590f5225f3e270a2e5263811a7e69d7d0d03ab09f638af5117dce215d68f5459f55ef739585ad8b20d2331e8281738e33639c8909aef6d16b428ddaab09d97214b9e5d8beb5928d1fa43f28fcb63889e116efbc266fd64fde24c06500413e0877e2d330e51dc2c14f28b8b12c495dca2e066e45f594da61528ba18a5ce6b8cc714bc80df9a17380422b5a73bc2ecf1b131f720221971cc35c75f62bd8ce39a47089272ed8564eff6bbd63838639b28263b0532e688cc55476d4e3c26333897885df5e2805d928fb08363eb591ae0669d893f126b0ddd31d006df07407947c8e4d0981e729a67e0e31a193586751e75d058c2c323546edf339e1aa2e3d4fd452166830fa114093b70a63556e32214ca1e7c8a805ecc349469d81f509082e8a5d79cf880b404f016fc4bad9b0f48340f56be453619d9b8f191ef2258b29a4a849860d321d66bc5855b5ec19878e4af232416e6990f4632130f3a49770c909c9c0b290dbff6097b9b3b250a9054a27cafe5b750274dd6b367873da5b68d12fb1e9e5268392b141637a8e904a3118e61295ce7febb895aca52d3d6551617262ec6d105d77322c2092241603effd55e3b7348c5bbe8c1b06379fc6f82cfa23bdf7131f7d22eb0db6c70a00bdb33d1b4e577fe30b8ca2c5b871fd479479297e8fb8fd0da37307230acc2c508cf4c13e7625b839575543a62f3f2c4a34163d2287b2c9c825a57603ab1e0e986238b9ef559622c0b862f7f9a27fd8f9cf70494f6c877e36ce2f8675c97a15d34bbd15011502b837eccdf1f8a7fdeaa9a67fb6eab35b73f361b6234ecb616c995cb2412e5d9e6e207e8fc1db1f7187f9fb5b8cf7275929d58a4228461345db1d0907dae0577f0dfcd676b3cee2e6f524ac138d04e8bb6e3b6ddeb161e59cd8acbec7f35984a673b11b6b26fe50f21563fcb51db550e83638a1fc2b03ccf776d7a7e675c979c22bd37de8b14dad2493ebc1ed0ed42894dc1475ac378ea68b35fc84f6e02b77265d348169302a503bbba15bba98fcaad6102eff3fb42a0ed5871ff149f2a84019eb485c690236c8f5cdfa2b1335eaa27a0cd313f19227be2486775f50320497f04a9c651f1bafc5971be9f9a580ceae2f68621c06c2307711d3bf46081feaa7bebcb701740a5f0928024fa3fe30a5c127f3ae1f4e139f3047bfc5ee6eb15a3d363dd33ddc946ed8884724c9619149e14561ca729d79a6e8d514c1aeaec6d7527040a107822becabd9d0b8b6405644e9af182e0b575d3905cbc502f27718f2466cbb5f2963d0f2be0fb9131d6327e3ca89940ed392465cd1c64a9e63443cd5a26eeeec3e8cd27834d46378bdda3f4356cab84d03fdb9cf0d5df37f12b462192a7a30c09b5b3be971440215d723035001263d5f440e85a8f912c463249d4ee12f46a29a538b2ad810bf1b3d7ad5460e6821a206daa841ff5bd6511692d9999af78de6af61c56fd45bc20cc68134ec4fdf74e90308a3f09bc54deb2f17a580225a2c06bceb9dfa763c8ef56b10dd75f0f9af5e9c1a61e8d1e64f5d707dc1eafd40a9d85b2a35c41e87a0710f985c90cd5428ba46aa1819481334475d0107990d4a865d8c298c25c156a753180cd69b082f027f19ac77890b83dc3573fd109944fdbb8792537ef433a0fdf08ae990ed9c61c9b07c191706de1824cbef2242cc214ac77bdd7a0cc74af1f37e47e106889d2d5bccac186aacd2e4a2845d04daf112eba003b2a10555d8fba6d603022fa1fe18ad0bc52a342fb257ffecf37e92e3a372507f7eccf3912f8fa609b3d369c0aca500cff39a38ae0cdf4d2b5d57c2f8baa8ece26d831cd11ba8ca4722f2fe644e8068b839f9b84003c0180a544ab71de43be20c788badca90029508c71e1aa3f82b376fda4671db509d669e5a0d91cf5f9434b79e51fc9beaf2e8ea59ac7c6b0a99545c4c92af0b4a25701f2e19a3ea03c93581623615b1060d2c9eb2d59e878702c940bf0e24bbcadda136ee5d1d3700f164290eafc2a936e888d7c220a3c703eae9d8059d263f3df82c93622b315466a72e699c8971d7b4f6f2eda60928f90277052afe80484150ed2316abb68ae2f5ea4ae07c28cad15caf0f31c203fa834660b52695fdbc2727cb5c0af152050a58e6fa28c28314946a6e4e139eb6f1805cb52cb4c5a0708deb67583f693ef38d29ddcfad0e5be06b5ec71200096ec4e1b7122994768f26100fa00f9c1d9f7e9dfa67817bb24e16c90dfb9a635850a63f5413b8384b8c0e466aa5067c6f922a4f631f0335375efd14a61553aac4034069f2891490d746120be95642b337e073f9bd2e786355f941db39c20bbf42d8ed68617e8faf9206edf5234cf5bab30ceb6adebc57c4a7fb81e3217daa8d29bfbd7070036360edd83c08743db4739595b845ca7436194c7b956eb3107d34589898270f4bff2e78304f2518ac56d3fd8ba7cdf0e49b8987d08078242c0a3cfa221c0d22b6073d9795cf12c46bd8a90e2c9f932967f1c12633e88bf18933f43cd49af3368f3682e339795d27090ed0e550f1f09989511da80b104d9f6660fc1478de24d07d00929c327e2fa08c585199cab54dcc6f995bd0714c21e5a10c2149ae0938b7748a645da7cb5ee7e7bc10f022f62ce4629222858353ebd0620d28c509c8fe33c71caa4fd86e366f525ba0776e96939efa5fcaf687b3afdd592eb46e52ad93f3bda04bee7913d75d3321855aef31b86a530f3a2c20009b1912ff9a71a58776ba0024ec5ee1a593308e030b3b07c96212809924669b30a0598dccc65cbad8922f540b2488425268a55184e72b98e1c350f38381ea498ee28096ed675ec64e0a8ae841f2bad7579e80bc40cffdcb65024859b997bdaacf1123303f58d19725574359e0c72f8d32d2238f5a7c3916464f69762f9eb2411891a5eb1187416e617d686b3ae7948c4d980683d7ff22b850abe03a16d839cf270731d37bbf65e87a41b8f897904fa92e421927004f8e62e2c128481e928c4b09d453e4bee4408ab1d26542731905e29752569c6853d1a39ddf6c19340858d143be4b2d929b5289b62583543449bee8cd432aff7581406ce3ba5722f5b3bcef06464b2675b0b3795991279ef3bf0e14a80b0a54f3b30e541855d1d70c1913c0f6f9a6504caf514cd299cba07cf1fd617425f765f9136f44292c582af5a86ecd4c9c74a5b1557e2195d14580007e1e21820406d849716edf45890ec9b8f290a3c9e00610529b6b84ada349694a0d496c2133b9368065568012f6dd9f85d24deeb20b86dd8f2242d3cf894bd9e84d90c8c4001a38014d8ae8bf88b65ae09adcc8472ffd35e63a8808e933bb8aced73dacd1dc032794b9c12b18407cd45516926bef6e83f08ecd68632a5b4a8e0c3309e487c9318017f0132a0f4c30e7267464795c052df4b768168518c45ec1a2578bd011d6a561e356fff63fb2cb8a8d9561454024d1088f8ec94305485b7a1b3b382d9e8ef613f1872a74862c5572de5fa0789958b6dbae89f2be6ffdfaaa2ec05d3c805f86ab7432b6ee253b537487e47ee348602f7b3904c5ff266dd8933cc49a84c59b0da182672ef256eccc9439420daba152789a472981e6eebe8c2b44ecf712d3bf6837a0c53c66f6fefc3cbd6521f56dbbf758fe9151999a39765fa72aa6f916b8aa23cc59e975fd566e3f3b4e67c912ed1550aebc2a00b8121e6680e628e35406aa70cac2cf07b79f84a884473c445e67e7dbb9e0902358e9dbe006b9e950e3a9a0e17093e1c6b8be4b444e829b685cfa84194c16b4d82df2718e19ee0b0afeeb09d8b2eee8ef585ad0a7fdf2e7027d0a33d7e3d8ad9dbcb4f8b225220da4140815f969aeac13d9737f4450e2ed7286cfa085575e98cc7e30da260828b4e1786b29ef7c4279c064d3c22aecf8b2361f804fcf11fd32085154e88f3fea5e40e537f4dcb31891019b963f9e4a8af86506cfc305f69bfa42603fb63266be7020f3c4b87e3e73d3d6149da3be7052cbebc7b036f3315a8e08a51ee57610293859953891b585b6f9eb781667d78f4625bbc99ede5a38c17c47b4edf9e9d701e172eaa96075ffc57f8fdc781e847e704ce70b84dea57e903d6f997fa83095bc28bf18a6d67e6806d25ca0f5745b46ccf7bf4887d07c4425c584eb176f183b8588d18b54b584038c89a317a603bdd38d6c991d61a0adfc43d4099da0a858f4498f0b15a09ded8b8bfdef36cc52c29854358184ee02f156eb64982260d0fc76adfc1c4be4791d9ece5af0815578642f21c1d7138303d5e3d909081665a086e5f7188e3b044db20351015f4f26a07444c0b9e755f9ace3067490220e7a08231041ff58fcbd899539212d8c79e05822c07f71f4301ced43e6b4237bfc4f08de7eba5584992b8a1ba6508443a20d4c26c8d516da8fcb3db32ba74916d9903601c57cf61beef10023121504ec1a64b9b1039300b2578eca0e2b8cc4ce35e17a5b9730eac57c0351a2e35de27db34640694d86461b0a188e384a183ab08e51e6ca80a673b994aff30bdc71032f911763f574c579e24f387a734fac97363287e1b35e7eb6b5ea2058fc6d834d4c6f93f434d99c9201f0b214b7ce7ff5290b32140e8c348cf088f5c5aa44fd9fecc04d702f21e034d6c588ccf7265ab437d6a49b88b19b40eee7f6451e3cfd07357dafad1abf1968764bf75277ea850e8f2861c2f5ef96142f31b2df09cefd6f3569df54a051c17fe2b400b02dfe515112e61e3ef24eb77f5a55e555cbc88c22675492c50cb0293d5c8ee561ee5ead64c5ef776f900d6e13a02a0fdea6d4536fdfe04ae3c7f5f1e691e89c3c81fefe7ed2d92e7ba6db7cbd0e1b4d0e1007a7d08f294a5e702823f4e69bfdef3f9b460f48ebd6a624f29cac2d784ff3a623bba373e8d2da4e2569ef5151b379d2224c4239eab20d03b1abb15d6fc7d7a8b635857523796f8dfde29433aafa52fbe49f3f394089fd393de70ac6497861a5f0e61598fe92acf3312b7b04e613879442a9f0051a1b0004e26f45c1253f9a62afc0e2169f0442a0f3bc5b2cb891c5b8a6d9445bb9730c162baf0d29fdcec61db86e227df2ab23ec4bc57ea701651c1ffa72aa220e80c8714b29ec02f51d15db4a23d4bd4b196936c6e8c3fb9ce397d1c84d789852edfacb625d02d3bafe1b63a0bd96832e5fee59f75bd0ca0762eb385c473ea29e9ed1e82a2c11309cca06342f941d00b7ff44fc5d4a75987841f325cd49292d7ffc1a054aee7aa508a979d9395a071754854ff57836a0c90e50b89f8b9b7f47e562ba430dca970814d1e3a05cd51d8d6b6db6f153cae74293ab20314cae501b8af26df29faa4adef4f6b71747e4ed8174870f9c541f2a856c7d59dd2ff7fb5572765b6fc0e49fac5082e31b439a5d52c63d2ce900b1aaebd7b495580c69d06a5e09179a2c5b9543a926943b540aabee504ed19a174e6d8834155fd9cfece6b77d79b177403ec02113174e2fed9b9225adcbd5350b8d8de909d1b7e413562b5fd8010ac9401df2dbb3a486ed1b0f24fd98c9ce29d025e66a821443ae428b771dece6ddb32953f64b0371d3e9636ea8f09144dc352484b4ea49926a7fd56b2c7a15c8564bb648e187ae26738b00367474fd192c25c52eda3cd74a7962d010bef059289b45ebf47cb036dfd32c409d66b4e9d272b960ee02493f80724cdd9b49267dce5fd713331cc2af9388aadd121badaaa0d0cb3e3dc58eff5ed66fbc1f0c2e1c89c796a7052c2bd680e3fd5ca5a65415286b4597236962ca9da0ca3e14ded96dc873e22461dc88fd03475350372740f3f02428713f4253b41abd80fd08e6171b5ebd94fea46823a406c91feb99f00f72fbb40d7d6b1275c74181ccc5266cc31b62c7cbb392a7a450b7db77a6a85003ec30d84ac6d348a0005d4e88568fa8d5fb7bf4812519a77107c9d66a7085b3f40206caa22bc44ee541e33412bb4a9d621817130d4092807b2d39c4ccf228421e59d56f5f6e1083c51d0b40e22609c4f6815ed52847c2b2e5d588d29e1a5fb45c3963e28b759744d36fb8dea0340128fab3f21fc6ddd3c24085dc970bd184111f7b5c61183124f532114bb8193ba235a6217e1548aeb2fc01298da22b61da423298acd70f2c4268b9da4ff07db69f50f575948d62c133a32c4682c97edd79628fdc897d12b841a667f1a98177df26da20826d8c8829ac432a254002caf43664027ff217f47d8e9b661442660a68711f381f6367f712c3cab94e38630fb334ff6dc1222441e0bc7eba72be6f5276968cb9bbc118b3672fce7c7e2d92103c3266d2145687e89b8452cf079ac31274796d53a6ed07703e6f3e9e7226e3df42a324c6fdb93f0773555a862745214695ff1b704580d5f8fa85398c2586ba2d3e49184d53c061b8db37f37b1dfebc6afae93fd0c9f9cf51f47e63d19be64b6586399dc6cc21016e896646e51352eff72fe85a07a822f1d95d683e5f4b77f431334895fd25910dd1f00a23226c29f1ceac0867acf2dad592b99e1f0effdc99c4e6885b3aa19370f663fc5c6bcfdc34f86cffc131407fb2892483f549bbf5ae50bf247010ea7285beb4aacc12122fa1f162a7fbefba46e5e6c1c7f48685e8712974ebf0b45ed6001b2f7887d7ed63a4d724f71a930f71c188944919d6fbe1410c7f9248b359237b1835be38855de48cde1ec00d759515139bbe7254d94ffecdaf16e220cae4953cbc936e1e27d3a6cc7d01dddf16c370502d91d505f3999c47761bac2a048ec3b1e337a4f0ca23258dcbd6c5f1e07f960d3d63bd83f0a81a676520bd98c12483fd9dc9147a46b197dea9b1d5f344e96cf759c413ea0ed9a8de1249ba1bb666a05fcf5c47fea2099806cc927d247ee26dad6f911c89d32b7c378004c408fb8c71df39ace0dae31a4eb64249662efef05286be2a12edb165815dbd08f0bbc33635e5f457409d6d8527b51fa23697a79a9b49ed30aeda4a5b8513a096d93bc597fc821b5907cea24a9a3bb77670a88644ecb58da3b032dfb614cc7f192e914806bea1fa68ef1fc40a852f916cb01613b71790fb6adf10733a10fb104ef9567426c02d56253fb7bde590db0f1b4741f59c0157e120318d9763ecc619394ad603c562ac7900ac25ce9f99df9a778b491b07285c678bacd56f45823fdc45aa4d8b321edde5f04412880dce8ea494bc61bd7fc457c8681282595ead57b882ff75da6b67b8ab570c73384bf358ce63318c186472a2b871d28404a43dd1f97402d254dc7b99e666c61ea8ff5063d0f95412afeb8a19f372cfda100f87855500a0f227970298b64b0b201860817f8e11827b8abf2bd3d100f131be0a1363a325c72b9b9603af68dc8841c3deabf77b8f7627d4ccce1ef773b743a1fdb8b2539764d2b8a7145dbba61485b91f029295d90e5142d79a28934e2f09164d9f6e597057242634e036f69b9258b5b88950a43ac16a8b3cb42309f350224c99ba7e0e4719014fac4ca052bce9176e61628e8e0b2d1e4ec0c4cca28ecb96808b35b29c1337ac6bb8c5f4fc88073072ed5b0b20cf9a30895f46782cd890e8d47e8c436de4ae300fdf34f12e206355d9cc964b094c3975049d94a668b45cefc7b31a379cd936cac236ab7ccc74a9c4ff41a01f89cc91b19dbc6c0372251fdcc66ebab00b16196f294fc8ab06c28f1a1c64a4899201005d605e5e818186fce0689c649ebfea55e493a5e6d140e5457698f1b2191b5306ca750fe8774b83cd590854e1f2d3e8a6ec72ad178d62ef5130144af814130041335002f20e83cf5797cfea68b0e6dde3771a0cd229e22e88bd1b6293c44416b18aabb31a830e43c5f9d0233a1089050b0059728fbdf18106480c0b7876fa0b4bb86930a32e9c4443404871b84d519b6422a042e66bc1edb0a1adf12ccc53dc385bad8e3299a64f606e774f20daf15c6b3c26f7d3f61ceeec185970fec19bf10d9abcf8d2d266db4f8148794cde043ecb90dd80d68fc936e8dd8e53f15665e7da34d447104f6a16f21a847f3bd53ab9229cd34efbfc3bfcdd09527cf52a8287f15b203fa5a1fe65a4ef3a97b714668b33a047079bca220fc8f25090ea8fc1a70bf95ff402ce4a4f926c2ce277d23b016bb74bb95dd4b8672436aab53f6c6af152b0ab750e8adda4a79e956c5f8ff73c8d3bebc22addcf7a60ebd0f262580c49e9247219a1926d5bc971bfe31c4162a2d2271f4355d4bd37737258d31c9de33cf38579196d2b3dd10f0e22bc18f3e2471283bd6a8e4f02621c4404d6109e7f0e3cb66a1e15a0f601b3596b3f39695bc6523752bf4369619ebefaf29ddf9732a72e3aaac8d78d381dc5aef33f767e70a60aebe21e4422666b5b4a17d5455c445939693d64cda33da4b1ab015e0619b6e7fc00afc47102a52ffb59a796f6b555187aa9ba13bfe063d4698f599f2e62be8b9332a416810bcee9cfbde06c4a7938294b1fe806d40c6c0ad23ff0abf328633c8fd4fad703342b69e2d70e0fed4e59c273f6b1946cedcd5e598a7ea5d4a6d652d274d0fb6c093f8896ee255b7ea7c9a2df4bd1a709961354612e4b85a0b4e5ae78a245ef3d0ae0d06b79436ff93d7a00a585d0fbf70582a97d027e02255f7db06bab2221bb1b1c126af28a88d3f1f0f77391578f42b32f16f9fe63603a0024845695612ceb79f822d3880f201d6837a72a13880826ee224b60b376b3060649d59dbd8458996549e5bd91dd691f879d463fc97e7ee8d21db927fc188738fc75eb040ee4c6c1f7c70175b4c19efe0a204609444036512897b74c544297851e994e9b7533fb50d4a93be2d3150e93fd1f54578a3eb18d0744892ddf2432fbe0540be74e65e34164694b1a30c2d76ce1f7f981cc0b8d8d609c1026c50e902ee2287f0a86bf733d171c1b21921edbc537d02102f34e79e90e4deae520f1e17269c44c8824cf0fa2c0f5e7af8c2d00c55e8c38c542b1682194a10052df170c8e7e783e99439bf7522140f3150e6c63d652ed0122ae1c0bfc90556cb347d8d86bd676831f827112964446005f09fec6f00ae79270e908f488bd130d043d8627a1d85695547e15a66b4cc3224efb9b21c2d223ff0be80a3b9919d4f387be5b2d91d4da9dee87e4b2343bc8f2fe754c3eb1f2c88f33bff87b1f2e91c51811afa7d58f405fb984ddb4eb79cc9b881b5b2b07fab73825b1f89104e3633f19a528453000142960330af4e26623535430b5d6428ad94ee6b77ff621cbba5e08070618ada410019fa319455914e7b39767729b94b2491e8996ce40869a1f32c979a3010b2a943a92dbe37c0c05f9321cb8304df205c2cfc1b26d0c5cc54601434bd5b78e8564e441b5b10eebde69621b62e4d89df510a91df8e91f9a791ee6e6a922a7001f95f6862c96d8c1d173739356fd7f29bc6076ac206885e03ecac1ab9c2d7ffa4b8707058c421af7f7178acf4b02a6a584c9684f09b3cc2868e1fd03e8ecea29abefa6a827436362800b4a7e1cea0cb8275b38f536b6e149b012b5e46caedfcdeb643970256f87bf3df3f99b978d54bd02c309f32e0e6506b5541b509503bc0cfd0d7b0e2692c492cd9b53b97536e91c60bedcc7d7390af2e6d260a32eaa6720c71e9dd001339279df5fd599a633dcdbf6b0ed52921bdbff70605eaa0de095abbbb1a08656ab11c8b78722f1074554c605830f24e12e618e5cc54325e44e747695b4c4573a89fc0353d4728704ab743e6d02814a8229630606479217c65a1b2aa09791a8effa7a9295b0df1796ea556342ab2184de6919b734465d9fb5907d44b71f1383d2ea01d38e7728953d41548c3c5785d315d14774762d60daf3dcace6ab9716a3dd04f5386f20d2d3ae2489240a6f8003af8d2898882f6de406c196fe3cca138bce9b8f02dd17aae3909ac6f23909e09f1519bd743d94d681effc68d4e2e0f258eee77fbf7b24ef7308f6a30f178658c23d234537961552acc5036dfa54d1c82b77657b07f4f8c1dcfa040bb36bb5be3081c5efc9aa3760f775e6ed177599bd04f39fe8bd2c5104474d3f856b32660b834710d5116058312c4dea487d95fdc4f2f82e3ff0827f2d3dd209cbbba15f3c9dcaf68b2d8a6526ff2736749af4a697239762eb441d71d24d3694c41b042203e0c5ea5069349e2ce407a5e3b6aa215360a73786b0028bbef7820196a2f7bee49a28c539f5e881b37aaeeec2339d453d673aced31342cab53479f07d8086b0f6728726a9755e3c7f08cbd15345b458a76d1b1a6d13a55c225990ad715f33d6ac19cfab6c6f7fb2f0e885858cd43224b82b29dc1c04579ae858e03370faf178bcb23e6c47367e330538681a873379f7ac8fcfdcae0671ad38450288de9e27908a5684db426bb1b1a24fe543dcc50b7d68bfe7f0539fd6b4e565bb38a452fb813a3784172084f2bf550942ed7fe689026f0d5abec922c75051da872632966ea60886116568ce3ec7c91f54fb0e013665ae975b38b1aad82b20653406b0a9ad4c9cd922e7f8b0a767c7e0d0e6a3d939c589288fb4480efe0010bfecb05fd8f46b1a8895336951b3c903996d3702ba98f2322b30199d18a6ffcd7c35e574539745f218ffde2d0beb5f7bff8af7461ea4ac90cdcfca7fda3d6a832ba35854c0694e93ff743852521369adcaaac10ddee593912f5b80b91b55bbcca6c9ce2df588264dd97e2e2b4d2de8dbc625a54291b96f952878f22330bb36028ce2c236939228fb30026886ee7342bc85b1fc25fd2027734f6086189b8b25105393d4c383f8446629b7003130e9e1e447d83b64750b0746208f33080e511de0a35d217c9c9783474092208e6c9507ecb158303f2c761b312b8d1644fe8e1cda38e173def43e4cfaf6487a7aa654782920ed2ca0b1ad86e54b401b70922db7461bf4a377f58a1d43ddd92e182aff70f92ca33499055086a4c1ab995d188e4132fdea7b39ad1ca089850952d7d2cea75e7fa70d5b63f3aeba51db0157d0ab43ac20fda75452cc34b3571d49797fb89bf3d48f1fc90a63fd409760f0b4c7be42b75c669bdca84dceab152d256f23bba5a139bd66182da2ea7226dc08087d054650b337add946a2b6a0d964ede6e8857adb0b0a499e801f234e1e626b491e4b2e8aed64834442e4cef87b57e83f6cf15db6e7d1c297642f2a7a4426c4d30360e42af1ac03c044195e33336e751dbcb9873d32da06bd8bdd4027d78a69ba9ca986d2ba3b400fe2c9fae2b01c17fe8886cad055f8de6317e19cdc6a2bea679b97b0dcc6362098f8b5f97ca1d7ebc32447a86d801165b1a0a08bc1f86993bf6968a74773f507b59835c0a3d5c89830e88f30f4995844e068926ecf25b7fb415e4baced38e3d310f5f26d49f73b5c3ee39698d81ee0810a723fa67413531f9ceb004115f587aab079f3c3f34f00804657b336202ce952ea43598489b3b8344fe9af766219d5244a1eb5fc7aa7c050faca33a2f299f00827775747d5ef5fea1357ee95209a8e40a0a477936f323a73c6be2803f1385c812d65c00db61117df7fdf950b7d8667d2329ed0128ffdb02c3326997601528fb0d1ede23b5ee967ebc3876d8b55cc63697fc2d24b0475bc3622bc5d3068e51131f1625c86f33bfadbeda26461a4fa9dc585a3e946fdbe8447f9856dbbc0b8024110c22ac2631df14b63c2b0517119db2eca5978bccd6e7641194c8429afd1c3366017119cff42d8a942ab6cdf81281de8060e39c7205866f6ba6776eed665ef949a8ac227d46a559cb1a272e971ca13a726949e744463f7978bc7a1defae1032ff90ecc934ac2e02d6c6554e4c5c0736ed3149e8fe5c5fcc515c50e7cde416aecc6f12987dfa3884ad4e85d7c411c23c359dbe9a1af292313cab5c056fbb12f17ecd88e285ee36026636a883a3bf106551300c3b471af86e7b8851046ffe490bf9a3473dbef85a7422cbc29faeadc42d887ced984640de55e80d85af4920e22f9f9f52991029e360535b3372b6a3565168295d653eff8750248b6cd90418525afa70808867440103d3ed23a688fc6f5fac809941f27d172eabb55cc2df4eb3c6fe534a195a8c9786d8dc88bef3e82136c6444a9cdea84af9e6a9cef69a4596277a7b487c818cc7023a417b17c58612cfea3c95bcb69d3452b0a2041a7c0d16715eccf9617a7ee75c09963ed5730a64131338c9baade4e9a0f0a06acd4b1b3750cd1cad0d81a0169a16e4b146e9e3715ed48abbc08f8f577a66e7ebcdfc2b8dbedc5df9a7ec4c688d95e054a64a927f07ceb35291ec3ad07acd0964d5e070e0495eaadad35515b8e7fed745834caf658cbfc58bc4cc7c045d9d9cc5447c0b0d1841855a62aae76d3b6e748814507d1e815d5dace650d3128d40f0b05f0e25554b99fb19426462d746ad57f300cbc24e2bca69bd870ff070ca727fdc05bddf991a92907518ac303c7d421a7e95ea280917d560c2283f26648cb0532c29c7d622fb263aab3a6cd50ba4c9b97a3f12ad65754dcc66a7a16ec25f9254a5f52cd017b9e07a6d667f0c3c0deb0de9fd3add97d0839ae59baceaa5e4a4627893464cdeeadbf3f6ff1fc2b6a19c9b17c2c1fd442e6a52219e2252fdb8d0165f0adc8bfc8c7a4fbda7ee38c04550864c72b8ad3ec4dd3079eec05784936f71474fbf9d998de2fcf9465037cbb42ad844ac271198cb019c32c9b900c594ae35ea141f696b2490ed01ce4d86cc4bb430804160bbbd0338f6b010eaa1c4616f09894906b988a09ae50016bfa118a1059c5fbd3c1111e9af262142117686e3790ba51703b50355bf4e674eb664889784119dd7cd18c0f1d5d9f22348f92f5a96542e8d1d013184ff0df325c6e304c6a955c5c1b8be89f305c91cc57c10445be306fd4795f553db00553031ce51a97fdd5620aa7132779982d45db2a5f07c96a0e669538c0179adc32fb3f771f57fe0b9beec19754ff63bc03288dbcea998013ccc9469979915334e7bb93cefc3808d833380a5cfe44a29825808680980fd08a81e2a495ec5492a35af4f61c45bc969a58c6bbb3388c29d747ae06c1b76f5352bf791662b381f8b82d16cce8395ebe6f9bfc16f98b916f860f4ccfa53f6075124f072ce50ff3649ab093537900b9dee1a8ca5de4bf89e63aa1ece4b239fedaa6a32b63df81683de9a13f2222cbab3f7e8748732e662d1249b22172f691bbba4d70ede3d6a8680d61712fd7028b221a8df2fcc4f0378b8e45cd156d48648b48a2cff0caad5a6e6adb921d02669d27f2f7efcb2353b91d5b40e16467f6d6dafbb705b1ecb76e68b700cb16b912cee2c71717c9e371336c071d22875251b5d10888ed789d0c9e6c97b79319a4dda5665009f88d92cc4aeca0805279a0479c2ac1780b0a2c7cd4d8494808c9999339572a03fa76f2f3d2d3dfc3d030dbac475aefac626a184030a6bd922c55c27e495c23edd46ce63e4191b9f19ebe7a0864251da008e221010e55c809af6a9ec69b961c1c4168563c0cf030319edbddbf1a7252ab7f31930451bcd444268b69ec8495b57a281eb4f954dadc17e4e1fc2eb53bd1e52aa5467e458099a7c06abf50d4c21fa3a71da0f703999d6f9e8b05be49835069661c688becae410efc181d4b9955dac924766dac6a1e835b0757d38539377f4b6692dcaf105351ee7d830c35730c50c3e5c673ac60ed15b9fa1f8a187c1743b26e26692808de7990066b16adceec2da24b23ebd1c9cc9b67b4e533f1390dd71855942626610f57c627a70e9a914d698de127639eb72e4eed0f733ade51de008a9869d3afa922a3422f332af3ce1e9181bf3715088af170df0d3a943953c5ab13051f0a05693a4abe2ca992c5d7fe0deeb701d6f9472d376a28f1c465b3ce630e05d8de65c3469f58abd0f45b06ee893b86bad0082db2121ba523a497dc298b45926f3ad39de6fe6e8c229220de79cd99f68c4894032f296414242575572a5cd63fc94cc638ac2d3de69b1891fb2fc4a122c22dbd75f87cccdee73113bfe707f769a96bbf546a7ba3a7334b49bf2cd62448ddf1fa784c95f9ab7a08a920137d3773a5714748af86868cba62effbbd09fbf3f2df43e30e32566dc95d67512dc93c2e3f80a2cbd01df275291d63bd61b30fe8c6f2e8d57dbf3372a06f1cb8263ada2ae83f1a07e7edc05d0be309f6201eb884b28e4f6a9f3555bcac7f1ae9f1d3147f898ad52278c083f7d1b125326a7e682756d1024adbee11d2054af48f5a65af98192884ffd6d8ac1eb951da0e8631f071056dd07e4cecb4b524bec1383a528d581ff85cad13b095eee990e8b2950d5d51812a36eec0695af022d3a0f6730b204628548b98881c8de66dcd57282543e4d73626a23c188002b6adceddf9502c755d2c6d1c39b8725e56be81d50cd7f249eab388d516e78b677b8580c8d4313cf3feff19e5c364a4a28e9198f34e97c860f85d5a80180fea4aec152245721cdea51cf6459b281e5944a19d7a5e1834ba46a6ac4e41d25cb3228464c20e5280a74407b39448a602cbcd2e1c5d07355a2d609b1a74b5d6c87b516efd4c4aa4b6125d3ecaac3d392e365f8b8b7bd30adcbcb287f196bda63d79c008a20eb59328810d5a078948050339152415341eac0697d8b5c97c668758386c6dac526e614697399716a31f1aa2bb4d7e6743ca000ce2816ba7d9e6556a94be41c6a7d17746bac66a81ee7fbdcf8f34fc43a11fd3026d4ad7906d75a60da3f71cbecc7db2e1abafdd707339371681f90117d8081cca425342aa0e5e2da344d02e69a954236d8888771e4c9aaf602fa67d25283c862513b363c0dc65b4c81e42c1066a4fbfc032f163ca84c4c7b46b77359dd8193c40ad04c903fdc1ce6cba683fbc19f088c1ce881f3d99441e83a2e4c086e4c24a40b641af4404fbea8328238b80fe899814a67bff16bfedb79dd9b6f30c17adea96059d8214e502ba823ac341437d10423185b86051ea8ce48bca7ba3ce4383fb08e8495d65c2ed7def9a8b1525cb9ef7e835c1d20250235922b34d14fd07e049ea7ec149b6348223a6152254065767b49e873225cbbf4989a5ab7eb4fd8f7dd0c37a86acce6831aae60e4cae796d9f82e304522c88f5d62064a2c58712401a94969eb19b6f770aa3b89ce9008999d1d7511800370d8f3d56ec8c4d7f188cba6b57ded97d98d04ec7ef217859feb61e3b9b0838a9d9be30e5c23085732317d4f79b16d309750697f286e328b618da1d482e33d3a61efa1cd030482f3a00a877ccd2e916e83a53f8f89cd8d93a1d73bcd59975863d8586d95aa952a0403a4398dbd69365dcb5cd8c03af4690c051143fcde22db1f82cffc2f7dafe460efeed4f68bc745dfebb2c098315787836ddaa4b468f6971b02800ec30ca41349dba1e01779d502dc79017b07003a63f0f1eb0bcacc6f1661fa693811cd29b68143f600954a265dca88d96166d3f47ffab29cde1ffc583a69beae25b9068444c0a66d3fdd3f10d129b9c20ecee7457e379a4f717b2e4d39cebb78f15a071cc7ccf57802bcf3d67247941373e7b064f9a7483bd590a951bea7c577329afc2cdebd36c2ca2a2c9627594dc7223ccc651d04eb24333aab582e0d158f1ad5c28e47f0865ab885e4784561ed541b920e55a1ac7b74decfda4098a28aaf80e62a23ff1785b99a3d8ef84046f8d78735fa22f4176abef54c563c4c9ead170f04f0fafdf0f4544bf2b7dc7761bfa0be9203341affd49f6f9054c4e80e65451a91ed5bf5d3f6137e42ec758ba03071ce6daaa80124eb2ad4ef91f0b01dea9630bd3060341ebd8d341e8e0950a670b41419458b9eb4bba926231e465838f9e38a7171cb5d0f7ce9b438c94ff78189cfb27e39f7ddafd99a1483abb9b8df1d95267fd79db0fe0249f16f09fc1f69b69e7de6d1afa74c17c344b936687c7ee2cf4d9dfd19889eb593cb62cd3e8b23ebf2d40337e6647514a8b7db3c34035e0631ccbf6e9882bfb540ec65df5b85ffcabb45ae47f9a097120953602b4c0da8b79cf384c0c1cbc866f9e28b56cfbe90db36be3c2bf606fd26c65d5b2e85db92d645c596272b5c98e0dfbb0cd7a918180b8ec8a6918da55c352840c32589b8e9c7a4e32b375930aab563a3a05d90eeb1432f4b6532bcde6aa2dd2840570b300e876dba4480d03ebc12e1d51b771993ecdb03ad43ec37a3ec0f0c177b0c6009809121161d099addfda021c8d9ce8cf33969d7f7876e574273febf58f7a20c265b0887a85325bafda432f42c8e9286a3030872b1e1d55bc58b39ee4d7ec539112fc370c2335606009f64068066934f5694e09c5e7fae064bf9100536a66c52fc73f03b19d244ec75c59f829459380786c9f9cfb24341c11ec97d5f0cfd4d493c8375af2253a55091b81bbbef89f031920dd64c2c58661d98d2db753828cc1485aa808809cbb73a7ce93a350e653f871e3e009ab3b19f27cf5ef054d358b8f73224543142ca99b6038689d9ff7bf577c47501676bf488b27aab85400b6ce2617c485a1fc1bf97b71f56ceaf82e30b2e8d3321f52a713b3e7bb04624e4acca13dd7f81cd511e2218b712f79acd341916278043c0a5e19ace03dc8c60558e05872534832cdb7cfe19fb99776890644b924e164616daee2cdb154c6aab596ac23ad881ad366664657c13499369f3940dccc33f01e34657d3f1661133cddda8c38f9d349a8164cd2567e47446cdd2bee87e2b89b0036c8798dda82a81f2e4907b3d0d05e254d54ee58d08517fb63e870065a5dee1c88e6374f843a94f693a8ba82a7a9ce3435111398118c4612e76b10212ebefc605fb1733b26b22066e586c9e8f2332eaf3832d6c827978cdbe32d8655bd0a933ca5958ced1743ae40825d4b2e78962e56f5e1d72a70a7d9c0a92a2f994c2cd074e52df07923f01edf7ea4e9c57a8ca1a401eef0710fe89cb0798cdea9abd2561e132e7ee92acff969c15cc1c7ccf76a2820a51a44b28b23f794791ee295b318fd96d887fa2f08895182e3c11e7cb7d151196b2c5bed898051c97255d055dd79f00d8e11ab708924e895f1dc6c135096063693e54add5dc8b0f7b55e6d881b6b793e8e0283deb543c4c580c558a87dc0aa399d8770e3044175bbb772cda50789f9dd5ef2ace791ce7f80d4c1e70a66468a5838221d3571529b5ba25b96f24473a7e11d7409d03434f4c32c17ffdfaa75d64b38214aa67530c51c835b90f63608a24fe62139ff37c5d9f2d3412e32f172634c163af2c42aee1a8cd513a47cc3b369a9a7cacd0e34e56fb48f254c80a8d55c880bb99984276df94d6900ad29b5d7f85efe519d0e92c6b401bdd1160ac80c208d578b359f613a784e65136ec158331a6ab7c508b82f26c9dd441f82422b188b187dea4373f90acda90b466653303d1c87c815922d8085e3dc98bacfe5b744825cf656ca6d61be5bc3601721e407276da9a9115b6515e17717645f65cc5594ae28b27ed0da1300ab5aa67e12c455cea119c7a2b63f9698b465fd14c8c45275efb91022323ba51007427217533bc1072ec0ebeea59343c7c06467d35790537b2a0d67aeb56be0bb117f92722bfb76ba08695cadd6b41088f6f3121d0664dd4f620a9222c7c341cdb25e0a6ebde8bc406ebc3465afed1b881d18183fbd1df437c060bdbbb28197cb8cc0a451aa38587e7d5b0eaa1a9917233470b71568edde460c313be555d1fad0379f67a1f9d7e5cc18508dfd70ac3204ad20d041da63bee0b610f02ac539527eff0017493675da3e3e2a6a288b3626234bd0b78ceec1027d1b154622f6420cb8dee7d7089778d817da75efba5feb29d25491011cb45ef21e63fca4ec74806a3958b6ba54747ee57bc3876629ae00f2527b503e04e5da431713654e3b3b5a207d5126f12ba0c1af940df61234a2679296307eb0118e3c457f566eb7a27d2f0814ef89d0a88ac3ff600215bd83b3cdc5ab340e5ea6e820adc8036d6586523ff68e60897098a31b062e388db82a9a4d762e93c4a955b266a4e96101e2e51cd7c00bb9f87d7a117ff2d8459dc3d65ea26a24cabaf15e62dd97755f59221247d3cf6d9bab494de9a0577a2f95b8ba8e9fa88caf26012b7ad1b1c29a6baf7930b80aa169eec13848c48dca6b27ff2bccb5a65d85d8f731abf680c73b4cea6c0aef784d717560bdf99cca7c25032992d319f5121e51f54754868aa7d0607c96cb4789d88b78ef4777c3f14e2892aa94b4d507d799bb1e200e57de6f92e0e625be2fcd12bc944363b3fce062479061a981d488e28428add69bdc53291eb906291062dad094512a6396da1d724c8438aa7ab5b1ebb8cf9ed6a730b3d7b579812fcd7ca0926f745c49c4443f3347b66f0bab58239e56ac2a90dd36dc2be8159dc0646e6298895e4509586b9ee95fe5dc2454ac0b0e877f90a8c1516ca25e152e5b4c2bf6be600058c331a876be4eef3b1b38553858043aa7d1904698b82c792c20c69f98adc1b3c46c81a65fb3795937654c60fb850b3eea218f1b959b7d4e8deeaab6919e93e06cf734349ff277109b799516560bc020fb4330f4adfa7d7419f780ca7666c11df11b466d4ca7f5985fd26a652f198114e05ec5091f29667e8c8d8557468586780d8992e47154f83e5a633420b4adad36b6394a398e751e706bf822d37713cd4a7a097da29f36a84291063a08c059e14f5034b3e2c52fd512546ab49e9494d6dfa6d3ef528ff22981c086419eedc6eb59c7d65fedaf6578bd1e81d01796ac058a848ff74c0512387b15b2c6a3a091e3d7f1046a4efcfed68751c9fc5f77570b3f00ec0ff85413bbe48fd18cf7c2361fec37fce66d59b0fc9751a9948cb7a29426200ea0b3fbe92436ef16be40627716cf1c93cbdebca11fc92dc97b38f11d29bd010ec3e66584ee91d12ed98b367e9d4696f260566190709e8f911d618ef47b8ce86cbf88f90f55073f41178d07463a57505c6550ec7bb4ea521bfc5628456f8e896dfdcd9ad2ae80f70c84aef16e59b4509268a740406e6280ff7a4ea52caa0a3b3e4c2398ef1482cf43c6bc878cb60ea962227848d67c89ed2709e1933a50adf5d6ffaba6aeafa493a47310916f3c257b67b5100fb4c7f1c2114a4e26c2592ad329377e0aa84ff61e1120cdf876c3b40420030d89591b63c27432353cc587da5be7d0ee315652e2ba7b6eebe6cb772d6c130cf66321e954b2662c9cbd01bd01d877e7bc64250668080a2012e78f6748a1eabd4d76f39e3abefe87b0a3476fbaa680223e48fb76d002e31a300177ad2b1ba3ed0d1696831376540434bb84bfaf454b8e92a9f0071afada64391e013e5c16755d57b98e3d27a87429315661199ab67a5808b612f48b68359701bd400f444bd4cd5f6b0c66c556d4e6b5ce9c9df2e30d43f25fe29ec2219ff8c7935ba9dfb7bd43fca739d90634236ecf1e9718b719f76745fbce01f190149b6e081fd56e647eb177ce192ec0998199afaba9bf3146de0f898c81e5f5cdb634e1165c6d26e3e8692b11673e7f1f5a7c1d631bb27a4cda692aa4111adbe2cd4fbb73d5981aa01d6b5e53ed7d8961f9730de737e07ffeb6130b3711f48f1c8d3b62eb6b2969d868d739640be1e5addfa0b7d068847656aae7e65e899e1c359bfb921846dfeab9884c9f4a4b2c90cb53eed61394bc9cd10559038658ce9f115299519770604349b9ec9642a391a5f95d27df8f1eb472d07dd2194973799d979a9d3655b3214a692904c516451790751cf2e3fa40f3c8d9141848c1f392e462e2eb07a0d173cad1634eabd1420e937f889764bb6830bbe6e2279cdf95455174822af432e556f9644613263be267c66720537cba44aca3679e2c9f6c8943d012e3d0b21a1206c0495e340bdf0ff3aefdb59dbb4ae9e09f9c53ed185a53f27a205835c4b62cebc6da838e740196992c4453e7c6e2f142484f97ff5a63d093c43db7082440a229bf9ac3f5014e6576a2bbbca31a3dc27d9f2b38aa738571fff2d0cc5bfce27f2f22b8e1daa9f25e6f6758cbe29d4deb5d335e763fa6e98cb80e9c5bb3b8eee64fe46d4b8e1c821610ba9792bf6b5c06c8619f5914450829d893ea1543d8ea14f2d5563b6b12c6e617c0173a12ae22c012d8465864e73ae095f6869d7b66c41ec63954a30a5277c8b140c4c562cc298f8a96b474fa14464b69b1d12572a3a15a549cdec63d4bf6e411b9c68af211d1a2dbb5234bc0467b9970ae0a14caa8c568947435d56f0caf0677676b49f4caa1fdba957de9524cf00ab0cfa8bde149a1703cebda336a8588725749647ce213db5a8b54df0084bbe2cf566be1953cd84e5e80550be0e660e1c06ba1d69cce4d4c58e3a04048230c3f6905df55736c1f3fc05d5db61012eeb83b96a6ca9238597e9243e533af77ed0e80c77bedf8a4487a88119aac5747f295b3d2356f698728b98d4de598874cbb9c5763ea3842fd1c0096806c5799e740f3ebc57decfdf6e7b14d34bab9512e2164c737a947f5a0e358eb50e67fb1d6b5201a30448ebf452073fa06b023ddd37ed8128bbb235b46b068fdc962854153c5da3c8ba3e75466c142ed51e8b96483f454c6649944b1aa8463bb3e45e149a80ec56b37c8680c5d7657da188990a38cc637516ea7c8c50e08aec4e841095d1606ce1a8f3fbfcf6d2de74a86acd6790bb0b6f5ade2d870d3576d8a10b899c4c01301ae47faefede81baadbb65423302260b88883000e0bf5da4d68dcfb83222bed0ed960aee5117f787bee66ea54629b822aa6e04dc6e3c1cdf112b9d4136c75d9987be2f63fcc13a0dfa6a5f08ec00d21fb4ec6b20b081b76650835182c76a40ec43a14e104481d9e9b599fe3ff7e14653d492319df16c61243617415b3425e360ae8b75e7f23a53887f3bf5e7ab728580281fd2942ce07de12e318a4b2184e9aa73be5f75c4b76ed97c0e2d8a7e26a1a5b2610be64309f50e942e00d6699d9b9149de80413b6f8c312dd696872bdc75c937e7316610413d60fd522f5e10837672478f589c040ee043706c9baee850021791aebb77b0a851467c91dd59a5167172ad2049ae6641fdee0ad488666e996e17314b3c6dc80a0621dddb13f4e04ab83cda4bc72af1ada5187a2d2d2511a93d05733562f71c4dcc2a0813c06419ccfbc1c8057dc1528d5300cb22d7cf92a336102d342f119f31fe44a1ab29c1593b7cedc161016ad364851809a1ade5e60e0474cdb9f6f21590d6543aae12571d5539cc0b27dae4198c9099686f0f822410a3644cfdbc5f6d7ca8dfd1700476b506358fe7f7d2ff8d106f0b4589a49c26d8d458a383c6c067b4ed9947901b7e10f1ee0c8876167d26fcb937ade8f225862220141ab589b6f5a3fc987f2c280f2e93c073307ffbf2311498b776d7a40f3d5bdf42b07a69912c4ff0881207ec074962287481aca843f065f8739d50e0063598af2e9fcea8abd662adf2801a93eeb6cc85c1ced84add8ee8b1ed96039d5d7a8dd30a08e1db0a680560771117c7c23469fe0c4ebcd15f8de582c70f09bdad94391ccf10455293562ef393624c9b43538d75364651839fc3a59522a36534a8703192a048793db3ad874940110bc91b5ca2faf51cca268c6213feebb00f6048e66fae50838c1cc63c15fc6545664100cdcfad679aae57d4e9af517f816e60fdbe366ed06397b5ffb5afb174c8e5b04b52efcc475a1e5a45142957acb5412bcdf832b6243db6737104ab7c95c54d85785ea527d47f23dbbd997267a40176c956852f2995580699d3fc4476784582b84d66a7d888d04cffef3bc4c91c3ea8ead212dfd587c786913b2cb573df7835cc2dedf9ce3000931aea46a897129cf6632b7cd0d55e3d01d6b6f97e3e1371d07e2c07faf8be92f65e2ab2948ec6abb9ad3c38d066c66743d430ffc8d985e6704dd255a856bb62042920eb682b84dc4fc83bd91292df88a2c017b9d5e4fc89b55396051e516c95b5246ecab8e7bc85319e9bf7a1ce48da84c11c10b2d4e6c48b9d04ddab3463f4bfa9d6818fb6fbba4efe8302cce1179fb1d3136ca67d0a5d416dd89245006c83a155a94da50361fc9badd827f7c4d7604c663eeb09bb3883b105bcdbe3b3461e577e7cf7483e87495c6a1088b7274a9a90118d701c39b903b81e517e96821b1ce5baa2fd2a7d2ea2d99e6cfd3d8eaf8cc57d94b8c6782001174e4d101f8dc39fba4ebc4466deed8ee80fd934d11310895bb2d536d4df601df54124cea8916733733c7e1253cb49e2866e23bf9269ecd15e1b5ce65983bdbdc964fd387d3cb046f82088cb4c34d858fa97bb1490423e716bc47ee6b831c56c494aca738b353ebfac02b78065e176799e017af437f4700f6704892df51832e8e0eb6e10e450bf4cd2261d9fcff262e27c384228b9a472003a6abe068f5bf35898a3142a62f59e4a7c8d35a215281a05447d685d6d18853477b242f97b51f8ba85a0ea952a7739bdab8a405cd3c43d48293f4c47da17a51a9725224fdbd7990ec3cb7f562d780f51e9d048155ac14819acd189944359822dcf4ec269a1af86a8c159b169f44da0be19d03b102594b25aff61bd2f3db915a3087b4b1f7b57dc79c8d0e2ef82372479f1f15ba8f1ef78de1f58af577bc07449a09ea61260d063784150694160011350c628d7ac2729cff844a475510bc965803dc76a3564def6fad8004edb23d010c2f048af54a9f5720cc61261dc0c34401712ea829ecf434e87098fd412d4b5d4f87359ec12da1e4c87e4d06d7379ff3314baa1d5eb22bbd03f1bb905b7fbb516700ddcdd305e1abc4eb9ffe97bd181f8bf9c96f9210b23721726f2965922985093409d80963d46e8ed3cecf329a34a526d09c2a7fbff2772920306cfbda880bc460ac3aef6423555a2b25e5a4bdd70b7b59a79a92b24e656db55254b3ac74a96987cfc4f2a2490ebe37f6ce8e0e24bb5b656713854c0a3c04e154a29494900fdc4d0246a67da8f3803ab5934e22dcc09e9bf62cc0b1a98e7ed48ec50b27fdc351474710a65caaeaf6b67f7ad26aaa3ded6fe3538e1af96b35d93e1c9f486ae44f4fb5f14a7d794bf27b173a3832ed681b28c1658321a1bd0b9a441bcbcafc5e8c732c4660ba92a2720103c82bd785cb995d47ff499c0bcaf224ced500e78fbabf616e85337f9aa4e162f2a700585ed85366071957623b0eb0c10af2a604355e70ec5a2c070d377cdd1862a4cb189a17de0bef85f7c27be195292bda924106b65f72db38af3f2d51eaa44bd1d3abbd1782a85c7befeb7b95acfdf5fbbdb7633fc1d3fb25af8d1d8ea5d2116d2cc9d94562b38db9dc98a3a5f94cf38f94ee1da2f4a4d293b39ff5b4ef8974fe9d7f6dff7d14fd77ec6f2ca328fd17d40a800baeffed39283d6957e8eeee6eb2ef3daf7e783bf05ebc4fc52f0c672d01bcdf45e551ae33c5df570bd6e099b18f2f68bef7defbde7ff6efbd9f0d6fad5cfdba30d8fb45cdad84a456fff9d70b9ed3917a4d5e9341f7a4b6614b4a4aaa8413228cb1995b28f409a56850a150d663b4e73d21fbd3111fb4804b17f9451dabafc9f37b8eb7498b8eed40deffc85fc93f32b5ba83a067692008de0b82e0f5de7a621deff751d0dd2f18d240376aef82230541da7f34dadf0741100441da074ef0d1e6ad5ea536f0671fa80673b0d2c48ee49ee754ff83f285cdd45d741a750eb0d5bfba3beed224ec4a4f4e3ead220142ce1cb9803102097e2fc63e36dd40099e73ce39e79c73ce39737da52a0db4fbc97edc9fd3c12341c949b2a311463df00e5ce6a87f7d5adfbf7ea5be41f5a75f45271f751e7cdf29fef317c1ccf58d549d90e5fe91e4acb5b6600219a54c26ba76181730585c6fafd3135938399f528a646bea8c53a6b12f4ad25e3f8f9090ab98095856936c8a4f2e3b4e9e5b6233684cb1a9597595e757ef332224c92ee6c3188104b0d650cc3f1cd4fa796d737be00fc212352283f18d1da059e741fff7df584665a67cc28a4b4154608c408289239ab474a4e402c608240c79353d45353d4535510284786ebfbfc08fd116a67d85fb67514765af33f1a298cf34ff48895a01bb683a8833620197dd2574b22f5083470f04ede4676d0b5c26f224dddd74085871d80f91b5a3ae0cc6f395e63f49d96c40c81f3a7fc6ccdc58b3f3223ea2c871618a0f553ebc47809fd0e9be679d5e5ca7d9779e811e5e508669b33ea58dfdfd4c74f27ee6ae71e0cd27e7e3f9b9ea046c81c3e1b26d81db9203045b8593d3ff8f6e069d957cc4cd132a726e7089c3384f6ada8da37f9ffe3512827d5cd201979f673dba209b5cbef07c9dfeec514c2ef73e312abb372e51479a3fbfa88e48683f9fe8be517ad2edcf8fda5d9a34236a46d4ae46ed3a04efbf6ff2e83f35d5b7e31375ef9af4e7ad50164aabc97e7da8ef2bf08d15b0638fba395f69fecf27a7bbc75066c732eafbb67f6d38331887d34438a47a8e8e267672760ba28c6dc034a9c81bcb5c79946723f9c65c0e4e2ecac60d39bcb9f3e3060b7e7623bcac900299178aac50645703052f1ee20041438b9332387091711544179c1a39273b8c0bd8456058e45fb9bf3c2cdbf7b0a0b672432dc91f3841b67d7b73669bad1900037e13269008d124a1b1ce9e395ce6708f41e17f9fe7cd6833daccf3c612fc420c1484eb5c6f62078eb2f72038b363378936d9be7777db6c36dbd84d02ac356df65f078eb2d3f7f67b4ffcbc9f9ed8e2e8836c58008d5509412c5193674b140b2af050c52486322f3bbbf94bf3996eed30c86d5140fbb806fdda003dd81f773fcddfd34951d01edbebc0ff8eed7da5dff42d9d23ee628a9bc2892006b12d2efc80035799dd37f961c2921957316aece63f99060f07fe5674aa79e089333fc125cef37e707fb677af1481e1ce92e3052d5d721013e37201a3c5dcada850f4eb0a0b55df8ebdebc7f397dc9570eec9be38f764999c3b9dd36b17efbbdbabb74159fbdbedbd076f229357fbdb97ed557ba79bcd16dec01bed761b4bdb7b0fda44a613b55feaec75cfdab8c434d9d066d67efbd3d1b3e0cf1af8d2c44b0c19a680f8b39b397c99523646881e2929ece62f3195dd1861d806762b5c1e5591082c5fd0d2dfc9df3e489f8aef241d4b184a44b0f0fccee5d1d10b9abfa6f81e8471338500a562bf8b9dbf9b5fd0fcbd273af953fb818f2d1239f98d4f3df29d9cf68e456e34690799c19f0110c3cb499d347970bcd9cd326230bc61f2270d0d6776f38f94bc395dfc537cbf120b46948a748fba9c933347b5f0a30a4b9530347186ecd6784133439c13ea44996137ffe793f37d7a11241e66c4382933854b46aec79b2a345370f4802507eca22d44448e54defbadcbbdd3d1b1835c38464ed5181a3c72be6408b26b217b7650c979122307995dfff7937e4483395eabb57fbfb7a29337ea98ba9cd9016d5fd8fa5ead14280e0c375d58e64cd9a06348940935a02025862973dcecb09b8f732666f734e3af54e675bdd9df3f527ad2d69effbd7ff95fbbd93eb43d78b3fdcdf67da3b53351f7fd3776cd4149949eac1d52204010689007ff0cec1a00a0e029020d2ec92c620c9373b6d31ef789a57defab1d4100c5f26692090050b0aedfabb9b16552e1894149f0b77867a50366e0dd60bbf7921afc5d543852981379dfcf3fa25f5f153f9082e60a364dea0fa4a0d9c7107c9544d947a2114800818515a3818c32cce0ec3f71f61d7ed4ee3e697dff048efd81ce83eb341b5b2c5de4d2fb17f5da9bbb8602680e1e1a4c8220e28349565612941dae8ac8f8da81ce6e3e9e5f290f9e0678bcee6a1b803b4c16aa6cdb837e4f0f9ed9fe7cf0bbdffdefeb5fead96fd1da5f720f6771de1fd1a456d3831b2c19f4bc10a5c62eca853c41aab4f1c2c30e333bfff727fd6bfd01a4944e143dc5bcd8f11226d6e34ec669cd34c083bd9f3d48c31a0adacfde031acb9b81beffab60840abefe2a1035504105ff3d58c1d7fd55f0b5778fc00010722b5d5903205ec4ff88a7e0e78314889d2bd8e3020800d1cf01fca479005f8e4f248a4fc18f1067d158de5cf4e383ee638bcc14313233b690293346c6cc569fc9eaee0edb817ac4d72346f484128625b6e58e0dac863636b12d6473c4d7f822c1ddfd283c370e6db510240940c3809c016d61f04623662346185d72c4d713c86d18dc6ae4cfaaffbef6200662e72c23186440000c32c800830c08808191f6ca18608001061890638a9a7f4442e293920271f811e0c9ee6e0c9e1ccbfb638909f0f5f7b5c6c18701f9634f5ea07365cf930c38f1e1071731291b65358538b62cdc21c58255d90a6b7566696618971342ab5921d7b55656be2c24667fd5432ec94f09a84b5173ffbcd505d0ae37ed0fb3f4d53e5793318b2631697f7ff620a5d1dcfb7c73b94cfb4b1bcbef6f757a73d7a84d7c6a34bf261e8533b75734d725ca997356a4d93dd34a6d8d8e4853f0f74bbea44bd06aad87fb3c5babcd222db93514223e50a5a474e417dfcfbce45fcd0311f91bcb112c5126204d09d28a2b274d762ebf9c5d042791122bae923489ece22ca9f13c01d345ecc796345a762ede9cb4e20a471bf502565cf56803747691967bca60adb5f6a8d64a2bad94524a3d5a755e30be7d8f25fdea649de14539f0660fd2ae928ba513b3fb6dd0267c832eecb459c93a0a98edbc404e21da0cfaec39a7b5f968479ba3ea9c4e28501671b1bb67c1b3a36cb1baf2beaa63870a333ab63b7e633e78b120c3d50c292cd9b9192841765842e7cd9ceb0214ef8f082b3a748b8e36b399971729e11ceea1276c8e4e34cc91114abb67487f07a842850a470a5578a10a47f2a6b466fd2cba4487a4ed7b891a9d602a6fbdb39ae28e2fbc7ad061b237d65a93e0646b000fa63f3fd3d126e690e0503ca246fea0386b484822787e49e672f7cedcfa202acadda9757c305cb6578ee676a0113d995c8ecc96f1668f2f4854c6149f1e5eb93cc24dc24ecf7bfb1f5cab06fcaa450196738efdf78a56d4655c07f583a6309137e62e2ed707efdbfe9907fdb3bf6f7f66ab945a43d0fb19ede97bb4500cc5ceb4d9ecad27ce3ea481e2cc60ede76ce679f6bfb7b4265a5147bd700327eb074de1ab44556959afd899ceea9766cffba69fe77d4f61649bed7f9f27d69a07f3cf9f3f7f3eb17a62cde0ac8130356bb54ea521d30b0a087e44442698883668affeea2edfad618fae30d3cfc33570d1d73b7e150c5b7bcb4a2d9193b48b9ca454890acf5f521f9c8d495a282e81408d2a4d1a811a6961ff599123cd25f0c35aeb87e21235aabda397563ba0a8a30fd29f7def42b1774f8e44bfd6fa56543291a346f5674a1c80807ead55ca0f4869c3a046f4cbefbe0aa2815b38495fc906f65abd2d1ce91b698ba3b18500f860fbdf3b7daf81ab9b7d65d61295514a6d3fa9912d9f7dd4664f5492f2d049daf9d380234dfb33478af4fdcbd0eb5b03d6afbaefefd73ce957acfb462b20579c57533887735289caef8c76ff1beb7b23640d88e064103c6b03b9b2514eabeca509109ae0f965486700bbc8baedf61a4184b9c1ac3f956ac0657b85de2fe0f6e9638b4e3fc13496e983c0230f0dd3810866994eb5c1556acc69c5e0c782f6a4944fa6f4f32ca65f568cca732ce99f6c47720604eca2036c711366248946466eb0a46287559e385a666447965c2a4d3ca7bd49b4949ea44a4f82938aa36e24a2a3083c888ad29334478471f7da4ac5fa019abdaf4f94fbe327bf98997ecdd14920b8c1abca0c79e4ec5064375fa9933acf8e223ba4587da501db610129fd99f773fe7d6f7c226f0566ff8d4f4f8d1ca421f42e67a405ef6e8b99a777d8919ce8efbaf641b3c974bc4ee63c8986a574628cea8093cba2ecb52d2b137279a4836c563a4319b27fd339f4de6f7cfa9e36e25a138d365e6a44093086e709a8b27d9ae8fd4cfcf234cdfea33f7baf35d1de1b9f3e478de81b69c1fe7537137b67c516334ffd6fecb9f339bdbe97eb18826f77e45f39cceece4eb323cd8bd61523372dd6d745933e479a99d665ab327d0f75c01604812d55f61ea4a10541e0d2626531cfc29ac47c5a96c5faa0d7645ae66c55ee9962b6ad725a17a575dd3ce20317b0a5cafdb42e27671bfcf34b5a579e6fb76c97c5b259372f3975c67cb20ffd33e9db6ff2469dd751d774d4b91d754dbfc9d2f149abc726fa757ca2ded77fb2a3aee947ed988e94c4dc0365cd679a7fa4e44e61f0ef22164e1e3539d98f5b01971da666b289c5ccb977ddba107c3781c896fa99fa8ffa95c8c274990b1834a93e69bf6b1da16660920e6b49459719e43983e69cd3dbc58b86b27fbf8a50b3ffea7b5f01fb5a4df6efa8eb4f84aaef8dba065b63648c0b941a2ceca60f1bc8a001e3f252b29bfff349ea750eb575d0f79c13e377123fa578bc4ed2c7759a50aa8ef43de889b82e3e72f865986bfeb4c798f6400fda9e461b6fb677db873674a3398e4eba14a5ed31d077ed03db87932662d1a9c507b70f5b648ceba09d9c367cfbf06f1ffe04c2e1df46a79fe0e307c7ce78acbdadf69e78c10f6108d210fc25a73d7e14b4c71f956d3fc5f2a98ab8ce5bf8361739bc0fb6d799f88914642bb6189730b9e2a74fd2c7f473332ea0f7f5fba737b6c0e53a3a59ef3f4ac716b8ece43da5ef795f7f84f7f6eb7be92f3ad9afff51fab3be373a7dde377d3aa74568ea32175255422291932f6020f50b759308615cc098b5d57de1f7ed5be84347ea2cf4d891865ee8858080c612e8db49003c28248a4642708f3d2ef99058b693d4851e5c8636a19f0f0a89dd2490d0d0033d3885beecb210b89f46c20885183bf01c42e85dc0789aa2aab2ba028295150227d4e44865b311410616237cb311121212a2796844a2fb2507124f3879a41bdb8d8e9ec4395b8d6966fc60d7520cbdd083426239b3d08333bce11ad0cf77e148433aa011890ef7582c67078e747bd0c80a1ef1223ef740df393796338bf8100f64050bbd88cf7d8807fa7624110ff433e73ee8bb9642e8478c6508a2b2d00f7d3b897b9d58dd088713313ae952003dee81c676722c853e37b693416388b1662c76161a1adbc91bc69551f9f65ee3e036f4e0d0a8f3c0f6438fc2f6431f9581c4b266a01712cba72cf42de2c47266dc0f89a0873831e8bb268413a3b290f8c273d038759806c05c19632cdebf89b30fc51297c3dc4e865f13fb6d62ed9768cd7e87fd16e349e502868d0cf47aca35d7301c99db84f7977eeff401eaf8046cbf9dfadddf5f4432c3f59c97e292cc39bd50d04046eb76d37efd26fbb5bef59eec7b3e410aaaf014e7902c545685f2e43924f7903cbfbf29fea37ea5feb7416c5b7f7bff48e9fb495c50165c14141e425a30138495206e6c38fe7c0581e48d1f23bbfeef27e180b3ef228b075ba77905db81bef096cd260c93e694aae95e435778bf5cc7b94ac6a7da636ae41bc880ef97bd742f074416dc40f434ffab89d7d2a82db295c8050c2fd02f9503f12b2f1aa5d30b6b7a75091b35ca36c2bf59788b7a57fdf9b5f95f32f0b301a7174d02c7595676671e47aa75dac9d3b3eccba57cca497f3babed9bc06a1b9fc20703b39f593469928d65cdac99e50af8c263634af09ddda68dd038342448346aa3d90389b367c25fe672a9801245ae3fc39f63e0e3b141db58ded2680235d136390bbf6779168ee50872fd694d90eb3739b3190236d76e1279924d326d805c1c334d4283307d2f1e9b63734c0d9e6d006ba13ce3cffbdeab6e2eee0066052439c8c0676bac06253fbc4064052c2e1d2e978c3a32f088556ead4da68cd8a924b6bf98c92287863427dc88b285089414b49c40e642c972b908a0b5ccd0c38d346163536a48e264ec4e9b195ea8686284e11871063076d1a1864c13ab27543ba731a7880a5f77ca9cb149a6da044de9d13de9e35df193438a471a307ca876aec50b0d147ec862460f0e5176cc84e02a931977ae9f4a69f021a3cb0c37359ae7aacb5490d9c5123224c4a5743c602fb718d655a6a1805555138275422edbabcc9f5c625a0e7c738b0dc193cbf6a281e132af74bc354a83572b93efaa36c9e5ec2ae758f64ec018365436a4b9315543940b6882908dc142a64c8d10fa503169d2a30f579f5dd96dba9c54229a5c05a90343951813762204e96a132605e7841cbb726e818595b30d151d3e50caa46064cc935d39cb867c7d34cf102e43c6b0ce880d5193fdef90282c7cb319bd5f6eb1214d66ac19c30105365c6ed88c3d000d17223be4784993872629410b2d4ce80a080ad943054c00125c738b5d7529a1e516bbc29127ad7da0754524cf123302dd46b38491fd975c0bd4a598dd5197628cca9452fab469582d3a2cbb7f54769c5bcc53ec7e115bd98bfe7835895bd7cd8adfb26e5bb9814a0fe414377fb6db24ec2edbafc90ba3d6275c5616b30dac49f827f97041abca25ed2a7b071464a1b026a1c395882dfa0708afe6029ee516131247c80e5f110e87e106268e84acf15923c48542c678f1583ac194c3949a25738c8461a366002e48c9e147ea873a47ee136f87104bf8cc0c2f65c101fd2f16f00b983383f10f13bc192c8e2e4f685cba5899558a65438a6596cb397595840e922660ea14a993c296214ac67c51e10e1131bbb2c1720172709344cb15122b3d766587b5299b54554298581c42a408c9a2c64b8eea72037646851f547076d80961a1063603ab4b980670f6d16835dcf1ba3887855809b161c5dd77fe2c80b23c27fa12d39192c3a1a02b6d4029a5b4db69534ba9370b118eec9c734efa0e4213edcf2b2aa23d6944c0163dcfa49ce463a74c2806767aaf4b1e85409b36edd1a91681afdef3850dc1360dc195f4e001c4f8c8d8d8364ece3f22e35232d1eddecd75a4b4c1d19177294d3ae9a44a1b1c1d6da0e4f448c9adb873799b38ddddddb88de6777b791d7971f88c8d9191b569535676241e59100497b84b4c274d02e8499ebf05cba432b79ac464612b040ee02cbf3cffeb126493e84981020e0092934eee2cc24bc894fb054d62bed11b4c01165da2e98cb198938f1455d59c3fb658f47ccf760552707b9e5837063869362ac316b8c1b30229b87fce598223b9dd258472ff075a13ac49f8dc32035293cbeb57d4c8a7d524d24964cf2b8de4579af477ec24099f5c361808dcaa24b31b7512d39c75928351232ff1e580c066de4c3489a46ec3a9aae8576093ccc1c0dc6ace2d4c21b0834db0b2c1c0ca0906c602a65f4ed243e492a491d369571fa6a22f28720115ee6f4a7dcac939bd4e9f4e35299dd327a5a2558a6afae8369c9cee55570ec4efcde59cce396b5897e935a5543839fb9d8e53aa4a791205585c731ac9336bab2b4fea55b982b3aa2ccf66c3a24960b1a1493820605bcdc7eb2c3f2607d226fb7592cb3e5329a5d48652787e7d9a9a534e4af179a2b4563ce52e6c75269af4c407ac9b0f9fdb46fe24ce35097fa337b8ecec0ff5d425e68c147664ff6ee7fa69362ad38bc80d749b9cb420082e679e1cd45f727178ef16a6a2a2a2c2e1bd21b6f562aedb1576619ccf8044502a9a749ddeec39805d64fbd9f8810b784ae579fb26fa37db37f950d04309fd374d821afaa0d9cf0787441d4d48d4d1c6a011ca16de300cef275ea07fc22ff4de3339d2fda171d268345a0d8744281b94d00fdd9e7e056c42a25693edfd8744a8db53fa43bfc25fe885441ded8568e3d3def63807a2e96ae12fd16a63079e6b61aefe17d5cfe0a8e6fa4ab5eeead7425aa53d8a9969ba106e3f343e69d11e37de9e3636d95e687c0a1a5be4f21dcb28db2f39d391921dc368fefd810276050a9dbce516bb1acb38a230df5f0a8ef8814d6cc1b751e78d3a6f5c81ff36023d54edf1af0082dad5fe881ad5bef64ce0d79a7a1e093974a23df8b407c149ab7dad36a35ed08adbed83c6db430d85d881b193de831f14f42bfcdfc7154150f483aa0e7c0f0a7afa20e8e3130dba5e5050d068fba1a6a30e1cfa265bd3ed87fef643a30e1c7521f8d30ff21ea4a2ed87c4db07894ee943e52853832921bfa7a312493fe8a1a0e8c8e24b2512a8d10f07bd073d9cf42b684e9a47af2810ea799e078edee8567ffb254abb893a9a4dd4d1465d08f46dbfc2ff3642dddedf36fa430d3dfdde7989fee5e4f7dec6cbdaf634c9f62b82fe83c61536a8dbdbc6df4d6f48d4799e3736097dd0f8747ba17f1aa2fd917ddb57a0bed0db46fa431ff4b4b154121aa16ef487be89fed0a8f3de7fe8fd8782fef64d436ffbf9e04da43f24fadbc4a320a5a7a727ad08f46e0a4aab69e86f0078a8a1110635fafef6215e689c59d4e8fb17faa12f679692ef438c93aaf3fcb8e1460f7aa8dbf7b62fe79592a171fe073f70ef8240b0b99593dfdb44a775585915f30196bfef30f92b02cbdf47c7f2f797e695b4eccaf32c91b2a2f2aadaa2578ea49b634e7e4e7e7f936ce532743e4d7249a798e4b2e8d3ca25b5cadff774eb7bdaf53dc5fade7b14357b5e348962b9d1f75ef9b3fdf7de05dac4de512c6a84667962199569a25358867fc3b17ccae1d7de139bf6b4b10cff7e197a4e1f78caf7f37dd0a3890198814b0f9b397c3f6313e7ae7436f97bf02682b30682ed6de3931608b7b7fd6d7c9abb1b1835fae816c5a246dfeffe0c3deeb59a843e481742d00f7d53d00f7d1f343635c28d4f938c1a7d1f34ba1435fac8e8e71f7ddb37d1b78dba26ff5b08b7b77dd3ed6db6bf8d4d41b70f1a8f967cc9af0efca08fdad9441d38827f1b9fb4c0b1e9f641e3537be097142b7faf9b95de06a4589e2480aaef69d692ef29d7d32e4ff2fafa82f2f7b4cbf734cc91c66635b0cdf71ee77b100441da5f9ab8bb89bdf39a03a2b237be2021d37233147529bca80c4e7c137b67137b47df97f8e7ffbd63d1244a8bfa9c02aa2c4c60d89166ce12256976ce7505c7468f1656d87297eca0f118f27178d000f10a34ac7c0627073e3c53b19b849d15c8cc027611fda9abff81f9274fcf609318cb7b8f7ee0f94d42740f3ee0c9e28585323e68a13df038815efb5d9ce74f2ec92abb203c4a10d342151b7658209963c3181fd6d0c0c18659f101408e0a86c87ca98ac205cc1b1e9cbc6942a407316dae6e542c5676cc60620b8f124202ac592156b3d6a857565830a13ef96565c70d129cd1b2f3478ccd113457ac6259a1f15792881159328575252724c503e25528a3da4344491718ff625063a58424147e0071a4b2e880a983e4c7089c3ca15205879f2d62eedb35512bb4d0e40e97097cf6f4b9647570d860e60b98395f36289113023d294ce58113c4062b39b841e1c5d50d5376a8b2a4c70a58aa942f571d068e0caf3227b051c14d152f150a90462a05a92732a2c82041580e5f51f4dc717355b3c490c3f6b021e6cd101fc6cae20cf972b0b265890f30655f69c85818d28408b9d868540a7586a41912266ccf9d1d120e3a76a06383ca8eae8b660fcd861866d46eb9c5beb208200613d0f0188bb223ce3d538588150f3c7ce4d033030d113759964c1f5572e010f321479701c3260b080e3c64d161864a0f23a210a172e4c6991db2e013ae73a9d07284073e69867cb1a14c1a14c2dee0f0a3c5a5861931f3cb8e0c386860189345ec92a1e205b73841889b316ca01c111be283edd01f5c16d5dc37862cab3a5da668884306cb1815b00ed326c8913b736c90e1b293090c35dcbffcc8769f1f7764a4a131846cecda2158676813e8e21a82468f153832be2cfafa444de233f0ec99aea1a24447962d7772b430074b16195c1803e4860566fcfc78b247071f4578e0d0e2f203d7959636625468e4683858b828d163a6063f33949821c2d8045902474a91aabe62a60401e48012a866e8210f0d59968cd0249ccfb433ed776d45ddd9f1e9043bfb4b6e474c8d7052be9dd328df2388a1ce14959839768c749829736830c811c3c4ce182d3ed4d8d55a6bc521145c8661d9d3ee5c32858719eed23c1a8d3696b3db5ff5aaadb5e23c09571dff054c19579a1b5c39f2340d32e54b892b2d9439414a95285b6e7f70e79a2d94192595439c357bb47c017242839952c357766405ae3b5960e860ed6aadb51ee08eed537df0a1d245061978d0b1e3e23045078e05150e2d476cc840c39d5dadb5d65ca5c1d21c4958b071a524862f4ffed8285d7baec8e0c992c38f30639acc50c58ea8a16a1a70e8f8fac3e60f1f3a427a6cd9c081c78b9efb25cc87a21c2f90d1b972654f1b2f54a668cda9a2a5c3985dadb5562faf743eca0a8ccd952439d4b080a66fe85263737d4c620fd70daa3a37eec4e0593fc30c1874fc5892c2160b957ac9b506d551c14d163a3a60c1526dadf48804b0fc002303143e2ad8b8366cb121e7873b31a00122cc05cf321f20264d0a36e28ce143e476e97a42558a09c2871e76e8a1ec4e8939a79785acca0f922553c068e1926b570bb9b69f3e3c66c84186c71b3cbb5a6bad62aaad9432a132ba8698e0ae85e6e9ca91025225c1258e1215b6e0402189c5eaa271ed1439416aec912a02c57ab5d6fad9bfd54d38e944563c210108732267073b698894d035c4f14a5002d9d4159db1355923f88711c18908ce83b6f5802857fce0c922057686d6b85b76c855005feee401c2053f60aab87099cb358928b8cc51da56ee01902d9162860652f5cec8d8d1648612d6e4a1e1824db1c2a97066869926325801f2d579a4644dcff338a0628390315d2a687df13cef7a1e0dd91b92bd3fe13115e182668e0f313055769ee7791ecef3bc5b5e90037fbf44bfeffbd9cf469d077774faec7fa3932e45fdef1b2bcee272e06a6362404c0f3247dea820038e0c2d52aa221085861d5b3abe807853abe76120972608cbb57a11e1705d93b28992a2644a8e11af3a42c6ec3c88095ab0a4bcd6acf0e4ce708587cd88528de1f586c8041c8a5d39f3d970658d3783a18619b6811ede6c956151e1070cf47ee52a6546ae51358cfc09a3a384373b9680237e601072d4a8072e73393530d2ace9e3440c9b18782c8e187378f41a3d4766b0c1b3e3861b5ee7641296eb0fa9012073456ceccd0f407c20d5afc995450788253bfeac591216860791196ed8bcf961571e513f374bae51aee45ab9e0a006899f3e3182e8b2ab6af48cf9f291c60620c8947e9863145cf5b067469d2558acd41b5666444ddd716147d6551e326b66b81db5cb68b1284974eceaab00c191ea93256cf6283afdeb36ed4f8fd62040df8e22a0b98e2fbcec7d8d833af683d39b16080a8ea4f380bea0b9be10261b20b7185757b63508d0afe30bcfe3e03defaba5b0f44540ebc58ee6ebacb4ffc808a6b636a6404a9c7ff3f2a41b981bf9cf18b8c460361f6edfba727903d320dfc0d6e0fef206e6f906566f60b58e37b026e137b0ecdf7f03eb124d815411f03a5237cedd11b4937aa2d730fa83e71bfda16571dab0c9b5523a7e61b5d6af4e564a296deab3bb0426bf1d6996fbefc4fabce97955005e5c5bd9f6d79cdeb45bd94e2c9ae4ba5df5e8af983d1da1b4a0eecfc61514ca9f8e981a4d28da43e99a66f4a991d5000aa68dbaa677a66f6219d9d7e940a07d047a471bc7b9458dac7d157301577626de69ed57254f0a0099b5d6660be58cb57d265b9bed7f5ec5cab26f7f766dfd3462c38bc54e2bd9da197651d8ca6515bbc188d80d56b9ffe616bb8186d80d53f76e6d7ddfdb771b4e7a3ee5a4e73d0930c4cfb67031df734cdffde9980347dcde8f77fe0ce3a4870b6b33cc49af0a9747d9bb77bcd4c87bcf7b161e59f65e0328d86138922e02bd9bba338c1a79afd381403f02bd823e123a4e326ae4bdf74f7301337b337b4f828b4a46869ab05defa6932f4d66c4c9a246de5f123c8968cb7b17d9cbde4f2b3b1348f642cf033d0f2b7b7f91bc3283ecbd77b138527d4f2b97a177c5cbc091ec7b5f359bf391798203c50f7e67ca1a21616058e2c6cb090d0058202408285f7eb8b2f306013a945c3103a68314970c4d667858b474a9b2e5438e1f3303b0e10517bcd4c1c1438d1898b809e1002b2b3a5880c8610a2bc4610d0b69e8838606b11f48fcf485414b8badc10411c415d7d50c2d614e2c514a298db262e7c4126e6b898605804893b2aa196362d0b202369c265ad42499e1676ccb921e6ead514d7098ca4165052971fad45a6f951b792877204e106045ae5449e1cdaed65a6badd5d64a0fe0034e9a526ec01210f9ea01674e161c8050718196c4c7090e22317cd0b23af15f2a4efc175d2272b2c891da6ef0499278c17bc018c163a44c10277a7a4a1655a67f22ca97186ac4c053431f9288e8735fb8cce5a89c231a624c1813e6a46adeae3db52c64c4a05421d3d27aa1a8a8882c7a2d475e0f6443d6fca0f52583ed81844ad838e84047870965533f1c711acddaefa3f4fbbc5a6b051fb47646e9f7d629a5947eb6fe38828283632ddd4067090e6ccaaa5cb9528e88093dc04a73c789111934dc00b9b2a2b25a400fb8741c70c84b6e0584cc6ea7fc279f38f3cba78d3361dcdddd97389647f57389984cff443f9370e6a78b111496f8d0854b0add32f2020e868c2760b6c0c9e282e3ffb3f19be13b86de58dece1165a7540723476e59b0d47004861b9054d11b25d31d192853256ff0c8d1f3839c3e5f576c7952a91f7ffaf4d82af2756d8d223ee01cd6a78d93266960e8fa7a820a97fd65cbfe4c36dc9bc84ecd80ee22089b2234e2c4c892d597f250444c589e2050b29c74c993abb820b8c4e11c4bcd932e20c70c2975e060d9b1c26e842e3193da99ee0b99627dc9943ec909138748981b5e4c7694521ad65cd7d13be9bbf7cb51a37bfd4e3c8ede0c9dac5ddf56ea64f787039cde6fc2a96ccc05dce812b39975b77057ce0b6c5e9191474fe61ee74868aa0b832631d9c171fa4568d2d21f422fe0441c3b934fee06a3d906430b82216d16d62a8d06ce6ecd466733dafd6cb7b06992ef9accdf040afafeb0b15eea393634242b67897317245ad046f6850a90edcf312407e06c41056e2d8598eb83b39e6eb34dc2eeda2b8109bc5a0a9be98337705643e14e66b3d96c16a466a8542ef56445c91042341000006314000018100a05c441b1683826d0045df70114000b7f9a3c7a4e19c9e36116c4280c4288104208210000028801425347da045eeae2aead17c0aa8b4cd2740a926a5049089ef7801d74b04382cf98d4a05eeadbe8f410e1643d21fbe525fc413a94bcbcf9cd642bbfbcd83ece85ccf974060b3c35e00f0441d634d833ad75698fe1934f9dee49da030f543c0c49872cb6a955cb20679e0ecf72c2f46daeab88d6aff8080c9cebe3610f3a32d3e6ebc8b542c883354773bb41a388eb360a149d365a425b276bebcfa603029a68c0e1136016c33a2548223ddeee24e1dfe1e4b3aa16065d2f49713b3e9e61a3d56931530c990715c58eb5b9dbe1b3034698736233609f193532be8627a1b96b06dd13ce1ca1e63bb292ab999bbd2546d34f058e3c02b2e0a421155bb5da39b9c362a2acb2e94ae84612036e97b33400bd418b40a41009e144d1b42e66bc75d6fe72f0d133f9a9cc0e8c42e7e02a0d07d0e6cacd607814b29fef2c96c4de9b8102de1d62c473b5884aefeb264bc5d986f212efc22c8dc6f1fb1598cb9a61abb69c4e4a05f4cb981877541571d6556636f2aa31ad1a3749857d136eec0bb324197bf45e7b827d145c95042b109c69b2526f2b92b301e6571ad4825e76bea8bb427ab584b92bc25851c64b82e22dd0117c0c94158b985d1c6287568f0569a29c73f356669ad4e2a2f3aeff61c07478530f49b57f1e6cb2b16d214223e5fc187d4360eddf628a4ece06cb1840478c237a8e357c459c230206fca510cd73988487e1794bb62823aa5448ded5d2b2536c006ff07117311b2eaf83c12b785e92062f2a1c7a3d470ab57a048e1b1f1b465032f1953fcb5cf6cbc02c70950086c697ab807e6fa64ad340119bd106a09b8048eb5d5f3d09142dfc868a82d63d5ee052db9b385ba4e3c82f7042f520be7be19b2df5c607e90b4db198947dd8ead775957fac6dc83e0da4bc731b76025597e2b18f4afe8630e3171129aa82d64954e8800e58d804365e1e90882c7057e7706373cb102eebf261ad3f7596e6ec8b6b0148c103ee952dc82c697523a864b4c1304b422789c8657cf34172dfec48f53eb678f9056b29f7fd8f2ee5b7802376014afb0c43f45bb4ef03cdd1f258435867bf36996dcb7700e3cac277ce87a2579e6ce238a12983b5803661782d7242f7340f1740303f7e55302464ae1385a25ff3b61be4da701761c5f0c3581ea3e6c1d6769b305d0d6831e87021ac5dfd4b112a5c71e68c133123b8f811409e1148aa092c18a8d3c4fe595df37e18246251be80cd66813ae181b58d51e555a4dc0c86fbf4e98235d3980524a969b8d9e537be603ea7e365781d9e5303a07bb42f9f238c9481262c81e0aea332377898bd81cc1272372cbc28603de40024faf059a36620d2ce26ba7a6ad69b3a8c406d7cf4002a9e9dd6d718fef0858a3546233e8b782712b0a63403100818502a2cc07f720db5e92134fa43e67b1aad0854dc473373aa69448cab3fd1f8d64cb17fda2626e8878e15463f30c7ea9146c0faa5579ba7295cd18562a427c449a4c1dea92cc471b33163669857b492a108c8579919800738b58eff2e6c92491c71ba5e57f385046043573c72496f785bc2a0381ac0084c76c38be2291eb0003fc19ccc9d21c6bb5673f0ab7718051c4530f2c70cbf7cf82d15f59352787b42e35d0111a1cf7d5bac128148a66e0b93aa9564cdcb8a35f16fa56107407610ef3f10ebdb6acdf5fe12dd9f7d3365c4d1f2410c6bb1983c3010c8c5d4a12d8d49aa0a36b8331b82ecf5bb540dcc4a71a6f96bd424f72bee8dbaadbebb8a81532bdad2c4a7538f81947ea19bb4e0478787ea5d2aa0113af22c9d4c239a79348e7a1c6fb5f939942a6fd6cb61d472064400a2e82277991f1e8e0ba1dfba87e4524ae113b9166457217645342611a92d4ec1218c8af4da81f10320564f2ae72b75891ed04a1452b4fdc43bf060c406c9f4ba5b8dacd15617808f163b5b809103bcdcbfc3d22ce5f789f4e0e549f9577bec74b828a4455886d4d2651e217cec7b3aceec9a8df244d5aaaa55662233e38a7b08e2e8af207c89270139553336f98dc3074387d5e9d40d7170b7a63903f853e748f44101c7407fa389b0d0b6bb911b93f184cfd1f2e81eb7cea79540c6d90bf48bd94723fa80d729ae8318c5474c06ffc946eafa340b4a23ea2c8ece8798708a6eae63e48dac8abcffb3d698e0f296930101c73e85011db12336b08394f4999e0aae5b806ada0ae89cdacf02561279e58c9ac14c92305e727f52c1723ab46f0066795114c792b8a7dd3a1ac2da62950fccc4492ab53d3d422440041760f24ef2fdc0d2b556cc0c00bd8c97c16b398b703dc70fb696f4b2e469edfc9fa470dc7b8b6173411633201f1b09c15620b9b739db0fec7577a14c11128b904c8c49de4a3a621a5c46f53c610e26488cf1463f5546bd8282e8dd71365e7c9554c11b2523d85f704b0147816548e342a23230c17e39b0a6a97e08c8d02737791b97605d18844c845621dda6436e6494aa905c7d9a87991f4a5513e354e4505d82c0d8ced0d72574d665ff22463d1baf7a6434eb3c4559cd9baac48038757696b0bc5da220282662cba2dda4e165780b364aa3fdd70a8bb5fcc2ae2fd7ff9b5d27ea30da280ad89e2fbb25e6b36394ff8c43866d4206988f98208776a5e1393e898791e7f9ec37772bd352313c5561e4b8dc8e3fdfb419408218d350e35bcf4fb773430063a80d3896a26e4a37ee4ebb22da569e86e512c77e7e947fe5db998a13223c28a2e5ed1f23f395df584ff50b80577fbf26638be4f7a6b5b61b6ebca643ea85ea8f523027360bf542953addc012a7b0f082ed5b89ebe8eacef7fc0a68824afde574667f451a1ea7d7d4525480eaa4399bfaabc63fe8717ef1172f3b5057e46f80d6cac6af14d12b405e0f58ce10d18a0bd99977d9717a42e43d2097280cb6b5776382f0f07d4552004551f892c9b11420d1b172a24a9f154d7a5a0221f8a175b00c39fbcdf643101974c5192cec9592676b72add015a1d797c197c1fc14b22e71be4a55dfc63fd002fa3e91d1fa1b89d8ba167de24a7f0e418dca5ff558f93642ba436c38c3f0444c0b6d823d5d6e1f0f00f903a1e45d4415e8f3863a3f54bd1a842fa8244a0fb51bd5701ce6d86e205a683e6bc7755ec3e86b7964857d2bdbb0ddd8bdca2f3d3f4f0ee9b85f5285b6265c32d99cf4c109fe5166c642cecb8f5c0c80630a2ee99d4d5cb1f2e2c7dcbe7cad38a9e4af31d8efc85098355831cc2c8afe8b4ab5303780ad3f2a42d41e97473a48134baea9c02c66245b11b928c22e6070fb33c34263943a0c814e3b81369db69a2cbe80dc39dadb1f6329d23b9c47a02a935e796a80841206ce48de7071765cab7b24a1877bfc05b0a0269bc4e78317b12f60fcaed65a02a18b1b37e7f75b6326de15cdbe1afc44ea577ed812c4bc433383f0dcc9cb3b9dbe3bbcc5237e6e024c30bb693f8ea97126b7ad445a8409d9189e207d1b91e13c42cbf0eb44e46d97ea79ce2faac6ff762dd267ccf706691e48075cbff6d58eb94bc26a1d97952a93eab2e72444010f8d300ea32f8c9da559e0f04c56144eabf3e1b7b3e5c70f5e1559497dba3dad216af088bab1464d02d14b083932fa0cfbae4051ec04ed51146c25e618d9ca22a55aec8f178f3b409e7fce9fae90ec6446453dc5e42396a49592a2638e09a32cfdfd48e7b463b9911d4084efeef7d210b14f9299967aa6f42b12bf612e8c78c605099e98964c8e076eea04f6a3a70c039ba00e302be0f04a039f181916c2c8f378b17467a7528e5a1250b7a769ed22943f8afefd1646ccc6d8c6d9f0c9a2b5a80bb06a4b84395efe33b92178381477d9ee25c192752b6735b0548a99afb31cc1350664cdbf7e947bfb8c5f570670bd1a8bd49d43a7ed7fd784727feb9177196688f8e291086605fb06cc8ccb9dab7356c9b481a01f7c0b8357a2372c321adaba4f36ecf3c01f8a066412ceac94f8d3478aa7c7ff504697cb7359dc21f5b3972a60607950964178d7b6779fced938932c6edc5889fc163a9c2d91e7f65797b8b89694f1ea9d2c432473fd5d54f4b8914a2abe6881814035ad8bc12dca27d11f5839b4404c2b8355f5e57a676c6abfc63b09d6977149aff9e8dd416983b1c439dddd3a6787c3419283c30c0f7069aafc009a30457a24bad05d910694627aa1c3fbc7cbade02747d7844584417a4a9fec2e5e9e8a6019046f4b82fe7aa2f28eb752f899a6b534aab8e09cd13187797b61fdb10c82e0397f035b68ae2f05c87dcdf0dc6111e4a4f49dc4d00b68525a1ac8bc17f1b05fc41f61e4e773afb7d09f34d37fe2bbcec336d688801840266708c4ee69179d5a30fc28087dd2f01c1097fa905acb9b001aa79ab6808503e5be12f68d0d5d5061addc098a562e6aad5c95cbade7942e6a2dbcbf7c1d672355feeaea0f4116deeeb7fddeb4ccc952a23358552851bed2be08c7a29a6f37203c64815072cb14327eeb2f98be7eafa9b99ed27bd68a28a7a3513679749222a6962190ce4e472d431ecbfdc024434edf9384a965d46191692c3b2f55ebd1a653c66fdd2d183e51644ad8543c87a4a174c13dd9a19c9e845776196091e96b7a0162cb9ab310fa2362329c1e66ceb2816ad8811cca638337d1bbf27ad2cd155d59789a0092b40f2afd1ea78c4560a6e4b12a915e32a5d1b2cf981433d2705ac7d60242c6d4835cd8a4a901a575e38cf0c2c42e86a8c71b6f82ba93179f882acfb595638b9d63bfeacf2d33f4de98e5fb9978084ac50c3d64a7b87021e5c1122bcd8f5d6f36c3949029d634d807b285463f6ce9f631a3eba0c8c5b08cb6733fd4512867a4332a14cf9c0d328b83edf9653d4370d171834d67612de4b960a564a5101155c68ec06cf0ebd9020a504d7420387f58bfb99126997921e9da6ec16cb65615f43c7bdf4cec5015e7abc04a8f08976b13b4fdc97e99a62635fda17e7646fa90fc3ea5c5f75cb8066453fdf04a695b7cb18891ad4d73ea6f6683e140463dd4e0937b5330ef64cdfcb7213d0f308b1054c4f647ec83bb8c6c9781f2fa23b686ee89530e088f2b51a51513f2289e0a8b462c0cda14aa4559fa5d2aa1f553b940954ca191578ac7de3097753f4b4640927bea98fca800006fbbbe253d38adb9a0e5abb6190c2a2b4b52bf7216c0782ff4411a44426436b6ad929994df55e07da38aa145e5781770969c70ecdcc325cdce70ad9e4306a132d4af066d1a2b71f10508821d3978c08fe3dc1dbadce097c5d80c680035ba1d701a4e86ab2d120238518a9f59b6894cf1e951d2859f6ef98a525a42d436c9fa6f1e3af0a0fa3b673b72e0f20dfa9c624f7862f6a886b6d57947d69cbf1d04c8627a29e39ab9a9f297eb14df3c58753ad8bb7ccbe41e12e2228e206606f3df8f9aeedb40981936ab7a85fa8bb300a4c379aa7def628981014306ff6fd62b5b4e41432159ec853209c310413640fa1bb046cf54b2628906e254dc5009abfc9f6b68f851f5153ad9df882c3001c7e333ce8948ea39cb1ee0d8ba62607656e72b913a1c18cf0fe500f158434e9577a372ab656af13441419f17262a69231da333126229dd62b6643eb0e133748a4173c0584e984d74ea46497950453f29912cc3c2d7e888e02a8b8abe5a2602114ed1c4dd83b0359987bfd0e0ef47844a608a0d614d7da342ae24e4f5f83a7ef7725d00496d83f2c6978843dee5d3aa365042e514bac15ca056ad6950881836ea0a83d6dab0d9b1571742d9df4f6a1d58c750297b9c872dc12cd43ef76fff357f7bfe87905eb6cf73813a0a150d5acf7313b59168cc738909622ccf5d29c84e27cfa54f29f3e859402fb2a7fbebae13177036f9e3c5f5f9ede9be93574dc172018431cd9b3dddd93850a26df04464aed59d82b17cde137f6f957d01f913d5e5897ffa73e0729191b9766b40b9045472d7a52cff71926c48c3ce07118edaee1f77268080fba0f614d5cbae5df74aa52145d10444aab8274bac7316ab632286bff0dc7d3bfbb48de8fb4ac698b20664dc9bc002eff4b7d8188e3f22103bbf6c59b22b3b4fe44a14a4d9adb5ed920ada582df2d2e972e909b22c6ca2d9c250091fcc70650d73634c22ddf1afd171ed0029480ec12a3717f7093951afa99b42af7ee515e9de5fffbb337c23b9c9a4743b7a7ee0527ba39cb83d83c2cc62743e99662887c680473b71506674d5a7113120b7169d38ee2d9a72bf22d33ce5edaecadd7b01018eb4096aba351ebce625613b65a49c1eaed08548a7276ddc3ba74a1c05d137675ed1ea186af3445f701b39cc9d0b484de4753d1832c825b1eb26b5dfc7d01508a584d6175d24a19052c68730372594b083973f8454e24c2bed4be9e6eed6e3812cc94ea25c22652494cbe84811c34c8e557581916fdd151818f0d0f23170ab50577924067688ab22da9723e49f6b71902db2a4074786aa9e648e3e228f6523487d5f49af804a20cd8ea9a579d3ecd368a4241bff64614f9f64802cd653812c35499d4eb10fc3f6228bc3cacd1c1da6d74105c1fd817c7646286f877486346a5a415e33659d475bcedc3540986e13d7744644c73c562383c00b2b73c9421813b771ac21a2710713f3e9d91835d24ee9ba687edcb0bcb241c57bcee5bb84767dc37341a4cc6f26558fe5838e0c693ca81b2490d3fc4fef7642ffce668c254f524d452488d6f073e3255199fb83baede77344b6289e0f749a2acd2eb4e76d1168139ace2e39912579bda2cca19ef9a0b9e6777f6dc4084e86ea22b0db078a14979bbb25d0c8780d8ed06ee02cb0fe0814d51cda73a455e1698b44c0c4c50c0c08e7ffdbade44e91f7284c361c0f473d0f51c63f7350c287cfb1e7a7860dda83a6f72a0e98623fffd26c4ecc3f492f7488827a5afb92636224e2ce3687694c73ea425b1ab6bff05068421b4073381a98eb99d7217df45efcc1f74492aa00c91cfca55a7e1671d713c34d1303f58656e7b6a44470871ab7465285ba2a9eeda4c111f76f96f4cb4771ff669b8abecfd003d68fac3a33d5796f59b9e58551452a901e7a361970847b321c056c8773cb0aa8c4cab62fbe1f074cbc29cc6575eb8fa4557afde8cdf3815efed950abf482c9cdf721eda4cbd057e925e30de3e37d4e2b8e989222832acf737a047d491c2e6fa0c06c36e6e71ba82f482d95a07fbdd11db7bcddcfdffc4a19a4cf6ee0d8c160cbe919ca417f69751b749fd1aec86f4c73e6b36f51e3c6637bc01f6ac37e64ab6c02f20b3ae962f08472b33947e7bff5abcf7033b0f58d0ce1078835c22ebe8a78b3d37ef7e1e34ebaefc91c8705cf8c6a341acad1c228bd63a9b3204f063bdab013567796525a4f4bb73abfc55e96540220de60d8f224803c55b9cc5fb75163024cbc915edb0f0950498184439b928cac218cf8bc593c8f9a69cdd6c836b2991345d3a19dd8090db0a302e5e2c02788ea39b0165ab2154b21fea7e62fe32f85bb79b541e5f32faeaa8bb1a3960fd7a8648fdfb3c1c32109c7b78151603a0ed51ab89ee0ce3dd06776d7a0ae61c8cc19f26fe610e8ca7c5434ef7efd8bc654d564f30f435579f5b61ff4f080002a8e2741c7527f8cf63823625c00534cf2749aed917ef03ff0f894edecd4770d592db08da04a6029fe9128ab27edaecd034998b04fcb49b35a05d2d0257e9db93a0399d604e53c85bd154e233a43be44a171e754d35073efa30c4defaf54f46c2b38edecfd21f78f152d511119b2602e6db4178147a9a95552aab23de9e3e33649892a3b79ca0152bb683b8fe5f6beeaa778aa52f35f1649e8f0f6805d29f1c4c9d94deaaaba66820b1d48f3df7be43c8efe7e21e58da6e7139c8eb2fea24da7981b799ac8202ce7c0d6e5c53c2b7c87c72ecd585672dde11ee81e3d969a064ccda89cb2bc5b9e67fc2c726fab06c4af2aff7333e2809eff203af8afdc0f0eeb3bb11b84a0da611283bbc99307db8ce6303ab7ac8dd5aeddfd177d837f4ba1bddb80cf4514bf32249c6ff8db1eff8c8e75ab7508b27b79e7d079fc72a6966385c6863badefdc8b8f9f63c0b41c766342390f8308f10b31415eeab862d2c7afcc474253a0cb3be77507424daed67d4aa11f55d6f0f3fe4cb08ae848622189dd5c58896d543682ff2250134abdc78aa10c824aeaeb05ed01d43b577e920b0c952a42d3d9bbce301f071647af96fb39f8f2b1d08dd5e1f3c71afa3761df8cebcf425284b53d1ea962efbef40c0a75193924f7c837186a18a9d517a4699da001d21f9140d596a8cd98c21c1652e5f5219bab75c44de141bf61466bb545856a6b13e4fcfb4d0073b35751e52e8f8f6e4d0b88cd0e6eace42502114b74248d001128982525e842b79426a9f3bdc452cf9966ed66a8d3ee29b59725add341a8c85caecbfa3cad0902a36d3b7de12e09ac7ea16fca9e9bb08ed76f530215802a98f9c4cb75ea7aee1b8b30cc8b945c5a938c927c0bf46678a34b47ce5c4b69035e5c4ced1dba5a95ca0eed77dbd41cfcbfc57eaa156365e4b2ae81eba2a52e2949cb4ed9d66600b8eb36361bfba15436f854cd9ddefcf106b6410c777089e12cb261b4a46bb651003cccec7531c71ee6c6de0648ff975a4654a60dd9ff244e7b8ff1a56ab5e420d188c78573b2311bfd6adc0881ba5e320a537c44f2ad373c86d8abfe58b5739ac03e3d3bd7e941e9d92835a1de311157ed4e91e1df5262f15ef53cdc9482d384fda001638da83ea9787df078508b1c08e334010e435a8fb5243135e15030dc61491675f06125477bc4863235711f714d48496ae27a7ffd410ce3111da1494d0cba630750a65e871b5cd8ce3ac2c4b382ae9670d381bf336201ef2ba8ceb3e5bf8df72e7dd2efd8aa4e4df810136b9ae1b1b0471aee09759e04377894309b09b240ef4657a28a83d59dd3e6958191bf858f4d5ad01595d0e7214e54395a658c93f090610eb169573f2d7c220566b0f9bbbb9994c32265631390a2074b1dee7655236d7fbabdee6eee7d3168413668a6d561dc1b02030360d47486428adb54355b197ba4cc4a7335ce051d83c3fc9e6eab7324ee37764305c79ef21a14bda444996645e9bc1fdefb98cb0e028784879b221f39903401044e1b0bf3f186da2c432637afe40124ce5c0d8135c3b29b9d284ca7dca0752ffa14240f4a9c774adeef5873fc665d0d0c0742856b6b46d5acd2355805b63510cbfb46aa36824a695cc1c973ec7c2f0a1ffd98c859e7cf5ed69a86c1524d3fa620d11523becc9037b6a4aec2fe3add34dce433d0455a7bce1a9d619ef6d930036a7242a522d7aa34560864ad11e1da669c7c6a5b431ed9793f586b016954eefd83c7c88fc8bfc0690818d7b500e0e37e6cacdacf839060ff52f3446f56ea4c006eaa3d6d7210eddaefbba7735b3803330ee66aaaf9faae6d2998661caf314f7c2ae220ea955275b713e2851b4b592dcfd1d69bf12199c9c1c9f91cd1d58116ceacb98df3b239ebe13463780736a62e85d05c59994c16200b94f156a382a08bda2f98eaca7a9fbb9e1adcb64c13b8514c96609287282b24be4a62cfac95576f63aeba07da39d2819a0ab1d34ea491e063dd122a6eb04fc7a389467a898db61db277a327a8fa36e35104303c78528737e22247a3ac4cdd7351ddb4f941ca2833d44546318a4d88d73fe14370d20ae0129ec476512e24b61124eb72141f2c68e2b9af5d7ec63929b6684bcebbb612b5fe89ec3315dbb5ee358696e97d30e644362c0acc311ce93e67d1d39ecb42d308767976eb7d73bdc2ffca8782aaa4fd158344df3f2a32a0d3c749251958598ccbff27b61b06440042ab6ee16e5f704d0070be017827652580eba81e8d156a90c7efb82c81fdafe9d450a5067c91b00a072a81d0f6eb24420199d6a3763c39ff722471aeac5753ec6ed2d6c803b7235f61a34346ce728a6907532628be649b3e7029be7288c597d70ba70dfc6da84e54951ed48b79572f3487d2b3fa926547be1650f50575722e4e0d8729c2636cb48795fef0d529cae42a5694f744ccb2c2cf99a20caf2e27ec1c5c679f31537edd573360c160f84d000d09a14ce829b42434fc4d9193ce13f7565222b6d06b530da585b9525ed6703a16b4b67c1c79a1cbf51cd25c5905db25f47bc676d79ccb375f88241aae3f2dd76aa335b559d0cabb346a1d258e9b6b95efea37fb55008925b516966f5b4eb8eab7c2bc9758bff5b7619a987b6591de314a0591db75858be9e53269efd9e49693164f0167e3e5db86906d093932c11f1d860c24289e170d609a0e8c5f4c51e0d322a20adeec8b026780223f675a3302cfbef34b7b9fc9c7796a7fd6276920cc4ac0128aa6f62909be23e971dd74974932fd7041224f38071002e7560ae7ca67361387697fb20c726adfe58b376c19170c8c081bc2dea9a519a8146e529630772cca9b410d879955ad813adb18890c3553ebe844b384cfe6b850bf5fa241e610a8370a61056eea29a784f618bd8a483af3ec8c96502f713edf48f9f9bd83cedb77234593e4244f967092d01d3640be696a12a46f70622a9ba876a3c34ac27e9aa76a0c5aafac33e963df1e12e6fed8ab82cb48b2bfb4ab0bd8ad2dada64584df0a28944e080f11cda6fad2f1ae3e665d96d9dcf852c3a6be78433c4f3eab2f4bdcfbd92c34a19991e324dc176b8f7a6c266afe381127ef22c781ce472cd201d45e2f9b4de2ba364af5e7e6423644eaacb8f8b71329a51a6a9c6cf7ace1d5cbe72a50566a8e1d8a460d3489208529f114b94d31e07ae44ef7f707b434b51639fd1d160b2900458b9b9c7efbb6483f5977ce04768f762b4e0178473d10743dd733f4b0edc982ceb60c8bd5a71732bf861a6be7ad624d556109dc71366c819acea0cdbfbf3cc64b94129fb2b56dc2e8830223f61b2e181ebdc5bc4778f70db7fa7e6d29dd5b4c27670b046372b89a808a3ce508d1d22ba36abda82b10299f0f81664fa4321c1d3f48c0fd3bbb43bf573253d3fd742eceac6303b8011c8ea05174215c0ea5fdc51f6514f3f07db96be97b969da26fb1ffa1a3fcd32b1c53c0fe4d0737a2be8e871eb020b7472c7e65ab1addaac3e420c8dec045c0e135dad186d2b0273d2825651aa4edbf33c77d3c74ac2fe5840649ef6b1dabab98b022548480da753bac206e11bde84aaa51f434638e8628529423153c7738bf6daa44755e2176b61786cfe9e91fc348361d58cf16f6df2e302a3c3960b7931b44581d96d330cb84282dc5c407035e9b4ab47128a55da1f04c9e698be8736194669444d46157e646e288b8d81af20b7a2a181897ad2430b08c765ec54949582b00af2e38fe092a94c6759e3248059c5641aec50ac1dee01fc267364db8827a32bb8f4bc9ec2455d82f89d7fa9064bff2a833eac62cf6a9d4d51e0a227d60806eead1a26f8a4d3e5516818f4a761f886f4f714deb309188ec9d0ba5cca4606eedfa04d49751ea40455710370e6cbcc3d142db9f1e3ffc2cec0f48c919d578f9d13029d4c7a4439394a330178401200606f01057aad90acc858df4df300e4a595da90dc7bc519089a9962e3d70c6f0c54489563c1835e48e81aea6b3210a52a1a643ad93b3e8da1f41b514b5f92f5717bfaf35fd5ad64c1b3ed9ea059916e8b3438113007c996f741d48930dc0b7d563e16491dced51ef60b0c845c66236ec437f5456f91ee876db495980ae71392d74edf206a8231a2a7d2421465b8fc8d76c15d0d4ab6c793bf7b99835c5bb5704441fdb339a4cf019d84d52de02451372cb190f537061f347caead5de8b42a8c0f32a3748231568b087fb8db0b3c3417486c60c8acd3b74c7cc8954687e70f23d50f25c84289eda132bde97501eaca0b3ad087074a51b340057d660c7fdd335289b2c0229e6fc4cf9d6f14d81c22d46445301d6ac206b96359b80a5fe90b2a8da39cdd15544de75ef12776d54f0e07108aafd256a74f0a500230e1101f4e6a62200eb75c9180038575609a7978337014213ecad179389532b8e0965d1c1d05ca85907c3aa98d0956971d99803e45b02034b342c55b74011367fcff3bdae6048735a5b529d5ce0c2981a676f107c4899a3e0490b626bce7c58ccbd8ac01c6ff708ce7793ca618145cc533256720b6ec33b9b7c0c78d6628771d016204fef2e3087a4e54db06535618781793cb4fa117cce7eb879bbee31cb37bad99a94511763568b1d075918e003b53b547f45949f3068d69183895a8024d456b51f44b92b98253269446a55e454d3960066d01961cceabe78d20e7a0a10439b15a12be42d08bebd541131840b1ed3b938b51538aa7061dd4057e2a56aa43bf8d2b9a8c3b5e03e6febffa3f174be2bb51809a3937f04e454b41434d86fec7431cdba52b0d88a9ba2ff3670d53be5dd8ca74759fe38dfa8e115263cd3f1ddf602a3d5a86601c1c40a03868957c6a54cf551b743e12db217cd38c042fc8e0f21635b61bb769039d13a39f8b97ea8650ae2e3965a2c11b2ef83ae4daeba8eae7481ea3e20ea092a19cdaf8bbbbf71c698f958a9747594193960540c1a5957eea10dd872dac0999bc487c3180bbb4fec236a2831c62b994df14fac8a4540ce6a2517f82333758a1289959f29acb4fa9febfa5e92bef1615e170d4676a4dba058221232201ad32b8adbaaa1796a967a69267107ab1bc54de9eaca458c6cdb0e40cef97925959c9f8d8373e0f669ba33238944178b0e0c71ba0ce5ca76dfdb1ea7f03078a3cdac3404a23ec4e4c39d96634174077255cc83ecc1234c1abf2bf2a8c4639e6d168db0248f52744bb1c78da71c1d01e04d42cf68f25e29b63e050c38f5237e302292d2d9d30ddfbe65d56ff68aac0eef4a2aa1045e5b7e1e41fef82f612e5493df6f4116e1a015954b5d17bdb67e4073b72a21aa9c0b9a012cb6e87e2c919a30a39a2dab5c0a1528f51095291fcd8cb92c6c862614d13984775392c0fc82ee940a43064ac8de1d215f0ff681b3ce95e32c6d0a1bc49e115c95b211b27fc27892a3d42f77b4d9d08961fee70221796965a50b2faa2b9bed7309d828a5f0ed6b28ceefdb8a22ec111efa21d01a26e2c78284fb26cc6b1183f735a21b2a6574f3dbe0acf18d8a6f7e285b5141dca20b9179e860ff7368b61fd5d2fb3544e574ce1a3a1b5166d6afc9086c463e98792d9b48e3256de2f700482aa52e57819aa85f62374b3284fcc1996fdc7f7bc1932e2412275b89d53118e248937d70448101d8d79e59686cab900f2f6ad452080b6677580f833e7e1520d75378337ce8da438a29653ed114910fd9250430dc0fee939eeb680f7e2dfa9f0cb3ef22a1d0eaf86a442cb3d773bb850f8f48ddec2cebf3a701fd86d3292785b66707eef0a6dc730143d2c3b32687c04d005837f6b7765efd69ff2f233943f5bc04bc169be5b9099f2758c8140625c046592de3ce033667e86d0c1389db6533d87027008076004241d52450c76fa8c16454e0146cc6a1025a80cf60a4bd514a9e1930ee566f3376205f401b1a1f8f8098087e40b7780f3535332c967ac911d3e3277854bc889414137645c7d2c8fe18aab7c814982de1932cc6b57ff6be261933ab0d3c6e2afa8e030374ccd5314e0039703705012450ed1b41bf002c9b3ea5080a66cd24157a17dc298c6499e8ec9b16c1bf2dc48821333f421030c43fff94873129540a3e7e2d255134ff7f3913c4269421913791aa1ba8941da76ac22556954984a63f005adbf4b37b388ad00dd4c4d2215b5c53525bbd8ec95874134ed62fb8f5cb4f73269b3f55e90ce82430ecf92ff903a319924ff7e8eddd5011a0e97aac55a7ab090e7d54096ba6b51cfabf92aca66c3f569fdd0fa6156dc1357b7e11311b2c03482ff6b95152b1852ac9f3b36e0f0e1c267a6330e9b04a5221bb55bc406185993c3a93dbcee901b01a53a638fe373ffebec6354ebe49d96788011b4d7c86f420299621d50157df1afd0d5d8331e7d3c5a34b40f5c17297575d7e658033af5b421c92f79bb477cfafb87f04957271bfa39787d4967ebac77f9e384c74f5e9cc0b859336c11e3f03ae21d4c651a54da7eecf279fd0964100eda85dad588596436e371c50aef21650abb846558ca8b51ff43d886568b65709caee01dfe17d19125339077c3f76be7f04d197c5488f8e58b1cae12070309dc41ff16f5c303280c20756170ba874b144dacfe92f3c52c0796f6b8b96bb387d144f0240a0d0abca2edc14d51258219e69d50c5532196db41bead3aa040498f1ec63a027fa583268f3942a0401c4cee238aa7c6748d9787f10769bbd0f69b8b40c20994e8e087f76087ac4c41f920e840235ef4a2c566f25b1a8cad729252597e008aea3c014ce3242dc3bfb87468e080a032447d8bedcf17edbd9023f6af69f7e31e3f04da4da664d5d0c791c122c2102a68cc4dad26dd7e8b728f7d259d2240b97d1600dec455378a9d48f077f6f3ca5830c3cef081eef04dfb439a9d30479d8114b21a7ac801d564a06546fd48f25a4e3a7761c832c3ac81b99eb9092351b25956b3be2fbb7b1da30050e1b48197da2fcab8b775b07385240db20d49bfebb95a0d6bbf9b914506d3bc7236dc94ef768b58d5d9c5d105df87b94a36e4dc009c6193af80b9e7e14cd2ef91cd4643b3aeee392b6944c73e28710562949fb52c93d32ca0ea040f1752d1ab66a29647f87d46c215655917a34b3ce17d0293316028d7a54aec289223210ccd810dd48317d9083637d91e3de388a50e58cee654738ca1f1fc172e840be207c95cf94d807fa5dcfc6988f9af80bcd84766364e17f583ace0373bc7ca5275ac447ba5e05dcd55fbcfed0aabd52d48d03844adbc69d841f35dda2019ddd05fb1c97eebe7e005fda536a2055221a1532014184cabe768bade49bb72b4f2cb2c8f1c35949833b125ae65c0004acde599007c7d5f0003cd76ac90054caa354f6d17a86bfcd968990dc524bde16088fa5b68002fb46857ef69102d509e0aaa7a9983b40ba371546b67ee4f061a611a2819efe545635fc12ae2c563e1f553c283f805b0b4afce02b5cab400945f9bfc4628d4286315528f9d44eb7dddd1248d8e00e110e5f17c774e74f0d589417e5dff834a16ee00adaea6beaee6e11374f18254a024f4bb3b78e7c04344698ea33cf92268abc45d5f43c59a430aea38db43299a38e3b3f877609458b6975c6fc3d6aa32ec38f282fe46e330261e407374ac1a0c5dda456743db5aa62d1fa29a995dce507318a92d71666a00b01f97a81d05800081f87862d669599f074051559a0a943c76f40ae52529950a9dce79fa8a60d6b915069139df6eaef27d484f207299a6fd1ef2f0522157a9ee5aa5d19ef7ed628602273935e37b2cadca52437dc6d0d41ff31796f787ee3209c799a6f6eaa4e9231daf122361e28a59470436170c330807574557d5f64a3e8e290e0590e6d1d0a38799438b679b8e2574a9180e7b0dc3158b57f5ee1ddf177e1c1fd00b7d6b80ca86a5380bc491d8819e1c89f73a46379b7371d91839dcdcf9ae185a53b9b5c4d89c26d23f883123fa625379b8fe166b8c7d06ea34382f2b1fe9daf28b595dfee5837baab97969a2bf1aac8f110cd2258b9c624cee64f43a9470da2babe08bf91802ba6d4823a5a1781b762d582fe94235740780b090847153ae5a7c1bc72d133cd0e2401c6c39eafed3f345bd0bb8b90e75d58c7e3a3f1044d72304d3d4bd20cdb8c657fb047a703b6073f608fae5303b43f8afff748934343ad11162171cdbb6a7996b77ed2626edcf6b81f8fb99e428867a950fd46e485d3a315cc30649b616ac54901bb3943235d881a89f3538ac47102d344026289e850722d72e891e8a104ed43db51033502d12b870c43f2c19c2549ddccabb5e9f3bf87d36c3bc2df520b33b50ec2ce184af3697d17f75cb1162eff29699934c7beba9e9d9c9a8981b838d451fa1c2883518f3aa4cd10eaca92844180e3a6b3dacd4f1d123e5006e15181720573f9dfbb048f421e5ad547c18312075e1bb0c218992bf2ed497ac81aa26f82f2373403199dd66c4d65848e342a963cbbcbf12823b1686fc36d0c1c590ce4831c30379795fa164c033e6ed4e323190b9ee86451778f1a9eb38dd24d14c3d46b302cf5dbc81cd2541fa63cfe420395653aec067ebb4e0008b2547628fcf617238b3f71788ede772df2695b46d269c78fc5f84518ace5bb089bcfd4f130fe7b87ec1487a3d7aea26df6c61146f904462b96299180e1f876c0c4b411f5e9c2654d4a38de6f82d88c6aa539d8415848adb829190365c16dbf59a1b225a86a93b03332d71562af66a84896049e212dfc1de4fb4b420275b94bcd378fa7e5ef389bea1e87e59f66df67371d8abdf05535a32c72cb08160011bc00b74d8f80154aeebea21ea9a37a14603f47f36b7974b911852aa8bb5d5f51fb4c0726e24ea3c7c38d9b4d97f5ddade979dc071a7ab8e072a20f94482e47618879621165b7697376fbc1a495c12792213d44a5f145069fa9a75646b4c7eed44c885636beb247a8078accc1bf5bb0166ca274a55ac4de93113772a76d20bdf5f58e0264f4c74823550c0aa4e9e6fe729e8956e0ffe5603fa0d9144573748fd042d4ad585fa35088c5ba0ed4493bb72470f5f08451cebab6d721372d807bf8ebbc9eeec66328046a8c6eada982997a9df513a00d091a8844296eda87f5f126d0c9ba86a7a86ffd030311eddacace316b2904ee778ac37ec81e9cd8be42b4115bda2d77f449e46a502e6dd4485c9c98b737454af6836c579bf2563002654a9dd0a212da1c70cda7e73921aede33cd162a4b139bf607574f4b811e07e911f228f9a1c6fa0b9fc53fcef7115655137522a5c334ff186d73e45f14229ceb577e40b8d8b2a2bffd9a9b3e6fc2b2abb5515d4918261cb7e2a2befd609a4ea33e047bac0de913e18494d06ea2191c68805b78627c1251378a7228f7b887100fb3ef15523bd25937667c5baab6740ee0f3ff039593767218a098418cac14f755b4383fbd8c9f8016b607bdc425289b06b0130a2628fd15e7f233168295d6665f6500be1b1a4e5359a6b736da129b97c6f5ff5ee3a90c72c8dde77708539dc1a374122cc9c1017f1c165e26c427023c609bd585f7c43cccf3e21187b05ca7d3ecd3dcfb39e11ca4304c04a6b45232cd81a1ae56fed76cd08eb990311c054a0c54372d2b64bb35fb237cea414554c94c28dab30cff00e337c637f157dfb88309d0ab365c72eb47b1ac866201d3eb1d83e9760a219c65df7564fcb4686f37ac8022f7e39eb2ec74bba558a5b7d5edbb2fc499f274dd8b59f6fb61fa1c0bcec82837432f35b5843616c6b7957a0e2f9ae4ec090d2138880d72af73a14033280af1eab7d62d52f2be55f27d2340be9ee6509bc9f549ce3ce76ae516e92cb212b338f8ef9fcd2d11e0fbabd2d4eec167b2a0c65757b74598d9ea20b2478882ace7f38f1c831f97f8b91a313dae3ac916aa33f4b5e98105e4190d27da30f8014492b464fe43dcea7b3cf1a6deaa88c499039d09c422cc226410d2b780f2b2840e8bd82d28eed9229299d243e6568529aa4effd223ab85ecfa9cc6f3537680ebd0c2f7129614f0eb41945d336d97a9017bd95ebe9c781b8f0d28747a72d28910924445b2548d8cd4168e0d21ccf97c0ab13c6f40d42f3cf48964cd1e279b4aaf520c39783f52c8dad0f41714620e83cf3da43b70b021252bf3c5e001ec8e5f80613854c37de728ad1e8d5f7948fce6acfac4b654f0bdf4a57309eb811af4ad56cea6195713ac2caa17c68f63359b4c53b35510dd1266b726ea35830145496680f4a981508a24b64e7aa989cc1ed59e85cc08ff3cf41716e7a120393609ca22fc578f836a6ba8142c6ee6f99bbc654bd3fa4f9ae8664f221185cce0ac492b77a65fda7daa89326174748c7085961e52eae9f34f77503345ab18ad6f2fda982b949873f3f87f1717bb18b18c033ad1b5957d12ab910f137b38cc48d09faf5dd0892a8e9cb40956d67ca94448562ca77bed298c3ebae31449c177be20d99b80fd5bf8a76744cf9a787002660355a55a191008f47230cc4ef0244d6856c651b9632dd2936cdf85cd5f2fb68a8267b8f8386ae0ef5c2df53c66871c95b07079fc559056b659725452ab15a0b44dbbc194a915c5878aff3562884be5d738a4fe73f5b26928bed1f515f308601c1ce2fee943faab44a89a93e20d931dc77997ae500e9850c3bf1eead243cecb5fa95d340ba5a64133e1fda788b0598e404ddebf22cd59875576eaf154fc4c113cfdb287a6994e8043bf5291ed447d36232594c9a5eb5b48c53cb3fc346de2bdfb4eb6932228b7e55502ad8d2d8beee55918d6739da09adc025ba6350c9ddc34f012da73c8e9b09bf1213e329b61d308f813e69ea44a78db2d1b5cb681d663ca7d8f949ee54796b0e430f3ac100d68229122264031e4657efe8ac493c934d0ed03aba954fb39d896f5cf4b5ef58c158ecf3485cce73f5fb0616a68f66984ec8516f6597f8997e50a44621e48e8d40c3ef9cf8c58b580c50f1a2dd5baa9001c9b7d9d9b5eb70f43f81f1f022aa2772282d99eeab15091917e9179f8c98e3361c82c0eaadfcc6b66b3d54a9b05f5707d5a89a408f585085947ac4937f17fbf2c84787392327b98bb0736a3a06c0ac7ab9831826ab53a9a04a19677b940df59776d2ca595510348e58c02a8346053ae0279905d6b9bd696557583d718528e0c918dcbcdc59957afd0638be7e9b0d066d55416d0cd39ef30da9850336490c3b69796e3a94643945069aadc39b3e5d9c58372304f003a72a42e49abb128e74a0152854c8ad64f803f07ae36dc4fd0d035c1896360e3eac043818dda3e418a59785d8569e173b976a5641a9134e89da60ead33d124d1ad8227056c55a52c047925e84a57cd2b1d02aefb3b4ec056cdcfa629bc8614b759415bbe911a1eba7f20b25c4e87260643ea9863afcfe248e0856b7307aac35fc1f015d0a1a42a410c367ae67791826dcda3bd44ce2e324341bf1b63b6f4acec186733f7858d77589990ad27caae5bd92c82b0709a210abddac317badcab1b39eff38583d50fd0591b5e0c06980bcd58febf14ed21640a51474097e039a7e6adb15729628ea18793b3800685256994f829f5098b1fa131b3634c41dcb8506d34c4bf1fec02ec406fe3ee6684071ddf37181b65629cda9fb9ad8501b8b99f5be6c5527a6fe1d22f57dc4ca68e59634c21204f285368045ada3b76fc10887b1a7514a76ce809f1ec13804978e14d2dca540d70e77355ca449779320bb8c86b4e0a6c4c7dba40535920a893827f1090bffa89b49d828539c7f7748276fc5d274cf93e868279a31746b4e07a9747846304032ae80effc6fd88a475e86828998f4138f298c2bf602ae108b2df0d72b83f4e240a0653286f68b3d6e981289896d0c118af14238720286cbd062a86027359889d959e31434cb360241e8d634d99244698e93ab3f0424c009a2ffa3ff3089f211d04d78bf621d6a232d145cf05d82e55de79233cf71253ff8b4cf6108957df21eac06b23a121c803982dc4faa234348687f3cd39d7132ff5900f9f213543874510bb5aa71c0d6ee92110336e9bc34ad77aceb979dc213b2c1add0556e530dbc8fc60d6afa99bb41b8b776225bf11d3f3cb8659a6491aaae513c54ef40bcbf7e93bcdc76df4b084d8358e9268a0f044b6b2bb76c3c5078009dc74c669691f8ee2e33b9d570d9142693f74f4c03d6a20130d446052ca439896506d51d27e8cbf8afc44032cb2e0db37f3a4a59dde72f7bf68d633461e0b53fac2944788e51ae60868c98c2d31dd14c6289404ae57f4b81199c1151f67e0eecf54ed35d47b91936fadfb93aa956321ec8335842e58f456de4e1b97b12416b11c9851a7a3da826a83ef7451f702a0a3071d3cc4a4f0ae2c75346fcea7471e437f736b09139e38891f67f98ff7036461b18026e789a0f02394f6bb720aa0efb42b119d8793a34b950aa504a7773d421d57f6c6cb3de855044db32ca04315446e2e18743b1839116da33020381ac725068a1ecac4709f9dffedbe8a43810d8f8b2f37eddfc0896031c4e9fdc4fa6a13f09d95092db0152477662bbac9f40178a9a30c0cc500849bdf8fc48ef1f2cad148ace3cd66a5d84204a3ef612125f70df8444bffed8021169026d05641aaa0fc416ec7b489299d26e2e4af9e1d44807398f93b90b83c048870b6273847e12116e3b62d529184490c0843208f0ef55a0bfa2d7bb5dbac76e1f1ef011bfd494f1e91943939aa938859e21419f686c50c12ad19bafbe8bed0b93daa1d51ef568fe7df26b1371630258dc752181b1b3bfc13eab6203a0dee25022c27202c3aa6a069d4e0da38949308984e5a73cb95149d016f7f6b0e03215f4f0c008d3d2b119541c0d835c581fabcbc27e2a7b2853e5c69df7d7061d744bcc8b9ddd42d6e2aafa04aff7019a7ec37f39be2ff118b83c199c27616205267288e20e6823b70dc2c9f5d951891e371f09da39b59c73998b4f04909f287fa4821f01154d0c5b819406192026843cb28a449d637a4eff94b5d0864633e8dc28133bd20c1ee8fbf6bfc7fb4270fd92bc23ba684c9cc9efdaf5bd49549d7b7121c808157d2faffc28fc6a9705cfdd87c318ab971ac37ea4a971d8f6663b055d93fdc3a56bd790450a868691cac3570ca6114cd1f4e94dacf3f3756ad47fe79379ebb5a502bf06891b2de08e4f26e6b3c67d1f8e5daf1bc150ee41c883f4ed9efe30cdf58f0e62e05e1b54f9dd605b8fd1dcbb82c03e2dd6a2d61f7e65a58d74b383fcc83a1bb1aac33a8dd3300ee2070c420e50ef6d67b848f6622cb3606157b5b3721473258d8137873e3b4d79637eccb577ffc5d5a059884c53f17cdcbdb0b82532a31109c52a8a69d5b96c984f2ac3e9341f677d6cab6c27539951d302a52e44b7b55af52cd34bc99cc8a45e182d20bea822c48e3a17caee915195306371995ef82660727b92af3260359a3cc16af9e2378735f33c294dd6d72b5c042589ebdb8505731d74f6a8f1fd18f47b54facedd347d6b7a81152a8cbef5ac100795484227ffbe6faff3c5b81eab3b82161af381096771564c2ae539db41a9cb5a61b35b7156d29943076b2360cbc2f8144c0993e23d0540abd87f1582737b62356332d04e4e8e3faa0eb340d67913e2549391a0b1c8b0153a268eb468e9fe298c44f2036248f4c31b1421b6ab5753a11174b925b41f2a0933b94c87c537265ed93caf788acde387cf76c738cbaffdc31978e4d084e44fb63c2497814d768870846660a17f59ffb1970a06fbd93768486cc98a6bee5c4480b34131bb4c95450b12478f81ac4d844285f18071509150aeb88242a96d8823fe2933b01f2b9b18565b8828057e429f4983f5937e2c30f0aa8234b6d68e30dff5757144b83ec0a7bc6c5cd04aa6579622f506dce1d31e572016687be8c77b0087a617c32a635dc882ce41f8d561017f161f9ee07a5d0d513e976775ce7fae41114c7409a1a7cd922c8a3eb3e71bc17e27daa511be2020ed393be2ff5c94273a0a23ca9e7bded2834da81484ec0a88d716e575493bcc1bc1a36be4fd0fe950bb2cc9c2032d8da26bb63430506731b9be4b22b41d83dfa290b3438c13e4cf9c83423689fcb66f77f11b711116c19c00b4be1868e4421358d8d47a7d6719e4411d66ef53ac29dc3d16dc9ff5e4e6427598ab85e75d69c0de6ac22640f0f77fa2418cc59e081a300ff00db489d62685b53a1506e5d1239fddab0f7618069e37a7f437bb1bbc80f346a246ac088143d7204222bd3673c41926f349f61a0b6b4413c73a95c99bbfa723d12ea19ea76b4c77d341df6b3f56410c3c08bcc374c9d28b0b6e1336488a615fa74edec1abffe4f62a4fa54629ca08dc95a78861e901c18f2639ace9e2ff9dec6fa5509ade98609733578615972af5ab3d6a78f66da363f2578ac3302cf82fca6489baa70034051d5a58a01805fef990c58efddfd84ce9c7c5c4b1456fc212347d534799ca96662dda619fa3d7a407be595c3b5475342e50862710cfa4919a88cd84a312a1028f9f2e1d26405e9f5365b6030dd4b9019341b4694f55d99a7171e67ebc647c45e8ca6cc66db3c78bc243372b56683728dee319c20567c9a520a024e522634e1b32a49af09987fe135857a9b9b2ac17dceeafa0b2f3b0a053cd7e8092f89b0cdd85f097f56f3d2c3c8bff565059f8af6ed59ad0bd3ed000f9a9c95e94e8403c250b30f0daf8cc9989043e1241240dcf7c4439127ff17dbb22d5a06f2795e3f252c45c6df4cdafd8e615cfe4ec527c912ddbdc820299768c3d958d0afc0dad93e551ae65b609e77ee992499770ef850f232d192592fd3722a052f6b8a5c20e5335eeadc39be0c78f70900f565c2e54bab71e3e9a948abd973288ad20b749a1f4b656dcfbac062f0c56bcbe6cb401e566063a712f18f33b40e62695f89f7f6d4212e53f0f17c74e22c0862fcc24d849c3fbed912f3d991683817719bb492d716232c17f980f2e09da7e5dea787ed108d552cb5a583f12766b4bf90b4981e57f34f361cefcbc97e044fb8a04f6ed47dfe48bac874771d45feb4ca17750a8105048deb9a4b420df2015c8ee2de52a4183d5c52c07f73905a2cf8b4772ab2cf3fc7809e13a9cdd317f1c815d0fe801d90ff2cdca939ee475cb5d0384fa86d8140fb572a54cd03f59e186b4ec8f7df6df094d3f5a6d46c2fb081deba716ff0ac1552690a09485a6368be149e55c931e8843c435349dddecdb731296eb9fb75db25a616b9b679aee5f901d858ed7e7c64afe6e47d3c829fbdf606f52ee31b29a36e4ba9e4103970a9667f835105bbfd52f09e8eccbb9c75197695803e82e9919ec49d12775e7dbecedd03c4744cde870850dd455ec5f0e1e51f440770f631505f8e79b97a35187cfcfac653b531e6a0cf50d29d24c0c88f0534308f3c6329e3eebdac5d02874de34637b096d504953a04d958da1573b5e8a5a90992ae6d36a9449094dae57d68f9da75de8d9bd694440663a8f1af92fe1e2d660944c5702aa14858658e3b9fc876f4ee305f8707c66453b907b71addeb1b7136de0380a7e5fd37c3c29d05af68883ff45bce51cf540f772eb29e86e0516214edfc98460af003cee3be1bd6833f0d1a4cf453c8907fe97b7968105a0d8d21c14623309cbd8a7f5c245e9d655d70166c6bf6ae62b44e4cd28a635a37c843053c7225b257be7d86558c685d81879254b34223fed8770c1e1bc4758d621e1b14968411601712cf6f8283a119c6eb6ce9433ab9eebfd08e40006d90459bb49279357f275985f4dad7691fb61d605a765b97790bdd520e2bd320d4450ea0822d46eb1274a7ee2912ba6ff52606207c5485ca09e318bf64ba2790eca1b0b5e04eb01901e6b226e97a35d80bac6a9e039ab893af79291890ddfe223e0aa4c0e99caadf740614e052afe650cde1995b565383f8cf789b5171c30c8c82af195b715545f91d0dcd402a011da09e370a7a8f00b838ca61081bff627a7a43934952ea1cac7d3c319ee43dc9b93385e56a9225f4f4e12cf1c08c640d80a72b0a157841664ac5bead514a252713edcd5fc5d756d1880c99a821e15c9af19869bd741a2560c2234a05a9582e99146e081bf939b7dca00917446771cd19214ab14ce247a671cf87d95ed2937633c1cc7ba040684d4043554bb3119cd2ab73a4b67f334f530d8d4a9aa672234c6f12ddc48846ae71dd9cbe9d735e7c01c38144ba4ece4881440cc1a9cf873447e43f44552117ca06ebfdb527b832d31e1abb8c76361e193ab1f425f2284c5f3edf244262f1fd057aa804fd63c3eb00383f0ec186a030af4ac828184fd2a602cef115ad59578b37cce29dc12b9d5b91e0356863eee97551e0c5b95ef38db84e6015cc1f9078b51b0ece5c86a30bd42e647b11b8076a6ebd84c472468eff3057717ed3938ec5a891cb7fe2c3c7bf335cee30c0cf29afc4544d220eba53b44adae0083f80d8255dbdce983996ac824a558e41affc7408b5fe4ce346eb734d4dce7c6c27a1a0e1616d5c2ce46b2f3f274ee51f12bcc741bb41f4d504e6517136c6e75a0177805bf14f417ef05169637e6c99d7858d6eba65c907eb191547352c6393b4a8036f937bb4e9f62f6f779412dd22976278652686199d858c06f9bf900fbf501f3d1278809ee28771ef687497581d9253e4697b52a4fdc71baf2253fe302bcb79a25029b364df747415f9bff4ce437b9cf132e8ec94a665f387579d45416555d5b2a03744923b48889c9c9765349d14d675651e77d9843ed71a0c40b06046d31a7192d6950d28971d6c1ba792060686ae1ff235fbdf43767dd9803be578ce0b0522ead4fa084a35d725f41b8a97f253bf6c47744a636ab3e56efcf956e85b4ae0dc8b6ff703eb9c527f2bb155927f18edf64fabdb113752849674aa89a02d1663a18d8c8831ceed7d2469728773b4d5c62ab7cce1d1bba626f21624a3e99b2752ef0562590a8709d0e5128a185296328019cb3ca80db75f214ac09e97cacf189b2d25e52ec4ed994b74c90170fa9da578bdaaa1bbb3c6d328ceefc4ad2d102de5d623cbf55e329eac6da2b6562822c3e9680b68e401c2aa5a09aaee9d293b355803cd459402fe3110aacfe3bc28d6dc15353312de981ec1297cec6b18432f9b22d33460baef0195fbbe2aa956cbca8711998fd20415f2299a1bc5369bfcf92e09d9f2e8d771e93cac730b83d7803a86296a7a6552c837f4305d349287de6e66c2062c7ac7877cde873293c39f198d276a35d0b6d4e9616cd57d17f361660914c8797494f17e3afb0a820655716e3a875eb4d6096a48321d4970841c5f8533b146b2b9fa15929bcc4644f85fdbc5884ed4a183645c8022190a997c01b8977da655f8546bf820d7e0238d065ea61df0731910817782fba8750fdf184acf033bd19c8fa4118af8c183934e11aee3b453eb8353320602bace29f000bee92c5b17624f4ed18358b55b0566bc2fbe07480ca56589b1d1ab81baa9fdf02f4a2c97f6ce4372d694cae5040a5a895c4c6da9f4efbdfb1269f10c91208b473fcd160db700cd10bb6cd000f2d2619163393940d263806cb73a075c9824f738521f41728adda821dbdfc2458baa0b62a1265cde6a16c3c86a178a5ad9efa74749d7a78b3f8f8271d23ed8c216edbc03c304bb897a73fe245bfda29fbf976f47a9e19d726efe92c72cd68e9642c2c00d306057c576372589695479bbfcd8621ff01b352096eef416c5a1463a1a455ba747496ab6dd13b9d5e5cc57c38fe2d8c19a40c24c9e3ab270e33a435e185808df1429f51c16939fdb5a349a46c936f82dfb507bf0fa7a7d1e4b6b6c704f300da548e3917bbed4958123545f7168212137cd5ee7ac1f62151c59111f93041dbc324cf39b20b48585c67158d544ada19b66c263f1104d3a0686153001726bba282150a0c633d1b9b9054496b3a1fc95bd77dc93c4f20f7dece6db8a3b142e3a3c885096038256151bb446e3357d4571e3ed2ae5e2e29c7ed10a343ba28d93b25cfe70851d6982f32e0d84d2d0c06915f8f7aeba53a18db40bb0c7a996c5c3f56d2bc24371082b93bfd6c1cf3527efe1c4d2417500e1b5fdb42ef8ed3922282117480d20f0d5a3602857e21e401ed05f8add8dffdeaf41421561fd154ee3acd8da954736d32edc389ca0bdfbba01bfa2f0108bcc8b69400ceed8f4fd3d4e4a2f170798583a4c14d634a9cad242d6c1c89bac3c4882c3249d73003916e6e9cd1957e9cfbf31016c1eaf45abd10d2f6f15e80f89d3840f309c77956aeea25292c03e945413723c6d8482c48399ddb0665cf9eb6d86c67376c146cb945ed66d7c2db27293f9f63441690cd011983a6dd549d08b36bf5379ad721c38064022ed6060e4f6ffd6b53088ef3282f166b147be92c06c272828b95625e1e539787389d5e78a44cb1c3d85f78830a9123d30038ca64fb9afa274184dd1b92a0493c89c0cfaa5dc05240fdfd68d6c4fe5f08ccbeda1a6df37794adf738a1074b74ed2473c4c5d615a41e685cccbb9478a4c58e855360bb56717644aa77cc581d355b1ea02da14e1bcadcfd7c7c8dc087e0536824af4c7def58bdb4c01a8114325545e504bccc69aa59267ed96ddb60d83091fa0f5498ba3d28c725a8d409b35b3f1ef423f40f0d88eec9223b616655bb4ff89d1e11b86dcf2c982f7ea84f322d988a5a975323b44373a223dc0e6114b710b83b59a64dbfad149806c161931f1b1b3452cc9030dede2226b6d15d9921ea8c53d8b9ade1bffbc4426ab38d0eb49de643d8b0a42365a24335a0b21629aca37d6af29010a58e426ff59e9d92dc0493c8a03ad7f53722d72975727ae6196b47b9d1871ccf304f83d0e42d824a4ffcbcca9e38bdd6b546b6337cfdd5888050aaaa1098c066257436032cd96e25018b9f594069126f8e858d8d457ddea1b6241b8cef41febb6b3de444896e8bb7037d0e1ac3054c1d761b1e304227cd8dfcc5c8c1522aafd8e3916fc3790161486527894a46ed98577ec6258f1153b49df7659e72c82984b8e6b8f64e4871f941d067951da27ec70903fb841e1a683d3f95971cb323a63a49370af7bf0ae893d26d5b1602dcb24ee5e8df9d499f1f802949641070cefcfb34c69435ae67e0dd774902e0009585a461faac2a36539696375b8b253694ac8f791bdbf53a42b52d9cda3038a68a4e857d52c6f32aa713fda4c0b1637682865d65d62e5b072a7baf06ef3a804dfa60dde70eefed9dd215eb9f72511376143aece1c7697ac4c8d6f4abcbe14bc37134e042e87fdd5af4066952c921c5246c53cd6d5d47bd631486932518c6668ffb519caaf28337106666482de3bc5819d435f405d52a769b00cca9d68c944874df358302cc4865944355944e915a0942ed3e20cb1668e967b82a1a45add41c88e2104a4ec5e751ba79e93176320c568b628f1fda58c0c78cfed2ca35fc265e824484d82bf934017e264ca36c6e8286ba37bd6259e23506afc83b10ce6e2ff1ab057d769e9710c385440428ae1a1dce646e72f3fb0c9b946b47144f5527d4266a51b937c3dd2de7fcc1c1f27057bba7f9292df5921fb9f44734a1b12cd989610f68a61b29078c784c924437d6a031887e49c842d48a024a6fe3648f7507c7727813617682ef49c423e27e91f243620475382cc577a801a216f34c264b72a9d798e4b0255ceacddf18666a4b1a039ab983f89c8494ad5ff4e69e7c62f9af027a106926fc0119f8a49d8a17f9747fe6872c9a62d771ecd12ea94176fcf38bc27cc9add8546a76f9ce6e9f18c3b4ea8536435e3216b745a39b50fad34c50bce9877eb35b5bfe6ae5b3ab61050d8a42c8917feec39300be9cc2a33aadb17642ae7c767d9eb862baf0ed471c7214a41b534dce679a3315b28e486aaef94da618e031c72ddf60b05b936bb501d623c51527096b3a77f09b621749d45dd6d9a2b50cc92c27358199a1c53b0ca3c8f4df2fc89cd4f3899a593491545b0d296831064c6935e377414d80ce26b30dcf4e4a39d4c76ba4fd0bb342753c3b0919c59a2b4a42ee10887791af870acba41b0222aac88ca12f90c81017db2b62ae837bacf51f6ed6c05894f537ec64e2184ebc93e3d1b0011ac35f998cfec026bc30dee86eea3132876d2ed472c469befa4c4fa25503218c4532ca89dc5c46177cda9b1885a5e6c182ac2c4c635e9244e2c03a2ef67a477479c60b1f813ecefc8bf7775f626c0ac5b969b566931850b33f6d50bd7cbff3b80eccb9f60587f0beaa432120c1954c7ef5e0922c90fb56a36fc6f0e1fca10c701ed2d4574767703b04d6fafc25d71dc064d81bb2fcdecbf09c0c003979bb200275d5951966c901f3b31d983293ad67ddb512b1b9bacdd4766e2d3846115322db04a21eea233a02e1dd444c5959739e99853af55746e4cff118bac0425a2d664f43a2981bc6f6ef070e6fa79338369b65d3e697d7750488012846535a1082c4faf5399649308d0c66e6f2ad9e18009adb65209fac99aeac61ed397b447c5fc5cdfc7a3d4e8dc605e6dc03119bd74e472304fcc20cb43dcbb0bbbf222f4deb94f7945830092666d4d67c42863312e27df6afb383facffee15cd69312401d3a328bbc43c4d521f6a1b8ea232feccd38c6f25aa00755fb3412c2e259ddc09973ffb87bf803d4f58ad8f82bb2443e4e1250dc7d29a513c4c80c3853ce888689eb6465b14853f641cadb92e749e9db8e4d75c539f8d908041d8bba9da33ad1b27f321a69edfed4c2fa4231ef3ba4be1a57da732f4158a9a7eccc7ddf155bfc8077b00ffd1ba40cadc57070ea7eb254987bfe43c557487e3406ef055c84214adc5233a18c8c46b4419a064d14e95ec65dcaf3a13a1efa693db3dfd53f81f05542f93fe71f2c0d23033efe1cf4d26d9ca674ed221570f6306a34a5168f8a97285993e46e2b8fae6462e1f5b86326b9fd4c1d53091e3687f1ec1bc086f5135d53efbfe21dffa4f30cb0f2c0a7019957d8ae7d05c54905ac4130dcf6ff372673a3815f83a7ade6d19a9ad6a09e039439fac2b0e1ad7c186529bca847ecfe4a4dff3c0a8dfb366fd9eeb11cae445c1cf2e2899736a70c4baadc1116e1e9ba8714ebda01bdc750b974ed4794a3002167220478bac321fa012d99f907a7ed6d7e465f575e7911404487c9712923fb78029177d6e706eca2f0539998e171a5e4832386fc0c76580b1f25d93f7fe421cc79dc0e896f18ed24c984f46b590fa2ec66d755fb2d2b5c5526a99c5d9948070f8c3ed1b97d75df5123bc8119f5adf0332bf185a5ce349051aed089a413c840a843e52e094e86778c23ee4f3b08a8dd12e85d6ff9ed8f79a9e7d6d2d8df38e9fecc2a8c3955760f9138e75c855a01ea42891f7936030ab304fb68d935d4633438aeb17338d5648aa51c4119faccde0a55560aa2ff941a04d9d3ecb6feec96699eaa877a50d1bff82b277029994b16cbcda61b287ba5948d9c17c247463d95bab91dc3c11938f40e07276c542326de5b6be88baacf519d2c8042ab9f49a5964b75cb4c86e65706a9001f9d0626ec3a1d87d7b6ebb0f7970d88fa320daaa9c0ef223b20165501d45aa0c6e920b89795cd52341989ed753ae9321b67495b4014bdd09a92f000614ba096afa8108f1ed70a6b32399180e8f7b09efd2590f185af2686e28ae2fa9bf7c4fb05659cd316c941b77c68219c3eb11e1dc2a5be44f91dc906fa2e38cbb1e03d943afb562da5457754fc76a057589ec9431c875dbf92ab467d69cf46684dd8bfc4a0b75996ab40fc337b365464c6b10aa4a7f95f5725c4c7b042a47a36c900528e7dc71642e318ee600f9deaf516df7b8e8050ad4c57af88a5b8cdf139067957129a58e059aa93b5dcbee8759741cc1bb62e2e8aecec3d58c872c967a524d210c1ddf61393bf41891ebd35c963192a7c4c652e0e2586df86deb56147d54e7291710b89d741ab53f08d58f765a0859b3f3f47987dd044c5e59dfd3c6b11e6b19c18faf68bd3c42aa559e463d0f35ae2fe19f52c3421d16c959c43a22545c1d13a4ccb5588962b90ee38c93ed206bf6ea1715b58b468a72eb0d0876177329160b1fe919c6810c83870f1b54bc3dd194913bc2d1dc18e44c20e9ed57e333e2250209508b581cede4e58e7a580e1e070f8c14a0011dce3b7af9a6d951c0ea29f2707897730ddd0d3a3112997e1cb17959002c8990f4f8afee8d05af043c3316c8201b14d1fef930bea6d487373b4a69f8a52b95ae31ef409f44104b7441a89132cc0424f330d62bf11c1300dfdd34fb9afb9ba83cad7495cafe5e0ebb423111e684c186d26a04772fe47e0d35e6a3d40c277cc38406664f9a5a18a1dad42189277f6a8550e8c37fdfe8d887f724b2cfc9f5ce7948fb710a5e3a24219ce43d23cf0ef7b2401267ba8866fbefb0cd5406af1b2353e8b44ec19a1946b3e76589b1c0b10fdce97ebc2c70473acc15ffceab5b00ed0a9d09742615eacf1a626f9fa1dc785e3fbb264a07965afcfa825d4c055348034144e4c5d3e3da24f50429cf8cb8d18057201375bd0b150b8761adfe18ebf3692b4f9e3513843d9b83eff4b95a78f9592760992395e7730708b1d800bbc61f029d9dbea4178e5ab306332c2e09dded16ea38b25c75e214de4e2a992d7830e9934d152714decdc75e24da52104127d83361d64e67ddefd5a1a2272155e9a84a9b07fc7b2620a3b503f8131e00818a81cc9ea628b1871721006117e51ee3ac392447be913c2e32c87a06c266c27db6aca1b4aed2fd071b233bf8e58df1f742946dbc0942e9a3e40d155ab472887dcec39d5310be6962601fafcb6e4e3e37607b5a38ae957c517e08cc5444cd3114fe2f04d8c27bf61d7e83f6fe927e46a27fc2f9e7cd80cc80ec858a831c9aafafd17381d3395b308fb4ab2769985e47f13aefb7ad0f3cc0ddd8cf4a166e412ad58b70e05ee0132eb22ba64da506abb7e594ea12bf5a9004af38ef3286c1e4ece78159014df40f336f793b3afa11a54c09b82122386465103010e0cba10b8e39bc6c4f4627bea4fa4aee9a8dd257dad9a840b62dd49c450c795d26228b5c858a1afee87d7740a6ef5c01e3fc06b7e6b29ebdc274036d51893b99cb464e1e79a6bd42471c6c04c8d5c389a4648503e2a91f2e57f973b6aa9035c86ceebedc14776044f406ee7e46fc4d7ef121df0a8ffd8c1733f1e7f1f26dc95243a450103d7f1551c8a3ac298a1616f6d6985f434a58ffcac3bdb56c33640c95faf6e4b991860c18f3988f1d53dba34ba9c130337057537b2769931ffcbfd6ac2b764fdd8ce3b827f81dcce3b93573a21f12f31b23acb39fab758f50d73b2118381d12e7d62c9a017f75f69d22475dacd7e27e975846f4e8f8827db3c3d4de2b72623474cb34bf6066c4aee634277a8644b74e9aff9675563a78a61bed4bcc15bf7478edc03a59aab2d7c8ad57ef5f15d5ad361f458880f8c84e033c8b01116a81a45c02c6306fc418d50638a7fd393a7943e64d1251739603285db472a4e41c68cd999b425c33d30b23991606b4adbb82bb83877d3615316f874a14cf00977dfaeaeaee831218bdd0671a119340fcb782a99904927ec0ced98524d21bbf5b050af05299e847729ee8cd454a12f2feac19037020fd0cd0df2af2e5320edc626d7244448ec6e1ba2ff8cf3ad8c49d79e7645bb48ffccff92b104328a48673908f7415ec5582ffa53d514875ed17e664bdee64490e56027d5c056803c00e7b6adbd276f0184bf1cce539831190b5bd9c90918da1f088d9dab9b18d58d6dcb24183546347e03cdcc6a49f90202bd609fd32d6571dfa77ab7d852cf93fa16eb51bc70e7e25649f66b15b186232fd1ba3293b187b7f5c84e3e1febfb4706e47ebedc0df1c81e584b1946af135a8e25c3a523ed4aa9ae1101027c876f02225424e6f5d87c48e1b02ab2e8ce0522c29b213d6073ff0a614663eed0bfa6ca1de9b3555600f31439ec04cb869dbb4b5fa4af69284a1ed78f6ccdd7d5a4e0ac77304f8a60c4d532ebd2227583e85418cd445ff3591de81d2ee4956932db8ee366d97d93b5a73c97e7fcac7c1a4dca827fe27019bbc99e89c9366fc57bf10adbd94d0ad0b88de737d5deaf7c0cdd0eacb1576422ca48521c5684d0c7a616771d8f202e904d2b33b650d87a6484b6cb92b7cc316967be949b80b2d4fc76fe0db55a34fee4389c7a1683b78dc9891a49e429b5d2c2a9b68c4b34edba73a026f02c1412e577e935f5c3acd77c9e052456f789ca0c84d5e39c9884f88577bb8740e259d9067a0f572bd934edbe58be72a9990d37b7addeb93775233f8f3b9cfaa222ab164542737da239e93de93e692c933dfbb595c8a8a95467d97dfd2422e1662a65a353ccac1ba4ebf62f5dc04fc8f815c28c8e9f811391cca796a931d073d87ef5f9d093ed70ef8ccfef981eefad52ce6dd2ce3bad01dc654644dbf0c0bdc0de9de5f67d8290800866f96678d3700683f01ff0746beef0033eb5663d18f26384e7000a81ab2cf87cee03a97e0a6b92399c7cabe51fc3daa978f245b8908f1f04c1091202e5afec37020157a82413cf6ed39c829ed4867fe0dc58c27c27868fcced9ed8404e58ce072bdca2d485e9b85e3efbc7265978791a6ffccb2a83290d11ff18a106ae1f6173c39c57e012dbca79adb7434b8192edc6833118ae6bcde8ec24ca75d602c26a70e66c77519ba21dbc10f81dbc30510adae482d3d8d2865731133f57b6880d77d8e96311f5b815a9086e04adddab8a24333094f32e0fa14909d00db8834255d86a842916c5c14a905c580d48e71ee1d8000d04b1678d1b87243604f8479a69feb3b036af6485ff6ceacb93c377f1cd23b33b8a850fbb80c3d8e2efb346c0e5bf0698f5bc855818e403875676b8fcd11702d68cd86398a8b45b4187f11f37202f814ba0613667dac4b7f2c84febf1d6a3fa2b7c694ca7f233c270cfd1424b2710a6be7bb52f22b36af20df71f8a2fc96d19165f2d478bc6fba6ddbe83ab11d1c8d1600bd9e4cdb44a5278659288079a79b7b2eff3598126f65753189d9f903e150a73e26145d7a8fff245ece75bc6dbb86c16ac9bb148f6ddd31cec85460419f8c36eaa55a9d8da2d6f107d1f0474e7b5f7e55cd1f3ba15dba1f43586ce9713745c65d0f1c825886642caf5ac064f82e6dd42699486e22673f0b8f3954722ebd8eef3264a2f113fce6782d0afc0c741ee0486e38443d1ffb4b6b7b010d9622447257a19c4b432abc76332492341c5754ae3f16b5d7a738ae545274954078fedd42cfe98354fdf0680d38d590726b37589d813f684e26eacc943c7eff82d26bc50610e447f90247d5cf54de6e068e21b43061c1de553f98a7b1388a272f42ddbfcb9c47cee9e810f3ccc28342eedf2114d4f650558982a4c8ce8c6c9f13092755563386cc61d49332f6f4e4cc8a51b685417a4cd3b477ef940849b75bec60933f5969175b54174eefec4ca6f11ec32b54790fbaf0f23f3dde2d83333c1e239a8a55b05665af0017d836991b22996e5ffe1229e4f07ef22cb81a26f7ff4f7b8ff7cf541cf94ff92f5e08f08684fc8b6aa3fdfbc75dd877ec6ed32aef428fe7673f368e84e1215ce4c30ab665fdf49aad54ad2bc0652972e61ff74578dd4aebfde3260288f2f96686d0c6d834cd05a02d851214ff5ad2a61ff1a41ac7cfa175d04f44de2ebfba446f099dc5b06b9811ec19cc610bce10b8904d327252af4569739e9d4db892899a4dd84bf1163b2384c06b0a723dd723078385e5fcebf9d75d25a0ec472ce83c2d422c223d144a42c91ac46de9a1adf02a5a513f49879a630a5ee31982189d616499d08c1fae74e4c4c714a8a06167690c58f30c60ff80bf02a5fcb0d0bcf7bc939b5daf0a995b1070a92291158e39e31d65cb6beab7778064a39ef6176178314ceee606a5000974903fb169af607a3871c910964444e20effe3811fcc4c838681c4d639b5c6cddfd1bb938f79f43a4ce9ed2f458977de723385a96a78b055fdf8049e6234a7ac568bcb1e3a32df8dd2c7770a28fe4b24d074ad2a2935ed8d7a28cfa47cc858c985ae66c14954bd2c6c7e921675c1a42775c77d8577a5a5960a5a5bd76e036e52182cc59e253ce4aa3321f5052bff9e95e8003e761741f315695106427201dc23a5689262cc4734fc432936d82f3974278cfec1cefe9d6e2cad9c2f484821c2686b598be6228f30ba578281f747c3b9b13566d8ba9c51f7ac00ac8a1c2a84049febd86a2f6e437352dd45d6498d6e5e7454edfb1501d112099e85b0a0c497b7230395385443efb5368eb8a7e9c524f5de0994f1a1e27b73e61add091c1ec31744bfd3afb3277d9c14f05324601b2a63a300c2141061bdae2d7d314dd944cc21c4087bf17102a63f61f3798a8c9c1944c724e103fa2493a85a20cc42930e4daddc9df01731500d6e2aa4dba31451dbf711ef900f5578e7ae0a89f6f5a259ae445c2778c5710361747603e41b8b748ce6932fdfd9cbb4cf4c69402eef2de21943837b051df584457f851ad9726fb9b794324919330b0a0a710aba290389aacf711c27eeaa45ea496a42ba6dc21a4a43baaff78156066216275dc027d23972d7e3aa4831d6fa95a3ba8e76b4a33fe3bd20b833c76f9290f225c98eb35e2d25290c99060a9a5efdaad7be8ff3c1c83df68e8d3f91c43183fc75a2e0d83e8463124d97c7b37d3cb02e23fa7aad2525656d335d8a3881ecd0dd20a174c40dd40f35188870c2090f50a453c143132e3990511273645768b24a379e7781051a005922ebb5cc90c311339481868acf16db0e52a89c000b088b43109a0b8f29ad24b0e0b2f3c11918aa44c9b2c58426507e78b2049720b05029014eb34286810702a4c83201151422ac8042ea2084121f56f001072c465615c3c68917bc18212506261cc864c036e6880a9815aa7851c580ea9e92e8e941077c69d005be40a11e433e423975b4c7907f2de8bc2715d40ebb04c16e66412dedd26743c9d307f45a8e3ff10845aa31ce828fc523541cbb58043f281e798ec35feacd61dcca9f9f037ac607246a249224f9bf074521ce7ead25011f09901ae31e7f0272d0b714ca81e33cd14524483c0e30922c6aef8b30108cdffb22f8bd11e60cc819092e228bc849d2281fb90f42a17ce41eb6c1f789b51ae3fcc19fe417c21ca448485ed89fee92d6a854572653191539f8ded33556c47b0ce33c11665f2c52ff138fe42fe27df6c6221e901a9b3f2d7e0ebec72292e72063a12a8a45405014aab179c7aab78733e8febc32128c9001dd20f8783f08067cbc0fdbc0f31ec6c18f920e5135123ffe4fcce2d7d88571ffe1cfcf81e77da2508dddf744203576f1bdf7efff958d22d724bd6307bd8d3ed597c8b8d2be5c41ea9fbf88fc42cffb2c1e9947eec57f71d8598e4ef1f4dd2fa5cfd1d0dd7e76fbfbb9d08e3b7cec0bb3d22a7ed14d27518dd9fc423566ff089523548af87f7f844a112ad93ec6e291cfc52353aca5b63f492c4ea10dbb35ac8f9f03ff4f44f221c9b9bb000412acb566b6b51d7781d8b7c0de7b2f92effd6b8824bf87bfbe04be904a112458ec92bb976d5c6948a8e047e23fe3277d9c9f9f6bec17a96fedd774621197eb06767353f3e5a907100d3a7023a0b8d653161a38eea6a6e3e1fe392a28a5cdf1745dd7e9c0a0bff4d9b3b580dfad9d679ea0e7fd17660eecc2d69eadafb65a9ef740ea4d3ff839677b7373f343eedf74617964777fa3439ba2dde5f013a78f3e3ece8731c06788582c421f479c361b740e4c86111161f6a9089b20a594be7e4d1a439e3e3f26a6e37fadb5de5602a88d4d6fec215784691feb4d151fd407a1fe06f53ba8b00cf077df8921748f45d88b677f00c2061d741cedd9933b614f2a23c46cba3b30c269d7dfa0489d5295524a7ff8487bf848ff863dbb481587d8bfa28ffe42b69f7fc0e6ebd7016a7aa438b6fdd724cadb3ecffb0c46a4fefd3aded8936701f587d4bf22ace8a68ab73fdad7f65f5509ecf3731189bff748ea7f3fc96bbf797544ce36eeb61eb1fff507185ddfbbdcd91fc1deb747f63b7bed5b6bafb53f64ff865ef3b146b7a469f6d1f6a32096acf8e8d75ab156ec14ebc41d1d1dd923ebd464addc6aad5827cb6465c94a95d354e976ca56d1a34ab356ac95a37a64ad1c0de183b5f229ebeb47170de3de5b42e89ee0a7d07aef67d8af2d21be2916a7d47a5387b8c67e4ce912ef8efc1aebfe86b0ee27d9d15af7f4a87b11ba2fa1db8013b9073f85fb2dfbd92614fa0146cfc838e12467743f82dd4160edec5ff7753f23a44ad4c9c7ee636774599d76f7d5a9ab5776f722745f43bff2b1fb9b9056d558f73acc59397b568d890d8ad31423a4274a4b4cbbfb5c9d9e6aad75886f116c287341d71a1166bf0648a5d98830db7a24dc83cf410bc9fd16069c26c2071b64edaeab52d2f9f8683b9bb0060cbd308a4d1340455b7d483908c5b2676bd23dc691196480ac4b704d83a7041fa9d0d08f8e9539eecb163780bb67d405f68b48ceddc522f92dcc8f1491dce7502f695ae39e1e712f02f725703fc51e0f83eee1367a553186e107bfcf5fe4fbfcf873fe3fd22a227f2ca1ed57f05bd9c794166106713f82c51cf7e423a75463dc12758a9de19e5ef5d8a0bb9f1cf722703ed2ff42252cacb28f293d82dda5fed145c33628f291092081becf3d08940b41a831ff4b29168a6512cda1a11f5db40e2d6306d1b7721e7444a081d457e6a13e5e42b555dba5fe25deb5da72c65effc3e2118d2937a95407e8be9c57bfde97d7deef43b8a276fc893c2f30a50b77f75e97fd4297ae6ddf5ad7a3e069d74b0617aaf40055e5a8073249589898c08918345554d80105387859e09480cc0f58264069010be98f2911585f6cb0c6d4e030ba2f57944320d821cb07169c18d1c0a488303a1c4616133607659a8ce185ca07a32d482fe28922ba8c80fefb4c226badada0cf3c1096499ce36a79c4b90a824b5b44ae077c735f166d4be4775942b5f7de7befbd3f9ea0a02c537d8b5d3e7b30767d1e4aa9ffc49352297978b2431368b87889a108dbb605e0818b325dc02801c1050d5395150f275c39e1616675564891e204154bbc90ea0103b3ccbe1e3c063a3052c4473b03c1eb6c8285a6134ae005123e9c805e26451c21e58872b25466092549592894eda2c9cc5e23b65081d3f2e10a386ce1421830442d81eb184f4e34a1c31751339820851784b8130927ab2594b842430f51e02f9eb8dc9440258408a01c4d41a1f6c53d53e5a90a0966f63e29b54047b0821b21c4a55962882d4dac6070027bf1c464881fa4f08202ac29a498c04c716187104435b9623b8aa18b271572c861eaca13586c38aadd282c3c99c051519155c5521827a8016361f9828a2b48a9008617299420c32ec17266896f09c19826a92790b4e082092a40d4c0858a1e986608a382962b386cbb02a60a4b0f51a409f380ab122c5931c2082f3860344ae026b6bf8fd3e693e7612e094b0c1c161ab0961338a1ae199420630b1a8eba78c129a0b2e93153c60c362a8430e18b245dcea7285034c19244a6a10b9ac317aa2b426c61060a25ac8d0b2c504a8a8ec8a0020724905c0881175fb0fcd0c2cc72d400309c39411067b26c01c515161d761803ea8654e50a2e18f8e00322f45595816279d22409284eb6c04ae6d39c53c82b0cb487a723306e6081ca10634c2c490c30c107ac294f61ae687169a1ef190a7ce17445164cb8786282b7c062a48b70a8c20b174861b428c2f6ea21b4e35d5574e97259cd3468d08c1182292a325ce1334478d1421a2f9c3c0581850c5380d1b26b4023c513685a18010ae817141061e62ba18b2f6e4f9a2841152820220c0c59e8550d41dcc003d6155eac985a101155d48308b448a1439adb92227e680b5d822f6b59b0010c0a313c91e08b1b3643c410ad3031e830c50a3062f0b2028f952f88a0d242058248c109941823d8a264664184526b6309e3051c5cc0720318584262684a840b5ed3554f45000a0b55ba608235860a2cb29c1485408a1fc44c69410c2f78a05273491861502103cb0a325431f1155752c0291d4db96d59a2c50c4a7c5fb5bd924f2a6923658412440021258c0a279862722f5c896206064e60c51529e852c69426ae787941e804596069c104c4096424816f57b4840004935156150d47625039152bae6cc1228b2f5ab088b2e2ca95a3095c49534413529a8e30c208259abe7829c304942d37e02aaeecc0648a2544504315b6146e5841cba52908436a05289c606215c5c4545cb9019c5a80c952250dd58d09ab99a44b1f98179fd1bea2e8e20b29a42963182551e68ad22d925285cdcb12324aaeaab89114b53031f0b0a50a1732575ac0d952060e696ce8224b8da9e8090b3138a922c5929929b005e30446510d41647162820f484e4daea52e8ab054a970e508a8218010a34a1933648c81c60b1728d825d74a0a94889164264a072aca40c345d764891472a88d41620a8e05a72a986431012ce28a1718430e98a50a0ce451411f612542135b98288c782a33054fe18482ea450c5ec22ce182cb942c4e3fec78b3fa4f67983d02dd81829e443c7e4679d0efbcebee2bddaa2948539b764a1d5417d54979771d893ef54cf09610d9104326a03e94a80fdfdc570e04c17ff137a33e5c8411a96594b15dec66d4c7dc14892edda50e8a8f9d120df21d29adcd14e94694b69d9215bbb253b291daf8bb4e69d65e5f55c24f92903a251f5f38258e896be294f0cd673b4f1f9bc157180b67f90cf6f4711aafe619f9ecc6d3f78e3c263efba7ef21f92c7cfa5e92cfc42e4ef3da14a7d5db138ff2d992cf927c66f3d9ebcb8899da14eae674b3b2bb324eb35635e6eff32e1c333ee7e9775d97ae9bf219cecf6e9e7e27a6b3f219067a7a8f983c367aa5d1589b9af9f910df7c34735523c458b01067e134a1570b3da3d03b0abd30f4c4d04bc249d8b684a37cc45da6782cabd2f0138fd12ff312539baa41bd9cb4954d1fcaa69fd54109bb251fe9e308bb2961f7d441855d948ff475c24e2aeca6c2aeaa13d359851d538dd5321ea3cfe4081b7d9a175667460ca9ef9ed0e7868574d708e9de995b87ee9c90d28d13ce2f481f0eefee6ec86d0ec8b3aa2de3f5e6b5cbe41aa5c1c2f546ba8b5d0e4beff353f71713d3a64fdddddd3ff79acf3ed17320d586f386f9330573d7a5156230c4352156f291be4d88a1f848e7b66985b8537262af6c96b5b237fab99beaba6e0a94cf280da449fb794aa37ce613e66ad3efaa3aceb3aeaa19fa15cb675e6dd3a7945372e73667801068ceeeec608e25b497d66a8acfca7aa34f5b436a965addb4b5809ac584dd8993f2e8de6b3ebbcd9aa5b63beb33cff2917ed6f713de9004f7e8774c5d53a7e4853a8a2e3ba5ce69122941e9962afdce4ad7e4335c467dead38b2f5668220d162f9a1043d67f4ddacf991bc040c1102d502141e6448184d11828175ec082ac0b6822881da0c420431818c85a6db5d66da4a898acd7d09ffbccf9570ec49d92d35ab56ec9ca53d78509a44dbb299bd22eaa93eaa6bace7643eab69c9287f56fc879ab3e6d0df96dc57a55cdf8488154bd69f5b75695d629754ad6aa5aab4e690a4ca7b4e9528dd1e7946a8cbe52a529c0045738a98245b50219926a20aa87306582a0ca828277e5e305b0c2834597ae4deb5fdbae7fbf34726ddb4112e8fad3b5544cc6a6ff23c4bbd60828cd5065e4c30e4348213dcc981d5ca88286274c60208b90ceb850450a540f67c890fe78d2402d86f8628b18c080828674aca16c76bd786c06d47e90b5393a33887ace1ca9752bba6610bddb45f02545fde9d3f96cf799bd9e345d63f35e1fe7388ee3eee5ec9df65e7befdf7bafb51cc800b687cc17f47c6ecb90a5533c56471d3fff7d7cf6faf9a3cf7468e4e81b9c19395c36d4881ef9ac06e8673fb016c863e346cf873fc59f387efafcecd278cd8d98f86cc7cb9e5a71a70985267d5063f571173d5513b3048bd254c7ac9f6d7eb63810e4cbf1401c6645e749292c4ad3af507cdc5aacd294a50ee4bea72d5dcb42f1b1de6b977cac5368e735d69774844628047d0552572fada530d6faf5fa0c62cf6de0e775ad56db9982b19f07e23f495d063fefe21096a6994097568986a585b22b149ff914bbe43467f2a5ba774cd1a53fd94f7cc67d110980b71b18f1f8007c1129f4f647a100d407000f2c1402e05f35569f4a11a1e70100f1087ef178211ee2112a4578bcd0cf1a13128f501754d852237988403fe8eecba1495259dab682235dfaacf2259f5ddff5332cac5715cbc7fa6058b37caccf13d6343ed6b711da1ba1350aed516899f8583f0c2d928ff5c5d026f9581f47686d3ed6f709ed131feb5710a22042d0d3a6faf57fc25ae5637da0b04e8555cac7fa39c26a0beb93fa366185f2857529ac532a938fd54a975dbf7efda0d0996aacfe18fa148f7a85ae13ba54e8533e56852ea63e4ee833eaef08656ec663f56b928dc957234f332b082719144e324738375038f74f38b74f48378ed0b718fa0e43df1fceddb36d8474f38474c33cba5f21dd3a21dd34c2b973c2b95de1dc33c2bb71c29a284a6afb269c5fc840456deb707e41aa095b21b7c17096d93b42da54b1a854dd4d7556a3345278cb6ebbfee7f9c671a2bfbe65aa6f9bea5ba5fa76a9be87d6be6d0d0177141d6f5b0d98240a3d3a3edf79ad8eaf4fa7fcdd3a42eb31fad356af2887efb8e093d2494558e1b67936cda75b0230a17d7c66ad44372aedf6343e66f916303c80b121674f2a302dd0d8936a892cbac4997bef5d820a1a2e51d5d578163dabcad8665599a3bd5fb75d9fa78accd26bdf6ddd86e5cd0e81836d907fee225e23c1d795e67dfd7a84c9fc5f68a4c2109945ef8f30098a1f0d8f86c8efc1d048054c7e7f3444e6ffde0b27e971e0b5bf0574bb03369bfb30044ea47adb5a4619f6e9733081f853b10193f4383800894b23af4dadb5362c9dd26b67d4bfa81f60e26bb1887d64a1ddc89412822286ea4b16aa2f40507da142f5054a12d517232c2a2fb72a2a2f52545e9ea8bcf840e5050a9597242a2f21a0f26244d525abcb8daa8b557dfb9313b939a775f1725f4be732b83484fbf5e9ffed72b59fc10d43f0b7f68a21d0e96f4f408225c1926049b024d82f4242424242615e30428d50a47d8d50242b9cb8bb7b540d6d2d5d7b729ce7791cd7715cc7795ef77dc9bdc7711cf7ddf4b8ae13bd556fc8d550887dfcf543ce558db8ecb457c422e83a8927aa2e4c3e5268ea607d1f1b205e2590e9db48b19d2220f3e449803c3d4fb7f6cba0aeb1a1eed4a9fbb8a83bc539ad20d6c7a55fae178f7eede99fe97f605350bfd5e27af1589e96106fcbb0681b377aa6bb97d6d217da54744561840bb9bbefd2defd3d721ab64c93e8f7c49308f4de5f2e1ac04a77ef335e6ced1577d5e2a361af5561cfa95473bdc850cd3da6df699b4e0439d1458306751f9cd319d6290f97cfaad52e903ee8334a29fd36a55f67030c5d82e5b7b9d79be3becd793b04ae7e171a71b9388ea3db1580dd3da88374b7e4b611d7bee2a43ce867198aa21c3d799f8651ae986472c1a246528111a9a5fdb93730b96051dbf58b36155f3ce0faa37eb90b79fac886d0e5d010f54177fd1f427b7e66a24e1831611bf2d9e59cd3ccb4eeeeced3536bc269a8d69187bab88129b5cb8982ed5f6542e8a16b916aadf53190b5eb5b266cd54362c2695739559c5aab1d6357573705878ae9eeeeeeee8e4587135c8af2a00290caf4bd3583a84f71a19ae2a1524dc960a798586bede5a8c0a401b305151828b68b0a8cd476d1900acc0fdb356bee10d9882d576e07f6e717b12f1ea152c522f4af78e4481116793e8c48ddf3eb9ea2cd0ca241e6249a9a082682be9043409b64266ee0c02d74dd934a8b0966e8f103083c82a4ede00ee246689c042602dd834acb514d131f77a1b6a0a283a3bcec79b48913888409523aecd2ae3da9a09e2022639f613c4fc89896c9d367d6fd0052c2115ac624a2af9f75cc9e95893dab17f70f326933833f7fc88249a47f2ea06e2a527a42ced3acdaa55139505f325f59b410548a071a1e038e4b699a317f1a628973c4126b8d23368941cc987f114ad4a619e49f7383a65fd6a61da99db0963d4a0d5edceb5ccec84de847b66daab1d74b07bbd6a65dbffc309d5e73bf9be30caa404d34fd72dc38ae3252ce36362e23a3c7e859bf8aeeded39ea0b50e858d90d5608ddf80fa060767862b07a491535dc7eae854a73a3a3e77c0574b884fcf61608d1a3e792c0f4f75ca03ba720ee8a10e488386b53a2d213aad0cea0ba461dd55ec40de016becb432f076153b30611606ab4e613bb80646046f11cd76291fe70399c125b463dce1e328eea0414f1f67d02e1f95740f1fe7532a5aa619e43b66d0ff7abd6a5e165b5bb10e62d31a326eeca3d63737200ece8c9c1f433da6982034a6867a08cda9a35f2fdced703b3b3b7767e70667c68c56109b1d4cdab3782409896b66d8b8340da74143bb6e727066bc5ef5f5f257ce6b87060d1d9dd76b67a7460d184c88851b3774b4bb6c8c6ccc8d1b3db4e7c68d9e9e0f451c3e3f3f40160808a802013910050a4311070e1f9f9f1f20a01c39c610144510870ff5c1810387cf0f1010d00e50888558f5188d01e518633a643b822aa8a0821c39c671ec197f1cc770671c5fe34844853c69754a8697d114a436075d1fc4e0e63068fd41ebd6c6f3b6778f63065a747ddb1232827b04bb8d0cedea974e8e7b08ec5b43ed245b9e0d3a1d777d206e2bd8b9565ae9ae960b83f67c9e1d7409ee1d7bfad4b1e7f358d1258841ecb3d89e17026f9bfcb3cd8e12baa3a47aadd6ee28b9b65dbfacb6203b4aa2b2b2e8d2acaada51c295a14b2ca4ee90a185d4a73565d19e3fdfb24024b5b153f74abdbf4a1b5bfb2d6dfce5cd9295d1de97d1e067f7441072a96d3232da728096116e4b7aa46c8c2e7ba636fe3c3a195dea26d99810e63dce73ef21cc13a3dc9ff1aecf4b52726cfcaef0272afc91aa31fcb99341a1f3cba6d033962a0da7d2eee39735551af7f8654f515c8064522651cdff6cfc37fc89f201e077496dfcdc4f55039cbce2cfd30874f963dbf89f36e690d0a5cc463f9914da7bca01f7383f5b1cdc9f21ca80384e28530a428f5034908dabb2816c3e6299952e7d6e3e379fab4964f3f87db89844358fdf274b69e3bf1df9dc623d533d6270729e91b32be79c9c69e4ac93f32be79d9cb38e1939bb72cec99946ce3a39bf72dec9b946ceb873d7ed4906258b9a44ad0f00ee74b86b2be79bee2ce219e4919934205b09a494450e0d9dd74e0d180f05000d9dd74e0d188f8d49e433ef496dab31fca596cd6a7bdaf8a9d2fc7d7c367eafc70a83daf5e2f9c9aa31fc18d4aefd93258b4297da96b5f15fabbf7e8f989e313d533d553ed33d51e8b0a74ccfcd56b1c7aae78a9e2c405c816c40b65b451d513d564036d16a0661978ff8b91e2bed63e583a49b6463740964db3231fae6f5db21780655a01aa68f9f270a64037a02a43489720964c3c69f6fc21a5dc21a523308bfd788f211ffcf13f5514389c9033fae0166e32f7fb26c1cf2d4978ff85fbaea1a5136a266100e7d5a42bcadc5f7117f8da8ef8912cb0bec1b593308ff9735a236b6e2ced50cc2df0ab70d161b7f16f8b54ddbb4cd715c6b396b3b6bb1b59eb59fb5d95ad0da0cd60a367ed913a7f558790c3f067bca384d3795a0cc66dffb1e2b2f943df111bf0d654a3ee21f5aa2edce397ad0a5cc26b3511f6e820ccac6b2a58d7f4ea2df250f299befd3df77f37d38df37e3fb5cdf97f37d343edde4237efd3483f07ba176f211ffac7920ae9b72741388238342cbc6e8f2c7c69f653b4c5a8fd58ce1efb1a269e3ef213369faa8c6f0e39fb3270b9df34dce3839cfc8d995734ece3472d6c9d9036563b4d712e2ed9c03d4645664369f096dfc32fcb225d914197e1e559328b6f1e71d6b6b580bb396c75a1bd6deb0b6c7da0e7cfb4f3ef336fefc79b8fbbc1afafaa8d2729e6a0c5bf168e3cfad964c8cf69e7e0e948f7808076819fbfb9ca81984dfdb51703ee7c963f9739e768c3ca226917dfc42b649941fdb1d36d32e7b64b68ddf5b426e6c2bfa20cd20fc184cf558d53898f3e4b31ca89ca849d4c3472b0af9881f881339a3435d9b4198569b1954ce2b36ce62ae6d8c3f7b5e0dfdaf1524b7c4116610fe213b76149c4ac311b1c5163f5013ed0f8a164ca28f520bde96061878f3f3b0180291d4e702689267b6b14c4ca007458eb2d1bd4f67d324dab1edd31826ad089a6ddf7beda0a5cca91a841cd380b83f6559601f0293f6516c3badf83efb7df7fbb8efebbe0f7f9ff77d5d0b83a2fd7d2ee6a8d225d8b7f3554697a031904197734a03237439b3a666f7d6c52173539a446d4a33ab141a32b75bb74ddbba08e25077237022d64c9f953c7dec531f7353ac199aa89199827682890a23cb0a255038410159c309861321c86c411bc68eac2cdd2cb6122c913584fd40660eb4615dc10a24aa3ad0861e83094cd83068c32338aec674412619800b4641e0e84226d16982b4a22702144491804c32124103159f14218aa0218335b436fc40daf0881d41539a21c8249ec5e906d08a14ab16961c88b0422619b120ed30d680f548ec86306a20934c3053481bd0863baef870d3a00d634ba4a2f20d68436a0228aa90c81a1e400832e380369c479039e236c30a232c26b286423732bbaa0a558c98814c92a9d8e245921955a415a70f2007b4a14b41a1c21359431c5dc84c03b4e1914b021990d29049c62b351448fb353c2274235570d28ad807403feb8036c4f1e24c561259c3f9050c647e8136ac3928a1c444d6706aa1425a31d9a5752a2898b6d3a86981f9fb3ccfc31d777b6a60456c90f76fdc2c94880289ace1cf1392abe53ac949e61afab82991342d4c6476b08604d0c18acc15aca101ce5c91993ba28c2e8e486b24c6159971172e5a1c71d10289cc18aca10f1990c8ec813524ea5223f3ccad22a2e49af9c4162b10046b18e3f24415996dc4206b489b6a50d4c85c03d670480a0f614a640d67369c6045660dd6705e918414996fc01a16c0e889cc2e2e4e54a991398786ced31393d5921c1a5664d6792151268dcd8a86ce6b8746e110054907467f921ec2a838499e25e412b28605704a8189ac5100a7145ead20577c5dd0431e2bb28634ea043457647e8135b42c845122f3cc3c1e8215aa6ab4825cd1461613a623212bb056902bda003d842d216b083611e588cc33f73c8df1c5928d474265c8dc1c086c6411596fe4101c8215a93f8b90e10826b288ac5f447a082be2304e1c813ecf12b288742769580a6ddb0a726f84366cf0843c346ed4b4c01b3961180ad5c0880815911e1691459ea4ba4d17594a123d643541464d41829c61283d61458412a12888ac2321b2b0618b124a48fa7ad2325397269008e38a16d024400b13ab1aa65c51220c49bb28a9aa6a5ac2063135923e17a5a32e701acddac0031048706269a6018276544e807182897694daea16ecf018fd1d3b768462e872467150bac49c1379fa94de15d0cfcfcf40e1247fc2493a5078c4c714328e48a0ff0993c0c4207f6c7eb63810a4e68550a030c98c42861358207f9e0a8cc817edfc63db9d2d68abb5bef344a9cc704ad42ba7c441f19977c2f5d9cdffec9b9711a1736e09b1373f61076548f79c3bd741754f59baec3c9b67f3d9134f89d64e8b5d3b5bd2f7f7baf591b3f70b3700ee10ec97e0aedf853fe531fa57680797e4e366b8a41f589a4be2b2b8345d8d53f29003a5cfc662b09ba15894e6663c86df5b41b0d026f236a4e8d25a4d6d5a7fc85a59ab6d0349d3b74f95e6e3315adaa87aab3686d0a56755299a3589ac076856e9d9327d8b3483760d85364f199a5679553ebb2008048239407004c11808ea00411908ee0041efda6cb67f1bf7aa0183f1d4abebacf15654cbbb387c7e80728c311d387c7e80728c311da28773858306e7aade27385795d6bab5b298b3396f09e6881f579c2d262d5b11e74a6cdd72ce3967d0cc1516e87d599e47af2e56192bab2e3ee25654ab4b4b4aaac84a958f384fd9006db48280667cc42f82b2317a04db026f1b5f5bcef989120832b5982a0d348305dea697afad75bb6addf063acf5ebf53f8eadab8a736e6dd1bab5b298b42c45b3540bcdc69f6d3ea34a469bcb1ee8b4d62de700c111046320a803046520b803048340b00210fcb27cc49f6f2bca13ab78ace8b215d5aa12c3dd7c22fe9b90c763f8b5eb3589be6b75ad70aac8e373cbb52feb4be3f30394638ce990f9fc00e518633a642d0d70dcdc88ad2de69d33f0e6e30ccc628eb875ab34f0662396365bc4b9dab8d5d4baf988a766107e2e046f64f05f2b9f6526e688adae1593766d1ec30fde36166d36dc55f299f7dcdfbf4f6ed82383b66dbc8159b5bd0fe15b9bdb2fa7e5abdab582705e38abae2a0db4e2318c3fdf00a77cc47fa315244bf9881f0684ce4f6c45302dfa3eb94a3ef680d7ca478cc5b52a2fd83504ad844d1bbfe7b431938ff8bd25caae74796d525695a66b0c3fc65abf5effa590add25a55382bdd27d776add898b39a313293d68a6a4565b1f17fad209c549eca553ecb72da97e531fc1cb5e29eecb2566deebd5610ae1cdadce3c882f3c45bbf34468676aef988bf75f39937895a698c36ae61b2f17f6129c4b3d1c2e0892e5b4d55dde6b1a2cbaf15b5f1632083c6dfbab5ae5af85b4e5c0da3dce08438693c86ff863857385838591a63ad5faf5268977ae3c749e3f6b12796338c367e90a9326dfc2dab49043efe5695cf5a8fbf25e6a7a606a8a626474dcd585313aba9d1515323aba9d95153d312bdd0fe781e90e7e5f0bcd1f3629ea7c3f3649eb7c3f33eefebf6ee7bdfba398d525de16f5db5d27ccd518d166636ee5153dbf80c945dfa94addbc65fd6d836eec8b24669e3cf9f6775cbe0bf379ff9e3bf57378bab71471c92cfbac723d8e5c5826197374dd22e7d9aec9263b2718f5d5eab8d3dcfd3e90017b12e91f3fc5d15a62a4c52551826db755505e6568584198a55f5254dd5172aaabe88e9fe87781bbf1410cfd94713cded9b8f263a67cfcf1d281343cfe76e956641091d5755699c92a9c43400ce77cf75f199d424ca5874ce3814e6d86577cfd52a0d47cc5dcc58f7dd18bbfbda068d76f7542c3917769685a16f4f4c506ce1ee9e7be2a0b8288ec98ad3369072dadd73509c36a75ce063f716f8d8693083bae76c4ec395539249a18d883083ba9781a14b2343dd05fb7b2f2c87f69565e97266d53d89d47df375df54e02e9530896ebeb3f996d5e126e46e2d213efb8a79a7055d4ea8fc3a1c81da8435e1087487d0c850100f3ef0b17b102a6de8e6818fdd073ece4d450cf8d8d5cfb67e9e377be1bd77ce7be7bcd7523a6e8f7adccde36e4ea35caeb82b9fa5e98e7c6677f75d92cf265599aaeec9eec0ddd5a838e26e3876d92175b64e6977efd13b543beabeeb7a1ce99ebeb04bca4404bba44948bbf4716197140a948f26fa1372af071f4ca22333a8fbee2d306748e6d87d87bbcf18f4d1447fbb040ca470b76e830744a083139e08b3bb2f523f97d5daf2dcd7cb0222d387077002a60fae467974df3d7742d7fd05b519d495e063f75c8dfaa0264c1edd771485dd7dc99db03b9ffad936896e93887e97af767745ad3483bac7602a5fd5ac19d4ed187dec9ec8194dc39b3583baa519d40dfd701a67068bdccdc7ee7f064dbfe46ebbfb1e3ebbfa4aa7069aa42569cb0a56e4f7ed579e8068d0c1d5f60915d299b5bde2d811ba7c9817badc517b08ed90a5c00ad9183d7114a5379bdef7eed3efa978438ba654fce1cdd8bd69555c4e2b502ca715fbfe17e21974c36e3e89424ee8f9f969083e9e551bfc960d7b64d0e0d305801f82bd7783ef9d965e6897e8effdbf0b34f019b6df0a2d9d3e132d1627874192ae9f3308a36b97d67cbc9f4113f72b0925dcbf0fc48940a1e797164cac5f7714a2485e265611a791e0b11ff56bfdb106a4d240f05805a16e1b38e81a100b2ea0384efa77399f829ab0546181891467b2c8ea45d416318c200a191ab4ccf9a4e5699714cbae4fb148c1c52d0525326420410ac8fa1d541ac7831723a49098864881ac0fa4fe05378dd72447db2b584197a0bbffb534ab92c92268dfb3ea082c998a516ecc3fd30b4e0dc28010c1f704fae8b50651f30cf2e769418365defe3c5f1ae198360d2f09b2bb37e9d23a101a1c1a12a24fc6ffd74b835063d5060eba1cdae3fe1af4d06f3ae9e349654cd040a32759de2b2c2c9fd12fcd579aab1e208a969dd156bc5917cbc7eaf75e0b0499a87b75edbdba589973ed2adbd39b6af528c9ccae1fd6ae4fc9b8b0c720d529b0eaa6b65deb5ba71f96cfaad7c2ae94523ae4caccdc2b77ed4c1f1e781bd3c787c533896cd9b33df0aaff9a447406791f16f5e14d1ef42bfdf2f362575a27b5f76adeabe954fc94e89737acb51944ebbdb51944e9e71a78f562da957eced647138db3a7d0aedf6a9a4433a7ac26f0a774d6aed669d7c793e87eb59976df717806d917530e79661bee2998f18d0deed6ce3573f656bff47635e0d3d066670ce2a11e34163df071ac34fb76732f5469fedcac12dadc7f8001108cf8acf5dc739f9f7b5abbb64924001a901ae33e7f5a67ad41ad5b5ad7686da3b5d6bad3fa8f788c7b20dc73dcdb88e58caa115b620960d881073e72dcd3c8d2a5cbf5f2197eeead7efb78ef20f29e7b0cfaccc39df781e8818fdcacda1a094f010ea5a0e917c9d3a7acc1b4fdc7ca13fad4e9d6527be7fb9e6209816d6dad75bceff33cdba1d0b232da3fdb2c9fd56c9a26916cfb8f50f417b5fd7baa313cdf0b3fa5a729fb737afabea7ede52755bfaa4afbb2ea67e5b3324ecb463c3caefd55f1d855cc350cacbeaca74acb463969fb979f5466c2635f3167b044d72fbfaccd79222ef1fd6c9fedb36dffecb67a0da5dbfaccfa687fd60dd4a40693933cb30dfd4c9de749534b376d832db69592929ab7fbe194096d56d00193c63363f6f1139accb63c59701df6be0cb65a1a7c0e9b2e8b36f81c48c71f783ece7a0d2802a9a079b0e6a8e8ce711cc731d9b2319a8cae4da2eeed673fa25489d1064718a4a0f1979ea6f4fe9d93b6012552a5a526155b436e36f7259e737a35540a2d9eb6ae3c56b4cd1019c7d59cf78a9982f55a6bd50ad2dd76fd19721d282ba3cbf17e487776ccece019b473abb41d313b78474c0653e8f2c64dccae8fc3466564746913556da26c4b48b8a738236b0675cf651bcac468ff0ecfa0c9d944756e83c494ab6a06d5e75c523e569b28eac3d5c4e4515d4f20c1f37a59ce26ca266a46964d948ed40cf2b99df82ea91da99d9a4beac64d08076819dbfe8dab1b5c4c1f3b62e88ddb0d333b50a0d9f573177e50e1173583ead7ef490cf5f171993cead724a0d815b4f8c60d876d12715f1fc76d12d9afe58ddbbeb139f1866d06d5c7604a973bb7d6d30caaa14b88b7b9efc986364f33a8d65ccda02a14a09aa8e40c5596414c32e5d000000000041315402028140c880422a14828cb635ded3e14000e7f9650704a174a434992a2288a621052c61042083000184208325435a32000156e78e1daa49fd1397a621f6b2be61dceced731cd9850b7d7ded1c26ecb5b6ad01417638b049935de30d2c87d472cd972b28037a1195a4d12e3bf245c3d515a31e9dbc1153b8cbd40d557eeb52642cf9def6ca380ee8d40d2c522073546238ddb250feeaad99b732d907b6ecca77f847ffdfd373ffdf6f3888bd89f7efff9efdfff3cc4a6d112a62d68ec4c8b89238527a4cf0d5788a5417e0caa5a650ddeed362fe5b2eb571d7906b0dbdf3b3bfa20ac98eb40f80720393ab7fae088db8d088e1ac0727a0cfc8a8afcb719c26023357aa574ad3a9a6014e102ba69c0fc399448e41545f8b5dd15c0d934b359647399bec2d33ce403dd4b685859f2939ad7045762274333264087dd440076a51944db1ba6f1b28063c4f7921024649e7c98a358b9afabdb53a37b32dfbf054925bc4f8f7179fa6d48339b4224c3017760a4068bf8354d4d106d983d7387f5f027c4c9c820c7b3cc803405d3d742cb6b164c7ff49118e826f64ead004035a914c5df0d8ebc198b305736e2a6f2c436cedb0bf039d627e46568cdab7ae2e3889c329d489cf7f61f467e681464173e1b0745cda3552b32dbf78800e5d969cef8c230a700cac50845596e6a3d46974511db441f6747a9d368310fde90e1660bb96483ba9a14e403cfce57b1e69850a7d73cf4b85cb307638f1c77ddff95fd642f530f9fe06d1414133875a3715f087fa0432ba68fe20394e423b1a451edf075b310e45996001739bd7a3e797406d42de7d5a60c4372b7f4c7634c688d4817001b87241a4487838245f3dc7c1096c973cd0dc20315c40c08724503e78b1808e302ff8b84a0db2b1058ed988c97527434bd152b6691c515bff862f7e3e214575c314516ebb9e2a09066202c73aaed6b6ebabaa8ba2456cb90cc6fc460c0843985993bc3b7a260604f3e54573e918682e9ce6726ff99152cd402e25a87d94f298faa0a3afb1d668585f82515a901dc7d0cfb9cd60a88d4b7dda0f31b7de58d452f41aedddb55a0e24eb88b79693a73e48049e0c67e8808e7d16042ff08e7eb8e46c7b0abc8061e327c02ed61a1ce0681d1fa0a34a74e50c1f65b9c51301f513412c62d1af9899ed028a915554d5cdeb023b7d9156eae147f9bbe5b209e4734a8ebb542a2790970100eb2554a5add2cb1d129f3fc4b245d7ef1637cf24611a0be70e9a254b050a359cae699d7316eceac5cf8445408839b2eff463a624b52ae117534b363fc383352c11ab8bc85a924b161a387be077ad81f9dfffc3b26438beb04310b5a1396df5fc17b2d39ba1f914953bf0800fdc1f726eef78ce7fa1e5b1a387d07d2647152241c4ab26edef34fde5b7ea682dc836e831ea9e7a46053993fcf169d7e00bbf898bb28f6e29b4bc5cf4f3f70c3ce45d5438c16bae3ce83d921fcca6b038a1c48068526315d36128af0313da7b319c92e36b2a98068fcfcb75a24d376c47b11eaab138f11ea09963c4e797b1f3fe2afd97f56d5c45b293cf29e0e61da2eab241ad6a837b0651c2eb9d890abefaba33491ab20e7d59ec90c5260a43207b6eb198f2a5a9418abbafe3402db77264712d26f965f3ebfb5fada63ca5fdfd7a02b331dbf9c6abf9adc6862ecd117896d63a00ee3408401a8a384e24a0321d4a53cdc602f4685d768c95edcb6903f389f5fc51a6361e5104d2649c9de9d3bdf1fd4b3eddfbd739a59325e3e9996481f3c3b5fdb3062831c5e07f0c1553da22561f20f92e6bcf76e5135f578d55311e2b74415fcbb5b85527bd0e003b622b3cc0de72a8a9bbeaf6cf9ceec64df48a08d1b68e7fba7eb6234bf0852a992778e0ff2e579edaad0c24d2ac2b2b82664beabcb5c32658aed0578dd24fc1d5bec8f3e9f90674eff8c0838b2556e9246d64d5332d22e41b74521cc3c746c916053f1687a82a51e3adf0363aeaebe3344a15ff064bbdf2b10856bdc8551c937fa0c3b9f9cab9ed3e7f707267f4a89acbe5a4cd0950ca4c19d54d12fb13440a6be555ea9fe000ee5763a5669df850a7b3fb74930b605e50051be99fb7f1167a3845e3dae2f87d64cbd124ffdd0ff38c7f2ed8c6759274400c93369c891f5c2d78dad5107ebff6a2904324b50f812005f7a3bd2cf7f89ffca31d0dddab5d951a6b69d09e3820ca35a0e0fb5081623a40d158a33a4cc87a057197d478b5a4efc48aed2165fd5aa94f592f924cb08b6415b0957faa15968fd7255a4374dc806b52fce6519b94e2426255f791e32f99630428c6b519b13067689b2272a758f47d1f6201da524ae11bb6b68e84d62bcab2a6d7d015896aad3e07622451d3bb4338b1ca16e05b1920fdda29683c7c97319bdc33255e49612e33d1d708660436c9582c85d6ff30ec8f3d3ee5996785ee70b42b55981ce2c54a66b61e17b8abada9949d2ff5b3d05366cf95ad1a1882e7aa8fbd185e9607562103f3d7c54b24c3c67450b63a3a4f66d700c2b1bc55f9efcc2e583b09a25e4149d4ab01dafb2530fbe322f704e751ab48d85c7689ec9aec0191f85a7ce527f1230f6af3f8b2e2fca5767212b11ec84e1d56cad7195f7447cb9fcb7f30c4ebbed862fb982b0329d5c379dcdeac8d5acc23f6ba4c7b529b7ba30822db0ed5da00ece5866e9744128dea78fd5d60229b6e3d4612eb4c2c4d84d86fccc94f3a69ec1b31fe39170364d246894150a23570d17cc92a3e88fe58842aaf39d86e9f00169bd3a938e3c762e403020fee4d6355e9a13600c6fac41fc5302b944509435ebda67e852ed6e4b4627c59f01b753306b0d5b8e82201e048f309521da8b977cb0a32dfad9b629497beb18727ae5d2954c641aff6cab1b7d43531bf31969f4b7259beda4c6e8c14f41859fd35c9f0ff97c8cd1ae7302ecbc6bd26b3dcc227892c6363f74c0e05c284cb5bf561ac14e885a6c14ecc6faf63f803b9b143a8acd7ab3a6ac783028ce5025b195fa60de0967913dae641c2fc1f78e88b82aa5a12b8870837c80af70ec7c6bbf5055f40857da4e6b652561c63fca77b7d9ce95c45c60d06762f948d04ff943b2d4b62b2ed469fa74a8187d260169fca8e3e9cdc39e8b5b7c8bad4e51c9abedeb19db4f05a60d3c01fe847d253e327cfe9f23396afc3356117d91c99cc99267163ae09a7c9b961906d6e64f1f874572e293cf84431336fb308d0c43351e00d2dd65e49ab769b5d75a5bd13c5b9337b38dcf00380ab6399a3c59585a5868598615ddca40f4219758b9dd3b3515904c656c3f93e772b534156849deb5e82f0bde907f272099704a99a9041eaf65f30d9820f93c36503eedf289ef947e40caf17079e9a02e8856834dcd6833add0ef513cfd4b049eccb48de41581849dc2790f49c588d674dd3a86657955c3c11aa9b89a6db36ab88103941b3f29e2e8217c4b974f81a19abd36a5a92388e021f56a0d079f938041bb1c67bb08d526c94d41a40cc2dedccd885541c9a97a66bf9c8ca5f06313a4876e7b3a35feebdbb8f3f03c6e5329be4203c203c1af24d75153c685ee7dd837854e14bb705b6f38a0a4f6f9f5233bdea9e009978bf851f4389ff2ecafe950495c318893c51d932660276d27b26c1a658510a54c76102cae96bf488e3055180b4f41cb84279f170145a7c5aff829e45ce46f254f50464f5e49a62ccc57b2eaba2465f1544a4f73fdb29ba91db0badf8fa3871621e305321d83ec461f8c0b962f5655e88583094d6d111b56be75ac2a39c6f690bb61670927e91d2e385601def4268de6ead8e90ed30c1f88c5967a75bf1573be772c569b654fefdd0351ea4dd49a53e8a4fd5cace4738412ddd72ad67653e5019a0eb042de1a059632740dab63b068aaed4d6cef97edb68f7410631141f6c22f7753d8f7dc8e38d57522aad603d92e5406e51c4e37efa067d4a2ca3d115a78201a8266f4291d55dc86ed0dd1a5b04518e1b51e2dee4fc9f6c8d5130b2ed2b6dfb823ac546cf513218e60087fe54a81008106e4e3323385de6b57ed9355d71cb45d57111194989b404f42d147685a082c9db1eb17b8a8de25bfa2409054abf70980317264b622d0981ef09599848edfc2f26fe69d4dd1c593810199f55166d365bafa75ac89330ddd0d7d200a36246d15a048403feedece9233618e5328063c68473a7e63119c8b6d1523d404bbfa2650cab024e63897fac37f584c7510bc7c3e5891503e18447bccab7ef372b867d8fe33480340b0de608c2ba74c1ea88a2aa03528851dc50301604fe9a3f087ba1c61c040813d9bc8403d44a07102ce651dc8a715eac93df0f9388cb18f540407d074d68477a34f66ac30a61f490b686784109c08150c0141d08095238640f7c4ccabf34b5d6a9c09cc9a3e2128802160768011604ae7f7b16b7e0f9c014db63ec282f37d77a64937d1f740e9142721104df59971f83bb2d3a4243d02f5fd512542cbe42b5b2a2c8f4df283a2cf1fe010ea46b4fe44f0f5ba1f6b034b838496be3506785aef013101ee1669528a8475f96f16a591c6fefdc6ae1958c47e4576de483b1638111f710ffc8feac9c08bbc77152221ff3ce1a3029359178f7a7b48b405360f8a5e298f8b844be00439fbfa9f7b7459f8a552296761f279102f7daf66093283fff8fb099d533579da952cf0f23538142e97b66646dbd1be723c29affbc1f682360234252028a481d9660cab55a70e814f22a2acf9753db1e9207bff6352e2ab9114f6925fe597b337a4cf0da2f39db9390aa6a152f1aa0429e8abcc6ba40f025e0b7134e174e96e8cbde802e2f4b9da5cfa66eb0e07372aa57dec83291b302054f3fe0c60afee573c76d3596e6265a7db358ba9881f45c18e87612d398cf29ad52cf75646a592b8a61b3a97b3a0df8af396e06eb37c470c1c732b06e3d4ea78af3013b0d63721116bf1ee0d5fd37ce6ed5430e826a778f0df72e0e4c607a9b23e33e0e81b25e26ee1e76c9085e97f301624f6f6433d472939e6d5e52017538ceff303a9ea5173d5bc02894af9302d2346dc7a50a9e59912e73c9136a92ad9f132e2d8b68139a235a8e38e93c3562b51337d25fe11096a68dab1e37023bf6df529184903787fed652649a20c25744d3737715c6c78dd49d151fa4f8b0fee6978174de6049e02e2c263b8e93adfa404f599b6576ffb368f0d1c924f7ad26d3ff9f3883fd2ef0e8fc32facb1c10bef9c86593feb81e7d40fd0451cba7b2f311260d5fd90fcb8db059691c7701b40bf0de82c5ddb7d721c9ec0ea01672ba44aa7bdfcf52aa52432876399ddda13b562cb743d8744c6b4a478bbdfa9384963589a80a20f3dd5d6d462dcf5ffdf974022b50d683bd4dafe512a7d8e3a4fce15cff8f3fb03833f9ddfc3c5b37c97a4aba09810dcf49371e62cdff87438301029905f1dddc31258fedaffa04858664a5e000749702864ead1700d7c56608e36a09156019e06ba6beebadf737d9a75d9c6240cc3bc3eb35fffb9f233f47315cf22e75d801ad521b2eb3b32a50a0d6ed5a4a53a98c9c29e31a91a74e1331d28eaed0915d93bdf06f4b9348f90157df997bf05f006b12a919627c105cc47e9b3461099bf555a11c6fc12b02dae7d35fabc469b2abf26639e6b15527c5ca0ae539fac9cd7caedd40df1e19aeb29410c020ecace5c7a2ce74e32388e473bb43354195724db688ef3c5cb4e712caa049cd5b09c64925072be9dadb433e5dcfebc7f869dcdd118fc7905b347b8c1ac7839a026054f0fb7f97a8395ce94e0968aeab43592e7cfc1260c6a899b8d055a0dd0bc1f2e72e4193068af10b1fb8925237459a54fe8c70d61ca76d5f92cc4585a2846d3401d0a6a66e3894e00ae6ef24a5d149f70c8ab84ba07c8b578c58d83f57a08191438009f2982af00419654dcdf0f9dd6b6dd53368ee5018a92666bfeb8dd9cb01acebda69f7d4e9edc8d11861bded542c8eb0d965732c687852e4aac8396b023309da4b41a5d193c58ae88616cf4b45129e5caa0c2d1949a6043e03c348b3d1e49f1f18afe7137188d33fcd80d5831e470c4d8c5cca4c275bd461c426f6717436706754ca33a8e70ddbe017fc69833805dc5195e56556bf28a48e91e0f231461c439848daeb61b95051bcb69d47c07a6a21868c0f4463fd19c6e3dd264c31d40118ad711afa07687c81973d3fc03b4bdcb9149973cdae0ab16c6433cbb8361d93afb23c44ca5b74f0a2b460a31186cad93c53f585b41cb85511441498b2ad656ee2d856eb1b3b1d6cd0d3408e1d5c179acb1f0c1b24a695195830fc62018c1bd8ff712ba19d49e7cf8b60421d4655c238f37b3adc12370c64e15973f913542811d4906e32605afce4238549fb676c3212b1e90df475d3b13b97dae402e5d412a865bebf6288aaed0c89b935121b39c512c388a104f2c68f7240e0827ccdc5eb6275e9e676541fc689b8386d59e6c72102ea27e78176694a80f62e90fc72d421f24b8d0e426e1ab83d315a1e64112b258e1772fe1bc11152aa920447efdf3f7bff90b33629a7bcf693dc707293c073d3ff122c5b23898f0cd0c600c27fe22189c2f23431f9808f673e852759c7e2f9adebf884760993332161599b1dbbf6dc7d6f68d0228b93ae9240b781d49224a948b2c3c8bef0e2a2336e1c39095a55c6f6a8e2837e83dc59d09c2a9d113dbf2467deace0ce99e750994a2ce257c05cc599f676cb5517e6f3bb2c5d0ad75e9aa44b6e1b653dbba5bf074369bae1a593efb15bc609b76afc9c809dbe852a47e80c4660b90cca923162986102592f56219d518a388928acc153a423cbd78cc3cf0f73ae2f1b2fcf3603be1cc4a0c89266b232183eaba68be45832033220fe78c01e75dee74a2a82fd8d15a2ce6d60a10d8049da51148864fc7017abb90b4087bcd9efc8467e44222b2020091a7f3e6bc7563f34022c2b5c5a06adf55b8c03d5f763a6ac98ef2ba442a412deebb2083432b670b5e7ed5c7c5482e4d1f284a96e9bbb9dbcfedd14d3da7aebf3801da08c6895b4569c0d6f4afcdb0dc5cfdb63750a7bc8e86f14850e85626ca1c32d3eca951de3890df4639338217161e6f62464c1f0dab7180b0433e16bcda07fcb4867ec25bcfcfadee6f420393ebd9453406bf3ed43c72328e5d2465fc7857c33d2dcaced7fd790c704674fac44d38c8dde107987e502ea24958477474be870333da33cb04c20ba4a37af338c5609b076c62a8fb8848a09e18b7b10c3f0529f153182845a0d8ec535a553dbc1a43ef63605058e0807eb59435516a3790c253aef2139bea545f684304fc906e0f85cb4fd07ba76e25514d06463913f495158614a93cd73341787b198b249850df9f23dacf3a6269812221c23e1c7a1603d7e37b08abaec16886efe2038c128b0038ac122c4e399bf2b05cb3ed6629f4dd804518325b59f2898f41275ee9dac40200a278d5aca9ec58ebcd53a75d80d386146fe23c425f918f9e76f713527b1612a1079fc8a4d33bb95dea0dafe2e2d07e393855fa157a2411e49aaa2b9800e0530ac091fd75af8634d75cc46477d347449d4a1e9b00e596743dbd4ea3f4bae3629892e9d8ca0e48d40430cecd4a7662af86d300b243bdab165538a2a61a5c11dfb40774131598931b555034fcf15dc4c929bf1ed711e25dcaf8e50625d799de08800144975a506564a346f5f70f463479d1ceb62b6a3f6293100f3f80538d6e3fdb75c7a450b864a38bcd315e8dcc17a8b17f390f4668cf1795d168881dfcf7d08c6c5a6eb29da1aa37f3483ec594fdd59c50f51485e053b283faae58451455fd26bdd8f95b7ee3941e196602aacae222e9f8b7604529a2ab715f992c2127b337e2d98ccb3489aa219d000746061c7e4743d386b67170378b632a85eb3cd77d378a2a97bb8bbc3303fa11ec0cec887c0c951753de19ac8af2fdcd551f19be0f5c34c26c751cbd828e9d0f5b7446d5ab5c4f64ae9bd67283456590f331a572b40b0120c046b8da5dcb332c1aab3d7d9ac013d00bcfb3c2564a4c537d2984aa93b7b5d380e3d9096e47fc9d49f27b6c129a4d78f75119f3c740428e2fd42bf119a390fc5d03c683ed4bee6cfd65a89503128cf23ce4aac5c7ceacc87a1f679e829d8b1f8a6300dc02d2ee7add6552f2f87750f0959d92f87133ef2b43e1aa476c4e884521d15f88e68410a8318c9bf15db15b3336006bde7a5ffd763fdaa16b8c46f174b06f4a65e7ce8cfc5cca14b04c62c4fb241e81f6408c65f49ece156a16c34e1abcc4c7e7693982d07b53b80643a460ca845563b5310aa148856fb8977f10e732c322e43e250a41dfac260a8994bc3c0363775daaf01b0f1e95c752ad9253450e61f1f3d049c8deb5a0e44004a940bbbdc44732642bd9d08c9aea97d7e1e7d29881dd128504cdfdc86ca7f32147d0824c198c55c584b1f5d7b0d6f53ab805c1ba6c914db376d9d4edefd6b52d51889e8939e3904820581e4d8be0e8e5baaa7a0572537f879e24b09964a7bf4fc1bdeb127a9118e27aaf67ff5cfff5ef3ef99eac80826e694fd6b882dddebca4e3196395d478426b8f234bd3f2af1e71e25ed26560a631947aaac3ae37999409e87f6b7e83ef1d74400b44428258e71ef9259bdb7de90d0a29a880961754eaa0101c12d1e0576f91c9401bb05dd4366e9fb74102577edb23d4ed384ee15960470a3598f78f96ea54a51084de9d15e7606040a4360be6e6e7fa83f899b8c0d212e90d66ac929b3e890752f3a2dc8d444f9b2936bbd3bb91e64dd5ea43f61a369ca1c31d2deb9222b9bcda4875e56d91ba7faa008da318e66c24c4e71d855f865475b05e84da80ef6d1cc66dea325eb1c87fcb737b1915cd779f1eb24df19ead7a979021138b3cf779b1c99512329351f6e17f92c9bd01d74299658400babdc4922eb141062a73762d001f80cf705d54d8f780c080c18fc90c1b772891447a6b2847596bcb787a4ae829ed278b44727f3dd25559255fa71fe640fc4ceeb7bf5e0be29799daf04553b0eafdecf577b3bf8e5531016f0bf94055a2b469ab260bf50a2e4b6d4ba3b1df28e6cc595875615ada7aeae21b1ebde14ffbd3a6f4a0aae4e84a980407462a68bf6a3fa17abea122042a2a9a1c56d9b6fc946cb000088fa93d829e82359fd95cd79ff51e1d448d8a9dcbdc8693f5160b3b790a415ec7ce9c563b81f61e5873ea75a09c29c2588c0319a6caf90436a06c49bb6f200e23c6388973469d37fd688afb25353d35c15b5625baa752ebb9a9a9dd0951b83aa4df419de860e4a601de1eded2a1bee8b409006ddf97c4068d7a64437f428b2faf2a55e945bf999ea65cd87d4d0be0cd5332b85c89daea90e3a22e5c69455fc1fcc1b7bca10945be704e6066021290d60cbe1efc864f4ae58853ddd583a89417d87b85399ee2b2fc68e48f22b119e455d1b0d9cc4f4ccbd7c3d90ede1a712863b2d37fa44e8ffefadd42a1b5e54f99b2247349d8db672ae8a8958d747b61d31af1380412cd5d6b5f3f8614d65383a70bf905fbd7fe9ded20771960d7667ac484fd3d5fe90eec62eb7d49d04c02ac7baaecf8e5a7b94fb94bd1c677e5b486269f0942f476bde93c4babe3d5d7e4aa69c89e04afd8659d55a02b12e448e09bea0409b470a02e1a3d59bb70da15ae3c88260d8cc07f60d8f76c5659a7233c5be21f3717b1a5180dd5325d331bb71b31cb3b86b65d5afa120fe8ccc7512c66fe4f7f3be35b425506294260583a88c9c85b16ad64690c51f16b521556099c815c6c45c6f74a070b5a05ee43607e11b45cf1ee6435807190507dd062bce2bcc12b98777087eeedeb3fc0aa34a25f5663dc13ce90a3334dd87ab3519646c2d7e8a41edeb6c837989f5f6319b1615d2fe3433fe327ee408cd44500d2ac761a8f778012f527e0e529221bd206019848542f42ce3972aeb2783e3a00702c89d734435b04280ca836e2ea86e43c968deb8250cd1edea4cb7204df66b9bf8437ae623378e2925f289d24afd34bd3c4cf3adfe4a370a20009f94e72dd81aa2700613ffcfacb5fff0b4dc2ddc9470a82a10845175fec228a4ad11533660de691873a5eec02c974891e0053e13cd736e5881ac92ee0111d8ee8f3106f7c32b028813cb09cff745adb7534f98ee247e94f28679ad7ac3dc51df9400f919062dd6248f27a4adb9cd7ddae0ba61d6a25998078d88afe9ba098ad45278c365a9158a70ef7a264928d9b58a8fa50041bd50ac5e61c49e5915676260c0ad72c4f6498f4f17c59c59fae5f1455896a694ca6149383485064051d73658024c09022391c42ca8cfae1300b896aec1021a9ac1d82cb8bf6379c7b463806f34b568b4b8f31ccb9c5e0be24408e4f0c7f832458eec9708d628561089e37761e501a6d5e546c3cb0085ff038b50a9ba866a11306bd7a6c66b87c05cf18d6810e1879a85839736d05f07eb940f25ddeb9cfdc5e7d400328e2691b3650db1ded3532710b3600422918f6c1dc447bc0f8729ac6197bdcf53c0317aba852b607ef4eac9f24edfa3cdb6b25b0b7b38326c6722d047c0d97a47098f77255ae6e347ef2d97e4477e2901be1df8762c358e9e41de97010dd5adb06d264e33313a8a09dfe7f143217f98331736af6e36cb8cb6d0c165ad56dc7dfe53d9e89bb49e22aa9dd07a45fde3619ded2540be4f417800310f23d70f97c5331f37d9467a340efae225f403145c65c42d117d8de6d149533ca0ec1fd5dfd27409d46f695690fdf1f3298f11cdfe32e6d29de1cc5fe3af932b216fec99674d330b163a5cd0011c7fdf8ed716f082e9fca3acac23bbfc701fb3da69c5ae8009a0c2767c52f770f2e356af289fc2f3535a551b5cf65b36a513fcf80cd4b4a94c447281e204b49c6354f948a36609995b9062312f889ac0d62232ed4a282eeaa3df64f6dd95604781b5a73d9b5a2427f9fadafa4cf388f64d1f41f97ac8b7bfab84bfacc6809c82753576d358ee0681b414a0be10014efd27d19031be68f1d1688d6c13cae1921e7a073a88fe198992fc7bc93f479438bd43b36f47bf709e67ef4456417bff444e50fb58656cdcc0c5a76ae85dafdd3105ec9dc10b1d0e550087eb22dd1aa3ae4010715e610dc6718ca59dbe91ab4849c47be33a7a429b6ff9d4c62f82a2801b4837c427928c018c140e6c62e885378fa9254d41a162011e20514fb447068cebacceca19015a4d7891b492941b497e4093f845ed93a69174161fd46b2c0e069197b05a911364d47469dbcedde52ccd738391cc65ac6ec83580949f8e3de14b18a8843b0ec4207b16c58e7e13b33e7e7d0d737843c9b03906c507e2ba00d0f518f7012ed9a186c27744b798d5e00446f5f3e892611b72370dcfa4c5ce23a8f21bcc83cac4b145b24c2a17611a3adece800eb1e17f0717119836f0340ab3ae27f7e3bc203c7cbd534e6d96337c40aee58ec48dfc87d7a361774d31b50f5a3762c479c362d0e89f95bf6a2c2249c4eecf9e188c8b17165d7b79638ba0bd780fe5565be483ac2eb55811342fe425cd8375d45d916673bf8d69746440a8facfffe6e58050edb2776023ec2c387e81a435257ad12a34800c7b7ac28916ff7e39c6784a2ac4c4e76da3cbd781e86ebcf77f91717aca315a3e2bae15d33badcbfa3bc259c0d20ca9cbc160c0e2cc70539f2dc9255cd838e3812b4c63f8ac18c7e25242535f3a5e4a4ab46598d9960559f986fdc3bc5cd792a18924c36453efa4e7a8a8e4371631c60912ba41a88681e85b89b46025f2a9c695807b9a9e71688ed4814e37a044c1a55f831a359a41df6ee58dcc870d316d7bf9800f37f24fabdf8a19ac3e9675e2bde620af7f53dff0f632cfe7d21f9a7bd539edefbd62fdc37b00ed7016e4058d28dc53bc1b0bb52e8d58f3afea80dcf324bccbcf0942adcc8355c90baa1cd24badb5cf221c3fe910a2e22bb7dabf840d60fb292e5f1220e5bfb43d13e70890bcbf50ed91fb656470a1150a091f8494080f628c7f16535d0ff191d5484b3796e8c44912069294313cbea413f571454e144087480003695527cfe0f86582768f43e1b52acdd789badde130aa5bd5bb8976a4851c31af8ff81e0bb8dd31ad6fa52a0c5baf2885844284e39b6917f8bfda4df1abb5f4d42624d1348ba41a0a01de597a6fec625a6ee79b1086ba429b21d4fc75b4d087c67e63a42541b0cab06384acdea1ad2b69852fdb2334e5a917b1913937ee12a00aaa2b3e76925906cc818cbaf861ea83fc5c7e2a1bc2c77e3d836dfe011443768c4efa2940a81d79033efcbfe7bc0f7b9a178c1363431e5dc574b377ae508226832a64bc181427dc9f7cade42b31a349f51a593b495af2c24015ddaab6b4f6e1befed4625a626babe43f3c464c2aad480fe52030bd9c90ae80c6bf56459d837009d4c6e44be05a64f327114d686321dd5f9fef96c81e620f49aabf0d6f7af4130bd88f4405fe445ae7e4d09762252862a699151f7bb4b98def44210a871818052a7b837c45d6e80aab6b373eab0aad8b7e08ffecf15cac3a67f654c84db2bad8cac25ef3c05db5dcf02a9bc0618767f05d905d85e64a05b87f48f300b9da7d6b056d3cdc6b59e535ae51402494aae825c029faf7686521952b5ec9451d4fc3f51466d8b1f6c16e8a499ce917c6c8ede4068a00c29b5e50652480e8340c9efa2c47c8a72a18918c9728d8c3514d568c48920f4525264f915b3581e20310744aef03a5fb0fcffbfa180f996fb365f33c89aa848e2f8ce6a7586bca32a1e2546a5ff840b376e7eb18816be96b06eebb1e7edfa8c7983203ab5d58224677619048812d7c76541e3d3bcc90f656233277f210cb4f0b9bc5c5d799e92669ce52f806cdf1234884069ecbf5d19522c3e419f7e7d3249d682230aa2d5fcd26401827809221eb21bf16765f933c459b5fa325341d2111d2196532f6ebf0c719562c17181b37ff5cfa6bc8f82f0ee8b3e55fb462e118da64dfa9486147671943d4fc486d02d729194e1083048c8b233b34b20eaa86a57d0eacb25f24780681e30cc99a19ea4b35e4e005a8894e38ae3954fd915fad23a55bc821584ec2be57fdd8c95039383b7d5dc044c4acb56b779103b6ce48f0ed0800b88b9832916dc13d4066491500a5b01b273602357fe1caf4faacc814cb5567b3a01556909324bf2e3793cf290dc335260abb977b7beb1576c513bc7e921db25872dfcc4723e111dd2c37aaf80b34ef714fdb54beb0bd6ff30ecd5f5c423ae63dd40070115c1f5a297c671955a06dbf9cead56ab0806a597d3581a10edacd4c234440fc7163a0ee0a47c20e37388ed0c7d61c7aa0931a83142871d31e72343230c4c8453077f36250ae7171af8fc7a7cc5d5969b20b51c496a3c3360e09b8b5407a6be42fb7ab723a00a1a3613e3044c01b455524ed82c99c177fb180fbe50ec9c442427eb1c4423b1106b6a0a1165b4c2931461b4883a3b86841b5086b14b2bc8abcc844677e866b433dbc04fde5ffa974b1c46e2291a3356773443ab4f3131020948c48cc064b56ac2a0014fa3f9dee13950a5fb7dc10437e1c57b35a4d136673125e27bb9c8991d907b30deffd489feb0c98a4bb909ba6cde7d80474a780447f4129178ec5ac8e4e464340e81aaf3401fdd2341d6fff4663256f7d807a30c5ada3ae68c7c6f418d32066973f6c6da823daf17a5f9d3da65ca98015b13a70f861a1ab1253a29171d00d27c283f2135689a0985e0112e058fbf6d4c85c13a0fc8fb6f47b41bb0754b31d4fc22da4c07ce2b67001832a9f0060df00674c78ee8aef1e22b321ea1826f514cc1b1e04107e90e689109dee02b16f4005abdf436ab55b4e0414f3d4e803df9523d7bcdfbc68a07922fa1e2a17627276a30622cbdab913ab9d6c743f17c0b936f79a1adb89a2bf372185a65a7869cfc0c3aca67a1bbe5be02af66c6c32e19fd9040f9cbf984f7b33e2fe3b77d025e026ce456102c933bbd27d1c04fc2d9a6d21efd5e0a4492253dbebd23814f9d233b11003f0419a54b1efb35002c99091b0dbb9299bfd400b9422a6cf0ffe85c3822173c7225a9e8a3081cbf882426625d3821fa4166c189c2e39ef6b857e4e2da7cf62e8f13aa11a9f4c58d0b868d68142cc10ab532ea9bc2c7110184d104511bf40212fcfe002045d51963387a3d87f9a4aefe13a1abfa2bb34765602ad7f02fce497fda3689690338693fa8e5b65b443e80b42b70216c0746126cefbf3b6a64f7a4b95669754fd56483cffe497f1cb5d7540a6d0ce59df5951f4ba414aef6233137ff5f6468cd005f4badb245d29c589478b52a1e554d00aa0bbbbdb0e6dd0cb09730cd94b00b35ff1c2427ac9244c50d4904a824fa702102c2db474cdad128eb2e2a9a2c060c30c4003f402f6b2e9c2a2bb72e8750627766d93c9bfdffb752e0dd9175c00c10a9864c9a16109954e0f4335c12394478bec9161099d448f6a7f55440ad5534059e92d3e2157b846207a25648655a5362ebe308714ef2bf690c6001703999c1bc3fc919595a860aba5259c14eacc7f0b0769e437514b4b9773a79bb31543cacc8775864b5d08cdd0143de2c2a68f92f8cfe0c81577c9bfbaa0cfd4b7bb29bbde5895445a5a2d4e5af6664bcdf752d64dc6ac0d844b1c7b4cae26be5cec1bd0b0e9b07bafdf562b698bef68ef1bc17f91369c555ad0f7f481d95ac268d1d06234893490683c982580d99951384aa318492388c544e22ff58c83166f0aecdbc809006b0645ada4e7e7a6987b229742772c393d2ca4be1f3bfb9e1a267b1fb5c2da3f7c4d5b1b6d795fd7eb9fea6f90382f79ca0a6d40485ce31698d37f785bb6ad3555623b1221401b688283ba719c484803060086b10681c277006ecdf175b79c3dfcc6ff92aa9c38bed91dfc0a5aa1b17fa59a287b8305578a3c111b9c555225950890b6db7f8231638ca762d8d036ea882d976ec6bbb7bf56d4a0ba971301da5e3c12e5a99625598ea8479cc1022621ac5cb8aae0876754fb06ae62820ec51a03bbd85c528666b066f3f409d7d7236d9d9987c22b3b6bdf5888a41ea6982c815773655d4c0d09e9bfb198c97c2376a704c1f965913958d1c07339661aef7a97e3169d72a4fefbfdfa6e2e654ae1173d3286ca7f3218b0989bbacff4ceec84251cc982ea272b853819989d7e345c978583c90dd06e00832f6b7371cf7cc3f9f9ee65946fb4150488e58129498f19dd750eab7aeffaba83cb49d55fa3a36478bd8d9b3b66f3df6aab20bb1960d25383a6d26e8b44e0239c4b7d6df216e2efb1173c07a1ea15f910879e2b3d0c7a605d8b1216ab09265e42225db9b44507ca9cf460a72694506762a79c204c940f8b22e5afa42aa124113a6ebce04f5267a40463ed3f5c86bbadec38c4e21922b4d5119a463e93a809696d81ca6627d1d10e64e791319d6ba7607fcaed573c67ca57a01806e9d87dc01695c8339b8b28f064ccc8d0e9eb9bc59038202c491851f97c888fc17f2e3a30100069421c5c09b744e0ee7fc6740321b4bdfbcb77c026a17a25d82c8b144aa2100bf5cd54352f25e1b4f508c44ea637b9866f85bdeaa23bdb08348b536143a469f3513127a7a0e28df1c8ce0d9beece0e7252794ca8869d358ad1a3635daec4729666412ab10ff848454e15c2371dc3ca1f91c9ba1bdd30b154fb3700cca433796f2d6c6e8bf753d0ad9074d59de02188c12a88e76f8b4e80d4792e93769c2f2aada6b84674adfdad00961db159b7ab9a89ac70be6e3da569bc5ab447aa58627e10eb69d10e6ed8006b5b84fb4dc3fde485e70e34ccd18253b88334e7662d979c76b70fbace814b0a6888325f8518a6c5345c866231b1a9011c039102496e4cfdcf7b21b0cfef7986fd8c8852f7f18448e30f0b4866f15ce2d264e1edea87669df4742356873c4f34f7dccdad69d98bc3e307cd0e24c2b1406deac8697fba05abc03db4f4297225753a6fbce01a02a8082362c91850795a4c245f74ceca6834b833f02896f8c8ad5e8355a59add3fc22c077b0db137f5ad2acd2bdb0ee81873b2048179b084d67c7e0f6148f35d87567f29912c954ff49c8344af3657f63f0583c52341e9fe84697e6f425f59f3257e60d343588e909eb8e1195368814104a4063b736b1ecf6ab49f5cd24314789fe22d5031eac4ea354e2e0eb4ca4a2991e6a82d6fa479098ce1e3aac0e084abfeab48d163dbb5b0c4fcaeae0e14968408e86e5237b66bf4948232826173f395a7dcb31da8a80deffaeaadba319d0f9f2e092bac2bb6f30b132918337bc0907a3653c175afb7189e1fa1080c8839f96b580d6a5f5ca92a087706ec060e40b00ef8ec026c070b34a92af39c8ddbaeb4e520c319e4e242da20a7dcf8682d7a098f7d7cbbcbe5aa06e434bd9a4d038b1da359f1167e0aefdaf1c37b62b1b0a937d6acdc4f963401d041df3a1a832ddbdacd9143ce8bf7c21541820d6b40520501ad9d3f62f0e27ff38c0259fc0e324a10e451468a6f378f77c004c83f0c40fa703a08f4478385374223c89beb79918c81bcb3222e8201119f51d6ae36f3a2cd46cdb83424283963ba9c2436952afd79c59cb34e8b73057db5e65d8bfad0aab06b8033612c22dc086e7e686b465383922103c6f105d1b9267e180bc69a5eb0283059326ac8b0c17c9897f425fcaa03fe5f326445f2a05773b36525abcb237678324a19da33fc9a779cd547ba499a3c9e2118cc0c7125ea952d8f3a201dae70dc2bfe5be2792cd7f875f20b7ada1a3b3c6c01a1ed3f83b587a2da5528ca627727525489bc4d15026f2716d6f6db5abbe5942e8ff3dd3bb2849daec8b639d616fbd8da97d0f11b555b7e1727508e7fb1f6e04d8b25967e16924afab3d30a42b4df2afce1ad56185bf46b15598049a8e52dbf5ae43d182d05468411e61b023b0f067c1c9e486e7a60145e9f8e441ac76ab374c12428cfdd3008349e97c1169ce5c374917b4ea7cb3b0ee5a44ec3f260ada97b45bfa6c6e373072533a16dcaa44b5304e6a34d2c8c3f7cca664c704cf39550d4148bc2d1c022566f6f537808b0cd3d623c2d41f68a4c1f2cd482d58eae15672f759314f74b2991a82eaee83a0d2936193f5f098f80ce22daf74797dc2c8807bf986c108e38414ab5cd49d3ed2dfece9b9e8b5320c22a4430d770ff1c2bf674c80849b705edeb1e7a73934d47ecc18e623dafcd7b96511c174888a09e9240a6ac2cccd4615c21c7751e5cd5105fb1abc2e71039531ee5322df1a4350243a23a5f88ec4d75109fbb8fd87ff13c0d0a7f7d421016141aed041c940201a725c0cf5885a0d282c057db51a50fa15f3a4ac6f4b210b4edddbef3ce724b8ea7e173e9d3e4a42fc149ca64d99ba8afa80d7592d78f974cf2162676f6b59a032a49bb7737f6202cca856e84d785bf5b7e779f7a958813aaa651b23ff0a74b26fe035f2840cfc3911d936e4a8987e10f2fa3a276adc07083328125b5e783c7ef12b8f744ec421dc01d31fd510d60d9cbbc91198005130114ed6df65c5f7a828fdc2aabeb6169c2162195233007a657b87a858cf5df4095fcedcfca1cd01534a876676adbcc4cd6025aa65c30e8375c69d1e74c30bc2faeaf49cf1453c2355e553db82f33a3b863062d2e2cd23cbaa99a526de976727563736caf2e4c0c7b99d62b5b6e8a51a1d8dbb863afa8b53e3bd3cb032636ffc7d397089b17bd2bb3a30a58f52a3d070fdd8f5c06899bc068462416e69491df18ee815b4b21e397a4320e9b3079d6b9b15b0f3b3eb35f6a20f5b37048f87d98275c0bd996b6aa7e47c5e7a3449e3dc000dae0c411ec6352bb7c1a5e6de603ac252d01d46e60e96909b80395a889df77a5e6aeb1230f32ef475338579d9c83e9c87c56c5f2cd599499a04c0682201f65164f3d49030de39a0eb49040f9aa418c6753b00cf90871cb1f083574dac33e1fa57839925f8e7dd44a4a3c4658098043503a479fb46bdfacb3167a65050e1c9724434c3e0ec6240adebe322f5c8dcafeb2b3e75620afef4bd9800b17af2c1b752ee18ec0d2bccda97b3b83fdc5d9f6068d0c87c1417c30bffae10e51c6b9a33529fa43032257bc638913f78befd74c02474ea98a6954d4ba071068bba802136f8df8774c9f56cf39481651e621adcc7a9312c4888e99a43753b6efd9d32ee24f8127bfc0e20f5951116f9245a328962d71a9d124f5dd58741a154c4d2100aeb7acc7d46ce2fb2d2aad11e402453354cd0ac6abc26e2544f310d7be7c34646d747102101d9605679ec5bd9a51517e440b67d47eb9f138f7ed1a452c5bb4da53f85e1a1a4b658f344dfae551e24f11a593dcbf0f50f014c11aae3788b094b6678af895a609a2fba9af1486ab20b702dceb2e5d51c5010bbc8bdaeb3fea7aec5fb3d4f69c41198dec83c50dff5cd4f8eef2718050e1fb23855d152c0e97479b7c7ef1de24d4a5d8b9c0e48d302e528283afb1acac4d8e55241bbcaf4c469fe735a1ed378a6dd2e275f481eb3186891f4fa75502c728555df5e8ebf45e56f736a0dfadf5a7ee58afeeaa82c6a5b2142a34d826531b996777bfdfffdd37fb7f32dcad1d37291b66ea6046425d6d9d82231f755e79b7e3bfea8593752b608ceb242772ff0aba00011eaa92281515ee1a98590d536a8ac092b42f7b7cf031828b2325580b9dc1b97a147b75336b21783deedb9e02ddaa26ac9f6b425888f4f33d87f70b7bb28d062b635144a4d195d50d8b1a05761429880afbb331081e8ce9de84eb4723de39dbd11b0bc1e1083a7ca96278191ef720b127fd66cc771e6a19cedd61e0176c17bf0a279dfba0d19ed57b7faf370f3c27fa3f0ace8d8ad381cf2cb1ff051ecf479e3a8f7b7e184c4745651fa861ffc1f03983fe1182e8cd3f54e44539fa543f97926b554fa90fd3c41d77d9cff861113868f7b01a984681e29fbdb30c6297b30792f9468e6ce27073e77adedde51cdbf315aa6e67194403b8a9a47e4711b7b73e3feaf9d0c04be8d0657b88ec898cb573abd833a1f72c1831ca7f44f6197202d75405f0623b7040060c3d0b34d6242556615ee0f0b7a073d4bbc6c2239726fb150a2545a60725aa899c44e9592eebe93c001ff85ec7788e1b2d4f045956accc837954c3e7952d5685c675451576fdbea7083c3b3f66af547043996f88dd89522bd15573f37e4b0cd3344d9c4167a08bc6c644709ed4bd84e5dbfba55c096dbaa6ab5d637fa9380b1356a39fb1ef1b661f48d4c7df899db7d358d660357f674e1eaaf3ccec44b12ca65a151504a1c5f24dbb26f3ec0de34343464b0203623950c2c7316691d20ff6cc18f7c6df6f708d558dbb02ac605b637976e378e7ff8b367d6cb8e10245aaa50f68737ea003762442cf0ec0b07ff8ee6ce61d961b5aa2a52f3df52abbad4a76ab4c8771a83fd6d9067ec98d25d8d66dba27219aed5841883468dd2e220d432e19ec0d49c8fbf9a34bfa9e0910668393c1fe4ef178f282a1bad0da09be32319d874285a077438f481daab3905a4b774483803688e30fc468001dfd6a7fe87feb88ffb7fa0e7ac89040909a9f965437350c6f89478a5000d34e635fd0c847b999826d573b72a1ba3df648bfb60ce456023f11a80d4e9f1a54ec725b5a1d524633053e199fde19c141e4d1f27fd27abbe616938db3d3931f73a43f754210bdaa96afa99dd860340d9d77592830eec024fd5c24aa74a876b538b31f9847b9012f137b70805230998f5aa9967203ae9a576872032176e7b064b7743f72724e7eb2fe8fd0ba6b7384114a0caa4619b21113f095f5fb80c97ddc635d35feda0d5f6a6927e5c46a6a501ac8dbffc5e4fa2a83c896a5237be5a0d7d8a2403f9e965a4076291d1c0a1544d48efb8221ddfb2355a885c3bfff80c77008f0cd5673465e13e8e773aa9647683389dccb9ab0b0e748dc2038b35e009726e6d59023da8dc7c0d834c3296a280a3dcb75d412569225d788e21298b87081b4e874f5b99cfa96f1edd481c9025bd2b083e2a52b6d6a0825cee117c3bf3a0ebcdf41ed440164a2c2afea9f062c717aa35c4202dfbfb2818aa7b8120e29c6ddd90350793544a7c089665ee91fa1d981ff26b6c885008d6ef76b5ac39a28396ed54c3a99979abbaa0802e18094e6949a1e01cb78b01cdbcee30428e86b7c69fba570319aac1e99b177c69a846f8eaf9729cd9ec0891d050af3e8bead611a3affeca9e3dcad846abc741cf1de32eee1ebbe96a8f3276d0eaedd3ef9b861e29105b1989cd80f442d191ebca01e0775c66da084290f9bbbe480eeeb7f4b2e5cdf7afda493c0bfa9dfb17e09c57b947d58282d547731d1b80d11c1e6bb1b931e225f17a55c66fd52e8e169c5a57c55167dbcbb98a153642f4d12ffae290b0c4041af4050f1d7ccf02e54c7e5df23e8a0fc93412ad24398dd4e020b01b3d8209881ee2b4b191e6a6f3a5200e2c2135ca4b15855be7e1f6a068b2752263956e3dd4f6a9ce2d55a4a33ac364241060f8c0eb3c54bb64f264f4267d9e9a2c96294ab4b07474e16d456ce78bcbf80fcbb3d1b665eac6d4114384bed46708bb4222605f516e6983b814e1f04322785c74d29e323c3293f17eb359d7338d783e9e9fcb36f0b79cf17e110e949b37052490909d80456f49e8ab0396a7512d70516f5c5856a24c229061b21324f6a72a8b480c07f542f946cd299583c93ad5623459b4932e10880918edf2879a4777caeabfa5a211d5675c477db6a1240c8ca2d286e3e7a29da1067acc98b252bdb43a28058a662bd684598b0ccd25f0175f56184a92bea7aeabac488a3363abb1fed182e260444a9f8fa67b494974f9fbd20da3af819c037896569b92dc78a9ff7180f6aa6c8d74f997ac8180c386d80718bb64944586c3bbe14c503b1355b3495505a08b4906bad73ab9574bad6958f1e95efa793d47f8cc47e4924470045a8e8fa36ab7193dbf7f4a04c74bab91fff04d9d103e273470152446a864b2a12b9673587471695114aa8cba86a4c499d58dca4eadd474fa251c8dfdcbdca163922b9e69550b9bee2fe382bc2c66ec311b3a27b57555e7011bb0d42274ceadfa9da284a0f4e57cb31af5064bd9dccfef583926caacf98d72ac6a6e0076d622dbd10b20f6a50aff5c667599d9550160fc8e30ab3789c9b7271d5fdd4dab09b76ad8c1912b6313fec2a7482142063ac0b390a7892ea42eaa1f8ac0aea25b9f9872ce424e02d67252c640d865feca40c0e0e0d69e058c7ffda127660d71bc892d4c9fa09363c4ec6351381e8f8912e6972143fa8b61ac76eed3d2956fc2b2b74d48be98e9f4cd54b2660229a222c9063477b5b5181ae212779c6b8df7aef703ece08b0f00efb6b5edc750fb2377c0cb1d6d1324145e64be3e05898918cd75ab2f4c664e99680a4556f5addb52e3ceea9111ded244d0ea3d6fd020a449117abacb050cd6edc2f72f6d76d4e92a71aedcaf65282f027931b745ac3b46ec3230a681b75251d7468b43db65092bd8922a875157da9ee7aae822da2e4aed5eaae89d09bcac1ed37d9d96aa3e841037f480caa3afb1081f9e4f2ecc6976d27dd7ea4e2499094c366fec9332275d76c25b88b37a01f660b01545511fdf673e89aeba8ee7c68621d2e0e58eb89cf5458a2308536c045b94fec8bfe3999b50de4b9225dfd8e375f398f7a2979c0daa61eb94862541932b890c3490db54421725cd16027c0e4197c1bc1d5b101bbe4ac2efe94f3e3df7341ae8e87e002e58034af403b4128aab0593e455ff749f545b6b2ad5533c1054a4c140bd28a8063ca606da96ee3ab5962345f28ad26fb927de50bf70e84c638c0191cd47afdfd38e53cb55d60932ec638a21c38aa519fd08785507539b5c58cf98b2d5085eacb833754e72d4244f81e56a183424e53188105de4a5da978927498f8c4505a346ee90a80b58a5ca974827baba5725a53890d2d6f4a8a02d1e3457cc6d34426f28f92f557c498d13f4b1ec3aa4b5765e17f68c5f91ee77ff078b3339b83d6b2dbd56c0823f71fc55b7bbd2eb8295eccf86aa5e329808f8fac56681e83a26d30b7ef848306b629302e38f6d88f62b9cea261e1dd35b9e15a119402fd2ad7b0e832b33c2089d015b4a3e37ff8ea445964542885214b7fa300ee8f5a633714403a65ecd164e8d3ddd312afb19ed278908bce63ef1616575b7e75f10f10ca09ec349da7da7be02c27d23e52156c96ef55721ffce226bd8a599ac9ce62cc7cc33d943ea5624dd880dfe2d59ea135d8504605608c7265e8df7a0d27c167cfbb5e78684efde2675550cfbea2c96053b1690b4b1e3c682ac580bedee6d0bd7a34eb106dd345ad75a3b8dfa857539d84c5c6cbe6aa37d3ba02a0e37699218cb8cf2e8fb432694979d22785db740c7cc4b6543eecdd57c55cd6a541cb42a725e1b0cd790c7f3755380606ed7670966c2bf6bc04715fc1d874333ec2fcfcc36e8078490b3b7762a07e3bd0ed3097c02c0dc9025639e16cee157a4d9bf0738438e978f7ba07c545d5beef67cfd3db9bef8265842bb0823fda4e2121d93fa858a1f402e8969654e816bba96c1a054965f5ad58f18c88ce43821579a572eda266164db1062342e74aa4648293f52c356ee5dbe78f7bb0ad327cdce0f69f69bcbc985073e4a79c0439521a808e9d2baa0b973906968efb28acdc07dfd913511d3f1e4e8a967ec34d83422f893bbab8725dfcc79dea1fdbf637aa417c0a3314cac4faa56a0b5f7d90721ebdb9a18af350f47db596a44f0351da77e38361dc07e2eae13a45b813c1598a7dc3a4146686cca80692ef43bc52e7bd6ffc759aef07f32f378f7d3366ba0ed1230a176f7d53fecb47f962b01296693113d6e7312c005993b5eba886f39cbde5ca0d5afdd4f9f31bb85b1fcbac7387eaefa32eee3b406cc6e4918ba1b7a2b474046b2d7014a0fd5e442b7e1106155077addb0e0d9e9a4396deab0c1959f0e931d67e8589610fd961b0630eb31714adf10824e6e121a9ba86c1d87d23633d0d8055073b867b3986b49d8c5914ae4849bed4e85012b79d09e1428e950dace9abea45f56cad470b120790f5b1dfb90d89f88faf47083c62a923318f57d831fb2024dbdd5a8eb934c8469774034d94e7c415f7c1552f9f0f07c7c4cadce8ec16d9e6eebac50c06020f19a88ab77b77a95932a86f3cfad2aaad01743ed94b197f3b1c764e6152503d341dae8171fc3239c5fe317020741216b30363308a980f21f266de2d408f959088f27f04a9f6470c6a38b515b07f8813408f75a2925ec8728a8067e76cef35f2bfdcf5dafb5d69e61999e2ef5c49d4240832836e8f4158de91daaef58946a4d1f6fc7ceb432cb13fa7ec783a3351d8b8d52cccb6c547bf57ab8001c9cf7e5eb1a51c0bc5fc54b3533ac649215d05814947a83f937e5f376f5be37f175ebd0874a6a778975784fd5c4efb68bf719b417ee8a73e7f5e315b5253e795cef89d5b8b1a8369b17cc821a70526ab0cac2dd9ee3abb9192ca3f63d1a2e602cacb1ee538bd5ad28ff8b639a8d3144938b0b98741e530254599292f1ec214996b9d8a7ba11d02e152e469a63749d4bf954b494e2461578cd5ebe23a6c007fc203d4a71830fa83a5ed2829426091a7d9d117663fc3ab9a7ae7673fd98e3900af44bba6d12a36005d5fb6fdecbc665342db782119cbb9fbe5c2f7d0d8dee2c03f6fcb5284dc830e5e61fe430810363c1bd620a3375052a6b626c968bef636bcb2b4283d01359c6994948b323f545e4e146689a5cabaa8d707b16dd9e02f67ceb05703d4142de153c291ba6cc0debf3990a66fb732a2e0d9063fb5db312aaad8d97242d1685a4b755234596978af4f20855e06fdd63250a8bc774cdbdcd3956cdc56805b2e3319b13f9886606bcd46641875fa466e3ced2c0ca7515d2912c87476d366d1e62cb30a29fa806d2f1c97d36e46304ad73a0bc0e7bbae7f7f45333de9e60ec6927475cd76d467726d49e2e145c6da645973261c312cebadc4805a0b09480a6bc719d93c25d76163dad128ab1432b24a3ef413674cf990464412a03dd16384ee05d728c83cfac841ab2c09eeb86d0dcad4da2921093d09819fdfc05c5425d5f827a0926fcf96e4095fda19ca58da3317cdf84f635c33495eab35807aa95e71ca4e62a6c8afd0004e90ecef1af337dd5caa66cda7d6ef8bed2e25d7d632177413dd186bdb007a3c9aab1400c33ae97c05e43110075ca35085bce283f8f15302f38a4da4f648ed25338d22b82052629730910de8b68d03830511bb236a18b20470caa67f71dd5f37cce0676876803cff1e573ca665c47196c441c5ad261d610563284729b71f517b3ce299c3ed190a8395381d92ca206de86b3c3ec8094d2590de4189d1e8dbc8a9477e4019c777506608a7536a51262af43e171a8399b4112680a0ae241289e077b39234ce6ef863c0156ceb62e90a51208a0226453871f619ede0772881ae9311f851f4b96597d42792fa3c56d304e1f49cdcd1225e76699062fc8b29571e6ecc98e1502d9b44aaaa391195cfa872b0a7b87343532945dddd86f349579b19116f76f338aa974cb5fe3ef5bac24aad60e2c22234aade227dd925ccd9f1164cc05fa656ca58b0b669bb6d2a73c455e04d55b1df9baa763e522e7e91466447c5d483692325c600bbd3a582487c7d41325932911648aac40c3a3d0b29c3e9a1453d1f9a8c8747c6ceece540e90f102e2ccbd0dac75a768088d5f8a46b9a684304af6a61bc2ab7e79a9910a99c1f5961ab61d7d20101bedc23aca6fd902dabd553d8b1d834eb0ff8fedb98c5e6ad642f17afb0fd532d76af82ef6988ab579f28ae5778077c7c8a4e2acb19cfa7a308b0df481561834155f64a730868b4acdd0e79fed7729aea52f8783b21b1a5aca7c047afe836d80c0a17ca960dd7146641d3484d4cc83fc3721345f81999b6bf78b2f10360fe2b01e43c61098c32825e1ba1b1bf93ab4063858e092c144866041e0c7fcc5077ecc6ed9c85ba579af11582ffdee6223575fbf0cafa357fd6a77f782fb3538b191cfaf3c62324685815f907e2c516e4e76b05b24b5b0cb9e39be2ddc66bbc49f9ade7d30bb1ecd9a589aa7e0351b2603907bf1a9091e9730dd340654a1290e13f882a9ac283746cff9115fce11ef6315dc59206cacc654fcce9867718ede6e1830cec2cff8bc04287ff1ed361aad40f807ef8988840ed960e2f56a24019014a145ee0f758475cdc2ef93a76e68711231d0bbc5f84c00ba15fbc6e194ca463cfc3ffe2977c489c5a9a4eec1f81bd3a33d8434f8e310d2cde52fbf6c975c1cdfbe2936cbdc313c8489fbe8c1e71421f08b7464fab499c52a2f0876b33e20fc89830e0cd28ab658e0f7d0c7815bbd2ecc2761ecbdd38635af350a2f4e376698a69f16f1a611f85e4830aa55af71d93ac0db3d6ae4e82000d8dcd02c3adc3b074ae807fd3a78519559d7ca1985dde79ef01ceac10bf1396b13a2853ec12d0fa60dad7d58898c9f30cb3e8842c79275f789c02c0c433c829c3b9e82dc1ed558633d13b2fc2cb63d237171ef7e8401cec331d56be53823ee54c8ebaeb72f36a94f4b9f2f4b7bc6aa13b0ca97cc64b2f096830615a209e73e2b0cc8b89684eead204bb54c84871b4acfc27387c1b35aec2aceaa75efb238ebd436be44e82123e99aa5d3b3792e7d550094bd3360b933400c432c1a4f7939cf4e28c800b0db066322c7d31cf39c9ce924feee1a20b8b2a5ae30f626686e07aa06ff6b643083bb308b0dcd3e9ecf28c4b84dbd7dfee95c4d6691da2e0316b1345b8baf68abfb5518233886510b40cbb75c40ae6494bb808873fff8c31428d674dd21bc9dd6ffbf15dfaf5c849fafe3d58d80e34ad08751261e4c161f9412a352f7fcde3978686e7ce53bd2163792cca9b73db509b84c710c39a03734ddf792c52e61842bd95533e97201b53f25a1cd1a3bbce478e089ebb78bd42f13309cb9067c89975a5bfe4f7b859dd38b2b4f7c33b286a1a631e51a6b784821b35838f62ba605c726af0df4ece760ce7be0f84dd10fd5697fa542dcb985fbd937f6f591e2ff210ef5f9a0e49a7da18a07ffb6845341553603206f7c14bf2d78127b8f5daf79f748e005126b250eb5d9f70b88245f5d7bdee8ca85deb2eeb6e6254873d9732d9b4d77c8806a1ef1c45bdb30884b3fb1e990c205d9db3eaba9ebc3fae2047e1ed564e774ced6710dfb29f8d57b4636b6307dcd4cafce4e7e14b00c14639b12f11bc49a2c9996a122bb734c733f493be9a76c49e66ea42ac176877e34de03d42c770e2cb9817bd08ddc5155d5e1d189d5bbcc5ecaa4be8e7309164592b5feb5855852036e5a32d59e68bca8b7a4234a0201e661c1a47c2dd40ab18071c81f39a89ac302a5089a34eb57a309926868d2cc632411c06b606f9e44dce97baab6e1424809b3e8e0a0f192900e20d2d6281c1e2a346c85e7de28b86a732c80a40316f20c6aac03e01937808333689a9c18e23eefdd3ba256f94c8bb85122971f13215a93bdae1255ca0728270eb5d6b2a439326e33ddd37c0a95ca14dc67379e26342d488da00046ba8e637a6fa18ecba4ce547260fe30203232b62b0b4d13a23829c79ea943d1c7260b0c99d24f8ac6ba94918685a576b863ceaccd12d5fe0f656b14c9ad34348d8800f8405a97f22eed0c350c1b40327b9d3098a3de14431ec6c8f652456086cf09cf7ba24b76519e589cf00eaf4712b58be536d7e36343c5cfd69f4a808d44401aaf45bd1495bb15ac898e600564956d4cc19b2ce5fa3f651c582f576ea3739d75c5af50ac4c29b84968c2ebf46c2d4986ab87c5bdeee081f6b648c48baa87742410a6c031458dd131d5a04bc8b6b0708cd2672a75412b0c43ee54131e304a3b29fcb2dbfc0dbd05c8a9a00ff0e108e9d8a39fab15d1cd329b5f4479a2ce16a7f8bcd27e7cdaccad352819eb1c8030efbbbda777d02da97fb6bf7d62bb1804f8c9a94e579ac1f1819872898e5603fc5def876e00d3e323d813ff967388c1c684fdf7b60b29a31e879a05512add094dc4b0c547ca1ac4905c0048ed57b51ed0696c0821894166dbb9d246afc07b6daac1ae8180d4245302961bad2e938e56147202cf45ee66456c79a99507c35bef9b92194a62a18ca434e394782628952859572675a8ab140a95c060a140ed6591ed91fb1adefa23e73e0840f363d5c0c8016da3fb89fa4664636ab30a86af0c0cabe3d5a49143dd75522a97ef5fb53ad4a2b997ce5c5d85b4c28db36ffa32eb5045f56db0af8afb13ad415ec153ee4cc2baa355a19d215dacd6ec852767b777305c2d1c106155772a66499af34726201e6e21eaa7b5722986480da9775861121755433a74c62ba10d1784481a0725b8a55a9480356f454cd001dabcca631084d308165a6e0e4586dc77f15eafdc4fa1adb711188f03b69e6905d56938257c08f5aaae73fe066c7fa537ef0e8f99113a1d1fbadf9c4c1c7108b143c39718093b39a9582e858bb89dff59ceceac536ae8a33d17617924ae1e0d7dc7a4bdbbff26ab21d085485598029545611c16625b7e6172c9400729a2b0c6ed304f8f27664384f6212e327d2fb0d3ec44321df4476302ad76b4d37b3115eada67aa61d28b9ec66f735a52d6e23a1657bdcd4ad750f578105823e7986e49295d46fc214cc003068d28605f89c3ba59acfd2e105820cf58ab521b033189580b90dbafd48ac02c3dac48f2972d2b1587971f84cdce88f265f0d24401b4f07a31e9a3aa19f1b75670d62aa7bdafb3163360255bca75c48d67e84f3853fdf7e47931bc2a496ff888c2edd3ebc90e8e9fb0cc92c22144b631379fa12514a2b2c43b9979e748770e8312a9370fae34df45f5d8a3467c360682d84001f903379733328c6aa169acb2d2f61beb216a927603e2513028c9a3746572ec16f983607f61a44c7cc40ff55dc9fabb9c69437457d9f823722b8486b46fd5a4b2265a6bee6d37fa3c67209348933675fc3184bff8a024dffbf0f7475423a590b5b35c00f76ac70e89773d5d71bec6ace1aba1089d8ede42bf01cfc1fabe42fe0e61b9b3b592a59715ee9a2eb7c6b8e5525c318e907b6ad68cc1f70f3ce2efc2109b64caf9a39519177f0a53004e87c4a305d5d1e5cd8d060aa4627f42cb27f414597cae26c5e09212fe00e3966bca56dbce847531621c69e27fddb1eaa81083a00dbfc4437b94bae501b66ad585e54262d87f7d151e2144a658e90b7336daffac1464e261433095438dda6663dc1f6c2a75874311b048d2f5a938a394621f40cabba24dc61ed985582b29272289bce3486f7d497525a24f4dad31e5d70a1196b97d5ba25a10b15a6dcf403f5c1844cff9e0d3cae7b6e7a4691a63cc93a722ebe1b3061786912e1d4d9198c33cb7f3f2bf638eaab201811ce9f50417c11d72472ea990ffe004e14d87fce540b50fe2fe6fb85695eaacb2166cd2d93e65fb4ff9d58c0ef85ad772f3af48edf154ef0966c1957ca65551237cc10c754b465f494fd49ce5a516d0b3fe4865e26ed8ba45cb709295e21f927ddec4e20b53425add555c6c06012544922769d96a6f67b0e0418c290d388a756314e47207c752aa7f1ff7730723c74a90f4efbb0276b23669a15da0d2bac7771e9176c524e9315e1a7a27f284c18583af937fa514502f6f6ce430f6603789c3369e70bbe728df285ba4bb59ff3a485fc6d7f4bced215584aba36f143b440d1fb13af90877216a7130671a5cf00c143570be0966c52b4469baef47e8f9a314d2b077f3e01226c8c0c3136780f149d6ca0ee8c0f35d747c75af6b29c85be029d24102e5bfff8fe07afff17288c8f1731a879af0f0ad5d3d1ab43071a7be34ece19ecaf091e2f31d7b9802f8415a20bbaab2d58dd96b3ea84c00077c31662ce93bfe51d6c459174a2f176b88d2cb92e96089e9cc4216b342d9eb8816b4065844035d9c0c486177fc0b638ec72b74640064d80a4b7a37e017402a367e60e12e7ce4143b617303cc8887ac6dd15957b8d5b992fb68765e855e4489c0bfc7f7aa18f7a7bd6036248e91700ad2164d1f1e2ab72a2644c27e09b72d5ee7c67b5e0b22dae9b76fb36369ab3f6183956518d11c8160fe0c5c0551f981435f5d5b1ab91fcffc70e1cae7a38b131312bc7064835d00dfdb38b26ae51c632327f0e18a0b2e1e52a8dfa9572a59644ee77e13d596e9074a2baba2b88f3b31bbde977c3c9d0247e38ab847dad4183a8a177277bf2158956068fd2eed78f529a60e9446402632ac02e1b1d7a6eaceebafba0454bd3951b5d51108d89e245d20fa5a39dca6d7e885a4baaa791ed864aa79b1e4f519809b7780896ba4e97a856ad688f5afbe4448133c2a93148b0502f8227fa782ccf42959ff1463c1545be2ec9b5bddef83eedcd7fc96fcec12bb087d6a76e234dc32c10e15ad4a19325d5b5bc8a984492eaa7f68d5cd361730557243cfee6971b5706bdac458528c557f60d5ec2dfd54c2688837975c543612fb8cce51d32b4b2fd721a117b7af0a00a9c82b8ac5a583270ee01652d3fdb5930054188087c0cd1f6975a3224f68a5bb12b828c9d49ebd6b10f1dbd05bb82c988b7685e01fa4b39bb291ee5a54cf211e27a5f190eaa2d4cd0fda85bae8d3c8b11478fd549ec486191b94a1030ab0ba8c5b3054aa9a0e113e8e7e1c5f536dc064139bafb99fa60a9fc5940f26e7d34f7704a20f4596cbd81b53eff13c20bcda325b6d70e081717a492e2957e272253b856819960e6b8375143fdbcb43db98f95d8b95d8b6947bcbbda59452a67908dd08ed08620ebc757770917583939343c70eaf47cb7ab6bacf7fca2e99cf32e0069baa530b8bfe60f7148e577f2ce1f899420983f17af2146f5d1f5c9ccdd6d588a8ea67b6b4a329eee02d6d8b155016398b7b0f944e62409984aab8afd188b42db423cd07f96403cd96ac4232d960358468324c17b2c11c4948e709a1ae8d685b81cfba708b396bc580185ec0f01e0ba0e23c9882345b2b52662bcffc5542aa82356f024236261bd10a26e0ad6dc956b40d6db195c9b4c9a6c8b9b3f0166573ef82b724fed260422bcf6379de8de7e1785e8ee7e5f03c1d9eb7c3f3b0b662dde0e4e4d0b1c38361a5946f640c96b60d16bac3da13d412ddbd0f2a9b22176a51a6c8bd76b46153e4609eba5e7e8bb98ad35c0bddc507c63b124422daf60277cd3cf741fcd5e2fa7edc9ed8dc8603991f372a503f6e46a91fb71fcc18c2965b9b013524aae23e7b4bfa8c9c94887a992f064432a2f41df6befbef63814df12509365b37688a4678eb06e1a26925fc406d768308eac219e4e64355dbc624464bda1ccb0dcecc3934e7a85987cd3bb4acb3651e1e0cdefb985b690bdadcbb24cd9c73be4227af270bdd244a664beed216eb622d31ea124255dcdf12f7fd8fe2ced934bed86234bcd0dce65e3af197bb9c87e338ee35247fb13cf71bd07664ba36185575e1ae2d66e2380d099b7bf78dc8e69e7b1650c29cc5bd0d493445ee379846398da3d9349d773287b1cdfd0b3db8d15da12bf4020ff4788336f71df73768ab3255dc735bd214b997449bfb1f59e8d1a31c6d8edb92a84ac85b178917e1ad2b3425cc5ff939fcdccb24d415737d86b693cd718fb7a42b74915c9fcd7d0e85388bfb9c31f71d288f4c917bed48e3a2ebba37793d5d15dee302390ef7dc6bdc05dadc8fda159b7b8d68b64acf69cf79cf694e8bb2f25df739fecadfbdfbcbf4dd5fea8af97ed4bbeb987091fb8fba244c7a6b8bc58043a88a7bec23818d096fc9e022f71ce57e944936f758e60fe44ca110cc329956420934450e83dc6b21d4f554c5fdbd5a8f9fa821e02ffcdc3360b6f2731fc36c75cf3d66e9acac841977ac9971726ace61b38e1d1e0c3a254f5be99eee4e861dedbbeffe7372baffe72e0cf8025eaabaef027a02b0917bf8a05fb6831b63aeb4128a53ecbed4bdd669ef0940fb01455b54291c1db0bd1095c31f74e3a71b7761e5c209dc589e630858502fd0f4dde34a7f37ed7bf8a0eb53afc77b0df4bd6ddd86d25e6ed40adad6c2b959f0f47a505f025776f67dd4921e3ee8b9fd65a847495002da0ee58b2a5beed96cd939a3325b1c0982966c293493a86b36c11e6a03514bf428ee951eecbded68137fc540e13d3e1c780b2607eea209b77d3a55f6ef4c025ab27d264dd9e462daa7575822ea832d2e4b0b7e3161077a9c4d669349349d8c33c9024df1c86cc9bc7d1b345ba56fe9b7542a6cdbaf3fb3f5f2f6ab91d97279fb1568b64e6fbf1e6979cbf2d75fa6b78f31e87b3671967d1b2ff448839a6cd4dba742ccd60accc75fa9b73f93666bc6db9f55660bcfcc8478460acb6d838576eabbba07f35790fd15d03601edd014ed12aeb26f5fb0ed3fb1edcb80b6045a0dda18d0c29c65ff036d118e631f06b446b8689f06b4485c65c70aab2ef64ff6b3fd16b0b2d82ff60c768f34880ae12c7b431a34451b861ea56ccbf0bd252153b4109831c4305b1bfeedadce6f5f1ef96be5eddf2bc3dad10ada97de07bd202ed9500697ed2a9a00626f787b93a6e5cf7a256fdff6a32129258a94512129374d365b960b8a61b6b42fbd7dfb320cd11e8320cd5fd07b0ce6d7c0ee4b60cd14edf6debf06e610c93f0691d07c0a3efadffea5a179fb3468b672b67d0aa342e0dba743d415befd4de62f1014a90a070876ffa018ee5071d380760b51726be118c4fecb144df3ff34ff6f9f0609f1d7f6f6638000a75d598ba0ef8394064cb22d101a4455f62976c92c6014a6a4c9124b83b6fde2c91ea913bb86ad96e76e5a0c10b02f64b6e6db1f623523361056d3348da54866cec80066b6efdb60a16b5ec239c13191b1d8bd57d3fcb4abd225794ea688378ee36cb0d094621fd925611b2c34c60f0295a8a5b566bafd93fc2553b0472adbf569955d7d80763db2ebac407bb4455ead4f67d3d5d5fa1e922765b668cc946db0d0dd6396cca2bd0c0a3f6943cef2d7cbf6b743f6c9be5ffdd56d7f18a47db78b579130f7a34bd9b6ca8b65e63cd896658c7d3f88bf4adbbe8f2296299e92a9baefae0489176979429288cb934dd5b5394655f763b1582c163b793d1635023d7a444af67defc96c8d3238219a2d5b843106e5f686f6b5d6befd6fba3c26d485097575558a30e9923c25b125b3255d2c7f7afb40a8cbf476e79a40a797d3a62fe64151b56d8e6dade96f46a2aa3b86f6caf83cf021f05c02c23352c904fb3e8bd0f490c0782b703b879e94eb51d9f73d30beeb49d9f72dd20b51b09169c45f2c3367017947a6ab45882edcc502860ecb0c896586c43243e25a82b0113c9be9d987f1cc5f1e92b364b31565ba4a47a62aafc05d5e173aff31311ed298631ed21e732c265790a5d2158ea318c9bef458e076155d00428f18494a2ec27b642512e7fedd9183b210307f552adef2967030bce52999e124ea42797ffa237f69fbbef663fdf5435d19c90b5105307dcb27c0f42d1c383dcbb7841c500201a767790eb4e870d4a519759dc22239a4c063fa1fc9c3f237fc913ca612d0beef2999ad1c73d15b820bba473cd37af01e5e101ce75217cbcc55560b6fe15956227be498e3dcf782b02336f79895ecfb5814553870d06c6353f36a65338ba5e59b1b1c9c12d014ef974a4750404c5ed2be3c2ca137a3aa8bc414620f093f46c25266cb5aabbd1e1ba588baec13ccc5b64f8aecbda530e8c7cf1883d5c323fe3282816c607c0363116315c63830b6c17885310b633ac19ad449e9c0f01e17b85d18de2323c98e8abfb8ecc518fb7653f6fd6ee62ffb5c4c11c959f7a53d923d6c17f60b2ff69d1ee42f2496190c8c657633c5e1ed8e3aa028fe7a62033ba88004bbbe0a46a8d4a7f074a711a6d8f33403fc038a961fee1aaa6c00f69ad1a5686b224d34a9b43ffe928f71e8463f6e7f74d8fe12b43f54139d92fc25eddba72307836d9f63e22ffa9a68058c12ec1312b6fd71058c1f4f348d1d6ef9e0766f859a9a3da9b4f667734ca6d78325965b6061317eb95ccad5177e7bf931581a7296fd0cfe80a2c7cdf37ef3f2bbc7022ae34779e10fbaf3d39df3d7ec1c724c9c653b207fe5b75f1af2177ecbfd96414de42c8bc35392b3ecc78040d7973f6a222045e40c92d344dbfeed803a2019766a8c63e2af98bf6ab67d97229c8aeded8b2e27a58ca19c386b7bdf1ef7c8249b9482eded4d30a4148cba502f4891c051481d4905f90be5e4a66028265247f6f6a81875e11035056a077b43c5f6888ab2514feced3514112cf59324e50835445d18d0fafbfe453127f5933292024225a1aaa48aeced51525054504728a41df4286376b583762841886d19eb7e73a33de2a1159860b19add852e45cedade82a6d507f4f518389001dbd5e4ac7e4db07b4db0e9924d7c4c494c4b4c4326274ef686879eeccdc4646f45184d447b3315edcdf28c26d9dea41dc244b808cbf0116e8287f0131c85f6f04177b80986020f0d996026988c4916503c8487644cb20037c144120f4d71c351e01c48164c13cca5e805a63131c1b6d921e1218d496988e2213db432c343262113cc044bc5be25a2909ed4b53de5f1afc254cdd59cf2888f29d6882e0b8200fd81271668a01de40c9a02484a39e9143e4eaad02c7e00fb410f599491c5149ac517fb446986be2d64ce9a3f5bd25a6bebaf6c2ceb0d26f468913692ec21257da9e922a0fec9d9f3f591d9b20fd3423ac990bf745c3636634b461bb34f944c9775c2ea5827b6c8c6ec9229ce97a06532c5a97da2c4a4fcab7bb8b051ec919defacf9a38dedf936465d282092470b51b2061ea9b58f06a2ae98158451c410a23851c4113e28ea41d1076c40060a78e66b9fd73efa678a3b1ed0a3b8b54f8ebfa8bf1e89f6df5485344365c8a418814c8a1d64521091459184248b4246248bc20959144a645108c9a238228b4207195112928c480b19911319910b1cfb96f3cd38faa435e879b966a6e68966fb5f5c0283cc9a23a7aed2cc2e92278f69a385deb612b7f18adf7cc3d272727981f9625e2c29e50ac7cb0bcc1723834acd7051c1c07c3132a8d48c9917f1a3f9626450a91933343039a75efac2a905d3f737b4bfb898ae93e93a54d7a5ba6e46d7cd741d4dd63c176ad85d0776ddf601f917bc7500bfdf8b404c0738e57ccf855a06959a3143f3e0d0fde8b763a37e303018959a3143f360f87d7703effef1135f35b64c767fd5d098a17930a451532395439ad2362ce3f568db66c17b7fdba8d4b81cf0ad05ad0dada59986b5d6da5cc35a2ddbb0d6dabb69a00052a0e96f5e8fa6d16d26cbf4efd4127abc333ea7b6833231df8d538decfe82d9fed8c60b58a346be915d401b36fc75f2415d3eee7ba56f8a2ece0fc2a1bcd265dde0e4e4d0b10347fe4a5e4bc7eb57c2ac1b9c9c1c3a76e8506c63c281e3062727878e1d3a3c56f9d335363638393974ecd0e1d162655990edfa26fbfcc4bfb67ead99adee9b3558ac9c43c70e1d1e2dd74ecd4ad4387e84744ab9ff3775ecd0e1d172ed98e0c1f0e5f89093bf46ccf7eadccbe3ded6bdae7b77ee35e1ded7bd628e17de3adbc663db5adbe6dab69d6d3361db5edbb6e51edba623bbbfba1ddcf6c73ab9ce56e5916b9eadbcb5344f8d4f1fafbc1e8d87269d254ba02b9fbeafd12929fb4dfe7ded575ecfa6dd960cad8d5f94f6a0f4044a0140290a94a640a90f4a37a5616a8af633ddfcf56cc90f427b9c0000147c68797b30f0e4cd73c19d654216a9ab8812db7bef9fa353ba0f16a993c7fc1c9e27bf8d161a74cf31e62deb4755d282f53710c9ca7be00d43561eaf8062e972f366e3121884aae6fcd4127adcf134ca5a415d6d717b38b60606d1d9b651013c59b531a85fb347aed3e575af706c70a8c41b366ad4d008c1a7999971c35ae594648c9b0f6822bb620735905d11832ab22b90905d3102d9153f322b96700499155d18d93024b3628b1dc8ac904266850b64561821b3020899153a204107528c8e2041841fc8aaa04256050d6455b440561404283490152d91151d21239201c98a8ac8a8f84246c515322a6e20a362065cbd4f7eb6bfdca8072a530401516184ec4914d99329644563c8aa3022ab220532222764559c40f6646868d3ed061ee9eed2b77052996112eadaeccffe71d7050acaf117da5050e8b9094d916e4980a86b16519a346e3ed4358f9cce227bd47b5299cda36d851e37d8f6d10f9f6226b757ae1daaa23f291494067115fd3bee6ceab2550bf43867938a43e18189edda60fe2ddba1f000dbf4374b37d80cc78faec6fa32b86c4f24db746d4f3f6f5c186eed0ddcca39a170eb92dad9ec874cdb7f7a37ed57905822603e1712494a995ccc9c233223a817347f593c5173dad974cd276636a9c86c016942782165534ab51f2fa8ecb1460bda944e2bbb1957824da5945206dacdb6a429ced98cba4e53359b2de92f7beac2f0160f67d12dc7eab03267b376b35a887d32951bdb5ced1e0585ee2c96d66e76c33edd6ea1b70ec43d7cd0f85dd3340c6e1b4f4dd37af8a0b7edbfc1f46b9a86eff54eda6ca1b7c713fbdcdd0bcf448984518ed3985017055cb50247c1e5b9d794c4fca549719665b2394dc9e65e0875b9841a115cc5bd16c6e6feb46d38fa185c12f47d18d1f6027f5d406fdc02efa185b738d916653bf257e9b9df88a84b2fd9b8df9c98ae97e7b89828b8fc78e29ebb3efe3225cd96ae225b5a664b0b6d69a92d2d2ed4b05b5a565a5a744b8ba9a5459bae127f999e7bfdb86b69d1a6ce8776285e30d9f8b5c731a8cc02ce607a1aeed6af7106abb3bad774772f1da77bbcbbb78ed34958f74860de05fc791e977f018be4f03c2ee1cff3c08497aa3a0c83f187710cc63218a3304e613c03e3198c67320be8fd0ac8ed17b0c8e47101270f062f70777eec81d38308ba421789cd8a7583939343874644a411a588ae36655497431a362bd60d4e4e0e1d32362bd60d4e4e0e1d31362bd60d4e4e0e1d362bd60d4e4e0e1d33894a5295292e7233d9437e69d2c88aff45f2adbc90128d84694453cb01ecfeccff516bc3ec02428621d63cbd30445ec0d86e250c111c5c21d0d25d4068f99a8699aeb87ad0f2330c113056425a7ea51fca39e53461e1a2b20ad2c141cbffd4e7e59c27f6dbd5e75c5428a57425fed536ed74446fce062dffd62eebebf241cbff289e94b6e869045abe1ec2cb2e1eb4fc7c65a5b4e4f1685f2a29a9b5d65a6badb5565b6badb6d65a6db5d6daaf54d22e30a93c738353a96e76e449bdd6568d9d6a8f50f385964fa30b2d3ff442cb07bbc05143afa7ee4870e76d35a167e78866f5f266a47066bc52af1ee1dc32c7091825a3833a41860700aa3dc2f6ed7c1206002f2e2e29f8d0ac5629f551eba6954a5b6bf6cb12287df17a2a0f1144549ebac38bd7435108403df97009c0695b15aa952c5e8f0d5db4d0b2d60054dbe2f55415585460e103b5e21e16c05d49a0714fa9b290b80151d10b6ca694526badad5b9729a5d45a6bb14784b65f6ba5d935f67856edc2c86896d3c7a066d8086b6cac72ecc8b1c3b5f3ca27a4f0b3efc63c39475ec1f47d15b2fdaa6df7e6783d3774e181968fe3f56c375e8f16ba0841cb6765a1e5afbc9d1f68fbf271d85895d74355c82b2234fd9e5c63256b45afc7aabc9d1fdcd859c1bb61a3068d9a700516b25357e6f1bf006801d308419a9fd9f947f6af114591aaa6b8a86933a96a51f6870b9c0b57ca30e6851518366dba68ed4b18b20d169a0a20674a6d5869056b607cb4fcf173c4783d349b40d39501646d024d698c0e3dd40502d40fc6e5e52480bc2242d707924ff49d6a27afa7862e485a7e7d6b5baac9ebb12c1a48c605c83e7944eb32b2e2f5581d13f7a4217d5da9fd29008f3f2ec5c41d307daf21638f33a8e83bc559df5b3f687f3276d011210838487b325c84be45f8477fdb8d726082c7d02fdb8d72380119398020892e6d37cac1678f395f9462a063acc020d0a7ed4638cc209f0007245c0db4cb76231c44e06d81030e2548e29ed030db8d8a6861441544459ec042b76c372aa2e47ea1f576a3224224d177bb519123251f686fbb51110f641fcdb2dde88630ee13ba6e37ba010c0e0acd6d37ba014901371cf9d53734b1c76f3b02bb6c423b91088eb6693b510f52aebe7ae56297edaee59ef2d532379feed5379ce0fba804c5dce0c30a8c11923e1bc29879018308e6e6f840c625eb7bb510642fd70628b6e50b262e364891598e0074b261a83349016ab1418916ed858cc58622f2ca10804c3600d1958800d3361079f190865688cc4c994a29e712014209ebece4e4ec1461e6dd1c22465dd6f7ea2949a6c4b29ea2e3bcf0c143de354250c784b74d99714794b421205d22306b8fc06423f2f355269a182c94052944b60877b23043aa770bbcc3839c9c9d222829c212aa2767e423ab09731216ba885dbd7d68ba14e053b46d1d583355d7c8e7881b3a68a2696c37f2b1c15b42673172167a65082511686de445a16186b6234db31d4a19455c2af46f87520691520bf4cc16f9888e91027f409b60d0cd406f2c289940c36c87b28420b82a9660c40382aedba12ce1470e2560093e5475c1d424c389e9b76e874206933d7e4ac06e615ec5359ecd3a4ab77a306c5cb6324bb9654f4a2f67d5f6bf78052ca244e973789e95c7fa31cc8e4b06959a3143f3604c0b959a3143f36028c323356386e6c190064a67c60ccd83218d9a54ce8e199a07431a3535be8f2be51bf398c646ad5fad5f2b586b582b8d5a6b6aad51ab8d5a4bde4c8e07431a35356cdca0c94e5d2b7705fcf1443bad1137cef67f1cd2a8a961e386a8fa295630df6c7f4c2357ea4a49d6f7e54a815c7e755629775d177e5cf0000e5ee8b886e7d9f0bc1b9e277a9ecaf370789e8de7adbc5c53ae925fa3573ab9060ecf133d4fe579383ccfc6f3569ec7f2bc1bcfcb15862bd55f497da729f268d0c55a55b5e2a8d5a6d655adac5a6f6ac5a9d5cb3744f186ea45d943b4b1fd318e7c658f2b7124b6c94e5d4594a8afb3febe665bcd9235f8a5f4cd76cf2b81acd5aea097401cdb032f98a76ae29f1b5fadda26f05734b6df781e8ee7e5785e0ecfd3e1793b3c4fc7f378789eced9e7a873c2cdb8666aef8fc3ed8f29bdf433fdd28fd707ad20fe95d793bd52ca0b65b0c17f715ab245e9a6ddd4af4cfc055210c7d69fb8836c1a7e1ffd954dc3d101bb3271967c0bf3660f2b30ea070d75d3a7b2861a36fd1a3665b2fddd1f4fef61c8aed686a3d574654fc0df378d86baddbd4b22b4fd37ad03ea82f65cc29191c39310e8a084274496e829010ca6205144161f28e284f8812342c70acd04647150021d4ca18683208cd4ec9a8c12b0c81290a144663b14327c7ec03faad0354c89fa11ca4db70cc739e79cd32538c3dc524a2a048c5d44cce91a42cf39e7747777c181963f521640d7105ace39e7ac53609c4f133cb9fcb965382a000832efe44c31067a5296af50f1a14dc393c659ed2afea7d11caa3a41d270424b714f1c0d87bb108476e9cc9c92189abe7ce1a4ddd9c2d94547d43ab325cda49aa2f6e7e2029adaabf963891ef59e3bd20377b6509ba65a3a65adf486939cb3661168fa78cb36890f69198e5668cfdf3c16521b96c5a651bff7863588bab8ffb4707c2070da550f5a7f9fe6ad80e31222094f07a3ae95242b4960347b6505a4e58f1dd8d2597676a076b00eb6b9521105817c29a5ac2db22d6e124e6e9bbfd45ee20bce40c3ddd359f52fb52f5dd6aaf160cf6f914d3fb21c0df604b29acb6a6bc70d01c53c1f971c68f9fe73ce39e79e416877cea96ddb562281b6dba15451c21eb50af4ca762855a46c5c86deb643a912041fba7656e901cb7628519650858a3d8a45b58b9c9dfb69fd77ef8c8388e692aa592981082b76fdab84d9aeafabe0b0eb7f2f9abc9e9a33e754c107f69c0fc32c8639e7d439a4b0c11e5375a5638f3a50926448d0010957ecfa2f8e004a12a4ec9a64c3aebfe2f5d451ef1b94841025c91a630713c711630cb1b3ebe71d99185ae00eecc0856c06c6135910a1011e64c0c50ea018e30717f0d42abf052e882576d094d6f75a4f35d063cd2746137b5e1c3cd028272a40e0c1ae7fc388c1aeafc50062d7e73e134230f3ae53b4b85464b0eb5f6d8208a6c076a5c1aebf5d137e8ec0c509bbbee6f5d47b3a1d81c3fbf8f81099ee543a157b9c508ef0031832d85323516b96390e66456476fd5b5f13b1eb4c8c5d9f3e8e246ab634c276d935475b7e0cb3358a101092520d692315206de911c0fda7b69144a30a30797c501590fd4966b6ca741f2de848e9435f0c742837b911851e67d0a6d425044c882e9112480c8d7a21ac79d776a32280f6044f98229509d236b2d0a39c4d20fa453289524a5fd2bf596267d3ae7bed9f0f3a47193639a5944773becc9152faa0a066df3d2bed6a8a36ccc1fa249d0c3deeb4305ba39c79dda12acc1049f72aea73b344cb2d4aa09d154690822294a1a40c244311004212468881021ec270017d9c04964410bdf982124822290a3242e2c9a63bb44809354a1205350a82514d29fd3a2505da54c224d094de0a620bf458332406d0a63daed0748fd56b704307cd812098824d9fbb72874dff6e9be639d8f4b56ab3e98d245afe147bd04e8a66ebc96cbd0094d078d39fcea2cfc40f520041c2c01cf4e085cf942184a0c5117d49c587c29f51adad1367d11fe5149b7e0d2a5ace5af37fd7b006185afed8016d326b455bfe2a06dab76bdbe683dedebd064868228a10466083208e38233cc0c4491258e0831f662cd4333ce8fc5d11ad325a872a510a55f4164e26e15c52448f35a80acdd64883dddb07c166cbc1fc0ee6c71c589b4c91e8deeeb770f4e7be7a2bf8e3fcd3ebe15e8634d89d5fe6c7366f127ba07f07d62695688a463c38d96ec483131b67bb110f46764d425d55c624487fdbde7dbe0c0e8e34d87d6f91bdbd83a3f489411213b3142069461c9d602809221614d526f6f6a3cb8a7824f6b6c16067dbb6eeef06367569b2011111b61bf110654f8f8555135a0e751c286312b9b1835983083d4ea03a04033dce3a4403a32d7fc6a4943e635bba4afebd5ae749648f75c88b72f6df90b6d996b4f96c97b22b8bae24bace71efee5e8768d237d348d8f33cef9d0e791d9aef81e30f8d7ee42361b70ec9a331cb30896cadc894042c7ea224619f5e8e9a4c18942850a2208951056764e40937c4954a4c8d8eeff75a4d862769ed0a09edb29356ad76dabec7ecbdd0b2eb9f36c9337f67cbe0b27da74867ae5ff6ebe3b08954b533e78c61af19a52c1560f23c55d5ba535170aafafe8996302041bc08c817c05ff2e7ec3a16963106cc80b36a8da9ff557057d5aedf3ee2817d97539c4c68fb1a0682d0b084185b82c9109108f07465bf3d9ee81b644786002804122693a4e08bab8405e4964f35ba43430a3d3a1102bad71fd198a30b109b937bfb381ce79c73ceb96d3fb90a48592d4ff7b30b37d0019e6e03830099227d1ff434c0c6d3852d5015fd9aa05babe8d902a7fcfb3c32a6fb79cbaf2fa44975d7949e00b8cf53ac9fb353ff6990eec1eaaa2bdef01b37b06f6a8a750b6b78f221da04bbd65aebcb63808da7869aaa82f4bc1b8f7b2cd439e711b14d1f5b4b049f22230fc8667caf2434ea47ddf6eb7e4973e8ef50970a3db4a0091e9414a180071efa2faa9ae8f177cd6cd9227f7dadb656add6add65b2b576b572bae55d2d7509a367320eaf88081084692ac76887084d6a09a954a52b325ffb593125a9c22fdbaa383965f6dec4e91b4da19a696e7e73dded3769d9bcfbd9085eebed31c9fb4ed394b30cfadb1972578372e65b9626fd84c6cbac5a63e6c1bec291b6b9982d2887dc5c697eb4aa729fa4bbaa70447cbd53927952da58c37366509725b82a83c4517ebc6344b7f2ab394210d253843d712cad05d5082f6c7eee2525d66d86d5cc6187606b90141a5d3be4bab0de1a2820363837eaffb66b2dce9d3acaadb581c9a6a137325e246c7bd68a16dbc48b935467777cf94468e9026e435f5378dda91524a692dfd9723d2fa13a8d482ae31eabbd4e0d2b84451675a58669c5a52a3bbbbbbc8dc1c148ceeee0e53bf0fc65d26e605e5ef2e94a2b2bbbba7b28b0a11b7c52424fece97b369664c4fa33fd795105cd5e852f826212d3d1a28106faec9631d29a59476dc8db152a1b166af52b3c9eeb9bbecfd3b514a694daa5a9b0c634395eedfa86b5de5a060958496a3c637ac8973237370bc1e7fcf9e63420d60247d7177a1a7da623f16ed77eab45d5f93bbbbebeb1a6285860cf177e7e1a769c144c44eabd26f8a99d2cf5a6bc3b156bffe9b53f7bc1e8abd2b7194669728b47c4a29a5575fdf4c1a4bfe6ede2ad1b670ceba5e4f799504a594d2a72aeaeee22e554dbda5ffd38c2b24b4ac7556fb5ee5cb185abefbe31c3194238a62882b510662be415cf99fae9ad24fa4a9a279cc97e24a5c0942ace29009309eb38a7d342c2ed761ea692b9c297b279717962fe60526356386660618d2a8a961e3860d11874d6ba7ce16ebc6a509d1086f705a45a6abeb42ac197191611f0884311c619f10fb601f1b367278840c0083c84051cca10322e081143d8e8cc3eab03bfebb9b661f069a168868563b86609f1f423353c4e74785193e66e8e43861c6cece0c9dec331e3e6b59188feedaa415c0dd2509a295c57bb51669aaccd049e5e4a45aae9c674bde0c99625da54431b56387d743699eadaad5ac52fe5ca8fda46c92cca2ea6cf97e2a6db0d026e4d126693fd48561547564c8fc3e257b62a01f348cba860c990dd15fcc6cc86ce633135eaf1e385232df27b3d30d3975db264dd105053234cc96c5c049d3187c0200a4fb05000a375048e17b51e5af5a02351fbf2149c3a0f603c475439589f952c83e2ee72fe9f7a9abbb57ebefd37c56483ad0c65c1b2c74d274d9a4d98143a86a0eb1556c92e693632e0587c4f86c88bf3cfbf07a2ca5da4737305dd887aa26864dd57c0cdb7376575b8dbb6cd2dba47993a806b4e76ba0ada2f92455d1a34b416a22c5bfd8f3e53629b4d867cfff929420345bb0d94ae22ffa2f55b484b149fef200dcabf56793a8cdb6496268f958856c42cc57b249ce9a6f9392706c47acb315a4ab295670d25aad9d81865b8294d21a3ea561eaf3af616727f0fcafb314c8a5aa5a43b1d65af3eeee336823fd397d06bbe56fcfd5ed1e027c88670b2f55c5360d73e71f38b132ca3d83dd32c88e82f214c38c3b6fdbc20d7480470b514878166dffd9f65f1169f95c09f563cf2a845d61f45044cb17ed186e5bc40584f6a33aa8c4ec586539e9d4d0400000004316000028100c87c442b1284ae33cb1ed0114800e718850664c38974622310ca32818a2209a210011000c00c61860a6848803babb73e828aeeed3ac27b81b8f3e0689397184de48740e166257260e37f0fec8b41c3cec20b2c5a72975612846a2f31bb096880ca315dd685d965dacf291466e6265c4a76980a44d4acf8850ab19812be21f2bec4557546ab3377cf6e024f84cc8a9dd808ff131ee303b8bff97c72589677bfe90d5e7ed9970086d9ef8500fed7810e6d5b50787815e8d408f62b8a4f0867b8216c111d36063d1a078b45de19677cc30b13f996f3ce1ab46a133319d81d3c7c1520d51ae1bb290881c459b9194828e3c22fb39f8f6acc39fdd16f42b18b54a7e19eca6c9f10b050c22918c1e7d9fb7ec8fbcc1a1c90767a57815e0052c77eede9a3ed96105ac184797d4a7e3341341b69789e3aaa9115411eb92e5e73e3f3f1899bcf4f206a627151358dab943d75b8d88c1dcf04e17cbe37e2088a900cf3fc2cd55178b373963971cbbad11a46f3fd523be6a6884c1e4da855875075d4f6145544ab946dc6e7e426a341ceb5f01e5e9492b4252199df0e0d661210a1ca1e1f63f48551f30f5f66f25106b6866deac0b1a52f1cc85f8f73cdf0df707e62c01001d75f771ac6ca6dcc96c1976be3ac2802e7d912aa7b0f83475c5968ea0700ce255ab6c8fc2924aa7dc5ebc330a459e352881886bf08fc301c92c19241cc83e179e2f552e96f600d01678304f6cfffb7dcfc46f0677d7de312eaec1d74053a0d2489e3ef9fdadfd71e1de452d3f196a6b0a6563ba3b6e414f8ad42891f129e08ef7264f7086a5c236769c6505e5bc6e74c95c6ea95608aa637bb12b486044d1b207908cc55dddab8935de7c15cb71595c13f677b3c1d2b8598920d209e48f57c13ae7021c153f82ff8a4e13ad98e22d184e8cbd22c98279b618623e8d5272c3fd8203941a2e759a9229e5140bd7872405929c9b8534fc906c0f766cb6447ae4f14b8d4fd46c9e8ff586c820e8f0cdcab2c4b40129b32d7fdf7e6ace32acd10917e24f81d07c55f65177d72a1f1a962ece0862bf4a6f8599fc31136490f961017ab398a69d8e9ee7ed37ebcfbe4ad2ab10791c518174f0ad3c2d3535ea4894947107adfcd6af49f60a84c417a2ad86453311a8a44a353eed5545867e2e23dd6bc2239931c2126395289ed4b9dcaef5eb0f06d7aa394ade4364dd722d1accacd25a0cb0a9dbf3bad865961cd322d683044f20d4c286899cde4a230d80f74c1c395bd3aaa22ddeb9b7aed8de57cf8ee85d745b91b6da1c0b4c35020da34d71d73bc9d47161bc4c25f5eff96728abd8f0bec967ef1a4237c7ab09bd88f541ffcbc3ca6ce9c0d0279d30fa6ed715edcecd89612c28c5e0b33ff26e6202911d2d235351bf37c0b10e18dad274bfc929d8c651813d61eac82aaac5db9531e90ad813cc104ef9ac7f513eebdf356ec2632ae3266689526fe514023bf800de7d5e7f94e73ece6a678dfca039c6ca997ca83ccae1d55525f88ca24949f31a399730c38a61d16eab9b10f34c9f6afc0fe3e8a9130ac71a3a8dd4aa4ccc66e5ce0f9d2e250a811f868e54c3406ed5a6c7a7f4b05b908e54a794e8de0d71dfaa9095174bd13ba5a8779c9bb064ebddec7a3dfabf9663d0d6904820d6b3a1a5de828c57c925c8b790d74d55d3c0f29d4b7580dce255497542a61e1faacbf1aa58cf4292536181579fa68e4af06927c0aaa9c5207581fb693461db36c6e1446d65bce91a33e71ec4182c45622e5650c6209d7814be31ac684613e71191c6b9daaf59732acc20c50abfc39922bcdbcc0d7033614963aca745a2b9d6e6b4b56cf697a0504086a2ec70976c2a7451dbd393e15f5a676736f3a9d896e52158ef1a80da9e3e92384f387aa063a2d715ecff3b7c59d65c5274988e3106039b16846c6d251abf737926c0478ad04c1cbc332695fc14af489a66497315dcab9af48d0b2c2c388c0e9a4119be0f928c6d2c68842fab8ebfe45d042858f4a104286cfda2d5fb9ecc61c025501097efba31dbe67960c9d7d9e0953b4cf0d2bb1e608186a2c633b8dbda04b091590998a5337a685602ea1078362b6119e220c223079107ab2cbce9667620e3c91503ecf939d29e45ada556097608949eba6e12fff19c14e9f57e5d464e0135ae07f4f746bb1a08b911607bd6f76756b76445cdf939e5a8768485332ba5df537619fd5a2e6e7155842fa44fae6bd8988a6a7d846eb5295e0e55a40f7763e6fd13ca6b8eda267d445c41c7d2f37bb2efdab4943cd6069a0600a51b47681b7a2a04bb0caa8a1ff8a51fe931313e4a3ad006239b02911631afe0abef6972a52cc269c6f48002705380500977114470327d8a825a9410586ac6d43df234e181448cb3fea94e731e6cfea9f329c61028a7441b7d008ed41d2208136dc8da514ae3af0158421671357ca3202390f929dae0f8f847b3a239779dbd543a0a83bf21a03398b4493cc5395dfcf6e97c94b633c74c859e93de1ba7daa7c62b9881f4820efce745f5462f4ad8e51b82576b0c36d12e4235e33523834c5a90187123880ddfe445cac199badc9d2031642872587641e3999218b381d4cbb418136a24a1be86fa709d39ac531aec850a028d7adaa386354f826a6842ef73e61f201c4e073084b92cd63039bfdb041f4bfe6009a6831bf07eb106b74f75eb1111c51db513515f983f59c53ed0d3486e7921e05b9a6d507d13df0e85624bf1a96da35afeb901ce8788abfa9309c59a5d9dd721f0840a5640353df0b8dc6efd512e8b55b9a55d764d94761c17e428f9e2950247a64c9c519d04902f6b796e224dc61f02f0ca31a893ef727bb0a2bdd3db11a9bebb67801d416465c30a879485fb0f52a6e8e9ce086b6414b29cdf906e0b8dac1564639db801dba9e0fc888f4fd8ea6847a8550ee3b813ecee0308277348b1e9a94bc0e043d6708b9a9a179a65a54ecfdf610f93247425c7f8c338d94a6aee6bcc1553d10684e0e58b66cb828a259c741567fb47eab3c4cf9fcef9ffcb2701ee89462dc789d81d77ab288bcb007b3777cc6f118b6e367350147cfbb5cce6312aeffbfd7fdbd4faff314e544f8a811d6fa91281177818b3d97618f79c012391cea0445bf28e20c3bd7e8fcd1760fcefa43616b96717d57942905142e20b8c26297c1e2d048f8c785a45224bc5cd9e29f00dc91bfdddb8a10a172d1233d12f7ad8cacea129e97836025ef9646b5b5e71adc5a1a245476d85606251706276e06cf8250110452518d851f6415bd89e9a902b7cf653e22850f489fed858606b255a9029b0611c615e4055fed57918128b85df69e8f3f737802c6b7aa595bc12cb289f212c5a129f208373b9d32bb53b3734fe971f565bb45cedb058ac32fa29ccd51fba3c0207c82b3c2bc0b241ab1a759fdec5514b9765eed2a1efdeba6539a7688266108070a358bb93e5565057d753e1813d74d5ea3293fd8bbcd7c2ca135198768e7c717f683c05dadd46b6b6a5313742b37e92c249351ab2dc5d1186b77cfd36a7d2c4d5ae0a73da2f34ae5a49c54040490d3fd7bca20aa73ac7c87424c90785429278793b48b4876ad00d6736ac9ca5a9d78e7661899e95943d3b8b1806cffa762ca1000efd3c5630746f977bed7ef5149f69dfa566d4768fc7fdfc24cf570bf761c1d0970668fd9a3afef06e9530b561685c2d2df81c7ac004406f10b0a0c9daec5966b1bcc28abcbb1fb2f1da214b109fb0d8dd3dc23e37b09451cadb9ad15e562cd6086ec5d90a25e567022db8609041792067d6a23383e165b1864088f7da6435b2b3487b18ef38991f29a415ea37867e6706cc2614e081cbf9d7a1220285f1fc5212dcc89560d1416655ab377dc46a2eac3489188ba41c04c7201148a57de1b135b0c3b87d38aed83619197b96fb37cc15d6097d109465bd74e4486fab6cdcf0ccf9053d6278f0b92c5c14334b3b3162f0141a7ba4f54b1b26fe80c3c894231f308b108d0832c6d0db233d48e9b871d138327aac117fc8e255002f644adcf1207b1c9bde4c757adbe9d034ec95d6a2de4e1a091cfbb384f04078a34c7de08633a56b6ec97a72c95757dab4adb6a9e9497da984c5060dbf2bd61a0f6cde16137544bc9e2ca51120ba9933e33c155182edaef204b605dbb6aa071f095890e557d0072eb17713efcbe2a7a64bc62eeae593d71fa13cb3be0c4da90cb4aed9718b85002ce5c043e620e1062b02d7663f8defb61e32ae13281e13479e66ec0d7641d2ad6a133d40d3ec6063bee48e4d6a3a965819696469bf6920375a723ef3d65896226fae47768ba654a60b42a8a096676773a23908d137bc7741611f30796ccdfed9d25658e86ba381a4ab9cc5df89170fa221628b41fbdc4b2cba7310b173eeda8ba604da6a60e5601e105be1568d284580c069fd4238ec05c41a82901c69e776fce0413931315d751d47f855c23adb8cabbbb75a315e3bd7115c6c27cb33a5d1b94ead6717de28289991bb6a33bbb16968bf3d1fd36554afa3173b23b1eebe4ac8ccd53620c81a20c16a7007f221859d0f019782c82d52550ba41faa1a67c06ee8ecbdfed627d87eeafacf62dfac9627f66d28f6f73a06f2c97d29ab6097ef1129d6fadad43830a1eedc0c650e10c5956baf2e53c0669d1f92b412068924678444e429bba1b870b56a4e1971f6b9316f1c0cb13cd8d47a6cd2b5dc8b3b1583ef54548027a55475c4716f46e4e621b6340ef1649859908f896501d9cca5e029d221799e84c6f2db325bea5e45adac5c3994c1dd2d2bb66a2b5368f091b19008be2b9449fe7a608ee35299f63494971362e3ba1de12414db50ba6ae52a7c27103f88e8c7e505c18fb7980b00202f7d88cbcf16aeeef011882fd21d0cf4a1b9dd4d51fe97da0ee2c581b1a097972e5fcbe1788b2f19ea2865228cd7031b8efa97135b6cc5581a5e301f3b28558992060d47a1f5cacaa1b6513a45b037e75752553f2034e676c90959c61ff9ef121b9095512fd8628d299e71db3a7a29036682fac40757f658eee71a90045b67fe4eeee98104e17c136c48708b967063122c53b9a88670da16703726e574f67b18035410ebe72c8fdd23a8b063ab29b5abf9c5a00b9f21b95fc4905096a55b927bb1c6c218d53df46c1d5ed935295da2343cb74d9d557de9d6167ecd3de2de9d07b39d545081f2656e5b3b6b0214c2c891d26aaea95ffa42d528b470e87e547534fb9084aefb61e17163e0eb894b1abcd91bf2ff5a45e6529d838d1a89ae12ca1111fd11e8877a284848211bb739c1bd279f0607114aaac8e8b3cdc5d1d2a838914989f959480a822df7928674a197829932eba9cf8185b8b3e9e4a6330e952e1939ad537290a577e87af9207411cf9dbcb6dc0ac067d4fc492804fe180925cf0c4a58d52e0fa29599b6fef47985da33df2cc6fb7e6c067856e0314e0f9d3bed4e997ba395b86fe34c4b3902916c04db2ee769e42fe708e64258d7b3694b3babb25afa4fe0add33ed30185bb08f30f5ba163ca33d0b280b1f6517c1bf74e4129c9591c590f930c1a74356f36782473df43067b9cc9a34aa4868671ee3167db17b6e19c466a852359dcbaec7dd28f0fcf6e3bec561e4089e11aabc03578b68a345052d80d957aa596d7720396e7ccbb518f568871f174fffaf06f73fd40c23f9361f8ddbeab25fe60247f03bc1f2a730d107050a0f1fb87deb396b913237704ea3ce721b3d3ec97205eec02e7efd51d50e5764ee15cff8285341158b72185f7269b962e5ae0287c2ce07c8547f7745cad0dfd5035784b594e8840577d78c1cac32caa2146b7ecbba3bc00b1caa83d10ad89498b4d6379375e01dc124a3b4d2806b716860afd8d03d24f1e8a1606a73814d9a0fe0860795899af46b13854688f8acaeff541a0e0ac098d70ce343fabd0650971bb7eafa441eb3336349ba4cc3a707c6e94c264e4b2460cede1a18a5cc0725a48809db328e65f1a43571613b510877ca34facce1d82709308fb3e16b17b169a3a578b29cb93f20986d99cb92e68747c06c400eb846da3cd731364266ea2f429946da720dc3df06cef5bf0a6f49e2843585b6a1fea77ffd84d14efce18d808cfde5ec98ac1bc46c1f36f209a6bc4dc87716351324c0b7d543ce2489d02f4ea887f0838b880c8267ccdf8903cb933d6f600ce54c80cd66ec18632ede04d715ebc461b5c395499ad086e1917a23d5054bd8f8703fb272bf93ff10af4cea6fc07abb9321b288bad8eecba89c44d3eff990f45b4ecb42d21434a824031c0109305580610e8d7945e65f26a8cae515afa8a0cdceb042ffc0983ffe342980fa8993e1f6fe3253211880ef64246a303300366afa53d66878be908087a45644db3af63a20586e128686c352fd5b608b2e00adebae4ada18740a6155aa18d64cd0b6d666f8b09998dfb209bae14a7f198e384581e8c9350924247a893e94b452bd6a80cb1d97ad81e9ec78853ed177ba7e60692542817e12a658b4aaec26973a7e06e9d26658b37ecfa97850141d1ba6ca56a82c6b8ce4c519f5b7be7b48816da9f758e27ee97fb76b3a1828c0f0c20a19d982c16de7701d8a4651d49bc2ee7ea793c389d86a288fdae45cf9bd94b39b3e4ea0dfb123ca9c691d124b854301e23629574bc1afca28c030a52dd453f9179634b108c391086b0d2c986b5dc5de70fa802240aaf5c4d3247bc6bb8ad44fa3c3c1ee11a4ae91f1e573f8ce2199f1d6e31336584eecc9eec04e8082b4d77fb15466491c65fc0c54ef25f986a9f05bb0b37b193c392008fb56de8e5b34ac0c3621b7bb8b932f0b1d82c05fb175c5643d0e9e5002c1a9b719880309d1b8422e3b8b376f14b6e09fa3fc4be30b1781eb2269e1531edd75b74bf69a1949d04ce6df410b8b6c5926fdf6ae070011ec452addcc3e2ef44a0dd78ffc844880ec913a02d11c920002ee49848ca237baddd56e26e9ee24de8a56ca4d7bbc5d4bb6273df4274d67f86d9bdc116c171f357c8e11b549d87a90122ba10dc144148ad6743d29a59e47c94a1d062d572a0c05a5d59c58002f6e2137745cea11cac8f0f59d4a1a30579901565bf801edd74cbbe110240d30825aad3641543033104098543b1456cfc4d2226f95882fd2901922abe402f4e7693ca0ec4b414b7453d96c5a07ddb84560cb3f2158e2ca541033582132e2e10b3a9266ba707c1ad84a8d218c8c5d55bf6955461cbb94ae01be73fc808ebf037c1c5f293657286027b4a758bd940714d57a36a046e06a5203fa16e283d5889d7b40956779119f9f6572077f3591b6e23ec7381bfb6acb38168b8a41551c1838929b95c14ae80929d38a8dec93e3a72a7caae3f1cb55a09e2af8836407373138db8202f355ddff7229235bd246c34e867ee7941385f0585c1a7115bed8486914e827ccd0132893acbd680743866fa18e71f7faaa1ab2d2c1cf46441459d8a75e4a54165393afc770d842057097bbe351b3ecea3df44df952a96a04f151810a09f063abc4ee6188379eaf89e0a0db6b11ddf28a101193be48ea6dfb3f13eff882b0326e77b4f845ea5335a0b848276aaed0d17028d58227921b7668d41ad88a50e31dd4b6caced9848dce76a2fa42925241be784819060ec94bac8ecbedb055eca48281f78a171b40105ac082054435ab0a9b1eefd2776606976a41fb63297bbf242ad76ddfbb410d067de751e7e45cd6b7bbf802749837b9483ff835193fe007a1d8a02f44820122b11a3b009d07eb93222fda33c603b59772e6466a292616e618b0f0d75f0c139b4d5e639c8b3e8f761a18d3159b89033db53c1c5f041644b558982a88d25cb31629b3c6d0e2a0ae370417d9a927509ea20eace3dd5dfa7a95b47936713084917aa5df4aee5306b2620bfbf6666c649d63a701772159575ee863947397d1d2d4791ac70e6afafb4612ea0e9fb496f75922ae6059d34e4c5db3dc3f9014108de838841f60df1879b816f405e76dbf439c1a265cc36776e508fa6a7dedca3666cfaf987738c9145d82a7ea92d812f28296f600262ebbdbe0ba3ab7f605a983cc21e079a3a74a62068399e5861cfcd50e3c29058c2a663140203a77fa9dadf88a932cbd263362f516c6b306f605cce6be303ddc21ad955ffa3a74029621b6b923c20c11b7ca4d425275ec69249c9d59e74b84ba40d7790bf81f256b80b2a91a67085b33b1a3a721eb5d941a760a19f60955243755360e470d2df0007f27fc831a35e6e68ed90535b58790ec5b2386c3dc9751ee705513f8467b03c68cff0732d86a127846f3b738782080aaa40bfbb84709d31774424ce363536dc1b6e7c5f12092e9366cf33ebb726bcfb2ca107d08e26f540c480e8f5de2fa2cb382d7abf80cef09b38fe696a69a6a8595e876e0a385011c3198a271dce90b3fae8095f9839343dc3411a57cfee1f77304966faee467d0638726f3521d911501d11bd88cd2264338267c19c2c1963d664fc15a2392b014dc615f2d727facdbe4eb7b14097444f1312b473c11feca8bb9aed1959bb681f761a9528b3569cef9fbac1871fb770492713b6d9a4bc187af1402e364d0b9783e11fd1145d397ba6edf037fad768527ac4201d7a222bf41e50421206195b5e3e7c4d7b2f064b5e21c4ea1a44702dca6fca10f8afec15cc4dccb91e033de86599a4fcf7d4be9fb211618ebe4cf9e0e03c0423c7efd3fc424514f005cdb41b66e67a30720c5315daf60e287c1e85c156123cdad75333b0ad83cbccc1a57c11baa268ffe2b8c80566b1a017a9b2e272c281f3fb651eb1816220d73748c281bbb1dffe48103e52d689d7a7b7e32e44006b0164a15551ba16e8f2eab2b9d657492fccdbc63b5402276d21a064dc5c7564de007e3d2ccefc99621bfe8df2e93021864d9dafcf96afd1f4ec90502d2f7b8d504cd08a9cb978ffa31f83874088d35dd09503892ae2198b0f498a557e1938ac0c875ca5be34fba82b0ae4d53213c2615b54fa88f1e1f48c69eeb1f5f1e2b004e3d32794be27638e9a8153079f0a77c6d9678e5963f4e2539910961112d39736adb09b8134d3f45b216c6ac4fd65db7a73d86fb83ad110d87af8c5d010bce896bc68d456f9c4b3fd73d9b176ebc04f85618a0f174765700a10f3e975d032bbb9b8d51b9edaf5fc25099ea4e1d626db61f0fa3f108357b554dcf5fd777bec4707733fd7bb03a4b0889a272d5ee42ad54afeb4fd2ab0153ac442584dd255367a6a5964449f6050b22eff0cef6d95fff68c3ddfa569e6767039b4344fae3b186828963d6dcde163a9fd9e0c3ef2b677e217eecab1ae08e885b106ae246b21ef493859044868c52479171c2fe04a3396c93ba43e984ca44fbc687746931073cfba4e34e0bae866f78cca61c09a2383d363927e8dca2f8ee95d924820c161e1e08c2cd6056b10fe4cdcf5f1960b2979d43a34d2ee0a38f42a8fd360b7b38ccfb3f11d3cfe697f0a66c5b14478ac68fa9f47bbbc08e9c7f10bea26d788427ea7101c6e446eda9d544c19fbccee3c91de4c9c8832b216c993c5d7aa48cde164994e24e30887974e0d63547fe6860f81ea3ec230a1719a5caef7b0bdfb3978c465a9ae48a3c1cfe09d6c546992206a9062153d5c474c42c7f5a59b44352601fc31c470fd4fc25663d213a6be0406ad183386fe3706f298ada58b0abe756566b8004cbaea3dba26988dd0075bc55e204e7d37b024299b2c8fbe2ab94428d5b130818dd2b123ea283736608df29131ad03d3b24b6e4f1fe720962daca3a9c667822c876699153225b2feb1b0931750105c61a4b09ad887d5a64a0dcfc508dc995a4e7a3f20095535ab75660d243f2c06e6c419bbbffa78257d3068eacf6567e42189fe22fae26b0443127ff9656ac1f3927ab90e29f3100daf73f94b5b6e65c39e99d3186266ed8d7d073cc404f075228c1994d84cb96a69cc0f5bc69774a59ca2f1c18f711fdecff6917e6051622dcf944ec9126896b4a849f2ff8e5fcf9d07c66acb9732d8ee31184d06579176280caf315b600bf9b6919485faa44eb2efb6df973b07e74ac207e922135368ab9c37b0f8165ad850830095d4ccf1f3cfdd38609fbbdee883f8a115a065420c33acc8242cf815958f9b80a9625248f0df73a2284c9d2d06557cd97a0fa93ae6bd629ef7c91ea814c7fb2dafb04630bc4807a37522c88d61310b1bd0b4fd1a04125422a54eb5d25ae2acfd36cbeb07c70e101034a218ffdab761ac07e01144f147db4c085ea710bf4d7d404b89cc0c8eaf471645549eacc05efcf3d4d6a25a04fedc7968acb47c29d9c837566fb0e4420de69f40e851ebd1ef8a4823e7850752871a9649a0157d56d82d51e010538415f7bbd1c03e0ba9605a51b94f8c10d218462bd1ccde3a72055c057e68eb17bf5953ca8a575b0ccbec0eadb6b77efd812cf7b1761cd7b43d640749f4111ee59c058d916a8c4dcffd649d94ce8217cd766b0db15fa63af8218ac6e794570112d9612b105155a42bf45ad0603617210fc7e5e7d9c514c92d1ee042c698b7ad0a39acbad3a74ef4855d9223db416415ac702460f9afbb1069ef201edbf0405f5a710b5ee87b6f741931cc683c5f46c4d73ca5064adce3994f1c94ff195280bf8bd4f392fea9a0baa2f9e0e2fabfca62a12b391cb0b0fe68b2e944bf93ba7357ab8bc767dc117294f7279209bc54dea831d1d4eb376ac00c5bc005247a0e1603bda11d78b1021c0b10c1305be84d5256b7cf25be2a29fd89c2194d3b910c48618564424912a5f3d6c900380ffbf9a9839eec12096767dc604e3592cf8919d010ea7f4cff97b45841e9940a4b285204a3c596440996bd1634dc91772ec92d2552dd2071f7c610a13389a9909fd7b27020f9bff48eccde871f2a6854c5fc767a12be6ec1b7803841df0e0984505423f670cc34028169ad4f1f558cb05a314c41668301dacde530a6e2d553baa2bcb63ed31d5d8e38367b5d31d4dfb58bc79cc6b0c4b2b8d8f098da99b13ee6df97530a569432a205912647cd010c9dbaeabfde182241b9001d32c6199a1e2066d60e99acb642ee08cf63bf64c3cb94e871ae588e28fdd9d47ac62b5e956218c41f49687332888128581e4fd08d674f65083d940421816d0a0da3699dcc6ed23b8791293a2d00c4909fbc824bc5d6bc31ea6fdfdd59da2f29489efff03b39ec70b2a4ad6599f8423ff8888575a043aee34099d26daa6109c27e831703ebce39f27704b3cb58b419cf2bf187892fb4135575de27162a05ef688d0c037e3069d0b81a92a35c0be29ca87a1d79c28f31a78dabb784a6b7f06155089044fe0f264835ed4b23324a215002b74f52ea9a59f116524b32dd5b093360c037e1af505a3d153e222511e4f7b40eb0daca246ee7d2ea11f993e500178008196a3dd16678b2272b283e263a1274d699614cfca92b137aee0dc5b011beb9ddc10468e649aa2c037aa7e9c12b5dd8269ff3986431dfed329080fd235e1e9eb8798c56a80916d2b637fa628a48cedb57cb948620260487b4173b3f2160e6e9c09022cbc0f3c448f686b8c166941b5546001b8320d6f91b505405481eada7557e1759d84fc8b4305dcd3b5d5d92e44cb1ffdd23e5cd02bd33bc092527a4cfcc7404a8bde8da67c232f75c0f2a4ae1905da7932d32066dae74feafd9022abbcde6b4273610019d75e395726b748b2d9c83ff076de0f346a792f820e07c7a142ae10e6257d352a2103c1861f87cdf93c0a5a95545f781f970670f9310d1bfa3c537a9fa141aa1e129c5d35a7c859174633197880bac90e16a216bbea2b44f2383ad09d8eebcdb1ad4019006bd3285ed64a7190e3ab678200a095b93dce615b36b8a1aaea17043088b07aa9090b5c8692e313aa6a3e19a09378490786009195b2b870586d8eb6593d4801e0037e88dcad44a7d0c59d1aada7dd67407b8ce667497b64750ec188c02a2865382989a4003cfd640f6fc61da5397610dc4338044ad40093499daa539cd954d6cc3c5171c0db0368b2defee2dac009975771c54e4b6965c98d0ff72886a75e4263c2a62e9570a12aa1c8630a644384b7f4817ca03c13aa0aae38841a652241a585a2dc5af8f26050407df35a591fa5674df0ea0951d2216fa9c76f8592ac27e7106350c8771c5e341674edad0c8cc924d217f001fc74c4e171a3acbb8b01e4cc0df7f5ac760fa03e03ba4b247feaebfb3368cad5c7be7f4cfa1f550480ff22613ab5d6a655e1425ad3b61dc0acacd8ac6d67dbde3be472915a1114c8ac8fe7c84d4f40d6487ed6fec0e2cff7c5d9151260b841cb8285524b6c294b9b079a88c4b8976a0cd6aa5e34f64ad23ec86ee963896322b1ad7127b7b22333f552881d39749bc67be3274728d6f2a09265e737822d412d6090bb0035cf2f61746bfb31dc4b6cc3981c56626ff8ae894b91a04a0127c9ae17f18d133e1f4975c4c518ece8782eedf019f7b859c54c603c0a9de36a60df3f2a3c9f6326cc2ebb2a4362864540c333ea31f801b2bcdee1432d7bcb6a8ab283b37e659832b0984d86aa2f36a8a9427bfa1cadefd6caee87d2a023fcf96a2fdf3c3f8cafdbece23e2e66d51db73e6af3c2c27c93b50037532d5d3d241c189339995ef7fdbca963cdc5668334590e79c6ff47a71af1cf82a0a4e13b5571f477c953e0151a2b9cb366f7b41214ab8034518a4b173d255f88f9cba726cae7fae3ec0207483f0a4d98c7f3252e015da5654116efab481446816706bbb358e0fc39979c76430d8a2426da5369b69edb817a00f091ffb89bbedad3178e387b98d3d0ea886b0d7140b272514f671ea2df6e6fd0984aa80869664d8ffcf33a7a9d0c667fd964c1bb5c7cebc0ac4e3798b23ae769843331c40306137c6b0f1619b2eb48babccde600e45bdbfd7a8c3675b5d8512b171e0247f68de83706829ef487e7c559e4ccc4618ff65f46e1e0e65ab4b753ea7b99b6877b6d294bf19b361dde13850621562a605fba50e97feeb81829399a6893ac589a06791f5a491a604d274a7f89e416eca1efb1908e49c03eb5283f397d206de64d2079e06942980b5997515c4ab8d6276d094f664c4d82bb4aca802dcf0e963a95846464ba415dd6a79bf67408f0ac64638b9e66f82e66d863d17b15d89a469cffa56ce6023ac92cd69890ee75dd47fadf09da451400e3e52e3861445eddf5e488c18a10ecdb2f8ef29fab94e8b8aff64882dfc354fdcb07fc00eff89cea3b1652d0135fa098d2b5410697e1b313566867534cacc6fa4a42b9e9cbeea5533e4aeaa32d422013df47cde2f7f6778e97e2cca4b1e9b400e71a82563d9c30dd412989865807f03f44ae7cfce0c86453205b8322ec2a11b00040cfabd8e1b5249a8d65cdafaf1ebdd8f96d65b390ad90a1a5f1aca2409e0069fa02f6ea972cb2fe2830fa57b2d87459bd18423a32a869f1ff4b8539f98783b8b6a088745e9f0d9f886043de61e45269d74e0e68524fedc5f7d422d7af5997da45bdfaff9bbf4cc0e845afe668c8c1a815e4dbf8809b18dbf35a0236161a147cc409a0955e31eb597d5f03eb5b4b2e367b7f0f7527061b292e909ec93b974a880395618f02371e36d11a4549463f6feaabc871865bf5263a1176a1702b0f6d4749924c2054abb57ba65fb30bc4f01c24703a978b2372bf8a3b5b9e3e6291d70ad1fde70933f8b18e898435cd5b6244bdb1a9b34c56f065bf900bac109ffe35a64e80dde63d795fd9a1e0e52f4c3d581560030a12606b4959b16f4e874047c083dc21fcbff2e084de09b6f01de20a0870b23b8513431afef6086f28ca712e12d50ab5ee8c1617efc5eb6c7d8bc7f88b8449c0aad906ce2fd219c53a82ee6099c42f74b2a75beac5fd58a6eb1982ee81a6bcfce34a177e2dd4fcf76a4ce8821c1a4a4f16177752d4a05f0c03100a372083d85b95cdab8f2438113e63dd347038a16c38355539d7e763dcd16af8f0686be694bf6dd7af5507633cf1a37a1c8d3cbdab389801bee2d35c6fb4c43b08117299b03cacdbdada3197e5e2092e04f15e3834249189d40d91011be42e55760598c76c3a320d06ed643375084a3e257c05272e515ca0cbd6697db9d4ca413025674eb5797f5b2027e4770e5d316bdb4eed22fde4c43ba5b76e1229967451fc61197d1584c97a6826243f6c299fec669c02aed047d6016269ffa38de69cc83bc7c558df237aa69ae59588fc515fddb702400abcd128c726283be88a1e7641c064f6f1b9ca938c0bbc2e63b6dd13c33fd0e8f90d03b35a5f812bd8f2892a4447795a34d0c8769eec54eba49505458025fcdcd2c603afb19cdf4126cc1959aef5bd28034a241439624f9311a896af331b7946b66f4a794f51bf16e6a67d6c30d4ee688dc916ad433eb202d2bbcafd1c186bcc4190410081710d108f1a81bdf6fc2ff6a8dd5cd4d2c5c91257019b048818d28bf2f8795d0d0f33d891c2ed50139289910dbed70e4952a18eb7a997a60682fb1ef99829aec7ef0284f118b16e4411905bf4161a14ae8552d88ab2e1fb5f494e9ef6f5ba1a786ce1ea8584b23170078b3d7ff988eba4cbbf8b5f66d7b3b843f685bf6c933ed35ed2456ffaa5cb6e2241d55ecf0f17dacf5786dc79e71343e15d000c68922b09522dfab3d65712798ebcf954394156b3b8951308941f4a3450dfb8b4fdf720280f3015b0a3c12d6408e41c2a077fa95ff685d45e54dfbff3c823298dab5cc8669e5f7a47f62ac7edb6635160027106e380ca8476292bffc76f7718eb459d7ea8e18441836d90ce9ff4ddbfd348080bb08a39ad752d240463baa0b5ea6c0776f7945c8bc8a23a59d237db0e19979ba67ab9119399b49a39be1f0b872034afbda963d4eae9c41a9e79b645055644f42b2192846022f2bc787176612c29e259cee9fac2139c92565445cbe26531afbb4908c2203f3c7c9d6681bcfd9c72d01d82f0203bb90b4fce6bfb92a071d5ce5467dbf17cfb30f06c1e6ff74c4f13a98f8832cb975f12d928a3e02c05cde5705ebeb0fa297c71a9a7986d6b56e14a28b7774d7d7a012c60945c86db9abed7e771e8d51f892016f31369d707bb1237c4227fb8f2b9461298cbbe4574a98e8fec79ef935977986a3d865d97e0b65fc6e7cf3fe9e7fa30c67c19bbe888c1c85640cde4f275bda37e85755c19dbbcd090a80965b77a7a1436e268043ee878e8b9e5efd9b149c9273010e400df6ff615938f15c96ba7dbd967bbd5bda66e5f2fc97e4e6de5cd8a3394b65f7071e57963bdbb8b9a5c9ba16fbfcf82baaf6c9eee0ebe749c8ca31873453b11d038b4f113a140dd2f580489ee966f35d03a08f443363966963f6770a11fe4a12f2c9a001e9c07877c2fb0cc59943b23d675a49b534cc6354e6d94442195f3fbce6c9dd482c701fb55a9c942c6da8d5436d5989b522ed15301f99f3f2edd3fffaa609f5b4e1674bac14ec36cf0daa34852dec4cca67de08c5a8ff21aa784bc6bb8574a2d51823e31deb72d46296e61e32c66a52ae0550826670e8bca4460f28a51fc9fdfacfa839c3c219129f2d9550de0e191fe419b6211146c54afd91772ae8a7b061a9f55bac295b96166be3ed4e08165289190335340f5a19ca5ea9a349a883386ffd5fd3595ecb622d298095729580f99aee44a68d3dfffddac0889ad20dfd51dd507bdb292e55bae13ab7be40ad826cdd3e5db13f3e3f2009f9c3cfe988011d1894053446d4c4dd6e145b9b48592d4232cdc0c8e939f5d58fcd5da2cddf3b9185531b94b7b0c618d4905af86018fd7146b59245b4ef8cae28fe0428891b223dac0c6e13371d9469a33d90707d7e22832e0218fc0d82e9f7cd1066c0eab3bbe547ae2ab067940214c49f95b451ec3b8832991faaf55e64741674b105e2ba234fc5759c5b565ee794e23491a61273bf9480687a6ed79c6621d34c4aae21707368a787b3a42e8e7336e5c62036f34591261a21d45aeda18d1e438fcb947fc9d7de8f931ae76ca5da1af935d09f2f5f66066c59f51f9037a5e9eeb8bce7e7a9fc82b5edd45cd7bc71780f713da0201fe36149a13ea70f17428dcb018a5a0b0855b043f63bd95b01126b778ff601d4a47a88f154e8ff05f8483f1300af61462e47c78792a0c5b949e273874110723349cd266ac8e6749ec3f0e26702721dc24ef410ab78ddba8f5d486850b468adf08181b3b04fe3c8b82adfb7e3285a7b2b0f54476f31c7a98d986c559429540773c67af7913a5756344fb4c8060f08cea7a90272cbfe433903d963edd1f3af98f8d8d2da739d461f5a6568551ab6e17071ef0ced3fa689856b6cd8ef447cb45e285bce4f4d1c444b88bb672f937a536749e1184c8d9768f82daa38253b23f68f5c397853db92be182012b19adf6a201c9d31039186616edfe662cff59ddc6a13894c9edffaca6881daa9dec7a089ec07d0a3adb40e121e6600a3af87240e5e6d6e7f9eda1b297648e3eb0e214e992be2b94568ef9129d0b39a1651c210c6e0b10e8301ea3ff883cc690a831cc7fc6ee55276cad94705eaa899e9edf8ab13ea26bedd832a4e5ec24a6b2691d138247a4cb5259b7a89405f8e7c6f3217dc87c0235d607a2c9d64e8f2c893fdaabf3feb9f65d277e8342422cbd3cdcc28aba4b4134636344c46e32438164d443755419ff09e0985c66d5bcfcfd351dcc75c4d54910d4fdaee77148e33a26938102b2625bf503bf6cb249443199f06f8886ffcf3056cffc6641d20ba952eac24ccdc48cd4b297d1086d90fd73031eed26afda891160a0f59c108b4bb84dff1b3849cee816cafc488d810889db18be4e3f3c83024fa4b3815f0f96df800e0e822347dbe4671155f498682a979e15ad4d59f06b01af27d17351de4ed6d0056ada238c889ae12c9ab52e247dd16cab832d6e95ebf1095c8dff937f7ea8bf782c1108c9b768761cd3e77af01c3a46ca31ae63888006b77b87821b241e0bed3a7a94443f0215b423473bb8341fa8e93596e8ddb5091b3208993952824923227452a5ab4e0467fdee6e8a83d07ff98e7850376c1b305243734868127c8805fc5973f855834c5f5f4345a5fa737fde41a0c57aeec0b289fa5c9a5e6d87dce2ad1c1e7a9e844e6c312724a525fc49e30333e72c52033232d75f918e882a8625bb1f7387f309657881933357352f6618eaf290260cf9732c4d1bbb89e68742d77c3e6ffc036ce546233b9d71ddafa3f7ff597f7e5bd35e5e7402274f5196d0472543d1cf8dfb71222054246e98a91fc12666b0d390003370ad9c656661c78ed5aeb23f4f161b85c6b4a90d06dfcc00f9485f696c71436f6c06fec9ab135a2c5da216638b1be67366368aa8bbd8d1e2032da1a5bd3094b0ff01b3d9e03acab40f7e626e1876a408305da88c4d5358e0d036e8e7015c4aa3add82f8e7567f0456e491af1beadc3253f72538999e9154bb6ae32681ab4a090f09c8d7bb853525c5dc2c31dea16e5ad4d5b32f5a1d47ac176b50137df337acff686824a945f784646afe224a53f9f878481efac8acf55087871aee7d1a823d83404be5c01a13c729b93eeb5106ea3be919d80736ebc162a3616d8b00337c26b1b09ed3516b39655c3c9860e5092ce4cc4eb3ece88b3a582fb6e652ecc8d2cac064c0158178d9466e1e7c29041a38907965b7b725b4019a4bf50d7edcb164b0ee4281b009e2f10debb80acb89ef035ec83a1291e6650d8882cdb5ab90b5c140d64b5de47caccd0d9447f258a714329c4a9bfc6504eaeeb1a6e887c40b497947d24393e1797f7d588c9257efbc2d39b66239d6d13d6db0b1ee49adbd5bdbaa04af7dd04a4d0ba31a6b78e63727e8e135145c7ac03ced61986bac41fc69913fc61a428a9c5948338b35c4e4a8b963037ba9793a59728d52177fc1ce9ea7937ecd81d04a85c580fa8db31727a0913e66b7fe4d10cb5a2f1e571f2c2b8d8a42123c376d7364e2a31629857c763620596d6de17ca32dc6f3e3beeffe21a04c666429ec1b7158599158deba2e8046877bcce793df9c6bf3882dd86c24e1211d767186ef4735174d15a0e3e56ba02f092dbf5f3a4c9c2f5d58e2483576737eb1c471246ca779ec901a9a8bf4188dda25db218fccc02a0f9af9774b9f453233e442ef242834bfde8f6d13bcc34ac838287ecce117ea82113381e0bf6a47fdaf54a10a6346e8f5d8cce7201a9587f8f76cf53e6323887c04b2e4ac9061a2509e8f282f94c2071c62aabf411c7bff976ff1241347169e8edc4fb6640f95ca2c7509ba671a9fb60b0cc726e06bc2e28d47e10f1ce2a807121f0f95ef561ecfc20a968f7f0f1093845c2add883bd60a77611ad1037aa429e3b780a88a5f812d53bd301e8029af3bc43a2f0feadde3f7942df98ceba8b4e33b25370635990da705b543bf12573f19ced4ea91d1864c385b18a801e1740767bd6fa4d2510c6ba564e1897ddffe8464296aa1b5c5e1bf7d74adfed5c643579eee5815b703354efdbc17a50853d98893d0616f8c1b35a2afde817fb5601ffe43d58829c2c8d17bdae2e5ba3cde2d9e6836153539cfcebc605c64fb08edce1fc9a8869cd1e546af2307401aa048ed10df8020d9263b0149758c5123cb31b047072d7edbc997f48a6687333db1eff8e1670d27f669d60918911c4cd92e21aadc27b2924f0e92d03f25a394abd2675786c47d8dd81e28be89a49b56066e0e004f34bbd5ee6f65a321a72174c206d7d12c2f7334a9ed23b405c8dffcaebf57a92c0994191d5f41aec5e2d89205c2938d5ed625359eee2a2b35fe1e52a238371bcb5c57aa04bd202595efd198bb91a1e7f19f662b25ac2a1993a801c56dfda6fe4a03b528f1e39f1f3f0b1a5f881495f2a07cad2db738df8c5c06c5917bbbf87cc38683731d81a0fea0b75e4b99c606394651fa5fe6c03ed51d9021e9992a7d7e3123dcbdd38092aaab2951858dee8bd4e5fda53704f1c7c4db6dd8785a027487f681b7d1880aacd3076ef99d5a2fbf5d88aa3fb385ac9d850dbf2784203d3d655d107dacc498dfc6e5ff60963fb24ab727a80b7c13328012953b5a098307bbf0932b57032a2c03b6d48a71be5ba2856e3b5d64030fe4a47055277bca1132689364d896eee274c660fb0b16d5dfee9078ccc76a4d324e009a68f6a3dddf4a89e3f72270e66ca8db9c19d0f3b74ee15d91398171a2b18f767e3bde2e64de1c4d451bb3117dee8d297ae7d91e3099b01b915c4b5b017e2f0267ce86aa4dcc308a26666a9c1ddb0f7226a6af0f60599c3797e259340de01e0e56998d8267e15b806e2dfec7b6be1abcb45cf8305dd854062e88d8b29d8c347a6bc2d82007909dc155df6f57ea04dc33f05ac8644b411dac28668e4e6cec99e1145044427606ac2f47f8066770295c424cb98f499d4c1989334f4bdda626568cc629f5fb7cf686a6fbcd082cc3a482eb8ed2f04da721f28e1c73ae58ae419371c353ac55188c853059a5a88c41d0f7b452ec29a2a89ecb294b973eedd55100c4ea88df11232c1d212f33977f39f23594c85e961637e35d58eafc8681c69bc4f43a81f0c82557fa0e73ae790f99c2ce9cf3c3d20335209595fb5f1eb8cae8ab994cb85e1e5ae858008d9f088d8156eacd4855f126a5cd09444ee40c208eb62981eb2e14da7df19381a4be31a695a8f441eed98d6ab4d7624406f6e88723756622646e4eeace361cc12cf272c21f47fe07d081aea4396b2bee7f3c50f59872f556dba1f5b2cb8363006ef14e6e56f58d49925fbf13a82a0116e0c542d14f6c58800c7109c31e293b542abf600ad6b22e51b7ca1d2a651018053548152e62318957df1bf1ca7ac0b3dc622e28305783e3ae4c29ce05f8ac1d93054fa031ca4e887c18cab8e9aab403c69581126bc07c002146e83d42d104e1b27e6c65ab656c46ced8f4e2ec5c47ae1fa5ea2f1bfeed5c5f1f5ad1dc5b61429aed3768b9b82fa38d7e58f8a6c8bc8038d1d9577b9b3b1e3019f12371924a5771d5117f55aee880a54e08390963680ded1b27e20453fc187eac0c2419a3620ce11024d2f7f2c16c1e71e4fc70eb88492874ef10f5d3cc034332385c588321086aec896664e9eaf25f0d1290d957d90a68913ca7d4ddf5ef1f7ec178491b67110a69b1f1060d2f1c72d42abc2633541b20d3395fbd077e56f737c467793290b99e65f5c914cbd952b73b416e7c81e7dfa2c0ec4ef3d00bf8245b1379fef3f46dfabc700c852d3e01356f5d3f94d2168aa4c0a858e511f16a1a44cb4ced516ae814581168251e3852b49945cacb692d64657256302bdbdfa63d4c07fd7ad0a426c8e4bf3d3b106e9e0db58db3219646b89e89baa78c81fb91f98413b01bc99410709c7c4d2adb93417c6524bdf4cdcca60efcbfc8b9b0c3354173a220278786f51085a9425d62c1ea5478e82ef9867e26b6ed18c6fd1e21ff828f35b67145ceeaabde1e215db3ac29c624ae0c19ab1bbdefd78a1fbed79d97d56135b8e5b554d9cc11695abd181de6a4b1c1edda948419da53edf18b8814bd800221eb5f39b91a54e8eb406274fb5a6923c94fd2fa6adb6a6d577bb18e4de59c80babc700c0e987cb46aa34654238d5588516c6a0c3a856a5546749898b3cd1a2b821b9f664548105523e9af01228a5205249862db8b18833d5693a33e1109068c17568a8115a056592f458a5f236f685923e6f04843b33b4c212563f370fa2438e814cb7797b7d42af71cab07bcf0792dbf516f80a2266c2924178d9ccb0bd2431f94ffd76d8e7bac249ded905fb2d1e2b55ed10697c2ec50627be1723c1ad214be8062f664f11880bb8e559e2cae3e366e7960caef1a81b08934da60b0196ed9bec427b083fe56d04442cde64b31b4b34d31c3b4e59dcd2e2f964ae2538589cfe5d0aa3d3e3d0828d012b8751f92d0311b39b0cd181794c1a6ff144f71093316abe9637e00c6a999056aa696666cf9ddb079cae871376f5c811ae762e05b22b9ae66e238868ce38e178ff81e670c0fcae1a716830253060606d5a1af8cd3878dd4215f717a70284f8fedfab6ecfaf5aae619feef11d7be1d9c1432c1a37bbe9599fc4a304b18d204c49da0888cc959bf2f3422bbef26933f2f69cd25e5a41abc73b8089467a46e76923c0998f3f18a8ab4a05231466e1c5a39ec1d5f457319528ead397d0e16d820c0c86c53a4327e6436da01f87d17cc25dbfb71d08c450221670a192117cc3643a3aeb91e61ec30b00aeb28ed2f9ca32bcc0082e4bbf86ac128b5ee6d22d0770e1a5ab0710315b002428aac1921d7e7ed45ab5a08a58ab98e91809ce7303344f63fbd51d3bb165244dd26c84550404ed8c590495f6ee9173092523d210e2d4abfb5e82e8329958accba125c6322c416a3051f6b7aa60a35d1c7675cb85cb2a574faf47f1c195d8cfbe076590bbc042b5fc33c6ee321e35589c785bbab34f47bbdbd2ed780b501ec114b75430daafb68cc6d0047c42ad16d7e2d73a44806fda6790a60f55d5ae3e900499eb61225d51def44965d04532153cd7409f296edd654d5754d1771b4ea44e3dd06c8fa58a18b6b70dd43432e5d394157b4d7a0095e92a72708b8a4053cd229497c89a4fa02208bf917dd099061de2246a9859f83f1b1973b6b4d16721d1fc63a8d9573b81326bdb386cf11a29e72dbebac4b359eddd9d197358650b7ff3e3598670fa27e881832e5866c6fe1c6b7f4fb2b39db2b6a412ec3157c5c1ae99629f1a8c05d327eb8599477740de93ac0a51114374648dc9641d99522ce9e43d47cf319d3b24702d27a108ae0d2130e4654d3caebf1a1eb82f31ef4c8005db2443066d80747de6be8fd58c0e7ba99cad0648ae2e24051082f4c7d3f09e5b7d14485faa42942fce51d062d0518dfcd6ec56244ae805e31b96ce808be6118625fa8ea7b91c47ed537294e1560103d963e6764b20048ec68501a13d11949ce6fbfaf96b7b4c4b3400892e70a3f74a940c579baef1a168215d9728eb709de70e66716a6ace160df95688965dfb6d499d3580d85ec550d759e42718941635b603c0a2584ddaa3842ee92375770c0d89c074a31373d871102dffc066cd56c50069e5912ad99593f75e105aab3d79951622808c32f251f5ef8380510aeca199202fa00f378a789d186be9b85d721326ae28888342d7534ebb25347ab147bd91283fb11bd1b7e8f056aa45492a991235749d6b81c895baba7de74357661c3fda7d5b07fbd72615cd39235646db45b8ece5245ccf7cceb64753fa4671220bfba802bcc7dda53bd653078cdca842836d27699b0b5c14cab13bb2fa1c51cc12d6d54651f1e12b592bb1dd3c1fc28b91d18c6f6f621a165da4b9d7cd5424ee7f1323327a46239dd5958c0c44775bed9ec6ee2968aa88d38b20efc0cd321a6e3da8f87efa95582e461712175ad36d3d644ea18fe0c08b0b40ca257e57a2aedccc9532d8567a8f9820fd5f5e85ed08e12e8d83bc69116a8b0a4d51fed7dda7698bd49ce60b3c8091cac891fb38c3801037fc9a166eefe1c71139abc1bfd88c3a31606d12271dbb870674efc6a2a1636d6b8c1dab6e404fe85a7380323d4cc4c2513b9ae9294273bb9d5998762cbb67064e78e5c830da28f625a3eab84ea73e87fd13f27032e76842e4de5b0a894c99e9d2408cdb02098e42642dd14c10709f0394a42ad656950cc8d55880c16136879cb3b104ebe4cafec7fbecb5d776cc769c0f6d20682f34d53b4f5ad3627f58df4c89c69d34d92ef4a7e641cba1f8dda4f29d7372547fea301351765d34927330cb795b22b55abd350c21c4fec9fa5577d83f58196cb1e11c24f1628d3dd9f28539c9f4b9968c322f9f94e9932f596e6d0c175dab0200e94f951153dcad4ac2531dd7998c800e02f3da4249f2a182e37e62afc3845b596a0cdd2ade5a1f629a29d58c13360caaae9064d6f380f523b1eacb13f88f9a627a77d6e904e1f103ebc48b1eea97dda2d2102e2ebef8965102a281527e8c7e5c11ad02f178d4d2784948f8861a6b1872b1e0c0e289f2eb66e7d450d6782a071cab37836c72a605162c2db672cd0c164ac2ec3f34e12e35b2192ef6c88f07e825522a82605a0735ced4a3a21f4a74aa335b15c7bc814fdf16211a180463faf783b80b3afbbb82e0f54fde18ecc6a9aaa32b7c3cfa5feb5a9862ac92af3312cda74fa14b2a5cb2c8238925bffc6244047f0ddedb0d3503d0cbedc5d279085f90a34d7fe7a419f2499e754c253ff844203b7fe78e0440f61c49048469cb66bb2030cb84652474f9bd4532ce64bd5c4c7336999cfa60360fe844f74f23f77ad328a7c72b724d4d9e4ecc4200bc72daf3ae2802ead8e17684d80a92c6624865258d48a16902ca14f40463e729b564131e38bb00767095a22b40fc357197fe274381412ed4694746edadedb242161e971b7dd192e5ebe0db44b5c5f140b69dde62a2326b085b3764656a1db9620dee66bcbe32ec1b2e9e92a61b6afb50b3e613315bbe3d0ff4aa4d53f7428b106fb0a35d545c1ad4e10a1566cc552eda926f82aff21c591d8cd0f1684b8f2efcfbc07b82bdaf5c7550564c64fed036242014ebc08654b3b226ae097da765c016cf9f481545c763ca28cfcfd4304051786401450e96249d7df0c24f8f7479e0ea6c5099a0c7b3ae1d050ba1d4651489bd2ae669fb35143b2997d43a2076980cdc394332ddd9f616ad237f1d65f734d0fbd32a55911e696de7ad7aa559f35fe94738d7ef1898abe3e27865eab91af38109ecce2146a335212e27fd36d7e035039e608f9723554ec696ed4913b8b809bb74d6d7ffdf0a88f282fbfa9c276c6295214b6a16c773644afa0702a77a54f5faf7d9cc2b7e64ad9e4df25a74702267566657d626df6144ad015247f22b110a43b472c29fb5a16b9e767681a06b6343f07715964459c623879845a4aff27592d3f63dc116fdaf57c19638272a16d42171131445b96f8b67185262e8f23c3f976bf74866f59dbfd7b328d8e5621786e84008c8248d3f3357eefd9c3aecf9d4b5b92eef7fd33a61567e893a432380ec3f5eb0bdfee312c9a64211fb21eb418db546833878c473953b824ed97151766f5234e667333c343df4ae8c49a3ddcc0e4c0a86e818e217ea4c4804471d969065c461d38693517c81f8cb99fe3ba08ebb4d2c69175f252948267b219c06d57964d28ee37ac4e972c7738b9f9a0cca209205321d02d9c27e0eae2f51efec27dd859f72b0b900ed035e84feddd126ce16c366c17f437fe06da67b12749e148c8b280abb96a658ef32859cc28983a036340ac348b13381ed50065c087ea6ebbbc8c7eea7ccd07cd78b7f839ad84206337de938673e8de78e3aebdb05b55249437dae68422bb647a33bfdef6e89d31faf083429df77c980ea294bf1936dd1695b065c3836c6633065ca046a80c25fc0445ffa57049cd950a02d7538ebf8b1fd3ef85af460ce74bc3ddbb054757c2d2dda4c582224b86175ef8c99eed0122296f2f6d8eb1e544e6d97a7423064bebaf0c2f25deffd617bfb60150c08300722ec803cceb366c78bb001b7eaeae2d0acfca5d60556423a2a5a7c0da2345b8c6ab17518326a057eb6f7142b0314ca117cc649b576803cffe4ba5485221b2548a6809c4ca5cfe0aa5b17ed6f30f8eac42c0ef5da76afeac17aa9947548d7068b2d2eb94509b33ea32377759c86f7408c18417b6d25388acf0213f84a67ba202a026407ee1b1b4c389ee0ee9521cc6ca1f6081f3c2f3f3cc1c860821812ebca4f0992e4489de41ce9734330f869b50bdb211c4366a27f2f65f7cd8fb4a2773422d914d72a48460d136e6be83be17223636f6916e62d46221b3523b7583477ea6dd1cdba4d15252f503527be0d8d0a3204773aa57c0b20396630b05533dd83527850a0c2abe2c24b5bbe0cdf1a80b00678d084c7072d7ce30e63b6a6de2e2efc903aabf0bc0133c0b9826a81c3d7b48b3febdd51b7829ef33bc33a7374901f942ba4fc970c40eae1fb483fe806440bde234e1af18ca8754404f22216dfb34700e8548db6c72bf66523f8dda7598dd6301c5ecf6cba61cda950f63d1b9355e4b038d155a92cb09d1744009f56d7f3e28d9ee0fb847f3e8c2ad5b3fde8087c8ee366a44fa22a631ee6576dacedfa4b52a278d07e056cd9f58ed7cb2d9261df0a7ca4640f47fd32e7896683e9badaf3b589f82619b6ec9f1c4d3ab22daa14108100c8df05e37c7ca59de01e7a185a1028fc8d02d30dc53b055ff1661f6100b46c527feb5e37f071138fcb29fa4c0671ce07437bd089b031a87fd0ad8d6ceb32b32c1c8b2660bcd204fc9e548ff5e35a21a2ba0eae7db4ef7e6b31bbe906dc03b2b89a184c41274f0061e0eade5688a94ea64210d8911a8b6603cd01f4030c45a0bd2875a89593e3293c5e03701c411a07a93cca1bb022aef67e5057f4427bd44eed54deadfa1d46a869b83cb51920e07ec51bf4b4557e0e5ae64079cbf862de6027328d92b00a7356ee3c11ecde83b42e2994bdd8f1983a457e2ea11a9a5838f91cf2e372869ae362eb25bb66046f8a03bc1160ed39678be86901a758cf04eb45382a88cbcd9e029c2db1ac6fc71d8f3d811433606cc9372947834bd5c1f598e817640c7b6f45828c997a6b9b64787a22209dbfb1ab75901020fbc1012b470de63a42e8090eaeebadddb0c3361e6915d9ef1622aafb3de3cb8add28eaea37ac52a6ec516f1cac9dcd64ba76f0708c60affa7ffac849f149288761535c739cbe0d67846f731c87d78d49ed60391029bb101412ab76fed667d6b8b213ef3674a4587be41b51cd8cb235701809d38dadb4afedebab172567014c8ca5d955f2c0cddad3b22d691cb23b901d217a4f43933ad4bdceaa4ef8c805cc496bdf1536affcde39263e0df2b20a02fb5442c93a8d1773e588571eb615fe966f383be4cab876b6a642dd49b847e99610657c7707558d1f7ebeebd1d91b5521a60942490835f9de9f22d4fa7019e1ae7f7c4131e17ceafb2507e4ac73fe767102103cc26797095723c00bfee204087445d6c5dfffba055b3ff6ea999d00b51abb105bd9cb124499045e58730305f947f5c33804c842edff3e9f3b8a68f16b22994b4e40803ada28c9130d92930a44582f6e769da611528fac309b9336483610fe48f550da13353cca15f9d3df395117fe89fd354155eb5a500ccd8fc643db58492460f3354c5ffc24eb57ad67520430990ed1f8fce51219c8aba3d0185cfd4a182f908d8b0af8512589bb7c9448db8ef68ff5db447c1835ed58de2222a499723e0d5cccbe9f25e3be6e00b80c8383c3f1889a3517962fb4bdb562b1b9fde5380ec6fea65975cec2467c2c396e54f84ce46b927437fe3d5a69966b7c0f78ff708ca0abfa735f2d0c57250b889fc99213d87f3e7b0cf9af51279dd5ceb079d7a1d737f64665d40f6fadb045d15d9bf5850456ac32b7ae2509dba93c4f0e161819e24c056cb8b71294a45dc3c1f13f6f382225e40be7ac24dd31e767eadc78effbbd6aecef0cb755f72f0df32e3d29d839a2a404692556233f4110c8debfff3f8abbae94cba5c9b0d21925b1603cd5ae53de090e46eaadddb4e13aedcf8b36bbab322ad3edb7d5cade455c62a9b67f50b5bd7d58530e03cb877b9d424d94d161fa7c62bbc3e16848bc849446985e5205f5e0546c416e5cec1f6df2d5ad9cb0f7b376daaac7f5405c414189235759df5a6fae620ecef22adadf9bb346c9dc3bdf0eb2450e23a599a151b552541ea96af8f0a1fe707a5249d0e8c8d3139da3abff44ce34c92d585dadb6e2441498ae65b6279f27a3856fc032100eb48c196c7437020b16288db4f9a18d99c3a18e1ee8dd8357173353c432d65fd5bef27c659ef723c5448581f672cc10c178d71f9ac039026dc5d347dfdedf950e6a46f13e04b015c8771c6723b80b5c89040c35835d89b07fe4e1f7efffde3ede27bf31ffd1bc1ab4e1a285429b18804697e72186931ae7c0af07fd9e0219eaf59cdf70744b4d96dae6e2f51a99b67b3a1bfb970d787c0bf81d34b9f5a7072d2b5746f7edb7db2fb6ec27fef35c4c148b1e84d31b25f7508a77ede70269b7a8a7d5ba6032a56dc6774a82004add14ff13077b52c7a759b8af8776a43aa714de282ad46f81f6953c4e2b9c9c2b0975a97f0f5aada78b2fa6aeb36c394bf1936a730c97285a74608005330e2cd1086e6eb02d297aeaa8548390a78b6fe531ba170a7954e8e9da76f8e61fb3a1b594b3b42c5c61119a33c7fb685ee81ead1f3ac40d9b54bc83eb4c9b99b20038deb9d52d20ec4faf1067e63703d8199d329d0bfacc3ca0930c68b93da6998912ae3550e735d3a4a590140e52b43333acf7fa49941ebdb0968a132a53a13cbabb96672ac88135447d3393f2f0262470644c10ffd5c05301a3978040b0e999d38e5b26ab026468eccae849f8ffc1f5f1df533b64a98c1faeb6def9524372d5b3978975fc97bd503598d8d771ff8bc909a216680f5aa1abead9d4dc68a81a4a64d475f2970888ba8e421929322d949aed49da531c1722ba149c2d778987aa1c856045c41c09bf05a6e89753391ff45f1bb58cc0cc3689423efa952ae6440658312ba7f3af19f1d529ebf0d0b23933eafb8b6c57e89855950ea07515bf609cf0f94900b0858bf03d249126f6306f672d96773917965ffb492adf94fb2607972b4f42303c39e92330df1e7439b8885b01d3e031cfebf448a1c0b18d0b85d8594419f26a94d9c1d20fa6e5aa24360ae114c8deb4af3396a91a159d00cb4dcf31cee2773dbe6b74aa7d29a3784ab9c6c1555934b58e05ed9ae2a648759f880d504e4ba69a1ddbff58247fd1aa6ba9c31f4cdc9b31b24218b8bd2ef5cce4e475d2053f64ae40fde44b37e5eaaf0f37b14e06820a9dae8b491f5978daed438748bcda29d11a5a33d07c9aab617486a083a6a77f2725c1ee6881ccfe85aaec557c08f8b9464a673108a5b73e7ad35bc456d47f83a4b4a02093aced25005785e66c3676b816f7aa3c126453fd64898e23b7945e0a858314d3c1fb1dc3e006f06994be5a250d4b81cad51a3145290738140d1a3a6bcd4d9d017c38cd4cc92519feab62154f246cc92510b544ddac55a1b5df348c3da1860a4a5eb9a6a57cc4e2c4bd7820087dc69607032d78298d85b1ba296591e91fb63169e6f0fe94bab42296e283fdcd26b360ae8586f97f4559042a2893135d0789eb49584f641057db694e0016c2142691340e3cb59432dd4cf3350c11193128a8a8eefaa25293721a60618d5c37248f364b8ebc8d69cf298edbc603a19b196ccb2e2f34f7c205292c2622814db4205c3d95d01b2089038b0b8a50d52f66265ccfe10600618ec201cf18ebd9c3bea2cd54e98deb3aff9573a924ddbd1bee7ab685a30c693035a956bbf9b685c678fefad2ea1c47a2af490e7ac2422f2d0cff50eef57fd7ae02b6c7aad127fa3a48d5814094b015e2133dcd4f2d9c0cdce9136c9341bb48b0a8619234634937cc62934d3965b831b43c2fc0cc8e5a66b0256db3c3c6cedde880146ece48b6deecdc4d6c4e931a4f82ed3d9150ff6f9ba619e6da585cf2b7815d1c0c4e6b8081a05f9a80f9d42e9975387d188613b402677fb732c0b263df969a3d4fa895ccbae4284b96c5ccfb6d78720e6e83e64414fa422c4f9844ea171df89379f9bfbfe18aa684df081dbadc92e913a4970f0baab34e95597a89b76ed38cc50a8b0d10b112ab6fbcc3f9dcfa8e21dc41ddd392012112a92ee239ddc085cdd58dac6f9ca8b2dc3bf78df4ed9e7471c6b42a9f1cf9c1ad3eaec0bb889cd0fd8cc33069e08ef1479c35e636ea50a5b04ecf27618921d3f09a6af90346df848bdc1dca5925c82bf21d099e8f50f30a02881ba6b0543a8b1528ce22c812d836f1cc21df61a34d57562e845741a58dacd520a101222b63b4ffe239a6060d225f6f4ecf45dd05db8a06a20501e57458ae5133458500cf58083b4a30b889ad0ac3a39d4800bcf7424e01fdb1857f9d5dc8f910382ed02496bab98958fb629afe4923e8726ec3ab409c162a95f4e83f6841422075563ecaf653c2b7ab15f4eb4b920ab9098453a5a918133a82a18026523461057dbd89142b8f5d78652b149c057ec76dcbe06c8eababe8b86dc684c59e377c3c0385107b7860e8a62d911d3eadcdea9a33a48f9fcd209166c36b377b99d423a6087e0a5517a2c0fb44cc9f4d1296be03664ff98c2a98fdc11f86aee5a9e0fd09042893b39c07a3840dd0c111a815729fa1ef007688be5674284913a71a960e6313bd488336da970358cfb10bac0f0d938ac39b686149bb40fcc1f027a5a95465f40121a3707f93ddfc5c1411f91bdb56ee1734c06a4b352cd9018230b7e4887fd63c082eaabd3e8902d730c12e0991dd5ccac791470fd469b0bb91bdbf7e9024aec6b598e387e6b524737039c38ad9ab53cc6ba8b411e97b6addc52ca24650a8204f9034f043106504f01b874028f12851f76474ac9d3e9d5b6584dbfee584ed47d89e3baaebb250b749e042e9196e92ea22136ec4d7b06de66334d1d930ed6d9dea686ed5a54027bd04fa3439e3bd57158dbe7e4742764bbae7804c3a8ebdc3bfc3634ecf93d4d0f9ba69e57f77ceded586bad01585ab569b77593a14e16a5a1ba3321081d3abdd69a161d97ce371722a697e3e5e45cad6adad3a97d4e4e0edeeab63d9ddbf572bc1c9197c375b5eb9ece4ee4e5785e4e8b97e3926bce4f676ec9c9c97901a5845296b1589965966536b3a10debac7b01e3e5e8783931bc9c0f3f51dc34744296255996e45f79d9cb7ef6b397f1883ce2388ae32842a11e90ffaf310ad2d8a646e455a5b86506c7719c28a4237551f29fcc4a582c48f6644863611886210d9209cd8636922449920cc3300c431a2f2f2f2f367866780ee5f06381b4a784c58264a2288aa2f83292244992ba48faa4a430fc655996a5288aa24892244992fa6444b681a49cb0199b4132a1b22ccb52144551145f3693c98668485954a43d5a599665598aa2288ae2cb5ef6b297bdac242323a3239166743264cc9841a3d3344ab5547a3a4b47a6887be6385d640b5828cfbeb22ccbb2144b51144571c2623348265496655996a2288a55fc2ad2a0a14d5da96432cdd4b0516dd8783a6d186961365467b359f93462599665397be638c9b22ccbb296354c353c1f35663c1f33363c1f366e8015049f4e504ce19bb11c61e358672d80a0d6dff73466633636ea51abb35b67b6ce6a9d7d9dcd946ed8f080fc0f05a91ee18607e447e8402f6702f99106b424052989a3e2c0f174e2705a64a7d024d3d84e598a2975d8db58cc9956d86aa6d5676316a4d4c662496edce0df8350f2d434b6d3d15892d9811b5e6006b090d2233810547b61e17d13d6deaeb5d6da755dd775d5f3219a4e5b9efb92ff739cd703cf6aeafe11a05b4c9d295bcfc357e3add4bdb0e9da755dd7adbeedf910e94e6b5e0f4f7355e3d2b4f76a1ef4c61279b563df1d1ad618e7fc32405af4eb16dde2a3eed3a51990826f9a5346968cf79da6ab31c6d8d67d71476baabedb6c6171fe364f55e052427663a52748454ba42a5452d01045a8a2a500d44055c5096020858a9606004515c3d4e18929295005d184f8948054415cac8e25a6cc5441e614443419c283421564e4badd9762286167085115840e01055013d56b5a8aa14508aa202338a17a53d53a5a8a81c40355905111550c54df19e8d0f344154390b92324871e553575b484a9834c225b40414445e72c1c3253d1128d24b38a71042c152dcdf8517122ae65d581ed640a2a412a5a9a510255909f74ca1d674f34e9ca278810820cb8664acb090ac42a6a98a2ea8008aea881358412520924b628789ea8ecd528806f83c28c32e5033944413263e6983a8acd1666a008943dc113448121d11e80430b8a2aa60c29628a8f17c8b0049496088a10dd0a99acd5914d48b9c20aed86247009ead73a22f1d4fab5d2207035051b49f2d42dd09ab700fd71820b9d0c6897521f250878d07ec1294d0d21af1cb0df947a8da3a88002059d96ac66baa1a00e186aadef52d420caff0f32ed7029d8851b655ea5401a2479e501324da6c5b00b4ccc97be44634930de369188eb3acee33cefe9f474f6d4ef01afd91c8c7de83852a8cd67855ea15866167b9a526892698c7c624b988d058de3388ee315b1134a43b54c2693b10043c9513e8dad6caa67356df9b35ce7b5946559962ea2288a6296c9642e5e8c46301ee5b1a16559b167b42e1c94659f909e8143b7142d298aa228da2725ccc66cd08b110c8cb22ccb3286288aa238424c278208313232a44e0669863763c6d339e391d4580d9209cd86c6711cc7f1ce4a1b96655996966545db6347eb8a9119c7711c4932cab22c4b1a3474a98669c69b99793a67ea91d155c9faa4961536cb618f36de598dcd6a904c6836a44be3388ea3e9ceeeecceeeecceee6c534d3363e3c68d11683c1a9aa793c61a99fd5065d51e2d168bc5c63a6a2338ea6fccd555c9faa4961566e3c6388ee348350e9a0e0471743434387090d09d48407928d4d389ba62896139f605bd90169b81a0d6df97b326e21c7e2c2dae6a4f48a3c530a969b1abc5ac16c324092490a083c393e7e3e4017911e5f94079403ecca101e001d9763555006331e5a5524f670ac7ac5ec4e1d35011b63ff6412fa3dac3b7c1188b4cabfc9138047735e170537dc2242637e58171cedfa7512fc6407c71e64511cbbac981198a984392ccd0715ed323f27454ad1f8a75bebbbb77d381f2b62750c67b02656dcb00e5bb2750b67b02e5ba2750fe3d35a7ad463240996e134690a79601ca530628fb9eb8564c6b56eeee7f532e7777f75a6b1d8d5ee45a6b4d01fda4d5dd7d7afd5ab59ff4e76ad669abb5d6dddd61d4c09d92a094524a63a724b46beb534a4f49e4a9a7bb6b4ea0640f8a62288a190d5577db2fb8ae2599d7576b1a9764dee4636e13eb86a61eac5a7535ff5425cccaaaeb2616565d4d29a554cfd0e9c9a8b0892875b15fb02cacda342ee9d070a3da4c57b3b04a64c25a09dfa8305661cdba516d585f4de3d29dc0579a80b6abe9055b35ad81abf3e6e8d74aebea75b5d65a5dff3777bb49bfda3bc2b5d6ae7e575ddbf7645cb3f05b6cf12c380f2ae32615aeaea604b8eab270801fb97be7d52b0b7fafc7c20154b7d695b5b6660a3a75bdfa7deb77eed3bda6b216f6dfde6b6fab755baddb6addd635d56b9af4abbdb8b35eab0508975baf86ff81c01b0f756a9f5324fa1771b5563c8261c471ff5ce7d375ff9d576bad15884bade6bc96c73b7756717ff7777ff7ff777ff7777ff7ff777ff7777ff7ff777ff7777ff77ff7777ff777ffafa5fbbbbffbbbff87e4cbdcdffddddffddffddddffdddff5fafd7ebf57abd5eafd7ebf57abd5eafd7ebf5eeeffeeeeffeff7abd5eaf777ff7777ff7ffd7ebf57af7777ff777ff7fbd5eeffeeeeffeeeffafd76babc2715e9d965cbb75a7d3e42eda99442afeabd58d4b0d6801060afec6a51554081c8e8cfbac3159845cbf1ac3fd5a18da153d5cfbbfbb03cd2fb7ff93171b5ea480ecbd2e38d14bc775781c6fc85e975d5abcdc5dd7bb5aeef7fcbcdcb0faff7f97aee7b348e017172f4630ff2f54ad9e8eba313410bb241697dcae619c90f8b1da13122fd69a023a0921cf8f1181cac49062886d7fb1e1c9ed5ae6ff49358ac0ac75c1102c08425c1c07290d9d3bf88110597c7cbe28eccd53e54355ac277c767c5e3b4c602e980be682b9602e98ab07b6c3c44a6ba7d66a85a85d4f6dedfcd8b1b55399f0b125edc3b3b55a2dadd56aa5ecbce233fb542c421c61a5353bc24aabae40bbffda73a20d5fcda7f6c0719ae34a3f5650000362b635a970c344ccae5a49472ac5c3eeb0b2a3357decab07d6fa5831b3f63f8a2aa8e001962976a003a123a4f86fe5000757a280c2da7f2aacfda7e2ffadfda782b4e5fa93baf0c1d8d8e63535913ed28e1db466658209130851d0a6527c687b9a9efb2cf6d0d0a655bbd529d82b115c7f2c3f8dca554fee95166e4334e4a9575a28b2c2914f5627147c72f5e4b637b42ec03b5f886c3cb7bce52d6f79cb5bfe26def22b112ff7755f547f9f26bd902b6f9eafbbfc4ed3ddeea684122e9bedbeebbeebbeebbeebbeebbe6bbbae6fc8b5c594941dc68f6badb5e62ec8c5bae693ebe43ae9c1423d6517db54ff50908ef347fa2305a9fbffffbbfee7edecdff2b4f816db60bfc1ba285d94d76b0b49c7799baeb5c12eb9c12eb9c12eb9c12e496eb04dada9ebd96097dcc28e09a573ce39e7a45526747b1ce7456bb3c8a263b320a2b3fdf210f177ede35771af7ea43ddbce5e888c75ca2549385dfe2f633af457e749f049f0c915f824f82439abe9866f4bfa238b6cbaa3354fa2e02764766fb3bd1dc66fd2f4082711d9ab6e53d61d29cd08cbabede78e3f3cf060857a2c166a83b3501aaaad58b972050b962c77d44c78b6b9b61fb61faa57dbcfa6fa7beecf1da7f87f4baa55f622b54269a8be82250b962c56d875cc34d1a022e613791666d97c0fa5a13c429ee7c7205ca6cd39e79c53e790b6d5f9d356c31d9eb14556544ae9d8c1e3041f32db9a6e6082206d5c4241851f29988d02a8690592b6d76576d52926b26a05e733ab6dbaec6bbd419e2727340c13230579b5fd60046bfb81d6acb6265b13c7f1930df2d4272b79ea531379ea131379ea530df2d4a7a03cbb53953cf589ca8b0bd9abd2a6d765875c9ca6e4496b4e52f2d434c8b33bcd204f7d5a224f7d8ae52943657c979c86eaaa6935bd8bd2d09aa957a7ed82e1816b53c721b56ce4260337e9576befb55fdd782e696189eca2f0438525b1bbe3e6e6041e4b4a1da92529cd5ba2b14227619d120867380b9d84fafb76f8aae3ccd051539b53f33cb25374cf78d4e6d4aeeb1e363d678f4ee824c48ee32dd5776638c3198e4d389f596197ce25272767045361609e4e181818afc75fb99293636531b3d9a656c623f28857bce31daf78a1dcf296377663b7acf566b9b35aeb9dd5aa855a58abf6a38db5566dac552335521b6bd5a468b15aab16ab550b6fd36926d8a2d254751ca53218810fae707e0fdb413095f2f9039661199661199661590230a0ed1ae7fc7d5a83d4b3c87be5586cc0717cd7f91863d007b7b3a36ef05838aa47a21d5a14cc5823b5ea0c08be117f6cd3e9b05d83a71476285e0f51e9cb19d41a5b7d75a452f6da13e6cdcd1749e1ac64bbb6fe3d0da85373871e1c92745d0c2979459291d14192baf954786ab6daaa31feb407854ac41ed079848eefc2dbd02894866a3ad2314a942814a47ae3272ca03634466968fe289bc6a250298e53bf52d96b61449cee738e684dd5ef78de3b6740adc36646ebea5a6bad6714a89bced99e59a6cfd91c9aa639a3ad4d750a4df294ed16a5a1734659ad136551c92bfa03fd81d6ac6813dac4719cb6e88fcfd9db50166b46592365512952ef8f814de99c38a7dbee383b1f89442989e4c3dba4314fed03bdf904aa7d29f0070a3737b14a290e351879c7791f626650eb1c3827b5cfcccc50c9abd1cceac50baa3f8d7b7418533169cd1d69133ccdccecb701679accb4728a0acd3035c3ffffcd0e1e8e834b18d89a096fbb2b815a26cbb15d0080901b0fb4f2976083a1c59491e0876d73dd4b73ea7f93ccff9c73a296284181204f8dea41e5c08900c6d68e82a183eea78507140ea824f965dc364dbcb860a29f66833f2e5ef88850f0621482114c0b66c946f1c4f007010ac994d11ad4913cb5a38ce4a9a78c0725e6a95145f2d4a81b7487dac953a388e4a95143f2d4281b6688609cf3f7697d83aac1c68d21308690a7cc06142bcf297394903c358a863c35ea03796a944e9e1a35439e3964c891f240ca354c9500745346a6720000754ab564206c39b408d1e2049eb7acf1cd903e3d49339f6e810b198c030f09b2f0f840248bb657e1615285278928068f1f32f0d820ea21bb6caf82048b0f0915de684b923b288ca04205c91144203181876407ee089222a29edc6daf8264062799db5ee5c8d01447a6a0df1119272269fc24bb8881e6447eb182ed756407d1098e28e9747084064c45f6aed098c81e966d49864105cb8cbc606331e2e4fb34c8f9b057296e460096942a630d4d7c7464902c26610f96241163a2e36a6b6dd5308e400e5a3e1895509981270236288908c11550b082b0f9c098342143dbaead62c487cbdfbe22cfed55c42cb6cbf62a468aec3a85165a6cc139fd8fc188796a0758cdb98debbacfdafffffff7ba9e6c5fe87c7f17fe231831fedddddd5d843a6362acb5567f75d2d724217f6bffffff5f862492e1adf0efeeeeee1877794469d4a9e9f416404395b612c9ccfdac9bd46b5a697b6dd39af69aa6b95237bfc69dc923dc11400ddc531617043b9ace698d87e3351c5433959bd60cc92e2f2f301d0930606288f0c59c7ebefc8d6428928c0cfff23792cd90418386fe3449a896b4a9d6d2017635e9d5c55bdb5fe9b6d6adb539875d4d41dbe79ee96aa9c6dbf8b1d6ba7b09dc3fae5f5add5d352a475773745f5afdae261bafc7003a178007e4b7d84247e7faf4e33fe4ffed7fb525786fd355134cd8b1832bc0903c75e50ae0f5f097f95a801386800516eea39d5a6bad5feb4d133466bfa6d67ead7554f3dc0ea82c08976ea894eddaba102219014080a0005317000020100a86c362519003811eb9f614800b4c8c34684c3a321187e381401cc9611487711c628c410819641441469919330ae0257c392975e4676d7c7f840ef0f7a2a209b39c10e0d2228a1424d78bb569b563efa60099996b191ea0af06697aa5fb4dc4ecd4120ac4d666a5a5b41980db031674f92bbcb375500b0f7796f2efd9a5dbc2b4024867d27571285be6ac6eb2128ddad966836841c7a480b65b0c951eb61fda862145598584f49d4abf427110753b446fc8026c794b6d6fc56b912217a3cf66994683eb4f23484cc69280684c156ee513e1c5721e67c96f34f93c1535e04b2868984ab6cc04e5f10738bfc36b284f0e7cb071d341d07c82c5d8f4c85470900a470dab7d0ecba05c127e6a4c72103ac8e4aac1e4ef0080385c34aa215d29b02f426edc837381a3683e663d7e2c086d696ee04d61870e0669578dad187f65c3ba082f0d13d65a04a29734e0659a6fae7b21a2a2341ebf431ddb60bd626f092f301a92c0e8da4890240038e954aca4643e1e0ddc60bd312eb8e2ccc5ca20e04906f0dba75ddc3f3a1fb8fa36b731e4471703b35b9ab368597f2565bde264aee5619a3f9bbd9bc42b8459a57499cdc768ed4de2d859c86165f8c9b44baf310f406bd39685bbff0603c7bd34aa5a564d4898ea3a23f61c23cf48170e4fe5b922739996c0c41bab313c47fb0fdb184ec403135e97f592ed8b7b705565253367ce5b246eb2caafd510007d954a5aa591aa087c819011c0d69c54dba509a0dbb02dd14d7c101e003528cca907766e160f0cb922b1cee6e355fd6275355ff38f1f1f53cd915757174e29662f1280ff22348a4fa20ff0de6d3f9a4a1ca41474d7959de2c08b74c74ff2259785d354c59efa7663c0df0ea8ac1d93d5fe4e77ac26239d39a4e9db3c4db88dd65581a5ad2568118655a15cabcffc680e547872ca9f31d527e674c67f0b79a9fcf224a5e0cd5ee7075ea6d8dcc0428a1f311a99e219627e1487fa06a12b009e582dd0dea98851b6553180e23e71d2e652ea956873ff38bb4fda085ff795a80f4c05686ba83c9b147a9ccd7439bf2505a2b0ccb31dcc97009beca2bbe87175514f3140264e845507e92656e05c4fa5a3094058cf55a52d13552db2be640d5f0b3d88b495bfada233b340be9bfb9a4b9c9531e2d114357c33672398f2892273d706ff56cac1e86472614892a305fdbf0299940b84151d86488b6790d77f95784c00c0957729e2b477d77178882be49e668eeabdaf84904d3def2b41e88deb31c021c921222c7dfdc7b74eacf1a5496778d14d561f391922e01293c6aa5c27e3a643901a46c62969aa554622747011f364aee708318fed1447aad52613a038c64d63f66b9d7eb677141b9fb122796264ae178cf57ec6e5cc28f654c5e7b6c7a0f53080c1fb8af128bd287627d1f4bcb21ac2e4ce032e4bdaf19d728b48efbffeb6ea2e2916f225702343fb01e18c2cf7f53bdecc8ebaa40e41aa48045a05d11149b6f88be14566410c3c52e1ab214c272703f17831d73de404c49d03f193e95e830aaaff51ed0dc5182b32f4bf067f443b5aadc2ee79c8335f4b821684df3a028031a5b95de1a67114ac640dddd4803d087cb38e5d89cbfd049b6f61635e79b7e89b86511b5ffb22ad592af211bd10f19f95145514d4429a7653c0efcabc1be24878c6ca7f6c143918f05d0467f21f90f6addc3cd1aa744db53406dab87483c6c0c6b8874b43c8fd079da40f30d365c239b9a061169cafa171793ced44607873f28511afe73036b464a90e0a2661c30805767531d9024ecb5a77205504092f610d1ec8e80a171c9c66107deb340bc992f5e8d839e5168f2ee69d89d40527f56193fdfe4542754a0a5b2ae448f30e79e846ffe7f333409cb8bd446a3ff3bf17b9830f18bac26591a01f132e18fcd14a84d287f43dbdafd6de9e427ca5cf97caf1a9163d0e0b85bae70cf3eb36e2bbd20e823a1d765ad46b8d8543d68d1d08a0c8a416590d272717ccb1695acab708d65b88fdcb6d5551732269835613999633959cdd0a3a4934e920b31480288ddeef6befe1434043acc07e2022d59f3b1968f572cfb1550af0f86a77fce4a068981706cd04029aa52ba0fde58a40e558fa921049a9d336b02b83b8020bd2ca75104445e7f02e7b5c99be6299be68542347bf6bd8b07d478c76d6e9bb99509a9b01bfe312a7590745b8f4554cc0cd5f9a50510923eb6f231bce1c0fe349ce65c98bcd657d3579a89de4d81cc7608d59fb6d8fc76c6bc1c308e0dfc67cfca4feda0dfa20c98dd53e851f32a9f823b284aa77d4d7081b40fd708ac00f63a0edfbc4435868928705f0a961bd749ca9067b54d368080da3a62ee2c360c3ca6d3ed1a602896beb9392e2bca9f7a120256236ce543340192f02722d4e2673af129c1378d0fb08c4d9e94b783541311bc3605968e5ace37a4b49f60a95dda20ab540d39656f02338a7088bca9cb9ca4f9d4a8cc3e7bd55eb65f7a2b4a0f43cfd7aecb9bcd2b0a753eeacc625eb8b6a29655c559c483ec8184f67768097fe79c03214d2f72ca387b93f98290ba4c9d06e0ee868c619ac2bf5150acb54d54525448f4347af1f5ee480e0d8afe67a1ca0da9658225eeb806721736090b6779191404a1b609bb948cc6fb8c8dac3e42046f526ebc699a41181c985d93d7df187e5fa03c05c051ac3047311a65cb8a18b95c419eed721894da8894cf2937ce8c24b357a4588f8662eb739c4c5f7bd9c8642a43b0c750ace5a21945d9ca1a289539464adb764ceefb624fcb79eb114107116fe9cada0a56c660fd4c057a9686719d7685c7b352f0e68b05e46c7490b6201ae510808f8a0a4945d9f5c9812882f314990b998d47fc7352b39ebd3c845cac46559352a17a97193961ba3ebf735ed461d63b5d5cb868c7952e33d60d4f53a215266a20292f904b8fd7412ad4de422a80ac87f1bd21e54a986916ec69d7a1cd9602f8afc820d65cfd056505670178d6da8a2e547f0d1d9442a9f369197359bfc60f950c41fbbdb875472385f57823cb18b89fb826d5382729d2a6622c7ea964338105022662304fd6af0207fb2b6740589ec1d5b231adbedbb21e660fcfd3d8ccd5bb5bd7c6106217511ae96b8479186417b4ed617f5506ad539b52390a4aada32cbe482210d4c325d7435167bd1efd4c3bc5831a3456546850d3049f3848d2559a76b961815c89702a93e8a5ec937caaa39541a6ef5961bd38cdc6caa7aa58aa148d016fcd9805cb77f2451658f4085a47d3a5d2e5125915e1164af3ba02f24512b76c363359468ca2e1eac2c9c6b71f612690df9143cbefa7ab7d2d9eb8536a4d339c7880fa8d52d47b3656f8a799267996a317538b696cd9ce7e1b4e15da0fabe0150c53fc930ae23014081e57e95cafa85b328b7caedfce9662d04c6be94539fe8ac9fda89bf18e831dff90c306954af050cdaf4a7f0ba9321faefaf91817a891fe40e1c48f77da6ad1805dcca7b9372e4560ae388b17a334bbf96a87452c849c3e9f4eaface9ad1904f299d3d7b2809633eb7bdc7bc90ce3665aa6beaebc43d666d9fad233266ead837f1c00c1d4ef93c755408742baf4d614231f7410e472dfc0e9ef923ec9504ffa0504ea83b35246aa89fd9936e9467831f471d086b950a18c85ed68966199d9d4492c104cbc1afcbea68876425f4dc1d7582ad686f3401988ce4b67433b4d4a739aa34f912c9cafa10d571de07df2cb42cce6b005a19e7bc1db2143c684863c486ff1d130db86c608223a03fa8364ed3814a8f2bc60de02c4a981892a0bc9a51a0bac99b536800e00966067fb8c7dfe7dad83ea270b31af0d22eb77c59d95484c3e801aa5ca4b00d9ec836ca40e61fa4f440b3e379c349b1c3e9cdbf866d305b1eb1bc8f926a959a1b8d010fd3bc4dc5c0c648280701422154060502a2f822f8533de393193e4b37e7055dd379ac030eaa41c3981249a5f034266e58408f0a819c01032cfe4497e5223c943951e9149f3c4e6bd0a6989cc1c8b9d465a93c08bc76058f4256b9c55617b007d9e4a55013fe561212813cce824e0aac18527e8a8cc27aae047808bef46dc84e0582b8dc4a075476730338c496460624f311a35d8f5c93d0c1c02dc65deda1cbb518f9a250dc5e43be16179cac48b3b075c342bf4afb970659688eafd8b4a9c2eb07542dbaa5f2475416c4023e7d77f74a8f4f4b22fa71bf9b5f622a0306f3c9627188425be1a4335216de0e21986677d6516ae078a9d5807c87fb285c358d9af519f05a26ad105b317c615279a9fa53a97232511caab82d4e9c04077b1b2eef6ef47b47e952f477c0f66919c79254aff8dad374e7df451240cbe5f5f4afee7e530de85602d3fb204e23773d1833edcfb28142b7a1bbce81b9d474b46f4614424900c780af80ed0fc1d8ce649b041cc0f91cea0d87b7e2980b77ad827964294d84548c2fdba44756128e6206c8dc9577d85dfdeedb34bb28d47648b86ef24a1173a0b427fd3c38497811d154dfd983a9186bef984894ef7c0c94b7630f0f2e8951f894028802b6a806c439da1780d0ab9813284890732db4df72dfab05b144375cfab184b198d10405c9137c8d41052cfbf3e228ae586425cd97b6824c11b488dd6e8cc7cdc887b340bbc58d3db066b96d2a2145b280df33e021b16e576b9939db283e0a9eae6da72f7847c8ff9f05416f7801047a4c001a4429d00e7fa41198a4c00d49d03acba85a5d03f93eedff080d5a7082c41d2fab8120404bebde04069987a87b1cf8a78790c9cc3d23cd1ecf35d59789a7a35fdeb699d64eee9d931da5f58ff60a1359d4b58059f67681019530075acc171e4533e0969515aedf372e6b868012d26f5a6408b388bfaf28f909e5ebb430287c85fbbc1a103e1ffa5a1e8658987a58c5d295d60d02cb3b87650788f9c842270750198a8e5c5394d2d2b664f67f3a2f62556f82281d7a1fd9cd83404ff5e46aa5d9d9ae0052fc913aa44bfb8c9eb00fa7a4c75f104df5e45b4b6106fd147978d0de8ca335b500eb3d7d976a7dba7a2284207ef378f1cd6acc34e94e60442941ef97219f0198c14c8d248f4ecc3220cf6684c9b58c3703b7110415a89fe76c015b9e1bc42cbd8a62aed63bcd8f53530cc96579e7b46cc95139a48cdfb8755c807790690f1d5538e782c2ef340adf2d4514be0f2b837f932496cbb1dc37a3d00951acb1a147db7aa084474bc67a109d66bb898cafd516f759c26ab0c48facd104bfd7700dfc0bd50ab100376b6103d03c3fb61f1ccbd207614ecff9c08188798503ea17bda7d09b3206517e9e758cda3f6a9694f32a6438b10b2c36b63616751a9e25a89e6ae539e551b12245765549f84fc0026d4e696148328b3f119ba355bcbf6fc4ee1d6474d9eda50ca499581a6cecbd13b06919ae8d4d1cf10d1c9157153dffef05466df06a05f8ae67b34f8b475288e11120162868c0cdea8f8a89e26b930bb6dc400011d2b38ae9e87ecb0f4fa222cfe211916aa6b6589bfcefd9f4084af78d6d14e0e6342eb5639ab418eac63072ae9e545437164c4521967ba0526bedec0f4e5a25c9c65da72fdeef16bba5aadc3cf3cc4981f0d2d0f538fa3c231fe11dd3d86b9ee47d0c8362bbb291e3955281041539a4b304a05716fa30384abf5a5dbbcbe7f0695307b0f41afe7f082f6fae314b044386ce743a9444ad5efb8f42ba456e8240c1145bb54db7feba393e8f85e8c5777d66cfec93f043f8db849b58025fd14c6a9c453fb840991b6e9ea39713c067cfed3f03d9a68fcd8c537701fa12a16c9ba80d408f6f3a334582ae7b8a667866df2a0765b0359566e458b4444aeb90759b99c78d8bf692eb631242f84ae89e35bd9b45189d96089376ab01e9eb8c2cab279eea743075376bba6b3ea15834824d32b4f4e60aeaacc7d90a66f1f15b2eccf8552fb9d6429b12b9fa793f97185c3211f624afaccc1caf29e5b559f21821f2b40e7a5fe3d43942d88d8e9f6a13b3aa57c9cf1f530721d09d6b643d4c4496892d56e38408abca9528e7118e535c892a821ea359b9c9e4b858f4a754d247a780b294f2c2e1e0019ea6d5c1c1c8a2b87aa4c41a26ee6b523d823a7e80bc1f9d2bd43ede4f1225bc9bf97a564229090c61de5743d582b0ebcbb5cf6d821889e44972adc462f94003090435acee2ea12941849e9a5d9cd869ffd207d819844cf52790d7563070a4ac83a1318b52fa471c8ba35e8dcf7bf48e7c62df7e24ab3cd1b3ce7de5d013ebf0ba00cb4dd9645afa1cd86018f79e9d80bd175ee08bfbe90fe88a7e41d4570a3fb14199771fe99d749fa97ea5d1c785484c795e059aa3f3dd08bacdb0026f0deea44983ea42110c41894e2e300a89169448c4347a26d283626ec84e02654808aec44c1a1a01371e4995aa37658c502a0112a39c71a1662d4f62a3e4becec2f674bc8c2f64ce121dc5a6db1c730a670bd32fe0241adf8544b8cf4c60e826e472cc49c40694e05da7c490ecd86f19d1d33a0657651e021996999c499298f822a36ec228c9e98abf726a95c5da2b1d5e1b8d53000ceae643ed4f20fb8251a683e12254e8dff8155ff55f94aa184064f120cce719e4d8aaab5a28f61171e0b823483d0667392b3333a9d6bef875b3fb72d7eb0e1aef70379b108daa37ce5868aa1149882760ed55931456c34cee80ae71aaf4afd049e417e487650621b0b283209895c19d368adb85f7e25d7601bfcf33900872a176783ed0d44235f656e0615046900815d07e4f0dc6b0ef06dd8abb1e4032676501dfe421d429a2092422c74fb25b4add4f700e0f651dcbd1acd58ca9323004ec4b7e26c7dc4b167a3005503ce2676f7de166fc283d9dfb953538ba959b2466c3f6f18a642c05b2d10c80f48b1cafc15d92019698ecf92674c72958a4d9012b2bee57f33831a470222b46ca8d116593e5f7ebe034a347ea8672513ee9cee09a08a08f246f10078fd7920f0e05114a6e9d0949406a897d0bd605201f28e507867fe690095186572a47f8fe58fbb8666ff06460dfe918dc67a0df5053f55d81ab6cbe241fdc6aa4cd6e7be5a35ea502030bb4bffd9bbb9c555d9e1ae8459e1fd7680957bab27cc6f9c05c3e9c1ae4920381273bf7f8f8698f5daaa04f5f1f3be2623276c3fd96b4b57d6bc8f71e0c92426807fe436b704668b9741c2dab13bc8a88036f7e1b80b34b7ca546fad7d047f923fa271920e821effaa6f5626dc28c59fb8ab4530aeaf51eb6597c75f0643ee2752cebcf0ce48695c7608e2595d325c491592743eb5d684a89ca763132ca6d02f62492b48b5a112781ab6784c012c6f04eefd46da3500816bd0466d603115719043369f16122d0af98d361030105ac64323a201593616c708765842a5a065efc81f445bfca47074583cf2e5e4840b47bd10c49f3f14279f7e6e309ba930c1322fa3b98a69d24a7853ca187b871363f806b2d87996327b4f934bc94087a41d390e25f391ea6d2a59b12afa0690de99d45f8a5b31e6263429c1a85252626bcb13f5564bbbe94282364003aef5d13b2ae7e096b382679981a872f3b8c2408a04548cbc2b8522a69561209255bf8926702e946993e90c850659baa5cdd47df177936ec2ebe0aa001c26e7a93cd71a50f891d8614d57e254c49727306a31a544fe4dadbda9258a9a9ddf09cd4761933972bb8c07b97db4b675823b881e83c2b2e7769bd703afa093867272ed1e100e9fcaec4e373a00e2f905fc7814290da4808b0606d10da41d392fc48a7aaa811f6eb7e7d3a67e6f5125d9ea8650390781fc648a83ceea2d6375a43d854110d937cb44bd1ce295e3b15cf52c81b948f9c60e55ce3e3e3ecdf8ee9102d6eb6ffee20a43f76865938664b3b392d232997412b1ebb2c9bc6cbf4655be99680fc000ce7c401963d237f4997c50f575a76945201564ba68916c418c29695f95bf2ebae36eee91b87bd03fbcb1c01c76b3e6de226618cb551bd391e7464e80bded4119a5c3d6da30779523cb8c798836071831b70b95c54686671cd655b85e0cdd1e87057b048722d05e3a1f9f1247698f39c4c92d1e5afe979a6e9c837c28a2fa77718ef3cb28ac0ce7cb295aa259812af7e506fbc1551588ce5d7f66ddb10b52897c68d84e508a15da819570fe49ab7711f2d8b87d249ffc306c814158709135d857c22958937c3c46f37b5f9bf1721d92e1eabb4434984ccc70cfc93b0a360969b14042daee2bed2d216bb33fe055bc24ecbc2b6984bdd128581565afd73ab66418d8f63ff092714f28c0a3ddc8c88db75d0ca504dbfabea1dd5169fa56f7b4a7ab89f4f449c5be5253b7aa666c4604000c50d1ee0954b595011c25915cc2248f71e9075a2299771427e7087a25a07948aea1a0decb4c41976ec973992fd820ff867177eb97949329f619c67d55b9e37b025a7979fecfeb81d82c3892c91244dc203394326535d6dd422289905347f469c67da7565330bd097c33ba3d195b51ffa181094f6921c46c80321ae96174bed4bab6e1a2b4811253ce108dd845214f892c09360cf5a0667aa465cc0a52edbc99d49be5b8cfe4e82793a0409984e76e3a519ea8e370d62d23e8914e997731450268e7fb48a1e1b07e0406cbe6f2bcead9af5c3e85ab25ea7232a997cba80ec85f47864ca17be39edadb95d605e47584c2cc3a358cd586280a300446c7e927534314c9c6fa309387f0c2c0625ad36a20516332c0123cf774071ae002ead8de666a6100d4e2ef44f981f929a8d857b7864db388d7a1adbe754b350998ba6d251871bbc44714ad2280eba18297e7420937c4d8864128ad444e0e82ee90099f7c2f5541f1aa910f75993b0fd25c2c18cf43e7b05bde1428c19dd9ab96b6933d7383908e40eaf30b4af6940019623fc6a41357b44372b007c7d000825e8c55f44de754aaeb4d8a983abecf6cbff43a28950ffcfe96208be144dc0aa32ea7b11708eaf8382dd4fb7308a3e7c23801666630fe99d3fd9d3fbfd0d4e90f563575211e55db199d98fd9e8574569554811a9183bf1b719d375a271ab4e516d7a4f7a05da48ba1d8b2aebe66886569a3a518364965401a190d87573d8c43ad137d272f871377765769b6bf3414a3f2abdc5b240db6a197fdc8f4b3da19645db671f143a161e390396d7b2de52685d90c4967a0bf171b6c40441d656ac6f2266daedee93a5afff6c9b7a7f84267bd7517d4dd9f5f4e731d8d663b04c441bd5bd1cf61605171191431c9c33198c0df88e12f4965a17a428f1ac13ed9aed6cb5de9f5edf80ca9efef74e4f5a872e408c1cc217bd056cf40b78124dba2a2a0da13229918800978989992dcddd024702b6124122731787723d4e01ab1a8b58e4d0c604f636244a9b4f640829b4b17a45741d7423d52b76ed287772b9017f2bff062c52f2593553eeea7d6778bd5b09848612b61f0fa937153d8d332c2d0a614a25c55898d14c2fffd6fed64b5114ef6a085a340e58495b3b4d6f4d313ea95ff847bf02a0495edb297b298a71a45e0282adb7f75fdcc300aa3d698a086ed6c37af0b11d3d250806e2cf7da9cf8e1cf8f66cced541574a2d208fffe307bfc7b5d85838847f5523bf466a3cd2a6c845d4bb0c2159afef9e0d1d0d92621d7ba23be07d0f926085a077b99631b569f4757cddc669f0b456b6373836e7fae847452ebdeb7be34370aa6696da0bdfe541b7de3b275dd783381c9796bc343e7d9f0fad920f2a2992e640d0c9e84eaa9dd51a904d0d56bef2c03fa2da390889603747b7b4023c396c6461f491a92689878cafefe3da0a30aec8d5c63bdabd459edce4deddab4fe9ad6e290832314808e20407d9adf1a14e59d8af417b292d318a520898b93d44d4d8da83bd1eb5d984c4db2622c63ec9894eb68e84accf0891b1e2723ea317e3f44b5b80dfdf9d156819b069778c8a2c69ac9214fc952998d163a9990a8e720c3c8a29e4411584b6a2280925eeb93364c5922a4833309cb951696654b05f12bcbbe34b4b9ac61bdd049ba80758950c739c653f25df9ab05f424833ea3696d1bb226d8e400c53f6b0d5c3b94abb724e3062d0e6f26164fce24b222df7e1fea5090ea5451f08cbbed897483014566b5d732c8fe39fd3fb5a96c3154d55c3b1a52749680fd568fad92d29b006e0d88a9f7240f72d8f0b5e56732cb2e1342130c3d4fd25d11803eb39885af86a10fbbaf7e8c86a418a443985132bfb7f532d80f80d71cb3f5bfe3765bca3a834c243f5609770c8b228399056f63516a560caeb7c58f9d32af700d1d39aa8cab1a0ddcd36ad5d7d6fe49a5601dd75d36c99a47d898401c31f96c47b5e52e3d7dca814b5b4944eb3be60dcdb0bb0293bafa54703ae10991c72c2d28f8bce5878ffe1b0ce475f85eedb8dee1e03470f752ab83fc3c20484c1dc8e5a37c11bd04ad3cd44ba7ad97a58eaa8a405bc4eb225090e1b1a5de1f22c98e5461fb74f06270b7bd49d6b2c4f5507225cd43a09b095c3b9e7a6691c400c3246211e7903082dbc03a446e11b8273645f1b4d6af07fc51d3b7477a3ecbabce6289a3dc3ece30b1064e19442d0986b9e14a65855359a2c3d7cf6036fd28ec7cddea38b0d3d5220ae20b8eecc742db95698e798ebf57493c060969b3ecef797560a665e960e8ec8fc6fc95728f1392435944493297d24c4e35ebd58c49811379327484b29a22eb569621bda1c8e7fea32ce0139014fdf463c751d174f2f455cbef65d10404069b3d7bdd697c171ab50b6a376d6f41c3af56c7bdcaa23c9abeb7838cc757af78484088a2a9d7eb3b9f134339d58253119e8012cd173dfa309ac873efd4d0c4047f04bb4d72e4741d9a38b0432508116097b96f97d5259997b4f2695a4ad6d450ce691130f15da7e302660ac39efeb66d439560fe27bc31004d23aacb879b40e215e8ade5077fda980713e674ec8f6fa73c9805e47e0a5820edad29ca04975904dfe8310a3db83d5c3cdab165aa3a52b922f33c4042b1eb43bab286186850b97416e88fd9aa46e82f377a389636d505aa49ed2598e5c1297516723f67ab8792e646266083c624de4c6ff0ed6740f4cb808491f3c2b1e19180357accba16e09ddfedadef793a409a5990400eedf0e9843f867c2c8c6d8f37453c54feebe70805cd9dfb3393d0ec09f59fa84f007126c51541a183215e3a14fc15b22235080570777626422bc0d33836277114de43f5744758df7464af45f368dd097f7bdba62cba1c6e6b839760db79a151cde575959d8c2d585f97c2d3ec5fe8ceb886f5bc4e0c7f83a5d82af52da3a8d1dffe3ec15c523ff9080f10fb3083e7289f7019c2b548fce086541d3d902a191946048f783c9e519c61a3fa03fcdc03bbf7d2bcdfc47663e38cb5dd6a6b607062dd0fe71aa79ee703bdc0d549c5d6b5d07a52aa09853607a0fed3120c6b07a69f6d04ef37f3c839e4855657b0ee87fe6c1187db7574b756b78890e4041074dec897565c85e395d7f6e81e5c0198a925059bad18af1deab186f93ba4184310f5b2aa0f8b94f1de878b834e418b8f35f50225bffa86290154114e6d23eb73aaab031a476cf87e9ef278c2382d599a88763705683a88a4186538ca504e898cf017f17ba2a750cb4b9df232d5fe00ea92100afff97503ee8eb18bc66434fae1beb51fd9d34095db840650180f19eb82628d95fef7b0982130ce0061ad386da7d23103588e8964070265025bbed3c414bc998a29aa0a74aeff599e91636b383ad221dbe96e13b1037e281550936086eef0549a94821e6568f1becc1eb262cf0269a5d08be0d8934c40f3f5c0be165c0beaffeb758945d14da2fed64bcbb5e4006ac2180964a12bb6eadf56e3258539fe7db3e22546079e2bbfb050cc8b2954885562b6bf2ac51550f443cdb588501971ca4368c53d78aeb77b29e89ab1c766cfd2e6b1447a63e8f830ff7ee6bd1a49b24266d118badff0a77ebca95c7a49c30f139d7a15ed5dbae674300efce5b83a88a997e7fed87e3f027c338da67a44729e3093df80db62f92b6d5cf38a20985d132f46aad874967b9b352ade138ed19f61e8293a2e4a3c5f11e4414c93dfd095436f8979211e380994a4a08b3b4704886d0c2526740b70886daa21103a68e913df390550ba1e33308e9542477e879a508f5644a5493dd7b68fb1d2aab2c564377a92eb32c6a56daf339717f4781f751909952acf4bde205d3b23a3e502c1807c19e90db690298b688ccf52d126fac7b909d2c91f489ec6c7475a7b77e8a883264a3fb863bb47ace6db40c19077468c000abe7585a9d0a0bd2e1b18e70928d0c92e0bfe4bab5d492a8e1be44de63f32022a960df30dd544424f5307579364304b7a2b5b5300922dc819c1f6a2388542fe60d68897b1b7b39cd033cd1b70f9f9f05b9cfd9331b0e931b878462ffc4a7584b739189fcddf61fea61dd75a663250eb61b24fa017df13f8e15cca025a1a9dba800291a1b8915b77ff2f41b224d865a9d6d5cedfae0251f2a7f9e0573c4e5a7e4e0737652efed813f924e6aef41a4d1f3079cc0c02ee9640f8afae4c7c9594134b734dd00535530c4e9443c344daef74a763fe11b480c73b9786b9c477a238c71ded97b5f2c1bad20666fda09205b61ae4966e52f57470bcd9b9eea9acccb86e37d8379f63f2cedd4d369d6c465db27c65467245600997ac65b582a03338c4ef1a17533dbdec7e58e4c561ed0fad602004379e4ee1a390471ef3afb779b06a35b67fbd3cd656cda2b747d115b0d9272dcdb9337b06c5fd00b529efb9028650e7aa3fb334e9fad399d80abecbc48309c051da5b814876f1a20f848bf7654c88d0b15a2d0314f5a0dede1e214ca055645963e086d2cedd21778835ee447def32ff5dbc373f209d44a1e1bedec3174654d27692e959fa136b963fb18bd3d7883455a4cafa9148651af8003bea699eef00cc7127dd341fb7e3340cba25106521be676aae71909b67d495adc7387cf242f7135851e2fa3d9d39b20d9374d8e5db89b9c4717811bc12c36a7f777235e1b18b7df0b64e00b973e349c6c354c5477de8cb399b3a03d1b9f1b0f417692c383c44ebb10b53f549752fbb2e22522a6aa422c9bbd36be587c80120332da22ebc35393f0429925b00c4f5e01bee4453eac7f6fc5d7f7c4eace9e480190998bd1799d3a730ade02b3d4e3a76d0a21b04f97034cc93524fc4d211e773ebe80f4f941691c6c5a31c54d4820c33e85e0f6d483588ad28ee3ae5e6514c373fd901002c06f27c1bd621e6cb7067aa706f1175d2681a2b02367deff05b260db8f60a25326e7f445d831198a0ebecb974160093e95db03a10ff65896ba80328616d17c614a64a02d9d183188a5abdb2c41f132750cc52e11171c9204fa3b1f63229a7bffb21cad8c201bd788c421337076de069886c60a653d2a3752548415ad35bb70fc180dfbf75096e2593bfbe671ca0becfbae49444ba9a05d1608d08447facbd877a74ac5693bf9c238c10de8fbae10c425d4a15d1a08a049f11544e94f0036dc439d636d162296627098fa86156135192b472dea852000cd82ab2056ff0bcfadb7f43b233f68344f2d3005ed8a612991503cc28a96fa0e3c3f68b87ee669ccfbb9234b4a24d3b28064dacf011417c522ed597dafa59b2243baf086c35d126404b744077a6edb351063099431c61248047aa0afe26d49c303cdb00ca049e310063c6414bd386bcf5e1a47f58179df0ffe5d566fab09ba8cdbc49dcd345d196fbdd7d72436e766e2ce324d5696672f57779669b29a5999a22fca58f3fc654932635aacc04d7b905ed9d72436e73671677e6a2f86b5f3278d53ddc0bc4776878995739bb89999b21763cdf94be3a83e30ef65ba67e2a6a5aaa2dae24c3bfbc938e506eafbd72a4ce983b955101c1ae9687ac8ca2310a917f2990608820b6dd90d76b93d8b00724adce1b7060ff615da8597c96df9332846e16eb1e427803284908293826699210cd177d2db8cec04cc3897b2280536233d46d76a3e75ec32e33c5a1b4665541ce7c67b745720746b083ee3a08b6f649f7ee796db66ccb4088153150c4a160382f7f27ae07cbb5d4776bc13dac68d8f987abd525e5e98f9768eb2cbbd2c99cc8202acafbfaaccc73263d97bcda1452c9e2d1625b215ad320ff4f92d1c011686cf5d635162b8a488f2e68574fe120822425abe85d3243bcbe5bf3ae6d49748bbec762f85b0ee105f0ad996c5965fd312b1a4cc669dcb5b476c0f16b0f1bac705f72ef45fce403f4e77c3b79474f85ef62f193762451f6f20c13bfcda1a7dece7cd9190d95d9e510b22683a095f202a3e03a9afe4e26cf486929ccabed5bd23408e69c584350ab7581454eefd5860620cba622edda41d2b4f160142c32500a7c6f9711bfdc09c2620f38464449376c6d06492f8c8268495e79761767fe899a2f72c9502ca681d7725da84b89ad14c866a4abdc6d7c183e213e443bebf6c4eafa54ad9e51b4314a9ed8f4c190b66ab024100316ed8ab34ba25bb69ae65885bb93bce1952c97f282f0d78d1bd8a431140ccf797d47abbfc5da219c9b33a961687f466753beae724d4d56ed974606212276e91a2571e225ea50c51d7ed584351e8b997f14bee5139b60ff9fc7c62c5bbc21614bdac9187fe9a6838511fc0a31c2574bedf3884fb7d5a1b17de224b751633b1dc02d0d2509654af4b802934800bb1d181340c281b716c0880d5b59837ba2391b291843194e4e5ddae38743186e23d821db17aa86471bc8039092bdb0c79269f1fe74cbd6e523c82db63e21083a505c1f34df901c890d4039c53d73a295dfea9600bfbe8366a739b9322b9a7fbfd35ff2b13ee655d17817ddbe987483c8ee4522c5cc25199a2701ec0e14d92156c8121f5c44bc97fd8ec239d97063a0ecb87ce05113e8cec78dd434ed44c3cb64c1b51c0737ac1589fac47628a40de402c8b695d4a47926c4c2ba0bed2c326ae2b5fefcc6ab7ab4dd108d28fbc43b2a6ca80318e97c256a0bc51c04ec4d7910d055a81b26517e0bb637c758a79969c0b7bf3e032a2e8700017c005cc72f7c89d1c8feb0cbcf9b567c54010a808acf5123a5dc014f0024697f45d9b99ceab878c1f049cadc0ae8a27f5ede3ae7e4a40e8bbcaabc0614d2c2e19860c2501d0ca7964cafc3069d27edca3b64060d8d955be400f69021fbdf533d55250ae0ffa6c798bb0451330fe67ad4c6accd5a9ec9336540780559c71482700da058cce3dc497780c10f3d984718ce84afffd0e643cdfa7e9666a431d58f357fc4d329552ccd75807215bc27d68453d54775d640e1e413c3132d5a77030bee317ebc78663d0211493ae81d114f19b40bbf0ebc4c1c909b3b78e3d10cdc5d228e742de74a7fc865cdca1b09e3d9ac99edefbb41c6f73cc2e929ec4813f27d7da32c3f33d809591151a74fcff27094a0e70f8ec5135aaa79afb31c1053e6a1bb80d5ab007a436b0dbc83c195f8da5d7221eafd81cb06f78981ab9af57ee4af3849a7cd931b76946cbfffee2c5583e6a710ea52332af8623a20e2da869677b302591274be5462d1f33a7f9c58f34e508c578e4d12c3b75dfa3d3423bef98e36c5cbc2be74ceaffa665f10861b4cfb6a3e31eadc4e757daa77c1642526ba99d69401d2ee3cf6e2102b7dcc1aa128cc0fcea1320e94d56331defc8a6b6c75297d9a73b91418bc6cace81b22df3740eeac3331b3f5c8d74a1fa09761d8991771d8b2478cb2284701104696c486617831f4931c3cb853d73efd1c4f76fe6635bc921986887ad5ea7d5bcd6b244958870afb4274f7207cb7d69092563cb149716ed48eac36efc64e41d0ecf48d2d186654600866a36ebf9041cad86dea8c16667843f26d8e5d4778b167f48b0d6e2d4781a5380476db67f61d1d232ceb221245e4a4d33249479530eee706cff8ca547b3ecd3b3fb36984c59403c7a85b7ab87951eb68cfb34fc73108cb71351417b9171ace56f3f2fb69837b128823b82e5c56adee3020255d2092e8d7f61bc6f1f227a17507a726c57902e66ba3b1f71c07e7e916d2b75ed578d47213add8ca5a0a0c0c00c4311a1cee1d4f0629a5a7fee588dc243992bb3233a1e805a55c41e132786c3aec83c060cd7b2344e359b1d9dbb45ff7ba686f36339cb923851b898d132ba5ff84c6ad2205e921ad2ac3affd062cc854db20c50e471b83355b54fd56c54651cb0b983520ae48509f52c93d0303276dc07e815e309ac34f0d00afa15640ef4f3114aff34c19040015ffae03d33abf2d331d7a744ea9421942103e3571518d39eca0f98e7978015aa83211c4bd42e5aa0d12a760c975b459ee16bca12b41a328fcc43a73d333f8ff741f58ef007e26fb040c8df1ad3206825247cd4ad7951ebaa0a4e9750493422ecf58f5a6013d94fd8e02cc55aabab097f49afa7fa94f55948582f57b2486e940a14fe7286ec0e2e1e6c2506cf9958c8135762b68239e3b42d82226fcdeddbdb0b22b31fe8b02cd43039fec719ed0c046d8a7141a839423657c68ba8f3781bd3efd1878cde00ecc76aca0df94d41ad71e4106b54a159ddaea0c99cf1ec92191062de480384bcf0e87e8b249199d28603928756a27ed56a322f5d5be00e282dc61c89deb6123b3ae810f5d477d90ffc82cbce7084cc6e66cb7183f0271087c989187f4c4d80ac777b04403664bd7f95e03c34bb6e871b0a189d781ef9877c4741672a79690da0ed7fa2a40e5059ac9896a1c5c0adc3252c1738a929aa247830bbe6b0877029c05d5a4997af0070d5441d095e8fbba4589e9b47d380a49f3862831d2a0b1759cb35044d4593d4b47dbee57fca495f1eda8cf62be92d0c0c3ccd1414e731fca0abbd901fd4557e99dca4169cf36f91a8dae4ac7e2c07af9cfd60d5e70098c9164af8dd3f83dc5fea012f828cd5f7a041b815965206b790f1169d9cd7a93b3285c8f546c47eaaf957050aa8b0fbaf49293582b09fddbdab3c4be0a2157d1784bbc33fab7a1858df2edb9b9b2ed313e4ab0c0944d124b3352298df472f6573d022cdca00f5173b3ec036293035abe22dac0c9e18191c5d30dc5c2e35fb58f5bf0bd460e5a4be09a14e178712f3865230cdd18eae005db504b14e5f9b9dfa064ecbec775bf88698863885e2501778254bab30c2ea9d952bf81476a38b7fe8a56af112f98ccccb52b7d5191125796462cf0f857de8d9fe11793a32902f766fc35cdd54189e623376ec9602f0dc56e012ed74e50f6fff1a1f97f024d86b70c073351042f5f8cc4acbdfbdbb02ad1f0d9a0c8b36df86f4aae4d72e5034a4feee8396ced72fdb7e0ec8e5fc6330c6125cc3b0b87144f6bbda8b8d5b9f27ee6350479fc66be221af5fbfb171ab418c0898663c80d760e7d61bbd6dbca59e2f584823d421583acc286e15ae4f8a3ba02e3063608f3efea70e22ff870ec8ffe527aafd4c181e72ff55dd002dbebff1fbf309a7e74edc108bf338e6fff1b86af9568e74ad8edae6fd8067f35d985b8e5194aa6a9eee81d23a31b501f2e02441cec8a657e03faa047ffd249d6d9361bd75ca918912fc79a4980504ae1a0eb7badbb80a572e8d9d019fe85f23474daf9f0a7176c01270e9e053ed32837473c756e362a807c3daec12d93212826fa867f33bd6343052474ba6d9781c2c864e3f9bdfb926c8303fbfe3ecb8eee03218c8f18f6fe750be02d3a2f4f5bf174448d5834df46a4d57336486bae945bdc3369611b911d8df691e0ce3a6f4c154d7212850d1e8860fe52534d8a1c4c6d047c5470cbe0e18f207dd55488e38e09624ab18ed93f0742048f6af47875ad26ccf8c287c8ce9b1736ea919ce2c670c3449f51ebb1dbab9f5485249faeefbe63016219582d898f915c86c4a427e02c7fa4f236dd98d703afc91ff97691ef3861ff718ec84ddbfe0ef86cca44700c6ed6decd760aab58f6e3fbcbebe25b1d8762ba0fb618b8321e9cd34c07edada7533a12097d4ad6de1d49af71441556c14ac67a10b468a40f7660006148257c0e0e60fecf2ae67cd923d57115c8b15a4d158227e77b3b9d89392de5f1e9087f203bd2f228efc0a004b52e6dc2e0d6d4bf37cc95a0b5d9e19599bbf2d993e49d4e4a6562fdfa416c4a3e6ce85b103c3bcc4c187bf0d17bbdc60b32be453acd927911a1ebb2f94dfa202b5f775a508baf19d522aacab02baeb79695e208e3a9b0e851384a98f07e57d414982451de04b69246348fe496d24d05744f12b9c286e9ae4674e9d388003a0239b59215d4030725ccfc46b2b708c04f6e53aef26a48799126f0f1df7c7ad0c2a81e0f0e398856dbbdbde7b4b99a49401800685066b063d32ac8fcba8620ce382ad710bc2e5341012aae7b538e77ca3d68a31c61e8022771ba5df1c2ea3fa37308e1790268c71c6998332870ed7f1de410747471e7880dd83a7b3c7f2dc5aadd65a5b7306202dc4a5a2d310cf1913749b12f43c6d31ea4c26263673536b7577f7d266c6ac156673e3cf6302ec3c7166308f53d65a2b8e9df505d56959fea9abb5d6fa62ac38577777a761f98cf93326ce967eedf6f088d51fdc7ec34292f506d9eafbeabb75f7a22f3c2898f66dce6962dabfefeeb7d65b5f10b0afe3f052794a5080e7eceeeeee8ec3d60b0c8c0b4fe32a4075afb5d65aebcbdddddd61e78d04970272c618638cf1ebab6f5660eda2bc2f7652dc9401d92a813461d64421beb898a67879fc75f866f0823332343466aacb32ded65acd19e5ad684e1319ae1be9be2f2033eecf0f10d04c868373d3385c596f104f92691fd3286f56c0348919d060c0386d97a887c7a65363860c1f1d13c86554817e82cc220d70391d3300e50bc809e302b634840000801710d3be80e01b1be0c8816de01bf546456f24981647a923070e0e622f20de8413808e0e3ac01e78b063078f261c0f1e382d49b807e1ab785b9b330ed8dd6dbe10c418f7607b78c880964a458941159f0f071f0e3e1f0e330e0c661b38ece0bb5b90204172d6d044a15aca417e4890206901e657e5d744ce39f5fda2b844c1bf2ab6fe8cf0f97c3e9f2f8361788784c087846f4a388a2db26c217116f004c9d95d0b777777df30acb53c24f020f18cc0e3011e20573208663014c510cc25f0ecb6c839e724320866300cc1ac2467771b7276afcad9bd2a063923d1620b0cb2d09285c5155664c9209841299c1882b9046b3d0655b8fb5e4005d614527895db6c39ff7815f6fb62616c91a018fe20430c4fe6f9691156296e01630d4ac04def799e158a73023e7c2ca00649e09ee7799e12387da49fb3c858c46193e3102f51353535f5969c78f22483a14791248b082f491320082e25c91e7082933451ed19abd67512254b4b4b446ce238856897ae2c3931b648500cc7a62d506c316a5187da6279e2ca950bb43469010b6e803a12258a95306c72a20926acaa2ca10495249068e2b614a758bb24a52aca1150a24489624a617bdc71f6a6d61779930c68e9ceb18ff7361bb0fafb35e8839b5ef0d334b543d2214284605b3fb84121dc34080335bd7f4d32cd353b0d01e3c61a18b76bb1d2f06320ffad21e4c7fa01daddafbbbbdb4aba8028d882cdb46098757c6669ac801d41d1f183ae1c18055b19cc19d5595a0a825f7078c3819b9a9a40cf3f59bc812d5a01fc3ae3cf18a3b82557415353d35943e3842a83b6286c029b4c8c71af6765d5b3b23d5f06e29ec49b9a9a6a0e3b3e02930409ec9e4409100475725e4a72e50427410226098d219a9a9a888ce1d2d292cd66b38979149bdcdd6f152776e90870090a2886638b147509a262bd414dad262263935b19610b7fb6a8c5004110cc4fa88a2062089a4d8b4b4e6b14c326420481a3853fe10d31382f863429dc288650e1cf91f0274af8130588306cfa61ca871e78d8c1890e3948a5341a0d86368a226a771e56a9d6eb70ad510c9bbc76382ca980c90d294041f81325fc8962a3c5a8b730fc8922c306a22f146c0feee9b17ffece9e9e9aab19d052dcddb1d8fffcd4bc386acd1ea1c1da1d4c7d917738edfe9f6946ffd2eebff5fdb64c96a9e6eade6d79aaa77aaaa77aaa1a2bd3beeef109196d61f199987860e28189e966e9b1454afd7e6fa3060e1b4803779fc8f87fbf9f0a678d8d86864dd2e16c32529ad61a46ebb4de7c585529dbc45955ab5c947fb8d71345d33ccf4f7b52474cfb545939ec6aa3dec20b657f68917a1609a6850f12e03efc16feb8379b6491b0a581867ddfd25073350518b308a997d3bcdb3231bdf8e2bf937f9d4f5f74015fe7fe8b361417bbb81d37281700e37038dce31e8795a631529b09035367ea2dade9631a3468d41c0d98166834919aaaf1fbfd6cd4c0b1c5835abb5f840748a32d646262c25ddafde1e187c99afffb9f9f9f7bad165b4c678bd56162f2c1daf0a9536bf7757498987af09ac3a1f85336dcaed9b7f8f031ee6ae543fc85bf184ee0cf6d2730eddbeac3c06d9e7e6ac3ed2a05c2b026b0a1861290804cedaed66ab2285d2e39238032eddb6ea6ddc1c4e07c1a8a6208daa49f4d6cc12033239ba189d1d0f012fdcfdf2902d32e99c1b4219021862727185e787ddaa4e9d8536f6188da5d2d22bc3aa27d6fa3288aa6199edfab29b1cdd46c79e1426aa3b590e4d784a4a7c766b3d97ad20aa3dec0bf206a773e9b4a4aad39dbaf268a6d053b276dfb3f31a9fc3a223d286d74cc8d8e99d2397bd44e368f6dd09898465a627f5834849897d52f6647e91add59e3188fd2f5dfe87a8174e6ce7adc325c1bcc36466bade970d46c933264d86cb61e0394ae6f367980d2356cdb681201a56b9b2d4386ad47e9fab54919326c369bcbe8f230ee5da59812034ad7339b6c40e95a665b2abf55a7d2b7aade2a5584fc22fc10f7cc3fd64e49671152902f5a2282083fccfde3dcf82fe05b6cb145f821ee9ad72ff9716e99bf556a2e66899a3395a839989a7bf9fb37899a7341a2e6c8293557d69cabaae6a2d41ccd113557f35a41cdc91851734f6a6ea6e6c6bf5f2d0092de0a8d245b91cdeb6e0b866cfe3e19d3d56932316903e9422dd645c5be5fbe60df27abd8f75db2ecfb2f56ecfb3057ecfb2616fb7e4cd6d561143a94a2d6eed3e8700a8db5ef87576aedfe8c0e9fd021965abb2fa343286aedc268a7245b51ec4ded94842b8afd8b4bec5d3a03e22e499d817363d42986d6eaa30bb5d8f783d88a6a95a10bb7d8f7432d15e8e61b1d62e9acf0aad62eb8435d809b5ea96ddfb643e4c15cbc1c9599b86eccb614d4d6850e285d8f0f285d8bdb47e93adc594cd39df13773be78e102046d74ad327499a7a3939393832a195d0e4c3075977739d899ba4ba5bb51fb5a1d08196ae7c7380610808e570d4d8e191cb85b10d08fcf0c191408c18c624f6f5462075e17842a764f7ac8426967877f2850c1aa4221065928c5c0b04c91c21323f89e9a9848514048491a0194242af66ceb0e63e88dbb63f70683d209aab9563165ed5b6218b6aedc553e216e952fe9ce6e08ce88a3927d792526bdb4dabe4ed54ee3d77b13b1eec7bdb4308c01d1d91643f152851121561546844b3540498132834f0a949e8b4e0e66ad62616a67d5cd821413f2e5a2ba1b17c58abecfac561b2b618540e507ae768859ab8c5ced9a65d7aa5e96edae0e46a81d73d90ca835fba4deb2814bb33f9ae6797e4a7ef9f6eb8fbcbdbacb9364ebafbe40bb7e6dd77731d6aacbd605ec261fbb8cca7781a0a3231645851358dcc1d4d9b75055148f3075166a49c9dedd7b7bdf4b4382ec1e5db076c8b537c7c5006ae3a61647add92f62ea2c94cd69d652a9b95a7376dbd79d1b04d118553d2b5b67a3a06a30ba68016c4ea3d9afafb350db6f56ad56566e5535244a9524db9a3b8c8becfbadba184996b7830e072c927d3be4068d2d6c1bfa50357e1bf66d7eabe1b818504816846a45da7e002d48b185c8ee041b74a85a589132e5042e402265880fd36fe6db97b74dbc50021b444043d49313125633441902081dcc977d39a82ae184129ce0c4062c30a0e58526532958726502b5567f77510e58a80e14419a410b27724062430d1d5041d494224eb6d0c0820c0cb869fdb7b5215694f420a4079f0a45f6ed947d0b65a3ae4ec04deb75b9b1231a58550941b244d4153c94dbfecc0a193dd61d2c314d731760c74ded0be00426782830a2054b54bd62e40454aa8624b9a20a6f8afc537c1aecf59bad2190018c217c12cdf353a93ad6709a3d531bcefc73e68cd9fe7cf3fecc26182431a5584d232f9b2215df5c61e2ab82f9a90d5749d90cce26a6e999c28c084e79d61a0a3a8d11c33ad7146b69ba092f6eeaa2dfde5af37c1d5bdab29a26bea98f50031203c24504a49496909705438cb1df7bc32c8a24f1448516e9a1168429e2e0834996a004d3050309457a458a80604911a410ca0a5894be15aeaa5638424667e634cd134b0e56ccd286b005323c59a1c848c20a425c41cc720b92ca24b3b482982396b0ca64c234472ca68b13d334674ed33c5d4c885b9496d83a53e4c103a6c8348e60922d845acc31cb34cd99d3344fd374325b5b944698a3142d154c1a5ca8b09331985ad81dce620e471fc75114c510e7075d39b20edbce68ec3c4330044110e3cf78c9059fcf87830f079fafee74bc457e7d5bc51b863a6c3b44634cd962acc3963a0de5eb5caf1b5fd77a1d2996b6b4a8ce3f7cd2e5e2f22e17722cef2e49f25b240a8ae287620dc7eeeee6d67925375becd704a154d51455925c3045022c8a4048c2041638b982891f8224b9f213e68c43b1032764011942071e8844c1e24a1255a460657703935f0b2cd44461a5229ec039ce538c31c618bb3b7677777777c7ee8e317677eceed8dd712ababbbb3b768c1570772d8c31c6189f37e58d04d18e339ea417109cd3edebabe3e2c50e2e751991add26988b41717d3fc189ec919f4f3a6b89efe18e79e52e71897d8862b9ad3a4c775e3da6c3366f8f8c880ca1b098e13148431c6331a68901392b342e5cd0a98a633dda1d1ce0b805a0c9e215b26cc84cc86cc9266bcd99159d3be3f3332e3cd7ab3249f4f6f06d5cb81f241ad6649fb3eb99d5adaa168bfd20ec54d35de39ed22cd6231d47d4ad1e25dcd817ebbf9fb7ee537dc93d36e102eeaa6370877030c0aa6bda93aee861ae42a545cd40d6a4272c4c7b464a4e6629e05dc5391156aee45a9e65c2aa4f04ea474dc13ec75eebf3b04234f29e7957ddf4fac33cbf1c9c4be1f7336b1efc39c4eecfbe66965df973959b0efcf9c2dd8f76b4e17ecfb34e79512b576ff459f4bd45a15f2b42af539e544a2d692a8352a3433353226263f867c18f2b4829d519c53ecfbe795f0b4829d57217a4a69cd106d76b3ddbe3266c8a04e29fb3ee941e99a0c40e99a8c69fde5002ead05ea71f38022482200a645a789da09869a0928c3162af2d4481e9e5aad76738218312222286aa79b1fb54ce3107592bd8d4ca6bdaa7a952ac218922716b3eb7cafe24bb8124ec593a83919246ace9c527330551ea5e6f01135976b6e056e843fa9b9b0e6489db76028f6f7c9d9b81b93b608239aa28c3823d68834e24b8c89a2a8c5c650b1efc3bc60df37abd8f765b2ecfb3356ecfb3557ecfb3458ecfbafac2b46214a214e81b5af78a5d65c8ba7165f62cdec69663f2333fb181873868a315114479916b3f615af6a0ddc2f353bba80596a6adbafb9a444f10125f880404b24235086e26eb7134191a89d603fee36f8248c269c8a765259f3c50b176678eae8e4b4c696c84351adf58ba0bbbb53f1a2f6a5f2fb2e8204e020c70b47cd063437666c3d1fbcc0bdae064040be5477bf426e38fc66a9bce666befeb542329f6f6c622ffbfab61f9cdf605fbf868d2b62d70678933983ae696a62b2ab7441b1e74999465a628590d9a9dad3d48c271953f67d19526a4f3c7bd4568a8c9199a9c9da1706bb79b147ed349ba157e922dd7c10b1e83f88ad08e7670fea1b8beeb8f931a82572e0a6770355867d5dab8f2eafb0ede3b0b0edcf74ad40ba4c64e727fbb01b171b5f29565758595b7c9734e4a6f69fd49efb3fce7d57506bf76dafa6d6723075a24ce632caaf5d50ae275794de32103e7049e962a45c4ffb3e8ee8b4c779d246232d99c04d6fd637375adbfad055ab1b54957151b0edeb8298d8f783ac6a0e3f9e0175eadcbc7871a35d3da7b97cae1e03a4ec589a86a1c3c3c3d313b361fa423191da21aa8610c430ce7063f331d9e388d9c866d8f647a8d4e61ac6460d9e26537779a56b1306b351b75107678e63ee61ccd33463d44eb2bfd197e7b4ebb4df0592a197499491287ca15c2a73e30c96b59acb08fc1eb20f39c3c38c6b973d6a27d8dbe8dbbbb40bfb9846babf0b745b7f73952e90550282a82e1bd95684d166b48b0cca50a4253336adbf3fa37f5aa8cdccbdeccbf97d5c1be06da36f945fa59bdee8ebbb34d7e6a00969ebb26f5b15b6cd44b6fd8b63638cccab35ab947b3969c7f4dd95fb22c9fe5a9d7f1950e99adc631583826e379791d892ea2124abebbc6fb4c572a4a42fb2b1f9fb4a97c7440c6328d29296f9a615127219658c477ca3ad957b435a62f3d729f6589b317d491a76a884a1843954222d196f7ea232eb51a62f95d3a858ddab0bc54d2f7aa5e828c1d4e5a71dab51c648c1b4dfdab9e6a76d5f8b3f4c454463131595a46bf0c6bc4046365c1b5cde2d28f37abfedbab6491ca5eb1832fa378c3da36dadb9cea0061c14d44e565a42ca4b7b2990d403e90829524a421a24fd409ab4a3c54e0c76b648773b5a76b2d881c1ce969dac749782204561df4f4b487769d24e16935b54fa8baafd6e31a876b2f67d5247e99ab695dc7ee8143a05b542afd027a811e80a5028e8116814b40a95820e811281168152a13fa040a041a042a0532815aa045a65df47a7a054a814746a86a02714eb69072b68e7870aa0540ae26d9eac278b4106258b922591b5207341a644f6820c069993ec4976448644d624fbc98cc896644c329fac27fbc996c868d8f76531c87eb22759cf07d49349f55029208d25eba074bdb36ff4a5d2f72acb4defc3f4cdf29d2301b96e8ce3ebec0eb4bb9acb7eb3f95b94d36ed06deaa637e81644ec268515d3b789854abb7f0ba2065d156e5337e8f26eda5473e7dfbf488ef898968cf458a839f1efdfa2bc48cdb9565052210522bc9a9bf95bd45602c3cfea2c962ff2e5f27a79c1bccc57cceb7cbd5e2f2dfbfe8ddaed7bde28fca2e2f5825715af2c2f2b5e57bcb0d8f7cf2c7f45f172e9d714b5765f7c61cde8d795d7132f2c2fabed3e5f660ccc4b293e29be8bf87abd5ead57ecd5425fd60ef9b149272f4927e305523ea8cf5550948cdced7059ee4df6f77158322d9ae1ef52c4c17119811f9332f1c6d13ca278d4c0038a47128f213c9478f46ecac337434f8995ec68ea88eaa6170a9511e5c173d239ab95556bf785b6dc9bd6ba264b7c9fe92329a7dd2321888022a247532d98ba2c456bd169590a4b97af7696e2faa2b68e39604ca6cf775d7da0b8377caeac10a2dc49b376d22fd3b4ac9d646406b3994ce6038591cf95cf959150d6ce0c021fcce38379046b3c397ac9006a51ce67ed84a4f32e7a08a9698fa42b9465fa5cf5e039edf2783cf18092e9231fea5111152988e841d2a22522fc3037ec6f62df83e7b71ebf4b2ba2e66cfefe111135f71aa2e6cea3208e8038faa1e6648e7c38eaa1e6603cd4dccd0e35173bd2a1e63c97a1c85e578988b2ef1f51dd21d9df275de8fcdb4446f6fd1e3f2225fb123d4d51b25d683c434464df97214a61df8f215261dfa72152225a61df3f898a10b1b0efdbf4f6d51ed34420a8b5fb379ae8845abb0fd34428d41a116f5f7d8b404d5402910944428886d49a0b6d8b6c74ad35fd2ffd3534fa67605e06e6636050278d12f1644447889af67d2223a60b5d8b8874c2a2195192891225e1b0fcc623ea89148ec78f478f87d28eab1d50ecc0da9165470f214a7a24dd201e496a9ae5b71d5b9e0c11caaa4f9084b264658e25a68e082a475d20fb68264acada49e7b10edae397f445320d78395a03546ba0f5d06ba29dd37058585843587ae86ac84aa987ac86a286980c490ded30c250967d87a8a8e9fd212186a8984350f6fda47d9fb68e064f288bc66eca6f3486dca771dd08d1a1a91c26f0b90a8f84387252735352d83954a11e3cdb7324d5e3d743c9bdc950a12d97e6ba21c473c414cadaf78fa48e76389a1292ba41aebf2f8425b4c3bdf1a042c58a1528705838ac4a040ecb45f383fd5e398badd1a4f93df5ca9f8f678489f73dae0d708c4479f04a60eacc1e115234bd19578ebbc70775b8c7dcdb6d5dfe5dedfb63d8e3677f32c03c03f40135265b29aa1f077b0dcdcfb5d5c515ab53a06e6e0f1db2dfc60c9ae6591d8c716f98aa86006e90b53b015636c64e8584ab9024c15547b2601363fc6208e2c78ffff1f802b676bff82098c19cf383f7c51c82e07d316711c20cde1751989c81bbc317b50e66bb69817d6995a60b61df8b9ee6074e7eaf3333ae82346b054e2082a98a25b65069c28029b03cb9e085199c70a27e1d22cd5aebd71aa459eb9fb57ead4438bbcc5b32814bd552152c96d81607c5525183ec939adef71bd757a42522e0b7415a228a90bf62a9e9ad9fa306ddab9b5e586c56dac051732e5f9f042d69815c0f84a1cbe8fcb07c5214c715c422a3af551e415d2599c3f10c63244fcfa737e3877d7fc654cd893c3d9a1658f33a6d6037250c256633511c459c2c6a27a49bc779190eaa3f88ade81f2716fb11ec164531e7f142100cf5e3c0c853c96c7c0127693ce4d2eebf68aca471afd65097e222d8cfa8fb0ab060dfbeba41d8484def3b4ccb48b930938972da9599fa11820cd5a69289d22e23f161da25090c75e989a3cb93265da042192897deac0c4f9d779a88e6b4b41309037d7eb8dfedc9be7fa3aa39d0e76703a63130830c5a200c3bd6d01e173366b88cc49f0142b916b593ec67daa5b42ce64c2e10ea504e7377771747f09cbd0cf674923230368389b49f17447ce748f7060349a0a71df4627952967b83fdfdcbe4d26e146e06d0ddbd0c4920209791c8d39496a4768a7d4bbb12ea4c6eefba91a82d8ea0bb83a88b638bc765148e2359e3de481efc041bff984efa2298bbfbf8f77d4475d9c8e952bef69e8721987ba7cb8ffc9bbbbb9323388a3d5c06a56b513bc5be35ead99fa4186ad0d2b133e7321aad3dad9090cba824c9d3daf3794eed34732f43f26f484b5a62540b3cb513ecad7ed31211b98c46b0c675823da9414b97a2d2a5d91175184a98b01bd8cd0d2a31ecef9301284b3dee51bb5b39ad057392a14ee5349888bac362331b65199b695800868cf606ce73a092d4e3fe11336f06734dd228c3518bda6986d64a6b65d246b6adad3a323824430d415050e955aa85b6a325a554a42f48ab48b3a456a457a458a4596914a914e91429567a257d22c59242915ea558a916e916fb7eaa25c54ab3d22b264051345e140f0fa826955e11c5a004e8f7cb89caf921872a474a4e0e393ae438c9d92187879c1e727cc899ca51410e0e394d72a472509093829c1b7298e444e548e50c9153c4be9ff3438e54ce544ed40c3f4f39564fa9d54fcacb89aaf1a4f4c3e3cd92664666bfd9d38cc82c85990a33a5d90ab322331666bd19086627cc5098f16625cc029a6da814ec1a0c62c9d4cc00000000f3160000100c0a874442519429411c38f514800f5182465c5c42978863a1301284288a82180883100801c618638c418631a8cc0a1f77c486a2e2e5e7e34e117d9c897f41c78589a8f8c4f974c71d974767e1019ec40c61990118e17e9990a8feb779f82dbd317907e893f7f6d46d2e79c507b929d86c7af481584b46bbdafed4015b3980281a95e451f10a4b044c5b94f51d61822003771e18e1491302695d4a57d6fa448737e20694f3bd0e07287192290be1d56966efd84d0781320b0b194d9f0309df6397ff086a52a033a1c26ce9a08af4eaeeac56e9a7759ec47e94c3f02358fd871d4333f372f5582fcddad7d1ad5f041d1eb9bbb65924749b6edf50a8e927a428f687eb30fce21cc94ba1ad34d0275c9760ee24640c4ed8d90fce4f843c0977137380dbf1e4ca22ae961fb72cbb063f521546cc0dfed2fecfc0e79ead32405cbfd4331d8d16170616001439d122f739d0006eb422a46e2ecd55c40eb1c73bd2157af27ca2f82bf37b204dc60eac22a1f9d809de1541ad5f181591c5a55e89e0660911d9e53a441d7b591a8c5ede4a8590e0a7e84a2ae452a440f9caf5f0935788a5e89997224b6a8faf41db3bdbba092b24c9dbfc7582707675e33bd28e2c225256cd7943f18d8363b62f29a70b31c99a41875e2e4fabaaaefba98607edfdf175d74b78f46e81ab1aa40c58695e27e85d127a9d5c7d5b0ff36fc609b2e20d77fbeca07df33bf15fecc52fd1cdcae2311494f72e403c259ad0f661e506fe213a064dcff31080bced4485bb09451c50e6c00a1a3d313f0db0cba7db9e918762b5bcf7fa83668a65d84a36c448945e77ab32e6e5052179e90954bcc929341f4287bdc6eadd45f463237ce29bb90a4b680de02ce160e2dab83f15d53f21edc6cd8063f235a981719a02dbb6bcdb03f2756413cb41afbd8a570b3361cefdfcc37226229a0d1a37045c152c110da59c96f57040a4de2e61c266e8c5754331220717971a12f095fe4f70595e9bf52d5816e374d4e170b3d5d815aa879ec7db4c0ec2e0485cdcce5c2fc4bdf4dc16a41a79674971fa918b4a63d0584ce89d639a8a0e65bbf69596950f78ee790356fb2a4c6f454d3b721b9acfc3030d29d213e670fe0934bf8f72ca33d4609a0007ea3deecf87d7c58e7ec26126142a7a6e1ef9aa5d252a3f87d3884fff24c141acb9820030693799c508b143b2d18e636a525bd070bdcb067dba9433d052f996970e42df926956deae42a5dcdf6b73360fb832d388e86bfa0abcd42ba3baa293d5ed7b9b5600afe15feadeda2b53942a8a41a02bd0b4ed2d3aa1ee40716cbf69ed1510790c5b9ae4694e197a5455cdd1fe04c9aa58bb8e4ef4b90ac1039dde95c16a3f25c29192c49969840bbfe0db906a7faeed6d59746c58d95de077803b338a68ad7ee1afdb1cf2c85e8a6717818a7dda6a11a55d6cd12983f1b04cfe3fad21804acf2457c15ab9995a13abb53aa166ca30b7cdcfe90659754d239bcdce8ee4adb3c99bbcf5efd74beb1ac762c1a5d635b76d112f3387c52034635fff2d881d81e929aaba9bbd7c83fb5e1bc6a6ed39ea1538c44a7a5f8967589c09fb9844cfd17dd5650e74a5710dcaa83bb9dda816af0ed624d91c3d62b43140b71623aa0c66b215c2dbe9d549d7a49505af366f1278f4afd510496e6efec4cd9b015edf1dbebe93f2881ea90b99a53b5406f9def400cd51e8142dfcf2bca1c07a65ddfe8cdeec1339be2c332ad85ceb3d5d9ed8958281ce54f018a0d7e45e0070cf67cfc626fafb7739fca8c86599f7ef5e5c62e93cb6690617bcb9977b2c117a5dfb9b560132d7ffad04083ed50584c0e91e7d6062372d6b8d76e5d070c8e328f6759ed627dac66dc2a17946c2ada391005913f62bba37c483a16136110f49e530ad835e27b13c581131e44d771aafa77908db793d8582252c9eb8216236e61d1713c8520748ffc87c1d8bee01a48c5c6789da3c3d8c34ccc89ac74b2e46a46f945e6b395878e477db9e321601a70ce6a13e0c8b5b2c245b28a5af1bdbdba7c8e7a0a8e1497ba944e708c229eb09941e086222834ecd18e33439d0116482a07ecfb5adef561e90e7d0435c3eb0bda11e184555653bd1778badf07260728bf28d245037a682ed7ca5226adc03cebb2e7115a5df8602462afa699e8d83c488366fdb9f7a58448ae2d47037c466855d94e705576c822e3f8524c73b57858f0ef17b46d09c56eca6dd15df02fda30c4825f336fc36ed3fbcc560583dbeff64a2510e5ed55b5275a5ad5d85c24ff3eeaa58b0cb960fcc54b4bcd7a2231ac8c21e47fdeb67832a43c700483298c84b2e9f42e4bb54d99bc105045601ab7b21516ec6f9a4ca8069da3070c60edcef7f5e6a70115e2828abe8e7aebaa8268ca35f054f5d89c0a9871958a99e1118bb5f04a01996da0397ae4396352e9a4a2ebbb8d64c0f8dbfc6ac095e06f8e82d4b8eb0bd24c578d7723ff26e89dbc6ae146021b371316bbb4797bbbfb12c199d09d60299f590bd71095938a1a9a7a0966629b2dc1329b2a3e02f26dae6ff5a0cfeefa040c84d147906751e36fde14752774b18db5bc9bfb9eb1fed5420a63eb981af351587c7eaedd82baa8d04d168b0c289f22a3aea2904d936d5ba3cfe84491ed2810d8dffc38dfe36816e1c7c8fa265b97ff6648db60bc3ed9fc2b888e6183e55b4b81af52c3c0aff131940396e04e70502ae540221b66d4e0de68c063c6729e0650420afc3cd79254c466b57f63ee57c5c49110ce171db14a4b3ee091a5674d3a8e6b3c19c9c5414b3b9acb4161b33587f6aab1ddbd8cb77d3655e8ba395c5e80d73ef226d065a026d362438ff4377ad17eec2b5a41a6474d82fb5293670d0622a2114f986e0a2ac5e98888cf0fe1921205a168ecffcc2dffd3d9614a85c204a7bd24cad6dabe61e036b9f7e0e46e878b29c78899c47fa9cc10c684840374cfa3985985a74c59f933fbe557d4196704a863cc932e6d89e023f47138b07020dd5031cef5c2732592ef49d762050ac82e8f1ce23c6b2aace8eec8f1ef285a0682c0e06663dac2331dc06cd580c8840a447622a79bde23f10f769579d318773bb215763b0ae8214f062b0af306900649930060bd29b2a9631b24e4233280f385a16f1ba9d551c5c746b2a5600d5b829327453e7a1fba782901ba45c3d29f3b6d24a5015631c0f4e897621fb2fa687db4f81c58de107b63b4f7b10b670da60b3063a6ef75f7b19ff404d92be98fb1ccaeccc0735480f57fb777eaf716249e500ecf90c906654be031d3c00af040ba7dc0de5d4045771c60f22379a0e40f0b4a27cc819031821b61f70eae156ede478c6e2ac41fa7f1db1ec93414f8c75ec1c27395718d04f7f75daa27d5f03072adca9284bdaea247899839ea1cd7308c132732b89c240a5895bd31db142af312eb6dbcc9d3905e31b1666aab7fe24a01725114203e37bba16662dc6a6d21484a20a88f1e5bfedcb1548916c85eebf290ce362ed2fa902ca8bac837e8a5137757f4d0a20e351397330aed39bc141248a539554b427a95348f914f1358f53e18a2d99cacf3d8916e38857a5e2b0c0b0161e8b3664ce0a50982be605fc4a270d323ec41b7c96395e36fa9a7a87f8619b2316db00475aa69eb88220e1a0b56e25365c519104be171c8674fc05b76722ab0accfe5df4fbe7f291b19b8b192e427c5202f1c61488dcf951a1933e124049ef9aa46bab6151f6a894de1d33e83c91642525f19eff319926999018468554aff1be2f185eba59cdb01b06ae1e00b15a245b98a888246e21aae8b469ce9e8b4742f178e162072ba1df55a0317c6aac43b2da0b87c6b4718874a7208a9ce631f769799f17aee8198b31a3a912696581c18679481fe2699faaf585233cdb92fec381a6b5b4c3534b305c293eee708865efe4b2d23b12988def1bc95b825f6d0c60f900374cd691ab143d6907e53e60ec2713bc040a97d26dde3b8961060ba8218064ef357b6bb29b4b94dd30f76ac8fd93d115c816dc25dd4843c8a6e8278887c5bbb976b93fb548d8d16340a24eaa6eb981a4aaa17f06659fd467dc6c2bf2409485164181d7be6b726894a8899b1b41cfc55628450dd5d92562a7e0278047206e013ea4b156db6954e7b8a55230fb2ebd7d67a3a4d1d17f04459ee027a8792af14190810647d16bde6bb2eb4894899b7b419f9b3f009da6b6c325f26b30bb6097a1a6103bdc3c526aecade0b55a53d8fd4eba9eb821e42aa27f84e29fe45310cf2889969e85263cfa4b1f397644d6a97ce34e389cc490383b35366c3259108e27d5a4f74a34b97b2ce191670b9ab71ec0bd969e0df523f85a4169a1d5682b9cfbbf38f85610695e5e2fdf1c83a6eb6f409b9318ba25182fa379ab52ee3d72dd50b8cc8cf99c8bf87d564953762b54156f57cd21cff01e8d70e0561446d17ec6795cf96981a63f18bc0b7330f395404d862b3a90646873af86b9dfcfa94eafddcc285124accb28773e4cd81a691c4821589a791157be54374d04f0951bcd5b3cda806e08ceb158e30f61308809e636b2a28a699a5f8b7b0b0cc6f9ec0146fe34db6be66e209af7e09e478f78810119a438903c7a2e1369c089a2836143a3ca2a4bbc1ffe6213b1c08847a423ff5e0a1e1ac36882cebb9ab2fa3922ce5b5513e9ce1b630eb8455da410e110339df3860bfd90044e0efec007f8b57df70dd4ec94c0cd079bbb9ba2428eed4d71628ddf016c501dabca37cdae9d2a0588c4641a16a884ea657f3cec65cc82f84d8bb40016beb808bae8c73a7491f3f202bee35f7ff0250afc847ca288f3f1b123eb848a2db264ccc72f12925426094d596bbf4b02c32392a253c57d73c57a1a6902bd704883db0e1a46a2edb36ca34484ddc9d6861cabbfe526d7333a5ce21c1475e895774468735f4909cfd33362832af42ea490b0784acf80f1278c9bbf0b468fa153d609ab4fe822bf27e065fc8208f9dfc73ef8e803cc877d1fd4ce201889dd583c77cfae4d9ffcda26066f42ede13c4eb0471b9fda8c79ee6889f3a754e84ea59a271832e76f55c07dcbca79dd12e7682bb11abda79d9d21705f1d8bc6fbb2fecdc86f4df9ae39a556b4b4b795a407e58967648254fdaf892f62ff131aecb58830a0842830e068fe430a5a02d824e3804b02357732c3a498298b535dcf364bd7869309420f8bc568ea80be82c68da57f1995d7a9b0b0ad51c52f343d7e577d5978386fc23f89b5a5ac1118458f36359f32158d546068801be7a5ba568f0947f95b1a26400bcbab18c776460bfcbf8d3d3c210eb984464a9792dab5101a657ebf60e1520ad3c215f775aace10a017720f835cb08d5c2c5edb21875c9fcdddd34f425e26f63f833de7379c35820ca60e6a6201e2145c30c7d52b8bc2c5b018a6011a170fb6d8703e92b277981eb51f429de6a24e13fb16d68b60ae5fbe44e6ad8d4da9ffc6e94186ca30b895c2e04eb2b85cfd94368a31f0d2b737984ac611215ecfa688144e78eb6c6343ce3f1d4bb7e7a44e89ffbf7211fd43580c80d979742d561fff1f2f5857e351fbe9c039fd33fe71e1be8bb8f3e4ea1074faf762ce69b9ee569039dd3feb1e08ff5746778c9295971cfd993a4be54fc33d9981a16de986c5408ec7acc1b089c49c2d8ee0a8774038c036cd952685fc24f057794e901bf7fe6a9cd072eb3e66e6dac13f3104528b04add9024ba68976aca2e80f4a5ca0e786d1910d7a5d470d185df9f99d859322a0d32abc0d0121bef189738a6bd584544b45c15b82bcd7178530f684b66f2c81fa766a8952df298994aa21be4e3f96769b32fc47aeda694317bfe9ddb6a201c542a7e60a7ddbdf83a78845bcc6cb3d9be8dbb46a0611704f6c2b8fc50e0cfe306ad435ceb6cc8cfb75cdd5fea4a0793566b4ccdecd6f26b79cc7db3e73ab94ca7b88d447e71d0455e92a1df04f781e77408c56ff00d6bd90d9fe2d051bdf76f889c09ae8c791e06b938114086b49982e141292af3728f14cc405d710b7ffe6ce8fff2973ced76e6b9dedb9e0e9c1d1d7ce8f1801d12f01df571511c624e6589b6739f72a4c5e36f76eee95870e9091d97ca777f860f454489391c99aa1d950690e21c3f75347b4a21c4e5b2b9b69494e7a5e95ba89fa4a975b68a25ed1e4d2a2ee69441af248b423f59b11b6cbf1f9b8443075fec3935a620571ee54fcccc8ba538e641aeeec3c2d47a5517077903761957ab5c59851e4baf55dbc3251e9add995443b7de0a09a1f58b2d99c5e1679ae55401134ea40a55984aea82b380109215edd1e8bf6117b7f72a98d75d0c4ed5a652c51be8a5161c409f497292a7a329357c0424cf669d0d64023213df3d26a43241862be93b5209d1f08b0c8016daf4ddfc807cc3a0ff79abec3bdf412b4cd16aba173071deeda51f33fadb0df5381dd3275b336f87a3af10517de04f9bc8428301e8246b7364e6840fb104fa0837114a4fd91f82c688f887c7c1dccfb13ef71d193fe5faa34d864ee2d013eb17a10199e40af05d0f54ff9f4edea4756572ac8529803d19c83f3aadd7c53ebb0dff310840ddd22faccf4534439e90581ec495dd23a0bee2335ba7ba8ab14ff82c09ac464e053304b1af6b229a236c30bf64730c10c0c59e760194c29fbc152ffb78f7a57f32b0f8c93f4aae51656d90a5df9cfb36634c75f0dba72f0a3871b3584ef6a59ae250184e6153e8ab17feaec6433ed868f819e559d59d55d43660e27c9bbe480027674adbd38bcc22f28d6502961f4a656156c1a9224e025525eb221322d692a1487d40ab881cf19e3553214e35b11e4318c802a56c01b805105b85e6409ccbbd43226f3538a52bdb5a0216e5349e24b5d0df705303b4ddfb702d818414375b73bc9ae1089c7fcb262c3f8bdc2e6f946c2f7c628b0e994fad26a862cd3b31ff20d977a8b21c005896a42092417b02acc541741e717d132cdc84ef0e9fbe75a8556ef132234fb89440efb863893014bd317f0431e7ba87f1ef4d9a361270481527943a52e0e1518f7a9149f5ae24a73ef32f48c4c389f67b63270f99a8b2e9f5f3f7faae213852da017d976a718d63dfcc1fd8b7a67f9764336fd5218567c1c28c067922fb20bf393787d86d56946bbbe56392e7a1deab0a150f76b521a3c0c418a2bde05a52d4e7ab980f8b5703192d4223c0a7bc77f5b0eb72b23c957cfa9fba7cd70f657ee7900386948e66d16f3bc81f5f2c8bd059e4cc0cb53630f699f7fd3a5115a0b5421485baf2c08a6115626f16e948ed23c19ab4d43da561f4e206ee18fd0e8d12779dfcedd4bde35d9f58093899b7b41cbcd3e869a66dbd125a20b285b60b780b6801dd2bcaae936aee3d85a29d87d27bdbebb51d2ead03f86a28fe03314cf6b7aa32088bab9515609e60adb0bf5d4e43002a7dd36376ac8f510db0b500acc256571877186584cd12e8e47a3eaf872624db68fc790885eaabd69034951a3ff04cabcd44f389ced8d40778dd0022136399319573b4ebc941e4dd26e70602b73af06b9df19b803d582b9a48f6d83d716f30a75b1789b4b4e8fb716a45a6d0c4bdc49d71337845c45f48f50fc937c0ae2193853601bed043a60801c0dd3d739223fe77066170abaa2af986e67613b22cc959ebb65721e5d15236863b833667d8a19ee0c0bf14ed5513bf3158c33129a40707878673ce4ba63ea0da9c87051797027daf658e982e39f420ec4428512a9f6ae70e681ac436016ade2cf730110dc327f2366cc90f938c67afbc14c9d4c7a0655fbe4ed3233d68a1b13ac3d1f1287ab867d662df4466811b5956c231bdb0534aeec741ceb52c25368133853835730e269b8770e83eb63b320a70bbea12c9c696408d985aea84ad870f082ae807997e789a26bb8c3ec81b4cca55705edaa9bc89f974a02daadf24d516dce67f877fc9ba28c2adf27bb56c73d89caf8f09eab82480705150a2315aeb313bad0d8fd54e6b4bf1f74aa78454018b2c03a2b2b7213cf0797954ce013a9d08ea58c78128398dced8fe9d48e3fa8c64e152b4d7c882541357bd6233a235570935145eb9b80075db95894474f148ca7ec9730aaa35b3bbaddb4a0a6a1c8ab4871cf4cb6e00a3c56e9b9f408ac16efff47f8e819922169244708ed9e680cd3443f1f126e2520ce975d9f42716f5b6d3a1a637fe673e6eb3dc88c26b24c1ce9aca59d3310e139c2358a7dfac9ccb1dfafb9a3ece5516822d6f56f63a849349599c360d620806347b20d9de12d8e5dd0403ef973a8c5cee877821330552ff635135212844903e3ca5c3830a8a968cd8b50df5b6985155658add8b7426d4c0423b1d97701c273eabe46779d612582a2a41cb42dd0bddee24a2000ec62addaeb22804b44d552840b2b32dd1c054349cd67461799edc419132215eb35286487314039fcce7f63f93bd5b3a80150b392c8c338c68924ec19a7ed8910a56b5f74298056ae6de6809d62ea469c46aa7ed9772d0ad2d7518116b747f7dccafcd69a382182e4ab488361cfa8172b565cb4e4d40808616565618ae280fe45cdeb22149b23972e4863d5b1844ebc2322d7df9670012c5f02cf98e856bdbb54ae87b7ffad1b335c55a0009d35da9ebcccfd5d1444e08c768b32a2df33f6395dcad561544a57c0871952838af92d7a75f634996861ac2494be428056c406c854ac639cc0c9fe0d0f91686670853cc9ff6d61b2e35a26806b453a552f71cb3af650c67ba90ca3ee0aa44032548440cf84e15336fa55a53d2b5ad10e6ca2de14faa9a542a0a73c602e443350b7232565d87811ddbeb2564c4b282d21ca6a20b8ee95ddbf994b319dc8ac0ce3e5e93d29540b8e9083275e8c50991b0859adca119f12597a93199d44640d0115a8081c88b3d69ad940494499b06f832a4d085966d9e355f6bd570287a8e9794a1f340b9e6860dd4675f10ccdfe7bc84db78d07ad409649de73a1327dd8389db8fb1c1aca89fb6290895585036b0cb2f7aa1d09dc4b4d062a008d145ab43e866398f4d2be6417d65d752def271aeaf48cd77764ae9a7aefa5f508357f6757269916bc88d5942df568cf8b8c855ebd3d29bb9a5850ac0bdd5943bb538759f914ecad658884b5e7af1d4d99e322a5b22d9ebfda616eecc039709c7988f9fdd8ab7390a96bbae00e2ae3870be523af92ec8b8ebcba51f456ec449d4a00b62c5bb95b85893a43e96ee7d972dce9c5e717df473c1c71d3d933c523edd0ec991cd0ec2d16740b81693254981c947b26572e4154f33cfadba5985d42889b941045b3981442d02c47f399d4b9019769ff1cce0528bbe31d938d82f517a9550282d342bd540b2ad4b09cf04633d4af5ba5592e22ec4714d6d918f262d6288302cca3e925cbe112acca853b412ca3588d81c46b6829ab5e6b6519c68a2a51b3442fb83e55cea18090d1076fe258d739c220a58078f3d001fd6de804db74619daafa2042511767f55bd8ff295b26ef2dd5ead718d3306d8af6ee9cdd9b8e49778de356227ae8ca637031833febd2fe2b2d777f732a650ff5a93b301f799854385e14c5cb2bf920b7d80ea922962d056797a36d84839589ad73de70b6522a32d3ba24d55c65daa6f412d8b757289cc369931852c40044146408239a8ba28e15fdb7684907460bab58b141b8984a2667a48398e05a4003916e8fbc7d4e62928eebd23e238906be63b85ad64b20c1c751ae632254e707047f196a79795d75ed9562132764abc7536ea9a8e80bbc1dc57d3229f381cc34084ac1ab3da115b82cc54721b329c24026fb59f9cad314e2b87fa6c0ef2724731feca5385037544c9b576c1d6d7b2c469d02ac77188f4642a25e7064e332d84b40b435a192296443b694136e3491e0530b42f0015ff1acd0780267717afdb41c3909893f382dc5580f794f49b7b52adea53cdc48f97840bc7166b27b82f20416a7676e53301a652bc1dcb9026a8231daf081bfb52a2477c611f91bef733d1989abb9b537deb9c277923e080102f7f8b527871ef2fd16b2d8aaa629b8e396ff0e45dde8d116ed4af3e3788901cd29d2dfd72bd43fdde3f7b51428d51550d93587c0c23fc91c538e8edb92ee851f0bf45d00eabb858e40727a33a1ffc889269e0f8a1279fae032895cc01d71723e5b4c9c28da739f2934dc913c04b14437dffbd2c814f5db88343259f0ba9fef3cb833725cfd9842016ef03e3e4d85e8cffd29821fd36b89724c710c728272cc198598166b15b7234b8ebfb9f6bc046c0850e85c8c3307b77ea1ef66096492c9e2968c251fc4dda5593e42f99e0f8e2f9cc87c4c960e1a4fafb0d28c2fcea21e949bdb913e66bca4ca93d9b65f3e64b11d3aa47d63e33ad8086463ca788ab364304a7196ae1674b1df1d2432bd596211cbfb2c73260f8f389c95a8301306f798e08be91e9665f19844d8e6b2b1622813543d06693086d63995f602da5561e136f269120e9df6fa35fdf16cdacba54d29c28272be8e55a4c05d4a95146fd5cb3e46bc550373b67f45e17f55d46260c34abe5c6af6fec29fa74f3296e7773024470df78cca4a757d52e27808bc635bc2512be5d56d6afb1de9b77ff0da55800b8206be062ad59ad56fc579fbcc8cd391d62caccfc46fedddad1c750faf5762649f2a0303a00a29de3b94445284ff0e89cea1b047280cfa5540f8fec67c98c9b2b214db83743bf04cce40ae5cea79655d373275e67da00323f6629ec25547137c9db3c24c90228ab3cdbc0b6baec07eddf3baff4b7099a3018bf7b2f9adb0ab784e91099745f9cd64630816760d5bc5bd9d7e28822c9e642f2d32ea59e9dbb8b5e06c593df11fb73c105803267dc759dc34bf41c8306586150e6b6682b10afe201eaae786cb86006bb4d03a38b2adf5df83cd1da51dd43053bb8ab567766f0411a9770007f57e19fadeabd81b69b0055f9254522d6f25874d0c76baeca8ab5ccaa238c8188d9ddc58ed7caa4d3659e286c69ac16fc27bafb0e594ce7e84041161bcfc396b3a3474ac2d1ce745529eafca3b01fcb901e8d59fdbdee426559418ce39a8a392a80fb1973c16a964b972f4afb829756fe783600fb14976e5763818f3562b51d1bb61b9b2ae78ab74be3eb040595eb74a852d397da071b038316d7681f4c2add3ccc9733aa7c427929bc8ec258dbeace06584c06f73eddd203a6d5ca628ee0f99929a45c7e83f61e50c615fc189a48120c02765bcefa4a7829982c5f9db9962792a300c45acafab5a9dd15729608662bd51b04e08f1cb2ae76054b24528ec04d566dc19eda89fda0035b45412030cbe5bffae01a75c9fd0417978ea7845f8501df92dc1571ba76b9422cc07f952dd35270866b25d3ac3942b284c5136c75c5c484ecc33fa071a0f771ef666784d1f162a6d992586633e2c0a073952e902075028b14e3f07c14b954353656ea97f1b3074c4956dd097b7505ad68370321c9f7186b01a078c586edd9e5501edc55a5057fb303d4648dea4edefe0c0e26d61daad06090686f335720aed178b508e708d15c1be70d1e1882a3397bb8309efb3db40b107ed61c95f8a92d3eec44439c49a60d21734c5d0daa62611e29f380559a26974cebc1d642dfa438e63d8fe2105b16e3e2b41c441ca448da1d2a7bafc4dcc3572822c83dc17af422492735fe267ad0bf58fe0a38c68d04ab5f35eabbea1c7dc79a33c5b3246be27d0783d14fa1aaf5b7fc46806d44fdb73e9a275977f01870617114df5dd3793ed254d8d31b91331f282613ae0c6834612ab5a9ec593e22070ca92f233c6bac1e51cd199ed02c459ad4da2fee6f18b5f1fe3bd44192367fc63fbdf55902dfc4975767f06d50c8d24f394e76e718d58b58cafb05bd3c389999f7baccab689089f3638b7e07e328f1ba8e58833222e79c9b218d92d6f50dbb4a9014053e3eb386c34896123b75c4e9bc4e0c0ab51fd0001f16eef90245115998a454dd20d05ba0c4128778d4bec62371c2457d3b5cfbb14b12d972b0a1ebc89630c62ffe2910b5ee598473464a438b3e5d2253185571313c52b73336fa0bf43f552ddc3ce961ddfbac19c0bafa9285e01cc9674c6ee4fec1211e075f1069d9fd34060def80defec14ad113d8e00f3b23d2f2c8e68b3af1122352aa6e3611b47abd02db2f8a597c8796b02d32a7c11a02c148263f844b1209ef1ecb2eff1d82345059214798700765e3c0da5ad34b2ac08dc839a31a61bac8e7211c05975461429c984363a5612e460121dddedc3e5850c7dff4847d24d61f1ccac88e36a0a97d754ee3e1081150d0bcf894f90cf76775e0a114eaf65b44129853d6273c358bc41c6ca18a275b899f0ce03d7a692598f4d7b557271d602a46cff89b2fc930a6c3144537fa89d9700f1319923136f39befbe614953361eb743aa682b8f2becd37bcd94cccf34622f2100984a9212910f10d58ef58a70e396377cd8c838948404af04d033f9ea67563cf4751dda86c26c9e941bcf43c8fb4b7a9ce1b79ef51b337097f1ee82d2dfdccb6b147cda7a4c264a1d1576d54670bf933981bb04f456826b70eadef1c4caad8587b2afa5ec4f98ccdddb55bc1583ba7a133311187ac7bca784b803dce7491379f5adc927981f636073edbc0298669d449c221b8223df1a723dd84f1658b6ccc273a1a9780ebde3c902c074d18d0a1707061e671773667d652e5b182fa143ce74d81c832686aa3a138a07ccafe8628dd833c2ede767ef11291c53f0102b136a40452edf340635218f48cd393ecc2909ccf5185fa3b2ba051ce1062271fc22c6ebbf9074271f6fb41edd8c8728c5536ecde9c4a8ecfea759bd43bc0cb95c23f863d147689001094d3e7f92f3c5ca1329db4fb33ef04f0ae5a0af44b30f0bce42adab6bcf0e182c87d0ebffec359b39fb46514032122144a8c247227792cb7e1ac6dfad93e5baaddce2b393e299772d424b1ef2a4000073748e911faaffb9d4621ae9fab6dd37eb10f52a72170ffae59bea24921eede316e554215d1c64f6881cc8ad7f508901f782e707306511ef19365b56cd136a56e562c39c3e17a200d64ae1fb4833f2b4e9c08c5268b9ebf6edc0c61f8a3512d6cd0cd81d5bb746299fa81f7b82dc70b12310f88eadfc08baab82adc09d19b388f9f4ff56020aac4a706f98d0f58fa930b36da21b8c3aa9231673b52b38ed6f026ed431ab63bdd90da398e4b6b10caeeb1c5345d15f4a732938d2499da61e44c992c2a8ef076691369440fa729ee118a99f7efe7a50864e98c419ddc9d1852fe830c78c092cf30604e736be8fc4c07fcaacf79b6eb4bbf7f880a659169239b20401e70652352a224e7f2881c0eecaa0f5487cbb4b557eb687254d36c18afd88e26e7ebe70fda17fe9b6d839820bfa1b03ea60e3e2059f4386a071fda32c6aa120f7d8fe4f9574ef477a721f5c84e5795f8dc3b3513e4b5acac8553003ae5587424121ab5d7b1a5826ecf24080f3d46620460858d08dc1a4e9e44dca4b0729eeb2fcb5721db8e566c45b5b88073467cf33ce01f604d023f6b663f6d10d662b921105b27af96c46d0226c3df73ad68dde83347351b187a6483f7be6ff4a2e1f64d910653101731fc872682010ecb5f49ca1924c3710331dc8a47c97c741453f9148b05d5d0536386212e958e4277d15c6a465840d47793a70bb7aec42e8cca88467579783acac58a5876b54cb9c65eea567f08a9a31168ab8e026e99c3d3c31bbf56b98ec6e3812e091915421529d7c360bfc2cfd5cf4d3a97389bf76312c3d37e3dbc95b1483bea38c076941fe1ed28ff3e32d4a200ea348d4574bca30b1aa722b78da318bcd3253093b5d57f74b8f10d014e43871be006bde40f3bb3b0ef011f21a51817e248253f328c63edec2c248f8ac077f0793adeb6f64120ae64d94d45d84f854938b306bdc88a639554c03d8fca9161d1a3bc7d3ef2616c56934a3dea20053676fb19b96c508fbd099cb7607a8ff289fc03d21dccb96f4250e6f114cc8462eeb449c052a7ab4815e51930ad0ad8bebc155204fa7aba4032d353f9a891953ec48748eaa354a7e6a7c033274b35c33c5d8ac411803f8999bf2b66fba82893f7d1480bd3ad989ca0d18b6ca7cdef45951fd5fc00659e83334b98d75737c4e8ea673fda4e03eb97333f0a90222214f604fd516749f347f9e0e7be51e12c5cc7d2db19f71f155e5512bdd42bdbbfc45c3a1f357ac5b7e55e24560e9002e2bb0a48497f5ac63c4a38adf188850552c00d8239ce57499e0c8859063e9cfa48611350ae4623d68e9e029b1de51cf95e4d01697c5426361216afdbdf06b9db753b2a1fe2fd7d64e5008cfb0612b4fda25c93c4f808f70ce304adb350c915077c51a43935746aa7c97d1b76c14b5a55cdfae36f51699dc9ac910ff9a7545f4ee734033d0f4c68d0cf87a4cc40721e87eebf94c862a18a8896c430a16c246a81395ff507d072a743e202aba1a0498674236d6424e861f014e32d02b147c7ed3796060e2625377e617dc6a6f38699ce24bbb359bebb8319a6f429136b684b8bdc8afba2759b8e5e892a1ef92dac74a3080d9a56df0c58aa0e02d05dd90d9e34c04403ea936938452e9b9a003ceba04946467144b9d2ee83868c0b19b2e069e4054edcd352dca13fb9cfdbb5f8dc580bc0b21b4a2c4d6d8f9f2a6dc95008acc2cb04884ca8cf44663fb5a9780ea41d33c72fb8808a969de795745a32476aaad9ed72ade955dae0f1d94420b75277578b02ffd1b4616ab007f0b947a06c37527acb2da043b60b213a47d97abb1c342c91df60092c56850ada8ae2e6e9d418e64d89482accfb26019bc2769b40f1dcd842f9e16b3dbf4e10c17b33555e989fdd8743191cc1c2b86982cd5b7094b5e002a6c0d476f68a321f5dc436c0058fc3c16ff74476a8fb65b14e59ab3bc617d4112efdec0a6a4354a1873a8a57ecbec83f7d1d0ba408d64c402557701696bae032b9bef01e27a61a2f03a041d86043592dde3d8dd545ebd4d6771d0c83be744da9aaa0e50112a83e75a7d4f3791d15b1ea6317e594d887e17f2a307ed12c5fc29a91b222a69178582e9b9bd82ee470840e3be3e7028697bbe10729debb301fa8f60e720ec90ced54a86f0b93261b021748d3cb517277d2319de12d2d8753ba8b328d52a8a4dbfc81d758c12c6a8c305a75f62b18e5f41469bdfd87e2f250b9c6c9fc610cf7b9d29fc9a2332723f97b8dc99866ebbf7655ecd8b023d74a16a6226674a02ca229b34e9bcd923cb22a9e7de8f17bbb62ba6b11947edd4ef0aa892ced7024f92cfa16593c87e8715d18599aa55b96ccafa2bb98420e18f2f188b4af3a754225825bbbb602c11f00bc246b8ca6a5a08147f1772a6db06c43644a59eb4755ca0a95e6e3ee17be3a56c8d3a1337d1d17a1f1e9891bfce895fb4489399cf2d58156865a414db95ba3ea69b0b2a3492354fbc4ff823f0ce7f523d0ac23f4da45de909341c13714f7bdb98a997322e0a6980a73fd2f9184409a412c642db1cf0c1831d64140c873aff87cedf1d57a62168fbbeab244b1446c36dd40ece3fdc96e40e8d240f091f8ddfca99dcfe04e9f5978f3684a7b4f0e432c8c99751e0eb01b09a621b6fba6e8847527143693f0be96de1fa8d8ba3002812bbd2637f6bb8db20f09dd8c3b84938ec387a274e94f41c93a71c17011dc136229ea9d13894e976be7c0eea5560aa9b6c08a666763deba56905b80f18c351e38a078093bddad919731ec20abb8e8b3572182ebbc4edeea6c5a1f57e4c39f875fc4753b597addba268103a71d812a4e633bba7be3075c0cc0dbe41da421d7c9dd91b0126927a5a7b58ddd19d446ada9809d939da18fa3d962d22ce263804e9407769b5ed8261c408d0c3f5f489f8136c5530a826c82c3b830d74fe8d681f9a682000087716fcc9fd083fb08f9b58c91ab03467bfd070128b5bacff7fea1ca0e716a5ea7daf6201f21d435efa2f228ccda808a6bec0c25b6dd0aef8d586866b339f0ffd42e6b6eaab1611d349cc0ada085c881b75388804b748df67899efdb982fa357f56ce44c623d1fa46168c67ff6992951fb67cf4cc9b52f703d1a9ce2df44876cde1ba6f1a0f10b5df0739662fd9f415a5405e115e7892e452a2fb7d31cdf75ed21601c4863074372d4081161288f51af5c361419fe55aa0e516506a81b705d940f922908e07ae62928201aef48bd381b6e145932f8155037c0932bd2674397565a73de3836c7483ea6726b97c06cc73970546ecc7a0f22bb2f71737a35eb9b41ead1935437fef0e95fbac301cdeb4d6ccf300195abbd639315c0eb06880a942ef47eaa0badd3d364c1b75294d12d6199a957342790b41f74476e7237ea7996e0c67cccbd09aa05e61b558cf6b926f857ba69c0137caf8f9929f14f4be80295c0402bfa9919c9400e0b13c57f1a916105c4b4f089a3a1cef9369f66d5e71c3f6eea81b3a095ca18df1da4471135691e58faa846d9983c6241463cba34dfb1a4d4bbb9520d346377f45c742c1f9e786b0473aced3215354a9d94b51e91ce8cea40daa9b1b593cb4ce31ece519c10a4e3743e8cfd75e6bf5629cb47f0f23fe82e92524ea9b1ccda0b3092e1cebcee83659ded0ec2139e01129c7ff636ba7f67e8792d3dc43af5c7898b0ab96996548ff50c6b6c6ff1ac34257ab48eef2ab801bd6767ac936e51a1de395200379b6d094c13172092041552b6b42defcc3b6b2ddeb973af4eb00067a2dd750f30f007dea2d91fcf801681890e8fbaaf7188cdf42fdb66efef8faaac401a7938a656275a44eeae31500fdb6846ae3aa79b6554333a6883a22d6f882c676e2cd5922a74d93a385f540041d5804b0e27ba816d919582fb00e057b0d5aa09e6d6e8845c616dfe310c409cbc4e0054e04c5663663eb55278762f41a367ca82272f9b1bb464b56938c9e26bb62c9b054137277890608de9abdbfc7b5a551531bd02b5dc55fe59d4e08cd0113a4643c8cb93a079b24fea664ed641f4fa95d71cfc605d7d0cc0f3f00ce48177b8017a4828ccd5b0375c5ea7e9d4787aad76c7e89caec654f94d46718db806c04d0a8a680dd16896953575a93cbbc00ce2a5abed9a1387e0794c3f30368d8380e55df829919916af3d40413a3118f25e25e23b04c38b2f774f6ed66312d8bb03ff8e4027b513b2f3eb4ea9a5a40ec25bf5378e9bc225fd8bc4d3e353f76bfe675abe9cb10688c5cf6e80309916e4df347d4550bde691bf8e1eb1b4676cd744b82ffd93f64f66241f6da0728959ec57a29a5e033a16ba5bdbb9d265c487c09229ae479200ca21b9101454b85e2b70520c3004e161b0ebd53c0b6963e1c5719a05c2a0190b035a6a04bb38b9b1e93e369ac46856c158f26be9f1622e5a0ce75bfb6e4bc485cfacf7690008342544028a1f38fd85014b1c87e01294ea9310c4af7171736eb766882c10e62ab7997ffc2f180954a61e832b7c6f1cfb8c96c52d04159a9ba396ab93d7efe8a779f1b343aad8caea5dcc61b67806614c84ae6cd9ea89d79ddfec8b5b823d36c16da9debde45d41a7c83144a4d0d60911d617f6719b21f48273c48382d1e042aa61b2e5a8159183b4fe15bd615d07f5596e36da529301bcecb4972cdd6e137e12e8faa0224bd12890a62ed63e44eac1db0118f24b553a5bf00f83d774d1ca360992d58d20d1ddfc8c465eb770170d6e3410ba0eff82a6e57fd8a03116de175c05c001a21224a461bdf426194e284779ac70760675d2e9bb388413186161a9d724200eb0f7a0a89735c3de2b218037368414e8ee6471a4bdc5e4468bbd4cbc9d24c7dbbf57c079f3ed74e19fca7212222e4182aadabf3b897b9888122b7a8f52e5bb5ac7357747fc04fc2184f08fc5657999f6a1d7f95bcf1d309a0f5cb1a53700c4277db3f23252ad5777208df81abdc70a4e808fa5a1fe10058025840d797c9cab14cad35fdf099fdcd59b8026ffdcee755f29b71911947c1a2d52c709fbd1a2b32c531c14e302dfa054d07d97ad1626be06fa09adf2a89feb1249f21f1a59a2a0b7e6a06cbc4553807d941dc5a459a584d28b0325b79f0c81d87a1abc0d3d010a7bf00a07fddb6b4400d060a94e5da70269e0bd64999cf2f1f6fd2c571b6d5c529e01c1bd4f67895a977c854e39e5dc1bdbb3ea05825dde06561423cdd3d19e1955f4ecf687a56fa1bff3d361613e600e93c51009aeaf9c441c7a89a4f0811bd761b6306750175ab263470ca5b11c0291784899cdc4e8b40c01b9dca5135b4a20fd5933439e736a2278ce486bd8e402fb61d64e9721d191bd29753128f692a83571c914f8e466ca3a314d8e8216d55bdad6886e9740cea16384cf24621434b98383c33ba4fd38ba4fc4ae59693361f7b895026e1c23ccb483999ffc916b742377e2b7f34a67479a72ce2be3f8b4e7110e6350b1f958a8f35c9dba267f0f41b9f9239e7c7b393543d72196b5e0aa28ac2ab27a4ce803ce59e98fe488f611c8007be0e1ec8ad82d0a9ad4583513144a8aa1983e977beeca82f33ca486a76e4a98a92f43753c74448a9e4b531cd7d947ce0869990e18651d5b83dd5f5bbed4a91c90b29cdb4aada2e7cb917556675e69c56f86345850710d83a5691003d5250c28b6c138535d8421e572da87346505784b6c476c74f3f1a53f1d6009dd955996323e1eb6afb7b51ef3158a6274ef2ed71b9d00a36430ca61e602d3a09c07576988d76c556f0ea21d83fccd851c0c35eec38252610dc1b9d986d797fda309df265eefa5d5e4285c04168d94de35e5fd745c0bdc9e1d54b2ed35121efb4ed99f61bbbeaec4e8b82e97542118df2e9bcf0cd3285212236ca36db19cde7518ab85167b2a47077ed783e94cd19b4d3e6882dfdcc85c764ba71e8ae615199a64019c2b98840271abb75b752f21edd092ff29d513dd12599d10603abf23098f02584832b7e373ca476fe85162abbf3a71146025b9a7703dc532ea40a051be7fbd9855a42261e7525fc8ce8282d677ce5a324084b0da3b5856aea0ae00625863865ca83ec12ae8343fd2191aad22b12a32271ba04604ecca3634704d9a4f62178576a096a988128c9ad85abdbde2642d41a31861cd4a300e3417a3ead2bc2a71542732a6721610cb20dd61e85d812cfdfa1b3a5ccb3ff392735e349cd3db0433d328d2a7cf9013a4f6de557f9f336f9435873d4a07cab2bf59513a06a49ffb85dea70f6b8b6f818ef0a3999e3475da869c401bf0ec969d9f1abd9074bbc37e20a81e679bfa2b8bde85a1383e73e252bd0a7867d8f7c47cde633ef1388b2b9f527f30089ba5979eb80141f7485056aaa2b83a4f85a325259a1e167ca970a2ec8c313d76a124cbf4a5d7541d3d96e8c8d9bf8d8b8a92de590f8c1c9ca88b14d33961f72ccab0a1ec70b911e38acd8a6ad375fc80f2cdf90a520449f6a77c67230212e4c003fdc77ff90433c818006e326ba792fc9332c194fcf7014ff0a563497f606fe11cd9a50d7842085ad69d6055397bf1e9d28b090ca33d649f14b49dfbf1f50c7c98c79450cd749a232877ec81201493844293241d5bdcce8f44908809dd3f41c3fc2fd6f94268c9d2d35fea9838e1086ebe1c0a49daaa15a0d34b438fc915fd4e4a04bda142ee3fe99af3531d0509f3316dea780da62586ce1d4faedf2141de2bb250328fa206cd752d0c55e792cbc5dd961e7165b050c5ab5100c792d3215a54fd949381bfec17e64569d1ef4373e4d3ad3cdef3aeb4b88562e057d7d9911bb6cb5e3450018982a5c4cb3d8de0acafd5a837d44b02f0c1ae84be2cc01e209dff9f72b9114e62903719de00b83c9b413127aa98fe51068437ecb691e3fdee69e7eaf13297c8841035fb6c541a5ba2c28ad0acb1a952e5feebeadce712800d4a92dcf770da7f8d57539cfe890f5a469087fa1d903a20cebd0e44a0da349b5dcb82be4a30d33efcf7e95aa30c70dd2d82c3da7c32b6798a6a9b206e13f3b7a9106e721fe38ef5e748bd9285175062ab05050a9fe9149d5082dc83791c6c4bd1c0db00509d98d388492c73d225ad23a69c15d315840c69eae530194844060da6d57e2293f8977fd87e22480c566c7dff3ea409e3c14f9e049f20044e7acabd8ef7c0b8532a3963239b3b7e8b6f2a75c32391a3b834e45777db18bb1195ca3403f0e67181954606dc76f5e6375480a7849630801be437a5ab92a70a19e404200c5b509ebc6f5e1082d3249beb2f67bfd01079338be67cc6784b191d108a9c8d5bdfdf381ce97b707fe6112164d4a3a17a99ece5247e193d1dde66a61ea13bf83a8650bb81d33cb20131fc83db2c4451f090216c1ead5ac458fafd25c260b605f3bdafeeddb8fd256dc8aa1b76a171d006408bfce0857f0cf38a1352bb61062215315e55a2729da8c4cc00481dd8ad670ed4cfcec2ab3fb600bf776e8ad1b8731947a6df60e9961ce10da8e4908ea72c758bec9c358d418cef4b69c9a53debbbb009712ca900e0b19a07848a3d6a821201653aa0820c96833f0a0836e4fccfdaeaf7691d5e9763c992437e27e04482d670071c3d83e73f494cb7a46beac40ce8d4ca869d9790c53c001f2ac033253e1c470b63fc15c78e15d6584324e8841b579a07ef99224dfe43e7e22b18742e01098dd8b0de886cdd20757d28e2452263eb4a9413548f6e67888508132fbed079a0388a018925c0d518c13f8b15c898b23c1a0a0de99e16073d0671643d8e3dde36055a2399db77d78b8627ed6623ca06b16ac66a188f1951260fbfbc7b3051b5bc47ef0f62ee318f7c1e4410b39b8970d0e5e915222ca11552fd60fdd3742fd412ab72b057f46f691b465bb61c6245130032293449c8f2a5c63cd4a93ac46bc69077a80dcd0a9f39ed36bcfe795c7280543b5990d3da4695bb554ebce4eca57e88d26a43ad516ac418a8aec5b257c8fa1219bfee0ecd02541084a36981b5a615258095123112ffb88c65bb2cc5f0200e503200e12ccd0d8f451814144ab62aaeb82c2e1c628b1e5a4cccf085f0ec665e158cf7552209fec7e64d923e9c0541e98c7142145d644e72fae5d6bcbe10d86ca6e499f3dd9182453334eab18ab9c6929336e6ebea0b16a3e4d38c661b18808d61fa691c767761d4678b3eb4328a0cad4a811b60a4b689f681ff324ea540c9ec36ded09d7c709ea81bbad5884e64f70f5cd0c3c81b68dda18b84a982500366787b68a3f20f2d2e8237ec2eb794bbb08fb417fecb0bf28df57164f0478159e42d073309355d1747b9cba85766f0028f6bdd2cc2585341765d7f14581d21233533852bd1279948395d0ec35209f2a0b1c920fe51c09bb0606fdf44051f4fe42d1cc745ca71f893a36f6d470eb19edfcc04c62a7a03a775f5c3fd8d85960a5d0d0432042a3a73a85c30d0324e07d53580adcec199609861318ba2207dbfccd9884eb609b0b249148fb629fa83291d1fc6b88d4d6eb0681d46df9fe378f1fce691aec5cb38f3db16511f0daa186b79b185e25e3236996d2369b685b4bddbdade5bca94a40c880a060acd0af78223ca698c2e156878cb6978cb596099eb3a93bf64499f85159cc5ebb3af7bdfb4fcfa8b652abfae8365317eafed865e241c5708dd0415c221283f85df25c00c13e63fbf25fd8f7e38ba86807efd92a50b8511c28409f332ee1a723df4902c5f7f4924f6659cc93379d099fcb5f54d0b3364e9a16c2bb2146548da1333521e15c9410cb724d2225d442e0178b8a2bb888822391b46692d772580d25a4e692dd2dde504e0e14e1a135a8dd7f0d2c74973d150e77ae1976aa44ab4e89234e9daa8d8f21a929c1396224b4f24ef6cfa63bb9d97d4001e8d9109ada4d4f68c843e8d91096dbea087a1ef7c01548a89d3df75530563f0c8a0e8bb5960d934c2b2f92de77c52a1f149139de368c6586b5401a9acb825fd7192676849d7fce998b0d895c3c7d4fd4553a989c3944af94630f78aa2bfbc8c7d396baf3f260ee7edb3ced2a8e64dca29b57efaac1d1240083be82b46f354f5d4f4943e458db6dea0f2d83987d4bf3102f4998cc008a7494d3e4d7e32915ecf4e3dabcef5ecc76ce28cf399f8d954aa0108975bd69f5cfdc00c6e3989b2dcb2830e260e7de6d32926e6cb0e9eb9e70ebab983615d70cf3ec493621229f14efb0784cbe51bda81096b9f3404b0da8f5a4f2d3f4de57be24cc0479818b7466198389e37d7b98f3cb7a4350ab4c2d10a0d98385ec9a7189af7460ac3dc7122b94f5fd25ac77ceb7bee681fbd61df2038165ff53ace2783d2158c1421e309fa5f09d539cfe9fa8292520b466cccb84a5cea5ec629b78c3db30e2a7a40347083ccf8c53e62b48bcf45a7953b5f7d5ba4400cd3880a0cea475bf0bcce03bb98aa1057c43591a582829087e88054bd2a2d9e864def522a3fe0901c6e0d9b1e151fbfa0e70d7d3bc88029530b142fb86af08ae06a08ec72b4c4891200883b917e6ae1597a6693d2d1115f82e0ea65b3ba20055735333fbb2045b1795a34bdb91ee6b5a1d6d6b66cf7909e36b6b19069a988682888817eb8c63bbcc4d9a8edb9e6e99dae35f15589af872530a0302c0933631082c9049325beb9f1a7e3818381818080ca06a25b3c7b05ea1bab1424b463839a48fc29e211ef52909257746ddf443711a9da6a111013e592254625ee442a994825fab304a948146bb5208eb3419c0de26cd04462f2e3b9e5b13c399c57a5ee6abd2dc773ea79d56a4618b2eecb4b3d083ae2bf50a73d0f8ab865a5463ef07cb79fbc0faea08150182b62b4e00517f821298a941f2855a4d0ac0a455660663ee3594a11cf31cfccccccab6faff9b6f9f6eff63bc505df2e027d8fa08c29487cbb17eaf4ab064e88a80031d1449330656440c8070629e8401866131511fcd05286f0a6c0f0ec1cd8dd2de58b6f1b9c2b8541f146529c98e079765739e3bbab7715c1079e9d3d158aac6064e2541d7e8eba2909521d3fab510f37b8f15cc154500399e256da0116973e3102c14e95fc85c32d69d20749fcc1c46967fac5dc41933868e27eae76ca2d5145ba9afce083e7ef997ef0ec34e90b4e92a1ab5425d8bce1489a447e01f3ede58fef292e730e29948bb983dee68e761d48dcb2fbe629ae0d87a8be0655e1574f9c0e9a3bdadb3d21bebdcb2e81c8c4b7775782b9a3cb2ec1b7532ee6cdbc4d1cea99ae8adeaa526389dd049991d04641fc7cf76dceeaf8f6761d36b11c21b1d904794871e7f328ba1c1a80d22ea15a3266caf5f9b29f462408faea89fcea584eb70be9f658b7cf727258464fde71ed79d7bed0304b7d1866694f4f6c87f17a9ed771d6faf4f242b3d002bb28dedb96492a483807494f53067c73aac0790e77092c70640b0cb3fe828d1a6e127e59eb369edc92f67c8f8f9122b31c2145f3e887b2a703fb373f21fc22815fb69b311db58bc0005c67589fe5111ddff90ee511c23795669d8edd3800127a24815fd669baacc03726b7ce4211968d45f8558930ccd2b0f3af47cf2910bf3e1a9a306504b7f2cb7a49a358f7bcb7651496d9d2c87b4e29a5947a2607ea12aa252910c3acdba8e156eb41f865dd3ab9e53c9a51eb1488655de5ad75eb2bb070846f28cdfafc02e6e7ed4b5abb994303e09b49b3d346834c477c73ce396705780471b6a016897ec6ee794bdc4b4c2dabf6bc65554aba609d3a25cbce4f6e428d1adeb98db1a46fc37d863a37fca320a532379c8eaa1be42439283870780edbdbc4c121a324e7c34521bd14472fefc7b897dec7dcf0927f15c3f2957f9dcffd1cf62463e117732f5da15f8f4da0b06c3615e2155c93dfd8723dcad37eb2945226414fab3ced1b61c2dce0595e7e167db904a959e40366d1974c82be922ed4f023b3a886f78b854a26419c7f3c84b89c0fbf9805de4f1e41dd15e51af275f2ab71905ccf0db7e4b2f4705958c6253734c432c63193c371e4c0e13870ecdcb149ca861a0a4c487b3ae9a3bbdf587ad08db836fe51b7195b3072f2ebe5af97db8c333e5fe4e4978ddb909c10bfd8c66d3c87b99e8963e32fd2da2cfcea8024c952e4801cc9f27e0e929c38c8925ff41b64c9cf129d65435a2c7307bb0d1a6e398f381f96957ce565d3084a1496f9b3572196dd70f68a8565de371e387b2fb9bc149fc6e5e57d1a97cb697078e9915eded14bf16978c9577284714be661998d1aaf711c648d93244f8d8f244f16cfbb5714dddd8371328cde20c9b2869f3c8773ba74d12d4b4b12a0164b594b1b16d7d3636ff54b7bbb95365fda5bd95cfa4ac857ae94e0b31d4f64e5d73d328b5660a19cd19d89237464d64e260ed303cfb48721917674f433e54b1a64f4b365369bd1eea217e380e2fb3eca0dd66a2dc7759de7999a8e413ad34f40a7ef03c150bc73c7a4e3cff4e933774ca7d3533c29908e35a26a767faa187b855fb3bb9b8e2b2c4257786686ce58d4f4d58a45675aac56abb5928969b554b7d56aa55aa8b0d56a757002e30b75a61775ba2028883b3d2256c2e1738e3edd670cf3c5d31b8729eb9acf0e27f14defd4bac90d9f9f4fe799f26992a17c3adf626f892c518dd7b011ea44e05b0229cc23994e9f8628883f6dc7711c6b2688ca792693a9c78d6fa80e483d947a80d9f1d133e5d967e9230a552a7b7c090ac1125ffaa885e0ca973ea0f8e0f1e1e3e3e7d94d1c05b2c432930f43dfe9244e2d420510aa5a84bed0842f34e14b5d935f558dcc0776673a79226c01b2345302b2345362120143730790a9ca0f1de9d9a4626a563c907a20c18a7820c18a64900a602b0092ac00430520eaa4671997dff23cfb3253e2d7076e096409c8121030416a2ce352a1085b9a8100094b48912210d910c188e68ea31359f217f28650c7d9103d97378464421d8e8795db636a1c654a0de31bd2912de88a0c8b6ce824e34296a57d401f3bb786292d8169428e40c0005922c2ca846458bc78e1a42f5fba49378152f6b8d100e2791a40abce57a109f5ad7f2771a6b48005fc64d16368fbf2c70f8fcf4c69b6f4a3d630feb133426de98b084a226c11a148042e22d8466832020c4740961ac8d28fcd08642948ad61417682f004e90912e5448a40e45911fc7ca71af0ed4885f46f9421c96c322eb2221990ac8a2c48768594797996c5408645b6459645ec71eba1d4e30bc3b807189910028626084c8e353e2c4229f4f844f99972a5ca6d242ab21d7939a140c42d671621ef856c843aa7ee73ff200bb63f8e29080ddd9d86a5109402500a5352f821b244044c0ab5263bfc621be38ed346300521660a507aeed010bf6e46e72c0c63d316dae3d6e3d623a987520a3c290ca5d0c337322c3d6e7cd4e336a10856d85b8ef2920291a045a2484ad43002f080f294979468d23e1ea95c9f21036ead56abd12e59b3627d491f79d153a359b1ce3363132bed3338ed822c3037f459de9f94464e9286cb0dc9d24279bb2383ddb14aa34de25775d6b81aadcc68871a563d66b4440dabae1a6dd60b8750916ef6b605c682db5ef60c6151dcf69ef6e91bf6bc7b7d94eed12dd9c785251ee9024f7613658a84df05ce1905cf9a3c873b13fd9f5ffbc649fcaa420dab6eb32121dd6e4a4a7d6b9f12ea157e55a771eb9b94579a1a29ad95aaf75285895177eaad61f55497e604c3af6a77ac93697726ceb4387c65b2b41eb03d7cf57aeb7a6fb75f9a0dabb3bc2015aac4c1cf2db9e7ab5f14da47173729faead58fbeb20d6a582dc1edabf7adca0f61b715fcd2b956b743d52d51751b54dd0a55e79ed56572e21b6430ddd9a15cbd7436bad5d99deecc9d6e51fc5a057e75535a9823748882364390046da6bef49f3028aeb535acdd664342badd9494e8ce920428979db9a31d06c6650d4c1c9e79d3799b54343131ac92f5256be0dbbbd13461bde384eeec7060b4e3d8b9ecd55d1c67bbbbbbbbbbbb395bbbbb6badb576b7e7ae4a5231791ea5759d535a475effbc3bf7fc344eda374e5a94affdd4b5bbbbb9b65ddb4da337acdd1b5fddddcdb5edda4cb4131c4d2ef559846f7004353962b69579d6644e0c9761dcb9ab492a5ed7719c531ac75ced283e1488ee341fd12ba616f38b49036f98cd673d67e42cac71347c2e22ed4c68d5270178b8aee99a2415eb94e622522bd94e694dde8651da5e691ddd69814e3a44979838d3a3452f4a674f91bef87c3a09cb62f8a781fa865192ea4ec5e531c5a5ce4d81f0ce4f0bda300710977a0d4998d2f53aaf9e579357a7f5e4d52d306f669d64e258af2aafd7abd75792e8e57299512c5d272585e1abd30e04c2e57a3f89803e5f851c3f2520aad1aee77087a15f52097b0afc5c493ba82295b0a33ebf2a6f57e1921840f975761589012b9f6300749537e82a5701741549aa80f24b266958f5b9942389d3d048b150217e554f554755d09bf58d05e897579217f1888b67f25a557d564f3277d469544401d3c863930c484f7d84daf5d7c4b94f1d36713e67ee293329c828882270f67466b93d41ea9792e04bf0555666fe9a3829a421b8fc341a224b969f4643d49e6b94b335daa4030ddc721a5d69f2447cf969240411ce4fa321bc3c8aebbc2b97da959bad3b4a25f3b85ae9c773ddd5adcc1dea30caad506a228ebabbe3f92a3bbbc90b754ce37caf731bef6e37c2431ef070996896c365b71347c7dc31be66709beb3a28e2b27cc64f41df9114884acbb9910afd69181852ce3a534b3ee073d03f3a96b328e83d9f6939131a8be5336e7d865462c5922acc788b5422fa8c2b6939cb99d0605ac4915be5fd55fbab6dd4aef592fefc9014888398a739b239771ef25abe62b38e06354996de7d7619f74b96af578a2c6331726602dd1bbf6e2cf9cab7d3e808fa0c3bdda150c62914a852e73acea31cf528ed38ba43a37c2fe6970e97fd6582cbfebae1b2bf842efbd0100f44b57e80faecaedb618861ed9e2587aed0283310dc76b26402c49f9c8a3f91d4a7030ddc92f6501fd2c53ebf8e3e62fc6a8fd15602c6be8bbe0b8559c7dc992a33335bda53028d00e5a12c41b79c6094b0acc63dfcf271dda08eade771bec0872cbfe4294739e72a04175526e22d2cab4a419326a46139fcea7695152f24e157fb0d2eb7e42125144c41dfce2c7288990acb399623e11b96b7bfc01a27c33edb53a5f8590a0a12522ab2c215d30f41b61e1e1e1f1698a19b59641ba17663be9d897a886f660b906ab51a0c4845cc21b6b1976e5bf9e7dbbb5d4658682426a2ccec26f07350df300fc3da79826c3cdbecdc2331b518f651c397e5a7db6230f453fc3249ad567b24e2af46a87df5afbe7e96317aa3ee1367a4341e67e538ceca8a8a384b3989bf087da5264fd5f5d6371d4c5875cfbbb73b287dbc2a2df7057aa315eb5f77e39b1c4a54898261d9eca91ce56b65285f2bfb7cadde7194c37cf5ca930bdd52e9d1574ac3e858e7a4167c7556621900be3a1d614ab7a4374a54e4399bbc7cedf40d934ad83d57624585cf4157d27ef272c63eec9f132569d869661a5f0cd437744748c3aa2f2d2929dd6e4848365b51d124f2bc7babc3c0a8d58caf307c1d278d4358179f05bdd18a0ebdf1ab3a57ef71364ca60377e258af326d8bb2dec16bde0c99b0ea26934a55df9242e68eea5edc92de2817f4562b9126ed5d1be39b3665aae8a97f23d4ee18f394fa0f109ee2e09939b2dce955147590203ea531942953ee3c907614c70d77ce548fcf9a1a13d63c59aeb5b6866f6c8ab868119443f8c3c58b152e5e6ab6caca8f4b165d979e38ec3d42984b1dc70d97faa4ce242c8c4b3d876b4090e1b2532ec8761d7cb943983c13b18cb5858b3ef73c2fb9f2159659cfb9c6377488c7c73afff014d97d3b8d8098f256886f2ccd7a357974c9664b1b300fe6c52f2e405e92be589707aaac78b6bee726d4f756a5bfe779739a1c7413597ade38bf863a74249158146e84a1e36a2c633b4a188a8e98b7ce3b13a7ffc52f1bfae43074106ab7498d77180acb5e3cdce3c332955b1f729dfb6658dd34562329f7c618efb13c329dd38184ad87c4becb538daecee7734352a3cb43d18f49e2b31f73a803fa8b651eba25cb246f726f2c9380a30bf4cf3d1249bf0bf4d987a40b2463fcb2eee363ac888504a8bee29775170a9e9bdc44962cbce7f367783d3227d6301bb3ce8d35fcb2ceb5b7ce3cd6d9c73ad7acf38e4a45515852365e6ce62f67d9ead9c686cf3584ca8ed3ac53b1a4ab04a6f11261c28449a231794aba309d92aef667e26e03c59dce01d075b5cf3bf317dbe0a924751e0d51f0a6f79d549f77a38e18bfac11bea1196801490dcaedd927333333bbf5ba1c1f415c77c52f2431d242d7751d6cca2d67b389c34abe308a686287b6e4a42484169a8c129711b42532369a0c69a5e3168e7c4340473937aadc1b4b5a5203f8f8cec5e7382364cc47ed765eead0314b21c5903e723071cbd9b3b76b48e72a5791a5ca3b67f25f37ba86783778cfbb917f864346784f35ba8670de794732f9195f3245a2461f46e60e5685485e19822312fa26e751fca0c92dc58ff9f0ac25d944ba8678967471ee912eb751594962a4050fbc3f2afeb6f8d86db0dc4e05fec004b51025659a851215d5a6484a2c2ba7975fe1da929ebf7cdfb8a8cf8bc48487309cc0820511468471068d9d0af5cdfcd285871938f12169062db0294a6810391085e1a1295902fbc14a13b4962fe971f3e10b9ae8acc4e505116d890b0c9a129134c221b0b74816380476cffb26d8853a7788e7d53b03585f815fcce3f39ef143ad0cc51c3d77df5856ce9b8d65d3a88aed6d9667bf482c9b4641b667bf5e586651f0ec3789659d09d888119998147d157d3a89e88f1863f354e2ab7cce1b95cf5015437f64c87bdd04fa37071334d4517d1f18e35fa8a38af98983faaabb5061796d8f224be0475da745730ca55aad068310cdc2b269e443c4b26b54822da8f05e1bcb8e5866d2b90176b2b5f9ea9f4da8539d92b5563b5aaf76eccfc101d94107d6e655ed6bda0e4297f54c657f5b935b9288e7996cd4a0796ec323952c611a301f68f7f271239d3bf8d9697353a61ef04ea6aebfaf515adcee2827930a02d57acc715dbd6bad75722b68255d99ca175e30552dd79d3c13ea3be34e7e9d4e23fdef743a9d4e6d224d2637795e7bcddd9cafaaa48e4c53dd1438328dd2506338ce4a4eb00b9a59ad78ae505f56eff99c2fe6e6a4976b4d9212851933a8b1d42f5a95541ad6524abb0c2f64586bad9542832f6368d1dd1da53b8a91976e2cacb5d64ab1d65a2b458cf0897ac52b2e15b17963f3bee6f5180913c7f3db30b61f38aac030764aa48c6bddbd1dbcaef3a9faae39ff6a6769ac8889cc226b478f747bef55e280a8a1d9bc8af8b4d941c0c4a98e1269a17732cf246400445238c08d31cd1d248f1ad89187b4b51424e9dcc14b984edaa8cf34f2ff89b35cd76a22e7dcd1fcf4bd91ce97e5ba7b474a8be15cc559ae6bed30a413661d35566e3ad9fac71c1033abdbb4e92bce3daee3dceb389fdf751cad1c89843f8cedf0eaca22f8fa46459bfe6299cf9775af3e3bb2bccf91a5e782d32a3e104ad8f8d36926e75e29cf1e3c76e253e2b611f3a26b5490c70c2ef51b2ecad1e86868939be3e7813cc0b8a7d61797b2bab188080f1e5ec4d0a67f29904717f7aa6e0d0b549fcc8d5588c2f4f2945cb1a89049e49190f3cd7cad2ff78a3f67d291237307ac8b489bfed1d000e7112e9268b84070e24460c62f32082c0b570de8d597bb8f4dbb546ed0623df0e0e2529f3768d33f1b3c4ab20d5c76d59fb0c5a5de75a1a14ecd4fdb0ba2a8790e210b1ae59b339c39fca54218e3ce50c44f27c0ea735941030d7ef2ab6d34dcb0c59d3e6d33d820f6c5fbcf19ae78195c2d6e7967207a1e5e6e0862dc727af9e9de4fdb0c566845dc0cdcf0a77fda66a8016c9ad7a4ecc994c10635049f0dac4390d88ce610eec065d864f8a264e3a711942e36196e45d3e6f4a77ef1d4ab48eb0d0fd1d5539f6de0699059346d4f8fe8971ddaf3b409750a4404ad42872811dd52b390e9526bb55a93af4b4c974a7f6ab55a13eaded0249a4bb520217aa34a4f7d32d053f0c369f3a10e1f1f06f9300c439f647ce83574ef880f6d1930e3c3d09d860ffd15430a3ef4980c1ffaac890a3ef49c9d0f65d0f2a183a14e58bfefd3f1df17f3cdcf3f9bcf670afed3f1df778330fe0b6382ffbe302bf8cf631af8cf6746ff79ce67ab71f19f0d86256a7f7253a87332adde54f32693c90640bcc90660bcc98b37b917ea98dcd58191f29d73a14e57f39cdb5087ab356f7d9af1b489c9c42c75b46616117e7229a71720dd2968da44f625859282a651be1c81e34b1534e8a141976f7f91d1816f8f9171fbf6590e1961be5d88d07719647c7b91252adf4b5e7cfb0b497ca899e1c58e112c9b466724bd510d84d069d9e4f235a42a2db4ceaae879f75291defbe218ad21c5be7a15af28566f3e952f6e0012ea34ede2843746079efd8ef185182878769c5087c5ae76ccccdc3f421dae5594abaac3c6973e8c6630a4b483d20cc270428c117c05238baf3e0b75ea4c8a6d03b1be0975ba320e18343cfbfc8205cf2e0b7558f4000a661e4945de1721f8ea21843af56a9164e5ab571fa14ef57e3cf1828a1ea14efdc1d3c5cd0b24be7a002e097c8e5022892a3c70044f162954b058e9d182033eb59aac5439d50000606ae982862e90e0428967f76008ca850d207c750078415d7470e671817c097ab716dc6c78f61d17e8e7ab0e4d9aca74d41f5fae44d882cb161c78f60f4431ae78428632a430020c307e3803ca501131c8623f008527d6d303ea52810c8a64e0850c9e3c3b0c3c40510f193a5851410a8272f4dc6aa812c30ab210aa3f58e1b2e381b5822fcad282065e0d402f5d6811c457e7e07a8002e6a75abe04b3f8c2c757f7bcf4f0d573dc25ba89b0a8e2892c46f0d56d6eb0160b0e7c75c7f1fa001859ac2081970c0025412bc5af31264d3ce0840c25b09801660a5af517c771cea62a7c4615491081b2649d404e327cfb18ea34578162d671138320b0d879767f2195c133238e3b0a21842f75c00086180c8440b201a989af7ee3870ef73e75c1160f5620802f27172f134c15401c185501851554ac18e348cbd1185724f1d58510b9a28caf5ec4c80ba0f8ea2dbc90c446a8536b3f6c00c12baaf8c04790af33cb96c9651e75618287519719183d6103724106be7a6c96e3022b5f5d0891222eb07df51a483f9c785e8f2f6d4a1d3e824c71031b5ca270f942051565e8d439b445902f6b5ab081af54b4a08baf2e4ed1c45777391327408009e30b28b2fc500493187ec23c01420848061f6895d63a4d40044d31ad7c6e799fd2a8af6a8a5e20bb52f43cbb284517cf4e23885a9d38347455d38a428b2225a280e2d94517e28956141978f699508771dc38aec646c7136204c068cb1416c0c0022884be3a2b86230b1999a7e0d7b2e6892f6d6c7c7c0dc2651e7db1e2795487427bb2f070855116f186afee2938faea2f2a5f3da68227befa6c0553be7a4eed2b91155f9d48111ebe1a6919e3abb700c5577fc1092ebe4ea327b2501e1f10144107bee600c3c491a13ee616146cf1ec13053c3c7b4ca8c338bc34e18418822670f81f2210e2155fae70beac19fae1abd77ac657268c9cea2002226c88b57fb9c2e9328d869c44f1eca128821be4006659a28667ff84f872ba444aa0e0d94df7eb129516f0f04cef129da0061cc42debd3a7bef2f1e5ea04347c1d3ac10abe3a17ea54b1bfbe84b8e2ab93c0b2f0f62b08bd2b96d529562620a20b1627cf7eb11c3d7b15a59cb1812e4a228b67674ff4818b5a6badb556364a02cb3317a009d5d4a9d3a77f4188aee8344e8368480cd4388d778cf78d012b2ad4388d63a0868b4e84448552a8e1a227a0c6693c873f1a638e2834d7a8840641c1050b6d09fd010bcd0a7b170f2cfdece281db97cc829f5d3ce081e79feeafeb894f244ce9aec0e58444b8622126ac5d4e635412bbd166609a8bb4c27e223968eed852c908b888d07079ac6f6abcbd657cb25d79cd486f0d6baf31f29cbcd3c9fbd349950a679101c6928201c337fc5313c32d79a7ab7765799747c49ff1ea342e7a3bf5c2b2cfdb39a8f4ced4224b6f662cc21a89f0ab5724b5c990a577f46dbb64298ea2d78c34ee1a731ad63f44142444238eb36154a8ddf356b846da6d27b29c36a489c441e5bc71d0e5a0cb412580e157f3e0c03371680f3fb01885431216db1192eda8c876347481af516e6082bda636a594524a29a5944ef0d239e79c93b9d0e1ac4feb9d53a52457e7fdf38934916136cce432d021b77e64e7f63077f023c1247011696272cf659e7f861c497fa45ceaa6518915cf4da4abf3495362725747d2fac5b9c33acda3403f39ceb85dc64aa9e52c5fa9e66c912ccf5bdd7b4551e57e7b95ed43952ca12ec8809318d052aea44390046d490d256829d28ac94b31e5d73f06bdf0ab3a1f7d4d39ca2787801a5b896da8d36449c4e4f25ce5b9e7a8ebd795a03ce54c682ae7388ea394a2545d8ca35c45324af416e8a7b1e4764cd72251da2abe7a8f47624fbf9a971c125550cbc457abe5ab95a2bcef0231beda2ebefaa458f4edd64b73479d341e505c94122b2aa46a661c03351ce532a412954aa57215b9c4e5312406544ec3532ee335c6220dab34a3cc288e2f1b6485260ef8d52d1696b1b748d61925565450b98c2b89f119972195c8b8ca693ce5a54802b28586f140e322adf438ba2b67798ccb94af162964460307e8d2888e42a150640db543e362cb533424bd71087526c44dac3e3b3ca43c954a798a5c82019a72d15164751bc432910c327c750e752adba074a09d826163ab2105cfccb16a860ee7d3a69c1f9320f7392df540b2fc4892d24a3da7fdc82cfa13d89eb333b9edbe6e34596badb55ccbbba971996f67a0ae21d9876164e826150d4d3e517ca855596b6bcc5bee394752a93199be96a9ab1e78576259f3b53c025dcb8ed6ab7f1a0a72f2115b8161ed27a029fcf289c2553ef689352ce6f391f0f917b3899ef2eb9ebf8d5f24b0ac5d3499c832e71b49f81c0cf291242479341dfb24dd3869e5eddf6732993e57b9892c3f3f390d4bf8dc5bf977f2c25067c6c390755a511ff649f2619f9e630c71c50d4631b0a0055e68cd50c0b852c50d46d420840c92a0c938cdc775271a1359d2e0a0f040a1f94e5ff77d3ddff735ac3de6f3dc447dac6db90d75b88f2cd95a6badfdc6f9a6ced49948175a7edd8625b44cc8e1d7e739dc12d2372430ecf3f6222e32a4419697e6f3135976e4f7912d379136719cdf1a513ee3ad9cb522bd92ab7c7bcca8b228bf28e754fb509fee3208ff70147e4d5b115fa44d6efabeef23cb13f96af6b9360acbb826a888865d65785b886aadb5d6d58955ab9e57a4868a0d1b35c82535bc867f356aac50533302cff33af4e98dc0abe3ac89bc82016859a05b6badb5d6b2be193a64410bcef8e733ceb255f4af2592a5f7a2abaa07de9558d6bc75fbb938ce57cdcc780eb7669cf559d1cecc7c3396659d35636740d05ad606582c67d99567f24ce0c965fcfb54e06a8625b25a2c16e976b4e1acd89a4989a91669ed0c6b8635c39a214beba0b3c8d2ba685de539dd1a536e45558c7fe11553a0051b65415718da8e068dd89a615919afa1ce8cb3fcfbbeeffb7c3eabc59a69b1481764fce4352c41c6841c196bad75574783466ccd5852c6599ec7a8527e53a8702ca997239e35799de538bb01d082b2ead68234bcbac155fd7cfb57c772227d7de1eb91c9e5579ec3b72f4bdd25d79ec713d708bfd85724951ab59648f85b7e726ef9ad1e7857e2aa8e276f4520c910ef599ec333e36a7425c08653b9e1a1cea985849fe593c5f21cbe31d66c904b6cb80dff6ca86083ac59a92b5f9147fa592c74cd188461eddf385be2d7177e2531e2d29a127eb5bf56f436975635aedc12897d1b7ef5ecfb65dcbb268ff1d3c99d3e15b2a12fdeacc812897dd9a8ddea9668c2dabd3b4396f75964297e074a0871fb0c5932f91967ad582b9697e2af586459fdf31559566f5dcfe99911e5b5e55f986aa13cc70fb7a444ef12c1ed4b873440a7427d457fc56635c66ba8c35af9e9743a9d4eab99156b6645ba101363424e0c09331a34a4489662e93364f96291658c8cf11559cee6c78c9dabc61398fc45796a44911ebf28188a855f5ebe73d308d6db3733722909c3daedcd4d52f3ed312cb854892635b9e5ac0619eedfef1a97d7daf323f2ca8c0f08d0adb35a666666ee39e79c730201bad463667e96c077f14d9b7216c9c8c8740d2debb966058ffa2641d4cbb84c5cbd92360ce31bcf5eb6be4e1b1b0eecc07b033208840a28e37120c85cb1f0407e8d2b7e5d6a7b620678c113aefc802b9bd5054170553305b5050cd3501646f7fb697b620b899e44e121f1a489a16b7fda9e9c80e33c5b7988a131be927eadb5d65aabdde2d669b7b81ebf269d451c25ff9b4c9b493aba8690768bcb84163dd8b5980fd7de2cd3ca5c0cba363310a64c0140bbbbddde2ef5b6e0e44af07dcc1e3b437924fcd4c95a6b73aab925413f8b9e9d83e152e722ae9b02c00bcfce33711eeb8268d3c9daa21d4e5fa5b50b4b88810557f776d40b576b87d616ed80aaa72ab4d66ac340aadba2f7fee3b0b87dfb8602e140108b49a0b67f5ef54cb646f4a6574d2655d3f877d7afa4112c6afff4d5fd3a4b1ab15914b503a0f212a640a60c8c500750227dc39124308c65d4cbd9c5b34f125c9002991dc7414e542f884bf3d3e6c4c8d3e2248a1313d7f5d3e6e44a124e7608a55cd54f9b132749609ed0008975aadef476086a1497cb55f145714d527c4eec68096570b99fb61d14b06da708cb034fc33ccf8b4b83879f1bfeb4eddc107eb1430308e67a3f6d3484f9a4dceea78d8625d313ef7ae29844cb860e3c9e44075035946e2001c6558303920d24b8907139e1a98104152b1a39d86a9070e2a3b921c885441257d400118d98f743cbc72c169b41f1022589e67a3167247c5433e0f5bc4b43100d42e24562e7b27a845a42614c2b19966684c240c99c90030f4b880b2f66672534c58cea04197e64849460dd1b78628488f8523b432aa111a0503c4b57488798708727758419344021d4115bc47cb6f0082bc05311780414a1e9041c80be239a00bd136838c5bc580f713b1fb3586c564313864d280cf36ae86198e726f1881e54dc0933007947e880b2276800a93b8206d08833c2136cf031e28b1374b019a1850764842d3c8167a761d30bc00e91d24de9eb77b3bd5a3b8e99431b6ae001ad20e3dbe1823f8d9e74b1c3132e5ed18df969f4a489a54be3a7d113a0199e7cc04483274f6af06486163801d3733932be2427372b4ea620794c4e9658dda9c589dab373444b4e8640c5e0a48776d213863e66b18fcda6d8a2d0090d2178fba9050830cf5e6fa10e97254647c515abb05d991520a19040794a3fb50c297d989da02f633fa7df01c272d59bded442a4c45d5c4f4a68c60e0fa82757f5d368e7c9c90697fb69b4d3e4a99faad070060d3490d17526ced620b11995c1a7a237957ad984eea298a2f34bfdf8010208b0a75ec27e524a337a9dad5c53414eb575210da334624e01f080497a33298c3a8deff9d4bfd4bd5e3df10445774f3a775cee547737aa6bd86d1bece6beeee475f7484d26d13b89dd576b152b37e79c615714d829cf13c5ea955f22df79e714c24117b5d65a494a45efeeb89baafcea1983aaa9c1376d287755d5984bc9227307d32e553b0fe5992a18038f3981e2442a524f9fa9e94452fa40938ac6835d10befcf1d3c77953c47db6ed6abb8628afdaaeb651a9aedaaeb653978b8989a9aba11bb0482dbad4d976b55d65569ee8b198579bb5d956312c2123cdabbe233d0f0250e2fcbcb1be293261ecb6982d668bc54ab05f64ee60875171a9cabd6b63dd220d63378d45ea2d52845f75fa172313832a622b327126c734acf8e6a45402f68f884f9f92a58b48bbeae98f3f997826afea071052e648c05502fd59e9b952a0346f98cae6fb3e9bb27a4cde4602f59158fa5efd23362f23c395c562cd84ae99725709fde247bbba059aab531793447abe0a73885649af61224b3479a2d8b566444eac6ec3bbac2c2c26563e586bad5883690dbb5a87a5519bc68ab4bb6ddb560f2ba6309daad822845f3dac9082c8dc91934390d9cbf93575e03679a1cef46699561f0392f96c4cb775615e0bae54dd17f5aa75dad4056758eb9c73ce39a7a72e88eabe2a70ce4fe6149b6262791c747129b7c20c0e363f5d8c4d79b09972d0055077b70dce6d7039c4b96372ded65ace7295bb76a18bc8e9f3ba9377639319663b1eed233bd3ecfc34eecc689d7f6393193c5ae73b33dac99374ee8d93761a4d396d6d5bd285b626b780e7f73f0ffc3ef08328ee37cb49c2dc315d443aeff1389e36d7101c51307b47558c0c381b7580b94308bf60f085c8dc51d67ede1e49fd8e1ec96ab562853333332c3bbda9e35ea4c9f1ac7165ad75813598659e1d6d30207a246c03aef0d5ed58dab0c6f6723ae75f07a61ba8246c18cc8a542a22110000001000a315002028100c878442a1509665691ced3e14800e74964274541e0be46914e3286490018400420800008031022435340e80ba34902d1c28bf4792769e96966dbf6965be6ad92ace07cd017ad71b843a5a74eaf78f6925f614d86ffd691cce00617d44c2e6b1e0a333dabc6257ae930d386a910d2e425e86b155e9dff50d74bce8220549aa8c6025717f4e7a557943971b50fa1c45812f910bd32fad66abd40354a0db3979a96fd49050f2aaddf73830d6d0ad0f2c0f55f3c6a144e9108891ba461e10da994ab765ccb79127e0ed24b0c5f528e612f364888f207481b460d5906e405deca4ef17e25628e10c89cbd4f48cd93175734633dbdf616e0d364edac8189ade03105bb030ecd5ca1677622d965c4488f42cfe36418392c0bd72cda9d6ed0a6cffe13acd0d6911569f63a9513fc51f60886842ac8e4893cc7eb77911195b418e370a84ee11afcb267fd5098d253f87b579ab035ba2b4b0c218a3d4b73e49ad03460586435a06ef963ba8e5e428b2b970ab8725027a711c6874abd215aaa2d63488f11715fe3457b96e5fd4e8433d82bf5897f010fdb539f5622d422c345ae9a09d333be699f720a257ce14d9f6f768e4ede5c40811528e6394fbea9349e98b0760265c4082d9179ca530860453f408832a296f604383c51314dad02ded649302ae04602f38190f252c452f44a3d49ac50de724733f4589d015a00acb1618fb56c6544209f4f7ad412ae2f06b50332f805d1c7be11bb7e5050513244844ea82ef340acb1ec10b24e644a753c57c529c761ca165376fb9fcb34a34c097730a06a5c32875b343c3ccd4329b708804760226b940e5ed3cf0c8c385894c03d810cdcd2f222decbf22a20df4cdd57261c7b0310641cba55c7055bf3f1e1ffee26aea8ce16a859e199401c0456752057b1b6044c0f72df100220ad9a9a8900bb1f87a01a56d53ac3c2aa67201fdcd6f88796803f90a150c6da5ed8fcb896011ddc3a616a12211d4b239093f94f867d5c9d444b0132fe2a0cf3015c69b9d322a326ac70692cb691fd740464cd68a7885052ffccc205d9ac1f2052b8e222b953dce022bdff0e3e84f611e9dce82cee85fb090cfb024e690218714a5b334e07267badd1f4f52c305b34bd370f9ff1c08cea5c90c99689440205ab02f8602268a94ba60c56207e3a52c45e9e0a644d60fd0bdc9cf564e1dbbe118cc75a26e62f539e1011e279a94e36e100c0a120daa2ad173fc060ac80420c3c0867ec0dfb86abfbb9592ae772b348efd5f0a02b765478ed6a231c93c2d8508cc981bf106390382897ef14dd283918efc9bc41e05d79e3643212ed865b5da5f7c47d899f7f47e2748773e8653fd65b26c40c19ae5077aaef3b4bd2f766a44e7ef0326aef3697f34cc6ec8801004695c3429c481961e1951630c895f9583b0f6a3def20162eaeb44a715a153d34cf54ec57a9762e09969866dea134222465a0a7cbe629fb8f69581162e965d85c8f611e6f4d88ce43e831a18b1aa0b471fbb31734f1d03420f1850a43f6bea54633ac8871b2605309d8f011c891382b0a92069121d02cff088ad4d7bce0c8f837f3dbc9dc71a5109ef9e454e3449f064c48324b0015166e829b95222516018386412c60e0d45458aa11af4a0f4aadcd3d829aa883da8f703bd1eeeeed5a92feece450db329993be1d42407753dd3968bc1d3d88544087dbb461b0ad036f5779d6001b9a9f1a7ebe6c64364a6d7c933b8747eee2149f181c20cb89d8e0d6a02b9b8317aea892995840d71df820a1d0669979d3a24eb05e57fbd2d457fa20415aa1bbf2126fc36904ff679ca33ec82be0263fcb0c153320f817ec4a465b1087c82c8444754027ed636a7635235185abc39d9705c58a98bac3d028923f57c06ca873205855767e307e420d012a71241d429add35278e64d50f5fb1b451514fbbd7969ad68f1bf2ac24d1402d2b7f697a0023d019944f403f20b5b094a031690232c3622e155086d0225b681a0350dd3f72ccf6978b832e99ad64c22bf21504bcd01642650e71ba481a04c3a49334da04e555fc1f14681df5b55ce05e541c97327de9540b8c7b45d1eaa253103116da482d4990ade3920ce18753b803e32892075a050dbc7e5db40fcc1a44efd28e6cbe3f89ecca720503b5b72cd748c6da65e139a221582bed119dc4684daa0a7e127b22d541c0d04bb63789d7276c249aec1a3b58f786d371b0c6a333fab84be8e09e455ff4a522ec2f41f2a72275097f076dc29a051fe3266cdab84444c955a10270b969243d27bf626ae922c41a2bf32d6cd24820f6c520007e9722f97978529320a3e2d4bdf364c0018745da96d5b8d4f95341861fd42c57b0525097475cdd866a1d544ab333a0ba1e2e88d43b38fa0e680c9a861694af7fce432dbb350871183cc805bb39f39b53250046e8b2d88d232ac1d0b2a60231f6a70fd5bb3f588100814d242bb342b6133ff56c2204955c15e4034894fbbaa4b0e06d4c984859ea47424e989a6eca139560af9fcd97b5bff5582fa14ae465028f36d682576894b55bcbcd75da654e2efb1c9ab23ea4436f0c0eeffab4acc2c97664de70cb1c2652fa2efdd87a17145c25b70c70580509be2b1a8b575f133d5167dd1399cd903a7218f5be5659f88699a5f429cf882a6b427ac0bdd73e39ceda7855b446b13ebf72d92d9a77f6e4d7b2aeec2a4b8497b7080e0c78d42e106deedf39e0490d03142a69f2191f209f4efad569f3f843970d9a0fb2849c419cb9a9b2d7057986b0101e36ed72756838dfffbc37600f65a34cb86fe1a3d7c5871dba387a24fa4f01e8c96a129a249a06d451ee7a60212b9a751e9f2818ec96a351f2bb621d5aed287288d1b78e96c30815124d6b154919ef0c662b779557e7b8e783d6f007682bec6420f875091e6b25405e70e14b51dc55a1e6c4df45b9848314aba3931da88025562f120b48e366f0a04e5bd567e2fd31d9ccc96c46ea6f4c1a5efb5ab0e052a8ae2e68dd4252ce885015901b09e9f82aafa07805cdcb662ec51327efecbcbf8ced92dd9551911c42a77ab1bc80fab74408a27076fbd0968dc801d8d46071f48fba24f1675d6bae8b3949d40ec3edd357cc92bdd0444f67c77b256cfb13937229a8ad8a3151c539ba710c18ab8c99064ca1987fec527cfb177a580fc86702be9562eca884d02ba769802be0853cabc93c5209bdfe56c72736b39af38e37906a3b65b09e6a61590c080e8c4ec6182cfce910d254e4d09e9ba05ec9eeaa0aa154e1bd317fb579c57bc2320163ecc72078aa3b008ec064c04ea13750d06a31c49de0be0cd22d85f5fc25ce460b215b505415cb2988751bc16b64194ec09a14223ef3279a6f782bd4ac119936541e62475f7093c30247cd11278e3ce97cf1a1f5c8d68af26f0b1a4048a3cdb35a2c9cb42b469adfba007edfb23a9aa5ecca349331eba06030f86dd910ce1dc343fb8c6d3c2277b33cb31491b7824360aa0f9047b94194ef3ea563ab548617b0bf5952c6bedaeec4521e9f1a8f94c7dc1e9157845ebda1fd602631be1d1440c1e080e7c2afe6e7a05a65baa8511d0e30e7da5efb2385e88f29da751b691f16a6202f9f43a2da2daa19dbd4f5425a6bbf9575d5ca7370df53bcb0d65118fe2a8f03b42a1ef6e820f3ebd7c9019b1fa9c6cdb361e2d0b29331577282d5dd42b32f2276d5b4e5099575357f0934b184ad483d8e27d374240904543989e69714cb76bbe3fe646effa85b10f8b10b5ad055329a12beff15cf60c94fef71c0eee591228cd699605b7f5356a7954680f55643c515c57690ea067e04a57f08f92aea409c9a1b55b85c3c92cd387f8ec775a0f285c1ae1bfe84be24b3ced1b6fe001b7f551dcf35790cb9b856e1eaacc480013f92db34b00bf276ffe961ddc5a2eb03e1bffa15581fc153f15a550fc5ccb0928779051397f15ce5a725dbaeaa0a5438f7a0038613096a1c736e622e204ef94342c229b82c8213b67e60ca49488a314d74de112fdb64e7198a8ed3af1d5391f3dcc1c271e0c432e31e8117fd785230b1f5ed7b73b30fb2bbabde250929e46f226a7c752b73b2a5fec4ee9e9e79f519a49f9017273c44db4f15592532cf42fd72e22e62d14c1d0a9f7e29592e03e8a606e9acb891cd6113b89e5c93b299c3320eddd4b63c3c009264a3ba20cbda4683b7fea1fdefaf0ea5b59e76b6b37b838348c19f93ecdf11b8b06c531234234d692cdcc9153a063c914a90319a2463042bb9e9128a16d4a865a3dd58c35a5c398d1db877e07e890ad2690cb2996db15c6c4588b88264f164dfe2148a911d572432e438c39b5c6b628ea41a02a2096c231821cbf0e39e27cd964b23bbf55d3e3d10c604bb945438816b156f098288d32e27adac0665f8415e912375c95ca329d2a424b94e6cf26ea5e1e65e97ae9f4990361235cf5d1124f058a3f710e17afa1afc3f8d65f0f6048da2b0f0d8d587e33599585d755e50032da9f2dca9610bd301738c65d096f70f29782bcb4991fd425c598ebb6868813db3c1036f4e7469f92bc1af2eaa93503c3cae6427b190aa8b44a87e04d789863ef6941b49d854a0e3dc932e5f5aa62e12c1dde3e1d4b50ce32fa6e6479e266d50f09d93ba9e693a5e07dfbc4b1f0425c462395d659b6095786d8b373f66f28e15ef800e3e1e1dbbd972020821209245d6e2f36c0e613090d8009044592a7db4136128603ab005caa7596a748a5cdbb8deed2cb27d65c11bc7a4071c002a08ee275f4a1acfea9fcc0fb7ad1507b3a3422f07467d41dd000d0b39bb8b26a6e0a011486264e3949313dba9113443068a8c998d5704bd483ecd8861b32960c6ec28c93428ec87deab056ee42825b69a2a947b36446f036c6aa1cbe292b1a9db4f289c8b55db0baa080f76bee594108ba29e07e3fdecaf18d4a1da7dd350c15d3111959ee0331b685a0acf20cfb719b6d97824867d69a4ec925d398a09c9a359c0d81f734a5a872c229de2369bfc59d967a9aa6fcb6dd441d226065dbfc553f515f786241f60927475d671327393c87e6289de9527f1cdcadce6979bb3bf01e9af1bd4ad43a906c08324528e7fffeec66cde748f8429225991777370758ee439db48bb529aa936f65de5da3accfbd01507ad308320c0b7c7fae51109eabe260d5864caead54b2288dbf45af1c8673955ec4875a2235d7e83a9e460c3bef394f2ccc2d6f753db51876dec8792a612c79ace389c4b0e541ce13097393175d77caa8fd9ec3e4c8ffd6b0031340bd5b2cb7ab310b165db78065e646f2d0be0dfb73f6513bc577f076648a2d827860a18a7c953e83cce94bf52dd6278969cd8b53e044fcaa80406c330ca1c70c8b82bd78041718c856e1092060109bc521984040360b4b300187c4761ff30a26f0b12d8a60103abbc2c184842e077cd745b1c0abdc9c2e062acf61cac76c85fa0eefe442f20a0f8818965134a9e14b36af5c031bab33dc8b66f07644255a34f1c4c216e31555e7b3c9e60737fb58e53d791b749bdb5046e401eea562f3b8974aad5a53e40003790842479faa36db8e109587e759f3f7f9a558f57fee87386c5c9b1157cbc7dff8e21cba9094ced51704341573dd6c7e3aa54e0a2cefc1a78125c9a34155ab49f7128d82c9df8453eea39f372b46e53f7493a36292deb2c55ff411f21e16b51ce342e6eaf1b0928c55ba05878027e09cea93da1d282c6cf5707714f4369b613cb54acd5c61a29b116d78c4022b98e2b8527645029a142e5a4c8664ed8fa53097780c740ad06c10a6946ccca7301caa853475d96101d646a0456f7a0e9355013f335f91d527cf3579bdd22b4031d66b0d148d7185b8cbd86253e51533efe583569e18e01b5c7a988aa1833f06bb691203f231cf5315f5fa6fe808eacd1f0af7203d532bf81d6e909e68299ae54ff97359ecfd35a98ff090919ccffd3597cc239fb8e8c9395e6321c352367ba14df77e31c5b136223792e8f13970ac56b333700393f3e9380fba5ef2a19b16bf7428c6d415ae033173628be394570e9b1035fc3b3b2664a89612dcc918824240603589aa6709d630ae2e0fb196be7fe221e853e7aee3aadb6553f93a7531c7152d7dc03d9bd566f091941a834699d619acfc9c1c9f971c7596495c45636e83554836581525dd81d01371861c8a91ab51c42433e8f58f0eb841577a5668107c16d4bb2452fed933cd3203c831e0bfdd55d306b34407435dc83b8e443f13669f6490ac72489db549e07bf7d7379e905a3333efe842e8d030acb039025b1d7541441f66d2a6a7291d5038c47feea8f2a069c4ab378cf454c4bcafc95824d644da876be228c3c483ac8cf1a0e0c59790ca2689df2bf6285e54d2081eb3965cce367f3944e0e6405b97c395fac7762a9f526e036af8bcb01ae17fd38fee6fcf7f29eff5bfad3dde4f44a9fee96c2d43575388018724c8e1e0e61eacdf610871f8c398c19a9adee19c1416da1385d3806face0dda28c5f6de73a37172a4ba2400911f43a38908b493760d2092711aeb4c78a476b29dcb5598f39fcfcfbf56908f70eb56a552ea10f3e0f76be0127e3f64e0724d5589e5c337ea0a46dec96a21c711f8c1e7473d13eb1f405ff76a9212ce6afd58317783b1892668052157b041f1e674c988f2ccd7150dfb18983159789600325359f9f5b61bb0f7b9058f6e3d72336c3f2291b0e57143f00f06e3897c978f4b14884a800f074913c16c1ed00d00e8071f43bb30e9cf160c74b43d357092f36fad0cb1f1e58252822870376b6d08142f301657023fb9449a4b5382a8b17720f4f67e35950a7721edc6adcacf0c31b503558b9f13b5724c59824c2e080629bdcad65a20244cab531accb88a0b7079630d51d5d11b62b3ca4fbc913c15d3166c8a5ea54b8b88d7c201d3b7d7634a4e8920a34edbc90d0ee7988cb93cf2fe638db6f2665e49a3f3fd736b0011ac12d6d048aef83868e61b052770873659bae7822696ec96210287b783844c020aa2c5d41a386eb313a8c4274fc4e8bd05385c3bf4e249b81e8358d1a3b4096821eac7b227d13792d8250ea561abd41bb3a100a3a390b32497b12753a2aeaa00ae7b083814da7bd835e93aaa1fc68faca46699de77ed675dcb846862ff905d13bb140afa3da8f948a9fd45f07e82b59913a13860d0d02f99e4106b644246c4737d9727561ba87410010431836f14fe11edf3208483b0df058b592ace0cd1b19c101b3a81c6cb06eda882190108179865b91f1d9d0854522a5ba4e890820146c408d21c5158cbf3ca19965dff6500f3a0deaca3f2b11c45d9013572b3dd5aa8331cdcb0810dca5c74acbeb988f18a02252b97aeacbcef7c7bad2e0c96e0abe420578e75526b3f2d33bbcebfbe790657f404a33c0656a6f876b036293a8d4a9dd9caf34233930374d67214d7fe48bf1fd3de91192f28061c1b21fa47941a84caff8505e5c5ff540050eb497ac8e8e5e199de63e8fd560805319a6863ffafeb57c1a0fe4a8e48e2288b168f4b4a57f1071407ff85bc5180353bf222b38757e86f2d933693dc639af29ecfff61d9e6cbb40d34da8e71a3d3a478012283bdcb12a8bd4b7885944bd5466a04edc205837a23a0e5d8410871c088cde5f52d83068dd214050c0b431f0786e802b2863999b495d98e96d4230beaaf2563d3c023eeeaf791dbcbc906b4c5a56baef4e6aa200ee3dea2ec9088d2910383f1f0901cf330fe5f15e57282bc62ae467eb2414c1c46c288c40d3652734c07beb8facb850af5a4630db8ce34001cb989860e73f6e6094da62cbe8e4d469306f50bfa8e7402ba94f67c1e5714b733dfb40a00803a7e82c12fa6d521ecd693a67fef8480127b7ee90964ec898f3a963ee63bd1bcbab40c6e630676b7fa2e80d8e2d84976ea112f2877d5e91395f77a2e4b5b7d03e09c5fb675fe6379433104def7b9de920da47d77bc5ca440382b02bb031ede3ee955f7f49aa50ce411d24d831c1cb1ff543a3c377c26eb3e253d18f984ade486f4c34c6a53ac03088e94cd5c3a7218601ac817dbf8d7cbd266ffb684f03fba4885a0c6955074823b63d53040063794c82dcbed4e155ae0e3b3d318b309c2357b2b243058f14e6f1c351c90416748d4f4e36d83c75c2c76898cf2a5f8445b1e241b1c21a232b30ce9c9599ccd83bf7d0776a5120289121bbd20123a0764350c12981faffae43068e3da0bf818b9b66325d0d8c4f3622edf2fb0f351e22c2ebe4348b917b1ed7356fc5abc3f5da102eef3d934f165e2664a035a3d907842e4b6d350c084c8533debce3817b3888609e6f55fa5d73373740c723d385ac388ed53bafebe9b684a158977c6661e20079284aa3432643bdc59103e57431eedb3499b0840260d41040ecba6ad2e4ffa85991c20f204a49b252a0373cc5cd9ea73ec35f0ff43ff1ec6075c9daea8232465ca993e7c6da428871530585bde5f950a3f3be8a465d99f933eb1bb982be498b68520323b9f531d303c60bbeb86462840cc176c8a8902ca41dab6ac23727445da7346493e133a89f2abe4ef99a1e8807a854ca66749d96b2482da9e4cdb0209d80da085fbb280d3cdf94083669efa02c3e033fd37fcc8e79b53272e44ac32121880d9ab129746e04a4ae8731447be0fadf1686772a8c1e536a8aae3f246aa685c9e688a7b4cb88d16d1c00f6d0418926c9a47260d2594f04f8cb1af87efa32980b5ead1d91fa81856fa9ae7278e9c268ae712352a04154a3da8493bf38b7c8721f2f58eae567d1fd0da047b801f25e41f2c786756734835aa1aca125ee5b85bc61c6e1905a7985a3f5340c83f0a5f4864ac469f27bac69e585afe38bce17d40ab55e758354c83990280015d593e7579e23cc2e4f350c92e44952a81ccb77084707d29d0dd52330bc3ac728377760424b7b1a1aebf0ca6d9a413984b7b7e3f6eca69bd2694fbd88ea4317c4cdf96191ed3bc0f5a92eda628af08143ce62631cd85a90722870674c592a10cd7752c79cc3ce6e143ce2ee0bda46d79bcaf56385e3e27b43af7cd2fe4340d835ce772321b81071d4205c35203a36131d1743e69496edb897511c75d6c39818b036469d56630257204151b5ff4fa8bbbff3adff3f40135d54ff75d58d11e1c92c290f4febd6550cfb26c5df742e2ceb72e5389d0f066530f90e41d7c1a56536135fa8dda7cdfea48417f808c085d98693dd276b662935fc6d532812b5c6081b9ed07d4b2272079936f230bc5ac4d524e359e7c96735cdb3303a8690f15adfd84f57aeed93b7dbde64fcc859bad1d0c5b871abaf08b59e9af6192d605bf34cd4d5253f022fdcb80e5373d0210770601fb96b32b00bd47b0660a257fa1983017e2c15e71b20b689a18d5fc902a4f551c0a9452295d888d10ea410c443190547852ee7eb9625c65101b53058f3949b6d06da1c95e90fd0606d96e170d862c7dd6b808ab6a7a78bd89f0cac8e6bf194ff8b41815da260784765ed7aa48ac4c8dc6a4e145db7c4fa886634d94b6969b7bca78d092b025222dd1db03351e638782d84c70ebb2506ff4f4658b3a7cc4bd4afc0c3ab8981bb5d399f8cefd1823db9e0a3858c1c8fdd4de6848a13908859fb993426fe082526993365f597e06aa393d8d898908704ef48f680bc3d81c70e9d495fedf4db94cefb6be6c4140f9466ec583e04207d0ec16cc24d23bb0397849b503e1ae30162727352d5750adf4014409e75033ff4f5f8639323d7d6ccaf4e2f86f0498bb178956ca260a6e958f61658b7351f3255b39f12583f4e470f1f1f94c37f8e4efad12eaae6668d4bf5984b92a42e3feab44e54e051e007e4ecf924f20e8c1373dbc4c9bfcf97f6eb55e5534c46b6d34634829fa55698f5b936d991db2166f7de966f612d02d898bfe7e9543356c8fa1c5b75c6357744d1205471619e1079238f214a610fb09b08e74027650c3b29608d5a09897eee1ac40a80fc0ccd34c8d7f0199d0f98059dd1f293310cb0357ff968d0142e2981ffd3db60524a85f0f9a964de07a5a69b0516be725d354d11fef3d9fb340d8d74357f70f235ce0b1109f5419742d51bff952ffe9c83e1d9f2b240d166bbf19a64b79b6a8a1abdb52327f80b2fdab05ff1b74085b4a4c072923c5c4c61a301d6bcd57ab4f0fdaf60f4c526233fc7d08ef4ce82894f33cbc50739d63a888619f6dd72720aac804b280d44465b2cf32a0feebd69b3664196680a72aeeef93c6d66b5c199b03c96b98d9d724fbaafd9b6e6e88a9ee92fa51fe495ca6cd9a6d3205ae28c52b051ba1e647c4fca4035e01eb367adc4653a158331192bfc5f4d66fd44d3c26400887f348663dd10c518aaea2a0b43a37604effd804b80752488e7657e690edfe166c249aaafec0c72e1c78abc0c2111f50456fe5ef26bd52ec799155d78d8ca18a7997ab0d7476fea3804fda0c70a708c46d05ba45106f7107cda2db08ce58e42e5548823c1c86b54b18122ab4c66113170301185a0b91232dd055c43547ff85c0bfc8d947a892c79ed7df9496681d17113d0560f0331174a51a1dd6f1085ab3fdf01e360731fb165fadf1e351a516fd2d373088832189e57868e97bde7e889048577b735a59055019f831f5159b9aeba82c856e35f4fe0465684e2c87c4f1ce7206ece43eacf95d5405cb1a3083db8f883858537a2e3064c38b490e762e669a5f8208d5bf8b4ef75c1db9cb6bf27f6bac22765b6311498160c0fd8dfea8d5e80b940fda7741b7ce40fcc4c2fec125cea986671b64c011f6b26cd1f56ac69712b0f3536ac7b45a77fc607cb187cd162b4850bccdc34ac065b134cdc1bae81be925c2635d77817bad7de97c1f02966e75383f16697ab69567081d674ea223a0f2e051308d9fbd00dd7e37604b6180e43b3a8542f2a20f182771248e94694afe0210f2f510928333923769968171121274d528764bc78c9159ec4270740bc072633f4a1cd83022b54428ed5e0904cfe874ad754c8890372ba99cbefe0f4ea1341c9d8565fc630ffb4b104462f13aab8afd51f76fba8c6f72e1387792157b9131adcd242000007674f292a46a7c86f35d025d28e5a115c620f385eb1d0e9f1f0d7a6c9d133137f75d417f0fb626efb25fd93a3d325c996ed715d9fd01989e156d652721e9b2fbf6996dd7200d5303e97c63f1cb1310c49063701ea221ae98d81967b67b07b75a24a6a8869c65768a3bf270e6a5e009dc214aa78f5202c25ddb78d3d04ac9626fd78ac810f4592699eb807f9adfb8846cc2b1087d6b9fc1b2aaff2127b48ed7d365888e324889c00c63e7b13c6c444f3f721fd9ecb49a00b96a90056035d87b1f6b1bc546605afbe8f2c2923bf33d9912509328deca2bc3f5a6c0293dd05914f09e3766f4f7109dc46f0ca8cb0b9502ce7f9542db74b891d37a15efd4663a7abc3c6a44a15caaa624f3470db9561eadc24af9c2ad37303ab1ec509d6b998aa6927415a1e3f5ed254eccf892914bdc387d24d3810b88ad6308be8d485688684a7e71c64dbf0fa6bb695f00cd7e6e93429cc1f92d8462130e20700f9766d73bd3d4f7e5c6023552751dd562427e5627c638b94402920e79cb9c8563f71a07aecd4d565911c1bde18dc6b19909007793762dd867fcd545f14c3676392b2c2147c2c2104203ba3c0f9625099342546ff053555b906b27a0c520134ef3dc560754b62cf6608a3afa4ba069d3aea5a6194acea823efe7a31177071c193d410d087dcb786b77f8895c1ed42446ea55cd882f4e75a617d33dc75e93a8c89d53dccd40203e5e139cd353ddafb1f21e3bfd350a8e7738775c6e6c0d33d57d501e3aeac1a5f15d46e123da6a430e6ee4e9d041b41940e493a5e62f60cd0761f0f3c300d0f2c4befe3c0b16baa870b413f190d053bc5fafdfb4cb60b5995f61cbd1de7f91696ac38092ae35a3edeaebacb2c63571cf434704a0b0a096a929eac15ce59844f4b0d0d22d6a4944846c1ff4c5cf9d625e96de6fd25f301ae2a5ee99f454eb2dda292c92c80df72191dc064aa60ca078b4decb248e297684d3a5bb408daf82e8310dc96de394ac14fba077126a6014c88b7553d4b324576952789204c0595e4d9f33bd2a3e540bf75ecdea50abdc49eb6eaed0019fd766079faca7443f42038990660f8debbcaadf7509e2642c547dab9a2adfb31df802a06988e618ca4bb008971a3591e1c3253e2d14272f53fd031bea9dd52ce3d05ce6037ae6a103615fc5bd803d5a68a7e8d25918cee639e1d3b2df67d0ae0058d1267fc5ef12e6d129781470c8ddc6b8c5faac9af0ea1eb392c9893ba9c8b7c84d28188df4755374ed1fb564903e7ea1607dd489a1caa2d019efe5dcc491e458eb2aaf45d955ea375cfff74ad269c716909409e53e0bc537a73a08cddd081efa3988f44293cb0391641eb795e56f8c3066b93c778958fcafbe8dc792a250ddc93a34734bc81c7d9887662a010dd122827eb1661ea52858f3978d7c56379719d7d9c4b0308a4794e4acf105a55308ccf949c8a94faf5e0f645984650e80cfa4b9227038efecd59a99596138573a02461424879f82ac7b9f8a05a0bed837bdb7d7bcbfc9315fe6619d1104893f312ffd5c72e8b94347f6f81e3185fe85d458f4ed3224c57a3f8be5119693c94230887f4d46f9d132e820510c0dbc2a9ab12cddf113efb4d4524dcacd2f263489446983ad077975180986782b97a11549e0bb474ff91a53d5752ef794b38baad55c72a7c02afab0913edca11234309c354732998ba4d88cc401e334bfd4bb8efab8afa152f3329a2cedea8e21dd1dec6b9863ae89f07267cbba9f613b053c94ad7e4a3fe1214c3108a530a300de549c04c55c9a1c3e11b2432d71d3f04515b5e8c99a4b763de772853ae19b2905f6e4c6ec1f108476e0d36ac16f84404cf4a81c0de0064bbe169e98bb96b46425284809a7e6ca24169242428e1ef342b54b38d6e2fcf1b40492eaf7b83143fd1f136f71a619365887dff1c30dba145e222e106b3a6d15519427b4ef49c838b628b7794caa0de188df7c964dda1ba1a5848c898602e480eca799e083629e36b4679478038c47c258aa0a1b09a4c52ce86ee228647cee6bd5497757f9c4e703853cd9eaf87b528633bdbae80747213d7339df4bd1e0fcafce4a8365825ee8cabe7906f602e701d1be3249354d2174c0b65e7904cfb1f5171dc5b69d9649ca16b024dbf2b3a9a38f530e21db143d4c780e3d49fbeebb8191ad86332943a16174f8d0096053cb26c2f6b2169b3ff4955e29a2c2e2b9707837f77130bcd41c363b5e75098db0f53e36a756eafec5d47e6e6a7fc0e302b5c6f361a77b69a48d24cbde99ff10db6803da48c719579b06653e5c14cefeb932cd35104b618d2807f6a01f5059e366f369094673975156dc6a06105a35f0c392b32106692f0dc9c7b2e9c06f810f53f128e6cab2da1351905e9eea0738a2a16f97a3b9be5b280c4d0844e143768f900fb7c6c3153e15b3d866414b8f7c77fcc33844102337fa32f1e41e4824c5864da9030aa81befe21a9a848fef80a3ea52b87325269dc9c4afc589c9825b08a9e4e6e3ae5a0cc5b1c76a6f8352336d8a03297ebceecfe0847e580e40969d4038e862d818b839d1f4ed0bc9403d62c8a628a94021ffda7966cf7f19333601ccdb22f2a8531170ace3b199db13d9c2c87b136871954bca0070fa2a978a6a66a9720770b64f10810d5976ae52c645090c5f2fa720d74d0ff252a94e0c22c2d0dc306efb55a45aba9e200f17203b7b3add37dec2e6781bcbebebf7625ab5b850d47ab50d61dd2b023b8ec8034c49e396642c66565efa21697fd3c5f8c4fe0e94ccbf1b51c933f223ded4a63754ea5603473c5a7558888cf0f12a07e1aeed4e41daf216b22f9190f9bffe5880e9aa9745663d7e292b49105de9f4099e0295698182c9de89ae8a40590af3589bb9aed8489c5177c0a493a2f92cccd90404c8c89117012db4100e42e9e0cac019db8061dd9ae022e8b012948761dac0809ee0704bb52e5df419aad7c777ed0d43282702ca12570a97184582d86cbc41b65fba105806e1df212db2b450fab79b4f568ebea5690c1cf8e3d76adf6e17ba2652ea492ef1c3bc7be4160c6f432d3d9e20dfa5e682c69be1631ec2c6ac37a26b05cfa1c9454cb502c9b84fffefba2b0c611beab210cd23dc24baa004167636eaa1f28900d6804a2a997a2d4e320f498b796c633a974cd11c584607968b087589981258678d75803f61376003d78a82a4ee76a820ec119523e73bcc0665990405338fa2617e45e9837e60197e5eb4785be40b5de309c0a31e6bd9392735441291ec5a501a462b1cfea7c01e946b21644bacec6df5a66468753c9e7a62f92a84bf28ca0e45d92c47a52b6d4c513bbd1b8516cfa4cd2839273ffa1e73b00b421cf46db26c466503651070c17cbcc52636d8a239add02a70ee8dfda3cd02f0fe4036b103b6cace4a1e4db8c63bd4c00882edea9067ee9bb1bc624a1f0f9b83891019cbb30ebfca15c86b35d1b78b4d5f21c1c7a7bab11d6ad8f2b5e7421ca1c72a39c0cd301fb30c5cce3c20831cfa6a84b86e71825658065a32125fe6b2659d00c4faf135fbaf68e45ba277067d8227c5f94a8ab14e0d70128c81301a258c3762079f27acf07ce69fa5117108486f6d9c049d213f3513a3109a232cdc1ca49c3036ed011e87e0993508651c8092214fc541b5567abad6c6e36fdfb47128eb8ec047d1f951d2eda31d07eca5a741cee24174890f4e0953546ca0dfca32ad9b5f5f2fd3db424134cdcee9875901bc62052a60733c035b8e51dad6a050fd34ba5e3ca364d14156728b6fae65c6e3530bf887a7c5411f3c00d4544fff3fb37a59371c332a19461e8822693bab078bc5a90f8dd00e7ea42381dc56cff149936f0ffd205c19bd60de15c6482f0efe459824a17f49ab147dbaeecc2d61a95df278c98bf2ec34a6850bf944b23f9a20bba1e4c3fc796e2231ab08148284f9bf17167545e627ff77d7b1cdaccd31434aecee15fdd521b291b2379613c1389ab85325e86bdc8d0576b9c772b5787309ce9294c9b0c5d9dae364c006a792d6b7cfcdd77bb240f994fabe4f326b6fb195d5e22e3b4e7cac904111bbdc0e27a4bff87cb7cab0f310c92994435d0a8d4fe3d7a7f23a4fde0f3db24d642e34573e6e0cb3fc4956c4cc6fd9d61d2d514f69877081935f85e615f5fc11eba575646518103f8160a0a2a9f4b8aae281195d406e6e5c7b16198661f95cd939c42b76932d017d9f0af43856b755c37a1fcaf434ee2670906c60079e5bcd4a2f5647b69022cfc234a124188bd5760668c4aed901dcf32d0c65d335297dad0b2b2a29c4f46da2e760fdc899f9c0bb0182925f626ea83cef1e108ee0dd8ca7a1f19fc5bc195a73ded6178976c7cc55f836a6eba132392d85f7057def17bba910dc38b238d7e7c104831753c5972c6ce9a8a91bb9e2b62f2ad6cf658412dbe18a371cac615dc8fa7290e7faa2b9c9e60d9ce8297582a09cbed92e1de104f5bb1b09c17ccfb900ee5b43e1fbf2eab1cff77a60c4706fab0d6fed63a55b79f3609c918f1a1ffdb7c22dfc2a138e62e77ce9d3392035bb9b4ab02b2e2c93698959245501a2538abd3d641d94875d8ee5e848f412738e362b76389acddbce6f8ffe6111293c6ce23689e8153bcf5b4e69ad1cf1d2c289a3bd625a8f6faa308391f5f19be98b97efb00e6e4f15f4e7ec412dc0bce36a21f8ebadea88fe404cd88bf9783a88e63ab6d11c29cf3c2aa1c73cd4529a0eca1505f86b75a4154f89dd341ad520fb07931f701073d6f1424c7696beace09e2efc35a4dc895828ac1dca31c47b788d3d5b47f7f7e932ac5ace093c241c0adffeca46c89f16cd96b5be2a6f0e2db8998210a2de6b73d3820d32385c6febf1b71a25e23682401c09d7ef9037155afb36370add9708b9ce4f114e406ede0ab09a125a81871351cacaf2e2b2778d5d8445daf3abbeeecce29e467b9822c2b4c99069380903757f3b5db2c9d89e7526dccbfcab4dc4e53168b16c0a9f003d5cadfe54b83e1084ef335c8dbf40501a54cbf73c5623f7b8f7550e0c4790bc334dda4549864eb1e2ff1bbb66d9fbc8c1d1d932666d996c99d42bb5714b5c5c53b5cd6d8c678c258f91ec4ea4f39a99c1ebfbb4bf2fd782a13be20672933802b3b3b0504ac31441fbaf84a2635c18c8663a75543d300ae33f82709d8b96c21a2581b414c728a778617720e6922049d884e0c105b5ab4c1b4307a5013badf599e08c9e0cd21a4e6943e941bb680bb19786cc42c527e072cdc4effebf95afd69cd3cfe7805f3eedbe6179da07b0d0846054617fd3a8ae222a7b797988739833b09877c67387b73e43d257777bdc1c3cb0eb4e609b6c88950a175783987dae1f7b0fb7778871cbc573c4139dc18cb35c9cb9ee9f9d60076dc31ae64bd14172111629af5e41616d750d9fb3cecd8d8183b9ef2ae718c6d464a61b563cb45830eceadc884ffea841957879cea6438b099f4e17a5f92126aea5f9dcd1394c87e53d88465a7d7a96328b2a7d03d3716a0e6d2590f23dc2915c5a02ec97db2a9fc53a7359f9fb79225a5ef4c7c08404ce102f19dab78d4f642d12b300dcdffed56133f772ab678c902983bb3be995e07d02db398c0d78d4ca454803a1d573fe02d48ab1bb29a83acd875ccdc82dbe819a06dd80c95d41b1eb8b3480aec31423bfe3647e19b1958b0d07a1e7c52712eae8b2da696cfa2bd3e0ea6f8213667e723c1608206d32ae077b46fb1adf0e20f13013131cc20ee84fa4f861cc39832472bdfcba4646b9722994014454db498bd0cb03ff52431f7cfb726894490b44412480c2c3dc03ff0b0ab5f147d07304e5b69ffbe490d5a89d97095472b3c2f54fdea8bbe3e12a2ee7ea35d916eef08ed716dd493f252eb8fb37135116e9616d9e624216da1a72c4f8bdcc23819fb915b28ed584bc47c6803624d11b92ddd299fb7552b7d0f28e47ccb69591deac012f041b649e1e84f0be7468726845aae4773ad435b6eb50a97e8b5a7686ec258e857e179a8abfe724f25a3b2a4c85ca8742614380400f61a4c07bba1bc6eeafdd505e434522c0cce37f3f8a0f3df0629f51426001181727e96fb534d2988024d6521de8c4a746df4492bebd678caa8fff1aab42e77622e3471fc53e0ab43dc10509358f5f857fa6ad87d31481ac713342a789912dff33c51077df39a0fb8c57e685fca6758856a7f8d80c42eb4f729806f3d7d03f3652d1eafbd25e796c5532cf987b4dbae5c4ae10976a992dcb3c20467991c68e3e227f8105c213577d419f8651c15337b35e122be4d7559b79fb8fd27864a01649b3059ebe59272655102539e7f0c2a752220375c131d75d2dead895343fa436a692f8da88b88e6b64a38d44c0b004c9082526794c496f7092cd63819ec680bd483e36d454987bc3310236153557a3f9902d149b551a153012666bb6d4ed87579d4aeb078dcb198a1c822167f767351451b8f06229c4b2fbe2a60e632b9d0f555e5d9d33510ab38517823a31312a1aa4e8831f8f0d753956d16b7076af1d169d1239e942bb3dc931bcdc27710d5a3f424fd06b349cb9234cf6c3334710481521b970de6f860acea079b4a1fdc250edd11dc45e087e52e20f6c7454734d633aa9063997f09f77ba9e70ccacc899f908c6f3b18de232a3ad4e386e84d567b5b5254ec119382e6ea6559e0c114a014985822e8c2066c4d4455e4f5cff452158107076de3facf483ab36d3eb3af4b8429218920d4c0e21e311ebf1f53edd29f3d077abce68e8065d5bb1c44a6324317622b01390a03cab95a52059322fee628e819ce85f26b129f0d6bfcb72b2495da6280a2929bd03bd13bd961319530e69a00f988971934b1498ce4f8b440c8443760d1f61431708d20354204b449dc2a8ee2750aa39c25e32c30d485396d8f3c856eba8038c65815d199c87951b0cfd2d23d8ff2ce9d39a3964007bab5ce2cd3801948e7e20137b45b07de52675fa2ed3be1183044a899e6647c14a1c489bd4729331ba22a2d0066f1350b858297eae354355015d660037918bed7ce9645ba22fbc4b22df12baf459d6ee53af40e2078d72ad3470894bb0ef84eb696157e3838bccb80735af324d77a4d61f808887de267a7ee3a8b6e00c3d53dbf07ce0ef1606ea34c391ee13ad7af36b735ac02992e4d204888ab1b3a528c81a6295c511ca3c12b680621efce9de2c89d18db02f68a77b7e8f43e181608d134320ce5d054649c5c70b338ff97dbafba7fc57dd9ab0df8002eea8a7988e43a86c2975940eb1e2815dd96ae41d72425024331148d2e3cee6600613aa989c0648936238e21f224c71047f78d09b9fae61e78410bd781110c905972a3d18d9060c08c22df4e11871c14ee9f1bf76e768bf4f44c10dec875ea16f437fbd0d4d12e7dae9d4bf37ed49ab36605cbce72062f48b6316f97bf0227cb0331015c9c312e8343d374be5b7f802fb82d09438a2f0aaff5034b80cb196f22a548d244e06d90219d049121474f9156c3ef7df3ed76f2b31f4db2df326afd454ab7ca802321354b2e3725bc4642d8bac2f27497237bb5bee670f5aa75bfcb2c9db8e069d855035d253bd15c3ad42c736066a030d6107889dc00db1b05331f4bf4ec56fe7dc617f12cc9b29b5ca1634da5ee4e92e5b663024d3d591eb4e4fff5a42c4e96f0b6604d447fb84c3b3132635837f6630788067f9fe279d1285475f215afac47391ac75ce11c00ddbe9072c31a96677b8f8792d609b719fd318b9b48e50059e45bdfd0d6f526230a5a947aba0ae8610106c1606dd0805080cc20ce3d367ef820d6e20b76c1da9567e15e01b3bc6471842c6e4ba09a5806110b35db865018754e4a72e4529d662fb97725eb81f628688cd349b6d7a1185bdb19c815d95348cfe6e90608d0ef3a782b2a7832ac55c43688dd68b3953ff8637762f6c1944c7f20ded375a24088dba04bca4943db2795e2c5e13cd4cb91b67f068090038e403851e88b9784662cd160b18a42fd207042263c42431aae5742c12a2927b12cde0215d8bb997c88272c23ae9395cc73635f5ce2602fb0b1188058dd1ba793fe9c0bd299f95417eb7739289e59345842d3db79356af090b7d16632451ed1ce5236a88153bf93588b381051632d841ce9ff44b775cd0d586cdd91591f81d5ef56b718be23e2cddb45c3a59439982861d4f54a3b91c25966d8e826c6529ad3e92671fcb9a74f5686a4c2442974876003d0e458a51cdd7f1eddf42fed3b1d6a692adcc2832c28010eb41b803039c74df8c5a1bd3d0a30f44a29deadd6f261748dec38934c497e16019d83d594922a06454dda11491acbd7d155ad7f4a1a3fa955240c7f360fcb2c3a6de12b4be88d6bd554da0ea33e1749986b3baf59e6489a72e496d039751a174903d375f5c8262a5302af5fa042be784c4165b00a8c09ab16a0b00ad089cb42f550d7a51aa69586bedf5929060b56d2f22ea6da4fde6c1734a356bb45e54cae2e76358aed71458c8ad82f0d8e1b4a0d73938783bc1c3f18b2cc3b2a7ea7bcd299b600b0b59934d09b0ec5271f47bb381e6fae7dc7855adc62348b1315444a8758fac8c529924008b3e5628c112b044b0c41ee32b5a886c0b83d0137df3297fffe8b5a09cf61dfdb2d7fc1f082a7b284bd3837ab7cf4c2e9678c937bf4bcfec03d000f72bdf70069baae4fb2afdb12b8d2148fe4f7283d4d5be1a15027498ce29d76f942f49da15fb7cf02c45d2992d8b315104e76be8189c2ed5f820843ec5c0f719e4cdd7e5f5ecb611a43ef74c318e8863bd7b580c316f62f0c7b88f9d921f43967c886da4f7916f70155057196e15f6f06fdb9454c1beb5b81af3e29172640c896fdd1a1bdad1c955e4e13a491b14fec766b69dc132e51642a94f4a92572b2c8292fc94c5bae1172c5bc05a16cfc4ad0dc88dd599b67f222aa15cddfb0c7504c45e6367aa5ac94f65cfc7d047c2d86fb5f11aab00b331cb0a033e9ec979543fdf0b7944ae54b0be58190f8c233ee36cb1989cd256d48dc68d051c31c99a829d8b7c81e99dfbf601904d77f977af6c381dd7520f697b2fe8206a93d697625ced2b02241e1ba96c3ad70d489a9a7ed2a8cccb31af7a852266350ac7de68a9889685599d85be369ffa71ac391e6277ca34e36eff12b64e537d95aa08793fca2dcda0ddfb569c2bf6062ae04d12a2061b8c8de2c2c40a862d2ab0c49c5e788dfa8919176845c29a1cb807cbb47e10c721ba8d8e549ceaa7774a63cfe3966e774b8f8f91185fe287436f66c6510a220dc487bec713d90f543e1a772bd4e816f0dd72de9c929b8e58bedc72d034e2d3311d1ca2d193152eacd993d6c299e6c041f9989c883513aad004fccf6f7d9042cbf67a55d6684f95a4d26064b60c1412abbfd2cdda9377016012516a32f2a156a857578fa4ebc3bf05873f185858d074df30baefa9ebfbd23bce83f1e83e31d4ce2fbca51f6cf22353d9e866fe7089497d739a4635906998d5fe9b74bbde50f14dd275f193c1759f9aceddf6a0dc817a59cb3760922c943be19a25297841045895ae67542c1ecdca2ab1b7c094390f075bdca74ff13cdf0018ea63d1b94924a07116c4a98c38718844346d2d8d43fd9fc8fe481b46695b62e407cd5513827f785621ec3f9e1b43ce26d80089a3ce219bf9b57d939bf7b4a0f4ef75697b7ccd30afa8e2f85b298b84801bcf18ae0b573d76f7ca18ba053537491c229f1c88db74a04a32baa3ded3d8cf78fe9d08b77c35e16a1babd34ffddf2104fba936ce4d58d4a43076a20c27547cfb5a8f8910ce09aaf73f486040cf651a64cae03ec8b9ae790f722cd261703c854c8b4adee5f696478255cdee70c225fc050650a5f83b8a90b4b5e56441deaf8060b206460535f83165c0c16a68d427217a702a49e5146a6af743c2c498f6c6d6bf5d0cae6c345050e1070fe03c1fefb41fe466b3b610aff717fc1e2f6924548ec488151f52e5bcb1fd33a81cc607a4c8cae5917d49d3459e0a281786923ed086712a41eb9fa4079740f3d12888df97542503e89fb644bfddec2c0773f3585cb5da0dffd54803ea6cdb00854c4940c83704e4b10c7e32290768dc29b9e40450e2e6da37a05f9de1bb7d8d1b5073259446a28230eebaa4aabf42b47446bd91321964738df62de24b81cc85d1b056fc15508a07c3dabc9fcd940023a85d14a4aa98aa3a3a0e58cde3d8d8af3fab222351bc866ba7cddcfca3db2e6b8fce0a5829d03224184fc0cd06c8010d476b41a3fe1d1d4efff78c97342652022e8f20ed2a6853536ed6a60960e29dc0f10bf896d1d4e345e9aa933611273c2ca17d6a45784beb724523fe02229dc4f105c4ae905724b9132536665c099cc6be4116e149698363a94199080fd62fc074320df64a88a95613774a2912ee8edb3e99c5fd0c290c7e2ee90d4b32f74fc1ca79c9f4bd9bd9314871938385d82f67dab13ba3020ec9e35394abce4804b0b62ceb0c24e60f5ac10c9426ad1aa355de68c1ced7dae7091f5842ba81eda41e3882bb2cd0bcac5056eaa387987eb5afa33fd96500b2e67b73ea27bedadc70d745528ab5eacfd3a0ee77b98814284fecfd302526c74729ecfd55d8948a7094616c660ca6318625d91af1245ca2ba753dbaad2971095ede51b7cd26bb536c364b8e1c706482a7922a4b3b57bad3f9eac631e9bde85851788d79af9f1e18778d4bdb71dd35aba03d06566bf820b362649c816a8b8bc8e000c547da21909b51888a5070593861b00ba3559c488ba057a5db665cf136fc7967f6daec19da82df518dd8b4bffef352bbc9d916026db1e1d4578d4620ff35c04955e936da48648567456104ae0ad71fca7827f7046960ff31b22de0a3ffb69ecaef6aa1b53d8219974b2a6be7981a859d48c298c0d90669d88ce740cc354050ea43d51650fe2637dcb4e2ff884b2813c06760b89b3f724f59dc7a93dc8334e7322edc7e5f305dc77cc12a639f3c2710f131edc3d0ed29b804aa82ddfd9f5f6fbb9970410a1403724702dd47f9359ac6880b1d759002f2503e6e097ef3e4f8476e44e810d6e2c8e9a83207c92328ff692559e126e277dd7afa611ca4ff0be2e1aa0c1b5eea3474be1b99ef147b856e977c4a34412e2d316fb4cc0e6fe18608848292f7aa2df85934438f6675dba476436ca935d8071b46cd98e274e30b005b824e68664f4a443b0159218b5c41988425b2ee71355b33ebe8fd065a0a4f8bf2cfc226897871a402454bbfa66087b076b07fda42b025ae65fdb1021ea13ef52c9c91d03c112d40a0c2e5758bc7722c459a283431480394b42aea82a821ddc3076c60c374b16210ef9595c3d5768c18bd576cd0dbd99c98163863188c3d5a607c7dd8afbf795d0248a2eccfcddf997c635a15f6b6c2e42561688a2721eab92e20c75ed61a0a9d412e7f492f3c7e4658e9a8ee9715909743dfb0e20f99186258c67e4e27fb76e2bef4c1bffa79a926f48c7a89f47bbd32c48c6761d1489742e5f3e638dc9e20124c75c042b1c6fc85ff5416a23920047c19056d1c63e7874f535d8daeafbf6a16f7e108fb894c9794b0e5bcaf3e268130ab3cd1ba8166a076af2e81c3b76e300dae93aa10fc8d31782b0257d83c2ab594118ce41f4a8725d53ba7f20aee027c742263c8295d112d2c2dd015aac5e0fe1c71e5078ae29ec0bd8575f0ba8eb2f015934904b2ba056d012c5e688a48eb4564fba4e69d7141c599a54213c6380076a7f0090c806b98fd617a21098bd215c711f73fa908aa38075364b09799555f18df4800a656f670270c28ab7de37e87d8bce9660d1946adc4cbd84ee30efd1f263fad943f60da74d48ff8f8ca282ba5e4d0df510d2d48e6ab1cf5ad3a2eb0ffa8a523561d35bc8314b719184c23acf0e4c85990782d531a5c01c09bbec899a7d4f849584eea004614e309925a81cb56971decdc5833cec3a8e1144d71b90d6f8d6249d5db75b7d00d66e53526a20d02a850aca903cfd69af0057f43cd5188f808ddc8eae17765f6737e8242667ff098ef39882529da7b3d464fdf619730c0d0db35424be67009174ea305bea2eb9e94f77495d949458bba3074fa7d3e0c8c50b68226be5a2a53de79a855aa4324e72cb20275e960244c96ce76888c6389ab96ae383fe931a4edacbc5fa5cfbebf322eb93f0081265a951b68ac33bf4a82110f88c6a00e182d5c34215ff841a2442ba7d1b769bee80a9a2c9a54b78edac3c73d1c0c588962ace82aa2cc794d29d910a43abb96ba6544cd3709e411693b4c50fa0c1c4bf7027ab16386a7f0f0dfdbf01f6ffcf07b977bc5867d4f2fe702699db55b86000aba4e02c0c326fed0779544cb7dc721a7605840423a01311bb524f449273749fe8066175029b89b3da529bdf89a08868c78ac5308b3b76eeecb96cb0bad85688ea61af779e40c1003a6a89c9c30445b55af0099287d3d4d0317d830778bc2dfd8cccf5d1279f4ab31cfbb8a6331245d4847a6d9302493fa30ad35b35bf02c2a3971cc55a52d55b208e34d9503b2f7ac509e839b1a1709a411285683e68561df12294a54824837811096f696fc17519e8a8ba817d49154fc1eb92b42a63ca22b26528456d02ab10b51ea6f7c8640bcaa672371fd316632207b1a3ea6ed9f54f7ea4e4ffb82011081517263683ebec9eed85cfc791a90fabca2022f0e23dc4372004ef84981875f33728b8f170023b825070e7180b7967813fc2afc9d799357c60e6df42811aa7571306f47fd2cbda432457ada71904eef62c1b687dac339ef0f0d65baa171c5eee0bfb12bfe3258de374b2bafe72ec0d745182752e9e11735c6459eedeb0f9886c2432a2d332bbcf5d5ae36e3216a752796b574acec5e5a1b91bdd2819d06cb3375d99288be57eca6444d37c573562ee8924ffc6bcdbb992cbbade119caf3c2331aa5b526a3cb5c6a7b0bf0fd4de0d73ab741b46720262e42af5823edba34bc0ad07698f29afa350d10bea32651d43e15476bcbbfbc59b8bd3cb227a9e29652d9f1124d6278b02c08112f171bbbef732ac0878ac3f49645f943f0e3ea2ebed1c3648367af891a6f932ed7ddb44df5391ccdb6c599c190cb191b7de8eb01d202e76d1e3b00e431a73ca2ba0c6ebc439bd22b75cd1a3bfb257dbcef66b7556ca45e01d9accca857fe3706c8b298e3b90b4dedf0aaab1118ff430d5ed005c6df7ff04be243d8a05b8fde130eba483daca5503e4e36890d6671ec589637f74f7a1fa63fd9f00842374ffaae5e090afea44e4b55704a8132bb2c359b05894cedafa6d209bb5f3c68955138beb204561558f86da667e10623ea078d79f877b712bb72d3be605a34901bc1cd7f1679071f4ef6f0cc589eae77d9c82db0bb90424eb67a3cc47caf9fa8c10184a955152c730d0108d8c038395bbedebde348b6d0a59f72b0394b55b0660835beaa68cd4dfa12d6ed94a89cb19771a2ba326cfcb136b1506c64adbd0486e8105adb519e095dd861840196f46405d5acb5b3d17113a130d84091b041804fe1f9739adcf526de280cc37dd5e7f4283c469fb0e296053cf9da64f7738fb1306c9525bf0c789e3cfadc3520342c344ac67240a0e7732201edec857714a027d60c3a9b6f707c66784e27f24003117311357169e46d4eb1c6519d2f6cedd0e4c6911c2190d65c91d14d9c2ebb2db172bc261addf6943a0e83b0d611e5d589607343e71ccb8758f330957409ed3cdd99a4dd9204017ef8a5a3473cd7dd96c968e57146c670fd4bad4817e9c6800ada6d2719aecaa143cad91bad15efa16a599755d9c34bd4996eb72dafb195baeb8400dc314884cd8bf7ab411545b6b99f4dc28fa893e568a60f33251a79d9f37428bfda91ea889f744e4d812ebdeb685e6c15513383de46e867242fc07f83f251f3d4aa4cfb27d0a1b14fc2f1ca54238d607df46f848d7cd9fec943bd5d1123f1e4076ffb40bd05311d67149d40b0899f0b0c06d59cd5c170813a45bb87c1bcd9d3531367de7d5a63299dbed660c6f08c466fa0cfb44b39003c99ff5f9138e80769a594db504cdbc4bbabe8fe6443791f648d4ae73595ab1584bbcb38795e5168e31f301e83bac42f664b6484e8f1b534a103a34cca4a7f9e4ce32dfa0d90ecdefef85481db81c5e9e68760b6c7270971468a98a11273cc2033e50146c5aaadbd6868a2822f69dad52025eaaac9e5731244b0eb9d5cca363ce022e2d919a276e87a205f426ba7d835f72dd78d0bb25d5003da8ab6f52854999fa0c283a8024e5c856a101e988d06efe636aedc4f8d94e6c2ae0224fbbaf8a4887de00920cb3cb2d8c3d7c0e0a19e230dfc2f541e89c1123ed980ca8ad2ef3d86518334ae9c36498f0620a2c926b2c75f063636cc29602ecc8dc0e4876fd8cbb45a4236c2f7a4135e5447e13fca5e386b588541f8ef37245b928ada6ff935d5feff8bd3e70f05075fce88f307704ee982002672ce0d0ee7b57f900282d8d154111f06566df301f3be82b1fd931acf6ce2417622d33d370b1dc96970a5ba6b640a9c15027fa86f96e69dcc18d373eb9f1dac924dfd9fb92907afdd007985186b1d0e454dcad01cc6e4dbb4fa728ccbb83a15972c4f6761055c01d84927ca06d56ac4b9a32ddc98c939ca5950e161e1b908f88d28484de8091dcbf4225fabff5319b39bc88bf615cc584e344fa9f17ee0501ec57f26bca05ad0a536f2b24a939b310c95f9c91ba343754b2a211508825886951f3c010836d71437de10f3ca91119759d2e4f8311adcbda302a3700309c086bd844f9ee8663dec9b9e9fcb911a560842331b4309b47fb46b8fb3a499ba41a70151dd8315d1c965874c68c43823558b3aff392d0d05a1f7e74b7c0439fe750c4d838b6312d081f03142106c1b455ed6ea6841e68b75c736117ae10654758e05147431bf2145d0bc39fe2b3ed9a9d0549b23a040a29e714402e16c26801af1df7d7600084748ef18279b78271292638ed8d23705355ed0b201bf8163602f80e29ad8993b3be9706c86c218e3da9106229cd12f8e4e8c02007641d90c5f233268c3583b2038f86e2db4f783c605a6698ac997f373c4c085564e8170db4b096686512b069acf22a7db7e3bea761207a98870e1945ac81bc0af8cff1513ba1051d5266eff85fb9adfe02b94dbe53c314356f14f29a8f615e021b3c25811e13189b9dfd0f56b2f72aa525527db6087e98c2c5f2ac21758084a18d61ad69417adcbd1325b1fd1a78d20e98b1931f61c73c97e6ba59139d49424ac08b42f67e5cb3b9c0bb0954ea866c2441e97a6c4a02a8a2fe00c7ced1a189b812acb69ed7c6527679c6ac648ca7384d4d7788ccfe21008baa2953ace7fe3b2b9d1e61bbc1732a6f827ebd43440bda2768022fc060ac8f6517d0187502f71a2b384a06b91872612948b93a59fe5d39d7f31824132435848889a25ffaa270f711b3a13d2f0f6aaf07068b191f822e9660e704ee6f08db526c09ab13d1518aa4fd62060ea79f79aa7f4380c3e9691bdce7a708808f36d1d61240529e07f63bb87793d77205ef87efa91d7a816db3e6e923fd0b0b5c7732a462376cd057239e32afa865568bf946f2a9be994f8c69cdbc4b339c408c3a9ea6c5538e146a572cc348a752b47f25128d80ce7017dc62d99a54abbc49ad39715208f159715b4fe82a6f52fc79826c9f06ec46298fc66a8cc493e24c3332cc6370214ee27137fc67d8d70c5bab7e7a95c976172b527cb3936d6a676fc451ad558f1334ba2b587eeaba832c17bc3d5e52e7dc2f4f34a1fde339ca9050ca750e9c0f454ba1f1830452d14ceb7085c20f4a9d4d90ad4be4336cddffee06a57a559938e7409c5c09e3a0157d247517dbae48effb0524dd038aae7df37332d8b2355b8ea134784ac283e156806a6fab154903221eb4c1ca3ea7ad757e6f5b53012bf625801aa827498c33c5afdd6e5ff7d963898fff9fea66bf2bd52c08cb04252e32081f7f7cb89a58de833dc0a64391998b29b795466b5e2f221a44cf13ce223e68bd60c0a98850abc63de545c5a75578db2913411c321712cb358ad716b499990050276a1172e32f7be50c2dbbad38c56c04890d84dd039aff98090eca47ab4bf21c5ebe4c9c7448717f0c52ebadba109655e6191276a47959aa014361939842c7f2a28b390c7ebb156f323b7600ad27433a67964b1540d48c03d1060017990648bf6a27d442c6e2f54c40c001a94513ee51fe98941fcc3c2e379400a559bd19f97376611888188ff993f3266103958c70cac0c84984ab30f79326beece1c6a6172fbef734dc76a31a94828544bb7e57e772dc255aba3bcce5280172c316870edb768c225d6357c53adec808ac1e1f03f2319ffca7a6ee67312fb477e8da88736f3ee5d26d4206d719efb3910b01e41c2bc7ab2f7439216ee6d3253faf723426bf56631f68c2e401f8393291e25ccc62818c519e3a7441101c5390d0c5ca6100ec4d645f7473aa8046fbb42e2913843dcd8b74b2b5d4243bf89feee61b233b5073970e5d758d6d2a7f93aeac5b6f978133784ff762a48660e83110d4c0d78041ded0f8476359cfb3a2cb0dc2d572a9bcb69af9d5874ffee12af71677db6e199daa901f03b2f58ed8431317a047f761f9ac50bc4bebc48182617c34546078f81f1eb61a89500a5372f76f08faa535340940bb4e1386f1b327326fe6f57a82267ee3bbe4cae319abcdf80da98614d46b58f7b200f1e272a008630b551faaf3f4738d42afc579fb87a1ff60530e07a7ec0f795d52f97e3ac308c0c0d67c058daf93a02a6f8c49c4d5938e12b1b4fd70557d6b9b97593d8ab9fc1448f4018f59092a816233e94da1b89ffcbae5c39b8edd17d5b4017f957bf8e457691ba3bb99750f2491cf4485aa192d2ed8464e9f61c567a9f896cee3710176e3d189f69eb0ec4a7d59715c2a14be2156e50c214e5554177c0cd85d67b82bf1da20675dd6e095ad21624119c35d4af097ec9b040beb20edc55f28720f69979e4a29f2563ec8fbc3bd45c887a9948cb3fcd33da45059e4e825f0b4fb3ef8d24fd826fa88eab162ca00a292fcff30a5e8ceeda3e12b79ccf0a96855d20141dd1de2cbc9e7c2f5ead518320ab4f5c987600af4abf92e8a1dc6331396e85b5e31d32fa46ee5465d2a5b378cbafd1058435cf08fc21a387de3c1592f99e8d1df2bd1dfc5a90a144ebfde1c4cc541899988a1e02bece88ca1e07407718c8f9a03f3aa2c5e35a75a1e2fa01e172b8a06a0a6e93678d3a7a0948b1e45d401b4e6d027a9379b82ae7a1980e2acae7c87a0700a45df2014119cd07871c01b8642e3a5c3d00c1bdf7a343c63200ab7c42e3ad562a58a8176c1214a0adcfc542848504533e1035502dc5c332bbea9869903e937ffdef324cb9e0392641d942b73b5a9bb862a2319bcd4fb2dc0a5e8f45b2101a37b2c25b362cdcc70644b4af1f4e3f927258d78ca9c79f2dde185649a7e53c572e9a608d0748014acfa9f89b6a4bf74fcee0fc8937796168788bf7d9c29121170bfc945492d75c11a182121b720dc68c37ecfe6a67abd424eb8d4df76a2a4b8e20f6338d6cefb3c396ccd186a491ae7fc7a08bc9bf412c7957dfe27f97a05f75c77a1b1130bb0dc2d9bf2593a4b41c3239ec6ca1bfbb6a807257f8cfa2a047faf7d492ba2dd46f1482ef73136bb58033236910cc94063e55e57a002305307b3fe7938145ade828e7676aed4f63f090216ff219d5a7be227b3cf8ef422495002ec6fa8960e5968c4457ca8623359f044b9fd65c133220de729f8f4ab08c84dedba6744998045300b2ca24a9868a15fa5a204b2b348f43f871666178981f0a6af58ce3e9f3f37220a12780410cb0a771500f46e0825c228bef6845d53c29dca62e2f0de3151440acff533065c305dcd2f7c3a68d8050a7257c615640ef02554601142ab74abf39f21b7d004024cec8172026f0feb2437a06f0419a33dfc32c0708821e96048f4515c705ebbd45e1db05fed335eea907084ad26a0c70720e3a093ddcc33eb6d5e4059f48d0031d382ed781568e87440aae4ce03c0f212310017c7739f1be1cc7c65db682e49ec918cf25af246571d7dcc2b861289b175999d0a0de2a8ce2b90a7b83ee57e4b9b9dc7e08015ae3e23969274be207fb0668e3cdcca534216513e4542fe340e53067e94194b53cea6ff54f376d43068ebbf7493390333edebf16cc06bf158553593ee3ba0fa2794be7fcd62518db387dbbb580d2db4f66302d447371580890f8ec549412fd7443045f15c6042522985d6a6d9da3a5ef4229a3bbcb812468cde705665c09927c9f2a2b58c99cd51c2403402315ba68a73d5bdaca1564d5fc11abb7f8d04f4fb875d30902c274e252e138d4cc94a8a77dcde20fa2b4041b9242e1326c4dc8f63b409796a20890b85f72997bdf76489123b625359b7292d898c0572fa064eda6e37fd83c5222024285c5ac7397001d2002394fdeb1c7eac2537468e667ea06e74bd0b636b2ff3e157d848216ac3a72ce64dedc4e2db45fcba8ccc751d0cd645def1efba78bbefd332691c2c2921f0539e22a21b9e065df240450b71e65f655dca25cd132683ca9a5506626c623c6d8301f9e90c61f620dedce2ee36853cb37a7e77a6064daf4ba24e95a05c648f0fc1ddbddffd1aca99e5e24d0a41c066e5f243845aedc50d3e5c411c0b960c4525cef3895728b4de6935574c623e875b6289f6977ce4c0707262016b0c542229661097e42bf2e9042c23839a0a3ccc6ae24df7b4528a2766cf98e4a33f07f9135fde54409d4b7afc4c7eaa18106ea0218843c8391ea0b8884936a8b4dfe541d5e00f46684f02f41f818ae1c792b55a8ae1c708ebee09cf7cf0032a83fb8d6caf472b4543a730337112377c33385137dda34cc05cb604ff482d840f4011eb142a55a3a20c7f1243882d4015d94817ebcd642895208512140b26d7025a4c1160f77da8b17ab226060923815b6e92dcbfb82b3adad7a40bbd00a7ad76614d60937fcb364634d979fa512781547c47ab6023b1e0e131c1a224f550db543db8a4340a907c301bb3be34f129987b512a4597c3991c28260cda2e7e0d0a02e8207aa8a180c6bbd9ec6be7d30fd0d6be8aa21cf9030043b4e058450d877f96e00ae6c5c2c6703001707055fc30b414b0201441fdbc197046b22f28cca05ad2995b9b9c6acdbd3094cb1f1ee1f863588ae70793231124829ca85c016a01ab293661a55c212d188126dca4cdd6184abcdb95d0f0a778014c9c797d07d852e05ed909dfb0aeb9ef53251fdb4731062ede4e33d14d49d4b8a540529bd3083d684513ba45d5053defaca70fd7ad03644bf6b6b412971dfeaa815e6f23071b01c515bdad5f73339047c4895403d1e7a586a1101d0969800c057c0ff4d904648c1ed760f836d5798d050a26091af18471f53ad20b1dba0e97de35b8c16b04e7efafc371fcd2b9ce87b8c184f9d75f821d272cd161c37162f37bb1593b56673f67067aa911e7a03fbf4507e85b5d986772abc191eef1445188941f668e5257c782bdb1b5745e469e7282d5984e8f065a358e57be5e38ac17a151967b780da58d3a271977f3538ff637699602056406e2f8cf64a29a90885cad297217c8f78ff2fb7ea745f77b2ed12d8aa706ad51ded27dfd9adea8bb54453a720a6dd544972432b8df3b79180b62f0f8848344048fba6584636720816c96e2005faab8285fca188b6a09ba326f289cb5c5fd391e06656ac096bae438145e56be64d4f47697cb4098d9b9c03fcdcd82583630244167308544d92c32fa71558464f471e3e411ed27004af46135676ded94d8e272749008ab5c91de05ec4e75539e4338d31184ac79508e9b8a21ffbe4c9ba6f1faa02792e34a63052a4ab2136dc0f3d5b471f6ab7ea78a7cb21da2ab854172995a5d205f390a08287b47ecc33d340d6458b335ea95a2ac8ff56d9fd6c3874a91d9050e9643aba4d66325400306b60141b24a4a8c32055d2ddfd3dd3fd6041425a101a325f0fe27c2c80ac086b95d980b91f68996e23241cd670140573834552e340ed728a9e66393745b0720c56001a48826400ad01d061281bd28ef0585e0340585a32c67b52dfe77417c2c700466ddf3c1e3e17b7173fe782a37dcd9415a224c1615b8ef7698fac0941e04b41417f9e4baed6aee137279534106d518df7abaa4cedb413ad9de8d29eff8b6c6e20823751f097ce72015e7855f4f0180f237d5f3579baca6437b0d3ec4ebde4154009aa15b1feafcc849cf2ce241819e90fc8b5985a591e85ea141171de069b6992b3831822ae9c20814ee4e46c12aa9bfa0c13891ca2a9f0718b3fdd56a2a22bb2555d658e4142573c8c83d363cd06f1ded568acfad22fd1c9ecf962bb2559d5cd4e2349c789f6f00b3df451d7ad1e0ccb9e24304dd2c1aa601914a8704d62e27b20b7cf275394eaa3e2af8a9f5f5598f841efd4ead7c3dc5731b115af6f55d0e863166a2bc3162953a718605a49337d3a4fe90c5498fa471a07bdf55bf19394236e280e0cf4ee49c99a37804ee8a7af9388a1e578c2b6703adf218a83143621fe40b0774b3f1eb9b90f1f211e7208a1dd772f883add8363465af6c5e58f7af460c09ece1bf0a74ea05126c670e2afe543ccf2c530747916334e850f208f97cbc098aa6efbb8db4a862513e5af3e5f819dc93ee222a37b304d7569a893e27ca24c4976effbadd1eacf4225d4280f084241409212e80a9da81191e64dfec8fe31734ee8265c500df2e0c09ca29ab2942d39200415029e0a6f649ca30df2d8a0f6fc7b561b51931cf8eca8908d3c14efb12050845bae25e6d45f9004f58ba2ade72bc8eedf62775f19e941a4188ac2113bc42a156c8e12b29c9e40397abaeb765b977cb1a11e9532d1f39a9b3eb94a54c7252705ea72c340b6de32a47067ba9550c9a01e9a9ff8474e0a003e3214e3b56e8ca661ce585b6bc947a7197065b5707d55df87b5772108abaac6aad8182482d2ef3c74d3411f71aa979f48226a734bae4f6bbd4d8809208a373a5e73fed5afaed0968836c9691432c43ec3c0b2435033d5d80b41f54f2b234acb39b3c8040ac9d3f6e037f65c9e21ba8aebfbb6fe64b14ea4d43154240380ee116b3edc7cd61b9fd366c4b320304b850f53101b1ec3b6407ea84010224983e6d6fca1130bda91bbf8680120c8d9fa36321467893c48e41554a663c4aa28c982d8dab41b92d95260c510df22fe75d02e7febbfd5057dd467e48bdb5e9e59fd732a883f763dae41601eceec445ae3c1a37dc0ab5a109bedb43ac4c53d02aa036eede1b91ea4adea133bcb9e9df66b6ee9f25012a5cb4c357d6979e8c985d496c81a16b052f0b8bb8fe8a884238306729243cc46e7951152584d2d0321bcb19f1cf1d77c08157417b9fca3bd94da285b16d952b2e6f788495266baa0c3b2f6e349f5fc1d8b10f56c4951a0603977c6c2557245d03b5e1931750ade051e77723897df76e36193371cfd7a88a8deff2dacb646260857e8055c99ac4fadb76660804606ab7d74e08aedd9bff00a6b9ddf9341c6db14ea5aab61beff9c0dfb19b8ebc678855d197f7450c8d3cc032d38e4b4c391dd5916ff817ae5b0c189afa370f16841d0dd0b1213b22f8b95e9b5961d174b1b140bfbd1c817e01c1346f40d4a025eefe2ca09c72c7d4d8cb0a3463d9755f0580ab3b7d5d08b1b4e45dd60d004905922c8963dcb2bbed52655153bc9870bfc9093bd93fd6f8f32d6996ec27aae168aa602575dfab892d7fed0c470d5ed2e107b6a8bb80074fa7db09f407bd9ccd1415d18f6515fef6a22f3a1795d2398a9e9e02010cd514d5687ab5c0675adaa838051ac6271c6a8a4ddd5b1eced53f3e99977ebfccc17fcf96cb31eaebdb537136a73a0b4f577d098d5d9e1c2d388d838f43d4e4115f540c0983bae7a36016ecf12f24e50a813a35de162b6b21793e17151aee9f8b1fb79b33ec11a743e0b791d4042c57282a645bd012cc99f7195cb14626128951fa86bc8f68a008b5d62ea110e8084c6633f92b0676fddd77fbb80f87fe4cc202012f58a18e25af3566520529c6a17225ec60980548c02876ad1a494d11a6460d6c594c8b5d9b2023439aae9610698409f8aead806c8af2309362b8a87d8f3fc5bbcebd6f74bf230ecd5452d31d073b085e896a13ea51592d1ac8339b584fc609d91cb2b7283496f5d746a9cccf79b90e0183c7d5e6402e2321dfad9493626ab2d63691124e75989b606ac84f16e809386bcb3f8e19906f51eb1c94c6036aea129959200eab930e9d886f0d778985ccd6ae26d3531695a61281c8144acaf20902a9c250f3dea7ff762be57dd6d6a9181c38518383980b084c9ad9c63c06c8b40369bc93b276dcf5c55ecc3c588315d92f09d97b932db7dc52a624033d09660962099489cfc3caf73f4fa45ded7e5bf55fbf6191eebd12eceb50da7ddbf379869c76ff8218169b3d0dd9a39c577edceb7af04bf0fb1236a3e9f1e58f5cce2bae30a6d36172de07c77b4b7ce7379bfa9cd3ba98805f739022dc56e0776525d8daf591afadddefac2bd387fbfbfd74ffde7b6f8b3a13e7be152f28ced000b6068e24a5dd1c2598bb2d455f9a3ba680b15a677c93e6f5f34709f04b2771df4a38f082601b71dd60eb729f000e267622894510dfb0d44c9973eebb220930612a73364709bf7e3a093ae9dfc377667ff73d328780eef10b632451f88583527727be48e3426422e0ef1e8f24f7f87b893357d0c37efbfad758bede3e512ee2246742029c6c23cad373bbbf0f64af7ffd479b52eac2193fcdb8852ce2ff69c2f83f2c768eb1e084e561634c56026c88a8061b31a5719fb77cd459fa652cf85b0a16169e5642d5474836ae09f7bdd44f38af71cf829bfb21eebbc848e6a080d0ddededb4d2ec32962de496c7e2cc0f7eebef7f3f4e62dcf7626c13046e11739ae0faf4fd591eff08ef7a1e5ae0969622221ee70f1518164bc2e406568bdef9053af981d3b8f7d6e88db722dc51cf0db8fb1284bd9410ebb0040cfb0e8560fe651caa3c445183192ffd3c147a79d838b4c10d35d86addf834e2cc3641e012cc1c4c09303fc3125e60c6a1a9451935d878290df62fe3507751c5114f35d8383b868b6fd2cc146af7939d4766fb20a3f0633e4da94975d5713f7a388ee36a1d633327bfeaf0a3043846799ed2ba17a153b05fd9519ccc36bdd021cbddb3bcc88d327753b0dfe4a823c29ca4dfe30482825912e5eea70a3c7f94754f94bbd1bf0851be63d9b93d37d2795e67c5e6ddae957ae9de137cc77ba7f4e3dcc8d5f4a228e7992928ba4db5159695ac2bfe6ee43c5ef3b7dd94c02d07aacc4199b308762fc6d3032ae69730a50e7facc0b3a8c8dd958a3aaae50cdcb7b1a59cecb9017b254c852127af94c0db4ebe03e57465f302dcb7e88e2ab492f18e77bc370ac8dc81dd56e2e4bc02bee1df56fe1d2542d028e4a4bf4c287cd7fc700c2128fc701cea1a10a5b94d10b8848975862070f43f77292377fe1afc1cec6e3496c81f402360a9ef717a8aeae91886a424536ca94f9f2238647e75b259dec09f3f30d5811ed0d8c189215040e4e486c50c534e7085114ad4e83f7d923e8f35b03f0f2e309d9773fafabfbc93d264750c8a71034fab2a6e3d7c4787f2e031340444951555ad8736f002216afe3d9467d69e1a8a2d280128ace04d48ae7209ceab16cb55fa3f405599d65a6b5802e7c2941015830710d86add4fcb5879731de29bbdc403b6dcefb90b6e18d47fde62002324c109e6487082fb3b6a8049c613479a80c14316629c51fb5e4e8213dcffddeed26bb9ebf3de7bbbbe5ca506b27f101fad9c9529a3bc9d08964413e83872f85f38ca44f00f7f887ff844d9f342f17310fc1ec889f227aee0b93552249dd355e5aeeb8e8308042af8a1c904289002430e4441bcf142151e904c6184941058242c5ad043114a507184f443cdada890c030030d534c6c58828a72c2d57996a3a25d2209c12351223b9225700cdbe4794342c3912bb924a35660b9ae03a3e0b282ee5d691567fe3c1452ad8c08f7b217ecdb5156da9ccf107be0409f8af53d14c255af4c55d61367d6514684fb28e00d769ded3a57b16c597da25c6bcd1c92af28cf2b4ecea176c18b2c7f38be292bcaf5631fc7b95c657d2a4aab3ea1f7a567170ffef2ea7c57be036259993ee1d7ffdc984058303f38260f369a3e63aeeaf9711e2e8b66f5802f4c9e9667f912a4215710875cdf1a719e1e599427e61c15e56919b9265ac23aaa26aaeebf96b51729d7a72ed1e61c1b2e7b5ca285f2a85cffab94bac40faa6ba23cdec5a4d5af3e46ae2fe5c9920097dfd34cd9138ade3471ea7ba2573173eabb448732c9fa58f4114c5afdef69e2d4bf510397f689a90565a37c8789f25825a55cebb7c4102bb4e2647d2b86594ed69912e7f27b8aa2b4fa56fca09cac1f8c1bd8da0bf4e37a01e6a4a4ac12a7d5af4aaafb52ab098bb69476dbb6e2bb642ed7f7e43c9e44d31735f5597d569672edb992eb47d546532ebfab5ccb0febcbcab528d777d96a9fe4faa5b54f7ca7b44a3835b215412ec1178dd1542f9735cfefa9c76975fa78e66234b9f6c8b5ac3604c15aa5cf36f19d5bb65dfa66481802ab306fb71d497067fb25279539296ecac9d0f5c22ce1082eb0dbbd976728e435de4ce1f9afc4d6b74b2c924df29d2bc5d5e7a6bea7777d8f1770d90f7ef93d81d0ffe25caf7e712eb03bec7675bfba71374b774bb74bf7ebfc00dda4e0a9878f09e402bfc104c235f58fe9e3953c3e1788e5fa3ad3a7454f049a38f5694f5303c933a77e856245ae60bdaface9f3347dbcaf9f00a4b07da24c13a73e0cb381cb1e8e69e2d46a3571aa8fddf8e3641de2e51e27eb13310397df53fea2a60f13a3afe1afff3df90ed4f7590b5a1b5aebb2f6652db696c5da166b9f09fe99f3e0173f28a7d5efc9f6242bd231026b5fe604f66ff97bdfd5fbf7896a550a4fd0a4b5445bfb5cec2c038147ee2327ed7b8dab1dd907e30356f6b9e6b8ead96c983a5272e76a1f254505795f84f2c84ae8fefe1d59e8c6491be9074b4133bca45bb62f3495edd3251ceb440964608719469eb70fd8326777ca2eb23f647ba4942d98d47d447930ce00e5b9a3049aacad2108d6bb486e252b78d666edc8febd18dbe925c47e8625604aabf7bff186dd7b6308df4379bcfbf6757ed8b7ef8931df40c8496b67d4550aa23cdddb2fe21edcb7622f519afdab6437c0de75543d35839cb40fe4375738c869f6edcddd776c254ab36f476bedf3d8a25ef21d299ea47c67de8e18c9f6a7fdb2a7b8a25cf6936c5fb71b94eccf2b0bb3b76ca9b2fdda5ee43bd64b22db201e19705463b5c392c03e0043727707827277efe9dc6f776f2c3696f427a528f87abaa731da9a1fe76120db5abbc722fd71d2b86f012073fff5331840a60a18ab7dbd767c4c92fb0d44f0bc264e4fe4aa0f02b8e823379b2c12ae313c2864f6259ce7cd061b10745e77af5dd7813ad800822b840d35d8cbb9ed9c9a9c4e906493820621cca861200e28aca06ad20314502eb8d910c3ad06367298e7ad06327ca0754e4a29a5941ab96c26cbc462f297302fb9f525ecfbd205fcb2c5e55bbe0cf397aefce5cb854514c591a6c686c7c4f16f89246de2f85f110013c7bf13add843c409400efeea82ce2d81939425a0604042869a52105f44c14614555854a9f993b61dbb8744f619b25361bacaeeeeee75963d9dcd92936e73f4d2e44669fad86e96f84e68efbf347959f21dfbfe2f4fdcdad9db1c6f75bcb5e20d927893e4a44cb6236ae28443bc4cadc864c7df1c519e1de3dffee628bb38b1f8218bea8a9153b7e5444d1f5b1719fccfe668364d1c0148d91ce5cfc19ba3ef06e926c925fed0d1a9b9d5184d1c7f2252b894d9fe263ba2345991cc489624b381364737b6f2e649be91ca364ba50d4d162e5f6edfcb8d7aa3818352174c78f625b661db973413759428ed4bdaa123c76c878e56568e56d62ccb8a1b0ea13f035f6e9407c7622fb7ec762c6f9edc2cdd34e971c2b5d2ff3a1ce2d9daa7be43478ed90e1d39669dad72d594937e43c0cccb7c0d1120fbd828138af50c6d4c31aac59ea82623ca84647ef6b371685a45a9c93c51edeb7102d32fb9fc9235a33471bcc035972f593a4a4efa8d2d87c60afe1be5c971637ffb5bce31ded89ce63fbb4f7e63bb91a2a709cf5cde749deeb2f463e2ac15b56a384cb4a885d394fdc656c50f9c7418321d7f64c4598b89b3d6e202fe5cded86e96a8ff0d13f5bfb151ff1b25ea439527062d5c221807c18caf1bbf747afc67adf577a0f1755beffe739df8ffffffdf3f9b28120d78be1447944133e629e503533c28f5f59d6e2d625b74545151910b2fb9bb2795a294be300674565d5931921b698954a66018711b8209196e4460b10393346e4cb28c8eb829351961e256c41336dc8ca8caf376841459293790734660a43c71ae5284d51b6c04d1c351adc4993ab54103124d9c00410d354a3d2732b521916983be4347fa313a8416991ea9d5e817719e5a53615a65d0c97eaf39fda2bfa59cf4a889d3f7c57b896adf15ad783d6bffbe90fdfbfef75a5b473c71a8df4bb15873264aeb27703f85e27af85151da7d1913d7c86171542e8660c51aa5ae50c462d946f913896ab489d2ee0719b994a8167e10a5ddff212742de833fe444c8df7bffd638e444a8f5e1fd566b1cd2013d1f87fe1b4bbaf43f6bd7bd9fb5d628b3a3094e5e1428edde6fe9017fa6a24ff4be276680d2eebba8c1125826f4fee5cccaf7defbf7a95303e97cbf1ed125ca748db8a724b8a44bf9daa30e8e6fd2d81f22aa7162f744b521b72f64c721273e0ad9efc6a1216ea49c90a0584e15184f1cfa4366a6406ce2d08fcddac78942f6b9b7e30cdaf1028c811534d4d7f8669ef5eba7f4047a54c3eda296405d4d5bbdb0c559931960d648e001cf5a3f7e0fb49cb54cce031e59d122a7a8209eb21058b92dd744a6ffb538aef6b54221b2a0f90698b5394e4a2b616c5b27d55c80bb898423f0e78542ec457292561970396f7f82539e11da0813f7585d9ef3b9b79dd4495cede740f7a09f7b2e14c2e11970a9537b0397dfc4d44c4ddce86fe47eebbde7ea38713351da532d0e3c6b568c31a589262a70238bda74c1134d5050054554d94c3afe15740ffee7ad996a2cc065338de59d3c444c94282a2a6aa3032758a256df8558c81083881718292aaaf5cf7f89e0d6c5932e9674912497977e17481986d594b9ff2aee369a759409795fbf7a4f54e3be93ecd8a3bb5b9aedc9d55423c59c4b2275e897b88a5eeb2b93fa5da9abfb16a7933947aaade7beb9e79ea68f08003bca88d022d98e4cbc27731549aa034469dcb7383ea571f375262ccf47e389ed8a344ee39ec268658f9bdcdf228c0a30fdfa74bc82d545d3a7c8c4e13e04a7b930770e3049eeb9b6b6d5f444d789ced4894f991bc2fdcd15e6de841e35b03fcf094ee39ef301976d44752fc6ded9ae739b25ce760b6229e616247d876322734f720966fadcc7284fc561179fffe7e2064b70e77903a22a4fc9b395fb77ba2ab895e70d882ed4c02d79de8098620a104f5c3a609ce70d88252478fc1d7119218ea71b10317c2ed4e002920b4a625d54d9885910df8b5f78e2b429c575c224bc00e5b499cbd84fb590d0011b18960417a2b0c0241899c223a1a8c8096b4469f3da9a5c8df0022b17b3a4f1a100b7e409461949b4bcc05e9e609441c42c4f2934f890442b003aa47f3fce33fc5af46ea6a101688d7e8b5dae3f37e054c0cbd57b29a594521d27777a90f5de5a6b75ff9938f3751cc7fe36a5353458cacd7b7bb87aefed2c476393369f5221ba01571cedb472b6bb5e8b3a39e7ecd657af77efbdb7fb40d00ac76cad7b3b7d6657edbc5454dcbdf7de1edfa11fd3b96ebb3b16c0d64ca89901f79be064ed90abcf51552aaa8f73dd3b7d66d19746acc43b1cc8755b3b2d574ba26c63b0b5eb8c7c93e45ee504aad87d56f4ee0ebb76dcb70532fda693e43a0d386581fb257ed25927c7d1bf94c6d3814a29277aedeee62c787d92f6ed067ae2d80a874eaca9f274a7ec533729a65e82f9cd96b4a495ecd0e4d2cc287f9d1f3d3e64bf5e756894ecde12ee4432982184186f54a9020437d4caf9061434d63032821b9892a8951dd5054df67ab865cff32189ecf91047f63ef63f7091bdb7a1108f9c5d3077dd2c7734b9eb91bb9f44e4ee6b77e36105b9eb94d872a7648cdcdd7a684248a703cb0197a43d0297642ec120b984edf024dbaf36090dd92619c3c66eae6048a1e9020451e4fab123b92659e970952b599d2a0379eb488320c80112267574d062cc959ea00c1a70631808c268e7e8c043be30588f173750697ac12aca558b0d4b9e84204988a71d5c623461041b50285d89aa35200b276318c551c50aa85a77efd013e4aa84134e400cab40dc207bc84c3b072b0d26153d7d40db893d61eb6fcb73631196e7461328cd3e51adc4f94709b0f76dc4bdfdb6df4a6cf8fd92bd5e2e6badb5d6b62d5b6b5fae6fc87edff785e1f8349c8845d24127ad6d11fb0b23a65891bee3bd474ed122f6193a44a15463112b0f51d4ac7ddb46bac87e1bd9bf17db98fd20c682937e6e8c61a21a677fa0602b76f9f370029d43eade7a9ac331a70926aa11d56c4681f2d4b75fc4d6dc7a0ff183a2ac35528000de0ff16f7dcd5c6e8d3fc3c72e57f8cdfc0dc1e2ccb3ba90e7b798423ffed77ba28c882723d2dfcafd443424d2e39c64eb71f83474fd17d689d37a2c961c28b9dc2a6b6e8d20d4dc21914a33106d89f73f91fe7def470472d2daff993e5dc3c4b16fbf83c9d336cc5e5e7ab23572d2b635c149fb3d26c049db73837dd0773a0a848295698f8f7c6bf44318a1a787f2844fbbbf9f27fbbe1ee791018d50e404eaf5a04e3f4ed8ffc709779e9e97c2fd8aeb6d1e5ae0f0c3910527dd8325840f8eb75629d08f935426424d4126c2cdf76fbe2304caa65c7fe60e8978f73d11bc14ea7b23ec8e3127a9906efce0c749ba017d4a7ff4dc80fddb097f1d71bf3dc3823d77828a0085907bd437481ceb2293d28a70761c928508a8cf8d434190a4f154abe3a40add730f44dbbe8b33cf624fe012d7f71174b2d6a0814bdca108fe14733cf8514db5ae7e971d53e89f357f3535cf0388b08f667e8af7b9af171ccb24ee8f5cdfa110575dc1f3ebab9330ffbd441d4ff8f530effad708c28865cdae9f4eba4aa22427e913387c1b2aae7f49c1030b189059e7d06fd1884fc7e9d340ff73eaf839673f27cfcfc460602ddf630696c0c523786762308f6dc0af773dfd1d37c4a358be7efc598b0683b1f4516caa9ea2bf632c633a728c33d938339637369638662cf158c65ede652cbf652c4996a6c663574d1c0a5b025fe2e56ac45973b17e08932adb8cd261a85f53ae503337dea5a67eeaa5663a1a1d6cc137696cad94ebce1b4b09d4efa67ec10e874cfbf587d8af639712c82bd44a3ac9fde850843bf670b2c7494e67bc3e71b84f82b9077b6c9b93fd54349f0747304b9eef2e3e6023dcc7a063e4858ea3e6847efd18e5f1be56af268ba72529828ab18953ff8a329356bf1373f5c1d5e4fa2d384f1030cc77e8fb19b36bf7797004b76e9360d2e83b3565faa4faad56bf39153512456bf02ac7f22bb4881a65ea5da37ca774a62ad5dd0dc561c1d55b95aa51554a7605e63831ca6f5d93dfb86e2c6fe6460a709d0adcf7c8ddaf7e8baa525fa72e77ab51505137a82829af4c525411b4c23c78c02d9832fd367daa4e1a4e46964d927e8df2de6f94a7756bf5d7b963838c78632bb58dd2ac0747309867c98d355647f02dea46651575bbf5cb680b2649dfa7f0644ac9c874e2d0c79887159ecf430acf9f4fba80677d7bb9ea2e3e749111e599b5fb7dddddbb9e2cf0fc92b4b91bdfa429ebeccf8323b8e27a64d2b8a7dcd790b99c2ffccb588961f905ec484e92dcf3e001979e745497a49c54e2bae7de6d3c8cc065e7b6633d9a38dcbbfc80ef773b446030c8c81d65b56e94d99102445e5199c82b2afba300e45e9e503dda14814bb0d6e0803ba824b8f49be733d930e1d21dc9e6d9534e721e1cc15c9e1d15cb5c92931cf7d5c67d55e2be1e715f933c136921971ac8f6bfd9d7656b987852c31cc4be43eb52d745dffe4953d6a63c760d3eddbd89eaca6d6ec5a142cfcab467e946be64ce396bab098b256ef3254ed2398fda8e3614e22305b8dc3daae03f476e64d2bddb284f37bacd6dbee399fa9226d995bcc96d4f6cbeb3a4bf3aed89ef74d75106c27c7ffffadd6dd4848b59b9f426ec44f626fc248ee1bbe3ed51f4bd89be3f5d11dc0197d766065cde4cadb8b24d125cde30cf076b530faf9ffe719e66c3f681d34fac7a74450e39c918465557edd5a9d6cac117b8c43aad262cc84c43814a63ad687f786cc03ff447c8e54615fc6b0fd18e4c5aff94a735fe38a5016fe77d7571de86d0fcd3a3092eff69c8faf582e3dff1ce3aeb155058f275e27a9b3130064320fab9c4a19ee10d25a6daeb3f97f80ac34661245dc050b89c523c967039b12440794ea8e2ba79710edda78f17a8391c53e8fb0509d9f75105df293bfc3e0c3f1ccb156abe8fc215557092be0e28f87e39abf209a30a55047004c5ca7d4b9cb9eb576e4c809326d834c1e57c9a3984113e7092660088bac43965490456b519fa2801272912b8fc0ffcbb8e4366f6e9df321f612dc69ca4cf230be6b1c03675cebd525a9d73a7d429a5943606a76bcad74e2b67bbebb53e30b4a18b03bf96eb552bd7aaf785e9c52c4e595a40cf7766052be7d5dbb974ae6b826ffacefcafd59edf4b7157dd2975d0e9683977a75e3bf056ea7e9dceb152f7aabb8395d69dfab1d490e4fb44a02d2f4fec3b214b04ae1756203b37c9da0a49a05e053d8fab5fcbbfe773d9eb0bf41d6f92f5675881ecdf93ac1898647dd089bc3ef0ebd60f770335f004e2ca150227263ce0e483777332c28202c7112b5713ec92e70dca17461896e70d4a152edc7b61a00ce1b246d30b941dc0962c98156fb05415b958413583ada85aaca0427ca191c462856d87ab8a095b01832c4423eb55451a3330ca1545c797151a21b682ae6c6015377841564c5f0a6637c88ca796173bbaa033983c276636c8044a57e7361db1e17ef4e8e8f4a4c1d45d1d15e80842e30983a034b0989005a991a5c38ea035b06e54b8f0125495253ab9170ace514573c32f5db8a638a186086c54446074e1c07202c7e4799b620a9429b2f8d498c289ef08c7f2bc4df1c3070586c9f336850c9396a794244d345da133adbe27a6536fd672e000701fafe2500441058a2b513011c518d9ffa5d821fb935258c9fe2e9d31dc73834ff870f34416d8dd39bfeefe0493ec31d9ddddbd0af1de79410d34ce40e2420796d44a9d4c0110441532b4910519579ab021a5945a35324d41a6b14c29a59472ad5008adef85426a734f23007f7478e13a7caaea89194c54919d092cb2ff377143f6279bf822fbad0932b23bc1447627bcc8ce4444f61b9353f6278c64ff5be5f325aae03c8945559f29b1457625e058e2978c31e36a94ae7b82cd687afc0841114ac090fd71ec499dda0344952f92e861ea96440b96a4b23f8d5da114e6c4c98d21fb6324a662342940fa428d2362983a810e5a40a1818a2b8e9cd45cc8dd3da6ec47f4905d96ddddbd3af54a06cdd4c9252cbbf738c24af6bf5888ec1f6be245f62662e4982ba8b2cb58e1be6f8643c2d13220143b53f17b0f894c3372fda60970f0c27663830197325bcb5e66731a95d5d0158e2f595932db275be23be0fbcb9440110cc73b93d5391c4b06d0bf6d002b97dfabc01d652bca5e360ef9c8228da80caac0e58ded6f6cbe53e2b7224c91f872c549ff972c27dd8a37b3587d641c374a5fcfecbf174499cfe0587606bf52ff00102f304a238a2b06e6852fe5a9c182115f3e4684fdab068bf23c94d3dce5ba51ba59f27a28f161c497c2c933b1d65c2e1b9bcd914d12e5d9f1fe364abe53b38b7f0d168b8bb3d460dd34ddd86aaab23fd5f4b94d7d200ccc381fca497fa989135555635573a563875b0404e00c38a8be4062f61e0a7133ace009d34d1860589bd2cd92578201970fc524c73fd4bfd4f4b1dffd9c406e8e3ae7255af1a96e8ebe9b23986327fdb1cbb67ccb5df625ce9c7497b5af4479748cf495768c93be127da51c3a61f0cb9b9963e2eca958de34d55cded8bc969697cb877a72f394fdf13713631d782b275f5e5e6e4efa7b1dafb2bf5865a7733a21412509c88314e5687163f31d1ddf696972b3347bff9ba71b28dfc1ef7f139543357d5c6ac89e4debe54311f62fd1f5580c9f45a4ef22e6642b7e2d2d2d2fe2eb6122fe16d195bf4aab779db573d907f2177e89f46762adb98838f9c849bf6919cb17a6ecdf1303ae32db0d8b688324da2489364a8ae84f7f61a22f4d9447c7fbbf44bd3c519ed9b529ca016228cdef6eb1864d02ad3efc883da9d3d3dd5d391d253f689a7a60c59ed4a194924043e0ec0834b09b83f880841046984a72fd41188efd94112c110349ddd48153bc800ea20590a6b8429d3292e75451eeaf42da7b2ff45af303e704ab60e5723a55b9aa72a747ff66fa92baf2a826d417372828377a7608424901f524432df9016a07373e9d0760fff9b13286c27c28b2477992fd2be93d914b50a7417035296d8ece042a97a0539e372e9e64a53c6f5c24e5c9c507722bcf1b1730f4b8def5ae3cd0dddd6bb5bed6f781a0b5d682e1bdf7862e26d70bbfb01894490ca332300b66895d100c96169696169716976ac33149b8c05c60dd0b602fb0973a8452ec05e605a6a4496158a961545d98189898ab58e55c5c5c5c6262372633233333239b91c966b2d92cc72c07be0a432a8ca71c3a72e80883e975ecd0b1230ca5dff157388ca4d8cd9123478e1777ecd8b1431c455114470c663a4dd0ca45b1ea6ece46b94581124229b51dc771dd95a2ebbaeb79d7db428a141c73d65a612f2f302f30522012df123031303156292422261613e3847025c5646232b687cf06991999999b434fcffd1918235d5c5c5ecc929191c180462693d1d46010030c3000c04d4d4dcd4d8f2ab71809c624e123031ffddd0f66a041061abc063f34f801e6e4e4fcd820888f8aa787a7c74362b17868e1a287831e0e2e964c103e407caa3c35eec602f203e42706fe74f0d301d8433e1020403c08d241071d04010a122408500ea2fa72d8c0fd139c37a92bb98ce5c992e74d8a8a01dffc39e79c62e721b3839f1e5c143d1c2b58a36987a95cd69e9f0ea6cf6d8b5b8639f9e3c266e0164fb98ccd6e504b6a2e75321d239cd369b7a4bb698d8214c508a534a4b7725a5871f1a6859503f28d636a6922d9fadb69e56c77bdd60786ae17c5204b0b4b0b08c5ab4ad8dd2d2ef58bea16169456fab58643ba86df0b9d5f44bdc0bcc05441e25b02260626c62a8544c4c462629c10aea4984c4cc6f68075b041664666a64a0e558e743032239b915529145429ea94c0210b64200882a06c4605eb6535033b872f5eafd72b878e5b858e1d3a76bcf2bc511903a42275675ba0c19501fb1d4fc5698b35aa1119e6a48b8b8bcb8b5915a68308bebcbcbc886314296e0e348c604c4c4ccc88818c8c8c0c0634566840994c26a3a9a9de1a4853f0b0e1e182c4c54e76ecd8b18307796b11248da45151ca8dfb071ad8302731c000030c00708334c30d5853535373d3a3f6009b0d9c00e004804a12951a723f38e54ad62d23003901c8e9ef25e11ab11c9d1c1d1d1f3a3eaa6890b08f0c7c6430456a0a54a6df4f99563ac5293b0e4164a041061a541a8cc30734f8a1c18f2f496cca13249893393939393f3698b2e466f9f0e1c3c7063b529e846bf447c5d3c3d3035aacdccd430b173d1cf47030058914245170e0c381cf941840bc823b822a2c1f203ee107e4464525d318bd39657a7b5244f6ce3709901f203f494759b80e31938224869f0e7e3ad8a2e89604df906a0b3a00bb3bf0006c71c8e4268e7fbddd8ce412bc49b952afe412fc022976954bb02af7835fd490fdc1ca5d6598072010204080781004068c2060071d74d04110a0972a80c02041828442828443c40a94a3349963014af01db12255808386886ab45e4aeb20cae3df5fe9d8cfb204fe980cd86b434441458042a07281cb37d69cffc588f5a9467d1eb6058103b3fc871fa40896fdddff591ec83babade0d058b53e19f55b26ad9fbc3ab0a6ca4d9b36bdd4f6926d25a3dc475d73cd35d7ddf7dee9f240b445fc2f22cbc3c4f2675391ad2997bed4e2525d46159a8cccf21e8a50b1b86289ccf2bea4db5803976ee4b6369e745be936a64f8bb2ce8ab28e6b81a2aaad9aaa071478e6d27b44815daef1bf7eda2d46c26f51852623837ea4c3060c1a85e2043a736450ea3519d9fe578de428b296c03ac28a1382ca8a262d9e4a1045a990f1699028c8b40599febdb1d8f72d7a4319043328ebf7a32cebd18d58d070231630b0ec63ffc54418886a312f1365fd391e06a21accfbcc13c9c4fccc3834fb98981fcaf130230c4b154c697e65058079992f32f3310fe43271d66cd8c0303f331b65f4673f6bf573c8bcec4b88f9d9c8c2ccc7bc6c64c189d0cc28a32ffb998f7916605ee667adf45b9e3dcc0bcd1e66360e39119abd6c1c2a290466559e008d230e262cc4fccf60465950552ec0cbbe7c2366a36c04d29955359951465f06e6655e08e665621ee6e92834f3322f330ec9fccc13d55a8ee64e1c3828195102258ad38c580405189b84653e2b03451ff32c4a33cb971a463c03cb4a88a9596aed52db5a6ca5be845216606441434e62c621165ae8ac6a321ff33363db3aabdaacc98c459d552d6694f552ad996cb3c6b2444c065cfa921fb911a5b59393dea484cbce4c6046da5894e6586ebb88252525615316ee655365ac272827599c3c39d55277fdbe3a8e70e9a3338dfec40cbc24ebef2c277d87d251d6df56b2bf1f81d0636361d9b1a738b16508fcd98998fc40454a92215c0004d2027648c20a551b5e1c11a2f24c28ac289fba65ff490504562e5d8aecfe945d0a1054b974a9ecee5f69d95e434ff98eaca35aca9bfcc9979c893a148e11670d469c35162c98d3d6a8620e132c13a23eca84fcc7a7b45aa3f5085cc67486be4953e6dcf07c920a3c7fae40e9e8e49c733e9e1f9bb3c198cd9ce63f69b56377cbbbbb7f7ae60f192ab8246d9a60325bfa311b0f38f960f69b6359f36ce6e45befadfd980e276c87c066298c90c2074213c7bf0e3d10e5a6a53fe95f276b0d2f5122be49a301567d4a94b9b124fac822f00a34d79a27dc5f93053ea1a1c0f38685549e54f2bc5d9195bfd936e079bbc22ad7e7b6c0f77954e17256f1c00287effafe9eddfc5e8f7fd64202b48082932d020bb9d400a5d735fb359e20c25cc4167152149c9cdfe34f9c7e1b265cceaa9000b52596b17c7b984069f3b158662097f457a0b93e37aa8082937d423fee9ffdf7e51c1a2e433f48f00516ec5dde651c823dcc13c18465d4865c4699908beb0d1e62d4609ea8d6024ca906d38d3937928ada7adb7d4b27870af750ee6442b07f6179a29a8b281372199a9da036e4f22ca313d9cbe884a8568303f65b73047b8e18d81f88763071480335a258516b410324ce60aac1bc8b3814ee506bc1458d1acce884fef7bdbee609037d2d171f30cbb7601717ffe12476a94094e7e5ebcf3074fd4bd77d9d3badef5a6f45ee5b224c741127a58d26d83ce1fa40f4257aef124b9cc3b1bce20a5ea70116feae258e10c2079d0f92d954ae40b3ec878eefd851d6bdfd2aebc6efc6f9a3c58ba0fa45ea03d50fa17e8b6802a5f5b3883db1be0e7cdf37e6dc7eac40337ddafdf795dc58b68b73fa58da144212b8ef9e8ad4bf72f38a2974df7986443c7719b081cb20b973e880bb613feb91c7eaa48d14ea059edf4fbe80e79349f0fc0ac33769bee90d9b949b9c7794524a690bb1cc7967eb29f82823427b948940ff7e8340ffd6dc05a1c4a854ec9795490c15d188000004007315002020100a8844229138284d844d0c3f14000d799c446c4e960aa5498ec2300a6218428861c418a000308610688a46230131371c13f54197eefbaa9284c05d8cb8b5792f5b41b412ebd7282bdb3d07af94653f6253c30404225262af172267e741c59fa5a3339591c0f33a7c1fffdd1cbd5dd44bb7c1df06e50333e67bc22d3b43bf2754db83da35883a1fd52ea636f111afe2ab0aba3a018a0a3e72f4aec3ec1bced328b159f14f64cb93fe36c8c007866b2b25f7a9313329c1741a21bb5499e7d487f91670a2ee137b00a9298edc0362d2a305cc4fd58e8c1792a5623dcade332379a7fc1e7ea13d8ab043bcb050a2b69f21e761edc78c8ded3a24964151650ea3fe53da83a776338d6838ec9ebef0ff5335e1599b9cfec87adfdc08d4e16d642510d756ec508eec0571c470bcf8033275cb4dc860d0a87964a9cf8b05718861a0287890c96b4b43d3499b77df03cad18dca3a5c29cfd6ee855aef15cbfe72a8744e5b3160881ba120898fc15281b73d5d5d2017e5c1270ee117d1b9043515ecbfac02f4cb484f91a35c820b389b7e70837be8e91ca968ae5b5bd4b9503343929ee390fca76a4a071317b6ad80e6282cfd084028e8dd1d8409425b94914ed4d5d54f3de6ed36a8917a235a1dc4070a06a3319340042cca66c45ad8a4ab73eb53a9401bd0b4e58463c76d3dbb04598003815b03d14d0090c02a622c99e98737784982d069e2bd01c06b94686abe67657d68765d11ff5e4239c425fac42a3a98f5a15bc0b08dde525e00b2b03711955e43a39828156b3ac54408eb9b7ccea12157df71a25f46cf55206de4338385b18c6068848c72f556fa44bad808eeef9446efd5420cf92fd3c39a08464f38352af8c5f5db6aa68350fca84c95e8c718d034079966ee57521dca4f92b0c656028ae4905685ce595bfafef0e036d8fffe45f82b3dfb028e17febf443a980772098ba1d89bb853321c662b682f6723473da4ec6deafd8323b7b580f440b1710011393a8962710e37caccacfcf0d5560900bba2fd3c01709d7adcd4e4a0c9625628c4bb49ff171f6d9c890151e74e4747dc7c4bdedc35572050faff5bd89dc1cf06d323a3b8a82a4451fcfd0b3e13ae0939e82f967e3c260ed3a2b39824e1627a2e82f55cd38fbebbc920fa0208fc934d8a7dacff598b0f5995472461b7c95ed4ca32b43b1a1f05ce843014ff719e43ef2bff33c9fdc7df2d7831d08d524d964c21300e99e3efec7931aea25c954d1f21189361ff5e8cab6956242784961c532ac6fc9d1378b4db8a5f213c14730979d613ac86575d29caafc56b0b8a3fa469e187396a6278ddd1152c556f68111fa152b1c8388538d206fd6321c43e8afaac6fc87d4fc785192595a1eb412911de608de523eff388198002fd0d6b96539f23d15c79f7e5da402040bf2ac46ca8ae6a0ffb8b9eaf926f2c80dc07628f9126ab5cab6422e0f95c2c597a757d931411815401a15f42ba64dda785f31659eb763bd9c3a53fbfbfb1ced61019eb59b82ef1fa1f9cdc96731d3d5f5b09ea2cee874e2dc63eedada2630811fa0f7518dd7238963006ff40c518449739eab4c378411c029d90f5b85b0dc176e3d8a97068d71c0b5b76564f22ac8a39eaec5a3f4f26e2bdf2fffb463ba1aed37cc0ceae1db56bfd98c0acebd74e6bca8bd20352cb3b9425cbb41ddc723ad526eb764fa333e0ce0fdd5be919e90b3419777ee86f4b0e873402b69c0078cd1d0dd8ad0b96ee78771c320fd9dd9e360e7b77ba6bef4a8f9e74c3a76db02e2af20eb135356989424230ad6f4671bdbbf73161e8cf776bd0fd6234bf3b76715c819e71827f67ed1b6199a2a41dc26792158c4d7d4eeafece72491e14a8c0cbceee6952f042f62c88a0bfe2fe88bdb2298467a7fb0f2fdfceb39da01abef04ea4af91a4be10bbc4d18b26d91a4fe6f0660f7dcc9088a78c157be82fdc5a80ff84bd489bf343c568a24089b9671d021599e8615470b629ac19f4bd2f1ecf07013c2da060ef1fcc210be243f908e28218803118a960f11aa61b4cf28cc7d51b1cafca743e1084f55b851ebb69d73e9e7dba3ff9623b498f13d3207c83ed27f28238502f796406a1a0bd85bd340eca5b7cbd8e2c31853c1c0d597989adaa964a792185e091d06500dde5656ef2890a5b298884bc8e1abbf05089545f6c2dd1bd3d8164e452736b9f9097f822eebaf54fe61f7345f3d0bf83d25cfa86c8cece548844fc7e75b8181f4283f0827b1583741d9e4abbfc5a495067974eb45c2181db4dd49b876ccd28757aa346f0c1a3a8ddb421b1b81e430c40852442144e6a0028a56995646f507482fbd717479b7cf90ebeee01bb0a708650fad34d5905d0476a560f4bd746a301390588b1446bc0259e798a09ffb1bd982ac4d48d770429a1820b90f2f43df3546132b1e09e58a245aa082c39f6ea93f00feb9611ce29b7b2955b9809c6bd50563234f59df2dcf011a4802509c3ffbc99b9bb4b9b692366085b6b6a797067214f5b37e7ff77606fbade86c8cc45bb566427c79d5c5c76eb585421f09d82c97bd9b0186c7c16e72065534e4994a5947228a374ca2845894c4950940451325bd0d34839e6c36c39e43d6b5a0003fcdf9e9033a731189966fd43bcbb58fa0c33b91c0cc53d497f6eadf97c93d4690b67e8e84f0624569d1f86a9758828a1513b2fc395c842d9303d30bb3ef913126b7081c8135419ffe31cb763bad5773b3315e5f04f14c9dc786e21c5b2a3bcc298630609e23477f9f4a6f58bd736609e147b7cef0a9918225ac9a207f7f60288c240bfe4d636c2b5a34387edf1021cfa7fa88db18587c5f5635f58ae0570cc96b62d520259c4040ec304a8d1e3c412e1cdca2443179fe2df49a3855fc78bbd6b308b8b5329583b7734ca15257482401fe4987c302deaf3c0424496c2566afc3e019137b71975865235da704b01e6a8d8c8f8d2a2c186706e81ef54f414c899245f9b94cc7f3528415fba916545200b0b3bec8861097d61350727ebf16fca96eba1520082e8682e658fa4eed18938fe18c10a4281f41496b0b390000f351a39a5b828374a9aa88eca735532479041aa5e8f5eb1522e4d48586669f14f82100aeaf7c09a922d87a52552f338ce572f5ffd89d81991c76d718c2d856e8c8bf485f47dbae609caffd667806ac2121faf32736d1ed24442b737cdce45c4596d619e91357ac122f9789022deee6fa383699aa20d0ad0a3c6a2d06d6b3a0e2ed1a1555c9c8a602b9208d6cef884f6a5dc88d4d88426c3881ae2c2b58d79e3e306f25c055e08a2b0812dcf12217056eb0e6c7c3b35c67e41bd0b22c8ffaa2239e465baae9d2b8d5f3a358839dd420e887f21e477a3e1f45e3892a48db361ca44c893db5632064a3853ff71cc39c5e56b80f00f34a998b28de90ab2a2df74906ad94f1150e79649ad539cda25c8a141c9b079e14440776b39afa0c9f8200fd3564bfd671d3e29690743420c052052587e43b28b718893f1825c50811eb8d6b8af034087f40c0b3209f58ecef575367e4c43a991dec25a60e5b6a8b5bb42289ddbc3014f712d40a8fcb7a19ed642613d73953cd996a4c2bbb8cff3412c6192b2ad3f6b6b6470ac98d6ed0f204df0c8e40450d8849d2b479744165c4950fb825273b9235c0ef4073c5ffe1556448eee0422330677c940396808c424da42e1a0cdf518bb1906de3fa97ee2cc3637d8dce40469c7aeb73a3ac57ae5f3a5bc59c103220dbbeec1246889d1d6f9f3d52394a2ae5a0a2f21d4d77be409e558fced38116a4d712efaa9eea49600e361e97d52eb5df90381028b5f30fc2aed91299b4e03dc605ec0fd846bcb6d74fb93d9e71cb6349a3f9b0a957c24d3a46b7f516a441aeff0cad1b02d5aa40adcc334f20f00a8c4e1025fd16a99a8284a87a86f9b68f810ee85004806b656fa3400c4a2cc36d3783f9b17ce7673e968135457bfcf8a66ed09fb4dc048605fe77e8ace6ba09ce97f78c44767c412dd72474255e3548b0bd3881a6fc8e1bd23df3b6354af70d9405470b03e8c02775e7ab5d3ba28d86c6b80aaff79c6a31033f79f55e0172c15b5c87182fe71e2c658c93f3577670acea1f644e031fea4ca9c4257060e6bbf59625e2f79d9c8ccc96eeaa9b0d6cccc48dade5cb07553d7f88a4ca2f129513a7c90bd42c6e84de5f45e142426cab0bb83e9ef0e4600a242eb480e503ef9ae139c85f7e7196e80dede6986b6bef68337c0f8639b9f9377b79c16c3cf22bd3547339aa76d276b76e1296bfcd245d66354c3d9546d5821b0c3c0d7df5a8c3fdd3e5ca6e287d6564c661a9fd18a0acc727d9540e036bcf25a51cde597f8c7c52bd6c9980274f288e1193d7a0a566d0d5980f5107efd0dfae654c733e554020850aeff5ff0b0e4fad4db282149ae4e8a4269e180c57e5db29947480c00ab22331128286c3f4e409e6861d587d096d2e901897ac15887418fe09c2ee3e02471b458b59a3a0fa6b0092fd4d24e845fcc2281faa3d8ba6e8b18b27efe862cfed840dc1aa0f5448c4b5cbb0c7fda06099737de2cdb1c5c6a343893dbd829bbe55a75408a9b0d5c598d0ff038faaf5544ef0c53e3b9f936498a8c4e65f2f722397d3c5872fcabaf5c2ae4437abeabba188505fb400d781effab6522059a2b2e51cf322e0738ca1870ffd6ed0d0a5a2c42ae54bae8f9f08af86f81b292082a1e490e3656c7790696ebea12931d4fd1220aa5f5a7ff5af5d48337c502143ad0a60ff443925078b74be3903bcfae14cfd9849fdd995c71311c63f35c183693dba95cc855d860b02766bae4cd3a684436553675f09c59d5038ec442d6a46cb5b8a89edf89e664e8c3379a334ebdf85a2c38ec907a0b87275a1db3b4cf4fd1c0771d7b6f9b4cb0b37e2deff227959665eabca19bb8c253d92c9b9f41975d75cf73d367b6501514ccc981ff225440cc7a759002b6a3428c2e2ce8178c4cd4e113f1f919378d39348cd539a14bc14a98b5b4d22961ffd49d380a51096f2478bc5eb09a8bf12b6a3b029038f798bcad5bbbe143d2c82461172c5d3467ce97160e74c9d00e10a93c84f2207f7d8f4b0ebae407ab91f18590b27bfc2d6fc352e6c855cc7020228664e4f9920b880c609d52b48130c5b3139454e5a10b496884da47eed68b5189ca9140c342a4d2203dfdd91228ad76ed2625a1ac5cf6c0ff38786e37f87e1c5c716374b12fb6dd100a2d86135e00e4426fc8d10eeecd9ce44ab965665589c1f0d3ef08104d2f073fb7d049a6b6d9512dca4f7f16d69d1c6e8b13773ea17daa01df3694d662ed1f2f8a446bfcb333da86ee9a1b38fd9fba30268cc7905ae7b2caee4112012749c3bbaae243fd0698305354056d7e00bb5daa59f0e5e7930b2ad30236ed9078c388c31b08e4681c6561b8e0e1670d64f638eb17635163b97bd1056cba10868bb94e115068c52582312b97c063bba918289b532321625e7a1f9db289cf9f6784f6024f823412062e9be4e6c04fcbee9650138744c7f6d5c9b315d9bfc3929073172f6e3f76b1b77b0aeed0ff0ad60212aca5139c08d6320971bda2d2eaa98852d8202655cea66c35d52620d69167f5576805494d9cb579eef7b21b009242d8d468ca17bef4606b18db3f3290ade1610e6ce5a8f4eda779e962ced4700305996f99a87ff6d5ada9e6b3c5cd773d387d0cf5818aa8c507f15c652fd0645d4b9933b86fd653206b7e794c8692de7cbd924542646d9e92eb4734d74ee0b9de8c659d27756cae0f0e6ccd474e9bceb9283d551fa72f2510b965de4fb93d09c25ae157b3554118024fceb5af69507c1ae51ce06602cfc6382cf929d92bc521f6295f8e7de4b042bc3c404c025ab1944715710992a12105e46cf5ba83524ae8698548850283c29c2622ee643961491a013f40809818f011456e6ed54db44d94d08ed6b2035bf8ccb99c2df81901d9ed4410b640ef6b4fe96d51a2f483d6e60c6ba14e7a8bd44e69893a2772d06ee7aadda890e7b52479438e1e021daea2b3d614529f8b05c211d1f646887a6c21a8b8cb69b94df4af91488319ab27b9b6b146ced1a17ec4ae05f3630ec42412e689d40e62560cef4b8b8c0a7baef17e0b6e7181a9af07d48856adf31fb3f5ca4327e754616880d466f82c8f197be22f3dd251c265cb1580358800ae1830424705b9ae197228250e85c5208a3907a534c3ff6eda1c350a9e8b8a15ecacface5d130617b2205f74a6645ff3135f0e27b5d61f1cd7defabc5231fd22c299007a8dcca4761db3ed958952bce591d2b62822063766164669b529a69ca2b441fc90e338d434fd5a7dc394a1fc4b8d86e601a023d4541ca1f9e5c69280f273e5ad299b8f8636ca7b009efbeab3a6c283da995fa846f7ef4641de0b40210026d499c0bfa632d7c29d925d49346d2e93173ebcfae368d0c38059af324183aac18aa310b4ffc389b93503f28c5ccb8500fc829a0e7ace60d07a15aaab7130e50197bf92c674b4921f0ce78003caae6b4e42d8e928bc8b1df8d256f5b1dbc03cb929f974b87b33f6eae12a243f94c0fc7362febafd68b31d36c83a14abaa5307d599fee17c4831547bfaaed3100470a5599f866bb18c3b36ab022e11145ecccbcfd19743401cee855ce3fbc1089bd8fc340a2ae2796e651429e5b18cb537e06c9a390d04863550630af04895ee0d5880517522c8a9a1cc7fb52038549b33cc8fa6dc8834dd4eb2c01944984523ce0851de4c41da8487a1ed4cf32d2f5543a86135fecb800f9536049b368991faccf69e02da67b49027aed976e79700e51195664335112269e0c36b0fd6d3c9a8bef69ac5d4250094f51569fb1c005e06262890501778f1a35eea3af8ded3283e1bfe253e4ba8ef992e7912448094ecc3610ace753d899d517d3c78cc0cb8c62e1ae02347b1a604ed00e97921c8431dbf584ebe141432524213b525edb4e251786bf5e147a4a365706fb9e241d35cf9e7d44d36edc62bdd401092c793002ff10da8e899b444cfc042173d4fab0124525c9b67235a39e286eed605830120f8e2c007180988c0bc048b2d6e7b4ecd9036143f71b9835814f258bc6aee218b80e9230a02520cc6129e6e40913e9ccee40fdd82be8ba20192e6117043579d1a73779e39ad25aca1e36ae03cd0ae517d1dfa94fd20dd0f98a2517452c84f88cf02d7e2ac818775f8745de2bb222d441236cb7a8af7c581d3ba832b5ce1843004df5fa97c8ce60dd4fcc2d17a31c92ae0ef35299a2d3dcbe28625f82dcfeb78807a4cd854447284d32103c500d53a8de90164d7a92ab04ae5f56568ffe83093e926424522a96452a5d3914d8814370ed0e93224a8cdd4d2b1bdc90d92ee44e1c05926064a5245267b05a8437e053957930454e5ba79548a86b60f04bf2b7809539a02e791dbb0fb6d8cd2e36062c042f73bbcf34adc8e60ce3682f76b238fe1cc502bf62b9100fb2305b5db30dcc8a9094c3577f858dab9be3840ccf8bc66bb8ca69393aadcde6de1c7dc44a845a89864d8ab049bd6e2f1b61a5c73584fb016949e92435cebe564dfa1ffc58703bb8fd10ead8037f94fc9eb7026f2396e9d3fab851b407d93288ef1320da9ed5410155676fcf7690c8dd4a9996d452b72b32c1cf1e64870775039ad5acddb048937b0403a3a922a25b0328f7cb5063980e15cb4762c4d3a9d2b6d04b8381a26869ce105c2f1df9d21470d234567163511b47194973515da0f46705a7a17bb8978301ea018119eab6498fc75c912329319130dce6e14569e91e443c2a7be7b38fa7aad161b4c79cb5112d09f2d0254afbd84e70c67cca62a0849d5bf0381fcd69d39e60aeaca6c558297ffb243d6c8694642d6341a0004c2f50c9a42f0fe07584dfa9d52f01bcef80aad620b118c8f7929800bc5d26a5bb18570fe86edd7314e4a38848d93881d7501ef1961b40b96e5ccd9fbdbd45858718538eeb1288f9ac4c1c0236bb1de367631d5817c6ab098c230afe0390d7551f05ce01d8b9e1dc68e54e561495e41788accbfe504e6c825d452ea89b4f28147f48f8a0c7fff4fde735fc1344793d1f465015076247aaf14217b9d36f40e665987af882a386f6f2d21c6d88841c21946b7ee204c40dbe70fc228204de0cc08e5fda6040a29bbb5bd9030873961bb2996b591c30dc1236f56f8254d49f362cd29c9ae9f0be20da5b952dfd500c03c498b8ade8f05880552dc61806e46a379447897d607ea0d8b330912792bc050faeba2801437d7a3ad212e6f5452d774ece924a66e844bccc7172f33a228d8d3214b711a6ea80032f94597daa1faac6a7b187951d53c358d0ba801a63e934ab7a24aa19010743b16282f01d30d6c22a50badf186a44fc0ed51999387903ad9598c08c343901acc793042547c898bedb07057e8aa952ce00b47d73faa3ca4b04e91a00529457aa0c05b7512e9d0f193075915d418f501f1ad0d31cd35c25676cbbfb16be9708a0a6d93a2771cded61fa35a1d2c5a52ba10407de76785744bd40a8b7ea35cc7a846e215dbbc7091cc9536ae4825ada8d8cb542424c69b8fd3b244e566a02cb8a09e05ff597165a3bdc1bba18bfc06b62ee91d8ec61e407e400c9cc7e43c8539824e6be3293b9100eea06f0bb153b5d49b3d4e141b13d5539af01f73774b24d1679987f0865d4091b1cc0ac6609adf22b1129ee407ffc15b779627bf38604315cdb3892faccb4a2b6f9f18cd9b5ea0e4dc0b8a25ed411860385b45a90fd1612ec94f3645b809eb7c3ed67d23122217d9359041a446beacb365814068f5bef2630e1a3993b0ec4ae9bd36046df79049dbd4186b43d1e7e3616152769401d1f4b0d648b7aaa41935573b01c63a5c9b85aa6c576d46b80c3ced8d5789b9c4102888651a2f5e8a31ab05d709eea9931753c0b505a18cfd371965e7402e9d86bf23e0b34e703d592780996370223b4c09ce3767334804fd4010520e7a259bdf25ff262fec95e41248cee6980aaeecd4b9d78b6f10ef8d9ee031ebfd8f719dd15e4b9d5145f725dae49b0931a10f9433c1bc28e84636b1248a856a58107f653c87b50d229e820f598cc49092ebfcbbcbb32158feea408a64c93299bb2c8686ec3044a42d99a949ea73c60107a4f48ba51072213e72d5b8832623f40dd270e68c641ab1b725ee664c36b4619f85c142ba742b4fb9a3b5572d6ca4821055e25f6c6e319b318173f9d376de668d9f831901bf550eed5b274aa2776589b4a47886637f0a906380e7a3153dd1ed52844844801c3b263573fcb109fb814f9ddcf44b7b9002ac38e925481b0746840b4c8e53d86dd6b2ba618b2dd2ad0a3f4dd98a751c6497fc19bca38e92491dc8c21eab1eeab701d829244ac85dc59af025519425cdb868433678419fa7c29fb270844552ca4e224f7e4e785117d0adf5d8ecb401e8015a91263aa49297a09a2b9e6c909e5a184255ff78ae2257b8c6f11f2a58e8b38a9da713ebfe701834b7d50d785ae1a85deb69854030fa81e2f11318940a48e0aa72310f4d90884ffe8a12a787bb7905e81f88a019a1650b086f911a723de34518dba58b3cf7612cc4c23a15b69e0698e479c189a249875451c5c60892e81c52d42255496268e03eae059ae83122648e714d50e0bbb394d7d04012bc324cfdcf20cff28a43ba902436e75af54308545e9db437ae7dcc9389886f142ae061e3931059aecba4405789563e60ef9b1464ba223d80bec378ef29da4786e1437bb06299af7504687c2020b31b7d62450c64fd15fccc3e6fdac088a97e6caf53c678d83b366aeb7535c26634300146b81d17255068618e60421dae3691f351608f989245d2f280ac765516569d481916ad48bdb437f16edbba3dec8628a13a4c8bc51d1aafe803d5cea9601f68dc740dd5083f37677274b14d5d0f49f7a8ed237f7c934679b4c41d035e9d5cd1c2b4174f0ceb460dfddc13ad8bcbb79e959824c9237421db493244a6e6229a7c947a9c579fe2d4a2a40f028cc0a5e957dbeaefa5a137e621734aaff3429d85885446de9632aa4569dd8848b0a9c48428ecbe27837eb332e162ed3cb72452572c5140753d83f9bd4616ae745e3e96fb37964c71f692c84cdde55b9e5e8edcc51297947864f01e84412dc61efec5cd3639fd8c4abc6d9b244fa2c89dcaaa5fe5d4541cafc322cfa083b04477e879185ac2dca5a01a6c5798868230ddadc1b42498be0b60397a95537d87188be5dec091ca24b6afbd4b0bb9f2f3b5d97f8f1d9714ebba9170314020704fc1d4ac2e21242f22ee478f8250ed1147f85cf66c9ce74e03fd5a90e827d0ef3fa0d65b89b8d02201a8d913b30ba804950f7ea7f75107de015941de8d10c2cdd35a333d68fab603d96ab24a76b691663df023e914ce421c07b96972760c6abae5bb63c6d92611fb10f20b41bd461a1bd4d39646608df00c63520dda0899c11b09f7604abf6ada566af69bcfe7ff6a6e23b9880f73c6f16d18c7381e3e8e0b69929561b605e49bb44b92f35fb565b714ed6845485e08d38cd85694bff54b5a99a1997a442fac76dbb31e483ee83b4f01ea04e462162971f80328eafa0ee915bbc5f6855ed8b3bd9ad6a59a2811b34e05ce3e5aca844e2118af510bce203a2e1b15f5d5758aa869c062b29d59548236c561275e16d46e28562a5e72893a83bb31ce710f30c5f228717496f5d8f654924cee134fc0dd5f494645793342fd21f08c701347e5c789a3e2eec451653d715401ee89ea6c4a32b43342e5b17d221382b17d7388e18342e2f20d48cf7dc7d875fe75e22abb9984201926aeb2e2357c153540ffc4e11082ce3752fb2d09078ef807b96ce7e013aad7052b6ec30604455cb459dec48f7a8b046e5a9d27ba92ba6d80d0d103a8162100209c29d3270210059acce857334b744c5663a2356e1b8f21a3790a2f0e2f287513fb215aefec6d2e506b9b10393d8382d6683b95dc14a982f0c1eb02b46a30a9d7d78b7e9be4504d2acea7e4d43796cd8f81457b015039be20e12d9e9ac452c3cdcbfd8de6c7faeebf24d1bff7ac2338ffd5dc9a49622b5954ed538d05f7aab39c8c5e68efbb09ec069070d1c83aced90c33db51117841f583a538222acb3af09b379c2791700ac505b5d054633bd43a407e129e5411081a0a95d06d607791ad29719609145f9e83b314c4691d0ed92b1e31105eca58db62f474de295a78ebe9ef10cc984231c131d68107f89fc828fee59e25530a2220bd86850c6ab73ff0e60909dd9326e2f0bdfe02b379ea0375227088427d3dca8ed835b15ab4ac548c58fd23742aca56dccad598d99c44a5f0169b720d22d905d2debb4592803af5c4869f285842862a91aeeece5cb987110e6881655b526629b602a8f004a89768b4f59639653cf6c122c71fc09a82a9188f5ceff6faa2e034b0499361a21140933dd05a00259e9b73605c3ae1a0a404f3276b64e117b1b494e4090c47bdcf90a1f79ea8c9e978aafbfd4473563ec6e5d204994f8971c9bfdb362b95892ac96ddfe31c38ba0598783c09b52e21a81f21012be7f7fcdd87aad909ba69561c29d45ed6b426e066a1fe686515821c2261bb8a0e0676489b415cb6a218e801c46f307a113107595f922cd081e22ee3e352e3187292327057cae8b387f16a113fb82e5b3d3dae0a8c94f3c0c86c74414688db0c41a5f9ae5ae8ea3ec03550e432b07a295b8185350443fce246644190854e8982da78d4a2a3d9f8da48ec7adee265d2dd5eed868528c57b623bcb9cdf5e60b3776d2a006079c612ae2028a7566d122008018cb090031f735f9ba3b0eca7c2292ea0d6143c1fdf1e1d4e00dd0576eee276f5ba6c7821506e326bcde865d3365decec29881af686541c8ee08607ce6d78704d5b510ae169f7b61ef3908fd6a5406a01845acaf0c7ebd83e7cd5afec258e49450fa8dc69cedf543a677359bde4118c32dbd1335de55bb1c3329d18f173078b09bb9201146ba04a3a3979a895a955947f73e648a235c2d8f8da744637969f0c151b1dec7f3025087910581a19bb35998549a6e92794209ce4ee808e8f7d6789cf475f631b5650b9683976137f68a3cb7ed415519364c26d143c0deb122194c53a7c0e1a9c1464722dd0dc85a4f9e8b14fc783e0d0e4d13a12bacdce745e5252b10de7276ac70a41880a3c2eb41ba25289f4d648e486999ab69e89268a145de16260b9ef174253638899805e5d3b2207105cd8c9e3a6d6b30521dc0dac9c2881f89ebe1496bc3f2573e3c0e6156793c1432cedc1b83db7ca89292da12198c19b32fce19902feb6d0e7d483a9b7955d6a938a1200e3ae48f5cf6bcfd8a616ff8eb0bba376aeff7162fad1a181c81d21799372584f3380d8c7b33403beb524084367fb760d475484c0d5fb698a1ef5364b85516753ec1589082419012b0448077b74ae9e0b9866921370468080606bdd57ce0ac4b7da7f80afc2ecbccfe1f922e5bc8b8a5b8ebcd357541eee81596ba70d783ec75be6702f812e51c47928263ecc4159d547211c72a25560e47ca4f70a493ab39572fc150524bd69beba3e0da8d09f3ea58da0d699651faa2c419c812b8342a2ec82bbe11ef4475b9130ee6e1e289c261d6ac5d9e0ed483ac076512a1d8e32932068c54317009f1974424e3d6d47a19e9c9b006b54979ec9e229dd0102e8e7cc4ed4d23c7ebc0cd2f8e91e6722cfc10a3e764f2ec3b77904b00f9c4f8224e9e2a180280df8338739acabe2af7b866e79c21030244e6744ca7c930d24be5d9616ed3568b94e205c670fdc9671c6ef5991ad8920f49428590e1ce2cf828cfc89365f0aae6189fd492718e4996a5ad6834de9711a819e80126fe7f2d0dea9a4ffd74cfd618a902e8d63e47f3597d3ec9df2b8c899dbe4cd11a48b34b6dafbc3f45b652e9979e3a99585287474089a589bb8819ed75b57c1e453221be2d02a3829560968ecd5a1df440c9d884ad911864ea1c2c79a400209d19eeda2d42f4070581253581216b026ab40866d876860aab60fd4a6d6db121b5c39f5691ca4ee2d9ca8580d16db323b5823eb5fccd956430331bcace28cdb0edda88213cb814597e60f106ec7739f5869e4173803590495cfbbb689540cfc60e55ba313c462f96ed39935fcc45c1ac6ba17503a020f1e2526342eb54f1fea0d09ae98f23eba64b779c24d993041a437969856e03c79b630ccf250f63305595cc5494fae38091b622ce5465863108796c0c8647291a66789c9a844f346d54cd3ca0d75fec7b842ff3a7ed3e16eac22c2ac70251a28ed4d2a2c34a07896afa882ce2c10da2da60ee1977b1a0640d3ad35cb81fa074ee3749a3641a266682a283f5a6afab66c1720c7bf55d4a948b3b0033d0e8dff97637148efa776ed8dc3682de4999e025d034ad9ab79f30348764e7f5b065c009e5285dc0cbb7302bc53b779e5513adeaea745698f8574342a65c02358a37367300559b4793659bd5e89c35ca6793d0a95e8a23d328dc088d5c9db332c6ab0d28d30004c94f3ee54a3ac61fd1d50c1f6b293bd6618c40c65c3f059e17cdce5b3fdfb33d5114cfe023e4ad6acb37f970bab6738be7e63652a217cf802277f83bc27847180c4f99c9f8a82149742c9e020fa2d4c4fef6aea839b8ad444705a54017ea548c34478d3f29915bc6c5015f0b11b1f08b2cd2697a2e50b8a4bcb91da5528e2f82bf1c452ef28cee210d794ae72ecbb1fc104c7960f9c8e0d88d797becd91075476d0d11c14e6d24ccc5721a228fd03e5216cda6ae54a332327dd8c99b145c43a4551d3bce468527743184c9c3fb4b9bd456c47c85b2bd1eac5819ab1383e6a1a6b65b533f065aaafbf35ec809d2350f5ecbdd1f25a4d1989b991a873fcd6d2386108b93d2eb8049e245627a4b34fc617d7929e3723e056efa4c6c216a00555795c0764ca912659fc5d3ffa8583b4db6c74bd4fa9d19628fa4d3354161c7caf9ecc6cb14aea98cb6bf8189b931577cdbf51699233370cba5bc8e5d178fe6b0a6af8d18cb560fbac158a1dd455426c972c849a3b3a569a344e8a19811682a8946cfbd8e6cbbdc88b09856e403ca654795d88b4fdd520cfcbe537049e16547622ecda0ffa0c7c58c81ca4a783e9d01bb9dab14c0c51b43de822e10ec4957906c859dc16e12a3e08aee75af493b60890b467da80dc6d8b6bd61e43e514cf2c0084847a156207d5d83ba88b69a4f9ed85a36c13d40e3d12c3138f5d24ac81770e2a2e992851958f7bd6e705cc71b46f34960a5a7cb3ac48fa762439926a53cabc301f8023743cb24b3e2bbb5af2493e790093e20d214f2f6e54d126c054954176cd4b07075b27aca728994bc9eb51c6f03de3a0d676b97c01bafbccd23335fe891bd98b712d50c53cc483536d1e8c036760f5f156e673aecc39fc92d87e9e1584d46468b570aaee6aa47bd88cedd9178c04f4a7a01bf42fc0b45b417305b28accaad72546feb707450d6b639e2f5cb905730854dbb9308af8a2d13fc338898740731e6bf6a8452484c307ac20859df110dbfb80fc31836ed5db0034dfc0f849e681146bdb98f7f3cc09328eb0d01c6c8d17739f684310817d14e9237746ef1225a7d15e35cf91e2312089b37230d16eb56b728ff8dca9cb7764df10ebe839c66e0825c78ccb1aec3d6bc80f644ea5de922670b54f5b49fbce5c97a0fb570864cfe870b5733792182b92e533b26804bfed741cb2f80ae9dea1b6a23ebe741752d8935e74efa3d8a2c95338bc567a7ec75db8dee937ffe7ef45f40c05dfd62a4c507051077d5b8b7e5543437017a88354504e067303ba35186a9422e34a3a81e34e932c3d3e3bf21cf4badea10c3c834b3563ba3db39c1e410ab2c84bce3d3f8206fba8104fd22c1e626059baf94558534355a1911219264c14a3fd8162605c31d45904514366de5241d80c110179d0210e0719d81587f4c8a24c9f617eac9f64bc3720965f2059407af9fb9b4a2bb51f2bfad0ddad8acec255aba4d749c1a6fcdd7b52ee4eed8604f9acafd27a0cd279e49411b7d9e68307a75735d34def10732a226732098c7cf26592bc65bb2962ffb17952630d06d85d5d2613f0691e173c0d2e147af258f0137723b23cf594a343e43ade6b2511caf4ae317a2e85e9935a60a58ae1614ccd12d8a157323d50a35efb4ba441d28ad6182a73fe15f7089193e20e8c33bd708554066635802b65cf4229a7699826c6c82e5101268dd33ef5b8aab16f4e7f27ae3b5b7f83276803bf209bcc97c2c80603891afd807c490c40c84c8c3db567de5126602b64e358fd28ee2f5bb112daf4ef596473cb8a2f92d6dd4379b428bbb32c4f37433658fd464c2306415081f91fe109fde398c85509e4b336f924625ee4ef1f7499584ebf35d56d90e5536517823bbdc11261e2eed3ee996f6758f2d8c678e1324f408c8800b78802f535bfe0247bb294aa0981b2ece982fbe74bfebb782d6beb534166aa8e47045a8d85f50b50c31f7530f1f50ac7a8bde1fe91d597f73958500f6dc0fd4329f9069b735b9eb314cf3201a292e9997edd6e60c51a6cbcb20b979b44beffda8eed462031501ab7cbe58aa0fafd227e6de256391609ed559c6209ff50108b942e9f480b37c4246cfe71a5bdda5325fc043aceef8295c4a74ca35e094e29440acfd6368724d677172c1fe589756957b558a206329ae292e2eb75ea413d8a89fabc3eecebc3b1ee8a4fb9c6f4f00f0af8033d85bfd2b1e5de3763627ab1c714d5f0c1d942e49be69dff7c11f91ca2c84a61a4918ac0058779b46ddb84971c0c2fe4dc021f5d940ae0376206afe904d12e4319d8206f3b8af467ac99bd6da19f68676fc52246983d742e18bdb02251dd4a574384fb5042c71fdc2cc280e0f7a8bc91a1fa9484aece8ae7e5ef67e1bf366d77d7c0916571262af36f563ceb6d15d78009e8f0f9bf3883bf559a28a79dce9ae39550b5faf90d97c4fc0cfa179163684ec4dc1da63d43ff8cabcbbe52db842a665f52afe75addab5868e6e118f59c22a4cd331bdacb15da4ed274cb1a4dd545cac12458cd7aae301816af044533e6f124b995016f99ac93307a6393c0f2bb894a070b6a70e286ac7571630a109fe5b53fa81ad67c24128d18c44d37ceac5731c9a95f8b2447001dbdf4de3e3fbfe211866e23649cedbd31ce2a461867c6b93643deacb2cb848170a3743d2eb58b6ec42ada5e6d0d23623cc7a0a4ef3c4c105fe370dd021a24660b81bcceb6a0a06aab55b296602e53086f566241c10c45016f0c8a53e08d51941f842850e7836c2365b1267c3c31fd638baebd0955ddce98ee5411f556773028b08736bec2e27b0bfb436da5a10858568a93f9286be3e68802ac583d75b2992c06d35ddab53945c5587d16e060029d0cf1639c410a1ec4a5e64651b23f138bcc763b88a1cfa2c2c9c0530964dd07ce685d8d6b8eb3f77b4271aad7b7779a5e78ce539130626442c8e0bda0ffc9907ee21d9fa42d8b7e5fa190d80aaa93de9cce88717475e335108c451d469d348dceb1df05ceb882069ebf498be925156790019cc9839fc15be14ab463d6a8a20293381de6c0e95470d05040bf7fec3c6a1ba90658b3d2e93c3d03c4e4538bc75fe601a984caf4ad04817cb3b418ecbd092d3ebc49e1c6966030f191b6491c70c24813dabd35f100f7257c6a8ece80a6cbfca58049a5a17108b3da0e03834166c74e029cd0f5c53cef4d9340fb4fadf182c24198804d6120fd19d5f59a911612625b21f686467ea23094d257abeecb0c113092aa94472a6260958bf1ea2823945d60e03e43304c2102217e313a2be9ebbed894a5230c971b87ebcbb54d4b56ad6c23ac53de7ff05f6b3ef0264130fa7d7b747dc416aa9be65c9066a5ef4c356eca494497399f1c22073f59421af2058c04c04c64e53122470e32d301d8b329078a5476b6d957198008d27f8bad4ab6148bfe8171a6a588869f5a4d47efa98dbc6206d7ed382a790d280ac2df42b4bd47b2e342cb64a7582d1c06340010f4ff457284b92339158df12a357204f40782a05a7f6aab0b7ee60baa854118368351403a2dd1e0e11c22e66e9d41cb76cd8a0a8323b7497525e1a5c3c02aff207407cb2b1a22963889b158268072f0e4d940466d9cef31ba96ba68508fa023b8621735b12f8ff1dfc803e2db34e993c6fd61ee807ec8dc43ad5ca169e809f787d82a9845f6af4485bb48470e2fb59158a4a58eafb3d8e1a81d3d8d6755752872715770d40b4b46a65e99d5a48610f9d7e0881107aa600c2088af690c6a7ff88a97b1eae1eb906ac68c0e5ffe2a3255c2bbc4efa2206189708eeef80155ba33ddf5b77dc16c45ed20645b158c5b3ed3157144736b6c90d6d0049139112ce8b5301236206d68822b26c0018dd0f14ff20e20a7e864941c8a4b890e16874da8763edfafb11fb2ffa42ceabe4ec9f2a6ed3c9d58f4f88b12fc9aff8e8024d3a099f31f4a94cf29ebe63c1bbd64c6719356728acf0c7ba2551d13a333e9c27b56fa71a38eec05eb52815bd45db834886dc53593ad0a4b15eb9d5b4caf03bee729c285603d1db03de72be1e323af1dc648f20ae261114d2a1cff86b4c49e51306f2f5c566c07323c9670436f685bb601cc82b29f6a8eaaf9609d58a79627f9136d896aef2fa803638a159253a7d8381d93f9b74a826c1df4497bff5a80b87b973e4814805a41fd2efca32e665b0b7ed7d531acd6e0c7b007b5d7fb23f08f89291b785d8046fec784eb1ab03e0313f02cfc0f54245c242718429827ba7f4e7456f6369527c4339098b6b81c7025b2af6def49fb376330e40aa78145c39393a97cc00476ebad0ac99964d54c5185087c22f8e5071f50ba3b68cfb46dc86836fec5c4bac9ee4ab3a020818bd51cdd462433d3f4ec8525fbf7cc310958894f401939381e9985a1ed65ff0180509671dc2a96a9a779ee3826a2e9fb3b73919e6426ef1417b2127d03c8e788e28f8ee1ce2a582207c2c0b5a6a6d3c36cf5258931aa1aa3d13366f8e0db47d85c032512a1c874e2bda5542953bba703a38e498173d31412062b0cdbfaf5ee822fd6de4ced02bb3edbc7f53166ecb745e2de419e35f6b9dd5ee9ded84ebd690261831b1331ec36b6f4d2eb5c4c1f5b4677c4d73e0459243fd9f4d2248fec97a2abd4ae80d3187f8a417a8bd863a7408b6a6de09129929588919f565012185d1d6485e5056398409682f928f13292e60a16ff614fd1219b33d3bd1137ba4c5dfd7b0d51176386a6b9eb787a93073da3a505753ed7afaacb07a3066ffa8c7c795c19641b691f0a2cd1d28571ae566073b013d6dc2d0e5aa615b0d978a92b34045873c1db92f0f5f22fd74ff9d90fe63b10b84297012d399c8a5726366b19df9fcdd8d371da1af9438e47a64e75be3fc65344693d456195ca982a27065107d5cee21b9e86117d3d78540835717d8b60556cfb49376355386b9c6b27214611668954b6ca77130171324de4d17064fcbeab95be78861cbfc25854530895b594c15155672cf61fed1cf5639c014d9a092112eb99ac24831ac5c18889a37ddcad5c2bac2a7506538e7ea0c311c145e18c8938e16e627addfa8efc61b2b06492346684d817b6399ca315038f4b1795bccbde018af76e6455401759e2bdec79d26e7719cb95b04ee68a7eca319cc608302fa1ffd8d8c740c3841123459c36b1e2b825b3dcb14b1948efe8902c6bbc7eb8db6531a0f7b7ffa5aaf0bdc52b7ba67a64cb0bd56c6c03636303f63e61392205c025b8e94932e49000a50ba72f3b337d36889f726e04fc24eec3c9ebcacbcd2abeacd042de2dd12b290092cb7551406e6413714f6aafac9c9b9bbcaec98080406f8737d6b89ee16d48281318e521c9a66908cf1caf4f134330f338b95d135e4473683548a158ba5a9e395277266ad5bd08354442770496e88364f4c9cc12b1b3ef5ecde75e6a03aa4d0a5a354c01a817aebd363b101f80860a054431582c573c1d15c035ec497365a614c5a49b0d177b7a7fb34b37c841f86e240489e9a50ffa6a1633949e3ba29850cb7f3fde32707c659fa9bea399e588a345184eff4c71b1c44d657e8cd560be513624a1b5d14d6423bb62cd6cf2ef44a584b0e1ac971ad9af6a34fb9c6e05db23fa7509c2b38a7103db0cb87a051d5b93e1e008058f0334122e850041759f83326adb2047054a8944b7852b0cfaa42c6f73bf07952c166f8ba948fc21080ab619527de7a1427487f14a74f2a0ad3df6abc4c4e6f7360840cd4146a6ceef4d3b2706e75adac35fbfa4bc71a5614cb43d7f99c7c073776f70c97ace9b0284d20e285e42d3e0bac5af0e88d405d4a840ef05899f2c3e27798225b8729c600b4fb02d04568da9fd7d1f9ed51c92af9fc3904e84216260f0ea93e89fc6ed5f9b5da02425f39868de11ad8d9b9874f2576f45de5e8c24ac6abfdf16a2b0810c9b5ad1772b323d598b9a70d989dd046f3d84c0cbbe67ee6d411f61426fbaadddd79dd5d24ca6ff683815213e1224d9ed26bee3a133b8d35b23b149feb7aee1ca6e7e7d9915a66cb4a76c15e1d0a3a819c0b5e0ca27756fba6342f800647b096c5408c43ca211a8b3accd995677c60451ea4ba62a4c376873e27173943b2b20c0832c1bd7339f394e6ff027f8aa3d55c7e5f127ee328a404d75a503367e69dac91cf09126333bf2c543d28e02dc9109e3c583372d32f32475a12971fe626bfdc8e8d6c87a4c4401029e88ed8eb68cfb1b2a5606ec9c5a0393644894f30045c97f07ebbba0f1a3cd00d455bf0691bb9112ec543ec3daf99469a24e8f3245f886aacd61506fd10378808d0064b2f06c84e7b13861c61b9a3c749717c1e4f0845abea293634cc1fddd4539e4f1dfb60a10c14ad2d0b9f0623dacf8921c7cb242631309b665294bbe26186cd7be6ebf75a76ce1dd2191be74e2834aa9229bae8599c1bf3b5b8a299401767ff7f76b51f2d4bb518f2ff519ad2a2932a17e338a879a431116d0af8591b0a35ca2b207f82772091a70dc618210ee96bcaf0062c6281345c63014dc1d72b399eed7ab047d6e15ecc010adcce2341e146061cdac8a4da00967e96dbc2c4e143d7ac69d7ec0cb293c8d60a3b36108b92218e1bba2b46da4651b5e36c9ec208c907453c4e49fcadd37a9b45e3801dee4c271cdeb5f038aae54bbdec9bb3480501d036e939127105686d177ad39a071937bc48801fd873fdfcf964a347bef5f89a837503853f2506196ee543be9b804837a415d145948c22e9c0ee0231c9e2625fc194cd9b82a472ddacc9e6fe0a81573e7a9520a7dd9b83ce98cabb609d672cd8c2cbb847306e16851bb888d618c4b88306d2c128706152ba5b0b3c0fc03df8e444f96ced2612f59336638e1f4a6722191149af88d50ef6298b95143d6c83cdfb59e9979677313f98ed0a5a89377129690fbcde28609dc56887bb8a9dd754b31dda00f282a05baf11bb5778fe1991ef93c1c92f138e5c852a5e844f424b4b04f4be00cdface36157fd02d0b456453441cfea0d62bb200ea19a8cbe60a8669673bdc9e8e19668e199f3f21cc65922364d899a94a04c18f798faf6327cfb8a3531e93dcbda7c59566cca2965e89451bfc97307a829bf101e0bf85604a32d1a110dd85237e34c1280e6b752eea2044c5ca71e2ee017936b2c077b43c13d21858daa29312c0801b0077b6d81fe979c71e8c409a87caf0c387c630b26561ea92f5aa899082e8349498fa1167c55f8cb77ef160f4d9e749d05c418c477d273927bd6142725fa220ece2797743066c252c2bf200d7165af00dfad458fcc0b066017e1bfc69ac44bb052f63507c0bb7a01b71bc259b1fc57fc5e561961f64aab7c875c4c4001fe77980fb3577d6e88b5a4d9f8659c10ecb5dd2f732becdbc524aeb4c7140b8fafb2d6e242c02a3d5f4b561dc6aec17f4325e92adb7a6058aafe09ae4b358629c60f658a95142d2c4a4ef8457bb41a4eec9e9191524a46615980cad34b4597ac0073b02ede216869125c3e5565c28b00e09ceaad7ef3ce37fb3b80b95f50c1d3f1ed6577e1325072b91f8d485a20787eb142e774ccec5662bab4afc4186c9f819034fdf293668a931c925668ff1eb15feb7309f6e523aa22169506937ad75b11240a715fca0216d83f5039e46e936e8ff9d978e37a06ca50848ce30c9b507f0835883d04c82b8b71566311be09a10454327141fd78f3307050b26178397ba5f5b5a1ae7bb7c5d3c8c1493d0b2922a671b2fb7f4924194f0595c0b2c1d75dc1b59c2ad73cbb2815f6d1daadb1520e97d257610e7be03f3bd40487e3dfedddb9e30cd2f81b7eac59a183140794189f73561216328bf68622f1b17f521389e2054801ee02c5ad7b57705fe53ad6dc923fe2f948b336de8a551285a7056d8eb5bca8bee926d0b3783fc4600801b4991b03347a9c15cbe9462ab530b374c03bc6b51a14e07d2dc7bc065ec75c29935c5bcedf7a7d09078466ba734c9a87f11160f005871d4bdd683d4077c66d0b1f89fcda2a2aa4ca6b1e4795d1d40da839543f843a00c5946c473ceb522e000504c78c1445c7125f1ac97ef9db07db124f2acb4b4fdb9e5056e6a4d0117bfe232d502967d723262b6a4ae847091a41dc06f5c87130ef2798009224874d50a55de2f7b30bd89ce26b1ef08b6e3d0273b54f002d9a3edeeb0b39ac2c323e9482910e9ca10c3582b8fc7ec30548194a8413f0c454df042bc84f2d39cd0b66bbdd167fe763534829aac8158973d4ac394201dfe8e62b58b7b38d2a3d37a1583678bdb2c195cbc672b26db83793541ce81db0fecf65d09aae3ec990b1a1196cd9697f398562a930408ccd68af0d97b165d18156fbcdc0572397cf677422484b0367726294f288f08466f18890a4c7fe1fca9542303022a33eba98bc9552880eb8023f036f82b783898ed24ec60cb98672fb6bda480356b26640d3663919524b35d681590306820026237b6d8929b8eff1199910f639d642673ea022f43f376fb2b08418cb3b5f48583bc8631d72909b46b32647310f4e35ecb5de41262a17a43d5b30eadac376da9473fdcf717a47cd93a11c10b319c44bb0239dcac5537aec722e33ef38a1dc159f3369b5131770f83686b77315145cf380a050789db5d1ad32ebb82477e42825cab0a0db3f2c6e6fefc4a671c8eeeaa57b10f0dfa1e75c1bda74dc17924a0d9384cd9faa82cdab7c8031ce073194aedc58fd73d9d8ad655ed440d6835edf7bcd3210325c5be0a0b5f3f2978b1619e539a2d32420a8801d30a9d6be8869a8ce1f35c2f9b5afafd14cc81094cc1875177373edfd5330ffa77176a3b0ecdceab89e1b440a4f05140ab06b1304ea134a5a938dde1160399faba7cb65eaf4fcc495e45291dd11845f31321d6cd91e1543e71e583a124ff80570b7e530801beea6eb0a353b5eb57eca34affb59cbbdf75ca273036c1eeabf6539e861ae3b589e093342c200e5e4c8920f9103670d8e47818205d554e80d782775891a2af56a1a9ba812e785e72641aeb493814e2e6391b12c2393268d8c4d11982cf7e8aa954e1aa7a20e4788194cb1f65157145dd13597bb1aebda9811376b9bbf6aff559b100eaa9e7cd14c78568312cc36526382554e0cf43a4d50f20bb2cd35c259034f96c5375e414fb776913753cda4c936ee053299072fe44b9c671b2eeb84a5a1b21c611712a1b2953b99843bb6f3ee17c51b00345bbde22588cdb92e4425a5b22c1bed2b4ec02ae7121c9b9a7072f6b93ea4fcb96220ea50b30d3fef3fbb98a0d4c6ad8c9145f9e87587563518b8f5850bf5a4085d91adfd8f797b0a8b211bcc0896b2b8b317ce5ec2cc760eafe01a54ffefe3697f7f942a83cf130d33ba12c76dbe4dde0c78483262be495fe4c98a2c442b8646019f7f780514d4d8a5b18b76e2d6ea2fd69754d1ad9cb3ba212094e3382430dc484d92dedb89157db5dbd2a70df8b3fc1760b45fd2cd906f068f135eea4630ee36370c410ed212408fbb00a65a45cf952199b6c5c37f67ee989999155b9dc939d283a9921fad50994fd3da11aa7e2aedaa0ea3373304fe4139e92607cde14ba3102357d2f3e0a5aceaf49f9b42fd4c1a8fd2792b5db9a5adc8697f8d20d80ae7ba478253cf050ca96445dd9f6b880b44d7210e3e2fe5772e680ca86de241f16e8648f6bbbfc9bf17a20a45b057abe07223989740e8d8a7792be58a0e719097246680957068280f6b1920dd9ced256d8335e336bcde3c880d415ef345282d4ba17dfb77f5918758ebe964aa48c326149f42c7788b129531a90a10c2c77e17d85c4831122e8009c232980c95cb83989caba7b9edcf9737683a1751edd7909ca1562757a65ce962e0767b5d98bcec50ba6270cbcb45ba2a71213048b370d0cff73b67fd34795d20bb750934db5164ca22ca1c42dd92ec6a8037ff43319e7188880c8afab732cf4309072e948858d7bc5226422a1c51078ce8b278d046121773c18ba20a5fee3acfb9b6598707b3dff2cdb2fd5407853f432186935915d758b2a0c4130ea58609c79169d0233cfc84e1b80192d81f5b79c5e2915a31fb93e1bc026567596e5eb19c171eadd2d430cffd9345714a9445f4665edcce5f156b42518e128e9192dc3558e3907de3e68e472f01fa8d801d34e0703549b8db109a2ba0f14a2547463a01d9f81da5aff5865934ecfd924ea48a04632ccce910baf80775b3a761c5f5a391a2d337390ffe2406f50b990d420c86f4d11c3da72d0463033cde6363f0647dbd64bfcf311dc15471452d4725a42662ee5b675da699c886db170f705722266f7676215725c9c0f5a6fec77f0fd7ec85356ecf1361ca9254da3d390ce43005457d9460edc8ae9d55b89e963ffde31424a4393d592da9656094dc15bcc6beb45be03a3d56ef42bcfc1412aa147fff73d0a32d6fff716d46c73f21489897af524f1e2b50b0f6b83395ccf1df21afe3ff1b2b3c48cb5d8052511024acd0eb0b5c1e4fdc07b2883059550eaee92258fb09f9c88cc7146c239f4af81c3501374d5569104919b0f922726710e15126a8a15962e42eefb0a5a401dbeeb6db392a33465e080f872156499c2e9bbc462e480308c6c9cb3b924599024d5a404208f6e8ce34b3e4ad7c93dd314c353565f09f351fed91804d92faa7a30274376139ccece7145c61cee6837562402c9cec85e9f781fb73d111d6f6d3325a518a47fd6750b1ddea8410d26bc73aae5d868aca6bcbe0ab3a88dec6a2b5fb5183fc97d9d98a495730c7e0e72b0251cb18f10475bdaa134e9faac7e6c0cb091c3d0a59d975299d5126074ea28572d450b59f179a814b1c81ff76f6889275d77e4230a29963ef9342e31b3da1b659c3cfa1ba433877c5089448b8315d9058e5272c14ea4a767c4285f54fe487538b54e15e67ab2a1cfcc474e6dda6575f5d634ef69775727786f0688f8fe242980b9a62b1313535edd36acaeaca54075e48d30e0ff0ad6e580b9ffc60186518a4e90c999d875565e93c77aac6bd15db2c36abf658a0e4f8d29bf10e755173c0235f37212d2beb2d7289f56b52fa1fd34851dcffaf4908acd38e62512356e9b98e75f67fa1056889c63124c924af1b6397b5a45dc03707f20417f7fcbf5fdb8ee88a6930472bb989063e11944b3b508cb6086c3a41650849b974e2fe1c6247c44549891c95b86ce031cfc978aa1286c5b6c738abc024f23c3edd092950a99e7d82b89ffb31cf05eee36b9458ed00e2a8534a00f609de26dea90e33bfca6fc1dca31446c5a0a00d6fb7d94d5a422239806dcd237ae95d5b8d98869683266e06cfb3593f86e074d1195810540f34698442cec0da4dc99c0774136fcc5e6e2fd75f0244a100ec17fa0f290c7960f6524627ae1349e4d82361719bd95d5227abfab6f329359054b69f30d3933521a8de3f9c6e60656f8d1ce1dd42984072a43f642418aace240122a5fa2c503efc1294b6c8e270c26c1ad81f10f4e01b1554e5ef4aca2fa3fce3c1b7954c101615b28b7938290ed1f62a3841d1c2ebcdfac3acbedb9881bf45dfb41a36df4caf75e84d5bd0225de497ad1390c1d6d20d5d44d186c130a4900d00779467647046923a545cde390df7389df686cdb83e063f6c256c110b1c89843e92782cc90ad2273cb102071028d3eb70829a23e4918a2021375ac6affd3fb22271dd067b3559a41f3772115e22de4ce6e9931223a0d6b23d4d791c2d0f48a7e6818f3b888e0171b3eaa6c2871695a68bdb2604d32d16aefeabaf037fdaaf29654e2f628abe62ec94956d6776d86ea3e08e38980c8a73b834ec2728dd9533e5a8f9cfa7b3052e080473687e5a0148c9de0c044e2ba4a6e1eb44656113ede3559cd519296e417bfdf8c6d6e8d344dc40a5ea3333faa2d1a64641bd5cac439997fad604e2522ae6683647ce85851969d37c5aa2401fd84ec0859f7c77411fb28ec1f38b97d3a62c51fa809b0f4a44ea00109074b3cd1c49505207d5ba1b80e4253ecaf79dad88ab1b93220262f697fba34f85db9156fe81e5f80385daf3aef2ddab7545d52a0d268736e6b07e0c6970e93ae2462ddb5f007e077ede3e4822dd06927a1cb0e17173d0d83bf3fac0da1fc8e001b95e520375432a59c9fdbcb451a49fa1c3c2612018afb1bc86e596e525f7ed72885c43c769a336807cf56fb372adea493d1b5b9abdf22af681c20234004034d0f98a1f19c3be2e0525e7372948457be002a1356ad3f461b27138896287b341971945978d82309fc699556ea4fabcd24728b0b5d0b0cdfce8fd2efabe88cb8ad6d3448c5f19ec06421bce153885a49f37a9a4bfed2b10c7b7e312ad0654f178a6c40d5ced8bde89dedbea44ff4ce8d34b47265030f04884ec4016fd9bbb0e9155c7fff6646daf919969c230fd1211a5379d911b5f8b39d6cc26de67d83602036c8d89cb3b07364f753f4a3f03c4b20643aa6de0a9a871aca3c85f572396347c475fcdd1542a442369aebb6baba3b42a13eec52d9417d95a612cd8ba4273284202ffbe61c594e8b5532d7e8a876428d60f09192cb2681bb3d91c31b347d0f8066394ccbec6559dd963f2ecd5bbae7864b78284b41f198347a7a2504b6103b7d773098d8a15260da62f5cb6d56f73aba8b67546ce0121830c6d1cba94df34f7d3eff7e8b08064d1a0a6420e0735aaa4d9e381060cd09f3967694f794a3131cb1b678f98b8cfca971399a030011fdb7a9500c5a4a6a7d28f2da3e45c7263f08854be6933c06a7888309cf34f55777dd444ac14fc2b5452ecafeeafaedd0702ee114ae6933c689399c0df261e84f034d3da5369c1337972c885d8d64275ed76265780888cfec92b702e7cdab3e6ad792a6d20920a02714c4a6a01df737dc95c9f85babc75f167dde65989b6501a8758ec904ca8433716e43ca20836ce4f198e683408846faa71780bb0d3ce4c231ea6309372d820d7d5c12e7687744483e7664059b540168fe1c5c6fdcccf9c802f0a800768bee1016cadc94e6d116ef0e17e020b6fd510e1795f16d7b52ecf8391f134e7f36087506dfd4c55d139a6f5780bd42c0ef67221dc2f79520516ac4771a5ecea8499dcc288a1bc4ab7743bd0124e8b4532553aed332319d0c6823a34036f4a180ea240969b7ed7162bbaa873e240c598fee07197fa831435c8b550a69864d0f0cfd12e19b18fcb4b5de5a19dcaae018b36edd44519bcae2485dd6a743dda2a162a1402bd94f7cf4729ceabaad9b02be189904ccdc16fb5491e97db91beabb20ea6ba7a3dce7b1921cdcf86a378baac244fee2db4d32b0f4e77e2c7b6a49717da8ba30b1424c341166bc17c48625e2dfa7389af8cdd2e51ba5b861e7e9fc498e2444691c76adfdf014354d43b4c34758962cd447fc17fcd2370d3cb49f4b8c056b1b2ccb5f2aa284139f7f7a3a3c952fc5914a5ee3bb71771ff92578e10784135333d5a40c644c7d6268744db15739cffbf4230636023c668ed4e08939c0b13046f074df3237b8a3d98143d83f2b2bf9128faeab5edb910f48ba35833dae9a8d69a1ba3bca2423667abd518e9802431a1427fa1d0f9977f2ea53509a9a95bb67164c87411bde7792e3f270ea310a3a4224317730be60a6007d53bb8b486a4043641c7512083870ea164ae0867f408aab4b1da0f9e10e3f1871479b75e52a555e07fd813d891830db9c4d4f1b2395f4fc75182f55ef0dbc96274f21d7764d1c2e892208fb924fd0fc52a72d80f680f998e9a6eb40eb8da9ad4b914d6673ddb56a2b801173de0b1df5276eedc36b0ecc736f6132ebf21ef2661e73096da37b134674819707098ebd02444a6caa22a9e38ac66ee92fbb6c0f9609cff1decdcdd23bc59786135016412d79f653452fc8654ac1dfec21574d682307f03162ee006d7e04459a48da382ba40334e704732e6736b6bdd5aff035e2317d2b5238894381cde01d84a061a6949a772ffac595a37408f7c4284987670ad47bfe8082479c1731c48ad80cf3863b1cabfc284cb5f37520244e148b628e83b3b74280e5ce42337c1f829377a960c8e296adc37e09c6cd8be11df8a2e07f5787b8eca70e5ac0adfae4a1e4ecb098dd8874c4afb7e0d51d7feae1c6093a894f5d2906e999fa9af40d801790a243ec36340226372d62050a4a6e94e3ef195a0f42a3fa84679b29ac7bc0311cfcdf83ac9fb36415bea9478d8c2c3a33de82b784cc4aea706fbee4fc61f4a938c1cf5b86cb7bb8df45f6852dba854a61ee33a61a5d1a8d625ce43a51472b8ee641c99d236e04a720652699ce1edcf58aac4e5e1e84ac24c070f2fc346cb80516130ac008f97218725c87ce305d4e52787947e784101029fe5658e65d33e6f7b565956c6f6ed0b6642a5d47fd34c34dc9a610d562bca7bf7083d13e1900fe286ca3719b1c9e6c33354659e483ae9ba8bfdd2a9793a796c9bb77e86b3ce802afb65c281c9db700508dce260c98ba021b69b460255ddadd03f7d67010fa1ac0e927fd98b199643e55f0dd6414320325e33bc0c33084f9883bf13dfe7f88e6875561beba706bfbc08bbfb50b9840cb9e85511aa4c05dd839750b200bb7e6f336b08ed6558254de4fc406c7f56e4e5d71913774f2ea0ed8d7b0c9a2d892fcf7674a0b953898be81f780e6ddf73773aad2dd14ed78320b6a5dfc1c86dfed5a648151cf65ed290f69f864c8644b5cfae199b361e94eca89694635f849233020b6958de80761339059d083262348af75ea7036de69833698db5ea46130a939af18ac1679c2e3e71908ee6bed154471acae9f30783c63da8727b816fb1081d655351922d7300d303af4ffe28ba0b35a58333e3a7222945d45113c63f85edcdf5d5e5d209f763f0e7173d73c1909bfd1ace60757a53b60592503350c57a8d129d9e4a23ba2d568e4879244d1533f85c9a8f4f1041562a3d296c30c3cefc31556d84934c007bed00bc8c1d4aabbe51af586a1373ad343470bfa2729a5d7c812a236a1df24033f3804f71e53f69180ae3affa3265b7e10b21a97ac8a8566018ec91858bc59a9229f4e463e604f5f68bedf4034fbd6ab2ff20a9b81b83eb96705c83c950672513fa3d6fbe9e561e6738725ed7659634bf5e5208633c3c4c9a342c9911cb2d09b2d74f0acea95965e646509e27b28e8a2f148b918af0299622be05c75d2288fc7a72b52cc0b0c28918e4c67421609f257dc500d67f22cad62594daad867ece425f7263bb7e9bc2dcec544d19b53a4e2a434d9053babf0f7d4463d22d5469b35c40d19001824f8f15936c2b8f1eae77901207717dfb67f65df781ec658c4eef7d103f8e99d30e5827e61407f0e37ce4b71d91178f07619df28f36fe6658d8a384cae89ba2e14a9d4417b8ad3f6579f4ea1f91f9d7fd2c493f82faa123504492bc9fe2ec9f3ac753717cde7226484e67d7a0dc1485145411663fc53fa0cfebe7477888f39ec86bbe075bea3ccc405545e93aa479f7f971ee3d6e80901ed04a5eca546ec986e4ab1597a0e3cc732c8b551d72bf67e4d1703647db81b1c892147fcd996af0112e15a512884b8c2f31abee296236b6070b967874f4ccc928f1ce5fbc1f231fc5c3c6f16f929d633007e2b2eee4dc044f055d95663875c34b5a5960e66b7065f96d4f34c0725605c8887e87ab27feb84e526839872181bfbf2badd9a2f3ca725ede9d0540c33fadca3e6fec7b668e5f78fb2b155c9d9b72331f717dfc02cb96fe0fc47b01448fdd72dba4a96a611e5980a3d5ad7345318ae9a52a99e54ade5f64ed6b59852bfa5abfbeef1eb8318a5367465cde021ac9aa4748198342684df441ec8443e7ed7f2379c5f9d83d53592453bbb16f3aed19b7bd2e31351d4750673de1bf88a49b87e9194a62d8657597576678dc7eb740bf38f7da97918cf3b03641bf5d301923404dff254867cdd7a747952cf6f3e76bbb68041a8ab1f2caa503158b5bcc919fed6a55c25e9d87b2c876377e3212e1e5cc24526659ee4e46a370aa9618d1b890ed291a08db883276935f46fc70b82fe287c314b35e03ae50cce0caf007b3bea1aae791e53dbb743ed32e41f98286d381358c84d8c3afb2acb1659d3b4c5c5c8997ae8de6456d75a108f059fe6f41fcfef88781389bb863d90f5809aeb0ac1d058a4af9c4e8fc48117d530800fffd7b096fc1b0cfc08f9d416826cbf668e4804c90451bd89e3d8565fc975e8fb2e19ef6f3f3d31920ca5e200f76cc1ab97f1e625d917d1ee5fef7213d094494e8d3487394e7e731a0d710dbafc867821b4eaf262d6ae9f5b70187bd35b6657893db8286b37087e571da39a020dddfdb734ca3751c68ca888de87d3cd93948b3a7bbc6a624ef3f560dcdf02270c39d8359ccfa02d433044a866bb55c3090b29ac652ab3479e22bbf62b5b715d6253830e03ea38f48f04d48fc8ce557e244c1bff01155ac7f31aec5a276f4efe17dbc873bf63c1dfb9fac7cea50db8e44f4fea6a2a1fdde4b8509b7a56583815a48db7b77937b6f29a59401850c5e0af00a453823f2878c962e0916e1451bf395d2fd6da75a0872874c8cbb5d43dd87a2f0461d2539fb89f7dd9f46a1f29e45e8b6857491a9e714c27df9f2c50c3d3390fc3c758127ef4510bc57659d291f36c719f35e5b32dc2def988e2d196e9777d5aa5a714e774d08f4320cc876ef3eb67b17d2b6e21da42d4a48571c82c4a16935d609f6a0b925c38d9e9c35a8c28994df806a102957bb108ab5386d3895b206372bd0341f874fbd13ce9b79962a079702b99abeca9d6de885a3a1a2211866f59fdce9865e781aa23264c3ac9e2577ee500c4f435d8698ccea69a48e241a02814e1d1ad2b5f220bf0c69f475a8c98b36ae63a59d4c598e886d51b4658ba63dea35dcfd4e1ded96eea8ae5ded8e71b55bd6106d4fb3c13c86c571def7bc89c8349cc230ee30179aa9308c7bea42336fc334e18cd1db5c41b907adae3a977f5287c941f7a99f52f0f356f862559cb1429a0e6fcbbd029119a28a213487e288c83497613fe6eba9fdae9d3b72e8de6a096eb7dcf61135109179eef3f51bb65ac311c99b5c129c944c62e898d850e9164d29bd3e54c301e5acd5a2719c8c8e4c599cd80d5c5618005678af0fc501e5b4705972e05630df493005fba23b75bace0cbd9dd65a676cc64e70e527cd3a4a5cc981348b10e5ca7338ea8ce04a2e8c37e4ac881bb168f244c718640049837abe3075280c22e870eba6559a927104db45c98d094a47882b3fb988c10e0b5c7c116fa266810b31e28da8b745a1509b1422925a40abecc28bf7228eda0cbd6bb6e49847c842471c43d35986def5f556a2be50cda6dc09f61041caad3a32719145cf9929105beaf26a63c6344fd36445b728ca24af28fe3488c8743c95c98a8a9460d1a670f496c6e005c5e10905e3450818c0c3194a8000044758d96146ab38c30726522839ea824be7c4882d07250240ab0d4074394ce128c5020b15fad391090b0ba27c54ebe25222e408bac81a240ff111029a929437ac1a8d0d1c3a326569d2303a32612142efd8fcf2a4ad8e40a881de6979a726a6a524242a47454fe492292d70670bf44652994486e885164418f10222886cf832d364c041032329c8a062440ab2cc6a4e81dec8ee037ac778d03b22eda077646aa2777cf280de924807bde513267a4b2a39e80e481ac618810f536e508411b3fd0c4021032d4e100314647132db3c387061450d37d061031e5882c11241ac2008251b3a309b79472714a4408c2d2c8082072d47b32d87749003338828810d34c0a044054f0c1183337468d282d9964741821043071bd4c0c50e8a986d99a4e5184f528a8ae0820b10b30e874e0643640007475768e124a48130a4500203090551002104185c80a10125435e5e305bc00d331c51416289922d332121b2bcd09445520f34e012bb94e00922b6f01002232c66f216a03b35cc80411215104c51860f332934431230c8b2c30e4c9cd8c04c46309cb0810b5e68c195237c98c908dc50021a58c0e44a09aacca4500f3f1c116dd1041310a860269fe8441591e4e30003acf0e1072a92a042061aa0510207a52c3928a1851333ea121a9cc1c31343451d78a2013478f1c010435400d1e48ced0626a8d842298b520c38984228882f4368b1050c1a3e6086dd80530cb090020414475e986214676861220620bea000055fa80d31e908a72da8d041d216261684b072832a31c470c40454223402295098b8210419a8014b84e20c2eba0ca145132b51bea46a809201296ef8a2841151b010c2891ea0a80243d3d480d00e2490410b2748f0831655c8908102a231948694b880a3a106444638f90287a43346f0238ca61770f042103d347944d1055ec8e0812b9e94404b14f50629947a10420632e02286742d792895d20c5406a868f2e2082a324441021f12a0a4451853c430c5931eb4199c90c11859c660a2048b134156288103131aa8228c16a864b880931a6c208c2f9264211242a28a2856f47083272b9646d08203326460860e44e04493e82e674a94a120a01461c30d138841ef9896421ff8e209247000620b1ac860b6cf43a91114b820c989114e7c60cb4c5e764612502cc1450b144c3698a18361a603623431831c8a886286ee052c19c041162e5318f14217f9688562d0620a2370b0c40a66a842058be58a3b27689b943bdc4dc486f69931997b664cf280e07e3a328da1446f964dba9a8e4c636440773910e38bdeac2a3b11890647665935e01eb3d1427b56e88dc3817a836b8a275f3439d14054849465e0e04505525011030b789802e8860c188103114d4348fc6421428b2fb00822075374434b34e1e0c889099a8a94b63380b860082a6cd0c00c5e60f4a589135cd1800d6c808268032f74e9628b2da6d0f025cb927c8ec629695b58372d4a653ce1c51242cc30ab3dc6a8e2ca53165dd8a0c5ac9ea16b0d41135db759adb1199337b5fe78b9c20a0d30f8810a97c995408a054489220c239e38c0850ed791498c24c498b214bb98a125942ace509285061d4000c35307a8d88205063338b1c439f182802984f0228a13263c60c34c9a81c517539460080f70417ac26700b26e516839e709f5d2509f1352b0940c19c0241b544129a5dce90e97afa5b7f4973e0a2e3af0a22023899cd1e3e44d8447c72b2fcecc9b463a19219de664daa2485f1d999c82d0281d999c90d88028030353be80808c25b048d201d40eb4bc01092f4538c0f0011a9a66f2070f94a1022539487185014c9048f0440f433c8942bb108956c447a03843e9800a53164a44a9a1ca0c66550fe1895d68a902104ebaa0c10722279666f2564750ca2968b04517992c27d472472642dca1e54f80f1107e377e8183334c60049109962431ab51ae787ae2058c232a9498d52eba3ed44832d6dd17cb91a65aa640d35b4adf4377b956c7a963231396222d7553b4a8ae43612b016a2f82d6a9954e7a6a399936eb1611d41e370cab5a26e289691a5138d334bc6951bbcfa44476a6bdd22f5f34ed05fb5d96954476661fa38e28f69b7e8b91bb05743d909119a3756aa573079d80d4d2c8d451b88a438ecc1e718dcc873662f186207744ad3de6c8c4b8f432d79a2777f2e0c5a833eb298d3ab5d2f9e5cb8e192720b591a9637c8c131b993ad2198c641cfd6fe38c7ec6f4b4b46a49b8486fb6c71cf3f5aff4dbff59e79c1a48b9bf8261a4759af75347d0629765bc4149cdcb2b980adfbdafb0421764ca2d12bba01e9db4d04c68366f3b9ca4fb4de23dd29b203edc22b18b364275ccc17dbb0f0df5d4b0a5201011629c31460aa650d9676a76d3ecb6512dce3a6baf15d1eda7ce11e623ddb205270b2e0b753bd5f29649361b73cc53bb2b90184d69a51b363a92ad46e99cb36aa99a8f4c4ab305ad65220c2fd21da3fa0aae406454844703c5b4d0cc823fb86f798b93d8cf605484471ba139b6572cef43679c55bc5da83a4673ffa923689afc9136cb78a369a839a7d452341f999ae38c8ecc1f7388d3aa11dd3275668d313641214140344da7e562c421a79679d76f3fa6fdc6d54ff00792aa05114f26e843485720da69de9be5361a446a214ece2d23f0648ff9516bad478f481cf313907a6f5187dc11f594f8c8d4b5a68a505db3362fb57645e0fda831a6fda8439b91506b4d823faa9eff31b5598f4c5da5a6e52d3485b05147b43a54e25614b69a46b390d1811ad400a56a54c9e9c872dc1313250d85613f364884328696cc6cb628dc23c61bdc7d80deaed16b187514ce9b46b0072783fdd87dd88fb5288ceade49a1990fb514cb4d89ab7d5b4a24d455b3fa609204834918444e7831059599373f8a6f6a304117f9850e22e832935ed05044349b988604b32c4c0c2dcd26ae21c1ccdb3e8a670e50b87499c9283e3cc151128513ea9b980acdbc0e6551dcd6a5c0597daa4a19bac060693631ac8c25f131866a8f3684a8ecf822c624791a396b4ed2f3b8dacb279218c57d359db759156bb8e07eb79109bdba39f0a2a7faa6ce0434bb5dca7195e3348edb388ee338cb71288ee3387beb695bafb6a13a0f2cc0b7d95c6b4acba8194f73c49d58c8182318e512498512cd42fdd001a51ae69c9356a526989488e60e929e24ed90c40199340367c6135b388ee3501d962b2814aaf39e68227a4f304181ad06af562572c536de9032881bb3b05265174dc352471985e705600637b2bcc805a00654461d71a649b4e1bdacb8734aca24c391308873ca39a90096b0f08427d5e444c92662d1f573d3c46aa4993b9f135834dd555796d6eae9bc41c1b5a16b0ee69c4bf77662a431c79c42ab9a172bba6827ad44032bacd8be39e7dcb827943aa55a6be5ec12dfd1b66d9b4559f1c48a2515d5a13a2b86f4ac6207f5bb81d77928bbaf4555d1143fef43c51b7356a1a4ab5842c76a515544d1ac19f33ccffbc02a7c48d1c0c3f185288b16c498051549832baa40d1f1887823ce988e8c12c60a39e55c3531e9a45020511d99a04001131448545aa1388a114321041450e28c7145d43687986807072ef73da7684dd32e9ba60ed59abd93d4229f505abe3326bdcca9cd2e050590fa3e68f5c8351520fec767ca267a336f0eba8fc9723ea1377316e9a9fa96a5172ae5ea1249f372c5d5b6482f3336e7d1a5a8505398bb82595d9a67972d4f4f52cacfaefe59fde4a8f39e9e9e9e9eb427f9b46972939f4974f520187d5ce52018cd515a8fb3d52f554297cc580b0fc12ce08b6192856192f5155667b18660b20b3287392b9fde0419fdac7e7390114c86f92a5f7a335b15dd99c473c3dd9efa9e483157667f7561f2e9cd664444b6a7123de3ec4a1b2f577b8c691a67f349d14cf2793a6037b42387501bcc5d69302b7c35d436b5c41b5aa20e2d83395eb8f730ff6413d7799bc66d9cd76dbf39c8e8e7d6b8030373d6efb50dcf2a1cb8dcb7ef8984149bb1247753226df5696fbc38060bd1f24c32346319b8138b961068893a26e023eaa96586cb4d22ec63ea1d1cb828aaa746974c1d2d87a9b3458939cdb38a9328f4899e538942d1f58a9396a823eaf921a4213b347f10a2dc3d9126d2b41a12d110f7cea7186733d89089446fe667d28c4d8d123171e9924c95f070e0664a34240312231f322031d2f28e72effd3da2375302f4669e955d8839927bd661bee3132b4ba4a3554c36aa19e6ab6f3934044c5e65f964c9a53774cb274e4b71969a364dde3689288cec4277e65c426713ba438f044f5dac383969a98113a59bf4a2374dd3ba20426f24dc3c5d5997612a7cefbec2f72ee715bcee5e8edefc36f000719604f5eedf8566da7723ed415afef1fefdcb415e8ef4a676f8d21b7a13d3e47a60822bf3cce7e26a8f330f9e90206968362f7ffbed417268fb16bb4c40ea2dd34ef1c6b6c30d818e56b868a2a5bcd285debe59b1c2248fb6a9372b7abb37638cb18ba8433a71db91deb64b22b6cba34d09bd31a1b716e815ea85951557032f3483a9e0ddfec7bb0d32aaf9873b9883ecb98c04f5ed41dcbd8cc4e807f5ed48ba6b179ab5a02912f0f61cb647923af755d24d6598bc77ee6086c90c53c13bf79feff6dfedeb9c4b46345d8db4538ecba7790fd1f4a61291695ae5cb4dbc8cdec4dfb013a2b332f1b498b7a7dd466d31ea1be60ee2ef14cf6fff364b6fb69cb7d748e38c695adcdca3d4127cad2e0c89473ddacbdba3b483576fda298e74d3fee1eb9877d86df3743f40ef7a22a1b61383ffa43d778b42e52e4695d476eac450036d0f4db8d10a0b8834f78d3bf7506f3b5ca9b9fbcc4bb088d4db7641d3abadfd872dbdb1dcaba53bb3c78665db80b60c8375ffa107ff33511906ebb20af4e05798ff8ebabda50773a43732ccceda578e4b925aea8f52796b95b55e4a2a3f9dca9a3a9a66b5c66920cd3260635d4f7f310b6bed4044b0a698058546677ada26bf79d6f6b9558d08d634cb673184a6cd49ed354d5a8d9347346925a7695caeddee33c3b973e5114d7319a81ad104a701715de633ad7b0f5f0fed53b716af0e6295b57fa952b7f62008c6ac54b707ed5978dfc7b71e63b1b5a983a7aba754d75e7bedbd57c55cf554cc557db7a0534fddee7bcdb69ec23bf5550e22e5a672eb3603b51e93815eb746b49dca4634ddcae0cbbe665cafb7797b61a852b95c2e952ba5d9944bb3a90b765dd781a00541fb7af0280b5ad46d13aafc7d6698bc4ac57197e7380ee4b877abbc85ae637ef16e415f10cc9b86066d6c6a6a686860b09999d72b0c5dae564b4686c58a89818159adee55a9522910fc3ecfeb3a142aea60b1380d7ee65bd3aa99bc370d3ebc11caa85c795716c83a08e60dc3c2de637eb17618bc8d682b5c392e83e03d55fde67dad9a5a85b7f7edf3fbbeeebcccf94c14bef12dbc24ab48d2216c700f69e8dcc1d5ce593bebac539b585aa43aebeb6c6a42724ada71a9c66652b436c6ca7d3341b39c110d0806be7cf9b2a46b0464ba6620f925cd8b9c9c9e1e1b37a4794f0e4fb5b67e3467dc3965b8ef64f2a205a02313194a12b5715bb46f416b513bd53146cd76795f9ba906124048fbe81d6f44d3f3730be9792a82e9a4eb519d5a66914e5a85a38c8c0b647ea87f347c0b76d8cc5fddafd76198abb0a433218d8d87f334d3869e32ef22d7476634cce53750c87dd75d85f7b54aa552b1320184348cf4a11dee2e83f7eaf5aeb33adcdd4e750d660383a82e57ddaa5b7519460021bdba645dfe524048b3720568e8550ed28296df2de8fbfbeeab73ae5f987ced5d06729d958166de19d174778937ecaa99573a030bbf81af97fc26c33094e1c6a938f97b55b89d93abbc37aaba547ddfb7f9bdc39ffc36d53d1919170644dfcb0cf41df5d451f29dfefe5dfa7917d3ef30790b6918d65778b7a0572ad5e56564de346c6c6a6a686860b09999d72b0c5dae564b4686c58a89818159adee55a9522910fc3ecfeb3a14cae592f9e6b4eab0c7a843e65bd30f61796f5af5d767708c375e796f5abe85656edd8563bcd1ca329a563d461d99ab1e5579c77c751993798367dd87b270fd0a738fb9070f838f487d5fc11f1308fd7e7fb14a8204108a3ef35e8957a7f2abbcafe5d4126ff0f6aadf14a20e6274af53aa0cf49d7e8319e5e1abf75bd0556bd246aaa61a98912d168c80560d85bae77a07f3d6eb317c0ceb31f7ddef53f72e96790aabbaee2c4a29a594524a65ae5a5df50d14d2fddea7f0aefadec1eca5bccbe00d3efefbea62afc3fbdebb4fbdcabcfbc53b48df6f5dde3021e0bdeeaabc61abfcc3531dfcd65d26079172bbacf232d0f7550662bd53e17dbfd753ac8ef582b9f62eef302646754d05f316cc5b302d55abc3adfb9447a9be4fc1b4aeb5dea97ebdbcb596aa73b5b2eb9aeb1d76e52d7597ba4ad5a9ae52dd76aa4e75a9554f6520efa81fde5119f6e3a9bc3bed1dc83b4a85f2b6771598fa4d81ff5428d43d103ceba9d4ef9579ab95faea322b304e9da973bffa2e0b062606261f915af5a9542a150655aabc650aaf7ef1aefa9e823f525f651f7abd7357a9bea73ef98d7afcd5dca6553a026e4ebae54ec9614aed91a981e8bf1993e18c7147d199fa6d64a2f067ccc68ccb3d6a3a9c428e486d8f4cbd65a07a99eb3c42d20f210552cb23cd4486138da3231397274dc614a9c48d4c5c96b417bd2ab5111a3ebceb30af5327e63040aaa3ae3a784f85590731172e4f34ea314bb80ce96db330cd1faca7f23632375008ea2ad5bb7fb9cb71c65207bbb3f0fe1e4f00ef57650089c25bf52e07917255074f83b08eba0aef20adfa0606019ffa3d2a6f9890ef1deaa9bc6137fff852ef32ea5107e9d4bf6bdd353005a9bdb3721029179553debb0ce4fd66a0980f1b995a958d4cede53863e1c198c75370823f62729db130bf1e95b72bd719834905595de6110cb2ba0cde2e6899d4c17b20fe41b5cc3dfba1b0cc251864ab0ebea3544b30c84e5d75d008d5abbc916899d75b30c8d4324705495d95bbbc65be2baa955baf14fc3175eb28dcca5b6a14f8542aa7523888949b3a67a46ad4b9a31e420a2e0c88d4a94b9d3a982f33ec873c787930ef0ea8bbed84c8db77b75e0a7f3aaa7f42e055f82b3275ca48de32e5e049db77537f8f3988b7d5e055785b40ab6464f2ae1afc3d2b6f23536f0ad0efabc31c54fde238632aef9f911983cf4041ead53f1c35cc2a1f913a95ba770dfc3181fc48dde6dd3d95c29f0485c499b704f1bdea14fc01fee63863aa6d82284cfd3df503cc75c6bca9bf0cd45d3edbc76d2b0dadc3fe457dbca52e42bfd078c64568ec18ef201dc263a77118de411a47a6719fe9a388fcf2caf19893f3efea1c7fe195cef95ee91c39f740215f7272bc0381e4780451c8c99449841062342907a64c1807a64d9862f172f73c220461f768beeff57abd5e791e01f678bdbea9f37aebdf7338b9fbd3df23d8fabe2f472118d8e37b9c3aaf3c613469eac4bcc2adc3e05dabcc2d2e2d0da9608fb88281c1adaf300d5f36b826cd9894f9fb7ab9569135cf58fe05f688ae7b2ebc2b3da24c655c6befa5a1911efcf5bd7eaf57aca25f3dfaf59cb853c25f2f9af3c034df815b98e6f53a057bbc9ee80f537a4516c6eee3ce6c8a37de52a6a9e35d75798a853ad1a01186356a3cc61a302cb5875b4fe1d655386a39443def36780b699b47b0874d0f17de55bbc21917f63ee37994290cc3f01e0c47177dd2ba0bcb1e0cd0af5340ea08e620463abee6f58a78e768d73dd4cc17a05f5ff4f77df7115b784bcc001dffe1d7592d0c7b04a3908e9808d6b01c82c4e1fa0bef11b4eb3ed485bdcf609b5c6b9519931f1275c8e76d63cd63041f8ff30e75cd67d3bd315dd7fd7697e9f2562fde368685b7acc15b569a1a78af04f000542f86462cd2556f3ab85b0ecda6aeebf023ddf91ee94edc3c491a52dc994830aba831edf8b63c4a30c147c76bdcdd07c77863028ef1a6041c230fdc8377e04e047287d431da229bfbccd9449ba44c529a3a36627667881c4a3295cc1dda34447a0ff38e79adbcc31b3fb9c5934fe05045631d9fc0e189cec28a2dfa49e31c841b34e90ffe2aaa719bd3e02da469eeadbe0ff4f1c33cef6b5dde3e993a51b7b22d9ab157067bc42be20df9ef9b317937bd42cbef5a45cbd72a53c7e6f23569ead05cbe2ad12b6eb0d42423d30d92b43cbd42b1f8880f3fab5bab56ab7509f6a839becf7ce55df54bc87c9df5aa4193664c9ef5574d4621e6d74316a64a46a6ae91e912000270f358ecf5024b789c853015769cc757e87909194909ef398f8cc4e8a784f71c098fef789c7db0449740a04a744926d1a51993f7e0353e132404f7c5e33bbe028ffcc10a25e49efc217a0fd14464da831a1ed4a801c26f3c82414038ce7de65f7882108b6100fc06ce0d001ec11e01c01300785289dd78f01a79575d03078c74d6dc7bbde742b3f8ca301576bce73f3bde93838c5e3b7e76bce73d396836d11bf91d5968f6cafbafbc87b01e5fb1e6db6b36088f6090d73ff87cc4f6942967d88fa95fade3fbd01a387610f0fc004fa21993f700c76e7092125d8aaf09144ff5ebf57a014514b60b5a7a5962891795258e38628917a680d4afcfa3a3f07b4e9947dfb348171d610a50fdca45e412738919fb1254662c7a396289a27954f3c4dd53899672cfa625b2490ef3899309457a69129ac97b207c80ef410dd66574c765c8aae1c123cd1f3cd29c3dc85ec6df2bcb76d43ce69a7b14ec219f5088202bef215a76993aa1e4f16d4b78a43b26bc62faf5d39d9ebf6e028ef4a604cce315bee65e8865172cb7cc980cbfe593964f33261fde67f6ecc02111997efda5756a2e2fbbd4803e66965768bc4879e944a465eac81391e9f0f132cab7cefa0b6f1cfdd2af8778e3e8f011ef1f1db787987bc4da5f7f9dc5c23d8218ddc7178e3ab4816b5c8234f76a48b0c7ab85f7752bc4fb857d44fdc2e1236800d75faf972bef789b6fca145f731676dd87ea28a46bb0914dd7c856041287cd5b786b4fb4cd7da88d4dae33068351227a232fc3f0fbb2beec61cacadbda3017d1222d4f89fecad995777861b7f695f7bd30d8c1584c26837df3c0f0cc8f29d8a3751af8ce988c79cd61780b69d869c2309c3aad96f5f6639489de18d974eb33f75a38c4ac18dcd65bf79994c975f97d36795bd73dd7597987df7d6888617f619abba29098d7e49a1a1c350dded732bf53e7f599d6cc37fd8a47a48e9948cc6179064b1df317de97bde2ebb58d68d1f5962b877fbd1ee32bbee22bbee22bbee22bbebe23d3ebfbafd7eb9b67dbd7f77dc5fbd017663d6299bb8a04e91817d53197600f19d67d8c608f986ce744babf87c9dbd2e87bf32682a355df9e8afb1f65a27288a565152d350b7ad330119c5aa52acd30b9bbea18eb928e2969f0c28bd2c98d4c5e78d15e943ddcc8f485131d9ebb149a7d8ff24137ab2ef3cf2a6855bd835f6af51562beca48907c79851512981c91aa9096dd55589ee61db754148de56659dc5b63c3d5f22612997405672dc2b31bfd7cbcaa631d3ceda899c5916e787675b4734a2e9b94d44ae1b22949e105739ca634450f2aeb05185e60d13b46036f9efe43417ed1f252be8764d51871b7a53bb1f8d3217427b690828c48ef7087f289172fdaa819badbeaf05badb22c67c6e8c4c1d1f249daca74f7309499ad1973d6e77c7d8863bcf96e5a38c61b191c5e515733c3548839eb3f3167813926477ab3caf9f4a67b8cb78d685a4e99b118cd2984d1c5da7be511ad97511ace2ebaeef9e4c492994d74c702f486be5e43d29c903ba4aef532988563689206ef332d4077e22acf9c02787a0918993a30a72fc0dc91798b75ee2d3c04f3d01d568ef306758a3aa825e92da4537b2269fac1e07909a656f76286a510f5ea3ee2ea3b26c983aa2ba4ca9a131207781f9ac299b11428ca877e9df5e4e6f066452d9a084ec551dfd929d9add61823adf55aae55d65aebadf3b592f5db364ac11f357fb5ca38535256e155bbb3515aaf51ad5639e7121b214bc72f66adb5b7a7412bddc19b3bda23c5534523892b5ff7fcb673ce297d483a2b1739e7a43b973e4002a00a892bbf557ade547053206a5b483fd5c08727284f4a5c54c082245a7a44f18131a46802091fb8f8e005088e522234a594fa5c1f1ea0418728528aa06c99d12eb828ea8265694986ae07327cd082d8342084d542c5a4b7b2061cbe274494db3c91490b1109b18324809072451216ccf6d5332e394131a50694f4bc8f142e246ee062832b546020a2c92905a827f1542cd24d0a97ce1493e56d02a76d1b27a750baad84a2a392add61ad395874624bd991095f42957ebb92c376dd3b65a698e695b8c3bf3bb5a4e4873414e1407e414289bcc411ef1f12891c924312fdf126ac172c587de5809939086e413fb24d473dbb66ddbb64da39f228f5c5842e51d5617ac789743a10f0f8f4c168bfd484855f3e80ff984ee48a427366f5aa51289862112a5127de6b6ed1877692d603f2279440ed6c985b2e5141d775cb262af5c2ca1966fd1111551111579acbde1799e644eb1a6334599a42395a7251f9653bea32f6f1796e41417ac28d1dbe5169c428c6d573a4227d5ef98de58d035c69b6d9347b930e7c683b76ddcb67dc66258f21e63d6de18a36d81728f560231573913a22ed429a3e02e2bb482084da9578482e208156c1ce77100894647a62e72d0c5175c12b124971e54a9b20fa95538ea2da42d0c08a73dbac3a58f5ac640c717fc30a4a5a6b7385f94f702a954aabce7b558924b1f9fca60a657cb1bbbe14a98203b6eb8367ff9ce98d5523acaa764d581176dc4182390dd38d676cedbeab6bd6e795a7167d5def6c5ad52d4b66928cd6ae7ec6744d3cb531ea414c3d2dbd8058a273be0b65047a62e76e8e206ad6971a437ef8332aed43b41b3e6a0fa2ec74c53df3d086c4277ba1cf4bd5ebbf7e1d9e409bdf4463b789a23bd094262f4e39d1e49f7fa19f46524dee967fe9249c49a3af336b352fffe6bff3dcec00cb319a682ea4b1d0978956a8514926f08bdd19eba2acbaeb5d81cc147f601a4274392d40a830b35239140975ba037b1696888de7c0036a3193657a0af1989d1cff77a24e069fdf75a6b1eaad90524f209bd7997e5922d87bc1c9b236835c807eae9b73c1a924486eef53278a7ddeb57f04ebd2c91e88df62e23c9a50f76b8434d74e77bf76d43ed5f8703c782e3b46ddb729e37d15a4e06d90b3d3cf4071b5bd81eaa9663352dcb66acd6a969dcd5b4ac69da9c1408d6097c7a72a8105f94980dee242207c7c669680db552ba63c648658c918675bfa21c45573e5e06850a269a0d2323231ea8132b3f2c6061e587052ca474d9f2a4c5094bd315262bac7bb72a390c71819433a438516263a2836664c4c3154d366234483e273481e47342133461780296bdb57ed6868dd88d0d79336f6dc46c5010e4d8ab4412c92472c84b972d1b0c4c0a208516272c4d5798ac2c2925d18461ed5225fc6331998c8747efd0ca0f0b5858f961018b1f2b56ac58b112b322e3b1e2a5cb96272d4e589aae305959b2a9e0df9d9386214d8d9e99ab6138afe4c04382941e9e9c227b6f18feb198acca0929b4a0ca0929b4c00809263af83061c4baf78b259acb583c3c3d3c78787a78f4f02c89f159d6bd3d3c39329a303cc291d120d9484aa1005224a550002952484a4a4ad2e284a5e90a939525a5249a30ac66f4dc30fc6331998c6746a5020c71c167950a30c40505500a9542a55029548ac964b2cb96272d4e589aae3059595262ddab038bfa2151d6dacb20f20bca5aed1265edf6d5388fc8e1a141b29184b334e4a78aa5213f55345d61b2b2a499a00927fc633d3d3e4cf4f4843d614f782952969492aa20f534d53096ecc8616241013360624101336081898989492a914432891cf2d265cb9374c2229734d988c9583c3496752392cf094df82021215d61924d350926b21cf64a9e1c190eeb5e1a20b1c2d82793e58c2093e58c2093e5c8422934faf293b13acbc3d3c3837579787a78f0f0f028f5f0d08421b501128dbd37c4c191e5c0c1b1178727478693a379629225a58d5965679786fc54c1ba4b437eaa18b2f4a52f4df998972e5b9eb4d0845205492cd9b0f786e1995c1deecec9e121a1e6e4e4dc9a93542522f5f018dd9db35483f0eabd3a2f3fe58e7819b56de3628c5ae4a2a67193d36a3c32677541cf473a394e2782596893f40452e68432949732943b3588fc32258ef90ade1c7e7cd60357eaf91d5ba0e7bd2d4a4a6b3d41decc5b7b6f95fdcb58ad79c7f48e559cb0345d61b2b2a49443cabd556a26f06aad55d3be6d954e9d5a69165e8c3a35ee9873c619a7c411a34ead74ee98bad65ae7acb5d6397314aa9262f1bc1877f2b55cac869f53ab21bd768f565a6bad56eb90138837c2691f51cb78234ef128a5945689a30351c7d49efc64f4289edaf36412ef469643080aaf502fcc003debbce4aae4e85ce9596122308f703aea80fde0343da7e9a3a6b948fca269fd8ce2c91df2db0e0de92d7464ea09588ee31e39177a6c5e9d32524ece1f708a42287147fd9c720246aa8e32045b41ceb4cb999689be9976d80f95a657e92817d0b2a53794524ae71273a2a20efaf81b5147f4bc2a0be24a9a199bd205a26f863a519d25e13e839dc9986326c19f3a43e5196250cdb8cfd9e4728c3936791b4a400383b79d7e1b46d56f1445cf61a969aca0104e7239684e112891d69b7998ed7da6a62db5f226e23ad6b49a8307d81577cb30746db5b49aff957f6c5ef39a1c64936b8e2dddf9b1d0ac060bcd8e23d8e3c5130badadb12d686973b6c759e6447bf33b8eb31a1c6732bef2be11c9be25a5a54d5cb7a1eb4ebc641102284f4ada43613beb9ad66a79ae56eb3e74a7751b9999c360cf8fb37f5f4b1a5886a95073fc15fe9c91d8fcc71989d18fcd7f24345ef338abc1df322df38e493eb7c1327ad37a0dd6368f6e11894cfa75d97ab55ad83ec4fb6a6dc727ad69429a82e1bd106b608fd6bd995693198369c7304de5cab333aeea92a7e257f99ad7d66bf89dbfd278fe96e92d9b64bc7a042ba5711c690d7ee12353bbc0bfdec2afbbf00ed2ae4bbcab7e6119663b63dac3f0f5ba8677649aa23df9b50e6bd57cc6958724a1719bc35a19a642cdff9f9a3f0719b91e4423c35a179ad564577e0eb2c9b0561e92e4a65e685673a1594d6ee5d9979b8f6fe316a037f50f32faf9693cc8e8a7e67f90d14f8dd7dc260719fdd8dc460eb2398d1c64f443e33639e801b92607d568f21d93c247a7c7d98e4ccf327a133ece6af2631715e22c49c65248877f6122323c67dfc2a8bbf077893bcd86c6ff9a7b353470900f5c1ab739169a3d2da1bdf9d1c042331b2c343b96331a39c719d53c99ccba0fc551c76098fa15def248d75fbc633a85b96cebf68ef23acb6d19f643bbbc96e5e56bba769048b2482ed95942c3e4eee8a43523b239338e046233a6512927aeda4a86b3c9d54c9ab8c68da3e76b50b97b9e5ecb0147d72c9be8e03a60ea6c22b1494b25d7344d26c9f10337f318e9974abdd218d5c3cbbcce0491728130cc373c6f4447c05a228fb4cba229da115aeb603ee7bbd5ebae5a5a0e46f5db7d12d79a8348b9f2db511d1804e64141b64fba7aa59fabd56b0ee25679ab79752f05a955344f21aad70ca4facd40acab36ce9ec6bc3b9579ed2ec120316f3d824162de7acc8ce95adf2add623a5af3ee76a51dc5aebca9d7e1f979904e0a9ee6f82175d553f5a9d457abed72a6c2d0a27dacf29e1b9612e61e66f598b3a4ea2b9998db98af70d4ac987c44ea79d53d900381d8a7be813fe65379d74f090ae1b63bb507a230f3fe86612ef1f6d507fe90df60aec1e43863abfbd015dedfe794336ef966a07abb53e7ee4369d420befac3db0675a81f321ae388a17dc8092968d7eecdd49c7165922171e22833df6492a943a47d06cb29f3462b9a31ed397cb83b0c356dc7b4a6c978b931ba2393cc1bcdc2bcb85b16492a44788aa6cebc96ab3c4aa21db6c5dd7289d6b44b284eae5d2ed9342499f9f28027a51ce26d3a83c395794bedcd56ebfbe4c7a47f80ad83b2b7b08ff8c10c6e7ddf17efb95c3d6acab85b0e45fc7a046bcab89b329d324d9dd7e5f717ae33d69ab9173f83f195f3888d267571d234b41031691aa7712f7a9b06725c05e9042588c2771a3868dc67ceafd56ab55aad56a449548a74ec602481d144c71ebb8f2fe7b7b0ebdfd469cdcccc7833339eb7a9a2cd2dd8c393a0cf9cd13c4fcfe45c4114bee3cba121eaca1344e17bec3eb48543c040a48e5dead833de3810c808dfb90dde0f79ae8c2866ede30e257abd22e80300d7616a92a4a5480b950d440176d431467919848370ac4306099140823749208104128284b08de3e02228487de324d8b8b491e38ce9c8147b2e57cf6d7caf5f14f7fb543c57813d5eaf9b4b10e7030c43c175fb0f6c76bce73ed393d2840b5d878efcd3731372108ff73ca884eff87a304cc77d1e673b304c870926f864243cde73137894d08323bdb191bfaff5cdd8643b63368fa08d0b0717e971e3246414748eefe1bdd2f92dbc571a8463105e41c871c678b2860f3b9628bca5c6af39c719bbc1ff4ede37aef30fb0d418a35e8faf17cd9123070e190d1a386888108b85f008f688dd671e06fbbe679def339596b83245c31e6f032d36f0a2a38e444d88ca6862050aa727baea781c384768579df31c4e2e7e0b8c6f6199f31cd8ccf7b55ab097cb95b79037836133975d84db60d8cc45b8ec18ef4fe7c0a29761330fe13858200ab07b77612f628cf18f5702de711eb8e73ad8f51b58ea8ca5a64597a7440fc37b6d8a88663ef31d2fe12cecc8259c851e09e8d679dc8be0f7176ee5ef35246222321d67cc8b609056ebfbb67f58008f3800a74c988605030a81c15c87dd753934b302857cf92f2804f698613f0070d7a3f67e573a46ace38d8ee0ef43338eba042c34e38185660050a2a38e5a82ad0c9b01c11edf5f38b6ee72d9d8d8dcc66563e372b9a29db1986bc01e31c2ee6118902f6ad88fd8693c761af799300c9bc94062a7711c0fe15eeb3b9658664c9e053a326971d2128465e9640258bc908601897d848f9081f2638f5ac280d0787ccc40f9341eb50ce1215ce2c071792fe3df8b602bef20dd72fdc3de44a188fc92b1ebaf97f7d7676c5edf2b1d5f5779d9c6a73c145ec78f01a40fa8046c18299316548ca999010400043315002020100c874362c16028cc2365ef1d14000e829c486a4e1789244a8cc31806196388210000000000c01830435333020050f06514cd3452aac9cd3e0c391d96714134f10021e9ea36bf7c4edd816a5c22aef9732f3a3859f3bfa0078502b81f25493780eb303c751110768de3c48421a8c735ac68d7c43efd173efcf1f5174aaa16356ea4524ac79fd26be403770b5c35fcd01eadb8ad4f06303f779d411791b33a9db1494b2da4394222b6a7cb11c345752b8d98e8e5493773f903e781c922f5812d9f484fef1708a72ca5067b452f0a2e9e9df80c3423bb82d26a2f354a88295ab59f5ece11fed51c595caa1f4880e8bb5f2dc52e053fe6a11a884bd900c5abdb87c6ae5334a1bb975553b52e3a5fe1455d6b2103e5d78795aa51af1b9b97ca40f9f5444d16ece2e6a856946c5299e11cb1bd53cb676134648816e89b9066aab396931dcc357d14384a66aededf06d3762d4430b3628d270c39f569c8c4bc55da11ef70e43ae5432b6989e41154926f98989f5f12d5aca775df2639434ec41837644872e2f1dae547264906443416bcfa48d0dbeb6973dda82bb28a48db68040e1d09d0150af38590543bea19963265026328dea85d059bd42180e092954356d47f39513a7b98b05936cf91a6c9cad00a79dac903dcf4129f73b8ed083767fe355f17b9d4f03334cf8cbab791205b10d972d04ed9e9761d9026b149f319d923045ed1e859117d8370f4d929c14aee483a131e2267588ae67235a22deb9916e7d8fc385dc69f977084fbb5abd51c10947d7626a1366d458f84277cfdf9c1bf8138350a2506f22eceebafeed71326cd3ff5ed0b850d54d503b0da0fb51c08a2a290798ce24dc854eed7a33c6d7ee5029bf9ca67a1afa7eccc924bc0506a5e2745693301bf5772e7a632b1fa7e622d50a3c38189b13da2c972b47ed6c0f2ad5cf8e0057860b720e708b6abca3d4ca2e2a9d28c8050020fd208201ae6f755564e660b33fa465241c91cf7bccc94752078902678651e72bb54dac5176e41cdc169d1e80ac6379faf6ff6f6dcfe07692cbc19c3a256180a998775b9814c976d5ae8f69bf2e8e5c1ccca2d7ca1891157ddd292cb86ff97103ee3391373969adb42dac1f5989f68b5dbf1a9c3b516c639de18f71f8777fbfcde9edba0b4d3388efcecd4b304b95f07a549edee69ba1c2ea262846470d21928e750deecb610ceb197228eb54a49c576da065230117754cfb33aad21618a367b6588b6927a261a923bc8cff26f5246fce385a423a7548ce652c88dc7590cc94b9e093bc08a2306dcf2fc5703132efc43a4c61ca7d7c6d79b328dcffcd847ec447496a11e851f511693fb295059e5a160ef372019d70acf6442ccb1ccf65f404233d9d5db2b72ecb5eee808d359ca043dc3685a1495d471ecf9e4d7f10dd97bd31aae267ce3901bf8129238129a2602151b3e192599fa80b8689c40b9b17bc985aa4bb5bd8707b0397a85532efde93846e45c72d90815347996b2cf39e05efbdba64a7eee831bb7c34d91142348ac55d6adfd4715657458e75a646e2a2567bf5adff3ec33b0e8614f351808edb5cbac9ebd443d682577899eb59e9e02df72064a5007b088ef248c84b2fd0d6aaff31d1c612795087f69e0c5f008afc202ae35b57f82918c4d0cf9f1e16fa2208b0d8d9f9a82830a210d700bd9c8b61b8debad75cbf9e5375cf3e37530e731e09393ecb8b74e6cddd882b2bfeb0a2c51f210c610f5fdecd3e1d7cfb369ee94c81c11332dfdce7bc4b7d9c50d5476c0c6b19b692f55486ea57a95365d2a6e03245f66e37d8f266d68d109456779c06c0276008bceaae4373247958dd92de353dc1c2b22a6d8cb08e072cf5d398cca9aecf202c71792f74c356d6a77a26f46874ca3507c427f8e199b1abb1c93541abb4c16e0561247d4ba608823c65e41e928ed7f680c2550e0e5b4a164b1125035ca72fec1d54e0780822f23a31e369267ce916afb5d61de8643c9b0776a1bd592bf046bf2e14ac2707d560f3a29dea2c9d64b631656dee67c4ed2aa43d230b73992787a148e36f7a34ed319e3505b629c717684a47c26d5c2c261b0e95ebff971438968a3057e1239d8aab56229be706314d4d69eafee7609bae436dd188f3b9d1e582872008d0e68d090c8ad9c2c28ca30dd87850fb629cf95c8fe9a2adac8e510b40316e79b3618c8225f0b555d2becdcb721b4348e9542397b47123f606ce3764ac76a65618a42ad844099e2a8690af0281a4e2d17ba43c55a60375946ceaf8d5a28633c3f7286035cfdd1e51b056f95ad22ff257fb8e3a2df5631dab51aa2f06a13f676bebb525057843991cffda84061b137aa617e81d82a7bb2dc194cd800c1a7177806351370e4fa2f2405ab5760732586963dec4da14af92a998790d2f444020e3b2ec22fd80cd5273db77e237226fc49f79623751d85408d2f8761aa2d3f566f810f33fb18de8641224c1adbcb036f5b0e4c4cc50bed5a435b4b1e681d62034592878b060c074cff09660f6b298cafd0808edd94221f0f99d83015286031afc1d42b8c8c83b7aad0a0def325c896cd824fc6a8595b9a784643bf264085b88509efa2a750d681f04bc2214a5230f277c0489f82e5a00c705b2ee0bb05b50f4e7eb433372255f0aa5f0eabfc3353bef8842a49b3003aa4b611a126da065e31160e08f581d24b69d4016be1ce3372cdb951f0c9ac40f716115176b048284e702748327c9b1865877a9375838fe6039bbf50d4be7b99297b084d8249b10fb8ddba1f42a20100d3e09d7f0dfe980e009d87bcf610b9961b7aee12601ad1a6c7fdb0c2ced5ce4b842422243de13b7e81fa3f84b8d8f25cfe84314d60429d48b72acc4d7c9725a1c70ec90a50e37052f78ea84ff1457363e561807e09767d727354626d9e1696351d6f3c86739892f7c2f5339a19cc90d9f7bd142c778ec0edc6bd5d508be7230f96fa9914931b6749090f3c5a139c03cea595ab20069ecbeec63195cf7774379d9908182e565dbfd0b5e3e643891a7a13898f2505b69d6677dde2ed39037e415d41c9838d5dca4c5eecde567295bacdf67223d01d4504acb98240409e8456721e1f517b3dbe8ae1acd5c5bfac62b399becc0b7c9accee3e6d74c0f895998f5d927d8c4f4ede236daa09e9126a600fe900ca183bce9dcb107d300e9c6fd521b3b7fc34d38355c12d413215929e6df4c5b7ea1876a001a131c72f33347f1de2bca54c8ab81dab95971237531a6f40a09042a6824a3c6a68389f2a8a6bba11bd4a40092278ec4fe00360ce671c29b65221a6e1c73d150aa406df9608bb46c07b1f4756ae61ab290ace512f9f7d351d1436ec4be440b1d65d7e3a0fec164acbc18027521a80519b353af3da8aff84162ed45300601f9b4b4b43b2a569bb0206970f823e0de54cde10a28cdd5c2d492db66a70ca1488884ae8ba951fec7678ba0df6f333b1df25a474052c3f0c842e8cb8ddc37164833aa8fd4fa9116a8c53f02a3ad033880961a1420e3e11ceb6f1cf14e6001f0087b8cd142725834ea4137e2eace01e6199e07931d4b050092340a18a5c0c554a5835eee567f3c146bf31827a3f29a3c4c980a19bbe8807c9eff6341c3073bb50e3b852046b3b61a049a03104cdf31bfe31558eb11f6d0fcc557f9ecdcdc4622c6c61aacc0e1e87c65acac7cf23540e23eb362833cf05a23e02ca0260e6c5be3054d48234f356593a510985881bc2dfe604a8c21bd805cce4f5249c6a8c600f959f573e560275dd01c41a12c23dff6dd9c17eba8aa50c297088dde78279d42d83d36ad8f3a252770a71fa934b37c7183a6c7bf70cc5779e02cf203ac01135fd1bbbef4d3e052f107fd29e723151960b98162d222160d1e1bed13c76e4ceb9f3429f17bec696185ae9c0f607262fca385c880923d867fc0e13c43db2ae9032930003fa67382377dce815a8cc6c39a1bdee47bca57dc7679d6fc0e24bac9efde625e1b9575e60aa4cc8b401a8f48b16e795ce9bfa1906de9f5818952b9260d43aa74c1f737d360a16dec06a3b67f69b1ed0b9439ee439fe06c1b56a4035bacf61007510905a06f9e84680e496b1908af5d63b6781dff31675c9a1e049510c5016d85270a3fa9c3f815195616984b32574976fe8cc9b06dc0d7fa7c0dc59d1fcd0c6d74b6230873f6a72ea8149b47ac9151be69d7c9ff14b8f15fe8c0c4e5745b12daba4abc30650830eda4e17a67799184dfaca960378fafae0d9d1bdd388735db8693080ee88a7f05a1a2a58fa02ca523bc44c8378ea6f41ea4c82029bda179a15a26ce07ef119b6142596d377bafd754fce93ef6176bb8c47a9a0140973544aa9202471ddd30c50d41f3130f1eb629e28c673db8e79bc8f6e1a96b1db6239b14cceef47e13506dc8d707e66f6e518158e6d017bfd6d99aa5415946881877160dc033aedf23a633bca6c25d2c3d54eb42f35a36d3016a2a6ceb62a0d58b5fc6332f292fc1a9eb5e798b4b0625815ece01f24ce8170f5aa318f3c57c2515047c1905ecc3eaf36b3e698a4972f58580a5dbf300c804c9465131dfdd812560b7dc649bee56acd49db04db8adea84800f8ce8b142c62c3398f42955cf459084d008974d14c51d49f18462b0f545c93ac6ac48a3325598e342cba38e6d2b9c53f2f614e7b898fcc40a28bbc1905db7c640fb47361b47471ed59315f2ffbcfc72ac4e63c89e7128b24c0ee3513d6017206736645ab51c854851972bb3d19a2791dc1c7821860154d50a9ff3570809c3729ec93ca22285fbeee4fdecb50164f07639b46537216f05dbc2de4a3935644ca0ae09db00270829c13b92d99d0df2f75d4fd49c0c2d94fabc0580ec5be2086861357644663120abbf70bcde9fec4c24b84fd36071eb2753ec3ec8d93a1b9643412097cff09985349495cb7fdb759b5063728892b70fa72fe271fbd4759461b50528bce30d5dc13b6ad3c6be9bf04f94c657c899109ff9c2c402ef838a894845650415372f95fd497b581ca0326a9609b94da26f6cb7b40bffa8ad35cceb6c13c9623c66ab648692e55cc05de4a4e277539b435fb47d60198e37db67fd8403c67dc30e5ecf1d4cd135906c10dae54237030731f0d83d847653422e6d3538631da9abdd16d725460ff9073b3398e50f624d7809477a72f0d3f0121332ef0562e35153f779a5b0d5e6cce494ad3598e56f7c4b8c71699f4354553069e0353106202f21cc5398f1d7126ff866310453c5031cc77c88a1ca1785224e4bc43d8925136c93c1668b61423f76d58ce5b62fee751eed76999d1376749d40d976f4f2d7a48216852295fb541d1e31d6f826861a1ea4b7d4382b568a1cf7f9c62831667456405c71ab694a2062d0f52f3f9e096714f0c550f81889f4a8a0e44c3051b352f9453e2a648694563c5b5b9052b9a52c77baf55c3f430e6f48e4e144064f222e799e1f9ede92e9442396b02730594b894cded5cff422b74a255803e392da44be3fe39294843c94055c1853bec02d29e5ba801ea67090ef57cdc8497652dd03c044d53822a6f22ca585de6a365d9f192a1682e6f90fe83fc31158798a74b814ba8a325f5c5503708c3f5fa490b6cf4b79c0f23f1fffacedda95ea11b03657d16f647e6c18e849add886521488e5d1be921219a4d424429f0775330221d7478a58bb248c96b4d2d308c4dd46b411d1f5942b8c2e047474a1b568376b6791e10bcbd1c692ff6ed69f7d46a7f12d9bee4439a250255729592a2a3b3609c3b28bbacd92846b14767ecdce713a38b98e367c4ab7e01120f14d576ba6d7d21572bb4ab765c46f5fd9cac0849423ac0a7689df2cdc5f780a3e92ca4dfb1b4fa37ba001a443b4dfe1fb733fef8e47e9ff431efcae82a9462f38d8607827bdf520c4d6491aefa4b23ec7c272faccb1b7e45d2470373238a59afa3f04508723711e5eef963baee518ed35f9fb5edaf450122b6d595a3497e7f582d1b36583090835743ce2a6bdb8af3daf966b58aa2dcd593884337eb1aa7cd8acb470edc70e0b445544f231f50dc763a0675b651cf9c056200f69ac5c7960e01a14e78f2a13b7fab7458e687e479f9fe11d43f1272b933bc798c2956c11f081eeb69d0a3e416546dc6124b88659ab9886a534ebe70c57183556fa77023eb67981cef3a004db941800fde8cf210f52c5446a442082023583189f821f8466d3a2c617be86f7469c4f1367f3f6dc70615fb8b6cea2236481927552173d08821f161f186eaa1f52f4242e505409b527c6ad13915bbbd743bd0a623b62d39586524afefd0de044f2c4133653d0b1f31fc0abfaf44a479af09da04ce8880117274a4e05213a936943473b5a9c6f55990fa642be20868d3ced79e3942704c6d5b5868f6cdf8d707da6c65a1eeed080a346515d0e64042616dc20b93fb9fe603b6a64c67a66c96820a7da79572d4c4910f64cdca60f1b9d065e5ea00f551be33b296698d970883253da8af86bd75799dac89f174155b81455cecc79caa34447bc116c2a2c6048d5bc887fe2ff1ba2090995574c9b5edcd5af8e10af8669999a17291cbb5ed2681c3db48357e555bf5da21c6e1248bb30a8b2c9ce542f7e977a0571cf94e86feadf2681240e9d4193609d60b581737a0d9fccacf0d06f7caf4a91243f51420604bad6ee9102652adeca4c013257342565176222b20220211e42b9e1045fe6f0dda8b240474c5d720b28c89dc5e9bc6f50e711bddf4cec4e544705cca2432a05ed35a0c2bb5897da0d7f8e3c8cfd690af4bb1eee4b0f4517551d2a20b71205056bd0edd88825647736ff49a52aa0dfabb5e79c8316f44a57aedefcb003cf5a1daa2dbc2b80da967bba791751995cb655570b11d1c86fc70620ab77d07f7f1201693c6c5e8063e8acd8d8349ee3302f847a4f8b051b247dc18747aa0888c06374e628f33692ae2d14cb6adee15b8ac705b0d8ba40e2d52c2105b4ed86b7579c42b482d7c132257d11a625522348556d9af1c57a8215850feaa2e4210900c4c131d3057f55eae9588886a776f5e81694a431a0f95a590db50136fd14d9e308251d082a4d342d698b480eb3efaf8aac56d138d9db0b63d1284111b3723f8882fbc74060fe40af3985309e64ef15ce960f8ea61a236a501d025265ffd764467a9e903ed02a3155ad7a7346316ee4e049707eb495e1d55804926b4c41c8043c38be8e382abcc4c5e6749dd5355311f8759c421d76249c05f3022f00f2eab281bd3c0bd2ad8beb56299e46a52b1d5b4964738c14a8d814ec301e67b305967092510f3bc863aa37ab4d7cc82436250403634130b47806aea3b13ee77643b964c03e42313be867f3a7b3b08c3d453e25362473080aa1c7f4652b80c324c5dc90fd619df217ec0d96313609a0058dd99fdaa51ee3f93954d6b70932dc8279add3b0f007d0906320e27947733d203bbbc2e7e08a0370e71da6c6653c1f42690a46f031d120e238b9780e66545e8f51bc12048c0b7d7c15ec2164b4be74912cc5b1fde8999b8769dab120bca629bbb7e326fc268c2ffa7e0d6e005710f6241384eb824bf6475866d0378c9f5c6d6f1d0d6c6a7c328adcecdadb56c771ffaf752161198415aa35e0ae251dc719e75157ad5f370569488a5556d772006cfcc0129d8274f4e19a53f740b32f17a40249fd13b46f97ee27edec0a0ac700d3cb5513623523528de3f477522055f3da011a45b58a8c6e5afd3ca790f4464f1ceb0903e61d954d4ea2bdbd291ab265e191ad6bb1173d62db7549f666a9dc9bfc703ff1de66be4a914ec8c61439ffa3c5cd840065cea4b122e328ec4f542c6b437d9996e737d10eb8027170628f19d07b57645f9c3e2a4e6598edc350a977f869fa9e4bb606632bbf5a240cc40b6c543994a35d39cfbbf138d6b8dc5e075308015bdea1cff3f83fcd778539494b22d04cc6af3f52de84037cb0a8be715ccb2a1ab6f7c2467785f299f2f572a84314e69bc132abf35309ded8184367ed8f407c78ba691e373e3b1ad29ad55a31af08efb97845124e770bcf3f8f318e2a00d84d453988a4fa79a0b8174536e74ce9da71c0abc8387038def03b7ed4a8dcd92735fa33ffec0bd721b86263f6d7717ba85be61956c3fe452ca900ec8b41a6532762d0eee1c08b57161e7404c4ca0c2710ce689665421d02656027e99ef70eece0d24c74934bc0dbeda4f8bf96e592fa5669e4bc679cbab1cb1c58f490cb3a332fdc4854716640f96867289791930cb50b4c9cb0509adb4061e03334f262e9edd6b598482dc6d7b260f45f0ffd3d317e20a44b4917cbad5b8a3debc0258ea6112fe8e2100262a0986b4b1faef93f4dab846b2bb050e7f40f1a40604264059a2bab3e901e5df0aa23bf71355d0292491697c9ec41f8813a9929485bece92d04a9c209c47dc2f63c77b71087a5937acc3f175b33945f25fa43671ca60748c779c462696b08f1d36fa7f21461192cc8973650831591b94d053c05623b0211eec600b7e9d03f231d6e672f40dc0b2737d4e969f6375e08e1a74da50017a2c6cb23266723a605ae9acafb015614336abb60bc485b802d0009e03f230dab19e979d884144f62b6c75de26abc21146ea07ae230b569c1a31be0f5b32a2699d7df79dfda896624a235009b017301bbaa09f79423e46753d0d27c24bec178075071deceb8fd7e4364bfeeb7c27a2079a8d21ad95c0c75a8efd9415fe365b76060550f694f803e3faed778ebc178009e37f95e0b3cda15611ecab54e7910581ccfa6555abecc09175fab7f125401afe307f5eb42d5107e55dc414d1e7cc457ac05cf24cf970af89aab29c1f6bead035ca9fa3854dbfd635e507a92c3147db8d88a5b760fe429aafaea786ad92b76eb79284fe600769e951089c10b946d8174b462d411b8c1049d2f1f7a930847305df79fb381eeedae5013b44aa9d9b47630e9985225e653f64117158e1f4a9e7687e19c5c2d496ab14de22a835101192e3a9c8ed9bc65e0a48318cca1e7a65ba03f9ff2e4bad06c1b0a148dc71eab20e862a23aa170d2eec93de7e19694376c3be5b6a5dfeb1602152670e46d3878b5ba64c8b2b43caec905592901f29e30ed5a2d53fc0af2ca4198f809a702482f67c31e4df38d7893dc7de4edf80475a43412cb09427de23e52e8167061035e1b7e70de651dbc7625b15fffff8dedb95b503062cfcde28357ebcd9c161c88c6d0f38411abfeb963f4a48d29ee0ebefb8748ac02f25f97ffb90ad29b69f0f00395f7e87569e5b621101220b86e4a5a952db06f9ddef782bf064662f01e3404eda810ca0489c931821b176b5817769989a97e769bbda434cfc973d8cd8447e78a177997f194deab4caafc0a64f07f10098b8817de186293c8038585003d4624d33a149cfe1e7e771df4ba0b5d819ee01709425e6bdc185d53a026244c5ef34fc7607313cd985e7ab378336076678c587521e908ca65ecc8ea792888c971464a5efc646b8ec79b6b928315241609286b6955ca5875b635339c80c535a32bb4538e21fced895673eb20d46c09247689c074d81a0ed4109d19301e24d5e08152cad1e10c2acfb1dce0714143085c6886815a4b0758614b86c2a6029599de216231ab0761463e4bc4ea2fbb75cd24b765dbcb0e501dea656a5d71cf417c6850c6b3debb75c951f0a103e38542fa10b2a0836d7778143bd1dc55701c72c03ac2a66a689e4abc812a4d967c668efccfe4c4eb80204e1163cc2d59c80a391c49338599f70922a98fb9ab34a70ae05ab0d59a7fcb648639c1017ee378b4cb2b02d51ed3b6ac048a7263d8d349995262709307c81a440b1fb8e8bdfd8c96c2a79e477e21962bc39fb995964908cbe74c428848011472bfd847d19abb012187c07a7870e66242134cd5995081387d87766a5fd8561dc1be825c03d1d3c37c2a20c4808f57f5b38b6027a0e20b48f06121ac0ed8bff714afaafe92e565e0b85ff521bbdd22aa635d9dc4e6bf2257baf5e19d6ed0ff2a7e3efaf2ad11edd0d921cdec407e2502cad931537000e77342474ba24f5d06ee5fbd04502fbbb835780cd0d31e71a0b30a47d2755782083cdacdd56067baece2130e592276815641b38fd9743c51fbb6314498bd81e3204265928a6e9895d71dade764a5baf9b98b71e0d1fc39d2e17084483234779cfa75cde98174e409472c54cfe461ee6ec952a33ef9ec1ed4ef634c1a0f2d324a929fa747ab2b7ab0fde0908816289e6f2eb940ac25abe45b080ce9e8ccab5e80814bb9cc9ddc34a809de7a61a12d92b33cb8e288095ae43ef9282623bfd541fc93180536a450169ad33a43a7f92bd34acb19844fc85c6b285a4dd89752f903939ee524a9dc35248450c15d46be21b20860437d664c369a3269412cd253bf70f2c23872a3c0246ba20d822a7449a47531e46c0563c70c9c595b7338525f691652915e4a2ec067616f05ca463dbbb63897a0049445a535288aee61034f7a8c2b569b52042ad64462bc7ddad278842bd5ef194468bef9cf7b0aa6c85831c82457c714003f1237121690b56bf817891673d576ca68c1c9d0d5fc27c378e1feabc474f2479d44bc82a542acd480a47e13eebab8cdea598a26a289b9e4f42516679bdf6c36be80775e761b341571bce9bfd340d74913929566bb38723258e91c158d1831aba2430fbec861d758ff61cee67bbb44ca43f60d565e4169f9bbd3cb951efc261a5100dd3d2b882cdc9382be0ca9b03724d0e38f13657db2e39adab0cca34566c5502a81fec0e0173512745a926e1318840e582aab83d0391cd934465c5ad2223c63f79894aac9cb63606ca530a4731edff5fdbb395e7f27febdabd3a7231b3a9951a090b19f87dda577a624f217bc75fda8deaca6aff3c12359173ed042672d30db57abce044b006935734c2294853e804fe2f8238f50bf84b39f06b8a66035076ca8324c1ace325940d5ad422fc242ed76a8c597893e8236fd8a8510dcecc93aa62fb462b62f16bedf8323bdb09ad9042f999597b3e31753d21b7efe14c210c0eb1d189b00b4647545bb22c1ed535909f538e0c8ae7a7cf71870252558ac1837806918a104b184940776ebfc167db73e76dfb9e3a0813430397682b3976be3efd09d4b2fa59402b1332b44688078c3105787dfdac913c16ed610ae5f42c711569013ff94eadc57fa3e2fc2307a6d6a0a3215729e313d1e27d0d34f555c16e47d9a86174ad17d07a8355c68cfa7363be47f7c98c241f3192c6866996c1013c379c7cdb9e8ac7ba57d56cd5f88f62b34071e0dd1bfe853b762753c2d3165fdd5a79d4d5928a9526fdb827f0dc0a8fee29ecc096bf971c7d85ad87da5727919a01bda1081db1ae1a8985a3e3fb25dd2294a993beebe81c73c81a10c1a00697772cbbfb1e38658d926a2e5a35afcd667f82366315c264987ebaaf9b829a2f49077865d0794a239c8d8a0a08283b6fedc6701f0fb4fc1075ce90baf33fac15ce47cbe94b68cd859e180a274ae2317d107851c28d94e10f6d782d7d8ec935e01d9805ebddeba59ed3d3bfa8c358806f52d3b32e1211309777b3800d409f558cf2019a4aea2bd1115c96b6c9cc5863a5d5aa551107c340929d5ea174ff12426077bafd1225134f7d3281602a0fc2b828e078a382b361d8c37038df3763cb833dbcec4d65155fc34fe346835b47f284d7255637fa710042838d0b0f97059e53c8679599933ddff205999351b99fc05444ff75db1fe8e485127edbb108580219bdcdd16ef075f464379f10a4a55aee2839fa522f42970efbce3d3293f4af9cabda85958f06d54e22f4a6a5477886f8f611f8ee1057f495f9f04f8529e279f1ee7f7108ea99ed2aabc4a61d0a30b811e011864091c8f1683a1aae294f6969ad066f570bd6c17969133770165c1d326a7255a38570b5e70a293122a64b69ffa624d3048adc55d174aaeafcaf14c8d8ba662595d71c01e468682a96defe2f0dceedcab6dbf9ccb2e6b859244adc60f7516e5a44052af5c9ae44e29b0b206bfb70ce75efc04053405e23e8018e8a03ba41879a33661fc9344a2d3f5ac89c0ca98b38c0908357a3a467005f33199ce96d33832ffe57b1c4c4507f658183bfe924a3b12059143630ad3c20226c015fd398dbae007c7c7da7c28b5ea7923d9d0d356c2c373dd01fe140613af9598330bd460a9637a7b7968b9478f3d1c2895c13a8946a84fff2182ce7b95822fae76d27c3d4b9f84d72f3b1befc20ba9f016aafcee8ee86457816e8115ffe97d21fbe6ec97ae4a778497a1c8ed7ce11ee9bd36e6c5f6951183b68fb42012a36df665ef4c5135a9611d75aca828537e48322f09610d63a93d431087d16a67041b82e8ed5e9082eace11f6e1a85c24f4014c566a32027481735c4b633108458d54838e0de5759d41654186f7cc4b93e1411d6380e3bea45bb077b287d26d4858f392fe0692bbf168bd599c22f1005942c253a4c76aa152566b7e9e1fa6737b4ec711ed16081a71488f2db9cd82067cfd204aecd9b8fa83d3b80792a6f0a7bb0a54cfa07dfd9d0415bf76645742eb20dd159e5dfff667f7be73910a25b26d659533ae3aa75e4211398b4ee8f54955e1e1d62f060427618ec1207ad9b8e24dc1f39f17c7037ef2bfd7ce2dd1244c44faa2d5e5801ddc710e926011bead0d6027a59b12002e0f651fa8305caf831b911b1cf0a0a7dd7273849978e38bf04181ef4c88a1a306d638f3d3675c1a8c0872fd5da5a7bb9fe1171ece1d51adc17d7e2eeca9e221f7e3b8c8d702f74921705fae9c976f59bfb77a7de7c2918bbab796565138b7af74a8beb50cc10e2457c6483952604e6afa1d544af66fd359b0573203e831e666beda545279b3fec07c602b1a5deaed61d43bc46e7466dde5abbb5c43ea59027a080fafccc277e97645b10aa0ce29e28461665060abdefc15481488133b36d118cd33dddfec3bdae92bd042ef28be1215c48d38950cb8ce036e051f9f83d20f7895cf290d76fa1634344a87896d23c00702241600b47a6378bd97b40e9bc3648569e1e4dcb53441c13cd58b8aaacc4bd662d1e838b44624c433448d531b2de8970bd0a82575fdb783055ca6bab9594236d887c4f5172bb66781e42def2cf0d609d40eadb38a6d9cc45748f4778df7a60e1c9d9a3f2173da324da06fbd2b5795e66ac77dda346c504adf5e7ee034fb1710dd9bbe35cd1c0b5a97981c5150f8877b6ef1ce8fb681ac924f7b850c86084ab8d38a95b5a10267bbcb05a09925fdd41d309c75c4f8c3d36528f5673bdae9bfe3ec93d2ed39abaa9cbb7a2dc476ad1718714068976f5444d7ffb5480d40667cdf003fd921d792a598d412d76ad36d2d36526249d3a2628c6cd823b6e3460ed9c24288ed21da279b943350a1eb5838f411ba601477e1ee2683a503a9e2f0efed1f035db309e2e4d9826d9b8fe9ff92b30500defc86c778bd973b7508c1e5b07c0bc2c0f6d83c35b2c03be5f4acaa3195ce61c91a4e165e2d0cc82c226f7ba40fc8309e02e847b5994b591caba18d08c0201712ef83353b44033da85939485359e4d16a83511b85e7aeaf926bd7e7cd632f0804c8620c8466512b27cbe1f88f58c1b5f056cac77469eda6d4d121e9c29c32ee3010e86da08c79c6423f2cdb8c8b11d204fcf040908f0c8eeb05cb5e9d0e5e76f45147c0e92523656851151dc3ab96e6fd2e450781dcb5f80fedeccbfb3419479a01fe75908f730ede09135d043b0604ac690963d88e7a38f6a875cb86f9da56d41325355ef81bccc794936bd9d74a57ba4ce2b15c22086906a0c578a0c2fd84a8f1025b202d4ad3b23aa7ea670ae2164b55c1e9385987dc3f944c3a88c052efe753b1bab90b23df2c775889688a6cdb980a1a72b45424299f6ebae2e7216d7b92e14a507c6e82e5551a29eef6bc5836333a68394a410b334ed93da6fe3bae625ca507a4eab2c847f7466f10a266004d39de42c2ce8ab91b91eb66b429a7c4fad9309876afb7d35c52f496662749134a0b33ca6e6513f012c96a94074e3d8f3c9ace37e31858d1afa8f28a21646757cd2c01aac796e84e62bb477ac9ce7f5161576bc7dc056b019bf5ce43dfcfe4c97134396e451909cef3c6bc4696191f5018ec1bc379014d8b19c2c000016c89ebc8de42d8dc4fd32f929288724270eef220d848e364a37290c9f34e245cf324a627d31ff3850bfb5b2f5702ea4dfb534d21490e397fa9e6502fe0183d5f755000ef249a1ae68b06e1be0e8968114c539404a4357e2badab7a0c360c640c9cf8b6f0aa2a33f68a766c6a81c2c8c642a853d62c4bb59f2a5f331764237a93b63351c94d0063068fa9447929e1f9ce2f37abf764aa2da6589e5e7e0c1500b1ef6c5748f58210bf74574dfb84d838452f7d042ed4b5b6aceedb8a2467170f7a84763e91a4d6d757d879bea71efce721363fc13ac10eda7a05e8ee4c473698ac42bc76433ef33458efa94c2d56742b8a678864c88538ca55c8f7d36d2dc561eac808ce2b31416bd7e285aaa18da729f769a0edeb7394aee6bc81286660fe673b1c545b4a0a77390671a758cc84b70eb616f26353e28641b8f758c42b1671a3476621dda64076103609333c24a90993310b7686bd5939b07ebf3e2e29d51abe02f989b42f523cc0d0e154d9a6c1b8c2e3461fdd9205a4b05423e13bce16add8022a4c75e2a104518cf6d33a1493106b52b9c42cfcb603a1bdc88e2fecc19044b63a07cecfac09f79c41ee11e0c080355deb11e59f09dcea1c5862d6b57d35bb4cf0cbc3ff43459875310bcfa62f86ce0388e764fa9f01df4aa994cb0805230294da7018836011c04fb5c4a5149d26ca767af1c690a99228732119f3b41671cda17bb87328f1d4ec926041b6787522411f2b1b532dd8ad40b678fd8db8bb3e4543008118e16e2f724ba8da32509b001c249f698fd3a265b76a1fb9867036887702ef9f573bc8f096dc836f0a089086f234043312110e4b1ee5caabd58db1e320c93b336a4a06fa6b6838d33b0f2198c553971ce920779616934a2e2df82a52161934c81e3a95cb0e6013d8d625cfa19a68428448f52e3eef6731faba2d4d3e5e7cab4e128df76c21f1521d28c3237a83c7f167d458f0210717389df911d516f83a345e00a358d7904d9bc2c3990e57525e39641222f1d72d7fb6241ad331637581526c2b886655279b3d7ec64280fbb1fb0deae16767f687aa884c6266eaf8ac8df138a3218de01a1f50ad2fe3d2f46c60af1cd49b74fb4f9d42e8568d6c53dcf86cf37577b66a36bc228eb2d78022d664beb64952e61017416e9db32270605166ee36d97456cbdb0d3b1c597278eddfd236afb0f37ea1d9c6ab1263a7e6179ffa108d6b15be9d62a5f58721358b4ac4350f97b7947e494f4a05dce090c97026b7bc1a9bdbdcd168e75adaae954ffde16e0777cbfe7f3074e99b0f12a74243cc0ea9e93e6a7a8b580aaa0c72eb1a149edfdb2f144636318a66796d01a70b18887a5dab90d63d4484d72943d2f2625a12b31de52121e74768225ae6c7deae4c409a18472c4ed156c1a75a24a7c0ce1dd596a4f8bf894cb0f5ee2eeb7c71f43097c8ef1c5cd1b87e8d3534d7887af2cb36ec57e32db1a228ee23b4d7cb022347ae70928943bb3a792804cfc52258b2643d1974d82409cf3cb25356e45c36868989a5ed93604ff779d5936b05e9654303089752281c5245199dab16ae919b6706e33bd4eebe40c3298f85f08f9637473230893fceaf10a88b431ea70b0e464ae98f56e0d533fac8347f29c0a7819a9b1597813b560bbff6ba53a2fdae16651ef42259021ee892d3c4f0c6692a0f2f92cff662a4c5c41b7a26f4f658bc09e95beb6850759e09005474e31eeaecc1e91a872423767875acb466fe4aaba3b36951b3a4eea495c59130f82c786713bb39c80c323388446ad953803a797a5ff932d86074ff3cb927ce138372a62b501bf7f1912206797151a19c23006ccd0407f08116d7af08304bed115cddb8bff5cc1e340eaf28a90c4da0c05ba52b302bd6d9900930a04bce92d752c663c12cd5350cc1fd495daf2b4dd6a092faf2293d2db669199948a0f7ccd3281373cfd00b124912928f06bddece9d11b08cf9e06d0d4b4251691e0b5c6b0b28424944f56dc449fa39e7b6315af6700461c350f34fa87a7a11293cddc8c53b0d7512a28ee3fa8bd1abcc420b5ba4353f6392e7e359570e66d392e4a41b3c19988110244fdcd9f8aedd5c2441e9eafe120015425c7f42afe7600f16991ef23769254445a93035ce40a24aff581e8822d83900b311b2ccc8ff1ef2f2145e3bd2215ab68e882d24fd3f56aa5434b08db23548eb041519b154d1f496928078903a955bcba3fa0e803c6d6dd1f4e17086af7b8eb36a0342fcd27e8c880e7876c18f4b2d95a3dd6cd7dbb0c61f24fc9f17c32250f61c19b2690471fa8347aeb2751cc8c99d32704a80c2704884192651d08c0edb221b53bba611c192e938b20dc5ae73b59951d6723a70c138befc35fec1e82f0dba03a4383c47dea6ed0edd906be682d79d66a544d86766407993bbc53df5195b6e73d17c6a96d0c9f1077e753648347f0520408db7b006a1cf07f5cf495df64a5f2ece94347352b9190dac58b4335f5178edad65fb9866bc1b05e4a4240c608b5098d35e0fe914eb5438c0c58290a4cc0240836fac12c8e0b628a0a2730822b0ac10259bbf38013308792914fb22c4a94898bb712fb0a233c267249ec89d78224ba95ea5453dc47ab23b34a30e13900075e0677c93b406bb5fcd3d6d39b9170719cd90a511c5690958f95db3ea084e636a4658071623fd66c70c112e446659c0f3b65ab8d0b8616798ddc35398458b16b952c3184e19df42dd3e852030f66d7ebbb40d0c57571d3c40881d969348afb60d470af0ef6fed88e727550e8848a8a08e16c4c2f190bfca086d983f8f8172c03114b5aacf2502ef5c4218024e27df0fcf3a7692578ed7b97a5b096aed829986b9034b90f857254eb786cbb7b48edbce3c6c33cf9faab569f766fb03ac775476ad9df4292fc7866002d70a8a2fd65a9360a386da5c012b18752ebc0a3543dd5795ef7e6a705e5483b0f463438965932ccd73068ec405ce2e2bb1ce90c732064c23845128f024ca9b531c71a283569ed40e781f2d65486c812f99464103c3e0231c121398ce4c14596af6631f9e50e9289ca815acdf6c2d8ab54724edcf08962adef83159d1db1c8b573ce97a32a4c7ff2fd8caab9a4d195bc144d47c48c8aca43306b1a96a6658be72356bca6a78be9bdbdf90b83cbded33c534ae024dd7725df54030edba40df0647a862caf711a7fd3ce4b20521875c6c7711beb3e2fe9bd4bd47fae6da56a2b86d92c38c3ac1a89589fecdf2554f4c5312bd8b2438f9f30545d1cb4410bcf04cca083a850bc073ab4aa2a4286ea5dfb7e18c4a040d28c37421187553c21c079726122fa40eab7f6c5521611932851546cf1097120474a82a6905e4449570241661adcfe260dae11e1ed678a125c893428c944492e47ad7e4d6d717c8912cabda9ce7f2821c44975f89c22d8c9c9dd024bf392eb4be22ac5dba8d0d42a2c2a8fd3e920321bb3449603e90b0547470991837f32269ce5c19047ff9ddf294c436cc394e37f26ed5496e02de2de15008c0f0b3530c0b058761e68ad0c66ed8780ece511722436e1dc80a30d3f92434e87026b7b1ca05bb90f4cfa8384758330bf5b1377911551b4f401eb27d594b98d445b6656ddf078e2a161654017f042056291eb2ffc0f71a72d30d28c0d44f22560fede71a44aa5c1e263f71804c4acd1c487ed54d4154810c8a5d19eb4704dd90720986b15ed9e172293c9a287c0877588d6746d4a9fa52284159899303386ee1c5680ecbb04f86cee57de886050326c63535993a33ab2fe49b9c5720214e1fc676d7e036b6f8565e1805c969eb269f64e9339430b6480138724f5d085c34adda920b0470e27757b1c9493303391080a6144216e0753a5417603f891bc362a1b57a51ba811ec0aab2c5cfcfbb8e8cedbc726a2fbb1ef599134795bc6ffa0018b5b79e0a964c51193ab9a2208db70bb0345aa61d654f0779905827ad07e089e27f3f3b31324250a8adf721c108247b0e3fa8d98dfb4c5ecb844023dca48ea91e8a172b787457c539c3412062f5567741dac945f8579eb64000d68b0c6ab0f0b3b226bb150d75442208c7ef5faf9d5d2ef3260b504dab332ea63f30ac4cdb799c1282838d5068dae828e7b209dd0c7acbb7c40af3856818a9588b905fe64e744230e6ea3c915ac5082913bd7588e395c8f332cb8f755481dc15563b56d51f61950855f2abae67923e14d89cbfb6bef9c4a6aaf9aa4ab95c97835b394370592dc11e39e42a23ea797b26af8e44233626f50a95c412949ccda2e5e044697ca110993340524503475091db7168baecddb1227acd9a2142e5b9b3455ece7b08b15afb92d1487d272f5c60e22dc7c459054dfbe2ceaea762bb24cdeb180b3407629cb9a8d949b8da18031c95a8fcc39db58e6c83ce03f1c3fe05acd11dddd22a038cc30991055266fa8f32c8fb6305470223a2dd856ec316a7a5dd930941cd9600a47133cb6f770ec130bb54d0972abc3083330b9600e68fa01194c3aa976c83a95848d712dce7dd980b699a4c6e74853130445471e88a50b5880bfd9ef79fdfb573ebf3102c9ac59d0814c103360f8c3ba3d1f24f34a08d40ca46c0eec5061c33872032c7dac5885fb23fb73c26fc8b45c537f169b9d493dcaa4aa9c88123a80c3ae25bca5c48181610a53599267df0ba6a658f381cc881b3010c1e2e33a4f38c932108f8b4c77cade11d89169ae2f71249e16d127359dc02f206d63e2406c10839a87eda4db5950740183c9d9ca21e806231427070230046bd25ac66bf1216924b48c8a2c9b766e6dba977b19dca82e3ca1cb38017302475c4e0e5b8365d0f09d32074da8b9a96d3115cd82ecfbeb98ff79e47c4bf1603e2b8f657175bda6992f9c4787ffe44970a16d583572ebfa3a3b08493079f46c954fd327a4ad181d6d3c53b59959d1f527a69633438181da78ce206b057554ecb4d84d8e807f70fe0e27560af4113e8cbd40f2d2ed867e8dc2f809f924bbe4ab6aa0a019ee9b5cf61900d3f692a5b21e5aa44b3684f187d3a54e625d08246a8838e620fb0726dc4145b773da001c6c0a549e1513d13cb4227470746d8eb2b1755c45fa588c92e016daebb1941b20e75a8ebfcfb95d2b296b621f6c5829368f7cd510964a07749f7b6670817e587fc98e8fe5093f308cc342606e40f919fa337980c1b2b24a13598f512867748a3d7e0d5820f14505f02d71a8fc1a128f4c6eafff1dc90de282168236ae789e63b88c9c1fd47876112132e830e59fcfdb665bc0e8b2cbce29a34af440cd3b071e6caa8307c604985aa579877758ae43b126b3749efe8efc43c688b0ffc49f3878bcfe4c7f0f996e7a19fa162d6077bf2f84ec66688f3c70337d8bbce79218dd1a3f6242c2484e4268158c12a5f521c5c1d60f73ed1337090b91d2b712de44a24fc803e09c3532774fae04108ca9d493c7ecff77215a8a622cf0ed150184dd50d342e1aad4d90fa0030e36bd968191c0271c487a1deb0e9e017e77364ff1e0b428409fabbbdc296d8df2e91d330ecbada05977866d53804601870b374b8d7e3b71b0e08a328bbf30c438d0ac416c0787f030df505cc80da46378348da6efc7581a86b768a103ba7aad4e272678125a7836979d156f9783cb3b4db97e7c4eb62d37dadf0780bc87b9cf016418c7e35ee1895bf5cca600c615c8cead8b908e3e0d6074cbacdd3fbb90dd772d1793b5f17d1424f728fe1130d9fa114f363f2ae0ab77f4f48462b0b18409b079bbed5e11e6923a58cd109047c6dade12c3a01e14c2235535e78af57221bb6d5f4ee950f6880c3b5b6d98d8b965e694bf39f5cb8c5ba61142e1de919f15ca6f4528059ac55ca85e98969b8126f718849fe40b985bbe7066a0268e3bc8e83d8fcc48280892d07337c69209ecd2a06f8c78d14f04ecf69256aaf74e134a867bc32de299e28e854b0ab4983c105ffc81238feaf94fd21683435c7c9c31882bac26c0dafaa32cdb66dd17a9d1fad492818114bb11611f1bd267e80253668633e2acc6357fac7921d605c7bdd4ef489963023cc0d03194480168f1e28a105196a51b185ecbb0b98cfa8d32977dd065e4398c0390849b4a3be3fad0cc7240bc295ced599c3830ff2dee581d1d3781e99fe2e8c41d6787e264ed55c1ae04b28f859dcee2046ba3b08812c4a39d881020ea7e27e7bf7f07de90ba78f38f1d5b76941c0d1362e257ff728704a6772abb4246202b4463cef7bf7281928b49f4bae2d9e692f5682ef48c30eb634e358ac1f150b8baf22dab57329e40a0e9e2a08e55e91f04605716aeed2ce7c4a0b1ae7c8d0a7fa2962cff6b3cc157d81b86f1f573b326487a3b4ab2013d904c2a024082c80b542c1ea321588534b9e1bbe5fcae1c65f21049a9a27c3410fc7aa7286a636686d38b06dfa1b9e0af8be3f068a8c38e0886ad8acf3cc2b901b7383218675d41342cc4f3a81c32271a1a0f85ab2685b9fe9b9767c619cfe9c16add2d50c1e4756db6a67f2f3c3111ab37b5b8bdcffa4dca6ac0dc9c199b94228099221314db6cf2a898264594eaa9cf78075fdaf705a10651f8014f129bb08f9724c59995728d4eadbccbbeec21295f974cc347bf4a51d6afa960598ba6410985c83848a2cdf0882d9f1b5a0c337443240e89e25464ff8a4f20f9533831caaf8289a8fd954d41f5bf60129abfc5d390fc289c8ee05fd14464bfcaa632b214ff878ea6e44f3f14be27225f71c73cf3909e1c60e0ebaac015b1482d81b4022abbb0a91bc5b0c8341c4557988d83a60da583ba2b8c320dad8fbb806e2b863213231ee604a2747da092b83f082707cbfc07de873f0d6d21c546e7054451cc02e757570e3c63e5b3cbdbdac0c851e1ed5f9d59a9e224568060ae6181daf9a36153caffc1473f3bc8a94cbecd6d0627bfe5f00f7e62a55a485a894b0651a6d5ec1b2fc72cf30fe6d2efd3a387dfbafb834f440e39a0ad2b03ee1ec4a4638db8faf462c9c89928fc32ce09f0fc8af1bcfcdbfe9ed9e27759abe42a60c2565929c558f9fb2a4517ad1a6601de649b0dc3bfaf006eb4ba36685ace179789a6665a305b19301e1f7bdef7e3334cde6821abe00bc482209eab94f0db4630a3a6478f6b7a5397f4eed29d1e37ef0d76ef116b53fee0179e3da0e565621ce6b40f1211e4b48e0ff1b8253750304c2f607a60b116f91a7bf200e00c34f288d9903589f57a922922eef280da58b25041fad51fb5f202e30365ffe07d87bf91a6b1cf04a91cd91b08432cd233acdadd4ca74440ac29ab069efb52977914aa96fa30b275f3334d1dea2a78141c4dd13a53e2990e948925aea2a10b50ab762857003ffb45c289ce8b1c582fb9566e50fdc07928d4e57c11cb6587e40506adf0ec150bd834dcebb6325b697760009f6b4e5460164c9f5cc57a0f6da771dc109525967b070228330383415e761e7b59b18815ce0f9a288c6c6bb603fc3abb2bd0aacbf48d86ca226c5b6eaf18679216ca5504d069fbaf8c505aa45e6508f9b0542abd1eea6918afd11c5ef51b6d165a24a89558ed482ab3779080ce215528e56bc4d826d3e5efd741abdd13e2d64efda64b0d2dc7a07de628ced0b4c9d1eca9bd63f1e2ff5758122dc86031560c274867b0307809f81fb440360bc84bc1048363aab6620c6b6ff85340db9e32d37829830f2e5bb86e451d7d7cab8967b247a5060882d73b2c66d4c421e5703098d0ef10500b118a1354da726e1d253f29051ec7b57a8a925e4229b529f7d0ad8b4c3cc93586028b6e09ec06c00684a6b7fc84fb9144dafa11af2ca439bc16d3d9d41137765719714a8e41c88f09570a43448e1d868a810035d327f1deaa926ec52e41aaefbd38c1ed6d91687803f90d8a6464ce36dd78fdafe81c18ce9e43379d03434236eec94fb71aab0981d2feb6343088f587a3ca96f77a7b060eb2e5822791dafc203291a875a2507f9f28d41aa96a3d883322811097a642f85b7c0a999fc2a9117e2a4d44eca7d414aabf4bd310fc2c3f85e45fe1c408ff0aa622f7534466c18c62d2e44613cbce0bc320be114be9a7114a18a692f73745db317090f7da5eb2dec8883ae6c61afbd07ad52462cc2ab025962ccdeeaf1255fbae0f0f4e47c6d68a062443728f8a1b8b2b33c3b8b648d8baa82b34e210ec194f888271520d2d5767826eabb9b1708ec2637843e663c8a20dfe2daa573ccad4238d098f4525af87b7c1ba5992984b4f81f8740d66fe4daeee09c744707d8659691d60158375d42631cdc7da7f4c3b6900903522aff845972d5011426a9a3f86ab369b215c75d1280d2359e1d6024b8018d97cf40dcd9ac98941baac0c633aa31347f01a11d6cd210d77ca199a32f4cce390fb2082dc9665cdc16d5f180e09af37f316e1a05a0c56bfc17d99ebd816d1b918717c81f91244f233d99d5bae239f3b0456279c0de369e0781ea0d930cb518a9506cdaf40a2e704099377b3391ab3035c2c78bf215240370de255141ad9c48d3a1ab5bb3ea3edca71e107ce0cc591918af1970695bec8fda1f650730386e3c0601a80f7e2d911193b1f3bb7ca67acb5c95c09b1924781611625889e23d00fac6dde1232b1604f69d0e5c2bd0f6eec4b8853f207528a464087de4d3e09c7340d5d3d81614869384690e67ca4e1637aa807b5b218f42c95bb27c4193dd59c01a58142463cb5fa3e7e06a5e41a2062dea2bd6900d6f76cdd12cba7e25465d11f52522c43d685d7f7a3220d7954a04d9bbaa9cd19c1b83627348546cea785999df7104234fba3d52934cf56dff418a9c90d8f20a964d966af645b52e2974750ea232d966686071d55ecddef9ca5ef209ef3c36126ae032e69087a5ed81cd3b9db6863f697fe5e1dcaba70661e0f8d96d303ded4d46603b07a9e2a829e10e89cdb4f2ec5acb3c3ce3f38684922b2da5ee2fa3224828cdffe620e2af3263b4ee4f5d701cd152e7dde35a8e93620cc8b277eb1b861dd8df8f6e0e4c4f18ddb81023fdcf222ee5cac880b4e2144ad5716ccfc423958711294f81938905e46349386e592a501ea3487012f8a9ef3e1ed189d4c0df28bd16abfff98b5e5ef17bf428c2608826af9897aa523e621bb644fbce2774d3c3ef52dbfb66b07bb66b71cf7bfc472e3812f6986431ebe94d8a3b83d3586464433198f82b5d1063194cba0997df366efce10be1284c03c1e8fc0ff72b961cf504114672fa6296ce7c5937adf71f5dbbbeaf7332dc3903786338f8ae2272d331a3ec606c313540362c0ab4fb0d7c01e6896e2d65e90a4c152eff3a058b58ba49a9e8a6a67c1d291f7026ea07f38f0bf9dd17ab7919b09926c83e5fc0ae65edcbd060c87f8d3f6625d4ce4fc7d1eed9c0cb27d7224a24434089dc78bdac94407be9e7ef30c1e6595c72efc47b09296ba28cfaa2cf6489927189e8caa581d10ecf09c590069a4be14d79b21ebf0173abda6c0765ee5a3414380a59cfd1d8481bc07d36f856d59219eaa96e7ed69e6df18e80af46082eda75e0a3bad1263b3468f6b4d8bc6d4a915e60684ac9dfbc2290fd03458b9edd2cbaaa888fd50cfe686cf3bb3e7788d9d2f2939d2c91f234b334f1f49e3104836e460dea763bafec060cfe34e41117786f1272fdee6b5d8a06b094dc1ca7a9a5f40d96df0cd6dbe9d1f808a8a45d8da0d587757508716eaec315be6b26c1958bc9f48246bc848db4d9d3f69ac4ab4ca4ff43199b50e596f5f6217e5f32755bb7722a50c226ec7a80c92ec666a9c852f4e7971bee253f139d7c71b04e68468c9b77ef1e4a8cb95e664ef047d5a0ddc2cc1667294afb6ca3367f6cecb87d426ec0530226b4c49a8d6c05a8ea90e2983cd5e9f54723de9936c43b0b47cbe3114908b479fa2dfe1abefa9817ef85b9b05e2399f3fd1f4b0d553e2c0259d4e6a46593eba3d4bb77d4e468ca21a4d49d9797295e02d266744dc550534543ef06bec2260f8f5d24f05887aa16ea1fb2f339efd7a4ebf1217b9a9c4a79dba312ce2866b813707cbb895c4d13e2cc0944e2dea171f6cfa58cb551310cab81fa7fcab6a32568f506a0c09fd3a0c75963be27c5088cf27046dd9a5670c727c718e92c050754a6d1522c104ffe3a735a86423c173cdb7043fce031ac28a12fdeda6df985cedfd55a8aebbbbaa0c37c556ca8d85242b052cd00210479b31783f40bee024e5d622b9c85ad219178adb645ec56b059d52a11647f63c8de0bdac42c8dca26e7d322812532747b053a42c84b1987f3e5a083c3263ad224e604764ab4fa253e034ec141536c3ea21a571ba525155947518822e2f62262dd3875ae31f5d940aacc6674d2b7f1a5e94f2696965556dc7a28644b94fbd05066c51f95cbdcac108cc3815e54b58c962faebc421ab1dccbf3f810e12f6a73573c049deeff7702b8515cc2dd3890b5d50ad602c7ba514444cfcfe285007ebd8cc58bc6e5f6d80dce70c7d22383a0c15866e44780a2a20dcc384265191d85a8e1ac99125e325b8238e8f0d61ff067af163d5dd2f0db6138f669e97588f627da9ea0c9a4fe1077eef868b589c889819eecc462173e69e629626718217d86237fb5a21c40c8b2f69554047b1b26b793dca68bae57ed412e0b7eb60044dab3bea629d989b4c4d46e6c2e8331deb94bf704c64ad67a6f5e46913948befd0cd49985b95148f6d1a4670db2d94c4709a44432dba82814ba8d05c80841d590ff3c8f756d7ea2ae528819fcf1f2bef15ebb71e434bf02b18eebcc79cf21d4ddf6c950986d85914d45a61018022b6a82118769d9170c881af6dacae6a25748a172e76a128ab894b40c5271ff7d176bf968850951c05bc531a3f7bb2cbc2360b984004b915463e6c446a2374641a24997c092940cfd1d0afb06e9ea2fbd471aa321f90f8b249375cbf0ff11276fc7df63e3fa5715015e1144973e07e128e8c2c7e0f6625872b2b4e530b54f783f7b75f6ac6c21163ee18a09396eb3ecb6f1ef85fcd70e568c277f1a74ee2701f26d16525e1494de9f347e95e24b4775684baadf64e79107298da3b7f8febc8d292648d058ba2e5f4778a5912cb3953bc30acc555a531a60250bdf43150a9888fff37eedd31336a22fe3004f68209f95542b1de77eba056fd97eaa48d9bad06b57d63acf2625d5f69435f1d7d5a138d5e905f9d2327c477fcc703fa120faedbf5c1a08ff3bcc1620f3ed4ccb37250262150380c615128a54aab5230d3ef445755698375455c0e5546e2756266ea63b48f17363b870a827d9a2298132212c17d31b2c69cef561488cd39474d31e78a85333eca8bff289db8abf09372249a2c57f5047ccd734581ba9882c3af3d1ff775c4953001061050ee6486c883780d024cd9259056ea49e1fd0e4b80d0c76567eab64d0bd6040225d2257e84b2aae474c4e6e2f12bbc56ca563b3c407b98e3fa0eced9711934c3cf897c7b965a35661acdd531f73a288c1c1d8a208b33b4bcedcdf5860c75734aec2ff6cf40accf8b6dff6cf010916c6ed81f15eee26d8793ed63aea04177b325cf345cba7badcb20d3ba766600c80fcce48d870a64b765788441782447daa6513442d12eed92d4ccc7f1897ac1a52a68d41b28695973bfe2d53070f81416baa01e6ca2a67b1c6f01947d628d3e9d443fbaea32b35f4ed41b71b67d20e53559190e35519686ebf9493410492927e2b79cbb51ea8944960dd4650f0765b7fa87c1dc38c99fb17ec11bcc4d0328c82e0954a39083ad9feb210407fd7739cdc9bd18faea91407811a7357511d6ff5f7ab176e64444f9d01a5cd03ae30ebe02428206e0af10f316b8ef6c06a2de076fd662a555e1fdd62de886f003741cff66a92b608f2097044e2bc01996e79374031235b0e3fb655552044e072b70f9394c8c7293f38f5b2ea4c2148fed2cd74348dd557d02c861c630791bd86c049b6af50136e75ded18302f2b99467e9bc0b37aaabfc5503e706f50210f270a77c1c00fe8d4c8c0b8fa3eda4a32b9998706af95093efac8bfd0660b69d987a20272290f9a99ca36ed1518f6d1831916407b7e10f92baaf1b717ac384adbc4cbe2aeaafb5507aed96f3d5c67ff75701b697360f8c3e51fc0aa214ea31aea74ed5c3f2bedd84a731bd2d0dddf19522c9147cb6100e669e7fd58712e5eb01d6e4418b5dfa2a2c89aadc24808ee05cb040895de4f4d640e1245241fa0f5ff539ded4fc007385103bd44c8e2ca58e34df71d5208075d56a1bff696a25c116262d89ced70f921da5c5efa5f45a6f52fa3e289ceccef26c0b143d8fe925fed0d070b9a9a891af171510c2eae2576a2b15decae7328f551af9f58cfec144b5f015f91452134c66906c43185b083b05876dd87e3ea612a5bdc14428adc4fffa6f45577d76442f7d026f417f4d9e04d5a634647acb33a7d3c1f20e3d6297d9ffeabd2cddde39399ee859a681ffa720df414bb2ff6a18fac46697641ecb3327d3c5f445e5e3d5d719436d0efa77fa5a3bb4a137ac86d2cf9a5ad3a6e4df4d0e3a7ffa545bac453e8a5b36c3c0e578a93ba224bf1d6584e871b883c5e65f650352843d9a14a2f08e1ef693adb20f1b1f42f959a71eeb48b9e4ff76d291dd10b6f0f56ca9a75c5e2c7be855eb47b1adc79b7c596daee15ccef6a232dd926347f2315e1ea88109de32ec05055e682e6e240a4948485dd189dffa0a697aca59126956c6a6b90a16e2a4c4933958473b808c2546c29f0cf610e0037a9146f511131698c812544e957c83ee1a6034d408a6936764a50519e2d5026ad4b35055311053af2483e41ebe93a1d5c7f88b9864413608d8e0555ecc85ccb9d127acae623eba7e8a74c8d262a8e2531f2251b199d63741d570bae13ca6bd01c32e134fe2b984f952c634047c6acb69764ab407d0ecee14966fb2ddfba5ab0dbc17dbabf75a75a3b83f1f438b5242ccf19c13e803fc9d682429045a9a2dc40eb039807b92d395053a9768645fbf570126d4e2a0d6d9f8dfdce301c4b5bd6c8eeac7133fb3c53ee2b0a34b67d1e078f781140c0d1c2b3446071a0a5ee024ccb8265212b2d5f8277d336ae2e5daf5d1dcf0cd3ecc30c293fc0d129b954bf705d8a32e41e0ce1dcfe2725e7a7b66fd13edcabf5b7ccc32156f2c4cff04fc6e9d7f38f29f97ffb5918b08f20b446b2b87f8a45987837eea15337df3f2b50d5816a34303921ca9098f68cac632169dc1c1f833e5a0ce6686d2704a2d813c1b78443354540bba8da4736c8bb774682d3a58a5b48e55a1f9eb2122d624f7aa407001adf7e3e1b4d7fc2813a7adaabe4947d05a7ff52845f6adcb5403bee422a83d46dd995598bd4a5440942441c46b3cf102a3f36aa0383b9978dffe9534ecee88ed7953795e7b046da7d26efa5a5da5642f91c2e1d8942a18010eba5a44c67312e86564436197e62d86a607a8279f002cef8fa86511c30d806b7f12493fa1724a3adf01ce69b228bb582ebddb65768fcb9f1bcc98afd32e7a7a765859bc2d11fd0c0982af35266ac6d810baf95f5525cc6673c6874279adfe99cbb57a756d042cbc260cb852025ce178f8d37feffe21ab3ca37979ccf9a27bbd4f9deaa6d6e783d882869cb551777f9ee8b18684c722119435d5c1cb915b1d0b6b4e880cc10137212f8c032fc6f2516bf323c162098f31474ca48d3b8e87ee17f1fe83c4455599a5080b1064d3dd549921da154796d5fb88679042ebe854fd4521836fdcc672b56ec01b11e68a35599a48be5acf38fd111180485acd10d29ed474b82c8272bde4555817ea91dded10f96341e1d8241e7f9014b50296aa9064dbd7c8555c8048b3f07c6ee4480cdeae92644f2fa42ac5006d7f91d553bae22d07b129dc8e0b7fffe15f354ddbb468b263957a8811162e98e085352bebe6e21a0bfd2869d7918813c20e9f388876d7b0df371818c3df7940f01c57bae11160f28691af75bf9886fc1506e05e243c27e2ebdf3ea7dbb8f24adf4de3bcef841df35e70aaf1cad58e6d6145771ae39b7e61c84ed00735ec56bce0de4ee381ac9be6db52d18d3a907b0f8d875203c232749aa3b5e0d473c4c5e727ae005ddd1bbcd49729ee4d1d6d9ec3c55a936c75e6aec52974cf89bab3d6285e060f6de71cca3dfdf68753ed5437371ef47f60d678506d788529a29e4afa5287aac4b4364e80e9fd613e72048431977b86ba36b4736a424000812c7e95aa75dab7b521c54b53ae72f6cb962482b9d40ee925ed022769b040f28988c098dfa3ab66158e49f901f5939f031d35c900c1cd36124d48516f90fac2b7bae54cb71794efa23d71f9428fa03efb7675aff1c7d1c0c593432ff8e54077cd7d4997f97b1a54f2e73049b4b6c94570aa3aed8438d949ce1ea8dc05b2a8aec50538a93fbbe7abb77a22382cb059f1b70b3db5b789d8cfab23e70982c0ee8d1ce61d2c0860b636a0c2c3686871eb521ad39f8183e36c5363921f6dac65bde3746ddbdb8736449f159b593c7ee22a0345684ba77cf474e1d684872f31f6678156a148c784f08727b415b413a31fa4168d7ade960972e8622beaa057f55205a371030b0bceaac0669b67b0b8131e41108503faec200c9fc768771702894c53f04f4caa3f6802d79d67fe51b2115f4fc2918098f8bc5674dc4c7ee51ff17904e6a89ddb0024112899db4ec6d09eb64bfa8791f221884b96e3fd00ae5d78eb73a4b277af6b42739224a38b2099f70e4bb1bc78d48287d509da87384167e60526914519f127d85c8958b3d61d6b9b646715e52df2b63cdce981b5245f00951582e96f184e83dbd10aab05208992a845e743eea92e88508a32211a0175913bb75d90c4d64ae7bd8f316046574f5958517178569766c64041ddd2507d84a00ce25c8c563fe6aaa69361becbf8e73379867a9090095aa370b1a9ba0ead86a93540986a4d7e00dc3c5c4f5a03fd68eb81df3058a539be9607a7cc8723a686c96d606a797ae48aa9f74687d02a44107361e8b4c622dd1aa99c2e2b4089b687b096a997fa58b877bf433e87a1cfec84ecc35605f57d4d2d7f4e239451a6825cf4b16d60ec8f85e55094cb5d1e260dbeea811b4aeff5025327b792e3891f357ac19765f3c7bc9535bfaa87d7bc43f9d0b8a142ff61e77d91668d1bb5b144d23005c7ab2deaa54a43544276552de27f30511db3cd9ba8747a9dec597657aac8708937ebb7cde98b577da28300441c846145d2db8cfa5f7e6b54060f589698c55d4f79c812d4ffd20587688ab1be5b42033fdcacf12f53ca50ad4fe59fb33036f1976195aca38f54560f7f5320cf398891dd5431d66315c45489cb1534f9ecc933ed59c902514e87925f3599efffc0fe866a6c87d5c8f2671ef106e1db4bacc8404d6ff9f088aacbad919c15bcdded33d35e417cdbbde24af51ac7ef82c5e53aa3c4b17e9f42345c681d8306e137cc105728a0ce80e97ed6ed82d388c10061c9008e8c0fdf3cfcb9fe5775a10bc19daeda67f97c8d72db2338016924f473f2b591da2224984d8cd1b477048f269aafdd0aa71561b759a565a3a08b111ee230f5cb189ea09e75dab043a636c814a47738b9115bf3a881d9d04632438cdd23e3b88be8d63b5f71b9e630d6a649c158bc2d5910d92a1d5bda23379f6d70843d60c9e56b4bc704334021e47a4537ab5584210dca92fa2b4875664a4de4c9c36d350b109388ddfaa37369ec8b0de7bcbd57236533f171eb0728d0eb1e3966a1ed906e9c27b0a0d271eab14089ec3c758d42448e69ad2d4bec515a7ebd839e897a375d6d1358e674ae0e9b90df7162fef0d4441c691aaae1159c6fd9d15529e1174be8d9a9472ecf9907b1cb1ee18d9c16da896812aa46b89e6315c16d92f4e43d99ac1ebf61c4e5aae2ccb8af401e98bf7665814844f33ee28d93a796e73756062e108cb96808fb4286d3af01adf7aae23a854630bacf04c1784b1d22ff4c0bad860d46634ecd206582c3aa3c8ebc667beccdab154ef928e456066f69bca8eac36ed2d6f9419a652383d06be8be3d863935263e2b1ef53e4e96cd7eb4266747ae0f761bdcf2ef8168e72ef6a40d1aab36720447f3e07739ce5bb36809810b467f3e360f3130321fb626ca51789040ccdee9920a313fbf519b4d763263c5d6db16f56d774c359c6506b66d2f3a24735339b644116e122bad021d25a00aa6ff4d0d905217ecc736fcd32ae44d4571f2efbd63f5363f48c372eb7438ddd5a535afb99071998d90c908d4d996749f02b6e09735eb640a1a31cd22f269d3a7ea1c450270f03a6abfc6aad8d185857d6d2c2c2c5f9785cad2df3bbf3a12098fada49bd95f416b0b49933e909a238f7b1bb191736166430c3cc3e8d5b405ce01c7f1f5c1fa10a69089084ba12f0f903f7681b63ce5b0108d0c354ab95cadcec7becb91b99d058408ce802da42ef9669de80cbe570949eabc589f97c2bf02e68f4ac2d6eb9f977002c6c87479fb45e7e77cd28f2981f13402d05374cf5092f0e59a952f239aa2d1027fd3582f7ee26d65221c62a0abe754202c3fd1094ac73287aa85470db9b192cfcc80a4db66476e106360198a3b13f47fe3b1fde456622dbff32914bd2773e153e6b65c4f4ab42bc83e92c72ebc75dd2b4c5a4b4afa0defac0a6b66ac0bb2c2afe4344af60c85b922ae5e64b799962f953ffd2564f8430703c1cafae42ea282cae3b2ec9bfc41789f2edb4e1f5917ad88ec89f0a2c867fdbc733780ae26203758bc3a5fa6d1f39847101b2fbe8db3e670ffcb43c4c2a05a0d50fcfd6cfc6358826ff03217835f32e240df4b5b657cd0c332ac9ab945093d4ca55d60c4b22f07b191f104fdc9f831d228916f319d1532c2ab28367bd018036e6b56618818260c0c1e31c583cb2f8b34a2dc797c1ba01648d4cff6a71de9f0b53e07006bcc3d83fe0261145eae7a74a6edc983809f86a1778e0827b0f159e8314c29bfa5e8ccdb698102a472045ee5995f4749702e9c0a72835787d3c7f2d2300ed2c04f8b96356f5fd4aea42bd3a9a58e0a8b97f667792728c3fd4aab54f28f8ab3d180106d56be1a82cd159f3c304a328c5593a5c778cc459a60ade6a982cf6751747e91bb8884f08f7073936521c17e28ee62b6bd757eb5e33df6c3a00a288732a4596f2e4fc4cef3823ce460f8fedf372e6601f706588533833f716001f5b377e4de267ad13ee8bf200e1b1d427f1dc728b8ab1cd0d95f147ad45e5e3f17e79ff039081abb19ba20c4a2450218145696048a069920aaf8cdf1000daea7ac6517dc17863175508f096ef6dc378b84b68e265265665648572855bb99c9f1533a124ce93c63215ec45150680260a371bebba5d7e434c6cae9b9e092b0639c58524a51a91530a6743084581933319e640a037745c2ce1d20b9c73f8f7a36dba6e29906e72b48dfa2da86ca3ea43278c0447f54b0d7410146dc45272b1bbdc9822d2122d6810d76ac161e1c95e2b1210af193a2743cdbcba4a527536a293ce5d51365823a5a1c7a0b7db34feb6e36ac5953c9b78c7f6fc711a3dad45ad8c858aca9157cf92551e87e47452810b4368992bfcaecc6388ff4ccba90a29cae9805cc232116988e840707b5033a1642d4773aa3ef6f892100693c91bf29f248cd4a2f384ca22234dd20031e7546b8ffecf6005cb5a61f1d4f91cdb0fc861159a354f48f076df5de349943326310dda221f5470dfb733fac6ec31e0b75e110b57597843010ff771f42717ffa8b50c17ff2311234dddfe670ee8538203d035a8b71ccc9eabf84f3251254bbbcd1e839a3974b53fadcc8231da7cc5ec78558fc023adaf93cfa07033628bfcceec799d0740842feb0d71b3408e73d9e2b57dd8f9452bd2147a90d2caa0faa8e3d5571ddfe6462052f301e893c6c9afa86d64850650b7da5ed677cd44d43a6b6b705d712a19479b1c33ee3555823f8b038af37cfa20f81b1b50092d71820344f5da844117fd30aa8d66df3a49d79b46c76f218f97c8f33a70a0de8e809d93ff9328923631df2cfc47e28804ec7e92c90403cdd5651b2b27774443f611567375f02cea12f1a22a3de4db27c224ed159ff1554f7acd3f287863d73a5e34076bdb51cd9c9fbe317908deff89518460c402c87919074e258b051c9003fadaee90583050ab498b01b58851756ed9e021172d521113a1ea9c63df51c26935f59425a0fb33ce1f2135361ee8679f0f738df33edf9e6bc96873cf3bc028f252485eec8fa08c939fada9f85b6badb5469aa490a52d1b21844864f70e200a330952089efd3e23048a1b0fb954524a392f79dd789233d2888c4b500a8e4b516fcae79501aa5f5924f48aa2b02d3ae9a4934e4ae92b4c77391b3bcdbe5e2f291bed562810283465cba9b2af8728fbf9944dbf9c9d7d1d3f67a3b02fdd5959de93e14c960d30b32785dd1068c2537acf7d8af6ed9ebbcd3da76db46ffa65743b779bd0411ba7a784409372ffdc663be6f493321e6cca95ad7b293375876304862ba7466b07118488f29624fd027de35e7a48f450f6faecf8363f2982104208218410ffdd24f51992ecb297bdec652f6bb5e96ad7b35fd74c3c657fd7e9a56d8268187d2993fdca3090d1e85e29f3aeeb2941348cced9d771eeb4c77355cdf2c53dcb6e3f2b0af6efbaee1d8dfed3297b3763d25e75674252ff7467d2f40930909d657f1b85fd7e9d66d954a33dbb098996e56c48b30f7e18edbfb781d1f75986817cb24ff9e86ec97e87d14b76cd607ea704d128ec774d7728ecaabde25e7397651ac7c8e4b85f7d23d2328e912ed338463667758763648b1e2f11a82b691540dffe321540df0edadeb72dbbadb7b65fefd92d48771db0b65fef59d51db549fb67499b269d8aa45f9974bd2bdb5b6b85f8a3877f2fb364959d916dff7287c228c45d5368d3d79ea4bbcb5ea4bb6bad3dd6dd69a69bb1961aa95926b32ccb35662ad8db53ab87c05cdf26c88708c959ff533e10a23f801992835c67981a77a63b0893f583e4217fceff200bf9cb9d9114def5613e65c8837c66a607e8c3fc83ff360078cc93ef5300a063ac36991ef0e7db7c7021ff940f3e243f29a3f393598ddcf55996c24c3cd177790203c98179fe9420177298991e00f37c1b189b2017a22f65e8853cdf66c8b5109da70cd157cad06b4d9f63323d20ffb711f20f0e8177448629593f794d3f4588fe401b9132f4391b26d34b1c23f13412851d2f718cec28d0144939502a85f8a9830bf79cd87e53efe071a00a1b3fc4c08e12dc718331c0c001125a8c11823ef68801153e7421022584d0c38d3a8288d2c70e0d4cf006173e6c918607891fb47820101982d0922305165fd63063893cac98e2ed608e14cc1005145592a081881d2ff288a205658ca0091ed25032870cdab8634b19594e7064e66182149471440cd018628b478a51193a7eec74a1020aab890ffe4042c70d2a5646f0071a3f5c0181107fb0408f20aeb0a10664ccd1470f600c6165da908613508861c41f36ec7043089a7401c5141dd8000416232611328b6d0f363e80450b3c6c4823460b2a7e3082075a6668230a30f4d862063a74b1c50c11547e6c37b250d941193fa0004b960118e1850d40fe0083063da0204617596cc0a20f1aa8e181628b1cd07187147390c00940660e9e1a68aca185114c9c1186175af6d842871e4cc9a38c1af0785b8690618e1ce0600840bc3c618012e461c6172db8d0a045040eb812040bf048a2062fd002c30e17647041450f18887164e660c71931881182339c90512001060e70b4800c1d42404611574040450d5776e850e20932e880830940daf8030073dc50030cb660e308313c4d64800b2564b0c3430e78b0aef8f0e106152060c1142b6480c615fd40a308194680c612547c808938de1c2ca0e28d206e70441c4630d1c31b2040c20351e8e00c15dce1451537f0a1021a7088420d0b74318331705003296a78e3c814828d3ac6286287292f58220249e0c1431c697820074efcf0ecd8428e2786d8a3047454d132a74c0ba05081165e8c208b11b30c1d2e735cc1441234d850c59c5a4cd832c60d6f6021c608d438c2833eace8300509a4b8814789f785105ec8a1822bf8f89285650219ecd86165073700a94284961c1ab4dc408c237270823098c8a90283384a40033fb2f82107cf09260f320635b408f107151e0024061dacf090460ae07883071bd88092c2051afa38228c2d75fc8145e5a50f3270b0028a1064b1022ad240c18f244600471334bc00056df0800b1ff4f0d2450638784c30813f7ae0858d330059a20a6b08328e20428b17eccc50831125e0e00b305a1005145ef4e0871844ecd0e08a1c1fe852821ac8d0a1053a45c4d0c60e496c31c51f607891071f477091c6ac44f04316555091441547260b72a072e5083a5c20850c9e2426133a23c852c58b2feab08ac8d9818b1c4ef044152be6e8018c2944d8a1870e55acd4800268d4f1041037a040872b6416309ab1e35f81257a704313547899e2e5c8f4620f1a1c81c50428b8a30c246ce881045fc831c31960647102094c51220672e0c083135f68a1f14faac70955505526c8224f067e015cc278686c38c297111e11f825b46137c2865dbad08643cab8efdd75ddca55ee6e775d0f86505d5ad50d9b823a52869b5a521fa05005fb4120ae38dfc5c8c5be8908c85b1e3e7f480c722494535447e8120009c20d18f001031d7878b2451b397c81023aba88e308ea0a5de1fdb6e431840d2868e53d73febea1e65d011729e5af2a26c0a2c0e42f3aa290225030c6154bec70031a8ee0083186963100a1e2431446a05183078d1e362ba6338279aaecee6dd98f0d395ce0030e36d0c11f4ff010041562d0500315671c91c70dd51879ec9087077a60465cc3aa1104107c5c61021ea4e088bca1cb4e1f62dc3044207078487086173faea88e38c0e872032a770481870e76dc908e05bc61c607a4b8630618f4008f3976dd6f0b1e5b76771a12c48d8755808031ca38e55ee3d231e7945242a160a4a617144551d4655114152b8a9a12c6216aa5a0cd6d78ceab591594f233632fee8cd49cd494305641511445c518ed98198dae4bc728012735b3e594528eae94b1aa6fc0a2a8ead3446925967ebbd22f264e2e524ee9c1b69496ace091f8a93f7bbb53db24a02808218410ce48cd49cd1950f310c24318638c108ef92884524a298ba09154a4a68c4674d79c95a2a6be62172b6f4a4b6a52f37aefbd8793dfcb7bea39037d33770d23a8ec8ba2a7b2a5e5a5298a92b2af679d52035c34d1ba2a8a7a448021bc774f9e812154a7f214018650dd43dd93df966280ea55188665246f53978b2718a1446a0c4a514f77d4ce7ee7648da70e87daa176f6fc62c98986d38992328074f803e7fd113d40cd39298abaac15602fa8f7c5a6b88df3be885a9a2c608bd1088c37a96a8e003fe1cbf2b8d068bace4819782b73154580ddd54d804d00026c780abf22f7c9bc38a341183507e5294d8013dc58fdc6538c50aa2d4f511c126bcf5315656af288c03f3a760b08d850aa2daf1da8c9bdace57638462e3b2aaabb11bbb878aa2a5db18b7a95f117b7abb3aaac8edb94c639eda9af2b6e3d4e8edef52c7d330785bad455833f7deb0cb7abfb51139af14a1df5a7ef296ed6aaa2a83885bebf18491dea402a71040cd6771a84331088e781105ad0d2cffa3301a31e082b5a79aa4a5a4fb399c7e339ae9e8a62523cf4958b5d59b0ebe17b16b4de7bef592f85194f969642f5178ffe52e92f967e374b9132f117a422231c5fa815efddeef4cec8e662d33bf6b5c3e3627b7e494d77b7ba1b65babb54774422b0e793c9db739af8eabe0e7507e582570521844f60981545a5606debb29ece7d36566580b08378cf9457ca50cf25a5ce4fca4c798fc78359733e99f839652046a40f2330baa758d572bd95390076a457ad421397a445a6477d637a49dfe4471c1044b923691c10b649bf78fa4139ea194fd717f2c10731727f990a41ce3d08473a2505e138ae74d2e81477ac7452108e3b561a71a447120ca761604e13b10c43fa249148f7903c5f5ceb26b8f1e375c578e18bcecc46560e8a445aa46995c3339e3428e81e5836e9b1943b9b5d8adff22926860403b3499feda03cdaa48b488f220d227d23fdc522faa03f92eeee4bdfaef38b329beeea472fd5877214b8f1316a6635f817c5d94226fa434e875443a8a644222dd234518703c2c6cf6cdc2960fd21a78974481cf22d77756752a6c389a7cf6196e4f3486105818e7397b3f1a9ac1a9f26964e4bda84c2dba52379bbf49c4dcadd3729e68e851d5fda469194411fe59c1d45a08740a791c799fbe4174f5bee8cec4c85b8ed718e1a089beaeb6e1b1084441d034585ba413fac94849aa54b771cf0b229ea8678a2a878aaa81d0d70a17680a0bad8ee11911e3a687490e7da1dedbc59e9afa669b7fabeda67b9c396746a49a7891e5b3f3df5f75a36d17bac87ea1a7c6f39e065df6b1db6a4ccfe7e926ef50de954df8ceec1a176b646d22f9e44af7a3412712110e85efde1fee13e97fb7c3ef59afdd46bdce7735fede76e1fbd6d9bf67befbd57842e34edd26b7597b3ad567156a1892bb36bf6de7b6f12ab654cedd468bf97a2b2b36b406c6a475382035ea81d6aa76e414bd6314855c77e51c9983c18be6cea180eecde7120151de8879cd4158a33d041dc3f9fdbd39ae96dd6606847474a29abaae9ae566d43d2f5daed3dcddde8efb4e62baabff5f693de536b36dd7b74677a5bb3299160f802c397add5dc8dae885e11d537a17b702095edb926b23a14027159969dc28cd69c797256b37bea969dcaeea1328f07671a9fc2a7899e8ceb959a3dd6c3d7aa61f66a9bbb5a2d956db3d7dce1402a3747815bfbb44cac3d29975eeb6566437a29ee9abbaad99034a42265325b350ea4127760f8b2df27a4b2a3c09d50ac5b3cce2496a666de3189140ac2322a6aca0763885289bce4bdf264e41d7914acaf583684f0dad30760481847b036a862cf431b7cb1ad1d3de7c88789e823fdc213f6a2b7c506f4027790ce3962f5fc1afb652674584389a7eb3ad42f9eb076ef9d19e68e850de7276fda3f9b963bc010b463ed34f2e6194fd88b27cc7ee6ee6db9394a6c7841292fd5d5b13ce369269ee2e70c8ed711f1006554b8c6d3e4b6fca163250e19be805367a7061e78d9180e1eacb1df161e7cb1dfade081127ff011a9b2eb1f59760d340e2b3c3cecaf49f6e8a93130da53df589f1dce685359e16cb2a7057617b33b9cd1c6c0c8230fb39ad1ee946ccf2d0c8cf6cd2b8d81d1ee9a6c8fa6b213e6bb26dbd23823eb8fbbb6a52f02e6b8d8e347dbd2ddaca35d55f2971296011ab0e761cc93b1feaebf3779f5ef649d4616e20816f5a724067bde66093c99797a74ec29c48d10782715343698c8f29127335ff318330d28b61481843d5f17395b6c7968519a0022ece9802d6fb49260172565968216b3c27d32d6697e160b58b664e2d4f3de71e5e16b9347c2b5dfed4c15ad33e8ee388af29071690cf714fb0281e8e2658a2ad57e5bf4f0627720507accc93920902972dc4088347a108323720637fa68e38d187ed8010ab858c38d22138b5fba138d1e53ec7816f4c842478f268a180011534c79220c1cd230a2490fb8d0f2c60d548c41022bae00427d404801b28841193980600e215a00470d60e41003973d86f05461047582a3b99a0a41057b64d10227b080e089245dc2c0410b23f2c042065414573c6870318607092e1526a5b42c2ba63342d938c961d1e8c0450f233c5638712546272c5ae940f500028712a8a9c6daef9635e38986c2c4fcd6d1ad939a4fe08e92e232b974995ee6174a87a23275a6cea4327780a8220212b793b004abb367fc239eaacba0b32b2f5ce21e7247ee40dda4860a74f653038b304cf1308c0dbf3821eea8016083cbe59530a578724f2ff2d8551637d8959547a43a007070e36955c65c636699572696f9c5ae2eebef374b2d8f48752bcb34600826481cc453f53dbcec6a7289a72ac2f908659799e7d855ecb8c012a29e56a21c8f04a8e71431ec1cf68b27592572915664155985dc915564155945ee5cf9c0c84ab412af8857229698256e7924402459dc792b571b6632cb23523d84c5a57e1f91f9a81377a24eec2156af303dad5c20801013b3a795a8834d2bd5bc124ff74b77b202b3982480ddf3b270815da09717e83bf001ec549b24e039f5fc1d79013bd5375382e9274cd7aef1545d66915960155845092b575cc1e2c58914a803a9c01d08c4bb42838292252c347924c05d1d091fd53b996557bfa39f668c3c12a00ea7b3ad5c218be41ca98ee59c23f38a2cf2ae609145aacf2d8f0448ed887646981bc3300cc3304a29cdd9c9428b3a7848c3cb1438c803eff8510c62c75f0db041883d72500230ec98e1483c46b16c3d5c3a8c7cb0d4a0420b2a82ea0ed165c7f851fc4cfc15ff782a060bc45c62c74f4f103b7e26fe92605821e22ba5945299733777774a83082bae67881d3f03ad1355515df50e2edc6f5f3a569ad2534bf1eea80f4a443ccd275165e7e90ea792a35ba9cbf824107bce2ce37844e6659672c01090f071bbb9f3b933819855a612d3cabc425a9156e415f28ac422b3c42c314bdcc2a58b972fb14aac1295b072c5152c8f04b8b3b8f13257fb6592cb2332b1b8f2f711f1c245c7cb97a813a9c49d08c4151d2e57b064d9c2a50bdc79478ae41c795794b072050b4d9c48813a904a373363840605254b90f071e73bc965cfeb8e7e7a24e8e41c99ef0a10b28a2c328fcc4b251e09705ef1e8d03d126413141e097147096962115945478b21be1c79bfe4c9c8afd39d31226b5e09d5df3bace19160e91d20155842a5e1ce0b21febaee55220e2486d8f10d7845200f308747648fdb81b09b5c12e680a1b81005dd41a844007cb856f2a02d3c8181ec59e918b1fe8e508754b07b2e01ab034fd858bfb4e975e03aa6b1bf2317754fc6280c830b2dadc47a84d8034d649178645a81f4402794824d132d3d23651edc915854a733b2483c72610950c31d1842f5eadb23216ab8431c36dcb049fbc55183974d632da9d0c47d584e655d0016b77b5f94608f31a40556c4f3ea5264118845c39dd36bf5aed8ebcaeeada311d53b55751f108f601a5e09e4527f2544b9f6751d42c1a504f0c5ede0ce959debef33d7f5b8e586d909d6af16e00680967bca1ef01600c6ede04e0901d84119674cc3ae766f31c6d872b72bac8063b01a13b345b7d60fa5a3d16834b236cbb26c06312b6c0cd2f7de6bafbdf75a1b1313b3ef8dd931312bc4749939c578e8156f5996b5a47aae6cc949ea3113c7951da3a5cfb55c314c4a29a59452cafa794db25dd3344db3af1c0e7d96d47b5f7557972cd935f4c1f44da89e76888a4aa391482412519428cbb22c0e4dd34c9aa66d22d007d7d3e9b42baea7783a655972ea32659d169595855d4c68752618c4b49278baac17a2ccb162ec22030cf380421bbe87e27c374fb5f764493cc7f85aee26be2c4b7f71a61e7cedf3762f6c7c4f66a267027353a64d546736303abb49ef17ac4c2b89a78a6a25f124318685ae7de8ea9bcde690a63d1be7b116047aad14085ff3e06b1504b2c7200bb2d65a6b65a0598c353cb06cfa289665f85e0d5f1bb5aaacc6da43264cac4ad28af1a9a9249ee6b6a607944eba4d49dbdb68879a56124fcf6a25f154513314f11ad62525899e0748423981358043bff0021c5bad9363c1b958dd8873719e47ecb22abde4781c06581dfd93fda359fbec6a1ac6da2f3e28771cdeb0c518ced6b0cbfd721dcebeb71cde340e37b1bea1dff44d767b9ac8651c6e5b9ad9ecf3b9b5d65ba910856915d370e886acb5d65a18dc7bf87bb9637c757741f6de9205bd747557cf1de7ea9fdce170dbbd195f72fb5eeddad93b6e73505cd77559794a91b282100e3742227b2d5fd0d5dd936b4781d9986a06e4d8cc32206753aa318b331068dbb66ddbb66ddb363734ad9e54354d77716b0739d978dbb47fce5d4548b7db49f945990e6b98fbe05a43316b83bb3838381c0e0e37461bd7253a46b30cc3b286f14b1a087317b35b28775bfd07631c8cafe94ebbc5d9f86fe36c16e70e638dc36d6bf54dfd47df948eb98db95d31dde170bb844b24acbb519651ca518e524a394a298689a81689446d7038db8230b761cc6dbc61ccc51387c3ed28308b625e187639c1e4e5a9a8c8840b3e1cbd991ecb5aad275d95d3e8b56b378b6515abbfb756277fdb49ad1acaac15caac95e3ac867d3e9f8f0bae93ad6d15cabcf7ce3a8313965d9a925d55f797a7da9b473f297952664609ce4c8d53871935b0cfb5a237abc5b79a3673ef68f49f4e36416034f62d771bc61d63f72ad1344dd34c1a932087b9b73641ec619428d976bb7886e3445bc69999d9dc68668b4423502914028140a00f88442291d49851b26b35fd95ee88db6066601e04260779cddd0ccc83cc489999c745c9cc8e02495143825e9793399d4c27530f2d23d14bd949e740e7302c5f4d3be86ebf3509c6727737867538bbcd3027d82f35d96b4eb6a6fd6d2719949965a06b736bbf99c6401aa8a471dce7f3f95c9fd1288fb4d46b9af22565e659d8561b99f2e6c273b237dd5da62c25cefd9977e30de37be79d78d9506416f4ca22559369e9ee6ad20467144d70343850e9a28742d8e7356b9f6b37c976fc5b2bd6f75aeeb02d7db3f67e8efde6aec9beafee356dc7b04dd760dba409b6a50fce68db6ba5d2377d433a36dad8b5d12e8d40a11008040251b582ac56398ee36aadb55634aeebbaaeebbaae265bfb6c1726df0ddff45aabdbd168575ceb289eb25193d12866465c1876e527a847e411812e90933263828e71e748cf3ecfb6cf6671dd7287ad68b3d8ea1aacdf23f28860d12612ddea9b0f16719f0f372265d968341a85462010c88cfafaf748d08ef38c275c73779d6cbb3d34f7b611d97427656ff36dbab37f6fdb1c3f387757920d7fc3d7f47b44ea717e0203d9da23f288d822b22b47f25ab2a9eb925577b297d52f0fa5a9c6be299b9f5cb2714e3956704e34ca3de4a4c8c042e740cf2e1269376fafd98e3eb75184ec4dfbcddda96a13b6d83fb9bb1808039d266ad8928dd9ebba7734ea6ef1ed092fd9f6dd92ad5dbbaf30d0b5dc69dfb0db4fd0317d033ad637a39b714e38a70dd255773827ec9948546b2874eea11abaa17aed564b29a5d65a6b2d19d7755dd7755dd769c9ae95546b3da7b7ebbad7dedad3beae4b5edd9d7676ea4efb2d39ed2870c6d241dff5eaf445380f20454aa8454e4a0c9a6d179d239dabf592eead955aba1dd3ad9e56ec3557d89e62bf966aec6f4bd9976ea0bb9dea9bed58df90eea691288ecbb24f9665d8e7c2e80d9dbaf7de7bc580d755b597b21bb73d772dd7dc39d9b50403c12f61ad945f7cbb662bef3b2892aab8d6ebba52a8f9654389a29851718beb6a91f7a8eea09529cbb2acc32cc90adb7a756a599407469e7acd33ca507f59921536754a7738312be0c46009e392b2d14bafd5fe529b41d732e6aeca858e41c736c9e75b17b3b56b9a86691348d77cecf135fbf7d1379bb111768fe56e858d61ec5aab4d9f24dbeddf5ec1f4d1351b5e61dfbfbdc2c6f615363a488f8ee99bd1377dc31dc3b9bb1a2766673158a64fd54a5115e845a7228d8a44a263d1314c45a263227c0d93449a4422618c31c6615cd7755dd7755d9f6fb98bd9db6dee56d8f6a0fce24983811921348a27ac7d84f1354d03e1bf58c4f410d61d777bd04d59d35dfd761ab9e573b9c389d9f7f59febda30def086714c3c65312bc48ca2bdc1fc74d6e39f4078177276fc887e6e954eb3bd2e3bb2d69e52188665f7e0bfe9d1348dc23c98e7d7e3c11a07845d9a9909a5cf173f7f91fb8bf76a92eeae3dd2ddc53e3aa4bbefa941ba3b6137652a63623acc294c84c14e4d56fdd45b57dbaedd5a93e538ee48dee69eb3b7ed9675ee73cf96f15f667db2f62de76c0bdfdb9ce99a5fee6c76dd98ee2e5dcd4315e2e16744b1d6f0c5bd2e986341cefd375dc83fc8ff80522dc78b3228a7504f4fa997a500fa7c3e9f8f898929be6db345ffe8ce667f4eb526929ab51a0b9b6628c01de3b3ce554519744a6156f3b9887491c684268272070208a44d246d33e41a74aa310c6318d34e87581667d990ace28ab167f9ea29c2f4d3f91da19156d600d34bd772bc95a1100ffa0c1aca3db16c42f52b9b2a5d55d300f154cd577366f0ba32df7c74ea1925e46874ef5fcda747534a79e1192f4bca70ab39a5aca435a5944f4aeaa270352b2ac76a74a50c46aad767f660d775651f73be39e79be149f9ce7896a5e59b54f5dec3c992078ab2ba77aafe3dcbb24ecd6d55e79ebcb0a9d3442bcf5de53be7bd72b69451bcaab2ac6a4e2b43a1aa29ffa494ef5d7854937aaf3e5ff5595195a26665bd5ce517b655cd22283c9452e2fa60fccb3044f471c3eeb82bce7017aeb704549e26c24c13c645f240882398e0dfbea07e73a6408e18a38c3146f907454a9b2e3aa8c7f0ed3dccf532d38be0871f77d65f6db3a9067b14b96f44a7543bc687d45a52a691b5d20c2f0c35f519c95a6cad934db1acf7f5e60e8abc87b983223f7fbb83103e22a3d32c6b9e6ff5f7550efd9345aaeee8b3df772d38d1d99572f44f72e856e1b95faa4d35f5f4954ac12cd8e00bebce866ef5033f1feea294db46f246cba4749bb7cb814037201d656e0aca26eea60df40fad1b577314b969cda5b2a9beb98737833ef558e9b4564d8f1d4acaa4f427656a295349b2f9c922d8441fcd587752b695d6dacb86742f6522a50c1f95d28c96f04b1bad560a27af4d896adabdd884b54d29b49dfb8432a866d043b96edac6543a89cba0731b089433eea36d4c3769d7b44d69cbf8a64c2a65d229bd2997fe32121489070f282e8ed858012c63539f2158c1a62e9dd8f0145569287047abaaf4cc6ae2a628fab258334f8d50495df3e2296e19ffa48602778c52414907a54e45d0e37dc1c1de3efa835299c47e3b7d191f667a99eb45f8f2e5cedb1c45eeeb5b36d5d01ba8bbd1a3c47d537afd05e12fc6bf27dc606d6e681fd48ee11f0c35db337b88addca49c7063ffb60b393bd35ed0b62ddb9bcc42fbec6f874ec0d7fef60de86fffc20db706e12392e5aede732e727a6fbaabcf0edfb520c5859cbd5518f6e714d63f81fb53b50b397bd3f79f7fde23921dbe667bfda66fb4e3d717307e616fc759ce88bb1a0cfab66920ac3ba8b34198d2f979bd555eb105dd59eaf5851d0a41eaf589dc21ab29fbec37211d459a3e3771df5e1f3a289b3e07bdea2e47c7044eb75083affda36becb328718b74cd25c3aefa06fe967407258632d4d95067c32c85eda353fac2be964eb2e9fad16feea0c437f6756d54bfe59825a17ff104f5a89e6adff285880d4f4f938036d437b49b96e2d37cb5cd304b52379ae996ebeb69ee660d8e3b676e507fb961c36b9acc44c8e3427acf4da05aee5cc8a1db46e9839beee2de9e9de289ed46dfb7fcf606eb690d35e173aff853b196e9b9acfde2bf6e7b876f5fb369d335a39bb0097f48bf268e66d329298b3eaa597452ae1f89ea7b07395d23bae97e3bf74f365deef3a76593762efb28e38b72c83ef451ce2e0ab5003748d77c6ed2345db31d5f0edf6e19739bf61eccfeb21408b021948c2337d5516616c1cb857f95087d5cf8f7c4faaf0c4f23779561d4d96f484e088ed6a0f4c922b0bad7463eea91949122995c29c344ea08c7a8288a6262e98ab2a48c7422e119b2fa9cd09216f52c59454acaeecab1b976a0832ba38c313b41524ce6af8ccd6c731d93b9bb364f5f52860aa58fce4c2591aff4cb53ffcdfd7277c957ba22817f35f249fdb0ec6005fb3a05ad07e38e49e2a4a8ec8448ad5a653551feca35f0f1ca4e88dd84fac11d45d8e3c6bf8ba0c79d8f8fd525f52acf1863847be6b7a3f513609773023c7cf56ed6c85327c43d7377d5c424226020784f4a29a70eb86ced3df809276c014af9ea50b25dc9bf8c263e4adf986ae029fdc4d2512ed0e56cf89c5d6917a843a136a55da01e056f4abb000f25db70ea2751e086765418e681b22f24f49576b2af5752f6c32c24d72b8dc188430eae8fe820905663d55dc4d7a6b91e67b86b5e3c65ed1aaeb19a6e19637847a7d2e38ce91b2872bb0037bd7952537f823d4e62b5148ab9ad72c7fa86bba5555e52260281b2ec9fd3c42cbbf86618c342a150e8de7befcc4cb839a854a54a0f6b5a0997b447133f2fca2448b4e3bfbb9dcaace66548b44825921bb39aab65bdc3b29cd461479dfb8517ecd8dc12b20846514e985c34929a1363610252c775715b869f5d8b357bed32299d8491f427779fabd1df4ba548d9f743b5d537f817cadcf75aee4218be78cbb27bddfaab711ca7699aa669755ccd92eeedc5a47c41995acd9fdcb1b03f7744028140a0ed8a4020d0258174f7b14f2cbc61dd4199d475ddbbefbd247db261dc0615bb46b1bcdde68b5d0cbbb5d6dafb7b0cc3307b310cbb1cee58c044d4c6300cb32553259128a5d406d6dadf7bedb5d75e7bedb5d75e7bedb5d75e7bedb5d75e7bedb5d75e7bedb5d75e7bedbd1774fbf74678ef6475f701fd1914aaa2a6bc96b5aae5b13a259b561596312027669936d564e78e24d3f339324392d564df2e33edf1a46463d9a5fcfc49dde538b1b15bcf1ab0df41dcbbf2d1f35b4e80b49e6996ee4ed543f95915cc969f1967e671f9c4ea0535207df007398c90c370b6a6dee224dcef1338b3b1aec1177128bc1d05f4d1a3b6e10c37ccb4d3594d18e5ae6e7b50eeeabedd05e12d83104ff7a13c126598276341d85e03219eecfdfbe969e2fd6922776fce8e65edde0b393d068414340a6398d91bab9fc0ed42cecd13b8afaeb9af7fdb9e462edf6b02e87456fa9b391772f63d77ed86fe41b29d5e66351be82f1bfd6d0f89b487364d8ff255a1b8ff477775df4b51e85e1a59bdaa7e2ebb5496e4bffae6a7fa46c8eff13d26e43e663542f483c0c0985430bd642a994aa552c9542a9548254d22916a30a30404104ea71811e82150ce39cf209999d9f72a00883bf34104c1f10840032934988f043b1f09f3117944e2095b8c378c7d888971f415361513635c21e68a9819641f5a4f358af3f65b4131bff7de7bb15b1a8973a18da8548c198873d4297523000040002316000020100c07c321915018e7c12e760714001181a04262461509a44994a3300c32c818639021041040083184668650260028792bce929b903243bcfbe817eb3656c1cac4a42d12bf692e0538d54c14eb1e2b147ea5a5b65391cbd67dffe7621bbfb0e48a9be95d1c7bf2a4fddd309b07b98dacd86e546ee82308b72de9d27391a2174ca6026f66069b8926de8477af477ad38f37d0a26714f513363fcc11650b9fe177845889be3d8dbb4bc3c25d16dbad74a6603b822f3e93f70e411fbb3235d06c81a75cb8e88ab2521b7f116679b9000850ebd9ed9bdfaedceda644e6483833c0f294a7a0894b47eb8bcaae90853d567deff4e0fd72418e34f731cdef79310264514420bc9450a867c02cc1c21297cf5f06d6805c87b7e35c1d2ac6be903ab28b43bf009390eca8e9e991a380c0529233ddf0caab78d413caccea9d96eb17fb99de1c13b7d558959106d8cfd15b3e48a331b22d9cb4bd381afdbeccd8c9466a2b1b3f50a87ac89d527aee5cc365f0afb10f5f917d4b2b18bf9ecc3f4a37db80517821c7b8c400f82d4a13c0bd3ec1393ee9fb2e02e857fd18252d5a38de7dff5d96198dfc9ae5c0e0a6fbb9b53cdc6909cfdec3e3e4f08961a5ed6e3d74f326611b56e84bb7947023de452a865a149f44e83c177a213f2665a5a4f6477a120b8856dcbeeb18123b64cb3c54eca1dc79a3ed1485a09b402d8623c6af54781dac8d14cf29023a3f0f6f6ff60a09dd7c780967b347e65b3ecbb3a359485660ef51808acb5533cd3866439baa0c032d80380dc083183df0c98aeb63145587602da3f571adc1d724c38281df897fd87a11ab8faf98ea1450073ae26998a69f2df902dc45a930c6caa1305823b55f1863a360c95c88a85c701502b506f3d3c4c5ff0da38cf2787e1a13cf780dfd9f2489ad4aefcfe50bb7569dd6918fc6cddb72ae4c6830a7f0010349b006ff301e3218ce4de5b880e3404687f78cf9189af5e5bbd0badac5d06052df08c3b91f0bf8bc63b85892e26856fcab619a1cc19ff736daef8c47a686cd3e5f477510cf4a258bf8cb2aa2fcad5c707ec7ae1980cc38b6203b0c9d9d199831ed3ec1d8353ff1bed027d1e096271f901a674d69c3345c63b18bcb51b7403788650711e543e136fc3ba28b5b4ad2250c46b1dcf6507146248b4c5c6de87869ce0737bed8909b224b660c332384c978c5d93313f293918f892b6c91bddf62caa505de8aec314a0c5415a38ac4e3da3a7fc85baa83bce403a7a830357212cb688cf770c8cfe0ae8f43de4b7504c4b8ed1df28f1b4dc9cdc707b65b983a91b0a476fd582654c32c20d24a25e06279c9240e8af0a40e591463d9f2ac316f0bc89a59de0255170bf5cb034032971f2229743968b95ebacd872c9f13c95d131a1200b9c08cf633b577dbeff0e485a9324162e40c7ebf29c150530c99080e074476547c5cb54d9c060d99548ad258bf4cbdab9b48b99397be76c8d2ea8fc7c6cc59022da4240819f20e25462fff063ead3052483f2750687de59d91b863c146244046844d4e6d26b1e2d7e426a14b68fd803990dfb8dafb0a35cfb34a08842905ed6ac88113328beeddf9b4d1b65db36f97ac0c99c48771dda033c16439e421740321172e408899684202df4ac8cd82830aec6f2225f17844449eb6002c55b492401d0556ec51cf0f594298c05597486c0412ddaf997a27e9b92e438e6774abc15773110318bf4343ae02581ff73730205bb652604f82597350ae8ba09246ad41388758bd21cb4b8c8b0080830ca256bdd4fa63fdd0180bd6f43564625e12354d24ce7dd800e17c4b04216614862ced9f76e1de90eb9f9131abefb2a23964c2c04a16d8704910c399448b7d74868c2b4e2f0d5e506a0196d96b42b2fd87338e110582ca64c0e4874c568417274aeb3220af63769873c81273086c031f87fcbe253a3beb31a67f0f69d7cb8b157e152973e349727f055f76c801984e1aadca908912b1ff1923639e1cb2944764d2c008d25e68834b0ab11ab2572ca27b02b3811972800ba9adb09b7583c3293e7c1ba3d9e021ef85d35a41178deb568a19ac26c04157b8508c7cbbad3bd7901bdcdba08199117e6a3c237590435e3bd032808cb233ef22cd0167cd86ccdfa786ec09a738729bfc83c5ef16075786e01554d3f42173bea6a11218c967551ef28b37a0db27f404210a4f58af1a2ef2d086fc63c01769e573dba939c290039a7184e9de87b718cd790f985b5418f2dbc729457a1dbdc3310d39345e0525a818fd513fa34535f389ab672e918943be595a52a23e83fdb1cfd8ba6146eebf66bb29cd16ebba15fda97d36b630a6093d2fb690dd5643a5d8fec65897a0ab55469246012be9bbf033a0ae11b247f5c8db41bc4dcbd85417321d3559b0b795688ac42f758039889c68f7ec70c8b50e6ae5af7ea083331123e25be2def8807d198b566bd2eb7ddb72f3178b1c54d6e04e28f470b7a18caf7139888b1b356c91fa65729b299f673c5fc8ea2e0df2db4e0ab47a55b2692adbb6245b2075a3c7f8ebd4fd95e9c4d0a8d12c29ed40306cefa6e1e70652b6ab6d3a6ca3532952db2b127129ca5e5cf8907daea382465ac4b963283bd534a20af18fb558bbd33216c9846995da9e65e704481b5b8c906bdcbf0d715cc9aa0f0b2e3192a7203ef0e6190e1ce9e46ea1a7910c59a024cb0a01c17185d0b6adb1f041ed89865388b7d3aa7aa0153a19994b3f893fe60bcae9ca7796b024d325ec1e5b9fa02d5a06d315aecfd0f9bc1834663f0466b64b90c601d820ee50814910a8d055307658b8202045b231aa92f165ffffc46c5cdcae347e62725d53d42f5d866bb45c1d2c044b09fd3f4c8c94a4263709dfe07e6dc3c2dbd0bab3f673f06864607e7e3b24058a81aca6bc535ac9e66a13999b15860385d4a26d0a3acdea02cf5399dfa21d0e1b64c13ab2fa3a8b929b2cc2ba3345d07a11e45d4820d461677b731c6432a33bd115532478b59817a1ef8ca185157e3e269bf5642d3e9106f78290acd5adb504615b7027818f284c338433e709b3d7e8f62c05dfb6d239e811a780a03a977730a79a80cd3764d91e88ae2b5000c2d9e4dd0ff199ec96cda1fcdfbc0f9d07d6fa490594b1f46474cfd994ea81e805309b04a95915002d020986c8bbf9f9fb6e4c993eec45b2d1baaef51c63fecf7437137e83981597af755dae6cd512e25cd7be68e6f3a1555c945451bba65d82aed0fbfb55b45ce492ccda1d567f2c9601ce51f94a641ea9d1ad2acc5dcffe65f0e9c15aa161bf7b4bb32d744fbf3cbca80e82a081753b4f45788f1995fcbdcb80f9d97cdb5d677e44bfcda4b6babec499e0545129c3b58da14418fe0278f0d3a2cf24606c19336382812a025fc9f37ef7c0b3a1a1a22de7e5aac601e92cb822f6dd7a495b1b48b4d5eb071435e7f32c7cadab55d6692fb40f724c9f6a85d5e528673a33c5b1b53407aabc0e99cb854cd05de8dfd491fb64a77af33284060f4405037269020f519df2b42b3f2214e36a29930bd04c0e2ee093a881b441e55af94eacaee2135640c9a649e1b608ea90d1cdf76367fc6530690c1cd5a835b98a3771bbcdfa51f47de39cbdef36d00efc53469ae7016c293e82ec49880be210ce9d7b52ef2b8df1a65cc96825325801f3c6732eb72b989ab478427c53949819948f2ca1f50b5189154257337c948a89b1688e970efe8b4a216ac718e1ccead49ce5a8d89b3042a9b7066820f4c90a282e10daa86f8e906859054d19e5df82c8a6f5c17f81caabe9129cf706597ec8375f5ac67a0602877c7a0bef0d05cc088aa61c09663d3a02179ff9848f9eecabc89ae9e7903ed75d1824f048e7660819f81374d680ad9f7c661dd33e1c18b8fd736474351e0f87384dfbf2a67b24b08c0a9cc7cb2816b930f919d2bcf62ae94dc2fbd3ffa169993286104e12c9838c9322a8c3c1ccbfeeb08f3dc501fdb6b1aa214b8583f00614b28ba83e6e5fd71466ebed07a82745c3e1a2f0451d982a0e0ce8d53657f31bfbf80c4e6fdd60080e0f1d93b0a2c6caf7984cabe9e382476a99ead569301bf926004894e938023f0a927cb6e15e112c6c2502a3d0052b9185761ce8acbf264adf8076ae839ccafd97380c42069f3575e30483d74c615e65240cfe79b36a4989e99e1ea6511b65c37985a9c45b0e41af68badd783a0cf82accecb6d793db7079b2517ca4c305251a3675608ae5256d815bf9f7d2ce0b162d00ef55305c593b1b2532730b6f413900264a6a44261a0c61ff6e33c83b98b7c4ce700a58a03f89c6417c250eafea3db36d8605cafb795589005510b354d7802502ecd2b94bafec1acdbd12cd36657abedb99c0b77c1c4d641b2c8d3321b98c82e908e6ee57a3a5c229c43772cfd8f10aaa89c7ba0c318b84f42e8f72c4989d44227b13681efd2379e98f1306eb6fb7c451b7344651fe8cfbeaa3124ac7bc2b9411af242dc82ba46678227afe38148a1168957aa10fef6ab00ab301ba127ea8332856cd4242f9e8513ee73342cca3eb5215539df747e9255533ce3624c527d1cff0b3c5a86a266459ed01721c9320bf63b5977347eb9e3f36149020623d03b60e975c07fd635a9db06417c3e347479663634a567838ad3ac5c5e155f066464a3dc5f7984a2f7345b674aee931b6695ad244ee3500c634c337b8d5dd0345aec40122c8112f6bada0dfa8725871982ae1cb0384743e4e7d07054331d8c204e893a54aa581f40d482084fc8b23111a4a06430121eb54e9a5068effba95d3ed032068d6c715b15ede353253e9a50e2bb059123974961623ea393a1c74597d84e049d6e8b80556e949784ab48a6c8876c2e88d82ac262069db552b45133b886e0517d92c615b60902f162fc77aa73453b6f30329466f3b3631bec13363235b84fd3de359e8587b569864fe03b1f641b25eb7848dc66d90ab9aa08c8d3d47e8bd3e3519fbfad684f5f1f0e257e8535938f9254f50a599c4d2604c266946be92ba42d5da89d0989853b0450e0dcbd71b894726a1b0e933246c691493488e6647bd8aba73c69bad3b8fc65ea6e1d398d516812c418d187c24116f0be6a844ae87cd927be333c569c95572dfb239e6c090846d7674d248eee39e7e0050921bf3e191218c0f3ed5d091329f812ee3dfe4842aff0dae01460a997883635fe81faa3be2cd93b564ef3c583e92f608c8543e9c39f62b00f31ec4679af65e0160c67670e1ff42d4e913bcac2cf615da5d0526af0ae4c7cc5d6e7d65f58cd9e8ea45e19b49d9215a7910f3a4a98e520850ea30f770b4adb1d4867cf69b3e63ed1fbfec05304d488b0d1a9fb0865c4dc8f0269580e928aefc8e94b852080235e11c057cff3bee5b626020cf6d31a4efa7ad1da9fe9f521a69166ae3c35d3da3051fbf2f2d83aba4688ba18613c2d4069085dbe88341101c353220ce0160dc298e1298a595521011aff9de6d5b7eb15ece0a12094e4601ba467d434b5b690dd76929fcbb081bac39177b98c30ad01b9ea57ab65d22f09acadb68ce055e4395f8c6c53eab3599bc9e6226c7dc2980936df094f251c80002ef0a9a748d57c6db451b15e13a9b56bd4d03019c93965c81bae0a3347c5aa889ff6966b2e562b6716c1271883618303ebcbfec3370116b7477113f04e2a0f8059071ad6794862611eb0c10d5aa1e7390d13ff839c01da7b956bad302c480f0f5232762027b0a203dd01b7b0d8452a0575e00893bdda9afec4141048dc5ffa357c4808b700dc80d3ef767d0d231268db4927ee4720e0bf0300af5524438f6b619c4d79949deb45dcb1ac44d07ca1ef09cf5925271adcb9271e38028ff19c7c40c6d0b0238d39bbd60ff962bca5345e9acaa0e5befebeb2025009fdbb0f57f601b01fc000715fb0f864390a8a95c15c06b2224113faed4104fdcbd3e130025c15eb7b5d0d7bdea1583889d97e4bf27c427d5559bba5e3e39ace793f9dbf78d830ce25337edf2c81cf02d030582f86dbf4d63b49a085a1aca5d804a3bef0c2f2d1691e1082bbbcd2cc4ead487ee7c94073726dd6237056cfefbfa258da985cb77797357699758634fc96e1ebc9f7be286bb51fcf86fdf8b1ee2dca25b357751c4e0ef98199e567bdb16ae64b95054a08128b9b17efedba40d6c93d6f79479245c3d5b1fdab86bc07587e2bf0956a4c768cd79deb1858f1ab8e3bf4fca92b48a49fe5d7892e45a981dc3be38641f432349857543a224c97a524b2dbf441c2b9978a4d6a315cce5257a184c560e5b2429125f3a1dda3f854c530a103e8c7f30dfd1430c56f3743df96d9bbef705e5b975c7a774e485f011dee40789f90e1cb044675fbd9c6c2128501453a68025043792d4b01bcc53f1ad0163bee303f6c657ab8584bf455e825846d558ba5bc8080398efe24e462110e6bbb5b0d3c3e771781b0a08a8884bd00437602af386fca18d616be1996215d83af0eae054835901bf0e5c1d3c7530ebc0d6815705a31edc1ab875e02ac1a882b302be1ab82a18aad056aec34d905234df51579799dc93683b7902d2d1f9e5b6c84ef6f315e169f6c2a29fe18dd2f9b148c606f15794bd39cfa99237dceb9a733416083406cc9043907102d4a91fce19eb72cb503e4e01ab7d035300e3589e2c279d9d9b317272c35d41bd8964155eb5b60c9d8974be235434eb5cdbc34a28ffa7816f2f42d68175850db14edaa3fe274cb5c6d69ef4b381d4fb11809229f6351d59739b762381ca23a3771683409753f6b63e6f695d65135fa6454b96c5a21416c2791e3e477f8eaec2c80caddbc2804fce11971c7f702e00edb01efa25f921a244869893f930bd042c35b9d3718b50e8162f2f31bd26985c97d8c77a3a9018386a38f40544466aecbc9bd15ac9532761b1abd98c66294f9d64c41e2751ce7e0ee07d6e44c196152f0324d1b370d8015268a18712d8af224f2e6e08f77b5a3763da193a65fe18a5bd4ecf3110d73ac1439412c35ce241091609198cc482567ab1b540d0def4e0dd329235474728bd3273bdb55fb487b69073511861b0a9275397b3f86e3a24cc2ed1a211c6979ece2b88e420bd372ae465e2e1858d6ceb0683b97bf5859103dd8116c2e112b5b8a7dd81bdb575b0caa173cd84a2018d658157fa7c0cdcf86fc1583be361357f1619def396fe37b51cc246885c38fcd0e4468a3231c6d49f08dd57ed40ff8731306479fbbca7c33ed6dc06a0eaf694fdc06c6386cae5bb9c2ed1fc1baf435e26b0e2e373404eb6f99ecab6afb0d1fe0e9c2bab33ce954c334019af6dc3faf81e4f5562c3fbad0a77580cd5b089f62af604d9b2368eea981af59ddcc6afb86213f6c20b2ecd1f447ce5be8eb1a1fa56f602b26bab55e38280c1bb47da9c35cceda67670a35788a050217136500fdf0469a8a55d2991e14092245170ca656f936dba6cc0d699fb4bdee28aad1cd8100cbc0b56fa96dfa0d5df6015a236a5c3526038c926b4b3f9dc361f6e9c021de340ead3e314cf522871d3d0bd0f5d66cffc893b8aef484e08103152a336867ae328b65acf2f0cb7250f8f8757cce7cceea1a9bc0a966af2a94c7c98ae2652b81580a9031dd91b15e962a878a13fcb7ff885306c3480ae2d9d3271ab69d451dedac27fb472fc803b9c7b0e3c151dc20de6b402babf6e4fc42ac5105bfaab64115b266e793cc164431cd12e98358c1cebb3b8e598eaaf427f658b310f11c37361b9f65a4ccb261ab7042804897a86a33fe469eae326b5f7c7a0c7e83a095c46cd615b9224196ccffc945f94d2274758d052bf7c1398aa8777e63373e36d664a2e228c840a21c955b436500d5c52373ca81482ab824f18160fcc69d9b624134b0e8e1f73cc9dc0e504cd0ef1e0cb0732a6a4673740804b098613084577d8b8856565fecfe6fcd79da166d8d6cf04c24d2ed0bc96047bf63fd387201534eb6df1bbbdb5da3fe90197ce869966b5f454ed0297bb5a9042d32ce596c20f7716037c258b7f91b31a0b26bb7914945624e9a38bcc6a9a39dcec655b4068d5481c6e1cabeae03ae510e5b529dd673f09565343ed5f67d96f839b54a96fd9645dc853e403177d4bf8d95332c9049e6aa7a1320bf59c96045ba117cc78c064b86bb530b85c3ac89b654c2f36bf39473550b807b39cf677f2a61b75223e6085116b58766cda1dea55bf9956465fdc4b4cfd3e8d718161dc19c862a305c04059bf8571467c4bc669fbe083fa288303498b9f2243242947dd8951942d6ea3a5db579dea42b68eb8e6b5074d66adb0d8df68650734b1cab13090b1d264791847a0b09e523648e69e9a5b52c4127676a3ad82e174fc6dfa35801bedcda26062bc1f296b226f289c8c75f4c1432b375a9909efcb2822b690db401cc67cd416310405f3ed4f7fb01d5ff63c4dcc2439d50db52232335f42eceb00996063f644404a2c4872790ea8d2ebce20ff637a7a71669d37667775a4b7b37ad1bd556d80fca8f63cb01cadb2b7c14bde0f09d04c35c3623bc12fc2b071aa11a8f80923c64840037e8e3bec7e6d4f2b4c7ebef77f380d1da105a0dc72f4f41ec9206633ee83eef64c143457ac4bbf9e2f5d7caee396ed247a3402e28cda76907048421b228b00003c6b5ebd3bc15cea6b0b87d39efce87e0da00ca22a05ab3b5aa91a1e7fe1293eb788f03869a6d22c198b60233d5757a9b01c97ba123220913cba29938fe4cb7c701fed4ae609a349610166502b1bc14cdba7021fc03626e38c6617e4b7b09e8aa4998f3a8382fc265e3acbf2ad428a6d6c802f0c57ee9015da1879f747bd6a02647bedb8080f8afe79fa323631ea4ebd64fc693947dd597a172a80ccfdb38b9b32bdf519131652137b2f1a7a9f314a17cdeb0c1a39dd85f785a0e87913982832773b6f48cc523c982f52c8e1bbedccbffa8236e35137a7684d825a8b46cbaa6a9bab6e2a72019a041b11bc0df81e496d23e2da69c175c68a83ad8b1f93d6ffc24c4f3b64a6dad83254096fc3b8cf19e718c300e005e8ae9a3e3e5f7fe922728cad7bc8e299fce92c9dac9e2c1c4e65057cfed08c4c448b31b7efc5e84a9d4d6099152b3884ae03c7d860def64eb1d9fcb6f3bc5a276b7d1613a3882f5d0fb0faeb57e27037789bc30a7f0b7dabbf83acf32afc1c2eb6251b4e3ce6e6c1957db93ec504ab2866495e9077112ba22004a4cd0cc97f52d75a0b9781f5dafbcef94a14d3ffcfc7595598b5083644616c1fa4ad58781932152096fa118b74460ffc881a8a8bfb03502548dc6d25504b0868a072e6dede6bd380349d373eff6d28500bed9dae99cbfa42eca17d43b4e3cac9a1d76f14ef132b4c90c8f6866cff9972eea07f210c86997b4cf01b2971878ae68457fce318f5f5cba860283af6d54865f8fd387de3e795baf90be15a70949d6c648be463872afbcda53ad02aaaaeda7b7b6120eeb4c4009c3fc4016b599d79af291ad9a8667013d845fc06898407584b97f1a59ac18a2f4cac634bae5be6db47e849b5f662ad0aaffc4a6a4008f7e2dddbcdc4b15a1c65405e3cb5f642295fa2e220de764da9b4c0f5aaf8d34da9f27be7724902f9d6fc7c2979768900f2e94b371c5ff3cd8bf874c0f22c9189d73d797c40bd638d68c8bfe68fe5c0d774c23281836b07639b522d796ae1f635278302c853cbb1af197fa6cfc7e105533a6b4efc65ee6e16569d5a4847fc342ca4eaa62e58323da522e0d24cf772bae4c179625ef9d322b3079adfd4b297a35352446ac4f4135656f7aa88e92576136cb82f275f3eb49490040aeb1b621708eb73926dee9cb2a523f1add0ae7bfe468a7b6a403b1158fcf8d22d8f13a34d0ff7438de84d2c662c091fdd0a6649603299ebc6c6490f719442f4cdcd921af8b908ce47eca1d04543bdbe586621cb0cd390e721a88c8453bf5f3ba043d30f39c32c363a8324a8592a297590604567c0ba3761904e977d767523fcca115c1e9a3e2e1320768ec591d314dd9cbec293331787284102d053f1f407f838e3963914f508dee64a6039e17fbfb75d400e6bd13dc22fe5eccb1979fd693e9260488aaea5440b65f25204a58183410de2c4df0884b3e9b1f60238c22e583e8a6b9b992e16081031f7802b134a407f26812dc6d8e940b3d2755df29922220c280400cc188e9146cef033f30057c8279856b29a35b11d803f3857a1354b2bab466c0c3e8e0b73a94d5e26068741e801732966068b243cc86f4af65e05a0a0c2259bc4cd45b5aba1081c5850a405c3cfb2a7a5108d854203a283be3ecde55e058cd8c085538430ae829ef2555a0473eb0acafb0a4be9b62cf0e15540728d4822fadaf7a8631706e3cf50c78291b0635c2ed24c8b7eb10ebde818649cd11292ffc1851aed9b811f125c60f20abe51cda028866b0d8309fa8b18e6cc10afa193fe30bb6a4d0a29eb6e9d928000942966e04bb9ee711b87e6cda8391445f3b4e85638e13fe864991f2ddc321ae022f7a6a95913ec1b418bf9a99da402cc84d30eeb3543a8683060a41ed128ee811c08f491aa8c30f7c05924637a9916ba1472503d2f56867586cdba4cff36e84f996cc2e65462b6264268eead6395e022ab13f62d0332ceee24c554e3b98c0e8d4a58da5697a09893d2e2cb0da28970c6264681b7661ee4460cfadc9a99472560ae23aa445c8621c9865b42a7874b1b0aaf6c35b380ab7531c5e996660a20e30b45232daa66f22f6ca1bdeef0667b6c52e2c22617c0dbc08218f3669919c7ade880e596726b01c8b7b23df287acbc6bbf6b881d6fefd01e1f571d62ad2107af17561e8432741c4318c67add181faa81b135dbbdccd09db583dc664a2a1ad8161e5397c8a3c16946c8e904932b36b8dc2c035a2e03f51e70edb666b17f671583db83354f09926d320b19b4561d0af1cf1e75653978d34a204e3e344dfadc3676717a9032c5b72423252e4e8d43142a97d86c6254947402b6761391a0cb10e1746ba9eb2a14b1390c8a0e6ab8cb65b983710ae915e9d8c909ef3a384176f0d843320c4456154de5c5d833282069eb8e91c8887c09b073b3ab7f12edd2189955d4fbefdece992928b2a86ce552832fb3dda44116566952c6a5a1e1e01b6b841d1d2f5f7a2576424a93d6401756f350c49600bcff546a01c5d4cba54dc31d4895f2cfb7158af77a7e41111791c18b135f2ae5e02d005fe47ff08abc574588f0cc4f85f158c22b4b25d7622a508d8b629489bb95354351b832e6c7d540695d1100fb4c01a9023ec05fc639e6a6066f09aa9fc70fbed9bf2bc71388d88e41839d34a50a72933d8052df6442d3bd5684685bc5184ed004f17f3ca248849cc989c550394e259068910949a529a5bd31603d044635efe893329325797b0009201991efe78004c922e61987b87fdaf95479360a17da6329c60833f9c9d3698c88e17b6220c2e80bdad3855a27787008c60d89912ba4c2bed7770fd487bb7a78168afff4f027979e48e76088a257bec7f00772603d21804a387cff6ed5edb3647669aaf0121bdf13dfb6608ae5267c2f6511a44ab999ff911fdce9990af6cdc1f735b7bd021e5cd53439c46ba790d4fe5deefb47ae9875f91e81e28693e2f64506bdfa7b44094fc41612d7019bac98daa90ab412c053f19148f6a707b94a84f291d5d87081258a91b3c685f5adeb5a5353f20fc2a3f171f11174ea0d81aaae16c9ca11e6350b40a0d0d08ce9bd9bf2e007abf67d1b5f9169f57b449b85e2b8f2569290e51147ed8ec889ac92e4e2f8a5807d29c7a5cdf8356d7044771e633336bbc5f54888ffe85850813b35744c74c50a9e8270b1a0584aa69f41edad169d0457a0253171b8a2cd9c041644ca2526d50e28e0c01349c5101a8e2a5b7ae21e113f1725849831bc8b670099f87120113caf4bc884a58b0e238fda1903c9035c6bc6d08f12ae5c248be589b3e84619831e17d6e515773f43cb6a607e017ca7bdf9384c50091571e45f25185cb711681335c44a151ef6243c05296814c3c1a8f242a8f5460353914cc33122b4a2213000670b9a4e6b8e83bb11176a652b5088945f8f1d30e7565903019cb5fb7a15d39efcf87efea5112bb24f6501a682173f64590916bd092e6d43fda990bf93a793d7fbb003d2624b38401d618e00dc1d81fac789b4cbd7a998a241184428ce9c3ac2ea445ea78649fed53ec2fc0cac8c7b49a72af69c7d5b05b376ca813234e88ba6024f78a6777a733e5c8db509918362b59a8a6f0692d69fbb50a84ce7511b506ac632246629e6351a9bc15332ec447d6d7bb5c7f148b92105b7141ad7a07cad24342bf9c81c9dc3c7d2f70b41ccd2abf98c36900ba52cd8612557048c210d679e37c6d24e0afd2c70d1f7fdc69b8bf2fa2e0e53425e1f2a9befd09dd1f49b8c0fdecf849718a5a2cb7f876e957577cff326fbfdcea12bd88f4fc2bd607593170aadecb676ab74c5753d35ba416994365a26ae097266b569e0842aaca1c4f6c437610947d9d7c275194f1121ce245482bedd8f681a85ff0fcec8f15e28e5bda125dcbf404513a8cbe583bc51b263a6caa0148f046aa9c30b9a5c27904d4b2083174510805ecb8bcc2561ae4869696f52f233d8e8e0669065a8b2766d72b21af60824476bc772113e11c4a4dfbdfeb7207f642bbcee5a81c6265decad27e0a83fc2a7cf09c498733f3828e0a610d8a8bc99f824c048ea22f71964cd2dc2e018a117c6dbe6c0b9e1198990558071d1db94ce09ad2ae237a252029e025842078e0f80a25a854acc2092d140cb8dcc1da85656a87ac189ef7d25aa158003866097421573ddf7d3b17c790f38f65b823a2146bbf14cc20b2035e676b77e49a753c78982afa398d46719a10edf5810933a72d9d836775bde0a8315fd3a4874639018ff8f411dfe72373030ac25e614c267539b919364622ca48a71acf921872d2d53f37a007b04ecd30e42c1774bd39ac3428495e6b71983aa15a55d9d08eb05626b3e9d34b6a63d1df495069288aa8234b1270d96a289f0de63f7711d3e1f4390049c314b6f0a18334c11b3948fc26b6f013b43980c7b36cbde62c0c145cc32b95021984602bfadab5eea23edb9788e22adc10753e065f88318d61d299d91864601f8b2a6f7bd749e00038bcffc3b9ed50adc1cbef7f60d1824572ccfaf01279d37bdb065e5b5ce57497d0809351956ffcf81e258a7620b08101d84dd5f4c7c4e83d74a1b861a7df9d15327f57f4e9f9aefc9fc5521a1772b5eae217b27271605c5022cd7ecf6aaa10e6968f8e7a0632eaf88c6902848c943c7bc7be29fd39fc8c3728d81a44d6b8bd4f1100fc5e24108a19c7f8ef04fec139ff1781cd259f5bdf795202e9ed074284f89f8e77c1517333ebeb3d575e4dcb4b68c09c53fa7586e52de720d4b3dcc6537b5f57021b9c9b1ae7cee500f0b34ff9cdb6eb3280e1c506524b2cee391907be4d2964a594e2ebf48bd9c46f488c2b97f5c4438b6d00c65c87997df19dcae0cb99a4aaf159f60977bc9366176573f430995ea157c1b12f2003017b298d314f5c3cabe9a18a758e0e6beae895c9aa635cb358e6531392f9ec8231be5d509d6b1c0bb134af897cf9f039abf34d2c93b6cf7ef8c373cc19a08132b8da00074e2da3f27a15e3e54cea614a9c838324dc085e6193dd11b77b887f6593d98d2cf00a849d19d0a11225dbf029c241346f691c8b1a2d822538d405a8fe4070616b9e98f92073b199b63a54f5406ca2ab9a16da9b85a1dc94382ec2bdd891a427282b2a98dc1de6ff832c7861026b1529cf87c867e980697e5cc2af453fa75dd0786134e9b8b54dc6de429e53341b974ac52cc096d897c4a5da0bc8a920fcb66e51aa2943f642ad895f59ed08b62f1db0a0582da169bc4e01d2cdfe9365b1f1f06da88a5944485cb827604fafc4573a34adac6e5d245f9deb445f3e023a9acba18f5b295d849fd9f9fc0a85f4cf38b57763d83ea01355d35d83962f0fd53afd918b0723f381420ef0406f1d260454b906c9d2e876c6eb24b77a917984a1c3b20223454316cb876aa32dac8f4f1eb45ea6647fb8ad84e5ef8082944a49ecb8b1d73d03c5230aa189533e3e63eaa18b14ea820b703fe5ce032e03b04383dd15d7961bd9e9a271cdfa46f061ff932407b097d78b8953c3165d2fb05f11525614b37e571e690302e1594da456196ad2a85992a4a575ec3620c7488f1e8343ce9ed3646b388db94443453226ce96a661ed430bb4eab5e6195d1cb2972ec2772a80004af42883d3be70500b408babc09bc0c06600a5569ccfd424ee9947b711e0f7e7a7802cf8bc996ba2676944634c19dba75a9d7d1a26419022fb9ed72ce6f9a3770508c30dec0570e0076d328530ebe41a0fe69cbd641fc325e0a51bf3885b0724022140fb9d18ff161282812513593b0a44b35f6d53acc5efac6cea02d216b169cc21effa597f4970b2bd5f4188b89ad3d80397a49ab4aa0ce469cf2dea2dd883cf4d3564c5324cd44c58760834a4f00c5290b0bb17ecf9a3066ed8a83d7bc919f4a3ac74c42e85cb9722f6511fa7c0432174aa72d4c5dc685e1ecc2dc1664f2ea85c95c97404b9dbd0f6815daef78d43de31c9bd33a97d12fda348e75fce9fa2ad0b968a73bf20bb81a1161c0a38d932d0acd81bfaa227c628725d0b1e9c0874e25012656e5b0b6825a310f765a2d37046a915660587882712a2f5bfdc5a1cb2962bd7b77f7f8c3d444218d1c6e579cc8e816da938f70b0dd6cf4bed54a3ec3d3781f39ec44a844062d0c219299fe14462347a4d5bbb36cfe5804098fb8408adc439a9ce988c524dad02e10ea702ac11ed6c41f8d9b4de3f759abac741917f94c64b4d6579f1c8bb1a6886fcb73697e366c0797f61c3d519dd492eea1a7b09155a41728c22e7d90080cb0b89a46bd8ed233952e33b25a726915f65ce49a55c31ab04ae313478b2c2123bb5967c8639ccccd5ef91fe1e6bba8759a452496011d48cd337c8b26c58aa8c95970ac68b58c8c5b4e69658761d40ded51afb26400bf3c45af5af096e57feeec32aa30d0c605788a886ad84738fbc0a64d148f181ec5f3e71e6509d8937cdfbee0122c9887cd1b701709206ac45525debf3a8f17bcef6239049557df70bb0269c5effc90de2f87a037546f93e710f434fabd4a3ac956c1a80cc5a0dbc48a4f674af7fa7cdb3d7e2d17f3bd4a9f0e2c158b18ee3e84cf3af1d92caa402daa5e79010ba2aa2fc13f10a1c982573f68b7d51ddbce6f4a0aed1e607d109dc140f018d22e9a23286e422985010d4056b08c2f80182763cc21e9702e7c20976cece4677098164168352500c7e10be088a6007161a34c17dd600946ed30a8b7487734914c40869631633a69cf4dd6fca3bdc08d0a19f3a0063c8f5eb4b64a9d1183b6b504b761810ab0901c142e21e098da88c80ea1f8d4ac02f781ce23eb47bd6af1d9e3a0144c2d1283cb7f1a979946d1eca5f97704c5a04748570209616db245d6eb00cbc71d383c38045f069beefc60f467524c080c982de853b9411c53d00ffcf514bc3c3651cf87861e07c8b8db82ce8e45a2afd861decf43a17f9da57579344dd72f482a97336e61eda51a5895105c3cad95d1b9a95d6de8f4c1496dc22cf37c347b5e059417c664ac1985c9692e5583d258b9d2d809527892b08d1b7ae9e783d7c726a371d9776d3ab5845af5b18ee3863da63d7e47754c4e9cc381bb1e004a195497b0744220fd7d3676c43293a3a2cdeed25c36f7f193f994ddaa256483b936b8781e2a7a88ff0de16bfc944e5aa5d85978eda617e9628df7acd321c7b6a9041255f3af9f5df3c066e2cb117fac2d4a12a4aa9430cd65036d1be8cf6fae099588c39de6dcb2c821fdeb8358b73b89a73352b4c1587e3ab3381ad18040062ad15e63d0f11ea92750c62dda983c29215ad091154a8cd556629c94642bcf4a13740117a99ef1d3dc002da8c1ff7914981a8fb7ea67dda7212692ef43d79c0ac2aea5ba23e60d685e7f0643c27f84b4f8c33dac01276cf135841b205fc42d53ac380800a633d7ceee6db75d40a7b024892818a0ba25bcd76018fc4809f0b9908221a5319afe7cc91f130ede40e86ad7fd8f261d334fd4a77c518c5cc4c85ad0161bd1cc1935041eeedf1899a3632423601349741f065ce4db883e3d3baa4bddbcff24dba03b6b6dc58177cffc3e09c9d600af2d64e434f6b358f097467750c0b385bfc06891b873ab0ff1b09d40d405d84ea761965e66bdfb032d869942f91ac1b01c898aa8c1b442b97275fdd4043c25758121a0bee97c67861ce8c4970b984ff206041185a3b8059a0b85497628b60a6a9fccea983aad602e08124f2788263e043f74602e4881a92fcbd2f3bf2f7e2f72616364637bf4f783c9eae089c96f65564123c61e96049858a0920de2cc7702902ea2461daf3a4caf0b843b388b5b5e5c75f065a3457ddfc2f9e058c410f3b43f951248e851aa8e273aae5db068a1ea30af1d9fea30b6a8c34be42ef326d4052d6dc69e59a24509e36ee493ea881df123e82c8c078763d6c9b3b64a303dc4eda338f07dde4124b94e7ffda1e198a80e9aafe8f30e06aaa48e88b2aca3409cc30a82518a25d7e68f0cedc30a42129d18acedfb985359d47491e3c6eb60a28a1dbf5fece0a08b8e1049212f2763604d2163476d2dd2413f74bb87911f4f5c9a19b0bc04fa7d0f0a8b004d8d1d957358af7cbfd8f1255a89389c557a2da743055e19f639e29d0bf310c562abe1bc340c1055873a95305df74fe7bb480cacd1597ce5facfb8cdbe7836170469e2c62314a9cda2a4432d5c2df2e2aa4e49e4c7d5ff473272067b879fe5d7e97e0755b0cc1319115bb1c1f553f93108d6182f065b8df19a1c0e97d8b3a71db4d339e07eb81f4dbd148217e6a75765affc2fb84a0405f8082e790038bb75a4ddc0c92abbd01cdee3eb5fae1c6c19b2061f7f865b348e06eb984be699ac98c927a24371fdbea8ada73a4102a395546f4226f4512162dff0a3f8059d5dae2cc532b279a1ab34c92025e5404f31fb969ba7d2b120428ae0564c0f8a01d475d6f348e6841612d62230da22822a3498e80542e8cc17a534307fe0f74f8a2edb2a79522f7479bc0b6b37c2056393474c6ce95dd029777dbf3ab9e04018c488ef1311a95705f1692652c1e2f3c11c3e00f7868d88fde641bc03a2833c61b5f6bb9259aa6a37040557e845ead2338de409c45965b878d71b3fba1aed4577095f1d359ba7ddab21eddbf1c544d5165c015ef2738006feb1308d92381b28824ec6374123497db54aa6e20e76c96d5d29b43d03c9b091647349d7efb17a16cca6e1f812b1be31da068d6acae2763c84e3104a4949250f4a8d3139e3afb20d2b2e04c1896725d2c6fe4db4ba5b0d408ee9b43d9d826ae7bd992af730464ca001957c911d9fe5665541998945453aee4caed7f434f5e997ad9d5e7cd8cf96b4f1ac725a7ca99477085b8e1644b28bfce20cdfb43e57fe1054c60e1229ef32dfc33fc62a8c6e8ee94fbbe9500d2012f0e3b173a0a0c3f60f66fe8a2db48f51b21f6102b54ac9a8478218a61bc9eefbf393dc1d2d36cdf424db1de39455081d69d5a74fb384c0421875b451422bb96efef7c45c409f514e600ac58ab243ca30c85c68b825fe1d436613bbc41cb88d6cd24df5a71a8628df3e31a28b29065108a174a1851bd59b61db1a17b7e65c734c09bec1e637893ee069eca5b3f07cf0f505543de5714dbdc9de0f90a75a8f8f4203392fbacb8d0c6ca59fbc4591dd0247927e93b596281a2125db21ac359d90da552c3eecc1c0e3aa8bc9fb70baf8cd407620aa6aca3602a64963b235fc4b8b8201fc8df646cefcda73978c0725c50fde4841b7459484f0b06a86d8606e00b4a35764b0d333ddf7f01e667969a21193a0b092e50a5db8fe2a8dc085088351de3c026dda0b5ad5d79921fc429f91ef897b142afaded380135788d6ca4426c2023e024df4ed5ec067e93d5473b62b0fb103247920096d6a0401062e4c35a8a052a1baf973309ff903ab06be782ca1ed40fb2c957a38545e5a63be1af882755f9427cc73b33e206d2d4b8f452d45808585ab5084ae95311bf19ea71d403c5f8ed1fb5c0bfa01317de17a539614917dab1c3bb632464e79c7a30b5b690ce141db7e4f1c1497f20e0fbdb1c5871727b94d0a1ed680f18971a3a03f2f6374c99438ff0d2dc19b7ebc0c8de2cbeb58e693439c9d954dd816f843355385f993b4f20345be206ca64ce2bc48e88a655908b47a74e98ea60c244b5bfd80d0128e09cdc3ef63e0cdff62e51a4ae9966926b9a6326734e56c032a728db8f674104cd7fc4f5d93a783e330665f36f83ec424980178243539ca70a53853461f095daa6e21b185390a20c1e8221c6e125a358413d9c00623785ec0f509e511c4d44fd62d5ed5b9ad08ea071f5829fbb7a79d4c1e31377ac5bfc052073c0ea6a109fcc339e76bd6864b805567b2e635cb876762c5475f140350d1a5b140a3fa0a05ed3ace59e4466dcb43d478a702b11ec23f89c557e4a0d3c5259a612c9181f6f7a14264477529dca365c515dee53beb62a0ae0bae697573743325f48a745d534f707e5e93315bb4449fa66a0ad2699e82470004f4b8fc6809210833fbfd0d9c0726c7c9d702e110c03bee232fb9a0d9da1c5ac5dd07314e66228aa92b423891a7ac7c57e06c9f6a20788ddf305477e6eccb304b4394a033fb65619eddb4b0f8315f246e6ac621119491a0cb612e9e5786db3a2047fae151064b88f2ea0951ffdee348be1c02f7ca754d1e1ff1f78264e7a8e4e4f9e484fe4c8f6b9bd75d39efa5bc9c950cfddb57d495d0c464367f9e83087d2abaf63a15759e83926a1ae976a801840b632835f82264fee4f8b3ba1198223e9c2f8f830e9d2a32c4625c54733d49614dd25877fa973081e6fd23e6c6fd4c0d6dd9f7847e13522e4a9a37fe558d182f88eec4577fff957e046ce2235ac1b8108535d7bcf80958029124cb3fe443e6ded9fd5ccb31b8ba24f498cd755d40d6549d4c011674b20e01eaa88621870166a8d82a7044d90868e8c820a166f8924872429b4968d5d160fd4d6d4bdc9d9ad48bb2cb7c1a6d4c159ed964a9e65a6c7183e261d5b1c25db43b840aea68f8ec68a87c7c6b7428e772290d05b7128838d6f28e9fdebeba464a8313cc42ca21dd9406dfc3653bfa9f06a24bf940476ce44bf6c32d9cc9d2d1656170c1bae77e040829d0a78a1db3bdecce7af91c2ab2933c9e3a799bd75ed8e8019a434daafb3adf40365d26b20dfd9188cf39a6cd9da019abce220997fcce8727b3b3cfb450037b35108941457515df9a0411e978f3ed5a3dd7126ad6771498f34f9c76c2540166508a7e61b56b57ae7cbb7e3f308193510d443d3dafa905e5d95fc4d270b9ab6522352cc974f2ce6773e380b54b9cc4b9f5b41d714ac1f214417580146daa6163ee66b6d326809c237a11f602baac934da872b306b404c8f755138e29ed0fd46c00430a3687f79c04fbc5e6a34201fa449e7351f69265cc48998aea5fd32f454f00033e4ae5f08655084348daaec412eaba736da5eda822f795a56cb1e10fa0e3c86fcc9eecfb9150edd892f129907c6089663090d341e4d8345912d143405f5e465f0d11229f3858cb82be68a2f19d7100b1b56563c942d8b369efe4b7a57a42d60040e1c43b60baa3a74f2881e274999f64a7d81a0e2e935128a6465d9b23cb0a5c707dc3d40911440104fee4ec3c50ee4ba662931c5a926614c9fc332ce360cecec5618cc56324bb6071bb7066c8cdc0058948ac7964140f8c71cf3fe6db855be69bfc187b8c9bc619dd3f3016dcde623cefe3522e0c788718ebde77a153bfc421a2b1fcee851cc6db3813ba6d8ba71ca1e1eccc939c54b49467f17d9ac1691b17eb6c6ed98d49856391fdffe5f2b63d8b247da271466e9515b707b337594a528a2fcba07724476f95d2c276c5b4179553103f634c9ce72976baaa8509631c9e0af419693129dae56bf39826e4d49bc26fc1903427f81facd78d4f5fd0c84bfe746e350813f620708a62f81ff97044e4a45a35b40de7c3fabbee4e8a55ca27f328985a23a0e4c8c356eae76c0b7a28248f6db4f2d1833a237386dba940f0d7412536de630c00ab977e928de14dd8bdb59041a364782d5369c309056182f8542be2a55f0b9107450abf5271dea0d8504432fa4f11ee14438920e7c2fc51fcc08afdb4137cad6fa1ec9b32ded9df8f8d88d2a3fa971b46ee07153d8aab855c2824a31f4b3fdfc957c3851c9c2d9b1485007423b87730174929c5c16f4ad7dd5d98c149397a0aa03bbde99a9c5896b2da1872e0a7240f3601c7606b9812fd556af070614d3afe3c20ccc3c07fd9cbff9ab9604d798de93400d48f5bca6bc258d9e46f78242e52fc35f2f168d706eb513ee81b448c278969880ced0541b62428bf01252c4a97906f2a05897a131249503eac493d713c178206d312dc19cd8e2f3b841814e2b4b9813bb4f1064e936deb7be37530e60c9befcc7f6b644b3a277d2bf6c47c32592e3b757d142c1d4063ae74ca61afe7bf4443e35678edf4c9432584ae533dbd55b404ed47f4245a9d2783d154dd63ac626e59d5570bbb815f6e96dc6d951ec07719d50cef6cc8c071f7fc8fa404d2ec0aab22e7303c1cae961022671d6560b1cdbdbbe4ce8cdb463e1d5b78c98e73828c8d710dfe3801ae7e446518dd588a5895288e94175ec6a7c09ee3548de7394115b0b84a606368108cb5e6ee9c7b01035baf79758ea9a48dc8e9027f234e70815a13597d740cf54cc8b0fde3da3b01bc7fcf2e4d895b0cba116374884a2394d772fb31c649af9ce26ca8b1ee402a0b99ed308be7e8a98a02b8639c25d9510401f7b256bda1a36b39df4e4a47c676a642fbd4d8755e8c231d1203ebc6e5a50be0102d84461aa55a284a75d8843f5defbb6d25b4657d59df19d4d87108338407550e462a6fa58f5f8cb1d9c1ee3dbfc6864eb937e45e708a0362a9aa438ef00a6b596ce7a6129a26cb87c7c6389dbb561352d667311afa174a036ba43104cf32b710e1b9ea992e2e1cac49e725971c6b1f48a155f365aac860880c7a596dc3125f86ae1b5bf201c5245ff7e90f3bbc514bc87e6943cf0a92152e63025e13859a602244f4dd8cdc0be24bab601c2cd4fe66a5dd60eb66c60bd57ad0ff5c98c0e1e9489fcfca337e8aef4d7675f2084a54694e5a12c4743dae44c26b0377d3acd1e26a8df8034b866d1e291c6d0882043f4d6f78095cb6a4ce813814f3762d16c5eaed853c80afd14659fb49546f17b22597790a851d24375dcc3752279129eed683805dccebef8116502c6a1b05d8de28ecf27329654aadd64a9222b41ddc20196683800a7904275b780be7200011a9d7e2535a14b96a8f5e87f6e801b5097c33e632d6a54ae5a97c6a89b0933d1593f283306be455bc3836484d9efaebf8ac2ccb08c393812cefa5e3b61619e6fc5d93a2584935d945f0becd51063ae20f8f79143ff1860a42857d2dd590def66571ee20852e6ea2331ddd134833496529101093a5bb516fdf6961b7fcf200bc80788e842171d5dd409a610b20d9046dda71c608c4e4c685a14c7c6f822d77dd84d6e6825d6d3a327e521a7ba4a8d32798583b123d2a8ebc753de634b4ccf314eb9a61f866d938fb4688e8a32eb84603529fc9d5b89b321d53c75b40c28d43f2ef8f1ea52929d556332ebb30d11536c830c0bdb873d4c9e58fd397fd4473379c859dbc165b1c996926411d1ae13472811d4f7a6f43e6318d463dfb697fa8a1ccf9cf0784b8b90055aa4eed59910f60adfef2d8c828ba75411503e8b83f0ff9b0867df24cdac8d0e57bc3121f0af8c427489970c4e5ece485f08e9d1fa5fa17febf94c9f9e228ff2edcb5a118f9c2fb3178d167271ff60a0ae9607625465b13b5dc6edc95c2f141d203dac42120f04f117bfcadf786128fbd2f7068b0b4e4194ea9b619646eb57dadba98b4887d1c6b17af11aa01f7d1244c1ed158d7b1bf97f50bf83a94f9362509227c402e11076d2237012fc53c44253ace0a75ed54dfd8f7f70fd01b6c124e9db159ccbcd686a0891879d3b8651eb31ec24e0eb92166a2bda1f20ae88dc3fe4784f9310d09c015afbd70aa59adf55326647883340611b719a13ab1be9f7aa9c95b3c5062447f3bf631f21b2e36aadb89d33e8b961f36f997de638b2fd0991628b2e730d096c818dd1a47027e216c3a02534234000b7ad8616b7c6a3515e42b1355967c932cb206d3d893f58c621608b24de9d97e6bf6e2e207ef3f3863d15e9be3b9ec7accf4db83172502c0f94980c083372ffe8884b5f0b4c8ce1c4810147eb1a60752b70ca04f120d385fa8df0eae0eb81bdda6497d162e0f17b7e1e6643bada7649620299edc99a070e9071bd0348fa9012d5d6e26a45ea8d2d582c247282343f38631c69dda967ea6529bf8aa070d72dfdbbee902e1c5abb033df7386c21adbd76faaeae3e0fdf29bcc565171f0482c1a2425e41925425727a074384487749076028cd8b3dbb171cd97c2549aa7d4aac887b023fbc28a72ec03cecd6884fc3e60e06ef0614cc11e9a8ecb17afa2891a0bd69ae8fa8bbcbd1fb5162ba18f9fd4937ae444eb7fa69ce8a03aeebded0638e99276eb87d0a72493db3fe560f62551409c9b623a399ad3b763dca5c8eaed06919a2f1861811f2ac93436158d237b2d8ba838d04ac21caddb0d5d65d108f617eee4af395ccc91ded33493f915260e8517fcd3f348030435d2b02688f617ceda40044a2a7d5244940c70c6101f425cff80fc17fc940fdfab7b2cc9d4bf777e29e31ce83fc9220e647d33960ecf8043cbd19342eb6f2f59699a3e1e4ed105982745026e9aa7a7d26246f08cbec6cbc84520395f77d683aff6fb884f071fb59800e7e09c1f70bfd116dbdd87a5094ff845317cf0e1277b11d356fb93b5154886a3343f19eb6aee90e0d30c3c9f44a6c6e33c8bd2081fb861bf36695c63b94bd997dcdf4de5ff5dcc51002f2bd2b33a067506e88936f3d4ffaf32f8980ba6b9acacf6a8a41ee018af6b7f54d1069bbfd91fe3d46e8f376baa8680a67de33703d946b504eba6ead5875106dcef85b515f08d38a3c412a5093ec75494021de9958f918e55e29fbc70659286b57dd78fdf35ee33fff645e888c917f4fe68571e2ac46ae39e2202e8a09776212a5142b10c8f652d4e14e4ed6a8a16069040c573f0549cfd892eb2ba0941057d7ea763a5f8f0abe33f678e925fe1bf864d46142fa3b3c8ce5990b2745e358412371f3ab27bca6ef6eee0375d3789c401a7154a9047559c5d7755b84111f139b17ea3f2bed286253afe5ece77036f33e2a67682c507b72af295497454d28e2155d079955d275c6908fe14e07abd08379b0d06b132168a42e872bd8c80aee85521874c81fe8fc351292efc95f654d8dd9dd6dc58d36260e520e70b6d322f18ab7fa2b26ae0bff4a1b891af9bdab62bfc1dac182c5cf30e65b04237d8157d3cbf86bd01f853f13605b22ffad727d706a5f1b71fec7d344159c81bd441a841b040e5feee8bc3c47d189f726cc4778449b6de4c7fc9c04bef7855ee1bede03ef77240587973d6b103ec40b892c5576fa95687703b71f5ce4c8e4ba657d04ea3bdb5042b5d6a7fdabf6b595b8b8285daca43c461947bb4ffe20ef1ee4adae04bb3bcbfd74b568a7d20c458244a040a8b6578eb25541ec79b90f4d5113408dda5cb118d45917ebdfd1aba15041cf88d78ef48fdced01e33784c72bb60d78e9037be2367e3851557e2b1af623f95100d65a1e5eb171efe9a34455ad665e5cc2481799a8aa6432626cbb1565821f4f13ef88424e9578e7b0e882258eddcd1d0412b810fde1a4e1f86e34691927ef4e8c92f0628552affa2a452f6aab26c6c325bdcdd121f722b4784e5c1ea7a5c54689d51cd9977c49b43b55f768fad9c921eb241455f3b947ab4e3121fcc54dd2b8e41a325d1d3cfa15cf40b88c3eb90d9829b8ee1c2b121c7e055c65a3c06990e0ab888ae38c31a5e86b4e1f0eab3475a0bced59136f8f4de1da72b3b47ee33b869035868afa934dcec255d2e6f312f2a0e8f8ebd299e3b9d5cff36afec0631165acc444e7278dc92e4b78846c33fdc06049357cbe10be9566b084a61fbaeea87591ca457592d009b5cd07d7821749393cb2fd50861744b442f0a58e37b757e9087596da00cde58fcdfd14040a008ff7b18f3307e97da21c1990ec79724a3c0550d18127400492fa71984ce4bd0484e550eafd5e23f09773401e885f26740e5ac041014e88542026c90e94df3fe985fbffc84817e69e016a6546d61576d7c3be4a20684c7bbc0de9b9007532073e9647d443cd8dfbed4280ef4a5f1800769499f0b6ec70eafdde7c2857389f3326af7dc643797907fe505f953ef8706320121856a24386036be88d912e352e5f78b16e1784b3cdcd577eecb0ad997bb8def2af8569502d75552f8a258095c445d14aba94d93f1b63a5cae36573fe41206961cdcc89ad19a95a09e0d79ab1c7c6ccdac647830e50688392b40758639b13083f4d333750287dca0170a72993e2998e0a95aceeb6fef306be0deb754b0d01fd21acc84071c542bf1e76f65af47dc8b0f8b5bc1c1bf31b2bb9806efb066141470988c306aaffa2dd19457f37cb110eaee0061d4620a625526e2ba76abe2e838c2669cba3bfe3b575760dd1d34aa1d86ae8817b60d0604a0440157bdea8e59b13e06d50d6ec4e4e8bbba02eebd147e3fe99912d21638ab443445fa71e4f1128af2f8b8e8a39a3e75e4b36c79193c5858427101989e9a741b7080579b1539186d48e5f0a3e6b6de76b22a8e1a7baddf6e73fc24f11243636aab790b52657b2e6b4601de03a6fd5dcc15b101cc6ac0e23564b4f36fe8397cb189a841c54d5c3b13991c3003973b8b7c706e4e8ec5c5e766cf4f5d1175d63c0b4b8ba0a3d744daac10e898da66274917b4d4cab3f1cf00cf43a9db0cf18461a8a2196b55c98345c964959c339e930948576c186e02cf9bf2cf97b1343db554b36630e80100828a7f3757388a99372eacb91e7f90a858f95de402dc84a9a38761c0eb68862f1f54fbe9551c4c1b3f992396901b535e1755f7019c2a6e5c50a4e2eda6b5d5e2d15360a09b930c4a6d48ff237a4ebf2607acada3daf805c97c98b0bcb390d12844a84481d21fa711bc02fdea9f350284b38b1d23304a1382daabc949499d2dd4f9d372d159945ee74a06e4ab930cd8be4e216360eb724ed69a61da8c4d9c350ce15e866a214a8aa87524e274208c2ac70b2b2da187bcd1aa75279261b4fa9bcb5260f78b9ebab1c383f9ef9ca9bca48e29b0607af32f1fa13625ebb0f9b0be6c90599b9375457d1c20febb9f4d7cc438e501f14f29202122e27430f6783eba24145e3d8b2518860fd6985fcaf592e37e434142b7a779a9701d042c71257496a2bd3629a2ac1dd04f0ff4e636d3901eaa2c7379d8d8743eb9c68825a7951687f1e84ac1443ff8e03d15a94857c9708f46d1ca6225f378c588785f6eb0be34f8ff45dd0b23b1dd0e43bc10ab822cc2e69aa452fd85f5ee06b4e4c1baea769ecac80650a699b18a8defa2712c965b2557a3387ba9ab5e347595d4360d3e81c4b60feb350375c6801ab4efd0bbe097f115fded03e4a9ab89cce6fbf1bc046abf4098e60a4044dc946aa100172d4af668656b3fe6d095db3e05938a7a62fef9ec57891221d57621caadeed6426f1b4e454131bf634993ea4bb2d161a00a2f25ec860764acf8a78a769f48b532e2da6ce2001523c717447dff765c90099e8a085808c114e90409084f7f6e58af9f76e88d25df40685fa9dffe4c25245bae24b9a3c3b7f2e27e7ab5b252eb88ace184dc5824fa0d896bbc914cd2e303fec9b74f0842fce79711389d852c231624c90c4a9821f835926503264ec25ef836744e7c7d5996ac1b93dae2724d2cff4d9fe5d8747f2ae5287bb68730d1ac1cc1091a8d92038126f974080cb8f0a713066efd7137669da863b83f8cb20f2d636722ca09e416b370c2a78f6aeeef0cece55479f2fe298de16b88df560dec9bc6eb1c5762e8d6ee3a41419be6070a645b831f56d95eee7f552ddffbd6235b70a14830284df169811c441389ed8f5aba8ba3df3deabdf8f15fb613c811eeb767cd51aa943cc684a213529db52f390a69dcc26f8704315b45e49326fd0d1d5c8123a574f22061b031b21165a5dc1c08087a8d1011d6eecfb54e10035ff9e5ee6465284bc7292cd757201bda18be244c4584232363dfde8aedda27a7c5a7f546f44ffe15a3926068a7913223aa6ea412b051b338f0a8406bc3ac3a723d23b690da580a8df09c319f3c96ed5b64fe8846136b90cb19d41fcb4086e454e69edac68fa7ad7844f2dc3f404a64c8e0eed68e63f0e8c40740f61fd07da32ad6c74178ef119dcdc001263e4fbc5fc387befacb7f3832d32df30b5f8ed0e12431ab3b896bd5099ab6a77c0a63b8080bdf022f743f104abf0b58ec69c7842b67c178f62f38854bd066b40574844df0dd02bb5bd720d59a8098cab4febc761443409c077251643079f0b7abcd39fdad47784a5f4a1eb5a1577255d55024088484eb00f0dce85b1870768a2555cb6f931caed84d85b6677326753523468df670d17bd1b7e71296408157d42f9fff042e17f5cc78de491784b24f1f330d86ca711e362be4d912c82e9562ece61b20aab3dd47924eee4c48e674665029e5ffa54a8b530e13e91ea5de4f6753d9442bab7c54ac8c84bd9158ecbe9ae5e8f2a21d7311883ef194b0b1c3b70d14ee1a9f784362e2a8ba54fb3b41bb3bef0f77149bef9ef65d690dffd06e06dbc0759da1723fe5e92c6afe6316911fb9da9e9db5d2f8309886dbcb61a3a833c7cdd51fb6d3c434f2561f0a5a785de0d6ec40cb24b67573905eb0ffd1a8abe0000d8507e94f75a2c22f54eaf89586f93050ce618e8f4c94f6e57d46e70df24e2de5748bb6620fa843d0d44d26e20bf7512b1522ee869c5d6ba231816343711be5db3a2053716a0ea5930fda5a1bee3621a07f52ddf462053956babc6f6c94bc163d9bf54d9b057313b49c114ff624f885bbffd0f470d8ddd1164c288fccec35e237c80e0e6713d342bc64d64d4d74b74b687994e0c51085a2faf311d5d64de7f34bceded37c8f54422511a10ce30f97bb6e3f0d9b37137dd8589e76276213f22ee50ec9acb984de288c6aae849679aa2d7fce96959ddf874405cd2f5d946c1ec3d00c7e310bd01aafed83a14138c00dd729b381c1181156403a6e84ce8c0306262fd0c38608ba153716073873e0b06b9313a98992d21b9835c85f92ab0ed5718f40443dd6b91ec46537ad6d495838536c6f5f85d66b028cfd87295f34c84e676549e2ac873dea2025bd502b4b37b77db2ad3d28c97287b831ec44d3844429c70d1064457d63a8ad7948180aecba190fa337a028ebc45a0f038eb72c6d71b6e1bceb5ed3a5aa17288486e3c2c90dba4a5146b7c9882836059f71dcb19ebc3305407f62e4c6c0bd26071f551cc6d460f50352f6e0eb29d2714e1e351c86775541eb2ab944e820ca3fdb113b2441d90197021237b9eb7e48fc3f4d383c5f2b0373fed779c82ce61cea99fc28bb4c09c274e8dc00087a5fa20fc5db0780dfdc453772371ce725a1209114875f381b6522ac16205475a210a76fb85b5d4ad489c5e664fd5dd66ba17b08982f857e5acca48545b192008d2e751631a47540456136216bc259e9ab6af415565522277b488edcfa38de9dd1e49f4cee9d589b806b1c105d5f4b29c4b3b3b8863fbe89fae76e96355dd01a8acd5aa42e6fdf253fd12056357f44619457298ed1d5f1b02114099abd34d5ca1539995d200e520c18c1e3386805d9b363924d46c38f20f61af1c55f911db42fb1cf96d61a6652792cc5dbc7585aa121f41bc9b3996411d6127205e5028c1864a6be6f54703149924b6b905d382c8184f37e1c6bd299990ebee8171850e290640139c5052ffe25fef83333d31fcfc67ce2a13e10ef885fef683635f23585fce0dd75e3c13a716e6ae194be7c444faddc6dd0b2199601fcdd04ce08441a0d56200e434a07e5fb73a99e1ac363d3d5848b1f135924210121052bca51e42832ecd7c230bc23e757a67e3939b1f9acd4de988591797b18d55e15293056cf309a4a83f35ab877c2a8103367ad2464efbdb7dc524a99a40c360c9a0d420d4e2fa39c8c3e81a9532a2cf194e79db29c1db444d69cbe8b0acd59ff50c73867976b149fce8ec89b4f0ff0eca5674da46db226a6e210c50a6c9efa64a2f3cbd32dcc4b9eb4484568914a9ac554123ba4fad1f2c5ec0368b2a0410919f509860a7122604288332530630638495ca2d8b060c61230a490848cfae4423526f86d98a57d526d6b3a29659b19a87e86be233fe0b2029591992106ae6089a4844ec2728f9fdfb1e44b2196cb1d569844fe5c973fa34c83efd5414a2921ab9e4033c3e2af4f2e661839e456e11ace30d648f32d0c6fbbe69ce617cc12938b088d2627424349fec8dfba0bbee69a73e10c13eb29a6619afb56912896cef25bd26f9f6b5b386a5c7844fff3586b4b17c8c99ff7f842293da69886f5f80b078fd9831298e64822f2a550094c54f247f6f8586b600f8e03996c8f5d4ac3a4700c68f14a69f14671a0379ac2fd165a807becd86354823f46b9f2310ba4775dd8ad5c7e4e02cbbf957b583aff9c04ce738885e59c7f2116325058ce39961dd9f46faedc0b5fd33f4f922179ce623994ce593e4396738eb4e39dfc72d0195281e279c6ae11a46ce5394442caf48726c97640243250766240f48752cf71887398db08f695b33ef77c94516092cc039364d527688509fde99d07ce99e75f88848402fda12e85fe50f7422a2348d9d10852f6793ece9927ab3e9f4b536909cc52afdc0359de75159ca195f93d9fa820ad7c15ce26fa43e78ae52c97b2d5ca9b32f9cdb0258760ed559d49fdea35948287a8daedbc7bbdecb7f3b49b5dbafb8842808a48247208a5b37b84a41c9ab4a051031564b80843267b0b47ef6b951d49c129deb37c7e065d2d5667813d9c0f1779fa6adb70a5f8ca63296e73497decd23a67dd5aef1bda36ed5b62c31a56d962add3ab15bb16a6ab955679eb54d334cdab35f71774a492d210a622d5263ccd953d69af26ad16d61e56179f5c65d2b1f4ec3ea2446246eea92d523ca5aea48544f943b348bf2664f2e69abfaacb292d4bbc9cf2c01b6fbfa2cd5f35ecae07d2974f42a228c51f549448ae53ffd1400a610e3c909308f611c950731987780b718885b47a7c3cef6991c6e410ea177c3984ba0565720875910a0d404eb9c55331a88c1b63dea7c5fe18a8d3492555a2c257a73fe2a68e8a740c04f64f59bbfa061e65798a8fe686af6fae568ffb10051991a54b4f4127bdeb1154441e63a64b77bdf90d5924f76a3d828ac8b5bbaebb6ece699a79a93de7323cd2de66f936f34e7deb262611e9156ca74984ca70367513fd6d5608c392ef06fe868ee815332dd606db0cad1804f3f4c3decd0fbbfca856245f1dd677a367dfc6176e3ddcb0f18ba6dd2850a9b33f42d252e79361d0982c854829e58ccad9573cbda094daee5b04176fe47ca5ac12b48891434ad0b224456a9f7abf119525008119677c7dea956a49dcfca4947e4cfaa959d58b2fa5de70faee73e9d57a1de2fb2b0a8ff8ae41f01d4de2bbaac477d7b3e078dfba9430aa250a33dcbcf46ac3fbd6eb1b79569cfe88f59e77d723f39d9c4d594e69993df5cd6953ae721c6739ee721c37718fd59824e63b97a09cd252c47360877f943dc6cd7b65b4923e6e7ebf51f38f7e4a62defc8836df9c8ed237dfbc9354324075d85adb491fada56ebd5aa3cd29142fa590716bb239dd3af9ed23c540d2d3762ca5e3166b372f18ade3ce7ba5bcf2ca9c43d22f1e3ba543f463b2e37175daba3a28a5b65aac55ba6ddcb67df1d73bdcfd0d35a5b55e5aabf46bb1d6f7d67aeba560f54a6957ba9dc9d13aa81b5f2bbd3eab51035f43ad8e942da59455ca6e3c5beace6eed5ada186f187fab61acdcd4e5ac3d277ee139e7ac95d24a9780b49d7aabca5aa5e460356ac009ed6d5aa96ef6bc4ec1d7adf65ece5fdc86b55a6f9db47fa82e7dec94b5738b5a0cba8fe655d084d8ecb6ca69f6ba86efd5a68ffde2b6d918df8baff5aef32a18c533a1853ab751fa87425123d7f0208502d5972226cb4faea6073d6369b97bea414164e9322472fb74293ca210918ccde60d8d1c278bc1c2e1ea7191c193060f0b765a5eaedf50c59a8ff8239271ae57bf71deabb7e87f44d7d3f8bae1f89c5cc76e31b779abb101b6eb6e76b4abe06a4c02e2daaa163aead3536c91229169cfc2c9b64e76d5939f0238df422432ed1cfe986cdfe1f884934919dd96eccca18e3695331485b4f847ac09991b81be526ffac4a3f7b7d3c416a99016a98f102dacde69de0483c0e4d1e769ade10672c80cc2214f17d2b0912219e2f9a98b427ae866d267fb7cb5ed9e136bb7526aab935a3b1ac5b2d6b694b4beb076eb9452d229a96f3ffb73427dcaeff63a7d7e4de6a4339461129e74055a0b7b413e64c97528414b54eb2c0ac077bb6ceaedf545354aabadde56ca7a84f4dd4dbf61d2354db31d7526dbfddaedc7e46b82e9f61dfa0dbdd10be7d5a20bca01eb40afcbebf2daf18e4daecd4976ce26ba4e7ea7c2134de012a44cca62eda23fd4b78eebc045014073d052eebcd3bcd98148d6b370b2ce5bd38e203f289d5f1db4cef1fc88241944120d51007eabdbe704ecb84fd3408c2dd6349f78ceb73fedf64e9ef3f2a70d616d561f71b7e9e005e590e54b59fbf40fe3e978085bc7da05ab8f2f2e24e25edbab627f35d6344dfb987c5e07beda933afa11493288249a003c875d2b02fa0d6bb69b75413ae45ae5f5d6d4ae9db34ec9d8bd30a0a4fa7502c8effc3a0632e0e36f68d479ed58413f64eb4f8a38c7de81e3e6533e26da6f2648e286342248132471c315dfd5cf09f71b473f27d83f1a6bee6ecef99dbecdd7bcdc88f4a3f5113b07be6a48c4bdec0b5f7f69973b427acdb54ef3bb69f2883ee7f45bc27d17ded06b18174eadd5308900ed6f683532f231ede0d58e83e79e4b9fdfe53bc1975667d7ddaefa8b7b6dd55fb8de7bfb7abd4cea854052d50d5ee8c3e75ec3ae57afd5a6c93f7cee0160946154497d57a6cb7c750ffc21498c3468a88002a8a5249ef74780a407c8249e2bf118b861067c34415f6680d4495a5735bee9cde979b19ed33d4ffef43eefbaf7ba767e4875d47cec7ce47c045f1d67fdb5d9797f7a47d3f334cc0ada211b59af46dac839059152987564643ccfc2c9a8b7acf7c7c4fee7fd8d70838cbafca2f0486382246e48638224c0c858413a64cb0a0a93ad77e3e4fe0bc727df59df8cb06b8eb530699b970d4a29a5346c4aa93d9a4f3fbd86520a19a97bad39ad539f60cfa673ced9b429f5e99456af41b44fe9e00bf7447abc8df6b5bd6efbcbf6c4e011d2cf39a733e9596bad737a9f93dbe2363984520fc221b7cb59245bb34aba1a11f0d5096eecb5452f197bbbfc8a24c68efbb1370e3195d85bb95492667f14c24fffe955fad09b86455d73e9413764329e8a7fb2b677d4cb13c4322cf266271db566b28d4f1e63bf8e5d0b35af2d7aa097ac4d5c140034928cd7aa5f5bd1745ce79c739d53dd20e6eba66d5ed779773dcee937c47ddeb9066ee0ebd336ef0b47a4ff5c03c7da3eaebcf30d7cb5e62fa9f98b6afe5a69dbb7791ded3ab71f93ea5d38b29c48ca212befc6aed53975e96347046e1ea3f2b931bca0910d5f4cbe69e37418b7c071beeca4b243aa9b8fe3dd42224efa0b87449ce47ede90887bfafdf3e5c7a8058f90de3aa96ffd88daf935944978365437ac36080dcbb3d96c6a3633414767ed9e76f707b23277fe95aa53f5a38f4c3bb0de4f01301b692651da542398e27f8b24bc28b5e185d3193a7031268d354a4f539c0135d5480c6585aca2f6eba7bfc0e431bf2bbfe4e43157ef9e197e14bf73bb6cc7edaef699505208010218b48460cc196070b10406eacd0b5b76c8e1c9062e8a242e43188102392b5042ca09d90d33d02004142e7c3143f602833d37c2b8a1f4b3872ca5dc9074e4bcf7d1a19a26b8e00948c9039dec39c39e553ae93356aa164c18d6e1e37ce3e5dcc2850a91992c2672f8389d5a7232f18069a1271c98b02b3b3eca375eba5c4a9f5da6d2fc22eb64a097e2cbf96427fd86e695524a39aba648bdae419de80fa59aa2bb70843cd4c751d6794a995cac70745167b9d174cf57d5c3f5deda76aeb8a19508493f5773869566d1653c75ca4485aa92bb5c3953bc6a27563b651fe71a39dfdb719aa6751aa7699d592b8fe3dcf5cdf9a6dbaa1215a28eabd2539ac5d3b6daeceeeeb6f2b57b6738df38517739e1b13a4d07ec002b066b9a16e99c6f2a14ade37ce3d4b352b5da9543271bb6e18ddb7c1ab6722b5f68caa4c792286998e6555f8196d39c033dcf3aa5be02add4d7c20d6b7efd73ed86d7ab7c4c6ce855fabf0e29ecacf5dc82dd117daf8bf50772308968de699aa781455ad4dc829e6b5b78a4bde77532e46012a14e5d2279de938f3c62fefa061f51bfe7e49969f1ba4c4d9ece79ab61b833b27399c6301149378842f007287f731c64c7bf1d1607c437071204c8e6dbe6be798bb27c3e65614f7a47bcdc30cd37df5cfb01723ecea5a1230d7bd781d7755da59252dcb916a35ebf4f7f06a0fc1094cfc3b5434702402903c111bbe7f4d77d80e3f7f4d73100c74fe92f00fb7b5e607f0f1eae1d3a72b47080e0d6fae67c9744b2ca9b7b60ffe6f9b68d9de357e76de0117da4ef767c87c5ad3cf008e95f4c3edffc9befd5dc6d8fbb9d9dcfe5e764f3eff39da6168e6fc82591e0704c7a971ca2699a6b18bb078e9b7bae699bb6f2b16371ab4e9b1b0f6f038380c8b24d172e3fb654f0d7dbf8ce8bef26068fe8d016e2709c1d0637df7c7a5e386ae03bcc81b8556580ce12a6e2a0fa965a8863fb86b4cacd5af420c3461cabaa868d9b9b8daa611c9a6f5fc169989cfac2e5db57715a68cac6959c6fc7e16615a7c5be22eba8f5da8b6bfd7cf4ece775f6e25addfa567545be5ae43ae75bf38eaac5a6fa91e332679bb3d1e166dc96adaa37382d76b8c569b1bd865b558bedb5eac70d0e16b9bdc7cdcdb78f2b38dfbeb9d9dec8914836385b9cadeadb71d4d06d795967ffe625d51a7f6b6d95b7adefeae6a5d44befc6bc6ca616d361d2403995f9312f999ecc94696212636df84452b505edd25bd96198b75de6e7998f8501d3a2547ad985ba7949a55e5e386d949a8a68a93d52643b946fd63c971618db952787b453b1481834268f720d94869d208f6d947e78189cec99a061f3db616564fbb24d0c52afe5db28819957d2d59881efe9516aaa2af581372fa7667043e4e5d40c457ca5d33009cb73f6f383aec8230eb222cf2d5a2a1d3b6b91cee8b478a5f268c7b41dd3b0b1d2a1d3b039836db194890ac9a73a9363e552ddb4907c92d3305694f7349bcd56908d4d876e79dae58bcf66330fc8461a868aa96faa6cac71dcbc892347cacc99ef340b809af58ffcb1c72c006aec322d864ecbc1934e972d4f2b9d2e4f6d982f4f2b9d29f574523d9de37c825202b3f493e9694b2db271ce464c9be89c51ea44e993d453af63ea9932666a9aa71ee7f15325f40975d12a4ae73c753b6b0a45eb97e6a204e6e912755136d2a8a73f52a9915251384fc33c958d55ccd311ffac933bc3bea4628d2a79c5cc2ebdd0c31a55764a5bbf5659a57fd65a6b9d46047121cb07e226779029b2e77941c8c86391a74580625468832a4e1025659e3705552b089a2c7bf0e8224f203472adfe813df2af1a12156991f28091a93fa11e857a8cba12179509a6bc8469d89cf2f2e5a70b29f2d3cb9b97535ed6fccb292f635ea4424fba7de4f4a011647f9fd05bb40015552d9ca183459c172c10051568500d51c6035a64d39f44b9e0037914c5b0c895c877c9ef3077d892f25db4fa2772c8f40eacc8d483a8c8631dbda106ab580ac687dbacf0a6cd0a6ce4e0a89a525aaa9a72a105535ba0a65c78c3460f973b33291037f238c1d02b5408fb98c1fcc4b1961a0eef5c66572b942e722110e609a5fc91d6e8ab5b297f645887ea8f6fef8268c945f2ef1c995034df416cc8353f991e657a6cba9229a1a6b4ad151c7b496a2a21b1422496e75066af5ebd4a5905db3519903162b46b751618a3b6652c1ad6556f4920f5bc205b81caac4b99656ea962d629a3aa2f889465aee045664332466268d4f3738c2da28882e74cf61f8194001d21a293dfc3fba64654ce6f4a2971fd23edadf0782b56f7fc626a89cb57af5e6badb5ca4a811af62292b8a8c80ab27545a6459e074f3948932d91ef25349493889456f0533a9d4ea0173ae9b9f4d1f3c2220dc3e10844a9f414daf1ec23f792e523cfcb958f3d5e7e3e862f3578c9c1fca19e39cce2c9ab1eae2ffc11c80be5fc1935f811086812a155e4de21cba934a45e4ec959f3a354819c9213e68b3a29414f99f3244980a607d68126113aa723c2a1754df31e32a77880f3d7e7e6e48649ee0d812611a2518a865d0b5f9685a66f6740c388f05845bb602c4999afdf6d432279860147867028a5c3e028cb7021cc57e9202832a6f373ec18ce13502fa40c384f385521650829439291039daf42c960407b4355e68237b22f2483014d56d92296259013e7abf490366620c4a3d0f3d883a0c86328c65ba027088a4c259cfd0c2d50d368fe864accf750f3f80dd5979f4eb450082e4032cf676884bd879a971f931e6a1e8747b44e1daf48084f8e2167cb57a15bc0c930c8c86040c35a386726c821d471f89a21d024423d0907693276cd4fa0de35d6621b15e87c7d6c8126110d8ce130498bf40cf5a2765aab54cd49a984d19366c0f5555c9a4369589416a943c11e6b2af5a70772ba9ba0448427d48f50212913c053979449d5e1c72a4ab3c77ec12dcb99c748fc7d62e2082196b2dc9045862c2c64d1f2b8f5239633b048a9c132022c4f60298365cc632c6096fe6a8164c687c723120e3e3f2271d9e16f07da70208a034c1c58ba4f1b7862cbdf392c0841d36325397f6772709406c43c56c30a148fa39e63f337082b3b58a9619b83013030c023f5dd141c46425040091d6e4e08c10498e061850442608298c76efe3ee005d8d3d09aa1289e1f87ce0c81e0c78f49c8781ce6c7246d7e9451e9f851368303e4c7a77a2710a2be9bf33d18f9f167312b1e47116b2284a8e76244e0f831f6432c86980bb1d963378fa1c0e229047fa16022098a2e4950cc5430fbdb6d706ad832a81e3fc1e6092d929ec0c2cc734f381155f5580a2aaa29709842cddf33639cd022c9890f3c96f3f7cc9cbf685af098cb98e7d0503dd7440d8f5df8316989a522ba48d1f9cbe6c7241f668f2954150c6af0c002151d32a2c8b049da4188c762b8f99bb4430b8fc1f83149872c563f2685392349fc312907aa00fc9894c3118f674f4f3f26e1f0d45884c1d214c3e32ce6fc65e3e6b92ec4fc88856916c38f4831cc5e408117677e447a818d193f22bde0c22c052d88f1fd88d4021ba416a0d4786ae189383f22b5d0c46314fc88c485cc631f91546882fd88b4e50ca42d4a4829543dae59704bac79ae87c761e898f13705a5c72cfc8894820b5aeab411c35faeea0d1cb4bce9f123921628de78f317490b0e437e44d222c30e7f91665422f82359a78e1a4620cd82a075a890663920cd6ce840551d0d7eec40151b1da852e383117fa794e8001b348f8b68e2ef173edc1fafb841f378bc22351bc18f57ba2062881dfeb2f1824d17de8f57d89080cd148fc72b6c9c6003a36146cf8f57b818830b345c3c711182353f5ee1c2081e5222208118126c31c30a2d9ab4508a5283c78f57a2d83cbe126586831faf442101c28f57a0889a3df76aa3c3e0ba28f31c4de288c72eaffcc0c30dda8f577ef8e246ce73741efb78e507167e98a5e143188f7fbce283178f7dbce20317dd8f577698f9a8f2281d6a787c25cc4cc88f5772a87a3c5ec9e1e9f19ba8bfe191ac53e78dc7e3152e4a8f7113972836d0e5b117752c7c473c5ae4c7a4fb1b8e15e8e2717f4548e63c6e3627783c74e433153a90c2052d5fe5baf6116925507aecda47a41d3105c6186b58d3f00256e3951fdc68470ca11dd1c263578111591cc1c508258ca0a10dcd08351a192f3432513c7622a8d08670e2b13f6943f88084531d42044334a1916981768414434758fb98ecfc0dc70e8061826ddbb66da329588d485bb6d4219ea06a8860fb5623520b25183a6acd54a81f139ebfe188f4421555234caba97a13b5713d5b8d494bb3660387b6d1c6e322f9051a8f1d7f44f20b1e1e7b1b1570e1e68b1dd674a9c28c2426bae0c28bc71bde36bc618cf1e680d598e4049dc74e05d314581821a768810b6135263df1869c82cb991464144c8fc7d814dcb6711cc771dbc665598d4950a8e07e434739becaf5f9f76352ff86e30bd1751dc7711d08ab71490b4230238516fc158174883c086ee3b88dd3c06a7cc0138fb7af08832e172441d493c4ab0d8f2717540f123bbee8807aecdd47d402e371118e301e7b5f5d8d4658b4be708d0003295ef3ead704c7df70a4f2f4f82bc24cd8d5a801328f3daff3c0d57885856e85c7f56bd2e36f3866a122803607071830151e13408651e7b1872f22ec56fe8eb1c4ecabf4282791518ec194e6abcc2c1a0e323218b8e114ea820a4804f1d8a76c60055fa0c1449dc7de69a0c59c53ccf9b6695ee5fe4665f32ad78994c71cf64dd384681e6b0d9cbe350845746e7e8a4b9ab7f6651fcd3a8f9fd2ee7cac15a452a5fe1c938658b23947c51f1c9386786e6bc127ddf0dcd17cf25c48c53f27d6c7e9c4562bf32594ab4422ff55633d667911c5b8709144a4fcb1bf9d561e346b2dc69456adc3d6628c2d768badb5d65a6badb5f7de7baf66f1d534adda27eb7fef0d8f58dff75e6bbb436aefbdf7de7befbd176bd8354dd330d6c6f6d6ac159ab2eab2de11f894948647ac9f56ea4f7f2d994b3f43d9c503e1dab5d6f6d1a34ebdba11f5fea7b772bffa5fd55be161d1ffac5c8feaad782b8984ca6cafb3d9b7e7d9b7fcda95489ea17224ab66b3afc2f39b535ac5fbcd090a0f52390ae15b0e995ee58254ac57b94c1cf0ede328849f72487f222409995e2d1edbabccd77cea4df363c51a1990e00c1cb8c81a9c5527901509a30d95acc11710322f33450e3240c9b2ac7890e136d2e0056d6414449a1f488306265916adc97e81041d16920023cb82c3031709003cb00125cba289d1bc06a5176fc82888d452632cc124cb82038c0cb791e99dd4aead98f694db92edabe31fe757343ba48049d6e00764c8926696eef6d2b9f7b8e40a5d917c2a5286e3f4a32a4756e877384e3fd2be866e853ecd5ebdb37c6f90937477b972167f94353c59cd71ceae196480c8028d16327c608b6d42a9c7cecb291b9854d01a0c37a8c0e486120e6298b9c01744bc71e20916d480a18aa93288e410c11c2c882003081fe2c8829c2823872c6008e30b0f705044ac9cb810c400411662a0d4d0912458ea81056a6688620b1caa1a29721a2812683d36fcf0ed758bef5933a58494941141a8206b1e2fa76c70e1730b34356d6c48c3492665c041265deae82415a242fd02156c34c9ba64c14593aceb3526589a6f54b00595acc1bec28caca36ded94d5dabc92320a4e3637ac99236bd0ca80832c0b9d5386aec3569b94d270ace26bf7da6badb5d65a6cab0dbbe7a4b4eb6ccd565a2798f6dae1e4a2d4d6866377f795eeaef404b0badc7dd0eedc74f7042ac4c9c9850aada69274251247652949351e01727976c933be5dec2993487b0f52b42e5e5104c28bd943184f7d5e2d52b4ae040a0a4a8536eab809f28429d303298968de33aa395276d492a5ce539f92527a573894228748317878fa44fe48aaa5151893f2a7465120f963bd5b127bea9bf8d61be889638c71d596c61564e48861c5102c6081ccca126f5260c6539a23ce702360e1c2e073c40b0a55b5f6dcded39aac8f78d16d851a4f5ba55a0d68be3d46058517824dabb5d2eededec8dfcba91a902853c3986fcd540d3ad8f0ed3325039e499470dece85399caa8105ac4d89ae566eb17dd280c696020d74be1db35e4ed1f0e6bd97533448d5d051e9d9e7a6e7bc4bd234c72e650865f31b2261c1ee4924cfb16c5e651296a08b3ebd1450a04258b06bcef9095386850c14ec9a63d99cfa28e758dfc2970c5f06b84e1d8aa59d0662f11c3b05b19081e2bd0cb079750560f736afae02764f36393fa161f939474122d19ef32b54c873ac94c170210af4873ba177a2f2fc97ecd551c78ea5fae62460fffc0bb150c71e98979e73ff57e7383351a15717be0ca0f9751236dffc8658c840e9b06cae85afcea54c7329ebc0272d727ec128f48763cafe3b5ee4fefa7ba2b9ac5236bfa1275bb65471bee504fac3f915fac3b9064ad90f2db2e484d09c0b8d720a1393e99e6e951739b9e9852bc8e035bd461a980a06356210b3461a6c6646cc1840f9f4a79f70e6a74b4ba5e6839faca5a92e74a68e392b754d3bc54f1ad6c8329c6643d800a6053737c810a0821038a999c18b2ed8904d9f2e1d3fd99224b34fe88f75599d2c655f1519364d38a104447f6c9d4e1d890c14cda7239181521d87484e7fc21a22754843a419223d75e76ae70824ab76e8acbf10f40914944cc3d80852b6e5a7baac4ea6ee64a05c9f3e4324322f034c970e65ba9c50a66b2192f410e8a7372142267df49701a84f27a15dd61a3a299174dd2249cf59d475501095d23a250f797e100d1fc443963fbd150444fe217f7d52ea5ea614a493d24bfdb5bd30f5d7a5735a3b6db576525bbd2f40639d6e549d7b23390225491fa5cb1a8e599e3a58bd045fad4bb0ba059910e9228a3a2f9d8e726a0daaaff2e6864653a41aa5afa105a48f486fc39172528dd24ba720f7fd86acf55acd626b71a8e1764ae9a4943aa5945229a5d4c21b1ed1fdc82ec7dd524a56fbdcf00e0fd7a4dda6faadd7ba14ff56aede9586a994524a9dda095499e8a4cf0824914829d61f0b78ea3353eb80a7b456edba66a9db492b0ed25a6bafac5cccce2e17ae400d938deb74fa4580d0e40a34675f29481f28874ab72a1de8c8d34b28a0069248646c5efc8201cd8f1909287e944f5f0f5f98e849c58f478aa470f0a24a87333a88916941a60935305481460d1864a3788136297889f3020f589c918d404b40f1edeea464ce0c4f5550f1c40e493cf9cba92f36bcf672ea8bd28f6214992e4be92e295d4ae9584a9fb1551514449ebe79375d72ce8d5b751b8b15526f9c4e3dbd20de4e9716ba4bf4e71e59424201c69d2f7f3d3b51a1db447f2e931e253d76e468e968a2713c78f2b7c37afaebf7a95b21a06804232f1c1f88f0e48228255c291090383940d0061a142602d34088534949454541e126dce411d16df23dcd573bce63244cf66ec70eb0678708433d6091f71cc0e537b481cbef6828c889e61fc041f05877452009dec96f88c863dd4345ee48008d3809d52bea3192bfc3e17920f60d0ce240c0cdef1215e211839bc4dc258c7376b9dc451137fdbd521ad45f203e62387ffd3e51219ea6db749f6808b7e9af17f120c063cd034585bca7feb91e42481f01a1e764c6c84e961f21f4cc7431af9c7465043c12b6796a9104d677532b000957f088e161e219d3b0a2d57713131511f111f1587f4f7f4140e2e400411b784f7f614442cf4904428a3c0d3cd63c5254c8ab02021245771715117d0d42cf290b269bd7d37d3739253d5be0f840842717805e9a16b99fafd073d282f37ab6971e1372c8ed3182458f1df8bbe9b9762c91c3f35ada77f3d3d132c27bfaee7773257b357261993cee34fdf51da71d3340c0264564491564158eb18ac20029fbddd5682cc993bd4fa044b55a3a9ab45522025414708bf7d446a27809e0162e2e8b127a67fa47b691b145754f9822e1e8f00a5404a825c504aa564b4793231f1c693569c283279720c7bc8224e7f0a0eee33cde617b51a822ab787878645188c8e399f134c90ac5d026972e5c3eb79ed6df5d9a5b79ee7887ed9db32d336dc7e76f1f931dbf138e1af88f6a5ad6b40d7461b0c785356d87e5585b7966ce38b5789efebaf611755b8e094603f377e54680f0b2e6e7ddb4df3cdc615b95beb47839dcf97cdcadf0d6ad70b7025fdb0a6f5bd7f90a7c7d3b2c6eb502e5b6921db5d25a297d56780b616f76ca4824f2ef17f69b733ba27362cd7b2dc173674e8c5d03fb83aec8a3e7f4184b7b3d0dcc0ee79d9cb0f7b3e8b4d0a6d4301c7e8bfc2ac0afe7a6865de0d773998611f9f5ecd43012fc7a36d33004f8f5fcd430287e3d9f6958cbaf67a88669e0d7739a86fdf8f51cd5b01c7e3d5fcf520d03805fcf6e1aa6c3af67aa8611f11b00bf9ee1346c875fcf711ab6815fcf550d03f2eb594ec35c7e3dcf6958905fcf741ac6815fdf9935ac875fdfd9d230247e7d874bc33af0eb3b5d769476beec8069588f5fdf09d33010fcface52c304e0d777c4342c04bfbec3c49262b96958ccafb3a81ac6c3afb3de34ec885f67c16998905f67c56918ccafb3aa1a66c4afb3e434ac885f67cd691810bf9e97a850099ebbf406b5e5af8f99e9eff55554c30ee0d7576b1a36825f5f4935cc007e7de5a6614ffcfa8aaa614efcfaea4dc30ae05c149cbffe5135ece5d7bf370d0bc244853a27252ad4557d621ae6815fff961ab6e34052629443b99eb29353d38f1f98bfee39352c53216fe6cd699812bfeed169d812bffecd1a4600bffe6d691813bffe716998087efdebd2b0269b03795522908b2ecf2ea7a021f2749744324eb0bf7f78ac3568f90bc9e12c268e356d9c22c24ad334cfd334cfd3b4557f7619910178ac8f76b81784e537043bc22389171d0d79917cf90d15c0e57734e4a4a8ffa5699aa67de0479ad74180cb6f8804ef7e80f237a7def6edb0b86ed3c0aebd1f41741df76dfe62abf37278637c9e8e95b783e5b972103b5e0f1e8f0787d7d3ea21c70eafc83b97870387c7fa0738ff3510e2320b11bcbf21262e03e50f00f41d8edbd971118038c771dfc771df07043ccaf24dcabc084d828047f39b78acbb251eeb2e49d79e11ef6f08e64940f9432051e7b1ee90b8fc867a78f7c4bba102787f47434e9c68fe13efbc1bc1e53774008f75e73d546410bcdb40233e74ee91800028a007057a3efc00e0c7d4e2f511c06f4c8bd70d007e4d2d5e7f027e4ec0af00e067a645d0c756e8ed38ed38ed38ed38ed38ed387519783c50183401bf2e2d5e1701fc9880df9616af1300fc662d5e5f027a745abcae04f4e648818e71cea08f2e90470ae49102bdf3f114007a45a0b7a6c5eb3c4deeced3e42ee46de090aa1f7128fdf571a3faeb3dc61617f5d73b272ab4e3d45551211e28fa731de3ec7271c7e9afd35fca03f5b7abfaebde8c0af148d10d8a0af134f5cf752020517477b972e691faebb3bf98a7e9ef06253dd65be7f9d0793ef4f0f3f371a786f1f875cf4cc33ef0ebde53c3567ebdfb589ec7faeb763c2776bcc3e1e1976d6658e165ac75787286bc1d3bbc8fe8e58d313f2112e0f26385ac01e021cd880ff22beae982bc0d34e243be2fdb7871f33f44703e917317103d21e48973089c9f640e009c2f03671b2f3f3c382f88b908ce2feaff62524046b6976d6620a22be26d600842be21cf099c1f82171bf84734dfc7bb211e08e0e60208b734a1d00c3af404c0fb00dc7ce5b315917d8ed897533eace17905f1d52b8811283a9061ceeb8707fe7d45fd3b1e441941c27ad96686187636f090809b7720f630b246f4c0891e3cc020ef08b8b910e83dc140ef0ce81501bd34920709f207f7e5d416297870e06da011351980f33d00c077343f03ef8a7841e0e61c0c71390d0181e7651b2f725c46bc0dc0cd8188ec388248084a7176c03c22e0e601d840871125368841e9c8600ff196e73404f4cc8cf16d64c8a2bb58d781970070ca4a00bd27fa733d0ae839c1a80450e4239a2f4402bcebc013026e0e00588e12c006805f4e8531d321f1340037ff01bd23a11847ba24dacb291c9a5a38c06e0381f80e1ca117d5e27520200c0c39e46da09120727dd946862e5e04e7ffe83cf03610f6266baeb91682f3937cdb0f507eec3b9a1f7a2771ac78809043ae07e5b04d6536f0369087a9451e315339d4a75332caf40e9d94baa495ce66e2daeadddd56d3b4cd0da7265ac8385e4e3909017444c6e1b17678aeecb5aa975d5ecbe9859e49f5440a38d973f2c096bd275334792dd1a7953dcf6bf5f85c16809175bc9c52cae24720af2aef7839a5e424f472ca8b9c5ce7148eea81ac34996879b7005b12602e787a1930259022872868e8824636ca3911505ad382a63a6d6861816c9cb325b078edbafd862eccbe5da287b771f2d2d75a834210c453ef9e4caf4d1bc7b50619cffb89c39b324878e08a2f4ab2316f29f3c5165224e1851c2e8b1eb0d03650c19c295146084fbd2ef5f8941234349ea2e98a279e7aa514b75a5c1b4094b1840a48bc1901072fd4308612304051e70ad99cb1e6d47c0761c5b727e9eea03a79749559e129f529823c7a3dde451024c67cbbe132954418df2ebdd6060688d2995345564d19470b4fb0decab6da5a7d6ada9122d876636ff0c5e46e7efdfaa6699a513bd7ceb55bbfb635b714e8691cfaa6454ae5e62975eaa661b303a93c023910cd546bb95aa46e77c828013a42ab3a389df419edd353dff0f421d2f470e6860f3250112934bdc81faa2487002902880a619cb3cbb52111e6e514125d3e002fa740f0c577fd1d0d7d4e34bfcb2b9613cd0ec70e4f0e1dd773782be7b0d6eed851354dd376f8d4668553ab46d791382ddaa5d12ed532d89537d775af15ce0c47a0321d48f9cc39089d0ca76160e61770e600e7d264c201ce31b30c389d5aa49ea9b3e85cd322f50f9c52d34d8b9cd5402698737cef058dae77de852f265c68747d73eca37643a3d792cd5f0b6b95cba97080c8906b99864d2f924285a64625d5548ab5076ad4324fe1349cec7217c50ea4f238955ed6e558e1fc054e37c717845389bec24c2b9ca944371cd6382dd2aaa71fab7ddad13850d08d1db8f2aebd9e86adbaae73fdf785e3e655ecaf7c944f469f6b9ac77ae5bf791cc0c9e33ca2277461cefbcfb9aeeb38ffb2745dac599f6b9f6fdaf785b116a71b69decaa00f0b046af183244fa0b438c5e93fccc89e8ffe13df9775d9f5703ebfab3d2cefb08f55ec77614f8bd35d6a64966f2cccb1584ebf21d6f46dc6c430828715da3879204d52124ab4698a9a12428d97d6f4e9e1188e1d51e79b839cb669e1649aad16ca3d73898ba50d7460e18c3069b890040fb2c9c69c3727a06266031b48c88cb0208d287888010c249664d30c19e2141135464b1bb2e916945562bc81e345136868a893a484973575e054c5a0c20ab2e92e3ad091e93e5dccf303e3864bd377f0f28b1e66dfb1661ba1b0f98bc9e55cba2791781e584405b9035db9c5ad08988cc3ec627675172cd2652a4d8bb3525e625202d34ddea44fc8b06543b5d84ff2494ac3a8cf4fa244042851184031cd9ffc7cc8f358df1e4ab987973c1fc7d844ca704cd2214329229fc783b4208f1de7db8b3c3d891253d2711a46431f23e93b3ebf26d277bc0b52278f45bebd163b8818396c91863114e4d1878754f6d1d54ffdd3de4ec34ec3a34afc373fe6f056eb6b75357c31c1e1d58b7050500738e6d7018e48744a4f7a09ce3126911c4e73b80e7044fa1c1ea33940ce5ba0e6d3301cde3b20f8da5c8227a0306b2a63c6eba68d927a82e29e3a0d8f19d99fd0f628b43da644562acb344d69d1ccd319197b8a927a82aa218ff979b89c4728f64f0bb9c22232fce992a6616391a87e7a7a59a5a35721e8d1427ed5c9d24d6818ad3e4e69fdeb69587f1ef1738711797407b22eff755d3e9d17c3d70d51a8d2e2fca0451f1e3372951298392b92432e82437e599fef1e9e4d9e219a2a093ae9337653b5f86a4e341f6f992975565a6252025341ec252da1512787aa158c208a30b27cc69b2daa7670610c0eb2f6dceeeaa62b8a80c92feaf3c7f9ddea9f164f0ab2ffe84074fa113add45ba4326770d9df419ebecab7773a6814af2f4c1911e97e8e3b532ae528e69629262a0c440358dd33fb5697e9d6ac354e4abcbd1fbeafaca049bf047a0235f9d4e3aa7612385a2741ac66141e3fc78238f142ace570a84fca94e4609a9aff4092a4f8c1c523dd640a898af1e844eae2eeb6c67a9933e237d2a2207a193f19a28113a8cf97c0512a2792b5bad56dbad5dea0dd60635a77366efcef60e8db06bee180c32436ea3e9db16be98e0d0686a3e73bc903b1ca750313f43a3d712ebdd21757a410ba99916abd332b449863cd2315fabd3310d9bde93d227ad86cfe9d0e7f63b1a5a7907a661af9b7d8669d8ebfacbebe7cbf21e979fc32645e409e6050ae1e32cb0e580427071994fd873faa71d843579a45fbee57cd330b40b556ad818eb9ff66e390d6379f6f6a693e91626ad051c1e9e554588c990c79e37f34c0bf90c73a5612eef0bbc7d3e35acf3e966a669bd7c94747aba7d2a35cc02de4ff11ef486edf86cc2de3e9d1ad6c3dba7998671421d457f5a87eff0eea88eea718241f229dedfecce024720b1a70597c9fef1e13ea6df23a4c700038ff5a58f010620f8e4822afda1f3e8711f4e440c177844ebd4a943e741df402bfd1738068d5c8ebd0768c4c33757cbbd070377ef21f6c0c033f0d1d30303f7e19d7bac310065d8e33e7a7a6490414f08840910acd2dfc32f008d5ede2359e1c8721ffe721f3efc7ace39e7ec4362703108add4f77044e18d583e583ea2f039eca6878167d0bdc7afc7dac1ebd307cbb3bfe4630056a97f81cb6fe882300af80aa1f4f85195473aa3331e60142244e800e777544b35d513f9409ec8d34719e5792da7df108f0e9c440e10480e79ba532103c89ff66e2ac6f7099ec821ed3fd668e100a38440b6e4e96b8c5e4bb25fcf61bb21eaecf259ced38594f613da9fb447c960ab4529273c8932c3cc332da69951e05c33a55aa402e79b16db3970c601671538e9b4d85ff13fe1b121ea9baabde1747bd3a5d60966eda2b6a7c5c6ae796b8b2d25d5a29bd8e9f1d41b0c15d29c4e39edfdc5d5935b5e9a76f5e4166e26d14c9e2ede90a78b63f2742c64ac63b9beb9009472158052ee974c51b38ac9869f5554684211ad7ef2bc91658b3f3fed40225355aca3138a0abd2aadce71de85489ce79d237de1abba947dce7992ecf3e8ac7a17fda155640128e5fbf279dcc84f2618fa03449ef4fae650ae6fe1abdab08627b4487b46bdb9509f73b8fc98b326da1b54ceac49bb8503880d2a092524d29f9b452a94e5530c638fc927a755ad207e54da554877f2ce79a5b5610d19d06dd0429ef508fd914fd3869442d191524aa9744929fd62685aedd5f09643ad5a6d4d696d92ca93e23a144c2828b46f898ca256517429f75be29d87b71ecc6414ecb724d75a5b53be2e69791fb5d7e765adb55e29f9d9c95a336bb557c31bd77955bcf40ea4d084daf2d27f482151f47ae644c901449e50f3ce9f043c5dd27acdc51c46bf24874c81db6acb86419990fba7bd719c1e35796aa2b5a2e880fb2d01bfd5e4524414e23eae9edc8ad23f7d84010c68a1092564f4e969e59c29cdb1439e2e428dd925ba38a10cd0b21c46e4903fd5bb0bfec7028caa772b96271485feb47bd2678caf3b3cb552560a5f4f5e6b594c78514c4a3e4c5c6cf821878cd7e090c267aa0b4dd7dbc9a32d80e91ff9b885a5fe913fe2ccc4054c76c2a529cf2921662e272ecce88fc473a68288f24c9082183e542c788171c8decb2916b28822732fa75840f3f80d0b4f250401752fb6b53bd65316e4e5940b2df8fa720a083a358c4efa601f21d93f42f2090835bebfd3c490c19754a0a1f4f29b5260efe1629c0610453c6533a798369e7a6d39738a0e8c784a1dff90e6a967199e8a81fadca29c43c4142a7839b70675f2d8c2b6054c660c18969448828b9628642430620b27dc7801430adc15569481e22ae16d618c5e61c3129ab66d348528343567a0f00f42684fe2cb291fea3c7e39e5c31a18884efa8c2da17a6652ef8a0c27cb4964d615baeeeeeeee30dd0e2d42c450087438cdb01146887ad8ea9ff60ea5c8b585253a29916896b36235bc69806e3dc7a4b7734ef7666e795eabefedce9df37fedf91a56692b2cedee9eb5b6d5ec7bf67a3338a5d57fba0f29a7d65d85dada4d6fb0b6881c32815a9c16638bb5d0abb4e785b438dd8359ecd52a76c5d6da6b64bdb6a4f2757c1dfbcc1ef6eb8d3decb6d562e7f81a4e4ffad6e874d7d5a25f1f6f74abd8af2b30a1a78d9e9e4a737777066cbc94314c69b131a5556b5dc119973e3e95aaa8d2e2a94ffd9929b8703b274801a745394e4ac18f3d3dcd297f36ba437948da3d5fbd4aa14dc8357ef0d57da4100c82616ef1ccc77ad62f79ac2f2cf2585fb25ed1e15a6fad745ab983b5d24a0906c9b1e0144f524aa9b5d6c70314e4d1b3f7de70f4de8653bca4a7f488eed29e7288acb4d65a85348c350dc4f4a7d29e57b38dbd4c89c2cf2016e45ac5d02e982fe8cd10d31ac756395bb3b6aecd5c38ded6bda187373ce58c510dac626bad9282e0523b4ed9b24ea9bdd6efd55ed793fe2eb9aef978c3f14cedd6aea51d527a67fb80a51b2904439e5e8f1c91eed38689aeb3e1572118aa54dbe5ad0be990a7db718aa5f4037b04052896d353bf3396d357e93ad6c8d3fb072216a07a010b1f6ef8a2ca6902443831864a8b316cf4604515356c55f0e0e28e7851c60e476c51c51616da5021094ca9d9a854ac56c54d8c3285660400000000c314403028180e088522816030d11355550f14000d85985074509dcad32887610e19430c21040000000008c8c88862000e386680b59b9d3c9dc4dfb273f28fd7267290d62f68433e9fc3bc3bbb8d9eee5a8deeb71db374e68e7aec1470129a5f9d66d21718b506c07823cb0c176b65f87517f381ef0018add723fe0626131ceb1844d144bff3fd721a3b0d1518d266401fea76ebd1d6c2369b54ecbb031d61bc72ac2b83d9cb5250f5cfd6b0ac6844586b494cd6e9999184b3925643ef5deaf0fda7a98ef8be7a4db508d42ef6547231642bf6bbe3541f88491e64438fd89b963580e15f02fdd0c0611b983b7cf608a3031b11b7fac0491652f033341d4123cb26eb11bfeb78a709b72a2428233a480f93adc63d4f5f6699074adbed8df4cb555de0c85a11879117cb09213a07a3697b4991f8917c4d744144591a070aaea6900b2fc547e01698de991a5c1acd802ed338d0fe8b41e251abd127db65e4c870c47cc5ffb543d9ff5b4be5c41b049ea318827d8218ce4d77ed9df4ebf40f918189717b85c368854ed3c79cec1ceec12e603e9c8852b1d4c87034722fda2fc847b745124ff4524553ce745a6e31c6925ad60c55954f45b85eb94dc2986111500bbf72bc3aa7fc6fb5a8ebbca681d26cdeb6089322bc568e66efa1a9aaf51512642179e4c995b541f16bc948ccaaa24c3e733040123f021b7204925fa84c8d360e7c0903241104f4158a7f4eea07402b0ab85cd185b8914c0ce99a25e489f54f18294d7567302d2cd6333bdd063ff5d1cdf8172c99832fc3090b2c82ea98d938b9283de362ea5207b3590ab16d1405c82a22c7378efdc6922656ec515e394fea98474be6154ae3880126226eafe0aea8dccd079045bb7f6a71f8ac72bc3cf78c3f4da202feaf83cc3f1c7d88a3cb31dc267b37b07af3056b85649b3918b552e616f63ed7cccb800c5b25210fa0053925f3972cba736661be32cb9852e02f5aa6d164d244d10868336b679f1fbe68e55419f0602472cc62974919c836305423ddae074b3c5e1959c0bd5095fb810d1dce822f3ba3d6a7397ccae0d98d5b3cd730db10d867260c5c38b4c636496162357c5918a5e48e59d58cf6c5106a08f3a3fb8f7ec2fdc5f295ab86c660e638a68a352a69ae8bad194f64f87f06a7d640bc0e150ab51013bfac57699940b554561acda278b5d2f04c82eb1257685a8effcc44b9ac81798e3ac2da12281c720f8235be91c881dae2b03a3bf395e7dde8817ddd8ef5085ab9e9adb893e2099abb039c778ca3e130654d34234f0f9255a010b702753d7842f39d7f87cb02ce97e735596539f36859de2966b512113eef373f6954008ffcd36104aee8cd58916d0cd567e8bba7a7548aaacc3f01cf3306081903accc3227f7dcc8e29e59ab8d7b70bd1cecd2ca78bb08e0b36f92594706fe6bf966a1bd4284d3418a61c96d45c14c181e68159db8a707ca09d38014eda11b14a825a3d36b7462a31a8de6f45f556993e7524108504b1462814bb6df8812dd3a981a73d91742c50bafc90dce479e9033089ac7038e7f9eb660d341341a92a34056de2d83e8eb834950ab763da6758fe7443bfaf1d17ac8c0e8922b39a0beaeaf9e584f78eb30137d008576ebc9895528549ac61fe092eb19a57a1762c04f594f731f47279a3d8a1f2cd5d40aff1c5181259093bbd9ce5541419236eb7fa5ae6048f975fbab759f0f76084812456213a92047db6cc6543e7392f4bfba0fe7c9cf147b61cbffccda51faed490e8fc02e82f5cf8b230c627af554a6025501148fc78f7a8296b5d4e2c81ac0875f30aacca9e653bc489395080bdc13c4fca482677e04568cb073b74cbf0df2219ddc29bb3c44aa3873cad62be98d254e10a0c96d8f634a4234f27a7ec447796409673360d1f3efaa5306078c5b57b363842a7e89b43e6e79d07036397ea96aa4c9cda0cbd7efedf3816a38229117ed01a271400a02c6f10c5389ea37ed7bf29c076591136b5e775fbda944df7e775538fed1bdf4914087d52700bc7da38786d48ca5fc75af89d6665707b7266a30d9a123b81ccb50f57827398ef37566e06e7c2f2e89d4c4710952adfad0f5e22de5d840679fde3417810a56270e2288b8d9cb47cf4ef2ddc75e279396912161223698b5a6feb8ccbf4fbaea782f2444c7caf5087b62a25f990816b1aef6a004187e6e01f96e5a92e97eb8f99de28205bc53301c0ce2bcc7ef47c9ff896cce6f42785aa021dc641907d424a1510fed2920456b15e953cef6869f67b7305d18cca66d52f261c50b184ef1401caff6e42dbaee33bda5d03de079ab7c103c793fa5fc8c85340fca631ba5f08e5db9c66ebd4009db4b2a9ed19be834597123b006fd21a94828d0d550229b5d6a04370197431807dca4f615bf94d12f74997578b5db317da9a0031d4ebeeb5b292bc0007bd4de2e8bfabfbdbc1a4064869eefbafb512c761fd03e20b4251e69f82be3d50978ff79ff27f5ed0de3baa1eb0385ce23c30d493cd4690b46bf685845ea6c2f724e2554707b158a80872fdd1af516b1b6e91469cc9caa7db727ab499442751133d889538214468e5ca2b4ec49b55cf30f04202381223d3f7760a40e729c4fb5922fb1b24fd5fba7dce7cef26a65c092a375777a017ef7366771ce838905ed5af6615323fb8e9ef3a38a021bb3d384ddf032189d14770adb49196bbc22ca55d069bfc6423ec9ea1d8d97d67701ac3a7b7031c39fab2939c2688dda2e97dce68ac89bc2390a7706bcd649ca3b7f181993ede82ce21839033a5a8151ba0aa860301e02786376fef8fbc84038da7531fbcaf81fc2215185759fb136058000aa0ab66e2a6456f4aa62ba110619a7ec009b6d4b57bd465872135b47b39c153f1d154e513723ac52fab43ab2f2fbc275cf6903072379c9f34cf88829efdb30342bd265a1ef23b78efc4c77e6ecf6fe30d255d1dbd33da9082dc1e97c8907e93a438f8c5621b582f0c768e5244eabe06d340f51c73c0801d1306718b0a87633be94523d1801de717af30e5aaa292fe7ba7984806658c5f406721f2a05f218b51f4042567a18025a43774c17a6ccb1246f0012ac049579852eb85f072cf0db3be51c49e4cf99319ecd9c50a25d4fda62828dd35a79ff0e496105120f56fa9a61670ee5fcd3ea1645dae6c903da50eefb214ddab7622f4b12e6b11182d37d6e0eaccfe62ac18beb12d9a962f02661782b26d4723d5151e5b52eaba2c4223451a9221adbdcfb3740bb4afa0b86187b13a0126dd691bda303d41b6b2b8c31517d21af0e17e2a884a3904ef2db11c514bebfd35fb7308cd8280a2338516beaf43a0f34d06103b20ed436ae34dd746f9ed4fef48f1bf036505b5780f19edd8afc481a1a6e34f1d802032aaa7805f52324a3cd22a8f9a2d9b4bf11abca3d4d446199277b9807065d783ae91bbd7bbac80f3bd1038812a26ac2c23dad2692477d66b0205722298d059160af9337db647f202777a7e9db8a110dfe8724f8178d2892a181cc4d52651aa0ff0f52bb8382a58ff4be7248ff4173e03719b85a3d455dc669139d2237252eeacbf58e8e6e05d28514e971f3ba5acac10d570144ff3f7515fc2f5b4369f060b4f28ef149d58fe872d866d8cc3d190e12387a9e34c2c3223ca24e7ea96487919281010c1bfc7bfddebb4b7942af595e45180a252f84dac9dd122ebcb0e9086377e95b4b804af6cfcd3e88b679b14b4531ec203d813e067aca7cff40d54844722d43f5216a68fc9a2c7c2145b67ade9d16f28bb6ecdda311ac4b0d916683011107b70ce04f1493b95ba022673f9bfc58c3342b8dd7a290a1b9a8070fae61c16574b951c3b6947eefdd9d291222df7594c893c937300725b0aac9440d0d30c3f6000733c5a22fce6098e578ded74e549a8b5b808f3561933ae501a77c900b927a2d578471b9704c34f97f4fb729679bb9624e634e7e005842787d6634fee3a719ac4413efb3e894982c68949d58f578a3daaa2166ba590a36f0819d7d648f19677020b42a42cc6d1229ea20ffe9a76d44621c4f9f1e7983bc43c56b1159f71496e03674aa1792b8e3902ae3221a6cef55dad6d5debfd5148ca568705df8dde86b95a49f6746a7023a3e12780a215cbcce6d49163f813e2527c3afd51e25bd821d92b45e3a7b48ff1b80c65e9eb89d1fbf748211ba25dd41a41c15e92c676ebbf0fbcdff486508f2500233ee964776b1e340600662bba620a8e83a018881637e3104990321c168b3bdc5454c785a183962fd25a109547191d367d7bc7f3135009b52720803b904a515e921a9597d94296228bb8da8552993c508a54a3862868b8e8d063c7c2be1f5cc681a16fe8c827edb1f74cf9d338de141bc438dfbf4f6e0c80eb1dfb243fedc9645d21cacc553f28ca55dbd6a2e2090ed62412b7888987e843bb7f40cff7f371931d33243cce12971ba4d6da0ce1a618662e18237271e8b2d382e21b837d5590b99f81c7c42a558cb18dab75f7519e9031e1395daf0d75db861a5afaf389bf60c048b8f680ecafb33b20f06bcf92a89035fe01676898093aa3acda460ce43752e5bfd83521a3077fd42b5af35c5de380710ac834c8204dd1a5738009013b60a2f3429b883bd08f5d77b8aeba94eb6c40d6f96f3af65f621262032d3da5cbcee286a9d3035a5c7dd22fe1f7cc8b4b7fc9b52c647ac04a0074db6072ba3c2117852577416fe239e09a4c22378ab5d4bd0c255c4c7c531203b812ec4e6d7cbec409b8e5e4297334282f4df0aca85d8be6eed6f12a205a95b08ededef4dc46bbc34f796d33284210c9de21298d5b509576fb5b0475f86337d0cbdf1c0725a52e29e50666ae2ad70c164ddb22c31b5c249c041261d6d591bd589f281e645d77291ba492b72d434bf6fd11cb7507536532f237f78f99706c46949e463e5f5adebd84892d3c0aab9853416e98a087ddff7d57e24ed7c37a0b9f0c5decd88b5d55510712dd1e418a53c12966d35b5734e80407c2ae84a007ea39930d30078df20e94eb8be560ce5f13693b2b9d868e71116f18ecc72bc7a6d7015f023ae158138ff389d498477d1c0a623e4850d7865f6b4aaa1412fa170c9bc0b61d38be84b2cb6e9882a7d57be782201c2850dd61759b025f2799e770bb68b926a1864de3a3b15ef25b7bc92969c8f7577c57f5b7b9d4f6df5516f380d8b1e91b372ea44a6dc8d44587ac7873b3c58ed402ab6f45257e37b9ac0aaf3f2558b5eea3caa7aa0680da8b3b31155bd45062c5b3758d2c8093312b9d377100fbe89999c9279a69a04edd67004a64463ea8cb8f75fda4ab05a9826ed2be656d2f4efadc5ef03cac82dab670fe9577eb9f606b376b35f84e92c6cb1ca3fad69c8c018d0c3726ff23713737f08f9c79a396dd4638ae44a2d15f99ee5ce027be6a7ebdf1c09fed193096120321894ea213718b686fa9b9dba1ea27302bb14e780cd28ef378495d941bc9305345bd71a7c3c729ff010422809c11a78fee078eca66e410f2331cf67bc9774a89be0c95a68a66ce6e501128f21a6d30b383dc362615f1b84554a3051c9059655f254c2369266ac0e596a2ddfff6d28e3b2f107e3ba80616a1a58127be6e05fe82ee3e2b873b40f12bfc7ce36749bf549729a6b15bee6f9ca869f177fe93acdb9408319659c2e50ad4ba6f6348369bce9e424af21364584e0561a76ef670e28c31be10a378a66685e38c376e5a6835b5abc6540ea035db295a0cb9b17740944832eb719ab23d62ce1b955d1d5c6fd29ebf316b8a4d80de6d4feb5a333e85b1525ae991705c633cd5a75fc3e7b14a925a6e893721652b5ca9a20495cb5f4aeadd19de3be8e04a38789288b9dd944be0f65c4089ece5c23b1046d560370a3cadacdc277ea86ddc6138e3a9752f312c7765825724e665fe6681a9d574acdda5fe452c0dc0ab56fd248a7f27a0d88a753a2112cb642924e0f8c11de9be0cfa8e95e25617019914531d0da0a94ab8ca80b167b6eab39d00aed121a30632bdb614bd9e9a78724743f355a317e82cc110dc753db65b8fa12298340709f1a559a2c8a22eb234bd7f743b861aae335386674bbb61a0ca072ceba1e8064526fc9b6dd28d78320c8174aab80e40b141d85afe8f10e90a71244e465596a759951e157605c818c5798dc2b460b772a5b840ce1e423a938ca5a39976df4350f46808b2b69c4c30ac729e4b2bbc0932261bcf4361dc6b629902a09852b5f8c2a0004eb0e2284689b513c01e332f9308c1b2af8fef4486fc41ae89e9622fb04f68ddd791376a970d84989f36154d3b0512cb093e3f885d177ea5f06669aa2f01f1d3eb72b9a4647c1955b1a897fb199aa46d50ef11ae8a10023a83e4c0f8d8bc6848b7d45bf136f736c41b29193caf67b34ee3b4613e40091a573e8c2bdf8838999c86ee490bd5e3a3df59132a758905db51c42def74cc82ae42f66d4238618bf5ca09c2543d5ce8bbdc3878782bd43955b2298f304c8cbde27b02f90e22c02027ee4f4205de973fe591a123318ced2d228226b3338b3d9135e907afc7a612784909183f0da2e3118494b947d8ef4b09b961ce19277bb0910aa12e90da5e7e35bc27a9c97fa7c7c5ee72590d9d09bb85619f30e5a0426168c5991accdd8879460a399a68a11dad437e9b044954f6b1ca3bb8e1581043ddc1ed2bc8889e28ea2193c1211205c933b725e20d41373d983bec1e5b440e78c4790580778f29413caf40262a0b7c83ad5063fba4d30c8f03592259a4e9eaa238efe949852d152bf4788bd536e37449fd44aa136cc3273146cc96331203495572a6e62a5e9c43a8fc39a500ee969f199a3e47db2fdb2c8a2d47a597fd302bebd52a3ab5f7c796af34591ad0f1edee63e2644304b69b9e05295527497e45b8ace698119c10110a81ae3177db2b2f47ad0ef349b343e3ec5c8f1241366b0c9ec0f77f6ca412f4b602d51629e2528762e3d0dda1317595910186c79f1a43f77e131ad1bbc03cbc0b1ff6732c26f99a333ab9ad324ff9402a753f10091359351019b8d85c69aa887fc6c77c93ab8b5eb1a7dcdf21dc6c6170d9801f83ca1ca97d92f85a8b3264e1f6d64181093cf7a2d2a597e5c448b6edf7cd67ebbd8e3d65bea77be821dc66f1d5486cf00121fe1be75369341b28d50fb7c6c700e29df3442c450953bd393d01a307805ab2e51b69d413888be0fff4483bdee7f31087ba75356b626744685d304a865208c9e4ad2f9e9b673f459a879b192901f4d746b21ac2555e477656292408620957cf9a9d5057e9cf4eba9bb74abd5cd0229312f7dc46f610e704977ba8e3c9a7d20d61ed1c6649a17c4bf489344313e5b797b62acec1db428f0af6ad3fbd0a5a7009258bea3ebfd9be2372782637e23bd2b4116ed6a0925b589421966e3ef22281fce87599b7739a62ccc058d07a0ca5ac45a8852151cd5c626083bc0d12495e21295effc4d56f4b4799b1a4adefe5926f3d496694029688e1acaec07dad339deb04968d987f7a1425801d678b62d63e19130e86cec8316b1c575b4a196f83c9b675e6a8639a8d8da6979fb85b01d17740ddfa3b6ee29580a4e80ab0dbb4768aa509c9c7fb3b27f0da0b26a8d7da4df58ea9e563d6e80cfcb95c5a88bb9317422a7bae57ebc5950bdc84552848fedae140cde2e92a1a209f530ac0d66672758d1c42339118df491624d0aa508a6ba1810fed4d2f509221bf5802ce911cb39862a29ce483bc0398002c1542884d65d0989026e465f42b7b46e0131cae192c4a420e89423711dd99ce08f886c4cbf603480b6e9a38e2eef1666de314e03f85dd263a2f6e6103167ca7fae694840e2083a62cbd3f35dd403872e00c2261c35cb1652772599c7827b96f8a5deb9e58b59f20f05763150323cf121fe4a57ccc1d0d9431cf1f3e91c426df0e57d944624031143ba9295d02801377cfa032699d9d9b45c03758ab9ffc202e69d78933fc405bc56170933c78fcf038b256baa8bf4360df812258b8a05d923c5bb627d835fa008779597fc776d26866baca8d680f1ac2386ec636be3a38c7327de1c1971aa21d889750b6577a76026be9fa92ca96be1019a3f6e8dc148e724cfcc021a7856fec068ab8fcef009735f6fd68c8d6446225e9c0945f7e9c41e5cc154c5a2b77918182e6dabfa505df00eb98c5fd50139f49aa68266a9f064d005419a16991d57c995c066aa7c2b0d9bc0216805e6eaaa97d3c23d80fdd315d61c0b228a002bf375ca903e38dcc49790f98dfe2a1f1308887ab37502a7cc1515f9cc0a9aa88529813a1595286688ff9f24107aba4265f9d7d8cd4e1c83483926814516461058becade1c706569697425673381c72e370b9d970f0f99e8b8880d41583bc6333b732a806564960c2c435dba566effe25a1b1f729badbad421b7dd455ec55c6c84279544a95849fb375296d7b5c458189a5e59c0a86fab43bd0ccb96f2c58d270d17bbfbfda18e860eb4b24da3913e6231c8f97c681af1b6793cfa33221fde40d58a009596a795d0a2bc799946de0a074bc8dad1318ea81ff7b82634516392385699d7eb443d1f35f08341974c21a98986a67f4be6f74f76d69b1a52914c74e781c8bce805dfb1c52fd9be1d551c88e579718023dcc8261cdb6c20270f4542e116b121b8e11aaa54554a621dce2eb9a332f7a7806866130728dc886454ac740c7f6648ca813d3d436ea2cbe4fd5e1a075d665580a1d991a51150fe99c2465be430762c634fa3816e83c22b2a7c829142025fe86889e2a7a54067c3bae50d3ba520ba54299165e453b30e6d637c7f47e3f43d143a7ae261661f1669397843545056404379728279bbe1f915c686a59fac30592bc52143363d556e02083d748173187e49e0e0edf454bfb2880b51bf562636bba6f3b52da662d3dc406e1939c8441a676fe96be00e1f0d433bba61f1b7dd3750b209cbdef45c27d7253f6d8381391c1f3a96b438cc3d6c2a1f1aa3123478c0a7aab3556af9a3ecb783228df5139a8c743c89ce6ede89e1a772b67d0471fded48d2c992030a2efc060fad0302a34a44026ea6d5615d9a3fa0b8045b0c67dd79530425d05b83884bb180d7830d4a9d367b05e7ab59cc061e70be1a24a7cb163f696e238f73ecae7693ee150b93d603a556a2b95bb0d561f77ce476da34d8bd2d7626d2ba3ae3a56d93d0d273310de8b85d20d3287386333dfb9fdc9b8cae3413ae31b98731205e290be92012be30750c9b3f75d8574e455394a64ed94fa75849a54164d8845f248e3b037010b06f5bde37095469b8fff2becacdbc9a036e897f8fbad50c12f9cffd2b5cac17080b8639bf1f360f1a08b20d8761a20423b4e0702386d3c905bf1628f72b537910fecaf4dc99d36633db9cef8799eaba24f5405988200dbbb3f0e8275db9644d407dfc220aa2001c6cd039347260640427961c1c0e0ba1ac958d144458773ceb2abba1cca3f69abd2b6a3f0eb270cddb4c47a4f1d2043265ea5fb3dba2b8070395c7899a957716d3ef6aad78ca1b19c1c73f41dad9530a580d86a5b0a010c04049a4cbdd60dded860c972252a69088b99b3015c8a32d6b7a278257735415099e698965de4294667143355f198dfb8f926bb035314c770ad39fa8961d1d8c828c2b8825db41d9892cec2ce44c3869d05ac407aa2f29c1fe14c2fc4bd31d68d53dd5d6927879f44c2a52ed080874ad8df5361a145dc29db98ebf88edb87828d2520b29eea2c66ca2f62b557238e692c3266a717f5b760e8db8cbc10f6e41cbeec1c0d0201ec511944082c7c778ea3c827ae316e1c127296f31db1c21580a3cddf401d35ceb1f6331ba52b301cc2255b3653cef12ac5c292771da887790184b16a845f685cd18d2b196ca10125ed2e582270735b850388b8096412b9babfeb3bb3a7c1058da6a8e426b0c984e1a6ee8cb3c16e478701db8e2fc1512452193594621274e245e31522c1bdfb001d7d7f973c68ef918ce0f85511d915971ee8d1440210aae5e3d01fbb2932de89c4b273dfb838b60c5877102a17bdf88e6fc3674de473cd08bbd994688d094fdd9e0eb7fd1aad2361425ab56b13ade86f75ed0e18da0a8897623d95a7bd8730eeaefdbf05ee0275dee65c9b9f54eb5fb06c7d83193c92521091c077af3c4cb4c293f7029ccdfcd19838986616a0feef3a88ce70c3803cc036895ea63a08790d7cb2725aad79d5665c95f5d16d2a16451e60ff2caf7fbb4af2ae734f1d5296a995fce17ebb34360dcf536a40ab8657dabde26beae030a3f059e6c90c4d6f5334db38fa252f6f0f8687cadbe093638f76e92e62d2284c2138c84a62e4d96b490bb482b239eecb924c9bbd89b55a99e798814b34ff96be9edd228f32375469f10e2de1008e0e533194ef01e0c1be4fd145e99509da634695f170a6cee1c5afb27545cbd0e8ce6743281b317a8dd411dc8fa40662c3848abc7a01c27654de2db29845fd5e90ce164b33a4669a06d7ae6637ada4e5612a99a30ae6fe5c448abc35773c4e00055093897779ae8a964bed387be7722919d088623878925daa274b1c8aa04853e69629f69d1896c85c803c366afb09d365689d048073c045f7a4f275a58fb82572a16bf4430dd3e758ffac71d8620b17b1b56e57534025a0a642891344300c731dd906c396d96af3361c3406ac8179b029cf339230bc7bf566cc64ba36ea86abb2a1c0c7e3e0751a49d231c332d3d715fe36508db50535289c67c12759241778fc0cee3c1ed7ce6af849b21b52d86a8702be1b6458722365272d76ac5700a85449e21fcfd985686cad8e97c0ee34e0ec3eb50d2f49e65e242938edad2cca076f3efb36c14ed41e09fde4e466605a551ed82c785fa4dcf5c50080920f88edac1d685ca4af7603d951a4b196ef1fcd216b29d62685c63b45b81369d038220ef9b0621f1b1f17be59fd6f4bf3579b99623f187289452445fe153afce9f753f63ef7067611a5e1da9786bcf789df6d119e86560f50a455a79c5ced073894a950de0bd7397687d79e2edf0e2b6e088968a8e3f2ef39571b62c95b7b04b96fe51e851376d12096669ec7102a3322662e8512302105ba8e13e7e0762a62281740a9189fe46d2f0ec40fa087c9b34e327a3418b9166aa37e4334da4419f561baabf6d0dd2907379172dc77c1cb1c8b9887b7ef51c05d7655100f6d1ced9f1bdb39abe66bf664bb1f5dd6139e732516d3996a6c59300654fd4f5c8f588fa806342f1735e5a5a4da99f209ce0182b994add31e6846a5fb712bb9f2fdeb0a45c6c4193818d5c4cdb9db1345abc11ff70f05c2211230c82c42cd5eee126efa4fe06b5ecba87cba210f0c414e8ab0553ce07d172b78b743bcc8926c62b990699d1caf07dc56528852c11eeca6fc68471a63f5db4787185ae4c97730bfd0665948612f3f713068c3bea07bb4cb4467305f3268a21a70b911ad6fa79981795eb414f8364312c6d0ed9113ad974b251396998a87d0e28453a99d4941d1523fd49d274b48523f6392d6413b4ccd02cb2efe79f06824047dc78e7ad6605861f671831b46eb641533e25fe4dfdcc9916b65b81451533a5c2314b5e7a1ef8f7dd358e0775bab12116b23170f45e3c5eba05349cb5bb30880921bdfcb6aeaf6449715a1b463f915d2a20a317e4e45c26642a15bf0ff37c30bd14468b57f6aa42518cf80994c304a10f9ef39628cf11194671e561b08bbffd5b57368dd4c6c4ac955a15aab61270880ec3d31371f364c93f77f4ef9fd95d65a8c83cfc61bdd7a5771fbfc33b4d86c4debb07d06188912e3cede25f8edb5fd129ef529d43f5d4b8a484126b516f974186aa2e442642410701084e0345ca4c3ff4836689155e024e1cdaa2add7699568e0071c069926eef3ef5ba398279dc231c3408d653daea4667a3e263e51a2dd988d021f968e5fd3e619b6755309b1970fab7613da5570250a05491d005997af1fbb2e2fa78b76ec0882a1cf9a82939a5b861b18185ca95a374e0d5f6323bd6e08e70ff6422e1a23e98c5eb0aede9b46e6b72d68fe53a1ba1263b04f84288b08d2f7efacea2149c71d38d1c3e979de712f2dc4a10af1eb1a2215ea4b93d586e192067f7e4bfb93ec175297cfaed9ca4d484ae13b5cf845b99bd9698590de1a4754361135ba6133e63a84f39b86f98c23d552060494455be6cf955da433e90166edce14c4fd54e5e973c8138dbba6a4f401b8d2e7200799e982630ed8888aba709d277c39416eb3c336b01668b2d05c3ec716038f37f247e58e0b5f58dad013394a0b4d780559acdc1d58a406cb8786f84aba9cb00a320ad6da48d72d59a2a57ad14d092453cc73249ad2f62a012f7dc386e586148a3fdc7782e68346a3ed3f66566a7808ec13066ca1dce98438cb22059928b43b2b128a45579a9028edbe3510b21896494f30914d04c19f8494e103da1f5312b0362f83ac8674d81a9808cea5780e43a3d63b02bc1870b9e49b615bc5323ea1a04316e1912896090a0050adadb9955b51e6a1c043f34858d062e89a87cb57949a4056526b5498e7a11584f41349f0424d24e2dddd2c4d66b103074da3e98ec0540c23f2c9fa7e5c61f9769a7f29e92b2ebfa1516a08c65980ad49100b8baf9ecdf20f090daa3db304f36a073f80dc7fd7d71dc3ac0c84991092709b88257f064a3a7456fff40084844f23c5832477848c524cc4ac87c454854823c677fd6ac80b1f7bc628dc6bbba06a54ca090f9ea36b4b37b2952e8095cbe3ec507fa9077ac372e258fb2100f5578da8ad844fc972fa0c791f74901bc30b5f97f1eade15471560e5417f274701966af7f7e8e77b48cbf1dc8d4473fe714be2cea741146baa2222a630f06c9e6a3428f0ecc8dc03d3f0a61d123c3246a374c984e40da84ce89a0b91601ed84982bc92f7727e58bfcbca8ae85f89748b46a3ed4592aeb6c64de4d79fd0e70a8d5a843380e30d9ab5d2cb59ade831555b4ddf044035287b102cae0b49331b753c7ff2dd6dcac2af8aadc13f1c6b3c542a409810f3211df0c3b0f5ac326070f5111891e3e2da4de83740fa0bce8bb8fc84899888e065128c75a0242662a653326b25909f3233709bb7dc2058afc1d2e7cf4339fc589d336ad9e1c9c31ca2373c38d98fc930b71ef26c56b1ceed7f8010f2dbe08d3f5b405f47d3fb1490ee21ecfdcdd274530ef588d17d489eda4e071b76b2fd3020d9ba22da21d2c1b6f301f58835558a22eb6aa12dccbbfdac0c45e476d81a4fa3ed9ddd2c0b75ba45f7f70a6937795b86a5011b920e73456984473ff0f0c3edfede075ac791f50744fc299dd0c4b051bc1ef8a8511ebb1cb9b1bb4f2954fe8090741f663de1c5fb813febb287bc84c9561c270663690d68411d73aa6456f93c9af7135fe8a52051e11e4410611b63f43151aa2968a8a298a38261028d2f572bb13b287743f78b8dd568f3a0441167449ff4d26281ca99e3b21b8f100cd9d485bd00f951bda2b796a0b32f5cc1951f8baaa04ebda81b5ef80f6480d7f52cf54e3ec1b5b85e14f9b2167d8d2a4a695643b4096cd0500919fa5614ccd510e9e4f328a4da7d443e40497c98517ea280e2288d2dbea1fb0423a842b4ac4455d80f71bfaf2c327340c8eb586a52c620c2b5eea225d8a90beb628534b2527c531ed1033105295440e616d59b0d47225607b7546c3930f444cf45d59fec23ade50a4d3ae42e5d69a0d15af6c7b81bece686de7a5a6eff26d3244623e8fcee86d4a836abee3c3afd480d735a40137afede961f4d8c3a494985f18641845a99b3a40b701d7100bdb443b0b5c61563283d551a3ccb8da5f9a56804a8aa0309dc7ad5e962d5ab7bbad81ffcd97626c60d1dd34ff6ad8b4855aa9e35bf318bc5d5fad1f546adac970a9d84352d872d7718097587e918017d9e9e5f30d6c2c3ddbea3f1ccae0a61c6019fb3b83076c2b5cc42fc70cadfe771d19b059102e08803ea70e4a37680817b1dd61562e12280517fd4381f48050ea11e4a74a332c92a9f0049343d16cb862b9873f0936ba1665bca132ca9008155d09ceb58423e9a687b98f1a8c395098884725b7b0ea5dc1345ed62ab9e317b56a9249e00291456c5362ccaf72f0f015d094df0a683f11a1182e91008b064329e20960013f80e59ce1db94135d2d189682bf5582d4a42995f08a7cdb4c81d3eb17282a03acebb9e9a2937bb1462da1b2167e98ba1c9d36c301c858c8490633f96bf44ffbce428b1da2cc0cf3d40c4d0e098345a05c4976058130e57408464836366888e8ac02b9edd65a6c090f749c5aa873e710c85402e9d0466397af0b0031987e19489b9fd374a91de28323d1012f994decb67cecf576b3076df1b7f964ae0b8b115f2bdbc77d087622b8832ad210e30a3a904927dfb9c7395ae1fb68279e890189b26d06ad547ac063186f061c803118fc164d1aba5fef80e414cc2b3115fbe93a8764871dbc57a769866815b28562cf9e7b2a428eb80d13fb2d33e0d01a7bd53583429988f3538385fab803806d0054e8a9bced69abdb85d35aedb7ce3b5627445d72e0612cc50492d3df60dd9b7bc3ea82f70d2879ce3e0aa3e68968d629a49c269f254cb672f622c81dfe456141ce5cb0a1e74856aa02c9fca452c58168ff05049fd0b1c03ddebf82276abf1255adb9b98a636add200ce88d483548704cbaeaa14d8068907cb7e8c469cf54a36b9294fb88d962dafb9395019569e98d383442cf55c7455945117b40a3c1dc9b55384b3644e62819ed0785199382d3c6745d8d7a105b94690b8c9de4a3b845de3d9f7d2c4b57644b96a595fce0f385a6e65d09fe7ad654804c2c9fd30145600984b40c101a0ca621b929410807290943b00c6e351b6a20a4449d469b4f7c72709f0c48a30b383927c9c9125088cc0041ed9cc559d0486114c51dc7bb4e7b614080e74228815b955b5802f22f78725788b56f9baaea58cf08d539ba3a5693155c1a091966b42279174573d05ba469ddd66c3142523348b999a2d957e61a24a54105c835b9ea27dd6a6baa512c98e6a89feff92dbe322d3eb682c6aa480a70eb1a5d82d26becf89e9d27a7180dd8576b3269fff3caac07fad050a4a32c90d0d956810d03b221096642c7ff51eb3e08624ac513109941e6ca974c06b9df3c5e5203912f2f431854a867f44794e13a486290f48086413c248cafec581a03012be7ff6880421848dc95e99a0f8f712a035d9d4502e1b60843638e2657e7057f05dd8bb91d3bba27fd6789cff2e1728d0cd7f7840044684bffa863bc861f7c0082cf4148e8bb2cfad91160193ddb2af0778b88b180bcdd57cad263ae5d718274b190599773dc1e41592579a25375ffb5038049bf1f172a3a1ff24a3a5361e6027189d410c0ed7975cbe16c19f586c90ebbf065891de087a5e0c9f271a6677cb3e68e8a24852939af32d140a41b48308302a54aa7d441217dbbbfa3409eac09b925ffb203fbca9d9364305c1d84eac78ba75f39f733ed67d01c37291935ebcd232557401823ffd927d45c43b4ea67993935d9de0f4f280679ea8a0c7e66a3f773c24f76a411c169c8e5b106f0e3811efaa98633a35a36b04317e03fe8f9cfe93f63cd96998b730463aaeb5f750ec23ec6b2f1f4d56331493ca670dea2d8a936950b85a7829825a0057736cc38f1ac275e6f5a22f30a09da048e947a9fdc21db6a1e3d5688c30954c7cd0d35fa67b5c2c2d4c25d743eadcdd892bdbb91928b1dce84ac4d66f3753109c757604102b9516ba98700bb0b8e84095323d0f9a1eb7eee72e802ec204788403e41b261e9435bb2e54dbb3e20c3c5bcf997101968b2a6d816a204890fd79a6db18e072242f3f207764d2f38cb755d5f152839ea706f007f73cc55e059a6bcdad55adb17661ab21d3c687ca51b23615b84b6b6e52457bb45f8b06ec50121bf4c9fe5cd29ee777a700cd59b53795d19a0d3b330c8d49dc97cf68cb8d5d79104e926fd68a1e98c5b246cbd0a3cc3846f210b7a24f654507f5594c9a21d88c814b332067345b8cb813933d69b364e8684227097c3e36f0fcc7a8cadbd5343e3dabc488fd1e6cf4891d02a36156153b7f71edcb672017b54cd55d5594053e2df5fb6dba113c106b4b01ff46e19406e26c6713c658640c3d5d36d7fb00f2b1b7beee9c432cd0910140876990c4b5ccd03854811e970d3aa1950a80fcaf7de6c52bf6f2e9312fc4182fbbdd7626f0529109ee40c8d17ea810cb84dc984fb0814e5047210a182169522d49ed98b6b4e9aacb4c46f08566da69881d58da2faff13384cb9d929e79eec8d2007e1c2a9687e9e09b0f16915d398587adbbb518237da92190d15f42d1b4f57dd0a94b7aab1303f36ba4fe7f56fed0fe1d947897e08e648578db58e89669a18609f6eba5205c4acac5bca577ea335004f62601644065051c0886c7ce4a8822c2bf3e368e76e22433a917c9428811c9e3fe037ea6b20348eaf19e724319f64e4ad893ed1927bda0cea79632d2866f171dfac4550ce96a537189c0e8627c5f89380e9a8832a52291060f4cb800472e04cf222c706a8857651d736aff7457b0d9ab70387f04a4a40b276d194e38c2e585583f850ce9060807ef318d9fe3c7c15fabc7211b884c387706cdb652849b71f360b8af39e26bd6764df300ac66e430164ff3ecc2e35ac05b257882694516d61b51ee5aa12d019b32875e2e8392819f54879f832d62bf071623eb89a6fa2840b484ec038753679025934e09e502b013d0a49827c70f6f9e7b9d2b9b0f3fd3b338f8642eb656550e71c1d282be86d12cfefb53f23dc9c51e01a6ab206b6fb77231f834d5a7aed253c215555c13c31556950232b0a5853fe7eb4746a4a71e38d9826d2c9f5f1ff98f09fa1b01017738d6aa4f1e14588800f4db4afe5ca237697d067e6905c5162cbe4a3dc965a7d868b9b300847cc71220ef52e88b49ea8eb1a9025f59ec254db2e8d566f33ba520d6b25c6c92ca4da5665c0ef57beac460caec23062f68102857d2416f78af08af009e6e5e6791ad2f1ed783057570c8ba5146ba2ce78cc9439bc0b444b0ba2f6d6c9836be6e6dfa58529d7e82f45004f4e2355e356f0509d3e93cec9ea762c5c8bab9ad8957445c74f0e7784d761607e4d790f2a88c9b351b6b95762188c8e38594ad403d53c92c5fa627ae976d8db28c8189dc9f9ca6d04d0fe4ed475bc068eb3009e0070bfa7cf5475968aa56d74c701e53238079b090b9bef0e15331c2a1256e13694ecaef4cf0d24b16d3cc64a06851b44c952813227e3125b6113d9f4969b900dec9261a764e755d286043c10ab3c125351ea6791cf59cc200838fd120657b2ec750d0026c3ce104b6779802436fe4785166f4c25db48a1b95240c26639aad0b0bbca654705fc5a03d5fe8c3b0f15a0dccf8e1609165c8ad35bb0fdc9619642610d44143a9b4b17687a425cc3f50ae9952b679f38fe4bff9ddc7ab03bf9324084eb3462dcabed95cfccca0519d26f6b8b65774b35a685d8d4dd42b0718b71955823253e8f407aa0a54a26697c1b995ef613cb9095d6d9f9e8ce16bf616be8786435549c4e5cf1cdd7eb5de1b402d755bc101e2b1bb60221c118ea1c0ce778ff143c9043565c4a9d768e87cbd7fbfa24c7eaa6a53b52b5b086ec3a6a6d601994b92b610f83796a234a0d66d949266645f4f9d5a5151be0d24134c32e966db60ae4e95914d699dc5867c7346cb574334be9f2a4f72f103c4f0bc7fc59ac12389642bae1aed6900e79e2fc68cc6b9b1a3feb91d6b3403f2fd178c5ec248a787e1f16960e2230cfc313c6a830cd2173318dc6e1741cf63c47fab74f301c5451a11aa8978d20b1d4cef137201359a3b59b0c5a731466f32170efe96e60f71215a87b5fc50d463464a5e2ad2d20e5649b68d26b2c20ef48aca8185fdabc396e6d40189392544e8871d07711a580adcd72ec8b155cca18323034efaa9b750666a8caa212dfb738a851f53368c2f76fe9c902b712054d03958cb20df264485614e621394131ae0b97b87a860df85d4e96199f5e7b3cf97544d2621e8a624b8eeaa281b8751d02e85244ff398e86dfaf4df5afa565383b988c7fc30084ac7713bf47cbcf8d0201451c4239c951336d9f11d549f637f3698bf9e2a68152b4c6d5b08b31470b39c2fdb32b6d1f68d032a1e9e1c9907d75001186a1f27e2c222ac4b6b309788217a019c013a6bc75cb4c29b80c34ddca89851b793f34c19f614925aca9822125a58bb2a614151893b50a56d4f2195cbdc89d99dc74f9c4eb91f4f19383b7fc1c48314e818f125bff61fc56199256e449a33012b2b159b7114600f92f0724ea10a00a61b886bf19c19c6c5fdaab2867b63cee1b85b8c3bda8d5df16773a8b33ac4f03e565d5585d43d08fe9a25e452f926c2485fb0ae605307aa46eb76c2d5dd60ba4613bde154dee729da8562a35ab8ab24ef00a8fb1dc59d8913122c71bdd3ac869bd199f440da206d24b2fa09c36232a4c67255143063d5b04fc4e3a44107cd4114020bdac2a69b5a955000427beec77ef324c25c2241d9eaa5c7148c0a40e3c1610c0083ab09912e3f0e2848524acc24f74473624190225bf3f37c2da82c1d7707d170ebfc4d2b7127adb8c3201c5d9111123c2610aa7a65098aea6821c8f2110636f376324ae1e8cebab191290281f966ed0c95a85a9cc0c65be7ef97be307b55f29ad6eb685e419b2ddcbdc229eb5a886d8161ff0ad35cbb25e915c3c0cb44eefb4996be40a44a7c0692c3dbb61985f647413582f730d97744559ddc5515d8a8c0625d2855b4aae30e98e3eda353bd6d1d8c9086c0ebbad84ae5c7adef36834a700f8cc19696b629171d941e22e5e2c426a2a3ca6aacbf186886153a126afc0d83fd10680984e4b3c60ecd0bbfb9336f9ac1d8fa334d8670a2291f9cd3c8f6396dded6eeef984f269887c8c0ae2191bf5aee7990a62ea8a9009d36f6879a40a42e15edbaea6ea7627cd752608da14eab9b76929b084a22bbce092516552a0aa67391a3bd626e0f73d6b3a61438c469f930b6d5dd4650f03dad68b3d692b7906b7894ecad23acf815d06bcce5cd7e4a6f10a87ce2bdca53465d9ac835b45774d0ee4b37c75236b7d6ae6e56423ec9e0ae509ec607129feb6318bb48f123f7544e7af03f3b3a26c25361dc256a49593c73911bb5206ecbe47c61a44c0c527ad4cce2c0bfce6d60a1783f21dbfeb944ffcf5ddd088e7bbab5fcbf9e048344841b0bf01893c5dd62d9c6afcf5369cc15c23d916a353f81801da29b9b33a3b1c3b97b2b9e20e6acfc6b5eb31747edeef9f0b3b84cc795dc7d866111b712e9abd06b00162379835856082c86885bff902c619cbf49925338761818b879db3a49199569634bab2e18c1fd49c025dfd977996de6a8b96e3997afe16c491f8203b36602e6045a53d0103cfa00467e6f6927602d56e036d7d424ec52cc4e059f288d9a73626433e238f8595d421cd1cfbef9e595e21e910b71e32fb17e55acd9c447a555e1735d70e368cfe68d2c423593153313fc4e97aa078fcb54305ea69275ea78170d28dbac80f8da2ea6b806f8de247db95ae5908f24f4028f7f29d37fca7338d521c9ca95e9e24834a2f5d4be620c1a7dc1be13671fb0972ad79e44e9516c48f66c4b9d1618956e367ecf73b758d91880fd83a40ecf5321ac99dcec8b26b133a1f53809797860a8b88dc7ab251590fb73ac66c50cc37a0eac5490b82768bf3304c2a9caf122c557b1caf226384baa1d681bf36a1506263ed6222249056d8da8b239a8669c2fc9528cd0874a6b3cfb6c218e5420c90401ea1b2bc653e9083e58afb253561c1ef2f45fd6bfab2de74a9bf28592fb25b36f14f0037bc09d1a7e7d6ee9bfcf4a9d0520b7fc775a0dbe82367a5dd4d3fd9a48e8c50060722ee38d8131023eb524e5682bfce93f33e6af094af61a36bff6e5ab59f953a3012c0d49e78fa8358b97c7593038d10a31e2cc05e3248ab025178ee96b3c53bcf3ff0bd78108e50bc79aab08da780e8629945e735313e79e86940e823d3d38e62e457594f8662e56bee98414a12ce3e6c590c6cc2241f1862245f01bb2a76fd71c95a40854d35357bc52b26b1850e85ec9db5ad90a5528733f0db0c90d0dce2a483cc04388f877b1ea6ccc766dbe65ae34f25d14a047a4c817b35ff601530c8d56be83dc067dca0c999d918c9fe0930aaf548d3b0a1ad15369d71eb88d592e6d417c0ee62b7f28d72659c51a37558377a101b6ad5400edc3d9c392b27d6b1f4840b160cb43d84532b28ee9daca59ac646064c20b41e0a9d5c323a8417d748bb7983c942ceaca4eeced4931dabb60a0560ecfaf9bfb7ac03a495cdc8d52315b7ba2fc10c13e92e36eaf7fabf198e3ab5fb2adf392666e21e640daffed0837fe2175db44ff1e82b421a076c0d80286cdcfe1bf796a80a81c9a3caa18a8620036987129e3b68806e0bed373f02c9e74365e12a354b132a1c832a388683e84d8d2e19d715a2947a042b3ef1051a0cf1036a3b8d4dd04311786bf6d6e8e623af67d654e4afcd031e5c5a6b64924fa74b9697f35802313e24c9ce39539149879e6488a8924dc822c55f2115f603a40c46fbf20019952c2019f9b0bd8e4c0ce3298256f683326529407b4028a5801cf422daa6fa558be1807ccb28757b2d1da6b32f47d6a5008cb8b5e658f264065ed091e04a6b371284735531346039f7cd4e4b4c101369ddf21040a4993fc23354e381029ee70fb8e9f1ee1027db85c96e7072797a89e1a9a6af4fe68a2388282b73061066cb5fb234aab7e7140aa102fe7ab96984598c70f964063eb34d09cf76d8e335197ff38b7b6686e7575a43ae5ae1820297186136a4cbda1b993cbc6e7dcb61e07895dce0087bdecb766ce68abf55ece579da1557765c6676570e9e278eb11bb6ee56b8440e7bd7706b0f05146faed5cb1faa1fd952c9b4d02f76626d0d7fc4cdf3f113cefd65efe5402aa6053f0062aeb4c6b75520c605e80123742e044dc1a2369ad7c689e8027ac7d124988d8bbf4027d95bc8966ff582417d4e349abed62145d05bdcac6c6d310993f85a85dba7157360684c98297853141f1539cc5df23bd6adbe5f9b0f6870e4b6d7e56a79fc214795424885603280a3d7372a2b8c0c044d19b07060ade3bd2d9e00a77ef347c607b4d6876de2fa3f96a87e889fee46ff308785366784972712fa87c4dc0e1b95438c6d172ebd9431bfa6f221d302e0c9f1ec0c38cd64878aebc83ce23f55e53a75ed7a0ad5820a70e2fdebc001329046be8a3bc888286d9118faf19a6c9604365b930f87cea636c0ad90599dc8feeb969ffbe628d4f9ae876958f5746e6b2077e78d64c588215023d07ba5f71a6a20625f6b436c120050af64fd5f09525e0d3d4b6165ed32bee42f46c383c617ea32bb5b0b3b02990baa09dee6e1f6cbe8bc45f7752bef06490772361cc19f2d1c9c73ec48e8515c9723cff7c325f68531176d5e3b7a99c7c8fa08abae3b327756fc6a9d5d8f41b846bee3d399d61332ac5a16b3972d2a036de83f2330938f1dc2791d03d99be6f939275179440923bb6411d237273c355cad002d92ecf635107c80197c648c7203a696ddb5264aede0fc400755ed34f78a074dec43a844638068056f75b517c2c2377beb0f41154ad7220c169fe6d0ce2b69855d07a321fee0cec356065cdaa5d5aaca4cb692e9cd6694122a6747b461990b61aa141842fa6c01ab53ce94f34673f59aade5cf8e8c204e526264c1acaec510bdc0a631f0106f315561f771ee7efca90b43fd85e577a438508c3f3376199909298cf94c1bed6cdd301971056e560d64b2ca12f962ca506af443ff1c1c4967b5714baf61281401d871ed397c295778a7e1253cd26a728ed6458c1ba28fb705ae4d711b104519cce4904a8845b7fbd9702e67a1a40e1b5684a7cdf06afcc026110f5d87f789ee5dcf37e6bc5a2937f7097183a9b4fb48dfdaaa5e2d37c1bb23e29c8ccd64d4e099af79e45a8bbee9a816f692ce0950feab93a94d6501f2524462b37bfa05e39e2f79d0c3d4fbf2871f85d297f0c042d909ece62c1a955da8fa30d2e981a73850582455c585ac3c8e550eef816ad12dc37fa5526ce3f630f0535a82ef14a2d04e96b63f5e603ba0bd05cc1581805ffc511340b9c7d3ef786892d98498e0658c2b5ee10d111ee9e8a6ba5bf23d6c4a45b2c63da568d6ce593a972e9cbce18cba85ea082ce8f9f0e04377fd13f9be64467422c133d2a57839d0817d2090dd9272a81fb23ecf38114fd4a65cb26da09c592453af4949b8172268734e2e18b8bf67ebfe1232d901eee3ee4420263a183f99e1b1cd188646d1906372fd841be6b47455b013c07306ce1a0f325fe4ce045ac7a980a539fb4a9d3928c7a8d546811ac576eb66b31ca582e3ad5ca059ed22912c8b4ea034df88da22b9d1692298468a71eb781750bed38599c59a8355d18a3c70261dc6b9cdf02b42f65c8e2fb94cdeca52a7b5959578bd0c3abd09cb0077fb70dc2bfb0810ad507427b705c7e8ebbcebdc9b04dc25cd3fe287693d28e13e025009f39d07e9138118cf506791f5f7cbc755135add2dbdf0bdecb4df225f64d6e5e37248c72ce86d6ffad1960ee93d7b0534d1d130d825ce854e838cea81d6e36c500cdc623c8217b9a037c3a1de1eead1423940fe85087b59231a2fba265fea542967f7a48582cbd9182a8a4962f7a4c542982cb5244f4706595121273d23c3b60f25409ae6908b0c8f96ac6defe43ec890e0236171ce36d596c95aa572705e53475aed62c18f3602285c80d21cd8d01b6ed6e00d21180aa07e49866d1b23382a386a859e4368a9210da841b5f6ac0fa5388f7707b3a7ee5c31377aa6c1bdfd0181563ed95361631d8b63b9b80d7c4f0121ba4a1bc11b12864dd0b1ba553fbae38842710167cd7ab7920ed2f4164f1512534b6c5288e5cff3d57c9116f1c2d37ecd9c33e10498b0c44b2e0755cf46be3b4d2c935eb380a133a8244b4c38593edb19e8bca95afa7e22ab1b7a415e83df2c3120172c134661a1fceb3ea842163d88c372260be44452233a1f9c08721dd80b24311e04a2219ec3f8f7f295726e250bdf6a1d6681b9534ccd4afd25850209db0a4ee16173974b50627ba081ce7de034531f05018a521d8b23bf723245975255a164955ce48345821988e2bb164bea13da5703ebf9af466918afdbb33f8e8e64d6f823ee2c17db3879343142626f769c4456d6a52d0258cd4f19e68df96772e1c18a6aef1d73c0943331e1233c8e2f5f5c78b90a94207c8cbf7fc8ae980eacfb485dd89e7fa1fbfe5af2443941a004e50210568d2a686e15b1d849acf56f8d581859af4d5d8ea7e8bbc3bef78f09b1275d9ec7dca2669c0c9a6d7b202bd0d107e6da5d5f5743dd85b2a35fed2c0c865112af1caaf737285d09b63f2f22db0fb19410e526bf1863869c4eb0d8561ad5e5d0f1b481917ea97f9bee50f5dc9743d7582a9009c39b59da5aacbb9097a2e79b4816d289be2678a952cd1307a60d8d10bae69f0583a03bb938c126c0be5189a1988a4c064bdff4264dc24573c24a8e8fd394e4c11bdae6e76fca75345a2e50c932bb28745028ce2d8679daf5ae7c65d0798f4b7582cd212e14f54b3101ccee3fc6942d6d541ad3a42668ddb7233db9297df16ff97f18fa153cbc9632a6c2f999903488811618511572ed6f5488ee7f16d92f7265000a1a87c0583f8bc02f8fb40019d69bff90aa5c6bb29332f0bb8588cac9014b3290b531e1fbecce3aaabec033b284563fe53452161de07c2c6de6d0e730d30ec308f0e205c2311447b215c08c30c82a0cd11e0a48b5f605c9f87bae3ea34b20334e27f32c5d105c76bda2a865b391031f165b4d5d519866ded8da5a2ab5e825ae164b79849cfad64bce629d69fba26029a58a5ec39f720cc1ef2d66ddf9c82d492890db38bee39ce4dd9aa2c4ed2543fc1c21d68d906f3addcf6fecd5bf3447b488c51204c2c9ba4c0747594b8c297df3b358c87e0da4e12ea98bb4fac9db3f45b205ad256a7c6295da86b566177a56cb71956e80f844da9e0cfddeb8943b8fa995b3f2d1fcfe75265b83b0b9092a422e3200222c90291606953d00a5ceb1734c17d1d5f3a5d4ab325e5c4f8f35a6eb7b953b539a8b62dc08211898454240553f014fde7d0c21be7f5094fec232f68fb52b577c1f18239703ebe31978165aa4f83fd22ea809e1d91094913f3cbe355945d230e103c24aa0e9678bfd615525fe070ff2cb48d8afb04d6b8da6115663890a11fd78500b73991d332cdeb296eb145d41c74d57c39d52c6a87604257a1b2f595843a6cc44fc6f3ec21936d25bf0638ad9b123d44b80c971ee788857cff5226a0ba28c7a28ad090b23682260a1afeaddc98676d5d384b262d3c30c0adfe476051ea6c905eee2bc72763e31dc16940a4b39248a02d218f978a2329b14d5a51cd9b5f4beab9d85b51509bd5cf27419253a154519c4b653a0c6b64476242c081921fb0ad30d6b4552a6c30f5408d047885a94cc624d7487f595ab79cfdb4e1166e9675703a94822a4488c813603c597ef24c47990cb6eccc300bb1039fa66889d6e14b5481fbc922502c67d9e4473e3d3f10b6cd76c561659e9b3be87313b8eb18fab3bbd92840f5c12376ba05c67315705ae6a674c13dc871dd7168ba48214ae34d9ed0857830c814f9a8bff24537ca177df5e49fd870dffd1bf009cd2b73885257bcb202930ef993527ea525c2f9e1b3007a2a5cdf854e8f40327882e327f294476d4d4cb32dcb023f68bb2e4164229489e605d5a4dd321b96ac88b9f47ec40ff4ea823171384c65d8b9120482484ac111ca5d5cf2e38abeb0654fecefe82715fcb501fd3f069ecabd8f4c1dd066c7de86a02f6414797881c11fafd53f4f5c84cee33d9b7b3fbd8f9537ad9f6e24f71841a8ad5b6ebab2ecdbc2c982a080e3e74d05793cdb14bc492394bec62081a06fdc46d2438561ff0d01f0a0baf311da913d617cef974def62c7f3507759765f6af50abe86756d92df0a9ad1ed2dacd8c4a6d24910ea9513115a00b3de408da886cfc957bc013d7d925697e53358aada50c0e658308d155855ba1862a393b7fbc4c54266cd0a4ed12949a4a3ea711e7f6d6c65425c5eed903b7de29d95c4021052496d6fcad42922a189e9d55b5471a06fd8c886260c9ad41d5b1d34e361ac4d858e1d664600365f520fad1239ac364616e80b6f32b9f665a3a2d5a6099004e77df1df242130051e809722fb211def4edddf205001c1b87a969bda0251810912b052cacac5e1353af1b45e87b371d97b681e9628282e273ffe90c83804f4cbaef5e220f3c22ab376fbf93d290468d983e089ac5c5bd21dd12de96d2ce396df998070a6260c007a52046eb4ce6c487fffe68c13594a42cc8843e341cfb750a672ba5400e6835fa6988ce0a88272492e2377d90cb14997e8ddc3b00452f1396414b53214eedf1adf195f4ca39502fce0726a7bf071c95eaf6bf3c3a343a92f3f76ad91a8529adc852c109b7f1cc68ec4d8c0cfc55790c6f7d601b133317b5f52da4e8a693b8e7f6ffec46eb4f747047207ea5a56eba2b752caa0f2eff424b7499be8f4a4819352afce0010b29e269e5a20c33362ad7ed2610793695d1c1b03c7033cfd79598f53c8ddb52e022a67f60cf8a0e718be9dc471bfb03c0ee6180c6c3683c04ee228868f745de550b6dd0ca8427150b602ad75529440028fc5a0c115955e0be1e40a53b3fc56135a1ae366833df3b7742c171e1f386ae9b4662ca3045dd93e76641964d826d99856790a72084251e536c71cc2a9f4623ec83568dc523be41639122d311996ec5fb2f322d4e552bead67881828af8985fc1cca57ea82ce6c80ea59c6115b822e3d45293c77d403a4907823e1749ba3a87b5b55ede03b6db5c9ddadea4e0cdd7e61d022b17168cb6247d7a42d3d4c9276eac07f3f04475d81473add21d441b2aff0e2b8d681c816a1a4205b42ea0fe8587be486151bd31e1229eea8441dd4ac9c58fd6c40d01f6948e21ca533295d4d091d2035a660fc4ccbd3c2c233d0510a2d5fe6c723566b5c93e5a8f743d4a76765a0d38b4312ef8e20a78c629118af5c3be487b07df71ce1d2d82b94b2408e6a0946282c40867387ecc7a648a5729ba9fd76bbb42e436cf7e177088728c4f0139d2ae21f8f403da53da99612dc69509b5c0eee612006b688b2201a06d88094485aa2ce4aaa715b3f46d4bb6932f156c649fc0c2727d3aaeb0950f8ed5611bb0b5212781349d3aea4583b9e264c7ae0c34220b0df1c500c5de1084cda5c635cb971a6676981b613556be99176f648599924480a4d018c90885821e674de9a0256debb52a5e116d3892b8f04161a2d80d164acf62e49374f7d1371fd1b73e29e0e4180d405b58da6a201863679df491a7f458e24804bb1b54e25f0825a48897a749ad7fdb364bea28a97b05fb6d15a92da868c4c619db36ef5651f81aafd1fed2c8263dbe381319e433ec784df83a28994c1d999c2b9a6de83d389174a2f1269bda05b6bdaafd7baec4922887692567a0dcc1962077367f9be43bef64bdaa3b74fece396b11446936e1bc4a478e63ac0f47df3fc0348d2f566f85a00736e2ab7f818be6520e0095388d2521ba0a9eddb7e073f0e9b81593c831ff91b42b448b0c027cfc9f386e1f30b1a90aabf849e0448ab9199ea27022e9e028d1c2f546b7996dbde7c827aaf7a772592aa3e3fe82da4919fba0bf32e22ac5a43880beca9e4fcd91126509db19bba556d9709a4a05e54a5047434f5d4659812e780052511fb8bafee66457dd9e0b50873a002617ab74f29654e9f14240a14f9b907c4e153d06ded5ceffd53dba59450753d9f0795692d2e58c5563e37143de40c45538b8b6ea1fe8f506367b81f2d45b8e82924e456e0a4af4e5e17a7a39176c2072924564578f214584708e812605f27a2908b9fc6db8edd4a674460ea91e1ac86c7474791f5199b5b118710a966919da0c2c244fa0840451636112a239fc0d7c2dad93913eefb18241573e1d3f1d8771ef770d32779e0af9bbba4f4f5f292a58c0a609bf612be9c754ecfb9f3c238499bd720a610efc64ff798c415e184a5a81ba301cda36f6ef71580db41043cb9db431552f5e9b5bad697aaef503cb7f5c3649754779281677728e54af857af7a216e02f92b086d072103a48c4eebfb8c1062d14833c6f8da4ce70b2cf7bee8456d5b95a40a7529f6d9975823fbf3bd3b806078cc26445747dd0c2bd73095f5a49ac26fa7de4888ffcfd5ff8ce720d69f75acbb629d4dde857a3d3a52ac9f172029c7ece4e0f28bf9befc01d85da9fdc2b3ff6b9de7d17ea41c1bd860adbc9ade00f2fd852d39a53997ea685793dea37ad829ac3e6ffc2d671db288f24e67c0e2b254da36466bc95a2ad070504c0d72abd6619d0a7b9d4476f32b6f96f8f38ac7d3a41d34e06339b8bed1e1fad34264fd790fcd7075e994a9a693022ee42aa1cc26fa74f8d7243eac22721276d7de0aeafb2a1d96f1edcf6b46843c1a16e488eba2fc2709cb1fbb31668d18da039e62e2158f7e8d72fa110dbd4046d290b32855a5ef553a36f27bd6b14d41b5910feec5db11bb26dd62ff0d9d7a26da5cc048041164554634b51920db6a7ae2bbe2794735285dca2ccd858f25a47457448612255fe1d8e8e775e725d230a9cb2315ac1138064932d1d0d6f4d420730d9fc1c12b98ec929c69eb3796e9a657cccbd8c1320d718b7715508a8b8e3ecca1fec354bac3a74caee634a031930004757ba86774269eeeba16d0096cf90c95407f223a1f6e50ee1f0f2af4839ed1e1a7d5a57fab338fe7fd853825fb68a17d7f948ad046ceb58fb4d75f40738a40034cb096ae847d6316ee635a9b822fc6254852e4d29c68d3da87d9a9de147c1f3b3430d710b719682c69b6b98102214ade16f06d0f83fdca8cc855c53dacb615fa285cbd879d7809480fb03d6c9f887efe569b6db946339ed80e967e7b7b78d2736caa5035979f360154750528c746e6ca12f700d23e9448f1462b05a384a7551b649f17436402ef3f7342df162ae3323c46750bb639908b07c14fde60647d4ded4ff48447b4dfa216c994f6decfc654548f31415f4c8dcc910cf1aea87917c97b6e6dd84b2fff5d57716aac56a21c872aa6c0da83ae85b23c3ce0f73dae72eba8841cf7cff78a264355bd7fc7884e857b72d7d303c61c1af2f0b524908512e6f8c0fa639d60c6ef2157d7fa214acdafd08e8bec81aa58091bdda302ebe4040bb369811b2bbc8dcb8f2c1474c0e4676491f058ddfe4cddd6c46de75f56ac5a3b13979456ec72c73efef2d10c04ed2a8783079b7395957d1282fe3499377c8327cdc3faf275eba54b23c87b34a05f96a8206a961194722f1ca34f26f1f864efe18f9c114e090dba416600f2e4721e8373d3dbe8f719f2b44fa0c71d41a894c039352c7d46b3c83607865d695e39e9555b105e614a4be66321b64024dbc115fbee2ce8b075b43f026885d9556342a57b29f979803d7f16544500228a2eb1b0bdfd1392415b5e3b1ab03d0ae22324a70cf1cd19938b94da60954b15abb20761aa171514512ea1e6844f8d43d5b1d6ded6abd6446aff033853f5092cc2dac56d24f90e48ee6a505e2336af2363f86f1bf4451ea55af5422440e33024e4f9385537a88ff9d9e23f20b7ecd44429946c37db4999f572904fbdb2a2ba8ffd2f7bcaf6e63224920100a905e1172b192d375556776b367a4f29cd0fb9070f783b79905ad0050f615e0321f6818c67b79e8e676effa27e0b95f5506ae0affafd03193afc8ae3df265d110da23159fe1b8e8803fe18ef71dedd3894ea1cbfa369d79176431628a159f16a4e0b3adc2c3db86948489fe03150affd6069195ec21ed07bdd30323494a816db000f0b5ca884e8a392609d841c2de2fbd95cfadaa5550f2661fc3b4b2e9803b1020f10cef430fa4f2470ac6fec9f731167d13168da2d2dcb450a7c628c22f34dc453538aea6652ae0069200ca4d0196a5aa864f7fc2157ed24572f38bda460785fff5a7be476473011be1aaa33ff6a2c3a785727b7e034314b0c2b9288df3cf77c8b960fabc5fd17cdc420b69c3245a7e145dc1bcf2118741910665179b5dd983cdf020a7e843a96097be324465e2ccef79fdfbe6143f8c22568ec0a6a8f47b509fd12c4e6316f9733d81d55457207ec8b40bab730ea36b0001a4d427602d7d13ab395be49db8c58aabcd36ca1d2efb2aa2de43ab43ffa87954c3521233b1432435421d38259c8d488cf6a0cc664883c843c360b0a8501952ef0ca6031bb543f71bdd5e1c449b290a583d7c156fcabb18c446344ad19f1ba9966c8e97f54a8830780dd1d9458543fd5ddc8f05f61ba4e10ae5c5cf03f92532b4818b883fb25c20ec49477adfd2cf4512296eb36bd178745521ef006bbe1b849e3635cd803606617e9c667f75a2fab0a3ead64a77ab48c929915f648a904fe15814ce91bc34260ec1e500ecd00611e3705d799edcec16e33ebe124002f0218c460510f8ed864919eb776054aadd43365b6998cf21cebb7bd063880941d6f44588d824044afd01c8cde76aefe145be9c4d89fa125684a560023ee33222d1ef8dc42b84e28183f6e241a3c76cc2a33c3d398c0f0fabd573c0ca809985678e2298eb57e917fb44957239191f1c734dc94a14f4c2c948ab42ff0d21ce8ae0825e4bd64c09704e91b077f3671643cda44896c3c0113c8e40b87f1ba043229349afcdf6e5b754639b43e386286d868111c53f141482def8e1806ac7ed479ee40bf816c79ec96d24a5e1e974a2cb3eceb021dc17118fd9319cf7c48c768756e2a3484a9af2ac20a2bf18d7b70c54e4192b339706ac409a36e0f1607e46147b004f0a894148644e5306644368cb30b11c91d0de1a39d3e2d031dccc065e24a85605eeb71110f5d2705010b1c70475833a021c7ed5262f8f85ef40f5cca1a1561ab978e86cb6028a473f91e00c32f763843fffcbe87c0323f1df1cab2c1f9207e8c50861210136b3ffb926f8ac3b3eb22b8516991da39c1e8828e91b51a26f24c346ca8cde770ba2df10634b2eab43b0c70c8bf3b4ade975a7f89796f010ea1a6b1d76ef81de266138a3bf14d855dd2b3301fdeeebfc9e9da4c8c996dd3a569676d952ce0baa75610aa276ea7f84539d809ba284b557dc9e1ea2a191ff018312d07011fc2ba04daaca55bc2702c31cacb1af1190fc4b1030e7fd182705c222b21d7f76f6d175e0f3e96244dde1ff2136f414cdae23dd1eaccb6058fd75ef39d6c33b9595fd03126253f2a78e459e8a3e92fae94965e297873853b071b6f183f617ff86f5b16185665b57a7240f1be5ee4fa905d343bfe5d838f8de5a95bda36c5f292a33c139674f6fa596468656e1cfb4c8fbc39537e234f54d36285c209488a7b849786f85845494e73848f485e0f8f665ae539a694a62b5e93a6e534dcccdf4371a52ef6ed1272680c89b048c64d34be2f5e81e0cec33056d9308b2db2e26f10466d977fb757171399bdaaa007bd9c6b241408bc6b631cfad43acc352628f3774428c6f420dbc5dd917efecf6a6023c3eb347a4720714482e81afeb1fe98d5dfc5efbd06274cda76cd28eb1d06a75e8df847f89d460f03ad96e66f0bead9b620ec5d36706c9ed99345c7dad1007960a375c814e8c53e2353edcbb65ed3d9ffd68d61adb8a94af073996053a6cb71482d0726071864dbc9c1e54084d4963c1c1c8fec5ceece7d2807297d055b4016600185576f78101a58372914d22b0a7608a26ab00acacd40f9cfc216403f52cc44053104e0517d0f6c1d487e70f7d783cbc40d0ef75cb28d624ac03eb8e8e45069dc152a86c3803b606d7928090e1b2c2f055910b43c05e23846420f52c2c2015a36c89fc98ce15e021a6298ece546938edc9241019c19d31afe0db847b66be20565250b63423a63f84f43790788a37c381ebf74e28f6dc3f15964e99c4bc342661abdf55e8187e854802ead6dcfc0e0f12b4afbe87ca57db8c8f3307c1023329cbcc2b4c1822e90d50c40c6fadf8c06ff7e2468f9a2b2fb018bef339106058ea49172ca7df15582d5b9b16bfb82f79313e91ccb150918e3dfea418ed4fa600a09ec7d577750ae8e70cb6a54c61c40b80083ae522350957b66f91022210930dba4272079cd9a49ef71b2291787dfa4c372c879a3f33365545993ee3d1c82d259a94b3b2f8d1c925f50408b959a8d89575fc69232fc4e7bbb121897bb8f3a6e65d355d0c38eb2083a6d093be98e80eb7819bc8556823e7d470663d95fbcb119b33ac5c7eee08f75534a010791a5ad4e60f268167c3f071ad4c598df922cae12152a148cbb121b6dd38b51c7ba8ce15e6876c00b39d59f45fcfe3829363ebddbc79cc853267a9c4ab082689bbd6c4db938cc9ec69982d5ef2215b459cc31742ca5428aa966253f5c767cabdb01b7470eccfe570bf1ee8d68d9558c0ea2c80936986704222c86ee79ba20da14d27141469236b45cce5f241cf29ab6e290aad22f925dc398795c607157a93a33739c2baf8cf402c3dd522a63561859582149b1c5f377e21d8eda80f0261c3655c4ef36b11a906589e03b7e52a40467d03eac37b0a990e2f26a9217f36950685f4095fe46d3d0897b9bb1e04dc05004f9860ef493c629103a8c180d2555c2027dccc346586405ca4a4bed87069eee32cd9f155b15be18490a41f34a48f2f04e101f02f283b5ee1af4167101e4449d9d274ad408d98e44559b1462ee4101b6198a7bf937057f4f2884ebf8ea5be44f6488b8d3746149ea9c3371896c2e4809195288a065f31a844098b19b31c88ad495d5fb1f399c9887205858a674494f4df9909894485f7506f93600d32b5448fac44907dd740293654456604e4c90e8e36e5d9b0f943eee82145d82aaa00129171684cb2046634a7ebfd1f7fc886b5b56487edd47e425e6f2babb1475e1aac4271fe2fc00e1f34568b0c3fbe324d1316ca67122cb83af6c9b601076c44c39fc7fe0e3244da42923d42cab72aa67777cac2eb497c5c7f557c0d077aafb12c96e1c4a1b5eb7acbc2385704c52702e065a9a231b37abe7cdab18b715eb0a138e1d283403fcc20ca7a0911fc16819814b32109d866aeb824f2700f104bcdda9ca8dcf7d7772c48328df61e5500932ec9efd8701f78343c668920cde9b2fd638fe2304288bd6279f31424cb0fe04ab6a8c9ced2ef86aeb39ce32327e7b68b14bc52adc1bdfb58da10304ba0608df13c3eabfae14acbfe03fdad7b82ccca6ff737f4a07363ea82e03b458044dba09d7d0be9a2dc06280c1085a5882cd8716a02472700e400b4dd61c02fa1142d96b9f4ac35edb257e10cd32607071933826afc4a136d6a2927313a63a60ae348ca66d7b4bd8226bdb6d04b63bc42580b8586e0f17d92420e53129a112e1a6128b2004cee2676ece772c3061070976e0bd7ea18deb8379d4577ae1980f96174127f524c1a57fad6ad623b8749701a59e8d022f73b7ca3e317691e5a549f9e857ab312a956df9c083fde3821659d6883edb811601b183c5866ba6ef83a7de7801609e4de3e10a0d75a3bbf518fdb577c9a9b396c066612cd572c725ad37024565ab544240cd0368e0ae4057f0d5cca482e6e76d291f648891da6427209e0c7bce8096d9d9c4660ea994142b9eb282af253f8e31ae86cf2bc5a32a225f9f8b86d6145d7a0590b66b70199f601f64d3f4aead03090d85698acd10575da5bbdecd0246c5d615b68cabfdbb2ee306473d519201e9e23a482164d2b4782cf3f3f931f83a3e9a5db060e1d2e30a54704e1500d4e92855dbfb2890f9214e0c9b24345adda0a4d404261467a902d3d1ac990b03fe1ce4069821bd015c482c87c35187d1d50bb834bc6af31dbd97d564b23e890501e3bb4a574a8e83dfd10f03ddd4007b31a6b023e02d7e51045de152a9ed60737b67b58898315dc5a117e8c7143e6f0553f5ec1cef0940bbcd971b0251fec2eddd52c1e746cb66e3dd8e0de7bfbf37676c139e6881cc6af1bb3c5b339b5ac6fcd451ed306cf08692b4e95441930963d591dd41d468e46a00924bbcbaf51f15e404807fb46e183a8cdbb83446b5d00c386f7ee1b43264a24b0ac3d6457340a3181f5ccebbf6289f47abf37271ef515665c0a711fc80b02d21d9ba5fded52764dc0fe1ead1e6c63fbbc9a62cfb04e89533c120c6e092c6ed69d920028e8b9901484da8c855360d92d66bb103b1212d72a657944bd3310f660ae4a084de825d3414fcba90cf9a18d36b8fb5cf2c302c0b23856732b0e5a9dd7630e30e149d685db02cdf8789813befd2d87dccfe1ce04151310e8e4c836e630cc8cc0ce9128b547b3b91000b93be24310cd68528dbdbb19dcbffcb68e78ec9d19e493452349966f0f2fd8d559b2ec380687ffa42ac154bb534ac61489e75fcefb384ac61eae73a5050a1179791ce38cbb99577a52d2b40d0474ba741f40dfa8ea29a2bee30c119c7d4c08e7e5eb2434e08efdab3b16f8a7aae8d1b5fba7a9de9d2c575cef014e2c04ccf8863c30f4e61609f7763257155efe8360a1bd4ec59003875b6701d0145a4bfaa78ca0cfda505d99f05a9f0dc38c35db65fc154a2066c652e6a2b1a822e3a2bbfa35b831bcaadcf552e4959de959fa5446a8a952125f26fbefffbc3d27aa5dcb72c80e1665709d1bbc2d9f547456b2cee42614c1c496662b1513f01ef89fdfd626406c0b83a3fa4da392aeb3810ea55e790b0b92622f8bcbf9533d57ce3af5c355ae32f906a4afda704121b7005288e73b2618ed9f9cce9489dbde55c2773bfc22d29a2e8afcdc4b868ed07671299d85d83d7f4be58b9aaed2493f50a8336ee8da2a5904be3221aef4d16ed9fb086e666745c81228e4de936b67bbb88b06512ec07f072805c249b6fd03f9b56116b118b32473b741da20deb8291d2d7f3c7dc901061dc8cea172ffba36b8e0b5318e3dae9cbb46ca7d8b1c52fb759ec7ec2092ac1d63d4b70618f13d7c010012fd8de92a98dab210c4568b3d293706d3f02480d5541bf9089e39ce4dfc64cc930d655ac9bc7f9a2764ba748f4b63113caa61d589c43fa761ebbd29a9a87a6a05c3e1016916fee4328e8dfe467871998e633206794515a52934caee102c904d558d0c22be216837b7bf9095054930a6e7c8126aec8da281e0e26d837354583279bab629786d798a8c76ca56cc42cda7ae9cc915285662d212208cd0dd86ca7327331bfc17533b9d9f804273286b22e9577b98dbde4408f9cb28aa6fe13d1cd5d957045853e57e8236a486b6f21c335af4a0f8077f6891c80445015cf2b0af80aa111aea3a3422a5d72f122347f081540f1d1ccd26d82767469c6284a6a0a6a5fb48b32e20e45a433c9d61e1e157a21bea9605bd2c01cc317486dce40cced825aa8c2fb35cd36b6a34f7221772ab76af878ea068550286e6bb15884a01e68b439fe4781033cd5ee4da7ca096a49f37ee77a7ece187d438ec6adee0631b3f0c828fdb3512d788380386802a17654d39e301a86503eb89a7d40131737daa3f7d4e1146e6dbaa466596e0c2d29b8914842ebc706abfc5ed7c7cca50d902c1fd103e743a479a65209a4f34667a4491e99fa3b235e60a7719853868e9a26e3a1aab522becca1e103e9febb3602eaa7bac088c79214720f07f0064a316fbdc248351399929ced1555e67486d6ca14a81cfdbd7556e7241d9af9fd28066b7d7e72d758290599d2ef8262175e6a84daede2294f1dbc46f5b25ede8f3be96dd3fab00a27a45c1318892d88ed509fb3af2420ba1fb8553c6d368ddac5bad303b434c1c7ed6cc0380001964f220ad811ab61dc287894858a9e85b286051346485cfd3d95633969a2ab93428521776d262c0e69a79ae67ad4b45b2270e1436022911df954d48c0636dafdbe9758345740ba3cd69e072c97c66c8fce982518832e650422e4a2b30a464d8c2824ecfbee14580b7598fc11827df2a98fbc0843403de6e2a1dfdf182e1962ba420c66d62ea0f7feb4b30c256be43338788f7517327e8f6d626224c1d879c4f98eff8f9f59615aa54018474a96ea60015eef84a68878669e2d765d6c18d48d55288c22721519642b771a7e76d3d8f915a8a47038b14f5a7fcc0355cf5880152b0615cf527f11910f6106d7bd8031d4afbdcace8c15708f83357daf522b8c4c7b7d8f74c97a1a312c65213694b8d160a4330e5ee2f6600ddbfe6ea6606ffe87c5d287d66ec2ebe9e1d1c3dcc6a94c3649d26a18a92d8b481a21ad2bcd8db06ef16d1ebaf19adae6a28caafd0ee6e6a32c598605692a0fefee489b6bfde6bad30a4010311f6a24ddb0e8c234f33743f57a63a0c19fc1f3d73634e008f89934af734f61e1af3ed073ca47364a20f425896d6fa3372f688b0908eb2ca307fdda27eed651370279fc64069a5e8bd65caa1b1005828dd0fafbf8eaf2870ade1330dce00eb0177c6d4a0ac11ec5d20bf0601d399d636dabbf91b26a15a46809fffbc347657d8b565089ecb68a34b135c7aa5a953d6b52879fbd6e72621c7dd94e7ac13b3a88720fcd88fbb5ff069359c2a29731fe95a2e6b5bf7be070c6a82fad71245b64131d98ecb05259c6fc4b9d154093500fea13f04c7629bd2f8471c62ddb660dffe3ebbd80fbf248367c5fec81308a1e0b5c35308ecf4c6482e2c7ecdc518ccf25a9e15f648e501f4422f9d299181d1313a36a170afacf301308d1f19838a9975ea255d4094ce21f875bb1844faf5da10e32550b83c6138a5b5a94ff62844b35ac80f0bd3b41f90315f8a27faacac7b528915cc8ba295c6f9484de993aac45d2baa3e71cf1adf2955a7f8a5639c9cd8170db4ac384a356fbda8a8b1d2d88183a51cc944ea31aa9f95fd4f2e93bc754a900990b8a5bcc88bed0ff51fb946f5124a783b87fd54b0936813a167196bb9577c999d6681f48ec91257cb8b9d6566b6defe2515d8627145ad2cc54a47602ea303cea51eb856af8d326a0d8af5148c067db3ab6017246ae9761136d01f2380e2a0309ba1a482b4d48a5838fb54516b4b6a9b52c484ab0052187fa42a42bde409030d309399482714de893f2ff650ae262e5b4b4c9e76b05f416cbc4739178f02dddaa7f873026ea758a2ae6f47c84a73002f069f2acea8dbd08aad984c84c490640388ec39b3ffbf39f0ee8e9c97a8246fabd95343a69e623ba16c82f0e613de75b2ed4b0c87de6c6cbe0df598342c8a65b991fa999369231ea4f60db64ea5c5d4f8100b06465e4c78b244c502bef6e5b0381199f5888b3ccc076434c62643649e0f41ff64428e260160b180445b69136beaf0d20d853964e30938d631685859832055d9372f16dc54007864d9beaed46099d4ce2c21bb0f376837eadcf2f2b4c730a066faa916f8bb9829532b5e078574a83439c19ac2f2448caf4fd915c5786523bab2d477f22ccb9282bc4b4bf78ec809a4b2e8c1ad1bbcc31dc305048d6fe4788ec43eb1c5e8d5629bc03b96927af2de56548f1ea4f538ce92e2257cd97288e7fe238fe8e680a37e027da74810e7b7dae2d9cada41456613af56ff768eb8430aa36c72e01f945f30dda56b25019581fc768a1caa460695a988f53f19046f478e08f7295572244b9d7b6fa2a67397eec682233512611cfa0270b62e8b191947c60dd6e9f0006c1fcfb8ae70b65e4e4595a235ecb1126fe052a7001a600f3d13dd117a1bbf3975f3364b2c74c4d22976216da45de72f83316712b0c28d41270bb7cf19ce4c37b5dfec2df89c4eaa2a9753c8cc9d90b140e02186995713952e0aa19fc9ce8560d63f726011828e054a72e9f82a53b78baa6d077b8f2e0f790dda94a6abfa9ac7f2a8b29837e1bc28f9e8f2f67865b1ecf746dab4cc027f8af6ef3140fef900f97ee4fbec69f5d27a301a1b617e982765f7b5868af37e85acbc74e2bc32ef01583dbc57335808f3d27de4a688de07ff705a9878beb5280c93100ac434599a58e77881246ea67c0ec9510e3b386aa9117365a64b40e767da9e5231414f6dd1b1a6d9c1699cc13148d40e56f49ca872715d81d0247264f21fa890e22443aecfe660585852362c890b2ade63272eabf3f3403b7c76c921934af21de6071f70bde6e8b0ae7c6059c7c50e581638bb288a7923a77f1626704efb9da9e4d608bcad488553f7852442d278c07abc6031bc9f2ade88f870152c837dd965157013442f85612bd47fdc0daaa6100e21dcae71ce81468f3d5ab892db0f90dce176268e20128caab177deb2f309c1c2a12c9de33be8f631d9be4a72873a025515e7a603dda7dfc422ee407044b161f9e230ac909e50974a2cc7c903a0e9c294862ce92ec8788dc3edf8a79e12254e43a6743d7b3f5094f16d63a065d3dae1d9eb4609201a193e78c0a599c33c5134a8b364a8bb6f31b0ac179ac9f50a12ef4692ec4385b1feaf33e6f371069bab004c44c56648a5c7dce5e9acbbf73965bb46e95ac4f30d6e7ec079adcee03c4e7ad8730cbb34b47599f5cec0cf3768a991b16514f3b1c3da4952379de3907227dce79b732229720cbff402913c390117bc8a3ebb10b89f3af8aba376c73aab956248a2c650d56cdd521aeac281a837449431c20120e241d8e24e3a8518694ace5ddcf2cf768f5ab1bb92bd2b096942c5f7976293b1d5ea6161bbecc7e96f2d87acd83bc905d0dbbe18b09e7d739bf9ab77840eac19837b8c872805216648b3c6eae6931cd95680ea4f911cd7b805ea39acd6641c8343f128e9815ae42d7902a6b5550f319e7c5e4abf5fe29de57a72d50ca70b8161ab1aabcb62db8f422d08440ce091644b25960414493f8254f179bf20c32441e93bcead52ad43834b5bc68022a32ebc44c73ce29659686406679fa0c684240474aa5a9d442dda5098c9826335e7099b3336198ca383df5ecd2304c4410137001463691a072234af603430e92429e5cfa4b90a83cce59172e0debd2b0999542855af2a77a0ff6c9159475324d30d57f66b58ef1c49296dfa0ba91c7224af2489176059922b7032922e3f8ea1ed5bda182d3cc9919b8c834d0beace5d242cdc24c294c99a8af75aa8d545dd5ea76521192346c946994340c1341e90b0a120652461e27976742c2a616399d9e14298271ce2e973b15c5ba95e08b93ec070a320d7b5aecea972fcc54158122cf9eea53a218d5677520598c328a09318929322165f36b427d86ad1ef2d8f335880b993a1037b967d42d8134e3a9cfee18ed6eda236dee370ddf6e1b85c4478e00cd193e75348437fa2087ace1ec9297da2aabadf4564b6d6bdec453524aa5b3e8cc3aa59840a59436c69efea02850a1a9447fda5d39d7ebb48252bcf63a5dc057a753c92a295da714872fed2e01ef9c73ce39af46b52c828c27deecc65d5b314541ad4895eb68e7715c0f0ab2b755fabde928adb636ccdacbcd7ba598d030ebd367d8478e48ea4eafe62397a0408556dede855c3866bafa3c518ad78701aff9a4136be08be8a7f6d8e5922f41078078bbf5d68b3fead2b3f20489e4bee43a3ba91ca27e8244d2e5aad97a414cad7dea9df7d16fe57927786a56de091249b7ad9a2671edbd4199506dde25156f9bb4d65a8a2b95b552dbde9d4baa9c7885a74743375b6b7a7196b8da4bafd61a9e186f5ebd6172c32b9743a63f4981310b77dae480300b8cce9b51adb0d8e9b47c4be8e0b62c795340f06c2948755330b8f0cc898b036a5ac06c5cecb81ec050e8b05ba4b426564d61e9fe403d40457fa4140d2b29292e9f015460eaa28dcf002b70c1d9e53b54e880c817bc9c72618895085c880183915f68703c48715d649e97532d50f1440b49ac98c8af97532d8011a2050f78517089a3c1cba9177a78b23f38ae50512e07724d5775afb2703a0d0f9b13f87401431753ae02363c60f00df5123d6ba810d79cc1c508befd026f71ced966302102afe71bead73754e71a2d689e7a8f6f88624a2905c1d2534a29a594478f8f109f2d68d862056b48b002a0eeee6e26a5effcdddddd3bbea1ae19acb1620d097478ea3a42b06d3ed81cf95148910fce64e14454764595f976d7c2856f17b520e3db818ec4724031715c277d84f4fc58e4833457ecf0edb5af68e33bcd0a694a8085d3b703d1f0ed47d480e07b2a0b17863a6a092c56388258b1c653e7f986a80b63326e5a3bdf10adbdf30100a096a862862a4c60c514df0e64c51aa82edf9ea9e8a162872ca848c1b7bb4640c5b7b33c89053855bc90430d506fb449ea018aaa13b070e60637c2b0971ea1748ba74380f194524a295d7d435466e185906f2994da4c4961c61467ce7ce0cc19df68aaf8f60fa80d15f2f484a398e1db73146fbeddfb86dae531082102312ca401630bd98231e6a8e0a9092e5b48d57ad530d3c6ebbea13a773a907a3ae2a96717145d3c75ee1ba29eb348a93c52d53835c16af590c7564b22913f7d52287610c10a9e3a765931a74420c477bbf6461db14f9047dc72f53c1145a471add78c251370959348a8e32e4f3d53773d51c35397669078ead4841e869825c1058d0e6e7480cb1718e6a051420927591fa160d6f8f624dddd021293c796080d93adef4ac653afd4a719dd75135143dc18d3841b4e70c1390063baead8a51c32f67c53af2305ea487ba480e6f608e9eb6c654f3e058ea41c32e6219e0d25def1eb2f4bf5368c979f75f9b29ae6b34e4b657a15fa43733a7d8ac722f956e8db70ace1916685be9cae99502f5226b713231a5a803e0dc7242f522627f53440952039797a9de2bd94b252b1d64a7d66bf40872cbd1a76a2f917466dbd58e336f7ea98ba81558a9dcbee0ad739edb8b9616d4883305bb436e5044e5fd4983a7345112820a102237e60e1698b323812acc087bb02261f2d57ce310aa78be5900cbaf48577c48b2a16b852a082a105535324f8001bb271892d3c70851a2700430e8d610535786fb876bc9c6a42084e05797177574dd3ce64ede554134b3fcaa7226b9aa8e1c77ce74f573adfcba9265a985e6da59b9c372432a28e354dd3426bbf215b2d9d83c578b3259baa262e261b4cc85b24d321e4745029a061d3925c58e28c1a4fcc795ac119328e18a50f2451823347a4e1b48852419d2faaaa8b0bcfccc49c89c3cf2fa798a0e242d1499f9167e9e54bca86d3421d2cc9874315e6db56d940674e553fd22e54e9bbc3f8e6a2be3b0c89847a08b33c361c2af49a9e24e37ebebdab66750e741dc19feb88f8618e9b2a60ef5c85cd39fb7ad2752f121c875fa13fed759c77ce79142f443a41097629eb3aef9214c079e7f445bdb0e59c531a42c9e15d88e4790e47fa3af04539f045c397015ace390939bc0bb1789ec3b9308763f9bce55226bf97013ae75c01ddca395700cb773c4996bdfb4224324f3cff649ecb4f3e142d32ca85fe747f2005fb5f545e8c91a3c6120e270385c73df73cff9c0c752e92d2108ae73842a4c985feb47be164e2e281619a52f4a79d07a99d4b08321cfe853b42a41dfe7d21d28e70f284524e2b4c198e50d29f6f3a7dde0e6f242432503ec7e14864a078fe391219283adc73384864a0f0f88e1069cea13f8d14223597f00b91e61ca4094747384e38ad100b9697e69f73febaee39e7928b4b998ef0453d4936e77ce708b1bc0cf0852fcd93a0e0f0ce71842f2d7cb245c70eef9c277cdd90c73927c1f3cebd10478b47f8a2e1932d49b29e03e6a75d3b6ce768e1007940b903361cfad39ec19e437fda5960c391d5f942497fbc706c38cd8150df646ebb6c8c2c6564ac6fe0c5e0c784891105e7f32cbdcc200b4fd26d1c5428fdf529268cd24f08f2d860961a36fa10d3b0d105a661a387b97ebd99daf5d44eae1b46ec2ff74aa9bfd74709d55daef796eb934e8e73dd1b96a64fb83ec7b49094ddf9e5cee6c8aabff38c99bff75ea0eb47aefb75f1ba0f89c4faf54bfd56258b820ecb5aeba4b5526adf905ddb6a9e1de8657551d974f64acad075b3fbdeae8d039e7f1fc660be0074b9c93da0d31fcd5fa0487f3427b226ef380fb0e6e0842c8459ee0122cd27e4a499c9b2c8355300d1868ccc07945d739b86c810397b9a86ad56abb061b68c538bb60c8f2fb4662e00228f53bce7196d1920faa3f90ef048075de45c640459feeb0914cbf4a2a6b98db252f6c94259a6867daeb91dd3b0956b6e9b1ac672cd3f8f750e1d1900916d1512365aa19a5b2c249223ed7384630eb742bfe59a5b2889244778a47d2bac671a8623946e9fea184d8c76447cb26134b75f34b75dec16cd2b1daf6e9acea1d549f36aa685a44cd3e4bc2635ad0a0e9554545d93e6b533afb97d6a51a34daf397dd29c42694e9b34a74e9af38038834042441fef71b5d74baff5937da24247fae7e90943e5289794538940e391eed12e6933aaeeeeeeeec6edf7c96949f3db1e05064ae96972699ac354b50447498a4b94e63966b97338d1f5a37e72f7d2a6dd4d702da7471e074236ddbeb1706c1c5bd5b033b2736bbb1dc4e1f58d6d4beee2d2e1b23d47d3c15b689776f38dd3b8ce7c9b69f73acc27a6bbee2eabdeb2a2b38ae37a9359695cb9cb341d3a9df79ca663e5844d470bc3b1d61ce048a168d44fc7018e2e45e7fcf4153856306375aa525fe7fc04f39307f496d3b0ebb343acd4e274ba03522e2d522ed35b4ed3c16196c4e0b048fe18da44cb3835ecd561c3e9aa8ec3852a318909d3e204c3aaac9a73aed93bd62b6ff06beffa03b1e74dfd031b7bb866a72ccf6dadb33c676c6527bb66ad5894ae9c7adeca0b8dda598de5e79957a053967fa091e73834a2a1d16b09cbdb592e31eea2ee52da39055f4cb66da3b42968d47e7dd3341e70f2e79c8f0d8749af3c83230d83bddd03f10a6c90ae40ecf223f23ae9a987bbb0e9b4389d035b0e6d4243a30e8deea55be88cd29ed3e2749faa3cbda7dbe9b4693a05d330ffe9344cc396a6d332639e74cc4fd9dddd0da7c513c5834ded812127e9fee013751c11844d1e3ff8f62aea386256af6ec209de62923aa750314cdaa905aaa79576d7622be93a6e3ac7f90cb97a8cba058dea0c8deac879d5e115dcd13ac0e93b7480d677c0c92bff7478cb71801df52c98bd822c5fedd8b1c38be4eff0a4b7a00eb082a3942664720e975f6db90efb39c236c124821d07c8b3034eb07a473fa23a9d05ce0a4e16583d6f82de7905c729211038726eaf57d0683a6743a3d792eb1c171e69b1488bfd1109a912392edebfdd04b7522844c11a5178914416427c91d5159c51e38a25b240810a4cb2ea52d6dad395e9a40fed26beb3a1e8bd778d16d54d29ad9d863694b5d65a0f4c90e7e31c66ad5ac5d4c7c7077f43b46e69a2d6683ddae772dd6de3e66de56c7d60693aaad7b454c7995214627dcef8c4f9404ce7e323df366957ec50822bc2686289bcf372aa0443fc08f4df0c99f572aa043800659c310b773870cbc3b985bd16ce546bf24e91234040477810c3c3181cd9091e3908291e2a261cac1e76a8945cab1f66b98d1cdfd28ce5857b4b4fab287a7462c07c4d3b9c9417860fab8d4b3715860c38b0017e68e2ded8d1aa360c94829deb658cb30f4c3e34f58ffc31832195c3be318010713a8351450f6028d112f304061019882730bcb476f8620e8f20c0d01f8931a0ba56eb6edbf23450ec1f9f06b3e7b57a02f072aa8b1a1f8a025ba9ba61334dd49a29d228dab3524aeb274252a50dd5429a4be91db5e6a56ca8fe995ebbfb0d5d6b43a9353fbd479322722f3dcd3d627eba105ce43f70b94cd370e49aae926e7a4e8f81ea32516d6669cbcf3754619cbe347517263a60e428c5a95cd2c05953f53de9999f4e9fe6969fde4e6766a4ca448d810ae334bf34cd2e4c74c07c57aa1c4708f9d95813f2d3ab84bd646224b12861d2a7903ff28a2dbc18224109e4cf14f2dd17302d3613c578894909cc9c4e6f28c40bca170af182e2f99c7629b7989e236e26cf1b22c10ff24716217fe427217fe410099c903ff247204c7fa67b5cdf1174b5bbe98b8c20537f2db1f329acd36b4375533bcd305fbe2673c9da10d75a6badb5f6163a2de4534e7e53dd75a685a44cd65ad37cadb5d66ae6abac4d2d5657eaa5eacd54bd95aa379819b2f7f2c71979747d37b9be5677ed54696a6cbdab310b1720cc90eb4ba7deff4afa206832fdd17b1066c8f365379b2939b3f68e4a4aa5a3d0422dc31539ab7a49ce3adfde6be69c3b96723f19a0659489fe7453086d72cbda51d8e13bceb753a9b123475af6c45052124e9d6de95cefea71e1d944966db4bcf99e976db4403dc65e76f5b8e6044529911ccd09ba68c5147c613aa9b42ebf2632349a8ec3232d1c39a7e1115dc2a452afa1eb3271edba15fa371ca95f37aa5e249fdb422bf47138d2f048d37aeead3edb1b46a50a7d27d543fc814efa04a920bb1211b82e49bdde79d318a69e4b334c9133b34aeb179a679466b399163aab97535f3c7d8b69268d522feaa7224c39353acb94ce2a393d074207cfd0c531635a4c933fcfdecda586e1f742272cf7bc3253094f6c451e6555cb71f8168e9887b6c2308aa7c3b0402a299fa45297744271dc7c6a314e27e927237812a3a6d413d4051fc8342c924f9dba9433e76c692e5a78a50a120a2df61446e41f2972db9ec9a9a2228fb34a7cea9ff6ee28114418958022b4d88e0154d6bc2889d7fdc090c7234152c847a00489fae0c807310d2cc2714a9c12a754b5a6481418e74c9f806491c722618e60220925b26843ee9982ac799e17be34581034b9bf078f2eb2e69b772800a191379f695e9e47f960df17be3c87f2ed855ef8040c148a744f592bd5569a1369af1529325655e9d730f8aa1e02b5d82254f5acb9ccaa3907852872657a62758f32ddec2268b2191cf5d4b09ed9d422752833651a36ffcf3ca555b2c7506f31d43b4cee2ed46342128a96e9ded2745a0e13184a29548bf409f528d4634aa80799a27a9022f2d80dd5d43d9b5ffed8f3b341986186d803514859c85447ca42867ae7de11fad33d7e96c82310505770732b5b3c9a63925377930aed404728f843268f427e7e4743d589c01786e2791722bd30fde911a4ccb5c29432a429f3c29f1532074a1950c3e6538f3aaddee170cee9314d2d9601027a826a728aba5ee608920811d96b31c816f9f5af2549df2eb667571034b9bf6bcf7e37bd397a20cc90e9cb39ddde2af65fd4a758f045fd84afe08b86343461274ef6f6c985b6a370a53dd6ce030a6c39a4ddcc74a5aa44277d7050c15425ebd488f2424ea3a14487d617a5601ad67ffd4a0b4d3955b397536e9afe6ef92bc739e6ef753a6b57eb061215f5d7ee7adc86e9cff5226872f5ebb1f68bb52ba754008586f5b478fd7a958651bffec3e584868dd4a7982038e4202be46ece8ff2292687dc0d4821973fd7b568e1985bf87baf032962944f54f5871479ecf9eb934b8b75eb69d89c4f5c0c5a9cc43633a81f71d7815347eadbbdc6556afd964cafb50a7dea75760a5e7e7acbb9e77272a13fd63b70cee88f95514f026684f976e9b5361e7ad890c7fc5578280dd285e5f169b1f6801768c9630f8c93faea62c31ca87a92ea551ae9e2deb6df36a2cd0232ea8d36d78a34dfbaec39d174fadad11e3cc4c82ccfd1b9c01d739ce27d95166ba8644b76730227e17c0e70047ada72f3d5c723420ce89f104c0fe653a76780094a7870b8cbab476958cbab772d7087bb40896387cb3b57f82ae2b1397c876b07a8c3e547935e4738433089e0c0e139c0d1e771b46667bd39bfa21d6fe7e139d28650d7fefbc2715aa79f53b09d67b4b2f20f7b47dad370fc422bf4bdb0b6d885b2c56de83a9e82ab34b200fd1cb3fba193527a55aab7722bcbecd12fbaa5a75e848cdcae695a194f4df2eb5419619e7618374fbbcc53da699e464951bf550b23c6d39e6a9ae645f5b523107ec8b245ecc385a94b6fa15fa83fa54f336ac6996fa69b8f02260cddf2340da594522a86a9459ac5eceabee4eb9a1664867ba55b29a5d16b89a6c9d0d52225aa4b9c0bd5d5e2a275a4f6d03aa5ddfc9c4302247e7aae9b6bdd9ab6cdd9a1d1bc63e75b178e1a5297ef38d7c02e1c39373fbdabdedc1c731eeb2954cc76bd1acdd0cabf610ff568199d84e5cde7e396524ad952be711bfe84563b9e593ee6973b619d13026da9736c976f5ce7342922771bddba8dfbc02d649a1491f110872be6b0909f3e9e12797a95fe919a638be142876a0b1c270aa6cbcca1d3e344bd8172f394e6cc94b31723e53875a982438752c5897a03f594e6cc2c9241a96b2e4ead5d102b8830e50f5aa4b6488bd4c58609a14764da92d28e5aebd6da0d34b2d6fab592b6b04f5576f5b83f7520ea455c2efb4407f3bee439bf6ae0b68d4166c81a6874fdba16be986cd6c1b4485d73ea495fc39e164147b56fa2f0796fdbca5916d8dc88f3f6d5d05f6f736f6e9b73133c9aff4db1a00a8dd9f7b77d618369917e69b19552e0f25bc2852ff99e534aa977dbdcd2059c4af82b5d6aa656faa646c48f36f2745931c61cb8a5730e6323cdb1e658bb649a14912907aee0323214534b31f6ad3ac6e198f4e375cd4ea7623ae933ea90f283fea9aea47faa5f395fa1ea57eb17940f806fa8d67b664ad78d7defc5d2f417cb98bf7dc51f118cb558bdd67b837cac201632e7db3500af4f3a73ce9453e1884c62c4f02eb5582fd50f59f56d4cc334686a5800ca6c4e9b991e1e00906ae03fa012255ce82d760f550fdae52c3a0144077ad18388a17f1b6cb001911591159195af02e0a3eb5901f0313f2b002c6779d640030dfc07fcd9f9d9f9d9f11dd147d7f3883ee6e711799c07070e1c383c481a79bc54f70dac8e4de7abc34621741ab60466c4957855e2223c51e2a38452f2c408285b5c127200ca16a12469b172e04abca15ae8892b09a774d42bf1981230491659898f1f7cb02d11005caa4a9610c063b241982307548ea81c4d3a98742c11097528b9b8fc8e5900c21d1a842e2a171c57d5bbdc48140f281e4f3f218fa61e4c3d967a88618f22e1e872058563ce43c2113f90cbf6d790061eeb1ea20300001c00c4bb24910479b541fb6d73ca817369b16e7902de2ffd539d03f02ad9509d56ff624c971fef52c3c69be6abd7f14a7d1d2d1c370debf1ea574a935f1421a676f1a3376502a9f7f172ca0421907a63cb062e7afdae03414ca63dc821b5c39e9497881309c70c1071210f720080a38ce201a07d4d88b811bf6b6e541a243e0ae0af910e7c1cf2d7a53ce2e3051bf898e3eff7d7ad14ba54f4a74a241ef80dc729f74b8b170c15f9fa7895fe2a85170c11224eb9483904007e3f27b48b5f2a0078ede001e048c2f108003c0800bc83701401e02d00f8911000be4138e60780778e3f229803c0bb8ef3e6fc8a3870d12f283a1170ac4fc403008ef303606503973fe0fd86c470b442ff271ce76ff0e3d763940818a341e0dd22df082874b98c5364141f00078073008e56e88b7ebdc35e1078b7c82145fc47f45817018fb417c3f1c70afd1fbf4a0d13bf80e9ea374464830dc22912ea45e7f998acc238ade045312c5226fff8e500bc97cbddd26275f25ac2818bce818ba1b7bdfcb8ffe088bc818fd4af07c0017097b688b94c0d139d76912d0600942d8297eabe69027a6ad8eba712608912ff012fd8ca45a8c8a207c0e57734f413d562d5dc68546f70548b1c80fd94365127ba44998ed016a40756f08be0d5e9162a828fda8f74cb57a75c2412113c001b88a2fff8bdf7de4bc44550fecf065d00a6d7040c80e83f2e82089ee31321e9c5b04a7f003cc7c72400220420c42d8a0ed61645222ebf26a2df9032b54804a4623aa090f2a4a03a9d354c0c7bbacf9b35acbf92e0c90461e892f665bc71c63b67ca04627ed4b6685c34250dcc57d7fa2e358c63f3d5bbd5ed0e02b5979fab0818b9e934ec86544c8b952ec921d505c0469e4375df5c3822d8a4887c7d888b22cfeca78609c0abf7998605792de2f503af1e78f5ae1d78fdf1ea4dd5b0235e85bc1af1ea5dbdab40f0ca81579f711a1600af2178bde0820b5cb69085e3ba182c61703150ba4af4a73af62b0d13614543445e93781d80579f4b0d93797daf31af44bc0279ddc02b00bc3af1ca241c451f4e807074b9968463ceef83fe28097db8a44205a84bf4a7ba0fef040062a620108f2902e2a60f405cc603103b2101b1990e40fcf403e23347400c2504e23446401c05037100406d4d8bd5430035290e400d04107381e35efd2a515777e845e07dd362f521f012813709a80d00d4b6b4585d066a0f6a5d404da9c5ea4440ed0ba88169b1fa06a016a6c5ea00003527e0ada23fd50b0066e0a298817b2e57ce1988f293c88f81f243e8170028ff0370be07e07c24a0fc0e40f947c07e21b01f06ce3702f61701e59b0f02ef73000200b4bf01b8128285d90381720d1cc8983d1150aa517a27e055a252295b3840dc95fb470040fc4bae1f50fe0f2f0028656278a95aac7e9baed35dba4c1f8020b70f0101e0312a041ca7f49c17bd8bcc5aac3bd75f62bfc490a85fbc542d24b388d3425b2a1519567cf52ba76173aa6b336d8bd357d7b8348ce7ab6b5d1a26a74af0e6ab6b4a1a9816a2b2ea62dfa6868d72cd52c3e4d41b395f9d8a91536454a765e8bd57039f9f188e533c0080482d560dc22b2d562ff245be0e45f4f6fa138e57fe47d35e039f3fe098f43f1ea347daff78ac3500c72cffe303cad77cda479c21984434177d9699447a8660126917fd7a77653af9f805678363928f8fcb6fc847bee622e813041c818080a3f83fc2b1fa80a33c334a3a2038ce2e0e8e738c0f7094673000c7d9654c0f38567f81a37cea018e926a9cb3712e8df34907384eaa1ce0d8b351ca9dcc5a5daab1671cb86594745e89080dbb5efd49f841c3b429fd31a12b7401f316a87aad950ae5234b2dd6a55a2fd557bf5577cea5ba70aa4cea582240c7b8c039668e418fcb5d21520fdfb1c37784482e4f92f9b8e0e53bc217941d3b1c076de1c8e1d575e4d838ec9bc78337e7e1c147f3796ad36b754c8bda528b9a0f10d31fcd8b88204fb79a5b9c7117acf4a561607098d142bde65f2ecc71f210f41812f6d80274a68b2eeacb291c96e8428837440910220c29ca9752ac524a780834fc71abd5ca37dc79a7cd23eeb3940ae7dfe71dfd3cd6437cf76ddbb671a0d7611fb4d00893c70d798b7727686a0377b8a1cfbb2f07975bacd7cb29306bb8a2f99fd3af0999fc7ae9059dd96f4ebfa2d7afb68ed5619ecdbf9dd59759ab154fbd1747e7ddf77918dcbcd31c7b1e448437c3bcfb0c914797ab6707e317e6787347125c80720eee82ef1fdf3d7b4f0ef1c1e4c92a914ca03255cbf54e6a1edeb6cd5db3ab8f5bad562b0ddcb46ddbb64d03b7fb0d6d5bace947a4693bab4f6cf16aa0111f3496e62d5ecfa04f8bd7b9c853d3ba97533750b1aceb7257030386318f5d0303861e5efbeb3eddcef5308e9dd5c7e39bf3e0e0f93eac7920bedcfd3e503e8bb579f77d9a6b9ab6fa38966fceba97e52c96b71ac6f2e998057a9dd685e94722536ada6af571ddc43d567044ae1e023cff76a00c890e3ca7990200cbeadd6f68fea5a00c89eeb56f683e056565b294aa43f52391ce1b7f43f2e5978024591766fad3f51b92dfdd9ef2d615c574d26bede436accdf977d2fa63356ae06f23cd2c3369a3f8c95b2efa93c9648a53909d5bef1ad7a020b2a6190162ea06a997afd1396d055ff69bb382afed6ab6d6c955eee338cf829ad5344a291d5b9f2b11b6d75aeda55dab69afeee336ac5dab7514945ad89a6f41233e74d931e879e77916cc6ebd30c392f882905f0eebeab1a0113179be9cf2c1cd53b74dc858a7dc47d4efd3a24c4d9e7eb56ee7e696066edeadf0781d6be0eb6aac7bc7cfb16be0abfbb84dd32e76eb7865dd6aac95165aeb9ddd368edb7cdb565ec66fbf218be9dd589e065ad734ea795f6fae6dd63dcdab53aa514dab95db28d6acc5de6b89e6d635ad6af762adebbc85b1eb05a7a9698e29c648f85e0d638cb176e7f48058f382185a468a6861cf8dc05399e668dc6a6bfbbabd185bcb6dd3be98747ebdf39b350acad6bc5f4bb0cfebd772d3e7731f931d3fc3aeb3550e99f5ab4d31a5749c4eb5492905af77b4bb5987db7d9c021599b1244bec94f5375a3d4f4a0f776e35ad1caceaf7f1c03c1e87a306be286a7e445d41eda5549da7ecc9b6b85a4b7dd424d5368c717841faf32b926d7c7bf11d7eb72db1f339b0b5af487ab17947f33befaab781d6ed4724dbf8a3f9154937a8373d6fceeaaed5ec3b5e37e7f21bfa3a0cea214befaa0b57d9edd5a87378f51bea5046829c032b11e17e44928ca41d34b2ecc4d91123ebe08e7c40462b8d160b70b47b22f50e67f92d29ce67d1f11175b861c9f139b1dee10ecffe88c371b6b4ab51adaba6ddede239319ef347077e0b47ecd6c8fa370d47afc32021b2ece1431b4e6d30b5204ebbf469d0c80f9ed60228373f7ab2c5a5abde1d3912e6abb7bcf85a6bad2d987dad757e211d94812077f41ba252861e64daf594bdaa6018f9218ba368cfb001f5ddf30d24814e3e6e588feea1dc4db1c164abbdf55a5896545249aba492d24aa994528655fa2ba565f40f5df73f9d6c568f1479ac1357971679ac2f6bb5534b27a550d7d3e50054204f975372b6d03a5c5e4ebd31e74751480b6d21d32e0a61ef35a25e4eadf1f46308df0e8097536b7cf9f90d5d0a6ade4260b7a0262a654ba1b2752bf3a94fda6c7067d63c92efbaa46ee8a81f7bf7816396ff460c64d9bcd6d0f30dfc9c7a8c4eff8cb057c7f22be2c2b173eb04c9178e5c55e3cd57e7bcebda9b1c119672c8e4e42493e5941a72be3a5e63cb57f7be0f5c82e439c79d8fd829ae1f11f6fa62827d7ade85637fddd8798c6a2e2512a329489e0b2d80e439e7422a9c57c14fb1944336fb065829a5d4887ef82995b8454a29a59476bb67a5ca30b488f923d677d86766b30be4e4ea2f02247d7bd257998feb0bd4ab1e6b5ac5cc39abedf172ea0d1728a5f6ba31e5861c6bedd5dc70bd9c72238df644275343e6e8a4b75101ce8f9e0a522fbdf5b28d0a677e009d4c4ef6aac8363080799e976d6048e1a7574969f5d6a8d54eb5d1a60b9cfa039730ca70c22fc328230a31c240c10a3630415f86818217d07021064c13005ea2e1220461945166aa86aaa9a53260b881c6540d697c1a067ad8e5f95b0afda11d16393241201b1e9921509123b4a550a10d68145500c92174478d8c0215d2009710ac800c186ea8204a46fd0a159268c6888a72c38d2f3dc820a32ee504eb85cabe9c670aa72e52cfae0e5d313ac31a7a960aedd01f2a246534cb2134d7c9628b2eae28411a3a44221013f5940619414821a31ea3ae84fa05726a5bd1552151c6791ce8aaad0b2a0ed1c729e1e390483adc759d17c9ef3ce93bb00999cbd106ad7360d253ebd87a8c6a937ea0933eb491a49cff61caed730e52f796ef6e8ff3c6cd9a34728c122e5dbabb1b8ecb30df2e897f98c8b4aa671da3563ad188a0470b79ba38278ffe99e61f273210f5a95e5f32941d6669c997bac9698989a9c5b428f61c7171c7983c7a928e750dab8fd090a598086894595a53d168d3536898690cda726dbe3315eaa525a0232e3ad1e918936ded7e7ec8a384aae3b5284616a18d4c979f46d4af55f9198e53a6fc6bc9951fa7b47ea43e632dca232dcad94d5f1fc492b428a594558d179ece404525b1b4c40805ec2f261ce7f2472bfd6872e026b1d4c217ce2e6657272738b7286129a594b29bba497d98eed2fa9cd3b34bccaed9b5d2e79c94524e2a2dbd35ec9c536e09fd23fad8e9064ec158f635b9ae196db0dc79ddfc6bd814ef0b98334a4a60e6cb3aaef2ac8da9d0972eddaeb0c75a4ee1fcfb8ef3c9b90cc184e314ef25983359b6d2e6f2e38ca6688e430b687efd7a0bc927b10579cc3f4d842f26ed16907e7bcbc75abadc32fb40e9cb9c73ceb99ade0e5d87bbaef30ace6fb97a7cc42d94df618cab44d29ad7754ea439c62c33a2a0d9b05bcc2e6fd6319d1ca7b4dec8f3da75099dd2fae6d25baa1ca2ddd52e71cfc6e4d9bd5c6ecfee57ecb534ef0f73e098e41d9d5ebd687abde08834e6f72af8b9fcaeafc0a4bf5fe716856e0b658b5dbecdc82e89abad8234eb592b81997159c25160292b96524a29a74ff0baa6d9d04e6ddad09bdddd65743437ac4a91d22b2e45db7d3940b7ace0b22b8d54e7be5af96e69a45e0e7c535a3dce0e6badd6dd9e1916a0a0c8c682322ae6ae65811745a449038d4984161acb1d3ea0098d13608c9962c20b1905a6d2a870821300e16689292d64b081d382881ab80d06359e7b39c5022dd21c390294c6e7795d286d5561f1ed75053f7c7b5ec11adf5e5d438079eaa52ab73caf452babc7474891148c9182159c41c5b78b2ad8e1db815420e7db650ab87c7b6b9082cffd00d6419bd1e406055d5000f5ed8e8237be5d8cb3c4b74fa0562bc816376b666033878b100c28c1520a3efcd0839a2eb2a969ae8b02248860e596e7b55e5708c927215eac841429c30b382cc019034ed509a408a460a8e42c17a5494a15d1880000041000b314003028100c074402915834221665493d14800e86a644744c1bc9c32cc961ca18430c21040800000011808191d926006d7a49b1ebbb4c8fd537d72e92af8bbaaca4cc9277042cfdf17a28eacbbd5bd209eb3375af6cce21b123f8ea1987d2b08042fa45873eede5b08d05ed54c12024436dbc1e66df9e76f3f4ddbd8d5e27a02e77efc28ed3cd20276ce4b6d8abcd257f58a23801e1b931c4505e62a5b01a94d93a41d0c24b0e2ea0400ae7cdd96576c3409cbf80b0f7cc4b9b6871197054c16b83efb241b14a9a92f3c1075a3bad991ca83c284dcf1bd3d5b549b7c2495df977dcc7600391740a66c17267dd4840f61683d7a5b26d9fd38594adac69cfe767be91a3ec6105d666192f09e36519e0ada5831a81da5608a02c99f742f9a02d5339d3a3eef71022bfc212dc196bcf105112e6d2d2d4aa25d115af960cd3c3ee10fc2ac9fa45efd534d9f5a51912fc6e5379e3aeefa27d1d1c1c270241f9e7c57f505da30495a3e1dc5e243c2b927762461bc63e923b4ed64b72136b6e55ce0ad857cafa1cedc46bf49712dc3e8188f53447018778d36fed47e42eeb3cdafca1b819530aae14130596bbe86afbb9984a355b3b65e13d8893d1db9c68666461f81813346b09e11737b05fe24648c430c5cd4c7757f75f14ac6ae423c4f4d301df1f3ebbdfba4bd3c21ca70f190afc00c928941b6b76e259f403d3acb08b4c15ce2e4d6db4661ee5568b6005e6f1f89ed5b3379d447fb451251f7bc0e42971884e8cf8502f7438a46eec5059b2d96ad70033ef6ab450094f506aaebd48c6b5d4cd74b0f7e1bbd77c4ced6b559dd331ac4fb736889361364d03766b2bf99fcf6a28e1c23073ca867ae667671c206a02c5ca37011c6687ef39c3505c94397d0d02ae0a379078855275ba502bd467225cd742297a1304be7d00cede07c3544d4746789c8894220c7c4396d6c53057259ed092146b315524d7614d2c8e1766a06a8512f1671b583643e37be70961ffec5e498a58dea3e54ab950e7a822cac74266ae56f28e5b6654e7c7e136b5a60a3909ef0c0bf35fec82fc51123ee8163970a7773371b39e0d778219af35328817ec09091b90f020e1771efd4de8775ac2d5e66a81102be119e57c11e1777bddcfa27622e14236ca609b1799c0ab1a03788b4ec2f7ba06e53202ff4ce808e20606ea57519b889da7a2309558026f364af53b82d199974cea5819d87148375bd6056f71767baabc391a6808b416bf996f8c369f84f3bf8fa15b20113bd3fabd1fc8b5fd578c3db3ce6bfbf22dfd9afda673e8fc0bd7a238b2f1b189122e216f14e056cc7e2c386edab70e9c7c99b937c99e11b00c89840f8e937bbbd826f3907bf3d5b57eb546114bcc4f83f8e6c613a44badb4c2b7b5c2eba9a0cf37dd26f595a049493883ecc70a7e095343d420ed149d49c207857556ff00f06da523aef084f2ce913347db516feccaf96b2c76a2cf71a48263ec783944e01e8ca47a5f0c299e73f621b95695dd74e8420e0bdcda5f9591c128d9a6c478367923a3392c03a555f84b6fa01105528f197268db9b721559f8a421ebef4c3491fbcc7e0b5192f332712462fa727627c75b55b2ac20624a1feac7428d26d15d9544b29ff5f1ccc4772df96f0fd13f0f8889c761f632ab140b918daca2ea1cd267d4e17e8b1b0293ae88b955447bf70599a03f2ecba3dcb3b03f9271b2da77123a505846731caad51733c650abd3508a3c547187f9964977a93f96a983fcc49f0194409ec30156850f4987115a08eeec638de1a07712eff31bf61bac21c59093e3767e215d3c1910826668b4885138c50d8d3e300ab73b34aa5b30543f447262fa8cdc3b44eab57ef1de949dd4d8774a18591b1aa2ef7a4aed3a67dd9d8acf140f0bed26661b161110fbc802ba85e067b7ad544e040d4d5e4fe144d01842683652cb366810a7017212a7cd241ae23c1ddc556518ad7882a88b3ddaaa9033ca9916a0b6ef920c4159e732e3c41a6a5331ea2da14257df10685712f6f6b06223f6e2732303ec29d34e76989c506745b0a40190b73bb5182fda19ba96e6467080b47eaf30c2a93668796afd828d2931934a93f78001781972a8ba629ae7803034faf7542e89a9ab12371e9b430fe231e8d9cfd5055a31fdbeab86db15ac16820a11075cd10858623e3bb6644f4a988cb0447ca35306e0aff45c7e623832c1602910dfeaf9aafc31bc10b1aa3445d42e9066b6f36829f02910e497c52ed000ae8ad0420972a584d4f206f385d5726159ee29c962cc649c0b7c8108c7f2b53b613eb94c1fe3c6b35324e3426c092ace0cb476767d47f03a0a2d37fde7b6c2ec07270a8b3cce4fadb0fe3cc003b62c91c9c66b51b1dc68556f2ad2b205fa34395d6250ff95e370386820197e5a0a2a7efcaf645dc5b97af461de1b7809835d24d9b3614487fb2b8544dc9d342abaff5d8771932b3b6ba15e3c0442950262deb8189d0b3615c4f324d4ff17d9c65f83c3a81f0f1d202a748e20208ce7d3c9525bde73b34f7b6c5b812928c38c1d4cd4ff5a09402d51f5141a1d22fbd07057a81442c2fa9a8194ff9730bc89f4750cff2fca84998cce77d5b4b22ae4688d91fd712f624c906026fc526692d53093f4f2d505113eca0163f5ee09b2fed242680bbc6d2e4cec427bba1dd81830f654ed3c8877e4e3b5fe2971f6749e4aa78b2cd24ba9d7af2f8fe4de7cc398d0928ff1e69c2dd778d6d23546e2627a3d8766c6bc167a1ccfce30665836b7173b1e1f5542fe11fe721075e5d81c513d20b21580a2e282fb3cd99f1f8f8a3e70f2a0e9eb171827c06ca90282e99344206c04ad54355120cc8d7430fd4d259f055c74bcfd951aef080336dca09db019b2b12c58601c409266398957520326c6701cf377e5b1816bc48d2e0d93c03850ef03b381ed126147c8e29a2d1fc32d4a9580630a4af96ef2587145a8061ce09a557306f554c7a10a66d66b55a5f04cfa8f3128b3fdb0424ca609d94952465236690c162c833a48f13226060f9c307bcfc5bdb0acac02e145677b34a551bfd4b83727cd91d27433242f2dffb673331105ffd6650a22a5a964558446485ad583ff396857c3b06262c94806e623594d5b5d7169aad10b91c849e36d8ab07e00572c9492d89ea62ab9665bd3df876a864a5cf7187332826030be504a72abc82d7669a665b4007c0acef3d6962e82ee1bad92ffef63dac875912eb53c6fe9dfab36569fe0ced4ec48416fedf76b9067b5a89429335994f0d619a43a55b3a6eb3c1dc222f687edadc7cc0c8d89a13c0403a31cd0df1225affd3c6ed0351c07056a0e2860afabe700bb3467128bf6b7a70f290a009c19b415b4e1cc421b96d8575a59f4187b7c091ae09dd7c0bf547a7dd6909749a332ca6baf815dbe1110a373a0d423abb283a362501552a934eed5ed81d95d35488c70702413fef00f69879a2aaad5ab307b9e524cd67eeed4b8cd2c9c63f61dc1100bd85f0bb65b7c62e8375329a9c9661e071acbc93c3af941e84b0b9cca5158a29d8c1dc9ba6ac40a32673396c77215cc1f922719fbcf72145029655ecfd2e8ded4c91693a407df037fd3170cff7d92e7e8378599550744ac748241d9fcb8da17bc846181596e2fc16203950fd568da9faf9da72e7c921e75ded882618f6a92c632f0f572220012518b84335b356bc8c5a2eee2a6c5851fcd783ce700698a587ee1cde057c0044ac3c906a0acabc54343c3b20c6f0396a554ca928f87de19d609a997c6742acb55eb7c5c5d76e36378b2a090d51dc4e68e4bd9e73ac835fda8b79c89893e9313e879e7299436f1a96666f1c7b434e2ee289eedc8b97cf30ecfdc74912665c337d5a9f1b72354a798d0cdb9d8701cc2024b760df5a061fc2b071a2c012baf67ef75465b2c0ed66a14eaf2f630ec1b215cfd6f2b85eb9ba50d6ceb038a0ff57023498ec241341cccb13411f08f4de8622f7478065419dbe260410fcd8f9fac71f560f64d87da15095b575d0b7b9728b8abf75b7d8a41887206e0d0ecaa5fff96afa4c060a268f2c02bc4510168a7f9b81ce5ded1c0874aea2403810d1c433c0487f34b6d0d2ca5b1bc3dc1cd7730308e5ec3bae6b0ba644d80ab3fd080c45d673eba08758b39ceb0c22a113beea67a16cc8c7638bd4769c913610cfc9b5a6df16674b76a4665e949d6219f8c84d85942797b45238daeb8e67f41bf66606042725a6d9c939ceec86e45fc72c2fdca4e399945c3c284e8bed627ebf3dc60f75bc06fa5c81d40ef3076b1aa42364720a73f67b375541125e959f21d60b14711ffe42f004af931d8d28173d3d27f50fa434996776ed689084007cc336a9753734b2b010a5b96aeb6602eb99e455aa1705d056e765c103fab9307b0620a716528498c0cce7dd2010b7fbf822a647e20e03a6294cc3d8c9d2d7ae86cca725b33e2fec0b4367e94fa62e089b7fe72e5167398d254985299b6b3a4a3cd10c44bc90f776ac28feaa5a9cf532a332f22e4529557ac9018b224191bff0d88d38fa2e0158fa8456975728fc818191e245ee25474445f82f89897d981d1d2e3addd9aef741743c04c4dc7b2c34666609d2092c26ebc7f392325a602cc3820347333565464092df09f7f35b1c7d5c4567baa31f007424be84288b854c0dab088b132b6a2ca18bc7e8c61d118afa38c63dc6d0de34555b435f56a570028044695642c0fd48f253eb08817dc012e15006c210700038af8952ecec0fc01b6e898e073e8f97d3aa890e92802839a3aa68f731b5c83743c2604001020c932e62b0c373414236a75f87b92d0737a85f98faf2f04805d52c976120c9adec8063abdb57f55b0213563b1868aba553657af74e4c161babf7775c1167c87bd0bdf52a262dd83ef46661e802b54faa8e071a9903c607efcf206f16f5c601ec8d84e5a13341f276246b5adc380259520366e113faa6b23a546b57cd458f6fbcca846865ff81f219af076c26071e9c693d46eae22edf381e03b9cd85c11e83de23003945f07f4289069465ce747c3444397c552d87b4e9099fd2dfa093f6a8a1f11ec54563c8d1546a3d2af5f6ec45e86ad1f19d2deb1722b42c67487386d43386a6a49b2bd39a6f65b9cc34b3ed39981f06fcb574fd1d8efefcb56c888b942742cd349c16ecb1992cf258836a3a4d8fc7d8d658193b24e2f7a5fcf54fe8559cc90ad1f0038d79d5d3ddfd41e5e0cf3b2def3357c2f04aaff9a0f51cac2fa45995bd96914554434083707fc22fed265abc7898bea322bcba3a839b372dc247ebaa98fc7c2f0545d73a9d5ecd65cc9a5d2af321db26c2685c85a6613a122f3847d96cb44510b2160880d76124ae26729178170bca34205ab09a32a8dfce9ba6d3bcf879ff315f322e6fa26625f6d8c62da28684a3ea14e0ac4584d4a3e9f713d6ea9dadaeeb03d8c3d8857acc50ef19f2bdc94261eaa8f5c1f1b0609644974d183e924740f6d4e53d4707dd22264c765e66b2213545174446d6a59d619d4818d215c39493ceef4d544ff3ae7e703d99edc5d2ea262986a83380193745ddd5827e071dddef73c7c09ddc0fecbccbdfb01766ced9be0f9476ecb3771d9ddd0a73e902e3297fef2c624598c32afbb84d1711b65d76d6891c8422c7464227b243ab9cc9dd639e9e0f74ab6b19e31218a472f80a0978e657adc30516eccd6ed8115d1cad088e15c5fca87c4630c68550a08361b0efac3afffef1fbfae8af3622819147e9fd115a59372cfae46be58098ec25d125586fd1acbad87af2c040b136b3d7d294d02e03f694fefa35f2c0d868916d83ed432a91dcb06e55bc09c7ca2fe3606b5fa9beeb933788a5adb954ea205f134dc2c06702bb6c89822d0a0d735ae24e1e4659fdcfd5a4af78370fd925ae298b5a6daaa4bbb3e3d541d87b4290407d91acd6798d6a12786a076ec54e26db86aa79a1ef8e08aaca74ef73a53d197651f3ecce0342731a17fe108b00a47c4152377e91cf4d48798fe60660b3c8c3aadffb928738f5ed283ded8ff63c00da03f3a1a3850b0fad86ee34dd59da03bf297350013b0ddfa9cd2dd9a965cdaea57fee827d9ef5618253387668211f220c6906b4035171f9d6c35e839a3379a5a05bea49a35248cb0a704e90781c700e76f551a343401f394bc2909cc9b0699b7f6e99aa40f5fb78eeb6830dcd10559f19d256522019c02c1386719fdd6bd7790562a7a68ae924c3424bf17000f53e17ceb2379bc3d7a5ff7d75ad76c3499e53f153019bcbdabd4a55a26105c09889c20281e064e987570c4ea505f1411aa1180885e487dc7e53e0afc5cab858076d52b2fce1c612037478f4935c5b9985a4950031e4a91c7180e8953d1b2284e4253da36c34541dd44ad575dcb99e6a7dd69afa694360187ab993d7306ad4dbac8617c7642bc40e3cf7b36ebdbefb502fc85a0bb0449df587557f881cd678fa8bd48966bce2161e630bb124af62274977c6ea54213e46551c4a5ea8abe5a5f3e39c6f334754b761b4835629a70003fcc9dd771475e083d1b6b4c0a6e4c95731a56608a4b5004be64467a41e62e6d02aa95150627ee06d88dcf6e065c4b3781484bd77c9cd434a49084f1696db5d676de5ae4f061a09e7a839e5fd1364b7b6e70b6b31e9be8732064bde31881c6087a620ab2236ce1b0da9adcf78843dc46d498436bad19b392f541c21ed1047b72fa984c6baf245904401897aac1ec1f4f9c51c50122abd914aa376564852b8e1f0179436c98037dfae51e2a2f19a0820fe8b09fb136ed366ca7553f8d0826d674d61a9703579fd945f44218a6eb7917819f423a978d15cf36565fda0a291382d937c6123a4b0dfdf805202c52410af4ead29ef27981c738f089c0cc1578e6189babfc2374cb62c7eabbb2e80de9eb12b158ff4ee9a3de1e82efaf4f15041b3d1722791a7507bb4058d5aa30c80acf5ae179bac21a938c1915632a2273cd9b43ace6d0f7caeef9e45ee8de28ceac1e608518b4f705e64a3472cb4835f15cc557488d17c361d23caa3d677eb43174c2ef914c58d59f8208588018f88f38d7d438723449c46b6f2d172da9d0ec9c68789ed5a3cf033251a6a56fe0c08092679dfa4fc706290531ab29b60838f3a9462008a331352378de6e08614ba7117bf0a273eda28b9f7340851f463b97d3b1d59e8e50431d851551c7aaf3cf578ae2f3639c0f0999a702af5481023df6260029eb6b6c6d0621037c36594edd3fdff404f16bac81140cea5afb29d7cfe9a9b6d789187e95de5550b454e97095b869679474a23b23b955e7628fd9b674a243db142bccd4cc73249478fce5c8e540aff4df11a281fa000ba22a73171b527c1c00d4088a062a6b541c8add978d7336c53466a14467c7371713f593f9a1b975a6e841c69fc625c955344cbb48a73d04971fd8959267abedf836be1a7e1305332918a0728617f9d7be49f0bd72c473dba11ddace472a166b901110deb031815c41bfeda9ea4ad032b6d05a561bfc8fae5fadc97c14428966b8df089467311a27e37d579671bd08518d21bb1139b9709443f364a508e45c568a06eead28ab7111e6e99c53474ea3c7667b77e96b50862feb1e0121a84047eb81943041d5ced429908a70df73a1430344806a997d5aa384d1ff84405c596af0f35e14c0921fc7875dbec564ceb0ede69969891164202e49b3a13c95309473ae94a0a7972cf21065bebb46f974c6fc6a7f37c0b206aee8494e2721cdfcd0035c6f75909208c1a92bbf3bd5036190c630f95950af94d301196e9934257f58eed9b1df5837e4336f6d2887fefb68b385006f1e0e91fb128526d693afb60e68ca476f54ad1cdd0663d6a758b73cc91f9231812f8ebee4c7caffa782a7a4084829f98ebd1f7fcee06907d5c1c52a9dc54ea1e0b1cc98ddbf0f4cc91bffdb23274b3f2cf310022a967879bd55943c868d02dab0d8d54f1eab1235e03cd057623c83608ce84e4e23ab4c598e40fb7b569e686ee5d2e257c6dcb5b378f4bbc14f7fdec4399b0c87a739528913d538b9baa14d7cc8f280ac57f450111f92e56a8034398a05c837d87b6751e333f4181d47cd72fe193de83473519aebd5b074e67822e99a72f83afe5af7f00fb81a1004ff99bdc09dcb2a5ede3c4d6c321b9bbfb2341294d6029220fb5efab40ad9288d3cab02b1ad04cf27d3b63967dedd89b0300bb97356d3a7ece249c5bf9b6ba529efb5a48ad25e88b433625db6d99510de49dfa94e574859a44b54fc58d482c773cdc4d4d5437feb8fa0bbdd683f37a4b9f4263e5a393eed9b7e5ba185e4068f08e26cb560590ff5f0d495b3c61212c39dd5f6a378a006fb09076c89b1bcb832286e53b00a43accb21b7519d56be475c10496e857fe31a3f15e2f2bdd8ebad45e4d31f43a2a9f5a33281f29fa09b325946e0077bf35780d5f3bc38d5419ea09e8e735818aaa8f5230f029d8c6a6a1ce9cd65a1671395cb12905c5f58f58ea975c9c2793af8868fabe302f93d0c863ad0db02164358d75a052dba5dea9bc6a7706a738d6a6f24359a42b66f441ed21bc8e0e69620710a735d090d771c5776351bb11c97b7fccb96fcd184042cf1a43a6a60b424530acd9910137eb7ca399949b8754f63e23843b8752d00dc4918af0a97436bc866b99ed4b9370ab2ce6de0cede837118f9722219f2006f082a76aaaa72c2fcc90273dfeeec02ae1923f6a406d87518520d1b960f0b307bf2c24723ff7d7b59c3856da33210c7c8f416ae5f25117fb0ee223957ec4104320a538dfa478802dcfe2f5508da473bb8a17c96768b476dd490fd36b23ab02bc6185f9003275631555aeeb1c3a1ee2445b243615ecdcfe3d33180e1d36158da149daf6b9839055e02cb98dee7a6252ad9b0ca88c896c126c4aa50f71a992c293fe92c61d87bfab01262c0a34b10b9c92e71720d59f9f84f6f26373c8582086720737f700da020262cd3067876457299b39ddcb476589f6df2295464cfa51a1b0b112cc7f5752a0e4c47fe9c91efb75eb995b4e513e087de6ec05fbac6ed9dd051a8274bff98acc1d1508fa3d17a5253ce80bb755de95dd72c19012f1e678e9847cbf9106b75066729a265b092793c81fb66347edd605588032ccb7f2c5813848dfcb9963490c958506dd36d4a3ccfb56a895ebb5521e58d55da1336bff89e34ebb6d41dffa45a73bbd4bd4e5540ca57c73529e9682ec2868f186a1392928340fc033931647cb4aba82257dcc006d50eea59131ec6fc0d9a335424d9718a80e0fd00e54ad4d1863dd8248f5572c8a8171808a07f421fa4f48735d53e5e585129e9bf85e7f2e19bf663bbd420614cffbe515c4c802089650b0031414423aaf363804676c815e227de803c3e25b80d166bde8f081f4494c4d6c3f795fe6c9e27258fdf8ed52638b003e41c69dbc7751f9fde4a7135cbdbfa263b1b698d907c8c9f09a6674261b768b903c88e9548f9e40ec6c94128500b206b41da174b5adfc8c0cb70c808b05bbbd5b6e81f19037811f1568adbe7e00f56e88d65c79a407aa711032ea0d4552012d6e3b6199378622a45519a2b9e74916def54884de78b30372186f6420a1234f690c454f645465d5d51e3c59eeb2aa6dd2fbdd67bfd3252aba061190c03c9ad6a76ef0227800ddacb4becfa1069194308b784c3a06475c8592588df6cac89044d1d3a84b374387eb6a669d82ead1746d348483f762d562c6e0af4953620635180f11c265b65cd494e23087ee398402df9bcc3d81d0feee589eea35b054dfad06c3d81212134a0d7062f020c9c100c0776471d8d3c84950aad8fe4a4b746faa3a86a3691cd101fa1effbcd2dab5ad34d3cbc4e2cd7fedfebc6ffcff2e50340986a95011de20792709178bb9cea9bce18484396ff04ee95b80a4c8d03e09f44e645008205808124d327e4853317bc0d04b6e6bbd5c39312f9d37f308c492a6edc9d4178516a17b4c9547062984dae10f635f804f8b873d11641ff369c2df40462034f088bbb46721965533ac22d565d466a90af33f82836f2fda2fd40ca8768ca08e7ebd4ad4fc86bf8911b169e151b2b700913a4b38da37c8cd9962b1bded2392a87f64e63510966fc2198c4c5e108454cf4d1d0340b2113e925993e76dc7688167a7b8598ceca14dfb352c2db8106bbc06e49f96ac8662f45b1ef6f9d3be6b37799627172f7dcd50ca1e88c47bbd994e5f168b616d2ea3c4a94e6aeae802454bb2493bfba005e4732e7d1c02f76c7a39eeed7d971616f539e3af3a830a007b0719b1d0bdde46305f23e88b48927497c3918db41936da691e0859cc18adbea4cbdcb4e76d3c62c1795aa2ce81ded325c46a9c8dfc2d5a9f421d89161896cc299305e7fd639f7b2e67d7a2f2bc174952beb410879eea568e43632aae7b690a958ad3fb0917b0e3460f87f7dd8e43b7acd16c180c483044d3bcf07236514f5519d410af7fe9d9bb6908d9c7b0f02b8c401e9512b9c24df5cb0326726e622ca446744dff32c5c6520c0d8910dd1411242352221074f242bf98ffbbeac0ccf57a46fdd171bd34d9405adf60e5d2fcb2218fbe9e6012270e7ff7f41926a0ae45056054b47b18e67342594384dcacb1af625e4af7fff7591345feb0b15c4e81092e6a50a05417361f05d04acca03f0c1bd7f119ba7c1272bd7c8e29db679596284136a52b3b441741cdf76f4bf51f5ef5f46949820504a9389264055962e824f4da98c91bec8a03fbc1880fe47e5d9e262b4dd2872c0d441664823f76b0ebc8d1ec9f0f9fc2d2fb4717b63d10fe7a9198bf16504423a01c40f8b51c19c5d7f47faf175dc5e03ea816125f183a66fa4c2d3de3c4772063ebf91e8a24e0808b28c4ca14ba4a5261366a590256b0472fbfecf8f422a3f16a48a1197c512c46813f760c06919842c7fda1aa3e38c54cfa5f9f3b74ecf329e6d3181869f636ec8121964754221a9c197fa98a70c7d4ec4d6d022826e0be5068c6421c624dc4d17c6c5e415d4d3143ab22996d8f6c84fc9659d61888ede0dcd9bac785212adc6b3467698cfc3dd632ce1341d9d404c9a8245d26ab0c7c9a3fc282f034b98c48338765d02fcff026ec8872bfc43261e52e015500ca74be945a1521ba48b7c00ebed0901a014291ea25d52a8d8c35434f5886a85907632c1bfbc6629fe60dd6c68a33a9fb35005faa66aa92ba6f75b81af465572339820ce887d868ef47c2aeb1f10108839e7cef210400286f9a9d9754971801eedb72b7a46f017d0cb7d7bf1125f1d683718e91ffb4aeacbfdce00f174cb83ef4b9b70c4d8ef953e6f5afb012d2d68129ada1b48960539e415d2b718325f556d5eae7bb71385a4393aff98e5edd47c25e09cda3fcbef20584d312f5cb71cd8c237ef4c62eac6288c52bfdab380ca4addca2a38f57c1d4ff4e1f7ef7351549ec20b0ce98b110bfa3c64af34b555de32e1107525586e41b5005062165708c0236c94b525dca01daf242d43984cb32c3fd155f8acca9f82d9d0d436efe7ee76ce52f1cd401ae9d448b6975d2082d8f2ff5d796e6efe04db0c1872a34b0d078ea1f4af917a1e4f0e79c710b07e3676d98827a441619b91eb2c1ffeac514208c80f477433d794b778f0ec48811a4f4c886fd18c07c94e8bd29ae2d3e0fa913ea1a739b7f605e15591ae77899b69c837558800f6096f17d3ef8c82a949f765293f8bf88f85320432b2e4d676e62948dd2dc8035a0c7d8435005e22ad77bd5cead15474924a204f7076f062223893a1a94a070ca3339690654d244612b8d056f22d4599d60a5550eec6732acdaa6811d296fe4b4a6b71b26bb20ab39c773dc63ee04ef12db4c2ac63a7d621fe5afcf17571e2fc723ea063cc7cd15272039664a54967ed54961f4dd598d61288abcbdcd819928e615199e9401253d2d05027912265722334f10b8377e4cfba6f05c79e4c3680caa4a9b823441ca07b3ff8e83e7e67775b3995654df3adf5b488beba8a551c634804ef9c06812a1472553d636dca7691e5ceafccc2de27b52f928287f886f9b88be154cd403b83946ae19d5a5f57a02c8a0f0586f2de0814c2b0b885275d90ea7fdb645c348052aa8c8df433c0ad13543f2c5eaa72cb5e97fafd4b4c2508e0c4513d5cf8f820ff600eb83e2405c91cb191d3020ff362be9f6b03bb787d472ff072405cfef5cf8718cf3459fc5a7d391142a01d7ce32db5e63c10545c2fa4383832884898550a2aed288e9d6820fb5bdc82812f8532f044a3f3b83bb9a0dcf2e1ae2b5ca3d373410ae79ca8862c8a3b0d9c7e10ce8c278b5401a90d7fab516d4f1ab3552d98285217fc8bbfa6d5c50facfc86ce89e8e6adf4475687d7081fdb3ad9ba3dea60b8a63dfc83fe927977f51213f2f2ee07a2d8375f56063ab2e9ee4a1ab6028535819b56a3e42b6250fec86e69fb4b30767fbaa648682c61e00cfbe8cab06cf6828e6ee81772e0cfd3acf071a54bcaeadc8b2852313f41589f10128b65e8897d18351d273d93b703d6a4db631f1cf45b90c73b249eb919f32f671776e2c74151a587508016c65b90f870ef93319dafa9f16c73424a02e526ef48bfc39332a3f36d8063269f49bca873164e6e53d8349e7dd196f8951d8e2e2cc1814fa54bdca3e1ff3846555f9f538c0ce14ef873ed8420d6ef8ecc31808cbdc09e25350763a39ac055a61e5ec700b46a283ca124790aeb2d752a8814e3efa60f4aa1eec2d95ccd4568dd4328af2c28cbf1f816b7b91a97e60431a9d65814310b1a828fdba6c22f92a6f3434328a0a8a8e357641e163a49c5a4222ee352ab4849a725275466087af8d0262bdfbed38ecec461a07879e5b47f6ec90715a4a19d5649b403c9be3561442a1d09894575ad97f61952895d8d70da0a647ca9a72eb5bd3b2171e07790074046134f3d69dcff0b98742d5b3c113a40e385701679730c0d05feea78e87b6ae7115a5083d56a45a7bb4e4bd7e6803c42b8fbd0ca06c8327edfcf009501fa733de1909253e58924eeaa276c55fd0aa505d3afb7e9957e72de9d4d0f0cb9f87b85a8bb73b38922963cf8cdc628aa110f89649a047ca0a0b205d8dcaa9384e18866f727ccd6e021da920a136ecf321f57e5751a32fc1d4fab84a3274875631148745643e2571c1d3a0220f1ead5397864ccab2d186d1b0c15b43e244b0a07008ecf689d4c0dd7014f1e7194304aee1202f304a4cf0fe2223830e1a7ba337b8ed6a094625d2118eed0a20dc18afe4b8d079ae43ddd3f38640386ce4c89838787d2c8db92cfdcaddcf818aafe35f37daa1b2b46ab5ed54a5eb988a1a605dd385c8233410191e38de7964c8975fc805f1c60643e8296fbcc37bb98c981264c00b4c3dd59053da90b2d01176f9d386f922190d0fc925e8f0752cc817db54e67eb6bf2a9b72a50a75d2495994a65be31e9c942552c8cb96c4055cc00928524ac29ffb49927108cf74d060796954371271912059c93ead429f34e700aa0a8229aa117b961ab24f441dca9f82118598287df09bb08057c97145a800a537a158eed827df00ad0db9d0546c92e809ca6de24c19e7f6b5db02d6063191857fbf06ff5f757b12a6f522cb4393f8a97d4d69d87ce7fab108079fc38b0c6fe4e2204642bd89ec3707b0aa4089e918b3f09fe22fa76c660cae92d7ee01d10bf663f029dd697f8ee5d28fa50d5ed1ab293e9de2c4b8bc6bddfc2289a90aeb2d129173a575e31aa7051c08ab9ba1c8d5f1321aa9bded610d74c20699e09c883de3a93062c5ef8e4a1057546c7683e9860fb643a5ae3c371b383baeb09a944af5b05b6ace400193891f42f145a6b1207a5f8249e283e1351324e9f14cae0e4d7090fbee2b47976cb959806fd02d3b9179646d0b2264437523b0bfdcb9a8c1254e31c2110a7f577e003d2753a2e863ba15cda80d7db3df4d8a8fe37b249d27c5f230b8636df6eeac90159357f49911b3f6d406142d0ccf8d17b6cbf45e455d423c48df624fb009e1a6b2698fb4f0d729c7ee08cf95bb7d6a6335d63ec686a4b4ea70edb248b3d25f20484700ff6b23d62c29b40155c61eb9f48fd4b36a07d5ca20cb80378a71015248ec5065d4552ff372d53a73cfe35ae07d0afe7a8e424023a7be66f71927e40a9d78bd95f725d1111d3741cd3c104939dab63192500716146d12a6c4c162a84d758449b5f59427fa9c6fb162f16d50f2b89ddb9f197bb3f029ae3cdcb091734372ec142e485857c589c884bd4344d580a7223bd89aebd033ea0bc688c6b883184255d2ecc0f249124e39dc27041c65b8e130828ba37db41ba05fc3759753710c10bd25c74ab9cf358ad2abcd9aca916ba6848a62636d260480379be348d4e42c784510b5ae7dfa46c6f3a06980b83c9da0ae04025504925289ad78bf2db837cec218d542207880d56053034c2317544a94523f4a497ee1de78cd2d8440f348d8c5ee805187b91c88ba864a85e679e640597cbe7ce384fc44e3b1baf6f90e5d8cf6750189e9d0cecbbb61a40808d84ad0629b03ead3e66db7232409129c8995f676ca181b383fc3ec6830f89fee3390232ab43fca1bf2fccd689bfb0e6583e51ca8e9b3f067615184b9eeac5ce5ba437506fdaa9ce066efcb7fc508902f2e8180428064ba0deb18a7c3d1ce975251b79a23887a204528b4b6207d41a1162314471d6ba42a0fbebdb3d7468c0d90f302e36d99e76e124ad1ff9a20bd93a7d669bcfcdc08c05d3c1901a694e65a36dca5249e28686421b525dab940cf5daee3e3ef28be9d5ef6e718e4b008c38e86bb66ee0f0f47af4d259c7308756dd4391340e5fb9b5eda0ad9f4d13db4329704879d8096a2a7196c437e913a72f836ef7d9bfb1c3631e9c094f734736a61a77c71b78868b137404078b6f98575f8ea4001648b1d69470b2572ef2d024ea757b9d10cec297659ebc2c34ff0e06acc9f91089087e1894ad0e21848103e9392c3408e79fa4fe4010a669318c1810e239e0478734da2fa349ff9e8821451c84344d885680fa1aef4dbd783b93fb9f435e118f0ccbc162e9487a039bb7c455bd06861b72c5781f70963d87ed158967e0fc9342060e16d4dce26334b3fdc7cbe56c143006649b733cb8dec9bc76df456090e3d63bc2f71833ce5a405009f621c120aa81c1afe3d40e0bcd6adbd7152d42f7b7cee7816fb43b4f5be77372f5817f6efe9c314fc89067e21e37684618bee8fc4afb1ff86c881089acd4c569125409fa603635817f1818cae6347aa4f63abeefcf50021123bb970f43396b4e63bff90e11e21022053d204d13660db724f965619053f0e4e5836a9330092fb3c0b50325827011324b66604ceb16898d11b66ca90b7c1a9b299ff6f3f428c9770146926636dcdef7a180401e4be14b6711ff58e90fd23609c32c71f285bf483eb5ae6e6b0aad213a41796460244189ae781422ce52718dc32c9b1f1ce687f040d3d5adda062102a9e9933f25225efd9f5941325c977947bf52b66c42f61e3bc344773d20ae70bcc2906aa4030a0a6c196b07c864eed01eed15e1fa0183cbf738469cc0de6301048f6bac3a4f21c275f765fd9e8b5aa2c10413a06b0a465c6f5e2ffcdeb5e2ff1e0118732b1179513c170b73caac2eacb917f5c31d587338ea728a45fdf1627a8b5f5d50eab1ab407d5cec5f8fb110e4ec786f078333b87cef0311ae6a225a739334a15c89c67bf63f7a4b1db2890d664135e09ca01dd91a348d452c9d9f5c6a47d804e9a74582bcf6b1889e31ca1a3311794c612ec0c9eb9ca728cc3813ef6b6340590b270f384bd9cdc8f401aea2314b843d6e1f0b92d70e25c4f33b84186441dc04e0b59f684011d9e68e5679864ca2c605736e49e7a798ab631c07751c8d7170966c0950f71b08c07e8c175106d61d14326e87efb494f7571f48a59f1d98307fe1299e13fefc9c28e5c80acf234558cbe581764d0d2d57e843471f660e426cfc0e14f561a2ccf936dc28635c4f027cc77f4b59e4ca6e3fb57bff06cf10f45dbae9ead9230d701db0c4b0cdfe0874fa1a5a5132915bd31966daf66d4408eea22f5e37b3d017b1f71cbf2b9a6e9d6529d49916f76cea3d8ea92c3d4194b7330ec2cae6bdc5fe631405a8660cd8d2b92a1513ca4c292d1c54146ecb202e9ff834fec8952c0027022b87a852f8dc6f00329869a596141502aaa25904cbba5259bb82eeda96bc39eb152ae89268ce74f0299238bae26f1157e18ba623bf772716a5bbb517b7793c9635dd304026f7f12969550e0c7e5c0b17276424a2ba019c245c931501d2d302a2fbdccc5dfc4044867f06660cb7f0a456f986a3e8136a00d4b006f047a705662997dec63bf7c1bb4e34e3c2a32d0200005afb4e22aade843f023d14a98842dbf3165f11b06810318906caf05c41a021e68a22233619c89b927088f085b6d9d102d779b81de37d064f5f25b493c0d3211cdf1b4273cc5a4b9e139649f3918112e13b5486d2157b5853087bebf1442f8f0f04c70fd69f0a8e65b1e315be84b8f953fa6f0c443206e888cd826006cd36c62f3746b2ab47e111590b20e4ee5f8a0a495cfeba307084f26830d9e170b6b7c9593ec3b81a9b0353a2f639d3887ef6157ac11e6c49d8e69991c01250780719458a830a74ab11203eb71615122ec47312d840888564f732d04c9f8ea269138418003d44c3a071021c9503812a258e8280029a0c3900085ae5100cd08a0e84986eee155ae31964f069aef2a598a396f3ca2c06994fa3c4516014292949a6cc67103ce0deec62792137894112ca2a6044641a21ef1d168d4a306afe36642c9641a97e52a39f47b4f2e16c23c2cb8ff53cf6bc5b08a5e0e9acc7b0b191e3f6754c584cd8d5b4093391a790aa0248563318a2a8eea1e9469cce20b88ddf6703916b6accb97d0a6e92243927174bda2f9263077e52de4361b5cff5905075b843157e7fa7275169f6f29f02a594e17cb4b53349bd27d500a1ff36e7ce80b42b40944f8486e3b7c2a863a1cb713d32fddc1a4189a2ac156e9969be73e1a14f0dcd4a1ad17d366d9bd47a6ad84b5cc50785f81b8cf271cc106c5b1929ca8e1b05e71cde4f780d727d60917e3306a00705280639a733e8c2e01a24fc6b61e33cc02a7c24eaf4f1911f0fc883881952723b0e0c899472992764c88344d134fd9750a68582247464e14a7eccbe93345b8b6ac490ff23ff20cac68858c0bfac0ef597526b606263d8ced04d320232dd5b24a0ac488856c2f76eb62d0705a55596106741c19902c4380d73dd878c9adaa4267e36b24e5815a58f2b5ef5138901d7c24f02907ed657eddffd79e38d92e4202d033087ab3c63df5989ef788ab503cc617733af24afd767e1b92b4bd9c0fef6a106febe28c0f5553409bc29ee8a2d2b8924d9302863806896639c6f5795f2ba6fbd3e6ab162940fcf3c2fb46fda61f20ed9f41dc036735c87786f37ab7ec1dda58505eb96a87a892539b7c1bece9e729d7fd79407def3c1d42280c4116860047a9da9e289fadcfb3305dc62167faee070e692e21dfd1420f2da14ad2ed0f0c5ac72840971a71d8125cefb7c846d170250c42b6284872426e9690565f12953e6f530988953f432d57b4a01a08f2b28189ab08e537533fc099c0d67b6fec0eeac3f664ac82fc913ea6e9ae6f161aa2b9c33e666dfd5d648823c893e4237ec2fd87de9f889205aa8b38f8004fd20df4172b3cefa13369c29061f543ea1baae273a0b44861bf0fd99bba10015dd3cebcc0f3a115b3091c9246f9f6345e6508685b7a7d7c7a343e943c8a6b93f9bf12095fdc947b53bba131e6dc1e05c38e50e0b4e93749268630057cadea7c9de5cf2f9b31332ffcfc5bbd26638efa5a17e8fec4313070ffe7bb985aa2f1b753a558222bd55a460f78e6741e430fdc0097671c6f26b2821de982b884eae2d4cc5830512ec9c5f6307e48900ce8bcd5b1b6d37bb38d74decad11fe1202d4504e6f14ea6fe1e6f28143f19b82db62039406890687f7ae97e46c7ccb959af26404d7f8323e3896079c0154ce5228dbb51e56cee61b869c6033fc09560363b9e5b4abc20cc1eb319e1bf36420d02ee3e35499b7035d1d9b8f8074250c345b81e4fcf00fd935b6716a42401a97cf8d3914540f1abd80973a16763c593820d8a3f726463bdf9fc3177bb14b46765a98d74c9acfc18a5000c0123655f8f85c156cfacd302d9546eb309043be8285238667886ba5dce5fb0cba700264095491f400d2d77983b8974374c6615105eef2422a543478c8a6526fd49747310c33176d607d27ca0477a5e5fffa21403d38c3b9be03c7aa54eceed97f4182386d932c9e4cbedc902a7489f1c4e5ece41a86c1b8a1a3a9d7f0e8e8df7d930dcfe4c70dd862a81eb878177cbd7b5593f2f2801975824809908f5a7d25c184c84db806c5999ee86ae0e4b1db0ec53fa51036447a71412e5c6b5f51da8c84e21c9da27af7402f7ce97990123ff583eac1eae6455e2cb35aa3441322d6be78dbed6ee551f12610391055d07ac70abbb7f87994807cd1ba7103ba15c3b78c77cba8a4f53ac4d5bc734a02e07835ac2f2d9b491067ee9a309eebf10bf1281212182255658dc6e6e8c79b86718702c9e55d780c405c4221be31e870bd0c881e43300d6660706d6a6de4c42a522b34a874717764958f02ccec0470d9e08826f67f90d4910c3afb9fc854031932e3660afd17c4b4eb651eb26929412dd101b0d7e8a6d01cf296ea90277302dace47aced3d59df1f326753bb752b88ceea1f731003047162b64cf09c1685e7e1060b5cd18987f23887687099ced5842508d6bfbaa5943eb85b58df3cbceb49a874c07ad1972f61700777e2f9ea07d2888cf283d4cee9ade6e13769f09e1c30156d540fc6d78c8512ec1e6fa0e591d01f218e52539c248d86b835602fcbe555409d2a5fc57fc16aa629d78e7320f0426ebb33e12df4a5510e30cfb940989cfa89fbae764718b827f05db06b07ea16e8b0701ec33d00ac30680b1088e9826001a0a05b0dea85b3f09c8c000a6fff59c435b1aa491f0027dac2db6f715fa8b7782c6d9a09544bb3f425dbd5a0330dac32ea757c52e71f52e96a68555b42e95f8fed035864263d238baa5ff4ec69f796471959108c1a3521517da115dfb61603e907e4e3c7a36025d7ca4101840b71bf7eb014f8ec488bc7148120fdd22334e815bf25623f12901248a5ce4014947f15a207b6a1eaba59f6600d71d062481b585fd92fabd912e3aca38f88acce6355b202790403c90339890257cca9cec28f5b94c9b33a2523d8f0e33e462e6f59829483426628169c58137846b12593e340588a964c8e0143289e50390d48411185c939a29ae283c84901e154f1d2d27320c415451d989cca3cbcb005176c07fd80a985e96d447e9111930669f21cbd854c8b8e695f48a822062140578ddf38156206716450c77f761b96524d5192283649c45b825827326f92581242bcbf8571615f81c13c1d3372d312d3fce708e343dbcf55fc110bdf6915179f464c1b6236fae7f82e62ea358100280bf2072f9197780f4cf4a5dd3a7000669bb688c0a12d05791f9460b2a5793350c0da5958f11d2cc3e5f320c95bd54c9689b86e44e838e433a006fa95377334c2fb0fbbf9870309347eb759b10bfd88617ceaeb7de5f4c73bd08325376d01b9bd92388447bf5a43d29a3fdda7ed0cb7e14fbdae72e9a92f3caaa86ab1641f21dcf32068844a97cb857a963d21b434fb7a9b5fd503907b495314ee3bc58ca2d528959ce5849c68e43529edbf886fc22cf760b4d25040537a6e575105678124595280bd8618c5446bcf75b3a8b21b737dc321dfa5b60441af3832fcf82397ca3e6897db7cb9e1402838ed81323a37811c278b1b15fad32ff4bce0247591d459d2c07cdd2301113116601ab201a72c0b5b75249dfcc0e6fb25b1e1e5fda732d68663d542fb8bf2989d8a836f9742e5f34e14109ab48361dd634f8611a38e5d5fce60b999f68e6185b3932490f2b0b33ef7ee9c4f941e6a3ce26cf8d94d9e6715c30c7426f8cf61392b3223cdd1738000a43a0e0d5e40ba0ec867e3c397865f6f2abe352ae22b78102a72477d15a2793022c741aab6e40f2b03a10903f9d721fc3c66df70da53c6af4f99ef62fc272fceb7700cd9eb0116965b7d17dc8938dc9adb4f3b48e175ceab83b212ac9797cbc6939a8c2106be7d69ffa1dcd25ec829db393d8a46df413a8cf094bc8079529762fe72d07cdce5369a3e021e99cc6a0e1f379456c0f9f76668157b7284b5b5086fc44c1df3b06102d2536dba35305db8c4c20a3dc776958ae42eb6d5b8568509ea480da0d248d7fc25f2689540c2d6aac513a0d846a2bf2a51cdb09f119a4a8bbb10ca44e5af3f9d42a95f2f2322e7b365bd2f340eed091ad378b115538f1228fe2070614c9dab7e385537c81ec4cf553d95246bb31ef8fa43f4015fa8bc64cee189799b7ca1e3319c5866a98df540743dcce1b10b840c119e5930f77751e993d5a39434c7f26eb88ffcd680311e848fab647627477733f12c2eab229a84986d1791ace3e78eeadeb8c1a13794ef008ecbb88a74bc55695c441660ac4efacdcb030430fe818c9f62c4d455a98fd83cea0019117788dea16f2ff50638230677963590f75127901a6fc4156786930b42d1211b504524edcf210e22a2560678bb591706bc715c29a1e0ce2f7f3e88f6964320fc1356b5f1cc496f0b5ab85a9ea4b73543b2f2707d695f2732749ab97422de62cf29230a0b58b298cf9ac9bacd14316a7add845f7a3af45ce8215c33873ef47eb5b5b632aaa8daa8f7d1dc4f727ffab48275846fbc4d7f5b8d57197025965001da982a1d0c2cb9c0d2f98f401da79e2f0167fe4a0c6b527901c830330f6952c99a0d40a6b0527be4ba6d342996264668770748a1d3d3ffecd62166f7df60d48b5d0c15743930dd801e11a0d019254a30667f702bfd2bd32500f69e493ca964f8b1a709687fca38944e92865b5ed153736e26c8836530dca984074fa0ce46c265de187cb255bff1d041918a5da82020e9439482cf7d0199b9a9c673e5e1c413fc6d667db331a7939fee249fdb902b5b41a9fff41814550289c57b3deecd82eed73ef8060ae2b5f2895780c9f8dfac0822e07a6c212df213a5071a384b799e82ccf2ec8f2c135b80ba08c81a06f22cddc1032a9de8372b583409f4b935befb448ca6fd44a0a73360aef437124e4747bd6402bde6b84dfe3b445fa7666ee6b1ac9f4b791859253ea4c34538a27941b361494f49656dcb5df9e0f2ab9853de668ba975d0dc539140bc342196732a045ba7b5fcfd949182a284df477ebb41169c3f9e3b0e643771555a47fd8da738af4002a0c36c8d1d01c4fc855e2eb00aa71b0140dbbc84cedc8d73dc8bd4f271348593c350b367aead8ffe848830754df94fd88531171e7be0786ecd94e9a74ef0a5dec19f16fd3687bb00dbeff058de740efe0a97c7169661524f8e6c7de4f3fb6e8854a05ffbbf1c73ecaed6e1d73984e343467ca65338f317f6ee40f8f6b5d66b0e3ce08154e64ad21d33b24ab30dca2b7487237b124a1358e33d4e3589569231a067b37bb6b053415f195bfcd87849bcf5b6105a2e519202e1bf63ca99e99d847204ed95e5e060a441b87b871a0d544191812aa7298b1a5d72f729efba1c1e882bb5c82ce88e39a5cddebd4cd1eee9f5cbe62ec93c7743d453dc5e5d12a3e43411581bc169abcee58c0e70c3a12a19e848f3878033001cc64f8002cd522e9eb0574c51b30768da50450463bd924b5827dd8837e0bee191740a4d528eee7899dc5c3ff9997351acbbdfd04a6aba53bcdd4b0d8c878aa8f6ff52704358324d9cc4c3a17e172a0bb7e689f48087e78c13f3d6c4c6324e49ee1565d97f619db5c1cf0ffc6b05080f433a62a38b5f9a2ea625948178d4f83c0de05b9021f84bb4ddffc62437b1366c08ceb6d201ca0d1f5c510197cb1d095f13b6f2991ab8f21b89085c200b285626e62a393f49a1ac59d85a67f816a376dc9628679e815bc138b29b3acb76eaaa013488e437a3a9bd62c2e68f349d9fa7897af10a827b5a404e6870e3d5e8cf577a860446796c54b07ce8761079f07c00927833596f75702968848f83bbd2aa5f434be7e2e5e0df8165ce840db41340650432fb29aa228822ff072d11b531e33d86a80e8b0181916519f63e8355a04dad97787191bb8c2a176be0b80b7ab30fa83984bd509b6a5d12f118c821ce6f2a7acf844d321b83c9f338b2117270596ca83a1557b753dfb09bd57473eaecf8c9da317b66d164884af3fe06a1caf78b7a6e63cfb6bb004d3e83989c7e5feacf8059484d46d25871a1461c6e2b2df40d650f6e684c2f0fdc667b1d0ee04432ddc2935d5a82250e82d5931703dbf94ee5f7d9408dfc782a22a3f231efdf1ce35cc7b7c8e2befd5b9ce205b2c0f7abdcdbe213b38abfcd9d10fa9f7bc8247d5f19966c8177febcb4c647bed8a3bc08f1de14617267cab46c99b7b17dab406b5b563717777e12cad565ee5458429142133def7375f958d7e4d2a0406635c30985c1c2363dcfd52f00034ab082c1e77da9162c9af7e590cbfbea18f437a16284a1e1579b49efa0b5a8d943ec5ef30311bb48c9e3e0ff527d4ab25e6da1844e52e8cb0391ee7afb56e6745ac706d7051744c4cb0f424fdfb5de40f521c5c23ecfaf4a0f113fcf9b7f3aead25925bec34fe2cbcd88cf0ad402cd1a69e195c6aa0a8ddf3bcd069dc680e2b4049aa335fcd016e2dbdac309f8e267e1e88b9acce9f98cc1b08365f53203eba75d4f82a482ae78d69ac869df7c7d196125b6689371a09f8029aab915ac07aa8456459eca47c878d82727503e8a773025a4b18f7b472b050663bc2e281c24a3e26bdf6a29f168483f91d7847031d896121aeb63a4eb16b568589277685c29011f38e063096ba0c7eb39d31d4fd4433a768d00ccee08cc2c9412313c4e3a3431fe50494ad4bab76b42301767e0fb766e7e2da596710bbe509c451c2fa02364787d64f7a97176eba81b31813c4e4c6715857bb92fe0f640209c82fa96e53eb3a9fbcc46e70b5b37310e7e8cf8733e1632f4832910769912d7a914b5069aac0f9936c8e108340630a6cdf2b66ae8f96ee839e5bf8cd8fec580293898270f74dca2135bda80106d630248f0092b612438686167533d55430f7a620e5b5681ce5546db9c64033f1469a68230ebe961955f6ffe3cbcd51aed10973cde58605ff56d7ee85e699cd97c7885896c0819e6ffb944afe5e3c09e1ee6d097662fa32befc0c441da567cf962fdf89134c26683e3200576f2abd916a1ab154b64dc44e0b7b2a34245f692db13786823da27609a539b5855fd77b4dcd35ef8fcbc5cd83941ee5925bcdd474ef7ac50b7d81903669aa12f1866604699da1781e5b5eb39fc38a1907c33d3c06a147faf478e7e5d38a508b7f2352e118ecf547a9fe9489b2745002cb291fdd22eb63a16b62ef94b0e7dc189b03b3b3d81a7f9c88bd4e652d165ee223c412c77d7cf914eee77f0ee59b010e7a01b8ca8a1c20edf4bfe4200318c40e20bb3c4a9aad34566e4aca72681789090b5c7160ad5af1056b408499b3f59a2b4c5f9ab1fc180966ce752b2e3021d46b6e0d9602559d4315947908c0d9b7753e24ca5d5c97621437230332f83416c52eb5366ec135b45694679f6791dd878d9836639161f866917f76ee59c5f4039977c557844fbd121839454674a7d86888da900b7c654edae5445f58166d8f6f292025809fa3026c203dcbc1cea6a4342d14e5690a7c6852345480c36c762bfb5ff0776f4eaec5fbfc3d0bb0332f0858990d1f89962b4e477f9055bd0320792bd4e06769d77d7523fc92c98601d2ead543dc80ff3b63f83e82b43a26c462a7f10de02f58530c91899c2c662cfe9cd22ec5b1e2c446cfd1492806e78b0a49ee9008f48ef302327c34aa4b101f17cd03d841547847113a761a65b0c241d928a80715119695fb9e4ece57b127673acbd3ee2af84573abce0f62511a87de5f87ff08eaa04bd4484376b698133b195ae3e9396599bf208d4335b4e0c5909d3ac4980a30e1c77f6dc4bb22b105a2f153b64e4a6ba11f49a3c3cb0eb4ec5bdd6def8fbf1cfffe3b71e8382cf55b6e3e8b02a16be8e486b50e7e1ce4009f89fec09491f1905e051f195e7aa51665579ae34e1157ffe0b3da2fc5b3e53ebf8fd1244119d9ad360e423390178b299c78350f106c10f5495445e0be6219a82fc6f5aa36d99e87fac3789ccf803e718612ac62d808b0289dbc2632f4032f591eaffe6cb4a225ed12431bd37e59fb93fff8d288a6baca8831e4f1f430472bb77b2923ebf7dfebb4b4a3c67e5294c2bce4290aa6d109766dd4b90a6ed459601ca699234828d3e052c4ae75adb731fa5aee79aa1ba612e68a1a731044c16fc88ed0c50a511fb4b76387957e44ef0492ee4312b9fac6756119099e7c9371ec1e3a3b1d182b842a2d53280e1d53939e025f4927455db3bc567088f6d246a7c824bdf45543cbd219d10c16a256253d2377753d76a209cf3869ee6b20a4daa4d1787e84b40974330e555fa46396e958cf4fe0c5f04991dd28c56f302d3bb31130d70c6bd18f8cd240dea26c42dc48a09aca61f1d643b3f1225a85ca99632d0e7f12b41a740c70e3dc3f573ee22c09dd3b245cf10697a3c1af28eeed3afa5632585dfcb5a4f6a0be7306c074eed08c978ecbabb76dae6376971878611bb225c0ed132c9db49bd3c8309d3107052682952807e8775e876d29f88c8e36052317499a36dc88d883fceab2eec91de271872a639666287735677d9c95631e87584b6421228c580f912e76194e951e8a92f54de20e809ce3f4f2158356aee7997f93462b5967b516e025db7ed6a1a125c00d2934aa5a92e8e778e8b1086de7e487dc00759fb97763f63dbdb7162fa0fb7441fb5609c035346f784a800365578361a2527ef5cef7d012cc7e06e922bd01c7fe7b6fc49868b1465c996b4adb539702973a3d45d97d34a5914def0c86ad42ec3a58d7650aa1a9d8bb5affa144bc7e1456395f1f4b876c7dade9bb9150e643dd447252375f2a435462f44db36287e1a8cf0c3458871b57e08cfd8fc8c7d831fcad7d81b3bf1eb4ad6117252a83a776931070d1b3c687abcebb2b8fb0cf33c53ca76a0b82fc3fa70e05c9566816edafc60c3985348ce12102faa5113a6cc4849d2faa4804a341785b4dd63c8013589cb810413b1d50dd29f870dcb94add2f16057398d64428ea575aac9d2526507e117c57e994b97a58158d2c1d8070d41c25e445a28bc586bf4a79318e413a420be9097115765f345cf22f28589c75101545d0987e95ad5d0c6c6c3b5979a0e1da203d56d0de36f221ac3d076cc998e4230000ed4db1326371416934010646d96acff6c0076a005e0238970e8a5ff496700cc1d61681822ee4a00b7c1f04c7c54a7b548f2f5c1c657981f34a0377af916a66d5f73211920f9dc1b355756a7975fe16e6fa4f9038628a2ace1cb1cc3bed8417374ad6880ab3ce44ed38e84e4e4d09eb7c753133bd584cdd5c1739c9cb38b293efeb9a180d71fac88fb03c1544ff723704ae558f6d459a324064fff96cd0ad041ead3d0d55cb578c2bd2c60fc14d5482d9c1c64724bb79202b49fae931826f778641465576effdf6123ae0f8482d31c4b2731f66c40bd5bd42f5e3a4a3268e32cece9281d291b485218c02360032d88204b059f92144ab757cc133e200d01694b2e98990953b582254c6e926cf330242d3727fa242779b4150c0453b396530948e1bc03496902e8d9715e2c59c3f9c5e6fa39fecedc75616108efccdbbc0ed2a01e8b9fbb3e8b823e246458f80704366bc10fd8b9765723765f0ac0df97a53ac05e0857a0cb6a82efb96c3cf07861efb803d92060103185f346ac318bbc78a22f64ffe4d860c49157ec4e3e2da898709bdcd0a35691bc1291c53462d486fab5a6b323885c94d5c166b831071b37c5f7a9e6077bbdee9eb00cdc99559e8f38675e8d9d83a16ea4c70dc97305ead05a2e413476153f9234fcb815aba619a8064d36fadf15dd9c6166bc0e2e5bce4d3452f23a37685609891026339825befb59c9f69215194e79d25eff24965697db8b3032ec9bd526a4200ba2ad1052f86b851a1b0e8b3fa9fb74fc93d605bb9a7bead38422551a4cbeadf129642fb0cc84c2f88af14361bddc7453fec64fd28f0325aa69271ab679757231fad8c84ab1b0c2d08c2883de2cf022e454bcf5c88abdb88fe1c741ff9cd55e04969ba0bbd2da3afaf1b0e0964a8252bd476ecafc2058355d834e57c3e36be79e9a60f5a21b75e8d5df75a0130782c31d4fdcf5214ac6b1c25f05a5abd71c3a8dfc7f1ed308aadb949fe5c9ba57ea9fa20b5116a424bc42e5cce7802292d6ad14e63ea05c954a38ab9e55f90074b48d6d31912123d44cacbfe27710ccc5c1548adb141f661a0aef0d5db12e2c4044334e3eb79110d162b80b80db8c955c9edef1b27a006ec26f48a7cfac98f98637153f58c3481eba24419fb15c8ecb7d5b12f9b66d0361473758cc0fd8d09e29498550bc8ed8ac7ecd85fb96c839b15203eab830a83295c52a85a36d90d7eaea64b5c560dbcaa6e1cc3a5db319aca9207fb3356e4ad6f29df04a2713dbc2eed7c3dae3810c32fac7b6c5dc3b085d885d84f3db2e6e11270b6a3dde440c6f7bca7260ba91506970a7a547d40cd3aa619b21caa58f02bb9a2b39523240850034914d521eac6db069169102c8fa094266c96b4a4407b57c6f846ab5c086a258e2da19a64ccefc5f51dae9f18b007e43c8e6df47c7f525b4f2813183a6a5d0f964e3c52a1713c772a8ed790cde48945e033a055687df4814e78782f6c7e1deed425d2d1bac1e20d7a5c4c18062294ef660a02f971def10833459db668474f3d0ba6a644c3e460e57fbe477ba5d275fc2517d247d9a0f044097ed4e468fced1f7186556d515c60367d583414f4027cc16fb20bb01f91aa13368cfd054ca89feed04492fe5fd1dce8787515a5b35b4e051375b1d1353e2cb0cba68bac6ddb05aadf002b432beafde834ce01f75d99d1f5c83140a835541b3d8e41db29502c371de7a40b7a2f39e259f31939df0e00f49f6d42a1ff8dcc9834b2b63896a211f1469cea74033aa351de4b2a7041145fe196ba0f9979148cd16dffd3b7496b994702b438466d7478fc75b76d06d6b83f9cc42e24864bc550488ae380087f531796eef092190b8a9ad690f09c00eccd654f87ab3122fae727a00ce3184cd965e68e6ded7f35307498066717f2374616f7a2550576d08ab817d18ef34d3fd30d6925a0703fc79d779b23fed197452e2e83949e22b0a3fcb18ddce64e32d3853e78f1382d49f401d205afa0206ed208d833048e446007d9a535a3118d0873a2341a02bf65c6d5ed2a5b348f0f505f1c5b109c9bd65870a7a122138fda83290bb9d2a3e1d1fc19edcf46e50204b46401834d5268add6c3c61eb7556f586b448f72db5826dafc841d3c5b190c263111cfc74fc4340993ca613c83308769635378449d9735c48556b45ec198b3f967342adcd7aef944ff3f60a2735afa802f635b18a35c810bd0ea225a0e9c6ef7c76f75330002c368ed4413bfe9ebd5e64c12ab3dceba57d3535f1a507178691088f343e75cb7b1861f6d61938c37d59e33e48c673ec0b09ab0b38be7dc7be7a4093e2eb5b14313ea45e81cec88c89fb76efe13349bc8c34ea900d2cfaaadc707b83cd2641d2c3a63262330377283d875fd551149880f59d213c0e4b8aab7caf40db1a06b4e0ce13a6d573f8d37de156ebc23c50772327948e5ac07a2373867b7617020ade0bcac9d6d7a400af5e6187200b03b7e7359d4eeecde6b4f69e3b483a6b183de4dd522a5bb92697bdf2f3f861e4a22c10779f341e42e372b87eec11d3f4929354b201174a48af09746060e0bc0fcb0857f8d45ce304a5133849c12e9b85a1e0e6abea886c81cb46f74d7819980acec9c6160c3b1e1caa59b02efa1e715a5d22257882fed5291cd4f22045e6cf593de5683bfa2ab1e7360881787c6b6a31914647dfb8db7446d11cb0731f71d8a240a0ef67b1dc6177ee4babbe379f9ea207899343bd1418124a9104974342a22852707256e004454a4ace81a11447b29c0784a358b8620db8423184c871441ac508468e019da62194e6f3880c4721b88565b3b39290370162320cbc41596928b7edcda4726eb9923ee73be965fe15e51b7aa1185586a1f851cc84d380948b6a2125e7d8d5405a266fad713969d19db28869791460239698c015ca789b8811cea34fdad091e51d581fb20f649acbbea241a25e2ff6b2c54a0d158545d46a59b9bcdca7209354ea607ecfcf639389a6ce05409230ab888f543151bc9719133e670b1ae20cb793c53e10693ff1b24d1bcb49b21a3284b570426130888d41382cb47a32695c660b1bcebb4f9dfd438b2d002b3400b8e1c2e4b4be605639cbc841ade11528b8be1c4e8af01df25cb01cca447f3cb5b3ce220d108e9c8cfb0f738d0069666d8b34ff835a67447de31432c4edaa7d90b5a24080c6fb6a74b700b40436b11b53ee41f73fe6304c38a1b5e1da6afe1a322145741701cfe116eecc57cd86547b75716c803cb21aaddd0964d6be8bb903cb4bfab3b1dd4795b698b8f528462df773bf3800d809900c61c6c6f5ab3923b0dd61017c4f88230b0e92194ca84809ef4afec511e9aa2fd1aa602625002ec3818ede243daf83c177b3cf71b2b261cd9d9832ce5896355b49fe8f15493c3acf8fe2ababa5950a63ffe8932d127047a9f253c0150cd1a6c6be6051559e842b50c1cd458969183c3b6f7ca56570060b3ec4d53382a11c2885b7cce0f7a09db8b71693c0cbc3e4b94102b350cbac1f091110c7902b4535527fa160ff30e215d864d06f680767531a99f0f428dbd82f5ecf594e7f35520040855b6495beb0744c875d2eaea4e8c87f2c2ee8aa96be056ea8350eff9f6593a6acfdf19fbab0b9148e24ff61f633c8d20ceaea884983783e3053c7778cd328243a3bf2b20762256f44f1c6bbd807c16ca091237649008f9bacff42eac9f748e570fad8a4bbaf5ee1db830fa63d9d41c3000b2d75f9dfc4c1fc3d321ce5919af4d656868514c95756a384a7869920cdd22fb8b47b509da7588e49e53f89f04d2631f63a2b7ae649163819e52cf0b760d2940548fa81867dc4605f85b593ec3d4043b257b2846383dd7bad78a4aa70a4bbf3a93b9a8b7b11cff4b8ea208cde1a7bcfd0f768c2bd8a0e338e1cd046c9fc9464bc47f192b61205b70a7811ef4c182a836ad4abe09863cc937964f94f429f42d3637b4f4a26b572b1a23bd34f5392961922b08620557d6e117f49a55642d208510893758e50766b10ef240ef6fa4054ce9b7e6dc530135e2b65784b03a26b5ea635e99381dc7950eddd9a6bddcc12ed2d814829aeadc2f0382880461bc2cee316a0f725cd3d16371c336214d4465b81f7a3804bf3ef9b359b8d51b0741de0c2bece1356250d8e8bb56c52356b6391eb74b68173c9bf81dfb6fb13ac84a88de298ef252c2c5b6a48872dcd41e470690abbb965f4d8abb507862fab32cca764c08e8e019c5644a9d4ef3fb5759a1848f8bdeb4a9e97aa93a72ea1e0d1f3498a32452c84e79752b54e94332772b8566148f40f9b9f5a4f333a76487adee29ec850744a7fcee50fc8d5caf7bf5a07c3802790d7dbda22e9072093d889f2cd586c2f897ca82d0ab7c21200a19288090886c7640f0926aa1970ab4d05345b1f05e0ba1cfe8ad581fdc1a40042b26d2eeaad89a1058ea91a02880a0951f3ccd931a533305ad821a357d45094196e91d3a6a1b08f8c46d88f8995da8d728bafe552d85d6ee3c25576526475c5b6007c2f01fd663837c180ac73bbc49908c59b700d33ac46cdb45ee065da6c3adce31dee11bb29d35b037845819407a9332d979df6a4bee36e75c732e7107392ccea9834224566aa64a088dad26a8ae985729231d3a63d45f87346fec0205c54a59db4d09f71e811b90271657378cffa3ca1f690c3f5a0b7a2dfeaf38d7d6575c212acbf15bdfb1ff80d73ecafce67faa4830f02d0b5127ad2c70d1ebae486f6a459878ed2ee633c8112cb85cc7e7c5ef8e3e09a1f6fe16db1d40b27e0307c2ea1979e90e3179a8397ec48dc5acc402ff24c110ecdd3f81534fb9fc7c4cbf9bc998a678a5855c0e9d059a9f9b8667387b456325928b805292d795c703a8f4b0c2013ede28f10bc25d3b0c11158c6b76b14e60adbf6f2dfd7a756c2d53a51fa717e9644ee1a29dc4459a2ebeb83c960d233fc62e0f3f242a942375e041b4febcb1bfde72b8499238cb2387cef6330ae3d24a0421b0e55b09e24011c23288d1bad24d88a03a5571ea8401c84a7ddc16b0ab6b61b8f3fdc353336970edc4e8ab284253dca1757e03fc684f10dd86040ed87cf3466230902fd4930d1cda367e3a8278bac93024ee7c32d6f7af34272ac53fd946b537a4594ece32e758990ebbe254b0ad99f5992771068e2673f46c1a6de99cd30b1d45eb5e7ddc4e753ae0c99f816aaf2d29118c40dfb675f6534e512134b79f0aa21cac9ee9b185413867f2b220cc674c39119df1c6f4d8702f76b87f441efcc3ffe3f0919597cacaf510b019731cbeb686b240f0cf67e2b7d19ff2752e2aa5c3c3868db9c5a45f9a23eb13266aae7e5ddb110a6ce7e22c1c4d18e3886e02208d8687af6c48065dbcae8aa2689de8fa96639657f6c65aa3939ef577e3c774af0c74e267c1825a84c91d1669be8e2120f4625a119604f94dcdb8768b0ab6bbe02244d61bd639aa84176d6725a004b02dd9451959891738d33b1a6827e208d2e08a262b690915a89757978e5e5451cf64b472fbe9975f84e6fd99864db6cd6346952f214904dee26879bc5a124808a61c8b68ba96cac0a706b051ff160f96177b3148d9d40204401dc8b0c73501c31392154461ea0801c311c95911ed7afaf8584975000080ab4062237a3a5477cd9a9173af2e1b6fe981786c512de278413f9e8a53a7e863efeea1d30b88f3eca1575e89d51c8a018fcc90770fc8b65673b462228e16d8f6905b54987948dd69364563e54118fb7bfa94256a185ecdf39f9ec95a84435b3aa8fdd2c3c32ad9995abbc3d10bc80f6f18c83e9ad28a2c63ec4fdc9ea1f8ccb1a25635f6c1a2fe964f64a9979f5da33a0ed26d149252597b8e66451917000972fe2b11851dde2055349965dcd09aec14d87034ca87c36eb580b9bbb2c4a8d5552bd880bcd5cfcb4da5f332f81ff380077310ae14c80dc7599b980b8c3be4ecd7eb65353c13b514fcbeae62cbedefd384c0f0e48152deced2561a72e1626dc2737ee4067deea7f58cc9b8f3085a559c04714b0406e58d26aa1e493296e216f159ed32c5faa925ec4f14c5e414d8092429dfe874d459cb4c520c3604e5559801aa679a95ffcb2da348929ddb6d725f3aa8130734d36daceca3c1072307b7ce9a92855a1846b16e9c03f697d27770b368e00afafec44f6346a1fef11f4bf551063c8474713734aefd6e25a8c5da9bb5ae06610de2ed9f95af461085941e0cc23a816c4c0c1c92c74eaeba03ab66379847b71dd9a5adee5f4e75d08b43d70439617f77cf9b982e1db670f3e237053c3522967de5ee05ca946b4c0af0f51829da8fb63fb9f6696d3e388dab61d9fe3ce43d857937c10963d7d15eb796f3e3eb4ba250d26289abecfbe2a2531659f7db65df5a16dc72cf404ef7cd6ad438f84083820385feb475a47a30779ee281495d394d07ee7c9762dcfe196451464d04935255a3069aaf4bf7a3d0626091d9a4499dfa038a352d12e3d860501a37d2a026cf191d4f6d5eaabb736473cc05c7bb351a4a6fad956f6906a025b086c95f24f10299b0a913416ff6c15fd52a57d1dc1a7fd0cd0c717fa7360d401914002ae3ed16dbb25cd2d00891212c6fa1e5a11fb17ee3a7d186d63ca8ae7242b7f1a5cad5a059cf59a8ad368504410950ef71fb75489a1aeacf21ecb12afe95d657a44789f8d6c174e6176bbf3b785256e81bc370402e21c5b59d0f287cd52f10c2ef4646c6a7fd9be4f6a84bd9934a2996c86b0b9371a2fbc2e8698c129f41377a3aeb9326640486b579f04c445f552a5abedab412d75a6d8082790400b9c00f57b32427be65c4fc83d57bb6a229725eef51b7afbca3962c7f9ed6860ecaed3bcea2bbddf12b74058faa01ce5af551e0558aed35c88bd615ca747724735493c720cb691aba37aca76eb8833d4932071bbbad029e72925f189d7b4ecc3bb01a3946504937e7af31dfc3a024a7f014a5b5018d6a40363505f4fc1684128fff5862ac5cd94d7478336f0411b48690292f3202d3dc58d76f74e18b14f7b2ad6018e78e75d91b4832559a8018537190c5de5b4cc7589f036b712bc99353522d208d9644bb9b794324999a44c0181049a048c04f161aa86d495e885103a9dced14c0e34b9b5b573fd5c80335d58b3a239c1375230316baa18d9f8b4341ee19b73cef6d96f5de69cfe1c426c4e087dc2d684d7d9a0e031e70d24b0d5b6f5dbfcf7eee2d37df675b75dbed3ddab111dd5d3fb91bbc1c4c550c470e2551a1c127195b8b49f5af81fdbac7850c428c1ad22bd9a15d1b2ee439fadb1e2735d20575305a8be07458c216e554fefa99a155ced43f56137762e206a98b8b216854ee7b8ace81ca09a25d5bb6f3ae01bebddb7267c43352958c63d01b4886234825106a8c2204373950776fb2b5237849f86b02d7f38e75bee52368bb474ecf0feaa8576cfcbb209524aa2efbd8610662d4a6fd4ec9f0f5fd739abeff87afad3f77758e7fbcf3943fded867a524a5f4af7b4e14729ffbdd95ecf38a3f4d9bab536e19cd1e1f3d1355c2087eb24a60524d18906576badfd1074668aebaad675599655cd795d5695b009eb484591207241d4e963d558699dd88d1d4b5ad5892ef72061826b7d5ed619945ca2cb51c66072e75793b67a8a32060beefcea9af53465ac5c7356260150881a51d07581ae6b545132f83a4951f1ab9d966db75d6adb4482c494cbd78a188c2bb9943f4061d9004914039173ae037cd31c4b68ca0dc829e4fa579615bfd2e168e5a780ab99f1fc39e80064f42c7a66292d18f15b943a60c49c884521aee4ee5af16351556bcdb251348a367b59b49368dd75f7125d7f1abd8c574fd6c77a47bcc8757f9f9586ebc505f9cfb0d10b57f29761e317aee44f6d04238eac145999e34aa1cfbc080f772b26a556cb42a243653d59325a362872e35b5ff96520d880c8b56ec4a24eb56ccc8942ac594fd625ba40d657f5647d2c10b5ac9325e3e7ab18fab81bb259d4b9fe209b499d6a81ac936551a1900c16677d465994f543173793634c39438d4612444e089557c2a0bb5d73207eaecacd25e176ab6e12fb9e17bee1eb451c71f94aeb9c52e8b19e28b53790c8aa81acea2e3fb962066ddb0d59985823768304575fe6c10852702f136ef5a197d605f41c698cb28a95065aad2296b8a06a4b201aedf5b96aae1aaffae48a24377ef5a1b2527af9c91554dcf895c5ce5999052e5094548aa66589643d452ae5c8ddcfa3dcb5accf87460e14713488b8eb72417712dbf25d7ddf3c6a7025e7608c51c66effac4403b4c186e79beadf37bea1fffe956c6872bd0860d4c727df93b2a2a6bff7def78bff6284f0db853586191752f1551ef1565ff1bc243c5d44920d8e8d8e1d59bc7fb6994f6fe723a4fa70a60fa643db7016d24071e120b95a1444ae8df341211da08793eb5c43ebc301157cb321055c0d896fde7c8bb605e24a9f4ac220032f91b2b2f15eaee641686770ccf4c3f6de452bdbd7eaaa038d92154a9d88d666d5930e405eed673170510f447a57123d1b811a46329c98416269a13af04dbdee2b172ae3f75352c6082135a55bef499587df8761c0fafd541d58c67d8d14577babbec0a2c3d51a03cb1c3d12954fcaf76a451f3eadf4bd185f8c247ab99a7ed457aff26029f4bdf7a28b8013b99af7efb5f6aaf75a6b8fd2f6018cdb64656f68ecbd009f8d2360719da0a54613536cb1051082f8c2014178f1015f51b6996aa860b9da48d2eb70322c8e8d0da455eb468d4071a57531d41504badc63640ad18a6dd77ad5a6e98a15324283594f36ed569bebb3626407575ab7428d0cd15cbf49b9a50096f167a1d1caf8eace955f79bed4baf0707c698e1841e2ee907658be9a318363c6c5470f1a5c3a483638362fa598528d2b14ba3e9f4f0d49dfdd15ebaec83a9265d3c8662c964d3ee1adacc8cfbffa50d874e533d2e76359d507cbb47af2c132fef92a44af9257ab7ee85394a5ae547fc5d6b0394a3e2eaf82cb0f7953cbd3b0394a28d2bf907ec89b6658b4626f7615ba40988d2b5d184efb7c5c5a22123a976fc5170bc582d9b40da7ac8e1dce86d37cb08c9930cff5efe12344818adc8c853065060139167a9cf843122932bbc88b395a173a2919638db5622e06b86e6f3471b14796324e16b9129452521f9b0be515457dfccaba5c954eaf28597da8971f299a252ebefce4089edbf04d4d2efe09abead518582ceb45cea2b02cc895d88d24178b488fa218e9872537ab71e13345bdbbb42ed2d92d9d94b394514a299fdfb92a4e19290cc47ebc15c54df5da659a2657370a093c3c47b8807244c84a077498f068d446d6c8b258a01f50e8574423ab85f9b14756954df467866df7d3eda38cf66a926df772d2b3d876318a447a2c956b8d469f71b9270929b050442a1a2d0882644b358908b98b6d37345d28cb914aa35d892fb6dd15eaa592b010c97a22b52baa6858180f2655e11a8da80a1f8ad6b0cdb26a8d2b2404e8c59556b0cdd48265c172db90b185b5b3c2eb70152844a3ad5f4fa47ff9d4f8492cb92b44dc4ad4977b8e2471abda0f7a9493aaa85559342ce3df42a3c558603dfd872ef71c11e272dd5981050a976b0dec728f123c206171b9d250e2c8e5fae2f2954b8f12442ed796d7e12a17ca72b927892991444754bef87b3de160197f9c1a5ccff242a2012595ec6ae0686455d1cf1789ac7d2a2de55bc332df16cb97c5ba5fc1b2895fd7e8ea29d2166c8e92ea87bc09e659b0393a6f82f9216f0200357756f86a058cd4361cc6c2381bfe00b0ec68b298eb4fd30369c551142e822b2fd42024eeba8991624fbbe811261223b992ff077bc1711d874d457140e766057053d2702c2469d1d5a47ebeaebe707075b76b2a04e5d1298aa2284b7dd7f85ecd39a967ca76c7d92d65b7947dc30e577e3f1daee476b8bb3bf5b763870e9783f4337c7c8683e376cced8779b9ed72c050da9184ab3fc3c1d90143e768f2ca2ed27f2c8c97504b1c7677bfeea17bd0e91c2eff5f2acdccd8d8b860cd49db703244412d98c444df58461aa2c8c31c9119235cef3347e4619e72f1bdd10c8ed16733948c6f97924175cfda984c262ce35eca09be2ec547f57b451a6b4b5cc93dd7d3016620c09966608e480feaaf60990c81b006825672df9c5496136869aefb00cb38478465dcd3b0e06aed3ad853640637733bb88ef42eb73adca9e9314218e183f0c53863f4a4e5ee4ee1575a637c313eeafafb646e04d77db538b89b3922d9cb6d9c1defb5f6de6badbdc6f0392730c8c8b560840d1aad5c352ba76f7e2569abf09fbd91a40890699b909ca6733dac2a32c50b2d0a57b2e2822d925e487dabe86e25e3bb44d7845e8ae99fb3656d50b04caba706c5a32ed0b9b5d60dab1fe03c71bd6f0821840ee17b41bab51bf0c32474f717dd212452318c7435b085fbe3d6c03738ccdc1dea676ec648f8203b00912fdb06854d2c67888c69bece8a497ecb0c475c333713dd674577e5c61921840fb19df70eb11d7ea672fbe17ba00ba3f3478401e127b58dbe5038a20a24aa88628a9c964dd20a794f0861821e8eb8c0943344c6d45e67c5c439439c49be0e014ceda7d52180490251d2a33d101f6da35fcaee21bf61404a6da35f624bda670c85a3e0c30d7696f083244378622a05110113171831a20594143cc1c4a61edfd04920d07071b12bbd7e0ee17b45a86015082184d09fba3f227477f7762cdbe1f2bb7e77f9cdc9c6d804b80996f96dea4a5713b11b4885c61797742588bd2bdcdd45f7073ff75ce422dcc676e2eb700dfe832f62429a6bef0fbed7547c58e2fd6c9bb961d965c5a0f514e1848608d773a5228450e5e78c3ff845f7c77c7efc3a632cdbe172711bdba99e5a80897a66d76e27033b701322a60a13c24d889880dcc6321631809b1031512fba92632c620991ff7194ae14ab176317720a0f9056c1fc5ffb637ce2593139844bb68df6955c52b578390a152d2e379669df04f084dc6784075c0d95961b4f185182cb0fad18ce7278d769636ee6266ff08d8bf1f88e716319be96e819728573f073b92d9f64015cec42bf7bef594ef90e925cc9b62b9b7bd9d03d282abe0c935d52202063bec691ab062dbe682e307c6e08e1933d44d558668821a08ce105df5c9365248d1479e57c3eb3aaaaeaf3a96aadd5d25a3fda1b484092ca2316a55c3f569df5544592aab53eccd3563f34a9caa33a31850b6bc55896b870b8d2cc8c7c15a87eadffeaa9ca6859c75225b7395b8b96cee098a996e55b798ccc80f21851018eaaa26de6535f60a155a8fa59553c534bd74b31a4ca85ca2e6e56802c641811a55f7be71a0663b78bf6000281402090015e25adb3dcd59325ad6a5dee216209cb3f3e00d1d6651f0ca9623dcc5f5152b93241a05a57a4e42745160dffea9c73ceaf1c0ce97af3b7e4662e24d10f83d2ddae83f8c0d02cb7c3955cb5b53efd930b033e4fbf87f5d5fa88f5f83cc58028892e6b38f4a06f61403e016c2ab50d17697d1ded36b3b94ef2b0f3ab36b320cdcd9f180caee4e0bf57637c2fbef75e6c31c07fdda20c110619629831caa761ca1966a5014a6ce66632f09dd9e1725c566b31bed7a674f8a8465514d55c8c1e638c8f72d70ce416eeab103c79f2440b2e9e681125025184e7f5aca19e9396f5d4dae0c8aa868a91a84a78c50892727eacd3254549e9dcc1afda81ec0d4d5154159962598352d6937c2f4af8b1521346497da4282921256dac7efe1e6cb54252395ad5571f8412c7955ea82815d2695b9a259258e2caefaf666d955a9a239588ae54ebdbd21ca966d0b6a07fd67aee9fb64d71b5cf70744c69c6cb3d4560f142bcf26588b6a569c27d556750d2125479b81bfbd4ff663d35fccff5c1a07c28657d722425e98524e359d5ebeefe7c428d03be159a40255f344f5e308543a17e5181aa42a4a7f1fc339da3c62909e8a3bddec2c1a1988d2b8d82b8ea67362328a90c5921cbfa7c3e9ffaf9683f4fd94f0b859af0699b89c68b439625f73a9c6563fe05a6348363074989527322270e44164ca0e086775f58a6d52ea6dca6c4c53d6238b92c460ec478c115b952f3a2ea6faea9a8f202afa2822ba26dab20e99e2a49bcf7dea4aa10e9a922c4dd9daabca0b89052d61bda1861f084c1a4278c165c912bf58421c515b952db3092f8d05a6bfd740b83484f183ff48421e48a5ca96d0f952f40f50402813ed42bb41b152a52d8b22a1e667e66e6d1e51e2a4b6ef672999999999b0abafbdd7eb22d6192e272cf5c4f14c85e6cdce3f04ddf2b8a564f33a2194a08d7c96003475c3743ba4e063d3091410e18276008e1105c373377b7956de351d102580542c810767377e7eedc9d9dfba4e1e2f29f4f511cc3ceddb9fb8d1fdddd1dc699a7fd09f31dfb3d747777676ecdb93b77e7dcb9bb43e0f2032e3b77e7ee585c76cfd14c315c96ceb907b1420671ddf3bbcc130418f7399e209a70df89659cbb7baba712cccb56b80e268699999d793ef9421280a482701f4f155ddc1673dfd30871896e76b9bbbbcb77f727fdd548e2729947c7081a97797c1083c707275cfed7019c0e0c6005b72908e16386f0b1b777d50ede3c9e814c3ce001d7066b5b7a70a10657c5ccccfe9ad9d90c023707f8173ad4c151011050bcb3b9dcdddddddeeeeeeecddccd361e7fda92c3bc2bb93717df533b2b48bc3177777ffdd8999d4b37966efbd8f8db4614bd90de731edb8b62b0570964efbea6a44c6922a7b9fb7352a8665a328f9033c99c412cdbc18180b09b73f81475bdbb995f9302f8806588eb7d0fe009179a342d62dcf1e078702359c4e60e5248d004e1ea7fa1308a10e466ed5dce132224077e8e92f6434a260db4316a78515b73a262be81ee5a03aacbe5c85192336446036d0c9312171ef2be0f72835cfec709a8d8d5d06af18dbc395420c8cda18d715f85eab5547c194ed75adc57a0afff0f6771802c8da5790cd1d91b64f5efc5ea49a1ceded0ac885fe0eb0d7b2e93ebe9468918e72fbd39ebd2da390ba35cea270eddfd54cb8c6a99e189acfa8aabe77ed1fd5165eefe593bb65381f0a7b6bed3eff6e62a7dfa1990eb58f644973641c8adb01b6a955025a0ec05fac62a8fc3cc9d4fc4e58737c41b6db2f86188cb7f13b372f9071a60d2cd4c85a33b84324ef0de7bafbb21841042082164c624c31f902184104208218410368410425243d8ac6b0821841042082143081942f8523a0a0f495c97283c3071f9080d642feddd1bf1c5e57f8f311a4caef7467471990afb63cc2cef77778778108017c41cf18e19beeeee4e22a30737a05cfc1042085f0faa2453892d8a1071f95fcb8d272eeaf216453c70f99f5382b48377c7dcddfdb9fb6b87c96c80b9eda3148c9de885e44a936fdc7d5f3947e38b76dd3c59e67df624cbc428dded9c07d4029c2903c802882afcde7357b464cffba9fba3b976ad754311c36dcf9ced701ff6c3066c02ed39ea524de582cdecddaf5d730eafa29446099774a51b50aef631502e7e421c4677082594e618cb662e4b81dddcddde3d337323777777777fdb70d7e23717a5142b20e0bf522084d0b16e77777777f76e2cfb28313ce5dae052189b29428cff940e39c6039693a8a4cd5a931642341200000123160000180c0c07040271489629922c7b071480116d8a42684c30140624498e233188821888218018430c008618a314426acc2cdcd97bdd4129760736c11d18dd43d9b6e05a48285cb56f98dc48aee4714f3c8f85ad7c4f9e06ad938553deb67ff897a2f762f648316066329c5f2069617e092c177199193573bc1fd6a3d59c750c6a62379fd039575c26f793a0cf43de9783ee83de1c49fe2c704ca028a7e171b52d60dbf61654fbe1238b757e16f686e7410a4164fea4dd7e943d8127889d99db99c35f09964e760068af2252c7acd4ac823f7abaf5c6464c7abcc1720721b307a5c85018b631f9204c953a306e144fa12532a0194043d1c24fca20816f9b2c7af4bc3b49a0e2a269228cd19fd6e5fdacfe4e12b803ca6a8be1ac4418453c0a77084a03b118546433ef29e6a0c39ea2fa149865bbeda36ac499db4286944e1265967316842019220f6b4fc8e4f26c9b3b8b53e0886b838ebc0066921371066a24df9132f6731055098379782fd0a831fe141200dcc7ea4c90cf6881a02941a3855e8d6a1337edf88c1858fb4d03f3885b19d5c3ac52ac5f2f9ec01d148935a3c774dc5b91e928132649bb463504279fef034e9232a1aefde2bcd075edffb68eb0f477448a31132e5fa849cbe1b197f9640e0d8a63cd677ed7c202d3efb755b231582f72715ab91c59748ced14d5becbfac691b047dc0d652626f243c809a9759b12f9d9f3b79ec4934688d46c97e5aa080d2fd303460a2fb943ed714f4ea26d24d326ed9b8043328cd923e137c1ab287512ffbe5f5354a1b23a84c8f914f304a5397565c0a96eac703f62cd64e626e7fc6570a387c6b1e69d2c3a274a19265a4f067f5809f957185f881034461a7c554581aa98aede3474785e4a424f050d7a83f0258d906142874e6daa05c71bce029df181264f9672363a788ee181c4f7a0d95f005174ac668dda131edf5fa36422957b493e60fb56c1f36090c43be9a887f1817ca5a97dbfe0e41dfef7b7a8ba0f63644a5998ce2494f9f8aa348a3c6ffc8998e0b4adf028d928a4be61a8c368e7d92a8483fb381455eabd74655bd4889c5d208f1790869bb6b45f74c79d920e2a4f36047fcd02c1bae8092e82b2fa53f32412283bd72348e4bdd4283dc7da1e3400cbfb3b2c5f02098f81098a232c1bc6473b98d3ec7b20d7fba6508798dc9a6d4cfff5211784a0cf58a64140aa3b2c6b392850bc25772411fe2eb2604b9f9d01d1224625885f8a338a6ec638de24648117f2f5f0c3712139269466d147f5f48c30d62bdc31e8a0da1a753f399bdd1b8ccfe0f30639942fe6e416f9abaa1bdb171ac94c8d5754214f3cd6a692e0b0d3cecf5faf3459ca2979aca7604561bd04844cc619a3793b5f90573c2bd7e7133ad26bb04e9674ecf69e12acf1f04d34cba3c6a9ad17f4b91c2da4068982375e98deb88f457643f6031724559c30a00505ab9bb9080e14a0af88cefe4287c153f0d2f34cfa06a0cbe255f9e384435026bac9e1952cd7c62d483a8c80c076b5a643a74cbcb748bd8009dc91a621bbcff2b857abbf019a4fa8b1fec72369dd583190d184a6370fdad6508f3baf839ced62f3182265ebf073fdbd6d26cc16e1a5ccd306141a82bda6d9a107f87f75750fb1a7a23d770e48cfd00a56c73967672a49a1833fecbe0a1c6c60b19e9e051eb812c24e3cf42a5da509f54f47cd1d0b5b4803ab18e180ace0997cc11b5fec47f8768d7002a30582b3d97f46f792ff1f7d7765c47d45e4892294890dced2ce5e53df883791c23370e21297d52c69a2d9473dc69bbbbc1e18d1dcd44876534bdc567a04e70e48959f2665cde236e72da7b64d988d0d6f0b68ab6c13bc48fd2d8d09087a1d14e296e15c5888ea25f8d00adefe3717d1dcf46d550262e3631267486f9b38659886c1f0c70a722ce68ee87d6ae8bb571ad1e62cd685f65a81b4a6cda0ac670c2dc964ebba3bab210e9d294205e59339a79f75f57887f073f3a5a2f0e56bb609c285712175582ef238ae03e449a301c97588b5dc2a2db88e1106f4a295a19819e488f582e3e65e2de619a26648befad6b5d8180a2199ed8112e7ac4223e142385ec7e72d4dcdaa72e00444070e8cbef5cc07fef8282c467c60799d670332b50de2ac106db778e772fda801c8a0d2f92f06af644d3086607743bd78d1ccfcc386bc1b86d3f39abb98436da41b5e0a5f6d118c05d85bd8d79e5941318bef05357f6a90c0e0ba1165b6b6a5fd0c7435a66547a600f8414652b429f41e19fea9a47f80d97c2880c30524980a72595d1af66d3935a845f62a718f9644421d60aa0aa0c35349aecdc0f07ad49068f78e60bdc0822b4d4877935a60f221f0c6f28835bfc9c049b27960c4b24f32fc03232b0a09aba7d42fc5600ed5c41f16c150da77698c6d9203330525d960c91865199e452cdd5e93cce36a273269076324595cf4482009cb5bc57b320fa7600635bc480a9255322bb4b05b6199a7442bd53edf0fc4251affbdc92886f4405f347e524ac08c3160354a000580c4ccd9da6023516ce1dd9f8260d4053c7984a459284c48971acf40763e396cfba462d54ddb06403a43d6f6490518a4b3100d9d670eafaada3ed9c3e05d110b7c9e5d26ccedde5fba4c5a2eb300f0c9c435eb8cf423fbfd7d07e696ca26acabb34b549267556cfd3d66b603370105ccd31cf8d7de4edc3051cc262a2b820e4eb7db01e9e17f9cb0c6c542e62089cb42020ac42df36fe5f73212b2d599b3d2ec72c6746da1846c8201f8eb0b1b9b20df94359389a506327bfef314215c5e1662e99bf597286a7ba8e4b0f8b215e7047e16962b9da8273349c24b74685bb7b313966b9a2801a08268f311d80acc98053f91c63aefae31fc9263fd8397d77015d7250f057299633164014fad9b68c9a83eef952355d7ab85b053fdd07417485907d7e85d18cb58c3d6633fb7d1a0688fa56d53fb92b4b15a889e15d605cdd90e4bbf5bd780d00eb79cadab13a0c3098cad89c0a9e18ce5ba0737082156b783c0a8bc34e46c70582324c458db6592946309ce08707f40a5ccc220891455379ca61418ed061fede5f55025614d22a5c84b0ab1b1b14584e18e5903a78e798de578314868331d8fc2e0021a159cee3f49d2f95031ea82fd45afa1ebfb8268339b2ff5ec06f12ce053d0133f7b2c771f6b9db3d8a60c556d09e24ef8bd1cce57c93c3b4802dcec82a66e01a0d01aeb96809dfbf7516c48b40de4dcc375eaaaa0a66c6825c559ab3749a5264a91ad5bf29d6ce3b1ec87db68357f2dc9d05fbb71302c2d845b34b8412b33627cf8d650be6e16317c45c04cb3b00620672474e98ef361100d7bf78d21bd12bf736554a10435b1937cb0a0a15c43d918282123eb518e0d89c9756eb7ece4a965da8234bce3498771e136e3a180172d986635d2232d8e5d3bf04cd3c0cf9fdd64b31206c74078c05a1c6f0b3eb28f3223291b8b5730609fad43c0c8d17684b14c4279d1f6abac82ef1d5f23b259a351ec3980f79b24d0de6eebb1d1dba7fe0cc9b9ddcfb7970e74f9d5724ec1c2978c58f27cf7e397dc06ab0aea29e1aa15434c16adf883a035ffd610cad04eeed911cb49687b948dd585e19f4fd17fd787f2aa577c38d093983285adaf5ccf43e0113e0dfc3792fe7f17e105398990190481efaa2461ed0722b11d1f718a42b62a5ee4f9e5dffcac6df760cc27f604d808c831924acaa175d844c9a2d981abe0e8f9ce25b3dcca73453a74fc248b958157022be506cdbcc18015864aab8f9116cdba711bfc9141ea23dd879bc770edae38558efd787b3926a446283ba0e8ece8fb7f6b9fa3ac41fb9748c14c8494ad3e47cd4a587caee9bb8e229a85da2141bdd42840c11185d9d9180a2f6d9c66a142d403ffab1b7c4008d70c828a4db72e8bef81911c956312b2cb0537a98411471922fb9beb00966fec4ddcc6795a23110e164bfe29c903d5ee4eb7e5e2f1f8cc8917d5ee7e7d3a028eeb79ff11e506c63b9e3cd6e5b7987b3434e9d69e01131024e4243aa449d0778438f7b9070da1cd5218c3da7aa2083c8c07dc27d4fb27df1973662d299a941e7597af43b7ceadb91d4acd9fb5391030043a2952d76310e452e024317c11b35e6313229e38e0fcb3f259432bda7d6e522c43b11df5dac6b0fd16db3688f58a1cc2ac57bdb73d342a5c2fae182e5e9f859cbafd4c2311d552f87c4e58116f6ff7c83e80ee8b80716cd6a4516980af102cb8b5699add1a59914588da269d263852d2e158ead7ac9892b2d661ea0b60873a000791cc3dcdea8395191bb0bccedda48abef0d1bd6a2e5351a0eb7c9d583f43acac70dd703eb0d7d722a1ec0cd95a25c9688443bbd91dddf8dc3a313a28624eb67771e3950bf014411b61d7a7966ed07a1223c7fef14b808ba0896d96afa4afd99b4adf11933b7d4c0ea6d30025d13c8998f03f5289685fb21e5601cca42baead58761e80c89ec75b293200ad5d077c28b08a4287224ac2e9506abe3050c86bf0d5311659d3161e8c3ddfe31103d4d7bb83464855c349cc1a17997857c9261bf42876260fb32bb7be5a2781ae60fa5c22892cc8bdce9d807c9d8ffd244cb9735a29db1d6ae19aee5d2c4e881e426144583c3f9ea9ed0707e48fe2688089c75abd9d5c8dbc3a0e15fb627cf3358d0dda99d3eabcc88c92fe5141b7243665d43c410ff6f14bb2c40615d223cb62dc230db25958c3ca117ef88d311463278571c0c4310760f4165c8242979538d9f380ec1941eac403616f146f88834b6faca5b215595ac8ee49d56b337f29224985db7664d6668c6eccd6400ee51cb9307f27c456b258c0907dfbd0fe11ee2fdd5feb9d1842ba1dfa2b9c1cf5387da74646214a1c2ee38fe5c5b8509dda8d0ecf5e442f7808472756d5f8c505b9393713910460ad62f127877199f7ee2e3d28c325e10ee0405f0ba8b98fe39d08b88722cd8a13570e1d7a19f3fba02edb02fda3d5f941e8b589076d3d7fa6f638a917e5e870b96f3b482171a402531c9b38eb232cc69e0e3926c8521058534fac25cf361316071b429eaea7382014b4d6eb6dc1fe92dd7ab98297d13b4d57c45703290e5ffa814003a70d482ffe3b90763bf57d22884165accbb8218db906403db2d05411ce36a002ff0da902783c5c71d990856da763d4057b6ae6507febbac4eb9ea0469d1f9941f653077475a65b75fa45910e6191cda599bc8cf8467ce4f227233e4b8650bd743eff09856f7297c84cd5f4d977703afde8207d41632c097bb7187db9c113d33dda55d270d0abe62fc4fcde0069332e44564644ce67f012c91a81838469f0e84247ead5a5aeb9976e5169bc228bfa0dc40b856540d072e41a499e81abde3a6b4f66072bbb32822d9398704dd896274c2e976949250776ec575cdd91dc618bdab1a4325638ed551887e395da2a1c163e1c42113efff9c763bae2b81fbbfae82ec56824cc8a572a1e7c5ee26a6d6fd30a13ac76a9dc268314fb9310ee24f03706027fa4d63790e347268320731ecf1404364016d9910b074db9db50484ed1f66a5388a512ec40e290994b7d0e9b8fcb99dccac7439143015642ef745a015f2ba1f099cba09b95602f3cd175fc52752a7678b1c61168e60c1d4a5afa7832063f3faea0726ffa1ecae4f28f0693690a20a36aca9005e7783162bfe9ab9df8a40a6c74f4c4514cf198f80b30b21baa80fbbedecc12021498a0698371b36dcf67dc4e50b7c2e7fc1a24ce0fa1bc28497530bb1199f7fe44498082f744b2f719a86df03fa1c000879c899a947b512d7a2f315e65a6cac79cc70ec517033e53c76b192b2a09698865e8566f1d80607c7824b70807fca72db2b16df45510e0afcb08c76c5400352eb280e486f19441926cacc8beac293a5e6fd75450a18515a1f0f41a40549478c20531a64ce5600e60354259bededf4cde577f65b9d1220ced179c467f5655c1fd0b021034b1a346bbed4901cb75487af4b443879b506d46a836a1896c7ea408b1980181e6ed0af0ab7d8e31ff043790598794d6b0a1809895c269b9f822579bf597d93d624a0df551517b4a79e5548e1545e7bc68592c9a66d2cec9e1501a27f8d80d9d1709c7fc1a8964bbbdcfb2b951133f9c6d0e5686acf4228b9eec61a143a33953767ea9b89722e48698931b1fa0f50cddc07cb0b59008de38bf4d0a0ad8651e582473560486889fa691af1f7c9b14ab5c8a5c1c88601026b22cb72e401861f779e383de92b57753d908e8ecca34414eeda19bf0fbb171d08d5e1053ae525331dd3983425ca3d9cfaa9ff33af17b971884244d58ea5e56e121c0482be0c1b38b679dc9efb5bee85d04c238cbfd6cb54ccf8d3d7af6fb86889b8bb4dda28aecfdde4dd411de1daf6805b2d254716fd4c2b2697f60c03f7255090ee11e3411957bd775a13f64182c01849c0376d072d16a7c42189db455bac8194968d0622fc48378cea1d9020bcf010cb2b30dda029aab85b628bf8cffb1fdf9c43a1442f4e76de45f1d1f7b9258c029d86a9515ce4730862012b5d8e098c5f3a9aabb93a4434e020a1dc86fc5624dcc6de2c550f0ffda2884c6de4110d9ffdcf0c84641d2e5287d87bb1a2c505ebc654d147e2e0078aeec298b096fe8b4f822dd674ea42230005dbc00649199a37ae196fe5820d4c191d9c6951adcad43e5243d4903f70c051c41164f1ae25b2a06302d2bc721a3030c06812a119dc2ca05a8095e43004bb367a40846d04ee35d0ae6cfa00cc32fba561dfffab42f75dc6ba8092fa3188fd4a15a4e8ea324a578acab94a9a24ddc02d6852652944714af6a2a4f98dd0943efd389cda9f48331990f21e20bc50444ee6fda2c98a1a76bcc417361b237c14e295764b0385b1b2bee2f070177f1c9e18b421f8c6efb9ad774716837b9669093da12e1e90111938f67f3ad574c9dfd249aa3bedb52302fd13648e8bf7fdded5d7443f1ae8323202f03bb666d9198f10ff24441c4e5a6f03bdbaeb92a48811c6490ded604eed9c345ee065fa08293be1dee5fba0aa32bb06ea2c44db9d0d406e8732a912c072234d3c3aaf31038b1a1810f4931d2652091bf0ff893a34edfbdd4dd77e0c7adbf365de63bd125f0f92798b0d627ed4dd6e1560ac425d4de3b7de1c470d07dc6a40a8a6a1bbcb13081f70bc605ec50097064f445c4b1e62e847b153f1a994ad9028703b7c1571150db60c1397be6cc3caa00315d18a1a5333dd44a5a94495e6b8bb09ebe56f4c9d0519d77a4b04e6322b4484044d3d9e4733183f67dd1fe84a20646db0e95be4eba946dae18e923ebdcd9a65399dff501657ea8d82f54ab38b70389504ad56907f333b46b58200abaafcf2d20093eb4939aa8aec6c568cc077da4f4ae83eec4a112c9c0c0f3c2c5cb632cb7ee1ad5cfb8d9211268da2f3eb9e5c650645e3af60603c912af20c8c259fe549736be575624a90684d8960b4397d40fbfac3d40c3aee443cfa5a4eb91eba994235c29c4212881371aa0d3740a50885d016d81d8f838fce6d07c40b21deabb2dc1d6ba86452f9989e4236c235ff223c84387b0b2bbbe1bcc1ab01e7e45bfe7adc5dcc9b83245f9b826950ae399457904cf182ff572220b5755fc1b79e9299b1aa6798f610c5223fe6ab6d166d5217cca4d52b9bf332c5d9a5af511fa4e9c0334a0431a2b6537c3c5ebf483bd219834c7dc378ea7fcd3940a3508728a8ef028acfa3f73d7fdda80fe1e09175741f70c79a434f8d67b7c5ffd63e521b096608c016db30a7748d958a65e9734b92bfada3c0d6755b55a80bcfbfab9c0957e3431a8a26a66b30fed0098331d3f2ba6a9b2cebb50c7ac1db869fc453cdc17a7e6cf8e2339c7a3468716b2a0a31001a78c8380e94d4b1f526268c50138d4d93a8706333d901c3e352a8633ec8d971873ee257e31c2da66a41bd234b0c4314c4bdd5810bbec08842016530d622d4126f58b2efa732d046642c24fc50e823961779f4caa3c13571708e80b594070580aa9d3fc1df1a70bf3be4605080a073e94669c26c4634c3fe4362f051b21d92c78a3c8c5e1309903e755bd885d788c24c20b6f730c6085e9c6b1de5dd8e0dacef6e3797d89102c09b66c1a3e4620f6de43926a8a0a81617600f4bd2af43ec64aae3c460f61c37b43e7e5b05aea0e1a7125ca1d819f1942887c8510751647e8f36e4a4443d62b93766f4170ccbe0e0c6cee735e239fb477fc675d78d3cf3751634215c47a3fe709e44e10312f342fecae53e624883be87bb1c942938d91740193636d0ec09a225a1272d33eac907dd7d9406cb20bc094226eaf0bd2c126074346d2a1a29a9aa27bf171c084a8b91021f098992b69dbdff1b903399f9b5109461d0cfed518888733ef51617fc010513e0dac392234bcbf876accf0dfce77af9e082e37b7a8b730bc025d23821d90a6a2e7f2025bb56a1fcc81d88ad2702e4a6cfade54ac53b490ad14c66835dd3d6ccc4ae2f588dacb1c9dc2c83e93893466433a5f1faa15ccac8615bfbbeaac58c5a514d92a3974fe6623910ce239082c6c0c1c6973e955feb268afd538355009e2f8861d5f44c34904fdc8dd7d5e29e2a9fbd9c96fdd233b1130c07d44c456b8186176f85dcfabb647286af7bb9d2c71d87f1826f6116a18136ff48f3db2dd418246c9d8356486221ac25399c62e03eb42171ef177cbd18c934ff90ab0f49ad0b6c48b01941806792e3c3c5435f504f30559e6c2b3f32a23c2de3c3288c20ac668390decfa13ad2d42cfc86984da64e5a37a8158110445a7fb46a4f52bd3905df43ec9be6d8135bcc81ec1c346c89c8bc6c19f9dd7c037ad1b9a11d5a5a5ea0d9de733727a1b4520179bbd55630ff1d50c67aaf325099ed740582dc6942755cb29cd3018904cc2894f649582ec87a2cf64880f0ba761b48b588953489b67089782868c20a81c73311fe2c0e2513c5b1e2e7d74f695a265c80c58a22495f364e5367997c5855d5ec0be393248a710c8e272adf478c2b8d23b1900bcb40dba947ed625290ba730df28246a751c3ebe847965f2eb0351e6d4e7830cd0f08462b68bf7488abacb3a3cbd579051580df25d05cd2b036fcf834f247efe4aea23c322d096a27a392248db9bbdbefee1286474eed13eb9c0e3213c8fe849144d13ee3554d1f67074ac4b084c6f90f0db858a4278bff929ff53782f62a547cc1f021f878c91df8e2ce6703236adf671d66c3b9b1338d4741cf6b4c0edc3eabb6e53002e8137264bd5d1abc21f8d88530935707f6c075e31346ec709e56092fb6de0960acc4c4bcc215d4138f09451781c2e2877daa278300a004381be8e238c388e2c04ae886279836286696ebef20e6875c2e361844c5a6f8164221fde255624246938372c4a04c9f8e128ee906154e48cd6427478108f9bc97a67386bd990e49f579105e2accd39595498200d5ff09020e9bfbb516811bea005633eb9a53bc1eee065386f63126a0615f1a831286632f42c5ff3251524bea3f6eba523c5c2f45f3062a6d4759ba27be490165117cfb1a84efb87d95885ff9c187d54945b58c11ef0af7d4426852212f31b3cb0777779929f67f8c5a85b18fe004d2dac0571be09d2a188936c250dabdc327e90c897e5c28ea167f586f60faad32fddeb5edce6ddf98dead4968e97646a11918935721542b89de720b910482e6058b460170f48847202f017db2cde629179726de8e46087d337a259665046fe4089fc07cb0d9e7e5c8bee3d5dd557863f2034cd55b1a07f2223da8b86bfb80ad48aed868d1544ba6f2b4267680a6579e5220aa2c370806503f7c57939e4b0e1a382156efac0ff1c51b0c4c6c58bd6b96d4fc04c5cf4ac366a71a33e3c2ee058da91d2a847cd6f3854733910c6300c0ff6c5e60fdcd6043733caa573d389d673c1a19617ee4baa240f0c187f91f0d3dcd0532a3105526f14b56dad16389130ed312dfa7a9830be7dd9b6120c2a86056bdbb8851465d99d31506b54cf2ed869fb2782436fafcf2e4a0947138e4428a655005048d85dd32e6f6d125371e1a0ebcece7b43108cd0273d7d2f5b317d92f0cc7126076eb19ceda64d9119449d042c518f05ad82690cbefb75baa6268d962b828fda3643759f7a48d6327e410bcd5a363a1ef998a13a8a70b34df55d5b1ff2a427efe01f715bbe761f8a53bc3b8cb679eada93ef0dc6460a398854e50af7ad61e0907a58b2cda8a4d36dc5dd87d4e116bf77bd43bbbf52880b1ce997a4f03eb65905f0daa17b928e3f103788b611dbdcbd5f86f6e06093e1f1f60382d8ebef46cb3dc6631a6ebe42fd8ec3b987a93c8ad153aabc1437e4384f7df361c7c2353f8400620d208d8dfea7b12c4f55d61fd01f3268b409a03902588a640a9e025a6c450f9ad86bbe875d99b94466baad8371b67e15d2066fd9bb1c44e23bd3239f78b269c5c93950c27d890efdaea5349b70156748241a9c8239bbe460157ce75d631e0d21974b1afa193c322dc419cb64d7744402eae5b5de15d310e54f507154b5b53bb73a35a1149bea187bf3d97225f9f5fdfae9a849a2c746f04e44bd4d5fce1d508d8c66dc01e30d76ee2313cf8f00c75f80e9b88fb6183c8697718798e8a65ce16b3c68ebe698c613578554650e065399ef993d3616a61641ed82ac7b3ba627a0d47dbc034becbac0147aadf1cb43a2830b8cff5041b270e2f8c5ea7679709b176c97084fd4e7af2d91b9ffafe041edc03bdb7461c7c8eefe020094432ac612a832f6c4262bf543a6096be9dc11cd80b95653862e8a8fc4e430a406a14ed7d81747b7a422e30e394a1fe22d8eb3b16ef6fdef530f57bf903383fd6d0f0f3de0bc15ac1e17af761dd50db16499ca002633950ffdf13ac1705275f832e99fd60225c127d2bd68f98fde06c35ec40bf5f288d1367d0f3f639e49572b3b54d02034f102cf4d937c29e867a79d32ed16ddf3d7286e435ab2ccc0338f8c62079f72828692c0736594f289b6abfe151387e981dee73d3feb5b06aace52a596c95d0cab456fe9560cc8ac9d818a852343cb3472bbcbd0f2b5a7cce5782abef854669339896007f58c7b1e11cabebc5aa8ca6d3fe88c540a6e3db3b2cdc2f48c0f9bfec55d79b675e7129284240e921b87b1d40df8a23ef21a90aea65692a1402c25a9831cf9d45cc78c5cdbeefc0b400f2c3366fd32ceed1f907f36585f828f6419772c2a9fbb12b53940c98026f4ea6080c7008841fa643812885bc78264d7cdaac3aee5e00a14f083deea2eed55888f69f9567d4b7d652e8464973918178d491cc84801a5f6c26be89c46a3c1a8dce930965964284590570cf3abaf438a9d43ba12eae9e2469bcef82cdf10313913dfe24290bdbc137fd2782ad1d525ad0b6d4ae146d9422322cd581b30c72978371745969b31494cc7997bd82a68d5ea2837c083667ce056016acd1bae9ccb3825d2f3e6e3c3db00fc73898c1c8c9ca9c02cd7c48089d678246fe3609385e0c7c364689c9e1e421485a83fda00f56ca29a83ffa246cc06a6f945b997c0cc10662567a723ce1d4ebbd42d03e14b55141277082ee308be49c5d068cbf7377aa4b37a71e463d3e68cab58985c0aff68b14cf7fb206c44e3cddd1ec20882aefda191a53e4a25ba2e44bed64e21cad269810ada8d31298ca748b596790919a25ac03382522d9e5ba040e0fc2ad041178e79fa20c810aa7d10e9310ec2b5be3329d0a494e10f6f79d2ea869b8d9d6b3ffc0d0112a0c5d428b8aa9deeab89393abad05b05edefa9fb813b558a8dc3ecf3eb0a85a4573f52ccc9cc15d799d30476264c6f72f75314622da0c3b61dc9a47e987c095c2902d957ac751f0fd7187ad57b27d8cb54d8587100b72f1d6279958f96c8821cf8d449d4813fe12f85f7da556dd3a83052647fc1f2e51868d1df0e08178b09edabbffb1077cb335fdaf707e3ccde4e5e1f8d020ef38b40d2b77902559a5b051d6228d3e639b17942b550be69633c04694aa82f7d11399313804de665589f726e881f834c2d53d8db90f3e458dfc7e59b8092abaa23744e4703950c5c60d8396ffd36da12aec04ba6c8a77019c298e234ef18dea58fc271d3f8330d34323a580b582433319e25c77212138b48c40ab3b558e8b29d1f3d1a3c8a2e496fc31fda49b13a2ffb0f2fb8b17277eecb81540cfd263688075d27c9d686e3261bb90c1fba3c01ecaca53dcbc8688c6a9a8e8669104a81d0890b8ffa1a1c699db6f3ece898b4b2671c8f1ab14c3e74deb3aa52e7e5a60441cf1e66b9dec12b009ecaefc509fd5c926a299262df4854b77762b4195396a21f45824575ac0b92470130f3102ec5cb31e7518ea558fe37018fa40c7bd1846d65fe4485e355f7b1b86d3f7f8566531e288953832baa5921ae3a60973b71d5123c8007efae84678f4e0c9d6d69933f11673750faee9dfef6ef9edcef9a708c94e595f3c8ff8cf4de118ca2816363c9b51e76fcc421258442607cdb5c1afcddbddadadb3bfa702f7b2505074b734e11fe6786bfc3b3fe9a590cee6ee023e43a8ec14a3e20b98aadf6dd4faa6428da4babcc62215da90af9054439a9154ddc1efd3f7be9c0b1ddd9c15fe46eafb6dff980b88eaa8ea628b4888a10d35d465c490de28bb2e815def09b421f0d9831a73228742b0aa956d6cba138de2f8c476321a5f8d5711ec1f39d62102b9acbea5cd5aeb796feb77ede4176b7ffbb461128ba3f7718ed0031bc68329b2b1792587013ee27a789a02a9aa474381f66cf9b1f3e12251ed7c6a0dcb6a123a3c523f7d3e5cdb3744bdef1bc101aba960ed0e011b38da9fca37f69a14b998c2803e1c415bc6c4c5b9ad8c7acc458bf6e07a275c0729a3d7190dac7700a20d4d72fec7cb2237ec7a6b6e0f1c2b5c71f19ca4dc6f6ea5deed711ecab5e3a2ec71a8d5aa33b53e15bf114598bb56e318240e0da52c97a07c97d43e9a16d8d68d3876e234a8248e8dd6746aa84ba1142ef642d3ef2d9b43512a4561d78edf15b021ab352d2dc94ed6e4080cc6e5e95fb229bf6a9900f9f5a2c009c1265484f3b24e90086f0ecd06de139e05271dcb4200d18add3bb6bc5b7080f04ae968a14ff8995fca63a458dd9290b4169f800397421a45a122fd5818f3c698c327f8dac212af1c0b14cf1aec1f76cd590306a55c81f73da19dc9972299ab21cd0e7eb07bc434e6ba838c717724802751afef8dd6823e48125c0e4b701b85ca5a061a129a449f8e002e2824a540485a44ac299a101c11d25f915f3a91947fe27881890004a0f224ff3110340d2a6fcfb6629c07bc95ce43ce98b265445f411f1b89206ed50f494b3a5edaae4c9ec214ae43e80d096da871b7198148cdc87804126cb599e9194376185ff9bc4f1ff487292f27f290600586f15ea7bee06c0af93291cbac4b2d51b5b0cbbdbe3dce332ef50897d08527372f943ff0cf62fcd1e35f5241e95f98337c0589b05a83204095700ae51afc34dd376f666012915fb0b22b664cb45522196822024f6fee94fd67c82c53ea386f5cdb4c720ed093e55d7bb43ce52ee14faa308a43a74c5353c79956cf18cb03ca218c2fd66f90b2b14260e5c9a1825008735058c0155107bd714708cd576ec9cba3ae2c5517770d2edb1312840af0346d440fa286df419420034decc037018061a82ae4e3cb2bed748b39314c06475bc869663faa87efedb05284f5273baab1bed7a0fda911e81b931c181240ab96abcd0bd880b78d47e3ec96894963d1f386ef805ac9263e08996f92dd64babff46b4090046affe0922bf51993140b6c384c899420d72be547a792c5a4d659f5e979f27e5ac7f0534a5fe03bc9b4c6861e06de975f2783388cd1419be3c62a2944a1c3addea025520c47dafc463b4533aa5b9d41381e9657519cd5a1fd715c3bb4602e3836bfd897c8cce5903eaafcbf2455e35940c5edf657cd8189feb640cd479273f62bb49c44ccee368a24f3755bf96911fb21bffa75b26dff6694271c864406604c50c70fd96dc26b75c313b3d115cf74a46b2df86cc5977294f0bc1b10d60bccc25b6af8941b5a82197c8280da016369b0f7d4874fc7079545e03fbf2abe4980e918c67cc3365ce968be8b338501effde26228e7cac109128259d0524552aadec930c610ee19701eeffc9832fbc2e55e3f7a06390c9ebfeda37dcb00e122ee5a7d3244f3d0f9fbc0d3aaa30961ba1aa9247fe0ca2feb0a689699ef19944809cc97c419eb6ef1c881e3582bb12f359704dd8b60f2bf35957db55e2a9e7c8188a1251b9692a670ff6af4e0efe57b63e8aac1381477ddefdd17579f0e51bb868b4b84c8018819f8a36b4797fa0f0bc0512aedde30d236e99e772fa943309e910367b5b2043fb41a5b1f055991300774ddbe309d4e5821fae822c6ae7a635a0a836b478fbcde4c63e33c86e17b7b53614e4054d2ea0e532856dc0091d9bf112116d77c5f5f371e118bf802660bf596d82a188636ca4ab10b8f01490a7938f5ea008688973e7af34ac6fea6eb3a13610dbba80fa78cdf08b811006169f5d4e829ec48b484fa02ff1d683bded3394cb1dd425e6e0be638e3b29f7894121038ad0935c443a2b28c0320e92b75363679f4fd1a784b3a8ba0a601b66eaf27879ebb937bd07ea66e827d047a093092264577c6a52626913d2615772991448c3a4ab3813ab1a3d1313f8b7058c49ec3a9f12cd7f4e03473029045a788bce1b50b5c52d5f9ef7f227f7b316fd8360b3de07cba29445b41650c7d767511ac9787c6de14e426d612f9e1c85bfcfa9379fe294c882e79961bd1c49cfa4f2648cd3f90a8b776e9d7246a486e9410be6cc55e865c29a0df159bdc75aeab924b069dab953ecf40b01c2f799f31e2bfc81083447bbb284b0e706cbddb31b05f04f2fa84daba39c1b1ec8552270fc22a30472cc828fa57be35ac3c71afe89729c48cabc01c7d9f3783cbebf7e3eb87e20f8ba1a1f04c3a2275144a9d88d151e57de745312dd54aab0c5a51276208011e1ba455b2c972d2a28cbed54af1815d2af8d524d1c724a3f596a8f9ae6ca066c3c05e3f20bea094edd949ce7d4d68f87650b6a91db9dc32c39cc4dfb81e4a9299ac191bcf28416e33057b690c8ca3f3e3112dc57491d8a49c8407bf02a5be7b8fc6059c4fa2a71afe513f43ff594c8d1f98c9a1e8350bb45b9d18519cd61fc42e33fee9d4b4b51292959fddd349467e30e0806fc9a9c68b5ad75253d5a76eee90de7f14f79d5e0eb139c3e2ec0555a9d6da7f09c20958c808b34dfe21bc5624bdb7a076e98600b3b1a2a8cdff4678f967a9440ab3e59d06ff0d5ddd5bd4feb291f9ab200b1ac79af8105397c9910038e9d5be086bb05c91a1a4b372c160e61014ee80da99eabc8195299caae11f2cd32aa9a6195c3557ff0247a017a6f71a7eb64c597b846196e6f0b93d1d80527efedfd902b476c92683989babc1986320c7096419b3c1268b648171863ccaa772d4f1434fa6371e719ec22d84814ae49659f0df220d8a21dbf45b8f8b37e0e265e31c482e8bb9194656633420a387fad0870df0c34155ea68c76d63a8bba8a355ed768abb858b2a9b595d8fa4e88e258c3a8219eff51b9e6725ed2dfbc86b752e487865049e891db00776cf3fac7111ab67ba94e3c512a011384b86a6e835e37201e9def0a437a5ebe4d87ebf8c0ec872812217f8b03b2b1c19ea08276c8003a0ddee0861c4317806b4ecd8d9a2809d1b2e77e30e5460c63e63f0f809207031fabc993b951b8cfeb1ddadd726d7e839662af08525457fb6cad782542e6d9b5ea7a86d1e39ffd413fb287a15ca38da759af84ba694ba8b0f2fd489aee761583aecfaec25a4cfd22d6816a38ea8d56521df593ce87fb080779a258b9051fb470004bdc5eccdb34ddbc8f388fa58a9641504746c38baa9573a72e28ccb0069d1e9b359f303ea78cf51c55dd2cc0ba79acdbf8ce7c2b383789247643d1a3e6c38f516dac30a0d3b913789fcda366c0786eefd19beb9465148fb0d2bb193f361b9581a8f2c56d6b40fcb4329773ed4d332c1c3c6788b48c4c8e2d32ced4e82f7b36b552ad3ca38f739f0d0f4243ea403ef6906b4a76654061624588c8d89355095d50e34e4ad91bad7b1e1f23fa35d829ff82bac524c74a32ae232b09e76a4c7a0a6314cc51af8f8fb78c80938af0928c5ba0f0375324a4b269de4149e59451a9f545fc9a4ce360821137632acb4459cb30939b1816c3ea120d42acbea5da2e2d62acb89a5ffd99b9b48df9dd8821e459ec4b49a32146170d820d311c03f243f8fa85087cef4d8041a344a8f91ec6098eccf27102309635bf630ec90ab850e61994e3bc325f0306d4836c4ed128fe798d880e64e363eb55fc54c62145f78698e3180ad62df0e6cbb1025eb24178c1a9b17eaa4b37505a9226119c0c9b6a4886f35c9c4001a83fe6e287de1b9c8b7e612d8810b515fd50370f0efdece5d48a9cd88aeaf7a48ca570ac31e4399ee27ccc95b9d8833a0771f6fad681c2496cc0791a3da0d6d87c6e5a9ef76432ef476231a6c29d915c2883934d8518ea4c5d859b63aa2e157ca65e7e869e01d7ce2d7e1fa77a4aaa15504d4173c8f915e97b50de2a3722188c7f9ac29248fa3b32c8390aa1f91b02576cef53f3fbdd421c2190f6e5c9c3fc0944a8995748aa1c4fbeaf548bf04cfe5c04ad1bc6e8403b1a4d0fd00a203542d26e8537bede9793442bc9b657db4e191475e6c8ce3d94ac5f23a7d745fdcafc2bdad08037dc915a1c3a3a475b148c6ce70929feea10237b0b329f9b7b73bba182a50c736754d4821016b9e5e30983205784b2eae7cbe8b86eba084705201f263b251144d02ebe860c419221362c72971697023c3f4f8b8d8a4a2ea87644ea57e6a7af30872b8edac803cffee3aef40aa780df0321da70c8e375f340c5bd59b477bf25ddf52bda053bfe704012f3607ee4f1450690b7a4e6ee38988f886ac39baded81b38f204d3fd0b196aa1fbd383d10091420cf494d5e6569e607fe637c79061278fd0385b9668e3296f7954fe68611b7e7efbccab7f92d29eeee6a69f85745556f77c360fd6f0d267c2225a4969fd1f5169a872a738913b47fa3c75a9437a3b601cb07e3028390163acc219ccc42c414422ae646ba6f1fa7453b3d833afde0542d1e7dba471d040d917e2f850652ab56bba239038da5b2949361f46f152e29841bcd98234547b4bf3e02c1615a5350b3d12940053202e870a3b95c80e7ab2eb93386506e6848127f9c8aed6434ffae389dfd830505dc2f8bcbcd57f62189e587c79e9b5c8628ca99f98dfe367c49630fe6a0702b27812bc1dccd53951651f0af869617954d0f7805a344fb9a547d7e8b5440e4a9695bd2c20cfbf70c540326ad789a5b83532f3fbd001fe728b4c515f3fbc4e451a17c63bd09bde943ebcd1f91ef57225f3850c19b5f12b02eb6a9c070e1c903640416e4112170b5e099e1197a63ef63e673f93bce095b1d5c3afad091fc77000d1f2b65e5df3b19047f35d1c3c88b5d70e3eb0c77553eaf35514ff7ce288b6808392e65836ab4e5bcc10c1b68eb075ed6a4cf7c78bdfcfcb4e2108895dff7066f5f4cbca76dd50815e66c4d173cea81b6e213b1dcdef107fc58c153a3d009632878ebe12e401cc23e65cf18aa5cb933c1da9f74a733b88ba879c73046f51d348c89d58ca646be3211b4c0fd392ed890557cb665f5b463fb8d15e36eb80e89f243ffc21d9da3efe81af5c1146d13038a28af996ed72b5d385a0a3410c5c1c40903130dfe609ad64b47e904ca1373ce928e7ba9f62b48a1558c8990193685fc67a2e488f0e915026a14bbdc37fa330b4df198ca4a18c4364dc82477a00d48a8dce6068ae17beea6d9b092e00d472bb28adf5e5b858253cc87207e44c5307bb68e60ee39c0cab23ebe7b0a94175b71763ee88cc689c27927ae4c8830a5315c7bc2f8a283ff70cc2216d742838bec977cd6d115286ad2737b0ecea58ff6dfb27b9354f4573d626e255121d399ef56cff96a84d462bc378678d47f6929b74c2780289ac01187d646b829c49a99482f29f0cba56797aed3e2462e3839aadd172ee8376f722c29e17163ea8f6cdabf7810b8395cf65f92eece5458d4a60899691858e5136f3c9af0f4993d6fb15cb97f95b569ee03317899f5ec4d3a0b3f63e50e3774736cac6bbcdea756954af5bc862ea0f69359e19da5b9532ce7668aa353f82d5d3d72dc12e2f45287abe7eeb99e6e32210f995beb0bf8d0bd33fd59343be9b4a0436fac7b4b53e0f4436c87c6de8dc077cfd82437045ac4510ee05253951e21a30f675ca99363d5e6b3d1b1c04430cdcfe2b5686a8c089db1f6dade89354aab43028d724f11211fcc05a512c3518bf8d1b36674c401e1eaf4927cf72f362eadc031dd99583fafd3afcdc9dfea346abfede527868f0c6b8105d26c78b6ad51c4ddfa6fa8057f6737084b5d6313678d246b991468e3a094dd12bb0fe44d4a4ef7e206c102f10884111b9bfb61be32179ea1131a60b75f05e52a494ea2728c2045905331ac77407e56ad994bf75d5b2144ee668c1a8616f80be1210de6f135657c9c723681f1373e5360387cec39326c430e0a1732ca0602e2697984eb2d56f924be7df7f294350876c17ddf5489bc1fecfed6e0cc758f9d3904709d8d991591f36aca6b5297ed8ed882bf8d5f9b2e96cfc98bf0bec220b741674082cf3880233efb224443947bf9c6093a966ed796f1af057f7e3fa3710670d3fa47e12cf2f6dc4bc5dbe75a38d0c94fd25144387f69717dddb3f24906753451a505df5da768455463458ad61001fbfc324cfe0bbd1c26b7559c0c6ce42d2ba5013828bf2c779851670b9c3521b07f772a80284e89aefba021cc61d0fb09b2a07901f67dea57e136c7390bec33ab1d74aba47d2a607ded416c955d9d504d45cd47646b41902f253889252040b3c7e9f4a4150db9863a26ca032ccb8243689f6d8a0d12ef2f581a957450e38b66abd1b8b2f4fa736f7e430c1b8cf05efd304776dd73ff54b2bc42f077fafb232a34706129fbfeb6d146fdb41a4d536dad851b950af05b7214a7bafde349fe4fd06be53dc8e85468db7b95e10bbccd022a10ae695a301656491b7d7def61c71fa3f61d550b81b8075db3f88748e84137cc844d0a76f40f3dd09eb0d819f52e613ec0c6b4c16780c153dd9317656f0cb1a2c924b56888f63aa2b4242313c5d175342d6aadb54688446eafeceeeeee1d5e066b06c206f7cd7fb7eb2ad0eb3fc959aeab1ffff57f166e9115af96f264544f26fe4ec5bf16df6aadb5b652911f84f0567befb63fdc3eefcf2413e6568542db28f6ddfa9120c9a2bf9d1367114efa2c9582a041d97a32384d6c15c54c744e4875c6d854afbef5549a587258c6852980820858868e4e1434d187db2507801eb7d744088027f364e23f99285ac78ad6d649c451ef5c585982a6e348a2459f254f8bacc875a2d01e142708f56ea643da21adf5bd39f1b5b4ca100482277aa0fa8450d65ab94e023dbeeeef45387700877276442bade0c163b2a48dcacb98ae953eafa2cd569d08b1fcb197fc9cf97e214712678f778827540fa69f1d762cff34ffc4edab6037f1675292f225aee23eafa3fa4df53eaf93f2394a08d4840a874b1e7d3931854315f723f529ae860bad833ff40815411674bbc1a251a399966952e292e439d60aec6a59892687f61dcdde25d8a37be4c9da4ccb340d09843eda07834c40201e08c4d363b2a2c7872970db5b6f2b5da53b78685c713d45d611526229240729a5c4554aaa830eaf8743fff4ddc3a24b1d0fc71360fb159ecd909887335f3e8da7237bf9369e0b7bf99a5d11a2c3125e941c741802874e489c0fe6b68c9df2f8e4c944980487a40d3cda80b421230e4c98c3634845da294fa8cf98d29b1d37f7a2544a3968ec94a8934d923651684be1ba4d53719d968249f1c99b898ff1d8c563c58f4242304934fa967e0af52a7b9a1135776c8c1259f1b1ccd26db54d20a7ef5e5109f5b097501146c151244afb9852fe899b783c8a5fc456acd95372dbc6452323a3a39c73194f8c86b40e1a19457938b0e328a3c76dbb9a102da594f2ce4c4a29b30ccbaca62dee52d9c8c69739e8802bae92c7460de0d17dcaefcb3dad1da2020ec12694525a31b54d4abf5f4a1bfe92eb7c187ad142934f85e460134d4b9227974a2f9fab0b7f76da875773cebde62f9fb9cb6ffa1c0c67b97c96cf52c3f0967fe1a777e12c2f3974f282aa2a4487a3d5cbd873b5d2470c44b706c9c108e315a63f8014b55815dcc187d3c3dd83e5f464bcd971d3a3a5740811a46b3a69d9c531cb780e8f37949924f6f84814fdf51935dc3d6609f2f4f07cce9af37fcdb7cf5ce537477daeba6a151588a3098dfef39e9ea095274208cfbf4c6d697a197f8ec4172ca765fab9666b7a9709341afd4129628c2e790d1224a615aefa8da7bc0a37fde969b6cf9e3874f2648a9e8c0c34764ae1f6551c1aed1d532ee914b78fe2d028b28a5c50343ab56c0c68fa9cb59ef2ede793aa0484822843d09359966559b4582701acc234db3204d92e3968b47762c71c2cda823ef61d2c4a9972112345b2ec730a5df2c49218b54c455e8d04f4d13eebbdf3a8b0a2693663d7f8b32f5df24a99b5b54004a175b63d1c8cd2258e2389467f09cdb287133fec13672ac8ba114b1c6e71eddcafd2974aafeb7e95b05229b3f6ead2eb2fbdddaf127e8a31a618d5b0ac8469b718e796d648c9c1a21a26b04897380ee88589524ab7d506a918a294d28ae994d87ec628a5b4ce69edb4d65a6cad9d989d1363b967a00f9b547c71c5f6de7baf85472f31670b1c35297ba83f9f628e236ef998cb8ff625c7e144e7da865b0151677357b66e4d0ab4f7240447bd83e9f17fe8cf899abbb255f384567fb3d3da392184d6e24ae7bcf5252e81124c7ea069899a04ed536e1982e44fb86508d2247ff2eaa975d5575aacebc196b04693b6d80019493b40369084b19c5817c4105b163e44b23f2330c830e2a74710308af0582c2774f9d3088c3030c69856ac0b42a347c4f0a10187291c517981fd64e226a3a0753a65844fe7babdb85a0821bcf3075a8d122df6d7c5148aa40f52efb21ee7962148fe7c712300872910bdd6eb0f87624923d64da05beebe386da53c39a6487b7df607050349fd44f3e644eb6eb73fdfb46fedbfc7f16cae8e6e3fbf0d46bb754b29977a32b6bbd6bea5a9f12286655f17de57f48399df0d7823b266fc9c587be4582b61685b9410eea4208411d6fa314258bfc6ef58b106c9d7d005a19c3152261041283d3180d2f344cf12507a8aec17a5b45a283d3c508810a30ba2ab4015dbd379735e19650d92aa67b4e909eac17e11dfc39c4c0c81848eea0fca05c6e8b97296e3c1fa20bb955088a0a23f28443cd103d01f9421c8e81f6d746cc58fe981b667805fffee57e5ba1f64af0fcb28c3c7450753ae04ffdb3bdadd3ff0bfe9d2e1af564fe6e1bc27e3843c4b9fd2f2430cdbf3bd871f63dcf0c127e986192be178f9cd8c012d5cf5988a216daa906cc59b1b1a1a168b8a21e9899aa8185da51ac956440975958c17f4f853f4fd5d25a3c767e1578a3713bfc4ef144fc848932f5f5e21d5a42b376b4be39c748585a546a16b1473de6059294b72c5d66a241ffbcdc828a51ac12b0338133fc52f15b78ac78a5f85b69e1fc575db89ebb4c86bee15aa4c7afccaa446815269cc71e032b6edeacba269198b9d6fb6dc2b7a889b77b67757e83ad17274a905d2e8011658b4e0c5fc64b1ae8e6161f1cf8aacf8d2bf7bc84f397dcd1fec964bcbe7f39b526c02c39a1b3d7e97c385bcadb62cd3e6102baffc0c612b70cc133b314a292dfde42f2a2de535a507e1830fbe46f023c511dac44f095b916526d309fe40961f58d3e96fbac8b40c7b8dbf93895b3aa5c9c44529624885304ba714595ce9e08815b3ad362f6edc58d119595d3eebc617313137224bdafcb05c114d49f3fd3fb6a2a9251c8aaccd6d09eeb05d0ce3a0906cc597c10ffd993ff2c77a21c59389508848eb6011a12246f2f642d3b49476da5b9fb49d283883981bb8ead8a224c3005fbe8e2c1aea9df3ce3bdf4bc5b8a87051a1d58ff1af6ccd28316871e9b0c368f7eba552afde39e79c73ce3967f451e2042af08142a5a543de02abf05aaf88cb81d77a407c3ea072e990bb3c1b20196802900c48e142ae21a590524a467e1fb98b092dcf697f527bb1ce0c34fad572944b113f4646292784124a482d3d22c322082184f0ee3842eb6e7ab5f65e7c1402a2beeaef28044ef40ca78c3953ec7d5ee1e1fca0b59e8ef8f359f7e7d3d99a1ff90fb7d71d9c870f4efbdb9073e14093dfdddcc470239d910e21954a21d14fd167e18d4ea84d8ed89af686c61c37f3e6210dd94fd4047f869028b266130c877e3c9cd8a97451244a2785801442fb8e6a9f13afbd26acc36e8a2b1a509c83042641d801143e70c5d1153af24b5734295938d4875e6bbe2efd7b2e9d2a341d21ad83434c8c643f273492713fa2eb069a0e3abcb41de9b15e97384ce108b2db7b84163c092a4209107c51a4231fcbbffd4774617d3e90201cd0992f24bae8e7f030f5f94a2c419548c10d4a043d194a4d4980008b9bbe121750220315939f71ed65f694620f2506358e277b4854d31acf80a22bb524ba52a99e84d77a3790e009af750309a8f02c132894f16c312fae6b89b61f520f6f8c4ef60e0ecdae247bcb3bf9829c0f1306177264dc84452961c0208141c23204cb1011ca386fb0362de39c1aa594565a6f906962226b7e6ccd8f9f7f45030d7210c60721379f4cd4a18156279d75de89317d7a064ce44f87cb9b99134e9b37ab11b2f8294d4b69294dd3acd5cfbf41133b0bfc4eca4f7508bb58b34d457bed5b6b7910edb5d68aab2cb25be43725a5f5298fa9fa5e88f9eb73d2f439ff7f87115bb4a91ca414524aa716f93d7c535f18e5cf957f38f10684dba4124a8e3f63629ecc2cfa216d7266d14d8ed873841cbd2320202cace8b30951b40922b6e6154f07ace2cd0c3d9c39447e8e5112994e344929c5901ea7c393895188fc0795ec7facef0522b272d419421ec883ab85116a0167e647ae0b22b2b4803a20175c68d1e75b9606bfe3f52337751806170178ea308c9fa8fe360cfc51c879a0f07eddafdbc1f7644a3c402391157f383c820410411c4589acf93a5668f17f7abc0e35e084065ff4181ffdf80fb1c531da1e62bcf66fbff6617c1eac91910f7e0d3c9c8763c4d30181deccfcf9b15b6d5668afa7ba10df45aeb340c73e27a23aec118b4fcaf8e9abacdf86bf39f6707f8ca5c7b084318ee7f7774174c87559637cd31974ad124eb418428f7ff90fb2d3af56ef38b9ce155a8ebae647eb5e52ed403c99f9434c8080a00e90b4813eb135ffde98333d3b124fe63ddc3b9b13ed6539d70cb4db411f25fba10f3432bbcde6669f3f8544d6ac27c0400ef62b0a89ac59f3a3411f6834d43d24183d1cd9e7c328f008d56716aff5fa0288d8e2b59e6b014474f158af77598f1d0e45179d3f7518125dd415a40a461eeb05a9c28fec447cc871f37eca285fe4597940d2ccc95d4aa5a49452ca29b1df493ba5ac4f67a552c2950b294d6b7a15b74dd3def381b2e20b8f4eadc86d9b3a352f8413da3aa78cb80c9b25fdfbf7b3a4f0de7bed572396401d18e3dad9c7164e6b317e2821b4164eea040b087183c015638b6105c30242cc4fd19f95eb2ad09f8419d60941023cdfb64c0ce7b4f4bf44ebc518f320bbe53a98ba93eb6c955133923d7aefbd57a8775987f8f55ead36155df6277d82b5c0fd0a3c2574f9afd647e9945fff4e196b2c45f8c8af556abcb07a012673bdd930808b013e737a8505c30b0c3ccfd02cad186062e0728c6e01800c2fc38c4c43af5638003f404caea15d6eccc0cd4023dbd02f323f66fca891591a2600088841808ddcd24f838b3db0e378a2d1a001c70d8d5978b867b8c853039e569299247905cdd17009e0b0d7b82027721a12d57ccd77b786a886a8e6bbaf21aaf915723c9783c79e1cd85861afd00407645ac801d098bfce0519e95a731c0f370f2f167e07f6996741919e6d6c2cd34c27544a95a2b2adb0b4ac5c5e609e73336268d4b031038b357832f505a061917b356ddbfe591d2c0289b48ff7f1afd36c572085fe7602761266544634bc100230277eacc00333ac608803b020c9a019c510a483ae5bfd3d09426280173e63ad6202c7b321702efd3d79a2063b33fa7bf20492d71319e0b1a28402a418d5a0821a28b12186091d15f8744d464e0ac985ad88002d2f1880131fd811b3041d2a46382a2c04901274e342d284125ddbbc5c9f71e86bc3aa4d06f0012dfae4d83bb1479ed813796eaebe9ad31c18b6f2f85772ac648fb3ec2110203acb321d5a7378eb0e3d9300fe3a0dfc7504f0d77ff0d767e0af1f80bf2ec3eb30f0d70dc05f7f81bfee83c7de83bfbef37a0dfce9e8f0f75ed7c1dfeb36fc75177f9dabe15df499e1af73af97b24cf38ebf058e3d0b5c890d8fc3860f92bfbbdbb7f01d0bc777343918c07b82f40d9fc30d38f09e20ab805f8002be88d7a98186eb3be2e03a1a9a16b88ec56281ebfe33aedb36226e73910707107b90864361037fb1d5459fef6fcf7c4e9ca94d605e02e022b3bad1b2020b00565a1b4bc5461329359a50f50c33fc8446aae797c127b19819a89ea1e971323871d36b30d90ba6f50d41be868badc486d8316edf062ef2c89602784422b6ead7c05facd15c178d6897bc2ab5b0f09833dc5756f81577b32a3585aa664aa2e2099a348db1c014352ef6c42691c8f4a22bca0ccb5434a601a3de457c231662865803527e349a9d705b799f853e422bdd5a2be9ec39f28295d10021c3b89002d7162bb284d981b6a566ec1af431ea1dcc6c020ca224c2bbb56068d6c2a094447e319d2dea756f1dd963dfc9fe74ecef78fe6e467f9d8dd377ef0a96f76e80faee09e1e5bb4784d577cf08a6efe00562be8344fc7730033a6a7c079970f90e9ea073df412541646b0993212064ab48d20f10d28f183f493f4746dd2bd26e9e11cdd6bd11cb06ea7f1a0c7f8df778dd3e0c7fd9cf9adf0f226de20f10d1e8e7e7c748484828c9e81a45a398245b55fec856953129e94708e63e0e27387f5d3e79ae2b9f3c569546d1857d451212aa9588281a114523a25ab5a45e5ffe489b2ae58f943ff5a590b4a14832cac3d1be7efc9142520a4929d4adcf4ffca9e1c245493bdc9cc36ef54718d47b356daba698e70f0bd4cbaa12598e88e845d564dd60f55a65975a4aebb5c6675c3fe6718d871dd758a14a916eabad060ac54f2cdcaae0b1ea97380b7afd77ef2f21eaf56d8559a2ddb72a6d4da7cf89348bd2c96a7882f06e182df51a7fdd87e13d34b79f391da2429155ff8553267409e5f80f5b8ff9e73f6c9dfb12ff61eb2fbfe23f6cfd1ff31fb6be3a92adfa9489e78af9fa14e8e1d0f8fa40489bf9926813cfc57d7dbae4e1ccf8fab405cff55f9f4af15c2f5f27906c5521693387983c1cfef5a9d0c38101fa01fa01da348d5ef15cabaff3480e3d1c97a73cb2557fd3b4796494049392aee6f66138ec578b3bc3f24c9269925c5145e00c581294a6fbd5f21af6c9236d2ad104923675c91c9236d5e7b5ea13f110f110f12c015a02b4046868681e491b4a899e3c923615e9b5ead349e711dd348df2dcabc9a35e9f9e60055564cbfa83d2810ba860fd4129e2841455ead6a01183848484a4aa2b9f53360ebb690657892a5125aa4429d9f659a5a45538ec28fe75495d5297d4252aa6cdc396750a87fd04f3527d3654cae71515877dbbac9090909056549b07d8559f5974ca36f1ac0ab87d8248d6ed3b8d7b904565f3002b668d7832f5555a5b6e91b03e409a65a2b27762b74bec1359e3bd330c75626169d1daaeb4d8738a7db37e56d1a6ef6e54545027ab535ba5e17ed12c248bd6eee3fdba394aa5fba6abefdbcb51a2c8aa3ed5a7fa549f5e7f674c647d64ab7ead9f71eb049ca98fd9277a7dedf6cb6b5250e48bfe6c13d6a705bd7eb538e8f535d76d57f4fad7fa48d16b6adb254fa67e4d0bb48e12f5fa9d5dd2eb5322da72ef4b2d612517ad8d48ea9ded81c4d716f1f8820b4a3c3b6eb49486cba03939cf063a585ebece73955eba4067bab4d161ba54e932ebf2edb3893cb215753c1cede5cbe7c22f39f93b729a7013ab68d265926cc5d7b4ed9fc5a2893c749b9eced7f8ea33de325f10abe8f165d2bd9ab66dff2c160d4db238f5010f0c23cca061c3014f8703de4cfd1c1e3e62f80124480e42a28be5dfebf070b2981a2ccb63778174bff4ebb7fb42edf2309f7362c6f885f30061f067d9c2b167f19ea0127f1b9cfb1abc2748ffd3f82fe275687c8c8d9f61e38b789d1ab9d4619e5818bec211c1bde649e931bfbdc4b9afe102c6f61d7c88ad5863b917be4364d5ded980f6fc22eb73a20bbf2c6ec80e36b80f351e19d185b3704c5c9e4cab0b78f7cbe5daace4227bae725b6db0b26eb0702e61edf22e2e4ff7cbe566d9662b4e04ebe19a42bb5605b514f4d92f2f96ebb77bbff4ebf45809638c4bd86adb8c71ecf22b93cb5ef99587fb757ab831c6786f39b589d38a25615170355e228aac4224b230dc2fac04182243b6ed730a896af539459b4c9f13578e90d12d872d1a1f69d267e8cc5bb67fddaa58bb5f2797527e79eb725fb0fd1c45875b09f79e2c8182feb612fe788924bafd94cf16c934b9687c440b552e95b692cb8b898b9ce9bdf59e01bf641853934884e3508765e3c1a8709f4f9a73a8538306fc15fe19a55ff80e9c4bcd0d5c6668bcc412a7e7502786ef20e51e52f303bc7acc87b0bcec9d149df1073c99fa740f7932f55b5dc4d4b863cc15c7bff90e91559f0f714dc1f11123ac641b2ddb7e0d81bda5c6c633f60e4b5bed57f8eb2bfb3584880dbd77604f7d7eb9943188812753ff455583e4f0a23187f56792683bc09e9dd88710417a93fd01a488d318b7eccdf2f8595a58565666687bef8a9d11bb0a8f9de34f87f3a793324fa6ee25e964ad4daad859ecd5d7f2d8e57e613cb2efded06a55ca7865439f2703f70bfabc684d4797b53719e30cc2cca2b11220d15f6f814f62961b4204f6c01ee833c3066d69ec08a4dec124601196388018f880890f98cc808a1940d1ed114fda9c5017c6d713744fbc27439c4a3d9d15fa3b4a8244b73a4a507f3abdeaf43eaf83fa2082809c1ec53dd92a9d1ef5f5618e3cd5a84a7141047140548f52710f7b0082e268783a9b6cd58f1b06dc33d7fd40a5648977ac5e710f2cafce334e68397e5866da1bc3b0adf5de18d77f39ec39735cc218639a1c9b06c906b231c6d864da18637cb363df9430f611c3c630d04fa71b73335368418060bc39965d26d04e4797fba1f38516e4079028fc756cff724180fc28da9a438c714a0a474367a2debd25bc6cc0eee81a7505f058d509a88211f6cba5d5974e8c33167377f3bdf9de7b73c6385bec732286619cf15f1f3186c8aa8fe24f6258e7fcfc480a4d10e69ddfda2cadb5576b7cefeb8b67120ca358ae24f53af539d37dee9792d3e7cc721e9155fbde78b04f1ceaa4b80fd9aa8fe23f64ab3edc395068f0b17bfa7c124110fae5b2c3bd237b690b1f27ddfece234236e1b8e1c63a21ba8fc8aa7fda3bb1e7f09025d60dd6bd7abfacb6316c257fcc6716d94ffce94c8b61725ba92141d4bbe745d59187915f4c072dcc4c189665a62c23008ec7aabf323d174d643d1cec06638c5f38c3e0e347517662c35099307264c7d652c5acb4176353869572fed3e7cfb496aafe2cf173dddf8cb1d39f4e278ddfbebd37e39c4ddf62cab012c639e39c737e9cb3be2a0e7f624dcd56e3d048ae2608e1c6f15c0d78ac2a24b2ea10f96ef06bae44f55acc304901d3d707c2f4f5f4dbf21a241953f19e202df50d78aef7584942a20b88c7aa5f7f48fd5af75b5e83a447dd3d64c73808f464eaa3382ce2f2626347e86fefa438fcd99cc6a111271afc9825d92aeb03220cbda0dbf701119c803fb0c8fd982f655896e16d7565df3d4c26b6c5b09c3376efdb322ca5ed1142bd832cc8222b0610cb320cc330ec6fbebef7115d2bff3e86e862e15a9831c3028e7f0f7d908045a091e842fd4b1d018aae947f0f51b0fd6bf9b7fae7f2efe51fccbf8743d1f5ff385116d155e39f8d7f0fb7882ed6bf8746d1d5faf7304a7401e057b821f3ef3d1423ba68fc7b384674d1bc6cd51c38fc7b21d286018f71fdf9bd16b4d65adf67f48c34c6693c4683d33c10cd867f9b8797121bea0c96cd501cf9ea22b255ff5e4ddbb6ffef5c7cb1f070bf663e637db5be37679d611a9a846ecd455d8f73d6d164636d4a494e37f726e7ad274a0058003a639aa6704a383b67baaa74641d58d6b44dd9a17764d9a4afca00f600b47cd2782300460053925cd22ca8957ffbe502877d8506990ba79cd2b92547cb416595d6ab6eeaa99ca2b78bce49479553321c1680b221254956d13570a8c3009e432c92aa4125af68eda500aa026c99459b6078a4f058c92dfaf42f95174b5e6914dfd9765a740bdcda29b4b7ca2f5a15d383a5878bb6b0ab768fd87d7091479584169b28a8940c9b6782d4a11911000000003316002020100c86c321a15816e589b67b0314000e6c884a72401c8b43d220c8b11445510819638c21860042c0109211a2b10263e017049ec536c400353416ec8a331058234d120501e29ca258bf28c4eb0d4af90809c5866c4583b525423f13e1332b187abc1d94fe167a380b03c327c0d0494311cc6a947e146c5a6e63e73364c2c07ae91e762fcdf035f9d74357d19a9b3471e33994215eee04cd47b9d34158e008c509e61e865bcdca6bfbd28461aa8e3bab8e91d2e79a5564605736ca3f90a8a717ad1240b6e5546d5ca2982799fc276422963308b4de1477582ec47f1ae226a8f5c19d739c05dc372a6539c653e30134d2455c28cd3e8188050dfd28a002fc1c828868064d4a2b8680e1c28995b06db925fb32596d8f7ce74d560637841c3c38749871949da8119d5fb63e1ec69eec4a9c2cd9ac90f0159d965e212b2e86e2ea87c828d2e332da4c14cc41bb1aa2b47b2325c49c10a89b6da01e37b8cab27a9fde6356abc109ed9249045dcaa001dd1ea7fabb8c35d287212b5375184b0df9742291af86acc6dcdf0e4d11876615468de2bd5a21733a103103048d423e45616e0e715da53e0d14ba117992fe1ac49398ce2494a19f929d06dceb0704c66eb80d31fa203c93ccf3bdbbb1c809602707abb24def3fc0dc147dbcc9dee1f90e7920c4ea7e6f252fc8b52050e74ae1498781b2a06fda17ed65d123b6f26bb9288c7229028b839ac0e856d1d301106e4613558ca3ddca44a3871f22c3935aabbb6d1becf062d9a960407f93c452665c3289c887989e8e5c6d1c4dad66181aa25276108c523a3231c52605e564c2c7069e1d34812e37aab3f241aeb49a4cc42b5ae1302b1432d7ef409eb2e2c2d200ecb7346f71dc6d0e59378e0d16dc8a65932c847788ca66678cfc305eea032c842f3199935c792e2b4866782c9a723a7ee56aa6f5e674437e88cae697c51440f028b42eddcc2a336bd97c82a5948a5d56e426aaa432bb2b44230e98a7893c21ae8abf758a5a79831ef17936e51416a4f9acdddacd8d74e2d52e1a60f945d2e1b2c94b578585934d86c3434e67f9546fa257d3b70fe48f8824725d71dc672e44d4407146858c25130dcfd75b803273ae50c1e8f8cd84011e9c69020249d21167ce9def846d816d92ed1c0fcbdb6180c422e9286d280fcfbc0807797bedbecf3dc27d5c4100460484e729cc1fdb377433ccc1b6ab7298a149f336ce24484590c5f433430f23b63c95fb0f0369252fdd2a7604c00a06d5c4748ef880c426bd599f86c17c0be0e2bc4a05db5da3ac3a670b5f001eac8c478dcaf0731b2afc0029bb3fabac041e0f7afed4febda49ca89fe1740d1d9c2e4b5ab5abfd3998e90d98efdcfaddd0a687eae33d4c281043a86aa60998732af3e46d2bc23f72c30db6b03d62808a7c06ee0aad1cbdca14b19ca6f041e9ba6afe0ac7d9311cd1dfa6c20c331fba73e23536f8b7430cc36c8d1d7d0ae386f985c1af0bb61a2a98c8dd3bcae8c9098937082ad1acb70eafd5d1a46ec561aea32b5034a7d1150e111aa9c0c6ba6752b45c763821b2c497a761dd39f682b3f3afb22b496d3b7da5a7cc665039515e267da1f73422f58d22d234f674fc2dbf186b35be51d5333663359e1db40933684b7301ca8e71bbdc0c4084257bf3131211f4e879265757c3291845c8b16335a59141f9e4960d883b5302e7c172077a9202db0c1d5484b0d6be4b814b6851189c7d898054a9cfd6e3c67e5f8eca29596d4ca0bfacfb8706113800e274c6d589f0a7f39bbe8a2f0fb54f430ef7e3abea0565e913838b3a86112c695a1bceac73b0493845e81f028f5ae6a188a6ed81e13e3a399be31df1ed40ca89af617dc0b93c44d7e3bf7f551a87430980317d06d4278da781c16ad8abd3a4987b8a0c17d672dece0c97bbb487014cecb2a2d2918a5f9be80a236964ca1fcab59380a54467ea1baba2ccca89e7317c390548ede2b4f0158fb2a4d5831ee9d8f8c8b48061323c2e231ca732eed91a729accc9f6b8a78dbd4c520fdca8264ea9b6ff6fc9fc5829bb3819624ff449d30b39756757b57b109744ac86cfde057162817c380544f44a500f3a09b11395cd9fa101f719f52e1f6787c2298e68126c22cbcab6b1813dec2a4fcd7ffe5288e58db7874eec0bdb33bd99ebc80568a317a7a7a7927667d08942009d93390d7a6f94551a7020b9a339b3f644203bdd364ae017ce9b8cd5a0b87f4b853aadd19ce3eb12f523690e8e04bf3537ada439475ec2b2419a337a29403e14e6373c1610b391dc800663c7e3ce0b6a0762ee68ce95b4f8d42ac7330393fc58271b338201407cd6803eb7855b4f2a7788d5ea5f8b709a87c213cb6f366450dbb888f08041dbde5fc00d2cf2e8e011efb2b2f1d8056d1c759abe65cbc9dbcc691ad5a8d314a19d65cb314f94e76dfe842d4773cc8fdc43e6a0228abac2bfc14ffdaa02c1729f210f96ef4204dea8378681c8714043f4d2ccb471427db3a9a60ab2610c9409e007b85ca4275dc59da62aa0219c62495d17f1adc0974dd92c90b0662b044464b1f7d8064a94505a00d8b08d8e3c882392935d4d42c5918c93cbc66752b91928b16784defe7058aa4f9dbb8b35d894db1d1be1dc3a5316182d7c41ffc6f20749beda251204ee7b6d340678fec69206b990cf01f24e4180d4ba8e34894e3c20b0e56ee95c57596c1af6b3cce00810f45c97d88db5864a5e760a58de0c82187ab4b6afa167c740269896832a2190ae8e17c5722348ba68486cc341860945d755332d94365249a87b4244a6152b5b6c7a292c309829841eede01ee73227bb6f42d60803fc46d279b92ac8d548e4e7274464c3805686e980b04c6960266e674163d39222bae2cfba4eb30a3faece07424ab7f3c2c9cf99ebe38f3f3d9b156987885de48fc59d66c29dd4dcf71b96817c74ad4dbd5990daaf07d6ed01a5bd71aba32be710add09b4aacd6bd1fa3349dcf923a6dd4ee2da54ee7a017110cdcbecdc8eee5a4801330e8fe7ec8fc76e6ad44e59fc664a6f1eb010f9ef5425778e54c27e33661c389addc4226165e1c8e2a7cf84101d2f6dec599c6ffb2e43a6c50544dfe9527a9f0c601ff2c856296ad24c0b81cace7c4ff6c8c411f4a36854975a0bc865128a8261f0654d8ebbb55bd96a91fef5dbd5b897bd290e40d0cfc14bb7ec531014be1100fadbf16ce1969d7a74c5c922dcb39838c8d8354842239a22ad2a99bc9d6a1094a601a5aa32bcffff9c28a835836d908a7913a25b06cebad5613a518b0e36738f392277d92c8a48a80d2407ed135bb55d0792d5056552963811b08ac21138626f38ab8859bd8e966e4a805ee08046e41e8726053c1add2207f5f585104d89a3a8c429f6cb5125c2e46671f411194e26861c3701f2eb266ff6d90d9b16a0c5a2c667d7e39060e03d4ee4ee7c4920eb0eec7a46ff3400cc1223287a0e1b592d29844e62621b4093d83b736f36ffbe0867d38b6f1ca6eac04d6dde90fe1addcdd09124efda0170017d435c2e73d734566f68458973f841376e4cff8f24b3eac6f1c59064cbb3b2d4ab013c870d81c438e0b02fb2cbc0bed7b853ec4ba07ec3bc4f3754811d9f3cff30be3dd9d263115b3a36f1edbbbe090163d35bd7a3ef4b2b6e5c98ea809717722e7e9c7cc4493f78eacf62139e89fc4942e8390abc1eec47d92fb2992c51fb35a47a92d70c36b71051923071e3a412bd7ba0cbeb6eeb33198525a58f627eca8cc6497bac664af49665e9f4a11a7cf55e188ca794999b42054810c6054d89d4e6748e5f51512959529dc05625531b0ccd51e8d705838f6e50f48ec25a02f0fc1cf8ed6d5fb4a81e60a9fd8fc8196a161830fc3591257e6377148e2471ba069bea170ac2dae1fa99c07739da44929e3181fca1b24a6e7b76dedae620c5c92ca92bc04f428b16eee5028c86c446441e2893cd3eb7657fb3d73a83d3a3b8cf2d7bc24b4a2018682ed2f33e47cd7ff5b32d9861ebec50eed6842ad93e95f29e4ddc25793310f208fb6ca9bfd3b08dc222c2bacb6760781e4eeb9abae37b1e4a5c3b2ea065efd86136c9ce1561aab749f08491e3351e832dcde03db26c254bccd648a7e099d9e571d69279181ed55ace40eaebf5173a7a117a2987d697f5c2fa14faec6699dce970c36d1b32cf5bb12eced6607acf8884dae14757bbc5e32b553e7cad1bbdb198a6f854250d9474bdf61aebad370db880eb8d49ce5f3a44cbb5d3f0556c6d0d7647bc386ae3e82c0394362713177a38559d8108fbb55b6f293e16eadf38c25336ef7d396be0f0c86d6ca3b937ca4df94f84e33033435ad944d698260f91a04e6c642aab32d84e99a521f35550c87860f594b3b1cefbfeb05090215cfd43aad18f6c57a644c329a142d3ecca028e6eba571c564a72e9706d4f9855994cda1e00452430a617aa34f35b62b2e853a1f556293090f5b558ae0781c45d28d3e299224f1e684ae14a65a344a69879c42df8ab2b5fdca4694bae83be49c9a318a3862a9565142ade44ab2a0957c338991ef3a5e567d54607cdab3e31527a42fb5083a2e7df67c3a9136a265e75d67011fb94e9744c7cd85e2d226f61f0b45163cac4cac602e04b81e79ea8b6527a7671bcbeddfec1843edcd03e550effc7a479956aa5e2a540e77385e084811f6fa8e2e931a937c09f599f7c6bcadd5ebf9f6a2a798127dc90796052995d5eab0c78d43de28d17e6b465b9fba2848b8d3d029a18ee0a3b4f3a748266447b0be5f6e64b5dcf4e663646bb0ed3c9cf802f252f6e061ac01fb05676190ec6b8d3dfe28209b5219bd08b23edbfc2eac91096307f2fa908bf479ef096f4eb6e5d03ec4cb5d42000ed0a752277bad53b97f188db93a56af5a2f16fbce9e2b8862fa7edfb924abbca353585e6809b3a45b3e5b109dbdba4587a871d249e3b3a4aa82ee315255e2e27cf30441fca3f3f6ba34503af2b78a95319237cf6e1d39c33a400cadc28106f3f4d8c5230376d5982606472d80ace5ddc891ad71696e26cf0b1619c215b7956e532d2cde473704c0cab50bc9e9a846aa8dc6ba26b4c80dfb2f9352f52bd68f2a09b5180d21d40641b6a3bb5b7d0f4da338ef07878eda518cd5c0481f34c48a2394b6f19dfef73cb6a840b0666ed1cc076cb5b5837548f29964e6f59d1ce7001bd082c71295be83b1ee1a4b28e083f01850a433c7753971b7c232cb60f0cbf4936a884fe7d5fd6cf627327721a043e83f35930e27d7c5c2521ae4edc2e023e333ff130f4e365a15e7272747728569d491a8d453711337236b93bba4d22ddc967a3308c6a00db6ea97f43844b6e609864101ebb96b40c01dd743065c71e978c9721ec6007654e5b0ad818add121ae4ce7e4e8c78a1cab72522d01d4aa30355b6364695e60acbfca6b88da52382bfe00591983f0d81aae5abcdc94c82aac5bf4a335d0a4736f0cd98ef27b6e64460611290035c46cf93d6e981316778919b9efaae9f41ff9a3145bf3a9e54e5d44d89a45af6b1b867707a339a568c54bcdc758c1d402b952697f0c7a17d132ce8515ae2edfc6d08e72ca05246e85dce19e9ce4bccb8daa25d651ba0da086b16db61e462abffd9d370ba1595700e96db2a199505e896540df4b0424e883913689c926a93821f3fbfd57d60399061ee33c88479c7ac98fc1422ce0655156816a5ad6c69e68b940dc6bb47cd2cca0de2000a38b125b4fe8aac693866b73223c57d7187a1232652915761ee1c95cd04051fcaf9532b80c5ec2ad0f2da9d5a7f12e8ab8105ba991d4024a2ba38d5e4cab49042ed0501692f62500635ba05222b54bdb998c6b973adbb738c784eb5d45478c3bf63abd9c4982b3e9cd99f8d9830b0882585a1955061cfa9e2bdf2b59d81ba72da9978b120bcc227574a0b4707c648f14fd020b7431fca7517857dd84e46e000c7c92808896ef910552aa6e7b6cb757c97c3b8ddddccf6fea24102602732197655baf8815c3ea81371dbbba69af1608b98902bcfeb88adbd52cd063cdc1cf2cd5858b620519fbab8ba40c403a11aeff54b57f0c2c1a184bff0d19dec293dd4c45c98a10e151e705dd61cd16750b98a37a9c617a2606f185a3dbd5ee1d64aa6a6fda64a750c5b556ba00c25d7ccee6ba875f650042ee1897e379fa277e66fb3924b4c2387116fbf988f85e51eb615d43ea272d7e34c2c9f78f48c434cd459f17a15ae5ec5ebaba0fa1557a7a2ebab10750014699fce81cfa12c92453c2c283c05cd75010b982135a05b22da7b9378873de9eab9b85c179e23d9e6866d954d93284c6ae9fa2d5f7ffa81a809d274341bd4c4a4e110d614a0afd9ac9c99e33afef3c4371574d30f5696b7296d315830bd85eb99d621542c578e2d96f3fcdd4bfe62351aede2802b22d795cae4674c0eae265b76dd9655c7e5ab63f9755aa63a97afaee5af932e1d332f353889c4ecf72719755ccf6ac1c3d2bece20946b66546c91098302262d6832e65d93b42b59c5f54aa9dd90e3904f607171e132b784bcdf6547abddbbe7093ceface711ff55b08deb8b635a498fbf0199b92bf360c70296c207939bc0921580ba4965ce027461c4dda177be3f43b1e436efe30f4334b25d05c01bdd2b79a8b2c6ee00e7147d0a495f23a2d49a8773a4ba3fe0e924ba2ea5f76623b436569cae1e8be4cde0d222e022210838c1e259f11b1eaf2409d1d8f5e0ae80bdf29c97e30a11571c3d9c053de4e70453b60e14a8967f430a670a9186d656072f3e55a0a9d94bf91fffc81236a2dcc8839961df76057557e56a7e2a09e940b7ba025b22b1531240d5e8f6ccf8d46133d1a43ed5b732d7d4a69e6604b5604f3b70492572793123af86e8fd913ab8479d54e4ac670541568921484fc1c2ff2534d072f02526ef3b4d5e5144b12f106e5b4f200026e93a0297a76c476e385270678d504f2aa114a8b51b8f4fa8cac2488c1a1022d76caa17fd96a37e8fcbaa1b353708b5d534cebf914a149e5e37b79a454b334bd632bd55a247290c36a73fa523428fc9a70cddde6492c3748544ffb65e81b81a4ed68e0ee648c4ad7a7b592dd09059176e93518d86bed4bd54ca420b1da09a91448b777a00d9ef57da62f28c5807d52d64c2f913cfb733bd5f5b0a699605928967589898a76254a952f084524b66a7f93b4423c723e71f947258a010790f3fbcb4d03d7e2192d9b0467f2135bddc93b5783c707b5e76f718c67c200f147a49903c28d19839ffb86c184403d5ace016d29bfad8161c4bbbe964531396ee58e44ccd10dd5ea895257447ed88cc94cffde661567e4b5a329366ba699c3801799ef7118c9f5e9b31059472204544fb5d656b153f6f1508cfa116c303574d6c7a9cfb415bf538788f96586c65f295ba3a44e6c3a853503fe5116771960f00ae6506b2e72d7b340b0fe84b670d943730515855ff3c3e1c6237610d55cbf138bd61932dca2a17b6345615ed4fadb99b14ea1e56f0f9c5a974ccbc2e1a929cda8a4b741475220dae168e01b26c47bf2f5036c1b1fe6ea3eeccc531a053b348363a63ac704ca2ef83dea9b880553d9093e7dfaad3928f1d0241d85504d726098a47b14c10d692474cf46696675e375314758851ac67d11547c35774ac67010efa575144923b99492b50b15e4e034e6a7c19757cf2196aa4d46f8a117ec4abe4def938971541865c5207823cb5cc4d5d145d8c2ffc85d57a3ae7039368c02bccc96842451f0b443b65ed3ce8912b38852b31cf275dded9bf5b16411570f8d3d62300337409925eb34dea288c12aae8f0d10ab8fc441bc6eae77501f8505c46e85915368cae7eeed86593421af21fc7b65888e5a0c3ff8306c5a44cb59f6afac17a748c4cb1911f59b50f13e125a4fc8756e7245ea3c44de796591cbf686c9bb91314c7f971d256c6303b1cd93a60914b39aad05251734b25015332194e98085d912504afac24014edc84c9f0b6e0a4362849e9cdffaa8829dc0eee3315456ed64a5bc8dcc4b970315d91fb3f77540e4a5f6b06097ff9f08d136df6bd1cb9de19e0fbb205214cd9a886e331c6661b40f5f57fc1086340c114ea311b2efd7cd05c0868fa70f07b3d0df7a90e2d34d354b47c3d6f87226a814f931bc4382935b1c903cc841e0958dcd1d56a80e7ddba96f6b637b54c81d32f8dec29202354004f69c4897a871a7d888d22e6d1ca5f57a8e91921d86deb9f535de6934b30eca334247f54eff7c6749a0e1e2fc48f9f4d1f0295a08604e16e9757b4e1c1253979b91ab719ff629ab3e49636dc9f36f260ea9f8750e1dae92639c7a3549e15b85a1f9069b5f5f19d485add9fb19c7db4dc23c19cd9b1cd1814804c496f873e8e493244a08bce7a045a6206eaba299382f82f7f1d7018cd950d9da338233747a5b55f4b93bcf54d515ccf1f7e2984c088bb57079cd4fc270eae537e4c1c9fb702a28cd266d27148e1295231301a185330792adaf0a9c197f3a2c7b9401a3344b5808829575dd8546a56ad2e78ef258a90af739caf7b907204cc1c53dd97b1fdd168dadc7d5df7cf64dcae411a208f386cf124a89878156ee87102eb2764cb876556099e4498be9b5eaee42d597fa8126e4d297315f85e447dffb5ba63418fdff5804865f7854282fd91e126100d1abda0b79d0bc5ccde02876d28aa905eb1d901ff8198f03fb91531a0a300cb8f1ef0ffac23fcc7eeef32d65da344595ff0c4064ac7359e6484506be6b48803e7b58c930d283a53c96b518b5bc408db60a92ce431309c86585e1333d2334dd603d5594c8e2316775248ad1a4fac2626f48d014b88df119ae440357a54267231e263a1daba1f9450ec944b722cb916618e27637005376c0d306f86fd5e7bfc59a925411256ebb696506a8f6c2c8d49a5d5c21d018db641eaf8df0d437488f104dd1c1e159c4a41949cf3c11e5a1844d56b6e8a329c23f511c340bdf2a8a4f363219303ca43080ff1221afeea133e91e25253f9a5f5882710d317c6b58e9de56c0812ca1c51321d677a234aca5cd9d731de64ff2da3b05502d5f28845c9ecbb9f83888ccd0e22e6ca1a97d424e47d1349ca37a9d9a6f71f13b60ead871fdfc790713f38e955caa09da05ff284d8290be7dbcd929bd61a2cdd9e0603fea2128607bbf6929b67b170daced1ee415d791842becd13f1090e512d9518a363a2d05855070783cec4ce03e6bec7b12ad8fc502e60a72489d95c2cfea017d829b1876cc419d91c9a29b48635116527c346641b579af48abb990804887ae8993c364f3a14e485d67dde16315bdccbed1f27018e734587e78fd714df24b7475e04c3aeade35cca88790a31efe3b8437b4ca1de374c5ad63f570183752f9d6b9a5f0fd1bace09e9d4d429155dcf39b733fe54c53260e0665f081ae22794af5550eedf0525ef55351d66f94e009fa2af7e52ac8fa48adc6ac172715ec0e5ad9da0131aab5ad61f26f61871a60a6aab00d5ab559551fbcafad5206cd448854b37a77a8a68fe70f2933e6106534a0548a5e2d37a66820313bd0438c2845326c250465bb86572f68089d34cd870f43f863d58d99ea6c047a4b480a0e8a40625bdf9f3977756c298c81854ff1a08f5a4734b63b53eef1c983ca076f0a02a8004808c21692c17e0f1502a3caa054b14e83c0c723aff57a1ffcde4a656c1b9fca6ba9534fe9e9990694504a97d49d6f0ea848087ec2551f4b8e3ed353bf6b3ee7042d9b3143bb6994e1c14995074e58b05a584c97e46ee35437a9105ab15b4a8b7c88b67c439e8942fb997ed97241c1fab5e00a263357f9018e9e477591c8738202be78e5ee4c2d77975956e413c292ff899d07dc20d8bc8a1bb52dda3cd9183cc45055d1e8f9a69294bdc53d2b35ed6a3b7ef9ab8a132ebdd183d29a72dfa476ef357fbf58af76c8eab4e92d054af94e2437b0181df1e399688f499af404fe7555405d28fde656df5b4a6764f3be6a2717557154a75762b5047b55deceb161aaff1aed7cc6048282b4844aeefe456caf80ccfe8a022cda4c04f529531ce827854d047239a5d0c528ff6b298ad3bc51a932a73493353b93a0686edcf0157835e552e290fd2280f0ddc2f1219e54cd987cc0c74955361d6f0af7a3d9238faf10025cae287a1e107d1a54bdc2b66a675c31af73355a12188a1f29d932928c6d74d0fb176abb9d5ed7035dd86247e4446dea0d8df1b543a6a57cf46bb05d4ad21bee6f8cf7c10ddebfec2510374366a194016d15c2d097984ddc64332e527258abc31689cfe5e822bbbf1506c78020af2c95705473043b7db0cf090d32f31bb88c8a99fdd733c6dfcd19b51499ea40aa5a05a04b4150b2644ab07f6f51f71ade90e88a5838ee9fffd28db840a7f70dde949f2529189f0a22cbba352a0468b24d49ac05d2c3d84ccb47823f8cb444afdd5d143577f2dc4e6558fab30d72fc2bbdfd26fd27df64cb046511f1694f587a037f5d17cb74795cf34d9aa684e5b9120562c7194944d521caff507b4331c57022f5d14ff6807607f5f1d2f14dac2818aed787010857358efa688b6fd110e90502659d21eeb32a21976ccc7dc531f0707ec58e20a81b376b9899ed33f66ee876a2d7653dded9f9558c0f1951a356f8f2427217c194b55d2673891a514c9e53265f80e88ae472bc4ec15314fc206c903f969c8335cdb72cbee5d659d149637c1616215eb8e5301d1c73fa8f5aba94515e07281c88387ca9bd87aaf55c73d6949ea17925d4ced5f559d2400b909f4b1d5868bf1fdbfd4663b935f302cacd1a0db269aabb209db819d4b06b8cc809deae32ad92d8636db5b61aabc8f332bb14473640a0a905064196b37afb52826bd784e6432e92c0b3af1ce5c5b4b3cfc996bba3df8751ad34a00d38b6c90b733cf1b8f60e51edc281c3176f313c4914ebe4b859503017acfe7e0db5867e0e9e6f0bd6726799b3278168df49f86fccf97c0ba8ce808c587fd4c17a64b7c77dc209a5e7ab71a90664dab01edb627d516c3408562e6bd590e5419e8761a7dae8dbadda46482e3b7501dce56491a46f45076dd71de08eece232d5ee7bbe7468e59f0a132d845da356e46852bfe763917f09d2318968029ba66c39f5bf2d92f1638b85b97b95e23dde4745779142b6504a9a146b0e4b359623845885badcbbd73bdcdc5c03ed0971bfaa866d96effccfe3cfd1ef3eecb84293238ffbb7568073bd3bd50744918071096ebbb70292e3dc3a97cb31022536c213db5d869272ccddc688a32485e4eb29b43dab85e3930a6ece520084edd79e88c3f4746356a7ff4574a15096dde10675d34fc87903822d84885258f37e881c9c30b5f1385a8c9dd232dd096a7439e74e29fa0661c2508737b62d67a32d612e7df0b8ac06016acaac148b03723c31134d8d25df1c67c7e236da346ce356960bd47931c42a37097764b23c42b1789c68815bf2bea17e8d50e0063228ad09f2671f40bae1c8c8215ba0b02af2e202e34e972bdd7868770567e0b8b07cf8c58ac22fc3aba642346b841d68cfb166667477453d8ca2f10267d51ab83e84ddba1936b7c9640098298a1740661d061fbec74877b6911020e5812edb2c7d7111668fd96c936b4c39d2d9fb68eb50450bc408ee98a02f33f104e12847ee90b9c009fe3fc623045bd0806e2fbf315020b91967a3907ee6f2efcf710547ece7c5e1c4ae4a46a6912754973b9e7b38047d23d004e6a2368c8abebdbe0f47d668df634e0cf8466e2ef7bba9b9902d80b8d2cfef47efa71700431400b8ee47a9498547f39ff6aa14f56178036043600185d2fd12e1af9d70ad53b16d854da15359d4c54328afb9d071d8aea2a424fa3ed8e13532bb0ddfa09a41cc55177068631024205b108970d8a60820405d20839187a42c6230c47c7cc9bdcca12d750f48b50e0faf39f361fd034f87cc85d02baeb382e3fe06a815b343528732f0d41c9eac9f49c09f1ebf534a0b1516f7ced93406eba62906718aecec2018325903d811c1e48db43a6d855cfa453e1bdc6f511008cd99a6a5287cbf08f90a73a1e63e06a41374c9dd018b995c80fd181c96e73aca9edb8cd835139ade13be717c7af6a5e2a85ae98e3579fe48b13470f05df4390305fa9667a714b4134a1e1c8a536134fc621dba486c8b2f1459d71100f072dd6598abb2637f4c3af57d76d840b6d36ad1e744bc4a1c948f2d321bb424fd23fd5984f6a9b04c944ccbeb7807751973f6f9b14d3daf4db1c5d9b9d4468e547db698cb8b64006701ebc286f89e17d64e3dfff23b5af78d1da2374185e7b7c86695c8228a21b9d0b6bea39a047ef38f810727054e4874e33fbea0742ee84f08789304eca3a6c11b7b312a2d02c0a67d9d3d7d3b433df68e4bf4dd0b95ff0396ba881664c2cfa2b6942bfc2a63d984a8c7a1705a380ed415324bbd4f0c3cb6539209345bd630a0f5f71fa0f937fb4562371885412d5f38ff066368117ed642c28d0465d92e7839cfdab1323c173312edbdba334bc9a5777b28dc47047a538b96b422a487cefee0cebea4f8fc222e4579998e0b683198165fad3dae20db5a8b398100e8e3ea11373548e3a633a4366fff499705781546c206e7880ee4b55c76d1b657df7210406c7baf39a33cbdb6c8a322c5c69dfa7a8330dca209a351e91b3a19459e391d1d6b89b65c99144d2616b836665f841e554cdb0ac473e6550b444e65e62243b33287f1ccf98819c4e9389e6be1fb6fd40b487dcea27bed1dc5e5dee8ddd129a66acc387ca72e204683a77c143f40c5fd2fbb195fe21f4828fdcfc3cb4631b5cebf4379ce45d8b238936c14b42805d689fad5feb48f5bb7018723ed2a446a372da67f8877dd87e2ea4ec3bd47fb72a159474b8d6b7e76cda9ffb9a5fa43c7f0aae48d2a48f13a08d91cc9b3a49ff5893ce86ec230f74fa7a2609c45cb15485ac7e6abd962138f02978b14e627b4c35ad614ce3929aa552787143eec665ed616e92a81c270fc60bc81083dbdc12c6cc1de004232a4ce600f579f29902b10437df1862d2cdcce52411a233e171c813b15f4f8acfa491320c87639547f27353c21058d458295e8493b945223749202b8f05d01993a2d7590b2afc4bc5e400d4c0284d126ed13fbd8d1b4e01b3286efbbfba26f4b30864dd0c3ec3d240a4041c7dd2d736d903e01f6252efb4f16393f4f5e271dda65739128729f1a8bed83b0a0b621d45c972940b9fd3158a877b74c67cc3a28fba17c593cf253f7ad89a29216a3aa0787602440d1387bf12448dc1dc5c9377f02cc8a4d2e2a85d9f3330e9bd109e16cfc9a4db0e18b481abb43bc5d7e0d0b3c11f27e196f102a10e7dd3633e086ad626aab802d8eba02dea0e23b098dc164249d4f53fb35b9ae83cfd3a6c8f659a08388f6f934a210a2ad29834328e7f47e0fc97854bff7cf10f094808dd0e28b35a71527a51442509732a297401856eb03c73cc4a5612346baa4475c680038cd9f666e6d120638da64e70e6f43374f5bb72c190293e88eecbe5ffbe648a2ea595d6bf46f0d8323a8e66c7085428368a88453dde2b7666459f10bfdfa0fd7cbd7719e15c28f07fdd86c8d1d791ff3799ec18ba008d3c23e9e7bbbca94812137670c5e2fd03b46c704099ac5816c9f2dc0a76794257a552ddcac60ce401ec3a4fb8f8428f7dfcfed3a7fc009cf083ef842b66a17471069a147acba4fcbe95a2d3214a75bbea98f543afc397ef8254d83552c4865f25a1d4620dc33be8c92689ea410b86ada88b4d50cb99db61dc20a67f5b3db58900fdb88a9dcb2de6a38153205bbb2418834a15916e38fca9ed1d2b404fe857b6ae9d12d9f6c35d601e51fe31756ee5d7de77e8b55095ace61d2447975ea8ca277b9122ccf1caa2bf059fd6a81d4557eb123928af2b98b205df600e6339a6db69570e15e73d9a4d39607ad0c20ebcf905e13a670046c990eb04e263d120ce71a89cbe3b14e103cb0ad6a315d5be601f0c5f1bb39bfa0e9c53028aae1d63087d57220928791403f60ce2b4dc2bfc6c51e7ae44e9ead60cc26607c4a9c0ff8fcd5091e55f4a3d1d1396fa7ffd298ea1ae52a65e68b1fe3453bfd9834f59d32396cf529f3ee6e1920c7c499be9ce05b67fa05bc02b7509ec5adb7154ad46200d33c052ee9fea63d2658fdca95e887ae17b973a1c5858a8a72e9285fcac0eee4473a67b030d09f1c8793b41d1c90b544e998006a4f3c771535ea9e20831cb5a45f2b7c58d0d2f4fb7ec8ef35b5729cfab39aa7fd608d3caad61262765e3ddc95e2fd31c264c2622fc299bc1dcb31276341d806ccff1f4ed68f582d7833cf04aff68ed0ab5418ffd738256a0aa459fbec6f8c02432cf9efbe15f4029c16accfbd2f6d64b2623620ff48202b87c3a821a3967d3600270f3a23dba67ba7cad552be588cc09f93045d06d02d98a6ef96ebdd4730b03dc1bfa5428c308787478e3118af7e081565d8b45db5bdc53c4797487767ec2fb1a15e58b13a0ecf595719ff675f57ab206bd5530177a118beab2217e4b898fc1192079774efa8324427c70e24c0e523ed0ffc6ec696191abc1b99dda194f3fd0426be2bb758c01d4eaab1852da43acd6d535e792206131b1fc915bc74db6203016ec248b90a77bea8415d7710cda07aa71b91dda8738d7290fa93b45835194c83070c72438a48c210601c7e6ff082104325e38fe75824ee07f93e66050ce6c136850077be09799b3da7d7099ac43b1f952601a079e3d3d59e8496a30532b38f408221c12247cf1f991b59819db201e8ab94ab2a293e8cc37e00b02a48e8d58ea59c9bef63727bfd18eada7dd4e05326871e0926a470835f0d5aa576f0b61e81dfd9769ee403951c2dd30cf4c77b248f145040bf981ff3b52f3c92839b278dbdfe819cf8fd7d39a24f1e205157dab1e14a3effe74d4034c5ada4dd27e81961e905664beed03d1bfc56d1ed79a691110ba47ebb268b8fa957cdadff2d596f8b44b4aa6277fddef92bc18669ecc1985b06b14c393b1ce05f72799b137c1ebc001e5864876c05126a72645be18eb086facb986a05dc4b5e39bbee25372004a0ad3b44c6288a68c201df57ecbf93dfe444bfd047ad2438a14b4e0dd3783d434c10d1dbf0f0d45344d3b9da04ec8a722ef145ec52a7166abb860c98208c1a775a08fdb90e21097713a4062d4c56cc10b644bf6460b1a5660147726e44951b0d78a7bea0124ad7eeb385e59c8dc7a7378472c1b0d7b578e8861fc2813c739602682dd570071a99230ea41cbc9e48d01e4aee4af0d787e96e2218417cc3f6a6bd76e8056ec9919b40ca48bb9cd9a31db08715fee036bf39bcae09a0362f1b91aa31e7dffa270c6d3b12a807e28ad2df64fa7b55ebf566a2beff377ff8b0865b630376957d32fc01b4e747b0ad04692bf437a2e7942cf0e87fd6fa1352421caf75326e50de712f4fecf56cc3425c6c6c2ae957c1b5a9719ca40a8977f3406cb54a5c5f7130a2ed747be07e8d216dc7889bbb216ebba179df45a2b7d8e648168ac37368d0824ff16aa3e38ba08ad41f0008417c4ea8b2aaac2d7a9dd3dc1a4143287932f6846ef57641dd2a4e1ff76633ac8470bc876e72ce163c6bacecb0b23991069ef501916cbc4267981fb7a3a55d4081be26e4667b86859bba854aeff11ad89a045d1a3ed01106367c090411ab64dcee8decf01102838ef4c5632142a077e20c230e517e888aad3d0f16ede69dddf6ca5c0b134623a13a2324a7ddfc7c4c36f27a2c48f17a41fb13d671c9ca1c504d4ac0167ebc21cb69ccf7e5c16e7d2e34b01178a5e2bd1f87ad868a157283111467f871bc146131b20cc8527824795d456827d0950d77b36c1e4c4177095d9ad894d5c1e533952faa6ae17c499f23d316033974038d542526431ca42d14bbe702a34cdaf1f80b83695b8377092e277eeb482d535a425f83fcc5e5c1d48b0449b9da3a4db3f13b0e36473ab441751cf00119d710bf791e5b3399f73649f480be0228a10e0e80264e556930e7f846378979a58fa7572365f30d5d23e50feebbc4fe7d81f200c97716647bad8573b473140a860433f68034bd9ea3845980f09b53a07e6b4c80eda3359076d30b593f461329667e4e0b516fd461553fff854ee5db9b4e9fcb53a05ff75beb02f7754915353738a9377c3c6b4a0ba7c58df85cc20e95fa85b3731bec8bc5020231b50e15f5bd990f7c232ed358ead8c8c7c521c4f68b4fa44883cae1b0938e671a47986e3fc3c6bb2ecf79fd05620f55f3a91f01d5a62bc97e6ec78a011afb51a0691376d9d2803d43d4fd6a0bfdbf614d32509dd5f90e084c92e31d9129b117b7b31e8d1bd2b2140f6397f01659dfca198b7e01118dde0277873a312872e1a4b15cee560b79479f100f347b2212e1ff0930d8fbb05dcc58878120c390ad24332aec38b4aeda1555d2b8da08ebe61cd36193e02a9a6d085e508cfa80795f1e1a020b8978c7a743a1c9a6ebdf661e02fcb743e7c5a0022b49bc4b07643306ee12cacc55af745ab94453f775c72cb3f438b7648c705199d70af072fc35e53e2fdd7c64b8a924f585992cc521e8e5569ce0652a50cac4df5168a9f065956f1529e8c6bd9c6cdff13debb0fcc72c693f658815b5392c2c4009d64bec5b1b42efae84a82c74089b19ffec529f4703dbbe016cf98c16316674d491c14ba127b8fa93004efb1f68398da4962bbd437bda781bf983276cdc1e3998b98a3b2e5863e2f1fb3e9a21d9c170d63615929364784d50ae977183c2e1aade917c7a834e2b8dea3dcf4920e14e2d33a6b493ad8b444a260c058d16f5ef9eac42511c38454bce65e8f014711e0b0622bc252940f375ce07c2f40a2e77dc46784814920aeeba55eef249b631045d87f1848b12beee5eef2cde52ad8b274e5c3330ebfbd02f971e465583c6adb7c5a929d1ac99707d6487671445d0ba9e5e122b62b1265172802b78dd624b7f88e461bf4e7eaba81a359a62b51f11a51bc029d120ad81c6e83d5c6192fa79f7ad05e038ebf867702fa5f1ed63e5cd68d2bbab94872226060140563119657d436139e6f0cff1785531f3ad3315a421346e1487d98b83d2599d78847a3a67b33f39008e7f8a27043842ee6c43305418f44745c6b84d0162f1527dec25116945f5376444fe32d3bc277798d588c77904cc29f6661668a1dea9fd205f668dc95f7e5cb4635ca032d5757ba28748bc5ee3f98ae3a9c0c5cddca64a13f629008faf584349e656654a916bee69b56b3ff2b08b10c01c61fb132b521970c9875cd3802cb3e15ce900bfa8710a4187847a00bc1714fc8b81ae8cfaa04e2a053f1181b1d45434136d0d40762b2151647825d63eb5b66c84dd8081030ae6b057be85028e423ee953491002435a796de00153f52a011ac8b6d079ffb9f81818b26ee2e62816f15b4bca7b0787a6107b2a4028c3579bd34487f1bdcaa966689ebfd81593b702121ed459ff6661b7f14f484b271abc8693f4ee87fd78ffc3825ce858d7fd75471e95a45ea49d18028d29b5280f8f5b8edc68ed2173204474b274002780885f337534c9622c98dd379d916b5a415ff3b244b07a71fba0cde759c6281c33983eb0546216d07715bcf946f786948909845aae81b7e5f044cb34dedbb9e0d8300bb2c24ec9365286c0d51a4c0512f632f5c0955ceefde8531bf7601b3726b0b0959300dd440bf4a9caab1366df7268d1e7aa48ab9370013edd0e8cce91f41d8a4fcbd630f31c3933a2acbd4107c6fb6bb2d086d33afc01b56f1013c25a245f022554fabf4e7ccc4793a1daf1ead183c18a70812b4b817538b712fb67e77aad6d009240e1ccb3b34779e89ca3c4717742c91f1873e4f87b1b750603fee651819488b8d5948d33204663274940e7b5f63eb586a052623edfe9b9c4e48b97812acbeb085d73581cc6a100470ef098b35013490486d207a894ce716449cfc578b4c40062ccf1d5798faf1c6c333ed8f1285781f03003b839a4a3685a8c479701ac93987841a1fdb9c085b1d92d986071684d2026a527c30beade3a301963278e435ecca0373a7d0da5c71dc53c6d6480ace3b0c4fdd1e2bb291778329a524cbb9e2ec0f13b1c2282d87c3bce8fefc3df2ec4c5ed8e857210bf09da8d7139836b53348d6e0ce7cc6381e34279be208fa17fd29bc3a069a325918d79025e990ad54c696bbf5d57b98ab9fe5f6c3c61cb675788a535f68a72e7a0e6acb2826ef366a583ce648e45f6c77452ab22ac69279eaeb30117885622665e2dd233f377be85b0253f6d451dae17b1e8075a564943b6b4890987415a76f248bca0943e6be60640c210ba46a3d1d8fb41a9da5142cccd3eda45d3ec875526b010079c9e5eafa9653e5e3fd8c86425aa12a648ea632f8bc4b22273e5d86ac7af7e7aaf0f770311f4606d2ec1c147eff3134eb06680f9c0029cf3f5f9930283dcfe12b0a71e02beb02071829372efab25802e0b380550516f5746c1e2417ace1f4ddf4d101209cf2b9e60c9857bb6077ddf61792eb45ab395860029fa51a257c3b36769b350068f7e53494ef802d8a822dda6cb6b0b3919aafaf9dc957c9f37911671ed1daded1273f517812e55301408c132c0515801ee2c1724acadc32d62a2f727908a4ef7f0c15140e25d8fd30af17fcfe7b6b52823801f4ed0471511bb9d343a6516143dea8d0133bdfa02ea5618e52778640e8e67f79a9636572fad8ba0375c799a712cb4e4179f69412aa5af11e1dc9770b899c5b49c600835e784851d7052e7a5f8ca87504dba3aeebba348442dc839905ca01827e449fa20ae130b05484093d8c24060577ef1cabf2c77b90b93ad0c136d3f755f8ec7b4655931346090ad7af198ef40c2557414d16edee3d348d55776145a8da5edc836d4fa704cfd1048251bdfafee03fe086029bae2424bfc2ff7fac4d135d2310c4dad30d20cbcf3cd55b01652067a130c0bf17e78453074b8a4d508fb3a72af984522ec840861c40a77304aefa4569b46a007c671c75b017bc1628ee5a569d2b6e79b07071b3afd102326d57069784da0b4f61ad6af7aa9c946a79936f2bd9ac5d38d8036de58b166868710f28600d8294aa425146363f340b8c6216184eb3ed38a60f3ae066b869cee131a9424ba2cdc43dcba6ba9dc5b22a3a30542f92e952a84df9043ea8f8cc48a977917030da323a4727d31acca90a15ded09422e763cf6d79323e3789711b4c6b71676785646b35032067eea4a2032ed1922663bc90f2fa4ca3e7b2d1906a8844b9875758b2459e2f2b7336a8c91de2a907348b8040891b225b4c0f3f15cc0bf3e2744fc32c752516f2fd1b935f02ee9e1a852f70db9e2cef89a120f57fa3e6381af2f1be857d05ea8f895ccf9e54dcdbf3660b6c443489f3843eebf3312bf39b9b20d1b4c0d5fb943b0e274ae12e2de265993ba71c0754183db7a23ad30d666e8ca5b1e2e0a88cf5add6d68d0623f223d312a8c91923ad1181762c20cfce13cb389e2bad038df00c4b1bd4f7686003d950615519e48f85bc3f27236a09ab7d44e366723eb227d7984c0b26c16aba47a72c4edf0e7e7d9c3800d939dcccd0a0bace7b54cd4f3c26b25d50344ac55538e63af508fbfd00cdb8b14c855281e68bae535b12a5a445bfa458db3afd2e0da664458e4b57a91e8ca05549b338e01a4e618a5ff2f3050d28a1477daa4f3744864a4c2607c34c1dd5c8c9f2825cda5845bda08c02c55cac8c6dbb0bd73b3414ec53eb9af409765f535c29f818c647fa77b752dc169dc4ab19b5304809e182b223b84768ce69cb21e30fa300b858fb6b2d4755165a724b354abdfedd4103a174e0a1e3959f60bba1027f5aa1a8b35d1cada72aeec7447387eda64e074cb82ed9812b0b6285059220f60d81f062791d02a10084204e36d6bec236d11a8c4b6e587a9e9c2256a663be24ef9ab6c940d179f45d11e7a0004429699f3bd8f707bc2908266781b6254ecec88264b2495585fc2d3713d6f94a518363e7bc0c74284590d92cc61b5a51d20045de30a20b0f65284c5fb434fcad9ca74c049136654c6cbb14f7dca345ab7aa83f7a55d2d71297961efbc652fd7a4ecffd972504cbc8836378d90a97cf586adc263392496067862e3e3abd16a5e09e608cbd23c0619d525ccfceebba7377a70be1e67daa685001c6d86c49366991fceaf21fdcd08437564ac4b0b54cb712fd24d4710c961d1cc9c69ddbd4dd5fe0300850a4f91242be4a00c8a6c4622ed7aae75166d26c4a5a9b880398f70bd6f3d0fab0f1b85aecd0ae969419a22288080c7224961aa74d696ac9a084f8a9c503d2a64c4ce00857fbc5643d64e8752029945f5515adb475f6d4a6eac453e81950083425b3038dc06174dbad92c44fba8f6298b06a0850ab6c3ed505f8a2669d42c108e3bb9119c422868b6fa46168748582ac855522713dbfb9b1b7f81eed88be1a5070fd0258cc08d00f5bfca3fc53a0a8706a26e053302d00671f70c221fcd37ee04b8adf95f92a652a3e224d92a30cf1433c3276c71999d40a0cb2813aa88bb8ce18e496ce746775be097b63d094198a39c86b7c8c0a118c7825c66324bd76487d342e51204d6d2b41419f7a0b8281190996e78a7311ebde759be38f5ee9b2c4771fa600ad3760a65221e875add5bde35ff0397176d05d8a94e285714c115e43ab85ebfa51f9c5f853f64d9159af7d1534c65c13cd577832fd682a573f881078df8e560160a42283aab0797f8b564f2f37dfff58b37d02a1fe9e5cd3c85b5ebb6dfdfd89d2ff9803dbc363b230138b921f00e0991ed51d8954a86d8899cfbd8bdba65300243a0d106138c02317a0b055804f726a0b060c63cbdb1b65905924431c477bed359027583c7514590990ce4c7d89d8a408d822dd21105b89ffa370a74c28e35ec72198332f200d6b32b8f0dcd18004b72fca8eac06149a8354763d75adeaef63c26509cf2dd2a0d4be19d9a930a7870d4a44918314e156d5d5d0874a1bb52a010789cc8a2e36b672aa3bbfeda6a8f4f50b092c8762f98328bb438608325e52ea4a7d144653055918e213cec5b19b433f9d40c16a33a0ec154036740667efb6527c8e57c27c4e2eff6c71bb72d214ec4ae420c27d6ab5f7f1e0a3ca84d7d37e2b672c873f5ce22af6bf2cfdc09e6f999acc1cf87c043a4fcdb322639d49c71e8641d068214af4c33071461ba6238f4191db3b0ee77b7ec82920002e9d5dd28f09b1890685c9618bf4953577d5fd82d40d9010baa8503239d8e6085819a8c1f39a0e7d54c31f9fea9ed52ed03a0a13b9ef71cfcdf6978b619b2d240f6ce7ec47cf7a554203a87d1095988ed689323fe627a6a7bf03f01cae4a2e433f60860887ac1a0640fc928724e314aa40c3385206e17c9054a8475ec7b8df094940e29e9c7c3bde73700662e3fb1cd98f8bf18145f22e09b68adfdd6c31cbee417e7b178995f6394913b2f2dd8d497d84fb9649b250aed09ca6c711f8d45db29643b62efb48b2773b648f5e007b648ece88d4d131feea3ef69bbd91e22079aa1b65571d48ac91370d34efa66e26f610299bb0716f006d76f68e6b7152b3dd991f3ae7cc92f7c6bed54d1b0fb85bc3f2614ef3bebe89355f99f021375c3a3838c540ff874443c844511d3c72b8e94ce6447a681f42007dc68e64ad6d2e546eef5d07a4bba7e0d5deeed9ba734ab16bc2354d79fe0b9d8ba0588cb322cd8e0954edde8efb4e9b455349d94c0ae0180841939d0118069bc3c6a85f8e060a6c7de5be6172d5f0e9c5c073a43f1642130dcd059fa13d2097f7ca2e51249dca870cf022aacc7058f1093e82b64190696c06b39e34415810166f7e8822cca5966d3932409d82e5308103553746122d2c16f2ae1920857305d98254054ed26cf7a02aa7da638f9ab104d8175fd90a2aa511c8b14ca58a1900a4c229d726a658d37f7d43b8c3fcdc29cc3ccba50c39b4a7a32d30c9df5f6d25fd9eedfb569e63f0c128d9dc34b9981e7419e2649af8de41560d6478bae28e651a9798594652b716b6ed49ed8930c7003a3304e8aa49fd34ee5942a0ff5763272ffa45773ecb097ddc0c42f0d549a8412fc20401ae5bec8b7424805530bbb8bd534b9d14d312ba18095c2a12c185df7372c04e967a965599ddde52358dbdd11de4ab1644c0a8050cfdae469237af9f6999d0e2c604ae09d6c8ca1ffc00c019b5d59e5c2e9a4f5a634ba558a884444a3f95ef13b97d5f13b8de2767bf265e0de4907b9f9c8da98e90b699597021f14e7deb9046efd88f5cf34f96114e98aa0527d729435c2924fd62f17182e770af5f829ae051ac879e01ec3e89e7b39ee0fba0fd1402a1ed2118a8b9cdb4943650cbe21ddb108f50801e6742bc1b2e1282bd8718d0d96f7dd3057a005bc0e2cc3240d31a762b5953dea1520f43f847a3c92eeeaee5d91b3743bc8a1e8dbb937cac9cfa5e21d058456611eab0b8ab07d79d7405167af61db47197d8beab10937a4dfe4129e57773f05285cab9fe24c4ba11d19ea10ff34f70f58044df077ca92d46921a48fcf00619dd4f78c0fc60f52c7e57625ac54275077919eea82c689125c04d885c2c2065e81d52059fadac32a6331786046aa583d4e1d00f49d17637f70ed8909a7513178bcebac0886b41d2819b7e4e1e077c822a83fef87beaea59bb2028822d28fa8c8e462ae7898ced35e875abcb96c18643aa6da02081a17dd9b93e67efcdf6889816eaf353b92fc09920cd9ea9150bda6bcc717de3957eaa55ca75e24185f6a18ef7a90b3137c5d296f4f9e787859044e282cf11b7b6768004cf2c5a859971e868d5930888a66a8470663e0ad252e1a0c67115716e839c4f5316e966de84626eab26b81006a7ebada877a09e82f536a558339bf8f45026e24b30aec89e10031cd6029a4c727e5c20d231b2399ae873ef02cbc95ca6fc87288c1b8613f90a9cd3ed7cbaefaa4deae5dad68efbbc2726f70a1f691383c16016a40a5176773822aa5755d29695b7c045de6876a6dbb16ddcb69b3d8852a9720dcbd1e3ef65bf88bd45ee148407e707d607afd585ee1951b0c986c866b0f1cb7a78861f2d8d2db40cc861f85f5a06c461f867b4d7561daa8d5ab74f7c86ff750b8456081b3f8f122740ecb64c9cc5dffe7018fe20cc20aa112b232d4d8b6e751ecbb5377d53f4187e9e263d7882d86d79382b4388f647060fbb6d0e3396380db771a6b5341c56e3060bcf0dbb3754388b1f93b82d83ba43dfb6bb1fa831889926cbe1304c2a219a1e1bdfa54334db6f6c2df6f83231da338c857697915e325c8601f115af45b67bb1653b6c2c93e1367ef40169d6a317d2ac4d1486346bd13675cab234656996aa66f13245250d8d0b92ce0c6010189a01749c5fa6a92d5abc5eaf999147937478843a327e1ec3df020dd556f332116efc3637ecda5c89dfc66f504db1060b767f8ee3a57e051840c5c2cb0a2ea91844a17286cc303c7a5beac1bb7d0605a41960f01884225014755226c21495ad1dd18f2ffa7175f3c7f347fa1cb576448fbee8d1d505d30078dbc6ddda41fffc16ba9ebbb5026975cca6e76af39721eff3c75504e33e5719c69204633a622850d2fb93501ec398c5a191287b5e0f90ff1c3dbada38903efa3be9fa32e03146f97915c1b8d1558671874c11094614e04d8e2ca2c0787c545692820a2f52383505120891c4acbaa6e66f8c4b1263f2775ed5711dd571cc2cd5caf82e51b5e19f1fb708a499628ddf6d02d36802b5c7a78106bce38548e81ea176a9fb31497b44f11b1aee5c9e4eebf8e2d7714a1aeef5d29f9db34fcf2dd34a5d0064a0da728ef4c134187214c130efc9392a98f658304d8521c7911fdece7997813bffb2efa766cbbd9d47bd9d9f04e2f2300b73114c832ed3fe76a3f1bbed32cdbcdd6ef9495e8ddcadf62ec615df5028085cce0b41f8f88d9f423fba220c39ac6821f58225103b7f10b50a0e511e4f38cc5fe011850815f686f84242dcb8c11036fe12e938e530866d4b65b456e763a3068ddfb057c34f1aa150585ee8a107478a526150548792c307db96736f5011ff59eaf0abcb3321a8e987de34313eff7c9149a2da66f66c9487a28e170731546348c3cf06a00e4172059bc6df6073d8288f8d3ac63af4a7f6f424e984d2d52491766ec2614ea5dcf84dd2c6789d815974b575c08718638cf1597a6c1a955a4ed3344d13457bb44ca8e76a6b47eb48067214128d46a35494aaa6f40c954c27f933854a3e3c4b274a23e68616fcec5ebc68313ea92eabbbb9ba9babbb89bef9d8f6261fee92b94b4e843dbcd0c36ecc3ff927ff645dfec939e7b15cea707e349b22f4d119de869a26fae80a84325720d4c3c0a34b4b8ee89be60d953a09fd93463d7a32d1d3449dfef4b6136c74b5e147a5287d2a9d3411a552e9480e1ce66aa987dd51d7037fcbe8b279e03087f2420f2138ccb78db4f19b5c96f0a05422898c6cd43c4dd3344f7c9e5917f2a1e23345d1f31cf779be9ca7cb9951a537b30e3b3f49d4427a528ba96d98c636697cc988fa39b7a6ce73b5cf9469a2d6d37afbe20a258ea870141c017f1bff8867963a157fa8b85a6de69bdeb66ab17d281da1a5cef62a49a7b47600d3d8a4375dc857d0b86dd2a3236935313b9244c8c1131bbf498a8018861c4a74b068c3c06f49c33d0ccbefdb397f8f712c7bec8ccb39ece2c741f8c56fd9a32ccb12feb2d4792c3fcb086ace39ce4fd6611a0ec230accdd5d66ef3711117314b3b9d8f834e8d8be7bf98cd275df6c0b0fca82e7598cd39876168b9932975a50eb339d76ca09a9fdba53957f6c06ccea18f7ff4a889a4337a165987d9fcf907b3d9fc72875d5dd903bb7f6adff8c56ee8f1a721bcca40eed0af1d68b1b6f9706307faef85cbdb5a0fbab32dfaeeb4538b9420b8e08a9edbcd615ae33274927444302b0c7eb33bc12e7e739b58672506c223140147901b0c21ddf8e7b49ccb399c7318e39dd34a5da9c3a50e637c731ac618e332182406df60f1e734dceb017bc19e70e7349cc3b9d2718e36be0ecb6fe2d4dca8dbe5c7e0b431e8b0fcc1d2c760b0b812e687e1b4b137e65e78aefc77da9873587e10382cbf69966e1154d276283988d83f6c5bcea1dbb65297c3866dc3efb91d4a8edbb6e160ba1d0a0e413ba4d3ed16410d2161db702e3fb16de34b36b16d635034dcb6b197b743c10108db36e66ea41542c309f4c0e3588c924b2a3be71f0577fed6e6e7b45128040a83fee32e7fcee32d3f6ecce58fc1694418fee2c58b77da0b87e54f1d96dfdd8bbdec2b7f78014d8018e67b146698705cf1ba1a579b3a0e9d86a96058fe202216cf3e3bffa82b616e23e0e888f0250ec9188c94180147478a14f10581bf3c3a82474746deb8c341f058829c7f958b79580a319bdf25641cc728a310e3d586753bf8304c053b7e74e890432e070e37f8e0b0e106ae061b29e8a941030d7ccb72851558ae544185e3f8b08cb2b3d035641c8e514ae1281c7da32fbf89d9ec16416d4be1ce36720f472ca51007e0ce5f46c12e2e99d8f94973146c21050ebded506e086e16dba1dc3064b79986871c31f96afb305bc3412ddf051c00bca0b9b314503841d6e2a096ab0b8ee32040c00164c468c1002cacb0a3530002d4368c010820002ae4e000e005cd9da580c209b236e7fce3eaf9f17a73f5d4fcf9491f66f3e7e46fb1af3cb2a1dc30c4ce8f8764bcda7011fccb010e8a8e2010960c7d7c4b2cc103273d3c096852858983672a954c269389143facbc758955b84e59872b142b712dae575c5433b7d3a7d61fd6ddca5b7979e5a9569beab2f2d62556e13a651dae50acc4f5ca5a9cb96dfca9132a97909650424d5a43d2395f44bb428df1c51089f9c558897963aec414656a90b9c9e46474388b5fd592d199a6a9aaabd53f6b33873394c0a977793c0318049e680c91185fccaf15f343c5fc62fe658df9a9d6985f8c959837e64a4c51a606999b8c0e999c8c6ee3774999d67607a447176b8bb7d1d65eef22061146c6af38454b44adb656ca93b5b4b6789d24fa426b6a483ae8bf186263f7eb6d483a306f435a81dce3dba4599b60deacd51065c992a5468408645077fe11ea968a41e57c27edc42062768712224a45d1635664d934cf44dd1531624810de8f5b8d959a2a354198658d2d3d6ad426a56551d3bf21e9a048c8b1adadef6215c4ab262b210b070bc7d2c1cab17cb0742c1e4b0867f19ba6caeafd8c0ca0354d9e148e02fe55d74ce132fc2e744d159fe1d71ff2c16c4e1703f32cd18ce68982798623faae827610bb6d15678599d61a711826aeb20857c29550e8ebe958388ab070d86d8d60e918c2ca61b70dc2f2c163e932adfdc112a2078b87dd96c7b37a3b057ef3d6146f3d38981af6aae62543ab5fa6bd306c7c9bdfc6b1949665a5410d533a52b9140f295d0a28b54bf552429cc56f9aaa7aa660740b2c56d9d8344d9b1e8daea1c267bc5d86e932cce6c7266783d32b69674dda2e6ab26c5c53c56b8242bb5c6b5e8ff1505149bca3d5d63ad15a6dad14981535440d533a52b9140f295d0a28b54bf5524252262a880a66da0ac3c6b7a182bb5c5513d27d6aa07ff2471b6dad75c26741843723be24a3ca7be9e7e16526bc9b346bd40571e3f2e6c265b6d083366d493aa84e191a491207a5f65dee9106c2a17eb8afbd4ac2d212a5a149872967e2c1a433019976a69e49486b9451261fea08a6bd1e3feaa779a260d6c3bc5a3ce611e2545bcd3b868a2d5ea5254ac2d210551ae6d270541ab64ac3d2d0a4c39433f160d299804c3b931053cf0423b355a07fcd1305c3c6594abb4295d168e9e81d5919154f214ede29e4ec9d479cbe13782a7116ffdbd4556b74065d6817ef6a9df019d163af8fb0f1bbd050eca1c77a232b4cecd18bdd568a8f8a99d60611d26cdba8d81a1593d878548419158bbc9cc77043ec9387dd368853c8d93b8fd06d5fa6b539384c89cf0662b7bde1acba6d67b0668a1a29fca6e6ad09aa29be48552db3b3cefbd44031ff2c5d8305b336371b5c86e198d05a536c41082a890220a559a1923f925690d9ea68381ae6e1485d65d80ce7454e8a92422fbdcab0111540ea8e13001e610a290a325bebcfb051a4593e1bdfe5dae3bbd0ee28c498126388dd166761ec346b1b1f6f50edb1961e3d967509489e24e9c550120398029227497a1b7f0c600c253bc09d247672b0a36447891d1decec6067c9ce911d1cec20d949b2f3db31b273831d247696ec2441e204890f36fe9de0ce929d24b31d203bbc9d253bc09d1f922290f0b2866d3712c46f80dbf9616787821b09e237c06dfc3bbb9d1fb66ef3d82bd83cec1ebb87edc3f6b17ff68ead82bdc3ceed1cb60e5bc7f631ee1ddc08106ec4051bffde6d1f7b871460648151dc3eb66ee7dc480d451d1568a820846105c60bb4f1b3db56f3ee1354a0a18270e387f1c2b09243cc7122c708394fe450c939420e1272a0c8612287083945c86922679823256708395372a0c86922272827091b7fce9b03454e1328e42cc901e6409143cc19e6fc2007b8f1a33be9a98166665c2634de10e8b11c243ce787db241c86ffa5d94eeca46cfcb87dd232b9fd7ca59023bb3542a4c86e8df0de6e83f0f687b3406cfc363a9b1bfc06ff4c8b57aa6d48dac6c763f859689b9c4d8e8d5f663211f208332d0631c3f00f5c263a1a6fcf00e21c24dc9da1c4d99a2c3553380cff0c25eed6587116bb356f1eb54e16296d194b2615354524daa25d5faa5d2348daa5814bc42de2d6c0b5817b047687784c061ec35fd2ee0cb45b84c7b0db136937881b035788c7dc235aa393d5327e3a3e69748b708fb848367ef7577e8f8d1735bdba47380c3fceacbd56b70887e12fdb1f1bbf6edb6c702e5d23a36b62b4cd093041a0eb0348c6c60fb93a997bc4bb3e96db6bf19f0b040057b7f1a32ca42c9074c6274994b482cc36f540553f7d5bcdabff9fa55d1ad5a44647a0d7bbd038b3f6fa9096f1c32d329070d7bd5c5518986dd1b6b7b130da96c28b3dbeaa8f98e96ba30648b35e5b48b3fe3f35908bb5851a23cddad5e2a5d327b5086450770bbf31b5cc6e492b8cf646dbf6e6e6c684172ecc48b38669a1d50c1b5f2bd63e35908b1fb95865b2560169d6aa8dca642d8ff0fc21e1196216f344b921c9d1850d481d90668ddaa706eab161d6667efd9106c2ad6a334f16b1cb03c42c79c55d1e25327e1926c45d9e26ce13c444dc952184fbb02b8387d9244e9bb1c47f99360398616510bb3c375c367197a786b3f84d535557aba7712642612b6c8374fb6216ffeb969861f8b56e871986bfd46dd063fffa492d8216ba668a9a2c353c4badc7c6d74664eb6158e8d764719cd5158ef36285e3a81cc7e5f1d75c719c54158e73a2c271508e93a7709c2438ce480ac769d558711cd6e3af89c271601e7f4d15c7411d471400dcf7a8806b6b2ede666343002e1effaa89181f1d653c8fe1476959101ec37fd2b217780c7f4acb84f0187e172d1b4246840c063220f8d43220b4ac051ec33fd23217c8803c86653b2dfbe131fc305ac6022dfbc16358cb8000e1dadaeb5f3410ee45edf52ea915286b1298245049b0dae40a142dc5227a3f24d0d24922c713c804a6a954daf59357574e76cb655aab5864a14e232a54367e55cf76a651f12ce244e2fca1457676ce4833725c653760bace7a3039d92df7fe8c395a152a4caa65766e69d94dcb7c74aa579dab0c27bbadb4aa6566744eb552a954ef2abe6fce08dd8fccebbab96eae5bb1f8a954abd82a868aefe9d4d2d2a2be3fb95776cbe55ed94dd623c3c97c5e1932bff45cb0037c5c53470e1934dee0f7b9b173fd5890784094ba93fafe52e21cc7e5fdcb1f9e43963f6c2f819437960a27a43c39c2a70488596c4aa1de4b76341c6ff0a3a316cc999aa3d5e5638eaee882f07ef4e0317cb25be55250432a34c2a56932a52ed43e6920d797dac579ccede1eadc5c86f960164bd163afc75cab6b6aa01ed7db306b322e8e8ddfbde1377825434550952b1beb9771e9a0665f868d1f93734c4d6957d496d34995d13d326fc3accd68560936c83639b142d80e0e83e5326c87613fd86ed81f91305eacc8c89a6dab754bca65189659dbd765f85db812f15925d8266cf0c42ac10a613bc072b01f603b931526216485ac9015b242182f5664cc69a598225624f356bc969696d309d532339c9932437c01bd76afde4bc8cbc70267a6cc0c67882fa0d7ee25e4d59b21be7c2c90059e4e27142aa552a9542a958ab552a122554ba552e15449543f55135590a5c2ad5438950a87aa7022154ea56ab58a98c542a63b14a5533e8b9f3a7e0aa6241f35ed930662f1a6068a7955d4d23d3d44902d4f7a795f825ea628115b53b45e99a2cc155575e1b08c37588dd16d90b72f667fd45931e825bebc63ceaccacb14545e82b03b73c2cacbbb716f5722b6a690b982dd198f6189f8a444348925628958225a69abf80d1615cb26476d00329522e9a89f2a572065b0c814658a1b974ee616810cea36ffe5494d027397a7dbe9843b2539fd4ec15393950a15e5d349f84265bcc1c212951251a628539c116b50d937ecce9c7056cf7aba132ed366414e4978a75fa6cd7e9c9af43805b13be331dcf857279cea84434fb813ce08ce88136e7512eeb72dde7a5ea88c39b214d4b05fa86cfc632a24dc36196f632b1eabb2d3e57c70b7526d5db85587ddf16f9b47ab427d21e9bcfc0b690572879eb44d914c71bc19713f4295882d448fd94ac4e0b6c97a34fc06bf4bcb78bb0cd3c97e64392dc3c97a64378f61698bba0dc2acacc6c62f531c73da2a56648a2b506d25624bd6b572db66a6fba48162ded4402c5632e8874e4910082f4810a6898556b36e8fe836e999cf633c8fe19911dedbb3207ca604884d043293c29b3d61a27bcb60fbb6c50cbb65980c27f3f198ec06bf91e518026a9ded3ce6a45d917446add6db02aab6d6bbb1c3fca92484d164d098336262bcc18f894f388bc9a0fd66587984d34e2027eff461b654e2ee49c476c37e8b6a3b7ff84b51300de6f18f86634ec9c97883615cb81a545bfbb66fa6b5de183d7bd1332666c3999089316726c56f464f44d9f8674f9cc58f6753367ed18889596e867b336df6c3614066bc4c9b1199f9607776c3d959f066db46ef2c0976db46efccc8c65f7a67466cfc2def2cc8c64f7a67418cde8d737b3c7feddb063919735a29fc660a8fe16d2b3999b5e044b5b970ef8af3182e115d3e1886475a152a4b263569999d65b0c86e325c86e17f21eddc6cd2dab63054db578d593fd5be5b211486c57aae5e2e9c0b9a144693b75b2d6b98166b6a209817c1fcbbd47f57c88573e55c3e32a1589a756aa3268c4cd1cda81d69137d799129ca144332c5d6db7adfc52545d269bdad37d47a4328d4e9746a515d3e9875e1744a441a545bfbe2367ed90dbb6f505bc4d22b11695cb478cdacfa5dae28549ec8acc2a3b370772b1c81293db08d9cd8fe23a2e3c0bc8bdebfdc659a7eff929769fffe65af1c52fa32cdf5fefe25b0e4e1027051f6b0bdf4b1c92be5cff62f7370972c6216e376250d1d155576897362fb93529c56de322ce73843c729097136ca1377cb1e66893071b72c93380cbf8d046e7fd288d3ca5f86e1b28917d9fea411ee964152e8382def4f06c99fe398ccf752d843c4397aa7d9ad16efefff2fc721bd3fdbc27348922483aa18214a79e2f222129174d017a5bfa02a46884f56abcd2489d1d4c20f58c4a0e7796aa08f318c31c5465b737d0ceb3c5930e88772b91f52d62624f192a3a9241823982a099ad496132a4d2921beb88891f9644fc888322bb2579645563c0177020e67f19beaea74424ec64f0612cee2e78982775099ef24f3a164be2cf38d64be24643ed91332a2cc8aec956591154fc07102ee84dcc67faa5aec5303f5b8781b66ed35aa91c25178ada530d36c7cc5decb536d76429e979a0b590b46549bb95aa559cf14d56751168ba4833e2bcd5aef5403b95ed412494f6a201c5b7311a10929425e942741047f154487bb01f1a3078fdc8db267d37016bfb96d352f8b169756332c4d631065f0204327e307193b194064f064f86498a6aaaec68f41e4c1dd19575c87dd1945193fec80388da70687651acf2dc364f8641001ae9ef5361a9c123f0aec5166cf00b2561b8d13bf5247ddee3c36e3ca8c224f0d3c4d785c943d7af0ec704c9a72a9744abb026626a645fa34290b4bb33eedd73debdb306b2ccd3f0d8e06074d8e06099a1f8d121a20cd0f688234439a2934c425dbd606e9794cc7d27c48d714319be3296bab2c34ecd1e060820687dd560a4d2ed3da20429a1c4d8e264793a3c9d12041f3a3514203a4f941a6b539d04cf1a11962b7bda1d2a8a1d5ccfbda17be8d1f85a530580925a06ab26ed9eb6e0d3f3f546060820d3f5404e175d0a10a14a70396f7202649921cb31323d44932a3ea098552cd558c8b07432ecb9c73ce39e39c5513e639bbbbbb7b0936b1d8294321851456ea0bd2023c67777777c7197372d29c73ce398f26ceac8960e89037debb3257c3786705164603b4809ea95719420c5349551180432b158bf5361bf939e33d832725f30e9109e049678ee021edb03b010920edc8ec052c80010c60808bb2050d8d03620f7800f980175208402002e4d3721188402a8114c894006946e9cbb01f7746a36118e904368c5a0c052080ce4eba0249c77f851d165a742da41420e9c46881142367c9222375ecaa2f555a7423020ee042ea2e3cbe40fa5205036906cab2d480bb6f2025c9d49673266d6449962b494220044304528f404a81940315a080055eaa98a0fc293b90be543141f95362a0bc0049f4680632408ac80f7c0004200841cb8f3a3e1902ff6d32a32198c015144551803301c748cbe1506fe3b7b122e71d2e3b4077ba3197617ef312859b9073cc7d1cc731e7d1bda62c21b4230713edc8b1e60e9a7d8e5a205ee47b0a889c73cea5d587ca5cea137668f91d9832a8534c0a65babb7b767727c9d54ae50ec37a69c1b8e4dcb2b9bb3bb0fc6d7f1c93b65ca0fa1e4b5fcb0e757c1e27974ccbbb468f91aa69d5a9995375a515b7fd730b0f7574d24c4a86422f5198e3589258f5504d092f5194262877942f5194244992a44deab20317d07ca8a37feb02353b6a420cdf98308ead09822d3bcadef6bff156cd1922082747f0db4ec3e1cc39e7fc39e79c3d084844017402654a880c913e089121f289101922699059e04ca88cef9120896965bad75455040e703614f80b679c7be0e16a8ac486d7f8e69b62421ddf9f860a9a28549bb9f1188087c1ddddddcb71b4399061c0b75a8973ce39e78c336be5376000b572cdb864e2c3c76e57f34ccb6f53b35a6b7d503f03288aba96a16c87eaf839af260ec20cec8e33601480852fdbbcc2b4186218824afa881b7df00c3f8cdff037f6985aa0a6a6c843a5c7301c0e73199342c0a48e1d398c76ac8084fab003c8dc01c434511f34600419f08edc40a3064b28795bc044901d3448413cc2ac9164e337790cb14bdba1f0f02105260ccc8e05c0ecf8e38e0a94ecc0061cf864d981c6c33244911d3bdd15b7199cbfd26844630721a00e27a111b662cfe0021b68c0448827370801a836c30f0d54f880bd1bfc72a0e1e386106eb8e1b541cdd6f2c8416363283c766c5cac42882027402fc8a186df61b643d149b1cbed5074afa806eab8086afe512a71b7f4fce4b8a424666d56e131f25d9bc5f186fc72885df38ab3e4934bc6fc2306fb048e39e3937fe6c071fc81db36bae515788cfc5167dd78439effe245b9cb3f0c23cf35ef6c2b75b7490c5b1dc3cc1d0ca791de537751d069a47574cb30f2d3d5336cb5b5dbfd4b4b8c4954dbe8d6dbe4d77250fdb76da3ed5074c16d1b83a4397acfb51c925dcba9bf71916dabd9a0da46b7d12dd37cb4cb6c39ba6d32fb507de7f7414d6d87a2fb3983212c8ac27d816139f89ed4a002048d2bf00c3e504162c58d1c3e381d3084b0010f9260042b5310a9e16f81dbdc4e0226611c02380eb171949b1329a85cb942430dbf09447b186fa8b1c3133d92f88008100ea1c40d34f0dd208851a949b5d5f2c7b1b502f5c54ea17d914533d0d0c148161aec804888d4b20f9908e16bf263c90b7ad432da63e79c734eb52960764cf74a47d6dd381d8aeec61e9fc5eeb987886c1d303920faf29d74005168c4575093a3a237cf14766ded2ebde9539376d3247dfa0d20ade9da0074b599db5cd354f640bb39803faf282867186152cae8c307a06e15b5dd2110c01eb3ce8fb5799e5f4344b5f9308631c702e38f33a0b4196aa7b675c085ecb832e1a43f60cc5f8edb63dcecbc8eb7208a9a48da156a2922e9b048754e34554b2694a34ca713ca4c9174c894ba4aad58a8a60b49877ca5d4556ac5425d5d8147334d3739fac88205cd0a3546c6d51ac2eed144bb427dd2ce6893afb5d61a86b552e9179794d61aa54f2d5ad55a6b51e82625ec914960c18241cf56a985843add78a96ad27d6aa59aadae9fd31523be204304f13a2165c604a7beb95c8e458b0662f1a5767543609687d95d86f9e0dc9b9b63d17279d8f85d1e2299b7d1d662bee5de707b5c1a3864625a2c56d92db8312bf8ae56dfa281625ea48148adb761d65e868dc20ed929264b8401c176b01e4cc8db6ed82747984f7693a5c051a8c165347cc6dab556d9ed8d61a3b053d8a1c94661893020981058af442411474496c8128930df4a459a21ce3c31f3be80bc782fdf8b884b4a945fbf9927668833ef0bc88bf722f2f2b9ccbca9995734f3e69977e69d795f3f5c91a452a9542a95eac5252552a9542a954aa57a51b9a8522a914aa55291704555aa4503c1bca981584f12ad4e2cf9cd5274dd5c355a4c54555db91ed9cdc5b93deecd63ae5b63e3cfbf5ee96d6571d56829bd66e9454b6fa9f496ded25ba307b3b21bc97523b97a5cb7520b0a77ca9d969c8027e1690997b7ddb07f1ae64a41afebe6bacd8a38b0ec130ebb332a523dfb798c97cbb49991253e60a6cd822c318410bbb32072a99c2877cab5e4c89c7ac28db39e4f56c363347abc5d0f5dce07d723bbe18ab9620b2a2626e7baa9b818ddf216df5f2e07bff1f57840607697c3c97a746cfcaedb9823a321abe1bac96eefe9567c57a6068221b1d6593109269854cf801ef3c124f1db419c1db28b559c9092bbe17aa64a9bb7db0d06b5954ab86daedcc6342caaecf6c24c3b2128fce170dbd414ca6291744630588ac5568b0662fd4a978624d6ab54545e2b019a41a8a4cb76293d2919a21101000000a316002028100a0644a2013910622825f714000e608e505e4e4e13c8834996a42808a22043100204100300320618a30c0dd900f2ca7f4c7ac2a22bd8987b8f7246ce0aef40ae6db24ab65124901f181f9b6da43430e6a1e90eaea0664cc83148ea52023363dac0065c061241b18c371fde14b2de7347307a09da65846484d1bed6e39009a8d85c4bfb65fce84573c6798e67255de071f0de9466e04412f4839d4d31f2b883bd93270be39615d6f580c8c95f24d098e86e2925e26f8b3ffe56640e343c49834ccbab05cd89d9bdb10df1009c7c691e069227bed70e711e398b6d4cbc776701dc32911e9799006e74562817db40bdceb6eb3456d2b3352a7f38b36ef3af33543b9985d37187395a3b145b78c4f018741da77198d91bd341dee02224c43d9902176b510075116acfd6c0750699587b59407f120839d62f5281ea2374ea62797882417a9f79f6ca0da76716c75a1ccba037a8b799ed9e8e05f5b8cab19bbc3c60075c2e6c17b2d822ad0ba036d2d6965d60b490f48f1848702acc937f32c01d441c5176e9d50e3a603304a72da67581fdc0803d6b9916fc7afb709da46283c54e63537b7272499c554e3cb8a1668bc1261e8892ede5e534164c2b71fcbafb72ff4240e452ba064785f0867717ed359de59aee7d3c542572727f0f716360d50d20437678672ff2c4fb8749cc8a0a8651fb6d9bc7441c7f047494d73e04fa583511350876d7044e214d09fae11f4f8055d3354a3e0d4be15a1dc863483dd49b482b61c1882bef70393e65cdfecf4c4c425b119056a225a950bc685a175492856fe330cdd704a520d1a935fe330b0665ee21972c9881a0e800ce4b590ccce2b555f63a9c779ecc090f874dac75a85a7214ff6da0de20ff60a146645d687abaae40032bca9825d1300e6ada8b944264649dd0a6bb2093bb5b8bec3b4e2e6c00b076fbe00c750e696254df10389b9e631bf9056d0aaf4911aa405e40aa35b57599e0021edcd1f940d4f1b536d8486e04cfc7bed841aa9eee67d1df3352f91e739e259194d704746bc0425f94ab4a72b237beb4a3532e74d0c7384e8e58dae4f6fffb3cbaa64913ba19243a3f0c4600bbde3568404688e6b643695bf725761b03a5540ba27e60e0200a724833ffa108708f06ddf640a0133131a589419c6655bd39d55fbd37422bacd9736aed38994abe3b9b9a01cf1a334d6666a7051672ea20255561d43d63fbe3182c81818e1569331d048afedf84002980480da0db5ff8e83207110b3391005fb2d3ad3656e2166c18cb008b84c6db213c66a5e8184858ecf06b3853e5056fe2c6df325d4372a5b327bb78208df8aa3e8b76977822c771e6b2c2c5d598f48199c065b3e902731893e5f5100cd7dc1a085494aad25837771f6fc4634f96a681e87e4b96fc0e357f5f1edcb09f25e56d24ee56e96b500f6842dc51b99bb8afa88f33fe044456fe6393751725779e756ac0c76f1f7e76081c5d881d7af827614ec0c76f0c6a2db3b468dc8bc3be07e0e4db364b0cd1f91f8eaefdd55116d0e036f0782f196dbef6a8f026b165eb0c964bec7d278899f8a3d84f299e33c06f4e0a58dd1bf6b9ca11bf07b16244fcf0fdde123c117bcbbb10f8e39e572637319a5fafca5e3860a582dff2560501e102c4823b357adad6e0e687d945c635e6431099865dd2345b74064d24162239f6ee7a60c4cb1630c0a90e44cd43bc7fbf5e30b1adb74772cd1a6e23eca198ed7549cb732f23da1cd95d1658113724989d6ac180f8b83ff82bd8b581bee2c8c8c4fec16f1d68748dedf72dbafb428bac0cfcbee5f4cfc001a8851fffa3ac1b50aceffb965b6d32e03922e2376cb5fd78f4179f08c7639687d971f60aa888290e76efcbc5eb8c09a2cc4f2a422b64998232eaae1e8921dd20241f6ccbd5d45fe0985c66f6ab9b4db9a8c7ee8890a6fe30c5844104e3648d553b9b583ba6c2806974b529674190dd4a3c5f95c614792e268fcb206fcf1d033d211609314a46b82f32aa4e566bd8b72c490dbb211e64dcc46df43a633c6581fbb84277e2e229e9870272e594fdb993bbaa77cbb5f93034f011d0d65c599b7a8dd2ba58bd84dbb058efd8d5e015efbf2081ad6252b32c5cb7b8cc32ffc26c8cb221eef5376b693afe3166dc69b42603e14f0da35a3ff8ffca38849b7aa675298a829a741e51fcf15ed43086df9f42c00dbeea163f29ad0eba00707a11f4ce886540870c85b35d6629668b421d4d1f35b9806ba7004c19ef3aa688f9b1bd88062011d29a3eec7c8b3279188bee694ef271af37c18350487e30639e68c8dcc43bb0e709b54d703b4c1a0e143e2d29c88ef1748666445f1ac365103fc772cfa6e52fbf033bb813e02786e3a992447f06481ae26e33dc546d29baf99677d10ed0aa587e08b6de1ff32fc518ac13058cca5c7f628b324c747d25588f018b1f52feddd513cdf9549332edb51c5980afd6bbcdc7a041d0c344074051e1ee41ffef3345de9fad09ec134e0c4f57ddf578ca1b45425a2c13c4ad6e9637f2adb4cac03df8859a18e812a816a2ab719e3d49cb9906944eac206465e16410f25116c12082e944268a93036d413be0d2d264ba000387df29f345c2405b590f96505cd39135736374d7973c893e92af347f0de8215c71418003bc4544b3fda3920374952d4b0b2d8b3f32e55f338f4d869252427575e4ba8e8a627a691174e11f02260b5a86a4b174c29ce09f22ce7dee3bde9eae8a87a536903bef7b4386c07008a9075a8ca2467dbaf0ab103277041dea524e1dd04b6e087aa4b4826b011b40a3a170cde15da956805cad069d826d3c2c322c312ad14854d3b19908117764dd2605fa83ca3a011008682bf10052dfbcbc8199e7037dc1575e88f8f8821fe1a322485770c0cbf3ba38fb8431d7c6db5c25812d816dac8972097c548a1093ac851e860c42cff684103b196fc2347876d0d3fa5a11ab382e3e55a599e38693be42c43d16cc713087852c7be56786c3aac8253e39b3d0795e7c66857244f980724445087e186b954cfa962e40341964f2f1c9d610961a68c0e70485bffe40824ec77592ca8c2afee5905113b672aaebeb6b1663453c81176d8f8a04558fc0a90abfcc3593ce920e78aeef93b7ba48004679e8efcf2b9d04dcc4eae88ecf0b20b9d824b2ae7139eb92c2e9d7e9cbb9610d96c15a51c16a2274dac2c8281645da463a6faafa612c2aa48c45b9618fe434dc5f8d45ad21aa2b1a46689653faa5a05e59a88f67116db55b90f25307084c566f81ab9ddc7cb4b0b44f8d9c0c5cb4ad7c984dbf24eda7fa74a6271fc81d3b957cd674101f249aa5ff6c55940027a456d76b2f3013840ec061496ecc7f6949a637ab6063c05d74cccfde0560a66d0134834b58f0d3df9aa03ea50eae31a8894a75150a45b1370e58aa5c4327b81a68e5d72350c25200efb2d437845865df1f51360be5750621b139de9c45a56bea1a936fc3e86e550a5bd2ea2c1ddb2ec902e841a37e9bb0bd8d3e2e19ff9240ae91d314413336ab003e69616a2954860242addaa8e571604ec49339c630cb9d3092f11124ab0ab8b55901caaa82e52ca141851b4811928c291625c1511616a1a65e0cfaeb659b70da265eb31fc6aeb51ad460e363f8f83c2ae048f2e11209cdfb51d20c14eb317adb7f21b3b527ce0be0dfa3c0dd215dc4327d42b5da539f5d3a4f728898bbb3edfd0337b1ecd62a20f6ad35de992eca88a7753694dd6cf54f6b7c92900140b1f5f46cec1c9c5e57755c71f66ebce3bc7c4c67f5450b9f45c59036550cc93dabb270be78129022d60db2bd0bccf79299e060e9776c9c9586ab6a7a3d9d0338941bd91b18d9639201aafb8a4fc5f3c48977f2c87b5318713973816c1d7d292ef19fb5f30e4292c8618df793f4644f5001ee759eb41df08c77d473bc1daed1e3c04c760fcb5262c08af40dce77e06ed45414af66ef6df8dac692e2c7319f2397d821b2e43783c4a95ed82b47d4717fb24af7a1e0c405527f2f0a1c45b47b1a87fcb39045f8dba988b04aef84810129ab1d27ea7347a958a3592d4bf5aa2a4edbf9fdff797efdb387b981ba33abad4f2a8a0e12b65367465b534c84853663ea6175492737d4c7c7576e39112b742546d15efe448109061c57cf205a80816dce777580462b8efdc987668491214ac7f48ad37eacf40deb0d3ed74fed292852524ef0e26eb13f12dae2c7248cfd6bae99ac73eac14cff8c01087e829070798ebbdcad11296b9f072f196f938a71aa66142fa632471e0a24d05dc56c6a9f0abdd40e81b3f1f16995122a48ce1c0a16aaa10930b1835fdc56c6e442eb40c9c7a0065502c521397b462e80f764147e01550f6383c4f878900e2d061fa4ea1b3a5178eac22c10ce1c733c00923e07a3f3949aba5d9438d3adb49461f6cf18251d629d8d92ae5453f64f204c384658c26dc8008592fc00b6a4f71e936b607c71fd5a25e35a4475925f3a94df99eed3ba216ff66bbb0ec5db94cc9a8bc30413252ad42ec93a506e1659566e5a9f78653d024f7feae0fd7f9eb5d72e498d2feada9131b03d9bfdcb41c7929977b87c0add869ac1321ef448d07ace3aef7dc8dde12a194d6d0a87bd1b9cd6ebf5ad721c209a567b76ee77c51dc89e69b95c1ceeb8729014f3c827eb4c37d5832556b2dad38b98117956027db4310b48f38cd8a7b44ae01b602517ec3b10c44fa625068fb0d9d318b5176524e36b9789f02ba03f89d58f67aac7c0f449296a663b535f990256326512c8c7bd10622bec424f7a638618a8690863896085ba4df3977c86d303a134a8759dab90cd487b93024e82832ac295f8eca13cd0ee38394486b6c49184ca59950b148d626e60811071bc479248a75b493774dec5029d8fa12848d70b68d0e00c8facd9fa220cd621a0f4d1d8e44bdfc899bc2b17a9c10e5a371c8836db302ffee51b08d2c7e0120782580cfe91dd92fcfc165db70a78fa0000c3a28aeb91908035c1aa3e63e99e8760a339feb40f49dc6d7a931562147d4a0060c05f529b966a481f38d10e15ab714b01caae89adca84ba506e138c7ffdc5661291b72c73bcbc21228f3f648d37a7d2a646202fec9560bca2a3b0262ba4d319c3dc9bc8aad89a88bbd8c1449e58e225435a5083f60e583c3267614bb4ed79b19b57c71ee85691ce977fedd535f006092d11d41dfaa53fe47e826dcd36466cfe469c41d104a64fc15bed1fdd40e8c0f92e13cf6b462ec5bd0f7e20ba7c29e90455926bd3d654587564499040b667dfe92508c2a03c92a9e3db44f2d5c0b14b2819a2d538a471de0059ed3aea87194eb6e13c50167204497d526a57251b2d72b6cdbab944d28b9ccfde8601d1a57fbcea8c3edbbb01e3c912fd30cedbeb1eb1fed6cb7142e98937cdcb2d02c9726d6e899bfd4bf72d0c9d48285ddadfdf3b8f35f14f487b5ce36a02a8fcb9b4317c5984d4339547e85c2872dc3db3704adb88ab9743e548f41eac1b34be1df92e86f7017e5d63a376d8efcefe30ae6f5128d590abee6e311c68589df63b67bdac6b53fc22c7918c2b0a2e74d81f29033fc450ab260b435d9222aa18c1b51882666531a16e03db5e2f16e85d910187ccd45c69182540f71043ba06b8d49d0c9f6c717d2c7ea1f0714f19167e6ea6bc986631a229efcd26ec029b03e6851c9d09aec46ed8787a675a944004360de4240400372287df263815451c89516a9932a81ce27a110eaa40ab8c9a14a94f584e7b6c0664234ca2fa347fd9d44d03ec935fe45a444213609b268486223dd2ed1fae384b35e5caf5d19d315eaeec04574466e0ee0247d9ce0252aecf64e0d9e5da7a7ea99e7aeff22c1fbc687aab1507c28006d430683b16d500ac2392fddff7758cc5d5bb9cc1d741b81292a599a3b679943ee87d61c8c84ffb09cd939c761265abdf094258e1db198108c23bffa739336a8e639006ebdee9c0c8c636da17ae00eb93aa296e00056cf6d558d660e753abdbcd5b8e82f5157f7755485bccbb6bd3725bface97d8e3a32831447c835298dc0ae270bb84129fb975378f75a6cd2b8523903b31864e05452c3703404227961c6dc3196c1c4784cb59cd1dcb1d944e96f5fe9754593728d42d6dde071d32dfb1b7101ed5e840cc2cf107b9705a633357cc85fe268be0b6ff1d430163d1722b6f7a5966d6e941f66b4c3456dab58753917ee38386bd3264f5b285aa3f42acb18ffd45d335c64ac7615b6359c3381e01e9304086bdc67a47fa7b242a68a03b2793084c93f482aa7ccd781124ae27c395beb70a1c33bb255c39a0a70e87b342e65f13bd20b2505a38f80033d0b73421bb816135901f0923488fec81bc96aa87e2f3c6fa5a71dc199597f1c08d668bde3d66168302f1160dd918abcbf408ec359a83e7e05cc86cb560ec6c0a7471669844be0ea406750726955513f836e7af737ebaebe7095e3ef5f1d2f375dedf226e87c0eaeab66f00173e2d9f0d72c86c69f507362a120600a9f0ece08e0bfe20f269eb175a2aef409e073dcfd0dabcf43ae77aab7ddd0441f35052fb555b4ddfe28a7f5da061ad7d814f52c6bf191d82d485540c87aee4f4060bb42e77e83cc95b2345512b365f00f6a46088f533ea64456228029c4d448733d1125cf18b7b5b10704093636905909af494cb32c712c7162e4ee59447bc0cfbf622869291aae3988c263a876a1ddbadc4cfe268a1f2039aa8b411c1db866d025bacc5ddd3f9c43d7a6cd18f58be67989914f6d1ad7df0ab4daf64b035acdb04adb5f3a4401e49ec78b2040c2b465bfe6ec372f750dcf96695867eb5d976ce43ab2dd7dde4b0dab635377838a9afe55e6da1717065abad0c476a0769e8a21570b23ddf2981786052aa82bbd54cdeedfe4652037315ba9b7dea0d75d2f7b310ef71d0530ede8d2fc820b0f713e9d6d3a7df21efab35923ddeb9bc5b5f7e143bab3ba3d01310576d8a3e1e92f40bbbad01e7924926ad6e3761c77a70073f5c0903842c8d82b2f9bcce7885f5d476df263c3891a2384883e3bed12fd83afa8caf6d24fce0d6f6daf27b2fe7f6c1a147dda341a3de0c791edcc3be5815d886606004f16bf35b093d20922c41842dc73893240738eb29194223f72cd9c90b8f8fa0b691b3e003ab57dc34c79c7fd5379489aeafd8526767890a9b928d6f2838239ab63e64e0cfb9b272a841a1758b384e5c0269c377ca4bd97c1625708a98aed1f0924d73f36635b906c9d8fee9e8f988efc83b2bd9b494ff740062cf9e11824241deb01a34fae20d718dc7d6bb3a9982e65e2f95c6f6c9b0ede4189fb82c5924b177e186306d11dc68564f146fcbd0d3726b3ad5bd28fd374ff4669603ff1b858179456971211a3d8334bbdf12b5f68bf0b3e5a0506cdfb905ac351c3fdd0ba88d79fc2612fe3495a52197f1e7c551bc93de6dd7da19917b3dc2ee20797f7bbc5633ad235a5c2f52b6a230dcb438d0b64ca55cc00f200bf4899ef20dc8b70757badf9dfee892534eb01ae884e5e658b5b86caca3ee214920dd3175461fdd4f8dab01f6804a69ff45730ba93818a4f1bf8cd790635325228f0ef136edc840e4e043731074d5bda4a3d3b1ab72b52e34b7dfc7e5e59f53444aa5b41e797181f0e97b9942d6d0dcff4b3e8a1cf94c843b5b784ecaa74ceb64fdecf218c32af2474aaba1dd292e24bec670d3891b8a1ed9852870dfd01c23c7f66d5b030916aa15aa2165e0a0701077de23f363a75ecfbc98632f99089c3b13e21ec965be0d6b401b90272039b746065446d2834e5a6ff3db7606df52e6ebfb015f490384929ac3b929f35e4e315170b95478e39a1baa6f749ffbfb54bcd03dbdb3fe9f9743c47220f51b0c9161e37cb0b6b74894f43a27e79cfd92cc9c9e1bb30ff7b51bc5570c176d4644c7537f6c77bdf5b7cb93fa62b5e36b21748666b84aba59ed1c698a4ceb7b3eda91086a0691585f79d55b47c11918639a1d054ab901b4ff42195b7960159a4283c271d158d8b7b64dd0291d08e37e9e70dfe69c1124a2fce70e509e83890dd6b80f956181172444af2e0efb55316ae329b60d6e0101d3bb6a2129bea1bfc752800117da1b4ae82c4430028c1a01a635c196fe8095375834d901d63fe1f1eade261c58a519b3fe16ab9e940f5a7fd0ab923992756ec6011bb855f14fd9cd1b8eec6380045debb9e5aabf2cbb2028fad3643cdb58b18b259aae9ab32874f8493737053c3f0621071e3aa1e69ed162e9e661ddb2db9996f171059c86633d3428d79bda2b5b6539947b0073965e36f30a06852194af92c102a714e6d8509a893bd4ed4923fea003d39aeed7e2deda3549ff466896ca49ed406b1fce27f581770a46950827bca85efb0f4ecf552cd9609f65050ed65a05d789812c016a45e12cd669c9063224fb0a9b589146d10944111c16aeaa3dc4b5f8b6bdf36c2b1774d572de15575edf79cdebf9c06ca2fbcc15366498fe898b4563a80aab0b9c476db4ea0809972f360793eb31a7455d748cae0c90ad847198bf7918a935c0c0c60b10fb7f0a453664bd81017ebaa427343c57eaf73e653590b3a316eda2d71e40295807f2de089bc1e30c7f411f50b2e2cc613210485dde6e22a43cffeffb4181a96a608516fc00f1ff6ff4fed0f7073cbffbf73cecff96bf19a3cfdc0a20407a026bad71b4a2e558174b1e185c89012c04ba1499366d89d85b0aacc7a8ed8f173688bcf08c7107b9d5337b918a2bb18bf696846ce8c025d4e1ca72096d30c88192346bb23b5d7d27ae4f0c9ab3aa4751145bb80fec2d933a97f35d7b34465eb0775511e1f1a420194d0f9b55d62ae9727a948f699e83be4225c1c856a8410f61f2a9920d3f67da38f0141eac97247e8e13613dff7206f33818d39ba447ef36e2f8292696921a9940fc3be5e81c99f810c50d7f616762ce289ef9039ed0a6b2c2e8d5d64d02cf556a6189063fd3a1318bb2d476815d547cb04befb4b76e4d3e70b050fd482b81386339609c7d89461e44381481bce97334d24c2c6668c08f614da131e31065295db23c20e6ca70ac4ef7d7d30aabc5ffa26f2f2dc700f77ade1aff3552e6ea705c918a6586e947aa07caa6418425ffaded949af17f485fa3a40459d1d8092863b588675a6837a05893e125cfecf87d49bfb9fb6c41d6e1286abca512b6d2d1df37ad2463b59bfb98aef5e7ed86670bf344ee01bdb768020852f65c254e340cf1ad15e85bfab28c679fb501f06621cdc5410c1dbd61ecdd4708b3e39e9ab1b1fd33238b25732687837068450a10f3ce7579a1e2faf65b407028d9982887c1efaf9d75ccd3bddf1a7c1d41e246fbe0991f7713d56ffbd191604681585dcf9d812de0ae5c81a9696fcde45860820aa12ea0baf4af3d58e9d2f54a78f7f41e9098230f9c6b203ee0ef35d7bb41e67ed7ab674f24ae3654500398633e451b265778ce3b50367871eaa691aa1ae19a897521b3b6a396da0cf98ee3d0c9af7bca0c20665061bd73f49137c6744e580ebe3ffcb1150ab2d33af2ab97d4bbde2ba13d88161fb9bbc7d2cd35d421b65a7be88509f034ed3699d5fe4ab3f4ef3465ccf7f7c1122758e1d1d8c93a521c3a66ef59bf5070a3c51d09c8dfd72960cf7a64d322bb83f95e9eb86cc099a40e47a154b3649aac2cd9932fa71b24df10bee5decf168d575a95e10165ecf817c73941b859c64347a6d762daa32363f096bbcb106d0a558cec44303db56f6e3dc892aa4d73103e79f7522562b13827f6be9381713da59b574e69ea7c79ee0dad7b8d235a9ee040459dbd2898ea8e3e3ae2f423fc6940405c1a978283a5bb2bc2e10aee2374bfc1710c40794c1bf8c6488b00a3316d653c99e01e733fb18f9b39186df6cc8a290eb980f5835f0d11342b849dedb216b0382ba6e1e6e4b69722df5389146e131759a245a422c9de4c01760a90c10161545c2b6f7f9a01dae02568abb7a95161f260938d1db988621c07da88e5ad8ea4ee4a84c23e523b0e4d4ed4c5d278691943868d9d17905ec22f6088fd0adf71dd6820316f788aa98cbe7ffc78f4ab6b4f99939321e1cf2fd84fa824f887d88e0789d27551e76f4bf55935cd0f684fb35a300a7db1ecaff6b9fa687ce3b587cc2ebf1442907d9fdd59dc0ff5c21edbc075d9627b44ea41a330777f568879a675c082758b65c74c3639cf291b5961905b441062630dcc29a97983f61e6100ef2c4a45d76211df47d9707945d87aceb7ae42399ca42cc40eed527857ef08265b97715d876075fb0d627d9cb551e013fedca47c0433f5bd79317e26e28846079db35fefa5b8a91d770e86df5770125e1a305e447d5f291b7f96760d82dec862fb6e0bb3caa28343da4424aeef19236b1e46063031fe5bbdb82b3189dbf1f4a32e3e9b76d3a826d8cfe2b90b6ab43bef2394b2b7f5ea57ef5fdb3257beb49b0b773d4a6d4a3fb43b4eac130a004688a5acb5f967c6d611f9a843ad53daaa97f23b4b41023ecd2a8d5355fee91c7425abd24a210c788fda16c7b0494506fa9bb142543f4ffd59b17c181e9194a078962e88645614ab4c8706bbed74043ee16b190ff52927db905e818beb4e5df34206b6a82e12a0e9a1b1d9ec0c6a36d7824e81b5191f14fdbe784289cec793c0593f1a12a4e46504d5ede0294f28e12cdb7d9b0a590e257a2b0044169c01d7bca650d44818d14df32ed45ac5472a2c30e106f89a235c4d9260f64236505ff1e2aff9866124797fee9e6639ad8d3df3a6b0767df95c8669a98811297b904fd4e08469a807d3372ff8e2324461aa4ba9f8021b84d71b53047f07bacc970fb86e64f553a15c97a75797af3561f849c229216bb0e049c2cb3d95c4515018ac2caed562b2242f5d1a36c0578abc3388bd70971ca76c077507effcafdeabe98c9b6851fa0e1e7068ddd2927f03df461181c841ab0eb8171afbb46141098265726f05518fbea9fd20bbdf1ca92b5073af4893608ea684f0607b00a2097c7b37b47f71cadc68271630d5e0e134e66ea704123a67c780aae185b82c694ce082cb33de53b656e0f7afc200e9763625ea0e27f0ee2c6e86724466271aee35365262d9fbc53795951a1eb5ca7e8ec5a7cfe29823e1f2a422ee17e0c5955106861d5c69811b95832b67face20d84ff2912db2d3dea7f289edf36dd1ec16952ad54509909c7dee1d86fcf3464386e0117c0a40401bc02aecf9d710485d53717761a8b0ac80399b24de87d1b6276c50fd214af7e5e6a3b381fc3f7063bdc47f9141debd501ba0ea3554fe6fc6979bb4f02082794305b8b5ec56705252422d9ebb8915c100077b7b3efdd71de0261767c96acba146261641858f6621b604d1dfa00de7e652119db7f4dd32918a9a3c39cd4b184d393b4f538d35a1854e85c8240f627361e7ce19892a4622289802d7087f229da1654c527ee46663757a37ca674d2f9372c3f94c6fafbb2c3b9ecece45122475bc0e7f0823e47178b14bb6cf15710989a98b2bbd71ee14c50113d6d29c5762267eb627be49f16f99dd48806e80153679f92f6f002c6f6e24d3110a8e00c3813ffd3be890bf693ac790b6a4f722f6a683505b30e99bfa6a1f81b19c84b6ec10b025d51fd3b6cbeec8ab039cbb909ab71e761118fed74d917b283749ba6978340d21c14d77b95ef07164656001838328a68f860aa520909948170038da03636141205a4fe5b8b236544f018e08cc56950cd4f329ca2545f255ad2fb8b0ce428794c093520ac2e8eec8823e21b03b0f7c561223e698fffbee9c6a6fe0cf02cbf37f2597abef8433740c273b1c4b67ccee97b163f49220bba300e78b2f3057054eff2cf859deb8ea4db58713806216775a36b674d62e0d882357aea9345b3f8d60c209cccb0581b8d57465f8791e635c1dc422063ff2e28bc583a8c852796dbeb37cbdcd07bc981c9f176d0fb07dc72a73547317d6a4cf370b0f4064c03d0528e17b119e6e07eb5a3803d52c41b4d7e0c6f9f1daa128bb4b5dbb1fb088e59d821462b7328f69843a82acbdedd69d565f2ffc21320808e270776d02dcdcb269eb0e15be769cfb5163bfdd0da01f01e2ee1a1109f771f95a15e04ce79ed64971fe75f8458eeeffea04209e96add3401f0bc04ebd4da00b63d6cd6e537d878540dde20628c8fdcafe22ef31ab401db15be345268f9d728ffdb95d99cf505b5a57a71462861f9ec6939531b853265e988ea4b5042d0dbe8ba6241b46cf888a0c2004510b2e8d5ee54ed46d8efb29e9d6458d7f1b36ef8dc0bacd52a99d537604b9a58d5aa1293441b0e32453fb847bcef27130b48e8350c523114716fe6f419536e8ca63025f30d3b804dc85f61fbdea016f153ebf87b1d67fb4cbae8a110f81549f8e0e3a06e2538be9f9806590d01af2bb46d2c25353a59f409a2eed4e1c00457aeba43833cb8d0e621c4cdce7057faa3312b7713c894f44cc812475908d07f853982bc5efdb82d33fbb2802072f9504adc0e428120302aa51fea2c380f7b1ebd5e264705fda5c2f911bacc1f7e68c6a8ecb9920b7a4a3b4ceb9095975c90ac24d55e71c5652bdf7b04f8cd750426ff3499be43b8c52ca5113679054e13887ef2adc790f6b55cb8100e86e0fad394dd3b80c620336456c05efa2ed447a25e4c4367878a45664540ba04c59da93fee76774ee924bce3b806a5339473a816683dd85e939f54bc1dcd4414f5d30cb4bdf56f90301f0e7b0b72c1cb59743e0e4c47e51f023a274e9670b9982f60395bdb7816891c10efc83541191dc3e578667432cb08305b2705a8314e932ec32a3448ee85be04ec778a7de2a382e6377dcb6b6287872ad68274410b183ae5b242614b6e684511037cc79c1823340bc41fd4c5199cfede0cc2ea40b1276bb275e91a97d12c64fda7c48fc4701bf28ad25b94c52e40d68b77da7b59a2c223bea9c436698253f3335cdb07344b70077b5c3735d9ee84030b3e897c29fa1dba790baef3f08d49b95c3006d1d33dee42bd0adedb99bd927fe2ec421bb6b3aff3332307a7bb08c29b34c614976e01cbf7720668e88a242797aaa50bc460b92a721d2d42b6b1c9cfa1191f7a45ebf5087733d330bdfbb1ef82d327d828836ee4254b449c2c374c6c01308eba2fb29a635488ed294d9bb30fde72f567f96fd0cefe0ee5615328583426819da19e098999d07dcab02e3bf18b0951b42a7c804c9d3bceaf5daa85e5ab448cc3c8ba9ed9e932eaf21be6cd165f8ac21de865aecc02cc5d7411908e0e310817738bd1ca383cdfd299f66aab2b9ee07eddc30dc12141b998e30ccf4c4e5e85b849fba89ed51afbb4b4cc2b48708645458c2fce8967af82feaa6e0757b628fb369a3d40532d103d6621e8baa9f3e47e3d1c7200a465f6dfeaaab1adc8cb07e09613793c1e83f83534e45448fc7060ea242a4556f5aeba986abc24d64cb049be07bed864006c972c6637475c95774dd52da709c08f1ca457a8945f46435000bad4144a859a4362faf48e73bd066164c2df3fd60df125e377d7a9f608033c8e60794011fd7ada4e1d42a01b8c4b00248761a86215828f360b1586eaaa1e3b788cea789207e1db456ba4f1daed88ca8291cbcc1a99e0c6728a7478bf0b6ac5c4afb34f9d4be0475fb5789cd5f4daee7fa1b959f27abdae2cd5467a202f28f8f2187338e58d5f087c3f097a30567ee2db4ac5dae06c0006ac211c4f541c78a36f8183042ef4ab95578ccdea93aa60127a5fb3e459285aff3afa26dbcf5de9f183c33d0b79915654faa0c21849b12000b321a1a9275684ab307bb6f85348e47e924e855622658686aeaa5e283ed9ec79c99bed84c58c3fcc843901b7dc6ea2edb64aa81764a9cf5b3b859b0a8fe7689d488573238b538db341dd0671c8ac908ca4692ffb6df0695c678ccee52f59124fa1bae11f27df19e2763d566ab0536f62272ae484e55121bf0ab2cd97d25180f0309a6908e8102869cc6ad1df49b7b0a88c7f77245ac6fa43ca5ddc77df4ed3e319a45be0d176d87668a9ec9cc15ee9b1dff7082a2032ffbbee2ffe06aa8e3082b289f6f1c430cd779be8303553eb31cc2bd229980ce7a4f6b3f8178b52174d2a67572fe94ac4dec6f20a47a35f84ecac85d5fc2911a85cc9f48fa901cb8f2379ca3649c2199def7bdb152581cb6aa9e4ec116ae61682e6450e01ca7a4d473b7d5baa8ab09ed9998af766921760084a6ad9df949fc8b88d1fa43b9b22bfd33e8f32d4c7baccf0f81924bb023741ff168fd99731dd09fc8a1223b7cecb1104510b98437e14c5acbfbe05e14f9dd05a3c86a2a08837fda9cf84e345d12d064f78426127b4645bdd0f58228203b62b90fb4c3acf5b9d89940b4c3b356d60d55c5d0f5bce6baedab95fb1033ccafaf29bd95dfa693497bfc99673bb118b3c9ddb7aa103b18ca31972112592312dc477a6c891b192df9272fe076dcaf00ec5a4ec98a4124b7a2aec33f221301eafd6cda5d6788b26c13d52f8032e582c92c9b7e9ad1cc2694b49ef1677aa6e5cc27203b5ed3bbd92a2436984c6092216c7a47e1d9ffe0a4123326dbbeaba46c5e70ecf5cb1410ac53a4e1c9291a7a68573bf009d100c0e9c8f47aee99d623d363fdd02a8bacf9a90466aacc8c1f1a1c0857363956a699612a2ebcc4ed2735815b3c2e53bdb5514bac572d359341d5f109f7c2060bde1018580acaa3486c6cf6bc02ac173c0fb7a8139f000d427eeecde8e11ca4cb9ce90051334416201c2376278335a30dea3f62d9872b53e240ee56f65b540538cb238257a67f340a1761b422f9de932d8a5c780bb4da9d6608e0d58eebf102aead3b056c86f7cd472980b151f5a6151bba8f0720d0cf50fd3a586305b0f97a18d0a545dee4398d05abe00e0155dd4ec78b0ec0d9056ce08b326d2291ac4b8068d1b179b422766706b42ddd767323b91108d8abf455ef7ecfa1b7fc32fd11b68f5ceb3e6462bf718e9261a35669afa8a11350ac0d5a6cc4894dd74f3ead692313608d64d04f67b422591bb8afc4fae380f3c958a098923f722265a1cf3638604ba7845155603b94e50e1d8dfafdd7cab26bc29b2b991ca8813e9fae0662cba48ddc2025420434cafea10b3c3ebdc5df75790b43eb164e8269dd2eb75c8f269b1b9a37541ea197eb6aa560b24377c6ca24e0ab49686e1cd4a41f4d9bf3cf9080ef91b91bceed534ed9937c9e9a58a4ebe9f6f4d622c2de3d88c86b87273cc3585f1c59983f95834642fc2a83d606fda895f60de1d64c4d97c9304cf80a0957f7bbf88c4bcebb7fcbe6281421158d6fa15c492390ccfc064f5242b2aaa4fccb4eb44fc175affc0a86e4b74eb543a8d034d037b8129a3587d3e229ce514b634aea6eef4414fcbab7a6d9a8ab969e0e43f7c67a0a13110eef349c60312b58d1af649b1aab73bba06ba0ccd6871ea2789b226058f25e5079b8978d56133920f2554b8d45322516a0e8bc90a115df7ba67c0f037779c09cd08326bdde7b42ed5659d4c7d5a4c099068f0f1dc73b3f5dc91d166c382c29a09a780d5c429d60eb1d747107107ff896899b1c106ed708522c9ff4bcc5cdf1de9eab06df576cee119900e468a89e5aca3c2a1d3093ad290ecdc29ddf884f80f42843a5145666c85a288dd43956b6b537b70efa3b6ff6c0448e2e3342448feb2e1e808d540d00f42cfba78b7bb95f68e78367c8436ce2606f9af4cace89d18d2ad0f1d269c9502045806dbe9821f382ad8cde9905f8d94206af8362767b7d90e7687e85d878d1ced77aae2ee1aaa8d95642c46db8a857e8cca64da33940aa8e7785f2c9bbc00a84859c64aaa9253622ea30a01d618afed73b792aff7ccd2f3a08942ee00457c8e95f43f4a3f5275d05d3a0d0edf587296885f945488be8e77ff9da4a2c382f5cdd50cf73c6ab32760e9481e2728bed78e742e401aa9c147275c1c2167f93d492d97a999d1f7b0a9c0648f4d78b9c2394ba30a3baa9cc953ba0dbbc23ffa43c8a129f9df146a5998e76b52c3a6ec3581c144c4590b75de7b8c2b97929c63dfe083bd37ac22aa98cb4f404446d3671af2328113ca07db4533c4878e35332bb0b3849acc95112c5bf331a91c0ce6f83d69231dbc7905dc5335414758c14d8fb67cee52eec6977d9f156efdbd0c3d15035d6010ec71d910358e5f229a58e1e7b688007caf417efb3c54e477f813aee679379ff7f5d4ad6661be933f4fa827f16035d90cb627b88a67e91c0f10b6250f49af6a3384c155b9fad30d1281ec861a0c96cfab9c8571e3b704cc0664646babd2211a8172981aba49d6aee1e17a4ed98065b06a68a32803adda8d3b07dd7785efb673f6d27846fe8a78e64ca1340c40bc95fe8e60a7ee8184c482a894be0e235c03ab6e390b1415308dfc0b224573dd67286271fa5ba8eca59004c9bc9c6d87a5dc5f1b200082992dbaa620f050f0cc815e41869ea2110a9d115e89ad81c83a434d38109bb3f4fc966a63c7f78c5cb702d1975f8558cb7a2e4e52c6b8d98345fe1ff9b29452df608c303105895ec883d1cf56325f4dd590752a0a5bf0aa88279d30961eb8e1d4e123c38f11f10d9d703c1a55ee0e2a631378348eb8c291043544c41d6ff600d0be7a66aeba1352313d15e5e7db02584d779445bfe2e1cbb28f9eb8fd74e02a8019dac6b90d901d59c92b713e0d70c341783c02e341100c2ab1255e893ae4217c5fc1d670cf7059899eab360f40c6bc351508c1650326d9f933f8093ebcdf3637515a1c2e7509a3bd3898d40e8fb8857b439f305576af9292fd77c3e2bae41a8aa90afe5141290c842fc536cb7a13a41042b300c5d7e8c3ef506307cfb3317183da800923856c7809a353252f35e048e33a854496d22173224c1d2bcd5935e1e6c847d541226dd2466ac8ce0b9814ebc101006ad445c97000381f9268c7a495676d9647e15ebc7fbac5a716ed49847a540f8e9f26454c6e2c864b2231e095e1c24d8896b3bd5447546e92af202931e935ef62c426d582d88344b9030ca0f3a47449b520f95fe82906fe1d9f5e7e7036930dc1c6a3d5977b915717b213e0b0b1c861c1897abe91ec87d4b00079ca0120ba6ab59fb00214f5d9143fcfcf81e7c9e8fc37b78532411d872c211ba06b3c0821b6f94bc12ca9880e16851d4e5c6cb3d5f5129d8cdbab5dcfd618adb515530eee16402775d0f376097a82b440a44647fd2f8766fb317a7bb9e1651a2c2e2f41a300482efa5720bc4d61816d408f2450936c11cc2323a0510e84713cf008a2f427feda6058904b6834081c9402268b5c63ebce99689abf6463231f66ee768babd1fcaf1ad92cbc1a680ea74f35a0f170c05dea11c0deb3e4ede873e645b1c27b8dee3d4c10ac8c936786f025bd324d9384be508f4ec0349f3129ecd4cda8201187824dd4178b55c62aa5c155296c10c2d06330327fdbe7acf4a8b29530dede4144cbb4874689f030548c27d7ca1f45ef5d7a93c433ecc331b7ab603feea703c48fda274b869fb4f7f3741d03b8d8e9bb6bcff8ebf2eaf4210087d29febf35e09d7a541b63e541c6f0bd0749bc2f451023bab4656faf532116cd86872b3da5bb62eef82a6cf21aba010430be15845cb24f8c9476c6ea8ca3f88d222792e1b69cc781bbeb59345f93b6c51d194226e3736efbf1c418e0e73e0989e72a2b407f82be4cf87119d729bd8950a833f689a7b00a2f4eeac381928f0e1249c0c4fb6f82e36d58cda1dc569c212a9c8a73327e74d68e44e50c0d8f6cb433ceddfc4fe4ae73bb71df3da1c3a6ee912eca8a8748515fb5dcec5342292ad34fa32284cbe7d67113f82421d6d26e6b09bb907c632a46304da7cdc36e9fe21c47fddfb472976c6843f7f419f74880b67bd775e3e67ac69a1b1a2a8311e3243de2e200e5014502676e586c9c634af1930e4f07aa311e2b8b36f09e2646f27ebea9ac11700d3818216ff4b559664b5d952d184b5d8b24d86c94cf4c688d6000274a2ce1225e5f61e069f1b47f37f5a32edc419677c6eec2c109df5684c22b990c49a19b920af3ff2a12d4b649536fea84d1153630fdfc6b74da2737078c9192230cf9af2c3db9ed23c272a6dab64adad7fae48d3205c7b32379c1bcd5ba8f4e95d457c48ec4606e9ee75a7c95051fa47babf3715da3f351e480216a01cdbc65f75a09dfb8f4d0515ab3125cf709dfda0768855f44cf98a1ec7d88dcd4e60cb616d10e12c03475c0829b127adc0c8afaf9a24614eec053c0a4c5047b0899eda689badc40255308855c510d2045d65ed705247e6f1e1bce0be9aad93acc63204aaacc44351f8217dda80d3c647108ec174d97b6179ec8ec773a389c0a23fa9a465bbcdd936fe4dbe89886f27903c87fb86cbad62ef3870c74114c20981208868841511af086a831ba3e2e9b6919348e604c265e9896412d3d13b11dd53d47dc6aa1deb3838ccf0ddfb1302c662619641418c44545c06e67e61f1d84fcdaa95ac660975469fed7c48b2f671f41587672411c995821ec701ab176a66cc8191489910d2d199908bb6cc1694e78d80e13c9685aeac9279cdc4ef6a7b874b1f4981eb8b102c601f62c5361d9e1f545009689e74ed24604e74f9db0bb8e0740f2b877be7d5fce426086c1b6e44fc20e94e7159a596f6d8e4100c94460857664bd665cac6f2d846b0913a71cd81261ace6b7a9e2b30d1a51bee8217c3c19ba6af9ab9192d386cffba10476e6c5eebd413fb4f110fb1c2e512ba554d089c3f01428c0ae6321e4a994661a92b7237fa77651a01a8cc91e8f47d017c23339102386f08c115b2910ca0a10c3e10b2d00223c02b0d54d34ac8d8d000a1114d2200b0dbbc1231e8c1e003001361015b6a93aea7f95869d1c047342bb2bb107c803e103273c8eb32052d9801a4b77fef16e17518783c7288964e9dc406d287ccdc16ea9d5c737dd228908c65d2dcafa4505a8348d0c71c205a4fcbfbe2852ac8f616b307c59348faf3e7b358b02981ad0553ae0cb501d705913ce66044f1e0b6f36285d7c6329ca1e942b77e8520dc6488c45d3af8b9cffd36ce1b7024385478dd6123389f06579d59d1d88534f6913b4027c5cbc2a3cd8e894dede0064bcbd812e85d4874e85eb293dd1addc7fbfb17eb731fdbbc17f33b3a27e427ac3b5be71de36360aba036efbe9df0991c97db1b9ca2e4cdf06b3ede5d36bedaa5ccc22003ad1942dc8f46fe1003d08fd2f46db5e584f2d541ae0d58796fe64ea2d8f5cb8bfeed1166081a0afff683bb5527deb6efd59e2767ee4ab017b884a5132e4cad2acb4bda1312e02060ea6827ac5004ac789b69861cc3230767363d226a8301f488671ee5e2750231c2e81e1c0f2a283aecba86f844f8b05726bf8183bda4c94a746878bd3332e589e080cf9f41d6a41441a3f1b1211a3719da300da032ca384e9bf8e6afb370a89346a99b0aee05b3f0a735928c91585005c66169527e16206b149a338a85c592d72f018dbea733f439246b418dc0192dcd665616ef639321dcee7f25a055bbb4a881fc6caf7499540f7f74c3bfb8e6f485928fc3bf224bdb3b592b2352d49198d4487ed7ee3be295bcd57d1d489e29b58681875ec6f6056f3ae9a3c64ff89fc2068ddbcd837bdd1fbba544cf28b9e191db10a5b3787a08bc67fa7b358a1589c066894b123d387557e5570b9c9210a2812508b003401acc22b5f21f6ad08badc2a72b6731f1bb7ca2d2d5b40cc7578bc779f99f38035a3c50da8c45ac2fb33add9d79ac7549bd2982e36e5f3652056b2843c8cac9506ec7f2f54f4b39933cd405380062ce9f2b9dc4b65c2e281e997277c665c6c9f1a745cdf790bcbe075a32115fc0d69faab0285336e05e579ce4461ed1b01b427fdea24d856643154ec84bb0f3d27bf02e41ac55ae867dbed28931e296bf39a01037698764462eb1d6db130d7eec2765a8aaf64535bb7ac7e151c215435b110629f7c18bb7ceb8a62f13807edf976dbb8279b06d0f9e5853f6b06c2c058c1b5e5880d4a3daa2c676931e1afabaa32e0782f715a12583a4a110bbc40fe07d886302fae7c53b9fe7c5027cf55683fb7763359fa78bd1ec145f52b2bd6f899c5901613dbbeff1cae2c82ea7d7774c8c5932e596b2b863b583c2704ba262d96bd5884b600e2daadae297ec61ba9bc8700775255f14a0057d7424664fd2c6e941de3bc6cad64b3f5a9354af0308551241991f19da9844d458827c476585983d9f761dfd7c4c4b085f2fdbd13b8f6f7867127e061185e85bdaa919d4ed8e16de91602773895cbd6884565fa8d4b193b89d90cdb03f5a0daca257f494687c89097e99d90f178b5a40251e2634d8168fc24321b205cd90b8e1310c34de7c6cf25535c3900387d9f3554c9d38e19e4ce36cac2c372138333506dce124ff0a859c0339911e7dccdc3d46cbad05ebb0e896beda6d76523af06b06767612e5f50e7f12dfd6c73c7ca0f63f70799732273bc827583b04e2cb78ab514f6118743562741d28e8ba33eb06e18e52670a5cba56e9a108c6191e55edf4b9ae01d08c9ad67b0ac9214823eaff76bce247513b9dbbfa4b0ebeb21e2dd7a0b1a41750c26aa059d18a6d8dc8c056aa664454b2e5ddf6a5b53f007135f138f213d88dfd32270b41ec780e9b514fe7bc5bc129b6728ad2a245c122d625586035141e5635e5f2687de1af48a2092baea3030c7191bdfa157c33ea2a201d93fa5c5f52f2e9c37fa53eef3b5150422a9fb3ac67c32f9572974c22f03a09fff219b199340b8e9b01bf6fcdac37294dc083d6407cd42c9cc4e1319e2cdfb508d556c0168ea30e3b396e15fc2da0103283cf568001e29c16409e64a40b803508f6774aae54ba2fa7e670b61e0298a4fa6e97e2ae11fd69f54e93f64ea992c1fa4847e420ddcdfb61b6832601441264e8562e5083c268697ac814d192b96e87bee00f5c7e1c9d1106ca06ea83dc4fd08089681c999fb3db7eb27f003cc6716af8ef59ab3307b9ad7227db2e4bb958976fee1e3974f5819d5240defdfcaf26d0176e740c391b7ada88758dbee7e9f3f65ea2fc5cb08c8c2552cacd77a3425c53dce89db453c9880f35dc42aa03fac2c7a9b49158c38d9e69daf0a86025cb1411af2075ee54873d768f0db0af8ae69d1d477b6caf0e89c0d99dc16758a60a18d68142289327e9708c9d1476d50c1b95b494053e8d70b18b42266d8937d28c215973851e5509458800bd68e5e92c7b22e8ffa4db9bf3b5c56b3f0dfbec5b4b8840febf3e9cfaddb7cc7d6a3c88cd8dbf731ee1945130d53cc1d5492871605e943eb4041ca23511b90da90adc7daf615f73dff28c8bcd795dedbba987a9940ff531fcde20340e72e39659af64c4392804459eb9958f493e517fdc29038133242c2fd927839bb43d9d6fde01ab4c5025afeed665e40125a4d0765b85a6dde6b59f340d4ffe8397c13be8dc9209091c4df9e7aae151b8c95579145e5baf52b051df6269cb9fd98217f63c0dcc8be42874d0cbdbdb9da27999d65a3143abd5b61a35cba5599c2b3c8a41bd97befbdb74c3225199e067b0628061bd79c931a0041c31526527eb84102aa585242080446449886d8c066a3d437ee65041657ecb0039394a61d3420055183293f50c28410a52136bc6c9d46d98e3082e0e0aa2b998200b9f34aa62034b8d3f7b5abe66b8a0df1d239276da96aabc40a2be6fce137339416515974f739e7a462a45df1e2c24435f6d9b35b0335a082061bd779df46656a31aef560494670893ee30051ed40f9f294564a54c6154de929cd578f92f4a478529c704249c9ad705cad2cd6bf8deff6bc40a1d4e417f09e20683dbad58aa3b3c13072a3b6d2d3b7cee3342a592cb193943baad199517b112b238ed9a867058e8e8e5838c001d5b623ed08c6810dd8707474348558aa0d3f6c5b67fbf2e5ba90165131b281e349031cd8f003dbb081a3a3232a27909cc647efee1288b6e140a3d2295131ba626b918ad112aab2a852e0f751013def37eeb7cefbbc20163faa47aa9413ea88164961640651344121031bb8e009299452ea04d534aa6d9b468b0c41e99c4f94cef9c444e9511351985822065060f00225965c40a505731ab1208915a8e009a5733e513ae7d39c93d2399f5a2cf1e2f23429c74e3c85a940c2490a64f3c58d50a384db1e45d7c2a4659a6d99a5649266ce1897bd6ece1632ade7084670894bb3a3a142aa49dc154a5448b7b9279f754f3e6bb1d41bf09a582c72255f5ece8c2b612c2591a2385dcddde869b1bda5f9f2f196de83c283422ed198286f609698c24c9ff9aaf26514af29047ec30de20cdecc37f7be8e1e914c649ff4648d285e21a3b67b9a1aa5ee56e7061c6f0645f5e73be9a4734e15fc357b8363cdf144a9708363d7a78373d610c29d2fbf722e6b2ec07aa97181e1220775d43101884a93cc97f643dcd175fb479614a605a11336e7a44db4a9034db7bfcebafb07778bb6d1f79944933c269f8c7e144c3e591058aaab408eb6b82cd2040aa46e212da2442d396edbbc22b448df682f4a4465da6b465c111110368172c0031a90f1e09331a36ae63399b369f2a53a027a3c78566a1123a41a70b8265022aed1aa23f3458b8a54476ed322d512d592be1955265099a07be2f1408b3c2b9d52112d4291a8112562132808280eb4065aa49a790f9f8c195bc46e53f6243287b5f721eec8a8d4922731ba7d43bf2ba25bc235e64b2557a69658d3b42e89ae5bc226744c648d3e42d2f48f5d1135b488cd1f4a4aae2473626c4a32c77f3eb9b2b2f44ec2d50499dd507c32664c2d2dc99ccd8550a253ea66ddb354933175c411a82bba9b6d16f5d429754d5a4c35b99d6a9252ea57d7a45dfdddac9ba596a650a4c94c98dc4a59ab1629d16d4a448bfab572aa14a957f0c998d16b140ada33871405cd9d52a634e55355a7f67249df38eae5f7f24b50e27a2fbf2e8a1292d8b35dd3d77529296962dc2ea86e1c8426d1252dce6813aa84b251e34e4b931825895e92d7d403b1d7113d49d8c0d0d06b8729c319e77f19f16252f9e56b56f95150f95f455450463221975e2e9d499a17273005f33ac16b89f82286ce5e5cc972e58b8ea3b317dd8f62c7719ca5334b5d972ab5e892d4d222c6068686ba274963821711f2b7b01ae1a62bc84bc98b242df035048c57094820037c09f1e02b881158f005040cf84a8a91018d2021794392e6f503bdc01d5f48afa97b9232c7035f221041e7e40b49e57ff950f94350f97ba0015f3c54126a744e4d4d0e8735f7e31712867c6ddfef35cdd766e9ac5d1d73bda6db332a258034d6a205542a0bd1182c570841a5312b2a4b9ac9b1207a25d31002a882bd9993e6e69c52325fe92fd6e877b25dbd7ed431e6ce1871a669a0b2312f7dfe29cef9324156a3f363450a27e530048c311df1704739633a92dd5126f1e28e724946992dc1cb1fd2e520170527ccdd3646b617e76bb32cd68b48bd236bd6ccbc32501f06cbc30911f8707bf4fd274d282543dd0044c173776bdbb6a146e0c41deb114d5cef47ed2b99726082a3cd9443125d59cf5732e59074bf2b99721872c12b997298356929f98254c7ab0af14ab99ad5e79c2e4654fea6d45773ce39e7e4b822df4c0ffe0a72bbbb5b0a7fc9018dcd992731e6e1abc17d43c2950f56aea286355f35355d45e51f6ba6659953dfd4d8342657b8a76e9a61419534fdb5b60e287511e3ac98cfcccccc4c8fa06ddd85a0cc7fe50b10b84e92393107c281b8d293d8fa8cca9c4b7d139339fef33d49e6c478f514edea9722658a29a64cb9b3ca15bb42086a2fdd6e9a71e24954e6537c2e62784ed2c8ee6e16990d1941cdbcf4e104c1990025029a2c18981de8c139c2914093e5c764273e59001c240e52aa50439de9170edbcc50fd6facae5bf0250c158480c133dd6213a2f4d9ce9e1a83aecdbc36d3c9073d72b751cf610feda6f8db880c5468a486465cec2ab4ad19f3abcf11f32b98f7d1e2633e074ccbc3bc84bd84adb63956eff2f23e64fccacae478f1e1f22fa9943502f3a1cb4b98b52fe37384ef627db87cf832ac0f243f2e1fbe0f196f5fc25c84adfe192f611fb6dab658f897f91c2e7e86f5d1f22e5ec6fa781f2dfe5fc26a684466150e3d0ce6250c436e0af9a9e8ba2adc6e8c3f4cd84841242599af4eead9f5ffbaf1d20ba340cb3e583e32bfc875192d9f4bc8e15025cc83b5f896b0d52f4e977f104c46d86a0bc3cfea5dfe0012f6d3e5ef628158d63f08d682847b09e3842ca06ac1bf63be5cfefd5f98af9777e1487a4a17856dd45ed8b316fd5b426e0af925ecd874f98b10769176f9c308bb053b5d7f97d0c5d0f56fb50fd73f84241678e185ed143a89ebef4fa4e8efdb65171d4aceb6d26d39aa9addb13a2dfae3c8da2528d52d433e19d33d0a3bf4e57312972ab5b869404a9022d6c980240dfdaf4513756ca10622d437432da341da1d1f10c4325a2b8bf53f5906247352f704a2dab75578ceb66e307ff7a37e6772208a3edb17240d65590ffd9df9e218476bc4e72e5b91342d47f5fbae855aa454fbce329116725137c7286bda6bcfb2162da51ad5a8b63d17b5489fd3b86799c642b681b428afd440bb864bbb0636a19f3e69a14b9f65457da33da51ad5344dd3e853aa51aad9b122a170e03c3d3beceeeeeeeed4ddbdd97dd6dddc8383c5722272c862863bcad9d3a6e48914262553342911f1e3b9bb9999b9998a5152c100777fa6245248a14407a51e1ceeeeeeeeeeeeee3eddd9db0479dd35aa835136791a822589142537a480797a9899999999ebe191b31d9e9e9d1e9d9a1d3c66ccc5e08407527a70f030333333337be33839e1e070eac1f17172dac144c40e4db41ff507fff70c0ef3ebb438dd6b9819871f27a645fa93e358f28e0e0e8ece0e33ce0edb8838320a0ff3933ae2dc283a333c51a2e8e81bc6495dc9444410384d5a0afa49e3e6e971c7d17eeceeeeeea6b49bd2ee766eeef666c94404936d894fd6547ecdf979c21e4a71989935d69859db98b78d9d99ba37b9b080a51d3cfa66a4cfd472f8caa1f60e0f8730cccb43f2075df6f006096a7f015e3025cf6ff23bdad8d83c711898711c9e1efb7b421ccc3afdfdfd3c3538faa6bbbb71f434e9e7e9c131bb9b07477b2fa09fd417fa66944d7a4800a86fa2581e3b5af42275f47e52c7992ba7983ef9799a34914c4ab0b86ec7aac41d65138d072ada4c1efd795aec61c699dd3dc3711c7743c6759ff2b2d5b143f509cf68d3d337feb3b2ec68129b5e77a46bfe7cb99229c994ebb64907dd5de9048b2a2e4b444848524d4c46316051a5f3a108eb06f1ece8e8dc9e62810e004162a90a20623e482758fca07ba2b22342321c3880c50fb81bb8e009103f90d14005306ec1151d9e6e7014f3c10c7306a8251adb614acc08d10c26123270483ae890ba21080f64a0066842091045407003131ff85e40a83202aa0619039fe49e4e555a8c2575f414f806b9e4524bdf27e70457b2550e0d5554806525937dbafb74b73934ac727ee4d09023438e0c39432eeaab072f20bc80f002c20c9833e475018ebc7af0714fd728b78373ba530ddc34ce396e36731474ba819ac681dbc6759f7fdf6cfe36aeeb3cef4381294fa56673cafb4010854aa9c0aa62711696d9cc920251a90aaa54b5b2b46899bd7a7169e982b2c11cca962ffcc58bd9fc82056523ecd006df98ee2b948d15eac60ce54fd40ad3c50bea4677a77d4065398b359b595caaa542b7b5952f1cff0e0e559caa44b942f5c4b40394b9c474430c282426a222104cb17205ead223881ce176d2b2a5949239053830a70087d56a2573240fb4cd354df36e03fce7a7852dba852dea3522e7bfd31bf75ab869bfd3f34e6d6a3ed39b3ac1b194524a9ed1201ea49b977c5ce99ccd4cb8243a21dc7d76b7d7832225200ac156448847f3ada008089028a20154ac48058488e8000a272f46048a8f06222fe07a20720491a416319f1422465310917151109141892157c840c5864505993ea7fab9008ca1764e8468696d4c0c2952650852d3901aea7cedc49a6908101737a6899d1e30694805c0133009c981101aa0569c0f156ca25b414525d1cda0d62b99842ce162a82eae6412a2c3668590a2af891019be272a78251352163530215971c7caad8009298a5a2b13d2122b56ad2c26a426950909883b5626a4a2cf08928caba2aeaec8a81499010a09a620497c33a620437441600ad203539020376c9aa6b93b112323a3228c8a983fd4142901d39007374f2a28f53e54b6e5dfe5f03e657da06ccb6d8bb32c74fffd8ff72d8eaa9c2e9681f43ffa5ec84bd3456594a83274a8232f5dc914c40f97f69d4f3f0b25465618118252a155ef6aa936392d45999e1a7d5ccd8a92863edb18fb2d52182cb22bbcd4a09191d12761215af410e6883a72521221a6ecf6e8f6143c06d75129502349e36f4294daa1cce2c2e89b9651d24c2929c9ce7c49fb5c65c1c077645d9f932d6ba852bbaaac1fe0a5286049f204092e0624b41436fea6f4ad8b547b9b167dc6dddd3777a7dabbbbb6693a1a75b77177f7f7ead45520358d65871145f477e6ac9112e7b67c9c9816ed9453ce70473e8e8ea4535a6b63c5161f47ca97524ad93d73fb75f4c4b98da3d52015041151b45062a30ff6cdb675a8f1735cb7dc24c7b2c388ab3df3e5b4dfb6cdc600da37607b9b16e94c8bf475fa66e3b66de374421c17aef636383a94378e411b9dcdd6b4388a37120a0ea5949b2f1b1b1bcd521bd944a7cc401776d805ccf8a97bf085083c7c4845fa86a5c586fffe220419cf4ede770251a58c4221f52710556d7b988f791762429e85349aa82dec14e22b6ce58810bda493b4e82548d1425c21242f3fc3c36abccbf0206f58d6e21199e3828b54cf49d345e37d064c8d1f7be80852519107a4e8cf515eb62d0675944df579966252533db4fb1202e06784247c4c38c2c38434ef22ec97d048ccbb4295ccb3422332b6b5bdcc07c16a84b6957a980f820d3d2cc6b2e07a98ff713d0c50ccbb3e657fc48779180b04f3e207c16884335ee67f66bc8ccccf9851fd667f68fc0c1a9b11f16704c16400f032ff038097f97e19127e86059af1243c90cc03e0836030331f048b19e161fe678487f97e180b84a4ed0fcdcf582098a779a0981fe18360acd0c8ccbb5c5fc3f5430f13f90a8d909f4808794613f2d20c0046986dd7158a61c73c20433af2daee4b128db67d44e56219c8caf2d0acc5b7cbcc80f9989f2113f3303f727746d8da5e94095b9b85e147e667fc0c0bc492a991790983f951946979098bf991d502c28452848709ed4b54fd9ddea4a4b161f86195ae96a194d655fea8909f5af4af61c7c26ea542395d6068a4f55fc7b3e9f217430f6b595ef28187ed7217868485104ad88bcdf691998b20976e41c1379fe33a8f3defa74b3e37c702c7d1f7b1bde67de7824ff8b359399dda1fcf76d6c7f6ddb77772a9a93ff0fb365bb9ee7da07e7bd9bdf63fdd6b72b3fff3e5637befe5a3c29de9ea2efc6ac4ed3dfb353e90f0fbe07ebe7c70affd0ff79a65fbd3fd666b28656bbf3dc77d6781aa9cae20d8c65924fc12a63137b920ef2d8b4fc68c5376bd0777fd790732c77bffafb90a57e12aeedb9c9372951638d456cb2a433cc1022a7c90811c3cc1fc53610f85349aa8630f5db957fa6668be6cca02a16c50aa7e100c8542819f7aa0fa288fc3944c3d8a433dca02a1be7eecfd3f68816a50771d7f1f7fff9d523d8b6aac3ff551b59bed4feaab054a59d4a34217a6cb9f25f4513dead9fe805f2d104b8b85540a74d9244e57f7aaffda59b87e4ffd0fea5328db2ce1ce744d07ffa73e88fa5a5f6581525fedd7079fa2f881ea8396ed0fea53160894954bbdb7bcff1ab63c0bc34f7d90055aa05ac5fad55a80830043e2d5dbcc4d57f7dda3aacfbc87c0492ae1880b291c5f5c6f64b948f8bdefe4ab87a6cbdf7bef3fcfe3be9f7beeb725402a5fee474ec2495af4e7f8594255d87d0d51e1f7a89730ef437d8efa289b7a1fe057cbdd0ef5a9af0bdbfbd4cf57cbb32d16eaa73e47fd6ae56c95e594fd8e4d97e314d51eaa1cab3e6bfc3bd4a8145297ab481aff1388aa5c0fbdeba81566107aa8ab19e27ae75df76323759de55aecc206b46ddd78cfb654b0f169b7e3be0b674baebf749234fe1dd2db3399b35d8ec5dcdd65b79f248d3f90045a9455a68ceb1750345d671cedf297cd311e6acb42dad3ee01c4e069d1b7d8ac6f7abb2e2d9fc27f2f2da18489102394301c92c67d62fc4e9f40545b5a7c089fa3e5617c8b0fe15f4224deb76da9d0cfcf7644e2d4f67a8f43e6a4aebf4fdf20a9cf56b8899d5c42a117cffa5528e4e25f5e845068f52effb9059074ff12cef03011de255c85462d7a4369d15b8aed28ff7d0952d4919ba0082149bddbf7ef27f2865549f3c5498c3a26e3a6f90adf9f9fe6cbc50bcd7ae872109dc4adcf5652bf23674cb038806f141ecb0d3ad41f4b3e19c362715c4db8d32e4a5fa543ed1f6d20d02a74ecf6f4b7b1c1e9eee940734a4f39c0c6a6c59f2e6a845523a48e36779480cea529994f0b3ba05cda494a12ca15522ea5465021badedddd37b64b63dd9a12f6af08b8ca91d3dd6da85377773bd2efe6b7c1d1996da3d335dddd3dbb7b360a34c0200e91af30fbc5397ba7c59e3dcc38f37bcedf69b1bb67cf9e3d3d7f87a7874e9f3db3bb77f09873ce3967770f8e397fce39677f77cfee9e0d4525c51936375b1cfc428b93bf478bf347d2cc7f89a10777b74f8bf3a767ce1736a8dc8fa0385b949335c51d7d5aec9902f442dfc8abc5845cebe941e50184355946d4eea53747ee1be4c13d4bfb420f8eab3db8a7f068717e8f4e8953eae95efed7853d5e98c2e3851eb2e3d183b3539c32536333859919c6152500823df3c543bae6739c1deb2613e2ab3967cf1e729990b7fabdb62f4cd7fccefe74cd47d92e6c69ff69b6c502eab9cff17df7a8e7fe93b6a50169ef699f0542a2d99fef3d0be4fdf740e0a8e3f617ba706bae6c7156b6adfe6ff56b32a423322d6663bb439266f2ddee7c1d77ce96a34aedaa696f4f7035556ecc3f52cd86a39b95524a29a594524a29a594524a29254b29594a2959325f498216aaed35925a1c3ecc32dce9eeefef91b5db0787520f0e9f1e1f1e8ba3d483c3e7a75bb66cd9f2bb95a68e0f0e9d9f1d75be7a94da8ef54aa5ed021d0ec71f8bc5712f23ec74b66de3c2fa327ea767f79c7c79dfd9513e676bbd52751b207fb3d2d615e857dec9527a4b0518fcf2eb5cb63de8751b844354f9e5d32b7ca7dddf39568b72cef9353bd4299f8e9dd3b01be07225eac763314ecd24eaca98698376239d95d3c51244a5ddc38ca385167440f9d96981c562b15ad001e547470b3f2df8f0f488f5cd1c6220401280b2aa026572ac852a3a38e642952a3da0b058505850e6af686b59b46cf4e56f5f71212869e6b300a1c26871be5b164e07561098ed2d42eae310f5341d913f83e3b3499301330b12d16667c380c671b5b258724a39fe952237bfe5c7f469413a275de058fe70353535359c4be77c4a6e013a5a9cd3c92758335fb2a6a6a6258a2903b738a9fc9aa8592e062d07939f749494947c4ed162538b548a9caef19c4aac24739ec8173fd17552d2ff3456a2db73d3b21429b795e3bbca114e2cc5609b6df90021f9e95cad9fcfb94105476631d86681908c468618b67d8e184620c16238416806a3400c2390609bf5c1dabeb35c0c2390605c0f9e15a78b9e203483214d17174ad8c7a07c18f84acdf6f0ece8f053b736a4932e658af431cb57d84a8bf4618e9057fa667bdadc9da22f697252567ede9739cefdc702832aad8c9cc4b331b6325df4775a46898a148543b27229952f5862ca158f4283a9fad390a28ed2ca07037baa9d6bfb2d4355b33058bf4a72c14e8bfe2e3da8a35cda993e2ebcc0f747c70e9057926669c9a779765af49e95a4f17fd9e1e969a69747ccad2d729fff0082d4cb3eab106aa823f75cd04dc9db7612b508d6bea9bdd5f7e7e9b19139f46e9429b529a09e7ed0bd419759ea777d2d1c5db8e0abc29405512880964b414a9acfae6e8b11d57bee35779f169d72f6a7451d947a73fbb4e83adcdddddf7d7e7478a7c3e56c6789a70787f3cdb7e0363e4edd95b8d4497047b914432d7d3266f41e4e3f6513c8d09c40763a00976332c7e9eb76129fa8f3bfad9ddaa99d349625aa8fd1c8c925106c2799d3b3299b451309059ff5ac671bd7c5bc710e812c16d20c2790769aaf6ed2fe1f3bcda7ebfa9ecf62559e1ce716855a01499d43f385fa39d4a45f28db4e137c7d16ca752b5b0ad84de8d42ac7cd23d77f736d9c433a48d4fe769aaf59edc86aa769e790acf28f73e8faa738863ae2224292140a059734f3bf8e5d769ee267cbb1fee149aa17cc2497c964948fbca474ceb015832bb3b89c820740b6dd9165b2185c16f9e2a46bbeff0e5995397cdd753dbc2faefbd3b841a52dceed11b05904c8c9734e4953d45690ab9e5484b3c82e7dbad42eea49967d6891fe9116e9114ef281ba0bdd1ece328beb4b9286be09516a774716658e8b34d4f93498aaf6048855b612a5a96fe6d7a74ea9d3bff4515fdfbdc5bd8eefbbd701be57c396a3c2967f2c30a8f2aa1ef5dbf3111f21d5a35a2c745f3f47f7d5fb9a4da8b48c598a7a92a9210000001400d315000020100c878322a1682c49e334917d140011779c4c604e18ca834992c3400a4206196488210410000c1822433433dc08806c02fe168e21716ff841f6016b418bff3b47f965a878028f67a48a52f1df2a5998c1bab7863c0ae4819cfc996a39ee15d3a529ef18b29f8a0003b9c01eeeef0ed8b835e545f43f59ffd108debbc583fcea0acc9df8f917642457dde4bbba1a8e99f6239c59d5154933ab5c32cc5f005d99e4fb9b1f502614f73e86cebfde0c76e6c2c02c30d674a5d42edde1ce3d91fbc2c7b787b8154d91d30462dcf87df535cdcc71a57dac965235e1784342df21bc29fc250501829f304307b63612eb30bdcb4ee4b6443c949f1d962ebd58e85d3ff5cab6031a56296cf2c5dc015c8ead33080af326fc05d700a2f08e01c3a7c23a33cdd98d7359e6d078c14b5669ae2d25a95d95b0abdf7a985ddaaaa20746ba88d8ebeda1eae98c44c3a1cfa93492b798eaf960ce7aaf4974eb3c44417f4ca9df1c8d2a7d4ed37a77a5e80aff8195d535965b40e2bf64a93b0bae9a8847bd1cb1e992df83003ce2b1d3b0d231e5d66d4c25625c27d0c7155759c5e2c61b14d7fde2d36ceda370d609b26a8ec9872c1489c748d33235decfe94275ff5c45d42f1fd88e43752b12d8b4036558c2086b1f22e4972fcc51a5916cc50d4487ba8e96ffac094290bb00175aa190d7b7f124b6348447095dd1e1d9943a21705e8e5d60f17ec67681f8594fc8e1e95d5ec3cae1e02b081a2f21c7f936c861488104b010cb41d905f08b57bacddd79d419381c6df41cada05906c433d3ed6b8218b21c1ebd073b8d731c491bf4b65cd23f1a461af49ecaf071d093791a7a88114a98aec8c2bc5992ccb9ca3b4602fe595fd0cbe4a9bf6e964edca8d54c21f4a4a6fade1df4ba6311de58030d11c0f1a9ff0565e0c299bbe8e699d25acd1bd9c4dbc6dad37978b986855c2cc185bd6427fd79b5d6f6b17e5a9d2433d2167ba8f221089f0cdb89131bb521a07dd109f1b7b64b216449a2f6c89238f5e6edc60cd71a111b6363b05083ee2f51f7d52419510596028dfbcc4e878bb438498721cd0171681f22278af8e5872aa5d647cc0b26f0e0096db925f847dd4a69e71b928dd0a05025d3999c1391607182d702c88b8e0fb660cd9df8079325fe6cb6a1faa1c1654424d61da66aee3bb73d1516814e0b7b22ce85c5554970a02dbd6c5869016988187e277b03176e180d11e898bed4524be71d6ecf448aae35356ea13c9986d679ea43d9a0b2106cbacf963fee8d961f6d1aeae7aa463740f83afc140d218fd8883a174910835ec65cedd002e30c5653dd7760e6e976747b439731e99be13c77b6d71b556cbc77814630f58cb6eb6d2b5b7ea936597419f60c758297a981183c0495dd8d9b748265095346c76585cdd85186753cbd760c14cc0c2b4ca40cae74cbaf4de8e20145b363a9a59ae9a836150d0b0310b0ef89c42142134e0cc319e256a34ca1814859eb359ff819a3d5e19087f115bd4e67bc3c87d1602d12f72530d7a0e60cce66643b5feb96d58158d1e0016a9d19365f7075007acde1ea5167c912d1c686b7995459e89989f3161be542257b05817d53058ca885f4b603582376cc6dec765cf80981288c19390535f2677a17f86dcfd16ebc0e755c4f6215cd57ea5b28e8f8adc5fd65eab991b8c0ae5a0efe97a8100180ceefdbcb3971483742278844efe18fee3574296d24301ecd09f614200b26d7232d37777c483f22da72614fec735d70c5654727558d7a94d7f4294d2ca5d9ecf3908f5155ba121c9b444bb51700b9fbc71322c8dd368d589ab640368178a7973b1a3894b729aa18ba80f0734f583d5520301a26d5e09e0a4908804c8cbc152a9c90c378dce83f5d1a68b07a0dc36d4d2d6257612e2c17ef930876ddcd069cc9c4af2110927d32347c868c96a39fbc1756107f00473232c686f655c4c836cfe131baf72b382024adbc2493f89849214b2f606d1f518419cf6e0e5bd6194f3c8f10c5ee28e7da7bc197dbf9203ae8d4518a788aed01552eca4dc540eb33266a6d00f1e60ac108c7991f5c35d10bd6f2ee911cae9bfd2b1037cb02803d4ec7c724db19986f5ae6eabf8993b0eacae38e4c8b5e560143b60440fc3b06f33d1da81cc622685216c0593d23c1e22084825bb3f438e2ddeea11d7bfe4476a04764fd14131a4e0d125a597a65d1bb87b277f1a10b5c227c13368050515bbdf075d9e6064bc0be85642e45ef292550834cf44f2c6b9cef6c811b814ba0a95a251a6524e9e4570a0326046734a992885bb9e6aa273b061ace7f37f2b1759b1ff5308e85acf3e11ae7b133f5ca03a9687b905a84faf79c0a638b35f770c6d408060a2692214a329c14c6d31ae231b52623cbdbe6c8fded76e1c15d471d0f84db5994c9e79fc54d321eae53d2b3d54ac9c2919f87f180dde34b674380d221fc06d31103f975e598f61cedfb07a8fec573fe58fbd6243da8391323f2e176ab80749d9c975b050cfbf48c43eecf0bafe4337cf33737d7248005b9ee3da6abacacffe7710983488355d9f9a40db1ca27d820e0e4bf637ec813aa1792be79188d92901f0c6cc35b74cf0a4328a726c92cdce61b21b078b4f94160a70c685e7c5ba56adab8cd9ada50cb5d57b827497b2aa65125ac0c093ad424b59160992ae8d7755d497c49baa39263d27d4cd69d43349f9d8abcbe22abf0fc470a0bddc6149612d7151f47ac5b969b2b55651e1171b93712941aca8def54a03cbd1581286b38c2a37b79e97ecf0026c7438e514cd9458712978aa837d5aaefaed28423df2ba828f2ecd693212e2df47fceac5204dbf005c9452f30dc917e93205d470d038b35b23b3348ebe191c979bd8aa2ae35042915701dc11aaae13e6b93c5365be192e94788a1ca9e5eb027d47d7894081f9f500367608658125cc7798ab3a0d5868f5348001c57514a971d071e5377df44e1d159e2f91f1ce4d75797b964721514e9eeaf782972e981be982d44ad70b561b0f2b6d223b5f50ba265748a40a695553896c473a83041cf4d87be5718c7b48157aaa5a90420ce21e74e7e3284de3a5c0b817b1b5a023059a4f5eea2590d5ff53eaa219f2ba802a923b20ea47bce1d2d6225f63402c1e935edd3b24aa0475cbddb146d047f15addd30bd57a7bad84b9660a25da5e5fe4b9d7a874053155bc9b5d79c81d1467d79b00a55346c9e14f05e520a554e640f23a354110aa061579657cd6d8dc95a32553da22b54da8794a6cbb0e3e7d4e05ec0335d6f71edefa209134eff7ab9c56c33056837023e825c466c87b78bd49a783f698a487ac80c9cc09b582bc2d0e4d20de1bd72987db9d93505269e27fecfb089adb61ad40328361a73a6b62d83e26a31860c3b77ab9584ab5555f393df5e717cd755948c869de02d3cb90747880268dcaf35aee891be0cbdb18636c20c6dd21688d800d271e3a2dd8ad961551c63c629ef67811f6ddc640a0432058c40e1cb4c1c7a219840da04574b15c7c3a7ca2fe8417e00e45a81025ab25886022172e5498099430d4457b626a01a772d006bf771862c90f3f7002d8e1e18744e68269299cfc2d22a1469fecad29c22088bb2b4088880ef783c8e740a5aab7fd104c3369f3e9a8701b3a11a705a8c1593503d1432a96f9c7a9c2502b25fca127a8d0ff4e961060d0259d3bd491992f7841456e682b7fd0892b5e57892e5936ebb06848c6ee4979cfdab57aab6eedcd249a22c19e6e60de598b78d891b02d3d0b13dc2987e5b95d7dac75bb17088fbd55ea6b20dc534d2123cb7eb73eacfca6ac8d3142177342270a510fa1092ecc204f47e29a89f911a93d229410b400841c1ec75a51c74c2a153ca20f1800c18646af5038aa2769d0716d92fe3c4bb21b9950d0f1c200023d454f54e8d71cc27a777cb86974db49db397d0c0c4212b54b297bdd3eb885710b769f2907b456c15c2b506ee891abdb8575bddb1f243a2dde0b55784fa333adccbe3f036863ab8b17bdeaf859c05dbafc7ab5e011c4adb3d21382aedc7d2b7e45f9b7d9013b2af0f05b19701e4a760be5d4912a4cf8f1b954a60c7b03786e408f73a0690d1cd845273d74ba1f7a8df25b817e40a3b5038c155ad199a1f488203ded447675cfec2e06854763366530e94e31f7ceacc4028c16cde5251180762f618813c9ddbf530130cd177a86fa9d08bc041e7b6ad76b6909e40793bb48bbc4eb80410db340a276b05f593364e1099bdaa3d4be0c8da3ea743cf8cbe9200cc71d9881d72ab2e66102a7ee0ff0334f98300745bb9f463265e304914a3ba0bc89246f6271662209a8fdb8d8afc8a86a9ea28ca75df4fdc9dc796458c488f403e5e9f153c63bd8ac9d0660e2e3356954f5c41214754e5d66f8e152698615392f0c0124b198407664fa4912da76040c8c5ccb3f987a5c8923169c37f0b3b4092b3703437c21dae5df5ddfa0967c6e2ecf60b529aafffaf2b530c3d2bdd5b78992c5f21389c1e498abdc2b958ed26bbf801e7af742f8e18ffd840d1aaf0c536967ad36ba06c280c413673e0daab968451fce7874ff5085f047c73785948c283a2816519d42e13e6fc2e4e2988dec252abc9a49dec7d3d430cea8809ed7ce444bf534aa30035ca7d9ea72a131ca8622d345471d4a1e5fb9409fe4424758211761430a22bf9444adfe3969fc80c5a13ed569619ba4b1af742096d853cb8f12cfc74f53ef638d81cae8d598648b9bcec48b2719041af2e9159784bcc398fa8f25775b2712c04e563989d18ec65474a0b71e219cb500a76b2f1444d9d40c3c2c51af6da0663f819033733310063102002938d5900c0e1e8998fa88be0f49e6ce4c1cafbde179acd18b8b1313aea6ab99b1b125b4610b7f52984dcabf2ab4c76db1ef47d582031146c948eca132ca4c099ebd3573faa252c364c887fb92924081cd09d30326737bbec061cfd9276d67d7cc724fa04a2379d43c1e5d732ac50a824b536089498b37b4e165e3af0c7952ee79ba66775fe6be7cc24e33d13608d4aba1c9b9fe1e6f5ea82892c4cfc17bcd628ad8a84fd048c71b7d2e48e26f582951f2ce57c3481618a2c1f7c40782dd336c13c37c541d98a5bea667dcdae1629390779ef19c5f520943efbbe160693de865109a0fa1251dd7ccce1774feb96b1ae1786aac8afa02834c0b413b1ca0dc99d3bfa78af07f39e4f61c104dd057188750b21196ef7568c846899b1bff3b30e4e5e92e0cc540ca0204e55d35f90cb636fa1e04450155fa86e58280457190cdf418522e54950d0722606fdadf268ac197b2be2d009a69cde8cc28d8355b7cde8022118828438881356c6d62f560f007b661baef9af83839a1e95b048f863a225e8240ec27e052fbcf7a6df5253e971a6f660800e1b0e1e3db6d5336afc69f899a05031d4e6fcd34d39ff886ecdb231cc102cd7f45e374e06ccc60136a161c84adc99b374d2cc2e83d85ba677a186bc41186860b9fe447a8974b60a5152dbe30f9ecf5db2e4b4bf523468b7d3aa1b9e0d08324dded554748bbb45bb4e4a6273da8b0fcdef485f4f65be43a2915a11746a03d85907a60266a0920c8b7bd6bff2c647b5de47baa7cbf36c93c33c37fdc67848002c8fdf23e2ac1a7f12a2c725c859ebc3267c00ba196a7c8295a8a3b82a2f16b5fe5f718dddac50a5d1af201b405a6d101763a8276c2b0d1922d0265ea67662564806eee30589492262fa16ed6a5f263ca1366f51c7b197e641a6644c5839b97fff328ccd9a67fc9088419aaabb8910490c79496de2abce9019fe4a90d50a20b27f4c934a1a197816d10ff3959290124d2c09909ce1a3c2cd7ff47a27d29a4b3d8f227100c48b8ef46a164601487a24c87b5efb37661f322b9635ef0c578635e126de0052240b426c27f522ed62ce0730b037a211408e5553fcebc2067c720086827492c2e15a091940c235157339810c898777d04a62c9440470c0db5baec717d8af1f0887004203e014344b8c74dfbdce046b1ff7613922ac08eac3587c595cc39c37c6f5735555450d6c71fe6843e0bacad2b1006c803924f2288f44e37b360bf0b8fb8885f396710eef03e36916e85a323df632c697b405f690f66266cd66ab7882bb3e6f4d33400aba11d6b0fe01f5f5462882af1e1e34e6a5ddccb517d71e5015e5abcb3b8368ef34591b0b01b7420985fc9a604ab77926255dc59d217381e5960b2cfee09039afc21c5033d0cb22361cc62f14ba5ac3bf2d02437c899bf653d26a26f1d7d3ac1b7b5610466f8c890e392c6aaf170763f24416400bc0e1d2029fbaaed801d51e0d8eeb15353b2c04de3c7d19ee180e3e62c096ae9f0eeb1171ce373261fa40684b6ec7356deded777590a1ca892a696e82fd6265da66bcaf091abcd1585590f1e470c054b5f57d86d03131be55f59830fa08cb547d35607b47fadf2e11c4b89d9547bb761a5d2407711e17eccb8115a6f30235922ed8d7d89ce30e40832cf28f488d5c2a26a6dae1e80a47c5a0efad708b5233334bcefe164dc8e68e4d3e8f907c8b319f6a9a99ec1fd94d541a054b6f6c9a8c5eba193bc187f632b9076038486d1cd23ad562406f66bb26f53c30b377fc04dc47994b5b7588422fdaf434f5ac90bc0d2312963818b62d5d879d03ec05e200c987d2e854be1dcb17f2c0f6bd0a95f0ca40c31043b0122176d62fe638615a34d8e022e68ca6a04e58a3bf69dbab778ef01311af43c898466412b7c7f09618ef3561641d34b7914127a149a5839448ae88166e4df1c6816785fcd14917041a21e8eb7b8f58a39c070c5e854803e9c6e5d042d85442d881ac1132eae10f54fed4eced6f3350a826adda9398e89710d81646b7adba515bb8ba4ec745d6b347e77ff30810b10fe5aa2df226c1b05d468634200beeb839ddfc5846b3a01796063d05432e3f9e54a7279c254428ffc454abc919eb7cccd9a560b5dfbc0d4183e6a4d8847f345af8cb9e8a9356ee8aa54c947215aa517b38b8f3759936d72cb85eeabbbb36ce2ceefaa9003e58ad0a07d2ec92cceea5504702e50d6cb8940d9de1e3b51c8dc5e889150c3e9a6eef9d803879cfbd8d319c4f6722c623b5633745b0bf24bbad943e3d514347017aede1c7824e84b67acf3edef3903184740d2227f033efe6c273f2cc720825887a0f28722c83640f33da47ac9f602c19b632f583d3b3c4b5982f6fa6667a746d95ecd78c7f3595ea308d0937c74915e819a1a2594eff656ddc139c4e71b9bd5d52bc20c43cb4593a32065934fabe5faa375cb5224fd6e938f635bb948faf7624799d8bd0c477f1616415a4b6cf260f557d71c1fb7f05579bbdf00775a31d78d91479d004416c3cb3b25159a80c13441d5da9630e80c8b697f8df194cdfaa2506cbb014f298903de6e375279ebc8f258d32da03d816d046a3ecd96d7ec1b244f4879825aadd819606a4a52ee0d93c8d9e5bdad290ebc27a8859872965fe88a4a0e22bbd5c5d7ccda4a3f2946e8ba6dc1da5b6f711090f9d16e56b72519af7a2da3425bd2c2d91847854ed4d8cea274ba7f7c9205a5d54a5d99f5514be9e283013ffffc2aa22e013f71a3f26d33747d2237affc8b7734349a144e29c0c8623069dec827c35d5b81501ed6c2af69081cadb728df3030d58fbf3bf2b7faf7d25cb696f01a2f9af203a17a5c1019ad29593952fbe13d6f95947bf71d32f23f6924e1934332a902a5226ded17417891120e0e19997bcb1fb8127f82e408200122039f9759134abdb0c19a029e28699faf06fd04ad2145b2f3599cba624d7f55f0db9cf01e537315664aab08c251d1000962d85ac675ae66d14c13ac0a40196873fa61e61fa559e1bf191aad2833ceca60e0ccaae95aae7480f73bc61b5de94d2c9d05076fbce7a84613952ade3970e84b5f4fd7da467618c78ea22cf0d46bcf46304a9459c23fd97bf17d1caefdc388bca620f709740b46837f48eef684182ecfe87b3c0c922c67615f7c6a60971b6fe6b9e8fa1e3401d7d440b3aaabbd2e0e04dcd2eade995fb569c72609d227674102819bd4955c68e42b82aecc97e4af5d9ca8438dcb51f4cff135c4c5dc215026014f234733daa7197ac41f92dc080afb2a705407440c4da0bb87b43fe5066b7a4352d2a948a8d0b6b894f9ac0a66856c7486929702f97dc873000fef85025f52a53c2e4aba4cae3d8336518217218536f8b19f1c423c2342f690180b2a00f8d158ff7cea3ca4b2ff309c936db9d8382159b0d911d6151fde3b8e5eb3ead518eb84d7b6049520e68af75ddad1f69f86fcf44482cd4f632c209d58653ab68c524e559a991f2932ee7b2c1de7e9383de5ce2f9076acd6237abf20f5362727830623198d5979cf486dceb8bd3ffc4b3c806b48891b671dff36d9c31ce08aa210501c4e7b61caf97e85336809bf80c0235a8a888451e53c37fcf7e1d759b628f61f44c174bea99f6934adc611a52dbc3802a98b0343a20e2cc52c16f2f734f4a2419d6635c6122a965d06b818f12d02d8c56fdb9c53a9386ff6d242a6528dcd70620e30092252620ded481b865b96385b83fdc398f9a784a7824a1bfd632ae1d46532281c612211bd659ac33cc033c1e9f18dee3b44d272efaffb599d283e1b7bad2a90dad70b411084269cdde50fd821974f88ca3ef0dc05d437ecaa3379d734f04ac8f44b2b0e9211cc28a2c274a141884a6bb1d3059e984b2ba2e02320baf1696a095ae7b3335c34bfeafbbb6618ea21f7ebb3c980e493d1a20507fdba5627f75f350ca01a7b7618a645c2f838971df55a966df4931696bcff4100b071e4bbfc226233a5b01bc34abf450258e562816b4d74ea84bbb99127d6ced0a402a31564402947401d3efad2f9c866902d6532c5fd727de2cad247967a7f86ef21bdeeba6d20a434f31c59f2a97660ae9f1c40ed1893a026e546e75388121efc310153ec84a9e2eaab42af45f5811f4af39081b6260158684951e3bff01b17da1b44e90ffd95b989214ddd4dfe579e363cb0f5862cf19fe7f01bb42a6394d569525c3768702f72b0ba21bec54d6f60f13f612412eda2188100eadfb4ebf69fd5af63a7cb89e687f683e0f6f6529304b1aa1060a72d7be0bd8e5b232302161eb295f429cefe5cc055401328f3997e9cf29b8a8dbb78eda8ea9a6d802c6877acc33d9f419f542479173d0e8632128b79a805584c0a594e683e7b465c20d720f4eae350874104583450d27a2557de2c6a3b2dc5f0a9c5b64527be5603636585925599cfd5193477a9c4195147e268746a94572df04b88f62a03134a708528402024b81a93fe7dc9f229273c558ec1fb151d6ef092e991e6c69d1a6408db62c98d19d70e8bef1b853dc617f5fb51129bfa2a204b261a08b473c0132018f130f308ec96da1f28b4069b21c9988057319414ee36a95924cffe81559a57afdc78d4002db7810cef29ba01de8a14a6db33b04ff377a148a50ff072a6e295a7fbaa3e24b0b788ddd267230c9a3a6c7512d2cf46310d8200959150af634e40340b6351813bf0f052ca18c29494653974f3d16d74ed36a6932888cb181a83df1aa189e43db2404473792b90a55ea090ee013e7e356054a21c688716ee12cdd297debd84adc0667fdc9bce398b730acb8025dc594ee8730814011fda069000a6822d1f1ca6b93781b4833363f0888a3b8c9b4ac6dfc08a75cc512498f641f036d0c4e7914350b452267e6e1e23b4141725c0c53884e9655bc27b6339cf8edbfeb94d77c8b4ee005762e831dccd8a3705376030f32617e9de66e11c4b0c290ee38d75e55c8d1dccf226784c2a8e9e5948ad9b0ef5638d7b0084016af3e74f30ec0fef784639e6ab1fa203f553a14f6b189e9515c76f501a79cd5376808dd8ba8aaa16b53063c18a898939001e68f2281c41890de2734b4db4baf9b7b5839a8a7d6992a8bc4d2cd54eda3021e79c6977a614279af9722568118903549e397c6bac815b2b7c5429c3d0c60e057e9225921b74f7d60619cd276e7cbe27b90e33749bcb5a175cfad8831beeabb462a765337583467964a7b3cb6c996b089d4697f5330ba15257520a08e2879bf9304c22f377b79f4d0a7cc229385114e661c9717788233ed46a01ea525db8af6d0c649f8e5cb5d130e0ef61070e097e0814905496e1bcc51873b772ed6db90341b01c6169602fe5889ea5b4b83f0a432b943898c8df458ef3df648b976685870b5843cc6034eedcb61a30ef20831b69180fbe464248a311da13a3379c9e9071cf9d3d5efe719a48041bfcae320d00fa0e528f2f55ee38a5116592f7eaafcbf70ceab5f865c00def5d25e24db947511bb574f0aa829678383d7ae786402c59de8eb9895e057a21695ab928e4d89374465b063f12c181404cbac1bf9bcd8c704a321facc6e87cda34aa228badefa1d270d34cb9596d0dd4a8656c619207ccc6ed286d26c1ea9938a5149508c555af486f2050460c856ee867be2eabb0e2f80799b883f51e7f0f8b24702991075cf0c6a46521e4659a1330fe4a0f4a0a063b434aeb05cf3b1c26e9915c81ce25ec8389aea321811402b47b9b153f0b70bad0a9c95951936ed92c9acb074551d57d2dbfbbeb63659baa414596ed548877af96bc0d933e0f0d954e35fa698e1cdae0dcb483fbcfc725b49d2abce2414fcec927d6eb4f7b0364de2b39810cbcb9473eaaba0b7239782731208c8b1c681f74989c0607492c66708d59e81d911ab3966419da465b9174a6d122e6a908cfdf107e47f963e2a88bf34b084550575857923eb1fe0cfdad7d712f1a47d1b81fce35e5843d0e4d2b26ac062c2f2857f28c1db092b7858023c88de234ab37c47b5cd8fc2db78de9602947a6900710f7965ea601ed17b09d83439c962daceca743a2be37b99e408eaac9405d349437c81686c46a08a483e8119193dfae43bc69230b015ab18fef1a8328075e0b9d1b924cb64a84c491f49f032ec5f3f15c22dd0184494add3c00220532efba437cf6529505237218017c3019df1b0639ddc5bffde1684da3bcd3a533921caf79049028b85964855702cb8d7698e8e915e1a99a5467518c09621fc64b2fb019a5cf84d3269cbaacad0174dd00cda4fb7b51b73cee3dd6cb592bbf7ae72e047308a83186dde9a6b91a5ee7472f50503c663dc49e9a182948118d1e3241bb8923aeb7cc0d1dc30cbbce22ece863530ca51dcd4a9fedd07005a3e263186d4fba504b6168a71dd6092c114c8c73a1b2f425e43ac4be5de0a256e34800e7d2559fe8afc5166d1de56f451851bb5183eb3bbbffd0300617273d734a615ccd5921d1407440a6b2951b0b0889341deb111397c84c7228dff8c63cb0c479f2f2fe1fd73312e1b8805a6ba3e235e9de6dc1ea8c4c8693c9ace4f42c2461f358fd07b94de45bf1b5b7b6a7cfac4498fce8d03a2b3f5da52bdaff3153ded4521f0039b8789b6023cd53ca5bb8d0ebb917cca2c229725ec2b029000dd71202e27bd53d7f5f11c1375c10959abc749d87d12a60f60a08d295dd1314990be3da994c5db68e1840fd46124f6d1d08638917fa2c5e676a0f133a1a253a239f86ccd452847997c095b0e7c0ea63b50d8d3e595399e8afd14380833fe6acc09f7894a3daaa2fdeed2aac5e1c11ba4f05ea9ecdb045a1b63af5e8bf77d880fa29b06b08a238b95e1c47eca2a04f699a910a98693ee020edf4ee9743390c2aa4973cba594cc805cfe661638fa076bc95cd864a7d7ed111cac9b9655bc42425ba2a737750e6eacb07cb7192186d575c18d966164161511847fbb75a5b5dd020bcb74addf259b795c32e7327b83ea0f957499f3214aac0898e8615704dcb343b65e9c032517fa46e01ecf51f24f2c374515024b91056a9d207effa972c140a6a94071e28b7f9560370e877fbe991fe1438d438ffb436a245d7c3d9cbc29c7d2e51b628c2b2224e5825d8008737c518df92465eeba4a34b019df9eab354a98cbaa13ceb61db347cfb55629ea3b5639e5b84229bd0a2a2c9e8631fed453076d42f0f1da6c01c98e5e56d45ba121307c5483fadd39db698e52baa0da753892f5cbcb38eac05109c41468abcfe4557ecb48af664ce0e6d13c99019c5d80c62e84e38a34c0ab4b30a39f3177ddb11f6329450fe895d411dd50c8eb0c066c4732c5f7650b6f7fe4e9351408e1cddf12134f17d21c2e0d1b9b1d0f0732032a7534738a129efc5600bd7b38febbc9c04d594bb1535f58234f7a296b43a9fc9faf921190869400460c93210362a7fcc4075021a7489d468e8f014ba2d880ae839a8ed1f75f03789fde919ab91455335e4071b11a76ec1990fb7e53615b78bfeb780d509aac8d9e234a0eb3622ad1702479923641e762bc5f88a4fb6c1ad38ef95fb0abc132021913f8d2430ba7e08795659a9b01918ca10aed1d8b667780a3262deac32496987e83599c31cefbfdff11433cccdc1812f4c080aa6a30bf3e29544882d02a2070c5ea201f780632cad2238d5c050d939c6c09c037c32c3e7b35eb785759563bb42b762419550acfd98b42c5fb75b884a033aea1bf9ab3d1a9bee717ca2d5065a7695251e9ec5f0af8ba5a1687030c4ab9ad94bf93e11a13274961ee9aaa30b865a9352321b7bc56f7ff18d669992731c5e53f96f0de5eedc1e1018cc6c0d1b9ced4263289c10c9499848c9df2798ff467664e02bceb625645f55ee4d893d966703a6de4c65988d55828674c95440d1adcdf993c96c255382c94011fae5ec855316d448cc77b487c61b83c13944958bdc2f1d00a20fadc4f374419a70846a247846c7f9743f7975f5a2bccd7571942ac6a220b09a1cffd574ef90ac438f4ad44612b08082b283af1103785d2b66be21d71f989f9c1c725d0870af0f71e22487d05441cc9a63ca5997bcf96a8a6f27964d7580e6d423930143830b6edcc542c26134ef457dcee4b48c828a9664ca5199b71e6a50e8141fe5f338415698359b9ca2cfedc39219120ef18407bf2cfcd981acfe01bd40e74dc02a60eba9db558cd05ffff0d876d3a971dbdc5e96e14e7c0126cc2fbf45192d34d8de862ed32b834783496a25ff93d8679e4092e986edc5c43285412b14fe5194c88bdc8f7aadd57564d8400a7c9affe5c0878642f5a8f0ba1f7e427b4c0c0da02ac62dfd631465da2444584cd282c8971cb58c54256e2d1c7df4f4b162e1a95f336281835dbd1a117a813539dcf2749324cdcea69c680b16bf3065ad2dad0fb9c2b47ea4f3ef1e59ae51b8e9e764519e66a939bd21df634e8c4b6bc777279461c241e98cd0f889f0c1927cd50d6a683f25d06c45b2070a17f543dd98e132c8f2d209be877dc7ceb4b12718e066ad9c65283ac5f67b72da2d196c05eb8d72637512c5ee1307c8769a8369f2e8a8f2230eba56862ab339b0a95b90c2422474cce0226ec6f04a84de4ba8735a67a00176696f947fdfb7930391774a287df6459a699773177136c8acfb96dffe7be1b96b65ea23daf65e49e04381ea5df7d3416fe5f3149ede23bdbd1553a7aadc7942b5e239d02f0ba4e87bb0f5840fb9d09a7739a7b8190d229c883721d765b319c0f4aff99c1e9712e229a4692974bb79ba317eebecef04edea33aad91d4fab08ab12a77cced7e6dde9a13adccd8bff29819fe45dca5ef49df1624253ebb4533165b6e1b0a83cb24615d40ff8829805707a3239b8cc874b1afa702c02d4032e8ad3eb59f106fa58f3a73827da9ce98900587408467554130f4721089ce9599f5a699c18bdd46b75429a0f3e71fef9ae9046a064f1ddd9fa3c3a843c582d7d3612dce513375311d49103ea542cbb9554ba9bf8fa37155ccad7c7510f187113dd538fc79ff8b7d98db35ed40f6548cbd2037d9bc861abff9a7598043a48a51d8ac7441cc6add384e0d0fefa0f4a06a1dfb114f1ecd5e069795ddffcedeb285f23d891bd1946aa5688ba87b4d326b79068ae1501a7859c882f35462e5e810d80583573e4fbc2b39d4d7e458344f68309eb57f67643f9ab3818e92d48cbc437263356d7053b71f4d198be5fa03df1f694dbc04ada0d305ce442acbbbdeebfbde35bd176907cc0470c104ff94fa2ed5f896e881ada12f5d3c0e191cfdc5c1ea7f5db34c3a0b50860711d513d5cc4cdc6666a45a020fa9e5b5895277d6de57090b4709ed6468065ba1be8f37f1d1d326b77c35b3764cdf86c9438263a41ff89945baf3718d9684dff181328ac8fbff5bebf0c5bf13d1cc8b2e1270403f0e2b264d9da46ee260636ca6f6e81cf329203d9bdbb58021bebcd5fdc774a4d006abb31ec23c609e6d92db310aa69b9d194d7c3717a130161884ae5f873a075ad7a89394c0f51ce036990f678248144013285b8468ac2c0eca446c3bb72dba8bda68e405405a2a91e90cb7a31830ed31a1fd8e14bd90294293de8fecee76b142e3b2f5aea4a04dfa3af4a76c4c7268262a5d78b7f71b5aefcad8702a5650b97f2df42669c718211acdb6c4b8d0aee660e4153c997cd4b133bf54aaec07550c8766faee7e62556d4ae6c30d19edab0aeeba4a504b590939fe51a5d3cb6b8b8180ef60f3c624bb06e680e3ec1ec734e5d02f38c6373370c64268a2825630bd2de9745a81648b80424dd2660b4ae6ae709b5055a46d82f36c338eefcca202a79c91099bf60ca03368184899c935411b29ac07c56d1c21bdf131e9da7542ec8e642223e75183075672b38ce73c04a5c0c4d6b881e3410a6796059b9a1d100ef611a1ac5c038aed20227374592b1035a40f86c5953bbc744498341d35b8584eea398a0732c5c222dde0bf0417200c0caa04738206e6ab6cc8ed6961137668e4b97edad1959a253c5ca89b3dcfbc64e6cd22176d7e2ef0f910223391be0543295e78a8dbd08d54373bf307e3eca5536a9c22ed0a0d0456c41cc066223c21ec3137ac2cfdd4a99b2b753fc6b3aa64af206e3b51e6c6fe83662ac05f086934b3b0495c3e13529614ca502111105412bdcb095ea7881c8482b43d11a04970ddf40dda50fd495cda006cc58d630e9895cfc50cd78d92ca4d63c308b4aa62434d6afce816affa9ec9c0fd09ecd416ff4659f03e9489c5ee91281f876739898c3345f257fcbf8a7856bcbfe6d73a2708c51c83764f905190d2d6102bcb5a03579261c8813b9f312799056530cfc76dcfa2929420e005565701cef90a9b46e5ce1570222d852e20f4c3fed943615b6fe1c33c0d0f4b22317a24f0b764481d84c75ded1e3c559a8535e14c7444a9513e4c91380f7a8d32e8cafea4630d3ea79f0c5b27683c52c3567c07db889594e8475e7901cbe5b6e6fd8e61060a027f9233a1d8a0a94c8e7690555ed5b26ea629a4b22d4b655ee1241afd89542a04fbd2bd460cd70a72797d0ac3f5a07f3758a60ad39e59317ef56aafe1fbe3e056f575eab8ffcb1d90e6f748ccfe2952416c90e76c4b6af9e142ea562c5e99f1b6266ab0607108fbe7e77f1c9f1e94c111204b2df7c47b06f4e6489e2002dd8d10df8cddb55714fa536c8ca20dbc473707fd8d064dd3d2f347c9942dcb5df614def01402713701fafe6299378a782c7ae01459f83a5a8a283095e5d4541220c548548abec4ea13662482d5edf48742241040a6be7223ebf35df81c14973330daa68008f7f1b13a2f117b5902fa07a83b7d0b2a9fcbdf5f17a0a5e5bbaa8b29d1935e4d658b975a8f69ed926be6bfa32595ce3c3b493c9aff4d922f318860bcfa5b65d4b61a4a7880e4152e2bd5d4175a3a68ce173d254a4f7aff5d23d2edea924d6857c618a1273cdf2f7ef80897f11b2ad12fc6e7df97adb5c967ff7b9ba985354b628c6fbc136a4858316d9438330e12f7c562bc66097773253002e5229410f234c1caf011711e3b93a19c10df2034d6ae658ac8b658c3729e7b3d2161f0093a6c8017d3de26f14f586eceae0a78443cac334a447b6fc4de2225d4611a8c7bbe6f50ab248cd19801aac8f1f6dfa02df7d9236459128da1a712a885e47b43fb045390e164a78c9fcdf7d0a79a55a44adbe51b745215a9ec7c91dd3082af87c2070ff03de61c7a0480eddaf3ac75e84d89a4aca8eb5039caf73a6ee3387f8e3d9843526f7fdc30c56ab0d138ba6955bb64a0eb87bae70eee3a6dd235419125825b17d45858db934347aa8c32e185387540c16be07a1755f031aa0c332858fe7a20c5e8f1b92644345fc9160d5611f6330669255945e0ea85069cf2022544269f2707faac8d43c270b0aa917b08b9b201d0fb418312337609c71df58df121ceefbff7ef1de04b7d220adbf935c0a498b6a6cd07c052db0c1ac31dd4f0322e8ce75ce411c05eef8964e9c93a2b7df639925c5af038205d88882eacb041d1dc4ab7503b0ed5336e95e5c584f11af6fc929dbc0add4cc23707c0600bf81cf741b080a71f0a871ede237c75d0f06073d67cfc994935192b441d5c0a548634c8514e926409563b383eff0aed3e161ced2ef8b0ced350b1e5868660a3cbb4b6194cd646827de43084dfdec7c9addf5e0bb017b2523b6f459b566d0fae4b3850ce26454dd1f708e7dd8bc61d0fc9c4b541eb4da598ab35c41080488ff5a6c192b4664cd627f36b129df118029473e39c1e826ae1b259cdce7f60da29c3bc416fd0550e669c5512dd9058b7d08cb6f225787355b03bbe3a31b37df2bdec4105e9b312c15ef8653cdedd88dbc21b06d77f74606cd2e5140c7a2c2422f83db2dbd7ba9167b9d512e0d9064edae1ede7118e918bd2dd70afda6e400aef0e0694290d1898e04d04146436e81697489597f0ed45d6700938e2004a41e0ace7d9ecbd5014ca14a914da440f26e331f0372b0c0cfb8112583a46ba1f2734532858a6e72499bc130cd9bd99b881d06bdf3dcc4ec734d95d84676c430e782ee9ef5587e5f07a688b7dbb02511a3105ef2ed76349ae3536849f45fdd73ae097e1b2ae11f16b0bf7dcf2f017b2d1addd7a8483ca32df95615f29e59a64e87555fd7f1297bc9aee5148695d94a2a8206f467bc770618ffe97a0e1dc695c14243b0931bcd301a388d1d2bffb86c0ca1846effbb4ab7d8c28d9cccc29d1825a1ea9f17d22a491c205d5c42b9b9f752d303c5e450286fda3a7e1323fb135d25e5c0e09f2160ac72808314420557d82be85d515907ff9448ce395dcb42f7989354a9009a41d4f1dc80ba9d22c3149a575ebd0879ce8f4a4d292c9bbb64cd312466e7682162530367ef8344b939c18ef1992f67d3d74bf34a477f9524d1bbc697f2ed0adbeac8472e2cdb9d107711c016420f2cc07e5b7775bdc71cd772687463b82360d871182d80edf696c66c6bb20a6d852c54de26f72bcc6ee977cb01f4c6096c6ef0872a5f1f5e94ed5c7f12bb1cb293930f6391547985e3c4cc47d2abef388cded058e3c9172d921562a1ecb5a9f53b8bef43596294698b8b8c0e085d9cde8faf31155095935dc7ac8a05f64429dc52d1c57a7d1750c994ee8f340800fd8e7513f3243d650b02ec5e3da3c120b1cbd9364223c7f8f442486a96d14c9dea65d79f86db378278fc4b9758f9b8c4d9fc31a3f0da76205940d729fb975b96d849139df404b46e0e93fe5107a20e19d2723b5edfc3dca43c5ffce8dd608d015d5762c38e3e6170e2801351dcb833cbe18855b4fd0006144fd0829659630526cbfbb658e5562d5205869a3298cbaf74e8c7b6aa652c6f5cfba41aae2520c24eaf5dc2e1d91cd031fc946f547de27018e94105ff848643c5d89c4c3eb7d5b9af4b09a13b07ca63268c4611f9df9c52da86ffb39330ffa2936e4e47ac5a6db1a82401735fe877e012d31d0185a1ace424b3e8a6ecdcd72d231fe37add31d21cd80e761e86b44cc7b22b8f17e6296e32fdc38dc855435a1c71172bceea64e060ffa9be82bb4f1d66ca2eeb009806f64d02f8134a3422d618a75214539ba6f45995be02d3a85a862552c5fa534ca19c3dd1de19d89ae2cb875d31ad75343ff2ec5a642a8318cec0113e75b608920d6c91f9405ff16ddbb0f4407628a60cf34820809dedb877782afc04bbf66e2596970a361bd5d52c0212062078723990741711954cadb4f5178e98eeabb8c07957664b45fd6e66585e9703a21a3b4821c33020d333257d8d7bc6738478055f277cd8e3d06ed7b88d7f8e1c79095d20c53eea1b7b38d4e4f02eb853a9be48f295bb1ed69b489bf2bda9f99cf8076e868a6bf3231407012e5b68fa2714efc8b7aed9042e19c4f1f254efffc14b699807f4325597c91f950e638c2ecf13de3b7b34148425f22a6b1f2d986c104929142dc77f1ade379895be72c9a13b8b7fdedd265051f9ec7e9211b51741188d2ddc41e2a7543a9152a063b3ad97d552e179513273890a38e566768bde54328c6b8f6d5b39ff1e3247ae20eaba3d162693f9cb6fa3b039b0a560f7dbeb028d8d3ca7f7ced8c9f7afb6f1601567a8e88a670b437f069246f3b83d407a0029c6ff30fc24160c9fed1ab698b2b6da38cb4add2944a8b93b5df15cd3c07e32eb0ea5e41f23f9ac6041f9699f079d77c254d3ece765df9cc75f3e495e57d8a05e09bc918e9549e337ccc44104603252f7e361854b109db0ad80f0ad6555cafe7265e98419910097ba2c1acc9591a09ef15e1e71efbf5ec616e2f3685f9022021889d09e2338696717863732e17f015dca0c199f5a12201b55f77cec3a1ce30f640b1fc3068e0ef2aa194124978e571bcfdd762e2a5e221a6e6565e70535f213f6d075b772f30a0dc3ee85d0972da89f7a8f2f82705e48dd640fbfb8a800294c016369c20854d0841845b1d6dc801cabf46dfd87e8ee65fbf3715aaac47b401a210eb7637c00819642c65adb153b801fe06be3827e9251a2b36dd53c0b7132855b242103b50c186485e9c40a96559343436013e5ab1fbe07c981d72666b25a39447293c16e9ff6eef7748ef17b62bef1a5de0bc4ff7609a1505457158a9758d52dbab5fc43e09cb3989053a16d81b1febfd3872b6b245cc63d6544f7b7d13c0788f62c74ccdde64a478d608b2b06992ed46222b23a11a88e0c3b9c7155b2ee3c3acc08e8c6668e45adbbb9cc821789d203add5da2910312f37ca220aa6bb4072e47affb027a9652ba60b4f5d443a1f305f4cae20cb638b37f8b52f73d73b604fe95b78711f9ca160c3fdac8608ad6fef43f7331da602a698f139d8b576257c0074ce6903e56ded725012078763a7186876cdef878b62d81c4275a57373af782f06aa0822da02ce29556ec7616ba3ffd72007dbdd06b49b61a4cd034c76e58e65a2d91159b1e62607c21a44dd9d80dd5d4478eab5af87dd8bd5f7acf77230ec1774ef2dba3feee44287aafa796b9472bd2cf1beee0619a84c814521d088e3f8dc001457d6e54e4a9857f1439cbbf7de64eb0ad58e3d0a11858f7bb36b582c0103f00030f0fe44a8ae4217fb7cbd882647723a2fc6cf2608308ad8f0adeac26bac3962e65c97fa7dc15e6625996846b9c21833a6ed6898f32b1100a82a66af2425d808eb34554197189a7433b9974c8c90198fa9d63ab2a69afbe44ba5ca64beb12248a96f150050063bc13e9a385206efac54e1d0d4658847a63c976282e2a55294521d3417327b535f8ba2d12d8633d7c7de1b5ffed25e950f0a3c5f205da518eb34e53f2771cfdfdfbd12cab43e4c3c6dbee419c214b484e4136b380835850141f220576d2d1e6f84e3423500d0598733ed0323fbdd089e73fa5fc9aacdd832644fc528d19c463a8a7d00fbd3afacb584c63165f7eaf13cfdaf841540fc97830355ba5765f4bb9ec62ede25a7d34d87e7b1686149f7f9be2accf5664e28e2ef990025b7025dac4a2d13f1dc29d9206cad8bac34221e541599622618fc1b2f8e34aa9dcce5f3557ac40f1a82cfcfe2fbc28753a33337536c59e5b0080e400d1840b9b34eb1421f8090967e17df2428e4add6ed0a598dca0486dc590abad17f31c26464fe84277224455b14a66308a83ae95ed35f528c1ef2719ca0a14255cc3cb6b52489c01c023c89919e14500ac5e788967a0a8ae0053af5a4ed83ab929dbd14c7885909c7cc16fd3b3c7ab89f6500b68d640529c7ee28d4e06a7f0c2c6446ed973e98b58e4df6206e938fbe5fce93bbcaeafa666cb975f46f1a23e680ee78419bdb01018e63e07682cbf5cc3622806e08260c75c074b8659802388e43c0642413b8006d32015a89f8dcfbb05850c8e13f1acb42ecaeefb6504952768b07c9c0611fd7c8ecf6ef53f3180e0425d7ea304026811705b4fe5b8fa337f49497ffd6c90899db48a27a4ab122fd152baead2dd949a683de582a4a562c7eee730e9067fee863caade229fba32f42e47dbf623d6dd07c251eec4c2db297389d6a50a1b328b974b695cfeffcaba0b279ddbe7dab7b5ae402a826fc36bcdb1b44453a985eaef7f81270ed7fdc8a3c7efc496ed81674a94616c10302a31c9bf6871002446e473d00e62137e6a09e5b5b00785f5ee7a04bb32207b0913ec31c9a04ba0b7d72b068a187c626b7e5c6663e4365bafb4d3efed9591c2ecdfc1d1964b98fb4531422d81b73b4145c0adf98966fdd7890dbe93a922dd306dd830d4afc4178607aec5547aaeee1179d6471e4152858bd15b204a40c093eca42566b8e49c6284a0e189ca9b9f5eb63a0b4149534b55a1eda1c89c30532103b0298da3ba87205e4ad2eab5be8cb209eb7344bee56bcc5b822bdb1a539fb6ec7a24e8da7895893cbe048127604a104301d9b27ec56f43f726cf57ebd2d53ff51c8e50e19824c0cceb6dce0682c60faa9135d47e3e1fe8e33787f2e35350e0b2bb0e2f378836d47398c23ee7513d74b4a1f4228ad6cf04bc6fcf3843d53c077d1eacce9a691f81bfa2ac0952db8d569c991dac3456dd44f5f500ed9a156820fa03e1794cdef4ff1fd6d46d61488fd5bf1e50d0f7e0570df0d2e0fa515f6d1a6898100a5f2ac7dcc982365f8b362da940eb858542c85d027b01391161c8cf1dc1733565daa1956efa0034243e3b92351dc02a9a5fbe05b478b0dce98c6676e63daa5e390ccf9784a3ec954265d4b25a8936af5cd30e2c79b26d80c0d2acda6bcdd45397198e023f1620cb704721afcd3e1bcee4c102b78920a23cb9eafb1e690a69b05cc52a44a40bc242ef277ec3170ec816f90eab622a7f5be04eb4acc985d7b41621ecb161cb88f1db962fb73b9bb039631d31735e10fce01fa87e696a942a49b82767971f7d6b80b31c329e33f3249e56d94df141943d614a46547f271ae46e37b85f45ec7729c447203c35c5872d3eb65c176ea1af003991cefc28e8bb0582c40f613e626a23340edf044b731fe595220ecdc307572617640a016caf7d4fca80946390f88ea019d032ff3b0c237bae78e4ce68d46c1d175a15c17fea39ef8ba15193ab76ad650273bb747a03c6828709985f602ca146dc1bb155ca167a618d359dd90fcba0c51c782698833bdd81ffd0daee474ca568ac72b72c45ba82fb6b45a2168786994d3da81833d5439b6fe49a8f94af5ab49f18aeec937991046f3c9d0227d9724cd8db2365434dd479b4a782cd394c08648f76555958f55e117690ff71b3fc6939205c1634de942f2ee025b40b00aaf32f1412b9e7a30e0b08a3a7137d422ede335d5780a3d442f24609bba0dde59be018adc1de33064dad46dfe4692f26bb3e2f4043425312ccafa80997938c7e4eecb1053fa35cf6e6382717dcce8220a96c4814bf0cc100bbe2260c5edcc1b9322a0ca7198ed5ce86f9ca3dfe698ff4d674b475b17f3cf674152e21344713ff7f967098051f75f9428a4aa5df41a3bab889b4e98209076124f41fddba5bdbda607caeee0a9c25c15b5d12b1369cca5c95f77ef3edc4574f417d15117907af76cdcfbde5ef066e214c93246b6e2f634842977c65004c0a2ceb840c1d781f60502754485450c1c70312c2421f251250dd693a221f89c400383e479d4bc8dea2cdda3bb656d33f9a6221e8a7965c586e9233ff143c9f876b9eaced059b6b20ab836b2734884d4cdad18e4cfc80ce6ec564bb1148d871c32b28afc1d4ab9db0347de5b9cb61798c3b07419d41afd4251f1fa1b940df32ca57457c04ced9de4547ed3ed1eb6babaf24dfa5197474d730882d79f2cf7c271b26bfc532d90d32f50cf2ab1618f0992d5212c5137fc04538295062d59a04e2454f4abeb24c5cfe840bbc2f1de6981d30f4acdf234199408f7b5617758fe7eb494b754fdd5a4d4fd2955d2ecf402191bd5543b4f79a7177f9568260a26c1ef33d6fbf6d87f1ed933404fb63665cdbb47fbcad69020303940b953b40a77008a4b004e3f392651e83bc925a0ede28de41009ca56f151a06a13bf7bdfacb3af308504222bebbd393e73da418fa9dbe19f28d0f713998e6a8063a70b97803936591d5ba26cc38b4abb6edd000f001539b0e6b086e3db62e92d5b9dc87097b1c6a1f52ed7659b737977688d575bad6822b90e06e38b871fb028c029095c454ac34182830ae3b2830b28e062cd88d4823f92266c1643c53ce54d73addcf7748c06a27951175789e741994891600159f93cf403b686c124585ae50368ccb94a36185db59e149181533ce8d6fc2c790fee32b420d339f8bebd2680341baab9ffad21ee56e264c6164c19dc0bf5ceda77052af398e0ab3c04ec54604742b69987ba75e816f52294a2b6bb39af8812be7935fe701a1516441bba318012399380f0aaf0895d9634a7ba9aaeda2b10b298a1f469c7ff88fda4729329ea72b6459d57923d1c8d74600e5054ba011c4da0e38f50bf1ee8fb4130cc0035abc1a9159308a524e076b3f9c3ad695f84f491eff4a30161df0d9ffeadd1202eaa8e4533a16208fea2f4b61dacce02c63f81f1d2f830310283554109053f6e1e54c9823e529d4e2f269c2267c5f0a0bcb4ed817446477db726f99529232df082c09eb08d259cd62b158e2e88960156be7fef2db2b7c2fe60dce80e7bc21df85c4ce095a003bc4435dd6b0a88e1d7d56b0416e0cf5715ebf1c788538cf2ae9da113bba57ef6ea60b84aff59f0184ba77550a71f72296f71a60791e4bbc3d64d49127523bde3e7a7b9da2bb57a5bbbb87b68d53a71d749503df4590baec6e4ac52c5e3e2b9ddcece6f457c7d1d7ab5651beea7ce7758a3fa3723aee7c1a63d0aff75ee7dcec7922d889d5d1cc599b0a093bfaedca32d0dd2f055d1c1547d03a7dc7490e7604c78916f0fb6376a90884aff393ee29e7a2a2055d4824f7130c79afeb6ac7893fc0eba2902be4366ff9a4944e5d4a9632fa5cc8499624a23d72887ef2069d60ce04f7c5a5ad4bc51102570b078124a21bf87fd4a54cf2b9cbe67e72ddede383ed5ee21a472f75f79b25ea8de6eb6f5924e5943d56587f396d114bc681e303d74bd9b217acb77c76f92d1ee1639b4fe7ff5c9e4877be2733a02ecc1b332e37a5fcb152182efff843a90b3303cf85cb2fc32965fe5c48a5ccbf434f12f9d3365d6bc9217f79c34719732e3ba845d3ef1e2b3040b923cbc8e56721797966062c1858452e7f9ecbef3d4ff24796cd9d4ec93dd2c6e593b1aed5bf76db1e629e612ad32478c178e1c21504f4637d7a5ae0c7f26ac7516f9e5782578c9eeeee0e4c21cd2da5af322d06d3c02fc6ebc2e0beae0ba91cf2d6056ecb837a39d70dba9ff763ef077e3d3d2df0bbacfb0575e8dd7a3f17d861c7dd0f86dfef25c12724012c464f8b2e89fc9dfaecc9840b21ec94cd8a7e3ac7fc52cad6a0bd4988e20418a61c78e8b2440813263a58b4a0c518aa2ba6f830858b14c438b96ad383172c55f0488ab234e703547019e2c8ab58b3b08c9f58466999cb4ff9c907d693f355fb08828519de80400e0f37288ec6d7f55b0f47c8408469091b38473de4cf9e695f0fd7bf88691f0fd7a9ae3871bda72a4a1d2e71c410f94202122e767ed87235822331e9a2c18e3607ed6bc47c85d3382f8db2726324964dfa1c1a611915394986851572b22323e1306276154ee0b7e02db0e059e4a41a2bb50af307f0e3b4e5c1336f75be6ff0fb6755cff7cf36f63bc6f7cf33fdb34cff94ea9f51fddfe1b7f80d80efd8d3687cd7f8a640f63df45dc15f50fb5156d1660278a2ef1bdf403f2fc1bfbe5f07d360fc0b172e1b0128fafe11ba96e3fb4de81a06dfe24c42637b96c043cc3c78887f00e22c9421181285ae008442a10943a12c4c210412aa100609a74d0c2752388d8433694638914c2519e15c9a4c13ca6c9a53e6135438bf84332a9c52b3cc4f38cfcca970a6996de69b59154e2b96cda983873f47f83cc48f4138e321fea2d08887f86ba1645a2879e88210c7378eb7201c81d4db220e114609f0fdf53212d7a62d8900212bf11287cc0483fd97b56e8b0b44e4b4313307cdd17c99ac19f5c0460451ec68b94204322bac11aec9e6214c83ddc979baabfa8cc7bbb1ea7c7340abd6cfaa9e97566f7c9e6b63d3fc4c019d092ae3927211f5e20b8c9750afe72c123cc598026b128222836982a519aff42faf053f4e2477be0d5f8a3fffd542b3180e1a3fe79daf830223990643bfa38297573079220101f81e292fd8e89d3f02510902b0dd783964f6f54efe01bcbcf3bfe8e7fbc020851c2f8f2e787934ca685f7b3909400011c62207acc685a66b8198232ceaa1f9188445e18e1e9a3f80d0c72c2ce18600c21851f8f303104ea91935bf3c05e1ccc2b2f935e6d308e75438cfb06c3e00423114fa30052013842a8442e1b40d9948d348386184f3c57c17e15c0a83c2098565f381e6ff84738a4f387bc2d90a6795d59c33ebe009e75538f3b02d943d440b2f88401d67a5da0c669ac234282596da5c46e233fda444932c58a9a5040e49eec84f4a34997347fec2cc5377be3727310d898dcc318c64a956b8f381de2835c927b9c31d59e9ceffdc728d35ff159be978d33155c9e28e423fb6a72c779455b19a2fa6d26dbe3773150e163a42caeeeef135ad8f94d55d7a151d8a18424e0fed7956dc103648f1c194ec57c5078ecbb479339498aed042091430d8a99105951f6ae8f2e40d1a8a6449116f09120018592573bc1a6e9eeb65ad51774696d350858973441494159b1022576bdca451f34215638ef84e114aaaf0eeea8ed2eaf2d54c96915355867c335c7e232597df47152754aaa06227cac3dc9baba25285830a15c7ad23a81c41c58ccb1b5b623215301c98c9d999814be2b51455c8c4e18188166d88909143955b1211364138d52f38582ab0283a74b2587688286347cda4c2a5cbe5af547ca0a2e4d1d0d24274bb3931e153d5c4464bcb8b9da7287860d203911995851c275368b853438c2bc95c71e415c5554dd9c14e7973c59118132883858d159735625a4822337dae247305121d1397c4831a9fa41e5cb802091f2a4a5e0ac78929f410fbe0de73ea51dfdfc5204eb010fcbbefe1df89419ce4fbf7f0a76210f9ec4cdf5f044e84c9ef44e85e04ee3bb113a17bd6b34479445f8ee089b07e79c48d5045588bb3a21ee29f25ec28bb90c74f53d58f1b3bca2a676e268a8a8a64af17ddd13ab816e321fafefe12ea9750b7bffb4bc85f7452a196144927b0e19dce54d3ec9eb37b76cf0994d634018858f92ebfe72cb2d6da39e58ef636dad152d44185956f9927334fa6c119c8c976acbd673d9315b1b3cb5934431cb3fed99c15c9a8c2ce662d8e7636d521a8200ea31d1a1815edb0d6da1dd448831d463b744cb0c4527bc589cb45e5709bc91c3399434a298e4277ca6cccb86d78077c3b11d6755da52087238425b08c7e045846df451656f6674cf3c1322ad4620923b06c8306b8c0c2b2b14c7b3540e69097be73f5cefbab3b3bbf056ef4037955776716a5106e2673d89b54196b5fb1990e21198ea228a93295a5e693b10fc76b361645d52c0f515047133b56298b318daffc3b46c0dea2a4987904c241bd150862a3e8159be1d0112545a7382351b319651267974a29f3c2da433446e9cf9cd8f1bbf05dfc983fa5555033a8d91cd9a5321bf4611c47a1a2ceb4b1929a7a5335a7cea5efb74b9f9bededee1fa33c48e99a57fd861dc24c4ba5ac3d4ae6e0a76ec5adb0e895a931b163bd947ea5f64699a650282a45a1d027fa8546d132f4cca574ead2af1dc7ad0acc2db83185cb3ff9594c36cccc77beeafdb8f3fb77d2dd524aa99492ab2107264c983061c2a4dbcbd75d035f2f1cb3998e226f9eb2a7a25a4d8ab00243113b78648a4042a48818ee38bb3d2e14c142bdc24c153e9889c26363b925656a11205d82d48561293d559971f203829292190ffc80a0248a8811fc80b0e4ea2d586b0f925710e8e3c1005f167435685f3ceb8ba66789271e9250b548140fd52450a66e8f0f50841867328ac90b6531970541065d42435752350d8945e5f197cf2af732684022a6c059f72831d1b9734e9951b4eec77986a7ee3c1a679bdb3dd7daa0f3d8069c53d7a53a2ea544dc7069132fd7f53246fc4ad4f52a6eccb432a07ae3ca9d18ac3053650499a37106812752bc40918496a918baed946bbeacf941878e073e52e28e2e32375c7e6732545c1e4288cb4f5f1518d1234498eb67c8c870fddd720f345ce64fc0944f4fc2ddbffadb31425cff9792eb5274c6bc705d56a31cf10000c458013179509ffcb0b6d7d5678530ae0b611c8ba38f2ba5ec4279c49254ca8efb259b85f21ed54e943dd42e1fce6c9ef0c375fb270a2e23a2ee7c7925ea4ef184fef90e64bd06868a23b85841b9210447fcb2ae9d00830d52e45031650a91237ecbff9a6c3e199381831d755ca695f059230d98369f07d3ac88c386e07aa017c125b61ee84508fa6f8212c8b1401ff4e3b4d93cdb27c1cf957cfe7b30ec17726d38da198e3eaccfb4e1f73ea1903b4320f4f688ae64def8be158e3c753f1c1b7ce2cc074bac620d0a65331e406fc4b315021f01fd28baf3fbbdc6951993651ac7fa7c276b3929e82cfe8c7176dda5a44a7cddcd8ade4aff7f6ff67fa9ef934c63e6667176079436edeee8739452ead5efe7b89ff134ce9da76cee06776e77965d0ca4cc11d0fdf8ea7a819461d0c10d69787b737b7b536f6e9f5dc5d7feec3eddc440cae8aba80023025e5e20651874709b861ca25f892efd8073a771a9036eff94511fe7d9b44f78305e153146841103a64a10e803037c59d0e5a07d812e315a584aa018283f165cc09d32a04b16735910045d42314e8e9b26478e68d2c2e766e9aac6955451a24401e16196f8c4d8f0adf12161ac2eb85e0ba30311746c5544c4d8d9c64c1b1b44779467d2c837b5dbe5aa5a2f405cfed7972497ff655f9ab8fc3320b65cfe222320e45cfe1d4178b9fc3c460862cee5f701e6cbe53701c9e54f81691c25c5e5b755db527cfe324663073bce2e37da8815318db3b2f16d306d4e11262f0a92083a368e7b23ee77703fe3be88e3fe39eeed8b93b0e88e2258c7aade0786b0eec19747358475b5bb27d8df8322f0d108f7471117c28e14e0649ff5f24876adca217f19fd584eee1e29f559a13cf244e0a35ae38a9dbf260a0fc081c383962c68a00323cf9c1f8c2c7143e3e4d94b972e545015a8a410b1814b961ccc300f2cc429c2050b1514978b4c08bac4019a45c224b9549554a20812236a7a98c2a26587245898c8e2868d0e1f17a826de8c284ca89c9aa4f1a264043cdc49028a19363d783cb1e30b8b22d6bcf0d483d3102756b67489e148152138f204145828910233842c83a4ce182434447898a1fe70bd03249ea64210850818255dac3cf23372043758d102133138a96a53a9132b201be32b26f3d74c6ed1014c1455744083c5a725892099e70d9e385359385167cae585082290a484280d21a748106e9450b1f26581a2e1c6102f1c81c466cd13585c88ab28475864386a0a9962054e0c33904132f38337a513c385c9f780185870b38511366ca6f8780a719cbd647dc3276912703305490d104bb498e38c45ae89a166e700a65c492a32051b2266ba9979cc4cc71833449a4859a922b582ed0a219abccca024e5f98a152e2c54214ed4e06943678d182743bc27db931ca87280228b7d2fd1e53a624790b9b74c1bd424513d4d21b28513d28a092cb633392c91b2f3fc54054a8ea7019326112c2144912f72843489e1c814764450554505493400392ac81cdde5e7c1cccc2c8d78dac4c400e5e68e33d69334ad3b5046b0aa6c19a8282a2826d455bf5241b9e0528017283b1228e08b8d6a4b1b170ae8325567b5afca94c4e4eda0c4033a58a03c9f0dd6d6f99284092d4990a892040c095b98645c49c58485eb575239b941b6bb7feda73fc3fa48f6f111bc34cebd67075808650f87c9ed5cd7d5beae7c8e6bf1186b8fb852afee7560278ef57a7bce92523acba514df379999594a29250559b26459d41dbab8dfe4d079e409f340fefc298550da3d5be441dfc5570fc9eee7ee3c16ace49eba3be71c7b3ff704ea795d177a9ef7484547acff54e8deeba62d9e40bb6b292575c175afeab128e540c9342965334d4a099352caa2590f499a8f2ee64829a5af700c4149249fbb6bc1fcf9fb3d988b3cea4bb266947d9eb89452caf649dbab4b29e5ac6946836d77776f396b62c28409139a44993061c2840913ea34079ae44c981c9103932a3e191be7e476ca75d5eb90244da5a9e4b1b839c46664227d748cbd915fbea4700b72f5811e011f553f4c9803b6a64a18a1d56a6de07dabd5015fff1eaeb3229f9ac7ca604281e0f7442a8aa96bb3cc849a194c20e40da6a6cb8923f3b3e6971934308a4a406ded982faecd2f5fe6171b4a993db1b17f1fe96531ab7ce1ce3b7d88181877d471a7b4a3acaa73ca323f304dbcb44683a94a199b3c722b87d01275bb4a9ab4baf376e96c29bcb25f77b0352bb0a3c5763dea7a0b7366a1a2d5d6f4454a0f6760909ae1689cc1c873c40c3d3c1173468c8c22863b79a2ea28a1e3649f5d894a971d5aae1ea673162d342e7f07c0663f262bba32896be3fad7115c0b82eeee4eb7eb4947fe09709fd72b38babb0876fb63b1e29329ce27633e3fc93550dae8da4c5623c94ee5b9604ae99b28b062fde734e231b16c692ac95a2fb85c510cd5c7b4f1e81a3fa5d44e91f976aaa34199c3658e39399983af7c0d58c66fd46f64435ed7dc20080b8ff355cbb5214e1ef7f20319979b2e1f2897e5204470c5170f1069827ac14a0ea5294758d184135158a15349b0d09d49028698cdca091517b4b440c3952316e302953050acd0d0c493cf694a88eeccd4199ad2918925c9edb9920acb0b4b684d86295307ce7683733275f79efcc4c7ddd573b6456c7d5b92683e2889e61cb93bfe006f8bd509e9ee6219bb38dad14aa908bab7c8d6f5fd6a17651ac39c5f79f264a6dfdd2dc23c6818ed49457036f308a6d7fd956560f3f41e5d36f84967d93d4c9b777a53763fe77993257b4f8b4de66d75e79f1f2b04593f3aeb5df467599ee77d077c3dd6731b193f583c4ca32c1126bbef4498b4eff37ee70422ccfbcef3300de6893244c7d3450050acdf9816e3bf6f9c97fb185efd8245c73d65ad015344f72fbf63f9ad8762f2d635bec9a1f942e258a938d6d71aa818ae67b98f11c23ee0befb1827f0c778d9957af55974544262a491661ee61b0d3a56d6bec510bd8965f2919ee6d59575f0ccb1bae109fdca153a0f41403f40767c7a80881092a529e986258f078c441152040a29522100411a29d2f8cdf1f89513b73947091212707e80c14891a3190020c02ce144521d20b81ccde71b5f71496cad2c8fc5ea9e7b4f1cbba74e915cf973bee1db167b035a7293b57dd1240a9678f9b05962ea0ee0f67377661b3cb7df543045a86346c0693639dc6e36666eb75972fbd5ddfde4743bc95177777783be26cee5e70a82332a4692e8b0414343101a80828b13653e60e50346747f414c79e2b231db85ee74a3e6ca901a376b7e70b02af968fbcb446085ae3ce81a73fdca83f24bebc64ecebdb9ae1383a7a336ca488c192202eaada689aa7152f3a4c38384183b1dedbcdad78c2ba9d40cb958705fbcff4a39f4fd73cac0e3b4f9d4bb4e429a2b4924ef582f2521cd4d1c3d16a26ef77d73b636683d7744b77b4692398c7052d7cd578d9b1d5ff7253434c4722043636938efd7bc821cea5e76e0bd10cbbafa16063bce1b1ea4eebbef3bf0bb8e05a330faf33d7cfee7e9fffcfc7c107f9f1772d47dd011ebdf4f45b649a2201b2cc79d57830d22801576e4efe6773fdffd9ceaefbc7b5e41e6989288055963396493397a3e470e0b2ca8a002518c1103088875e98fac1e916d92a8fb56c8492cebfe27645b0f750f86dd7f8ce476efd3fd8c2a769c656ee753801aec8b7b31d0c17a183cb1e36c9a01c5b2ba67854158a600202cebde136115acdf9529b0aceb3a4e6225b675cf485d0d962582cf8be0a387bab76fc42c58083feff33d7ede470ce2e47d106789a36c73bbf7c41e3e6fc520ddbf84640eefbb22d702f45a805e2fe42192a8bb1d8d3c96bb1a6cbdd29f01b34b0e76a2d8e2a87fa2be22bcee596c56eeee6eb2b2e756a739e794b673dd9dedf6d7f5d9dddd2c2bc337b9dd73ca793f3233decf755d57b97f9ffb92a88d9def5e3deab19cf5f50732c86acd8e7b759c7fb77abc87f5b17a5e12cd4f0b338b1af028c58eb93be54b69dcd8e5c4cb85f7ebc0198eb952cc9d776a470f693043005cf1ce3b672cb321a3942be29807f5b1bfbb78c32befcc868c765ff9300ff84a518ab932cc9557837094aceb755cb3bbc7aa71690040ac2cd059a04fedd0e06b819416f590f48e79f8d92a7f86cc3aa5bbbbbb3b756f7777afb7ddc10c7ca84deeee522a031ea494524e4f4a29e59cd980c245eeee9fd7330ab93d68b02ccd282828280fe2d3f2c09d7659a24bbef464a97ba97b895b72ce1dcb9325a75d96e8922f3d596a294d6ea75c573dd607b67a7cac97e5e9e907ac3f3247170505d5d40728880ba282bc1a326d362313a9256526b56613cbf86753908b0261d9cde50274a64d26b247fb6232a1dac5f10555c3171286063ba6c464d921c5a8841160802fb067453384925092680a14d86ad50a0a7dad576529df9ef76c03e97c56e27c60d66891c65b4a13662a0dd4104eac2bfb7325559a252f4e1a244ba4814187342c54e0b4a55a09d054d17ac125ea85460e900b2e5730d028f1e3eaf2020d1930688b920b343f58a02d502e284058ce8080258d4593c4c76eb902420303e8d385e9070bdbf3a5c982e06b5d99e3e3040842cde951d3faa09a5a605eb0bc4c81593e2f4b9b4f4aab5e51622971c4d581e0c5ab75a64491ca81b656aba54d9dcd6a163f1447d16c56f4d443520a2d5049a07965694a020a66e52a092712fcd094840740f8e156edeb6950f17989b224e9487513a5480f94282f805440d9c28b020b70853b750b94283e1b943815384d0f9436bc6ddce9793f57822961bc7ef8d5735dac4ea977e74cf32aab87aeb1d6d6a66e24a02a55a222f1d4169f2b9bb4858f0f9157b62932b77b671a06b59b737d469d5242226a76c9c1ce1c6f249c1cf1c64aab2d4da64061031053dc8e6a13dda24a0bf64047860a8eb872d9e582428411eb0241979b3162cee57797cb992747478717ea6ceada4b6c7add39a5dfea42f099232eabb96cc493cbd6e5fa401c3436e0695383154a3090c6c99a28e49851a285bba085111cd010490382237f9a4d3d34ed9c54805803268f75b9cbe99ec912037445b1c2549fd9edfe220ddc5dd2a608f38083752f2ff742ae7b576ddc7e1bf352efdfd1af007efa1bbc845e2da03146fd3bfa67fd4572be79a56c9165a3ac6f8b287c3236d6aa6efd4fdad81d3954637858560b4083e50a4083a554a9e9ad1fcbc334a6318469f439a6d8ed454113dbb70645a32a59a63bd2680ac2c10689f55f3d54bfc61a1b94047403ba01dd806e1858b163edcdad1f8be1615aadbd61dacfd7af4175ada6d443f56bad414129750de8eb4bd97aaff688e3cbd6946ef5fe2794b1ccfb2abd070a6b0f7945d7f37ed635eebdff0e60b334986237a6d9b8f563574c63175f9f4652d75c5f9b683cd180ba15e8471a4ab77e8d2c2cd0bb7ea4dd3ae8b92d31769344f5839cd82091034e3fcf81a00772fd0c7aa0ef1124c27a804458eb815e1efd883d5c88b09e5adf25c25aa208dd0371cf8120ae060e9676ebfab524a6f15b71acd58eb4db8e1eaa1f14d6c720899d0f0ba17ba027a123817b8f87ec214f1c81704b16c80674eba10a64fb58600168b0dd953498d851c8fd7e04ba7d3f5b0ce0a3d8ad87ead36062bf1f63b7181e4954df6b79626c89fdd8cd837e0f040f84d67b1fbb6259fd9e30868765dfe2e8892d11f6016d11f68107f3faaf111b718d2b967f8cdd6e0923b441c10582e7bd6c8122d0d535e2aef5abeab342203c2c03bab1acfe18a09b73d00f338165f5e5fd31d2b0754dc80a69aa98f28120969e8872549f0652d72412529e3cd144cd91254270543f76ab1fbbaa34d8be52a6e1ae277a62052a90ad0fe8f5de8bdd6eecc6b458154fa855012df17dcc499659fedb949999d9bbe7145fcc1cfda696ddbd9965e7a3a5ebbae63aa7de5336fb29bb5d526feadd714db9aecf752f997db1bcb6dd5fd755ff4e7add4ba2094e7de3e4e86b80a33f397ae7b4ee2e82dddd3c6bb2dddd5d6b0bb90152482c93d75926dbe0c7fa506f96478d9a861cf79c28be66b209be9b4f72c89f666ba256b89c6845962b65c604a16c71e0f3f568c6ff1de7530d06f435385b1d047d27c2c2204e1bcca7e730c83ce27fbd117f5563607c3fcfb16a2496f7fd856923d761891cf065491085c4bf9798a989693ee589692fae7f677973fd1baaa3581e37b28f5c756f3e7d605a0767d6e1217f0962709ec775aa0422159be6895e39c6c3348e7bf73c71e49e6f2ce39e13190fcb64de43b80ed37caee371ae91fcc5b1c61047fb12885c871986ffd74664232171ae9358e66d84658dc475b866f1f07bb52c11cae793243aaa51851d1be93652d76672c8bf56cb501cc55f1ac9c58f0cf52f5b21fcf33cfa5ae187dfcbe8e0fbd61bb10ca1ff26f8a1d0918c173f9f640e6e02fd8bd002d34518148e40ba4b1f4874dbb569450ef9737985b99388ebeef34912b951d72840e58a151627461089e12801485851c495922a90bc1cf9cf8a66841384134a6a96f197e12f14f6b440ff7e6383f03b3d31809f031b80bd0bf30826c2e451ed21ffc1e23fa1bcf9c4b51fdb94a2507c968962ca1d679aeb555e47f34fcaebba5a5fafa7eebef3eec7d72c12bda3cf85951381d04bdf886b4fc160d8143cf5c9d8d8b22575bee2ab59675ab1ac7d9430adbea83cee40824c1fee28af984778d537e107ad62f7836954e4afd73f023f98e66273f7f50ff89ee0e20f96b5b46ad3b73f0226fc78853592589807fe52603df85d84f1f05e0aac870febe575117685dcb1e8b28d916e57df046db0acbf2dae05e69d374954c452a3966a6299bcf38e45b7e7ed36f5aaae86482a28a6a415438961dec0db121deec8484af0dc9191dcee238ed2de467de1f6983b7670da67b638985bb8db609acf75f0f64f9901094aaec81bf292a0248b2492776c7ebf7ebf6b1b64b1ec85952f78004821c2f6012256705a4186151c23776eb8ed10e6a87df038a18a3253840c4d473d35831556eedc5ca85a73c46f03c32de79c73b6646766232ce366a524a6a42426c9cd4c532a71cd32b19211a64dcf72e77ccfc24a72687eadaff9662639933779922b7994d427631fcb21a26c36db0a509e48737b028b3b9b9e7873c79945c61d27d49462e739e777c077b2ccc690a40d40cafaff5fafa7da2f90d89792dbc6ebc5c347d7fca8df844f415259ddaea47a6285db0fe406dd7ea3ae0939eaa3d9f2e7b06f9aa91b35d8f9336966e05c9b43e49959c3ac1dcda17e160b0828460c51aca00219356f7457cb3216d262b965754e4fe9b3807c7edb959cedca10269fafbc5251376ab0fcd33633e89ff26b40ce4c1666cd8239349fc502028a1143142ba8c0020b66d11d6777366fcc97293c12769c36abc5ca1fa7cd724dc643fcb30811626eb34874c99a2080153bb9b9659c638724e25a6b778b2e76331ce5e8d31b242ea635ad4d2a56a12a76baa863e7cb1633cf602bab5a2d01a309526715e685c4594d716143a2564aae106e78722b2241212c41b5379363e755436802c502a1a85858a12ba97ad82256bb92ca8909bf414bcb9d093b7a919c33d7c3eb0ec70a2acec08085d210718ec6990ba7255a8863c4cd12d2f315315d92e8c1b23993696632964d1c453bc418cbe6b36cda90445a6cc81cec534ed30c2ee7f421d7a594f4e5835f58c64678c85f32120d1158774f7225b7399233f512dddd4cd8e93ea766452fe35066b3a390509298cfe91b71379d2ebbfa2ecbdcd78e73d7cd8e422d776bbd864f5270450a428e3c180b39f2c269eba1fea32dc0ffdea907ebbdf7bc07bf87f7a018c4893f480fef3f31886479ef89534e153a3b306921059bed68f6f2c82903aceb8f827cdbda80820fd851de52e89a0f0aeec83a3e605d73d763ca8694820a1f744f3914642747a081c48af389894e29f271a29d98b3aaeaf23b5725ba2e7627c8510607133830114513452eff37c1c3e5973521e7f2cfaa7c28e2625d130e1d1c6abe8ecfe2cca0f5fcfc852880f70778bd9f210ae03da17e07e4ce97ac9981fb18c047741e921cf4952cabe20ff076ef5e8361fba229b769d5952cb12b595a00dd53b6c279fdcaefc0afacf3c69c0fca7074ddb1fe0ff0b6c4d16feb67404c10611fc879632ce1caaff3468f2bffc7953faa7065fd0acc59ebb74414c03b02b93f40bea1bc35d4d8f9acf736f8be5b1fc807c1d0ba5e5e28d485b1566341093ee52ba7aa1a9ffa7941d50556db55d0552d9c352eca036a8a8333848ff3e83245b7b4551db77078e8611e5c6c0d67a9357978b131151c23168cbd056ba55d4935658728b0e9ff488c5aa1a07ae1068feccdd21b2b3e8bbb1b1cd7cce527dc445ddee2c5cc803d48bbf7f2a5d7f91831c5acff6a3f37a5ccf3bace6385f37ee194b24a6fddc0ec6189521255af13855e3d5558b03ecb396385143eafc061fa5c4945e5c5034c720081d4531355a811010d5f7450c28248962b5f18a816c029a8195c9eb781939d2c4daeb468610bb3e5098b1b124cb6a82d56f403316acf9554544e42ba4c51c4173463a492ee1c319b256be03879c2871eba305ba8f815f08eadcc0b774630850b9b0d5ca8218936b7344976b8dae24397790287ae49bc0e9e4061c5135a60b90347881523a690c18629827853e60313440d8f0a0a8c7a6b7973aa670388ab158a68e1346508323254d1040915163b447128a67e18c137b5050900550057525dc942b544e50690c1ce975098368e8ec4932e2731125612d377b6406831f346f79ec4340ed6ce9465792c8cbe90abe3327312cbf865f655999a92949cc98a189d73c69840c6178682c2442badc0bcddd3b0a188dd6463199e1b0544904c1b0543ecc8b7a09fae9f12fcfc6ec3b4178c173fbfad98e6e2674319bba9c6553d9ff3f4ad87d0ec77ac9f5352f68b5296db4b9452aa3415a3e7d655de08845e2fe42bc653ff65cb83fa27782f6506dfba36e3a7d7f21b15cb37a6d984beca6a0eac86b0fa40ef372884d50f7a796d08936f5f5e580883fdf7f2c60861b0077fde4f28e4332c9b8c87af380fd3b84732c2344ee432224b0971000b85aa90108c1525874908566badf58d58c80a3bf2d4c8523342ae4af3534c6bd3c3f5f4c4e889c109891cb0de1379ce163bfaedbffecf9fddb1f4bb87859c4441150bd5359e9a9acf25ddb8d69a1ac23419e56eeec87992e2e4b96323c52973c746d24acdd450b8ea05a25ea884ac58ab6a122a63030000001000a315002020100a06042271383020688a1a7e14800d70a4426e52184a846112e328888120838c018000000031861065a02a55011aaea9139f18c14431b5879a7208639e839876bc413155d648027171882c6daa0700673d10182671ce386748034d79c17575fa057f638e09d1d2bad903d0c223dea5877019528f998209212904e3c223644328314a92e6e0da9878a6a08fc0ead4b2605c90b03f055e9aab95e0c42ee007afdc5b13e6ed3c8f669d623dedb11b9fed780b56deca2cf4cec9782cccd86de834828cd8ab9818099c45b0c4a9b22ae2d10683932e470ad2bacf7c26896441ce93ab1add2f040cce4a81c8673715da58d7228347646060203e48d78289160760e69e49526edcdd56b934b83323c43050bf3b956ab7c36fd5ebd15fb095be8a5a4470fb0896f4d2535f358b6eb977d022f52a528cc5be2c2df45e0498121646a60936a1e1a24cd48f60252c2f989495d39518b559d6bf2c74f698b90a4f337e214053c6e4e041241b21f9959a647ed78bd6b7742b6b544da20d6d0f80803e6b403b234673153bcd0361dce4122136a89a901ea72ce4b015491e2297ca66b39cf99768a27c69b8810312fb92031fe0441b89f0ccbcce6d97b4bfc8052659a0c1926ae557034a3a341a028e3e86e05f92899d5b779743d2286be51f2499eb7a23feaea91bcd07ec051e4db5f69bae203e6f278e08a0488335baa188f6122622e16b7623b4dace2016478048f8d78af0f75489b904e7ba594f23b0a0b36be80ef6eb20ee9455ce082d229cd59abfc8c224f463c2a12edaaf2f875b1f216857b60da3614fcf8aa34cca543df756842a1be1f6fdda9ec3046ad0831465f774b53a7d6aaee916256f65367e5bd37abccae5fd4943496893f6dd2730257640e48343b25a0f1214ff2178004cb3124e420c970177637b246bf65de47a62d3ba61d168017fecab1686ac16a8abc2dc454a7292284818c8ea1d4c46c5b21b8da819bfcd18b11c57f7f051d763945a0e24cead3580d02a7c47d6d44be50e630a6ce6ef4fbdbf6a3d5a1e887c3a9dec96c6576aa4bbc709ded331c83dc1bfb96c6fe161540a94fdccfb567af3a4ff0ad358744ef24d9d93bc01e72927d0b93587f9abc9861678a76073b085c0a54debd512b5d2779856838bb2b2779cc5ab1980541a2806eca3ec5092b03e00deb7bf8f0885396c72e7203679c64a6c82674e3260c7b071b17597f56d8b6b4a7310089979146bda34ee7251b0b54e6f34f0e2c99ca506cdd57da99c0df6200d48433a2d10f9a96bc24312fbe11cd88bd080878a3e31e98d279d607fed02b8053accbe565c1b8dd755c3212c2bd5e8cc9c6195a560b5e5ccb8c4d0aa6930a32008c65092965c70748e792083e44ea6e1d866c8330c4eed61292cf9705b4dc9a2334ea07fbb39c15402edfe6841190b5436a0640e2648c33eca640659f264dbfd1a3a447128e4e5e852960c058f90a3bea23ff4bed44e50a753521e254b2025ddc877bd6c4a3601d399d850b965d15a4ccfacdab1131b04efb86914a3cf37a25a9a255d0ee3014c0a7df62ecd0253b4d08fa1564a681fbf10d5601046fec298866d84a28c440e605aa1a2511ca2ebe047abef336f7e82a5ee495a83c6a1886f575a68370e4d5585615e3240a29c22d262a68b8d039988727f433286906c3dcb4213d93189c24b9d3dc80196afd8191c8d90b42ed3ae25e70eb4e218139f222006c4d036582b1eb874f4fe80c253abf1521491497851d6691cfd25cdaa1103a19ae31a6115f5ef192d9fa91d4014b9a823c14bfa22b360d61ddc96add918281d3d5a9b3179dc87defc66dabedc10750d9998e23c5bd93c36dbbbc4f22e19cae50de86a00fb2243e0ab4f56dd305822bb0043eff757bedd3ac9ec62b5d2b16c73aa657a6462142b823327a06f2735e95cd132f4e2a14154cb21fc1303b96df5d8dea5aecfce6bbb2c53ac1471c1e4f0273f75967c7a11a0ca2dd1573e740478590448211a905d0cdcb6f64cd0e88c6868918eb79d66f4b8effa65923f92a333bbc33349c44f888742b3e618ffadb139a6d745856e8b127b5802ca97ffe2744828fe9f50052c73a0b9864e6379b8188b6ec19ddc1f9bb6a9d310df0bca046eea520430d24ad08e7934dd771cc9243ad7d3c1a0d792907490f4d9e38c85c37dd8b479968355b8929c6c12cf4bf7d9c21db1c9ffc4eb7d81cdea98b8b2759440dc56b614f879c1ca85e364649d32616ffd3621f56649f4e68fb2486989207d02b22db25970ecc4782effb00cf0284c1eeda9eb582bb6bf97a0529b63a08259b9b443f17f8299fa7fa7874997434d3101c8d5b50fe14f35f72f23a7c4443cf3e69081a9da0232216f97432a788e4dc305c28b7cb32de5b1b98f7aa392baccce8733558877d03ab891f266a2f4958052de0cfa67fc1a89c081b8f00939f3ab98911e0bdaf1f8b23b74af26ac4f4b8a1b13d6166848a81b5dd53e221e1a7316165dfe6ba4536e4c85581207362bc35ede8d8f745a780e0f0dd857a03c92fd1e0aef711438f672343da18281b09ec39bad10e29bb11c9ca7bbd0a7dab2eb3b95a53ed7f6020230993463eae20030681ab9d0cfee9b9714b6c46e66b4e7d5913d8df80f52aa1ae81874c34428cbca377bccee4fd439b6bfdd2862925e9243018474bdb7e0a9352f5b9dd37b0b8c4bf3c0a5cea177ebb752306d9b28a6e1c1c8fdc8be0f8f40eb6e894983444c9115c494d93c4c00a994cb56c25105cf7f234c6eefc6b66a1be4b64b8ab054a8faa9edb6b945ea2fa76dfef70abc016b36c16faeacdc81a9badf28131c4f78a5864679c83f312a4d209b7db8d14af2ce6b683914b736d637c984c84025cc7d15df4cc61ae9cf925ebcd974a8515878633c690b8547299d4798ff92f694c29f4eb75e60c822a3f25252a9f3eb13b2e6dbe8695d725ad579f0afd7279c6c2d1fd0742414fba2fc296e7fb3525ea9590ee1e00d6bb7741d8175402f3128a4ed05977e17d9810d79a990ad1a253082479252359494e6c59dfffe439ed052f333599beac2591ea681b66e9fba9334d580f993de359b15d4caec9752e69b003c80fdae18ef7570cd50165bc046242073844bb2f1ee5e39f5de9f021bfbabe87f20175deb9cf5c412122d3ebd2f4bfa9381e3dc4590c5c514f327cd90281f449e78dedc6a66be8bb4f1cdab0434beda2911c7ed8ddd7c9baa7c41e709d4d0980fde8efa6adca6d23c32176b33945fee1d6d23daf548e34d58df99a0bb995a719f262be8d5ff3c901240706694867e12bf0773f633e55f68a872856085b522b8c27a55a5514f09bafc5b0482f4917c93cff4c93fe6e8924415994339e4e5d9960fbe8458b7684770c0889be94e6b936bdffdba577ae22d907f3d9704159acf162755317ad538231544a7a6f0b90adc8c0d8d3f8ca28de6c5b01e14cc468cadb0c68d8f3797a765e858ec99640a6f8ba2a200760a7d422a97a78ac9d7d22746964f180179ada5f7632e4ec1dc740d6194865cc2b9b54057e5c5ec6fa066e7a588db99b45d3853660b876fb86c9954fa910c8c6769383141974b25c9909fb454643f51a30de24f489080b00df70ce1ec3d96161e080256b44827b35933c2f6f1053ab9ac37bcf08947bc732c626c007e84c0d409392d44045934eb03deb21101c00b4dad4f98ccbe8a311094f5a1446e58031d68277964c4d843d4cc46179b90f092ec17585bd4bffa8a1ef30e23e3ba018d1a143df75112334bf37512c7dd7e4c91cba6b0acb0e32dc43ca30feffa25c1ef4c64782f938d694d018535ac5314a66c07fbc1019203248a9ad8035b799a615d11abde167d83d9abae841c1cd54df38728ce8eacc295069115b6882dfffff0864e61372489e1987440d68c87539310c5ac53824c06aa8d8e985e12db4fe3a3f42dc900e1f840a65608c83c86e9049ed0afa4230d46c3ff22b8c96fec00b02b128d191b5194679b832ed19ac80c17324eb22a62f6354cfb62e914611aed7a0b5bcc38c94580e45a4dc3b14659a47abb4bced7326ccaebc957e0f4c529f78d40050c177eb54d10511c875c19c4f99c8923233609586bcb8582ef789583f8f19c84f3b535f82f53d9c0f26967541614a70d846b2298c420360438bbbe346e9eb267f54c5201d6910bd8b1861f84480590234fe0986de19b0968a3a8928c70e06d8acf43d4197f6d85884bc1d12b2101ef0e0f0911e11e6023c9e14091505708aa129e37145a27b508bcc72d1db7a7d4e123ff2bff4e11af751bd55281b8588139fee78b1721e2d906dd04de29c801c3bd17aed95295d1d210ca5aa0fbb505e8d820f116618a0fc0d62aa3cca5add61a175b720a217d8d1bcecc64ca3653099e99f23c6d23d853bcb8840ccd6edba7408019bbd6fad65fd46cbfba89f9f7c2b8fcf63005e57049dfd04f16b64a2453b149aedb634fe346841a67dda8e2f5658651aef484c513cb22b4e838700856de2919c11e79547e91005e4d164e3cb9e4570eaef993d6c4d70fafac81ac2d8ab7862a8d590e46a4256e6306b4b9644d2070c7ae2a1505ea1688b69a90701efc6e10d02c4bbe0d69a334caef8dc3756280cc7670d75ecfe955dd30ac2c087169edaf7b05e5ffbea67bf04828d4f28d86106f297fb1f18ce79eef6b4a47d4b37572ffb766bba61db5ca7d87fe68a2f20896e8578682397eb4ec09532ab5b8b3c1cbd0e84faa6c0cae7232abb0539c9f008225655f1f9df70c5abfecb683fa6f90ba883c92dd26906a32396916d8abeb4ef0ec95108149b433f696a42e0bb5f7644b109dd4d9a2441cda7b9c7dd8fda46d389d7b96902b6249927f9be68e61ab67b66ee3634096fc0d19e24c7fe70a54133e35205517d751b3d38ca0bc33a99824bab06496b7d3c8486ae4d184696b132adf1f2c155dd6f55c4f9ad482f8802af94a0b491db857f256b44d6855833e857a690c89e960e288e8eb1261c2d41049adbc0e2428b9f2f573a3616fe151a3f06cdd372ff0d072b04cc2c7b0882ed17bc07063fabccbfc215e6683c2693fac208d43b3eec27c1677f4394b4cdc739a7f8b7a1d968cdb4b3136edbe24ac7ab0fe2d3d183ab8459f14883086554f26e326ae092cb255208846a0a401d8fcd4238a26e1b138a6086714062269c2af1e54dca3a57da6de677a0ee7574f0539cfa2e613c540546ebacd99d67acd43559d704e9b02e21e793a6bf60b9c0adbc212134fb3e10ed775ebb0916f5a870f02563104e4cfcf165286a121a132f5d0025780a99251c0d3a0f773cfb796a3c01ac223e690e5bf90704489323d95fc94d20ee865d095a7aa28c586bf9eb2938f4acdfad185cbbeddffee05a870201e3b94d08cd9d6ce8dad293082473472a7a1369b909640ed479585284338f6d9a48e24f8fb4f259611445642d15ae3dfa09086f49692a10145244128b3627fd729f388a0f28f70c3f4e888c014bbef8ae640d9e88046b4abef7fffa9eaeff2baff4eea01e156ae1b43c5a795ef2396df1bfd95a8213b175669c36e5b79823b9f5ff3851c4872805fcc623900bbc85f76275323645c3829072b263ceaa15ed895791f7f5d6cd98c2459747d72e792ea35121f8cb08165168211c5dc77d8f965cbbffe700401cdfc17b2da115add61cad84ea740b1d8f0c79f561516524a284ef21e898dbdcc4cb36ede8b00b91db4f9bc58a45d3b1f3005c7a3801ff17eee6eda3455627c6ac5d22e8721915dd561e7c8e520aa0f39c9643ddc3e999dae7a8850e4ee82d47aea94b31937a14a15faa822264e6588072f720b37b72ecca25a21ee62cc891b72a37de27af8041495df41d0f4028d20be2825b7615fc2ff953688a1c48bf827a18ea93495e96ede964475b008265edd5e4854675907c497f71088e084bd078dc48fe0e3bc4aa3d9abe3ebb369958be522cc39e72d4b1da017f5c065048229a1f107eec91540412ae0c12222382c964c66f4a3e9d6280d6184529af781cf79574f6b1c0b981e50cb07dde8e962fff435eff033ea8598a09f8f67efec3f30658619432f7ee1077ef0647cb44e7fd7b4289130661473e3eb1c5bd478c4f67213f89c0e7a83295339e9c01647fbff1de41f6c1f98b144686d305bfdef748fa0c2a1d544cef0d215ceeff93e556ea9892e446b32b913fe9665c2513340bedd95a95ca3774565927f97a1712e897cb71839f09d1431e58325df7bc0fa1f9382a03737cd445ab816b384d53f622e67e09bb4470d5b4700eb6a4f0515c422b9a473218ad4e8cc9429a7ad0f5e6965e0f54be57fa692f4332f365d974a6585c1bea914da8041c93c4650d6dd7d18b96c9de1d4fed4a13065fb705fa2d3193fe881a41a5d021d52f69bc55986698078e807afa275fef349a24e0f10a8939d9a404d0b536d4392a83ea3b5e59f480abada74352d263dc20eb5ac9a01fbf9312ccd445948200f39daa9107fafd00ec94a92dc798e9ee90edd0e83643068a54bf69bc41b6ac472f0329601f7d3069eb14504318c5042c0f1ace1137b4640903ab5dcd5e76cb1c70f3f93b8626c7106606b45a40f795889d11675f70c48a1d3753cbd89d6211c80c02c4faf1d74fc25f7be5ab6c18f6528ef4fb79dd3e4c81ba8b6cf233ad67f63b0e938c7ab72892d74eecb842a0deb15c47acbae54996ab826a5aa0876e8dd0f73d96e5feef4869d702713078509b266a06414acda9559e9a016b10b2c745f871c5bb5108bc41c8cc1605b25c0388f0963362874ee8df6895b6a2e50ba25d3be08a9d58241f9085bf91d33172891d54966ae7d09948608e5e251132ec43339b387a49ae1bfec5eb2c64af1886d20ec9b2d69d79614e73fa2e6bea4425f6b4bded457945b26b4803758fa544c3e1c3f4761a183c5728559993e9d09649c1790be2a3073e9fea7a9659da6f6dfe11a4cf54998cf61d3b3c07a35847c6daa0c1d5cbea46b21781547b8d1ebb4af09ef939f2f5498ad53a880aa2ef83e09adae32c21dc985747b682250037965ae7a28c6c96c07cb7c528e2a93c1c053287c345e66e34812aefcb405aa17129b82dd04fc56ee36edd2d21fcfa1acaa9737f5c3db4f9c5be2034342090d1bedaa90d6433439435db14d63c84ad823d8259f9f700578b9295055ff4629b0cedb278f8bea9e3b0fc271effa4fe40a382825752904ef77d20df20578797f7f3a4e4902f5ce89885e151d80852cb820b218ac7ca9ac50681af09950fbfb9da3b51a5a2d7e47259c16f161d528f3c2a39ca6517734d565d708e62605d2edc73f2ab8703add81d8e3b386460d93356762fbf8442ebf04eaea95a30e4cb4e4173f7c996c71672cd4d51e6c82a141ab456328c47defe51bcd17603cccb7b0fd84085406c66a982d78387f772c5d984aeaf80c2e39eb85546ad725fb5954c1ab6fa426347e5c23e63358ec5a984fef4f25714a7da8dc592e02805aa00b7a078354246ae332fc8931b2648279ccc19ecbeaefb257c2ca803a88960dd4aad3375fc8f03ae9632d646bec2a7f8193d22963ec39095a365e442ea1758924fc65dca842304aa9b865d1eefc47847c4446c6a4496cf0237c8f32eb420beefb2442225cb4d0bbea8360157a87f34c321a52d59a170904748f631da52a972b3fccf3df47b5f9d2437625a79c65875d0b55d1299e36d85b49409120196bc5fb544e7a776d142587a626d2360095d2a9a87abc33a63b735de31580012ea8b66e542bb57b533fb5928727f5237161c3e6fcf407be88687607f55e535d4cf1a0c2a7b57964c6cab127054c294d96da71e4688bb14e2eefba0dccff46e1db580d8ef12cacbb66fb528f945182322f0b6405dd0100aef3946fc2e4c0a7358792e31d8f653273b21a64e85a1ff36792f1edb31026317733c994700702e34b8acfe156fd4b9a737d3521fb2f12a364b4294c053eee40716364f4fc5be3f7e731956f9ab8a69f7ebd6f0a9cfda6224bdc5dcee51b95ac1a5b2a9effb6dbaa603c09208bccdc81d6921b2faf06a4db26752e48c06830cf80449453aca09c10dc3885eb1086a40d4932a8635d40397ec9a70660b38356b624d4388247ba8605d927b5aa80c9f2894b021778050e41359106081c78e0025eea2afc8e463b6d466eb0eb66c65a00ac9812efd7b0e2942b642de547e811b7235d6a81924aefc622b34470642b8d1dd51990288429f72362e57607abc6be651da5d3c846571a7d1f2a9c9dc604210b92662d89462b16726c0e3092dda9a554693be4e069b6bbff03039ae6144aa6229e7d2d2d26f978f81db6ba15700d386c58bea5f4c15e188ce3cd6408c03f9d43263ef9d5d015d2260044488651c0563188bbfdad51e6a55aec0b2a8ed0b1efb53e6c5915bc2f7a69590741afc5fff6625bc1cdd07fc4c7d92bd3d60ef33de2c4dedcfa270746854615067e22e596d24b994f38d70c9c1f9505cc999af39876084a6d0dcfee658ac7e103c5619fddeedf324a955b9f4922937ee02bd31f7f7b8ac63d2c1807ea3d4113c7231401526e25e3807c83bacc72c7433c220a10b9a25639d8cf499ba7b6804e5c4bd5635c97dbb4880faa473cb8baaae20e1cd6ebbc0d03aeade785478854ab54f2fdb26a858506efaaa92f8317aee23386fecd452a15333603611ebece007a82dd5515229a8946b2d294b25e7104efd43c0b6ca231a8db16e82578680756612fd467f5721cf7098fc2d5ed1d81a2d74e1ce580c11f7e529db7f41ec031b11f1374266065f6c1294dac8c36da8ce5402ace42c6750b181737b323e9c8a9e7654a505b0d415d54347721c492bc43443ef002137a6d0fb57aefe581dd661e5aaf2bce3c0f2deac0a59a870688dbb72b058e37a0afd731e29543c720ed1dbd9b6773c0083be834f38e811dd17d0181fb8badff7cc39af7501bb5c1462509a799d4628e0d57f3a2dadef908d3ef665cf600bd15e3cbb2bee3e3dfb46b7888e45ea33762043fb4288260e920e3db83423a714d5746d8cde789d5e86486eea4fe718ca37b365e1b8c3d2fde1ddbd1b0a10d9a0641a53748b1983945db06c21bd5e9569c9f5015337cf0f323b0d4a22f2eedd5844224b106ea3acc0b5b96731f2c4a9573b2b9f06b9cb28b922cbf0379b94656cd15716536c13a5262f6af508b4f989ac544173166ac158c6004d869ee239339d0d7e236643a636442d26d8a34e601cb4385cf075bfd95cb6bcd0468ffb6a926a6d99f7fa09e96712259cb885b7bd48b68b7c2e87dca831de7295626ba14b5cb2f30e672b5a5ec82b4a0bc6b3a782148bfd2783b357b418309c1692b25d82b6298bd9480e586ee316c1bb07c9ac1a400e460f5f50c178a3b38312d74641758066de25548c28aa8ebe396f2960ff2ee5a1e94f697aaed301fda2be780cc2db3104bf9e52588a4d39e49d3fc8a86fa88793c304346d77f59c91e9db338d07e68bb465dd6e03d12cff1807344f149de6c621169faa7237ad5741d34c6d395d326384abe8e5344fb84d5b7310ef29224ed63819539740eb98e8613935d85a45f6f2a167a5bfacb5d8e1c531226343350679bbff87f3aff33d0c69cd8ee8f51f3e013e4d5a52bbe0e67b4771d18d374603e71f3134073179389c0dabcab1bc1d2898d11ec5a8201823000ec67ad727a87b0cfc323fcc6c87e98fe625769637ba7b8613224294e7774e7c27c77211517fb1d44fc32035a2e337d3103472b284ad5ae73fa3b9eaf482e4731d42a5b7bfbad087d3d8e8081d166b6f45243c15f4cbab60aeee501b2021d4fe01a47b49fa068dd1dfbcf0516ef714c74eb636d42a0c72bd87dc62b0745f94098b3d2882ae35e228c4cd32854a86f1add06d13704a217a7458ba0a5bfa8f5cd87e21b0b6bbeac425b23b11f721df12d61463c23c52b0f4abc650d74d71f4f0c50f55c30062bd66c869439c037f06d5798866ce285b832ff6b801387b2d488482f1c166ba2fe3d4b4ab53422f3c400c22923d89058091cd6dbe9a696cf581cb6b77cc54673300044e002d71b9b7425281439a1cfdf0b0d52111ae4e56ceaf8838de25b826846a327e6a90ba3856f3de68979261182f81808576a6f1f36356816c18073c4edc416c016583d1ce4473cfbc9d18df4ed592e00d314187f8139ad6946cf51173cca5f6ac8e60d15c772b71f5a6f10c4132c9549c4ab1a4d1fe3d33ffb8f753e7e9124d5738be00fd07e68d0f77f910c1589259cd5d38c754f56eb0774acb23e5babd2c9269d48a793fd373f734123637954c3b1da203582c5e3c9090af1efcfa178d3151e4807200c55d7739c5f5ee2d38736cf88bcaaa1db34a08de637721fc540c46ea1cf79e7471c72046154ef220f86409fdef05db47545300aaf5861f40479ab149c1257d1fee64e14437ff778275d602728fbfc12dedb3090c7c5d39a88b24a4e5edfa00fc0d82abec05a09be0391057eee835c0c02b109e9aac9fce181d972353a46d79e82dc830262104723863876f941e3706a7e26fbf391f41ea09ef7b36d4a5a041462a3eff8bd40192830f4a073e1a9825a2c35b004b44b946d40e844a073faa06bdb3c3ca0c8162e3fffd4d7eafa22418a41142fe96a0c7e42f83f591baa6f24879d7a4ebe6955430707ee2045ba4b60e51ce5d3877c970d64580b75cab3bd00db50586246ed2b13ef627a970ba89753b224de0aab7141a9ee833f2d3c8a2c5645fa538150946f35c021de8add84b78e3577e37e8df1a9e1cce64e072501da21ca2467702e7f9f7538afa86dbbdcdb406faab59861e3f4b1f23f851bebfaa8da892a47df15b76a9ed0c4f692cddc95d5de3c6444161608964f0eef9ce657cd909bf661873de59a8cbf20ee84b4834cde6b9d4c7e191affcecd74c25c8c7aa48bc3eca17b80a7c3d95ee80f1fcca20b05d3669bd4d2851f176d353dfd7e483cbd5cd7e62a2a83b5c64226ec0e312acb7d558994b3321bbc221bfe5f4f1f79e94a2362f60004bdbfc7674ba097d43541a4aaa4cb8c846730c0348e0e8d87d05c254c173d0c17d385aeeb999745afd354ce6ff25921521c6c3f4c88abddd5ba2f0552bac3ecbb7e837bee2013d3b5a4cbf5c803e1bb9fc11dca5c8d41e6caf914bce4e07a833e25c4e8f9efc15564bdfb98893ccb75b257fe1873af562a4fdf4a9bbc1b4e415f4c446742195a2f1145be8a856989a8b77ddcfda63020fa6dd1dbd29d4a97c8dace5f052043023a53f37662b84fcd193a3289db8969c408e47405c37c18ff7ae3cdf2a4f670812af696f67931d511a0cff936e8254f20bf38490e9ac9ae895efd57ea02472379a6f477b5da7c988149450fd006ec1d852d84c504d4f505b475b8c4951e4941269095ad3f0ad57b3e2e0f92b9f42d1e83314acc787e66cb473d1fe371a311775baf5e13b05d1f3e1d711b3d102ef4c0829489581b418962f688f54d020a60aca385e2d0f1164bed86b8d2d8294682a78f20be65f8ed9eb4225013eae1d15620a29d7bcafd75e8dbde3a7e1be5da578edf431df6d5edf768c7de72ff1afab6bf6ebf46b9f790f3f750977d75baafd3687414244cf623c374d1ff0a0d296dd526507c41d242bed47c23c936f302a88c2fb0a283399c709cadcfd4362c90c464e9b18038b974295c4e98180b0913181726e9d3a9de530ecc81e03c37fca64f85f17a844abfb426f46ff45c89de2b79963fd15af6e0deca099f7eb6c22aba92c7642f9d90370ff874dd382157b7147cc35e0a0a22feefb294c9b7c76e218d5e120f2580f4925eb0b3e9f410e05bb4eaca2d7e5996019c27749b392bf52aec3d65778b59bf680e1274a38d0331da1c6eca7df3b0f6512255d419274aa1e970bc9aed00f554cb17809fd7e5aef5f7db121c5b383cb22648e9d243c33cbf978de89f1f1724996d32174144b20f0a01354110f717b652b2fe04c5a583136b46a2a4bd1c78a0f2cf2fa487c63511b88b125d919bc7f0a7536418dec06438690960341636081548bc3a6f8d74d6b523d157abc39c3371bb9c90163e4c8a489866850fca8ffe93900881235459337ce5f8fdbd1fd193f58494da2411e9c765ff45aa7b453cd59947897ff3fca4420cdcced8c3dd99a7bc3b1bf63c0e6d9e7552e714fec0973d9228e73da158f17656e9792339df27ee9cbd03d77e8142c43216c74285cf06baf9e6e90a61841fcebcb9352f1c6b50c88c4344aecdea72ca020bcdb655670ebb8851f3b81e7d318ca35bb08f84fedff56579b6cea7b1d9855ce6d8f6369201e5ccafbe84460ef63151994474dcf395501ce18403003184f95e1d561af52ca4f12be83b21e5d1b24ab559457ca2cd6ae36a19e5e791f6c36405db9bdbe8feab7e95f27e84001019e4115e872b0005096a10787551cd3a19b3db0f1bae4e141430a44acc030f632a49d512b5f8a99eb9e69b0d0dffd7bfef12fc563a6763aab61b0517bc14e1d8799b5ff1549e4c24202b8324b7b7d12cf5e28ac24c7384157c78312349384f833318433e4843dbfce0edfad34e4024c80e0b0228a35f79f32e4bdfd9bb24b664d32e7092559321426b02927fb57b06f8738c8188c7286aeb4262959fb2729e9584b86a19d6889e3d44631737d5ef7ec47ab2ad0de74e0dd42d402b9e4ad951cc98896607ef10402012023e713eaf3ee5870afdff9b335bed9fcbb4af212090917c6d46089022d7f71bf86b83b0a4b6edbd55a4feff945a54645c2b1a1eb55601eea63703f9128a70c2e39349a9b55bf2e6ff06a7f089c997a1d45e42ca99e281455f25f01e204f2faa62782c30a6bd585a41146277677d2891a3afced5b37e56d312ccf3670d543025195b8b27f9c9b5955579a77f914ce65a8ff3391724d102d566eb71d7b93f05ceb5988b2f2621ee01db62a931aaa97ba445acb45228e80b494a582bbe0bd6ae3154fa8fb7e51137d8d67e7a2c7a13a50aaa5106668844994760eef0310e7396db335784797819305d022d811f0ec7ef442c94fc35552cd785eb1b352957c19b4f0e186381a2f7095811a8770c0b5e06aeca6964fa8145dd7f4e375795734d2676739d9f1b33db6454ddca9c3a914d1a704529a22ab9d07d4dbdd9562aa5890c352c2de1abd7120c4d95074667263a9838a3840597030086efde02a5fba94a1e76683e2e24534c6e4f07d1feb836ac26c9ed688c7028e0ff5e416d8613f275f1d4b167d946fcf737c43cb2294a106896fcabe407348f705bc8d2a84c1a0c5ccd8fbfa02da16e5446d7b68b0130124e5384302f008cb9ac0057731f79ff64abb9cee03967a547aa11d6d10888e23a6a54a2be4ed5c46652565ec9bfe5282cce3715f02309702dcfd6da0ae84b3735da941f40b544d6ee7f8138a30fb89580a5d57e6c16542e141dda01c7ff3bfa0e0d282013082c80e2c9f33702c902cde86fe0ff1ac954f8f7ac63f225e4c32da3b1826be1696ee7574f27dbb60bc046aa662ffd29cc4aa0498bc94922da70b593ae63b0ef99ccd98fcc47f30819a68c4f622b4b0fed810e209b84a6f2c0b7dea3b3f0d33ba04b7e29d6543b5317be54aee621c74d24e86087247f22f4673c62f047e5b4875c71f183dbc642388eb1cac231f7596f4c4958ce6337c62b1b2a6574d0b146fe9c62111890367f086cd0b44e7170e100cd858bc85c861fdc0e9c5dc649fadf9fce5a1fb34ad8063df40d2a378b72a5f394faccc9d4f2fdbfd0e5632dc25925bcca891a4fa80938ddc7eab296c8be40ca87d54d0a6cf265541b95ad29e9c5d24a48296625a497f2fdefd0e9445515637686be4bec010d104579e6362a3e9d6abb2bf967e66425335339de29091aa80f4b56baad6bc373c520f54f0920182e9f065c2d7dcb58266b19871ca2b690721c0fc60c7af88c6fce0cb7e94e48cb4cece006984c881bff94a825480ce64da2efe33e260a202ccc4d2353acd95f340b73513636fa4ba98d0ae9a2f0bbfafaff5871b071ff0d5cb4a6e1deac6214681bc4cf2f60754b714ec6a27f4431333ad17f5dacea56375374b67c77289f4539c1f940300a370518e042725ed602747684918a66d6c6639f6fdc14910e458d285ce11d7242127e61e7baf71eb9c1cbb6aaa9da240e368a2182173784577fa1315e562c9c4f6428b00b54450ff850d1f542b4bec6431487ad14e825915c897063d35f4aea17ed8eb3765f937a5050332bb22a2fb9a42364625da6736b21010a044381f2051e549aa4a148b13717586b1148645b4152f070525a530b8ae89591d58727eb0730539202fede5cfb9b94a85695b0c0ae4f25f78ab454a56bc6efe5cbb82654e8fdcd199428f98032167e867d4bf690cc4cb341421087501b884b1028962a16ae184e9fa4371b2373e8310d4d2f3c8d0a17eccc68c0100cb7823f243f301e210facc25954b5c7e67822c6521b9197ec32c3f20103339f574b08f90f6bd77652be4730489a3a4dd0e4df26abb40bc4c4241f7dfcf992359f8f21c52bdc44dc048b47b69ae7bfaef3658c56093a3870948e28c4bcf4391f967396149c3b19ff0ce59aa15b5ae4fb8f0045e96b5a42c2371d4885b87f24910112a0c5992f906d97b5df1d379e933decc93f8d52716015dc2267a8c134143ad762b205bac919c0887c0f4abb2ccdc0d625354f1b024a8d5b6a8906bb30dee4124bdf20f2620d1bc32759b65ed372d8e2f99ae2089fc5111700a835561607711de7689941608b15958004191744f1be09a3b773dcdf8a5380d489f94e7faa9365faf187e9d926a16a6606460d19c7c2c53752e264622e87c55f16a9966862118c89a0827a15628b5638dd4549452b1a8d32666a474fc68ea315b4d22e02f619d3a3d8d2601939a6e961ac32370b80602183068111550a111c69c932a7b8adfde0b830c96c692a5786f2541eca3089b11526385a0561c9a4fc18999e88923bb2c7cb53830d61e99798afb4027e85751f83df9d4f3f77bbfad1c687e2ca7d261b7408591e20336662810caab6b2985c9a6c545b06c26cd904f7ff8014fa07dea035fe8eb05312e909ce5d234ecf4f6d577307dac6349b147eaaf3e7039bb5cc5dfc4d961e5ad3f6b838a4d0fd182d46f6b2854546dbc4541614a13e33459d38df4242ddf090cefde5b040f83d0728d90359e234216721daa2f3b6c05a411e39e052f90c6227ca5935833f52ac43985de3244cd6af191a353e68ef9e45918886c4c47c48c982c42357d7599f74c565bd09d0d468faa7cc6641b84e4bdce28c2e085ad94d6744e3db3e77a6d570030a444345be1ab07dbf35b55ab67993f26150fdf9abde8b723b8775cc86ef700000904b766ca6cbdac3a0caef668494b3166d84fd1699f63a073f5768d6fdf21c4f1350b64f19b0f173fe41c063b12a4f963142557239441d8194ffc3eb349ea32b78becffb1930e28f7d5dc7fbd4d4a355ccb93f5d4eee31c3abc65535d3fc39e8ae2e147faaaad6ee0dc1a8a439a5d5e40b6d10fda62e948211d18604f35ed11605e65ffb875e0aa4fc382d409fe530a8aef6de5318862638604215878fae93c8658c613e16d9999ac2b2bdff3587366f8ec62f4dba83a737ceaec63e1fee0c90051c9b1ab04a52b2b0b1301621674190d793c936108c23d6b4252abef52dc19cd858f39ae83ca906bd4909d8d924457416ae9328d349b2331bd95fba8aa3584e9cd53713302aa92002e738822c8a8abb23fbf244256644eb47ee40c537f6038c362097d04e844776533fc7ef909277a991cc997c95f801feeb627a4077c35dbcc1ee69110c47196b11afac09763f598b44586e4247199b6b89203a266940d7b22e20e03ca6153bf32142411dcd43af58f5f26885346fc92ff601549c00c84fc802255f91533d6bb5219c6e580a75753359fcf84c5c2a2802e1454e039fb5ef91e9c71561eb62170cb68bc05929e7f7e19017e33e09d94034e3e27bfd3191036144f587b313730bbddd30ba286b20ae340b6125071e6267767db6fb8a87361690135593b3dff9cf57faef1a6b62bbfd9b067baf1e70d0cf402376f6bac5283ffd5bcadc4125ff34d169c7243c25cbebb7d085ef030f111a53bf0ffd876b2ec1149f1de5547265b810c066d18e09a83f8caba9574265c289aaa249a64b0f7110c48ab5e4f111a8018ea21e9cc7efe890f287271ad19b6e764e52d4f90b4f6ef65ca8549a57267fb8140b607222955c8ade8f989173bf7eb8a9883ea863ababd681804e9c8e41f8d5270166699b25f1049adc214d7e384341cd26b0991d5c7214ffbeb589d1af7c6de187dfbab33248f516848c24b8a65e500a041e393bff71c7376591179cd746b1aafbe0b8b4ae3314ea7202656d9f5edd2b5d5f91fad59f7a5c902c3656b213a92cb120f8db301f18ccdb023edffe57fc5edfbb40d1a17877f9264890a3134aa2f9da7d2c3115e2c65eb9e759b52148e4a0915b7e36aab37dcb32f8caf6b8c4a373e59bc7600f1967a973782791bb8ec53b039df6883b2377c89299c5445a2f8f7c339b6dfd7af82f040fe3b7125fa20d43f96f2a2465dd290c068bc610f47f325d8a2370e08a9f68e7ce85768d693bf6b492635ac0b3d3879e0514f4d55998e0642030e7f9904f983953c9003742996e5ce251a020b6615cf5544b7d6055dc1cccd397103fb643d9add59f8f80eaec0aa8d349b5dfa8850f286108b2556447e774d1659c2c923b2f0a1b07fdcaee5cff96f5e1aa107f0e6d5e697127381a5ebd82bab51d3c9675a4524be5710b143b789fe50aae667f8c6099e8a0a085f125c3555aae5713123863dca5452831989d13a1b3acd4b59e58ffbec26dfaea9afe0ee7e35ef65e0aaa308cdd9669512e6b46fc004838133094539441bb3cb636a2c104ab325c5cd7b48ad9dd648a394d88a98e915157cc6aaaff34f841804711e49f198017c3ae3468c91e6b72041cbdc76c47d868ec0a37e991d9e9d003dc6ad0d576c7d50fe1f6876aa308d4152e9d2f3ca1d8f108908483693d7ffcc50b5da46a23c3d58413244ae8226b0e916a103de8103a1344d2ace2e2afd87ffbf5502aadeb7d47753e08c3e4b4f8ddb47cc1822b02d8deba075a452a751a76541d76b6af4d1c0948dc8c52e3422998e2d621f78cab94102de37b3f28d5a74b9985a3a453d74a4f7d6208331b9e9a812b6060548463e6c392c0cfa37ebf06328bc4c12b4e8c806b83c1329736e8456b05376a90146f554c4867020dab1c62cf92200a1c718454332a44358b7019a5507981079561e9ce2c056b0999dc17544d9f32b25c98e7a75a004fc7e0b56aa23c0891022a2c3526f827bb47bf80f7a1b28c052a76152b6afaf68aad3bf0899cc7252cfb2c405cc76cd95f2b26da266f554c623a0405ba113b16e388422adda0ea6c20c8406f040898b1dea0fd9837980edaa6e474f45fa504844c4a44d5bd4a5191a3241af10e25534ecd266add527be1acd484d49fa237fe8cf70ec5171bb954cfea8c37e4ef5ba3fc6f6d0f212205395a6bf092da16142246409076d0036e55e9da0b05a575387af140ff7f05546eb3166f2c21b6f57120cc4547ae1955ff4f608054a9fe74865c2394d1f9229d515621d4bbdd64f10c7138e00cdc93d5c4da1921c247c3bfd75a228c87383745b5f40a46b74f8e208a6cc21490f16e9d0df4bf3591eda8de6c8297f724cfd837b8c16dd006264ed88e2cdda86d7fcbb2bf0df1627f69c8d297632f66a3989bd11c4a5b94e439a81982b7430e2a9e0c87fd46c6a293607d4d948dfd71524b4a3622d5bda5716be0c6f938b802e372bb2cf4ad66216ba8caa31d1a42a84100c6eba0413cf25b25bc62de518e8af4d458897071295ef953f6ae98543d7727793e7e81a415f9106e431f2ef89fede3974de4305f86b1283efc1787b15fa382bdec9ecbb9132706c5989279d4bb18eff7dcb51703a566fed46073651307169ce305b730c37403fdda2df4d3f369956864a20aca1bddad4f4440820c2a4439bab29b0e5756ecc20da35dc5c864246422d3b2bcd7bf7f419f822b8ac27241acc191cb3b2bf0152c20502ce365a0b8b2e037bf5276fb688f8de301d58bb162cebb7fd2a40626976a79a555c8171e77f3de626fca1b3964804f0767cb25ba2a6b82f1e6bdc8054393b8b0305ec63d0bc497e094c83975af5e2108a1122b56940d73644f3ad919dc9fba0b9684549d6e6c4d722a20f44b665215959e279d6e370d171655f6098f2948a5f24b49ae60dc7852edcef536364aef0b82fa8b6a85dc2851ae6a695b6b141271f6deba3a44e62c28668e27ca96f5b96fcbfee260654f7951ebac4f5f99230c96fa8fbcbc8413371f281d72d2cd1c8d749d36d2f9ac2252a93c9584693838c03f92246985295beb022c701df4e8daace21895da6b317bc88013c8318d68361bdaf1a59bca3f95b6b475159d601d3b3f6707a525024787d993164fa6b9cf4e1586f4346797fce146b99b15ae70466f5eb4f789c76630b1b48cfdc6bd460f9e1f5b56e279d8c8770debd60771526a4d29ae0a4f724fd14730aa1f300a7f83094e6bc516037b3ba84d5a14b3ceb6e4ce01c3f3c1561373214f2c7c7c1139c5f0634d7c01403c1952ec3e2a8fe2913152f9cda9a7829f32ea0fbc96196292824a3c89e641a2816ed45e0206de3cae8483749ed7c1a7e0b763de9c50868f4213c8f38444fea55e6269ef322b76d5ddd0cfc5fc65b054080bb0eb6f8e2c18549e1ae485f4082da27e972173c1b87894e9b1efc8401c5f15ba1c3b1504372eafa45651d2a2522a57c59c453dac65240c8fce5e68cc17a7feb2856fe4c25bdc1d2e4e7e0990cfda0e0a7566b8fbd82ca00c30e94e58accb2606596102023c23d1c6ffa7d4a92bd10caa77d22a42fdc85cd343fe207f26aaeeba2d62f6546e7e597199abe7698ffc89d04284da6e54e0c70e75cc2e1b91563fbab789008c908235bed6c3a2218cad53b4cbf13bdd1e715251a445d3d9fbfc707b73210f19bd60142bc1aecce2a5039746ce50c622a3f8d37832530701c2c7e4a0d8e7c269b6281bf2d82f7729a787e2e3daa22717d07bcb5c383104527f09b9bfa8f8ee2ba2ae849d2d568ad2b20df72bb78ad1edea234cfdc05996178064610e774023f5155270d7e298eb1737260c6dd4a0536bfeb965e60eb52e7984df2d9ad4fd40e573e97d38f29c008654e54a1b77cfe7aa84b745b5eba6169ebe31206f177aaabbf668e7872f840ee7eab67ce40736aee996fd135390b9d1bcbc8d3eb21614aa0c1f0a3a4a221a046a342eb17053609793bccbf2d6fa8801d176764a9b06d8c87f0ae08eea713870869ae8e15d9084b11d1a32109c1e249838b36ce49b7beb8ed405159def4c9433d97ae5651602c61ed5a910d8cc4fc2543f7a61f76a14a72b84205cd6e09903e287330f4cf481197532ead869d8ee7d4bf8389d53f1bf7ffda7bb53d50b42f67ccd9c2abf1cadfd2b87c83414e81bc668303f467b5dbf7682e9d00a42aea31cdd75d7a21b2fd9d2e955f8b9c84bde545b7a2373845b82f7b3b91b782df74c8f0afde54bc182cc0e6449668d05e028b4e0c143b4dc04dfc5f8a752c8cb26cb06332d78a7c2c9d3554fc7a4c3395bedf2b7700a06ffa0a0af35523f26fbe404b8d044e369bff7ea0498019f3b914b0a842cd16a28c87871866b909c611b93994f4c511dacdc7b16a493c377aa9d589384dd23c695cf994cd072bf8903a879bd7026e4f42a3fb5b628e4cf7926e13722ab511029e26e2d9deb0cfdadee025515c88bfc239ba5bc0cc90763f6d3fe1f2ee59d5a30a14099933c72c81a6184e22aa41e18c84ba0cb60fa907dd96962388977c4d41b5e769a1eb4d3b61ff8649eba3d277634175c99465f7d01ef8e3f3c0dd6f049c887cf243ab45579dcfe9636f57385f80de223f8dc1b1b3a87a91c3aa6866902123bd9cfd87e149999f84b0a8afbd0fa40547a6c009bb7456d0e37090ff3805dfb817451523877ba2570ed443d5cc36b39eb4332bf3e36bebc40c6ccdb4d75d2a2f6f55b29db74c3f3fe32d545dfdf3b7de1d67a38c6e3640189c78b7250b2052fe228fb986615d3913888b318fdcce16fbfd546dd8f306abe6d8e76b3097c73cebb020d600e9ae900dac78c8139126cdf229ff1850655e0edc7b071613c6ce1448f480edbe517fd52885891b0d20e7260830fe201e8497669194b7ea9d3a0ab2ddbaa36830a22dc7cf2db20e984438e4603da628b844db1bdbbca209d9daefd3b8d01c5a4d1e5b6709643eaafa9d58bc9dee558475b8df5f218cbc2287786e9d8d6e88d8d0e8f9863c136414a3ff6493738159a01eac6864011dd8993c5bc434d30912c455f01375a6740fe1cba51ff0c7dff73dc8eb3bd83c02b61f1fbe0404ae1df471f0a31f11742502060a5d7907df5f124d5f8bc6293c637ed9f3a0d8e90fc19fe53e75d5cfa93c87551433788dbbfd4ee4276c56dc3d98f5185188ae1f4faf1b129b70f9f8f5b2965d49a2bc7584e18d7c9fe271832af81b73a08f3188e2da3c95e33493c3dbce8351cb8f5ecbf5f8d9efa95a11682fa1b3245229fff3f6bc2442ef198480e4af1683da2aa8e673ee6a289f5dc38c63651a9e8a8d544f3b594cdf7b4f5ed2d416bc47fe5bda1984e40e121a741c2a2262efed0baf85abfc514e3a9bfccf0198c72361db1a5bd93dc4916c7f01c814a6d75bb67238a320818b7e2b03b2bf9cc463d842590590641443203cf63cc630fff554f53a8bef8dca7ef2dac76ed589a6b2ded550962b0b93ed415c6a6231cf4e34cf9e21bff30e94a65725ed46dc166772a26a07355440b9e45058ec14f298108659b3718dca0f689af5a6285254c112d39da8c6de4de45e35eeea1241f2974ecf56508a1a1de46c15b63679f53f7f302bf9b5ffef60baae2d8e682ce40adc122fbd58ed2929cf3876804ecf201fc53802f9b4f996225a8950cbdd3f7e371b03f52a8f529c98816f82953499b36bc7fa9dd7e736cb0a8a4eeae6ff4c99cc6fe42b80aaf975f8c92a80d971cb88a8b9e13c03c4d844aa9d2f1b438629b2fd09a9e8161a76f328bcf1a374aa73facbb7b007ba3e5a9d8a7b545aa27395c6f01f2a26faad08240885195f33790a6cee48265ad4b3562ae68e30a154960a3fcb94c287509efe7b32f677408e8fb14089470401610390577a6eca397063a222d533982f3f5f6424e139e669bd6d2ecab9bff9bbeb50bff453d79336059d81f0cb44c3f527c1b8e6bca062578a808a49bf417ae2d8b5c7dcf782f394b75b400928f9be90f3acbfdd4e72d60be918f68102c27a8f880849bba51bcb2d711ed32b17867cccf3e9156efe4d47f550490760e901c1fc475c586af82decc7859015805b28dc0f811bd301397daefbc115d93b9001cb3f36e020fd73ba8936233c8f324bfdaa9b5c0c85e0bf6be68e979319880eb7a120c457de5575361212f3f9f8e37b5f8c52560e29eb3543931873770ee81d98eecf525f0e52b1274c0660cd13acf976f5a9a354cc768edd22d5e97dda9fed0d65336032afe9ffc58813ea357d4d9857c07c29200af0a6061c571693d64f81fbe8ef00c323e45dc48370b21e294211f4191ad12a8288428c5d00d457833d40f854a8ae2db93e2807ebb8cacb4fc8941ade551ed7b85e2f234e9142872bb83476641bb2a39118e1c4714dd0b340a4b419478d6040b94f68bf23632c71d38321f3cff627547ca92589462882afd2b1b9cc7a8f323b7369035545f5035f4e512736d365685c0cb8fe5882ce0584999d594518e75872a5ae4b2c10945974075de53516521e1d04ab79a87b1f4e85c2967068a8141578d13ca93a131332d3b4bb5d797c22308a4e4136f3c4a8f3065a68fa321f262d30eec3cb2ad21f5439d3f84feb7acd392cd9feb8835d1fd0cb4db87427443497984ee99dc8b63fbb8fa89ab1d86e458f0000f7747d74113d93f82fb70d44c3f51aaa66d62ca6c44e1be7165feb74dd8cf9b82913d92878ea8f3e6888df437eb1213e4cf6b97b283518a1c487360d71a112bdd6a71d218c98c4666cec03e024ee0df6fcc500303491bc62766fb05910930dcf71d83ba04ac8fe5f92e97e2cc2748876adf24811afd583faca35d01149b228cc1dfbaf588cd7d83b1b723dad3da6208adfae36317c8dc8fa6a9f44b2bc32bbecf4590dedec41a0e09d2d4cb3479dcdddb0c8ecccbe03c545aeb6859b5ec50ee498646cf7da72755b73314751225f7f3fd5050fc891044a9dfdcd1c45206df3a9a680bbbdd6dc0eae59b9b02b343d24f063f88ade97ac9394d82eea86121a3146ad93b9b11b874e8dd6fa6c0b1af908a05c0c8a90adc90d83d5db0c1784dec540aef52e162a8b768b0c2d45c64f58331d1ecfc841152f2d287c6578df1f9c584b16585e8c27d18d58c947910a7d771396a3bf1a4962bdb0b4766e0621d7c2b9454559df6aa0c8671b0283363660f457973838ec3bc327f1afc3fde0f71592ab2d195ad2b1e3843cd9da268dda042aac6a9dcb79fb94e048192186fb5ccccec802a7558c3720223e02a8dc7fd3a2e12d0d649a0a58c1f564aa611f862f2ad617660b4863839b7afe5a900646338f5e6ee47612168c4fc84cd0643d34cf0dcc9710bc0627ffb3d741b1d00cad0d75aa1800ad98ce1d97718be11cc48aa49ea51c031a7001a47317f16a018eeeedb81ec2dae9a47bbcb7377a37eecd1992136a984b2f51a5fca98074eb5c120f52c234eee16a860a4082df2b052c15d61e1c3eb9e97bb97f2219eccdb279448eb0dc414af9e07d13e701a34d227924848c15de5246a6986521a5fa236e60b61fef218b5936bd25e9ee31ade3be96415be67fb6767d321b06c0852c73ff0805b9ff69b70c57c9423c14f8a056d4ef2e825d85cf5a83bd0c25a30a1e20f81131f6c2116cebc59d86c5078aeca317ec12c0173d384a989b2df273dffc83ed6c377a5d63a2106e0931d5db6dcce7bcfde22bd7b291f18418b2598b2cf00abc32010eef04ddd0e6066bf03f427d94e0b358bbae1d9590c210f1cff68185e26e4fbc958952d26f27591f500d202a625813155ea6b1226883046a2c66f30fe92b49a7a318dcb2f2813e1a404bac80b0312421f7e8deb17cf8dffc5a5f00ec5e9e774296cd8c9cb157953f60ddb5fe4bb133dee80994b6968092026e6b6e0d609d79a4508399da0e7208991b72f0bad441c7a1c7ce7e2237984a78adf31e501030f3fbe1e3d35dac1cb49de88b910094b3c9f3c5a3ab112b1b49787004e96d6b875542c41c03d5f9a503cc4551d39882a1b6ec0219f83814d1567e8c4a30286864daa9f987f9c42d486e66f2cd4b621fb8b503edb4002baabfa8aceb4c7c36678c02a0061bb01059a2628a36570c027ce4cd3865cc197a1ebc54f0a385b79ec72107ea5cb9a89992fe32ed21a04c387f85c135dc98cd611095ca9c04e12ec2911f58961a203fb2e9d9100d1f05fc326aa6a8570d539d7f86e3d5cf891f3d265c22cb731e09d74203a7b7fcec8c90ff3c49867ba0fdde46896347b48c218353b8c345f460d6ea31cdb83e38fc900c6826bc80b9f734cbf70c40d7da39318479d606fc3fad6bfe7df38ac6b2bcc3b8c82bdf8805d238fd4a9e2233c1bb5a9d6e57d8c7093f03e3742999aa609aacc63cf3da9d3e93712e0501011633f2a09f2bed48b62922e95de8b7d0c4f78021d453f8e1f07bd0543018620ec71b9ebbdf97213f67354154396a20732a02c213c0dda7a46398f37412fb26412c42c6f9ecfb19decd5196b8f0fabaa691e5d46b375949d9dd851f842973b4c51178a406fe52f045fb67e30a7ce0f6a1ec2522ec98931fd16cc88cc4e07a8ee8b0010840e0ad171b7fc64424e48585e5015b5c87fb59b5f12e3f2502d88918b00efd2b8ba4c12953571c0819bad9cff287315021daa339d9bea3df5e51cad33ec22dec9f57cceae982839184539105dff3ca55b08572ec820fdbdff18c4430afa59de8869f48bdcc0f3ed465ef1da539a2f21bccf83d388ecf9bb4ff30c075ab54b8136af0d1cec7c104c62fcb8929b14b2b1ea727caf33b0b6f70a2f0a1be35aa370871957b8ea7884c148907a98f19dd08325e08ab52cbc090db702f743c66bc52115dd6caccf443a729e85730fb8e76d2326f8e8afe1e54258d421724e4f8ff53c4b1199ed969a80395cc46baa237064c37a8b44c4ae438dc575387821d3bb0e68c1b87927e2ca28e4960c8dc40136d7ea583b07123856e3a1e487912a2f37a7e081c1d29d56adc3c898a84e0f054795183c99ca19269467a3ce2c403f87d7f0b61db6af945071838a528a0549986620fd1a5f64026114f3bd210fd1a68a332cfc68921d3e5068e5b9331497a7fa19e9cf84488c602ab9707f31a5deade2a7ac13b02e2142a79055268251e1d4988b0d0868e15dd33b00c6cb0b3a4d2b2897642b63b4082987c891362b38463583634c046286ea9ebf6cba2d808097c3eacaf3efc22a3d024065a111fc4891f5c7959e53147ffc4d4e88bc2ecec9232010c42bdcd3ceadf990b2587453c275713859e8f083d32f6bb551d05338f392cabb96444e1e5a27b84e8851def9bff182177a26f5de54a2cb059d88c62453e487d1275e4de2ba6757adf8d69644305d3c9e2aaae6193a707c8e1ff03187c59a6db0335dd011d5922dae80bee4cfdbafaa455d3463decbfb1aa47782d9d3270b445b9dc7ba27d8bafe4c654c2e1cab526bc52e0182df6b0ba3ef8b986e18cb1aba806966c849fe238a9325bc52085589eaca21b17ad1389bfa0eaf5bf1a626283e8aba8fb20f5f3e7a26b67a2b6e25f0a17d152dca3bb028454fe22648ff26b4de8a40313bb183b2f414da7f2bfcae06dcc8f4d19765b851a4fab381559a738eb19eea7896087c16f3708fe600fa54d956d9fff5e69346831829b6447f90fb0f6458218c978d1a6bbb5ef21ee293e9c2e24b490875a78de1216fe5a31003623a35c530a1bc21adf2a6bbce23b68d134f8413cd3f79e638a9eac3d9b8feeb3a5034641725d2ac59cdceef3fe96bc471dc2cb420b265e5d2811fb44c3477bf76f872d27c2d22079059a65d16b2e0a14f2092edff97db5f5ed21c2fa00f888d38275d923bd56626b33493e2f27ce233e15513a7f5370461c8b251edf2f2c06ce23e367b472a555f9fff14f653e8ed0aa10880002e859fe1982796f4d6ab741e64d957294996cf24d7f726c915cccbd8a13b2da0802a8327b362d554a833935ab9ba4c7d125ce72f0d8e8635d89ae2ee815cf9d8d632d21880be4b4dfa3db16e6df012491618399f5ce201153550cf07708e2f39afeee6afffc07574d80930bbde0b9ed33b36d68cfa94aff8b49ffaa45ffda55ffdd2577dd24f7dd2affed2af7ee9ab3e397c94af53d7d10bf66de068b3a58bd4d77629f95cbdd54f61531bb47c1eccbd36718b50a2d217e3ca5b59c6418ccc9f7f750257959e32e07aadfe65b74b6309295d827fc0459a89f51dcfe63162518613244a5f58435c09da6a62ac8d2a3c146485c7cd97077a85e7c76cfcf328885ae55417300cec85aa155ff4ca5e4cc172bee8c2635242c1dc151bf84640164588d9d0dc252589de16481d382d755902df3fd9bf7e6d3e4fdac21a8b3d08faca0db587673210234d4991e1c6b5b1f428926ac918e2da3601dfa16e77820059ca4aa231f6b8d42bcdb7465fbbd886293e4ec0bf148884156d636189557d5a6bcfa0e0286a1732e0f2607cd7c8268b7e1c732b82c091c24bccfa1bbf22d2a5ecedddd16d341be710bfa0f0b54903b8cc32b9fede97dc215a00bd26141698c7201d9cc98e90c2123e4c4928dc6dfb032784ceb8c2ffacb0254d04512788ed4f1ae9b68847a47c247137ad350c28ec7b2738a6b92056b83faed513f0252d9b31b01132fa3a68148f36552c12a394ea4f884775557dca7335418c9f20ef8318443931f551e317e644a3a2cd833304f77995ea1e854643918700c9c14e3d95c67441ae8a42fe14fcdd829b8e95b9a1c33f32b58cf1358607c9863d55bc379b4c88499095bc134285f651c82861e2dfbf3fbbd0135c33ea1746ec961f949a6f36066354a1ebd30e8347a75affbbdd0b8def18aa784be0c33756b1d451a74d4cd1cf2a6977edaa961e9e8c02c47aa2c20095a338a59f75aecb0010c2c99c395aaeec044c52e2dc69a68c1eeed6fb889a2540535dc244c6dfb4561d45c669dcc3c4391911d1e6bea00c9855d53df34d8224a66ac4c7f1168ed1193f3a140520e87410cc0ecb9942158e943136cda843d667c1ecb1106ea984e180d376c2fb56fe67d30c2f54b9a90585405004e77329c7c8b3a06b693cd89539a7585d4bae94f62c15adfb1dcffba05933cabecf562f99f96f32b1e21d8e20dda3d29da97ed9c74370f6a55f0da7434c491c0d833cad7577861accd370040efd1b9b58ccc97dbef852630acf8fbcca6a00b5779a5a05d2f14454a863b8350012fb55595b9a77426d8370d07368b2e9fd538a0a7a9b6a6aef3b22456e4fb26c31ac2872188f9e4cabb7ff2a626af6891448d5f46cf6f4ec38f8fe557184cee77468c588d2db3ae781f7e5776f84ebbdefa9ef8daefade1e1895f59186970125f0990af279d9523b95fe5b38bd58213acbbc417848df1de7c741ea51315734aab371fa12dede4b4075cf045429924f6aa4194bdc86d3c096973bd7cebba1fcf6271823506bea409e143028d6cf77ac4fb92b4a5500dab9dd625189270a21fb73f9f8d8168c6e2b81c9b0dbd87b081be8e72b773395e4e91ec346b85592108c7b9e9d5288a777538ae10f930c2e919b9f4b698e3844d9f55007b414b96491a125ade84028fd3f747f1e140b84e6294ddd4ddb82a5b1869d290542842dcc85964ed8719e18c010053a7698331b9981c60eb2890b2af60a2067cce1836f4f33858fb35ecfbf136ad2d4b7c2def8c72fd06f131fca172ae88ad1ef6b4812823af65929bd21dd58840621318c638295a9fe2be01af50ece0110caa1210fa73a3d65e1bf5f0124cedf627c1d1806101b64eef83a516c3c51184a6354a5aa64e5a454aa69ac8198b1b345bc86c17bb64ce71cf75ea50e5e2fb90777e0d3450edc42e1a5e0c5b452cc3e7dc198385916ebe9010ad3e5df537f16ca81e1b3c846d1fbab0ce778a0e6351b1d1e0f38c0398192c908bf5e915ed9c39245c4ef860fc4022b33d5ebf6c4480f499c4b4af0679e93b55bb21c413a2b05c7802ae88759cca7f5605533d448ad85d8fed3e352433119cedae16387bd0c35e66e6e9ab44ef96e945473a8fc799179d5e1f80b71d3f94990219d7dca10e5e279dd99034aa95361dc168b36d2901f3740ead01b9816c79d1cea6abe9a8a0f33857b68251bb0d879cb3416e2936794af2486b3971350a09a9b1f864bc3ac616d4c09e1f8a7ecfa9090ec3c3410e8899490ba9702e9b9b807688a0f0f0ce53127791fae51449ba6a63610078a96c21ab58a744395433d5b727e5ec494bc53db1b1dfc92f1abeb59ea6e204284b13803f5545534c92f1f173838af268b634651528f3bf7d92c5873512b9370f9d0d2ff8bcda1842e1cceb9248f1adbadace0b359653653a113574264877a260ad411ac539c62a5723a3a260a36c150dc537333c6c0a73692c328724d401a3b76826bc3b3d03706837f416773532ecf720dcc30ffaeb0761de1ff1d49700ffda4c9804e225c3a5d9e4220063d5a6ceeecd0f222fd78141889b70cd65a2e9eaede2be3872ff254984d434917f8029158d124ea059628ade256e8c490e97d0cd87d102c2c328418c64237fee51aba69a9549a6acb0a9c123228a007185373f01575b17bf9ecd52b684b675f57c3162e9b7dd53aadacf4ce91c6753f17260eba134cf78b1a38f14b05d9c5aadb1414fe1834644899268456daddec4c6737a1541fea9a2227009289ef3f5399f1abb9f9c0de1fe3c6125d7627dbb8fe076f6385445caaaf5ad779d68c9829bb8caf0e443af1e5b41f106d577ec82d9c67f5cbeb6fc173ddbb6d219ccf6c44bbeb231301fc34e692aa320aa12d44a54e9fc417063bc1be4848f092cfbbee628e9fa36e7b30aa879796cc39651e1dc76300531e8baef0dedbe581b559941696ae357add8a16ef10da6d43b043e86574089a151e124b885d0b6c872ce2cc95a8c1b83dae6db224b2089d8e881511d4f3f186b904194e01c7f01c5df79f8f61a21a6967a82f152f9d7d4434b77befa04586dcf255da425f10d29520c6d6c3478b72f4d06117fd940cdd9478d4858b16f588531cb7c6756a796319445a41a4cad672fa3e67013ca628f3eaa79aedc899f5605a6dafd1b572917cabd9f0aa6d5a937ad0c0aa815fea0a8a9d477b285d0033e3b9a1731544663392a6aea0ebe87e61d0408890e73ef5a14d06396ce01c2c20ca67a541689a64f10b7f1e4bdc84cb2ef49eec2df1f58894dc812ae71fd08973f57fb394e5f5b206e35292b0ace08b850db429d620cc97bcae52ed01b41d747c672a62295f0fcddb724f4b0825b06955a71cb7af85eed9da7198a9bba8770405f9d5459a68bdbc281be20b48ca979cf5f2bc67cd099f802f5978985d86f875c5b223939281b16b1977c8d448198bf74b07bbae2771e318deacae2be079dc01462c63f7d31e01c44864afb255abc9c5ed2f66af0966dc9faddb08248c64301dbf80198aa358f555b78d176198524b3f4452774cdcac518a1a8416db0926fbfd9fcee18192982225e666f80598a7d81274eae785b9af9d082d51a72e609e6c2b0469e2bdfa6ade5b97537501f28ee660e68d5adf049c272ace1c49645d9a836ab1e39a93258a80ebe1b554a6e84ac5f96d6c0280ee1a8bcf95d5733972abf29830bcd56dc9fbe599825d6c6e4c687c80f40badec179fb68d99035f1fabf7b01fd457b874acda48e160c511164cee3fbdc2ca2e966a9c93b21bc87e07f6c20f0b25c4281b72918305cd04f480efe10172fd0e0c0001dfc2eb02e9b829113ced11414ffabaeac199817f2819ed6b2c2f853c8052a2e1388cdb1441bbaf2b16b183ee620581c0427eea6868a78c55bdf87bf465f144dcc91f70156238572e789d24dba08391ea382217fc4a0392687ee73e86dd25fdb60f1c951fe1afa4061880458adcafd3469c394202adc1b97779dc2d800b88261a87a0d928ba9b117e89b71e50a1996455dff78c2a972b004f2e6c43c7187c7aa48628fd3543757994bb4f554867ff64c539de7379b3af307b35dc1c3b6334b78375e7269359eec36d0e6966dab15427b8f86121492594cd617f6a14a835fde45bed0f5f4718f3a1fc00751cc44a99f3812c3adf8367660c57815345222dc463680ee575c452b177472b8eefe77e667b1c13a611ac716a9ac75fb80491fe27a8bd83737b4f982a06460a32e8c1ea8616a4d95f2ae4fbc8f297023e33457545335d5e889aa6386821cd3c6732f8e940858ed54f5567f8a915da3a49e0ec8d7b85d33b04d722230090b54964220e601e775830f277e037039761302e46448775ec81d1e74e19e4b08cee1755104675df4e474d9c79546ed4358bf6446c6e3454928fcac82d27f98c61a8c6b57f7015086f897d39fa88fb19c32717907b05e8251c87539c0aab3242e3838ceb7da589ab46c3ea2ed2bb58bfe995a468fd82ff132e4be4aeb3e28b62e2554414d0108e829a3e1a346a2866c9a4ff2ad75e291e8695060673b86ef662cfbcc8bbb602d93ad4ac20d2352f8ae9a3cd508327efd077620f42349e892e4a9a471bd56635c2bc54e739db44aa60536f5f170450d97bb32026e027c336d762f6075cb9dcd3904c10891d9a84eff6c0f37f200ba420eeff41822004a3d0bf0c293a9e3a9e25e3d031d0eaca208bb975bd80d93864cbebb0a512de9dc103db778a4510de47b8408b8ccd6189105641a1f1ed9ac675ed04de65b6d1382f2a62634e5b6781ee468ed95d7f67b48b47d59f4b2bf9d2245fcc588f9382480b2645c749e4faafb0ad913e3d02900ad35e30cd4da3ff362fb31deff28377d9255d6ba26f293cbd384e3b3cecf3b40ded3dde61b04be92b835fe16dc00634781c34bf83794f6f96a91d2f9528bd62e1792e89326e025a5edf55052a02555ea3ed7dce0a42c5ccca757b2278e17a278d2993f23cc3751f29b736225adcf7045b6bff4ff43a7c214ad2bf2a696914457dba1bfbdce24e0fac3e2941d7740293e09973e7d5053f1a6b86b7147ac619a8b96b2abc9cb624838e2ea19de6bf23994297089da09463376afd3e5190f1134fe646b207c14f5a5055ee223de20a53e5be0d0178543d2a87f8b5181cb1b59a8033d72956f8b3b58d9a04c440037a458a7a5d308a429b0ee7189b1e28eb974b32b5ee25b2880862e414b0e4c3e4c7f6812e4d761768ff00237a8070170e6325da4bb0cac3da2a0094b2864a28ae567838f75291a7588a612c0e769125f17b95a6d03c263fd491ecb626f79652262903c60710075c07188320b6b9a9d137309a9b9b9b1b18a63ffd591591baec8ade699915ddcb21b8efce96e5a02ff59a9531695bbdfa0e3e6634d9c4b4a404c56bf4a919107e41aa3c88f2c1eb01c463abd166a4f542a953ead429bd21a4e907d922b5d614bc029e0f7d62dbf649b7d8277da79b529044ce2468c121cb6612be8e108607064b0159a85497232a65c5d23ec94dad2872f7f99b7f0f0d460ac516595bb432db5e65f04d497171824bd3dec9fe638ce63da3d23ec91997a37dd26cdb462162d044f557f52fbe5aabdb2f3d5bc48e79ed32c1610de0e8ee0e865fa2845f90ec18c6f88573ab359e71d1fc44ed1b6998788db5bcba72e57485432dafa2d4f26ac8068b9b2d373737af9b18ce96282f4c78b1e245072f54a4bc3481e1e548172e525d96e8f2546311bc96c4dda65f4314a5d1236515b593b2f241ca8a49caca486a8b19a92d59b48e3b8f5cace042854fc1a135b665b7eb0be4ec1d87dea8db758cbe3bf9f2ab6e2f06c3dc7289e38bc26c8d4d8dcd98a1241d8e72920b38632d79506a6956920a382e705c88e9222a71f1c2c50bb02ac9c80bf20589a3a01943c220618058442b1811c088202f817911c82290dd9f152e68314e6298a4c42449c9c160309804134c10638218629a8c6286f22c8b0b1158082945313ec6bf9684c9e272c49522c28e79ede6e6e6e64bab1b0b538e38383838a569952456618e2f5ebc7861cac0caa3140c183060c8a02921f50253000010801b29728c18316204a0962f524da7a613866a575d2f0a522f10c990214300335e309293939333636767ac54d018008d0184710a936b0a8374a18c580650630035ea2ecc92ccab61ab61d34e360a6c148419a280001410e097f5fb6dfbf56a5bfbb3daeec211016c10c046bd4ada05116cf0d8e01191e45f54d1ce8aec440d52bf0f48fd5690fa21c95b9a7e42db7f84717403c70d11c718232bb6252d98a86d774edbebc601840368290a95abf4522d9801b200c8024a430acc91141824bbba200546e88231800506b0022bbc7a2e59ae276d05150876c54a7bb4c2e9622976cc6b3870e0c061801c522df02cb0c0821c413972e408da5642344a2c8018a95f9314961416947d62292c275843d4c442ca0a1cd33e6f1725a92e479b7ede54aa8b12a92e43f90afba2d4ed98aca95a6bb517cc12966dad6dd97b711e63b5cf71a42d7a23b644aed56eb60f3126b73d06826d274b61edb6fb052ea02dcff91373d2c9d2be09b79413a3edaf79f013ed898e91db5e99ae4871e246a4b680c3143a01947023e2a2e8a64d2af886b01fac89c6f60fd251809c86bdfed7d33c158d232dec4729ed01a76002c5975dffd61f69cff8b56a9eee6928af29591d8789e609fb6d9dd3423c088a22472d78c1ba2a83eb3951af78218a1f5848c2c322d6af5bbfa02282511592083974810d953162c2094b0b4d2f0dd8373110ab3a0dfb81fd340ef68365c5c8bd3c37e520ddc49ebe182be9cda63f568656b428b90d116fc0320314bddb4defc7061c8cd53c7f76a5bd9dbdc3c77917c516740150d0f76d0ecee6c57a4b5bf3a2bda5d50f83c1602fbac4f1754b4bf3224cd7d8dcdcd2be5ec4c95b741192a32d318cd196a26cbc38dce0c65bb4632eef16af88c75cba89cbbf312690c0ce6411c070f2850b9c58a532421a4d7e1c2b693b9b3c3eeb435b349f354f727cb10475092b4fbbf1d394a76ffcafd235d2a8a068322b7de6e0a0b67f4e91f79c369f43e43de7e70c59a69c1b79917bf5b1c1f5eb4d36348f6040d46a3fe40d6d2a7544566d53a92390d8adf79b5f53abe312c77fbd5caf11e763cf014e8c839c83fb9c83b33e349febb8cb146955ad3f693e9a8fe28fe258ffbe76c814e0e2719e012e4c2a3e703ef643184087e098089041bbbed572b54c9a0fcc4ee27c7d7a33de61f9974afdd8e3dca62dc4b77d1c6a4d5a15a5514d9a2f05ba4f9a6f3bdd3b1d53ce95dcc88b7cc87158eebf01546fa763ca196dc7b281e6ef6a83af36bac10656a78c3e693e9aaf8a6645fbd1b0c22edb9f6686dea8368aa92a3f2a59a2e8a1885bfde20527440b5c783d1da84dcffac4de9fdae49c83ab1fe435cfc1f5a88ee7e0727039b8ede1aee6a96bb2f66913559315336d7a392be8fa36bdbdb3fd6da26ca8fc6d7cde534d0cc4f607df43835d2d6d7a363faf91e129edd3a647abf29affbd41b72dcd8abe76d07c349f7853e2583a33740380167ddad8d8f4727a2be81c9cd77296f49983bbb9a2f4bbe5e0bc0703b11baa6c6b02b1af0d6c7adbdfc6676365d3b389caa971194660436e922d667a37fdb072480ca75bcdbb86e8877d4d39a4e66d5e745849c4c613325137d8eb9208b572fae18a9b7e9b92c88dee06fb9a92088e939b3679bc027f11565279ddd6e6e969eba0db4a6dae1f6b189afe41b6be5eb44089aeafe4da3c4ae870572520d59465d0faba73ebed879fb379d6e7402ecd53c8d7d2c663c3d2a7f6d964d555caeae3bfbbb45242406dba7984f8ae75a72b4f0dc2820e818a8f9ad71f02ec6d3e849ad70f7b9bf7017b1bd325f6d8f647d68295b2962953807ed833c006f6a22e652d9b52d6b269b55a3625ad37af4b7ab3b9a9d67e75d992de6ab4cff53a935abb5cf4a6cbbaa3371b977e58496f355a5b79cd5ffbbce6ef2a7555fe53fbac0f0856c73fff5995601fe401d8e9935a7de03d16061de467d79779d64631cb77d0f9453388d7dcfe08ad38b061e91d84d1e7cf06de93b7d8fe3f3ee80dfab6d6a7945610ee69a39703e7332ad30b4810b37e0deee53650d85e3c9e334edbff47a7b4939cf4597f7878aad0f6b1bbddb66f77d6e7f6ecceeab63b5927ef394fe73d67119c16fab45155dee36775da5438e7591bd5bb50f7c97d401c387479f8f6405c0cc45d3317ca6fcf7ba80f9895b6e372a092ebf8639cfb601f3ef25dac7b75abc0a459754ada200ec48138ecc33eecc33e5a75faea84753b36acc3ba9daab381e31522a5654dbed13e6737caae919ac411c44c847defed9a67103bb4ad3941159aee29d4ea64e9ea5371397f220a6159155da37685a2a457e01f84445b5303b307ce197da34907d9439f19dafeb1d9999af5d1f154c339a3771c80d2d0420f71007a836e20afd5fd437fb009585af4a85c2f12abbb86611886d6861534f338c42bf08f21460b016188fd20b13d7a4db4b59ab61c5af4795910c19c959184ce01853eed51cffadcafda1e81491b29668faab6bf8592038b3e75b5aa55d57777d6e7226006edba7deaa67dda2305d8db35718e287d82496012a8e43e3f82b92dd74c6efb677d4b5da4fd67df4d78fd54abad373b682fba6a93b0c71d35e8fa63b52580e03de7f8410888b6bf1033fe03c12bf0d78184ce5ef3ea054cb284115fb6ffe8bf23a74ffa0397f4497f3ff721b67d8bac5819a5ed4fc284747d5a8b9c315a567a69e81924b6ad39cb91459fb1dfa621a11db7cf2a54dd8c586f9496834a47e0b9ede2952d95c5afa73a94ed33277dfa0c889a92f72060064db3f6b973b54f67aa47ee63fdef0c087d7acefa603c3dbaf5b98f731f6b8fee90cf7dacce9ddcc79259faa7b322a1dcfd0a6dd1314f12dadae7f3f974945a1db53a6a7594ce3c899e9eb41d8924b5b648db6bd2e36ab2fab7a8f58354164cfbcc3beb1713a2627f84bfddafa2671d5eabc0df86197d660790a1721d5aa5af48ac2763a626e43a348bc875e8fe6165e73dad9a1f4f3baf893fac78cf7ba89628469bee1f4140790fd502c5cca6fb879527ef916d7bc5095e6fdfb740f0875f67f0b4f5a7efd49cc1d3d7fa039161401f7c0a9ab507086cccd73e354f6b8ed75a6c2db6d85a6cad2c03076f786f78c37bc36b3f0472fdaf09448601cef50c2b1e42a4d4fa6fb7e8955b51ed1695d75aada7ad166dfc986eb9c67f91ae1f5b378863edfce1e36bddecbd86c244eda8e8d6e90c315ecbbac15288ca7d5dc0e35e7ca5521a48f4498ab3c77f6fd0eaa38f3b42d8f04aaebbd6d8aa566ea53fd1b778afae04fb186f2a654512dbda5b12ba7ef51abc567a73fffb0ca86fcd6b8620c620088221d8105cdfbaefef00fbf5a9f808e1be7f0a22a5a52c0320f45a776bad05529f27e2b75fe476fdebfbb0e6105be4266659ce21c618638c31c618e710c41804415001fef77d38f82e73c87d7fd0f451bf650eb15fbf4724dab745b60c6319120850c8b2c1d75edff6cf6e83dcadfcc49e2f3abf7d119629685b4f2b7d4bc1bfe0df1afe7d1ee1dfdab25f64d310f44780631044dcf46b028200b1807f8c4dbfe2767e2135037f6a02b92047003e0e3f7b8dfe0465a8fff517bdbcf4e65c2d08c42ce25cb17dcffe3c5a9f4d930375bbccb348ab9c22be152fe6e13c4e22db11d0fa6b6aa06e21159ba7100cf0675c64e7e7614d6a16b9b20cece3c71fbe695e11e61709bd945eeab22e97cb65add598526be9d0154b5720ed2b8a36bde2085696b68a52522b50d5631eaf7d61833ef5b576f7e4c32c8b243cfc6c96655f74cd2bcd762d2b08a5208e540215dc076badb5a3d639ff984b6d6aaf6571fc5b8a4f4f21f63e7d2520ffeb65f95f66eb5fcfa3f52fe740dda37916b1621d45f314626febc9d835675ecb26bdf5832c88ef4ca7c58aa98a46fb353535f7c5f7f2b444db1f745ccdcf60ef79eb176b5ed4a5eb6bcad6ad295baf4b57fe9a32fc0940505386af2fd06402687e7cac4d5fa679962711dc76ddbb4fad4758bd5822a5e598ebdcbfefb58adf659e377bed8cc562131ca15d7f661e59ac7748eb5dfeb634f1576be2d84cdb12aadbfbb3cfdafeb1020486796c6d2a8ee36ba4a1818d305153ddceb63b361e1b9b988e91e3cd4d4cc7c831167bed206737df3c521c1ace6bc7d36a4ebdfa9cd1a77e415fe0efc08b5163737c41923312db17616818af1da3f539a35f17b4f68f16dabe389b4920c1047782d70e2a63d231469f3331feff1f06f9c2c5e3c46efedfe66bf4c7f8ff976160ab5931a27ac5dddef1620c8639b77870b95ca2388eaf170d0c765fdf2bab9a1a6befbd1783f866c4318c83e3c2457511c3c1713142d1d4e46346e31fa9d7b04f8b48dd823fa377c41804c330875974892f1a6bb7be16b4d6def2c868dbd72f1e77e3224ae3d6d8980641d0e6063379cd82200882578c8db7c4716a62f2172fea0b7cdff735cf066cea351c1c172f481c92246337362459a349928491342f922403e0d2e1eafa22ea5add453b5e10821b9b99d2e0c158bce3c52018620c8e3e65ec8763188bc5485f569acd666fb5ede853c67ea8a3b28bdc3e65b4388eafd70ebdd34f33fa94d1b01aecb58356e331dbd46b5ad7d4608c3108063d1ef4698f40a422af1d2900d41d9134a5cfbc6b08a16d91d78e6a38ed918582f4815fd292bdb9ceea5071addcda16b69a6efbeff0e07aee0f2af49933cde44f14a272439bfb98d6b191560b429f231845970fbea0cf5a55adbca7629d63edeaf71f20dafeb49d3aab577fb5e993349ac348d86c3c3040619b57f0c3e33528fa24c9faaf3a234fdb2bdb2ead4ef38f8b5d24301cf14051ca55c9e598949698744dfabc393f426a1a52d230c8e85a48ca29512565f783dae047902beda2a78f0091b469994d7d3f4c01a2a2532ff8b67fd04e467eb60ba0b7d88dde64d6a64aff3e814812f409b4bd662387f409e4b3463275e1b7fdef687d4f411c54e04f6ed1fee00eda770489f6403c3bb5271ce974a231a6a3b56ea06eda11fa2a79cffdec4adb99b61739912311299d77c95dc9eae09ce04a378b4c9bb930b4fdbf86a339eb598e9d3e67de0212940950c862720cd1c252d4eba658683a7fe78b411d9ae348af19647ddc3dd5a7f5b6bc0bb23ef4b6eb2dc06f355835521a3bb95a53aae90e7aad19034b15d2a7d634c8fb7bf023c8074ef33abbc6d725acfc40eb7444d9bdc256187e0e732b88d740f09aa9efd37b1fbcf4c1cbe38708fae4d95e56a221afd1a083f2589dc65b58fcf8ff00f58842b4fd3580fabd7699b20b5c3b03750b1df449773dac0f69753cfb4f9e29e9fbeb72d228b6f77c40199dbcd4cc540794f60773d00ee43d64d0270fd0f6e7f929d3d25092b67f6c568b6453b06ded1a1cfc6bfeda9f8cdaa1534f7a36a99d0ab205db69501dcf37ba4369786bfbff132ef7667205a8ed3fa3e53bfb4bde7c67e48cbc97bc5746147d923e997c1e7247d374f2961a906e129d5aa1c89740268d647dbce848098744da20e1e68c64159cb6ff18b3d7ed8d0da1cf5cb3833e73d1ce11d4f6d764d8a33df7ed0b5b1936331002de362fe8af79429fe3762244212ad8625b53b872aa0f210908a7efdb92d26a6dadb6d22934a5b59ba4893ec799158c0fa4a054a7404187039d72c2c3f657ff826ac6715e81d72c8bf5c1109c13411a556dff19cde238a3631694d1e74842132c2a54716f3378833661ac121b9b086d7f4d5257f29acb7ad0f5836c2da938e83d05f958996a13923e471ea35167bfdc1378db3feb9e0bdaa0e9abfed3a717d0ec6a0018f45971b51279607d2a93eb38cd9d15c701bd11be0756c7c6a3e9ae253eace6989850d9281ad397234ddcd615aa426d9a648b388bec60a9d624098e0dd8a7cea67faf49cbb9835ddf69f5799ada12e29f6acf04caf6a7ed803d5acd7b7a605bda38a3cf1f65b0a0cf7f771e07c24f8c4555db5f933cf0cb5626c88eb3fc35e777f3d276ebfd758c4679b40638aef439f2d88080461de3d9d8cc37a76f962cfc9476beb54282e8761e9d68b08623a28e7fcc057d8e3c4ef469db5ecd1c369e2546362889b2a145cd95fe6d63097deaca83843e7f7eac4fad4229a038aa13ade18f4f6ad5faf90ac4f63f670c01c249b3865427ab1de5b2eb10fbac4eb50af5d1a13af429d8f447f3ac4450faa279562582d8f4899679d6289698b1cfea84655330dbb55432db1f9739b446ff9625add13f1b703e60576bcaaca52f0c726a6f026de7f579bbc4fae278522bb15eaf81ae9c2d68adb5b6e20cd4da137d5e1b22fdfbfc0864313292c59296ac226e2e854915453400f1d361dd28114e543f9069a2a18b10374a859712aa9ec47055c216d1412dc87de6183549e4b4fd67343dce7ecc39a34992247538f146b0449f79935e6a4831458453929df0c7f4c5216c0b7dea4aed4b8322393f7d794986624a0038e23cd42542bc1f3a0a0d39e574c9b70aa0514f218981a7f776765e759af3efe3518790e454db3ed0117d665b92063df2a8af75aa8d4d1d4132e89f77419f4040bf29a5fe3988d067c64f80a92a61e966eaa41e9f86f8fa0f9a478ba6b4061a89d5980dbd6dcce48c07057dc64c298086987a64f7edad4bf86a0b3f3cd06dff095c699e2a5d6b9af4c0da6cb5da7f6c7bac2769a4b2c518d5c12501b7fdb3ceb7030f50d0e7e589c2810794a03a1d2390d7c71a7b419f230bda3ea5b56a5e4aa362114710aad656eb4596b6fdfb61193b8740edbab4ede3d842dfafa5aef957af41ecd2c6e69855d0e7dd57ca9408e4cdd662d05a8b3fb41697fa7a05feb214f439ee3a2534bb758213b4acfee835afe6ad364ae8dfa77eff9abf26bfe8eaed5e8c2f48036e0766e73d27b8e3e9bc874e7980e889b7fdc3df4ead5e4d4ae2a7650688ec0c3cd99d57e02f038b3e750e2b7d823bab02d5f177a11743d4761bb6bfce1e511abeb33a30b0d067d63f90aad6b8798cd55a4b1d23f4f8b4eb51ece4d1d6dbfe3c4055c8776c60fba9419ff9b46daa537fb6eb48f3591cee1123aaab3d7ad77a6519c0f607da88eabfd610af4c1939aaf66d4dd2c1436d7fda8e4cc7ab7903c2a2876afa7cf75b8e16faa4511cd0a8379dfe236df17f1aee68fbdfb1febdfe838f896ada32525bcc1c0804fa86d40ee049c790a2eb533a460728266011e607313f2f02e1366389a6b44675a819dbf51c727d17a744ed7fdb9fb6e33899add69c02fed76c75ac8e056a429fff6fda2722e6e1b98eff4f180d52d13cd7b98ebf67e7f19cceabbb6238527a235793868626cc63cda0b5abf97aed17bd81c5d1de4b69d44a298c86461457c81098d283e284219cb2be64a0862d66a67c402289a4fa64c7c407dc248657ab95ef1428ad5d1318ee14679ad0126564091920a678a0e1de29140093849212134c2431c6b5e9140f491bc6a6533c246989b9a235c6056cc4268692314d68bee062301937a53aa22487b1e1a4ba9f2c27ec97d66897804146a852dd7c69a2066927b363e105114ee8e1e69fad163c315d785645b9559d782646c8309db5db43074f4e00f104881daa6cb946b0501ae289992a9276750802e4980841161394a092289264cc921294ba54c9000411a1d10c534fa60cd10bc3b3a102534210514210475451c69e69e918f9802858499c60b182101ff002a6a90a14529a8c30e61a5184451771997dd1a1042bb234916489eee63c255eb44809c194132c4c5892c4c51217624a4e98e17542d3c8640c8e6d02f5e20943a31322d28848c9141114c1a09b30bd2c1323749434416304529651891634473861219e80028ee8020f42a460248722a7a69b7fbe20a001f6034d93142460324586d111327bc2130c9b838b508a9bb028079a932418508cf41704d11109555079a1424810668e80b9c1089f12b6c8a88a9851199b2658641112990a5e442622982764a11df1c22eb902c73631e2a26704c5c6f2b87479d916d5d09528804da9a488d8359b5249e93080bc439012619698a8faf910c4edfc9d01121458d890e401245caef0be74d15497864069885c10391c7038c0d20fbf2958f0c61c11b538b97857575c50e158a875692af7db2f36a5c2f9b6de940a47c607d147af5e382a0127254a161233db7950e28920a298d921892f370aaa702242ca01490fbe4b85144b6ec01a220b30158822526ae0d2830d4844537429a4b08b420255a0a470e243a2040f583f786121090c52c240a1a0421114b2b83cd1b402d10c50b7f3f799ed4c689972468b2359f08a302985b962c9c916532c0161ca6189119a606286138a10a1786244548397245034d1408588614b13475ca038214de590db742ae73b62d3a91c743be63dd8deabdd93c506a26d61e014e19faf1d72406ffbb7e400b9ed7f2e29a561290dfbd77a4d4b8075e64ab3e4c2d8a49a4318a47a43972a0496df0d234fbe1a25861574b7aa829116375ea8a2a34f461fc8aa4367961cb90786a4f46e5ebe13370a8ae0d2137d2a8b11bb1b3798f9ddbc9480845bfd5d6184041bbd9420859b2d87d03121a0a2c38d488672a34f4c112577f35206ef36c48ac04216ac1b11572f062f4364f0ac69cb308b1b4ad0b57e18c184dccd4b2a84d44d8c8d5ee640b9d97248c52205dc0a372255488c0d4460703770062d3d34ddc46bbdbee88b0868ce221bec21cb14ba9b97d40a951b11aff788685b3983f06518e077e10cc2778da26b1c5d63f9c3ca53f923881e94cbe5725d2ccb203f7e8c5f26ba4411df7befebefbdf73e900ed185efc5186320ad6fbdcab0a4175789941664c94d7f36fd0f2c88cd5357d3f6bffff9e8701dfb3a47e89dd76a93af36d9ff00840dac7dbd0d9f52339b2d045c337b0d0cb2d9bcf9f642c75b447ff0c3560e5badb095c3320cc37017093f34818422f51a3ce2ffb759d900e9709f7ac3ef6a650c24c420344d0ef80642bfbe583ebd5954edbb2bc88426631587e34cda9813a8e63a965601390752541cd5abf62d6d40de53377ea7b98fade98806229ee4c004d6cdbecd71ced0e890ac7d8778f8c621f3e271f76c63137fde982ee09641ec50d6f68aa37699cda8f8c46b6f16d2febeeddb92b4cfb6cf7ed8a7def6ca15b95d84e4b29465c3312bfab4cdaa8d2234b522c56e1f31628d10ad356d554613fab46d1b3cfbe33527c9a5ddf69f511b9967945a293786e5b07bd109a3eefa4e7d7091d5b951ba54285a61d3d3659eae238ce42aaa79a24f1892eb888452e90d17144a0306dae38a426bfe9e370ca99aaea30ca4d0676eb245aea31356031236721d2d1d6d7f171457512df2968edea8aea3a3a26ad2ec604848b0a41c15a20e88c7f6c433635f27bccce0e3a1a9d224671ce74233e4767450459f94aa878e2bb49a5676bc2058d3ae2f7bd2d9eaf892e79ed0679e01469fae84b3e5ec8eb381477038abbec65a2ba5b5525afd52af9726bb9c5cba9e3ef30c2df489734cd9d5e43d27ceb99a5c4e329871e9ae60a39dc6465e736bf11186e235c7455ef39c7713a5e1bfe3629ccb3eb0a713a6739cf339a34f9cdbb6e533613849b7bd89c68ad2f051419f38c995e43d4a14d6cb47883424f4699b11469fafff69323cf1b03e527a4fb1dedfc03c501afe5e44abfd9aed3bc871530fd747ed9f36a5ada35332106d7fec849fea571cd21bf5fd5d3b7ae3bab4b4b2f0c74b501c30276a8d1dcf7b30bd61411063e3f2d2d30505c3a2452b89b9ed0f73a2e288f1604ed4fab8d6d74abcda944ba252181620251bcf0fa5e11fe3551c05a035fc71c478dbff5e9fad567a2b355d505e7317d41417940bca7bce9a2baab6136b21b113038f8e7868d717654c9a478c4d298df3e6464d959811e93346dba96315e27ddd769c1ba9593a5dd6fdb4ee29c730b4fdc758be394a977fb54af7d359e1a2cb440c9fd2c23256adf07b8f1f52e4763a2e2ceb6759bdef23fcfbb59a43a80d758d20b435f11156c1c445f8d614017ddb64659bac93120f93d1bcad81ab81bb4f4de95732faac56fbe2a1d336556bdaa629f41026caa394d98fd251f59a73b5da75a76da187d555d014dff6d7c1b348bb22d9c041cb7ce0bfb20dc05f00057f0a687a96d5f1f7f75171d4edd5a35600fad1f10364916e9623a42a48484953539440dd36d233a4d0a73dbabf7b75ad708d203498b381d20095ac8e3f8894719da7a8a44d1656350bd5d00c8000a0001315002020100a060462c1703c1867b25a3e14800c749c487052968a65490cc3300a621842084186186000208600651021ba030010a4512b6f0f96016981101fec82662e36bfbc2197d0344e0d476f8e86879e6d5aabe9089bcf8a8555dfb11521b355790dec9f8dc639fdc2289ed675eaa0f872e98898540d895ef64141876927e133de1924daa893ee646d381c1247e1c966b1ff5efa25ee79e02c0bd12a05e807b1b16b05e6fb9f32a1186148073d7a36216cdbdcdd5c81d4e58d80d81f526a9ae63e5e358a171ffbbe912d6e3bd8650abc424fee3e1f3a9a4093eeb200f53be52806125196cbcf8286632c7f208d5241ab1f2613709eb258147e9d989395c84d7d529cd7b2fdce75d36d7c4dd99ada2bcae5e604b1f486e7143dabcffcbf0a564d2f3190c04f8268b8b812d0ea44916828568a3c1b2b24109a0956cb014a9cebeb8b498a4c5f4d84c11b9e0462251cbbddb08ad7dad06810248cd85534dbd35827c23c087d64a191277569e2b034f0b31e6930915fab3334d8134c91388710931a15998daec2c3416a989fff4beb70c2403753438a6c9e5e0015953d989ccd73d5cfea618579d22b0e38e34888253afcd0bfa2143bc6ec6ddafba76ac69016595a5473950b311f8569f0a70bdc5232a0c8fa99729a90414dc1807af20d9f197167d5f43b7fbbd607bf1da3aee1767504deb70b2f4e8cd5232616bd02a68dcbf81a47a30e6e26deb5e5a75aefe8b0bdb54128f4c33e19b597a1446d90a9cb756a3d9160fed0ec0484960175ca1900b1c1bbfbc21edf6d49d6aba0f78cf66835f8b4ac4238696d5f1475332d38aee9447ca77511e011e552f529441d53657db49f61d02ac0a049de0a917cc48005bf801ee66670a45ed82cf8b28c6b0d4b9ae30d28e2c06e9bd78d39c09c22439c37166a03ef33a26a056545d79fa2d74a01b6d918e327cd959cfe8cf740b382b8480d31d80a1185ad9b575b894e94fa9820ce8d2dc5b4d5c41aabe819e7c07de5af02c8a6d2c04070792062451f230306e6c21c4e8c95031027b31234c363bcd991aeaff8f0c589d172d5faf41280a7ae0cf994867f8a850d12ae1bb94df84c89dfb8d89f9d80e4de8c4f76d3bb8230eb3994a93d6a4103e220abb08342815f6b22658340474f3d13b53561b3185238a366a6285473a0419a85fe447901243e70e46ab41f7a88a4d15b13b53de6a6de84dd560eaed69fdb1800bae90eac22796f6943cad33888eea253e9d630826fe5d9b74d34e9fe8d7d4cf42118cb586499a4484c749fbd3d40a7ccb6ce0ebd95159b35254ea595537b6ce8011f79eaa7d586eef1f04c23644acc35aad4aa50e47e64b6eb7636e52b51164cc9e609a37df7a167f406c1b15cc6f0dc5b55cff682e0963d6170b8536f5eccfb0a99d8b9101f8b68ef235005d4d7edde3687f51fd1255ddeb6574c4ba19b3a9388f6882713ce820971a6d18f038855b6aab946f2e8de180bf3ebb2293a62973b39b4cc944b083fc93f5c1d7f4e835fda4993472ff99d974ce99489840bac3e5d72e4720f7d7373382090a34fa41dffd18929b7b2da971cf25f48d515830c29d931d457c2fbc722c148f6f3ac9988fddf4dfcf3ae7eee04811435e53813cbda948f8f1adf1eebd58b2dded0dcbf94cd4eb935842eca46e547c62be8d07fc8c1136b37c6ec95583bb018218855a4470f6b61c7ec71582558c0c80cabaca7cc8d990b9e25198fb941399eaf082b427bb0067d480a7a4b37bf6a5eaeeca52ed7fb0fd99df97a7477f350a79619331750a635dcab34e2819ed552b9089cf8b7af9159a1cb69aa0d3b2c3e6275dc3d37b37bc42a1d6573942e5f702555a39d996d61ce682d29411e7902d3700b56b051307b4bfb0a34f5481ae90813cedc7d97dc3142b06f24c21c4893aa325916020f7dae8a941171377c089b4264464c0c1d81c27001ac675965dfd6bfe36538a0259688cda9e03cc59ee90b644604bd3cdf03ee1a0bc44c7e3a85e368fd845d391fe5780fe5a54745e6e7bb1c19c1715d09497c3b6139e132f0f246ee7b9055f876847d7771d01cac71d4df2dde332ae4f4650e9ca867bebc3675f052fb799fa561fb21e645491a9d738d906da1286687d4b07df51f02c81a9818bf3c3c0fdade46f27dbd632f56e360dc2fd90e7698b3c92258bd1f3b8342d32b3f9992526791348039477dd8d5423aedf43d4e546858bcff6cbd056016e3b731e1b971271bf2301342bd4dec5b3ba945411602dc518ad0fa02ecfcd8e9ab8a4adfcb05e060c137c8c8e2b93bcef071fd9315719ec58973a4eb8b3852f3b1152854f72eb614141d2f2d805600730e6d41ffab6e3be4072d03a9e859e02f19b8d464087de9856a62d3022f36ac35baacf9b3f0b0aac90fe9d6e84ab72af719fef568abe63aaf01a62442103cda1ebd4c62a9adf94ddeb18d90761c9debd0e0d6d7aba6e406c156c09276f02a9aa3d0e0a7926fb1dfc5e2ba6e0f26e6718d012deb76c97aa4d45b64b283e84e31cfed0e925eb2f4f2cf94c0afc323d862c30ecb12f8747787d91770d54066eab186ccabefa90e4608f07a9ffcda7f2c82419357ddccd3553ac42f52d36e12313fae3cc2068e5318cc356364ec1699a75f32dd69ea92c1ada7957c00d448acaa463b9c7c139dfd692ba98326d877df73e00904898886ec322e4c7b7addaeeaa24611f90ca065e72058f27f6ffe922b69cad830a826ea2540e3278e4b309f449a94380abfacc46483c9f96398fd922541c78039af14dd81ada6320fd2fdf63d82f185a25773cc9b7157cc57196f431f89d8d0e29d45177643d0f1ed274ae96c207fc2c023914e99cafaa1da8f6848ed4179b8e011be2660ce25cddc77ee2c1292d376f99521594f1cbf760cab7a5c8438f1256c2c1981402b5110f20af22ca4d4ab1b53c769be32ed8ca40e8f12bde4cd968289ec493f1fe5034021627ea9e8f03aba7bffc560ca360da75a1163a8fa2f2d2648fb3acc5cbc1bae72f1d8a6643558d1c39c8ded7b6ccaed365fa3451d5f7facba728aeccb6381d4225321819a9e304b3a2dd95078c52a3a072170e666e749adc6a71a7dfdd1dcbebfa902d59ae70272d4b46e36d73d79a77327ddc6769784d551e631ffd45140f7fa530137c48ba2d52ae3fa5038149b3d4909667c36b7b837a5d4cf85214bc1351a361f34ebbfd2f1e68971941164895e4d53bb7124e4c20eeef64c4533485879104be43a745f06b0473b1ada151c330b0d497631675576e0647cfbc45905c4fabdc4d7cb256e8c353a8cdb68f84d3187431d35566a8e8df67006b866003142a5714c8e79631f7ace0ca649bab087ba76048acdf03931e064a75f516c9e32385da87f9f21ad40e5168843e9483c2de981329a5aaa5c02639b96176a9cc1aa8cf356e722a16518ed10b2811a760e46332956cd4367aa70a607c57d7d72b849886935195b5bb5018f8169a7e4ef1fa548cdf9f92f3bff52aca52d68eed5202565e336ca6dd42d1871a91709a270abcba51b20b3f8a2185c73fd000b4559a0d04aac71f6a9530b7e7a65cfce23c08d46c0033ee16fe19a9164868f8ca19f23fc749fe3e4871ec8cd2fb6a559204086a067ccfcde1037691033f17bc8d7e0acd7555a4e394e8960b9326990f841f17ba100ed488a55f5eabac8234de195e5faebf1f5f616d14b1005d5170437c697b32c5459f6f7cfae2561175fd0bcd9199d3b97d5434991d93b897df605c0552e4e0476a2115c62b3bea252d689e744755340e41392c846733c28257c63620cd5221b524bd5461e05b79e85a7a6764d10d29c7a5bdef329daef6e9719792ebb146b4dca378115e0bb9905e9a39ff16e09664435f405736c380fab244bc39635d9c986df272d111e0d5a859f6c99fc7c38c618d30f287644b7bf7208ce110ab7d40dbfb433bb4b224f3ec7f2787aee8ec9d1b472c4078847da3b5effa8fe2ca0a8e01560ae0f7897ba3afe91cf7ac71cd6ef22e2aeed19f3b4643ab0f38024c4c22f774c8766745d7c96f1a64c864d77921b4f4f91069f1ea4ff1d1f8b55c98fe2d7a588bc43f5b7366363fd515dd6b0568033697aabb13e9ab3d74aae1a143dea0291838508924bd1568553b255761dd502fdff688df3b26bebdaa94d2695951cb3e5974cda2a56f907eca51efa3c9fae0ece160b50215d5db08f6a7a891a304efbbc876e65e2a8a33bf4f6d23d9597d2641c673418a33aa33ac9a58848268ca09d5d347fb79fafbbcc1521b42f517c38deb0fffc6165777471750f2dd5d8525e32fa36825c2a17e9a335be698ec08877c9be6c5fed37d46e27d746d295a1c638488ad76a44c8e4215a798dba22644d52afbf7e6529c26717163044d71ce4d246a5d2af52e81d6fc9773fb97bedd2229dcc30c5b99428157001bf2953e5ae128a24f2c5b162014afb9286b8d4caf276b70a2f0efee152af0cfaa34238aabede63615fc5354e84c59770fa26b59540da4c11d02639a4114585018912be0472b4f1f2a929671d40a50d885c65f7cb550a301b765d3038b718529c866b57aab0f4fd4fe7f7c0fd145e1f5158aa90a26107a9c1b24337ce674fda79b5ea00b0b2fe4d68186b373a943c2c1125e362a8624e6618bb5702121d6f5a2b04bf26671f4071a6eda6b95b4ff043119f05ac82cffb519640e9050fc10d798c50e2088b0b8b750d3a1dcc246bd4f318f10ac006666aa9f2181e4600462ec44ddbbde3cc517d933880f259b597d8fc5e95857703a89342136bc03ed99862af913324b9a963038974eae86aa712cc408325beb274b306930b1818a1579566c7c72c3aef65aa8bd578d9b6aa83c1bef2aab7e1caa9d2e835760796e87888d9073e038b4e03fb845b9d17693ec48d7bf31c182469c886b56bb324b469ccb710d47a1ad7d9f2e244884b8acccc71061f2c04ddde91bce205b53b482e42d6a82e811019211d86b53157e4e7dca193fffa15ede858c30dfcefe269541a9146d20cf4febed8fe338c406083697dc5e57793f3021f5e53c135a3e8b54bc321b7c391c7ed1c2d911d9c3d0b57517c904cad9c21f2850ef22ac5257ae5b502ad0042015f47c80031f2a55edc9da67aeaa742d7f3286972182cce65fcdd0e01b8b92fb0903ab912445d208854bd160a516fefa56cdf945214cef2812b8755a56a9942aa31d686e2481e785dd2b1018771a8538b45136c1538c693551547a17faeca54fa65c81d6b9dcbfff63b55e316c35df219d27ec51153494b62a0ecec6e37709882e09c970ee1633bb730df9fe9079a741876b78efe280c4934f50077f277d4f05accf7d6f7f3ed10222432d54e332daaaa7b31072b0fb053686a88953adc31898db0357ddc4a5041c2416ece3bc14aeb9e510c4d0f3cdd78e17df78268d2887495666b5380a6204ffd45c1cad81564b3b3e65dc6b0b397d0d60605c6f32f7697c7b159a78b0c444167eedda0d655f6ff1270a88b0080df4e9a72189b7f2e1367ac7d0c0010442e8d40a469e636779f64ae224840ca5042c0828e81b96e19ac5b79f1cb0d4ce0046aad626917d33bdfe430efa8544aaaa87158dbc0a5e3446e1c0fd08c5e954d0d5c5a0615eb1f65b8ed8f405020bca9127c291d8742ee8b1bd33e723008b9c7abaef40593f9cc84052f0c12b64648ad8b4d9de15505c15e16798a9d33bacdb9441dbb1ec6521751e9db3c5f56e501e5ba7323140e4ab104d18cd17b27672dbde6e6d21d088925da5526d8f9375e7abeea3a30d96dd7f7b448b5334c474ccf6a0580443505b2f10c780d383c4cec08a97f65e3b1fe0922bb43b9e9c21b377dffb89a37f79ecd86860c06fb5845348a9c4c5b5d31c3c914d2bab31006d7ae2109263aa2f5e5f55d6a0d9d37dae70b5c02bcb137834fce1a2ae9860f988299c21f4c0447cb60840746e0bc42c1c98761bcd3d5431aa442f0b2dbaa59362963cf90a9f080990015d54d77fe60bbfb4347625a987e1cf017f28391827fc56e6d9684a4eeb5f30e0237ab86a045d2f83f283b4fcbbe46ab70b120d791d89ac2d97e1c2cbb9a1eaafe0f4ddd57b473a865199fa58a6de11ca142d41ee08a24440f51cfb2af2d128619fe840ce0bc780f861ace08b0c1bf80ece42fac32b33430a87bed90edb0e777d05c59164d6654325e400ee1db26710ba5a0442111d551aa20ef8a0d990ce5824831f7d4b789cd22bc4dde083227bf9ad037609897bf2cd222dddd2fdc466629745cdb4de6c0606270c0edc00e2550cea2f9ae08c144f6595ad0a864e75eabcbd59a7244653351bbc08dc0f34e94b0c79f2f031795e6111f54e8fdf463248da042c75fee2dc21923617fcbc326da08bbd88d91f7360f38b77fc59f2e3c62b6f6613c60353bfe96b35983fce293a600882918fc0a6a894a18eb871e302081f1f6d5eb9361a16824d355949b30a827f16c37954204aab50476650becb816a26a5f772e2516660b1f5ab8aac415855045c3383000e54202e03a607f5309136bf7e8c5531333edf4371103838b94a739e61b86c27e4c6d9b823e3079d6748839fc62f229aaa7600fe039cf9ea6cec081b642e6e15bf694eebe1a1a4c23f71c9ef1c13f753641e2c540491f77b99924db78eacddde7e6801882a41f0c590b05e28ba2e50f2208abdb880d1e6107ef5e7d89f3b0f7887e92a65e1d47985d47b0b2c1ee2655d085ea9d70433df7169a76926426454c0f56f24efdafe8e58cf46286da31712a1c16cc16560ed62942f4196402b26d9b33cdc48ccbbdfee16345d7c06344138cffe6527473d5c16b339b784da1bc34238b4cbce7441d9f6e067edca6e99fd97c4036b15a132b130b0afa2c53ed910e0bb8d5f9b584ca1dbd81a6c8f62e672764019012ac8d604d554c241a860bed37e53ee1cb7495b13216b71247db220f1435a424dc89955241ca13654feacc532180941ea35ac89a7f38c7928fbf850e1bec76bb690a9e91551d4208ea3d40643d30516d08fccfba71612446af26fba839260db6e3f7fa0db83bec3f4df66501eedd8cc081ba9ec392dd66354bb0ede041c3e248a2b66db88387aa496312d390cecc83e53b4d0a3b674835d1bbeaf49b8ce2b04998de317abdd3ac28aaee6a3b84d5533ef1d89f6c9d1d68c86e63fcde501d5863e0d4025714c1fddc1320d1d595a0507be1340bd420516a1b4d2285fd703a1c23adfe30990dd827c366f9c36414b42a10a19ccf9bbd65dbd0f027132a7fe28f1d059382cb933bafb92e03ac29781f5a3d5278691522e1c41fa665b1f1d3694ee634036d9de0c73b7f58e9aab5a0c5a7ce87704c55d5b183c756c0134b2408be3493e21a61437eb1e1c85e80c82bb759ef2e88774a9a2c8b29588f444f460f4705378bec0eec5c38a629ca9e91df1d50287aec4061313b3c8f7d9cdd1b93d3d39eb5ee37f1d49b687a636662146abd94561fd41ccd9fbdf221f326aeadb25f5db829b886d921fc4425757669352b89ecb7514b1d370eb0883cebc550dc801a0dcf98140855231ca332ca02b7d66543d12690b4667737f2e8911142556d92ec3c9e367a56f2a7e74569eac3c2a5c76fb9e39ca4a1e8225ed866c98ae2a66c9872692ddd3060c21a8c53d174401a319e8b07d579711d1760b51cce171332222dcb65f6ee9361369f637d752b2130b0cb160c7c7830109ede1eb098df5d0952f4f3a29064c459ee161dee66ca85da29c86197a1e395a7ecc13596db75e9ac92cc5c04407a29c7445350c03bcc042d4da51c0f5e4df0162e34c1adbeb9496e2c64be87eea5152f17721789de959e22bdc8c404267f3eba7b878b03f383c9e7eaef546dcce618eaf935c642bb3f6ef29f40e112b98fd100128b80965b1126d8726124c930034be46eec5c57abad742b6a9a4dcc6252bec4bb98f4aaa92abc051ffa78be37fbe792e1143a78b6faf36e43e662cedcf8add1fc619f69dbdea7d1cd81a2d73b6a6cec49b030aef86197d32a8db9cb685f5f0f127f4a474fa9030ac01b28927b1bb5f86099b4ab16d11c7f651a309f735f9582d334447a5e050e402ee1767259121193f0d39182a362f0a0bf25c222a32612a90e0e7ee83f4f2da15ee1910b58f86d3ca2a4711c0c1556d53e1118b86263b7c4f5b6a99a580fe9019ee193e48f482d58155741f6b0449fc11f79ad4dbd5ddf1088e6df3dd6d3f43250253dc66d571886c3d4f2e47a6dea04ce0d3e289c94718409a87fc315e5c3d61955f721c1f300f60a97ab18487f21950ea7e19a0ae446cab9c49735aee9465e70ad370815e73899b7f7f48ea38606282bdc6e77d9eb4c21b92b8ba1ae1107cc92f302d6bc99185afddc86b62d716a14a09a966c3adf39fa15bdda7705e235ad2af0ebf0a0ad5fdfdd0a729e7ef0c5fab554cc594bd2f7f64ff39fcf3ce42869c6f7eda350ba1500ec8eaf1c7cefabba3cd099fe0ff8047e3058ca23aab2c9771a50981ca33d8fd4adbdc96f4f49ddf218fa53ad545a24046287cb236f155eceb5aa9269d08145e55f814837dc7ae70e433ccc1b19b8623b58ce244088f965c4742fce495ebaac6874987860bcf7822b3a25800a2fc7f3ae687295d83c55dea505978ebe43e2f655e9f1677612942648fc79b714647e0a260c6c1d9ca902efdd8be93491d1513dc3bc03fc736263f9e8fa8545ada370b4620e2ec1712f921b3dc769d72a82840e0a5b0aa74c64678fd991a4f9672a3fa0a78e9ab64c0cf31877b52153fa10c0adba9625ba4dc73e77ac23a277762d929c6c4135d3634c790cdaa3689528f750907c4dd6f18eb7417fa79339d6bd688922751749c386cfdae7599b74a0b9d94c2fe4c5709a41c5773495f8b64877f411159d377fd3485909c488119994113f0e9796543c0d6f7cae205270ff879bb22b9a74aa902ef0b7b32d4609ab6d49e52abc4fb2b97ed350604fd8863942b80d8b26a571a212ea882d7521de9dc4fc93d4e293a1a677c7d6335564544d255cd4464b42d99ed9e149ac9709b72fce2335a66118c4e0022efad9c199f1971dfbbf116ffcfd4a91d65f3c24e4fa07d06f241d8dbed899b75da550ae2b5511871b56bdb38626325c06a0b35b822b1f0526fefbd62ae36571920e722d592a4cd4d65c258b80c926d0ea00b736a00cd066496a649e5b9bd04f1c053b5221222bd4b1c52dd05bda79db27714f430e18e5c01fcf4dce216b2a10b6e6e2058d3c44e07674d367944acacdfefb58691066c293c02cb3fda9a63e3c0642c96107574e66d6e8a034ec7e10114fd0c3d252bdc123dee302c44b9e33cc843e15ce27f5e02e1895fadf16665e698851f13dc89e57de0440105f23bcf1ee2cb3e973ea53a18e212666863e1a87651251c5782cb13fa18897c14e18d6396b1f3790ebe5a34ba7b3de440766411a93a67f5b541c241fe6463894b627796e7498cc259c296f28e318940e88ba8dd230672a14de89fb2efa2cc708bf6b25e141ad25199d070b01c097a9c54523224f40428a6b2d762f5a8805e189aaf629e6dc8ee7c6ca7576be8e53ca3502565862d242f7773d1144c876d7c8dc7ab73da3f6fdd8664d95cb5b299c5b40e13fbeb85d11d71c2a15a600d44beeadec73a465973e4c714389228d72523ab2763fb19e84282406233ef956b3087c14e9995322f182c6f2e4f055e074a3ab359cd08834102283827cca89c4cf9710b3897509470cc47b58b1df00972345324a006c33702e101160309a20656eb52b6f23a88874860c4a7b2b00986e90ba01b4b5efadfeb8ca239fab538178a1abdb7464428ae0a6bf16b98ce488e22c92e25dbfa01511330cc75146eb6c105e049ae212f121442f86b8664181228a377005d47372ef1ae4241f90a2990d6e458d5ec233518ca055045e14f4cd26de2e6e91e567d9aa4ef61b213a1f25647ad982c3ac724e482fc24edc8f480b9194d34cfd7d4f59ecc3af13ef4aa14ce0f62f52441a872f96be51187e013e42b14ca9f3cce6e085c2ae6dbad1686b74be4dde13980be259eb3edd484cb1c62cde5ffaaa3d71193626cb31478db58ab19aa7521217ed973bb9b6403d35dc8af128dae102008604370d71d3df9f0a6cc0d7cb581b6058cd05d9766adb2a53d8bd22fd80ad9cd40022486e7757d628a5cd57cfac000b1c3c15e30b90d96e5c9d9b25acd71c5e1309adca93d9d5dbdae7066c9f12e6b86fef16ace3d76e596c3fe215242f907e60ef834af38a2ff9558c774822d168e33fe9767b3c2e5efbdf115051672aeeae93c7af5902350d1a051531487be02c24ab83e4d689abf074a3c0816364eb1c651660849ae14e432076285a76a3a015500b38ebf7f5b037a71926ec9a4075b0328ca80723d6f7e164f02e6658cde13f0e3c624b77cdb04e89976482939c577ee4d54089c7d67b96d6fd66c3cad44b98a73302b3a121862f866f916e422957881dd9365afca2b49e95e624cfec3944195126cc38479f503da8ee256f2337e9dfd1e912587411ffb8342decd6782a7be4dec206543f0983bb0599631d2ee50095c11a90ba00dcb14f881acd38ca16f9c29efcd7e101ccc09c59976a1441a5f069aa2b555922d1e07fa52d7f21e81ac1ec2586e2e73fd857025058c4b5ce4f967d413ab037621b0fe9a96bf0ee323c48f381c253640920db92c1a56914bed1fefca38ffca64b61e00a81bd60d6703508c757e327b08c857b1dafe8412562c83d71dd46e1999fea0092fb31612932b11706e89c1cfb9ca82d50ec1760156ae563c54f1732826472c089c9680294e98daf9831deffd9e40a0f70a442396d586fef3beed2d3772b39ffdd7cce534644f35d6aa5134cc16694540506bcb4c381c963ec1fc9483b49ed11604500da58b35137bc409b0590d02a35462bff2426fa5938759fef0c7d598601ae3b89f096016441a585fbd272a44e1c62ac4e652c4e05b22f2ff301dfddaae29bba1f9f739c52b1400ae021d245ca25f268582f20c05c31f0553b06047964362694dc6b8519a6b3ce251e3d5d579f582a0b47be34e2c37ea98449213b8cb4bb1333d4fba19cfa9daf82f727b31eff7743aaaf2fea6a3afad74ea1f112ee51c1bdfc53452ed99997c0f4334e8d2f40eca1af137578097f6fea44527036fbe0ddd2b030b99ad8a11a12796b59658d70e12586f21abfabdd29d6a0ad321028d84226c5644c824a3b2bf55aad92f5147f7bfe94e5fbdb6cf14d8d0410e56a89ae185e65159d8d2a6a4793246812b90e9a08c99eed7e78699924e1417e016ab2e30d06a0e0246dc89c4942f613193152994cb88d60087f0e436dbc7f783e6c659bc845c16b120a5f71336e7bf0cdbadea750c9a9e30b19d05ba2a08d1ca844bf258b156f2af99564b0f24d0a742fbe82adeb1eaecadee91d9dd4194fba5aa44e84c52ae7b6a2163b4b6af1b9a71681bc13e1218e224cb131a98b85e655d7f7b26670a2502e8222a9c4f39b453e3a56321cd33ea5622be230af222fac891dd5a6d84c7d143d80e906cc3c3359ba9d1670bc81e26d50f08d0904084ff72242223f4bb4ea48129a1051e4c9ed99f82ebeb927e27c0754e82d5dd3868b840dd3d85e664e350f5483e9c287a04be66c6fe78478300088f80d0410ce9691a23b1615e2608ada9aa2846ca660b52516b5be1865df585689a6eb2034aeb968887bc67f0965b09bc7c44e86e4cf64dc24784c49278660d264a49071e171bb3a522205e663ee83cf4a9058d40103f2fb7d561cc28e35efd704b88a13b307c0aac6fcf10994f6f7c790cd8f67f291d8fcf97c5fc07883a1d4fbcd3716339b474d2554a1d31c46742284930a606c17dd7663e46503b809e6a76432c512c7fa05b136e1b951e4de635766161d74cf40506412e416d001ad646dc956a7eb8f44697d21ce61117058db2bdf19b2eb0792dd64fc072415b79a5a9b4d49be28ef4c4812f8d7788dda2ecbba7a0dddf66774e5f82b2fd160ffa673156d024221484a541a26773cdfca46b01f709fbc49d53d525a7a00efc01178dc181580e400ccc478023715e47c035547f27335945a027395fc90b26c6b504474f46b241e6461a1b9f9d6d82d2dea1f1b52befbf7464d51d24df0d6bab94a9caf558f1892df09e22c45090f060b5445cf20f1b9986fa42c9fce9480e33e66f1fc3ee43f7b98941633ce52580e4985abfcb9ea79562d6d908b1a79a54df1d24f095d3954c7b0e24d5b90c2628bc430deb045c6d9c5ba1d01b6ab2115bc52f0f0533684e8209b27c6d94571e15b2e49fe1899cde9dec625c21dd1244781ba6885608f8023a3dc4b66e1428de896b6fa04597c4919a66f74b98823407c793c0c4e92f159c8480e64bbceee2c0d8e035986a8837efc80f5f11f09ec269189481e72b811e5371de9fbddc128e63f0c2ae4a7aee48452bb44d2eaddc36c8e0195ef30dc8c704d1625d9189aacce69a9ff16add346449fc657ab9d7015aeb73f32aed10362b267f068b761a0224ae21a37ae16a29a06d24e9340ad282213cc679e8796140743136a453d28f17f67da802095b2308efd302ff493b61bcbecd7103200589a69689f05af65ce91df00bc8709086231c123c097f15f17438ac57532d9713181ef7ec21e02030879c393ee7e96b7490fe3216bc5ec5a896be11d5c8b15e81f6f260f56b89ddf6a47ac26f453ff7b0cb8685dc364b121bede1a31b62b3652d7b6ad69346daa8300167fa9c46f3ee183dc1314f1e2b8a400900ee8d4128c71f31bd1b21a7f4a301e83edaaff0b3123ab1234dd64be7784f983baf42ffc8fd2b58b4506dee9dc2aadc6fe093ca4d82f50af40b359b59ac435e4e3372157731379850961fbe19db79c89b27ce4601a82da16a894e0e2b3dac6b8229e18307235bdeddde533382fcd5cdf35bb124d8130fe57f64128ea517f5046b0ffe85bd4d81a0d7afa60eb145a8e85fd98e5f21e7f3703ab25489b93734ed147b0b9ec9fa18b03bf97b356a0a62538e48e59e13e04c171428d88ad740548e45c5aeafd03b6455a05a03267098b708ffdd12322c4b4df7c1072d6683f8bcbd452d47e5fe7dc4fc4f50562e679f6e2ea5800099f31b8aa4e0cfd70e3d57616b1ad15c6712e4680cf51d2690ee98d0935c856e18e97069c539d077b8d9b468aca181bb3a497c97d12f8f46646c178c95093938c6a142980a0d01047278997448091faf63f105012f886b2019147ec3e682c3424249d470c291bdccdba88c9fbb4002ef59293d10b66d77333d9a8bb0294a6f6d33801f88360244dbf0ea9371ba93ea831c08c11bd10e376751008735dbb88d007d0881e1f8947961931ac98882c40223cdb8863ea9f683061547ac635066e26e4a6254eceba3e2c681ae33efc89e788c7a59040aee9b4f0693fed67ae9aa04f54b9938c8a7b454c499d048116a605f4752e58e187779a2efaf2c687e0b872f70c8aef9a9a077c90fee79448109674a0d380e5c19d57d3f0f088ea9bf9b2742035fbfbe90af23599a30131cfedd1a6d73075ad5eecb1b53cbdfddaa383cb31d337b261d72c15ef2cf42f6a8a786909ef025101b9c1f1b401b76d3932730cfc9d6dbb3055f9079c3c8646892e0ce25fce86da8e47f74ba09a5577f432c5bf246f60a57d4da2a0b90a6ca1f31413e08fba65923d094d335f9cddfb34c2275353067d073344855d482f3150a3fe8fdc181bfb241254f22022060039f102e2d0f9e6665e5223d40389d01b314b14964fd2846f38d2efb0e9609eb63713ce2b014a8270520c6a7e8a935df90ec6c224cc0eb8427b32205da611f4cd11495e4238dda443802767ee9513e9c714251cd531c9716377d3f06a9096df100f132a357d0fef8a8049d4c192a24e2a611baffdc7e724d00c92011badb8273b1b9cd449797092cab741f94cfe038f1f2c3a1bbb0c166155416aae83e11ff8d6c59ab4d8cc47893097335c5fd52482710f3dcca2ab6b8c9249deb0deebd2418104c092396b6b26d1a366aee5168d22d2e841085b92fc0faea26b594140fef2f842209e61fa51d28e6c943801ac97772f9e2466782266556a8808dcafe991c0939fb8acb6928b0a9af05214a69b00a4a85cffe5a9148d00677acf50299a72eccdc6d544e34e9e58aff86142324b1856e255189057691db3706171d92d57be844a5e6d9d4a63ef9b9446c18309c99e8f1e93e18f480d0eb3bc539433e43e330f4b60a14d771ebabdacaade34e74fcf7544c005d299199862d080e69b4e100a24ad5a8b46191340e01442fed2af2769bfdd74adc14da62608158e9cae97b8b6540756c62be764ea5b08e8dbce963138943fe817b8a8e4ca9e4f52eb841c8d298848c5d7aea9c046991bea8e42440f4d8e122109310b6c77f9eae3595170a6f9386b54ee44185a0fa713c337a26822daecbaa029628088a1d3db22e91ad532a6bd647a066bd5e903246396a64ea0837685b13aa76663774873e1e2d215d3070af307f8605af36047705f18cb989f8d2620758b5b4cffb9686dc4692beaf484ba34a170486a48ef68a7b8e3f74216c6917f2345b860a52fa31d2b459e4e38cb3d3249472608950fe9c1c55aee84d429f56dc6ed6b4a75c9327ca26120cd4cfb9b101fb3808c9b9a5810b31d663e1936422e244773bb19600e8d743e758e708efa1376c1394b3a99a24ec7deccc420ec99f887596909393f6945bf4c03ebf137273f55f9c1cee2530558241986b21837da1b7b2a4481a644a20f762b3a47ff90167dd2e49fffcb17104a720992409f8585691c0d1b82a01e63ae9d014c5d30e440bb61acea7d79532944c49944abb23e80c0b003d6be51c0cfc584cce000af08e165454cacd3b9a595e90e119974e965388c135b3d5544c1d48788e99d85ceb60efbcd658269a4e220c85c7edeca612c308dcf4163ce834b7f2c57d0fda0a28a980ad4d4862d39097596e671ef23c65ec4ec5be334d5242cc3e989fbc42d2ca03e35b04652890366178cdf48ccd079c23a73fc15170f603e7a444900253dccb8615ec19372387da31ed7668abbfe887dc90fc3a17963882a86ba49ce06396a518e82111c069d9de8b65d099368540122c46af68db09ce2579f69c77561a99e26449d8b2010c1cb08cbd35a968f69b1a6d71eea10099b5139bb22f8740bf89f20983a260e8f0ba176cb10e771157370257097ec178264071f29ee1c580ae3161f41ad8522f49574c531876a3ee5c49c00e209d15110a0ad520f490074344852006f5ad107330dd44c97f69ddd691469b2f3e444ec9a570e2f3d7e5320dddc93ddc4198bb0f5bcf37ab55813a6a79df11748ec3a9079ba2872fbfa771f6175b7039c618239c47f655ab95e05f91206c0a8c79166a331faa9f24c63f0bc02eab24e90e814d253591684df29c595888686bf4f2b86c726555e0f4995e4d1e1e52a1302693852ad86a5b904812105adde3ba457bd787ac7e32b4b543c87be7eb70f8b8c37a7eeedf1b7fc00a973bc9aa6f2d2c2b7f2574f0d3bd2a6543d52837d12187d27bd9cdcaf39050ef76904de4c13a7bc87c29da60172bbc0998a9fe9b7a26d0380cd7724b3bd507ba73ef91c8b32b23bc9290f5597466aec47f61799667e8a48f2ab7acf9b39a01a119af2241f0c1c3e07bbbbcad62b3bdb256ee6146f3ccf17327060320b5e7ca998eca999b9247254985396f3275cdc1450de8a8e608ffcf180d3fd0fc57de50b3d5a6f1c652298739b5101dfdc00c390832348b49c9e1062f999302c79134d186894528b86e602c0e451bf67c9de85902a7965208a086c2b3371266352a1838a4be33308a2d8dd2c53808cc469c258da264f8761a10060d759271c35e50c2764b5e57c2574872cefefe0b0111323e55e06ab95b2e307ebf5edc8cbe8ef07e094d23a0bca884b1272789dad7db884843c77b87163cee2e7f9194d3f7fa64424ca108e340e9716d7aaf80b7e1bf5e0e6b79cee836af76e3085fdcea87516445cfdd0537f4534878ecf6e189c6e1b6281936107b733cc7c74c3093a5d9b50708648408b98b3753e35ee29274cdd4ef933ca426c574af04e42df08050761e51507d3ad864e778debc710250ca55075bda53c85c9de7d01da818a4bd00145a535593a1a86d66e235cafe201259d6da7b40eac8b6be505e6f26839fbe654262d2a6d7d26811ed303b943202965b8ab5e866e244597fe27f794999c7c0d19be2021d149c8003ca39824c56afa505e5ce1f917d2069d37281202f9faa6e5fe8d9580feab29631ff5a6ddc3c0272ff205291d513f3d3158ef63ac998ab58881d6b757476bb9e3f12d820d58825f8932de836e8ba4f85d6cb3ee1c7a296dd54edadfd45d435fe3ff6c50d7029900d9a433d970ae7937ee8ee6f8eb9601af8a13902ca8589c5e14f8ddc8bf1754db1fc938126f7d0b179348140977218c699087b2659e24457ab8af879cacc2fe4cb8f1b5fd66e4d3cf1e18f3a0044dd76821df51d0eb20e49ab63742990c265cfb17a370abcdd90d2baaa5c720b67b8ff124b4fe0c1ccd8cd28e3f1893dbac83fc9e5acbd586aed38aa5220c3d126414508ae67cd216ca6431fa2a0ba17ba99b9f493d4b1ec5269ceaac3f9bb290309adb723a338a8ac1d0796d3ecc8011cafe38264a5e81a182471f2aecfc559fa862d587bc63c8121d33c58fba6d65e0603f32586bedea34142ad4415b420675467d76a21cef12aefcb5ab01b32a4bc67782c061a47cc4f7a87d53ad532a52c2ab6c18f6c4c32fe8f8b31cdace83b0d569fe8d225f079984e0500a5fc8d36ce87d01d3c08ac7b7e4bb63deb6bc2ae51c72f87a56cb5dd4e78f61a080a9b3d529fff3f5b135f41524846cbd7bd819f0200d14e6d67898301b5847abc9e39102b2176c3a2033e20108fa8ca3ad09b268af4b6b4b58bb2b9b2e8564e07529abc32e45c6fd806d2cc5d524f5ca17592a070fe46d9ce418a277d270a1bfb17b99ae5f26b3df77e176b9b753b7838f4775cd7ddf46e40c53b8dd00f6f924d91ea0b424f6e845cd73387027ec2660624ab123c5acc7b90b693b35b01114fbdd617aa597bf233e22e89c6b5beb4e5cb42e62d839296f493bdfa54177fe46cdf7bbac2c7ad803dbeec264515967dd79a67f7ce2d6e99582bbdfeb313d8a14991d217453b017a325ef6050470daf97dca8ee0ba66155c466318aa45f6a302847be934e505e3dc222e09512b8d05cd5e76036508cc4066c6af9ef2fcbe6c3a16c9cbe3e85a0bfd4c8248673e1ab87e78574e929b760c649cf712b6b49818681b5e11dc6f1ac74d491b37de16f05861c37741ea55db69a1cf6c974f52639ac8b8bd9990f77e080f67afce873c88108372ac56eb20d40d2cfdb8aeff3eb116baadbd19ef05f7b5fc9ae066fde8db16d8df21782bfd811dcebee0195864cc6a1a29bbf8ca65030cc00d0781e85c22df8b0e38e3cb8f38625510cb385fc15f094bb68d0c6a179ee055e94f9e1e2082e401183e9d7e8e6178e32232eadf5d2d819b86be5b105009c8dc66e968077ad6a178d0193060c68788de1c810b34f6bd1a2394dc0f59fa885270cc3c55dba9862d9cffb76d29fa8c9d1e1685b6039acc5cc213f082b116ad3feaf07d179b58ebea91f0e3c13024148faa4127468b96586a629ec66cdd79a62cd541c7955efe8b43e7d969b98ec0f8975af5dd256699a9630717e955d7e228ce42a304052340ba56e34ba3299f6f6e58a07ef5b9cb65cc84e4ae6fb3abb93f863677762cefa4f205e0d1d44d83c7b11595fd1beb93d39af273a6e759051f9c82d5b82176d942aa6bc1e210acfd369337530e555842f011572d455b15ebda6be13425ad908d9db74a1314c595d28b6af75ace9d17bce94399dcc2bf560ea1f9399adc5e7bac9e93d013cf89ea76e4bdbb204c9e6bbcb3ed7f3da0442883dcc64586991fdd2d32e1c95c5461a4ec85111d83277190fb3445f8b7bb284d7feac8eafadb833c0d3a466a99f595769b02db1259b14ef55465de426854f483d6f40818c8cd3238ec82ee3527581fd369904f05f84d5024ef2be077dcf31d506f0630329a09b0a06e5e6237c0ba440749388a2dc58f99a42d8b83ed6caf6757f04f930c210838d8cc085324bc09a01860287fc6d67d76cddaaab5ecb28780ef88208777fb8570643e12133bc72cbabd0570e980d2a73c37bab1ae913f25190c6ab0c02cc0b2a38a0860c7355834c9230d7e2d81aae93df78bba767bc8848f72a89720070d7a4429f34d82f69ab54b5f1b029371c063424118a0e392f17aee037e710273f54f1211e736ef58461ff21a5987b0aece8b36989c4d033062b68daea06d5bde5994f86a900d6b6d08e6090c59b280935f77b66af672a97f50a3bcb6d1c368ef4ea5b7e281f4121d022964a8c3065c89a72add7894e144e91dbf0f83041b31cdf605464b41cb7885f9660678bda1178990d6a40fddd0afa6907ae610640c4a439b59cd1bcfce1137cad9c2391ba86f3933c70a5246135040e14b86a1108d241d4d1e09e78be8393198a01063e6b8bb7ed13308a93b97d4d1f385d7016e28528aaa63a07c2f4e5de1da065fb654a033da993331f55dcda926535cc2cf84b766f16c45aa7d280449ee0bfae3d1e2b69b94dc2296ac300e685f311351fde5e84710d8ffac61fcfa5a4899f341a7fc37057dc1197c7e060397c935f1530ba6dfc7431c2fc5b06ee1c17a3b19cb523dd08754904bc517582d9768aad906d985246fc2201e37d9386a79eb40e7a13ecd2ac4a935129b640d209d0dcdcde83e294ecb376e61200a256cd0b309017d8d259469a877f1a5074cac0f049259d8c0426ea91711524de46ae61e2b49e715b8ea523b34c287a5cbb11807d0cce51a6a27ab2b873233080db55f6b231788416e3a2355ef44ed17bf4764cc4f4edbc42970281f4329ec6a19f066db6c318fe4149bd3efc7cd080fc95eecdf8d802a485c86e7dbb7dea82ea21e0fe908336abdbc758a885c540c18ff635b16c798ce6b63868f96a3bfaf30494ee82b36999630b1214361f3687e5ba51fb93b08c7c76b462823af29e6a8df87cccb8fe40d916e351dc5b9121515ae15f2fc64ada1c86119394c98fe8122d7a216993cf0e959e681171a7df5855a100fd55f30051ea1b5cfe24f79f6769b5ca6ef55e08dde229cde6be32f336730450203eda850c5e507f9ededd7f606816d482e57d1e5937cb1451f396ca542d873f6eb08cf45c715ea97140bc34de4f51511e560618245603de7ec7fa9fb591758a6cd0ff0579a8dca1a27d32e1e226f16367e8e20fc44d3c8cd8d7af262e312300862bb462bf638c34fb00ff0994d2f63aac8d4910a52a7719286fd0523b5c3b703d9d24f980a36f082414b712a051861605f76958cdb5889268b60581688a1b83800c7e881a7c38b88ca736dfbd96ac281459ca067d98dc2976aaecf124d702726cf6c3f20e860e1436a8c505bfb924992c99dc67a3ec5feeb7f7b6046afe69be660d86fe710002ee53d77aae01eb99f7241f54fe43981130a83568d6837dd443f75e03684100b0a7e209334d9bfaa316407ab9b0cab2bc14736933e68542b623f3e412ca2ab42b3880105302b67e4cb6df95c71e7bc08779635114ac2b2e6cdd44937244343a7bc0f04893d3a9f4688bf9fc89764c2f1af5055887872794a9b464911b15c86a468b2d67446b5a67c5b3ea977624d656f672de9ce5cc6912cab4b020447cfd17bcc9bcfd140fa3e9ff4c75f270a6e3d435433068dd85b603a6fcc42a9b1c2cfd79a6066c37ea2692b4352c06bc3f89fd170fba8eb46bb9225f8b80019d9f2da70ce7704ca51d988c5bd1bfe64baf0ce8c72cd19c52a19bfc4c7a7da8a2b60e1d3e6bb54e4efec5309703a7ba773f8080b4503c9fc1e9245a866d167f5f7b1b3904d1839b69843220d93b1938d998d23ff411194564eb11948de16366c06bcadb52ffdb1663af5c1b7e2f08ed363bd2b54561d8f66540b3c68c2928d6d68caceb162101b66b67772fe2bf9c1e2851eaf62b5bc24a8e8a1b3c265669d4fcbee45a0431c09896f0d942e79cf79f6f2720ccfe95c450b047a5f42e5ac7258a90d55c4d92b53827fb06d88f7530e06338c318342edfa7ed4c201b29ae51924e0259aeeececac6ffcae90919fe27b96c423a6662c27771c40cad83c3405d88fb1001e1734567fbc2694c32da90eb784b65ceb1e5e086ca73bbd3c4256701dc92aa3afd41e1e4bd9ffdfc94e0ab95310c628fe4266fb47f0ede651aa32944f8eacb7af81c3119e0c7af205e342024c14f434856905d5899a68bac46be33573949aaa3a5016e46263a8a4dc10934f8e31bcd2003a8e5d38715104fba7bb92e085700c67891cabfcc16548cbe772858073849c3510667bfa7c4e87bea3fcb5cc21a5c1900c996c1d59e3041b1f49648bf501848aa2f02026e0dc9504486144655883bb40bba4399a9c6bcaa998a08566f3c0fbc36e56158fbfdcc07a5fc45a52abbcd7de4284db2e269d031a9e7b805357a0e82d70d08a30b3d3966de0e8cc81395b771bd8703a6a301129587192823dcda0edf3a1e40fe2b80db64a2211c83a6db3a60fd578cf5768b0f480fac98dc268b78cede653d5446468a06802d42b87543f001ec973f2d803e20f477aefc48fbf68045d07ab861a4c2fbc473b8026908a41dc8e7002a302fc05169c50791a37a41d97cddf6810c10fdf5620c0d4ef26eb34c5e6477e3dad45e62d6b0334ac87c158c3ab26d5d2f2a1d01c326cb50175efc5b9458686d768ca23a50e7fd0ee46ab6f9e6949179ee4f62ffa56ad8b070c7cadc2da8092ccee5ef27b73736ade833fa3ab3d4dcbde0116ced9473aa6fb032839d2efb578eee2eb8428b6532c275db83da240069ab0b5a9c96fb04df87f01aaf3027f57ec6d2eb7b433dbcf8bd37ce5dfe5cde2ffd76fd7abdb97e56018772ec959227f7dae94330436fafb1d50e0b93c6b173fbf20b74785e6d2468ee4799f1e64a1e0a312fe220044cf83403aab304cf4158de52ea1ef717c98103123b9ed8ad40f813491e921092a914bc26543d491ac5644f43cf953f0f54adeabaaf30fa514daaefb1dffafbb6620f1ca138cb39487c25485a7099ff162a858e7a755969e7830009d6daad0830de240bb8ad93bcb4d064b7008f3fe163dbc4499750be1a0628f509e6b9e69e6df220946c945c2b71f97c50242d80b1b44fe3df472a46b14c5d42e2ba76d1d8420593d215cb830ce996c072dc116037a34b9fdaafdae7920ce8ddb92548e3aab5c33c3ccc81b42c71715d48e569af9a2c0ba98dc9afed56c2a822c2d2afe6a7ed83e6dff86780c13d4a2320cee4c8a6c88d98d3db31534813c684e026462056168e74b4687f4bb451fbc5bb9f0d139216d07c35a5ed9a0cd60e2fcee3351938e6f04705756444c36313c8f3e4a138712b569ce071beb316c8a4527212e3d937b009cca2f340556e6c7146f49b248a7117a43f832a7e42a744bc3c7fe3295658d52e3c2eb4ca4b20d96afacbab9e233a48b872834f4fb7842d66171061e9a32525ea7984137d7faa5e047f27a7f7034e468b5e2e478e6186de5ecc00b9e0c1f7cf1df51eda051fb5ff390a56fe81ee0e19a35103d38e6374f7c4d7bae789364ae1a3f6bd581a3c9d146f3edc9845885038f178a9ebd3df8bb4a21643080ce387e71362779f72d80f070885d056b4f135b8184486bda8bda0f66b1b26565fccb7246386d439c6d16507d39f13c7b4cb8db82a93882d8674086dce9be0aae2b14f2be08b4b07aae01734cf9076781448e8f15b71eec0628151b9d66baff3dad7bff6b55c775dd7b8e6753d0fbc9de3196554011967b341248a6b166149bc158a75a488078402f4e249f42187b8ef11aed5fe49933328519639f1c296202bec2158549c13e037a6d5c6c665d7217f531bc38f82e3732d26e5ad9c135c898efd4a0008be0658329e33101fd401d538af8ec551e6c94f4346bf32f9de0905507e18cb790a16262888f1f53fd83f07bbcb38c585ece96553730196d530d65652d3f9f6e3182e05a938f8c3508264ab0e2e4a95781344445c3d76d642f23e48ffa18429f1cd13911749efb345679095b3102c5418671d9e7b9e18b0962d22f6423a11d2ac1501794f415c1b111ffadf285696fdabe7c8db55baa294ed87f645fe3ac2ad297774a078716479ffe77507b9cc52a822e2c33f3f78a4a48c81fc9985bb9ad86cac331e8e75ee69f7540c313185ceee9ce5184b856225865108345d64c593bbce6324c78bd423555a3bc9e7e5c14e5aa36b178d8d4262ec69490b071b26a2b1a6a9f953b1b3189c856089a7609611a6fcddc7f318bba66d00f36b6ec88096512bd1280ef6032c86a26e2e024788e81c69a89db2149a4b4131d58237cc18aecdeb546afc665255ecbab8de11159221f03f24a586280d22e3474846d36cea71c4290746995cb6b2064acfbbd3236d6dd9c37b447ed07a3ddc77b518eb79c7817809438852ed866d38e5b58a5990f211e645300a144a7f0b20900db6222bb08133223ee33f8cdc3271f85e3819621284dc30d295a1ef21186675b890b04507162316e0a731062240e148f798d14124fe6b3b346bcf565c77de086f2d76d97b164a047cfe7f00ae01d8721d515157d8fdf56669bd67eb2508250f4318453b038c7dfb528dcf6014569271608b6463656313affc67bcf78ac44c1306950db089b50d60a8d467c586079c55cfdfe29f8cf585da7faba0dc8aa49eaab990f2d7cadbcd28a6f985731a044b93c759880b38be72106d0d4aa02a421af2917603941df75f66ece562e0b4ac200483742e23bf06c06d3244fdd317251f8a7199f7e3d02687bd068929dc97e6f5df2f08912a0b6d0008fcfcffeec1a28905ce16b4ea56989c20b825cad07538dbe7249a0402861d1e91f2ec45b01edeeba2a4f4ffa0809ec4d4af54daaa8f3232138f834e7aff41bf8ae560ca33d655acf90a80a12430de19b4a0b189c1149244a267c023a585d7390ce48877c69ebad9510617e4cdc5ee48f128eff100767864cf87a92a5fe18dee8e84a23552405f411482e57a4a020a0a40af3b5a2fe652c247d90a6ea98e2340572725e2d1a1f5e956e530c1b6137b2072d19c2e05edeb4d267a37bfebe2358a082ed8231d91a8aaedabb4d4188b3b67ee2b56ba630a5836196f51eaf7c9780543cc05c14479ad0579561a83c8b842359a908c7d11589765f6a6ccaa1022432d9c2fcb0f34ddf78d670130b8b589c64d7d652c4a166f48374094c847ad998597854891918b149af1ca98d7d23893e8dc2fa51e26d0af8de48529574acf37d8a79ca7b80e6c6bd318f26a8f2f3c6499bda19d7301bf76f882d04d1c306741a7eeb161dea0c91186e0f3a64af95947335231aa14edbf36e79ff37c01e01873a14ae48b4c45ea7ece06f15351c9780ab6928b9a5beb636a0362eeaf130e4be7e19de81f70aa17f07089bbc73a7d5c9e563a70adffb9a579031d6cb5b672f075394b1bc8808d18512d185c28fcce49ad058548a2f376197e87079d73c512c35ac668fc9fc4374905bc665970391264fee1ffc6d3d65fbf660291072303e12b469399efcd32118b05bc3dfc1ee4863cc182ee84cc4f3c681a75f512df0c57957ec965761b0673e486fbe3cdaf7134966c6ac8ab5cd72103d1860a5fffd36848b19ebad3597ba19157292063a37dc961f88a70297c546af143671664c8a9d2827e35e8ea485c6dd05595cde4937816669c72cb408d45f046f0e1f14c84dd2e680379d4d9d5702ff2a27018daca56a0e68615376b90b72fd6d42bde3e2280d216d27b5ceac42dd62e99c60878f85d6921f417f47a84a216064ed6ee9a50d9f2b63f1e940767187880f414a930ac1986b20c83227224367a2d0dd60b3e95c643088d1ecd0253b6fe1c172c5aaa09e4b0e1a82bdaf4bbb491c8efabec264330708456b7b35a5e290b9e1d1a965b25a238c4ce1ca86256a2ec0fa9dc302ce91008102587ee359b80d8457d7f7f406cbcfbe83e8043ea37df04892a488b82a2e406b0e2b9530083f56e20878dd72690be050a3706e6d17b40597994efb50f15c80d1c60490665ea06a7bdf113118cc2308c98f44c277306016f903237fe97183194d7c6ebac6bff799ced8fbbd8291357d406ef1624d1e5168193973bd7c097659185be4265cee834b6407ccf798586c5a8e5a8a315fffbc71a14f32d791c00ce108ea75759077494f74c08127a3aa599e452ecbd757f2d8023e761099fe4eb73fe9c3cca61589e11234bdafedf79e17bef5e2f31441f9d11a0f9b90181547b567e0c3c0e12cc72a2cddc7b1c218be190314b2529c939d1f833253a9a10dc85ae23994dad12d0d704fab25e9d12916368eabfadcdf65b4b82dc2856df24e4d22fc6648489bbca619b4764ad529bbfd3f9fda69f7804451201a9a84ec303f1b63f3201ba889bffc642953f505f2242557aff0aa4d3cd0f75c0d1c1b2d0cb2f1dc53b1d9f23e51314e0b656528c01c4b06971371b9a616809f60a237fc74495b782346f14a8e3f8da88ee5267fcd5445ed0633af264900f2a4b8b211ceee9513284e1d594b1367af1f84efd59f299285649837a4baa18223aa7760a9928c2a19339581b47aa2aa3eb51022d1f8488c21915b684e5f1a31cdb05001c0a7a51bc3e618f5a81825e7ac18a46d6631ba8935314396c872b15f39d96c61b10a502ae1222150ad622937b9d5750b8477215081e797b34b63cd2d9615e9515981f0e1437d2bc319f587cef814048cdb5bfa1b0fb09196d1b31a47a131bb7ee0ed302505b010b0aeaf1dc1f72442229fdb26a7512fdfb605eed90890ee293d94f3674e0d4a4c4e9dcd2cc5b238e5906fd54bc45c6b1b0b9ffe93095c202ab805f83d816a0e2467104a5ad8e7cff4dfc0954ee1b50211c6ff1fad2d6c96498dc72294b198fafea532aea3c788aaa5b226059dfa712b48819484f782e620a8691d046057815c1013e224ef42e0eaed024fe3cd4c81dd25129d5c28230224fa6f749fe1b563ff7850cbec0178a2f518adbc74a7fedbd6384e2446a06b9a46d50f47c028164ae86ae6da02587e2d77490f5cc094078c5a6126586c4b345057e26bd14f06fb80bbf8b5ae786e37021faead885c8a2813b11c9cfd3d9099e86c9f3f3ee148d07ed98e184767a6939a335d14e99c18329e25a899a3712f02da428e0bee12e0c5143ae08c1e63ebd2c2b31d24f30814c83a06ec24fcfd60c4233778ce81b2d5cc67d695a60d80d001488649968954c8a709573aeca35b12fba13927686ba385c9331ef8d5bbaf23d67575e71c47d12b1c353f414ca325ca219f266076100cecb79ad389cdc6cdeb810cadbcea5ba53962004f215ded35649b7cff0855b17ef0fe9093d5074751d3370822d9b77b7a7ebb7d6c89b16d3d5836624871df272a87636edd21af65752947c952c012da3ccc0fcf99456d8b7e8de511b43c54fed6adc44241857050d3f52a8e0fce9412780ea390e20e3bc9ba3bd7a7485a5f9f4264ada1f31fa8ad5f626244983e2ea11e3cf85bbeba3b6867e636560e648bb7cd72592392028640e0c74cc9160c61ce356c5c0faf6b1e2f9fe5e74a59b212dfc1118172d4fd6b54281f93c3dbbdbed4d713c7f315dcdff718d17937389a8e300afc436f894bf6d8ae143d7d821830579c0b20e66a706cdf26cbbc1abf897062da0302dfca569a3bd8bdb26bbd4c0d6f6091398f973910a165f4543ca0ec0965696c39f87037c66bdd4069774ea44bcae82b66aafe8a5ce30b9ece096d8e2fef3d8a316536435bba4e17f8bece45db5f3e0bddad4010da63485677af0b035fe91167c70f899a05e9294e7eb026009075d138c301f5b682fa6d3d9229d3543bf15c728b8603313ab2d2178c6120b3b3aeadfb0daac58ba2bd41d8833d87dc2c4479024311c112e9053f048505138bb6ae9ddc83c8db33d05ee02c0f009e89958d16d0730c70c910319662c22c40a2cf00fd9c6905d793fe556af2c000680b21b333d95fc59b5342238d290c84b49a2cb0fb0156dcc3e1fcce96a63ecc32ddfcf6c2733ca6e1a13b27769dcd48297f8d8005a49e335bf0b5abe02dbb3201dd38671a56be8bfa5495df1735a065e96dc5c695eda78213e9c31a634b29c7025e228389b81e41af518fd0ad6a322b3632d85fa10802b81e38a73e3810bbb21d9f8395eb04b5c410904dca66b6f4610ce80da65ccc8a8c493b566ae5e48d3c671f0c57bf2016fb96d293f8e5f4899f1dbcd0d4c17d37d92e66323b5b0c6fe9545ddaf35df3810ba07255b04fc6715fbecb27552dbd2764c7a9102a0f64c91c821665f84918c4f76fc88eabbd0567cfd0277930d28770f0324ffb4acf3e47e44f3749d554da5c088812b3f6643afc733e09b70e81cfdb15942a043739679031ab4dadc8d8d61136c5d818db20586c5321e7e3e83013d67c2242324d771296491e91629bde965f939c1127474dc0c18800c0c358f7cf058e4075b1c5a7dbd834da01196cc6d5b4e2af2ce4d255e534068f002675d5c898d5d1a7bcfa4db12122860d8688701ebe1a452f7493ab5b6c433794c1d2f9798095c97035ac962935c300abb9a0ee574fc6b0e2631bb8858119a2d8007643829f35d6e5bc4aeb91db6b694d5375dfc6caa28acad882a2caad6d761ea0cefc4b9afe3c36b1e9e6607858545c6757cbf554c8ff0d6c3536d8ee24db6bdb7dc5bcabda59452062209c5080809347430ec15c7b41a8e99386e7202333d0dc74d95b43f2307fbfde66362c088f45c98c5b13e8ac2e8a2996656a77f37abc3f3f6bf99d5f179fcd4ed85591d273da3939e27e1b6100311b31716fd44defe15b23a3ea3139ed109cffb7c1f73880829629794e458f27fdf675e4ea52eeecf0f84c5c7fb310d77fedc736c069954cc4fbf2f994c5ad77b639cf3eb9c73ce2b714c52493b7aa0340b4511633c7eaa9d73cee39c3fb6ea134530541a593308110f19bb761f4e5f34d49f39d5557fd663061c834a5a1ede4ac2a363f502fb3cffe42524cb2e75ac87b792f43c9127323a21f23dffe4a56344b8136d831039e4f022a1061454aebc66bd8008a7197012f3c5f6f2b13c7cbe28bf3d3d7cbe78f87cd99bd5c1b48c697647594c9bf181fd98c6c55093972fb8502a428619c46841888b1ea0a820050e0f9bd27aa9634d493d269487ac8e55a8272bd56d8555a35a54876acd32d92e56c926c96667aace7c3d211dd99abab56f9f0529ddead80b3b940fd1b1995ed2b19292d9e5a4e958931034aba3799838f6b768256eb4f9b2d19b8ecd1f16dbece39b7d4cc34db995b38e559d1e302d53a255d754a99fba056da963ddea266dd3b76e3f634cabaef2bb355517b65557798dba7d4b9730138dfa6ed505ae7a8969ddd299d561d99b4edf478c05a9748b1bee9d347a29573b8ca53a7d4d29b5d5f237e758321169e6fcf029a5140429a5e39c3fc49066efb16492a3fadea706559d9f67faa452e894fde5847a02e727a93a3e16a7727be5fdacf9496714a9460adb33d80c9653c3e952c551a24a96c59ab408f4e9a1ea296c8fe5775035964a7af8f4457ec35109083e05f5e795d960ce9876e299bda24515d8385834359c728f6e97eaaae3ec22cd9aaa6bd6a66ebdbe15db951d5ddad1d17dea955aa9aed2de8caaab93d99bd5a9b11abbdd6aec76abb15b8ddd4a900ef558ac92d52e591c2e7bf69256a9525475beaf25ad72422fc35ed63073d0ab5d87cb660d0c22ae6645995ed6a45e554bc47a5997ac68ea6565ea656daa657dead5cb95d223312376798f8e9c748ee3afd4f3bc3f32bbf74f7ae622e49fb5292dbdcbdc3eb58252609fb3372a9731a3e9c69c38a0748b5470524202a36986155983f582faf37709bb04fb7cd9da2d37964e72510e4cb1170935ca2041c50b0b7efd4f5e5a8f3ae7fc59575049ffba1cfe744f7910d7e9d3fc34a4359c971329933cde4a76b8eb3a70e2744f2bd98df65e4e03fa52ee817093ec3d7d20dcf158daf7bee785dd83c20ec18e40b87b630bc9d3b1890d217fe7febbd540dd731d38a4e363f7beb4bdeb5df7bef7b19c93dee5d1a7825eb0c836c012d30fe4236bd0bbe1b2a797a32abd9c4ab363505dd3cb1558bf9fc106f7095075e6ebe611c88f37e2a8ac9c19240420ee81e6fc91337f94b90339e0c99de137aeb8faa50f0e73bc85398ee32c7eef3b8df3f7795c8d73c221789ef79c372ee93e778e769f39fe26b6e3b1ec4620dc2910ee0ea06fbbb189edf6efd8c4f66923a335c0fd8e2104d9bea47bfc40b8d326f68568d921dc20dbbbb1852477fcb9e3b189edf55533c8ccfdfeccb7d7cec1fa1de7ad9225f74b1a30b7f4f249114ce6967ebd6ebf8584c260f7c30ef6afdb7fea93ebb7f6d93dc7719c8ff2a6bfd773c7f27aeeb86e3987f3ce5ecf1dd7ed2c9f70bdfb1ffb1d2f69c769ef2cb72ab9e7307e0e733e36f3323ff7334402f2d2fbcb35f6bcc71ec7750680dd8e6550cfb8e6d0edffdcef78596de81dc71d2feb0ddd5ed96c89c655a25a548d6aecd2a90aab4275c852294db65b54a5b3a5723e2c0bd1a17b450fe8798594d14bd3ca041747512f6d2f878507a25ebac3e0e593892966865e3af7001305d107c606d8cbf2f99a4a7c4182bd9c962872f2a116825a14456bab48a9382b105b4828e825099d7e4e57c20b06865e9683b757d5c28b0e535e74b84965ddbad772b1514e59a608674e3e3c3965512a13c649092b566418a78376728112385cf122c18bf2fade895e7a91a05fdf88a5fb3e9ff3b4e7799e77af979febbe751fec77ec346672125bc8ae28230b27a8fcb82109282f4cbd1086548542cf9ba900295ca8a284db94a231673e2005059ca0e28b1f84260e56029e784236c50ab22562a417505578b1012a5a5cb1da4662b52e2c408121188a503206541425acd8c00928e43b69486420891ec0300287213ca09159f2522687a42909665dc4d082882c8e9498a046450b99284e4ca04ace7dca7a0286212d47ac00c595c905cc19334352943e50013158cc7ec042e6cb1461f460c2840e4c71c1a1e6c58bfee539313de79c734eaecf39e79c73ce39e79c73ce39e79cb5ccbd985a4b29a5f44ac1c271d75e4bc676440c2d4081e185ae02198802c30bbc0ac581a3ead018caa967c04b3b1383e834c6057a09640ca15ece5939bbb8ca1512627a7dd6b6d65a2416741c84fed58d5f71aed836db0212527c882111d5f2c90b3d9e4e40c19739395f921500f91dffe5ee16bc93ea223f821e13270aea66e3e78d9fad9f387ee6a05daa4bc73fc7744695c61f0098afc4eaf87809703895e2160480ef0a780e0513704d8faaeb8b559787545d795543b355d40a35eab1aaae1e63497b8fdff1658f275f937cf71e0f02f9a8e1cf8e27c992769cdfc171ecf81d4037f3c78e1d93494b51dfc181e6fc81f33b6e6c783c0ec731439c1e7cf61b5eeecee36d78993b8f1187b3320d8fc7f91ddfe36d78f4b8d9f13c78eb0607e779ece0d143e3701eaf2988c343c0f920db7f704620dc97e0fccdcf90039c71c98ecffde67d6a04ef5371f88e07ababc793648fef31f2f826b6f318cb1d2310ee11fccdd8c4f608c691d3a54921e09446999a6ab6a71b14a7513657f6aa6606cd568921c8a951064731a44a52aa44008b43df0757c2a904fa0959bf24347d27a512a88d9b1317ebc465a9afb8cb71913971e9810b911397128cb8c288ec65cf881cbccffb8c80614e1d7d3a6d11e37efad34e5bc2e0e8d3698b131ad420ab4fa72d416ca172c1100cb7c0fa2caa73c0da217d3acd30904331149d6626d8801255a26ac6141024a9b66a87a0531147bdbc4e45ccd0cbfcf5c322a4f495931633ad3e9db44ce1a4655623b690d474fb62b7633942a7c9a2e752a7efa587a94ec7203b7f532115683bb3f7de4bc4da922c73ca9d7b897033cc08e89cffb9b5f7de4ba79df77534817ace6f4e2fd7fab5e25abb39b939effc5d6bad73ce19647a1a10838441c03ef5d779360455a7a34ad57d4c56bdd5c5b1b5472367402998498f1634b1310d7f54cc0f5a799f2a7210a9c99c3f681e41b0083caaa4e5b30389da5e8d2b5ba9d3be3796894a4bba8ba605d552d77a1886470c798149a13434ea1a4cb74ff1170332c5670464ccf6a9e2efcfbcd4f1107c30c4f6bed4311db3398b7b739cc4e4a6d31103b9791c387cd82516e21f01af79fa7d1f1216b23a9f919150b7118c20884110ef78ca1930697d09f83b7ec4384750c3ff8dd05ef33e35e7bde984b2653165670a62213c648452d716ff82333cb2039c41c1ea8dd03ee36dfc8da75d5f1b17514cd98ace67e9f62f5325ad4d3626062646651a8b1e7e5488f8ab0f9fb6823cf93d6c889c8dafacf13ae1bd91c11f9cf6215cd3242daba4d6406dd2994a5facbabe23dba65f4cc70070c22e83b83ec1e3f8d8043fe357395fee54f0654e00be24bb8f9ff5bb0f203e2ef0e1f2e183863e5557942d6949333555570b0b5b75d9dbce4d49d535443f592a78a8cfda15459dd347b21bac535f352cce78344472f313bca62107437e829fe1cf8fa3f0c6e7f008d705f0330452fdf7218d0f7ff3b28955a99ef7a0b04308b25d3febc3cf9ac658b246adfaef8170b7194b9a51f5fdf76f6c6273cfab0fb9f89b7f0e583d1d3f191532f28cb1ffc35fbdf8347c1dd20ff23cdec6d770093e0807808d30b41184e37cc839d9d0a13604809b2c7d9189fe114cd34a75362b69df1b482755d2e69d3950c65b367f649afcf46bfc8d9f916fec1a9f796bd35c23dfc854a7c6e7aeb33322c97d55e3b138bb384e4a23dec8dfc4f63c96354620dc57aff33ef5b33236b17df537abe3ba602c3790d182b1fcb1cce9f473c672a797dfed66b092749c11fc0f3ebb0f5eee5e6aa46e1f00bcc5e35bf4713e779c9780b7e87f4b031c42ce785cc2e33339b6783c47850d1e4ff39cad7355f41e638bc7c8d53ae7e5411ec1efe0650498c8e2d8aa2b3f8b8589908ed0fcfecfe8a8bae8dff096cdcff8d9a9288e4c26ade3c7a10620181fa874fcd74aa6b4a68c895838829173fe4555d23ae9f929d2f7f6bfa25ec1ef034140b8e31fe28b63193efe9a9f2107b80ac603a079083e731d980808f7afe1dfad89ed3feae03d429be6b946cac1756ccaeae8a46eaadbbf51c3a663a9956a375dcb9e8e1aa9923a06448a5d7650395e7450ddbe962175b7eec96a8008121b876827e138da6567bb2c54d2fe17d5a132cd1907192ac3a66f347d45ad55ecdfcd67cb2e3b5ba6396317ad9251ab3563dad443a4d627638acf8b08a52dec1a6ae2e9a194d29e9e24af27b2f1def982a2318eacdd19dfba1b879f3026c29df8fceb294fc2f33da393fe3caf5fbc8579788b621a66c23978d8498a7ccfe8c4c81779ca93bc9e6774f2f32f50cf5a526c262c6c4c45f87ce57e6454492e32a4efbbb59af6bcd1ee15534db5ceb20e9d52faddaa2b7f5120ebbf0170966a22632b09cff77c8feab970001c0e8db08ef09fe7e144fec58ffc6b0b7e7cc5025f8be0ef1737f8b646819f111d8a8f5fc47c8e97c9a4f9d4f06788a4bc5c68443f11cef347f8cf530eb2c20e8a10c14204c4b291f5aa079f05f2f21ad134780718fccfd84a72e4c83f79f95822dfaf8ef0f9d2e27e71dfef2b71d38bcf57ee3cdcc420834a5acaf38bb4f625aaef17715318423d3f2dc279fec57b5ecb90b88ee958253b38f23d632bc9eb7bbee755a4c83f796119966119153f7c2dd3483a00537b8902e87f9fbdc4322d43ca997fafe2dfad92f6b5ad5150dc17e1f3a5e2dfac92f65f7cbe385e06d5237c849f2ff218f0118c3c06af3ffe293d79f13cc663195445712c836a0d39c03d9f9fe2d0339280850769f3fc931ea400fc78c481e77d2c0fc7927f8edfa754498a71a801a51447995d621aa6e50a7e4a20fe66affd3ef59bcdbea3fac52af9f3457e86498c3c06ef5369d82526eaf67115b0bae8cd3988944d8dd0cf8f3903aa545f423fbb7695eab7eba9ed0853baf8b527a51ea4cfda9350d714cc0feadbd63108beecefbf315712bf4fcdaaff6eaf6f0fdebed4b1ef68fc627befbdf75681d91ad933d6088e65d6a3ea9b75fb8de5ad4de108533a932ad5b9a7a19158ec6f75e1cf39ff77f4c59476fef23332fa6215aae3fad4f1d75ad5f95cfb31a6612cd57deaccead45ac5b9ff547e4bdd42951f8da9979876ff33fa62d5353d28f23c632bc94fcffffc93d70c3bc0e05f632b891123a34f2dc25be017f9f9d23fb4db5efe13799faa89f00bd399d132ac300180d22e8c5ea1a1073cdff333eca00891f1c278780fbf4216c7fe60c05bf931f8f9027907af2fd2c3d3c3c3e78b87cf570f9fafcc3be0790cc6117c9e67bc45f808fd5fe32db238d66675300d076fd97ccdd3dee22d9b71f5b3ebce3fa47a81fddb6d47d9aad734abf3217d48ddbe8def0b4395566955188a9ff8ac07c5673dfecb7ad1e6c31b61ce373810ed99e73bef79fd25559725c97f166b6f8aff93710892d8f8cb0f0969fc922ae943c4a6f1db46b37ac65692fe3ddfd3ffc90b17d9243ce3931726d2b14a5a22215c848f39139c77ece8ba823a565d393f4e273b8f6e5ff5dd9e87670a561cfabaaa3ef37c6de828be8f15798df7e1f3a579993f5eb27af9ddba0579a993bafd2fe98a9dcf178b7e8df13b42fa6455e7beec17ab2435c146e6562bee68f0e1f3657f74a7ea549d4ae5c35b497c9ee779c2f7117fefbdf7ce19638cf7e7bdc5f0370e31c6f869ae24d6ef63bf170d7f54e317f54189d9df4d275557ac6aa4eaa2e377544999fdf7f91976c0f33dffcdac4ecfb82dce92d5f1195916c7beacba68bc7d4c848bac0e91f116f1f04b64643fa36e9f06b7b34a565074a60ba6948a1d0030ae12cbba7d25ba64545d33d6cd3a9af86597d47509bfec644bdf971d9252d7d4eddfe0a0caae30a36ea36d6cc0d7969660b382a69fa60da8b5d69a87a9b74cd2fef743b71f0ad1ed8b59bafd7c44b78f95e8b6d41ce8f6670cc8d4fe3e6b56c0baeab39cda30a739b133433a89d24bd46dd135b23898a892f66d51b35975959848a9baba19bac518135557f945758b75c8da65db5eb1a0ed00eb94d7190cd629a07db70fcae8cb7009d62d1da742a16e1fd330adea4c50849f70143e736494a5e01abe61293c9561dd66a170e9a8baba407459e10a85e20b2c68c8400d626cd145094a6459b09065ca052f5aa23061812c463113aec8607b300384d49930455070f9a146150c64c101090aa729318ebb38670a5460220c2bb07461c18b9629322ef8f054340158189aa928c4c0e289a41b8668c8529ae0a103524fb5db0e40a880030f523090c59211375b9061668c25c68009620b1b883a18a21021830d59aed050c3abdc67663885335b3660e107335e1451850f5eece8629f4e315a2f495aacab98da5bc9aae55a1a0ee0765dc78469d55aee729dad72d75a5a2b1720f7e694d6661ba64d61f6eaf27ece3967d96c89c6e57befbd37e79c2f77b9cbede43c657393ed1655b9dc659c33a5a13283d4396d667b663cefe4e67c1d56c80ef5f99c25eaf36f519f8f47cfda5b9f5fadc54f7776aaadb512b942f72ed19a6cd828269b75b8528c31a6376badcda8cfc778b4b6de11048b000228a9b5d6fac1d2a63f47e877fe985ff30208f65a6bb57c1554ebe5eebdf52b15b073b4a398523a96a0cd17bc4f60699f524a5917ec72a563f4fcca71d59ea08518c57a50bda927d03927d8b97befe582f20694d45809e2ccdcbb29a57404e9771ce64016eec63debdd2b10b4cf7d792fc871f7daf27ec9f4721c1eefe48488b1cb0bde0b7610ece5bd609fa1057bbfd575a7ceaae2d0e72a7973741c1c3adcdb05d5ab2bad3ae83975b87b75ee565d1b2d40727c90d6da1b12ea935aed19aee37e7ec7ddcbe1005995e446cb719ced4a560cdcddb3e3b2e08c58da6019bb043fe8ce4bb7d8769a7268e46c2787e4388ee3e6e4380e7f97bdafebbacfe3b86a2b77b97beff5381ace06f7c3719c4eaa2e7d475e679e930b7fe6b417acb6f272ecf5bff2b23eb1f4de4003ca6b6107903badb756b2ea26b677dcdf07c29dfb6e6ce57e75a7b5bcd5d5c4f63dc58a854debfc8eda173067edd76a6de6706729a594524aff92f9e9cd97739d861477966ba2d74ef23ee678ea49aa26cebd3afaadc18548bedf6ae9b45ca5b3cec0d0734eae63fcf6f347a790d5a4b163cb6922691c39bf4b22bba7df3b7ba9901c4a41dd399de31e0f2d389feb332401c86dd32f81549065756872a8903929e8be725f925c9763806e917cede8ec38118f74fee0be9270310e43869082915150b7275bad69bea5b9ba5472e9720b6eb7534ab32425b7bb55b8438acdb7dc34b25254858885213bc55e211a3037dbcd2a328ac9b86ebc3b3b393924f9cf6259cfe3d9f3bc7bff7a9eed163565bdd912ada9b25863add54e3ba9677957799e79bcd9286b677dfe934c5555fe2f672fc771dc100b84def9d65a9eb9a7733e075edebde5f75a5d43fbf92d37723fbfa6ddcfc9f35b5e06d5cbcb6c9fb34bb871490bc9fcce8db9ebdc1d77099ac64f5aede53a9cbd4f83a26ad3cca859d9d0a8c1b271a3852307043afec67ff8d3e33f04fac9f17a07386f061b54d7be91a34787b3f769507c9a19352b9bcbd5e84263e23fc79f11fcbcf9b9038ac7936f5912e0dcea93393b758810244992e47857ac9f1b1254e1c16f269923870738f8f30f76701cafe486b374202002be82008491ef1c4c38077134e0796e05e9c8f13770e410a1df784ae6781b2192db717c0e1c63e9a4df78fa2d0eb26ed818b3ac468d1a359e3e8bb34224b7d718af0d948d804912752593e47ef554c5867f3049ee6b56dc8349723fa366c507cf0000342192db642401df9938dce3f039713695d57020aa10c9dec96006cf11816c40c37d843904d89c047d2451f11b4d7ad0edeb9b0f428ee37b252067793810d0ed2ab340f8f8c62b261dec36074e92fb1b22e144e8516708552bdd466f20d5facb9c5e359d59da4461d988c66442434478464d4dda5c621155a15a080bc7728433e058525b153d96b4a8f68d25859170a64ab749dd72f4832290621bc4989285288b9589c54d598bfa5f6ec6a9943b332c0f11c1843a4ac580114b8aca22a5c617679296926ad44c54d210114d36554a8ad67b77989182b9fd8ea3f471c7555a7bad7506a963ba7822e28808580d19a3216a43c83e315143c084588200aa26441559d4b8854c36930d7137a8206e419cb1910514bd6fb97c0377599ce9f3bbfa5c7d5beb0f3b9656c8b8c74aabd4152c00011585bf342dd53c5bd20f4548b78a2ab71fa468108a38d45111050ac7c50a120489c4ba222f4fa88a94b861ea86900a20b008c96297b7d3d6055d00fd8e3e66d4d4936ec3f8d50c95187260a7f1e779f9c37d3e48a34f9ba650035a83240870d3a86f166a40619d22e52a950c35c8305888a4763b52a3f1684ea133cb4169214dec0688a00404fa3b35a7a35eee7470da9480d080aaf32ffa2238a1b09a53954ee92ee91051a7d403ead25adc7a09f6b7940ae9b2699155e10b2cc2a2ae96830a5693e20b2c340550988181329302123cbce81450301185080c59180a2c213115838a8b31b1831863628aa918f49e7d3618125234217a98ed2759b628638a0e2bb4e0c2092f1a35e4441861902153e509262423a4a51c341b92105d226a62f6e4c36cf270538ad6721cc6574f8a3b5bf7d4dd2a697dfa7d7ddff761a18da750d94c1910eaf9c9d3c3a3933a6daa5216ca5a7b7b9f7ac302bbeca088fcec9937fdc3f369401bfdf36fc8b0f577e3c2a9bdc5a9be84be284ef5a85eea9814e5bea814caef96fffb92499dea74e4461c78fe3b537578f287a5a6aa2ba4cf03c48838ea188d1c36b6a106d5766442ff3e8c677fa8eac2e38cc564d27af834aa8c3116a163062ce1e56ceaf9cb27b1bedfa7ee9f56e4e51e5578a8925635e22996494e67bdb6799186e334a841cd71a191f0c3c7e18b3cfc595d395d14b9cd635eda74379bb17bea6c572e0b95446103e962975f8d0d604c832c0fe6e11aa9e2f88ca556d23120b50d7ef9cdae91ef39ae97dfe7f77a86aa8f97df6351fc9cf5cb445e9230964f3acdb2f0f1873bff7e8a4429c018ffa622c86cf8541686e1ec9b87e15c1a3f9ea90dfed4ed9b75174aaa925637e90ad21b36c0eccfcad3706d137e58ca16bffc663adcd1c144e253d9f73e55b451fd7e1b3ebbdeff8d2d0dc4cf7f44fcfc4f3ae6e5053b2f9dcc4a626eb36d460a04a5e07bcc435edef44f56493e45ae8f685a594ace1936976ab71a85a5a6aaab75d4ed67a1aa535f798c6eff93aa2e9d45b7479f158c67173f63aba3aaab5c85356caba49eaae4ec3c7c62a61876a69962d5cfdeca3ffbf72ea8ea12a3a4aaabb59ffe54759501bdfe8ddda1a9a8d8945154d16da84988065bb21995954693c5eadb211a255a9a51a1d8945154d16da889969556cea51b552966817b1e4210102da3b790e47e9700d132e8376992fb7d205a4607fafb94d7397f689197102823504ae0e3e508243ce93787407fce1f397fde95c47159b90910ee73fe00fa01da10ea07659ad67daed65bf7b92a3a67ebadfbb95536b1231016a137b11acc24fabdf45a2a61f4599352ebb797bb7ba018ddab99a0d42d0e4e778acdbafec20c457d9ae3329733868add091065cc5d12e43c4fd7545ece2dab196349fb8c9d9efbe7d5ac45dcc278a7eacc289af73e9ef71e5417edde23a04b39a16a54094619e3d57a396bddf3e6ad7bde63efc9eab28fbbd7ef062f9ff667bcbee0aee46ad7f8329779e4c655253d9c5e83868d0e7f2e6bc774d1fcfd2f73f4fba54dff32ecf7b9a9c3fa3bde1847d638e717fe7038ddf3fece20d4758710c2052370fa9c3f586fe3cbdc6f7837f89c38aaa7090720fe1dff56723f4dc8c1fd5cc93d7a4f7593d5dbfce5df73bc6604c22b0e843b5736b1bdc648f8f7f18ccde7053910eedc6b6bb9bff1c62514a6aa3558be84622c8f1536147e3063f34166a40c16657c49828620c0d06148cd4023b54301a65451c210522a6cf9823b91b4840b62603d248151868c57268c9b5a9428f68ba817c0f47263339ba6cf1a9428bab865abfaac4141a297bbcb5c15fbac41916541730d90b5c11505370bdc352848b7ee15d8c11a32b1afe03276eeb306a58621393be00af4faac4181a1973764684be9a5f7de33b04c855458af62448105cbecda05a3159d41f2cf31fae58cac77430d6a5c6fdc96d2ccb9f9e3ce1f5f9f62f48ea3fd5697052eec5b5d79fea8efba72c4864fb5a10636ec6bb973debbef8542cf9b398754d9739a60595ee8a494524b39ccaa2efbf9ef98e9ad61afac1d6f19ddd977f266b66bbbb699d5c97969d36c5627e76bbbb6a26bcb45d7766dd7b6a393b3d18ec164d866eb846cdd908da8e3d9ec368b9a4df5bcc415591d0cb33836966cc73067946f3b8ad54d655bb6655bb6e59cbd5cf4393b73e6c1f24e866598cd66b3cdf06c563496391715d56931ccea78b05c6258c7300fe6c13c9807f36095ac1eacd7a7b0ea9a3355164dce9f5bbaf532cdb6c1e238640502f03ecfd9bdf7f3d83dfd3cb6e6fc619ff6da7d6c57def943609bfe04eb0d7fbe07627f5af10b37a8553f45aa1a45d58bbf5562f8dda9eddbd0c88d969befbdf7fe7e3f9f87a54a0b5532155bafaf876860eb7ab3553ad63ab75471aa043274e16874898352e296a23290be6475be2e34a6a69aede983e296ca6fc62d7db30c6cfadfacc8ea8833d028d62b28eb55cc796fd63f49e6e488b01ada6ca0900d1cb2814436ab13ce66b759d46caad7b0a868a98856d4d4ebeb22ab1366a3d84cc3ac0e68039b401ab8c422da4342e20c8fb32cce4498ddd9c9c921c97f16cb96224c84f56aafcd66b3cd66b35951515151080b61212c8481360bda401b68ebf5df92f7a768db509cb5d6da9cad29686df63a20127a37b5f7d4ba76f8404411bc9cc5b90b77e8e96f4e52fca9fa293ae9e05886af02c725e1831c5cd9e1abc619861f8648c2111c2f27bdf1c626872e53bcc3eebeae6ea66cfb54030a83f53178be677fb5bd506b0dea07c109ea3db7063f2f7c4eac4f7bf7cac46b5325c5b1d2a676ac9795c649e9b57ec87112c7317c8491b00ccfb0125ec25d308d66753013aef58a87d060a5979893828d8458b1e997d8c8a36127ced630eb909ba47eef01ddfbc2f1ce1f5a7b191c25a872779d221222665eeba3923a3aee82b58c9b7aed5712771c0d327fd81ceeb51dc602d801851b6ea0055182ac4f4571e28b284cf0c1494f91612193a9c27ad24318614cf9b08410106550f8618c2916c84244d21751583e8a03bd267103066b82a01dc1646560d13129d4509a15701731b7158d70014f62ec3043164e524411a18a196e558ed882c5143d420c161a315a3e314ba00e136a6cb808435331672890202c50c61716b280118a82a6c4102d081b9aa8782186692586c8c6034f1033905736faac95404516a831343aca29c4ecb0e56976056d8b171eac909da1622905335cd0207281850505072b535a86e002c6182a3814110396a2159254e0625c1ce1358143d5670df6047e420735e0091fa4bdd65acb01e6ecfde0e6cc62dd7bef908e9f62db97dc1b54bf2a3850d5e1fce1f067ff7c9a8ef2ad7f26cde7ee996697a0ea5afdb401a1d73cbdd80375a8da3f1fc84e75cdf8f91f284100084caacbc6af7efe90b9e27bc5c4060777037a4d0eaa61f373652342af79fa34f89ca4cdeaa7cdaaa66606df20030cb2d82a910bc52ff6e540cd37f8460c406cb927f66aff2433f7d466251ddfa092df790613830b4c25168b7e2578649e10691740b42c992af2a4d5d0840b318cc122e50230145e0043f49443d2151b431715a8e9a2888608440f15f062033590d1421432be6c11734168862f52b71a316680b617ba8c218465a6e50c18324398f912a5cb90415291e122ae96d0566644c9e03db1610aa1179c58420b29a4579d4d531c01041263a6b0218a57d55df4ea2dd1446100bc61f21d5306823b01a32f4961604a330a04c1c5104e55c4b8029503dd618c1479cc976fcc0f20a53a8cd98297a09ca85e4d9fb512ac88666a80b686ea2063052a537a58d222e3a0892c5aac3c359989b227c8a08d56347c76a55ca08843218e3e6bb01f96b285d5334032cfc939e76c71b67c069560cff829c6d9096702f626db2daacb395b6bf3ce4e4e0e49da9c73c618e37befade46cc2b8c82876b1cdb9c9768bc238e74c6519e39c732e8ae59c73ce537dbec579e73c97aeddb1b6a68c93334386ac146d01d49d9ce3ba4959b81c97319dd2e7774113673ed78020900b26e092d2907c9fdea0daed2fb99663020202eefd4097c91d1c7126cb1115372c65561cb8400c55ec00c317223241ac98e89134a3e204db90063a70001d3a20c3520214189ad0516166d0617210334c051c254c179b469f35180d2f781fb880164f45494469218cc9f44586166650a202574431468b211a5adca02304252927a8e84205034390e9c28503437c21c318315b4c51c3c50ddac4955511334a500de5db1337ec0096a881ca09301a80d0c2038722a4900833b382029a0b2dbea011c2e9c004643b5cd9b2821234bc664d9890c5081ec28ce1a4a16e61c02f6cd4ba85161a5b307547d8b811d574d982873004c39c50835ecba34fa732c274dda75319b6d517aaaeedbdf7fecc1426b8ea3f39853d7dd01a87119b8e544529d8270d1c92c29e94d5a9dda960e2d4bfa938f5ab8f69edaa8b4b894d5f0b32a0b2dcb4905ab6706a610351a6cc50048e62862b3c4ca00346841162c90d352f5e02a018a8740c585639eb94b9910000a000a315002020100a864302a1603c0c3449d01d14000d7298466c54369687b2288751140431c6184308008400600c310a2955441e49171722d9034e59e1ddea8989a311e1481413e47490b8682e23f79d3ecd3fa8eab652c0503623ffd9d353faafab22565fe374890fbc10a2f0efe2fe28fbf5e6f102f3762a3e35e09b44c341f8113c428f52efd0cd79344c609e19166f6d26bde2ec8707eaed8fdba6d216dcf831a6e01feaa8bd01c6a0eada1118f3af17b83941cf7050ce95d27058a6c4a289c89ffaa47659376cb9bfed606fd574c7d5ae0c26c7c773e66cf33320108140e0539b65b1f47016ee0d499fe3a51f4a367a001e026782bdcb4f02fe8689d6cc9c6f46b6338991824370e6d55f00b067f25076df47487e23fd34279c87c0778eb4b2309aa24193a5aff376113c498c1958c44b81b3bcc11aaec425123ea7f683283711268df8651944e9c1592dce3e0fe6628d1ef65cb029b68f63f7e0fb4f19547fd58de3433a1f6819c8b4d698f9dbcfc721f49b8345b39370fcc96e35729041083b5c96ae6e2f863475ba959dcfd152dc560b2ebe1a98481017355f172032675ee712329de0514d2a7bf378ccb0c67629ff4f7a68f306538a5d76eb399c8ac2c36f7c0ccd110d74a1af88933f2b914a5474f382e21d43a3e9f9dc110f58b24823a2eac212416dc454c984465053789b499c47387734440aa1a3e7a347b4479639c75ad05357d70a1a706a18eee82b5f4bcbef0536b29c69053a00beacd592c4275992b602c0b4c1ada41fc89664b8fe3e4a7d99c414e91e06ab450ea584e0e5cb33eaa538dd2a2d5f608097da6140bb32e978a136d6e889ea73adbe8c59139c1ee50899ed64eb75f8244dbab879807047523872ffc4ceeb86d4f7d9e8390c1b960da01cd5d18eea287e908e014e63303713745bde33a5833265ca5778c5941e80459bde0a89aab7a1c3dcedb04b32c37078a70851c3c11d70871dc8fa2f581516e656be61b2304f5832e9b2e31f44858508af61fc5083d5ee29dde3f0b3f10f9d1bf59d9f800a65161019399a5af6564d3698f571135e7518cbe6fddb944875f155bfda5851835e0ac8c754db0e48508751d3f1922bfad567736c1afabd362c0651dace9db17cc61c4f64843aa35808e844a88c17831c468516785cbd5238275505d57c8f263c49a541a4cf9f748bda40202c2d8cffc97db6b426786c5b0a1c0fcd203e7b2c88f9fca0cd7a0ec8c20252fba688532723e910a02678fae0dde8c1e4d1673820b69b1e5e7a095148acc39c31765a18d973a50910b6f818f12ea8ae2470d61cc20b6a3fcb37daf4ea43c05ca09a2fbbe0e89b70d0dc62df94db109d87b440f1fab611101499c3987c42d23477f3f648fa97309f083dd7afcaccd2d1abfede11a157b4782347b7fbec73d571d7b9aec5ba3fe588508371519a450dfef03c45e8e02956b0f9fc878d5acf98eb103ed9597b5567384ff60e8036f2f259e125582037fe51ef67a09965512a988f62b8a25c55f5015c3257777c0b634ef184a02198470236a011012dec902077afa92d5e416d71f8e9e442e1cfe2cc6440b9a64d71884600abc3a623551954aa371160058d00952be104116add85080ab4b2478deadaac0de0a91748b5990533f6d6de0d1a320593a9e681da7875f5349223a3aa576060210a80b5aa15285060678a3483194e0609546e7221b067738d1528c011d58e4ec714f4b3a8b2ccceb50ff9e89fb704859ab0b2041a2e5bfaf13689b93f1796bcd79e8badd28f485c8644079ab025cfb6818fa8ab9f6d90cf3e6f8d4f642b19a91b3b0b20517b79e847f0e71f334fb41c32fca0494ee1a27da7a5606d5a8d10599c15384ea768d24011ac6dee758c5f103422cbbc6eb82d6b7cead2114aedd5852f3a209297a50acd9a23ec2246128d7bbbaa149fdaae8d464cb957f5aaf7fb78a0991916524a0462704a44031bc1fee5bf509a09507d2f91486f9e255f5330c9a5200257a9b6910317c118b42d81687d042c4cf359fe91f7ed4f3b9733340be405e073cd1797bed595c245df34bc2b2c224754eb64aa1f42f863205de23be2d43721e0f4443d0ba8be695d6bd72c2e3f52005a83e5592713d11dc4549ee8cad984a3dd3d2a15b0290f00e9d3eaf49d2cb0f1d62f6970b0c152f808138e104a8932083874ef2e7d32ae04d88bb8b9f18b200adeac48c4a6e3b52e47dc756fb9bea1a3c8b9ccaf27ff909ae80bca28d5c430810e44ed420811fec1e566acaf3c4ffa191260798eb3e5607b82a64b654d6ac741dc39aeb8592e3439a4674dd878e4a7577b6d40ae4573ffadb1a50410a959cc043757de0b73887a826c73fb8ca403f29019e6ce4b119e3d9484fc14d45256338cb20b2d119127760c88189b79f6a8c2df90aceec8607ac222ddf2621c8e5c25b0992e23267ba8814ef21a37476d56e804359faf03aadc28200e604fe4e5f304c6ba3fffe6be045ecd3f4fe1e6d722a9119116ccc3f7dad5487192650369369b70fb835590410abf60358880ed8d6842df50eddf03dcb21986c154c54c2b058dc240e6efde2d95e7153a822da5f8e6344e1962d8563586fcb42378787729f1f0c9e419d16254bb917988d89ffd082b9df5c90d87fd0f572f68a542374ba0b95b8a99ad680747dabeb84debe33d1657092a4a1851b0c538935c4412b8027fc8f12d5a618590381a61df469792bf51787845141e652f149e7c7bd3a74022c718bd562135e2db718ebe8eb27b75e554118ec48a0bd30457972e72935de536d96fd1033fe1f9768588f883352e1091750ae7834df8c3e5675521c34107ee160a9029d5a4acdc090a410c2bd07a9c5b8daa3babf5416ca02d27c0d75629f40edb8ad669f8eafaebb4d73920c287b19d8618007aec83773019e2b6f0297a648c9c173344ccfc2be9b9b2e7a2fe68ea18d6d7a89613cdd89fcba566d5c50081323d1a3285ed2f6d258594692e37eed0b03b7aa1c90e0ded6cce13488ed1b847c1dca362c0040ef57ae24b3eff4e911204c138e710612c907f0e5149b7f6a2442a7fcafeb8d96bafc49b7218a77435516b78236ec4e57568ec1f141217ab25466d648641a68225869b2f4149eb1f32ab53abf23bfcf79d0be440fd2e00c381a5182476c39a613fbb2b5e55d0c259fae478a61ee023a5d3f1d6ba84e0af422da3aec4ad2a01d4f8b043f14efa0c6c8db7eb83cf0d8d8193775dfe2f4909c37e66745012f84016bd2ba7790e272d39d75285f6ede54866a8bea22271fa35a1b30052570a33f1dc18ae0111172ccf0aa3571e08aac9a2154b84c6348fd50a689624c907a8f9421017289ec8766a5bd2daad0b427f6fae31b90869ea7c654493df91f9c82b97e0054e9dcea0b8d3064d5fc5e14b0b99ca25294f1a01bb5171929d9d74e0771b32e34d4d9ce12b72ad4d873389d639881c9d89d1b6bfed914095dba3ddc56b0585abf6665ed292dab3b75d4f3c010290022e403778bf805000ccfc6eb2f79780d980571659256399a808cac852f6af19eb223f48ea0df15ac90e5580043c01cc41ba352e1521f29755724e07d8ad51563366f9fb25ac8545b759031efc38ce1e70c0c73beba00378dc6d29039d33fef39bce7e1cc7f3da8535ea4cbcf03aeb72862c596f7f9e48b714150dc3546bf892490d61f1f34b7633b40a2e7979881d899dcc94a66d67488474f1de5de3e16cb29f77ebe770281f99a977229f99188bf5424d3cbce1694bd6fbb317336cdbbffc3d38a4a024b58405c4a32489a4ec5f84be867990f3215a1f7b2f8b892b39b41c5f05b726ff6390366c098df2506287402696444297bbbdbdee9d96f2bd7c3c884594d092bb69d78ec221c7815c50f7eb02110f152068cd726a2cae04cca06c1717420d554eeb722d052ee7aebfcc4b017b45d5b4ab07706772b4a14342fc3be09e745311b8203ae548896d28b1539f836eab00f2df6f666eb81091883a2958241c17a1261471cfe9659dc0b7b098caf7cabe19308d3a30003391e6661e5be47a998f771c047938770206e8962edf5bf78d6ea1e54189b18309311aa808c7dabfdea1b20d9359693151057d4b2b958c826c6b233c7a7cc7ad26122943015d970b5dd2b89e4642240e07644f424bce2050792042181c1a75c3d1a519d7c26124291831a50c5afcd384b262c8632736c2d219de08bc0479d4f2c4457a7fd16ed597a965cc273b8910b86050e981a1479040c520e3d8a92d64408520b341e4192802c0426af3bb0b618b745b399172bdae9f8e58357ee0acf2c5e0440df8b7d72c748f43f429db78fb2699300639543b0da35994c69d37aa306bd75dc8dd18fa45eaf61dd94fb1035c305bfe35157d9c64203a1436f539b304bd6b198c8d1ebb1db4374cd4c6a2c99d9841cd9d20cb41c3b0073b240e5ee5d1d1f9d46b1be0f7855abc12211cd9b30c181fe75228dc7730a178669eb8b81590afc3278dcc15d0e74ef20f39876a64f9a358de1f1078e92490959e0d3d13b54259ff6b4d3d34ca3d3326d7bbb35c26740dc82840d0fb6b79b45e75fc570e407dc49744610f1efd0b238d77f3de7207dd97b52f3b892d9d61af8cbf4e383539e5ccc81c51ff90776e4639514bd95b21ad3cfc2bc90ef961c00b93b9aad7f77d120d10ad128df880c7c77a0e4795ab69d3e6425db45b8abf2942e18ad0c968300963f7d8857b415c71f0cf9fa5f31fd9b1153a200590c8638b0da47bf3cf1d7f5ee21971e896a1455d4a0f4a808fca93fe6a4dbbc2b08178dbdb5a303a877400cdacfece902db92d4380e79ee2eebac660afa20626cd0f6c9c80020bf995de988fda2cb74435f926be5d9a12bf334476822abd236261c50cc18b61419bf1cac1e526e2caaf5f48d477608d3ed49d5e65479436492f32236bdf14d53bf1ec363c3f0e50878748aea9e7b1411ede05b68866bb1d80280ff374e528041fac1e75cc23d68ff3212efdc6ca865610fcfc329ee477e429d08afcf2fde7b27bf7686fb211c0c7debd7413b5eed0d1f1034cbb86543a3bdb8cbf6345aebe457ecc499f2db403dc6263546359759e0813de15d5f3c435408f830e39ee4b66077c7ef8a2b44f2576ee31c0154397a9a94a320829e99c0cd1f354ee15a8b4a1aaca83cbe107ed10e458d0373d78d43cc9dab16eb04f3e2d1ec9ac4c277272accb4fa0a46fc63fb6bc8a9498610c8ffa600d60173b42a4b97e0482cd5bcc0535fac203860069017e0cade4a8e165472fa586faafb4931cb12fda5469c23cbb21b6b2d891bff131f8c50d189a57b55737772a3e31f58c6a7cf1e5f3adceb502831a9df56c72d7bca8b6836e061f23b75854042a87d78021744505a2bc17e46b3b2f691b5145e0c81f857be28688f5c74412e3de4f2cf5f50c748894e962057c069649b1b3488d7240abe9f7a1d20aea0ca521e88b1c4f4058315c049e4e5dce142019144c1ba66c5d86758732a02209b890ead69b1a5ae847297165054a89cec330b1df2096b20e39c80bcf4c3ba57acd2c4a218d18e66d7f196b0119a4da04c7c894fae63e798160777ae9b7a55040d1d8e04c8d157eeaaa5a230050e00e8f4f40085bec6875d86cfe5d7997ba2714647fdf8f74f07ab42398c8309f184125bc56f7008f788d3828cd85ce72420727111fa02192a90729c94e8adfd2d71a1594d6ff5bb2e391a9100a984647bdfc7e32ff5eed475b72fa9764f27d58c6ab18582c9b9e3333d2b6b9095ef2702d5ebaa5d44d2beb46d1e4f20f5f1ce553933be59a922d24b2a2437dc84a0941c64808f48469586924f8f12743fc12eedb31f923ab23509169ab32067894fcc41f5ffb2c3da28fd32cfc4978a07e3474522a6725be813cd1bb6c9a018e44be77c4f87f94f559415aa943527b997a7edf5633dac3190066cc7942ca8a9d1a7b6104190f0d69930a5b317d011962828ee7468019592069baf231fe0c4d95c8af23d7d982c90e2674831e7f9d3ad5da51105a197479d188df183154fa0b9a9d72a24cf7c5c68d21619b7433487d67e26778eaf92eea4eee329561bd73112c3d10cf2ec25b75428e74330480db430a1512be1d21b7e04e3ee31d3463603505d53b06feb65fbedc959ae34980b939c2b242405d57b9b4318ff481c967ab4c6b5e0b8df22ae306ca6d6e854e9e6bcb1755062c5e2837c78d6cc1e6c01f5509328c23765631418e3cabf65c5168ba14898198c3c46b909d2b35bb75b744e280b587af82d8cd67e0ebb7717008c1cd547e5c9965031c88502b6ba1569f609108dbbff640d99ed681dfa4a6d35479ea0fe31c5791340a8bebf4ebb16c86b2ec61ef527c01d5f94013a83a6848f3b7b61fcea700e8eada9ef246b8ba0f5d15a33703d6de4c03e5caadf0a0174f26de906472bef472de6dfeaafe1e08f899fa554456f88b05b2f23bed093b97006da7fc45a24f4376f68097779e42a7ae2fe754c2e43513dadadca3eabaec45d3d1f9f5a1b5059cf7cb60e6c6ac51bf1deff736b978d0b8f9f5826107c202c9358647abd4b7fc53e0e1ce055ec370a60e78e154f9e9750da696664a3af115746ba037e6ee21c2e91635e0f6507c5838ece60bc643d53125492c512f27a70641cbe75bb0852c65979e0ce978a92ab6353003001d8513ce1b12cc76fe4e0cca38ec563c7e6e137e593e4f65dbf8fba73d439046ae579195bf6eb4cbe392fbad866561eeaa9049d4669c61d5a535ed5875ae600620f7b80222c8264dd294b07f612a72197b06c51a5d6008627ac04c7641788354123a523ba7fccc53ddc7fbb66ef4589f32c3740375308c876030134a9c7cb2a0e44e82a60f90f0755374c6e0b21340f0033bc4eee7ce3d5730ab7094a9f874cbf7d89b60317e4365f4a6f284a0c23dcf060e21a608c13360f0f624d253913a1154e803cf0bb0f3f0c0093a7da236f6d48e286b7763cc498543ab65870a1edb32b3f4fef3870f9a0306fc1a96ed389724d1da570b8e6a84549d419343759af249823cb11ee07573cac58b4f7408511be51f01259bc35bb00e32ffcc8f7da1f28bdb133f85bce544f9e54322d75a21dc3e672fad8a02cbe3d361bbd97db823b96d74cc0c1523ee55865b9494f21b9ff846ce8b0c9ed8cdfcb4c3e8c3d1460b460c5cd6861f843938246ac49c053b7fa5dd19087c3355e0ad70f7c423106eecf3117e9a5c9cf25752b10d28022b9bddabed30fc650bdd26eb9c0d97de762764d203059824922bf1c1c779ac016ec1e416aecae5c1a03475e192cba2a05bf133924b75d5d2a238ee4f38aa24bc84c5953497a9dc87dbbd75b79994ccf26ab9b301ecdd9da3850401dfca1608d9f3973f3bfdcfde98df604bf3a77eb619a9c6a3b4dcf6360e7527976bb7fd7ecf64473ebd442b05eec3d094d11408cc30140d51bcd3a6efbb5e41ba787476653fe57c64446584b1d3268b55660fdf395d5c6c413435cdc4d978d0955af3047b00425753be46190f4c133588d59bebb3e6ca1b21b27652980641e270bcd7c329ad4aa5a888969f19c718205e14e31f09794893ed212df47e250938df06eac6d180fe15a7b856704d79387024188e65564e4d7b705b88a5b18aef70a9036b8d252b687a5d6b8e0f8b562a8258bf23cc6ff7fc577ec865212a3999b1d785bbc3a4d17b643479eafb392a8d3d879d42982a7586e2a22ed884e95f16e3ee217df6b4f86422d4dd466f5dc000538c163baf82692d6fbabc0cf4f69424a3559e50b7d61563d4342bbe7aeb8954f56f72ca7a6268e5c9c428ac998ac2aae4ec6f9e620e067d25d917b4604aab1bfd04697ad56a3107cdfe842ddf2a90f54d8dd1ba97147f655cb09ede01fd678ba179887990804429774caa573f4e02dcf1e26239445b6929b2551df1753ce8f0bd60b5b4a5844083c5ac10bd139d3f1834312686a57661609a3823e77cd0dacec34300858b7de875f90b6bd65415708f7948a0fc89e13c50b5258d74e023a81dd99ab070797c65e99b11b3fab6288d8a6e7eae2af110b4789dd7e378c13c908aee85c9f9cb2527c221dba16eaa90c03e4f03ccdf2a5cbd000946d0b28ad6239efb124db9191cdf36700bbe1b9ad7633ae354a538aee99405ad7887d6a5ac957c1e5d5447a887e0e70a24ef903da483deceb8fb3a36882b85b6cd5e345a0d947de1b5b16ebff84a87a63aa6d5e0374eb93473c5662aed5b11d1caed9fc2c4b37cfaebb44de704dc03d81cbd58d5271dd47e030361047fc5e2f61b6897d1a51991f1579902455942185a92a9d695cdac9503c9aba1e3dbb804ff9d138c951c63f631b3d55864fc450f467143e3418007be718dc2d0eff52c84a457ee93b8cc845ce9a77f7ad1508d46e0ced10b8271bd1ddb0d127346e49aa043ec3ae4ba57a920d9965af95ab54d0af35a329a58633c687cffbd80dad458d7598caf9bfe16cd628c0fb545386f2c3839eff4478483e482889a3f86400baa980ec945a59520ec3ac49601466a820063a7ab0426e88100008ca87a2bfee5331a7c39075fd7b85053abe96758302fd2198649675be852490a57d84e695f437aec6e2f02a39d0c6810023bbc8a13bd90013090cfe4240b317c122976fa93a6fb7999ea3533b13b01e95c7f66b8d6a048ce2b880d4148503d6512e03d5d65486c7def744ee7d1039fbc9024c6d2a4d6e294d52b66f9b8cd4bf313a155e5a1a8fd0387fdfb9756419fed7ef988b12d736fee4957e0f0eb927f23fb6e2a040249230fa7734b0786f6c18c1f9c157879881287bfb0291255e636b37167a40534efa9410f38c8cd3614c381144f351d115c1e17554cb1c8836bee3b525b018ac5f7abcce5f216ba99a54e0a23c7ff9a7a651cff176a5dfab3f88434144271dd008863c175ead882d88dc6ced931d6d986000deb2fd91e87bad012130c865f30c8de8ea42a10f14c83c78a88d752a2d53f2359db0ec9d6a7d7dcb0e380e66495a9d7efcc147c0aa7874c68d5d0561728ca52e999018f1eee010d5654a6a29f3ce49de82f5536d1c09e51db3088528820c32bfd3f26dda6eb10c7959190538e126e404b745193fd1ab2299494494c0ecca5cb9c9dd8e735fd5e345f7f4992228316bf14fd7510497ecb26dc57f3fe7a09fc71ae51cd2baea4df6ac43648fc95783cf7673552ac67b92f907f83ed36d25ccd90cc34db53dae593538cd4c01e980d5a1f0b96a2a787e953353f8491fd4a66160f93a35328d210ef7dfa0e75bd01d6211c14e94597a82891464a9ab07283c1f766e46b094021bef4ec82f9623e518affc873f763bdf282b9f42e6850b212f40555f98f2101917334099c7f482e83e75674e9ef210a2289c80a81a986fd9cbb2aaa159a887b80c0ec5a8e9501aa6a161d010d50c21ae7403c6664b17006c091ae4b7049af430f365270044012eb1ba10c20d70bcdcdb5cb447719d77efccf41b14abb6a62ef1210ea70c55a686b2098fa5661425ffbc8a0d1df0a12cb6dfc23c485793475d1775d0c81ca7c4ba324cc4cd912f731911d04227e5aca636b5f3efd5f612b54811e91c16a2b7a2f639a1744a624788c7aaa3d1807becf48f214cf39404237e5386bac6e63ad9b65d6bd491d7ad38a833d4f48098deac5688d58e2d0dd93c32483508c4eac704a92384d7dc12efb8490cb05d2dafee56163f28ce321db165ad4cb1e72f5554f7532384d947aba4f7db2d3ef190aa16db5f04d1afa6f18f832e3adfbe010eca9e6ca6cc900eb02b2fe8f5f88ebcaf85333b999336250e5737219d007b25e91de25eb8e46b4dc0211e3c3a361c3b6f0f2fe8f3d8d747cb6638462fa71a465066ce4eaf03b621e3cc3f39e90d5879446226ccc60587f44edd2794b4db251523ddf57d1c1414f3463367d0300241a339c2906304cd6f55e43f93dfb049710498f13bdd145c3b4040998b2617d836a6c94d4dd741d306d19ac916d8484e5b18c1fd31f273ab3f24a02322d661ed5586799031b61f4c3d37d1862b9c7086d78dcc07d095e612c965b4c9f278ebffdd2eb052a307027e406d691120d4207c307687ddd116e2cbfc6835038bb58ec184b64ea61a1c2d6360f43d85cc08b1831d50229aa7b72db3827674478a6146fe0b22a719c5b46d084a2870d2ae5209229ff890261a2916a822d76c80e99dc01cc458d5a15fb66bc1c51c6cb84c042be06a50c64420f23c41a0bbe6acbc1cd7392c5e16598713566e1f43f0320917c46fb1f52ff939039be880b559be0d23222dffa730f7a5693062a138590ebba4aa6922dbb26623fc9ed4b94d259bed4986356324f98dfd1192a555ee92a8bfcbe98bf68875d86c47c732a976eac658649a80ed62304045262c3bd165f8e60e75cfa8d97353c5e5974d9ff59133123679f03b4775eff7f6b2d4d41803b2dfd5f608c4206b4e2bd22cbf13385ed775ad7eb3d9efd0425cdf5def05ad64b4f7c19b9dad001b67570c5dcfa00254ffd8600c113ed3520f5465e6821bc923d37a61baf15eba326d36f3fd47e66335b224212bb788a959dc63ae44f664ce744cf7c0ce3e756242985b1e4a7d18b404a040554d68499695d8100aa03ec790e64f54021923aecbeb17b4fa1e4a01ac6969fc5294d3d442d919877109f6a8a631d83e6ecf291d6e52db9145b6ab0ee8ba21d7d619e5a2b6f27c0a7499c07b2047f1b3b11ab859e045bdf2ed6ddf818f6d514057877b776de2014b22ccb31b1f2bc5cd766b21bdf1486a703f691f41d740a7fac3193abd882478d8a885dea9623161388d0e4e87e22256a4e3e7fd09280138167f4907a4fce5aa4f6f9b50a5fcb80b77244bbb2a17d72beb9797c3cecedafc339d75b30988c390cf28a8789bca96a0323278b238c54e54e5d33da3852f52a7a53a78950f760607cce46cfab5a7d37edf77f4f55906b348d57bc9d8dacbccfe0019be830ce60936532a200842522273deb4c549119c1193e5558793e4e357f8c1e6f6ca587b261143e535562d1cbf23ab2e93d8cd563f180fdf2e2f1b67550c60ce1d058fda4323ffe847867080c88a097506fbd8ece3ee346c55ba1f432ea4d695893bc5c2910570177200b3220877bf4231f3fa93c6b90d823481dc37da16c15afa4ecb71e25dce94236e74f60f2b6c49a6607ea18863c12238e9574806483cdb21e4bbe15d949eb63dc9fe7aa614dc248cad0dfd1a2002f0fee8172c6df0f47897282edb7140c60a18969febf4d90ef743a4082e0f6a92918de80d7e9f15cf8d0067c21a813f31527d9c65f55f43f260c0b45395d9a7ae61fa7e6cca98215506125ad8bad37061b2f5e5e291647bb50f529b0b46cb8d4ef24ef0ed8479f9289efc5556bdf38cbca9f54732a31fe8edf59d257c05f8f26bc58b954bcf8b36154439b4f7972f22f91d8d313ef833cd7260b5c1b897f9229874b1d3d005c7bbdebd4ec034fdf59a9c86cc7186435badbc0f0ad4fd3cec25581a39ec8db7456758e44d8a9849854e6a2cfe7a7bb4d552fc2a01030db523c923ce4c54fd2a12b41157f00d71e6de5d47482bd7d2173bdd7cca8dcc487c3bc3451780d518310015a6c0a49c8a7c76a28a8fc512a340f456eb4b02a70ab99403693102119444d59cc81b1edc305ccf0ffa2ed1e817e3a4d2035af08f08d04e7a6ac18582a05f1444245552bfbc3ab2ec0da2e13400039fc8dc30c2767da608428ac7bd73349e62cae46cbe8d0b9c2527eadc5d22d0604282543a3d11272c695d7c171e54735079204fc059df5eaca7246e312146260dbac5a173b368b1c08d646094bccc6a021953df9e3f5d2024ca1336d3ec354e090286c0a2d6aaf4505ad3ba32d59f2ebba7540abe5228781d690a44061f8dcb52d871642f0b682d1b024f27f678ecf7ceab01fea837ab00f8b1e8eb095491a089e80d3c52e49a7018aaebd35cbc5de9962f0a46b2f0b4546cddcdaa554187f4c6a26b44bf2014607f7a142bc7307ef8fbe5df640a1b697e47259fd3a683d38fd7c0868249ed1b89010b0500da1537d41df9538b4da3c7e61435c8b8888c14b75ebc78920bec30958a1358e8d7ac882277bc74769556ae5a2b4958a92264aa049773722f509d84ed77ef6b4419bfdaec060cf71d79fee0b3db6ff553ea22144609253364698852970fe11522298f682d6a1a5320de114c1bc5d650bd8692e827dd11697f819d26d8411414a42ec05801e6335d020cd6fc11157a188f2b141d9f1a8c12e8e87443916b14a5a96c8af60f53bbfc2bb2456f995dcb02ef762aed1ff70d6e3150a22685d92cb14572b5b087b476ca1923cb1350e93867d6867b3466e7e6fad5ed8621ffe676b63d688b322bf1221eb4853d3bc6cc26f39d8d4428856775a5cd04c0b5db97d2d0ad8ec4b81de02515f93b9282b8d61a7304d9567f301b470ea2307b422765a9a677af3d73be8ca0c68383994b4fe18ea1d4b89696379b6652bb7b424908b9c13002cb6b2afe17b809820a3e002624b15854cb6a8ed5c96b1e489207ce77562ca839d8c91b0c4ee7960567681f526c896b19144f2f78a3383afac13c600121dc2a8e45feb187ab9ac440ab83f16175baa0776a3cee68ae06dad9735f084c832932923f2318ad4c7a37b5fc393e1f18bb6f9b8e06c5c98206a16455acefe406506e13952dcf50ab7035c82c0d7eeed769d1d30a06e9e68580ce85981c844078dc96ade0fa307e76dbf7d6dc28a36cabc6f299135d04abfda984adf0e031100c003461c41d2f1f09b7cc70432083086abb013cefb9b1b47d3006ea9727c1912c27799dc9a952adab20756ba0cfc52131b45f5bc1640cc35820ead310651f1c242878cca6d6f9595e2894842e06a10f9910a59c5fb8a060977d6da135ab04f21e578be3a21c0680488455b2aa1f891e327d8232fbe4337ec9570fce21cc7d46e52dcb82422d6e5d7ded7691faea922c2355a35f4b90ac69883a97682ac9355e1a641c78c79bc8ddc74d1d4364db5fbb27628d755767d65ffe49b30d355765fb6ab567794c3f97145b44a0f63705f696970a3736a6d7424dc8c55ddfcb0063450f7db0216313824394c0ca9e8f70c935f7d9dbd5e20a4d9a4598877020560c1bce05fe794fb6bb456994140056e8fa3bfdcb6a5df1c6bcb049795597966b44dcc1d29cc058339ef295bed304eba490fc6dc05f1081978601374d754ca42ce836b6b794cc81a57341aef7b6fbd95076e9915ba27bb2d7022e502c1ba939fc9f68bcabb54d3e0cc180ecb213df20e7e88f1f03cf1836bf0560c87e5131e79039fe438caa8825beedeec3611ed6b315f49ba3c9a8b0a5e190bb4e226ff61121f2d8639544229765ae3b200ace68c7c896359afd80c3f9bb9ee28d75ed1c1adcb56e8641c18abe501cd63e3b9c1c0aacae67ec85f4f529c752827741e4835164057ff271c9874aca3cdfa0e2d5a894d132d4661fe39420f269a7c062a050da2265ff3d75855b56cd801ecd92e7235c30b9057cff41c4d840c12c6dfa80d02631ceece8d26abd0c9fca97ecd4f0735d62bf1e05544bf800d4684b41c29dd159c3078cccbe7d6b47e3fef7c62969c433551348551a06ccf2c4cab4511474aef149919d7f59706fef81287f7a055e9538b5ea6547a48b03f7ca15434a07698e70321bfedc426a410eef614ea0a251424b642e90399d98918e338b51ef83c3e12f31ac5f323b27b22b9ba55ca2331c72b8a2b22bbe3e06a03a2d728ba872f20b19bfcd264bcbb4167376338158144f1dc9ebc0adb8aa88b1001141d482f21d99c49875cf2968f4cea0fa5fc1bb1547fcf71562a709bbce07dfe88863a5d5af12335d8582b1a27ae04f301508a0a5a097068129f2aab0dbd3c97b5bcd9d6481cdd36f257ed2e124a2e8b81bee56efd68b97091677eedfad1db5f0b6e6b30cbcf622119ba3e3ce56728244c232367b45ab47801142d02752d563b046e275a9532ad82b0137510c8ed7d838c74c0b74563c0415a9f8087a7315600a66a3502205d6b171aeaa090aabf2d558478aeec8d8ba822d881570943ebd52ec7d3cec18a177b3b15d90bd65cece1a9cb3e583b184c95a710aa12e90d0ff979a9c2d0dd08b0c82ed15a0093ea4af2604dd391e83fd0a44471e899f5838b0cdac819bcdfaaece4582338534fbb3e9e3a356b5cece556cb2e5871b1e7a72a3b21d60876a9e75d1f4f9d82352ef472aa01bbfe3bb03a00703dffcdb149633b19074a8ff6cd463cd9e47c0335380bb6b3fd3a3655f3f034dc3748acd27a381a9bc239909b86a79fa94629a061c14127541428180320a9eab8206692e0a69138dc80f1c71a4afcb5d1020527044a3881ad47f63c7b8d9b46b24a00a4d6d36d21a92aa574ddcf2ce135dd4090bf0ee1caf0023d5404afef75817ebf4361e91d0227bac20704686bcb4460a47a783a8cf3bd5d8abfa522a70a28ac03649f45334f4106088311c838bc11c650eeb0975a2a357c66c0c3e4ef7c1c65fa6bf3ca1fb6eb67b3a734626b6acb6789e4a8cc2ceb6d27cbd48d2c0d27747b5c29126d14aee20badf6cc910a095284a979f39c19cd7b368c52d446b8453ef22adba96556892b00024ab193d8d6a7d87fa68a9cd8053e83e4520b3c16ecd366a061215bf9ad445281d2f200bfa87629f20b1a9fd54f2a137094b3c8dcab211ba4604ae9297aba4946cc82d949f0c2932ec827962f13d5554f1167b2978e4d4ab1a191c0bcf5923de18f287faa988861c2bdde3715219666793568e6ed3bf93b92b7635122cdc638512cca3ab43701f91cfb8ddf8862287ebd6e66a2751ef7cd24c750503014a78f4bdf9a1057471c85f358880f83e0bf66bccf2059cd664fa0351fd26a1e849bd70f496eb0b4e90bbdf34544c1145443e8a8e911c36ed3bc163bfb0c3b68b6a089a3a23f40ae1c1852fffe64784d3126e95da153dbdc6c5a6523de4ccac8aef65a76caeecfe2c9680de51f30caf201db0523f4d4b30f2b09fa9b17b005840d59f7d5c15558a4772067fc3beef665633f92d09652814f58a279998dc1d6df4f77bcf1225005168e4e60c8dd49dc17e0e351531904013560332b92fd2a86e901679e45017f97966df4d0c11430c53ebed999c1903acd37665b123c302d243946eecf0924f7b0c6cc075efa2419c7a2e4ed3b84942cf756b61ff05e39fbb4df7e2025457d55ecd3ac22d8d4ebdd5d7dabb40a1d38e0b417bbf01c3315ab049c14f740b4a94952a4364431f7a6bee2b71128aeb072710f5b737821a06bdf3c7172d13b840a6a11e3d437b36c6ce2e12ad3a77ab7d9fbe8b6614f7d92b138f5ae9ceeccd8c33665c8fdac42b4bdcbaa253a140078b3e27594a74eb4f9dfc5eeaab575a669f79afaf125e7d2f6d2a87376f6c589e96eed4fc7f85579b3baa3615a2ab213a1d3ae0980bc82d53cbb49546415b4d3a3d2841757f8e824581685b6111530058c32a05785a4ad19dfa06626b14de471ee2c796c92b793faa9b74a4e72fdd24311d59a576c0b071f4a66e7ae4d98d590d10fd4a294f032d40dc3fbddd57ec66ef31a7fc1a114047a9ebef24f3985f2652b451f024912e77374ad09861afbd2b6215bf9b945121aa1444c1943b5fe28c74bc0ac581b04e64c48d97eda2e912251104e46494023d8e6bc742a001509e1db9ed981b3e99db33879aa47d828f755905e5c1ef50bd030d757496a107a69042c89f53bfceb13234a088b6e3a3a5da86f0d8cfc00bb6c30527d1c86664c14270e203575a9fb2d03c03b6e4a50d6e60cfc9c4cbc43dea8e7564f2c12cb8c65e71cb0ac0c70a5b954c18def085b2422009b2339c60bbae21bb671f4390113de491a898691d8d625312b4664067b807570026463ec655344697f339a4a010828fc12776a9be17d82cc8e0903f3fb8d2c081381326527259856250f06319a7d95bfa86a47aa724774de03563c8a66744358ed228a0770c4be458cdd2bafee21e58c5cccb438d0712a7e3e87cd5926ff24abca7ff736b6a3311ab8be0fe15e8c8b7d7675d95dbd8984b9ca70723be97a719ce88b8782e16d86b81ef1fac81becba5b40a9a7577f15c1dda009329c1a4364c9aac71d4e4e7f7a3009dc2f1f1812ac890a4452b714828607e3f01fbdf31fdf2569f4f89d1f416c22f14375f113f251d54fff33162ab566efd4fbb2d83ab7883cb404669e32f64e69e8d0c719a7e0916bf671904da00d159ec907468dc9223c8ebddb2c156f05ac49222f38a35d69e3ac00d078cf479b0a8c8f0704d1d2f586786a767321e97561ec02121012c2afcb08299ae29818e253f2a01c3828ccf22c6163bf808383d480b183361f4378c183f73d758eb2cfc4df937abb94abbe87cacbe085e378d426f5b6a07f5dc68742dca174a6fb9f3e593d3f97c90b9922e329793e1925523c769db62017a1a7b47f047bab549bca9773187ce38b464315bc323b81b58ce7c4ad11825a341408c9fa393a46ab0960c9838865cb763eb2b6c8f8ea3fded6022ef16137c782bccb97d70774c87a12ca6d463be5e598e69bc675cf50c5627507194f8ad5690a9b76f88285503a893c22fa54a80d11babc76e2fe9d01ceba60954d5ba1ce03888fe155ac7d27afd22038b24a408828feef33ab5641e21c3cb5f266981986dc1af272ea215be485cebbf8db378d01428e5cb046bfbfd3081d7de7206501aad346641ad9b29e767c735ccba091999bae27cd43e639b9574c5b85306617dc4d06d1f3987a56268b4acc2c1f3f71868a8fd72e0e06a9b2e4c918f1c73bd110ca9cf54c996699a183e801ae89b2028d304625759f829349f2a7d9d89d05b2ba1a5acd5dfdfe12f712be30a17aaf144678125d36aaf287d4339e110fc290c2bd2298671c8cf600f314ed25a12a3f52351515268bb5a02134fe67cb380b9bd8e09086909aed1a8a5d20964a14d7725319be7ee321dea23798d10ac999971bea1a1194b32e69243719c4fe6325c8b27f575101d5d37b760dfc7a90b6c73ce4a414abcafd27e57d73c8d7629027822e2add1e1cfa098efc452ff945fd54a9c94c6ddaecc22111e5054051b2a06455174ee58240b0faafdbf8d0e806b2464a7e08721b97f9116e8746c44daca96f505d7d3d3c7fd646b8a59a0ca39954bf4cc64ae697cba67857bd56c5f6a540dab2ce29c005798a712958378882e68c0401e1a0820ae218c08b9ff51e70401095c38e2f75c639254f2cd329674131420f997062932a9fa59c7caf737cab7428ef198692353079c630ee8fc0a03d7b5e42f70e2e14f033cfb7799948964b10eb9ddb821ec627d861f470c80c46423cd52551553c22bdc7f69984494211d975205b12b6d14e8f3f8d83b84a55172e44bd64455e71b731ea68175058ae784d9d1a404bd9a5870c10b895d6c674f00235d1a315042f05a273278744474cec7399380143efaa2414dd8184a226886fcbbd87ea62d4c1d1b125b0e8aa242425f0e7d239129aa764f2501299f72b7847d1706a9fe57144bce90686d72331043dcb7dc043065246a9c11c31b45f07d433054782f1fe9d7d4baad185a238d961785df8dcb0330454a341402c98cae53d3467b64a322b52668b91ba0f1586aee39076cb2c1ce46752e85e14fa9f34f457908d3bf65054443777671809d9901a96da7c9e9a647b2dc234cabd85d4542e934a7616ad4965e49efbb4acb98bf6fd1d90d6f35f2637da3b86e5c11e87e7676c7b212bf83991bde77cda3600d6cfee35fcc59ede1228beec7654378dde15aa45a3569dbc542c87bcc45056fbce6a687924faccb805bf07abe1feef153961bf195df14503fe78303f1af1c25117c1ee009aadc730650007300dea86cc167ee0dc4c1464fe19004064cf12754f0d00e81d00aeb26101080ea3eb17532f39e070e4d947658b916586248706726d80793e5f4341fc5ee511d56f4da2d1812492d02e8915a45d8bb0c12e11ae38c5365613a78230a28583873654a3ecc18d8405946f3f9588064c2721d603f9d513dc164cf1da2aacc3a28f9d8e5f891ac12d79080b28e74b51c072e3c81574ec3e8e3de661384db8f201721735c04bed351f9a0dce60ef521836d21bdc78c8e624b0a3d4ff60808fcdfc592f910a78ee60bbcf000b6926466a8d6d8dd8b199cb6c185d3948d8fa7098825ebcfb6057a18f36c5e706015e06c3a72df62de03a111fab2433f369063dc9dd92a67c8c733885b699ac753047f7fc4b9bda5550acaa85b639359ce2c482ee888e6376752d57b85ea10ee66564ef645d20b89cec6ec6282ef3c273b66252fa0e1fb450f137b054d22d1a61b2427898b4f6cacb8f6862776d79c27dc73efab9f6e2211719198f920d4400ab6f5b7f1c7ccd6c09ef6e62b02a15cb2bed2fb0267eadf1a31e240b2262eea98ade0f415c16988d5ba23b456ad7ad047bc52931342af740f4c81c948ba0e72b7c0b6da11ccba8ceb9803fb099c96b7c6b45297a00d3567ca6d48ae746cf12bd067954a6af0005dede91559441584363cd75b5c0fbdc04201581d40bafb93a32100378892a2e886231c0190aab056e938e52f8cdf78694139b2cc3223cf7ae0dddfd243b1948cb3263dc782bd878eaba6c186d4663505981fd8f23cd3c9df5d1dc93eb7465c16628951d2cb04c0f4899e3c77c3bbf9f589ec879f1e6ff5053ddfe958d3134848a15f9656190575001d49e6f9bc001782a443615475dea4580cfd1f89d67bdaf2d2a3e0d2e1bfa413e7ed313c228bd63f5cd3498bd25c6beeadf7c32b94f836c575d6a22dbb3d92cb5f25225fdc5f17e99a7218867bd8de62021d89a0f5365dd60d9801d053e45452b393a2991a1f998fe8d4b253026801f6bfab7547d5d7d3435ec0b464d4bbb2419807a299892f74886f3a8888c2818076a51de9c9a203880a26de685a3c5b63ca9ad7d5423e49c437112346609207e0c4cf8d70dfb2a6d9c0781fe7bfb9c2ae21ee12f37bd144075a865f20db1f8277b2f51aeda5025ff16b4b16cd6d9b6832bff352ca9f3c4e85303f73f3bbb0b80700987e49eca436b8d30db2dbbbd70a1d6f850a316d5227d5953a136f5d411f611957a45c0fda59e18d010d822b959e6389bc4116017d62055a5aef8f563c0ba600a49fc1ff9fa54bdbf770e131faceda1eb7ff617de81dd479022208c8fe49618608d88d091923e66934214a91f092e8429b8d5e1218358aafcc8e5f75b0df7c39e41dcad9d4b3ab676ae1213788b1e5d4cc089fdc32c24edcea00ca2557c58f7cae07e9b4f58b1ba621716f7408ecb400dae5a134a9e930a57030c8e9d208e604e74c3c9c37a680a11cd84de847ed44c29afa3b99de2524cf9ef87a9891414de87eba0a9469cc351b3e5597acf0da919ec1eafe469ea83d47412baf797fe0198be229c2991a770da95370a0a3e1fb899fa954164ba126502f3d4d6f5f5778138d2c2712e81fef67f7b6593e98f820848dcadead356f0e2e149834d4322626dbd575615486bb7262c3912a8a1b1c8635d84d6320cd6555ae9aa744d0d99fe2e8d32aa77236c16023a891f99c219eb40b63369f188c98a669b2571fda892076e312dea76761f920d5142ee5f81059dcf34150bdf82a41be7768d7a486675780aa4a9d9cb5a8f4ee0a094b77dbdfd380d4b5f0fc569aa3d614bbaad5e9b1cfd795e1184831b1482cbc0bf5f30fc1009dac224a15e3c6d56f88c653d1432cc4b632547d46d9dedda022661a1dca741df88add0dc17334f8af908a4d882ce0b3cb8578ca514c75ab703e8e3ef3b2857c97100666eeeeeaf016378081011c99cba6ad5458e3e28fa8b682f855aef3c075bceb33623df9e0600495c1bcf922f7faad39cffc6e3de864a73b224c22082a82f95baa02cb935ae662ad2cd8e16bafea79376480e5a8ff1a750e8daaa841774d131736949cd6f50aca508d65d9cb5b4dab30a51b6843ca071a9f62c929c08c0f8ad4b655b02f924bcd99b4bc5e517513fb536e1a46458d0dde55658384ae7141787dc0a0be7ab2cdf114ffaffb856c25106973b489103dce1e2e80f5d565b1063fbb4456ea058e9c14856c6abecf7f17fdee3b65873cc4f723683f0e715533244d196fd8921d714ee0b15698678610965f031afb4ad9a0abdd5ac83faf07aacd9595bb1959200b0c753962d29a7d561fe4fd5c114f12e3ba45b72f5c078925a67dd757c1b31f247c17fb628f7cb81e52673e9f2828f7acbfcaa91c9a71b572ee95b91108859987a1eaafd408ca47902a945229780db9d7cf60a75dc57b7345b717efa37a26284be6d82d7c9b9e6310b87de1dc75f0a89774789b634f753d194435f7f6939876f23d18634cad3aa7f7b8ee856ecf191d085a4ab31f693aa872fd45af1684610d549f312b079593936fb838588e66d094289f6e564da578d0fd666655636520b9176caddd819e8c501143d9ff6d231d504e2916a905f1cc25f426f73eaaaff6284e85942c3d45e451e620a4a7c2f15750998ff9304baf4ce316e49747dba90b6b0776b645d0ccafe4d488744c83138743944b2994def69af810db5221bdb8776c9f3feada2ee6ea97cd6295d64c1423a1da4a8172d06451a3fdacf73467fdb35231e512f4a0c3d671284b1d5a8390460f4d605da2d595469cb5cc8dccd30713db26bfe8ac463fc294f600dcd698f547434e929a06b8af4578b45218bbc3eff57c7b19c6149d215399aeb04b21154b1d59c295d1a9ab4e48336dcc472f47e9626c51f73ddcbd8fa5d90805c401334f4cfe4c5f6f6da18d382576f56c10b37690416277e775078dbda20e438422713516723420bf360fddb6b940b512c3d45942d0a11fb20862dec19c1cea0e0bade0559c125f3d2044902f42fb172913e13a09a7660061ac766688b9d0bb6ebabe172753099ac508077053f11bef0b90574ef8103c9ae9dee281a36593caf3f4817eec1c8e38567aa655a272d445f0c361d1e952fbcc908595f4905bd83fa98dbb2fe9d0abbe0ffe4cd1908d7c73789ea3c1254419ee12d9b189358af9c04089a24e06039b3393802b321f404176503475bff865c81108d67b8407786b8c2ad8d033c96f4227a8423d70fe8e0e937e4ba712b1402cb23e44eb011349bbfc34501bd7f63c08fa7adaef9b7b27590a073cb51bde66df709313022db944e9a684c3cbb4cd9ca8af4e2ac2270e3c6654b8fde02011f51c91e270f656eee7072aa6c7a33d4575e709f847198e8ce3d4ff732d1d23435e981ad04887a6e2227eae7039ae8151dd4be87354cd18990ea984fef009cdf2e4bc881164049d205d48810c21068fee09f34788d50eb83b03e5d4013da67051c3ac66f65045af631952b43205692f804799fef1df70f5fea54358b726cc0517d89eddcea27ac3ee9fad7ed6b5b10f808690ca9f765b83ac0336cab95178785b372ee1fa8429cd253823064cbcfd14cf7f637618bedd5e42685a5dab0e52c7817af012065e12ef441f1238dfc8a286861e38c3385a0b91ddf1a8f1eca6353a3ac96018eae38ad1dd307be8057091e3dfb455c4092d7807e3785cec094977ea9924fdff867ad57a8513ead4529a9040c67da716ed02c8e10b57666330991910f3619d0cbacdf47d2d67fa72bfa7d39f2505d39eb7251f24c0541f7b5018021377a2600a0e58deef75e51faee13c14f1a758a80f470f7f80b20cc6c5bf5546943bee25313484e4104aa4419d0b7d1e8d0f633cb8559b0bc3d6027cc3c80c7a38a6d91eb67f608b293ae866142f4ca0679ca4caf354717525f856b0a93d98c09c580a312c47b6c45a484d79b0a9863ddf5103d96bae833f387fe27955c514aa1b353d39000a652ccb0f4957d7fa380124ed1a92204fbd58d475c5df4d479d762dcb64a7ebcbdf004a0abaca306a96f77154b0b19ffad1f42eb56a2d79139072b06993c7254972eb3137e2240ae53e566a96b702dcef330636318b5f20ca3ba5bce79f5f7196535d1d3e30bab9e103a8149af53dd6d83eb4df080c9603a53779d5aa77438c568445bf9e109de5b37c3ac9de7451960dd557d32527e72dcde2ee646a4062f4b06b3a1b6e0baff3af3f32ab4855cecc39b6db497e047ac3881a8fdbc62dc2038d3ccb18077d246c6ad486f44c153aeb95b8e9ba7b807de59bd58773dcd1bf5c5a77f955e49e4cf1d05544380c84633da7bd07d1a122b94ff11314bcb83a10ef30d3e2c19af00df143a1c0e50b435e211ebf5467781fb9b7548068fb5616877e3c53aea5cccf57d9d0a8fd775b2daece227f6a760b2e24ad3701f652ea01cc5690829fd6452625290936d07d6fb7657fbec6a30ebb864e2e958538d37587ba1c351ac4998782217fa183a8b332b63c26bbcffb63e23df74033abe33920e2cf6cebc1ebeadeda1e5a2bbc51b4416e83b06e0a81dd6a8e81f694052e4c62422d15ab1bc177f6857da10060ec9542e02ace6682ad77928e1f6d877a0c99842f6ce11f7a610ccda8da80b100a13441ac49ef6429c332332e6d4a262881b3e2a2ea168ce9c1c87ae597602526111f37bcb6984c73c12633a505fb3b05d5eb9e0383f387ad5ac6a9f0553ad00eec699317ac2aec3f5b0a2d63a46ef01b0b346e76bb9656059f375cdb59eba6f90f09cde1bd48ffaab02933fc7818b7d8458d307220e666bc03cfa577ba512017d149eb20fb75a81bbbbd6e19c23e64e810b80773c9791ddef538e5bd169620dd9a9ec654f6b2d6d8270b521a39b70ce8167717f5bf08e0d3de4854a5c37c6b484580b7e0ce8c0a7984f29dc9021901bc6cd7618cf2551acf82caf5179cbf295fb886ba48b4d61266489f76d09dea53121bca2c519f8b5ca197f788d86fa28d08616ff63c16d3f9b627b0d9928e8132746d283d3114f1944dc54bb91d7e71223ae7e45ffd675db6c76cb786eaf51176fd5686275910314cced3c21919a8518d1cfed5681b07b3f9e541fc263ee8bcb3a71f362c5651d50c25ad39210da2fe5c0f4613e2aa3b705e1bb488aa8581029a35a4547a1d86532e24ea8274a6df505bcff5dd282019ea8fae441a0b8bee232db4aee70f54f10fcc0e05a49eef9cf179ed9013a45f99e7f22deb77723fc9e90f44f0697fd0202b1cf075888ad01d7b3afc20be8e7c803857847daf5ca94998e56300b202b245ee836cd1912747950ff885da29ec7bf62797d410a8ce6566b811523cd4b0f4004e081fb82a6c8f97fc561b9956fa18360aa56293ecf90a1846d175f52ae7cc1e6494d413ba25adfa639c4094660a168924a21e7885c4a0d704a3c0c59bb143377e4a3e2bb5601c9293e5840f4bf23e9a42d05d11e16e4cdd899f1f95460e93f599c5218665ab8db9385c3cf9385ce1e8d716dfe21995ca460f3840c0e2169d188093214608be395b2d5f8eb9961e25d0e2203fc44fb359a15ad297b8875585fe30bd9e85c0c059b330a82ccdf3aad60dd9ddf19a42006a58f10a6da22bcfc00379e3cbcb36e8b62ac11e54f23eb23501ecf4f2830781a2411fbb86e9aade9e11442dc402003e809b6e826ca3f27b3cb9cf8d2a9a904c5352d08f544bd79b2c1017156f1829c9aad24a1053c7b55a441ff0a131d102f43ccc56609ea906e651785b48ce483f3b07525fb65775797567e044e304d0008935d3805b7b9ca180eecb9f228df037a5adf01f6544676be29b934ff0bc611ccb27567a99b632e24fb51659ab1ef6af0a8543265c67540926b65e440d06c7677152efc0d068805a3ff3c93acc933d7914d9106ca6d9ba5cb541240e7af0e8abe0212d87bd8fbe50663a4daafa65cd56ccbbd37ea382e631f63c1e4fd1c86f8247d1c60f07f9cb6f7d252c24c5dedcc6619147cc0389668ac0a4531a0f4c88fbc2c7aacc3dd89e0e26addccdca6291723db679029cf35d374fd7ccc7d0913503abd18c7234c588e410386da9a5e6055eaaaf2d111c01eb91e2dccd43178fc2cc9b8794795635068f31cd5139d4b2ced0fc25c0d092b276464e60cb482cda519f6c4240692cda3e874bfb943c15d59e2161038e99237fc73da9dd08d5cae254761e7add601e37365b47660ca48414d67ba6cb8735e0fff9804dd929eb5fcae8d5bdee294f8491497778c8d34a67c71f42f5b3c918f88f65cb85627cff5ad06b01b7b8e288aace67ccc0b64eaf5e4f5264dce60c8e58a77e493d29b3c2c3088dfac8079bed52921087c041843fd38cff78690740360d6f01a481e0b853550db96d206c0223629524f253101162edc7560ca3e98057248ccc24a84d6e249ccbc5ca2fa627ba620700704fcc6ff967326cf29dc016734ac8e4a1580451b059faf35eb10be80e5611c440e8479a0ca13a8982cba93a9ec7269991bd5185824e1ac175cc126102df5d4e29d8181f9b58b62e90566a1b5f0111ce0cc2663a6aea854733bdc56be4b8db6d537bf147816510818c29017e0b2616a9c860ef13cc693995c7c8b008b5869442f7624bd3c6e1bdb17227c79838d4ebc13b96b6b9790a03ebe70872de82ed7737e31cae22186959f751235d90df41f4c870d56f2c5e21cc991e224ef5179d15552bafda7e0067e643e2a4557a78eb09931498477ed44aa1bab56012673da58376034a2b743786b87e8b425deb0b6e8331182bfef3800148312882276d07397f7546daea3400653e1f65f38e1970e39fe38d225bfed2070dc672537f309db7641a930689f44e390a7a3a1648a4d58b60e960234db9c97db74992892671874db7d9dcd92905fd7fd183506cb76b62ba26513d5c2ddb8a88634cb9ac8be867064b7b8a223fd85c85e3a4568e137c5f25b89daefc7f3b448132a740932c2015b403676ebfb87804fbe949044d29b14064358e619ba5d0a410b35920e0e7605b0411d24480dac968336b47334b01ef906861788b4c77655e9103cac63a2f372f3f1548cfd5aa855855f0cc3331c8f6e336149534475031e244aa776d20ecd5e96f4866895edb68e23d7913a6f1d91d67c6c46924abb2a4d6d236ee6ccc2853241c7071d454a97716e17c63f6edbae24caaf733e8d3c8ecc76ba16f5474152d08f02f78183ddceadb0ef9fa3882eef55ad82cad1833410c60f3de4b57173a0530dadbe3735c871c419cedf062c3d5ba356e704dabc64de9335b3ffbf9cd8cbfbf361e2a0b714ef15db33896127a42bbf677ae52f78c0676de85882b7c3bd121c3db68814c4e3ed5b78e6ed19f583d72cd7721951abf403b7ece45748319214844b32fc2b549df707909d18d5b7c2c19ccaecfa4f5f45c6b6f8a73baf3fad4a5e8c5f523bf4617a3611e781cc74d3853faed16bed1933fbb3d8ee8f72729e7e32e7eb4515d4be0861e4f8a4290170157a42a13789b094c7b5c8bfdafe82f995addabde90186788794fe8844afcf1e88deb66134472b54c2c62517ee0160e04bc6596f179cf1f8b732f032ec6899a5cd10155116cad568e9305cf3a5b8cca2742205d31fe600ca3d850ee7507c637052cf1958f5ebaaef4fe2ffd1db73c20c24fee73cbfecedcbfe78f72c5dec854bcd09f9d2ab50a4e31031e88aa46caaeb99663d1e101a5cad4399bdf43376ad4ff34d1c9c7e97c3c46d0841b398f76f8636a13e6336b8fdff7155b50968421678b7c7c0f217436df375a4d9d4f677e95a21f7d6409adc1322852245c9628eeb764508f382f6875c0440b6497273e0091885f25ae9872bc65e8ceac873106179f5f5a5eb325515682ec2dd5a549050a2853289b296d209dd8fa2cb5ef511882f8e3db7521a73881e1ff14b6109c70079ea4d91ff8f8fd0e39253ad0d03ddd199f2e036fd9d8f44a4d0c458db6c4a8eb5c95ab290b0c7b297bc104653f5b988381c31d922c6db53a05fa09d39eb82452efe32c9f416c4c6881f20b2a13688f157df02e34296db3d5eca595c18d201a2bf279e5f08cdf7a42c04641c6b5a3fae637fcb7ec8f5d2c95f0bc797a4817197f73ffde688a5ddeef772c912d1c32963c6e5f8da4ddd3702126bf05122796e3594ddee265ce36de722763aaa3279d64b42fff54dcf4b50f26cc070e2cd4231173574cf5a1bf284c8cab8d43bb234d72d853e5002bb012b4afefd67dcbf7bbff754a9d4e23d890867d49471ff3d065a39556edc050d01d1352607bb631861b4274219d783a605494ff3b1a48c2a5e393c886006a58dc3225115815697dfb0a162df29845a0e7dcabc5c810bcdd3618b955d7ab1a4cb1468ad2c015673b9d2affbdb2f67f41980e77c2354785b8fabc7091cf1ae7cb4f66d84a9475864091c2fa1fc49f536d1862ee315eea81c7ae9ca6c7fca0cc7419143747d87a2f130e5c5d0481e0d12e5f1ad5af926ec8513fe24e567215cd983239cf2d86833a044949f85a1f02dc4ae95031d19932b708bd3ce14df737e8a2394cda4c089842b8db6d37641a063f079aa4b7b8e2b357f476830362e404d397b31a192a00a49873e5f1697d873b3e5c05a2e5cd266cbcc382dcc48d02ac93beb2a4b7a9bd656a75d322c26cfb66a6ef277d75479d8eedcfe6ef58dafc4b254daa0552ab00d1445ad9cac2388a0414ce6a6634798d69f2e9379c4e200c54b9899bf9e2399af3b98bf440be013283e1a574f6630f32dd33b0739598064f204f734d32d64d9a9053837f98f3a0f6efcaaf68b653e172c95fb87800317c20e068d2d99491492b65a8ee4986027ae0a76e152aebbc54cd537515d8ad8255565a2371d337b4d51332b6f469cf5b60833cf7b0fcd54ef453edbfb907a66ee20fd52ced654854008bb1752b6a3cbbf78dfc4a1eb3e5f1b90d307c4a8eed509f1c9f9904530b208b96811d0cdab339ae0d4d183e107be369c8f93f6c80506fc331514fec3b060c61eaf6b62621e87a4080427f360df79c661b9fd3f316e7e5c371b089609af1b9ec2b6addeda4304d36fa79a7aa852060affbac8be8dc958173926b988cbb060e3ec2c44991a4cb97bf1ff03e9af0d1306eb1d21e638e6d7dad1180139a3881fa68c5056e0157b77b17648942486c6e4988d2197f3b051594f94e3067ad87a1ee09b550cf44f12f6b3f4b2330f3dbdc0400817b537e4b2ba180436e881bb8a78efa560c9dfe201f2fc59f6e153a02873ab3b6901e93dc2a680782354a09b09c0943606e6a4fa8df24f970449495017c7b89c1f8550cd51e3f0603a72c5d3d36a6ca15463e7c53c1cb6015f474f13e2d6d1f9730dfe871e93b50d487a380169c635694f92a1ecb3f63e2506bf904a8966ec837924b21a4504a5805ee5645a5600915a31a43a6703e82ae9c93d74090d4e12bacbf93aa4e843eb344a7ab787b03945d49590ce74f0fb8a2fe37f2ebd60a8c0dcf4929ab042e979fda38b96e540e2cb4e33b8c94fa993903fd4cd0dacb619d63abef65017128d15c40b1eea3461a7b3e162ff7440f6f7024c78366d4fed6d4fc401fa4f0f346a005e95142fd453fe1d15c0c1e4503dea61df4c442c7e2e7d85d682e23b74516f12ec4151ef89c706e8a4af44dd0d3645b97661b665a214d9a1b874a9c9707a48a79b07e948902a56c3c5068afd81e0a462b99e9d34ab9b11b93a6b21648973bab1b90fe2784286743fbacfa2766aed0af985e0aa4a59ddbb4ccaff874044c54c564e62fd77b0fae4bcfa43b02afc07d16e422fa58dc7bf04a962f04c464e59a6d53f09565504bf48043978615f03d73f2fdca17e3502f90741aad8ff2a7911465278d7f949102a68b1c1810ae6d3675383d04f8252756f1f13f7c5fb0219d4da7d9a76990ab1d9c8c407ceb57a24d9b2683db73302a5ccc3ebcb3f5bbcc6993de0d1f405477a529066bca21355266003582721f7750d4f9ead48843133a38d07303d5f66a6d11fb296704d5b78b7292a861520c63ca4712e1a49c29c3d923bed481559c52d5f5a71ef7cd440c50ad9225671069848a17f6ea70cc28848cdd976f21c5b27babf3d2744006089738b28d309e7216dac273d04722decfcac1f2366ee8807dd86b7aa80b056393e16dc7177e4845534abeb2ec6c1cb37b7aa202017101a5ca0e8e15789767320544d8df050ce83043c748b58a7ee8bcc91c671c596e15750182e830240a1b3e23220c1c6e5f4d22229b971a21b13c0593a3e9ef9fa70481442cb740c80d2705112b5738cd691458c3daca7a2df5ddb69057db9b643d105eef66d52720214e685400e00b3ce9bcc1c36ea8b3e1935d3395d2ed696cd90c7af111fd80ed347a60e6348ba18314880960f870c4d5107cdbf4d61e9e58f7bba2cd33859c1c581a0c5b33e380b5cd55a496f6eb2320655f1faa9edcfcd563db49baf085f8a9cf07e1bcb0e9b1314e830dae128a58bf75ddda164e103aa1ac3a35b200ac39a0ee52dc4d01d2a86552921d1d8c17df8e28c509faa03e781447efd757bca5d7c3351d220e6b24341c417ca1b2800500050aab72efac8d1067e070519863542a277cf006cb4720d681a45b8165ba891dd6dcbbda59452cae909da09500a4b51ac4c2b9d13a6294db732d370d068ce790cc18ea0b335d08b44652084481418c2084568b61ced73ece3d3d580087ac62492244c22499a65a7d91ae848923e7296770943b05b2f01f4123a9849dad64027a1839974bd8399f4b9dd468cc86c0d740c5a2037e8a4eb33c97920cd42a1a088c20ae8e5cbf1a190820ce8330bc87b50ea4167851984428a2b0f8a5f3c287a9173ced5db84628a240fba51bdcd7810f48fa44db606d2275bab818e54ff085d4e36452c8eea2cae2e81fe4868d0e9148b039d3a81d641073d84a907af5ba75520ef6d1551532595666b3f4d74f59f257a7e2486fa781f8fea8cc258a87ae33289ae5b9bc2ac596ff2b685b755decef0d6411cdefa87aff02e017f69a12c9719649d5a0bf5b682bc0d3cf9a0e6453a1a81d1357e3a4f155d02b5e6ed3acd3f613a8b0b71d9d66c91ecf60ae559a2a9029032896471a3db6f97f36eeaa2b871530be6b7398b4e83258b116a9db7d64b1a395a428ad89abdf58a117f9afc2cd1d67d055d37101c74f5aa03ba941a4d6b7f06612faf11183d7e79a92ef5e3c9bbfdb03c5be92b5c614ce88a31e660663bb31e3a9224d0ee1907d9431f923d143def3d24b33c6fbffab6842811374b8a0e77de19d81a76a41984fd46153dfb01ba7510db3db37e1d8646087622d891b06780dd929366ddda6991aaad600a9fd4573c82cfc9e7e48b526ff3cbf241e1361fef73f25df99ebe2d1f97efcba7a4de4a3c02dce6d3e13678047712e59f9e42b9647179324dcbf37d94c60a2560a3fff2ddd9bdf84ac5e568c259ea6d3e0583af602e380a83c16370efab5f3ba6decacf09982b55c52e2e98af4e2691dd602e658e6fa038d6aef80abe12fa1059f603a8f10edfa6f11487f7b4b532c79746422acfd6aa954fcad61004bd0a58b9d92261e508278f435a233bcd1ee67b6928de7097d643cff6a70d3defb1da0df28b60fd6261ed580dbd0cc91e59eda9b7fcf3621d43723ff9e21d43d25fc46348caf818efd3f3623886e4ec45d618923c3b2f8e6348ca5e6c8d2109e345d718923a2fbec690cc79518f21197b113686e4cd8b376348c25effebc59c31245d2fea8c21d97a11c61892e38bb23124c51777c69064bdc8338664985fec194312fcefc5186348e217658c21795ff43124ed8be41892f5c53d86fb07c8552279bc67d863ff31d99e7d9b040c707e00fd7d80835cc40954e630fde7224f15d1088cd6148b99b5cf48095d62a95aa3a6589cd67a0a96fa1c4be1295a44ff73dcd359dcf52cd3fe7d330eac873ec47ab88dec403712baddd3d6c03d84e5e236629db5b5ad7d33e806136d4931acaa56bca311184d8dc0689c2d473c66aac7de78cad6beaafffcde68a229961262b154188dc18d1b54f4ec4776ea79cf9ce560fe1c5b7d8ea53ec7539f67920748569e13128f49047a0a5f02ae326b9fcf20c3c179f8cf4b1a10ff79f96122fef332f75f9997a2fee3e14bc0dfe72089c7cca00f4b559a5112da088c9ef1d3088c96fd3cf22592ff427b0ed3cf9f132c125b59515ed47fa0fc38d150fff3d429afea286c094d9ffe8489d133692675309394807b6e0a656b14578cafd535e15b5da8aa40945a6badb7de3aefbdf58baa5ba33445b1b2d65a214a9428a151b33bbb7bc641e8df973d4c2a29077e7a091ad0f799079f7f4294847bda5add25e53dd437933e0fdd832fdc477643f2a651fb88d44c2a1aa329d40ca25ec2fd7aefad5ddcda4294167ab62544491b367569cad628ad4aae803271a053fac2d3923295d486a7e0de974acd2b286928f044a7c36a9b27262b6baf0d81fa02688fe9cc532f02c5e9a9d5b496ce10a32985aa3820ca3b43a7d23ca5945e3dbd9594698ee9009ba70e0293c5f1f84279cca0263df3f122dc8dc1a4bc4db954da8c10e8725a8530ada6d5b4a2f587055dfde789aefe4301edee937e4e293562e26652cd52ebe3249ab7ead66725abeeca6f78facf43ea5f918ab36974df95cf67bd5d3d61f3e5f87df4e93f87d929e4f321f586bffcd77b72f5df94a2f987890647ff3ea74d1627f3cf8b589c904f874e17a9b79f9f44ac25ca6471d8e78ddfcc19ac9c57737a918a8bc134a7cc252c60d5546f379f53279af439ccce114ca837fc658e3aa48ee7902592cf716a61b03dd320e630c720e6b01bb2f4bf99d3611686cfd6b414a0423a677e84d77124ab438e9e438a1ea35bac765be461af9bd7cb61305879c2b472b97d91d6676bbaa4a04230d76e491859d21eb04d9f7e68d2c549ba7c4e97cba549972565e4b49f0bb138b7b5cf356b97597f9f902d1af49a175de647aa1ff64f3fddd4318ba73e93ac67701dbb07d5e93e42bd3ade477643a857ec47e64c2227ccc9464575e0ca14123c349921c95249828c99a82dbc1b92acbb759a7dd904f4f45226a5a537012b2f555ed2d0a82e56faf3e61c82d445d648b14c4cdd19b3a515e79c333873ce397fee2a8f7cf535e2ace08afe7ef658c8f2d5e924eab120e57b4e7a6f5b40769af5b3c7020b4f5b40764eda3cc5ad0ea6163d54f9c016294431c40792e6acd1afe7648aa72e8218ac20084ef05a908eaeb2c857a7a2d7648c172e5ea69ca159f4ec35d9f2d569f5ef8ba829f5ea95da0b8112db4ba9d75a29f0fa5cd7dbec07aeee634f0673a699822008829885c1ec03fac421cef641bf2f02789b44f3b1f532cf1fd8f14c83abd33d7ea48ae6e9635cae3dd882d65a6badb5d65a6b416cadc518e33bed77f15b2f239041f023f1dfebd591bc9528caeacde2b731245f77bd265774bd61af5bcf34a87ebdd2fbdfa4510d5a1a40e0ef24023f5c5e11aedb2ddb790dc516e36b83a9f27a4cba301511e5a6f69a58a1f75afbddefc31654d12735f6a9025f8e3be8b083929bfae13ba97468632687aaafe4fd717549debadd73d2ae8ffb3ee88324d02ffe23cb08ccbf2200e9c9327b6c4cdb2e52642e558bf5b3c7448b239a9e5cdb840b27ada8a625eba3d754668a288010228b1558d4e0849710a821426c7383e6e20712892e4970f8820db9a0017361256482a6159a91e1081aaa281193c607254994963839455103d40d29dca635bcbbe64b8d7bf15da38578d778e1c2a103e11a2ceeb5998998af5f9934c1a4cbdf9f3d263e0821de6bf3900d07adf6c8700db97aa34d5af689a31cf2a0bf4216feae15c796cc5f64ce356cfd70edd8a4655908196c6dd0da7ad2726c012339827a8407f3379af0a0e35ce4de798d849376bdd58070e71974f32ec3bf4a5f7dd26e116f55fc8368c444f3742993d51e8ed03757e8107a532113b30305a4c5085a9da769752368752368f589a603156811736a46cbd28d89a65666549afea4f281c9cf4ab33df4a0af0c31698201bda99089d98132daa24b202de1cfde0a35246140bba0a7c3f8d95be189edf929fbd95be2a25e1cb6d0c28a39dc8015d801690b5af611496c00bf9095d9b15b8809b758135a306ba4c010d574b123ca5eb042147b4b4a2cf11e4683386f7a9eb1b44e5529347a56eaf4cc23553b7aa173b5266571b3f2a66a959415ad5255958d956e5e514aab54a0bd5a26deeca0a95b1c22b7de664c46d3513794158eb49ce311d1b9815159a15f7ded8dcdc62289e829db99399b8d88cd3a11bb334e176f5c449cc8249a329c68b517dbfbd94abf895df77b1a8f5fbc2325c717f12ce3aff98b79a4a1bee58e72867fc616c591923d65acd2f0786948636b748d942c21bf09f847da1392c311cb4574c55fadb543f6f508b606bb4f1dc9c7727e1167da28a59a5e2ac6464ace84643167ccc9dfe7e07d29895fccc9c9d1692dd9d18122d38102e3c60d1448e7ce1c1c03413c8217ef8f82d4dee488c91666adb5f7fed5acd778c306d76ddd888188e937e84f058c3766e889dd90e14693f89a73da6b59d65a6badb52ede8cd65a6bedbdf75e58abc7f41b291cb9ea40d154078acde98be940b1d65a6badb5f6da9c74a05c5b6fd8a029ddb9d6e6c42363897873ebb539974e7d14cc019841d387683368babe1fb6427238c8bf37e038c992258e2dd74b8f3aade974b6ca998ffad36773d3277f62587833cb333e56737c26848631c6fa62a61d338869cfa019347b6241287913aa65f326d4b776d32acd79be9b11a7d5e37beb22ce38c99bd838c9127c7bafce98030306d515b1b5e93b94cd08b63663e8d039e78cedb7aeecd78792e39cd746134b1d5aee3b3759ce8490259e4dfb76f2d8627c81c1effbaed37d4ff8a8cdc1da2217d32cbd42d0aa9127f803bfeffb3e03809b4eda05bfef627aab78f24298f1b5164f7b432410e4813c9087311602bce19759988537a55e5976a454646556f8e530d749c3f5033f9876d58b3f27d1cb9c419522a12bbc9ac8d93fd0e8f5e4c99319ac3c79f26486096659f84403d5a7115ce709333c99210ae5c1d8e20f043f6c9f606cf107821fb64f8e947c3a60ce510a47281c25b1f7da7bed0d188e74d365e9175e74d166042208011b2ed67c20f8e11ab69862177152d7200882343ed87806e10f02d68a984713bece8f6a117168f71e116f2aa679e349c3d96778c1291ebeafd0a7db6c99ab3c5f318bccf903916ad2acb7125f594fcf8c224e591105f367e27c4fa2cbf3e5cdcf708e993ce68e4984647916938fa9053152758b4342b24e220074f15e3b6db68e34e3b1012eb5ae70df1984f1ac026910a7c5b93e30cf96cfd78d4f175fad1f1547607491d669adebee91c5aa74d27004de66fc5d7c6dbddfc5d7d68a1d862faeb6e28babb5f7fa84fd65c057d76f6dd2091f12b1e235e2b4e96b3f6badc5f6b316dfbaa4a541bdb68792cf19f6e49814b1ec3a8873d6e90a1dcc452c0e064215cbc9c44fe7601615a142d57341b308042a545de8a70f21226412853e7dc846811e877fa0d18b2ad12d15a14547661bbd599b864a9640a0454790186943978ed029940989119806a5809f5833064718322a6ffcf4da2c2242852a6d1265991115aa5e82798c9e1e808a0301047c9188541ecd0a48400846b4e80093cddde5bc42c00cb220b0421d768207d423fe0cc17016c9a85005f24aa3c968914fd963cb32643d3d3c71e67bef02e624b2d986413c8b7254a8ba8e21f340ca20478b8ea650f592f63a724615ccc5926d2d06fa44a43cb4da9d597d7c7c7c42b03870f3a8b53a79b930e7acf5967db1e2c1a4ab169a7ef7eafc0473c0d108044659185dcdb903fbe91f09fb2bce51fbb835339a1a61d1728df71a5da1a91b7d4053374aa3a91b59a1a91b55a1a91b51a1a91b5969ea465368ea4668608c461ed034cc466778663c2e1616e2f40ab6d0d481b80b60a4d051e8acc656d0812c55348f202f3d31b94982d2f1c98a31891c2e00658826a03c41958491d8410183020b1f40f364e54125b2f700e1783cf418cf395378ec177bd6381cf1d865596078ec4ecbe2e5b1dba43cdea579ec481a78ec19f47248f3588b97c755f752f286326fb313c84396c9a8a69af6ba91e4062a3af9278ad9e3d405e7a4c606315f3da7d5a3bad63130a9b13be4b442f6001610dc642a8ea8418a0d6071faea30fd33451d69d0a2359a1e0d2ef07cf5d74f95b5b12b62f49528beba4b465b88e14c0b366ba911447c192b338306febabe320119acf8eba34c8b122e8836a464102206d60d632610e6582206229ab2f8eb59dbd066c9eba873d620ecafe7aa2609fcf54fd3d08585abeb44c0bff7de7b31993d44bb00940b54f1d59d068393af6e83018d05a8c8d55a6b53175ff5adb5d66a750d0b0cf1974d0c5cfc751e1557753a1d13bef7dead33d53d403f544f3258615365869d24729a3ebf30cf7eb151185f7df692c4672a2dbbb5c251cc5a167fba88af1562d6b2adfaec984255d1a29aa4e62a5c556f3f9f1d5b4da234f5063aebd3fdb7f4d97f24a0412f7115d5cf120d4ea99fff9382fe749f1297b73c3bbeca2c5cc5b361de9697efb63ca329ddb2bc4acb3309579596f7d98d7a1abb486c656bd97155a565bfd144cf778aab6650f61b4eb2db0c4ca2264bd5585565a76d2651ddd2049979bb9ebd9a99b73593887ef62a027af382de589edde69cdd4a99d92d0a1447a770318be8162a945da6c562b130fc93cf3ee914cb644b083e7b8d62e28ad89a13b48846a142d9b3570c4c1c115bcbad2b3eb3a1e2f354eea235f05956d62466f034f51ca751e99c77d97acb3da83e13d27abd5cded27b266e3d93647bf6ed19072e6fb907ae97b75caeb5bbf6ecf399e472a4aab36bd2666bd95f24beca8ed964c755d9b155f68f44c2559f9d4ef9b67c9f97adfc6dc1dfcd9536ce1af6ec340a2da253087bf639775a38631a8592e0a3fef56f067df3adc5347cf3cd97569bb708394d375de884d9392dfd22c2de3a8fd06d68018d9f20b88d204932b21b0286dbc8071c9082d225814ec151874ee79026917e6b71a0db29956342cfcffb88911d06f711d0cbfc7626247b0733293bde1ed8dc0cba43d9846bb3386c4395668528c9ae02e819a9d2724621d0fa47c6dfccbdc5187b6bde2e59a12a2d772b088438ad5f24955214ec0ea36d9e11821e44a69fdef4739300b67913eacf7e00e1fcdce5033e9641ec6993df75ba59eed3f8f3d62f9b49f47aebb7cde7d6de5992f51a35bb4676770f099db58d7c1eee3a656bd68d809ef7dc65adaa524e95662d4f86934cdc4cb239df5bcaeed89a37ea9792b55691ab15a14d062b75085ab730341aebace325ebf7eab2a1d696978de57d59ab78ebd5a5cc20eb7446e975ba4ff5c6a5dee61d33a5f7d6da3bf5f656bd757aab9429d78a05a198226512d5faf76a05ca8211180d522733c8ba6da2ce6b5d4374ccea573383ee55a5552fef55ec497c22827a87c1dca1d3f489d85aad1493d841f700871bdc47586295959aaaab4eaa4fcaa62aa94b4c962ecda4d9e66bc5e3471e09fd734c1e6179e60074ec1f84fe79b843b0b5eadfa656f608b8af30ad9a4155f44c5669b5a7d2eaa557d5299beab4aa3ab53a832953d5d7aaa54a63a1ea37165cf116e25d3c813e881348c8bd14f424bafdba07e006bf3dbb7b56670242b0a48324edf30484208448853969ffdc53cf61832ea7d495b5e14914492449238924499c56218c60244f819794cb5bdcb55920b74e99eaedc7ad835071e31255e2b239845cd6e3f566c3ad03d5db8d1acd6bb8751ef546c3ed0c1cb72e6408119ac5e53ce82e599c785baa602f0d2dbdd8646b511627f2c6258b93c928d8a56c822dc12eb32d2a0bed32e7d8a50edaa5ecb54b99eb71c9e54855fbcbf37fe44cfb24f3944ab30e83cc56729393f90a999d7296fcd443e62d333243f190990b8cccbc1d320391e017300a9c02d9541ad806ec81606acd7a8e929d64253a35b2346f7dcc5bc76183fca66e905f8ffc68e4a7a6d2acd7203f36e4d786047595661d670974c2447e55b6661d47ca2c0e8c526bd6b9f0b67816d995b7a095b7f36d90f36b24ad41d2a741ce9f91ff879cbfc9fa247d1924adcf43d6df21e9cbc879e66190dfeb9039319c1c29f2accef654dc6cb20688e2bd759d4ef7f68bd1db5216cbb82936ddec4f0a36d362d595c846ac12adc42a523c235a9d91aab2d63f2b6bfdfb6a32e8a12c748bfca4be31dfd4d7fbaa64e5c785c63f7b6574f8f293fa516aa8e28042acbda03330aa38201b768c73d025d0e39dcf4e57a7b13cc27647c09419f394248a342048c29e0136828a29b2e8ac60681226097b4e044cf0889842c4931450f4f4fbb3c7c255ceb6a9af218abc8496582c968116b250c1c50d56d420a1b2050d0b6bae14a142531295d951f75606de5ba324ba04c2e9259cd8aeb210f3e5674fcc962f75f4c4c8f03d316d28ed8951f39452a0231bb47fa9ab061f0b4d5ffd5eff7c4cc799046d755b5b374d50779a966118ee84cd6be79dd34e7befbdb77a0c090f1828f32445064b1828958c515276efbd523b5cf58857da91b06780dd863d97c74ac313fb6c4e1b7e1030061f539a118f1d47bd4d2a1e3b10a69452edb34463aaa394b5f331562715d3018be6a553e58a1e986f7ef69458a14bae35ea4a1557892ba2625584352bb1a4ca7ef6c260f1383f7b617a1f847814a5be5847a01a3308cce08c2904fa3cc0c4cd79441dc6836e34b778707ee0419f737ae0c13c35f0e04ce241d02f49ab341074a49a7b418fb97a2bf58b47bd95a39183d8877cde72244943b0cfeebee3f5d6369281ad813eeedc51143dfebc57f4ab4175d1591e8a7b52a1d204fae12eaf3b807ee8b99224d82fbed03f290eeb744d3a251407ea9248e99e744d92b26b8a7be95090d249e99e246597511c4ca78429894e074352ce4751b4d3a2eaa0bf26d175d0b5cce23e07fd75859140418b809d2c272fe72f73f07d738b60027eec1d4c521c6db6d96611b09b20c274bf2e4e12737079cc10411b3da38e54c39d6b60a14b9b2c97f3414fa75eca8010739e9896649eba3299d46db9afb5e69a0432d2ebb59b3a0a62f9c5f0832fd68a432b2d49a0597c09738bc2ad4595624a29a5394ce46b8b66a542f67ed85a9a575aa9109500cb95f98d40143f9d5d6bb5d5d64a52a1e9f4abcc5631dbb725ecad8cd65a67bd5f4bfb7593a57e334438f159edad6479edacf47395487ede2c729d34108440ce27307d1f985d04eb14c28fedbcf8d27099ec5b09ae50a155fc81ce0ffb077ea04b0141f1f522e10f843ca71078f124ba46f007ba90b58f6dacd65cb1658d9516d1fad4599516d16caf3dcb403d82c617dc135cd17a8c8533a83a98856e3da1ce91da99f30458eef88d529c0823a687305161a4b27e65915566170d591ccad96c392b5ad94645648d3a67cdc6d6668e6af2da204d538e4a21672ba6b08a58d3dac08aa8223c6055c454eb4a169d6d45c0eea873d61f70b2b55904d4ab0a2baa259e8c1b50d1d42be2296f605545b546c7daa08aa51c3666bc347d69ebc18b0b5e9e801ff0a2820a5dbac84b5d426064cbd13054befaf49f541b5013c5afd70a6687a794f26e2fcc0a3027ae12de18eb01f3c3033df6acc140f1d8654964e046adb57dd9f3d67a4662f7160c0a4764e15777a9b4b6a1c5081dca1cd1e408345f9dca2c90408da89d1923987cad4895eabe14d134446f882c315a2d06b308fb0983e70b9bfdd3279aa73e63ab07905d10659e3a29f554c64fbf5f8878ea3787a72e82ad1ef64b530ceab48581db9675716cf520028aa7fe8db865fdd67ef68898d2f3d3ef97251c3a63f354ffec1111e6ef3745573982254288a72ed29c9fac16114c5c3f7b43b4f9eaa3f6f3b337c4149c21a68698e26910669edef8fcec0d0184bdf3d61c5749c257185d3c759f568f1e4f097ae6a9f7b47a00d9f1bcd81102089d304ffd47e7672f88229ece7a424879eabbd503c88eb7428f4f0bc88e57c5531a83b7bb40761ac6cf5e102078eaa2ebb6a8cbe572b15cd905c22616ebe7e3728d2e97dd7151aa202ef0d42d06adafce42c3e58c10526a8ce8fda086c785371535a5e783139e13de1519ed65e00af7a0a0fcec41e97edaed83f5b02f820218f812c49820ac6ce0c3b9d68a41100c775b9e46365ba4b4cc6c412103a1817ef678808265012de3678f8720585278c0224ea1737ef678a080c8848e79317ad1a216e392295847e85699f0027a0ce34aa2430db89ed02197243a6f19bbd85db103960c68f0676f87a61da67c5fc6b7ceacd97c29fb82c83ad3b2ceac19b64aa343b94aab2265fcb1410aa88ab87780faa1d2c58bd462b5a960e1f21aa6482a552f193b5c79b651490227c6a873d638b09161cb54782d9fa19ccd96db3215830a06c41e2d537ca8c0a033bb41d743c5090ecf0c52b317ae88b163c312cf0b4decc89ea0765ec8400c183c40c9b2ed0518643aa3ce59eb5e5882911384065d8da2468cd71a810e7ff6a64c3d1139373740c572c881e9608563019876e2dd3c71bd7078824d59925d395ce9293ab00583d52bdbacc819479db39ea1c9c501718b532bdb9668b1469db3ae81a98629a3b6e50d8ce150ce66cbe5b0244ea98c01581e75d63238c9f02403940c3c19a22aed4a902b4f2dc0823831655b96a2820b0fe56cb6dc2ecb6e0ba8b32dcdce1d75ce5a872b4174c8f2695bee693b94b3d9723c54d9da3ce226080c3ca89b204d4cbd0a641983647122afb296e19f3d1da2bef49c17f00befb55fadb5033ac64faa2e4bbeb44171d9a295854b15a2152de327151724581ae002d5c2828bd318a5797e527199404b8836a016da7585d844dff4c61b742c2a74a235948ba7310fa31458c21cb4f8930a082ba1117afc490504d308a5c39f54402c8141e72f5c4d1a27cdd8029a2534ec27d50f4d843e689d9f543f04216aa1fac107dbcc397fa6fa61f739e7ec73aad66655b6d257b209b0711d6da9d6262ec813a65a9b5fe6782115aa1f6608cde8fb93ea071840d081d723cb77d69965fca4ea52e6898b2f652119714e9e9bc9f22bb26c10bd24908c56af58a3906c8dfacf4fdf4860a2c6fcecfd0eff79ea379e52f0b4e8e90ca294e7a9cfa087cde9630bfc5ab9d264b257289369fdc25abb5f6b65b2fb72a7d164b6562dd5dafde56ae1e817195184656d75beaf5a6badb5d65a815cdfddb8b6462b56560d6335c46ac815acf5ab589641dab5b5562db3b6b7368359cb6aadb5d60cd26c6d3a485a5a6badb5d69bbfd679e3da5a88b4da8b3f30c372a843d66b56b1c491c824328372c4b10502914abbb10bc7d6985b2ead655e71446aa5f960592c3c6f4222b656af8695738897114df05bf3cc1b6d3d2331a97e7a393bf0d377c8a0e7ccbbf41c1934b569bdc50fdfd13f7c5b935697dd44443a8926ec265594edf0ecf0ecdc996cd603a3c747c727464e0c1931198ee3e40db961fb47ff00bd2c168ba5c6588326d26aac9a8dd0c68d7c03078823e80bca8173085d219bb54990930183109e44f85e3b83eeb5b55691405b995b1acdda6c36e74eabb51d0da129ce81bfa00fc401e61bd36fc8aac144dafb100a3542250968504a6710ae27b45c335c2fa097fed1b00dbb216f701c27262396130347e0e6e8f8e8f47cf8c118a061c866b21d9e1d9e1d9e996cd603a3c747c727464e0c1931198ee3e40db961fb47ff00bd8066b8c63c83c6985b178a468db1064da4d558351ba18d1bf9060e1047d0179403e710ba42366b93604a30ce7a934002a11c41386ed8a8d16ad09801f463b36d1be93619317c7a663c3b329bcdf672b546d1c60a738e0707297afaf7b35704537ec546213b448db131d603c4bb1242f5984214a8d66041856647954418022a2e5b5055a04546f788a0e5a47dccd0a0758a083da071b69029638586323ad61a0df4938a4cef0a3247b8aa348d9f5464ae84544cb5714d40933fa9a6a8584be81a3fa9a6b6d030e58298e50936413c0185121ac64faa278a68557922077189a6fda47a4202d98a13562471228c951318607940f3fca472a24a6b8aeef9227cb2424b1349b8aae8d84faa267cc85b34e134bea0834690bbe81b2a5a39e89b2780d0332ee2132dfb4935e64a4881314b5856bac70ab18bf609e385092e4b98a801ac82890a406142852c4ba45141f7fca45a428ab565091d6c13fca4322386d545e75a26c4d0e4a94c0c4f944c41c2431b11f49064f7e5072fa668d15281ebb6d23cde3bd2b10b2868783d8e5960896a410a2e52100155131768d0add045ca970c80e09884062ad7750208878e2f8764f4b29841c1cc04cca0e9b1f035b784522aaa09402b3d2a2e2f0a7a54606e4c9aba46834653d7910a81aed2b729fa08087df4c3741ff44cd334a76b36bd9fce03c5d44fd761a6b78498734e28ed03c49c3b67e69cd377bc984719d073a6c4decd596626735a26f35a2a2c185de62f68a27449d57c91eaa2afbee490e6a9bb9ace7c59d26c78a0d061c63cf59610524f1dcc5377b5897aea39536c40bfa6be3c752e4f7dd6c5ce992a21c26c1142cad353dff122cb530f42cf94d83b182088f2d49d3cf51afb42ac3caf3abb4b5ddeca5b19a5e7adace016c3c92ce8b995336a7c01aad1fe866dde4aa29c7f1922f2dcad24daa5f5dc2ead9794e79644faaab3b80d9cd270aacb1853bd00c83642bd046aaa177440836c2f87ea53bdc0a957a77a41109f3e836c233709c85602c403e0349c66a307c79755a72b8fe5f4c781fc738a9d5ea731d24bd9f6b20728869734f712c7908f9739195e1a3d084e3f704ac4e910a742bc005eca06e0258d032f735f52ddf3a837eb39a71e807a2372ea42eaad4887531fa1de76b89197b1232f651778d983e425d07b494bf212070f2f877a7899f3e1a5d17ba6aedd56c670bc94c5bcec79ea259097b4c7c1e3e5d0532f8d9e3a10b23ad50aa66f4056275b9baec95969367659b7cc4aa3ed4a2a8139b28854028f481da412f8e40e5209ec412a8196fc600360973b5cfcb14b1d0e7454e4f6f5473b721e58225209ccf9ae3a083b835d8afeb3953206bbd4e12c031cb57649e4d500d577397197a3b30cc0f223038845bb3cf2fa4115b75266ed5274a0ad9477acd72e472fda4aa3dd6591d70fb60a4a76d5b5cb0cbcf581efc45d62e0ac0f58be13c75dbadcbebc12792ee7818e232f22da6591e7887c970380eff85dfe701d40befbf1a35d8e4ee4bba25db63ce7466401f61005bb83d7e146b05d1a79d1d02e29f01edfc1e7bb7d647401a9041ef9aec889ec097679e3e456ca12ec72878704789c5d5ee0450428f2ddd1cd2e713c2440e84f801bdfe5833a7072986f6046bbd4e1451e18f9ae08679713f88d07be0b7729817f1e6c1594ec3ed82e6fdc08e64517f8910e0a7619f3bd95728f8ce3bb1def3a2ed8a50e3fbac07747b15d0e394e8f5d52e03bb6ef48ff5dc6fc02dfe9d8258e1f391239806d738cddb75216f25d0f9d5dee70a4ad34e6ec12c97504b1edd25d682b69bc4ba120d877b60f8294442a81ef3b1d3e64e7f0185b2907ed52c7f356ca8f45005906639749ae43003a7cf7397629f32c00dfe9ec327b0f01c0f09dce8e5df6701d1dc872ce3a3948bbdce13a3a40f29d0ed92e73b84e07becbbb0c72dcc15641c90ee7ec52c791725c4792ff0e77db56ca42bb94e518be83d12369973bfcb7d298e4bbf75dda3cc656d2b25d0a398cada4dd7731bcc72e659ee4bb1dbb84e1ef3c480eb60d97218387ef90b195b48d5dca00727d670388ef78ec92870f5209ece1bb1d2e64d376a901b801b8e3c3776cb043835dd270702be9dfd17609bacf063ebe9bf92e7bc01d1a19ccb39dad34f2d84a230fdfed701abba4f96c2be9df81bba4e137c85601f4dd759e5df2380fdfedec72c777f8cec72e7d788fad04ceb28c6c63b695461f5b69f4e1bb1e8e639738dcc656d2bf93b14b1beeb395f46301b25590e13b1fefd9658ffbf0dd6c9733efe1481600e40dff41d63c03b2866340ce701fa405de83c4390ff2e63bc80a3c89b4c09fc4391279731d64057e0169811f913837226f5e4456e044a4057b7a8ec431dd9c54b0eb52a54d1f226f380564cd27206bb804e40cb791375c88ac790eb2860791331c0779c30659dbb3d268648d3d9d063963039132643849fab89332b6fcf418a4cf9e95d633e3d991c1d0c989e1dcc034c9fa17f93511e2ca03ef22ed0b49a2aef8160922b15466871fc98f4c9223d4bc48ce09c4f3060e06f18fc402641ba149401c935836d8466a1210bf249620db884d02b295cc5a81dd01d8759735cb4f8721d1a0cef8c10471d69b75f107ae0cc8221565aed87e52f56cc8519e07c4169e680d3d51e5c4540f64582043854c4e0917ce48d182952d4758492af55f4ae5ef539bbf344f1a03c2311435a6aa091b52b8cd9e131cf8fa0497af3ec74cc97a034739e832666f766ce92881170b7a9a99c1cabf7cbadf1fa5de7a08268cfaf22197b7211408a6d22cf8e5411e8b55352e55da182dc401edf2ebe527658486454fa73169d284fa1644a1633c6d811155dab547a63d3aa9b4a12b34123a5669692a0e8fa5860586d57beb25ebcc5bd6175654e8254b8a35863525a371f1dddcebd22eedd22e98eb9b9723d94bdebce6ebfb28ad0b5d8e4ba393910987149bc42b9526c2c625186c741a9746a6d1cab8c58e51de8e4d6fc72c6fc7a711eaad8f5c46de5b87b9b4cb3f52bb5c8e417d97dea2d3749f27faccf4d90f1c9f8ee3d3ef75edd6c5349abc13471a419284f3b9617ef363e6dc95db27ec8eb668dcd4ae37169c23591cb97b95487eba26b523597d5d2ece160648be74f98debd2b5d6da4badbd8c81aff36b243fc9eb37a4082414f997cf7f395285912480ffd27adb2c556f792a5bd55be8d6339bdcfb5c95cfe4347f95d584baeb775caab7e94c7a92b1db9baab7af46b953b728075dca3e5f02b3342667d9f2f476746a2353a3d394b22047aad535c25327ffd2396b2d2b6925dc1ae5938a4297a254984f6a9726e4d72e969f94cb3fa98aa33554e974ba2467beabd98bc2ea6d9922befc7a6f3fab1e07da7cf9a9f9d8803a50c9e7d25a6bade7dc2ff21b13447e525216f7f5cebc75a9b74ed4822e4dc8eff23355a255d5199b46460cb73e6deaadc7ad575d555297ea0de6d6ab937adbf9527177898e19f2edf63ad12c6fe996a37ba8242cd8cb92542253230200000000e315003028140e878422712889e24c53c50714800f70a24470601fcab324485114648c31060002002000104308307254e30470ece1720f1f4acf2d9420e61d31f020c0c352e1af09a95c3d52f57ba8e2b43895eb032abf8c554f1353797dac2a334b63d2a24b7492c7ead4dfb8d246e63250674601e93dbeaa031bce1f30773c6ce03c38cbf92166a7070d4e07b2383f606ee79a6186d549bc81f842dba41f041986e0bc15ba6d29c97b31013f0276c0367732d54aa9151a248075ffae78c54c03f6ffea82d25b83cbc51572fa3e8109ab2742d0f2b3dd52e1b874c69fdfe6caea10649a45ca0e306ee010f4d04e5b891ba4d62e2520014790e5135544d7124c631c887f69391524f33c00922026a8969bc1162df088a141f98fafce7df58ed6a95812f29ad34e614e17684d730df2b76f7415e05b3dfefb09d5953028389abd520463025c939f9fda839f11386453d5c5aa1397b35f8a75e53cafeac60df603bd3b1b56db5303c347867ec5e23f9faae10c2f03f48022a3400baeb84a119aae42929814205b486222401537d6300d360c509d841f6bf498e10f1f38b681f6ed8f832a9037144b82376c0c511f0fd4844516e09ff9779ca192e002d587121ae2651829e129792ef2290235801af36362b13f864d260e1bba137367b6122fc06801fe4c4fdf096ac122cbd827bc7ace510b0b59463ee06b73425b5a6439fe045feb4e584897437a0d2008afac40c88f9293846e8a48a91a178d1fd754df416530c77d99017b0f0c204e9e284b8b2cc33ff16d3847255a6409f9c177c3192561310bf80782e75383d38065809e68aad2f478e89d2918baf2c14173ff7850d61cfb77a12baa2d2da53f250335be69f6d7e6bd2a929267cc61a87b484ed2af2209bcbb3bbdccbd152459531ddfdbfb56a7efce42eb022f549d2778306ccd6781f72c3d7ad77349c474b98028a608b5f6130f6638b0631f7fc7b2570014678ef08cb8f8f28e80d7b009e18d9c9cf5fdb3f200a7ba2f2a6adf560b1d3028c938af7bb506928011fd9c101a02d7f66a2178b652ec8a3ff8feb24b2b2b1a72aa3bf0df5d1f46ee0df2e71c2d2880db77846e44548f1824691689b036d85ee98ae0bdeccf2a4a3c60731d00f3757bacddcb88340ff9278ff89d8c46269a79e675080d49e7d468e96eb94ae865d48c42c6daad7df566cb1916f462a2778e48ec4fa4e66774824d31320712dbf542ccb78423cd56d00dbd1ea57bd26d86df08871dfda35abb9884857e19f3aa61d561c786ae56eb2b283cdc5579031a78061073abe7a075f19af71d61a20a4d5156e0951c5d3b75d93747d8cad4ee2d042efc7b7f48c474100a653a2261e8ecc3b009468e4a2e900f6508e10b149f92164a3e4dabbe6e4da63d77f053cfeb05d3852f601ad1fed73cb608578f29488a3d9933f232903f10ee8465ed0f04b160734e68cf74465f2b45bb544e53fdb127f64889bf6c07900f610e19cefbf29e536cc7e0b445a51f2cb1b98778b179a8b4b9e3a0e4b8e966462d7e031b23d9950d425c81c69c466b05d10c0fc20e41267b402e46b6090bf88b484639e13b0c06493c0e48abae0b6e82d8822926f3841a0b8e5e5b151bd021c5f41b12e809660474fec5d92c02a018bf0c8c0db1892a049469813337e9088c6d98ffbb10117d2082f0381a66449ba12c6012471d121ce8f5437c881f50e196f363240daa122c7761860ce1dd7b10a969ff36e896958e8bcc65b218616fc4b87f8d8dc5793a8adc3f6fc4acc18214ab7bbf4e5d774ae8a2752cd6148766ff79f3396efd95ddf9ffcf186f24e03b26001e8da3d6038d5a963d59a46b00582b735e7358c6cb09f2f37f215d2e6700cd2a19bb7ec224b05ea0d2d918f1200d6301f3f318bef2d405a0257b906c1e5e847a45cf515aa8ba50ec03efec371b70db833b27ca925d25ffe41e026825c121e2bf2f027f4b9c90548d14fdfa2cd92411ec99410b14f1270d5b07c60d026224486a18ba8a979ff44721202eb5afd84601c881cbf1ce790141c48d77ea3739c7c38ea757cb06d63e7e81da8d725b861074128e950ad33901ce86bc19f924cce94da4262c01b216e78f05d333054a30b621d2e16f4d28a172a340cb588151d03983a44056f98befa8d0a4b14b1e288b35b74165842bc8ceb1337d00f4932ea337787171c409f5fd26f060334a9534ef53f64ff0758e593e5450530696d77e51bc129501687fde2502dd8e3508bbe836b5636e99dff48793fc38e4ed74ea8d2a97057fd847409d9600290759dadbe03a0fd8f44ae7a0d906f4da2475cd544625923ba087aff934fa94ce09477bf7f5e2afca8cb79e76b499562906dba314dd74ff42ecf30f07cbed66db0e098c4699ad4943613160d05a6dbcf6564be415a4d08084dc2307d1c1034252bde4514a21755ae7dbf63eb5bf430844d86526b2a1d73c35a6024cdcecdeee680a7b2cef9b3ecbd0b2c0e201ef4395c0e288f88a3585a8e1e6d77a431a41a23e80669a46695d6f2fa40b0b7049c41e8448afa0d526a43a579e0e9f9eab98df6ff788838514752af93196575d8181f3a571bb312bab152b2b38123c2662304899d4cc7e21b6eea85726ba7be2e2d33f2adcc08f8961a7e362117622dfcdda4255e008952bd81a53932d04182055878a8b51e11c475d00a3d289b245ce9e7434edbc444f8534f275509c3919ba10078d726844058bd4885558d7b915b0cc1e8c45b2ddcaa06ecba66ecc31477bdd6d10a4ce972f95f83dd37e6051a945c407d489064b3d2baffb79e8431d8ed678f13c4106f6737f6a6a7d1239b109a0b8079eed0f9da3cdc027fe6f53210cf71a213ea7bb91211b400c3e92445987268a2fa6598c020cc6a513a926b73d23b6b7c921e5ff1e63f1872d50cc1de7e23a32f1b3b2814ae01032f7b89e651243b8b9b40023ce82ba7f88c43f61ac898d101f52a7102c18ad9c6fbf8aea267a63fc656e7ca7580f676da03a0ae0f7a53a7439455b13bf6eb30c86a3cb292bfbf0068ee5c007a3accb49c63f38fc1018441ebcea02634a9bde5837f3dbde8368c617d22e86ad32802e44baaef3b43d317b0a163d7613a0c7cda773e3f942c0388b1c1d4eb144683ca47d84d59a952dbbfb16ec9fa1012264c4b6bff8699f2404137705ff4d07986c0891f9906f13140c87b307347fe4ea8a13e5aa5373bc9289aa13933ab6b74ec1cc916c7b23d92103e5e089241bc74680b3630bb3f087674c0ccb274c7c34398f5b211dceb2d4aafdbe029c1f7704bff50a0cfd7c175fc722628b323e47fac62ef7be5a69abfc6a196608229f076353e003fdba806d1d2cea5fe365fff0649ed7e8304d90355e3aab3d828afe4ab074269be8145d7bd7fcfe78ee7f80f7803783ceffc2a376f9db2e55eef4decdfe8d62e9638eb07ebbb26d2f25c5e2b73495d313480d818bec38e174b71376cdc15dafdbd908363c0c15111fdfb6451c462759bf6df89c4cf5eaa4cf8ef1f2938365257419bda73c97c6e2980247b596d1252ffda03729f4f165a5f4023741b6b43dbda89e2df6f29158e8929d74058ba2060b30c63818f7a1af6e2ba232d8230e9d3da5a25c16fd0461a92baa2561ac598646050f8819bbd55921743d8c33e2cdccda78d945ce9975455bd233b43ee7cc396728f0e3c1bde43143cab14631f0fcc712c9e0cc835a92b1905c7de47d895c5246230b4361490c93d5907d0b40a6eb8531ffea769d69984afd9463a2caeaf5f5b5605b07db037a7a8b07e3857b226211be69c440acc0dffd402ac8a287b6728098c2dd5a911d33dfd20ba54f8a6a1b1cc7726284e422fd4b8b419c38d341e8d21feb79964eba5a18c57dde6ef431cc8733007515d4517ed5f6929e7b2a9b8317f41cccfefcbc468d725bd187cf021ef0e8110418e15f7a3f7514da830cc6babdc4c54883b6efe5e8ed93edce7f707467c5e7892ae573ccd337d468ae7d0d20b786667bd3381ba838b8ac536246c9cda7ca7ccfe75cb0640465fc54e1e477415acd9c6ecfd5cbbf1f1c8d0425a022e11939157b28842652a6cd52bc54732d431282d5e6dd1d38fdfc7107f21c78f8687983f6092c4ce5d64d59024d3634e7e0a2d9157504d03efde4ecc3e92bcfd0ac7fcbba023d8f8556fc9319e331d9558130ddb19a17aceb70c311d60be2f7fc78787245b8c6ac2f0c1cc3009465ff33a92123240182afd7fe9f24b27d27ed81816f099ea160bb3114bfd319868db3c8879a82b7e7aa4a82f8cf84b9f08fa08d225a4deb7107443efc0a9b8af8331e942a95e7424809656c03e9ef580f052e12ec04d1dbe46e7a8c70ec899d2a39ea4e9d1bcc5db7af052a6bb7af7d5aab13f9f4c3b100b15dab73c501d9e2e4deb6f19d2928f988973a11bcd8a7df2f523507c8429dbd739bc404070e8d3625c050365110ff34beb35f6c3c2510327a217a85a2fc879aa9d8ee8b95baaf3f179938ffee1d27e09170c4bfe5e7bd0bbb2b2b28e990e9e1ae0fd678ec98f539d5f90d1c7b5bd872274b21e4049c9ad1a7ea565d3270afcf5597f7079bfc5458873f8d02d0dcdc68f6a938ba082283071a0e0df3adc68810d3ef38af5d15eb6388be5e511232be92dfb81157f5e6bf25d912ad958123da2f20e9e38999199ce642c234b6ec061890225afe911f54359287710481ca72b103c3031240f33646b6dec3394b1746454f8b1a32d1d7383c279bac91c67eea85751ce3c56a100bfa95982f82cc3a568d6772f1b6b57c7fc18a42031235202df5db745da1514a83880a25591e0faff4f921b4d7f2c5a52b21f9b1b72fb2777db2771d2a7b562f7b9466f6286df6b8b3e11159842c431d7c4bf3517a9a2f64def30c96ab8182a28b04fc24046fb4d2a38859282ad2f540414c89c00a5fda973992d8c105312b9de56531ef429cc733d94d8f6e8e4ef383199de57ea3d960877aaad784db9c14f4e16f36ab4f5db07d1d8fa361765b92d6aff6dd404650a034a822841212d9ccd5326bb3b3ecfec17948d8d37814dc7e5aad0ecafbc546aa26b5605a367a9060ede6a24a7aba167d23300e9ecdbc895a804bec89109b88a3d3987fa98aa6b92840bbeb667372ad3c6b6c3756abe42e9d3376e732ab6e8d153b6b5e1314ce385d6c9953458ae0df2d88e670b8a742ee2b021c229d20ccde4634f7b21ceb1047ac3320fc9d0d5109ce865998e521748183e8157b185e93fc8bbcb24f94378a4d030b9fb9bf7e65f48005105afa5c0326c8e43840000df6757017bc274eb1a9e49ac55e51548a3d7a511ec31a779987e5c8f0b3df136424df20d10f9b818cff6c556b942aca6899b093219405d1a1f83072271399e3303c829699cf7a20ea52fcd944647c6c2c24273faa4aa836543bb681cc75ee23819e608f91fc6bcdf89281795a837f50c82e62516addfb674119442bc7550c7f8e68924520b56720ca0bd40221e9cf5e6b08de155f9e1d6e63bbc3ef4eb962716a1d065cc1545e3b9c10459ac089c3db7328cec303bac12174f1fb00e3264e46cd84e80f8e59616aae8a3deb88e0d4c85c33de0b21a9071d5c64a64d315287c1f1126633dbcdae51de5551cf52af5d75d44aa5f68d1e8e304c3a3e9a349915f72288439de9b096a7b42a8ca89cb19ef43d361fe8699a4b4b036e077cb7c1afd06e181f83be8d7d03dc8d5b404dedb311c20aea6b9b7ad6323527ea0b604ac146444e8c4531c7a6c9c9003f4c82848220f94102d96b748b4a97a021c2b634308b58d313501b7dcdb3061fe04f83f41383834fdde25d25a612d615f1a8a9a54cf0c2952c4bba30ad1bb5b1fcbae8a9b6fe6d12d8232c50aad58c321b69c4e1133ba3247bae421fd0a8cb0ff141971df7352783fb7ae7c484cfa6aa1fd16e7e1f9fc5f6e2d9504bd4a45fee656a0c1359a32746a766330d438a8391a5ada6bb447b1e60b0170a6055d11eff7c8ccd507e66712d47c25c15d5404383f9ff20535249a56d58da29fe5b4a7706ede45425ab283b46a2caa3e36cd1345e70cd5d98bf677396f197d92522815d704d58f7fcc1d0d43e1a956f64c2a0c7cad57f9e3b4e09bc43d2e0fa088104a237693c76a0c0edb3aa106c45c540e291820039873aac78143fcdc85ab55000b2abf14507bb093e449789ba5bfdc16f2c61f4820f36b4d2c9411df5d9e262ed3394113dfbcc1ec82ad2087db262cfc72bd861396ae0b032ad1f671e45009a259fb14158a30ce4d22b3a0b44b0e64e9dd19eb4de00672fd104bc079794136ac19f8e5ea844900373986ca9b9c6a09deb3eaef524d8a60f410318220cc947a6df458831fb73dfd555da677bf6bf406ec38207fc465d01cde56f848626390d624cd31316ada23bdf9889e41fd23bd459bfcc9b5328eb4753eecb23beb3ccce4c46fcfceeb6ab9455090b223691cac1a983f116f48f320a0f5ae81ed86b5ceeeb982d86cfaba87898ddf7e6b8a9a8da7d2fde070e1281d6d0ea3002905505832634af71e6606cc7dacd1bf8b2c512183060f8c0ecd00d649cd88549a6aa554d8ce317d44c7efb1562c018d5f8ccec8158165068a47a438aa8a7806ab4477e52e3468de1ee2eabf822be7a580071c2e1c9dc92e521c66078af0c8518ca0193426fc4b9f4295699cc435f473cf0b02a65c42e046a9b4927d2fa9cbc4d31fe63e5999b7dba07664ede90d34da22a78aaa9aaffc79c9397e64af70f4e5e7c3cfdcbaa3d03dc6bd95cb473d3fb40ca0d6fdbcb1fc21fa3b19b13bf688dd20b37ba6adc3513f9fee7ee65c17c5ccd95e1c3969ce55669b1931f99c213f121874f38d3a8a0aa98463903dca81e1fc61c14b0549145b0bc1c8afb166eb9bdbdcae31c57d676b5b442f74e5aef025b81373e5ecc2bde95ed7979b42f21bba3441d9113d2ed8855dab7da03860e5516d972035170b8c21f326e4b7b398cea9ff2d6ad58ef1a53ddf835fe3a6f0bf348ebe6aa7b277ba8574a8071fae1312b914338db1b22d65b66f853c5897280b06ceea2c1ea9d49ea94a03e1898329c514271ce12314d6b104e02e002e5d5d651371d620b04f3927ca91bdd365d010c494e9a3d84abc6d68214f9da6cc8b4503fd1e8762935c4e2821876b0023c2ad2f65a7a8b2f53edff07cd2d9b22c5cbac74de2d005ba70a26d87b2a808c6f6fac14da09cc21aa5ec02e0719c4c47b3ce8f485fa1f3f1e1bc1ac045c698398714e161aa8384d2b0dcb42035c62a959605eb7a9a40df40fa279bd88fb64aa229f20ba8166eabe195c073f5d0a0a28a84bf0ec5fc9e13df7e30e1c686416869e345ea2cda080d0d1067a03afe2dbf206bbcba1b110a8eb0729ff75b2d268c5b82e8bfc5bbbb1378c0096c66b31ccc6dc23eba84b7a7cb1d1dff866100e30d995ef21c17085ec0402607909b9ea4483483cd8e54ae36df3ea0e822d61be46189c3d9d8a96a204815217836eaa73162c48ad499de8e9cf6c045ea08c5cd844f248d6854a3ef1bbd834e2964423154c548a0e19061e94865d3dc91c4cf9bf9f296bf5ce05a1d28791e2a7116116ae3b530beaa6e92def8028e44f92a2c3274f5fdc5a153f7a1ba6d1aef7a95a2fbe5ae9d60c906052fce2c57642cc322d32366e20407ff6a424d51a1ac591a4e6b21028a9eaa6ce048bc8fe2625237b64540e9184c49045d0bec56f4184d93fb949a8ab457ad76e817f942c2db155ed0432321b533a438da4c4c7123e0582e20bf6802483e72b2425a988b44592ac971edc4a644ff6b12621beab6d050fcb4cc6765b606e967a20b6f7b6d173be7a3d0f71e85051362ca7919f953755fbd3e6db9b040b5f7257a39cb71cf95c07053ff1f6bdf912af563a9e128a13095b687eaac0c8b6901766ec680ddee5fe2495d6b3f3712b3953b950e917ba4e6aafa4460efebfc75e0b75ee0b99275d59e9fc3eff9f7ac1b1b177ae1235b47a0e26a5b4c380b901b993804b792b1e4eb5fd8d41483163f8a391bb065a7399624b9d7a6b8eb25087ad31c2deae6ebb75c31c9d1f168f83d8c063c54554846a130dc3d832746280ee966f6908e477323adb01dd84545c41db95e9c49890a2a82521dd647a7b5942be52282f06e2430d26710f490b8770be7a4104a00fde7b8fa192a33a46970407de508c50945983652a09ec38fe6d324f0f324050ea075558c4a8306e0db6848101f1189ad08b0b1f1483ab21b4af6e235525bd70de253fb4b88e35246184d1a13805546be69ae14636c11251cd3329eba4744831db20abd1ffbd1318afbdcc5b5e8efd99cb66fb982f06634d1f61a04f62e161307c37057e0b2fbd0a6dd34b24ed4d47b8795cd8a0dbae2a99ae20faac31df5089bc52055b2f2f0d62ccae20e5377114ff771648c048bf41ed13fbbc5688e7b10330864c05edd0bce93e8f6e5e80b7660063ce9fa2cb7b2dec2e6d1b67b221b006f11edbd7181078532d96fb6d054d25119db1c3d957887be3dcdb322bb478f86503b6607c911e4047c7406748cab02ed6802e25e4fe0995cacc6653c9145c47cb207480f20da46e4371c2de4968834025b3a6633859848d78de4e3f5478e9dbc7dc96fd0f81146cbfbd44e41480710071a302335901ad54c15869209293537d353ff48c167770a9871bc8a10c9903051e8cd35783b291a03207e4cbc22b82bd574832ab57a2ac54b251514b186a4983a40fec7954b746f9c4f41b5733d00dfad8377703ebd48a36de5030e6d8ab1b69f105468a67870b0f32c9452b053d262d3355d77941aadc0b5a6e9dd62aa5ce172d5d478247a63452b161250d49d8ecf90863aa1f9276289d66ad57ded6ec1338d386b35f0e4b412c9833072f62bf038f3099b68ef695cd641853f090100df28d210aedc2279818c4b4099f8df1c80df69d44221ad1c8ec783e7503cb9e1895a7bd111155e3b8d9e5c6d87029e71e293a4ff8b6826d7fa7745efe422b84ec01b017a9b869b124e96504bd581826538cd0dcd5603e270eda9d2326f84ba997e8f4d67c04824396699cc45403ab2fdaf77be05041153f2f8a8924a90e0f4324f011fbfba30416bcaf59833e6a384edee10859dad9ef105c1c2bfe097a460b84f817709cbca62b3e7e29c9c8a00416b050240902359573cc9f4d764e54698ff05a4fa4753326dcc5349fce5a5cb65ffefef8d48fe817c60aeeac0462223b7cacecf971aa3e171de7a868c1862675403aa5d13a43135904fd7808ede0ce65eb0ea3a77588d64d822a43a2d6001a1e145dcb8477380c4b63b39ad6672c71eb2a36596e001f9be6861656b0dffed82f55c70da5edc2a552dd4e3d0887ed1db7be1df4ad0d86a7c240c97bd2dd0ce33582bca2446df80778427c081ea0c9bee08ab04c18128160aec9c6a7ece9f17f166d2157f761150640fea21b77f5c035784ae89e3003ae0068654a83e3f33674132b538f79b365a48d94930626315911a18c898d49f36bf0d59cd8925530dd3c0af1e8b281c2728a4ba1706642b474032b8b79acfdf7b9628c35e82aededfaaed089957bcf4499f42ce4d2de1fa7fcc5e4e7580af4982f4c05ba306c9c9f8e884a9a72a05d61292bab8ad7727bfd2db73cab3fdd0982e39abc3a6034c74f1ca624a2ad307084953c8f58ac5548abada6c44e8a1a9abf357444f662d4a27f45afe7dd2cbaf0b8718aa1ac79a99cc5e2d475146a38de15e5b5bb59f04439024c64c40477b30abc8bf29442dcb4f7b3698c9393f5d6dda2adf56d4c5962bc3bcad80f2fe3f4c0051975e07fbeafc61350888739ac719a8af72b92c380bd654ebae7a59a2182f8648ecd19af5589e607b76681832427e3c435248dabfc4e8e604293d2b2b1930af7023838b450786c5c67b4a4747b4d963a461a64865864e4ac2d10ee14c822273588259495abc34e00ae497c4c8800d96001d068e6fa93df0dc618c45de71583f4f920a99b31386779b92e19829dbf12892168fb515eb24593c12afb2a6483de1c453b250a0f7a9385230aef6992d97268da444b05fd018903020fd61d55866e555e8980b747ddaada7919a428569f6136aeec90c0ab6294f20dc0dd947094210bf5f052d6e96d52e6f7f108880f38f827c661ca066c7bc8943f44a4e83ecca084c0a1be712b69ebd4f340afdf8ec184b6dfbb1085ae1e6d77a9f76c06fd94962e87d664f23f652cfbd91ac24f76aa8ee9c843df1fc9146f4f9f24354df8e04e7bbf8f7f927712771c024bfd8627975029e91dbe5f34b89f34d4c167b80d12fc262217795535254b1091109cbba2ea49488c1869e872d29eaa99bb4fc622c2d12fbb850eea1c20344100cf180447f958bfaf2b365832264f23722899b3742cbfea034f44bfff4851eb9ebe1738936e1f113af50d511fd4bbd6467c7ec732ff07f4b1c81f20d7da070655cb0a022b30ee4923a04ebd82ab4e25e15da83c5b94d54216e58fc594398924d3ff884461fdf5dde0bae6fb88b06a017a13256d9452311291733d8283f0ddafef8eedb0a637cfd3f87c7d48e06efd384274f7f153fb82c42744a7e43f36ff7b8410c2846ded239be811c3a64835ff5850244ccb3fc4f67d85680013c4113adff52f713fc87f3987b8fe12e59593a6b67eaca3e7dbfb0377879e83f8b116b1102cec2c30c8dc507041c70dacb5af061c5047a3d8b183917282220566905e82021966d065a2228566a00a26b8d9fe18622a85fc1e3d2b5bfc6861f0d6a2d5d1b1883b2f85aaccdd40d1c929d08d9b422e9a089220500f9a89b52684381a8b8c4c70d9342eba4000793423688930fd407331f53f19b332e2bfe87d7d2b09aa2b893c9e65695119d067540e43b33cf2923ed3953349a3d82ae4e06facc64fa73fcdd14884aa47632c6a0274d31c18890099692ae89a003a682e488ac0fa9a2669fb99c65886fc8fb2d6461e6a83c9da1344ec4ef0f46318f309f6ce74dfd85c75774ee4941896bd896b7a102f7103c5a5fa03602350cc529db27d3f91721849de4aebfc1643f1d3549d0019a70b95083413bdb1a726286fe0bdcc24b1d5a0892dbf1350c388be0abc1e6a8e31061e70efa7d686d5416f45512a3b9d6bf656eec93d9802f3e20e75c5df15c4b0e2ad45583e9a3b8af10efa0f9d6bd098cd433550a4f8dba8088099385a0f732a32b48e40c742bc7dbdaae329ae054b084d4cc64cc8035192e0900b3cc9beef1de413a99e7b74092921706de7bd791c316de4b7c1411eabf26d974a3312a503711c8aadff7e3ab4e78894524d02fa0848e9cbeb69f1b663c507322f85485da4fdbbe10c56aedcdc38a6cd004b480f5dd01e6df90fe8e1f0afbd21bd74fbaacab87c90c1dade7655d59d1006ee709e08f54f9b2c3a21e211aaa93daae1c6f398750751b583b9f8deeaf181aef3b3ee9f7f9cd85881bbfbec9a1a9240b3394218f6e48f5bbbd6244cf08ae571c7172908782689c3d16eadbf3115f14c4dbd4daa02e21ffa589cd09af786b419f0361068d3d3ddd3cfbc22780907ce119ddc81233b42713a728bb832e79d9a7f7457a3e56b80467bbbac0d710939aacaa5d7817e7fd9845120c71cc8dbb7aa2659bfee4071478e0e05124dcde2c7c592ecb672ec4809a13397d7ab84b084375a5d2762f5c12dd643944ebd5970587b3f28d953e78bc9473880e3282e6a7567ec0b2f608c67570f3296485572c36fe8fdcd1b8aba9e13c832f29478430f9d985d0d83f744221001ac5f818bcce00ecd1cf1c8904fff0aea435e60bae04e5fb2403b375ef403f3989dd9becd023c62be83c8b16c0573e3ed69061e1dda762eb36f11dd02af5130456dd78699152ac23f646ca837f660229df6645f94c81319f207239a22297b46eedba2568bea4641ee1218df7c0471d43e31273e14bafe5667eb40e242091061111a059daf6ea213b1260c6d2f4871b7c5b9c39a3422a0fad10577b3e23ec6de823cb7aa025daef2962c5b12236edee9ac90887fb772fd0e1cce8b1ee3b1b3fd77d842ed12aea8207465333ea81d3504d107198a76cc14fea0c7a58c674c519862e8387765f7a6071d308bc6e4e09ff58426f529e457540054acc75ce46bd1d1f4c62abe6a784df43e26316cf6066f04a87c29f92dd6021780216359eed6801e68c510b55920efae122d563732a2109f3afc0f8a0299521da0b4425c0b13ea19095434dc7f7890a04cb470f16bda271a461c65e00313fd2c90bd9fbe1420b2fbce7d7bf2d052973e944eab85db729403399eaf9ddf0d30c8cc32aa8ea5ca2111e58bc6422373f43e2525d38be900856d3dc346a42872f13eb0d0e7c344f81fe467c7dae8090185b1aede8d9b1a22f95f0b6e077465d4d909062fb65e3282392f3fa8a099a482376ffcc5482c07f25be4ecccee4e94c642a3bc860af12c419aeb517e1308fb429e08d3aa282b127cab98e5668bc84a45eabb90e2f74198db6897637858bac401028fa43b3fbe9cb8d00560225a9fa2fe899cfdaefee3b76230c6ff08b4d436ae106699298ec0ef6c3193c4dec46d0783264cf9175f7bdfa2f5c29cdf277356606be95c55793b67a6743695401f026dee68a27ae7c744a608ca98ebae04bab5cfc6e8e2021144b233d52abf537f987ac8696e590832baaf9c7e275fc51c36ec77fb0c66c41401310b13ee7dd26b75a2aebf820a2b4cd9f908835c8612524dc700817fa42258b421f3c9c1c20adae2a5520d2f7cc0258000a069c0c005d5d7f3368e407020d2dcb2bab688213dea1ebc703939d49d1d29a8a43c756a2b997d85919daa4ca596e9a860e39932a01e29761bcfb7a48d14c11884bc3ca3a876a75221c38b19d28811e4357394a87cdd90c909a05a654ba6cbdf4a6f4ef76cd0143b1988d94ed6a5525284f9bd5ea73e34441794d8763f400511b9085f148be3d6b02897983d6682020e48adfc9a7b64302f048f605c1ba2f2186cf878e0cbe4dd033c6449375a25244e019c9cb549c02b97a4f5a94dc70a0fd489edd528cae7ae0fbd637fbff889b5f0d9e1f5655d258bbd1004f135a3411e9865e6189167a419a8f4670fe8e3d75ff87a1b7f10144a67d0832d56b945052d0578e97033313b0e23eed6c223a36e35f15ca81a007204fc0f8fa2f7ea3d981e43983da03ed4d94802b059cd809911ba98972ccd8a237f9837400a79f58fba381bde02b0e3d3a1a89b35865f09b4ac69cb794e25203262d2c250f0920ec52825448153aab7d9aa990791ac78986dae392a67400168a7ca986ecfc5e498dd846da70a5ff0b08963d27de75266a312fb5f8748ad6d78336e90e607d075454f16c8ad19adc885a006010228c9097764312fd8e5e769a942d77c20b346af43648eb9c85312184ef7c9e8f9c858eaab91728e4c216119b20a49cd16e27d76ab54a0d4988d1a1b50091b5b4645a40b6f1f9f8758972f29d3c6bac7c45269b4c6545cc0049170ca7bc7b61347758eb6979921e3e4d7c4e943c1c0c519c6a09df21c847f5e2167a9d8abbc7bf670d7f8a0eabc7d7c52831bd23dd7f3a53be49611a0502eeb96c1148a206db366ea59ff439a8470d8bc7c66b9058c04e3775f81a83e18df4362f53202159f83ac83845c59621eea77ec1d630b7eff20c4775af601a74f5279c76064025d2636618fa1a8bbd24245509389c04270e73d41184464a385a55e48f310e5cb5111da34ddb0753d143261c1ba7731ea618a7f3d433dea2d6071811507dc0fc4f2bd9a592a9a0d72b8c4a07c0a48a870cc2e1bc84c026d8c4d0b8bed3fd777ccaa20763a6c2ceac224349ee181cdf2cccd96bdb7bb3f455b2a453ea3c45740d5763a01d18a79a0cc911fdf1cc5a37b84d5947dbf8f859117beabf256b559d06fcc6273b9ee0f25b8f4c9cd3a56713096942aa7346fc29119585554cc92d2a27e3bca53a5c0d8f1f44cc38e361c182533759b8241b53738cabc8fdceb77f9982419a57c114e5e5e90d2cffde763ad56b420e518f9e895b0024cbc8b05866f1725ecc6cadd79e5fe107de01b3aeff7478394e1e5f89b4614cd60de045843e7f2ce66e1a2828a64c7d3c31090115992047eafae4c6df50eb83a1550584716370d666802b3fdba062c0b505c540c109206466475e4180e9b0ad8044eab8d9fb39ca7140a1aead43e261845bb4aeef60a0755c2f07f26197d8af7fc231bca3dcdb564de571d6306e2c19dd9ee1512c949c49646faf4bd567c29a548a9fa009b919ff2452fc95876535b0cd9bdfd552f6e9445e8d74f9412343ed5c793af5ae2603425869086e89277c626913b8826e26c780ef71d117adf01413e42655ac1b72a23fe90e67f447caafa399de4bd3f8e1bb291bb9d2537474a8c6bacf73b25bf08c7d8be3960c5c7f7e9e7d2b3de8454ef680545a3e2245283f64c5225a01fdb0183cd3c0334f28676cb7fdd4961fae64a779a5776e3ad89059d02872a93ce6fc8022d516966da975154106eb3b7d0ab92c52b63a353093b407679e6ca609d3b904437554b363d4c70c0f09b9c836413077c0444c389d914b7409242481b9058a78cea1bbec5fa10176e7f595976f5b7c300da20d1b559543b01daf72134395ee1b2b15482eefc5b9adb4189828b799aa14dc20c7399e1bf83fea0cdc37c83a35c4460869b8e0d2b5f0ebcc68c4c96dc29ef88222e9949d60d1e3acbed00b1ae428e26dad738818610fb5b970c2c065f63c86e50480904fda2cebb1d76ecfdbadcddc70216f7b41cf057ee475cec85f5e7c540757e3f4ea04eb0ead60ea9bfac4a30bde8a759a004acab9dabacb443c6ed3fab21efec0a95c151dd56a944193e0a19c9be170e4586c9b41413a29540f9a9cfa60183a5cd63f10d498ac22f1589bf18cd9129ac243bb208220eeaa731805ec26ed9edba14a00f598ef284acaf5fa15d1a4c8203bce2400d7ba94aea20db0b7225cc4607f723acd07327c03207fc1ed35952d83908b77dc1c8d384e0d9bd64ea71269b7d73ea7e24eb1310beb701a8179154cb03e246938c1065b474a1fbc68bbbde2da61db5e8e99d4b008838285f359973481cfe30195a1276a5c22af8bba7c845764b5ca77befb48b46ca588d68cc2e88b86f2910993e18304093fd782422e205b3fa9c6cf2821050b53cdf3eefee2a363df50c7b2daa986860a511c2bd7ae34a8368f862644d5029260df15518860947cce57ecc62ec94bd6bc68553bd571f5335612c70bac13b95dc462f15f954d548687d9a5a6815e1ffda1a81730f66e56a311f49f0f852364009791c857dc0a322133d12be16d3284513933b5e21b5c52d756a6db624ed16a0c71da569c7d6b1ec489dfc5bafd73eeeb8494dc534a4e3850858805bef27c948a6a46fa4d601070b7b7ee35ec00ee5c294c62164738bb821c65d8d88ef0aa14e73d37a65941f1076054620244a8c4c9e3a60a9770582a5372befa807194a066f4b14cf9e8ed53c7dc074b3b592e9ca00a698ab41d65253df16255ebb32f6f19dd11dcb98972f786b38f0396782155a6c312450e6fe9c2be502da387025f37dec60f5b87b07467b2c69b3f8d5ffd0af24b5a311a225e4f0dfb3ae6affb5d5c2b98d47dc4bd8d2cc33bc7ecda97288a7681f43c0434f390d8075d5567b26c81233f0c5c095bc7375fb3e4640882ddd8ab911e95bf56b22a355e0b03b8bb904373eb57a126e976831d172b6f9e86860e28ba0f48666aca3d5c533ceb3ee2ea1c7d1ac5e90082af1e8ec89e05f1c3a6ebe72cf3a36e643a6376c9e7ef15061b404e2852498e52b2402042f27be4579c54c74b2908d672f42eb14574a36d03995dd81d185deb5b1cd585e67b9f749c6bd6fd9e643e78314c714295289f8272bc7226ebf74429cf11cb76df55fe9dc33d7690d9b5bf39c7ffc7f7e8e8a735e38b665863464383911d35b61e59caf868374986edb73be3668994f032827f1fc83a8af3f8052a22bcba84e11717ba90f7db0e6023e6baaa2e65728fc70cdad142e3f8196ef50faf5b359dbc5fe8f5ea72651aa5de27e6f18d5ece72d5f38d797786c2981aef71d4f77a420d7970e40b76f321bce8c7227b73871b905605fadcdbdc196c7e3c31304a972483b0aaabbbb10a4e95c8e67c27a308d81d1c656f4ff04c9474327d9b8841d2732e6c605e7096b067c90ccb9731712808e763689f2164a1f4e77e40d17c125c09efac8754d56b6efd7cab9560909f3a61d65354b6f8d4573937d4e09eb9e68ec88bbe63da7cdab551513ef92b8f98d8d7dc662089aff575667d67293a83d398ed25eda49a5000ce20f5039c380d7f79f8363a194fbe00dcd2f0a75df9a8f5e5bb9a349f0204d86fa513e63a3c5528a3d8a91b1701e0dc4fee7ffff31069ed91348e82ce5fffdff7f8e7c53c8db8dc8b034de661c89229cd54603c1237b91e088bd3189f3abad956f055d8c0f070a774e9c1e49dd0629f9af3c77162ad2af573873489ed96644b55033d28ea4cbb220bc5806bb266145222bf5effec15fec7e628c9129a82cfbc81a78dc7fe3e9749262c0f959f17c745e8c299a711cefce1f0e901cee286cbe24afb6f28b71d6304f23a7e573875c8cc9a6f3611f53ab7df56607c0710d10ba23cc8bb2c81c861daa4d685b2580343549270f23c72da674d748da68ecda3a238cd7a8d7771f7e3e098156aaf2ea451660f8141c2b500328c061e25c87c7122128b3fd137d91ac3833ae3acdaed3658f219fa8718d7b104477fa3cae45eb133bfb0bdeb2536cabd84c1d0cb925cf47815cc5fd90b94d44f679d63047f71ad6d4746b255429dc73813b87e0feb81d2936826ef388e3cd6103384974941d830d793e9dbbf29cbc5797a0155debdf25d9eceb9cee84fcd36a968a6b8ae1691f0f495b7f19a59473ae19bea14a2ddb1abefa80628d172373d27ebed60cd9d0c16e3e29c92a0e36f8c2ed7b79c6ff3a75888c755d3da3372c179b84753a2ead4d4cf4a123aeb9afbe3d14392dda1cce120477816d02a4e18c0f614913010f624024c21d48ff3383a5245e05f952432bcaee2600d3911aff9841f099d46df2ef85f076a3aa62fa5ce5ad64eda1990caec34b219f51b00480c3658e6f14bad185de263cc5ee390711105717009abeb65dfd0f0881fdf3f163e3ec3eb25b8b596df09e76ce3c1f130c3c6beaacb4a089c85f278788504ed5f96c65358bb509088a54a9d193e9816dbe074df74b6b91f4007b76d5f281e0d4b0b6f179c64ee552a7a1e052ecffcc1d65a0f591c98e7814b36e3eed735d95b07c221d1710bbebe02ecee03ae34c0daa9f08fedac75698de903592b906e33a5be106a115565c0bde6205516c0548814e953d3bdbddd3dcf464ac4b213368f7fc0d56f18160339cbaa31b0383e3b2c85321c02cea970ff97d946f9c545974a66d0e593cb165e2c9e7b70f431f6c2a1752c06fbb8f1b3d978b89deeca4070f20c03caa1ce70a16afe26d16b008bded9c4a9b3ad239484381d6870a52598af56b00d4a7c0486ee84e86499300bb2774d3be491539378755b26c1dab7f85b4f9beba9d2a5b614720323362adbed907fc044c1a82464bdfe3efd78bc989dcfb706ee507328c65c82f940b30f800bfbcd84d4fcfe8220692d0da2ae95317dbbb0db6e55a387f60fa0b9014679edbec72604d6be4ffbfa58cb1773b9a2025dd2de4be931ea2ac745be8adfffcd772ef46c9554daed0a57e08a75ae930d985f46afd1a7c98ad2ded907fa52a8371a8f731a68463ab613eb749eae40070969bed313c2db102df6c6c8df2ae57ac4da5962cf2f0697442ace3be509ca863102cdfecceda230c424b6d210e9db79d00a3b9cb345867e3db1576bcb5f55f16acc88372476ca09524782233149fcc0a8199bd997a1845fd315aa2e1193b68a857ab96f06ca851c5f17d267a59bd1ff8a8499fa3ddf77cb048734e6bb43d23c905cbe46a729e762600b1b49096745f641fde516afca46afb16992d6088c6207d63a1a00af5752a9af8e64e622aff95ba21b5f013e29e1778d43cedf8a11737e76555b415710dfe386d32453a65443b4d218cee426e2b77c1d7653d558b9bd261730659eb85171c652b77e3c71593d34cc5d17fd31c746e826d83bc3d9cd4255121f75dc3b6482c0a4a4f9cc53eb011b58b582154f0f40cd0858b0028cddc96a3be00ebec61b9480f7f8c780d5482773cf2a9bf7855acb5a6fc4325060b851230fefe73e13379b90feac2e872474e62f73b6c586a91988743150498d3329d05021551ff75c655324742c21ae0d939bbf1eb44e6c210a331d1f9df5dee01ee2278e1a8c90409a7aa692b6b5cd2fd44fcf249224e8ddbe630d7015d0e4af50fa39c7371543641e8a09e7370a894f14d98d37c9f12994cc38c5e0087c5bc2ccfaaefa076c9ac1a789043d7e08c23b310e70d70506815ee8ed3c5a22ca249f003659953743f28ab4943ba93728683082eefa5a9439a772c2f12aee50114b2e2a7bcb06f54f7e0a5541c080b5b534c45cfd9ba074adc887d8ee20c3dec570bb564e2b09b554f6885f45253910d920ea64b48cf5a0bc75719c80a3a1a9fca17b5347d3b5ae6865379ec3f9329908fa844362078d284ad3a8c515583e546c477d67a221bc9083e0940d80cd3a60a3a55ee8f2881e2d50424a133c5b1630c3294c80196262cd590b9187c560d9f7fc01aa6a862cc699fb9e201f5a101905d107198f2f8bb813a89d8602042d8af4427995aa7c0c84c733a232bde516aafcfdf2d3c281a882f670ef0a4a104fbe44bd53e8a3c144f233d610d1ff27f3706334d6d9f70e096582b3906658f0c38bc2e63f651930686719a3a31609c6d24886f66d470493e568d83a164e3db308f8d56d7762ba2beb5bef2097229b9421a2b26931f381a3880a93f3ba5d0a00ba6b412cb706ad33c2896086342d5c0f03c22eccce66d6a302125a50caba955b0b65bbf2956514baa710bbdcb13c20c40228eb7a6cde5fcd3404139fdfd4d0a76d436f132fd6fda66c73207ed1e8f4fea0c47574227d92e237d2a2ca4bb0eb8b404f33a3814f989dc75c848295717ae9509d365a678758facb1e0f5e603609a4c89f318223f997b8490f3e7c4e4ee04794f806d4e78b318aa1725ff7109027aaab39f65bbea89cbd2338b214c69704a8e642e74ce36fd87354e860ab27f7c211cf8ab1de9566daa360b4073795842eb95f3504b1984c0ecbcdeb0133f3ecac8876014aeca38945ff7a2c6b0077d3b4dfaba7a516362a748634e44c7818fd31343c5c4285d5793e93831c6b02b263ae827d220ab7898a75046707d1e7281dd055744b360911e5273358e68030b988ae0f613cad02cf79d8b12b4458766955a47587da02f9a5efca159869adec4f1b21c3aa35390b2a30934701acb712695338b88f9319c064a41ec6248ac03794d91c9c7e237da30583a28c95a908d6a0887f1f2a2c999f1d225f5bbc725dab0e17c091427752163bb57c38e581a3a8020aa17bc65da3635d5c757105a9f09d25fc7caba763ab01537ed871cac0910da81bd567ea502df114666fccfe167b7df8c4d81121af49d667de86e0cc55b7411e3dd35f6b6c13b428699c147db77d265042a3d2062661477cc2a33c7c50ecdde32173b60e3849b6cb2393a217b3a1a0f9e0c1f2a2cc190401e004e9145a05bd4ef296440cc87cfbef874fbe09dd3f49ad2e3eeed58e0e1ca123c727c3c4c338a0b2099cf354ce4d4f899a777b6ebe0b4c3962709860c5ab44cf303f0d21f41169d1d93b340bbb35b45e041383c4aea3774f214454fa293614ab3e6d4c8055b27cc9e5a8abf2805e7c63d58c8363d44324f1afcaaf366ea25b2505e70a98e353affa1f7dd54ccb2c640419ced29de0d33dc15030db12f46bf126abeb31329775355433f0db20a0ed465347b3b3dd7928e1242815229e15cf1b199a7f687665b2448169b2c226fc908a2992a5215cb3200379f1141f2e4995c7a8ddae3cc8b10a0d307bc5ae46778e721ddc414df58c273f2d5c0cf761f34034591f599b5889c3bf444841979488bbd9abd4947876723e6411e92e235e1ef9fa097bd6ef93713bc111787eff2fe4b1cc06ff349f7a990a95185a4856898b58bbc806ef82ff100b9e4b05f46741b7275cbe78bd85e955cb0dc79a2881151d29f7fdbe7a0d40f79814606fbcd49fbab81bcf2c49b40d56c4c479e6843b0a193cef415c462a635a53a3578e532eeae9480cccf4f22a113f5ef83d4169c6065a4bcc6c507084040887888879cb4d375594b8c8d657d30eae8c09afd9c0726d9480eb45f3929c47a0742f5cb09ae81c7c81386e00b61098fc64f8d1f40faa4202aba8a4f67911284e9106ec8770fd5ff6e79858261c8c0aa878acfc16261f7aaf47ffda29a6d13c649079aad54f6b263f0a44eb106201249e318d49c05994c922b4cd95aea0b916c80a2b60c66cf4a8ffd0843eaff1b5e96c1b3b072851801b30121d9e44a9d5f5b46ee3cb13ee3a6d13875f6ced141b935cba62e038590b4d5a20f1c2e8d06d1bb0fa9981620cea395638616d2f3b1f9cff19fd2b1742fd3886f760324b4d6985932c0f5a611383908c704d603ec5a1f931f6d19208533dcb39e260fde3d8116a8b7bced4c0f25a3b5086b6cb13c470eddbaeb40bfc4481f4f645ab7c39018c7edcf0dc323439308f07dcbc45b21b7586b797a5f93795d1ad82cfb42b11088a911d249a715c3a6403803f40cb9b39d48398e7b0236f8a5a2cab1454bcfaaa574763be221e0a75e2c710138f262091e12c806c0f4f703a599b01f11d226b2ac9e7862568170e8d7b820d6fade74d8dd83ecb7718de84815715488cd56c06d8aeb2c532816a73076d91db7c3eb865aec29c5c02f31c3a1e4e9bef3f01522efed00a2c92311aa3d1ae36b5f49c270786032a01d1e059c4e2620981d6de5e2d7867d38da19ff3584efc8c6e343e080578eaa9849d2daf61917a9a469571a82803024f9b527842ae007e0797308eb2a9a4ea2ae8243f3caa44183b5300badd3d154f37991144c94a5d2bd5b87db3750455f229a3d7498d9ec54c22e4a40dabc69807ed814e83e72b9874d1b311156f9ccd501afbab509d7739dcb2844ed1fb3cd64925c623780e12497520cbee6d12cfc562e20ca0d9237549017963ff1ea270d5d5204ff60ad0633f7d191f5804c680fb4fc828ff474ec26e29a38232d35390f3931237899dc21aafe37f0270a7f38d5bf0e1f343f4b7e384bc64cb6a55bcaa719d038c5495c070d9299a1b7cc027e259759b5761530717752426f1fd06d8421796e6590adba4ba84e5350c93b275224d24c27c49fe8610d1b9a5de702b8928b5d15f4e965edb0801c8f815899da739312310bfee0b1e13d71ed33f1c683e4c595662087e2c2522ea264639f73726622e02f81013f5aa21915c7250c96d5cec40f7beafc49995e377294d3cd04d49848e69b283b2811f5845eab2b941178b03d2012f5cd968411524fafeee20d88518db438a6109de8e02f68c68a2ada770f06ffb6fa9565eb7acf1297c6823f340a3a85236c656b84af11fe960900576deaa014e75753aa5c97604be0ff3f551d6017b1022906c46e89bf875c3e7adeb1b595c5415831468f31c694930155aa909ff6c4c086d4de19f44be9a6a6650ebf0a12588fbdad77e3d02b8b0e06002d8225087c790c0375d1a7981b13b7de5a313816a84ae90efefc5a44d5fb3fed4ee239ec516f30e68b8b37382b83d40fb019dbd807a5f466c2c398f711ec5bc19fdea19243ea5277c2aff62af230513fb37d1cf9a3d08232bfa2a9b723dce77ef41742f2e49c7aebcdd32428800f6ae55bd7db00f528765d394091983cd6e73440c28680aba78a37edc9dd067380d7a9c73425eb431f646eb1d07fe02f24914b093b4412e4bff7e15533d2cdbe6f25b679ccd6d793ab4261201380cd848c8c3578de506ece8a3107112e4f33fd270870ec70b8113acd22a860694df67e8088ad1a2f6d022f00516ac794558b36561e7c3e380d0d4f1df16adb4140042946add8217123f791f58963cbec35f21bdfe0999fb377f53979a260c86463b96c0049459969aaaeaffaab5854bd1dbab86a7f84ef416cbb5d41364ee98928130eea68f34fbc412388bdaaae9dff2df8f3e51a7fd6312e670e0726490e74351d5e693260a6c0b468aff089f5845bb98c1d35f34ca5c90e31275b4e58d2419309123bccef220d5b49673eeba21e9f854be8bccd6eb9a1193e1135c5ae389f8595246fdb25af0a829a173bf7811f288ed5e8a15d0d0459b4f09c4272db669187e0344c4e4e81221fc29c66173b9b8a257ba024a79e9e048a2b4f55637b77632e8468a905ffb0d593ef7dc6a0ec763461c102039b1e20507887e29b7b9bf2625370eeb4e30e4e7057dc6e673cf6ad275e06c8b16312c840f4721f7d625b2bc50f7e7f8e585b312c492bd49caa3b2b28145db28a43a452488433d1cac0c886ff60a8b41cff07ee223d53bef4fd7398a8c2d64a3f7f0a1480dc78a085b0b3723bbcb4224dee3d1de906515b82b4adaac2b16ba6f7cdb34a9fc3194e6c6294e9618bc525ab70989a05d3bbc2a2bb55ef607856c16226479e4a3cd332097eb58519d31472f7c1aef70c2d57a47be05e727d7d67c27965c061d6e156947602521686b196cc118d377ba32963144032f1fdbb25a640fbaa151a014db4dc5a9d9cd18e008a5f3c1de9373da23fad057d18ce8115b1983300e35689f679b206ea5d80da5fd5e98a6d59b23bc54524927d9bb6254a1a2138b36a2a428e4d2e2ab42f63f9d3a2e89b7f8c3fafe811e4c7a689ffecc1a0a987d0e54ea8f882577230fe788479de8d92f0f5f81ec8a2dc9c075f9afde7b70ad375a9159ca80264e8cf11ea19b3b39fca4ef5fb68d04b566feacaf2697cb756a71ef6264cbf1c1bcaef6ac8089d48b300d07420526b4d07f134d8da81c8ebe84b096187b41210298d8d8058823b33b86e6c955a38807bb83e592597c2525b4d73d55b6d6c061467e9aa2259061ad53c6eb57eae453ef4367a324771d0267af6d1a28e419ad0733560fbb2d0ee45007e531c3a2b2cd2929c1651ff8583e597f9d575b5b4a333a831961cbfae45c5a6b74dee9102693d86f7dc7b3e49a3b618bde958d9901855b3cf99861ae892fb2db158e7d2c1921f1367b60ff3f3efee34f076de8b08a30407b8bde8c5134a54d282e23cdde432f56aa31f1417b5fd1816ab1c57626b36d296b04ab5b676e955ea74aca97110737c9775161d5b89f420579121433c9cf6b7433d1853a023edc1283ad1c615050af2f800964a67158735a12b62483192ed7a0960919b31b05dd44ca1485904c89b452046044d1aa078d693f0765da24d81288e42c5159112f3707fcbd4488ebeeea3ce5de7a0e9bdcd0a633da68df9fefda12bb91cd08a3c858c411d5553d615445780e40928bddcfd8eadd31a5d91b9f189f21b81c65ee70e0412d4b5fb11117bca8a22d56c96767cf08d4d16479e45b1b0a4d2dc41f09278658599199e98e6441f6467adca4ef0520e37d5280958569d2dd25228dd087e027fcfe9c780fc33dabfed280d09ed38dfda5456232e6945d2a42716b00d0ead95000bb7ffb6d7acc0c828b64a98430cb857f5601bf8b0ea731b6cf1a6a5cd8c2b366efb8fd00595c0ea3cc0872b95a8940beef03511f44e5c4c6cc7b425ebda134f26b3c39bc58767908fab85aad9f2ee0646d1cc001ad54bebc4020ae52fba78afa4a7a7b81a8d20b0cdb791cc0833f766e0d1491334e0258b909ed92cb683e4ad38a4ec259b8441bb7171f42b08fa6114a8981dc2faf8464fdfa30da0d3aa679daf24139ca9326cfcc2d37954b36e38120b654ce6e8a4c630a16da444b770f74a76e271fc750dddf88dd6679430430bca96132ad398dc72c5d6d3753488a2e17f48b516344fb628278fea5207c6cf61338210c0ed491fdd1651df44a872368dbaee4f18fc67d772a19677ac95aab0dcfd658db6c1322e20d2a73c5116e22b4c174a2feacb7a37ca025a9e93aa4d8132850a46979e8c8f56eff7fc6f587085d4433a82cdd38e033dc5727fe72cd50e3e9e6e2f23605bf6a4019f94f20e4c05471e4a8f3747aaac125e225d806be4087b8f76a05a24b6e3a3c835ef2953f8d6090fb028f6ee46f60024b7b080ee72887522cb3da6bce400723ae9bb1ab9d7bbc1bce92d8b190a514aab4f39786af2c86311a35f9936177c98680d854f888a97d7ca926ec0bd925d8662fc065c07dd19cf018c4ac5527828ebda52b0dbbc2a51d8e26eda482e99ef096ed5493ce6fa09da942a38b432e1b14ecfa3a38e47270b285aadc1f91eb5a4399898a9cbf6a86770c430a5754edc81cf28d471124c3e4139935cf1996a12340f0b8b26ddcd3532f4300068c07bc34d46ac098036c519b7c910a562baeabece77eb611338ad166ab84a3b3d19298a77a7256883b2cf4190286134ca5c4ab63a6ba917f7033634216b519e99a155901078e0e04bce1876697d467a48d04273f35000e60dd41903f20680c1cd6f2b69f68a694a891ca02df83cbb47cbc86ad54fffdd423c44eeb96831f5fde7ab3f30bd180e5e76ae9440cf2931613ac206e7414e300da323ec0f1edac7767a780987c303a6eef84731c256533efcdd9da35c2102442e8d3f479f6fd590ef8c5eb8c2325f471300741c94f61c2d1253170c75429a2af347aee09ce008a2f6ffa81350c9f66a2df03fa7b8516b6e731175b6217cc68716e20b4957c2d91363a5379033a87a9465cd8f725812471be5dc7750667c20ea094d87dd4d85564f9806682da22fea7cdf3b23b0c7b57fb379ce7d0deaf1cececc4ee3d6ad66f5e1861b32269a18dbf91b4386459b0fec563d26dc73120bbdc9a3e307f626605f89c5852129b4f7006362cbf540382451d94f6a29eb5de6abc3fa0e49e56c16c786caf55d0f39a107d80bd68cb43d1f23be92b6d76f3491deec787ed5903287a06aa88c8b775f1f016dd6def5c56f69b086f4b30372a49953fda42caafcb56bf99629a702fbe7dd79074db48f191c9722eada25b329822b0f0d6e708ecc921561203d5351e368324dfb0f517c4514542674b06657267bbdb54c65f4aa3bd35c720906cbd93ba6129768893414bc5090fefe4f4e092d131e5e5e1e44056499ddc171b35a7d0b30ece1141d8f3bfabe5b9f809f2ff207449bcbc198ba743febd51e889eaac6b7259cb504aa208fae55f64b78877e50b0eb1bccd823460992387885c8e72a2692fd559a8b28acf3951c192b9f873f9754753d0fd1afc15c20430750f82dc3d8f283ed8b2f758ff9515c2b89165b0e8ad545bb155e855a768379cef1507ce2eea9d5b6bcf0649a4e9972ece44f464d0773c27ad3aafad67c360cb5152c43ed80f0e6005131490418c2b870ec15a47323406a2ca09ed6cdc8bc20001efc49162779c2943aaae20085af26912a4570530a087a82fb82acc4484e35c72b3b251fe6e311233a52323f0b133a23d2c2ad01124b0d00263b888ac98d390ad8151d1ec1e9f539afb158a8b702eecd0a8ae9a582a258b31f51a0f8b1f798505f87f31b79d5514d3a0f2130d3fc80384c9b728d42294f3183e24670c974ca192d5144d46337f9487d3645911d1da59f33228d4c7733be128baddc12b62a71c83428cf20745af08620d2b3421a543534ce5affd21444e9c7f6a788729d65b1a8f1594f2976a2fc2d305263233205142141bba4bdfef1cde28b50f07e5d0c2a9fc67a184d4ad9a540c0223f1a45fb460fb5a3a712c062644ad55e9e80f4c14891953d578d40561a0aba598ad04600b03d4ab429b3f4cceba8f52e86a199a14d749a0e7cb506c112a145a7c1d28e6637855a7a3caccd0710849f6fafe8ca6e847e2cae458c342212757e9036809b140f735e1cf6c2de66c4e064d1ca7dd1ed69a512ab0415673ff8c54f51d6b6472b06d80b63846f5c2cc8342cbb865bccaed1dbec325bbd752bb04e7bd411de25f5cca55787095f029ab65248c85224470e4b25f5b8cc4bf13d16bd89fc7b79c702de269cf3e2dc07fa5dbe17711e1199ae15486a14e00061868294c9073938071b9e226940ae6760c057112473984df542d82c44f1c1b0507de83298d91e13a861c6aacae8cd36d0cd4d5738f5735f620929a261650e91cae7f15f6f73f45bab9fdcfa936614c9df320cf6873ac1f32feecba33a1aa81392c7a2749d4c3fde3087aa559aaebfd2b4c01466c6d7f81191ba0f0ac74e276c97eb8f5e63f8df363c3922f53814f8d4fe4dec9a816c841efaf5a6d4a29ebccc1ebc86c22a05a7521433ab0b5a5214222946a5665240b96fbf9efe45b3b848760567ab086e78645ca1268fe971e8c4f1ef98364c4a6de95b2d1028b63759827cee0653f6d5780a2365f65ce12805ca4519b30586819fb7b886d3c894e540616f52215d096361140c41f99cf537ff9b300858409b1c595d96cbcf64ca6ad410eb5c0019576075e6a498e6562112be73e37975ba1d14aa895415ecd4635cd3e97fe8f061ef0129031536b561ce3550925b56a1aa9c516aa89387584a805c81d6e132137d00becdf2838142d5739859c92e0859414d2561ed16acb3083e2e5dcf8f6fe2a02e20f8c698f9b52023794a3a467816c528e9548332f1e5bacde67cdcb18a4e41665693f8f074cb84372a7c9cc6a109b336fee03bae8833e4685b3ddd5a88651aa993882992cd474d21964f9f6142d2b9034ad2dca141579803afd355dd3b34679cecf74356af84ce398fa4fbc7dfaf8f840642199b2064c79b84496385b6888a84ed4f72eb072959b58524c89b4cdabd3f00b94a42589636a277ca44be83a860c5a5af7671f1118d84d0405ac7801b871d48010b8356c792645b23cd77f761247a3272dac3e4a6076c8cc231f4b805b8a7b9c7280dc102c3262e796c11571afbd15fe88e3a29dc8f220d28c290a5c163df23940feec7cd59cc2f8920439ac42742dba65bff807b0bd6de53729e0d5cee2489810ab66d96d5e7b2ba246eb17306e64d355468cd108c754a4de4cfd5f173672b59ebcbd5605f3b28d296ba71afe7b91abc3c1e58aae5719dee360d98783a214ce8a541edd1b05bbc453f3d3cabea6141fe5a4adaa96eef357ec49bfd9a2f3149c5d33a2bce8e1b08210304d20b6916d8c8591530403e089a1ff1aeac0d9ece1e83a468254f6fd5a38298af836b48aa31e08877996919f45f3fb6271e0671b526164b488d39762c50425d4b9297661fd100022250065e4c722e4c71c16be90117ee17c14ce12ac482541d0ee5f93df50fe6221ea5662fa617208fc6cae363c5fb79da884d3fccea16887d51cb13cf229a266e98c7b00058f8ddb22fcea02c4bb16ff899889a50a2565a200a020c776ae2d9bb5787fcfc1104b2bef69cf389c6ddcb599fa20507adf3f58f9fbeefb80541e472cdd5973e8de3452621cf43803d206f90710ef49615f0aef3598398b6a19226f3fe0ef087ef561358e4f10ed4ca4b7c98d0a774931d38454caf8465daf5b697a8a80d846966770f571b91e9758e207c883ed5f7809ba22f4eaf3c033a4648f9a406b84c747180e301109ec45a352c1e63f06610c4a14a9dfe185f9898f8da9aaa15b852dae9abd3324f21877c1bc306548948ade3777cd41cb073c6cb73f1d50c2985756b0b54fbb70cc7227cc3a4abd16130725ae9fefea1b763c649d1a019757c35e5e18936aa7a4ca35015449853a3d7383663c4f457758afc26b2919cf863576223385884a2848dd974ffc25391e817db7eeda5a1f687a541f4d153a11888fcbe013ca5fb55de23d53e85f1db15f807a56fdd2c332d6f4a4e84116a2b14f6b4d1b0e018bc28850be6127b0ecba5d7b0a4ecf7396da668c1166b428d47ed9b19d3d4b833279fa079078b57ed1faeb0bc05a92692e0da59ce539be930ce79194a32e48b9c63d60f133a59fca83623d1c89793af88435282a4e105d28f54fe65cd3064573736253cecb1546c4923adc92961cd57908ac46a58487199f408a2c81aec05d55f326e4e09746f5eeea45c55e2d45da44c265ec4a8352b1306840851a984162fbd9c8e28d1319c4034e4ffc4270d56d73a9ccf16059bef0da7e62ccb128f269039bd0781ffe74c29ad78e9f137324959c6dd60c75635e87e0eab06ba537c539ebe54604dd45b1d28b56578972cfc171cb98ff82f9ee8941698d402e9b470118de2afdbe00f91ea5e6d3922aedf165d8d4ee15806fda64ba6b369ad630b31c7c7047676f397a75653c60bba547f00dd0cfb124144af181e21e8395cbea1c7277e41188b3e4cff63811ce0ba5ed89a803c750a3100b938be8315647192916cbb77c972c9b5823773e4b114f34ad44f6d8b73908b64405726da90986601f67c0354579c070cd92c2daf7c0a2e15022187146b1e56f77b7e82b70d1a4f3c482075f3b4b2355cd0176a2537ddbc40d11c3820d799d6f75c70a2933951252c8a51d52b550fbaf92f762e50f84bf9ec8ff7de4487af707951d054e2a241b6d3c36c653677bacadca1f9ad135428b52e43f44092abe0f3f1c6f5010590460d6ea156d09c01d222423db0a52f6c84e46b98e79cf70708a62ad0180570d971da261e1f435dc401625cccc60cc383b9aad7405d3b57241c86ea1f0ed8601c94c97bffdaab7aa1b1068f5226cebb427d7c29b50d3f9bdd21fb4e70c5f7204db97866403dd39204ca59f4aaebce67e5b1c74e2ec4520492353eea95deeb85a1779cf30f501e555f4319a6b7fbbdfeeac83594fac026f1fce7e88a86ebab9cbb128f911d1debf3341a0d47c3f9108222212e7337827b5af45ba22499adbb40232906861b7bb44cc3527550cfa00ee7c86a7f224c0a060645e1043c4626242a4037c650148e61e2d8015dc6ad8a4e73abe47053db5911852339f02021da4b9506478b1575c3d8738e4042950d0effabd2364e523a8548b161ec8db5c442824bdaa49b7fad56cb533f4ab420fa3a84d363417ed6344ca4217e381aa280f4b37e066bad683d82225c3341565061ce35c51fe3c27220a90eba7b3a2b8f7e69133f88e6521f29b2e5951139434b8ad26a3ba4152b5de58c4a03a6b68a4495812e2d925fec9e422b93fb0d00ee81de5938916be4883a441d04dbed065efd4768327a9b0d0ebc937083cc4f0d3e961b1148d8a788c537c607f5bdfc2509650428462f82c56e8e4a6d8d8b498791ca102ba5f967a0d3657a3e52d5452b2b349158a5d8c12197d99dd5044adb6fa712fb5bce80d0c4dd1604d66caee9e08be76cbbd5f54b77fff1f0ce1e21d7b71b82d26cbb7af4df927123799f3a853a8583d404a2771aa98198b4bc92f588f5c64ad53e7195e0200db900276acb8fe064ce656c4bac861454ce8ffd62d63bb82c5ed762ed76be073a29dbe97f6b98c40f293c286e34d4f193a31d96af48999323f34d6a96bad0edf956298127c2599860daafad47d348843732fdb50cfff1dd371325774078bb6fe7ac7f7874df82ec8455b0e74aa552fb51a32243894cc3244cac529941e559dfa003a412cd459a29294601b6a472fd1f1e010b7d9ac9ffd5a11039e53c91f48647c112d73e869c432ecfe0a68d0f28d633309e19ac400dfa0957e2eab74a47b4e0ca5c99dbe558f0c6997343e814f82524eae670bdd92d2c6c94670472bdac3ab3f4dbe5c2d1b7c31f69dba00695052036a6f27f1a5ec2cc34ff6350d3a4ee7ea6cccfee99c8790b7bfd5a30216b2ee43057ccb563a17b4974ffcfe07e230f7247ac50cd866b580061241051bf2cddfe4ba55e4df94fc64b25de881b662a7a421ab1aade62f13b2845f5f313415edc433500d5e2521c7570832547f4860d2d08e95047470f78694bb3edb00d5d2a00f9b8357e222cd0871e1fc3aa9f9b4e804a62ebcabef58b99eaff495ae7aad35fcb764001616ce10586138a7b1c92b8f1c35f0b98e9a9f4237ce5a8e7fc3beba57000c6877cd99fa26af4c9a87a1be265e51ff029460f8fdb961b25da4d345652774c7d48b7a7b330a0d94a26ee7916c102cae21a8d4fddd20d5d8a583e273d3fada10f60dfe7fb7dd4c94f0346eb71f4e59e6df7a2f84ef021c9e614ed191493e76d22378d0c0035e7c7af53dc9ec5b618545d971c4d67b68a1bfb0d4ee35d68475b8ec004023c99009a75281746c05a4d0720103633e34c647d1a0a76d530124cd2772672d74df899110327290abf502a70947711044194ed9bdb4359555687a4d8c26d81afccc67623db7f6f7f93229b4c29ed78015b015001479e64680f5aa0a4f8d1a48a0c2719fa637c36d22e25ff5b777777a3a8c06030a10602c39445493fef681e9ad96ea4ee6e198bb17e89a45fca18eb56a308b2f787c6fcf39d26f226ea18b3fd11497f8cf5c7a3d552ff045b2176fcb87e768bd9388e6bb49b4cc76da718bd999b3e211fff0ebb9a2d9c349c092e21ea9c22480833876a3a5e7ea2d51ee5e0469c6fc031e816c824f00e7c37a95055570f16987127403300804d0d2b400001352c003634036608800556afaa5ea819008722776043804a405b53815c7062101b384e3be0079ae69e4343bb3ef7b34dad566f5794ddbc9935779f32271bb57e97b560378f7e9293a24e315ca7216e319c6ba8ae65bc2fa55a8133271a00a99a00025836030814f81ade705abd0710705a8d095a0a16306880e3e0410e049dfbb2fd39f6be6c87944587ac6e7e71e1e8d3bae539464e0e4e1247ce069332882722a362147cee2afcc4af4ee6808c77e37d06be54985255d5ea5760817822c613718666c0e7f37d3e1f801a164f3d5973babbbbbbbb7bcbeeee768feeee24469478d968c26dff88693bbcfd6ce3f33491d6aefe229e1f6f2435d18ca376dd262a6ad7b4516c2059ff68c4423e2d0a0e206b63b52837ae58fe11255e7688f58f4746dd22e21f8d8e50618c758ba6e84fd4dfc8313166ced8a8df66bdf4e39cf3e9e4e9594d388afe24f1e3a897b176a1c219e110062a1fbd5cd4a1c3e9eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee3f3116dddddddd0524b9718af504c250b2e30a2f9975d0120f315a1292f5509625a625244b98884f5397252533a259b3d05a4b5f4dcd8309afbd31165f424140965104597e14602ca368b21cde3fcdffa12c6a591cb85f36c58336f389f9c4cc42564af622db3e148461c8a7fde683856cc98de8dab0f4802d1179c7ccbdc3464b8e8c284d61b21d87d8ee8864bb638ca7ae47639631df8943b4656c038d8d434d343482adaa0611df79bdd051c4850c2c4102f22544f9f87ddac5e18de0d397ff7deff138779ef7dfd779db530a7a0f3eadde83956b839652d0f328f5c0d73a95ea37ee54af7594e6c1ca853775f574e6efc61caa290626138ee8d12c4d3813f66876f541c4dcb66ddbb66dfbed9bc986d81ef5a8df68475de63dbdd152ba14f25491309fedc44fbbbed4cb3fd12efaf2e97f9faadd69487d07efc1eff11e0c2fffa7fad5cbaeea4f5b55c840f8c1f73c7ed32d1fefe517ca7ca7955a017ff71a2793ace4f99dcb9c8b95757e0cfd98d8876e202d664846605eb8c81a285ac9a15f8ec0342dcd40c89464b19626cba1d0caf956cd83559618096a070d778f271b43b663a759d0a2d810b2605c61e3cab766b69f6a1c52fef814df84db78e2386471881ec62deeeedde1fda1b4d63875779fddb3bbdbfd278355b35c7fa8f56e77777767ef9eddb3bb9bbddddbdda7bbbbbbbbbb7bfb0ea11bd2c85fc6ba28c6e8b103bf71d7c361ace779dfb37aef5f96d6af82a0d71cc8607d5966239bfaafde1f9b7a1e575510a8d7f9d02db90ab56e4578f9dc6dc8795418f3b3eafc84ca2fa14e9daad9081542cda957443381ef3d0dcd911848df45b17aee57cfd35cc8bd57377eeeb7cacf6dbf5af1b63db7aa9ae5aa66b76de3f888396ef5334c8c6496bb9999d7baed41bd1a1107f56a329c7a19767906837a99c8827a59a6a0de86b5eaa509eafd2c827ae3819a746fec954977ceac4452eba54056fe17a8f709d4cbb001f5f60c9b7a3596800049b761f6caa43b91ac04eb06761fd875a0acfbc02d4a522c100c37b4056552ef70110b299bc997592497deb92f5f364930f227ac5d2a2b7f02c99f41ed722b7fb2e81dcf201fa4ec5c5ce633bfd22e4d894b9095ef59dae54ceda239ac7c66f0b9d30086ac1eb6e016399f758b3f7a0029df275f264925f0e5cb59bb6cba255ffad44cf97cba2569954add920f4a99d4ad85a6a8b33507a174259224499a03f3164020180c0a06c3e16014c4d14c9a860f13c0c38d6772793c47631805418410620c2184104208218410a124232722a17a1010e5bb852e083850b82485b93354576e1da8b0a34d9932434a29ca5f2906df20ae3c69eb291b18b44d6a4b3143de1e4b8f6bc53b59a44cfbc49db25275452732503010cb7f4c94417e03c8a8ffa704d01239c2a0af4aa315e4aae2aacfa85b8b934b8b62fae103a977acefebf785ae38b99cf26d80d237e580158c0f6d0e69a71c00d16a4ee11e8d3bd7423c95582423944bf1f0abbbbb22d28aa745d1e781e90b6023b1a54e46dc0076314f29665fd5c95b386111cd9c457449c1ba5b9b65a4b30e063547fab3950d61509e8ab8165e00b86e79d0c049218b27b4c31ba147189ad61b9c9837c086faa8e0e9e30f3e15115c2a7d4e1b82314be944abb4e98de63a51ec17e5919e9ab930e3f5f980be92aea7deaf34102b20fb81a1c5b7896e640ad78213fac2e6ba6df847a112b539ee55caba29e0f20fc716c7d37e5a08f155a54813ef2148d81df944d8fdd289a3664a305e0e87cfdfbf716447b3eb59824e79c9ebe3908f07a216fcdf62eff8935cbc6cd5e2c737bbfd642971bb54f9ad785af35b7a0ad066d242760ec7414f4c0ea8a88420004c44fbd239cce64bdc5915f24a4621a86f95ff38984b8b027a07e56b76655da065b10ecb507fb2c38de4f79d0e7f958b796480919c1645165fddcb77df289d20a706a2a86d5f51715e5df91da1260e3e81cbcb609e3e8bfa1f4e79f79bc3a27629dd7da8abd22b78589fce623538f364ce514adf4d4b40eb71582922fbb53af186fb87752332ba484c8b4651b5f64c591459c327da3fc13ace868cb3c5d3eaaf474fa0620b65ca60fafffe649065613a20edb82c9d7c353807ff7ab14b56459ffe2119ea89c506d4b97a837f1dc5ded599b2876d43e6008d1c7d9aa26b206d81a4a11f5db43ca40d071fbea6d175049ee663ae5bba08f47424d9b00a55266f9007ecbf1e6fc5c1d364e3f1b660e0c953b829fa01c80f1ef259b1e2cbb9c9c81a521dd53447a8e03b0b65ecf771f9b7991270de8e194e7fc22035220092e90e4e9ae6a31eba4568461d10a556d4f000f835043ce42580dd8102600db965d22fa69db0e67f9879ca25a710165a6912b661658749ef7cc89e257dd1f9711ecb824bea10ed743072f3c12e5de540de6307aec212250542f34442cb3a0a3d794932df8f0bb2e2538a4a2ac08062ec1244a73a12b4aca2bf135e5526c685c58a06204937387a5369d3b82ef2fd879530362e46c9059c237b17a9206bfaef503a95e6819295ccb80523494559d1bc3349e439206951d643c71d249f8a4350ee22fd6415d53b7a5fc2c9b857c27c155e916006116b36211f12c2bd753ee3b56c3aa923af43e65f58cd03f9662fc9a78d8b5c40ac884665081845580b1c9ada5a7d6014be2c1a0a7aac8531f9d860a658cc9224646b593c1ff6232f303a544eec87280debce1e688303a48e4cce67c96d96540d26233a3638c5e5e0d7d90b129efb93098cefd417558a33a9348d148059286ea3ad693250cad059007db8ded8f81e25ad6833a1f94f5c15af0fac564c40a11367567edfdd993c69376a651235dc871d9189751e2bbb0cc89b144bd26e976e6fbb9848fcc735dd959444765b9472723c3b32d3184ba98cf080a30a5d2f70d2e7be08c6eca857842fede80a6121ccde6cad0ab0bcc6e291ae256799763d34712d335029779effa720518204e66dd47b1f7a1ddab18e5f270e372359bb1e1d8acf0d14d6ae37f1483d1e72a4443394564ae6d6894d1a3eedcc2c3a66873a504aba37c307b648ed9752586b9791c19bd0d056e4cc22c37625ef22496b017261ccc1cfcd9a784a4ef5ceaf6da8358445d7a7922622940047f5338bf8edb355da4d226deff3ccbc66034d8f37601cd234cc06500907d33580ac8cdb3eb47e54ea25e8b2b42902d0b56c30169917e3e40914a411c7e0c247ed3ab9435b8515b4701e80d5b4b814701351aa4b45d37374eb3e058b08362c9a5eee77a8c91e387d7235887b57d8a2f15d1d4b9d69bd22868333adc448546325dfc1750a1b447bb84bc298e2d7f22c0f35278d61409a438d3c60a612be991f360f83fc2560f9927538a655b64230151f578134ef91a43854ce89846517aead1d7ecbf246f6ae554a91e2d5bd31dd9bae49fb922096a49670300ed74b30d094b244adb3ed35e470d45f9930871a23129a0d2672adf9cf4e69612ddf78ec4bed31a29ce91bea23d62cece7eb6e1fef42d0d99a951c55e8f76c575b0facd6a888ecaefe47714542c7f8dbce6dc3a82f91be16db03e17ab820430370038ca1e40697288c44eb46402942a72fee02069952fb16f53638f91881ab03beffab1c28e5e484be29ea23b3a4e5dd07e0bda71035ad7bd4089f31acac626cbc9afc3877f6a811e08c11001775f4a35e6b7fc80f2c2f9dc63d4966e0f43eb6d30f81ab7ba4cef6b7e15b6a9273766e8b1ad0fc0631749923bc4261bed48b01a7269977f7d4af65b69dfaa232e19da2c815998fae81771fe69de411658963c0bc94839e274cbe707e6b592d00847841b6f814b3df82520f2438f62a8b44b1a4b3c103b437729f4cad1ebda2acac8dfe1d3adf7945ef50bbdca98bd55193833d09872b7261b126943c7824453bd651df01cff1449224c5b2224fb6883b3d856fbfe82b49a8c74ab4ef8c330fb9c8f727ab6c7f23c4982d127ad7d1e2712d76da5dde71db55d74ca253003c618c1451aecab6424b7efac8665d45faefba477b273d3d59a2d7441285529987d3c172b87896e149cee824b228b18a4b95e629da0dbddae95b4f8829e0906ac1aca4b362f88c5f66a4734c07560b4caaacc80420096085bd180f24ae6caed0bf6dad7735d0df7e35920bec94876862d64c23239fc4c8a2740f4676b0b259336726409d1f3e30b852d6aef961afea808a660a5149f6e9edd52e6d17967c4913ba308fe3ff9684eeedef2a6e04d13cb939b1e71bc038a563506a00efbaf74ec9f4dfb2bf4f5580910cf6b8ee0ea6262a1c4faa0fcd98a1266d8a6a1bf7122c413bc2bf95bff6b23adba667b4c5ce0ed43426769e9483ce31cb9326612d7c68c4e07d5b4a1d6cb28a014264db0477f18e14a1adc33b2a6f8400f61042ad52923e87daa5a88ee5451495dae8bf01510e1c5d78a24c217a5c2b511d48326e4ee45cff9248029a6482b4c4ed86c84605f90acafa0ef94f5eef19f2f9924ec94d70df1da0e09e06e416a70797940027ddbf1f97914fde939228981d456188f55c63ee13d03d6e4b153a58a1f349bb6e62a2186147ca1553c389de077eb66833ed61542734bac8e76328169dac4824ca69065a305dff8f435f435ec03776d19ea41f96461049df8d5d7e27a27a4bc375062391ed9e31de9a2a761f7a891262c33f29ca3b244204c378ac476f04dde352d46f9e9032d486e7d2df0a00e4b7ee0c50b9b4e2e1a30cc7e9587ff2537630df103360d4fd5ef70e92201eeb0db135f76efee2f2cae9b9507c1fdbde8e688ddedf890cbab8b7b7650c089f84d9ff2fec4b30ac5fe4cd348d5dca934c16f39d27e8666aeaf1c8d331e6c6ddd2e298a44566cc972659900b8996d634b597699344bd8937d2a1fbc576f88be825f95f171424694be196c11b7ba223e1417a121f10c6c6d2307fdfa8378b0f1499eff0700bd997978eee536ed9942ee91f97c8e8d2c0a994b30e13180abf4c1e603fea1290b8f61fb69fba8e8e3a4e703dcabd5da00e6ac51148549e324b7db28d98c4a024af5f1e798a0034708902e72e0569f738072cfc7ec595a1b0f8611fc8a83b084a18d5d6850e823be9f79ab09a62b7dae46aca5ed426761366b78e9eaaa82301bee3fc0f015871820a6ea6a2658978596020db80c2ab78b196302710a7245cf332614d072683a1e39150047955f724c89b801e5ef9b1d6013b013b77438acfcebc82bc684f3f9fb2afeb742766bcc30df5b1101d363ccf4dc4b0e13e2db2c302b79f5734858eb58796802ad60ed5d6a92bc4be5d60b6f1186db88f55e4aa43b0b7c90c0bcee34676d8709e9b88f186fb5844c705d6e726326e38f6c9789bd53d1ee491b8bb605dca3df93d29729c5199eea70c6f291f4fbf40d2bbc4dca3dc87de4e66d8701e17996183fbdc44c61b8ec7263a2e589f0bd13614bf5013a9b96286e66f19b595a42cf3553c067bd88fa8300d488ecddd26ff32d26e3c19850771cac1b4f5c85fc8e1d1ca769cc729330ac20ab48e26d5b310d92395b915e7b38b4dc4c47664f9d9076ecf0bc467fec2aea346186b676aa8296d115e4d3a836aa6ccce5d74608e723a8f79f64cb13cc19d2459e86dd55e0790c3049004fa273dc714b78286b03564866c1b66cec7d0ac20b30adc9925047b18f38e87e59ecdef7c100120a7500f57c490c88a50253fe1aca112a4d0c9be34b7d67aa1c5e33f06521ec8ba8752f052257f4df11ca72c29f3810bcf0c2adc31095b3b1844f6808db68f182429083e1eb1a47a3e809004a313ba2be4055657bcdc287ff418bf903769127ecdd4b1f6d5654ad1b835dbfce121f7620f090566e2f61bf063c04adff46acb8a1457e9e85ffdf6bb11e4f388e9762e33fba67ccc897b90d57e3c0217bb9c26b565fcd64f15be28f45245b6750483154a89ab8cd1cba6fadbc948de4b19fb8d48fa3ed2f8d94592f353ac6d90450ad4ab35abecd0dc41782e45df9b8fddc325f5007d455b1f5d4f78f49c9a2c87e82b001fe15a6150f8dcf424ce31b7f450023c1c04ca5d07aa54209c59a531697024693c866038071b3992e1e13b38c489060ceceb39528523cdd0d598d19fc4836bc4c56a9e6130c4ab43a2064fe973bea013a006a898c0442c940b76c0108ffe2684c84df6de7bcb2db79452ca7e0a990a7a0a3d8031d74099c76e870c8dbc8750ad239b748d18e0fee7c36b5c0367de0318b50f79c7bc46d6c1b42aefeb60dae399a1ea33debf2c6f847720f2f762be49d0dec084bd47edc57c08d53131c79937426835225486252f2653727ddfe782213328f9b81fdba154a94ff5e9480d0384f118df67be615dceccd430fe753e603cea19189ccc9426cdd0a272aa0b7c5d430a3889d9f23257c305de53ef96039111d6304286b4f10fdce1b23342c679c0d1df3daf082bf0bd977fa00e97e071a60cd5e93ef7747a10df620b2f71893aea17543d7642788a80775c4a1a8283e640cfd5aa5fad425d7554e691aabce5bd8ea572abe481d6c8bbf5743c8bf479a08ed76dff406bf4814d5b6ad6b7efaa3e90a5f23ef979e0b7e379de69bc0c44fe6a9a1939f8e22f6f499387503d23077006b8c3721adfaebc525aa4197a8f51e67b8c32f831caa01ea34cea31ca704b7c40cba7c00d022d8f0255e026a29968a2477f17dcb98f51667fcf6ea94899add20cadd54294b1d7b14851c63e46992cdb2934401eaaaf94f22c295966fcceb896b5d363f743d6f11199a0679c7e7db66a9cec71280b8c3a066c7d06b479cd0d0ee0fee9ae1ebbefae2e86610cc32e60d4980be6e2e2e2e282b9802011ac1e32cec3b70cef41805336d65bde552b02e2cd63b5771bb9824074c83c56b37af07019e72103f13210568f1bb5976f96711eab65646e8640642d688656038a9d4ecebd146c0a96c10b258353db294bb4892251253b05874a6b846499664be64c8a9c4273062c334d6a512400c48001aed780a84dcc84b18fd1360612bc6fb4e522d2b66d5bea2914a7fa9d2d897f3d0f0712e0efde77205e12180c329bf49783e024e16da728cdd6bd8763b4c5dbb66d2814cd0ca7cc96173343fb07cc50891926116493dafbaea40be9bb8c2e295791ccf738d403816c20f5efb6c846b150869e5499a16d9aa1059aa1ad3fff30d3d20c3dcef38e57988b1a6b4e6e4ff4a6a3111884c090040c459ab22ea7fbe6832eaa48cc8a222a512a0d6ac28e20b93b529fea41668b490930c8129649e42033b45913130c31209135e12a86c290a45d2f348d07435d3cd17ebdc88ab6228c9d243922b32229b6560e632c8310e48529d867b66cd69255fccc5a27a701719cbc4288a5a4c4791a5050d311ad88110d098e1ee0ac69b6bc735e1e42b5772e5ba469a784017f33b4afe1026fa933a61cd280eda3de764a5694fd5e8cb328f790700861a937454202cbbaefcaa3ae02371345520f325bde29c86cf2318da224d9ba9cefde26cfa34af843c2db4e89d1187f32cd963cfeb67f59d1f70f23c23c5951b4f1839c91af99a1dcbed578db760972d976395c46628616f56d6997839b349da27e8189a6b01e20cd3008691b913827b4fd765d17898de3a428f28cbec0444a27db398e3be50b6270bfe8ba4d01741dfb53ec3f60b654f96ecfcb1669d73a455b273737387086e0315b5ede3180237e2c60b658f231266c410b1e3b97bc7bb4cba54ab56ddbb66d1be5228abb4ab56ddbb66daa7330ba9cd453e085d1dd6f3138ef5891b88625d618803e8f22c9f81683958ac14ac160a5b655972359dbf77dacd4d6f2a536183158db9661c460b1c4d8583158dbca114610c0fbd7e578386a7a10400f1ede55a96dc7e3ca895879ceca6f565eb3f221567efae13a7eb8fee138405c08209e0300403c7ba16939a6ddc60e3cc8c83980c7a146103630cef21cd2d82e18412530f09bf764d2ac7f20eb1900b7d419380acc00c8faae9af2fb64a82e43953fd555ff529feaaa7fa84f75d53f2ce3535df5cffb5457fd3b7daaabfe759feaaa7fdc26a3b601b3f25dc99b32d1df6d13fd7dc713fd9d0822fd3d278afe7e23457faf31d2df8778a434497f0fc0c5447f3f35d1df753cd1df3591fe8ea3447f170289fe9ec388fe0e80ab88fe9e5d3ffafb4b15fd5d0726fdbda552a951f4774d8afe6ec3487fdf21497fe7e1328afe88f4f71c9ee8ef6013fd1d87ef3594e8ef4120d1df6daa11fdbd558be8ef2cf5477f7f15fd3d9f497f0f2915fd9d460640a9ef77254019c70028e3df637444482d232eb158fb465f792f90f7b5404625a1aac00c056626303373798b840f12f0210279afb40f3e4020ef9b9b07e44d43e380dc802c19b02d6053c0b60991001904c8fc9091b97cf53c2f1f20c60031058889b93cbd9ee77947cc30620601f25ee919332e8bc87bb51a40de18fbc83d9c26cd902a65efde98b7779a0452a5aa37115db500f2be1aa647de58c3f0c87ba561602e2fab46ba38be6f47fe4ec4f79cbc57df6fbed77c1f227f0f40fe217f3f7dd791f7d5a7ef3a6fac4fdf71f25ee9d37721f25ee9ec7b8ebcb1cebe03200391f73ca2bf67df5ff25e69ecbb0e79638d7d6fc9fb6a9abc6593fe7e43feae7db791f7d5daf71df2c65afbce43de2bad5d7edf73c87ba56bfc3b9837d635bee390f7d535f2f71adf83c87ba5593e968f0546fecef2fd79af348def396fac697c0ff3be9ac647e39be4b8c74e46a6d1de25c62a8cef6e427f1f967fecbee3cccebb04ef3df9efbbd2fbc0a8effdbe7b3f0fff03e53db0bb01f76bc01dea4d9168b0d4d0e409dc1307b86d133645dbcf80fb36614eb0a67be43ab953b4cde10c6d8c16e01828c0dbb66ddb864a654a6586962a659ad4f202bced9428376ebfc5896491b44dd27693dcc792b7bf01b25ce5fdc3de0a73b3ce90068da7c03b431aa963ec799ee7799ee7fdc338f35ef5d5ef7a75865ec6efa2ee421a4f8140e4ef258dcbae87cc5bea1a1a076233b2989428509474d51c45da7189224d1b898325da547dea4f059a2d96b6af45c820a4ed6b503de25db9c4be21c28da08b3664a28c7db723ef76e29250c2c6278550187bbb86ef8f491fa5429754aa77e0eed118e3eff88e73138d3d0f67a81e8dca54bf200eed642793f0a487bf755d0e56750340799e8701d9c0a7b2968ca60e7bef6e8d89b65e685968fb2d25b37b208dc6a44be59828630f0035e0ecf331dacadf4bafcbb92cf816cd96d4fa4a51a236750b560401613ed43651ecc86c5dfa46992d7995d85f26b7c9b4894f88a6cd6dcbe36cb9f94d824599365787b51604c1c7d9ca39e79c430e39803907e92381ec85d82f61bff9e06da76c0de88fd4c6e691dab4ae01bdbc6840fa7bfdf00e970f02ee7020608c301bdce113a90bf2c654b25366eb1332436bc333612c11d5ed311f1ebeafd68187ebf06d832a55f6eea93a144aa55209a136595184b1bf3632e6e19166452850256997e37d47d42a1512570576a8abba3cbb2067ea0cbf1c67f805019e3eaa34c3d0623f58f51d9784d0d03665556eb4556d373b6bd256850ae2f65669b64eb7df8200a37672fac0cde9efa7d395b243fd25ab32438bca59139319da7baa9d1569fb2e855281144995c37779df549e303779af346aca84b197c76eb8e106796befbdabd52a472a7db7174b298538cefc6ebeaf5675aa9556a9f2feee7dfb40aa4493502045fafe1d9529128cdfc07807e3291897af4ad7ddad0aebefeaefcbbbcb546986f65e8e49319ecafba2f2c65a3ec65554291a4529f243b0582cd6bd4f1932be6b768c967f89df9ffee6f6a506ee0d823190ec3d469b9d638471b987345b3129b6bccbecc8055fdb80b353a4ec87a2b3dbe48d5b79afa61c2954a241ca3e74a1c0cc2218a11e96f490f590bd87a015d08c19cf3ee3d96390629462322f931992c92e23b45a82b3c799dd879999ecfbea99ec33df36c9a1c0a41e9d0a4946a7a2a315ac40efa874144445efc8a483deb149fac81fcc5e9c0b19f0e6b8adce1612b2cbb96497735d970b1bf04a9eea4c5d738e1708893252fb62d69b50dfc4e01936a1298d51561965ca80a5b5d7652da8e3812674ccfb3ad8ec8aa0b7e762949152544cc5065398fa4884a3469f3a21d1c6f5f858a4e50f1e9502e1ecda37beefc0ba61280ee38ee238148771200be3384ee5795e87a952e0cb6c6db97e6f67c22e3b5c7470dcdcccb0c6cc567d8c4ecd0cbb19d60ed4e9501cee409a28531f3b7cd40d2f6a3bb7791bca035928ec75d7167ac3a0f71d8cf1319c8174bf1ab3dde9f52fa7edb40da1dacbbbcbddb6a1b663dced26b6d309fff40dc43f6def3abc6d3f755bde4be8adebc09a1976df36cc71df64c7dd9fc0ec1da8e59a030863b9e67801968f2f15cbd3d16604107aec98c4b04c62d98df11856ede763ad18f69d017b8a550ccbc0d5a7259ea1c43394f1d8fc16ed1541d615af2d268661d89cf931d8e2593de2b1ef88197bec248b47d4f13ba28e59f6c8e4175a767746995dfe7ac9c09b1de08df5e5224ca40fe3a402a5a794524a29f536fb5965b43104471b435a515f15dcf513bbea0487b07a5c5f40ae9e9732e62157cf9819d210aca11ce8d15367667a1e1ace90d2fbeb185625c8aa576eb123a594f23a065e75b68eacc842d30b0b560feddc77aa965ff9f69dabb7cceaa1e59da9b56bd9877cd9345a66387b0e850103838161dc0a86ad602b2b2b9b5d59b12bd6dab9d96ff1dab74d03770634eea78ee3ee5ddbb6ed3b0331ca9c7488e82d6acd88aab70ed4a13a7ce1f267185d32a0e33243b9ca563929969f607ce51a783a07aedc03ad8efc42efac5cc7fb761d0f706f426fdff1320fc75dea2d6bdf56bc98b73cebacafc4f8b6ad9c3818e7ec61803a1876ed2c3006b859e287500de32ce010aa87501dac857236efac1ce3f24e3c8c7cc272c000efe48002ef4c1fbd92ed37ee94b9e3500ba6e835303b4d7dab9c0666dfc0ee1c78dd03bf55f7ad8bdec93b7d6f39aae5fb5abeab54dfaf56a5be96ae6be95a58f210aa57f2fe52a9fc494d7ba6693a3161b8a5e6be812eb3255d6628755ea2cc0c25b7813adea93b07ba9c3bce8cbafb09dc577779bbe8196ed77efd7e7eaf2e07b2384dfb766d1ab8afd71d4dd35eb50ce4fad5f592d92f96af4bc392ac26155059c29225347102cd0a73dfe63e39642d76d5c97d2e3374dce2093c7809c3adb869061bc7e909fc4049c908b010831704a1005b90c112bc6002295a90061d554aee092d54e10c5f72a882d4215f335b5ae8797b41308234ac01094f0ce10a31f488800a2bc4d0c5097450822428d1c113aa2b32010544b0420a82f47cc53d5368b194a44a1884a430041d774eaa82253fd0f543cc16cb8adabcd0d5cbbeb979a1596e0e0a310928c037006a0157f3478bf8405b830994b060c262e8e6e88924444b444970c849eb55136dcc9a30c4a163bc94f82f35d126d43421fac2588499bf17637a6e4ccf706a2ccaccaf44a1e729886378d54ae75de2ba64b04df9a32711243c7ff444d09e45922899ad8d0b473f46260ae22c126dc89700c974819edf9aa8cdd44184999fb30725d0b3669c3973055c7fc93c97688179e6925b7d70e444932327a0a0e3911344d9d091089688809070948591578790393082f231640e70e4a20a5574a41e3269ae35ca7f08888a36e26a8643513889464f28417f2f53d0f1480746b48f08e4ca3a9907067a1ecfc758e91496ea911454a60da878a237a763666be3a809e7910e8674d5937bd93c398487a5b10c24c7194a30c66e13d1f53834eec428c373b5e46247b30ed5d61ebbd1b36686f33226c4f2cb0ba5465cef9e796405152a189c3892828b2329aad084232986848ea448722445d091143f4c475150398ac2e8288a291c4531247414850e8ea24872148591a3287e8e9454892f3132b17e54ae72ac1f44ecaff7e8e0acad60d471d5f923306119e796f5ba7ea30858fe92afd8fdb6657b1d4c5f35efebd9eb6f1801ef5c5907abd7f2d5f69a97bdaeef20b65a70535d7f804319b0ac486874ad95561c39984cbad6195188d3059187d3e4b5c18f3f62756fb59279e96648088501e5940943ed45a9a4d566944a4a25a5ac2b289885f30abc2352b743ba3c418a909050900c924132681342572b8c354d4382ce2761ee5e0c09f8c3576017a1d5696e441092489044194a85acc09812be251c804d848e68e2049f2128358100543f99bc50c97b44103053128c238000657332e7bc300c2b82510d1db7e0c2099aa611704069e8620a978a2de88a6475adb5d62a251666626ea0810568a09286199c410b5d6dc0244509509460d4f228bd04b7095eaf20f7186db0b6cbb3b28e07e49bc83cdcde12fb85cdeb5b0ed532aa83657bf9eb79cbec437ea1e965de4df86849e973c000ebe48002d3cfe78002ef4c1fad83f5983e3a93f4c98605910ef4e7a2e978640594592f28f00d40c0f699656beac70729f0b6623eeaebad97181c1e3437715e61bbec14404ec8261d565c27b480a46404c8091d9be46c97236f702290375844406380af47adbd40c7a3233fbaea4d81aea424e2d10b90f4757d015794a2afe3e801de21bfd039b5d68ae51c39c0352f073a92d248b5fed1868422ca8026d0d76f705d062816e86b5ed7210d18bbfc9154e674a2e92fec434c55f42cba2ea34c7a09b494a464b422924fae6bdfe82ee733bc1ee58d950874cc5b3a01ba8106bcaf9393fd88d9ea7e7d3699e1750e944da0ac32e7cf45436d94a030d7e75711ca7e9c3efaa241f408f5a140d72778159930d78ddc4b2a019a6195cfeb18785d3409a704216d1f23055803a230f63e9357de9b15b1202235b1e053dd8b3d0f63ad886a6b419a06ef1e0d84d49bf7ad722d30e636e08c5212d2142da5783987bfabf03747247c8e5b5dae56d735f8e2e7cc38cedc5840a4b2829012fde968052114e8aa6fb44bfd1d2848c72d846ae86854021fad715d8e8ed4359756684ad276ca4dc4c1d1888948dfcb18f83031397d53a41b820038abdb81c36ff809bce12c70e521c87a0d28f5cc71260a7516568ffc98e7c77c26cd7047751eaa4f11097a73e03b22417fffb2fc44ea8a90bf7926cdf003f2e51865eef74e133e9a033d95db64773590ad23bfc0d910acb36caf45026dd2e6408fde760b51c67e6709bd95d01890bf9f760abebceadf51f84b619095c22afce1abfad557f50fc4386fd53d0ebd7ae7de8b8f3353bff252ab0e2ecd562a9f5229d01a71975c2adb63f6d6c852a41498fa9602f77d6a27751eaa7352f97645603af83c52c78e0855de32ca4c2ab3b5a3fae9f74266eb66968f7b7c7cefbc792ecdf0f41b1aff9eb387502d77a82ec7c51883c5a12badbcf75edeeb4a29f19555de7bafbc14e61246c2c87ae594f7ce548e4cfde2a7fe81f21e67721b07eee870a047a778f0a5be9fcc9b86ae91f754d2a7d7ce081c3de34266cbfe763d34ed31dac8e1da6d97a3e5fcf0cfd32795d99af1d3695299e10967d660c939d98990ba46f61a9f71acc2ec55e9fcb20adcda6b3c72a047d7f80702f9fe6935b419c7cf8ee2bed2e5701c0ae4ee81292e750ee5795c2af5ab53dc53e7bcaf743929cffb6e95943ed5f77ddff7a93e50e7537daaabb4d7d034952a4369282dbb2a0fa13acb3c4b08c902efb8a4c9b4543dbccbfffb9781f0c8bf872f31c36e478cd390dd0e1fcef21a34740fdc6b5cea78a0c69bd05bdc22970253cfc0dda3338afaf71da87fefd19e07a382c93fc89954ea383403332d2b9aa10575302eafc7b0df1b7f7f332bcb3d6acd31d2cbeb170412842ad141a8124d8f1131d2f7a50a8edf2e43a6de4434cf8c446420f11608ab877dbd8dd305cf30fee745639cbc5e5e7a2e29afd8e20b76ac0bb09d7b03b477a7db0feddd76ee4f68efdea35905e0eefd4777d45905e0ee3d01dd518fba47d36ec79559ac02703f3d01dd533740d4f1f304f7d39fe89e7a8f6615e074ef093865d6f5d3a30e2fb364025299759d9e80eda7cc84153f4ed7ce84f7ed09d09e7a2a3371baf6a80385ff633b26e27dbbcc3f3422a76b47fc789988153fbc9f7eca44acd8539c6e80c804a630d3a330b6082a70d471ca710291bd3bf7f922a8e8f2c63ab6ac650a6e1ea9e92fb8eff7759eaab15b70ef2bf3542d6486f13c555f322a8534338ccf7aeebc9ee0d058e56c3a9bd3774ccd8d9e77fe14a3e73bf0e3aac681c3f6d83981b68849f99937f60b068c1306fbb67903a106122f4f7fd14b196569a956fa6b5f17fd453390eb53dce3ccf94d98fa6aafebf2f53a35e23a109a63fdfe5e3f5d3f5d1fedfeb49dbf0f1548b8a7f4dba564c1a463e828258b29da5acbb3bdfab8a79714dce6f52d5fe0cec523f53c0edee97b6a791a63bcd6dadfdc9e728cd8bee6669a61595efedee2d0f638eced83f0a03638c3ee6fe48d9a38636f6b70ccd0f2a030f6f6a4e5731967865767c4b5cc43ccd09e4786575a461578e3885166de7bef2d906baf7b5daf97bdacb5e7612fec5a6badb5dbed66efbd9f3dceeee5e132062cffa205b637bbd5f2be36bb17cb36935d0feae7133daf45d1d7f64bfabab1c3735f7df860426b5afb26b7cf9c1d0379a4c69e81d8b6a7bfec29ad55c0f6d41e08add117157dfd3202bc17636faf70d82ddbd3f6147f4f4de38c975da7988b32d76530d9359afbe66a2888136dd05f572203d146fdf59ad962a57ebafd95ca3e429d7a2ac7ccb03bea3a0abc33ecde592b71d0f61b072d65a453eabb2335b823f5e6f475cadc0cef966b8ef3bb7e5e4066bdbcf557be33bcaee3e41ae969cecfa9695ac6aa8ed71481c47159c2f22f5ae01d87387943eaeb38bb303d44c639978498504a290fa868aebe1ef12049d75f1cfaad0815e0c9fd2fe1aed9b6c9815378c73c4ab1de765c73af3357fa24d22fbed874286a3a1465ca6c4dba44ab001949c2c40991d16c4da6cda34fe6af23a122fafa5684f69a77d6dbbbebbaba7b77b0ef9053d72ee794639cd9db3b1f4ce8ebf457ded387363b1fd7c681db3b50eaa8ab0fea648659a3a101deb4097d325b9b8f2b5327790f915a08898c38930755f4fced81b5bcd6193175247d42911065e8b74b4619afeb548f3399a044177dc9026fda8436992df979f914e984b495367588c2d8479a04bf0ed93b34b4e5d0109cd056c72d9c78a1690d70a6e3164e98f4ce82a20df9c5ce11f48e0c8a32f643f2089d16783f0bd28292686d89b6f7f69993a299d9ac69674bdaee4c69cb11c8c2d2146d7304b2a03461a28e4016906e6e8e4016a64c98a8374d1614946545d1863c172473ada6106d6484b96e8f2d451bf2f6d21b2bca98046546a28c3d46866893b92053420335687bed905074cdfbd2b5d2199348c1f6320bbcb9202c098e437a733a6ee1a40bcd05519ba8e34892d53927349b0bd2b60e05697b6a037c6d73c044ef3a04246f98404219724294a997a0842267ec65b4918f36b05b6bed81ecf78d248a32f660b4915848d1f69b26c2683b24ab30d4096d546cf125bcaeebbaaecec7bc7df571492568b7d827d8edcc77d1a2ae6fdf11f5cc3cb4bbddcd3a4bb58b59cc468baab78ff64a9ac5752f25a4123bd3079c57df2bb1337d349675eec533e42490186594b83ebb9c3ca79d20cbce39e79cb4a8ea38040591a6a7475230696a4f30852424e918436c0653a0c216620c37114dc12b031c2eb862583d76ad9967ea1b84d3b4c6d378b9ace84529fd32beea75d54aa3b8d49f115a2ff0dfaffa4b673abe5015dc7e36637a84b638906c4e531a2578737485e56f35c378ac9e52acee54bd6d0e42a3afbc73759059a4ef0ca36c5b74d9e2bcbe5ddfa4b5d82f90e5a37e7e47fd7c8f9620a597823d3a823fc8190c3b0ebd629674088d992e1182a78e4749c6d084a12628b5b61c25e0347624851a743c9ae2091a59bd32ab1784628b073980e391122a1a4b92a2f78da2e391920804bde978a4840a2329f4008b2d96b08082022cb0a0c20805462ab8a27eab4135a8d649275dcdb0ce260a529ac319d626423757602373733fd146ac3ebabe65c96cf9f8d49c2934c37a49af4f70aff49c73c65f93eac85abf4409922345e6cf0cabcfcc0a700d9af487c96cd553214a8526c1a7aba625548ccc30e8861ce03d9be67f6814d14610ddaebd177359aa4015899417b340b548ad41d486364d98fa5a839a6658fff91d7680e3376d8a6761fdd524f575497d0daaf5f5744ecab20309a4af22d7cc2eab3941cbb2b6064d1b1cea112542544032a512e9fa18a46badb542d1f5f69a3e549a68954a9b668c22aac091496f594402512ab3158f5a50045d4f9766ab075d7f9304bc71e85a830478bf6c1cba9ea6e945d7a0d99a79474c72679199e334325bd347d7223fb3e5f38ab4c2a206529af00305ca0b8a9be114f6535c1f228a8dcd341346a29448429219464d23030b637801175b54818426f440d10428b23872032e82b2107bb68b8e314609801de0eda26538a7b8ae1c274c7c9c790771d134ef1e1e534a9c30e09fdaf414914216c0808619a420076dd011230a3140c11580808318e040873c5ec1bc006face5a56cac784d739a15f39190918e47425dd09f0f5b7c39492d84e80c8a6214cdaa354e29a2e171846449d3ef68742d214101f5905ae0053d83254d5fa75c7db6b6f79140ef97cf8e8849b5fc0e2a4125b0809204d3a6284327d214020b7887483426c481a6b3882a708ca2a378d1068f2823ff324349857a700409141f263801827b7cd938904584d556637a660b4c2f3d7384af8fee34b37ad05fbf7af4ec7cd85fb2bb41388d6dd869eed13354607989a4d3e9317508b40e53e01db1eabb9d03a90e220b7c5d464e0731e00d4abdbd6edba38f2cb2ad2009127a6486318c3733acf5528ac3649a55e80f2d22c52889caadb55621eebdb6ebba9a3c218a52a79189440913ca5465fecc22ab9594721caa2492516aadb51ad1f1d7b517bbd728e9fa1161e26bad47acec608b2f1b13d2d8e53a4e4aeed4da6aed49ca939452cad329a5d4c3286f568bd92e47757b64b6568f2c8fa74c57c76d5a78830327f5f83dc61f11336db02414664e29e08d610b142a7328a9e547b4994294a5e591a56509bd1263d8125b5856563eb056012f9f9c54ad72f9ccd0eb01c95504bc7c6a95eb07bc80400dbc8c5c472e24579224d4e6523261e6e7c5444f8ac306b58a94da74a336e9f929b45a617cd58cb5c88d044ce8b42e6069a49243d86a0a3490925ad1605bf2692c4af8410deaee4f350316d9910bb8e03531a2c404202624118205404b485a420e596badf5ba7678a44665a817317fcfcd56fd9d2d904794c95047e53ac32cb362c0d0029edf2edb81a713ea3be651efd1d9bdd9bd20cfd45efe41ce74dd71a8ec7262b4b1c37dd3e1328f0ea6ef0d87d09b5958ee11874ef2a2421a99e18c4538f40824662b820fc84a3f662bc6c7f898048e1a29e5794c9b1f1346f29830b2e8077dfd8eb139c2c8843962015c080a696e4082378e01ccdfc963b6768c969f3169882a8d480cc36c62167c92104224f2c66d8a826cd2a223436d6a83bc24b852d08288c9c0de209b0213929910f050bc45f1520318d44006a986a6117866a0826682983222af14d80e3220c46a04799350e912d6e084fd5fde881126daaf74de2b1d658e6ba882de8f99c618bc2d52979943abc5ee10b2f82c5edb22ae32d21863fc29fee451c1946a434ba0a8549492cea95ae1e6f7adacc815d5e7adb0acb0b0b07caa140b0b0ab3b0b0782ca78e858585db81132757c0f29c8c77f980784083a650318be6123953a9dc3b97c81b52044e4c2aa6ae53ca0b943f3548ef26f49583d802debebf4bcab4993e506412a62354928c98a077e4a5f273c95c32e7923997f878d1867be5f2a530f2df2ddf38e8cac39eb1d14230e154d41571d8a6156545b7c81645219a4fe612fb226c9e8209ee0bd84ec40ac971d866ed76056555aed7708b2ae87a1f11a65e034f7851cf70430a5ea998da70afd740b4e1b20c9230f5abee74cfd0e1e8c5964fe81a65ea751803aed775096e247028cf358368432373a08dc81b432e0c62ebbe5e06c91bdb10f9026de3faf7d434d4860b226f6c59c619fb0a0300ba62b9fec26a0cadb5af76ea6b0c5b7c89db05a30e7a23545b7de549551065eaedbdd30688221cd61805cd2022680ec98b26bdef0515bd63686eecd5da540547666b4f2023b3854dd1b5057a735a87d57b02b541efbbefbd2eaa8268c35aeda3b704aa416c015f093475c46e074d5293a68d19f4858e6722de984171a6fe4c2ba524a94424dab8347b225984e3352e9b72726609b59948268c0f557299e026ab279f44e1be4a5249092bdd70f2061139537f7343431386bfb9b9a191ce34689eeb52c7cec7d557ce3583a4d20c0a0a0a0a924a92898eb15e2ac91b520771a61e4a905c1214ab0083aebfb25cb2c309b0f62d97606a237d284cfdbdd8e786dac8259488bc3183e44cfdcd0d0d4d18feabd512bca48aaedf62b82b95a72cd0f55269c2d4df8bf16a257da8cd466db62c977ce37049872f9783e435108aa432b3bc6f6ede34a1a639a8c89e3fb28aae5b2af1601abb6562bbb600ed44acb8f216bb1f5bde4a68792dc84a6b7716a5d010d402a3e51bcb533daa6f72b55a7d47d4abf7e816705fb7fc035958562d2ce04aea2c2b991a41cea4a6e854ec7260d07cf33a8110a2cc7853a1080d01bbec89901a93959e08a9658e18e08d5f70e49b9b1360f9cdc92b6cf1a5d6fb0bcc41069cfd77fbc65cde9f8b96f70b4d261a0258b91c62c0f1db9c34d61a25a5550a6d9b272308310a94254a7e7c908c9e3839628469a9280a9325403f4948434f901c69629252a46962a24cccb2280a932515a8fe24210d3d6962925224c464022925110d4924559aa28c39bac032e7e802c71c65421941c0bb6687d45266182d230817adb4d2138d8d7462f2559faed8ece34b0e31606badb5db2bb8dd8217af2abda1849ca1df52dbdbe7e8025b2e8e86349ee7416dae12f2c68b9ca138ef153e752f4a1aff529bf045de1842ced0d39d92ced36e42e31c24ca502133a40f29fd10dae90ad73df58ee0d4380801d74f1d395d71a646c562e740960facb1638de520eb842dbec44d9b13dcd793d2eeb1a3dfc01e4db58bd2df195aede61d9d2534101eaae73ba083e9bb5d9a37f6edf294eb347def14f466a6a0774d6a39dee93894fbbc36f34d02becf2acdd5832f7ea5896661912c97d0a68a519e464bc3166d385bef75eb39f0a73b09ae8393c736dbd55b50de8234f4f5dae55cf49bfce46ade2b5df78ac33a1f34ba5ea0d49bc65da0d4318aa802ebee62601155e07a75399603f12767ea3b9025d2a8e7c0964843ded72cbb1d3773395279d50a047add9b652e44ae5f41b24e1dfffa02a84d8c0711325bf8d779660b455313033c7e9de19d218bcac8ea2a183060c0788f4ea5303e8cd4339c025518e4b9744ba62c9033aab3807b22ad807586a97f204e695147c4f7f04f8fd306bf7b89f81bb697c7a11e780237deab7dedcadc0ce5cabc7cb04579433e7eca1bd4e63e3ecb1bd74118d1e6d22a5b9f61bd201661e43f5b5e0ca38d1965e461628bc650beb668296fcc70873217216fb07a9c7ef185c6f2be7294337beaeb51ce60c7729433d725101aaa826dc3324629a3c5ae8a7d1f12d65dce5de2e2a2b4a2384ec05fe1705d0eeeba1c7c1c2778435866afdbe18251a93929a594c619e565567541ea18e38eee9a1ee8c98a44115654d4637751b0475f28ef3814e7cd7369ee7586dcef0cbb8c653b6e8e31dc9996b2d3f2d7d5b24641131313863434d79448312f61181323915c56ab0db80471f1a248c7a32d08e9193a1e7981031de7e4f2bd0f982d6a9342b2f9a945b6d3f3184052c806299a1e89a96577c5b14053ba024d1fc309436d8ae0bd5a42dbd39f9350151ee8080ea91a48bc60a46818ba78f59006078e9b9b68ed3527143717af1ed6d484f3e646326d5b158289104ce6c99373caf9f2c939e5fca67cf9f0ea5bb9e04d0826785e39659773a7cc158be9822385c96a328560327392a7d1b267ca2f0b3597a6a6e6eab15332dda039c484a131f57da3558f9f025f5905b2ec59dea3e3035956f51f9f4a75964ca4e5aa1361d95020cba6525ff98fd4576ebf82fa2a136939ea44589efa00660bcb74e5fbae58be436d7f6ad3727b18ab1530529b23280cbd1d000fec3b120dd102b22c0bc8b279e707cb5bbc1b20ea58794b264284a54787107aa24b8f3a56ab1c75b49cbe082af0112d6779d90051470b0d0bcba50e964cb3922fdaa323d24861bc7c04bdb8bcd167e0beeeb532088d8f152aac4005971a62b62e9bab036719d44d0c0b5b7cd95991ae97d8735228ba64b6b8d323664b3bfd8f053c00892472126a338b264cfd5d8285564e748664c2d4ffab15cd9020b94b4d4a4c9b29a462a954f6c8d5346d341f5b64b6e2145d89d4a0b7fdd11507615185de3648572e8890b44d6297e82a0524bd2d135dafbaa76fdf37238a92412122b2452c10d055e5aa627f6c065e55ac4fa602f7d537efab4a66bfafb350396596cd6be55b06eed367460465b6b4d76751664bdb3b22ceaca1822f908b32f217ace9025f4b5c2c0149ffa023174b60a2b7ca71e09572a7ccb07e05bc4633acf7c02154d3638baf2ad667da9f1468816c9119da206b64c2d43381a244578b44d75f3b5c817398015f4d2be0a5022fa50f535dd5bd2a954a95c2308c1ac990644a668b661bf69b05b3244832243a2ff3ff046394a9df0cab8ecb2a9be0c5b467e0b7ca8e33a3a6b5bc3fac618d5e0d645d6d6a543b6519c8fcd5a76e3e43325b493225965a8abd3c846a2def79ca43a8ee32bd9aa80d259a30f5516e7d7dd2114da9d82494c92ea155ac50135194eb23e50219dda0294a982035517ab2e4e4fab98a0c5d46a0e80b498db39e4a12265dab0835111961415230a0283ebade4ea1f54f967413252648f5d609b589b31e49911128ba16d1f5db0ed12433a44a264cfd9355ad4c7455229b6ab6b0af268d322a2aa236575384a9bff76aaa2b3a5ae10918e89937be9a743da5fa6e48d97b304dfb8eeb5aeed13adb0bd0f319d8a36904e48cfdac9666452a29038ab458e6b2da929249fbb649596586b20908c788b9882af0bc998b571122510d0e1c7ac244a24884ddc0da7b319e2e2e432e9e8b8a6ddba9b56e3c52477073bf3bf53c547797df2e8865ac006311fbcc5ce6020b459870710524386f18dcf135d67c75cc1ebb3c84ea0ddc359ae3b8ed24bbe3efe88edfa32b11af4747ee15a4a74ee3327a73bd78806bf482f382ab919badc8b4cd4b8240e8372b0ba327a8146c36c6494f3a4633020080008314002030140c074402b1584022e6904efb14000d919e446a5295c8a32889611032c8104200310011026004606686360a005791f4f31708fb58aa0be26e02f66a31dc8bbfe7f2be84ff9c8cfae989eccd30196bf545692b21f21382330332f6d332952fcf090e03d4d5055baf0be56ac2fdefd79b951adca59fb98c52e90f893b4ac679cb07a483a1eb8bf22debd4e5ad88919e123c0ca95b17b6baae566f1d2b6c6d277497651366e762930308a0085b3df07f5d545aa4782565ddcb03e17b72e59b2175fe8caa6bf9ef2aa5f0b9791f597e0bcd9621982c86d93cb53d7164b3251660aa3c3be10e37172d8bc4db31799a4e34dd44440eba113f54278f4a62aaf21ced05bdd9fbfe8ced908a92e7bbc66ebe1033b88a4772b8d0ad0f0cacbd6f8efeb1f8b8ba73cbac3d5b432960a259f0033706cafa2f444f14c8c996ceb7f2b2ab0bd14ca6d9dd44fb31bb91f75784dfdd0a9fcf1abc6ad913a8df2c92e097171559258f317b582f696f84ad0a28e5e24c2e5122d6f3bcf022c66901a5abb4e62e570fd57d71f8dba20a38f7a8e780f88f95a673b5fc23264894dad3afb1119f36d7ba06928d4300bc01a45e414ca48ce22a8491be940ac13e0d7162e4ab0cdb88bc4560c548d211645ff1c969f39e66e2165c2ebd7683a6fc4e2ff6718ba4a5d0e09a819251426179ab5b829db37e485c2646cef0154e96f1a7750c6bff7ab93eb7bdc57e5effe23773971d080a5fc53177fabf3da47d080b71d9981a2149cd275277cd1ee8a48f04d5165d77f125a1e57ba564bbad2784fb440eb2be9e2192897f20fcffb03c514de219b4512dc0a40aceb8ca0b7c2684d6cdd2b1ebc0732a63399ded5e9915f0268bb22655722a69751d9cdaabcd7adb2a36d720acfc1fdd5d8bb8249080a3adb4267574fb220a9539f26fb0b7f2e98cc882504a7c8d87fc0ba82dadb0b4e9738084ca125615cff3883502724d3dda47ffd5706a4f902ea0731928445329840c615ef35a2a640c7f1ce56f5410df6d774fe48e19d6c4c684a24af4c01fe641efd650387a56c2ade5e049e0fd2b45b16c957f33c0ef35f359edd639fae2c41853885971ea51bf05b03205639b1398fb1a7580c1f67ad853ffee19897c71e4ba5d01730d68c19ada9ef4540d74f66bad54c5ea0dedd85baaf71d9da5c54fb67d765140180e653a0b20908542f6294ef4b7d3214559acec421b9cfe77fca90dcc71b868f360a14ec14ab4f46218c8ad87fec92b0f23bf657296d47803b9500cedab35fc4cb43cf0320f183c03ccad242dce3678680438f5a93262392771b22aa8e37e978a72050528651e21ca8e06b45f7d5e474c5a6ba382b761462b85313591a45aad0482c0f6fbc5f0a6ba83ceb96244dd74af2e3262b3cd936916b258119c618a2d08dd9c22af3d46a64f2fcf54fccb0a3ed23a9175441ff2b2f2e640b5c4e3b79253a32921f7365cabd3e1088f9cffedc74dd68e88a7a58ffe7a7b56898ab2ba924e405b219093214f0e24f40ff5d4131e70a3a6c67f7ec99b1d8b498ce89263428f9a81195bec6a26ad39c43e18c8c08a7a775f23898b840a71dee5ae76d95b33282f441c606b85c2b743a0bcd3349ec61714718fa30aac88620b64b50bfbab891d351e48036b758235bcabba81a3c02d9e5c872084d6f682b0ab6910e9aff0dec502316382822dc8c9b34ed84059101f34012d65620e6315e6ce9a0c2cf2b3a557ef83e06ebdc53f3e1479de72e03a16fabd90215198c5b12ca72c2cb1949fdf7301d5a10a622fc2b8858092fe5c1d538f0da0846fb6218c1e9b9436a9145874c092edc70cb8533e6abdcc462a9c5993a8ea26ddb15cfc4edbf2f39ab8a0d18f95bc47824b8d331c07a359e914d2aaa111c09ab4988d749fd4e114804846c51af0ad0d7a9321990e0dcbc0f1592e31f59bc679894f48bc36f81d5bae71bc3a818417a439fd54cb89eba911872184bec94c61b107d6533e61e0a3914f221d4268c6c505f969c32364867d2e1039fd559790f99b2c061a8fb4dc3c0e084f8164e4004324e6a45207c93054818cc4c73157b41a34928d58b8d9cfee804715172957e9d9e9f775741da255e0ffb0974e0a5be194e4e08b38b9f5abd10e8f040e90dee7fe9132ef4fe3bc0f40340e18154b8a00af2ce3fa593bc7afe3dc54c73c923ea548c46e28d85012c1be023cf845d2c84cf873c87cfcca49d1706d89460c08ea6815534b1ba43a23bb9dc14485c6f8a43eeebe14479aed1afdba858a176a664ed06820ddac1bccac4e1f4d76f330802348d10c677c8fa3f1cc474d9d0fde6977f56eb6730ff9bb29190aa25077650b6c7104a956ab132d32f39ba4eb8134c07004a722cca96486d4a6551888fbc1ad755eec1a70d68ae61153009340eed62b91c0d2c17d1fd594df2a2756af344f58ee1c1b263d9facca7aedc57c4c1a886e4698d7b0605d7d531445d89e92f70f4544732f11dbf28b7e8e355824e5175b2ab937c036b514231aa6e052efef8b7443f59fa2511fb31657c49c764434f2dc9688c899f29acfa7899c1b22badd9993bc8844a529cdc28fe72176ba88fff50c71746ee694bb20e654e9cca9a6bbb8f9f34b2810e5d4c106a6bb482f767cdb9d4f5971ada024da4d6fce1e9e688959a468c5c7505cee62449a86632afe21d340595101ae0609fd2b2485aaf66d82817ccc4d47c9a2b349561fc5675a0906bfa8d24cbfb544e1a87d10bb04cdb9b1730e5fbff024c6ba81e2726a1c064552a634d9c68d070f206506d675ba3a0568831a721b1835701358ce6fc8acdb80928f1cc2d3004a1b224b6270cb78f43378b69f81d2cfe9cffbcec68f8f5e11e9156ff638a802a00b101c14292550c9ab20152ff3c1601971ea1c6189407cbc2821fc863516cec7a8147abe4e71ee2a383397f1d618caabe5ca5f2f7697f18e645347e0b8615330f6f79628ae8ba9c7707517ff2b5ab768faff73cf6ee9f540e98d81053cfcdfae89a17bcef77535b4551c0ddd6445ad1bfc1badfcc578be573e19b46aeee0efdd9773634416b011a7b688e6361da579a0d97d418cd033877c3cd72bec770360cbe872ea1f22fcb4e128547109dd9c6b1eb5a7c9fcaa674ae766a1e6004cf21b7a66375a4482cfa65ebf8205dafb1fb08135d9ba62f3672aba350114073943c063869787354bbb99a13e474918f4f389113ad2273211d978af3744edc0c9075c3f9b52b17c09a9c38cec09a99fa9cc09af93397912aa81f97212ba9ee9b213b21633e4120475866edc60dd0277dfadfb8cfe6b3d5d91257b8634ac8a198b66aec79ae3dcb526e1b0d123b99482fd9ceec28c9c84be1feebe96d9b21366b3ec487ca4cbdabcf9daf835332b57420cb6cf6f5c94abc14c190903b8a8b4b151b8266152f634f4c27555eaaa4c6ea2c71b6cdd791dbe1b52751e4af223a321d7497b8916a2cfe6b5ccb7bb46a7a62b4451da77401f4b43f95c073aba5186a0563511faea4a8fc9444829683e3b59edc1261ae8e16c9e426c036e5844fd96231c46bea112b4aea2fc4cfaf3eb0000a1e6689e15b6aa8a0554a71c7edcea22dccd0ac73dc841cfbfd4301328f273e1e40b5fa2c3eeb17d719e12ea86845f59db0e20a83355aef379e5dfdd03c74b8ef7459b4909e2938d661815ef3f47876a60ac24d49f27d1e65a004887939998e92e7edeba0a092058e8de9402c4411bbfe4f7781bf8e3542a0ec8d21ca5930863111c9e0c1b0104b2e17627602760e4cdf9ae8e9e046bac294d51d48032f368cbbf2df2ff98209071cf8d982efc1a81a6a06117470aae19cdd1a188c580970375b12a0265b22bfea26844ace7ea957c62507a7a37a469dedc725694c7b8472d29131230ed486d802d0b1710cde3a62546c1eeb7ed364435567eed625ef28b5fab21a0f8b8e4fe79da5091a2cf6e3e819fbb8ab83bc98026cb0d0aa18c207d0746b58fb8240f1edd2f1aafa27155dd049865a7429072594a068be3719b0eabfb9a8dac8befa3b8c5e4d698664de3acfbccc6c69907343627fb67f4caff4c23e84baff8591ec2938e96e259d1730ad81dcf61f672620deabd927bd1139af8661a155381e50ea3b88073e84db187db9d9779e7af3ae1205ab33585848ae8ec11803650cbaf55c5da89901349bfabd064c62aff09da0a0e397480d9304ac94eb916309edd0dfc013bf543a82a4acb52c9db518e68a44d75b1e52022f7251f28fa974d747c408eb9262cd36864fc0e49d56ee3aa4147ffa15d0ad9127671383fc9149bd851a4881d03ac2ca7c5eea5f9101f48ddcacacfcc0540afa3add17f104d5da3af8b33c8a3207a1ac629e6a1c3029d66ec90aef3003fc64deb51c590d736edaa52cae18c9253ef6946aeedcc2afa4c9a9723806675ec26e7f62b2be6e793202e2ea3c567c9e40bd96462b4a0769550fa42b1366df6d3808b6374d465c4b921c434c9065bbbf9f887dd14410cc28a6111a8fafc4d32336ec30e80a04dfa789ce632849bc1c7b4541422e29f06329e4a3f9d50c8bc731f2266ea067fbe036141fefc5ed0039715648176f92e11cbba4749a43370ddcbb2d8c6c9687f4c16c69923741b545e2e0cb42853ff2ad6ff186158ca55f6d4a65351f907d6731ee5c8af75c8e61573a5edaf849afd0a9eebae84d4e75db75c743a58225d5a2263553c062d6dd51a3bd3b174acc0c6a181e9e6425593d1dc62ef4810229d81f634cfdab7c3807e203cc7ca0f335ae9810cd245381623f633231fcc51679adbb87e96bbb757e0f68a51808d4d8f7d5e3d2681e7900fd4c2015a7e6dcb4b099f15266ce08c32b5c580270f6bec5bf3b45de43866dde18448159cbf29ca0a728882f530d8636b05fe55fd660fe830fbea6b7e7c6eee64948009fcaf822dcfa9315a24067828c12b620ad1d233313af65628fcc3d5db0c3f663c49b969d583b1e201451e20b9647f8832f0bb58300ae6cefac457526261c867bc32a0fe1d25071276fd4f72931d0185a06012875320b84a1e17f8112add38408992aa2a943a7c80d587a3467980d5c399282982f4f7a91a0053185153fe3c18df5c2d1dd89c271be406291ba67ae0cbbff9a7710a6be61de5230f905540a33806e4ae12f9673b5ed4a5a97ebeca4b4cee3d31df8b422ba7770b36a5e73a759cbed148f1a74dc29237a9a080004110c34809260fd6b72a8c0fd77f04251d78c012fd20aa8d5814cbf1810c9a50ce8ddb8aca7fc4062260b5294242785d4afa8d4964a22ee5fcc0527c992890c964821217b592d54444632551fa2d7e173c9c3ad8a77ca624109faf79127341467f8737de001fc7d1e33e4ee6c5edaf3c85b92feef681982db046fdff40035ae338e1b0dd1b472f7ae48346b9af642dbbaa4e75d7c4ef9bf3c696c704fb01f70d44a098bc4f180cdde84dd816db5deea018d68ad573cddbdda47b9a9954ffd417406f25f8cd6e6d6608cd24fe0a8eaa425c36ff85c7329d725f4cf9844bafb8578efbc87b69af814b0e5608cc7352ad522686477acf7ebe19fb7cbb7dccbf5e7ecf83962a9824d5591c51677b836a049aa8d9a050f7ad4df1c47ca747852d00782454c1197c9f8e8dcd2ca06a44fadfc0ed311b76e41bb7273ac077951d453dfd60c128d569c0394616b4c1e12220153ca37a9f7f46cc516a0adcafa8d670d276ec89ad95f38245a30c056483709c9bba866e413ad41fa038d70c2dde4a52b854fe45e48fd7a9285f4ac2cdf3a1c82e4c9b0e2374bfda170caf3924f9ba770d785c5c8b31b8cf5e6b80028fcdbfd5467cb8c457c5d608c8b79f075c4db0a2b22397e746d13755f8df00fcfe353b960fbac1d8c645eac4380ab733e0c4a5c73b8e822555a6db6fffacb8245efae61a4b7dae9c8eef88a4a8c9db2e779d2fcf60f465dbd956c7b082f8da4e2493ca689cb50d4d701b9198c1fe9d6515cf743244884eee515cafc26d37131d8489c7685c73e942e2375b3ebe033b1781f00e511b70395d0194aab029495192514f7b979fd8560984554784659c114cb7a1d19188f630cbddd164fdf1afa3f02085f8c4c0417503a96eeb3d8f716d3f5001d3051a38040d0ba383805f69de3b07734311a90e7688ffdcda564bd293409d1aa7c43e5cb6bb699c9b24d733669e7001146d6c057631a9d01a03014b67fa635c91a6fa521a003a288fd2282ca3e2f224267f10a0bfca5f1bdbc7ca2d90fd09d119e9eb9f2980dfcd7ee25a54e3cd47c7183beb1b33139cc529a69a9749c022d7e5290674ca45d003f4a6d20a86ef887c1b2864f1f3d110b084bf647c480bee40f5b0544851f7b2ece3adb109c9c7ca1bb7ad7d3be64d01da46b09a679f142a46f27eba1bfc874caeb69b262ddec8e75ff7b17212b736e6bdb295300f29e7c566fa58eb5b4f4f4a6c3b836709d8702b813189769d4f9384319c2b31fb9db035de019440e7f62fba0fc6fbb1b2f18ca93b91f80bde6233d6ac4bcbf9b172b2f10a34bbdc4eef1c056633d7abb80e036162f6abb8d5d9a789b1b9b7aeec5e4a874f430b3db23f606966165bdc86b5f3e3dee729c033cd239ceb9c338c89f4a938df00510db7ab313751e5684e5278bd1365148a5f6fb3983266314eb8dae47d9effe7600c6b70ddbbf8bfe70ae504867faaf6badf731577bbabddf5df6b5a13db07c0e804a3f952b117168bed63639caa45f74b47d9b3251d666f0ee2c445d11661f1ccb397adb26b1bcb2baeb26e748cce8a0e936cea6c44bf9c707851ff7c9597398740aa91a62e8db0c358f78e07079b162bceaee1cd41d1e52905300846a4197d466c0987438fad2b506588bcc08eee475355ced7515167fb3c1231929f8f30233af828b1c93b10f4217977ee76d6bef5cdfd338ca206d0e781c6b104222ebca1a5baaea30119b51a82e870470e13fc65dea13d8c04333665f1190f2549e2798394786c2f7cb15507be14ccb5cf6b6a20c5a409d7c439d4695d5ccccaf3b9669e02ccfe05334817a037e07e4023c0104691ba65e584a2a0963a5d9bbf9cfbaef6b71b7e4cfd6bb1645c6e39612aa49f536c20515a0ad5a7eb748e1bfd6912cc284db8304a632e5e75a635e1df2fddfb6138ed14153fa792564a684232645deb843363cd213f794fa83a45e5f2c82cb707cc9bdb9e2339d2368f39dd6073a7a6fb838e00aba3656e7d5c53ed1f29491e8a5024e47bfdd17de1dfa4b0f07805e435918f168c0cce448f5b1de8083bfe9ddd1be7fd8a4be47934a99aa10cb371984f7d615d06b467f005074df9f559885476edce1435cec2c26630886607d37eb972b82e666adff565c1aaa7e4e27619eb6d1644b4930a4022c8f74365aa9f4844597452a47305aead8e02bbe0957c54377a7851c6e35303f0b8a33fe20dcc7fef7c292fd5b85c1815ba60b35235d7e86a090ca32be9d003f9ce719ce379a5e2832b999f267045d0663c5a3e5125ab2e2c543fa3635ebf9f5b60ff4db4667c8894722df06c1a1aa6d07a9abdfc5735cc24c9ab523dc63baa8b11f9288e3ba5e5f1897f611260d4bddd2a811d9ec5d68380d98cff7494e120fd8293a48780ee6852520be5e781dc3fb7b9753f5325fff76efc9316a0884424523791f05010655a272f5e3f935215e18f7b5756e030416b6793fb85445674c68064721e891f834fc52f914363399a03f73e56d7952428de71a557bc6c631499a3493403a21ab78df23fa82b5a32566c2d387e87af672995eeaf428f298207cf58d1c28d60a42596097b72220b0c468d159e686424daf720626a63452037a2b0a9999bcb19edf00c35d03456f86318c987bc1617584b9621bdbca6ae8873115c2b17bd450567f3689897274a8e47a463930ef7084f519e58e55e35453f3d92c057f1b741e6e74bbfbf88c6d1da496e32f603cd73eb36d020b8052cefc1a684f0765276f06f76d1b710f6272ad14e1acdc09aadc9809414e4568ec73a0031bdf6f91b198e89aa3e787c087dfe60d8a4eb4798ee7c682c11a0aecb5105d14eb048d1c5d9d81138c3d915897d4f283f84bd51b10a7d81b09d9f0c7d3e1ec976842b49707a0fb5d171ad61756678c7367fd41fa9eb8874c01a263f7956ae79b16cc2aa80295c4fe092dffc18fab84ad20e2391957a0c833f0df70896509dc8daf7375a2443e4380e80c3252a1577a9cac228a0f2101a79a059e455c7a537d5f55b869328d923077680af8a00857a4f8a626df349c9c24870a949413364136adeb79535588af8fad275d2f0ff6e401fd6aa53506350c8a0f4262644da9d48f0add1951af78a44b83e453cb6e6b2b6e107a96bbc3a1d28144a8438795f377aaf6d640a9ba249a1b9827438b75c41348035cf59e5e357c2c4e35524603cb422445b0a65a061e1329816350745aeaba1a7069076d8b876bef77502ba34889b3ec42ae1cf280e0a90d0db0632d81f9086e14fe43c4ef437c77d47ea35d058665fe6e3315e93e2cbcc85252f7b25a970af043e9d41b19b766889dcc1606ccfe7ed5ad9e54f1ccb29a746d4bf63fb38b9e1d10a46cebce4ee78a7d01558000c099a7072d639dc184c95bbb278c6e692e589a702f068aa8972dd5f96ae6d0053728dec450931a4853eda285c9ff16746e6c1112440585192b5bfb311f8ace93f06d3828dbe17bca2e6c304088c64c430023fc18e1dd3904de224fb04989a1e418f5c550615a2263bfdd3c3b240e4202e31437451381773f6f8ae42e7a0baedef889c62da4e6d080e70e561c196b06126c2f487c96821dbc0c550a5cd659401c2f6afc485ffef8e5f1e52d7903afaa8b94f905bc1966cf6f41276373d56cff296a24269b79904063f74c2c84895f0ece9594d00f9ee547b35624f0608685e02e3369c0c4f8d364cabe5fb162030f9dce9bfef8174c5a2f985f5e071bb5f2142e9ee1c0a3934289b9eab71c540155161a38e2b5e3342b261f9664067b6ea34ef7ca4d87b50dd68a11d65b215d4cc1ad8222c9734ea6b67afeb36b92df9e809b5ae4d0ed2d36c0a5789887c2fec5b65279a1020e29e5bac4b38f72456bc5fecb28964cdce50ebd8a8cb92a275000c11fe3368964530e904ae6ce835ffaf886c3133c1eff23089350eb03d84fbcaca08e7a7dd37c7a13fabdc13ca9497d27b0f3a4187681787556930b031fefabdd2f8ddeb89bbe67b6b77c90d217cc083acce98767793cd27893d0e791e7816b2eba16e2aa0fe09c0f4493953f2a6df16b56cf892e109a88fb6db889844bd3d680839028a012077118d82be605ca8f05b03426f22cf9c09b5f67b8dddfcbb1dbe911b2d47b21778cd1b37200c582a57a72adf749b1732bf378fc91fd7c6f176be1ef8dfb582fc8ccd95bdf5a6469fdaab6d9f9d992469e4ddb9080cf72e0c91d0cb449cd34507f938d745a2297ba91e8a88af284a9d03e87977998bacb4d3c754d03a88b0d65b463a2dd9bd8163332b85c947af8c3a4983d3789d9cf93eb22ccdae343bf9e41455220f18bdf4622fb5489f1f37cff9fa26252abd4924fddaa378e74e44985110ec6486333e752118726af652d7a1682ec3be8e7a9e325c9982d55431286228cda495fcfd268b5e3cad41c1eb5765ab0974e2ed7fb99057a9a93708ac5b47080ce7b298e1ed86980db28ef3afd983f3f382c569c78a9beea35f282035f2129fbc8f567c02c9271dfe903eae67882791ab9128c1d8533d66f7456bce6058a8888b81069e3cce5b698fbb1cfdadececcbdc3631f6046ae405c865ec403806898cb91dcb10e9e19d48ce2ec08cae0b0c9e144827b0d48d7d6bf9d13eb07109ef5f6b98b3961f5a11d11fb9939b461a60c2b6e3200c4432e20851efd83104f125212a78d8b947d75a3a033acefbdad5e617482479e54553347e15a4a5a5cc2d100b16638aade7bf94e2512c0eda70d6e5a693787cee2c9afd083ca706d4f983bb3c96087c9be1dc466f2395c4e001ba4ee697a44b10ac0c4c63e7b08852b1c2ad0d564593b8712f06896140ef2c189a29d34bda41db3a9006e931fe09ed36be9d0ab1091b0b8361ec46327e26762de9466a53ded92af9cbc5d078622cdb96ab1eff4f12894144bf888c1e9fe58e92c7cfad17fc1e9f45587e321152302e0c8519fa15dcf15721186b0ae0157c2d2799b27cb3098b0e5bfb57c6f60fb6bfee1f7e3af22eea80e4b090a21c8cda3ae6ffda569f1741b43fcac4cda515330debf16752e6ecb417c645d41e714dac66acc102bc5e7d177a7d6dd5f6fbbcbe558e9b7914982f4d9ea3d53ad2593706101ca5646d1c1e3196358374c1a95aad5f86589db868654e43f27a1071f90152ab6de1a4558982f887bb48187cd58672b513ddc0355956d3e42a8d636f4f13691f7e83c80c504d188931df3672dbea59bdafe34ceb2aee0c27806881d4c3fb05b83a23857b3f7980b65aad3a4d6d285544bf2d2b8975e82596cf652039c199e8541570425a0590b4daf0a31c22ed7f43a46a6761a03e6ac96a96b09fdd6c626ce3931117772935fd4b1c7e7af11b528719adf451597d22bb7dcd694aeae1976ff03c61d9bece52b5127e4b5b6e7bf57e0a719fe5fcb6ba0dde85be290143b96a198d3f10791cb3b3065c19ada19809fb31279ebf391f3e3d59c5e1825dd05c1f7a7dd9d1900ccbbcdb5e3aa5b8d9d3d924d7cfdd8e6513fb9c5b8055623463ca1d9b48b6ae30f83a64bf9d1b374412bc7bc89be239bfb5df8909d3b912afe71cf57064600eb2c0bf572a4ebd70cfb908fbe09991eeeb83d8698cfbe55f52c8e34e7aedd6404c768e0069e88a4644a239d8b41044b527b0f375c5a5b6a7e04749b8171df7bb3c08c6aa2a09f4eb2e77d96354279dfa100e3029cae1324d47dc4f5e271ae4116675dcf639655695e5d17e643c3c1134e289e45ed68c02b78e5435d8ce00a69b99c8a54518579f553b6b8b24d12879e17151e3334ed1987822b96735868e74bcbe435dbdaf30bfb88dc42b8250470458e3cb87a29141a1d9921f2078a4dfa4c6ab85d1a2dbdfba80d1840c83db495d01a8732c7b4dabbbe36f3cbdac585843f6c873d425ee6718d8762ebab1e64ccf222b4d398aa5531a0a5d30ee59a21e8219cdec45b3c3f69d7356649fab589965fbd40755ba7bdd72fcaf1a0d7339d04f267b024e5b3559ea70a3958539d2275b31d472442e3069a269960b1e580799acbf7da9b697ce21e6c103650d982d86f15c85bbe3a290680787577260e93b138d590ba4b190e1c6064803d4e9b9c00b0ed69116ead5604327f6ef43392feab19c611a24466672d63495b4e39ef44586cd8ca6048d7c61870e35556be665c570e6f02e1c18b27524d258e5f0a95d55074a944b877cba5cc026fc16615ff7ad4b11b233746e28d65e6a8275d89ef7d3e2e9ed45af12da2184cf1b81c6e4f37f8023051b0b5e79a02a5dac68da34eefff17054b720cbc5c61488080f251239559ac4fd4802c85391f05d7dd3c343d282f126ba00fd3f8fd546d8777396c404ffd71ce54a8e53e455979c0c8488d574617dcd07adedc6c15c66fc7cf7e72f28d608d78d71b10c0f0dc7733bba87a020f488613567a531342dc569ca9b3228caa1bf8e06dfc47f51a6382a59f19b95aa072c48579334b2e4db77990acb7d3937836ae68bfaa76e678c9561f2f8a5ab33309ab7b1199cd0ec66a7e90e9b2e0b06f7beeb66e0e39126e0e6fe8a1f8ceffc6103ee74ac74f1c184e028a083765049b70d38cac1de197cb58f911e9b107b66ca00bfe3b9f48a685f1be913c549e71549cc33c68cdd6a6ffc6887fa3bf00e5ee95e09cd5a97da48b6846cc201d381d2bce32f04a894fcd1f7a3a3bee2d8cc585a5c93573c8add60ba823e41732d586f17fff1019794c0ed9d62bd65369946d4f0352e5debda8d3f4350898eebc6e9afb203835134d0bbe3e6b8fb68c5cd23890a37a98591eca537e9a50eca32b8f9a1e74b06f048556676d740e101c3155650e7f587e856ee1440ae64c7a60492a9df2c0052082d6672894126d2e7ddf8fffaecbf9964897ef239a8699ab55c204d71a9d15a5f0327d98a9e092c6aef3bb90f8534da5aec58dfa9884d6772181159f0ef0f71ad563d00f5469f254011b8ba7b208c40f91d3cf1ecd2de0971a33d25c2cd1a3b5a312a2c8379de18f10d7c23800b97f0cff8d3152443272b281f03632b389f511af94c2f8b99b690d1b881e1216c54b335f37e97e43dc57770929862976fc84837bd8664925c64fffea63c2fa6b02099538f66d1ed3db04ae3bea221650e7f7e3b959ce50096af1678ab2882985059bc48b32b114549bb3b47b09612474cbfa4e35de44dc5f25d54dd98a5f28330432f4251bdb462282471f2d6ec8ea109741a674010b8e866d51aaad1148e9686f36efe2b57f5313076f2c157b8da0050e0982d22995b2d3ad90be425542d729cf4d9e6787bbd7801a0591d63e420eea2fe6dbdf88b020bedd0494129019e532c029b5c573c235921f2106c0da2463464d1908499b053e97178ebf1d4bdb2c388f24af502925d5f7768f0d9ea11f5952ad43fe0e7b2c7f2d7c45ca627d1bda38463da807653646307a400eb9e36c497f5e8024009ecca119b12e3ae6ef8a67c953e8ac562facb2e1182307c7a2bc8d2f772133a46e228efb381ad1768e0f13c83859c4084cd325d34bce0beb8ba91e12595829ea1d0f458bbf1231e1f88305240c54024541dc0c31aaaeb09d69d1430fa4d80966d828673e9d89878217ee840f304b10a1f0dad9794608a61c0b5185358826305ebaa4cfc8e3b31a82d167cc63418a1405c44c70bc6f5d0323a1c309653310e54424b70b3c9a6e1360d9543a338441b3b1b9a14a446de2caea7e726fece8c8b0a9e819c548c9fe04df5aa09427b0861999b9b4538eaed822e58dab10467ae71ff79af15d06490b424d7d9ca2d80d993ac74b76a4e053844a8028b08b2cf7d9d02cbf218dbc44b0cef507bd32f9db7805a30b62b346c1534990b09e80558d685696970bf8730d22e778eb1bd97f5a64f02cc4931f902355caaf90b9486ce110cec1ec252eff0a3aa028e4153b6f8c5d8a5ee42422b86397a08c75b4f7059fc6ae2b0e1d5d658ff6d8ec08af99be6897bf1f4523f67ccb2b4d29cdd4860d249de9958817187ebebc358905bc523a63b7573a6651e148a229efd90cfa41f733f3e3037412e4cd72c89e8d8eb6c6568a2099031f37e36e10f003d2d39a4049a413b4f073db197b7a9045b040ea663073d57284e0934f6dbf9d0763af7d54c7992b8bea725895ee042f5fa6217157bab22a4c34418e2aece35e48e471c0c1b6fa1887fdd950a833ed2ec408c244e049ec8a21f892ff4c8b73cba310d8c6adfd2ac85328e45944825a11901764e7b3561a72ab5f4bd8fb5bdff7140bb1f44dda7329b8b30eb9c998893e0ba7b4903bc71600ee43edb6d58b1bb3643df91ad441f9e593e8b9e2d731743ac64abe952b1344123d03e40caf8f6bd805cc603e026841c1c3e163cc7d620fafe6a5083d63068e3b2ced14d774439167786c6bcb9ab11dd8250e8b87340da0a8ef2ff25b87c64643af57d246e99acaddb250afa1070bb4cff78c8d6ea686cac5d42c9c02a697003bad29f9fcd9e331a5ce61a50cf4d82999e96bd1ec248298243d12721b2fbc0109b701483db777391c728e72992d4f057ee4d8e9300fed76e8a0177ba8de7922e3ae0f897fbc46a0732d11a5de2fc3589decb5b4d22b402b4068f23fd58cf80211df1c31e550e46b89c78c049defc8958ef8b5048ce05de77970c0cf565696b2c826fd1435c6f943d9e7fc2d03be6c554a757724cf97c7cd2ee6674b1652188d32c75c35b62d55fc66569901452a844b1d1f3f97821c01571146348d09ef5c251162e8410094a1d3d2f008cadf98d171070e07e458d4dc842eeea5a23d411c8aa510fc133e2815025e1869d1019eab39b7edd849a9074705169ec6220636fbc37d8ee3ca777619412bb0de65ac4305319fc242b31f826437fa0efa0fea77a4383b668467f4963f04e1c792b4e0ecf6d524e4cf161dd71dc96f6869f8d68fed8b6644915808a34708f1a0d5c52d1c02f9c441b1ab810cbf7e72ef288e43329e41d5afd64819a8f08b2d8c18e9db61eab1ca9ad3ae3fc94fc01f4890ba5590333b30495a5dde6a2f5e358457e4e2a65843cafe3d5dbc4dc6b43a041c7af1083278ec8a4d191d27fc4d3061290ffdd1e2d86445dd3dbd347f0157db0ef2724fb2166dd44f8f04ad1c0ab42456b950c2571271220f08ae4cab8afea770a72f09abebf84ee26afb13616d90f9e546bffb6d3edee0a38255e99cce436dcba567aa0a40be15f875d50f24d1147e5583d2ec33b4eb3f60b1a082e15b721bf79190030e1b0962b1753875b5d9308426a29ab1ff105609a09e201aa9ec6ae69e074f46521b3bb73013edfba474e483bb8e864d3c3c0bfc6ff4963ee0ae9452bad270d710d1a3a74934427538c490c4e3cb430896b855533a26db6d745970b3d4186cefeccc85887d5c2aac0b5069acd4623500f9de001eb08706bcd28d9abde1886a7aba5a6f5a301c8dc3c9fe0c445b7743b0bf492f5f332b8f03138b44208ea36683848eaad10b6f739710d568a61fcd06c3901169f9f360eb78cb33a38d0af922c03c16913fba8a2cae193cbe602f9bdede90077d33d9d64c9acbc67e272f4abbc6a7dcbc6839fa50790a190bac926181d634b7f3c261b971de1f3825325441c23e15fcc821c8396f8a40c1a205a0a9387d56431b7048148ee602bf675515199715605b11210620cb0cb310a0644fd3ad00f106024243972ec30d9d0d4033c1d9c064d01c74b7306a9be9e56becc1bf58ecff0ec1134831ed0bbb1c72a57c31b240e4a0c8a7a11713c6e4f0a1ae59498eb50bd280ded5a51abc4cfe59b3e7ea446a5ed45815eefa78234eee299ac59a8cd436e13b6d9bdc335596d119ce74dd8e9dca59b929db4b427a956e2222a04881fffa89933402068f9685714a474e1d39940baf3e80470fdf7c1a0488a818e3ad23cc2bb80aae709a87fe713fb6b894f1702e324f08f4533d27b2ce8255a2331c597141484ffae3cfc5df547be3ba86d86256854501dfdb5757de7bce768d48550a1112192e6b7328d8d463ec19653ed5bfbd5c00a35249fb977426ebd0aeb86fe38422b28be14a7732db2ef05e6cb1ed24ff9e0b93260e81db504e7d829b5b4bf692622b095fd98e96280f2b812aa4208abe4eb389c9f1c824d8e7ee7fda5942ed70c3a16a5e17a38a238e5258b2d62fd4892de6f94459e68f7c4faf4a5169aefc800bf46f8c68dc4ec3beca8d949c22d66057d7fe9d743d2bf681381338996f22df1fcddd083d5c83cd084c64526b2dafa025592bba7ecec03ca67ca333e79900525e8591c10109fe886d3404ce8310a9b20679e00c3d9980bffc055fd6584a8d1ec9c6bc55195f9dd6c30189f5f3626524dab0bb3eadb6188307190e29ae39ce361110e5a64337780433ce53668901c0b1e097d10589d424d5f376a0427aa0a2ab8d9c1145981babe70a488fa5352d574474b85b080ceb4659f8b52ca9e6c015d3bc433eaaae25c68eae57d230127ee230330f421dc71085349df545a923831d495bb464b4f4526c10f5a38b1b754e68264093633e4dbe043357fa41d7aabab68e3cc8e0249a192787a9186dfd4e044207779dc81b780a75c96a8203bf2166c7fdf2e1c2c3a346ffcbf6615b76d0b880a018db76a5e9213c2d3e21ebe82d5b67f455b2567564bf2fe820459fa877efd1e8038e02b3ea5c2fab7ef392d911290c72648427e98bf94213aa4f6b3cf305695c43af53f71fa3379dd554104a44d524a6620c6762216721d3288ab1701210cde7f09569aab1958991c03725a6d5b13e34d19b82620f3f73ce92839ced8a8648b7b8421dd88d5c1ca84b31daeb53a292566947a1d8c75b3b647989ae06680540b702d632239ab5c06fcee8a757d6f76b44501224b855dbc30a5431b00b5e7d7a53e560008b2d075d9d8b453a0727983a2999110647141f9c1b041dfce4e60596bb885e510a873ff0f0158266fefff17e7e65a81660aaf81c7c0ea2fb145b666c31bd68f03d62641486ba1f53ff9d396a112b9b561f5f3b5f67d8a8ae3e0d6d9c6f06304412535fedfd0a3d074fabe994965f4352ab137d8c89d6368488353ee4779d49f71bd8fa3165ae69901560bb7b156165b0468b5951855343e3108e01068d23f841f721ea59dddf2397da6376314ab850c55249a8d377eb418b7ab2c4caad90aba376e630d7e742a8e5e3047b1a38d73cae9a0c031b88c14b9851d33e18433386295e38fe1edda98a032451297a2b88aceb6627e14187b6ab56bacfde61fa0db95f75220300dbf5b57322699e232b91d981943af3883cf8a3139d90c870d7912e1efe57eae7dc92e4b84ed1b2208546f1aba041a45e0bc8f413e5668f41a4d1888b8ef57166b2d2f97f837e9eedb37823830378a2f806ae06e221c9a8f90f52ef4891c7dd33607d6fb2dcba06b1b6b68f0e1460fa3902698e435d47e6c9c98b380c9f8775c7a7062b79edc9b76340ff59928457087f24ce9ab3b68a82de20069a3d466e6287032520efea0da3a516a5f57d8b2c519db2ff6a4d960512af28d5d26a72fdcf8c0516ace2973c74c11d92545fff6408b4d20bb092dc79199bb859271ebeb8013571f6a23ea3e11efd4791fd9523f2bf71978c9a9d14a3d08763addcc63dfee825c73a3079e5a8e736f71ff714ee5740999f8d0870d950fe2fb1b42fdca439abc674dddfb07d9a35e1584a0962979a12d9a46ae74c5db9cff7b2bca2b4bd6cd90a130e20b0dcaeda9ec7aa4c939b5222d557f7aa10df6357dda8464bfa1d1df85a73e55421f0e0293757f56daeb286f56d66aa85c700226322b837a6e8e1824e5d144faaf7288a7ae773c6435e93c2b0f96ee553728e1a2c8249bd87c0339b8bc99420f0b37affdf379299de28f87eb0f163c629edf135dcfbbd089ba0234f7244603b9f734ae157e71dbc1848bbec5bd5d028cd1af90ddf32b9ae349d760bbd3561c0b9994c9eb925928e913c39820e477f7edba36c60aeac34e1cfa6d407e13d0c1652c1eb41afad802f736eff3c7292662a53e641af0b68f766fd856e1ea83d993575ca320a439fbc10a717b8f00ab88fd6fa135dc9421190481e26d2fdf3278a672e0c7d9fe51e603a90004da2d2f9ddd2ce52951a39e35ce5fa7c3b639d0cc042aa6d837c290bd1f284ec6eeb20953f356a11e1e9f297f6cb73ed515647515991121e563c3258ce37f034b1e2606e80bad1fbc89c435fa3e02b683862bbda870b429008e8214176459013c559b49bfd549994a3421d8c7bbdb3f7467ccf6895113bbc719208acead20fbf508ec9ec1358b9d8e01abf15007f69afd05f01ae3c9747faa75dfda064f98550d5484a55c01e7a497315dc751b2778b01d9d4f1e092e1c89fe6f0b7259ed70a18071da9ede558f70f90b903e9a467ce2a72f775634d560287cd4c54f3e0f1a86781c90624651246de58eb50f8a803be4be23e79a7c9e6281f19468c6afe9096cd3b5f399b372673a12e77b7c1a140c8991aa650418330e3c2e3f91198ed02b0285bf510a7b5002cdbf439168452a04a82d947db24f481cc759f22b484450f0598072a8210c080a02875434a3560f8bcb5f15e10c685bbf9964db458bd6a09a6fb1f1d416c4f0b1a15eaaec7b40a6ca2b436a68d29f566391fc4d7fc38f89b5254eba1a0ef67df9d3b6ce9167588da875e653bbe5cabe85a52ad0a84539aaea508b30bb054c476682e3dac3cf291db8d2e1e527d7a9d8d2e6bc636ea5433445e8670a6ce2a43b24b1f878970db2aae842d4086663e81ba6397234c9f5b837a0881ffc280b7ff53d249d1483dbbdcc28ae74de0497f6b60fc5c3d88f16f5043996dfe6984050fc50ff524b4922176bb00ed9d8b0617c5fdf55d9bfd7ac575cf0123e1905cf15970c2de43d08330ef33213e32e0199834c60e5d19d87a97a9ac18839d09bd89621a6fb422ce9ea751fcde6953e3ca2198b22f78f00d8aa7489d889b8e1e076e87cccd0d51df5b360f4e6f24134a029a59f2ce6b389dd2e4d623aebcfbe508697bde015e0cff2615b91ed6380ddd35a9cb08be5fa20f81ece7675a5c13e3dac4a6f08b15d4c47beed1a59c1e51851829c41ae25cd6defc64509df1051ac51d33389caa5f3a659b3c37d0bf5b865151c129b2e986260fe50e597ea62d54e45ef78338408c6df847fe258de21dd69e40d49d399d984330f1fbc9bca2dbc7902335001497ab67cd048adb9ce793f2f6f7cad52be362e66ae88384f5555ae2ef6c87e787095adacd5f305cdc88fc7ce4643fe5d27f0c109d84ddc2824e2bdfef6b948a0aef5aeb385656828599547c893492664ef857a240c042cc90d347153e693eda0ffe5ff40e3708a88f0a02925268488960e3c5a88694ce07223d9158967c024f74b90a7296120b3ce51673dfe570494ebccfb92abb6aa46de56cfadba3847f2aa26807cb6abaed54342a1ba0c13d2104f7b90d699a656c35ea0367790ad47da8dfe65da46de508e3851dedd995d9ec062cda53fb7cff63138f192a0ba63fa03ef42c0ddf17deed4c1cbff92633ff233bf915fd892d45821abc4f5abf8a732a1a6ccc8805635d0155e3304d4d176f142b458d2a2a53f3bcbd548770025111d0b2198bec7298db5b91a2b3de86ab55e5d29a76d53ccc733f8513f14d61425487f652cfceb338e31771a30e3d74f7a3fd473c15bd94ab840d1faf1b9cebe33ff683fcc4ec928e615bf04ab4565c2666e82a5359aa2bcc8ebab4f4e54c873feb2d78d21381d18f03393c586e61d97fe375fae3b0eee7401e3ecb5b320e388a15db56975c7074baf48d4953de985b97cacd92b13625a7c7c7605c52c9ea604d2146bb0fcec77f5777a1b3145976b8da628bda9a28e4231517b3ade0cf34d3efb4498569fa919a7dee2d7493b620533c7975ed7878406d14c99b714922f568a83decfb9e681920f5ae581393eaefd74d1301570e81758b66000abf01f6b7ed31bf019810d0feb6d3eafb3ecd944b938d99c7cb82bb5dc70d202e00fc87271797da06eb06e86c695a75715fcf5a52a9bf69c33b294d2594237b7895a2dec2861114754ea24c41ee6a7936f124b97c1bfa1b6926c27d01ac49d09fe0e086310926685c1500b056a524ff49c8de089b89a33f002c76012772a25df3fb9f3e1799cf65b7f6c92702c23d64b057fe43f191d4b2cbd93e4fef6265d7d80edf3e10e683cfc2cd51daa93fbc3841665221fad942c4d4cf91064616052c76b87b30ee7ffaeab23ede30c7e8275173ac834eda23cc9e904e2d0885734af30e67ce14359f590d403d86590f73164ee65d21dfce607c3a09b68a18dd25626bf795fbfd83021aaab69dcffe336075d0a934c605702b95c49a5eb5ed3069096caa245cb63a3cc53cd7adc9dafbed07689fc80fa82966426f54d754e41d90815309c23f7b07d799121462ae1f68dfa76750170d15dfa22167d3eb4229f53721103e5c5bdcbb24d2202cc6bf13a15b68040207bdde1be882704b8f7f64b93daa3d455a250f45afa33946f13f5aeb8acd6f73d120bcf90c9f3b60d2b17f5d68dd7976d74a746e60558bf1b83278e821114a3b6b00895e808added581724b7dc0e61792526ba8acd73ab9349043d740b667e4ffab06b44ccccaecd585f18d5b1992a473633c396b2683897356e437108016fc3d36bb30d2f00e7321844f4d4e539e8cd82ea93565757426daae884b0f352f00fe378c4efd71cf3a249d116ba1db08f243e51e635ddb97ebf0f405b19436291f88485484a083cdc1471c1f87ab1eb11faa47db1d8d4863d5e3dba23a2b62d149f613a54e83487c248c4aa6f8c6b37a6235240cab18830d9d122fd73524b69f18a63493b8ed893ecf292b49fb5d00c340281f3beade558038daed108940d7b5ca069a9f8dc18bdc57e0c0ceb413049a6cab4d8c71c35a3ef0d31d18b4a641f1e0f9d191d01a7848ec4a79b38d403320114eea98527395ad15a02308300dddf6d0d2504d00663353daf1a4509c492e503c2a50be62d2f78708a1d506a1ff9283a64475241ad222b3a9d6a8c111a2609362655a0a6b9d03c54ab3d37beaaf4ebe05b31a936f4a08312a0cc39216e5694b4aa8115652efe930c3b346b3e513f57775a504ee015807e95c0897a4839ab7d73fea629c77ab6a8d7c24c625817d8ce76ee1250de90963adacf12d9a6a60c188b4b5ce3c035f3ac3533d834daeba03b5d906d937ed7d67ca014f631a6e9e8219557ae23b46c1861705584257a0afcbd75e1047fc86fdc637d415f970921158948e6615501085f74e962126ffdf193404f798641b3ae7a8273028e6fc9a82d2b261b0a046ef2c704375d2fe0e8a9117d140b0019d60d2b1386e8b9f470adc46dd16c23084f1d472f975c54b0cd7269708bbe99630fa50845b00b1b84d90c617ab608d7ad166a73545918031ae37d2cfb51700f828ba4ac081fc80933bb13c1c3b2ccbf40a8888651be6e537d05a849411873ae0c7b2fa3e9af7f99a6160c65933a88dadc9d2dbb70a5a0241411bded3718d35ff10bc0f053b845f0a8c0f61dce4597982f42e5111ff78dff5eb3c30d2ee491304bbaedbe1d19c42dba48e105ff31ad9c88ace235d0950587a731747931b3ea48c92912731bc7c850d99c836ea5053915f6dc7f98da21510c895a8f015cdb357e73a968bcbc89b043a635bb5ab2135f74cee3eef56b24703bef3ed7e22f31c82d0594cf611cfbcad41b699b76ca0f3bb72502678c5d80a701b6e6eb4ad3e784ba960f7bb5918a6217c43024e84a60588c293263c66dd94a603dbaaa3d2647dc30c2ac590436b561e290842230f045a0cbafbe42b6e676c9327e9e8fa1128c4d41d78265b1ad3d42e37115933922293ad821e6f4acd776963e4f12cd764148422a2e9380b9e1bd30ff8ae2c020a9c70c1c04c1a2e52ae5a02195e0519610335bf431b3c162febba75500fdc688af3438a1de087465c6f6446292c69b038275619d77a509206e6d84df77d3a81f2b0e686ca05ba08cdb5152fb5ab03874f5c952e9370c1481d0243cdc92ba8adc995f6105741de0a563e29662f876f1b97ec078ace14e5356d9be4d282e70b06b31e7fea634091531d1ff5837e6d9bee5cc13a6597aeb40450150582c38050d29db29a31605182a31008166a28cc57072b4b0fba4f6b8eee4742999ac029584dca9d2b23741a0fcec47873c5186c813b1caddabfac4c780807fc55aa9b1ab988d344e929b826a9b88a89e572930649cc93a6dc9cb93bece6186592b219c5b1f4d2c5e08b356ee0a4aad76946a8117eb26f0ec7796c3a3de2802d5053ce1ec7796b5672f9733bab29b07d29f6bec4c5c0f62bbd82752c38bd1d798c13e960ff3fb2744aa1f013a2aaa93cb569421d7026b6543d956be98ff0b4dd1d6cb706a54e89068b9f68d7620f72eed883969c92699328ec90cb039281323f38992b017f62fa482f9246012dc65e02922b8d9f1a376e5438d5bfeec63001790ca1d5a852c0520c952705a11e6ea04f542e2a4a19e3227936831fee9ed01246b01c0c1fc73f2acb027197c8f57785d75a784d855fb080913c2ebf10436d82d405cdc1ebec9e3e14c71a076d7694a93345cdea0e1b3db5653a742e350aedb4fc69677d6a607d49581ab9921f2f3fa985f32fc3343d60c0b6a2ecfc6ef5ab0f0707d120e154e0ac672b518f42293f1d5ed8324c3f1b3fc60073d4576ae2a4b0c42d9fbc6aadba53df645bb310284eace325f46e014e390535c04dc649675ae8ff9eb5e046d0d7b8ac7f4a765a08b8f99036273abd32003c865b2cbf4056c8a5e80151c34604f38d406612ba3d844cc9f4c046705aa309a95fc2ac4fd076952b38bfc2f91acc5dac0b49070301833f8db8a3bd67c833f9ddf34c59e7b4ca46dd2f3e5b31d2e71440552940533a69f546c254d56cc083ebe8c369b07e140627757c62462d082adfbd6cf5c97be19e7155668a3c5cc70db7e4a97792a05a7299bffabc32af456ec3f627bbccc785ebddcb53992e0f0017d9173cf916d65fd25eb364715241fde560463c512cc009cf01eb55fc90cc3ddb5031f724e718828e765ee214713ccde9bf56c0c4dce7440df799117d1bbbe728ec0a78d6b8d6bdb030619a0434ff97919579a93a2c34610f85b6040314daab2aa9f2b926a233600f2a32e897bdd560a3abd353f1870db392b8ad7c0f4adc16e7cffa085876bcb72d22ab887f79421a8693a8237d9e908448df4481dcaeb932170a0352a9c2be815df1fd0529163b0218f00851fcce805719e1486bfb2b9ab6014a07440f9e9d7dd3412614ba8616f81424f44c870d3aa9f9f3b85e97417bbb1461c1de4613e459a726863381ca09b906d98370abc6c23ca8b734f278add78cf946bfc3d3b286f9bbe6baa98c9febd17303615e6ac40dd0199dab58ab60a635165bb3c61c482a923c73fb71d68c93163cb434a28dcd8c63a54215b0d959a5907c4c6f6a13702be7bb20ca99472257927c119ac23b330030e4d2eb4b9a1b4e495ac167dee707fe77273e0214fabb53d3b86903caf02c3d581789cd63b8d66d1cec7a944279a5e020d41dd5c1267b1a6930657e9332f533e28c822fe2cc796dab22d9ccddba616618583b8fd7e75e674a6c5abb3ac807611ab8bcc3fa733a7c5ab1f62610f9b205aa852e513bf685f58c87a02e9ee0596e4f509a4197e0221a63f817006a76d8a7db4bb29b472aefdbb01ff027d452f10860e9e0f545d6b7b8d4be9d30ac76b31b49872d12812cb152e3962c37bf978c1615f288d119004cb60d7a0eed4544f33a157739b9012d723dc2748a6e917a01b8674c2629dbe27e2464210a3b4cbf9a00421780764c8013d73c7e79902c2107c549bb52807e5193db7cf057ab1a31c69d3c84811897c2aa8c5c44c37a26d48e546df06dd53a86029d2700935c0598085a79422ea5e4eee19a5bc47a6fb690b129b79f1e1795cd3ea9687d9c7260525419a8477b57ce7d03ef9a4f1286b98ce2b8294b959e16bbd0ee954797e233eb5e69a12078c801bf296bc7b5ac1bb0e9a868591607138962a54722919be48f40743f8f0cac3496f88f750110ede901437db502ff7faebbae6ba1f60d9f01541a10121b77edb609b0b5ed0bcbdb982cfb519aa00379871e73c55bc44872bc3abad8f106d928b332b61b52d1ddbebfc25a7874f471eb35acecbe75802e3949795ab4d8f0e43131454b3cf8fa62b458ab8be621065872eb9f80b661818de900756026a91028333714318020383ae818b8ce6521325db085a56352ed9465573c9bbe1662e5b993b0ab7ab20f9c60495eb939fc070cbf2d24ec0005fb4a00947485c8240dff7f28db84b5a6d9416acf3bfa4fff7cd5216306d887bf42731329b507bdf43d804bdc68d7400276b062d2e81b4c8498e8f021a85ac93b76eba842972507d44231ced4443ae3de6cfd1b9284d355f0243325e51b9ae5655cde5cb3a6e869fdf7b5a297fecd0ea1b8c326c3545f2b1cbbde2566d3409ea39966fef30b06c67be557d4933fa757c1c763adb91ae20a81b799c91ce6a5421bdb3de309808b0b95020df0acaf0fafa71559863894a24715e52569fa1d3a559a6e6492fb443d9d7327ee4ac71a3efaff55ba167f74c8e8bf0261e76bf734adbc0038f3a116a4e859ba49d9fccdfd06f46cfd2281138c6e5cb33a4795e98473ef06f33eb7732c9b9b01da59320181542bb544892aa9c1c34e8008888ebde02404b9299685324669d02f2ef10f517a5d173eec269bd130df7e43291aa5c319b278e303c9248764b2336b7e18681ac856be8562e6c84a00905263a6de0998ef9979998fd0ad12ce669a04e8dbb5a402e6728b840b6f527307847a5d1992cf2834af91766ba02647330cd2367981cb22d60a245ad7ffc1f7ff025b6731a853d12fc75f20ec76b0f8e6bae0bfdc1d3829e4eb8e3bac6381e2e2e4adfe96039f6135a66497bcf168783a24f1ac1b21b04fe79ced397502b0719c28469bb6aa089878d510d8119650e1de855dbf67df16a1a81f4cb98a26319e9d48516c760ebebf37980511a94b942371ccf7db8640c84cbd38b721ed1d21de91771be0a42c2d4635728f5f4d2ddf51d8d20f5f9620845504ddba72780ce459c9eeb11255ad7999a40464eb2b789505487c1131bdea0021dcc188897810bb418fc06b6d432204fca46e44a3aa4826b16fbca23c2cc602ac2b706d6d9a626fd1fd4b5b0ca445e63960e5510facaa6383d8c9946460ef1038f542e3624881eb7677255845e0122133b3bff1c744a0868d819ce8984b816d473853abb20ccedb5b53a91a978aca91214b0374ffb95a1b90fd0747882c99ea252421ecec8ec5a9d848f0b25bce4f18178d552d3e35f14fa04645dfd5a637501ffcf2256645c8ab7f54368138240600c5b68c544c7f21b3bd431c21a5948c8ceb0c5acdfe82fc727b5eeba9259391f6a33b1b41578b5bcc59f018e3b91f94e226f99c41ff5972c4c7e25970c962548deda5a7385bf46f754d9a8daa51cb380010cb1a3190f9940b072788153aebedee888f0c22f42ef7ef735a5e5e186756bcd0cb5c8e399480a15eb55ad720f18c97fa0c5760141bdd0acd1641d8d05cf7c347826dbf412ab5c040c3e691513f158729af4ed0f1693ad6881816c7b609ba496b55aaf0286b60f862f709a6f0bffec2d23fc2227f179f00e66c803f7e5803ade00139fb700c71855919dd7bd5f41f0f27005a9d4bac80c1dda0030bfd2b6ce08a1532108fd9ec03fd05f1ebf15c5cc70697423fcbeca3e2b1293b657168d1a0c8c149d0116ceb3087dec2be2173e3670deb422877e2cd930c8219b7aa23cf60f53a2d8d402db17aead2cb06c6435a87ac8e5c4b656279081bbe11774170020cf4f963554befeebb860e4b6030935b7f10df0211255c00942efbc8b982a805c531ade06d1c83c6e64e160c1ff924714c614b2799f56a880b3d6c3816c373ec86bdd71ec217baf8ae55347ecc357caab9196a15264fa63bedf2090ae917e2b0df20507c122a9130f6e4db332258073c35affa2d3d26daab7ccf3558ade8b84f725ab21759905cd7e47ac4195a3749784b11d81287caa2ce3d441dd469ec64a09c13ebf1ce418d864ab19f25e142e1d47234c2d7089946b98a61e19a3f95e2ce46c5824b2c866ac2dea751fa3b636dc50fe0d675e1225bdb7b426522fd3a8be5ca3c6647aa8d45a24bb6d8c9583c8d1f076a3c57ad350800f6b6971a08f9aef84a81e7c88e18554d76a3fb13f09ec9724543ca639634af458f06cb28942e72fbb9d8100a019bf4de55754a21773133afd7130fab8f642e57f32a6b215fe216e2dd7cf8a375cbd04e7cae58c26c22ece157d0603e008637fdbf87a8d0dc09b60329e91631fcdd32ccde720354c9632eb72c17058a46f14844aaef991051ee69c1dcd934e4bcf853a52bb36733111ea69a4f1dd7eeed073c52b46d06643f2b5eeeb864e789088488a69739e53ad3e0fdf14d24ce5741da3ac9994c3170614dd47e0caf020a2fc9032e8fdb7ca2544e906274763179366c390fa7f693e98066113b70e5df53167977dc75b8f48e93af662db5d64f0146d7de8b67d919b1049ca7690d4570bf51f164ced1895d730370b50cb9e6ce15e5973a0e15d17c4668f58d7e7313208558da9a29dcd365b99f5daa92e8fbc1522a2adeda1ce938360f9578b210350bdb23cd755d471ad538ec699ebfd2f504aad6cbe21444b20d3325b1f9fda58b87bbccb337eb883218e38ae0acb338e718e9aa68b2ee3754fb7e948fd955905d946ea6fdcb855bb2f171eef3e800554a9a5a951fc534badcbdbf06d949aabeb68835161513d08584c68cbcf129de90589f3d0bc2cb45524cef1637a0ebc1a0d0d750dc49d07724278b4b926326f3266a6c7d2f5aec42b623410d3c9fa6ceb3f0c0b277d9bf6bfa0de86861761bf7f2044ee55be8d058eb973e15b1f7f768b68f936d609adf8d9b3e32d63dd796534ef89dce84849bcaec6d93d3ec804466fe41149fa08493afda92d21074757c52058c8345be6f9b9d73fcdfd98ce9ae22604cbbd898d0936519d16e21fa3297c5a9c3a14ad8516b42ea22904705a5640110908391ba202bd2632b4b9c5655094c2a2c0fbe1c45485c0ee0b0a7339aa20c3b858e00328de4059916cfa170437c854e9d40c127a93515b61301186e40058cf6f8d8736228c2b0d615c0b61b4f42f9669dd98bd31f2a7d0926a823b6537e1f56e8bcfda129ae7c9b5ee60bb002a6539f270e734d1ae6a6abde903498f65c51f493091a79b1173b12455caf0199b8675f7d214fbbe72408b84a4d19e5f9b373549830f2502b68062abf66ce8f41d54971abeafbaad0c6e70ba355670103bb98c4fc0c1a3132f968cb124b2d851ee7d6c93706a7c5bcd7f9208936527d43f3c1f53e5c9c7c13aac120145e01f80918e77165792d5192952b923f4d31d8942174109e9c824ddd1c9c6a6e1a8c496fe2ad78cf6736e66d26bb2d42d6af7ef2ee2d221d2113d705897ac1df65a3a1776bd033c7d4dea82a116ca41fc7041df51a5d964253ef7a1a6b59a14d31ba120a7d50c9033b99abe2fa9ef8e8aa31f5dab7894dd386ac873e968163f9103dc34beca09e483805533b348796091d202996f3233a0ee8299c8c4cd90a2abef1448d00f6442c0b303ca70f9b984b57ccb1168d34ea6ab715fa5b9438e294aa4505461fc3aaf83cc883f472491b55a56a02e43b38104f49bef4fac137a4ca608ff34b122b7fafd6001209fcac2b57babf73e0c78942baae445ea2ee3728173da88242c5b7687d08a11a7d45174258950088995d1b5f541e80c16c82a9c9ef2a31f7f4b61b3019b894137ebc0ea0675d11c3a12bedebb0a7c0d1df229cbf8736fef95c6a85ccd194c488441bca3017a3536e2b93bb97873f3f6d4ee8ee07da0c65cf1d48246cc068c12b42d899451890f69151168a02467380d92056a8148459bece3201fca08d04779f6c1ecb63252e9221264da456d834f8a048f7590cd284843e0d08e49f2fb140bfd22f82eb8e544f0520e8e9cb55881f8689aa597ac363dc949d8caeed2cbf4da4b81ab934ea0e7f6aa937a636371d1d37958778f299172ae1897d81a5bc7f353042e192f5d65850a845e099919bc0f9a991354890d8485050064b350f234ed65487cfb1c56310ab0c770dfa4052ab891b27e341e5bef02be500fedfdbf049920acda62bfa95dea9d2b08c230edda50bcffd02261b10a431a4a59d2a18dfc889d191be4ce7b8a43059b677348b1cb8e4e1072d7b294eb608b773105d40a34066e6114b8b3a84c0340c69d1cbeee89c6430a17a169f1af5b5db8ca48802dada699d361d4c91e0b20afe21f27e600b5d60d49a5249877cb2989144e661212e2e8413aaf8ec86089f4e66d12c8023b5434635801464db89bd86ddfce11f02de0d1eb399c71f0ef6bea2bfceef6654701018e288e0ab831187fc98c293a4d0f38bd3c5dad3fc3bfc7573aa0605f0e38815b2cf673431a94c1c12e0f7d3a43aa1b7608045abf1cdbdc8c8f2b28a184b928104e6cd86f4c821b63eb87015c9eb9fb0efb9b893828840021ba43a71a3a35fea1aa1b0f4da00eecf656a6a357aed3aeac185efb22065ae606e3f7c2d473dbadb08f831f177d8c2196fdf6d18a8c875b61d6fc22c9a17d14d1bffbc827899db49487f7f92489323049e4c80c68b124ba3c4084aee110e6d292422c3fa726c81e9e6675577ab602143d7a6c020bc44836e3fd056eb661846427032bcb450bf0d83b0ff86d2a22198700ddf11ebeb0e243badaaba7871c4bebaf402ce7871bb9d54cb30ccea0680dcf1849285180f417b84e25cc17655778b91c6a219ebe3ea324bd2bbe4e4cd3f492fe045d861ef1d69f839e5eeda8cd6417a069a16da1333c9621a55b6caf576bd23d31b12ed620bf98898f9534ed8664257b1ab139fa604f3d619c42a5a213504dc068b8209ff2983f56f624a351fde8e23598ae82aa34c520d7e027f7734b0ca570f3c83149ffe98ae8ff8a6b75d28bafd4f6f6fdca2601745a02628f24a83cf8cc0a463fc0b8d89ca428e3d02d1250e96b413927f6ae36476f964c54c8f4ab77456ff901ad680b619066587ff4998415e60ebb5d60f8fa2cc8da14399c4981660465ff90bc586ee5a06c306e643c06e40cc42863638dc4512fc972d2430853d22b2303f78ed5b94794a1d8e6f5a3fc99c85a7a1535956eee8b87388fa26c23550d314f332356d666b36ca370597401c9e9cdf6cb9ec7bfdb0dc2fb79b60dd6d107b9ee51b9843b91843c45df0346585ecba7e8c1d8148f6a8261b8b0174e3d878a7a1500dbfd2a1cd6a702496187adb45587ad9494f832eee88fc2c8dae4cbf484b2580b0c120a02395702255081fa2a38c1b0a54e7328c9c75031a8307cbc81ec0e3e9ae4969538ba480bee54f7529201de1200bfd24d5069f964590ab56394f216eb90bade7d08d24443ea99377e831c9465cdf2a999d01db2d2eebb3c680819e5897489e7167d7abcd6c1c0fa344eb5fdf0ce3aa56497b293ed08a1229218dda4be995d59939a5989afdb124a0c4c66275bd82f152853ae50134ff026b219b2d269cf79b2163fe5d1a038045128d32851905433a94ecb746297e26838858c87caef3717f64b6da6ca9557c513c08a6c9255fb4b0db5fa2bea4a12fdaaec904cc4ca2359dcd2591c7dd176044dcbad86ad98a45bb34aa6c45a5cf184621bbe310249262be93636adc93e940dd227cad70c4d6095015622676b2f1bc31d642e2be0d229411a0d2d97abed6edd8ebd62cca037d96ceed5c7198d517d905cf0cf56d0d8676d6f09e760175665305841a2c580d0f2e462195b8eacdc30c71d223a144e0398ec5e0d633f928dfd6994b17e0383c6069b8d060506c9b4172a960bf2430494ef2de14f219f4300a5d82d68eb5b6c7eb4b5026904c5a75154d4146d8a50300cb2c680a0980f0692e057c8c57f2b8d2402810ba0ebd6084be3eace27c66ca42953fd62b53916f5804cd14a9c2b3c26c24d11d39b2b5f2985e25739f1f6f88998c8e00d8054e83b18e5bf4ca309fa6efc1a2f0edf68f53d2873abf4c65121a4bb65057d11f4d212b72e0e78d745567bf0acd27df5ab9c83c98deac51b7cd0d716d0a09b6462f92847d4de80e272d320bb20bace557ab6f29b0d1570c9005e92bf9eafca0d2805738c40070408600531417657448bf847a4bf182cd07d45157a3d82509f0709d8881f2e022cfd13772d85281af7e030f02986463a00fbe6a16e815df0bed35f615dc712735ce780c2e17805b258ba53c2915d23c755c1db137462c408a4872bac0e6341b4332ca87e850009189d44cad77505c9df56d02cce0a914b5721f35715208ba9e09c138451b36bff8dc999a6d0995b0a24d0c17140d378c4618a02e4cc50f0cc1d146cf809dda064f878577ce06828315283a4c45abdf0b8097652137aa5fea933e13c110fcd1ba5748dac2f616ca625a8e5ae84e0daac48da175344f98f58ec616385207ba0a5b9d3d5fb04ff5b43d46e08fb83d07f4bf3451a7b2f48689f68db223264fe4b5a4f54e2413454eb3291fb3e4c6d8810f1dffe9b79173cb46d4b84277b8369abd45fd13f4f572a4e4b3c7617acc4bd8186293232ca228407911cf923b8bd004985f030408c0fea680ff13487d4730334a5c1ef228349cfa3f9ed4f155a0f393a85498f18382170b826c99c245d80db820279440fc005969ed32d6385133b60e189d8b32dc495d2c4dc0604cb5930bb9f73baf8c4ed57581b752db7b236fc3d894b6cdac84d2e4125be1c9b42b876ac3a35302ddda17b750479d41fb5075761a61b20d7e4d7835394fd112440d36d581a0df64c724a0316e717f59b88a1c9d90240d222fbf1a6659c94e8c7d1201b89d914190048a057f1e0a70c96b8c14b6c7019f7b1038ce4c1848f781b46c013dfc1d63a36aab1747e64c7cd8efe94fafbe9b63f2b96b9a66527403c9700e52c19bf481f606c58270ab38b282eaf9af5d55a703a0fcb6e63da501f2f5e9acea39bb21e8a99719c8eaaa4f9cfaafccb65e9a376a943c2129cc82a8bb9253a567879d68dcfde4e39f2aa2f819c5c918af8ca57093c5d020c3897c0877ff4379aeb53b7d221b79ce2b5bfc7c6ced6a15164ad0efb6b6f9012ca9e2cb8015d41a116aae2133094bd10603989cc85ad0dba5e101bb407c0fb3caee962fb28c17fda93ce0015d28b5ebba0eb29bbc5ed2a3ea2d691467ecf62d7458760dde0c31ff57ffa90757e10b48946fdb5d5f41dc91dee72dae956fa88a741d12514c08067112eabc48d7cda32c699c2564a4546282295b232591e4659c8b31cc1a5f861c3f37c5b360666cf30a8a47be20936d705a946c83c903d222a886e36ad7f9607339eadc028f0c152ca059680f5e59a05b4659a6e2c3c2640b64e47c89f94df1f172f2b37513d4e03c6a0c91dee250c6013574663004b0f26eb1842c51cdb91f76f60c0564eedd5f266a3d5ff4c8630638173b43e78c2dbbb21301928e8360d176dd5a5db5877afca6d9c82dcae104bd58616879c8169d5b3394a5c65dd0d3f10be8a56c9a4caf44f675db76e6cffc0667ff005fa7d782c4ccc02ae636d79361b0498bf4afbb1cae6c05bcbcde73ccd8d6f34b58175ff0edd82b04a530718db31d010a786a8d25157c319826dc59bb4a1c93a5951b3cb1ee8f9626b087a5ea693ec9c74fd330eedf6a73b1bd39d99df39c3eb4b9d047248f0d7f0af32e2da6d09a94035299fd4480851f9dc4fd37bb0acf95747fe693a3d09daf4a041179bd106050dd42284a8895aa226de7f9a487283551fdf153cfcf03db77df1fcd43c767b1c0d71bf93b519b6ac1c12e8eaf87f6ed3d9a901de54ebac0bd40cddf452a2f3948af31600733f86d81722117ec68513082e2b5f627f8f94f69ee0c6bcc3e8b972f0d55393e456bae1f2e9b8880ed207532764e7f13e0a893ab4cfe1d0e9cfda4513b91470b73d6daf4acdab10becaeca82733188c6452f078a6acf7f707b225462836335ebfb8c00e608f5509f351aeb83cfc62f649717e16649dc1d5d669e2b44fa1070d5b5f15130d9317b64fa321538b826d2b4869d3ddaf636082ffffb114e811b3826e1576f47a5a722d570f8dc6f48f47f5999d10f22910771cde1987979305c9a9bf862af2159563b95289fa32b896b542b01b14ea4bb4403d6ece54f6cdf2ce82ba0d7956e1a60da1cac75c7325ccf627b44d95acc3968026da592b7501d22dd0daf067ad9a28958645866d23ef684c61862983b1e4347d637861ce4a10d9551bd18001c253a7a0091fd977260b74ba3b89298ead7352edc41bb4f3e9d601b0e39f8402027b7791ce750fa6522916bc64b0294213ad039773f03ccc1fcbbd7b6b82101f19632983d659d23883e7009bc1aae7e3d21b6da2ab6522bb566ed4457ad138264f8820eca204827dc56be248ad2a326431b39b8910e43647fba03da12ef8e43dba89202a73d46e1f8a48445d2e99197212fd5b8d5c1421616208417dc101b73672bad742bee207c1567055c54606a1bf7689616490842012818702990b5fc7b16a80868534002be2b55ab00d13239385cf87277f1e40403160bb50b8e89946e681fc406f43b0f3ec15fa693ddbc971ca07ab284791360e0c57149a1ef82f785f743928fe045887f20474e63953509b8d4e03a8dc555a0fd345960250ba8105ed43e13b4303a0fcc982634dae676b001bc665534834c9aa79834109ac8afa7a3ddb0cfba6860b87cd4aae9bf2b9d33a418305a40ad6ddb62deef7fd24a80ea86c5665f193b210618c248a411c804a713f68e66f121b5cffb83a3600865477b0f575c6368058518d293e991dd4dbb3e1a418d81d202c150fc60324cfa8ca3b028c2b9c4d1b111ede4900cdc2b7a21dd9f68df4bb5a2cecb384d73640a4ea44b22fe7a4f4a13da427804056273c02e1804cf83410bbf1e338dce0cdc791a83a72161759a2f300820bfb0573e28f229f696014388239d5f321186b1ca7a5a91f022080362f3d1d0c005fdf2dc7d5a01f64dd2205cbcfc8aab945d727e3b933fcf3c3c8cb30ed313ebf5a0a0e7b045ca904ae0fc4150d5b20142a9b743952aaadec2c1d2ae791af0f21f5410f19b934cbb17133bb8fe097fa6ccde47df7a5336be4ab54216111e03d160663e029c12c881a0366244f0f610f3929a63dd2354bc4c892518d2d4c31467f4296d84d08d95bee1d150d5a0cfd0cbf11eb0e80d06a3f5a670b77ac0ee0ddde0b35221b8a53935197a52da2ee15271487f25d4193a9a0c952d064ad901576a711ca78cca26c43ed47a8c136a21ab8df7d3ff71a51eb78afd760da0fad485429ca3dcfdf53a26411d5f3cdf2b8df4f4a4703d31f455f02867217f29845d9bbcb4703274490a4ecbd28d3c0f4470d2e9c167921051202b0bb487f885dd7dd7e533667777b4317ba2e96edbf987d776465b62ee09b9b5f2cf2f09431ea3738f519b8c70c31c662eab8e61afc190e73502c13b95e068b32b18a5d2cf5bb798d51a763ebdc7fff2cd681cbf7da470327ee9053a7634f97140e1cf63c3c96c7dacf05cb9c9a63e6f915af7d0fc621eba1ae862f14e9794cd88e4f01f79f386443cf71f0f094bb8b3bf774349c47767c9ff9134014a0d8c5be77b1d611ef0972fd4a0c506ca725599cb0ecf424a96d982f9efbdbe12138ba57cf7160a155cfe50bc77d680f8675004777eff1f716bcc3e3d381cb49d425e94e0b92e77b3dcfece95e8f037594c4a5c5be183a83295e875147b6bbd8597bdf755dd7d9a3aeebbaaeeb66b9de1eb58e883ab248ad23724796883dbaf75e869aef91e4d1b4cc1d7144523c1b839530fc004e25a573a8a3bcc1ba2031eaea794fa879a00cddb923728484c4a9ef7097c4bc51efe12e088cba3a23da1d599ac1b08bcd8b5d8ba7c5a84b93d17a19756d3f80e4fa186cbee136d303286eb0989190d6b9afdf60ad6373acbbefc1b09edfcea875bace8530a8e72e74ff8e030bf51cc76f873ba3aebbd8755dcf71e0c03c7701cb570f86f57ce8d5c5ba209d51f7f3853ad07cc31d437ac20ef05cca3a270da45ba2ae9ed7af2edd1f75c925aab30e4a55ea9e6cb05cbb58aeef629207fccc1baceb3a99ab8cba349926ab324d56659aacca34591d42ba70e0082d6d75af5b0972dd4e90eb3624d7ed895c3719e4ba4591eb46c50ba07521540a256d89aaaf7b4ff7db5d43d27557994add53a652776f2a759f21d316dd454d49a7c9befb85e27d178a38e4eefdfd743c5419942e9d3284e73e7d75cc17cf8a09143d9507b64e979a59a15978cadabb704ad70bd781cbf628ef1b73f78b45299b484c2266087ac85df71758393d17637287e3e24aee5cb888cadd0b1767eebabf805dc0d1a35d9bb5cfafbb773beea381b3d9f260a95d239dc6000d9672bd6d4d296bb865cddae8b6699b463d20944e211bc9109ee68343e2c0e810528703f247fbf94e954081746580b6aa91e44142f6043519c91c90ac7a6b542545c916a5f4355bdc9903f40499c6ac901f1959d10401a5f4fbb9dc26734e064f219d2707442ee34bc3cc32e114e2a489690a9942689e902b186d55571fd156d5b1396b0a091244c831b579225c392e62a1095761914c0b4ddbb6c562e021cb883659d334a959819469964d66334aa98ba35f85d34826c422977128a26cb2486334a6611aa3440ed059269c4124cf2c92384bc80a0239412075627912215bf5366bbfdbc6d923499cddb84fab69b65949deb7296b1d1a5ea502411aeb168d491efafa8d2261455416696c458c997902146bb645f5f653366bca2c6a1d1aaf379ff17a9bc1c7bc3d8b652e3f6d06963d2d9337ea5776a3d1344d5be1d35cc99a339acac27258cac9645f2dcda67d3ff69e12929929c0ed32df0fe7f9b4959977ab8155cd92b912298632bd398d7fdf8ff6ef9311275d42b6eac5981428e7f679a459531604700ba78cc66be0195f42ba66167336e96fce6179731a9f67f91230946f7ee585f1e4377f27f6e9fed13aab8b37322b481eee34465bf597e6f42a94ec69a679a35e85d35bc9b39d869af603abc00350ec5113e777f3facd26daaa13ca0c4acc865734ccd3d37c379aafbee11ddb76c31ddb0e9ab061e10a4f25242d9338f532b8f3d570cd937e37a470154e63d445614cb3a78fac421a9309c5560107d9380b29dff6288cbafaa88fcc9e4e4a6a3293e5bb6d5b77cb985660b56cac60a3c5923edd526c8e6ba1156ec3da20981addccc0f4a8594d5f33499c2ac3009bc98573179b5da474ad70d5a5ecd90ea3020e46c916bd21b632fd0a98be85ab9538f73594f68ffa99db607a84a990664d4c83b4bcbe9352a927e590c6244ebd4e18a0bdd8b298fd0c166fb23dea8bc1bbbd866bbeb3e64136bec201729851f290d6affc74cc1656e12aac8083865eacd04711eefd52210c9a2f1bbf349efc344dc32b1a56a75f5de6996f01abcf6d1377f0c8c92277fb9a6f78078d817e0b5734ccd5c5d569b8c3e6fbef67f55b3d1af8bfc1f83370f8d9445d5d342994958d3792bfbe93b40e7e0d5fdf32c923739b8b36afd05ceccc72d92b97b2a785cc1bf52ce7f00a124795ba0cac756eb883dbc21eb516425f57a13894e76d421a8a0dab099b28143bfbd02f0699dfcf60fbfed13a33c4404ede21f32bb3ba17534dd3340d033979de8d3bfd0aa19538f49bcc5778226916bdcc271681320d79e4c8fccac8607bfaddd04a1c996f38d52c1999cbcc748b69f6a0e40d99d7cf2432176dbd59e662a770495b32e154d23a85863349b3aa1020adb757dc34ee5a0a3496451e39f55388fc46bd9830e61a1681f28cc129576197bf6031cc2e618f99c566ea315b68acc7cc2b584c65b1419c92d43a475a67beb599346553a53e05d320ad6958c77cb17ea951d0d0ab1506b1debaa8034d010bb19ec22fc5d4880611024863f2cbc17a0a2d2c5f2c0c637de84563db372ddc3184157620854b5956b179c337597e36c8570a5ed3a01de85683a42d11286fa168cf23a7a5856206321579c83bb40568336b40099821d3c9c2ad1a586ff9647a1fcac2926e581cca9c27802b4091c6384a84cbe2b5d0b0e334cd876addb7ccb52a8571489cfa59bf9a93c62492664a426314891ea132aa44370d473b91751353ae9aa66938248f966bcb5a4732d1e2875cdf485a0700332000a711ee95c844fa6c9836cc570abf9ea7612d5f999387b47e5918365fac539ca35facb7b0d02a07ebadb32e5fadfb50168675a0f5a11750abc7cc730bb9d04a9e596bad4f010bb5cefa6de10fd8380bfb982f1bbf3da54b85775229cb5c20000e0d1558393b59635d8c695d5c49e122caa5c245a9024e01b7b0942d4c71b745216b35df9e1ffdc539ccace500038af2b8c9a8d38f8699a425749151a8303513034530571db65a9fd32ef9923c6ec4992c82b4a5854b33da061f57de8836301c81b207506596c53be5699324cfdb24699d3e53b354969a350fc311282fbf955d2962e5122ecac0a207648c8114849c0561c1d3183fb8a0053258c540739ebf51595269922b50005fae588205105620810551645e1083246a1024881a1401ce83f32a4ef32a4f36b3214c965062b2844c96e75f1802ca771f827a8e66852ca05898b130039285931dc440075e7021bbf0a28823496c5085d1d22d9abf37843b4900451658983d2ad06cb6513b5bd2147128f7040a02f83c934a82a880092d9ea4808118414c000522258068428b1dccd1254f9613b043b1ad122321120b289a9418059979fea074fbd5e4ec51e516fe28f26cbddbd81a411ead5399b0831f3de4d9832cd65412a038c7394ea2d681b50efdc401488e6601b132cb5a6bc5ad6e617f34c424f9e205995a8c43b3660580a89d2ce479b17e31745e890242200826c40089208ce0e489d71c3212051688a0e9082c8a9cbc8642c0856c08269a90208908aff909a3ae071c610207416400440e8a78cddff802945f02443dd50370d51d2e0102e00814e799009f5522988f610294a0cc092a954aa59ad3681cc7a29b232f08b9df42d1388e41cc3042c1c8fd9d98711cc71f3732d0c4c87dd76c1c4722548ea09c1025f77580d898c22bca7d02208de318848a152821b9cf8267348ea312630881e5092dc8fd01a060633879c20e725f00a8a2711c43a032c613d413acc8fd00a0c6711c612a6340c13e4108b99f639dc6710442850c20b4277091fb376c102823e43e008ac6710c5284cc13c6c87d1c3b8ee3b844114b82dc5fc109064fe4be0a4be3381621c52745eea7301bc7b10455a86491fb2dd9388e4334a94e729f65348ea3105c50284fc87d1b45e3381ee1c50d41eed7e0c6711c8b9cb413e43e0da7711c8190d184ef89dcbf591ac711091fbc1ce4fe8cd9388e4084f8b6c8fd50368e23114a5c2838e53e461ac731d6c4d743ee7f331ac7215e002291fb365a114f39b84ee47e4d09f011546c90fb343f4029c9fd19d9388e42b490890253eeaf96f0c1725fa6ce788a825d22f763e8920f22b9af9a8de3f84308ad06b90f63540415b9ff7293049745eebbd0711c471f2a28d8bac8fd94d3388e453386a0c0c8fd96a5711c8d98489c0ea29491fb2c32400991fb2bb2711c633732d004b90f36d2388e43cc98d918e4beca6c1cc72496b04c91fb2948611021f7bf29c4123824e4be578bc67124c14d194fddf884dcbf43cc70820f7604b9df0921c6155c90dc47111144e744eedb3a8ee398c40d10961ae43e37048d266c16b9bf0971d3028e29f7b59c711c8b66c000d5031372bf7e1c4711dca0fa90fb741a8de338c48d147604b9df452f1a3c40793c5499c2bc66b5cb7bf5380ad18113b0a0c20722b92fa50cbc81c83da24634191cf1a698282b5884e0a4e51850d08040052153842d223f18cc4f8aa952456d42b990d70ba7f67c984228e135f1f482998307a0740540b6e863625858ba2cde48c9f486c46131027c16e58d4c3f01eab2478c403284283ab8e289173d0ed4a5802aa0f8615605941890f1a207ba21a96bbeb4f3a26a5efeb42771e66180dd5c9d32adb5eb3a6bed3c9a48f3c8549a4a28b5deed23246a9457b26c62c58f7c650665132d9ef2f615f902ccbe421760ac5778d105076ce7155e84c929dead2efc188684f7708fef3a789eb520388fb2e7ddbba8ca486113699667b57b78be7e3f9a96b70de3daadbec6f28a65b3a8771966f66492a7d6bc42bb887e98515e45ee7dd817ee5834ef2098557edf2c4a596e2e1e32e32c78a6df2c3ae377c352d84eb6fd484765f4940512875eec09c30fa0c862ad9073b1025800eac065977bd8d6dc0094d9e5a23d80cbb75fbcc3e59bcb377cd3acefa7e53efd729b5fefdee67bbdfbfdb4fce221368e31ccbe6c744162dc7fba5fdb7d1a4d212af4009cb14f07d0380e57db836abc759651eb5c8e87dc9d0a6916fd1147efe53815525021056ebb39fef52eaeb99b6e1cd6816f6ef0ad3ad4ccddbbc44135beda421a82865ead0bb5421f45eafb355f379875162b0c9aaf1a975f0d345ee37e86330817d67be18ce53a8db459ff77da96b3a33a0b14c1acba96e2bfcb816e975d0e346fe1efbd18cc1f0286f20d75a834c010254a14172c73876deecf061aaf36303e0beeb0cd3737ac9a57a9d3fdde4a17fe3d2875eaefa7ec9940bcdf5f7c436f9a755fd342244f778a9f7e958ac6502a9b4792c7fbcc54764f2fbd97c6a8abc2ba456f2d08527a731a5adabaaf71d1d2b808de5c543dcb5cca8a2453916476b24c0dd0d25081a1a4f8bebbabd5ea7e353333732fef672ebf2142f8347eefd39d3d9a4f2040bc701e491c3a91688bbed2b7c00548e33017e7910e1a0f2a72310e7f4311877c4fc387aa5c5e7fa957bffafb49f3f67bf7c2daacd0e64aef06e8f62bdeb0eb2ede73f7a1cdba3ff628f72d808b12254a1959bbf71dddbd8b3b69c7eda326a23a00e7001ae23cca5ed875af9f4932dc57950d166dbea14d27b30d4ebd068b9d69b098ca3358ac2b2c8a5c8ec1e28492e9ad0af3506518fc82ef6cc11ed63191288d30089fc6451de80d16c2bff9bd78224d224200ef8ff06f6ee40b6318fed06b2251db79e18e2138ecc00cfb999b19d73aace5191be46bc63196af2c1ee39b7bd8da532f1479e87638d66107f70eefb8a7f95a2cbf1a7028e98f168af7ddb970c77d679fb678c73dfe4de8d3c738b580ce9d009c00eeb0409d47dc3b0f7f3f78c8cd2fc6b0f9c2bf3847bf700efc9be3cbd7cd7d28c6b00edcdc845a0cb663c113db7cf194b4c5cdb8fc64988125c6f2d5612d872bb8918ac81bf42afd44a65f396a221287feb27844faa859347f214be2c840fa69a475e851a63f6a96e4e932fdbddf2e5e0e258222e80131f4f200bed007f07dcc170e83e66bfbad39cc5c6d75aa6902d8e0ca1bd1ce727f86220f95bc5a100e9956403bc5e24d96725aea7ab9bcb5767a4d4de1c66497fc54259f0c34d33a6b56e31a9338dc126e170b46dcc8fd9801c9bd3de5eee68a7273b1dcd72ad566ad23724b4b5a47ac3325adcd9a524a6b4cf2509aeb8cbab8a56ef59bb399130011700bb96ef66cefa3248fc6d3bd3f81903df3c703da358b68abedcb51ef1f130487a27a5234d3ae99445bb469e938544937f96a73724b92c7359d68ab9f7277c5f7b388a65a56fa489b812a5fd7636a7c9de5b0582a1517f6519d714b755667b33ae3342b244e6b57e4fec55e48307233714bda52a7cd244ecb179392cdab987efe983dd4099d3f9c8a568ade35367358ed148393d9d3509a3a51171de95b42f12ca1d3e894fb48f5d3a39cce5c98c38cd24ed445977e68a62f7f09a56c690d65f66cb3796384a2518d8e54a3a3b82dd11c16abbb97ead20cb2558fc2403268569fe38a2d2c53958d97ac4452848385af906b0d9ba959deadb59ba8a5db8cb69a3bdd6276531720fd52b3bab9a58d69b6458bb6b7b0dfdb92c4e9b70006286ab3efda6ca395d694d799e4a9af5fda425107ae999a7acc4f9bf5981e5e7ae7be9c379da693124dc91634d4662b2580e2b6b43d691d519b39b58e38a13439699d7abb54eb5f306cbe5e5ef1dd9a1a260c7a39cc451da80b167ab94b53b3fa5a6f4bcdea97bbc060f97ac1b0970fbdb6a5d6a9ef6f4cada3bd7bc79097b0032e97b2bc2d5117672d086e4b33ead2b6e8167569b31fb95f9fa0fc89ca89c634c3d166cd2d51579d75abdf1654714b2e6f97d05a988ba04a9b69da6cd366da4c055a98100c51f885ded2f74e0e5d7ae2e48436d5b47a4aa926b54e19e2729fa62e50ecaca56f6c4bf2f6aa54b435ffba92bae6f1fbb69b49f713754d22221b58be6e57957e5251e9a776b16034fea0312a84be8848a6d4881e65aa92d2f32946532ec3cc291fca4f297d578d635ce3f293c11241c95c964d664f72e7865263fb807ea0f19bfea1f22a754095cbc6fb53f654a67943f24c58b36aba009b127117e91325ea16bd0ad3b1a1305195cad44f12870e8d599c302ef757e22c9a459227e5f413c8e9679076d5385d39eb94e5f4d2884cdf46c4b49816d35acb61b17e950a04654fe60dfaab825d7edcf21ab8f5c6f347b3a8665473118ccd5c7c6e1975694afd64f6685056177358e255175560cbfa9a9166546344a319cd84b43641993d5a10318725138aacc784e2552a10a42aa1a6d45032fd75c1306fc12f6fe114fa69eca77eeaa7a77e7a1a61f046446e4892459f02de8cc8167d0a9eb9a1f079a7dfc6ed741bb72389436d5cdc8e5c706ab316046b13756d475a90d9b36d316fd0e7b058bf0adc8e9a6e0a9e39d582651119b36dd1a75b642a73931dbb368d5d9be85bb0dd8ea8cbc6a98db02f5a95ea67893936c2991b9085b5a2da01396bad04af02a6dc60e341453a9cf12ba6bc431187dcb7f1493d1eaadc5925e513a680947088d08cdbf88cd046287413fa98af9b8761d07c85f7e91b3c5f21c66f3cf387452d7ba198cae25694caa8a7277a0d8f20c4f8d7c66fb0908dd7f80c0c9b2f1ba781898a74e8001be18cd7086fee63be68dc87d2c0f205eb00fed0eb522f04c2a1a42da2d69951baa66790b8469a9c317595aeef5204d2f5852dc4e58545d01a5a2a449b5a17a0a66dfd8671ef42d1de5054e93692382d5a98e4f9aa566f5b07753b538275e050b8c7cc13d6636e469d8bbad69cb81385ebf7b3cd7cef65c16876678e48bbb4d83de5903822d66e167347cd9ab0229288e4e9504fd85f96ffb45cec8c66331b7694c49d4f069fee4f06f0df65a7448702297990903d8d64de6862baf71657c9baef28e4bdff70e78ea23b41eea4c4b9b7c3bd44e2d4a39e903a1d85441d29d156145d908e2289ba3698bddb109255bf0d2675e83b4d366f4827dd9942afa343d8fea7c96ed881b175b7bb61bdffb094385f77da695b775e17eb50d06133499e5ed25e48572b751592d54e727d57a1445d1d044b3436eb081d9bc256fe5de989cc49120a49d2779f41ba7ade1d48ea5091b3f675b1363a42cab53b8174d96e48f74427835cbb28c48e0ad955d169317b2847a4724972e590e4ca1dc99533a285e27372ba50866b4ef974aa97287db731bcfce6d785ed55627b2d609def60023c639f5f2aa3ae0aa335764399b52058b53187c5fa65449b65ba50e615d7b0b866eb595c33ecabf16badd7d8fe47b35aa7765db78590ecd1643247bb504192a785779f81baf2bb03b5cece77a42c6787957396ead445899a05eb02bc17e948611f9e99ca6a535977172d9ef2866c995147d4c551d411873ae250471ceaa8e73d2195d156bd0b172d8e8bb747f6c81e9db662343434a73035b716cc2a5556d55c7c56adfca031eab247ddaab7166c4bbbd3b05839fdfa6ea79f5b681b1b1b9bcbb6819130ef4f4a9cbe95fd16f0249238db3306a2aded3bf88666b9fa01ddda2494bc6d17ad6725ce06d24ab45d6927678745b3d56b2f0ee50e6b4445cd7ae1dd27acebe4f7ee53f66cb079a3beebc2eef986e2bdf60346b40350d488428de8865ad157670f2764de38dac20d76573c1d3c801300b3701fdcf31aa339b100c8c6397a55c64dced61682e13c1b6c7be284cc1e8ee84948ae7f0107f1bce7978371307a0450b447b9da23c9735f65943ce3295f0ccdc346b7893c5cd0abb2c635ecd1f694f1513d4714becace1e851c51aedd11c0bec81dd5c02b5f0c2befdb39d2d676ef3288e730e0b88e8903bff01e0cebc00b30f4843e8acc17c2a0f9e2f9f78373f9d9e0c2796e85704e2c08e062e7d5a5ecd180cc1bf5ab774edfb01a47843b5ae1e28e0a177352b8c86a5d3ceba28ac6455065e692ba3419d1bc513ff31e3c036d7567010335abfb007090c4e9ce83e7485bdd279e3089d3fd7e1a90d923246f74cfd1adee324aee2e8010c893dc75cf09455517485e6610b9ce718e9c0c326ba97fa7c12bba85364c51bce2c21a52ff9ec37b8ae6a952312ba01797dfe9a5542ad6ce0cb259516ac8f68a08b813f9005f2e7701b76e9101572bac72996ef9417d7e2b201595d45d526ff9f0aadf1273f03abeb77c07bf0bb53ce6f275e7877201dbb6b59bdd902c41b2040912f9801eda6db8b2ed02729dc779def52ec7711cd7815cd7715c2883ccf52190cb860a5735b43ce637b48431bf81a6e5b6e62dcf51f39630a808ea4134af4185396a6e1306b5bca636ab69b0cd2df8aab07cd54f85815c665699c2a9470f1dc00c4a7955bc1c90e58694eff453ce0e2b2769093d25a26327cd186d15019f82e5abbd143c6fa02e6b4150a5fa59ac95db205f2ba1501120f05178050dbd4020f9adc270264d306618d349b79e744bd3b60af60c9a06f3c6916e24dda2bf9d546bad0d25a9936c27594dfba67dabaf7803760360aee174e284ae803c8f7e2b2e04ba177c0a46022222229a4ab445ef4d96dba5ef3eed6122ef29bf49a0e49179e5542e81dde4044bea22a015a33e82799828e5de4ad830188c40b1933aa9753a2909cc322d4680150ce98e4a78960dbbdf602da8525d2e61d125f2859424539a893b7987b6e8592adaa2d6c936cb0f26eb453eed405d33a311d2841d25217992d56095d3cc78de5387f13e53731a98ad53a996d9b88609d8d04408f6c9da1dda7533fb1113b244e4a92888d1d16c5a629a4b15904c92a902d202cd3a00f3c0d30ee38f9810a2a22046474490b66ddbb623f2493ef990e9e70e4fa80ae3ddd69c48759a1d489c2578f260b6e85b94aec8f44a1207e633bf01e633e10dde678cb6685801ca66c9270f0badde72182c540475a199a7f0cc30af790e98d704cd1ce636cce19d260c5aa5eec19c067b35cc3cf51c33a1a4a9a3c21c96e60ddb3c9d86305a6159619944bdc4f2ef3a560e8642345fa1f9caca856acec272f97a5a6a9a49adbed2bd74511b11593a5a5ad9ccd8f467030b9ef90a5e7dca9ce540c47ce5777967b3f9e0074992d8640122e5259b24c96a931b45026442964d8c80e5b934856c17e75211969696b6a5cd5abb7debd102d468b0442d011111c1dce5442fefacb54b4d92c766dab11e2d403a8d481e140ca46bfa200b1bcc2d92489ca6f90d3337acde236d2d015dfafd00854245b80bc99c25148af9ca7dda7a3267790e199673618e9895dfab70ca61b0f717acf2eb82e5ab4b61f9fade611064615979aae529de5558c295105449f9bcdb1971bd1203c9caaa2d2533b0c3f7d5e9a70b8da13294524a65366c837cbdd4d4a45e73979a144dcc0ad5a16464561b0a438007fd8ad27bf96d77bb174529a594524a29a5a88dce2774dbb60dc912244b90dc8b13c903ee2ffd5ca15239481cdaa3e376202a0a0203123312c2d9aeebbacec8bd289d56b40b3370e5ad5d1776ef34307d3ae644ab7fb7d425f37b2f43e5d49c66e728160a44a9501d16ad075a549803cd9c8c62716d960d51a1f84e06afba7055030d8ddd502b2c839b689c562b9a70756ff39aaf429bb0265cddd7c884ab1bae6aa0b9cc75d4ac4ee3433b9c83bc0ba0b943755ef7b6851506a77c06afdc182c5f1f962f10cb570bf80fb7a8605e42229770ec3a35ca6c2e71a02e9b708eb445c711693a21b524d93c47ea36efdbd8bc250ca2b98dcd836a9e4a7de865933a82393dc5e877629ecd846959c5a8daa8918e24d9fc2fb8c86f7398bf05dba452364ffd299bdbbc549eb9031fa66bf24069541a35274d73222a0a82240406246694848464040989bae6165b206d81b4c5169ba664a59d4e4ef389a828c8840203123312d219994e630fd23597309dc6e9344e27eb64e9d83ad30851bb90907aacb810e836404444315ffd1e87b7c1f835f8e53418e64edb13ccc1dcb1a32df5f039520fc3a0221bf6e9e3d46d70cb6bb07c552c73cc7ca95eb64d9bc12a5f6196cbb8e0ef2a0c1ee625accd4ab9ca8956ce924ab960156b67861c994a86ea146c497518553863b667cce532751daabb844235573d150a15c951237429ad523ff5a1550d3057bdaf0a838a749843f5541884af523dc8e630e1aa875e8d5530d8a88fba088925e577a8aba5673c759a1443f39ec13c9c4945b4e3d71cc42bed36ff43d5613ec305ab9ec230a9942a05f31944349f51a960c28d678291c474cd309a624d33d675dd75ddddbd32ebeeeeee6e6589d2ca6c45c9ca6c4281a20445090a946e0b67d3372badb7f2bc8e09e9231da48fda4827c99078178542a1503326795048485713d14531dab62dfdbaaee36ab010cc53c7582875981f0be1ff3658c8e6f6a8fb1b6b9de9a255692b0222225a9de644329f39c64572c03cf56321d55d6e838be4481de63558c8e5aaa3b00ed55d6e710daabb5cc33a609e7a23754cf2500a66aaca6d445d304f0a95b0cc3458be382cf387e72b66f36830f819dcf2d50b4e790c5e39a772f0447805a4d26042495b7805e4e292ba4b980a5930d004be952598a1ae5f7a30337391955f565f4d9ad316d5a9cc29a57336b7289a4b8a70b0b26936f3d5cc5bf02a955a3df599d4ea3478be1a869b59d9d52a25f48387d9a24fcd20329d3e32ddb676ddccb658eb88f3a988be81d027ea9a4c4cf3898949e2d0206ef53a899038f48d57789260b6e8ef2c9ad45a6bad12d465b35233894c3f6d388b50e176bb5db35c083433b3ba0686720522228a39cc8954f78e83cdf42defd102a435a7f90d35a1a42d9a70b59de6f27583a42d2ea4b98ed46942a12239566fb9d04c28692b751d2d9ff94c28b40aebe5cba7bfcb6070e51706cb97c7f282e54be51e667911a99ce53ebd024aa55afea2cd57c532bb7c0753be920a57f073686ba75b86500dd24005631b554d0dcd5d64665e56777a33f835f82eb8e6f3fb7979a9f9cbf14bcd8fe7ab8568ee7d050b15c94173ef42368f5971d7f13de63a52ee61fc825fe856730dbfbcf4a047e5408f0a6590795bd91008e39a6b60286b390011ad2ef315f71bbec7fc86947bbf3578455ff3a117c62b1a9ed2bbfc1f7a5d1445a1ecca6889843227cad2254b95524a5f8e9fe3e5380c2a62ff30c8265cd17f8ff9cb6d98c3e53561104db8a2e18a0b6bf81ef31c29de5d543e8359bec2e06570cb6fccca168357eee1d4675661395f866cafe4e0ca9b0b7e3b39c545be7e07ea6a794dbdaa2ef30ac47c79bf2af8e52dd8a5bfa7ccafc7f69483ff52bec2f3a592f2eeb17d65bf9415962fa222a813f9b0af791fe02be532e795721fe0eb6b0c011e1198ad7a19c617b9fed29b99122f9032cb7c6a1d712ec94ef5f38996647677cf25d435914c2413c94432913c40e2d41cb4afacc4197bcc56fdbd4e610c9d33b0035151fd0c526b9d4272ed50f29b46acb0c105d829594e0288d209b9a2c20c489c7a1a2a002bed10e8bb2b32733157ddc3f345f1ed180c5e855b0e83552e83594ee76bab6105f4f2e22283e52b06cb972ac360f9fda89ce52d2b4fbd842ea14fab68abd6b3e01d9c23e58b861560e5011cb2fd31e1d27e499901ea5209278c82216ccad99d32ea02aff21ca08aca6f18b472159507b5cca1970a06b1a59f4df473469b1c3166c924cb264618e54bbd9699e750d7cae5af8d2a4071c2a89ca6348cbabc4fa74c7b44b15c00cecbaf8334ab6356802fbcdce80517b141be885267390c96afd4d00bbc0d432f90e5e053cfe10022cc927a78812c87c1f3e59262b94fbf34cfb442e2d020a66b5e315958ba6602f6bbd6399bb376c9282c61726a9df924d311644fd60488105a04943c9f32edb69ca6690da459f434ac002b4cf28440baa61573366713a685732671e869a800acb0d69947c0d30bca24a5efd102e4728f9ac599243f1966ee51affdcad8c802e4ce85720594bacc3968183da134be580ede06f902af8386d113544479a9dca76118417102b98444f72952ce259287cbf47389ba56404a6d902f22a2eef744df538ecc9e860515d11ed4025e0b73a89c250c5a09256dd53b348ea87bddbffb14f0b4459f435bf41ff6c1174bfa952295a1ad558ccc39fb39de61501119e6e8d330883ea822cd39692844a99caf582a1941a18c28a8408b222d86c6269800030a23369882e905c41046980115484a3e90e2460b88b44007573c9145ec354f7b76bbe0ca9b14e8044ccdcbd7400228b37c35199364d9643c924518f2bc54922593284df9b66cd203ac490fa3fceccfcf6302583d2c9a98394101d18f26343eb808c2124c614051356dc2c2500428b1864556d6ce71527bbf4e7b9b5914a42ef9f4451446604212328420945084326ad003254348c16b5eda1ec295ad83815984bc434a79b393625db644a92465494847464b73c9f4e133d929358b90bbe6409718c952eac84c33cb074938419183173c61480b4ef8c107123421440857cc2cdec8f386e4997946e1a408235018e1030c08e010b6680284891b342105ac2fc079af755c50e229c7e08551b7640c5e1cfdd3d279d5bcb435987428da295260c59112278c08628a97a8caa955dc241f4398cda8a60c8020c3080c6a21f6ea531c347d302204b157100f360aaf0e779a00f33c34012edd52c4a15cebd0e4a17b2e5d9ee942c190291599ba6ec8167dcf14a0cd62fdb2944b35c816bd18434aee10a809b0670a1095451515c9932371e8e903d4a77d7a7e40df372ebc1bce405f9c39a8564653ee6f4e30ca35b26452c6539e9f0356ee8541295f092d6d69db02fa5b7f1b4107d07b174018a058b3ca8785beaba050da46513c804ff9e5424da6da0135ee624edeb66d9b5c777304c3227d955028a5869470954387777aaf263b6196c393dfc4edf3f38b61bb761feae9407383b62f0e2e286160828418484fa220e288254826fc40041b48f1431545488202968800438971c80f661b40a2441332c450823de153802323969290a0075080180a62440f9a20e10b289840f22a83280a6074f144083b68c24b4e4106520c42b084124ffcf09297f982525ec2704129af92f2525af982276508d25616e0bcecd6deef04b44bbea44c6e41bf1a7a889c97a190fc1492534e09c4875ef3393ee76518243fc3150d9aafe18a0ebddef2fd1ba86b2527cef1e9cfd0cfe9ef747725ba55d3a8d4be7d93dae90a9438f25d965c641e7a48eb09865de20742c822a90b2018a1640905f06009d80f54d0c08831a850c2c7c679419cf8a0db4a59df883b334338828b232049a28224394f4c72bf7a419e8800011f9c30024518474cae7881aa19593279a24186228b2cae87bb92cf6146c99de5cd559138725eaa489e99e3de9618607f8633943cf49c71e54d91fa9e973edce967a0ae9506d29c9db3881a892b3fae6a9aa66d3a641eaa2943dadd5b6f5db158bddc227779803a8eda01e63876a6546eb97f11d4be1fa975e7697d94d652d2debe1f59bd8a452a6587f7883bbb2aa5acb5564a6945515ab9aa819ab76d9e0e5ead54525969d56428e290e5ea04aa1f79492b476d4b97ed68bee00a127db32891e0d8a15da694525a69ad14a3b2b65916727e345a1330830156a82cce6e468037bf45694de08c4a85ea6a0a04bbeb5dcfd24cadd70303c8205ddb26aba0f576a8cffb5270e54dad9543ddae389ad53ba82ea350d97a1b0b39def7d33a1a27d21ace7378a3ddf7a3d1ee3b000dbb8ff5a56c3fc09b3f45c5939247fb913348977d8739bad5ef1c44e08c92ac52a95d0aa4db3cdde8f5346b2b2ab3d4d6a95abde4362ee5fbd13e6d86b5e624715b3cef7628cf4b71da3a6508cb493ab5d75ae9d6ddd6c7130aac099e90487901f865c9e4e9c70bc02e4b264f3ed8109c649071ab95b6a9a70055b2644246d38502825932216309191c87dab42a2dc8840c2259546d2ab02af01a79d6a86342c6102bdc11eac96a4b5ab24d9e36c30c8cb820a8d4198cc0361db45027cde6e4d015d0b4075a0bc200090649309081aa216464f09434826f26638c2a4633c4e0a85b328b167c62d284252b3cb04c00555932f9c11119e0b364f203980bc01532ac1270e50bef0543e8c000bd2a3e1d30f101922b06089325131f14f1bc006d964c7cc04412989225131f9400a505b865c9c4074440a00933264d10412a4b2658248149134030c515679e4765f9b5aab1289b10e129ebd0b94a9cbe597e39ea38caafd6d076a5dd5d83a0722c71e46bad15b5a2756fdd524ad92d6479ac5251da549b6f29a5ec9e01c44aae6b82e364f3cc4f695131ad00fcb2d271d4b6ba71a898cfb167911c6294adbefcfc41ba26a03aab25796411b945903b013494491290c362f9ecec246029252740e2f47b862451c5740d1bb45cce3102a7943c731c9bd65c57a69438af860128aa64fa226e0507293e7b50394aae613301b664290513609d74a50ec8eae9f52cdb7c55a638a1a8fa52faf04ad2477227e57eca6223f53b0605206217ad9033976083dc9e12f9e0ec676089dc29ddcd754f232148c8dd496471ca503d6773e988dc5d4616e7d3124080446e232029428b28c4006204b36e80529326518e2022648c6efa04e407655c7104153978d9c0818f131859a208288ed04928a1c4091644a080052f7136e51e358082041d3cb9c18f14bcc4e984c4086290841c88c0092430bd848a0479724289245210c64b04bd1f643195248b33b966f1468c25727dad625091eb1323727d5204568fccde51df8fd733374dc8f7f7f6fbb92ce4dc842a28aaa3466225e5c89464b36e318105b97b77eefbe9a4cbc61759c45ea82e8024bd50dfbe1f146895c6ccbd7e3fdcb68422f266a57629757e340f7bed6a2458647afa1980275054cd6f49ccf22cc5070bce96b66e0adc200c2d9c94c002094f1100620848945105104b5420632940b2927a42f2b4131399bec6f274e1821a248109084b74217350449412587184119690619970820c21244de8f443a69fb1438a88bd57f476094a4822d3cb8046478c98315824818a4caf1afac104510b646318114b1a82e28b2835286304455c10e5d55e097233c182dc24e841f2c0cc2c90c0844cff62554ec46470031a0801091914bd408a4405438e1401e2c511b1177d8e1bba4c29a5944e229916c994524a29a52e93460b1208586429ca2460d8200c1f61b0208c284798e57ece4e0898382102132440316be207a2a9c352c11822d3af900014bd9953c1420fbee0c2084130318215b9ff26207237cd72ef00f9a2091cb9aff2fdb48f2f8298c9fd94223e5c9268ea7c550a2fbe1f6a2528a700220812c420c208c908db9c738609045a83232bf854dd9a0f1f7043fd7e6a1999d2a352a00113163572a7524c8051c4c3cd19d30f997e9b5111450f4c1c21073e0021d6c48815549c80065034e1d533d09677446e20140992fb0a70da29655d1421537a2d85e4a468d656124da55aa00321c029c194e7a5ea0440174164faa9820f4cb898f1e4ce5eea068cd7cc85ec2a21cfaf9025132e88ae539e97daedebaac31876b85435814b572eb12970a65b92e781a4ebc2646b4a57b7845ea40ead914e6ad6fc652d018a128892a90f99862bee326f4959eca0e479f1c2f27c07656c9deef39788861220ed5e6b873c3c998513593891eb4fed5a44494382355913c0cbba25d4655d205bf33358c2419edf81539e4ba84bbe969a72e7649124ce4a11ea3d6ad724c2d2fc453aa224991421489e4653b6a44416bda2244893c9d28fa33ca77897e4e9bdc4bb94e72b35fa7154840404893c3f3b893c3f95c8735e6c2d96889a5a47d4a210b927f609fb84e4e9398db82c4e23476e92b090c569b40593933c8dc8e27c925d2078f0a8a76eb4484bf23cf7a475b8273b724fdc13f7c43dd9d1c26c11f7648da6d1449a49d3681e6951e4f8e4c8be7bb259e28694b7244d86a494e735220da61569300d561433d2601a921692b6720e20da9af713a0ad790538219774dc7be10ac8931fd00d57edf44a02147b499effb0f5b01175d9a43e528157d9a53c8d8e9092f26ca36991686b5e08e0e7b5d9bcb6645e93694a4a489e6ebaaa9715674007a724240ffdfca518033c24135396d1f00e38a85948489efe64ca43eee5e7801e5f371c8bf479904caf223e4d34c7668d40603f60314384e0c3091f18318423a904242a402206507e886144511190a22f40d0051064f4600396a3282158428210331acc9845ca73decaac92454abab3d64b87ba0ebbb8f2465459ca1294ae6d851a6e2adc49b4d549e4f477fa67f52febbf962593a521796209036b48c52f35942b9b565ab58d63ddd994a54aa9663e19d821a8f2fd78a005e555be1850e24c96f7a9029c379ff3dd379395025b2a6d696969e9295f52c4a1acca39cc281d8a12c834946579167e7264b03da3ad04fc698924cb6fa969ad955a8aed5f15899a3dcbf246b4a32c2f5396b8db6f0654e7cde368ca722637f69456c88dbf4f861ad4922c7f53ecbddcbd9b76efbdb75eda35525607b091fbdd37844b2925485b52cefc2c823939520201064c3939597e06e9c50b7090022f9c9eb082f12519c0b485143016f808c1919794f2f2465229e4ac670a90ce9e29c07e375d50a28cccbd6d88818b27c896cc52b66cf67ad46f975aab6650a91e3ad8ec226fd0eba0ca52e28830996a21380028407a9945a934eb8c7e5686cc010960a08324440002108c1cf1832210a104219490c453059286f0918227ca5062c48b96c0052918e207600491841bd418caf212942afa1966ecc0d2cf2067c8920911789077be00c59c4c735a4732210214999e859c9cfa673127d33a7de867a0cfd9f171eff53ccfbbdef5bc7bf77ad65ace729ee75d8ebbf7de7beff550f75e0f65b1f4c29a817bafe7799ee7795e87fa76bb6ddbc21d9a4575708293b702ba5ad1acb8d4d4ccc8d0b3dc98d316fa4255344529a5ab6d65e529d721f34fe6293297affb550d346fb98e99b3fc87655503cd5b7ec3cc593eff15671312bd58968d458652baea995068e62b5fcdd0bca5a52836c25a288d8db08dd2cb501810232294524a291d89a89226254d4a94541e73b5d2363a7d98230c88119198902324234948e6283306318edcc6c9d54af59713c1fcbe06afb6d75cbe5678b5ad6a42a199cf843267b9104db8faca73cc842beeabed33325f852b2eec41c3cc53a959f43f1349b3563a5abeba0e96cfac42a122b559322958beaaf718ac7215fe0e83c18b575c5a58ae62edccf0c9221619c4dcd50c4bca45a6e505463593529ec22b87c1df5dbccb6095192c5f3167494949794ccaeae5a9183b63627a76ccb66d739bd627a6635696eb6cd7a13a94b5d65ace6765b9d0c7c7a7590d1413233f199c435bfd982d9494c8253c6df5532198725b5a5a5856409594cfbb2c43b6bf31eacb8b548a7171f1b171497a59a9dfb8a2dff7d475a41c4c792ae54235ff2e5f57e53336369572f98bcb6df07cf54aea2bd7e11d0cc39aa7ece5d77df46b9a4ea9bba49e225473cfbb7c79f573bc401006a413729563e43aba6e6663ad0dab4d549ba86b2a691d255309c783862bd4eca1c8873b4e18102322f3474cc8119291244a29a501a80fa8342cd685490e33c5d0c80000001000f314003028100e078562d17838cd33a9f80e14800c86aa4e76549a889328c7610819630821040000000000808119c20c80407db4c0cbd2a06b0e23bd204f9593a1dd0c5ec63a167783b75562fba32ba48da7551c88917b06a830efac541062c6ad3703e5b8096722383a76c1073066e5d946b69528f9ecd5a717a51f80f3550e8990c72ef3be2a2c94c766d88c1ccd23887a18e5291f3f0b2bf34fa83c3345115a9247eb50467c976c8069925c2291e48969169853df9810f8020bd886a3bb18ba7859c62831c6eca918ea4e4211496e4248df0f222eb4f1bf2c213d607172ba244344efdc826faace94c3656cb18c652de67f8843b2eb14b1a095305329992d6d01136bb6244832792969e12dc88cb238ec3aa91715cf711ed1a81f404c78a721858cefe3b35e1a4c0388c451d8842af103edb73e8c4441aeee2a5db4738325bc95d7bd581439fd0cb4d5f8cad1c7b23770b1a5052d7a16f4d3ab3437cfaad70cb99b84da064005eaa91a4188eab787494f380046c8abec79075cfba078636da26e96c5c56017adfda0b041351ff782b96d8c8c9c3eb931adddcb9c5a29f6b2527d0964f300b7d219a69a7a20d21d9533120b073fa12b375df6dfc0b439f74e5cdf7127347e1133139ac0635fe5758e04332347c120623fcbe02cb50acc1d526c48ef5f0276e601f4a232d5f00090815ca145626f0fc6f998c7c043bb4d7781597c66e4a8035f5df83ecdfad74d45eb7893e7b4f113c05640359d6e11f07c2dfa052a9a28aee333a080d9a4cfd0102ae49e338f398830d66dfd9fc15c3a5227d58404f0d1652912766a37ac9ec41b9930fbe29a2c553bbb738868dd72f0436ab4159cf839a72da883a950b86c3892062a4ef5423e3d23e22d618ea8f519cb43d5af3b7b0cc9b8f816a5886ddcec61f0e7f1077c18c8fdc1e940ea03bb65cb3091bfa41fec8092767c10275bde9ba0b291eb6e3591edb1e547e6483ba1cd912670b2804aee37cfb50bcf3473530cbe58893eb39f43b45a380054aa7c9ffc0573fb49f0661b956b09bedb54c2341bf7d6578e95432b95ce84c3384455ac41e33874309c82f76e6f5873b8ae634339cc184367264879fbbe757b200966d6577f7ba4c0d6577b06c75632e1f07584d833387a764d11bc687517a6bdeee13bbbafa0663aedadab806b526097ab8ae495a970573eaae4091b845cfbbc58bd388622061cbf18c0398c01a2edf4c4eba662f6dabe0b82e1cd1b318108277121b9ed6b5d464e9f26faf675fbeb2f95175f48bf47d643e6aa0da40c3daeae6fa77038874d464fc4a6041eaebbcca25bd9e2b8265bbc5a6decf55faa2cf8f951a1fb7f5a945a8f03050a42ff2ec7d02585a3f6da8bb037b76987694497c38202b7c8455948640aabd43b41c8b156462d5b45c42386448b2f9aa7208f6b6ed3055a372252870750664bb0d47dadb2160592795411a56fefdca658466d082fc1c5108cfee5fb4399b4b61b87a81b8fd3cf60f3aafc00960055c9b6bb61f1d714e030ad6c4a7becdbee5c01343aad1720e657c0578a996a3fbabb27555169b868dddd8b5a0055867e366cc1697de55e99039195fdd9645612174bec1137acd5fc940c44c8180e8230d8b41c6fe4bb29e1141cb789ee637fd91d971d36336b6a5c3503c3985b6bd4b35726ac2bebde2503024d507dea8e5ba1efc87ecfefb843a6890a63acb29496137a49e1e24e5472249a00e85c99d4e33e27d28a0ed7a5f6230b3acbbcae3d9313c3b8324a0497ca376eb30460a2a76aec69c837ba1a7afda588f6b358be4f5ec103dfd02a0b5daf72381c68691586cea77cb872d4e4b28cc963ca676ed5589095c0ac1d90933d2338ab95ebc37ec331cf68047b6dc4f289cf13d84ef0a5a6b062e518f606f347875b0fc65c487b211daf99c77ba18a97e5766f619b9677d425334bbfdd554863078f0c4ddd6cdca6fa54b1624b2d1ea200b9a660994d5eca5f737b2bab8d5c4a913cacc4d9bf631137193456b6a491351393cca221b131c2b557fb12706621808d0c5a644f9760f2dff25f35216e85c3cc311d4c128f5461fa510bd51743cd99266aaacce6e05fb4667d3f877e060fdf022157b5956b0ae5cec1966acf733d69267f45c95923080604db9a29cf2420c4175e64093634c1b5fa0de99d642256f0429b8d49fb195c08c2cf462629338718ef8ffbf71c05e721365ed42aac46759b4ddcc76798dd79625a469ab004d194edf0b2699e8c1365b9488176f82278e293640ae22c181de67a709d528fd6a0a97e27af1b3033fb285edb7c6c945432b181facd96019664599451ca5937fa11c3f336a3223822948da86c0f8343050b71805d1213f806715c789112a0349e4feb131d3a2bc00019741699e0bfb08c65e6ffe77fd88979edd039cb5de24a07035d46b2d2f18554154d44494d5d49cb4c373e9e18aba0190d1011e9714c6c33ec48b5b934e5ec0a88979ae90e029a73c4366bf2daed382404a5dc12377f418258c3b4569149f4bba284829088ce83a0d0162a63db81d05d63d37d18c76ff6a0b597d3306aa412078636b2c7f5031b6e10e48870e5bbed4a08146d69856489f0240744bcec6cd9a71ca6fc423a4609a20dfd3c6e7a59c726a62955ab1afc536e055c72205a725cae59a38431e32b920bb06cdcd118eb30d32cc1c59890e3b3f153a7feb9bbc3b23d1c4ec9a9030db842c6962a9937c72678f295c7712f8e46775a6e4a589f278cf5567d097e175f48daf55cca67e117b96e822a2782a7b435400676f2ed29470fb69223e3d59b57ae4a82a10fdd104303ed092534acafc618fdebf1ab36b3e34c0f8bafdea0a805457987c8f4a85c4966e1ab9da2a0a8e4d7491abf9996e61a7cea0db1e7813bcd4b9ee9444700470e9971922611cb6652e52d3b57a99dc0ec15f5e719fe4211ccbd92f896ec46f419be5b0d1c384fa61744993930eb6862a6c5b66ea2184ab152db73529c301904762441bffecab2387058edce749b1353cc98b739a15bc86d5b72391591be5497fbb6fe78ca927c913a79789ff8e27a8d3c40a3e2287fe5ae345e5ba0669ecc6d7a538c43f5cd3187232636d2ff6753ac3d2c293742ba62526a92e2be52877753909f85dfd6e01153a84102fed68a55bc92bfb4b8dd879f12788f1d3dceaf0c3b73c0f6c503702525c48f9adad381ee2c349f171cf494a4677c7f2b9e93be57f17b7c655e8a893d9f22cb567a64b9b703e73ddb99c559a691fe7815d7e0d0f869c5e091cc860addde8b672a3b83a7b2ba7987d3ea532aef7cf7b05c4e8814cdb898d19fff393d45b224a26fceeb02a1b2f877caa2243df562ce78ec6939dedee3498541f777e3d5d8f3776ac19af21263378b91b0166758c45367f8803e8b7962054c06dd3a87d315bda3b93522a44bbdcf9e3e0f5d95bbfbce37b08b126a36f4f69b272e530c69656d26c320b94f26f7d0dc08bf437b982f3ece04ebadc49ee0410d537a95fc95c5f34ed05bdeafc87bd071a69cb42672ae9a73d281bab4e92087fff79f1c3314abfe77b50e81a23371d86b66148b2587a804540e4e0b9e4aaeaee6fa356dabdc051dea4b4011bb511e1103c121c991c1a9131d443e0c70842584ea23f7cb559ff53bdff480a96d094cd585a70eaef950ce1f319133133022788e22ef9e524ca44cc79ac0eb2577687a1ee1a85066cd25706ac86a7d42c6a62da08997f2bba37ad416fd2aa2d1aa6080c958faba4bd715a2d9ee601b70375633ae4638ba87769c469e4d5e77315268b11b92b01874f631096c3a40a603754ae97f6a718c892087ab2f17fbea2d0b4bfe238eebc6c00bc62d4df60232bdbdfa90a070690fc2c830db5d4511d6430009ce4b796f50c6783213c64eb4e6233c623aabf2dbc9db6e81a0565cba5a07d422d319f375c460db22fb3af5256fecd96d7d0491784b4c284785a30e1ab0f7fdb93d39058e764be7b746d642e43cfb73f8c1303692aa25102712bcbeb4da6fe078968ee82987648807a412b004962f28901f52795bdcf66c59bb74f0be3d008f732684474932a7a085a5bfd03dc99c2300dcdba20e85be7594645d77d8c1648083104683425ddc0d991f6bae1fc178fd1c4c919b1bb8a5ca35f6e0700ea5e8a05db3ca0a2ae81e6da9eacb7117d605ed6a5968f7e2f9996f792dde5518e50c969e9229acc6d5c86bc52af2d8e210a0827f68d1f16149ea5d4877bd7ac93ee93c15662d077d73da5cdf12b324623df6f69ff089013d570068ae33d1f9fb42481b8121e840f1fa1ad014c6c1041cdda477fa529d9032648d7ea82988c721b5f0fe78ded11dc708baed23c413d83600086e75a8e8df9c609a730579230096be145ab378d6f69126d9ceaa89e5e00c0f1d5c592c42f0eecca6875e09de9e81f050d9536f036eb73bc49b9104f09f1713223c33c73e830177e4ef25492fa0c3780341a144abf59713f9b010e75693eaf82ebb39eea88831061112f2d5f478404da95c67c90152761fc4cf1b30361aeda869a5fefbaebce8a0d24310e6b279a3abf2d4bc6c811af19890b97f39a0fcce99c5e5d09c37d9bff63676275bb03e0a8e70fa38960a32b4e1ea718354062be05acceb5db88d8ffd5600d8efd641785ee781c99db081a41b27d52e4ac8f925386167d3811f6fea019d6f71f6fda9b5aaab57155d5250e7bbd727bdd38771bd871679d564c11ca8a11a77dc78286dd3e88ed041c9433c8b7d4156aff9e80509a07f2b2c9ac79d41379ae0e84af100a14b34be4f1ff1f06bb9f99f197f46be1d8ef1c6b39845b4130b33e44bb037d6d445fa318bbf4ddcf854d011384ac806f9b1a7eb4ebe742552035fe29175e0c6e1054d21be22387f67b5049e8460936e4430660a32433197d294cea469a3138b0c26fd44ec5bfb71545fc7913046c791f242b17d7ac7581bcd1ac885dca5ee2d94673a8c5f2cf5538a91eb4b528cfd9caa3dc51da8656d31a107f4dacdd0b44e1627c78f90305af5a4a8bc45832e5c140c2740ddaf33b5749a31753207576841ff9dafa7fe4a13bdcdd0a6b1781a2fc21d6413e4b937144b1822512eee25161ca8d96f9bd3c285eb1fa8289e05e0e020385a42785220a39f0ac1a95022c9699bc07757d118f39515ffda750ebc02f363cb96f36eab3b3762c4a7950a777ba6ccfbffa73aef4baa55ef1c255d60dfac8c19cacd6afafd7100e6b49eb66dbcd93769e5b0dd2bfc2ad43ecb2cff571d3f66e1846d8d1bb0c63b3514436121d010d798fb5095d828f5af38092fc323194535811d22500b38b93a79bc9d3b2df535d7d2eb6f2e1e87c208d7af4ea53d7878ad82e24d3deb7c36f5cb50cd10f5404c1a82abc46b341dfe86ec22aded91888c44730d85ffc73f13777ae2c7d9c5fede07fc3f70219adab50b4e412cbe34e4fea9f49e3bb29b2bf3c045bd8d2d35316dc0ee4a43cefbe627d1f4a22c4234d4e3a6f589b445011a5fe254e3dfef64c4d2810aee9cf1089556d87c55d45102e02a0a36333f52d4f2b2a04fe26a72c3c935d7ab2c7a30de22086d642c6b408437de85477376788d09321cef09e4f79151734de7f62426991d76e70e50f00977113b939c07629fa0c52d739e57b55d5289a8d87e40c13a56691728990fc533436054a314620a611ac322d2a7da8b4437d3b308f6329383dc9d34d0e0bd0a94aba2c95bb1a60b36a636fc4df114dac7cc1e735f745204fc0dd3c48925af87cd016d2eb50fd4cb5852ba8f6eca0ce16466902907603a9690b7ed488a7279c38953647542506022246c87522918cf2c56909de6e7a150570c6f919c2cd8465b3f844730a4ad063a506ed4518d7ad4b251901e373116de0690adb55ad639acd8cdf83b27cea55c74d898ff3457be5a74c29bb3f02c405fbe9954c1786a6d57734893605a726cca7717dec7bb38d493a8910688701dba44db8d6ef073bc30f3705fb701a7bc90037addb4f775bb830f2cb7d7320f9efa95e3cc4406f957032f0f77f1fd9928e41b57d65c2841b761cec1fe99e27cb640cf00c5fba95232a9e7bfc4a13ce9c834eeb73459da3d245cb5330ded7f7ca7ff5271efa166a7e332989d070ab4260195df438c95e42e1e249dd907911863a9774bc18570019fe9198e2ff338efda91cb453e0b8f1f82822b7f64051acf0492c178c416d616165fbf74de23922c4fc8530f0eca6a616fee70c2ea73e6dcd9eca66d5847e6cbd271fda7cc3dcf759d36fb65e61dbcbf959740b07e91e11f8bdce366af7cc53eef6a71471810c9e01907c9f252394f1e50c3476e1ff60965baf78525a40ba1be24f1efb3dbb37d9c8d20f9bb7f2d1246dfc533690f07bba0ec80d4d209554fed4ea372f6157d5eee1b9cb251c62134569e298671fd6f5231d49ee7de81717c1ab8bc04c7e14e19206b62f6a3e0583e203210599be670e6e678be8e49f4e780ff40575dcf00b442baaa11a417fe4802eff9777be23032ebf1c75f4966250d2df91ac3fb872fcca347c28469f244abd752cda27ca888e55715f69e1eb8fb608dd812bc9002b1e8e8c0fb00c8c65bbc611f5670f694f658bdd68ea62f21d6c78474a20e85400cce320541c6aab3b9be1f6dac762740ccaf3c79c41715a53e0d9efe801eb79e5ce66772cbaa2262e9622d34f629ac67389e65dce6de6402953fc0e899bd9a79aeeba9d81a4743b540c3045d95d4483673b2205ea0e207c8725a2704d6bb82064143f81eae51ff6b48357c5096f721d4a9c3a5323ec14e034a98c393b01a3920ef9b149edac869084e96c506c7d725ae0dfa0792c0a54b7634fd24ab2477f3ea13ad715470dc9887829519b6ef740c02621b8d93a7d1531a87e36b585fc6025e508df63a68d91ed4bc70a8a60b34094d066660ae25b72b23a7cea078a9409a08c0be9b8657ad6432cae0e30210bac32737a5e185b3eda1c0306cde381b2c689a951588b78389da1fc67bbeec3b9dd40716a8db1338698103390c408259217042e8993126a54bcd2e83aea61583c485c5989d276cd41680cc611b673b1331d784cccdd5a06592dfe4fb09b907ab3a84c88ab0a566adaee01c1c5e628a13d2f7702eed681719d70a4603dc66251334ec7fba5a7f5d22972c9c25cf7d868b5b198aee70a046b26a7434a004354403424b862af15fb47a11b845e36e05fda397824efbf4e5ae8c091287cfcf1ec41b77db441740321def532463632f4409f4017925ccbfa14f81f5c0f69b589c6bbb5f57dd95d655916b5ba74d47ad759579a86e8beb42be38d0218ce205b750c6197def183f04110e6f0e4793d3d5b1967e1cbc6553b5e2f61f70e9db950cb018375a9c09abb2c60ade21355d59fca132c5116146f42cea389395456878b5d30a63e5ab8d3b5c0104d28d269196d75f3d9c9e9a5e2e01a5d680b1f442aeeadbd865e4de988d068fe38f4fad64ad94eb72c62c599a2bfbd96e104fa557c1fa81b4c02a20b82355be19f75a65f2ef46c881c742a9dd0c4cb9e1577293465f66e27c547a67bcf4e2a15e86f5132888c1c7f803f18f62e4c5e4d98ab116cb020f483154206dd6971f6486f78ed2ba2a51d0070a21202619ed06c4fce8d5ec95f19e6556247bdd9ba057b7193f8c3998d31441479feb00e8993ce802a5b0b9b5f1bb59716c6648a60a3a6f4858e90b5d3e526d6d8c3b7cf715dac10fbaf02abf21a58f31bf347ca5fe5586035e7c7a5a15f1db3b8badb3da139d7c3cbed0798d4455bc4cb235d995d4ef235ce01fe3220a257e59e8a15fcb19ee332ad4c1fa293e36fe69b9d2b1baf211bc66a69ab2677f1afc49733b230918b7ef22c4b219774fc04df93e700b3bc49b77411fe87765cd0d1f8facc7e4bd98f4ee2df560c203546c247c80d60e3482fa0e1d2ff6316737ce349fd69d20c3f15f3fe1d0a4ec43eb3a28362a47d93ac008a5ea0d32518b5bde54e50a7ea26770cfde1f664f4798bcc3db307ef71a7c8c6472361d1b158fd2070a0897c95d2d2d712674b257e9b15bf8c4989b27effa4383f2a944216aadc20c3e83484400f5d730e00cf7bf3c9c05ad54a4d5c6a86fbf2b93db404429b1ca1c887e71ed1a1625bc71c07118310e6a939b75694ad2c9801f8eecacc483f62056b07b8bc187b4b539f0c0f081274014ad97d55427a657f14614cda09780cb6c23c622a14b405bf2606212a6a3ac0f82dabee672c744c9941194bb9323e6862d7c40a236a5f951202811e439d9a1fcd13071534c1cd7864e17401c98389a25119aac57169d8883095c7bbac5368d286016dbbb06bf7e816bea7da2d1d2cdb4af24d9012e23b34532fc4cf16251d2203639154cadf4fe0d6e766c93476eaadedc20e07fb8ce25c32de18a4aef120244ec37507434f24ccc6bb758223872e9eab267778bcf1f3e851cc180cebd7a348cf1913836bafa76873d1f3a3e7b375f589762efb680d29ae405a05204045d8a7a68bec99e09b3c39612a716250bfb388e0ba2767fd3f4660ef955773ce69c0d84ce19e5516687f1f0f89ca9e1f2520e29e4b338d7fd4c9e0773c4877f7533eab16e88782082846bc68513a017469876754fe2977a3ef1ccc7778633ddcc04bfa2b77e0f7b70ba186d8db51a4ce501a334f679f6405f6d7b7f2e0c0d13056d138396094e546edb03cd6e2507849f89c04cc00e3624ee0c882a709e007dbc3ffe5f56fa2fab85e64c8897806a5b1d2e21f14e9c42989b301b24474bb4f31c124117127547430380f1b6309bd6d5c0b763f76de219250ce3c15feaea3c06c1be7e34809c8709b54b1253fcadbfef210e699f737a5fa681a37638d15ec06192ce10d6665f4f94a371f55b0c019114ee327d6f4f2918da160a0dc4e9e03a4f3bc3817958e589461c62008fe58f91520b68367211af66211c24cfa6dda2009557c5a1111e24a2b76beae7c14cfc2a14d4d12d7b0739174181167870dc2d10c107181d199a6339ae2781012db67cad3825c6c02d972bfa4458e313a551674b671cb4c850dd0428c05cbd5a45055e255544d610f5441479dcfa764abd6576b174a34500a69883163b640cec9517ee6fc70fbe9286f4ed06f0a60fa438cca4ef3e12521081fb2224a5147e62034b99f6554155efc8904d18686ccb60e8efba08975a78623690dfeda30ccc724d5821eca7906c8973b3fdb962acc870b07d65f89d40f91fd5f244cdcf7b3dfeabb4e10d1dbd4401a87cc90f83a8e938edbd72d386880bd519d7f1177b2ec6d48f0c8fddfcf7c87997b62ba458849611ab422ff2cc30e0d34e4784d876b16115090cadae08bfc1824005acba805cf9bb9ff51ef1afe9c7ce170e77d37e4ce38bb8cc54b74d3c348d3260a66c6101ad1c2157c5fe239e9fec011dd377de2b16dc531dea1aca3372209f04551fbf33e26a5298082b5b02053c4d48c754f13b2b7351622b46a330689d139ada2483c3a49f722abbcb73296a8f3381164c4468471af6b2815d85fc7518a919729937298c3654f2c8c5cd0d8c5883e5bd170c76a84f6d204c16a9c23743bd3b398c09e4601e3595d42098c10813d06920536e16e95e04991644e0b7313e5ec1176d3d1f7085a5daa593d97214063d4a77e0ce34481958962fe28fd47d535f8f66a53cb555fd47e13b1df472b17269f1e5286bf24685e6f3ee0e9ab04ed96ad1760d0c4ad802cb7a938a7fd607c79715be1a8e7790cddc2a940fd703c32258ab844507a8cdd5c9af072228fb3fbd7a6af4d0d384ead3ba08b0c6a442483c2c1e5c6120908c192526608ff6b892fb93d4c26d27ad34063899a5fb20538798407830b80f8c1b640b501d35bf0f5ee38a36894c132b019e276561858ebe230520fa3514b07d0430cd8dfae77c091c6df62e30fce84aa540fb3a975c6504e21358010718e33d61175f32776df43b958088a4a0467fd4722bcd070198009602aafa7501088859a203e210ed9a4a82176747e4295d76ff090e81c6861904c91a5342564564c448bdfee7731e967e82d14b3cc538e8ae93970bf5c30fa79e29002cc1e9842bc8ad5c46cfd6c3331c9cf9993ed837bfc842b5b52c2024dc58d1d047865571ee4d44f3bc6cd61f40901c1c977543717a81dd8257cdde4869db80246fbb796bd9f999ad7cb82ad7090662391238c6e952a465c12f8dbff4bf011fca6726a9bddf47dd24212b051445cb9499fc972a58ca8194abb03584e10ec996e7d287f4d0d040499c7f864584f951aa4b31a418973c856336851651d63261f6c810011694463027843108bf0e68279bff3e0666488ab723f9bf5f9c3a48e1e006a5d8af4ab0fdc75ecf0065328da0f5cc114c26d9939d1907cb6432f164178582718c88c966e7bd7a399c5c35910962c743178e9dc4a0140f56717a674ac96ebf9f0b69d31a9fd5d92155a2c0edce668967503830c1cb3474e4f2bbd9034f2c046a18f7faef2d84c9e4d0c3a0d066d064b0712e8aff62fa8fa5765903f3a78fcc877dd8a1d920a41bb8d077b49100f86a3b78cf1e3b0c987daba4f1b5d9c0becba864b3f1da84bff518e91072d93515c61be923d78db6f834e9004ef7a9a366b23404dd25c71e4d83268aa8ece09417181cbc8287e6350fd97abdd82e6db6f146277805e9af0c26c8d0aecb312dffe9b0c4f9a0f815f985aeebe2e4eea702311519d3280a39853847d1badf8f1520838421b41af72d6fd142d16d8bd1942252c983e8aa45885e35c9563e5900a517669971ed82b7378860af517d1c4e218bf7bff77b5e12d39f944b796cb99d25c2580b272fa79067f6e83961f3002b8a1050758d01cbb7cd9f6374405017ca411e4a0954943d7f99511c5afab2022afd4feea18638cdabfd4c8c1715b986a4d0bac5731d2419ae7ac90a4079370f7f04e3bb39eced109b5e4796a2cdd00e3aed139fa68837917d9f08d5721c2e28884c8d2294b6858fe547a7980353272907969406eb841f2e002b038df0e76a8f38450a8fe9a219bd1d9efb4455908b039ad9e7ab376e2ee1b7d1246f0bd66e988719511561279c42e0149b475475f056e590cadd4b168fb4e7188857c5dd25204bca45858c7149137867873951ff8a0779951ac41a84ed9a004a1f50318776fee224cc18c239ebaf2b2571472a1e8fd3731cef3ea428c5139f533e80b532f07befaf64023c2a87b461f7f76cef36513a016777204c230910147be6e7d1ed32311ca22594fec1137a00144c3fbda05fc17faafabdc98a0f1d7311385edc19923650728443f08aae8ccf78adf0999cb333971c7072548bbb0d4f398e9078c9fa4df28e14794f64016255d410cfd79c7ea5e2c47416de40bbb0af85acb7382c540677372d2f26c097390d9c5a8ec51664fba44c4b219081b305d113bf95a83b1da9af05cf3de8f6e0a1dc6b0d2e7de6e2758514714bfb89e7d952b3a739dcbac45837ef699b675f0a6054842213fd58f9d74d45c565f14ebd26e2d828494b4d9d45ddfa887ca29d7692e3237f03f70aee2943e55f80fa5763d19c42a9baa26496dec674e3f4f9c02582a8610948f0622046e3729f01d3dc8160da10d67a9b9a7dc543f2d490ddca6b99d7e29fee33f941aa0c4da38502a39bc335ac68c1974e5db1a566b6aca0a21132732a9a9edab8dffb44099cfe47ec82b304fe8151aa96e33e99d8b8e90826c28f383acd54e352cf69a38c46f09f0f2d2b58fea84f3c930059b0f69510c8b8d0b22357fa48bfe87e2e0bcda078cfd83288e193809330d897fd04941abaf6694d84bb0cdf2bb50a9c2b28570062039909a8dc080a3b90e0c8c3963c8ea0768912ee189a05d9658ae1e04f8d4d2847d9d00af132c5348fa31b502b6c7fa214e0633e172588e013c35ca36373767855952f6137f50f279737db1f80be820006d75f8e63980570ba9a40b271331ae6ecfa1be0abf4dc2c75f77debad24d294db84fc2661319d6fd3a16684a01779bc6f8f8df54025668102d0e30598908e5085092bc2aad6951c9437bd020e427f6620902d0303a5e5c79683a2a46339b3e12219fba8b08df60d11f3a2db2cc8f58ea03f46b79f462b99fe773fb9a1e1ec6ff3e178c46acd0d8382c1fbdd1760c154e050a1021454a758e3c3384a6baf9ca1f10d6fdbdb9971da1321b52f56e0548b4f951ae5a80a34cdc0dcf3e6d50950be17b83a372647cd509695ce80ef56cc6a0bafc14f2994de3fc2c5216494a4052bf165f394bf0b81882242c2fffc4d2ca56fdb558166198a0bde601e5a514053aabdee364844bdcb021ac7b0c3df538ef372869e45c2dc248b0e55548989a22ceb6fd416da9eefdc0a21fc98524a00af064ed3e3d477d9d7520e356b4e23ab0ff49c2993bb58d52fe7b48a11d02345fa59bbbe1003cd7af34b8fadb7278a2cdca044c8fed7e0af55760d26d827d5cd8fc61d7c45d31b8aeeb7ca179438039a14546f266e063f744b4e0cc5bfe7a4118400bde2b304f0b50e803704a851a6c370b43703bacdd0a61b31b12c540d80fa863e9201b0ef5250938491aa3a26d983970129778fb8d8f9a915f2c7004dd5e32f5b4261ee49ad3a04029620fe57b20a795425e036f6c11505c942df21f82d2ee1b513c74849a04cdea87d38ba631ecad3e320fa5e13d14d8701b4e93c6ce8a007ee2945a84956fe32584f364ea30b1d123b4f2fa0f0336e5fabdd95780604234684ba497d69fe3ab7778c0f444b7949e8885beaf94172c8780dfa7cd27ffcc8a21d1cd03f37b7c6dd60934ef8cdda3e921cfb3e87977721e76e10a0edd6860748bd082ad21fd5fe93081dbc49a806c6b107ba386cb782f92b0b3a3b9343fd5c2e165098abd8e57f48c135e8df37c0e740703d4cd08483fb634fcdc2ebb26232de264b683a1b25364b9b6eed6b6066230e3ae7b30eadca6bd75c5880e220e38b9cd971fef6e73c26c27364c0710d72bbb8dc6a32ab77878fe644470c24a66b7fc182ad476dac6002a439022791caa9df21e74b3a6eff700dee03a2f9f4b0df1aa9223f8c2089ad1e2caf36fcfbf4724683cf5b4f3df23c3e4010b31364286065c67cf3cfb58358c01a43638ed85bd6e8878f9f982c9b494abbaaddf50b477196617c52b7c1c1b014232e7b70bdb079e5d18ba92ee797192c772c670e59e30f686800c9ce0b850757f52ded21bab458202eb94e0ed0753184812fd7642d9b5a615855d34be4928e82418b90054eb4144b9fead37ac3d2017d512ffd312f1ab9b7624463f59ad48bac1cf4ed0b0fe17a18452cce3307c1e4275da3a8de50ee342d38a3d707f3d14010aad51f987330ce6d8bec3a392184fb4e658323f6b77745e95b21e6ece6daae5c93cc1703c640df55b75a5a064966bd0cceb6333e4569a5a59a650c30d5d0e13ab0aaa73e295420df3eed2f27a0549e5ae7812ddb8a561af40279a73c7ea8075fcfff68410ae07271d0e99f7eab1134e42d7f47bdb927ab8fed9adeee13330273959b2ef5a0781db8f4ccee970ca72c5435463cc890a96e655511b47a5f7efa7f8f9626cb045533d3152c30bc331bd3e68dc6489db2565a736495b80f1942056bd3a8962c09d11cc9ee03e43a7345de3933599f60b7cd6c55d3fe7a45e0cc042746ab7d15f8e5a525fdc29d0dc84e15843774ea349d3bde692bd09517976897c95ecb61f5b9ca96c628ce62b78220e4c0f062f670d92ac7708c4db16242120ad1dda26f5efe0ab1f0c7d758bb3eb8dd04df39357c30525b5ac76ef79298ba0f02fe59513f7acc3e64d8e1655724494603651442c819ceff09ee59702e5b96a56708d6bf987332a9f0474d67fd1934a64ee1e4f3c5b586cfdff834e0fa543963c3abae75877831ca718bc90626cefce2f2dac10db6ec59d2378430a00b6c807a0b00739ac820e172a0610169d8668407ee9c892e9d188eb87ae78213eb47d250a870089a59205cb4a1c091be7fb2b006efcfcd67b18485d61bdbc9c6d88a22b3d006b80a455a34ef05546fab8b68f269a2aa553a78ebccd0671d5cd0693fceda39a9f2cf37455fe5cf1039b1b5aded4db9b68c70560a35935ed188253a0bb2d396ddc92dbb88e550e69d2abbe101a4f69e7abf684d6c949ccad503f47950382374a3d8ec4654487ec203ad93d0a2f2062b0853631266449444f7f17b4eacbf70956ed50894cc16a9cefcab5ce209379338fe4d3708232639cadca3e402c395601f9c282b7e0d374a13448b83bee50ec643fa16c1003a5f4af0feb82967e6fead3e578b4055bba9038daeeb8823596a4df44dbed817293293604cb89d70c4ae32e4621a0377fac7f4db2447d11f80143a2d83db1a447754ba80d464898893570b57cdeddab2d47a1fb0065eaf4a1c34455e22e858a12336f8f69f3e700d6a3ee51e7ffc781fd25b2b78904feb45be9c49743ed0b3b5d6ba65379d220f8baac387d1974b366f262c10ea99644b619414dec613cca4865e02a07087bb2ba91187f38319ed6f72e2a6c9b1e11918fe458d558050c246ae815115eedd2fe1ec0cecfab1af964399984e72980a74f0b7be21ced160a20d5f5999be8921efdaf03f6f30ea5fe4c24f112a26027ba501e60c844b9ca217311a6c93ef6d61f26e257181a132f5eaec1b642049df6f7c4619182a76688943c987c587ae0196808a544053f40a48d9758b6ee13a6aaffefa03161ad9a301e876eb3589e28c5acc6691450156fdd5fb56e306afaad659d9e18dcbeb1568feed7e31f41400a626388cfec9e1f3e4df00db322a80ea7712888a31dc86c5a2e00a13a0e3b852984691fd720e1c0acae4d82b43af095a1f9779bef7be8fb1e6f9a24101a3cb074bbf46a09b9b256ecaaf76fda9bbd09174bfcd07d95999baf75102bcd9b52e7f79523d84609d5279a37a4df81f88a580b5634342a87cb95132a9eae7e96025a5c5461d82cc30c57f22df32248249fe52cb4cdc6f153a74e070540f5c7aa9325629340a238403499174680b3f0eac66508602b9879d4bd20f0b5a2d09fd4f4a114922ea0fc8f04b2ddf9c1f0493c4755c72ad8feccbd1f224cc56d268e8f37b6917c7f8161132c78ee423edfffe5224237cd8bd87b8a4bfc6e08d8024bb088105a4a0301d49f2d7e7b90882ae1871397d3498eacce5002111a40cebf8ecdeedfc4289f2fb0a04ef43daa4ab00eb810167dc1b3a626ecf48cdb431187122484fcbc50559606eb49a4822e8c8a6e12746b521c5ebccef782779d770c0eed92c8de5955fa30d82c65286115dbd3cedc002101433fc811b04790061f80339fbc2b2b4000f1517b7b9cb48fd83945cca79c2b2ba9501f74a0bc60f3e28f31a0efee307e05ef6c4b73d80d437fa985093c13c0e906320fd0f6e8dd3eebe304f0c16541c706e39b5fad8f721603b282846cb51d8e66e6c5f5d83da7d03c18b5344ae0a25ed4e504beda0cbbb61187846fd955a4d24f78d3bc161d4f7efa48ecb102e8c3b807445cee429df1268c3af610b0038481fae350574698a864feb484ffa7fa38dd57b60b8ea33c62c2ac0895e068c7c40baacaf0d1d2fbd7f874901e9373f2e93dc4b4990c52346954bc0b2026c93b3d9ecdc27a9480f2631a0cae989dfd963ef9825bab19c6588ece5f8502dfc71e7ee89f41d4f90500a17a40268f6481cd6154c94fee08f69aef01d709e2f7f44ede1644ac586bd329935948a6db12f7b5142f637ac44ef24ee7746c6df124e41567554883f4a6cc8b90fb58b75a32f919d4d3828219ac0033d05c9fb134afb6c4738659f057be22db9952ef392f0f33e38dfe48d47c8c19c077fb05034c1843f36461531a5d6144e29791a953f44dc46636872a84e02c8ecefae95e7694f4fb32be7d507c45c3d582434bc7c2260c16c6f76013b2c9e5451ea75f2657f6fa898893a57acc2b06ae03ef404993e92cb7466f1859000be776ca8696f02d01aaaf9abaa3384d05062932f5e0e9546772d5e56ce88604e20a98ba48c3ed09cc1c92b13a27f5277500c2ca4db6bf6df7809481b40e11522aaa9c11283fbdba0bb8c54b494bdcf3632c7140a2ca053532c02eeee8ac32cd16d210166bc6598d03d6092f957eed6b7d492cac7339bca8a0201f61feb69da0ae9668e67afc2fe337336a778dd69507af862a0325911ee18c0b0667762e4823c6939e25beab549b6e7feb7066fab66610a0217cde9f8775a7c52af90b0b801b8042f37160326f894dfe463dc50289126f4d1740b93bbbb658d378be9744dfdbea75b935e8d84849d7e52b82f7d002d58b4c7ed962ae499251b56a06d4ce71c22d130614f52ec49dfc29e70e978c31ce2b7d7b79050da41b78e3f96b9abeee2acebaa1263e34cb157c912813d5ebd167ea076da2ed9635963366c757a4b192f16bb0dd5e22cc039139ed7ba40b8e01cec09c402b9f699f6c993311785346462a0839e26be4db2c885c4d493e8756f502e1464d854fb595458b4cf47a6853cae16009a675cd0063f27c029095d9268a1d0ed720942959049cf8d44e2fefce0d2768793279d20a1501e1a3c72afdeb19adf8e21555a401d78a40132392ba99720ab2a8b23ba5ccda2d876396219cd47594ff041e6f2c638c01126a573908ff135856180ea291445766fb55b4d5650a6360ebe1714d9854de7b1e8aa7cee6cb5cb330816ad8521c201ba07aa213f41515efdcb44a208e20cbbd52243d39a8a899fac907c32128b62f676b602f7d47d1eaf4510bd340d729e664f436e12b1f6d16e64f84749dae107fca43ef0830f89dd812f815ecdeca55e9cd729bccb5523e48d4938321ff254af8c3ca39313cf9dfca9345bd7b3072ce85214cae4a67b48b03a8bd697e2ce4d397f8d60f3ef04edf3479959a316019d0b61457c77ea43117e263515284de94f018569d7f70e4cd1b1e6a3fcc5910e40ea310bb5074b000230a77b2c3b5b9ad9815c2188e535f47d3f733fbd9f096f51d3abc1290f91f15818044d95ac549540c1392301664763f518c61408174fe302026a38b9e0384d0e63bf749b3602e6aba663baae00d89399a267144a081153be76aa1952be466069019b2927ae72a80e2105b394e120e1649efa07efe1e78d5511409b58d995c7e03d90f2b7796ec114977327c50c4d246338d337c54be1f989d0e32e6f8ec048dc708f1367fae9e5d7632f7c94aa472c8567d070eeed361a92abd9036f9dc546347cab44428e2a26b9852c62a6f24fed6f5a750c2606599ad65bc7ff99bbfee71e92a887244a63c80bd9fd6cd06886848aaba41e97e127bf204bb0a95a0681b781fc587a301c00da0da597c50b1649d77875bf9ba1d7f17bcbe92f3fd394f03d0e710929c8d2227c8c64cbdc5c852668b07df5b6630a47752aea340e866cdefb7ab7e6415b6f96d1704517587ac329db3b31963840affc965ddb628cb6732f546b5e211098c741933ecbae7251762f09fd65d7fdc8ae5bccc32a3f6913fab57ae892988e2868123a7b69fd5c13a5cca25937bcfe770c8231b4cc3ed7524f982ade6e895d6a745aebda8f471b04e6f003ad11612dbf081204e1e27467fb1adf49c7459cd9d44c7a4c5a6a1baa5c8057eac7e49b7dcf5e2304c154153f73afc95bd7015756025b45d579a1282284039034e92cb312ae28387636b7ee38b0da1748b58d69cdaa84d9c5381e926369289d4e83e42f3ae5cdf9a131663008c01c14e237012e6ff921d14340fc3c4a70bf2e3920291ce930849d795682182c3df9601ad4f4f357ab96ee5bdc69116f79646156514f687ae302d48684ee4ff2b02bc943afe2344d56f0c4d69d7a34225466bbffa0a50957b11a6941ab638640b697e1231f33d26613bb18079914c0a81c9a482cee9caa0c60c723c9f1d8fcd243a404f9f187f2aa26b85c95e085cff822028f2dcfcf45113a45afd95927a285f157526647899832131240655696397feda10b214754bc33604ddba732d796d92129d1c65fb11901e219ed281a6e24922d5e65940c157e3b5f49d963dfcd39b80bc382950887dcf3652fa528d12117f0ec673545c40dc9c59842686375747ae06feb6afa56f6ad959e7e39a40f87c12cf4b229185ae977f5210c5d5c6781448659cd4b90bb269f374b7598936eb6cc20b32dbe2e5c81f6cc688eafa1bfc31582b84daad56bf98de144ae6953bac2824267dccaf8ea10dd99b00f33a701243d6f666ee88da02e1609a7ccbea90213ccdfb0d43d624483542422b35846c15b6fb791845b54edd834098c86808a211e5b4dbbc1a43570d16176b992644809172a489d6775e03af6428701e3f9c8081d50602aac32635358115581d44669b9b0280032ff9d33a015ce0321faae0680699cb514de7d4ffa72c4b495e6144c16182e4f294003908c8ce8ee6e2aa573529cf455365b538f6b13aaac7865713bd8eac239c0eb580c3ab0a92a88bf8489ac6f4abab2a08c0c3ecd3e5c92c256665abd397b42e9654ef0805a1a17b1181e4f1014ab56ac2d838c6a14d4ed43a3a8b7fa70af517afcc31523b3a5f8f0495ac049e94b106c13550b09de4fe9d727881e2761c7f8734e90149ac2a8e11d5520f17ba09deadbd161060f50eea5325ba19212dd652b0ce43779e3df427efca05c130ec8a4350b795633cf039b5a1792e5c726aeba1fb0af408717959b3880d59a60aa1dd770ae83e8e59733774155693eeb24723c2a08e285fa921c85f0e93a2577eb421c73280591edafc4a94e814677a22385c065a747ef745146521bfd5d5a1e414940746f1e122e11944e37a6132054724e0513e97a443ddd457758268b7a6c2b249fba13d7308d8b334527009325c53d01bea51c81796dd11fcdadad8ddb5154285534988368f2c048cdb5385b5cf76046509c149570ec15e5badbd3beaee8e6bcc33c5e5170adb84464e55f69af6e55b18b5cf0a7b7706baaea2044a680bdf42c0c3f0f1023a4916eb1be02215ad52fdc175d5378bdd5f6b39d76742f391f38f7484b8661c278cb5802a7145bbeaae489224ab517af26f397024735522e5efbf08d83244b9320e93328503b5cddf530c1a54f6f7f68ad717f1d592189cf581e73d5015e773edc28c7893eeb834f3e074c402fa0eb4d49ccd189a18afc11affef0cc11ca4c0342d2f58e44c1c4d50b681a95c21087d37b97ccc95f2c189cd80060f5e4ef7fa1d1cc326d6be4c736fa8ae977f6ab0881edca0e950dae3d4201ef7cc85931b210c67a4d3ef35ac2c6d1bcb352b909205664f3d6c7a2310941f36722381ccba550294ff37979a1214f473ec7253b212f4dfe5f374812960846bbe9148379273c90d004134f72f5266531c18a8b1215b6a904ced7eaa2e3f2574d2248947b27b38f756b0d04bcd811897e628dcfe1993c128b6414d767076be1c50c645429c8811549a31acae5b7efea1d873e0616d20646e6b13580b7f73ab3f779b50ccd477c088f4343621ac05e79f82db82adb715c2b552a592724d6e463cc417e9d201f8774b697cd1c5d0fe414b8488b77eb1bf299a5e7917dc7b7e4021a10f3ba6918c90b173be5cf6ea175815e2cb054e70f799526af07a88bb2972db1deea7080bb80c886c98e653251c3d1c1096ec84db5a9086ee57b91da4c00cbc8d6d3ed1abfa3c4f69fda5d60627593047cf993812ddb96e17363f2673b2dccd363744b206b0f33762bedf547cff21448dbdde4667acf28de681be53c68daca8d6b381e186510cf05f91276046ad95797b04da4e93f7d959226dabcc8a1ee94ee7a44506d788a104f61fd290ded6cb22f493cc9babf6dd2a656062e7293968282a0b4e6a654d1ac93b7bfea134e6a72f9c5efa0d137b52b717b39d446192027cb2782c76b7d76524e5da860a644b07f8bf2089965df8912c0a5300b40940422859980d5eed36d901f0d798d1e4b1acbc94c3eddbd772511c121a8563825a135c6feb84bda00261242bb942f0ce36f17822f91f878f08de7abd1a186ae7a3a90597d9aaa85f8a4832567fab11dc8520a4dd2d3635391fef192a3ea07724204fb8529a20185eefafb242aac3603fc53561fe507ff88ac4269d51ec808a37120289edeafbc12149fabd0cc599401f2e18b5389c6eb85181eabda95e01b2b7cc73446417cf2876e34c048c1b307ba033cd6bceb5f7275f085ae07ccb03a99914dfcec41cb9e4b6778b5ce2a611ab72785e5bcf4a4b1acb3b21032928a55014ddd5061138c200a9982f0937893a4a1a8d9a783e34a5fbef9e8af9df7e7de4b14020ff8d8b03cad1753e3475ff629efd44a6f45571d65d45dda9d23fd5ba655433cf565dda4421582ef0c96bbcca8487d678345c85e9180929d8660f5f9914bcd14cee7481595a854a938d89be213c06fa27f963581d32eb193ecc2fc4af4498e53e1daa8935d89f9c3a272e339766fcbd3755b6619b3396d8ea4c60d3a3ba9ce417a3da4b6d2a77ab3b82e7ade11154639eb142d5df1ae89c6fc20afebb84b2ac3964a5cc6501023a0fce7d14f2e1f77d33eca0dd6b57bfdd3efdd3fa7e8e94eb0d1abd4dad7f2cd7840e5cd85f2990714095600416f37eb3bc84af6e6ceb65a54808042cbcbc3a701ccfd9ace87e7fea18a4e431af12a2d20c80b6f2de20c3682cbcf1539868cd2d82c851e1cc2828288612d3468a36677f5a9e8e1b89f5b9d879c6fe91b10b1b67c13e517c3f55fcf121cdcb41715c9fc45391f44a1331345ec6aa3f6eeca784428ef2bb975df96ab428245ace7b4d9012aa009adc88c6c18f7282b4e764060e445eb20b3289322a897cb63f1c59a9455aa7e38c311a50f222d2b9eda0501033a314242d11c885536762b15078b2c132d7572c00afae6b3d4554fe6d0e051be4bf89c99154467b5c3efc81af140ed8e95dc8540b686a0814289005a9fe7a1ad02db16b41ff5e7d2c9f628a7c957aa6d4ca4cae2a0dd1807e29e5825d1e3eb69520fb6ff7d2aa2e1e9a108d5567649777838f7dc0782beebab269c8ef4af78c452694c9a22f8929802908c8d1ac84b9a1bf6b80f457dd4fcdfe4850cc60574f160859eb858d3453cd2ac61ec8325871201ec86f2a30d8c1f4d4d81d92cbb3d6cc006ae6620ecf160f7b3b869a15bc74e384e2839ff4088b8fd776c9c3cff54939acac955e3137b2a448bdd75bc78d5355f835ae426230fae73533f1cc471a0008e5639c684bbb10fe5a69afb7d2d72bcf847c2f5f9a6369ef8dac8660fa176e20a497ccfdfc29fc5bec028c3a5e88515838a59a1406b060f4a8ec13dc4dd9da02da5e968a3657de71add01c6ccae66284b7c6df274163267218b8b26c1df5bae7a62320974cb2f14bf3d00a11d67f6ff093fae86f9c48b3aab99b25144c8069881b21e7aa0c1e2aa0ab380aaa6219bd6c807ffaec26a2aae7c3fb08daa471ff4ab22c9c9601217113d7ac27025e0c57e3dfed317e7de953e9e9e613a5c0b9ba449c7383e6e3809adcbbc76770e277c3938a13ca0eebff2ef30e4c33206a5162b935389689de0b0f62a708c34643ccb00003d5b78ed416eaf4a53f5e147c3845a4f657216c25bbe22eaacce215722eb2c89c3dcf797011093e88464c7ae6327686f3cc9bc7486d9f8f4e8939ec664fcacaec7e8fe68ebcb962fbccbd612e8c8f2a1cdad7c45bb659bdaf5e627d4ea22105b736980244840c34af1574e50b07f98152cd000383bbf9d921614f33707368d0c0b1ee4660a2b3e864a5315b807b65e4b8647b9b016ca34ad0725844ff1afda0517746fdb9876f4afe41473d85bf367f4d2879527cd4e836644b25e20b722ddb6f268ac09fad69ceb83118197b5ed4e443142bf691d64b08f2487d3b61d05f8ae9af1fee7ae4cabbad824f0b9324a7fe983efd4ddfc623a6317d509225c8eff2c683d3a60887a99c57455fa231d9721875266c1705c4a0a11193a026e514998bd40881feff12664023ed8fd6c1a4a0cb6776503c76a19afdbe4a2a18c762632bad64465a786b711ea7635f20349f7a9b8e4b5d8f6091792c99ea26ea7a6234f1bcf492ada2f5bd9f3d7a5d1fcb09d1f6396b4818557c56935d58d500497dee8cb43552d49f75823b5e57327a2b7f074a61a06ded2aab436e98b02f462bfabdebc6463796ba2cb2f72419d8e0385db16688ec98b58edc9f5f4e0d442870d3837b925e326945fa35a10ae293a4c5c663f3d0c2b4cf130318e78b7bc6bba048ac84aa5993fab9af9abbdc35def90e8a2cad135e9e7f9132df70937fe051674bc76675c588d9ad1beed074bf32e0d34d7105a88d7f08120a6f9b5028cf10c2bd85a240c9481e365537b8cbc9cec3bb85be050db8c03de7f0b7c090203785f299c3bf410588d67b3d2f51683a42cf805132ae2f417ee352b51867b7e7e0387afb6d7f2621ca52c8c4332ba72c4c5399e1d43013eab3f22d00b714f95a21064c12e8b37103bc006e8d415ff1f5997a7d0026f8da3548d280d9d700a8f8b1208954dc93ff5aea1fcd2a1c927fc02b4787e9358e9884e65cd299e6e52a34e6825f3e85eec1c59122e5bc4034a61689e66bf943558a1663f8bf3217bd8c70371ecc10253310fc90d76b81cea24483d20d5ad0e436707a895df4cf84b9b9e984fe512c8ef15dc7ddc3bee10d4f24c248a2640cc5593d5330df3bddd226be46556c94e34654d705903138a18f5c83bb58e73b924d667980f056bbd7d2a1d20448da9b5b1ca773d55a2d824e63c81009a92802177f03f3de0f8d09932ee4c224ae7f08cb946d7f03fe95a9c037462c6f05a7d971ae8c1351fc930d353f2d99a964dfedd5deaa0aa668b2ea25ca610ff88954392ac96b4adc38b0480a4f1a1afd6b79aff5f0c517a49eb051398b3a86c494af46858ee06c0ab34b13006ab7cb46da631a2b2b78d64e26b52bf81002cdf6946ee586b3cffd74efec82488b90d9c6631c2bb15e9594d3f514e88621e32acbce68136dd3ea6e0db6ceb4b440c0a90d4de4641c98a6d82d6367905d88ae811405441bba5b14294c60ccd1ac3a13b11adb16377402887f71f029f1a836208b0c97ef844c93b916b976c7e1e5ceb4537860d46df12f519a225a8668673c3928d9a09c83239c1dcecf993e33c5ab71d58dc5273a4c52e2ed0d149930163497128a6c44d3d71192c814e91b1904b6268694263c7de61cc24e42b8b35ca5792b4848cb11d2a8c4f4e255e97e5975ddc5031d548295920282836db4632682482fd5d0ef9fae1b913929945761d1c492d491a4621d844fd12702b1aeae95dd3a71f176c6cef7fe13bd955745bb6eed2826714fefcb6b2ae6f8e364309119012f31405f0496b96db2bb7766f7ad7bc67975bc6d48e4f6d8655a1e129d6b71a074cfacbf5295d29a0259808e2a59aa046873c266067898492294429a186fb191b1083a24ccdc405f0d4b1feae5b7cc10d41cb029050732c60d788706160428b13895585aa8e04fc63df5233fa7ca8db951163308a4caeae5dcc17bbfd7e8349aa79fa8004dc66be9066f4d336ab6442019e37c6e54f2e07cb9441a171fc3737a8e31f45bf2f5cf5381d22b056be6731336e6cb470c38000b09ee966a6e3d76887922c402166093997c409fd469d34bcdc936dfed87b234bb506857cdb54ae7665dc9ad6dcbbe0fba7d20b204331887c59e578d758c11ae5602b610b0116f4b310cff155ece73ae86d95205f84a0fe882a33b38fc9ab5c46f1cc18c5fc419ea989cd044015738dc2dcafec068d5611ae49054e81251fbcc53e3f567dcc2e8bfc22140cc31d7c2bb397b4bc0726589c77bd8232d52bd4ea8c105e09152881e8cc51e3f495fd6f75af3dbd96f947eb3c5a037369ac705a4e18ef7c0f59f02bbcf726f6e0a25d68071fcd6ba8ca2868b8144b203fd41876b402bd89f84782eea4ac36d0c18d863c3410f944c06e9f0131964a5aeb4d4a792e614bba200a561c2906c678f9146646f01fc4be371ddc4c53782022d22ccac8632241929247bd4c65633bb8e0b347d5c2d3c1c88de43ad0db8e7cd18a76698ee870116b82c2cfdabf3430fe666d1c8e87327d729a27483b6b101a02180ce54070d94783b069de89f2b559a76497c12c29104dac1d5bc63b75e74fb1c22416aa3b9f0f0332d34adec91920d8ad1b55cd4befe4f7c050a62bdcc2f222537687c9fc6c81aa118df27846fd1fe63163c12042db52a8e41c9312ba7d7c6746f2ef2bfcb767f1e21a266f95860e0debfd57160a0d470d5893f18ea91254da21d88bdaae9978ce31de0a4c48f5b7060d3017209b5054b82624e5384e393996b925f952e2d0da819d9a24c4ebabfe75c07cbc886710224ef92e9728efbb795a472b02fb23ab4b401cecc03fcb495333ca250d06e25c8bee56c4164715dcde22e08d5532d886872fe199298ed3d563901751b3c346f56a48bc2e079c0725579a4516c366198eae8974b6f884f295f7f8a3567e71c422a6885a3915861b7f62b435a8ff811d3601f3e6697ade758500658b9df278018b8b9ba36a772d74155044c46296fc0a0bdac10a981491b7af71bd273af2f7c9d5caddde08014d5ad05e863c83cfdcc94f528e1933295f783d57f7fd62fc9a7d526f69ab001b934cc4369e85172581e78103333d9124404d6969ccd4904d1b021c44371358137d5dcf8991a541c2e732ada7e3d17ac8f246422092e1e5d8c71029a06f122a01143d2c6e80a9c928c997726c6f3ee05964193bcf01cd6a4eee72624d6ff504ce5dc211ac7e8c65fe3e3485318279d6b15ead605a8ceecaab5fac3f0ec4186005664975bec2b8663ca7dd9b7e8de6e834c4a9db5d33fa6411a99f63fd7f62e14ef171ebfd2f8fefe82a7b95c5ab160ce017df1bb0311d6f9aabc02028989147677e56752134ee277b2092b19a24da912261bd7ef2c1862e2c4243c02b1aa3967b06ae29e6cb5f63e1ff641548a313832309b6cde2e88235254b285be2adc499d927ce8b9f41d3171769652fe636fb411d2404a4af65295b147a4e26616047deb4ab935be495074c7cdbde4435ffbf44d7dbe3c6fa55a809ff06344bf11dfb459c89bee917ac5f62283840af96f395255595d439f8fecbf21cb279ed129cb81595fdb68c1358fe9bdea54d91c4d39bc867dfbbf4dd7ce86b76caebd7682e8cb2f6718c5c8da682ce23fdd5ccef42e6e23afe357011815d636a01bb318719a6f4842b96f1316f6e16fdf426c02d588afca27e45a7265d96376f885ba8a3099d51241c177fc6e296dcacac45517d463f009d5a3236a2c0509c428fd85d415677ce101534a08770c85f78706819ee0e8a35ad709088268f0b09acfeccfcf872ed292b79409a0929257a0e34aadaa29f6c197b2a4f08760a9fe7d59935dd5eb09239723739fdc5eac037121197373a9f6257b10a7251623486544c752199450d72529c4d55ed205567d097b0d532f4db236579b2dc92c8da46b62c9d7028e6db5e2bc2889ed877d034e6f10ea7e08a5f2badaf3828801920de650501238d564a4452b8a5d46033e89841fbfbe3134660240be2e20dd56892036d4277185bbd71f658d0ab0b755a6dc20c0a38c5d028960ea9305d1bcbc568533e4e5b8c6a932adfdd1bf8d8910b44777443537eddd85db15aac86d3ac8baed6c01ca8a0b0911e9c9681f79e7dc3379309a4ee92e77ab9087e905f6eddd0ac2b00ee285bbb424ae8f1567d00aa087c5e0efe10a307673e2520a2d7b3a1c0f5c712bfd907f45bd37e7917b71b1c3e6d92fd366b95eb584e6a44767da332219467287d99ff4c781e65597e3ae8be2ee52fba2536eb9dd0faac9d3331b13f41f9ec39efb40b875cae252e762573a7c512a015b79f2925eb0b75b0f3060f039c9db058c04e092f2cf23160bdef35ebceb889e075d965807233b17f2285f468aac1da902dec6b9a4139099698db97fb06048091705d8909a40765326a9967a3a50f6b962bb92cbf6bfdb2134940273b8bbe5999e0ec18e77b3a26d099697265131cb09a03c137b25e540a936ebc18495291b4580a468cddf48f5988f6389b1272e9881b13119db2ff188129b896505fd199a1a9adfc8191dc8d6f711e406d8d7aa48c9eff3c2111fd9e080101e90d8ac012efc18f127733b250e6f42df939e32ec646fa7421599070e48ee79dcc32ae45de7b8a72c91e5d64fc5bb17629e4567f1e1fb801bf086b7e3701c3beac8d588ed3ff5a0a178496ccdbe98c8d76ee0367449e5c1b7b21f01f5b6d7476968f5b204de6cf9280d76c82de67216a18a429e974026c5d157a408a451d46e09a76e096c92b8288f86d37d9401d44c988b3396f29f2705d663c5ad6c9d8215a5d7c1d6db168dfd04b57ac1f859065f06b0e3a3d03ca40b9c10cdb3b9bb505deac1a2effb009618415f2ab33a683c531fed4904644e215de32d6782a122c7f9024390d05ea4abf2c09c0cc442e977665c1780b051f9c760a07ba5392a65276948c702bdb3f0f49a184b507ad50f284dfe5da68b7b4cbc2a74de276ab06665c8ece16b7d192278990f72effa9cf3456d74483f70028ef5fc5c0c2881977ca7fa7f71655413c75d298e7f8a37ad3985508ffd5b7cda4ee3071e29178c72ab261e8b19ad4b0cb178e5f2cf6b0f0d608382cf9cc47ea4ee43edda8f03cf78d4a9f8da9598b35e02d7972be63445654fe23798a68ff345c1173e46d793f363df0c585e08b50b4c0819496d8f9a5dcc25233fbc1b004a3005dbc7387b44cf9cfa25916bb38b94978a08cc170dedd03beece60f4686739bc73168d6cbeeefd7510614e05089e5da88f151da6969f3c19045855ef12a70eebc0512925882ec2b8c5193cf3378b64aeebf71aead8263546f6bf143643cddecc851ef583e3d467c0167ffe04f4898f0e6b2581517291c80a0ddbc65d7c022c8577e5242b1c5df46b2ac628e7718ff06b33f7ab46c4fe32c436408ecd6237a63da4c5c564b045ac4808a7f22673a512734d87f6399f538cfbc5e2721df6cb5d983e313c9252fbbc16ff2bdb585b365722c38a141ec0275573da4f6f86f6501f628b8189af931d2647dac01586298e29310b7dde6c2009747b4a145cb24b0154010252bc5734c72de0fc67997ff517a2ad44deb572158dcd1a2f93127ba68cd2424a22278528f938bdd5e1da54eb0cd275e3cf396c30886cf02509027b2dcfcbb001871bb5254014d8c7fea86a0842658f4194ae020737939a504673d4e470f26b4a16966644543b885d4cfffb7c23d72b65cfad2250671673714ca792a263bf4221939cd45a4fa582906a4609d9a87c7e51155886351021ea431c99f966bd9072060140a6bebff3409f2a6311416a93f2e998d07da01c5be85f461926a28bccf065689080c0c16f1aa5322382c5d0b1ed2bdcf422ab508a3508cc0f1f84fac59c4bdfdc28390771837e3131df2ab06500c987c015a8c0f1452176e0325d8a5b2f054c707a0797174a883d69d0f29b829f7d0c97123d75d669979a711b4a598015c246c3a70e5f5c296664993f042fdad6ed2b83f672e5d2a968d1f1605d46e1fa04c7fabe08847b67a1d8de0dd65258c38cdbb58e7bb9234402dc0f30b2bfa69c0f63a722980542ccaff00de0f711e6c49a573962bc7ab460d5bc7a537a8ad0a6367d68ca13aab639f9c35da1af0a50590fa6498cf1b2f46f2dda68467a6d55360268ad305f36a9ad4dc8a6e85ac9f9dc4a276f2415fae1ca6a8d846b7082de5d52ac41fc83f64984ee2d528997413e096410320ff46979b0bdeb549f0a543da9ea2918ef0f6936c888172cb0f290e6400de8c41b4de9e734a4e91adf9e89a1360cfcff0aa511fba7a554e8c0a0859c52f6396e464cfaf4c56a2f034753f03ef47ff3359dbcc69cd6c94c7b77e0e168b47e59de119567602c8071a2931a5c5f94c4ce574c07c530288daefd808680541dbc73ca088a03d4529b1936392ef323e31610c91d567557c5c585e857009406370a290938f990d2ff514088da2c20cffc0a7eb3c171ce6e7315f601178a40da19dc9a13a59023607f3d9f15bf354885244d83ac673764d25a07f70a2adb2e14173096ca1b121f7828cd3fb5bde8774fe19919bc756df8d5f00dd4303eb7a4f7f226df0a43e206890a5363d86519efa0d5c094777b80ecbbd2985706fb3d761751a1519dc9822f333fe54c2a9d7217047980e4bd36a7a6c1fcaf86551a97d68c795ff5be3d268216a25b9effe68c35f8b2e657883a5d1fcd8b2cac0aa2380614eeca5e57f59b14ec5221741ad9a79980c51706c9ca8f217d4bddfdf141caf12b13810eb0aad6a0d5f651b0bf41930b795ca2e47ab253a32f56c3ced0946a360bd5a06fcc3f3808dc516883b45e4878d27709aa2601c5c3963a2afb89cc7211144cb3d9e4f428b064ba6d663982488aadaa4477c195d7165922444e02a3c17678c95cc74b5be60c872293a93c994a7a5a9811505e40916c2703e49163e468d77f62487da3c7871a73a04d0a23cb3f62eea0e9466eacf69347164b63e77f1d7fa2d7a3092f10c34794f5555d2c39da8b7d2006e9e535123f0def4db8b6886090d2ae42c05d5cd0e4a7a3f1712da57bad2cedfe98771c282041e93133a97bf912a34c724375fc68ecc532a936f638966e91e5fd5818b72f52cde493407a90ec481b1c394570982a780567c396064063452759e12da1f5395ea3e162046c0c4abf6120c8a974063d912e6bd961cdb74ba26c0524b2d7c2024439f8836718046f3c291cb0a00b414ec3d2e9a207d6032fe8bf6373dfd66b5d0da76dcb9dbfc5398c883ef56fe191b9db8902a6ac4c2c53c0db33890508a4534407d5491a4e78fe2e6d0177fa7c40d78cd2f32d6aa4885ed993e0ff5b9a1c424d6d132c0034b95b796c7e5435224484d8ca5474c2143b76282e964ac1d950da83b109b7334c1c7579e72c86114df0d3af2794e8bebe4926d52ace914c91b132aac883270a943de4c8521d20024332b6f22816e691b70d976c24e19af1a46456e81636ee93145e3f37e21a60d69454b8994cab923df96f7bc06176afb22b54e7962496ba24319ca238213ace2afb63ba99ea9088bf6f7399b2f9f7fff8d726918e0ec9e729596d354979dc806180f17303442644b093a5b59b38de4ab86adfb210e7dabd4451f238969e41167005af434d03420567c1d2383502bdae97550c559b919e3a4dab38567715dcaf885615154d8d338ac7eaa90dc6b20fa347f51f479a2470a1e6cb0a0377a89917679cda923d1192a46226f69d8e5176a4d5c1499d75daf1c20dd0b83bbc59e212ebfe078a51318fcfe0c3da3f12a460b755d7e3b3e4bf69111ff975a7b41db6e91239774065ea2a92b82e6a18afed572a8087137980243f06560ac24f00e0b1f82646326e6b25ab271e34a16cce84674c5351c220a58707c71eec796e86c231b8a5ff3aefacd76873978f7f16d1e298196ca5b9d49cdc9ccb872d22b1b8af3e301efaf4afad2eeddb3211bd89f8b55c69ee0d6003664ce6c198b3c48614c27eea3d57d973a4d943a29ea4f9a2fb951081aa202745fd1a012360064ea0f216b7022f75d9ce7323a8cf53fa1d5a22daea7d809f6309b5a9800f744f19f1e6f644a90b51e06df11a9e7457236896217de579bb8023d40134671e51afba5928eaf4bbbb8110a98346a626e305b2f280694a0651b2fe45dd02d2ae6f96e3a1564e1223fd21dd003de23cfa47d3e8f1c2dfb8082876c1834b649020e563ca7d4e9abdeec12c7404e1f9637ae6c918ddac7612a075197d57a18abbc15f26cf2fd0435926ecb62716de8b4707ba6b5abf9ed9919c442e216ad092e27b960c3fa1d9555d634b00906b0cbaf1866f670ef494ff1f3453b55644716e43d9c473ca8d86588079d0c0b6d451a01b75410b457dbe2d545045e0add99d06154e9b6c2cacb03a7f66d5819acfce222b047d00f203183698f1ab959248c595d273a7ea90bcbd17bdf7cd692561b42eb7c9fd1ef6a33a67c349ad9d4d3214ba0b385da4449ed68f97b409164c45683d8ba63ac20ad011a75a70f5b404b599a012a04a5fe392e971f0fff514fae56cdf7cb8c26564d409f0eaa4a7cf8a7d571f21d56a813b5002150dc65d71efe14bd2491d2b279c641fb8e40b5f8a5f4043d9c8eff6e0c189408ac44b2dd4f69b1bd0d484fca174ad083fbf4524e75e724320f21335ca2bf4a3359bc3356d1d3501c5e421cc5d8f8ec0b64feb54c01e97ca40d573140b317966e539d3a32b2461887bedf2d74ec0294bff5a890da4aa427d006e80d1d09704b5970ff92d81ae9b4b74746304a434f3e89bad39b1424f5411d02d260fae4e06e6a8510b1eb8ce5421882a318dbaa7dac4d36522c731e479f57b836c7ea7c3eac6c34106574c9122cc2eac31c627d5981d2aa48699e916e81a648be29cf2137256cd8a09819b784582dbcdfb58861eb2a2faf8feb65a4cf9a31db2f86faa0ed8a037d1b0b9c041494b7789e314d2b0db86d04cc6f78617b3e0292b26be2c1cc1a944af8f9d439a81ade1c4adeff9f756340a833e6b1f344833f53d6058d8bdba77c8797a11562e4dd10ed745501313d014d86666d5a938a9ab0f5f8a91d18e43799cc335035245fb560610af61a60ff40989ef13da2f536ed6c11334b7814bb1bcdcb4a6fcb77e4f74d8c720f580db380f60850fc74bce8e00b96df477ae92b3608a3c251f54e929526196ab4c8d4bd940d3f643021d20985c239ab181800251cff3bae37c1469820d40b9a5271421da0c364bae9e85ae807ca55beacfe3133aed8213c9e515b9f5760da2fc0e51e0103ec1cd9162404da83aed06e58f7a63381ef48ee0c7583349e77f8d07bc062c1f12d6f25e21b120f084c7039d50e90f944794cde8d29fc84c617e1701042c354657b9d1ab00fd2bd4b8e460a608c848a972955b2824acae151e06ec10758314429d674d55a22847550c3c8b2cde2ad01047100a19ddd59ca36a1399e45daa1b110b42dc454bc5460fbb51e84d1a498b9a743b62649c51b8b36235936c8ec7ca9c420041706171fb9bda5a0ab73665688c44f3104fa97315907dd2d000ce290b0e3e1dad990a8c5fdfe7db98ad67f052650d71c962df4c6034afd043dcd84363483c721bed07f3fa9acdaeeecccc45afcf3af2b796fa39d300af94a55ea87b2c27d8b2cd38bd8a244c74c5b5023a27745eb10e745cd28bdf4e63c01a225d19b6b4f5bb230587b7eb71eb1db1e393ee72364d161406e0ee200e0c07d6e0c6149e10e4cf6bdd15a62754e855215819801a20ab8c0d070b3f0472c5feee17ada68ff175f70bd6afb49b3a056982d7c484175782c36d40346d3ef18b92dc0b437787756bd31250eda182bda848fc265c2f4757a63f5724df3195116d42e4229405a687d0eebb04d3305d1cd801cd2f312ec5203117c0946a7013330e292473b4e576fa1b6ad13060607e8eae825379729ede4f7d351fb1d9c1fe4184581801215c70ac440e04669ef95770b51d7ef6ef1f09c4564cc695194e4954daa8901639e5d6c890fff642b5927b2e424c378e8bc9c408a752915b655d6af0caef1d0ccc8a56b28eff146aa2a9ac40d3b06a32d1e1b04d5dad1c3cfc1bb4c4a714bdfd3c210d147eb10d0a04c811c3d09ed6895fe3d72d57047d3197aa38177c8118ed0559a48fed473a7a63f06d36f0c027109669df6e1987b3970ff95e85cec055d0bfcbe9cc131a02f468a29601b1e614576376be2e8dc3c3d63d1f27e90c2451ac348e7dea421aab88713dc9af7616cbb0205f3e7f5581079959066bba2fe58f33716e9a1ea951df742d9667e95f86402082a4a989399fbec1486281e1f50a727681bac01be06aba7173eb943af64656354d8f9410aefe149adf7656043c18e850673a4fc0185edfe17f50df5d5ebab7bb0a4873aa79c00aa448d44a944e5f3782e63bf1f80b4b491ef513bc6c6ec18c16518cae974db0f331ba2c033c3f752cf2d725cbf8b915b78489cb89574dd411b28065f69c657a28bb9a029bd1edaf122d7019d126ef78d2b7b97c58572896aa3157000c671231e19db5182f46d202ce900d8cf9500998e3a32c783ffb70773bb64cc2075f3a9b1fb03eb72fd5f5e9a852b96e2ba41c7451dd6b3eab82bba9f41de73e060ec15cdb42d125bcf05cf66aa5ed782ccbb57514a34d1f9d571f0b58db7a09d86ffebd56e56ea6f90aaf362415be92885cfa4c7ee0ee5717386f7805daa4f1da77dea1b5c941c92469f4e7ab0200a1fe00481e4b857f66bab21b3f3197e03f186c9825af8856e4308aa1cf3667d5934839208b2e2c2d39472ff2144ebced64e6ec28b5c820b3c5c52c117c95c2c0dfe4540773bb1f341deeb136838309c938182a55627a340a08870c95efdf785d7d79e185d458537002331a8747fff13f9c13bc8f410c92e09fbbbae63912875790d84e445240dc927929aa387f80aa75cfa5810da34eb303e041b108f72d69871549e6d0401514fdabe96b9026fa3e6317e5572a4272af2d4de10ffed58d289a6b8ae168cc42dae36d96669c5bbb777f6fa08213c40f937d499766e03f647dca149048c90e4c1697be825dbf5e4d1d22a362f1b4c26de03935cbf0ce4bb4ac639dec568f4b69f9b002f08883bcf0b42e25bdce7be4082fbc6223fb292a95be6348502b4edadfc734696bea98afa9a163333722e7c40a09004d1315dc395e94fcad440c4e01bc692ce34627b884f143895cd3765a8bcaab0f1f0082a90899b4919d1e1c35a719c8e0949aa1d26069ea153b2c34409eb30ec5187893d1df6c3d9ccc4266d1d0bff516ef7d8c5a245b2021d96b28e1208cf59c01fc28f1e1b0723aabdf7f0b0b4252b03ab75a3b1e9891cb43de603a30e6393262396a73fc6614f978658c0b23317df617581595520cfc33d99cff3cbb5f9415304cec673705433cec8a33e1be5aa1929abd725e2776326dfc4b06ac94ae8a7d4d823bb6c7bc92cea38c6fb5ecc5e968ac24f92effacb3ca17af6aedcaec26ea4e7a86a2577dcc80805e99fa3c5d31fed3a07101d72a3cb3bcf959392e81973a0dbeef2387dbd25b8d10a979c429858c19ede97db6c7ba07dac77483aec295b9f8c0fb0f723461be8364c737be532746d854ce5be4918deafb7973532240bc1d9bce052da7093a84430279d9197fb6603b03ef99931baef1b16239432b906cd92199664cf1789ac73668719538bcd2ee6a0b4c5a98824547761bca45ce3b70f9337718432822441cc030606608698a58b8472ed5ef1c15cce12f5fdc1a005cdc80817bcd484633f26afe051428a88a07679e11291b0d2476fe20cbd1b53142ed2213401d465bf27fa9f7fbb666e0f3e241f53748ff654e78a891f27adf90168cc03538e99c55feb82448856b21171abdd2126309116cc5ed9a14d3ca92ca168c8b46046c18b043ff36ef80ccb8802c523c9eb460224336202e5af7836440a5d5ecd3184142a7397dc058968b463281f9692daea39475991a93c676554bc51b81823941501dbc0db9e202826e0f591f690c00bc0236dfc8e1da48312075265a2e0abc0474b1e14f92f31cc9988d220a532b4f3a9ba27e725f013803e5da33fdc1846547829ef314362f3b8c6849ce696de8a8defab69d7cd7b9dfa92e6966d46977653ca7b7dc1ba18fa463e9df594d6f2fbff809b366591900d937fe4a531214ae17ee4ee081057c4c801b8bffa12394c394ea24d896e09c73ab5d8a3b2cb86bed807a247a8107a5316480674410c9599b45cbc7f508af3b6d23bedc0842bcd40ccaf0f7e4305679c49115a288275b1681a76de5d53759be2e266497a4e5cd90372aaf191e8963acd5dd5e2e66ed99b44d1a927de30ac200e361c559a159e35036ec4c0444403cc9fb4046d970dbdee9f3371419e02d6108f1c132362e94ceee9a38a3a4274f9cc2920438d97132d559556590e391d8e75c1c25d3b0e8e67183881e669a53c0657ff8b6bd49ab07f5102821430dadc2674762684b45309111bacddf85acd5a6a6f72cf45e1bd9338ab7c3d89413e8ca59dc65d203b825595b43af573af1e2cd3c92140eb36caab12281178b7d3e511ccbd998c8706d4906385a413c58e741af20ed374c69bb6c12cffcd5fd6596e001ab0e3ab934bec1f7536fa7664e913e3b41d2a2ef50b5f8cab580cca1129c9d7c7152d66549f2fc50a1177af500b8c18959aa134b030217130fc703df778cb9f0bf66cf2e1e019966a23a51eced5dde29bae3fc4681b321d00e5ae847b34a84fee92c3f64b44d2695698911b92a85f28abaf1c820edeecf79e89cf6c56c88521bccf081d184779804ee8cd547bea5c4588d55e00e1d4cba3085d918a5b1ba51d6f4770ce810e2a7044122c53aa6544b85b51a715118ed52fd45864a6a282fec45b95f15b29c25edf97264d78e3c3bbbc12f6fc7e36a9136f2bc62ce309f594c658ba12d2fd3eabc313e97dbe9f5c10dea8e72b9b09f5b2dd45804becf1fa6d3227bcad1aa18c26d4331b5f634fbcad3a593d324450dd41c338f4ce7a30fd6672c477673fa89841625216e6c99b24dc2620e0134630ac9826d0bbd50f3cb168b7141073a23b13312f07893228d01354a608a7fd4d977ea84eb86f8e892811fdd799c044819c112c19489a22124399c1df51c29a3edd19fec40c3583da4aa2460fd99e2c111169620a9b03965910edd953bfe14aa085f72c63a29bd79e6044d461a2ed9b28426939b4e8e8304a0b8b80ecdff5e7c3f632624de00a39eb81a4439915b8561f6322d2c39ae5f1c6a0d3e3f846038e1272000d70df808a12ada11fc344c8a243c0ba0611b9fa13f18e7841e80830659e7d6fc8dd95d39ce13ca9be650d012de5719d9e1342ff514b08e975f90bc63c5ce14cfda39c06202cf8d6edac8c7aa44a7c70c1c8f505f794db94f68f027b042f3bf9c99f8384a6e750bc8336340b8b83d16e4a9a793f819ae171feea55b463a901d14bd2f795aab9e48833db4f2fc53e5579eef857d573d9b72a6baed43db6f9878a353167ac1a7ee7eda5931c1209b167904e1289f133cbafacce55fe65712ef92bcbb989b167914e92cbbf56ce7d2eaf533a3331fea1c564505bac911e920e7edab5d4799f2a516afc34621821d901c8ccdd9c1f580c359a33f1bf64cb04b903cae446995310380b6b3a4dfda44a49c51d9aec2eb0189d817fea74972f87ae0e96638d3997a33f66f0f26121ddb80c66ac76e763a2925d2ce079dbee3529bae6bf7b92e6d04a23b86f220be2b985c2b6ddd6e49652a694647a09ed0926090ec6d14e0e23c20648c7ed46203d375cbe40614fedf253b1badde7e4aa79fd2352c38ab061f7fdf1bcaefbee95623daf14f35e2996e3957e94743caf14eb5e29a6648bb58dce7ed685c5deda46b3d8d6f772187f1b68f0d383878e1c3cdf027f94b49276bea5f3398cc1ffe1e33370edf0e979fb3ae08f121d7e438e2ca6f342c858efc0effbbe241f58c4be07bfa4117ab0812a069649021fc877638888d1d3d3d323eb99b5ac566b5d2e994df6c950e1887d0f7e3280363e6a99ed8988ec291a750f096919f86de9b6cdb635517c41a789d343312a0b5a8face534b1a1baa1a723e362cab5b5000ef7d465aa3b59b247c6cf3f4f7a663d14ba683d14fae859eaa11e590f151f37ec91dd1772ffbeae3509fcfd2d59e91791306c8344c0b0fdb265b55aeb72bd5e3227b76d3c5fd817610b3156b63c8181a22926819a116cdec8b6b8a1c966f2ebaf653d5878b0c8c1093749f4e0e48952ed0837d69893831663a688293941a5893551d4d8218a183156a2c64b1a2e704246953531feff8a36f890c4b0fe3f3e139208208ca7151cc6fff309000ceb9fc1d7c2078234acff8d677028c3f595c0612390b13ed3f1316d8ef51cfc3e602c31130b01c3fadb8f773eb6398c1f881b76c71556e76b7d7c63b24ec408fb0ac37619a88f89c061798bf5f353408cb0f92d232faeba1de549bfd825d83d44d85762e20a3366a2b8008b0f6c94a0071fc0a892822c5e6a416efcfeaaac65fe45d81661fccd0d86b66d75c9954f4f1fcacbfaf6b9fd3da65f46d0d87e5b3ff58b51c86259bffaee073dc6202abf253e6debe9a1c4ea0db83431edf05b9f7e7137a794524ad9e1121f24e7407e4293438bf3d4d63c2d88d1b9d10b20acdcb651b42e37944b516e0a9e8a68a218631da86e2897a274982ae272f4fc4ee6d9eddf496fcaf78cc4f8ba344a9df9462618631035f2c64a30ecef7ec27d941e6a9067547a88035d4492b00488c3f613e1c2727737d37ee847a651fe8e8894a5f18c8c87624d0b9ccbcc54513bc86c5129b8dde430336d37b738975f5a91b5a63bc5dca55b82d29dcc345e92cdb0ac88e6d8eefe3ce0b38fdaa14dd40e693ef99348173694512e573722c73281c15ef9830f51087bf443bf72294a2e5d663d51a7143cc6a260d82f3fda420e5ce2332cb38fad4010348c7d767b0ad3b5b31a4bf6713979b93897f8ec7a55073cd80c88b8b1513619d1c18ab0b668d49799e58f125a571c5b3cb15f0dfe9410dd6811e74785cafda8c08a21c2d0fdfcb9e0e0cf11a3db6f341f74e127d8f233bafe4537699e5c1018ddf8acef47052f06960af4b9e7c018b8a72b74cf813f4ab8d573b49d5660b19e823f4ae8d7af60527dfa4a31a598077693c3aa58ae42aecee5308ed52fc6b858b7ad9f664b39fc3ebbfc2e0de4802e30e8a3594a8ecc3ca7ba000c7194c5f6efd0c1f693e83eab3ebb52486690ccf8209d4132835406a90cd28d87bd215541440b112d44b404f1906eb59542c756df49226b2cdfa2511a866a27d0eded18a1ae13686e7c36138fb8cb0f9289d4ded4431c13799948e6c029fb829d5ac65df8a8dbb4e96fc347ae8585706d98b60e96ee3b30498618eb91faa959dde686d39be6ac5f4fb4f0d19cc1490c722db7df25256b2727f2583c41e98ac0756170752cc621a50443795b3e46141bbfbb314aca15a3be1ebfe939c83de5b8e7627c0aca38c1f8fe31fe98e0a0b7f1b1e1079f18d4efe3c35ad45594141c7600d1848610342e5c41a4e1d2a8597641abda35a41c162b0b3c35a8a861252a4a53b7066d8da5094461d2e1d23a93c519ae0bebe346375938c1896173dce8260b2276dce8468b385d94d7a7f46e296737059778e1aa9b5d7a58741c85a2eb646c168109eb7385e5efeeee4623ca24e726374d6edce348296747f6f13c1196d0c1c6f277d4dd0aa15a6595513a575a96e3ec601cea8cf287b1ea32e773391f9703ba5c90cb7d54e2722fb9af5c940d732e77c3d3e570d8e172387471b9a7ad229c908f18fdd92a422b0977c6b9b34a1e3317502935a6246ed592c17d9002e6a8d911dff55f6961430f8875f95f3dd443ac0c3c1c02c20d6399274a5c7f599f5c7feb0ae2fa3f94185cff170d61aebfd094eb5ff4c5f5478aaaa1eafad756110fd2a6ca0e4164f9620c23628c0311485c9f35c7e2164ede38c2cecc98b30236528ad8828b5c62624c0d13c84993db2ee752bbeeeeeeeece426ea3b964d070a1e2448dd3173051cd175b0c8690c2268a8c28041248b48294d017c8c74b473519a2471522a4b840234d18b1d05e7fe216e58728556be604b1846c169511e100b2e95099dd764ea71e5a6aa20d64b3a6658e7972296fd9dcc031c7ddc07173ebb3ccbc5dff29b973b63e2613767e8cefc1e77369862e97eba51569a55fb379a95f3fc658f9a18ff9920a83d2ca0f1e6c3897e6520fd59ce8839f5e6bf5acef3e0800aac0e8309d17e701836195339f2f69b1f9b2168d987a28ba7943eace975a7a28c79def55b3070854859d8fd473a9ce9f45f4d0cecf9eefa3091b5614b2d8965d7e0f3af8906dfc14f22d64280e78aa8733787ea6d2440d65e5865c04d087ac85a8ab621b8e631c201f4639e08771cef7213fd9798e3677facbaefb03e530ffd7337b0760587980a1dd01862e1d60f83a9e03307ce50043a19e25e9349778c0b0028150f575c0b03e0786f62918ba8080e18360f8fac0079d9c48427df0feb2ca893ef00dc0d035c1d0fe70fac007185aa820b65665e055ece4e44431caef0186d50586563e0f3074c9df01861fbe7cc05028875759b9f27b9c789c58cb956f9d76d25cf9fe92a314f1932bbf0586421e18be3a975de7d2938492501384e22a87b1ac95802905d43e5484c22545d7c5858ddc8a4e208fe286457e8363860469a2bab811a7871a6888852f2107a4008a1a6574d1041b4db1303e4109c28c1534205a0066aa03296dd48650c20c2f6cc4a48821a34d141c4c6b6cb13052b9c194c5edff346a706389dbcf82d36d25ce68b385530c842813bb6bd8d78d6edc90dd9e1bddb451c60d5fb737b2d9279d0f83cf8ea3f5575ebc1d3fcdfa1da7d42f24fe2bd6f9ae7e2e701f764838173a17ba23dd73a0ec17f73afdac47ea22b5ae4266a496abd591d64980f71c18ea34eba9073a8436d3059d6785fcd5676f49ebfcea431f97ae3ef4b9f4ae3ef4ea87aed056595753a7e54df6403f0b74a13e8d36eeabbffa8e705fc190a33074ec218a42164b9fdf6fc70175fbe90b0c03dffefef830c8db3dfd6ac7e238ca7d58bf7e7d24ef5821dc6c586b9252ace52529c592b47e54e079ff1ffadcd35f7dd7fa62f03e49e75bef9f8331e83cdd7e6e29d179e67e7e4d1fc0d3b6369a92b4c024a558ab5b493c308963d5611c07af68e4971f168d3aa1a27f1145aa1ad20969bc5b14c7740c7d849d659e2d6cb42345a5e38f4073ceb841ade5c436cd3346c9dd73cef8d1649a1981fc8bb7b694af1e7a814180e24f10a81f490c7a198bd1d26d85f539c27a23e9f8460ec116dbdf358f2ba3a458bab17584c7ad2140ca62fb8f7808261813f0ea972720c811fef92ed047bf40a0201c6f312669a21f52ee2eaf4785f972dd993b96297a5d774f07236ee815c1b385851692ac106304eaa1f8353ba58b40e14a46c39326cfb213c8f027f812fc08606002020f2c095bd000062cc0c20422f080155450a280240838e100269460801812018618150d8d10821008413e78750004fe0f1f19b876f8f4581d2f29e9936a80f24ede658b847e94708f82470198542307fe2820c65e0ee318c01f253124f10c1f03f8a304054a8f82370109441082173ed0011738b0810c5ca002149000041cd000062c208504a080e488912205b844067024002212440880902000c03ce000c8b781063f3d78e8c8c1b3d3fa243029e99362f8d0de183ee939e9bb26296e4b6b98789aca1043d6c539292a51341cca7862766caaa0f1450052b62d700822ca698a1d525d53d3068e8e4a8d1b9a99159b1e1ddb11b23855c7adb645ca4a1339ab15d5931f74a8b5b60694d9a2a181c11a3b3634627cb961e5b2496939c2d6b4b499924167d3418e6dc2c18a2d558a698b265a615a5c8d96040d6b64b1b3c1744287b645952ed68892addb1171b05079e3ad1a4542d6660d189d15b21a0e57a09059836a4a5143472a8722d6484387e635f96c5258d4a2ccc9a125b584156c7e20d274c49c4d4c4f30bd598115d3b1981a550bd8bc60c7872a0d551a306c58aca20be61970eca091c41619ecb0f1018edf9a5059ba6135a3c5a34625c412b6145ca982a352a9a1a17ab230d8d0bc98e53057322e524f6c4ce17aa860a08319557250b55973039c2bb44a989b14282cabbe71b62b56b434503c69e2b1b9b94de1f2c48a2575f3c2850d9b95a2420729b72a9bb868c117a81e323810686aa4ac7091c60c4e268788969c29682d8b17619a548ecaa5a2a8a9a9e9e2ca194edebecc3ca9345357d28431e60696073229596bd3a2da220570a8693345a587071595104bb61c5a70449d4d36a9333c6cd1748606e50c952725b81e191731b72c629a58b5a49a94c841a6c41530d2b351b12d710b537dd4a85c86864b961b9a24a2d06ca9aa6225d1dcead30e668e6a69c90a2765b562a4afff11d94b4286b07f4130c2d6a51a3e241a3e13a07c499e00408d65271f0b4dbe16a26c18a562b031c86962410003959c26495ffd40e6a6aa87d76a9863ba9d2809dc327d4e0993719b1bad3ef5689ed2693dd4469d63dcdd4b90d42f8e5568b471438e6a869d2bfb78067bb221cb38da0e1c6d079e81655f8c29710e34193e5e0272840d999683942e4a32a0e0fb5192f4317c0c6052d22b7937e9e3137cacc686dc538b239d08226e58b57c5ff689ca210aad8d14ad0d1b6da47a4cc9513551f550ab16e5f257a61c8618e286554bed82821394d0dd173c8eae343e7290a78d3dc2041f3795e063272796041fdb46f0f1d31a22f8f806c3c7506cd830041f4b31f9780aca0b1f5381e0e32a157ce06b9907be9e0571c2862debc0920e2c59a9c1a6c785af69e1d74b2ee0e7c0d7b516be66726237f0759306be766ac29f81af6d18f8fa49662ff0f5cd61fc16f81aea075b81afa558f87a2a0b4b81afa926f075959495c0e7b2087c3e2bbad9d065107800041e1044356f51349d5b540b5afc0ef87c85cf8bb0b0a137e073153e67ba6243af5d7e067caee473a719f817f0b94d019f3f1d556143b75dfe143ebf25f91c4a84271bfaedf227e07329047c3ed5850d5deaf2a3f039d5099f57dd6ce854971fc9276507f8e44c84281b4ad9e53ff2499a099f5c3a22634349bbfc463e592be1934c4759d850d62e7f914f3619e0934e54d850361520568098989edb164cb4645b94a912d3f1df4fda903ef904850da5edf213f9e48d009f848ac30ee09352433e39f53ed8504a5dfea34f52197db28aa8ca8692eaf20be09bb2a26fce7892b0e194110d110d71a5c1caa8d4d8cee040432d23ba29c3082f48bcd1614a4e7c636a0c2acc4461451625c64fc23769237c73290d2bc23743f82613181b806f0a7dd3c261c329e49b207c53043136e89bb720df847ac20f806f7ef0cda91a3fec9b54af6f562d61c34975f93df8a8ac838fce9e6c486514e8a3596c4869b4067e94e9c866435afbfefb79bbab149b36525ac469c2c2d6342eba6113a7bb7b838ffef8689016d8906af0511f1ffd196c483f7aa35051f0f7f8a894eba353556c48a528d547abdcb021a5bafc3a3e4ef6713387f18360c5869cecf2e7f8389ac3b825246cc8d12e3fcfc7d53e8ec961fcf60d1b7235ae49e7e39cc4d8906be26cdc931036e4b81bebe3a0c0d890bb71520e9b7218ff8e3036e4a42efde2d72f7cd4cf5f979ca87e8930fe5a6d58bf78fd52672c84bf7ea95f9ae86975ccadb6e9a135652e2f51359a32ea979a060dd4ad702ed73897ab9ccb2fbd977a28acb4cbcf619d5d5a0f31bdfcd50a5fb94bd7dddf885f9ff1518cfdf243618bb554774cb5f58beb17ae7eb9fc1c1557b56aa2349bc998a29331ce39e78c717a404e6c90306cff0666f870c2c60f2553c98f374a9041a857add95af319c3fc6bb5cd30286772181f55596ccd316ce8332a98bc898fa8130b6172a2fafe9446758844d4e6300a05cbe9158a847cfac575273e5ad92814d168152606f977acbab921fd628a1b7637ec9688b84b0eeb966e570b5b4474533b4ede1b11e60fe5fa53d02685deaef370bd6525a45d5cf7ba4c5d5f8589469e132b1b1f795d5848cb9b138384b061b7d445faaf9eaebf4f8944dc26c2667cc466a2101ce2107d7f4f411c9a3fc665383f5c4773f967918f269543c5f5e73ebec5207efa719a5bcccaea0b882461e3cf0b09f970a1225bf4af32a2cd26d1a615e633f8a384df6d4f1af318e31863fcb6f593f36cb16ffbf8aff8d6d5dc0e8713cf31539e2ebff44ed0418558a2349f5331688e1185b86d86ce65fe1ff2a7b5a6b41e72d0a3f5d05234e2fe499d1f56dd6ed31b7eb8fd31a44f1e750aa9ed3695e2d25914d21f521f08b0fa9086b9ab0f2915b79f7e58ba975f94ed354cfefcb0cc6aacfbfacd6c8c8f766e7cd2af7e4a694dc46f34c964b2199a7e99d394e936edb27343ea649b92aabffbc77a3ad46ee8f16c61f76ee332d85573ea490fb1e6e75fbf95917899c418f4235f29e6f9ea7bb27a8fb3d1298eed3afc21a54d296250bff7cd304c42ffeaa3e163fede8f12d6eb3ceb75c09f16d82ff5e33787f56c729893c3588470529142c7ea23357fd3f6346f7ce4df4f6f88464cd46e443aab62212c96901000000004c8cf4f8e1c4dc5630556da6e28743d70b23f0d04d41e50bf768e3cf41b7f3ef191834dc542aa88460cf61931a89fd2fa29533fa5d1257feac586b3693e39acbf7e0b2ddd57533595eb824e7358137963fb434a734a0bd22f2625f8b8fe25c8ebfef506552e73ffd07db8fd7de5f63b12b73f3271fb99a59c28fa8f90a55c33d05b602fd1080a66c3e6cd1b32c8b8619c8a54544cf832e1668a41fdcc1c839a68703766aedc504a2965740f8bcb18636ca668e457928941fdf3674eaf6a220ea8a494b2881e8a69de4c492bb76bb725d37497a2f5d07bbf736aae537177978a46fe35daed6f2d3df40191382c7fb75600018d8d0f021acbef0a607d7dff64150ceb3f53d9587f23a7ae5c9235af7222894484f53b1b11d62f85971713b7a3577561c3939ce1f6f387ee97cc4bcc8e395d8ffef0ab35846814614d261af1abeaf5eaae829b0c1ee233f8d5ef7a63d99cb9ad4654e3865c65e6bec45820506cc8552c635994a5108da28b8c8d528402b8fc310cc0e5178a46f2f97295d7da92aba4e4aa268a6b64b28ed245b4acb548d1b84a88236ed8b4db6da55f46963de19910b3dbce1fdcd8151683e253adae38a384d38d67ae4c5d1e379eb98245cbae61fb35c83207c064fb35a8412ee11d84ad0e6ab0838dc814dbcc2f77e0e1d274b969d52ac27500586c8c0a824a1054382a001754554d39802d6dda785b61e9c728206c97fbf891d2e7b88f1df7d1ff597d8c2119c0049d2fc9937b1e3c61751e033df41325cf96ee65b3491888edfcb862efb09de7d6037cc4769e9f76c01ffa1cd3019338a6f33a9fadfd9acfb3828a811834bf8b40bf6684c3f1d278571dabeb6a57592c168bb57ac51be415bd6e152982c3f5e72f69229d9f5f821e62fdfca41e5afdec5a3fad96b78336a9f49dcf5a9eb80b4799dc9cf35b5ef7b4746718773e97e9baaea3200bfd9a2b386c3e0c8f84f523c83b7f583c5b84ee7ca12b6250c454941a949821ae917206183236b42193c3fa8a8614f99dfd9a5fbf25fd9a616418e8d77c3156831f6c8c02a2884be777de2a12294f0b61968454b025ce945a0d50bc119b4a60b2c822c61c354ece78129bcfb2f93c73d94352be2fb9f578a21bd24332091e9ecc70d95f688e0debbdfc3b2a93213ea487dc2df1f9cee6589e1ba3809872432120394038a93e587b63941534e058999a8015a95a6bb556b6b45a4d50ed580962c773aae958c12147e785d67a4387f584947746b75a015547467d62c612aa6f2a87c489a65516392892266c150a1d938a63ea914eb4071e47e2e56946fd40034f23e9529355d6d8e1118a84848a9040217358ac96ab886191383d392c56571451d068b9a150183456565fd050b962653c6e74a3a6eb23264b8dbcc06dae1c22bd684a4a4790945229a58f6c77fa5dcb297f09460cf4cbdbdddddd3d4ae1b5ba5cbf41c8f7058ea36f833c653a6e97937275c5ea7a562b166a47542bb7abbf5fd5e5c4a9114072a589b586f5bb46b041ba025d06435bc2cee51ac85c59e02845b2d93c0fbe478d1868a187b88f43ec08409d0bc86ddb35472c53ab19203ea553463a25576b3156d664ad56abd55a01a8f98a2792b9319ab991a872add66a955f6bcd51ab8d87113f4798c81b43106e04b95f4a29bbfb9b09ede032c8e4a76587dd5d7ff8fd956e27e79447f8ddd2cb0486d93ec5b01ec8445e18dc8d8ecef094cef03fbfeafec24a04e5bb30eeea5f28dd5dca229795bbfddc6ab6d72ae2ddf517c66ec9c5d9e7a4f627a5945279d43c020bf157bb5ce06fa0830acbcf15f591e44c68a123848eb054f8b8415808cf29cbeff58b29a5324ae943fa155f47e6ed94abacaea5a3b34329a51c6b35599895d215a5cfa21dd03fab65bd6e7a5d138e9bcd8191b55ad5eac3e5e27678bcceeb9a705294cbd462ca96a1af94dccb1c398c24f98243126fb547aeba05a6dbdb2957599d77bbf5eeecb48ac8203ef5e35cb14618c251195f5c07f28bab2b251ed0bff378ef4426b82a5192d790267a098d50d4435c5192555b3ff2fd1564712b1fab96cb552d9135967b276a7d103ef28ff79ba8a8f5440718966f5cab84be3a88b06fa810e9b7a755c47f4897c38b73480ff58d2fafe409c7cadb55b2c24cf2660ee9a1296b1e1655baac909deaaa2c8d56d1a1cad2bcca9acbcc4c9939325709e27215ce9c3e3c2da1e1925fdd7e36a0bf61901e7ee8e1cbf51ee65c5f7a52c114de313b461781640ffdcc8fd5fecbbaae74f3e9f7e7c2047f4c8897fb3940bcdcd3bf5d73200a5b4218e66d309cdf3f9b48ddba8a2dd9eae287dfabfad1a805d4449ea661d5db34aca28941f54320476e260aa14f99b8f543d88def444491e8baae55642752dd18468a291f6249327836d01bbcecdcfa14063142896fc4346e7dba255e118984681353b8c0b06eb4f0e46c7222fa9542f9ed2f85738994612b18f16804548c5bc169ad17990d52260ea41f9d8249334e161a9664310eac0eabcfcf4b56d464b11873e271c411dbd21fd695177d4cbfaaad5fdc734c878ed7012691f0438c823ff377bcd3ad3a7ee673bf039c3ac0a4a88613559ac041a36822b6a53bf2c189532c4986ae8bd816fb32482aae886de948f82116ba6ee4683c7ef31894b9954ed1825b2995bd959b398bdeaa94d0149ae85cdcea5f447fc1ad5fd4457acf95cf584c31a83e5287b064737ce8361f50de7ac0d05e0b522c3f3d4f9f03271199fd71eb532dd1080e959a504d5c31bed8b8199df2ca2dddcad16eadb48aea865f29d4adb618547f4239d194e226c6ad646efd09d503a6d0310ace5acf4fe75215d87042d56e7d3ac686b4865b3f9c50b73ead211af1ad4f679148c861f569b6d6cf11847558fd2f95c89a16f7b4c961f5634b0558f5e2ddd11adb37fcfe8ec81a1bca9e8fab0fd2affafdbd6024de231ef882138181e597e0d3ad3f8607ac51fa55bfb68ce88072f675b75b79dec7bab115fb25abfae5b79e2bb67e11151b0add9a84323191f74190a47ebd79f53bfbc9089befd1eaacdfb14799664ee4b786d5afd5d6ef2ce850fdaaef81a1dffcd6affa730aaa87e2eabdafde6ab502a718761a117222ca1461f557f5470aecad8762940a68b7bea7e9a1d6d7f7367cd45f3d9ddff93c4dbffaa50386f546bfc5a0fa021bd20ffd76eb53a6e88161b5aefa5dc3b9dd77a0eb688de5fb82f3956af50633f087de7c962fe50f35e2d117feea3beec6564500df0aa2b085e59df097f535e49ff369958f409d07ac0bf16318a38d87342e5ffe0e5996003b027925f882c7c14258845b941ba9283766bcfb76261ab5e4d1c5fa87b3a93ff2518fecc6b7d146bdd80643965deea5bd52f60d6c90932fe5ec329b5c3e1136b67f36cda6a6ea21295fca9fb6f9349ba693fc6a7b429a510a7a07f89f12e295af74959a860ffcb38564527076dd37e79c8d44caaed72a35d21d6ed27dd2d58a79c562ad3ca01fe3e9535964f512e8c7788e4193d5cd39afd3251e375dd69bdf0b32cc393dce9d72b3aea88fed573f95b5554472b2b68e38e803942d9737256596ef2d3a2505e5ab5f1f855669098df0b55aeb72fdcb09921176d50ac1f549e59cb3d3a194ab1d47e36bb24670bf9e27b84e9b794769874a6cf7823091275b4431163bae7ef7ddf428e5663712b5deb1cc3ee6adbc96cbe8aec37158bcaf5ead81b956118eae68adab5a579e8f150d574ee782bc381088071fab5611f95c641bdfb9170f40565858bc8fad178ef8bf70c42fd71612bf93bbee27ab9b2cd6cf8f73f561697d275b72ca29c1efd5b0fe6ec5b11c5f55267153f610ad33bea657e69cdf79ba839de7451be40bf568e9fabbfe4a2882c216eb466aed9691038031de6ee785222f7037be0911642a49bc32c77d3efd72a25a9ff6b0b02d713d1b13e7bd807cace75a793e3eea8d51b6da0d8160b0b24f9ddfa2b83fb9e9b4d07891a6cc0f574485018437c6d319583cd1a2882d920a17efe6044ceb042413aceb5b3746d9a67c21a5d3ee3ec3d21ba36c526e2854a523c90d525e8888826a02514c71dc8a4e19ab754d348a2a186f42a9715118d143de68143fb03c890d55330a293a5d25852a15776b144e6eadb5d65a971a166b4c4d4eb624b3a786c52eb20c46ce4e12283287c5dae25297de7434581d374681b9e208eb736314182f2c37b6e7c62830588e00d332c2eeb8310acc0c6ca8d0d88956f24b889492a78a1a83244f19ebdfdc8e0dce1c595b80c44a8d7ca2230850901186b8c734ef71e29c106ec84f8a6ec85198caf51ee722dc087282c98934d7ff9fa072fd5f4f9071fd858a9c5870fd91bce070fd4d48e2c58aebbf020fd7a3a010e3fab700821aae7f09b05c6701173329d79f694b535c7ffeb2c5756792330976b97a6ae5e0d6e60d2aa82a6b6ead2a9e08620a1956881146ae9105ca529441454d6011d5840aacf5d1e2e40724c8c0e209150aa858020c27d06852c30eb1796589296e90eed95aad51b30f095dbce8a2e5baeb83265b9070431f2b88e2b382da0ad678305d74a228a31110f0fb0d7e68e0e327831e2e1e3b74f8e4e8e1b13b3a2daf63ad2a47a7f496d12882b1baf13ba056091c1090d6094f0004fc5c2744c1fd0d7e489d4e4e9d30860c7ab878ecd04175421976381daeea94f1c3057681e99a9ac3db59b9f5816a49ebe3793e6034d5aa63c6b6ac684559efc6282e51dcd06b3de1e27459636cbd318a4bd30d3dcf67f5bd807cace75dcfc707100dae3a84ce3ce1cd13d743276d3487957f5135a3b8c874fa04292a89468b4ff0a2ca7be561b44ef8c29506d36e2c69b91ba398e842c861fcdda3058b693796d102ea362d7a2d03266cb15fab18cb4449f5f3edc67ae338169df28bfae746375b30c13d91d2bdf610c718a3cb8ed6ee7c922590bbbb03c939a5942ce3cc221a4d46923d14e59ced02a4588048449f82d58afa64658dd4f54836eb53be4f493920a2ef1174e3737079dc7610092906e9dc681491fea7cdd6711e9d53078923237fb28c2cb9a948e9620fc9ae3fbf34b2bb0ef3ac25d06d6b9bf0c2889b115b8011bb680205143f30e1469558fff7bf9884da08277477643b862d1357b8f7d06b5abafed2bf369961911a0897cb8bade589db4f6a77f7905fe140eee1083e371c0264cb17d7dfa544d3f5ff971269aebfd0125bae7f51d3932db63736f42efb752c5c4b98ebaee58cebcf2e1f1fa528b650618494366cd0428c1253a22871c61a4cac004dccdd91d8c24516c55710f6e593e549282a4b15c7b25d49448bfd71574e31c89f95624ab1fe77987c1707706c2874258be6bac2ba4d0ce9947afdee42cf8f081bcb48bec467a1b49699c8bbc467d19d985e25a295f339c2864237fa4b2925c8c4def047fe77a314f7673edfef22750a3128befcd8e8225010e97148ba7c1f69e4f94be7d0df9faf37cda273228018c075beec31c8df873cf3461c6f4a7687f2584a8f46f1caa84bc405f9fc58fa5905295a439a597d5cd62239e310c56a8da77af359e3d35fdd493fb1a0c95bc91ba38660f3e4099f314ec87800c3a6072e6362110c2e53c824f145adcd4cdec00259854c8c8f014e4032e1d75ceb7abf316a0835377c79f18f40929ba46ca2d79836542215c369e2a721c67093149513043c1bea9f2861e8214f078e0537e4271c85e98640378c54566e2b4141e646c3106af8c0a68d58c72ad8d0d2459a2be6bc9912eb06b0800b39615e20060a39b17e638b346c8082268e186889f57311abdbcf351b3f711337b161a203f09a68348960919b9c8c42f87afc048f802f6eba31d40cd128d66a6dfc57d3916814233bc5a0e6defde74bfafe21ff505009ff08f84a7ebace41161bad13f1f7afbc608ade7aafbb5f3df7713e33ad8944fc626606c1eac5653b4683665ce61957296c9c711b0ce3efc0b09bd415c881130c7b29c201c63329c42020502cb3118d66ed2a3cc4b3e63698880587f1d726f686cb1f995988cf9123c7e7590f75157ef14b30ec20cc301b31880370e387cc2454e3c6e8628cc50a81614e7922cc59f29f9ec2181985f07d354285958212b42c226f58fb5d060190ddbd8a504d98287205b8777f16a2d1fc1f3557951dae4736ae4733aec731ae731da5947e37e399cbcfe60d193442cd159a48042a1696f450bcec1fdd69d7a9f4f7fc8ad37529a5942b38b37342cf1509400cf2e7c210ae3ffdc2150b31c8579c420c128a50ee5eb562175ca914eb620bc9e782047fb8079574a4228cdb85c1effc39f9e9ce8f9fae7c870139edd697a71b639414d48d200c22742d93b78bad1718dbfa8ebd0ee0d8d6b397d6f3f3d28f1f1dab6345b041161309c2c0187ec0b41d5b6ce872814662518cf18308f550fcb6fd0232a54a292507e2ea7a0c728e3d978be6cdb406c348e6b2090c861fc062903f2fd12ad856cab054716665544ed4330e0b3ee2ebcf3df51077eb9a13796f445b91590a63bdb6d233e69e7b88f5fc37960adeb75e015e7f61096efcd6171dd62b1687050be1a82ef7fe854a4d972b1a52e4b02626c420e640348acf6f18c64f463d43b621c31f57826124e3328d41f62206f1e5208be5aebd373affae4d5d106e8caa4171e5f5197856553011331c53ae37526c241291a867b2e644abef974cce46f4aa6824df2585f5c203ae2e102836f42a590b609cea008e0dbdcaab5ccaa2d19568d484671882893c09e903d40ef786104230329279d5531512b33096057218a7c238352917c212fbd082c39809e62478885aa54ca872fb3b20502c9968c4cdc4c424ad88442638ac0a49060f79176fee93e4e249a2710fa16da884ac76864d2b15d18c000020006315002030140c87c44281401206caa6a50f14000d7898466c5019c9655916a3288c3106190208000000020831442145741c01b8c8b3a98146ac8e3ca15f3cd9a78a9ea3d665ddc9f60ac5407196e3c9ddc955d01a54b18d313c287b1a7156dab005e71fda0a85fa608195eb9a7b997a5b6da5f73397dd22420d1f9077203c102d819314022833629eb2ed7644a775372a8160e062c0481bf23556b702889c4a44a90d1c14f55cffa87dda5b5804ab6755b14855cf79457d2b94fe2b4f3d446b8862f893b7f886386b01b6134d8f0ad7aab5f74601bbd631809b5213cc3eaa663a8c73c48fcea5c3b30ce31f4bc739d11bd1a9e138345d9a8052490bc12bb396139c029bf9646c8610d738795656fff104168a50bad1a7a8bfd6b496040a72ead01bc4e060026593781d939bb9d2b22662db4bc81662e74f976cfd313963d713d7159e131d3f5d924f9442cfe7bdb3af69b476ed968addebb11a84cfb3ee67e44981f887bbb74016a1f9a331364bf0c1e49c0dd26d253498230d29e218900c2d0ae55497a1e34f9abce6c2296aea3000881d1d7378ffa18c5cdd549643b53b353f0f00b8330793044b83d8344c2d933b94af0825ac5a09938410c3335a22e419365cb551ee8eb6431284499a4b8728cf5575476e4d3cc9fa535842902defe3b6d1c095e30e04d3d23f2aca64b7aa0ad07d5664af658c8d146e18273d53f09a0e5dbc365bba8d2cf3ae2ed5e3ece1884e62d7dda0513ac3014692aa88cc1056a9336318d30be52c471f6efa0cce798cb9edba5a1e3f25a531edb36170b5bc39ae4f750c3bd4e603eedcee796ca061d337eb933335f0966d84103afe9ca994711008919202dc679b1a9b74eb24d3b98b78ea97bae76c7fa98ce338a87ab94c781b5889b3c7e61f321c80542145e3f5fc5e7d1b7022a5d76883de643247f25b31eae6311d8effb83912464a350bcae64461ea40f3c885965ca438183d8eee1b2a0c14ccca21f6ddfd5a458ecc9aaa5d49c703a95563026242a1a427d9495758ba8f4993d973e94fb70a0c52736620f60f57d11534a56d18ae5116effc6b6cc648e721f8b47a760c2a017fb251fb7f2c5e77e60d9a67e7437bfd39bc8a3ac0232f50470a56f219e753cd3a618d9a8f3c88ac0ff57c574ce14892f47be0565c73278a876cb446296f1fd39b83eead0f3aae38846b438694e0c65627a25569bc7cae0927f3c387d2c3fc566d4d444c828ff749a5b78f2ab865264502530db6d89a9a81386d36e52486bd522e2f117bcff90fa24878a15ef289d36b1b599a41d00967e2cc790fb4fad7f3fc9dba910696b6a84d098033375acb338cd905e040ff523abbe5fdf6e041036e339b37e336a0649b32adc4fe7cf4c003b51137f17ac2c8f8e92c9ad802fb0905548b2022e027f96eb87d19d3d20d08b8f03c5dd3231acffe0c298249377d11a20ca96e4d724843b31f13188480cc94fe3c7c4285e85ca4f0ad36b78519ed340c3252e004f68152485ad61efc3914770141e7ea0dbca4eebe5d1c6c1806584e7db0bf00f5a7d6a8147d0dc83d6d2e94cacc217b6a74e6ea6a004396fccd2d74c1b8aae768ad00192d4219a0ce3420e862009db6cb42b15a28b1e53fb20878f58e3e6a70c30b5dca1e38a1d490dbe99f7f31194aa05303fde08f72aa2518473d007f786e93815583d6b800f7d39d53b51a18178f34be42bcf999d4fd155295dcc7b1517f2effd1388a3675420f5c506093eaf8c41eedfdfa97152f852279e7cd433304d57ffb8f310e546ef8816c22bbee8865a7d068f5d61d8b713e7c5b73e1fa9122def1f6ba84feaf05139645b8d59a305e54c05613f03778fa933492d2e0510b484e13646553644ffcf4114ec17821cb764430b7108488f6e7870a773565acc024d43b519c908ef0529544f3dfb2562caee2853651a48ba526d26d8b1de94bae25a0269e41d2e8e5a8ad60676ef5f0081a6c9345472a967f5d9e32f30db4b24b673ff016d02d5f0f441a4f811db2bad0d0b9e9ce6c8120b20e74e953b832e92284f771d4bc16bee8bded0bbf6e92ad52f10df6d22ac5558b2741fb948ade080fa1f730b4e8336043bf3c7a644ba4e8d807145a99983ff7daaa66524fb202da30f00d39e0274605662bc0e948ae2c5af188757bb30bbdaee60bb4d6abd3ed4524e051b7ade9ac4796b33cb9dac3623caa5b910cc7ff50f6da5a7d0305568bd018a3105e9d3a9562eee10f5002b990406b8d2c3eb383614ddf2ec50ec85ee97b30793c8bc1106b669c596137bd041f16bbe82cb0087f8450102058befc340dcb010e8257dd31dcb2f4bffc9251db36d25869edefc8cbabbfea7adc3b75d6ae751ae151ee8e519339a4ba082528aa197a4af331be76373df578b9990b0d6bbff403f33d3d71d93978aefe8b9631437f7c65d2c4eb208fbcbdc5c12b460c54a400eac09d6b81045e6460c0db1e2bec4b597148df9d632ea080d4577e103e7000849f0e711c16e3d06850e11d9fbe42275191a8d7dec93526cad1e68a031b0b8d423724d1c3b88051a7ccfb16ae6bfa89b28c19a5b80b28e80478eefc18c4b2f820fcec3ff7b8125cd4b017104c1cd8f2d3cf2b06c572852016368bfebe18beafe2f2be17e7f3252eef37f1fc5fc4f17e2bc6ff5b1cdeb762f9be8be7f9a6e211b8a56586879eaf38f9fcc630fb24aa809cd071dcf9429073060f9c4792fcef3ad6346206e4b8ff23dfa463ae559c2d2165dc71a828056ac0771803b31f4e85f02a486912cda49b339cf53fa850082990e83fe4c88f5f88a73b9d6eb63a3c655ac9b61f42e361d31f12988eae835d8191cfecbfd6d2ba473156e945ab66b5c9ff22e41a589b7a00d0339bb59d8d77b2d7693520dfe5ee084e857aa6c513df3f4e1c9b2448261bd38b07a7b1ae8d720f3846f6dd44dba4c252c8cbe1baa255f936c5e618b26ac3f87d38a03b3d8908a50b46b3533486eccdeb8ffdfc0671617f298c0a3460644f0028f2bb5308c26ea0fddf6039bf40969e0091c4d68c00c08438f2e5023f7025fe29dfb26fba09b5448f3e791c04e83ba6afdd96f6baf64f9799c5a3b9c4fe51ed42a68e10fbd85e6801a91174874c9fa9e07774937d21d5951d1fa95e585be71a950c2dcf53a5c4f29beb54a0e2a8125582affcfbfec8096391bd09cae0349ed34dbf0a63d3cce815e5918c1fe6f60e15c4d6786cbad06b9d5aa213ed877efe49089e08d70375559c1ade4d496b75ec7a7fd7dc7d13eb0de9c6cef5b25036a45a00bb15a600cee70592c8965acb2a0f1454d7a01734cb560877ffbb3827083635eefa6adeedc003d057a583b34fdf8c2c4f32a0dcade42a46b668fb6a5527479f27a9af0f7860a190ec23cabc1fb1dee34e879aafffcea082a290d73585825f01259ebed617141cb4d14583e36cd2777ae7b55b62f17fdd151bc79165aa7fae74983362f6d62fa0d834fc8219a2540c26107571c8a56b0281ff63a3835cba99101306e4c4df4e72e52e9435421929026a9fea8614d33f34a84322e99b7ab29480ba368b323eefb5f0d0388b95873336a7530f976f0f07c20b98862caf992a6e4a2cee13e6254b3809211b97d43b3234787db57a2d881b13ce8076d1223ac55402a0c1b61c84acb0ccd6f4b09f05ab8636bc3150116dd1167056bf7383caa0407a516b2e613f72a4b281730045b7604491564740998b0954b827683fae2b68f6b07500d473330ba59b7f35c0c3557fa325d4fa03f644eb41ea05a12e3888e5893944a289adc6f33d44a4f56c51e8e3ad10cdfcf617e34602134746d9607d2d4d02ebfc7303eb6655db8eebd4972cf7303cc9157d54d6c5242a587d64a795cc59294c6d653bbbcad25e45769d609f44927a83087ed0c276fd97068ad8866db2a3a93e692bb61bc4bf6d32e3731c3064b4c023bf062650c69b1dfac8310bb5839b7681c0d737b3eeb7fbe21b22b44cb569caeff7a04404f263c2c42ec9bda101cffeb618bf6c655c6075fcd88e54b21d9de8131f5a5f2d554e3d8f062eabba2dba7c26acfc1d4fe1f6353e1517efd4976731b678317b6c5b4be9a24510b6f518bb007632c5ca0f2753f52a0c837c2b8c4f9a9e4ba8afe9e701551775368b84b77aa91cbfb4ee43acbe0e4e13a3d2f302ad16d7ee85a21938d2deb3522fa810d04a54805e063b5fc6326b666219eb1a96901a94e80af9e794633f15d5feba3edbb71dad13de89e0098be034461528bef6a4d8dd84f3770cdb45288b3461d8e8a9db692a418970372e7dd50007632b07d366c94a6a83ad82fa0a73ec2ea25c9a3fbeccfb66f3d7722288533975749e3cd2e12af68239257311836f06991a159546bc665301e8e2962964d5e71176d9884c76b2362e350324b068b0e175e6b69441d8ef734941e2c02588ab2c7083c8d0c756f7d0d035cc1e6dbab40554f1263c89eb984c18ab297d4d0f93f9bdcaf1e6a284673471ff3909e2897b74f0ee78f81ed6fbefc743422d34bf2051ccaf03078ecfb351f677974b5eb426e9e598b2074dc853cc4181a34ad7bc4f463faa43b69a534b9db9c381a4107b75598619be758187989c9458a0b8a2252b9b694ba4880bce39f451de006ba99c99f42733ddf4c27c4d272941a559d2ac1eb30ab57cd636acd49081c392198169ba9bc9f777df4d43c4a340bb8fbc8ba622a18a18780a45813422531cb3525a8f81c0f6669ddb74870083f2768f878b3e6d5332bac765141cc4545855501f9d4c601d9d88b2588e2405ebc7d808cee9e74ed824cb2bd9cf08dd83341ef5b87c82015e825a148a9a3e6b21e5a3a74c6d891c3440ba0c4d8042e0c3a9d3364140313dfe469bfe0be12aabd23d700b61801408e9ca921adeefc26f6a113d6ab5f111592994f99e5e46c1f90f1d4862f365f6b9582ca969c4982f967cb861c780cf55250f4a5f5dca8048817b363acb97931eca6845cf1e0145cdf40344bddf256675e53f248f1e7e42e281ccb201cfc3c7cff81217d072850b9db93e189f1e63fb996414fab21503dedd5f59913dae9d6a4a77312f411fd758c89be9539ea95570fa39ac431c4c5e6841318639a65927209a1a5e1065ebe2518f47bd64a30d8badba70ec9b58beaea93225f55b8506186238252590aea965ff801edf91bfe7eb5bd00f50e72aa997b33d56488063435fe48b28cc69bf67c96a5e364b6a6d4d8f2595943e2f484f511d38e249c0755297038b8dff461c65dbc08243003d8ca31f47a643de40ff5e4bd69eecd6953ad32d4504ca1aa9da281a0de73bab14ab14b9e974c5ab150681b567ec1c3a2a9b6c3b9f08359ca15f6a782bf68974494f42d32094381da59619ae71f62d40c1416d52b2a6f70315064eb349691f007b0985c2bde852b873b212ce1e1080df6b4fd06e9fa227db86fa1b02136cf8257d3cd483ed12acdb9dd2a3a2e78cdd3491ba174674cd230802cfce6ab66b6d48abde97108078a2011316bb8926b1002361b59cb89e21b02b28788d84e7acc090612862d672185968126588ac029030f768fbfc2abb3a9202514b0805619faa6d6a79f9ecbc3146bf1d92b2c704595d83bf4199b3b539e39b4b661fb38ebd17bcee60b6d99a821cc10cc84c9a1d13895697d167eef42c7db2558a4fba2ea95f80a0acf4c34aac47a17a91d65c2aedb34c8d2693a5ff225168b2125237d7344922c76241d54fa55e50ebef2dfdf2bd913d12eabd90fda14b97715008f5965e24dfa07faf314a746e5c1f1a7fa2c904cef11a172fa7434ce97d76044c5058d91132dd352b5f1885121ed94dff8849d88258f26d33fb69ac3a009c88108cda867cf2e95ade04e445c7171ea53757f5c6ccc3c41b3bd1afdee4bb9906531871d226e1a646751e09d39081d88d1530d9b60b78efaa703f01e50705e6cd4ca501d4740782dc885b38091a9598491470ebcef096f9eb4f3875f49e71bacb9521ab987dbc891a4c84d7de2916ab911bd222b5590a4d509b4e53c8f13c709ef6fd793848a377c2e1908f4e1cf3600d21aa242d5fa29a9d7ea69bfd6f41550f439499444ed1f2c6fce19c51482e611ac0f590fbd6b6745d9028c1ab8a900d7b288be7a66fdcb7e4185190064ad3710579dab7e47adf94969f0dbcc490c30718289bb71605f1fe4057a470dba4990cd661fd8b7076693136f69d6b03d78eebbb05729c75ac55b06f5858ac7687582432007fe36294b3d2e9635ed5e3b4cf64f68af9dd4fb63af1f32d08a15425aa055039fbd366d6c9f539811b81736b8ff9f65a98b27a94fa4f49f0683b0bca8aab24ef294c582bad96d90e33c68ec69fee624c387ba2cf9fd29eccb774d94453b5e1260a66fcafcc7c92476d5f5d72abeda9333957554bb5e453d3c5953376fe2fcf2ad6db8349905ce0100b9de4b5a3eb5258c1619349e9ed0d3b0d337b6925d904c83cf4426b40885201d3f5cc88cf42a6eff6e1fce4579f84ea4638911d9a14c6bddbaa0164226024d6055c8d18f5b89643abc8999cfa24522554bbadb3db0f246e2e124cb79427b43c33689d3e1c3c1d2af7ae7d831fa48da12e1430dca307839dc344008396224d217b019e5411ef2e866bf02d3305a0c942e82cb356bcdac885166ff83f72daa32e8421f9cf7fcec699c7d7b8285b8d6b8ea383ae76e6c16ed41a44dc5c5d519f8713d1098c26fc39d575abf2f2042edf9de198ef6c650703c7e7b8ac19f46c886a2968d1791229f05ebb2d66e520cc49fd8933a517e1f9c755cd8ddb1426366e81fdfd7fec6427d0141cc753213e1501f542e0a620cd29e6eb478f6c9ff116260aee66ee5151c08807f0641265fe14360917b2d1a75063ad1023a21c142c23246c3e839251dd8cd8f5da8f779705692dedd5b802772d915814750a0f0641f7a27f67de5526ba656589c67f6b774c652ecdd338d510a57b091b9287d7e091204c24c8e09485288fc32865d0a1a32cdc94437cc7853cc068b63eee2349c18cceec78901a1f1899fb8b9d3bb8505a9d961fc45d8f636683d2eaffa9c1013676924771c11a06d44200fba30138746139de30fa23fe092325f500a3206bf9e2b7f87e22aa8fd3f1421c443028e7058c342869a3dd8f1ad56d5938a8554b35e7a14a322911492724ebcdce2a1255bea07cb09fb4d205aaee966d6546b97d1174051b87da3d95c61427c3953b6c600e4b1e4b6dcb223e8690107b0db0b21a7c71bd122181f5063e27c020b8240c0b684bbe7464df328953a13e790c1e5304173ff2c8d84a5272c7f692349db1281b72630e9496ccb6d204619d95c756b3da22c01673ebfb6f836dd154b7e4eb43a919d78cbf42d7e589bd88aea61f020da69313aad9f498f77666597d9318576ca87892dce5e574621fcf8022ec24083a5fd46c9b588bf9fa2d1b798125ed58ba493e21320e96e53cb77987fb5d51dd13a14bc36756c8143b845fd6cf464dc8d5898383a8802f36d4cb7d82e0cf0b730e2da185fe4275fcd09eeb2369cb34ce3559b282e2347b33b42da663bdbaa537f485c110f0b6bacc94a2f0e917862989d2fa99b20db362792c1a26e17245a3fca79c126766001b6e0566c8575851cf6947ab5c51d71d29a9fa1b967d5f778d2412c4981d1a6bbe81d59f88c8f557989ebfb104912b4cb93c007b42a62db0be0e4877d1ceb9efad091ce0d230a4873ddf55da6761f39a79ad3bae5f204f3a8ac104e8f0174a7bc217f44bedb1d9f493035050a0e314461d870990f3043de25a571ef417448249c2f69211bab087cffce8cf56d04b1167856ee56468264991ce097689ea3505aa74914694ad9915abccf0da1d24825bc5b2f80206160a07ec727978bf02c2dfafe8faf6b80b10062d004ade814f0e43bb35e29d358001b8555f5607e92d5bbdc5f86f7e83570a9a76f513e37d9285a53d9a8a4a3c9997477490d64880c904ac0c65faa86d1e4a26f5a67849d36d7f8451541ef13c9151bc799133b3efa61ef1d0305b5a2c452bc18e179f43c35c2009da9e8a755724d462596d394701b56900357cd25a9ca3ba4e1a6003bb7ad50b287a2d9568a7e98f076a33428a8de466668c3cc00c0d820239e472b8cc43fadde0b7b656eea991e4f3c665cbf390e58b8038c3b092085c6038f48dd5f5e1b9c87202722aa121ad782e9937cd6e18e0653e1399586691e0ac47e46d82ce9ccc60239ca4b79c4977beb2ad6c907a76e582d445f41038e0d6c9b41d41561e2ebf57ffa505816edea4e1b4628d511369c442064e3ccc8e45da5b5381733dd81568ab25c8c05b36d347a65c0d80cecf6270c28f52651b784ed3f44ee9dafbaec00479a5dfdc6d29a42aee93a314de4d783a0e1b6ee33bb7c2160a65d5582a4a691689a920bd80ca0b994efab528a533982e67fb5730e04b332db00a2f6ed2652788a01e763e0f0624abe5dd0dd4224c550dc5c1b751e49d6e4614996fb0cc0d0c196889c27b4dee8db1fe4ade56d6ba02d6a069719c37ed17f9a281d1e79ef0014bb593b13b5ec3f95539c3ae243d5276354db6e6981e6932ae8f8bdd3ce8e99e6a2007f70805cb57b43ec143be1e4daf51376c6f37c1123a72d274bbb67166865fc702a0f1b987722f8d4238ebc413c6d55fb8ebc2ed6b233e668c8b11abc68194130302b3d316e4acb5115a3b7fe7682e0b5bbf46a8af52fcfbd1c118f2c0fe514436b147d8981a11ef735af15b1b248329d86fd66317c4ec5e6524c9565b55fb1f6f26c82307b6c265c00d4208205a920a65d33feda5d0b878144ae76f1a2fbdd7db92e91bd0176044912da502336be907a21d81378b9d986a5407dd46bca6d03ba64110c13e610b9ede13ad63600297fa3ad35708a2ee0be7dc230f07228a68dc860b0b1c0939517e42f8045d76cc843c3c02ed7424b62184676877c3126be4759e81036c80a6177dd2981f0516b57017192943f706a44b57ff4240a9927cab6f21d458b258c65ba261ae3e16b1479a2326ab7850ed98e44329bc3b7755fa2bfdbbefffb91d510a2a03e31003e5dc31446b5087b3088ad57713ec96e8ab65a68532e7c9d4bb1f4e7ae37e35185640134a68f1f5947b592cc76784d51e303b7acd42d8f17c77d8204bdc580b86463c195b34de07a9877abfe9e18246a0fd0a43649afc0e542c4f4a4b4fe63f6b719dc67e03352b6ef03418023bbad98e4724146247cb704db1670f37f9e6f0f108c13e8d40db4158348e18b7fe3dd67efde168f6c3176604d21849898f4e5f6ab1381e51a9536fa60f3e79616e6d9641ca4018c23306ddf06d469a01f20c2d75cdc7ac09537942548b146215eb7efe315e921203e3e8bde5bbe65feff254f5d81dad7ac9bce50860397d24bb29906c1d58570ae56f7d122d590838a0c705d35b50f485033e5db84bdacf390846da613d0372e1c8b543b899831cc360267aa12cd8c1c6beefc5bc28026c4983d6c2957b916e20be5aea239769f0e32efb031c9922c66ba484b8b8fb51b79450c4fb62e2f7e3fb769d07fd2dd20176d76d696eb8065522a0a2ea0874c71285d42d819026c7552c9692e8afc03b2a5c84ee9ce16fa9a8902fee9b46f5a0fe3096b65149a09a1cd9c8aeb68a9fc58884dd4a8db70ae644aa340814065cfe1fb101e5cd99a2930a5d161efd76a90f3cca2504113678c8a99287e5804df4a8c7b47e8fe7330537a6ad4bd7c2d5caf0d9b1e7830854061312a0ed20a08cee9a5892e332373876fdffa4f45e26791961cbcfe58c0e16de5c8ee00822c36ecc4a22413ccbb72953b69117687dc36e27dc4361bf5ee2d437d54e3899e155a385b64fdc950009d6133799cd6e244858c65aafb50c0dfcc9a4405b558f31c310876a4b1832e26042c1df76c88c411c7404a92082ece31e3ec16588c22384c8fcd102c4252d00595e4045f1adb1c89397e9fa1dbd268207294bd7e77dfcaf74bdb59937ca44c86281a78dd51da85a77d8fb1fb606f6045528304e87c92d0c24801c5dff2893660f959c2dbeb2a64e4703a907588cc797217e27247f4778394326ff60209f4528579adc343438b4159c29eed5040020c4cc8ed46217db8db60b9065309b35e5af8c36d65131f36f1e22d501b690cb8fa4446c2e6faf9bab2d6bb6b2e07e74fe2114c3b5205a2abb1b1e35367abe3bf5d45d8b021f9df930a8bdb3e0cb08464cba4cf2cd13d8f61651a814b747811b5677f302f4453257c4a86f7c794bc2a837b35cf87b101d90d836c22bffec211a7c7d7d7f8cfd99b108c3b1021de07258577a6268fb96958a00db1538fb357ab4eb4f343e3c62f6e9b91798e366a67e4d160cfe74293fb9ab8261a90282c1f20b4bbbf894115b3fd6e70e5a78391ad808d831c852f590e0d2e05f0050fe64e113c596a6ea255ce6cf9cd672e97d5cda0b89328c4b1f149665b0662f867b40a67d724613224a2262d14cee9a08473c9a6a8c8720d999f0a3478ad18c9c6b4ae9c507a2c2641435ec9f02706ccb42cb88805d29f16d107ad931b1ef26de261796435e0ef715adcab6a91647901a873dab35f0364fcab8818b4e90eb34203fd7feaa01f73b2ebe3b16778cd216c272c0dcc2a4d6da53a81c4a2a5500bc56eeb5c8d6c832c516df23c16294b8fd6e295b8955de1f02be96a0e045bcd64e12ad31bef3fa10a4f6b064c693418eca3c8cb31aadc591befcb48a2a1d9b40112519c91a30f9cbcfbf956f89e82fe68d5e6abdb45e3c0edc410e7f713db78c4d482aff3f74a52637b59758a12f7e67f17b3ec33ac84ac0e9223822d197c7a212e00833a23a806d4749e2f84c170d7661d1c71ada8654948b9493eddb8b826a911340ecc2180294dca7f83cae1384a34d9f50d6f8f91df4b16fd480e02aa9edb1aeedea15d9a0b081e08dc6c15f83750d084771be1ced33b4c5ce744862ef3d378a5fb0f7d3ec082002b60fc7ce0813ea2ad29115227cec6bf9d4e11e69d2c413bff3a5f9205bcddf4e89514a80876d07b8b66efde6aa6ed4e7333fd76b7d42a80afdb26206425471101ad63770049742e08d532e825f6f143ffcf85a84e67651994cc9ad8d59c9eaea7f393f7164c0616bb590297b5aeedf3c5184385869ccf2b112fba85711f90f5a02c00b0ab77ee3829371b0bdba84255614542c5496b46933804df4bd30798cb4fb92a23912f9e649ecfd26e0e86ec18cc2e05228c11a8dc829e17e3b775db11300d934f71167e70b51322ca7d5f7ce32b925406bb7a3cfcbde0e5b88bf0f5d18b6758859c9d1a1921cc8345c0c13d7338b7eaa91f0f32bc50c1026a207721a3616d9cf8862040fdaba56d99673cbc372b2b096b2fd68050cd50223641070d2b56ec521d9a8a093ca623b1ea61803f649551cbc491b469c5b82082cb24dd253ed4e3047f4c078511b7b11f3041179663f3168284124f6a260c93e801538c05a5e864148382b03bd58129cbec516d838a581ad44d6a5ca0fd24b026dac3210da09679b901742b2c37790a87ad4f9d71821ae7e132de5ecc30671f0c1289bf52d42a318e8fad6927ea22ce00bc8004c208cf907c508090d3272e20b18220c9eaf2c20ebb1481692fc0b875e3629f13858eca33b77d68e29ce5736f9b83db9bdd7021553dad9590ffda133bb4dd489a55975a77438f3a3119f6424d28da22eb0234bccf08d25e6747cd8e98048272107a11d89c67a24c6fa91f811bda3b9d956832debb0b0f241506d0ee25c3f90e150be627cebbe4d8adb3f5280a88372540fbb82ffa51090115167889f3e4100197be059d6864614617b021d363a70241a918bdf4827dc9f841000a8e44f1d320d2867ab96749e7ed5885261c80d47d95b7ce609685a530de0e68d08ae9f36965a1b8b622b8aafe2ef15f167f4db0f1e558ab349fbe68455049b0c7fc1520011d07a8ca1dfecee31b085afc8c1f445b15bf5a1dd2eb5604cf1288f030e53e201503a3260b2940bccefa56f58e35d12b81e84318dd71e2c1dbf5ae742a658131668e3a8df004bda24131727d57281d373ca5108d4498fa1bc770c043fb788f9e2669eb51baff0268c0d50cab09abc23f77d9c6fd78df0fb7164e21d14556f953dc224664f969e1e9d44c458dde74b0a6ceca18ef0ad9f4ef30e33a0d5438cf7fa6822b00c2ba105b0a93bc91f69d7783b25149b35205e87b3a49c3b260261a5c78fa0cef3570bd135d5022ac71953c276f43e95f1a2ad78ac85e42220fb145685c2cdc33bdc394016261a301267f6d95d59b6bb8720d8932e1884f2d885d08fe5dd5daf084ca12fad45b57e107332235ace87d26fa5906658d51a01604a903f4ad10552b2d24e609ada1113f9826ae7004bde71359752ddbdce3811ff76015e049d60a9af999b6a54e13362300215b2306356bef52e0e030889bc8a60c1a0bb1bebc38cbc5891de84411601536da3b4e8a002f8fedccd3aea4c328a2b21b76bcd6d9c71aa60b72c7256e84d252ace04844c0317dfbe5e42b9532c168e30d872655556e854b9deca8bb251adf215a85c2d268182fd7258fc118b8528b4f51b68b3daabc336bf43d215e64a4ca97bfd166c56636136467e222e8218b2c0feab7b5a9124842b72fd72b0166be9e3c288478119da443eca0f92dbb78f95247a7c224b2a4fb04fc9d787b61bb32560de6417ba3b5315a0d9e8e76456f98b5313153eeb2a48617b34d35dc1f7ab0d8d8272eb8d5310567ac5aeb252586e080c05a44b857a8d995409f96f375ce2baf74c0e7463a2825f3e8d853183b05db5ee128b3050a429cdf195efb263ab03446829f33e56ba5b1fa16ef6c19c78a00fabc42c5ad44767a9e644e710e3166e94d1582484ec662880f232a081ec7a9d7488178468968c77927d8e45339e8744386b99098186c72a0c8035e280955e315ab701c8545356278fe850001f8efddb1991c3eb024a5ff8019b085863e9e7c13d266bdb1307d16680cd69afa20d9513a858c48f7489f55ca899487d041feaf543e93e1f8e5befc9d67ff2ae5ef21728a0071deb8d11fa775680b4ee9044c743e47cdea7513c17cfeea638e81db97d4b0a6adb495f3c2bc1eca4f5d688ee1e428a2ec68e938d9e7d1cfec663e625b4ac90c825ca0fe9c9a54391843a236cac8852710522c53892214e1b7c8eca6620717a3c619c2cfb8a2fadd07e9cfd999ed0ccc599e61d4f4147a9de52b3042db438921e7ab547631df8ffe50a8b049db5cc00d3418410da0cd30e6a530ed18c7a90c99e87cddf0d26812c79a6077d24b562600162883c8fce2715da32c0948f9e9a7e10d1896f46a42759073394aecc4063ef43e971180e82e28d667b1a18d1278e1a132e9cf5a143d5ce3234e2cd458f3825bb57f14997de1134a39ea83b01c5a8021ab6c3bc23c37808fa90714d3a36223a8e9641721cd93c8465a948d1458dde3e641070f753834e64cbdcec0f44a55a1de66099d409112d99f4b934542820417e84f9d4c530652d772180071a95d1c376e634b1645e5645e93e6656592cb501e3dccf503909e369ed376284401bbd506c434e2d5b32618e0490ccd54708917ee61f1d27545f9db53752791219a36458361274810657248dc28ea5131c09d8a710022747086182d99e38693da24822674ac2d8a77621e727725030d2cf60c21dd8b2fd043bde1a3e19eb5f0e46a55ccd1c0f53af8fb0180956c223167fdb21e9d501f6388691ee8315203c08c1664b877b85bcb8f1e34218e41c21b82e0dd99042e8be5b189a0a91ab4475238ce12eea8ba1e5e5d8cec47fea329afd9f0f079e2a6fd4e4313b0f25c931510e9239399dff69b5d8408de97ae9655f56258c57c83f11883498312d191e64284e00db425dbc31665589565bba9be5f8229f25f71dadbb9a5a980ffd76ea247c69cbb58c78c2fc3b739e568b1d69e297fb132ad1374cccdbe7b627a40e813f529eba984e374b55c13f5348264004a27650005bf8b84d850065c9a39791519ce52c813974762afc775a84cafbcd5634081159c72271d711434a9c4271e33e10a4bc0cce633fd3ba526816964764fe5f970aef1c0473c2c4cbd510332de5614b63cb7ee8ddf827a5cf772e114157e6235d7b7f092f8ce27ef29bd878c1d754f30e872d6f7505e714dfa18a8d89232b9ffb46107479f53dca2a140abd23d8aab9f8c3fd08b3caeb6233085f481acef3553baa3c483e53a08464b2798d88058a1fd3202dc77fc0403a50a21f9b892ad928c303a9a9328518b1328733b2e369a1e911a7d5f95160a7f6272eff8bb3752980bf4fa883b63233a206da3a8f863d7d29a294f629a1a801ed9336b08116760491b14e8c67a024d378864fe844a0401a7c30d8bf54c8beeca3690a93bf73ee78c8ca97070626dd5aa8136b7dc4823bff98e46a73ec46344756a44f50ebfc8837b9a516e5e413acf3c0cf92c23fd69b8e272a221ac3be1a16476d77e7863b9de452717c40a48b1a610248792424977a46f410229192428f06c172dd131d60cff68dea5d11f4ee052e139b6051d0851d5a7badd7a834ad02741c8e40322fae12bb08f30e069cef044441ed13593403ec8419efdd29b7386f0d4207ea05af99a38e8b083315efaaced92c49ddaabbe900895839a0d3187cdbe02139bf42102749972a27cb1285b4cccd400eab4a111b59995a752537371544b5693baa913042a71a62f3b0ba1974f554975dfe204c429c62ababe6c49234459306730c62bdcff4a83e97e59ca84c5e970d1160a5d7a549e008b4ce6dada3d958adaa51bc47d9238ad760b53a68a2c72d676f75b4b95298cd53b9038babb54bea7bc95afad7ae718e16df02a7ed024b6e814d8edee00b5074b3600a4e56f9599561e6c3c91d3e64d7e1fe58a668ba8e569b752ae7cba9278e1894dff1df90144acdc03fc9bd9c4108cca41515a30c125fa7b8ca28357fe2a3054501c85391df4f8c2fbf5129dfaf7bce44e1286326143b6caee5c7fe87913813afc736071da2e512a90226b8e24d1bd05106ae45ecca9117314bd0c5d3ff831b5fa7517552344b2fe39b0f91f0241fffcb04c0fe068225c8ed4bfca2f3f724e4fad3ce3ebd392909acea85351176b5cb23c539357bdde1edc88db80691998e937d143d867ca597097a2f62baa65fad393f7eb17560201bae7182c27fdf86d6e264adb7757ab7110209da8d0d9a1e6228bf184283c75d58c68d66632f810ea16453429c59642293d0a8b27d0901bec445a84df889cc63024eed95b9e1883c8c8866f40eb3aeeff68792ce4c26b3ab871798c96adca41688f8426eea8ca77bad0dfdc078d0aec4b892d87e24ba90fa2a451473b5cd188eac49d49d0f093a6635aa6ccaff377f78cc4937975d13f49c9022cefe44568095528929d594e7052ffac5ff99dd44490a3af31eb15bcdc346158e1694c5d68dd722700badbe2ff16b3900ec48c79ea7e0bae464636d45aeb763681630b8bafa5bf7131b20fc215d5d9043b264185c6a980bd2cf04939d0979210659180b2795483963a47b19286198db35eee852a593bc3753d8952260d98ec2662a60d11f6565ed0aa3555c650ab703bd4c52187862eae82ea6087f57f16b2097d4141dd200bbcd4086bc809659e91c38d78c2d69a3646e19c275f8d88b54d553029a84ce6aa02995d82d0aee72292f49850ed46a616d2b6711f0fd6802860e6fd6cb5379a02b0da4dfbf6e8054ec1dda5173583bb443290e7e161dac10608a4a9073d2401aca68e9cbd01216b03af8d46be02b0f79a1ae643dda5845ca4c8aec754aae58db810fca0d9d5ec20996e2eb55f48114b3eec0396563ec71126fa1fe898a63d6caf714f3332ace37c76f1e203b8c1dc0788051a9224efc93756310e73197930142a233e230f5bd9c106f0685712689cb89af83478833f9e09793219d93d01e8ea073729e32e3b177f838aba45bf044510cfbf7acf30474225c2a8d66046d2c2bd9f611d190171c7489b903d016498ea40cbbb55d7a8aa79c519a83198adddb72c6b7eb4c44bcae6581ea8eed5d2f2e78f72ec82114acd7f53b0f100748eaa1f0503ee2b995398ed901ad9ea61108bf62a8af7f8184dd7cff2eb68e959465357ce5ca51dde632132f459fb3f782ceb27946e970a7ab58d14f963ec702d9debc1eb48c46aa6fa6fd3d2a79c09039b09d77d03caae18bb99e406ab81fb90af2e56a991591967fdc60c1216882a66dc78176b429a844a5a053d955c62261904f2f9a431a46c14dc309e414375061eaf7415093a700291dcf2897ab2eab6de0f3f1cd10b504a44fc62063626162a9d42052f73e98035578a43af8daa1e6ca5e54e2b73732560ef3242469a13262795b8058529cdf8faa0e9575e5f13100dce2bd06364d6dddfd6fbadd8d22f972932e93149213f28873cb776722979e3ec1bcb3236ccea2d5d6909a9406ac25c6b66b8a8df297d33640e12a7c4fe6447428b0fa916c7f473891875c1e4486c8795f8a5b4f24859aa4c173821138de5afbd9f74c289ac780720fe2ce531f838c7904b8eacf379cf32b4be6d358900e13df41984f682b18676bbe83af1aa3de0eed324898e22615be6569a3de858a79bea1f629d38a088b59fdaf872d0b3e5f0782c00a55436b609f2ab38e61648446468fba06e8b07493c2c9c6498448600273b22ebcb909cf14f994a071f282ceb7550d52d084a96f8d4eb098a89cdcf62cdab6c6e67ec48085638d470068cb4026982853d7f51b705d34614f1108a1cb11dc073f112bf6868660970601dc101e4fe212158fe67e8257c7382cac8b3cf87b51117188d188f812c3d7a86b2263f3f2d023c0bc5db831c73a48d961f091b97fdd2f333b2812ed5d5460db013060f79deeb4332b4c242e51a5081ee4ec89de57e2122d19f186679c347d25eed192082fe4ecb4ee4372192d89f342664e357dd2ee8852242f64de170d847e3f1f2042e0d14f43fea1afd7161ac541c5903b8c1c6810c82331a8cb8689774a25fe5d0b666436c01d9eb12e3d5808dc87a00acc5ce836281ff201e61eeabce50eb1c2580efcf48ce257e8162e0ff001e71ef4bd328ed8c218377ce24ce957701f9609f802e7e218582a833a75becf6e08b1a77ed2b480b4e519c576d25b69a9f7e6e0f0229707877a6cf357d7a6612f439aee30b09ae8e2a6ab0ba8b3ca5d0b3a1e276cb671892ea501e61eac982237ad0f8a89ac25e740579130fce68116cd8ef596521b57264653212162c9184c978a93ccc0ca5282207230084fe0b15da10b54c27805c614641125dc2cf7f484efddeeac0f3fe2c0540bd0c4c82ac15d3a9aecd0ea481398f2cda60baef265c5d453a1bcd18aa9febb746b47c74bf7d56d8efc24b926c02084b01e1d1f181ffa7e4aa7181c66c56e510fac1dc5157d19a0637dfaa8f6587fd529c40540eb07dee45af0ca073f65a90702463ccbcbcd9ebf824876178e4d3fe8b430dcd204c3737249e00727d3fa011ac6e7fe5837d8c0a625d7c54e07c61560521e99491f851508182e56063962df7460f0955e7625d638fa29c8893da7109eb0a20bcd4b5ec5be9215f95731276bd34c915da0b2bab88d3741f90c34f43ec2237b92ba668357a1c515163b424d4bb348882a71ec8813536503b1f2126b8b120d9364f2c64c26ad01d813ebe3245f5c1102de32841e30d69e97d6de1a41a80f6f8fe05d5309f35dcad1581282cc1e722377fbb8b0943d982630d0a2c802811b6eef4188f37b3a0c04e9062e4dd34d9dac4b90c3c1181845c7a1d85bd9810404d9ff787d56592d766cfa18e93f2152958011a2247f10a90ba52523f2311910e5a13300102736cdc318af28bb315672e316c7d1be0739254ad374ec6f10ef5bf45f186e6d82d57da6c62c64ccec80142bbb18b735da1994b05b28e4c0fca45b6e0640a20574f63e5f006491c7c5a93d970e8ce2609b98e91293cafd2d13152581514409722c2718856021772d794abfe9f24ad772ebec930b49c7b482360d164657e9ba426965c12b9e6605a7a28b57d4b4b05a2aae0bfea7cf477a7657421bd11d145a173620146a6ba4734102bd962706bb6c8f92e2ee164a303017832f31434f7fd50522ab04a0b69c2e1a2116f4d4b84cc74b08690fc4ea5b9f468750010d9f9b5c97d3cb3b80eca3e03ee560aae6e9a478adbceddc25065195545054d0200abd07e64d80501632a23ef8cca41a0a9a9964ba6f3230f88a2f2b358ef1ae0f40406cf6c08cfee146dcc42dac26a772f39a03ac201f412fc59a84ae42e29663080f5331086f5f3f913bcff032db4542b15c402143d6b5542ca50311eb22ef4e546956cff85d039585d54dc24a50a26554cf0ed7a2eae1a267759f03cf901c80111c51acec6ea256865a0952864ee03150595def46c5a7bea0070d0ed7afa5033ed9006340087d459ff0920a87eee9f99018fa823e6225a87b5a25ad624d1e6b0312cc4a861550ff1a7212651f7e1df7a91bb672afe272e6a295453f74b52d78648a741ab52ee8fad9429e9dde0c3b8f629008455d4ac18d2d3ac9c99510c2a9bc368d9e5bc33273911c277e75a6387d3775db4e38acd6af45a94326e5aedcd64ce1fb6968e27fe2acf909cd653844a44d2b40c58f2ce4e961b5c6804d33f4049f19692a949a30aedd4227d6c6ed5369438737e65cac9da50cb10eca7f880ba6093cf4393a58685b98e85df7c49ac296bdfb090b75c880e2476000abd013aa63f4d3d801a9e516dcc317cd44904d2578a533525e4235e34359a2c4d8699cb174798fba22ecc3a473ec8af0889305aae773e96d6b9a1a12471da16b4de926239545ad15cf91050485ad1e15d11b5c8b9e5370c5ee4508d833cfbe376d88f919ff765835823253b202a45321a68645a094de924d3570293dbdd723eeedecd30fcd522815f7a85db03896b6b9e9fd61441a0761d2826b689b27c0bac056107c7423d6916149fcacb426ac16b0b29f0feff4cbea7d914fc297c60069b4a52c02cc98e8bdfd6664b615c50dc45252c0eadf9dad834aae0ed1c6aaadaf8a046f6610a600ecff031e44af1a9b1cb0be7c85275ab7535e2753d32a459c8e4527eabb49968b2f9f9390123c75e899f25efb9e0d4adf8f2b9156aaa6f58976e69cb355652a7a7d894b0d0c5a369628e011abb73c53e47e801e03e22b9b450e4b00d07e20331bd6fb5858a2d554216a2dfa39b727922d39f65a04c54c3364d4ea8dce863950a955e01471ebebe1cf0cae1956a9d98397f22aa4be1a268d770c82369628e011abb74553e47b7f099c0a3b1296de9b73222baec5b9d783f236fe64d083f8512f9a22d53b5afe987901cc37be85f9252d595282ff468cfac4886becc347df219ffd1f88c1cf113bbe20e2ebe10623442f90a6b12c5f8b7fe1b2c3b6c2bc1e70b4e28a1dda8e634c0e72b693379c22e0514f1263b42f78712d4aa4ef10c75f42bc647f140d1aa6c3aa14d7e9235741129cae841b278ac6ee5acf2118015bcc78fa4343f924c3aa79b698bdc7192d62dc1b959502f01b3ae36ed576e0adb29a5669fb844075b31ffb1a5ec337fc3435e2ed150ab3afc54e67c8467662352213eb7cae6fe2fcfbda4eda0834b5bbd216657773de4aa87eb7eb189cbfcacb2d0dfabacc85dd2a480fb31de847cf7121303f6f6186421ab500699732cf1bf6d1fbc9699f088372eb27de8aa6ed1326f2aa941f18e0be091a13c0ddcb3f601292271e08d66bdf1b9cb0e6e6c6825e6005e280d75717eb16d758b01245b445f70cc491ce043272aa7dafaa406691a441ee983b51afbb500670ac1c46afe8031fb1c24588ba9e13733586c5034da79dbc7a120214f86c711c8232c369be5a2b2864bd2fdaac144efbc7c1c2fa40bb6df7b3dab3c874d77c9ba3a0f8140464ddf01453e2360fe3200c6668a0624c4d4c089027501052c741afb73ff18eca9110c452c9eadad816231125f0c833fc805d59544e9f73c5bfd8565a746d648db5a00ea75bf214f8bff542d49748dbfbe1572d94e93aeeb2a0e2abf5b4d5fc0759edc19d78787a100fb892597d722932962dd9866f51bc349445b862c5bdfc4854d8306c1829c5e0610db9bd9b5785ffdc5d6ce1a389e244d7281b5bb71bb9d2738095075c51fe91b0524418295ba67bd36ee60e69da4163c740bf18e82beee8a5f8579662e057ac488dade5ec32cabf79f105f7b2b8d1721f3cf6d1992902e03e93fb2ce9115632c6298f4300f4c94296175d91e185d57122f92583e2431bc6579578099a4ff51ad21aef63f9ca2609d17d5dbadb8f8f1e446bfa3fae5a130c1e406f56263ecc76f33f201f10c1e490e6aa558c65252058c7712b8113295770cb183783389852b7ee45c904e5af71a244dda44f184afca7c5867bc48a164d61e632c62f30486aab4038432558a8a26e0f8a396720bceab5f0d9b6a89a12ac51c5b43576d64edfac8991b55ccfa4f8d30528d98f19a6231190aded42bb6b0f878877b30426df02c32a3e6fa5ff3f998dbaefa3cbc4a3564d8994b46ae86357998814553935778f996614859e4362a4e8c0fab6146b2222f3ceef4ef78084906a78ab771cad18fe0a534a4d603cd5ca052e9ea2efa6b6d6c905236cb57c5d55587c5e5d28bd4e761280d461447f0289f65c39bf1f80b00e20bb80f0f9a8770492c5b1dc432abeb0bc1718699c4d700204b77b4f8fb5262d4d7bf20e840c4e10042f08c296057528845f807010f8ec45a8fa19694d7f2b381b8b7bd961a381e18e3c8748146b9128f147398715b451f1e5422590c94d71af5d94cb352795c68f8b543e83ade3d5b51bf41ff586ae9846d73a27c4656919509f81ce37301709b9f6bdcbfc627145e6dc033848d3971ce087be341443846c137b69bb0f229ef43a47ac7a3d6b010b4f7176395175105846b42ae4bbd11d2cc3878d86f8c0043e1207579d66932035800d215834897ae2c2d9da582e92302f8ba4509c61794921d864012469523cf0dacf72034d44c17f53ec4fea7de0abfdd3baee3a3f86c308d19d8b5471a9ef43026d2ba2c618236bc121e13483d6d641d34ed3fd804c54b1b880d686aa761173690833c314394933103da66225e53fb5f425330594b16f227309202848abea59957af6260deb83ea4d0242b8d02994e1d41a2725268a95a0a1675c2c9353ff3c898beab9d3dd2dc7688429fb5adb45730b4f3cfb26253cf2ca56928953f8ea1cf879a98ea595e35f67d243c107cc3f61847e7f4508cf7654ca32767944c4cab6206b3f06359dd4654441fb37f3b542d40fd9855bb14e6255e8267f265832c79743822c4c99da356b82ffda819052d8f42db22e38ad21af522da86a3a35519d43361512217d34a416b7f3436f8b2ddfc3e098a1db67b0fa2912f012edcf3912d14979611ca8d86f5da02677b172007f535ab313ef36c5d81d4e9c046824736ace8a309ff484961e981599d19ff3a8ed35daf5ba2e8a9906c671e04a8d1a2c21568dce4b7287c8fd43e580749a53907a77ca9b6ab539600486906c41401467dd8a7441799a3fb29e05e56223d2ca530bfc0826b7aa79a7f8a26ffe602a3a7d76a305179e6b879ab32c8575e21d7f3a668ee306a2d22ceae01519758415af26a0cb021144f9cb892001fe0502d8d4801f9bddbcb7519b1cd31078690fc57a26286dbbafba444af8fbbd63e38613ea05538c1ad8c49cfd0fe15e3227d98797179dbdba65e8bccfad1074f09b445a56bee162353dedd60230173fe37612fbda1d850d7889f107d053a947b590f00b0848c16b7483b84d364f77b6ff181c4b53c2fc579132fa8b1e247b4b46a5a934ea7e0053bdca34a8a6baec3b04120fa8c23cf5d66734a1c3e5cb7691a1cabde8ad29fac07eeef39f73bc142d5408410b920cb7ad837d617b9967a6c7874d5034ba052dd6ed6a03fc189ffb68815610557aa9f01520d4435ab93714dad2116dd55d742237eeac9696ab5b08c1a509b360ffe69290a0f90aaee9ba671d2b2e1999943cc4d67b3592025ad58ad141f86c841e7fa8b3169f87896fff6b04752a7e21676ceecedb885a68dd314dc1f15eb2b9d49caa0dd077ccb901e1722d12eccc381179bce263d3dc495a261be8d23cfcf4cdfbc965b10becd6f65c022b9810ab0a023dc76608d4b351ba58de84cb60ef79229acd9ced3b092b69cb89471d79ecef458843e062f61e8fe946bd42d6cb6ac5073d86627c13c5967ae5e917e4eb1d049f8bf77f1f5a1e094764e1450f10338760eb4343bb94ecb308184bf494a0828f06921603e01ebb0c82c31d04a807a0f67f8abe09c7bd459bf76ff51c1e0df239ff90c92371d108e3d4cfbbb3afaf6b011a615f0dd5d4e1097fc42ba4a4355ede24b098cc6b8712b23a45c103e15b848f562488c2c631cfe8e50c128694b684ebf4b29c1d548d1e05445e7263d515d320518b6663e52ae6f25a84dcc70da4d32ca5a62b9eba9e9e80d7805f27fc277677b566f52c5a07b8978514cd475ef2d16ef13627a83624db1c1ec54e0dad46c1f489ffd867f948d4f7b9c4b9a090266ab4b1342a0e0e082e80690f4bcac0b1db2309671a72eb55e583b2d5d81e030e8ac04cd45cf66c45544ca3e99e2c574b164aed2bbdc14f1c40f84a41cd4aaf46894f32bf9e88053fe4861ae37d99f053f0f8ca0243c16f8cd634df2c035e102a01c0b754816a4b8fbbf4829a5d4653cfff455383e4ff12dd99cd16bb138b7c5de557676de5eb5ecb7f6d0bda6beaf29baab1067e161bc93b3667caeb56f90a3a30e751beb3034a5c64aff1bc11566f7a8b98c2a31d066f70a8378aa2d285773e3a60f4dcf2a90254367a285eaf3109e8859ad2eec77a018f9272f03f5e00c5bd2a402ad4d46d2e598a07a68129ccb8dc4ebd92782ba5c0040b75680155d334015555da982ea13405a04e2702541d04ba241831820167da3d979e7684a8f6ff99ab24c69ab1678ece37017ce505fb7e1860d2331a4a8fd97616d8e7ca41d6e996249030ec122cf1de52742dacf9d4e0b4abc5df354cf745e23650b87bd34b225048e66f0321442e2d53271a9b7f4beb98b5a944f30f116ac13f12561b40723062b3479d7008df8ce613bfae389224739586be845cd51ab99cb9afd984459916254fb93a0fbdf8c840ee0a49a5034dd8d0b28ebd7bd143a6848061a2fd07006881f9382345c0aa853250fa603f691aba3007b0ebffcef5c61fd1f14f50246d5a8dd74791b34f9174fddf35fe6afc6b204706f8df2dbcf2c4fe1be2181e10e2bf2d5dd9efdfa7706be495bd7ae7c40d9e6df5132727e1453e7152e28477ee5c7ab2000f739dfbf250b9fbc88a7ed9d95b12cf04c73d986d06c4f19d948c309646929290070ec63ac884bba1e1253469c1c7fa84a0cba13d7f48b4184789e5a6f19118de3b8d143b451906e0dc7ef7ca0d08ff91e4141d7f404e54fa655d611aecd20d3cd072ebfb4711071bbf70e28f01ba28c0e0ef696b0572c4264d80c2a373c029efb529ebd467d61da3812233761ee1dc9ef614a10af2af7fd231e153b0416fa370a26742161ed63306a8320a99e1d90b29e03fd1a8582bb23756e566bb464f7a6ff9f0163e71786d286f0f24415ea0f22b1c0085c430d23a86b8ec1b2f245a01955250f9538bd22f93026c8d8a97ff1f4fcd521b1d2b4d803598393a73ba4033302db91a4fd38d92fadd2d241a0602fea2ade5b586b4c30ac64459dfe24d266614ea8d1729371fd10c22a3f06842c4542b1cb54689601665782685d7acbe1b2f4a00a918d4945396886dbc1c316ba731e70857872d840e5f6f8619e53b1df374c911b5db9d884eea530ca7e53b08214e27f9a045199349d17ad48a0cdbd2292c94935e24af9137a37c28da8f5b0239dadbd19a47618972f281c12848939e0068a9f79110bb42d5596b6e86289fbbb101390f038219bae7ceee39034737ad31ef58fef3aef365bbebb6357c2f589f4d4a61d03825cca40c6d332849f2b2b72629570aa56a1854c51874f14fb8afa3f750e9e9f91e1790354b1b95ebec84a5d030fb56b47c03e1049395168648d6a1a5caa3ffaec0145cd3b8e342f12620a71b5b72c8fa5afeb253d041d05e4f00ed4364f79f697bdd960894f1e895f80e17ca98a28013dc97a8292db6c4b921d47a861e6ae61d3cf16ae3dccb9c0204a6c9d03e8b2ea8d6b828285fee835bd296ae0d0313b728beb225cf26493012ed902304567bf146bda34022b1ab9ebf204d6acf4620cc607a485a4eb33c2c3055f2cf4ac6858db71959d57c12d08dc2222455b1fca5ae5bcac6c0755e2954d7c012d611f982c1d05abf5e690ed0665232760cdd2882cf5bd031ae1402a9810040cee79baa035a063bde2b95dacc1227c6f33ba0b9e003c5adf2079821951a69acf608930911590b8317c1afdb7a3a579bc6289e9cdd35046a4512cd364b95973001066186f862976f0da70a4fc820a48a39f2c5c9e1abf956bcc6c3a7411c189e429364cd582276f0c389d45cb87d7610af3754b5c77a4e3c7e0147a309bce6b0b67abfdb636dbb37bffa102775ab0f1abdeb4a3fc62ee531399fdd628b47956b08e399f89c005b6f1a85e4988dccfd327f6c52af55f752b5d1caadcec626aa417ebbad89dfbdc5075ba9a0aca8fe9b5c0ae77b52e73a3f4ca379a3213bf678ca014412b346a43cb0314d7b707906197508a3e306855355213755421b1ce9bfc4a2a4c5fe54534a457c3e5b49658fd541ff27c19366020b4d643935c4ea0dd060fc2f0074ec30514c641b359d46ea24ef7dcaeabf8ec3bc1ec1a18881cd42535e3e35a757c43db40bc73292081d2445c82f5a243f358f7d105dae562fbe63332591b0a721dad38a3fcf0a0dd00c6c0971c9b53607c60c059add28732690203795e63c8570e8076749b21eb82bad48a3dabd0eaec8531876b327da871d33caa814d61c7354398e06b28780fcab443d40fa921d8adcc7114673c3f2f202416b7ff86016618c09bd9f041ae76c309f833d3e80a9f7fa8a07ebdbed7ceec19fe4320d2e99a250f98fb0b4c988c18765d46975e6a5051eb188f4c44d1ab39a0f6843271745d9cf2294026f35270ac0bd801596578fe4edf288a035952847215f770984fd0e422b8e301d2147bc49bb47763dec4285f2c9e9ae3a8aa6d175e842a0446624fdfcf4af464c3f8aa0c5501961838a58a3d25cb3e1520a192621c4c6d9d23bbba91bc7181a9c461b9638d63749cbc62e25933292beae89090e9d5fa5d13832a59fbbe43852e28ad425fcb716b8f6c37d1f24353761a9ec423617fdd3c82245ffba7ee73b521c4237d15f346441129d474c2cca51fa993099f3325678173c09849fd607b655f887cd5614da9df9e52928a25835de140b140dab3226479bb4c205e52596c670b811b64019ede26e89bfd8a43349619377fd8d2976f9997280ab05832b379f4a5d5a03af42cdf3bb5549107ed01e7d3b80bd3783d9594a12eb285834d663c9a4aa347482c29c4464db9f42d2ff962ffe52dc1ba5c1e2dad654aba179d086a0a4689edba341ab923ed6e45b8f777420ef676347f5be059d7aaa69c200b9fc4ae66b1cf3ec03d4b6413d08a1f5180c89713ad1d8048bf01b8d45585dda5d61092121fd45aff92fa704a8c388c84da84b1257e2401145dc930065292dc53801093a0f477023f30ec2b252865578d38b55edff9318bba844355156457e5f68a616850c05392cb996c7548be41cc4d63654d38a9af0c7e1d272c827e3eb4d59adc245620f007d5b71c36dc490f512454ad18f1d546df4855226782f1ac852e2b2864696f95ebba2f4d9190a1047461c836159cb0ecc31b4a942f0981271ff6f16dec92978aa117b46a96658775a044383366823ea89b72456c2f6923c911b0d17688486be71db0ca09ca8bb619b54a06202692854926defe2afc384382b97da03e24da1f4ff166a9d901fb28c7038e966243ef1b0635e3ddc80d41991105b2cf8d7c08f99704a93c40ea52df718eb19f5b1a93e6c35550d5d36d1a48107c51c6f15f5e77744b168c488f687c733e22808cc97eed8e4ee7c6aadc758d1d66137e210e678557c1a67bb7c003ae553c03fb8e0607484dded07b5cbc7f7f0c32150a6e106177be0be677c97d2f2d96ef74f7856c3c5bac2033b9c47175cdbadfa2d3dab89dc035de4f88d1073698e980f4913226f684cc93a4758d85b1cedd722557bc373f440c30867615ab441cf503430488621e787ecc2582f76b40bcb3fe457ae4f7b52ead2e84bf950569f3378d90f33549132a35e14569a69ac78c99a6e57f1828307e540e4f8123a6f10c1cf2669d414bcad67f35b58ad78f5bb7c65af566bd004493b29c94fff4cf95883ab39eabf877ad3b8ede81b7869ac660b3e02ba4583ad8c964b53407687eac3f0ff85b62b6c2561bbcd199d20475c76071bc62fe6dc62bed2c45c590e55c38f3664adf804b344b0b7a5ac1a1df740f8b4e60d9ff493af9f4823da3281e73b732e623d0ad55e1376c00a546826d05be26f8694d659cb80db0e9def0cbcc8f74e8363ff5c5841cd0e74a4e85d3eb623ee6f8d8fe0c67c2c8ecbcef9e1ccb7cea2927dc490db41a1dae160a24cc0931438b717c55313908f9c1ec5c92076d70d6bba5f2001d66779883dd57b25295d5743be4641603408c08907b9f6f8c3a85571c91e6c57afcfd922dea02aab4bfdfef84885a28bbb1dc2eaf368b65b36335f87a4a165f88773a45b7713532f588c2378eb0d27c5eeb74a555af6eaabf81c08cd62874ceadc699ee8cfd83b5218ac7c335cdd8a8ac1702dc820e877bca51f51296095fe0d7b51c6f367ef8e572858a29902f693ef25bfaef9434c8041acdeaeea9f4c93006e50dc68764d5327d7e88508dcbe5ea3f1799505fb669adc0f0925c84ecefe02f2eb58c7d071a5c6cde4ac5ee035110a78e549f3af4792903de365b0895c07a9694cacff9ad499c69c77a707b9544b40f69d3ff3bec78c60aaf169c45163b1d3f99dbd83db473e806bc4f26bf780bf560c4352e85bc8e820903b20fa37a398027c4b46db74e8c13f2f2af2a5318cfdb93cf27c0ca34e2fe99110ca25378af9cff4d2db3cfa1422519069c53d86e1318aed8590790bc3711af603b7d0eae2e3b819fe58ed4c603ee14eb375702cbe4f4c38be7670525ad380e73adc5e4b08a5307fb24094758550970f4001726220e725320382287a5fc4c26bab63d9cdbe6064e89c8ea1a89f2b28dc614bc750d0d6cf46b319643ecee166c73b00c2c6b0c6571130daf28e61d8bf2aaf5b77ea9cacff0f0190e87925d96410735e1a58266311da33f6b30d7f963d13b2eba2b62edfdc00f0cc368dd546f5d99aa146e8332ff3f811560ead6c6099a3b335f1e989b1d73aa16d8af95ba8c4a93c8103599849e0445bb48acd44fc18422b1fde20458a405f981dcde75aa5effb8ef774681773e26c063744b29658a862c828909f6fd19549e5cc702208cab453189c098f35d6ebadeec62f747e60f110c7a2b2f55e337ad6075750d9aff09b1852fd5b71c25a4a690365e7b6f95ec0d7487f08a13035097ed4d3eced4f6af8c64b8f23fd26ebf644a5d85ffb7382305bdd0b55f74358c95f71dd2e7fd3c1c60329e50ccd16460eaa5e6911b26309f8e0e9bc8d8ba511f5fe2ab3822311bc58df3483987f21c484d008eefd5f91790d3c06bf777c824b64e57b4e21148b500eb10b83d51063a4cd6690329c38bbc5ad40c000bf56c9c8022381d82974766de18ff9fa411b59814de0233ad16f8e974a1b00507f4c7e70a7efc3a31c211a3e9f2c172f72921a326ef6d892a6b0c1cab07253f2988ad13f9b5274a987cad3f72bbd4162c8d4af958a05bd0540a71e13b03c11736c2ca83e291aab216c4e9a26ed329c6e69db5b3decfea8376424ff2f43d6c9d486ccf7d84ffd40d9dc76f8ebec54d41e8921d26f14334cd8762faddf8a6b35885f997c7aca0150c5b0ce0e3864e54d39c2ee6233d555cc0619031083bb3a1075e849bcda740826c2b797d3ffc6db450f8a4f37ccd2f53c1b8143bcc58c933a9c1679cfb00a3714421e3303766e0e327f74e95a20972f3572d8718dbb7b8d90aa794f834b830a8aa3331d99bed213b28ed3dd6bf9aa4495e77553e36b8788beb86ce87de83bd3469498145fd8567f01d9b4172ebef330378bcfc9d7bc5b38509480f678e9b976e0d7f317b7080653b796ad112439b8928d9df4729167453495ae3c4e7dac88ef484f1e62b90617d0b1ad87b084ccfffaead28f2e30e3814dab51eb165f7275f2e92330c32a9851045dddf1e27146542c667774c0de6d550785448fdd05f73c96d4f1ff951e37ddf0523e1cb338f018e1f1d4dab1fd3ab37986edbf48cb761be1a12bd00bf1e944b14736994235a555f50518f6d40a8db0f07c147763e7bdc241756cdab4c3b1ea29aaf6862239502f014e6940a54559eed8ac599785f798287d460c3a2dcc5dc96216da68065c33f250c04247b7c82ab19398935a114b27061640a9bce9d25583d3f808a4c232ade459932090650d2671580e2b0ae60707012e55e69abd209e4f5fe90b6da92c072f2ae482d3856b59e190e066263856b472cf39aa39bd7973829b148180294cd600345740b9ea0e6cbd592d161ccffb0f2fcb9dd8a39cb513e2005e9ac20e6e1e65c0288207a7677a5dc3a65fb743191ce4d331d1fa22f3a3229446c1c45782a2d0dfa14e589dea2ebf5ef4243811dcecafd251df4fd36c8ac908e4694a8d9d9d6164da2593e9d75d7eb3716b80f946b233595d740de1f62ba5e140af39f6312f9d08602d5a50df86c7b964e40607e1469ee343b84bcd8dc259c8b5c7b999160ee8687c355573794b5bae26da27409023a9920cff9c1429d90e5127263b1412d7456542d82f29b017d849e23ae7339a0e984f88d397e45351e63710f5ffc4a9624b5a5a17f600403649437d38920e10617bfd84d7b58eea49021d3e4a7922ace18a2107ccd301f92781ff3f09645671ef334a844ab20609706aa98bb89a2eee7fa1fd96e11bf4f176fafa052c5789ab75bd93078aa807cbc0717fd919aa383a6233fd5b11e281f50e75826d84cd2ea8630cd97429ad1f814f69d73c65da34754715830fd9a70008049f0850d289104c00781a5e49c7288afeec10ecc8292cc4ab60b360f586383861ba75286004475986118919d035e22f0105a6679c28e91fd365ba7c861d0f471bd2a0daa5af2948a96371166c65e493d20909cde22577daae8af40979529c0077f93d017c46044a6c47af592054ba4a070a340ea2d7e39529ef47b3ccb3cfb77d143e47c3d77441d7032b138d37b44fd76fd86c469fcc9680edee011800cc8d0502ee0b24ecbf80f1c9c4e577cee6841e45a9563c3f13238b9a2464efbdb7dc5b4a99a40cd60a3f0b320b374b7b0ee772dc250feaa8a8a0eed22d282e726e73f59eb89b497000e8f0f6882566f17a7244cceb91ee72b972b89b80630edde270725c164ecc217370399c9b4e90477b670179b4aff083cde1392e97e3c2e77030843c64e378f45c881848f2f078a57337470e1e8e838dc8e781a3518f74015cec397973740c04b517c8a33de28eea56e6e13207ce449fc3e3cdd125f47a7278cb25e7382e65508e1b24ff89c7c5405077813cbaa1785cf818086a28c8a39fba259d04d7e13b5c0747022725093a76b4c4410070e8b9203110095e1f0001c03ef54b709e969704d711bd0407003622bf041c93f860a3c71e58399c63e5c0ed041523521c81c57e3dc7a5cfe15f621cb68ecc91c4e92312a73dc6b91c57ca1c754e0e6f9771d2392478bb0c94ced181e3ed439dd3f22ec1735c99a36fe759c2729ee117e9f5e870e905f590e03ee2e7709c125aee23ae00846d2f08eb473a001c0018a872b771da5bb7bb74d46d2ffde536981b2c658ea56e75966eb5e7c0f8e27865131cb79f6edcee62e376d46d2fdd6ab7b9fda55bedacdb60bad55e7365926eb5d3b47f571a75abbdc60a40d8fe1f33ae5347f597766aa8197747b7a6bbd4998131174b5e7d86588ad0cfed945def3511ce9b8318ae3ee82d492c576eb9d2493e4da46ef5d367d5a95bdd4e112a2ec52c52c684ce51224e1c1d26f6edf9d4faedd2933ed073fcec48bd385001b66e8cb03c12768e4f286dbe55ed28ae48c615c9c0c09b3c8f5efacbc07a776c6d7a3ddb9cd4b5a6d4abcf395ff37a8390fc8c438fa7e98c67799a5bd5a0e13c3d83a7099b775e762ec4209ff56383e86d38fc59a4c7c6837cc46fefa9c1b0ab52b15437583754d8bdac5ee106b643faee05ffb97b8db7dbdc262e99184d6924a4eaed24a8a3748b7eb764a53708421e37582aafb79d34fc1bac7692afdb8846dd8d03870d0e1b9beaeeb98faa6aaa289d7e13406f7b114a71908aaa3ef77adbf3fc3e9ca9fb14f7fcf98c4f697515cbe7959d3190abab7cc29f414394fa6da4ef4669289f936e3d0682208f76a2c27d447dfa75cc6f38566f9df3deb83c45a60bc9ef9938c886035daf6fa3e65e1c947d8ddbc046e4d7e0157c904dbede0ce10a2ab0375837b08ffe1bac2850447122caebc4222328d8a58e9790090a272fb174ce0d56777b3d3f036ba3c6adb751b700f258e1077bc3db73cc447ffdc685cfbaf12f86ac8eb2dcb2eeea08db2cbcfa51d9b83ff13fafd4275da1073b3db7910d97de4caecb9ed23a1f94d669499c2396cb3eea6e5cd8ad8a5447606bbcf22c61559e5b37bcbd1e1bef1b7e715ce7e968d4394936de3936d71d87fbb07e26507b3bb9b7a1749446ea294da59760c9d8044726ddda1181adc134571a4926d2876ed5b8d249fc1a173e8dfaab1bbf8fba258f666e6769271da55b48d253b7a974b79de896522f750b4b34ea9c1f473ab8b0183e426a2a7d84a36fc0a0934709bb020f36772f57d84d2b8acdae5aad95d045f427e81e70d1610021845e6c275a808831b664d292433f64d2e283d492c50a539624a62c484c598660ca7254eb11a124ddd266ee909cf1d5650959d1f0d50c6e287dc2f4194ef4e2e88532803a51298ac803a8138ba6b7b8b0b991849a8522c8c9d6102c7c49c443a623a07cfcdc4b465494a813485328a5d468ca4ffcd339a7ee47baa1ce995eb339be41c6144a79ca5e178ab0d533dfea15ea1f1bcff2a139c343dd8ade566f4c425d0095f390090a95d7dce3614ef190e949d4cf4642eaa4ce814c2e60f2734a5b6905c1724d29a5589098c790ba35a7b3c2b03976313143341c4be93a973f637ec838c5d0c8c236b2461067ba9529994a39843a2987304705a671a6ab36af9fb61ccc194520fdf4b4cda889d21194ce61e2c3f476d2399d1176dbb68d85224b05a2306f7e3ac4b227ac7f9e70b48452639932b35fd3b38a3594369ade4c1a8b91082f3f71fcfc6680b033bef21c95049064a3d284aa51a9913c42b1319ebab965f033b751ee2a3211d7771e439d74ce9319e7e8854e2c413992324b6b47b635f1396e694d0cc3ac6b3e3d26e91ceb3348e5d367ee127ff5e661ed66aef9108f3cd22dbcf990d4aef5ed5a4f592656068ba391eac61c50607d8847439d33917cd52650bd40d4378ede1c7304cadcfb4961d82d0d88fae69863d0fb417dcbbc1f47ba35bd0abce74373ba8260c1e909125223513aa7cf09bd743b2a746bba528e5ba444f97c1323a5bb9b524a858e3847e3c257df1b64e86e5c9a714bb7a63311f1f490c90559fec64326229ce09658b5a68034676fe91cc844c414a5567a92657ac52894ce61c1eeeee6b0d5b5e1821a407971b4abf3695c24349ce32ef752e22f2994c695d2b9f47eec77382e45a5b612846da5cee98af8e98dd439533a076b9da3d7f4b6025188bdd439d67b301763082a10811725965832c68bee20290835dc808831702802f50a29750e3f691c9524ce74cefbd11f148ff03c25e4d003271924bc079b1b69c80524ce74d69095b7aff0d0ea8a17121b4cbc56de7848e2211d5bbc90c422bcbcda9140a5d7caa137040689337d8885397cad9c3584864ba781872011720065e985a49f925411e6b5728987907055bc2009255e2b2c457219024ae9358484091642bc1a4ba1ced3f0b5c5a56e61b9314bb75840583ef6abdbaf3801dd9a588c1428811f92a040ca0e7e982205300ba72f80a0440e8810d52463455412d22d01106167286639200230697a2b4d6fa4e94d653a0c17903a52c84c0ea044bdda793a26ca45025a64bb4986cdbe82b2f5d16f9c42ef485d80b05b3241588feeadd622476a2d5bd37094b56aae4d5871f4ee96b0468c0a2e4ad9934679237677f7d9513adda1bb6996655e12578e507770a50b115cd1a2826ba756ee89ca64bba2c44cc64449bbf2448521d52b289059800e51576e905962050c7b8226568040b3801d8aacdca0465c000aa8d46a65081b0b38c192c4819504cd64a549ea6665bb6e65c3e36110988c6eb4886e67b51e1659a400c1d3942d9eb2481740e14249d28c576cb0c2671b2776c0031e34f9f68f0740d8c107be9dba01729853c9a9074f1cf1d3a7083ac7e76e872fe1a7520d7e5a037c60eae0073fabfc9c53081d98c03bce48d241920e8a32260e4208218410c6b8e39b6ca0c9e0a61e61f3b029080f054c4d464d450f5d3e646202d3596001c3c4e4230b2c64624af2300861988210f5ab19c5cdaea5eca69c0158aab2654a20ae9d232f7196e4b4c192391d9bd3897edac02ee6023740c23bb8874fe83aead69324d395d457e7113f59f2bd3a9c248912d7cbf394c794d7cd39e7c43bdd8a35e6023780d22d183316b4b0d873b21bcb18c835289e5620b5e0a3e753e327ae5984dd71cdd1208b510e4c59967c0bc1b5c39b0b5f4edb383e8e38bddd6c1785b23177ece84cd011c103c4b5e36a1d0144ed20e085087c4f2ea8f431ca443ae1e7558c3e4208a1770ecba73df30ce7cc1b7bb7a07f32a6eb96ab5b9e55f898e1279a572c75beef7ba2b96d1d0d27a92fcda363f7c992efa5e1244994f84b7325aed7e61c0d3c21fa7671c00144d7ae0d5880e898179dcbbc866f57b7f04e47e3843116d5d6be7013f2808da5942d21ccbaa5e3909462d58c90070665d32f5c8428e4f8113be4117bbaf4e914b328c50e5198d33b07d2e99e54c57e7112e99ee8737d8889742f593e1076bcacc9c149bbeb4f096b7fab3825ede6a4ab39e7ccb29a655996cde95d3b9e25363a9c3367c615a8f2c2cd39e79c734e6caa3c7ed9632f1bca9f323794534ad94de8f4e6ce24f4dc12768431a77ae665ac2aa7be7d42d94f84c54d089693b4c33aadc256f55a3987aedd7964e3696c6249a4683ebd6a35ebc9321a5cf020b16c734ac9a660608020049b174bb6228007c80590c801952ea8d8618b1c08614a152f5e8a6ca0a482a72e9e1836783ea6948d7f9fd4c930cf94598ad0a2a5ca16549898e235ab1041840d55d4508224a80e8b1d6c58360400e1f98e306141c6113f78b2218c69c30cb22a9acdf7f5705517604e60720701ae1d275a6b67663eb33967959ffe9de0e7164d3ad82d79d32d22f4304120bf6c612480874c5f74f96e8ba459a8a34f88b178a77b9438dbfc1f31b1cd53b1727e8d05063753948039b0c20a307ef06289151dc426889a50ea728322a060075244f1820e33d0651501b0dba2088a040fbd1f73fa0e3fe74ce2a655bf70fa9c874c4420c217576be16a0dc090e08b11c05451e275c5437f614712e04b192fa0d284840f5cf0820e894428d20b242caa4b94178804a5940b1f9e0ea169da16529e62494820073192786209172bac20c2e18916514000c4142170d259d185d256639c5e7c9138b052ca050e3acc8b160284c2410cc3300c6b2260972fd917495f28a99a524ae910a21a07be36842f8d033f57db554a29c592d8364aa1781a55249344180cc3309fb5c3300cc390b098430cd70908818ac481af55cc2b168d780cdb62ca63d80bc328ae49d8e9b381f0636869e20323baa882081713a521ae847185c909a7a5d44326a8a22309b51add67bbd51217027880643bc060a20c214ca00228b6bcb2218489b2210b208608019457d6f499674a9f65be0367223b35dcb456b6fb1c088fea2113972f9658c0d15aa37b6abf55767bdc9d6e71d1f2d9fc2cc33d7632cfae4cc331cb322e583ecb3ecb5a3775c7d5ad6c703c64e202032e503edf5012504b7d36ea455c4f7190eaa9771de6b55bd2068bfdc0dc271e51f1d38bb87e6223f3299e5428f68093c15a8e03165601828337dfeaa1bfb0236185afc446af30fec04118e30931ec10d9b96127861b223738cc186e32598dd00792de75cbab37e6d3b310e5eaed3e89cd1cd2fab37562d12b8891f811576c843e8681a6533cad510b512f2a2a12a2328b8c31b694524697b21bb37ea24fbbcc12bf8de0f81988e2133b55be8f8c93274eb023c3d8bcfa55e710b979e9fdf9d850f9e289c8cdfc88593f7162a1f812c33805c74519a3c7d35e02885a09d7494f54b0b8c143efc77fc0ae6c54e0f912e6334ce211c3f643262dc8b01f1671fa9558203ab128bafdfcc643262d9abec643262d943eb7966416479a5d356cf2ad294114b626f308da24ca17999fb7a36fda643b6a018bcdd608f29046904727f960398282839c0a85ceb99100a2cf626399978016889e7ad552b3c685222c5d0227940d1863b79473528a61dd83c0169939b5a65cdd6a8fda1757bbf017b52fb1d3a84014a453f159938126038dcae719a458691112e411dd358384e325b6810263a3e719a4192439b3844605a28023afa2cb19a49f32833443a57f621f2f6ca64bb6251fdd46d2c31cd5480b2a9f6d1656b270e2a5841807a257140de0a09e79f45a208a9e450c047ee319da25ce6b86e86d5f61ec0bbe5c20c2c29714a0e9334cac011c1f3dba4c6a1ea4054290c4115858b043142878512f6af0c594a2295428617a12a3044a3801040db06c1103061c59316249083a40f1657ee0c96989cba1b87e8494529c89dc7c9195258c52d0030d7c10e2e945b9d8c10c8620c5173f80f24117842f7ab0de590cd3f00a4bc1932b2be8628224ca10820a4c5c61c2e5072142c0c38b1e3d7dcaf29432650182a7d477b4ce7c510c7fdd9afe3558b89a2b9752cc1a734f50c14b0e411b0c410655bc90d01e9abc6a9f101d0fa150832842f04232b588e09555d9c283112f2418961fbc320cfb04a2174b48c535c3ac21996b9ed50dd7cc355cbb65272627a65c2cc5b64fc8365faf953890477b765942b22a8774ba4ce1c40b8934c22b73a257ab4f90d129e562a5c45db7a214516fdbbd502e9c11d9e2a0d491afd978c6f6c141a9439dc223dfeef5bc8084e4b3249e489aa87b060ea81db37ca26323f28160b7e0248ad1c5c55cf86a39c412352c81f29297f3820046547c79c90e838ca21712cfc9508f0005462f2404e8a1cb95d774798760142f243007af89a5b0a2137dec2432307a21698de08a2458272f7ccd3b1471f801d20b49ab872770904544717284a3179775f30e451ba0707a21e92e5eb04fc85d8661346a90d36202207c79c9cb5d79f58d2fc595a404bc2dd81dc1c40485a9c9af3afe802bf2295bb68e972ea7ec96b2a1b440659689e885ae458710934ea5e454f1a117a9d0f0878395414a4d6a52939bcb4dcaade5f6a5ae77bb0b214e3b49dfb66dcb363af685d691a173296527a74bb9b9ecf11007725cdc9ae3388ee36ed67c66da94f489263ff18783cd9f0cb2d6091d80f954210b961bea3195ea7a4024ce74cca7d1dc21a6d0e481c81dade3e9406c55e89cccb1dce327a669f46a5a0bf029eebe3babb5765de73fe077b8eb6ea68eddcd39ec12fd96b99665144723adb31a5c30b65c10e24487734ed885cd37b2079bd2a74fe91836a3ab882823a7f25a800f354df36d8b31566d36a972f31ff037277aed667f0d06cddbb3e935c3738768426fe94fce8083518a854c5b927e6611f3985348c6ecce0bc4397cacf9bcd97eed30ef70b69047873d871dce93db6e16927f81826498327e7abc318677174de0a22c4326491d1b3da33b467d7fde1e99b40e8f0fd1890e0cad35981c73f0bce3114dd774bce1dd4e3370ae347c85b39db18a3138b73e5a9c5d1f5538eff4512a29a993328cb3b724ce2e88f38e2c728f2e8fa48e571b1c9d8573adc1d93a0d8e49d8bf8b23fea047a723e83570aed069e06ca1cfc0f9c3d99d1efa0cce2de83238bb62a2d347e816e70a5d053d8571dc1bd72bca61073a87b30b4c4bc3d99f2c066d40af65924d77471cbcc95acce23cdd54a4ce928c41c11983f2f2687e995e66949c92e2ea247158c86231d924272211810aac5e6c175dad633395e85b6d6a8512129adf038e615b7256089f9e481df88a4918360ea48252da113de6d3690b50f60f9c76593e9a57d738d9d1399dab988b50a7b3d1bd38e7948ef9f4a730c7bc6ededd54bdf9e620d0ab679ee23c73ef56225fbd18772b91ef2906820e33910b3c24f27d239944b5a50e1a0aaa038e1b366c5835345f0d1a3356333231369b4295f23a6ed36a86d129ad845076bc513e77da1548508ebe44413951814b50894af56cf3b35e08979492e6956cf50e715cad2338ea7095614b8af09c48245177a4c2c187d18a9711de178e01c74215f6e3ba4ecabeab39e36c23d8346a8ae5531f8cefa56e41e75101175190d08a082575a08cf7733c4a3a2a21c9a9042b7ec62a9fe3e7125eba8e2fbac584105d8f1e047011a0478f2d35b10516324901c689854c5274a9de9efd1663cc481eeb2cd4d5359c79bd7402d184e899d3084413a84f209a401d3b0243865d18ba85d12c9b9366b79b6e84a8838d3e145f5166207ae8529c987ab084b4440ed3104832481f63af5c36ba8fce27e66c6c563dc35b7da30a2b7fac6c6e30af2773cc0bead1e80ade38844930a96feec328503a2a4527621213a31c96242912c0ace1d3ebf96a649752ca1a9cbbf3748cef4e53c3b2b181c3a1d74363092a53607c88c28db7f34014524a582e4e2bf5e50a4c4899a3155c60b3cc918cbd944ac5251270b81230be9de57297c38d05f712bef0db4bb8f128fae0c4626fa7d689539c6b2bdd6a8f33c2e770b40273ac0e8fbf0495294639f492245d04a68fda876e22731445ca28236e28b19d74817a72da22e57d3200e7a0c7009874030b4e4503c0ed94899a40a8cee9090788c20c24a8705439542ae7f0c53b27b0371e97b0632701e78a1d07678b3dc70c6fe772b80c142e079703cb38e9567358e6886ba70174611b8ac3fd2473d44b6c74e959a676d5eb894c34af271ae51093740bd330c23a45f553fcd2606a0b47a59814332fba00aef6d0fb0180730e0087f116e9d9e1413d25b80e1c1c127048c0d1a183841c3cdc042fc173f88ef23a19f159e28cb94b01d4b3d88a739eeedc941e1098272ed23f3dbbfe09e75a165f9d7acdd1e9e7f914480c10f89867cc5943b417e7f11b8b173724e332211425a00fbd21d80856f0e2861c204913d9bc22ca1013a8a8a2c92d5d9c60888ea317e8806b2f37d01245f7d01b6263042d60b202efa137a4854802c60e9a08f3e27c080da6236e80523df486442c5ec0c5103c8409f3e286dc1026cc8bc34352a8bc318fdd9c79919fc9c29c3acb077deaac176e882f2e68019b735e6406a2af3e803495a754dbf5525cea89e73c3205f464f336ce557773efa69c5ecfb11bd41314c3c4201f404f540e9f88917fb2614b53d7f36d7ba99cc3455b5d8075ce397a7fa6917f3204a78ab697871d90c245dbcbfa868bb6d7e63cfd3380cf4f3c2742e4c33fe13ccf5e95cb2156e51b2e824fafd43f59c2c28b025974803ce053208b113461569fcc25c7717788731c885e313448490999f2dab6173ae905c95c3a073d071480072b2f0e2349801649f060458b2478b8f2e25c123df47e003de11c3e110ffc9322fae2687ce6a90b83c4f13c3cc42371da53988370c9b6c397e7d9aa62b014ea7e80cf46669e08dcc110517ce640d2331f922244e5d62d1e9241e5e4f0e5193de619466d1936ddb0e4312023324f64425579d9412f744e3d7569989df47a5eb80107a29712299813bd3897decf0a8fa58c6e4c92389ba7f0505cda9c92b825a778d4eec5a3211c885e52a8bb10c54a1c04c37c56e1818ccc3c111c30a8e2882129423c5779d1507bb83da0a8cf5df4ede124fde21cbe360c250e90c442f3330cf483e8a51b593d91060481c34b874d52a05a6296f40d58f9bc011efcbd212ae9d78659d2394f52e92de2d32f9d8b41aa303c1e005fdb93253d5e9b73f7862ccc6bc335807eb45ae23212a2ef8f1e7146227dde1f13a8a812e6a3d36f8a63804f4e84e888a897380608451e8a50187dc44f32470244043ee50e4c2022100aa3a187d0840c9ba6507aa1f818c53248fc64083a12d51214268a5e192e32810a1b14bda037f4be7129664d3678792e7a3fa013f30736d78a7b8b481636d9f0f4996feeb540d4c443b8236f5e7df3cca1f7b379966158c67976a56f17a250446842afe1a10fb72aca3029394969c639f47c783dd5fb693a31f9d9e7abdf4ce482af9e654e14d9f070026558c524f47eb00833df2e461d7a2e549f2dbff0d5e50a7c30a226bee2d516ab0fdc0998bff9f60cd8fc7db7acc3a66fffb27c4fe884155c108c2a2a7a2199c75c4ea12e467dbb10f6547e17a12e843dd6f4330847100b1fbb858921e4d153702ec4b8029f418a1e48b1437fc9e6ae6baa21878f79d854d4e461c745530d3e542d54a67451830f455871e285795d4551c61261a6f8f9b0a988c9e71b2b38e9386ee410618cb4cacdd213ae12bda04f9f0ca081ba90cda7c3d71086e1218a87aa0f49cf5c08e714f3e942ac63be256deee118b5e1a1593317e2f9744a7d7321324e9d439ae19c6b383a0d4911b272ccade6d663704cc24358c543191e1ada7c4ee7bca398b834244588f594cbe0a122cc657c068e487888fa0c1e92c143293ce42d79be79c5300c4911529df30c0f659ef2181c8fac4f57e1a1d486873cfcc2901421d53b3cc4e1a10d576ca50cd28ba44b46a3a824a3cfe584148bacc49199c317750c464d872f8aabad19c5f03571ec7a030765add67eb565653bc91e25df0fd1c43ff2afe491f1c6ffee0d2cbc68b0e9e1be7c51505267c9921b5e8359356abe754ecbae8c0c32dfc62876e886f892d21ec3f59d695c44080e67b91012fc73c8721b24e0b081873cfbe8f9cabd19cf67b8e733583e9ecfb8e7339d23ae51e36619cf310ac953b76fa54c5c44c8e7365c080effa4141152e39fe3c0504e9f98860f0f7d5e83218699f7c52e50100b61c294f12c9f956fbef2cd217c05c5cd67f8e633b2ca53beba41b1f3f67a583e9bcff8e63332de7aebb40483d28787a408f99c25f150348a45d148e248c79ea1138ccab1e8a583fb2ecbe315f2390b0fb97f4e7387885e341e3dd60258fef910167608c4a39aebf045c3236988482e10911493248efbe7ac1f247104f4893e7a3ed4356f0f02ee31442fe805a11f71f65cc3d179da62a0eaed296c447e6e3d108d4b1247facd8d59248ef41c373a491ce9f846288923ddfd1ef99cfb8122c64232aa49932631ca864b964b1a97de4ba44e8d4b6f238f83f03554e34a6e44d61d62b9921bee4e7387685cc90dc7f1c9a7bee4739abbe473c750e244afb94b3e2c65e220167e3a0edc1303714d65c9c80d2cbc586ec3a1c4f93ee7a6223f731a87434b5898061b87afcf6b7ccb81e6215398a3e762d74b5247c90d67b9c30f86810a63c5a50e0d350e1d560b7178eba1b51247bab3bcc6b375f1481ce9369ce5d9450494381f7e41e24849e33420a1711cb888c63fffdc46864b507a0b802f1a169ef31bf706165e363670e322fdd46bb0121ba7c150e274aec4c63f0c3b2c249f6223d873f8890de6c0e74da5a97c151bc13e133d75b954e529f589819ed4f8740e267df47c3ce100d0130ed03865e14fe2143d372f4cfa9acb0128712207689c8bde0b34b8d2602b71923e9afbe1af8b5e16cd681a1670d4a97fc4d9cb808ed7bed9e2dba1b797019b5d786789efa6a2a22fc2491950564894d1c42291bb205c6580804907d50549eb22837aa4086140f950c50f5a44f12c00c30a2d609060872866145d4ea0ea12442a93647411a6eb22826aede7643c2df154aae5f86e6c3eff6c6eb22fb696301acca04f56d391f83e32987c96dd20c1f3912102ad6d1c89ef23a3860d0140b22fc3b20c4c18d9d7c3e536bde3fbbc851f3281f90118a5cfaeed862ccbba20828783ae0b663b2e5d48b175b1c5b61e328139fa190f99c08800b32205603eb091e1e47bb0f221d311c62001cb119888e24b0c629ab25453c602970f3c610515635471722307208cc00655905660844e0b216a1745745df0b07561a44da185dd41a6769046e87690dc43a62324f1b9d541713da0d683656d56f61322cbb20cebc286d40e92c74e61846e07a985dd41da0ccbbc7ee941aa295b7d59867996715125cbb22ccb3cd3d9b0cd2acebc66b1c9675c4cf98c8b1accd58e96ec2078ee43a623e8f0341e328d01660a4799887c9d7f3637383e16d471c51c9fcdcde74e56d8faef3046182fa51c038c97324322fb6c6e3e1f830831ca185db06ec83446978f6e95b6308d11251bea236d25e99f091b3fba103f220589ae8d91c3ef78c82486d38fe1c36bce89b1f435a48cd3a0c99d7f3ee33340d637b77786a76ef44d8ca3df7c652446d1e71a069830bc3cd317a62f495d1519164f072608c24918553024c258822211848e874c61a4208c25d1e39d217e6c611896ae876bc7764ecdc9a474cd79a4ac42f42b8e4553580cd3a1ca51150cc3640c6373e7c2fc85ce69ccf598d7c57ceebac77e60b3eb0407f4d08225353cf65d790c0707786ce9730f9a654eb55afb7d2dc8ad60219311be7cedaa0ffad11b421e15674ccbb218ebe65a8fc66d50aff9acd83d2da730ae42cd75176698735cf6ec6e5eafe61ce4668764c399ba86b350d70ba439a65da0e8f2b9ecfa801aeeb99986df26068ade9f5da0e8996f783ef5e8d38f7d0d6c563dec62f6c4e560f156cc2b36125fa3b17af48ce4db6bc545e20bc52854e4c747c410639a85583f13c94f875fe153cf2ec4886493fa4d587cf9dcada2013e366101f5d16dd2cd4edf0461bfb87a216c76a91077241450dcc0882c514818a18297c4428a102630c11320b802062fd965f152ca2482f88c70c34b9f92a908623015418c241e69e7e69184ba8b8a8a8a849a8a1e3b2aa4c06a4d04008ac71e321541c904d9ea7b2068f0b9c7abc0ce874c4588c1f7f85a3b8a00022f613eb75a90a11519b16762ed107cb0b6e90456b5c483ed9cf8c176549a7871f23ae8f0f9e651e0a5088c2f527e0078c8044694a70f99c078f2f9fb81fb6269a7b978819c73cea981b143b55bd1799ae39cc3375a6cbec1992d8ec3f973c851e738cea5d7c3ade40a728525feea15daa7dfd4ae590b90aef221ed29e9aa768fe31cd37c237a6ebe86f498f3c80cc3934b907d896dda0731c2d8f434257bd8f44404843c343d85e057f0036f050fbe54b7550c870c50f93efb6c32559665ab6e655ad8fc656e034356810bc414e2672e83d091ac28c66e82a3413dd0b19a200a5ceaf2469ca39cce23b1db844f0d854dfd4578ca536287ce23f310cb07f43f92c4861a8a1ec21674cad19ee82e449f1808bac441439fe53b0f1c8c4058d8840594874d574c79023c6cbac286b79d13699c3da1f75fec9cd16516c2350bfb821007c414e25387a173e27b7b3f6cbaa2c8080e36b765de1c379dab71a5d3b8d2e93367fd4ccf683c5bfacca51549cff9fc66aa4fdfdcbaf48268ce611df57a3e9f7786cbeb492f881684f3893391bcbd72edae5ce6027199637d0e9f86d718af97f5790d8735345e73593f9cd338e73498f561d64f0d8ff11a1ee3313e885ee5f3ae589aa6d1b82a9f7173e79aaf6ee65cf3990b24e3f0358738a75ca32e7381348fc19a63d455371301f9b0b1226ace4ae7747967b83c92de1922109e296716c4c2c72016be7d64f80d86e9f56c1c9c7886e8f5c8db3e2b9ed45d1fb03794466b31a03ebfbd720eb9f61b8842caa1eb8028a83a4f73a1084bddbaa4b4dbad0dc7a56e867dd7a2afba10f2d0bcc6f3b6cdfb899aa7e1f97476a92b3dacbb5deac62b6a97baf0bb8a85cdad87a91bc843ba8df1dc8bb9b57168c77977de1d9e1c754d9bb3ceef3adf6b0c0a0ede402a5e6800d471c9862da1968ffe4c36c32507bc206f16549e9c78e8fde80f82cd308907c88761bd874d4e4b385179a71744a40929a4314275bca29d90e215dd110a4e2edc859152ef1f82a51e83a0f41886327a3ed9670e31929f307a3ba410c2a614c2dbeef4c23038788371dd566ba5385bdbe1fc7db5f535c78561188661ee8a8f4d20d83cdb6f3ae7289d3fed9dff68ef708fafce711973aaf98609f56b94c6e86151548bb4098e8b5e4f96c9aa75f5f6d95e7bb056b7609449373e639c33429abae988b438c5a0576659f5199551244f3311fc960e3d8a3594ed4d6b37eda694b6d7d3d34470269189ec68104208a150fc1860d4770e6f8e3efcce6722a39731ec7c87339097188873a0cc6bde7958779e736bbbeb82f7a5c4baab733ad7765409254c7d5ee3cc7159886edacd3bba9e5e70e1b2c365f6731192b148ca2a9e8bd0149a54d8d8cc3babb7dfe0acbbbbbb6e556c73e3592643b69890ac9305f38d6e6ee66fd931245b5b58562c62c5d83d765738bb6ae2fc9e70cb6764451327283f571d8e31c61823feb8b0d6fac8aecf447afcf42855de32381f791997f2ce28991819195554cc9c5e4413a4cf2ed184f8315ea773dc11d58cea5654b92a287b95ca636eab2795d3d91d4f56eedd15c636b55a0de7efab38bb6738b75a38bb5c7347c6c9133abcc4ac1fa2f76e45205eac175a0f2a9f2a95e7d5ab6c5ea5c2da4da5a67ccfa7f703bd94d7719b56b3a63f38662a761973a67cfe94d5eb5651e5b1baf41ad785226cf41ace39e52216a7630e7950af7161b7b2bf6aa686cc6ae29919ff3e21f935bc7a3fb0c65703d76e75abfbc95c1f2a4f79d3ebe93a01449fc242f43dc7bc1f1c61c284a1f3b93b7fbbdfa599fa9c5d23522b1c24f27d7f5f21c59c9d93c22dac382209298e583282302f0d07139aa45c09834a124c68f1aa184a1c8ae14e6278a3d27c21d87cf37487cdbc298e387a3f3484091346e969d76ed918769e6220570e1c919b9731dc3c10e61dee66ab5b1a9e51aff91090d710f05a864f3fbd06c5c9e14ce4e63ba7d463b8792078f35ac5f9e635cf6955e638fbbf93cd3bbeab6fde4476de53c1bbf5ce6e69de5d873c34575ddb389aa7eed7389a6b4eaff58a4ddc75d794045dbad8898ee5489e6ed16e861a1f187eeec86616ec655ddf3c81a6cb8979ba45a9f320a05b407c5210852a6d3a47f3e8a379756ee64abfe91ce9c92c7de732ea3567fd486f62727acd67960e64bdce9ba5cff0f682689eb30ef37a645c5e95a7bc7acc93479641b4209d7333ba9bce813e883ec67a7659323ee3f0b995cfb8b9b27e3a5f79e72bcc9271d6cf8c5b9f71ebd6b9d8d9745e3dfa9325100e8086f3f4cc8d7199eb83e863308d5bafea02a5b06f772788d661153a8842fcd854f4d3a5cf19a2e6b540d484f743f37aa4cfe833e7cb87d5b3db998fea5b500cf3957329c3a6b910f69b17d95c080b02c357dfb41d1aced231af07483a101e397d4e2cbd67f1883efa9144a2556b31a85937f91aa1302ec6b96ef34e15b7387de2bce11c535e90e89ef7c37a167d83bf45a8ae89d793613bb739e79c99d7ca23b7d5f482a4ae88295420cf379914cefd9bcbe0dcef417de62b5c3d9f339bd3f3cde78cd8f30cb3523e7d328f41329fd1375cf30cc7dcdecefb513d72757abc62c66a6695c65d6dde8fcc812ace709e5dd74d3c8a7deac2f76286b3eca16ddbbc7cc6b2944fa79882c72e5bca4ec752be6d3847a8c7dcdb369c3d2cd4398585fab3e8d637e76217a7f8d879737cebd97cefc6e8291b9da2099967de0feb33b77399abf2be345cde1a9e5dcc79a4bdf02352cce6c59818bd982b84847a9b5f3190167f34cf623cde1c8359d5ad6399639ec52e146185e647cf42f3538e7947e3428963718e531ef32c853dc722f670bc229a8079e711295e11a9d7d345a84da3d8574dea486ed3b42c5e617b268916a3f7874d5544297ad7c326205cf92a7c80faeea3473ffab905e94f78d8a4e5cb376951fad6c3262d47dfa425cb739ff2a8a4a73319e719e6797ec65c4a2925ce1cce31e505e13e7ade8f954b0c625874cc3baf078b78a6fcbb318eadbe1a2c1b6fcf47b511e78f528939c771423453d33094373c723418489b5ec4146868d8f0c6b99f731b38f76b3638b7b6b070762cf9b35203679b5df2c399480f9a9be373d2656320cd3997ce45c76ee0c699c6334f7934aad6c686ab66b88f74cca56758632c4f65beeabc1fd131ce0bd2bdf498ddc0b9a5721b38bb0dce5f0d6e8c792ab6d760a1fe96319bf7233a50e318d7a2943e437a56d6d488794caad2238d624f93390063639873b2878ec428f4603ea75c68663ebbc414a44f2f9f5338483e1036bd201ccefd2b9733ea732af39447c779467dca35df7163b3ca9d4e8cce39911e150bf5731808f39547cf8d85fabb2c5b96b0285971827a56c1d5c38579ca61e7d4f059f94ac342fd98a7e66b41e8634eb34af9ece2fd5839e7a92b9d477e37c6335f1919d90bede7aea7d836e33146e2509f69b5dc3f099f733dcdc41406da5cf318b5993c7f06b32a0cd45b2d979452d752d6555ee342113673190d7a3f520e64b1e7d30bd27d6a364ef41d546e906ca0c4239c5538bb1ea3299c67207acdbde9454c017e16f5776e14fbca81dfbc882960d9b56393a28c1263447abce699488f4ca447bf86b576ceb70ed76ecd969dca1ef8cdb5bbb9f47ce86ff8ab0ff7199e5e4413301c6be28d2e38e9b1b1e8d87156d7fcb3d81c5d166919df088ec7640bdacb16e405a25e9dc33acf489ed5827ccce563ee7a0853805b90bee23cbb3c9db6c052cf9847ff2c364b9c03a43fa8542d75a5492b99523410000020001314000028140c874422a1503020d485d97614800a98b04472501588490ec420848c31841844000000002200233304520ae7bbcdbf70c1ba136f1a69b0317bf543edbc2229872adf421aa64321dbcd548d99c65a5e178fba0747d184cae20f03df5051d240be34ba9c4a3ea08bc7a9713ec98105b2f4f2808c4dab76339b0624e189e3022f4dc87860c8a1cf8329b6f661b67445b68e5e6e01a47be3adabba8f707292a688b179bc3fe488c3a6f44f15ea1add5dcbbe803fb3a68b86471476fbf0591dfb85826043e138151f7ed4265bfa764cbb1bdb8f4e14a96e30b50e108c48237e6ab7f01972e53bd18a126c60be293b02b9bbb56149dc074d68de02dfa106c26988739b87848364c90e48ca67a38e8273c9c571acc8d7f5f2a680d6d81ae792df5f04af0f2a596a2862a3ccefb5b0583cec90173d551dabcaad6aa5c26e7c1c76e27886c07de3217b4ab9935d1feb3720ecf3bda3ec5667a421dc1731cd5f3f92e3ed83192304a88a37ad7ad9fe068ad84d2bae740607051852d1ce946d30666971f5aa9cb3daa2a9e86133b9b0ec7ac60109d14dce7537f581716ff80b92c598d081de5656d769ce92947e58624906b4b5750884487e11ceee7b053e5cfa83073417cb278a4bac0bc70ab84f666dc9f22cc9cddbe5953500f09b58e2d2ecd2174c8dc4d66f8b47274be7b69cd845be48ffc142bf55cf88ee8827522d2547addf0d462c517012a883cd4a0ea584b182b35a4af337c20084cf1ed013677682e1f02b67126cebeac581217916177fc9792975360da11001733dc0628b1ae3f86e1a8da3c5eabd0f44ada3215f4ab78f559750a82b2ede20d7b99592dbf3c4df0751968aa76d70940c22b65c4a48b621b1d51a9623350f5680632774482a0c934a9fcce3ed5d570dd94d8790904587e8d71fce2b54166e121fdb636862a29ce270cf3a0dd76b3d27269254b8980350983a8b1a62d4d4889cde2ac2fb91e301030066a23676a3c378200eff503763dc3ef442db1c31e729ab2ad0eb332970abbed842e0ece049063f5aec3158b57e66255f05b0c92763d08d8d9dec3efeb4f404b35edf8f473f44707d6ad0a1d7c2c63310035707f4405ce55c8376f461677b7267c3758d0a851ae3fa8695906f2d76c22f9dab000e13073eecd610521c71e26addfb10d1d930b9f072a9639c60736ec1b7e56a8c182b987ad5a9898810ab274c05dc00968f6e9c34f6e84af20438b31273b82a72673323ebcef414466df80c485a38fc3277ca08bca166e06452c1d778a3b7273257079f2df1e5f034c8744a20a48be21928588ce48346d2c50d2e8fc3dd114759c5b591a0f04af53354d496e281ac03c035c5c80cd60050e2313eb4276c2663873cb3ac3039c9b2912bfca319582a026a0c7fbf62018301ac913ceab51a2dc2bafb030a0d5bae2e4cc8b6064e81c1c40a0d1799e10a5a5bd6e3027a41bd078493711608c447faf41588b1bdbaa48e83b6b27f7c05c1663f3a69960960bf15bc65cd80c5d7832f13c9f683820f053e449927cff4b34ba6825aef942ef00e2826fe30b1c6a8edfd2cb524eb0896bd74fab22387fef2dc260497565a3a03711d881d1ade0c63e0305aa9c3d8cff6092153553b614c699ada48695624d46b07b937a5d47327ddb7eec78663858a8fdb15fd71a91f8a0a47aa36834ac353dd5e22299295feb795294e3cf23a10c4d05f4cd710b7359f48eb7a0133ae1343a0f9f71c580ee3429d3702874dc4656755852e623eca76c67c39303447f977573b90b656782d50b78bf2444720e3407c30724b18574c17acc010580a1f30896ca832833bce7ac5e793bf35e6fe3c4d6066c524e1f11f621e031cf49bc8702b38569cf5244a5492e70ab46f667b2acb9c312e42491a388f0774bbfe32b54edfc5fde3a18de443b92e182893384e4cb990a6299c0660ebb98ba632caddbabaa905de043dcbf038a4e7e59ffd963941c02578b94d9b5ee5c8a64f3a031b94f19806c939d99ccdee863491f3583a1f8e6fa0b2eed547cf560d15d67d435551e76c438260a89738ac0bd3ae96cf498c4b98b4bd2a0a7d257fb632778e14aa7d6c1ea3f38adad0c8a4f89955e6571de3ca6383b715e77aa43be5c482b3a3606cf10a05ba1b2861e43f6f4857ce2d15b422338dc0a2203d3847e1c0ba5b60faf8389deefe5ed1bdabb475b06a5f95b73e35323d93b770054f6d83afa1751c904fbf89e75bb8505bf82d61155cde657973bd4bb0cf5b64f5e2ced3a97178a00a062d9a846c96600b17ae5d89ff85ae65dfbcb30071073344fbf000fbfbedd535cf9e6e1ef4dd4f1cb985e6dfe74240f516de5554d37a611da23a2150017a64c1a7de5edf01532c1b8a65cba8f30a4cbe7d36dbc8778541ec4ec0df25609c3d83d46b8cae412c1e163ba04ae1522d5742cfad1c62214f6138768f161cc5f31d92449eb0466370a9a5319e75f700ce493a2fdd316f860a1c6f6caf9c0ca73d356e6bc0a382dc263c868bda2b8d3b75bebf56971461cc685592a1d4772b156374a724c5809743f53dc964f5ba9b887d0ed1226a46f9a702970d30e22233ec72b1c82b82c5385e51604344cd87a4ad5082dee53569aaf93e1d3c0cad65c92967c15c17a783c2872955d1f532fa1ad7921072d0b06c8a7960aea5acdb182751d0f96807d0c0a8df66a86757e4eb591771396ebb646194e583572b48079345cf5ca76044fccd2dc7441a888fe8b4f2524f9fb1a7fe7b884749e36474f1a65988ef6cafd40708be632d7444de0de5c564850e0e24048177d683c9f1cffb4ebeab75fc6267b06125d6f5adab214742288690aa5b4e0adfe1a386914f1112e77836afcd577222248fd58273f34d263260c6271af9484a6610122b85e64ef42f5167aac4ef1420e736eb0945fe7b18600ce616d83bfca379a3aa1b7d492a49e9429261e22ad483fbb612a8818027db57c29a5ef41fbe141383a6e7e5cc6ceade156140004bfa6dfe17c23ca1be365b56768b4f16dc0d1a24ea914f6f459c5e7ce6bc4f674d9a91a4be206aa45bc3520b5c1480caa9b139251054642e6478badefb6cd0eb3c46bf5daca81a9432a640d89f401c5296a69e803af65a5c001e7c48b9b92171ed264388b5f2ac4c4773c3ea101560d926d3c1325da8f900c84a5ad53388450e3e176be13d85586fe137328b0e4071f086f6094175d02a0f634f2a2564267b4f426b44ecc2bfd85af9870cfedb5c6beb83027e825ee99fee13639c8e13133498419afc6132dd218e8c39779be1ff84853fd4d6740bc2bda70ae380fc24c922103e13cbef2cef1acf972827e0c99535d3793ec23d038f6932bfd1c78a0d67c7dc8c7196d3b1893c7ce705eeb30b460b5b9475595ac470172c0b7089fc027278c49127ce5fd454ea3b794151fc5934e640ec056cce911630fa86761cab75122d825b75e8a7d9621eceb299c74b78dda697744d5f8fc38fb767feb07796ae241b56c36e518632099e2e64421de374cc0d401400d43247af84950365c80671752b2abd405c7b634d668435d7d2d8a0e64f07f4eb36f6910a3f8cec4ecb2f10d010e3694c6119e06fdcea921f7e86e3242d1de058cc6f91ebb43f7ba0ec24e0481199ea4dd91da95f5d4f19e2171bc0fe9c57e498402358c8708474baac40be1a16d268499147534750ba4d226bfb124ebf71c2602d62c4ea05cc6420a57e631125b22099625b1d97cbc634db556d012bb8396039a91b50e92459abd137ddcffb1beb6836dc215c7619429af2312eecddd04d90adec90095bcf9717a59267d3a0d55e1c1e91341cf71c9af725563af6b24be3782c4760481313e4462c4d39f1c85b155f66490ad19a7523145e95fddf83601cb2682d3e58d00389506a7479347fbbe372d42f46f9aa20a88c31fe5d09b4aa65485050f246097947c0297915f287939540142b1ae83e8e04f69bafb5a50c212d886ee33b74e365789148edb4e5b4a66e672f26ed57c28f92c9f010155e53990c487a9196eef50d303a2a389eca08c21794831426a012d211840992a1cc910c1f9ab28417b0d3d45c76844d6b16d80d5e2fbd59e8611eb6d682d55ba9d1eb2e6b4f340b1e9c766156401c112d7b140fa71545969915cf531079c309d99a8fb31848b6bb41385a4b6ea29c950283c87c93e8d7f50b6abc17870fe3dac1aeb7055bf8b96420d628e8a89c200731e9bf294f0bd38215cfb86e57a62df3cb623aba7a6ed79b20c2880008d7151cb0dc6012a800aab8107bee2c0c17c5c229c7973e5888b1fdfbebde820a88a67f13c17936bece53068ef7d4a3733ae2d41a4726cf37bad1e686ef4f6a29c8ac18d04441647ef8574260aa52d885000d2a4dadf4d2d07fce409c41d73166b8877814a63d1759328d32b7d0b4ad238776741b2ea3795ea1974f2f9b124d1f2e4d4f3b24040669786b80c0b2615a75c4fa769419f6eb6dc343040ed7a3943c29dbda5d0988e65f13f825385fe5911ddfe9cb24a4bd33195ab42d1cd755f6a66de19e691fdf6826e34cae920e972382c40c9fc13644db2827bcb50ac9e6722874a9218af4e1345c5c0892758610dd152443713a19a5311d8f54281ccd95c38b8cd652d1b78b345139f02372d5dc2e782bc2e659b3286ba8a562a0b4f46359e12a61908e97caf57ae6cc2b21e336dd5d975be0eb0e6db089300f81630dfe347c2df1f8ccabe4e0ffc8b30471ca5599e91a2f1a4397b67433476bc2d049d7ec184e245c693cb7b4c96325790a78f4c7386e059fd7b477bb10033a1a902b47bead38d8ef717e1443d8822f5fc45728561c733a80c642528d3a8bd3f833f8cb4e4d6c26356c777356d382d311b9e7b8b0c22d7e1e998c5a01c84366d98722a919c0008df7e75b3f900ba8f1598bc1ac36b5b5be292f1376d34ebacce3a3f6da206b2079577b09801c1e64e3c7885e01f084bae983900b617c09865866e9992350899a58830966a016bfa7d670318501e1a7758e8ce6cdfb7a29a771fda806948c234c02edda5daac0fbc4383cde50f12705346ba3676fd9bddb1138703514c3f06134d1d29b2d4cbc3d4e9fe299498dbf146ec5d8780dcab3744ba9360f82e47bfe0bd171446466dc7ecb91b2592d1bbc260aa50a18beb92f27e880831514d8e8bc49c526e9d39ff62159db0c3d7e40fff3f90419a47567f5f0cb89e983721e7a6daaf5313d1c7fac4e4cfef3244a5b63afb4078c3d6912b6eb4edb65c1f1aee7b18fcfa69acb0ee9a9d89908da54034ef32606c2b8117ce431e2799f6a309c4b410653435231a8e5008b8a4eb579bbd4ca2815e64cc7fa5d84682d0300d388e7adcc951db1f80f2d90fd30660963c66e36bd687df92094d73f61d1c0bbdaf251425feaa55215ed708d8801d87ad339feaad4245f68bfe0423c84e3bba4dd6e439638374b19e074e7c0177e0c4748e6de79e7d4a8d592138f7020fd198345f6111338f4cd7dce0bb735a15df3cbe96a72550e8b1c9885335a0a497e9983b3ff51520a6dced58cb7be077177f3c3923f32c2f35eeba85c81cf86b26174aa4235941337bb3fa1e83649186525ff7099abc2a249295d1a75f915d2020882694a43722502630928786c7fc6251e79269ee56a910f9e98f1c43b5d2ea03850097305654fca0b9b507401cf2dea9c3e1c649c02a0c116bf9d85aac85cdd0174621db2626212e118d7c76590d61cf35e78c84f1148f1f09a8a0fc4841ccec9b78bfd3dc765c862ba38ecc31bc98899142aa42e66914c65e4e07f0e699198e32054e28c3cf1258095621e696f69d67ddd66f8a3e36341fe41f33b684465a0c72770852e8ced0f2fb6c19895f70ed581d0f57204c1c211e601208a24794053a715922d1989c6f1d272c35e88041274ec1261a9add9ea07b04e50cea6b29a1ac7350bb9b6ed0979945c9417b809da05b7627089f122e4d0ec771d2a428cdadcd23ec028103a4e41abe0b1f134a40e346b6bd219336620273ea5379c316bc687003f3c9b693b067199e25dcbf64d4a2af56ad28ed02abda8269d4f9434abbc9e6cfee9be0494f69689512fdf299d08a499828aad2b91cbdbc6a66efab93c678e8c32c449cd768282878d298ca794be7b679d052149fcf8a742837174899926229f51ea24bc3b2dd504b089e38d417edc2ec0e11dfbc9e3fbe978f869760485f44a6f2e34a5ff73d7be0b0cd6719c5892f3b372b923620faaee8d717b0854928b9cdfa0587752ee0d8aa58516bd87795ad021b13f297479d8eb884de2ef9b6aa96766f4ed0a7e4821b207e4a2025a5be3a13a13df27285da73b1a765ff830f3cf04406dda926665b52f7a7ef7e53957b0ea8efc76245b5cfb852a8cd6c3a498550ed01684fd3ed8df405a55fd08f6fd6cb482a9341ca24cfea269a95d6580d8efa42d6a77439c9b212c46f94b6e0e2e9b14c46afb7805f058dbcbf0f0a99824a8369897b68f6f364e2f026ad689e13a87bf09d603bfccb275fc259f60a3543b7f07c916c4ae573c515618d0cb170ea50f0beb7b12f4219be9f8c151ccf6a3ea792c53bed62909d7bbc48cb14205aedbdc3e6ceca2acc626abe1b5fd71b8e18f150815ec46f28ff8ae23ba8005c71e4a6a7554e6614ce960bf9e6510fb2fbae69630e0c79e5158d8cfae97a9b17be859d566e465ad2d1f89edf3b2efcffe11750461c5bf67a970a15c77746d6460e1ac40b71ea190c5cdaea3dcfc3d14b9a355e76920ff50ca17ff9586ce3776cebb4764e2cce4cda843e575a48099ebefe1bc48812884eb00f1ec290a5bb6f8b2b7622f0e1f4238cd01e8e3f8ebc21713de222d9fc484f22fca157ab6162e55977ec0977e6e78b7dc29f6531c557f8151f7c73e7e3d9054fe6265fe1d43a3f2e798d00fc8bfb42f0a3cd8bd94bcdebed5ca0ce949f588a9e088796c94f7da9c772caf692ea35839ddb6e949d1a5a23705107af9b619b2d1b5efcd8a21eb0815c96200aab6cc983f14bb9626092db4064fb5b4d981dd55d03912a58b4989d7e3633c3d6c3b23b102b2818675ae4efd340944dee3766e6d65d043ff8bfea1d7c2c6386a8bc5beb4b66f13b23ecacc534e70e31b8755b1c8f72d0279d99b44b0a7864441379e963a2079964010bb4e6389675e13b6b70aaaab0ac4b0d9d06eda3d9136ab1699248a5402253aa22166dee6285b521650aec4482f2c70db739ab90db16292931ed2bc800903d5c5c3389f72d6a7a69573588c26bc884fa79bb100244304cfda80014f5187dfb3c63918f547327fcc00c2ad043fb141e7b3b18122e3e2d604017eb847eacdcf6956f50c0b19adb33b870313f4839f5a99c7eaf1964b54711be7928e3a5b321c165bef60543e604f180844c7ca642bd128acd887505548af83a1b9fcda3daa4aac28760c93b470e28d5535b189aaab0654da3c2a58d40fa61276f473b31c14fa336b851d02361ecc6dc3de06bdcb35f4ab24b979a1663c15da856b7cd081c143af90de5cefe888d8cf2fea9ae54761319e893136d3988d934dbcb3f393d6f248e179170e783e8f05998a823cd17bc5585a16f741bd8fe4ed0729d8ca0b173d9049d6d49c9a04aa3cc82a12d84a544e222647efc3acaa67e4aac7c3eed89cd3019ff946e5ef28f42650801d1d5b53c3c5dfb35e32fab8530f9e62dc39cd5015f1c3b7c0fb7e43b998c0129498f3e5a60cd48cda3403ece802cf8c3ba843b52d1791cc75a8cf703959d1b0c2fdb69b335523039a928380fec1d41ba91ce39eab00c93f5fbd00e4d6620a8591eda78803117626aa55e7dfd11eac15eae3c502731e43ed6a7ee367aa046927ce171ef9c0135ea98a8ad5acd1029754d3fc0940493cf5519f8210a1e068f1775b8d3ea3e38745f900a8048b3204bc0551f2ccaae8421d847aa409c43ab32e30591c639208032fc2ba4537df98c46cf1fe674fe5efe8fe0b773aa53706ae952717f87eb02067bff20bb09af929ba22085024ab19bf451b3bd49301b44946967d00e1d7d9da4a30a60c9a1292f3b6c5501921e5e44105cae6be153cff129e1e480e81ce511f5bee8c9394ddec0c29c72fe395d37c3ec00f2826831ea1028b9bfe53b7294d39eed1a48a3c3eca5b565c210b147e01a851fc219820bd36cd0103a6c9344dacc0443869ca4f33511b2c9fd00ebe455e6d91125faa8ad691244f5bd725b0f8782aaaae86260cb91969749a11c18f64371c1d899e814ff52c43fda966fb7e13cc9832c2dd58af63d7ef682b84fcd5ddf3229fc12da668fd7ca27e8459048c20b3da0c96d97864510bbe67739ff06ef09d604d618a17ad22cbdac5cf495f5b28f1ccdfc8438ec0ca8ee22bd8a13c66604df6b693d52c6f513edb4da4c6a50609ebb0e4b3e0ab248c66bcb99bab0806ac58522b5b507b4b36a401dbb700827695ac6bdd3a1a01998d7d29aa95560698cacdc13a0f0c5c03d07365cc5db3db0039478e774b71e7cd9c034088f11df2e96cc504588052a6002f687f4fe1c2e1a346680a893ed33ae5d0e9dbf449adf94f9018c5f4aec000dd65eb3efda480ce8435a7131b918dc511fdd555bd3b00e995bfd73a6ff57dcda5fa0939ccbe55235ea88116014da701a052b75a2ddad691580437ef1df9ad155597cb59d82d300384093233196ba5603207042a22799d456dc5d43c298f7ada92f90037cb2c4d5ef50b5c13197971818ea395935352d3b07a75c712b3e82764d8677684e8e5e92a1aaa6b2a37135c84dee29788cef88f03c545a1185ea2d95c6377bc6d11d87383778b6564943b9386a872e2a594333d30698a004cae6e134d72dcb921020a63f55d1c07b81f9e6f88c03304a23935f96f3f8aca663e56edfe0e8a3e70e00b6dac25373a07fb81997ef2904e7a1bc3045c10360523450a262a2cbd5b01af5962bc3c99653b62cd959e031d3f88a9a2f306155b4c05c535f4828e3e65ce798454e10d90a40275fa9937442b0ad8188710462eaa641f5bb84819d0f3600479ac34b5d91c8922042b5c1f3fb60e933f93a4cd58808702d2aabc18893f0593be363c1e267937f12f5debdc2ad2b93a50f3d3ba8ff58ffaad3bd6f5330c667213fbbf1415695b02839f95bee41593be067d5d23cab5e6f70ac24974a6c86013e68fc3ee328835ff6fceb84bc81bd134ad52d427879976e3d2c4423453838d8663394f5ca6f3be23910f402ba84c088da28c065339cf4118f0e81d1547ede7f96820d9f4291d6145c4d777e12309b68c5ca8ce70849de6a3569cb061c30ec615daa4703d3dbdeb86cf3642b0cf48260a4c23e718908e8d05d28e42247661442d03311608e36654c957409b051a455f30252f09f7e7bcd17897433b8ec04d380609164f937914debfd4dc48718213efadda75d306d2a67a38955231a4f86c219e8a77b57e50dcaac047f665f544993957090e1a8ac50782ffeb16bc1ea39d45d3c5943938bc0b46110ba0de8a0c658a68463d9f81bb8458bba999c26d5148891b5e8f5c4e537108cca3a763b7aa9bac11a657763767ad7839cc6cc0a4c115b26a1ee4d7b60ecbe357409c47d203a6a060415a254333a532222a35c0a522269a553455b14755641026f753787a958b6a0c30397a00e4cb604dc809d90c3ea839ef77d2bdb1dfe85b6f2514d2834fd57c9d5b70f8d08864f79059b7f1e8ec52fbdb98dd9f60b8da44020f855668135db285520435f44980c09a3b8f06148cd33ccd9d73eb87d7c598072e520ce76d09520128a7d2838a661938fbb802a70507cd8c9194a25a7028b2b64bcae67c9fd30e3000bbd717977901fe5e76a1366bea67bddd571cd0679a4701704a0b2e0dc193cc9669aaccaecc5bff27570bf86ca4614b80fc50d3515ec9bd0785dd29452d4c241a792a3551478b23fddd56232e1045263b122328360d3ea0a1dd773b2efd633d12df03ed56b5468d72a93ab000804d4b9c8395ebe60949782b5a540828dbba0220bb11f8eafaef8f41920ead2955eacd36f3ec3f212d14a0ff85fe49fec98920402074c7144cfe63b30e0468c381c0423f1fa0ebde30ef877298925203afb0e14f43b0610470c47505f2983db2d0efb4644bf190eac366e87175a50f394cb19e2286eaa603b34b5df2085aa945e8e28460eb3822c62529b2ae5aad838a695810e19dafa2f6f7725f601564b4a07cf62c17360cb1a187b5df7fff054f586ba3c69f04fd6f9d972f865c3babd22cf8054e8a058c7795bfb338060440ae9d1be2293af59f35e9cccf3850edf9d8fa2346fab7fc76dc86a94ea86d1a2e71e231f9979a441e86bca410c237b0f0ce55ee3d8a2d79a4f68c195942ad9cf63b39c071e6be0039afacd1bc2d2a66003772d0cbadcb19353f5ef22a7a50a0af8c04aea0f3dda827cba859a2cd49257ced07de6a0c116ac8005e945e0852681f962157b71a992c8f23eca90508a4af482c8613e2b66d83aa193f982189350132ccb6f9bec3e6fee428a0e961edcbaef99b89fa702ddaf505e67e485467cd5615ac0727e6c4dc1be830d5b580e0e98484d2b4ee0d7fbac217955c9c656ede1f1eec4388396151ce5996f46718c6e92d4158f2545a07e13f156f7550f2e81f07278f4b71034f19672af04b0ee127e14c7b34f219c81e415ad9d2d83bcf885701011fbfc2ad2ca19bec7624e1adc6054f04858191eb8d521dcbaf6a04fb969fd25e9d94096ea39a740c8ad6b202a263b65eafd17b6bd5ab3ff572abec37003250d1094014f85e697bfe57d7ea6b6e8d12c465387055b358feb7687049fd1497ce02b08d3460209e6acf66a36adc02e2a4f0ea669e0881bda482ba7100cc34056b900a8f604634d0b6ab7e55a86d160e9d8e1ee96b04506590a9a22213f42c1e04b0c39e5188dff27035d42348c41c7b5103867819175bc5bd9971a6cb44ed556e20c70465895ae026e2a44f2f7120bef9d62e7fc804c2d07675e7192414f440e8814b57b02f20ae866465d72f4c6f0a39e76f0196c5b50c627badf65723f1e8a1985859b871d628f8b350c9d07a84b2f38169e449ec314451c6db8e272ec96613911dc647ab57d50e08a03d4e6a0c13057cd356c3f3577be45ec1b63a2372358ce1f988897ef8ec76a772fc00978895e4df822f4fc6175b8f831981d6adf9cb74bbda82e23ac5c115b472d46e11e2ad127bb75e54c6600bc879ee3ad0d178a4e8501ecd495454bfa517d0c2512d35fc8d6030ac2bbd728ea5987bacd3225585d4d72743d753536405d34f9765ca330fee45d9c3dd748f4e0406d7c06c5449646186edfe7d137280d092c64f30a506b025c91452f616ba9fa4978e023067c6b2c1f3113c02e410173713cbabea2f5427d27a6c18804b1ad39a78b39786a7792935d88e3b58b0f5b0db0d66a0e0d34c8dd69dee9d954c646611f58ae2c4742be16f1973ac95094d0932e5e63b41e637088b78345edf0e29da60d0f9058d865e7254404fd831d0dfd4ac81e7612271438c448c42b221afcdfdcfc17827239321b6b331629e60b2073de17f3dd210f582fd8b662c3d0529a1b940efb44096e3ce2c3f966ee67b09ba284c51568676205adf03fd546478ee8272a7a7a7d6931a25a77da75633b491f95d3f4cd9d80cb49b66cee2c336215c824aed8585943c009bdc73c4b236c43c6a9e1fc5487813cb7b47599b7ac22e830007ac5df5a35ea535bc765b96b1e3f08885fb4e2a99bcd91b7cec7cfe25a11ec3a9aef139b746187b5b80febb038d810b32c8dfcdd17e9f14d8b3ada3f426302dc68933eb3b79f75c696339a93683bdd39a06d333e0910f6e2e92b7592b7a67d5b7dfe5e7d9ba06025112cae3f791f8db0cf2908178189bf150d9a15c93c0a8a0d86898c092f47e3555b238410ab7977bfdbb105434d32af602cf992118a3749ce6a7c1ab5d0b7bc32138c65f948cfc3ffe21437b3e0d33dddff357ea108e615ec7f7ab6e5a5f9c7353b90f244f6410e99185f05be9a9cd8e8ddf8a87d042f2694ee1a42b8943d201820a58bf546ad7888c49ac1f2201793499a6fe536cba671b0d46dd39864518d2e28c138448cb20eb1e76f7ecdbcc5815d3f67aa474954f6957ca5c8e24188890e809f14aaa3e38f593fbf320f14245f5876f529b33953d0489535a6dea9b56d8371b1a0f552581188e1101dbdcfb24c7ba5cc598a1846f74e2636ec553cc0b3393d3e11a63f55ab8b92d82178acae66da05eecb9d7510e61b30d1501d030035cd7227a6739f6c31bb3155cdce85a593442627b8aee4b574feca762d238e4bf66a30c876ea70db006d2431bfd32865d8aa9c005851160b44261c300460970a0471fe460a57d18bdda2a5bb65e2b4e230938e44008c5c4633a5d835267081fa20d29c38a7316b5200ca168aeb9301027a6d793c49e6e19231f519c5c2672a55b8ca0a4725a82ef9e391a17ab86444a3c5de9671d5c003ed4c8ba298714424ee2d35e9f6eb5078c188788c4f2e93a07017d7da1666b22c09508716e9ad1033c708c464bead00d5a18db8ce2b6820d00d2534e04eba1320b2ba5c659c0cd629cb00c03564559df129d5ac1e9e523a625b44072a0cae1a81205f42feda84356aef39866f9c58d1811f82123096c49c5802c4608b107f7e4b30453851029c869ea5b4e476756727a3667a1870eea498c7afd20c6e32883d53f2c2e356c0b35ef1a3dd401684080aad501e668bded809a36e8df32c5a3d343322d491ba04ddc2b20d87569120b64189b09dba01f043d91c211b8198951d878f208502637d86fcc805a4082c771538aed005d6d1a85121301baa70166049eaa38a5525da3d3dc2c36742d73cadb3ca155d949ec4117268c52778c3668b6a13854d5ae851229102befd0a63160870e6441f66e601d341ccb101a14deb18d35423508dea02b9379fa74824da6026b6534524022c114e090b702ffd411e3cb2398ee794863d1ad349a653789be52230fa5c1a77259cce5490f377a840444e43a0d3017826ac64f02e319de5d8ab2d22fb085c3ef750d86ee564665c08dadd7fe865bc6dfae111f620649489bf0107df40d88899b2722d471776feaeaaa38f7efd0e6440e45301932843751329c8a9ddef40e881ec5a0b7142e506a595bd0ecb93c2b4f258382ff0620707583ee93852638500e2e78ecc1fd4d91a6f14db133085cee9cb150c38a4b55dd6fdf53fd25cc1beb118120d683b1ad813f88cc8a623841c77dc7b8cee0db4901c0813c02dab26e1b2de7138fad2bdd285a0ec0ec7a6fe5658b78a3171036f0e3787205e468866bc4abf491b84cac056a70c25c5ae2165ea664aaf8098b5d7c039b898ebcaa2489ceaf9877aae9a7fafc0c827cd1cbeadb610c354bed73cd562a78fe21018fc7f41cd3e682ddb52243620228d2830b9f78699269b50087b609abe44f216ad0414cd16fb99c8852faa0a4f56334a9040db69289822f5dabfc4c0e83643bad16c32d428e1c0cb422a80f990b2412aaac9c281cd8f57efaaaa39c9f44e77587453b341a202e0b78ac8c728e39934e33e2e6dd2863f3bf893aab1cf5e38bb20f372ffbe439c09ec191d41868d8f21ca6207c84a5d87cc4cbc757d71817ed08b7d6a72f76e7102bbae6b0644a9087bda547bb1532903a92366c1deff60eb5f0c95d31562f91ffa88dc46bde1e6e487797d8c56909ff3f6fa4a882ee62531361ed0c3b48e048f9ee4186d02bd62544c11d73dd499813a03df19bf0a928e0e80d47e03999562065e40a38f58e45d22c79c821644e30fae96637a9b5e12107bfd7da9f0632c29bb73858b0da3678bc9b0e53255a6434fa2a77bbda9febe9ac8401878ab340f929560f0752fc5c66b162706081ed1bb126e190b9f9627137eb6041bb75479c0bc4e84f85f0bf6fe25fa869b31818d1e19481968a9bb04f44cd54aa0dd47336194d268bde9c3dacac330d7647e157f612f79c56d9adfb2e553cb9ded269790873e78afa05bb92e4750bcfd7687c9165587d962476207e88f78e85297ab66c15d492847bebb2fcd4b9216c959b087c5635e468e76e13d41929cb3afcbc6eb2833369f2d5aab6bc597e10e5a56516896e82efa7762a84519b91233cec423b95165b86c42163c11f17d68feeae8f2e74e8c7c4254f0daf01e5b215d57657c935859b0e3208e5be4cb95681dcb955c3cb2bab562b40540c538df4888f89d70c6e88de23b26c59d8c179b174d881594825fd88106faa88712140065a9532a0d9c726c67013d640bb98ef71fde9a4d9f2506bd444b8eeba6723024d0c2ac8db189d6645d615758096f8442608e8b248841eb2309510903a75de6fda9516215a21ee564a787e96639b7a761be679fc30835a91aa0adb3345d91f530aa20caa4b924ab7bcdfb675c6c0ad52d1f7a36dc6461ad97c99a4862b9bdece9a003c24830fdd9d39976ae5ed0cb7ea30db8e9ae310a28b6c1c876e886a703059e33cc94ef50727fda7f4cb40bf8e6551f19a188553e82ec7700108666e5c01ec6197f4d7dbd21bf84ffbfb2e5cbf4853e193f7498761fec3d8fe98e4316202a4896d7f4c524d18b565870ec05f56cefe19e23447f0ec113acd3b655cb97d5d62b25262abaa6a36c3dc5507aed360afae5dd4df14afc3e16ebd66a0bbdd1d04086e80f0347c2fa519696e21ecd5f4b69ac5dcc9d9ec4fd914472d78a73c09a96e7a568d41e05c58a0aeaeb1d7b354ab777983648562384be2c6f6f7c206df2536c067eb02411aee426b918e2cf8879e72ceead5ae66d7d3e056d6670cee47a94d01a44c45a5f7d56bf489eeb79bd81cd8ed56f7c552ee4126020e317f9f7fcea9c3763d2138e400726f9acf4905f576f50f47eef46806b82d38eef4228455d53b8b8e79ec0568305271045d1817a023a6ad23ec0227e52892d8194587ad55a2cee060ec20849784384a835355e628df9d909641739db8dee8e255f77c110733d88ab008f7bb622b857da6fe5a71abc1d774b2a10007641a2eaff3759172d020022b8513f81ab7597e875f24b41e945803bbd253544b9723011688f61d23b5f495c4b9626b8cf10c03454033b35b9a4903eac52266f44501a25c800ec6684a31f3b1bf1b56c2a7d69b33642f320d8bfde508e40c58a5f912f1bd9a0e2191bd6beb68bd728bc1401a7b9b03e1432fd4fb8dace9469fa411f0407c3a6560c0bb1530b83b32dec5ba455b7c5c16a2385bd8bbc47439c55ada7cec19860905dc9202e8c79a9da95452546c4a0219710c613728bc00db51e38e51718ee695b00432b53a2df0855c0c2ed96084a61f1b557df53781dbc1cc8f6379ad00d93921108330a030b447ce35bd8d38eb992cd07d390231870db828f4c0f032cf08f43ae2c07560a894feb8037b14399441a20fde75c400096b40c10f064ee30aca94106a6dc23719b8110c4d0c5979c2a8b0e8a22093cc46133615c5232184526873368ca7308fb3b618a1687face35ff11d8598c214a6f92321693c470295bf2731729ec84b702be1924a4877efa1d47d7ba524c6610930a76d01e9dae2e4ba6c099d685d77ed5f5d1f38e4d379d232199329a296698b06a05bee17204ddef712bdd6c1ef5234319217718e222617ba379392a1273649038bec24e867608bdc15671c4b73932065b8361b57eb4e8a8a8ff0d1ce53723aa4bb52b63f2cff01430cf57b9a03ef72f1bab34bf35ef27a3f5d73d2197ca8b2e979ccbab2def8450eda866232fa221dedb9b646cc0acfb52ad82b59a776f361ccc208f56722c81650b761378e90fe4ffe98c9e69bf4d393e83162980ff90f5aa981d26616696777a894da9d7eb3bb951745bd6d0aa6fee030a1cbb1e1d2bc1c7fb587706079476e352ff1b97f5a95c6cd9292a9ed66b8ef33c609e25c231b93396b458d95f2324498d3649883456488552aa8f087bea6c72c304485f23114d223916bb36eaf27c9d903d5b512cbfa3ddb256b7f1284bbaf068a1303b13c40abc23e53123f4dd309988915e17ec7d84c3a59bd98e2ca4e2ddd881f292b331327a1576612e46904407aa562dbef0f3c0db2f256c8df483bf4f26de4d9950f4630bb3c09f6b93aa525d4c35b470d694c6230f0b47e53b0248189dc3b953c4045225f4af7ec122c90272c67441a14df3f8fabdf83c9422442b24488581dc2e0407622a04371733381abb637e9afacc5410bffe588f45fe9e5c57d98a54f8041d23b8369c26c78fbd6b7c19a7e84a45dc4c8a19ff0dbeb5eebc0dc7702a6c5ee61825658dd5057eacc803c181140d3495fdcd52fd2a0a4100850eddb17b7982f88b4cc112728017428e46e14eb21524dab4dad3ea6dffb4d19343f1017db904217819cf6c91d9a480cd962c77f9bb3a061d2b83946f2660ff30398ffb9b106c81791545e4782dcade35800cb387cfad2195f967d227df7ee1ff9d29eb12cbbd46d4e74de5361e6cedd06fc740677dfce70f38cfcc6d94418e938f29b5baf0975ef1ee0301c40aaea1ce7b9f05a7e767b4190a3c17be702bee8120bcc9d6330d14d13231f0f0e64e9a75d9ae7405f05a3661e898147ec1a3aa000e8fd75f7d72bbf1122eb700a6fbe1ef0dea8fbd234dc6bf465fb299d64d1e0476d37a85b1d81c9c2e3c26c17d83d8f7475a58cc65b85c92900273c098bbe8061b815208e500a3e31ff33d0f2f836a014c10a585d4d0e7a5b20ebb4f284dcc51efc99b08148dfc9adf0edfef610a15096f7d2a2f8777f0dc459409c1b7df5109379d8e8adaef4061ca91f478a6ff6b250f4b17d9839230ee20ae1c91232a627fbf99457ef21b04b777322714da952533482882373206ed881ef72f60730a5b21f6e20fc7f638f64021c1fa04a224945a3cb7adfb3ed86dbdb8ea3189177b5108f57457b927e70cce63264ab900bf072b2e7a8822be774fbb3fbac8a9c2da451091686d6d26b68e12b680597a954aeb57c1402f32b67929688d4caa2649e2cb9eb48e98d9497e00616ac2fce0f656bcd58fc47d7d7135db405cadb35ef7fed7ecad3b109a131ae8270deccb8508f60df00882c36a7e7d0c4f97747c0e37042517fd20ba24b1b3a59e3ba478148d44d3660ea2605ed144c4516a1dd2a1b4f248392e93aede665e26171b73598a59a97b222ae5499bd3f1765a6b7a5ab894ef4dff96a72a713a38e53519eb0a78f5cf4ab0293dd4c8a0bedb9f2238b96dd4bc4b309e8575915081ab7396802db86122766c84daaf89d67aad8dc18262112669b1a9f9388b03db2a419beaec10b9ed1c201e560884ba6a9a47e7aa29799fa382ff7df437f0bc34299bb0f11cbe1edc7deac32f19b95867235a997243068e80ee42848507bcfdb20641f7a0413285db805a0e093f46a671e9210154175f2123760193b594940c6b4c169c47636df4ff14a044dff2d4d93f5349533aae31000ca2cd257b196f7ebbf67db3911ae62360260c9b65f043393a1392158b466175b81f51a2352af4cf2164cc3720e688a5a79b096095b666ca3289c88aacffeb3056f3ed35502cf5903e198ef9b1a9316e72d55b0b14c2d26a0ed352004f891ea71b5eac4eff4ba41fe084498cea5c16c2fb2c83aee4ab2612a3896b147662791ca5e5f0f9faf91837b1449b15a0881a30b3ad1c705443b20387d6c147b8ecdcaaa9a75bd196c616ac017e6b3d2b38905eca0eb554765b98fb286e83a4c5c715ba2cabc5f55c30147a81a3e066d8823445410a9bee18d7eb4c12b4b596cff0cd6d4b8537e694c59e0a871aaa39ba93b90f88edb92960eba8acb50e17d1e29b4afd870b8b794cb9c1a8467a92c2f0e325b6e27cdde9067d31a41ac4ea58086700fdc07d540f60eeeb65005990088f53274e739bf96a37b36f70dfbe9fa224d232682b22e63436307c2d556e2eb474335216a839abe510b98b3aa6641dbfd98a3b720404be99560fbdb1adc135f4c3493a7176761d51813874d88082756590b7e3a54840ace49516dfff204ba4ece8faf783cdc0428e99e01b72de08a6715452eae34de752dc7b2d7dca63dbf2486325900b010b20060216441c00164011bcc63ee2dc118f61e035f4dcefb3e0ee2e6477eb09972d3c9df773547da6fb27519bf068d1e4445a9b39aa0785ce2361499111e4da4934d82f510291038d0b172b7c16676ccf259a6dcbf39bbc54efc226a641e5f9252d540dd6cb0c09f72b27f02d753e3f4a7dec53b80088721840388e110623804110e4200386695a34ab2e83c1691a55cc3edd5c223a64d1377eb9f276126eb6746bd6769fad5c658d97e15f5f75f61a98dd1f4b2393913a6c0156a219f6ee7d87387987a88a474437571fcf680aec534645920d4f9483f5bb9daac8c6f75b1024ed2d51eb653a2c4b5a442163cd1a3b5bcf3fb89e4fd6ade50de7085396ac81b72052444ff7e6ae70875e638dc16d95299e7696cd0b4e235c4225aa3d4ac914c2c66724b344438d5bcbac213344090a9e3f3d861d7a8253dd69f6da911b9470262f5746141e94f1cbb53531cd66fe9d1893d2399488650a9fb5c5dec9b2386063a08defe09f6f40142b9fd562dab0da058bb024ac8ea4d8dd31e6a5cfd7056a55e4c83be5568235c8f02c9cd9cb7a109f8e66eaf2feaa50787fd66e833f372183709f9ae588a191fb923350f754fe83c3ba43c66c65e554be3191ab2ed63da4f24879d3f7792d11f369219a8b23553ba6e1aac166f9b60cf7376e02677db80006bddba8208f7cbf5fa9b5544ad337a6438eb08c01fa19278dd0cbd1db6599a0da086a611355a01596d98fa351bf453e61dd7403a05f9ee9048764429b92ac72c829de596d08455f366ac22c140871709d22a0f67252b057816eca34aad92e14a04fde1f677dd261d0f748bc6209aec2853062100be14e5766b88a1c3e1fe04e5de328440d61da27d4d198a50586f3ad5d7786a4a15a33e9f58f92dd1989b5156b97b2144e3ba17381d65378008495a6b1fc8781e9011dad7d5eb737fe56920ce789b1389cd5b26565eff8dc00f6f2d1a3a5cf6222e430ed52c131556b9fc23cbe58dea1f7bfbc73979366635ad76f85da825eb6d5eff9ce642cd18956c4ba1d36b31b28a363017c2bf73f2eaa07e9ae8c4cea436918c445b3ad5579acc7a4b89e210c42253ae39858aa8045a99b42cb6324999daaaedb4556d42c8de9235c01270cb4017ceb01fe8c01619d8955eb4960534397928b78fdacd6b6a21041b74582a039a7f31714f4c5f17e1f6ccb1e4ca6be32b01b8fb0f2b9177e5baf0b30c60c5fa18d999903cb4140f812291d2f5871d9e4c59c09136c0ca823b78d40ed3ab05582e7a811786813ced0c0ff0044d1b739a5d2618a596465cd293ec647ccb3b50e25e4d27e42db30662dd916160aebcf84c9a66a10ed6e9cbadcd182e0703aa477fc072f37eccf7624f8d9e0e9446dac2d8730f818e484eb9ca4e0d2400681038cd0a424345d8c5eb287de0f0ebef4cdbf4457823c4fa698bba3b2a9958ed8f8cd8d9e38fa0a28c1f83123e6c5b8aa146ce66753e7f5d017074a8405b2d32cc12f36e8269cb9488b570c7d7e3f0686a61144312ff77a93c5d686d92f807ced49a8a65c0a7818149fcbf237a803a50b6355c2ba641afeea42c6838686183d41bdb280d1a838d9a02507495e6662d551e78dab0749bb453c152cf5c75e9dfd47f3244718a6d864b6c3cbe89404c1cc12e01ecd6ba51d11910cb573862e5ab8b82f72e3149d03b6852c8db7b7965890a11dd121b00fea2aed5a444419ac4a47138832a3be0c0a7be127b8da794b60db4193b829aca2d29da94a37454e3a8cbde95a5542fef29ba3ce9cc44878c5d89c2ac67bb8b1d8a269ee90ea9c0c181b91bb50aab80383ec4e139857844a11ac88411e0d9b5abeaff54f8fbc637b15ab9414d52dbb02570a1c656da94b8b22f346c79be638cab1bea8fc93b25ddf7bdb5a62c433ea16bad7853278c76268687b837b04d896a5be6899d4a19aa94391473199f05110986c5f90ce556395ad0cd8962f44b7631d6fc3fbc3f113809f5f7ccbf3092f5285ed71b8f078a5ca8687c44bae3351f14cc96da7e4afb1f801d63f3b5db7570294cb6fbb053bc9ddb249b7fa4f3a7c6042e62b53304e87a921ed1a2a5d92226d6138aaec566153dab7230b1c20e442b805573830575f9ddb8796f185519de22b04dd7eac310a28ae0868e2a2ed5e252581bcbe045ce33100c8148fdb72369710f72f801d03d60ce2805e7c63822b173eab37e71cc4877db340836806a1ab2b4e4f1144f5385276d5191d762b8b0d26b48519ce11ee59eb148d94cbbefa7194744cda4a6930c4fbaa54674c71b7985d69f6cdef689d8df64003fab4f5687ba17bf4a8d113d9a1435c80987ee20e4f6aee577ec059cf66c34bab372a4ab5fab3a7bd1c6ac78cf6e601c870887db6ac459060ee540c2d830bcb9f0e24117a29e19d141610e4751a2bb6a14df1c14c0437331b5a9a0493016057679ea1c20751cb1dad820ed183a224bd2495800d13cfaebc0808c9ac48925cf4785d8a32efe8929343bb24956f6c1d0d54414229bd740c84a135110fbcdee596c19b8bff70f8a9596eb9d49d6c8c6ef4a7ca11dad47a944af7c75a02df3f71a1b38a255436862c3edb5aa2fc9277f747cac82ffbf162c6b442274510ba204183558ef2ffa6a25daf5611af03b558dd6fb752316f4b95b23c559438ac03e32d18ab7deccfa05cf55d1ccb842ff7784e7706c433be3a03f88291335b3aca63bcc141c41b60648e693102e892eaa716cdb7d573f9f227f65e3a0674f15d19a7ff4c5e9f2893b5638031a2c7328d2855be2c95caf2167d5e4c43df300861adbab331e2e94219d26760e2ee09fada1857cd898083515cb03ecb1891f69f1436eeb0a1f8936c0493c6b17edd9db06051c75ad3a8d3a10399acc0ae208e06b3fb916a3bb1e7d92e2cc35f2a1412afec0a1ad10023bb098f904821ecfa836679b55a5fbe82b94919b64862cffe08405dbc42640b59a5c68214c3428b8bb20ccdfd5e0a4a5be6e839d9b24f64871002ffcd5f51eff9879cfbf3153039dbd6e411e23fb7d1d8e6274757ef3bebbdbe4d25cefbd99c861f22e6b79b565fdc5c93b5154a5a5c3f8c2f394b3cd9bc0736a8564efabee292ac9d6e7a17618c855a9b2573519832cef86d56189c4b8b6d8a18d274e314213297efd152926d246cf2eb87657bb064ac8b417ab0e5be23bb8c3e792399d1a6c6c409ee377ed6159f78b4d1b763838e5d419c458e5d5bd07619fc81ff48de52187d9c5fc625570351192ce280b5d242807c209de61823dab4bce6b6dda0fb3ad9d967deb96cf4ebe5f58c493bea3559dc779a41e584a572e22ae0346c1ca106d82f26cce22464fbd63f358ffaa576560204606890d3bc852decfd61bc4b3f4f0a317ef90a2f736c6f58804ce5bc2d6d8086345f84e737515b910551469f3259f1d28544be38fb2228b0592a7cd5a44077fdd8e9c9a2f097c75e9da9d8655cb7b7b506e431cd61e1f403eac881ee2b0cce6200ebb46deb36899296ba43588c384d745c7c83da0cb56118709a86be7d81e712426c4610051264a890aab6deb239d5d263981388c53342d7d4f38499a5ac74cec5075210edb8914c0c9ba95d747f73607a34c88c3f287166fd1d08c6c109519b7715cce50fadecfc4f889382c6bfb82b782e793c3507b17d9a4f39b1f564a03fcc51de2b019f9ce650ac061c3dc50a45901a46494ca6ce681cd3c146259be8d4054c45d4ea45150b0515e23b788e13f56327d1bf097bd524dcc8fd1ddcda098ad8d4946055ad51ad24ff002ed5b8cfa2df3fe0973be3a35f4a7c4a4b3e86a507cfe3c39ebb5c5ff7722caa844e54bf1c630f4d2a0efe27af0b2ed434ebe8042f1d67cbdb714e68388a4aaae983e9ebd332df9899f2db7360c10dae1e441544bffb82e580a5ce419f238818830385db2fade8094c6e390aecfe27abdc908c55f3c130fcc33f6fb43fa488fa0f25eb0579ad81e7cf970671cc1012a7609e18060721f1fa362c825b4ff43cb7cde4787533f84aca4d9f514b52372830c220cfda83dd022e2bc049891ce29157980a1e7241c1b934df5eddda2decba1778c5bf0cc2e4a4dde928b2620b888dbc3cf6b8b0cd0ec6d5db17f6dc82f6105fe2d2fb88ac8ca4b16c5a7854ba09c2d20eb603272715f83c82a4a4a8519b4b5821ec86ef2bbe20fc98958bcabd6258a5a9231975af611ce6180aa157468755a813aa8d21b6fce529f48a1aaba388716da67107c6c8ec7cac24e238b8d7becd9a12a48a3fb7ac4547b28430821e06c82a1abe9df281f03e7cb9f052fc2e92401312fac4a506c5fdb54f6be60aa962855f1b24279d369fbdd36b7ae344f704829c45aa89c964a5bf0c333b3c1e22647b398575abfa256f362134d36856c55e6cd3dc06caf2993e27d9ed6bf8797cf08caf9b2ed8d5339ab253fcb4f4f80cc22d99b901b6bb412071156f6d496ea7524cc43429ab813ff19581db38b3e3712f3a5c73b313e7a959fdb7a535a41c5e96d97b4a22cbfbe6d37d3a0edeb5e02c5e73d05ce077b088c2ff609149fec1348ca76dc7b2bb0d26ef611383eec23103ed88f834a52bade8f126795ec9caf5bfae45f712e2e3e43680b01de56475d2f2543e4a8bbdee7d3e2f5aa2516538d8003c831b5a1b61bfcccf158354a4ef7b1955d654aba9a004b6293453e0eeecf0e1d2fe82a9b47d8bdb837c219887a7cf8d62b9fbc32755f97476ce9e18f0108575d2533f6c2fb2410fd5882986fd60a691d7ad50733483848f7da0061eb03cbbf72df027dd69bdde48fc00d7e3b3b7993ef48ef4d9f4a32951c25a4106871e9fe6be88eda681b582c05aa10a516d56e86fd18d0c6449200f4f22db4f2d1d6a46d1a7287ccf2f3de14dd3bd6be3c9d701369a0d8cf9b7565c71769988c43b6acda4acc68d00b68bab0d4202d89306e61e5ffb35c87350c32a71986987796b8dd708678532e3f4824dc59f92ca4b9f9483b049381e997ad081d37c6ed576463c526142a2ac6633ce7505aee2ce8b23983dbce54937a13a76cd73597692a55d06f3774a194ef857843dbe5418a07e330ef15f2ef0e87e2e506185228d66e9a6d4e06ed31ddb2c16abc3d568b4f83c45ed261934428bfa4561b24ed224b51ab5de39359c895a245f92014f121cd6fd01a451d8ca69e646dea60b9f5248fa3fba819bee8903f4d9eda8aedb28f1a88d24e09c45a710b4ef56926b8bf8029566af6e89a8f89b495c04c6b9438a4d2098d04b6d4a45cc1a7b9ebfe8c822a3a4eb2cc1631144b01710cd1806cd399faa03a9f43b4b6c913e27ed003a8047f5378af901eb357c084170533891fc1e12837dd4bf8055cfd428fa3269adfaa31f419fdadb81b59080c233f1fe302f5fd74a77e1627814ba6d113d0669248695982e5b74467a230f4d347e39eaaa16a3045c0239c18906a64b213ae7adab9c7a20f39509141bbe2c0cc4683fd4baa03b1c1a7e8684bcc1c4953491d21974455d8a50ce83824e8469b3cdb2dc79f1ecf6a940df5d7d8d805364e91ab5f822bec6cd92182f7072d66fea30fcc342ee7137ad0a40f7ed0cacb4f6d418e544f26a9a198b4fad7d2fb14b8bb209a7527d5621952fea97de401f6bce98f173a75e30e08f2bb1de1150dc398e8845bd3a62951050acf90620af8c3d5ab9a942b58d318fdbf910b5d08fabcba4534bd52cea06b80145bce3decc32ba8e6bdc5f44e558716f5f8c4be46b8ffa6e8a0090bc37bc3abf0143c109a6cf154f078ccf1e691db64cd1f56654d7dc7d944a080b4628e4632e2e59201e854148b878cd592df67dba97ba5ed0559fe35f5321683f94d6ba8ac59ceac082a3eadd781ecf0c78212af93b783ea4278896adf38a353e5f445b9a34d3d77fa7182fa3bddf8603933dc6c8d3411f76d6486712808810804235320cfc60481034d22d9133cee3c852e9702896cc098c26aed1d277fe0f42cac509775726c6deed40382c2cd9314cf485cca9a20e97203cd52d951422e00e0be7dabe8ec3d406766d73a26880a8bfb525c2df71659ca8e89301fcd22c83a66a91c3ea3b1d8382ad2c3c85ca88d659ee7968f387935c5a8cfcdd33696f0cb5225087206ee70835bbffcb93208e69a885a572132f403d5071a6ff953657d5660a9666cb6b45a9edea72e807545d9efc0e0f66af162daf22420276bbf9036158cd8e4858c66251604bad4a044c15e2330d1061b000d602a01dbdfe1e65741412586ce408744bb370fb2273700d3dee10e81013c98425bcd6705c9ac2a09c646a275603ecec7e80c5c210f95051a25625a7acf94e912560c3b89ba9578ac005909a69b11ed7d55fac27b62280b04ea3c17a4e476828abe43490e8af7bbf41de224bf25116f78e905832dfd5dfcd1468f796c7361994b903698dd31d330bc52a90949b9fe2f9212f14c008f8b65c13f4b296b552e6294e16f86ea15e33670eccd934bfe0c6ecaf4701a867e0348f2f1bb8911985dd720aedd4a94c7aa5cedcadea3ea7b55bb98536ab08ca071ec79acbc7693367575f4a08aa2398624749cf2ec9f8528169961e2a49c7e8923ebc21f9ee2acc79e5988d674fd6024ce5483c665da805c9c5152fa600430096f1f9ba2c7d942ac2cdafc94707533ceb9e178ff0237be059a0db6f219fcbbb998218b8982c3d054daa882e862cb8d86e8b0a73e4bf08c5caeb15c9342fc66802a5a22f78b0c468da99427b63fe9ac9012808e893160f2a003a18f3086179defd42fcfe44e8907fe98ad53cd7fe2055d6875c13bb5410f3237b5fe6061f93745712ba24b52eb0a989953d67f2fac3b7c2f296b5cccc937213cbe7cb1bceedc8dfe951a4cdd298c559149a52e161a24d23ace2711cea50dd67960c6e9750766acc3106e5c4af40823815113c8b3bf7554b46c5dddf1dee91ca8f1c5358d1914e62611137bbea124f611adf72a07c1b21e8d338756a05c6ae7fa498661291f38ac2000208a11879b82d2c1e9907b8b2e27ef8e9106f0d69dd78c05e635e24cb2480de6eecd48632695314a886f99f83deacefa06c434ff86d9ce7b8db2d202acf95624adfe718773606cf70fca7f0866d290b826185f143a87e5ad4e7a9505a90486a2236f5fc1b561583b4f2bb0e047778040622bf406504e0a3ad3acfc4f9a5330122505f9c50502099d47938d107da4afa116b9d25c613419d33330d23aabe403fa531e9ba633e615f55449eed5d439bf98421851cba219f84035682c4a09b597ff45b961b8fb8c7bffea9daf094a2a81e2e042326fd1680c2c266e855b0f27fb06068819f42f87928fab976effbb62ebd4b9ce20fa926ffe062cf4648d9e35af40037878be92a676e3be2f29b9221a30a84dea1c6ea6114d6f046a6bd03fb762bdb652e22b5f5f9a38a9fd77773a8ada31594eb581b536a8be3c1ca8e1d22d3158ba3c24c099d22e3182f1d8ad1b4a72db232cb829953b76d02174e3f1074b43b4a165795e75ffbecbee89e2bdb9e652852ccf1e9817c7da427aec21e7bbed1df51b5bb45fef6760f50e69aff84f6109f33cedb4b5e1c9feb31aa2cc5cc3c2771477f8f6867805aa95d9a929c4a8ce3df06488eedf2c94092ef4033410d4d643e97a41a481a222e776fa654a55e1be06d2b23dedef7d1d658145c7aae5ad814c492e07ea598bba8d06f3c736b904591e0bdaa24a237f1766d9bc25c6b834d308ff7605da074808e4d80e4712769172b4a21546436ca5358c42826c37414f733b1e1a3fddb48fa24d9b60d1302fde7b89b8a9e8a2559b16ccf085b9939029099e3eb6198e605c59284069e59f0be3d682fe5d83b01da175852da9874f3bb896656136d38c1f2cb7d2c0baeaa6e91e807d2cf4e25c979cbd46565615a25c873747459c71430d0843fdac17c19d9c717cc02e86ab918e2b13deef122e63be09b4f4cc7539667bdb6196323b2d409820dd2077c5b20eefd83ec5492902f0af19879a835db5dc690632003589f6c29c38820edb509824c0ecf365269e9333e06fb70200748429175e61a49887ebb8e1946d90b580dab047959123fd74a7a7c3227b10cafe97d0fe1678f95665b3c5476af6980107a329d5d4a3bd2424d8403e852f58ac3b28a00935551558a3c6e806283eb264e1da56fafefef9d55313ccb7f67d61dff0bedde20fefb39b67185388056f1a675ca08e05998b292f7b6d29ad4e12ad0f94a0620659c6b6c89bf3fe38d2b6d59546029dfa498c638e1b42fb2ca315003027fe2d0754f4538a86c857ef1894ddbc7a8428cfb5111607a95cd82371f4d082272614013e0d1fb6f9809267cc91d90e224e0043d057723a29c0008b15374d8419f3ef97baceebdb7ba8e565dc6989b3ac436a58829bf918566d9ff7bac195851ea69dc057687410653dc5d5f2ced916ac52bcd4982efd643b41ed57be83d29d4f089a3ffafd08a1fe87d73c1c7808cda7b9b065dc3c3897aaad28dd11cbc19f270f54a1c0a021f1dddc8eda456d7a3e6165f8d9cbea164a20c1b157cdb34dc42e0b2cb89e2b19277c9cba77ec49e348aef2ce29fb0ee798bd0db62882fa2cdd007394367a116f0aa17680008af8cc36024c012f691a8e517f24011361e225833f8da8ad3410b036de440df0c9edaeecf51c05f8d13b63a9704ff7d3adf0157abc84fa050a31c341918e4a1aa54bd93604da1b478ebbf2ef02b4c495f0268226ac7f234d8934e88b3dc872f8425e8ed8ce55edd51015f8b17d02482c507e6a842050b08d551a31323897373d0555e7d9d25e8c63611e50b4ca85eca84f3daa9a8022bba575c53e4c3138e379eeea38468263f548b1e3d20db6da480cc07a8fa793b763f9d41f08dec84efd463433e347b14b53ebdaa401a39af710bb870638c3e626b4bb3b5f330454c5aa9ff6968b6564e34b1b7ad2216c87465fe1a257998e630eb07b5f0bad3df97f27c4d46760187c56b2acc7e98cd4cc0e25ae7a64b8e00902eaf880af9088782d9b0b1cb9ccf5dab4c45f8b9a3a7c0c4871399842df76685284f1a7ef55b3ef36a3eb7603d7f7fd00687ca463b0813e204a36861f63274a7295231c794310643642a302483375eeecebb51dde2367bdc798363d5a2aa121e96b80b36cb76e27f856738e8ce367ef8042e8330a5830b5ce6215ea961341d05860649ff9443f41127108506fca9ddbfad05bf3c6f52da7b80d3424202438e12d1844c6e674ef092a86d338fc35fd44153320d5affad5ad8cda9a61dad1fa395d2a1cecee6ae6b9090bd5de9d464c5db1ecf6f5631aab90b89cd586bb689b882242634e919b0eed203766619d21811b0148a0099a7be2a5b16f2373b5faf66983233feadc5849c53500ed343fa3b56398c96263a69e26a00984c5d87b03f0f915b96a810c97704480070bc649e7451eb81663f506da301e64c67b9b850529785fc2af9afe342f45a58bf017dfd0df0c17d3609a8822912a160c74dbbc8afc51ca078ec130a46d24beb11fd7668ad7ced6bacd6b013d42641c881488a6149c8e4e2eb6756e109f11b41f858483c304978c96ada7edd6bf689b43c571270e8dc75f8687417ed7ef2f0d0cf6e2b94131096277482a706e50cd08daec764942805febfaa0bc1d882d04f2b9298d2744f265576629fe2cacab727b34131da982b446aade707baecf4e277a7dc22d07ec20d2a5b7087c9e286c2263b442b4b667b050fe9224265dfe782bf93e45e2e1eaae1057de36fb46a53db11b0caca21ce5f570b49978d42e2e7b54a6991d3b6f3c25faab7b18d001981da67e1ea9f65cd83ad678c916b55b6982a951f737a581de8d27e2cabf9631006301fbc38c00cd8e90b6418cb090c6406f09d18fa1a0569e776b82514b6e077b9a3cf8e6de52a053d94319e225e36b35ed1ef5af76a506f6d19b9dc39ac08258023507c1c892d9a1bbd6d83cf89eb2d4344f02eb4e33d094046577c125fd92dbe3655d016e2965fce306d0ef592c5c5fe096849841188155a1c23f4b4f69981ae9799351274599c07e36d33c43c3bb84f395c92983029f5afa9db904a8af42c208fef490fd0269c08761ff263419f5baf60984e27cb25fcb8d6be8a053e30dff92eeda22605979ecf5d30affe31e6c67573f320fa630edb1c22317c365f6c11dca8879eb30257cf333a56a13b326daae3479cb60824dcd42e11b47bf9840eedeb7156cd6f3a547ca3859545d0934576f51924a8359a8bb8860c90508cfd8d00e772964f01cdf5c84c466b02879719fa7edb437b8f6dedb56084dcc5c6f9c7371d9e6715a7bdad6c0377f25b48863787d2ab6306e643eaeca0ef57b360808de01153e68701a1e72157c11f7b37d1c52f303d9e1dccae6fef429a0dd5ff2d375c7dcfe37f42de346dda3959b603c5819f0a9edf5c7223fe8cfaaff708e1c57597ba47a4f63f3c25c9c2786d2907e9f54f6cbf7d78aca67234656e460d47fd233af12b9ddec237b83064333440a5b4e6c7605bfb9836d07a0fa5d99167a370bc00743ed6d0c860064c28940dc2f33d1750126acee0d9bb78121d827ea1741019ff63c0f3266a8edfd3a612e889721d080f052da3702526caa8dbb5e50e4054703f6fbad269eae13db0131ea615386e7fd348385e4cb25075fd324bece6e599aa1da3d2834ad9c38447bf128655775dff8c79031c2c8a69ca44467cb5b4608fb79359472a598c3ef003562ccfb422867900dc935a53a797c5f214171b121a869113154c57fbcde6a1a6bdb383f8bb03f4162ef50bb7887c220e4eecc27f3a732764c53a8cb2e04b599cf3802b973ffa096b72b13c7f085c979d27a332625737232fb33bf64b16d546a21c4205e2cc2d9745c65e455724f9966bcc0a8040e95867456f97a392a9caa26464d4ea60fc1e540d24fd76f82a75872542e71820fa020619025b9993c70fa224395ea1515948bdfd8e9af738f7bb4d49c1d00b2a12ec18d71329e259dbb439135bd0fb6ca6d5a189d16f9e42ea19bd9a17c8e32446133b102da84c9e6eace0e3353c66ab00fac352b6594634bc72e385c86917538d3aca36ff240f37bfa69b73a621a1fa89fef7085ea40d9cb4b06a136638d488eee6c497f2b539101c5dcbe2233a6e3cc074754da11ce9e83c6f7e928cd19ef3eedaef48292961a78122ede0fea9e20e9a2dd50abc33c3fde27feb1fe51474db6fdfb7b287cb8a925c06e353a5e8635083637db906319f58487a021ee74bc1a5be7ca2c2663233672569e211163865443122d2271f5c360351b1b039274027f98e4886c17a96ca3a95eda7113491098ea53f430a91152670944be3c762d21db60fdf3db860c0f07ccf3b12c3382772d36f51bddc2b4e876ed3cfbc7cec81eb5fbaa6944809deca05eddf4539a3a5c0bc023e62fa4d1a5aac354f0c8088c728435fa58aca115b71fb39ca33c35e1d36a9727e7e99eb70fdfeec8cf4b7b817df8ad02f967567800489fd10e08638919b7b650701a6dac572735f74dbbe5ca101222b67805e57fd6ef83e82b6eda8d31a04e172e974f46e08983260aa12f77ae5a2b43a99b81ddc6fb8f298d117db35f422bd199fc93575d03d21bc2ed62791de44ba19fe676c6f9dc34163bdcd01cd17dd4b102fc30cf24bb6aacc8d00988faf2811737fae05dd9cc270eaaea77b10d5b5013ad4bc0e30fb6a468d4eac3245e0e9c55ae7ac7de0281b755bbc8658931b6728823619d26ff417ad4cf0b0b5b89324cfa7ac3a8424148c92afb7b70e2790456c44a0e8174d828953c1da1fa04375a7994d3fc0ff54100fe58039743d05d11f676fab8a068533f32442eb6ca8fb17cd9a994db64bbe4492885bafc3dd1088756c27356118f0a876697461ac95c83f3bdf8d04e8204709841cd1e991e7233924cc67e16b7bbe423a7c4aff4c89682e0d77f9c06f642551f774c20d25737a7730f46fadb9e7c25532bbc68b933312c735e34c40bd8dda4c7c2131da2cba949c56d000e33f408bbc84e94936f1fdb4df060c2230010fdcba3a65de5ed707e4103c358df1e87c80d49ff553fe93209963506e4aea487e5a4dac3314ed9e9bd31b0e02f87df21825f2e384c3a915484173101eb83e0d6e14680bffe79b7937ba8d213523069855d9124500e33c32caa72127983fff093c0fe78147ef58b4fd02645246ca3ab0d09cb0e076e08fa3052ca7ada0b4089813976a508ae9a1704f893e27841941c4c539b8dc1e877ff52501501a644b12cc7560c6b2d4f0ba219e1777d0cfce630c07760ae250c0e7f30b710f1eeca5d61326857202ed4154a2b5de1e2f6c71e6e4960bdf682e41ae9253525c5a72fa0b8488bb4bd9bef048ec8a979d2067a54e640f7d6ff80221655ef2c5cbcb6600079b9c78b263f9c78997d70f23631caac9580d4ee6f25f52346ec9272e35eac9e25d462e5c505b0324b75ecb64f89d8872049777235dd892c92f24d48c10bc6e981c2a88cf87fedab8c02e054fb3b9cf32238def8fb7a66dc505c53c5381af6117f28e5d694deb6a43c992749117989c7962bc17fc97c1e4fdc32cb2deb1420c394f9e826e8c5c03d18d09ff15775cc52553531b27dc75111cf6ec70ef8eaa66f8a7cd2ff733a5378f17fe91ea00172f7397a45972e9e5214791438187a1b59e4cc1b00de61b2e7f444c319c4ae811b0b7019245bd3fad18bd15ce352cdd4d171cb4075ee356b81728550a33da9991242afee231c2af68408acd1298d76d88d1ccfec5340b34762b6382d9c07f0ac64f099917c50bf3f777b17006d5208cf4f2d57060f1948567840692916db27dd273081e5c9ec46c16c1d65829d16659dccea190e43e4ae61e28b6f1243a7ca64ce220ac8fb24da9ce96cd66163637afc0430fa02c93891823781e3488e70c828501c498600327e46261290cce063894d14e389032f9f140c1bcfb095677a1395808fcd71fe9828055c0aa86d7981e41135856c4c4a674818e3ea5f684e7b738d6af45846fc9a3773a4c10d566f8a816d2d719820a025662f1e9cf832dbd21a972f2805c85c644c99cc91bab681006401d874f86b47f069713836b20dd8a5e76cf4a19204c766d2a7a653532512c5b4aec909cdac46d6841c60d3151bebb19f6ec848c65078b2201ab7a734943863b588967aa886c7ab0cd089ca2d34f96219153deaa83921d5d374dc97650e3c1042a60dc0c9fad305538a98e5f6736daf609651a90a98ecb77a0619f42c3366a25f60fffd057b6a6f0df82d66a8886dcc15412a6234f40b98998ebeaa5b209a7e02a9f3cb3a0dd5328ecc6886d41cc482c90e08910492b5dadf97bcb89a532ece58dc85c67e538025ad17a70a4a804a2a027ca3e42a58a39cda05f19e1314d893999489ad4e67960792079a7be837572f35ad9ab685647873736f7c82b321ec5db5d2cb31238a51a8016c01a107a268d0eefead009a9531c2b607b6870cec01690c2cc0ee72c5dfe6b138f768b4104bbf9261ab8fd565b17f3b5a5a274b024dafff3f482990ca485d056232417801964866b88180b00ff4353a300b89cbfa505c70b36b62892b83659d30506e6f71945f2c384090183e42c54184328807355c22d6f2f58d23d9e0cb1bd0cd0bd6be34fdcca0b068113bfe7c8f831956beef3b2cdc4fe85bd7ebd7f0103f18d7f7499d8d8c89a9493b8ac1c7c3f5653f8119bf8d629d7a288061b66a8d91db384a5a135ad09596ca37b0193f8ba97745361b85c8896d63ef4268c827bb1f49ea3f458dc6193d2ba16ac84a28221b730c86c50dc28531c17d3e2ea19a01da302c3dccadb08810c3d6b060883b890f80090377b927da5fe0cb1886ee416da081c2c88b02d7094741950e5cd6994e847001221c545c95ada72fc2b6123ace5221eb1b42861c39d204216d8cfe2d801fbe3ee2105b199c8a4fc6bb3e8c6d02e5afdeefb54fc638c70446d62baab8ccf270070be4b47082f2a69b6bd5322864aadc160b19e4b480db1bb29eabfbf920b47a101ff6051f44cde85e029ece12a4b3245083d36e1bb2f762b6bd7c2017a9ea716a23ccde71e9dbb886f5700024d1acc2e8fe4fa33aa3df5f30288f984553e85d2916f4bc2c10a66d44cc1ecb67c4cbcc8bf998e5b55e6c67b0503c39717de4c6d78b0347d958a957a7a1141aca9854e8bb9a7db271170af59bac1dbd92961b5659d60f244137bbac2ff8d17e3087424bd05f4d8aa2bac11e21f953337ce6c9d2d85b6a89a16929b2038b19b86e3dda03894afaf321bc8d6828597b49f6be135189efdfd7443a8b5ad5e220ec32253f94b28ec5fb135bcb97e170d7c0fe12f61e640cea0fa56f7f4b25782e6241a504520bd94eaaca272a46e2c472a31e16a232f201fc90b442c7fe0a6d1003ab59baf5201bb890b929c0c61212cd8442b6012360b33788665c67637bd06cd677962a2a0b80cc0c3fba2f464b88371e36c8bac0fe5c2b822768534dfe5099b50572526868c79b989888a472784bbd514f05975de4760efb311a35b20fabb680467dc95b5c8902161513cb918f5d3d558a8ed01507a39a8faee284f4e43957520dc15678ba18dfe0de39d1a3a4b2124102be0cc3087f67d5fde962f7550c05f814db89fd57abfdb0020cd6682d84c1f40c88ee5c82fd054548ebaa2a7aa169f10fa3a256a466c4d69eeb4889f55e0bc0abb0546624a73463bc8b9c1661aac8f6967938471b41e5972580427ef134e7be9343acc900024219e256dd2cd36e76fdb54244287ae265cd73ea3fb0d8f3d1d5ca130131ddb4094c8e9cee8d64d3fbc59dcaa70bc5bce2ad6bcd40956e0a7f7058ab752de239ffdd06d0fa7b0ad83d02b2f9f3eb67f43cfb3d1330e3062e02b0a338e738daf77adc77483bee39fc2ebd0c23e80fed132ee354bbf779fe08296826689af6f0c1a73536d33140fd1f2490fe67f72955d51bbf03ce6e7ce535717dc706ec2c0bb1d131416f20deded01c6a7b638372b4b58df18954e5f10936b350a8321b822791c28a3fe39630b3409c42601bf16411dc70e218da30ac1f2231bebb746201e82cdb0bd5cac289df3bd5c12b5384b9ccfb94709300bab615a8731bdeda7ec8688c7dd99c95ed8b9d7c2798377eb05989ea3a0c05e3b6f21301884bc0e39fe75ce056c3be35a319b1ae84db3e7b48a191d581886d86c62d701800594c88f2f0adb3564f5fe6dd7a4303ba2a642299094be9d080813896fc7ec42dbdf7936ecbf96a9846008c3f8ae322803a853a8a102b69b8f7d4dbf3520c3ff768d2f26b2145c201e0f13bb9280004cef176e7388c20af22f8335a18441f827011b22c769899829d313c952f262884dfdacbde2c7b1135284fe53d457f9b0701ab4185a2ac6d1a0043dd01220d785cc55631d43d1fc8a680ef598328e3823da5eeee25f08e88214f0082ca117c21a95057d2055063db4238b809df9e4ac01e572fd4638ed8247b0f5ac52fa8824a3498ea80f5899866a578dc086dcfcea204b0999dd4f4b88f31ecc0a2122699c20ed5db931142da354e300a5b9dc31dfaec963576560c5a15929c6248c274acb52f896bdd14cd06af4a116e34732abce29fc1d71c3389af6a66dd2ec248762e52c3b80d4da13fd1a737f99233a9658fc0e5b288659d08e71ef1ca65545122553597f886ddeacbf147b2acb6530ef9a5e77a66641c81074ecb4d522382f144d8b7c5d4b77257da28196d2cfc80032a3457a75920ce426ac63dab5c921f825247813509b6af6f6549dd40b07a86ee0f7d75f5d164b4792f1f408464b417e4d2ef3bc501d011c88d233fdf5bf48f5dd117d9c981c66714c54726d7c2a2ff1bda6fdd4868696969691329a59401050afa0abc0999a6521f644f6bb78902524489fb566bb5af18d8547b6bf559adadd65a6badadd5fe723654216238b35b9bbe60786d7af234c51e7429c765b7f65e8c6125966ce2fdd14e9b27ec0ef330ecd347341480741c767a0a720fb29947496c3b69afd0539a51d266c1b26cfb46664030aab30c0b8db0ad59135e994436f1aeb6c4924d9f5d7d90c895da0d636d1a6123df8e2f3cca711cc6187ec110268d962d04bbd6de0b02b1625b1896c5b6ecfdbdb6626bd08c52114fcb1b7290969d9a65679508dbe3b3590ff1f8583e7e3dcd4805d81ffc81e5f11d07dd1ffc200560360bc7711fd00dde03ba41cd0a5f045e7ba88934659610f0dac15676d3687b0f49f0f32c160c63fba3b12c68367eb69502bfbc5c407a0bb68d6d2dfeddac4bb2b02ed2c3665dfd80a3323b7ddd4065d3d70d52f6d622b792689b35484848485a094c6f5700942c99727dcb525ab1d044a2e55e6b85474f7d28595ac9e6b66f0cf67db5e0c3be1f9beffb4409998d5dc46765acecdbe9bec72c21f7f8f7d88535fb3ec5b4530f7f5f65e7a35e4aaed83b367d29c9617bda7749ac7aa72011ec5708f67bd2db760d5f0c14d27dd3a6f64e5359fd846dc7c021dcd6b45924e86e27d23ced0d8341ea3e616d8e7b03819c4620b98e7bc3b9c9473dc81ae936f7cf7e1ca7cdefa1a6b27a479a47bbf3806e2a4b5eae340a5dd9c4fd8243b8fd69b3082784db9d0b66cc91348ff63e9d23cdfa7a61c9beb623f13ded0383d4dd91b886efc02e0c397048eae1b70c7b765f4973f4603c969f2f4a9be3ee8e439ae30d5984fd035b3c8dfbf491343fb08b30b0013fc2c90f5984a1c413504a4a7fc0639ac7814054df83ac66e217dd674f81a479d29936396e6f160481db26be677226fee9d341f047fcf01c39ea22ec21389145f7a1363913bb15d21dbc9722f199dd75c7de71b1c38f49d8ecf0d94b090bbb3b0681a840b2e8e660c69dbe6370a8bb0906c141f0907cfc7cac59aaa71edeb32056816451066ee7b00eeede50771c744dac089f6e4eb3544252cf4f859f36b17b5f7d754392d4b6507a245943c2e787cf9e4882439d2e0ac18ac2028e8e36d626068270c404e8c1310c9f1b09774ca280c9a37db95bb033ca36778f234938f2637f37caf6116dbbf821c1b13926b687c2de3acd1ded4d9bd833ecd93dedab6010ed980695646ed3170b55368e4529d1978bccb6b87af1725db1e94b29cceeb1e94b89294d07f26a479a6d371b41f6c71e2c9b32062c0fba45a880e5f16d6f84fab85b09699bab4dd380e94036576686c18b852cdb6a6553aedf71028f05263b6aa0be08adf00142834d5f2b247100e6a542120988814e18a8304d84447c556a782db1f0029418df0a7250a043e5b584859d7a295163eb945944aaa4d6cac3a37bb33cccfaa2ab81945cca2db58b0dbf943cc9b22cd3362dd3b26cd34a1dbe211fdbb32ccbb26cabd7aaceb2ecd6b629772877b8e20aedb8dc92358d4b105a666b9a62990bfebd7abbe762350941db846c1fa95a483842da477e58bb25dfdbfaa5b07b6db5f7ded65aabbdf6de21788a1557945b4a29a50e3a36be4f4b03ace5806198c620106c33ecd8f2c83cb28492cdbc2f96696a75f6ca28b95e6b410c639aa6b5ccf2c0d8bf8c6118d32ef66e7667791d7616879db5611abe9810ec2fa3649a023dd0d11571bfb1b01d743defc42677736371f4ac8db2327aadb5d46a2bc6b3a73e774c9a30fb5adb03234b21b2ddee0130a5f9ac47f5d62dce5872468a196bcce0b2cf3479ed6fdfdc9e4153e58c34fb0c2d67309d11c666f9b47fcf549a362b080e79a0076356ad582c5a8641205ac5db33727b777f93332dcb32ed4ad7e594e16dadd5d29d7491bd66b1d40e50f6da53efb4a774d769547833d445d6ab5fd775f661d5acf0f7db7780b5d65fadeb6c9611043db879f6dddc94cebefd5e4dbfd3407d37ee4c66b32ccb344dbbbda275d9e6760b0ab9dbdef36ae5b1fdde5ea91dd4df4db343e3eb6d966db1d40eee374dd3a6cdb2b71bd99dbdab9d2eca3e5ebbd9ddab9fb9e5fb835deb8173ad925af66ecbb271bb5237c89e811e8cf54117458ac721553f91e1c731e757b166308fcfb58eb5e60759231f6bfb7d481af98c7cdf451589ed8fa84d231fa685c7426db1582c16cbb559ee67b168efcf8c7c46be5da9916fe3348b65b4384a3c9a8d99d22003d81b78247840b36314b3f5383bd695847bf51133046cc4a0cd2ec1a271858b1f36a63d6c9eb06d9001ec2cc3308cefb5b682416aa6830c604886ef616090016c4a7514ddd7a2fa7ab9d432acec70d33164a0607b96aa59613562b655b3cd8f96b1c6c69eea403657580a7f6a6c5b86966d2d48f198e932d26c4ca7aabd37c41ad3dbc6c3e1dd832c50fa5a696cfb5c069b6d9f7ab2a386435870ca154d80bf1530ac24bb9b8e214349dbd86ce119dc07466746cc9831bcecd4d70233612ab66037c6cc9570dbee01ee87869927db1500bd277e69f2a684cd9837aab1b1ed98315e76a3673daa765b1a33c6136f84ac6fca16321d33060b63c4b0b2ede91629a5150435f948dd251c6d4c83a0261fb907414dc6b083a0260731bf6d7d22db9bbf20a8c90b38da38a80617cac521e38b1ea5b55a7b2fc61896659ab66d1cd7759ef77d201886a298f3389e4e28542a7573a352e1e0ac5639393a3a2cd6ce0e0fcf0dea83842338f60daa83de08c3417d987077d538a80eec051e8e1b3c3b2c9d9c158eea26853a8d590cc1cfebb84dcb307c2df5018647ab0b19ff8e1103cab607f0a8a504c0c2a33e6685b2e5b780a06c5bafc8b58a5c4fb58cc1a61a8183fa3842dbec4a85eab8af4b280ecea6bfa6699aa669dfb66ddbb66dbbd9e2388ee338aeebbaaeebba27012abbf2856cd625d4c791ba6653a1427d9040b5ec233f3695a4daa6ccaea4a4e4e92540a5e7799ee7794f02547abfaf50b22ccb32a032fbf77ddff77d4f02547e57025b25b82ac1255b091e04c127012a415d996ede1f599964648542d68eac1c59af78d92db5c8350ced91fd5e316936dda51625d034fb5b8953daaedd1bb3e9fea620dd41b6925d963d49ab4cba30402a33ad6491caec5c768d54524ab29549e21aa424ab52bb529256a96925eeda9300959c5ec2a3cc74ed422a292d012a359da42bb327dd3690ca2537caec4a491a1b24a4724958664f12d720212195496c9955da12437d7c5f8cb489f490e9cbac625e1728f32acd6c65d2e4326bee0fdd4b96586172e5026230dd1f2a02a6abbdaf4d6b978df7aedaac3f6d0179b16d56d7ea25bf4a91ed8b8e29c3052db7bc7a6bc7983262b6596fc879d33165badcd7b5b906ed5ecd4703bcf36f57b3d6e7ba80d42a3eb9ddbb03db18cb3a8abd8d66ec98e46ec2dde609dbe86eed9dc6697c37b63cbe3289e5718348b2ee3d460158e30f2c0fad5c92ed4d43bca73e1e9034db72210d6905817023d896edaebdd65aab07926a6c6b84eab02702c1b6acfe208db9da1a303d299564fab7b6c5aa36c3ceebba53cb0324eb0ec932c9955ae5f61037fb53e9cab66a058178e7c84d1b61adc9b64f5524dbb274cca52bd3fbf3b3b1f1bc6fb7876d6d66b2771aa70fbad904daf419698a806123ab6d421572b32b8e0db778f4f6e838bae3f6c0afdabce4790f1e9327fe788d3cb587c7c8137bfe469edb55cfc833f533bb778e3cb9a3de9167a22409624b1536583101d8731f1f9fd44f14ea4b3e25ea677795eaa83165b6503344165ba839338e23f8519fe3bf9f39cf9123074aa552a9a8164c40310498306460c3030882a03ec1dffc54ddc7c7c70785428561f8050c352638a3c50b5c4684bff9d9f31c3b3b3b9ee739e182166bbcbcb4d4f0c53bcfcf9cfbb0582c1e7d22000c1028c8e1872931c892797eae747474c6712c40191ed01091e4899718c61b51146f56ab1508822d33ba68a30aa612b0a1049ebeefbbb9b909c39075a50931a86042c30527e1e974f23c6fc4410ca428d620e3e407ef377ef688a29873ee8218736505334409624afe8d9f393c3c3cdff78de398ada1410d15265d8cc1a252a954fa1c7fe3a70a070e1c3972e4b8a14f102c61059a36d24822ca1af0e4cf1be7f9efe3e31386a169060e58cea049cae286f0e44f9ee3e8e9e9f13c2f04277e606a810b494a4a542a954a9fdec99f38fe9c9c1c529f0b88018c1667504183134f825cf1e2861f9c7899d2030f0e0eced1126cccb4c1c60c34b440061ca954ea484a15273628a1860a6c90710385423119c3449b284e58c85285676767878530b4a020052b98a47106078bc55222730309a078a1892c5a7043474787aea9428c196a3071e1c58baa9182571765d02c51860d356302276d2851041468e840b79842082f6b24f1c21369d029cef0e0e5871a92c810058eeffb0ee042d20c597ed88188306ee4c89183033140cce0050b6694a08a8f8f4f06526c20430a3649a880869e9e9e1b4eb648c1a542922cacc8a9c24a14163c11450e5d7211555c4892018d0e578c94b460058b24b668e101025f50b0854b0f3354c16427042f58926c384209294cac9d9d1d0f8c6842841521aa606365d461b158e50e609cd1821230802801b8d2d1d109c3b04a0b347849028c25af14c29bd56ae579de5194313068d2648c2d49c878a79b9b9b9cf3110c48acc0840a294bca48228ba7d3691cc7a314be106207324c18d18518e3278a2208822e2882042a18220c2fca5401737cdf17866119d79332ba74a1440abc08777efae4c891835af124290a1267b218638cc7fad9e3e3e343a598c109135cb26082851959e7674e4fcf977e943de3380ea0852e545c5f388161cab8faa9cac9f9d28f320704c10cb66822cc15467419c306bcf989a3527de947a90ac330d5040a1fd28441828b34e1bfb3b3f3f3f433858383e3795e5686a98c1b905c5042e3fd3f798e62b1583fc59fa854ea4b3fca54cef9015690a9f202261ea6d8e13f717c474747e7e7f753a350a8eb33481a12b431841951706802c7935c38767ede386bb55afdccf193d45aefe8f388091fc6ac61638d2c3690b9f124d78de3380feb27cf756e6e6e7efafc3c49922c7d1e5949c1cb0b965270a6092670e0c0f1d3c5f32417cf6f1c87cecf9daf4ea7d3cf9e9f38feebe8f3a80a131a5254614618324c6edcb8f1d3b5f324d7ce797e63f593f51b51147fe6fcbc8103078e953e8f987068c2c30f693861a2071e1e9e9f2ed6935cacef9ce7e6a7ce4fdff7fd54fde4b971e3061b309c5461e242656767e7a74be7492e9db3be73fab9ba9823478e9f383f777878782817627848228a3294ac71058bc5fae95a3dc9b5bace59fa042ffebcf9e7e3e3f333f593b5b3f3a51fe58ea84f0a05961c6498a2c68997241d1d9d9fae9b27b96ebebacef7f3f41c3d3d3d3f513f75582cd6a74f1d6a44d1821a2f3e28a959ad563f5da727b94ebff94a9fde73fc14ef939393f353ff5ce9e87ce947a993439f3e49aa2091022584b852e6e6e64b05286f7ebac427b9c433dfe7e7f71e954af593fc79b35a7de947b9f2d1a7f81ae38a192e86e8a188d3e94b05284f3f5ddf935cdfdff333c7737070707efee7e9e6e64b3fca9b1e7d7e604c09d284d1449628c21045f1a72bc7935c39fe5df4b92a954afdc4f1533c9dbef4a33c65408a155ca1610d2e3254f17d5f2a40f9fd74f93cc9e5f31cfff4195ef5b3e738fa742dc96e89fa928e12f5f3c6cfefae255a29deb504548a5ffa518a9ee76d29d8fcf0850d295234c99123c74f57cf935c3df7790e9c9f394fa552a9542a954ae91370f479e4e48c14ae68c10f4fa414e1e3e3f3d395f32457ce7beea3cfac3a6a84711c8f90d0f8c044186256d014444f4fcf4f97ea492ed573dea3cff1a99f38d722d09f4a5b30c6043f8089e10c18d0e4e4e4a89ea34f9044a15028140a85d218c022090e579400a20d32c050a9542a7d8697800fd3174790590386322c78388a9c5090c5ab490f2818b344bef101fda9e3384a20a90c2b54606241a989912788fe5410047b70c1042be8c20a2348c004e27c0728dff31e86617804030eaf2ba05853060727384f72e184a9b3768ccf4f728dcff73ccfa35aacd9b284132b26804243ea49aed4718ed2a7f79c9fa8eba8542a954aa57a12a052a55bf4a7821f9fe4023f3ee7fc259f32eb33479f07e8c14a144cd410a58c2b3838383f5da827b9504f1d479fdd553f573838383838383838fa393cf8245778f0e3387ec9a71cf5a9d2270756e00235c4b040e5882ca954eaa72b3fc9958f7a4a9fdc533f6fc6711cc7711cf52af31e3ec9e53d3c0882a03e53fa3c2ae2b5c40bda008308170081427da90025eaa72b7b922b7b3e4a9fdbc79f279d31ef49ae30fc924f19ea73d42745c3091530c0808312514851e6fca50294f9a70b7b924b9fdac19fa20ec3300cc3f04980ca506ff4a72675e79ee4eaceddbbe77dc9a7f4f409ea9336c16585345a40220a1751caf3d34a4a4afa74e127657761c73f5d4b386576d7d200caec4b0528b3df9faea59cb2bb6be946d97dc9a7ecee4ae2be3da9bb8bfb66a46d7b6e23f30a235bf78704ba3ff428f4d408b8f0bac10a0d6aec7b8b2b865d4c318c29c618537a2986adbdf6d8da2377ab1bd4d37aafbdd9f186a9c5cec2b0a518634c338b554c7ef81fc6f7627a31a618634c2946318c627a576a316dabb7446bb5f7d60c4a29a594524a69fd38edd67a876e0d4a1bdfd60ecc7a23bccdeea6d1b6b7d3db7ab9dbaebb5d77aa691aa75943f0c6d6567b9f71daadb55a6cd3daec4d3f9172ec94881d826dc686476b0b44a476d77559a66999a6695aa6e17b801dffab99a6694234177683bbe10feb32d0ec5e446dcb721c77fb22cfe20e638c772acd3ea26d134e3738f81ab90a3d51dc438eb2bcd0669b475990907609d70ad2ee4c8c84b4354d4217a48d6fd48541da5d6adf35489b6a41da58abea06375537b82fc1e4aae6064c9554dc9476fc7c4a7565189c7d9f518cefbe796d133e5597ea7e7f437d9050bb8c847515c4acbab5733b6bebcef2585c7716d66538c35a87814334ed49935dc1a1a32c4c907609474c5841dadd3118e45e41dad80ad21aa4dde9f0ab1b5c30b96ea1279b5526a97d333a7eb6c7cafedcd31faed89f8865a2268ae22672a22876e2277a2248149a16d8e6f6cfe28838c3b8eb7087b18e3b060249d9d67d65923b3395dd72599665a7b665877cc7d74020d9f7a281ccfe8eefa930ecdf31d99175636d76f76e75bceede50f722efcbf93ad26eed5fcede651d7713bb5959de7616b69d5575906e53bc3faceb3bbd3d2eb677b33bf6b07bdad4b6eef4554393ede973dd7d18efde7b5942eed156ed926bb18d81c9874d5f26a8b2cd1f33a4c1db038e4a7c24d85d9856f2a3c4b7306473b5c9edfed0eacae6b73a072da019c4548ba960cae244bef77edbf65b14a513f666dbdbecee605f0e680fda23f3307f500fc8b66e142f73c81c2000846a6f176babbd41a4fbd9bef6a3140acba3d25b31ab8e702d36a9192f23b122ec1978904146669001f6ddc4b28c86b1036464118c8c6044b71b547a6eb569644570e8ba84a39dcfed1c1c627d0bc121d5ab79eeae7b080e69bf36edbb4c9b39d7b4046c0be3d043e20d1284223b24d10bb249b56cbb5578d973fb6e1bc7d44fb7a90fe84e7d03755e9291cd1d1befb03cf039004200110000409248729cbc0f7966709f7b169480cf49259f936406649297fa1400078097014956529ffae47bc8f3a8ecc9402bf93cc94bf200d028e478cf7b486a0d70731f922491a0a0df73f2590f89a4759376f2060804750c0ed96fba4864e9128e76d65bd0d5219f439ad8571a8734b25ba54b38ba499146e0d0f84ea3c8d3c76bb7e701874ad0d9b6b08e2cc23ede5b8dc79848fde92c10c8c9da71d445ddc7ef8042ba8fa7ce130fbe9ec8fa91d4b7ad1ddbc2207844f6f83af9245111dbc22fd3e4ee167f467677f6e2f1894492c8932c9eee7a1d1048ddac2eea88743adb1636abd24aa92ea92c581ed88753c2209bf40b08452c0f6baf0281d88eb446c0fc8e34a11a2187dcdd5d248d8867d56debeec830d41ba01d9127f93b08c46a764825893cc9f674774f81403a4dd345d835dbaada5120104d633c36c7877b0c9b984682c2f6ee9d46dace69a5242fb967c7e0907b137b699b5843769191d5b42cc3286b48c5ac6de26d27a761ef1eb509c8e63df8ec995cf2325f23cd736bc7c83301599fd41ac0fecc47815a0384a7d600da5076ecc7c8ee96f42e92f799b4e0f1876dcb7add3792c8938c1d33ab05ed6dd3dddcbe4d4110dc36ecb3e4b6e19ccf71db068ef746b26e307bdcc661e3e801dd5aeab44472a6749376d469097af9db99fc3e82e398337814d9b49dda04b0364d0211eaa923413da5919c37ba896bda0e3ee3b8f1dbeadeb891fc9e39f0e3b067bba5f06567b75af7ce62e7089bfb89c492dfa7cd1250d8da33eed8385ecffb2edde3988143d9368e1ba682425d24cd738be7d1fe1280d26753fed9740d1cca6ebd1359b7087a2398ffd1ed794789dbc3ef46769fdbec7eb433ef49d64e3767775677a65943b67a94ad56c6cb8733f698ad585ff046764bc35404090af81ade56db5749d0959a46c2cf883aa4aec45e338d04854dc9c534d2f8851753da5042422ab1be607a60820fa507242bbbc848bd567fbf1d1034a81fa1db9af640fdd584741ee876b53ca4d9d6da2223f7b403d9dc917dd8b63c34d9f61c6004ecab3d80c16842da545f2d58686b74f0c268774d153723238730da372a45187b822a3b67d3170f61b6b6e98b072f52ac163e406519465859868f0f5976770e57697202a67d262f2a4bb60c1caad7b459c286af81439dde8c6c254b38da18a7d264ee749bdfb6af1cd5529bc5be55ec4479065089a634e30be6367d4d3953cd6d0a0b9b6e9aa6f7a76eed17088b02dcb3136dd7b6639a887bc6e993241065dff499f5c5b45924eb2c26cdd6be368957edcf2622efd5fbb9e447f91185b7affa6c220a75d527a893d4f2d396080fd97b35bffda8ac48ac4d8f707ff035f15ca8457d86e774a8cf22f7071fd4e78e34dc0e2e8c7d49b35f5a6aa459976c5cb481fb6fee1e4a0bae98c205f6dac1cac6ce01f653cf567d3615396b69f1ef2580f5925ae25f2d01a5243f4afc25b5bc2f727fb0a0fb83bd9295de9fb24ddeac3d91fda64fabbf63db7afc8b5d204a336494316ca86122c417a566049330561063c3133f802dbc80f072cb332f294fb6cea6af294cec6dd3d79423bc8a440ba192da291881a3722be101b4d4de005aba94fc28b597b5741d3de0a8dccea622b5d494ea3b5691fa06d0b21e0240582134119d28d367522db37b7a492db377d8e210fbfdc1efc81df707e31ffcb24da6658631a6a5767c0c74002db7bbedf62640cbed1ebe36d32ac5f016baeaed3512897697a695fc282b92ecae4c2bf9513a79fdf0e4d57482728c16c29714d7c6862b59508ab15abd056efad201cd16377de9f0dae68e1734edf51add76976daf9980f777fa2323ecefda916d7fdb5e65ed9bd6ddc86a7bd7bc77e033f2b5b91d6280be37aaa5053492f4fe6c7a2439507c90f54a2e944e479d4725aa08eaa7714c69244d45c6e76fe751993565b142c0cf8780ce73ced2ce5d7b0e92db4474af3a92f1671311ea2a7dde1cf533f5d3734856cd24ab6a5608e3f321709fa335929c2bdbe690486e7e9f492439cfaf2051eae3eb3732876caa9ae8e6576f2492d447cd3d232d49d26bade8a074d2489a361439eaf3a8447d238ba0721ef3b7536d6e4594b23e9b8a8c3f6ba915513a1df5791a2b04fcf114c8d9be4511b3ed351d986c006cfa8a62665710082b84fcf144f963ea59138dbffabcf9a83b4d6315c139dd44abab9e436ee426e204ff9ee59d087f3cd17d7eb9826cdffd4091485057fd4422c9f969abd766974336813f91484ec7e1b469f75b5bdb7898abad6ddaeb35ba3320a20e41920875158a5cd1fb538d80430280050f58ac9ed237ba757f56bac91e472369223a1d759546723aea666bdf68d696d22cede3f15d27cdda34cb3bd188d22c4db33c1dc2787c08e4dfe78af4d2410b8b7bf7ed23897a264f1d49341e758e0c61dc3451fe499ff967fdf88c961a497736c2db6af18e3c9bb370d8868744d8d9b17b0d9f23b10822d8295d803af9dfbd2c8aa88bcfc021ee79e8f4f1f9fb505ac8e9a3a6176f8ea7d7f92993a1ce836ca83fd4b967d21461e767acd3396db286c687dc490b1945d85c36c750e71c69724771e1459d87ba48e7a751e713451004451004f3bf10ccff40507c0ec1efe2077edff77d5f17995577be28be5e14b3978f76288a3be3773ef1fb3e921f095e0c73ce390fe51c5e24472162ce4244bdb2ad1d2b0be690c3963d804d5f3934d99e786be6ec9e08daa500bd3f5ab7c2e43d46564c84efde29f0694d8111367ea7b1368dac8a1859a1708f346bb1a8526ec19483d2deee41b9b2c1212f75eee6deea2bf03857e55cc5dde3c8d343f2abe7a02cd9dc73d6bc703043e67503174250ff4eff9e8143e239d6c885e149b346d6f7903b8a34f3e917007ee41850391d1e13395d3c479a226cee194824fcc765cd1a2f6a93c5caa780ce59a700cf774eb708266bd4acac43d039eb442c4dc4a347d8df77f4085b3cdd22ecef9c999f7d5037789134c59f34911eb2a887c073ba08fca88b72326964658adac86a839adad6eaa1368dac76cee92f38a40ac9d1d8b656fa389ada96ead8b6541f919bdfdcbb214d14b6f76defde2b48c4145b260676be77579088f95d7c6874f78d36916c8f88ddde3922dfc51176d6f526b6adf0299d3ac691a930e4c2f0e13bd2a86ece086feedccb2d326b08780b0af1be7def8abc6fdd16a1a8b135d8f405a5cbf636326caadf7010b3b77b21f991a608fb3bea27943673a8c787dfc38f64d00d336942dde290fa6dd3a677f1a407950214a0768b3a3c8bdcb90ec9f38f3457fbfbdd3911eb3bfa3b91ce7974d015cd4f6485b073d6897634089e88de1f1d0dda1dea22ef20697edac86a7b7a0b5e78a182970aae78650186d015dac6a50c0c9a9610838c1148945a0862b091d24217293ba8516a60115bd35e2a20b3b51ba5a6097d91f269a5f2b7ba15d9a45a3e08a222055468b1e206d20a32645e545ca1a2caa6af3052c09c7901982b84ca0885e18213d850c30f4c5ccc0803fc01882e840822063251b018a26953ecc31ec11734a0d161898a193125d0142c5a48f244155ba8a0ac5fd5baa34e01660b98265354013305d3146a4cd1058cd21457a658b2460a335fc87ce1028c1462be7cf9f2e5cb972f51548982298a255faa4011c5952f5794a841891aa080628917315dce44d1850b2f57bcb0e0a54b17365fba7cc9d2c587145449019428ba3cb14c12102240cc8139d81dacea06f626e94387ea48812d6cd3f276105437b007bd50d145dc95002149a901bc97d4077d50eda09ea91be8dc7e75b5296e7c34dadcc1b659d1d433b5839a866e606f6fd62e9b3653dbac68c46dd630e0362b9abbcd8a669fb12b1aaac3be84219bb50a9a6d5fab5c840b04b463076d995f659919281fac56395f8d2d93ad080fc3300cc3380ec3300ceb4e850d41156b6448e3158320b0682088335060b1458a2368e881cb120e95a325640883449b286728dd506669a07165052f351851022b78d8f2827c829b820e5d2ca139628a93a53223410bd878b184861650caec27e002e546880621a11464bbe9cb89263b39b5e9cb09a42a3c21a12df9dbf4d5841adbcc424fe470d35713620871c9daa6af26c6ac5279c7a7892cd8586b6f0f8cfe8025e44b2fc208660645aac35ea84bae3745fa83314656dac2dbed714b7c9c060cee06055f6c1cb75ddb040fdb6c8591424916302a804186182d6d3c2005254a688258010c3080555ea0195fd6343198882d4edc04e96cfa6a82c9ce668b4c0db9ea4fe84af6c1492eb403e520d3344dd3b453d99ac6458bad691ad70492134f9c98619bad1cca1cc900c6136524c520e60c0c5c0a54ec90c49818a881c58e7711da4188ca0e6bed5769846c4001928d4102f7078372ab705ee080c3132d4b8e902883c90c2415d2704561c2972c9ab071e58a284a64393c7146f6841aaa27c4d8d45c1c539c6802862c29a8f08221d65862a20a5713102fdc219ee0a2dbc2057e820a0fdbf4a5850461ba6c05d01e1cdc2f17cb2b1df6135068150967d317132cd866ab09cbb22da21ad161aa4d5f4c5c5981148c31be4cacc0b23b77b25a9db131f671b2c2780930b090932f8b6deec06a0812b2597d6d91f2724208a129d9cc3bf8f5a920057c605b422a80018d98243388f88284072c58f4300618257488c2450bc8458a4f011f6818e7f08411dd135a72c620942794bc275ec82028ebeb854a0d588459414d16daa60a274634e9a286312f108722aa11a955ce6bbe9b715dc10cf8e2a2e60ad190356811c1e5b50411db6c85e1b6e080c3932c4cb2206dfac2c206cb1629b0f87003901014a11c7cac1190c94788e9d6cbc4e4c3c4e401a04d370dd31712675e57d680267861b141d4306d0468a78458606dfac2420224d870c75e35b2de182a3cb19f900cf95630d450da46170c2bcce4164a334a74d91a8c6146892b5883313605876830c6a69acaa7cb3861b38d6e53091a9917113c644a506b1ab52d4a29a5945e4806211928a594d2d3531a867bf6ee1e07b6072d776ccbd60ef01016b3ef29d526d6b58b907b5dafdeea06414c20dbb294a49b16d16b9a858fb8b2370e2c0f8d7e5bedd89615b3f1de3620cb836a5690aa73ddc07e47c8857ced41968749c1d0fd558ad50d34bd9335d003ba65db5eab76a36cd76b404912ea465f35d0a8d640d334a01ac8b6ec5324e0cde1f7f86e8f806fb503ef36e3b47fa406f6876e571bdd2154e3b48ec4a446da4c734075d063d287e6265e4798795d3123d44468052117281847206d236bd65f6de4aae01262caae37220234ba4803096d0523ae6cbc3111db4d0b61cba36aa3bab16cb5b3f3bbb1e7546ab5a90fee99768ea454875637a603db58a68df0c68e5d30456829c24a11484adb091b5b03e06f64137682d13dc1e856229a08bda044c48b082288484384947db3ba2af514ce730ea20e8af73ef27491ace7d4d8dc516486b84288304274393d87cfdfd02892f9df09e7e1477a38df3d2d72ffc88c157adcb33659a11672c2e64ef7093bdfc3393d1fe79e2ec279a88b50397511854aad72403067ad5a5db552e5954a756ffb385275ef9b4a5ca98e7d53e57f9e2a1f6d95be397639f226e79c73167aa1d6213ec67fff4ea90ff12389bf23f121896d4b1c0fdee6fa6d882d7bbb37defc2343d21c61872a6d7edbb64edac4fb54c7a39ebab83a5d4552aa63a5cdeff42a9536cf7dd266787a837a481addbddda2526491d1dd286d42dd391f3c761a7f1ab7f1a2a654c7f751a43ac08b7aa33af20947b4366ddaacd94616a78636082d657185969036764fcb4b08299ba4f76e77d32ad934695fa65bc3c65eba904d0ccac6b4d01fec1810b7636b69cf56d862a48dbd5e91cdcaa4a55691cba55cb78941d1b2b16354680f09603a501edd318c898d61476c0c036263c7a0d40e6a939a6fda1536b5316c6a9d6cd3eab0e925707b647da1583166be49c56c0eebc80ba536a91d541ae806d8b153ea430bd08e1dadd68fb5b97262b7599b80804666dddfd357105bf63da6b7d5b532d91fec998d22633f765b793cd958ada1f6a016ab03d898fd310120debc11de546decb4e650acdafc0a4a65aa1b60422954a60c89db42a805211582c8622b528700a0538fcf47fdb9cf5d164f3adb04d22d730750dde07ac9f6577b103e6cfab252659bb4cdbe40a4d9defd3e00a2000f8246303a01149a21a7d9b2cfaa45c5ec11806a07745fea831621a23ee836427dd47d5f018cd3ee550a82a03dc856f31589006478d4a7883e6b893910082b844c43e0c320f625b5c4b0775a29c98f32fb925a62e77ec95a7ab652cce2b0c464111203e4f6ba3de8fe6ccf76dc9fede2dfe377dbf6aa2fd6a7166b6f6620344db5d78c477df0eb2f92eee13d12491351f7f0482cd91ddb77e73411f8abcf6a75cef747bbf8d0e25c759ce79f4d4437af174f542f8aafe734d16aa58be8b38948f5aacf1df747bbea385aa5cf20edd96abfd1ddafa7cf265608f8dd8930f7d33b3ea789ee417d5626f747fb7d7dd59e3e47b83fdad94454dfe9b389a843d24caa3e31707fb47bffb493369e96553b69a8aaa12a1391c40fcfa622287dd6527cfe8944e2bdf374857224de89f090455daddc1f4d3b112739437236358096d83324d8356c5f8178028495ed514b6d48e510a825762dd76a447897cdce5e9fc17b7785ff8e81ac10c07b27023551a83f4db30f04f271c0f2e06a7ab4af156537b9d75f2145f8dcb367a090ea551088f68eac6db677bf0a6aefeadd8e49ca6904006917d32cab3bdb966db540d0f34e8feb57bf3004423349b72d61905bad30fcbed3dbd5edc181ddca35b2c9c1c65bc43a01e2e9b79c809cdb847583a1a6f7c7f5e9acf3fde12c478597755c4752cd1ea15ab6673c4d2c6c7ab58942467664e6f4c9bdd3677712beb1ec446ec8983e424b6a0d605ebbe41153d3b4bce4f68ab48db0ea5d10c86687d48a7591768cef29488214c4580befc4795c4e81c75ebbce07263e40d9d5873322179b6eba37ed7873da9f6281404c128c4cc8a7b6751d70087bd539e050bda857e090d5f96883278fe0d845e1e9cee4111c3bbcc7f3f1705e8f9ed3a72cd943ae50f6db908efeb4fe32f0e67c459a75afbef13cc856c0b630c6968779e3387e030e596c7f030e65df9e0287b45b73f5cc92a676d53bd2c4a18decd67445c2f90d7de278902dd7649372813f069d0da8f4ab16958918e6945434034c00004315000028140c884422713830280a8b530f1400109aa43a643e968ab21c065110c418448c3184000010214419303053b48e02a93f7c72ac6e404eab12935ca76be210f402180ff4945a006ea61539d4ac19d56b0d8bf15095457508af5c42d05207b3e6caaa6ce4cb33a3b10526266cd27030510bc36a772e40583d83e353ac93c4494a2da84090f5d228f6e39755e2a30c2b36fbfabebef7ccfecf68b98907f771643566a791799394cfab66ac35a4072ce8ad71e9da8f0ba728009ad09548a242f690cc1d891913a5f921e9fe1a393812b94bbd9495504f9f75879a9c51509c4cf6edb7524d0c02cee498275b66a263905bea169f7c1699cf7a66e7274664f46f4739378175e73b08125b3f0f4c20310fe688f2a09f590331d2a8c67aea0de8ac7175e8297eea8aecd56c3e81ac1e2b075bacc36fd37af2d3488f722ba017e756c08a17b246e0979a256ec307cf8aeb5f2fdf4d6dec63983783c7be0b14b73d180162f4f1d0869270b04762f2a70f108062117696f6b8aa1ed5adba66af0c3883a753130423d21ac20ca0863e59c802e929c447560348b7490f5bc3520c81b9ea35cb4b650b772bbccc397afc40142726d887b7e7b74cdcd8b07f0c60ae3dcfd9460409b6c2db7c0e2b4b09f281095f3ffcd400ba452469e3b68388c069062c103aefc1a68be29e2e20debb9c57293e9b534dd0cda5262c430d5d70f62efcdbdeddd830b44bedac0feae3457045b2265876396593db3699e345b4ab9ebb46f6ad5ec3e5108cbade2f4ad06a17e3f2c4f64c0b59849b54f51e9940b817e66a609605acf2451bb49ab283324ff574640770c666d8737bf0ef07462d0900b24a54baebcd070105ee4ebf6c2430e4f26f6bdc0c38eb34570997ee9d7fc15360a7d0822fa8c49419ff943a5d173914ad9d661d907f0f917c235977acb892fc041da8d5cceb3356b5cb15dc5873157aacba06b97d29a92414761f6e715b8ede86b6ea55221238b2419fc1de44ba4234d0732f952ad46390214ce5b4a3901302fbeffb1ba6227d87292883b82e8a70fb70f7922316f43e7f8014148e819fc8ca1df7e40e78cfc6dffe982160d66c953e1f9ada4acf2b107e0b385edbf8aba1fdd45ce14288b10f15335757dd9676b430f9a2858952e86032a26020f4d359a04aedc806fc48cde5c73da2043425f9d4878ef6318836ffa36bf23911018f5025f031012dfb48809963efb464ab92445844167ac2a2dc674ee25f6f71c59723c73d9835515c931babaf1cd8544aa901f884e8b925fba997aeaf16afdf028b14714b374ea91324638aaa123981033c891dbbd26f0f731e662eb2d4cbd4e942594d4c3937ecfc4288844e546120a580bced292a89e35822abc6d48a11d99a8029d9b3981deb17e123d6061363f80614aef935865e270a311031961c3af05c8c63fcad9532d260a5598c081d8c9a6364edac62d6951356bf939eb841111692001c2f5280257b99555ba5cd726c787f6a0a8b551a0804716884621efc8c1ebaef90261b84cf0f83e909cd2565d5015f618b961c2d973db57636e57998b9247feda8bea3a85c4678becf00e33bdd260f327574124f35a33805b2f53b2aac958f74d8a2b9e49f42ffd211a23a233fb629c4fe84f480e8519fd4241e14103571a443f10f3d9e5db3535f0aa5ad221608d58bf1a807f8804d50bd1f9d223d5817bdeb5bc4c26a633dbb0d754a674e573c0ad04360d90da331472279feca980d5b8d1c96c96587d07b8ad3611043f077eca595c75019c07ba330748bde7ae783846da168c76595382d376dc891a76051ea71a91d1ad14fe128e211aed1caf1308ede9bbd5d5ab28411b833852c5959cd321fec861a8593ae6a4b59558f9afd05c7affe867bf10b8c608ae4ecd7cf2027c2a49703055937e0ff35ca294cde559085371aea777ce6da3967dddd40eee2dad31ac782929acab625867c3c39bea09cc523e78e2c1ab9ac50a00cc9d299f404e5c49da85902976d13be9f5f4338896ba5db702b5678113e8a286206df967adf9311a3c04abcf0d6a02eb9907756ec5ff53700de0837bc42c0693b8792a85f92c05defbfa05454f2abe0756bab9bc58e4f64f5697c58d07b3707384c8d03fd7793be35ec5e32c86a59ca1bd0a6d42470c5eee21695f8373ef3fbbc7b08b04ec3916671f36f8c2c44b734016da728ca5eedde97698e63e58bb44181ee4409733f5c1c7c559eaab6fe399c6e6f153f290c2142a297d5c04b276cb6e93582b6930e8b74c515685de2ca070f8703d53d43839a210c984a218c757c32b10198cb783a0730d35c40e33216e7d79cfbd947bb24c19916167ec4d6653912fab1181ec60de3b5daf7046edfa9a1d2f752ead24bec0c516024df8e009ba08d98d70eff52d61ac98fc5bf11cbc2b66aa3d0b0759df201d54e2e596033f58b121e63bf687448058d7582fcfa84e67d7e82389c84f8326058b5aff7e3f9a1ad187385e709577e1c82a3d9960e0fddf54347e49ae60d40e46c0bd8390b57a6cba4f8444703b2792ad1279beb9faf3f7b049cf9ee2c6dcced6097ca1fa96bacbd5268711306f57c6469a4b651f3d6a948feb14e14620da0678abdfd6954ba9c438fb2684ce3547c088ddcd04d481a27adbc08420904abd143a58da18b12ab27a6375343787c327623a1212c862f72456b572bd8c3d472c604a122c98d15b957325fdca87a1a2894b9f7bd7d5ba55d9e50e49799fe989bfd7b56125390a63109379bf35bc9263a0890d931dfce3f9c06eb9600e96e66b646bc6d7db360a2a5488faeb825be970ffb92a03704dcaf22777caa3cf6f7cc8c067bd9d669d03de2a9d54831e8f144db669a34770cb9ac244163275c03fa786d5e6123068d9ec290426876cf0e99844478c39e975ebaab886c8787be116b98ae671b9e81db8af92cd73cc144ff2c7b81822d462b2042fe71e8362b08f3d93adf79f4b2df9528730616356c65075fe7cec475aa9a3810574fffb9863da924a12355be10e8c0098852629b1c450ad912bc7940f3ca44e05591365c3ab579c3b9582ce3b6a8ffb901a5865f2459bf6fa53bd7289caf1bde1a1f163b9cf0ee5c278da29167f564db241670716c532faae5b1c669204ef7c8b095d38a4782e38295845ebe13e186996265172ad0ea516b20d753a392c13f7759388cc128d63988a81e8d51b4ef00b4d20d172954ec9c28499364e132a599b38bcabc54c3673765ac4b36b123389b5fb8b7ad88137a0d4c9cbdd47619763797e14594ae375774f07e12ade340ab07018589619b19de97e06fade91bfa82c1b4195308bd303a3dc64a8c483355d4df7c05506db8cc39b0f9d2caa377aab60472fecfe61a66aa2e08538ace02c5f32018efea18ebb766be5f9aeca28633bdfe4d53f34a5b687d4c0010f93cdefc3d1b9e460d45ffd4eb1525d500f71a8e30c4a407e54b7099b1da51fa54db62af61a02866d43f62a860344e7ea65ec33f26c2681b6285289c0ae911da8481e8bf0ee6d1a7dbc07fa7a1c55d1b6a56606d7c5a79b4b5ae0f79521622dd027254cdb4d7c69ee44024e630dcc53c085830a4761e09d8c1e97a6ebffbc09af000eefea107143450528b27fc51bf84a0076485a8c5f38e73c4ddedadee139afeb76eaf176f97945a37854ee2ecb935a54e4a59338cc96a7061656b0b84b52be0d4683735c06d18ab32c001ebfd9a4828e8678451572c75842b501c8473be8f4605fb91aeb29e9aa0218c134e701d3c3d1ab951959bd04ddfeaefb6c3cb21cc3d261f4b21ef06662efebf1a8636270ac838fc3b8d4a99c885cb468f82174a374a6c43c2308fbb78f366d62cb595cd02953aad63989fd36fc494d23ff38821ec655ac4196544bfd16dd220cc3a4a5a1778809811d94726702a41bad4d42212833420ee6541262db42fc70892af083de02573b56c72dc78d8b5e9d63546f4aba9a60447898a217abbf9e49e6b9cfcc300477f0c198ff0a701ae05628241b029f3ce9c6a408f665cd23795ca5f072866a839f0bb0a7cd971621bb8be616151e9bfc46fc85143ed564d40c2f1e25ae647ce82076e605d5d2b94501affa57d344fd44da0b8f005106cdc00a4ca3d6e2014c76e1fd9440df7e1ab0628bf5c0c6b01ecc04229a377780a5b728ea61d58cd83d2d87fe2b8f26199aec19dffd4a5f8031b2a29e32d91570ec450be9bc7374e10af6b0f7fe08b98d812d387ff6be9315f5cfc59051def14501738c987a40c82dd941491b11cbf70e2007f00a0bda82cd74249116899e2b62c8b171e40cb58a09f5a42a8a4e8bd0fee5310be54090a14371fb0ecd1bc351a74f31f6604cebab7f60fac54e258688b6877e9209033dbf632ae510afee97aea80c8256424030414736fc8d98c657b11dcc16fc1dbeb9f415c447849ccf79413ff4018528b72590e91de49d8928826da6ec9eb82219d5164962ce303f2062d9d9ec88e1481581541f02ad070e0539a5d23cc5c7354ca2cfe6b44740a746290b7027ec90a20288951d7825792cd1579d2b3d75505e2ec795620e6b442c57c54e03f07fd6500ee89a57fc51f3e01a65fb86ccb9eb04dab58dd5a742bdd7beb5675cb9356bed6840050943b13a35c302b93b78699e8a2620bca4899778b16e8157061a9371abc065e45a38b81017a8ea668819987bfba11e4d11df68d0f9abbbf060fc6cb5d29b41a15ca233a676897a2944901dbafe5210db6e0ea5470a0b7df359d179dda44f5eb2e0768594a2fbab0acb37e94ef4ac4ffcfebbc4823ce51f7a56ed1241cb2792ba9f9e920baabf6a938eecbd57959c48d94b396fe1360c9611276de8b36239646e229c6a8a3f8d211bf01d1c6d38a64d75787b50ce9beff331e6eb9a3b8ada6d5e0448bd17c813cf5b9ec67c5df30226706a80defdba9a54eccdf261a82c4cd33093c91f21039885f0021666aa297583ccda545ea51d5c28470a1cd849f481604e4e85448dd0d422c43a23cd2916befed49c1bc3232d4875bb3a6c2a977dcf7b0059326a24cee44cc93367d07bb9541ddf4c479e0ff55b289e1c7f7edfa75ff88aa3de401454c3d738bd6b7c5424b76b2cfc20d58e420a8a6f70c23624fe25d170bcc5cdc8ea33718ffac08d6d917957c54490f66e3bed9f5265c45958547f2fd6f17e05738a8c865ace42b7de45ee51ec9773d1e6732482f00fc432491c193da17fd99d9e43c5c86c920ed84bee2a4d0e6bcd2ded787e9d7eaa8a8a6a402989a5bbe13dcb182c69e0b49bc5eaa4a2d144a188de77de5394dfed2034b509e406634bf97fd86eea9e7b10637d567868d5110da2f31fa0581a4111976c7f8052e88f3d32bf229dc382bbef8b900b8b6bbe94735b189697e5c04d55a2b0aeb138b105e24fd5aa8f41ca547f39296a1912f5d6ea98ebe9dc8da7879b01749ef695f37f06dc540844375c6ac62d62e43eca707ffe71df2f5674cf8b1bb46d14e6d7efe0d6cc365338b38ba2dfca8b31ff99272162e75e140ae638d2933f54d5c17bbeb5a408cfde1bd7755804cb27a4db394f744b32d9179dc8f3b6b0cf28b04dbf6cbf0d75608ab4118611aabfadf0b3809a6c2e000472d23272fc0f80367cf0574daf6ce73fca362daa345d30305f1c0698c04f40023000ac846f98bff0334422971efff8f9139f3bc0df8f96fa3244ab6745e2a517287f85a21f5968c6a8c05df8e924d8461161d5def14b456c01105c2ece145ec56011c1aa758af2deb9fc65bc052774663cb460d5c889ed555a3e84240f668acbc640c2e4753bdb3ae5b8684ab71bae83691bb48a4c81a0909f0831c884067c895d706ecc87f6a712f0770c72b85eeeeff1a25552c1b90fc94989bfada8af25ef64cdcce8b0b208fc01a3c0f8d5e3820cbcb6244eec3db8d4fdce019dafdeecea20c391001560cd43e5e7e00172a5cbf6f600a7c8cc1e7b2fb4cf89204ade34e6c6e9f8498eb4384417ec466daa425508a9c1c03d301357b6de43d3dc2b61aa2875450426b9a320fcebcd3408eba9ea29fccfd06c8fadd3a885b35b21637e7751e83df65c93532d1dfd22fcfc518e151114f7bc45637fc8268b393aa2cb9f62f4a123772cba0f53b1cd34d4bd0c305a8ccbea43aceaeb934d5a5d6009461b703d6154b5ae69595b4fa03b5ff1a89ac837e78926e35318da584a7857e60c846c219acbc5c2323c0490a76f2312278cc99bb6804e7e524dc9c594e6773ef8b52e2e9b60ad29e032e300a4a46ffd6261829cf6f194361b044502457a480d5eb33e21c63f7b6b7257e4f5be81882e5df9fce4fa509f85621aa4f46f7714d09cb80c1d3a31392b5cb0a4a99699753178046bed494b1d564d9f7cede6605fada5c9cdf41edb7c0b2ba44e37d133bcfb50ea6dcfc3cacf2bb9c5d9ea228ac95e490edda9c744e5895b3ac3f8ba19bc9fef24e0958672c953e80534ebc48075253bf8d4f1fc80da04b4434e2b811b92886d1184708f05c97448dc8437904278ba7133bd465a09bc69be28f64357a475efe4e7c8c7e224ff6d5ec81ec6787a08d2a37965bd25c45de5af5088880be2db6cfd7f41dc20a5e1c6d35cc24473649c4e4b278c53f7685f23389d39cb941fe381e296a1868c89565c8cfb77e0ef222af3e42d382553f08b65481769ed87a894ab2b890d6eda78b1131e3bbd35d960cb84fa717ec1e07c72be842c883a2fd915154ac130c29b21a8c4f80fdf46823c38a1e25609f2b28b2077964d8144634fad19157e95912a863ff7923c01be8453e6ca048fc0e5c4973991c37646c084e897497d26f10c7c6685637432847979effacc7d3d4c9b90ab63033ea6398ebd503039fa60b408a43dae8869a7441a59d9b2becfdf210c56b44fb9465d70db6d1a29c8b64a0b4facf984242f1c9127f113b4fc64222241875330a858211675da62cd36f491dba56f65799c7a116aaee4625ad48deddbac27f4bcd4c7777facb2c773b64726019aebbe8b6f25343654498240923fb6a4b06491853e7e7c6ddbd285e25cb462ab532b4f6f1966088f01a6489c0f1238f9aa9b6dce4e8e8fe7789c8602b87e3130b8c1772d2b3a7144247859bd12aaa10094cb28e48d4bc3123411b8d40a653f3476dbe67c400b73fd53755fe3992d268bce1245d2b51741fd3cdc520a10debf40ae8a029686b1f2d4cb1d2f30a81dd23ad0512d8eaa38ade15af985aa82c464840c99c60863d9905003db986c053b7e97d597939c9dbc5ee251d670784f5b038ee2eb22632e701cde17323634a0f850513f641f82d90a6e0f8389ccdd454a283dd61f7ea5286d2deba929d2ce8ec378d0b1d1d25b4ab301a71fa2adbc4aa3d16ea4087937251c560996018281b381bdda4b098306db1746b95c3b55994d8435fa40ceb57f5fe4efff8c9d160f1b5da832741caa8a9e413aa3370f0391dbce9583c8048c6a9f19577ce4e6a032231205bcf0c2a0e447de6bdae6b2973e2050a1d93124b3912779567340a38d8a4827069e50ac8224acfd45a773f6752c5a84b79487a9f8f0ddd25f532327877efe8531cfaeb302f763b6ca78f8dbb922e9eb31e6bd42b094bd45d9ac7531712325a307d5b520aa88d3a79966ece2bf4e1e447ae2e8bf229daf499cc2b573894fa71acae22a231681ad3286aab68afeb8f9aab884717c4b1cb3e4dc44fb781cfbb8f55ac9678a1c8f20fc0942f2b359d4ab80e97a28ef6cb02f09ff7721a6c10804c929492e2531d17a3f4b6ea860f0f690c294c8a6e70d38a947cf901711902e75263bb5b7353f71096045425e27fe92d2809877df46b77391af16f07de9495850c5d8d0b10475c1927463ff5a6d1a8bcf0fcdaa2722c3c03ece8fb1d9f670e87e74c62b00c24768f1a4b3f69569a1087f93f46500dc3570231ea5aec469433ccd3928c62a52b1b760825510551ec7a0a07e53f55af208f7e10c0df0ad419ede711f9aedce2502fa6e2705819c9dacca7361832c3b1444c1365308a5f812ce4104f6fe9d86ee8b0ab88d589f726228275e70a3474c4e20f02fc79f9b2e5c8dd035b277da2e6af5fabbea005eda6a749f1386cf7b8261db4e86e619d774409f5f91a783b61152545309cda27bd0c0056ec0e84f73ecbf797457a90cd319c1e5a1e8b8ebe5da4121772fc789d5afc7d51aa93092df81190d72e529f83cff1c6cb9b45a50075743dd52ce4eefc0f159ab29cf102abc93c193a84a2fdb3baebc47f7545f94ca51bb9c67877204a0023b1037a5c43ae9ba8f1c290f0bcff616e9436c2af10f6fe9cc195c65f4729e91e1e26fc297c7bc0c59146553d6937f72b3b3477f650eaa705eb3a4eb7e8810dc82ec5895048998bc59e868e031b9f34519e639557fef60cd529e319ae0292232eb8ca7c5dac12f1d0346d671a12906aea717d1bddef6271997f4ece2d43068dd782c4ab03b8c105477e2ab74d01bd7175ad5a6f51c9f154fe6761f3c561c1c89039bde075c1261981c3e143644e632012df9a030767190d6c57a5a5fbfa8dea660b4363169955516da147f187411b62d43af1ed239f8f67c234ddf09f3640b21fb6bab5d3b41b0108f0db99ee014252872846c6cd4135c37ee1078d5eabf30658cc0e00244eedddbb4b8ede8ea1fa02a4525ecc10e2179dc1b804c0f3a57962fcac8ff63988327a3ba1bdede47aed47ba5d8f3c59ad0e42edf03d5688d92bcb3eca361438c3f92c35a57dbaa13ff985bcc28aa2377a4643fa71c29f44375f700b99dc65d10e4955df44697b728b1f7d1e87cac59e0af1309f851963d6d28b49a810a0cd90846fa615334462cff6cb678c32e701f376b8229cce10c6c82fbb03bc9f21e6ab05e83912207cf9818129037b1b103838c4ed4c7f0dd11b17eaa3f962e675c94b91d9822440c43b2f94ff97ed594a65b0d776fd810ff51fcb074d7847c8fe702977e285240f3eb1c4f15771560cf68bf6f37e4023021764dfee89a60849436891fef97ca15d2151ace372818179619693f7cc8f2d746d46113ea9235514432f0c7c2a0a84c90471a58830e2503b27aad7ab8eca8b43301aa28fed882f96a2da198d48636b3634ae6f173ee9913f02e4c53d5abb8efa143900ce0c52dcc85f451629615b57c00844a14630b06ea1e7b103da1e8ba1339234d23722cb9ecdf88dadabf92efd7420864e3af94bce3b6f186e85a78fb5b004db56de23d070f285eb68f229b409be74c3db5fd29b20bf34d9f040f7a41f5717deaae5cba91a00cdabf9454c2869286a599f608af7a210d46f00c028d77e52832bf8c5d62eb728ac845964e9379a3afadc3d8f4bed5e35725f720cf2dbbbb76ffe2cc4a1fdc5a96e3b2405c31f9cac16b34fd2aec5b7d1025180174fb0f5a3fe63f49fa27d15d36bfaec6c9d94eff882429a0d0e0e6720d38d0ced6b5f29be9d5ff5b3c2a50b42c2f5f234a863c52c2fcfcd750a162dc7b782b5bf8c3eb04dfc602b7347a3ad7a9f83931b47c125470dcbbdccf5d385e44edc1c48d87e20e6c288e5914822028283941173bcffdb6860d39a3d1e629d356c59377671c5ffd41c4f9934ef8221570db084eb6199841b264c0e40a609290f8e2585e1de45547532c75207cf4563482ec5e4158d6817a7162edd9ba2b24eece188d7e2c0a106c4c976e536b2c87904aaa2378b58b5864712a7693498a9ae274c48fbaef84437b18865c274c583bad34d3b02f964d0ba352353c7d00f2c21d754bfd58d0aa803560d4e0113096cbddc783a7d7103a5621d781153ddb29d76932b265b7840259fd1b796db0722b934b90db778358ea517656e9a835d5a9528024881045d74718b88e3a25a52289e2ffc60d2a40d466a40f9e53720174988093e0b5cccf7f29b3a7383213ee81b09f9267b23f1c413c3314b6a6eb1a99bf424975a1129d6b6487eefd55afadde6648d7367ebceb72f58dc5d189725be5989bfd58046e3d7ed030ec64f2919c6366aa5073ca5e35a264bf0917972f0e70209809a2637548ba41169931235a14f985fdd582a3e944637e0e7875ee94d4ff4af0ffb8d73f8eddbdce2a728fd6ef6611bd5e9fe62e3e720d0b8850ae024e924b02f4915979d762816d2b2efaae6dc531c78bf69947adb64be0df35525e28b52fc39653de3f3bcc5a04d068c12f06bf3a39002ac5d1264341bae2173ba3446c4237cddfd24dbdf5e329cc9b464ae209b304361c7b183befeb106297435a9fbde78269ea577fc58f3a43e45148d1df33eae5cbdfa735a948eabcfcee74c3064b3d8aa0f0492ecd6d00b2105418e1883febb07e1d4c537626c7d0a1bead9722541eb6063141a0f9a797369b83309a2e7e55ea6eb75e72b2680c761a164fbf05225d60b92056c6aef7e9501bdfb98110d8003048bbabf5c193c080f28a15d0a70006ad6be7af110dc402f5fd3ff671fca0407dcac4a4daba08171db672291b0b24d7f6b215aff4c35bbcc5c42835c2965269e2da0aa01ed7b95530d9cde12f55dbb82fb5ec87fb9e51735101053f5dd0960bc149323f7f05e515001857af1a36c653fb790025b87a1c3503b9b72549929415cb7569505e928d55cf849b084cce62045da14ea3d6888e5f81f268cad47275855c2ec9496a60a74b288693ba97202a82af20ef49e25647f671c0a2037b109d8e72c53499fce8a5acddc3ed430cc486164d78f99dfa63a78b4b676b1e3385ac29ebeeb21627f811c762803693051129cfaa2bfb44203adbd28a13656650216271784da9a93ac2e3a17a51b78f1592c6fc64e8b09a8a02a63a3fac6c69e5b919ed4a69a26b8c24036889c67dcefdc540f07602fcadbb15dc3946d8ccb77a40013711722ff8bba61cbc4b6515f6d8bb48fae3a4dfa0e20c95ab04385304a148fa7c40f34763eb4084b83c7679d7a86d76842f645d161bb8aebce345e7ae41dd7327e47be237a44eb488d1feaaeae3fe513a0adc8f607109acdf2560ab60610a744e4c5bb7790f409edd745884f83488005210c1aa9056b1ac0ec6de4ae7609f72e1ba862ad2cafac17e622ba838bd8d29fd18f9b74f55a58604f3cf06aad6fa7b091e1803436aeab26242e9fa32fe5d82293b3393820c5fdb466b87a41487439531e7864cf976a47e1c2ec059ad53682c6e62c741c51dbde6fceb823f3a5518432d09b24ca2603b9939c96407ac0d09b88275714ae1996a02631ce868b9e3105bb486aef70350c1bde9fa0509b5ec713490fa1bc89fbced88f042461d18479421c44199459ccc04283fef9c8a0734fd13875f80f407225cd9115cbce6548f8c4206b158d37b283a96ec130d6917dc79559bbd9a5e9405e05c8bfdea9d45f9765ab676e4d24d1d84beceb71932f46a2b623f2093eb8cf9045abac5cda87346f67e5fab4bec86cb7b20d44bc1674ed424e0c01b6deac1bd2f5a8444e4a1aab67c141cc603991881457f4a94c30cfd1291b2d321aa4547cd36ec6b3c08be703f5d030128c454c28341b44d965989dc46f990d09ff6b4ac93e48ebd6f36d64c56df93bab32d7e96d059af80c1a39f4b63d10b85650dfb99a6c5637173feb770f2723586312046c722bd70c2323e3f5543159ab55a74c42bcd2794e4d68dd5b4e25c61b996a8f3a882e166f7364f1927069bcb54cea94e8dc5fb308bfbd1342fcfb336c016843e5b6d8cc4c9463679fc8fd6b87f4d38439a81ac6d322e178d759707a49bdf82c215cd0b70137482629aac8de282e8910f1657b155adafeb22160a465f7a75c697e0a0237f398b231e452c88dd7b7b282d5e1f489c1f41f8709bb0019db7e6879ae3b9d1027baff2a6b74b30e013977d18d8ee8e95afe2635e0e6818e762b7a4f86fc3f13654a417dd59dd238441b2cb8f44849025156f93532f35902f2219bd99194aa43a4f338e70c8e873a2d071ef0c91b2efca3fae5e78fb4ce56b9d22f74beb2d38046ab9038a3b6cf7c20869739bde7e90859c0a35387e6d29a8391692ab15ffc6cadfe4b6617543e9db9ea72e87f31ea521cc2d9399125c8dad759286b20cad56f9b96a2c1c11f816a8b114db83e4a150589d746e7e46670cd800220d461e8548a1872588c89a184a063f2202b22030ca2fe9bb20cf30070207558821cd6eff434e9edcb3299cc75167a1c802874f1fa75b4244311f9124ddb40a094e38c6ba5856d0020fc045dc01b7f903bfaa23052181303e251a50aa669375358452111779f2c14e78a5b1dbd5a7ca8d1f89651803bc33fa95f049d864e9a55a57e208d428b2154a15b0b1a4c948a86294d3417d5b061caa0ea90a13f748eae0c99b055b11f1c28b252143613bfa2b0f881392d2377513e0ae5e8c7de098c2c3fc413fb7f6a77b6a6a70c5af8a962f3fc73b9758e110371c2dd39731336a6754f4aca72628ac4119aa8cd268f50c576e0ca0305f34f4d5c2e5bd5551bf9be9a82365968efd34ca0630ff29b2d348724ad8db80f519362ce17704c136d4b026a9b25b8be92f769d3c7e65fd465c463169ae86d2910f20a4830c7273cbea9b6f34654dfbe20c4d213ed0d45affce38c57a576ce479b080c79c15e91ff69554740ade3a8b95b437a6640cbf4906e52be0a5a5811dcc348ae421efec049abf9c411008886fb7a23064a2997cf287804d3185efd792ebf1887591e79f176c9ac38b03a24f757a4447becd63571d95485505a065e732a8ce544d6a45cdf2226b6a150c554dbf93b95355380e7fd4410139a0caab04385085044d38667d6052e07f7c456b576f0d49ff506fdc55c52b1452301d928c875cec8a92caea1e6e23f967821f66de85b9ad404e56ae3fc17078adc6040faa5c4172f5abcd2cedbf07d4ddc7f013368e92de6daba6cc15af3c1b1b14a69c8f172da485fc1d5ca26018979283ba8a30bbc1296dba594a3b53a70e7f700e447551d738bab02b98b3be1de3fb4d324315be26fcc394d2c45ef97f571c7a110d032a835b5723b15be51413744e2760e9606fc08e4d39b8425be267fb8b5e5b57955c9951e3295e7c392f383ea0abb1ce6973e6dfda18ff17fe8182147c7410212b332aa951336d4ea235a8ed38e79f06c9a38ab0b8e7a78c49643f61d3d80a0e5b1907ae1fe4f47b830b263b0e218fddcbf1be7d5f1582033684b650d71cc347399b899ea89dd05eb36801754767b9bb3081fac89ac8d42a196d851a4d90fa6b71296a42c8d7903a2582e5ed4a04218891ef8f7883e0c58c301b7659a4024713bdaa332c5b877e1cd1e6803b604f71727f07e68b6d7553ffc1dfdafc427dedcfad5773ec618732718f6b5d78fe9bd47bf6a9d3f7dec7bf46da129331e9cd045041fd8df82b8df20fd620808c81d6e3848f0833f31fe7e230e85e78fa1202cdc3c25f4d00f82be3f0a086888cacf34b78084fb3a3fb164b8d04f9f50296b86052cbf1016f9ea8781056ef15f7805f70802e68c0b61ae557a20ac9f7825dfb3860658b983bf76bdf9f0c3b7c623788100c3f8f8c30b372af1560ac2b405d760c35c7d1420304158f5bf1d3df0c8bbddd079083e2c67826ab12d3695ddff94e004a06bde236d65b4679b5dee9fe90f9ca323ff60a320f0deb8b7c110d9eda6a77f0425c5401d73bc618b60091638a970f3225b7fdbe7c4b3c58ed30717031ff8bd7b377898f5c716992abb41dcfbf66ef030e98f2e9eaa25818af7d5bbe130ec2f5e745573fc74efa777cb61e82f4dfcaaf6f8e9de9f779bc3cc5f9ee85529f1d3dfcb3ba3c1c43f3e3854090cfafe771460faaeef10e0f92def3300e15bef736003bc8f37c681897fb678aa16f994f7e49d6930e71f060455a37cbc8ddfe95f362e7b66f4bebeacb33f64d1a25aecfd7def33b0f82def30a0f0bd771c10f1ee77185079fff72c95869411e2dadfb3800240f0bd3ebea037cb3fc837d816092ae36e90b8ebbf2f000618242b740b3dbb06bdfbfdf31f8440000125dda075f0c1e04effce050bd03f51a46f614d6950b9efff55d0040e026ec208d6e60789bbfefb06660041b240b6d5b36bd0bbdf3fff41081428ae68d918f06c2758dd27ff8348c2220ad0ef790295fbd83ffb3c176b7f78370e78dcadfee0dc0420bf4afc82197a7f0178089efee09905207f7bd9056978ef02f0104cfd811306a87c1dee3ba438ef1390c0a517ccae58f827a8de1bec3bac143c8d2f106e0dfcdc14c095a7cfe682494b90ee29c8dbb00e0c4a0bd47e2068daba15d4ab9061e36707a06c904da307b5042482d157857604c11ef59e66c4606e86333010061196a8f7f4430663f31c808120e8a045bda7dd22189ae52e0c81be9c033048ca9a78bc1c780e3e74b6800cf4df457257b7003202dc4802b8b8406e12315e7fecd8f1102d0b612cfa196791e6514470039380b11068553ef110f8af5ba1f163898c43600e2f773b786a0334ffdc69ca56a7133e01d3fa5ba7790c93fbd1e163c9eb5c9220d1113d158f9e8085917f9ca497d5e278c37a19a0d2f299d8e50aa40929b327277a4eb1d648b1de739a8a90810fb6e3f42670c9d321f8f390b19211b5aa751991660746ca9026883cbe443e611a1400acf44a031a8df3d15ccb872f070dc52935b3c577d80762e822f64ad9c26585fd6035c7ca8b02021467cb0f106a933da807402a2cd8a76cc098c018bb64b2e332b60e081726284a9d40c54c06463377d09ee9e6f8c34d4fdb45a27f31b79874d800c1609eec9cea8f6ea8744bb80903f6892540d508f2bf3afb373231b105071bb7ba7396cdfac04fe079a00c20e565070032197282cec069d2901eabdfc937fce04a033f7ae609c8890f40f2ab4066f656b9e226b45bccc94ada19cfa3b9cf70344ae02347102dffd0feb6e334eefb4cf8e4a76820815ed5ae9deda26c4d530e3fbef5171640de2c036e7a4bc6bb843a112bd504e0e21f5b858623a2c78b1a9094eb1838d23ef955d4601056274cef58e7bd918787c324e72ef4b5d580aad639f30c79dd4fada271b1331f48c059427717acd9084c6d71a09781e41665bb4959f1c3f3068ca818dafd48af07b36274f0619d1fec0d09d13cd155311a70e5121232e8237ce161bbbd0af08d057858028b4d0c2ef062213d6283a4da9a90cc4050a487baa23359e1a6011ce0d61deec42389e25045158b433b8885bcb330e6c62795906e8e6ebbb781a30e08ecdd44fa19a08cc4509a629e7c74a74f21fd34e92d25428911cc531381427956ef38bb00cc3b91e75829fc6821a267fb4951b9db1ef44160ae080a6d490ca6e6c52cac931a5f252ab05ccd67d1d4dd1a3f863e7337e8550736d26bd5b8c17c628784ba8a07b08aa28d9bafdd864ee602cedcbef2fb636af54c19b33d979ecb41e2895ea153740268c2cd9717d664d1fd6081ae81feea42fd2563f193f36aafd6429cd613ae6e5adf43e17741a6abde0c3ae902054ec9efd39b569a69d99be7bc4c6018a06e35848bc76480799d02da2191b7dbb463792730a466838a77264c82f37425a3ddfcdef7e11381dd34368ea21c2f64b14300e77bf2e26c12e0a3a2735c7613beab18375ec07062f8f93a9211ef4dd55ae530c806a889d6165bc830b89d46d88a0e943e9067d7da919a81f571235b7a1749209d6537a733441dccf78ba1c3d2af2dda34175b0588b6a4763947917b802d08868a35c60a5d5664b934deeecc394b5e54b573a3ca283d7185058a173ca4cb370a0823e864bd0f4eb16344430f03d55a35f712dae610acd190d1e6a165b1b0a75381d5c05d85d166c55ba352145c8ba144f5e8d109c3137d8cdb4243263efcb30432a82370343e2ba88f0aee4b45fb5a61be53c5d82f12efda50a651621a3a4c284aff02f88e63a37bf3e7c8ab802783e4aa6f49aaa085d7a3da2ead140e26c801a62ebd79dc979632d7c6fdbbf8196ab8b333bfc527b8901afa42ac96bc8eb152ba9860e79782ed32284e7867ce2b61fea54753ebc401046f15d65888a92d824ed8832af2e670f2a0d84e0a641baaba68aa277b5e26d90dccc33e882ca344796b4783fade8101b7e5d66eabe01b2aaa54db0ed28933b3ba5b324a3da611666b5044a7f2194199c748029f2e1ebdcf9a1f4b722edf111c9b4b2da9e5092f2c90499964dc06d13a7aabc52e54611556bff2f3377f049d56f91290284b5069cfdbc8fad761496290990ac60eee4e1252738486bc53c8e876ea78deea6da85655d32177cd4c6071b525c1cd434d19e18394d34188ace7eb9c5a5695d60c331cf814654b0b3082faaba72296d2fac5cdeb7fa5f54d2f4f365ee2b0f474639d0a479e833ec9b9469471239b4498eaf736d58daf63ad3150b22173aafc715d648ac04b50a5ced1050469f3174201fb8c40251e5eb34aa13724d03b6dde213e496b27e807f8e56c987a27139627a80ecbba5b514a947341c256f80ab2008a87a19e223b6dfeba94ed659e4dec58b546fa065c85d7af73442417e40eb7a45625573042963d76170fc1e800109480f778f5e23684c89493b6809cd98e15252e1e309a458e89045878c45559c957c7324e4a074f0ffabd8eb30f77685f982cb146e22592a747080fec7de795d2127c6515b7120e56418cf0c56cb90cf139d3f4f1a05907269a9af138024aa4c301b0e19453d7d722f18e8541ec01780d9df18014a55f145fc310042aae176c19919831b3115c7ba9fbb0c11c5c9608268786b485c63f75e783dcd3d838e04dbff5f288ba0390a9ff6896a2991d12c070049dcfd9f0e1cf999f749eb57f98d2f521f1e8e88301be62baaf91e7e89715fb4458be63474fc96ac347d0cd72280301968011c6de529e221d611bafbfe9b58f2dc0263fcf362fb021419a3dc41690adfa89022577fb98794528cb688785d562f707880395cdca06ed110e4784f16414cdf03ec04c3cc294f439b0d4240c2e245f5aa9065629657c5f4329544e95e39ca6cabcd8ae712ba223959cc8fde89af86698f1c835df8d349bfbd253561d87b5e118f6f48f9529a9ec4775a4aab0907ec8227aa8f4b29f8aa9b88f9cd62c66477932ee37de0b1436e59cbae2920fa2a1b0c562a436cc43a110adde5b6bb7b2e02b52f9e5c5ae057490dfb9957f95f5a5b619368fd3d4e5fa3377af8f7cb7fb691dd4d8de650b2ec83be2aba4c15a815e6c64814171b827befdde4e4b2390d13d77162dcbc4f60386c40932b8741e8ebeaf53b344caa9707978b028355019807e55256a78146a32c3f4f711ded6f8a742abc14c766cd73e2ec90671d05fc25177c27d7de69ce2bb3de41581cba3861d231d81fbb1957af0bcd8710eccf026658a43c5d55896ee845853a62e1ea6ddddf74538cc58fd1169812da169f69f3d60052a131726b0dee72afffd9e1ad4f3eaba8c549f5f469ba38e265ed790e0632026b373e2c4d4b643f79a00cb8640d28ec0f9e5a4b61948ac22ebd7baa96855847d7ef28c4bf0111ac1e7b9d0bfcdd7ac452bc44ef3c62bcad500ee34c7459f2e95b9c7a7a68cccc301ab81d0be7daf4f169683fc6cb89accfe73bc4441204a6c6e2785f6217f3bc93991d01052ffc3e2e1905cc49948dd9855bacce1beee5b04ab49f02ffde7a871c0b8db15c49461ddca3f13ed354d41a4c012d2d1f2cc5f1083dda353039005be48bfb02783699dcbb498fe4741e200703ac7aca4111c70c02daa3f479c865cbe782595802351affd0cbb3ccdf241e33c587a906ec7138e4bff3a34998d437534eeaf6800eb1c85cf16ece318748fde0aeda270c1b047574c476d6180a793562db34a6905b4f86ee5019227452fbd9a1af6d82997ec20251273133f1b0afca3db2972bd54427b6d4061aae379d0bbbc9e32543db6a177b068c54c1b77064c32638dccf0be3089b7953bee5a950986debf1e7ab820e7e3a482c60cf9667e563716b4bbaf4be2ca74a6831918e52c236cf6a10a839aeefcd7fa555041157d6a01a904296a412578a81f00c0c0356a19f97f0fcef73766f3f672bd92324827d5592b7af2d879899736567f4b217aee679f21550cb2ffbad0d76cff363170ba4a1803d1da4645ed965d888d29bafdd26e539b3dba0509ff6c81798dabb14c021c0b5f4bd30dad7d6cf9b4c86c93794aa341ed4646a81d4ee548b18b4f1e54cf9f734b7d77a40b929cfa9a8f4468da24f36a96d72edb01722ce93f1baf099bed5ab13a0e22aa5a835ed74af62b4772700732d1260c395b9884638c4318fe3620fe2370e1879fdf3fbd9df59b3f0687aa508442fb105a6b40359b74c10da1fd9c3c0d5e59085abad81d6f989db4b72977ff9d7c079ec502d1e2fd579391f3e7c1c76e64e797ac700d2b228947f421a3f367b319e27cd83bae6903efd3779b029eadf2ab2c32bf856a673fd5b7da0de7d677f0e9207add8d2be93dbf3bbdd1f6f545d234ee3c52010ef80aa03802ec6f822d209291d8edb9862a6426ff2fc845784a880655a07fb56361f632a63494ff5350df07a1a1494ea1a4ca97481846a423e2032ceb9b6827b31be9ba5a60a4b9158f57e6975720ade3a7c29be2d218bc9e8aada4306d2c3b909937709305f2d849e37282f1531c3acb1a95bf1058c9a89478e1edf5c554393ed8f40be2e6a81458b5925a3ce98ef68ea7446a192706e2aca8cbd16a1217eab4fb8475bc80dccdc1497b3c321ae36c08c47212cfc951021dd2a8e0ac5512c3cbda312d8c97565239b1b8e2e3bfdf2fd414510a6d1674612c50b3b0b7774ad0f1fe1855f04885adc5fd06c136fd12aa2805bb28e40d5d76ef1ed5ba27b3c848bf49179ea15904dd5d27728e38aa2aeb234336e2de1a99c5fe1ceb2e526ccd8c7321f8b001aee568ae29cfe5ccf01a92b5ab314e456079cde615f97e2ddaabc40698db594df074459261e8761fedd9cd2900f59e4c7f882477005e0058846b249292b0e1c555da204f297ab41882023af429dd4efb7d0cb5212ee6707c72622906dd7854cc90c41aa16463dd5ac19f635c4d1ed55acdff1b86bd7f277d4c52537549f2879f6ffd13eae3d49f15c1124cdacea259a5b5b43c4e6b085c4af0ab832e7f854b5e0ec59a56f09ccf12ba7243e2498b38e903f616cfba2fce03b65bf1e9a270524d9bf050a231e478ecda32ce7e610e8a7b8d0817ff1125495c6568e694ecff007ba901c338e9ebf880065d72da88e5da27691e2924e61bdbf6ebf43476684b86f1fa181006854ee750f48974114ac5185060ebffc4f923a2f35c9435d7081b87e0ce1fbe19615b0bcc843a7ca9e97a9cb590e347a9d1293a754b45f5557420529308cdadfc3df8201a7d677c4f3ebb2d4b41cd156a74c6e963e7a4b02f37e33b0b2969691071a805137675f1ee555e57b1fd2800377b72981e6737cb9bbd06f9c6bf581972aa254fdb81fdc4408c5f285b170d31ccab50c3a822d820a316ee896ec15ad2cd26605b9d0b3bfc4623115be73e923d26a8164d0a788b2b30e4f01c0c4b27bb3b6829a7356a15da4b9f4848b8a618a1a09164eeb6b6a224641c234ee7464616f1500d2db8831013df7d62abaef238b462b036cd498fed25e8b693bf931528ae2cc3d0290f62584b986b203110f88f6ccdbb6f9567a922055038c14220ea7c798928f4d03835ff0454a5168204417537dde2b066783768f5bc9bd108a25258c8e20c2b0822c0598bcac53913ca8958b799e3f7df5fd91d446d27976dc2872de960f3bff68eadab17eccb00d63ecb1643b061e94d3816cc2505bad9d48f9f9fa41c71325edfd578c94c6cfba00ac28fc3f38c98a637f3386dc46126b8ad9030d88157a5db814892c8282520f28bd22ece4455bbee08029576d9750ab6869340e094793d319839d84cf8404b4aa4249cb876422aa4db647124224e36791247d58d77278bee3ca894fa169f2321a47253b10b270c24acc10889182439aedeb4df2cde21ce20fccdf73b7f0192fdba3938b77ceb9cc513a049c24421c7dc5656b17919827de29b29de0cb523850fb1011bb6e4c90d465b89431e17dafcf3abb856a81ea67d74898194ec0e7f20899d4d4b2a93919405e352253636bd457d5399012461d0634a90351898d33481ce0dd22f7b4943d3ad63e50ca1ccaca161ea481da56cfad35b47d3d2735830f41bd8e2b0852d8452221091d4fe41dcc490fa90b09035120ddcdb71e476695754191a1e20213609e1b55fc63ce41a86842be00c46f21a7c11c026a6c7dd104460bf9e6f2e548297818ade23c7ebfb8ea8e4f67cbc00717cefcddb62b700d08fa3b15a57247e8b958b1834c0cc5320bd1850a40ab314ecb5ebf5497df10a7fa34c9a47bfa77603c417b73b0c403b8c3f0f727068e69f45d4c2b71d75b878faffc077c308445a1ad4167ccd21611bf24b26b3a18fe481bfe9494f107eb18a2586c631e49d1cae6534f09c1c471108da248dd76319fa9e0c8fa1c74d9ffd8dc7e26b5413165972c5328a745cdd817d01fa96cccb6c5317e9bf88c6f16572945036f19a435949b54fe7e6b10002eab1f9440aee9f0c0c2a083efd1f42108c6046385f0f77d0fbedf60748b8b1ef81e21cba1a8003a9f08192c0aaadf586472275e3c6680be7e2bd61c7b6b88a700f9d14d890ed4ac82920f28b8129c022f8876a49a7fcadf180ea4328c8c5f7c269a3efabf157d291f884cf0859294f577f1230e7e9bff0a1acdc6fa0a5f353e7f384f0349f67f6a8cf8411233e40ca664a821f5791eb3eadbc9f2c11a690afef85f7db2d07a401e74be61ed478b738e4ba94ae4a2492a14c75b4e5965ae5a05334aa1d15df12ce8517750ec88232c5812df90cffea5c527bcc871be6a0bd5a0a935a3c5f0bc6dccbc78a90dcdc0e794a21bd6ec9899ebb6282494f65cf0d183bba1a740f84d356d1b8e19dcbe4cd7d6d582c7c9e5514f141561fcc9dbf8a2cc1387c24adadec6b47b93a2fd108374ea93a043ace966e25976df6cf9dca896e936347a7da246f10209eca4732762040fb63142bd979fe19bfe88c124809729871671948c13d6a574e8c856b02fc4133f56f8a174973775106e1f90c4caeed415c0ed5840394ae41a799cc79e5bbd602ba90ee4ad91d3bd56297ab6f4c95b93e1088b1e92ede689d9088d6a1d99d30172c7567864d2ef89108b315572225a61fcff543cf4838ececf4603f28eda480c1af2dab690fbf626be2d28a2a90d39f09985b08d1196a97d98981068d33a0221ebbb0b05bef0271e02a2e720fdc49637bf52beb89c067bd6fe3edb69380f15ca1989b83500ed1216ab0cb2808b186c8075c14a053e91a9b429e8455e7e34b32b9737760a6e89411c3fd308b17c9ee374acfea2c94f3434e17314db5de48e8caa3b69be7430f920d77d8af2f03de9cb842dbaf38ad3486b80322eaae6d2b45d417d6c587d2e94edfa56fbdc0bc9aaac24d37d4438cb6835508bca9b0b894ba4365ff4e410f0b6ea5754704481913db5cdbeea99f8be9e68fc5c88224bf8f84f7271b76de062326e65a15b900fa8813e7fab38574cf1bd82f1ab314707940e3a1f340afac0d71b4063206147c102934760a8e6f91dc5805de2927a28cf3c1fbe1f6fde5399b521602c72fd854685fa2a8b02b127c2cbc554d71c37331441d99e1329c1f5aa2c8b13dce546934ec9b2122342084843b0dc67d6d57a2d0918c52d8c8760595667be2477b93b55f6098971f56d4e38c016ae6a3f9388281b73831c25856350c3428553c3c3d2bca82cf568b26bb30158adffaf7ef03d810684d82d874d42a7f7d8342d18a91a9e0c57647c5459914fff58df8ed60469ef734d7fa79c1bbc49dcc7b1b92d37250c533809c379cc14ebdd2df5db35ca17e5a5f8c0fc31584d649f6833b9b37448db2c8eb8a3157562eeb11920bdda6ecb672c0b1be98057c7e9e81574eb00d78f87f11ea19f995eb96a4c72a44211977188de26520b5ee1c2301c22b298fb9ec0e2d0e1d9206519a462565bd4357ea3423e65a982707a798a722046243f039fbb0a5301d0b6903865f2928106bef664edeb2d55243f1b34e479fe04e35646983d2722b77741e404d8610f2b1e5b6b78c977d5d6e992d8198902f6d3ddaa4dc535b7e26bd98f8ef7af29d760f572b045f2ad2ee2acacc024cbe232a78c6e76720b0e0e8f618789f1ae94f9a45c32122f63e0cec3e57717c1fda841a8763361c1f35d71c05c37c19c72c350b30377211e50096b9ea44c1b53586fe89107321f36c240ea042714ef0045d6a5c45615f925fa1a0e0de2b77bd7243f59f8453b8803ec5c3eafe12b6b5702e0385775257c41f10795601a585c4da41c9f958da6ba926e351c11f102afeeef16b42d0d919f00548a4cf3e568ea52cbc770826908dea08818c10711d197a77df5ab2ce7adb8b1a4df2b27494cefc7d93b48814def865f99c6aa4596325d81e2ca0f4d04bc73cc1273246823275465f382f2d5c182d8d30095ca34aaef6723ee44996a4052deb2b805aa9ac1a29ad368a43b53b38b5dbf5c9895a54f138b07dcc6ac6808285c0e8a44dd639b0372765ea1ef29e28415ad87aac5617d88abb49cd06bd8a1c50e6ccc6e6cc3aa3811ce0a7ce11f5c969c77d814788f771af267e9f43ad71bc6bebfc17331704d570eee6d1304c3f6b6089f690e136d35920c8aeeb3ba585f6f90c68970eee14af2d2519c86275364c6dd0a94562f28907326767e7ad54757dc6aab04a27e5d6ac2f0e2a8034ab15e55a7de42ee8a830456c2d5fcbf70c8bbb14cf2b1ae749237bb1ee68a40a528b2d21cf22a362e7ec35586e7af7a514c0d170bfc83faa16b3448de7eadc6c0136300e0f4f7291a13581f6d74a68ca06cb4afe21722e2b1c2935d1df739944ca121cbf53648f5350313a5cef0f202c2d699a646737f3d3187c46527bb95009e02adb63dc9c5ccb43800988b0887a62ddebe08f9dd34d6d9e6f2567628db64790562afb2140005a2f6e282f4ef734d84714dea81a95796464b1262529c51b859b8a182c5edd5559913e6d2f113ab79789d5a43f45414d61f929f4f01064076f32239133598ff0bf1f51cc969f7649923a0572475ace847f28ee9fec5c628e5c291b89e9e60e14e2cb6e7132b8246b6e1c5a9c7dc52fc220f02b5a91e0b9df76ebba510514fdbf34192109655f212d62d0cded4dfe6a881bf27251ae6ea560a59111cc2d37742318d2933110092ff606e058b573acc1fed38cebbeb0feb6223f4054413b229ce5b235b8910c8499fc5428d2da0e94554612b605a9619120b88b835c474952122e1b1d1ce7d201588621148856c5bdba62460f01f601d1d07485c85e11cb461d817d21c6e60a921dadb05d80b3b74066a3881c36144d630dca57b2b86cf6ee95b513bea77250a7af4456dc2fa88423e5617c3a8ed121cef59333e2e35e76f4de1aea431bbb9efdc9bf6727c32e92b57598c58746707004c1e045d90775aba8bfc77515962c9cff9331f90ccc32521795c18e7749867139e82f8a1ec1ecd1569913f7a8debb82f31099485198a007f67c09e03716972cd89a89a31828c019ef49eb4c42bfb684cafd4ce81e315701531b1505a7c79806a19248140e9518396caf1e92474f3ae08313237b9e271ac0c3d6398b252ae2754c8dc4644f5316eb0b82afa1ecc20d9724348ed94ee69caa40278e366f082dd803ace1fc55f07fd039fe94793eb51cff0afc8f1ae71f25ef879ec35f91f759c3f9abe0ffa073fc29f37c6a39fe15f81f35ce3f4ac1a3fd4edfd7a4e878a27a252c216747dc788e8119e96318a06c0672dc0320c63d8a7c3b9a9488a1e318a6e28042d6f16a5dd76351b2b64c4974942736208477b5bebdfb32e0517a56019e80a4c12500a5c75f191ca8fcced1356573516ec3af874bee0618b169986666689d9e1b7af2375842f060f50bd1c679bb4da65783eabaf6a3db24b179d0668b0e85a0e5796fac098560e29a289a400445dbe90142214bb96c008d4002b7aac8975bd3f6b048e988d5c381bc3eb83f78ea12f77522fa695f990ae30bb8c61fe1e2776b5ab943f77ce8457171b819957b95a95e663417206e1793dc7d9663829ca37e22fbbb6bcfc2deb51def4cc8fe9e8b784b67e7e72068482dba183397c3b78bd9c852322d9bfca991297f1231cac275e17cad9ec5547a1d56a0386eda96e1abe028010df3a8364fa249393b2ddb782b397cfdbd5c741b01fe54e53f813f44d0b2a96d3203a5dc63a53d3737deb23f4e500bdcaa5e962620358afcad459cf18b61c44719fd9a3eaea48f93791914bfe3731e33f87b80edb689ee2152711dec73b99642305704928415c58b59591abec1a7b84ae16042f03c871a8b57e08239005336e9cc081c163571c0c2102172550f6c6cb0ca4677833316eb22395207897f3dd2ba2aa403bd3daa7c2d9cd021d8d90a7f0cfded8ea4df72ad30f4747914f3f633ec985c3ea2b82aa3651ca6dd65c0482c318381b3468f251a1edf3c9e1d4c1af306ff3d164e293f9b1d3ed730840f0592feab562881afb27fcedf554691c3f33701e6dc2785a447b0c63544239877b04c393656eedb551a18d67272e1d1e8053b067f1ac8da2e839d7bc5a43f2b2746a2b9ec8447fae3afd1b7a69385d56ac9480236bfc0ad1148d2243e872d9174d54dba0082492e588af0d9859a037c223c7412df780c764f711eb39d5e332eb58dee472726ee33f1d909d020f43a274db6e9b62fbc9444be794fee9590a5dd39ae635c174f10a4aecd78f13dbbe0b90b56dd6dc4e6034f80556802498d0fc0390dbbeeb87b6c3b86ab34173b9a3cc5cbf06420aed92f5dc244f350dd7c0da603656ec863e6495cdd49ed60e0ca45f424320a418caff501fd94cb9e17c5349ba2381a5d06c04610658c4f0d25e1a8aff20c9cbdc2fa5b3fb31e91723295cc83060edc98f5be40df421b770c893e6db912d92ddc09a766a7606cb085a5e8a4f93fd999c0145f64f1d40e395d7cc9c07e118d4a483c1bfd0ff5013463395ce9192c943fe9d1d6d5ef513cb841048450d9b43d0e4416397e6056c98b15c36c3848e19a024de172bfc1dce9c2d9aefd0f2157342f43481e743d142099935488ddffe9adbf957e9953c3c8edb9ef15bde46d5e1158fd01aa37d0f8a36fc53abca9193bea686debd5338e90072f4e12d82acbff81d9fbaf840d6b01b77e63a492ad5fe6d77da593fdd0f0fa816181c56fd2f42ef0c4db5aef0e10ae6aae9797943dab76b68b4644ce349f09069bc057467446825f9a106c79b6c186f80365a43b18c011face44399bd7f97f76f36febbf2105668202e9fbe6ebd6390961e67fe9173b71edb534cf2c94a61907a9c6a9a4425057b407bfd5274bfcd78e3941c2a233d6a7d84b28f637ee4c8ee0e98136851aeb1ea87e4f121a18923820fd52781f4d92e4013d89ac109c3f75f7fada0d7f29d1186d4be2554c02af5f502d3081fafa7ec1b4024cf04eb98428522c361300b64eb3e4e135cf15a1a7895f0baff60c1f8cf4b32445a47f5495f41bfe0b0b4c4c0b021a886d515b300eca9a0ebf9b79e3f75f004548008b56ddbf3f729f919bebf9a35ae2c02314dece13336b1884df9ca7a36d3cdebc1a160e040061a081400804922f33d79c0a6387f6f3dd4ca70d9841ddf4af4ad20d377cd24bdade5bca94520a2e05d104ce043a9e8bc2eaf595a33b02454bec92eee998bfce9d0f79aec3c58f4532d8f0ffc61dffb1c8f2f6fc638d30ca883aefd13d07fef32066759dd8b187bce289ae06218c8802092852b8490201153644a44c694304ea098c07052e64b1064a4d13352824d828f1d55c60d594a08222e9c1d71c142afc38f3fdf55a5f07762ed76f943d7f5f2d86b03b6719385f42a008321d1b08a962c177464beb4b93e7cb47988bf7b5de82c1aeb9314ecfce627d0b8345d8101ff3c21d99f3acb62464ef916ac644f9efd14cbde6d040bd015e73689a3ce1f4d2b9d33056a5678c92b7f2bd5e303f95d1bd6c7c3abe6ff5679f9d7f5842cd3d11e5b98ffdb1bff391710401c9d8e74bb1270561e71dc45dd775e228c5a006bc107ae73e3ef879ac9b97443ebee7ef94f73b1d0ff829f2d010a4582d0dfdce0550638c53e93b365940bf5fbb36fdbebef6a97fa4524b1c81749c258e3d39531cdde5dd3ef553e76639d939a9d43f0cd4339b752c14db6b0d35b4beb6d71fd7d9f63bf2cf8fa5159faa688d173e6dcfb6fdb1365a50f3b4770fef3b18ec6b13878498dd87f72c8e45257c2d549ad2a6f8b3365ab3f9756df38c837d4018834467ea03c21814e84c7fd423bedba5cc83a450d9bcfea8487c4361c4c6294e0b6b56a8426b207888e2094a05372b40d0dac3fe69800f51cae46095a50a476b8ff54f910d4bde2cb1e1ca8acc195a5f29e108126dccbc30e40aad6108d24585295cd840c940eb0da4a8e941882e44da44416b2f553cd4a0020c5753d8d07a2a7dfcf5002eeb0bb9b976251c7b7abc9eeed12a2fe3c792e72668d1bc0cb0fc137f2c79ce12bb2da0b4af79d8fb9c9536bb93d9a0f18b43524382a486a476444c93134e62c474e75f0b2b5e7362b4bc7ccd8979c2e2f4c38a2215724032260b102a1634018216927ec0a1899b1aaa9cd0214c9826aa8e708286da9030564e98e084909a919a919a11269e986862c249134fb52326724de46a29d488d48ea49cd488e498724cc05c81295233e18b1b3050609a8099029344f5852aea8bd312559668aa99f0254a4d881235212168eab14452cc4d68b54acb337dec30afbe55a2fcb84d49cff2719b3a27158eabf4d35bbe4bf40784cde1e7faf042fcf4ad417d409f4d2d71ecdcb74acb412f91d451513dc1d0101505a8a3a40da87f3a0a080808e85b0e3ad75f96c6f49c8ef2311ac04f0d3078b93a6a9b3aaa4d477d27d44aa819453d8952f29af3a2d465aa86d4e5e9eaeaeaeaeaea8a8b132e4a5c90ba38b1c2a5a94bd31a306bc058017386a5201581a304121b1824681e0a70455c49a98273e2051f56786d89fa31060d4956c9577595fef9685da5abc458323335611ef6182ce43561577966c2eefa60492879cd257184b55c3d333157f9233c63efe9a7eb76af65ea65cfdd5309273d994af887b52ccff46f934225cb33c69a1c79b6aaf9108e3b3f4e2a543fab7efca8fc94482d91c6d8f87d0bd4f26377357e1d14cfba285e1843f19a709448573f9dd5846397331305d53f1d13f34c777db00e6adcf9f9a4860b7dfad83df9e9ec457f3849f328a13e2e9f23a3f9c951fc6ce2a77392fef93c4e32f358ce7c89aaaa6539902a288de94f40403d3db190852d1249674c6f974f78362512f34c9f5cb5555bb54d3b451e912b2c8de94b8444924d65249318153eee97d0c7dd2291aca808a7232d8de9410c812442760fdcb202a820212c74c53c8bcb05dbf1d7dc96285b78d8728489a65c961cc0d75c1625b92c2d64399a73761e96ab1c96a9f10709df41f0e4b238e5b044d95d395fd0d0ddb3cb61293267e7e5aeb8b912c60b228705ea7359ae5e1df69acb1206025fbe7cf9e201085887c9560745c03a0bd90ad922fdc49a47fe78f3c859f3c89f9e1efd016a1efd09ea20ad315d5d28d4d7df1d74c6b60f8901cd0a4734a3a5296e139ead1371da32e105ec10edfe19b249c2fe1932649dac02d6a5cffa67c8da80fa67c822b94bd7d72ee98c7576f1a7d4868a3f71ec9cdd6328a1f4a16ef4be67b1e79d2f8fecddc601a504e78bad6174cd29e5b7526a4935186a2890e11b895f961b7c6fa03ccb019dd11bbc7f0aedbc82d6386a4641e6811040e059e7be41f010d80709a76f0f956c5747ae8aac71f3ba26cd8faed79aa9875581532acb977cce92192d319b28afb9aba71f777e5e29799fd3670cb26bce659ee9607fb2a5cef5b5c3b3d989319e4df74418cfe6fc6a5d4239bb1eb5352877d55bc59a569156536ab64dd5a6d11afafe2a8eea1207cf78c62e01c5c133c62101f61dac62406529991bd65372949b28afb9366e7e6423cf5338693a01d54b9d579d671de5e11bfe2ae557a480ce60af7909f7496bf8b3d2d817cefa309067e7205ae36a955eff8dd6d00f5686811d4284a33eedf80003bdf2cd944fb41132db1c7d520c1b322d366b5c698a7c8bd79c1a2b6aa66c4e0d10393538a861d2dd72aa49a2e6088c1cfda3098ad880cae082511ff6af557da46c7e1d550ed84755255ad76ee2f55cb1d005db128e2e98ab8385ae9803f5e4d20c61c109319ed594159ccf79cd5955f5aabe7e01bbf5397fd8be65e3b40af3d2f62a5ac57885516f87097969844bad34ada0e4e201aaaaba943de7ac0dc1b2c3805649a0b9ca4911459593c24d0e4d911c9aa4f5261c2ba6266f95f46a65a4db8a48abfa99aad7dc99dc8f1ae7cc0e3d7a2f7b29afc6e83597c6ead388791cacdde5783a839d85709f69d01b19bcea0c19c06e5e9e4ebddd66a230c9966672f05e73669898499253ce24665298ddeccc1cfdd58ffb5ae625155e29d3822e1344191ecae0ba8c529923af9c574e1923382dab1c574f853a2199a8504508aa707af6aea2da3da970758e0c53b370f58a57376b67209344a6c88ff2958ced47f9dd392a350f0359745553b09c15b611a88ec0dddddddd5dd5a6ff5e73544cbf33849aa362f2e3f74a350355928a9b46c93051edeebea1db4592307345c94b556f685341e5a89ed680fbb17876d2f39ce87376a295de71c882e96c1dc60596be98ced6dbd1d9765267ebf3d3d9fa926466ef117bde400300ecc078e1229601062d602c56a80875725e2eb0c5fabc6ecae655d99aab528888e544d2895a4e349d689da87322cfbf1fa1cd660342236189e8024beb9a17586ac1b8c092cc4102102e41a43cabbd080d846344102800416bb5a1a1298a181a980410509e8043bb51f43cbe254f242222eaf1fd7a8fd8afa82f86f663cf4304a00cb2a6c4d3777777b76c1e573b9963c649ff28ed0b95586218a991a2ba95ed58be6b1942fdd66b0e8a2a3f6a13ec3507053f4919a6ebf34e97abf01557efb97f12d457e7b2cff33ccff34079a3e59e7ba1c7afaf0904fdaa0cd0e74bc863b1f695c37229ff18b1f8f87bb5dcc53e612d897bfcbda4830dce8e3d94e97fac2dd27149f6b9a1eff2a19673d739eb2581a25fd6eb25c41eca863a67075b7c0e62d0c98e461886e10a716413f4cb867ec9e15569800eeeeb067f2b8a77017bb5dc958bc2f6a1ab90c1085d5fbe845a3aa14c4739245da7f59f0f75a3ecaee59ed7795ee7b55a5ed7753ade895e178a633f18403dbe47f8e60f00fd907a329eb18f8ff9432c6fe7d1f2395d3164f4f48f8e4fcfa7ebc87a9a8767b218cf3ccfc196810e8e2d9135e3194b8c218367de08f49ed879504f198bad44777737777737f74c468f2b841520ec13409e99c610a5aaaa6cba54d66d0284ec30e49850324b8103100530e79c73ca39e79c73d641e7d37b668c79040c80280bd5b56be5dda8d93adaad63e668f7c451762fa16e76432d86422d84eb6976ddb5fbb06ddff6a19db0f0f547979425d85e73716c3feabcc271c1eb2b47f73c3c0c628da141e006218f8df363d152e3a0d3e094cb3ee39439a6b738e6601f9a62287efd9215f5b20bdd52e7459fe89eec7c6a9743da7826d905b66bca72b0edd73f998fa58124e4e5407f64b93e50baa60ffe4f650e8ffecf0b7374dee3de90ed6d3f01350855823a37f4dbb53bc6c3b0f1cb63e37ca73a432ef15af6796204c21deec07b350042a32556ed41ee308fdce19994c1b399748911086732b883e9eb523a6c8a3b46401b0baa1a2d49a325ee3af75e08db47c902f8e2060b173198ff0883290f105003848ec211080750063f48f91106d3198d019eb50678265442382a5408189011186507d25b7e2e29621072d5a6016decb708db5b7c5f18c66053c0165984464b5324e234172fa0bd855e08d9b16c4094a950f4527ad1033100013caf2e7bf5988b8f2586bb14e85f717ae8bd74d890ceec017b7bf7d25124844af9767ee5d0269d6de61c9faf1cd225530157a88811ea1c20475959f9f581e80a0f0082a14ab0151a2d710cec809d7f421659e17a109b60d701e017aa04354617eb5c28291c5daeb0eba494e212cf83b85b7aa2174e375a6ae7207ea38560089b75ca889683789765b753b44b3be4592c463bcfda6512e1e86ad75c6f8ff15876f6667149e72dc49d3843a3a5ed5902b4b12f55801daa94b2e55ea56c4f7f8057299bd27bbe735f3658858b672e9ea10947d74f87c5769a50a8fa9511edb7b6b884e54d29d8ba1639345afabce5464bebacce3f073b7d0a5932224e5b6218edfbd3190a70c31c30345a5a51f2ece305b01b2da9ce42cff3e9d38b86e841e9db837dd9bd74b47bce3a4a30ce97eebd72c81f9ade0e7eab9cd37539a6dfe01740d54f4508549a5ea580d87ebf46e6c5e6d7c3ab10805236295e25a8eca352362476a90c545e0f70bdbe3a1c84eb2a6543fa2de25d20a46c55b6b07f8c96a4dcae83cdf5e9eb435384f18cfb13c1f5eb422e3033f38a0da4f604907a9f6c668643a57b13e5e2a008209a864073140597a1374e36d880c317362fa04d71ecc48dcd255f2ca82714704e7d9f3893e82073707a90525c9b077bcdc189e1c79e89e44d931b2b57dfbdb1faeecd95003a50a4892d8618a86e4668ddd21829a71da63cc9e2341535f5260acc17be8c70d7bfddd150ccaf351e4f19a7aa275c10f38608120821450649090a2e5262626d2ab63acebe7bde40b57b377dafb9374fdf9ba7cf8a9a347f822c471c31e5c6089425b4a562e48529be5c752982c913173865d8d470c3992250ac849064406286135250e5ca8dd3144a531489fab5fd6e6ea7b66aafd8c6478cc449968bce905d7486f4a5c002f915174a6748df5cff6c8e1cf78a6d2ff94872121b7b94814bade1b9f4eda235bc688d1bfa9f4bdf2a6ad4c2897c3498eb88e36270f45216ee125538288eebe4a5eb0aa621a1afc812c77db2ad6dfa64c20b5072a201b72c6e6437952217de74cbbe40ab98b4b04ab8e0dee0d6cb8a9b1a5c006e4c3f7cb9e1b04d5dd6e0544c0a70b05b0b6eb82e3800b0b8c1b80dc10921820c4ec62d0e962b5c0d38058380db0090704388372a380d6e2644d922abc484154e9328027766a5a2b8d29941c95869018ec6cd8920760a7d819e01babdc19d804bc0cd852866f2c400b725b8a7e9051704a7820d6e7b0223da18dd1a471492274f4eae30357941ca1042d8b0c586312cf440a40990c914ee9e1c39f1bae1bb59c1c5a06c8ec0f5dca430b35b96c0a90baafc08ab841ace50b179e9a18911b40ec8942a2f4c6dde24e1c1841656dcc042b7c3d1161d260288dd8e703c2d6e40a85415dc0a96c0b96e32408193b24e9ec0f5edca11b8855a0fa6d444a580021130bc61e20917be40492a13e4061d4a40c10a2646a8e088fcdcd609835b126e79581740c169c115e0c6c14dc7689bcdad124470e7c48770890fcba501b71b7043e01c7053a7ae84d532e3b64574338720bc397370f82945a4898a20a6e0be74394b524736ac60f2ba11e0368593826bc56802a7e2a65aa6eb70de8d2bdd0c4c3899d2041415d440ebcea0f02408162cc182a421729a481129d3ba8185a652671b3d1122840b2a3a59acf3259f6b0f4981d5d3432329a48ce2e84851280a8f91d4bf5ea58cb4fc184a304654808821c4345706d582ccd082154485f00b6253e159b9ba3253ea25bd741d6b2dde939402d2140afdd0cdb1076402a580a020258489549015e4e0a48430794250a4801cbd8a572920393c8b57292049df833addd1d27e2cb1b3dcf33c075d3f8a682afef05c99044fe6ea12b27fe039cbf5c8f3229a641fd76c716889278e80e5daf4af1d2c9104af029e908d43fb1cf464474bf39c651f30cdf34f46028c0f94f6b9273b1a81ee500fe290bf3cb942c6d13f385cf2735610085aa35f60ec259b35cf3a4b06f4bb5f10083aa3c5bc835afd8ee0d9ac54bbbbbb5b351c67413dfdd37209b0e74a8505e4394b367ea297f3c44e26c4241c7b785ff5eb2d710035c628bb9d4f08c73662cac003e0066823f6298281b73393e83c33d7261950bbd02dec964fcb7dda41d0f166e1ed22680d97f7000410c33bc779f6ad611c489f649ee3d81cff649e2ce795e3424b7cc43e3e8c78e8c48913e763de2ed4241cb9c8b7838cc43e2ebc1d74211bd7d6484238842278d1c974fcfe8538aa9befe93917e998bb10c74fdcaaa58ac9760a8316b2209e1d29313de98cddab75638002c878643d04908960919a87892c00a24ce61b68000027bfbe53a5bdab1a897dec23cfa207b8b0eb3ccff3989999d9f3c4f5a8855aaadf29215c58c248f4ec61910b06711e00dde5a352bdfed01a3f74c6ba8eaac56984065d3dc4b1837da6ab839ee7799ea723fb00d08f387e48c75fee753ee2f8978eeff88ad0955f300f3b0c57f671e19d6b0bcf20e6ca5e4eacc571e73be717e218e33b17a24c9b2726ca64da3c19b410c7d8772cc41d9936cf0a71437194f19d38ea38e841edf5bc441180be73d025f300cf3436037778c76f88795ea753eb3b7886e3057770c0dddddd5d6f77777777d7db76024150cea9617eeece9d9daaaaaafcf4a987e7439d655fb76d056c29a50778265555a7a6aaaaaaaaea943b7a78df6d3b01bf064116abd56ab55a63cf4b9eb1401fd3a57bacd80b2df91ce459cb3f51ba4b16639e16f3b4186ced708b6513a83144d0a96fd729282d4e412c343fa053e09ca35eed10b6dc2557d4e99f7721ec797329f85e68295cbdfaa1179d74899d0b350957affe13d2217c790fe6f9fc73f01b81679f38ae2da8bdb57ad607f4eaa5d8c3fb163fd77216504500fa86a44f0f918fa8f48cb6563dea98a921010050001315000020100a86440291582818a532ab1e140009839a3a5e4a98c86291388c82280c6210864118840100064118040110429433dc6b0a07a782e2d92b0542e1b26b27619a9ee22f145be6ef904d5fa0541c455d8a6bca1c283f9e02b3633748955872178494fa285c503ba6ac2c85bb6bf6f4d2b22b53bf522a7927ca5f52f056859d93fa721445cad74981e1da5d97c4282531d4ae78d30bcceea912971498c51d99142d5feef0d264a2bcd076003271a1db85a652bcb61ba830523e37c51663bb7a4c2fa81d5b0528053b53602e3b92a96ad9d8512dcd010571f41d5e02cc94c46bbb908af7285ca2edaa42d9b26bf7ecf462b54356bca528414107cad794c3a7dc42ccce5992d4941e2cec42293b51a453a0a75ca2ac9bf21e657e0a8aa78ca7635789f422bd03aae8a7a04101c5db6bca8632f42889bbef6aad600c77805231dcb963767a71b94356f39a6210b5742fda17e24e64441ed12ac944e1a2be7b902aa9fbdda65a8b52bf4f07a2eb15d1477705af1267daad941aa17019bdd357caa4a89bf2c55bab314a311c7ad79f14ab46fc414b6cb8d71ddf4232a9552014ee519b48ee384eadf9898606db02dbc425730766d585cb5d9ec282c275536cf9deb14a7a69dc5550bb297542e9ba1498f71d15a931053a4a650a2d4f68b2db097090a32e75879fde591331d3d909d1b26454a920325dffb7df3719dbed6c152d989a84d9288869bb02adc4bbdbd14e5383f2e2bfc352ac41c1b1942edcbb0895d25212bb76ac965e1c7728a8e9a674d9df31292ea1e0728a2d6876a049763f7f2c4f8ada6029b4e4ec269da450ba39485b3c6987be8808f7bb49735b0926c552f5bb202af551b8a076289fb68b0271dddd9a14cc57bbfe291614aa9bf2f0f7eed515e2e30e504ee17577d8d35eff3d992ec1483ba1e8a2ac4ff9375e0eaa4b8614d150a8045d934a9fc06fa4632e8fbcc6dda45240a170174ae2d65dcd540f6fec5e4d7139ee8042428cb3cb2e59a1104bf94e5e62c4894d4341eab5a3263de451a41ddfe3c0860ef8cbf872ef6687f28e8cdf272ce21414fe0e61167ab92a71cc028e31d2aca727f67bc5df09a8ef7eed7ad5c5f064392b764da4f8a2c71196eb30dac731e09e60b018d8f4d2d9115b72f875c7240aa6d7eef915e2cc8e79e2cae325ce4ee192b6ab10e905f41f062cd392c05039a50aa46097e951f9de401ff5f25f58cd7db8201997232f2c94c584b400937688b28105c4f1f494dac49529af89d75c35672d3540fe5ff4bc2c9a3f6b068dfb356004cca009a252d9765d4dfc1c0edc8f1579b7ff49320271d37b3470e39418df0f1a6469135dea2421a6de789287b3a471cf8d1a5679b22559e7e39162801e349a86522e0822af776cc55fb9b464957bcfcf0e0ef973276a37a3cc6ec06377764f1863e884bd80e239e61eca622a43d574904af23c2a27c1e5e22177e155ddc637f0e8e598aa955711481ac67102d614f26a512fa041ea24dee40ba288d2c05a37fd45cb6dcbb6dfe8db61f56e81a761a502f0fcd015ed2d62935349b289dfe441294a9a9382ee270a8bf0505a43df0f02869c15bef78e14fa2674e42601ed9151f30b5111d973889d1f4b7cd9ac4196b13f638db33e9f249e8d471e42c708d6f41b33efc351528516542b75054fbf664415e9bfa4c75fe3155d5a6223d304723d3c75714571dc3e4b36b6c7d8ce246532ed7ea38394f4bc12d6c93087adf89e4dddbf82136218c737004d49667d983a07cc63804b2a894a90447fa4992a0f4872aa289d44c3172f1f1c490d0c116402f68ddec7cb0e3f190a45a3eab1b9b586e68dcbac82a3c817fa694555cb9e44633ef26509d32397884a494c8480389331507a8e89c8d5ec11113ff98c8e37a836562886579933faedb5203a421e9097c8acf92ebbc525f92306dd11632cb331fb04814864111c8aaf7bf02e0027a2f86c49267fc10562d3b58f47f07ab9d36f2feb038574d302e20a2d664b4e18b40db105097f314144138f6135110e36019926deb79a40c0261edd443236a13f4dd8814d80b3c96c9a37653e021be5f2a1b447f0147478d42395d0ecd45f44e7fb92d99136ce09851e9481e05623899f7e2d90d864b568d206b657607d93b5d14050c6bbb62811520c92fe08d1a8cf2d0b992670b68c2b9b551a3660252d22c15817483a0e0ad9a72cbec80411100cd1e6eb64a7ab0f1df7012ddd1442f9ff6614b12458c29aebbc615b50b15ccc46b4e0acf19065c36b13ae2cb11399b4e52c022ce938c22e871447cec797c149243b76453f666cc91c1e302677c0681b4eb3d1b2d3b31ee3658443309b871f9a61d17589b168c6ee85a5cf4cbcef16112cd0329a6477fdc55c6db821af215aea752cd62d61149b03b3f9f46372683e615334d218fa85f5f1089efa7ab6bac8ec8f998327ab539750a714decf39da0d2d8c02383a3a27c3077a79b361f3e7a1befa81cd8399b4289bb86c616e8e269cc76fd2fd46c6bff7874c5edb761e279829d369abe23d0953e18e069c2c99c9d5893e2d2766808451ecffe2b7bf411a302a3aa351f18e500696379099952a0cc323ef1207251251b4b15288793c2b2363619a3cc3d5c0161e191da8c4f0b9d15b986a305e26aabbfeaade8259a99571d812ea9911f19c1aba0d1528239f80ba701f56acbc2667d2cf0b3f900ebbf5d2997f6474ce981fbee1ffcb14ed4d314884e772dbf1b8e24a5bd31c7265b5985f364011532cced44e1402c17c87a4ecc4a8831be5ddd748d15065c820dde257c820470c37889be8ac9f17b030ff75a42ca2a7ddc1e45feaeed42a4070d1444bdfaf96f4e7b6b0353a55894f1f7d713eb15e403b0c752c3a5fc94a7f441b7b87318a75c2ac7c2959ac704e675deffda6c55384a9c5131a789d468c50c5cb7cbddbeb5334f7b7831dc47c52ac47676e7d6885a45bb9cb585c806d623fa4eb696196474c2e14a5ad98f698a9031cbc3ab0449ba2d1ff7ac1d4c3154a48f26da7e11c454b965465168f97688883e28b0f428c29b01d0664d41ef184892fcbea7eae493a3872770778efda80d01d240bc8f7b9e8730bc111d750afdb4cda17dec18ee95d6863f80603df1c6d49fead0184e022e30bda1c8989b6f16deacd015adcc3a353f8100caee3f81756751c94fe9b720d0895a943ecb5cb14f04aab3eda099e52a2286a31b19a511015ae14ec17a7cc1384de65e90eca5b0a13bc53bf6e16794be936b51f20730ffb994c18b31abae467b15f0c1abf9de4a56a431ef7141fab5eb9986294d881df575bd533d9ced44732efe5298537a2f164f344fc563901f09ab668d8df3710a327c25fe228ac4281f56a3f77e428584a9e40d8e082d96e670edf184ddc6951d71cbb35391d85ccda4348da3e27fac34cebb4cce4620729fb09541284fb309a05974457ba890917382b362af7912318431587c5f361e69a820632eb160bde6e467a0f91c161d25271272310e4cbc108d116df630d203c3f0034d236da60af14bc1feda8ceff58a025348ec0242b71430625fe3aa8c9ef6d60af036ca088517ccc4ee953b8dfb0f17ea7fd72ef0c8032263c87345fc22128c7702cb39729dc46fae27fa7681f0adf60af34b91ab52ddc01555cf50a68f055a7e286ea763f83ef2841b131f6f70fed2279f3f6b3e8d7313e5e48c861f497f2f406927dce28a507a8ee8c09626177e90ee66d00831ff5e376ac48a127b86f3bfb4cb80812fe1d1d698aacadc02e43200b5409d4ce9d6108ca788a9747362f38783c411e78568e0a4733121c03a26866b02a2d8b86c449a97ae25c05619b9076725b35b0132e71fc69e7aa999050336d5d9f46b019b8a6c3e8f03ada441a0f8c60483a5455a79d53aadaa557040a402ea81a64553fc94e5914c2c49f3bed948608dd1b89acbc77dda727c829ce08ed49c98d60e694fd661c09fa0ea29cc395c767040ca6fb610ee845286e62ece28a3ba78315f05400a26c5425f10392b258449d9daba719daae358a0fa0fee88942c148ec140435711eba3f947d03f2a8b0525afa5ff659739aa7e3830907391598d7e15ae28f29aca7dfbc8e1491b99ca222c0b7cd72cba8c05713c6825714425c7f2c1534012041f5ead8c0cc17694bc88b28e0d4c41f1983d52b432bafe6162ac8be3fa53295bd7602c3ca81eadb11b4c2a470ef87eeb422ac0fbc74ec6eba8445af69a88dbcf2900ee87952094a7f56cec8c269a61ef931b9153c4e3da2667bfc6a3fa8aa5dadef21dd31e81daecd472451327ade5fcb185cf27c693fc8de2be2b3ba0520282bd2c04394bfbd990da0009c5f5d7274851f0a5c821a06cc125a75abf92c1f78df469cc23e50103c501259955113a92191d07972a9e19b10007e7ea92f50ac650b516ff85ba9ca9949c41cca37791217f1c65d8bfe7aa5eda4d0125090ae01c8fd5a0c179e9a9b21f13a72a41ea1cec83e779ee60565496818804d05460e054f90424ae9e5bef680cbb6987cbf5326da1587a614d9142240fdd343069924d85cb14ea14abc492e92de1617dd9c20341baddf174ec946efe8e2aeac0087719762e6012ca4b011518bfd1d579891acff799e4c79daef5c65132c4f404046bb6384c60a05ee48950ec25d6bbcf0c71b05bf33db6dd067697165dcbfd145e8689fd9af8914b63c33e94602e2b4d73a121be8e7c3197ad430b8a7f9c0e850804412d6bad262fa532c7824a736af517809289c59aa84581e3b45e73938e10bc5a64db636d4b00ea94f8fd5b1fede7c9824c156dd12e573cc5780466df78b541a4a22016954c9ea870fb6c6f6e5aa6dc5237d1d1336c132aac6b6a94c7546d727c48e6e1c08f62d212c13d86f68fd453348ea41b54cf9d6fdb4485a3884aad190120d1f15ed59623891aed61a536660f02502c83d4ea1fbee4dd2008b91db26ed8c7441bf6e41f6360015aae4c8227cd605fe6812ee075c5156cefe4d268ffbfc0be0466da6c3118c2530166c2f9a52456ba0cdde7cd0e83d93d65ded5e0f05d97201f0c14fdaf6978b7a19566b07b27871871e8d3b2917535a0d2f0b65c942c6d064659868cbbad582f32731cad464f3e2a3ba6f381362195dde97215fbd1dc8a1bd608906ad834e885bb5660f8d0138942f5c9a68cab0ec95faabc672177dc108d9becddaefd0554403537f3376b54bc86f2e591613dc96681ea3fab30bc750e8cb9b5e7f949a0c5dc29848852f8f0d78c5d23700a6e01f90ce54fc786010aeadd5198fa54cadee6fc9e7ae9c87f54672da80905420fa856c67c11a87a73a55d99a5dc7106b67115df7a8706eabfd7676b53343ae4806dd2ee2de252694171add95fcf80d207eaa105e373107b0f5faf06ad5170eb683f4c0fb2bba35940709d1747cce5202d3ca97646a56773bc21f255659975a9d0ca6c07689ffc6320ff20a82d4b1d4aa20eb397b9663ec09425145cb09d1298389c729c167d13c0b0830532db5c268125a8565356aba2e60936449e89c66dd03f4fcd956069dc76a9f1426c1e2265036101b970126faec6348b52f527b94869fa258c87c231023f04a78d5e26aa115aea6f9305b4bcc4e2b3a85c0a322eb8c5bff63259eda777df233ed85789155f35197994a61f943c2958379c47764c404dedb160901246b1ba2abe5f60ea7318fc05af03014a5705eb7b02a96dc9b590e8806e9f2699a158f16d94fa114a22556f9ec08657674d446bcb683f31fe93d95bad61448bb0e68bfe4d2b49ce7500e6d09e70e0a334e983f50bce1a59e1195078c8ae65c24ca43d0f148a414f23cc7f00a83a80ee12e2e65c0d658b2f41753a8d68f5c53a4a856e4ad8da0d2160ab632ac00512d96ed18048691156cd310a374e4cb88d0f44564e41523caa17b043214ef4017345cfbeeb590bf452d99a6d3f5448e06b92f2098cce3a7284e04aef1915cba7661ba8eda7fe61fffc8a3d80cc0d403d0c3e6b415ab61c2813809b1fd5534e1cbd321b40fd8e6decd72437844f150675624865a6d04f14680c9ff9949048a107f24a202160c4c286c8fd35ca1ee37b3767caab8e04ab68c0ed739d1b528257824513589843ba78383b64e705be088f04e3be65613e3b76a21d464cb70757db6ac7e475173cf9cde64fc292c39cb07dda16e73190339061f19382f192cb3082178dc1d692b05ced0993c24328b47373c2c07e0709a8341afb3ac1b48fb2c81ab6b01b40af462e6920cba88f6cc003a0f8b2e95a63384275a5cf5fccfefc674e4a949dea939e0cb31048a95b12510cbad2a4d42250b9f3e7ef5cacaddc025fe0af466b683129cd744ab5896f55212794505fa7387a5fab00beb28e30640de6023119f73edaa4422f46c4c63e4d11bb914ce375d6b9e9283855f162409039132d966f2605922ae47deb2880357e0a6b0240272e0e928056a7911cc7024dbc34fa2f60d2f79694bee1b2c269e2d2f494321bb17dec3b2df26dad8340cb569509c1d0fb7da721cc32b34a84d51ab4d9935dbee60bca4c6a55bc02131c00566e62455a0986a0404b0572a1108f3e0cdf9bd2f46f59d20f8acf36837a1a495bb861fdb95d2b052d27859c791a634847b8a19090de6012ca14f431725e54a0feb6bd10f00421ee5e6f0d3ce2ba0fe85f892e50307126d4b3b042a7568a2af55f9e8e1e0894d2712d2d50c9f279c9fa6def29f773080e29299482cc957cf48e8fb2ea13173450a78bc45a4fc6e8f37c3dca746742facc6c44a2019e8b320af3c224fa3c9c7c850b3435f20f12d11f3be98e6aa67177089b281e2b63461aa0c31980870e02334eb4ce4702e409e998c5c51820d4214d5acba3cdbbf9ae871099219e88b44c6b6b25c46aaa6908b6685ec198174d2ee822cc856baac6e8a61099e617cc85a475dd2a229e90d9c3cd2dc2feed0fa74be19ee8712d3eef969af38a9956d968baad3efaa3b551c8cfa5bc8ad937b8c4703159f3c13850f4bf7bd0a04f3ac9f80a9a313b24d73e1ce0fb999056c51c0c835c6d70dd385d9937447ef0834743102fd41ac826861cb64ae800c7b3e32fb0c35e5a34c3f906b065a5dff508fc1925773c31860fe12360b9545db6de2c8cbc98f45f31d1a2ae7c02cee9f5adeb4fcc4b2990141ff2a6e91eede9196012e1caf114f8515f12a34f115a31b0aecf2bd1f5a68b156c406379def06235d785e9d800f40fdedea9c310660d039d5a152c413f4059fe48b17c20c71084b4cba5448455543308436b440e3cc205512276d62bb90d5d047ea9a9e9092fd81613864139f7bf08beaea623b5958351bf52e4c47e8316bcd43fdd908e2c163a28d31fc7054b53d73df70a25b5b1f648da6618016e2d5f6c0f396e52fbcd8eb9b77012e38a267cf08621c2d4083aac78ebc9d18fee3b55cd2dd0e787d47a16e8ed71825cb88ae0b86883e8c1cbfbd1dafe562f8ef4d710c301108f53af650dd7646b48256e6eeb1a591d2e1f4bc2efd17c8cde8e6d2e301ff9fd293873dfa17f3526a430ffe9e20b2b559255f1bc555965111642bd5a4781ecd24982aa6f46e8f578d637565ec59f0038aba8f5e038277a396630d4ac40158841484a4dfe528c3f2bce5ae5b7f715cb6398f8871b6aced1d1578543e05e9506af89b744fee692b49beec1b48afe59606569f2d05d0fd2cef20f9519b2028924ed3bc59ae28701cae5d6f90b166b759b874abf40639506f0c41dffaf1f11297f565d72967909de4c07c63326fa6ddb3becbf2b9ec8a878a25a1dbcad2172a9902eff2378179615d6768237372dc9cb9ac732301725aed6eaee31be9e5e860a0b0fcca7d7d775ed2dcdd92d37b4819ddcfa9cbb0e090e9e7c7fa5e05d54817e85e38bfaf7b6f28d98fe33d1b5123bc3a2ba02025e939125b5a96e3127cd9c70a69f5ba61de61e74651b7c69a5ed50b73c8f496d2c115c1e2e396baeb96a7f2fc0f00d50818100248d9f94af26d423bec831712c6ef1451268b9f29b970025798ba1528b642a55638d10ab85921025961b3ae827056fc8a911d013f55ed0624b8790159fc00d1032369dfe60ea10c677991f0c50fbed840a0082449fd55ab1f24df347142925d39ee94030cd797694e09933aa329c872932491ff3218f6df8dd443f9201745e85844b97d86f293ad8124760908f89c20e61110c8de3e0eb2fb2c196ebb0c6381c5966b78654b36ba25fcbed361ec15c7564d22acf43344698b4d83a0e562bfd165abffb2f6c818c3642fa7350c0481e9fa7cf45cb13c966272b104f62eace04f6ad4bbaab49394a91d382de794e98cb36271b6533b215a3ce2d32263072cf63a91d87cea195fd840f2318037d6ca6e7c39eb97ebe90671e1da73c38d176cae506b08f6ecc4cc063b57aaee9c89027d13366c8535e99b23e5f065e5b5ac69b1b5fe27fc73b6168a18d07c9e6859820c3c8ccdbf3e2d67eeb7468ef066a337fd79ebbaecef22200d49acbe31312e1d1b606b65bbdf540ff4004550ff8797286f6fd4cbb934f883e02aa031634bc06d2a8ed416fc0068de5f8a2a3e832402d79246234908dd318a53aa0d04b216455cbf5c6c94d33adc0240dcb28b520a74dafcceef22b5d1ca1644212daa21629a01c9f850a2f40c17c3da231f268df3eb5205df2c958166173479ecc88a7fd049109b8ee686866235f82d71b6ac8598680151ed9c1f47038f2d6fe3d78c4ce43aea60df780e91211ae6b52dcfe0151f939eb69d99dfae7fd57ab77f04040833d754140757eeb6d06a4b4d0ed58927bd32e1f3e28b8cf04222a4de163ea644c037b2a9193f14075a208c24ed505628d5e6ed58047b39d696a3c829a1cc00b573211b9701e2ed34adf254e5ebddf65cf1d6015ff7c1597415f84acace4f6746a6750317ddca534e629a29d6cb000cfde83e3a1a57d4fa2ac63a32dd5275615577446b192dc50fca8eb94f39413920be308672e67a489fa961dbe1f328d1efd7552f5d92753a957d7e6b50cf028ab8977dcdb8da2760356f30bb93d60a13a7f5334320211d03d662a3561b856dc81d9f33f59b672c1e7d5769a58ec117c81c14da153d65c8e44d121e0b615fdc5e2b84e0ff43d8d2c723e95b46504076c2e3ff193e26be488365bf4ea8e0de40506432b1c62b9e26edffe52c2c6f2ad06f192fca20c2b7611b4b425182dbe1775c18b3ae254389e75aa1983a165d13f3a953c12b55daba9787e0ff94caa20833a2f3c1df5147bb1a52bd57164e91922f83c9c5bed4d39b5e6ec28b01ac69c3945a6f5fd60dc68845318eb85f5700857cf81f86b2f335f7b568f47baede0a189e6d167c05ab0d2072bb47beb371a50860278bef5a51204babcf7a1508833fad9579c30526e1add4cd108be46e9230781e918a2e69716bcf737dfaa75704bd7f8a9950e67fd444c4ac5380c03d3eac4ecaf4bcc4448c69fef08d0687d9a18e4f1316fc22b1de8a205a7f378b144195fc10541cd89e9873f69000fc0857755d88352483e64b1fb4c85d82d3a589a8d234ff4ccfe1548c0ab59e426b822f5ee92ec9b9b65881f5b2e60dff38cec85775aa0e21228b06c99ed238a90f3b5546c0427b8e98338151ec1184660a8a97826b621407d4849953849a18e1547e0b4a1f831f896451557524f12471eaacaa41ee2777750fc00678988cf64a4101cde71a824a635aacb5a4e3382ab06bb5681ed419c447b5bf58d6066a81a08f24e193efb62a6dc40649dd1129d8ba25cf799fb72d774b3217738a290c2d9100e7eb3c7e92dfbf6a5c100bcacac5fb6450c2313da32b31260f0975848d05ded837e265727848f0ba9df39009cb93fd806d241e1946057176948022179bce2d515ba80b25b4877dc5c0b7f6d5af49616f81e915916ff2bb9805ff86e02c98cb89693a5a8f4040c22a2c024f3ab6527dde453342ac79a1cd95ea05fe62a37c1d6de0db4bc7b0a71af1fd337ea0b7ebbcaf82774b0a2a124e614c8848966890fb0d14521a01d7d678a8da9df1442dce358fa7a4c82db3a8a0f407b651b5694246a7d8acb907e9792eff6df891b7c122e76c8249d491f8bc6474af23636a77b56e1dda76a80bd1e81729a260f6ebb01eba3440722be3b68a83fe6ec70a121757889e53dba892dcdb3750533301c99ccafecccbf0604038a4a01da594a63694a6a941ea76dfc9c105cd5c6b72f59db05fa09a6fb1b0834b6033040d07a57e9a6c72a720123c0ef091ce97f80662045893736626397726f11c6f7ce5f2f588fb5195bd3009c3b3642a17bb0d293e781d662ab95abcb96ee4c33e90a7debf62b6704d1c630096ce30023d50c6bde048930b05d144a43c07a73be63615e5a5fae2b92964d48142dfccb63bc87ee5392c01a75ef5947b85603c2dab1cadb800c51a148895aad42a4ef5f34adc446099698128f5aba63d6772b2ee43a2957b25a6ac93ca2a9fe4c62c247d295631b4c41d0de5865319d0508069557e57338c0ba104fca9662c148e2a3c912de72cbf957d8f5f8dc2554c8205cf0c5e10357a9e504c840a39646f12d3874ca5a7b69017a71b92bd9b714f55dfc9551a717945d9085f4a3663f083fcafdbda0c1e1f06836c2eb9e78fe4b7ebbc21c6242dd04dbe8a82d623c05df31c711caa77421e0dd19fcc41e73edca9693cbb0b08b98a899715d6e7924f8f5273ba774abcea132260236ef6baaa0a65a08cc90e02069000a29ad6608b91a47d24afcf88535bbc4c491de335229eded93da859264ea2ed1e74c44fe13e1edda30d92226df449d131e48e423b8b7fbb4efb253e4bf32c0cbb24538d43f589a66456b68cd85caefeb407f0891211c8ee52111cf3c8cd1291a097f3281fc2e669fd5230cb2f09dd0e9dd370bd6502e86826b9bab3d2110408236fa8b0a43874f21d4b8b1720ca25f50827b1f636f4417cc70b8a0d1efe7faeb1249f852cf95d61bcfe5dd573ad53306e3ec4e67d042d62d296e7cb23c936d7d85b0b9777048ba4c9242d5d47823b17a98523be7c96ef3b936491f42e22aa470a5f89229ed4c1288c2a5145d2209c380114e654223caf2e6efcf99ab9b896624a274a28506764bac5146cccc025c75fcc5c38605617a13c87587d29c635a6417ebfaf24ad24b3f94be8ef87c01d0a6a1953d5057318c88662fcfc9e8575642d033e46a6c81b4c8c2000807f0c5e6c6d69ad84711ea600d347b09cce394ff7b18db7434f922b71c47234ef3be8a9cf15304ce2e00f2b9061751f8e4f58664e0f12b4ea2712d2412219c1fa12fa8cf45dd31c2420dd488722852a02a1dffae454a9dbba997d69c5b09cd8a5387f6b34c8cfde818ce0c03d20a41abe2364a1820a65f44c94bec98990393441d2c4777e06357e31d382ad979ebfc207491d3dc0307008982ff7eac8d0ce814e7a5fbd65f839c4fe818f9c5510271130caaa4e074d35999b20dd783ce9c1cd9deba732a147588e371a6b8bb33cf7b0061125e21725ab7cf1c626dbd3819011dfc17562f96cea3ef5a2d58f066242de1a9294f238258cef61a4c4f8a20360a8169c4a78d059232215b167f16792736626dfbf2440a59c883aa75ec3a7cfcd8479f99410824683bf2af5c090a6bcf4054f08ff4a0805259c4cbb2282b5d5d516e9918168a5bd561385e765980ae85acf78801c73b7ab16fdb10416248f9978532f0bba3dab99420f9abc972e43458a388b525b2bac23f3d14ca1c68e259a3a2168085193469223d667e45f47f4c48307551e6948eccab046a73d9aa24994b447dd87a8abcacded1e642fcf1e7aa1389cdba8824804cc304df93e179dda436e7a4f4b980034446215573c515318d55acb239b9db4e85dac552fc52bdbd1fd182f3df853814f921dc62ecd9221bf8a4a6be78914a5841024c8bdf90836f19de59c1bf689218bf3ea18061e0d952ab83457c2641ffca0aa6b82ffd068e8a6d76f1a0832c03205fb7d754f4c402704f6d5c8356528d893630487c4daee00eb8b305f3194b42cfdc16fd71540b834699c41b776e3930d74803d988aad3fef0ee0df2126c662456949979415842167a9019b1b836a5b81896bcdade8d51af350481bdf61aacb604279dc05ba958a28d1089825e71605428ce80378ef41b1368ba20fb17c035d2aefdf0305910eab8da5986c8253beada0c41e62c764fa1f3ec3c65455aa262a4c117d47919247488cdfad4658e3e74ab66498744b7f089637e6b26146290eb3e2af203d3a2d2ee9be58dd462a1b177ccc39bcdc1adfefc8724703d3c7c99e3815eccfbfbe997ec1d561668fc4178bd4169502ec9e29e9bb78c938752c02199b0bf989d2631875a1560400b7c57763682382a1103df801f564135dabc592ea35b67c077dfc8a6c62c468688691c5102f61a007326727cc65de6a33a73d213e45c62e411748805f3d83e50ec087a96da80d5baf6bbf982a83760cd208f6e046750a7c69c117086850589d1d7477c289ca348e63443cab4d84ceb4bd9e4b0b67e7dcd5582999a71c7d3edd791010045e220e247273b28598838788818c00790c833024ae237050c22b4822a4b6e3a68e657e656a27246dc1acb31e90150a86f9fa0e934d7a61d2c76f9fab2de0303d68dffca6687e14d79712a4e1f4528a27f8dda06bb9a05da97b9e2e15939bb9929840a6f1b040a275f0c07b524ad14d31ff27a6c0eb8bb5601edbc4698874346320650d97e33749625165ad60aecbc511a539745ff858307173cb2889cb72794f000f2a80c1aca9870e0518c3ad9c2b33703b2489cf64d6569517db111afbbf9bf6a85842566baaec3f2e8737a624db1c8aac9308612ee153919ebecabc33d27c90238495a459a9433ed602effaa12f1057c61ef79486a7c1bd3595449af59c33412449f5b3054365fbad7e60449062aecb6585db7b0c128e2d40fcdee44fea138c1af914aff67df62412a0fc99e78571b0b001583c77852e272287b5ee0db74087dbf1af700d50b086f3bf3e8630c390e36f23ca5adc8212ce4b2863e105344190efc95402f684a0cde51a8bfd3e24aeda565933a4ff1270e5130a14a9069bf6c2756ead0818f79f694195e812514c66cf0391fa71acee89c7e9817df3a2e98afef9bbce55db84d9ce373924281119c0e258460545ebcb056d560f794104cac3e8d4f902e45f39d26ef579ac5f8058c85000f14e7a215f55c0aebf3efa954dfedaa79e4e301253aef7d7739dd753ab33c09996bd652c18d4c79fd09108edf48a01c4092b98baeb46ec4bf0a60542ae063a550d29f7cbe89047814c1cd66f044299ab1489f03d009447f21859de8bc02019d87f5d9d5d2eba5f1770cd317542965f07e716cf146ec86347298ee642dbf4b4a1018ca34089bbcd7e06b40516dcdb6cd2bf33e6de95ea915f123950fc5f290610ffbadd288db0f7bc0904346455e7c667d2bc39118eea8133e8295e7a52ead27dae964bc0c33ea4189064a19b19cdee91aec193f557890d8588b51989dafced649a4d52bdf5ae2fe2d6f3fc7c849d38d88f3c5a08df4c3c22586fdcbde5deecdbca3cdbab8811f29492bf7379a3f02df75c5cbca28e71c3e7811bdc838aa9bff336a4ad246c6a9732615e20ad32fcac353497b83a28b836e7528a7455b57205b149f6dfcf630551aca73176469ccd675e071969fa7d76464ab3024fd9ba77b6254ea01d4ad1a0009cd5e3fcc5edd3545867700eb2d53a9da11a9163e454a0aa692ba0c0d53583352c16f684a948f1b67109772d642da6329be525db3eb2e611786dd66daead78e72139a0a162c7ac2282c5d3c0d6fcc21b32c0fc7dc43ec15b1955187455af5097be8643428e0c123e75cd26d1cfd32b6caf106b92524bed1957f0fa0b2ecd634c783d7b09b5558d9005500b79290ff066649c5a8c44ed186c23defb7a69c165f24e5ff3a51ee93e78a63566a9b11eb49a862f9dc3269a5e140fbe1b7abf7d199d7c31dc41c6ac8a82b2eaa05fd7665be87878e2afd43c1224db60037aaccf5584e239d5232a04eeec11dff9c6c6a91cc33d3a36428440f3e346e7b7a30ff73df2706ef9af2cfbd320c6fa6e297b96ec9ecd0d63099823594b374080223452be9c348e6d25398928e1ade9ea72b32bbc5afeceb12e0755c325e1f4d6d018845d015a807f3a21310d0c08758a7056f3b4c033f80525b8fc45d01f33427d4cb63069da12bec0bda53323eca22ca4648bf411561ab5b5ec8411105bb146d38366148464c39891cc93121f074f18e0672918f7ef16ad77c2ab37b07640be1bf0ca940b6e3e0b0a032bbd58dac8b528de6f47b92cec15cfd9b1f713a9bebdb2230b2c13542f3175a12720a62a64a4bb231a9de9fece9fb138d24df1a92f188818d454d912807e0757305c4689ff91611406e0601fc68847be8c26735c713a64ae20511dbcd4882fcdcd8cf6b0c335a36ddf2291430dbf1bc78cea6bde87cde71d8e2dd26a473e72f845317791c44557aee6b31e73ae1038ddca3fb5c4f64f3cade05a116ec0bdc866a2fd0a3651ae68009648cbbb987ee4e648d767c1c8002af3380d0a046369aa606d219d5baec1f543e9210be26da1ecc1aca2e6d7a682678b928246c9e1f6c872654a367ac18c07cd2556e3577370c39ee646aa311ac02322653b72b3609489ed6368f1c07add173c30f5b32414d608fbe7c40bc58891b6c9f4d1a2060de50446b1194801e5249e4839996ac6e47656633bf91a5d070f3e758d4940449bb4c6b280a32758a3a748926708da1bdd06d3619b2103d7d1e1b7eb9f256e5b053c3f3045a628f6cca1dc941274681aa36dce4021be3e4c5635aa94d5b80b58630bb7c6f3ae11f7a2a963921fd687dcad101b1da022d9e8b60dc0d467e3ec9741fe9dc998e017dbd8941da9be8d8dfedd78b8f6cf789bc10a7ad3a92ef39a319ffc287130f6eb106939e7c1bb7fc0d5565467de8e92f7ff116e2a0da6f472cdea42a50e77a2225351567a1a04f0dcf73b7dc4da916eca8bae71063c11581fe10a19bd0c95ca8e8f787d674f5a303025f9dbfcacde18a20b28f2259774717bf9583dc2267ee84d810bb5b916a60a0755480e54d9fdf7a6c9cdbd996f272539ec5eef679177b70f0fdacc23b86dd14fd57afc34b294358439059726e3c5acb91819f616e40e766a9f31e368239668b403d92942ae8341d217c37f47b53dee649125fbafd6d81aff2daec7e92c59e4574402d24d69fad2a69d45fa7abc5e7df47e9bd05263af96bc027969ae49ca4beb5a91aa6908d23030879bb4c15d60f2451175fd6a26c35969550c1e9df4496595f5faa89d053df9e5fd598fc4ea634b939b8f9db67817ce06c4a7e2e2387226cc5bc2a053709a064816622db69e3b914597c0f26345a20650f677facb2b5056da41bebe88feaf0cb27e088d373e4b574ab6a0661e9034239ffd09a417f9b159a2c5e281d3cbb21fd91d97046f951881935b7607d2b388f353289b7f4a9492641dad62640476fb9695ed72a3ccfd2965fe6e343c847cb84b12a54146435af1c029d1c8fe0ca091da20e37378a51fff6aa1fed91478b2ee3a5065abf7ed32e114d9993c1f331cac957877e06b79107f7beddb980eef05dfd0157fed795c6a77c53713fc80082fcf53bb01986adee105886076cb3180d3b4143c461fd42e427e1e8cde432502b883798faca939be85c814cbeb0ede11338bca4d8dcd14b99bfaa03b9a8391cc139f94f29dee95d17db8f46a8c45061e85cc2cc5311f4dad6e18839fd333623714db658c9fc201fd8bdfb4301bf21066aa61cf0681497b7e85f665aa3276250d054b360dda5fa60e41994a1c7114744ba67621530dbea89a2210af616a59686a612a8b952b980a46596460aa39906fa6bdb52f3569dd4bd5db9e72ab79a977d20d27052e815eea604ce9c83d1fb8a71ab85e0d7b3fd3e9f9f80d3c7703bd2ddf88d542a8a393032962b8103b5d88f203225aa6ad1d45b78e1e9c72d9f7db4915176a304e89edc591f19a39e2da4e7f8116ec0020022f8c0aaa86057fe20e3e0fac8e4e1334b5dbe2e055d60987c39776910dd4d8fb87f18b057f2ee89980da8750c89927ecb6a0b3d4f66bf1da77c7ba8654b3b2c920f6e33a498ab419725505eaf44419307ca94996b3da48540073886f9cac25c1eb5624869310c36430225d09b8662d7538e9d9f96943046f348d27c4c654d3025b7cc618c54c63322662407ee0335bf5a7efa333b462d78c05f651fdae5f95394ab11ee8eed1b3c98d9cf59e10f1794383d01b2c424dd4d0ee736d83053c42629f9689b7b19bf2089159607538ca021fb1e4c704de01ea92ad5957508c24d60132341afd3583a3694570b78ece89382de98bb6ae86a732c97d0e0d8cf95c09811cba8d3d216c5e45c1e05708c4a01c191c3398947b1e033ebae1974d4f3f80e1bdb45d3fae680cb9b794524a29534a29a514cb05e40554054a2cb81214f9fbf916a523e3dacbbd75171a09fac35b649dace4bf4725107fb8fe725d7ffef7ef3169c987bba035ab7441bba9e0132958745ed79f4f2afbc3167e15669e49562ae6855f764a4bb24db1f67f8f494abfc20fca3169030a9352c949961d4917421e4fb86db0efff3d9ef83a41f52f0b568350948c90216028bde9cb60f992a1bdbfbdbf65c8f26f8680c12caf6761213d0b4b041fe1e355ff36f7676bf75c8340513c61dda3128e7b4431933390794f663ef61a3006c1b740efebf5b15e7f1b68007d3c02fa29ff1e8f587cf4dfe391d31fb698d819cdbe0306c0bd16c7a39b85e27f373083a2d7d1c80dbd1ffb189d15e3fd53d5977faaa6f705fbacbfdacb6a043611edc075b0d7082bebafed51c1baf253cb53433b52248811a801394946d8b598799bd1cbfa02f3b565fddfa3d11a115dc918637f21a7ad8f75b8defc7fb9c2d57f05e5c094dfac37df642eb9de262fd53677f454afa9b6657a8f4634be56597c5bae3f55ed5154fb0bf90691b05da305da00fa8bc7355240020bb0708d182a1041077f14a8e0f7efd188eaeb7f8f46517f2cc50acf1113503bc368877d32da3074a7228ea5114467ad0d91a3cd19d38261d782670a8b89e550622708449107b2229b160acf2a8950c9107609db0a346112b21a3158a8ad364655abe5c46e9960af86846a2340b42d46e0b06c4e8476742d0e1c0be4079b43079a5178648690870bb6038b124f421b496dcd0831221f611c510e525eeb55c74e1931e2268407fba1cc2dac75511432b912d680b281e2cbe8c50f8b36d4016888464867c7f640d222016951f46055e0e8126bf2e298d526c5fe5812a69110de89688b423c6c92508df08d496b2497274438e7836572c6aed5d8f0d59ad06a89a8ce9a843990e0845813411f8c826edaaa26ec90b930226dd491ad4ae3b221ac93c1eae0627b56088110c14e8811b543227a5a25111c503c79a2844811f6a68dadd9d1fadc688bc0d8185dc222562d978a364bc945d18810ec12900e5b049ac95b22341e111279bba12664c61a69b0475e645832a2daa7146dd7111b04889dfbd9693dfc6c10aedd8188631184e5b1c6bae598196b6960b4542de4a6582726b64889964490b018c2034b15c2a64dc26b3f2461ef86087db00965a03591b13b62b463abb9256235ab5e105ba724215e111bf703e6b323a4e153a383d7fecc9180536b6385f06862d67610638fc068a125fc51c5d211bf92a48a5aab9f9646cf0eebd353c312f18465734224706c4e1b118fd6c68ccd12db014388430bae8a95220ac59284318a6e7eda132076da1d10356678c2b339211b5c4b6c6b8578b04d66c2216253308eb45aa0aa168b9822694691871f36eac38e920f3542323cb6c61c7b024e786c7bc2a3653213ce106365c0a0d11256b51161242529c2f929f2b0c37a79a8c1817735c796c1b55b6d3678b03366ed929830080ca113adb42ad68cf89624f42a6291fcb02b7876da209e1a2118de92b9bab584137ead651beb438d0d91830399f0c68c36acd8b2c892a3fac36b6483885fd86325ff3dee28fd61f97d2e8f3b4625cbfd6c2e5c152620e05660c9adda3a9c6061c206e218dd30fdabb6bf766dad60017a82050bb9e537040065ce2cdecaddd812eb666b7b56f3dfa30eda1fb208c7d61a13fe9215c2bf471daa7ffe7bd461fac3dfe641cb5b66aeb74e87dae39c57305fc1c115a916074b8bd6e6688b3e6cd5f8e05ce5607d25c50e3d4d3596446da017d5cea9a53787530e2207521dad9185032b08201a0bb262a135b2008006c87d1b6183c89d8a7013e20cd1ed96114b0c2b60e810e2c12162c986e7270407b9243e785738764c3767868f09db60417c420c237e98c0a98de8c3031101118cc4ed2404a398a3e0746f9c2842c477792f4ef74710628bd303273233b9200e116f110738e1a72e628e8b2401980afb5c15393f4c4422a2029c7a6e15385db5ba101b1f81bb78f849039c2eda12acc409ab152f9819564177954c11838837e8448ac88627aa204e3010a205081bc7a035352b0e1c52966edaed9d8b648a221221e2b92144f4003b9af7de7bef5d53dd3915f7145c337c24da942f936b3bc06c366ce5387341a4839567d7a393a48336d60332a3366136a4bdd47befbddc1aaed0bcec76e68c48d860fad40f140db3246a3779bd3762776b41b36b4acef172b95732ebc7ef5d5771379a5c53a3e303f5e3569c69334590d1a90082222ba8d776a5e4f98c55871e28d4a8f08e44dc888a71836cebc54defc7d6879426df9812171cca68bcfd4095bc61c97dddf80cd16ee61256a97bcb630381f3f616023aa2a9b71cb6147647ac19b5ec4707953e90d0eae2f0a68a8c899d7740404eac747a60e8255845f416a08d888a859c171e1506a68e14899dcdf0c4f5d8ae9036e79ca72537eef01ead81789081238ea87884a1cd06125a133721163e6ef4746dcb07da409b1188b495fdd485c9d1c0f4204a4cd094a4ede46d3b9389f7192505682576e4c908823762021762434ca6e8b298ac5dd1d85764e58681448cc8083482eb024936248ed65264e1f5b8faeabaab5df520cbde7befbdf75e6e232ad2e4748ee0c27e6a92eaaa7e6448e521e1d123cbf56a354e926b1f7bd0fb5d27cb55cb95316d5c406f443b291a0ed0017793232ec78ed10eb9722d73609e96583b3548a0397193617327a74623c44c848f0e9f0c8e292ae20c1f543c60f81223355d4e8e6ef4d2481bf8eed80014461482266405c335504d2ddddd391982a4040c47fb9c731fe7e4be22914fa0787144048dc66bea89c30c9e991a566a34ceb4b8cca67d9dc8ed64bda591b88143010e1796948cba29b51c5c1e521c01166a4f7063584b7e68f08066c447de8d1e4cbe726089f570cc3ae4691979889664a049c8c41407b8bca4232cb99224494f922449922449922b2b4966d9e895df7a352f61e2edc9d1cdd89b0f18d2c392bb9d166e544960481c9fc402fa24d614b9cb4ba63dae683e89e5815c59d7ada6b186a21e35105e673fc46846b076bcf2427a0a3b9a69c948e1feabc9880f4c42317634d0181d115d2d71a123b75568f1f474cee2e163593afa88d6bcec4707957447627415b933dee95862622a489d180fda8d2c222865baf72c14bda5de7b2f773736656ebcdae1573d3a485007116849769682aa92a405e901d5e30686f76c7c6e25f7b9959d69762dfcbe75f63bd65d97c2254032c76385a24d060a3a1e3f5f49483731f4102e2294dcc9cec8dbfbd59cbac36ec8754171c5d07a01d36f180d31722411a3a8c6955b9959b056d4a0fb41020203a60739b2040659d28e2332c6ac8e68a612024fae988833215d6e5143c02ca0d3296bc1a487929dd8d657ca0536314347de63af68b182f8872c45fde47216582bbeccceed871326a499c66701c6c2f8b586d15a2dc95a09b2ae0d3e2260b412a5b923335250383a303a46286d61b95569bfc1bfc715412b7a66d061c658a359679df12f01d69033ae416f5965f773c94143c73b313d5bf723d58ae354b14655987a96b9950a0d1888133948a4d0867ce0ca071339a80e1dc07a61c41d45569548ab7e520b626ef1c2ef2c0fa5aa47eb3ad50c4c071b12176b754f307c468aaa202c8c84852181e16b9f53b17d4e354425a9cea8c0fe7002ba01bd14568f710facfb32c687490e194a3753523a1f6086eb8c1ed85d23c2e1035391910c32fdef91ea4b1fa9be74870c7a336c54408e4410918c06855b4f0609b89bb62a1a454aee6272a294a0a6ea7c5237bd5e8c28b6338a48ba6370cea26a905138d21d831305e3fbfe3d46ade8117363e10b2a45118a4885e2511dfc7b5451f7e1f7f32a9090177e3fd4b26c2567a0ddab73152cd2ada229d55ac551aac2275541b3fe7efeb7e40f27a8372c3fff34a4a79ee4d31a9a3ee138d12c669e36abfaeff1c9c56f61ace7bfc7a7157ff813763d453d9558fb1310ca9f6a50362b82e88448671253621b8fb9f0f32d4e71694535f24834a62c2b6bfaf313d29508292efe90a5e843f6a070d678ce0070d072a973d51fb670b25eb23fec861744a63f6cc9d3414cfac3551866d48e208a40f145dc7172d2831ccac1c901b17f65eb3ac44cb262a1ecc27ad4f0041566a2c94e081e0f1a78017553b7330466a2074306998a853292f41c8825872a95f5dfa3d20bb348a94519c093c39590bdafe852386b6e4b1eca14ce99dc02e2bef47cf6e787fbe2f3d99f1eeecbeab33f79ee0b8acffedcb92f293efbb3c37d51f1d99f3af765c5677fe6dc97063efb93832f4757e03327ce7d417df6e7cd7db1b92faacffeacb92fa5cffedc705f4c9ffd49735f4e9ffd99831990e38116903301c6811f9e413ffbb32737c00190fb58ca9900f3c0fb804b28290f7c8315a008d6cfbd0a5004bfcf834b0f821ced4a40bb2dd9ecb66407401beec681fcec395b4e40f67c66c87503204f5b01721d2a40be2305c879a000b9da0ae43d7c40bed603721f5b05721cd725fb14c87300f91990a35d970ce4c6eb92fd09e437781937bb2eb9933dd2f7ff00c8d1ae84ec1d00b98f2b217b32c87ddc350df3196edc400a3e37ea0a6759ae2bc992fffe4b06519df6a666a4fe901b7b10c0b19e333f337dbc92512f347bd48781f6f9f72bc96c9ada67edef2dcbeb723dea93295a87fbaf782ccc37b85e97ebd2aee4ec771008cc6a9b527ad2df9cdef41a43499ec1d20c965a6d515a2c8383f8ba607f83ebca1f5ab0c05b1f0625863268414bc09e0c5a28db5e8bfdf5a42a83839b54dbf47e52651be44d9860aa322056acb617985f0733e0bc139727d9f9d6379fbded8319705ecf80f3ce10e0bc4fbea1db5fb5e55ffb7bd73fc4b8dd5ffb7bcb7bb7deead6327af53e8fd5a06f55dbb67fedfbd7fee6a1edfdc133939e0773ce396707bff4a8de393be75fafb5d65a6fb525b7c6d258fffabdf7de5c6d3b17f2b1e79cf396f7de3ba9b69b24c9526df5df40199fb5dc41199fd5f4a737d5367fd4a367d91b6af8a8efbdf4e8f077d4977ad45fc85b9549f19033fdeb4fe0b0c597014bc12f3d4bc1df14740a5cc8e070a77dbcb30e5e34a7352806dd737fc975c52a06187ab00c6e20cefb586d21c4dc9f8338abd96fadb5d6f896bdac5bf46bdfa23f7bd487f3fe555b14fdda08e7624fb1ac3b16ff701f8b5bc7e2d3fff7586c3a164ba419e7aeb1ae22c638eb7becc2ea7ac8b1a8762c7aacf9e66c691863dec1c8a2d65a77528a8973ce493503ce1b3abae82953521592da935f35f5d1c50c97dd910b493665945a47eebdf7ce39e79cfbc8deb788a04d9d64ca19ac604253fbf1a6343644cee788eecd030a30254c77a9772ead340d41c656a3e8676e89043759258c5f76414ad0592087e584cba8490a1912dc88d6449438bb919ad35c4e2878006494dd8e10463d4b332ab2e06c40cda021e69d48b24595d2a499709df99a58b659e735e703c7c868044cbffa91dab1a327050f27720460da79e55c3ac40e8f1e21301c52347cea8ec4e1e008a1c569114969ba45b4a9ec470799bdf7de7befbddcddada66442c94afb9c739e35c639e79cf3520b37e5070c917881e6438a28e9003f463b562d7e8a8cf59064f9ac685df532cb959c735e621253343a206942c34bed4789b31a2cba24227a479cf00468b686b4c04a88e0708b3956bc2d1901dd4d1951b19316e39c73ce39e76999d7c42b48871eac0e3b30fca6874ec513bc1e29683693ad1d1c2b8f73cefb5d82f63625ef46936b6ea09461ee46936b6c98b8ef28f18c391b477873581c94c07412427284f1508242c1046d223bcb636136436643b06e3e2839d3b181068aa5a9222d600c6053a08d58d343e308666440548c2aac11206634d1735c6f27dc551192696f750d21da6a688c5e6f5a56324b441c37dee48ae8886c21a530f57de54a4dded81e409bfae1f3e6c488280048472370248a0879e80d690184007be55ef9a679e0528154c58303ade84dc790ce0f3c2b2f216979c3d9f05c9dcdc0384e40717c716c71448e862eb2a524dd6d368a543ef0d2929015213133812385d30ba2d524a54967b9328bebbfc3a6cecc274d49b189d884b662c7ea6dc52ee2a249776b8495f5b7a4827e21660711d11689a5b21430a4122748654a38761481c090759fd45842a805d32449f2021b9d7b49b71ad591ff1e8b436a45cc27a45d45b40bab9c90ae44e80a42926471e55abbd4849c10acd2580091a92bcb32c6b892691514ad64d16a3d5a876b4cd8baae6659966559aeaca78c9275fd79fcefb16be643f8f7d875f4d57f8f5d3d7fd81202ddfe5e8c7359e6bc812d96d93b3b88cbb92f646934f71d0633ea9fde6d6d025154305d0125454551390ae77e881267d2e596b8dcb2d516c7c7a6d6269b544602aaed3ed596a39c54b7aaea8c5560db53b52555b5e5a66ffb7c3a635f99aa6a5bf6d4d6f471d3777ead28283755b68a8ace58e54c2f304d51d21455e56683dda081ceb8c1f668aaf4557aea055ae9af34e019c9018ad483fde081cef841a6a38bcb33715fc6a2b18881700f46c23d71972dce02f8025dc1c75a7baeb6c5be7bd719f77f791067bd79d63cdd9bf794ece52e4b9d71b93999f64e96a7896e14d519a329599ae689a6689aaa3d5f2f557b6beaf3a1a4eb8a9292aaa4f0bdb2575674c62b2ae94f05009b4fa0b6d8410a616f1ec14184083ae3082829e906aea42a2aea05faf36006bc417a81f881830c56e070fdfbf7d319ffcccf3d6ef2777082b2c7fd26b1ee0dc9bcbc3cb8cf8178a726501dbb2a586e19cb2d2a18184a5cca0c4a1c1d8a1d0af71b6c777eef6db2ee5d9a74669c0cf0f3a069e72045514d200a2e830e86661c4a5c1a775d32f7c5af5c21e3d036daa649133aba2245dcdcb29ada1f9a713ffb0972b0e4d8e8202e86840f098d64ebbbe43a6c7f6b7dcb0d4cf1ef65719d33870cf6b0d0d6eeebe9c9576ffd3577e36cdc8db3e95c97eccf1c3e94290cb9cecf399982ce14b4a7009429e8dc979bfecd4425aefb7bd32eca69b831cdbce33427188a29f82798aed0b3d312b2cf39c6af752abc2a26cc3ba63fecd9f5e27a500509fb612f6e46c4d739d705fba0af49e0399625649fc772cb09965b7a71603f7bdf4ca61047d7b3eb616ebc2f425f07b331b760af1227854290b99efbf6ca68cf7dab31ce59a7a9cce6197f7d75c69bf39fd6a69939e79ce35bf67259b65c0402f8dcebcce67d71ee0d357cbe5e17ecb7da965b6db7e79b0781d785ab6d873001d2778fc1f4a5bf31bbda720d9f54db7b4bf33c4fd4344f0cc8a0050b5a827972f4f74331909da7a6c9b93f5599ec39caf7de3c6f1e2ccbeb82ef454f15880189d3754d550c48df531503192cb504dcdecfbdaac6dccfbdde7b6f7ccb9eda66c079325c65d1bf3368d1bfd1cf83a8dae233d5c0565559f367c0b754cf1e872073fe0c382f047f077370e77507457d25eeddb31de7c9f4ac6470c8a562ee2fdbd30f77dabdd7c4fa397b8c31c6580bd15839e7bcd5b693c0724888d69aab2ddf24d8deede6763f73de879dc92e43a9b69904ca08ada537714aaa17903ff52849faf293a44f7df9d336f5a8d767dacf9c3c735a78dacfc161f71774da9004c6cf012e8562d3060468f66601bb7ee70a6b16a2d7257b086cd0134e52fb61cb897412cfa1938997e0425742f627f152e03fb725fbcc7b724b094e821f71235ec447dc17d267cf89ee4bc985ee4bd7154e291ec4457020fec343701fde735f52ce21aec453fcec395203ce7f0286281f0f4fa96f9a1fbb9ca89aae7958a60051802bd0b77baacb698a6015c1eff7e0d283a04d838f1f7cec516e0270ef71ff005806ef75e9dfcbecd141b3784afd9cfd29a52b9c583f9f45538a33bda4e1070e7c3d3f7b5fd16df1e5680999826f28b738009e20ae84ec1f0491eea804cb19d1610e1965d108000004057318000003512007b220cb510c265a3b14000a45e46c986c341a1b09c26138180a62388681180802108061100a621006c24818439903944a0d04bd340f3a65fcb126a6578a7e047bc6c713abcaf4760f2ac5f2a451c964e9dd4fbd340ff19e86cadafab3938e085972ee4facc7028bdc788827c5a5ad66deb8352783abc975a8c04bce3dbd439a40b028ef54e165d59a6c4904ca5759ed25be28f6ba18b76317eb0560dc15701e8d763db337a9bb94286640e1a57647f9fa8ce808b7f21cb0801f17ebd09599d8d44185d25c23743b224f2092eda60e77e2de0513e5d633087c89c357e4419339a2db8a39332f5fcca2cbf83c5c5a8f4ab0c79f0d13b81334c2f07121d730b9febb93dddca29a23e208c4c6876e58aa0d2b387013f86a23ab6b27c4046cced2ae47196efb5ac0d1561c83ee0ad103e0ef660e5acdde245bdc285820209ac8994bc348b7d5b4e99c049dd028292e9584b1467fd84f91c4eef61a45cc6779c9bc81c43b886f75306a1cf8d5304478560376f63008a2169b035012470a50e010d80f86eef00603cd5be1342fa61d1ed5356a3e52d69c13090a38c9b80ab9c67b802f2ef0701ab85128218cd301c8103acb02402f70712d7414d99c6034fb1b9a5ab23852806c4e35ba99fb815fc9f7ef00f52584ddee8ba78e1a84514c882ab72845b841d35bfa612cc8d8b7c63d04f1b7b669bb14eb83698b8ba00a24fae7d7292382875afe1ed7027220745e170a4194836c9cbe6f562ad57cf3544f28f755e2d3dc59a71c55dbbf6f06eaa9338faf944af648d5d17c763fc3599abdafda5c0da679e1391038c502cabe3d596c189fb3bc27ea4bb206583619491d2f8d52554dfcb6f9c15f360002f1b3a20edd0627dc72f6e7502e2706ecaab67130bc97acada48cbedd51d5e68c63c54a4b447e517205985f1a31ceaf2aba69bb23c92fe415acdca81475bb177c3fa34ecb30d57436868e4d39f906cd5459a15e333df60b9876e2247bf4c48eb08e4a20eb656976578c6b06bf6991ca349e1200e537da9e6a39acd06db5fe9b9f6cd58ea5d7921bac409a22a482aff94c238ef60785c052550c38d4ccc54e44e5d7de9999b7f437b6606535ab002adb0c02451551e916842006ad4045fa2ad43d2096240a81b5fa4ef294358ba3a6bf35da6ee8994805a99436c0a1c8b3dda7f847992d0e7073063f0b26e0c9d06fd125b7442ca79885e12012858b48b5da56d1e4346d3ac06d8e0f93614b3e8da2d127a5538248c42798a4521b93bba9a2e2a2e8dc86fcca03e54e7a2642fe53c80353dc35b40d487d9a4dc7bbc4d8786889eaec369d40bd0079e4f12f79c4e3e9f01c073da97f8bdd9255c3c985f7cece7f46802f485b843cc1542bec78456d34717a680aec081e908174a84aaa250db5d4cb8573aa8cdd03f24ed384f86523c6f19dc0d02b5a74f27823f64b43596c0883fe98046283e6beeabe021d9cdda0c9624bbd6dc66047ebe563f2641e4d34b47a87e5f2abe29b1b2661810cb5226997e4a8d7eb15bed854d3519c8c3a04f2322201a2bec289d6bac45457e7fe058382c71a49fe021dabd1ee581c309ecdbd490442bfa63a49ccfa7aa2d7329f713fde8f0146934a332c5d4cd2a82272df3caecd74f238cd343219f2ac247939b69a46b598e6ab368c3bc1b9c9f79408537bdb629d1f0edf29ec952986f76f1039e0a31e8b4ac72c54d07bcd57737ed7a6fa50e46d6d5655c50d7a1e39a64d6bd80015331be51b25fda54ec9b0f7b2e407629ee35a7c326739f484b92ccb8e9c691c86a31a5b2cbfa3df91596c5bd5aa9bbce91b1ea60ab51673dbfb5115f8ac7f579a6321f380444f2c699c396c31d2dab6910ba00d0259f4d9617d541d0e16e4049c3473f7156baf388d4c426d5af958e190e21aebb3d081a381562b1e46d5875a4a76be9fc20dc2ead6667fe93699e14b627a7174e67f0afd4f35b8b3cbc06ba20e75ef2914affba2d34385ef02d3473ee221dc23441613bda59ad9919576cc66eb3d59d046eb65a6c0f89212396f3da8d9a5ad2be3fcf4502aeb5d291afa5b82eee12fdbecb06086c0576efa0e79f334a0bfb1e1327725b5822259cbbc8e06229d1c04cd75932a652621720c278cf50aeb0b2944b76436d6b635e83877d8d5573423ca23cdd44b8c157bb345c0742ebd61611519819a061402ca231f4f56366013424c04d4c45559f525116dda616314856c5203aa22c51cb2bc5a80cc727b3cd702633193354673b6ec2bd598a08949754842d8d2a9b81fe62722c1c5f6a39c5ffce556a3c8028d15733182264eb7ee5242a21cf445c4ca6c935cf8fdc76bd7604ef481ba89670f3b86429aabbdc9dff587fcaf12a59db035c9a94daf37ec58381891e72fee7ce0b2dd87e998590d37a6f528ce7c79f9b6cfa51d88d2f43e6b51b44b7acc5091daea6a365e5fb7e84dc384643f5bf22071299b9fa50b368ef12a81bc921071842897f41740443ae40a284c233c70addb1942677861f151479bc33619488003b4fe0a629fd8b5c0eb4681f4b713ade2b20e3b94164fb81feac6318c5f6c581caec862d2faf09807ebeeedcf3c2c66880440abf28cbedba218c98b4fbb0bc9b86af6294338779ef488c9626f76768143e2f6601ac394a26b2b888a900b6e7e05dba86bbbb24489d54c77617141661231ddccda1f285764c77339e4f6a0eb326156f33e0207b56555ce0fad35eb899e6cdaad4ae5e554d0e8675ac84a4f24a6d9f8eb64e1f5b04fcce3a8e4ed046edb9448afaed459b201f600b25790bd2304b15bee91ee6e5546352c8a00e68362f4b8eaaf85b2dbc742984845b1a09de99074ad2559341ab4cdf3bf2a4d602ba2aac89d68098f3e28ca11d9d5a69a52f95ae645d3141e92c544a14822a731ad71ec7679da96822d4017d70b58b487e5c3be6933bbdefdbe010e528d63b5feb12a655dca84da07ed0ac9cffcd2bc33d71184007105afd18fd7c99f8d5b5be4cace39c14b6de5e6cd71f533b4826fc95429a7f07922dc0f9ae4bf9ed6485bc5f9c31e204c74af869d4b42aa01f13c4e7c5410e8101a3642d428095477e1a0a708b2fd370e256e51fad42aabecb3c065e6726fb9d02064b7ffa4ee8cd0abafbecde98722ad11d79e3360d49da95a0bd5fd80f28c5347b9d921c539ea3bc2130230f18e9ef584962dc6273548ff53743d63842263308c0f41a33584635500016db23a7115a69f797db04edaa8a0990bbde20201e416fac1f37309abe855818537f044fcaa355fc9325f0569fe954d34a86b7e5f02b58809b6d0c604d623200efc19b87cf16c72be0a021ff972db1e08da299ddb028243058a7cb251eb9bcbbaffb297c84250e7f484c16addbe8aa712d58590f2b986e55a672baed755a6afd06b962bc7aecbe13760faf7bfc4eb5000ed7dacec49430fa52e33acb2c9593c19af5203850bf42a4ca382e0148cb3d8a28e1169bb9d03d4fc1971a73df8b3b1ce5f6311c602db68d0fccc877779690777eaed42ca6eb92e929c36b839e0903c768e4cd6348e8362eecd65b8fe8e7fbc060de6db202ff44e024dcd5f21605400deda7d518dd161150e97935dba578986ebb35a3e371daa6721b3af492a1705b307b6aa6071fbe02d4498416721c4f716ade04b85fe43cf4791ff1d66b087ecdf7c27fef2010bdf2c9ceabd434aa4909e18feb04053f0837799c5b7681d99df13625a7f320297046f1eab8cdcfe3f399f93b6f4432e2924cd43429e5ab562df0a281e3c65ded5dd92bf3e054d67628f87224515fbdfef93274db38d83ec561c0466e4280b32ec22f14683287bfb2e024b1a30f0982ce9e1644b8f7926fd68224b1ad46a1ba543e1be64370d5efe4cfb6a856016733694bd27cbd12ae83dd166f59b28c30965a2474495602a534ce5b41651935696b6b3d7edb08ad094cb7e61c57742ffab91947cd60797cccf9e05c6d3227461a3d68a92cab10b7373ea49cb32f610317bd517a56aa2cac94e2392a51a2c21b421e8c6a17a14af97df861ab4e76478cc198c1f2012ee5952e9017fce1cc5453d71f16b124cc20e1b685be19cc9eea44dff5dd34d294d757c9f7686cbaae99c061f76e0e0a2ec0dbb68ebbc6c66ea85f802a25e504f6b836c4efae8102501aa87024358f7de665cde24332e278e53f511aeaea2e9c2d58fdfe3bcb838727ecae6fb2cc655b892824eb184fb3877977866ebeebd29621248e455e7daf89d32d7ef72cbeb612db1de0c9873b261a20d18e90457fa418926d0fd1023e83bead2b040ec5977ab2bd13316b67345743297470167b818f70f9b4bb04eae7bb0862534a6e0903884e93934965da871e660b9409ca3e9d35d216b0fe5a5ef875dd08df8e307ab621510d9c2e18cecafd64d8ed722d26f62c91cbd5179963cb89ad108b3ba3203669154f88ccfa856c5b972be054b4d761a8c3d5d542bb59c19f8079a9230e3935d6877f7a9b5a6a384c90c6fc5a955ea78ebb99f2cff7e12e39b96455016750d5f991637e2809ae0baa64e8097a982dfcae54913126fc792a6f064a139dfa30f84581df56c51f710590dedcc6c28078d3c59567f6f4dbddc72b6fd80ad537757879dd0388b52756562a06d7073364c49acd7c5937e1a1a06478ca9852616e09265d7e05668c43f280a8b1663ca4d897fb7f952c8faa18d269447591d7ac84971b4dce57586d539f87f3429a6591d028043d13de6030f6a9dc92956c5372791f2a06cfa8274b656a12429937645e2008d08d0396e09732b9753168dd8489410e26fe32577483d46893f524e2fb425c72524bffa64b3cb4c5e4df6eb4f1aee94222f506f84aacf212c38418a8e1140c3e9ca29556f1e8877a0ea13c1dc3d59350c7d2f2194b9b763081b7d5a2ab1cd39e1c2f7accd9acf2a92fcdb8f92441066080990a7e19b2f83dc13a28118995e585c2ea0030609c02c00d2ee186034370b8e76ef55f6ef26ee032fb80d256532d2fa9427be80fadc1cd1bfce22e59370552558d20e0a3747768c077cb3ae3d42235b38595f05af003764b338e7a5a9602e2d9f1aea8f061b9bac3973e6026831b554656087ab685b2796ba5ff91bc14a8bf69f47ce1fbe0612775e6d9bb63e682336c70fafdce783f9b00624feb810f8e7f9a2b2934c10804094910b1e14ce933a5f4b5ddc6e641c81eb4a81f9a36cab3d5218237209d5d191beef4bb5ad25fc18ce6e2819c980d1596c026f656cb97de7dcce2d3ee257561502ac8ef5231c9f0b81382b61dc1e220d36a266df20a6c5298f06c91d3f1c1acb0fcbc4b12d1b41804b6bff96b6f985c272fca04a8e443213a6e2104ccf72b244e84d55ef3ec04e7c907438f2637a55ba13c7df9060f3c02e7a4c302217845df31cbf7e13b8105f16e76adec15b244f3c28b28475c50e9bdd6ed14cc00d9cd9a8d97f00c127e562ecff46d2ff2d33129ee6b623a3167b2c9a2caa0d9219ef344c7cccb6cafc2edbd304953275ad122228927f8893101cf9e4fa98d7fa9241370f90ea516ab8d1021c7f103e81b3b192166d3f46f41e065f5ef172fde0810885a4930093cde927b10159102f483655c920d440da7ac12d1536fb7841cd0a956fff7355d817f167b375fbd1e5fa431d47ff8c10895fa0d913567ac0b827844f84e2a446f08f905569ad1d76f372df70b4c521161f4ac6efe2c8959c38429baca83068fc135cf043728185069d2da442fff8d31c701e0915849f1d19e40f19cfc64176dfcca5d4afc7bd319e7d0b000af606d6443735fc069d250022877cfc504f5f39d6383774c0cfa89c1df61e701f19b4fe03d7e99c8190da8df4b8a569e435cc66e2b48cc4f2a8e4beea403edc0c646bd910fcc6fcd5d8bd5ea3457b5dca796889563acf0c31cdd6ae1c5b6166a07990ea961b37954a0508e8cddbe03e9ea446227d68222fdd104d897b80e4b6f989da2cc94ac11825b925ba04ab3d9ba746c49ffbef8a264dbf945b58283524faf390779f17d1e548abb0d4e1900c822f7f0435a5aa2bb2768dd0b4c6419235811c9ea799c554a80d5e99384fb2aa57a9fbe9a3a2348906c2a466dda32292db6c8b4375556970ec530df132e2f2caf7c4a082c40531b18729384c05010615525f801336de480f0f719de39c2c0f6e9ba024478c92fdd5dde2582af692729bd693c364d25c53632772091e94041cd8a4554a6e191a9498bc55702039935b18891f726e0a506f8f3486c964e13da0339ce3550b0f280f80be859c54304d3d07293da7f6b06d770d83ca9590701b8a6d380d43c808dbb60d43e8002fc33c069cc774ab1e012d487034f8650818749d4603571c83838bc11c79e37d8cd1d405d2994533619f99befa5602f42e3b58e8597285e8a0c0bbc432975530943616964a9803d5744c2c25627655bfe5d51396bf62cdbc7d0ae8d0456610543e680647566fcd670fd240d3d4fc8f487eb78ed852947244eeddaab87a529f029d198038e4154250f4908238781893c551e2c9109d7241f4c1a8759198ea0abf7b667902614d87d9d8928069376fca300cd8f858f09098c03e1687eb690919b8bed3abf2081b08b63411b6f6dbec7f5a454348f61ba28f5cd71a28b6c5f8d6ab8acf2f482169182dc3bd33105e13e3386355ef1d5a4353a6b7262db8840e8bc9926739824aca8c27bc968967276f48addefce6e33c1017911cf41dc168b7db6f3bedfd29a5dd7aed47a08a8dc200a99e803a209f004c13a04a682a312d3ade52047bdb0f713dbb8e4c414cb6b811436a6159316d0741c532f03c61f523517c995e4eb0ab445d948d28e31086e88ebe407f2b5a0a7ea332f39fa567241552aa7f96e4a403cab7981db8f7390941c22aae2916e5ba8044655c641a5ba07b447470fd032ebcd725d148b870c4377ad1489b22c8613400dfa158cccd3b1e5dca4ef2ba8df1e69a57f604dcf9bfb2ec492f9224d33fc0e61b7a8964510beeb6b14b16c8e91360416c2511bfe69c70946be711e91d6f06dd2fce1266e6141b4d38e269b383b99bd10edbd30560621a0f7eca2223d752b3a666296eac79f2f55d2c5eddbd6a4d3cc62926d158a2079683eb771f505bf14fa586d67f1609454ac6849330763d1be990f2b8ae02a568be12e866ccddbc54b08239c700b27967722bcf58c6df3f77a46516ed791be9a1120da9cb2b3c0786064ec247ca1da219aaa13c26c82928842aac8b968c876cfabbf7038e38c23e262e01e2729f1bebb7aab6360a3e3da7884f3f0a1d44ca3003f8bd4f20cc2838c91feca0931278d823c6012a70a0dd164c1494067a5e6ed02304f4819c915772389937128a41ee8e4530d96734ebf93a72ca355d4010eb7aeb72cf42c1942a77038074c2a77f7aed54aa99dddebfcd202da44035cd50a045ef50f575e0a6476162d6d73e89a0c042840e91e92d2b34e1a4c0bf1f10310bc0e579f982201d9bbe5411a183db73c6a8eb14a94c139f7250d61d3c8b5299c552cbfe79b7dec858f3a7da669b96503581868833c0a568c4a2df3225d1380623dc12752693364bcf85735e67bcad484b2eb1639ac0cee8969572c7808c4d8e2299d6f1e77e379dbaa4a2fe2aaa25d08b9ce41ece5655651090c461b01495d7c257c14aa2012365d006f1cf2c8fe382ea025b3087dfe4a75e3daad029c351522534fa8d2c50217e66f615124a49192d79500fe301d9b2739b87cdda622d6b164c3abba07c749ab503957081a843ffaf7bf666d9431ab764ebbe4735be23b380d840e877e7a1189ddd861147103fab859136fbaade52163c5f89b05885eb93634194de08d5a227c73542c9e7aec5fde8b6018608844e958751d5993738a5a7954e1a40cda76892053cd812077b975031efe83fb33c2dc770a259e60aae8276e6017bb82d626a630a99490ee0739d95c67a89b33b05ab1959cacf2f487ac5ea41248eac177189291db1124bebd96b7b04d5c3c1c147bdfacd0239c322ce4783c3478cf573e2b3c53570f66f84cebd0583ebc8d74e8630b1723e3e6d8eb0932bfea95638b10f6d6f9bf1aee59fbac3647b1d55be1bb6ac138ff5f3d77649e6917e403afbb7b1829c25dc8f209fa1a348a1398f576f5257c2206349df90d0950b7dd099f435cf8e52061802dfc22f7aeb166e1e3d05499740aeb81e16fc27e40075f1bbbd7e646cb3a7806dc75feeb50953e2f85046ec571cfb6684969c3b090396f51e84d7a8f093032accdb5f08e078758e2ea5287706db63ef0235e409fba5805c5421273d3c4feeb7662c8d3de5985618ff29ac254691958efbb60ae0d7001850402202ac4062c4dded95664a310d06ff4c090b06a788a8d2ae301d16b060bb0689862e32e48d9d6535e092e95c6ab0e7a30b52a833ce15a62aa6be12e1060072b60b62caef2bc4f75e4891a76b6661c007bf0eb2c447c9409fa6f399ec1edd5a3262c777d46e2ab938d5380f6baab9150911aa79e360a60e1113b3a40e2d25f066e0fe0fa9ddb752f95c45106b73219d022b48aee2a72b3e3c027081ea70c952b5576037316c30c70a756d65952d083ab6dcb1f9f2b4a8d53f2570e3dd1911e3f436974744a16104dcbc1ebbbc8071de619a8fd0e29f6d1840bc9a2b236e5a51f98ca42141a0eb1ee8b5b4bab1d002864ea6181c416e0b3af347a7829d4cd4e1dad18045c0c7d692335dc1412f74091c5c71c4d66e62eff09ae030be1acfc759aa311444d77a15cd96b84ef2683a5bf46e01b299dc670197f395d63b314ad9c5c8066fba2448f576ea17c186e2a1be91b03a64ce47c40b37fa6f57693722ff217d6e1d1ee409167ed01223914e8909303050dec68995bc461c0ce94713a1cc52c94834001d9c56fa30d6e867fe974f613719313a8f9444c4df6c99af0457152ae5ba321ab55d6f052cdf98a271c9c8c15603bd5c00c6e0b95f7c0c9033004cff50581186532e107b0ab06d307bd35fd0ab9d1790837fa17a459395a755d0aa0c1314913628fcd90501ee674075eb6e5e2e4f288b5adc8e5b2339471e54924cd6175463a643b1f8fb4f9cdda2840bbfcfd32cd0c9643ea816486a4530f09499f8f88d598a1f0380b322382ff34e6cb6f0a9377a526eea18420d22618a252c294f55891bcd55041da3401ef0262cc29423b9996ef52672c1156c896e3301249e02152048f083264cc4cdf7a720f60fa770e5a190d15c05a3e5665841feb683a823b31923e6cbcbc4215600370240c07e51626a099c018bf3caea99ed5580a6416a5dbe0ab4f21e3d999bd33d2d6ae37673e1828a61b730065bc23f9ed287d4a0fa0221f6e6949043b70a4ec51efb70c8669ca24767b1800a7a9bb2884b73140e7de4ee46b7a2940756ae6f488e22dd9a601632c934850ee956769121939cf92e2821a5b38b17eb92e99550fc58de21f06e20f4df4ecd50924e4a666daba8c2889f60605d88f1f2d0692777566b0f34e21407557af4fbe7bc745e42e9a1332250cb409ad73e1c600efc240ce162cef5f653b92fdcb029eb8310a690db47d6ddc28355d885349394290fd27bd01e7da68417aaf027001a73b9dc243e76bb8b3ae22526b603d7a2b9750b0155267a90bce9c2a3b025f22d6f9b945f3bff292185e62d8587a3b069349e2e9a697684492defd9e28a054cbb051685179ecb44d1dd3492dfec2dba33bac83a74f28729d7c18c3a4c7c036b713adaa5889e645d6e0f24924871b31ec54e161259f9ccbea2b564bf40a6cd8be2658d066165f1397414d95f58083cdedfb71ca749084157ee2af0d916c4ad0d1fdd83ba52d7068b364135d704e51de40154a681bd511a69e96a3c883d2df233f8b2d976995392cdfef12046b0687d589af7935e94fb7f0268f9611df01b9d9c8001c747a42259017cfd02b3d3cc2c81656696ed94b80e3b58cf47594f470a719dbcc5183b2d9e21f0c025918b9208560bd0783853a4e11c24d9bfe6d49edafd051be5b1686204ef1cfc6633f0e979b496afd3e9b904bc2c46d0d6649eca2fb6a81cc563a8fae830f09c59775791f9e031d4140ac32a5636ec447566a45751ce4a052f162ae0b9d53478074b8d89d9f16b8b28a5020da455e115c16ab8c89f1a44685ebddb0af6f920c2501bc136c36d5fff2beb23e2662c69478103511bda5010355400d32b8a8316c2baa252b213e84e6f8a03818c5288b2419bd17e0445a4fc343c8cb4a3f42e0aea92fd5afd4e9160bbc82cdb6f699d2d12237b16aefd7f0d7e6d11e5d3be07b7f570d75c0fe6fc3761a4fdc452ee81a1abcc72ce9252988c6fc2cab998bc892fb5f12deabaee82249b25f9cb3838191f1f0f42d890903dae7b08c4ed938f8ea39649d9c8c7e9f73726131b968aa6701e24cb1a0986a4e75c86cee329aeee58b0672ef90ae12fffc8b61a6809359b7ac44547708d0584817ad7dff82e3ae9f991a53c47ea86130927a2159b80e37e7a778fd29d329a111083e29b170c84c3c4d196413d25489feda37f48fa276862a30f5f60622fea23617d7bc41d77d7c6025dcf82ee8f5ebee9463bb8d6e788e1355127097c837422a3775651abd90f92234f3f0dd79ce5f03b9c3ab8c1327037c06328039ae3c5bc95275c95381ec5a2fecda7161b7cf35861b238cf2a38f6ec81cca122098f59c9fcdfd2c3463c9e0c1557a60ae90cfe41cd3f39c232d4b1838dd62edc0cc625d77763757cd009d3ee13bd2cf76d53403985004cfd44a989089e15c1e8485bff224bdc59a409a88714566b25fe480a7bc0e0e655bb8a8947809078887909d213539d811b1b39520da007610189e5a438402fac02600ef9f0ee81e0137b4b9b6bf8edd9e64562642129586189ffb53e45030bf918ca2e6772e58e28bcc5b26f96368458b4fcbf69d7993a1df1ee5d251576b8129d2e43325efdb80f62165a9f875a8722eb06da29edbc518d98d646ec9ced4800449b49d41935b4d97b03fa1b0bfa20c05aaadcc40bf08b6b069a52f6e684287b8d2d2fbb8d1035283c4d202389cb1965cab410ba7de9789013f37cc6ec79fecb1df0a577424c336a2581bcb320a697a270d58618e572edd6c508540316eeb9e1f256145d52494657524e8b4327206b659ce30362235dad12143aa47478ee72072108fd4d6bf874393e9f2c0667f53137c781624dc9037a1724d5cf05b437be48d39b1122042a498572198029d23a313e9b78c93e661504c54501c31d9c81460d6e06e50067d1ecdb1bcb11a33d818ad460b025e9ef78548fcfb92c4ad0fac196461ed37ae206d39b64e6b0bee67a7a1fec331adb4a30bcbb7441bc0f690d7a0f5087217913e1e946852763894cd2631429b5ccb9bdc3c17f62bc63102f075ae6a994bd3cbdb336bfc655d07c1b3e3ee351d1c2d14e1168f0cbd6622c049c41f8918c2d42f5dc3bd18806a56b6e038e3b21d257b06433e64265814d550bb2f6fb0e06a2df63264d9e93b298defb26bbf7e382bfc11dce75c4379c9f0140e87002f033727fb0db3379ead8210e6d7cbc9570c22040e2817d4ae656e462e9680bbd70664b7658b11ca2bbd489dc020e63bc998edb3a56569a2ae79c4585e06d18c8d2c09381807a16788c3c0319c9b6a39e179baaf5980137052ec1148196c4caf2725cd06ecfa2766a10955a32cf81b5267e20ff3da9573558bde3c3e0916e0195b3103de5b2b3bca0afb1274aedd512e29f6487eae3b5c45d4ec6c8f1842b21770d3d07a0e028a7d441d648886b7ac4be6be60eb8de826c7b7144b07235c2b6431253200fc093482d0c6ba6d3533324c23d74b32556afe3ac10811bba00695f7bddbe606c786c515ac6d9e1001c22529b00d9cf3a380024f8220afdcff7e26f88183a5372d420ad5111d9a4301a0c8a81a476a878041807c00401bc1671ef68804d91c40c0c74738b15cfa3b3c8a6ff685fe32008f6342bf73a352459254b80e53a5bdc09963a490bc16982c1a889358c84565a758e45f34e5c8d4e201c001214c04dd5a0b84b885585be32ba85d05003e4c607f1d45308c1a6f32058fba231ee74b8b508e19e2fd01161650981a528cb80dafb302c610b399e919f0724b373ef3f3d1b220f6614af8da0050d55537296525cc742e88b0b80073d41a23f7ba2190f8143bb4e06c9ca9c87c446d90286bd03640647f88dcb31df74eec89f2c003b398e730390d068926c16028b48daa0089c2c0ef5b51d92f1d82508a94d6101ae58c04b28b32d8607130287b014838d76653bf29899600f70c5c50be803127e1504106bdd4a49850b14fbe68bf0543bb9f7c03449e06dc6191407076dad8c88b2081228e04a8b2cc91a483bef216e1fcd6f0ccffc7053cd8db69b8f9298791d6baf2f836be6fd369ed1ee3386a8cfada1aa8f2c0d1198106c899c2461416d01c818fdde6d3cfe543500976b380623507843e60264506599d6828a64ebcd52eea46df1e66c0a29856afa08f0643b38693db854245b5ea1155fe893cca87b841182d3ab60ec7f398d26880bdaa50d28c6bb7989649ec8144895dc16543e1580f12626845c721a00984b9feb9414cf78064f5b9efbe471360e15e94095d3dff11ccb3f3f28a594aa8a6ab14b5c01ceb73f8e157c9bc48f0ca194854e3294a17309050ddb4282c27c430816c373dbb5148e9a3251ec188a0b5b27681070d28dc594c17998c931ebc64018e531eab6f3c57dea8b62664f9d70ac14f36f241386a287d84126c950cea6ecc62f9e3da8c3ed41b3f91f1ff0e7032c40378683f8afa89de4c9c4fc2ff48e59c6c98a29e3d558636e43b53f16da1ae834d48d830a6375c060df4db8acc1f18d3f27cd01d9eb8de9ff1bf6c5b0da558e56cd3094e157dbd4a041dc16014fa75f1a3776a6a4d5f4d6f5c22b150090b28b0dc369d75004a13512ff43cfff0c852bfeafd82995813c6c5b498c95b9460596543a4e8b1091b69a1642357a124e8a9b146e51f6520c3d0562eb5d34d2cbf72eaf744729ddaf983fbf2aef04ef968a5f14e4fc45ca216b1a80ef554349896941d4af4529a9a4a66c5271b7037672401fccd4af53babcef86aa2a85b033bf4a3cb853aae783c2a5b34399ea6277f72b1390e2b06b579510797f8a81290fbf765f9d5e10769e1a00ca2b8faa1a0185cbf51d4bfa9e72ef2930dc9dcc7427e5ae5012d3efb427314d61b8b31bb2f47267c72f8127b853a4beeb8e32e0580d6725be0ae6deae7e955860b720257f142e9dddac7497722e7ed6c9ce4d9944e98a523b5ec390d2e82863506ef7a57227cf9d9052d112923a1d1e0c22a89319efc49fb60cec96c9378576a170d1ed20a448de5635a5744731f59fa20a29d35a8a3e28e8785f4907a27071efaa26442956bca6047a9f22c076ef2aa78414eb507453c4427997c235cad94f8171d0fed5492d8729585e779ca47688bc3a505a13554c8bcaf4496428f45b378902309c0a775e6f4ceb8ca2ba0cda8d52a185b7a39e26614af0ac776c9aef282fee7017ed4bfcee020a28a26c5a40161aa5034d1bf54975562584dd21d28a0c1eff28c23a510457fbdc851db237ff389296b05cb7b572783fb049aa583eeed58fc09c420a3d685632e993188778eb9a068a2563672f5c297ad63e9b2592ec2de5de524a29534a32a306c306b506332ed55152abdb2925d8cdda19ed380368e0623eae865b108bb5935943bac69f9f13b9ee3f22322ad237fe72b0c3f577046299719f569302b2334ae0dd3e05cd49c2cee9a4e4181b427fefb9c3be779bd77392b07cb7b94d1efefcd4bdfec7dc38ec4841e1fefcc1f760430863e4972928ecf67a2efff67aaefb2924e43cfdd33f44446c848d6c2e28088a1fbc458b37d8b0e1fc1d5f1cbd8083e37047ea093b79d0fb832f14bd3f780b73e66acc0a35eb93dabb50a78d74ab0bf5deda17aa0b25efb32e18acf79ed6aeb5d6ca6e62cf726c59b1861baf78812f18463bd8e57befbde689f1b4f773f85efcf98110c218638c4ca4982022faf9d99162c25e1190f73daddca449cd0799d0a020226dc4080b8856f0f3d303f3f0a88087eb3ee5c48e3a6887d95a135e5113103ea71cb30831a9e1406185198d75be0c663850cbb2309a94a5c375393084d70ee7c70c9fc3f15c8d9d47eb7cb1cef72a3f591dd3a86046b942af957fc42e0800b9d0bd87cdfadae6f549a7b21613d487103e84e821765e873604ac41f98efa9ead261affdc8fe001d01659001dc15e370444c59cb307c8ca0da029404bfc60892496300268c90b548c38610726e410c50620ec4007071d1e17b4e005a31b7ef8e8202108264d7c78a243ae80871e235a0ce94195918e94dedb29088a169626010423a81557d82876899e25902c5164091ea139670a05d62aa1d36489125794e842892c35703c513c1c8d0d2b624367a7836edcee398b8ab61b7e73590962c50e161e2db72f2e6ef7f5c5eda73ad60f29250c77ee0689dcf9c35c66d617565117768344d617ef89b880456df3b02059a877777bb733aa1f964a7de1d35175ee9eb22c7ef6f8dc5dc25ae7ac9ecfe856e55e2b7c47b91eeeba46d32f833b0a7e3f7d28e7f2e2312b0c6a156d42a394552565559de2c3548fedefb19bef743f0e6ca56dde73e5cbea29cdfca9095971a5fc8a3ae79c73948bae94cfccccec174af6932be57777f7bb50d161912bdfddfd65b952fe7b0ffa5c291fc228e5c7abaab2140fecf55845abeab16c3bf915d4f59776e5caaf9aacdef9b07551444282a03b83f75c7fd9c5b4c9bfbe992fa78b1960cf9ddf6f41107f8adaa6bfd0e9e943de894c07e2c8753849825c9118a37bbc81b37177777777f758c46fa2bbbbbbc7e8ee304608217cf2422c5dd3af057ef13a71c8ed8f389bff685028a5c46e27e789d612683fe5f1ae0828b16ff4c2bb50a6b6d77cecefbd37e2f126a073031dd551ca88ea9a17caba50f242d1ca55dcfe609415061946a191e7f6ef4825b1ec43faf45249ece63bf75de953fcad837610313347406e6d640751969feeee2e92e5c7dddf7bcc0321ef08ed889bbb92a57260a59c9287bcce7fa1b47969f3c5c35d6b3b3c7e785a479eeb560022b94a82b60f377cef756581c05ad60db991d9cd1c6efc1b28cd0bd5cf8fa19ad46a1cdcd570357ce7466677bdeff1e67befa50086eae7c32b86783d0968d0312a32cbeb7df7902f83e65ec785a8d1a41e57b3e20a830f65d4685295091e90d8d512e87b3aa2792f83160125b6c687f64d7f0f29c71bea53ecaf8f01bb2a95524a291f3ae79c134190204176b893063ed4fa493fe9eef622dcdd5f16cef2de833e1046dee19d283777c55d29c2be19ab6a7e15dffaca7a1e537b5917c9aaab14ea686c9028a86d1c7c6e9b2f9e0b9396c6e2beadf48df39a200e47100bf139fb9841c7ed30caeb2e39abebaecabaeeb268bdeeaa1736b2d75d9674dd4572b9ee7279b9ee7a295d779560aebb6062aebb6264aebb644cd75da699ebae1918d75d3068aebb68625c77c550e1ba4b0519d75d32b219d75d335c8df71b08d435fd50a61588e5422d402c34d1cbba8835e863071612451c503a626e2bddaeadf070d0b16be7edbc5d3fef76f7db8dc7c34957bdaaf2e6ca61893c5cbb48a4aa7356b456956b3781ac5a29a5ee72ed3edb980b1f7e5d6ee4da7dad9c8d2a861d198d1c89d48e5dbbe7820ba20e420414f413f4c34498878d300f632172424419e88c6f5c67e7deec6c60cdfe608451ce6a5616adb45ed8081b59924b672fd5c5c5dbffc5bbe40e536360bcbbdd4c3599da554d5361c07830b5042353636264644c3315c60ccda3a1f1669a9920682a89751dd4a71bd43565760c7404a888174b2c91c41246c8f607238c3e434a2c61663e0284bbbb124394d08110c25935e1a28996aa4a29656535b1a28995aaaa2a8b36016a0204da6449945409d00e90ce125c2cb1c51246a8eeccefeeceef9d1bc1514a7903fb7a9cd004c96c32e784c2d6eb869a0c7141931314f123851f28f88f9657042fa8a832050a46946061032004d860083a5b383105273f78e1238351353bffe2926d366cb6bde95e8f69db6472fbf65bde739fa6b9f0dbc1b9d394d9eb9394524af9e27fe07465901f7f6613e64c616d9f980544339c4e5786f812423f397aba90c6953148bf95aefcadde9797ef3417cd6aeb35ebb7bf272caedf4e77ded8ef1f6534aeac6619f09bda35f0df66af6be0f3d4260d8f08ebf733026805065d06f29e297a5cc659c25995a12bb0688e091f3b383e6ea0e143c8952a7480b240e209444b463100a2031cfca08a130c61842b43f0400a08451405e102212d88f0820002c4138e800112422062072708010b8e60c10e5b7cc8c28bf7238fe0c4c99124a6908204e645161d1b9ce086a2216f489116493cb1c4074018020e7ea21cb185491527b4786214049323845081103e54d1c115999edbd58d24c408f530ad12a3268c8e60526042aca1d763917a989a4b8f55e2f6bb51136ebf1b1db9fd0e93e2f63b4cc8ed779711b7dff5cb58d06237979e181e8783b354b505913e6145c14a12d3c3ed67a19aa5d25c7a6a0b6e3fd3276e3f5b51b8fd6c25b9fd5c5d71fb39de97d14002cc0f0f71262125911462c234b9fded3c5ac5c3edefa8b9f4cc246e7f4ba2dbdf5288dbdf91caed6f785f16430b13514481844b5e11b6b8fdde3fbf4514dc7e979a4b0f5c72fbfd15e1f6fbfbe1f67bf6eecb4a47b09b4b4fc9487b13de45b124c4ed7f44d19bb8fdaf9b88dbff3c95c56e2e3d410e070bc186dbff12c4e1802e3d2f5348426c8424f41b0be1f643e81a7cf2bd0514e0f1694e127aefd1c07773e911bafd9a4b4f13cbbfb95415e6323dd7ad00a4e2182fa68c4259b2c0c72ecc395b60bf8052858f12560aeb850d821dc23611f42c18d70d3d91c2adae1b7ac245148e8eaeb0dcee0f46392f08e4b8e6fad4d3d5e04622cb93a2a22b338b2cb2980e870cfeb01d4639efac307e57f9a5b0d87e2682f50ae3e94240409efbdc4b5d619d470ce9b16c7341177b4aca6c7c524643ccfd6182209714ef06e4c690cdc7e4c67f3e5ab208d18ff1bd483f795f141171e68ca4ad60b6c0c480dd11f963681bee67b3a86dd8c7ef2b02dbd39851765c615673a3ec5d3ce05f9fc3e1bb57cd3617ba9bf3fc549b13dad8c8dd9c104c5d61df77b6810cf4e97d6a08b6df057ea83d88f16868e7cefb5257d8ed4520de0dc87d7d7ad7a66765b853a57542592edbe8843803907bb8b317e47110ef20e7a2bed4871016c87b37c2d756d5a15cf85b9dfcf0c73af17cb278917e5274e79df7ca9d77125d7feaa4133d1f1fa2eb3f8d3047a12c32a81b3a8f17f19741dc5f51fff493a2eb1f7bde73a2a22224d71fc266248ce446d772fde3fbb9f2dac157ae0b722dee80ccf7d3363d1d8e98ebf827119602ea1a5e61abeb3e75857557ee66a90b312b99fae4d7a684ece6b2c0ef00c75c7eb9337585dde69dbfb10fee4ed6a921d8da27df99d5ccb6eaca8c06be9bcba24d57a3fd094d515d94f392138b1033cf2a088abb5716131f08a145911c91524a5a893ce1a9aaaaaad793205f504a2f4c4b96ebbadc879ab8d2849551e5ac89208745a10716518032b2d20ec4ccfe96b8fb834c1c8153acbbc39bf82e8788a681e5875009cbbfbd6e0821846f56d78e9703b377910a32852098e04945611f14cb0f83b81a359cb0fceebdc64adadb9908c2ccfe88dcdd1f742254bd5972100beade7befbdf7de7befbdf7d883a49e580fe26a3881d9313b667ecccf31848f217c0ce163081f3f76fcccccccccccccccccccccccccccccdcdcec1cbfe7f83dc7ef39768edf73fc9ee3f71cbfe7985d0ac8dabcb893ff0675ae7b6883b3b130c88ccbe23bd7f58febf87cd1c3851667bf89326ef3246924fdc3fe3e8eb0f54acb9f3ef9df98e928e917f2cfd52b97b4e370f4fb93ae9084b67ae53a49e8c5f0707db3b23b764ae46af8b70ddce917670375e8e1fa6f33d7d97f4e6b4da6ff134908e8e241ba42b28244c54e7d529f787d52a10e1508eeb44d6de2e816168f45c402b298584bac24d6110b080945fe48a0ae21e1d00323b9db4848688464c76f46494656f858e9818204c80893eb3f5ac273bd6211bafe2fab57aa15ad91765c0d973f57ac1f57c3bf354a247fa29c9555a9552b8bd66b84d967ad37dbabd60b1b59527521d93ab2249797528529c5bc98186f8e717929c1c0c4c854930c4c8c8c690646a581f13ac67b3254689e5155b878f06d19fd75c68ce6ec6599376730eacc83513b8b51696854a8312e1e312e1f9ef1935167c878fdefdf9b5fc6c4685233cab8d7e37064eeef63845c40d22389a5328585329d4471434c60b93534cdc5c936784fef52bf3e9cd86df238f1bb3340d66852f1f257e03abc34407e0ebab671e0b61721a5d4b13fb0dd8593244e8070c2e46ea7aeb89d0c71b253bdf6095474b75abd3904d4c58c11e9bafbd773033712c472bdc7e1f8d309bdee735c60b757dddd1de73a31abf720d5c3aa7afd3e03ce8df0358fbb393ad8ad85db0387dff175772aacfff477a97d0a8bd30c38ae0a4a472ee2f09639a544c98e313a84f0bd877ad01de5b11bd53766394c2ca3f846ab4fae866f3dae77431fa8a3b1714e13ec7bb6615f8510ae00218416c28710c28ed5c3b7360970b6aa4e7e93c36b9a0213c85e1e46a6c2d36432deca5c3e4636e3e78d05bc0646860e30cdf3bb7913e3f96f98f8d9cd80d33a96515aed9a43c46e9c8302970a0fe36f90f134d85beced53aff082817fb81a1413e14efd3fdc06e49a7ee64dcf3ca3c59b43c4d26434fc2a3c101d3032183fe36380f1339e7f068d8c07a223877f7fcdf9c1cabc7fcccfefd2ffe02da8f862d28698f131d91031be34e3d94adfccf87e8ef11cd436fe324e2f02bfa1f9bede399bcd2ff6ce3d467ae76c70fae46c12e04e76b3d7027ed330da363b509281b5863f2363a16fa89039dfd8e7f65b222226e2f60f079dfcc6c4ee14bf3f011ddfca6e64340f239b01c72f1e557c99a383f577cf4520a6be70c8c9c1e6049972726ee61dcd34f5c994b5e06afa673201b89a7e1a67b3823bf5b750801a2c106000352701381c010080c311f3fd341c0e99ef5f41cbdee1284dd36f374cbfd930c0547a7121c9c01b0333a955d5cb8e30538ed28b0be9cac4c04c6a55f5b223acf4e24292898199a51717929df9d1cc63579d793abf9ada10332619674c325e983de74e313da7b00f21d87e2762ab20d8f79b52e995a8b0ef8646d7bc7f50fb3ebd4f61617f87574d79c37c697df53158d59431c618e764293b4687f0bd07dd63774e11b692a7539f1c8c315641a9e3f60763149a43c4ba7792ba8ec28a28a444d144b412a1446112c5270a9228348862a48b2888443104ca1750b88082058a1550a0400182b2048a122847a2f044110285c82dc075435060b97444497114af48638c5b8f0be7b4d664fa3f9d361b377e7c86eff233be6535d248dbecf5f72dad9af065fca86d3d80f0e08cfa4da12867c8d0135986a0b03204c5cecc0b0c99d1d31f7d7d3aca485fb38a1fbb72b1977932f484cfdda6134b869c485291e88f50bca5661bce9cd69a4cdb9f4e366c90ece8ab1f7df5157b97d293461956fad188f4f4b16ceb71b16a4e6b4da6ed2f868d7eb331d268ec536da341f1963ba256e3c15bee48db7adceab71e97bebb3d6ef558e929e972a1f4982643e9493817fb2adb4632980ca66d305e5e5e5e5e5ee8cbcb0b7d9979d166666672860c410134044591a12790e0f4a8304c251562c030dd5a3fe674eb97b4cdc6adefa26df3624fa3cd689b355d538cb6fdc51e46db4e17fb1792b6d9b8dbbc3232e735387ca16a66dfeb5b6dc3b9393ed8eb371c9c1e3837044cd3d60594d93177bbbf07618ceea573cfc26d2df8077536aab5d9b0a4177b8d30d3a95f9c0d01dca91fe7564f4798e94400d308bba4d709811ccdaadaa94fd5dba81e422ae0cfabaa97d9067baebc30380368c47aa6ff1ef2f80da6412490c706faccc0d9c01fb8d3ad1e22813ece3d92db99f31af9d1d29cab51c9873373863d3e18892648c09faa7d09d0dddddddde33fadfa408175176a3eabfb73f8defdb94505c7c4a0fb25ede5e59dfdcd93d4e0445cf6239b03e1447cc80c36fde6482edf385d66e1dad87e051b07d8e4e893ccf3dcec7b1b7eb382e63efea41de06c1c0a779a33b46d5a19da6655d036d38da16d4fa36da72cf320b81af7f1276de34150381bbf5ec5d904c1d9c87cbf57e16cf89be6e9bc76d0b0641a8657267bd7839c5d26f3eb4132595f0f6a1be74e32195f0f82bb71ee43700a70ce009b156a06f0025cde3905488ce673b48cbcd9d364313f13f3330f0313130313a3f598d35a93e97f7ee6417dea87c9dc4ae65766b268448885f9ea67b21c21d6fa1c21f467b21c21f567b21c21d7cf643942b09fc97284d8d1cf643942accc6f1e74637ede98989fc94cd976ba1ca3f5cbcbc3cfe1a5ccff65732c9e85f3e2f68fb2a02be3f9d920513452fbc87d6f06eff1d1452c59c1f59f3706c968cb834c90f7344aad9f56f763e9f8561cfcd5dc82c49cc3450e8fde9373c56ed087429e5bdcfecd7b58c38cacc06e2f4146eecbf4c9e1981199207307d4d958989f4bf963a9c21e6a653605962ffdada22a8a2fe735902f67f16bdbc0b0607e3618394db01fc0b932c08f0f697cd4bc9513b771e4571aed71355860378b1a699b2287735a6b32f966155d162aedd42738690f3d522d6d990483381876731fa6cd80f3db8d392df4912cb47ce9e335fdf2623945ece52456b12bdb66751b0b8e6369ef89d7c79fdfd78e794d1f5ec4a5cde03dd6d3eaa7b6c11e97df3cc9e64736076224371f22bfbfb85ebebc2cea972fdaf4d181adbfc19f226e3e984113b038c7d66d78bb9b6b2e859062d3d570598e13bb3de8f0bab419e90509f2de5d78d1386d02d05d06c18c2b615c69ba52268601975a16b5b9f1e291c16ceccecc4ff3015ceaddcdce29d6af3513e05601b8158d5b71b68276e968e3eb9eb8b4ba7b3333b3ab1453e2ce8b07cd2e9d55b39b266820de52c87b1ee79c53ec6669608fd8cd4ab1549240ab4a1076edae3de758fbc1f4548298150f36a9e020a594928a0d574a29a58c52ca294eb8524a295dc624bc186f32b594524a29a50bec6612b23d34a5e799a8d44007d4dd83a0c29351c1c186294e48c2142c524ac9ee3c054a5555cc53984c59723d93428c314a2cac65ca518556da133a9d5821623405bd20c21ca649443e538ec843f407f488414266c77893e999609360379329d545d017537c9832845af17c13c3356d3d8ec637b67a49a3ac2684ef41f85ec4fc854c1df4ad4c67074787f53875ee4c1df569a68302b745088e8e6aad3bc5fc6d6c34b750331b36d6a55c9b3a7d14d2e8974e77adbfb2163b8abde9353097663a4ae2d38fe19bc836bca6bf3ea599d34123c73b5fc8d461bd101b3ae85fef7ee7f3697ebf8daa42001db9036cd77d148b3aa8498b99abc12fb9857f6a5599b1ab51c56a4a5ad5a9c56ccb2ebf6414bdef198e3a93c1055924dc93b799c321dfbd0dbfa1ef1ec76fac77d5bb6f4e402ddd2bd3d15142030d35d85b83e956ffc3b76cb934b08eca5d0d57835b47953957c3827107c85c6e957de65ae88f59bd5ab87135dd80db2fdfd95b65cfd5e0acd24163a5d9d44165a599d44167a559d441ab4a33a8835a95664f07a59566ae835659e1b30e8b746b36e5c85af3fa81e279ed90ef1976afcce9b0b29a29a1995aeadd289fde1f92d21f282bb34a34514bbd2b6f086af0fbdeb4f3830ed7f90d0d78c9175faea3d10fc8ec59057dd46dd8c089afca6bc3a995ac964551a8d9ecfc59174a3e7c3a2bbde46fd5853faf7a5dd785f20b45ad7ac1a7b462d78e09e8dc7003ad7574a1e45b958b0b8aadad2ac97ab95e2e182063188661ae2746ba50f3ada9d15a5da08c235b4b972c5d30a0484c22914824d7138b9fa3ad8fef72f1a0a3fa72a1e88dff72a11e254d499a6f4dcd2f10c9560d6a20450654be4459294b9b2d2133acd2e14cf94e528bd22a33947cebadebaa185665869a6ffde84acdf9566a4a39a2d2baa44663bd7c20975a19764994bc4626d3e88261f4188aadf95b653d1d35bb895917bb50d79cd5fdc15b52d75b2f33d435dfa296f5d29a544aab5ea8797ff01669e7f556ea9a6f5d172ada2a5d0c248b5d28487ab22a59160c0cf34be9aa5fd90be5d6d30bc65acc7a8ac5984c3193a22c5b6badb54a17aa7acb7a98abfe755d97556955e341afa55192b5a33e25552b8bb96270b9502ed5b25ec6e22d57e6c2b4fab4c4a552a954723db1fa3017cafafaf27ad265d5aabeb4b44be3416f75b9504c61aacce4cb559ab27469942665f195d5748181901430681b8a20e43cfd43c4465cd091f6c14db6f374bcf72c06abe3f9d3a4acebda8fd11de2798dd7745094f994f2b583327377fb95aad5df959aef5177eda0d56fa42b9f760cfe4ca67981aa7a17a59fa3e97ba9e470667c5d26512eb0ce6cf4d8c78be685d1636f63b0da244579a598e385b2725e3ddca57294c1307aecab2b060c676e5686aa4fdfba52afba50755a170a66e402bd50a56b652877e95f578fa9e5f4d8eae5d38b527a355f5346f89c5bd8f5b3fea555be54db6a987c27cd7b943f2de556531b54397239e74f4a92071fb442a4c58a6a8a9527324a2b40d7ca92bb65d759c1c17bef592132638c71566ea84a5196caaaac6a5691a23a61518b42a06de2b07355965c298a5c570588372bb751ebe52aec076fb95609cacf8e5d94c0cd4dbaa2bdfdcaa5f2c45171420508cfdf55a758b9dbbbede3a8e4e096322a49a0d481c5a26915a74f1e7c30c8e77611777b3f878042c4f8022989ccc84390905bea9373961052be90a2e5d6eb86a4603124e54a5b9645ab9427529838e76a781386d23dc6d8a3891d5d3724451023ac4c7136c668e5c98df2013d36f793236a3d9ab072a48a951d1c6449a28a134c2c76dd50951e0055e9e122a9b233a5e7ce5c372405923baf1b924205d106da41fac11db552682b7daf4a0f25528248d920e507293a1011654b942e523758a22849f028583680430b8e9862073a38e2890ed9736409539842054cb208f1032596910ca806376892821c585085c70b2657fc100104122118f19672235652fe8006b3ca614d1f8594289a88c20b29e513360a2d508e5431d70d459183288e5c37f35da633e573f683b764f44237805b77664a1e943b975f3b1d6f661fa34f3172b05b8cdbae46ff09a7bffd9f06d6eb019d3da8142eb65539091591000082a0008316000020140c8a04224190c4819c74f914000c65943e66582c15c723a13890e2300883280aa228630042042162104243442628b0d0db0dff919af4eb8f8eda9d25102025c562e27af625589da8289bbea44d2409b016cbbca28895783cd55ba80e07ac0768af90f3ddaab67eb2c28e39b0edccabcb2e841d6e366184033ff7eaf13a76bfe67dab54e50c4c97e76e5db7c2b3999aed62d92a0c877f25f6016a9fe9631b7101e477b9c40cd415736c21b573b0dedb1f495108722dfae3e5e56a2b6e38f55703a9844f7f0986563436626fc870cfadd0b597ab40daacb2e8ae97db6a58d7a8171bb6642ac8d968a859dbd146ccdcd0c27c925fbcaa54b2c5616e5e7cc426c6dec383bbb16e986bd83e4579cc549f6c7673e036ec0c4e5dd29bc076b60f22802f6f30c23142c1a05252bb2aea8b9d6ca2774810e574a368a956905f899fd727f6c47ae13d91994fdb2b8b39364f43d810b13e1c5d6abc0d593a70431e669a85537b253ed4d7ab5118525f762b9c612ab7f47b96c486f07b515b9ae432ac4815f090e561161d314f20da02e9a56eb22f8b8fddc4ca2100ccf3fcf965276edceb897be83f00e6d7eb0bdd919fa41cd8d62e072b5ba84d07a31cac9c4513361096d602b48c357f19044da6b3521178edc08f2ab7c9efafef843c9198a5ddc1eb120552aa21746527938bb64ea527c1199da62e819a2dbb87840d657080e7ed1a0537075b3ccd4bb3887649c3b16893507612a98bf6b9088ec5f5906f354b901b5422664ba70bf7ad300f189b78f3a97e07317e1109773d27329f9258c27a3f3fefd132e332aab24c6937481118997b9608c817a51321675611ed2732052c42491d212cc3d28ba94aee0ca20eea885d7b3c6367b4d2748a5b6d8ec75996ba315aa5838e65fd5e4d6c42ee1725903f71f53dcb94481815af639ac99686b9f4ed394e3f4ca1cc5994bc57a141652cd8f083a78ca45128bd502fd353529c1d60f587e189b937eb75482fde0cb86c37b9a0fd07a3ad256edf190ccf91c6f74cfe083be1063f9bf7291a334705609398660293cc5cf7586cbeb19a3fa17f5a3a3e0bc082c96cc4831ce18c66e3ec9e98f17f60d9244fd1028c22088f1b358298e4aae0e22d26ffeebfc8ef80b8d1f93ab288983e002bbb2db9dd96558f2522937b79e0c98e6d2e2e262c6582ca1fcf8e283eb1a430a9a348043102fa5a5aaa1e6e2bf49f6066675435f8ddc4559ca188b0967107134e6581c515dd15899fdd052ab74b52dc5002b58e871b4a5927a2f322966d29abd64e35720438f1633304d5bc59f59a960ce6bb90a88ca01fa8d4d06fb7256c3d12a4f30f9070b9e9e3a20d271b81e3fc7a2e86b7b1685cc07c2d281e25ee18ebbb7b544ddc850750494d4ab3b2475e428bf933e07b18e745143c09a82d60492e51e79ca0c48e3e6b54611587dc587cf7387d8eb6616ba16c4d9baae4e7b8508a39cbb052ee8615d29e36e81d6ede6c17cec85fff7d04ab9bfc7f3203d9e3eddb50119773ba9d6fe981f0c923e2e570a596fb789bc263d9b76ae5a62cd963637a1499348f88511a9c49df6410913bda138282292238999fa397ca8e2dba0d474bf5a5468e62424c116c63816dd8cc41dc1f2ba739700a5d9edca30f62724a3e2cc4fa9938dbf978374b0c0b73db1f3347636c8c3ddec04105e52312eb24795e5a1e7ab1727e1006c72820746bb697ff3f7aa7149f9ed103eb61c89d1ba1106838269e47cd78778c8034c78033fa8e03a867a7a1d7b91d96c7b8edaff718532667bab15303b57c78671587b8dd4e66001797b1333990416b75d07a3f7ba848e30896521aae71905e2bec58b617810723ac072bd85191a4edd503adaacd00117e8ccd1abad852d1a99f6a97a19df39d1c4b25a5f2b5eee30b81595f5e01fb96f219f1c17da7cb62ad796fc58c35c20ff4e6fc1e9358abb828d551e937ddbb06e5494d5878018cbb892dbd337ec4c2fe4d8baffb23e3372dfb31115081db3b86711dbd80f591aec1019169c288838ace648c55a0c0b18a2ff3431f36baf2b558a8450f6caf4292ea85bfe36abe3544b4a69c885b35ba5d4ef0b610d1763405074a4bf7a150c299a7a3c393decbc4ccc5604a9e8f403a832cf8850443c9305fd701ca2d120e0bd2663549d34402d5262a36d67380c22bf6808bf7558b793308c3a053ccdfc45188088825ddc6fd8b60ce9eac677fcd06fa818faea0e8aaf8a6b8f5c29aed18abf8653e62f8a372cd3020665e94ca1cf07f1fd7079d90559a3aa92f4ceb2800d7a915892889c685385f7fa55fe94e4cbbe91c8067ccef6fb5e2935c692abadf2f782e30212c53c271bd13c16eeefe4a00999a17b3136ffa9c8120de109cf4425eec38410eeff332a5e17f208512955643516ae7e5a9c10f6139fac0d98112be2866376fb9304a0dba535eb166a7504cf26a10e854f837dc4089a78f75dd0d1240a578495589aa8c4f31c32bab757900f9cf06611ac53f4c4425cab0e3c2b646dd93af4bb5bdf06f643acf3ffa755e65d2653e5a07126c28219ee73dcbd17972a30bc0e69523c654158bbec7cfed27719f52237b9e9180a9da11984ba0090a56064061b41df10ac2acf66d092a9a325aedf39ea29adaf1f7e45174d2c384ba5d5a7d858e4faf71976d8460b6e22d46e587a9e9ddca2458959b98baf014778300e24d021144b7975a31e8315b5a57ee98f311834e0a7f46e0391454e114c9f09df50b4d762460084f3d65d9e1b6d2b405c2b8a1e3b370d312eb9db675e4320176f7d5ee46791cfac744d7ed6273b15ef420d193397a8486b4fec282b7171a659029fa7396ac5db5c61ef6444315d01a0f55dbfe0baceceb6daa8dc58c3af2faecb06c580cae3dbe4a3479be2e0bd2488dee060409b4b69d62ef40dcc16ba48ad8b6a8c24aa3262bcd1cadde1c86ec9d6b21bae05c85e7258da846cf75b23478d663befe5a8a0b2ad9f2083cf8091244a1e6721dc1ec05ce405804e24960ce576f221f514118ec6e069b29d9196692239c111a91b44ff360252928d507c92dd09c8fa83b8de9260055ba641c4a78693f007a1de1abdcc2e4478fb5ab55395cd1c89463c87563e74df99ca16a692044041edd9e901c34a003ab9688828e898c7883b748c783155a12502cd69ef8622ad6cfb9bb7df0a55b09f5134a5c26bcadb46e0682a5e4fe55559173d4ad387dec93560eb55f98c546029a287d788bd09092429fc84a8c2e257ec35080e85a402a8dd0c8e0fcaf86d3e0f1305f6ffe7f6544f149643f08a5c43061bc06253c965ec962e4b93bc18701f8c36bcc5ea27852fbc0c7181f9fa9face6327ecfbb8048440349707d2959e556f5182229722f4c232a1015d7ca65c0ff04102d36a582fb0e87e31899b80aaf72acf04be789f5bb21fe8bfb9c7cd72472a14ebdd0966974ecede90617b3eb058c684a5d016f93b4b025840f4a45874cfed1a9a1c4fe5d21ace1919290c2e079e8a85bd02f8dafde60e2278ee1206acfcac4310433781858ec1559918cf03098358312d09d8147cacbb943dd616a126e96615314adb2319f5cce01e4b68d1cc026e5367e2918f6e626c9e9ae5f0c3c1b288f52a908bba7dc4c705c9b73da1efacc4dc0e274e10fb2d7b43284169386d725570a0f737e785abcfbcc5ddc95595012101881069fbed483607b0f43d8d56dc21c08cfab35194bff03035706b09a9a2eef5039175e9290cbe9e28963f91919220e7f0c5f07b4b74d24fb81f42f2152044f72f49227f3b76c26f84c56e6d48dbed26112ecf4743a9150b2994a156030a88789ce8125dcce57539e85803db24f5306a8acc36c734ed2dbd1b20af3820a694fe708ee4275503fa1017199e2ef178b4b89dd2070c996e31c5a72605f10affec183d7b7b0207dff4ca844f109b0a8534dc9d0e4c5c769acd58802e900348dca346ea95dd988fd28d20922739d7a3befe1dc224fbd5f939d38c010a88b9ac640a8fa627cdfb7186f6776f94009afeee48db60ce98de049186ccbd5b007225a02b34e220ee3be03e19bde88b229f8e2f9b7bcbaffcd8a595098d31e650ec558f390f33510f70130222163c5bca11bed79e907f7b6a2fd029967d5d22f7c2e537df1ff28e0d27eab16bb5ac76d65e06361a260e7f17ba9b6a5e65f60c5590130602ec41ab7b194399b0578edb6529bb5eefc03f93183235dbc140228e7671c44a893ab031877bde5acd546392b9d27186138fda42624742da4b3ee97587ab3a6e083bc2f70c7cbade94f173d333d24f8e086b09daa327cf51990421042a1a4ca327fff7277eace267282591fce8423794fb15ac94167ec9609c9c722a9e0b224d354c294aa9bda12e66749b33f7f427b15bbfbc027a7448c15bfa83a30617733292ed95c57d8d087c6dbfeb4f4ea205b987634e94ec3b04569b78db1d69716a9e4e6d7157d2c8c8202f26511b7c8df62e071eeddfe1b24dd2c45eabad61f744d104bb5e7b7d0281c6f5628135494182d396b03cbe2397734efc43c5e251880f99c4a55b9694e4ab83f20bbb6b7ad9195ab413570bce660b392d9b2bf4da01215cbf9dcd142a93ed0c2c4aad82d2e29b32612392a3acb8a654f808e49050f10edcf9f1fc54400833a798774e3ea5e666653ce4941741363cbabb5ae11cd9bd36d66860f26600a89d26c5b736bbabbef49247662ac7ad58c7d5d407bf16f949ef4cb9ed8c878820d050c920d7e20d1968940dc8e9b844724c24cb544270820fc8e6186f646c373922066d10618b0e08201c604b3a79ed40910f2885a34b3aaae6b4ec386e82146a860ad146c4f2ef413677f8f8605cecf7ef8102aaef8d6a9e8034394687bb640202cb5742ed7a938d8672e031ee1b9cb657a3383369ff6539cfd40a5a20980bc33f18a9a3e6dc2c65325fd437bda5dc377a07c52b39c63cde7152f51920a53219831c8397665241b724d31d6c6d1815f4df6c79aa9012df10dd7cd5975916e99b5a75e1cc506d8d05d5acf06f7097fbfa27b9b014a5ad984834ac76357a628bfeff9c6fe2746cd15593423ca9e0b341a3c73b78f5dbee89fc2c14f160d39ec848a261a44e4ad7af2f8f2de468f0772d365ee7e64ea472c10b4063d867e02d24f1810578f73b4d758b349d1544fd086852b5afe853f40895923fea5287aa6f0218bf7e145041778b54d0383b17ae2a67f61e1b8485f5d3665208296dd2eb363545ee443913078e5bf3dc60469bc9a7319454edcc07725357be53f4bf0521844e85fccec0539a95468ded2e858152bc40df74c081044f81a5492221e8d59d42e361d87052c9588a4a9d07fbba53541954712038ff9e087a14d734c85c45d0e4c1a019f03d5242871c61fd4c0dd1d93db121bb0258f93519c97040e943c66fe79838e458e3ac484a6ec00323a78cec6505bd0769ed1cd6a5f3d1f16e3b3fbaffc12bcc1107430637547eeb8c414e3b5c6267ac21561768c65a080573e7863a2ace44bde4937e33463946bc13b61f23ad2c7eef845314b1168de4933a546f00d9e1994fba1181aa89177b75d245c7df4bd38a6744fedfa583961b641b764a50c88ebd5271679012c8d78a530094a32c5639903fe73f141c118dcded1d437211215648521d9ec790bb4065a54054ac493d89fb566266652b80e36360948385e73628d09e711c5ab59ba6183326f3a7ae30e4c8665ebd500d64dad1d5c348a3699af513b4f4c048cc11930bf52a27f91edea347a3e640c1d71b71c33f0232c28338aa2d45515bac1ea317ac9aa19a73b0fb5552b5f5c85c6e4330dc07775716e2d2c73fa03c87ecfd86eafd3001a80e5c3d51f16c1ae13b107005fca769a5480493718c0e076a000477678ed8d490a0021f16d0fa1fed0509050700bfdd3c46e49127e86d083da6cf56d8cbda14e6c85776cf6d9ef853793ee40d3b3d6ff5fc48ce20b7a7b8497edbf10da67cac76c7e22e780008e0d9b574296539266d29bb4b0e8f43ba40857577088c6b95cead2af8045ff031e46d613924bd9302076e99dfc170b90cd107f7ffcea316ac97030f0e391e28161eec6e4bb4198a3152477f77f7303ed61612cdcb9207d22d8bf35e14ec93e4a8435a768ebfc2e1ed2900bc5e86009e5f4044d2b47b0ba836d5974e900d2250be569131236eb4722bad5c551f225ee94189be51624cb34835da3f17ef0a7598fedb64d09c37938188833a4bf8c9d512b500ba880da43e769611d3024062e64f896e738d0f85751232a0781f66eeff299ad2f10c168e3033c55f270282b3d3bf9ec9fd470290f980338c970c0281a5a13b191d93723c0817aaa17902da1e53e7d17f212e4fdf69740d3a490cbeac81679212aa052f878bca6f108dbb72e303c6efefa766e11e13066d8a196b0e3cbd827ee5c430bb9fed47a4052e8de90ed817962b6ecb157869a983e5fec5fbde9151698972c15a5567830f3b715b9516a779840b064fb5eb5ca78825335b898e70e34e55bbde35337000b77d86b89645ddf17e72f09bd77dd1809e78113489c9ece58989440cbb52f57d576adacf98dfb6d1c05ca1d6e111350036d5073afdd9ff78e4900df09f5120170c0213721fc580468b8937b256dee2227bdf1b342f3038fcbf6ee71ff5133afe6ce5a55adecf23c657ab137718fe81da4fd27df0046e98408c95cfc1d29bf02031f9e37a63f0ff3efee673fb4e690a091b0ade182b28bde77e3b02d08573fc9457f5eda1ed1cc583588214194757e72033c1bc55de8c57703725b7ec8603a204bac3015ee304f6271cdc5612abe4b51e8fe6cda3c724331fbed861955f6836811dab3a18e971e54c3d7ecc5ac1cf0d2e2598e6db89ec970eedf0d3995940e374cc2b6c1b7378ff995b7ef41a41ee51b780e2a91b3e083868cab03797d357fbef9fb85728c9427cd86ef1a5aa61994837db29dc2bdb37828d721a0a6ff12f71965db4060f4b586f99c65d83004e48a0b409e0929bccc41ecfc9071864950b3147173d4c960d378fbe61972f7e722ebd89f31f38c3f20dee2c44e08b29f66e188c0cc9eaa4d12cbbb8d45aa109ccbdd8258659fbc7ba12dcf3d26b0ae8cb2a8af118febf8fe17a91f109815609d4f805c343df6728c3755286c5abf9e272551c30fa6e6af3d5352fdfd787f7f46441042d23e92b5fe98b425cd8abcffc3182c8f0881b08971107bd7c4367f80f026e1867a6a165e9e825eac62d341d6655b00722a36f78efecb05ae37a9703d072c92162008d5f88c6a483cedbd0e1b941b1f8818286888c5b814f6ce290cd943892b3e65f9ad655ac4afbb708d939a234223db1d1d7ad456357bd81a2774c2e7cb0cf2f838cfdad9f3e3cd8383f8f89f3ab7899aa5be6254b448e533e50a1dd56e048fd8f233f46e8972d9ab8cf8589f4af7b492a80722147e45263d3f01dca714d54067c13e246e6773154ff10f77c217250041853119fe07393a0e7713512a6561b4ef913ee7372aba25a9fb8b04b403967326cfa1e5d9737d81e59e90d1927003ad218b676a7c9045429af629a2b6caaed41ccf3d4622d5c146212e351cf56185038a104ab03f975d858c066b4434e7f7fcd5b6870ea0fa448ffdaf59e43d40ebbfce68153ddbeb004ea61eb540d43290e22db81511727c426f16562c4c470d4014364f0324b019c0b5bc85c35f21633de358debfe34d0f0adae72b3f833de4bcf07d6b47468617e1f7f05bee57f68bae1adc1ae100da4c5e8303fcdcdc573ab688f779b82167bb1012ad0e1012aa4e70354a0e306e848bf058abe1fa6725027289dee06b4725f22a92d880eb7f62a62e1709e16d5b54082144d9df98417a628b57d3ed16aa1d9a92ee3b684f154fae33962026cf7cadb85b2fb559c2ccdc6a65254dc7448dc37242191199871a16a03c8527214b2828ff142543087850a76dbfb03f209c89393e26b6e1650e0b7d30079a4aabb2e2f106e900355b55297c114cd06d397e892ae21add5cfa11cfc227863eff1f457305d2ae208377a122b3826555818c902c69c2ef9f70c186bf6f511d0df1099689dd5e940e7070430e05fca3b0ff79f802eaac93195ba5dbf510e20a74e578728b0cf404463ffbdb8e8d42951c1016135517f4e98a0c0c91bcc77366f6ea2db87081f390b8cb3538f70e4bc194bff44a5ab8d4eae8ebfcac3369d1235d7d7394567c24e1f36be1a4a38a252dd5a07aaf5f1cabcc0ade4942f16051b2a900a381b95f1a810a06e62aee7604a29c6f6477100549746bd518e4eab84b8504d8f476809690e8e4e2196ffad3a53daf9001e023c176fdfc997e0609a48af929857ea2306a992abe38ae1260da53b062cae53e6e8741d060e0c188760c25469a80a2b6d56f9ea45ea2b6de5b843783b89c03d0d5d10e919bce553095b19617203ea0ab24a84ab30659671abae170fabce4c4cb9425e19a24f969842574d3d3530147d5a71e5eb0590964414ac54fa0c110f230a525638ed20025897969fcb6be07ec28653d5d4c3488f1e95381de43e9eb817a7e481bd7dd4d61c7734ea718a32911292ca337068a477b309bf2151815792f114f04cf29a781a790b9dc7dc528eb109f79cf591cf90b039e0561be1628f61ca76b172b3a799348508222a2a3e8a0cb64cebf9e84f712fe3deb5fdaa78fff8a70f9d7824252031987d374d0515a76f619c2d495a583259cdd0e3ccb6296d8809c08edbe4cb861add306066d18087092c06634389060f7be506d40ff0363f9e2cf628c49b67c26496d3ab64d0a3d36e0086bb7df63d1d7eaba89ab5d4d6406b55bbc0d7c8cc8ca50900c6e2899a2fbe063952e0e566c38985b58acf6d54e4efb2c83cc0cb8dfef6d601c9e50a0fb77a3bb60b8fd7078e7d2ae64513157f6dc4c4e5e1f59d28b410ce2b927be5096a3756f36fc1dfdf86d5df2e07b2d60afa4694c8fcfc599fde5c59ef53d4cb4e00c05c5398d4d0c45b7ffc1fe2cb860b12d9ce624e04198c294965c7b9ce5ea28fe9aa6580028c0ff4c13d29d19adb08186b869fc312242642196c7dcdd32bd119abbbce6e51bf82ae5a9724e59e57b57ec1190551086e658b99783a5bf8dd5984349edf64b916f28b7af856ae7a8e4362d461e0d55b9903da18beb8be1242d3a5e19a4965e4440b192b7e4795ab5ebcb3b8a6bdc7253886ab13b2f2c81224937f21e0f15e714dadd71281c26293070ed70a4374c1fa3e6d156408043ca52eae6ed3bec7ba82526a38a582e951101dcdd1d444b88b6df4b8ba76d0e1753cec936573252965219c45b7ac5f594e76d2c8de87f3c1e1687626d6c6616756899ad5039c4a2adad2022b764b62835072cba06370ba049752e7705f549558876e4f9a4bb6541e4cda5c77b61939586fa9851a2360558b227093324c1da23d90074b20f11ae6d10779109a8e151f55aa536a8816d86b470899498df59f8e650ddbaced9a79806de5977980185b4bb60fc22489e1ce66fabd6183fbb84ccf8b086da6715f6fb54bc58edeffa327bf2e0a718a2797efa3317c0cbfdfb8af9fb18c33f205101c920b0ca645b8d261243db6464c3a70241dc6927367a02cf8a838e09045cc306e5e56ae1ad3b388692d4ed8ce567a84a0470f5056b9b64150038dfce8819f997a262d960c93c3bf3eef4cee66fe012ccda47c9be4b9239ee195ac7ef49e20e3069379d4926f55bd6ab6c659d472b0d9481fd4ed7787d9aa82cc0bc0446dce1010b7e49cb92b2229b11ea553ce3d911273a9f23b7671c0fd5bca287292be7f1b0e58e636eb1b0b6b10c7a10839bd0443838c75caaee4d8b5dacfbd420a3b5f82bcd91c63fbda016b499fe7363a0e1d4db3df81341ee180ec71d8e0988ef4e2e2410249883a02764d4b514713aea1614dcc234262973a423fae7921bb5fb088e99f22a0a6c83110ec0123a566857431e491ed1d80a645bbd0279108a772eef627e72b9d81d4b04d09a9b16684866c8118564218a730674668d14a43e19c1303aa45a357e26857222eca8850bd7bb4b1344f9b693a279aa11195e5095df0b1a10e5edb58539b1b0a613e37926569f0a19fb898297ce2a704d287acb65cbcaecb30a30911aa30583c7d0d735777218e8433928fb69eb2b7655caf3525c7e33a8049b317791edb6b56042dbb450a6fe85aa0380b17f1afdd43efa3b5522dde50297ee8b653b1a157423ae8fc7ee56a39fbde487a4ae713bc65c7ff092bbf5286dcd5e6382fc8dfc3581fe57ecff6e5dc39b8fbc3acd4f464a9cffe49de21cbd635e559b27744451a503e106770cc8eecd3dde0436c845359e616fb3b4bad296377ee730d11a45d880dd0603202a1edbc9d17c8a15aedf96c8a62d7ad666a847bbca62d7d9c550adbcbf73977869212c0d53fccf256b5bcfd0fd119832796596c3ed48e63a596fa001ece60b636e248fc333b049f9244aad9a7843bdcf8a8b8d6bf4a2c1c009dcbb0e435fcfc90fc45d1412bc03e57fb816b57ff8e385507ded89d69760a1c81d64c6254478f7e45264ac9f760594c4569676c3522212311e98d97aab861ad4009afa06d1ce74fb36dc7857da78a98f60293ecc6363a65708b7ba96cf00ca949478c97df166d95f9de8eb0ef01912f519515d0cfd0b5fc00893da17d0b8c8643d84016c4378f316caf7d0da2b1f46b4e86b6ebd23fcc7d906573747a20187ea2b875151c1f1f953324980a05c1c2892991afad59f8c3f8c79386ec3cebcdcacaa43dc291eeac4fe78a579f78c7acf77dd82d83be2049a175aeea23a63ffcc786bfd7a2193967f112a389ba0fb0c1e18499cea438734a13f11fbb44df4112c5e21de3c0655542936e4ff063fbdaa12908066280bbb8af08f593c08e7a6976031009d67dfd45e99a7eaebdd5ffeed830c75612c0832e11ba71abdcae70de17593f49257807c7f1e8e7101dc6d18b43bf844d84f2dcd5e0cbc2f5b50cf2052549df689afb7192a5ef4b890abe7ac3ebb8a035fa48a46ece619fa6d2b7643fa23835596b150870de0706c17bebdfc4fcc1c72ec201e8eca0c07edd8762db93bafd543d7e905c3487f99a46580deb39bce976767120631e7284afba6eca24b86d620fbe04af5b0e826fc4663b1bfa1370d8ad4411a2e39085939b6d24a3211ef3698e4187e5d7e380d46e9664358ca45917f381511d9306e484e22e75b2ba077b82c03ad2ba205b08fa6147bc20a03bb6fa74a01df6e2f5282b428cf005bebe80bf10dc8550d1321d813a12126a6ccfb63b4265c0366b61c26af789c88daf43579d06445e987fbebe21c895db49eee305c282eae8b9ec35b1d3c0105170ce9761eaf874c3d019e199e757f737ac474109c6cc197ab8f249c6228202d58dd850b2f03177122077dbbc453aeccbe8c1e7227508f60e1c70c5f37a35e49c9fb55ec08175558792574e98d8ea612d6a8402577e3c528f08c7af07518b93c1c3a835a103e065adef10cc336e2dcc26d935435e370960a035ecdddbe90034a27c160164fd8765e487ca80ee6105e63d6a00e9d0000d81c05f64c2d2691ab2cd0a7957e209eb6e5e276e429c933b59b4a2950334c80266f5625d00174a8c0386c1ba4128b17053902b7cc21eb45461413153a124f2ab27096a0d72a411e341ce38803aa74c25698e9bf3a52d4e19a76e9d2520fd7a6d61506e6e9ee623a3f44ceac221f390510e0b307529d854c806f6df7bcba1141fe84442c19bb7e4404a6e3bb7f2b66924ccd3c1d49733576dc84cf2d01fdc7c0ed2e066f9e0c2e81449388949f44f12c17eef15ba8bbf449fa7a096bc66a9fb9b89b71830dc942f8e0b0c962477c5a0bc561c43d7388faac7c63c74a9ab0611ec435bbc62279330b0fce68638b2744a8aba1e90748ee81344808e115bfd5514c81aaf9dbfba01869753d668249bcb4c98322f03f2d9fd46212c9d298d4aba66561d683cc682afbe5a10e703525f2b9ab16d4665e25e13d0841a6681ac8abfb56e88292303c5645d86f2cfb3b3d7aae32d484d9a82075c4dc6598f4c3da2bfae372342fa3a2f60baf36ba625a4115980725fb7ec1cf6495a35e75e06205fab1c5ee384a93c2a8de4ffb36cf14b2a51438270264cb411f04ee4a9df2e3b47741c9fc9b4453133208e3aaf3c8273ec607d8e17fdc311c22456f1cc08927b3113d30689732f8d9d22c14473eb1c403c94ab80b37fa5acd8bbdc2e3582dcb48d28d4b520326d6edd929ee2cad2d2f4b2923b7f2917525b7aef9faae2add59062c8344f96cca9da8de09e71017e9a60da82b731462775db804ddd87641e392ae4803646188f536f916ca944dd5c8c13041aae8a1c7d6d530f9f74375cba672dfb52d30e36ed250f8e5af35d14a796bd160305651513753102873c83b3f3f6a1bf74bf9647cec079279960fef282191a80d9d813bf0ec019aec6aa9b54d1dea796a19b6c592df58faefd80bcfeca3429e070b815a5d1c255b00b4f0a19c05ff2c5ddb2b652ca175e42b5472937ace0b6d00e3637d6a61db4e7589b7630e5b105dc73c2f593567e0e2414c2b6a329ae4f3b5839768ea95fe2912292434a8d7429ed60970fc4be765ab3e894e57005eed59dffaa92ff3b858d16dc1f6f18c0a84a1a06502bb495e496e16fc300c216d43080a842df3080399a978b9b7a49ab717facce332bca3b8db175d8bb980617c3c7e078bb942aafae65b8c10578a0b5d9d63857e500c1b4516c771786dbf5a106184b97728eb7cadbd769be084983b1d203e076ef47de0d5fd65d98346ea9b5239917016d938251d48b5d81dbeddcb65a17b268c1b3c42a2f40825367056ef7e61e6a17b0902f875c7d2bef1d186887686f7b3070bbf4e3270649450b758f26190643453b18b06c1e0138b70b96a3934235c8ab51d5073cdbdcaedbc844accb71cb116feabb403296aa8f0ef4e4580a109dcdf2cc1f64324b216d6eb833f4ddca766c7b9ba4d5411be608ad5605ca3669d870b8d745cc89520c462b8dd65409182bf93f23c6c708932cac5ddf1503c8aebff3aec90ac33a9854c3f3e5d993dead6b150740a638ada12900b20a82e857a6e69be5564c9871d4e6ba82e6efb81dadc8a47fcd7c6689b6448ed024d0b356f873c3b9e9ade69d8e0a71014da80397c7df3c7784af33fa5bec169a1cee261cb4e705dda9ee0f0c6741e732881cd20beafe61323f7e2d73e14972b0a0f5cf2dd2783a18129af4984de5db4b8d6cf8ee86deb5c1017a7c18bd1b447ae10d66ab5a736d75f0d769b4ecbd261b6cea98b3f17c229c29c54e459e69e9bdfdc94c1b3192d28235a564800e2b80ec8752402a318f2cd640e043ba8c00e6a9c8989ebc9267bb63b84e9e4c39d8eef894ef6d650a15e6438a58399c84caefdd5bae18012ac198439b665dc96653644e740bc7f6b7e8d0b5564bde9b4cec022c41ce03d9ac5373e9bb0c1fcf0c2f5136f143a2fdf25fe4d2e5625bb61b72e6c0ec96c120790c446a5107fa7562b32b9c7b3db4303ee03505a14790c56e6121f3d7840868a7c7fca8a332aaffafd8a2da455e6d60e9fd1f61de489920e90ccff3acd8a0c351ad329d20080112e5dd4fe1e72802dbe62c249579f711ab9ea240dc09f2ce98075f733a5b3ae487636fa2b64a5f85490c03ab4d9beb9d14b6fc763d819db5237c1c0556f01a8e780d45e37d0f5d61d25e8843a5d80f87f796be005c0c52250188b540c2b12a7a21185e31178f35c014779b6b5eb7fe992011161cef711a704524058628440a42528540518ec447548bfc6be29f801cbf9c70655745eedb0b376ef207fc37c6b9d9c25aa7cbd6b552f138e6ef41d6069cd152559dd32e585cb93e763f883d946c482510233565ea64d25ce84e56f49120694857234fbc030979e45e5d539b1ecc3b44cb53839565af69e1d0b3ce38031ebd566e88427a7ddfb9e6d7302faf94bcca8cfe4e2659ac53b2cea5651cf1f2210c0b4005b92cc1f73d4ea9d800d2b63fdd72c20faa9d599d1d5fc681792b761bb94e363168e30d7d958f20b34f2c83baf3ecbbcc413ba087221436b01e59b2aaaba2000ff4e02f7e3040bc2a09ddc57406fd76ddd5323640a47b1ef98411ff741362424899dc6ae6ee3ce8df5a7d40c4709cf3c4804706aca1f28b83723266c427a14c1bbd16fcaea6db4d3bcd1253736692708184726e7420d019040310c5d82039fc5712203e610fc5d42c0eae8e02155d9d56ed080975413904251e044d884240493731b1ea642f1cbfd000b0cf10e5d42217b013ef67b1a174af7a9f64f70bdd267994776e47861532e94302e924dc35a7687926caa0b5242234b74d198f95d3d5641b464481990f315e6a1efca27ba4fa2758e208e44743360b5aac397f94e2dd83b25e0f5e4e3684718615cd90295b20910eac26f7d06872fd307b47faaac7efc67d6b8f93320c76bbd060f6304d6fad8e02c8b587ba9e11a24340f6e006e40b8c7c8a786ded9c618e5f5feaf8e2c311ce4fae3e211fb8290473ee401bf6509fbe3fcefbd7f4b12347d6e05a711d5c8fd6406a11a366bffbf706041313653d5d70cb5d457a01ba499011108f83477620f5d8f15e520f80663e8370165318bcfa3201a958ece6fcd75f92bc71841e109529129466a59aa2cf9a372a9329246eda5fe8be3e63d0a85ca6906896592eeeefb30646ca650a89921264718b2ded711f83e2fa8690e44b0392371a623e0e683c547d9708a0c8343428972950a2f1e753eaeea258ce19a56aaee64b9d049aec8f8747d6b40851909de3795de1425d13cc713fda85a8332846b11828bd6ef09eda449ac1b2f64ea4b71e4249376f89b97b63f438106089d26cfc12846e0d62864040250b1a0cb6fcc10185e29e1bebacc7684933c1affbb9dcd209f417aa86270f4a0aba158bc57a137820ecf12c5c2f46123e6591fd5f182ec1d659a14d289da19156b6aae0eae0ad1c71e3a5091fd994d0f5cfcd74327a0524a4a374b7e3b736bd047cb1f9f095233fa580c98da58d2a6f7b3af8095751cd2007140385f022874a2a4d7c269decd6cf432de590347dbd442cd2357ab20e7feb906e94157cc3a3aa13d322db545d12f7121ea6c207cead0b6f08bb7f79c8df89508cff8d79d29945cc27b22e79264dd53c5193b5c5ccbd0acf5bd7e142191ab196d3fe35c12854f0004001fdbf58cefab1c4ad042dedb8cf0d340cddf345a31eeb6426f6180c50029af9178239cec0776326feb6105315bf5b48605e9508ac982a4d05a72ccf3203c8927753e3b16391d2e3700e7cb621d136740210b634856276f5cbd6e3eb9112ad16966bb0a6863cc852efe7a2f845cf356a1b271d0eec60789588bb84a5e31161869afcd3ceb061bee964b311734492d85a5b0bb4f930784c28bd27d26ef801060cae152f18409867f4839813513c30ddd25ce8742a5d1330180aea07aa2e141d14974c308dc29a437a17ab0ec5350c6c53e1ed10858baeabda1503835368f1e0b52b5056d711ecb7588648f9de14be03856446a5cd40d87b84293b3048e2e17b5073a971eada293a0a10295f498232186428e74a8185055e96da10ed69944afe203ca4f3375ad4207001399c1628ba64cd772d147b1cdac5e5565d503f160bad9c9225d9e92ab5ec21f0c8836faca841700de43814e8e8ca9bdc2d53f600384f0b6eba12cd760b94fb3c2d42e54b9d509f1d0b5496d226ec68e9baf4607c88e363bcaaa170837238166a3ac99a2f2d577b0038cd05d6ba9226368bb57b014e83c2aa8e79938505c47ea7d640994207d8cfd50293a1b24b773b8a0ebba87211054a2a4a73f23d9cee30873c0e70159eab3a7e6edd6a9a445ecdc15325fa44ee1c4e353aa2af9dd3a912f1347eae6eaad5e9c13c435e3ecd3900c9044b30de2474536d4ec3605bf0417f098ad8cf7b2c1ae513e43094d209bcbc07db1251b0998ea3e3b884dd909e5128f68ebd152bffa723a779d147ff82262543340d1d12c5f2196ba7c26c42b2c01d63e7fbfb03639bdf6ac41cb4d8ead451a0447ece806691c292c0cf89f315af2e3686cd7ab1174bf89966a25e59080c1be81945a8f92238b205426d210b3e813e244520d9f618840793535eb789d371ae10ebf26208abcb8752f1c7730964826c21f684402cd93321b245181fd667b00a242354882803a45ec73e3ead5fc1ef6049938d3b1184e1a018ff7fc24991c24ba8af214814967c8898f447023ce93512b025f0d38a26ecef8032497c75f6daa6aea6267e2a015dfd1c6cdc307477563a02f892af16fec52c5de109ca700a3f615d443951e799c971411ab4f10670b6205d260f2eaaa1bf9a004cdcad3e5d8c7f9a61a851bd7f76517a21f393dd9400694e848608736d6a26c5e047ca7cc759270801932a9f5611978ec976c2659097cad101d2ff9e395d414212eb2fe71ef8d0f7dd5671d7d168c6a11f24235445b036e9c5a0b1aa50a27d4ef60becb4b34128a10a783157bfedd1081468a2cfed24ebde64d5d4bb44207fa99cadf3bde709f53cfffb64f9b5f40eeaa2b56759a3b1da5936aadefac447d00b56bd962d7524f73d8ae9781944057ce91efe3b3756dccd3373bac9fd8be71db64cd0f3de7487979293dcaef7083ee9fea3b13d2a5b98485875c0a98ad375ae284233fa37c3c9849cc27243a58e4bed69686e172ee4bca52dea8dbf188c3e825798f060b0ec59d0c1dad3f62e090ffab2352aa9827ae0cc53826fa4144c5bb8413b252e933cca32baeb8f2cfadde2099b3dd5920b4a89e965e90785292792d0605d172e23bc62f04b3e40acf96042ddb40ac4ac888b57b84ba2f6c6d4f1dd5561c029d62fb918eae0ea977a1fb95b381ee248e05609450c258995125826b1c8ab5ee57e3fe5aa94b32b818c9e68b267f29fbd62b49f0b6a8dc580a3927f504092ac8466da1c1b9724dd47c745758aa8cb0c58b2f3e593419820e138aff41b99f261af467887c4290321f4a25afebfc51a89541f2a6c9828994c14478ccbceac9c793d1ccdd7facf4d5bbd2b042fd9a7414f602d3493bd017fddfb1495e1635cc8afc9439a8495b3a5c00443ed98f4ab91a4329ac814956c38f7ec82b3524a3ff1f7582c80efc8d3accbe09e52bf1a9d9cd88b96d7b5d47b13320e968eb77b8ffdcae7e8c11d895c53a608e870fb68de16df16b038035c229c3dd9ef028f7c5c3c8ddf20aa39d70e35ae933b6211203825b202a95c6456d8a5f53ecf17adefe82a0596b50e2040150974ab0c3cbbc2d1c675eea09fb880a2088717f95e2d14a8974e69dda6bd8d64325702d70caff6a544a76b9bb68f695a5dae1406edd973ff025c5e51b3febdf768fef4997e3cb134f9982ac0b2a81bf2172aec3f23fb969ec2e2b83753aed3ea663a464acb4263d2e53208355fc9a2257a5c45cdccd92ee5d3b6a70c8e6ca34cc81b9f0af403e3b0d0b689bb1326a5b32a36c5658ccfd11b871aae67850e133e927fb40984f19a9c3b4035212d8b2a6f00cd0960dfb61746b92839d881c228b90aca6ba7d14aae458d726dac31bef80ec8b05103db3993cd0784eafd977ff5fffcb6317a653c319784fbb1ca30ee30fb0be31ad21b1d3778c0972a5fcde4392c498c2ae21a2b0b54fd0082fbb1e227caab176e51362686ee6fb0ac4e3f618ebfa13c1e2a4f06edd9429e88d04c33aea785d6e3e9036160878e9e57bc28ef3c85097aa482de123ab7e158b2aa08e3b3afa658b8f82d7d2d29d52d19f454fb46815ae2aaf96dfe4ba1d4130e4cd4d912b831c070849922dc15b2c2b80e01fdc50b1f6e6f11975418ce0b41f1fbacfb00cef246b1e16dc83020fcbf8b072a9c80fdadf9632ebe45b5b73823cdbd1151b5a109c0270897692b7c5a061cdb90d4f55fe232efb26e46e5e9bfb01c22fcac66da82668cf2bdd18a1517ff9cb12f047bb9f3461e9e2f3a6ab4b68ce60a0f7da3cfad3c3f7f5e0c812f267c861595ae2ab5d50e65a4c783033d1275b0c7c320bf412c2fe2d74eb69486390a7f8e67c06879b0f431e6a0bdb7ca75479000bed1b24b25dc2b2ce5c507bca7f73b919636389e6c7c3d28789852f75bb6b40290225268e2a5f8ffd5cfb4d992b6c58904d852226e98cdfdc7a54ec9e8a04c36edaab63e9d0c2784a0aa2e2a2da84b08192b4e5334cc97c42327a5ba40c2e50be9266130fd2355f5ae5e6a705524183d8b076db5ada9b3d3d81927715f860dc18faf41b954e75a545f55eb0d4e63374b4c8f65c1efc484d4615dace3730eff8d11e0cbe006946e29e93c49f9556eac125c325cc5e8434f4c1d7e00bd20bca5269df760091a668e28513ca540855b8500222de6ed95d476229f5bca6fa030f2c3bf7fe466285936fc809ba77f8f3daaca5fd9d0c0034fff670082f5bd21176dfe5d9b99412560a8d4a6bc68595d177a705e2bdc377eca151719c9f15bc5a5abca8d1e0104ed9528743a867b5d6d56527377dbf47c0633493523b4db5b301fc011438208978d1d23ac9835d5021e252579134705187e395aea754e723dee74cc6a48be8ea140f051fbc01e49a0bcaf4313f8db20cc7176d9fc9923b7674e5dd91964ba97fe3e892b4ef07bb1f620890a73da7b60484450055300390d96d0c3c5b390cb475ad86f1b30341df692a94c17555e45d736b19d199f8200d1ad5e4c02fa463ecfcb52418eaf1082d3e4736c0774b1ffb941a0db1c2218fe8065df53cebda5f8e8868d8d731911d37455175e157e6761ddbc96ab9a81ee9653cbacbcf5ea32eac06a237640e8c115feda1b7c0b468d9504db81a908fa194edc00a36641d3ce2cb0c416372bcad2b5121ba44c79c099c1da450481e496d857a8d6cdeffc91c6b5f857ef57dd4f9d47a947fc325d7d0db00f59d192d713c71da21f36bfdc07f274ca2ffefc7dcdc48f53b25c5b1c577392b85b4d22feca99d69a85bd6904a9d5720e4bb4fdc85b824e79afd51c62aa6876a08ebe215a4b94f6492038190705f6f3170173ecdcd002aeaf38467b386c61f4972a1f8aef8a05fb1bdaa288bcd6b7c293d20426d663bc7677d65cec109d3b3dda00f85c4254f5e877c78844ef6f00aa9ba54221845fa1ac917aabd17a9f7e4f3bd169a5c5fb9fa4c45b0a418e2674a556af45c34d62c186b117e3fc7b6843a76dd5957adc5300b6ba51d7302eaf147044afd1fc2158bb3eac3c21e32ecde93318a0ad68248c29689edfb4d7b8376ccffbeee9ce69dac66bc53b48100f90f4432350d09d90818b870e33fa30ca3f18d8013d70c1675f90591e2305ee644ed2beb6422ce719af66da919dd46b2eb5350c99367fb7de7dd4d8af2b15fd6677f50574d2ca6aac9c4589247bb5b201747caf734380e2d5e7f0218554cf9a816e7fcbacac0e508c8be7b31638106572ce1bc12f3c00a93941c2c34de1f2a571e69ca252feb551e4a4602f32466896fb89a1957a9c761d3c3add8c75a38fa4255d67f5960d2b27a36796d6aa6f8cc6a7f13a670d236bdc5d27f6b0dcb1b0eb268f8c56d2c13fe51f8736c34d72aa8ae6c4dec96aafba50786c80a87064bc65b4ee566108ca4a5fde0897477dad0c7e6162d25b0a4f4bf4ab097fbe9111348c857ad458dc3ee344a83a106c61c0e23d473ef91ab4a0434c0dd5f8ca377fd351faf4e0ebb84d1266fc3dcfc31b98a70fb670a1f26adc217663f365441c45d267c414dc08e4965af232abec1e343518b261288dccc32f6d95c30eeca591048d520905d7ab0989417192040660adb8405e0b392933696096af6156cb2fd40f48057df4983eb877bc929e97c0a4e68160418bc93718c4a14790f4ee7e4a987c0e2c122c092301d28be27a15c4861fb72439afae9c836810b5128d64a707b9ee6bd353c81e1273ef304cad2c8df5bbc7531396ac74f6184424e5ec5faa3c930121fef6f8dd3e0287f986f03dfc82c01c4a8b8f3ab72cc56a083dfd0c49f500c5139c03856e450031479910ff6982adc32404a53d3fa9e5db07789b1f5bdf94d88f91f9729acee028cca6f04be5a3a4a9ae7a2e724f5c445968a9914f8488f249d02d0d12e5f40950559483068cf7fc6cabd327a2ee7305996263f80a47c4a1284a022a4fc832dc0a01295a88792e16065f66bb871231d4a410340826efe924f32ce61f49159136f7a0975dfbf5e5476499c9118ccb6868124f1597e9634bbc0e0f2434f5261a424426448f884c1f10170aa63324287709aa36c154056b65395489c055321b052aa86b74099406efa844bc52a67b699df82f688c79422475ae51105b3854449e3da7548eb26d3645b7c00d261de67783ffc2a8b54de0b9e85a83c96c4e262013cc3448b09d891b4cb8e5db796093d1d322a878aef1da30633cbd6430e1383fc647c2775b51b2139c194cc43bc6dab854e18bb3576e18004274590fe30663f31f3dccfe78dea64b2e442533e52416209b934e5a5007c2c259c02e4bfdaefaee102697daa9f0be007b019348bc09a9e5f5a2fec873f0041ddb45436ea616a9e25c696bfb03d2791a9d7863c842727de2c9c99f9d42d338c2c835c18d1b2c3210f3c29c09ce04a5e724a13b586777fd707f6ce298e6873c509396d48135a35f5c1fb06ec2780745c1033014c89992ede9b970b3c511818f6aa8967c499a40268c0c41c0a3439a164a5a180fe02435ba933cf011420ff5c065416733d5ca5b3a61db5aad10ed50be173a293446d0008e07bea29b01d300a5c8b9733070da3386386163ab4540ace14cdb656110834a83f5c437d024eb24fefd2def1daeefe09135591ce7ae4a58998b1f6185828e33d4ccf67f088cb118d2f2578fa6f3114ffe49e013aee95d09e35a1123690f8160c3f632692da7037c8e18402b9ad820fa6cc1b3d14c0856b2cbffd2651b42a154a5dac2527f19a97f4d1de6542ca7c63b400a3c20da2d27489113141fc305395622f0ef094ea77010574a8f53a1baf4b61eb24fa88547901fc58f0a0006a899395540cd5e01d16a3174129b861ae36a0452359328ef37f242c8be186b931bf6afae13d340e28f370a9db779a825fee1ba9280e6274c7b0abebddcd287a69abdab0acc4cd6608f074557a41dfa8d9d3d74820cbc6b681c8b2dabbafbdedd5b3fd146c29b50da813578d4a24043892fc02458ecb43cf3418af567425e23628f9a39e60342c6edd94c10c77a46bad3b0423b9f1302de25abc10b5f73fe72db26440650c2896cfd164479e38b01c29eb8660c78e61ae37e0b6398477d41293f573bee463ef2a115e2a81254c4920dafbe930b511c74e9126988c73629b0d12fd3c283efa34d19966a1f624df9b40db5be860722e0b04099896f88f40d730a1afa68c13488cb028132ec97461a648524ba3ec197d02fe064331a392f3b29a2811b93d34996d1568c8e6c929537cefb603264adeaea3b63eae4944359c4646a565666822688d3364f22923825d27cabdc604443b8b5ceb3f31e93983704c7570e2a70fa3109ecb2bbd9277f499098e61b11fd8d1742a7207f3c01ea07fe2e01cf337f8ba416430fff7cc6537fc70748c8bb29b23e8f4832a56914021085b58f8838cdd05ff486bbbb2943a0d6738d0649f345fd702d334880d684c451972f021c2851c64b7ff27c8c5c6e8243551c89e103014134456e836c7777cbeee2b508bd9223dce46dc607285b86e67991e802b93ccd27687cc4801c9096efab658c028ce056e88702060cd0bab154ad45b3fd24d8342b8af55954350a2dc8e78fb24f38a18d386f10aeba1e552d427bb985c9f6d1aa984f46e10b7cc8389bfcbc25d89fed8a9c2917359669490d559034a5927f635f90af1498086fa12a68b65e6ae7af445826bba156c4c47c2b8689b8004bea027e832ce7faf16a23935912e4410e26c58d7537a927a42e4097998aa9a459f4d9d5f3beb3555d5f2911bc276d2e3ee9751fa67b7c29a687a0a0383e153b11d63f0b72b182bef53c7228b6789112d97ce60a8b97f561722caf19887fe307369053fbdb44a8b26217691603d1c6de356cdc8597459145d9190725ffd270a0fdb9a5ad0f3de563c8668da66cc8ab2ef8c0573f28495c92827a7741099c9369cb3a5a796affc0373bec2b599ee0f9e09118c06016c29988980b7c20639388f54ab05b170df2f3d1a18072683a50baa78f2ad9fbe045850b32ea88ecda7e18dd8e7f4c3b56f21fe275efe4021284d24e7881004b9b7e4aaff2ce084feb018fa9cc743d37231db8f2094467184b0219da1fb4bd3de63132016ee84eeb392d644b397d0732320b11070e234be8ec179c93ff2b54ffe448ea197a1e2516ba863100921a08b6d71eb81188de4743741025a6f7fcad293a6e35a7b7017d953db3ca01707eb0de49c562c9a38b40dd4a5510652e7cb332ffd6fe13255b4edba19ecc3d2837bb28ab09068287994353341fd9118b4d27a89553575b39b5c9c77f20fee2c183285aa03992d3e968230b1061d0c24475746b1ba9876bfbe8bb72230df9bb917e0b5306d6ac597d8c2e47aa9678af8e941e6e47bac9f048b769c1070b3c2881051f58f081042ef84081de03fb045ab53ecc860b0acb38afee04a184ba33a618ddbf8c2e5159a5526d1046aaa80c76a4a95bce924e66ef436ea38c4d956fbb8b800fee912b413d1a41d2ced6aea5440506af808e168bf9591cc6de770653bf9e8ce550b2cc19266c418a51fe0e36b8fda2b35810b6aaa0e30947fe4df81978c260325ac56107f985d8fc2fafc8649317e01fb96cb72717193653de14b3f9088c3c9124c2a346b95ba5a78c4ae370f56e73ed7aa5002eedaea4e6ca6b72261943bb1c7915ef338e0c0abea804835db31a77f71d608a7cd4449f07045df962f452e839eebe5104c525fe8951c5ae74e37cbbde5b49ff893d5ef68166e9967bf150f42fe82ca92014f62a73f4deb9cbcf800dfff9798423fd140b98dc003601507af2e1c54ab23f15c237c07dea0883594d18558232c2e56ae3dec77dc93a64e623935f03f6d7ef276ff09a5f1d3228905726dc24af267b64883adf63ca124cd663d698b2c776e39b0c48cf21c0c597e951a35ceb14102402b9d4834b5e55706a7c90a22f3aed14a530b4d2e331d9bb9a628641440fb43c8b1a478fdcd1c30fc7214ceb188705fd9f98cb64e2a3e8085f7ccc11b1a4d880051d1b920d00fa832cdbb38c4dbb581dfc29d38cedb159a119339b2e1e1c820d61fd953752b6dcf16a6097933aedb2468ed2802e738cd6d9ae354531cd022fba4c5d284fe7b6a08fb5032112aff14cb1340694b079da3eff9da9cf815c981179244f6c61a2bad761afa7c101fe93a5170da97208a3110643615ca82774ac18d4ff10ea8f7d773824fa3a3dd74319a293d840e028b029c64425cc8297cf7fb1908b929a03e1a8b0098e2995f80a2fcf7db7028e026903c3ab4893585393c20a6e3dfda902220ae6068147d1a638a62a1115bc7eff3685248a5c0e0c47a24d86530ac4641b27ce7c038489aa6bd4e783d6c932913b71fa9221bf1be86c04ab2746a4c23dc037309ec4306f48046c38f953951e71407014a2546a8d5f59f17cd87a66b609fdcce68a9655bb018614b0bba95303a4fcfd6d69d1c4d80ff93400bed1cf30b17d0078fb99a16dd02b5a8202f0272d169e7365cbeb8ff3be28e7e0dbe1823b28c644f9f59731f5cee81c60fb2af4de1a116988ce4b9bdc976553f6857f5761efb4c72fbff8457f1b231c2211e63c0f171ad0e7d9d5e2175cbfe62385eefad8a14620c4a7a0c3f84026e44e4d69c7c6dbe0a5404f718f57f9868e3b306df6dd9dcb4c93c53d987efb77e73142c026d7dca00c34edbbe6d7e497503cb72318c8ef4f7443a2e68154ffcff00f1538e4848256c3d92091b85e60a8929fac7c052fbf58f06f3c37bfa6604b366b339bc6c7f022fde5e75020294ded3d28637b7fac47a1319a3494b7740445355e9234a4db92f80d5f31513eee848d3437d3c4b641f8e69f08329546d44feac3fc4cbbd6c6941a15d4d767cbd63712cbbb78b15ed21c8c6f8232bc58339d249ca478471cb4cd78be5390322979a85b047c4e5fecffc3081d9744dc05d740d970108756ae4c384f2630443f7badf6f7b055f4ffa6add769f4ee8ba67d0d8ac1c20c61624c064efb57bbf64cda53cc21cc07c5b86b7f3305de04243b02aa7f45506050ccc1da1cfa30f977a07c976a610063ff886430b3ee7e2871005d1b9763a0150becdf3776fb900e44f4a5f2386f5f8123385d3b6c2100835f010000d8e5c287fadf591655fc82880070f94f0d58649d05932ade6cba66bbbbb794524a99a40ccd041f05140561589d862a54d8783c9552165d0b2f07e5d136d5b9e16e6eaad39b1b7da24f43f7e2adf90780014747d1479fbb7f5db346fdebc30d2d8c89cffec5d6e559b8e933a6e538cd6ab1d3df8babad595bafd0385beb5f81dbabc014b87d4b5faef3aab74380fd85ddbbb781f7dc89001b25f327300799703a8ce9ad0edc5c9af675ee1c5568d26a6badb5d67a24f3c26a08d5920a8794500a052b7324f3c26a08d5920a875d9fa684767d9a4261d7a7b5b2a8b5d659c429c5f8f049f980a0804e4c2722d6aea8b5d65ae90e9b37e4fde8907057b819eeb5a9b556fa45db986852683d68238c4115b4d65afd08adc7bc0473c9d98235b5492e826f68a2356b73b4d69a84af8f499372ed3a03dbb5cec0a68c259f3803a371edfa29d7cf6c9a580b193771c49ad8765aefb5f7de7bf1bdf5de8befcdf7ea7bedb5386b6db3db569d6e17880422c9588cc44be55259ae5c2b579973ce39e77c2f922c23c974596ab24d862dc62a208c31c6aa988ab4d3d3becbeee1f070c03a98a6aa1e3af6d05135aa5eaa976ab41488cc1988cc3993399339e79c73ce5aa771b7074db93a2fc7759dee1dc7ed2e6fb99763665f1f980f8c24612409f396735e8e192f3fb5483425b33625b3a93255a66499f68c3de3eb35be5ea3f61303a9488cb1559116ab62aa988aa49e7dd592aa74b954a5cba52ab99f9462c7b562ab392d63d0da5437f756d379dbeb2caa477b7e95cd1a1cdda17260cfafe3acb1d12fbe64cf7772d6d0e6d372d6d03f7f095ac39e4f5fb3464600107bb27ca0914203640648864986c86ae8456ffbe76a69c8f261fb631a29dbff561a2074ebedc519a0ed6f3719a62a4364fbfb6a683bd5da86a2c7603f6490cbe572b95cdb533aab74d6bfd259bf8ccea98c5b5016db87ed9f940f080ae8c4742272397fc5f8f049f9806c7f8c02f213d38988bfbc08ec870c22499224c9110683c1603219cffc33194f1a8fa7ae5e35ac8ca78a940a15d5a90aac81149cdb0e793f3a24dc156e06ba95ded0f6af9ad721a1fb7257b8194a2feef21f3e7a1012f69392a56429594a9692a564db9f6375369a145a0f46f4cbf6d728b931d9fe9f26c5f647693d6c7faa8dc8a018914c89548d3a9afc8258b11f6f3a157bcc4b30173f42d3518fdbfff462ce21e6b29d8e41e88b1681fd9424499224d9c2c361bfbbb9b16f43d0bab02e5c54a72ef20ddb9bd03c65f8067c9b7c5061d057d2e537bdb05c2fb654a5aa5495a2aa1455a5a8bae926f81e8ef778ea1011ec0e3bd0c3017a3c15167a38428fa7bae8705cac60de5ac15ed8172faad317335cbdbce5cfda3e6a121673f6f55169e4bc4858d00fb9c5555047b36b5c406cff59e3223ffa628d6bfbccae89894a14f1f9f83c39f2038ca887a26ff6e9f011857112e4e4c80991855199d7b13a69cb4b5f363b5887119f386325e830e29bb789a8249211151131215a42f443e44334848806a21ea21e435e30c65a1b5222a2daa66d40ddcfc66d5c91ed7f6d10f550cf508f219750295445088a900a4a2084849012a111081911b2412806a151c8c58417269498903151c4041326886062c9fc49e9a474523a29a53baa05e2bf95a34329b5d7078318ac6fe5e8c86aad3b2a071777100387b5a2367c938ca148831d1c7470c4dfead8c77a213372460bc09c9c20093d548087ed23582742f60cb2e95baa69d3c98f2d4e20ebe9ce090f0d88c2c4504ce81ad4157fd537b4d9449468506a41e9479297a4a5a4595251d250522c09053a9004f1a3830473d60f703a927ca922d40925521184d5987abd578ae80982691422ba217e7bde1f7b9690820b1f48c2480e50a83002adb10e57defa327de1a063b4e025349d73a642e4844a12548aa042022d3e50316271b446a54acfa6410759c34268c0818d0fc90cfa42c0699af6e267a33e084a88a0c90f0f3f2e3809a1090a2d047d691244050de8d6dc6b2efc6acee1569d0a0d547a3617689d02e7ace16dc3986a5acf8551219698e0c29ef09ca043ffe7a6240451d9f5759015eb05cb498b113c27889f77ba7050527161535161450da78e29ea0e530a48bbbec67bfa0cbc8fa8f0d845d8c05a035f12920920980285469a4de102f244f9763cca37dfbf845d6bad94b2dcab037c051ca59422215124218ab4044532822229a1483f50241d72ceda8683a6691bc7d91af00a48332001a9d522b97084b4827fa9d52fc638cc67c404638ca97c4cdfeb9b12c5888c07d9908b858708a5a1cdce36edb6d64e995dbfd69a5d772aa514f4f0ab9b4768b323de3dbf7e0dc5177b86dae9ccf609cefa0c1142a061a6f69df60dec6164c70e1f6741fa1cc63c740b7b829ccdc0c67f02dec01c2f007d0e836d008d03a966c4be7e1b9e02fde128b8fbac41c29d19d0508411be5dedac41026be7f7130620ca4cd2089de16d4063b257f5063ab4d9f9adffb7fea9b98c8db31aa49aa7694d433d655850a7033ae98cb7939881ada78c0dd4a9306c0fd7d6a1c55f9eda89524a29adb38273270c8be648a92b34375a322a8d64464c18317177c7d94889918d6244c4288835fa61c4c3764ddfc66d5c134bdbff7211bf28483a4a9328b12864949f28463a8ee33a2f4a4f94214893ce7e1715ed14769adc8150f21c56d7d9de440ddbbd091bb6bff68ff5bdd8f3a808cc56628bad186c889a9d9564d6912fb5e7d1141da67820e79c73922940a6a0d0ada05059f952504e314b741f111b4a8976924264c693c201992e4c8a2b511b14194d094f9b009581d0f0911015f76885182be35253654f58b2243c19115ad6b369f63c9a02658ad016736c7ae8e001b4c5d6f6187410e21102f2045e3c70e3737f56a531432ef1f1719545486e788ee750372289222330281242fb6109ce19c909708e21f9412309227bce41c8e0c5ec795464033e2252c402144526d800e58b1350b01c7d98ca912d920106a38f0829a090509064282b50812644ad48eaf725f1a921e056acefab42577a9ae081e4a1c8910cac308414242a341d49c16996c4874d92c27f158a08b6d8da7eb8e934ec8da982c243ad506ed0a000f9a0b4809f203d99e2c952ee91310a53b40258120d433772095630741424c40613ec0e32ada4e5fce3a4c59e474f7ef605333a5a69681ad883074aff7d2e833c28c061ece5888173ceb9de7b6d4e3728d8f202d0af30e8d7aa7d068c3d2d04aad71db4cf1880567f569cb316e6b0c9d8336fe1e730dcb100f606821e8eba71e89452ba23452bc6d6c0697fc5057b033fcc7118e36ef5e193cd0edef77ddf506cc0b6303616c27128ad7d7b9c1aea1cb8d7c0703a8c9ced3eb8e9474f8a1c3d796d2760b6785d4f62387ac242178e9b94bae860c054cd565b6db57616d9a9746fa55ebdb290358d3a56a244d3e6d3d99e9bc753679c477d1322c4abd5bd3a283a1326a85a89f674215ec483ccbc7851521214f44359a041aad3226aedac58eb50596bdcd66d5d579d761bd779ddc9dbbc13eaeb62bed4964a55a7a92f26a5ea56aa4da55ac9cc6c34ddcc0caba3a1a9e958ac1a5a3707c5182c5854daa2d2162dbed2d006610eba845d5fa4aeedda60046c92a6b2a94a17304d464d43aa54cc873a791db7693ae36b916e0c431778e106152cc9f04329c90d3f41491218a2c88e4c31650a0d4b1cc19ab0f8a060688704785112ab5244490d1d40494181c0872c57b260c9824416923ec73a697973286f733e5ba79b045da103423078993f3bf059bdfac0ef30b17e698b053be79c73cd4b51540060b17c6928e79cf39725222a0d1b47542e869c42193670c985ee977c6837516c2d98308ba4d38a22ce2668a56204aa9afa44083ad61333d0eccc7a6285ef0914b844c1250b9726b82cc165082e48b8c0b8c8c0c5c79627b6206d5962cb09b6fcb045872d30c86c49a12bcb92a844413904d3c88403d3ab05c57ea1be0509f2a1ef0bb2ddbf5a4a29a534fc6ce8329e1f3e9fb49eb61751169f2c44b280208b07b2b09085c7eccb8c69b66586653665166506456b8dc2e783124a4c7e90f012d4e4dbf249f9663dcc54508024a41e3d7638c209193c08d242910947f0e899d52e33d76eb1e7d16cdc622bc7a8bfbcaca4a5e39d32dcf489394d4d259621585e58462c3eae80b932bb22b35762578030c65abbe2736588b6699ba6aff46cbf32da2b3db4889f1599b612b3c2c48a122b3f5829d2590962850523b71663bd75df791bcc13ea8b49a93a99191a568d0a17cca63b9d7aac60d1a150ae9898d15b3e6e8ff1264e637a11d26c88d3c8a9eea324072867bebfe892d3f8008cf77016bcc785eca901390d3a8e4cc62663d1884449dae33428495221241d42521e481f2554cfbe251a60e8f881cfc05ff44d584cbe0914e371582b561d0d7f6d1eab309ccb7177f71c58d7755dd74dcdfacfd5c2b80f75f2b0b6742abdb2965ca9ab1d7bea388e23ae9ca62dcc070683c13a97ab87cbe572b95adc8ce4c862f9d478386a4d0d4c23bd55499b0f64e4586badb5e6e4e4e47055a6715673360391246931a769bb21c964325985c17c34988665188659d8cd8f64958d2a5454241b9b2a63c1a296b5640164d3711cc7911c3fd0e2c7fa175b5a1df5c9eb2a97492092244972ec19c7711cabacca2a52955559955559953d59de1738922b56f4b060f17ab16031dedcbc5e379424499224c7711c47ffaa9dcc980422499224c7b1671cc77104fd5bb400bab9b92141d0c66c0ca465598aba921c25c94c4bdc554ed39b252d6981384b6a96d496cc96c4960c3b9e239f68cbedcf73e473d1fd53bb048260e9c2c3e1c2e52d77b918b7bb87d6da989794524c5fdb7dddd77dd9d2967689b3a5664b6dcb6c4b6ccb21de72f1a273e162defb0240f7c2c3f1e2c2bce5300b5e586041756ac17bacf5cf62b9bffca5dd7d0b6f4c04aba3cb775f43bceb56ab152b7070b6785f3162f89f703a8ff98ce9b12222a4a512cc0d6fcc5b5d3e8a51f40133ce4e6be79c3fe7143f4a9fa8da2c8601eb5b393a96eeb03747090c70c818ac6fe5f86bc62467a41f4b094c4e89c42c681473f69c1531654a60664039339fd991590f4db0c8b0106109da62c5b2048b4fcdb8de7b6bf8f2120658344ec6a4de7b95527082d209845052a2f463899ea8d9a6de7bf1bd4928b8d68659098642d210dbda6c9346b0ad4dea615b9b44645b9b34c3b636e9856dad5b6b9352d8d65a6bad4dea91e4b2f8cb5602c7346eadad55b0e08a414e4ee753b47fab6e882a51a0d83a495c65cb1671c81cacadd6da2a44db5a9b6d9525b6ad62826dab20d9b6ca5845872a2f2c04dbcbd5ae727356bbfa309e9e33cdf774ff025b2fbd5e08748a28c2ec11ecd3adc1afc2e091d9d9c371c1bed1ba6a7bbaaf3d1c17ecac5bec0cceeae59801bf6d0e84faacb79446bd6bd56b5528fa46bd0dd7f9b50e37d4a3deb5f6d093a0344abb538a3b2fc7ea6916310820ac56f4fb42eddaf34a140a7572f71f77269bfb8f7620dfb653263d09cd403f7e4ec50e1cf27bf81ee67757b176b6a794a2b6d093f84f0ef1abc0ef59336f419a4f81def7363c26a6db624e1fb39db618edb798d0463f7d4cf17bdb9f3c14ea93c9f8ebe641129ac109bfe77964677fd37ad39bd67a43b9aaa9080aa52898ec9c3d8fa210b2a12022f5d1143f8ea4881d49f13a02e3e5480ad8e6b6a7b76cdb15479fa3f7dddd3dbce0e3b73ee33ebd97fefdcedbe0cefc3820ea2f987f03c17701e2ff9b67f1365f83e35bac50c19ae9deef6fdbb65f5ca7ef7921dd5e74af8566f0e2a9e378d08538a1e82e13a3e6459ced2bb6afb6bb7bf8c2fbed457ab730b479f1f8f35f5aa4d2a00000fe64c17fad8f8171c1ab02f0e173dc0cc51d7fcf037f7cb71d3b7cdd6790fee53c0ff0871f8050ccb960963042f15ba10500b89f1fd3ee73176ad43ff457f9a7623e0f4f34bfb677f70bbc5f80737bf7dee72677bbad3a069cd2f05a305bcc3f02a8e48fc37933ddc07717568bce164ae03ef8f4953090c520c21157ac747efe7df01dbc4f5f80d9cee800ee672f07f8db67d0df46c50151ef02f41e0441100441705a256fe97c78a3d32264118a9f4d28b26a42f16942b1b5459d3d138a39395bd4d14fbd1cda46fd5ca9acc8da56036df2cfbdad7e7a3bf4af429bfcdee7b452a1d8fa67d122f8ef7be08e1d3e11041dee515ee73d2d522dd1b63fdb7add736f957c86169ac1dcdc576f032e6b7db5fe3e162b67539d2d82a02382a0b3e95f1a8a54671cb6280b0d705c07650765b5b4ba8bb652d7a8f65cb1bdd7e24efb8c9a3b9e299fbbf51974b6acd554bbbb7dfc79f3d4da4109d369d01bfe768b3a88f8f0bed5fae6e8b598724db8396bcc9fa1f5f6dc744fcf23303b2db26cd0ac419dc5d262f755c195b7be1d2d9a01363820ea294191194820830884582e6429e288173a10268a4ac575b417d76e0a6afa69f2691ad21443d3c842972edb8c7629ea12eb427681d12eaf19ba6c60afbc4575366ee3b4f46cefa282a899c030cd9894988898624c443029f9b65bb58944194469a42452d250022955284dc83273028c133327909c907594d6ba026e72a8ce67d09015ae58ed187df579863e5d29a5753b9500db220833b669b59f95128a2574f33b7007e9a38fabb5d5d3ecc531bd9583bbf6d6c731bd45b5f09b32f206b73e38656404f4f0e163caa84fa78ccc691bc769da96009d0aa3becea6695a0268e72940dbb64d4f19597b1b709c57750272e75ef53c05682f07a5fa390f07b735cec3c16d3a6fdbd72dfc11b60ef58e1a4a20041a66bb76c276a7be0da76c739ea14f64edea446ccf2327c84d803d8f9c6041041a84c3cfe5b7f4885ddf822e64a7898f822e44871ec4c2b8c0ac0103ef98fad47d178a258840b72025c0360833b6af7fc7f219f771767d3d6bd8ece4c7f87138b7bb100fe2af29a3ea6e86d9e23765d4b7e1c1738b3a7f0e2580439d83f773db702fef172d3db4b8b28051825af9721346a6cf097c12b06fa7d398369cc60653833d7ee81bfab5cfe00f7d23ff04c50c2cc05d1ad0b99149b0fbbecd0e7ded1b7afeb917f0ddd0188721a0f60d97b5a8f42d97f724534323000450009317000020180c0723518ca23818495afc14800b58903a50482e130be48158248c25210ac2388e61180640c620830c620aa9c91b09452db3aea04426e5d511db75ea2eaf4ed8bc26246dd13a24a1d4f604afc5ced898d558e079f90c0710c51a32a72e91b0742b729eec2fc5df4f45020f5dfa10d8211139411a6c40a90e09003d0e768466d29e7d787d92458fd4e9472aa7af8733358eec47f58cb165274d1a5b873e507fd3ed71f58db25e4c3cd28c858faa7d5df36ddadab5465f0f3b8b0c56db73488132a41385ef7b718dd71747aec06ebbf1885fdb0289056b81887420240bcad263cd468296de830e3be7697d84293c87d4067c6769ac6312c87348bd3e09953c266e246698cdd44513ae0674968ef7ff21f1e157b081593a1033a313e55b7d413539a8582dff1c1882e3610510b9ef8b7a4321383c1f012f57ba52a2ff8ea7c721c9f0cd480e641522a263cf486e1811248904249189d3ca85aaaa96b7fea00186f6ac8ad73ad6d1594cd428f260dcd6c17160ff65f4918e784ec5e583a01ed2c454221d8e260d898e90c635d8b5d1c538514256c8a86ee8486edcd029a8e8724e5cb6141c70798e6e1d99b49448c1e0534bdbabba720d73f498cd47d05ba778d1908ae6ee339a6286aeb4b838d4764297590a62a99762a61bec1f9e501649d95023b896c3a62191030940055c3d8f023793cb3aa5a668e56ba0834a518c8f2434b60e18bdd9499508796564cd27f24085b51cad873cd9550e02898630a05477e82d3f930a129b6d0614bb9de1a462e8808c9566492dde093870528f174be7f9ae69f1ae4a0f48dfa3696f93e5bef2e6d800f69768e40083f4defdc8e9bf313f46f1a77b3fd4f675af27fb393777a2c9745e6eda7025ca6fda57af30081c77c7e5df1de1d300ba87a4a63267e9ee354708cc293a19583f77d975a3dca0f323896de588f630d7621c456ae959775fd0285c5d318e2c1805c1b01af3ea6f26f0c5620c135e8584db4dff152e87bc23de281aea9280cdfcf6db812a140b2aa1262f2056fd9e9173115d041973f77bd50fd0d69ad3dad30629eb4971a41eaac87cec57f2c2f530811f65d985466387c9c8f57e222296120e71953e2f134b8c67ca201a55fca820b4e1a8b00a0d7cc2c829c75c0cf443a5cb500e7b0a40e363dccda65fa626b75ba123bde4658bc76a52d2e3ceb58e444cec435ef8b940940e725339fd8bd9915ebf9f884622fe2ddd31df0e694344cc10f34984a4035bed77b9a4bd1ae3449e83bbf12060b5d4c17d90cd07d9a7f9e2367730e9404813435df9314c39c4c0df27c0e93107bd37818434e4f659c4e7f05ab843e21afc328473de47437c2874cfdee4a628d1308c21ba76ddbc8adfd44662d87eabd6d47e4b1e35f9d42244f9510b21b413258d22a05aec19af6c87a4971dae70f971c810a61c824838a8861d122d1a485434dea079d1a56aea36ae229dd0589dbe8e1692dc10d1ba566c7310be64959050c42e57a45144f945acf16614594da6bb2a0cc93fd80d71fdf341ed3147216b2ca2540cc75cedf04b7e3217801197f09fdc138b88674588b0498e3107e05f1b4533444848665132164ca66ff2f9c9b65d9b570b93b0ca1bdd693b6efa41d398d75afd18ef52f42427e9a73f6f752664520f742355dd664cfab0738fb859471f01bc9009676f24dd0543ae8780deb76ea4e8cb508af06e2fe364c2d166b58d4382f8ebf1248dfed40c26723e6aece7883c550d52fe45f0c300fe94e9933d1c4585ceb47a72a5b51b0b0cba2c18d5d765910d5da277a634076fef060844ec9b82ed5d30134f970e74b05dcbdf055c4035a4796261deb8309e6ad46ef1f15da6e20ce1ae9afa6e0eb732698960e83d031e73e4ee22f9222778219433d8afc0eed1973d76d7f1f5abb9dd4b1f6aa14e7d48a561367df5cccdac1e46a0b0ff9fd223ba073c0d7d038ce6474210c2a61a9d19c6139c1f0f8752fcf5e8dc7d48c4d1829aa65fe082c1df2c7c81227489cc86d56f49b6b5bcb018d0a45729c4947b8e0676141bccfa10f05921ab39fb5112540ecfcb51b3ab3244ea2bdbed071c1df302c5494d385006433551f7fb55c88912b7ea2e74c74a87488b4a3b2e2dced250ac25b356b9271fde705b5e81c88c19015135ba1c4b4d3db0bc263ff4dd0c785240e094bdac16bdb1dc469984a23643988a4579b9308a64c160f38982af031a709a0adb57894be6d7bc25333173b955f45bb0a8f261910329e6d2e2419076004d1354b3a7e865c86b978a9de51ad354b34fcbe4be2b85b702b2fee0af77eb733ec733cbb63a2343b53bc95dcc8023e45a8fc5532b53d35feabd1e8319fd749eb9ecb7f4ff86fc14bcf773af873d438d6f144763df579c3d73b24277e5724d43cc74c973499f829b6a83963b79f41026cce52e444023aba8530cae164043fc51fcf8e3cb0cb2298ee123acd2a62ad7bc5b286518fa9e5d8083979cf7e71e3a4b57da81a532ece3638ced6c9c6d1c6c1c3e535eb9c8e08270cf8be4f51ebda1356f1382ea7a2ba94caba5029c4848a43030a8ad9429635e2d1ac417452d873be57d431c7ac2c043b23c2049379e2a18b3aa262bf9bcf6deac2f990ff9de6ec1b935c852c0202f36503fbde1e260de5180c82cc5b9a05391f7b5bcf186bcb2ca742edb68df5a340f44fb11fa983c18b8f6deff06372a717ffc867b17753d07d9098b6fd8f8e67e05590993ecf1c8bbe7b2bd4c3df5c554867256793da36ea19e302def343ecfd98c8af4d8bade3a35045bd709db6bc9831f2ec0640556acd4057eeecdfec87d50b5d0c438fc1853e3bec49954a073f62c7e361cfc2ebe1cb1d818da088d8386e17b239edd528f52eb4aa7852c7738585893d2152369b806e6f0688676616c626668c552f22b0acf97f8018c5a835b4f710a926776cf6d77ee4a6f9c8aacf80aaca8155cd1ff38cd0cee4ce31a8543841b23071dc06a614532a11b9b8e21a2999bcb570b3e11e7c388a69868363e05f6823b3f58990b23a3b914042aca942822be0a5259e340680e571154b110c8160c1e8e6a1d5b5d977306465708778f44ae6d340ceba0a4d86f6f27834d42ae0321d0816aca9364129053eb7774c2d7719c6d7c15831ee7a10521573133243ac17f49959d62ccf1e9d3b9f88ad4471e702378e8fab0d20582216f34fd4d07e2e1cadf443bd142aa411eba1266bf4bce6f8483b61fe16665f5df297c330ba5d52e6ab40bb13fefaf29d1347a68a97593024fe2e5b4fcc3314c2a3658a95d01790d995142becd3411fa28a43c7c68ab49cbcc5fbea876a7349f8e7a4002ab82efc6a47b55ba7f378796fa7825f580963b0acc77bfb5247569ebdb687c2d168ddf495279131d817a6eea10b368846e57168445b53f03bc35ee11007d9aef6c453aa1471dcf790c22b8d692dcf1b21cccbc85a994e3421c801b167f8ffa977a7ef4ea9d4aa552c8d1d2d5554a7ed3199ee858cf17a8d0d07162dc62ee8ab29b5ca0b190dd21764cbfef4ef43bdf58ad0640069bbb099647c94d8aa139bec25a044890e33b36ea3f11cd87e2d7c18cd854c1636575688e76167508af470640bcc92984b0dec304a12e0e1def34615eca9d8634b7c78ae405410432c21cb3d029e268e94b568c5aa68791d9b95662c5cf9e60593796a44e4f10108c7d74475604c045bb75eb6446ab4fb5444aabe6afc9db74d4badb82ad4d81257fec1b3c0bb0dc0737e9ade8680d9ccb40770d110e7c25d0532356796c1405bbe722f1e350566aaa1d75db982d4a1904163ffa6ded00e200efcbbed9c0d8f5447d7b742b237093ad94474628ab0e5063a7a4011920369252197fd736213bca03ce290274280f0a420d97c15ab8e63fb0b996ec6711bc0f4f99462a8a9328ea01db306b4e4a1652ccffbbd0c03c806d0a3ee8328d7ff1c24446e338bd5ecd1797b08379ae519e1b744bc66ac8b87968c0dedd60c0b99b94f0b64e1c929173077f38c345c168315c83f0ba0d8081b77a4941aec85b035039732bdebcba7b33faf8b7fc38702241ff87f4e40d0ae5ef2a22174f142415932d9da719dc36d06b70b7824326ae484e6e19b6ce362329661ed3657a4b230e6ff321d7bf2f7050cfacc4e5b85f8d057963a1ddd200909cd8795792a3c62dd2fa2de003b247f3d52f5be34c6245f758f176edf8aadc528b2752a7daaad7c78ab9d76c00f8693cad52408530342e3c787ac53d0cec42c5d06d9af4733f362942f18a4606a82369846e479dd66a1a2d7b3defb72fa7d179bede318f0e7e415dda3396506015f3b34e28dec04d968e45609081de07d33cf0cb654b01db5c5b99f9fa01a87f223354241a008e8f33dfa290888ef6228ea6ccbc63cae6637f506adbe815db53c9dc3c424d5a9b7713622fd6c29fc0fc2476256ef454bcc5f2be9e37cdda1d381eb8aa97186e7f5e3606fe898834f7d783e532a96f9a8e28c9d395ec07f09458d1babbbaf705b82bd26a086ca8ffcb4713534392943965ecb65561235008ef2d55b75a0dfdda3f5c27c67fea92f1f611552ff55abf3e55f9cc86f66c98edfa97ec0701a3d30d84ae2ef0e9f502a7af0b241de2f01d155f2220bd1848e02c94ab91963ff5796443caa9c7838f5f77e885cba6108cbb08bf77c7009383e2ba0789f90ab6a6ffb81747d827aeeea2eec900465ed46a325b26a0164aef64a99fbdf4406b789a9d0e8887a785b76af9c00afdf50aab20d719136844ca8797aa80ca9582fcb3cd2c5a9262703559a6990b334f9f741a055baeab26fc9223d5aeb290b6cc447e1026b965b37334878a8c9b0a5359c705b9e7ed5eacd137310bed8fe462e59abfe28fa546817f744ab4325b6f687d93fb343be9d236e837d137af5b1169f82b8303af11fbd3c73c1672456540565b40ce4653d72b3c3e741423b8503fd7bc4489ed660a27d8ccb28f5506f453b349f99a6f05c5c04b473baa4186d06776f2d6ccf53eadc36096f4d1dd8133945c8b5b652e37a3348c8b3eeb5261a46e753637700012671a35235fd3171117e998336e850f7a6bf0f2adfc7aef61a55af89b162a80be54e2c3116c8dabd8324060b33198710915be6206de7bbf04d27f3904a07da015e0eeb116b8ee9d28f08df74b20ed97b7a0771350ab01ab9e49d9244beb118cf1364613be9410d428587efa807fe12156fd3f20e9e6743c9ec07e1ec5d754a486d489a093dd99c697b94e0759b5a4880f8c0e530cb4d74782d19a21abc345fee3a3b66f5403b0a63c5f565b9934ae5a2478a85a190a2d0abddeb03e3a7aec8d707cadbf98a2f8799ed0fb287e645091238d30ffb2ae975ab83aa21067c916d9240b17ca6ad9c7bad04a233d1552011551e115e7d5c049407ce382b9e3e4c6cdbb61c5484facd1c920f6f18f7c53b2e0be78599e8323b2a6505e0f553c4721890ba82b8bfe517e3caed7156f8dfe13c5de491cfafb28f6dd2b526e5df11a7cdcf943495348987859c5c102d56385fe3bd1fbe81283cc898eaa84588042a5c3c4d889944d528d4a88cb272f047b00fc07d8d875c6c426bf1055e4980948d9789c9d542dad942b582f6030852078dd7029c694a29d1329a2ff1a6320b37775d1f9e510116383b8cf19cec1bb8675c75476167fa0f363fda02d1fa099e01749375d24f3a603b09e3110e012cc6505cdf498844b942fcdc9cf991cbc209dec4aa885265b11b9312b958d30aabdfb3a6ab59cdffb264468bce0f8de249a0fe1611ccfc089a1207fdd4dd2f82030a6a832443701f22d47777f5190e84daead20c99c481c9a511f50f81aa9f4e20d7b0d132ddcd3e104471c20017cfa2a8387d188847ba7b81369fe0594fc419cf0d7ea2ed08670b05d976d154563e0e2eecfa5d602dd3fbda1a98936e0d4be595d0622eb0b95da7387314a7b6e2890686f5828d045587368b9b93594c7a998870157d3d4c7f0d4f703cfdc6b6709df8b6716f46c31c29938110e3a8b5d54f553a652f42ca4dffbcee79381d8653fe8b164d11aa2279386ace6869102350983d3b196181fa0fc53dc2eec20e7380f9ff0fbf0ddcf78006f7028a90bd4bf17cf70434ac87b3f7f133bb137134fe3a068d47540b8482b7dc7d5b94454fc852816eb69178fcc90face054374ce95260339ab6fc40f0bcf075c0f27389abbdf215c6875bbb284d9383865b0b5b2948288ebe80aab05200bf60c78650b9270a174206a42d56541c0050206e984e3cc94da355222d1703e66469f849da54454b929143587e2cdc310d9673051bf10817e714224e49abb6d080e930122dd100862009e9c212f4143beeb142487481ae520e365b256519789a8d7c55fad23f18a8a249ef47c8599337623d475a465b008ff7df56d56a4a808bc4be5f8cf0749890190e9895cb28ad63afa6495f375ddb7bdfe1d6b5ae69b2ab0b9d2d2dec074d58a895c47e4c81722142b5fadf5d7f7182832f074c7252e71a420e578e264fb5710d5666be44059b022a897090883f4a9932c0c98dad30fcd0a65105b1ab2480c34b0d940c2cb84c244be0d14203c31073d3e1cee447be0b4c9513e5fbc9eb2d71b98c5e0ab0be1a28d594ca54ad4f247fa760dd40c423cfe89d8c110e848c1031640f5c90d1fe5c94fca596148ee98a8a1e205bff32fcf54bd9676440dba6d35fba85021af2baff031d01d3d1eb2404f818c3200157a184f5fa013c643c1b8859668188178b4f2cdcaf8fafcb9ad4b0508429d1b8de0ca59b1926b7a067c640cc7bab9817d1f1d25af2fb043c38bb1ebc855f42aa10dbd079f52c19c0a97ed0de6fa848f8d4f96ca7325ed73b1ecf8ace77fc686b620d192e66892c2aab7c4561d0651b606c88913459b654b5125f49571bb4e354005316510e4bdd9203449ee44a38bd6d1f871cdc3a4f228a8aa5f91158657709713e5ea4808321ab8a3542bc7516f17a49efb1018de0991f9260815b8b76cc00ab1eadbaaaf4d155290e90536924c22805f3163f997ec7003999852d2056cfa83a16bd8fa051cc7ba7014ba5825e5a7c8cd5de8d5f21c26c66a8068514ba78874a1efaf4951a07c2130d1cf8864623560c1c22613cf338044b4ba28b294d2e24a493f2f3d708ba2dbd995ec476545f8ea93fb04edd16045ca647d02289093e459923b4f88d0ac7db3d22f01ba49bb78f7ac9054bead81721b8fbb66524bbac8b44639215518dde6bdd66e0c79a1b011926d7860e70404f50e8f62fa5dfe7e709d0bd476aeae35d7d04d75f04e5f34572fd47d62b71c099812f9395d135233e8447f427f47290e90871b7d0fdb395de88eb41c0d8ba592fb6eed9b5813a76ffc9a0a1bd65d0c0b6e0619e41b9040f0c0033d10f0f336d6aa350cc10f95be6d8a6c44f584b562b7e1748e317122659de86e7c252124f31d5e42515f8d12ca8896f5c26264de865a1117f05ebe9546ba99f89b591195a8bc20de6a565c3ef4e770527e18b82e7eb60b099d430e00b076a94e27c413cac9fd17ed4ad4498e077bb4bcadd99878e09f6f0eeceb88eab5e66dcbd159443e7ec3f98653d248d4a52494469edb44c34cb20fda4a2a910d479f99f6db7b94fb09f1e17cfe1d5d0aa5e93eaf38ad3c5619564e594173404e533f494044cb524c9bba6890d224232ce0156b2e38a415b98bfbda1e216cf9ed26957044415669df550cf3c5f4164025e03f331886968ff5cb7150becdf46eb52d030bfa9799c336613bbb80e67435895031773df23a8f049710eec92c31a22dda870e403f00f1905ed9bab845df1053794c4fed29403aedd86574753d75586615ad684e5d1cde574d5ddede9b98badc330e35edb0186ab4791278f3693ecd5b0cf9019cfe1ff98221ff3deee1c855e4b0fba17a4f74f484e1d132eb1b7205f5492d232ca5529ffc8a04c022214a6940ba1a2f193883f88b9cdbe18abcd9ee74f5d508abdd8788f3c1fd26ed829068332c24c007089fa66cf6f49d26a206a89b5edbda397250940a999bb27e30e7147f69a160ce964e43991946c80d0269485611cc9d6fe0761e6b5010914a8a40e0ea991eac9020902aafbc3ac9f955d45a84686aff351084a17e68148ba29f64e3ab07fd2c330416ccfa73def3ab31100de6a0e1b2af92be641a04b9b25e699bfdb03019efcf61044db0bfab41a4b7d4351dede5fcf3e63c2e581e3e9a2f6e7d68d24bc6e079a81194642c8300e02cec2af8a1915e8c9941788bfcd018a66786e296e32bd04034aa4d98326d415c29af09a221753d5f786905c01e83b6224403626de70c129d7893b67ed91b8cf1ad19a26136804e59e8c5f1bbc860433c525eb4b2c47ce76b267a5b1874f810e8d80a12c5b8bcc2f1951f00033724bf1a50f0ea4c711d719347ae8133254898bca205a1d86ad51588591f29cf8277f854db0be9d3d361ed84ef23d44b9005dbc0c879456216eddb7ee7c086f2a208c961acb3fef22ab7b855269ff77007fad684a9475d9234c33249faaa6d858b48cd2cfead94e2a1d780009360caeb177ca5dccbf5810b553f1869fee2ccb156db332270620ebf62482b5af4d69dbf19983c7907b946daf1ee2fb28f53cae26aac5cacf11c01ab33df5d5285e1578e9c77f900c38c14bcb0ba6ae086205691b4ea305ea4ad0fe08699f7c1176a9a05ffbfe2ed25801eccd6ce9649c2f289ff76480e66c8fe6058e8455fe27404fd9a6c15554c89ff049340d74e002dc4865641ff1992a7ee0b31969d6f6e4c318e1c816f29f331055518f98b9bf172ca44019c9f0322821fef56f8c499eeabbffd67e725769d8914014add3330a711cdf664cc5368d682afe239b284b21433667de1aabd7effbea7e83aa26cdefd314c343db4a667039d333f4f83734b6404f07e500bed14ec61ba68ea65055f2ae835671a3a9b9d87e9f1b943b3d058fdd68ba7eca50a14e72f60bc26022d12d146bffd8d2f29cb3b64a529af273621a57807430fa47da13af047b7cb94e98c441bfeaa4459bf0ad28fc2a74a634096121209dc249224680ab3f252b4e9706980250eecb1060452b395c5fbbb233b56ad6c3ee2ac1bcf2815fc2ace8cba4689789612e6322df4a644441fb1b4bdf20e29ac9d2240bdf106e91f5a7252100733e27c04ce00dd4001a01e78c58fdd79c1a29b374d18424e43e15a415909b24314230548d119bff11d74f538e99832fedf599377cb2e70d18808dc431f930cee92720c61542842477b4a5960d5e5d5ffc4ba69b6ff82d5fc8f197686ba95a8241865c4993823ca4619d1c92c3e9414eae30c91c976b4a9fb655f21210009a7e417c1705f8ff8cfab0ed4d386126529799276e4c998d135695f803d3ab7de477b1e008a03f23dcaaf274a9d9f8f6c379f7acce5d594159fffbbbcab911296ca8a485553a7b651b097962689ae217356cc4cceb97b122673c56380c73afb61b23a23e233de38808c0dc555e18e03ed7a34be26eaf14c9e856e6dfc5a579e36b6091fe0bcd038c4d93419351bee5527a9abae3a1e9bfe3c31637dfb9993942963db16bc7ac6a2701e69cdb2f7af1ce5baf8736f409d4bae57dd6b694b81db3f76e25309cece61ca8a08a585e9ac011c6a1aea0c481867c2c633fac350579d489ae3ea86578f3deeae5f5827fb5a34412684fb9258675948747138261c26b99f51c37b851c7796ba00e2604fcad7619ee7498560effd1fcf017688b540ae875a7898b955624614063488610d1e839226fb721ab275def3fd25a2013d28016a59eaf3ed537ed60337a7b93bd835e8f149d7cb166ec6f5e781f127143f21d59451413faf04e39fb757da15a098ddf42b0fca6a496dbab6076a87d5928a6eadd3aec3d541bfab96b00f4657724f970f51c4f0e327b2954a622cd1a2792f9041f944e3fef18306ed6f8e29741e5262ae6cd601c5fe30c66f9d69a2f398fb81ac0a82c2ab67a73e154ed5e34baab1cc26b7e33171ee3b7aa811ef7257f40d3f20f7e59e99f9b0b3fa54d213b3315eb44bff18c6d08d47fb14d2c12cf7678f66655d0b2876a958f0b98573fd39617ec6638a4f7cfc1dcc2a9b434deea815f33325cdac50110ad04633b8320399f558f5d6cf302170135f54be144ac366fd5649e0d31a7d93cccfdc8576b90b9313e5bcb15b3a3114760174a9b71cc5d1928301c6f25cd0eb1c16ef2650dc1260154da831c16f1813053730856e7f99ab240e915d41730a9319c23637eac3fcafed0c2fc387513d0d2640c3b2bdc44cc4127efb47a6e28ce498fd906567ec979805aeea3082572d555ebfb320c607d06bc8c318874566518dac64a6329d858ea3fcaf2a8cadda5fb44fc428a93a475b0d0f94d631621e49ed17e193ed78a41d28069ae79ebd861d4ee7d2fc6d2346211475e43351eec0074658c710b9ececf71fffe8c917d3dafb3ed702350682fc7df808041f81b0c2274cf32419db5948eb4ff00c9de8674e1e0611111162dcb92d8de4811d625acccdb81b459853a0454ad0a7bbc4d73982ad1c216f0d18633e245c5d466e234dc355343c361d702aab08ba882018854f4e14ee28099a339750c81caa8e6845c8f2d381cd2747f0242796c52f3ede050ec8e73bf7cda7b44df05c793c69a0888415a40662766c4582417b344165d80d2128759c9df2318717ec9ea8c1faf2c05371c734f0f1c66624ccabf7136d68e5f2b15fb1b851da65766d1f118a5fdee955898eb26b67c76df6dcfa85175895c9fd875f744289fff37895dea6a6c2bbcbf67d01e7eeb1da8a624fe41dff671da1a41047dae63b2cfe17d37b419cf04b16246bb1659311d316d2688f595bb08aa0ff5dbabaa5ad3642a8025f2e411d3ca21fb81059d02d77d416ade4c729c7476a912d799aa4fc4a3fc46f949a28935d851b5195e875dc126011ada969d10c32ef5e8f04c2b4fc0d0d24a729a8f112473ceeb4b1e8d8b9a4ec33e630a256d353e93ac89c0c0d227fc29309394ac99aa82c9a3b0efc7f05dce41695f8f890f13174af8e3ed9042f06e402818202680efdf9e595deb601f3728b6eefcbe2d06027aaee25bcc08671968f8eb856bf46ed3e22072a81939831706637b4aef7f51a2fbf2d681b4882684c4de836e12bb112c2eabaf3efb59ba3f5792c7c8c50b9f64141665cad8d018f81189f4c6957221807b50967ba6f490340abb77101a0c0c803f0e54404ffe93acc4ad2bba0b0d137a98755903d4390fc5a043985732678550e502a037990f30dcb9afa1b6c2624f034737a069f1058875401439fe09db057087651394bbf17fe0d2c02382a61235c91818a1f63260f2eb266472920b3fe35f0f438c76a84bc4ad3dd2ff8a0f61bf99d101a6467b62750f11a4d2642a01a4f58301f4831e81a59c71df71d2491c0c0224c968b7e0da59f6c7e4d0c3a3b1aa441ccc0193c9268c14cd7091cd918645051aa6179e4bc9785646f6f9a8a0f70a8892cd38751e5ca6751c9d905154a12c60249d4c15289c71cccdd35ccbde35942026dd46eea8de0e1f1273058921c82fb7780bd58d9ffd4c15a28fb0212605514694e370edccaf54988ebae73caf08bc4f8924240eb0146dddfc11e9e8a5b390787c654246a0d8e691b410abdf32732aa84c77fcd861a9240387ab38c3ab131ed105bc5f3c37502b9e7689f4cc985e49fce9b20287837d34c74b7ab8d3c5b701c39b133c9a04b1324814110c0eb7a087c3f446de6c352a82ba652238f520654520b08050b918faebb380fb1e2ff2cfcc16d808be70068d66de6c3bf84f7675774e7d7f554116a57964940516e064a6873464ad93040f8151278bcbdebb5ae919faec74eb9efb0e1abead5759c7462866e0063652f605530727c6e3dfe95418293b34b9ce8c48bf08db92b25d0526e707953e16d97a5d471b39afc63311014735a71d303ebd6b2c96184186e95a84e408ebe1943d7bdabf7e2925d80382b5f68643158574bcb6c29600fd2db9e084fbccd88197713cb88de97d5d0c7f37923623a3f26f18f05a91193649a3f082455a4d5aa8dbd2e1695e87967647e5149a3be4ae327bd97f071a59c091480e0a2a6c6147bbf8cfe1f552855a533b32a82b341342c73c45d32d0d52f0b73a028552b08d396aa6ddf416bce67c0ad06ed3c6ee02f9b20f3548209b9fb52a5038a53faf90713e6b6b81852e435b7384c8235c1320b9fc14c5e6130e5b6fc111897f81e535ee627ff40c1b665ef22469197b962d167efa9f53d9d07488fb49b6928e93f51181cb4e231f0a3e28a1d051688a6ff15ea00dc3c4cf39dd98e673dc4628a12121dd697124cacc73153e041d617ec9ea383448c3f7bd187416cb0b0b95ac215a128c993b0d4997645b82a2e0db52610543200d56da5007a7fb994780b03ae4f05c8b4263190fd1b99572089947ad638a44a5436d163c1073f2441011dfce8eace2856c979d7395ef065ea97e84d76983799443789e58f47bdd2d13545668e04e2cf65d4bda4546285cb9c9fb55038a5acaf1459ad798273faafc9f2fd1bc3d0f8aa959f2a75d8b72f895484a48b3dbdd7f9d7d91ee67efae779f1df87a42ee0b3bd45a072e50f581625642a39773e7be0a7bac61e6937ee4d96f4021a93b5b6aeb47a914e96b9155e72617bdf03967cc553a5fb5d92cf08c467ba20db57c901f3161e5705f244f3580fb513f6559ede58c975f341e5e446141cfe75ff615b3604d132d2f12be9fe03adc328f4fe6f5311dac4901467b44e06ffa79a8cd63e7e6a037eff40eb3a0fc0cff514e9840d6ab99fafa4fe80555f13c263fdaebad84969211afe7041e8f7898496154e152279da5c42790334ee3104a5db11e1b15c0e37ae07e098ecc64818add80fc836f865ae261706792c7e1fc511662e3cb372ec8ab7c572ca4bff5f7f6ce1b7927008667d491ec5b852df32b02bea123b79e02c3f0d62559ea3af0093ee122d73c835a0664bef14104ccfb3125943894c7fdab6256774304aa86851b6e127a3f04ce04f0598d607a7025d7191ae52ab968ee5a6b4aa678c2363547d0f7d2846bec8c0814ebb38c9385fc1811549b02cc298023beefa7b89a19d3df2b549248912bab58adc8549b66ab7108e8e90223109a47411c8e2b90c04f2c762319822290c680dc53dae58fec8fecef5911962f9e41961f5f3a7a006a0fabbcb061ec746dca3e4659d83c48fee89612a41e1c27ca06d77e8c2107ef7579617433f2a910e91c3ced38b7f60dbef0b52120368d72f237722a02fa37803881ed5c985a820c42313448a040ce1c70d3e5d3e51aaa0822de21eb79bcc0e90c9b3443b9ae9aa1c7a68deb1abd144278a53f124acdf26388e88ede97f0dc89c9f5103222b1b4d211cb237d402bf9f801e117b7bec4a3a785eface60bc9f1887afd7db5b4b620bc4c81d057584dfab7d3b6e89e20920e54e8832b077a227bbdfe0169c6343cf05e0903edfe70926ecb7a6d611858b07ef92f4cb1d392e49edb715d424a0b2c0ebe7389b3f953e42099f70c7d83953646faf8816d38bb59ca4f8360aee891b0c042094bd523a9ccba79c4e8bc1af7474ed223969a628650ca41f0d2aa78cdaa13808155b079c1852da1ee5b0acb12ba4b118008a0b427dee89bf94ad37b370f91cdf79649a9432665a604b9484aa5a414c9134aab4c659cf0e70d3f7d37074f1689580d3a88ee4a1c469472e9382e5262aeaac507d3bcd6f10795f40ed46c92bb1a0ca40956c43ea78fedd232dcfa8a96ae500da13f0572604ae94958260a873ed2acd9b8a12193fb5b1fdf2cc7ef8701833ccdc38cf64d6e000f0c3a6d3cb3a3109d06151993f0587e48f20c388d409523e8970ec003ed347384c557ff1f73505f127e752494827708851099eed1a00caf955eb6b4999e9bb143b18f48a70d1bc5328e53843b08294155715c1eb9ad9ec99ba3888e9d28cec4f5d38f438da75e638b620756ddccff890470b9c6fde28c242b4a257ba49e760c138b44bf1dd42e641b2d86f07c7d38cb8e8349dbd730a3488f58b5d8e6257ad9ed1353b8325ee04f20e690036aa84ad7820365b35738759505744c7daa1ffbdf0b624a468dae683fd53abd1e4c3004f3519c564af02cd83ef44e332713dd1c8ec83076cd3589443c525acd8ecceb06817a9722cda8b4c9e777b42101c2b4402d861342203f990c5321b3cb09931297abc8b675072416340b089e681591bd700ce31f1e73020e9989041ed3950941d8e867197462bb799a346a6177fb4a27b7f9e568252e7aa89de33cfe0ec56072f6149e0ce44b8bdb6604d3e98bfc6441396d66e0dd34d0914b757ea5f9ea3e44127634dd1f151a73d510cd2c9dbfe07b1440769a531161094e51ac5743dd646ce8ce639889a2bc300e98d3440261cddb7436ab9ef1f792a9b43b09b35f049d5b4ef5d9804849f82cfdb06aa5dd91267d829dcdc2914683eb1081791d81e685d850856ed66a499fbce7245885ae526a1d8815dd2fa7ac29b7fc2c5924fd4eedff1d9ae14bb919227ba2450f9270a58d987e1f2a0b73b31f81c3c76535ac359e9106f55e930c4edc5c0ce6a89840d6b553d4f3de81b0c9011ad042b5ef39064a6e63f5215c387aa9e77abd0a3b5c24c54618d015aed89fba92a9761261ed33df516808945c56d1f92b86c2cbdcec44592cc2ab7134a5ab09819f167585909b083db8953656eac34b077188ad94860de25890647bce1e5dde642e561ba5cc176b5fd33eeb3b69a2b1603af00e9ddec5805f154bd124771278e8e0fa071e469ee9281ed1bb944ed63c0ad1be47c7981ac37ca8437a6b1be8f4e0f30da1fc947c4c83aa6aec7cf0c4db5c4b4c5b505d06b5ef14a161768ecd30894eda976cabcc870a3f2a78d2dede46bfe8740eedfbf0fa3413c1ec29caf5a3cc765a4200c2bf1c69fc159239b07f6e5ee444cf76ba5da660d92e028d08718991473af69e2f0c8802fc9c009047940ee2b7c95fb49dfbc5f23644fa243d0c4ec4a8d8cb83371ce7a3e54b3688f8b8bea4ca5fc016c6e59af3834f612beb959e3d936290792becc9cce597b6b819828b8d2f42df324cf7d6e3a4034cedd124e229028206568d2827abb0bb3c7554247530a1b99b6b50b4289b2d041b6690203471928aa902ff97361e8e249cda64fbf5ee976f1a84f0719a70593e53ad658e7a506ee41c6416c44ed5eb5629c5d228b417fa40dde8889361556b28cac16c35a02dbee648f31952d95747ccd9a99b4c799641949d2ba12a2d55f52077aa9b640ffe7aaee3fbdb5158590b662a9f45a59184a1bd45053eb27e92c76945e52197a87f84b7190ae4a748c631b5cbbe25557720adf566dc958442e55fc10c2e8c2bc22271add144d8ecc682d1a5d8532350e4f2c61e036e594c20364af6ce834c60f3ca871148ec8efb434d538141a03affc726dccfcef86dbac0d48e5912d0c47909b50fc62e1f6429d54f009370bf80cf6861e0687030606050787037cb39ca0959183aaff27863de871c5abbbd6347fe4795dd8323ae1cda34e8b100d62a601d96eee654c10c32a9a97ad831fc10a1be4aad0e3e7385c349decc5180ece9b6673205b1a2ce88a2248249e1332ea625368a0beafc707a098395c9d0fdba68e9b284c51bdb9a044c02333725cfef987ad2810ca3eb99574974143a8cd98781dc4aa826ceb2296ee5c2880df869016c634d9499c50eb5bc3aa02ee57888f508be93e6aaa28c71d002714154f2bd943f5cf5fb76ec6f8a342f24687dbc4897dfcfa2b3b559a0789b01365fcb30d71a1b440c3eb8af574527f734ae37c71592a9daa7f808fd3ec85bd9527011b9317213e23d9df84f2a1885c3823c8b6055ff356ee108f0488dbd11532b66e717b51908c180c057b511c2a596300006b594132c902b87f1605f0fe467a9c5a80f61acc34ca28e77646d935a6fe7669060b9af3351f2967036cdd825da7b0d2cd103fe1a8005eee039e6e0cb543c39fb6b21d8d040dc3027840be9bedf1e01826dc0b3700e417756d48938496fba0f6defdd9ab1b061bc755ca20c577efc179dc6c0a2cac502284df2529cd5fcc26c9097087d92c9d7083c3d5e27918dd1cd4ec1e4ebd0230bff31ed63fc7ba4ecd689b04aae6d3d44817d29fdbc535b80f1c3ea82aad08acb586fb9b909efa33999ca9c9d1f636e8095aa5abcbc0c8f180590f385773da9aaeefb1285ad3670b0dcaa5f9550f8858c701cd4c498a51e6b6bae226cfe0515445fbc1bc042f98c7dbfef5cca1bd6c0fe32a1009e75d6623552acc39da65a221b4729650f192cbd7c256e13b5be0bb7ebe320fe4ca12a3ca74c761b098ba1705b68a1418c5a710aa6069330ee400f9dccba83fd3f017579a02c30a4b38e1446ae9ea3bfd4b232662ea441eb9828c348d99378183e566b936128be4269acb5beac41fc941355c75c6bc6b4e6dd6e3895736e327e0d062919a5f17916a45f0e69242a2737c6e352db6e1b2da2869b1612e0e155bd57b4fe1e2b35c0615df722c18193b3a0ee50fc546bafbe4c95d74457fcb4db89c0fc807b35b6ed1df72a5d08f073698a7c24440872b1f2d2a45a6a5fe69c4953569332dc7d1d0e97220e50f8e5d77d0828bba29986175e4edfdf04d9b3b3e3993603940c086267c6b97a3513f09ee38ae136ecee1c07edd9ab3c53d274238d0b6a6ba47e8f608b116414a53bc75e050a364924ae292cc62da94e612d75d9d3dc0d538a1cbdb5e7272d44d4638fe401afcae1b77d61df12ff8c8f1b18770feb0dcc58b87b85156040693dfbebfff7eb38fe52edf39c4cd64dd0756d363792f5fe9c69a4e6a9d9686d4c0e36c40d966598ed7a5c08680abdb10ec13661e1e5669702d1f2549e562cb2b247bb8060126c5e624ab4f0db74597d4ecd3e43eabb2d8cd931662246662bec6f4617c5030f6890e55c225513ceb056196b2240aeb8b0c39457080f8e473e6c7c37d71faa3b79d0d7fa2764d5390e02e9606e55d6857123754f3544faf66689dbc3dc9df03467baaebf6244b05f3fba7e8d8ea943bfebf5e59a07efbe00e355e330974a7ce69010daeafe22240678a4c7f169208574cc76f0726f8d911ba5df22a3c3d5699181d36fe5defe3e630b59e9803ea7f3dc67ba558868cda56a3162efc6aa2d20922f3515a9a944eceb514315c0477d4eb62737fff0dbe6e961caa5872848872b9634334b413cf1bc0b7e251141f11449b9ae9ff4b518ff51b75e0a95afe6363465a88377e1f16144a4a871b31914375716761424cb46dd32e3e12b22fd22616454ae8dc53ecffa11d17d1bab811ce8808d47c1da203099604fa4ac11f8a17b0f59e7d303387664e93132deee54d73548aa3bb7b6cd51cdf0d9b90d7ba4ad84816f3618cecb71cc0484570605cff87cba7a041237563ff884e8d45f3f0d4aae0e244b0030bb90399693770d107cdb62bcfb8588d92c5f962153867e1cadd095064b6b2fdd270440d388aa51a5638fbf6be6231de05ee545ce0b41b74d1a99b3e8d224d21ed30c23c342b6a22d1ecae62302c4f336e953e6758b7402d46535dede80425424b4da67b502f68cc409b8677f81fc8a234b7c22a607f32ec9cb979f654c1d737db12177584813b1d3b08550d1b96b4ea5d070163b5acbf06e3d14959833c708aa67d3b6a9064c3bdf0b0dc58619048abb3b3ce9b55c3be8c490d0034a1ca076a16b351b8ea63d420a0c6c10bd2e7aa6750b37eb85515dc050e068e826582c30a363e4484904c3111ff1c374aea5989428dd643c4c5e44e283c1117913ba130254223221043d9bcf5e659101301145be099d127afa24e14ebf810a9cfa1ff03864cfbf8edd3b519bfcaf47191d943415a6db7dabb4bede60ac8c8a1fcbf9961d18b9e20aa1fe66cd59cb081ea5d8615cb3c4d46cd3b0e03f78224f3d69776be6c630d2b916bf18194e8602858f3231134c4224a8d5d00074fed651c8588c6795c4dbd631488d7530f12b5e42f842a2cb745642dde3ae3408097f36e856a35617a633a2109f0798393ee6ea78d24bb1f6eb392d2096329b86ee0fad2584d55d492c4baef6532186faaebd494467a2bb6422bb0222bfbdf4f43839bd3a026a50d075c3ddd1cd481df537608091683b9133cb75959bb062480bed65a7672f8df5ecb27030ff4aaccba10c472ef6384489c54eb27c9fba8e3ea0ee9b72ce8cc43ca4368821e10207e4e73ca872d9562a0a8a3ae197afa0796556e3046da3fc23013ef9562d64d01b24d835775f0cd473addda78a4b0b954d256cb0ac28396e18dcdbe44c26ec53ece03746a50ccb47c301b33e639cf631905ab92904f102efa340a0cd51df681a962b1e29607975e28de2f3d03e0c48ac9ed58be7f1f567680bd1f8aa6976baa58105a5bec819f85d2d0bcdac302a8da398388029017512e4d67dc1b9fc7d524a0c32df702d4a77bc259e9d8ab4f7f84470879b1cf220c1837af0ab3d2948a58cb19f43adbcb131ff2994318349973ec3e5aa78c1cc67becb1092bacbc292276034695509affd0d6a725bda8a6a211bac494d5576ec33d97e3650a0c98e4339a4707c1f6f1d5a8dccfd8beff5eab012489040e1804d50d581048086d3aba3531b1142384c83e1aa1067ba30406a40dc4c409ef0fbe83e63efcea5e0ec495a2ecf670298421c8ebbcf7ec9dc8dc9e0dae839d31c05536f08cc933bd6891ef352e040b00919090b6f7de7bef2da59432059d0c670d470d66b6f6b95d0a335c36594bfca92fb164c40ac91e7f7deb3de9135995a5d92ba432dab160a42a745ad19d0edf618e4a97d914cb1bcc87c8c7ff3299d655d7adfa837f075633652c0d3fec4bda69adbc073fecb452b6ae46536bb1bd5562f99521eb63eb3df64608e71dc7d6ea1832bfad9262856e1effcb645a7f352b0cb596c96c9695626bb8dc59e5aeb66a8a46c263e2c4dea6eceda23a7cdbc7ef7b66dff72d6d2e881c0ffae6717e76147efac3d2f027591a7ea19a8583b37239685b656f5764dd568ad5147bfb7cb037df1f6a6ffeed78849f5a7da6389b4663ee039a460b0a43ad65b66a631e2b64b1d81a7eaffa6cae06fd99f7c7139fd7568b5ddf93a05b7b2f767de8ece8eeef97ecefcbfd95f8733fc0c4ec0e0c48275f1ed346aed0eb2f9a86618dd6343259ec1f46a35da1171ad2c89b3f50cc59da671af9816f8d1f96da87cabfa90c163bf5eb554b6d4b184d2e6b6cccdc8debdd459a2859926329ba48d45ad3e845f22cedbe93114bbbe2a3a9c567198218abb42216d2c9d70db7c541646916e9075a4be643f8df26b3dade50fcf20a218aae10de9a573334a3f16325c81cd60a74b9adf52f7341e8b7e574d0a9de35321d5487efccf28d8ddbf87a76ad5b95c3d2e08896e5fbcee9f0ecf20c2d6d1cf5cee83be7004da26999bb32c518ca98e651b8634f9a6793f9e2936178364581a279c6decd2870c7d0a66b1a99ef02c1ea7af3146bd6293ed14567aef70d7b917c91e48fe36b1c9f24d317f61dc1741c47d0f738926014389e25d86380945d4dfc64fdced247b44a9b4ffe37a2b31368bee67fd07c0deae4caf84e3e74446bc4a7419f14bdde4da3dc02b45b9a9b1f7a0ff9bd3eaf593e0fef927cd2758a0f9e2e107c5104cf26f04df1b45a1704c32dba5cb0d2e5fa12b4a6910b04bfac202882a0f8a2f8a09146c327c9d4a97c9d298f1c5197cb7cb23c9bca374bab55962f73bb9e90e497e7f8e469b3d49ff2cdf39a46235ab32cad7cb2c93a9e255996a7d5b2b4f2fb92bcb68ee71962988549b13afc30ce3d912b4abe9e99e8ec84d8ebff117b8d3ab962be13fd31d4447fc41e1633dffeefd8705708f6d6f5faf46ef2fd0a5d94674b8baf1ff6a993c1a60a5fbe2a96d76bbffef57a6b1abd5e4f6479ec2d0db1e97ad138d9e1599a656269f6694e9aade576305f27cf57a1cb4f9f88d8bb4e22aabe28f66e9a68686996c7c40ac5def2d88a515a79a6ae95027997b40ccffb5fe8db8b74b6053d90bb40ee02b323fbf775d87fd927431004bfefcb19637cefb536cce1372073547a24dd9257db1cb76fae07ad4219591759171cf686ebb271b82eb84a95e2ec0be576687b653bd8497d8ccbf2a79fa3d23ce8efc14fb2397b4b6d44445728c9d66e92100e4b646937a3f73eee0a7d7fffaf3efdbc4190a0e82028fa2b69ebf11bc7074dd893615841d07edfcd19639ceffdacdd2e188e0dfbba5d4f92a4c78e62a85b1a0dcd8e0dfb58d286fd77a6441b86a65a9ff85f69b8c3f489cddf7c2e43af7de1fe6c4ed16bdfd79ce279624b03d134697fffa138fbc2ec172504c1efcb19e37ba9e85af1935b2d067230dcbc397bd9e3e43c4ecdbbcef228f625eccbb7660f5e165d2e1759beebc930ac2068bfefe68c31cef77ed68a5f8a65e83de26b34f49e3276a6a49dbdb63351fc1c1a4f908dc613b46f4d924892e4ebf5258946d5334964185610b4df7773c618e77b3f6b735474f97a32d4db499ad70f7b0da341351a43d3a4fdfa339be88a674a8ab37fd5943d662fa24db3d76853ce8b4f9ebccccb7bc68297774e0e8b1b190ececdcd9b4f646fcc1bd334cd1bd3346d4cd4c6c62607c327edb2862656d6bc70d142879775fce7a068f379f993c06c1e666169b2f41440d58be28411921563b690ce7ce945e1d293a18ceed2254b4f862a547a543ee87f49d50d43b222a6f5ebf5ebf58b4d2f14c90a9deed8b1f57b4cc7b4463ad38b82a517a5aa27c39511921548562059f1b20179f41a874a5eecd7ec84eff3fff8d01f326cf38eaa671c5f5bf54bc73d0ad35047684110bcdf8773bea68e9c31feeecda68e0b5a9bcbd2758367b202c6b12ccb122dc930ac2068bfefe68c31cef77ed66e5cd62c9bfc5a8a22f9a58892e827be53b9c12fe32762bd3578a263b1d8933134aa9e799da4fd5bafc6a60e1c923a7cc73e9b3b7cc7601fbb799a97c1e66b6e9ee67fdca0b0a7f91f3628ec6b1e348d46f163a7eff06367ddd63c7aa1b0d893615841d07edfcd19639ceffd2c58c6ce1c155d771a6ed88baeefad79047b3df844367664be9b3aeecbf775c26d13c562ca3347ce714514fcce9a3385edfb3d906168c7faa5d5b25ae45ffc6505ad900f5b5a2d360b4a746db776df9e3e421e582d3cc0f7b3400d43ad65b27f9aad8f31b8f3f78139679abfe158ba70ac748d6538a2a1118cc57c3e3f5cedd71355c1d22e182357e86fedfe0db58c44d317d194f635ef04c9d4d4d45451942fc2622a8dfae88dba2f7cde81b68f2dad865a24e9f72556d4b10d6a1956342ca9d0a92d44a2816e123fefd4b6cb179fc8daec2d1ccdf2ef13e1d8519ee187364bfda91f5691e882e80e8d67c7de32c9e319b441064131361e241ae82afe7ddc0d221c236e09dbb55a46d46611c99af52f572aa2564bd5d2b7146db8d843177d74d2b55e4f8268588601612688ea9a31da916aa09b5e9f61ff3275ec611576c650f3cd771386e230f5077c24bc5fb7a23f5ca70a407ea800c4de3ecf2052980c824837d0df5720f69656a41ae8faa6bdbdfe3e121e137b7389a93f2f147c3358ae99243356f6fda5306ebe501cc6b5e5025333c5c94a34b581229aca2e188e53b5d69a6badb56231355d42e2724f689c0383f8868e0f43ad65b27f1a2ddbf04512b475e9d2058bc939df1db90de8ea5d482c39e79c6b75912e32db6c6d90e79ed0df13ddefc71f3f5d42a2b65ae638a0535b4e8bbe5914c51af8f9744b03cb1344efbe60e81624cf7aee90b704cfbabf73cc35c7b8c7bbc3fbde7baf7b3133506bade3d8039f6096efc1fc556cb548f1333f34754a2b0daed5f2f7e67befbd56cb25b2b920eee782c0d877c5e6c99baa586ced7e49de27827c24578844abd5cdc540df4fab55edb22f6ab584765482aca5bdf7dead0f9b3dc80de23288c6f33b321d5db3c15a056e6131a65145f116b6b78b31c624f61dfc24520d74d3f779e7f7b2596cefc180e528efd2de427b036bce1849063a0d4fb045443687a5539f62e7cf61e912b5d168ff3259552e095db52c2dd732b7963f94d16cf94bd4d632377fd5ca9f539bf8b20fad6540b44c186a2d937d564e063aa736cc0e67948711ba56ed8a4f94e8662ca6fee07f027e68d4c527d6585f556868ea2d43736930998f8686e671181a6c8686066fe130980c0d0d4d39de987eb94a1a1bb330abedcbba2c0e8bc16236d8822ffc57d60b4df3bf2a689a9ff32bffeb6213fcc4f147f3f57abdc633c5db1cbf2c89ae393ecf1abdd0a8eb329f245fa5598ee92d615fbeca879dfaf45b2bcd1f5dae9a4ab95cd6fc524bfd19510fd1745b97057388c5c06cb3d65ad7acd8db2c31cb455b2dab65b59ca9ded73a61128ba5202c16d3faf54289ae06752ca6dfe58a7dcab339f9f5e115aaf9179a638fa6f5f53534fac1510c61303475ca31ade557086fd955a3e18bb45aac16ab45bf2cb80503951d637b0f4a19285bbbd6b0bd37f5c53f7cf26fde7556f00605cdd832990c9aba3e8f2e17cee1e7e7d9edfa1c1e468c627864b7f9ae27c9d7b54ed29b1bd8cdcdd7ea7aad51a20bbad0a8bb6f9ec8c2c01eaf1b54e7f030e2c56abba941531d43d387a129cdf51a93668f7293683a8ae807629a1a4ee0c3f93e9cefc3f9be0f6fe130666c1932dff77d780b87c164beefc36336cea778ccf77d38a713eefbf4dad0400c96383f7e0b9cd7c1f919cee7e03c0b9c979d37a8136edba0a1dea00665bfc1274750c4626aca1b2b6275c1200866d9b4edbd29abded4d49eb15d8a334b8028fe7ba69a049fbc2408de2ffc33ea6e329b399eecf074f07d09db858bd5ba4f74c94a920f8218df8fbae4fb3bf99124f97dea5492e32d4b1d4d209a56f14110d7bc89a6ae1ad09a4f739ae6db9c7e6ba60bd40f6a0dfb9ad36d0d868a34b111e5e1afa6d436d472f1987b2ffa3d7152effe2a18d6148f41efbd37bcb27bc707df6f6a62ef5768f6fa5d3a67f8b3d36f2de7949d7e6b38a7df5a684323db57667fdfb7b47d691675c2e1ae88c56031588c8d05af9cd972668afd3e9cdee7d95d5dd8f5cf50ed10b64b7105144b6c1adba5b8e24ac7ddf5b1df277e5ff0bf1fa62e6cdff86c8a72b2c3f7ed399ee2cdfbb4a23cbbab566814be9b1e7e88a6e6df77fd36f6e0d7a02919be3e7cbd5e3fcde9b6a65f6818bb270f23b489f2f006ef8b270f2374893a951b24c5b7a68ef4c9c52fbe88e6bf68537df0eb833b5fb4c6d2fcbf2e35a01d535f6b879b7cc19e8cd98f619185a045d3ea02b558add23402c7307f3d4b1b86365c22562b183e680faa79501968f92ec0ab18ea5fc0abb0059a865acb3e074d9fc6024d69361b0e9ae2360e67b3d168fff54b1886da064db54cf6d55ee16add3467ec44cf549cca928a4aecfc413060c0a8c1781a670c104000e16b1f038d32168150752b82f117cc15baa1d6b27f9aed5ee136894180a60e820f7cc003db3db02d9a12ed7b8585abd8ac2f0ba81576c97fbda06255ad56ab7dedf38f553ee45a4040401fe381d0aa5bd18c4fc5323366cc3083a78a64a051c6a2199f8e533162c4881123468c189f8a563264c8902143860c199f8a573c3c3c3c3c3c3c3c9f8a583d3d3d3d3d3d3d3d9f8a557c7c7c7c7c7c7c7c3e15b37e7e7e7e7e7e7e3e0aaee8e75331cbce369bcdf636db47c115d93e15b5c6d0408a15986017a5a212a9d865061a5621c79afe67472b20346be7b79de0cf0976b9b5fc3e27a8756bf97b4e30cbade5e739c12cb0caade58f7182b513bcbab5fc648c4fc5323ba7e3d41eadc829178af1b57c71eda4e279191fe3eb99825b3bfb4eebb6525eabd56a2855945bd4f3b58f2242510f7a053f4fed639c3162c440a9783ec647c115f1a055b7a21a0a7eb9b5fc3262d46ab51a0866e7771f42c72aefc97f3f078357294ef1f7541bbff5517bbf35bcb53398a9b76e2604adee095e9da0f86894473d99b25fb402fdbdf829c6da4eaefc80f1b507e1710d7572e54395801b7c189fc1e7e183ae50b6a7180bc6e33467ed9ce62c303efda640f8f4abb25fc831acf7ab5f649fe6323be7bcb5739ac1ec9cb3979d73979be2323be75cb5738b4fb3d5cef9ea459aabecfcb26bbf5c219c8df6b29c65e79717fa85064ddf064d6938686a6381a6b84c3b31985bcb1fc2c57a1c34bd5f76c6d9fe75a2a9ce0fe31cbddc5a7e104e7bf5e50a8d56b7963f3f9ae25ea0a9cd059ad25aa0af33cb6181a638199ae26c37686a43535a0d9ad268d0f4535da25f767e8c85c19028d6888618aba25828d687b17038c558d66b50b4025d773a5aedfca3d51512b2c3d4adf9ce3f7ab942b5a8eaca0aebaa0a5656952c595a3bef90e5d63c7fd9f9a7b6bdb64addb67b8fcd9101af76fe9aef45547f670dfeef9bbe2f6beced43330cb0b4a0043cb0410e50dca02805cf9a5c0e74b87da7a579c464e3af29ba29926d49abed007821f6e46d0e06d4c8512067446e02b92b392baffca5cd65f766340d1d839f73b59f1ffcceac526b0d61dba281f92f322f381b0e063ac5e1fcda6bafd5c2e170b814372575ad315f17d2779e16865aff25732ed0f7c90aeece5af49d3b5cb1cd4da1af1111e0e772d0a92f6141ebb7868fb04fda5a61b05a61b05a61b05a613097d9fb16a35ae7a6d0d572e0e532c951c42000bf6c5b5067f0c2450b9d590e0b19ce8d8d1361036862b097cb2cc9510cc12fe36b739cd040f51a13536db53017d86bef97dda5a703171db658a1d2d3e1879e0e573a6474aaf3f636ee24279c4e0dafd0a95361abce8540a7ff6f77b0734f68ffdc133aa5edea372ae8e950d5d3612a8731396ce500261745ee05b99e14393065bab39d76760e7b53b0f41aa075031f7fc0d451020809a8c00437f02088277ca2a04111495c11b16587fb812636c6390c64c544914a298abd1c7c08731908a74cb1cbedbd1cac766afb6c40ba0563b1ba7c89baeaabd65ad1b0ee92c91541349581ffa1655e5e26cbf267dac6b9eeac2d124d77ba74e9d2651cc79d311cc5711c4730358cadd92f45340d6bb40e98d6adb46ed1b4b07232e8b4666de18c31c63b5cb72cad32b158e304aaadacb1e5ce8fad50529845d77d93463444a76c15ad58537563acd4e6c49db0d96c361b0675a6b6fd501b0e42576b8b41a7158be862e572d8b162fd3640facef7617682a64ef55d679294df90585a0abb8640764d7fec8aa6f7b506f4ac7e4d81e02c2d87a5c5f7590ebbc107b265372c7652ab9cd42a29f2ed275d2177daf853b47843665319935486ef02b67df14c6f805fdd6f439c663fc5347bbbff7a26d56f49e087f1c6e80cff93ed6f69f5db39bf4dc36fcd1cf6d4b135fbf9749db6217e7327ba355b731adeb1b45c10ba8afba2324bb39fcb41d74f6559a208c8dc18335664b2acf870d56b4055af015464c6808162892e59b050e9e100040e3db8aab09aa26705a667e5a5675502ab2e59bd1ba8f46e90d2b3cad2c3614a0f07aade0d66c24ce144ef06267a374ce9dda044ef062da930f40a82d57e9fbd395f8c31cef7e6cfda2f77019da3fe699faca60cb25babafb7362fdeda1c807bed3ecc6bf6b53bed3eccd461b7f6fa1ad5de63314d88e6d31712b2b9f934c4f99b53bf8dd64fa33fa61f76ea276d19865affd71bf6a6bfbe7e9bda5eafcfef712f972d715708e7e57ab3c439b1ad7d7f737e34dfc7dcdeeaeb2c4fd80e6b1ba2208765278725073d2953b8a027e5899e941178204b4f0a96554f4a554f0ad598de0c61349827ae7b6f0a17285e7211e8594580879e950d3d2b059cf1810e7a36849141cf8617d46a83139b4bcf860cf46cc8ead940446f06323d1bae6ca8b2818a0c0d7a3580e9d50045af86257a3524d1ab618b955e0d58dff77da1d8abc1aa86a95d53c5511cc76cfb374c09662447720469d8a3618b951e0d557a345cf568a8a147430c3d29557a527e50b3ac16b65a3520b72ced62fc7d1883a6fddc0eba0c436b1e81614689ac982fbeff3dc68ecffc7de519bebdbd58b30c48275fa54653f069b69847d7ab468d1a356ac4306c44b3a9837cf349bcf519b1b4bb64694eef9626de300c6330acebbf6e6032a0b955cd33c440e8124d9f6031e0a7b6afc9ce4dbe3b26afe842d86bf749d20987c57c5f1ad607cf54c6bee4be580cdec2629ec06a3905e94b6c2da56ed8d77c78a65a7c2bfe2b8fe3873e14fb11d5b907b933f9ae276daea939756e68ba5e1a16034b1a5b7e4973612788ebbfc8074b7b232d495a23d26564730fd0266ad330b4365e96e87773fad983dc246ab5b8348ca6c6ccd99420197e38e22d36db8fd9b1077eb528b7830e4fa2a06b6f545bb3ac56fdb1595a90bd5cf6bd3f3f3ee45647c7d2ae170df1ba5f6d666864f018d7e13df67366ac7741ea814e5d04563a7041411995416e075d91cc40a73ee6ca7ebd0a43ad65b2ff29eb64a6b6fd4212776be1a84559f827dedab5e2bf429f90e3aca6e5b3fa50bbd29676e503afb1b8eee878c11654228361915f21fcb7564f22c027733b68fbe0795a54b6a553d9c671c925eeeaec9cbdc8edad562cb6d456087c2b147ee6b1b4fca16de7a7595a7ea42ab4a5ed6c7e5eaa207d07073a0d77b823e7e3870a4092968c3821e1317152a7aaaa14bc85c55899a9657d172f520e741a6ecfbe511dbe7d87bdf9f8a10290a425234ef636cbd6c330aca7e7d022e940a735db3ecede70608ca7748e8bbe32198de68501a4be42365b2cbbd4ba58d43282b4d968b47f99ec5a3004f1fbb085c5e07bc3e02d7cb188b73e277a55647a5530e8553941be40fb8d3636240d6a638a36244992e4931a16abb1b9014b1c33278aa8dba0a56924d6d488a2586d964d83d6d8a0a5e802ff3b43ef19df8e15cb388e467a062836a9cb1c160e2c5a377241d8efb492f5dd9c8bbd7d6890cdca01a1abd43c407f358decfe5e1be578d02c5ef6369ff897a4b1a5cd0d8e0ca4a1f96c6cde7bd0d4a96471ca685e7c2d51a441c1174f6bb3586b659336513dc24f71bccde9bbfad0f8d7bf17491949b220c91c929c91a40e49b620491724f982246d42eff9d0d40947de9846e3dbd87c9fcd67634f9b077f3ced93e7f7a0bda6d167adcde9df578d689ea6acf91ee1066d6cde9e56ebfb6cde9e36ef3aebdeb2b1e97ab29aaeabc3b7cd8fe7cc06fdd0b006ad29af8dd4a59b3a6cac0d3a3b81c5cbfe078b97a14eaed8bc13d9b3b0417fe43c8b67813a61f139e893227bed540d95bd593060b08db5b1a9791b1b1b1b1b1b9a1a4bd3a206b55336aa9b6b959ac587ac16ec158bbd96599b6aa5859dba25cde9db4e5da11d1655c17bee1359166752c5b2a5cd3be6da82ae8dc596e6adb56fadad58aa542b35ab66d96285744e1f34e88ed496b3b4fb3a67cdb2b5dc0e36582cad8aa5dd204bab557c58dab5b13867f6cf99456727c89ec5ff987dcecb9ec5efb0379a9bbf3fb3b8e673c21c1c9c190e8e0e0e4e0b1c1c1738382f70701e07072c4f1c9c5799a31a4da35a6547ce870fd1fccb72663e93d572c79620dc12062e43c825ed2b6b662e46cdbbbdd9d088a1e8a2b939dd7b6cce1a2c66ad4283ba3efcb456095ffc2fd5b133859d296ca7b54a957de2d1e843b1bd16bb3ed028441d046d978bb5fa9142e6a8742acbf9a053198d16caf4dbf09315fff7e2cb007ee8c295fc2e7c2ffef7e2fff85e447f806f655568fc18fc2c91bd1643c9d91a7e6bed935fed93e42d2b897383a3f33737397f53d39a6593a54c19abf3f7fe6d51b32a969aa566d51635abd62dbb55b74c231f543a9ff364ee079dd6adfb2ae03c8b5741f6372e5cf991f337ef820e3a833d8bc779162ee4a033183abbe8092c1ee77fb0c0f91f2ffb1b3bc5d268b6aa6e85b97f73f33f70fee6e6717ec81ee7715027382f439f147df7ed942d4df3486a1e7fdd8a3d8e3dfe6ecdb5f97b6ffe5e3bc5deb04d0d4c68668322b1345f826769f86b4e269676e54355585708e7f1361f7cf3d3dfb91df4479b6269b3d35ad9da7f68d5f21efcb54b48a5733ee8b46611d9dae5625da19cc758aa960fddc7e12ec3cf39599c7e6bb507a7e1d7579686ff65796ccdbeecc4b1d67e28adf67065ffee179ac2ca134613139f3c7358d692768abd59fcb57effa356d447baa5193c2722b627e1773a233c285bd0df78291e5311a6a52550bb1d9410a8a76ac5dd79ae4d18ee459884fc1c49f2340e3d4fe997744d43989e9490b83bea2efa88357449763c9d94931211770f01003907a5ccdd6dbc234460b83b08eebe03804a85db007a127eb74b3224c60f4929d9b081b32164e366a3868d201b346cccb00164c366c3060e8713c2dd70357041381ab81938209c0d6743082724247413aa211424444368861090904dc8c60d7713badd6e356e41371ab71937a09bed66a306ae86508d5b8d1a35826ad0a831a306500d5b0d1b41b820a1a05b508da0a0201a41338280826c413668e06808d1b8d1a8412388060d1a336800d1b0d1b03103374368c66d468d19413368cc98310368866d860d201c9010d00da8065010100da01940404036201b369c4dc876b3d5b005d968d866d8806c369b101b139533b149ed7c8e2479fae11d21928b70f728d7a3fb12d4919f23499e743ba8215ae480ffd253122822dff34907b8d1789e192c24bdaec893d2ee754678ffc4f43a26a7e7492539f243bc27a6204c9896947641763ca92047a076447850388a3c31393129ed7e480dd96d234592403d19f1a04c30c22bf2a4cb35e1213962e4eea7935212de10a5251d6f880e0913231e5311261cb819403a29a5a2224c4550503f86ecb6bb3f1eb2535a62725252f2743464b771eeeea3c130620bb174afd1763a26224cbc27ddd2116f882e15d2a38abb1fc075e8831f79e1eed885bb2fe98eeca08838291d791c473d6ef88f3b025c836186ec946af8d8f0b1f52c3141f5f0a49ea08688ee06700d4271e7eda08428b97b0b77d771f799bbe7b8fb913bb681657c31b83b0b77af2e731ab7a171f7986b777fb9bbcbdd4d209f9b0f508f948ed7a422f14ae5ee2cb8ce66744b5043744b357c6c3db81a52d604af31f0ca845709b87b92eb0c446ae72384c9c95d078da7d8412199e163f301ea593ac2241544c80c5d9392530736a03106b2dc5d89a7b424c56312b2a4a433b2d32deda01ca0f1147723bc25a625ae730780bb13718d49bfd598a16444cae64303c8c7d623a53322a56424c81313d4101e93901f2240365b0d2025214266cc5812022272eb8162f291d2f19476437c9aec78524c4574bb1fa8223ba521534c6cf78bf3989c90487d124f2929e6fa5a717752c2717d9db87b8deb6bc447d8e9a49e98f4cddddcfdc6f57d777fd239fd8dd709f925a7245046a4bef6524cb467a25b7a627a9d12a823ba5d10244a4ba4dcfddded92bb3fb9b658ee523b1fde112225e93ba8dd4ef74f4abfa47bda25e1e976bc27dd119d1392234ccf6352daf1bec813138fa774640745e495467717432caf42b83b12d7158bd4cec7745d7570771bd7158a2fe99c989488bc948ed744c83f11a87f8262e2297d931dd411dd11779fe15e93b83b946b37e3523b9f214f4da43e77afeeeeba244e4a4a3e69b7334afa27a57f82faa41a0d89d26ec95392a1219e531229dd00927e49e7e4a4346407b5db19f192403551cab97b76b743eebe73ed327787b97606f8122827223b9d12a86fc2631aa284446988d4ce67884e4990254a43a09c9c947e9aec947642989c7e86eca47e843039f1a492ec7e843039fd24792ad2c324c9139353cfd312a8a7a6a7243d41b720371c931e9d9310259ed48fd413939291214e5050bc1f2449785249763e3f504c4f50bc27a51fdd1128233fd7ddadbb63772fddbdd23c808574ada9a9ed9716822d92e44144113c200084adb2555455518aec8d82a9aaae4495b0eb47c1e895a812a26a2d0089ba1112e9f68cba4e21150c50ec5b8c01920795274df54134ea6e11636c941fdf0fc3af37bdb53ebe17dbb43e76a2c47ec8bb1f7e7843276088f23ef06fd387367d6f3fe7f4c96efad0a89dcf28271bdbb759a4bffd17df92a4f88eff4395d8fff01925db4ddffb1ed128275b7c7b46c9f687f2ee8ebac377114df15734cac9b69f2ffa6134eaee267fdfaeb7b51f90e9ffe18610e11572e2e405fbf75fa88f7f7c2754555f947f7c9fff05f1c3479d44f9a28c3a794144f37fe80bdf8768d517dd07d1173e34a3f7fd5ff8ea13e93b9847153d44fa4e787a11599ef6bd08065b8becd42d4b5b5a2f3f749603fcaf0944896862ff43896872bf84a2f0a4c23f75bfbeb5e529be357d888f4f2aec02f9552cbfc89e4fa6a6ce282514dd1f4faa282514e1bf5e544f182e95f9555f447e78524dddaf30dc1f3fca1791e8d4fd11a5aafaa2fa51bea87c3757d044d63ca74e18ee09f7bef5319e55b5687cf1acaa45e293275594128ac6afaa45e4e3b2445d20bfbef86ea2e04525eac2951fe4d777617cfbfad6b27846b91255c2febe16f178808ef233fb439b8868629f8826f8b50ffbd5fce103bf9b3eeeffb55f0c248f21b47d92471037f277b56e1833995d8bcac48e039a2fdf17d07c1fc618e31d8d31ded1bae6a68bfe5e8004074c16dbb79010027f8f63eb8825b63af0e5debb85c402f665b1ef4ea9431e61788542f4debb75c415fb5ed9e5b183f65d63855caba646d662fbd61152ecbc7deb0828765a7379e0a1c3ce87499e1bfe97e26d53bcc50f2f4f55e1a876a36dfb644553b4eeeac633f1c43bc57bf681b3f0eff35829d5eb104350711fc28721a43c15e9b68a14f76adfed2b29923e7124dab66f31ad47c497edbd21b67a436cd961952dfbb7f7aaf8b0c9fb7dfd4bde3227fcf0ed3b58661c96e0e3cf26f8b639ec839f4ff3a8562b0dc95e1ac28a82a7f8f9cbf971cef7041fccfff500f10cdf7cf37b7e25459eecefbfa60f9d7d9f9fb6334abb22207d270cc312ec6222dd0fc36a1ed58cbfef2b087ee8a53aa16b35916a987c54c75aeb885613e93e087edfe7eff3125baedc07276066831f86b99f2300c5ceffc16230d8efe8d09839aa16e9680a525d49f35b529b48f5fb5ee6517e114dc1af7613dd52b663bbb1e3479213132a2b1faad88d9facb166b9a53c6afa3e8b6fc307d3efad6822d50884d9f7c107bf1e85bac644ba471f1ae25bdd669796ab8a8a135cc81463cf01012bbb270496ed3d780f025b4aafd52b152e54b66c2a56a80c41058b96f2c88cf85b2d24c0b2ed46c50dc86cd7e6d78221cc762d2861b4a020b17b54acb6f7a8dc97b1bd07012736ded6ccb7cc188d72b25372db1ee099336776b0c3b7fd0e686ddfbe85b0da2ec4d4f60f62ccbe5f8378b27d48099e5da3d945fdebf9bd9f4875579ef3e0f1a1f5a28efa571ae6611ef9fd7978f8fbdebef3a87ffffbf2c5f75e34e5d99e863deadbb7b9e60890585eac48f38fc7deaa48a2b38a8e9f925fadbd0f9296876751757fa2d803bf882aa93b9f4d9f15f2a2db02f09fc7de2ef8cd40d05a10b45fd8047eee0a8c1ffb90f8f8b383e427f600ff032b1228960008aa7dff92d9dfe729b65ff5aea6883043c4d6fe618a3db4bdf743959457f7fd4f14c1ff40146f4c82e283df8f2fe607bf5c861ffef0925709de5175cc3679e4ffd05945736eaa7f7f9667f9132d8dc70dfa7bff349c1dd9fdbd92224fb66f6c1ed5ffd0f4d69f854fe3d55dd1598822d168a20fedbe4f6715cd79f6bdcfbeaf5ffe78787f3cdee3af5d4323489287c789fdfdf75c7a0fc0b2c5f0d39b47f16f15c3938751f3b595e00d3e0f6f7cefbd3fde5bbffccf3432775175cc76efb9de53a6f86748b41da6f6ef8fe28b18555267211a7e2a7ead3c70d0feb3fafe5effab4fdbe18b217a3f7c671745a2edfb17a5595a4579ca9aa3ea989fd57f913c339f611489b6691b6f7f224b669b18a3b38a22d1367eccf3c2ae0f824de0d7507cdb9466a927db7e456748b45dbfa23434fdd0a8ba337a4f8bf2902f82df677ef8a08922d1c44bcb11ba973f33c51fbf9efea6882ab9660f1ca269bd28d237133f9c892812adf2a03f5cbd72f0cae8f467b7d92ddf96e4ac147fa6046fffa8d776f4c3289307892a71b47ebe688efadf13dd3af39f398a448baa1be5b1b4fa4d195b1084d9f8efe76faa8fcda8d7ee81ff4271defbf954529fe05a8bd8b2ef632b56f67ddc830fdb3ed973407aa4b7947df2493773906f5f205f697e1e466747f7c9bf6813da44daed674abe7fe611fe8b9a47e4db277135a35e9b7cef71c97c2aa94aeac64fbec2d7418a3f538277fda8d7ae3f82a892bac9bf4aea7634bdf708fcfb20da849f57f7d764a36a54dd76ac5802393fd883940dfe977930b3c3ff3e0cb596c9688ece90683c3bcce111838eaadbfebd4fa6187fe2516d67f4337ba069ad7fede3bf34a4fc165552f3e7d034c2b56d71f89f79f47df8d78caa4aaa92baeb37555edd19c57ef314a4572bda7b3c84d9f771692d0f2b9de6af9f56a48c5ef4e53df56d48df4973d6be393c8cf81282d15bb2316fcbd0a66c55b7865e2b125fed7b7156c67221f0bbf5b5a5a8c4ff1e3ca9c20733cedff78dff7d14118a46f48abd57206abf7cf9b2d33af5258dfafc55c80e5ab7e6fb4a469580db7e972a2f565faec0606d551953a6ba970b65db2c9209afbb5efb958a9c0e2a09b63c4065f76cdfd2e2c1aea4d5ce9f2d2dbf4883d958e04ead5a17201bdbfffb52fb20f8e58d3106a3986c6c41a32f5f1ff2211ff22ff48d419cf5d426c190e70503d3efaf77d77bf92e8e56b5fc62557ed14abcca2f62e517abe417b3f28b59f28b5ab9c6ed76ab410380b719ad2c9ad2669c61955bbbf2397b4e9e53c619e3ac9d62992b44e3f3d3bcd865074d4300009afe89a6b247533dfefc7d9e9741dbb51ff48201bf8455ae10edf38765024f504c3c243d961080bba5c2c2c03ad99ba5f182ea820a85952b44d584dae912f04d84bc6e894909d3d243f1de470ad4806e37fe654cc0080914617b12de0577a7721d038cd4ce278914d3ae480ebf6ca003124f5aa258b2021c77070f60d1021cb0c06056c48dcb022768e0fce083942c3be86ad550c4871f04e0386303cf8d0012e71444d78a0b7a76ee0c533890109000229a9041e722b142fb150811814cade6a63003dd431541f850fe505e117ad0546240831b806a15dff7f2820a3d4401a878ccdc6f06236aa02203443ee490b136e080925c8e082a387418eba58a1e9cac800a11386e4c6133506505264001080c2ea00314b6871e1606a0d8e1856dc8090be5ea66051db470a210c51296c812cf440f2800c224025c6caeca8c0e707280eede160ba401289040e1070d8e60028bbde141123cec20700504102bd54c047af840500b6c4801814a95e2053980e88003b082c0c0872a821c626001f2831db02e30a55ae95203851074d1e1002348a9384461210a0e2cf410820f50d525587e4c11441317c89638a94072203269018b0b4d32f06a91104720e0001ea8582200a71a020baa98a51c2434d460a99a38f060e21962360315dc73c0e5002d7c5014d582871ffe2506118435e418a16b817b07b25ea0c349e972a50a0e17e20643840072824b1521b85701d1230418383ca046417ee48913e0a81841832923ee28d8f0c20c265aa8011024ee38ad1d98684109d0e602ee2ea09460834999292295fbbdc2c40621b022a43cb3b5e54404f419267c203273e60226d0008e0a3d163a1e32671c2065cb1222948faa25c29c79614b0cc2251c60393698e2cc102b1480811cc4e023704171e648023b3b0e6092c201054e9cf1990288e612438608df12676a1c50422f092f2d3cb1c2e50a1f94200b841474404019d87245140c08c79441e265d384e50a2e1bc081a4013654e9a1092b571451a688204d54f15c9842e50a1b8688a20340648941161b7cb88217850f96ec20a9bdd0812957aca083093248b9410b8c14a45c5182125bce240579c08602d5152028404890ece444003338b962c40006ae5491c099a92c3c2ba8d041af4c035e00021cc070b2e209081841440533080b78b0648596165871da71414804a8805881d580262098e000084ae8f0c30a1942e0021c21e4a0a0045a725634517571228a132451820838acf061015c912a62d4b0400d37aca84145d0788513c34a0c82ac98614569a2043b20b103191e2b5c053c194800020c4322d83123032b1d6a0085db71d543c70c093ea0a7dc78544100a11a331580e146acc90132c044014a333a4c6089a31b8898a070e40c36d3420d7c40970040cc0c24306346e987282b365c1942090c90319303052700a101a5c0430c61ccf0d0e0e5c515ab27666e4c61067604016ea06237a5a084a20a1e9c59520133476c81a2871355406104922b7044c04312237077bf62892a3c20839c26ee08394651b8bb83700177075d836005042bb5bf71e38168ef381064de421220523b1f1d12a521523a22baa52142946ce0846e358268cc00b299af3bbb474c611aa670ee8bf115dc01143dc454ce250883055070104018a7a462c4c780299c136f461d590c53a201f00ad705c9fbca304788fbc62b826ccc24980ab34cd50081220add1f7250463195cf4ce532270553250f3d624a94b92c2842fec953aa6c48163bc080a54cbdced7797b603fa10c7606862c23c48137eeebde08a94c5d1e403fdff85999bae497837948a05b718979c61c590668802fe71bbfb4ac296b449978031ae05a01c39773b360c85da64048f1910f02420b3c54be3e18aeb7e70600fb28713e0b16009c8126641b57fdc89bf1056f78c551075f300530f6f231c2c00fac17c441f807d790c59d41115f6423a65c56a0c03e3c0b71c080a380010df27ee68a19ace08b09bc28d1254911146eb0322a2a610421a8272ac4fc84a05f21c8c20a3d4c38c3841327786183ed6a07221ea2504113224042031420e2c707860e49783648ed76808331503ce1440830f0e40504005941851e26e8c8f1c205cecd160e3ca1c0045e7021480b1da8a717ae285e107564eacc153de0011016706e602a1041121e40420319a8800d352c2008020c50801e261c35c1441225e8c0d58e16b0a009118400892386a032830c31e0608c0a9e40e2882d16a09ad22d1d19c1cc313198220a2542c0012d588ab88106dd5210040061a1004746220cd56066134c28f1430f3750e996102080a31c4622780ca66882891124c1012d582a50040e35501d400047238830241404548bc1b09f89c1142f188112498480035a2a50040e37d44003552fc8018094f0e363a68a1cd2cbe5021d2b2933a850009b1034ccd084c915f1ccbdc25a91abb03f088dc012b0455822ea0c0b746dd587ecb932eedfbcb03a7506e65c16558671ea8d48138b5d8d5fa54b9b39250b5267848960f881f6fb72bed53faa1104124c81222862577803c5dba2fc01c50434a47d6388c3e5abe2f20b82975cf3c2f097187898fa5c1614318fd9023781a99100e512e67141b141b39c02aedf8d0f4c8d90c3018bc1e211e76a3d9892010c31bc40a97908f682088ac539b707493d49c8329e98fabe173ea86c5e45325c1d501430c5422c405953d62420870d92506ae4c1d40d9ea82309070d8ad7cc4d780152a084d8f5b5a82f1a506620841823055461991d5c96cc4430d00646d2b19005034da68d3946181f101c03b401c30682d00183046cb8d1362a73488e015ca6c824447a88c19cf1aa04d0b922802c6e5046d0c63786ae2b74a4e3b61873f0606a048f4c14c21d33a31ca3b8a34461e9c606a67030cf6dfc8668cc6f248d50040c3135863b5c0899612a5f9deb77c2376611be1824149149c410c21ddf08b23071883bd80411a7460746ce4d8c5006d200604019431f90864943e8c807586230270fdd9b58e2109e0814c111ff64248c23aa7976cf7c6313c321d7869108b270bc1185a004c0043228a4e11dbcf349602a860be3c832b20b7107ebbc806e0b18a67c7eea25727bf0cd2da00868c011504f14988017ad2c0a48800a039eb8c044aa89886e48120280aca002015240c1474e003b86703468304000c0e3244270868a303328810410d01c1620560996206288138c4a186a6153921f972d5aae5421820a0482c0fa21055a083f3e3df0f003853366c80859810a3148048182e160031311124418c12a375809892bf8524495211b379c1a720c419d9906320044b7d4c304011ce5301a0a02aac5602e133fa08605282006a64607283001093c290001846eb21a6c022f3a20000923dc44f0ab40142d1610428706ccd002100f78800d3d4c20418410ca5ac5fd812d83c7bc18bb856760a5c8602a0bac0a6c0ac4274a27ac096c13768badc0a5806dc269dda92fc21659c7646171ac4dad81d1e49885558d5d96cca315c3d08260b6b8de5a3f1fdd6fde826b17639e987648bc962e9c763c291737a4985ebb30b58bac5b44a15b38e1494f04ea6b4ffbd72d31493d31bd14d3f3985e84263ba59d929121aff43ca8a797627a5e13212d2e00811640e8163724257d9127a6279d91255ffb116e3c6d841b07f0f1f16141b75041970026a9247f24c91126264a471e8af74892e816432d767ce949c7537aa91678e949a7754ea0a3f54e4f04ea7543989ca47e074564a7c4933221a775684a504e448234615a1a818457e239e9967463a6921c3c023a763c427510ab2e655805fd55f34d75d5700616f23b05bb006d18667c6b751cebe3d6eb09b884eaa008d95f5ff55a6bce4196b45e6bbd7647ad60b5b5de2f01b6da0ada9b01d4fa55d06d357daefd3edaf8155b8bad2aaed58e7507b68a9e2bb657576b6a6bb5610a7666abfdb0ad36b0b57eb69e50716abd360441bea0abded45aabb5616dc25b7fa8b67eb6567b83548b4731c8969584b0e69d3b4205adc54077b4b6d65eb7da020622735c1fd6b1db08547c6938db7a3de7507bd5ad6badbd7ac5d5563135b4316ab5d9da5b2b8dfa53c35a5a6bed17801a82b5d856dbf521598430aa19cbb13bd46c59545c6f75ebc3fe58b15ba6cf3fa9d270fd044175a224ecad5fc56035ebbdb2361cba1577abb5f86d29d26aae15b461a017b66ac72fb460ad43d5da16dcaf8a165f2515b5496abd3d55246d0dc16a89ac0bebc2b6b87ebdbeea676d35b1bed8b2b0d6d6af622255dca964b6355797d0cc1e81a468ab90b0046d3da186b55e5b71dd515b581b56c79216b4b9de6aabad43b585252d88ebcdb756a17a2bad8ab5acb58a505dd8f18235c4d5d63a54eb77636b2ab635e36ac392f55a17f55e6bb1c5d586b535c78e55ac21b6b5d6a1dac28ee0ad38c4b556a1afb218e18d2b23d75bc58a655514874816662e2a0070b5f6b3a0ae6a1b1bb9a3565b6dadb5c74147e22b3ca9630c20c6df00416c7931c03945980228f52690821460fcc7c90247210813e850506ac20710c4961f067042f5382188748c0fa520a25c102e74b04349c7662308d98f0d2597114252983b42e7586f52542b6e49671e70fb2bdc27a90a173d49552c0f9821a078de164306160f152f92be7cf13831c7a2398027e51bfc710ceed781b80f777fc1b54c2bf1949682e896a086303d25315d15a9ea6228807b5552a34ab28e4c684b4b4a4d6a34dd1128a920524c3e359a9024524196744d43744686f8f09e946af51f78200128fc38d2718423888e231482a8b0792c7142a2442ac913d3119f2577195cdb24b9bbed4978de93d2119fa527a8224abba59f2645743ca51d4f2aa3d083205050c10499a71b40310585087a90c2165a0e743ea002678914a4b4869cf9e1ba518482155ad8dc76ae2441240b8605a29e9ec8e1cbab09013c21697a818f2462363f0af8b202207647a040012c5cf938a9d6041abc807187a0f184c5961264b1800b86224441133b080300de143f2f1b9c15370a07883e3990507b5c1a94e003322c2062871b3ce16eb08444faa28ae939b25990c10a155000102507501e705f52638a9336f88057a01e771754537e4d227713de1df4e2ee5dac083c8cc0f30ea470bfd261ca5f45445ea360b987a0ddef96bb2f559b982fee4e4a4c4a6f84c7b4c48814d313d395a6b1726fa26b7a291ed3eb76504474425ee995b8a60977ba2527a6244272b88e69d13d41bd5412282625ba1d92d719d13921390235e47949a08cf098967c931def49f748948efc12ddd32bfd1353119d9087e2fd928e87e4888ec7533a000b2d8c359e914673e15d1879c616fe79be85ffff97e2eefe433a66c49d8428f1921c89f1f01f5ad27d932525ddce498947918ed1dc7d7ceeb5d64c18f71fd27a04fa025a43c07f68fc211e119dd3ff98c433528469f7cf23a2734a92d21919c2533a32c239c208eedec3a397b4c6e1fe524ccf4b22e45f8ae99f744e43524b4f49a0843c11a8e725817a26ba251931b44ccbdc7dc84891cf062de770f724ae5f3e9e763a1e4f09c9cf8e27e5f6893fe99c98281d2192440891272613944c90d1e363f339c2837e0412be467bd239f948f1764a483ae021d84210f224fc016c2c104922648bbb37716d5e51a335e12139a20b22c5e4432489907348a4bba8840df5d441eb1442c644000000200000f314002030140c87c462c168304ce4446b1f14000d93a84e6c4899875992a2208510418610021020000044006646863801404f471e4129370f4618c7261b7b6a2cda3888d8a2093f931c6e02e5bf226da7b457c965bcff7db51d749fcc0a447f2fd27fcadd330b42fe5e8a7f5bfe1fe041ff4f8f59037a0652c961e3fc64b3332f3db215cd86faa796b16590e1e81078216f7c13f73fcb4b8ff5a57ac2cb27e24f7ec320a40d167791f98992ef56e94eccf4beb7a21b8a3d3ddc8a3d9d7757ef2ad6f4bd5db57b31d3f3feca6ec59eaebd3179af0af86207d6ab61bad8317bc10e173b7d2f36bd3b1cf8554240ba1388ef20f01dd8992a0fb1db5775191bbaee5ead6b2ce8777b95ee63a0d7fd2bba8d0d5d77afd63516f4bbbd4af731d04b37a6b7dbb1a1f32ead7c2a7e017db3d47809ae27936f9e17b23590a8ff00b27b71be41687fa8f977e585b8f41779dad83939e14b94735c38084ccfeadfe11b1d27e4c86967a12efc7c401156e577dfe1f05e63bbd3132d85471f84436e0fe206cd91f783f6f5970139daf7cca0388e19f9b5b5b849e327daba59824603ad53714fff055b0e2ef6b3f120a36653628b12ae3538709479888c424ac01be7decfc8a58028a7a6f5cec1489962471fe4821f66f2341f7a7f9422cacc9599aac5e3fed0a562fe6145ab5f6b153fc1cddfba41411f868edfd9eb6f0d4ce687497dafc671664eb88b1165c62b64534b4885f640c18149a394b6c5e44d2c679f631c8a57a3b3223286acb134aa8c6489238542d7832f2cade759bb3337c4c3a2e7c1861fcf40b3e63e335c7b84a9f8848d1f30df3a5d48f121b1fcaee9df9ac2fbdb084143caeefd71976ed9e888cb52b67413552c8ec27b7fb1086c6afc84f6e1b4f7f335b1d7c323310293d1d6b2565a1846a27a17ae5916df83477546162ed62e426197b2f721e8fcf9535937e37b236bdecbfd8b22b4d5ef6a391df8b18e598c407cd2365e3d60a27564c0daaac1407847b17f225cc7b1b4bf022c0701d72bfb69b03dad3d794ee0932fe015bea7e65cfee64b005ece81f0734ed0f89e41e2852825ce77bdfc7d7460810df3a9f8387abd3a61262b05aaf04d53dd87544ecdfe8d0befa6492115f4294ad234f08a71a4a2af12f44c0130f8ac14cb074a182c271a07ef5d9ab7926d3238bfe8f49f0b17c2305d00b30914f203dade312ef8bf5be7dfee7dceb794d6a3529952a4544b3f4f361331fbf7b7319c33457471fd044132bbdc8ace86a4fec6b8feb654b13f0ac9cc4e661be4d9cf00a2f801acf19bdec73a23395fc46d593b279ab2ae6703d2b98903f57fcb53016eeff707b37bf95dee43c021b8f51fb421c28a9c014ae081ff14feed7c7eff47316f6d8cef8d1fc9df3083e0b0c499341b4cf33b44800a0a023032f08cf7c97ef6983546a5286fb0ec0301fe3337b1221f53d64c282f00e450f4ff3831b7727b66d1f5360d8e4b4fd5c4c8887ba6381edd4fd991fd401b5ce917773bc2b3dbe40876db4b85c415667b59c155e42953df2f51207e1b7caae13e14fba23edd52d396588ff4665b3ec20be93bb0c09e972fd122fb5cf644b120e4d7a1e735c20244d163e407ea959548e28ac4df3a47e1ee4e45ef674ca2e2003e4de08fdbe06b7b84258fb15f0cfa5fb41d2e44bbebbd02834eb1d3e6a3b3e687f40baaaffb1f3292fabbda15955bc42cf665ffbde121e6cdf5dad64341f72f0cd951bd094d6542fa13016404017262d8f0d8c24ac03813a3614a0a85005cb627c0c8e2c174756aa19f04002d32eb4e85afb5679729e08c6b9ad82a268e807403afb3c135e5eed0babf4454660a11ae53e4be4326f64b4bc1e9fd56214cf22502377fd0506b1f4dc4c3714e13bbb39973bfe56d8a4195d3c506280085a322d9ab51f46be83e43f7d475d905a38951113b7c6abe90d14e824c36017d1d289a141c37574196350bcf0cb9bae2a0b5b5f4e542239f942f9a052d137b3968e144a3710e522a30cea8084c080724cb7170fe81745ce451fdc070d2e9baa784313f918a0b0ec8083e91433996257daef43f8673134bf5dcc0829f1622699bece71efcb4f55a4f24c8141deec9925d4f3eedb63a0685e79a9e9846527557525a0d2243f8918f3b72446f95990bc985388c09627063fd650695a4c6dd56b1c9c55808059a55f4c0ef1252d0c22a0c33db8a81d6a00c2934e6755afdfdb5e81cfaab69da604b1456b1a4952b68c3bbb4e835aefd69518ad332fd184149eac6f1650fb4a3f0d3e2af30c70cf71af6c934081fba1534d713f78ffdaa21e496d00bc3969fd9e9bdcb330d3600e191b4fa38ac4dbbd295896ddc4ffa1ba3cbb552a2ac24e4a7bb118c7d6691e50c3167ce076efc00e3b698a583c33ac42d10d237fda3a6323ebe4c79026824342dcf9dfbaa0dae72142ce666bf8121cc321f09e280d038339b290e2d3922dd6bfd49b67c476012c4af321f291cdf6a23acd21cf645caf6244e76d218b285863e334348fa1cf4e5c504ba733b56a1ba190b29d7afae85c40d6473d33dc4e614594f6923bf737133e1cca2846388d5b43fdeff00241a06590105e50a2a537faeb602ac489cb8bb4e7f20d8a9c99a39203d5ae49e00afa6ea09f1c601a9373f34a4e1fe6b06e14ca582d7bbbdda95a4ccd48e6eda99d0ba78ea0611f263ccc29ab7a90b556ac7ebadd89f7f308876d4e79f33d7bd93800cab908b6cf6f90d9e51eec112e387f90584eb51de9746ebec04b081e4fb65069429bbaa2e2545d9a2b606c1e45fb9090eb9496ce15ad6a63b01939204b4b074a27774bcb2a796135db80edb9b2f52ae6c66186ab499889de6c49db6ebd40a675930276c715253753c274aaebe7fee47dc9992b33795398fc0ae111b47efa7be6f3c3d268a8571552f568cd955b8b4c6134af3ce1a1c6570194c6f08977ab114c4e5ecc8855761aa6dcc2c67693bd0b3cae14aa88a8e8223852b3aa3585b92707b28b2d7ae5fc49d5716dc38a6c256adbe6eb38ef291ca5afdf834d4e3c22e570591786e737166b4117996343306f26976411276b0c3a695b8f6c2035c23d90d1b6d3f923525a4ffd90e15c168663f14796888694b872d8fc22b66241a7ac4b656595ff8c101d93ae1068a0e0fbe7405e10e8ab519d78acded398b745ca3c34b842d607aff8489f52a84b25820025071910cb0dd4d9cdcb5cd6a3d9b58b586d26e3f23690ac5b653b7f6790f021ff9ec0cd0d33435f08d5302a9239a0fe8f6521a8b9187e67a21edc91d4633795ba86a9c4a9f17df885f45c677d659f6aa0bdb2d8f98021e9fd7613b9347583d785f03f4c7b4ab5424976594cb76cea6d93c58e6e1f7c1d022f9bbaaa166944dfb5312dd92b8e8db0c7f54f10e753af80d430f96445c913293cfe81c472fbf20715456a77df3803f5601a4c82af29142435bec13b97e5c8014eadabe222bef38505094318f5bc5c73e4cc5a57faa9b3d2a2f820ed8d372000da1ad980f135608f92d354f9b3ebd2240402b59697e908f9d21d25890d9b2f79a955add43515aea1fab35b230161793382134c74cce0a5c89a6ccb9bf60280358af570ba09667820a1aeaec390d08678948ebca424db8137b6d7083cd58fd96df0174ba2b3a275530cd4034c535cfdd5269754dee1ff39c1c6482f3c8c12c1b7a69bdf726328c84363731efa6fb53048ba5ebd1f06a3e807c1c25bd55fd78294f0507303435dea3fa17c0b0a683775454751bfce767c747457c8b3d6a17114b23b373f0d2f251ad2d65554b189e5f4ec5bf60614402b30a322066d8ca7ce048ad140c992f1b72d1850a9083e7d66807f4c7c3e37cc8bfe6d48aff971e58e04e2adc404ee3a11a7bb2c57c78d4b39d489ef326ae55e6da0ab8ff6d9e82325ea6da0ec42d9716a8db8cf11d91b9c449154f20ee16b92237a26fd9ac5ccb85d6e861e738a6359b490a3d636373be373b28ec4375215cd12c9b0a65abfcf50280adb0abf6297e9da673986dc590aadd9ad3bdc623813ba620fb64877f0be34c26a18421936bc62bafc563f747873e981a44fc731270d5a116fb70be2f6ece40059e88606292c1d3c68eb6cf28cb1e8f0042a8320a3dc5ea6bcdc4d92057ad7b4226b7512c00ca22e06dc98b4e4056fa1e00b63dd36bee5d66581bbef4e9d7d13e27b5ad67f5700495b936cf13095c8de61731bbf99899059a093b1544d478f41cb50c6ad3ed159964340577d5a44d6b18e4030ec9ee2e54bf66333448a720f93018f31a508c473acf8b999639f9b24c97ab4018fa69b1521b799a08fa530d6c8d26378790f245709650a1b263ad5ee517adad399ca3423e8a1d347696c69cb4b03ac8a984a082358fc3acfbf7cd39bdaf1d119606ccae50326b22badeec3630a2d0fd2b34c95242547416b2724c18b502ac58d2bf42af39717cdbf38c35136f255fd44d6d67b968a83bb70934ac179a223f05e3484ae49bf0fffb51bfe351103fcf1f35b48c9b9e5178a58862765d799da4e5fcc1eeec2048713e80ae5b32905a1d37d11222e9e0b17ad08ea5d7eb7be34f35790a3c6f26778e4ba5ba685d8c72148d7ec76e8ea9429baeb957a90217e53f4302ad40a08fdd69b496601c8457e3a037bec12318060fa59830f96c4341c75cb8908640ca8e572bff650d49736f15b8eefd9189d36bc6d0ded96987ee569d59b4eb3568acb511ac91706d0d49f2c9f7deddeb466fd8f264fd2d422ffb4591a9819722925c2c5dcbbce0d0dbfb86e142b8b758957a529782693de6134c7a51e673b997b050da04c12448158ea0a377497573778a714b86c1d094e116d0311037435e79d4490ad5093430dd57c111261736c4b730ae79428add3696df40ee2d35fc459f29d77556add5d2285e1ca265066f4905edcbb35da15aae65a6f86193ddd347d4afa77f7d79b82e5327c1336a587cc074a19def13076a7d6b169295f18ef0cca5fded71305481db8681ff4487bd0d12fc8e3281b4dce863ce32441419f001b18553afb4c5efda7b8aa8f9dc76435874e9cff1bb269d4936533261b3f276454c43d9c50c53d77b5069203b5d8037443e5763ab60d0df4940748ebec941f01b5cb970e9a33400a1e2149fa5b411e5dd8d79d51da4dc35cc4770f3d693fd858a0feafa2e6374fdee2dc1e0b34fd43d9f5ad3176121201176511e923f9dc64969e5556e8784adac0c02600982ad6ec3f219d0c89aeae77ef8245008f1465b2b462550a6b767044a49c152828c67335b59a4a4e2b08810be28116bf21b2dbc1d56d7ad6d369aca845ede1b4be142d10d0fb8c1c0f52bdb173b0d3f08a09c481127fdbb14c518c708f8a1f601fe58e9022d214318cb06074adbae3d495422f80d85bf680cbf46f2e3c0742261b636429a600666f14b76150c2be1d143842ae2faa7d9d78d2a412fa5f6eafa933caac869860ab1519c640593c8025fa99621e8478f9df59a821939da2bf669cbc92c1e589b1da5a5ffcc46f22036c860f2835590d20f00f5a5a1cce7e59cdf5953c6910af1ec467f591223a2abb8323692eee5834c7b8d0199f82df7b983167a2b56bc38a4d568abde4b6e937ffc3d1691618436ccdc5ae64c9d27805fb4e06e07479de62226cba4bb55208c9f8cd9b6a00dfb89e3da7bb0def3656142d150a28f5e0664abad25e3fcbdc96e6c132fe71839225bb097007a06b755a6841556dcc7fdf8a5f4c8096c0872348cb7adca5777a169bb0b46f8a7193f26fd9c953106627a87fdb4822093d2e6baad7efc444cd9327cc3249dc6f8826711fc8d0c8ce3e12a2de42bd28eb28ca27949862b3c37bdf129410253c44e24c2c86a90b15eb66b513ae3f3a0d35d5099b57b80ca57a067bf0dc9bf7db44bfd58cebc409113c9b2c4f392ff6e36f099ae1efaf6b4bee74104df20d1a76e3014fc36d77f4363a3b3026094aae2ecdd044d6335fd06291b7e82262cfc4af93cb01ea32d988365eca1c0b65b0a93a30b2a1ae6cb4b0bfeb7680687f0102d79b6fc7468f0ee51ed7171d0782367c3740c8d4daa69b79825d576fa1f08b3c2a9d96d33c2162928d89ea14dcfe88196f793d9a6e6955c80c4be08ead68ec2672fa22dcdccf3119134b2558a5c1ede52d48a3d7d372e2ccf0e1aea57942a50cd3154cda4869f58c1bb2ab8ee0917772b0f24b314573cd3154910acf6f4ce4af3245e974b6b7e36a2c94cb4d275a48c66a042f7b62cc701f69502a6dffc6267e71aa7d23ba199cbfb8ecc99c9fc7b616efea164a57f2acce3eb3b58cf41f5e9283dbde95de886950030cd7169280580f07a432fefe3ffd308a3b93dee6f94ec3a865fa5d07897279f27f6c1ec3a8046a78a2b1dac2d2b5b5ce018a0fab3f69f6dde940981b6a184554a421e00f123894a7b2df11203095ac80991f00072c4211f0431a45033a3fd803a52aa6b1d8f29236c5bd92773f6ce5a7b9283605af68ae0ba1649d4c5c35a829e8989c3af92dd56582a2a16bf50a4bc5796e7c686655baff4166d2ae89a8afd7a4d9ad58b1dfa21e93be8fe325f95aa675a1e6f6a22cb2548fea72afe4b0a8e1966358cb518ff64a3b54881b5e9ec5070c3a295dd8f247a232a7155d649eed8576547d782b6bef45c35f6513cb0acf10ea1f7551a654fdd6bd9c53ed58ea8dae12f1dc99253e4a857a4a37ac7f612c50d8f534cd4264645e02c1b66161a38cf86f4eedd605178b368dc144d8de52eb4e375b8a509dec7045e97f6abe3cc7d16a20273d0d3b848f4fa479bdba8c502aa0dd37d6484242a5ad7cc9b151c32ee9173aba23cd93a80c37b3fa39b62e4747822ecff9a4cc63589fa7affa158b459e60443ecf18258916243b3bf3b3d5b841a86d9c683488c304544e64759240243473a4f5ac975ea6201850a318e468788ec68d0141d153b2784a4b7681bcdb753494221b95bc320d70b63283a65bb726afd1254d55fdbc2e1664e737aa6eec9cac689369d766c16ab7ddc7164c81d5390cf1f05d6e986ce008fc82b5108e1f40868859b759f2bc075f1a269016f8888cb0bde51ce36da76b463f585c12b3280236ecc5965956802253aeae0f87d9090432ac4fa0c668e925b6e64e6ea1b7d1395c89eb38caa8daa0c147dabaa624c610faffc912171f84c251f766ec0bf92083c9b1c213ee13a7ec9e256327d0f41c2aff144d1d3d7038205a1a59ebab8a89420a1f7000ea6fabf024ce0498183c00dad21bd8f07632cd9aea81dff2c240917418aea24b0d2a787c351f43128cb9453f6f79160de82414f7f2e56be37c49f57bac67ec3f840b7720345ad7091acf6bc55ca125fbbfaa55cee1719d951fa8d2796bc35907022770bcd0c0118fa8963043f6f709576f86304709b9086ae680f29640237e0baec821c0e0bfb40c1be683208cdc2dc58fde5e001b9bc06f708f3945b59e84f75fe50fbe808165bac7509c103a50dadba9f873082eea7d753e65ca7612238b31d3182a2ec062e256c859a90e0d4fca05c102e345710a79cfe59e925d8da817895b922fbf09c30e8ac53f1e897166b8426a7112c533335e5b3fdcc42806e8c8fad66e316afa4d596b50cef8dc351272238b5616f372f0ceea57702e9a66820cc001da290eb4a0a4347b9462ab5c39facb8c727b8fa95e69dd36bf1240f16f190ac4cf80f7accfb5e091b720178728b41b00c08fbfff06e56ee3263c918d8e0f0801c7f7d71d2824c688c8864e3b50406d87220210b372e70252566224e90298ff611d742c60f7265872aa67abae0fda5b649195665868d3da001b4f241a7b86e011111d65b280ac659d77a12fe22a5dc57b67b043ad46618ca535248fd5fbb96607fb8281afec70bb978156e24b8cdd5d3f691840d707889218216f2d00840adcb82146a8bbd0bb197442c3194c0533e261e70addea93dab32b793d8be7822f5436d09b0823ca010e04c2eeaee5be33d8a4022365760c458e142b94ef6c3c681c46f470c175eb495dea7a7b2cf64846e84d8ced96b6b6106d6d264b0415596347cbb3d91d689f7adb893ee92d5ebb4c3fab27eb103a552afa1275592628cb11ab07eb2014983e9dd1f973a80e844c7dc9292cd1af4229e951297d056742aa44da529a765f445b5a0a434f50472c66cd413034755855f35beea24ab9d569f5b8de8b7c39b24bb4c1e73c104b323ceb346be3891eaa63c6d4e847f44a58f5d34757938fad7f76939225bc4a15de1511b05280c097be90a7f17be4106d37301037c90721ff9ce147515c8e08476aba30bcb95ca0406e1a43bd476233d8570207b1cfbd50f6ad091c30259cadb5e62ff6070dc251d5d907d2342a52d50189dee63c0d057cd738c2053c9d2c8f5dfacda2fd38d6ca5307328c0adade504aec366ed5c1af625ed63e1fee8f45d9a749dfbb5a7be49fded6e4e769207c84bf4497eac5d40ea651a488b3d281e0f6b77e64cfe934e58c9e800b0821c454538682250962413f8df4d46369cc567c6ec76a0d07b5bdac5694b2c7018692278a9a58710bd263c1c23b451e6b870cb21af0d358eb992644b83c9e0ca87a9cc3e39b0e28aa4d815be0b7ec06b92655ce80427a2c939c17db760e2185225a9329e4aedd11b41e81ed1f0f97dbf922bd8d1970e9a65916e268a116134aa4fa84a484a194b13c45fc33fa5a07b8210d676f40c6878e048024ca81b2192a63f4cf7a060378809ea1978b5d7c42ec328de3c4f8af1dad3dc38aefdb1dc05ee482b570079834775048a57873b95117264a21d756130d41ba285e0c85c574101b56a4b5dda52556f5d6a5bd5556f2de14a33704b871b377869c6259f0c31ba59d086f5a4a23004d82298a09c1bc135c5febb0876d13c808a3d00468c369ba4cf4f20f543039974bda428f41970ca6fa495475a1a64c8de73a7b8694c0d348f93027d6725e91e36f235c3ee0b9f2670740edb945e120b9f693f73beffcc168b85868f85f12caab1d4f8b61a0ed99e5c9ace9b64e096be6f1e2042468b29ec9f0bbdd0fb304adf1825ea027d9852e56e9b7481c76d4aba5d1a3fe6a3bd17f5f2924b96a1c9d2371d714089915440c855fcb1f4e1e3f238a7bcd6a98eaf3320d50ef5e1695b8eb1a961dfd4be655bd926da14a9121b20a6b6b289271bd87b32a3399de745aacbc9550ad491ec9a1a65b971cf27948f479d5bd435679c24f4644b148ca96b82d85bf471d845a5121c13810ceda2565caa7e29b586dea2aa2897c315710c0d19872b95b84667c91bbc0850b13639f124470f4c19b41420db44d55e6604ccd1c1712d662d9a0257a55d20c7cc444d6560bc78843f0a2b09e1a4a33d2b72f9d7bf5137223034ebd73121b9c2768ed3cb3896b205bfbdda95137492621ecb7b297abebebdc3f5ecba7ca1e2d44af0352ced6275e8b36ffa04e3bc2f16bfe5fc98ebd70a94b873e6bc91365eb6a06f3148915ae0daa2f793e489cda14045a60cb9483f25d177970f77a5b4492ba7a0241e40972631c67d5312d4ae53f08b9e751de56a0e601772f29973e0852c6f8775631775310c2007817dd9ccacd1a755001c840310ada0560e324114bc401f4a9c290352c3c4ce24162fcba80a92a0afcdc03ef9df6d5d771019c59e1ee02284038d22d32e387330959049ad118a4c16093f32d9f9a99249b4c1868126fadaa48494a8704f16727bd2070c05c7a07b64221cf2e4cb19f5a312fffe11a07aecf02d05cce057f9db49a8865058c02cc6487875c28a485b6b97ade952de36c20419196102dd856275649036a809227f4592f134407cba0903cdb7a6f111ee83bd3dc959301fd76df13ddccda591476bc9695a51384ac1575286474a62e069dc1e7294d0820e195cb2afb1d44d095745916d488ad0439120c787296c45cc073f8cf029f1c14567b196c182371b042fa0bbffdd2cb491a1436c9d9a3fe916b604f1ad65684bb4c4ed9cfe3c607887cf8ab372d6fb91ca66df79f2f7c8d1b6b7ce87a23659d8b7ac7962a38ef38c23290f79417b460684694f86d93d8342a6b256203232a82c10db52246c082269bae9cad9a0bbc68c0ae14bde73f1390ba747028ba8e0ccb52250d5ad53d931eadb026bae3a99484b0d2e6375038e909c35e4e01234bfd23bc62a44265b856813324d00792e07b94ca4ab9ca40f6b261ae0563804d95c50d4e084e8d716242949c7ceb144d2f0a43eca34f0b21baa89e479821a798b0886bab4b9315c4510b9209cac1e94f39c55e789675dc05c44c53bb5d3e090a1bf2f46bbc00ec0f7340143a5b706711e8503b68138b14b9c4d3e429cadfff4e01f48d8aaba413ab0902a3844403ced5a5580373cc4b239cc1754c33cb7e55cef38496b75d06e1e9b29d69d744c5744039ce37f1d5405fc2e535f34c9c8cf8b2fc0db890007b337d79ce4cda6cb9e64a699665601be476b315fd1e80a3a42bcaea7c5018fb61c138b59466554c2fc0194a27b127165776e548c1287f77dce1f461811197a0946d7d1797915eec39406b74f2e252b1192eb9d6401dd13932d1bd93587806eaec2984323905a677374f6c91c7d21d6c120b9a84a2296c96b220259c4b4677597f7e3dee1bf501a97086b3a2d8dbb133dee60ad8ca084e1bec560b116a66ed1ec9d1077c397b2dbd0909961f74dc6dfe91142db55f422380d6e8d7157d11fb287786b3db214bdf14c47262b8888129b34d44e4a4a1091a36e5bdc323ac86f90abe3fdd643b8c605dfd50d344af675630dadb3282c5aef6885afe45734cdead72d802e7137278b5c404b1e7c0a83ba052bd42d3139d7296a98e0263bff8e47546cf599b52d2b2391c8da0f87ebfda4d9dd46c2f19a137108d2cf2b9cc3cf08816c1a022424703d94d97fb4d6290b8becb363ff75d4cc794ef6a6efaf0dabb6ff74eed00f21c1aa2ce0627d7c9398a698fa661137ed23758ae3524f47642f8161259671573ec454d9037e7dbcce0db1b58ad7de14065a25ebb8f0f11edcf3fd9e86fb1da4d9a7ec0f1358ff4b7a71095e5c07024b75efc29124a44698b1886b9ff010ec09f7beec87fbbeed87cbbef687eb3ef69738c0b19e4ac61dd6e641a3cc6a7ee8cf01f4a707b2bd4009363a8da60288eb409ba50d2703f9f43f5438dda414964ffe87ca3a3581fb60ea0b5d8b1243d4a30997dd31c022e888f62bb5f720e85aa49d2845b36dece1bc9ba066ec49990ed845bc7cf22e25695a102e530691a24394843383dcbbd3321dbc764123d7840b1e551bc0aba3cd5634324e18faf2be4b07232d55d8432f864359f8a05e9f718c934e8add8bff023cb774797b5606848b09047a42db8a74d94be3975f15c2ce453d53508f35bd429d11662f52b78cafd734efcc9e9d83ce089700a1acd938f74031de708a22287fc0443c029f7b6c4838e11e6788295163a3d5f69104211d6630e10b42873d62ba01049444c41e8132209c40dff8f39cdd3c208686c7ddd702dfbad0810266fa36b0957f7c6602c629fb4689c466506998efe423cc7f6b31f9bb08269a94142a3ce63123b13867971acc3b0480f46ca62e2896c72bb04110881fbf0bccd3bcaef6491981647c6207c209cc5e1fc049ca29bb753f70b8c8fd951771394ec0c6615c78b7cbafe0703264af94d784423021ba972b903afbeecb7e9dd64b0bdc94ff17a3e966a6b89fc96a99d69993cd55688c51cba51acf59b5c22b3fc351252ba9493ac0622e54e2b6c30b8aeb8cc493b45a2a84977b509c729b359bf721ce3d8ff2a5412b39dd7198f31d18ada7fdf17eca7943b76b961e367a165460ce9247bec6ddbf35ff0e8fea0c35bc821a72b6f8e201c039c5cc3ec8b60429e8c4d76197e29b9fb274129f4d1bea36ea7fe9b4ad24cdc37c25507a8b4347455bc3f3108b24b77999902bd2a924116dc8119561b36283cf0ffdd065e448974da631c2a94628f867198d2578ba8c663cdce987719f66726fb761c9b43419b542a59d7a31d046e69de6a0520454569c9902e4fa14fb5fded0fdb8c25558be537e9c49e03a6cfa7cb674f15e1eceb1fb04e59ffd989068efabfc3ab9483bfa6403d028dd5117f78cd1a47a1bad49cffeac10352d3fb9ca8fb3056ae44053fad134a49578104117ef87c54fa0d75feeafc8463af90715a323597df1b0e6d382bc4fcc7ea21c8808ad143aa9ddd4b3f8e4787b06c665f8231f2a160fece29d717bab974b3996dc0c301e78d6f9e297b41d00c2825a6d6f0ed6923edeed9343aab86d5ded5b6523f1c0c25b01eb2c1ce231c17ef8d4d633a77c029f715a983aba840cb30d1fa0fd4c40e344cb20592c4a32f1c81d8dacd2da90351adcb8939904a8760cb8f5a1345ff0f0cdbf7e945f44ec111b6d22f7a06fbd1d38602e309bb1a04d85de0d200ba414521bc71752d0c95d694dd0fbb0e4f317281a0be4241f329d49cacbe777462636119feeaed16b460e0605869ec1003bbadfdc9c22f4afc77a3810de0cd8ed5c1180da67d2b44c473933a3bb0a33336bf46e298fc22ecd7f55a88b93f12807b13e9e1e2a3989a3d4d681858422b795892be75555fd01ad36549396858f34495090093dcf6e01513d441c686ccdec2e16964b12b60d74f2822b91aeaf6dc2f4d5ad14b87b1b26567b3a32adc913801105ea6a241e47e219ff0b5ba0e39e90e0b65e7a20a1102d2e5b63e84899b50f1f8b51c7aad58858c485a5c852ae1d980d6fcd0332c945423e7e989861c6beeb20cf87b33a7fabbb642b82ed1978f6c3d305c8c42ed9c3f8e079efbb272276c97f905e695786423ae53240904d849cd7ffd5395b48d5347c2e96950e8336b748bff8855936c96a323e8ca9b08bc5c482b779a84243dca66d598ddabb933efea59dd845709693a2ee4512dc3b4a4288bfc9ac235589cf8f8946b5ec50e5d0cbbd596a3be6860d6b2a5bed5128d399f3a1d37cd36e9c2feb17dfa8f144a13e1766420b7831e76977e5aff73f871d33d398111a7e8ba123a94e3173dea7c10834ba9d86b647d8e826cbcc153541e5098a636e3ec323711f16513664503701c1d4ac5f052e46a17b1099ef06a6fab6ce1cbba8ec5fcb73ae500f411ad85ddb39411731a2b6132e225778c7d24661bb50404d3b340ea112a2ab5b7945c97b206ff1f20a81bcc860e4b10f2ab00562f684d6c709775ad1a387272204f3bfea5ec70761d4ba44cff02018b382c49b95094537ac0760cc5a494ff620185b95e9d53908232b057ae20361d4ba679ab748af75a21b1661da9bb5c7e81b9b6c2dde9ba6f91ffd3a5b6b22b0926e3dc5766390b9b83d04f8af4df96da26d7e61ad8344ac556875ba5f22d9e813e54d9bcc56a1b7f80427d65b432fbb7173008cac0b456fe503ed13d5508f0c5d7b7e73b6bdb9ed346cb186c3535aef2d75eb2c6e8b394bbddad3269b6b3dca2351758397b3eee04c697c841c7e7ac97c23574f0810496fde1d99acd6bb8c67ca15248f5ee1d0f7b734652b79953ec6eb2ed485352341780d82657c35ef7048e4c45ba03e130fea8de99937da22ce8a35781dc3f19b5c1d6a5e13ac3bedb8691919b3f183289f87d5e653770b697e10766ecca59403f395959295676cfd90e27bb0342fbc3416c980429c1bcc90f8bec7d69316203240c93bc2942f11caa549b45cea95cd41257cc5e809b1b15f9c87e91f12cac1b66e8635eb32b0bc2944752ffe05e1549bba9ef6143a4e51c2dc02b5728b55df399b0a4a72bd6c150d630d050490fbad82028218891f43127f43cdb39471aa8ad02c8781d92f662a7ad33c5416cd401f67c39f71cec15e0cd65120fcaae18f9662c269f80ab8ca1dcc640753930a547205afea059cd2dd7262e24cc167224eb758fb2b9c1d1670c31164b19bc2bcedf768db7ca05dc24637ed1cb0745dada96f39c9f9a4edbe2cb9b78958cbf0d310f6fc266532126944a507c2b048defb1a6070900d47021678b1bef15e04b9e2401fd18ff083ea499be9eff7c98c5e5f8bb3b11f2b9b2b92a15fcc7e904ac56657eec6fda03857e0a6e607245fc1367cd656eec5fd88f864a0372eb06810bd96a478337b85c50037317b31bbbe63deef98f8290ed3ac6b83033a7a418cef2c6861731b56667d4db84429a3738c3bb3d8cdf5fca5fc160e441cd827ac35ad3f89f3552a55afa8aaba545ec5ab96cb45066e5a6a1ce652a44996924ab284a494fc96b4e34cf05aac329a516a6827177661ad19523397663f33c4d1ccc818e306c60c46c333f692250571e969999428a9d247ca732cd04474355bb958174ab8406d889b0a98ca159555c6caab40cb1c5e4a096b4def5515c812ebf746aac36164274ea6c28e7ece6f6f96f56dba318a376a0526b817b2d85de462aff45fd4aeb79870c73803a679ad5bc8efeeecb3cdd2f1a77904e113ca9059c4d086322501a6a41290072dd92cad34f46e562698dd200401f1eb0bfcac15e3c652da1fea5dd905de3024019c691c4e6c1b1db834dddb59f225dc22c53b79e0e62995c45390e4c83ea150d772bdf3a5ac19de3f52784a1569719c933c3eff1f0a4d79d0ff5907d8ba9ad7068c6f2c7096e20dfae62b53e2437aeb4237373373636481fbfb74d6e65edf05ca1445d2167b7fa60e63820092d81c086a8b295708235a02d2d19d398cd71fb6ae21ebbe9bb5d91bd913107e0b281b4f4ffafd65c23e778e35a37b40e70586a8345d207256e731a73a88d54868078cb71ce8099397bbb11595ff37e8aacfbdfd92f7fd75900f09ee341300ad95611907e4884f93ad3a86f9ad6924b8e5f6fd9536ce5f219e939624b42802050fba63f31853a47fe85543fd558615ef466021c7cdd6b95af27c03bc9106546e2a8a3e2c5076a08f45b6eac4984fa0b07408b0fc150ae11f3f69db661771d781b3df1fd9c078464cd2de17434fa08807f689c627a28e39806bdb371f7f097f5fbc27fc1cf0765d76c6a4051afbfd358b2584809f15eeff17d06ec904cf53a3bc4d45934e513f617cf82740356196c6c92dcd59a5fe2deb40b6bfa0b955720af6288f6c2ed2dbd1a4cc20395314ee3aa4492d3c44fdfc67a57755be4c0829cce0ca02cf261c2c7dcf5f05459544d44ce6cdd48f6e88dde7db338926d857cffd39fac22ccb7939cf65313cb9156660ca60b63516950351bed645751062ce7a794819d1e0698cf716c6653093c3c18fa5905b45a48437d502159ef262a564c36fb3a6ac7d698ad72a70c27429bc920fcaec3cd10715d724719b314fb2a25064ef9649117e302e5f32efe70ffbd9a4f78f09a8e0519bbcf6a441c8375054ad6d543663ac2cec7a0f5487ce0218fc3ff0d0946fab062d82b1adb15505283423babb167be5bbeace18e30c864a7dc6d03046d6d7af45903bf24dc2cb629e85e43056cd57907c5a1feb6a945d32666721e0a0300b8daf5f956c49d0496bf249593a8686a2f2e8b415c2444ef61f02b508c2d3b1e82161ddded72e94b797dc647ff237e95b7d422984021c72819365ce6a15a96b2afcb4051bb2b7556545c4724d3f81d5c2ff0224b680088aa704a8b88f44d78cc35b05fdb89efe67a2c588ecffd5e13130531bf9e36589089d7f966da16f9effe141ef1e6c05c205d71b4f16887277a1c7bdfddf0c27c06862b587d1625b966246c724a3c7cb33a3c5d53fa32f1e3827b904ea26c4a304c6c2cf0af72c5e212f8e1ebfa5451ea09cf096f89a467be57480b343d830b3edeebca9c2330e22950693f32f9afa21159f988bff7449aa86c555e4faa4321e891f9d380b05e0616992d8f076071c9fb5b31ae87915538da77ed124e2c101eb3dd26e6c7b77fc80946f47268a4c5a892f76aacccd347c9f3630d2e9a6a76b1ef82ca0f72b9e8d5bb1924a5590af366fe232ff8af86e6b209e5fc071fccfdb4094c752cbe01b38d7b224d2720991ff3897f544a4c1105152d4fb1bbaeb4d8623ded9c64815cbd4a2e7145cc06a3398423c9f8b2ca5d1c42de7d85bf029b9b96fb9e405ad8c77e47b4cd1dedf63a15918eb98152b06e70c8f5f26c73d0a44f739ea48a8165f470c82e80cedc243a6de41bc7ffb743417d44b606137e36088d76ed46aa64d6f39e2cad683f794f30f44509d9b1d2252e298ec0bca1df22e1c8d61bf6e37faea73d0c9a0ed2fef842ea0f337e8c998a35fda35ab8326d8ba8577c74a2e26ef83e6b9e7f842668d0756469e3be2b7cbadf3c540d792e0baf1bea2a0fe4e9fdcb37e3bafad10947f903ec29b85aa872001a4ddcdb52ddcd942aec61af8f417a83adee3eb5f2cb845d7f7e6decc3cc9f56f5b83d578fd932f5f247efd93f6704e8db570e21aed1c74f7fefa55978818b0ac506169036667b7ed7e3c7ba37a02428d60dc55a01bc61e578f5dedc515e7dcd83f7bc3c7fb95daa53c935a70622d249e74ef81c889e3feeb9c67c1746dbb9e6eb01c808b1528bac9dc5aa724036ff87999714b9b6a1b01a15c7e543b8355ea294d1f04e2e6302457137e13b3cf6aed15344c3e03154e580910ebc1893a3937852b0aef1bf35edfe06549d500cc016bde6bfcf7419a9aeaf205f6da5736eda7138a474c010e727b16e2a21342c6e8e0bc62a1b5904236d3e38d6a9ca22e931e613fd89029ba4b0a5664eb557ce934dc887aa3650fcc90bb79989493fa89c338f47c0d7ef34adc64306318f33d8f46b13258db2c945848fd00c6b2c1dbdbdaefe72638f2ac9f29780bcfbaab85d71ddce2bb669a9a9779577d5795fddca00d8a315fa904d9aaef7e6da2de94744516af93eac94c92282a043a57ecbb43e5e87b35da6b3eed64fbb81af0659f1af37ee64d5e7d3d2845161b574143e915ae26ec557488817095965f70a66d85cf5552b0ffd587c647189d57654d783fd0b4482998027bf8ad1a6294f4ae6bc1c4b8f733d0f7f1503394fdfd0aa87f70628eca014b18027562082c7d47aa4f90872e350f8296697f0111375bdc7b2c739d824fb3a32a5340f90ff4f8cc5a3193964c6f5c22c5588f81b00e46442ef82716b8044d0bd0e03eac7eceea3d79bef07c75f57b9d78bc46c11edc009016c4a7fa0567cf8fbabfeea220a2f40a0cdc6decfc34466ad971fd8df53d96d62d14ef4a670b75948d882297ec174f40a31e4064a90571af32b8d0fb6007f6b5fedf41824997ed0035362ee51025dff153a90b5a7e51b69849197ccca89ff3954978007f0c2ef431a99f47b2c627a4210772cec2f0594d2ba0917bb10b1aa14552dbd2a86e8a4080237f8cc1c908fabe94025c5b3a370d2bdce0c89ec0f806f599028002657b6b8f688b2ed82d3ee4f7a84a5c6dc28238b65f5e4f82d3b9716445efe9301b68a9ba1f0ccc2243535bfb4a0f63e53b6f1689cad8871c19ff500b846b48a4a56e9f32c70983e4cdf49cb4291027a54694372e2f419c37e4c90dec52402f0c3e47448197d1c544cbee4241ed2e4ad27d6e28d1d94dc439e2f3889e0534dbc112562532e9ed3725d2ea18d9e75716c2ed01ee5befe19afd8fff2690b6c0335d568d3befc1af94ff6fac4f6e6e6aa3dcc5fdea9cc9fe5f64c551b4d547a1d6074d278747c4174e054cd75e576cfaa711432b4d2033bb5ba0138c8a200abbb0c572f9e1918f496db8b06f3bb331be686f27eda58c8610851af2312579daadc2d3daefd13bc22f56cf7c6a71dbff9dd67e4168b915ea4b3e26027ca31d40887a9510154adcd0a9b1dcbfe7377cf24e6596be936af3265dded86196d1b095bf73ea815d29d1412c6a869e03d83c5cc0cc2972f72ee032d38063412dfd3c9e92b76e64963c8be12ed88439e78b34be932317287f421cfbd4e7e3afe65d3e0c5d430c07a63e2e26f08ce3e0a2d66d7cb28d6d055a22e319b5c408a9fe66e17739b8e1a0093e234c6c6509d8d810c99bb39e88e1fc81439d6966505afc502ac255086ea5e488399d44a412b52249423349a7f3a667f0532ff1dbea48665cebf1008b194a5e4ef746aabac42841f6dba4efa2db0ca1acd7ba78e0ee5a5f50ca01176201421a45c816c6c1aebaed0236f0a003660ae94b5d2e5dec8dc63a30a5ee954a264f101c8dc9431789068c7b38126a091260c3f257e9bd25285a653f07777412eabc64208695554a8a7a516534e48f7b39201c9045b22a0cc3e7b72d81f8e122a3078d45376f08b8508a9b283c75915e63393dcd3f850605e8245e6b48d5b9ad994ae9588299246b997dcb60925b252c2a6a8461f6f2177e3037f1aca600ad0f2cbc7d306222ee991293784ee6da9d0a4f8594aca3668d3c5a0da375f4647bfd3fafc7b25e595b11c56fa388ad40814c8a41ad6d879c81d64dbc631187d32815e84ac8468cff3c44d64e0db4614e109c9710922c5184d8ab0a23536a408f249887d14f28bb708c138ea4d7b30fc508a41a23010880da943a26b5a6e6e8d674a7c0e091a8a6c701f4aa3ecc9aed841c38bf17525657a2a229fbd88aebdacdec56e42b0a96fd3872459e29533aa0e19bb8feb4c35206e2c12fa39ea0ca022ceaeecf85324e5be4acccb7b1c30da5fa6938a47b60f59a60571dae075d909e53c1f17a09584f00e55853481c0b4f2a738cced3fc86d5ec0bbe0ebe771ceb28bf3d7352028a4f1a47066b1633ca69afea92562a68da5ff038045b01eabc051f931130c48d445b19510cbb5200aa57fd985949f9a8132db724cfed7d5cc43b094e4d8cae5d06acd2881718bcbc6b890fe523ce21fd9768b5e809e2c4d029fc71b243c4c3108435f2aa509920a3829b26cf9547eb337036e6eaeea604654be54453e9cdd247f497b6a3e2b4868596686888d8b7853a8a8134d99c7b6e2396e5a62429ac61d391f2ab6d79ea507dff8be9c2323989841191ba4f7468c773cec537c5b7b6979bcb268361f2b3a1f1887b15c9caa4c9e22f379f5f97b343652a3b62b37a6e810a1c3ff9bcdcb9aa956731af482e52dc2dead5f0a636e7d29eefd99e0653d9ed2b2303ae15595ede36bcde03c930bb15389decb5e321bfc830b74bb6ef52d5e3a4b9a1ac6cc712f4587175a5c78ea343f6d6ce12a26b476c48dcb2c039cbc9cb000fb9a40516f7bb300bc67ad6e1d98d582e27110312ebdf80c1925cff24f00284f35ba7187734b7d42f9efb1b5439532834aab7f818ea3143e080d61fe8b0b0dcbeab642f536b4bc1932cd5f7cdbde2a47542d17e87c573338cfaf603be0b9c44d0320a6e40bd3f59f1cbe8c60f31f45517aad15e953608ac7587271c679073cf49080dca38924ac2148d3fb5057f2c35a01edebcd73464873746ed8e91ae5af495b5dea23b5169e997d4a2531bd97179103d649c4151d3735c41896b9aa7f2f56c3c632a57fe573ef85d37efea99cb8959accaff1679bebe4f0c071d0e7a8769b7227fbeb31f3c0a80e6130f5e30940ecbe5fc4f7eeaf598e92ad0318fb46f566ab976fc47350ebb173ed74acd6bed00bd5dd3904a9b72b0c427c8e1843cd842905f88b3c7fa5aa4bfafe648622620bd52a416fcf34c930f297c7fa9f1f477066e7d6e4304249e8cfeef6e34afdcc3f0147776e5373a6cec4cee8159ceade5db8d9d91397e936cd8eec3005384c4b3a9a207b20024a5b09b8f058052ed3c4fc6dda28b7d936a3de56bfe3725993abc40c506200b70cba375dacbc4c4fbc9e35b3473ea3d7fde31353da0339af0393de0ed7a3e1daae07359373c3f601064cf2cb3cf4490ed3484801caede2b870325c91f254b94371dbe8c9e461d636d0303275f3b6af94c94fa9cc8ebb7b32735c08b37af8243fa91da48f0b05fffb5c0bcdb498ea04d675697a63b2ff131675936a4521144a8b05111af749301f3b19e0e70de402bd13b5f332afa659910dd1c9464747c118f5d96610eb301ce1f6677d636d3d1842c211bb02007808a71f329671f3944c74dc1c459205cb6a79aabaaf50555fcbeceaef252855259230d782123fd72f4402795ee22c6d960e4c706179d8dbff7912dfd331cfb07d0158afa2a9a144048faee63e24270e74076cc77dc713ed78e8b4fd248072b8143bb4f4eb3ea3b1bcfe8b143dd0ddc6ba77b50150656a8cc133762cce222216d67dfff8ecf53d791e85d6b40e558f4508e928a4e307a2604fb4ff2c009d0bc4147ca5d9420e0e0e8269f7b94e3254910e8d854d643037078490fe6b636e331ef16dce35e85254a7b898e191b0ec4f521e13028b663d5bc4a8ebd22ff7769f4709dd8eb9498a9a9d41a2332a7f1edfa761cbf5a26a778e5f497c1100ecc47c477d0c3fdde803a10ff120cc9ba4b58127773d7c971eadd4e272bf3611846a39d5a518f9d3197373c75eda4124b4cef4299f6e052b0492e8084c5440c3ce799941cb6263187dbe93239c9693c92cc9e602eeaf59888e3a1e618ee3bdb5d2906d9c729911647470b161aa3f695d0f56fff8c96414106c08fe759577c61285047cc75a7b2425b01ded15ccb6c8c40b188df2acd76d4bb173b2a30c3e64ffb699cf05a2d81bfc2f2fbc8e5ee74b2d3ce66c3f817071665ba591bc3971173201c52011e98a52fe68d5926a634dc71f396230cc6029b93d589f0231763e50900ee71e7dc131367711a8370f539bd6546710b274e3095124e82d59df1f0063652dc7b4cb90c7e04fd7475c7023639b481151ccd9290eea238bcb8d1d4e4be593c49f20a61f4e352c968fb7968ccf3876cccaca5a00b8ab8636723d8435d67dc3b11a6b3f0cf5acbf4c9c2d0a33763ee08c98320ab481095e3575286bf142faa0972c0ba50011f0da8855a3885995d3c614563b46950104ab47435247cbe4e544d4b9b603004c215698c50b62fc6bdad70d8949831232f2cf382e665482c9b3dda8680a633422361bb547a02f042228d7ffa0b275829c04aa10568512717a6a0c8d468b39ae657bf164fc60f0615cd2c81b3bada79b575b55f343d22b8080eec25c3a50d39f269f4444efabfbf3804d4ebc6f851472e5bba02ebaa4bb39b63094143201cb8ceccb1522e220d4c44e06f7105b19eb456332d3c248ec5b594d5f0d5cb36e74208003329d73e508563c97a1fdbe4744edd43479b10d32708db2ee131121bd42dbb467d4832298b14240dfbe72d32d73a991f09d5ac4b778daa85b0578876a9295c1e6ff0f83ab0bdba03e85e4d569ca73da56ce0c5bf9a78db614a934703959e5e08e070eb3dd3c01e6033244639416735bac5412ed02823c20d7421d2cd1f9bc8a750b1c9366aa6d6548483f04ea4fc83253f4ad2365ec3101309f13580a2e850a2f3fd9749a7e351b2269162d6fd6d9e257181cbc53ab1af2de15c3e9745ad3421427c3923f94cc5798fe3b2c4a417d61a3a1b965999f9cd8cab8b058cad85399145a5e6a762acb77c1358870904ffb601e821ab23c0baf62b333f27d4e86a70c3085e561ab94fa18414986108d600a781e24d657ad6fd0d47d52840cb1a5ce8c77252cc1be27347574540546adf28c84bfd505f491618106151df45d340b5d10adad6f027ac56e4333feb522fd57b03f95f28123b033e5bb525a2cb6e9b4241574fd4f7bbdf8bddf141b087d763ec3107c19083ecddec882e0fb3a7a9dca552f7a77d3464dd5e52dce4291c8791c0cd60653c86daa77b1c05efe603ac78f28ddf473b59714b4811551e1553d26427c27def8c4ce88d95db5a68d420e5379994e57e93dfe2e63779f609256991d0e537598d32a83d5a2cf6c29790a865b0cb19629153e8bcc1b548c95947d6a0a32b10cfffd4da30b96e286e90c2b5af61b96ab2113c595c81d96015070f9b4aa0a434dcf01a5c861bf796a21d2d124e650d4f4c8203034193e932883cd438d5668e13e3da4638e388e1f9b4960bdb244886e2b416cec5a41b7ec72276497589ab19a899f56a89448b8ae27c8312e3fd0de8eab6a746608287e620a16c2a80bb69879e4a8d8d02666ad89558232e8b93f0f068a37b7c49b04a8f1cdea58f8719cedb65a68310f5dec7e9d76added234c7da8577d15364f76f9fa84c4d64ec986094d133824002adadb321908f815754f251502e828c92cb5953ea540885065720f3e3d559d178d8b34eddd35824eee5e814a83502716a740fe5c46aa18d1aea64f15443cfae6f12189fb968608a21e928b7a1b11167febe93deb4213bc07b90e38c1c461cc1492acaea00d713ba9d4a52a7a4979319bb684309b1e4d81f2b8b8f3884b5f019992a28236e6fb432b9d63fab892c0b4e871e9552ccc989753c48e35514191ff6c0379d7a97e8c01214dbf9eeff38e33f5fe831a74705becf3af950ad6362673e71f82d1e509f993d5fb99b3692a6758e3643e9dd264b30ad043cf321f4f41ce63b8d48c4ef7db9ac2de658807bd7d9a926179a61757b6faf44033c6b9ada2b3e16cfec5ee4726f05a02fd1049a240bbdc3b55d95d52ad7fb09d15ab6550923dcbaf58208f63969e9485ae7a2b45e786ef0a37b75dcb28e897692e31f3da81f8a00a6c614a4fe49e1a6917e17f888a8de69a656fe079364c85a2e05808cf64feefe4c1030aa7d1ecb9016174b6f76f5847784ae8fdb13a18968e37ef11c87bfa4e789ceafd906a68a0c45b7114691703a658a24043406945fe442f36e1f5f95ef9c658a65aad147a012c5bca5c78bdf4d6bea6cb0828a39a11bb03cb902017c95960c34504232661858e60870e29cfba915fafa20355bed3430b4cf729e36c6800ec4ad3fa4d618e1083bd9791bbf689330f6f3f519488930b7042df41bd524f208b735b22178794323311bfb1d35ec6b65d89921d715607e7c82a5ff461ce93722c157325633126722c5d63bd40bf8b1ca2dfb812256385b58955cbb1387f9c4e0c7e8277e5b708955b3eba5690bde9befffcffb2b4a14dc875b5626703e8a618c449a75b9c6c00b7fb650740a1a96729656d37696e270547c2d54a3fc9ceecb30b8ed46bba1150c69d3202b12d82269ac8ed1b3ec9ccaab8a16a17887e03cf2637a6bf93b8be23c3288a9e07994d1ecd5531a38b08f04e6c6d80281bbdb62c266938a27be56ba87004a6bce8df39c894771c7719f84b447938467180b15a87992d5b8aab0de3baa2a34d1cfd913b552a121556256b5a90cd8a08ada6d250ed6155176b260ba4796c34968894a33bb85da2d335f1f603cea44621fad4b866e1bf766610740f73f27e3a1148a5bd20bd505ea29b3a2affe51d185a8866420d864fbfa83742093ccb5d12064b6119dd46fae275f0b32ae4bc0e4415b19ff73dea6afa905d8a7bbc8d3a1059042b3c157425bd2c7a4d1f6a605519144d4786e63dcd2e425abc130faa69739fa85cf8f00a3f2dbba6f4b1326c84b6aa9e596021c89c4a2972fff822e13d0d1e40016db02313f41f93c7870fc48ed174e81045c994bc9c51db8491333c1c16f3d3abae31b8dc731b0ccc01f3364127e274b57e27731895fa526aef03479e461958375610e30c1d26104ac316dfadfbee10e685a2972843cd0d9dfeaaa1e5f1115de731e7b85edfc42ce8aeb0c183e94feda0066d7816a8d33e2cb083ed82d25cec07795a646d665c7aac102605e8929154f641484e10ec36771dfc2f7b7575f7632f398e0b37f93c49350ee5c32dafdd8d97d98826025db9c4d9fff3b7acdeb94f1f49f07663b436cb060beb7d63f762f012f4f06d55c9a2810769843f7a8b190ca9fceeafe14be19ab8ceac4712dc29877000326cf038c0f4e86fd9938a1f202540332fa8b8ffaddae80531af027c72cadaa804eb6ae06a2f9575ffa9084d4653798d2041cdaad3a962c1ccf2d7e46aaf0e9ff1cb2d57e8ff36252a1d8e85df0a650f2f036d24c436194e5b363c0eb668227a343f516d7f9057fb89d2d672b43cfdeff92533b8e5698c004680790f0ea191cfbd39408d013f273b90f996fa567b591f199bf201ed0e7eecfc01640fd93804819775642e4231d00c214da78a957bb113b779ffe330a3a1372201e7ded29be27190d9d6e3baa8eae62917c8bec33dc84f4700ccb38f2f827ba307b8ad124e5c1d4d659163c293ae1149c392e51fe1e8759beadda7d689dc49f3758d7d5917ffa35f34597d918ace37e356cab7df2529b4fe45952db859cdece54a44178e90aa48a81e743caa4eb7906a6a53d400229090a7c88a8cd6926d4c6b1ce2015f19a946b670174eece3fc99e193dccb55d2465a6e064127d54b0005727617c8ab0a2d5324ca31da5cc1caa6585ee59626be02aad638b8f8969093f1ab87c36a5d5cd64f3b8ae8a0d624bd490913e2b5251a72741168a2889722d17923c0229bb7cb1c21b51eefdb72950072cb6dca14e3724dc17780e187f1a1b9b6753e8892aed45d901f53d482ba2a89fdc1db76344c9852a5b5d18c7ea777f2eb5e2debfa1a0bb83596aa9127b081839382c95f767d88a227c4157fa34a1105aba905dfe842fd3fb4d1d4ac221baaf1860893d702bf196c43469c74720ddffc9d96818f5a9ed81e40a1405cd36e39383cfc0f939aeb33251b3884fbfb9f4b73a7b9e52a5a531ec68258c971d04d2b773caadbf01acfbb5e653fceaa53331687e609c3ecadde88418ffdc546051606e695df8d8d6d8da7fdc5dde678a2335afee19a7570c5be8a6d3316bf90e9dfe260677d6fda3c4497fc7662b9ac119d62bbffaf1b965d61b13e6edb64e3d2dd6cb8687086a7d7017f382219b24a56f06a92b65194adf9296e734be2f971598059677612c65db20b62bc4cb17931c2984721c31a97a5b8a5109428db4220a9b73cfb675a901a6e47ec381094fd966d093d691cbf39819ac9ac3d64471b254dce22a2c64a900402577f31f6ac411a1a3ea3cf7ba72fa09e0481822328d890c9fda1a616e80b26f89726f2c24075a5e68ceb473264d46a31da5205ccdd951adf105c6505d25472fb89b264a8246e6784d890720834366678842b6cbf208dc7cb9c3cd9b72078f706f644e84f2af35b494b01a9ea2764661bd8c8d51540197ead8050b995bc454d455d31cbf742c7042e1b46330e9c7fcd9f4acb4df4d0d2675043d4926dabdc94e6bed7adb2b7ee32cc850dd7a29d4761167e48e6ecdc696c31b9e28156e691476abd59e78c0a31c9893ed4258a48cffd250f20f4c55a2939ff5604c5ba4f6f247c09f5f5ddc631eff21afcfa30d0b0bda85d837c4d54e6462a0fc617241a822afbb87086b4094f3b5b3d68788d83870cbfdf85ebb761e1f96c1a67b8ddfe7545ffb86fd2a29b76aa7475956a56b78a25789c1b8edc74cb63da844a79c8ada94ff5c087153ac2e295426b9b86056ba4a6e1b7c363e289a6b1a428244ade8dccf769f048ff04c04ea33d8e096137898fffe52521f06e1a2386585b053a12d0d129ac0ee5150d4ac20ce1b1ffe52ea1c84ac4f73feed5ccfff13f40a89d1bd8e61a5be011bf83d3d0404e63da600870b3b2973baa439667ccffe576d4f7469eff8bce7541ecc8b41affef5056e5bade48ab2b116fd4c807f351d56b72cfc99be3eff48473444c8dc056ff7fd3cb50005019f95fd41c8d33e8e33d1500db8b5fd2e7f96a9582a70c55693cdfdbe6b2e72af83b5692e58aa0c03cbc84e479d1743316f8b4b7f55e299d051bc793e4fe5c5fcba041010df7b69017aad038c334660447873e7f0bdc9ae03e1e631d3888d30b1eb60020c58387df58d1e2466a4584b0d9bb03701a678cb15880df268592c627c8e776fac3cd5baa9357c2cc4b376022dd6ded2e8edcc3a4f70eb79cc25de7300b3f0274d44427c0163bbb859f124b5808361a7b09834b7fbf65ec20099a60a5e9b8197a687062a3126515ead8d7a00b8f54e8ac9af06089bc2cba4f1de93739b523729516a88f1545f909540024fb6bd923d9516cf3e70012adb65bdb17610e60a490a6091d93dab1d49bdbc47f627368de207d20dae80e8f824a10631fe203a24b89c6188046907af6201eb3d53717bd736a7fccf2bcdd1af19de4e478c53beb3411f2a3e4a877d036bb8faa4fd651e2aaeb96f26314ee98426cd4451de121f680170d0b7f1806b6b10526768b2e69f3e281db5d65b00c4fbe289d94ecd54ad5155849ad28dbcb89c0efbe23823c0643bffd8169e8543fade5183862378eecb544fd5f746edc2621d4cf68891de0be3b88b11346ecf91bf713d32679b301423c28a58f509ac21ebb202b90f5da2dda7074bf6f2e02de057bb7bdd23349cfcdfab4daacc94993d27fcd1df9c24bca29f6a580488831dda5bf4cf99507e509a7e8b72c0787e21d2c9914c563853a798c8b86c52e015b7ed864cd4eb9af8b51cfe396756cda812a64c3ad11c3aaa4a33cdeb942181806e204ce6ba62cf2d3b6930277c3c28c6e26cd34859e8062f9410d3854d71931881ba6f1bc31d7a31dcedd38324a8341ed8e7af42376e4a346a6ef6ff59d7a6c9ec65eae05d933a38e4b5d18bf1466bcc1e3ecf1d0e33f5295864590acb026ea1b059cca68c01083b95bae6caa589a7a567c65adbf45ffd094140242b22d37862eed5894b9405221a5451431f5ba8c9c67ade37c0c8da1c2046e1b8d509830fb205141976322336400b31fa0180a80bb0880d5b2d17fb5a694b0eb1b1865631a526264d675902cf488920dcd24f7096016b9c9d1cd7fea5be6fa782d13f07e10a95aa660cf6c100980875ac0857c9930b5e797b54796c10d95541c00e94e5c05edb512884f0d91750f3013c6518ee0a3390cd7e57fe7f9033b2c32b916b61d93b3129732689fed30b92a69f1fc921b3fb9c3dcef6fabba377a5581b8d0d82ef93ec1d642e7260867c458a1c5cc1654b1da94c9b8e1fd198814a0a3c8360f947427c2fc76334de5415fd48b35bc1b1e4a41d1456080452c2b48dc0cd99798b19a5e9af49abde04126d50369cde50103154910060f02e4b02725110f8185d488b666dc9fed5face5d9b992736582d0a8927f5c68fd6244ef3a8c25430344127f5c512040d197b63789214ddc4b9132cd669639aed008bec24d319a06a8f834915709f4577bedef4f38475a3c89021d8f0347c294e778a093e5d572c1d97b64ce54ad7a865ce1c8d12fdcd3d5d699458d8e743b3a232be0050ca8f7c954688055db725ce26412e53a3e4ca85d231a31e167a679113aa7d1a9674342374013e415d8e33cc56d5d54e6309b9286eb3fec889b5eb390368243af946cba2662f9098c716c367242a3f06285c5126e70366af7477aa3425656a8b4907f81e98f0ba8e6a451996d97cc478e7e5d30a0a608083024746f099c134a31b0142cd74148990e55dbeea9c6ba0b5659904379e552b567e8ad055ae54080835141431335734df3cc37027c831bbc794609403ac19c5f77fdd033d31203c4fb864503ea36e9c395087a0430c00e474fb70051dcf926332e072b94229d912a1f38954f7be05ab1c7b2c9f8619f9608c9b08d9dbd1cf12508d13313a549852424faa311c9cbf92ad0311f9812a503c48727e85d42d13ec4ba27ea9b06cc4b98842b9430a40dddb10240172e0c7b2554a6cad14ab43b916a131aa08b769cc1ec0facbe7abf9b50697c83965923aedcaf501a8009fb48d21fd17a6b3063aca1b3f78fd4053d1b73c90d37b7308a1a940d4d0477b789958edb3be4b2b85a32524d7886d1a48322c3be271e98e244fb5a93bf44fea6ccbd2acc6d221eccca796839e243e070703e7b2ed42f2b07e4ded341ab8111faf3074df0d1fb02d4a665358fcb1c253641d8a94f04d4a1ad285ac0b9390ef7a7f90a2d3e485021e0799f37db6910312b0335b960cd99d34bcbc88381a6b40308906b69d105e2bb1f2325292a3a2d1449adcd1228d1d3e5e8f0cd2b5814109d88799f34f0ea2ab0e689c2b5b0ff67c1b1cfaa99e7426a7a00063a54fd63690327256ebcb2c55f4e213c40e0fc7ae8739be9baec89979d93e3cb7cfc8a5c7748746f64c021c2443bf02e1b22480429806fb4399c72ebe7d1ab72a43b25f73169462e4bac3cc6b3692408c05afbaa67a7b0be5b11447f9748cb0256e6e80d5ca9fe709c048892c46e0c7b6a1bd6a87149083bb890aa19c4bcf0004d2877ab955eab6ca6c67956b1b347f0ab3e78520f60f0b2f3e9d5ae600a3f3a37d453d091065c83c54db7aa8be175ad6ec6ca2b10e535988c3580196957af1f3e907f2a70c23c08f059e91f29f37a7e370c4bdb849fcc178bf5ca6e6fc34d515e7f3802b6de15c78efb4a2d747932bb969ef927464b2698d2dcb1734530565e8541cf71817f86d8dbaa9387eef01e99f929bb97570017168ee44fb084cab88b90b09417f8d712480b39eb49d8dee281715ca1b5ec15c7868dbe6e324ce888d64200355ded4c243e5be898e98c8b3260b77dcdc4f45568f06594e8d5cb20ff42b94140367a3da552660ceebb4ba71014f045383653f73493898fd20a6f58cc8f54097ef0191e2922d7c4ce606034953d356d1d32f0b7282fc39f423df780f96bcac9151c9e3ae8b9653f824734c07d0143c7ae70f789e947778a06c5452aeea40e3a755554f0675540a33a18f85fd4efafe2c48380d23985378c3c0ea753f79068c8a8f40f561486ec72e91aa3004580d0a9ae7415e06b2a5a60ba5ddba0017606dbeb757c5f9dd11f26ec82db782d3bb31c1ebc91429c67a96db6a91e3a458b8e3bb1ce6b92d01f07af25834867096a9c8c709da306859b895872b7eb72944b220a2fc77219609774a668a884d71559f243941a6e7e3ed7cb71688920fa4f0367c2a27e7e38e08c89225e64a2db5d0537db6a36617602942891519280824462f29831cba18c54a9d7590b897ce897df6458fa41d523e677e5f3385e4471023647d91c9c1a46faa1dff02ee4f68acaa5e85228aa08c0b74b0d3b84657d74243d2556e003f7fa6f358d0bcf19532d7e1015a80fa6d10ebb63a270cc979247064b8dcec55c52d4b037ddfe70629c9b44e0268a18467c0c8cb5982540ff03f27a4509e51ad240dff995b31045417eb5531d7aa11618bb967182d5ce787d8f9e0a842ecf41882482fdc0f86a7ef3466cdf1c5a87202ede23d76b9923b67cc85c40f2ab7e9730d35c6efc037dfa4e5c97e122ca8fa6e096f2b648019a0189754a3a3c125abe3c4c625506c9bc0adbdd0f3f19ab169634f28b81e98fae22586f6eb61e372acc08eebcf77bb004c0d061a66d5f80b4e9ea056d7a47b034b2acfe3f7d47177ed8e79cfaf269244648978845ce3b7d28ef83feb617684c667713118e8bf62dc907578deb88746f3dc553ac13b714ed3970aa9fbfeea1dd9e7d6e91ae914a8145d6f0d1a6aa5d1c463aa0eb84aa678f4257df75bf0611e580cb3c414e2b984be9d8399b413d0da4cbe9ca83a234c32a872f21b5306d6f960d1640dd89ce61ae8742163c60177a9bf19c49f2e5d46c12804d1eb2e5fc273f2043be92d1afb187a7be5548831f0800dbb3aa57fb8c89b51ebb90ab20fe140d6bedc8f2cb12679e8556678c4add558d782271b6735fd75f71efb6a6e139072d82adc731b5f9d25e7a150d19a6c51f673b9cc738446722079cab79628eab03d21d1249de8aabad039361f52f540eef41baffbdde9fcd337afb2a3a0cfe9c01fbbb5bdc4f230127dd051afcfdd78fd795010e6aeb5a37866db096652213001a4794290d2d5c0843bbe1899450b6cd27edd79008a0f6050afa851f64a87ebe0d3c48e4136c88d1508876088ee7f7560477c0969120fcafb9aad32b0d1e94f50437c6d0080111358c10d2645061c5c921295bfc4f286ce0aac441dedad24946db57daebf38bc8da3315792effefd3fbe0b7e2591f01bd4d8e506bcd9ab3766c49d1aa38cdfeb4e2deee4f9473f57b59dba75dfd74545ec50d3839b74713e878a271cd3ca585046cd63cf6d8d8acb36ace6b265c8bf5b8fd35ef2d2e8ed1cb76433179be6761693b77502b752377037cea68c8cdfe6511c49a805116da0d9649cf88ddc98c338478054a151718abac0ab08e0d548fc580a103ef6109246c5b7e5daec6d7f80dcd06acc6e9367f260eb1bc088b9195e15085bf775b4ca4f0889866b950feecdb5e02e444c315c3b965404a31143fa4651ca9de253abc69c9d3a996a1ae27a6c784c670933e3c1c3accf9cbca8e246bf767b5c8ffbd2eafa012cfd0237465e697c6833f6c62d21de0c7638233fa6adcf06e801b0fe285194f88f2b3e95f944a5793ca877f47aa03a7ff3018dfa11967a94707e2691fdc35c690700fcde5e66a30c5b05024f7f1b99de4f327a4ad8e5ff78110bc39057b6e715d9b4ee765d0828671af25775ad58ff19e0aee89fc9a59f793c8e068632c40f77577a83899d2d2dfbad0f1031ac8d2e0b772bffe58c1e276623a381f88fae4a40c48f7516649ba87697f09eedb374d90b6b17dcbf20bb3bc0a8d145e325a690525734f75016ea037d65eef4d59b515ab99d3273f278c7547e34a41c419ddffa0a738563bdedacd54f920f2436fabcea457388b15da9815b644ff823a76ebb80a496091584aa985c284f254d4ad28b8fd2a40ee9f06fd865f433e26f752a495eeebf2bc9610322f659ce4b62672929a4e6291788a7dd62f6b2b529db7c4c8f01c0c0a95b869bf572848f238b35628336ce795b78280df42900161f914201b8db7a1f5c0e13f77c52e00a33319a5f886d27e1c903354d167c0451d536f49ccc6ed51ad03e5143f36607db9cf3b6baa718ae8cb69f21c674a5508835631ea29e7a164d97e801b006ffe80954c658e732993bf9d8bec2ab5554f63d4410c80ab9a8c087a67cc989ce9c5fb41072b7de832525105be4f5220ffb0078795788bb0378da2f1b5c7a697170ddf9fa24b7dc697a4a093c46f88c349f2a14fd06d8b33a8f48aa98c4e9e0898b4b26d921d367ef6fb369b82b5a0494bd391e052e94a47b703bd5182431befc53a1d6fb77cc5273d32f58bd00c4a1c2f39776507900e7a75c72af982c289e0930f35f95ec12c4d55e6c5942226bddb082b4aead644f7a62e4548387e76c53268201b28b683b902c1b92e51fb2b33d3736bd0e1bf70040367bbb0df0e07d272c06e245e8a9416448c7abb9931abec44d85a2bfd4738454f65865824382f9db543c495f157b47a03448aa8e646412b29ab4037363d05c31ea3db9d44578d0bc87f8a9dfcdd62d8a1110481321e7cd061055b373e7399dfc16005dfff7e5d84d27bb40636d50bf417f70b2281d29fd20df89f183cadc1aa2c00c3140cd80610b8495fc000c8ff578cc189ef594719bb2220e8877f5caccc0476ff6f72f476ff6a853209ead73ee81162df65f7cb2782f3645cf9d56d8ee99a301381581f7f269b6567100a9295a23bf41903e1004c7a70b9af93a6963c4a9dabbcee6f403325158461867c9b255dd2be922c11bcf181d481f8a6c0f099f022ccbe16d5b71b3322c5a781eda152a407746f51bf038b5939384e5e7b2b702694ee31d9777c856387d00d016656fea4c493947a8363e7873fa78a4a7e587a3c58d5698b688970fbe2b3c73ae9444f1175a3b05ef458cb87a91f589b9d1e2cc84426d52e35f4fc20712f2a9e8e52d73399d817f552b09ff9082d778dc1b3706633dde6f24ab3aaf7ff9dd0d29f11d41547eda6256d9d26d3dd4480052d659e192563c6cf0f6e6209424baf2725d44ad0364ece47aab2742c052658cfbb585169c6357e37b0ece6dafad5567bbd3e224607faf7d837023e1ed244a24d122e2c76c60eb62051b1a10c5a6b4939ac6e0e8741621f3be8ec96fce126f2a50b35d2e70f5f1a9c96e1210a32d3936efb89ce53ecd6a8a4755ed2173c65c5dd758b5d1357282a1419b4078e155b32889ff0730a6d624925cd8ed171208f5fff281c34994ea9f7a85dac26ce157ba2f0bc1f40d47a928e6fcd42c5a39efa3a34f9aa29d49ad87b621e5a07dd27fed7879b0b80ad9cc024467af2370a94fbaab257c18ce3fe2aee1fbde8556ddadc2f730f54d5d4542725cead12be41c16ae4f600697f89820f509691ccc25340833c9e49f65033eead83a9d29de23929f9df57ca29da173077ec62af28bef6c91b8750324003053649222705cd34ed5b5fdc1d7232172aba952f399cc09f9d2ea708177a84c25231cf5bf543c63bebd0bb733ac718a1869c0238de2b1e206cc58032a679853254e10bddadb4e2a1d45b2fba2ad9ef4e39e7a5d36e947c3df25512125da511db8acfcf8215819dadc8d2a45f06245c696e0fe58cd3b38f36e08884945f4febfed4478450996741de2f816263ac6ada4ff24c7d6becc7ff59e30d50535564b283d6df1431ec8b8bee87ca066bac5df97335ee78c779cb14e02282d8c0043fd3455223bd693c0e1a2b99b989381a78fe48b7fc39463a1793c230b0f845ba63838c99f1a525c0d0577d2991af146675520f72ec018c83f6257bea2cd70182810586aa602b140e3b7e73b2f0f267498d4a0a6a88e70e1fb081ced7bbfbce1644feca725a9f312229125e87d4e13aacd4a387171e801f617568702cc2e4788720a8341c8682e5f0a8eb80d414d9561dee096216143a39186e4bea3e4a93de7425b7c209b467b745f8ce2a031efd8bf5c8281cc31138668724631d56588141d51141749408aec5cd9a312d10b8b539fcffffffffffffff3fc5e8a5a44d54066edb16daad2cc40896383e7ef5177582f43d065035bb654a0158345534512dc20a481c132e528e07e8e76ca2a5f907e3cd55c8d0e1b76619f311b7366307ecfc3009f121067c0d6c3e71dd30d5d4f9926115dbb2a5111dcc62175d63456edd399c70573eb282eeedd017a68c1e757ecd3c721f323d5eceaf38bf0f11734184946fe3d40b6f53a2451605008a639a30c283b056b9004a12324af60ea8c2828f0b62f7021ee5308f9bb2e443640f4c3b3330fd9bfe19db43a74a5e20029169464eb0af050890f907d4a7d715a49339cad093ef4009edcbf0227d2917504c3c8b5277d2cb969f02a37cb5a297770b34e2e3e2483243e459723837071e910e2edea9549eb36063fa20b3471e63c4c87f2883c29cd066ed919841f349a831b94d1e1208490081478e48626681c3e4bf33a5390976f3a01c80c811dc00e54bc080269f2d6a5fc49236356c80e0ba3c587a3c280f9c55870259ed41ec5d99119a874c528eaa0e00d30ec4de9b1286701568d4b8165c9432000caffc4104274fc3839bdb9852fc581a18b91251004c48a6067c8f27a59c94290779881cadec6244a38781a722a8420c891c97e183b937e9403e9690fb4567aa7c413143990d8a99ff00d123075831e393bc3d7955c12a7d9ad393c9cacf8f43e883967f6578e54fd66ee5e5994d4eec92c5d55ba37c89975ace26e496c7f8a5c15c49cd78062b20e562c41c9871ea18902d879de903529d312ac47e7d8e779289eb450e3f7466351bf5c9f93650f84c099996382336127fa20dcc1f00e2f67c4844f92fad11470533f209bad6381abff5912429fd448b0d7ee24afa161cf4f23d8992a339a3e62d108892710d89e317a8f49948eee87a0ac40898c4b321d9d52b04405e6d1ff21f42427e91ad4adfaa8b90df15a24dae72a300504803bcff65e481801c3571bf1a57dc458661be47121797a0b17c1f145cdc91265f5ec7c8940f9256e0eb4c85caa54e997d18536cdf86067143a954380436a5eff9c3c7b46537e66f2a9e98b238b8f02e34b8e43ca7fe7c5caf0aa6282a3b1e086c4b108613e5abf2b619a4ce9949f483e901e008f36fa0ba7c144b46dceeac405e8ac1f131b218f84e1ece17a1a4e186b6f8f851284ee554784d1e8c26063ee691ac07a36ec973c927de26e68533d0f4c417edb5c942b8c2f32951e321a21c701640078f28058eaceea095d978289335f8d9792a3fd29808689d260f58ac722d374acf84510173ce5fa9df2545c5df7003621237dd3931d6909c5cd3e71b1c55fc062c297c4967e5779c0df335456df29807bb47e2a9562e7407c557151abeda85950392c3e39d80d0e41917233f6d54f10f2e9ef8984b5dbc911959c00512c8b289b61888c48029f791c20bba59d94c19784404af14c73c9d50b582927458f2bb2366cc507aaa1e0c8f00665142addf80c287e3ea52cb2109a0e5bd10c8f94ac414995e8ee94f6a032663a16bf312b908e535214ebf4bfa790a1a2c38ab382559122e022ec70f897ff027c8b93c5a630ed240c4749b520c082990f299986115a4b027ce77546d308b4228641a05480017419af56c98a039bd45c9511d5a61e6f264eb93ac00f149597d7c0fb13c7f25b7e4cde8fcccb3c00d5773aa965f9ab1e75d19b0e1997eed5f0549949f087274007a8ee4e151c6d305316645ab7e65382e71f29d2749de27b502d48c3a64344a80ded6129879e8518ea000251b1ec21b614f7744ed21a458f317942d3fe1aacbff58d1e47929426256c212c7c59098f5608229fd8686911b3400f24d7209cabbcaa2678b1bf48d6e8d7d912006fe169e3f5fd3e126a745c0e282fca49978d060f8336c00007b8c50cb647cf4827a2daa3c1f3620cc29355c27a6a64cb02dcaaa77c2e44d5fbba4bc2c3f4ce6fbe48033b144c3a98448e15a6ce9ca6b001cf10b5a8c4ec4438acf4364c60f3865c9f17c5a64daf112e01f48cd99ed2528bf0b870e2f65c7e333b561328798c10f28970bb3c01d27d9891e8131d31322cff3e12d98862584d9c95ccd98c32f0f9437226823c79a0f80c80e30850ae764c29c0e66552647d2204b0642c7c791c83d31e3ac397010898c7e668116afe142f24b5370f9a323377c171ee5ffd90866063f40780a5821329220704f6bc0a59c47501c6fc484e8819681b2804c3732063415669a111ad9090bebedb614c7f27e297a10ee63ac0a8a96ed88a0805b10d078038f9afc233a7a7ec0da833f3b64e0038c10621e6110e791ac493f0999312f018b0a5313250a0e6339933d95807314c12153009a81d751c3754a0ad2789cf891e9666c91d3f91bf62342c4ca06dc280a929d5ae5b0aa6009227214ebcfd8ed00367843e7039945f04e16741611ea43700c8a32af8397a06c22d48adf2285948fc994eb1fadf1993a68dc72523408e5187b632f61c30213cd16337fc0c99d19ecd0a837b44acab35ae3f44c24d130dd1aadcfab2dfd3d36be7c935d251ed01531ff24c7f15875dcaf4342c98cc1a9523ef20b04f0815ea0bc5f19834dde9878941c5780bf56fc710c08e04c3f7ecb8fc4e9875f2015ff8ab3e12701d6c177a0b23e4f860b57da8ae0932e71794eae66995d8029720f9628ab25ed7ca0614a72dea3009fc4449cbfc970cb17b1709f44a32547c161e1c11071bc154d79321d4c4f7c3829955924819a7f94f13156150a64041796c05a97d01c980a33a625365bae61972e274607d5c36990cb700464f90221ad3789c73e8d212a4e66cfd1532175c36c3487cde3a4a1622659a3bc9b5f00322e35260f4cc886bcdc6a0feb87d1858a48e5094cf41ecfd496bfa4e3436670448e0b53b537d6a5451093c95f004e0282273768658e8db273e54945aa620633bdfa11c1507918a204dfe1454526c257e7b6acb4fabdb70a9f414e29b35420a1cbd082cc0927d0fc0f0306594f96288e2e09954f9419f63a2cf430b9f0c1720198289909e868e4186c540099a812969bbc390285a9f19141f46233b636c3491662c52d6758d3e03460413209a989fb39b3bfaf13b5c97d7899cb3e6891f83e0dfec15a94de2d5228d365e3f24f9642bec6a13cdfc70e832c424e991f8ed5f133671cde0facb81c6c0a01cf55f6c1d50ccd7ca0130e1c585becc7a4c9c197819fcfd1240bd9090abf3e512d17637da3ce3cd29383b156cb3f661ebd0fc04d966cf884240f1fa40485ff30f97e96db989b9d0d33731d20e5684954fd14bdc63304d0e24557055ccb1b21d9d5044f4fcb8108534180101e600190dfb65c399a38265c3866ccbb09d4e9d10039f519860d80aedc6afcc785026ea953ca7734c900849164bcd79fa2dfc1e57ee9101b700c87466ee3400f33c9a1486feb109e2920428fa781aa568e6457e01f285a7e234f0cbed18ef3b83731dc29e0f02e83dabc8f1435260608781ec7041059eecd0537204298b9634b2e6f10e2cc39924c79e509e2432acb9f49cd9d600313ba1e4e9a3cc13c2283cc4a035801d938edfa25abe20043d9cae50d9a44f12121807f40c9e96d72017219a6d0cc0f66843fa5a356a6a496e105dd65700bab1e7852970233b644cb27e16af0a15c922349c5c57f3531f0010e1df210c907aee5551d8f9406463ea50984c90779f690f860c97bec067ca3005580446445c9aeb6ac223bf0494f8660892cd867a885273521c92360a5af3c04c7c4a260d653385428737020e73b1d507a5eb298136bf5c1018c3a730a3e7e98ae08c5f10a7c90b9019f121ee7c7cd74e40a7d141213e6f0129bd7e1c8969909041e73422962c10ca354642839240125edf1c903262cfa61b0b8bc9c15c835011bf6aa681d32eb7459e1e6aaff09a656b89b567d3e56af1c861359394bdf237f7186cdf7a103c90f298d98a17aad7a3e1890237adb5c2d932777cafbaf452ae7452bdc788e071c5e14064cffe24206f30800bb5ce44f30a0131bf326645672ae485adc120bbb20ac3723325bb00e40523e2c0f9b029b1d94093ed215480f22d7822fe423d68f6295c73fc520f1c996989fe190c4d4a3d6e369b599e4784c9c3c8d11183216614c7cc326351e5432ecdb18e0f1373cbd3f422c90271903f65a8831ca6dd6b864335f24af49563c92605a5c111f0dbf0a90aa311271a532890557808694e4c87186c50076e97bbd88a02ca61bb7e59a48e27b247ae20c180430612f81fe6bb4f94a2e7cfc0db3c8dbeac1e5d35084f10a8baab89752617c50caeb95044961b6d164e6bd821d31dfbfa333ea73e5551010f34b5c7c101882070fe9d516a020505fb2ac3664c6d662adb7f546d318165cba4c033dba00591d6179021468af8186aa6f4461d1239215c77f74d9f58c7011dd9307b68c43c0dab33980e55f6d8bfe409e983f9ba4e2cd789ff711e78df70a41ca132d49e40920b130fb00f2e227060bb9c1874ad90887a5990a892ed3342230256451f04fc610990604b93053a08d31510c70f375cce2b29a4eb4be471035598d99420f8b928d6fc1c8f0b20a5f7ea7689e800f93f773f7e6bbfce1622e0822cb0dac95328f2f1838db9836f98fcb921f911ac965abacbc8359304c1b115c37a045994114d095836492f5395c043312c8accc69cdd503d083811d90a87da24277cc0e3efe72902187bc298ecd27b4b0de4e132c8e44792bfb019a7a3b3dc57c4868e89bdc027e9a584cdc0f4b2eef908bd15f008434996431e36b944b4c3d0eeaa56402917b009ae46e5c687807b8367999adbaa74541519642c4c70b6ac1643e3c0d82644a48c8b55ead3d28e4239fb34955505630959f95309163d0c9e39e80157fd4a7209f6602afdcc2e5f00a1a44ce12dcbf8e61f1718f4a3ee78fabe760e7c7efb970e34a9000f90f4efcfc57d2cf579943e1a1e2baf8a232274c0d2831677546bfa924f2fd30ca402f7c5c3c9eb355c140354065b5312d404646019fc79010320153827ca03a5d804acc188fc4ee754168772fa90a01cffa892f1ad5e4395550f55e8a204d4c41beb82f52539e058b247f051de21336b43d276fe57fb02038a2ba5e6e674d9dd711644ff6bbc3c1a394ea63fa490a7b59677e19d298874cac4da60f723a7b1e063e7d0e37283e48700a30041858394e91cfe73a14c5532652be8fce20f74afed9d0929fc3e993b3197af90003003c89ba47dfcbc8dcf3dab1ca8509ed98573221702337e0ccab169df3f01b96a5dce8f1cb544aa78526ea81785879815f5f3e6e50acec09c6af5c76612dd8e24bde3be29b63ea4ac5977359781bcbaa8c644e2192403f35619e038525becad516ff25c54cfe2243d6dfb1b4cc3439749e868b9b8f4992f3a380fd303f6dfd7c55f8fc271d179cc7255c0fea08a64f9187fd3e28aebc075f0b5f70e5ede18854dc43885c9925f60838c34baf7f032a875903849def63c64210c81d470e46d51aa4c30257ee406805f6a941cb95b032e190168cf022724e3d24463a7c509c2cb31281048f6b989a512c68f42eeaf21e8d65f4495e05cb5c86fdbd2b1c6e5e066ec423fd951929962b3f22688a132214c1c17868f06d5008f84332cecc2a7602381e9a17c1b440a6dcd1a562e6a5376fd912883f601c5b99cf53874eb0ae9387efe10b2f8b20e4cabb9899cb1180c15e522c4cbf56608dcb2165ca74a39fb8ab4be5356a6afed29d3bf992270c5fea952affb52ac9bf29eb8d4445785b7328982d900c7b4b2612f9941348720658be4c298e1abda9420bfed8414ffed28207f0ad5029b3c192096341eca4c80e36c509427065e06be8717dad43272ff16647be4b957e5f0b2539ad53305723a5411672a1caeba095c90472c3efcbe0e1f14472af5cf91db29457697e920150a69a8ae66eeab0eea6b5fb0b5f3a987f94659ee571201b9ca21c078c0f78c68690d9c20a8ab137689a67a306031984e7f078a2d2e40af1811736d4e3ac10549f37038599ac24ecd97c0966e22050e039cdf1f8b4362eafe11293cc2b0821d7f447f7826c78f943435298775659f8143572982a8c219e9e60cc355e4f7e0e0c8c0755094e1e3465974937019901d8f9f902c25ee55b46ce6027bf63a2e8702acb695b64054ba6e43075807c0ec90be7a2e0850fd0b0c1a3f4697a3b98f24c5a1feabed71e38cf870ce0bb9468cc5b7ce6de001504ffc8d48ee7b30194f9c1092fb72003825719d1e215acaaf3d6159f4f5306cb1beac0200f488067e241a3ccbe48bc016a9103f405464c221b3a32936590c9058ca0c1f86a2c34653d224afd271fc74c06899ae751c0f2de1f1cdfd4c2ca3f462d78564eb2b924eec3f38ad422f70023e61bac6a4d51733e3923be578f64441eaf828994c9164bce757c6233479925794b8f28b791e39457d1697ab60895cfe44bc628c89260f6508db9138450a68b0747c8d6561be606268fc6e05a425e76d6c5cdd401f4bee03359821b1517b4a7c661cc82e2361e5c72320f247c904e84c9a5458abf65e3c34768d33700ccc31f3931e4f160aa921d81f97b5ea2de7c401bddffd005c1a4007461aa705653c05add5bf96bf4af02f03d8f45708023f8c0fd2c5baa5e4d0f3f7fe23df8412a9b8370f3c30581e2f07f48c8997f8bdab80e0469360337e0e72cb0f83f2f8cdc872e47ce2643d50f0799e5588d8d136945ca491033f16f75227c590d5fffc18dfe5a9fbcbcdaad5999a50024f33050f654ea143f96125766276028f299831498c8d3979c45c35a2ee4567a056d2d807862fc7c1a0d0226d1d2d20f9951e20b78d0703080d2f21b411c3e8d96eb98f420af33248329e3c221ff23ead3bb2003e6bc389d7db117c8b3793166c24255eafdd6e8390a0b755c4a8e32b38488005941812540330a8a6518288260dbab518e4a42df989311a903324207f8b6274636e2272ff7f8c53a9f08c1be551de4e7c51a7b43c4e6b8528990ef01f7fa0c48506511456a390d100cfc55175dde4946870f5397c341d061609e8004c96da931f428c828fa56c63db3c7bbaf610286d71e972510a035e69627cb071175c14441c0c9c35a3232ffa6ccfabe5c434c43966ebc0c1a978267077af98b06944c3a17951ed218177910055fcfe64724477044cf09b501f65938eced02d9316b2d02e28528f9e5252ff6bc9407317f48880fd790c88d7921432817123bfc2314f927a912968b8b78640bafd6e43d6b9b3ec8580b7c91c4d7ab2978ff42a041d9ef0dd15c5b52c839c152cb881e6d793488ce677fb2fcad969f2c40cd2cef0329e88e34b94f27a662da18c07a17cde8d9bec0f03e27b9f29f612507f4008da76ad2fed70865be59bd381c9b9b69a7042ce7d2048af9c8d1a00c61093ba677289449d6f6f7c053a972cc072c3762cf778b342a032130f67d36350a669a71e32fc185cc37862ab9db812226131ca47c6d849dec8051a8d74e3c99c9b20d2efce2c2777870f163e478f12853d43ced017b99244a7ceeaeec97d8d0feea09b09f8247ec592cda5e0a531813c0074a79a9e7c24f49a434e53ab57d075364c6e64ea4c938bcd4023e52a2967d249233f36223be67809307004b939b42a3f5acec0439193ac29c02a8358ffba3662271769e90141ce61145f49e0551de33a6cf5b713afb648351bf03892b4328e3e5e3704863fe4933e0d7440196efbc71f45f52edca5700e4725f2efecc60c43639b966c734b26a5666d08b85592b1101f34616044062675cfc03db2cb34307262e07c4a92f61c3956ba151668aa823c8a5c840f4647ffbeba61c71050c26bc87422acc3e0f4c8764faf014c1607fc947a7fc69d3d9c7619234ff0239f12fb286e60c0c373ec51821411017be7c30e12e33d5da699ed101f675bbe8de858a3a26b0629ebe9699812cd82e710f3cba3c1e3291fc860bb9071265930f51a3c041e11af32bb04cf9356c99fecfc33d0f56675cc9005e261a3c051cd263f01406fc3c905b7f7ec61e9fdb79a893d3f059f05477523d2f3bc47e4b85540ea88ba457a124618e2185744163ab1e4fc35c761b82079c70424dfeb21c655edaa5c0eb1ac465be3ea05c56b0c753d912c259590c3ced0c2a4f55a2c3ef09f6cbcdd2b4780d42fcb89e2e41321e1b77bc158b24de8994e988a28cf23b14a478a226464c1a9188f80d1827de0323beaca0031673adcfc407424301f827e742fee5fb8d46f5ca6e3ad9b9304d796fca2d079040db914f7554e19a4c850f49d6fa60aaa857436ac333f193e769687292d1a8079e4fded87f6005c65ff84261f665c9ae377c32efdca2781e2e257e4a0337bfa7c2158f3263c78b8a13e9c34848e13950c800de3932cca6b2a8dfb046e3e3769963794c96269fb02666a71c1df28f3b3d804df8cc711d797cfc8f256b4fc791670283323d9843591c9129282fe01102af330285a371232313279472157e80f98f534efccd3ae5336702792541981c17a63b470402d4a32d18e128e6246552c64459041cc72c434c8f89e612875c4bd2a50704414ef00ca4b3dc600326202e276fd91430e87df1c0e1586449f90e5ff0fc4a883f0f656bcb9bb872c1041a61e36e87c0e4e01e5b1ea62c4a266141d71b2a7096414cfaf274446d785b0e34fdd8a79cf76879f0076f624c2a66543cc3895da6a8591d7223580a321103847ca7c85610ca814f9f890a855c6ad02f138f9c5963a1c46831a5d082e17d932a7c50d5926f3442cdbb5281c084b55a7255a1841fe77cf526e41439a8036e3facd61f7f3129753f6f773289132f1c0b1e566fea579e37158687e9e70fb08741822dafc991e33bc106b3956520433aa5c43cc297f7620419011e4a8efd920c68d0929640d946a03cc00f786d9fa10cebb388f8271aa0f4367316b8a85fbb7cad019fbbd1d930115d3af1b906a5f10466f0def584ca7a1cbc711221c8fc85a0056f2b4b31f745ac94ab7eacf8a6419c5c49afb53c87449c7775004abe0420cfc74cc9147c85d03061403233d52891fd996c20e8a7eacabc06a89941c8fcbca2b10ce62d397d7ecaa6f6dbbab48ea4e5909fe032e154965cca9a4d906f7314e46e0a6838a0b34a1991991d1e872b699e4912f635f4a33c0007df83e0b02b1fa2f3e209d981c969e0fa9ed81a308745b9f5897a38024e09b3f3ac41bdf2e98147a613de092290b026835a7321b88505e65bc9324e0769f6491204cab8028171314d36e51eacd4b89d15a3190b420b872975ca5252c97d055887cc197da8fc840d34bc7dc4c05be00dddf84ac2dfe1527b0dbf7ab9893e2affe655247f91e7ebb5707990e720702009bf4f668b404682c53659f9e3df959c2a48fc49e46a651eab0eb88e612328e4ceae2fb2048abfa054e181bdc1cc4a6e9597f227ea7980c1f10f702c30bfc8b9aec494be1e0f797e55dfe9970aa5efc487123f75a8cba732f1220b88437c6613c2e333953c4b2d19be6726d01f5ac017ec036a578e358638264895208fd04855b052110dcf664281a02c12c81703811050880825fe234525338defc69fdae1e55f426a7e04273ef7736b7d18507bdcd4655c47859d8559c1f163faec3025cd51f23e588d305329517d02034af94c842d9ee3c7a2d752e093a7f9d2c5d7886964a227293233aedafc881384b228175f32d12fced8266bf514800c00ae4044e69bdcf80194d1c5c85fe0e3f2ed1f0c5f634f8cb36cce3f601a3067554af27596ee7cab49dd09024a59010ae74e8ae0f95b0980f7d1c1cac52060f22634eecc61b44eb94650c72f8cc8f092d20ca60d196efece1c87b1102c30f890b62c4061746f7ed4a01b636084e5b99d404b9c8c08432692575a86e2e2922f62f428c3b935ebb1c0d57935187abc0b2166ded19ce3c7f2e53a122520b7a54b9b5da0f87a3711deccc0cfd81bd1683ed30bc02b4c489191a020fa581e2a732c808fff4485419ea39620cfa05006a4a0c9cc754a6c048ba1f9c8588064ca87aa00715e176401a3e48ae36256dc992080ac0e8049812f2334e5bbccdd99b2f04e7d201c50dced93d065153bf44728a07d0959473338e8d2771aa5e661ac3df1513a526527611afd0f3987dc8a0e59df4851998c60ce8bb7c36eca006ac4f2ba427caf2bcdc713cf1200b7c051f94a3da28ccd880be5265a4a98b7466dca2fe620b3aa0b8cfe0d21561fcb96a657eb50e6400e45780c67ca1cc5d3d22d3182e28b9200733c76054c574d5a4f8b29331c222e9ec58e20a6892dc19e1681527fa713a76783f2269224133e58085b3f84c2a38c8a581e5080935fbfab80273314b1cdbca21c14a433e7e4532ca13496669ffa12453200ab38e8f16b230499228828f85f10ea93707b1e90825499180e107fc64be917dc98f81aa333f7d5c08803981b90c57888e0340eb9fa3ac4347daf1cc44c07c3565f6388007793f4e7c3b0a2f4797c24e49744c46c54c58929972599f7ea7cf24784b6bc8b33aefcd727464154125e7815323313c55da2674408cc873153e08258364f06e5d0ab2a62c1a5c4e5bd085f7b261ad7f03d82e4305f0f88f7e5e784dfed91f4151830f0537d403d9eb7564e874717ff6176f9409f10fd204cb7de2dc15a9ef28b97692a38f72e9100c1b2263bde0c280c661019077ccd5a1d20b04cc14c289632992d0cb8f2f418c7843710f9073584990c6615f81ba6e2645d14ba385f230b9f0ad8e4238201fb4324ecf80826a9cc3f3c71dc97174fe6cbe880f3f1286432a823f57f22fd3187e8d04e65d712138f942566508edec749aab90d8d7e01754e39aa36becc3c74afcc0b434805b16c15ef9c72f0138b590fc2903093ac987f9cac433ea1189efff3a5e0dbaa9070b317f9472a85f24922e232a02b285e8e9a1d1e6421c54ddc9af5581839f00e5c28643e27bef8b00dca8b3f02b92e3f20cc02043e65156c2498486490722a761f720e18017ed7a43560202ab1be888512995a8751bf0069025198a2e2518a90f848c4c878a62d5bf210009aaf2345f797743df010ba44f91d23927ecedc2b93c61d14af5cf2c87396f0f9b717287c119cdcbb5584e62e3a4c8e24afc6bfae5a79110a16b2a909668ecace0e1211b5e7b6c6e40066b2eb9173680d84a083d36fa07206c88315806c61d7a66f33c0900ba2ab642ae0e2c283d4c0e0c30364deca497e031fc81ffb84e2973fe09c6d46877c88c0920f35e08e27d350f061133d7faad29517862542f6057a3c14a8354e832c80bf683698034e31c8891e693127a976328f619d821b48c5992acc1c029e66c72c04d29a3028d55ca297c42c84de3d318df7528282fe2ec15c66d1a086f70045c0cc52248d9791b0e94bfdd5fa5b97e23c0904210763c3478ee52a91f3f5199a9ba6b83d28b356de2537e93f0ba3ffc20187a7825166fad084e079d85103d4c392c88b14eae5b240ad323780e2057c7ba29f441c5766904e21b25c961f4b62c87331ac08f814349c5cc82528df41edcd0f0b74c9cc43097c1c612333079e3867a4a14b5602a6cd0bf82097394920f0b062133e0435e48f8cfcb21fbd5dae44cd993308a4e5ad4481f01a800c32273b34e00b0703cc175bcac678c981c80340353049f8f9b7b4c94b302f84fe0a630ecca124239fab449ccb3531e3c35e2b7e860d3a1e810003530e6ef827a728a60c94cdd7f07a90839438fede54e05d05899f06a14bcf805481379569d9c19d34ae218e181355a91edf08cc93dcc7e1ffed9d0b222749c9606c35300d843973041038cc09634ff225bd26c03d4b3a26831f424c4456b4fc2e62b932b193cc5b28457ca43575be2d756026e802c06f7c62f17b650f3c0dc0c13b5198e47d9ec40e089d7b216ab0cc231c5d5e85079efcc6ad89030aa0ea2d212bf92c376a3ef1e2678b45677241e1e40a67bd32aa39b95ed72c34f3941ef4eb245101870032f024323001d281557c021264fe6a2cd8af0052cb1de818e3c577928b1d4af90e22898c618e9b37340724334144c02509e2f4097c057b50b19b3742c5cae9a08af16e48f53d114229329b21f1b388508fba4572ad310aa61a227e4c0811d2720f145cb2980599c64cc05af1710ee08ca88daa47002350ee8437e09545e6de17a9228e05098bdce2c5f2cd7c6c57fa69e2be6ac1ca5a2059711643d49874ee941e655592cc0818207fb50c6222b8b0c013d4d192bfa8621e929358d99797150e66ce2e73221623bf1a45cc329840ca4e54f9ca81daf8f8b14d4776b4e24c9e6b45e6d3dc20ca4b584da62533d1c701c833d7c0837c441120ff8216a7079587c5a5fca01f6224687a3116cfa9039b7f24438adb59dae19c5c105d149c36590d8e0f8f014315b34a1b7f051d90382a39037c0a9a2a998caf4866905196379143cadb9072c4c4c323d10fca05644c558cb6bfb5a6c373e0a022b7e955ccecb02f1e85957b1c07947cc68a24ae894c178f402cc98b5831c9f704103a0321ab1c159110792dcb28e7118387d9c2c993079040824f6944f73982bcc9bcee463d0d1ea6f2ab65d7d7057999ad508931bb344832e626f291d13cfd0195c058e06c6e111bbbd2079769a0989b19dad8322638c572802094bcd5a32ca62605fea828560e94e2c5dfde9ee4061a10fc8b4f994c0c5f64b9b278e5f7ec19e645169572580b483d9012994c2365941c87aa1e590307e34f1856c9ddbc39ba954816725209b02c21d1868c6486035305880463454cb53d1c05c38245549439b135b8efd3864806c1838fc982881f7f15c0536693e3c043c1e9f5a364107a3a679c076488cf8fa834c0fdd02af0544c195ee65414ff7020ce1dc058fb3dc418cf864d00a7f5418c6ff10caf3c53c3977d52fccdd2f898328e5e5946c2e4c58897df52e6c80fe1cce7fa44640c4081239f2b412d32b31077e68ab73ad96f0d90377151e5211f92cf7739cc4e73403c0edc18f35586390e808e87bc0b889acb0a8129b7b803e1665259707490a1e71084ed0104809f1dbac33173f35b30bd893c24c4d505bcbc09303e3998212d261e3c939e022c58403133befc3083a7e080344f3ec48a1010082ce95f1c0f5c8e2e539f4b070033af12315f492dfa0c65395e9559d22324333d2537bc729a01509e0429e6fff0e0b9912968e61f99494fe6402a2fc3858d533a30c4f78c0cfa1b3d7c98506469f8339bdee40272f6f2ab217a821004f8fa4a4dea802f21031fe240982f74684cf61165ceb47117cb44b621652e59b4c995c134731a90e91b84eae4ed850a7f49d0906cc689d121ec117e8d23011ed315ff340086bd001138729b8113aec348b177d38acc0fa8a2e99169e0becfdf8f570581ce25a86b32810152720e264372a81b67f28b39bc82685e01f9479afa0019189a90e18231086a91d1236379b106dc9280c833f895c8bcc393f302631cb80347a1bc05ae0d66dfafec9bfef43d9a60131fa009d46b3a130fa18e1333c0aa5aefeac086cc25842b3f1046906f00d6e5a30cdf4c251042fc9df29439e3c994ac07c58dc9608a157752c756d097a83bd34c9f9aec47245406922a63b2b9b33aa63f46594d43865762c59309672b8a5b509125fb4194c189778e1ece8ca52f05b77a10c4e69c5299961ca3ece88a72dcca7e50947a456e40325cc091c37d8a9093a128782e0328f21f62683ecc2522a69d1146b92f03932f9682f14ac931d99429276fa457a260fbe149965bd1f6798a1ee51894da7cec8a714947e257f8f2e367802af0a7a654713449f2989cf020bf0a25367f0ac281576a2ddff6a18d4b6925239315597d13167326ac177f5c820f0da613584cbcad8b610a193570191884798e1c785e14d273da040819c69e2ea0292170a69b619bf21726773f560b40d0c787fc4962b7800896ad7c152e58ce04c3d059406a9e0c0703cfa0c68d131765f8738029f75270bc0c28446e8ea1f17064f0643e924639216124be589b3cce4a02eb9ddec6381108676682180bbc111aca4b3568908d0889143ca1ca462ef0e045ceb262413ea0219459a54c4f0e2ac9008d24009a658dd09e4ba5ffe5115999061439c7d5e09309e514e495781d5d0eeecf031bab7323a75efc0b397d4c438d563896317d1c1694583ec4903b163c471c552d3fb38ca1159e5e11f5bfbaa4fd70c10b5724e449161423982963519c0704c7cdfb45319025b07a901dbcf1e1b9ea3808a6b910928bdc11e4ad6c9d78e4911feec216db039500b2a24e693cc29ad91b1a85eae9ac1260ea199bf54a30a9ca34ce4e3ddd8b62767122e8b600a126b15919dc459e229f4b10d0d75c209649f54af3912e0d7250c42a6535be9240568ad07ca3bc23f02c84833c0c963058010e4b3623121ccb11e68169b7fc32f6c6c1886743038d19ea53dfc7acd87c42202c4fa4d72f3f240bf84cfe88e6810f159e91041f669e9a218e03ee62be4161f90f33747cc9161eaf97439179a058acf75262f80b82bd72144734e54a9466b89d039ab20d44763c080a382863d78fff44562693d224c6950902005f35a8a7516008f827e7f6964aa0e54d550cf80339e0db4131e937b9483a023b4dfc0e0048b9c7a1341fe2e056864424e4325e9972321302decedac97794d8f0865c123f6c0e8df7e0808e83f890cbf56c188e4706a2674bad7f61acc807b3a4312768b2f1693a114d076c1a5e012dd6fc03a28f89c1118b60ab65876f7b28701049ccff43e6d7a71932c00d8da064320873c1851cbaf0b7fea079a43a6dce5884e76507f4bc2548c65f24c2ce65b1a94e96ca8c435260eb770722e6191ddb8f2a3623ab492a624a12a6c103491c19d07ae4350cf86046d2a5e3713469330a4e393e08aa49660054a71e962c088e8408c4cba0821d4726533f05040197c3ebd23fba9b73b24ce0f984345c444cc119a47c1ec7d9992caa109ba78405c7c3187a71210522983fccf897a4ba908714cf5e83120b7947254df9011330400e4ce0ecc115f16f8270f81b68ac8c46e2c117d3e080ae2cc4791c69c8b2981b107e43275aa61a2e91be53ab3a668d5c527e001c0ce69227333e0d803d4fa0ad852b193023c7c252cb7b1909e442dcf4fa253bc31d98b2735b119cfc5e35e7bbf6cafc9516193e918bd3f58401f61690298046d3338df504020833cc6582b3cc2b5dbafc26024460924c24f22aaa48d6604f8f4f91653e4c3159cfa080073341923487e3a18ac728c4ca35a8414c2f13d81c4d020757c2a7743c0d64b90060bb1c089e2f6fc7c830c7e353cc4d5c8178318b1c9836e8d8f03a9d943c86b80e39c885537e51eb51b692a6260fb750c8643ae8023241032abf305a7856762ee4bc237ccc007c6b1e8800f60faf18792da3057ff3c2ca8f71c3cb2098e0f9a97ff159168c703064a93ccb89a2178be4ea636d0af540a26871520a58bc6ea0f70f8a67df4bcff93538687a0c83c8bc085b1b32191574b22658af728910bf804bf8e431876ea404771450608a72f1257840188c8f54aa9855c53a1c2f0427cf2483cc5b319022af0140e0818edcc8f02f4cae094a9a6fd52498eb095ec8b63899f219c11e196d79e67e5c64f148741ef9a92690b2e398f3540070989bc800f22dcb0d7908a73ebf8bc2839c16cc491e4b4081ec83815b1ff4009b5d20b8ca91229c028272452493a1610a38216ee0c1c418725cc71e2ee5881ce7748bc06f22e3f693e8f8794ca460b98cb1a1238b78a6a0274fbe4d541a3f1316ea09d56af27304ee1ec5f0cde30b7d6e66ce9b4fdd48700a3424b85c0b42b943043f6092d19b4f1468473065f2e061006315c462017e577a6af9cb814439d3823d2f5e09f363b42a987d345cf23822b21c87902a3ef6e9846922c5ab3f75218149e2c802476ebae00f7cd97a0c636fcc066e34fc6df8221b5063e1452c61f226b800bdd994be5c4bd293b78186e5894d60f1c051aabe482cce57a8f3023455acc8042ac800ca0170e2d59061641e7241c8f5b4490231cc98731528806e6b42f60e69231ca8a39717eb2b9ac0292e7e4a2f0c66960bb17cd0110f990d9de063428632b9043bf302c056e413208a3d8745fa29b10af03d5a30e6103a6ffe762b431696aaee07019b013c97abf7326b029c61aaed23444114540b23e31f20d911b41044552e15004eb09d80c56174f2958101a93c9f4d3a4c57c22cf9155c4bdc0f0805dfa4e68f39806c8abf88b4738a50229c981134b31502243f0690144fc462ef4f9151ca6fe818374504982903d2860f8604511e83a7257b8f19c1324236995e9ef8009a6930e27290c030d3a0c27b2976dccc1c9c2cbc034712cc0f3e2e798017af696433e2614c82f57da2ea1c0d983b77908bfc204e12bcd6215d4fcaedefe176407122c0b6e44477aa7c080eebfb4213f0b650d0c99222e478217dd864e0aa5ecea6c89d5f9af3e9eb705a117c0390fd952c8c8002c6e4cc32414353d08bbbec7c046436728c3983ab0888615b7151a3c678cc88c69b6202671f709a9ed0912d8ea9061537aa9fb203555d3c2d96965c87d4282f648cf0ab7ae170e17b280bed90f125aea2fc9d4b267e095e9cf51473e5a44e6530476d419419d8a2059c1bc1c96c3bc9ca718cc52cc1ce88f96587f221052f6461a9db238a8469ec87ac358e27e0cd6e542cf2ba25befed78e14af114cf8f41710d73063850b6805e62f2d01f34b7a69724a3d5a5f232b9107bac025f3222bf4453085cab84eecf0392c4839140b8cfed586567e0880889c47ab8b2962d996e7eafe7f9c26cc07b470fc1d2b2cfe86173c405f3005f3eecc8face3c3a0cfb1e754168183f5392d0bcc09bc58f9d971d70fd2957ea38994ab3442e5be6084701c45a077f1e266429cda3f54c190b7aa2e3888392bfe257efbe3a43e53930c2c7e2b40a927b4472a1b20c6e65d77467c142d2959cd24e1cd66897a37bb3c3c844bd95f9cd2f250dc9c268e46b85cee018f3f7395be720195af8427e2eb54683067d9e970a0963e73969a93370b3afa31558d3c518f3dd9568a35ef03e24c3ea06bcec75d5294cf7439735f3e44b88b1e71dcd3a6b38743c3c7f7a9d30504e3b4be55871d66a83d99320ae446d045dca79c47cf8b310b6b3e7d09392fe60731121c0cdcad47244bd16392b3e600049a389f0e6c19d59445afc8c77660c27cf910a5fb68ae3c70582bb06404a72937b1959866389570b70bc1328e5da09cac001c93829bde770a22c4c422e253c670634c1e8340c9d7f0ca10a414e2837f4a642188471201b35002b91c8c32c2e494e3888f7a13f2b088c87a46667e79025879f91c95e67e737265490586b809b45d9ec507080fe5fafbc983c6e340f1635ab5e6c2100c7a141b1eb983b4b6c76364897f1975c9e15e751f49039ccc56e1ce3768df642c491c653b4a2382687008b29ef045f092214dbf49cc2ce0833a62ee22020370469a421e974acdbfb1c5c9ddf884641a1994388a432cf2af4446fc418102e610c49e27f0c5508615e387a3fab4e60f5431f8b22eda85af159fcbfbf33d5a285ee1ed8ab7420be13f878c39448a9a77b16516195f5aa2676067c05828116bced166c4d82ac686bf189bfb5b64708f02d02853c18fb53700e757e692279067b291e4f32c99f283daa8b91813a7bf2da1955574e9e2bc840dbf0392255e03ed97f976678f131262cc7f5478786aa689a9e7790e25c78927510b970fedbc72179c00e5350cd8c812b014f2a8206882bb98a4e542b258e4117016f284b65e6f462fceeb983d704da0f389c16c26af1179bfa82fd0d312e2c43db0d0f280fe56b90750ac5c1823ce8901fbe1ca62019c8c8c61de88850ecf826388ff6095c4cddcbdfe085886879287ccacc156e88fc41df96383426fa64d0ec8360187abfa3537d682ccb0178065ff982e103e4d2d57c0364103ae8945b3b00065fe68064cbee5218c7b012574170d23c7154ac613efa47cd9293aa68cb82dafa652a2b7e4e989c35165c3e31a835ec69d06ff35a5ec63701ae4b5eaecbe96b08069074792bb0086e6c230ed7795c3c4ff7163c09ce0c542d0cddbfd1bd78001f8cabe090bb6ff5143d5af1dce80b4ba8078437d9c4c04b0ee9ee57bd3525cf053f0ad79a8601d87258bd3d70250c4e1a4bdfa3040f69e0e271bb928068bc31184c034dbe3e9d91270b21b1da013dfe093b994e72a8eb2ac67939b4f4134308135c1f48b22e999756cb69e1359ce431e283d8fa522990f1e39f344310ca6db8f4e2f686e567e628b91ef1920f78456d17ab91c523c8cd1cc4fd8363ccba6a5b338a24d20708e8f4017a147ab72c465e8f2e3881e88f02a500298ba5809712194a0c9e945e306e06273c595b74ce10d36d3a488f132d4980aaa91b19653c42132df64f0c925440d3f51065e26865b82825250b8a3d4303271f911f10a8eb4ca44522fbfebd2b04c4869c287a110e52e7530fd3037671f4408e1379a49669d22227f811626ab5dde789819b14c184b0ebf8dd832436818f136e05cf15975e7bf289027a3e253ec29fdf0629a710bf44b575efc0da1399f0003a60276906772959839fed2b8003848398a87377f908b2dd7a055ca93a554399e3125cf88ef563e23ccee7372fbde21e59fc283c179002bf65ae23c7d0a47c5fc3dadc8b0201c0e08d3807c23d30957c167c67bac8055ec8b152b66162b260ba8e6ee472f638bf0bac23775b55fbaad4030fe2264b117936acd5cb1f4f35c9740b86904cf352590903b8c02f26c5605c8786ee53850ac58310ac336bb60b9663c2024809407fa35cdea7ecdf2201039a141dd8408b41aa5007e8825c481dbe9480215256e28985224c5840410180cd81b7356562721d7a03909ad4670f12c0d3045d8956916b00e1837624e0730079084bb1bbd0c849bab578dbe6b42116a7d7bd5a9da89b51123d8b6d28d513a04b0385098843fb5d56c4406990fd6a98d0f2230f4116a11afd260cc337984291b3063e773ce6f9a424b65c235422beeceaaf0bbd373b7e989c6616fd48ddb57d266db19c3539f6c3a64fd16413f8294e8b0f1b7c030170187e77765ca9279c8c1f0b630bdf16086ccff4381f4287c3eb9db591f9398c6907b99e4e66a02d472411100e4bc03c3b77484c7077ff870236d2c3c87dedd073bebf4033e047a390f7c8ca98825f72bf83e998420f9799441ac82ed1834a6b9ca0f19973d614c19752efd14f7940f88f0c1c4e343e59f2cd9f4a0f6de5ed3f2530e22b7cbcba0b8320ff85ae152f21cb39e557afe82ce14b35562f7758eb39eb590e2155022f0194cc9b916bb31269225769e48a70ea6123b69860b3871620024e5f60cb1fc6865f3987ce9ca6e7cc03929600ccc26b0969863904a7c1e1a483f0b030f279b5574bc629fef99fb67d1006942b930e7b5408290d156af5cd0253e73ed12e11b9469e3b56271fa185b70b880d6cc6ba94ae3be3ec4f8b5d6129390dddfef48f3e38780d9f597064931570dfe43daf8bcb20f582ec0a50eb82705cd2eac900116195bf1af223c329b482ae59170bdc9aa8e401c7984ec715ceaf07498627d8521311fc280ce3d6d2f3ee303a41c22b8cb453819959becd1f581e286662d1d6f1e5702282631022f5e0a213ee61f578a9e125cc5bcb244e3b0b238013e08b6e60dc10c4fe8ca5bde6563957fb05223fba0740218e8948a973447668c0606485e63cb31e9dc28f3370b7666ae40c0cb5cc033613e3fcf2a8dae7ca623c56f829196bd2c237d210620de0e9f0feff64093e7fa25e9ab00d9f1b78029f8014f5864031e64bdaa30afb9c5979bd9c604d1f4cbb2e251492fc6961011f57c667d316bc511f35d0b2c58434690d7c3e63992af216fa4459c17a697c393bc51e2a0b870783285349989fe20795c9f669915da335e04d591c1d4a2f3231a76e55548f01eee0317dfa341fbcbc7c48c416cf030a716e5376a78bc983e649a1d30feab41c2f213096a26034a56a6b402d17781f20198e545a97c0a9211536d73793c0a4b4c4b7d683c0faa2cf989041f3f2688cd8412278d7319c428b76121eb17b449f2635d4e173507e583e89af294ea80f99118943c0aa31b796cd58eb723d6cb74956a87d7bd7b2601f67da2d9d0fc40299439a441993f99f2ea13f518130c65ea4126959221cb43e54c6e32862a17f0db6f846d2e88a2c9ea766adeddb439ba24266b9e0d1c91dfe328fd010a4c7c1f9a32138d04389efe49e2642cec9e06d15246b5eac1bfb2a364aa594bb91f9c4b590fcbc281e571e5406c259fc21d9b6780602fc3d9f2675a2a3b622eb0d02998bcd3c40c5143c9580223eb0f630901535122cb318eb4b12b8868f9a0222ed3519f0b4f806435b18cd1e137e4a0fd26490e9ecba8a50be153e1e95480f1a01734c750ec515ec5c4858341dbf3cb58a7e7542dfc015e8b779257ecd994817e801f249f8b93f6bd7810fba1cb236788200118578985c79dae72302267fc099f3363915a35c985bad021cb1289ca17995391b75001e48360fcf9362bae5ccc0c0b5ec24521d797dae45d9b42bc1db6466681aff47a676e3216132a7e4f8b58ee6142ab0f8141d24b6953f04b06643289c087fc95a53119362520c3f0c306d8a00c950f31f7c3493960e3a708301a5b31095566c541d598a6c56642c52540397a7ade850749ce48d8a83f5739c8af2e187a3dafe2fc8207f1e91885e60742c37fe388d3b7b825e9672042fea85b579e08a489c9e8efee0798cacceb0f869b98e3eb63a47ae2ba72483251bdc8f56cdc1f414f03e174568d912178ff3c995b2580b230c1f95792e09526925faa4188b156a970392b127699870cfdb04cf34395f1e19c74dcca65afe20fa1a6cc62e62079b6b6ed4ef46abc2160adc3ba85e95fedc2632e20c5e885ed08f5acd0571e0458cc7f78edfa2490049e2b0596b78385cc390aed32f72c4dca7b6c9572243c46803b668572547ec64405acca1d88f1998fa9d1cfea83e363f975f80e6a78643c6b923e901106f9d79846ee034d86471e62e02088ec9958b28479137d9af28f4c10fc6c80813c6bc4af3f90c085c9880aa93734c8ec950cfae57459cafe4a84cf6aa06205f3001b929b50b00b9a29c1e4c3b86f79149da08301a4cba442eac34f7131fc990c2a7c488039e6fb49dfd5153a66abd4c6a34fd832163bf5dfd4defc64869303896b60221093e7456da262326ac3e359bd6f6610401b3c98e5f4a5831d7ea91094acc6811557b0297c0e2f6c5f29579e20955765b25b9d53415d6586989b5011fd8fa23a4ecb898ae0a00d0f4c0f1e22584a4b1c27d264c57bd2ab1e0d1a587f858897c765e89617d2abe16b9688b90a41073e131a40990125339e8669f28c564c700ac0a0644034d81ccef4c9a52ca8f4a9020d723bc2246fe34a93dcf78b93bb922b9211a4a132adb41914a4100c930322e0c2ec51cccd3740b10b6a0a74fc33787da68a22eb5ff088e419c4527c96127ecc453e38f9173b30cee080905f64163ba231176f165bbe12b5e41734cdf91f98291f2fc0e2a66c0970496fc8d760ece3bcf05e999448a87d8341da5c9525583e44d4034cd1c0842b6280068805c5a25ca6d398b23439c83252a4642e580dff2d9117738c78e0fffc29f20c5cc8fc7a46e89836cdf15a6bb00fda00c319d470fb37b95e3d2100c55f6b7d7986316bf9cf15009f2c66217f0974f664684ecc3d4ae75bd93127efb540be1d0b16ee8665900da801cb2f4654c93f72c901f51c61912b61a935a6e6439bdfd58941b04b9c9c3bc50200cc45a5d6efc817cc09a4ce9f41444e96e47e722468ec3c186597cfc3824e6e90a6cbf96c6873440c86b8ae5ac94f4bb17122b002992ce0e0fed79e9b7c6a5109cfc1089257f2c3f6be104cf02e464819588c028c0b462273391b0255395192b10ca7045f3e4fde84231d633ef4fa78233e525e09ce12cf946b94bbd03bf2b28484c8452a19f13d303b5f99f15f4725f1647684f13d1fb43c04588d3c2d0b26574244d3c3e885e64847fa389a71800fab50f061a8dae407c43a39a845ac934562935fa9bcc838d4491f66b1066cb120ce576ab2fc2a871665002bb0e0861ba6721116408204946879297c8ebf260b2e9fb20620133961ca61cdf861baaa53f0769256999faccc793a53773eeeb2c253254f33a963925368739735a181e26fdcf638ac23c5c7202b91a3a4a1e0a8c6d8f80b02b2e44497108ccd8a74e8d7412782c93ba95e0faf35b22530b2e4277e902c0780f77ba523c8aa8de4acc828fd2a2876ef636ed3f35864c259cd01329734c85f0ca47c59b4ca5c0791441ef745efe1ba2c7a29653039875947325b025cff070812938e8a81976bd1c2dd214adf74f720af69409459332c80433990ccb12f73728f00234c167b01c68c408af28c8678fa0c8a2deff5a5c9655efdac58d132c77ceaf1a18e50f2284804bc0124954c346ec5bfc129d7dfc9a3c3e9e805cb46f0823ca01c455e0990594e6c4eaaffb2a2c3bfc932cd05bbe8780c433b9ec1cafe595d11335486e2af54ece452468c1f444a6b824286c988de04300199a9c9b34a1cc9c5b6e4c9903ebcb9b0b7d4378193623e1264e6cf70d8643a6a91c5dda4fc652e79783d8c0774b958871f5fc4b5f42cf8a83c2a1d041e86a1188e1cdeb999ca97fbdaa2c00d24df3c0ffd97759e1d6f127bb38f45313e481959e694241472213737c15b041abc991310c64e58b05e90a73793c51b9cb7b87a62720994c07bb502328208c18f636487bb9b32bf450b25f39584e16b39e33ee3fd7c943a26996d0d94ff31aa7a305c90cf8092954f8f3cbe4fc68fcfe064d3bb52d2cac0dc06bd0f3d2fafc0438a67c2425790cc06fab906e88d19e1842a833843172c3202887ba84406d48267c5432a10c7e4c301fe2878209970fcdef891047cb2ba2ce187ca64f2508ba6b88861424f31a4917fdac5ba07bc0e8fa7074456c54ac1c3b185fe96134fbcc9081ae681b498e7ca73c0494579fb436866cc6131602ed1a75570000616ee27c188c96ae7c8676500fc12c09dec65421cdcf2a64a46abac65e5aa0fee6581853f2b5678086b03b7a202cadfa0032cffe2f18f4b435d3692d0f5b574c5e5195318bd1aa48e1b21a1f63b302579086c7bde821aa3071105d62f58fe39243510ef7ae8739d3ce4619550e4359b5693c35808e00c2ab332f088a3a0b10d90b7c02a0574f91cfa2b4f429892ee807a06717a3985bae47b69f0cb5c60aacf2b00a3c61c33abc067ba2524f738c5388eb1a5afd241c7cb1cf5bdae31f1a34289fcd18b9a27e3be2ec247a3bf13a9cd144168ca078232ccecf1c993996e6099ae07aed7a346012788599393307a91f58933279fd09529c896c1514ed386d94b0644ce6b93944c2c4d8ccf128ac6f38821e383e57a738a5495935933331b6c59f529f0b4ca4b268cbd9a86c707f77c70544b0a388f5d9bbcc59f0ebfd1eb94b7f055c4ece54bd777c2bb94bb2c62f19300a4654ec50afc1b835363084e99ef01cb5bb0d30f185f29a947c6b6a08f69898b8131a5815c3fe7802e8f706998c7b502f5593ea4f2492e9ab80be5ecd5569070326f0da711e7b32e3f1e9c88a55eae480c9d1f9e52e0051c5972340a92dcd4b0d10bc2d2cabc2544d6cb2012c87600fdb9adf7005454074d2ec69844562688e7ba377cf94f18066fa4014b4e2e6af43c0674ca293e197030285a1e71c6e799900cc814d660f8600a86f98b11e12d81082680f71f53944d66b153929c4fac271ee3ad8ff7100324fb9e25d7d30492c34a03c1b9c481951db6f18f1491f81618b664b449c5c68aa063bc093031a65e824eef0a0ea6b1127a3c65119a02640297c2640c4446412deac8ab9cd8f209027b8e9784913fb9fafb5a5f0c988c02a0fa5619965ec946a9df31845026034ffa4665b77c172037c785eb91e9af94bc9a20efb002d47ae39e069f00afd0ab298ef15a767372a0560ac676a44992dded08904d559029cc68041cf684edb9e0c16032e893e4077da89181b4e2f20e7419f94253303d81556c1e6cd8205f054ae87820e85e50144f79d09e585e8b492093c69636de06e9836974c0e1c534519005b859e22fccfc38aa1241fc2f15b0377388879fa111e7605a0972bf420f72260f37b2ae452180856245fa126c58728a48714c1a7a1a384246aa0726c890ebdae0bea91262b2ac29291e533136f3ed089167a585cc57a0b5f705ca36653cb7a303ab14f93e78c0fcf22e81794c437476461333d3014fbe0339c535543ae301dcccde14af4aff828f5da634c8d513f210e4d7347f6613524c7ec02c13e6891eedf7aa9224bf65ca6447e699234234632c86030e6ec2122bd76526f5002fa4982810d5f13b142e1e4c0500af49d30af3571f48cee2568d374b93f1a514c1b9a22033fe4616b887300a983b9810c247ad1ae3ae44b0313df0c5f2627fe97f5428f2881c29781e7d429824769531c970a262921934ecd91cc6170afb956f54ba9329c1453101e479fba5a34fdf8890a9df100aef1fec38f5b36410bdc9aa442e6ad29b0c00022ddfeb13e0f174daf54914bd728c467a2e478fcd48ba201f069335b3029d4d9fde0d4d3828742fc038e696b220731ea463d0c4890a794c9719d3c48ab4efe5208549e44fac5ca5978bb12774ec7c1c804aee0504eda3e839f93ebf5af8ad5476de4db5e1b30ce198933cb5392c4e3132873c328e8665cd3572b41c51df5a8ecda4b9a40b563c989813ff0249c099a8642fa2acc7c7b119fa1ac93af305f0c39ff9910494a137e2955b4cb056153863398134ed0ca0653a08a120c844c0867c324862c67424781b2143e6d2009e7f1861e4d5bc02f167583f4f972a91a702409785e909e5882edcc8be96035ed769653e70b0f7b066a17852645a38923e355e2b72f3776357b21a32267e092229de82d59e9940541f30f9aebec8886eccc111c023b133e81bc938330a25c73c4cd12ac360e165ec0b1e4befa64918d734ccc797e814e75721105c8309b3176328762993029838c80e7c9543819ecda910fe89cda767595c7226644c7d0c58782e480d1153459b297fe386cd0daec87243af283f93c2ec0f4c8995d57a40c8a7b2f0fd111683b29aacb5b14e073c6432120d8004b2607a28225c391bb93faf12a960ba2201bf3a5c661065c51c4f8ea12bef0cfa2f00a49899801c79467ab6cc3da094df608ecf3ca349942f50c1f82e37422fe526527e8245c82fb931eb5348a8e5008206dc46cce6792149651e3bb132f7c0c282bf4ac1f8509d18651f47de37f349119089a649ff6ef80124f0c0d08b5975c66cc5f6e32f28fdcc04dad1f76074cad45b72e069e1ddc9796a587c0496b3ec82cdd0a351c1c5ac426c3d549d40598a0749eee3acca4309a5c79d0cbacb22244df23a063d7e9984d3f77a2b3329adf0910d28c1049cf5845476042657eed44a9159204284acb743c16b809102dd5a55bfe02c941588e0f46d28f9323dd8a179015378af6b29f73d8c79e69aaee22388d3c274d58b93a73985cb17ec99782d907cb9d0532cffa5a54f9ed056f123f1927b21e1f77b5cace431a2824c244d0bfaad61f3811e0983fa049ffccaaf8ae9844821ff13c72253b107ff883f3dc119c1a4efd0afdc0ccd99c77509e61166f2fcd0a3d6ece2c7e45599e0f42e4bd3bf11a12ae35dcaf15d7ce87d9e34797eec433157e292f25fa48465016a6fbe982e5b99826bf8027682e55ea96e99133a68ca99c64cc83ec24cc90b98c4e5b90cabf2991610b9820c5a6628a1b0acc7cb2d68ea08ebcb5669268e06553c161c3bb34e0df0a4da10b9501c16ae828fab5c82940c8fd10982896015e2c38248b214084a5c93a24ea613bb4d7fc34095dcf689f1ae388cc8a45c34f05c9ce2a7e0c8504653eb1230867ecb881e09f85cc41a7c12285380b042d07a3f26e098c1c4a8e508ae7e8d31a904e53fe120e35b0cfc7a53d72db304a630ff0657ecc1a0675f073de47574ad791753524c4d4f887ea84099a9c72cd43b9871c86cf3a6c64b3171f75c9e08f25956a098a83c3179bd232ed38d1f5aaf8f4fcc214d92e4406e5a9025d948b285a4872c2cd8a2f743f7c64c05628023c26b15e4944ac44b5260c11c41c7c9c7ead5eb45b01ae574f626f811803b231e593e8ea01abe0b888f4f7342c4fbdc08f0685cd8e7c824c25957273e529824998d5a89df11c091d9438f081741e6977b0af2279b683f654673007d944330191efae609713800dde84cc8c0c8e60075e851e53390f465b64b7e3c9880396f858314d7b503ccd721629fd8e6f614420c700dc5cabc5016a18fb983e53d1048f13e50c4a61d7ac883c038e3a4e02f3ed622435ef1048affea11c9954790bf65aed8378040271fc0c0290b8b9133053941c6a2106acd2c59f004856f087d8a3ab7cc434101a61e0663d0122814cf8349868ce985aa57e1c45d8006098eeab51f0a10c00dd18a921364b0f19fd0683179cde2f33c458ae4493d82ee8a60175046d7abc175e7474542fb5067860fc0cfed35f80dca1a8af07a0e5b0e9968cc3fdea283dbaf3fe13ba540046c4382cd0dd6ec00f54070938d239a98b998ac701c53c61e01894c1fe408e74615f07331b5988d5a30f140664bb305af43ffe80f858fc3eac71727d532797cd84fe60b805fd013ea63a5b1c80d36e1f21db0529936ac0cf9168607e74547ee2fc4e531d70819955928cf8230e458f801bf58641e2866e4584759a656b26fc70c08202b408c5e96d9a2ff7596f7e9a5d32d1428732b6f3a399e1c4d3fe4005e46d361c8bd5caaf0558238781b1b8bdf8175e549f4699223d9a9e2bf0a25c90c6235cf32ece37a380d713820895c2456e60908b963f2dabdf202386b6e94c54b56d5c3541092c9e04b31280484f32298f7608f66b280ab970264906b00d4cae73838908f987a38202c2c322a2c79be03d39dfc6b14895f53a6cadfaeacf90ed352069301f95a78d5c844d4e5075bb5700fa7acfc912fc1322b38461ecb8f3baf6ac202cf55c00630921536d94daf88b9e38d33af352c30c29c14ef492d8099e3c79a6713010268a1922baf144b2fe32101c50994caa6884f88bc95872ba69a3a6ddf8856a36c6998fd88a658e6a00b428f7546e217b81ae1c23ef0f84562103895ba1f1f9b54dc65ed3c2017c1de15840326a395c057295ac86a1cee32109108205b48525e16e79863c31c655488b69873e2207d13503ab280363cdc814887b156e8050d33b893f9372b4472359088fccae153b6c220eed548b2cb968e88721144489895a8cc7a227f96deca6af32ddc38e411624039ae429fc7fa9cfee05580ac0b419b615870e628593a9e6573c164c09e7959ea8d5c2414aabfe4e72798a90c3637f4f1305d04535ed887f30bd0a87b51596e981b7ab4bd2b2f3dcc115c72fd12bcb447ee1b3e2c0b164f462af05ffca0bda7602dfc151c8a8f426b8cbfaa7b61eaf2e4f76752053047f8c1f20e0cdc71294bd2984be86e044dd0a1f49cde1c08f2a950f11fe23c311525f24ce5c02a73ae90a62fd46757304692959fc805c524506acc358970f03acc6e792a56d5635813c0d548b1cb790462385b2238f349bceb0170da630e19c87d074c69321a0b19fc94074c26ace5cf83604b900b546ae0532a3d781e6a816c2058724c17e2f137e048048bb16af46a484265005e3ce5362920002115d8f358b4a8a610604e7e5630103f864d010745408a2944c823cf59d4ccfd3e3c17111179002df5511f8a7c88438e7fdabab28f35867c031f55e613e482ef55e78d0380e5e15d416f8e4902ea42be52e68d39463eacce8eb11e6a5ee50c794c330c9d5fe65d5c8860ac0a469e6eaf98694a530d93849fb4208d08607cc5204ae63053729e64859ef702f4fabfb1f3396a001c0b09568e25478f274367c4c44126e8546c29f1b6366fcf16d995511939b85b2b9837df86eff4c882a95acae06eca70e4a48502d9ac920c87a23cf1cb556e66ba02cbadd60c013e78f0c06474620db0839b0399501ab56f142a7d3a181e3c1e0140feed95007f508bc1a79e56b92506709feac721d33b34fa220c36bfe385d0251593901ba931e06bdc18ca695e407a1a99ee984bec6c39dd9135e6124161bcd38d36a609a3cbd3d152056443099399b7119809cc9ae42e82308d592876e4071de2913701839479d8dd31e1248ffcc5f190f943001ae7b2892cbb195d4f93f6c4293c69fb54805a7397f282bf2803224fd9c1e7438472f24c5c20fa417140fcf21280af514769222d097110849638a3357c5e55a961e6af0d88b2023f03cf87d4998f5b230041c099f22436719c10105c4fbc34c76cb25c6532c933031861b9c1dda0693113d412f333e0b4c92e8cb37733b3e076565eeec448c3c464b7e71330eacb17e8b038a334d6636165e21f5d59e2923aa17db04f8c4cfdc2ed25d5b1e61159321e532d05e61110c2bc070002c2484067fe29330b62a8f4f76ab4ecb10f22626556a5f65e072d13d9ec808c20de97589f0298fb3982b93ec89ff95cf0e47812401199af0f86af21f2fdae07f61e0094f02a7f66cf8a93a967c323cdaf00c1ea93be4c7c82384cf6310495b72002c04475618293d815eb2f6d6a60ee486d80347208704443b2e44c109ee40c30e8644b75e478a51531807edefcfca23a26b230492cafd36363125118f04d3b687d9b9314ce6bab7fa7ebed5bd801fb0e75981e890c60a6c685c78f66fa7782e47a437d9c3c8eb4c61114183eaf0b707e8d19507ec02c900f83a3c5649146f89bcef099ab00c59972acc0630f30a83983951866ae230ccc3c2976c63448aa90f7ae6400ee0896e43d7849cd269ee2781f7de051b051f224189afc110b40e77506cc24513ce563b5def23254155f428a582621aa8f6f40fb3cac3557de0d2125e693bd46ae0a3666280a38b8803a92deaec8193399f4907355a860a278c5076c33c89369e0cb8d31397556729e3c65cfc8012633cf8f988ba4baf40b2edd79043ad2cfb861cbcc22e1c8df8072c16c930cf23a835d76d4018ad7daa5c50445c5e8725d6698ca5b90fed1164f26291eda8fc098987ba220f22904d6cc401fb2db3ad671351c5264143f867cacb835131890c8f3f0a1c84078b502226022eceb32c00ae2ed3e0f61d61f37752b75437c62fc9987c59177de6d34d07b5edbed57680af4ad7414c80c2888f2592fbcf8a24fb16f4271cab44444d7cf4270f432a6d6fc0c3991f2150f7e8e860b8dec885822df2b8b92bd2cd13c8aa115b2310b863c2e392e802282884c132fda00959b520e83a6353185ca94d3dcea3046e30fec74b66c78a10367be13291d261123c0a7452cc25f0af2e7941c50f9606aa7debc25c364318c7938162abccceeeed962322fa46678022e804fc345f5012ea4f9ab1697cbe5a2903fd521963dd845791193667d1340753285b955ef0b16af20265554f20440094c114774e452936e980c1c993931322aeea7570137f0267b305e4afe8aa537cf720bd2b359b4e71ab6d933d9924c3e0188ee414a25f388e7e77c5b4cb91e282e3e4e8fdf5f89f4e381b03262f6a121e037ed40e1043e69f11db41ebca11498f2064765c132348e2eac510bb311983f6f06025d06258482dfcd35ca7f192cfc9c38941352d3f7c532705e858aac9fc0eb9333393ef1e490494e9742d75b38e3f7ab0a80f90c269864610220ff8baed45ff033c1174528639e0d69e5008cbdccf707ec2bcc01261ca34559009d1c4003ae327dea24cd589c14179e89983c46e20f43069a8a82b944a9ca719b2bf3138b383f884f35d93a40f234833ab8a64b519e81974e2eb70e1f0d4893dc9a21e623801d7257687b6ea7d69a99806df399bec0ca0d7ee8b594511ce8458dab0df3e03d400d3f121f1e6f0268c0df6293cb54328033a0d747be53a04a1eb3370238828b9e9ba87b32c6e1c4912fa0e7c44fb158f308aa2e97732a894fa1d2c1345650f46a7ab8c8883281fab1379abcc51a4ebecb8d0d73089a03473351c04cf157f72490d8c866c200792b834298c04f897c8da3610fa1acf822a81ccd3d085c3d163686806b86d64c8aac8b29090ea19fb58315f024832127f392208449794f26cc01705713403f8c1500f357a202bfe6d30cb70026877f20baf7214994d37251ef3381e219adf13d59aa4f1f4c949137e290e4197c89f216c2fcfe5cde3131bcad0fa50792cc6707cf7ff942f4219f12b9d99ba9f7a476f779155491adb9ca5f189202b82994830c09979f8927ca8c2ca00b00b2b72e0dbe57992fb30722382ee404adac4453094745eb9249a98e8bab1b9abc1362a99c4e19a27c9e7a17844c65c649d0f6094481c8b2e2c06fe40794dc4a50941fb587c4453861f4ab32a5711c7444bd0f1d027e409e32f98c9084312ea9d2f8a651194c3b55a87e652127773a1bf575884502eef840c30369f2e14b0021f9011a3ae55070fb0cc2c8316f6049e1ad521d32e1e2ea9e4e958f573077c375dddd7ab30d46bec4af2f9f0b9e7b33c912f9548f584e541be20c0688f927452a26063f68722816739e9421e3ff42950a88256e4a1e1be1076cc1c6203f2af1638c980f3fb9018e40c14a4b192e208b9dc732e181a3d0bdcc5c21c0b340f12093e1b8f3c10ad079a451ce173ae0270740d1eff2469379ebfd9c8189576e7685952b2916e57ded31f522b68edcb722c0179062e27fbdc89049542a933d52b08fb3e30c2440ea95fcd801b7108bf4a85e00836505e4641e977400c1148af232467470a19dbfcf33b1217f9982c8fd92689643c6961bf865e5abe0483a2c00c57ff00ef20b92523d8125b47ccb9623bff766bfaf4f2ecc2a3752396a8b8ff92298f0abdd0f13165b9b0f010a953920d9e0575b73633404513183045163ea7172c70ca2c2ec03b083f2591a3d0e2a3df31890615e56814a3feb46937f35c6d517a953332017589e109662e6201f752fe58d2793d603e193e555710e6690fe2a69e7c022255c4a9db7dcc9ccccc391b5224f901be6185214f9b143638f979e197b31e4ca770b7600d9dab58cc5170b3386a81cf9c71d3f414d4d7ebdab1a453ed780259ec50406331807c9a5b8183c101a357febc1de373824c3d53018dfd2eef13490087a4898f2e36814e441b9bae5cb3ca64fb814e00fec997323aeb4e75524892903c00427d01ef01e4435df86a612d044a90df9c589b90ca94e9d075206958908570113c986e1d57249c917e6b4c992be90d7e220223fe1b1e60b1d9a948119c1f35fd864fd8d082cfc68e7c16fe984c5c7921ef21f3342eff0e22e67435fbe4081b42c4545a3a703e3e76d4bc6fd98103f8f98019ed742503e0b91c76ca077024744c0f1283c5cc9b9b298c8c0e03c6424351c7d8c1019cc65ae2d6686465f807e5ca4f04472bd32a65508fcc02407595083b44f434f641b696a389d17079e1029617fc5c08d4f616480237a23261ebbc0653412f67504dc791d002adec20424f7326cc7df70f4c03de8ed3017b4175ed8ab3641379e4898444d05f8210d8c2c57480390961bb57cc4cd0874e24a558ee589cdd80e33cf213411f1281cc072d46d54ced2287d639ba947730c5f79c691d920039f9b8d0a651c6ea9575ea8656e4913ca71c1d01ea0cecf730af6c624832a96a791c0f054b20f7f468f4ce43fca3c6a1583a2c048f85561829049f8358e03cdd8d8cb79e46046c599c84347bf601463eaed19f61eeaacb91e9131bf16a62e2ba1fbf17288289c95daad7f9343c633d955e07fd570607e8274e433dd90f445d6dc87c5acf983b060ffa07498a19005ded1dd10e722858de71220c2fc2b65c493923ce533e21dd388068a59651785a7b3b5c4ec41cc46fedb93c409fd59f348659c602f1fbbbe118e3aaf699ffa297a78bfa90ecff164784d1b66ec3c98843a66293f751f486d68aa2146382654671cb889925bc193c42d0c6ae06d2af1bd700386cf7314271b5884e764f48299bd08e0793a5ec2048db409c9c1a0c0914140019926e8b440627226bc191f41cc374b6c16030849aeb049391b61880ca5568627f6e38c696058ad17a1e7951fdbd0bc9c298e5e968c3acee70cdf5b11a2c35fc579e2638cf0fd5e88b92f961d7210078cbf16c1f432e0644e1fcba36552fb03646c64e547c9649408329c2f9d4c454cfe98497a983273f90af64b66f8c8c1161dca71ae2030f5d8d07242a8a8cfb004cb03b23074358bbebcda26e8afdc4c7c0f45ec8be153ca1f2d795d40190d8e77c949ce6325f6b54b83df04a18ca79251e6f31ee4b9a454364c2b066cfc811d420f1313fb3566331589c8f438fc1c5f95875df951b212704ea0114f05581fb20a82ee9e4d728df9a4d6d98798b5cbcc03f4e3b562a2b9ebccd707337b946b99597913af6966b1a5c953b872e07f7ea55c409c35d77908dec0ae0eaf81a5f1a7ecc0e60548719e52aa553e854a2e2ff0b6217b0a25c84c90a71770cdd0433eb3c50f30b9c8466e94830bf00ed17559c92b41e5a80c3908a720c038494a07b04697dbe0c8e59f86b8ca7f5674f82cb152381a03731e123119ae2619e2f71088e56a568e4e05c923b7b9c5f67b1449789742a4df03717a2b14b0fc491be3d55c447ae006e22b0840e38b306a11b4f1eb4c26b2a90dd638393c295dbb805a8650ca5704fc0a0ed0b07c49043800bd14ef38f2ed8599600418cf2f9278820e3f7e2fd796ffbb35e7c12b9bbccab0c18f61059b2572d8f91d9226dfe528e74782a97818bd0cb89f2446790426d74f95d033b7f8fa731474ac98b12471c931524540342304b27902cd6d06fd077b842a38018ca5bf80a146fef528f51e965a8dad7020fd8fdd999f42a5f10220fcf89c071b5e0706e3b730e7deec42a7fc416ff148236ae426b5ee3c5c8731a6b10b09df5047d6cba979f95a17a4bc9e1f89ef9227c59370f27812361fdea100a91c6613b031577f66ccb630594c304b2a3d164b6f806a6c283f8c181966a03c48b28a372963c029eec41ac0f8a2a3a4ff1b1ea61b10f1335254c744c4c2ef9300ca389336c59cef1492ace8d5e3740acab8ac3a5e1ed35e31d3d40c3737a22acfb1f8d8f51c16147b11b04ef88c340b5fe84311b7328708e8810e0af30c01251f84cd9dfce6e60728a39430cf48d90021a158625ab894814c16157815dfea37b409e1a360206e074302f7a02397c967d29c9bb9d4c3b930b2e16b7426be4e13129f5543472ea1e7c76742e167fafd7afb5f93746ee2c6f74361b1b7b56ce00cf288c8756e86e545a28ec02546102e8c84a79fc1e44b1ed0450cd0d1dd99771d94c94b32c44cb40113f2a623487c81243bf94ea4058ecbfcbc26452d473b76fa435d66fd9b43544c248fdc782d39507219f1d3174133e5316799fe919eac7ca3422e9f7549ed796832e3b51e98094c0d830f53a121b39ad0e51d0c610091280fe50a261c99b9961932ad37843934b4e613431a0173b1c2b2b0470b4c3c9e04bc1c3871f9169bfc29022d1dd5a93e2d3047fe0cd23d305942f34541c947a450cb6b7c44fa117b535c4e90d231c008668a79e5c769f49dc8a0c884b8a23c0d728439370fe1cbf85bfe227caf286b5ebfe195ff80e2f27b5a29785d6de0002d515094890336994bdefce4524be604290150f39ff3c295798afd580e11e69c18be7c06b0608693c07d1ea7f67219aa3d0f2695947f31e6e8ad9ced0f91f0f27994c1bca913ddefb964ca4451e8c2b77ad2c3fcd0e5ce03c989f462e8747c2a372e411319a4fc232b4c729e3c20efa8d495b15c279b593c92048862449fa7850b00306deece1928599395107f3c0740414c554c8e38872c003c1223a4af3b1ce4b200c027fb512b13f873c209987165b202d2e927103dbc043b425ecf170b261762a51c8c5081ef8895e1d994e8e24dac707a476b7ae52134a4641691b2984798207075861dd09383562e09c31fb348ece8030c5a8e3909a4c1f32b4a8f8ace0917e4a998894b687ab00c685ec2053277323ce3121481792404d2e42d41385f64c805c7c120c22fdb4abdabbc3faf2cfb92e988c9f33fcb308e8b8f182f65298149c6264b1682e50eb0c699bccc67c20de0091f5efec31845268e0500321e9028415a69f23c929610200a343eef68498aecc688876b52c5e3437199e06cdc82a9ab9816a704c84a2e808198c761f4a68a373e47722ad5df0812fb9a2119bfb70a8a27aaa5c063d449e56816be98aa1ac5711a98b6d9808398bc17c3c593b195c9dc634168eea1642217a3b1870c0e57a0ef5b5199b2e8b0c9772d973c676b87c7a172f330ee892b55dd31eb6a5c780e3c567c87201e5fa3048c490653072f246283096b889037c33bcb746e2ddf052732477009e353805e7ec8dd0f7782a8d0cf72d2e5e558d94e67865ebed4623f2e2d33de929a2c9f24e6d7f359f0c4f4a2609479c39416f3c8992293840ba489824f867723a4c7cdfaacf803b7165fc62cd8e740b2e5cdbce0ef38c163829194e0411461934c042cbf60eb9533f2dbf4ac9abc31311d89ff559d22ef5364c3afd992e656166cf9502216986274983cc4cdafb7d360c53929d290db146373a72660c6d05a20be86f10c304110d74da0a111f433b0c6e742ddcaa84ab1724163e8e4385372dc889324a6090071de6a5573584b3f9f0639938f7092f4aa50cd325165c0f32972ea9f3962e5858d29795819bbbf795ec2dac45bc19090796df08c49922432027d64651fa4329825543078123368996bca04cb6d5804c71679b9f14fbe0c0152aa12ea8364b2e4be4559fcc5972ecea089086f13ac8b073a86f955723c7c93b7d1072d09cb82a42470272c10e43cb94a7c900756dccb9bb5af2157c8043436f73e4a39fa33a5fc7ccf0562e68d734efeb4a7ecaf54caf4611c6901fe959a928f9dac906d3020e7fde45d317bad0d7a36bb6efc1d42a1bc8d75cd3b2c6ab9842916f2805f74dc429616e699b6b40f74a6e08b1c69f288ee589946748c703f6c30cc60a256fc9034b74f7200980b5a23c614f55e1cbea5f607fcc49ef676c2f53aeb1da1b51e0c50e321619890415da991670c378d99717860865843cc1492258da7e0b3e7840e21784342b8987620c9f2355b421e8219190fc1a18c19c3882707a343ce0b8b2cdcafc43d23374ebe87a7360ea308dc332215c0e72c29e59f03c9df1520e4bf02e5ca9a0655f83cb0527dabb7e3c751156a0c6e899e3730d628e8ca836a0e68fb931785d0f288d686c10d4ff8f2970fa1820626f17a14129f496c89ebb79829c88c22b4f81c380e64550e02fda05149b39889f76b684a643916207d9e13b772313d315e8e0be7507d16bcc817a2570af3c3f5045a0e0b4a099f74638d3b6841c6547e0960b2626b91f97468018620e279207e1e804a586432a13c70f54b02b899cfda20204a16e8cdd2fce54e884639a62070a6ad62c27ec94880db62e5bc301d2dcc332d020f8a0093458921e63210b4c93f88431cced9e0717941f3b0fbc52ce5e694ab8967398301ad7c0c0e40660a422ef21c1a1ac670c442f1f11c6aa6494892cb168102b21975e057a8d9fbb228647ee8032ce01c2a559e4f1c5139c4973f0f480d5a76d1ea927b29e3c765b8c51f6868e0d1bc7d9fa652a347236ce4a3c6b8c96a3e7d725666b372a246a75e57040bb9556bca4770b8e23ee0d0f0d412a617c149ee8355806092c041e99fe8113576c28926738f165141338d3013450a04c8b63afa39432498a896707a1c461479a441545e4c2d223e870202ff0b41e60066cdf99d699779470410e7e03697b75841732c691b5392a3e553b202e78f88d8733e979af8802283de986768f6daf2c36b8852cb2344e17a26ae58980f56f0b92a53cd180d054be7c59e184be18b93232a76872c85953e99cd0805c113205a782ca585cc43082797224098c9aaced76f897566c97878990f166ea34b847f33c21dcd5d98b755b7c5b4f383c0cbf052b3092eac2352e5c4cd42fcf838df295b7823e78d32e8fc1847480fa2c10c19061c897ecd1694ccab87815c6b84aee019458a7225315a80278c5cfec76e0e7827d6f3965a78713d5f6adcb84b2db36562e45466053147b9e9f05a029c3031b5523d84231ff90f09013f72ea8c2b4ae2e69c98c431fdb0d87017b104985e6aedf9a22c049e50990ee73386465e2a6af077c0a8b9a61932b29bd5e43f8e8c7fea439e609601caecf7f7c034530524eb5182133c911f7d04536c32dcab87b3e185261b59d1f9279cb659e14a82cf3be24c3549baf7eb01c649c1b2e41915eb3752f5519091f5c329173e11a33ed3d482454f4b06d19c0389c3275825ea65d9bdf00bc08c644a535e7c1c616c4c387185fcc095a98f92e7ec978c414046828290efa2b706bc2bda790a06227ca03bb1fb4992b3262daafecea54feeb607c9b73a7328e725b8e20b7e8c994556367f6381660524b29c0857f7a8980cf160ab2526175e08bcd296901bc0a9fe4b08099e2590aed784c631a9043bfc9d49a64c427b639e8e0a3593cf8a0279161938182762e8ca3b9bc6a4bc0d7c13ab28c7d1c0c0496d19e57b9c9078234e379e5192496e490dd9170be0c7a398229a2d78f87aa715238370a0e9793d11960d0032733e45c8cc373ddcbc488fd6e1367dfad3c6820fa3e398113888609d845f1979e18ad96ad876568448652470fec50ad531c7e4c8fa5b22cc009570ee288660301ded18ba9e28607f43df70779803974347ced50093e42b1f807c9c09556f7626d15361ed4cb38223b71317ec796d41e176673a98122e20f0ef84cb5b01df5ff324bb1801c20f8665f85bce9d0c7c9b612e2266fc2d698ce90b5118730bc89fc797d993ba50c9fcc3f4e4d9ea4c30492502e1ab628cf01b4c8639ae2c60dead58986f70075406d166e5f5ac6e1e668a91bb608025cbe171e90b48a13385b090ff4326841984a3e10184171ec0a0366f320a8489a9d79b53686904acf5611e4f800440bb58611cd28f23b008a996a90a9159f056283f4f6257d003c1187b2dac90f8153d251e6b0d490e8260834359fd3cd82a4fef965c734dd6ea8fbc11f49d48b1bf84469da965b3f15b00f8bcafb73bcec80484dc630581a7f0a0455620a7cca7c59ae2a2fe50ca5dcab88cf520123326028532851a963ecc9559e69635edafb84931c59c28f13e526c310dc851e0a89696fcd11b4adef6688b89a2acce2b7920242be89bf2c85666b9c20bbb17338186879103f79572c11fe38721770325f7c058541c969b2e0ff3e691ebe922e7f334a5fa5c5cfc640c1994f8a1016d6336146c7956af24bc993a5fb9cf8e8d7925c7a24ce4c610486415c1bdecb0031c33a0fd141f4eb82856821e8a90d5abd931e1731e5c4fc9448fd7652a4e0e25629407b8945d4d314ede42d39a4f1ab5f6011c14ca7f7146dc94d999f7fa24e4d3e83065fe20a6e5197917f3cede96ef804311d0c29b816714c44e8ec313979f90c195edf8027c12290180c45874c9b2d4f09195e810e3d15eb965fde4caeb48c5c5040ef8f222d060f13579405e0f5268ae8953e993737d7ed09e4d4e42b5cbc10e295f8520a2196900313fc1cac3ef2941bd4dd92573d2a742efa8832993080c46469023cf6493d0c74410e50e99095497f9474185eca90ee9975024dd9219be0c22d311d75516c82b0040f19b8495f208684099c4d82bbfe32fe5376179fec88248d93807c18390ee9cd40ac77ba975c96b4080f81c831a985014b0fd9e0c44b3d3aa416f87951daf6b52caa79489e47c14c4d9ca8f214109a618e449073e90c50b1265358f469817c2d07a164290e40717323c9c1a71a61f0c2e7c4b22592f64c3154f24ab4d9ed0a0d12379ac3d270c357c532cb467e420bf814a323c969de5b769d63e89a58da3710893037b6d55d7c8aa6eaa1a55173e1a5577af45d5dda9ea1e51d5dda8eab22d91a8ba44d5451ee1e5d1f5dbaa52c9c6db85f5765578bbee76e1577db7bb572272bfdbdd31fa6e77bbb0dec9edbaec4eb6db85d9edfa6d76bbee4ed9edee945591dbddaebb5cb75bdceaba5df74faf7cdb75f51a1bb70b6fd7b85db6558ddbdd6f5cdc2ed26d8bdb85d1bd16b7bbd138ddae9beea48a6e772bd58d6ed7ddeeba89db65db77bb6e0b44bb7eda65b752bbee86b5bb5deda66a52bb4794d5cb75d52eab6a7755b5dbaaa976fb50ed6e54bb6cdba2a876619548d4ee86dbf8071035fe01abf18f3e548d7fb0ad0abf3bfee16ed8d5f10f640cb33afe11ff4855a47697c9bd02011227e138797ce3e47edd38b9df36e9c671d28d93cb64324eae6a324e1e51364eb26a5f121927936b9c5cd7386964d5348d93c934865b37e9eee4dbbac9d64d16dbd64d6eb845b66e1246375feb2691da35b66e12568bad9bdc689cb66e3289dc2bb175931b88ea26d9f655dde4125697ae46aa6e72a7aa9b74934b18de6e1266f7bbdde4767572bbc9248caae97693fb55b59bdca80aa3da4dba3bf56b934bd8ddca36996c610db749f86d937b25aaefdb26e3649b5cdb36b964db64cab6c98daa6b9bdc6b9b74f5da26e1dd2691bb4d6e231baf4963bc26fbd0784d6e63bad7e452afc90deb35b926e1cdea35a981005193471456936b0bbf6a7227d5a4bb37dbaac93e564dc2edaa26d7554db2ed36aa49a39adce85693db8d61544da22a8baac996d56a72d5a8fa2e8fc9fd6af7986ce1f698dc6c7b4cc23bc9b6afbb93b08a7477124677d1dd497727933bb9d764bb93ab8ab23bb98457cdee24bb93ac46d575276156bf7a275dbd9370ccea9ddca8dec9add4c9b5756115d6c923ac93af4e2e615727e1d67575b2cfd54998dddad549772775d2dd4798d5c975b33aa953562791ab4e6e54af3ae9aac9bda6a94ec2a84e6eb605d2b6ec362eff5a77b37e2debd7baca76d5ca76a7ea0bc72d1c27e1b875371cb76edba670dc1e51d585df96d5c7a4dbaeba85d9adba2dab8d6ebb7435aba66e9bb6b04a74dbb6dd6f9b4caac996ddc976b9b22ddbaa6cbbd976a36c0babc8165593c8e5da6ea5bab6e9da2e755fbbaa2dbbe162bb51b5586cdd5d2cb6c562ebb669eb6e620ba32dab37daba318ab6c49655354c6c89ed7663f425b6dba8aec4b65d6e62dba75b3866f7ebc62c1ab37e2dbb6e65cbb246563dc22dbbe1966dd9fdb6ec11765b76af69dbb27bef576dd9bd125b76a32a0bff6df6f5dbacbb959b5db50bc79bdd2cbc59f8ddec56ba9bf5dbc7e4665918ddab71b35bc9a67bb37d28cb2ee157b32cabf62535bb919add4a55b34778895cba1b7e97c8e2badf2572d5311c23e13746a2ea1b23916deb1edf18898cf71b23f78abe3172b926f71a2359b5588c914734466e55d922b7b245ee376e91acaa61366e91c81656e31f6f8b34b22aebb6c8edb6c855bb2d926d5be411665bb64522dd1656d91609b31bd922912d725954d316b9eeb445ee5525b6c8edc6f09f8a4cf79f8afc5391bb4fc3af8a7c5f15b974f7ab22ddd67555e45e51edaac80dc7ac8a44a6ac8a4455a48a645b755d5564dfaab2a98adc6b9aaac8b4d5f0461edf8d5cbaee46c2aabb914bd4ddc898dd48b65561762391f0ba91cbb45d3752abe946ae3add485465f511dd48586fe476e3576f24ab37d2af4df5466e201a096be49feac21a79843572d5aabb618d3ca2b046ba1b7e35f27d35b2ef555d5723e1dde7ba1ac9aa4657238f28d1d5c8bd263572d531ab911ad91a598ddcb0366a5623911ab9fb34d26df93492553572553532553512deac512351d5a891a9466e563da21af9a2aabb5c976efc17af47948d5757b3f1ba6ea3361ae375d987c6ebaa97edba95edba8d6cdcae69dcae4b77c370bb26db7635b2edba5c37dbaea86a6cd73eb45ddd0dbfc4766575bba6ba5d53570351d71586d5157ed53555e31feacab6eadac7aa2b11a9aebb4f5de1a2baeea2baee97dda8ba2e617713d5d5d5eabab2adab93ed5e5f76af47d8c8ae6c8b7cd5bda6c6bdc2c5bd6e3756eabdb2aede6b51ef755d02d1abbb977a85d5f8f5d32beba7573fbd6aa55e976ecac67a3d1a63bdb22aac5777c37add4657afc9164eea751b756c64f59a44ea75f7e97599ead5dd69aa57b725ea75dd44bd12f5ead7b27d7d68cbf6eda2caf6edcdf6a97e6a1fbb6158eddbb0dac7ee230aab7db0daf7be6a1fb24d8dacda97b26adf72b3a9da97aa7d7da8dab7dc7dc9f888c2bb2fb9771fbb775fdbbadac8ea3ef88df9fad898cf6d5536e6dbab918df992c8986fa36accb78d69ccb76cf9969b75e3966ff7b57cacdaf2115bbe75fb6dbee5ba6ebe97d59bef8ddb556f3e2040349fabf95c1d1b351fdfd26d952a72c3ea86f5dabe6acaeaf555d9d6555975c3aa92555b9855e19755d755c32fab6e574dbeacba53f57d5975b3fa65d5a5abc63f58158e93ac0ab31b6d595675378b64d5a51bf3b12a8c6e3e568555771f5975affac8aa48b72db22a8caa6b91556156175975e9c26f9cb2aadbb629aba6acaa6e648bb22aab1e5156ddef1a27912a52dd6f9b44aaea66632452dd2fbb914875c31a5691eafb6e765dd5551bf7baaaebaa6eb7658dea5e53755954f54e55b645d58daaa9ea1297c794d5c4373ec26e7c5cba6e7cdc6beac647988d8f4bd7c8c6c774bb291b1fdd16191f8fac46c6c76d8c8fc4f8e86e657b74e3f6b86eb83dc26f7b7cdbe37eddf6e8b6aedb1e59b73dee647b4cdbf6b8dc6c7bdcc8f6785cea545ddbe35edb63bab6c7e5ee43dbe392486c8f4bb7855ff5b85df598548f30ab1ed7553d1e8dea91dd69aa1e5b771fd97d4caefb086fe4ba8fedbaeee3d1d81eb731ddc7a552efe3115ef53ea67a1f535703d1c73e3f7ddc4a7d84f5117eb7d2d5c7e3ebea63eaeaa3db125d7d5c2693fa98b2fae86ef845eaa3bb91487d2caefae8aafa08ab447d442e8d6c6c7435acc646785563e34ed5d8f8be3b36a6ae8e8d301bbb46bfd63526e3d6352edd8db6ae11565d6371abae31555d23bbb76b5cc2aa52bbc6f7d5ae7127b56b8459ed1a5955bbc68d6ad748d4ae91f56b8dacbb95ad31a9be6f6b5c77f26d8d7a5d55b735eeb76d8d69db1ad3b535beef4ed3d608ebd6b8e3d5e8d7aec6ad6c57e3d26d5723b26d57e326b6ab71bf49a4ba1a77aaaec6f7d5ab71bb7a351a53bd1ab75235aeae6adc46e35e8d46d508175523cc6ad508bfedf1ddc6cdaa31bb8d7b85d96ddc2ebb8d6facb2dbb86a77b3dbb88168e336c6da68dcb036265f6d7cb5116637d2d546545d5d6d64774a74b5711bb5ab8d496ddc486d5cba7b5db571f9a7576d64556d84b731d5c6edc6705c5cba7171a39a75e3e29265e3221b17d71d176135768bec06d2ba45d6af758bf0dbba45986ddda2b1758bdbc8aa6e3165b7ea168fef768b30bbe31fdb2daeaa51bbc5bfb6e86ef86d8babfabe6d3175b59fdb1691b1db16371bc36e5bec73db22bc8d6e5b84dfedb645b86d8b69db16fdda756d8be9da1657b52d1adbe21ba36d11a9dbe2722d1edf782da66abc16ddedd7aec53eb45d8bb06ed762525d8bf0d1a8aec5bdd7a2db2af55a84f55a3cbe7a2d6ea45e8b46bd16ffd4e2fb6e16568b7071d5e8ab1691ae5adcae5a3cbeaa91558b9b558b29ab1657cdaa4577c3ab5a44ae6a71af6a71bbb1512da6eb568b457713d5a2df2eba5bb98b4714dec5552b55f8ddc5bd6ae42eae7b17d3bd8b7b1757edee741797ae8e5de22e6e58755ba52ec26bac8b3b36aab02ebafb08ebe2aa615d8475511791ae2e2e5f0db3bab844595d6475f18d5ba42e2e5715a98b1ba98bebaa8b4758d54598557571a7bab884d718d5c58dea22aaba445df46b5de25eeebddcda85ffdce4dfde6f9bfcdbacaad7e4dfdeae9afc6375f26fa32adcfe6d58fddbf0abfeedbdaa7f1b5689eaf16fef5745ddfdb7371ca3fb6fef3746fff64ee315fddb1b56d1bffdb7df77a37f7baf49a4fedb30aafff656aead72efbe56b95755b937caee5455ee17558ff05e35eb6e78ef8d2ef5fbeecdb6eadbba7ba7adbbf7abddaddd9d54e31f7bd5f18fbdd3f655937bb37be9aa30bbdd0db37bbbf1cbee756d5d761f51d565f7865f7565f7b2e563f746597d64f7665523bbb7511bd9bd51b72db27b697437bb97c8cdeefdba6dcaeef7dd6bcaee94dd30aad9ed6ebf3689dccb764d2237dbaa708bdc7ba3da2522f7326d89c8dde76a2272ef77dd1b56d7edb6b0561e937bdd1b6651d57577ba6ebf96b86e771f61751b8d1b76db62716f58a371ba6135dddb98ee25b2655b74a3bb3da27bf9ea0dbf7a2f57f5d5fb08bb7ab3aedecbd5d57baf46bddd6dd41b55919a5da64557fba54b384e8f281ca7f01bc7e966e394888cd33e344e976e8a8cdd34d9ba695275d33e5675d37555dd142eaa6e8ad4db4dfdb49ba22afc6a37d548eda67051bbe956b6e95e89719beeb74dddb64ddd966dd3e5ee63db74c3aa46b629ab1e936b9bae6b9b1adb146d53b785d1365d0201a2a61b755ba59ac2ee56aae956d3a55e93af9abe6afabe2af255d3e3abbe6afaaae9aba6b0aba6a91bebb765d534d548e45ed57409abac514d57edee62514de1ada6eb7eb79a6e544d97ae56d3946d915a4d57ada648ed1ab59aa61b55953b4db6eb56ee144637bcd355d5f04e5357d5c977a77def4e59a3faee1476f7bbd34d545df4dde956aaee4e97709cdce9114eee34657772a7b0ab933b5db23b85df55abec4ef7ab22779ab21ab953772bd575a74bbdee746fd7b8d365b1b8d3edee9d6eb74577ba597555d19dba9b88dce84e77aad19dbeaa4bdce9863571a7abdee952a7ac9f4edd9d1e5f9d1a59d5d569ba5156a749a44eb75123759aea74c3318a6ce13746d9563dbe31ba956e1ca3e81bb7aa1ba3c9184dc6e87663788dd14d8cd155c3efd245972e7a7c63173da26ceca27b25226317ddaf1abbe8ba63175db58ac62e9afab5ae8b265b1745555875d1e4abbae846aa2e0aef3e547551bfeda27d7bbb28aca6db45917abbe8128876d1d54fbba87b7cb58b6e56bb2852bb285cd42ebad754bb681faa5d74c3edb245ddad6c51567de316ddaf1bb7e85e93718b2edd231ab728dbc2708bc26f8bb26e8b6eb74557edb6e832d9a2ee4e265b746d5bb4af6dd18db26bebc26c8bba3b55dfcdb22dfabedb35b22d8a74d522dba2301aa76c8bc2ee46d9165db2ba45225b1455912d0abb6d11d9a2ac4a44b6288b8cd71675dbb54559b54557b545f72e165b38665bb445e157b7e81185e3157537fcc62b9a44c62b4a8c5794f56b57348ddb153dc2ed8aeeb75d5163bba27d68bba24975455195555794885457b45854571466b7baa27da8baa2ee56ee15ed73f78ab27aafe852afa89f5ed1655175f58a26f58a2255bda2abaa54d125aca2ec06a2c22aba57d45551b6456a965551571b559475e323dac7c64774af7d687c4451956ddd23badfb63da21b55db23badc2c523da2e9aa1ed1e2568f28bbfb50f588c2ef3ea24bd7dd47b4b88fe87ef73ea27de83ea2497d44f7ab8fe8366e38a98fe8dbea23cab66a12a98f68dfaa8fa8abeaa3bbd1556f77a34b3786d98dbef1cb6e145dba7bdde846b752a31a858fc658a3e8d26d8d1bd6e81185356a6c570d6b14d6e8aae357a37b855f8db6acfa6af4f86a74bf1a855d8d2e5d57a3f04eba1a4d5d8db22dd1d5a8ab5156d57052a3ab86d56452a36cbb6435fa6a25abd1cdb21a5da6ac46d78db21a5d35ab5156a349a446b5bb911a45ae1a5d578dee3ef48d6154a37b256a9455891add464d246a14089098e8ee651c13976f4c7cdfcdaa6f4c7c6322fc1add98c8eed48d89eeee6363e25e533626c27b5d6362df1a13896b4c6c575d2cc644781bd398b84cd398b8572231261edfd825b27ead4b7489c8b675891b08dbba44565d5b146d5d62dfabba446271ab2e711b53d525f6a1aa4b24a67abbc4add42ef17db54b4c59ed125955bb4478f7a1da252e5be25f4b24225b186e89efdb128daceab64422fcb62db1af6d896fccb6c4cdb64422b225ae6a4b5ca62d11d62d3175754b3cbef14a74e395b8e395b8dfb85d89c8f67ddb9598b6ed4a4c597525beef5e897d7aaf44f8d52b11de7dac5e891ba957e24ef54aec43f5aa128fb0ab12535725aac4945589bb4f25a62a71afe812558929db2e3791dddb0fde4477c3f0262eb50b6f22fc6e22ac1637bb894794dd4478dd44bf76ddc4addceaba8929ab1e37712bf571138b7b1337b2453771bfb146377109c77a1359bd8947546fe25e615813e1ddf76a22aabe9ab85f4d5cb7eb6a22ab6aa3ab89cb75bb9ae86aa2bb59561335ab594d6c5b2292b8645b74d544a3266e63aa896c8b6aa2dbaefb886ae292a889affaa75357fbf5f9e9352efae98d6cdfeda797da4f6f57fbe9dda7fd74aab64adda61a6d957a1bb5bb959a45c670ac5b38d6301b6bf88d8db186d534d631ac771ac32a0ceb94dd30acfb500dc31ad9c27ac37b3dc25a238ff0ab37327e5f0dbfeafb6a78bfaf86d758bfaf86d19d7c75dfabfbdcd64f855d0da3bab86157c3aede4ad57535fc6ed7d5aed64ba4abdd16e9ea74235d8d74f58e8daed6ec76b5deae46551875f51175f5aaba49bd95ad9b4ceabd2693dad53b99d44b63bbb6490dbb3aa997ac5ec25bfd63f58e7fa830ab35cb6e98d5eef67b59cdea55c72cab37cac62dcbeabdf6b17ad54895d54bd7c8eabd1a59ed6e23abb5db1e5156c3ef72d5ac4ef71b2335ccc62d521b591588466a37deb0466aed6e78d5edbb6a7d4cae7ab3edaae1b745aedaaf5d57bddcebaad755b35b5d35ecee55afedb145578d8c89ab46ba7ad57b7d5557d5aeaa91aa4ef53eeabd5da386d96dd4dba859551b75aa6ab7a853b72d16b5abea6251a32ab175b7dea8aa4cf54659ad4c35bcc6a9865564aa358caa69aad354c3499dea55c7b00ba3da6d611446f5fbb62eaa518daaf01bb7a84e55546fe5568f28aa518da2fa7d378aeafdc6449dbaf14bd430aa896efb1235ccee97a8b7b2256a386e897aaf44add936653551cb787b3311bba1db865bac4b507c94c1f2e49ec2cb62c9a5fbc789e235b2ea7265db33d57b3d5bf87c619578aac5625c548fefeb0ad1352109610835b532ee4ec6dd8163f6cbb6c977e321511cab5dcac22ddf76c6cedb48f4cfa8e13cf7351b206c1895afb6b89b40006636c932d998ebcacdabfdce75d5e80957e60a47992b00fa78ea9355911b56cfbd1a59f53de1ca5a597277e11b13cb5a6171776fd9942d44dcca86bbd7f0b2562f5cd7edf7ea33cdc8aaf0ebaac5b3d89ea770b9ae71f14cd5f47cf7596ccf172eddc80dd321374cf71e61f5865cba37ccd21d5158c7b10a02c7b55c77aecf6e4e8fcd06cc6e1565e1d66cc0ec462e75726fe3ad02e18edcb0ca1622de40d457d5dbc2315cddae73db164615b9b75517dedbb0865f363635b6a8a6a656dc73f752fd797ab6c549e4cbea649e9155dbda5c3d6156abae56be4bedb7c26db6f5db3336eab62d8cac8aba6d8bb7b8dd3bb7856d1859b54fc3ef5e5b64e9348cc295a1aa5186aa0d158757457e405fb5ec949b77c7efab7e20c6ef8723bae10fc8161512e323ac1a3f7c687b93307c3ce157ef3579a248b7bb8d46d585b71ba7a73e65c67d6d5b62ba912dfa268244fce6866e1b6eabbac9bdd6dd40d896dd835fbdeae4abdd399dcc3385c6d48ab252b85c08bfdb688cdf133e1a55e4b9934b589fecb98f70da3ec2c8d8e8ea731fe17dfaed1979a502b9bb97122ef7fe4490a04bf79fdac26d615417d35675df94ddabba51b76dd7e2baaa4477df1d6123dbba4915dd78e94e26379c676455576f5695a15376bbbbb85da51bcb919ae077dba891ea7693e9dabe18f5c2ed9a17ffd049bb945563a4acda37aa81bbd77999a84865a2fc5cd88307dcae6f5acaaa7d3b7808df7d7cf5fa9e69ba770ab35bb9cf573dea9d42b85ddf732355f84443d5a28aeee4ab96b26a1f8794d5e7706fbfc39d4ceae3394c59b56f78b25ba91acf9d6ed86d93db3d4f569faf7a6e771ff5ecca44f110eee4123edf5d2cb69342bd7038b89d717cf59a67dceb66b15c91dbbd4bf7baaa318eaf86f3d29db26ddcbbb6ed1d31ce4b5dedb7f1daf62e655b225b83a5dba84ee629d597ddc5cd8255ebd6b6bddb40f6765b185975d9baf0bb59b03b69b7610daf2b9c9f76d323acde60e336896ce5de77afe97ed7b64dee215b76cfdd774855af729ffa14f5eb0a5d2472445b9b8b4422919f12b89f6d7b6f9fde4977b752c53fc07a136157efa3da66d5956dd5906a99273f2e743d4111266176bb6e2c07bfaa8c25bcdfbd324f72eec274ab6b32a94f766fe2f9eae309eff75cead36fcf4837327e375ebadf58dfbd5b8555b73dc2319cdf9ee1ee14bcac5331f7627b2263769fc3e1b98f7a6d6d3a99b2da352ae73afdd0f4c5cb345df1324d4e00b0ad5cba53366ee3f4d2edaaef66e1d7ca685b3d17666ba46cdce2b92d9ab7e1d606ccc6ad9cbb5956bd61645bf7c60b6fa3ab61b610b1720351f35cbb25ca6ea3bb91737da826aeab6e5123ddac51cd63557d9463edf6f6927b7112d9cab9bb5bb9b679afebb675ed0cbd75d572f1dae6a5db6de1bc76461fdaca70b284d55525aaafde2d9ab8bf7de83e6e976d8971dedab677706c0db83dbe49cde6b93b93b9b74dce686b7337abd66d353656dbaf3e26d554788d911f96b0eaea64eb6e1dcb38b6555f55a9b2a8e1ee4596641ae6ee6598debc0cd39a9761aae06598167819a6322fc304f4b24bbebcec922c2fbb64cacb2e597277b2b23102ee5e6a19ed8c74fbb5eb0a07b733e0b6c5635b35ddf01bebe3df9cbb27d173772447967daddebb64755ddbeabded0c3c7723e3976de5dcdd08ab1a55d72ed571c9b8af6d65b87b11771f613b7727e2ee438042dcd7386debd2bd57a24ed97646bab62fd80da4755bc0fb7de160bd5d39b865592d878c912aabd6f9b5eb8e7377aa2a5bf76eb9b2767b25ea55d54acdd67853366ee1ee409697ecfe488c101182ed6f2ddd7d682b436ec3adb2adcdc8aa70abdc635b15465525dba21b6e6d6cb69d91d2f5bd5acfd20aef7bb5dedab6777b4de936aa8bee8659756f235578bb2ddad6e6eebed685d98d84db6e2bb7c24f178954537391c8bd6571ef65716fa2bbaf7959a508ee5ee17db79ba6fa7ca13777b6f0b9dc31507525c677678e1673737127ec6ea509b6b598d29acd62bf7abb284be7aa2c607623e137e64be15ea35e5b6817fe9b5b5738f455ebf66ef1eee4126e6b7b5fb67df5c6734fd9b86d01b73376dace30eab88dd4792c1ddcce70b7aad4fb05dcce78d5b5ad0d7ed575ef356ae21e9c7c5519938c7872bf6ac836753269ad6c52033f5bf87cd36d64f5114db6e78e5915665b5475e1336e735cf1324982dc37b0ef6ed3573dc2e711558f7e679a51afc553efdc47f84cf71b9f719b43887bdcf31149982be7e2ecf0f4f286efefe65f57b889ad1b428d55577723fd946a6591fed4a4dedbb056aa6e726f8fcdd8ae6591306c3786f52e9e4365dff08dcf7d6e62caea73d530bb91aaabb6dc7deeafbbbb3f62411a7a05bd1935ece4f658cca86187b7d7622f069c9cdc5c8c93d547f874371bb7e85ecac6ad7bc28910ae0941a8f56914dd7d00de889123460418713762c4b311378df813231e258abb000fe0ee4edca118f100468c1c3112c588bb112350dc089224dab2487445fb503e543da246b48832f2e4ee1b4567b8b861234515c99223062f8f8a349528e8f8946a98dfac306adc18f9238c4aa313884c557254b6e72c4925281c042c228345203bed496e52dcb191a6c8c219003963768d3152f0430f1d288a8afc50254784d31b70c2a1d52bf246402155894030c154a18da6be49ae562baab02889a520051c28097eb88254c4559613cc5c283b6b6b8c240ef5d02700d2913d6c211e01ee4f66b184651628d0f6626cd1bda6189cfc0b0f0479878008bfe569b9fb7b316280e8886255e78519148530f9906289041cdc2b44bed842ec54f5fba0c21b7984555787203182adaf0c91a0a5765d7dbaedf9a2c12d7bbaed996eb53f10e7116e891c4ebda40c511744464e589f69679bbb6154ffed23a2d4c8aaefab22d5e27693e71f881326fc4dc4da07b4433edc9dedece0e15c3bdf4ee576b7082108b59dbafb555b9348f50f44d9a11586fe241832044208420ddec632437f152abcef66916dca6af73cdfedaaf18fed9eb03ec2e7125657cdc6c573bf31dc5ef2dd48cdc2a84e225bb9b63674a72daa640b11bfedb93bf9a7917d68bb12dd55c32dbcf7a7917f1ab9f7f6ab896f6c2162b73f8d44b27a6da132dfa9768dc91a78f0ab65a8b0cad2015157cdaa2d50f5655517fe9b5baec924dcab8f777aeebe737777dfbd6d6d7b7d68bbc6bd9eb2414718ddaedba227dcb2ef7916d5f37cd5731ff54e14c33db7dd1ba63bee75852fac22d5750db9e177b943c700338214390a41205e57986ef8ddec9ebb61750fddc9f703ba95658212b8c355f84fc2f66b6fe083814c6c58dd43eaedc2efebb9bbe7e1b5f05e32de3351846b00b2e26f67aa22dde1b7bd6b8b2cddd26d619db2ba6ed5ee4edaad1ae9b633d2a5be73f776c6bb73bcaef0c3aacbfe4070a150b801de6b1aacb76b3ce176c6297ccf55eb3546578d1a593565e373bbfadc37dad6addceb9e7e59edc26dee8e7a991f187e44f9f1d5c7b6363f731c76dbe37bb62d7c7cf5f16cdbafbb95db3d5f57787cf5916dd5d7dd368cac9ab6283b07b36a7bd7c2c9a52be7ee3260acb12f9cbb67d0e1657db4b87b0c116ed4f0a9beae1066d536594208426d0ddd291dbcd755dfa55be9ee77e3ededb6405f15d9d6f6b2bbaf85df18d670de4659bdea38f71dafda86bbd39928c2358caccaaa1ab9dd54c37ac34be20b777f17ee6c0da3d673371119cf306abd9db67546ade7ee546f3c772bedec8caceaeed4b58377de8635aaaec99805bcf3dcbd05506d6ba4aa5d5daadaad1a55d996d528dbce70f739a38637acb26a3185bbb3d8ebdede2c5d8b8d54f536ac59b8bb9cbbc7b1ad0aab6f9b7477b83456ed5b7144f5c68355a42aa30fd5705eba6e3587bb9576e9666bb44875dc8b6c6b7bddd675e7b651bfefae7bdf8db6eedd5bba9349d585df36e4abfddc5e57f801849044083535366e6b83dd36998c5fa3765bf86d6bdb48156663f70f44999e147ad0ceb6e1f084f5b9610dbf67bae164ecbaaddc9b7b8a8d6cf336dbced0eb61e2446122def1e6b6f72ef5dddec5bd77a993efab57b9230aebe4abb2785fbda237e0a351dd7e7946b073e95e89fa5559b0adfab21bfedb7b1ad6a98637726f23b55bdc695b87c7ddb597e1391242b8b62664536b8bacaab6578dbee9668deafb1e617de76832834677fc78180d1a4e10678a0a27bcdf62b145730fbea969d070a6783b5376db70072202ea59e10ea4028401a47b014461e7c5eb0a61b77d3f6c545dcbeca4395dce51478b3bac8daa52ff0e8e72988d5bf44cf176b27bdd838b7bdd4bd796ec03fca6678a14a8fbe63cee7ec4cbe814d90f7bbb30f1c3cbb62a8cee756dd11c7a747270777072a7dbf997aac274a77ba37ffb7c53366e8967db9bb2714b3c5f77c3adf2dc6efcb2733b4c4d72808048852585249fe204831bd417267894e2e16da540c3005e9139ac905c5a63b7ab6d4f02895b6e6c2e9798165f1e0219e92c5102a90d0abe00ac8cb9043d02e0eeeeeeee657334b9fb7bd91c0cee9ebd6c0e20771ff3b2397aceb63f101c8c5acfdddfcbe6607077d3cbe65470f7005e36c78abbef38e7f4e06cd0e1ddb9fb7bd91c0cee6e7ad99c0aee7ee6657352f71da71c5d0b3ab9b9bb3c353d1c737a33ece4dc7d8097cda173f7005e366745ba613476e1976dd1ad546115a9ba49777f2f9b83c1dd4d2f9b53c1dd0b78d99c04ee8ec6e1ecb1e39c6147a707274727e3ee0ecec8aa2e9c77571767645517cedb2b517d551b1ba9eaa51b88ba6a77b3dbc546aa7a727a358caceac27923e0e88caceac2797f1b6e77aada30b2aa0be7fd6d78af5bcfc8aa2e9cb757a28659d5bd33b2aa0be7a1aabb91f10cbdb9bc39b919733568cce51959d585f34cb4d0abc1624e0f0e6faeaec68c39197073787873742de8f466ccb1a03bf5e4e660c4d9c9905163868b1974787a79a7de9c9e9c9d8b1974787a79a71e5d1cde9c8b39bd197433e0e664d8d9c5fd8b0279322a3ec59ed20f2fa619b740bf74e5c5df109af30930602a60077926578999e32f8dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbfab20c4e21d48f0f51e5499794baed85e4d973f269d33131ec417a45c4554ecaa4494654771456fd149c8436121c9dd0cd1f52d5a10734733d0cc6281863ea54b09538779e331c4c1f48b44087d4f22122cd2772827106567a6eac3ea67c17991d792ab5ed09e15d8c78056a685ca4a7e130b73314eaefc592352ef16265146a302c24f2df2f0896610f0a003339f4a0da03f2340c6dcb249ced576299d4da2043fc001878ce19594df338bd94f99a01f63418ebbb942e4876445cab3de423c023c5c720778d0bb095b99430269ca6d9c287c2a4453bec9df69d6c82023c781c565acccce9f4f64a84dae44e088a3aa54fdaf3e423c929d36f3459de0afbd30bed430ed5dd006e6b00e901e11112be6ac48683e62c3ad37c582d05bd18223bfe1709fcba0c2fcb266f0d6179cc341bb389e480c7ed79c829f5b0965ba1f834c116fae310d822265e10925cb320b3a1e60c53e6fb0f2bb4792df7157c5f1b422e0abaf50dfeaed82233ae1e7330c3afa91260b9e4d4e90d9095199e7d1912babb813ca65c56c5fe183ad6f73c167ee4061ead3f42ae67a068a37e0ebcd590532f368f200ca9f06adc8176c2973a6284b07f567f91a8e5df28f36ad723694feae2b6ee60515139ec3aa2639ed0a14ef9064d39f3121cbd9e63ee5567daaf8824350cc0079ed5b6028fb546a5c7c4c4e8cc74196cae34eb1308d77843c0707e4719bba1fd1e18d59450b2d37452acd8ca5b7c95f00fb3216426f909fb934067441a54ed6a8da8012ce98b8a7066d64e6eb2463580ecb988ac3de460ce7bd78f579215852653d506ebc92a1a667dbc4c1170123993a04e9f0d6811a2776e27d4b8f398f7b13ccf93a8030571c0f5ca510c79198f8e15cf0943dae3373ae6157a30ce4a57c3ab002007d71e9628658767906b5343c845519c80a7068649e20d20714e67af852c37ae45b15da789725c572dd9d1cdf806a704a28960ec64e1cf73321e81614a9f8fca8cbd7b5d9652823eab82a3fb11c8e1426ef684699cce78d8f7bf0f1992c141acf346a2dbb1ac1f719cedeb2a35d6f7fa7ee0daae815e7b63f63c0543524bd2852b7b21938d8275b680ad67ad5eab71c3a9083bc1627e28a89d3d125e08f7b01bc922329af078c8a23d930f64b4c191e4b02f76275d82784c496bf4d59e2b9ee40f24eb1d4e436bf22bd11267f19175b3077350cc9f0031c7f44cd49d692a298e90a82c13b9802650e057899653a10bd141f11662b0d469e8e814d403e93ce2c20111a6016be149e7c33f269d01fcea454a7d72a8c6f03167cf78f9b0746c8c7cb52c1e51d10e38c62ef84a788d2ca437858e3509cd0f0276cf87cd94a98fb8031f1665894fa4e927afda34e6e5c53db8117112569b29221251ba8a0b391d89cff32680c90d69b297fc9852f13939c157f428409334f85534f03a9ff521d283f23a3c0cc13a08da3f9e3e42db2fcfa5ca9e8cc5a4b603c59a0a42bf095e827b819933d5290679561ca7b02d1eb75c499e40f343170213866bdaf337cbe4464e889e78f8c45120c545e71f48624353241e121730442e6fb292a3371886666581029e79d28cb942c10f8132d88290801aaff23264bbe2546c8afca34c9a1e412e04b4025bcd0092b4f844490179687cf21918a4d33f48c5fbaf3e1d961795e049cae0c27e8e299047d71e5a2b1d7e067c1296408f156aa8c05750ceb92eb123dc85afa84e410e9a4e0072cb9f2940425c66e09aacb8b44a079496931dcc220a4a94415a01f44c6c6f4ab75ca5bad141c8f801507a61674593fde372d6d644763d0dc488c31b78545edd70caa92a97cc0f087f6a47910c07878af2b49b72313e4237d3290ff0ce1c963ad26984456a2b216520cbe97d44cec6e8409618399dcc18b3bd6c6bd990f72e008fec065e8e56002f68242c87142735dcc2c2ed2382449779e470d3e6fd757e7654e363c9325b99ed511289eb7c42e07c2c3f48ca28c311d04f8f40230bd3fc32eed43b48c1e98e6841751a578229c5e65094866012f6d99f376001802025a25e8fd4b5f36e373911d0410130cb323997a5efe721658791e08c546f6d004d8f77d8962d6f152c17924891f82ae39df011ce07492703c921e0653441e3d1fa421e7239c89dc8a28be8f2165e89cd237576282e4c74a7430257d48f312700833b060a29f5467c65bd1c0f78cb2ec02be49f329c305d033667724418ed0c8cf74b22049e691277e2e830679b1c994771380ea473580cb5eca94f918c25de6a237f69c40e965b209b6fe8284e52be003c3050921e64462a5792d22469e2089830b7842288b4885743a573e7216265b5e2f63310f8198f36c8a6805df2a49f3ed0d0d130c0213a672fd93f1a85a92d90e8e804156a932e362b8313fb87ef905306d5f8c48c97bc428731743f60354edf9301fecb8053864fecca7d5e3803a63166901f13b8896f9d021010e28538d7f6261fd32678dfc4899ebd5ace2f546286f7e6696ca3401c7df4bce8aa76b94215708b697512cda7b4d081004d5e85a7d311f79c13931245e981a4ff9359338984b21fe0aae265e8b0e10f3141fe49f29b521cb2a82e7b664d9ca7308e17a26b1ab8c3402c525a92979111ad4bc4b2bccac3ae5b99c33389c42d2f8f0144be6145e13be429638d70285d693a130815d5a6df23eed2913ad86832c670a900ce8942227f61693bd0dd2f2070cc43e529cebb618f9fa3ceaad27e3e7ce0fdb94fa4779c1cc556b80f81d1c6dae2a4bf00b9d02be0378864bfa80664e6925e75ae86ee52351323c244f229cedc2df636084c9e44542d2837840e961085b731f5357f624e4f59ba098327141289607a0b24026c905926f92640a90971ad2ece0c54d3643a6c95d4c9cb2b14a934733e2d70351a4f66a1320e5383724ae61468d5c24ca1a0f7660950de0dd701fa1ca98c7387faf824d4486615d7a291816981292e623d81029f36160c4a70001e01f546c30eb2681f9470bca32151c288077a91ae403c2966409be98c9184e1bc1b434905ecfa25fc0b34cfd3305dc78918718ff4247c077b0133f943c607e0815051fa805a9cce651f36b8a7ee52c1b6678b037517c489dbf8795c22efb8bf8fb38f5701f656cdec8467b5169667e5720e4ab954a64566ae68c016bd3c92bc988001c22029529e2d61453120308df6901856004047ecec56cc7985e10123f458f8329028dde13e2b2ea3199a37ecdc11fd392183c0ec3090df3c3947a20338a7c0e2699fccd4aaf450fee5564c994357c32f35242e9f0221f7a7d000c609c0d27bc6f9069981fed129297d008f66bcc3ab8a54bb08079a3aa7c98296280b5d2f07caa0270f01391120fe7ed54705420302e0a971e13cdf0cadf7874ca59bdf971d3dd61b63afb7bbc39387e4b8b0287f345ee81f168f521287178628842f9a13c5afc0caa3bcf614ec17bb9a0ea17ddf273b34c159ed41e37e69b22546f2ac32060ab4c1e7e2e8ea3a090c1a5aff3c20578498687cc08d5074b1401f6302ca930912a1c4f4200f2ab7c807a2b0122995408b4bd5f30f32ad4daf80c3f934c5d2bd0bc931d47bfca1024b72bfa99c905325ccd0308d9872c3d9f92bd3d96201e1fb057571e59f4098c80321920116626b914673a49cbf44e866c631b7e4d72425a9800237419ba90581c82853465f8617c6698a0f208f831434a64042618781638accc629274788016b8fe8907413e276188798a89a61725a462be8300bc9c5c794c3068922f658e8c3f5912fc3c5e4e99e6244e0ee409f1b778d1e0ac86c3be948140668d20ac8211523c8f461512e098a9e9c11ca5009304c7b2175605826a8763ee73cb1414c212e50b58b0cfab9610077466c84cc33672462ed164a38bc04fa912975300d2f17a2cfc64507c8efe8e990d5e66c274b43dd46bcca2e373721c98704d10381987118f0186d96fe2d2c51bb1d96557970699eead2d26193014991607712ee34208e08ff5c61b6ad4013827eef0546b3771ddc7250b772eff583f9d7c3d9cf210c6430e0f0ace3a48ea107710e12e1cae7abb2dfbeab8a1dbc2a86e01373c8bad166eb6d5c33f5db76e5745dbf7d5e759dcc473eba3daf1459b83d6e30c0d8477e82084df767dd715ae438753c8c645f574b772fbb5c7336db8dd38393c97c4b345ae2b87371cf6198704ed8628671be236347061cab6afdf3974375b4343180d721a4a6450955ce6eda5a91eaa67191e9c61d085c1cc198630185e9c613071e1d485296717dab30b112c38b230c7026be1745675d38ec3e1aaea16c2d6dd404e10c373bf315fdc2ecfed6e88dbe559e314a20d87fbd5e8c9aab1512522f5aba6c3534df8b7d7620b9f7b387cf7113e5fad364c379ed0ddc3b3d8ee95c8aa27cc6a57c7c6539fac9f4ee6557852a185bb0ff0b30a2842f8590500a7b093cd09c55d383cd584c5f62caefab88927dbaebaeddddbd3cbbfd6ad13c2ec46e21d57bddde3abdfd2ded2de9249b8570b704b4be996c5bde3dadaf4ce34b7bf36ee8c420d0a0cce26809ae0c57d1fe1d3dd70ab3c9bf0e26c029c0458ee2e5c3be157eff584b53eb60d5f56dd1b9eb026e2b9adebeeb6c8d2a97b6d6d7aee8ec1cf2448c0e170124c24b59f84060e17c1d6abfdfc361bc1924e936dc3086edcdd59bbb308c708005eb63d5f550dee0c821bbd33087fdeb2671040b870c3eaab8fa98aaa71de1904020f1ceda3de83beb30720dc5d68e31c1ad139e1df3e7b50e62e4cdb19670ef618dd38693c5b770351635bf67c5bee186ee8b6b1dc31de963bc69bb6a8bb3bf033077aee2e6c80aa81960677ee2e5cae1bd66e8ca2db8f18bf6f7c2e6f9c1d3a74e8207cd7559f3500e02e4cea7d3cdf0db0ab2ad97d2e5f38e2be712625f8190353eeebaac63863c08701f18c4104f70ae84eaab1b17bc22d2b1cb669dafa6d36ef6cc198052e14d8da1bee373e91c816dd2ebb8497ac6e7331836e061edc0d776fe0670aaa9c29889160d75982406709d4b304095cf8ae2b9cf06c61bfcdaec924ba5d353d971a39dc692b07ef3cd66e78be1bdacd4298ea23ba932f1bf7a11b8830d568440ee71d025067080c099744392102226708fece109cee0eb72d5ebad5e1700351cfce5cc12a72bb67678b1cb96175e71d5ffda2ad4deff8eae39bde1cec6a58b3d0b04e8b1befd5ee5c5b9bde1eacf2c1acf6733752b3ab46aa7f1a99d2cd80b1d3568eb8d4754814c77e5975afef0ded4c630bf1d61659babd567537ccd2c1bb0f55e1181b88fafe692412fd83df16b907ebbd3916ebaad1ad548dee6ef1a7912248c442b4b6f72d049bd20d89e2686b13a14cf78115706707ca1c3e33e047bb70068caffaf6f6a6e7e6b62ddce6dcfeda38b785932ce0bf3da3ad4defac40151867058288ce08f03923f09e11603b1b604ba81ed1f8451bd6182e57b625aeabea97a6745bf555911fce06f819401c6040409f25bb537d64f59a3c8dac2a74375cd46cbb877bc3b36dcf34755b54af77ee4edd9dbeb91b6f1bf51debd7b647bfb7b7332d759b5b759caa4a3565e9560db7300bf8dd4635b56b6b3bbefac54ef57ef1d616593af86d933d40b09d01186664d5a54e22511c2446b0bd38befaf8b6a8dddbf1d52f90288e54dd837bf72e9a88ff769ad2a5ea1e5991accc617d36166a8cc91808176ea40abbed99a68dacaaf559d097bbf02ce8e82cc8061bc0afaac20961f56c8ff1f10c68c8856fcaee33a011d7dbc53b03da99be5a766ff7697878a6da3474664639334b9c6553ee42b64dc667ba6174135b382dcdd567794ec6e142bdddb33ce1ec1d095f7d3ccfde84bb9f39af3377e32e643531d53bf3bf33cf504c94bb0bd136ebb6440e27acb270ee7ec2cd8a3929c646ccd41abfaf4acc4d52bb309b478c8f588261865c38443bd352ba340ec353a98f718a42b3b1f255594dc3dd19b8d930332e84d90d374c86108ddd79430eac7ef76e318c80303ec250610882190ab6ba30dde96e5b23b17593e7ab9e4ae359770a976fdca2a57abb1c4e61ba5955235f751bb5dba6e75c3021304f2e74e3f66ce1b675537d34e066c0fe004bbaf07de337d9c2efb9dd7d03d8191f61f5972f179afdf2e30ddcec97955f2b84687572385258e5f0ab8170bbbe2c6958c3f94a7aea6b850b7dc1ee56f632e37b138fb05eaf3f77a1592fb74ddc282f5f6edc8bc598d887eaa43ebafb4ec8aa275a7abeda8fd79d906ddbf46cfdce25daba6a0e27ebd7f26ae0eec277c32e43f0de48b785535527b7deaea17b1fdaaee93ecf7dd4db0580d5e547986e78bb4997a8a7ab8cae17ee6e6455386eddb3d89e4bed77b6eca9d35eed976e57cd65cb5d2d9717dfae5ed19d9e2d7c4459adb65db95c43611fab9167dbc266b91eb80b61154d7b7b5b572df776befad4737b7b43e3e0864471bca5746f6e7f6ddc1b12c5f1b6934b3db7bf364ec68db7f7af8d83df9db285886df1a895aa169f5a4377170e4f35219a86d98d6e17d6470ebba8df3c335a6968c530a305dc7d1a5ed734368edfbd8b1d3a08877b7be91eb66d37b9d30e1dcc66bd99a5c36c160c59be5cb85df5dde99b2e5757d7c9e13897ac76b7916dd7134f562ccb2e96af589362fdb90b8ff007bda5df66db250bc7b6aab2858bc9a476e117a9ea552e560558aadc5d383cd362171e9e6dc374a7c3534db88f307b1a771e2c25b044bc1a65f62ad32b23af64b87013cf96edd3f03ec2ac3ec2ecf04f23db19c2e5ba6ab73d97ebd0f82287e7d18f8513a6a53b6d752561512b64ab06ac16b1529ab1c2719e70cba6ac5e15421529778fe166aab2a832aa42908a54935420cc524540c508158baa072a01a7fa989d8a722a842961a6e49899da3333e5c1ac94267747e3b086038d031b8ef32c9e675b3c4fa1cae13c4fb4e1abdd73a3ec3e723885afdba6adae5aca8759a932e14b8cdfedd7c2b07ab670ca6af58dcf655185f5d9f7c28d32210a95282ba25efc320bd528141477b773b3502864b819a85aa0c2988112e2ee2adc0c540ab34fb33e6dd9e0669fd84f123c2df2d49a79dad00953272f9d5cb87b0637eb6481d3244e31270a9b88b9d984e7ee10dc6c53094daa345931d3542353b14cab32597117bec90daf6ac377ef226b77b6a909872fda9283b04537f1d4a73ed1d084c2330d4d28e420b76a62bbbae070a6b19d6d6f9283d0dd47d88d779fba9e1bd9bee8993644eb31240d0d8d43bad7158e43baaa37ceb6202c765440b7920312c5313ccfb6579fe7abe3373e85c90dbfa73e5fcdb6ef39845f24fab7d9363d97fb089fafeb772e857b1787db3d85c5167ed5b54e384cd5bd61ba5db65dc6c4168ee38667da9b6c8fe7d265f5f9ea33cdee03ccaac8f324c62fcef35537dc224fbdf384cb83cb3b5b789886c6010fb98ff079a6ac7e37b0aa3e2add7d9e2dbcb26e4c149e30ab1655f8648dea76b7b27dcf166e1be2ad1a6d65b4b5ede4526f78aa9d6d3bb984f7f65ad86d4fb7ddaef02d6ed80c531d4c6ecc30d530c384e2d22ab34b85dcbd869b5de233bb54c3d230334b30dccc129f25a2992502ee8ec3cd2ae971773d37ab34ac1441582787236dc96ab50db7c8edaab530abaaa5ac9a902dc47a0e8bed79c29d6dc3a5ab557478aa0977b0fbed8126147238cf3498ddaebedb313c3771556fb038db86f0bb53239bb2baef55dd13d62fab8fafeab6c8627b0ef7963a6d88dcb0ba7771586c77aa91e7ab9e3b55dfdd42b86e3d334a6cdc9d849b514aba7b0937a37482d2094a1d26797217be757238ce7dd453130e4f3521ab2253b893d57567db7078aa09618daa6c8c44b6a8abd718556157275bf86fcedd7d68bbbebd7fbaee4c4333c1b6169f691c52d404db5a0ceb373413f1996622e6b02caa70cbbeb97b7b9bb8d44877a76d4bdc7bd53eb45de3e03533496eda6fb3413a4304a4a5a5784b71a2fda52a07b8b865b4e1b9767071cb38cff31410e4fc4bd5bd6d4cf7de2923c218041f23101495c2cdc35ebab6440f668e1cb9fb4e5bf6cc53a74b2355eede28cdc9c2983112f3bac21740461660045c00b30b18385c0830a26f4df65558ab8047632d438a0066c10005c8042cb903a6cbd6d82ea51d3349c720855e2f12d81805c00e4e1c0ec237154e77f70c3b8d1577006463010298f91d66b732555b1b72ebaae5f220a0e0ee01dc2cd18244890a0c39858858af42a96a8dc2238a532533448310ed4144078f27446efe9248f7c8c5ec0e9c7bba7f9c28cc10b99fc33d384e0e6b981d5ae39b6dcfb4166687b4bba3b9d92113ee9e9e6ccb9e7e9b3dd3ce8d6cf38849f5f8eef919ff5a3769545fe25ebc07bfba98ba6912e91edb22abeeb1ed9ebb5f77efd5e89e76f7901b7e9779ee26eab88d54f5e85eb8f7c5d2d5c37be1575d37ac1e6fbc461b358ceafb6e1566e3362e5dd5a3dc7ef5f1cedd706b83ad01bfba85ab8f797449248b24d27da15d7dc782b57335de0bb76bdeebd7ba72aaab07ef75ddb0c683f7fbc2b9c8baa2de3252a5727f54ee7fcadf5429f727f5a23ed48382d98d84f7568db6ab1920d5fd6c2bbe6a52ef21d1bfb63624fa0728cedd41b819a033af70b6a56acaea231b9f6aa7db2e613a383923abf6b1ee56b62ed876c69285dbc9a5def2af75efdaeece7d84cf163e5f3d3b16e752df152b56ac58b162c58aadfa25dc1506ede894ba18aa82aa9627ffc38593a12b7ca7b3f19345d4de2d5fbe6551aa2f30f1e34ca2ec883384c28fff8d2223aa4da4a1af5954710a140884eb27c1fe6201a7df28b3470091241c3e830fa808604e89f1167c3e14314cb2e42a9648ca92608e063f51a604529543663c841c1e9e8332252e2c306149a5b3e8683eaa20b9a5b367400365abaf020baf401c331471c6824b18b6e7d2aa0e46fcc12d0cb08295bd3708514b490c4a6d5c0121e088524d1e38022717b2c828d2c3cda240c294c506293f90e8240386e8c788010ea944457233e304fcf00881c0d02d230390324e3d6e071720a7ca88ab38833c80893f7864509d3102e0451f3522e01c8d90fd88b084898d1c3e56675dc54610151f7b9605dd213a0feeb3c28e520756003df161f023c01507eac052454e912c2bcc5770c59aa8b586cc244a34c91c758c981c8068ee5cf065286f22c5466e01142359cad99ee40f334399ae912b21063033d9c0892e4c5eb0e77bfa136801ad4620de0d1c177fbc9899fa2143e6d00926eaee6de839c4654497f3438c9afb84408fad4f60058cda308115f7e54e89216c92112f05a20e85c1d8724745600d17de78713d123cac692770f0339354980aa3a35fd191a21281b7178e248b084006e458f2584623194510c970752fd4f2cd2433eee3cd9daa387a8c788d005f542528f4b88c9447875c497716662c20580549f1146c046442cbc27a09fd84085208095f33c42188c4892d4fbb73a7c9822249ce4183045f17bc44700c666a2a8c1472e267f14fd212171a5c02841071762100e40f32c001b6fa72ca190cc1a0a4cc093caec001253c1fa06cf0335d6548e51dc2e366642dfa9850a1f3033214ace905b2e50506e152d4a00601278003462b0a90d0072c200648edd6280fc0ab875c8254c01c402e04a7a474c90e408086503d0849713213ae205881b3cbc784d4aacb22459607359d2dd2b446f5a09bb630ebc21207ea81a0e54b82200e3c61a7cf990d85dc8cd4a7d71543dacde3aca39a578ddc2c13166073898667433011502feaf96f93ab3fb5e7d944113d3a6b04fc89e5893be5878c3fa44630291e24fcc558089647d1107fd70d76346493bf0c2ff1070ec0fc3b389a402112077f02464e45200cdc6f4dc81014c2c5dd13983770126d7147b4e583ada50d773a9240d5b133e53e862cb525a1cd7d4a99120670823b913f00f29019e2fe8313a907d2712fb230957e0ab8ef2045ccb75ab9e335c9a1e9c10d7718178e18d228718ffbc289ad8b1077149a92708731f71185e6d852817207f14295f48884bb87bd45b45c62ee1a78a9eaf0c674bfe08dd04f94dc29fc50f4841814f7082a866e6d5adc1d0c3fb80a26c17d412442666c02b82700f263a88182fbd956b2b055c9bd8c099c505d7ab91bf02405d49c58ee056ca0e56894741f10cc400a4b1adc05244a711edae31e200e052a1ee0b803a823e4c7aa3bee6493d82f9112b993651ec229b0dcc762d412101f700fba29d0494a760f26d864aa559c3bd0ca16259bccb8031d342a314692bb59a70080056cdc4dbb342facceb8e75f0390505173cf71e420d8a2c73d173becba05ee79c31f4149bcb87f2d34c222d9fd07bd2581cbe3fe5580cd5045e6fec63b37e317f78f73a444981ff7afd0abca0839f7070ac1a36090bbc3fa067b0cdc1d13094390aeb8bba04e5e5ae8b9fb1b3571a800ddddcb4616a2e1ee4e5a993922ba3b9060ba16fdb93b1b84c19600ee8eaa60b380cfdd737080522786bbdf3520e0a98abbbbc8b5cca2bafb0a349a14cd72f7b6322c568eee2e02ed86a91fee2e0c75081de4ee1d1a80a8f1c8dd33581223c488bb57f0c5976987bb4f50f2828f84bb43e00b20e088bb3730f3640515775f40214b3290bb2328d5e80d07773703b5c41525772f0b002a4c2b773770442680737702b7da4795dc7d80192c23cadc5dc00f5d0eecb87b00e20308aedc1d0032151162ee4e86c5082d3eee3e366935f1c4ddc7220c45b570f7e0901a3e4cd08a5d406021188a73771318254159dac46c70779384904e8bbb67545deeb871f7dcc508995cee9ef506a87277126b30aadbe48cbd4dd4c40775beccee683172c0cdee2431e2ee778218794eb55c74fae3b72898bbbf184e26dae8b80b56c6dd1f4b2c0ee81d4777aeb8fb0f5ac40a872be1ae1c49bc389b1214cbe5ee403768dedc2108e4a884bbbf0a2c3becac3c1923c8dd3f4a2c0a686ed02d8ebb3f22b34826189a801cdd3d37b990a04caa0c9022b9bbb96b960f3c72167d99e5ee3f2473a2460b2c3e3ab87bc65109939d06a5365d7177d30e01287a10eac0a273f70129906f68bae4b43aee9e65cca958156543945eee6e2aa8628956172f8230b9fb27db04e1930647ad06eefe79e810bd80203660b6f87a4d6dc456b87b56b5eb8a10615d528519927d3946e22be5aef6e1c30777b3a8ab1b0e87e70aebbdf34c7b0cdfb6b6e2baf3d47338146eb79513e69d4b772bf770bbaddc50b895ea3eb7701f85709c1ceedda2d5dbbbb8ae1a5d572d37dcc5b4539f451ae7dec5bdbd8b6d9155d9bdc27fb19a849b213c53988ddb74bffaa8cf8db276c314adad6d5db55cbad7c27b7bb8e3dc6f8d5388e6eee23ec2dbdd7ea93ea2b5b5b99b438fe1eed370de1eee38d5d486a93a3c8f702bdc6be1bde29edf66f75a786fd5a9bab7b66d52e8b6c5b33dfaa949b88db2ed0c610befb12dab26e1f2de54a8dd6d54cf1dbb7bdba8937bafbb5fed6ea176f7f074e3627b9edba8935abb7bef15baad6ee31fe7ab26e1e0dca1da87a19ad4ef56e1bfa572abae0be1722d16db94d5c773b7e8daa22ddcba49548df5c9ee23dc879ec556b7bdf07e4f63b13ddf58b85fb5a50ab7c6cdaaa9fa12cf25bc6156a5bb833b5375bb580ad7d4d6fdc2ea1927140acf34360f7167da9a87380e30ab5376a3ef4ecfb385551756cfb438761f6f9cc274bfeff15cea75bfc98dfeed5355e1ee58cc80c373212cba1b2eee78c734d26d346abde1de3ecfe526ee736ddba4bb931a39e3d5affa0e87efbbd9163eb71bbfe7eed3c8f7645dfd07c36ffbe24ef82eddb6a8f7be1a7dcfb913a9ea55ee7cf7de9db6acdb0adf75d54298dd6fdcb2cb773d37cabe1b84dad5c962bb57e13d5b16670523ab1a35fc9efa7cd5b825b6473fe172f7ad7dee46eebd9b8d85235256c32ffcb6ebfbb2eab9ae3ab9b7f716954921bc5fb75d12df1636eef6f68acae4dab6c9f334b2aada7693670b1b77e70b23e1b72db29df0db1ecff355d3edb6705a5b64d577c3ad726f8f6d856fbacfb47327b58be62d897b2facee2591ee714fd8beab46b6acdc294c537dbe68b17d6176ef0732159eaef663fdda9455d775bf7b7ba8b01d0e37b2cd1b26cf5327d58d6e778f6dd5e1b06f4984778b3db72dee0987724656658d6ade5085590dbfabaaf7b4ea6e5875d173a3ac7e75f285e356b861b98ff072b32dabd3e8ce736f6f2fdddb6d313c5fd5dddad54575bbaf7675badff86475bbea7398d26957df0dd9564dddadf784c857bb3ac96a746fb7c5296cb75b3ccfedca9d42562bf7baddf3d5e7bbdd163d757b0edb224b87371cfab5ecf084755fab3cfdce74558f28bc8f709b5c1ed30d44655bf53cf71116be2e5ce1f9aaae6ed9b34877f618b6b5b97bb863c73f5ed5350a87c393558f5b9fbb85d148980851022dba1cce541fdf13889ab2dbd5aa4e9e682acc6eb84d7240b6281a87627b9eeff06d78a6fb2daa6e7ba6a51ba9d9334df53b8574a7503d87a93a4cd521abaac1ab1a13535598ee376ed9334d9ff01b23d9f3ee14beea79aaa7db9e69f185e3e499b27a5de3a2da5c1d1c5e8b539fc5f654cf9daeb12eeef45cb29ad8aec473865d1e8c530fe55c0ccf936d5f3e350997aa279caa7bf07ee1fdeebdeabbd96d4cf707f6655b5408a3dadd30ab9e2dfcbe7bdd4bb77abeea596cd5cedda3a8b70cb645877ac8aae7b991fa2ceabd9e29abdbe47b44e3f73d37f1b8df58256a1be7bb957aaffb5de74ee1901de2d5d5a50dd1580e1bd9e69d2986efbb55d76d8b7875757b7bf0bb89ef5e51ef75cf4522df627beeb948a4f0d8b6ee895757776ea28edbdbdb13c27f1b665b945559bb538896bafa78be2a87333d5ff534b26a513d8546e13ed3de55d5c5eda22ffc6a34d5ad4b3c37b165399c49f5f82e57b64d598d361c7238f599b2da3d59ddc2277cee2d775fcb9e694738dd6fdce214b2edb995ea7abeea86f5792e597d0ab7503dd3e0a35135b2ea269ee7abbe67aa77caeaf77c5f7d0ee1767d877d1a3ee9eee0ceb6393dbb19a7f055aaf18f7dba6d71bbfa3d85e71256e1f355cfe5eed32dbc6a544dcf93853bdb627beaf355e1767dd1d273b92ed3f3d57e1ccebfcdbadab8273ca26d729fb05e85737170716ccbc6784b9785b0c770b8235d1efdce77ab69b0fbeeb73dc2274b770adf7dd41b99b6aabaf8d6c9e138dd56ee149ee7b6b0ddfdc2c2b98969ab46dbf57c376c97ee145ab0600189fe59388fa8dee77691e8df99c6e17cf79a8cdd1646b7f2d427ebc6f0bab6c4cdc2db686455968d5db5a59b22d1bfb34e0e0712fd5b578deeb1b1bbb77453211bbbe7d265a126e190280ee1269eac46cfa19a845b572d77c7b6eaf04c53cf1e4396aead6d6d6b43a27fc31da7db16df75d528ab22dd0deff46cf54ee13ec267aab6681adbaa1dceb40e679b91554fb72d0ae9eee08a2ddcdebb77711bdff43c971a79be705165710a5bf86ce1361888fa9e677ba6fbd5c473bbfa6d91e7b974377ba6c1ec7ecf4d3cd77503ac8ff0b98f7ac4f34c63d5fd0e8727aacff7ddbb782e4f78bbd8bbb8d7c27bc373af44156e1b0ecf0ee77e5fb8e199eebd8ba73e5b9855f790e8df1089e248f7f06c1b0ecf0ea7b04e0ec7a9cf7db6f0e9b7b7b7b77477fc4378b60d876787f3853b2f9cc2f7d448f44f4dc2b57a29abebe4709ce78bd2ddc1eda1c2614a07373c5bf81c0ecf1796d3a791554fb72da66a529fc33eb45de3f65e610b9f4b572b35acd31766f706a20a5b9ccb3599d4c2574dd5f3dd6a71235b148edb936dd5375e51563d597daa49381759b72cee1d277ccf93ee0e6e0ffedb6cfa01fedbec1ebcdf3de1b95cd524dc0d3ba19ad4a7bbfbdcd66faf586c857daf864fb562b1cd3bdd9dea7d7c973b86504deabc53b8dc7da787d34fbbafbaeeb445378b77b9fbf6362c3cd37dcec98093cb3bd30d6b76c31a655b14ef140e4d14e178789efadcc4746fd6857f5babca333db7dbc2702a4cf77e97ebaa97bbafd8ea73c32ece74ef77c89a31c934258925abc25ed7c06db8bb0577af62d60a795de17edb24928d4d2d1b68cb5e5768c6a232633799b19ad849ee7ec22a51edd427b2758b6732a99349bde7c9a47ed9b825c2b11d710f6597af46d9e50b67e270f73d3743bef0d715b67072e9a22242a86db745d5922f2a773f65caaccf9059df9aa47a7cddcdfad92d778c77a7ecbe2bb6ad7bf7b2aa36c2b52ddeb6b673afc91886e3762355bd17a9ddb6b6be358e83ffe690afbe6164d5771bf55ddd9fae7337e5eeded61624b2c27512d6d0dddbdadcddcb66f89fae5b35aa1a5bdfdbf18e7fecb5bd51d8039384c4af439a2874d2aa6e5c029625439a81648232104c5689aa64163977d988212084d9d18a7beae4cb353e599cdadd39b9fb2677d794c9cce8c5b405ac05ac93a78e591183bbaf9d6ac575bf678a14a7701bd39d34dbeb87a4469aa5aecc523db3f4c4dd768bcabbb6682306928e6d5518865bc2eace7b779d9155d39d6764d53e54c7c12aaaaec9bf39d86d8970a9de47b8d6c51ddbaaf0c63b613476e1f7b501b7b7db028eedd28d54f5523a64fcbe706a324651bbbdc6e93ea279db6de56035ae8472bb2dfce6a5bbf370333d66a689ef56eae379aeabea77bea9dec7b437ed7537bc91dad5c9570d568967db4e5bf4dc2b511f51bd5d363ed3b36d4d6d6d5b229cdc28aadf74a77bb3af5f7b7cf75af665f7da354e5be45ed155ee2df5baddbd7d44f78e70eb6e202ffbf676a625e3d675b1f796d2e9b7948ec572f7ed2ddfd274bf7b690fb610e9deefdedb46d594ddd36f36dcd06de30d8d831bba6dbcaf1bba6da4ac1a03d670de46dfbdea16dd5bf5de9f46a2a9baa75d9d7c4be9dc16d6ebdacab9a5746f2088af8cb6b6b636742b619578a6c16a9c51cdbb6b6b73dfb7f44cfbdb29eb96d4757bbb7a71ef72f7a5a90db78575caaa315256ed7b371cb7ebbbb7912a7c7cf50bb9e3ab8f6f48edea3bb7856374ff1d5ffd2265d518e8fe9b2b2aef52568d91dcee5d5179278244bcc7ee756fe9c2ef4659bd976eb610f11ebaf7a7913cccb83bbbd537a5630b111f5ffd6287b0946edd2cab8f7249a4fb22a53bbefac54e5b39b655dbdab4ab931ad62c52bd5fc0ee7e7cf58b772b555845aa6e726fbb2dba07b7a9ee5bdbe4f1d52f36ac53357537dbb1c24c87243fd19db6723fc74c8708774f330ab31c8e72dc31cb61c5ddcf146ee7d9361c9ef0ab93e789bafb9b36c81856e396c9d685d9b954c7a56e7b834deab637d235407f65bc711b1b5522122eab509326db653a54655be46691f906224bfe954e3ca7d7746776c3cdeb0a896c6a27422455629a3261b85c91c2e049922241943fd63de47103af8e6e0e2e4509066c42061b2e5070a0e00083000c820c7e582f5db664b94a55ca93a64a91181d1ae467cf1d386bc874d132a54992217e0be0645f91e8e3469e8c17716f6d24d6d4365c582061c182056705002c3089f9ca550b56aa519c2a456254c8cf9d386ac880c932e58992217e3ff8b6d651c34e860b38b7126b1e305050d040c19902030a062818539087f9ca55eb152a519c2a41523468cf9d386ac674b932c5c91121719bc088f2c051e34e860b381423d63c64a8900042820409ca12140090c014d62b17ad56a7467dc234c951224280f6dc89c3060d982d559c242112c4cf5df790875edd8bb81408da46ac21e88001c189a0c119820208c8ce8a09db65eb95aa529f345d9af4285121407cecbc5153e68b96b3294f94180912ff588fe8de8e1b79752e58ac702b11e24ced8c0386090f169c9d11380370162c064c572d57a84675c244e991a24280f8dc8193460c172a664c8e0051b66aea2387998d3b19732bdacc4498814033bb6026618199999900b320315eb660a912d509d324478704f5c133a74d9a3260b65c91d204c9103f17591c96e1a011a3ec459c5b891065c232b4320b6512ca1a949d9519280b506612f3958bd62b54a33c5d92d40891203f79eac46183864c9703580e40597280c832fe8134ea1e39f4ee62b4588182c45ada860b141c1c5070e08080034162bf76dd92d52a15a9509b2c497a8448509f3c74dc9c09c3058b142749880051b606d63dd451c340dd0b162a50900091b6c180050311149419206080cc8007db652bd62a529d2e3d5244a84f9e396cd090e152e5499222cb37d9b7f774d4a82b30f766a2009b9a860a121a145050c0ac8080024162bd72cd7a95aa14284d9522353204a80f1e396fd6a021e3250b95274a8800512657027b2f879e5d8c1670284aaca9a161a0f0808002b302040210300938305db45c9d0aa5899223437ef0c05133a68b15284a8800895b75003a60478d013406c418c062808a136c691ace07080a0c181be0c072cd62752a54274c93202d2a14a80f9e396dd090f9a2c58a94264888007991c774b8234fc6dc5b89350142011d32089820a08180b20163021ed8ae5bb35899faa4691223427ff0c45143a68b95274a86f8b57ca88f1c7832e6de4cac79087021c08406660104040006705fb65ea122058a9325498d101102a4c74e9c3565c270a9f2444911207052dd43003c6ce4cd7001000e801b001142340018005480a00080010000006461bb70c552650ad4264a901611f273678e1b3565be6ca9f244c990bf97e54b873c6ce0d5b920832373233b31826c8d4c4dc3092101d9013200641998ae5a63ad5085e2640992a2417ef4d881b3060d193059a84469a2a4c812fe812c6a1e35ec5ec0a118b126f4a0e11c7330b660cc6c6cc01870cc7fedb2054bd5284f992841628468109f3a41396ed28ce152a549922241e2962ff5a1a3068d200c166f6d23d43654083a50103c30203816ccc376d982a54ad4a64b921c2512c4a7ce1b3666c26ca1027c0264522448dc1e893d6ce0d5b500c601db44008568400b131c24380014001c2bf62b57ad57aa4a75ca24c91122427deec46953068c16d38a29c55442e4cf451a893c6adcd1c9ad6823b1a6866666a0603e30199865024c603160ba66b94a55ead3264a9018190ad4074f9c3669c67cc952e5c9922342fee0b6cf38cc8137834e2e0509b6340e1722e405d92c1bc802b249ecd7ae5ab158950ae549d324478908fdc913a74d9a325fb45491e224091120cae4ba893e6ee4d5c16821e76642c4a771c030e11b7c823ff0029eec5d98af5db662b12a15cacc3d6192d42811a13e77e6b03103c6ccb95071720408cc1e350f3d33b7a3934b41e203da05338fb0c080990330730f966b162b54a13451728428909e3a6ece90f1a2458a13254782c0c9bead7714d3b3a363b1a2580a13223e7828766142b10609ca0814232b660ee3858b96ab54a23c6dba34e951a24282fce099d3865819305baa44597264089097e54bf776e8cd80d102ee8d180a62234078d05021420304c408100340cc2c066c17ad57aa4a81da746952a34381f4d489d3c68c182f5aaa4059626409b77ce990070e1a31e6e0dc4a8040bb30a1c130b36105860118968901eb650b96aa519d34597a94a8d09f3c75dca43123a6cb15294d9010f97391c2f630870d1a31e6de4e08631372b0204c820305c20e081b208c4c18b058305fb968b94a45ead3a64a91161d12d4278f9d376cd088e992a5ca932445822893eb91d8c3068d19742cdc829508b6a6160c2d98060a0c8295050310cc14c6eb16ad56a94475d244c991a24281f8dc99c3068d18605b806199d2c408901769d43b80ddc0ab6ba1a204880e1724005300ec003000c0cc61be7ee992c5aad4274c931a211ac4e78e9c376acafcf2f2cb4a94254680c0ec91d8c3c61d0cb91426d63afcda60e157845f0cca7e09f8650ee3650b16ab539f2e414ae42b109f3b71d8a419c3050b95264684fcc1acba873b6cf8b283d1022e85af12213ef8f2e08b038613822f06670500f8328901cb45cb55aa529f365d92c4c810a03cbdeaf492a386cc172c529810f16b8f698f1a7574bde47aa11821dc703e58d0abac17815e64bd5cd8ae5aaf5089e254c99122427eecc05153c60b16294e8e0489db232fb4478e3c192f5698e0b5e681d705090c789915e02580d7183160ba68bd5a554a54a74c93181d029447ce2e3567c070a9b24b4a932340e0f688f6c0a137838ec5ae14274408d130507090e0c0ae01bbc67679b05db660a922d5099324478706fdd163070e1b3460b24451a24b48cc1a873a6acc802197c2c49a1ada055d141a20d0654017005d2fcc572e5aaf54990ad5e992a4468704f1b923c78d9a315fb45489a22417915cca1fab719823afae059cdb08101d349c1016e43acb552017592e0fb66b96ab54a238557a9468101f3cb8e2e06283cb0c2e30b8b04c61926488df0fa4ba873a6ad088f102ae0d5708b50d1622e06280cb0c17015c0170058b05eb95abd62b55a53c69aaf468d1a05b80f6d47993664c972cb7aa404932e4cf451e350f1b77b75ec8bd9908a1c6e19605090d1018b815e0562e268c972d59ac4c81da74499223458604f9c943070e1b335fb45481b2c4c8126ef9d2bd1d7a77326cd1c5b98df880966182035b0a6c95d90a60cb1ce60b172d57a74275c22489d1a1417decc0697326cc962b5092d4321244598be52beee9c8b38331b7e2045b5a2d0eb52cd49a50ab412d04046a0587f5ba358b9529509a2a394254c80f1e386dd088e152e5c9122341fe5e962fa535dca16747179782565b88b40c146835a075464b00ad603160bb6cbd4a258a93a5488a06f5998567169d3668c674c13205ca12234bb8e543873d70e4cd88d162459b08b50d2784590b6695cd0a30cb9ce5c176d17a954a9629509922353204284f9c356664819185458a2c2647ca640991f5f743169f7bdb0201a25de2067284e3766964e37619b74bbf765df7d2d57b99ba7a69645bd76fc3aaeb07bfaaebb757f8ddae5f1fba5dbfa476fd8eb0dbfa2d5db7f54b57b7f5eb735bbfd46dfdd6b6f54bdbd6cfdd29dbfab11ad9fa15d7d6cfeff8aa7efb55fd906dfaaa7edb55fdfcfcfa58d5cfc8aa7e9b55fdfcda9455fd58d56f5d55bf7455fd7651f53bc2a9eab753d5cfddc9573dfa25d5a3df76f7d18fdd47bf75efa31fac8f7e7bd5473f78fbc1eff6dbc8165db75feaaadb2f6577dfde7edb8fb8fdb6dfba5fbdfd5cbdfdd836a9b79fdf52fb6da5f67337acfd36fc6abfe4abfd8eaff6735bd575b51f52175ded07b3da0f8ed955fbadabf6eb5bb51fac6a3fb6f5db46bd6c95c8786d952dabd1b555a66aabdca8da2a578db6ca5455aaca55c3afaa84d55755ea5755beb1ab2a571dc3aeaa64d5b55595dba86156556ea5df56954bb7855155f9c6ad8aaa4a98d52e5155ee95a85525abddfdbe5bb974b7926d9745d5dd4aa2bb953b66b7722b95f056aeea712be135d64af8d54aad74dba4561e5f95d54a562bb772d54ae58e8d5a898c63542b6156a35af9be7bdd6fbcc6c5fdc6e97ee3fdc6dbe8c6ac26ba31bcdf64ecee643266db649caeed3119c71bd669325ed5ad64e355c76fccc6ab0ab3711fdaae6cbcd91856d978c73f543646ba6d516563364ed7b6c8c6aeaa8b6cdca66c1cef156563368ef5ba6e97888c97ab315e35aa2697f04e2ee1d60f865fd50f66553f78a3aa1fbc84d9ed076fe5bafde0bdc26e0cb36e0c2f779f1bc3eb66d918d66c0cc7f026c6f0d2858f70ecc2f04e2263175eaeb10befd885fbd0d8855d78794cb62e9c545d18a9ba701faabaf026aa2ebc6ad5855376bb4bedc2eb566a173ebeda8593da85dd5d6455a37661542d16b50bef54bb701faa5d78d9c2ac5f0bbbdbaf855357fbb530fcaa6edcc2ab865bf87d5b78bf6a0bbb2ddca69a755b78afc9640ba36ab285932d7c84db165edb166ee11d1bd916de6c0bfbb5aedb225bb885f7aab6b0bb8ff036b6f06e6177af69dac24b9db6708ba29ad8c2f0ab5b78afb00ac3e9765538a9c24b5685375285dd4d44aa30bcaab0bb8d2abc5315868f3011191f61bfd63dc25ba9ba47786ff708c34763dc1ee1573dc2cb7d84b7bb8ff0d26df71166f711dec87d84617d84fb587d84e1bf0dc3ef865976c330abe175dd30526ff888ea0dab7f1a6e5b18d6f0865f0df7bd1ade490df7b11aee5b350cb37bd5f0aa6ad8a8e1bdf6a11a4ec6eef245b67012b97cd796885cbea9dbfabd471456fd5e23abfabd48d5ef858baadf0befedf7ba7afbbd4857fbbd49edf72691dacfef65550dbff11bbfcbad74e3d78ddffdaa6ed28ddf6d74e3377eb71bbf1bb9dd64fc2ed764327edd9d8c5f78bf6cfc2e59367ed9f875371219bfb01abfae36c6afbb8bc5f865779ac6ef118ddff85d6a3f62fcc22a9218bff1bbd725fcc26fb118c32fccee3486dfbd1a8db10bbf46b64f75e117dedb85dfa5712b5bf85ddb167e37dbc2ef11d5c8167efbd0167e8dac0abfebaac26f1faac26fbbdd0dbfc90dbfc80dbf7d7ac3ef52c32fec6af84d590dbf49a486dfd75535fc6ea386df6251c32f3256530dbfeb765d35fef16e207bc73fdeedeaf8c7bb4cbe465675936faab79b7c97da4dbe709b7c61b74dbe6cdb265fb75dd536f9c26af2dd7d6af27577aa26df8daac7e49bb23bf9aeeb4ebee9dec99d64fd74f25db50aebe4bb5d9d7c37aa93ef118edb3719b76fcac6edbbc6ed0bbbedbb74ddf665dbf635b2edbbd956b9b6ef9baa6bfbba5b4dd7f675f5dabe70b17d75dabe7d68fbae5a45dbd7dd28dabe49ddbe7e2dfb168b2afb2635fbee3ecdbe7da866df23dcb6c877f7b5c877af2af2855d8d7cd75523dfe31bafaf5fbbbe70bbbeac36b6eb8b54d7f7dda9babe1b55d7d7dd29bbd737b9f7fa22f5fa12f5faae6bdcf7c2aedaf7b26adfbbae6adfabf6bdef8675dfbb81a8ef9ffa6e58c7b0faba1b7ed597ddeebb51567d5f57af2a7255dfe5baaa6fdfaabe30bb57f5658deabb8d5b7d77aabe7da8fa1a597525aaeff2f8eeb5588c8faf31768f6f12a9bac7772b93edf185dbf6f8eef6f8f6a1edf175b7523dbe49f5f86e563dbee9bad5e35b2caaee3ebeebba8f6fba8fef76f5f13dbe70511f5fbf36d5c797ddcafd266378bf7b85e1fd6e5455bafb7db7eaee97ddafdbaaec7e5dcdaac8fdaeeb7e5f98dd48e37efbf67ed3bd5f74bf6c0b6f17dd6fcab6e87e61bddf23eaeafdeafd1263177de1a4eaa22fbbb78bbe49eda22f1cb7e8cbb66ad26dd1f775dbf75551157dd7b63da2ef46ee23fa6e76a32ffa6e57a32fabd177a9dfadd4ef36ea37d6ef4663fdaac7b785f5bb2cbe2aacdf94d5efbb91fadd70bcea175ef5cbb6c855bfa95ef5bbaafadd45fdbeef6653fdbea97e57edc6ee52fbb1b1cbc6ee5e63d718bb3b8d5d771389b1bbea65cac6ad7b346ab875f7dbbac8b675b7dad7b66eb16ddd8db21ad9baf0ee435b177ee396d8baf0ab5b37d5adeb6ea5eaae3a8655b7ef55dda096a804ccb3b6a996e49852c8cc08c9888824419000831100b08058280fc70342a122093f14800167b420699ee8519063ca1843008008000080000000401803cc79eeb74e4014c7ffd01f2ba028a1725db5b100659ab97a7636d5747342d57499c966ddc3d28792c43a8dea223f2ea56d149573d73da2aacc053163987eb82aadae0fb03d2aa030382b1bb3adc296fc3812fc57a03edf5867500bb2d25fd1e7bd360bb8f072532d3adba0ec88a15e154b8c0e1a6c870274f7d6f54a986ef9104666593b5f2d1ef5eb681ff7e86bd20c8165a903708b678d0789bb7a6d11e6ac4bd9179bb6803956ca32449dbcded04544e99cad8a472a4466f0841a91f028bef290ab43b12d95a9bffded042378ce80ce9545a0d8b59a6031267ad61c018b325febca56c54d3de517fcbc71949e186874c6bd360e94cf2bd496a099afc8d3a5610830d9c95b2bdb74bf6a37075d7e26f8075245431f3d21f3062e6ec536ac831db5b11163849def2b84eee0dbbfdfb4c4101fe9382d428b6c83366efb7ce41ab2debc61860c5fc10d6e0f2219d6a45de76c1b9cff6effbfb7992f6ae021ccb16a0a409c79e44e572fcb219293d8039378ba7ee20a597923da2af46d643dca426c0691e8af37b2ae5e906ca7c70dbd4ff1847bbc8f5eb71afbeb053ca457e1f7dd3c20a80217918aac01537b3c48d61618c3ba024b831bde01b8a51fb23ed48f50af3e5e28452ee5990b6ccc69546b5385f43c099c903211e455657145551693b7eac8cf81b23edac20c9ca5e11d988e98ca88387b42580016159affc2f599d651d93e1524d60b913fb20e678c1738686fc09892adedc3952f18ff45b637296fd622a9cbefdceafbf2c5fd644a5682950efe8314eed796b91dedfa77e1bd67e413b4e604716ad5c065bbe4b6459987d3d957f527ac1bccf721bd964f352b3a1c30c8ca829c0c6875c3c24d087590648729114c858ec6ed9057f8e068c95c5a7a0fe00961e005c2083df51d25c263f0ad06f3e49162004151ebc233dfa0726ccefe4006a1a19280a0a4c6f1dc1064cf8bb7b74525f049d8e13fefe46e8063b163c44b40a5e165a732110091fc46127b8370d23d05065c188076a4ce9e6b621e27c24a19dbd990abab6e5b62c6d32ad767cdd1f83ee27c6afc0f6bf756eec3178f79a66a16a5bf8c9cdeb7d413641b5eac122091cb63c7c6bea37c164f386e357bcb9e4b88f490720c514fd49ddde3dc691751866bc9034651abe950d111d4f84fe3ba6f091d10c9a034ec1ea84e3bc4f7b9284f019d85501446ea6a78818a7157501a49ae01aca5d586c7f834e807d033d079a538dc58618e9f2af4014558c491cb09c8f3e5d17051b77b40e8ae55cb0afe4c96e6404c34be3fc012ff52311057896024f1806f68e9a5aaeffc55b697f92cb4a0c66b4b6714091e3a6c0d377d0a9e1eeb52cbe6fbf614b0a046dfde2758a09ecd39bc8eef59f61cf8bbc195ad319a3c7181e05f5e19c1f0975a2083666284b5aadb03cbdddc8e6903f2dc65dc9a99dc9ac55d56617d8141674998f5722a35a7866f56052d2f4383e9d22f6063bcc3a7495452f2bd48f77064880909cdb0d3e09d754197b8f66849a40a5ae0af02c11fa72978e5a0031e700d293ba47e846c5cba8f66c3761e1dfeb51f054762ec8a8310432cc5cc5f8c065d59fce02ac12758103c167705e9e92e35e122352eccad39a324b11dacd5ab1f77f750dbc01feb70b19e972722c39bd4966e5727e6e3748fa472a816d01845380a0b42c7ed6dc330bbabe7d9501a30878be822e2fc6a8fb3684b012a3af9644eae5cab77ba7bd96dd8cf446bff4ec96eaf0345b638b36a52f644bff50a9154fc683fd06bf04bdba7c01ce18d93d37ad6f33cedd8813f70c5deb5b2b974b7cfc84eee3c1631733956c1fc6e04dc9463a5cc99c4558e1945093c2e69352a08698164f3b8851c79d6c9df3ca419e87f12106fd02bb7e84325e68f064e503db5d23a233ea310f8b0df3ea1602e13e5c2dc506fc559b9f58ba576fc77c405fb3d0582b049edfe8655c516f9039eacaf28a980f061c685687fb3ebb91985fe07f538725da23d31adf2d1020cb130b73a2912a410a071d88e427e88940fac73f2154a5cab28dc1a6c7cd8ca9c1ce2ee463791d2b0ae0b5ab5d8e1532c023ee027d5a8e94190967e381ca28f449914af0201c17dff7393abb4ad11865368d4699e3c2c20c6dfb4ecff6b3063aed47d5aa2296f28228a41060b1401ec1727ac5d6f2f429292ca3dea235ad7a2edfbfbfc87e84f8847392840aeea575c7eeae79860ce6e6dd075446953fdcbade8df0edde91ee4bd83dd2556230adf9ac68e797017cadd0c6ccfaf9c60f03aa07a317e3292c84fd8668c2591f48659a554e97453212c8ba8ff428a9f5ed5916173fd7b2a08f743a16adb49f0adc0658a8b81a91bba480c206dc6e5a7010e0c90ca5debf4e273ece999ce88eccb3c8aa5795b40371f2b6df6667e781a8c1a47283c1c33909b0220eb129aaa18b6b6912b0564a19b54d0737a09c0210247c0429a48339a1570b415686cb5706984d86fef535c6892c695fb8ce2061e320542f2e8ef8bea1985542e7c39cc86af24b73be0d451ccf93281f9d35b944e57ef584c0a33c807f81da370ab0770902fda3791a92164e55b7b982e9b1ec1701335d333eb61b7c0564aca231b4034def616e372915e1be231e55592231095bc7729e21bbafdbaa5de08da0a02b1de0afb3752242ced6c10010df0fc18f8e20477f2dfa7d7fdcfb04e39d6c0dc93d71613680e65051f54761a273edcc8a77f30f72f211081c5f4d37c3a4895205ea0c335d63574acda6aeff9c47015ebff9027811b77bc6c156edd54082016bd4b3f0f271eddab630aa1cd0195c0b59bc961e33ada1338566e0f4860f9f4692b8841b7ed388bff4ad8023c1f4016a104ceca8d6304332830dccb3118da7ad44018bb1e936a0a045f1d645e0f9f241c4508ee32cf8639180eb45438c2d7ae7311144f0b3fa15a3ad0ae9a3ce89f78daa867142877c54cea4b5a81095426a4b846ef05525463fa6b840d6b5bc43a26e9e075497e94fe78522d53c7918b3828d989bb0b63b3e5174eb05d8aa800c8fef275db4268bd49f05aaf64221e0560564069da4eb873fd95afcc38f2ade548b1402b9778e1b14fc9a6cc96f59ea622c3f7beb834469b83455babeff0fa1c47ebe436ed455b6baad5187acdbbfad376ab91322cc9c4194abeb08c073d8ff1b68057919ca7882c886361f2be1625b6e0f8c941665b780e918314e589828243625432d43698b51c688e2a16af1c478cab43d99d5fd1747664e4fd4ab780342ac47b0918b40a41cf412f5de5475c54d313cbb19e9407ef4aab7668448c5c54d2b979f59cb32afc90fb301ba1e9491208ec66ecd1436423b428abf08a410ac2232f0bb2a872951b0e0327a461807ce13b207c3b914fb9631d653a89896d02f1158e195b836230a095ac5591ff892e3c42b5aacb6b6d6b2f381873809092dfcc5575ce26a675c2e92b98786c24e3323460ab14a532268a01dc1a0bb68abf69720dfe5f3af4fbfac08f92df75a4f5a7e20b2411f58894c73bc0b83520504ba02e0664bf63f34c828ccdba8111e511cf4bae7c33a6a5c5a47c026b4b3f291c726ebf40d45370826d4e60a1c0159a3ab2dba424360164dcfd1834876464107790154e0eaea5e005e4916ffa1b104d6884a0a3d44bc78fc7173000e1ad24ab58577707a22c039c3c5ca1eb9f5870ed48062c9dbaa9da384365fcb2f00621986709ce786ab59ddae8e9901cae6e23e4d821f21c688d7224682d7017dbfde9d655d324d3c90437b22113ec191419d2b091ceee522953c2796f1c6d29b22dca551dd858e50ced0e3f981f1579ccf85e8f231a24ea8cb8246bc6b916019664b6c86c5b2ca04e9a84afd7e1f4177c878de395bb19d6e551d611c84077cfd9013eb71b2b45331c98a170f85a63d9bcd0f0514b22219c428f8c1ea9b6fc9cc4f6e1e71ba0cd0b3050dba9de8a3a39c9e8964dc93d0c820baf7a7dc2fca1b442b81d8030227f9950cf68842e3a35f9d74eee51a7452182460aff1f41cda88f5b62cf5d7fb6ea63bcdc08046fe751e06fb72cb6683092d24f7ab20f170fb30ed215a38fe454e6b01a599dc1bfc4669831603c99c65412fbcf945c3c5e623598ff959644c659cf15d00ac0e6a5aeb677c1a865f4280e008bf54d60811354e795bffdb217a113079992e8458d09e68c1238d5ad2a033a85f84826ae0f898f5dfa9e2f1a8c42bdf0744b91223b180186cb9a38e922baf4c87090826b04281b00c0ad23b576cd701fe73594540529aa567c15871b8922438dd28da703f047f8422b0ef8fb3701b516df44093bf60992ae089539a22a705181565df39a00c1baaaff8acc93764950e6d7517afa838fecb8409f9ac45352179a57e239b2be1b037517f09106426e7f173e1dd788330973a81b373e7ee2be1dea2e91703d148a2e89374c40890bc81108f0c75dd8f897011685823b622bb9f3fc302ce93a1a1c469a7fb09e8f1bb9beff4f978d126f0c6c264d3afa52c4811519420507227ee2b573a7166f407a3e13ba61e98d987ccc5f4783f5e1ce70504128eb302281b54251c9bf93d2bc78f2adf631399ad884f16384bcd92fb663914f8191b8599a151e596e9072c8a9ef90e2ec0846810e7fa1d25f4573c5e62ce8f86785a9ccfeadc157591bb1f6e1b2bc03e9627a6000eea42251d9844a58d79a8ad593044dc6a3a54ce7cb92440bea9cf26ccfc9eac02d3a51820e61675a037a5531080d0db82f710a986af98bb03f70770f821d501e27ad8f63dee41c7e1c60fb6bf2f5ebc37d11cc900e9718d509e2f192f959158c01d3bebc707773b4acffc3173bfe10255cbe7c24c99bdfaf06d10cceb1beb62955afc41cd7a0463d9c442ced6f57e1437b58e42def842c09c1448ef62ddff4ea448d2e8411d5c6f137d783281887f5734208705c50e93d1d8fb9cb420ba2640fa1c097a85f5a0deb67ce1d3b9a3ae1d5b59cd18cccb9cc02ac0d4df1655f9990d5012143f58b3d1bae173555ead81eca3dfb5ea4e245f20394495cf2d68857635d8b8c1e5916b5db9bd75d4400d48c84029b9d3c12588fac26fb33abde6e71b492133034654a783cb50a1c922e34d74e88e9a5e7387d1053f83b7e7357590b271e4b173bebe3e7f84301a53105bdddedb30aa0cfe6dd43bfe5a90d5dccc235fda63d1ed2a6723bf017407ce908d0984705c2c622bb45b8478658df61b1af17ca103cc68d1c959edbed9fbb5d1b584afd5b57adffc9cf2eaf875cdba397f6d688d26f25b17bcefa80ab2edc7bb88a50424d366359a059256241fdf3fc79cccf3a6da6cb352d02b0f77d82f23d90efe9c9ea503321e709964103963c845f81e5ba9823626da8021ceb82fe0cb328e193fa95ff25e70ba83af799dabfe31affdace23911eba548fc80877d7ee3d3023366596c2f7e27221fdc8c5d952f9205f27fa5185439b1b9d552a43a4946eb9867fe74d75c8bc0265d9739165be331faf91aa22d876824683209fd7982d66308f09a86561d19bb04dd9851f4d6b073a61a6074d70be392a50c2bf97f62dd3f9b737db3101d84d51e8e931873c5a0301c53959b03a9fbbe1c31db2a9809acbcb490e0acab041f5a44723efaa01f14cd3b6a36094c356dad1436af7d0678c2f7d87516813a4d8ef05213b5105e66dd8abc1a9521664a249da22e6be50f9bea79f21731e416c277ae4e5d58495ca03ab845ec247c7acb836ed125df2922ccf1daf67ca45c0d7c4841c28a132f87f71c7457a803f34da155bc7ecb9a665686a251010e8bdba02bf98cd109690dd78ca57eb598485abf761b08374cbd165c985e5fed28f073706fc42ca2460d6c4b801269b44413ec907939e7896a793324efdd9a636f8ee83d875eb427c9b8a0ea45b81bb2c5c3196e9692f0dab083295032751babbe8bc985c19de8e98c9d3ba8855bfe3518c1460c60430ea9c00d4261ee3d24e9b3531e25f47efac6cc1d1533fb27fc0b9f2d6285320fd35e38c09331de39084b60a7cd716c24641e4184ac70f4adcc97325f11239eca0d7e2da1a144bdf382841b0188e7846016303453ed342e8bdc4988dcc7ba9110823f546d2744fb86c82ff75fa2a54abe55b73c97e1a149181d33ab6e96a7b952632e4e8c5c041916927563cc0e5490352707a5f20304fbe1f03ae4966a479f35991bcf63f6f913c26b5d788c25b11a20993b9f59f8e9042ef2d87da0eea60d2be24e9e61ed89602e886675534de2b100c56cf21b90bd7910823f5dc2d067d16c8d55fce3438304c1a58a28bdf5efebfa3021b39238f2a0a08c3577af91149de7ecf24f27a2b1613af2e487a55590f62f60dc9665e0ac175a3ce92171491647b5fa0cc27f8137058dbe815a2205e32a87eb662998f87781554ca9d537bc206cfe4f8af2304831604b9d3f00709c0c614f04b956dd57b52b235dbd35c1ef26bf0d537f8becedd8e66e10327b4ce1ae413ae869967a7a76b14fd84564f22a0da5911e19bb467858d7bcbe20dda73608c5b8cd6d0bd1bcbb62aff30afec31bb6afc07cf155bff6aeb3fcb0c40e386fc9871a2f5d4178d65e8d4af86e7469c2cad5253fb7aaeed08f7354c13f6c282e8af14ee65e5f2c4cc0e65e23857a6a4080d329f7af4b33eb89084242f61954eb9c3c90ae9d4e46dcfc06fe9bf1f071b03a2ce32dfd66b02a456250643b66e2ee39241ffb9c9709e65b54e2b4aaf24ac94d3192f91a91e6dbb2737eab7707356bfbd7b1fade172ef5d41bb9318c772e4b50cb7b1fccc716f0d1ed2782941f4344ca2037d75b828d257dcdfa4449587ad881f4d53ec1dc8b7708c8adcd653021b118f2575c50d7c633ea20e65d210af7cb27af2f166e6b4792cabf0d87cd3b2243c8891353f5e5bffcd656ec50c5e185a57d37df07bafd1f4fb1856e6b340a883e9f8aa7f808962e4022bc76f210f8ccda9faf696549e967c6b229185cd6647e87195eeb2613e889a82cfc9e7fdb7f8dcfd3ba3bfd507ce7c7808d39cb1737b67f33c8d61929133d6004365f637366cc456a0124926fad330db5a0b20b9f353a470c7abba5502d45a01cc0f00d34a14f5ffafa143a0e8dcd48221ce2f902a5bfb52665d0d110c30143b24912945c95d6deeda47ed929a151d85f2eda3524b4d04f784325febb3db9fc415c7508922f2132cb9ea6a07540d66b2d00295aad4370873d86bc799f93d6c66c0e17ff0c50c90ef32a8fc30038d1e469c97885f033e80aee0c2132f88ece6a7f7162d784560652d82038b835cc60bec7fbb207337a59fb9c390e247144fff95bbea04a1aec576420fce58001aada351ea7dfc2e1ef65b77ab58bf1908dc9822ce333a28ac2704cdf5553038abe6d4d57100611dc6039989bbc6b58dabc3f50be666a8b4b36cd7f0fa3d649d17df185cafe34cb5ea911122bd94efa393484be45ec6e75ed041a15c99b4aa2e1b6185507062b1505ad232abe2fc3e080d43ea31271b2bc2dd1d0dc13d6470210e9db57802d8cf4a03b12e882f56412dfe0fb9b59020adcc8c04aa6b3e30a71a9425ff099c605c5e5d3c9fe54349530109c6df557c274f932bbd9200e8382330910daf47f1cbde1f1d5bf163d41fd940da2dae93317156c56880027f213308880b4bb62e5daa44abd663be5c6ea11e526ece11ffd681e353839019fc176dd62527b68cba85754c7510191d373d108773d9e6a8a6b9e99c16b55a7045611f05221fa0b00c66629621cb87f0182e4390536d015571235dcf6e2a96b12f1134869c19e21a4aea9aedeee33118ccea170a9eaca15de65bade13e1157902d20801f38f45400f43246a465ff356baf3038df7079b112aae867205ae78dbe0877f4d451e337055247d0bb848941922b9b9d6abf5e741fdfe31a93615f9d810ee7a59036710c81b0456096e07c8222a0548fa83be5af4114db0482e9d4cae892177c7eb4d4daf374f129ac8a13271feb6e3e329df119d888ac25a6928ed438ae49ce9f10d759faa883da2de1f6f441c562f0ede484ab749ad0346ce6b6041fc5421f37d5e11583ccd82fbbd0010d0423f22bae25e017e0f82433aac6a79dacb8436df92ee3c7a2d5a03b3625fad0286f132bb0fbb07abba6754ba9475860737cc3daa89f2b7ecbf5b7dd13289630e94801082aee8507657fb68a0ec354b84e7ac7f4784751679a7e0844a1d91ae6c5766789712a8d451132b6876bd01c57f25a948ddec8946c9a020035e57089473f1d1e638b95a4d71189b207a4747b1f41d9cc39337205cf272efec0f4626c83bdccb882ade80f4fe92c1549c0a087c18e25b1eddf59cab622a4f743a679e9261d6023530e8dda51e11b8844a39ee9fe6cec244a29bc2455851fe2a9e1890b3a6c466c39cea793fc618f7d090eb08b418e53507d29cab3fa5acdeb19f3da6e705801375e1deb07b93b32b63ce03fdfcfd49174e50e2a56f9906e6122d83da8105b43677aa8b0f24c3fbcd2e19f137b3d75e989c0c5290e5ebfbb35040a1ddfa9721e9b1026498a8fe9579f0e3e9da5732354331a7d762ce10b82565610f444dd28c2f4437b335765f53b233d8c9c7b7377a637ec9ce0d30f7732f60a9cf6a4c235a367e4f3cbd49defc356cb40edf090cd662aedf6c9ae1e9fa9f2957907e9c58cd4e4e57d0073468c0b9a22fd60588f4247dfd01e3b6a76540bede48dcb0d8d7e0a143183d6a75767514ee522b0ef0acf2b2c8884a4d7098e85a8b02ca6be2dca80cc5c7b4a2ad5a9185d8fd6df82ae362bb2e125fb218fe852ba9cc146ca8bb03751abcda551eb954340f156fd19c93efafcb296f3cc93d59429a649887fa0d3483c048d671792f73b334c54a5f66d34784f4f2cc7fc54425d7b70be1312ea9e4ac2007bbfcabf9bb4a37347525758812309b9a11a013486e810e906d55fa08b1bb7b4a7e6195fedce672e13ec02a8fb42c24b4f45859be2b7127f1bfa84ff1a25be72d51737b7ea9150f0eab3fd5edeafdcef5ea3e2a178a8be439845de5dee7fe2ab9f9855d6ee0a363a5cd3d358629b47423125a4f88e45139628ea5043e5d4d1d0a831fc5ade558e58c3977542ccb443d4a7c7cb379988475db8edc8e574306c996bc7a280561e10eba97b8abe958714b2c4c7cda4b7877fd2c01b77ed2f8aa3bfe9116c28e52c87f3a3ddedb18854eebdafc47fe26a61e3fe56bc42bcc3728078c3a77ba4216bd0d0bd2711c19d2f8fb1e6e1dc4f44c23de77e89e8ff6fefe56938a38d6fa2cc9e0e031df1ea6e0b7998af27bd470654a79de9c55300373c6c12ee1a2b21598ac10c5fdf0947c459c53e1ce63ade55e8fa024e68af68895e30d94ca81eaf52fd7c8f038ffa1f5747f7b52eec4b66cd56576c54f70c6eb7f7feb7dce77298687350630fa1124485037430f67f9d0d786eabf172bfc6fc95ad7116c5ad094685013c18f36fd2f4f6f04eb7b0079b8642800ca1cef65bf063f87fcf990a5676388ff7bec18ef44a40033b141354a0e5536abe7ace1aa0040079a0e844b1f7582c438d2ed31ce83267c28955cb136215b047c433fce369c4be1cfc2415f236402b66136d9a4369e095afe9edff954fe8cc120532f81c6b37fa63ce929b19a51a138491b53cdeadc5e798de9195c9be40af2c07fc9bd5e87a63fd2dcc58376808152de62df08bf5f5b4843159edfcdc74003c85084385c26a083cd84d681100fffb207a4f4dba81500132cc43ea97747a01586de580fe42d8697c0eb3b2f0d8a98c9ae14f659928bebaa3411adebe4cf4687ccdb71fb164335a9f91bd2a6294830d93ef99dc782eec68912de0d212c98181c8b8f7daca012f393ea44121baabea2027efc81f295cc5169a11be409db919532e2e91d9b1364b3ba65a99b27b14dbd86cdf9959a6e805b8c980e1366dd422f9611dd23b5b42beb00385cdf3059209cd89a9fb534b242d43bf61abadaa0a92c15984a3b1df1f39cf14d17811522d67a7864997d28a33907bc928f5ede461fe510e881adcaaba04d6a5ee1ee6f83f5b96916170e0e4f29c3aa00ec70c34c296c2c8bb4f83e817525009ff8e648bde4775cce25e723158bff7d815bf7489a3c3828e94f534b3f27d3256012c98a4ddf67ced656969d072729bf2d68966325ce724797477e5f64a4386dab7315dad3680bb664ca0ef287e5939453bf8512ca3cebab9261ae8f105cad88f437a31c857b19c19426efc454b617ccdddc3cbb218a4445c0ee93ba8e54e3593250a5bfdeca28fe5ef157fe71d15736b69f92665468551eb97be3ccef4640ae72b16228c4ea8f2c6b8e67f1a9826d73c4c5e466dfcbfa67ec17f9703013d0ac1770d37cd450f365daf4615e26db75dcebaab71b1d71aa9f3b74274ee722d03ae895a49061968a3d49c7a98d319b113eec42d22fe321692d649a323a61ae9edde5b83f7d02647d4b2bedde963625854226c6bb5a2b5aad73f5f68b85ae25e851844972f670a82578bb680cf458f68a4f68848e96da57a8c75f9d867380ad8f6127fc75b0064844edee77701a0387530d94a67cc654993a5f0c9446cd44010d49c872bab94ba56b759e2280c2e71afb99c2983f71e98881c04c62f43a9c5e3e0fe83df417be37ee3f58daafff71734eeae1651e4dfdcbaa657350bde03517df73e5b5f62229c4ea388cd05c7d92860f30081650615e276b1bf282ff8053e57b27a21d89d3e4ba9495ba73bd14f3ad717b1f35e9be34300aff518a5d76a408ae7b64995493140fb911764fc2c418bd905091af40c671a351e4c33dd747e31424ddc9ab453100ae6321058b9fb667b24f11bcbc8d7ca02e8db077751f85f4405899abd6ee737edf338fd4fa0ebd8751745453b8e74d96a034cf964edb7c9a36aeef02f576919fffe4dc99fee63d047253b43e73aa003313a0713221ed45292cffbcf1927f09c9be0a1b98cfd61fac4b618c9d2486bdb26422397dd95c49b5f329e8ece693e48e5e31c231769dba219962cbfd790d8f76645b70b950af556ed114625a6d07e8b10989523f9e81c39e40e67f0ebd9e7d8b0d6dddb89a9e25aab00ef51c6decbe2376e0556203fce1969929de29671906528fd83c012be94b71360be1c144d9beec4ab69a37ba88eb4ac7cd630e69ebfda2a21247d98a59fc71b5a3d71aba5905684683e477757f57569a28f2d8766a2a83a4a7c71c00f0e9723a501d6ac5ac33257b27cfd74679095f532810605eee255c6c13f8deafb1f167ff2eafb5e18634802a765da865297174f66d84485aff103c8a1db77c7df33ea8f70f6e607502cbb2b76f3951938a98a581e31983e9e1bc039c79c9865677f3408e2f172ce95c2edb9d0a04162c111285ea717db24234b425f560b128b12416caf823c3daa5196c6cc3e8f40e8d19900f2e189423f18f7b2d0213d207a678c730f105f72f8c7280955f524cbcd5d7a5a99a542521a6fde9c189794661caebbcc9f3d06daa2ca44090bf7b390273f3de85e2f9d3768f3bd900ea44e4463afd2b21cc3d9a6e343c45c52fc5364145b54d01e0a06a2f01e4c05ed6228d5a5561449c9ab642e988b73184c48d6f083c6b134dee9c049a5c0a3482ce784ad1e48a5e8ec0a87eae126bf020630d643aebf43b791ea2f16f85dc412fa2032fd1a86e963b0e7184fbafc3b6e3a59ce5fcacd122f376026b20da0b488af4f4d31e3330161a19c2f4a1ff203d751184fc0e6447cecf593b5bb14d0073e778e7190200c6b80cee79fb40fec30553c66d060a5238c0712786632dcf7663a1046713b5be82c6436be8d8924d2c251e5f5f17b9d9da8123e3a4a6c12df3102cfda5b25a2629d20eb89c2055241a57720bc1296ff4529a0cea064eae723b396395a5374a234a79e63851dd98827c778665421e300246a5f2a439344ccbd1d1dea842b43e19753fa5179b21cc8779dc9f4359610497638721c42c986bb502b5a1337f7efb167c931c7653b4408e943e0051101fe578aacd349e7696b54deee44484c1278e0f3f9c6487ff55d486e77e43ffc70d1ec8f76991bf87a7c6d69f6a2850224aae331255a8cb588a94bee0123cd450e970e3d5a193b0d19f2b79932ae72e171c6a0cc682e24cef82629b8752064d2c6e81ec34814a993ad7f2af6df509979fc7ba48c295c6ba951e15555ccb93c4bf6e57f875b0f688982db4190ecf242c072e2b7a3607cb152458cb5aa9f21957a36d55a4e05fa32145b6fcb943ee7b2579c8edeab2bab55862f83d83b83dfb0db9c93df4b32d3d905aaab28c5acc043ff9cc055bffd73c35b78e521d2e1fb4b6333d4d57b274db88d561926b399660d655ccf40e0abda65c9de45233b247ed3b438e7dcf740bad956f10d0571803c96902d96212544c54a2741a0cfe7585e760881f9453e10daa82e3779d315c1845a1556610dce0866938bd5ddbf3734a0900286a0269e5bdb9f172142b486334ab15f2b9a61c877e9c93c44cb9f25a4a0986c54866f345e0d8949b38ebea5ec5943632b3c82898d041557427d649e80a98c2168911c11e843007691d1422d8321e9193423b84c6f4ba037d03a52b0bb17bd1c954e4ce14426a9bcd6d932f0ba107589da11716d17095fb5c05a58c36626000c111ec335bf0e1b11f2bfee1241332b49fbea06e4162b2027d2ed2addc4d8bd3c93cf3ca90770d3821f599fd632e316b797678543c107ef4e4ea1f3cc5f088bd39a5de31700cc5eadb6e54e5151746bb8cb799b7adb3c5344e4369011cf40ac703dd0eb9f770478c293bd904b9524e2bb400e602765a737591b227a43c145cee3820ef3516bb96af52d918d36eb8fb02d3636808bc5eb58943eeace36d54bb48d9d6eb592ab9e3a9ccd06e71a67a0d33461923939799152af3ceda5932ca2ebe940898289da9c895f621b2940ace6f24332d4463cca9348d18b74f053d62a993c7836f63b30a2eb7a26d086ab944a61100a76996a1c88615b8841765578bb7e6791224c2005a2c7e21f3c7b2e5d325201b9a351fffb8dae0528b9353a7cb40363103e1c24ee7e789bb30c6e4785ef5234dd8040a934b7ae6e1fdbf7433cc383cf641ecd5b948e7e24485f8c3edf3ce901c7182c715278736979a3202112fb8ff308385289289f9b86d661f53ee8395b23a453ac35616014e86915cb97202503bbc9a26dd0f31e682185331b8959c4b09962eae3da12a7e3156ca84b99be58969ac23896712913bc8335e08f432a4a18d81d08dc568ec810e46fef329e633f5f408eec19157a3747389a3a1028f16ed14a17da6c38c4117717691e052dadb78d2809645910f5fdd75f95a857e5a5d02910ef402cee7f791bbb5108c13fa795a1af584b657975e296bac91862fdc7c7e93c5bf513ad96e1dca6f687daa96602fbcaa185d93795c132168e3eecf2e06a9e36041e4bcaa1cd4804827728f0d7045aa5a6b2dd5265fa1901ecff02dd808a02fdb71fc5c641b60196cd3a00954775cc3b74cd41098f06680ecd524b8af8cfdb91e2faa4a58b7307c0435bd04c4cfd17c9c656b250c53a430d9f80e1860df440672da4c0f87a53b3557024a0ddd10dfbd63b34fd8aa894de0b561509821167e2fe1e95dfb7055d209997383f7e380697bf3df7c36194075fbd683aca3f532dc6ff27851a8f836558702575a70f63330d8c832ffc2dafdd527c814cc99da22e6cb29b744613183a078a48adfc4ad2fa0f940c972f819f59d193128a1b4ff5c2bc9f8425ef30e97c414d9b2439d5194af18119e3534bce1eb6b4b9558055502f8f73e30f9426258eb2219a22f869144b46c9cc4d28a12106c51ac1f0950f8d6ce5643e89f82914689a154edf505d99765d53fd1ac49f126adffb1acf16de520c6382934d5a0a803f6b9f753f63abe0af795b0d1073b515f766d728b40c0ac484f1b86d247063dedaa17c1c0384f7260d6607c86ee0430ec729c66e85314af4ee94e79618c807165eb314aaafe9aab915640afa67c4310b5ef7e17436261a3a308786f0db4d11a1c2261df9d4ea5f13b216d143416ea9071b5f2926da1cdd69522dde9ebace6373d0c8b2286fedc8067b46251e975f76222ce40ad741e61e304ef8843f947f51489de31b3d27ea1605bb39f6bfa436dce34990f9d66a8f1808ecd60b30bc6def220ac8ee4f67d512fd7f62a90542514452e8c3c247ee6866b88737a95ed0cc4cffd6a734ed150c696c307f6f800cc4627e61237ceda9cb997af745d2ba93b281ac3c6b972c9deb8e6c381deb748c0853812670a62a5ca08147eb9b928eb8d656a2134a79d5c54b1ac458e2349963cc4cf1da984e666283818061213ca2c0d290095ef67f7a89a0cfbe22f1c47945203b26344ddecb2b6b6ee07e51ff655cbdea1ddb8afc082db3aa6c5029d583a88498847a9c18d5c81bdb9901fc9043bb8b76df8dd52f9833a3a983bfc76e099c39ffb7d5b8f0df930d517e7a2de562b553786b5858bfe92088cd0792a339dd5bcc9112332f05fb379c0621a6be032ec06cd4e5dc45eaa78669d101b4f6e44e28ef256d0adf74cc59def5dd6685c980bae5547a62d258f192055fb7476a578d1b29d8edf8fcc8c7413c4d4d050d5a48948d8b8caa2e2d10edb19d22ad9de3e424ba4beba3d8f102ce625694a98af1c8b4692aeb5487dc8212d872a935a28b3c472f581f4b8a0ef40066980439b274eee5a16c19097304ecbe93f370c573a88ce0e70530f88fc1c2d51acf69cdef606d505058382007d6cfcea4a535d8e42da7f32848aea0c71ea07af6db2368bba52a2737de397ded914f4176f01f989fe6e5f9525567c7fc5ca27f1fc459af345d4b5b880807927d1a74b466091daae9a584045bc2d8c0cec832ddd1525d196dc036f1fc4dac1799753dfb9997bdeb41bb66dea5205f742e2f5e08f2aff7b2b96c06191af7618cbc8873b0ba0135c9ed6820babd16a66937effd1ac0156cad83faa20d92b86db4cc9a230223f4a90cc8284bf7e6b4967025aa98c55ce410b418502b86acdd15afcc05e0c392452b04fae404f33bcca8faae34ff4bb2c7a7b2d649ca0ba74584b3d0be311aaef5df73d07134bf479847705dc9310a09009bea39141a8ecc057fa4ca0404438e0cd28e049425441e03062672d54357de629b67bc003be0690bfc3ccbf1b8b728f8dcfa1b640699ef0cdb3a5ad3682349c3002cfd026ea32fe9dd3a87f6d3b21ee088526f16599f55e501f4e304b59b74d2aa4330c31c2cbe4f59308a3ed62c01ed8d851e0a6a4f61932d829dfabc9bd36e47c53aa620f116db0406068f24a925fd1767c3aa3879683fcf668c43366e7edb110ed5b510e805bce69fe9795c74ac2ac15149707a4788af68cc4ab1cdbc77b0e14bb67c5d9e33b7d6b0fb6cb014cb1a66ca8d3b12ef7d80b475aa98987a0c3ce326882bf75e55514bc32f092ae5b9f60d6175a4940ef6224c6af1a4c17f5038cac7fd08961e28c1abaf53a640a3ddc2a5fb81fd3b4fa7bb9498835d374492bc42f8e2b9d0ed4daa43d9457c016885f117bc2de93e17bf2abe4c66c5e1fcaf23324c4bd78170b5039c2b41c303b6677010ccd150749f01f221ae63e3b048b9a7c68fc659ad009053743e348c424079f51915d30262645814ef2606c1f2ba2bb882a004812a923c7a35047e8b8ced80befebb146c5190b9a9027bc6d8f115e156873cf021596f49d05d403f2bf6dd16570fc29dc04af80ada9d8a1a31e9fe96220e081596ffaf87d7e4507cb84536517c5504479dbe22ffb6d7cd3a2fefb1d508d981ae01e8ac6f3b824d322cb40b44f72ead10239c922bc59bfbbd6dc7e36809284fef9f4de600b471345d205f64600b96dc759780e27f63b7aa6b30a884369666c320df1f71c20de78f91537a349de5ab30841dff247200002490fe3a3871966e1d52d9068c8926f6106de7ad0b1a0f3553af2990c50784f01b58a8f20081c785154d0caf42419007c1f40220d869d661c75d8e050a94028923e9da8f6f28190821c452054105158ad2dcaaddd9ad8e748a4d96460070495a59e29b0aa1539981871e89acc0f4541b0d86bc8893c3ab287e43f89753b2147bcf93db05866d7341e9c7720878c8e5b9bfc164c8aafb7a20ba162e33af2d41899d275a8e5e15e55ab826ea49b62157a9f7d29281523e02f1971247fddf8703e80e92e11151f40cd5f99ba6956c533174cab65554a5317c69399688dde4b48ab01ceb44dc74d3e2fb8e796d042f915a8a621b8abeb88c4c2867cf79f400a0f4b439f857b6e70bdffe00902e5a313aa183562e44e38f8c4f33d25ab30104e6f530d1289f184f84be50d42223683bf3ab7e0db092de7cecc74a23e024beca4a9a24d450364d2d453d5bc2fb0bcfc8b82112656ea9541e5ea0cd4b8de4c8eae4af6152aa6f2c4a77f4d000a8597847d4974dcea427b933cf9ab7c91b07af49b2050b99a542298459aca3bdcaf8a4edd1f332738751609d1496792389de84b12b481f243cb12ea3596c18f9734be528f551f447bc199ab9df848634e97fc578bf67b96515538b28c04adfedf9295d7519a5cc0569cac840d54c646ad3fe1f9cccccc7d5ee22b4fe88d2889768b98d46326530f39ca29458c552c583aad4f357ef847c78c3645fd2f9399b3c2c9f44d9babf1cf992335bb2e6daa5f2cce36c46ed5791207dd550779a63d7e4c82ad3dc2e25c21dc6173c9dac41f5f27203b177dcc3bb839d80d47636d84e8065305b9b911934bca39c5e8ea0e64d3cb60d0e8402150703cd96f7df2ef3b0e417103e7de7c3ee117f60fec427275367f92b86498c3221acb591ff5df8262d44bd95b80aaac6c80635bd00cb089245ec97e0c57231396636cefc78a0a48e61c2500943e8ff3b99380ce2cf00b607b59a033f316e5a34b8dddb592fdfaeea47d13d0ed12782486b8f3167a9b039d2ee1965907ee09e407da54f2bbafc659d16b971e57c4c474ccb32d49411b442cf9ed7a84cd62a26788a8dc2f759332db729ccf94d303d2d263e5982fdef92d461f6b1aa89714976a4d730c5fa927aa412b0986cab41d8b67ade0119f4eaac7dff048d534b992203720e09e6a4a5a292974331e07b0987c77fc781c4e187891a403faccb5d67d9ae3176c4bc8c93f236220ad670629eee6da9e1009726ef8b8a3ebb993f13577f7659e9ad846550abe1974197cfc2ca26630338fbb7b0a126eb968d6e78b21c8bec305049037463668ce01b63cfc913b7858810d63a2cc60a81841b33b39f14b7a7c11d7194f8f486e104057651504552d369e8d5ca8ad380e5cbdae4745820281dde102540dcaa1a5441ffff6516a33c75da6abca2f0c098f4fe8d4ecbe3843fd3f9048be2755279eb782b70dc10c12f0cbc0359b05c2c3f81bba0326b0d79eb528f8401ea5e1fdd9a23b8e7afe2a7c8b7b51b7175a77d53db976a886fbb59a7deef98c652032be2f0fc4a5043ae91827f779631b5c4535291661d2b135599fe907041fbe659a4c13c0a8d0a4004401d59f90d99dcc6fa5386eb9cc373bf4bd5b12485decabfb2453582ee1b2d95adf6c3170742e215067b581f8ba7bde52684e17a7fafa8a54bd23de97922ee0858e4115163ffdd262dac6b8144b8edc9c3d9d80b4f45d30f6b3e23260a0ec276068cdf3ce8caab7841e562a37dede286785ed469f2d3df760f6eb8969108bc80e7f84f9dc8f2181fd4728dfddb8fe16a84bd44c8500264080a596cb058ae3662205918af5e5a5c88fd6337c42041ca1b5db79c885f74079dfabeaded06e4e0b66a918f4fa01992507a812dd5d3d7e103145d016a5900ba9ee4752964f4f1814af820978a09aa3ed15f149b2e0c5c7c0ccd033b2d3dc9359a2c84f9b51fa36984b011506001a5ea629433db73d1de8bf7bcc43ac3d6715b248081178ea62657f7b89b88ebdfbffb5da3bf7b31fc206a3b29f94e4ba42cb482f65fafddccaf43b1675485c33107fc1369ea568011caed82d6af9dc4512912d663a3d93cec5dbffd41b5ca9f86109ad9352d18ce2b12d82f61d53e098002d6ad58b1f36e9eb22be53d878e1f533d268a98c87fe5e82f1562fb6c1e3ae80e07eb82c5630dc84da0caf095e3d70bda5f4804b55f4b51faa5fe9f4ccdfac1f1f99949df4f48539b66256ab0aad58c3be8749fb9dbacb40c31e8b76c02ff4699ee757ccf8b1e38e869f89e3ed090219f2be4d03a0c756ab358f6ed1058b459d354ec77c7341758b2a0def91a4ef9d36558a569cc7ea7037f1286eb90b6c0bbcfffacb7dc748f910bdfce6d48d8f489b69c6dac46bb5cb7b93cb5002b1a34c3ef9cf8c560b6752aca363ca7c3fc7ac2cb61469759f70f7feb6e1568bb5ed95412d63e61b252ee98b7c71a5cecc5266879c3c44e3c3586eb18b7e14bb6da41da660c0fd2e29a535f8412690ec084bc26965f61d3a787f72caf6c93436b933ca6d6364196f97cab63ad73dd5e9b511cbc93abe5ce80f43281c673ed602c62cc1ee2d462d54c65763bcdaaed8a99a687a2471e3c8087678cdb31f437f3f6e670492558f1fae56658f237c9c848355dad01d2b95bbef15a53f01be21e9ff496df428339b966c7fcf5362db525b64c304819d07366a5efcdb8530287a7f17cd6c653cfba7026c9fa6705e7581871b8dfe407b0e637c9bdd7abc2a2517688fe0d2c8df9b867a7343278c0c3be9a49986f5619cf2d9932498f33f25040ad70bc6c5da728ed31e6d5bf8379b49cf0748e33daa5e27c4d332b93fb06d871328c3777bd9ed537e49c836b627a4cfbb4c41ea47dd7673ae4ee0a7847e11b709e6570eec23cbf669c2a86cd6a6323e1327ce7ec74b1af2eaec0003f85d9b93fab6d5dac41ad1698f47034cfd2b06fb577d2cb7bc6322fbd95613ad79bdb00c06332d887e2687060721e34d0b7d06231c6a680e58dd1a7514c82c5e8d91b5ebe351984c6c811efeb86b21dd8f6b4bae0a69db0110c3c68f825feafef6185b64eef387976689eb7768731e32ecee786875b92f04d72c4a6f490129c7569827cc7f0093738a33679761db8e33c6deceb7083fb9adbfe7c5f97df75b021619a5ac09c1ce3da56ce35e6e9603e8232004772fcbea8c91019239f2bd8c21c59acc50e9fa9cfb607eac8f83ae778b8cf6155cdb36dcb66b20018f93619a44bb3ea49dcd61cb8b0db9086d16aace583989cb3d979a077a505f685aa7663bbd9ac63dcaced3210c67d4da63bcc486f80ab5a80036b31f6f3b620db89c536cc43768a5de67cc672bd73ada9c1d213f8b3e20d7c0ff033f19daed524196056fe88f8ff34ce1f8fb3a83d3dde79018cd176c8146687f904d780ffe8c76b97bd96e97bbc1403873ce17184c97fcd62490ef6a3c5666d16bd395fe2ec5d9fba65d3282dde8173969b57763e79f3c7e8a26ebbc62c38a023176c492b58ff8358cc050bf4ee83663b993633998d16dbf6f19e3631900bf5b68e0e66571a306dcc2cc1b7e8309ab3d3c9caadc8afe961073bec508ef6e1ed352ab7f5b05c72020f061f1bd3a7bf462f7c79deab76c5e34d2cec7a7f4cf71860a5b7c03dccfbc54bb38891bac32f5c89e68cc552bf58962f805d4fd2083bf416b11f5c03b229c3dd30c1c29c84936e97990ef5a79b835ace96398573dba57569645ef4c16ce957331eb6cd8099c1677efc6f68afb009db73eaee3be35cd5214da5c99b19f7ba335827c13eac21c7551760d59b1bad97c10f665f667737d75b80c1dbc5434f9d697e58559f49cc788f1d4a37bbddcfc45db993f3ae2167d0cbb404ac7ccb0ec0c6477bafca7d3a8dd1a93038670f69436cac4d8fa57d91f9f5d9c08b0e57ab2eb2e958fa28c7a8e4cca83ba8f680369c18dd0530b017cbfae7fde08d1cd8b0ac7c528345b3e5357a957af327ef463d88b55edc380f3e546f7918c67a166e9fc494ab91f4cac47683d9a64d63b70f5d0fe283fd383f0f67508fcfd84e17734cedb5f5f25d26662e3664180df33efd733cd436cdb9e719dd407bdb973bccf72c0d596464ddf98919a10bc70b69742f67da84cb02386010c724eb96e03be67fb7a7cc5d8c06d3e119b543f10fefc5f516639cbbe6a73a60f0d2f8ec923bd837e03ee1c51bbcb34dcc583e588b3501cbbcb60473b536877bf649ce4a603c5a9591aeddf777156bbe5d07d7c8224dc4b897cc657b7ed11c6c815950a93f31fd3534b7a7b8f93ef25be78297eb63da85c66da441166131cf66e02761f3cba5a398f7931c6c0faf53da7e8c067b34def4601988a9666f06571ae0f0a0b7b7d4b7bb9b9e02968cbbefdfdc5ab569ecde13e4de8fe45d8d1673e2a0297d96db0b64ccdf657e382439c79a1de42baa73940143a153a1d9e64f4fcaf67b993fccd700362b8739b8cc1cc803fd6d58c6e9145d78b3606c8f283732cb07f4b9496cdd79cdb3067d47bd4d73acb1c10cb743c06bc41cc00ed7385ecc4ed651efdeb58c05e7c0b6f9caf15f772fb0bca7e2644f573a83a8be865ef31118f3a7678e8bc30d1ec094066eba57cdd2215fe2d269bb59c4ec158b561c2736011fe36209b34683b5e7cc30efb366e5620c0f726ead9d4a93718f4df67e2d62bb0fdf7b17561e94e37faa61961cdac9b4a33d37c52cbc7eb6ee22b816c18c5075ceee32ff714b7010e459b7f012735dffdb8a304eee6ef3ad991bde835890c7c8705e71bc86c5f94a5bf8db6813eb3e6c10ab5d0a97eb63ea404fa2edcdc952b0f53063f870327b77547b0acaf8f2f0a2f1b48aad7ada976ec5711ad3749fe6b4a9815ed22a36750077e6feccc5e9bcb3a503ad6210cf272b6fc2e4b6e2675f563b380d903b5a9cd91772967503cee0f0ee1e5dc464f026c7fab91566bcf793efb4f4a0ab9ee4c8b8c6256fbb8681622bcf63c19de8c0077c334d7397d618eba7b763e1acef41b692e574c835381cc3c46147dbeed83b6031d48e5eb6fff9786f4e932df81b353c43fcbdbea702df8e5b7fb56e6119ce156fd7d6db8bd15e85d59c38a2b07e38f5c3f11d9bc16d06b2622ada8062289b73cda95a42834186fabcb9e38ccd927d931bfb06ea84cd0076341b6ab9deba32007e9353e0c2c99e995b68737369436188c3ec1b53763a58f3e4d8c5b5a76c5b73362c56bc29eed5ce8d98e7f7e1e1d8e761f7ae336d66fb04bdf33e0c61f07388ea9667b8b43dfc125da4977d9e353fd8a978fb31646e73d910f78c621a3e853e31c3b2de3f0e3984b597d2f2b415335f6ae716f1019c6b0d2d8cb11ad47d59fd592fe483a67b897d1e75494c2fef8c0067e7eeeefe096207933969deb13eda700fb3875c85c1d3a4738ba94998cf6c2ce7c56cf0d8ad2d01da25e436442f715583bab57134915fd4a436268bdedc64b01c4c7bb00c80bb0f96d162b93a9ae46aa7634c2df52ddb9933b01565f7f11ac00be4c3d02ef3840c2606ce056d962f0cfca96a3853c8cabecf54e039c0c536b9338483371a06a8893ca77c10f6b32b96c17402fc2d2fe1695af9a23d50b9d032c7d0e29be3af055399754b9f13b18feeaa97a7691abb1bb849da30c36e33873f2a23fba016ab075ccbf3b859efce83cf4473cec21ce6cf2cc962177d632ef22d66bcf41fae0cc296f5dea141ed65f5de534d44b499cc8b6fb20ed9b3d861cbc44ef0f298ebba4da679b7c04cf0a2d9c112763a79d6d9dabb4feeeeac670a26d9184e62f8d7f0c54faab1ebe4ec3013d01bb3f7f9434d3e335a0ed2c2b20b3eac7516b506260378beb211ecc5f1f436d99083d97e2cd2169b7d4e97d0d61d3410cbd4cbf36e4c1590f7c753a006008fabe3ced87db173ded0261ae4965e5ad81264856f47fae0c249582eb8807787951d384187ed5937787aa13a442f9ac09fb62c18b19d9ac635ecd20d41f61765f2a91dab618c58c54b5a7a9015ace5c158fc46c19b502b5ca76ca31f68ae6d8fa90db94c9870d7ad00b97adc86b5d53689e97c9eddcdc8317dc6a177c9865eb631320837ebdbc37bc55df304b6eb98e76d16efae0b6d7d0db488d978b81972abecfbeed616b9396da7b9ef26dbaf9465ccfedcb946d36cedc5dc28586b0f5b0b6cd830d264cb13922610d3913bbf1acee7d2054e90958fb69e2d06c989609b431fefacfb17e7845eb6c96e0ec929b548c818b2f3c132fbc270ae9816f315b7a31d97c00e878d6a3bf35164f065d4061fe3b8369c8399b67772a96b978cd10b0dc0e4c49561f1225fb6fdc46489053ab042875139a4d7eab6a09d0cbe8d8527b3ba37fa80b6d36b52fa18b44c0bfa5513a013f30ab0e9c132e66fb9fb23728e58002b633eabbba50c3dbdd6a7f9cd17cf85d37cfa307859a5fde7c94e3ddfe36e994b056aaf814b5368e52bc1f5df3d838869994b487a2457ebf7630726fbaffe8aaa7989ee2b470edce20035159bb577f8f6624570945817b21b58e2b14fc73df6bab2d1b2eb4c20a2566cfd0b2b8faf04e751a82445f4e266c848e0f2c9f2058329cb9b0724299f48a7ea79a4d27f3e1323c18c9510b2838d994efc62d59baea711b7d738ce4b87d57842d26a66ddc61b3f44a5aea9b41833805e02d9696a77bf63f21b3f5c6e0edcf202d47a10a4a2a3d7bad0790be6da42ae15080b0cbde9701543246c65b9c62214478d2ea27782d92526721f995ef7c469aeb5969b548108e87345443e0c964ee62fac7fa0fbc5ca57b10c7a0a709c08c8cdedec3ceb55a4d4f5d65972257e790f432b67da75c532ccc18ab2180b4d7dfa2ab19bc5c585be39e0afa4b5af079d9590f7c7ebd669f0bd49a474e8c4f33d3df5f013cb0bbbdefc00d19f0be423f4567cd6eddee50818ad827473800e15ba9d4b955a5d5528fd30b088ca9f936009ca870a1f180a1341cbd3d23d122c7d8713fb8bb85e9f4243097cd0aeedb48a0ebf6ab43ce58ffcd3d4708b64dd7df432c3f2644d67192c4d3e00eefc3b884813809e5f56d6e4becfdfac5e6493caaaa85e092745bf2181576dad721adbd27bbfd8753349a907da9ee840b1d841cd65dff9d8d8b21450c5963e0075e08f18aea633461f6734e8afec1b9256d2068e9f90f31b26827f0901f1f18e1be0d5a329286bfbf84110dd448f09be44a5cf4c00222b9b342b5b74a0f950c9b92b42f6981cc2e3a561776a11f8e6d01d38bb2dea8dcd3907d7ce86c6d2af7aa98398b0d6c9cef936cda47d972138fc179615942e3a7d7bc4eff4a4eb54a8d1ff3345c0ad75dd74185bb52766e787504e9fcf90c2493b4b0227cdd3ba7be09da0c9504c8f9006bee6ecd2981b2876d39e807fc6a27b1c321b528319dd28bbeabd2f75a812e4bddb24430ead83bc57c78a5baff1e1972a43566983d01d884a86760fa0fb2389b990876022561308c0b9843c15601ccdaa14d3018fa885f6335f7f7fea66abd5944434ff88b79056e77e40217a856e74af00718789d01041875cc4f88ca3c76060a3027e4dacaa415bd9e122d57b748495b5737213c503f7168837da7c96f6ff026636ff99456b0758ad969b0f0be8dce0c1b69257a997a2a4cbc7e4c18ddae6d5bb02cde8152f92d16b9f2cbf71a33aa1a3d6af5baa2f432f493c7658b717cd7c52d4a652630efacacc4de6064be63468e1d729b14425d32c34aa5542e9b196cd77457f14bfa1cd8d4995a896c48428284e9ae7b2bb22dba4204061655e9f8056122fe8f6c208826e8e12fb8b68313e887337ab26706fbcfaa357ea4bd1985d9ad2eec391353e0ea0ed6f193da019c1b7b2a574e8865da0461f835cea359a8f6b9f414592c51ef401785fc2c0718beb16b6b5af0052ee967d1eaef9b0f4ea60b8e7d387ce550191f5763a7ca5b70433b43eadef96391e5f13a53ff4b5cc63205666c575d0c7c4041ee25f4f6c81a232d60b97fc441e5f52c13b8290265d3ec3b831bd45100dddab68f3a2a36a5626be811b4ea317cd96cb23b1529d971b5370a352b081b53422b8687daf81f4760a8ff32ea7611736ebe11beeacc2da2192d4dbb6513d92ac1d6c38c1dbabd67c66f4b191a993f6eed5359283f943464b406bf440bd8402266f24c1a5145e6650eb3d0b6d855e6805bd4cd43f0fc78d711bc5113a491375d8c2ce76fb3083c016a5d484a2a1f9ed05a16529cc6a53ae9412491b7fc428068d52872f7ee77f6e8c4a5b97616adf72a7d889d3963831b9b8713de4d515fa9743e8aa200c1bcac80c9bb1bfcb1f4d39b37e8cf08d2d835d08898d4939ce48eb2bec11fcd3d388a8efc3ded3f3e574de596b99e43140b62be678c6e4f352475f480831468761b63bb81524f06667c3f80280ff8c59ddd47cfd2c84b02ba634017a716ed3b740de544e7bab329ceda164d379f762e01d8737e57306c9618d69e2086f721aa067d10783b832f7fa34b9138d4644465a4381c0b999981b6c8eec7a66e9099ff523de5d2b1f74e8b2d8776ca01151e481719d951992d68fb20d6f9abd8123082f883d44f4f694f144fba6f1469310c03d84ddb05cfc035cd8135a453694eb6a5da7d1ee46ec01978b93550123d42332c6012a0691009b9561752293386a878974f8a110538e494e5e924614a122d627099bf2accd51b7e087a380d7076fa6d56f9ac395ef177d9b100ef7135ec1569a20acef39ca465b0ae914867205a41540286f1602143ad308f84d10e33e6bc5afaddccfc51157e1e5ebbf0872b062202e49a8347d2d1d9a50e4ff03fb7f95996c88795206899c97ca4622913db5c3d462e387d235c3d31d03d9b893488e914b946f21dd940c9c2fcd8186905935fd8ded9851c8aa1f9607c550a64b2213bc031d83ce0e6109673d7923fa46666d1b1a997e7d043e36c427dd43bef3bf2672df3be51ab8ae6f588fdb74acf9b50e1fc1fc8e46ee843de18dcd4fb22e9c881eb101b189041fbabe82f4db83ed5e5220a7809793827b5817b1f685269e0b6a0422d66a685f0ee28aadfb2f15e28dc70bfb0cca110964a6045c8740b6374c0950e6b043db2e05e9d289add1c14eccbcad452bfd1c1298e8e2a04acb587e14f30a0438eb5f3ccf41e31211a8a7a7db64d49e35ab6156219c96a6e44b7adaaf548e8a882623a748f287a80112838e768da697781838a812436cb64098643560f48f22c84a769d43fad206a1d965d52d90722c1cef789c30a74c264c9526492ad769ec577e7cdee471fb1e418dcf527e1d22ccedb4595b719b4c878144e0caa669f2cc67918797ba92edb94b4e62a8e4b3c59cc965bb522f14d0fd67631f2d63f131505f03948c6fde95be41d71bdd541e7bfedbc752000e09d416a659237ad1ca8042ce680526b19fa2a97a29be0c65e8c431463cc459c55a9396426046a61fb5839777062ad4ad3c4cb54c62f5c41315cd4585ff2acdedaeae49d7c661e1170ebad40181eec860d8a36bc81dc1297cb1708597c28a603356319b7b859a836991b992b12fcee11189b702f7fe69fbe4afd03e7d1f9d153253f86281b7447eb816717fc5ebda39022ace53754e042d2eb17f7dfd9ff0fb2beca37f935008e90fde65032c87c936f58ae958d11e6c50a25590311297486735ce75358f1e6e18dfaccb1e3d5a4607eaee471e77fa2247ce6ec5af79b3efb2d644afcb760f84959e44c210bb13bd9dd1738d855c19ead18711a83eb18ed0e859a59fd9126cc2217c9492e51dd7e04e7dedea5bc3a58700de9d881cebf38d4860dfa54cb79d44dd88e2932ff23eaf7f465cd6bd355c6f36ef967311d484eae7bce39de8a41ecf87c9f5bdcb576f8975b4b15ffdd7afc374b99f785fc57eacddb0c085398753ea4ba18498f11b8f75988de544c7b9e19153734cf9d55d131a4539893906efbea4914679059b98852082ec4a6232e7a559c3399c2438c859fa05c3edb40bfc08bc35ca60ef816d1ddc2a329c174b61eb758786d6aec445628197414b81659483d8d244737a983a2256998fdd1aa8a07a7e5cfd0622732c02d6e1cf403723ce1c5bae5fcf21a56c30da9e43bbbff1cf3281895905045d279481a305d38bb605a1421e646473415d4a07e7657b8f485a4686c6636a97d2216238d9e9e8ee4fd0f2b83cb9e653eb8d00d9bb68cacb2e5fae333c3bd6a435ac27f82642601cd81f2137f43dc3520e74fc1eadd486805578412d257affac6eea33e4f328ad194feb1c72fc56be2d20dd1e8292ff2bc9e4c2dc671ea1f366de8b0107c56d38cf24be8fbcf71567b2ff72c331d7a6a4ee95fa003b8ea67f6c6ba80fe674e78796391cb82bd5d4780b521ae51300b1cb9595504ec0baafe073e0ab7abae919b7e91e0a21d01f71b6dd47f6c3cd681c47e194c70e83a3a127b79d14a67b10ca5689f91fef7894d54abbfb019efae0160ee794031b94092e0b7b5704967faa798e97def64997b18b1c1477c328f70345f1cf069aa452b5353f30d5110526823bd12a2596739256074a12ca1272e59e1af3c20a7987a9c84bacd4f78c35dc682cec01062ab71235b455f743f92161b35cdcd382bd0d41cb9b5b02994fc909147c8c01f8c6aa65266946480d089b61b68f85914f91412e55a5ead0d13f0311c8751aeb0ec91a4bc555ec8c178efe54c832c2942e8f77170dd4aa834cd2652cdb3e79db3ad2d3e963ad1b779ca3cecf6fc72b9ecb07e9f02c42a053b1b3058dada72b84851de453580068a99fc6cb95e734e84df0f17028b23fa84c39413862d326bd01d0e94c83bf549cb0470fcbc91ccadca72eca66a5dc46bbf3abcb030ed306a04f1d3c27bda245e23d24d13c15512164d562a95b58a1e3ff51e271228d0cb56db9804a50f0240ecafca3051662ccc28763c8c9ae460c4c51ac4af9ce7479af201498ab74350fc65fa1f1b4a94e137a48d5958d0f219565d1c7fe4f5be63a921da0eff11ddad307e85c57c1b0134db5129455c8c1be1f4fdbba47dda67142af45c62d7cb1990b94ff5a7242df8b5dd87a45e22db27f1e79bd9b2f94a716da54cd184fe863dd8dd5a32f22801c25223eb06ab06ca1b95b52f9f1f80b79ba67a9c5bd0ef8a282c4b465389b495e5945e6d22c78ab8607cf83d59bced02722087c94025380a4b9b84dcf0f8de6dd2bac65555627cc825995f3342dca0e8737daaf1048d959a9548d55482a8c8fb75730a962d1ba8c7ba72a0a09ca6a9fbe3924a8ea8324a818c4435b9594b5610d779bfbd4ed34cf4aaebe079e48bcc26a46b5e13fca7f49bb6b9ef9733c37017dfee656ab23650c4a1593270ddfe271411e6cdae73a6960602ee5f91900703daae7a9ce636444e73e88a7dc7217fea48677fd23f60247e10b466a6a766563928f274aa3a7ab27be774c652ee4b473e6c5ff83b0c7b2a38162fb67a1f7f8c703232f8220f324ea51944b5fa737718076a54aba8f0432f33f5ad0e37fdaca5fadf4fe7eff4ab80d7bac8dcf79bcda937bc0d878737f753a393f4db6cb375d173b32d9d4023e1640bb081166273a4bc8cb0824ba7d23068a64bed6a6191ac6b1eabf95a077ac3c617a79edc33c4e9f3473fa7def6cd2caaa3a3e81e63d0806dbba799cab90762f78c4562f9c383043ed6cbc093ce0af019b0f93d1251c8705aa2417a74d1028d3361d5f1a1a1be0b3af7e5bb73af0e0bb5f7dd7fb5248ce5446b7dac06bed6f49d22db26759a8915cd2e4f6c9f904b57ffbf1b3a1f9714edb6e68011ac9ea77c19cf5b6006aba7b68c0a5f509a30a570a28e99dba281f27a198baac823c4f799fc517bd394f0ffaea94552abb4ff3a24089b19e5691ab7d9d611a9b8f346153beca39b6b5ec2fbb1f64c41f6c182184110930e2a725f6be196ce63c314a7eb24aef8739462451a552b0df02010cc8c8d192ced80b04ed05edac46fb59a6d93cb7ce21238bc0a3881d8a4801f28031ddd2f31c04ff9b34ce3def67b94ee7f0c32aec529883e03c1a7a0770c001691cf0390ed880083544104144474495963d3d270f4f2ba9948cc63c9fe1f8728ce9cc65727967b6f6da4a4df8fb94f56ceb586728deac536dedde1f228f6e39c40c434019a2bb2596390de8d2002100110208217884b0604c9a313774b7f45e22eef08c0265874846b107a5c31375739d35d18e302ada31dbca92b4b1da4f7c1c7eebfb2cdaeea3334cfa0fcffb9dacd2cfd2ba6a630f86e2793f88364188b14110554b83e88c19400703c2b4e7f92c5f5b63001520def47d4c1d45f3cf0b049996a71510b306424a773710b55217f21ff6f8814cd3099bf7ebea874fe67fa78eeb07950f6fb8a7a10f6a3e4b5bf9c0c507087a60d3f28f667e6e045ff3c1d79c14e96f1ec16a8d60e0bcc0e0b207335b7a48ea9674d543157a74ed0292c6d77dbc0035b2b50032dd122fc0eba1052c91302ab3a03f16b116316fba5bbac49ce9ee261213e68a79d28d69911825dddd3cbce9ee16e2818de4618cf42a0df264cd8298f6f020a55bd6300f4b68fe34dbdac18dfc7c0735dd7287323be4ee4b67b8034a8736dd3a20d12dad0e5472d8400e64baa593e958e7abad96d2d3f87ad05ebf3687a46ea9d3393900b5cc562887252fc3d70ae10047fa57270b073575f6e080030e4f24f6f0ff4856e9375de2d0ae00332d676da500cb4a9a341508d2972ad787dd27aa96fa5416be5f4111a9525514134455141354aa0954aa7008c7feda406dd86a5053431435e01a9ad0e086063534ccb0f8399ef9654f4cde7531f7c4ef6bd79d9cf3bef74c8e6dcd859fde5cdfadf8fcfd6c90e7793253c7a0bd79cee48ba1e89a219219ec98014d4b10f4793ff5cd700019dcc820468615983860b800830498073342b7cc8fff3e92cd6258a97b3b74278baf1d58fe2a2bc71e9cf45a9fb293fa6b33fea2d18d711c9f74cb3a61d8bb5f9b2569a93d62a6b6a50600242f9066483c70c4277ade77238f4e184592cdd0e617758bafc5dc57eb4692f6b36ce479c173f66068eb6593c8c993f0653394cd70e636d987fc428e005b8165380331ee03ee2a4e0c58c49083fc38ec47307ae4364b29bfff71e9fd08d249c336bbd7d198ffabdbf9ecc33c6926cd6b67d7554af37c473a0edd845b8430841358422c199bc5e6d435883c9627bdf1e54dbfff5d58157f96af6c864e63d439cf68deefa68c289fd78b37d6e9cdfbb4f31c75148e93a8ba6891d0dca0cd40f3e996b85a6ab3e350b4231ec1a0979d816a3ed3a8731f683aaae3a84cce91eb28e7cb185ffe4b086ee8121448feb55edf66f794ac3614bf487a9ee3c992de87a98ff37e9e32f1bd98ba09f2beece3ae7519c5319550527fa7672c7e9e7fffaf9bad93fb4720384344ce50988d20db433646a642ac909813b11c63f2783c120fd42db55cfa339bbd52778ee5f97faee2f4184b9e8c9e463346d9d33f36b93882df779e68474cb3aca6546a84a552aed7c45ffdcff9d47c2e7ca6ee96d5ca8739017b753796ce816df092c36b6fad384a9e5c2677b182585952299c61334f879d844c9926e9a0b0e79f5f492f9f9c1706b34db7f4c6973b2a0b77ca621af2d4d3a8cb51f6f545f3ebf61af112f1d6a0bc123c00e4748f74777439745012e086de6ffefd7ef638ea04c53424b9af66eb08e213ea8b4c4682183520c748014612863a60d8020623189278f922c74b17395eac1798970a5ea0e385302f3c71c14d774b3bab7da0f5afc5a883622c047fe6a3e34abf6aad54ea4933c8b312f5d5baac527c1f8b7fad634f9ab4c7168479cdce1ce7c7fe817686ffce5c2048673d9eaf7c277587b8075ff3b3300beea4f2d370b5ee81209dc13cfc9f5f8b67486134b4197b3e5d90b920735c00a10b9c2e477401e2820897375cc6744b941c334daa2c97384449efe479f9aa7d993c2f558bfcaa7d8976f43c6757b4a3570aceef9b5a64287adf8a4b065bde6cf91f67e839129d35ef64b2d9bd9e54ca73acf35bbe6e7932f9f7f85a2d6768a969c922ff85c5994b8e20b6550b092e365c33b49476569b6e732b92561aad312de77d9bdda7e5a45541d19aee96465e7e3c5bd2c35c9266502af5785ab95eccc63038ffa3fe0f4e58abbb2fe89c22564e51aa688316ce68c18616905ad092d38224caa34f504c439e42496c851c2527a65ffc93f33e96555aefe4e24c64b6b648b414e964f217a6b3bc72597fdef7da5722912884210e0c1d31e4d32dbd54cae59da835f90866f0633ff27e3546fdf39c6196cbbfd3c7d8a55a8480728472821e09421364147441962fb27c962e595459382c8260d903cb02b0a8d02dfdab62cd394befac0fc30e82f4c85b2dd390b437e43e1cb391e779b9d62f96334f70febcf34198dbecfe7586b8a389d573943361228d3cd1f3f2df925ec599de477a3b67f8ffc6727dbfa2759abd9ee77f54c519ccbf1fab8ae64ae77dac256906f11c5571d6a34556a96a96c3f719bb1136650faaf0c703fb2db9d22e1471a83aa960bf85a5e68fbe6785dd52877b240a3e16169174d692eebf53a77380fee86e2b0454d4dd439d03f4c00a7bacd0c30a265cd9e34a15d46778667c9a753ecde43ff361f9bf5a575eb80241ce0f9b9f323f2efc78128db97732e18f76e31fa55278e52ec73fca587a78fc23cf6dc6a6f18ff2b77cda74fbb07c7c925a9e4c1e8abef2c9f151d2e084f5b8e95a4f99ee6e2775d2ee873d6077d7be26fd57adb069d23956a0b0d283951372ac70ab3cba2b45555be70acaea812a5574a3fede11fc58ec1dd3af62418e0a74a870a6bb2bcd58f4aa58a7ab30824a0e150d2a978a099541a810f1fdb5d8b94f79b118f5d0a26cf5a4ff525eedeb09f5d7d4656b8bee155f345ac19f3decda2b5476a878c0e308cf173c1f8f0553deb4f44e504c439ea3c64c939c0913098a318c1fe639ce94f67363359b22b2757a284e99e5293f65846e79fa1e8982290da4ccc893e94bc520339e60b516bbc52a95732950919302981474a4c021a506293a0898830604909073003aba5b8e2f07274c82e0cfb2c45fedabcd5e6dedabb5b3faaf93ac52996c82b5663ffc793e79f2048a4581e0d344fcb18967323af37ffdf4e92038b3509edda7e2c99866f9fe530981d30556567d102895baf2b13efa570cbf43010e0a695a8e6086e5a040e6fb50707577af5000e184372d67797c9191d87542987382631d13dc80b95a9b39103461cccb1ea448f4868e33f5cfdf63c2acfbeb31a14ab6d5a344d2dd3a001431e552b9786243333c814070f6e4406104ca185032940e729ec0e9f6f1e479267c699ea7ef6992bda1c99f1c3d3961d358c1e438994e4a128d1c4983b482082a02a81b504d72501f706be4704f642bd4e5a4f71c25bfe9392a0c9ec72ccc4483e2a8d3b7ea90679afe77d6a6bf954cbbce31edbe5aa12e687cf96bce621faa4050b27d00e7032f3ef0b60faa78f0e6dad7dc3c58f3bd0763ba9f663d90d2125387d3dd5e27ac8333a86ab1d8c1d6c1177590a4674857e86e107a33401ff2a331a1233c5d4778ba8ef0cc06707190010e1ec041954c9d8324dd5b01de74cb02a4d90a40650906ba7ba8b725472c596109930ddcd800ccb641dd60834d0335ddd2f3bc6a7528e6aae87f274867351f41e7e6575f36bfea377faf233c5d12530f7bde97a9782d760dc48c376b40e41af837091067fa0862d1d2c66aeb0a772a18a54d3a669a4a8d996e0490626735022801a7ab74f2f17504db4a65bae56c2b85915ba9b42495726d6d7a75466ee15665db96e4c0e96e9993c6b79c99cc59d29d819b0cd28869b96540d4729581b7cc8f95acc17f65d4a792315847c96c5362da3078f3d556776d1860400603a0ee96182ce99dde2e70b35d4026e9bfed0222791f09a4f9822398900519e85681e0eca9808cad02192ae0b25520c146819b6e39e58cf91cff06c128d081822a1490b04d70c736411bdb0449db04595a7aeed83debdb000cd90680c43600a22dc9215b92419238604b42db9280b0090011e911656c43c7d4b10ed6c9d81209808a4d009f002cd82478b34980a6e5512c9b047693408a04196c112002baea1641105b0457b60800b04160c506c1023608ea0601d71275ad4f397db5e0f44732a1529e7ff43ca789dffddac76a2bf98d2058adfbf4d5f6c01bdb0315d81ed81ec8b23d1080efbd22cfaff501c1d9a3aa54c5f334eaea6ed95b00244dc431ebae1104673e82cd9b5527d56a026e04c1e9728e73ee0836af8b26564a83fdd7554abb193bd629a1ab344856e94761ff75b5afdd7deaadc3c882b65e6db0195bcd224122922edd4e2567e4c56cd755da65314ca5209103122c9880640848ae3c02e711313c9f284e365f9fada8d4b535109c3ecef0afb895c5ac7f2cff59a6a0473f16920d7ae484474670040e477c708407474c68448fee96d8e362f613a58f557eb575be46f0bee34c47d039fc3483d362fa79487fc3bf168673d2d7bf16d64aa55c9d6cbebef93390ce7c6a39b7c504d4dd8f954aa9c649e478fa383fdadd47b220682f236aba5b22ad1819d3577cc52c23b3961f234fba177953b37591301699b5bc7604698b00f5224b5ac651731fc94e91551a874ccb385de298ba03715ae674804d77804c5fcb75c0b3311905733a2045760082aa481f8a8c5184a8475b5d8a28a1e144dab493eff38f8920b5a7522e958ae51c4f92b592f45f65219242e4812b38307260040d3890a4e924f2b0e85596fc6a5d62705e1bd23ecf432430a41143a630e4330403387dc041028e0d70740a99a390328560290402ffd977339ee14d851846631406a39e32f23e4bef1311d1e9bd34f2ee7f8f65ddc00f2185107204212c10528510021022000df0a1012c34f0754b0a4e07a787c24c9830c12b6f651a62e20227b661067ec8805006360c9481811b307031609244f94e58c5f4d270f637ff0dfd6394d61f246910a34134c819a482371978b3c647ed16f9a37fd422f94a7ed46e79a3c11b0b048943101c041105a1822c11c48240c408648a40666823ef7b2fd8993091aefb42d1febff0ff08f55d0bbbe2e34c9830912dcfc89d0913e9f3abaa8fc59367f7582a3dea02e96e09489b0ac81940bab8ad2e4094b4eb8f36dd7f2475f70c4b162d56ba1f9f55d10a445a3aa0d60aa8ebb20af282fe78626bf6c34d16ad1f7e54e9f1e5d8fe11cc0f0aec545d20880b78ddd2eb3c175a01b9bcf513c472f94fd150900b0db9cf4f962cab1effb1e2ae212177b5b404798b05e4ea63913ed6c814f03843bf8ffa1b82e24f1f2ef401811b342df157e72c738f44b360911b151f83f0b1464b8e0f900f6e0f42f6e8a25bc6ecdff7194ca4f97cd0f318ab4715c584faa0eae43a82c92a9555aa871b3dce748b323dc2b41e55567a24c9834d771e641aac7d2c270f225bf330b5bcd6a3e0f1c635a67b85c71d71ee582393ba5f9e75ea14bfc3f41aed88d3129ffe5a9ac9c73aed88c0ac8dcee159b3427520e2791d4feac0a00e09e888830e2ee848001da839dac8114455eb9cac5239b8c801411c83c4a1471c4bc4f1258e297070008e26e068c1e17054f0c61c6f84796387cd1f6c926033635372830c379c70a3d506246d18d246136d7069a3091b84b041a6bb7dc79bf8e369e56314749ce9eb45da679c6a390a869222cda140f1d49013d6a9e54dbc25b3a069c833b9b71e4425bdf08269c8f3982dc1bf25bde5f9df6f99863c8ec378862889aa560b084e6fe22d8f9bb56b292842f17c04a94fae7befb108ceaae5f4d56972ca4a7939c825a661455d4bb1874530744e7a501ce59ec76c8cc268c6740d43d6a0c01a4cac31d7c851838c963d2f78137fc13424e5cff2e9bee9e9b5dd04c109434d67a9563c4fa3aefab3dab56aa8a1a4bba505e00859c002652c30eb96b07f59c0d4dd532c90a4d37093c699f1e5698ce97e584d63d62d756e1a55e4b8060e5dc3a6d7c8e8cbadad16cf3561b7fcd61075afb1426bd02893ab68759c3c75a1d1021a0768c9b9e84ac572ce4a059ea880970a78b7ec39238c33beee9679e5129cf8cd50c48c38cc30d3ddd253def8630616330040813c5a7e558cad602b0ab0400100bc99c0141310620254ca18a40c39ba3fc689ffb18f5dcbb15c7a9ee7d1ca7da299a74f485db5af658c65b8baa5f7d50f5ba994cb1b67508c48cd0c6a4660430261247022e30d327420e300631432069b6e7904a321acbe8c82f4f3173f5b2716c131a5dc089ee437694997c2fed62c8d8bcb50f4119455fab25ffcd2b972f9e0a4613a615ac6808d01450c48c438d32d61ffe58b522997f7d5e92b17838330e284b1451850843124697656f361f99853de47bbb9fa8f7dd5beeee34e356651fcba3cbb6b5b58b499666fec032d1865e4f7b539cb60806030f9e28afc22a9fbf5df17266afaa23b8d9a4e33ebf66aae344fba659a24dd9d1f7bb1469e3e33528cf462e60502ba78832de859b4dc4f165f5d9c698f05ce6c5d5d8cf92eba747132f9d7e2424dcb131749f2c40550e74a698e678d8b242b346daccd68c6c8ffd0787f432b683cd32d542e9ed8d0960fb4b32d9c6c11a6b790b2456bc1e6c1cc200f0b6921454bd7cce07f5ae864e1484b2f5b7b3dc7348b1ab228cae28233659cf9a1e5b59e77cf7439c3b5740d0d153deca5058b29b0d88245e90a35aef8a15b76dfc3c4ef6fbde2cbe39ed6d52bbe3a9f9c63ea5f0d458fb1ac5ce1560462451b56244926202dcfa44ce53a5348c1c88bff2c5be1aac291ee9699f36679fed7d52c9e493f55a451450f55c0d0fde34ca43733d21c67cd65354fbcaa42022abaa0625241850aa7020279aa57fc5906fdb9989c84275040707e5aa6f8a6b8408a30a47829a84861819947cc5461464b148f44114514b196a7176f36b9dbec27d3843987e7cc417076a0b52829252cbf7398c3f7c73ac75728da913be24e48149c5df87fe4991ce739cbdd83af898f60360bfebf312c9b602c026e5a1ac1e00506afab08e4108127df1f89b3fcbd98259d2e4291061461ba5bdadce3f2ab85610fe33983a2caac41a1a4fb0935ab274409a5954aa96034cfdc723c3d9572f1d8586539a1724249b76b36018126644d00757f4c5880892c98788109ae5b7a5f06419acb2095e1293342f75d62b5840094c84209aa0417252648a29024e848a2862424127090000409062021e5083f8ef8e13e142f4a133f99f2ec64ca8be279292a0ea1e20d154350f1858ad214624c41a7f0918fc56b633e2c9f98f5da5727f765b35af13a615a5cdaec9e57fb5a24451252104901003353987145e14814624481268aaf5b3a77aad998082238382bed7e46d509b3d8ffb34f9b341fafe5c249731ccedacbc35993d7dac7339cb556041810811522a0040a33a088020a1714395004e0892f9e18bb1b4b6f4f48272071e21027d0b4f47cac2bcffb59ced8c2f0ff152778969d608a51d2c9f7b5667d58414ca43be183132938b144de6ffe4ca7893f9a18d3c4909cb53643cfffc6a65f1568edebf3cc4cbc61c20a26b86c4c6050e64d4b2836b7641933dd5b99305d86f36d09329620d32d4f9582e034f97867ae226891e61294b6049054224ecc6e4aac592951a63fac84178a2e25a824f1a65b82d62671a6a5cf8fe3ef93c89eb74ae20124ce20e10509118e38e408268ec862042446b4912cdae3d79c14d34fc418f5fd897a976e469069236a1bf1a445271078d3dd10500381240854a934ea64e0904193a718c37f93cc1064aa74cb6a69455c111751a6fbad1791d458ccb408a06e4f9a4528695973a20788d1ddfd001b1ef084b379ac13b4367c40533f997ce580342dbb5ba737078869e9802a4993e68024465efd2c44b41122620c1140442ce9bc0db1a6ef1da28a213c892f9ddb102ed4003e1a60d400292d93264d88369f572121cc485b85206a797af9b57f9a425c30c68b31af314ba4d72c88ddf54fdb828013c49aee6e9bb3ad41e4ee6e18cb57b5afb5afaafbb0da57209200e20a10186c3ff0f1031c3fd0f083d7d2663f79f543dbfd91cd4f73d790507dc9289c8492b2d53d1f960f717cb8c38709f81076cb9d2047ed5c3b7b28a407237ecefc0486610f4eda2ce0866d01b396567a2e3731758851428c28c625c624a6797843a6a511385f165c01b496e83e11686d18d425cda459a965a1d220cf8be76f39ca7e317af120c10e70ec1066db018a0e76e89043b7144104978f917ce679fdce779db05f4aed97a221d3a5a0b5986e3aa0a0030639c8d1d23d47edc4ac53cffb680e28e0b0c786831c38e0b0e1f0b594d5ae525a37d3e1ae9d8f43011460c6a6801c5abe7c12e9d81b1ab9418a1bf00d596e40210c1f61d084f9210ccf16c6fb7bce7d2765e43d686d684323363c61430e9c0d15d4a0a606b0860d68a0000d62ba5b86368faf89ef23a11e467d7efc67df8f539f1fff42eba2418219b4982187195098e1bf4cc5181eb497a52546334b725cb55686216498326400060f3066c0c400c6fbfb4aed97fae1502ab5e34ddc73eef39d6ceb8efde2d9d6e93b12533a42b18d42498be451fbeab9cdd3fb1fe7dc929248124a1aa15b62fc92a0b55ee38214c986a40689062420a425a219621af145256204f94db7d735f13ba5b2a491e73bd22895f2bc38de91360bca3d1cb33e336ca27c273391837022188a0d13c97f7c1f8b4fb3182fb96a5c1a6e97ee969e941d25ef731e08d2d758e7df0762a0628b21c9fa48d0daf0868f8457843c8428d83f5adaceff5bd25a9146de57ad15ec1ca68930d8e4682b29ab161cbf6aadd82f96842a4765a3ca50c5eaddd203c19587bbfc58c4d88b59cea31282f4a850f179b395debc39e9ed6ba369004a0094813947621ccd8e42f8b2c69729be90f9e2fa42e3d0302816b40b45d19c32666177cb3fa22007e4f2f4a0f8d414a31ecb20381d04599e17ff990b0cfdaa514d9d7ec67d47307ae4fe7da61fbb36f6348b2df611a499e552c7732b9b43a6830ca8633daf8127e2b96cdfc2f61b7c867c577cafcf618a601009cc099810301e69e45124fcdc982938ff227ddff46a69f9c19bebe4504ca4bc0fbb12bf44ec23587b9cc90862fce0f75ea77353bc5aaf014c37b3884964e4d5ec5727fea3a36a2928c662d431aae579497d38e6985dfdd1cc2dcf8b87bfef3e1655e179bfbbffdd59eb4e26559e459fe7ed544993a6ea1eccd9de599ef73b5b552a178f16e7542e1ee732ad519ab5f7aa542e1e8c1fb445a0b544f8417b6f02c4742760968027dd09f095919a8f6e46a1879f1aa9205d308430705e30e0850d2f0cf042e485ebee175a78e10217d8b870850b787321e6c2a98b232d42a51f8389df5f1b7389e92c7719001740b848c125c605880b055c7a8b19db162dc22d2c6c49a2c58cee66552aa357bc04e73c4c3defda3bdd95882b0d1792abbaa42b496b8fd611ad302d55d1234515d88a78d88a4299f4e0dc426dc662365a25cd20d9dfe9a11609be73b4041f41d9f7adb616e2d85a20a285560b920803446cfc40d40291926eaf5f09b8c7e5fce8b4424346434fb62117e203894da808a19690922de8cdb531508c89f07d8f082b972288d043b465a9228b0d59729613362c8aa0c112031616b02461018d8d852f361644164c601972666399613d6b04204236a0308046a014b6151a59c18c1514b08251cbd1739404c5d8f7addc66da9274d28cdfc5ef075397e1df89e9d3af4e2e6e3347b92b7ead73238a670215e7dc043c9788fb583f14a0a2bbf1bc32d4571a7369ddf59324c39f263e6d7c7cf049c16783ee9678b610b433820f5abc0362caa5a7674d778f0f350bf43d16bb1ea2eef60e8042942eca1f4df0e56d3d1e5881b35919632fcde4deb5615ba1569caee468996b656655b4ad4cdd8d1f097c4c032d976dfd7e06135b55ac02a348f7b1d72a4fb4c4b44acf562549372a5315d874f7c35498410aa037155e9b0a1f68a7aa8f267a30b4954ab9545d5a3e383376dfa86cb15169824a162a13f084b1f1541e177824d8a6bc91a7266e1af2143eaa6f45ca66f8f99db219da1b8ed725552a1e217c45fb9ac9e8d7aefe83a1ad8c27a872eec1d056381f88278a095a6cae2ce7a488e1fcd97fecafedbef9b379642d08e68c314dacdd7facebf0bc33dc52e403c4638507f65bbeaf5af0abc8e7da589edd6761f53bdc75aada572070e66abff9332ddf9db550ccdf524d70529d4c78dadbddef3a241b7eac8f8eb0aeeb1e7c51d55fdb23daae0bc53cbb2c5a0cc493c3efb36acc5405c4732dc64777d2eee759eb3e2ae41c108f4a88a707e74ae7ed54423cb0dff2a94ece7d2c9368ffb3303014774836ec92264d3ccdf0041232a984782a4bac5dd2a4755d4813bb6fde37618c092744e1638b92a65bba9cc1f2fceadf49734e8b777fb54509bbab7f432eb728de2db1acd22850d678d9d627bd41a9618342d42d3728747bb2a6bbb72749df7c20afb48a4fa8d8ec640559882423839055365421a82336940ca811383a3834dd2d2fc516f491fb2a57e9e468b47e9de118cb457b2de75b13364d80d89accba5b5a2149fbe67da3d8ce103bb29d0c4e616c27d876d231d1b199ace86e39c23ca746de8b31e0af521a9db537f2be6567351f5fbeb383ca78c6be5a7f1f95cac5933483be573d18da3aa94c3cb0dfa2dae21c962e5bb0952d88bb9c4aa99cfb58ced92d2d154fcfc722faa605c7197eacfcadfcd8f5bd45facf0ac5e667e181fd9612c8744b1f9697d0e5f17da4cf3a098934eaaf0fcba54481a2e5f3bc1b0939f446c292eeaedb085e489b9d064bea54279589064beabeef54b93e928d5556c696689629978dc91abf4cc8c8700865857ccac6a40b93274c1e78af0f765f974ab96ab68a00c1160222212c11426b0b21ca1edec3e62e6caec20642211b086080f01b0844dd5e7edcdd07bb6a3df74a3d95faa84f2e07415a45ffcc42bd29a1ba28a166129cf4e5252e11ae89123786abd264628abf5a2c7b3ccff3c617b8f2190e959abc506a82c28e1f3b3f744f091392629dbf33c1898bd2e907132326284a261a4c5d4c393a62cc744add32bf7037cbf6d5496c6b1953f03533fe298189520961bafb832e95f02a95d0a5540247429b6eb9e23c47a53c8f845c22214a890425a511c0288d30467a37c8f39f6510f6d8ce3b25b6e0083d4c082931c983890e25262a94447823f1cc9866c1e0d70f8742da05f25cb6628b5fb09208634a22b866fdd076d9865884245d0a214dbfbaefef7fe36b1542c881a0182b85f0e38764ea955c0a086e5a4e309c3ecb7eeaba120843251080403095403040e9830b6010e783253e08f220929207567820a6fbfe7787bca41954e7cc05f4307a89b20d5b9ea33c1014af788e4a7928b99a5dd2e46c38ffded0b30d3de8f27d078874d739bd833c3a10536dcd66192d75d00193ee2aba4ba512e2b996cbd1b5b54e48750a3f636c43d5e9c99303200085d810ce77123967aa74d67df54b0608e2208efc1e69ea545ce2a0c4c1981207ae12072014608d96f6f3faab99a70f2e158008bfbcfe14608225669226ada84b4b80ba9724d9a0cd932e6d5046fa7f6c832a1ab8a11adc920646250d92d4be9608d0c60bd025029ca95a9c10c0cb621823c013f752294ecb07432bb9e9ee2e5d2a89f9d0e6b064eaee4a4b5b9c59dada74b7446d66c059da662d3725dd328be1d1fcd0f3cc49d3dd12d70f6d29478cbb9772803ab66588280338ddab2e6550c6c288ba9401d0f793565202a7bbce921232dd2d47255f49c9061850a08401990e4156a9add97af4b75a0ca4f487f68237a50bcef4ab748118cfdfbaa08a85952c80d3250bdc51250b88dcb3a0f8d9a02b455bc6097e91f7610374c902130ae51174c982ad0235f261d5e6e9a50ac2d0e80473f6130e4d5e6da902a296f867b098adc0e5d6a5019451a2808d0531876bb54481bb0d4b149cd0fd9528a808c8eb14c356890225a509c6e86e89efc35a4993867f249407437177e53f2bf417cc398614c26ab51477195b15a6d9aed6ec075a0beb6e9734b1cd5d28960470414902302400bbe5374170be28ec5a96ca39296217daac72f1f48436972280a414c119e97d16439a85792358f34e5c68b3c92b453043614c697e6d29022947788ab3144177672b2b41d0e69b564a10842941507ae090d2034c941e70a1f44001023047290066baa591373e968c6796546a04dde64ac52299657c2cf3abd38d3ccf8b6770ce1c1f950220464e2b014840d20cc2e31f3d188a5d3c4778ba54321ac3584514dadce112004e28359c96ab52a7e92e7518394b2d23a923922b22d912090020990292a4eebf60486195ded0e250fc1e8b23582d8d6661b87e98f43ecb5eca572e33f5901ee19046f18bbefec873d263aff40a241b3c328147c2744b99f8f2b14e238fc8e4f78f60f38e2fff18f5f115da1ce4c819478c1cc1606b448d46c446187183911a18718111012c92c522739112e2b811878838b196de83a1d8fb59f61c7bd3ad91576d17b356e6a5f8f3113b37a98fb26b43f0677f73e75d0f9c7fbd233c5d5e9ef8bf3a51ff314785a25f1b9b1fea3e92fd998b0bb57099fe0b5c79a62e5b3f5b582ea19f1e2196bb50b472fd080d05f99090e339c33d71a27480fb8f7948b317b3ce79ffb1cef3d57fac03e77fac9b0f8634abfe0aeb639d8f0cd3f2ec72fd540af648a9d4977117e20e54abc899368281b3b39a17187c53248c22a66ea9080e4a844d2752664b24ac8928e9965fcd5644e0582244ccb49c2e44662f7e15361139a1250872a0110e44a02555f1603cc19e43dc38848943c643f0211d74cb229f65ea044e2270cac0c9014e94421671a290a0423ed880201ba86203623670376000421821e40c4276206446c810212674f703bd11f2c43ed2d0b531ea98c6ec8b666126dfb13b8f344edabc8f64af4c36effceacca8afce184bd6094a39dfd26b53319606621a4821037d6440880cf064a0030c9c91313031a064100e0c82c4205f0621c09b46de9891de572ffe38fc184f10eb9cdcdd31f531d3970ebda14ea6d39a043144903282d820089020aa400209444d20b5403840ec00444d7b9e2eb3a0377110b40e82760ac87d2fc6d03d5296514cff68e40f2dfe50e28fd71f417e38e207187ec0fc50d22de7a48ebd8f666fec5f1eb32e8941f06bb66ab9c00d17f02e20fb70a48f36fa10d32d91c2a222d39027b345b24836b4620c534ea61f6787a9fc6c913c1bfab45bf08f138fb33a87678facaaf067bbe5b3ddc28196c8a4c2b85ad511cc66b996def0c739cefa9ad922b9f1ee9636f301a7e5b5cf871a105cf181031f52eab4201f4bec1e6da605f730d37b24edb1c7153ddab48e1e65f4f0b84d0f5377a57ab4fcfec72d8f35dd7da5688bff87a5b73c42e7f28f796c79341e6a5c7894693c925a5ada6f7850d71d6eda843bd474cb3bbceefe3b9e74b71d796013ec38c38e504e2297763895d9d1dd264d963660ea636a694f53d531a60e571d2bd071c84647147424d17144c792eed6e96d0e43e658620ea0399654cf58e7ab62ec5a9fe27df53d947b0a35a57bc52c6a0a2af55836c118b753e90e27471a7254211fd3d9f21ed359547b21ef8f2c911c9ea4df8f2371988903a8bbe7a5714000871570440187abbbf3e4647486b4371879c3cc1bde1ba66e89c7c7e2e1fb587cd1474ebb6203870d126c7cba8a736663169cd8df8d3ddc70a2bb25165b6e694ffbc42b558c5d9a413148d593f1ccf2a2e184b52146b767e4c56b8386364c2d2b85d15a66030e36c2b4fc1e0cc5fb4d31069bbd52192572f9fdc6468dbed8e0608d35ddd2e5475f57d6f8015cf96a0da435bc5b8693e67109274d623b833d8ed5d6e86e35d8a831a6315563d6ad06901aae8604dd2d2d60258d45d280228d31f2fb2b5aeb799ecbfc2f9d2ad7e8b1c6873553d058048d28d000028d141a1f54208d0a80a9c00815e0e08c352d31adf9475f3fcbe0cfe8e45ef36739d7167db9cda7717c85340bbb96f361a15e227e89787e1fb5e2f2f448148be104ef23d98fbee8d799419146f168c1f0bf93899ec180334254a55ecf90d2ad3392f4ca0c379b1966da8c1ecc90b2825b339450808eae3e2cd5572996d6c41fec4775324de04ee049198f9451461965f2ccf8da1a17f9d835e4f333976bc8675303859a19d47051a3810410e96e32f420430d3232192a322e18438c317e18e38ed11a63009b186c9c863b9af89ea3a4acce7ba767ef643a4dd34956e9cdd8e4aa947f4f137f5c958ad94f8eaf0b7b10140325c60661e0110612611011869830528f80b105184b800104182b6c604cd0ed8427253dafd6517f4359a98a47e68cf2a637e92a552d95decff4bf449ee3cbeaba2f94f822e88bee962dac33efbc22c54a736d95868d51e7c54b5326cd7575378b176d5a62cccdf7e2c80b222f02d045165dccba87e4df9fd1c03a61f655adab8b09b850838ba454cae5b9b519b4d91f966b5e166de76191858f765c3cf161f9cf5c68da7c689e4043d4dd1ea3a03bf16c418ce6c9c6724cb7b8c01663ba1b8b6248eba46d31dbb600925b286979323991166f362dd4b4746941060cc55a2475f768a113b3ff855f57fb9a450d59e89c6123c39912b078030b34ddf23f0bd6be62bac512f958e7e540f0b3b09afdf1b5af580c8b2f5898241657d02ba65c0141cbff4e1f16ea25622baab0a2b3a28396d36376deb95531a68ab3e1a8445426ec1e65684600000000431000003070a0583822968ba6f331f7011400005cc69450cd942cd023994408192330000000000000000090a942464d215985001df9d627c130371e7d84919cc67efbbd64c8b668978026e09cba9a1f30c02dbf976f68c368953acfde6a8bb57db22dce188a538a4c1ae70e4a29ee0c76bdf257ca0609e2e753e6faee7505a0db5c7f76690e4c34ccfe5e77bf1aba66e027fec4d8b1c8c7ff31db6958a89760c49726f2e06a3c222d3fb7b7ae67bb6965895f8dda02b38556ad7cdef301fbec98c614e68dd80d7ed5e4f45e94f78113da7ae1a318220796cfa48d6aec373bd33a6b0043ce0c098a4b9e507b3d6c63f7ddbfe40a2fb974b461d7228fa399f840aab811ac6012245a8f203defec7104f38bf6e61f096540e6b5a9da257cd48443816cacf68529cf5d98eeafc9f9dedc02b9816b1cb2b48725687d496b9750a58c82de681a733d2265fac62be97c2b7e272bdaef747ac97dbf05eff1fbddfd05750f4265836d629ffd50f959b1fb53fd3de7ca3fedb751f00be97d9d5dfc1fcbcc89ed77ee5c2688cf1d8ef1ee381adbfd96c814a8d668895e9b69644747a4af64149526da3829aed90333be55fe0110fa2358f3714d3d40a8cb82fdc8d8b9c3c65709e962b7733079141a4bae6911a965248be9a3273b4c25549b15e8295cd0d488dae8f7a4a626acc1a9272a22a4dc2249aa4ca10471e3fe4691b7d64bed207e876c00961d80b543534d535e62e75b39a0abf9205af98261e7c60842fe9608b27e363edb7adc806e0ba43a5c3b7adb0b48e94edfd318c620e601f6919f6f3adf6566027029a2ef983ed18f71d01de88da5f756476ecbf834b47173c49ee016655f8a097bdea53bf8e01b4e454c61a35e80e0ac297b2de2ebcec79bbb96c08f83945911e7084c4513b9c8b856d9f30869bc45e92bd2f37b4094852bed5cfbfa5cf193ee1f7d2b093e24cae3f5320c86416743d147fcde309da659d8b6da396346d04df36e32f0c746743cb5b768b07291c885440f6ea86272a924f07580fd6730c0ff605ef2249670e2eaf2143f910ee4cfd5cd8934aae443793a55a6478a224b353e39c9e1292540c3b1382518822913b0ae524c218f0b788da686a188c9fde143ad20643a1cd3451a20049355f89f7e4659c139b395a6ef8aaa8bd616f34bd37a89e45ebe1337b7c3a07a5adea52a6bf4200a4004003c14f8651fc240705a9808675301d61bfc2aac502644d42388fb5350fb7289e8dd6b90064b2d150e47b87cd6422f39188c7de1c183e680fa1a7828f86491411ee5c58565506e597023cc4ce5b70538e745474e69ebb99886a469ee01341fcdc6e0b2f42894e24275d347a317a6ea77468b8bcb661fa3c58cf3529e4384da28072fca41e1c380abe36e74bc6397fb25eccf5090c376a4d4b20842ebab32bcff02c6237fd143f1f13644b855acda4cf8818688595ca71c15b869eab2b40fab65c18f3a46871468ffb0a73409f5a61bd70c5a8e5928b5cf4ac965f817fb83946ef6b9cd197de22820f6facd221d3ba87a55801f6b487d16a52975140c1334f6617ff0cf40471b208d983466d458d136b878d818f95efef450ce9a470024cfd793fd2c877abfc9f8d7d9183ab6c707de267b2406388f5e4cbbdd85b8270f9591e20db28f869e274ecc57e936ae71af7fa0cb0b3d81a96310940188d86f27427d1e711dedd97569df248e2e856cbd66041163b6550d4a0389eae3f977afa5407a6734f9092d4d5e1610d77e3dc9dd6703e9a54fec196120677360825744efd432e6eb512b09f9e2f817d06084f71ef853925b8ca170bc92e96137db283c8db0195caee6545878a729b58c056afa77c8efd9100626af856bc3662fb51519749c4b17ae30e1bd359c8fc08dcc474f17b43601c6fc6118a513be4d9345549774dc0725db1863c5bc7783fd050a3daf2f8ddee14b30b94271dc823feb914dad2a900f09baeccb6381736343b5c7436178cdceee85c275718e0af4f296b1c13692bcfea66bebeba19f22bd5320f6dd3de68d6623de92ab5d0f491033defe8ba8333814c9d943f3a0333844b1e53801689a96b6e0c6af5dba3ed2d0c1e383b5827462675adfc89af01cbfd8e292f0d140d9f84ae14baeec2fb8588fca636526ca157bb884d00dae555bfa4e9f47054104f215920c55386926ef48a7c295e96d880c2dbc4322a06792c12e50dcf4965e1bc96a868449cc75b8db18cdce342afb1994dd32035d352c46ba827f552546ae18c7ac28d9777509d70dfefbfdfe807d97c6edb9f04c8796cc8502f8693e06e354c0024ef9bc379d8f74b6cc2822aa4d105a5cfce0486a7cd284d5d2d7e002d1ceb44dbda2cbabffed4150082cdbceab54cb13fa677393c093888a0890c57bcbc634f834ff296da1893d02830abd23b0416e32e860db5539da837dbde2a4ef4874f539694f87754c74c82716eb1cdf6b1e653470739c8ec6793111bfac24c71491f01f2dc33e1456079687851b02275af2f5d472b847c868c1f28bc763954406b782a65f1a10edca5e105b4b6c636aab91a85c57a661f9c2b54272759cded713ff28a4b5af444dd8cd2ad4e6776a984e2c449ffeef699d3e6db7e152b7f5baf85164e50fdb44ed75cb3c521b30f4a021893d28b40c9c6521233193f78fafce0a63f4a49769e410be65520594e6c1601397d31f6dec1172910c51bd19ac6e26dc11d928c7589abc356462f6b280a9be749337801fa3ccc0cc1882d101fc54696a895d1d426254db212dd8c20fc79736e014d7e2c929499a2d36127821ef17dfe600e2cb827f51abfbe8282821cd4c7894920d484282478abadd40a2e6146c49eacdfde2ea3d33e7bb1ca4e27576627a681c279902660b61b42b4a97a565b0321de79f304889a8b9381a0b72e21359e0688948325e5ee58d1473683cb31d1364769197c89b03ca564f9c056b77112bc2f79ab79f3dbfef3c484025df416dc4b3c6832163d972d50206e43f37b2efc175280d222b9f11aa457f348acb298059fea9898ebc6abd1862db67c8625d4d4f3a9cfe5ada582d5f0599a81aba34a41237ea4caf84b7b7cf3808928daa1361383a836556f1176108dbab6775756d19180e5f1dd76d501b4c34373e262d85fffa26a614eb903029dd9941cb657395af86b715d827ba2c9fdf581836f3e9d6e03c4134c0239957c6baf8ecce04bde90cac935087f16396c743d93db54465f0d59aea78d28e8cabedb367e0cc699c1057232804697bf9b195fb596fbbb7705fd26e1b3873ef9710f5534125234f023e4e1b6228999d92ca3a132dc6cb56749a724c387e8c11d4e071efa1d0eaffbf3777c040397e6faac2992f52caf292074713bd891fcaef27afffaa82fc61efe1e167e402105353bc97b14d44f43d10368b26823833bf7c1343ffc837c95f3f5d209659bd2a616ef4243d53f62bcab41f56d287cd942263f6b38177669edd763a71188ff7355e96453da4af68c5e189b2d379c9a323b8823607e48f568709d5ea637052464233af453de8f854971ef340660d39b56e114975730c30ab6b1a3886fb29741f307d4b145d9cab1dcb93eaa2645996abba5a0532e366da069690f078542d1d6668d9242afd28c7a9a3dd98a844b1377ce450542f40d39a0bceac69781f28271ad3ac509bbcc78a2c6c3c7f6bf968ae60cc2491b7ec298ff7ac20ce3d85383dd7f1f943ed028b3433391bfebc986372e26208e49d58ca6b414a38fa5c48d3396464fe330e229c25778a838a7f9060eed7f786182f6ec67d2be32e055a8fe7ea6630eb66553458ea413a94ba4e579aa673fa2e3394b3027153c1e5c6403cd7703ae297675d2eab9982a0c9b33dd3035e3efd177a6382678f0e1e63380ad6292ee157bc06b1a3e7057a69479fda49442706e790207ffedc06e1493c3a7df5d3f00e363f552712501563aef8bc751e777d25edec731e188963284bbf3fdd5af85164e731e6c3403a689daff6825daf35d57a9768cca21c61448437afd642b2437b5a4db71e0df7337ff125633d89246ec6316481f60f1a601d7e73224314c1e9436535d9dd41503feacee4278da8327c6e2f499750156b4988931cfceabbdf1f2ee6ab06de081beefdf4781758ff5575f6aebefb755235fbdcf201c8c173751ae1a21cfa43cedd858b71f447ebd4ce8a2c789862a3bfc5884303a5d68140adec0fd1297d1f7e39a248f1888cd2a858a06ef20d400e699457ff4c41617453a8b65c8b1e0c41db14e7c1dc89fbac0c195f5f6be763cb2cdaa936aaca50d5a8be9dd808d259412bad6878115db7908c098530f4dca5233afa87c6483a6a81000e8c34f2e3d1bf853350b04f31193a2b2812340b7127e40cf5f2bcffb4011d9ab65e8a6a2caa26732d07f215702df003218d32c069133e1cb204dd124d97efe4c2ef9e05dfd77aa06c26ed86b7aac81104c27efaa5ddacd4a4b8beab333e646e10f183d3b3cedd4e5dcabf40f8e622b0e8d737612f42626868217467711aedfe1195725a875ea46d3b7b1f1bd57c7666625d035bf916c746d13a7a0ba5919122f9e20e228ccebe9e1ee905f538625cba27df234ebde21b1ba6219b2b370bc31ef965af90309d2db4b076049aae68d0e8f0865cf681a2c1e2f1a7fe5d541c7eb294598d8aa314e9c6a0aefa3a8ffb1f73599b85eab8e01810ec2db177eba48d371013fa0e9550e129a0906b94fa7ad2f932261270aba04b60d38a90483924837cf60c3a29e932226b65a5999dd16d5eccc1914864cfa350ddf512bb185a284b5188cb14219573d59e933e18f53c37c5742f92ce4f20c4d2253c71485d96e0ca40f95567980136b9d33d43699dcbe3d4e04cc9866d0c2d85ed64d3af1c99ccabf483e710d9f736e8fc96942f63e10047f934cfafe93802b8fe65bd9faffe32d2b39af1ec8bf4d3825bcc163518ad36b927fc28f82edfb701805f30b5b44845153c79da3ef0385cbe27c8569d6d7d0a8563a344f9c01e83c687edba47d017d9eaff0e3552bbaac485d3fabe1e12cd18fc10dbb01fe5d82dcdb0bf25a1b5eaeefeb211ce2a6341438176cf8db8c72cab30537a9b8fda7205f1a017ec14019f85ed7532809bbce14ee635d4acc91902ba564b475e5725aee306495b40d1e79ca675b8cbb7ec16ddea95f8d998c03a9260ac85f0bea60c040eaae52e117d5bb40a403e9546b1149ccd25f57381b68fc500d58d36cc4d878a9af9867d4427e43d9603557d58399bf77a37b680e65307802ef4254fe60d4dc57d537a23dfc7f938e8bf65ad145679181a4bcc8d184de1591c57f3bb748d1b52dc106338fc034bef884297879b39d17bb354c6e2890fbe2aeece67e703530aae4b8b5065d3cf8932e4349ceabfcf147c5088f31201e396d7a04eb4920e8cf58120726efa7e8f0f5a63137fea9aa9b3ec7a68ee9d201bf14a41d369b48556941a762c03e5058e0b4f1fc52b0ac47b3aaca58f8e4723a0a0771aa431b969b80be4495eb7672376878171f54ac844f4b871798ecd2ab8308cba142a023d6304aa1de773d8908cc460df24f534e46916d8c044b63d5eb4eefc3e6681ee150f659537dd48fd6c49b1a8ad552d640949a2f447ef67a2808798ec37982b63d0662bec4012226c8d7935df040f197274d69ca0f47f741e51f153ffd2a2f2d243b71ab19f7d71e03d23cda7c65f242046e246deaf3192f5db8094a6d7ecbc9d1177a10c9f1caef899b5ba6929dff43e8cc6c3aaa907d5422fd8e23f04c446d9990437ef9cbdc33fb82f8ec9c2aa44ad0666503913c336b24893a2d68e59f960be16210686a661189c87bc22bd41333583f46c28d8064ab1ad1e5e02963f56e7ef5ed7c397024f53c7a722cbb8f63b348833b463c9a5e3e9cd3a85fff6b541e96936e889565332816453ae3cc072e772006380b248cede95c9c6bf160e5919ad1be19cd0bdbc8b022fa3e43c9622be7315f193dc4eecec7ce44fa37323693fa43567ae929a9ce18d3e9694bdee2cc9e625382177f9de1b693cc4bc451bdbafd0eb0cecaa54d39e839d32e4317d9d246c2ed4fc3937fd05af9de2f90e4213cada64ecf1baea5e52b67f8b0c3ec45cd941c76cd12425c42ca8757a15dae9a8284a5964a14cdcea5018d7c86728b60f801ea3663cfca180285c05d39532670962c9bf153c576e282b30eacb75807ea68738c7cfbf813f41af9dd14a74e421dcbd5b722a2b8dc31efca4983f491d6aac92a5e429902615ef14d7422566853880dfad4094d446f4493b19b0ffb443f00e9678d365aabdfa37a6c4a939c1e0cde312b8daaef3df6515e89ac72a41a344c370b91109e1899133204a39e98775f218fd860f2f7f7c518f2e4a2fcca47be2d44200e2a39f0e444ac6dae6407cf89b28baf728c684b34e4905fa1cf539c1d3f548a2206af8450a37eadfcc83538013b07fd2051925276a1804ca6fc371a7341b6999aff15f31b4d867679ed1bf88cb91e40c9540b9244ed6133d8c3e7792d59b464368eedf8621bf6f120617111e1cb06ea60f3fe5e9055cfec82eab836084cfb307636933efb071ae1173a1b49c4338c87b786236ccc3542b52ab79015ba8f3dfc72c371bcc2950b39ae520bbf7c35a3dfb951881bde6d02d051dd7175ad904e0ada58e00447f0bdff1c0786b5b3ddb37f2bd63990856dc427927046f9758c475024fabbbd38588ff7ff7e8afb6d5ceaf2dd6a5f22e10c781062874311c3d6ed0d227951efdc3232ce476c8b1e5cb5a30800f7cae3b91a152b9d4227e23cf1f1e028d052ef6f7c12a9b53670121436e6e15ace8f05bbe247ed1f3b18d26ee70462ed16f107817901654ce78f90385d1e6dd252ecb533389edd0c9652b17cf087a056fdac43b9ab2f9c39517b2d555e166083044fba8510a716db579050d306d22148f67187d05e41d83f30f26373326a6d3b810bbcde447bef4644ce7a6fdd80f8f5d0c0673f00f62d126b249501904acdb9d64a27cbefeea1a0f675e207033ef3eb9c468bb881e5169658fa760382c0812f6a79e4e0b8cb8dfbda4fbe2a4e2ca761cd8edb5b11ae833d2e2a32418df2183d5a1751696a564ce837cd0bff336a4fe7a75fdfe15718d68538b55b65c66201f2dd4e741f75d02e47812e52e530fd4054380d89a721a755289060d2bfbd7b014fb8dc43119644dd270aa3d0745cd306d8556407551c4595d6e4f60b2460f2cea6e21d73013e3282beb3a6b5896bb1398ac15ae9d343d97c7c872f29e2ab7a982f199650b03726f982399f162513ec2bc96741c22434d01b0fc709ac676ccd7736433874db6335b0fc843c214daad933c774f68c6a572a83ed1f964d99ae200e246092920c88eed037f859972674e1236c18805e45dc6b2874ea2a7f56b6834f8958bba4fec3f8cd6d174ef67dd689ca834e0630ccdaf1077cd2aa895f6bfb55bb3d9c969d85dfd25f49ea43c1a33ff00809eac2e574abf3c0b674e263af731edb36ad0da9bfeb0045615a856d91eb4cc81fc39347f4e14569456c940273d1e8537f27a9deb6094761fd2c083931b56096c38c4e3d6afc5b7fb8ecb6b6bce8b5c8e98052971338e434cbbc887fb4a671046a8f29e497297838a8a1f0f0e9ca3cd3b2da035be411e01096379dc6022f2c5b3f0dacfbca209ddeac854ac1c35e4aec7a670e94535ae0612763c7d25855d72c608777116f4d0097956daf47113da84bfb2e9d0cedc728b8bc53ce22d2a02c34b5fa719eb989ac37a4cd58c46b7a151641501b2b795e0f8ab8426601c0b1987d19a079b32e9a3663abbb3fa7696c43280a83dbf992e5e181ec51e46bb92d7bb8a148fc738aecdfd083fbdb634a222d33ee36d1a716581a9cf998b01a701dd234c05bad058e5522424573435cdd0d3b2701060f1804209904b0073fe988bbfe9233f7a0a33893cae28e8893868ebdfda2b8cc0c1b91eeae4c4cc8f51d0b2177f17611f87b225115d1093a427edc7838eb2cd82eedadaf17295a9a8812974197cd6138539cc729bd23c30884771ca9e70acf347de3a2e2c0995d203376bfefb9e16240044ec30c7f95571cc4e72b84c75057d16a8a1c1fd30964efda408ba801a3305bb1ca89b013d3f65cf663f8a6e2380f1623013031806d4fb37cf3cdfc4cb0928c36d2ec3a7ec0e8424cd802133854054f1e806be5bbee019d435a5519bee498ef3f048709663dc6f8fe04c5cfe411545a9c9ba2202d94857e6c5f6299372f0f98c3488df395ba59257498800591bb6391f788812e93807d6442965d6a620177a0962dbd83c45d6af7ba5f364fee09861c3989be0d92b1528a5139da5ac15fc9e962381cbe7bee7725b40ad3d7001fe99cd5fd17ebfe3c734b9bdb47bbb33f6dfb181ed1eb9e953d241e7ee9f7d8fda0e1e3e3a7fb4a3643bc9ce4f5cd06a34541e069146e35489cceb75dfb34bfc672d41efec56d210b3c382358331f4bb5f1a2bb0e713540261996b00e7a56c67e458b02bfb0b4502090d46b6beadaeb484a831250b1c8b4e30edb792c18f52f02606f889d5334eb65f2885cd795c8f4be00bc7d7e29f71f70b4bfb1e5df080d24afe7267c033f8a94ab242a246855751f076b917b58e0dd43c8de20ad39605ea0c20ddd09c9ca011789875272624a345c86cb472769e28128266697766aa161cb2edf7c0980f884f41b791decf3678fb765323b9d0d73ae6cb7f31783a6e403c3b5c6913e63833e4328e62f6fe63c2375cc5b1f00d7bc3958867b85f28e1c773424ed92bba235c7a5842500031d89402040bf4e6c5b4f77a857da5e804823c0e6eb48553f007f73afc9998162a28307eb786c2dc2b2812d186e97577370acdae2068ae64ed4f3c481b4a23c3c05fdc1780735ff345c36211ca83833ce89b690910170e9edb3b3d445b93a2c42a89593ed692a1d89ee869d291f2fed49ace12f89e7dff3b17265b2c772e51faffb30aaf56612a7aca4dc29bab81ce17e3ebba368a9fee1c3b4d0706f67a8a706019ad15293ef4498bab66f5a6222203eb514d4eb16494cc8c31ab773bc2fb763195a109ab77de330a286858d3470074a727368a5711b663509a16e1374438c1ff50e1f12b58a986837458d224756f2bb78aa1510ed7ab9aac83084c9ef23cacbcdb9480dbf155255cfee545be10e06ebd4c7addf5fd8dc9a979e176498db117d7dc5b1b7c5e02ef190bf71b4630a553eaa617d87c1d46ccc9e38cc4184524bd2e72d7b07876f6d03e02dfec6060667ffb8c2586fd3d4f4f1ecdde85d27272c9e81db5d6755686b71bb47064127842e69af37fe8d0455ce41f5d2c87615b11bb718eb477feb96da98766ad72f3b7c36dcb949a1fe1fea922a46a8525eb5c3fc09aa158254fedc68402fabb06e3e554bc4a0010015aec0c1b6fcec8829894717fd9c2ed688d1064dbc44716fc31dfccc6cdac51212a202228ec6c41388798e45a83ff9f10db6e1bc89d7b01bc151ff8836ad80c89597f61ac894b16b1234c44decb765945cc14e0e4b9eb38d6f97a0f6bef3c1cce07d8738ddca151395e431c7c082656a495f34194435d9e85ac41672cbd64b3b8330a980dd8634b795812c2ef089f06e0d890f49eca26a9841105043e68e184ced16fffcdeed95cee06f91b571d87085c07299d0b82e82181e2d2410111bb3dd74e2c5b4bea3730c243b7d0c3980a57e71ebc3d36f8ac82470161d856d9590c56396d2d7eaf6563ca03e101fe0e022223f97388b1ec69a93b791da08e84d2a4bc5c6fa8569723096034d49355071d1871d785a544ce5623333140d1db740983eaa8df308935cba7481d5a544abcb8193429dfe4918e942fc4a5ea3a2eb5a68ecab72ce525e66a0114985c383198e365c94f32e2f4007008f375f87ede780ae1638104cbc9ecb01e62006fd2b482a0c37ad447e08521d246bca10fb9d1cde9abeb7de08e093174dc70db55348aa7864f1108c2626bbe840f04719fa15f22c4bc72c7f072f83c3ec59dba4dc806087712a227cdfbf3447a3900fde0c3ff70c9edd1da517a8ae63adcf9c813a9bcd5dd57b58b51d61a46fab0bc4e0cd62ccc94f698736d31b585b0f65ce1602ef8c06270a01f6f794aa345f4b4a8ab6bdd1523338169f3058782d5f2949044173a5c3a13150a9fcc1a53f10a6322bc58ba9cb16fcf949bd18141e8fa4b207182e960e051bd6790f5b1de28465d9093fda079278112d386d6b373c408bb7d5a8c4a61dda0016a63cc61db02316878db2a8f0c41751ab445a486b2570a2d832792daa82a0f22041593b92112833189c2d941e1752b77353dfa112a4943a06278c4647b881a1af0b56c527ef3c262f7f878d8ae19ab017b8254a3e816eb8a9e90bb2e15f6a79789155a9e30e5aa14670227263a4a32f611fd38023cb47b553a7128bfe8a50b34597ce1bdbe8c2a834773e43fb2209af254bddcd82afa5cda0eff6513278ae3e2940c0e012c03f550efb53a99ed5b4eece49e45caabd8c375a7b20c68ba28c6d053bb71a8fea4a7dd94139e2c4a801605dd6156073be9538216233fb3f822b01a843590e85f081dd10728a5e00a93bc8856dce035526211d86768ef218520e43ebc98ad58190940fa16e4b1796b8df5681fe113f0084a4615236323386dac7781e96cb9a1896df64def392ff9b6be393e36f9c686cb97df1fe7bff29129e4afbc67e1db7f2d91dfa8174eaeeffba939141b0872af194a2f7c4b0dfa7651f49dd1e31b019efe8344af630a564fc41a09d645f660e6dfafc898d5c94b1b3ad1632d190450170c892a2271a0145de3292e48913d0407d40f536d4d83bfc947fcbde51f11f025e970ac4df81139e63e9f2224991be5cbeafeb08a8f33927f900456e3b212c93b39886dbf85e36118f42725be1a6fbc08577af19083b22c1fee89a9c8fbd7ddb0ad9119e61bd42c87fd5b56631072337eaa882c1448595d70d434155015bff85d9bbb29a706d7f2c634f0b2f07d2dca701bcd8c7ce22551654d419a32a184a4981757f5060a46503106558ae7a015fd910064d685d7945d0cfbe80d8d809259b162e598d9d59f91eb960778b551476d15a1829adf5cc52d296b7c65acf97a202a5c0bb6d204a3caf7f05c148c50a16b7e5c29dc45f8b22985d1eeae6613800c16eb59e096723c516f24ae01ba1546e6d2dd9129a289d4c61fa973462b9c8d20dfd2f4ade0f559f8a7c9be5e0e882d6c68f59dcaf4af3aad678a054da5e86c47a366ab43c5930d9343e409262fa75e42e1bed5f161ac16135120db0449fcd3a6b2b3024489e938d57a7d717058dd6999a682ad05a08a811f75ad149e66574a8f903b3e873e429bbd4e7edc67698ecb141b685baf98f2a9817414f0f802beb923909a1be48db7e404801bbcffa69947edb42a540d14d682c645adb55661cd251ac8598ced56577e4155ca482cc242015ca22c915807677e5999fd1a37ce6fd9b2b9af55307815ea43074ea453f4b4f62a2b6e6ed6e4027b470478907903999c0895f1e1aa557322a786ad4a3592c6bf8cb81fcffbb10054ba1190780172cc61dd4069d48e565e29a7e9f884def73b1bc1f22a8fb645a70e7c31e70278b32fd43fc67dc6c9c8c08aec59343a1c377664416f3bdfec2897b45dc5f118f18839e19e491ccd6ac3b7aec5b2747b99ef5bd3c93599c7917b7011a7733f5f4f01eab77f4887e31c89200bf7282737ed2a81151911e423ed44c261832444e54457f4e98b0af5a34ef0a6f2e615dc45481722d8eb0d7a0aefe2df6c7fabc9119411d706794c0b9dd5e22eed18f141d299456afd74b36657ace1d0088395a3d4689debeef45780271cc3ceab8195c2806e2ff168782497ecdcd0e564eacc8c4091222b9d1c18bc2a04fce78bf2e5a17e649fcf2b2f3a48584d007472aadd913d712e7003c471f9e728cd298f528ea68ce253f221b094b3422574dccc74a0d4cf0901d433f741781b1f53fe30abedb2f803ab6833f52dbd2cd7db63c64c1b57f07aa957b1850188f65d043ff291c460a663d6c537d017b015f4f6b8150c5aa6fd045086c3da08c2d14ca7daca982aba43ba125d4386efb56501d9e4bf4b49d4de7d87b854c497d29c507db757df478e25ba5768b37d87774d1c5475100867943e4f6b7b5a3de40763899cad367099acf90cc4815f6ea4fd38115ef20c801320c6264bbeffa40fc2a9f10d12623125d19ce1b604192b70fb80d19ced80de5d5a20dcf3cced45d080d8230637cdebc885904c7eac82d3a2f1428d59bc39275e52d368d6bd671e397520ff6fd3359c98514632214873ef10b7fe9a3cc8bdb39587a366fbbb532be05fdf7f8dffb3c0ef2f529ef5cf19f2fbc2a4f8f99e5c6f7b6ea6d1a1dd353abc43b3c080b6d2364377841142c56e53153af18fa0cbf3e379111080a7e9abccb4aecf6a49986fbd4a0699ada1f78a3eebaa600e4a01d68a502a0cc19cfe2f8c6470a1a91ca620fb5065d228abe23d5e3d0a98cd6406a0135c297754cda1bf81eb345ddcaa85430dd8776e527b861abe5773a109c1737d954ceecd3da0cb8e8057e6779542459a981f790a1d78849dca00edfd45401fc4afc29fedf4397268b1bf8833d87639b6b779d86f21381ab774fc6d61a0eedd2ae293cc5c1733c5b533202527138cea6cd8d4ecd5b44bc56a0455520e30c44d14cef818c94c73a69578a1b7bb3aeb864865660e39241f3e4a6a59167bbbe9dde638f565765285a3b24a5df5e36d51969dc6010c30c78589a1e227daa1362c1d450c3cd173c011f3b0cedb7b6e118b1b6ca011f9e206f5d8f5f1c6a4dfbee46c7d7a19693d8a4ca1cc87c6ec17ea474296808da2b3d89ad65b86fe8b4cd2dc10e3f9f7776bc6b7e803c76b08d5f17a5682dfa4fcb1250b2192282787d0367b1faea90df0669f19e6568379f5417e12db04604d1a78e43f130888805dff967c9381d9968fd9096a1838df938dcd559d8083d0a760ce88d7f6d094c90b1f18d4883e81507a6b1a700ce07b526f46f43b17d2c6be3fc43c1099ee992a5e50c79500b9b7990647efe2a20dfd81e55791d75d13ff14b53b57a26e79005c8c249807673d83fdff3c2563477afd1c9d45d1967c1f52d31ef33477980abc499592cf7d4f3fe00215d3a20104673e5ba733f40aac1ecce9c0fe0c2289b7d6f39785341764a2945634f6985f7cebe783f3bad9b92ae202d31f7216e8b1480c250ccb78c4b87f91bdf2d8f7b63294fb5bb9dc3a0131d7832b6fd2713df8bd2c5c69f2556da946d712ba07fa3ea44587ecbb9d26e9a50e4482945523f7efc980cc110a669b75c26ad69ce4211b9c0a7a6af812301bc9b9cce7225bfce9fddc4d9e222a7eb672ee66f09d94d9cdb2c642182b4e60260386a233193a19878ba94e1f8a007c87f9f7c1e622e7f8a3735263204eedb94c979941c54d7d64e13a73fcdc3b3db10213b7c274ff4223d7d8340c75284465fc38a6a9c4539514d2992737f8576e1164d625fcb5738f31769fd9b865f9a27bd7311efa9c0769cd681aca91ca5960edeccd4e0c048bdadd79937aea6fdcfb1f8acc74217b038be74f3a1828d1f69c370202e5efe206033d09e49021794f70150ffc546b763d01bdb148e8087777b767380416b48ced4c7f0872fbc33e0f518cf91c8e0d6a9443a043c326dd70252d70e4ef9e61174f7e308b77af2357bf146d88c19f2cfcd1d7d47fa291f6dfc02de94ed3f277e6b90fe8a73dc1913950e82363788b4f35c5fa84f8dd517d751833915ba3acee6aee95fc5d02fe7363be107123476783c91d2eb0ad10426551b53ba4a8986fdac2df7278356e6d5ce0260ffb1798265abc1b383f87e40cd3da64983a82b98e451a43d0fd38342ec799508614bbf78b0b8d6266eee1515fec98fe1dddaebaf0e3cbd5578ed23f0665cd729aea10fdaa6973d9181ce974133d59b2fe4e8e4c923d6fdb6aa0d84199a358662a067bc606b163a75268a49fac1c184cd9fa8fece774971d130b523082491867939bd6890aba123679773066aa3c478fda8304a7574a32fde7770bf6fd712b2c7c7446479212b6e32391d2dcebbd8434d5e5ddd79f117ef77fc6dfdc89f068362d380898753bf20a43a498e3405df7b86c3ddfe38c9d31b0a89fae9c784d78b27d274c7a5b621aa401c5eb5a596ceef19d2a4c6bc1078b7d83dd9306483aba2bec0ffb2eec27e6fb6d0ee6d07e93f0e47f39f5807d03c44777c70aeea8da3314f750156b09834661d0ca862c12b913a262588fe5c59983c78d3a4bec494ab0b1c0a0a698dd1e83d16ddda674c345bbc01944b0773b8ea05802bece6198fd2cf1ff8364e7d3875124774f68df00f1c48e062e2a6f037132f1e4ef81767183c471581101dc052431dd198720df1c9556ed43c7c9f0d3a504508aa73eaa49515625b4890a28bfb44ca0d5f56dab34ad2b9b6593f6e6cfdbee46301549e6b4a9c7986cbe300107a2c4b8888835d444176d86e7a7b045e0e4c9fbc999b8a0cb995158cfafcee2b1a536db539b5579c37156ee3598e189d24a77a5eb0e58380734c222e62321a21d6f25a357827f4c6df53c09890cf1004424de5a351a29141b819361f1bc1d4020fc8b8a55ba11b2821f990e96941904a15d897a55896c9cb8354751b33bed831b52adcd985006b3291ef84568cd7ec40e51ad14906e4dbed236a215e1be9de1a1a634f52311820416076da83b67f4d4f282f80ae286af54c8bcc9260070587f5d2a1175a723a67824ac7713d7063d653db846adfe841bc56623e19f6c446cd08a29b8aff0bbb237a23c98666d721e12adcef5f47853ce47ac4e1cf902b997c4a002f893d0fb81755465d335c35a152e556de0f38f00a4e56716bba533ae182d07b3d253648304c210dce9ba9b365bd53dae2f3a2827ded1ddd882a52f53d4e3b8162ccbf2f97a3555cb32bae5ca0138fed6c2f0101c8b21edfde473632d018ab9f60704a5613a8af51ca8303a4b4745c2c795efb18b56b6d66673ebed47aef8b1311a29ff6b80391fb8e43aa9fa89609076d96b3140cdb0437390ca1a4a29a0ccdf097c6127a63c8d5f401e50d7bc4149f1e933174e491d11b948d6a86eaff414805204c5c5ab81f4fdaea4fa3ccc54c18d3242f4da2eb84fb11e434d32d541e9e1d3cc42ca05118507980df70b80dcef0ee839cbe0d0a8c609b550388d576c217b625d7bebfe0a7d9a16a7f25ae2809d45759019e03975111521cb678695765b953961bf4bfdbcdf921f9142a61954158e529c1b361006ef379a89b71dbcc2bfb44d7bfdd2bfe1fd5c1ac7bc21b3d92a7604025da1b157ab1a56b1a6c7f1c0055f689a2c15b220eb615739177c4ea8289eea144edd3bebaa70b18cd5bdc1231a2165b925aab58d03dd149f88193cb7c841d72e7f40ce5c32f80ea8bfcc7300fb08325640e18320bc171c7a10d3639a6e091e8f0461457132a8f1f2dae521026d222c85e66bbf78f36c7f07813bba8f3c78eb3188aa7242394030744ea3c512be148eee7b743bb58d45e745387fe2900787a512c41351650165d01b1ab1e301271c24b6ce48a93c4a789eda66be8385c798ce7fe5e005307d913a2600e92987b5f4468c6f5bcc60531158a934e1521ec2255fdf5f4e399b3a899f7ff138b8c552c809e63c53c57ab3a839765e33d0414b1da24020bb89be390bc7b4c5f14e1650cc9b35a1a26bfc4505fe8730f02c12339425235883739bfe6770b4a49788326b18432773b8c6cdfb9c42c4ec2ecd2bfdbf836aa8c8e4b82de1bb87cf18333923703230553bceba172152105a8f218549584b5ea4705462c0e95f633d677625b8347a14b6ad69e59333f909b986841c8dbcd853046eb1b0de43ae1035abb0e0bd49d8d4b258ae26eb84e2be1b50a7e7de1b9628bd44904058879ee06add1b20a60a2295ed3e96e196f3e8323835e5ebac344f3d458d6093e04443a25921756b4b67fd1e4b2d42b03ac3fd0d6a839e21b220dd6e35b4df749cb726c71585361663969d4c7cbc329f8aa93ffaa1e9d2fe1efb24b048e7e5ca871c744d17ebd666d3b127267fefdca50031b75a4eebef533ef7dfa6b4a66154b8de3916209785917e07834d80f675327fe06cfc3bdaeddd8fdb362dcf7d146e2dc35fa5a0b942e4db21efcc9f0d6ee8afa0313014b5145603dcdb0abd1cee4e42fd7eef3188cde36712f95001b0621928fba4d99807f7f0ac2153c75404d57e783d86d16fe67f73831e765c7219b0b031edf93c6fd733d000ad53aa57e1884cc59e4754dd5a7723e16748c9f638d73ed6fbf1070f0c29cea07ee0bc7a7645eb100be7aa1b09bdd35e887b2e5757c5262c662f158300234d30ab2065c191c73463f05df9a6ffbedaaee86b921a2dae37b91bc864c2f5b2a2c012ec46821c859e2142b27ce3e62d1c43d2d46d9c68c0c7018b64833bfb2b444f8078df04c76913a6a75ff88090a65420d8ed4943c3095d3d2234838385a58b226c3c839595693807752183fd74cf9a63d046182124ebaf2b1f17529c9432f104af7286a5e14cbefd590bec08af5ad486a9a9a88fc3f88d204e480ffcbe3e7e8277ed826e5e8502c87c5d66a1d321f3cc795045d6ca2213adee0393ac929b0bbd73d377e0a6f34478631c13d3278f0c7e47fad8ecec118658e27e17edcf8fbd5b5c5a502f1b79f3b3fe81a470f7ad914caebf836ad222ec41c7d6cf827952e4842c43f97e154e50ff2dc1bc0674714e5ca196b71aa85f44077fc69f60fda30d1d5aca2798ec2cce5584d3b40d3eabeaf80ba2963383ea8c230c32a8af06512b52717a234b75be8ad7f68dfc3bf9238d2afe7c8fc191c78e65d62cf7d5b37c61160fae7da3d6fd74081bdfa3ae9e3444ea89514c0b6be4a4ec6bdf7af371e6b042466b901a4afe388b761233ef547a08c15b690bafc847d37c4eeb3f9405172af4376035e694889d0690176f0130447d8e94549595a109cf3cd31209517ec88a428436816f3f7c269ac86cc3a7be495e72ea7e2e6b08e9447ecb158a8888dfff5df8b0ee40a6c263b765cdf78b5b144f7c2d4db4f47bd1894efa03128dc394e667cda96e2c6f5c114b8e5b93daea45ca48d46c41a70b4e7509a29f1705e0afb62217ed80e93052da111e03e2643e2cc5cf348ee18a336bf2d1bc0369fe63b54bc4c1703bcbb5f3b4e1530359604d519838f2d4c4567f797750122e1aca2448708d82fbc26cb332d6ecff357a9f9690b93b737a42522f8adc5ed37acfbb8fcba1c450a1aceb0239804db047d72107f72d2e6792a073cd659df983771d7011eb32d426ea164efe9b1864d60c0fdcbc6c6e597c1e03d02ca0899cec4c287f0e3a39522cd214a1039aa46ec12a3b9b0f7f9a9e77970d2ea1fbb6fcfb25e275a821eb07e65ad9f937099f8a2d832a445ad7e4b023c6048cc0f5bdbbc8be81c7e9760b39535bdcd0b03949c2574ea66aa585d68e53b1f433ba2868b136d854da2cf3686f145f2e0fa0bd0c05660b34827f03d15914f00349671e9c3834fed235028fd1d442c92edc950f6e37dc76ae368572ef061adf9decd178e445556e1a10db7b03502abce549887eee65cb38c5585e35e922025209a30c08548e29bbfad3e414fd21a9cd4eef758c6645be64b503fd84a95c5b678a83bb04de99d5a1a515d75534048fdf6a42917d21fc876ce8609b3070524cce5150a02439f84c7cd94b469e83d828e12fc1576e5fc9f4631e048ea0dbc9cc1a5c784c70cca8208ecb4c8cb691b7c340588a03051d4200a1b82a392405fa692876eceb837e2db3777234365863d7bfd2057eb400b683a0c161b77e8ac053bd673b21bdde5505e09fb5760bff1a6cd7d9e8f0fb4071682aecc0855cd7673896e9cc898c9b6d26340dd021bc03c3a299c80fd2fe3d62b7d21187a8050d711884a195f9dcde53d4a3d67ed1fd6e4a013888c51bd5c30016ff3be04ace7f9270f06f6e35f07cab73c922f73c186c0930442e1ddbaa4a10ee870093f422de014ec61405c6a87fac8db89a4926d1f7fd8d89d8800c56955420fa2a8f9241e64519e84d92b5810e033ce672b95b87bc8f3cfeab511490731f405cae97c61ab62fd59714d29a169a75a37fe4e96724dc65d46baaf2cd0bd408b42355cbca616120df580fdca0c00e06f2078939a1ebd20d39956aa5d58dfa82a4a7b44fd4bb7edd0ba1202c7becb0c7ba4046bd473fb9f8b3d3c2e4900d425a7f13adc61345ce70894541f0ed7f5ab7dba28673a497135f2038fe1272509e3548bc567be7e8eb6aa43b25de75e0cfda93371c501cb4198cf827c46122f8015a601fdf4d0a1c95ff959d3fe40a1d3d8d345ed9e8f463c7967836db001529e90c729db6d43f42228aff663416271ef87fceab1c4a101ae4b1b8fb1305c79be2e4507cdf073916392a022bbbf14439e24fd5adb922d9d2596196ae36f09f3c834851b8082a5e9ffd16e2980f972b235e63c7fe7f8d02b4d002f167120df4fe0c0bf3650a0ca8f085896ca7b43ec45e0c4181db4268cab0e6befec4b410d844df814b6f6b017b6069b8b35ae26cc507ef28e314da2847753fb2e7a6d7c9c2217d4cec2b3e9460b3d4bd29e8c352dfcb23c267599c0b701b586e8c6a9cc64dbce4d76701d5c6308c4b0c9993affe01484eea62d299ccc6b0242740a12ce2c1b33886c957a90e76f7f92219f469f41603078e80345118e2af81bbdd1894d24a1004d3be2816a5bfa4fbdde6d0e1ad1389fa4f070646969555fd60f98ec02aa7b2e885bca72fe65922f489679f8a660e1dae92374c40a3b30299bc98a3d9b78c9faa3585b47ae04484300c1ad84265005510cb2f5e7ce0e5f2b8599ce4438ccdebc58d8568f6396eaa9409a06c63c54982175b89af94792748f1765a6eb095bca3c53e1ce2b0fb3c98100b72e1f25625e95d36b6d12fb1b6ddda0073c392567c6af7c23bac7aa01bfb5e7077e1ff5980fc8bc787fbd89263b73a3e4179ef28852952056c5abdeb6b4dcd6f0ce5e987d7ba3e2e0ccf53014b1011516fe93b6da251ec7e307347fe7b4bedc7bae7ef8134ef0eb453d6375961beec45068d4a8c5d6644e24243c8389c8f32b453b0edb237cf5940c9f7e86f74e26c40df15fea362da4d5c293f1b288bffa72a9298a0a067982087bb3aa26c42119cdac1d9e4a7fe540ad64cd027075c9c147019332ec54aa7708008c18d3516331d8e38fbd63b7abd5c3e27d4bd723bfdbb2e3f9cedf380cd75f55a468a85be5cb388ad6eb9393767d9a4c86206063c309d96391410f3841f8aa0e979cee7a4a39f6c4962805c195fdd8174bb2c33b3b2a4e2ab9a6fdf23ed1dd3a1edff705c7bade879808e385af9085b00d0c4daf9c36c8733cbfcdf251334d5549fa8c48e81c74601f0e2fcf6c5bdbb919d3e1da08b6a0b281092d2cbaa7df14931db49499f028fcafa850d8037749321c184e72dcb7e727fd206063cb334ec23cce3c638893fb0309b0f93748c14a7a8cff6e7979f957c0c08637ad630fa621924f85e67956abf67acbc3ee03b73b91e723acd4d91f8a5a891fd74e6862e70e304f4e6b35d143aa356df416cdb8bdf303bb0130de323950fd4dbc430de189912e11aba2eedaaae0485b983b717c4d66367f73f282ce8b1e4ceaf16f6f649e9c55d6f03e45f44f0de1f303c074c32cc71f23f9e93a778a23a2f041fbed3c4d42e55451746336790ce352c1189605d84fddea6563a1f4db1c0a80752785fb9e78c1a3e63900aafafcbcb5c28af84c35f8b722d5a54e38af40649413071690f6f75841a85770c79b9c4579704452adb8b3131d4163945e9ad2a5dcc7ac8b4d285cb86bdbeac8dc480041777b774d9f6757d3a0c03aba604b097cd81f5bd2719161ad680b00b36d2fb14a8c3bed0703a3d1e898fedf863ee302bd5ac4650d7fe777a3a3bb01e739733c2cb182eb6cda5bc99b759f984ff06bb8cf6ae37b2f914e0d521fd0dc7ec915b7ffacd5fb23510108e9bb05d7c6c6b4e02cce6fd61e454125aa8b0d29b0ef0b89d505b9acaed089796ede0169136891450cd08234b481214186a1187a22a15b74fb885afc6591824e36dc2833b359fed4ba76f3d0edc2eefe5f383257ecee346f166431966aebb1abf722d5a0bde6cdb66b6826345faa84261813b8cef7ab98fd7538b27a23cb3fa00b8925797c2c03dadfbf9a8492f0b86683eb47d74f258be556c61a7a19dc4198f6acac67152c06051325e506c5dd602656907ab5f584dd96dd2c3647dc6ab4999dfdc9d398f79f033737dbf9e157f41a28830a4e5fc4113402f233846bd20ad98b312fb892f72162383db6a3029f42d2142b77e59ee7b0c92daf174dba53fe9c95730a03b561f378e54dd491b0afe26149f2e635f531674ffbf89a7aa2c2f72d0d0ee6b4db19b9fbbb50d2c2170f2ed1b68f388d00dea6d2ff696459448c1fb6bd1041218301138e561f23092ad3ceb86eaaf97b1681219dce2d4e3efe4b1ca1ec07d81683fcf4012030bb8b43d69aac72c489ba92e8fa81c5c98750b199abc8c62b7b010253af0b0aea834f3ee0f39e79af43d7aabd2e0ef715ff7c5af23ce2c65396549ae02512864bbcd8048065055f65ccc07dfbd4b0fdc25c537683dbafd108c1d92e11785acdd1f965a2882debf6415500191f927a66703fc732811ec59c477d297a5d6499ff357ad7ee16cff55b22d48ff48063730a5dd50e04cab98f79a2cfd0306e687b22e636114ff57dae6ef7025b705a9f3086396371abb7f474c23ae02e2d311c1bc27755e059895f6fcb3a1ce74e3ddf7b8c1ce24072f355b171bb7918af4fbc79843f1f6f311b29f1acadbade279d2dd3ad6db61c3a2d904f36fb3725bef7d0df444b22dbd73e3e61aaa7c2275c8cc0d2e8fee67a3848392ba2da96c0c2051f707a3de2df5f3d7ed8ab8c08fa8789daa7da26ec21a3bdc91a14ca2eaf22b13de89e46995e8fded4c3ac85f06a68c2b71b8d9f8c97e31e37dba5046a54886782c8b241135421640123d1cd4002e2b6f10872a5d0e43982541554fda93685d6476f48ace0dee712f76a7ee1c8194beb0eefae6cc218496c7dd73a57971ebfac82e7ee515eec4844ce7e8acb56cc191a0a5e4855b17b84680c2b6c2215627e3ee6f39326fdd9f0ad3e0e60f792253c7d325f5df676fe541b033b5d5dc59b2aff4d20c03e3cbf2f118a9734037cd7315420b06cc58bb4763710a5944e8524618c55aa4544180fae982e3b7b1e99e4dca6f09fae7c9d7924552b62cf790c9094cc1574d4d04b4dd45c822912bdfb2b612f25a69456a0778c585e3af532ba0bf2ed3697a785a46bb06f9cfaf0778092be8d14fe568f6482ae6cce7390b10db36554c8abe15e93959bd5c08ba8188bb40e1fb2c8b0603f352211fb3f263793b8def51c6ce672283b966c27a81bfcfe54614d035fef60fe523a2a92ebb377cfdb75fdee860b5c4ba5ceb2e35faf1caef3635e9ec7b1539c4cf63d6ec8c7dc417c853bb2b4ceb1f09ec771ecb92188b84e1d1f213dbfed8e27cc2fbbf83c6707243948ec4cfdcb2486b653fa81898d2ec9fc1d10320c28f782c2ebd7d672a78b97eae4e3c46c83390ce51ed55b31219bed27a68acbc18c6d93c572176b9ba12a0c709ab4d9c2db0545734d6a5be620e5decd2980d51220f6861e02328f42bfda4e53e567d6a5e9fb2b48af466faaa6467ca5c3326f8b6615d39bee2ba4d6adb89d1426e70a3ce15de235a010bf1a409769c03266fb4f47c5b48f3817e470af49e81c81ccfd23ec4518289968879fdb94b039fd322f9ae4dbd4700717580a7b7de461aede85b8b8129eae7d5ab9f82801cae45052095b015ed5830d97dd7d33d991848f11150fe540dc1eacf41245b781da677da2211d63075b48544d77c3bbb211429e08311722d048118ec62b3ec1198126e233d5ec35f49ab634e5ad5f36d5c4b811c549740a2fc1503e5cb6e65dc4cbf227f8032d9f92bb4c04464d05c497f935fc16f4f1f50bd62bf5ab545afd81bfec8e715b802df3c63cd7785ecfdb644be37ba0609fc2ae7d7b025909ee38a2249bf246d66adf0cb47b1ac27a7f0a9ae823bc2191714e978c848198a1772d0e5c685f8d03ef506f3c22089fdc35864e5bf016890044fc91ce4ae704be666cdf30ded562ec3ae70858bb763c39db7cd34cc5f859f7dabd5d1dd3144a1594df86b261ba0cea750de25e61104071e2b4a1b2f7ef53981a41f161b32412f2f0cbac68ae3fb6e9054280027ad3aeca4b81c3ee273e5d2bf10ac200c0a9fa0541cba06fd3f29b13e379e7fc350e79c858728391100874ed8c9ec6184e97ec212f562216edb6d41e76ebb04238e9db510dd4334f4883c42691196c140265e89e9e4ee736b62df8454611f4aed90422ca7e8c93ab1b69aa11bbd17755d2f295e72ec36f8ae64f01d85649bfdfd280ade75f5187f14f9bbd03ba078289c2efce400431195866304c7c82801a5a476765dc273a2a53e5a407833dade13191ad2364b7e5831066a155f452c33ed795a1def7663ec40ebb3b7c77770be64e3298e2d15df3c76aa5f0382bed7b95dd900ff06707624e97dc9933ef2bf88a22f072ace43f5926cfcec9fc781e0ff246758bde0cbe71c03c0791068df9a74e8ebbe6c8b2611f7124fae45786c94a7bc1e4a720da7a167c0398dc6bbcd755d733340f868a053f27aadbdf4790cff4d0aa5eac85013749d51cb3cd1f85b42d2e30c42d9508b1304649c2c7e3909f20a6f834f11b6cf70ad5ca591e7c1f9b181de76466f5b1a6c1615f56c163e3f681e48642b52ec6f849549ccfc9237f5623fa507360d70b94d230ef1524d13edfabb91633bc5a741561b31c75d239ea2f296db3a496763a0e409ededdb7e39bf84441215150de6f5ae9ea5be4bc46084e42233a5cf81b4b60315329c55c49527bf0b6a6ae7d28aed9fb5b27b5013606389baf1cc904483dc732f9a87c6401978d3f1f7d1a8983bd136171de353b5e5ffed37fece0385768050d2a1a5d3a90d1b1d57c7876eba4d69dfd0884dc154c749cb9397d92c0974110301871575a36bb12e9408de18bf58d6cc142ee803a977cd1a780b7e054553048a0b9a0bc75152e0c2420ff82f7d4c7a0971175ebac111b8df105857e300c0a189cd63284935ee41c8c31e630343c982ad2f19e40689e63db284e7fdda2220a7c72a4db6228e9844c91cb6d853a8820dcde728494794bca23e896925c9510073ffb63ab97795969454c61153b26728595035e13fe4fbcbcebbeb79dc2c96840911c6420182a6477dfa86c1e7db90e0d07a01c2d9487f0d27d775a4a68d1b89d932fab1fbec3b7108a3edfc3e73f24c7e9ee893f54de2118e6749871d0caed1693b9c7e04ec6a34228c5005785aaa5df9534a6128690f907e653399b8d4764a66ac1d3eb72edf242a6f6524cac8021e58760ac9feb434e88675f17aef2b6ba23d1d9e5c966579f1338c126a9c3e884cc098b0613e89f26e89aaac71e6bbbe3219f7f546013e737551671aea88e4fab38c39bebe3ad9f0f6397b6aee4dfdc53d81938bca5126d23d52205576f38a27b1794283fadaea16b8a121a0812d83b0d7dd0e986dfce57bf57df15d9b5e2f53baae45910a1294611173b41c209ea6c1a36a43918282f4eac988cf6dca614774e06827803ce8fb78302e36beb764cc8e8de054adf1dd0dd7255cb708111721795fb9bd2f674f4f3bbf2be905de33756781bdbb2310d647a81f3425b6aa86dce55125cf25368b3f1ad19ffb8130a20e89863bd46c61f407b9242d4f7cc199524abe3800592cd9ca34e141e5da534a3b9aa7f41a73148c99689972cfe9042097c5425b9503d2949264694ba032421d3b35e0e4a498854d1771e4a012cb79f9241d3500c14ef6596d377becff980c3f52244065357e239896adb6ae7ec873337728066c5fae4613785146d4d40a4a920530c55b8de231cc4a1354ccbc5ed875b4a3b18f5c814175bab55661c4d85a3c929f65451ab74e6aef097435a06b2beea8a0a8cad9a2b2d2332b633813902adb2648007b2053fc698e5500178e0bd38f0cfc749eaf209d26ee21dfa64ef9f4c3c7ee5d4cbd90565cf09ee52a9c4789c2469ab174e08cfbc09cdb2ca7fca6ebe66a73cef03a213b4d1fdf1d0780fd9334478e4439d7c525446c02b758c3dcc8e16c45f611c606c19570bb831498897959f201369266d9c96c76368a2b7312b4a22de1d6e21898e51361eb75ac9007bc611a0036f4b321809257e45b23049090da79be5ffabe802991f7f0b322a724807192f8262c9b23b450d5884811376c0150d27ba950e9b77172e739741669e51bf7166e3d67db04727715330668fb712051ab1a5d7882790efb094555c2af3c0a23280f48cef7cdc3e5843dd16f21a798826ba499e5381d2b79a576e90c89189d828339864df902c7efd57da0b758898cc984eb0107fbc0d6316244925d25bde5bf363ad39adc4cf85a76474cae29bde4ad149d4ba5a141a14cbe7aec4f4b3074a622326dad69d38f784f7617e566eb82003827d1316e1e133c277fb7ad9089de50d299771f90f9e7f4c673a63fac96957694f508baa56437f15da6757fd5ae24170cce38162d43774e885be2a5eb0678eea54e7e6078d3f065d1208b17e9f8a2707340d2473193b1317f8e6178de90f62c20667c9a03ed2bc5e2f1dd8c0e761586d096cdde9073f23fe00d67273143bda0d5e2d3a74ded65b25718c5ecc4d879cddbda0664346ac4415569d3a874066c7f83e7395575afd10d696cacfa282780313cbd115868ecf04948ceed878750e722227bd3caa146f5d14186b2671101562ec679593876e467b4d664e3da2b145665103ad23419734debb2949792d896b226c9f8c5b20cf489415cbf23233b3863a5a156f057c3ca7813f8483e89889b0da7d9abec214b5ce48c3757c7c68425d000fb08f450eabd03f09e1cc08736546f7e3d957f770f1087fc94b26e773573b2ddbf0ceb8e76a1aada2f6bc2d44327952b6934bf4dafd880186541fafad1defe7513a4dff2d414207411907a47df88ea92d3fcf7a4d2b7a58963b83eab1f25e6e707b464d937cfa01d0eff134acf4db23d7b0bcd4d579b2a90a760521a7b5e8c37c1e8a911d453269172819dc024e7d8e9f0a1bc7a3e560fa2f4cb8cbd5a063737a43f2b38ca87d3c378e9af86adbae455c2f91a7a804189b0b0fd21bfff4fd20d58a7eea37b5c5d80d4e52d568c0b874b020b03b965cbd7086f91765ad243511ed69099de34a60b3e2fbdf530243702bd09f2ee192fe24b11e1125f956168eee39b4a575aabb3a1b0952f92dddf1eea929dcb29bf7a074422db4c93e73c01f10c1ddcff9c64a662bf7e979c001c78a43e3de4bbda74436066e30dde3b349e8ca90e3d84f216ee03c9b6b53c747138f6bafbf2251ea7782fbe678eed12082e7151a61f8b192b911c3dd4635bef2ae584f37654798638adbfc49ada30424777fc9cf7b20d39e83cc97c960b1dc8e5f797286e4599f343ce33f1230c715ac6a1d800288e2891939c3717555f09f1fb9f6474b2c6ae6d403fbbd49c418b96a0b6649f107ada08afeabba561bf729446fd1e3142092819cf174bbee84d31ac9e4fabf410628979705237e2b467383e43af0a90fe602602c7c22c9ab62b6fca1ec917e3c6b235f3a7a777a5ebe17b611acf9bceff558dfd27f6fe318fe6c6d320a72ac4bbaeb19909cd56c8d495d12f3bbbfa1b92ee4b6d06f19a484246298eda96747679641d6f941db41d3f2ee7d7589ed6f87a7b8c29b0aec191986e2500e6cd2ae129b09e49b5f444492e9921f0c7beb688f1ef602d38eb75107de92b1e9b74853eb649b9d60f90c3c3e3df10cc1e4554639859cd29f4389ed4bcad4a16bf7bc4150d01aefbfc620c0b79c13f9cf42a007df83f2f7b9691feca73cd67b06dae946da973fc10079843c383398775de0c5e6af547e7ce74dac8344b2857d8503355454b8d1f0ef8519c6ab4f730a2eb17de2d2ad3b0ee2306e6451bc71664e4a35be36ae8b82a58fc674cb241b480e2d12e91596c6c640ad05454f7a9ecc34d57de06ad03447672a38dcc30baa3df2a4478df38db04b5f9ce97f9c5294390cebb91b9279841df269f7dba06a834654a32908085d075af043fd584e33163667efbda819ea788c1a69200c06fef90a5f564b6bf2d371298c5780074d290c76229de48f76031244a2f33e9eef4f958c9e89a24e4c986c3342be018448655c5c138f12611160c3d2fddb0669bee838dd57060aa8e3309bc35d0f1818ecbac8357ad4abc5f69449a07efe7ac3e4d804726186801db44d1d15a0cf6ea353c9308dda6d1b0aa08a93ebb353f10d0a73d1106514f8f56c49a194879fedd02e92385ab35ac11245c3a9a6dec83b0b5e33a9ed76bf8ec152276cec66148b28fdb0d4bf3ae084914d71bf10f68af8777927f5c726d127a96db358059f466cd23986af4315fe0f7475286198cffb0cd349e8c1b7649503dc023df4928576d8b7c5d73f94bece4399ce826107d02ca7d0ca7d8c769584a33792f9d922c70177f056ae156c7d55efef0785865e6b61fa9dabc842d86cb54d496fb25bb49f37a25308220146c625b904cc247216f1d4c972822751639e0602dd08ff9269dade09b23c1a348a7e38cec1f929671bc13364ab2867e8ef539103cecf5f47b6b44d7ed310fb45d5f798bb06570d8ec8e0be1661226bea63c67fbdf619cc837452edbdf5c1fed65f25e55269fe5a240381e243f04f574731cbc03a539c037183ca45b694de04bf42ba58f76de8c649244e33ad99ae9d1692b2e645fb856542af14c95156644c4faaaa48bda198ec38724ffccab933583c1ef0aee44933a4f08ff7eabbfcffc4a6bfeea46a59d6cadd0a04272483b894bcb86950edf8da10cb1eac0b24fed654ea5bdff3f80b4e6250948df56e4427b0611401fd1433b80aeb8b32631c7b6e3f633d98381559d6e3becceb46bf79553a4e3877c2083541b030481fc33fc856a312515ce4229c8c75d94063eb99186079c487e316ba83dc4ba7934371be4aede62cf79455a3876c2c04e967a2f1d7119721f80016802dcd7379b3bb0a7beca5ac75ba8485e1cb77074afa702fd0b20e4e5748ec60990dc3127da5050a0e6d96c27c99260f514f6c83b5ef416b85cb76bb391bc822f6dd1a8c43200f1a5dc7790487d181f90484755ad6ac6bff27d8eb9cf8ef2882ea9c46eff4ffe3d42d5d16b865104aa643700aa8ff2c161146dfd4634a666f7eaf2f2c37f9b9bd99a37ad5a10ee4014fb04ea1fc3d3eb01e04d9b989a85095a8f86ab16e1f6a0d2fd8dbcb25484f766c426be5cc020c4f2dff8c4d8db1974ce4c8e1312433765d0b3b2c1c9d098ddb24ec8bd703f40bbc6657c7733b508b9eac923339b7ab6a5068bc3fe95303fd6ecc34c52a357b09db31d7aaee805e860e5b3bd9994804333308711e5fd442b2795a3cdb3583a975c81698dcb011909e44bdcf7cb6c30c0a421d60dffd93b9e1a79006b3eb4bf7c11e564106d8f2af8f02d1159aa84781e3cf5668433782e27115c700d815b5121deb9aeffb5d1c1965d39ccc374073bdffbb08c4a85b2fab9e3f19293bed28767b7318fde1022dcf37df1f443504c6b39a375054c025615ef5a47867f91a9d2686827b2194818a3f5bb01a8bf4ddb0947d4fc825b4a7a099b9540c429de5807fae9fcc2d47552bd6a4146ea7370ad8a64b2976942975b65b98e5675288ad67f1300c68cf24419910ccea7c63e9a565489b29cc6d53623be7084e1bd06ef31c2d23dad35b1b51adb7931752bde47d253ec711d230568a9878a71aebe2ed2e0642a9298ac4165057554009ff587ffb5059dd222dc3592002a5715edf50959605ae6370b2520855e5a207dc10b23e497fe808bf7fd7f84c293717da85f64cbb4b9a92a1f2fda296ba13184a438ab36cef307f01cdc9f5e3f86506637c07a81ce3f89de763d8ec8e9616d0d5f3a8fe5ccab0286a20d28ba1b670080680dfc97c8dae99513afebb8dee329d512758fe4109dd2e975e056754ee3b53ee0d693fe4e8531c505c1d91db8dea2586f40eb6cf507a1cefe1de2faa9a669f37f90a85faa9f2ce97badbe2bd87ea80cf871ae6fc71e6fd9dc1f7fb6d403a0d691b4b2227906cf90ba793a3540ae50accd9ec6ba0be5c5e9c50a724676d50258356768c83d5a79baf9f73f1c6b028ec1ff607d1073b26a7214efc6cb5cbb7a24b30d1e9f56721a0e468a14ec23263b763e08edbf824714ef6587bd97d8beed16c6968b75df0e7a169777564adf4f9f923957801d1a0da314ff1dd3bd4b5dc75f11ed38c443d992db7bf179749a024938e5b431221896cb15954e3fa302cecc60227afde995ade7454fcc2413c05c1eda002741ec57496dd69a2ba62369174c629e557fee57f4adb314b72abf7ccce6461c43874101454dc7e04e629b32994d78baae252fb8cf56c1e62eac6cd7e1de0a16541a8a11194a78b5e0f28e075b3fd71942f40f0d7843c68827b5d1fb0073d2d227c411b01a8a937e75233e7f3f7cacb61cc26a2c832a904e698ae44d78ef34f601079ffb633f0be13e1e53794778ed8dd18f03014ac84f265693958d98cc13982ffe3bd479bf022524459fc166eebdb90eb73fbc047f3a5da9dfc236c0db16114b33829e2d65961c7bc50250eb73fd4d2d0f5557ad23d558a5c7a90a227df7f1aec4b3db4518ef33ab0cef8525bb7d4e6302357773e99075716bee206d50d24f2521dcf0e18273afff64de23f116bd517139a235d66a1b5ff12b7ad5b42dac6186480b7b657e79ed4d30cad0bd6cec856c23435d3712c9ed46d0df0b0b5ee0745fe358cca3cb64ec26111dea11c58b6e9fcf6da6002ebb840cc8544947d3fc8b085cc215abf5ad2f5244bf11b7cc5f74fac53fc307143c3d473c429edb219c736cf51f21ea4f8eca5a4cc24bf2023963a0b30a0d88ad54aba0e846d20d2904ad9390823850199ed2c6b0cc6bd19ccf43aab10328031c271af73691e8724f93cc58d199d99f1b34827ebec2c90ba31fdbe1eeb0d6f208338e739f4e1b0bd31c28e2ad5e008b57fcd26d422b5431e3e3df1b1ebf140064a9187c757c902c63160d9de41f887357855b850e26a048e5473164535e45906655c3fc1b37b0b682c29317f3918cdfd130dd5bf80bd15c3a32a75a35fc1141e5ff6bf9740c670448c74910fea61e07d3b52f5bb5024b85c1b01f2cdcfbcf5a0663090d99191a49d4c1c21ab6e836411d2c87a597757165387985d721eeda86f9119886c6b55500b9b17727766d8bbe532ad9c6a0f39b3538ac9f8d9a8a6d1c2be5a9b72b18ec07717928b6d8063640a4c681a49961cc1268e40993e8a690ffb8b77e6085042831405695d8dc5e147703989387787e5d62f962489c4eee1ac55f73d03bdd877be6427a319ea60320a840066a86a762a85cecd2d1452cca3a7cea611b0eab06a0a205695949d7c22e06aa39bf6218752a052cf26e1050b0560ecb8ab510884a78abc6dbe67b0a31497e1ae6f4e0993da2c1374ea35b2aee1c44d9b7aea082b6dac1f06bb21d231d8934f19dd9eb55a4f9f3a7e25e2cfcd3e63dd0001db1efcd538dff7b08d439f6680d7a2b30f99d30a0dc3a8a280f9258af1c4649436b2b077993de876286ccee370ccb605a7013b6645f46a44db4a6306f594a7296b010297628130924529305d87230576e86bcee9a4d3a9e9bfae96c1320fa33b62c216258f232abf936093731ca4d96467c2ac4fb7b21cd6beef53f74a50ef03e087c0b4c03fb899837e65537096e6a08fccb466b63b5555e4a1a79e74b749591133673a6a0c965cf36a26885c16e151ec0907b2ba9a8d72634a023952f8a9a878ce885420d5ae1b82b50322c0580f0bc81742fcf16cbc0b189ad06c8f14760a6069f006f64429364594cbaa03599a49b5d5b4b8f9531523e2d452c13bb1b14337eb3a72f939d80c9042776d2761f58e6503a2aeeff60b7e0838f633a2d3bdc7b7f2e6ab61cd94d54b00530d13cd68ef38df8776347a37e70961de27b829111b7fd7e7130b18b317e0590ffc0b670a3a8d760977ebb3ef70791544050b5d1f3aa4f1b5c081ab2f84aa3d2c310c1a607902f9fbb7027014cc60ee412052b0f8fed5658c3956283325af2c14cb727da606bff90164d9b9e0275ed6c6896fd022412fc5f7d0a0130ba4a9ec0e32d1dbab11763deead3b97749c6699de12085f54e459d9c0a6aee770ba04e8cf209cd30788cf9cb1e9e237be37be654c535d6b5e02a4ba6a6851ec1f18f82ce0d8321296efb4a70c470f9406fdbbf5c7e0f2e3a16e69088172fd1f730954bcf9a0035e3c4d32334d5528f58beab631fda85a924d22f0d4722654b24b934c3daf5bd1175fa18edf389ee0af849771609319dbc0f56985b047bd5efb4c822e39453200c17b5eb0ca4951f3a0e5d8e26f9ee771ce80cadd116b50f791cb6f4ff993e05709dc51d773efe731ba7c0dec9229dc356791fdb8f1fe94898beebeb31f8d805fa9ef09c4c80ccd8965f364dfd88450c932c0ec04a085e2b67dd98a67a4d15d2e8645c13990957682330d093983dbe80d3328941eb70d46dc286069edb4572b0df99aae2afde0c89ef7d6eff448d1b4a27ad0283cecf6f506fcb4463b87e4a5008b6c179aeda38fd879755649882fed5ba84fed3d1208fb5ed30837a43c823468ea1b821c2edcbc08d50165bfda6a4354b1d76b20aeee86dec25bbd79fba50fc93f4921f16a4f0244e21618bb2b58f3b85e38417be660ba494dcfd57649570bc5c02512504df24f3afc15c67f06bfa1c34a9d9046013603e7eb14c3c3d6417b7b46d92303ced122cb2ecb92f9421118770c1b7b03bbdc2cc8b35f339d6813333e90841cb8da92b5f242fe2daafb4b9d67b8303e52ad4b996f87b6acc6c90008ac5416dbb134cead1474ecc886ca7f3c1a3e6f4fa8c04e7ac32ebd6a6be11d6ef36d230862f35f592cbccb9bfa680852b1cb4be157276b8d9471c7f998dde5765ded469f4c00e329daf45ec29bc9490439ee710c3ae09ffd44aa237107d5500bdcb37a6682eb7732381e584885e1d3ce0284da1cd9c572fa1b10b2d70a4bf85d0bc806aadcb1b54eed8dc896524249e397d26e1332557f8f55375cc3199cb50ad6033c197e56515e6d55f52fde9f74cb4c00ca28d0d43debb38cda072541dfc8bfe8bd3a03bc07a9e6ef4980270fbe369e8099d1ca2e2473ac51e63980bea06d656a4ff871a574952de08c7ea6076ab937e32e7f865e8bba9c4d9d60f899c7dfc277bcbe37c86866f847c8ac654ed245dcb2f654b40225ff0bc55ed0585f3e80b4676479cb6df974a68a62ed6e8842d6c2180f69603ff54ad5a3222b512b8929bb152e3cad3f0e5801d33baf2bd022f0cde270a03b049b691a7cffeaf4c6678feb38a1252561320df4e1a8c7740f8cad4a0488164f684ec371e853ae12f143565b318675de2dea5b19a93905c58da124a36c8fc9a3af011c08bf4a9a5d7c771b09ef4d6f1a7ce7cd2994176a28aa5eed4a2dbe87cd5e07d01661929045a0ef3cf69ecb63580251b72ca9390789de282a7e80f1b4f6eec1fa589d4526e39adac4974919dad4680dedc5c29b019a457ac0cfa8f4cec78037d2c7d1e49a60d19deef976a0032c52dbb8ff2d1386b82dd489c4bd40e20cbbe0ae266d392ea30b38c661fbc9a9a06e1409523a2f5484466f0d3d899d4f0f422fdafbb5f107852d968e24e02a19da4e2e0e6852f209a05c3c18ee7a01dc246e847562238269e12ab9c50a21d0953b8191207e0223e4620ddda6ea5114a755f480aa26f1b15172d9c55eeb56479537b5189a13c8123a78ff84bfac328a458cc80342a168c19ef9ff275fb57b725c2215cb0c4331935e09a379cb568c9d8334805614ecd40fb449e64af2a72360f6c95664cda4c6bde19b499f4892bb6c7105cb0e441e7cc19e612a2bdaa9963548c930c7f707177b62ef2059238d28c2fd3607e419a3cf5fd7fc9964e3efb74ae2adc34b56e6e9a35ee5e8813f039718db4283521a20d2de54c6b4944b022bffe11a175ec74b13aeb830d3194ea8d1fcf6c4dd2847d04677fb007ef0d4a9de08d3a4ec062889411a9cd816cad7b11cea997c43f4a8af8a56b14f4afb84ad4680170c470180feae1b13cea147c43378e6055a4c213cc6c3249f7b33bf5a3fa94e456e8e6e656fca9a597d40195f6125aa4bd853a0f6b38503bd34b274561d866b972719b9f7f54d5233a3df5c5c86667b62f01a89467044a3055916366235c7186880bf80b09631e2cee4f32eb978875f7a9773fc21f3a1d519c133a2c9b51be8001107b461786dc818ced03044ccbcbc2864702791eb023797286b6977a3f333618f3c697eef8d252a6abb2ffcc56a4b9fa1424b7c6042d3480b7e9ca24d82f24fa27746935975638d3aac47bcc9c5120a93b1405e59e71b9cabc71af8c9a53a3e50788df5ec418774a0eb8bd8a244935cd8641b61f67b6d1ba796801d1e252f15d29b11f081da2796c7604f351cfef1611064a481e65ed6dd6bf69db84dbd6b910425ecb157fa019b6d81d1c07b49a984457667540726fb918c4381df002784d4c63d522739e6cf411bfc3357baa5ebcd5c906dc6c86a7ed5cfc6132977df466ed9f958086af079ee063855fba4f203ba47864a20e9709694e4b12e2fddd2907197a3dddcbda50da8f5a6d02bbd66c17c18354de5a5d2dca8d280e47aa8d5a0e3e4236fd611998aa2a16f842344ad63a953405d512c0435cbb955b1efa45e744df9df309f399368dcdd5286474374261daaee3a63c8b6ff44138a45414491ce19a297a179976cd1482eb46ca28ce2cd1cbca793c3f84afed14738006868546bed0d3af52d30c2c7163f7f3e10d641166a0734b475f1ff72cd2bb99b9ec1e80462c705f3ef54e9f3e8aae613afcb2baf260c37eef978f934ec06f40e6a00e2b9a1f3cbe0d1f1ce069280bff2ce28c26eebef74068c92f8959e58865f39dcb83baeb6795a6d6d954535059df250c94f115c5967f88f3c465abcdd8992f6cc09102bf9b4adf33208a0a72d4bd2d98e479580a32a7783e9935e73a47b26806d0b980b530bf92d64c80dfb6d5bbdbad7bf885ba17b7f382f4bbd278b32fec44de54989371fd142d0ba28c640d069b4506bf08dff067bf46ebf8f1cfa2f45e1bdc229837238ddea6dbb364efa32618b76ba10fe1de895efe178296b8738670efbe70e705ed0fdfd6a056a7e9a843c6337a6d1c5889f8b00ab503d529145d4d2c37ea4cda9a6f2416cb731b48a5f44639816fd518e578d3068dccc1bcd8888d362af5dabd2e24ec480dc6f8a39f0b6d628d3088e6fa7b2345d1abf8a8212928e30f3801734d9a1d15c1bea9391cc35a701224542020b87b78aba5d92646b90aabad9c1c29398ca4a574fde159c4968eacf8713ad0c15f67d81130827c756e034f6b43f1c6a4fc6871cc194bba3228dc70bafc387fbffd3d1c097275ef585d0d219968a1b93b66396d67912626bf8a9a3dbe3aaa717b02182614e2f2be60252222ac38113a74ad0174357ed7870f9dd86bb2080d539c9aa21364f61390ad68a23cc45a9916639e3d2bf44c4614f928f13e37476a6ef19939b886c36bed2da48a04a337cd19d2316045826ec740642c7ef3461589fd7fcc3e26b1e0575009e58578b52d63ae0aedfda51292cb37a4ad23fb6340dd52ab83c4449d3d9a1a04b94b9bfc92408907655162bc0888db7f51daaabd1897dbc57cc8a70fd1e8a42d2ed98c5cc276643949ae43e8823d2149351099a35acb048df147e8f8eb756d09f3330bd88970a18fb3c806968c8d68ee5a78773ded813eeee3c8d42e3ed94337d564b9a42b6b4bc14db979a438d1f62098478c9e82510faa74f5c6bfb12fbfc9a15ff2ff34d5dd543983cf6dda117a96b30d4e046b18b8d4b63ce9374c176b19283175ab8fb4d4f22dde991a749f9caac6f2f657685c84f11128771dddd64721a40feb5f2fc3546f5c75234accc219c122615799032a6462b022c77bf58f5b2e0e5e1fef794e02a6834da21efd43de36b6ecf98d94de5aad8c0af0542dc868e5bfe230754119eb97f0be3e64fbc8c72c26ece1234ae7372f0b97e5fbcc7973f8e3827901d8b6402b82feebf9c9bb6162e4b9bcdf27585f30d139cc45bddf36d8115a73bdf1bae9c75fc8c85c3e74c6b5e694a100347d47e5027d501af108ae8fd7ec0274a827ee1b9ac9829cb9bd982c2232e744d06ada2721a52b97e64404040ed35f35851b2929047a36934c2b52282528432f772e6071aa609ff1e0af769106e1f71335430e3c0745ccddcdf8ccb4cb8a48cda442369ac7a9122fbb220a9db3d2edadbcc9b1ff4c57a2e2423d449deb7d61b4c4a979f417d2ba4c451f64cd51fa9d3869a3c269f4e1fe78d33f0386c2ab5aef84a9c04db19acf050cd955c43ef0d6fc0547adce8553375c58f2f173d8a8c1dce2be2eb3f28a932d50baf6f941b27f6fc2c341ab70db8021edc7161c7d193e5d6a38a3193b25e8242dd1afd287aacf3787783aef40f59408c4de960413b783df5f3373670bd6b5cc2ef12abcbbd41c6455a98fa9ed625d09e3b414b11b4c57b051f4c313b418aa08d2379a5f175ac07ccb2ec518e2376fd758e2fa70ee103dc9b1d5f646609a312a84fa8f88fc3be87582a27539c1c77f728b36efb2143fc3a050bcf012ae465e93e611141e6f5c1f80305ec3c26cb42465b2271e89320faeed7285fd78af15f9d9078337ab36e5fe3b703dec5a998817abc0f19c0b7ea7dbb3e50d5019a330fa7209126e79a01632d88156cc4d7dfa56cc7f91c51121b3d6fff7c668f90b6706c5d4f9a4949a0d84cedd6db6786fd9079aeaa168073d1a5d70be949f027db07280721083a13cb4eee05e94784252c181fb41bd11e8daad897bf352535b8b444fb6e687e50a2c83ca6537532465962bcf24ef67c2138d4a2d4562c671ca1b22253ea44ac12b0b1a5a1748955c0bc1b4b3b26a609e2735207e46003e789ac73575f99793c1dc29b0d72041097c3ce9d2e15ebe157956bdb50cfc88448f198dcfd1f213e2e032f34c1172cff70e02a9358c940885dbfde685ae625e3034ef96e807570c223c8f15d68d24853594e043421c310739e0e3f462e4a1a0fc9e5fe5258a8712eaaf9350ba4290e804494db63553aeac71d4750b81cfd64e94e9deebcf3694c041d885e3021ffb1b9907a8033af4d738dac90359c6e1c56b9bb751662abe2303d7b6a1c319d3e5d4f2af62fc6aaed0458444b228042b70c670371b2ed437a45c2631fedc3997acc6b5730b54d334d18de938aa660002162d2f8d8e87390352d2a8a59dd28c0e97651cea5f18096d21f1e4ddbad86548c7eeec8e0680732ebcf27b570f6a4b83159cc75501315ad339f8311c4d0b9c392793fadfd39933e7c37bdfdcc09a6280511a8e6f4d0228898375a5d597df7b1ff5a89348eeb93b8e067a48af5bf66c9c5e6d8470acb750af24522048984be306a1f1ff6773285b5365dd2d977f33678fdbea674fceb41ed8bb61d84882180235da1c2ec1f92bea33816d4262b68f80cc9af8caf059f3399785a8d92b27469e6c16413d8b5441dc0d9134ac67fe832e34bf4d13e8d939db262d33102528d8109cd84a8f769f9062cab302a63f6c3ee2b0a6716494383fefb461ded2e92aa45adac95c720f4934e2fa769048c668f0bf68e7ec64ce5301575af1f99168af143f2735e05bdedc55bea43b2afb5f0a42a8f0725b90716dadf6eb4c7db7adeecad65d82807ad986e9e115b259b773ea3488c7115b84ea31532ea33b0dd7e1c4837f3b26e3f81227be53024e60f5f9591bb06c64d7da8c3d2a351b5ae8d82bde9d127b792df26c850c3eafe1f59ff0a2b66e7e82ada9e586c730ce643f4f376ddfc991dd12f089660acf35a6ee3f3d05409b422c63adac93f93010a2784e9082a4668d4c36e51a211d6a1bd6ee63a28d87107ed09eab8f3c2214c992834f6837397a8eec260f4397eb0be4dd964bd6590092ba2d91c1d4e1d74ad509b6f2b1d92beba09ee36ca669994d055198c1b76cefaa1504a5eeca46f8dd32f801fd49570d72dec2f91effae62427eb3bd59fc7b2a0b32d9c761650cc99948fc864819fc75079725d883499900c10a9bb8c34dcd735cbfccc7fa8fdf222b26de0f4f17064c60ccb8d1b8e79be6e84b8988d18d9b5b6dc661f98c01f4aff87b317ebc296a7d7719e840b3775c76d95b6c7ae635f03f47b9b74404a6941001427bbac1f0655b6055419041f888b6536c748d664325e7c22cc2424ec03ef9539dc0281e89495d9c129936fbb7bd91a37f913c8ab5890a412add75a22db4be20956c6bfa795db808a106f4bd518c46df12f46323cf5fd1343c44345d4c8cb44bbd5c16be6651e4b6a92411a97520e99aad57c89dcc48fd12c3be931efb3490c2b8fe12d4e78b3533fd05b58e5e5767ee81018d701c80ec441af2b7982177b04b7d8c370a397105b9d0ce6e7352d89775978df04c1fe448d8e9a948568888186304c41571ab36cd550cb9ef2ee6b9d6fb90bd1f5eedcb951445798db2a0a0f309007c2b3608f5e041044a0e3e23e176de022b9d946b5a62765439abea4324031e19ab107c635910ebcd4b6b62fe30fbc3a4a4651644ad1d9c4665f4f92f2c415c04e149d08dff7e068aa3fd9ea7f86861a0f6926734136bfc0c52febeff2a44dbe489ab17f6b372a4a000432489750162750bd926c2ff01a5b82842cc14b5af052f48726b7159f0bc70a60d095c4335c36a68284e629a31f259dc0c2f5367f02b0c25687781999145c180f61b604eb6410d27835589b76c47fe7f6c168227afb5563b6fed0f56fec088ea57a2b0cb89aaf1a35a5ed841fdf0ad2a21359381524a4617d6aa7da9fe2a90f1168a609ada6259119a2e570018d640cea431dc0371782c1b8af6501357c54835a9788ecbf44ee57dbc0c7f647a97cce00be3b950632f7cce43095d6359613bea1121269e89291daea446a4683117cc7d82e294b8a07dfe87758ceb07cf2418cfd628855aa13b527f52b26c126b985bfb18347c02b8ea49e18f83c02910a9d280bb1181623d443c949bc25c2a39bfd2cc1664c622f544671b33a31ff74f32f40253c33a45359022abb73c20c71be29eff1036756eb9d5ef956f5a40c3410ff97f3f4c86d58a50b190b9117e1ae1bdfb5f8edc9fab4fc4adab9f55e50a997155253c7441b5b671cf40180c70328d521f2c0accea6e8c206934efc5129649d47c0ecab08f2a968b74183f7191fde3303661977842752d68d20e23db7204fcd301f61eb4a410e324862a8ba8ff9a023946143605e8c931b7dc056d25822ee26003b3c526972bc6de88118a8a9e1c0fd8e48f89ca1dc9bb446bb8e3daa00a3742f5938e127aab8340c3506e5e163aba8d9355eceea49de75e2b55264092ac5b39d1197cecf4e18cd3968bd018e2d1d8c08b74b7a520d548ba3947e7d20dd0f34c59c23c61f9048fe58a4799f3a2b49751d0df19568c6fc59bfd6c6a2b20be9068e0e1ccaeade411eb947790ce3bf9179bbe455ac2a06d0a06724dce895f7d73818cf59d632bb8776cb63f5512c79597364c0dc7cb57349c341bf54e189b257ff4836bdaa1b32a8c790606f3c7978e2a5cc39c30401cf32e33f2f49da8f84c909f70fedc9b870b9946b84346b3207fa5c4e1c964489737790acdbaffe305b4adf617eccdc6ab618e7034b49341545a4b5c5e8338e49d3aad53694daede9680b9451653379d2652ffa97dc3d8bf58f8ad664fe1e6096a5fdf51784c2e5e37a9d7c99e3865a1b626247ca1432f4c5cb4c7ea15e5488ac0392d912d23c4ba739749fac1b02a277ac7902f6fe7d46e84069109b6a93faed372ce0119a3a7cd4b64e4def708b2b765c1d418be8f025ff06e0908686a63b3132e6576fee5ae69ccdb1827a2ee0528625ca28748ea7075387e4b8472ad26095a1d318e1dbb799f01b1324d3088852750fcb5448b56d35780fe01f8f563880e4a331958fee0e5af1dac1f5d500013606c29351bddecd69e1e4174e48db936d11332a36d50a14980996c2def7fbc80cfef68a1971642cb4b5e99ba2cfab96d278bd1b7b8340dadbbe1297f88989a10d682662aec0efb28cb85b38bf0ac679379acb6aff3ec69c63698ae518fae8d44539654afefbf6d949ff7acb470c16e009f213e765a535fca9f406159855f92ca7ba6a5321152bda243ccc842952eaa9d4bcf1a09804652950457c43c3c8744be3125eb4427b4479ac781c7253c862cb08265d43b2aec35d0ce6222ea765cc0b4523f9e660207672054344c7d07558e79e5daa1743f7b5b56b5bed2a81ddab49ff553909e58a2589ac23ac1bea1855c1a540cf4907cb88811ee176cc726653bcfc469b98f1b9b36a064039b57da9f66cba624a284c99e4575e950488f211239de9976623d399e4725f55419e951f34f4665c521bd05ef03dcbc27bb4b3135e21f8d0d1897eadcd35cf1c8baf7443540fd1e60e9a3ed6ba9c8fd331b8d953c7c675cd0ec7018adbb87d9fe76add9c88a18309cecd77e37f58fe926ec1e33fd39f9b4160b27ddd4ff834eb8b56d3f22735cd2a9d7f93aa707408d410ff7c07ec206f542eef1166283e9b26558a8df3485bcd7ab0078ea285cdc59468eefcbc22ae4f53614454bc05d1f6813b941185c1fd24ac8c30c6275045fbe9f3e09a558e390ec474cf91b09d2e3eee5b6f5393e25a51f98789181fd7773245f81e90fad1f27e2af0bb7bd1457c7b79b84c9dc889fec5208ca195cab8662874a2281271e845d3af9f912ee5fd41b923d008e99751b8c8ebdebf091172c27ccde87a05c4cbe5cb1e96850c500b5ad2698cc414e966f6e0be3b6bba90765304707ccdf9a72e36805925311dc11870d17f3dbeafef9dccf4d284877122813fa05b015558373e14c057f50620703d8f96ce33533cb781acac83b429b89b631022c8049268d355d5df4af8b30051cc3bb00bbbacb539bd63bd9c45c5be770e267ea87f3f78f4c5fc6363ffc0554514d0af85cc41bf89c8e523d49d534934995cbb693a307f9b983ae5e3549d06eb3d7599eef80d8edde98221efbff0ef454c5a3a2e7b75f469127a8c545f0a1fac5ca87b1d92284cf9feecd9ea78a4df8e82c71ee164675662b2d594c350f9fd6e5b9f1307ede8e6ef207efdf3820e20d7625b83edee1024b3e9a87fc0454e1dd1dc5ffc86289f930cd7bdda538fb5b2083f09227f17dab77540a27860b33a495adb8c7281998b5a67d4a5a3f61e18b8a315a02b9f69dd157a97486cef33cc374cf3768a214706b732fe00efe73f32450d59a339c4575f5a2120ff3d2f1beff956a7335481346791f2a931de85a164cde63a458e3eb02140760ed27df4ce56a5770b7646b62b60157cb7b5a3cdb3be90d16ba22acb325baff48cc4f39dde5ad9c07b6e4853892fa91fc049af661dcb15bc403bd833c8bcabb25e8e8174f1ade54c2b53034be019b200cc022e6602b1d9e47a49c1426a9952ffa66048fd1fe2760f51854451bf4627e0a958de4dc535b8256f8cc214636529150ea1c8679a4dfff5564ab2051a3e00ed224c093ea3418e331467aa0c33ccc4f1a9554dd20e511a715742395c74a1dfbb9e97df6ece87a969df602b4ce01400d3e22993704c13dcb1d3d3b67822e4dd49d205f4da0c886d185539b4cab451657251eed3515f9fa223ef3338f0107a034ee7aa534776175935fcb1bd54691c4da06efe635e92704df66bf6417bc0025f8c607d2a166ccae030580a8cc370c8adba595b553b94351f37c3e48408ba561454b5bf2eca305c473c09035b8f7f6133476e105748f510ec8e0dd30d7ba5c05986f1be7cbffd007ddb1e272f81f2421c05936f8b026ee21f67b130323fb0b5a8edc6ab5ede5f5362a4802ec35199aa27b3685be9755ba57af263720dc611fa4838f8758f18a05ad1c98877da1293bd0320ad2be03b9b4823bb59a0f390176a0e7eb5a76994731e947a9eac348e3d2a18ef9b4ad6acf663d844d7bfd928f531ae4d5cbd9b816f50cad2dc959f0dca49bfdb831e31307fac659541c3ec7e1da3264d6fe072d1c0086ca47f11c314d4f86f132cb0b6101f25889d30766ea09a868a385a5d327307b97204c95b66416444d03e79cb8daa84b4ee329198a6b5b23c466560d5025b55ef53cd552a0c1483ab67099b2830f3e821c53edf01397341aef365dee70bdd8b5af7f9c0680477a0c0349d1ba39edeb931516e95976c2030e9222c8873f2fc3cbac15277ddbb875204e7deb5d0a0f52943fd2c9f0b676412be4c7e75e1178192a876d3b338e85c99c834956738e810a5a7c2949fc02c9dd5f3cd500e6b6a905d93813872945e0ebb4e53f3dd491014ab21eb64c8592b68e27deccbee4aaca1b456b07a42b67786cf8c710c84f74c552668d7398b8dfad229a006474c6db9c096700ec785273e04b355c70e2ef8d49dac05887e707646f842ea9ab097a6724d9a0c99e8cb27c9521ec959052d12ccb9dfd4b4541f2958f1dde1ab3a2a8788805a215b9807fa51039b52e39bca6659e7e37ce647bd6e6f4587bafd519aa4e6edd6d7084db3b687c22d0e1024bda7366c74c3cd7eb4cc366b07151d318d0c139cf535d467ec00a924467889f044c7ef563a18f6a0910b5ece469df00085aa5638b011df3dba87d7c0c5ec1a7f0bcde7fa279dcf2bec443a3ed0be676b117f72c82f40d70b5d54e6010c0ddd2a61889ddbaa8d44aa6dd83984fd4a307a479e2c6a64084b95b310fecffeff0cc97a7f17e990100796b8bb2afa27cfd4e311e6858d6a1cc13515c67c86bb986d022f53392f1ec6cbc0bc524eb4d3ad20442974418f60664ed977d4f467265f8f3c958720bee234de48dd50147c0a84fd29eeb6f53340304d4ad1717ae442d765d9ff040d324e1cf2866207e9849577c570f1cc80430df2c0af009d83aacc9888e232e09789badee7640487dd6b5bc0946a9b4a32b6887b867c5d44b94f994d8ef4b879110783e1d5157e67fe63f5951559b4e42f08ee5c7e6e75d8294a3ebe04bce25062fdc4ef4ccf22cbe0ce904ae2a92699e00416c15b8d44b94ae3433cca21342d2cadeb54534dd6f45ab31cc930b29568833a3b3ee4098c8d111ae730bc15ca40d327fbc2d20bda2e59910862273021bbc327bf8076a6615000cf309b6a9dd23fbc6956a35144f5dcb07399384523b031b2f46432a11df54191d69d684c3fe9c821d1cd2269e7137936fe8c84e540f27b6cadf0bfa3e4ffc99765fd49bb9ed4deebf8dcc78fa60176f5b4fcc161f494bde8c05bc9e492dab6532a69400bf33d8f0f311a658d85ec164e337dc89749bef493f1e5aa0630e96172dd1dac92e02714436e3a026574ab7f69137c08548a5b5f8d2165f94e4f1833dde08170fe1e7cfe8580d3427782728853bbe6131e57fbb0957e5d2c68505097a77bca54ab4b3498bcbd6c3d16fd4e807ac70980e4708ab0726f263789b830ea498a4952f06cf4ad036e388c362cd3ed07f20f9375efb3d85bc6d1c164b2f9d4002e96194d94271161578b49473f529466f21c0e5903fe9cb5f04fff03583189d22c43bd2ccf771ca09c45f1ca35f4a747bc9f07df0fd5728bfd8129018b7dd786c1a872e21748b7f5663890d49f3288f3a2c11979d0c4c7ebb7e4d4446d83f9bc085ec900b5536f30c551a2ba2e749401d9de44a50fd1ce7658ed7a1e339e5c518d8c4ab8ae00b65aa8ebb253338d422a0140f14896ac0080155e1adac48692634a9462c0780cd55c83e332f85c029c8807b367ae8b361baa2c0687add7927bc236d83e71a55629ccad901fa39617ee2f0e2ec0e76bd88b9ecf2a30d1fe885e3065d0bbc179b480964a43eddf2dc0562b5ea4ab4b5ecafa82c075ec7b890f1c2a51a8224df9547f0708bfbfc0128b42c6fe78987ffed5e5c5e774a6f4d07fc73699c1a5bdec0f57812bbbb4f7528092953887be4dd4d00f1fbb4391e8453d39fa00241e86f1c09f94e7f8ad37ee91b192a1ce540b267158fb7f008985379ea4f7da698dc8b838a1927732e93bb161c01af0f25f326a605da21a157eb2e6f28a446b074651fef033d1671394c0f69f8844a8511ee30d79a55171080e9599adecfff07430e0ed095c1b104d51c0246d7d508c11a42315495a6404c50d5a595fc9b6968ec61b67c5c715efb5ab304ab0bb4c512f6a329c68a5fa545c8eb119f6d3fb53ad6bc2888ef148154769eb5311d4851628ba618dba86d899fa2fcb1109f8b48ff08d67211f025c2b92745fb61f46614f7bb97cdc9869950236f895449f09e51074d7b67e473351b3670bd2d9ccd5e717998baba1c67cbf972d3f4007cb5fa8b646468a672f11d5ae36d6de74a3e471c1c67f0f1cf2fb6d0573d758a06d0f1742d14838e8c8a96b927c68cbde14c574a107b26f97b31d44235159009ade48fd478397b820be48dfce9ffc085cf4d3f572682b037d73175aebb59ac8bc004e6bc9ad3e6b396a074f8fc87b4587cb2e719a731c137ef21c29f9acb6bc3e52f4564374de17006c5e650f862020b5024fc17df980b3fc9a6a580207b5d290d6e7bd13fdfee348cd1174be9c7a643adc67114d4ec555f7967e2828cf89a836fc851ea74e2707180328604d840b4fe35107c938a13da62ffc7f67df3905b167a7cdca6d00b00aaf0c98b97a3f83f92fdaf3883be0d1e3d388edde02b658a4a4902a3a9d6354c1ce255c762045b650f35dd2ccd715787d5d2cc7cb0af5a311a1da3c12fddd8a5a9baf63d3792de8c010408ebf00267800160b6e45c502d839839bd65cfd6517b7300ede9593159573594e874210b129f174e689a7434eec58b8e9249d4e2903a302a3e9438fdb9cb9c85a3ade946b0ea05b7e175488a34a633829be944eaa9f66bed01ed7edd72b17b537ddcf97ecdedf3a498dd49a837c513e3eac8cf7e20f50336e2c5215f62e93231597d996818622055d91f280d6aa7234795225489ba65c539790af60702382b54dd673019ccce001495580f4d448852efa522e0a5493437545271b671d09f71e0130dad79e39a615f4aa3204e5aaa0dbbe233f140f6f716ef72201eff689f121be4daf51480f18495dc84b193b34f3fc2831706c17f50feb648eed349eb8d6b96eca6a96ed68c11ebb2601fa394a1dc0310f660bf66e62753f2f93964a85f4f8293b8873b2f7b52ddef4a27df61d695ff41c29270b33988d028dfe0fbc31fdc21ab026b2207dae36fc0783c86e4c1e5130c501d1169dc5b25e2a7b6263b0cdf2431a5e014eba6ac72243aa3be45d3cf218c24837f45dd4f0a272b213a42e58b058cf10bdc47c3ab8094edb521da7dae294e3ba0d5319f3eb585368e4f31cd890bed284df4f3d881917a91c012e17f5f2a25887be9d5fc5b014a50e908ea7651f55c9f72a7c03ea45c1000913d878ede2a52dcaf13cbb5f4bb18aa8273b3d81b90c13fbf89103608c1af83b3564cec7ae8df00f6bf12888cf1fd4931ccf347fc4f261fd1e9eff6b981440ee97c553ea0909fbe819ed1e90247d75f7a53effb8b2fef62e4893ce86fe5388cdb71c918dbc49db174729fe94439a17ffaae07f39885d1cf519e74e5740105969e99c804fbc4d886dd6fccf8c0c2d0c43d88bc9f959258637eaa7c5ebcafe8b5c844a530aa17e8da6c024a5a7fd016c146919c54cd61892816a4bf0862a7d625f3dcc5d15261f32575245a97275f20153c0f38425ab2fe3014bbd474363a79bf9a47966139faba6f4689e6b6b39e3035ca712f2061c7d2292a9c5421c9cb627b9d54770448818d7889f0c31bd057bf33eec83b0184fc70f348fe925ba9c465ad10f4daa654b71580aa6e5472f0e0ab9a6ccd7557b26c54e2cef82b8f24e17cdee4a52477777875d5f99eb5356e1e1513e581bdff6f61bf45d4e4da62d12a4d88a358dd2b20770da6456444af79bf1cdbef0c4661503955aa26ffdf640e9c265f985a30f2b2e6696d9d5454e720f9c94f7261993d80bb6f98bd28d7c96a1f7c5aa73a463976215a067cc26344c0e044fd07da87161ab623d69707695ebada7b606fbefd10cbd7e29a354e2ddd185b6c5e851e2c1cf73a446ee3e06247cab5bbb82e8696c783360ce8c5cb42f258f1337e6d5b6cb4c22cde1be66f35ce8fdbca1548b5e45b5be4622a8d4642bd56f61a97ac3eb4095de4cbc61c3ab3ccf1cb1b07ee2be069e42aaa524e4dbb8b075d84793f5b771f0b462ca01ef7017b1d7f5b5a160ec542ac32512d2e2b2d9bec6446a01568520eb5d73af8cd98f514e3e6259ac16bbd3ec5c3f32f7f72819501cb6082d2f651a3caa45d9832eebb63a32ae93d1492a416b816ab6a0af82c2cf67c908d1c760a83b27aee0443b42a76605c11c4d8a60764685e72293ea17dda1d5f41f90b229153eed47ad82a710e2334931e1bca3b577c3cd907ffe38fdb3cba9629a5c91798d6a1705bc4b2bc4e8f88188ffe865532e92bd504116817c15efda16805314bb5eede073bb590b1cedb1c78f0cbddd1130cd0ab4c7aa11443b2c6f19cbf6a405ce768ecb4018ec2033ac469ae4c4aaa7654a0687c78450fbb7fe2740cb0dba10c14eef96901ae9f691005834ad5c3c788f5736686a0e85032fdc21e89923b3e7d8962f0f85b982641229ca87ca711cd08910d689a3d9a104931126c7845bd3696ea80d3fd8915c2ef7b0e656855d1cc55bc714ee91550881d6f5c3b2de9984d343590dace1f562ca63feffe29c2c4d886be269024964534ae5e514c7b279688fa815946de2402b993c1a67c391bae655897a80925aaa1fc6b8460761ec83f268a9ccad7fb7c5a056a3dbe38465d16c539218b61103a42e3871a6b1fb6982d961d49f306df1d658174b0cd8e45a7acb3b599ffbafa6b3ec70ae71068064ae3543d972f40131c6c541ae10dc191312b4272f1cfdf518311b2e40d71ff4f04189e0de41619bf791326f0c6f40cb50fb5850b68b3ee16bd1244ba7f04198adf451461a8ce1f8e6d3944d5ba6a5a51f378893d7783f86c0597bbcdd6339c88aad0cc29973484a7dc7cdbb817037fc8781a0d038772f898aa4fce5b06f3980461e26d86d5d27e4d802cb11614eb2e3ab4fa41c4885b0f074d8cf8f6e980276543ca327a5caef4ba5ed44b10c10ef50537d6f78f4fea33d77ba7bcacf9231ab6400c2e973eae08a672941f12cf886f263b48b040b4a9a96e5423d2571a9fdbcfba7dbc127c1965f939fa4f696a5b8a2fa07e1368198b5850932c82badbacaae0f62d1bc347f6a143c2cb11204e3814f509cb2c60d17134734c7c28f0241f3f3182915277e9663e48e1e244c0cfa34fd007c6097c8d33b5cf44fe359bec283276f2cc494ce1264bf57fb1da6d9e2278f98f2e7c36c1c3ef4cbedb64cc577166f640875cb58173afc68bc5c81505d66956d305ce8b16b60165ea84a7074d8cb3bfd75df59f463c801b86a1f008cbd2888e683513931180749ad507088f29c1f7069d4fe739d690793b76fcc82140d65971a9ddc41cfa02087938cfd49bb667c8df06837c17d03f15e2002d56bfc3f801701a50e45a9e0b60d58a248094c9d96653056ee5fadf89f71671bc7681e3112f031d8ae55b2fd221403d29e904e1e1702ec5786c519716f2974a4c9b552c8c6355d44c4778843c367d5caf62757756d86111b682bdca69684940d38b2443e3393363f28bcadae6d28c9c36e31b9b7e8d991fd936e4b9d9f46904f7d504d3481aa7254b4e411393ec9f2b43c956667368ec5cae19768fb76233a49328a96cd8157a4e7a522231bb608ae9116147eaaa3ac224c0018c022a1b275b936a0c1261fb2b209600be1ec89ae975cba9089331d9f9674dcadb16c157000f6f1e757c3378cd15da9b8afcd868d4f724016fbe80b63503af8bbcc464fad6dc2ecf469038507b61b37d3a6a7ba67d782e5a440bef95e3387e1057d4d604b33156d69b809ea03e277d2852423873d29c47178af0abd8e19f73bc5d7232f6e8a2df7cb2051f553b65d4ea00c531f81dd103325d62700d631869d26c6878b8a466a129c9ebb01b7eb6c206681e0f39bc47528040de573db2111fdc2ce09ee3d5b263f0e19073c99674b1f520a97db899efc273a58be5e1e335931a07a834b2f427e33c0b87186cdf0550c82d5fc9c2c85ca63087b86a7c31b470a1b4f4cf9511808e47a77e4fde5300981e79ec7ae736f76ebf51d9b1c70cf1410291458385ab5c97716433bdea8fab32ce30d8c36793df3600190edc84866bc1b3af60b85e71b6bd793ed89403bb96c586c898b7b6d162553d96f69e8f51479dce5e0205ac9efcefbdd33b883b4dbe60f6eb0e31e61866a329bd3a2745a19c7c96c47afb57b373ec5a9d40d4ff92ffc8d8b66cbf84e1f51aa4f9d4ee999fa1181a620ad4a5fbd3851805b2a455508b748bc8c1a9baf9e911320e6963364a0c7150aba635de34803382d169e1a5804e2798f6ad2295082f4a6634c349f121f22f08f637c66e1d796fa8a9c07381f140c50cbbe74b0d77bf19ee1d3aa624d940317609f02318fa1decf88f6eb5b99e644f2820aa9ae988ac4e063769991970294e31e7ebfcf6e34000da5bcd8c4d14faf1db59c0c43ffb43e5b1e3c7dbf64509dd9ebcb93f0980585fe5aa854f57987e983b62de9314ae0898c8045bed7872dbd49efe123e87f23d2a8c5e01b34520f38b9457c745541ddc59568791b9f75c87a8a42c3ed1e9807f8e2ced6edc8ae7c2885fc72c7d603f5d9609cbc3405e593669e5c6df25410da4bd69553107c9d79f358aae2595dc7b3f5cb7e3ea23ecb029793a3bc4140513c27240a4ae4161b53ba111e0083babc95cf00e1954b2a6355511f8b08da06c4ece6acadb8c952aa18c8accfedf230b71cdb9a15b7fd1184ac8afaf96d349645a21b869fd723face0ada155a769a04426909655939d68a02170c327525f58eb65b1d131dbb2b9852b532bccb4cadf27ebd2181019c4537ac3cb6961c5e96911ecca03bf37f2cad52e7c1c05f2fabdc55d9eb4ae3cc3157a2d2aea9beb71a502689baec1a300466224a9c19369f517793c11e697f046ce037d291e3226366e4070d55a5ca099c71770e09cb2c7d09f709ed15ebe3756c6ae752b1a0dbef6ea1e08c5819c6f45b845bce9c477068ffb5cd9054b0261afd3346dcb874a3732a7f74caa2937eb3ba01e22b8c9ee7f61f692c10d37e8dfda561d543d94a9a1520e19f4bf2d48fcaab741ce66d6a36849ae3a65a932859160e6ac7e26561f760ee803c77fc8efb01fe9e741f55701beb1c676b55cf5fd93c9cbbdb0bb583007c27b45c7a973ed66e19f1a7ab8ccd0ec9dbcb6aa676a1f709bacca7b7f1a093c1774a38ea21d3d040be3ce17239ae941ea0f3d7eeea912b8b81781a7d13f09cf7124938d4287a7a678d8408ac0574565a6a8b82196686de0b84aad73d9ec77e0c57bb2808f0705d7bf15f1f7417eddfb8eaef96288f2c8b75f0fdcced45bc5c8f156407f909508fc5a2e5105bde1dcbef25d6912d5f972d29a09c384c82ee331e97ce4d2a14fdd53d410aa9570b787fd2a65123f9e59dd3a97316323bca00e52cf8b0715da6fb3e2febbe106fd254854eda2021c31dff5411851cfd6f438bcf8f9a73d88dae9ec7d36eba07f56ee056fadf6216e01ec1fee70ff0c5b73534298a353ae6de778624ad949661cfd0a2ae08cad90df3da37fcb8bb43c4f4193db85cc1d70e0a321e900cea2cab068680aef8740637f471a90af1ccfac8cbb0fc0ec2df07cb6d218d9305b981fadb2e67173718f5564774bd9d1edb334e2b567b2c22cbf280867a7aec3652bde5ecbaa0862fb5d51ba2ce72452753dfd93ebb84801ed7d87069eb5c0f419991a6f27b6c6b08575b58c3cfd860655792236d6fe37ec27905ddf638e6e8933f7eb6e1a4d48c124984447153713d54f61d118f1d90ead609abbf5dba887c224f262015da18ee8947db5820f41279a35f52a3bf88e3117495df7cab12a517733a6f6bc16ac10b0f1d247abcfa4b74f57d09484d7533f8bdf1e9717a30e0c0678c6d951225244f7955924b9e1ce405ba4dbaa7ad3a4d14c1de48ba7a03eb9f0187309da8a5575da77bf592a141e967018785e3ba3576a6b1800b054dd2bbf1f9b5ea0e0c097a47c19bff07c4d9463b213fccbae9976a6e2752b579dc662c1f620d0cb6ee356552cf9aee05d6557973e6d1065a598874f1aff2dc97fec194ac2282168a4a6d1189e96229bd2ae477135446441f5f46a711389fa329252418cda1549681d2be022b826530a2065a390d5654f1c227cdb79243d8d0fe5b8e20d61634c1036de2b9f1c61412e9f748f2675b955dacd90157020f43e7e59efc2fcdc66e761f991364239eba9df5b02bd508358367a6e0e239e9e460d0b4f22a4fa085f560a17065d16ba0697e5d0ac6774002ce08389fc348a4dfc614305516cdf0429c14ba402dace928d6d80d56f95f30cccc06af53bc5b3105910eccdb1b4bdc9d28fa00939dbd99649550df49f9b0754c048340582e438f49df75f7bc6139b7367326f1cbd0ff6eabfb8b6eb6a08745a8efe2fb4f48799128f8992a06f30c160456b94c4e612a4c2322ba6a4dea03376d0f03a5a6872703a35b531f66d91af6e09dae65034c16987bdbb91f1f41461c4118258937c96523f9c3cc8528283d90afefc0de34664dc8eecb2ade4afa1f2b19c4f531ad85a1cf83db772140dc6891b71fa106edca4396fe6eba35d6ee14e2988e6f850264c5fa1453398eb924c3c9fa26fb92da7fd733d6ce9082eb81b987ef5880e2afc1381cb7f7f39046787b44a0c9c898cc0e3a46ae33bfd1a90e6846cd4e3566f589c52d01c591a9cc8d196662000f9b2910eb4c183c64a4fd33f8c88228c280644ea04cacfba9355106858e31c08aa01752cb68c71c43cd5149c8280462bd71855a81e807f885f96d8d1ed46442a798bec9ac4dae69216b6a0526844fb5cfcd32c283a90575d6dd3349dc0c0bea21df6bab9298c8b87234dd3d43aa214f9088b09100956f5645dbd1e2b8e8b1965cd2f14c62ffd8f13bb7655abaa0f31f83763be3c3be3f2e6ad5857adaa50e188737e84d5713471c2bf3cee2e54b8a6e8ee320517297868dd5da20085276471421398b0041725b824c19d34bac289cfd8e68ab2ac34d7475d57b0fc0a19da61f1a6f28bad8d571bb37049390ecba888b369c5d11475fdbef2dc30ee2e6d88ac88819b4c32342693a9b40206bf98d6ac72bace23c19aa7ffc52aaaa88a561540b89376ff22356b2897f1a733e7fd8bf94d245833d14c925ea9f7bbce212653264953a96fe0831b6071af422593a457ea50ff471aed8f755d93d792aec3afdfb5458530a11fe5621c8aaa68f8bff14a8f63b5b93c1fab64ea33cb66bf2bfc1399c3dfdae2d5e5c12b7c835f2bd20c6bcd389a38a1ae397767e395e6f4587fc85cc71387a231fa44b95c9a3fab34ba6f35a1d01778c26a55c59146f4fb4893d6d18a2e1c568a664c4bd20cf5f7c974cdf9f2d77558bcdf58df74c26809bcb78a14eb3aabb4f459bc01000f79ce7dde07e67d9fbba1538453f030c50e0e443f0d6d65a5c2d6bed9fc9fd339e68a0a51e1fd12bf70f40b5ee0b850b494f5b2adc730c5dda47629b430379b352c4eff585353cef5e5dd9a6e986ba2a9f04f35a1ae398f63b6ac689628c79dbbb4fbf779ad8ad62a49f35beebbb6aa3ed98bf4c6561a57ff3c454c29f76125e986e1bcc2d7093fbc16d4df0ac3f033dea6ab46157eb86bf9ad70bfc63a5b9b37e1d370785138ff94bac7bfb9d1f56f5a2914b0e1ceb56a5555ab2aee62bb4d189059bda1dd5f3b5212ef8d6be859a9894f17bea119fb509af47e89bb99b699621dbe87f35bf1ec47717e2b960a110264a7859a4257a79c176da15e27544b078aaac959d12f66a648129a99987134cb4f9bf8a78a22beb5e43acff1e2effb6aece2b17e5a14f18735ef1afa7d52e8f77d14084a698996969056e62aab8a898b52aa004a7fb42589417cbfefa394c3db5e730435300104770e06a6a4c5cf54e62226581c78a27a06621d5a77bdf9d60cc43a5db7c418ee2c71679b3b34acb34f1baf96b0e17aae55715fe6f68f638a8a80c6ddef5bc121c8c2da78f59ae7a6365e85bff1ea86134b7386f1280241142050c22f16ff46a66bce0904454020c4dd77524a94c0ddb98c7356a2e5ee5cfe92d671ac36a85a557138bf9514d5df479f72fb7ec69cae551547db25d2471a7da3b38672dc884d3e3b515eb4665c7568df6e8a77dd264d399db188f5b6428490389fe8b6a1ddafa9b70461033ec253fcd7001234c0859937a55b5b9db9aecbc0114cd7c6d0da26bb4e779de77dc6bb7a1ef2960b9c4e3b1a93c95d42496c171a44126092c4e7ce5d4bd1482284d9d6ba6f81735f4334041a1670c2dd49f1a6441630c2dd4d1759e0870574b873b45fd11220218233dc6120820015dc5dc47029c3ddc1ffa1faadc96492e92a3355400d77a74d98d0b1769da8029be80836444764111d21131df1121df1aabd7ac02f5d36e7c62a99ae39e0c5ab199369bff6bcbf9834bd8f85e61d473bf3bc9d49d2f3428b7fc2fbe5e9fd797e36615b9b3e84557b63b5e3388191bbd38c45082891046fb181bbbf8b8890c2b5f760c63ffa7fb6fe1ff13f8b478698226084bbe7d1fe7afbb5b7efff9464967933b414b3baea87555868714fd7f1d04d6c72cdae9cd3a3ab2b05ab354d96643cc22a8faedba0e979f7c3d0ca3c5b56afd45dd77546666666666666646692203962a408912134334b4ef11f76b364495ef2b05ab3e4611506e2d701a8ae7449937fb189f7f3b90c73b215816bb873341481357011088a4096736668ebc62bee82ce9d602e807db000542b2a599d388971867de7f7d792a58f34d2a78f0c77a795f65191eb7fb5cffb4c18fda8ff19ee9c5745140f09f78cc528363b9e8f3bc6226fe4ee3dacd10318ee3d38e1dad543cd2dcdf419d7a7518c770f4c7293264b68b5b5a4866b3c5acddaab5532e32a1d0f5978d0c2f34ef07afb35de63a555baeea3f2e2c10054b040a5092a2b119526539c302589293653669092c59db37895ed9b65e9ac347a9ee238da276da59db7be38921ed1ad6f7d14e58408112284be6cffe07314ffe22bc50122293a52a83bb7451153d9b6b4b172dff7e3b3039f1f7c04208aa245141344613947d23167c6e493238a3705cf5bcfadcdfc9db0afeb76edaf1d61a21e2b7a7c10f5f4f0b421e2d942c4d3843b37032bac54a29c0d3d2f7c2cba9ad45d6f9680dfd3c49549b78696468c61a30fb1aac96ac999f745e99a2beb15c54be6ce895e32ae34dcbf2ab4f451cef501d7c7551a4551938671d1d61aee5c4b0be7aca885444e2bc7dd332e7d36376cd4a225b5814206941ecc823204090a127733db9035059613dd670cb286f858aeac9c97bd583adcb99d17fcc5a71d08ecc8b873e1275a5dc161d77aa1b742c2dd574e7ce563c4aa3554221512aa963b1736d11943c789af0a0f960a0f5fd6e1c1bd0a0f252a3cb0f164064f68a227482e0ddfd9ae26ac86133dd1e15ca675872a5ceb1d90b8a71d5866d9b3830f4ec7345ea5c0b83ca92552359ac234d753ce19a79c25385d73621516da9a6b99e3c375a8820e4c6cf0be8cf6b53e63104709382bc0a9e1a8706ea0d84035715fa6ed68b79943bbef33719f890b3f1367e2b4a5e19dfc339c6b50df0f0a44c97043c5cdc799de47c1195861d58e55dfc4609345645386113649dc3b930dded76a57474b325d73464bdefce16fc0efa921a3260a174551cd573372f71319244e0f4b7492894e222764889c2c113a913971e22494cd4d6e9d03079cab39dcf859c72aca418626386862454d28ddf7c3d0d41f6250b44c2e93018898c040832576c98b921b28f141094d5784ee055c35e17d8ed7e2edfd0c97dfaee3cbb69ed51ff5fed8873fa7ceafc12a6219ba33de73a4610c2eea28d0ad3a8ecbda9e1b260a0763b2926891e493ecaac35b5348b27077ae8936ab8dadd9b1eaedeaedea3569b25a02d6d1cb47aa383284fd39e2733a22634464840a23575c6464242ab286bba8081515b9e2ee98b68bf8b888c81aeeced94da40a1111991611712222824543ba702e140d598293a1da0e71e2dc091b22a2e9826a4b4534579c13d138c1221a1dce8966a2b09929c29d34af77bfc4a479c394f564582043452600a2182c313fa29859cc0f329bce3a7ee5b4897ee16b2e0b11c704a7e3dc6753e3110c547c361b5ee03a73f7c958cdb252e3f29a4abdd940371b42eeee9b8f317cf31104df7ce4c0371f35d881c3250af796284039764831c3891c37187dc72502921c5d240109519e029418c6d021882becf0c4cd057c70f78c7164da46c95162b646953f666b5ee3584957ce38f92d19769db7d8e0cec65603e83a736525591420c1d46460688884b5c61d708521b61f67f83f8e75770705f1b10d2003f89ab2fd7d36de52c4ca59a3fd985be71f4a7cc9990f5616133f0461758a149f283d3c2f570b0a6ba5d279b2438e0e38a81b9b9a530c672ab5818310d20826010838c00d4180b4416d3040016a20401b9b080034ccd0860f196280e1851e3c76781bded2c3f6a30aeeee204816133f04611589cf111f233e457c88f80cf171077d343eee206fc6e7f3e75c5bf319dbd484d68b82410ce256787feb8f52c9aacd27ac59c63867cd5903124282350cea4197eea02aee201e32151dd91c59e3dda9bb86eea02935e73fc182bbcb124052ce9fc9d09cff848811172784d61de423433324bc55f6fa8c5517db9df789c4f743775001487c71540f5adcf363b5a00dcd1d466d63af2303fff53f69b8b0f1337bb16adbcbb3e16c23dafd2ed16efcedda36771f859fa3ff71dc4151403db31d7710cf8758a5ff719ee00e7ae9103fbbbb40c1d502410933a6695d59b25d592c106b5732631c2445b42bac35488abcae3561ad7107edb8bb3b684543908a047d48d027bf36f397a6cbe5ee62c6c6a32bfcd8b5ee2e5a003da9bbde90464dd86430c3fde25d7b73e7a6705a3d0fab352db14d862b32ccbc7a9b0c43dcbdf697e60acb4a73e1b0e6cae2d978f5b15c75307e7d886d3ed418ac789338ac292eed3aa2dc9f169f28a75d2ee0eea38bacc07207edf0e335107ae4a047143d9a0831e9e97fb1133f7b3d9070dab5765a2d14050204480f9d1e4fb61e335efe524c4c785ff3d0028f276c3c8ae04ebb514c933c9a70d7a4a961a6f66e05795cd978c8dcfd47cff378e43c8f01f0d87186bb87d7ce767881573b6a407728b163dc2173f74d6b55b5edb871b7be85a07077916f37be1d3adc3b1d5218c70ab23c1d5a50264c986c3aa2d05184d3ce84e98861cbb1852dc714dcdd1ccb6c6a6fcb41857ba65b8e20dcb71c4b72cc6c395e70dad1ae44bb6bf36bc3b1c686038d2d56574b672eff1eed8603013804e0afb50d16da6d3798d0c07663bb934694a31d90edc668bb5180edc6e6d1aec485bb932e4aa3073dfc36b78da2c307b71001365017405570c769f55c5b47962bbca73357d26616a7e9c3b279aa7496f16b2c8572dadc950a1152ce3096d17d8e67dea01dc76a73e6bdb50871c7abd6d6957553f9591fe52a25611446effb14072eac32223ff4653597c80f6d62a2437e68c638548772335d2de56e89c2a007f733ef6f3d59572117cad0d806af688f83f16be355f8ab70e395f95c08b97b88f7b53370b50521b650862173a7dd164afad2f07d22d20219eecea3852552fa04da12bff6bb6a7e69414a682b6bfc9fd729f18b655d6cace1b4c3d12e17111ba4ebccd51e09cd8cb9240b4764617420978643500a94e30ee48691688d2b7e66027fe28824d608e233a6b17231de6301c6ddbbaed357f8b830aca72b2071ee0a2fb8bb29bf1a4350038bbb533562a08607dc69134abbfab29f857506e2d12b2b4d873a73309c464d034a1a48dc9de62fd18e966857a29dcdcfea0b64842a78c1802afc7007e9c07207e1b8563c3b783e2715be9ece31447e6638223361d7a1314617ee24589b028d143c1a09b8752ccfb8c06b1cab8d6a06e2b18604d31f484d74e6fbc0cffed8bc478baa39d5dc8458531c529b52ed6b1fcac8cc70a4d71fc57b4463562ce97aa150ae34692d493c72da8eba3423e94ce95311bfeca37cab19d3ea2bbf7449958ec6d8ddf9cb4ac111a5dc5967387fecf7bd35e5fa643e8a378db2bf9c970e2b948ef75aa1543aa05cde6a27f5b2e169bd5cab1d1baf85ba59f188988c993e8a286253bdd8b65694d3568b3816bee95a0c9aaace61b595a4c711d61ab4b2b2e618dee599417a4a39a976c6b251bcb644d618cd5874d11b282744880c577b2e24610d2020070d79988b04e8ae4fc4480f34f96135092f70e72e49171db84b112cfdc6d1cef2ff28b16265202e512e3de0cefd62d5192462c4a4a2a54afe62ab848811930811118090d1c3fddb7874ed4f670e09f461b5e6081c70f76a3a420f9258b595192865d5d2c1072cf3e1b46be6f7fc9423472c4ecf14eb33f3a135e46585b5438e4c9455d50ce5431ac92de36238aed369f18c2877ae8c884360a7d008ea46f642e950b278a2f0c8403b25f3b4ecf3d094ab284986b88cbc7e90e233039250a8b6468ad0984e392e4de6df272c5584d06937c61763b0608c25624c6308e1b4d33cce85317c88a1861857c42857200a430c191a9a21b4da4ad53ebcb5e7090805baf1fd7a7f187ad7fc8d2f1182e0c8df2912ef5b65ac8755d810c04800cc12908dbbb7d4b430f94207ee2e53d6ad49bbb3c9c55b3c880371ea36b8017c7391bfe032780c0e83f7701e3f8828f172021e407991c08f1b36e0c0b2fd90c20248bcfc70c4f3514319308861873b1739a4e8c1070c6cc42c91a389172b86245cba50620060b8bbebc88183070f904b8bfb08b91b0172c3412e2d2ec282062f470d4890c8d2832b2c1e74c02007c712353268b8c1025940246861c009169c2e3c1050202255cc9628969c8294e14040c10ed4b12011b201da920220e0608c3a83cc155aa8b8bb0329afecf8dc9dc6b37851021f5870a02e3ede4244151e809c9f2c8e05881544980084068ae4b0636d6821a20a2db06c4e90329b5109f931832c6c290ba40c8003c6b1c0410b74e258425b0b115580b26c71864809320c810b3bccb81b3312095cd218819418b6c002862d68f0420b1155ecf8b1ca4bb8680b297ae4d0613a8760427d8b1210212bc2a7c065a9e12a2e0790b1e181bb3b0f9fa209348d2bbe850670c0f8142bf8b0e2c4b710e28425b1a10943f018dcdd858698243501581245013e10b00129b43812278e03c6dd4351b87b0bc808063481c515176d71c50be08377251ee801008e600343132220e1310b234d1b3e9975ccc2f297a5dd5ece5e695fccef6d99b6b4fc1be30cf2318e662cbf4a7f8857fa7feaebbc0e776763dcdaaf43c6e16756c62777900c2e77500c30bcd0830768873b48470e181e6b40386e84b43b08e4026a7119c2a58d2e0ce1eec20577a71972d69cb76064e6ac396b0189bb0b1b44ce9af3290b1a76727759e3f767f0621b172cb85c211c6d147717355effe3a8c2df19c734c49d713c8de3c9ddc50a39a3dc5daa30db095368b8fe1156375ee5b739d71a7797335a976706629dfdaa8d57fa1f67ac7f8357dfcab8aca1c2d1c45152327057520775bf2a1c718e1e71583f4747c138b7962eadc16f6d8d556555e99bb346d79c310e166f2a07559239a7e6cad29fb18d8ed51a9d318e9e815847df5449e61c0d459735bf64bae68cf5c6ac2b631c8c6b667a7449e69c73db6b45f1f47f569676940762deb630264be85bb11dd842161d7041078a70dac93a50a50349bc444d587775c0a32bb55dbae4d135e1eb9a73d234bc62fd671cfd76cc1555fb550fdee6e9046db4aee559a3b5d65647dc21419f9a51275d33eac18c716e6dd5aa0ae396ae19855f62d597479fffa4468f75e351e7fff996ae55d58724e883c56b66d6872cfd569fffc446bbc2fa390fda9ffcaef1c16b5da91f4b9b5fbf718ff8c33affc9aefd4acc3df775b4b6f97fb1ba5ee3d1a624738e4cd79cdaaf42166bebaa13de84a9bd6bbfd2e73fd1e73f09b5d67f7f579d5dfb951e71c638f9575ad30ce1c1af9478535815a68ef0623b8288bb03a1009db9cd889a5f6c44112348460031e287113a2893520c0e98807b48880780a146e95511428a005284008a90c1dd65ba8e2e9ebf78155200097f51e073779302264f67aec8cc4fd7e909fc5064e687881ab8d30e8b3f70f7ed9b04ac4084153f7f5656b2eb887873c4434040888c37695f25ce4d0be7b46dc211e764608b40163a667df84c95c8c8b459769d97f7b5dd1681af46c00677874017eea019d24ee7436cf342b5b07859aa1b21be10820a219a70e768a8c76f08798014dc9d74fe6cf4002abcf6f701351abbf601ad07c850da84d29adf0153d8df3900e5801b77a7e289207a10c412410ce14e3bbaebf933dfa608f18d0114f06d4a10df6c0ae01b038470f71d39dc5b362012e01b1003f00d081fbed5b8f038637c3b13e0dbf9e2dbe9e3c72b06fee3b584ff780de1ee3e7ef88fd70bfec35586ff703de13f5c42f80f970ffec3b583ff70cdf88f161bfea31586ff685d81833b0c3db2e9b8f2c21590e783d7755e03c8067c68ee40e9c6eea11a42047007f590b10d0dc0dd75e6806871eea01e01e8008d6161eea11fa10084f565eea1971c861589696501b505d0b6056c6f424b4bb6ad81d916c0c324313863e5a479a4a9dd439b8f1f2b14c2940b1a21d193d8e5ee7246f8e15f9e10004234846608f9d09903f18464d8682bdad15adc6330230d172c90463f359859b86b2dcd347948b070db506c22f6d3f0af2537d55a707718dfb4173463d1f4b9dcb410fa86d3a3bc860b2ac7207f205bc0dd71498f630519e0db0f41684267ee87506f3f506e2bc1a05bb904c9b732dc9fb79232a1940b29ce62fa5c622834ad1a579cd384d20edbb0611dd475cbb82f28d11c4adbfdb8d2a5e275b28b9f4ecce2ee0bf08dbcd1990bc1107a8196bbee15fee3b8c6b1dad43ebca99a51b18b330ddc9181a60ae3d75959b3fa3e5ce15a94977fe39efcac5a55e5278dbaeef57ddf3e4df959a2d975235dab2aaeee92b7b5497ad4c427f735792d29e90aabbd32b6ad2febf8458ad0f273f8bff7d770ae2041a8ae6191cff3aafda17bef0a63c26413ac1be62a91815666c2fbd21aa6bdaef9bd28a729f9f5c9afbb861be669f5bbb6f491465fe9cd525955faa9de4af66b985d65fbdb30b782323b94ab4a2a8a72b02adf47056f2a62ca55f972948fcaeaa494d30ffb3e5a9af4cc5fde58b56178abe9410ae2800b96900e1009422d2f947ca3826509118094e0fec786389761fd960b4aa887cb137884768474b88be2ceadd992a4404a11b624a114273a1abb28ee619b1493b661fd9096c21988c798cde70a9f21ee97d8678acf0e3e44dc69572a51771f80bbf62d8a07dc7d4767ce64d25da7cbfc3a7cedd1f3c2dcf367b09e2caecd4c923d3768a95458bca97f9c7f1c2ca23eb3f2fffceae5ae22b8fb0bdcdda5c4104e3b2ca3b942da6d13bb745c474adead6059c9aae47beffbbe96acda1e9d394fdca00401e58442c56957a29d87379417581fd0279a211e8e6d0789736cd1b1ad74b0ed8cdcb56db224fc58acc2beb5b5d549715b5b9d8fee1a8572fb7338e21283b4d292a637d0199a920c8d5598384333a632f433a6b7ca105aa2a1a5192a1fd54888d07033e7589391a1a1a13f1896cdf041fa113112abb071fc48a3fdb1aed3b15af3517d8af65650c72acc14a347bbcd98ef9b7d741c493314875a253992278456995109472cd3cf8409ad324371a0332a25d0e6fd24fe18c53b65436fa0dc3962dabeb8a4cf0bab3e2755d77de4bed5e6ff926e138bb8f34c967ced515d0adfea5868e9cd56c72a4c87298d475b77ad39514ec72a8c665bed4857948b55d889eaccc5a0625022a75d892b551ca81b58e662e1eb904a5428f7196f9d316855f4af6b63dca2d5d6560345e779ab9d94ab85eaf1503a9c5a3b2f97e7756178ca262bfcad86461cdf8557e18fb07a79365e6da729b6d3e78ec4c857fa3892919951a57f39d39376b36a552562d288a338509a21df9bb217e5be6f2c29cd90307ff99a0b352689986a4bfeb6f5fcd9487325eeb5e7795ecc598e21263bfdb15a96f5659dce9c129a92bb29692969e2b4238d75e311a5ddf7794be702d396c400496aa0175bea820d88e00c5ae5062a1b123436240bd8908c325d73ba0eb4db912eeecbb617deea7d796ecf3bd280233e1c917284652a51cf88194698b0192982112eb23052853bad85d6f42fd2122dd1cd0806dc08018cec28220512ac15b9a2c80c8a48e1b42b713537943e49d72fb56da9541c69445b2a554ba5d2a15cc6dc2b56619fb7210830e958dd684c1b0d0d1b8d6f3357b699709b093d1c473bfb6c96deebb7a65007ee8f9449135ad61017a7d6e88a3bc80b77d12e2200403684d4000212823b28083a7244396f88af3b0808eea02e9ad8b8267a70b0713adc9b382dd5a50b77d7816f26969fb79e199b61c5e309db4c35b8bb837ee00ee2028b5409032778bb2efc4bdbf930067e1477900fdc4158b0c0c1010312f019dcabf87680d2fdaf1daf055d07817ae0de458b8f194832ae33f7ef7a97ae59c6e2018cbbfb90196ec604fe8fdf88c1ddaf6f3055d0991bc707b1d062cc1905e2713cd9b883b2c082cb16ee1e0261f1030f44b867c00452dc80890d0143b8c76ecd4a66a8897a4a68c2f7c2d7998b5deb1e0429fbb60320c1b303e17efe93583e3d71f7182f7dbbc105313140c69a8cfbb8dd508349c292ccd00243cbcb16a4fcf91106b337090d27638285a6b7799f8284eecf36201cb851051d301b4dc39d3aa13354869e304a9d48420467d02a0134089d1132234485d014dc413948c103b5a2e0ee9205f7101466f4bf88c56bbd7d2bed7f6ccc3df484509690139a10ea1d62825d827b4809a12494d1122223848423848c5004f750126388371512231446080c348830049733cc087de11e5a2fe485109cac178b37150450137717286cf175dc43400875e11e42c28ad5e73db9877e10e2028b37a5433e70512384a505eaa1c7d15cd1800634f05a688b906f7b7948236e96b1c88d376c0fd32a545a4e77fff18d0b9d908cd7508cbbffe09b0f3c2fc92c7b09126407a6eb60ee973b1757dae5b9faf10dce3fe5b5a3c7bff7b57ed0f3b6bd96a3274c5bae499802bfe7d3358aae54ab28c771d78eb15bc387a168898522b16829453f9afa589da624d88872d752521d7d68f5c75cca1a69db751feba326ca599ed3173e99ad48f2a1256ff4d17cbe8fe4d192cfe8a3baca3efdfdcd5d8a72f5d692dc3ab495f58f73b1e534debab460addf5792268c6217e5b4a9848403554285501ce8bfe88d28135adaed8d4a48a5dd2370aca0c7848e3131d496b636f3f77d943b61b4442aed1e516d3ac78bb3385632eb8b2d582ba5787fdfa7310e52da4d837c63fd447aa22f34e840c08c28e271ace2155f6698c29d7633f898c187145c972f3ec270b285ba1961a30df1ea639585573c94fb7e0cedb6517e0c53543edd757adbd88f568763dde1cb763649221e51aeca27eedcd7f9a8d013768e63d518c7e84993e80b8f17b8732f3c8ab077d67ae171806ceea7c55e762cc1dd69f67bd91145f8a34c7fc6d971e56360f7b283c86357cf93b292de7fdeb0aed35ef82f3aa270e7be213d24e8f3ed171d45bce8f848d0a7e77bd181c4fd45870dee1ee32f39ce28d9971c54bce418bde4f0171c52d09923c19ae905c7153862e0ee3424419f71e7c595da6e3d8e757b9eae9cae3053bf15ebea7957ecda19689fdccf3f0b7305b5bd1977c2b7955533ea08779fc15f4040902fa02a2fa01e50ce0ba8c80bc8f402a22fa01e2f2e5c70922449ad6b46911ecffd016b78cdb264baf88ab8ceead358f744bbeef5e51747d7b6d7c425d152198a372d9d309ab1f835a3f2733573b45d9a19563def837db16bb98ffbbefa7d6113fa71cfa52807dbf968e9eb64bbfc9b1cbb4b1cca9d96237d426a55f58d28e9139231ce37a2e68ea13a63ac5fb66d95efe6a3a26b7e4dc37766c2a9b09aab7cb4bf5df75101efa9e9b5bac264b7961a833463aabf2a548917bbd644e5a39dcac499a49a770dfc3e6dc39a9f1b55415111f36315953937cc457d390b6f8d55168eb1a4d0bc34fc759cce3ffb4033acf2e1adc38f5596ce3ffbfede4ad2f0fb60a6b07e2e8d36b4b73ff97f70c9ee335792345d146f2c7e44667ec4944ed1d968c2c2b7b44acda852ce8b85baf1a4b4765eae540e35512a1fbd96f45953c9cfe14b337ed9bea51afb4ddab0e6ad6d596978a4d5fe64ab7f3c7ff6a2e339de7c61aef3d62a5fb53fe7d6558772f9bbeea36f6f363769c49146f9b7edba8fc4a58d2f7dd33ee9fc99f7fdbccdd9d2d75957f9eac626948f0ad530bbace468438b7d286995f4b07a6fa58dfe0978c22896edff2be4e5e25109094249d71cc97c62aa5a8cc239b968902024da88cae8a9eb83df93a21ca9f7e550e3686bcdd71a7d6be9e209efc9b5f14adcc1af9a71f04ad751b3365e8db18da1e35a31b4d0568b81041549881113a325066b134307896a5b0a7f44df5dbc080307618480d6fcf4ad58d00b5ea4dc5d7440031a186068f7500f78000606c06800183f80f1e992ceb8bc94864448c39d862fd540e4d0298076dff7dba27a52ae150a077543040e70f937e664a8b61b9f6488d0c2d5fc542441b7217cce51d617646c5f60d95ab0c60ddfbe50e2882fae7c21e24d49f4da1102a88869f7c50beec512bc98a28ee55892d60b90532120c1f5f9b3953eff095e9dff240c5327bc1231ce4238ddb92f4c7d79bece7ff2d197fdac72dec5dfb5bbfc19fd1f985053d08efabbc88272a633ef9016eea12cfc877b080bf7d00edc4357bccddbdd433a700fe5c03d64857ba80af7100edc4337700fd9c0dd433570a7a1f9c17bc8cf0f8ef881114ef3f37d3a735c28818b1cc4d8bcafd599f381157cd08553fd4369570b2d056ba1d5992bc92ccb32976186172c6bd08d75a01cc91bcd76289026af6b0dd59576dd6b09a594f260b2849240306091710e6f5bb0b145185b8041bbd1b6850f25bc5fdfb1daf143ac7ad78fb0fa1baf76c663e5013f13e1296bf6b4df95f32e17eaa6fe686373bfdca1fdaa2473ceff4ff8343f5d47823e5a68413a09d64c59589185ce474f18c5ab162b54e0857ba8033478f11f6643b3de98ae35df9a633be8c10e66e079316f06da59f6bc9fd5ededa7fd1d2ba8f19fb5f4f6eb71b432f0c38b61409435d37480012f6ba651bc750084ebcad2ff38f9f2645b715efa67f5f53a0c31f837a768c333acfbbecb0a1c8c15c43a9b8675b6b9e3c2abb0d684b5e6dc25891a61f5f2848ff3d9bcefe2a94288bbbb3ebd30bcaf6f60032b8a29d6c9cc9be28f0a1553b4cae7fd59b7a6dbfe8435c53a5d4bd68b4963f8a3ad03e52877de4a350c573f9a21e647c377f63451e32c52aa5f27d4f76578df508e348e7526db5a72a44f97444c298cd3f7750c4a100311e070b4262c0c1ec040069da7bd92f71b5f1884b43397501888c0cbd3820a4ce185bb93606d8a26a6e0803b25c11a2d7953e438ed700cb102243c1c4a91234513298a480143a51040d7b5a00b77958d0faa051da05dd7b5e0e44e49d0a7ac9f371630916488c9b4adc08c15a4f4f925f020546084d32ea4362a7821c63728bc7020395caa03850aa0080114579c760fdad042b1722f3fb34c50d000853ba51cc5fb5d4f34e1092a4a4f6c777f020958633f3e71c3399ab914c8dc1dc8875fef2e4d7021f88e1e7c73a206b6ac31480019e1fb5c5eee3ec5b7136cc18636da68e3044a38c10edc4d66848c0815111a6d11a2c093d83581094cc0e509a132dc43312e694cc0fd2f5e85d7d6427be32c8113f3870f3df07f4af0c3dd654d54e14e65baca489086e72003f83fb88c82f35bd195b6f4d84630868f18b3fe079325c6abfcf7a69848c3cbcd0413571051e34c50c0b7a563fdd6919fae730f11e11e1ac23d2401f75004dc3d1482806b6db3c59d930eaf89a333c66969f15b5affe3dccf6555699d9a73ce9a0fb14dc69fb18dfec7396ff4bed70cac86a89474d7e2a2856a440000000000931000303820188a0583e190583a1e0fbf001400025ca454ae644a97ca5914530819420c0100000000000000001408002a42af0bf100f978fe5f5479cb7197037a6e5577f299d069b86269f7e9c1158e61eddbfc6d0ec49452d46324a4a6a6dd08530c8b1b74c61f957856ca4468c81b44f75c70e0c12328a549078757d1f6f01d8d7df75985fe7a1b280542d4c8966ab61f6f852e81f21cca79616eb17905552200d284fd12b7d3dcb5f68d6f48201265bb412fb7d19c45d21b8b5822e8d480d12facaeaeec9abbfc1c63f9b19de361e53b1f0dbaa6f986c48f31f1600bd4a6d718d96f280c66ea8aa2565e779a4551cf987d50049bfe758ea2670b63390a30930569606704e48ec20f1bd47514a82d646047035698287c5784569df5b7cfb798ef4293b60200f93aa0c7cf575fe1a18ada6acc5f7f56fbe9f870e5727c5610cb9bda99f40f839a56e5e20d9c2c975a5d12c43c0170651f53f59861728f405a5cbefe99e70898572ce038624738955ac582eed622d3aaa0f9555dd80aa9e0804723c80395030ec9c87b45be4d84bc165aa2bee89a1031b8082bfc0982d5b5f4df42fc69669ce82f29e987851d876a46df40cb986342f094e371fc397d79e89116cdaf4f0777d2a92dd19a45d3e1768f98c10fadb8b4ecfee7e1f3473d50fec7708f9137d8e01ce6c675ef7133303d403d630ef4ca0df0ed563de37aa29b2c47455e0e931b742911c7294bb515d73d8c0f2fee41b304f9d70993978f5c3d5beb805f9b049d40e25d91360e98e4e7de4ce749684a203d26fd8ccada427ebadda402869d476ec1a28633d8040e3b38fdcb448e2adc41068f195b71b7a47d9da98098c85d503ca246b61cd2e314ecd3e74a508240167df81d87991d75b078f8c1324b72b197351a13f3bc0cbaf6430906c97b5f0731d7bfc8d0b335a6114da6c9d54550aa510fc81a0536fea18a07c0c49db287cdefffd5f3b42e5ce7121db3ed456602be819049c0ec8f0224198212360df8742f9ea5da42519dd1fb11431998e30e93df87d3754084506816740e2828082f97adadcd94a4b189f75801110ff851c708e831ae4b8a95ced82b8805756bc28703eb35cf917bba7de2af84f1c826f8edc729ccb024e64b47c478236f2a7b558605f510eb581d96f839559a2ffc0c202ddf6afb1f16b2a76831e7914eeef0b423aba75081b174c948e02e57081bdbf0ee7871d3ec4a4d85686b52e145403f272e0817b52c246d4442f8bc678a9f5613413694796a0dca59f00a805c76c2344245c13f2f27a6505c117b379055a6a1791c538d7e9b48602618b40cef0570a23cbc8beecb4b04832e0146f6fd38c45c041e813f2451f262e48d28c78545408c0676840ef2bdf23430d3c15fd11dbf3bfdefdaf240da1d99da9cd74c22c08b550638f78bdc638c228b1b0bd11c6c4969fa28dfd3e8f714ea9ec20f1dee85431efe51258202d8416fde401b201b9bd573a9c73a221da702de302cbde9cfedd61ce895c2e6ab7183c8feccca4219cae38e443041040a4ed40e639c8671cff0c04439d42069f540959d69f58017f2f67bca566a70952d1b36cc1d02cff91c1b3bf683220817effef98c2b05f0fe6288d77a9c4e280e6313ffeee3f5ec757bccdcb22a958b3e73bb9b1dd330f0d6b00606536e47971e49842179cd80e4226d5bbc0ffd71c84faa3e75b37fdd0f05f832e3deefff0ef1ffc7b78b99a8c2a948af1810ff620de58515dfe06f63a66740e8efd9f24bf1f1f0c0bf999e10f4a8690bfcaa4638af305f98c2f7cbaa430aeca8e070c340d86235a39f74d4ca35679bfb2860ce171e2d92168e22c16e2e0d4ac612d9fd6cba8fb7ec014ef0f9f7de43b7f9db86e5344cfc096ce5a7ec4b5fa306613f65058b70c512a9e1effda07f932785442acffac0828b1a3bcebea876a51c2435a73b7f680c04f5f5e503458a00b512544beec4c9985c9b5305d4249825c8be096d44cb84a378a44aecdc6fabf084d9f7c222a11879dc3e48d2c55fabac2c5e18a89b43776c5186965fa9ff8d2290c3ea0e1a1cc9f3b9f912fbb97d25d96fb427508a2694fe9ee89b734bec19745002b0c3937dce5451dad7057306fde51c0bf95327d5e1220994889b2dd3c5fbafdb6ac0136be8443788810e4c6b6b0dec16e66cdaaddd6f64b253578472c3e2ed0dad3498887f18c7f188b064532406c88559f030dea1633ffe5b0944a1630c8a1cf5236ccfc99df031a799f71dee9a892b694d75109005bf8a1b421c866bd08aea9d776043d66a243a3df97ca65fe8c728cc64884500f24f2d620eb7b9ec7ed742e84158e89203f1368046f809030d9d71f07aece15445fc9b4b938c0af9c66482fa6cc37e3ef23a826cc1bb617ed74a1463d93112e4ab826d70002c18141c051414afccaf9f9f3e882acc634bcae95a72e7610409686b00c6e9ad26a74f0a68adcf4b1f60590e47552c68a865d40330e40abaf1fb51b9055f473d5a894947c0c625943cb05e94bc04e0c2211b87337579420a84f4c1c2a97121dcbd18b1b3d0c97b51601593f1820b3c9e0a4dfd4c83c045856e114d0f0a70e607d9421d693baa9d3907c1d7e663ab6f9c8a0ec71dd695422cdf29f0e8297bafbb2de2be200b817072beb10247cb2b0e6c5943a0a5b309df5519ec31a33139ef8466e9b3c49794bd08d87eb90740260dc9d9991c79385c85bca52a7bfeddce082ffcef4e7df9a33a7380c79ee8e42568241a67e788c41f48feabe264a11371221a6ef6d721f1d004d77e96fa33460577acf35b0e3937867e5bdd07aacc6d23e19752f90445334850b5e83dccc06ac3825992869dc55b4270943e123cad04a5450c234674571489178d6f0be11edfb4a6310fb3bd42738e0506f6858ed9d437c272f20ee2668f1b03a80c6083b75aa9a2892f8e51f94f640a3e06dfe003b291e1e7556bb70fc95703ade989c3498f13d2c205d491f06600cbfed5e7a13ac14888563422575d87222254c85a55b1c916171a8ff0cbbe949acb27405321f6e783db4d74a99bed55a2ec071922c2ec503001d9109a3ac824028eb2ac534e0a3e0d04847c578328f81dd60078970b5743cf2dcd45c728fe7c0cd29b5dd02d873ed61b9a795237913a459d6436685ebe1fb653830e17c7bb9d720ddac1acbe4431df67fb4d776cfcd5bd8613efeb956079257379b433b91a2982de782262d00d6ae3952095ab513f42e155d4c07ed377cb986d2fe762fe2a039c308a56569bc9f180d68ac7f6718f7c95a0440568a36842ecf00ebb7c19f387f8d0d1b6214e35c7048eaba3380a3ca6343db5e961df2d54ec6a2e60712d5ac65e0385121d734522c15df61d59361006fe22e06c7f55fdbfc2ad4eda9f9d8ea60de6f68b78405bcdb8f7699c2963c11d1e3ee0593243765dbce8d2c7c6feee2afc43a12d5d86195068ffd4218131591fc0c9ad58c3998d56e78076e36d34b81d14b3ddc7ff02ec825f18ac24a4576de5565a81efdc53f8328842869e7c2b229c34c6cf2c0edefbb23c82736db0a83430002684bdeab35f24c0a9c0fc6616b5a8cf387114fc6128e68cb809ffa64d8f544a33184f4aa7df1f449ecb618f8c3daa1d60f214a7faa1a373f115abcc73a64f92ed800da43fc3443a65cc5f05401826308cdebaeb415f79106345a2fc0865aafd0915c4145fd3a501df11eb459711faa6834b8a86c536ffb72f9674b0941f2cc18f97b8c832b2d3808146712091e6d713b071db2e4055ff9615f77684e45758e45187384d056269ded21136d493b1aa058097d9229c81906d8255724c4b1da68b113abd1dfcbe30e158789776ba854cd1aeca81374fd2d22eaf9901aa6175cc903c17296b39760861d39d0a3a7eb9f07f62f534ed5f0afb7f4e7106a761944fbd4b8e2f473b0aaf22e0fb0a03e3e539024763824751c499da80aa12ebac021397122bc58e2c3e871cdd947c71b91c71179e21f10ae98e6ece6f1be143a24e19a4e04909cbc3830c99a4eb925ac70662f5ff9759f26050fd2fdee8487142609c691e4222aa891228ccb449d95a3baeb8f277198b6b30ad59f638b61668aefda995001c69ed140119773c8ed78df1aad5874637474d8cc1c61f85eaa2a025701db5a87697018d416fb1bbea7e3c3041a70f0a5c4408f8223fe8feb7c7ddfe2af1c6fbb384a8d92ef0eae0917b01f33b260e02e678b11c77526ee4cfcdc77293d8da98b23bc88c5208e17f2cf2e93b25197f154fd62b1689a61c36e556ab34c5c91dcc86b6ec084aee70563d4df89e64a1361f9764aacf0361c1d369f24f3e501ddb48627b8937bdc809146f6f417b91566e0d5a82304b10da0aa22f2abee88408d8190595d833bc18ff3739be9d5dd63877bab8fcd4c18d09dd93d9032920ef28d23ec271101e1536fe9910c8772bde3e7acaf1888e0e5fc26d6a01e7342eb8592ce585a67e285b7e0ca6089d840b699f7925ad1a920267d948c2b4264ae8e220dc7af89fdcfe10c5a8408297c9ed3b481ca32dbc8ace3430e934578b809604a5f4f6b7f60fa9f4b1800810808f52ef9108a05284b64123e3b6d5e78c16a97997ca787091c64f970d336ea8efd3561e789c61e3768fb556688ab3b26db7cce57faa01d606e85a44ab8d87e07a934a477e4d1cc2b86761176144da01918c945f71bd8c169298dea7558e97b7ea641a8ec51dd2524eadc3dcb198df5a25a580e2072c9ac1a0bfe67a38fb25a1d63a333bf91e82eaee1478c5c1d8f770231ba6a2411e18b2a6b0738306bf21326edd444179181a7d99907c18848a4a95d32527d5a95f6d92e5fe94c1e2e3a4b75ab408b87d1880c67329e538ef4ea930e4a533c5a78262536cd880056eca7a4bc7d79082775981ec63a2894c24a369128c1fc656839a98f1c080bde28cb77f8b904917881409ce2e1634d254defbb406d5de42a564b66cf195c4e9488d86b43a19719f60acd7f7960fd357c43a3b943562db3cf5e73e3d218dbb74ee23cac5969211016825b8cf715460189fb53a620d78ced80daf53b8b415b80b70b306cc9b560f841ba212637e61e552f0fc99b133a39159e60290b73d910c70f537b7350361204d1a148ae1d0c8e46471e8e2689c06a58cc74e716ae3eac4e1ed1253c9f24617be8a06d89d7e4ae4b28b5491dd47f666f545bbc5ae45c25313b63324de183c490d43e75ba7841c01c0568cc5a152fc388d8483e36a3dff0ce4bb55ce2a5d93920b91d55bdd8c8db547d58dc747565918fa02e3f30bbaae63c68ffdb3f8f83482c4b4df449184d721a10943b74fe9b0f4580a603b2c6ea2bb6cade310cad4de7a4d297fd625eaa1e1217d04a55086d68bd9d59f46e4f93c6e60c2d08e96d7a058c0939e2750441a16d2a8aadb8517f91bd546fdb4b26ba0a22c5af51e2515e8b89950aaa19a2c18255c18a96d473598edc5387148a267dc9d509c51f424312d0e1b4d920bacd332f8f8bacc1fae024f78a458514620758671232b63b0a2cd3d50072aca2b353bc8b72439af74e43f3d38ede5a11700fcde06ad4d2db885e938a87051a1e162aca60f54ebded570ac0df0c9732bdc4e23853c1a9fb70b29895c5347c6e127b66c080fcc2e1e6b8a5e2f59e710736964b8069961490e883bd782bf937c470e5ae51f27c5dc7df459aef9304a5b47414e4bde8fca27fffa76b1b9a8ad92871541d6ae6b1f1da0a58e0c67941e493193d151a94419a888b41592b0bcda674e97112cf2ea46ba79a339048b5cbaebe64038530639bc112fcb74a5c1025f8efed70d3c141c2261af1cd21eec1e011bb7369a557c78339f6c02fbdf95f8e6a4b30ffe58099e51fb8f7edec6f21ce30b30e21bc5e856322365b6aad0c1946e090cb5577ad769666f3a1d5b19e1e44c843fe463febad6e769ea589c03d31a44c697edcff33755cdcd73d63df2be4868209fab6fe0589f1cf96171e62feee702e2e8a7789d5034440c964bb9c11ff975100dd961000fd3ec94ecac30e21f9ca62abf6dfef058838d5b9eef4bf3083c3d7c2afd30385edc03c91ee6d5e401b0c6455a0a0a01e7f77bc8532d908b29cb435499c74c0610c08602ecc48bea0156ea5930be51721730604f2aea828d8d429f312edf4f9a5d74745b2211342489380c6490094742b3863202b88726bdc485a49ff898d195c933cdbf13408cacb6d95a0863d24e275831f62362ce0e7e18b48053a1b67c4cbd2cc080a5ae039a3590739b755d388f613da758e5c7040f646cae1bbe7f50bbd1b12516bd17310796ad2c099cdc133ae7ba0cd629c92b70ca7bd131f5b64102059be23c18aae16e96a8ae2c109a3256174bd525b331bce83dc00746359275fb2a578c839b3eaefba1bdb6bf1327819db77ce4c3242e3a33c2a50354fdde2afa987c5299673a8d9d9a7e7dd0348238dddb77129cc29377ec16aaf34c409475e8b5758b70c8edb592d9d978fe109f5e4764d8e2106b10ec17c79610a5028df55fdb03415747a9b1d625f8d3365ca37a7cfd1e1e03919dcb2261c1ca3970b0ed25df2909c4f62797f1bb91de30b56fbe2067a1b3ac6a064dafa3640bd3d84ee4ac38864a693ba4431139a11e38ca52a7a1638ea4388912f4ea571caf908d013a32bc051020502c3c2249d67f449d72e58c9eabbb8c935cfd813ff3ed758e0379f1968bae26cfe1b32628e7c34806061513495cd5a2e5f329d2d0fe5b8635b7b0fac82ca0b6751e0dcef3f085419aa62e9ac30d48135690ce17214459a93ab6f29d0bf4307f6c4e17f54cc0575e0c270bba2fefc3cf7e514574431ec59d41b080b37d5b4447ce9f1e7d3ebcf6509e02ee80ce86e340978f907036cc6052cdc9a5d3a174a161e0207ed6dc53712399519736ebb4b07f6c47a58008d0a6c7926c1444f106411d56b39994d55c8cf8f3bcb5c170d5b8043b17b7cb1417a383402c97598f5cc46e7e2d8eadda4781f2ce368ecb819d96a706671debcf245e132c054d6e747514eb4ce4b56fd7d8d055dddf818aff2b80ebb5bf5538b9e8b479af48783cf5387cbab0a08d26f13c04647f3a7e14b0d19b66c6231779a530d61b50fbaf1f6a9829aa0addd76f524b6ecbae7a568ab7d127f54d03f43bbff7f205d8dba2ba4abc952fac23cd240056643b2e38b5dea7e77255c160de8d0535261b36a85e8e28515f0939b1a5c3a3d21b2a1e5bcf1d72ce3b3eca06d370bbaae091c581e02f19d3495b1a7932852880cf889f4ac4e9c6f2ad55a1643d0b0c032d7e721e75a0a15c7a9d6531d3947176f2e2e7566ba0395edb33b62fb537df0d762461cf1efae7954590c4f7117dae2b9d2421177594a58d30714f5d5b21bf36a85af6c5875d28898a96ae4fb57a8a9ae1989167aa5341ab87ec431ec246f5f4f6a9c4ccb27371ee536dcb96a6d7d8a9dae64ba24d9f638253b217c3dad1b5f6bee7df64cd97fc7c87918a90a5355c31a1db0fe9d19a5a9d263ac560b626b2b8dedd0fd52e8fa0d72aa7a081f76ee8bf9bfcf00962158cecfd694cb79b414d6c40425ef30887e2798431f897314bbda451760b2cac03eeb7780f79d3b5f3604927d6731192ef0b5ed5dbc485e1bc865ad5802bec94a074b90794b054160411679e56f4ce4d8a5e323b26e8801dfabc0f4130118bd9eff2934e7f97a8cca5aa2350d49f486808c4a463aeebebb06c25b98f6a122ea72d8898820ebf8f02d29efdceae26766c6ca0b8f896b42f5a5e57bd0674d4246466746099f1d847e5290c05e5b70ea61022a9cb98b0ca9aa2c649d227de57e43d150bfe92bfc08f394c6c4cce7daa47d8ea4c99b6693b313d588874b9bee647bfe9eda32fd4f55c9f6abbd0a0c982809ac63befe741519c08394f4d3685f6ac0d666951fdadf6c035a647d311272a54b676d2f4600f40ae29f61c28a77a39e9a14a788187e4574ac85caad5728b1ec9be636dd49637a3b5b36da4798c4b133f57af6f8921e785e5362ede13a659daea34de8eb63e238781c1ecbbc71fb5c11394faeb3024a6c35cb1292f0c11c4d379b69c1b9843d5a99dc638d8717edc8870cc02f0903a91b57bde1587eec8f057d98aaf82d7e7a7764dbf8584d21b72187e1e565c2c7574547e19eae5ce3ee3ed7b0c53a1f602b7bd59a78788efdf62d3637d30ec78e521376f157a6966f0d32517432fc3122e1a4625c192e510ccd3f561cb1e9ff902521f6ae9666daf4c9b57404c5f2e90c783a7d658f8fffb8039503f7f571cbf7fc81495469a579b83e4c3634c72fe4b50ab94ad3dc9e33f3f535ecfcdb7149d8ca99783dc29a87a417b6d6e80fd53bd8671e55446c943814aff2801828aac7a02847a6f3c715b9335f65e0f6e71fc1109f1ddea2010d2a83272899184c4e1dac36c179572eb5873067996140f0de72a0ff115817dbda8922f56ee2a01e69cb5b1196ea935e451c6964007198cba6c844cfb7ecbff510469c1b4795cea0ef44ade635c6fde30d4776c321d9bc289a9209f94f6dd9e60b81b875a3e3d33e391d2646ff75592ffc233e4c27c73516537d08390a53ed04ec38c1e6dfc0dc168a1f40db9bd124ed879986e94bbf0bc4966ac79b5a1a7da1484241873c2ee95b0ad0ff7e1a20b5e0036fdd4fd39919dc261621bbf0c1dd8cae6c4096754e395fea01bb2224f1695775174b112c5258dc4c082ec9fe3867518fef3b664ab8afee58935a7a10c817be670f4690517ae8119cf11fa19516cf5cbfb1664b3dfa2f3a21f4b716ccd641d4aa5ea02759d7e2e631190c4ef4cc24cc114542da8c11a8c1709d0a8c99479af870e972257fb533e8c58a6b132108ba34417f5fb0ed1d81ad0b8adfb15c50a700a68c079db321c1df48ccdb1b271b5906a20422132ef4d827db489e959513bb1b45c9ee392a1c40fc63dbd87797b6d98a84ea90cc3e624134d7fc3323926f821a8aaa1a1c82aa4684b469cdb4b6a951fc1eab3590fde4b760e109d178d51424bcd9fb7d02211424bdf23f01456cdae36b9ac63c475032c968839f01db088731d974e4d24c78132f96fe8162ccfa5befbc3c3c971cefa1e388ba27e49656de591a1945f6ce3ebb0118fd8dd9d2fc4394f86b5e07bec1faaa507590b3ea0a70be48c37048067d58e02a53d3df8c8f4e0b9e92debe0690a80a9dbbcb7485dec2cd6934840d13107302796f336aaff9197dfe5183f603a0830a5c20c02121fade855ab41f29c50fae7e47a0c52b7e7784965ffc8f616b823dfd1b28335bd67f25080832f137c3ee0fe7749b878d8e78cb94c860909040e8a42c9ec53d3b79db9293099fbe2083e6bffc7917f878b8a7b76e2b9e58e3e876995329f2ec20a04aba717112a214e31d2a36d5e13c52458d717241dba4dc17458a153027c199c9a89182a5e8c53845598ab5aad2a16796610fae140fbe00c33a4df373c51b53b5739d4f26a4ee626f3d4b3ff981eeea7b4d69ab23ea10f1cbe068ffb20bf757cfa5601657b97ceae9e1ac8072a2e13ac7d423ed3f742359e87bedd0b3cba33a79daef845d80935bf1c6cc7af49534beb9bad2f95b410841a13dbb75dc004485d64e349698f6c2b652e534cc906387a67e8739090dcfad5c2eb7a875cd334e39e57fab8b5a4f2ee251027c720bad03fbef89ec6104a05977b2c8d5a2183f3854a5fc679f569da413dc88f7a638347c928672c3b5a7838f33cfdab97efde82dfe18502cf0bedf2434f6cd1f3bc5b03877b152d6944c17576ed520511f122dda1eeb6dda746ab3b074f52a13835170c181c76a4769b7aaca08d45742b3feca092c1f7058829fd12c28e49af95664cb4a886f19d28f7a438230918ee7a1f3de84692546db4717e6007e2c97180d6aff1b477b0e1120854b34e6868f4d4cb32175346e5b17d4f76634befa7d69b3dcf9945d426a15a533081f483beceb55723d23b4034e1d8d1d0ef8928c0ecf76416b3bc68878f7996a10b0fef5160842dc455e86bc5197c9982116af28a63e1aa9a054b66abc9f7a514063f46ef8c911f6818d0a8860067d0b8c8df5d77cfe97311ccf0c9f7a11bc5d7f6c83b64cd1691ea7cc28a459364bd5c71ee22d5d7f08831ca3a46b2c2bdf70e8873e935dab93cadb6be588d7e3918b7f41af88085cdef51a6ca310d2897626d2724b6b6f1e50e92aa3dc4f406df14222f69488f2122b1a1f1a733a780227056b7fd48d3dca8153623d9e0df7f32c2e78ec4217f1104c7a466183e928b73023700ab5c874720001218c54a8e677a14c1aafd9bbef32bf060ca41f55299acc627515163122cfd4a89e3c35d5f1c89321fa817af44f4127ca6c5879649372f15c48f41e1950718180506d59f87629afd29e07e68e6d1834e47f5307bc3bda0c20fc97a074f9c2741c0ac5b8f3fc1d5d0f59353ff9d29f36323a46ea4e26819021d033bd1040a9b941890eee8793ac7a8740bc9593d87fb939757650dcbadec736c373c21d55a9c72300315d5627a6e35fc2f9bbdf9622b855ef51b3d1b50e30a43d55cbd8fcf42c737ce39cce8562d3c2368f25da132762c57efc7b34482f45d9cb15e6356d2ed5d0f9521e3dee3d750513719534b14a8380435dfdee3e8761a5e7885e602d1af3400dcaeb06f7a4065d017eb02e0ad2157084279907a4da511e6746fc10309904b9d5767378225ddb947a9d50abf7df22bc9d7a923db0ad56203e7c6db721e1c7b219d0d0fca341fc1d736cf99724a856a6f637f71922f525f66b45277926b19bae137bece624df7ab4eee08f755c7db3375ef378fad483442fde1e2ee874af9396d3d2c1f47c79909397486f8f283eeffb142f0012b1b0dd5f7a8d74fad8ee66fc72109e0fcfc83ce9851c8556908b0ea3073715aa63706dc07a2c0b0ca5683b30f038ac1bdb998ca6710222c6333e01a7c79f3de39ba4d2d6791b131de7a92c90270a238a579c49f9f1bd36fda11164ae9b121b51fecb0f645b26926d66e39201df138743878a0937d37d2316f5df1b62fad451d7d1a50f5a069730c987af43b98a7ab8741bb572dc0cd716c50e5ac9f4f21ec7e5f2cbce12941545a7eee2c5518a096dc6a40fbffc3bdfe4fcd7019908e85ba9234aad3191852d42bbcd7a1ed8437cc8fda4e3bec464d2070753b5d28cf755043732c6c6abb4b1d3573ba7d7b39643c8e01c5744c1c22411cff541903b1148a97c599e7c2a2cf13cfa3dcb2e85636e316302fbddf15c99928e18e2985c136e13c2318d645aa5589cf13d7eb06db30a52eca1618d205676144c1abec379d937a8f441eb5be7972781b35e66d499632615e9ab0c57f535c2f7932d8c971a5ebbfa2d71e3fff8732621ade78a88d1047a4b6dec35cbcd0b806ea0ab4df94fe240b9da560ab7fd39b8bf066f8a10606040aa3a3052a577c3c2ee7b775109204cac57747dfbfa4e02f4452c8d761271fbd8348fc6123f9f4d7c9df71e4f5dbeb6a79681c2ee1de043f92a4bffaac97f0fb6193e660f4ca7ec28aa74dacddd547376474db73fb9f1940c33d44d00073ed7a2965179ffa32a2b57817365446800553792668fe42e9541e8319018224276de84e10826ca07d3c43bcbc715d3ec4b93a2bd6280983f4154704922d6fc709a003f0122f0162ae78a1f9df871e02df52a0415b10f1ee20ae022fc364aefcf5e64c2cd333ef2768ded5a7e2192a18ec33948bcebb9a61896cdca247f3184ae859867238d1e7b29bebe0e1b21772fd937dbab8421e515ee7bff9882939df816a5ac7bdb1da636657d04bee1a36b13c6451be791fe677aa7029f0ecd9b38030ef9a44a7cb74389853519f1cf26c4a7ba611fcff644d2f7d41cfab30a3b27935f585056607cb4f5fd06f3de267ad1eb9c608de89fe65933f064b8e4551bbf55fe2d3eab6d8a04458c4667e144ab21c82d9d2204a5055d73eca913ba5a0fc6c35171e06d72842df78b7bae1a8b7378432dc6242b82cbd5dfcd8cf616b43a89f0a317bc71640d812db9c584955edde2299b519b724d6d528fa134253383ed2fe05921f13b9106ab629fbe9e8fe85f5057f3433c1923bb0bd0ada0054dc8c39c03a37aa340833642fea9576dede124099535b3aefef890f46f215cf6877da3dc12c447c83ce123ef433e37308e3dfda06d8b7f8d014c6a98fd99baaa8c531c576d4a2aef62ee3f7d2d08d0d18305ff07dbb8e66c07db733ce1dd74e9f464c8cd9782219e5eeec3deca7bee3501f72778b17fe6a78b75ceb42a210ef39c61c49a775c31e041df0a09cfefc36e3e9cdf13dbfab00b5dce3c04d886a9a3986cbc1a8ee5ff3bffaeb900bef419497a7e15aa6ebffe2bf3ccd3561ef514d99e7e9e71919135f4c7ca9fc1bef47faf5b16702820fad77e1c1a4562b438e23683c11523f62806b93a33e2fbce793a3fae34633e31620087608117dc4af355b7481087577801f27e78e207d49ea01bc92b8eacdb24a98b6357253ef7d074a0f60448f6a7c201e6834b40255eec0394c98777924f675a8f8372eedfaeb29956c037acdae0ac5e8ddc73774b5787a2a138e19ffe62d55fc05ce6c1361cbbb73a0de0e8a084c26d9fb341d89265aa6559724222f99d6f1ab890bd0ee42323bef758c9e2242ea140261824a2033da7ee0f2f4ad721f9137810eac2b8a8648a1ba4ca7781f8309e31892717435e2c2ba60bb3a9c32999f54332afab557fa569e3a24935451fc2a5d7a56cb15890609aa2381ce17c68bb286781051137ed3057af7077ee1965d317d41267c5328f3701c813e9486e33e21e2a65390386fe021669c20e93d805d1bc1b5813c1e95d263a7da080222a164827bc6cd7d2a0f9316863ca5c21105cfb087b490f84cbe419c9f820261b624e44d3f42b9412633ffe34fd0087f0d7e7c5b8734787423d4376a494f96dee2d2c785208b857513b5c5668387fdbfb298c13f4c56c57a17dd78e646f02e3ac75d461dd385f6caa3f5c83238744dd77e5108683b44a6219ee8a29078131f2331ce3394b2566685d032a224739c1f25205531c0275d7c277fb97f00b86883a74d81953739739dba02bb5119aa9938c8137da96ad35e2464b44394afb648dd0876460c5bac2ba8f61d9c993d04b6ba83a7dba2bb63f43b4d4a52a9b5bcb148342829a70fec83bb7367ac16e0184e2b422772c2248fc91bfa0d836e0578830f20c5c124c5c1744d3edf49c2add4bdea3afbe5a6c0d46dfbe6a9ba71b7af351987c99b08b3d018252f40786012c042b5c06717dc89670c651194c6aa4414e9beb8f1b31c9a9c646f3b63c65d6745469a83fdd58a0b6480cea71487a0873def8d831ae02d22bd05648a6b84a50a92fa3605de545dad46d25d698b7b0c57a74e75bddf1aab85e0d7392565d98401b327ba361d0c3175630cfaa4173bb9f16976abb3c97f4be73640683ee1e4036572b78234b4b5b2f8de95936bb57aa96aebe51546d33e154f2cfa946c466686d58b428c577c622991787a8a6f21f4d535234354c4f9adbb37245e4a6bdb645e47f271328a207fa3633f8740d89fd7a1e6972fc15d59f80368b32eb8cd374bbf195a5e3cc620a826f8134de2c4c220e8dfc52eda84f0fee5db631e1d80ba166c8299624641bd58bb282fb432ef0445e163aa3908771eb1c68b64c625430b7cc906e437d37a21911c40b5f481506ed572e70e847841760812b99c5a21cc5c130fb4edc7c16b88d090d7329bdd78b55b412aa882a3a210c2d1e38dce76cf2a57b08e246f56978f7da1fd577054efd955c26cbdbd60c32fe16ee9dbdcc3953e093c2392ee098cb404947c97fec614f7ca6cc20670c3f79820ae368a2826d8f8ff53b91fc43d600af78679523cafdbfe09ecbb8b3e8536f40f4ca069153493095091f9e0138820a1c39a7fa9b2305723c105c30f81402c50597f0efea470cd33eda408c0b536d02b10638e71def4c5fd20389f9109a7a46e4d7731a946c930fbdd12dab705e896995010a37a82770af57d84366035ca1a5dd36c25031188944e0b4a84f1fc9ac5b57355d936a67f3da08539faa361687148f94fad78572ac902c63a4ff2e041d2d1ebe77ec2d24b5045439b26c8138ffc94ba158a0792fd8bb70024defce933494f8dd2cbe094faeb901d35be7033f88752026f3985a1580428355d6b5a35ac43e97a9aa424c45f8970df265abc8be929955f30f5db21aa82419e8443b213bb8dda6603d25b15881fe7aca3f0f4812e2112a3d207e52eaf7841caba3212f914f49bc5d3585c0dea5d76ff95c5995ed9cd3b6fa5e849941beebbd6bc40ee779e5fa12d9d92b9552a02a079c0b23078eebb3fc2f9bbafb3d5d16fac4432fc4c29520497ea2c2b9129b5af27910cb86b6d6b8b23f5126da2911e9c11d48e8801e3d0fc7d563e72f28aba528a59a109074df525cc439660fe181d284da839591287e0bc252ac21a83b81f50bec9f862e88232ad1c53d2214e2185cec35ac00624673d392c83599921d0defa34cfa2f6e8287a802869fce9d5fbda2eca579a4302e50c8b7aa5c88425b64057e45f144d8351519f4d5f8defb098f7e8de97f3c15e5ee7f9b4121deb2cca930560d52be44b2c4ce9d60ee65fcd500e9bd55ab95fbbea51157ea37a2c9621809d29d30c25934c95fe3003956b3f312f56ebdbe2ca82c3174a0b774bf11d168fc3ed536c0c875765725edf8bb05fe8dbdcef53d9322c089b9f7133d25187ef3b62252f2a3ac5e49276430c3da197c797c4c48b52fc8d6fc97f8319786b8e6ca4e12752daa651bb0566fa992763a67f7862b5514c3a393265bc73ba9a2adca94cd900a8f571b8e2beea9829704ff512a1da06585b56713f3259e7b23369380860cb3e8a18069d8c5dc8c52d644b68ccf42ba18cf6afd4d1a06c96d67979a084fba810898837f5a6f06987daa216dee6b0d8f5462887520b109856f9b5ad1e255604640bac9c28d21f2d54a9fd9b1baf7f4af16eca57c930747d4a1874df6043696d8ce1269c75a7e63a79f32f9ccb83e0d760da0209a7ef1cd684d0a86344e15deb160e4c1c403bc27f187e2d555cee833c336f342e8c2d073fd7ed1cc24476f1b4a348647b6cc660983f6a9965e8c36d03d97e0806e4eb678ee07c86f9bc919fe0f945ac72c00c49680a65f3e146f8ec1c54c59f6e1032dd0e5ceb1a620bf94658c6c355cba2efa92cee3b7861a0aaf37a4ec6b1c1054fe60def824886fab9f13fbc520d443aab082bc20e2bdd26f998cfc0de3867ef7214783402d0c4dcf58be84dd48ae1ca1d2f0f5a29df0d3617214b899d30a7b3e3dc892ae99cbab92bd36a4ccab131ad74933e2c57c59dd514de9800a6a68d305332961a732ac8ec2b33cbceb6b72db35baba9c9cc442860f576c43e8e6f6148107b40dc367d79510e1c18b7e47becddaae3a9699c297402a29cde5727abed3004ada7e6fc5e920a19b64b5f2ee143b50c817fb8b0f58ee0ee18e255c90322725f233a5becb28ecae0f775bb3d712f544083d40cffd5db3bf18d86fc5161a370c085fa55b207ce70e2fb1ecb2db989090b5a644634ffc89ebd90a74fccac32c59f71c4e2b63bb6d670025725af06885d645edf6d9009638fd334188f8edc2d01b3cf6e7456e4a469b54adb1dda2b1efe29eecb2fb12ec27175f0c1698df7ee5262a7a5ef4e55dcf5f4421c939d6848aff52c50a53dec8b70ffc3d96f3ba2b00f468df4415cb187a377704f3b7a59666680bfa5843d7180d39c47136f47e5be73ad50c7d8c63a10018b4f4fb13f7f878f1960fc1cf99da1718f0ebf6e6632817f4b74181ff2181af9ae705978ad36896f7cddfd11d5560ac2431fc6e402461699c6420b6a5fcc99c606788dcf540e63fa16001384b60608a52898de5b712d6c2e5b5e9843224e77213350820a1b0095b65cb0cd0888bb926b3b876a004ff500bf5275d3992e0db398c48a0515877a7328c1bf6780f8ccb4c1a512435c453e11e1115343b56662936b21f5996b7800e3e1a2c7975c160a9f5d5328ddc7710620715e2e2ca9c47e641a8e3fddbbe236ee4ab1e3794de65fea9c78297babffb429fcf020029a6b8e37ffdb4023263b829f758a8b21ee4dc6ec8f92d3698d20168fe9d9ee1abae00ea48731f057f706a0ef70cf8ed1287911bee315dc1b9b05ba98df21b75cd3d9c1a78593ee0117a7d8af1acfc69e634e374d4cf95aea85fef9e1c95d43e42f225ca1cafe5f2c258a8740c96229fd3c09e86229370f87c36db1947b5b1665c652bc040d79b0a7f7043ed226252b05930675db98993840bd23b82f1766f17511777935bb4c589cb645e6fd7a893ddcf13b05621483d42c0aa1b1ee33e55b2e2fbd4a895f35d78546cb167828cfeba95f9271c22e5119b0f8cfd1b98db8ee657d8cf38f18f539d69732645e2969d6aeff88708ed0060dadbcaf44fc86a41f837d7d34b1585227331227b5e08c02cb18747fd85bfb6e2185d079d32d7fe486f57edff31d017037046a3e4ab6797d0a32a7af9b9415be4c76a9af1fb2f69842da9b36c83f0f1e82ac0c60b383d9b5020d4674371e9f1df40fad7d745302a5a5b13d4032f615801e9896f93d139c1130e35a06c7df4cde2a87f3739311d5d139a4f6cefd8140b07084b14fc75d0717178aca384ee5f7ca2991f37e66461a064cb001a48969322df2d9d960502e6c30a7f49e6e04cd6e9e124d1677519a6e6a943182798bbe9b61da13997719ceee5982d16faba710f3af4f18890d7eedb33798f63039e442d62ef2f8a5338074cc65f81836da71f4147b082f8a02eada3e6e9664db24f740c70cfc0462fa5055d5537ffd1946dd27a3f7d8bd6ef182d3b1a0f0c33836ece5c37d0ed5c8310b1dd621fd6515985e88ccb406e306898b943dd8b3c0f68d6554ac91b9c55edd0388d168c64fb429f03c37e0f7ed04129ca57c6414d0760eff383c79b5df98aab3a7e1d81043d1ce4cd3217f1c740022d645f563771a5a6abfeb2fdd8a2144b04dff4694c069d0d0fe4bd09392a8130be125ac05349aa1c636a3fe0da8a5376dcebdb6c4486375e57da87c82496629348473e9dccf65bd419adb336243bb13188fd4a9293fbe2ae0692902c57ebbf9127f1b5fa5bbe3c99a1c081ecf32f76339d33aa7230985c1fcaccf43ed634bfe0bdfa0fec99a1fed06fbd8e7533da6e9fbceab530900a5d70e1eb2bac5092f5836a05c19dac4119a9f947e153b1073776384a9a9fa6ce62ba785aa605ba7eb0adbcac05a9f4d03cc4253a63629de5c6656a716facc23691a38ff2cec021f78190e5553d01b450bebfabae6a05c60a2cb9c123267d4207a25d75c8df2063239d1531a6e86ee5dc994e8bca39456876d3162b0e4c766aa5fc6e9fc8c612c3d6b78b2c6491d40a8a72da699fdf6f70e1b31650be535c87e90aa67e6c81bd7e4e15a0dbb4062c541e8a348e690ac5547f9be4b0350297de9dcfa1144c575fdcd1114ef3dbc74254cd0c882f021a212c5828edc86a753b70a16641360400b1d2fd1149639638da2b4eb4c4997000b4a994e041475c451eb6cb92774df4e6d86af21a59ed58f11d60ae301b48d1c217ed1974cd31bbd35a68b107a624511701b3e95076f1ce0fb98ce506186427460c1d62e7a1ef0768d35a548e0962cfa0a918f0b547cb6942b62cee20be51a39011eb5b4fb8156af06007e6f79039455996853dfb7056ec000628691388c2ef6b42e012cfc3e9de2b6209df83ccba3cc57aad0375d8db270ea8f737de15cc6837f86b9dfee3133125ad065e91fe9bf03350c843fca998c74d5e821a7eb480015fe8a4f3132a44f4cd3cffa18ceb722d1a065cd6a46ab1110a6a836ec4cff775af8ada599a6d03dc78bebfb7215ce6779661a3b4e4be44cfe8343c20d8ad3dfceeee5340d2324c7848490ef53b10450912bea8f883856d85b7eb7473c38e04c0fc3cc29b476ed35c2894915e406f1e715540d84ebce608ce2566205b1c818d67af6ccb2028a77d8806049ec6f2b99eca6a24461e85797ca7e76e058601bc8b798fa61d766e33538a524178aec4a860f4da9281c727d1d92633021966331c2e3e01e8214147ca08fc3e9c30894bc75a995b6ca865cb841a5ef55df7742c21ea3cd86dd7d5ffc3b2ec9a57877469b37eda2496ef8c36640770257ef8b6f0e31272f3487a025c8902be89b828115ed385888d5bbd75d5582b4ca5b42cb479ab19e06f2b14778cab535dd52dd853976c4d14ed96cd5e415bf39371fd99476593f26bb344a6218570bc7e63e00d757d2d79b45c22885831a9da1709f42a5cdd373b83d2aa7cedafac0f8aecf252826d75783463c35910c92e6ceec62426ee7303c1cd65fec5c88ee05ff169d56a99433f9ca4146db03c8425ad4f571a7d4c882b86e888b6fffd169fd0ceb1a8b6933dbbc0d2f349e8fd86b09f78362ca9397a2e8a7c4fc23eea1944f970d67d1f4d806b655fca997aa216d0b342f7b64ab0f9bf013404d252cc2636cabb49a022ef2b3f23461d51225db8381ef86bbe1aa4fa0b8d218a59121c0067432b2376f463b9c45e9cdd27b9d8c58d97cc35b1dcae659049a3cae78f8b752caf18dc4457fb560007759e2652a7cd2c8cd0d935c289b3df3f7cee1b2b667e6a7f357db4ee5de08b2e7f84f7043819ffc0f23d58dccc8620fb8c3e9f18eb53502ef4e18a9bce8b50224959bc2c12343ac01d29c55b13efabcbfd4c9f82b007c1ff9118ec7424f22ed99571d12915c6e185a9f4b6a65529162f993b8076bc9af6750bec3110d8e0d1c00d8a0866487683a5357ce001e244b7be2d6b27bdd273a318b3645b650efe4d440d1e2f8342d4fd3c36d6db96d1e8f8733dceea824fd52cccca2be9f8b91ef03e4898394bfbd7cce882f887c23fd76903673584ff7a2e408e76c1c911e773a26669e842b0b0b89007ebd8509b6379378c883758f941d5b0f5b371aa96161d4285f4c8d39668c274a6c122febec44dfa868e7a896b299a45e7dc238b47a8eb67de8a8f6a1d8b0b64b3ba85c66b1523d3e939960b77742b495abf88254b4b9ec9b4ecf63f00dff419f5c73f64f377d9a856867f1d57f875c65b81c0691c105c3da7e9b28be6f3d280d42cc9705d7d92121c205f6973e1ac2179feba5742ff15284f4d8d99ee8fc27887102f5c421be1f10da7708a1f4732bc4d18410a6935f24e07ff4f736fc24bcd5e5596cee1b5a615edbdcc300561f63f3b7f5c6fa9cb9f13b9804e5f9ab13023013708eacdad0c61ea444f5663d17393801a6427f7b301b399dfd3d7c69d27c7d2662c71c3042aa84a7473fa772f8c82da04093ba393fdd28c2f7748b7d6da9e819ba4b9f06af0a9e33356b38b53530d5c583ccfcbcb1e8e6efd8e81db7b9109919bf825e7ee0b271804028a0cc8160ba24ad79dd745430dc88ee362fa0e78ba42ac1e426f5e00a21575906dc76160891c529fa1a6478527ad78f452cf89a144d780244bd6db38433f7a8869bf949be343808cfad91cde1799304e92317b95562c23c71a09cdd74c6978f355ff3a6cc6518a4ee3e87336543c982c1343f9d7841156e63fe68c3b07ad8806fc7a48d6e1ab948defdc890e768c0392c95c6853b6bf1941dbc3318501ff318778e866d12e76d5f11433c5e24e33511ee08f0d78eb14335b95e191fea819bb81a6b727714f7fea2aaf9cf0dd3bd6479b903e11d9e18c55bbc37c783b4ac12178356da3499ca41cc5fd94568aaab683fe52e4fbffd2c0f912ad7fa0c88f33e5ce8c4e0053f563b5a8cd4b075ee46582f8e11f6f68da2592cd9f6d9abd4202a10c27a282a1e1beaeb31f171611b7156a56755a9178e4608daa2975db92d1f5c3b9c62d320bfb9d02ac46861989610d9c0e24f3962ebfecf98f7967eed931b7f72c2674143ee74e354a43b2ed344e82d6ec3e581e088e17bfdbf51164e60cd96549c35937d6cc253a9da3a94e1e428a0f301a4ea11d22e06719d3891c361d0c2e909d322cb5e769ba47e5048bfd6eb810bfff99308ae0688ec9a4cae5b438820fd01dbf2c73439f68cf67bab2fcf9f23d30ad934fca1f18a30142e052472bcabf2dae2dbba447da34cca39f08966086519bf7be48280044e5f2a7548f52b57fab94290fda95a03f10f2126833676b4e8b9d26a9814414ded7b67af1d7ca4c66d4f9b7d4ef747fe7c5aa496fba884377df301aca65a0947b83eb92aad062bcc1348f7698885961950661deb03d8e94ae76407b437fac3f4aa99e4c09658511369fba674d44f7a1fc7b9e3981064316cc4a0fecf42e55892a2137dc2e0f51bedfb2e02b8fbedf145040dbcad80ce817d1570c39ec2287af22fda9bc630e642a128da188e21d62d7a61ca66f6d22c472f71272714985b23d40b6de79add8e9066320a37159cffc1614cb93c73384b3d0d466d0a95bc1965307beaf2701e52161e358b9b2df6c8f03a79f4ca0f7e1ca77d136ffe8db764441ed52f582bc498be5fb8539373f2c39183d6e8952f3048c373b79269153f7c1c6707f5d244d4aabedf05fb6ce6051e0a1df56272581f1331a073e77c7ff753e61f158496eafa5c531c910e690edb8d996d05d4133d6e8018cf14d37943b18beb5847bcd0e2fe81edf8cd63b1289da2a8e064dfd2a3537fc0f492356792b64d13fa8c24be46d05ed2a692fbb55831d00349b6e45d45647dc6bd9448e33ac8c0cfa7db707807c48c94456ed4ee04b9ecba41502530e730da9943e7bd6fe9305bd6654773a3947af04a1017804fb4a57110006f0ca949b6208495728d4013e39c232d581c87dcf657d86401e7f7a945388ff471ae2bbc123835d32879b17fadafcad65ae5016f01e57ba6875ce06ad9a118432f3d5baf9ef548b5b9831f72a17d541cbe9d7537e2de145f9fec2cd68041b75c1aa286468a15d69be1a5754fe2217b6e0f3c323b6ef5cb9f6cf28859b7d6a74aa79fb402282da55ce056e68c81ed1b109fbdee0d977cbc428a40028d02d13fde90748d9c88af3446cee78c85fffbdbe5d1a6ecffd8e0f626cac9d663c935e2643fb72856766c1ca39a661f4f924b6c54d985e643882782ec22239d074724c808ba0754a8879f8f662786f06274e9a5c0054763a06896b38c44c07d6b630357185e6382a1a9fcc6c3cdcd3452d707058c4cd5ecd30404c239df53612d8008283f1a5b50d002cdfc55dc23de72be9d5283c995834db4d5ef28de92b7f2657b899c64a48f908042580e17b60889ed66d2e0d37baf55cdf7aec7040ab1966e9201912067fa20989a796c4bcf88f82586ef54842e2043ccee8ddf2cb910fabbf80260deed810a0d423307393b5162fc224a2351741ac9a0d3a41626429e266dd205004492576c6284748cb7208ac89f04a8a915eee15bd22a3aa144b78c1260c39c866f9b43837e33a299cd8dd172d596525267c04f687512ab5d2ea8f329614aa4e2e84a51da4e336bd6e0b13cdbbde5209cb3ae6e196b253483a40bc9e36b96fabc7ca9c8a354760a1839c3f3bf8d3391c0132b3d4cfceb22d408d0457521469619dce8ba8481eabf66af30e09821328127f5415f13d42435b71735a89c45830db867bea084a4e3a43ae880347b4e8b9c5c212b6102ed5e229ca3ecf6292ab685f672525902aa7a1060a503f53f8189672b0a9c2880c3d0ab21925acd86d222d32bf310441e328d22f98327468965b175d8bc88594383eb3196153cf65f9147d229f4f28d6480d8c9e4a66a60b33848228582093ba41723eec30df9adb1275d903e6ad0b7a0e9bd11eab553c37bd124c72245060667b8bff93e382956a86881282e67363104a4310de068463ff9c039c1bfc36f583c03885319ef500e71cbeff3e67ba93cbab6d885349d9c640dadd3f7fa206260b60405d88ea9157cde4f1e77a4dc7b4ea9cb8848c48d22eff7088515de81bb277086a6cbdcda2aa378f5c44181381d928f7fee2a97c01c86abb61176f5bcc64fcdec1fe188efcd48b0a9a7d0a980a210d0f23d6894b02185a5156aed54a48e17febb972a02a273e689a5c638acf9e54f40636b9cbec3bf4516d0490a4f58b4c8fd50896a642338aa0e711eaa43ccc6d34dc455c358b0644b38f161d575bcb8d4f1bf575d0b210690645c785a2f5dfa1c7d7764fb0cb2edf9408f61f50174e3186c5de5a8bd04be8685bdd7262212a61fe77d736ece93bbe681ad14e4399cf8bd2eeb2c02da3ad7e677fdbc6a3fbd448c5237daf9009b463657edecef89b0437040736a4928f12e376aadda8981b11778e19580b3a441bbad64df12b6e843c04869d40268c82d0e7078f5880777f75522f9b5585cc644ca4467235c1f97a07dfc2bdd74468f8a681a09c4ae64f1f02f512a56fd2a89fda1957836ec90360980f0c41f35aa9ca7a96129681dcb85ae7fb7526823dcd5624d6477565a9428a88fc64bbe95ce68218d46e574afaccaa52a424ff613477b509cc49af5d5fee2a80f98c7af2c9d7a7406329a3ecdd8ebc608fc6deb20f79f1881ab034675ec8c48bbc727eb47498fde071258ee0610ecce5f7fee945c85024afe8057466b676d968804ab41b6aeef7127244a51d370f2eb7e7f94a6ea79483c528e7c98c4489439327dcb2836fe4ac391eba957279c0e22910bde6c312595d79dfe8df70356758a180f12d9caa674729ea7be25bbbc37e8705c94b1a2cf1d420df8883063e3c944bc0699f6957bcc12a9a6e4177f799eec676d9fe3f7237206b770661b71381939b5429e892fe3ea0743386fa5f952e1d655b2a52d1298f5220c985605a6f9a7b269089dd7fc5ff5db71937a216e52246102400a2df0272a614fa6a8522fff578f77e843e2d5af0ef36b36e89e0d8410c6316322fe725b4b142c341ae836fc4fe9c21c66145a171c510184d903a3f2e95955f95782d84bf401598372f7276ae3036ce4a6a7a509768b921607d33b100ff321ad8e258ea22edae124e6731e95e90fd6a825fb5d80b2072a91c229811bdee9c5c2712ed0301d0b1b60c41969e0261310e6b79d2b31798fa1ec5ab1cc6632129fde5870252a4ee0f6dabcfff5d591033104f9bf17ca367a66b4d9d8e3f6167983cfe84f8583d9875152ec3db7b3c8b61512cda8d2eb367ce00f242fdcbdc3d844016cbf411cdd7eb8a7a850bf53b68e8700f28f95f82b45dd17eaf2086de12ae62617ff3453859f6e04c74264eb1d748c03b6b58d5eb628bde1c51e3c2fb69aba2ca00ce51704ec92c3e7c4865e9743cf82a792cf952fdbabb130734695236d2f5f389ab29fd419f66f3ffd032a2fbbdcf6327eb8d49510b6a3d15a17ba40a67b68c05ff76d6c0b70a087fa6a1578a26ff77ceafd1314d22cecfed6cb656af58f4c9f60bcb90d1f2c28660705d825db07f9514556cd33c59b9d985857190ac0449697b7e4034a0e5d87f9841c01557383aefb2ede795fe54b0c8cb876d9c34df7ff68f02b61cdc3841a0b23ab1bd249698e5537d9718a573ebd228e9ba3a9123fcfaf9da8b5f1bd0d3d2e41717f677d3267ff6742b97e90c7911227f62d384ff8259382297981c2db6a4765287c6ea4a3f77e38bac174e3289806ae1932cee39404edf5b4f32ff059b14703a8dd12acac1f1227715fbe184f5fb6975f74029f8b5d9d25e3c6e9451bc1aa5614c3985fe56789903aa7447bbf80bf79319a7f03e6edc608e3c944d76639ea44750ac8ff450d7d893d14ff151939cd8a6b9ae0cf6ae840d30086310c33340c97684c199686244b4d4957ae6bed562b3d2e3f9eab04b0dc3d909df1a81d11c2ee5810166c47ec47a868a636c8d30f22c3c54765fcfb0a13b5c7b357c206283c2a04fa60a9dd604d3b2029420d294135125da6f029cbacf5103ebb5f8f1baf6d3469d20b0ef0216c130ae02e573d43c428d41b9d97973be17d287d8346f33476a9826237f3f546d774e08d3c11709b2658cd9af2ba083fe1e81437fdcf34d279731bf976106dbba5dd67f4302a91ac7d657f794149554109eb14c8c5ae65e4811770db747c0ccf929d7f2d6e51b788ed7afd3fd86f1a0abbf732c8c53b01073517a487cd3e203a8aaea14898064b3938d55d9b22def77e6de88aa8333b97d98a2dd6034b065c1770f681fcb67dd7cb7dce78ca8806a6c184a6e7522f32fa90bd31fedfe272eed97599f1582b20e8eb6a31dfba1a107c1d39b9bcc2396f14da0bb8249856b694519cbcdbe132404c5af521134b3f59f6ff380bb9a309911424ac712077a216dd680f53cdc390155e8f8cfe5df59012de4a082ccb0af50a4fedfe355f2fec0ae1da776b4ddc27278457b0f21ea2ee07c014ec9dd2c19f3e13de1ad84f1d0812f6f5e9e7dcdf32f2107fc2f7e2b75f7a6392029b7101c350ed04e030c4fd64641db8a5773b1bacdb77d68b2f07241423f27d946f37be4953295d1bee317cbb42f64ccc75a1208c4ae0226e76a76c42b0d4d18d5f00d71e72175fef56d717d716661875f097152e470f8903a546fe408fe2c4a655e457e65d6b647d5a1c03fa335f1c24937dde249edae90a2d33c754dea24fdfe853201749e39844ed2b835f87232357268e0a169401a24cb317c932253714cd771b2b4b2833022c42c0030867b2f07db6cbc0690c900dc1709fe6b7d4b4326bcceaa1335b91f0e2c36d91cf06fc37d0799f62445e12b8198fd273fbff73825e2d76494e63a152a4f74d1afdbd57e63b0d5df3cdf7e5195deb27ce035b6f897bcdb9ab941b151e29f9194f4493266343b6e3c5af1bb63a367f4d4f24769af60dbdb89a70334e683c3a0a5dc611ffa214f82da3b8fd1f03c370839c614177490f73d09c3f05141428fdfb7ebcca04fb5048e6abe0b4f82b7c32365094d57fe4800f5931309e4ab9e880a8b5e38df4d01616bad3fa49a76ad5f0db451b2a6bd1c499796d49a69dde07b110ca5e8e2a8e99a5d48e756c4ed37a285d7a565d934b618e9e21c3e4163c1dd102a7af298604b56bbc6f4de8a20da7ef0ef428a089e8d3f4be97de036a8fd8d92751a21bf3cd60a998139116283f2db86e39093d69b83229d56bac46dceefc8c65b5b49d30cdfeb4cf6615e7289755df9631fd4e6af5adba812496b016d060c53d5e8a3d5df31e13241321274937677bee0ba573fb487e0f994e5878a3ae40d54e47051ce736330e601a57a15a2b89b14f2899cef225ba7cb62b17a4772f29d661d3c07aa38a38efd5dd1484709c4b81fcbccc6c6fdd8c9b99e6caef7814e0f29002277672c7c27bdd33dbdc32dd191acfe3b0c5d86ca6dddae87ed22443df08b65e4f516a190400b2170e0266fddbfa6d97fa3b03801511857eb0a0259fc06d0c3472d29ee08cb6dd4d8747d4ca507c9fe528b8b6101023e841e1ed1b03f46e0e8177779d8f8c4b75a49c3ecdd058b0ba8972925bc662292c361fc7be1fa1fb5afedb8ec7346b6ce33cd0dd0edf9eb2a1ef6b5ce458013eb272c4629227cca752560e41977ec3c8e694a043a30fad9862e480e8c3cfedbf0fa2f6156ebe6a630f837267acd88cb9c79919c87dc05b849b88f9f837e5c67d71df7340d1d5ee37de76d5c7251a08168e2479c4329bf4799988e56617354c1cc31e5f1614ff96de85d4aaf84dc89ffee6bcacf27b20df2b46e35cc596277bd157fe8f27c6ca906c3e1024e2e448b0bb07be45a7d3734e956572b29f07f1a6ca8dce3e37bb2539e021c6322e5d4e76c32a743d1b960d1daf91bb111fb9a6fe6fa6518696f6af9c22eab68043c63fb8a8796c56723b360e5375eb7d49a157828f4a467b39a39d6efaa4f471c3468466e7448fbf4dc6188adbc254d5de0b2c7bdf8e79a2b1b44f1aa93537d8bd1ff506360353ef9986ef24250543882483377675c5a45ff57012ef999e578c2f495a7b70e88461c1567dad82a8b37dde815eeb5bc0762fcbf46c903c14e8bf14be64c2aaf82a2f0262188b706ff89622f4f1b03e128677a388d748a82bf60bba3ef3f4346a078e193c678ab1ca817b7ca6d28f18a8a3aefe39814016378ebf58b98cb3fe1c1feb34f6874eb05e8f5e28457ac0b7016ad674a503ca9c07fba347ca2451c055c6b0e3a2af297b43da559451c9b15242843e8b6b244ed972d25489de7815558563422a2d12c791d63fe8d90ee9562274c0ea872b57478f9541e5b833d1df381161e1975787db6a89475873fc4b1b994dcb94836bce0178f556d916c9b22192e77b34413f24b1ad8fe6a5c13bceafff1d4316d9040c7c996eaf72d11c968ceb2b541b2b5629181fc5c43b57dce50d215eb7bdce9f0d4654a092100b2df54ae5b4d2a0b22344f8518a882681326a1b5eeb9f914bda8cc41da4d69fc401da33aa6ddd8fb6d33314a214bd49d62256838b57e35aebee50869c398978d1eddad62623dacbdbf6858ed60d176c49b4d7957d856b5da5da0641b2891a989251e242c58608dcd53ef4ef7e77416ca19f356389db6983834f5756e9e20caff9eb1baea65c9da79ff406216260c5ce423285376ac72f1122f03b2b26c4f45c912053ebf10f5667128557fec4f62800de7108390afe2a4cbec8bd78e77a594602af973903c0762c06c24444d1f3caf4f5d0756fb3533ab830a09e953f2eabf6fa88ba178d45659c6bf4a0ba0bae22f56446eb6410020537c675229507bf074a99d48bdf38ce1cc95f3a0bd5d51062bda7fc10b7919dd32a8df92983100247d14962279199ba4bb51af8b1ab42a91f93af6eb6792086e594c7d2bb15893571a339429cbe3fdc56c3429745068ce8120b6911e9ea64c267736f683cc6f05e5b3434068e1486e1801d581a1aed66a8e2f9ee08b88eb5f04f4b25567bd07a8f8b049791c702a28ebbe260b7ce2bb0788ba77fb4c354eea4c603ff3fe4c537415697348da47070dea9e14e447b373dd0ffc038a1d8b719b32d9f7f910107a03ce6afca594a32e2e268f0192f83924d598db038d5272d88312b0afd50b364cc9049364056a9b1db6af50a803dbb567d8c7adef73cfc974d96f6b3f0b84d135eb9e1c64663a8cb337995f3c90a66693da726f74bbb961ee6e8b236c14f74c04f21311d730bd46ac0e90eb2d539eee0f861d6ebe539c1691d8870facb65a9827a7d34510ecc59e6daa9fe587559d73fac65b8d75910a33a457281d5e7d654c45bbee3bc4454282946f0d974710494a61185605eef2499cfebf95a1549c488aa82a96b418e75a81ca0654795b822ea973045108f68629944ff1740e3b07aeb1b503abf83c89771a4a94f4e5b19bbc00ec5df95da5f157610d4544faeeacf036398f82ba7c7621cb1c67e2acc32a3a51c7ba808f7c155173095344aeb7a135b02bd16183beaceb5f41a22b8411abba0bec81960822ac46139167c39304e1d1225ce6af30fd9efab27504e0ac939e0a7017587c0faf4aafe2e1f9bdc13f4d6468f58d7574df1827b189d504a7bf370eef0fd113e1ff2b3a33419357a754a0fc5cec6036e1c7e4bfe61e03f447adc9443bf41e277f56e7b3803ad35082e1bcf495a070dde50cb9a3c08e44987e3d9a765b8f9438bc6e0a4bf5042f10da9132dda56d8f062a6808e497ddba41e9ec848387790426908298ebff2466f3202a5cac866e881aaaa21ca0cad105174c365a578399d8beffa2520bd488880d0de9caa6ea4946d3849bedfc1dafcd44ac336d3428d89c30d9a2035e70048ca3f71aa8b032e68d592e3c94db88c8b8109e9861be3708ab022730333a6b1cf2101ffb9eab510ae8f3c749284d23ebfd6a21fafe4db6256e43e6e0ddf0bd2fdefefe6e19928b4fa075b590f8752c8c07225d99fbebc0e2b481384b0c3f1928b82ef1e9614503259319baaccf4cc0f246816129a6f74165e7a64507d457a1640e68e5196bd5fa4821852a20370648114a4722098220b1e08a41203ed432c45452752684ecd97d6498131c5020ea8860fd0093922adf685c62d6eccb2e30ef693d1df72f3089c0dffdc4f00390d248fc42a7978ac6a65faf2c5dd91138e9f7c462a671f4226a23c5ae8f722b7e1059cb12019b90854568dc674d29a96119f132457e10870e15bb5d2387d608cfde3892a51eb28639ac4910d7c91038fd9b2d788959245cfb8583620fbb60d621ca5d493a546f071b0dcacc01103e5d77f6ca56e6f01dc9173982ede4a609a1ad5c70cdc07398fbb53c3c5e681bd2a068f0675ac763d78119dba0eb0afe3a5abbac11357f4a5f4f524b01c58c91944fe1d64d3c3e3e13d48e8788caedd31459bec85f6b8071740f395749327d9b04ab4d17b66856a7ebe50299cb402fc48238bbef6d570b54bc8de3a9e60175005b869f4967a5c8b0249056c43d707dcd83a6d5c3c8a90689d76a01796600cadd8fcef256e4e64e6953ddd9f21f6b1aacb804f475c7013c67420581bfc73d278dfdb6359cde4e88099a9137332180f2ef72b4ba3d5af828a6e5b7f5e4051d2119928450c32f43e5af756904f07e1abc0cae3056758ec6a76664d20f9f31695c61d688b0708a4f845ef7bc340fb7c9f2f2bf7ede6e22a1b096632d1a480779beacdd3e2ace03ee409cf282d477ec96308cdae70a99c9fb283714978e72026bf2a4378f7f4bbfb929e5054c133b4500b4a4a77efbdc76583db1a6064f037a1714968044683ea8e20450ee5988f644819b0040a8e954d3d88f08fda5934a21a7a53679fe20d19a694d8d611e5d58f8e25b226f903ea2d5a1c04e70be4adc344f76f10b0ffde1b4d1c1b4aacdaaf99f56cb9e89121b8335b167b039f7aa7a2bb2d125621a2c637e215823fa7d20aa50c5e2737bc76a7a839590765610db4a8dfc865303f1be80cb85f10895d099301f42a1234aab0e5ad064629f9bd28407ae27a3b1943a111894857293245e694e59eb87a1e811f1d0ca0fc7d37cf3a770bce06b9589249a167842ec8b4991210bd51008f4ad7463caac4ac10fa0ff728714b0982c538d2e7f8c048102cf413cb5d7529187ed7d27b48b640ba06f7fb13caf319ff235c82658705d0be245d8f5c593792de86c2e48df03ae21e41a85acdb8ae6aa14ff85f01536a9193d4060ce675c0c65471734088c9d3bc893f0a94cf952c463bcd6a8f19536627647093ccbd2555a2d0e663742d654e2e561b07376b33fc2fa6003610eafb48857b7920b45b613532750fd2aabde34bf986222024f63496682b29a2fe9dda49f35dc46385d72a3a76ba62c041fd0f1dca01888ed6844c262d68225d8da97d5ea70d7404b6ab9d957e07f8768ac5df9e463a9204f4df3bed35026f109fb3ce02baeab9bf13119f398282c6e6567af1841026d710171db0fc00fdf398cf0d2566421425d4b08d0775eb94f2c5f8a970a90fcd77c15876930afac7b3d4562aa805bfe02cac0ce39e9f527ece0a0f2e7bffcf49eb9704653f4fd8005174ca55a2456b8dc7447794525e14b9f774e4ca11994f07a4031783fa28290763ec4e0bd878f658e1ff93d7edd719d3dc8f5ab2c8c167f73d9c075701b3370ac8a481aa608d1aa87b067653638824f7b7900e91c1047cef2b523b4482e8a1fd06e37c501b70e584b8f62aeace85b5e4dc438a89ed9c8049915c1c454113f16dc06b561fb87e40b29ca8052295c0411ac13c224a58b76da616ad8191c1af6d85d69cffc93f0f4a25d0e25b2fd751ca935a83bab190770325ff61e0075975b9144890329716392cef7ae191ef0d7bb3c6d5bbdf75a3bf970b8c8d3dc4052427dbd6f48a828b6fd35118de0306550ee111970fb6354b8a2db7fecb3b0e0365f9f04a203f2407bb87321e7b559f3155272c707336a523b6fe2cf350c3de880934e0cb085978cbcac982413e00ff6560df9fe02230f8934581da94039ee56eece5eb5f2a65b6893a8dde7e36959e258e5ad9c1c05b164161c2dfbd8b662bb26ef001da61bf67ba240140328034041200240348879ae30f0d0be26c63480f801e063da635de6291cde8eb9180aeee379c7f6ec8bd2c3c5f350ee541d91f278409c4668edf7bc16174f0cf00dcf132da2fba32a6b37950a57d0657c2a0142f83b3b0cd6400cc189819cab2193e926339ed885571ba8718b379c8fda4ef9bb052428eee0deba787f2d19f11f454ce92ae8f4ae4aad307e98a529c1e09493bd8899d194cfcad514f0bd23fe8d1a33f7a10d5ac7ad553abd8155d7dfb588e64f3970eccba17d7b03f0ed3683bfc8d9319b5aaf11b7bc7c037f883992fc6097c0280020c050cd2588368d66f5ec7bb64dcbdf886bd67b88d30e3cea5fb8de356b9a3b89ca86b95e8b873f60da0d7a08afbc081e77b7262633e203e3029c5ed1a21c343a6d4c747240edeaf98e7b93cb6cb7c2e136dbc3a97fd104f0e7248b930c7ef14a5d753ad06f3d393f7e466e3ffd9ee287a8fc380c6901b00376c8f857e802fcafaef3dd0e8f10375e42dfbcbf8cf96b6e1a3f984297a7a3beaf9de1f5b674c5db87d59149a019255ac4c814a639fd0f55fa7ce7a831a9b22a0160415a2063c7dc8bda39e2ea6f7fde689d9fc1c72b5b14490245236f3e3e7807947fae7c3c42df57a6de0fb6c644f7b7086598c2e8592d3f76ffb95540257f2b7d3526dbbab5fe0754d343dddbc0ddfbea497f339f73524af6db4c3d0889beef7a1f514211d3f87faf86d8d33a0f3ee04f2233316dd3e7e73aebf1ff9492918494dd3e615cd0c641c90a0233209f7f6d6617387e1aabc0670bc77c03a789e1e49767a269f9269a742f9d6d5ef55c2aede419f50387917013870b74ad1e5bedb5781ccca1f30d0c1ca2ca2ef623080a1b4ae0eb51f05ce6efbaf65a70ae07a1e066ca7adffc8077dd043c3240dba1c1925e861832c58920b693078a71ff63c382babb906f0ba5051faedb1b3a3984b186d4e2947054bd4cc16d869cbad2966608c005600f025b5c254e3726d0bab1b0a9b99e7bffa81ef112ba763e4e588b63d2c60c80d121c76911018a886f6955b45b61e436d7b6c3c92b9cfc73339a51c0c0e385a4000c0205037769af50926dcc8ea0d71a5f9ffacd361fabef67e0c0cc7463e770397c85df3b45ec563532aa7692f9f17ae1b2c2612fa85e46a97ea50c157cd7561a558fb8c305a5008f30b69e9006002e9eb3ab4cf97b6f7e2bcf9a6fd3ca08b13569dcfd0437dbcb886b8c483f2f773a49d8f1f0934fc75e434513efd42d26d0e3b27efbbcf7e8c2c943a89173e20c1569b3303d18546e834ae0f7e479970fa8387977cb52abb64b2e32e7ceb84ad16dd513337c27fb735d2e91f7891b8fa1a585a2b30ee6d8304139f37d081f2023a14703adf124a61a4e356ace3e8cace4209f1506036012867539b3108b61735fc66441b5f4398ae446a6f1307f7f7fbe1567ea1f5bfb0ca028d83e9dc297fa15bfa24b0fa802318bcf960c8ea3f6dd1f5ba025c0871ce6de5b98144165cd6388ced3f43bae241f31d5abf6e47519a82ce3ecf8ed25b92284934a2e29749390fb4ed9336cc8494d4af979c0579d8831a8db918fc026423fe9a6c1ccccbc1f7d9639ffd2835cda6cb976842b6a651bd2a08fd15922f1901295e23e985a7d4cce104f162b22cc21259e2fd657e8daaabdecd8e5c424999ee4977c8c2fc966872ec9fa7f0bd722548fc6d8be04f93bae8957eb7f9c755b9ca1bdf8cd34650313f80bbc73308f174082f2598ca13d2fd10404936a6ec01d758f29100081412281804b6fa27a59a9cdd3c4ab9f95e6fd47eb62499ad8cfa5d50a06406ca1c2605eea458751848b6a5ef2567bac6b45ee411cf57f6a449ea1ec67b2721925e632806cd5504d4f69d859df6c8022860e74580f7c2a44f9997f59054e07911f0e20bc233f82eae25d0b2d53e5a8fc7687b0139e8e1e7d93144e08a99599466463355d5e687b84a80a5246ab6ccecaa5cd2e91a6a2013d03ecad4b9ced373712314e191d747694642e7348904e44dbaf6167be7301659dc6c019960feab7e0227012fefff96570b10ae7f23dd41828a6662d0904fc8a21112e04cac828e8fe8911d754e2a378b8584ee0d04a7d3c5cec5fc17350999036ffb1012079b13f740ba93613b92ef20923e6effad667bb5034a95e992cf829258b68be2b78443330bdc290cf4721a4f79d26bd069f5c0962f3a8ae2c30c42f0037f9e0822e95c09cded30d1451413b6832ef0f7a057bf6a54595983e2f49940707f18d2f228ee42b34f50e560ded1baaae02ee18e4aede71b9d62a83eed2f4c54745492ae3db7ef1ec142c5409704d1799a10b4363f5d134dcf25f3a20d6b551a054bc4017e031405c4fc98c85667fbb5d3bb49209680c2bf554a1dda88ca0ef08fbf5f444bc01e203f8d3680a2b7832190fb920b7684c41cbd3b0c59c0fdf2fe0afa30820e3ee8d4837fc63f120e629e191651139a6d7f26a7825a361c9b53007bec3e8bf9e437d55293d6810f087343bbb1e2c8eb2591a3aa60f61cd567b2a68c0b1da5298fec66ed50783931b2468d47b85ef4a5d7fbafba26dc19af98889df5c67c68fff5c829f51a38f2a72feadac10565c52e4cbe62309f7bac7ac4a23945cd89860e4ff40f9fa7160159da0244a7644bca2b7adbdd6a393c42f9a48b47c637fea6eb409b42d7ef7d8608085b257c1c56ca316e2afb714cb46082ec98a775eebc75cc2f6189f3bcfa523225d2e48b5d9d4cbb5c1ea7fe712fec54610b18507399f95bedb947bff04cc18b0ec209de05556dd08e5b3618fa1f87e6acd5a6fa92219fda549f25fe1a5425321caf46b5018e3c414231a12c83ff11990d78ce2794d3b48739f380dd241c1df79c01701de74d54d8194ddb8334b7b4fbaa2df5aa3f400fde08a933bacf7738a3f6d1438238e5f581a06b8f26d98dd591eda691984d7404f8c220aac42a5323c6599d3ca7ea70325fed44b772dd4e159a88f71b156a803a30d2f7a9bde0f43137e81b42b730143481d6d0c8808d457f9a5f794a49605675efd6c999bf345fd460c50adcd3ec3b0ea9b4fa08f0eb1f37a1d8a13e07c5a0295e7ac4409c86f7c203bb4af406d604cca525190f5409ab9edf93663a957023733b857342b064eae3999c48a9ecc385205ccb564d32267ebeb89bc9680d4d4bf4e8a68d2ad2c180547769d2889f4babe6d297f6be98c870dc6b2b778b6de12d248e3005076cd2970f41906b45931f5e5258997b3b281147d9c0c70c2e058deaceab13f5e81d4964af9367ca25057dd4b8225aa1c2dbd5d399d27d5f38d79f15da5a8351e6f3f725080ba8c210e8b04d9ce7982ce450bd2f587c92db75901c236fe325f8c4a1ac1816257495394c1fe36a9ad0ccb85271be0b8bb89ed97db7cf2244284d495f3bda4099d09177a4d98a87a72bc84267295667018f4be62033ab60e7c08119cf99a99980e990c09678213805096b97b2c2ed5395312b25c8c98c5bf826a40a45cdda192fe7c9d0115d46bc9ac27145790d0b06752488913d632dad3c7178eb6dca92789a3bd916c55b440805907cd14651fe0178216701a5f41bd815b3a609130f5963cdc09433adda4282ba546f50fea06374ac65236c69d844410943ac6f0c5a82dd566bcad74b9d7837e0326835d67fbfd8bcb4b3cc76dd58640bad98339a6c437d53cd7027f63ca5b0b1922c05bf31bcbb662acb6792efebd4060f78b7de7b464c9713444a2afc6ebc60c400b8399bc27c4adf590abf9a0e0d0a07015468b3dbff98248ad5f2e80c1bdcf1c284cf605befcc5067ceabd7270cfea5da6ff5fb70fae5c8f9974ddfeff860d0433efffcbaa08ef41d8104d9857dd773ab0705f64b20285c4333bc9d04f622f3ec4914c2652e96b5af3f0d24ff8bf2d28b8aefe32d09f7e452a6c954f348b4664be104b958a7973d176a9d06eddb878249dbfea5658f0efe12a4ffeae157ed0c4a18fb6a3672f29e779b726b3faed5ad6e68a15a1f7840d6d56ec3c1e596b8197fd51f8b9172db78bdbed01257f7f83074557089f6d84ef79e5a9c30ba16570401df4589155d52a8c90c255dd1ab808d8aac8da9181a4f8a126645734ae5b034322c6cdabdcd3db95a3d0d89a23da197e2f90a83493b2f1228ef28eed5d4d496a74c78fb865a37766ff690f4a835e36d3ee8a2f8ba61610af30fb897b8aaf0fb66e46bdfbddbc9a081655d370b8ff9e59e9904a20d73974f188ed92356797b9af5ad79e01721ba76564774298b99973a4e41bccbca9026ae839d2c3cd5fc390b7cf0c37383f9e2d1a449a3cc45e3de28bf4bb76bbc098beef3101c7627c200ee229146e9917aac5e6be2fdf80c68b6e02d44c3700be8fa93c2a62146cbde84fd8563f23ee1460344c50ca5e9d657318980bdac129c989d11a23a0fac693b670ee3f6c545725765641af41f1bede3e34737321d5c0e430d6cde7983826381cac06100dd39fb0446c429bcd605795f377c430d60f2f0680a9f8e00053ba0390eb096eceea870c072782786d6a1914289845157c64adf2ae021f8304eb69fc1ffde3a1880fd1ca1cc9282d6c087afb2eaf7b6081488898d3a7d907185fd264104e1edf022288ffc244361ab37d2ad6ce03266295c5340c04eadc17c97ead3bd492af28a3de2a05456172d5ffec9f49acba36b4e8a89fb9ce12031a708c2dbeea255a2f836f5e499874861c08b7bca1f9c4cfeff054456877c6630649cac883fbbb892292a8144a74f8eef835443970f06669fbf7523bd0bba72ee7c79dbcbfbf6ec193bdfea0bd1ba00cdd6ac3b96fca5b370877eea0fa6d5849dd6e7737f216290f647a166508a23a5e7fc0eee395d3a4f21901410c17a40d7d731be8578f969d7c3e79b8ab34e34f54db2c690abc145d3ea936239a7fe9126b14d8de64ebcc77a99a8e9477fd1bc0546f6d7a760551fdad55770a75b2236ec5e24a4f949f5399c429209b9dcadda47436a020a30575dd60bf5af2983b93949791d62381eac85aa3057157998df82eec913668b7eebbaa96ecccc194e935f09833693d189e365d7e80e710662614dce4659529cb74e29d89a3aba5e9c495dfae68be7dd6345e3d0186fbbf4f43d7a7014241a928eda1226298ef80630edaa11cdfc094f73062c13396210ff86a1fab6b30a7728af635b3589cdc72691479fd5202728e0368ae9433bc25dc3ddc9d7cfb6924a9c84692d9e0bea138eacab2970c067e87157d7758a9f825da17f439039d4eeeaea610cff17423d6c528c0ed44b05f83a5c2ccbc4a8052b32a97a2bd494a4359b8c7f62401e25d05058b6bf1310085a27c5f3173a30132a74396f6d783a81e0d1fb543e7fafda84b57d0abe695717ec4d50e69017f29e30ad6c2c80ecba415a9ae0223624e1c21d62ac07f1f8c88bb0d40e8aacb3b48fe4f7078a4da37e079b1c91dc489aeae5b6abcff0645117fde1139e9cf30bf5f119eb6bd7ed7978616f80ee8dd82dd69dc7e142a9b93b2279dd33244752fab171e731460c474e10ea85b8217980cb936bca10018fa96fe40b137522a765353055c227988972d842bf1ace91e2b7c28ae4139261ccd5e1607bfd05e059a5d28febc5e18ed7d175e766436dc3adb443884d9b27853900b56934048d2049844116c3db608c01a430bf7b7272899bef0e96f71b197d29600b20f117764b3d41db0895da0f17198d52631fa78ea3a66f1e5d1b3a6ae02d766037ea46be4b23d9c060b1702906650dd5d1693e6e85f4c182db69d98fef3fc2861c7a2d178df798f8157b0152c6eaed6abf24e05006897504c65a116325f90258b03b191657f18be574bc7129050a9afa0814a6e7c6cb2b94e26b863abbab91ed49b5a081776944a7573088e42bbbb5b13718d2ba4e624fe18b6534562fe36dc23af63cef98a069ef779445844b3f14b20ae2677af89300b1901fdcd1fae299133ad7352e6e9f98cb20ddc9ebb952a23580c2e45e377d38992dbcd5b4b6abc5e9df50acde1fa58233d46d7f5130c8e4ba03558be829226992590eb901d04aeb2e37929133b24e5d3937fe354bc66f9fd284c81b6e6ce470e4def9d525c75a84392000789f1b2afc11c5fa2b30205d3ae604c7dc630d53be8c2113b9bb9c0ed77eb966a6cdb5782e42b2d52cec10e88a9f29489152c0b7a5cd7b85fa986b6c036f4677c6e0765c8e634fecb1977c762df9910c4a870b3b27425d919921d47234c73e0e706299fe07ea60b87badf928da5903c0a8d7dbd27c583c894251554a34b29606879a63cc2bec3e47b58432e74610d6503700b3bce551986d1e9ad6f96a651d0559aa55659479ab78dec544769a53477085035c2f7587f37045e543b53fa0eded4dfc1d3856107d2621c38b1bc8f36ff79a13647dbe6656ff74541e0b59c5016945fff18ee538f33463afc3acd1cbee1997f7b8b7e119426d4563fee35d7f0b89a30ca2edcc47ad298256c23d468d37050b4dcb5aa367dfabae93581bfbc5b23b9a3ba43dcbcc427014ae66a0fe688ff28d62914d4324ea1e2c7e109d27222cf76c05a2559b6702e613f3d8ada5e82574e1cc79cbfea9aa802cb8cc27fa77c2c16ca689c1b481ac90f2d11e84a739b27635235e3e6c3a76401cfca875a3381140b82dbe9369d128c03bfc8536cec7cdd68fd5757009c02d8938a15b4b708d000d91c173ce87e1613951606284c7bb5c950aa599a06217bf64156b6526d4897710b44ce9ba9e4d502b80aac0fab8b966d2f605260e0a065543bb48f5a45345845ab5182aa495f7f4b658a8e7f766d96ac1c88312947381a37b18b1f2db408702979631c6f9e4e791bfb7eba4fe368a0ada767d2bcb104960ae81876073986f295001fa4d85e8ac3659c19925960a5901b3d8523107ba6e8143b9349da4b3a777debacfd00e3d8baba944b61e4708f65edbde75da43adc6ce30844ddc98d62e25cb47064950277f255a488b64355c021fd5fcedddd976ec89d3ab11dde204324ffa40eb4beb968cbae35646fd0602147bc8e84bf0a86310e8450ef4912dc87d30a9726b207ac866c0a400f7a291686bd9c7227b190488c9a0411c57d7d6372c5a155d6ba5e24336b3e2d6bc460a6bab536a339ad98163a88494511099004fcfa69ad3c41bdf8cabf5335ba64873d6586c2788a37adc37cccfd0c09516ecd10b6250db19999b07763e1c91070b61819390e9972c21783e22c7b452243f3316fdd4a9d23284a2356c19382ca92a203d01de1d3c609b1a83ab2b637f80ffc7c13b23f36ea34958244055811e7e02864198fd7f91ea756ec3a980441969b0433481c289fbda0a0c65bd22e9f14988fe46eecf328aef2c4b0407fd6aa88eae6fa1e20a181fcfab65ae6051152b5e1d41ce7140c5c5874c1a11d3717a3dc7b08b7d3d03aec2f5f4556e0d302580a6d0bd539082cc00d256ee10a3660711cc3be6f5a23a501cd86bcd2edd3c778b662498e090732ff4aabe1989ed19e07e9deaab27f81aac27307d53a2c037069b9bd18a27ee8500b4a6aff6c433cb35b82b5ccbc10598e2015d44addd40e0f1f90d722201a18eab9a6b1ceee9f435ef55b3d1ac2e52392c19562e188ba7147322a797efba769475115b6a0a08b5d900a3d06a73118a88f895f8a58205bdc3f485ef8a38e7e1cb9842b71ecf5ef150c06b2d683547ac6686e38c026e67782d06d12af6164f2e11f722e8952b603ce3c23e80776476329f3afae25c5611811de911ddd4503ee56300ef31b46b120d0faaa7aab1fa99b9ddda16a22e6add358637c45ccd5c6bc9895bc5493b0b1c6c1511f7be6921a6a0435dd1dafa47bc5ee049a9fb100eb65d6851b3828f8033354af429da8dbb033f147b7e2cd455bcbace2b979b707b4d2d3e103e282c6656c4d5242e26297088924999e682d004bc9ebcc28c62349f5513bc12a51523bcae67102aa380d320ad8c215e9761339545c4e9f72314c4c1ae1b01a3f6538641c46aa0871934dd3687196db5717f3d47671be995d9478d2a1a012cadde8ed53700e5ca235d60d325f5c51a0ff1ac1c57711fb8e0e53df4815958e55eaaa8c25542e1c17182aac0293517c31d7594c619c5e8e31fedac66af764f33b033230b5895b1c72cdee03e06bfa55e975ddc1339891da0cae22ea3bb9b1c560054daa5ac398b59d8b9b0434065141938fe508c8408a0a04205d4836101b8947ed0b90a092e14f04ca9c790ec5dcef0704cd4f7b704aacfc21bdee25d2b5781f351aef0c176dbcace9ea561d88e410f589cd9fcb674c2e25561754d1f032b9b33536f04b39aeb05f19c1bb72bcd2e870933ba93aaae766edbd2cd80e91376e7c3706057aba2b499582a0dfbbd4b16369b8e40ff637a02ddbf4fe2b5629cd7c05ba31adac8ae94c31c70c909ff1d8421195ccea89ff5504f48eaa351c0e24c4b210b3c1a25b76254cc24a48b3139cb9b5f6f4b1e5b7068a2095fd60b1c2b6488bb13cfe913e9076b963d906428600ae60c4d4e3fa9a148c89dd8428c617c061594e8ce2e1297fad5d2da9dc20e0b26646185db42e256db167cd9033712bc8c2474b0e296bfbba888c61421d57d0cef5384175b5e181569d973fbbcfb1c3186c84d77c921b7dacccd79f024033a813f942301ea03a270a8570ccf6bd4d2bee460b32c96b9c38e208d8e4aad6170606e45e10607c7916e211b7619b79dcf22a88356ed3af3fa7a36fed4fecf0d764f8691219706a7b5453f752098797ce76ff70bbf91bbf70ddba80ebc52e8c899a7dd14912dc90c8d6e3afa8191b270269160e85722b10cddb11c4785389edb92ddd629eb8b358037bead52609149a7358ccff094646d69ab4b21951ffe5ff8781becf018741ed9f19d1c967779ba308e3e8d5f014ec8f035e881d8064655a210b5372eae5465b80151440dca0cab6a66813a4c35aa1a20b78539841b247cc6443b82a107d26df34e950abee624743dbe6fbf768aab8c401964a02d5ba122bbbbe30c0491c6217ba571375fa03fde2fcd400dce9458c99f2cc13547f406f4fdf27c21187c3d8a9f53e3ee3d91b1561b6ed83d1b7ee46719c2be944cdf847a1ea2881b476af9205f25938c3bfb4ad75622fc9ff507d02557773dd45c6da258780f7b2267215dc38b17743497d2207cc34604bebdfc06fb88fab5b3dc1042bce447daabcf02906b52fc12fd1d1c34ae6c05e9f180e437811bcf99f69613f0ca9493424d4884a4f57658c1156cd83680b15a1e7938956473067511c598bfd87c96cd454269ea6d64d53cc62fc1d3ef1b5f6ed109de6e7d105a84468a7c9d4cc91c39e45243396514ae583b62cc300903838d393a222d13173cde0ac800dee568e37ce80cd61a88ee58030cb452923ab492d56bef9d32a80b0bf056260043983a8221ff8ec3288b60799809bfa105fd4daf0fe72c56523ecc4337d4b390a411d84daa18068ba611f702124935309f7f9a84c4525c4c74215b0053d477d136c95afa4c86f1442e2bf216b3e0b6e9ce5591e49c67e4691de0ccc029e2d2ba103ac9a15a537911b386b495ca02d4c4716d4839f101d1058d6aa509df35808d3e53fe35f62729bdb86c96b581aff85c80c19b95eaab52c058fa998c3dfb0c1a7efed4446373643bc4a33722a640d401300652bd16c691db5de2076099e45843bbae71f2a1935a67acc0b42986bd6ea0ed3ad473599f9f43e4d26b0de7e2972c0a654388f6af4a2b8aa456a980425632c0af0715b53c892e2b983b9d7771af0b2bd273d9c126cb4eadc3d70326f4adae6d7458015fcfbcfe972560c595a6bdc5da96c3b3e0196abe60f9fc0868fe4391aa592cda0fbe65138d166124fac7dd991cc7ebf36b9444342f5eba49a3072bf3a0609b12395c5b7cdc3df600abc906154e351f099d7b5795e343d5fce0fbb311d62ec798976f5734f469c2b35b71ed6e7ccf38bd0ffa68ea6ad20c4e009f65e34a2cf2634e561c1c662f15e12743886ceefd4cac327f562c0d1df2b84c46b7df0334107f50c3da1f96bd96a9150ab90311373c871a4bbb64a09801eaac374206a66fb80dc00d1b37ec0f4c426f43b5d882bfa5460926ad443195e8a6d1346e9de30e6b3694bbd1df1524af023e18daed64c78976e22b21a6f12f1b91889c01011bc785d89028dfb169672c3345bed2b2a35c107fa51680054da58236c189b4215bdcc62841a77d9b611330f4710ed3ee6d3617737b8641f3c2682d29420d71106d46be17a2d8f62318dc344ff8da40e2b75041b67802d6b15221d84465de7983215d8ea1466bd180bc0f71f882f851abe24d5b3a0c6ef3495ec10b88f1155f6354d3a0e58c68c063b9a963752b8ea19d76d6158c48bb6ce584057e1689eb99dcd2ed7a7a6fbdd7cd2b06bad944e7fc4c2e593dcaaf3f7a629d9209d277d7d2af707d9d62372e523be35195514ca4963554373d901479600afb0abcc394281969ee7194b1d716b9bed8ec0a07180102026f8474c3227b926aff58dc35b8709b36e71433981a74085e859e24b7b765ff236aeb16ded771d770e79800e4a03c18fb048f23793b165510c0d13987f96aeb3b0313ee1efe63845f3adf59a9f152871b06fc68b6119b2e4a6e201552c8f528561d3f286a10dcd3fb0db8b8e6c1063088a5a03350d534b939663cae6dd131f51201ab121a23354b24e93ef83cea3714e257215e5d8e647447eae87d5e762df7e831c30d6dd8d9c3045bfa1b85ef726f4daf1977e124ebc9f29c6cb343b8851cc464dc4e59ca2a090f9cbe74223944d416018e0c03a713a0cec786eb15abedaa32630325ff8a3ac277b3c91ae0600e5e681480372019561662d0981ed350610bad94fb4ce32352f6d973624936bbb1cb7ceff0bdcd6bf74a184df5a2af1c9a8dd754b21e1e8e1de1a75329a30886a434136890473775de4ad4c9feb6f0e86271361b676774f6cf2df1390f981d4226897ef18b386c4a9c5c4429a683071d219870276ca297da76bbbd131efbf68d6786bf54c8a28a450cca474cf6d7541e3b3a8998c03b87851e6c1b16bb6fd20eaa55ca1e429c4d77780c69a55065c72e1771891f3478eb673ee064c687b9ffe04425367f0bff15f200295d17388ab5ac115bb00bf65dd96080c185191c6c2cae24bd20b5e630c85a05bc14042e501d41701dba31da12c0d9a64b122772947865dc52ebcc0d78069888c345171a7dab4d793d542703f5d990dea1ade3048e037bc7ebdf4698c695df2af5a7161f2877f45f85ff5b091770f1bf2eee4b4bfd4158d6e195c12991f3e30a1878cc33dfc9fc83cd261b766a8e45dfad43c9b8a675f875145e39e8abe4835f0d67fc516d4eb1a44c10b55d31582a14244c35f0688a6bb31fb97170b2de1ca90c552c5bd330359cffef6a3cd3fe3e0e733a608a68568db1b9c2c8f1d2c97f544ea420ff5910a38c972d495d1412a52169c75050e29d617517e9e9fde8d38bef1a2319fb4b1143219e28978b7b8b2ba173618d7df3e12c0743ec0dacc49fe0c44b34fb1ccf490a62f2332101eb77ac4e846e2aed3789cba6ea6a66adedd7d074442917c2437cb3cb1d92c18334bfd0dab70a8a34b1307a97f15f85636a4aee5ac925dfb0a9d095106a623628cde92dd714938d2ad6f5a55108f919e2e9a786136cca5b9924b72aa9f690154d9fef7e8862543d1bc4238d4f527308fc2f29d5d261197f1ee2958fdb7f1af7010ed302931f280c4ce4cda56c83d5878a7a3883569e448a0b85766d1147fb376d80c30ef8b52f4d31f4b098c27b4d693d1885a0ed2c9111e4d232531def2b932dd585d1dc9de8538c9bc22a8d6480faa515d5abe532d02491368b5c119064d439ecf3f021bcfedbbab96251fa82bf3861a5667d54de2e6a3780875d748c0565b79b615ef25d188b227b4cb55a3d387de325d0201b33d47d73eb9375462456cea69854804b3e7bbb22b5ce952c6bc306109ea3e4e003c9194951f248dff6b9f2bb0cb73f36709ba5a1b1b51a11fc408c3bdc5442c83fd59b3ed0be84fdfef0f168a0c9def10ca981e2361840eb3d715fc4e4889016fd5b384ae1f6b6ef3cce18c05daede0efd6e06b365c80642a6600fa33e4091345d89a3b689d39b8b371d64e11fe534e1fc70bfad250158a58e8493cc6a250e04a7c829fe444452f1f050d5d11fe33b72eb43646b8fb4078cfcb610b78dc0ff5f55da70da1124ceb4db2e1c609c7c754c462cf37ca61c115d58abeffae9d6da50b24ad0285c650e6b4b426e9598b46ccfb45d212c75685c00e1023a3d162aaed4eab01982624b3c9177fe95494c64ea757a80ecabd772c7eb535b4a6c20bbb6cb8b52396e1b93956068ea60d91cf3b9bea4b98f329bccff5240cc2e6486cb9c6abb56578612a5a462b34c7642f2ddd8e8d553ff017d053e5a8eb547177fa61444d8bb9ac86692bfd78c793cd9f98834b2b35cc233ef80138721c782b49d7d4d016fdc31154195b725813eafb8c11a01455f2977c8be824096f635ff56de5c3da85abc107cf6848058ef5b38035210132a45b84805c9a4de22d9a2ac0bb06833fef1a1b884a9331e08864db770e1d11cdd44a242ce35a20e1c8df724e102d7138da7f2acd0fb1d7e57d1d5e1d6cb9f26115d7cdbf50c03527c71cba064c1d796b199f04af42b089835fe4ffa1b337118a124de4ae4665a9d7b2e99e9ad7e8cc21755b8ff77bd2a6b42afd95dc9258a31b82b5d2ce7b3f5cb998708fe043c7df099a8bee1d867f78e1b4e1c70e23db5bc670973d7cb30138c58593335209f7f808a75593a6a40db4f04c1b801024cedba797393417a7f4a8a50339c355b2ef0169fd1c91e5c4c7d0e578054040aeb31f414e97a0ea625c7eb5a90b09a9e5f8151f9a79608774c2bac38567b277d32ab79ca7b52f4b565af41b229517981946686bbd3290ccea76bfd690681a7940bcac19a850da3bbf0a5717b4e99908700be2ca17db079909a81e58ad7848841f5c817137234037fd9db1cf56120f700183f5ee5009c1fb952e40c8e80c8e863caf8d75afc5fa149d7eb50f0f23538d3189042f0b8f7ddf6c86743c5786870a4810029a6206444fa8981a2201a86e4dd97167f89c565da5bc241f6df787b95d9fcc6735f9343c809fc10cde6651f8471d9cd6ca6e76c39a044955f396e624bc6db8dc13cf9e3a28f20d63bf31e10fc55d01a6793285ece322d76a8957c70f200c0b4c1720095c1c00bd6664a50bba5e76d954ba287d122c65a0da08eac0cb7f992e393b45c49674656b4289ed22ca7db3f7fe4375aedbe50154177099fdc18ae8f91ff864cab3d3c21a0c70f066aede731b8e262904fb0d36dc7fbca5e7c15c6384e723537f82c55577cb940392b1ca9b791c3cf6b960603ccb98b02b149613c364f01a9ca8642e77f9f83ccac98df595d8685373c844896fb4dac4cd9bfb37b621704b3a5c2f0db0154ecea92dcc5b6f94a29bb6336dd44ae1c0f0430fd25990717634bcc7d6767194840be836816fd495bda0c51b1d7228ae839b0b755e110a5a7e2be31c3b0056d5bb23a6702be9572e8b98722b358505cee3eaf2cb0cd3d5893781f8611bece3b80090074f39c360b717321f1bcebdc1b6f9ded402249f4a0a5b16c0bb29818304681f232b8e8dcd77c82f7453d76775037864e3348ca7644033bd283c256d72815b63aad87137989c680998a0424649f0bcc1ce91b397e4921f74574ec081f4ec11a85d83e2519eeddde43e4ec1351f957d4a7da551b989d249bbacb3c04228fffdcac72985568fafe40c5c417c757b9e756f8a46d06067c5e051e40052c143510707bc6686f416aaacd25ecc31c73c8cb844d0f66c90eff2dd9842c09f5fea57df9d385de73ba072deb9fa0ab0fb768777ff863a55f12ad136e15a2dfaf45d93e8847a8c84b84afbd847ded05ea6b2f43ff676a54068503143e61864044ac1c4d5e49fd3fd09ce6a7dbff0389cd30aaf8ff5f5084869427dcd79e635f7b3a7dede9f3b5a780af3bd77cdd79fa7527e8d79d56beee6cf27527e5d79d2ebeee1cf175a787af3b2b7cddb97fdd99f7752784af3bddbeee64f075e7d3d79d4b5f77d65f77eefc08d53e3f2027bbb3b56bad503628874753c55338bf96b84eb917ffdfc5bb753539ae7fb27e1ed3d17b18d7c77150ff3771d829b8491b4e11ee100eedff77b38e67bf81da6f3bde62d86f2bf0f238db6d55e9f5f5d58dc78773382cd0390fc4d17435ec0fd6e7ff6db03cd81e2c8f994b2e73f3ce7ef683ae9b1f6c409e9c0020aa714ab1d518d5b4fed32ed38aa4353a3d3901e64f4e50683b8deeffb7caf9f886d2dbc95af69907332f6780677067626702fe6d6afc7fe1db65a2ff3fd6c538dc392d2c76732be762bcb2d79ee4ffd36f938120ebfebf5efa2e6c86ede0cced9675f13dbe511146faef20f1ebe8ff6daf307f7bff07c3db5edd27b5bbb4baee2e9effbff3b3de60f4f1c47e620d84dcdeb0bd810abbc1d86ed0f47f7bb9489f2bc97321727dbfe19c6bfb6531beb5fa5b9cffbf45797bd1647bcbc4ffed05c4d3b6c26f6f716d356d01fddfde04826237ad502d4c2dc8ffbf6f3b1c8d87bf745ae6b7b5c6a4caddfcfebba1f63236af03e8b073be5f780045ec054c16dce87b4185056fff7ff676d66a37eb4bd6e57f1439eda7df7965b9c832f1ff506f678db3b0ec2ca07ffd1c7677775b81150590b682040a866e281ccbca8fc01a43611dc0eab942fdfbbebb32727bdbdebea2bb42fb1fdfe16c71696ee8f4dd7e87c5f8e7a4fdd4e7a04d5971da5642ac28ff6e6f586c5b55f87f420a77586c5be5d9564e37d4edcdcbfa3dc6f3f34dfa376058ac0766574d56b1a86afcffee6e57857f478bef96be5e07705f556955594b377e5745a54ae5e4ef2daefbf6ee37d58c7faa449baa834df5f6ff4fb7d6edb4747bd13b3e46ebe51b3399acbb89a742fff64e3999fa717b7341f13eb54f41f8e7da53f7fff3e1e963eece0de7f9cebdb1fc7fc3afbf48d95290ffe81d37df623e5b0ac2ff2fd952d9ffdb5bf676548dd72b8bc3f9ad9777717ec62ba3f37d0fe3de9d0a0a0affcbd58e32b923b87d3fc0ab970736e0f6ee3a999f7eeeee799e5e38d7c13839478b71b3d7ddd577717ae77a72d20293d379e47d8c83c137f8c929f7d3c9f9d9099defe0742e2826e764fc3c26def1324eceddeeee17fea5570ecccf76aca7356e8e3ebbf39cac4ce862f58fddc10e08cccfc265f601a3ffff32b41ed71d8b717439bf7731fa862aa3cf77795d6fe0d8ebc67bbbf5ca62fc2b574397d1f95c8ed6e370fc3ff96b4f1d3601c67fa63c26362630a62e681ad3fdffdbb7997456eda52df61294a523f692090ff6d2e0929ebd04c15e62602f6dd784de50ee2025fe9fe8edbb1034e79e00eac3bed7ec9b6bdf02944c6d252d4a4c3eb37caaf8dfc936d9fff77b1bc94c0a1b09673f7785d84746ff6f1b117e1ba45d44b6ef391ea0185a8c271eeb7a381feb3a5b380c9d5e0b8b71367bbbc6de3eb1b714ba66fd6d4797c5dd02520bf07b0f2fed7677a7bc5253779e0e253575d6ffa076a9291c4a47e3e0f1183f10dec96230574773c307cc3a5a1c381ee3bb2ef6f213bb4bef68fcee8e753dadefe573dbee2726eb60f0cd757737d6f55d1cde43e395f13bf7bbd36232ae27e6db99cee27c2f6d0eeb130e80b9603bf00ea6438fc76963b7325d4d577b7390fb89cb395aee8793e961685dad8c839573f31a9ef80cadab9d75be5ddca60796e1c6bacea6bf7d0530c3126a0f187df3db03cc4f4e67fddbb50738dd02426d018f1f58c60564fd3f39e9e75cd0ebd5cf7984adfbe9e9c9a94bd6cf795eef58d7d99c723e1cedf5bea14e8efff7b35ed6755bc7e95feadedaba9f0c38ed7600298fc2c6aaf9b7b1a47b60ce872d81fd801db4b1681bab6763ebfe6fde32d858a0f3d268e7107e59179bf17ceff6f6b1fdd436ce8e0f7a1be76be338dd5b77391fdf5eb28df363df78de5eaf7d83c4bec161dfa0ef5bfcedda3667ec07db369e0afcaca6b8b64d11db66c3bdb5df5eb0b630348e660b9f753daf5cd64696a371b41a98ae361ea7c7d0ba5af8d3bce23c55578acbad5df35cbfbae15cc7dbefb2db1b5eeef7e5c3f3bf51d0cfd75cae3922624dd3ff87d598fde9b592f8c5c37f315a9a9e7f9b0bac0f62154c572b97e5ada1d36b7ff998aebfa9edba5a381fa2baf3756aeaff0ba24ef97f9b20549dffc7d3c30f971ef8bfb149f747b3f9afbbe9fa5b7ad79ec9e239a37374be7fd1f91e88f7fd8ed1e82f3adfbf5f74be9bf3fd8b4eeb374da3e6ffff20a26a3e9cebe73c425957032beb6a8062fa9bfeb687f35c2d27e36a78b9d90d270e8c27184b306975688cfddcd5093d0ae5c9d36f7471f1dc3dbc327e7ed3cf790441b19b7ece23a0bdbded68ff5801bb7ece2300e269e474999c5603c4d3c239209eb6970df9e27b6ffb9ea3f901e269ff37a8589d3fe36479f84fdf73d3d5f4731e413fe71102f1ca63fa398f90a375bf6f8ed6d3df2d30fecb3a204efeee7b585c16eb13b87a5eb98c109dd6b97967bfb2989b77f61b6b1b6b8b039085adc6e2c899a1e634d79c661c2dd800ff7c782eb739bad8e16b4ac5af290bbfa6047c08ab8170ff7fa5594193ed6fafe67d7b47affcb892e10adaedbd3264c5caffedb5c2787badbcfdedddbf56eedb3b7a7bab4cdede3ccfab72e0eb2a647f7bab0cfddf5e2a9e5420f7c09c8f4ad61429ff3f654fcaeabf1446294d1f8e4219a50b8a14288d7f7ba14081fadbfbc4c8fff74c263fa9fb27dbffffd64eca4eea325133276f6f2659132bffdf648ca9e6bf3566e263befdedbd0cbd7cf1b7f7727c7b2fffcbe49109786fc7f7f6be5e425a2f99fcdbbb24ec7f89ceed5592e46f2fa392b7dbbb9395dc7a5e12ca24e6bfbd7849b46eefb74672f9480e91a0ddde1a09cfffedad2d1fff2da5ecbe3e7279a4f1f69ef323108e1cdd5e23a1ffb7b73602797b8dd4fddf5e23f73fb9c8e8dfdec9ffdb5b04f0fff686ddde2240b77727c2797b77fc6b22e3ff2792757bbff51027431a6fef10a95ac8aa9024ffb75787ab16022864089d36eb656f18ffaa2badd49549ea4a211570d6c2e2ff1c2d40383f955a80e132b4f80b7cd6c59e399d5c004c711a0050c59005c88bbfff01883ef8c7f9e660c9e1ccd9d4bc4226c7ca8d979c2a395472a6e43cc99112e5ed3f07ca789c1e3b938324e709e93bf9cfc9cc69f2a4e73f07f3264ccee5ff0d2a933399fcf8b77727e7e35cdfb10705b5036c47d60ea7f7de85efefb7d6d13896a3d3e6b23270f7ffa5bece41feff6e772c46a7c762747a12442e28def7d0623e5d7feb06dee9e8a7342732f0cdbdbbe1fc0b7c73cb779ef8ac7bc1e09bfb94e64476437ded39816f2f5f593c067b90769785cfb9df5a57bfc1f9dd93184fd7ebeee87c0f87c7fadebdcbe2b17e177677c15bdd2ef83ea3fff47059fca79fbbe21cbca3cb673c7c202febdcc03b6e5e9e7ee0d6cf6671199b97fe16cec3612f9d9ca78573b4382c861e8bbff2b017db5f1e56cb3bc795cb74729e16a6bf0586f15d571b3baf85c55f7e6b661c2c5c869fcbbab82c5616fb2a979df1315d7fdbcfe2b16e570c3c1ee3b83e7e620a97d37978518166a63b044ee072fa2c16df8d717c2fd7ef1bc19b0a1f40fcdf2061d2377527b827806f0660f1ad754f00bbb1b1a1dd5ab7181c167f8573348eb7a7d7c262ba1a5a1fbb9d73b61d0cad8fddf63b4fbf096cdde0a81b0cbebb5d5c3fa3f3f3d4cdbdc152f72e3673a50e98a5a6ce4fdcbbf4ee1416df8d99c2e5fc6612ef693dad77ef6228bbfea0f4e1bf5c4daf2c56c3cf38db5ae0ddada3bb3b7ac7c76774d8ccbd4380ce0311dc673cefdef127f42e1ee34e773afce4b49f73712edecb6bfb193f8b819df5b1701ecec361af47a53d17a375354749c7b9ff2ede4d9303f35b47df77783bd5d72656ffc1b5092181e3fddca59af28b8ae272a7fcbcdeefb704e53fd554dc9ef613a3a9e5367f33c2712c8edab9e1b008b6109d2132ffdfebfd7ec763fccba79b75724efe86c3385a1cce733cf1ddf72fafd22b7fc97880b562aae218452dff4bb7978c07681557154715a728a9d8828c07f83da3773c1fe37113a3e85eefda3fde191fe3787b60cec7e5e67865bdcc0d3b0b232beb89f7b0b330321d8d6e3b9ff5f21e9edb9b19cfc9be10e510cd10afeebd1ddf75f37d173e93c981e1300ec2c3a2870b0fe6baa1d25a399e78ec26aecd6f5f9b197c6d76fada0cf4b5defab5def9b57ee46b7df26bbdc5d7fae2d77ae1d73af96b1dc2d77ad9d7fad5d77a81aff5a0afcbabff0f24a4fd22a11fa027fa51c2627822ec64a3fa3ba2036607788aa489ff7faa412e67e0e18c0553f5611799ff142fe68787dde95fb9387ccec7723fb1dc0f0fdb03bbd3bf723cf1d88b4357541453bd01f4fff7f3d711c58619ff5151ff37487e5f23e7883861c244620912214688684c544c1411024422e3a2e28744440f1d0e3958d8a02103860b162a181642c030f97f7919c389ff73bedfe1b2f80c3fe36c37589b55480aff37a839847a5e8a0b6e3fe89843816fed7ccebf58fe1fef6b0b01fef7ba0284da904c6d48c590f29b4408e600e26821ebe731749eeeb687c6d9c2679c6cc773fef21d3fefb195cb3e8b6a2a4df861f0ff774208ff5f13322084faaf0981ea4151bd0c35a864b0c73f18ac57d6f5b7ad1c3f4b20364ea648a905476bc170fa3f07fd9fb39fff9f9cb65f079ef8fffbfba797a93868da77f11df80f0a2fcfcb13ef693cdc090fc7c777ce878783bb817708eefbf6eae8fcc01e1e9ef3494ddd68dcbbdfe872584a6aea860a6c03ccbd61f104fd9c736ff05eeeee77bd8ba8f7bd07e320d563837f26bdebf3e0efe29bb08197025adda7a6eee3527345feed0d77cbe9f038ad83a5fc6ea829bf5b4773d1bb6ebee1f03b8ce764f81967dbc56965617fb91a5bb80c57befcbfbd797ee672865f42ef62b4ba9cf5ff3559cddf35f9c7ffdfdd3c8cd764c6dff3f23339ef6bb2543d0ef3507958070beb6e5dba1bca2ef00e0fff3bdfe99df17b17dfdd3d5cfec3cffbfd843b95f3fccfebeee2673d6f177b5b5383da0fa0c57fe73b8ceee2379eb89c260796edc0603a312e7677f7341aff82ef2daeb032dc8c9ff1fbf613a3f7c0317e4341dd61b3f80edfed6c77179dd6a1cc7660301dd893d38d06ccb9617c0f2bbbeff118b703e77b7838d80ea65b038bc762c0b4d7ddc5f7f1d8eb365acbf7340ea696a7e1679cedcbadebc6fe6faf5ef906c4d3ba6fddb3bbfb14583eeb4e373a0f3cdf4f09d6eeee9edffa5f3e1eef6777b72ccef376739ef3816f1d7de3366a0875ff397de640b2fddc959af28b1a9bc9e2afd88c43d8d67256fe9683fc2b9d6ccfd1fabe7ff50610dd2cf87ffdeb2f3206b85a3857fada4df477f42efed3c7793a9baeb6e3646772ba7683abddbeaba3c3caa0766e7e6613df5d3daf5c3f78fbff1daf1f10f8311a9dc6a0fefafa3faff9c8c7dfb5bbc72293c9e45a0dccef53b51acfff5ea577f64a4bb168218dfcadd3d8eab4affffccc96ebe16c7b60ceb7e7351a9aff9d2adf73718da6034dffffa91cb3959e033e13f33b554eb96a3cc6c176321e841bffcf213fd59d0b8a6ffce66dcccef2b2785c2e0bc4c3f57234b2b7bd0cf56faf55d9f83be6fbef86f3beb2be4fb875b43967420e18675c7f6192e5e29a4ca97650c3018afddcf57abf5f2eb7161b4397739d9c87bfe1308e7fd1613cdfcbc33adeff736f48808da1ea6271f740fc7cc6d16531b9066bf07a9c5e598cae3bd795ebf2eaeeeaeaea98ea749674bad89d2ea0fddc3de7bb782f472f0f00e30340d1006c3535d595ea4e7173f2ffd7c909d75c9139783977ffff9f8383c3ca5eff395d0d3e876beb3f470b474b0e83bf51cdf1e62ca8b7b6ff6ab556645fbe6775a5b8e1327ebe41cdc9ca51f03712fe26ee06abc9e6c7e6c691801341744aed1dacbd107ef5ff0bbf5e80f938985ed90b2d1e9bdddc72b4ee8797fb9505be629d55e7c2c2337e25938ff17fe0ff25d40a2ad804f84f73a056f0e4749f73b4eea7c0c0ffe3d914b1446263a9eb95c562685f5e64605e626d6a70aebf20c1cde30e6eeef0bf1993916fc6f515d4e71e6c2ebccd87fdbbebe6f2d77c33f53758ff5f95f7b5959a5b5cb84c8d4ccf2b8bbb65dcec5615f6fbdb64a8a928fcff2995989a0acc385c5665d6cf79843774ee564f69fdffd6d75333feffb55a0abc568bfd5a4f35aff50cf35acf2baff56cf25acfcad77ad278ada789d77a1ebed6d3f0b59e7daff514bfd6d3edb59e5caff5ac7aad6781d77a0abdb693f5b59da2afedec7c6d2794d7765abeb653c76b3b59bcb653c46b3b39bcb653f0b59de4d776e6afed84f0ffb6d1ff1090807a279be509e2b94cfcda0091af0ddcf8dac00c084b393636413737abff395dff3852ff38405e6f8ec6fdcafa3ee19b87cff9def40f40154dea3f00d4537320fa0bc074b514e7e79c077c1ff4d4345fb34a9c32d58400b0a72018331f614a24b2e9777665e2cb415282e6e429e58b32f3e1ed67888d9c25594771009dbacb9ad4ed5b074d0f5e1eed2f30b226478e43ce12c49168dc470c48592b456a5c5846424103c0fe2ec071914d9084510b98b9489b394b45470c2dc6ea1e3c7868bfa4b6cd6415d557d803e751188f29820f324796470d5ca9ac91540c2232241550c72908d607325ec1b62406d65df259f373d2ef2f46d0eb90665409a34a9d2889251e1bb58b240ab3ec04190c7a13b3e063cb11cf0f81447ec81cc075b534e2ba14d03cbb4d72724514cd210834128a448103cd6734854f962ae899b40d44e60c5472b1c3833b272f28c88ca011a53d208193f3940f46e58e230b3282080916f5612dfe488d2d3e7dbdb408a2c13907b4c192485c084514d86946ec6cc081aca119e71548b4f850e26c0ba399c2490e2c1195450794579a44a1e8bd40136ba0c501108113895372140071f925386c381083360465489a3396e10a51d72a1d09a2d04f22052bc8604d1818f0058175a60029c156d2c04154872b2a51359de1a7e8309d4268079a3437a0e547118d7307f388b20b5bc836a842f308034b6e511238a974f4927499e743054fa54e6386259a2261be3a85b6baa82c99a06a682220308b82524ccc2d0f63833db054861622279b12335a0c927e28d7d8209483766e4009ab8a33cdb2985272845010d644465ad76b510b251f7b304c0b1a25da350f6e105c5ccc625041a28bd3a2fde80661ecf1503c91826d43764efb640f93952b8af705de376d6ff519ba2e4b357f81f882279b7b3760c21cd9a0023a0d32420ec8a157da170ea48b2031af6626e0b6e2aaa43a4929fb0acbabf322485c1312230f4d77007421ae54307aed862ae6446dda88fa5172fef3f0196448a8c689640b4c9335e24e3d0f3d9c683feb5a28a2f68009852469f322870d8de4aa32a97200fd489120356fcae5101541750509af376aec770c02c160487e18b475b75f11147040de26723fdc42ad3415ed706ad42b88792b1b2c13636f8b0028201cac754a2643a025cd0c1dda78502264a8537587ea918f202ce213356ccafc2528caa642a27a09d55c4bf24317f6aca4029d61c970c247cf29cd5281678a050d454312a27c29d2368049f9c10d94c3050c98c80fc36794810f81655ff6860244f8ae2a5969d24c432ab5f928c1924880942a1aa1d012d83acda40d47822c58834104459aad16214c507762389d110470b1d8f5faa1a44dc05aeab3a84391b243e299958a01213283412c1a44514e485d5165e24900c296cc035d981b18cc9070270da40a54372942a4a9762febed5ba7e6e6e44075417635d24ec3095805393179ca0a952683dd6313e90632b6115301494a15704101a41789a17ba24c6ef2bb89f02ace4139bb81d3e708a3276e685543f1822303c37652ccf6a50a057eda1c599862430fca91698e123e670810e28ee0b518abbd8e64ed1baee2007f0ab0b2b688f13d094354a7404104a70c2e0787895673c911bcef91980d3983518db1b01f9d68807d421404d9b843cf20ccf8c49c76f8c974a06d516bc3202d5ea5c07e99e47323b2eddc3172c40b9fe200205b71b4c1497245d09320af24259b4b1749bcbe2a58c618f86e2d883c86962c741084a8914561f2426cb428b508d00836d3ee18bc1307c807b93b202c2526d8b595b0734372eae2b61aa742fbb3260c55c696958cd0bd6814cd58acc84d0d89a9293c16a66859e4e2c22a401c109a50cb27938c2904100496c17e0612432052c0c58d79a0842f75bbe7a0028c20443d00d4888c61006b89a9840b73e0280880822cc5d810ddeca2254721e8cfd30285a1ba0a461c97275932c97357ae54618185c8c88862240aaf078564936767641ed694ee2675c8199902434b164f094945915e8452dcd0fd383104a83103b3928a94489fad86a29d3745179823dad43c71c8b019941403acf8a4032d481a1941aac2e4f1680a1d500321cb8f9e3a38e3caf77d5e62edd2561d48c499696795015d8a72950190cc089a59f991742604132752729499d121cb83a79ce454082e8810d01bddaa439c7db7e6c12f8a330182c82dce8e8d0d1b485e2f64a12050ae52e592709e58d623b261509aa0e0c05c80c49d2dc127d4926a4d1b49051380141d88fc39af166101e308f1c25683981e384709a1b51e673cf8046d4eadb99d811fcbaee3202a703dca6ab4352e9c92b290782012a01e1b43a0d308746bc7b4c0125432f9b0931306192a41630307fee41e212409a73be8e951e2689944e580e36228a712861873c48b0500a3acd614350043cd7478aac6c811428058104e8a2f0f888a37703429baecb68a656ac33288e076cf11e884b010f456da5c452360f85815f42135b581c989b997a20728058710ad686571256c483840c8e5ce69284998bf4a25bac82d125739ece62a7510a1217065860caa1268ad489028279fbe400b34f30e7b862a1891e64c19cd10750e919db98eb15cb1c1aa6952bf7a826c238a20c135c60e077a47b89e8837681d3da5493444d8c0445e3902dd2491040da82004050596a9d60fa6cf182b6827c4c460dc5a7625b9912914a42d06e6d748ce6695642a25350b21678d036c147c4c16bef01292b33c314351c6040821d2daa0ac19a0b1e5eee8caea781066a607a80c0b5d48dd9216dc40b6842f2410844d4cb9a38bdccb7aa11ce0e3b84698a5f0f38296c0b323f6230b9e105f04ec1e2495c06bdc5491030903e65a0f2a915630f2b6b4047b36d865cf7653a880d98014fd82117342b6a7b17d52c7c6ac90e8b0a4e073b3410446d6232a3a4a7076109240ac61f3c9cfd495822c0e0e15a2715ac7a5d318a04f8547c0ea0c8e1b582470b41163663451b5a54fc45101cbbd323f0b96390f25912ecd9ed5a012272c70c50411191e204533aae13288768d2197c0f088ef96d232562d6478c5180d7e62d91c52e943f3c69e85cc07025e047577460d6836ea00c3b579a0948d11401ba8d8452a71c1e78a1f5e30f236d70e8b364d5108c14126c721469b8f910f0426002d5185e451e603162593d3b22c08584c43ab3c0ebdec9166c059498d3694c16c1461751973040605431070ccb427c00a09a0bb342aa5345a45c78860232c609bb60c09727170434b74e2048abb81eb1100545cc07c8f8b87ded36723a3469818a1fcff03076e3baa2a234fff5857546446743e46852256ec225a068a68fdff0e285504c854578acbe5c3d3c75f5e8163b3d96b8ce77b5eba0374ee76c6cf389b990ce765269ff7de0ea2c60e02fa3a39c74710006f7ce3f4d7197d46eb6a613c27fbcbd5c2613c2703a2999b03df7ef0479cfd23fbdd7b6fc7c97c5cb17d54d0c57b6f3eb2fe6d1f78d9ab8711af0adfc3ebffbf1b2e8bf9bee1b08e17c6f3bd3057385c6626c385f17cef8bd747d6dbc9b91efe1debfa5d7ed6f100c362aaaa34d7ae95a775311a3f634da52995c467ff59545356715571f9f80e87a1c3c9d7d651e3adcac2e22a3fbb2bac1c567e3272d2c4e4db2b88bcbd02c6db2b1cdf5ef1e1ed1518de5e8196acf2b62493b72587bc2d49694792df8eccdf8eaccb05c57b39305c0e0cff63ebe8deaca36d1c526fe3b8ff6fef1b39478bffb141383f59466fb0fdebb6e4e703c8723e8bf1adfde3c4491e454e469e88a47073dd58276c04ec9ccea38d0cff7e7f4365d720838500600c56ee26131b77830a877dcbe1c4ba01486d7b8065c399cac15cc3aadd840288c2a62100f022cb6ccf30838793ef2dadbb2c263f3939b9c9acdbf7f4f4f0bbb470fe1f12cdbab98f50c60f325941578a9beb95f133b72cc6b9dc3b3e3cae8c43196319b88c07dd1d6aff7e65d8fcb781a1cbc2cae9c0bb3bffcbcb5078579c36fb79e5e57af8d7ddddc7fb8ef612eb760b1bff7b5cee949fd74be5e7f58acdb8cd22948510122f6c161958bced245ed82cac58009178614392f9ff2e240eafd70b09f85d3c48aead3b30e7fb9a75f4577fe3dbf1b7154dfebb65bb5947e7e9b28e4ee35f5b850e122f5690de765c5178e6331717fb71b95cbdb2584f1fdf8905c5e73b1c5dfec3f7f6eedfdf5f9eef63580bacb06eafd70e9ca7c7781cf7f676a9a6aeee5d8c16e7e93c32f018dfe3a2b2c29a9a8ad2babde27b4700c6d686e0cef5cae2bd337ec6cf68f1ddd90e6cc6d3d4bc60badb6b4f9fd37a6060ceb7c717ceef3daf2cac976f35313990bc07e67c61fc6eac9ff7d0e9bb7c4ee7e978613c2703d3d981c339ddad571687edd0f86d0706c4d3d07bbb1d386f9cef61a63c9da7fb9846b81821c20b75a76dca34aebe1b16edec1f17fb35261236966f2f7ad7cdf9de6ebea16630d843eb8d1b7f1a756eef3dc3e673c29783f3ff459c10b128824f04dddf5b50df1967dd0e4189f47a76886dd78f4c46e77958572bd3c3bf400048c368863194d113ca8eee7e048135fbc796fd63c9feb10e1801ff5f0fffba19e8e17766ecc518dd70deb78f17d17e2cc6d137764c2c0ceccbabab01d7d63f56eb1fcbe01febfdc72ec066d98adeaeb89ceee63d85cba09cf2f404b7553937ebf9be5dba0707ef707e6f71dd8383f793d32eeee6f939afebf5d0e4a1a7839a0e52be9b979fef310fc00e8079f8bed13b6475f8f9dfc9e9f2bdb5f5d53a3412167698a1fb751866c5410ad7e6d0f8df0df3fc0e073d0e56f6862e1b4037586ee8f17fa371063717f7be51a05841fabf81c5869bffbf01f1340408ee3cfd6642e73bd3585c167773bdbfee5378ec747bef5cec6357a8f3ba01d2ebfac72a58babdfbb99bdb85a7ff7fb7bf5d18f5e7b318978c07a8e7f592f1000997100e79a8db0bfc0616ab613dd3c5d3c3371b199ba4207b308f8acb35ef78bb985ce6c577c6c979db5fae4621c7ff7705b50826665db9b9f10532655ded3b53d6959b9bdeddbd0bebe67cba5f1e1eeb4eddb27737d0dd03a39f9ceebb0bfe23e365f48ebecb3738ffbbf3c4677dcc097cefe5e71c2d3e73773cb159c7139bbdb4f274fce90ebcbbf1c4661d7de36630d79b1639c7f3742e3aaddfba1ea0fe7577b965311ea7b395dde132ba7ccea1ee2e18ecf684a3f1f001b2d38d4e9b9f9ceef118ef86950508b3f3a4feb158573bbe17d6d54e9831f8a1cdb8f9cd9c660e334799b966a837ebf75301a7a702f70d55e0f69af51baac0ed74dfdedb8e2e0feb78baaaaee5fff63e399dbbe53165314064ac20bdefb2541967068a15a4f7929a181b9b17d9dd261627a67687a1c1ad91b975c763b0cde78c43c798e3b77198f7b6f96efeadaab054ff66719035b6d8d643b5f5406d3dd03dfcfd7ef3b08e67f79478bb27f1ed1ec2b77bf4b77bc06ff7a4bdddd3f576cfd5db3d4a6ff7f0bccd63e66d9e2b6ff3f8789b67c5db3c876ff3e06ff340789b07ec6d9eeedb3c486ff3fcbccd13e06d9e7f7b67ccdb3b9f6fef50797b67c9db3b3cdede79f1f68e88b77734bcbd337e7ba7eeed1db3b777b2dede81da21da1ed0f210d96d04de6eabdf6ec3befda0f5ed07a96f3f08f3f6032d6f3f98f2f603256f3fe0d1b3c363b3c5bdcd4666b3796db6a6b7d97ade5e737d7b6dccdb6b9b6faf1d797b4dc7db6b27de5e2b7c7b2dece363ff18a59dbd9d46f5769ad2db6901de46337d1b8dcadb683fde4693f136da89b7d136bc8d967e1b2dfc36dadadb685d6fa341bd5de45a86b6b5cd9cbc6d46f9b6d98ab7cd10df3603b4cb6cbc5d66e2edb20e6f97fdbd5d9697a1bd5d76f576d9364b844466f43659cedb0ed48c2dbd3db6f3b618ebdb625cde1633f2b6188db7c544bc6da4404cc3db62806f175909ca2ed53d769895b7c32edf0ea3f176d8e2db61e5b7c3d6de0eb37a3b6cfb36589ab7c1b0bc0d36e46d30166f835d781b2cef6db0aeb7c198defe7a7dfb2bf4ed2f256f7f4df27c91d2919201024a43b657d1db5e3b6f77b5bedd55e6ed2ed0b7bba42c097991bced6df1b697f16d2fe1dbdef0fff30c188080e7eda7d3b79fc2d84f9f6f3f49096a2af07653d1db4d3b6f37e1bc4d00cddb04bebc4d80f36d024cde26f0c32630f975ebeb2855bead34e36da5126f2b21bead44e16d25f1db4a11de56527b5b89eb6da5aab78d7c6c25a4b795b26f2be5bc9d546a2781be9d34e5ed24206f27a9783b49c3db4941599e9e1d9d2d11908db4e56d242a6f235dbe8de4e36da4186f238d781b290310d011e9db47a06f1f5979fb28c9db47946f1f3dbe6db4bf6db4f7b691dddb466e6f1b8dbd6da4e06da3036f1b15bd6de4f37691ebdb45a6761197b78bacece8f42ce50488f176800f6f07007c1b5bf63696eb6dac81b7b1436f637ddece717d3b27f5ed9c336fe784ee00edf8bcdaf8fa15f2ebd7125fbf76f8fa75f0ebd217376b807cbd26f2eb358f436b7cbe5693e66b355dbe5653e56b3546fe3fc7aed5887dada6ea6b35476a78be6e4d7fdd9a7fdd5af775ab5b6bd9d7ad5f5fb72af8ba15c1d7adf7d7ad475fb70e7ddd3ae0eb56013b037e401a9baf5953bf6615f3356b96af59a37ccd8ae46b56c9af59517ccd9ae16b56f4d7680e858056d37cbd8a5aaf8e7ebdfaf9f5eae6d7ab4dbe5e25f2f5ea8fffc7f2d4ab585faf1ef87a75e8eb55ecd7aaad5f93caa98e7ead5ae56bd5235fab4e7eadbae26b55c6af552bfc7f8f4ff6078debd768c47c8d86cbd768ac7c8da6c9d768887c8d66f26b34905fa369fc1acde1d768c6433d3c40752a99af53b17c9d9af9756a9154caaf53537c9dcaf8756ae1d7a97c5fa7c67d9d4a26f46367b75a54215fa3bef81ad5f16bd40d5fa30e7e7ddaf7f529ded7a7645f9f5e7d7dbaf4f569fdf529f66bd3d4af4d43bf36b5f2b569e6d7a643be36e5f1b5e98aaf4d3d7c6d6af8b569dfd7a6dfaf4dc5be36adfadaf4c0d7a6455f9bfa7c5deafa756999af4b3fbf2eadf275e992af4b817c5d9ae3ebd21758bb34e9ebd2edd7a53b5f93a27e4d3a5a934ef89af44b2af73529da36c0ce19295f9f41f2f5191f5f9f897c9e9d3006be0e63f475989fafc360bf1e6dfd7af4f4ebd1315f8f86d6db2151d2af453fbf164df2b5e88faf45697c2d4ae26bd1c0af0329eece8cb1d6307225b763ab4576391cc86164baa2cb5465f7a995851187b8a20db5a6d381a8b65888268574454e2cd30719d2103ec4cc0ca502456d2d9f7c02bea446d2df092c5ee75a9584ec2f67bc3b0ebcdd1733a2af14a2d092125d6cedc6f4a188d23ce3c95c3d93dc9a2f04860a89c0a5c8961666175c0172421faeba6c247014bd7e513372c103f953890cae16952b0471a21caaa700accb2b11b60620906ca60c4953b6b6108f3c4c0ce5c071c19d9a4a44e8f6f457ad2a090420ac296dd0069a89b227048e62214a8920c9d82e7876c840671a68557f6061a8825c168f22b4e7982e497a44247a5901e54572ed6e20f17266f47193c6d6ab166d81928d081daf00d395c67406eed834e49a86ddc21607e6c193118a658aba6000ca345339db017f78f5859de5c87860157d1689c9b64530b2c7c3cb8628e3304e6b4816c4ab93c2939bb1756f41869c0da2821c01a52c6a33ad0bf3698d8087b451062b262f33d0106f40f19951b802cc4c8d5337dae3ded242e4dc01e2fa254a69d0a3995b123025f05c086935668ee13972c40503c260002215151ab8959f5b04a3d41e1e1ba318b8f0f9a240ee72c7f6ae415687100c829a0b673656216caaa4517e94e52e878e9b0203e5911f3b4c374268d95a2305834d8537aa36609d51c41952d93f325629a429c7d52760c81b346f0348883252892ed7bea8832ebaf4c59dd8b45b90493204d9c0104d93231e07002908654787886b1039c9fbead4aa6d4b2e3d93bca27efc1625cd26784a117dbc408bd85a1580b17a2e35003a2082261406c6b4509d98315c272363c09471040dc1ea4990d41a0448e66515e922f46c6d0401b2b0ed65962590560808f460d36a50e302a402a12a5db22a3c055953c2a3e63588e38eaf121031ea7f29412b53e8e6abac49ae44f812e35f4d70813882888f34e02f2686d228f72a3b3361b4fe3297e0a24942405c4fa9963910cb60b2ea5344c96c7f88d6fc9c4931fad9c5d3120d034fe429da5093dd805dc67074d2d1bca7496ae9028845ea0fa1a63c3723837365008d38f6287a1432f7c3bbd5f6440412ade2b312d09a493958d2b8a67393c6de969daa341782740caca00294598f2ddd395a2cb63a1a756d39c1a0163464cbe6491800442142689db86e5d71fa48ad71dcb9a50ca5bf82cc99e104425c1f4ae0d02aea02b28362246aa30a605293c1025fa0d03801a386b06e3be309deb25033066948882d0d249a04759ed63bc644d71c86969831a5c0c6952311491e7ef4ed515ee422bb05d3c8c3da735b6645ad2bf0a4344763a3484ace9649166844323866e740862450764e3d207ddd68c16145376c0b0c165e2f636d7ff61e228f05680570be3c48bbe431a53344b652801d1333d2a30f349737814fd917129af41de78ebb460840d63c6d21fcc2b157ed4625ebd4b408315913641bb68a22c4b5cbc811ee84fe5499ba0b0c83044bd28dc41ba6782424d183d1148b9ee3c52da28b224e6a0476384057da31ca48cf422dc2e440388f16c77678a48600a78a4a7c3f029ee6989c818e100fe9f0fc0825623a932b6f2c1050e18f03d802174c90868c1489744b99789f408daf98f4c80a05aa7732211c19470de8409a009b00dc8348c8a78d235781a15a685408d3b4f18474a804519c15022662ccccbc822c819d0340805c8290c08d83e84d4e563bd7b4948ae86c7ae4c0092a2964e10035c4164ca5d5a258051076a7c08405ac9d9724d111a02d5a1158298cbe925639b6de901b56456ace3c206d95f04a614319114b14e1ad2d51a0f3409421156616041dd4b4498520311f5d341431914a5e2269206d5127cfa8451129575ee998cab6b8687629dc376b232732824e6879040853da18cd9f0283706892f1190ab25b81018910206238341ea1210a9501e17167820a15268b5a6054d62e5aa4ad348230924ca7c7bbede3327b6441550b988c3239100886387d2e597094469c3862c1ce8c44a3bf113e549a9676b752530b13ad0d9a83df1a7d96627b59c44b1ba12bf05604ad21823b00254519a448f498d7c48a7098c654381e424c0af690a729978244481c6ad8697151c2ca5d764d109f05ad0ecca898c9517814e8c723e92e8997c5d573d003c2514c264e43ce089dc51cf270c61b64023d1011518a942b21a561981f8b7208d6054991a16cd5dc864a403a9dd446b82c9311214e356a8b5098d050cbd33032482f1932b110893a943c599401fc207bbd84b12c3a62047b1011a695a600cbe95515ae18aa62e632c450982b42685af647aaeb971a6005c85e406c535dd8b66688507d4d5a8af2a0c9aa8828cc0422355d648ab892782c1c5d5066880b87c321cc271eaaa8b2752699d62620caf1584b994bc709b5534c27bd145354e9606804a1548fcf5b089d1d459d405a9c8a9f96354606f469f1825c24c3d11564e4a3a4307c82056a0e9bb406e4b9379250a8d3c4bb28e660c1f1466617a7d77e9982647179aea402a52ea08fde1f94e1c00e4a48bacb192fb66498db50e18fb030c8bc552de9c9c2228c4d7df15ff3f92005ab53d14781922d0704db7fd09925735108cf3ea861ec0280eefa3fd2a189667b09e885bbe30464e5ffd7a980494021c13c883c39d871f9ff59bb340a8a88c0a866be2d40c27b2a4552f7a2880d20a9b87d8103eaa319521e532b02ca2c942a086a1639922edc1d32da3fc0e4c446611c29592a6459a304de5d7a88f72e5ff89949da85041c164793a4388ae11cc401e404d3b58de185690cf3112ca941e8070f1e39e57a0711004a1fce1cea4c36b5614272cd2d804c0cd369a5c214681a309b4b83350e884629652d481d1261e90b75cd6023da352489ea830ac70a08220228a71bc6c62240b0402c29286fee0d132e66682a009146c1a65d095114aad9e50c9b160712208fc42e08a160105b4647c87a6a9756721a38218390042a00ad70c4976ac0aa1692248951eaf14b5751638bcf427e6f7b3343564a85ed84c3ffef1afaffffffffffff7fa0ffffffffffffffcfdaa813918c238b0880c07a6695c1040b1bce330ad5c1a6994c1c0a54d8c020d20429811b83d2b927620a1d73345cf8e90e66190ce5f871de3a166f2f7b5f19a14f8d89056b45d1e9932acc115b9aa3e783a3c135b20e3976d4af2ef0c2f84d953ce8498e0f713f3f66be4b929284b048a2547b2191da0851258caa0f1831f89a5c1d309a928f35ff0e43d3301681b0422cfb82ee3ec3d8013c143139044e0070c5ca411ba4c456800f77a614c2c825d100f6376a848090a7cc1c04479117491e311ae1ba00a5513c2009269d66868206e2f088c70ded82a91c27c059c827369f3cc410f04254c4a110e9f5875df65f722ec2919d9f408d37a814a9e2f301f2c96f491219017c4340b270d0995099d2a9b2f21743c6ce12a2d1074f6740960c31ebc21cc1c806e507d0141590286f47586a7b846b04a92c540d6d19ee813d1100eb72936290b3c8520522b4cf2fb7d3f150160c619e3e66c27c2a41dad951520745414db550b6c60b39a1243e7c53484099cd7a7cc81c5323868f2d8f2c5649ab8f44bbf0141798116ce1a42e71877f823074f4902d4548ef0b42a1343fad59a48c7c069ab1c0a6a61850b677151429e4a63410aae2b4c95c2917929e742c84492a51e47c28486481612db25860b03521e318e8e02b50493b6b02c666f479b14686a59c09232cb0a02a86ac404267d5b68274942924c52433b1848ccdee219ac124f8b1a2c7113ef90e0268b26f6ea429f1a882890885d4e5832e877b84640e54cf05599032aa4d8c5fa6960006a5d942752de949a32bfdb22c3638daa9015528605365a43225cc10882a1f2f3e47b5122505aed20136e0cdf130a4e23825489181a3022f71d30ed76d90ee85059eb6b4c9859c202464d0352ab4999e1d841895b79836c45995cd6de5387255894c10d404e64a442aa8e4e612021602849d396acb4a96aba710b0a4f988c4cbb4122c1461cad8e1432aea87458112818e117a300111d191d25688244ee2a330d2669be3ca501944007a482f925c7d91206723618b599153192515bef4a48249e041e6488f115a80e61a1dcd8b4e40cc8ca676b066916a0ce9ac96683a4c451f59b8deaa7130b44488ab549f9f385860684248e30a4a2d829219340d4a6c3a76081d822474e10f27154a9d132502e60856170d15d4948714585bd349fc06641f86ca1d447c6c9509c3a01455275844f6219406f846deb337e28510e109276c640837c2788e5f9d703b0e5bbb6f103ebc91e585db21976920e56812ba6b6dab461610697b13d4706c99988474664c6df07089420afed5c7d5b57176132a5ba35cc123190245f40036c9620369c88627775958fabe945095a2b906445c9604bacb0e8f836854619a2e1b24086ada5a416c682162d05609401c0fa0214244dad1be003126c39c176bcfa6f4748599ac81321b3aaba87c24b9b3b1519005965a4fce1805f1fa9af310b4e0a501fb667a545785a987e16b03262c4b20c03810d30daac449d5f1f3ca21cd84b2358a8ca95ded94e13449c4abd86d418b05ada35d54231d31a2c064bd82cdd0197029d8c59b23684d8696335e567828cbc10e417b12c6a17501e20a9f278771e718d918f2876431e2f1335b52850659d6cec2e1f2cb3c0012c5342324acecc98eda68a3966f74d32e0999c00757d7a5c6d4a272a80b885ed184041ab00876b0e136cef64eb0891e01ba40574520cb64766be767e94b8511cb508bd2573253ea6a276954c2f86072f5439479c3703467c79121eee0450120376d404a693fa5388ba5511e9d2c292182057ae8c0ed56266c370386e175750bb0c31422a9d1bdd1118c61ac845fd1a069468a2911326160aa4c6d2a2b6c700aca23172774e30a442a25162c4933a2abe3003d486c4f58a2d9997e32cc4d6081868380170c928c5451fe881191eb4accd04e4e7acc84b26eb60ea68f4a79a7dae109c343b52dd6291ca9831d68d0c684a0c8e784bba4003a083711854a7f0cd4e0a16f86a5c92689a218a307193f1a800872e460108f6c3f9c335b5846a39be6955d1130d70b925b06b550c229817b99963ca2b216d465dfa872a8416931868be15c8e2d0c04b2d4611ad8b5b8701603cba71452a21732528e5c2c5eed306d61648c53d3447a340a2008cc020b0652338b2260d995a8b34138f5970917f38e2d505224a86a3a498c0033520582c50968cf1c14aaa95676d0db182468c5e9e6d191134264e7881f5ea4d062e940e5f433806c43c98ecb4c5f4f12a3b531853ab24f046845ad146bf43cb00a0a3a8d8a3a33524072b2021604646d47b4717a9ad6a4c928a223163fe82c7a7d45913bac40c0d4793ff130ddda826cd2806c70181c8a627d91a9c2ce8a9019a494214d311d1183d51e570da9655ba43200453c38393e3da0092a3c707694d0e42806e4e0c25a821e589a98e194c1a248930bcfd0dc5d17342f18b76a284ee980279e5023d2833852a651a669a9348c0172a6480ba5cc1a1758e04be0088607f266f0e1f020f46906e28527a567d62220e413585a8fed2612968f5017a1b11d7197558d4b4d4a3ca1184098c862620b8612ec0a7c220bedf950f1be1eaef8d13272b277062474fb95dd805964c2922a3b4c452e48986197d456c269304a0c90c39331fa1d9a3674f65445605a0a44be37d01d05526039ed604f6eb0590030338660fb792687cdcc87f428234587b1a74dca15b698252f1237642d8c5aa633b31890e2a56c2ac4c0a6159be9ee54884bcaa48623331c7c521f2e8fc4b4e2e0f4c9e01903cf8e4e4c4d0e6f36ab254d5480900051d7a2b99d216694d4251a598033e59ce06b20cfa8494ef03bda0ac4fce1ca2d2248282001130425424131c649422a3c4b442a16a84cfda3005503052860628388212572e078d271654ed5a851c78ceb8cacc8352a8a50953c4ca683b4348cf83e1118275d90c229a2c78d322d628c343d4ec70e0c10d0e0f3e3c55c6791194620e1490710ce44e6b5e53d31b7015d29dab798812a3122b3c86985aebc2aed001c4893868f2114b8709082d90c8d14a1b1c2f1bc1588cce243470630bc6212c86c74e5006589441d32d63d93cb0b94a144a6267d2c86e803e8144821e2f36849842301a1cf00a8264e4c7392940901660ad443a1ebb484ced5880de6384461c2df101016561daaa6ae66a4210b5850886989b440804a3cce10e1699a6bc1f69a119422bc9138e0824f72916b1e106ab3532a6402ad85730901b4c0c13c2c940a32feb68521b46aaa914a253a0d0f2fdc53de925460a168c1a3c401422adf092d68e4d01062ea72c3c8510878c30585163068b8f0608f4131230ad2963a0b5a04c4b5219e3112180b6e375fe01e193ffbba4c587e38642781aa70890267210b620c215798d0e061d76975b28021e8f2a0cb38de59d0c88454557406542515c517412b0e3e015811641b9096c56408ac10650cb6b297a4b5b28e42c6038c0225b8e038081470018d97c611065149b5f21a2c614472675e7660ba0551313b79902341469345cdc5329b9d95da01cf6b3ed6e3c1902a275565a1e932234e290db84ce08181aa50a4ebc82e846390de85031c94b8f44e297f8741951458688fdce5d813f5d9a19264c484faa9a883d154103b24f7144526e9ca248e3bf00440afdaa213a81758b568345672613b0aa2e5ca8277f5b9f081588535cc891704c4142932b2322af2c0285fae86bf072a14e84491631a084c44f32d47ae0a3a5a3f4345f0af5533ac5cb83edcf8dc03ce8488ce2c10e103c18f3945a92f103378b46c025d6150d326b843c1ea962747013a03640c7d85b6ea11817354b5943699663d6c446e2abc5d9f3f02a03b976eb88e185f28cdd07039c58e21a02d28ccd71317944f8430dd525cb8c1444995b3294c231b1efc36c88c0c5e2204fa204372d59292f1a52b494c88184753db0245050833b5a66c61146a73943145050e5b4aaebc028b93a0687be00bc4126c044f3564b331261852b9244d096129e050dac8e0f09133307c3a97dd1269d385128d1a18577701ce3eb75b9b84dc0ddd9d551028172a3b24696e4142a240c6d2d47b448c25017182bcc41130b2e49d75330c840a48dc5290dbd6c2c1d691b29ab6256aa867a3c6d32892953047993958e00ff8d78b4423e55d01330241ae5ebcd440a8eb3c743d221d22a71657173e662994d159bead1750642497c61c2581d945664136b6a727eb00e784bca01061cc98cb6637f02e9dc0b6a25f15b4aa2f26f074d032a7a692caed7349e8364a7fc8b018f936496194c8a86618b9d1a027c033964c4a33697d7f0f363cd02cd5ee9a8b8c5c2d9e409f5c29200a064db2488a932ab49a19e59c8d998e7f7e7202591a423a4d9a99f4010945438a046344874e950ea9b420a8fbd2e1e600003f305c8aa24427346844a3268df99a54d2087902c88eb4859e10ccad08370137280c868287d2e34c1b1bad127e1c705254548704481482c91acb3a0d56de54911bf2b449534935700dd5e30f24af44baa39851667684d244723560712a68a8a9e501e11054265b56b9b4281ecc734a4e1a6168e1f6b12a29905c0223f3e87a458044790384f22774c1895593a6034a2037ad2c35665a18b0c533f4522339e543400fe613ab2b9e9634f8cd52e02c6cca7cc0000d48c80a29d41324dc49264b94fc6393fc639158424981527aaf97ebe9860a9705e6e5f957825d479b03cf785f7c0fe3e508281f7b046b04814e113d8fc83f7688900f52f98f0582fde16445b943c73f36c73f76128781b001b2029705b6046610f0f0af77c6d15c4ff99d93d80a2b8dd6c7fb931556fa86b2c24a3be1e59de3be79673faff79c9bd3fb121233eef57ea7e2c6dae2c6dae2f63dd7bb19ef3bc63f16c68bdfc3d3cd62f91d7e97dfe15f6f5398e4f5ff63fc6f4155574aeccbeb0b2951458ac77face33f16c509b319ff9a77b6a30e6fb4ba3522db167192f8c78e68246223b2da6e936cb3448400f18f65fcc72e2a5255a5b1a6d259e92caaa9b41596f8d7b636d48befb2a8a6befbb6aeb4f99c81e2f0fffed1b433d27ae2bb09771f00fcffe2f158ef624dc19d73b6adf6e8ff0b0ccdf8ef39376f879ab6428c5ba1f47fe5ff4ff07acf7aded136ebf9dbec8fffdf66377cc5f7d7bc6f81acfc6f7fc2db1fb2c47f2ca2877f355c2daf2ce6e695c5afafaf38336c6eba6e9c366da6d83cb1b9b471b1e5f17a3c3feffce870c8e11fbb41c3cd8bed8024ff79762be0703f7775f156e7f2ebd2e7bc74197d97fed9b9b9b16955dd0600a09fcff9385d26b3c57afe3f788b15f25bac8a2d96f1ffcd81e82d76bcc5de45c07acbe4f4ed8572da62a7b658a7fffffb46e3f95dd6cf3b4e2603e67b7759afac8f9ff2ca626e5482fbacdf6ab8da8dd6f59cee7bcfd17aba2f30e7cbf9f2eea7b12929a9741d574a4a4a2a5de7046622b48302df5ef07d97cfb8796c4d6c11fd54cec7dfbfbcecf43de37b78df5d7c83f5d9de84fef6068ccd80bdf08fb5f08fad6068c8c5c9a98631979086911494b422d155867e975f9a10607c32fcf23e285fc05269d883c02814c02263e1e69b972329e72c852d6aac9975d17529246b39abf122700a15846a1d7efab110e768cd8213aa9384501a2feb9e12d1084dfc612797b60610e285e0335254820161145b641e63e9ea206b4fdc8f1d95c9609201369620419035c8a8d3812fca5b9ac139195f635b0e68069b3440512188fd5220e5dbc9d19a8546a132ec1343820f631434e080b9e9b04585025b943157de129d148ac0882da9ce4910fca2018011940343c11c0ab006098c73410a881ec05992bae098000615b872898241906af23c449a033dad980cf8134c0b8cc1b8824188cbadc0730f5ad40cc8a940ad2e4286e8aa0b81018cbe9cd4a1b101a43278653693a0079842c4e18e1a523000f568789fde4e7f005295b95c02b264fd732debb2125551f777e93d81844ce1e49f88bba1c7215406febe386fdc560ce63fa7287e88518f11fc4eb124689148a8f52b72e47382201ec4af83de1733976a517e6f6e491020b912fdeeaf42493457cdb4189c355d869a94a629a3b8aafde91849578891ef8420eba5cd5c58f964c3b193d6ae6931dc8b68a1b9f0e4a0b27cc543db706041cc14132ad0692a50e0d0825bb457ba4f0b9acb21f4ce992312723136ec9a10bcd8086c03b0b300edc1c4042d651fa31802e0fc6661c7ea222585ceefc97ea3f6611ffcee9c9f9851189366cac6b94419b343236a87f35d91002cc0d05839735dcf8e2b4addfa545d2d6ba20f9e7d48a8acb6086e7ae953ec51b906c41c5f1f841051535e43717d04661438f25a82cc6776ddd1aa318c19c893012d921a6fe60cf798b0c74330339b990889900a9775867ae8238927e4da893e4928d6d794ddd205ef7478603134ea62465e047c8f7e3a509746334208a1ca9d009608d3e09f65188fa2255a2d1896fbccda3ed5e89d2833a89154c53d2f96b14b392c3d58f290a798c98f6f7590105ec090f368d8c0fc5a1b43a65a8af33aee04c66b6e0830aefe503066b2641c82b11245169329633b4a3b248a3c17c607901462ed6c5df19dde644ad0c308f888f01dc2194e51f105e173fb3381ea1427c53761748c4d96860f0326ec3863c555f0426782e1979b6c0ebb4f289b3024bef17519c723067d43dc830cd314d7b83f7b9e784bc568d1ede6e65d0471d70fd0c848351ce20147f40425cd72ec5dd1d3d03ae44a843d164a2aee5cc3c8f6f8f6aec6e8403569dcdcb339ac22a7f327a4e7c427a95446d3183d127d3a229041eaa087a32ae2206066450faa92f04b4ed8863c34ad25c44c4891956779f76926c8246bde8709afa15f0b8b7972874e7ae880c293c75445737571672b37a344244221209eff20cab553aca33906071980509990c9d538aba8bded43f95632cd09b60816f6324415148b072b8c83c45c9e10d0b870a0d8509bd40ec070581808ea4af5696f051e16d038085f5dae782f76008e39ea51e1991745f0e1d07004cf6bd826f6a54514bc1caa190ac48cc2b89372e7c894f4fae5addce5945f4e64781a775378eb6515d51d563cf8122f18d4629d260ee2f26a48034240bc0e15376069a580ae0609d8f4ca2fc35c891bf0103007b5c82e870339c06d30e21057b4a18291aec88965fa28f315d5f2c927e05bfadd617f39e3dd71e05b98e8626b37e6fc25335f080c1542f795f04906578bca194aa081ad010824eb44023a078e0beed494d02541002419db05cfda59a92097c5a3286d079917c9b5bb91c46ec21628d98850b29d959cdd679aa99ced81754d3e8bc464dbe8ea46189205f1ea1cacc3a92047402993aa4b90468706a76eb4c7bd4577e4d1cc2d09981274895c30200c0624d2c5d131452093e52e878eab22820fad9182c1a6c20817a822a445b05b90493204d960aecbdc8d39c039b023733e57103821b880a04358c00701c019392989722740e5c215e4a4e2d2c429319372b0a4d1350e441c5d36ae8013d7ad2b4e1fb852736638815003b820701bdace7882b72de01e749ed63bc646e1dec0786ecbaca8756f3aca240b3422217c237c73b087c863015a81b76ca5003b26e624372d68d2779c3bf0dc64acb9ed3c6e5c37126f98e2926e3a4d6d5590da56b489dbacdafe01a6e083c6cb0760f2030474363d72e028b0a5b21961f3f06583635b3ab13666ad47bd66610d6d4dad8b5a248fdadf96da5758ad276d33ad455a392d2b350de72ce6908783408b829486617e3442338186871675c67a9624cc1521344de88c91c65904afb3262866a46695661acc1e18f928290ca3302bfbb297e5a82b1b2c1b2b4323f30c248b81939d45c9b6f09e4a91d4c1200be0808a03150ef6bc38a81a731dbb1c13618f7dc79ec488a18a1911eb7023f676257683081313c623ac42d859181817301b607e605e603c5f9a5f2dbec8458d2d1490f98dfeffd70de4f77ef2242fb199012f2bc5ab9ba1c2ea0424878b5d5d735d4da4aa3fd084a52a5a61a5a9aad25969a9eee9e3ffdf50a96c3a5f50a3fc7f58c182a9ae54778a9b87cf794e4e9773334e4625fb1b15eac1a83c60f0a9e769950fc4cf671cc7d1e272fa1f1bf88f05fcc7fef915399dfaab2e15371fa3efd236ff58bd4c07fa8448a87029500903161bad5e43f81c73f61213708d951ef8b4194a82b93005c65aaaf78b8455aa553e3dbb36ae2608a2774343862632184c100046ef5408a68e5ee6cbcfb81950cc36857b2c99efff099c9fb1f4f24bffc5e708a561bf9fbb7b68dc1c1588c68ef9f6b63d346ebec7632fafd7c60f919649dded686718ff0130b0b1e4c336c3699be9b2c9382123f45da92de500353260836d805ca6cae017188084903038c73de2a5b9155021a4b1ed655152a104c3102639876450dc8c50d891050dd1d914aca9310072801dbf2a124f145687b46448f8408ae3612c20411de052541a20290d5fb8e61ecb42ac304d828b122f8944b558aca9e312a62903202d8f914bd7d08f356ae1b221ae7772582fda7a2c3c9088359c6c5ed7dc087015037a13455ed186bbd31d204ae824403542e52d11c196366beda90e0d5825ce4ecfa7868020612056ce325e18c1348242dbce4b2cee7a183dd1d559a2363e18b062d8aea20090d356e2084bd3a6c715252bc82ea1015664d05d0129975e64a81a8047a486be4a203592a265a14b1c18e6f5cf9cb1929959547749e9e555323193a3984baca1d582429093530d632e57948ae1c265eb6d8d1ae6110525ad4874d5910d1c9bd620dd50747df9a5090146272f426ef4d48c28828420eb7d50be80a5720dd371035e8d57b343240446a10016190d67ac6ee66cc9c37aec372f4752ce585e2bc19100728879dcccd65833eba2e3720207438a73e490301049cb598d1771b388b343b4e2b16784a21daa75f86947188f3a5cd006376b700a1dad59704215878fc900452e4a64cf0825355ed63d25a2cd11bd501d378dd92a6dffb0934b5b0240b9b02921453a0425120ac167a4a80483a2b42c0a4ecdaa801154628bcc632c5d45503f9d266d51da4440d413f763475d721814c4e94ba1e1e7dbd0001b4b9020c81a675173fb3091870606a4d3812fca1b2b290ea922a8c031662c22195f635b0e68d2be102111acb30166c89006282a04b1125ef8701065447d664c1320be9d1cad59673d58b10d6a00163973a528ec1343820f62a58ae65ccb8757304c5a1c30371db6a628ee7c4832db7c1da3061465cc95b744164e015b39ae049ee8b05304466c49754e828174d485334ea933b25a0d008ca01c146a4090b857c44d15c88c2005588304c6b902b8adfbc40f2bee6684e8019c25592662e6d2ca8968f146a916c0a002570e31d37401123707301cd18220d5e47988d435e970f1cf38c3e0d6911593017f82681e1244f1311c0ac0edd68c2b1884b8dc6210d780cb0950ce1022d91eb4a81990526ac25e7333cf94b089a32e4286e82a0b2258986881c6652d4004dbe8cb491d1a9b2f51493517a2e7315976f0ca6c26416f0f88dcf90888531c249288c31d35a460a0e98a1ca53992a5a9caa6e17d7a3bf5c158964f5e3a0e8541922d73b90464c9dae5f56104721028c84d52599795a80aba13aa897a7a50a220526cbd27909029c471e3eb4203190264d0854277438f43a80c14205a5311878100635809e78ddb8ac1cc804e0709d229542ab0d846f1438c7a9cc3ac9d008dc8e84451248425418b44c221c82d1b98fc863232add291cf098278258a352ffa5098d35d4c447a5fcc5caa75bb8431286a0d24a9521b724b8200c98538ca26e6fa6bc35aec03fa2a944473d574db39e4505e4a1a2816e1ace932d4845483061865492c9d7c72288aabda9f8e9109531e149093404e32001423df0941ce0b9245c6836c0ed2d031452eac7cb2e118b004010cb50c6ba25622b56b5a0cf7220ca604f171c6d995b4c405f1e4a0b27cc5f38952821a65112d47d6c8810531534ca82024d2aafca263480d83960a1438b4e0363c24352283a21f0caca0749f1634974218c0220461714a1003c2e8cc1109b9181a545079e2d1f4215ce3420dc18b8dc03600863e1c92206d8961ba0902edc1c4042d2587b1403ce9fa366a7384620880f35b85162c52d3a26bde6288eb2e5252e8fc9ea889aa82d81006fbf19655fbb00f7e07c0d8f095a1a2c7a3083f24330a63d24cd568613ec133d5c4fd31c42e637668443db4702ae9220206b925aed922015880a1a9e2f824c7a3cb4de48a2924d7b3e38ad236109d453a885380baf6b05d2d6ba20f9d32babcb2583a2bca250851596d11dcec4286c789344a2d2dd297a41e956b40ccf10dc1596acb409921c1601b226aca6b088ec616ab2d727205c2d408cd2870e4b504bde540f2251b8924055369d71dad1a47395ca8a283041a45e947f464408ba486db0a474f6c219a299a2443f798b0c7c32f3075998a4cb3e51707a8084e0ae182284980de2ffa873d341c2224422a5cd615963090a4059a768f9c32f448e209b9ce8c54c2e121a08625a90c2042b1bea6ac56071d623b16707b463614dde9f0c06268fcc1d08979c3e46535406be445c0f7e8778ee22580d5a8d5130ba02e8d6684102658e4e1b1c26e03e3929a118025c234f8e79983435735032a5c95691f454bb45a30d4c76413982d1e018b20b3b64f357a270a90ca49968daae0d28c6a245571cf8a2e8a0a7429539264c64bbd94c3d283e50e8f1b19780490f20571348852f18a01143d09620abb15591e68551ebdd5414278011340ec728413460b6990d4346c607ead8d590000f24f338bcd08717629ceebb83335e2ec109125b3097b43ba21c0b8fa4381db02a5073db038426eb0adc2742d6155e2c9d521438960173054b28c9528b2984c192ca50332e19287863412a51d12459e0bf80528ba2d3d671898b1911462ed6c5d1541e9e065bb53001351e82653821e464081b3bc36a63f280b489ab0658d21b6c6d7c864e1e6f642d98c2d9ce114155f10c32773af59411b2b1b84fe4ca03ac5459de81b72e27369e34745a9c0910d3148d19c28cd089961712c65db8eb1c9d2f041402502083ffad0e0911ea133565c052f025c2e81f240d02285c2acf4e5269bc39eb1447102aad8a544a0469481a88a20dfe2508cad0a7d44d01c720d896f7c5dc6f1006570fd08af0920a980de10f720c334f714269ecc091318c5a2fbb3e78997f4871a03795940156c9a0d896e3737ef2270496850d256808a6400f403343252ed86872d52bed47042da01b3e8889ea0a4d9e4962935ad300a457e3e5a3d0dad43ae44388bf0620dce881b4938839454dcb9869169916158f3f8570407d4286fa2608db787db55250a5cc404b64a3b4607aa49e3a69cdecf5c1115280034418755e474feb2916d67c91b8b4429401cf92495ca681223c9e663d0ac70f1ee42dda7230219a4430f3158a5189838f3b80a4255c441c0ac4a0b25ae9128492746d5a34ac22f39611aa44c757942a4eda12c52b79610332185022c472e6c49d6e8b3cbb3779f66824cb252b0b1726d3a8c90230969c26be8d7c26282ab251290591050aeb10f9df4d00185878951d4c60e2e4190acc956d15c5ddcd11addc974a8a32481154e522212a11010dfc948ce687c23e0c1bb25cab553aca28ba41eca80f95db0d22ae42003102a1332bb812b1e1e254401c24ce2aca2f6b60b8de983ab21a249a8e88cad649a136c118ce948101c988e0fa54aa121aaa0583c573cf4bc826ec85fb446251273794240e1ceec38aa4d203321c881486ca84d6ac79fa98ea3cf0c6460eb8a210560e853cb257489897405d2ba776080a0ae549ff654e070e162106913c25a1211681c84afae355fa8ac80528368a4b0c4d00ec03147bda90c330ce5a4f4275459a045117c38341cc12a431569a0c826dd5791619bd897165088903d10eaa3324d90424b3543819851183956c6979154c50e6640a96edf337706362a4a7b2824ecb0d031624a7afdf2552831e468045259c72e2de59713199e86dd9518246fa75fda2741761904a53c07c22441a2fc3dd9d818607459457587d58e1a32eb5969e7d596bfda0b06b558a78987c8d5a4d326c9c11a747935a40121e05a0bc4a02e7f5214c1477b876e66eba98e1436d6a414a1b46d6a4b2b05743596a96667f69ebca7489bec955f86b91237765712eb06fc588ad3436292f33a9506a11ea824f4c7c541c9989911000020000000500023110020402014094542b170443220d5f701140002528a56b45e44974ad334865114648c3186186208000800000894e03a0000d1d0c032349d9bae3bfeda9087f5cef71b8b92d9d31e1c6883e7b681faadc22c006efc405227f7b344af914d59c81dbba2276c7098b3b1e66b374cf8e4ccbc782219a3ea95fc7459f63e51ef4dfe93bee11d80cb0c3e3f8ace6cf59c83d7cf064443f3dce79203509a0d6fefb43e0de6032fd384f3866a56772ae5ffb9d4b39c67e12ecce77b689d62331070160a7fa2eb88554dc8e7f99ec3bc9b66d4b45f6d0325b65b7f2816cf5b5b4d21b123df5f913e58bc744e5ea1c4c9b7b0cd3b5f28ece0742080f2c31fd4334ff0ff1572ffcc699bbe1312c5a519b54904708f086eb29405fefbd6e3eaf3f3acdde292c312f7f40b410943aed4499ea5887b871356915d173625aaa98f390d1daf930a9e2968cf16d9fecd6bbd09dd40350632edb2d85c454dc428133bf1c50e3169abaeef4c913e993f5b815580072cd7ee2b9399ed84fe0a8da846faf7d8081a9d488a9a4d98d980611dc1454ba229e5f440f134374df2928e1962665a502adb5fd04dd3e84c4147e93e4776f337ccfc7f07ff7a6b253e4261537eebd560b41a753e9d77cad3b4a4bc4e9d731b59f0cf57dad889028baa6f65ac0c296f367ac5fe761b1610b267ca24bce4207cb109c3b6263f9a906d9abe516b932aecc973278489b433e3d31d1844574847cfce810972ca9bf7aaef5234f1565517187766718b9c69d2ee0c5cb86ac3bcd1df5ab9eb2ba0ef3a97cf2c79722115a0e9cc024a877ccb848ff7341321c1d823bf3dbf01808d2f5787852d60430b19b015e8de67f3919fed32787de212fb3ad8e080c43d9a27ac7fe2dc3e72fab6ef8040f16947ad939077dfde4382ffadca11aafffd71aeca1a37b954fbef174fda2ea70b82ed5a909e55f09df19c75e6486bf643ae2cc2919b6d56197918b49e9395829456cc602c424afc6432a57b699ae1dc77c47b91e193cb7171be671c19e5f4dbb2c0625b8caa39c07bd8d24557c46f098e8371994cf7b04541b02c167cb012ba2b3cd757e5892578cd810910fe7eb0cdeb84b1ab19e05b806cbf5ae8e5d01b599da3675981e3c12f807bef12ede37f21dca7e6ea95f2aa150c5beacbaa7c8a5143b35f01e934acaa671729c6b9f753d45d3a73b60a3bc22b4ae23fcb920bf17ec2c4729d67ab132393646aee6bf4bf64bac47eea43b82ecde4ef61d0d1327e6f556273b19349f2fc8ba4183df55680035237860f9ba3847d1ce5d7eb6979ccad6f87935da6def507687c1ef8ff7a6c53e35895a924861312c567b73d3fe860c1ab75eac0db06395193a15dcc01370a1e4ee9f68eaa8b2122652cff110fd96ba20aca6b4280607a18fb6fb491573dcdfd4e07729cc471cefdcd1fc3d2f66da8e9b911b5badcdbabbeebb74c2c989d938b49e2cbe2b30d585dbfd1df03b4b39efc15c4f4683f03c1ad24d4f6a6d77869d296c4caacbd748dea50c657b751af725a17a6fd7e8e5efc7084fe5db532761a4e63aaf939d44b3a42d70cf5f58c76d9c6f7da11ee24e26fcf9c1b7db0571134d2dc551ee0e5cb2f8e30eb5e69b6134ea43bee1fd74354e6e2859916930866ee7cd84f8fb5d8c3122016ac5c764ef19df889a605dd08c48a7c07b7e8991909a9b1ff14b1d522bf9ac86e6e90d330c5d013fa5848e6e353823ebf31add9b50bac67e5500f587f9fa63c7ec44bb8c4389708b192303920584f1ce089688ccda59e3db4828c5f4b75342a3bf450b4a620b3c7d0dbac84ed5c5bdb83a50a6cae158d597a7196ab1a4f322eccb82e14b7932fe66cec6495257de88059bc1e8cf4321145ffcbac39b4cf4c3b5bb029a125733a7a04218ff2f65135f8f80a8305a4025564143cdf064fd5671335c9c55003357c4355eedf8a1ac51ed063afe2bd5fddb06cea6ab2f7f79929e8f6392310ebe05f884cb4019afe1fbcb80e469ba435cb1f35f16800068d009a003869fd1487bfc80acc535697b34aa5d65831df9dd6f1b649feff21d48d2d8392037c4d44f1f913d4abfda96ad77e691db45f75fdf00b0aeb9faf915ab27c91df08fa5418a25f21aee02fc6e2fa538f9ff4d565277e6933c9fe043a6a7f9586a0529791916a01add61f32b9f65db0a9a7d8d1926c0034bb7c445b9caafd3dd9f649b70910eec8a3dc6092ee72b45b2cc5fbf1eaed12956fe2053c76b18203f517f1cafd745c58bf52fe61397791d173722b7a24251dfa9a5e97a88b94aa7f24ebceaaeb14097bec2c658757db4b24ee0250f767cabb47f49d20818fa30a0f52e2ebd678e12df26fa9bcfb324f733a1f4d420f9ad2d75aea05a3f51f8bbd5bd4d3f2bb2af82b507c244bfe2d58f3bb53fda191fd77eabee3859f28e58fd54a3f58887f55d45f10f2ff75fdf747007c5e017c5202fc4f033c5b88804765c08f74c00b42e0694ae04929f0312df09218f8bd1af8bb1c78420fbc5210fca7083e2f09beab097e250abe53059f9205cfe8829f85c15794c12fd2e0e3dae02571f06a75f09a3cf89a3e78ae02e17b3edef033caeb2a608baec0dc3711a17913b78ee89f94e352331e354097d2a3049ed779c0ec0ba783796d60b9ef5e402f5522ac013acbb93e1e246cd65ff6bf50a232d831740e566f629c6c3a90db0964895e41a16c4fb000890a6b844e0672fda239a558b975202c441cda3090624db4c06081fd0da9e886350c865bdea7f976edd7518b4f8419651823483e299bcccbdc3cf9cd99a2bde029174c40b7c19772def6ef7f3b72c0b21f09c4cfa1d6b883ccb3bb5851f4d0b1a56fa494885d038c790e1a1a83ed438649073ccfc488373fa3dbea8229bc4a76b7b0a0a372cb63c6bc8c18cfa2e8e9219b3ce185c390296d201c30bc7f0f364441bff9cf1b543986219f982783c724a36e381257c5d8e718468b6664414ee2de626552943db66159f36b3730a0f2a1c7b713aa9adb8e77c653602391b16f8a4e745d5e56395936039b7cf29b2898a2c8ada8304f09c77a771f7f93b8fe94317baa2ca2c5fa6d17bf8fbf68378e91b975dd040519d9202da85e0ffea09300da116e18277500b5ecaaa117af0411aa121491b6edb349c459792d89c1ce50500c027f7aefd7808c5fe2ebf1299cff19f0dffd0feac5de2037f2dee54de7c6f5064c8f71c3dc32e9b7dc1edd7f0597f03f3493c7ad105b5bfe3e58861780871483a9d5aba0d04858d95768111b2b935afbd7684463b8d3b6f357a185640a52d87dbcd094eaa10ab040e08d719c74f76e9fea9613ef0f32719e0ad5844cc5c0ee8c1961b9f534c09385a09c43e72bcf60a76c3cc72675734c0a67fcb5e4cd93d514994a9b6a5f390ffc401e44af8166706d7a718e4f69991320f853b5a5883cb3676f9e1b5c3b32b95a0ab750239fec346b2f01233ac000b74b945c88b443b99f5b3b576c15d7da1a3e5075382f6ab8f360622e591d9512569ac011e47e15efefd909d49f3b66b680461646c7ca9687fbb6da83d5c46fe79efd094b2cdd22612f1c40618680b3988c0ce7bbe51ce79139434c7f14d3c20b1d4e032c5f0a8e07e129de64c07ed8054367d77d1f0017916e1f66dfe0607fa0941b901064c1b074dda9f5c5967782ea38afd08d6832137233b70776e96fc5e02fe62dd50e3858d324c08f406f11892be5fb4463ae4bd568883e70a9a6442bf7f65b0eeea17d49c2004cafc0508c85c4cbccf2b5dd1b0dedf3552713a05d7207e56c2e87fab9de77a09b546f26ab4dea0fc88efb3aebeaedb14172316a48ee78c58c64748a27e03b9f309fede22596fd656dc20536c30b3f58334627ab2d018768d6525c162fb7808030bcc5c2a6cd3162da38eb07b15b0b9422427681ee0804267d0c068071c537c3852dbd60eb60efff374fd2842f3a099a5b4145a65c94c0158dae33057d31edf71852d5d3827a39e2754e7a1b6bb2bec19a1c72f96ab25a4ad64d5ed0d25954ba567cc73fd94b8175c827e77406eff9f3860aecdc0ccf4ff84363b8ad59d934939e110382ffb2163c0ac2e0c183b7f9b222cf3fa65418482511ec26e5f60196392f90b0cbaacfec0c6ae1922c1d6273b9bb781e171c8c06f06f92957df18900b3be604e2755daf6a0f22d7552b964278954b06867f059ef65b824317e54a3a5141961d20de219e0525c3328048abe45b24cd7627b952d6e1e0c56cfa338ba00653381d8f53afaa42f1d50b6c9e1680201848aedc805864510dcba650ad418828fb63fe6f4bd24363d27897fc1bf51d9cee497056705761f4e9c39ab22d485904dee90ab9dd347db24a34af9a0581a412b7a350ff565cdd99bccaa36da90e8d96c55b75748b760310e37c89d168619695ce1b459c9f4759a85aed78cea2bd592834aae22db67fd1dae382d795827bbe8332544afdcddfa8fba5ba0df7f51a3dfa2b6bcfa57fafb80c0466dd42ab69ad7df0eb78b686198970b06fe5d27e3fe432fb4ae633ba74dbbf8f0236240a667d3cb767f461c310a62627b4587e02f9fb7b6096eb1abfaeb3ed0443045c92e1fafe4b7a574a6374fa370a4250e398e7850ce5ab9036ff98a213818627f34687e942718b94de3dd46fa0dc4e7419bffa395a06edb637f830c3f8085a1ae9fa4b304cb9d213971d3d749e600a4ee64e0ca55d8c7d6654c6e2f1678988c55bdbe36200a829062918287dfed740e69f82490cfa5dd27c6ffd950ed02641e829d4f42b6c90aafa50c2472783cc98e2830be16400e0788d590dbb7626e58ca698bd58db9127cc04dc849ab77aa51383784424b984d7496a403bb2598c5e84c28ebd6fb57c2f7df029968b363140ea668cbc973394135bee0768d77981e9cb138b684e47fecce9c67e46850ef517cb128b2859fa94b3b48ad7cde99ee0dc883c0f9b9be2c1e0ce5e50cb693d2bd7b99882ad08c9474305ab739d366c3e36a3cdeb6368efacd6930810fb309ac3dafc164d629162aa62a758a06ba6a1f1865a8840481d4bfaa3ed1748c3d63707228689a15721f8897e37452362f83a3e590ee1608e98c2cbb659b88e8f87bfed7347e8272955a033a70f5789672038b49e1b43b654749e0e5d72bacdad29f07570d9bf36379709b50cf39e18b4c8ef6bb5ba542150b382b692dbe6eb68450038daf1233dc2aaad56b526a58df621a38b28ca3c30e580823cea8ac1da96444393970eb26e7b3233d3e776d9165503214c17d9a25109192b9edabae8e3310b9cc5435caec9acc1d5f3725b150e3a3b2d6a97d1887d3b06c7fe9a0b288a450770dac8704ca1e68dd171ac08673706d060956895259b922a8c33247d3d76107724e672fdf277a801adc8106a7014e00b17ca8cf49a15a6737b66545fe05991be6864c251f29599cf737f8f2764f1820b25fa0058e0a0855742fa5d46a05613d85a14096849b74dc22515658ca7b3a692fa9ce3a45d30a14e3628ce98feb4728f515c3f1f287f1aedc92ae234da38a0029f6a378f61d363f2f4998607cd831a90ae60c200d4363a09e54d09e6a4e37da83331a25c73a6d39c08eee390cfa0e412a3f0a55fa56ec898d02db38b34a0458c256e75cfd7e7233232c0e4bf838c739ae319155d1a4a891054527a6b318bf3a55dccf2ea5af4b7474f49cdb56fe7dced3d3a2074938ed8c71aa0a1eb0ab3e5027c35c67bafde5e5135c0f0a81a4fc2bbad37495d847f6d93f5d13ce8bbffa155a0a8224ca82e410ae15f4edca2393ac864b132aaa075daa3c1182f413b5f5789e702b3aadb9d881cea3050942df555607d65846dc28c0c071456d44d27c1478fd25fa9c813e147bd1b32951ee266205be137a7a12b04165aed3c769652a6116d5bc31c2ac90a450efc6ab7c1c3a5eb56c63012c6705e70f85a76d1ec67889d64ba5089c44e3794bc0bd2f46db5a700397ac7548cd476e4a5b756577d04b42d34b1bac8de6feacb7fb12fcd32dc115b9fa9747f76045b14a114af519f528a07ba56f452968efd29d06c487c563d967893ff3b60efb70348cff279a92ded4a9ae147a2ded215d0913f1dfb5a9d7e6b7d1ac01fb946730889cdc28918839bafba1284e8dbeee6392d1849c9ce3a3322e32aa587e428bba3fb81808a495b731d55331bdc63bbf1c0858afdb959b0274063790d00c95167b39fbdd4cbfa102187620800f53c928e185759fb434e6244d9a96a760f307a156f7478532fdfc972c1ef1d5f6509e68bcd16927f4c98d0a37f1b7437b27c7a88d2bf5289998411841de5ceb7c447b691f567bbb980d31355e46cf152fa8c60c57260243122e1aa96fa7fac4cd3c5920dd17e642e6928ee613625cae6914ce6d64aab45ace538ac738675436bff0e30bb363bac6550d8c946acd0d0eba14718a9ab6421a514a56347189c58555afa133f9e4dba700aa4c6c330d5d54e8717857d3479455fdb0c850840ffbe72d66d070e96506b1e894d833d05e1c4501d48dc2b67bf3de456ea70c63726a06807a5f23025132fefb46bb00f31df1cabdecc3dda5e5662a69e188aff06c94d6bf9542b606c7312035061ef4736530bf54737c6e1067634f651d3e7a64165d7e4df2268395d109342f3cfa7b1c22e9c64433556dd876d86f97a498b5a9430d181f26b121e299e4162c7cd47ffb59e4ac2302e7024dfc1502d80121176edc9d6246111a19a10b93f3b2dead3f8778bfb4f758babfd16d0b73743566464e93affadeeea6a4000ce6bed21627ae662f76f9f4b60ec71d45fd00b06f087c16d5b4e9e5bea205d2a73372db8079ae1e9311a98b0e4878b09cfce3d9e1b7599432d0681667c43d51f2adfa30f28b5b85bd03eae1f729cca5187d7b74678748fc8e7f3521273ed484deaed130f36dfa02bcb909521f666f5569a1049df8fd45f05533ddd0b434ff3d89c8e5ae9d678f974b0c7101d288c6eceafc35bc04f34e06966e7ec7de60f7c3a2ae235a871d788090d3ba3a7861a4586466ce1f7c149a660374e52cb902e30efdb761bc3989420fce273a90bbe4ad120103f97d8eb0bf3999dd8082d7a981da98455f0667fdc4a516e5838c8a99b7e271c874bdf211471a43451c89bb74baa4fef16ffd72c87487e2cff7c91523ff120765dd885b5a7ec37dcaac6e55507653cb7fcd5d590edc9fe447aec77139f0725c273ed97f585bf6a78bed7a8477a7f77fd2ddb6e070064c13e69ff60232b841142e83c1b797052a59a8fe5c211797b93359da8ec9979ac9d070e2fb10143811247b80c64ede7d54e48065c8a0a0c65830351495aee26874008dbcc6f8d6825628a135c6e0658c2196cefc893d65657ade7dba87ece677f41c101b6162bb50dd8e8921c71644826f41860c0000e6e27ef2e41bc5229147a68a06cecaa96b48c5f873a58c61a77fad801c2dae6d6cdadb33b58631bb758d50ed4222b3f2137306207fdaa166cf65b751678231e40243d467ee32f42efd5b15495ed64db185c8f6e6a838380fd96a513ed9435e7fe957ae9577547d122bb57a65dc487219bcaecb45a08c5e68ee8085ef37e76a11b26458310bcd49eb119d94c883fdd5e4debdc05797a084494f9853624eb8661121c3672155f9e7dc2b65d5c412c59c5020e3a4bd1f1d5be0ea2d50afd5177e389ac809db64e7d5e23d89db208f2f609335fcc91407b31d72380b15361ae10479a34a2ca67b17719972bf560af43fe61a317cb7b7452fab04fc8b9585f218efa5fb8eebe83fb5b7b2b4c982ff3589e3b16b83ccec6f54b6cc205016686e55b678fa022c3f5a3b856e3e6ba37b93cd1430f1c92214d2852ba5eaf390f777ebeb93783e8bd823c90805e33f41d65fe4a6f519e503646ee864ecd8fa98e51d873df32279d6e50636b74e159f0fa3ef1177fd4f78c3beda4340382d63867c10708ab9e94996b484e9e01f9c2b80881fcc60801d1d7df8819be487672d2d444a441226d45ea6b1f508fba7a674ec546f6b8d2b696fc82e0ff7488f6ad29acd5cebe026cffd62cbac7ddd17b7c936c91abd4918a1ae39f1ab23ac397648d4878bf34862dc7303d43353fa373e30e83b06c8d08c750644ab2c63f38060d702aa47f3e0bf7f07016b6ebb01fe7859a671601ab9a4f9a4340249e902466cd46b99d1afe3d0f219a7ef4981a50b7f5fb7e9d081d89285eb331d7b339032e9197b1944ad75e727145918952091cc222c66134eddf5bd3c7514ef0c6cb26e05616bd3921e25480ea6a6c254a50c50bd53574d5f07a15dfaeb8711fc87badb9b21c01c1d5574d1e61ad506382e226a6c1b6d0a74142d4014dbadae85578976266177197a96fc5a8b33a518687108ee4d9246fbca495009ca32098d64da9fa41a536739faa12529227aee28be6a5ee5d69f559c3ea90491fc9c3c28d4006312ac2f2c14047db6d899064a91f40dbccc6a62f5d15061a6455ee92bb2486354ce3af9fa158081679d56fffddf2af39aa750ad7d785d823b7c583166545b162f2051b1604af0f4fb28ac5aa56758a8c356273ff8a080f20f8b030cee08dbf872c0d79fa6e831d20d2ac61cccaa74b05b1307d604968d99f4574afae949e92737fcce748632143e309fb25f0f30ffcc25092fa8aff4791861180f26dff2d04a56b207c9d046eaab007f0403fba794341d4b6811e194320ce01396a94d818d43bcf50dfa21797f2937162a72cc3ee00519bcb0fadab7839112ef5ee93f9219c60bd827792bd47029ca88e3bfda16a13ff3b8f86fa72d53eb98ad9a2d6531d76bb206df79df62320467711180d292969e99f755bbbb197abc41d44f2bdd5abd65b033eff834a21a07c480978128bbe41ac98da2c37f2ad38067f3f5b011486f453a0ecd4eaca668ab8e78607a8832635debd4b69309d168e14ff46a8e27de0574a98babafa6c75dbf5a6883fb52bb239f22c093e749c186397af01b09209c03f5c2a805bcb234a1eafb14bcad65680bd28f6b273986d1e615c2f9f5bb960154800901c55ef9d5f6e67a61081f248a996515e612169716eb9994daa6d43a832b2d044ad711efa8956d9015233228b58797d4d205a40759277bdf687e99ac037b449fd65f7148fac6b5ea1d18396d7de5ad120bcaf0411dd63ebf53a7ebaaa4b2d2ca274cbfc9df19b67b787ae84b676f7cfefb63403ed9e105ef4e6fbb3aa2e76b7c2be730160fa4623493f02378f908cef16253a6967471945bc0072a936a4b589151c72956831f6beceed14eca2caa4358da2faf7755a2c28fb845e9b393ce2a611606da0fa6e47f38994ba8c3d279a1d0742084b607e6536a1f21c63c28dc95149c231086de46eaf3146c69584824de24cd1e129e783c6efb50401a8244094699c2f4e962abcb5294e61162f6d3f7e3967baf2ab4a44d048ec746ffbb0bf588a3820a10d77d0cf8d6026aeac6e62fef12eaee7c787a9dd884f411947f93b8571bf4adefa320d03c0868341af46f5b93ec500e8eb39a1c26bc44aaca94ebaca196abb72623b010f07ee2643e3e01a795fec01a316fbb88c639eb04424b67ee72a385409e3b20750c1e706a7d55366a69485bd18765fc0eff11ca5cd17b943e7dbeeef561ad47500c5daabda8ac789baada844c4fe57f7994777a53f8a1812a216dc14ae703f5a9e76c176aa40b50d691ae27c00a1e817de53a6d6da4849c94bf16d499e2d8633b1ea24d975657c474799514b47f73708965c84603aaa25ad6816d4a7e27b06bc7816d65e466d5e34f21cd098502400f981c89314e3114f6b5339164505ddce024b721e89a14dc46527bbc0d5ac32af406a4be475c3f6c7282eb023d51601db1177313562e610ba83cbc8bd2e123ab52ea2e0357201189165b13708e30f7e52abbdf48dc0f43b2b0d9c803256a90b4a91ac6586aded3e354dcb5126d853f06e0d85a98be66945d78d7028de6c1334c32dbfd0d5b5f64b0039848b370f5fc5fe107cd341e0d93c3698a778ba672615fe453184296027eaef239d931fc43f2c836a2b598038851ae21fa8f806a19a6c6b8eeb3df1aa7c3c7e59bb9fe7d94fd05cff8bf9178d819bf65c65d1cf0f01e33178d2cdfcfa750d2e46cc396a15dafeea34aa5c754216574d0c877bba2e48d12a51b9fb5c2d0ffdd4512441e637376691cb925dd535f20d283ba3ab0d6993eeb4ef0de3e5b7973450fc2903cc6ab38ce4670e9f9ffd60309699a32fd99eb52f4f8b90adee42bf25e893381a2a992d07d8b1178a0cf21e8225eb00d3954c738a0fee39665480d64eb1181f6af3cdfe2d718ef88a213b84f7db2a2bb8c287a9a069b2eb074cfc3741330d7025fb67d9822b164102f6616ed5b339f4ebb0413d472ddd890eae446a0c8fdf94709116622c64b9d3ea18cfe14b5f631696dc7e41140ff7f4007f19409302dc55d6645e6cf8814142afe512bf3fa2ef29a5898b160117b5125f4c018bcc59eddaf6b16a8221195590633201bf639273764ae17fa75e1dc43c3e2d900138b9cd6d0901d7ed60ee6bc80af1fd0e09e7d6fa927689bf7c43419897b52843f7a4454442b31fa631d1f7e6f5ba331470fb778986a5eee0b9603bf4961dcf16ae9ecf38dcd50e8e4eab73aef23f6edccc5e0be7a6dacd881cd25df675236693fef3be2266e85ff9246ff82b291eec3523eb3e0de764a7a8ed95a3fb0d8bc6931299cd72a4eb6900fc0a8737086fc6cf5361fb13f839e43b9d45dee48499360747da690d18b0f62460ba667d3a35ef1f12c53ffeb58ea6fa1f1578405e5267092a3bcf60dd7daadbb84a0d7917df70b7bb5ec479bf9047e07e2a31ab46ef533fcaa79160f1e55381ede7655064d6e049acd359ef2b2a958ced77a8ec2fa72b9f05c29c1fc12c0c73083eb00c9fdeb3c7672651c30e01e4ea179f04fad361abe7d65b35171fef11d6d06d1c46fec3d4e97f5a5ddeacfcfc8df92f98eb3148d898a13f84d1a77e2152eb8b9ffd775f70d4f95b42bdc9c48db0c8a17dfc081349e5f721984651e3eff4563fc04174bcf8bbc13fb6646f090984c29997cf1d7ab83ddde0b707564e4d29af533f706795f3279810902161cf284f2ffd3e808901e8f766f70cf5175e66221b048fa41751a423172ee51040497209abdcc20e9cf7ee425b512732ddb3b37cb53c3275fe530c31d20adefe5197e9f45b1f33a66f37977259dbac8fcd3677efbc9a24f874ea1cfef3cba6f25954dd47539ecccb424aa011b60ede0b85266f7b07fd767db99b9732784bf1b69715fe37b0521cb25ff79eb2fb521cb9c54ba1bd233c73e9300f555e562cf29abeb777c589ac0afbdd2330772f42746d073a37b8e18de5f3d51d980e50caeaf2763047add180ff18e5bdc24741e379cb2b19fd0e5da5f40c449caa9b763dee71e8fdc74e7fb111831c7f8cdc54af50b5721031b84fe8f950b88fbde3540741eccc695fd5942bacd67b07bfde2f5d8753dbe50902d52567e3b712fa03c8d138e7cb68f0adc0793f012117a49e6c9902b3023546f038e1a5d2dfb96b57dfa23ec1135fe6bb38d5f9f4e8240bdcd8cc4437e6ff9cd5f8b0587f3c498e834cd9c87bb2b39ab063a4e576249f99be2e97b329359d8b66e6a8c04cfe82c79a64ff873c8e60bad69a6ef4a33c5f04a0df31bc1bdd7ef614a7e8e78e05e63ac75429bd36029959d7657c51a6acffd3fa5f98ff65f9c2dcfbd7658e427bfc7ec058b9f9e2ff18bb297522291c54c7dba3c44ee03c17d94bb65ab30509797816af32d89fe30e445cb841c9d76070902bfb02b4faefed6f683ac508c6f14c43d01d52a13167c9195679e1b8c9104d9f074e9c26ba94142d51836c883f0e7b9960ec8afb9cf6d7a7feff9c12a7e0b8775c797605df62edd6b04135000e87faad5dd7591fc0b97140165cb7a958a66dc8b2006b702f5b378208b1229d289b392c771a295bd254c4ea48e85e80f981f199c5b240c62407ecba116d9e832447e90d314e3aa97c6da82ef4dca44a2c2e3236a8eab1197ef08d2aa8ebe02a5acce04e20e7282ff299cbddb537695464ae6d92795519de40e4a4e6577df797fb1518ae75a7b284bdbd77374735ad31f58513b11c0b66e4b1f9d91e351f7f7d6cec5555cb30c7ebcbb1a0c159e3abb4a551304aada9357ace873ed1ae4a27e93dd9bea9b9dae6cd96a0ecc2d897c4cbfdb8822e9814a8e1fd63cb130165fff2be77a6fb571f33ca82425905e83302803d12c3af5e85dd96186f23c690daf8cb4266b8ff4b2be9fdf88db2667506d11ac94a9180893764719a53158a082ef949a9450e7e6ef445c61ac451d710a21aec0a848735cc8aca6e9e9d6e3dc2004ebeb92cee89a1977f0a87e0b4764f93ec7c76ff7d20d4154513830a51afd329bac115865e5adb32410218402f34438730d8beed1f8f064e4141ad27ad021a46514bde42faca6e3dd4a98fc18e75f30e690860a3969a0e30b38e52b490c753a228d814aeda26bce95c27f25808270668c99b90a6c8b317981293b578b72957de3b1573f977da4f90747818a80c99f6bb9d185ccc8b69c9014fe90b911bb6cb74f3f4a0b98ee739cf8ac6e6eaaf8bac1050d20b487a72cfc505cb6fa565172fec2626e9f9c938b37acef261c49ba54126b9e46b8d7b47ae653c23addfb02ea03e5d330e0edd645c73d1a47df05b799d45f24c1e5bd556c2995356b74cf60c9916b283f3ae0202d3fb9e48c1cc0c747ff664e91f74ca2e75f8c55a44159234582e92ea37acbf235ce5903f90dbe479524d6bae3680adbb26b83655250c2cedcc06dd7511ec5588d1f6db895bd5fa907b8e53e9225dc22feb3e9677e63458f3567b273bb7ec3c50bb278f0784eb7a870b319dccd19132824a3bd55439048cf4f5e5052166568c96347f07d0a9683f37ee8d835f84e4c30f1ad60be6c6c9e50d8919cba8e6200e9616229e4bd48fda9894f6f11e80e2c0dd95b833b79f1a7a020ff1db5e86f2496076b47d6b0c666cb6f34560199fa8b9b0d56807959cd7e2f2950c2b0356a2cfe90ed060d131e066959e4c26132e8c3267659ae312779ab9550ba42096e114325508845cd4b1e8d3b00f7ab224516973cdcb6e091ce0eb8ed56376628d1609c38532326d4c3ba9faa28c74d01a574268f532bc03db151babdf7f5b38386c127ef05ff36e10afcf7134345b466e8d770bf80b87550a7c0fb7cef81b1163852ab6a8f327a44b23164ee85419bb54bbf9c0a93359614a4074c39eede29dc7de93e03946226430039558fef8135236b90ed4cc7859e3b4b36fd55720335b1d8ea6f27db52f4ef4e3b4330c744b079de96ba515331e571d03209b7fe0992509737d029e1e88d96a19ad180c07fb0c0aa7232537ed9bed5dbd00bda280fb1eab7a4cb1d523a2bc6d3caa529dfccfb2f03315bf85239e2030875535593ca83bc783a845ddad1f414601dfb454a47a708f75e8f178875453d6e20b26f493ce2e7eafae62fbe13bb0cd6c9fd5f9ee06c15f5360d9121c59a5ab81adf7e522cbe766bad96d63c2d8f09d4459b9f035484695499286f9b91958522ee1f6f2e1428219c230664fd088a05175e5e58b018f5e82ce31be8cfb3efba4b413dc5d5544ff959d74961ba63d0d428fe4d576b56917311147b8817a58e8f925d233f6c77a77ff62bdf67b1b304eb920a51d172511130dc9261a781e6a145870a870f1c116a72591f4e2e5b20124f9a3e21053421e6a569b238f336b77af1739ec81ceef15b5597cba8a1ef2d88a58698b8cac7fb3daf081a113f3168ab701baaab5ae07f6b8e2589e90b7a3b0d0909734450805f748f662637f4dae8542643479d20c8c36de86d00745fdc7feb8bf316539e1a64c22326ca52f8689c7232fb3cf2a7aff8266b751a049731f8b3517c5d7f90676f48daa65a992a42cb541bf4ae8bebd30ff3a0c638c704ce945b85cfcfd762fc675b49db0fe81621f6fe46ed73da4a732af0c99f61f80996ecbcfaa91ac9139107d313f8eabfdadf6f4f60da57f0804b7d7e7bfada043e0e37047d8e0d3460b00df8c1db18a57cb146bc2ca428eeca40fed25f89cae8e66602bb8aa6904d0310724c9e7e65e394f496d317d0918511bd38b8c06fd105bde1bdc1104297a62acdbbf29cf0fc5ed8d12317dcf8fafdbd945fa1b19daa673b89ab6c4c09dd3bdf962ab9f3656364107e82860daeaed023bd9785c79b091d78ee4f344314b2a39d5808494f0564b8918fd8d271221272174b9ee05b531310e770d3b39f8d59828355b265efde6e7e450d8b88f5c0e88873c5f9c8bafb269acf92c8fd16f86b826aceae8d55f40b5a4a31cefbf96191606bd22e2d2fa7e8f9478738e796e1c6b2841d899de58c012ba1bff66150fc0f194a4885102e7f25ee6a641c6574a966ff666e5ac3e73fbd40fbffeb2458b226421f3b0c4316013788c7ce677cb665087cfd5da44711ece17b61f1fb623b7b551fe4a50c830e73ea468650438423bcd139d27644d300298e674e4efa70ce79d2c4b3226b8f08603fa83dd8bf1e4e049abff0fdeeb233cff3b9400735bc9dd57d144762bec3fc9f59ed5b50e60638de7f81541d5091b0a2e83534afc6f6b3f1e4dc1f6258bd1cccbfa20f2d8fcd70689f9121dce184e8ff24530cfdf8f0fd4045271ffee4166af008484ee8558eb345172324175255b7e771dcaf856a915069b67caedacc1efb14631c6a22cfebcd7d6c1641e5394b04ced0203e64e163a0d4d21e5473276259cb111da0050214c90c9fac6edc93abfda8835664ab51803eae465612351bfb75fd56922d1fe72dd210224a6c1965803c751b0e47e872716c2122a5985325d367702b52b9c123867df4966727f820d2a6a3d8926cbce797ab3a1f0eba5c66f227881361be748d10f41fdbfc67b58107312911021730def847bdc6cc2f3ba8c97063fccdad9758de0d74a78bc0424e7c01ab365e43614736ab70e3fb8877dcebbc911af6216497f9e70a186c1464e31c0dca303f7fe00ec64849aa323546e4d6e0429eac51bcbdadcd7bc733bfb212ed6e16186b958521feffbaa386c374340cd09718bf09788422835a600a68afc1b7977f27e5058fb683710773fcce79502092616e0fdf03abb8ae540e30b068481f4fb2cc015f411ccdc095fb526e1120112339ff72e67f72424c002944ed8cee066a60a09f678b5932ce62a3af449249468bd210c6885339c311ed5c6a4c8aec780259622c134830021491a8cf5f948a86b4702965f7a2c7656f6c1e6b3ec38086d7219ea176305e9eed345138962066c1162692658b38132aed91536ad6d7bf0daa538d31f39110dd8ec91d60d204649ff49c721a4c89040339b821fc4e7441d63a907e8f4b0b7ce0b6c5585c1686b7463ce442eac9100551f582e294674267f213f04c73a1c9ded5866018cb28e3e4d1b391c599f51e11687281325b814a7a638a1830b981df502fcb9484b0ec8e021e23e01ffad3b8289d52cb0e74af890bf88332f235c1bf432d92091a2bb737d3d1c492f415babef1d2775387529a6ca9bf8db7060cd8120d1c6b2006191a2036336def2de53be44bd6d725cb8dbf9701dfa2d14e097956c3d615ab5296b41cee3b82f7c0028fb6186bef4bf73fd542c992b39319479ace1d561fbc01f1b631bf9b8b220384e9179723f6d312cdd5c82e5e7f2fa58251a4c2cb57cefd3528f0fba5020449f8d300a8b963a962d2e4557ad956d2a001b96e0db716c0e135f63a4dfc975e83bed6dd2b71a3819dcff931dcbb618af87774ee7688f62db8a43feaadebecb8186bb9e58f64ad5bcc00fb418aacb3c16b84e0c6b7ceba4873f98f5b0a735c9e8183189063f0d16b9cfb8971a15d3b7505433c417dfaf3af2c5a54db3a68b5b4a132194913d565542f04ff1fbb17605adfba56b2ed15a6e5c11f491044f9c769b0bb139b852e6c0606eadb9c9a341057995bffb6b3965468357f01fe55bcea88ba55729852240bc70ee328cd721c7d69da9d82243395425e552738abec6414ca6c508429dd7b1ece941bd70b34bf627c6c932ec1c2a9419e5edfadcc1ad704a98209b242ebbbf5568615ff65abf9be6a89c26e0495c531c3a6d1eee4026008a1155dc9702318acacd6c8b811f4ab1542ad066514a1d647ec690807681daaad414abce871825bbc61426803cc869338eecc4ca936b9508573651ad32442d6c6ded85b33d8675db5c50641eed529d95c85c9e39768672edff5d15577a70f843fa3cd962a7bcb835dbb5130445f9832414854909c98814210b3d580d213c6f7f2ebe2c92f3e4e6bb67b4b5eec973abd3a446883355b4583fa6ede3824c5b177ea04f15f898b7f242b8e5081a50516d50427260e886db0363ef76227a6f826aece4623a4b8785bf1df8d6f839ee651ccf0d7914bfcbe45c62ac81e172d7bcb9658aa572d8f49db7278fb3396f057ddba0568230ef133b894714eb633ccfa7c426734d602ea149d89c628a705cfc7ebe0bd3a858e5b2638b41396ed9235a51b0f63fd3c76b01f0e4d99987d33fbd6d0247693d99c7b7c280f2d48541846bd448da7c088bb875b32c8bb1903f61117208cea690903b398d1f0b577331541c69c26b28c244e3fbc11d6c18003169b1155dd6488060dbaa93c2688fe760f82ca549b24932daf9ef9d980cdc9e26ecf603cececc88957bf1ee93a67328fbd8ad6287ceb3e19f7ebd7c290227f6b8c4c61f4926fe678286acd0c6667e4d923eaa5a89ac42105fd8eac63de900740af7934c54b0410072cb7ee5882d198ede97b11864bd728a04b0f66994e076c5cc72c445055f5e55ac0a368ab36ea62f2a0154b2f1266837a3f30d416202599e1300b976cc76680b829143f2656ce981f79c815d850080276fbd842c0686eed309b8493dd00ce1bf696ea9f473b7059926afe9f230c6f73bd91517da3558c4d678a1147906d5d70abf349abb6c9646c9cea4ea1d2d989177226a3ee7906a86d5987be952ec5d83c2a3b7f6583d4912a3984ac46d98843c75d03d6f9849b2d673ef21f6a18c0148bc33c5b5dde5e84659ce497c1593a5788c5bced854747e5340fd582833c9a5057472f69481119cb6d27222a26b848766be1acd47229aa8a0fe7c314369ddbd603b88e841d0ec0364a9142f2ca354756d73d75f77b0580d819daf45a52b70286bd223205e44d598ccc14e80026e2e2c43303b3dfa65b3c21632c05d65ae84246314deca1ac554af54484bed497ca188b25d4f17e2e3fa48d9eb7cb10835f012455795a67ff14198cf0f5746e2db26309eba84588457f692fbe9465d3fb10f37a179c7f5e82c27247126f2f6a6f0116cb3ab2e48d2c7613afc4ec304e37c6eb0ed1d5e470773c72c34c8cfd359fb2717062f2d60f1511de578c4cf8797b46450ff0c0bce242a3211dab9635a1e039fe4155b45188c1f265cf084b4fc3808e490451a8255a3f344ba8609ceec89dbe9296e9703113a198e69eb84e44c4e243c46e09a0f6847bb47a7826a46de7c997d75081533b9c40d94f7a02e707ac5134a3645c14e7cbd7c9430e58adbc0229d455b8c98bf07b0510eb257a7e570814e8d51d8f9d1c09ae23044583c3967d384f4acb6cf929b91eb0b90c16e9ae083c9db36b2d8215ecb98208e14850b75d9c8d0e342e9643779c36ccdcf62a092460afb529a6bf1e722b6617fb429f8fab23194990b1ba433e8fb29ec904a7ef4c3f9f6d8624735ff58dac352c0ab88d29236feb98d1b405f4fd93d1d11571cf274f6f86a49cf35828584693ca56ad9bd62e66d546687b58b50f363cbde833b8f7919e6c4ca5dca55bad72b7fed773294563b9e7f599e4584c562f7fa61bf3f6002ce9f801ad68d8a84dee4867f260368d63c5e3ff3588aef1a1071bbafe9041e3b6d3021b714cd4a2eab5ceeaf3d3f8427e3c630619232443436d751ac72d3bdb92e5ee96a1bb75e6abc060e1b80cb58d2d962ff2ea5442b6608907949ea5ed7de80276e5cd791e5d40457d9d12db29a1545390ea376bd6ac931ee0937ff2abbee16bdd32328243549e9337e87080733971ae609ced1dd4dcd7e89b9f38fe005fcf047c9a9a0d187c1de18c09faa76dd4854f5da4ed89e1056ad579c9bdd72334567031adc1966656ac11d7990ba06a6f23d0218d178b733dda98e42005144644a5fc1f47d0875a8d4c7e7c685fc988e090d3db6207d580e3e9fea709e589f1d0dfb217a96a076d1898a2b5a88c210bf03ca9f0776d3ca360b54417380b9e28d6514ab05027478d9fc374a4d5e5358173e6e2b9147ce26bb80e4e06a54bc35860d2434e9ae0b536f721d2b9755210929696fd96f4834302d4bcc02ea4e7ddcbf97588207e25c3d3633d45f2b348f1a0a0f4e8571ad594102baa389f775d2536113bc95bdf2600cf80f34a37cd7578d6f568ada0135de435f69c151717df1905ed60c4ed07a01c292b2ae2c5e19f96236da675b1786ec96340bbbe14f9c20295f60d871c0ae175c7dd687fb81ef8692ee937df708a50f0d5b0778b588fec2f694dc692e43cea8b2ad8319183e2b67a11fff4d60f6f3f92e172f623b6ccea07912402456b894d2e5616c485b93b4750c7303d8865b6fc144939d4eebb58ee2a4770e11fd07eb20f9d74d917389a29b3c55ca9fa763294b04cbab1113c355d0c7f4d2f62b3313a38ab88abc0b1059e432451444a328d27548220ef56fd46f0812f63e8b2b207cd5e2fe4512a79cabff665f98bbdedbf218e97b109906223d10535436f5dc3d5be7243a078e20f042d69bc412da9b25793417d96a8fe0961ae593feb3efcc44d283ba6b9cb0515dbb7e8e0ca1a6b5ce7062e0ddd298f7e8a591b1a4aa047860fe14f16e374a5a91c6b551383de60b3bea2c7dba55ceaa8888fe906cad825582b8eeea392c928f9c18cf258451be56ef5995422506c027963bec51622d973dc35ee70922ff5c3323a3a543083d66fee4ec9443858a994cdde6562ace2ee568bd4f0e84bff99f080b5f609229c4d246866933bc61f6eea3b0ee4d012f0fbec390b944624f4162666c3dc9f2afb31a111efa18729154599935c5e8a31c71d20db1ba7478906e2745a24440ff1f1dd09cec5f20dbfefcc0e4cb7865505460dd30f34cca52388ffb422682c5631dc97b01c1193f01b9e8bd561160a0a7e2f7d6605a547af16df4c08037243857185452f0122863fa025f356cba66453ac5fa4129b6049e42ca06bc2749d99bc785ac6f12114945c352d1d064e3881f007fc11c8dd6468a37516bd9225e788ebf413d058003fd15299e2b34f30a24fee921ef289430985e1c127dc57087983df1e0d2ce0242caf0d423750bc081562bd0d9405ca2ce91886764932a866f807bcccd708784ad87542389f8610ab29ade91c9c2c6602936cf7a8c21f6d0213b6617321255d5e3cca0045bc9d44461c9cf69f187c6548dc32b28609caddc6b0d991d575fde24b8db8179b2b8cc8ea1bc9975a8d7d46cafa95a38ce44082a046235daba31833082a379533e08887b18c7a66385ef4f0cd48b372780c4f6228591ab73f98b66bf7bc8a8d1d5e71cecadcb43ca3558c53459327d96fe8176d2dd41972840f6e85bd4ca2971b535fb20f79a966b4a20db51f90f6d33bea03d0c8ec2dec740f89d4ea1a74b23c8ab8b5d499a1773045f1ade9c9118ee4178dc9306d34f798325ba878f540b247460edda17092501cb92cd20c7689970fe3417526ff89d17876a9e5e4377918c75fa1a35c61587d3e51f0e94cfeec351252c6fcd6855566c4a5b3252ed8d3269457247ce7550f14e60fb71727022c5bc0dc6d6ff358b4ba2b979067cf3abb7061009945ea232ebb0068a7a693ecd8446ae87dd54803d4943e1e8d33f8302abcff6299037e00e204224d2bd306a665be92917ddcbf3750e994ddde8dd8a8bbc5edb9cc86d518d94afa937f0da784caeac610778220c18d0956e345dae83b974e7887374c34138b456166f658d60619084a18b5ed70623d31b91c962d5ac503eca4a29c7a87d08478fa1630cda3be2add6e46b1f8fb9815d128f33df6f991d2942dde9b6d47e79f1d55443a34d9b5e2f47362f499cac7efc225f56b4b00baee1ba884e6efbe6881ea7e1c773ca2bc25129aa8c1f6d14e80e3d469d9611bddfac3a90e60324264de923ff5ad9ddc8d10af40a7ee14525118fa34ba007d65ece73a005fe1b000232cf3f1b88c73c58848716fe12dec12ab7ccc92f16e2d85eac1e964f2329de5d0cc1f8fb4b10f77786be1a8d820ba156d17dcf72baf7cd96afc2a079c7def5d9404f7f1de47c4431d13ebdc4d56071596bfb569baab70488bbca515e6a579ae4c56f359715f55967afb385adff62d56e021a2027cab54d8c5ba681241540e1e4e8372b132d195cfb11c819f8c14f364bab91cb79a2eaddcfa498c28b89cb099f7e92076442f06245ed6ac5e2823c7adb0dd1640c4f3a12c9cc0e9a721fd211f0554071752272ec6c04cd8051b756d9a85edd08d7220bdceb676d46508e89548a5c0ba831fd6db6156ee06f0a5c33f597b96793d48729e7e02b7fcc3e0f481cbbb8e30652413c4e528b3eb8a6e9ccca08c03e256e395fd3fc3bd73ea88767cd3ee9da83bbf22ab499ad3bd97dedd240b87bf92bf2ca37b143840470c97c47f3a3a226372099ad457e994ed0e1c96c0b7ba6a4edc7a85ba4d59d033919564af6634601463c3de21093f2fc34d7f06d6eacf5b808153f4d5c9548265dbe3db169f3981c38a81db38957ba93a5755779fb86f5d3e105882e98cc3f9ae357521625e50efc0f77888d5926b39cf357c2906e2b3908787643015744dea3f86a8f6adc8fa05ad319bc74d50bc6f5449aef3e0349aedeb7e6c947372d020bf9a72dc2cb9c878faefeaeb7647ffa657ba0c677ceba7192475e1079b1efbb64170719ee9f6a1e11626b21170a2e0e160629c46c7288fb0c11cdcadd2a1e0fa8b9a9d17f9be3146b2c8aacfc8df3431880bab25dbd04fc0d5a86345089e9d36d1d24dde0c7549c1b1a58d18de2c1cd6390f0e6968aba363bee06638672bccc0723e0f5994437b88f695747855d544217a7fbfb740752fe842869486afebf9f607aab12deef7bb2bcd0fd34475087d99f3ff451d48eae2f2df28e3f6215577c62955cb9bcea7f9e093d2337fc187b48de0b704937c4ef5daf440554bbde8272d46d3f7dab0a535bedb335c47b232e092dbf1db8e8a4b2e78ae3872f5f8e212e8a5afa0f54501aa9d932074a947ae0b0679225841e80e981f6c9ded51c0d6ecfa218a337a6af62cf218febdec6cb1daa497b102db37f93e6155fb08bb91c9b75b4c67e1716f8b3281ea92939d8b5cc94e732e6e746278979c069e413e172f71ca83be5f85c4eb6631819e99f170aed81e43ed310f2189db1c25bb12d4d8c766e21c37eb270e7d1d6c1d9014229771e8862dd5a9e819b89d85331cc276449824ebf7fb8c213710d66850886c859137b1798d48d1df33736488b5ffb69e28ea6aa0be0e69d57932685b1197f99eeab459b1de3ca62a22ccc6d6d629cc9e10f15571fc50757b1fef2221fd48661ed9d8c8bc883e666e33a407a85ccb51ff362c8848ad818039b2dbe4f2a26306ba23555f90b66f38c06a42b8eff94fd633d94bcc81f533efcd2576ef55d4741da8f4efc57dc2f1df19cab738c1ef08d5d72090c0268bb55d3bc667a7b447f80dfd7b10c2e5de832b989a210e59f019f18daa726dc8487078c8cd4a767f637585df8f8679d35824a9188a13c454dace7694ff67b153314bed9e5bbeea26d4c3687943ff24044d220c2584ee440959c2d4d19aa3ea9b484520f7facfbc7816700053c12d7c7d154df252e20bc67ebfe4eb5ee7d586e214a1633604ef0757a2b1c1c7646d8e37db57f9b60428f073bc6810d51f885e6ca6c618e8a8fc5dd4708f51e858319b9fffeed1b70b51a6e619f8da7fba90b4d6a6cd0e50e9743108a6005e12f44821bc5c54f58cc9e5427b5f0e834fe97b44026c81f7cd5a8cc297730b9f1d1c9d5b24ebbbaf29b402dae49d658075d9fe6b962104a5c732958b58bf12d0bf19b2b58a0110e77e22cc9f1ffc7bc6c7f177c73e6deb3b741075ae07e12d3b74443cfa1e213f14710d3cfba21bfe043bc6061e3bde401c9f6ac29a1262ba51fe018fda3ce700e1d143cea1f6a403c9309b74c8e94fd9a4035b952d92e1b0c8ddd8eaf4d873b9f2aff987c982a7eb72f0c8cd2fccd947abad5789297f5a687f8805fda5aef8fef2658972f68e34f5f8380f1edefcbc42d5e17dffdb85b63ff259a51c407dc3c139c565e4c44c2e87ef3347c53e5c771d284079e4626e788a56168b1fd4b886a8b240d99ed8453d06c3c1d56bf42a71152015f457ec0a5e42f0c9654218b0a3996cfb4ce9a36025621c39bbedab31f1bcebe33ea8bcdc4860ac591c3cc7d6f18216db214a27905c3de35899007bd7998e8de79caf77039d300ba7a06fb59f6e9f89d2467c9ad5778bf724c62a2b234e13c30c6798cea79256e600369abdc63024c5ea5821ee864678fc11da4c9a55215c2a6150102efcd0a96dbedfa2c52ba195f74a69332cc0e786cc2c00f14a085ddf6031a8c6d5ccb350c33dd61f6517a84a5e756d294fed0666bda8fcb75966d9322b5a5aff465e50c4d001415255b10f1d87ea1aebe3709998764acd228209adcb857e894d9822049d9abb6fb42666b2d9829ff4e67bc2c341624b403a2cdfc8492cfe13d7dc25396d9cd224cc580d880126c62855780461bd853710c44c7b6b41d3968c23f5ed91599819ac62097b430f35dc5672db0177241c9a5324a0d11b401191901524e95d98658c03c0a5bdff0a787f25950326c286f44290a74c5fe66a37861b7c958236ed16d89faa4d396ec6275138ad55be41b30742311191c21f4a87a2506b7be1bb281619ad14aa36a85e7cb23280c1c482b9024fb44a83656396568ddaac1783369080cbd4f564ed1154a6f36ebc865f272591cd52072f4467e17713767e64792644f8c8cf24d9b4958022b7dc8c46139e8673635baabadde461fb2d9816538bf69592815430b0026d993b0e85776fb33742fb0ce441ccac763e90f52cb4d3f281d42d30650dfc3d14cf24e60ec41db20d6f0c88ce81ec3f5420ea1f215d9151fab921cfa3628d399d77dae39aac8c312e914a3d8e6b5a5f4e0551e7028ffefe9ecc424c0835b4d9bc90a4e37dbf0dc565ed67b1250bc24e30b3903b881e7b980081b12644dbabfade9c4702c9a34f5a041471231e1d1b64acac420508c6e3725e52087f41ebe895b0a5142cb3aa6121387be2f2243183fb6000b7ac53aded229ae107db21a1637082d927dc9501fb2db8bd9bab0ca8e067465798f46b217abac39b11bd8b16d98c2338656532445d3c0a0d811fbaa250ca726be8c8836e6e346850b5d46e5f40963381ca49418d3765f9df7f9cb3c5dab4a36f1974b2eaa16c01ab1c9cba6646196d8f70d101ffa28a7c3144f7b8f71d47036381b49a94fad17f9a0156b1aa61b24570f4367afbae0af67e3e91384655a6fc460079c7d153dc859523908c75d23b870eab16630652409e0451ede016cbe839fc9c9a6c338b44b7b3c22e2ad9a65830524876166b77b2955488a27207dc7c8369ab3e3279a09d64e47209ef3b282eccc2e409f0a4fcc4573065ad3369e360dab0ccddbff1405afaf3d841a8cbebfde1cb9dec546be3801ecbcde76ea96afc66e980944da13492675bc1a63dd869d74e36d078512bbb1746d690caaed0ba2e50003f0480f669abd9a3624fd564b649b7410e72a8fca0cf3f610e0194ff7f5a685d565fb67397264f3469448ee49a09bad9813717d4bace1c85b1e7e534ec015fa99bc4bd503b9ffd22c4983c0415cf2dbd0b737f961f2d9d582b59556414f99099326a60a7566dfff163bdb38543969b23ab482daf05eff3823878eecb0683ec477bc193a5560a4d62667a6312cf77f4932eea930e848830c2384876961a4ecc22ef8b69abd20344bc79ad85df0ebaf93ffab15ab533462e10d27ec77a07a667491864596b8c2d8ba92fb026617501d40454957bdbfb1ca84ff5fef7539ea1ec739df4be2fa782d42712f71f00b9a18cbcee55f5868ae4cad57993a70476d2bbd14f3bdf3049cdc14615027bc31a860ada5d0790d590b6d7265576f75183d6689fd18e65d246f1d3d0cf4d16d373d855632ea4aa47de9a67d7f09cdbe75d9ad11210922d02c8705d3e33eb7755ad46fef602f1041954d7ab3762a84c7eb5d03108a8d9870f9adecf42fb2b5def8fbf06148b2c6e7920b0ec746e5711cf0f83272611dc5841ed252a9d4cf8cb221ecc29078f5824a63d70c23484e60fe00148c5b5a05326ddc542bb5955db8a14c8744a7c8eb3a0bca431730518bd9ae9d43e34331a8ddba598be1d1b4c15eabd1646b8e98ab6a58481c7ebdafec5f83dde3fb4ccfc32da49e2109275823e4e29954407eb283c89875dad02fe4e5f5ba1fb2471ce213e78df60449213eb1bbb1be943e657a04c5414c809e21f08f8b833900f39c1cefee1fc6bb6ad68ea0af7a984690ace0afc4114550b65d5641a6b4385cf602c4b4270446dba6a6757cdb315bee0b43d80ddd6cddeccc93bf407ba62c0d3222efaeedc6034ec20b7d083583819488b692f84fc3066da5d6f138548b3bdb5623dbf851820c9aa7c5576bab7ea33220a6cfe2f01eea169723dab5399f23a40c0da1799ebb9c760cb52022018a33c7dff3caddd1e604a38a1b15ad91c056cdc5f7a986c3dd1e0da24a5b0927e52334b449d6f0e77434563fd4a4100fabfce21429e144e8b08f6306eabedfcf85be2c99e0e7e15b941120a9f739217ac2fa18bd0ec12f55a2a955928ebf174477713430bfd7ae28bcb21a576fbeb01854d7e28a67a9106debbf0305872a6607b3d8ab1f0bf89b32baeb249724a2d0dd09c061e126770758b2d02d8041cdb55fc87cd91b5ded1071de16bb0366920006812df79faf15853c60d77d0b21b81c9b943b88f45a0c876f94d30946149da70f89ff36ec0f26d02ccfc0b96821fc0382a1aef01fd389f3b5ef8d7c8e9710e5d7f34bf61a52fcbbc081b8ce02c62308fec7e75240d2bb29d5a4eadad3a169ffbad99077e071a6c93d55b7597d7ba06cc2654a8d149426611bf3b1f1d0de1302b8198d2dabaf0d209b6ca694c31832888bacdb61b63238f3846bbdd2c05ca20fba2e45e72c327115619d02ca8d7aa8c275b29d83b6a3666351b9159be2bfcc56aceea972c366a9cf0a44637776faa60aabeb7b17aa46f141d674cf917f9c69c6b91fbb479bf4a3a69802381ad0144db2f470295c532fd0e583c66f34bcdb40f9fdcbc140490ec626c38e14da6cf18a3fd00867edb567fc702ae15f1f70b13822a85618912910c590982a59212d5364e02936868e738589e6a9c1ffb87da20681d4fe3773c348db652a7e95f849e1a87f86af1980ce3816843908c927d0700d3ec1b9b26b686fc3777288d0a101a9224aa3982d99c279ca0cf8699797a0f79a20d8a1f8dbc1fcb511bde36b25efe83d54b0db0e75439fad12ad9caef455ac8cbfc0bf870902774484d970c18a7078e2be4515b26fbd681a43033881a640fa50dd5746a62139c0d3dc02e6203fffccf0bf9b762ccff5c8e368c641c7cc0cd76fe25ef77e5f461b0f8958580e892638874ad4102969dc9fc2428588434f3a874c255a61c6408dec818fecd7c0b681a231b50829aa1f5494743024393b7408b1513558d8331b7ec5963d974dcf3f7afcb1f33a643663e1e651e93a580ef960e3bc42dfacfd789113e9fac46c1bf08431982c06696f9c69fd242c55f511ee436e8f0121ba8b9a6ec8cd2175ecddcf0d6aa6a4b5233c6d9db999c7576cbd83f7204aa21232afb3861e89208b29d2ec8f09d06f3a410aac5b4757aaec7e883ffcdbba22737ecac5a1c86b070e14cdf25fac9e9f7f87da1f4259b8a9059deebae1be9adcb4289ff7b44bc19b9280b4bb58789167d87bfb27e85fd62a5659a238f8bd714c8d303749d0e62621908e58da5e9782f03e27807344ee2f7fe6861bf01d4188bf229bc779bdea3a12c0ae276d26e64977651b889d488cd925b6cecdda5dc1f26de4046245e67bbe75e0f1b9067b67c504682705573327af9194bcaafc54b2edc31bfd66fea822223b622d9143892747b78366a8cfe04704c2201168cf4c94392c171b438f24e8feb9344fb8d8093a84844764cb2c01826cccf4656863e4844e1acf7dfc83fabe5310517cb55936742f6b15e3a0c28254c0ce8fab41e7de74f0bb80b20d90b81d90e596c04e7e154879015136b7a3df7969c3fafdb7d61c33ce6626ea7a698bf72de8a34e5afeb64d19a2c4c1057927e827bff23d9dd9d5abd5fb32f3d50709fb5034f9d343e053b1f9b05a886eb166a26d5670bb82eb95b47b15f4925deba12647fc5f0411e843fcfb574405ecd7d6e73355b9fb31f57cd905e946bcfc7c7f0f43fe0ec6bc2f94891b596247422ba8f2f51207ab5d97c0c10c5eb515bb4c1b1a23d879171bfbc90014203f9f48306ecc30649fc9c9bc9117b299a68c66a4769609e787105ac12348717aad729846c618ad97016d527fbcfd8b7cfef7709472f8c4cf04e5b37d6c3b40b252f23b90df26b5800b2f81c6b41f9e1557100ba75198fbe149e69d711f512ef0d5c7cbc61269762627ec1f2595df3bfff224a6dacae502ce3c82df309ebe5f9141b5d43ef8c5adaeb4f9a86c4a4684d9465d3df4c79c350c0af86d888136955b897b9d9e4af33ad65edbf70696d587579e4d9df8cb0d047e059c578d9d072d10ac5166115ddf21bb7221a31ab21c500a9548748aab12cb2e37b521bfdf921b0333975163896f22d5a348d05fac66511b3d26e10f6467d6e9224322d11637534ad83b74078d838061d5ebaf6c2017b88330790d04c68be199d595ad3811fba21e28e1c499a19022169bda770f2ca79000571e61be78e7744b69a032dd484421aa0e8d6f841ee8cedd0d78fd022797e28b75a00f9da0637bfe46bf6bf73bd9f0e5ef942d13ae813f195b38692610144c75d5fb6804c3b8e423eb2c419477fd5145da9096ede938ece9da42edd8372400a854093e9c6a58a27278323c96995b260db9e8981758a5eb1804ccc33ef98b23d6f5ba52a5cf3e4646c2deb8cf997199f2d9f914c9d503946a5301601b10e4e86471f2fef28688485e3527eea0889dc3bb7e33818000cc6af9675856ae42b7f44d98dd448959d2590ac061aea897c4b4462f554ee8dbba20f0ea0ceb6cd219ef3fe24aed5be7519f933f1b10879fc8d62d1458f8db7fe790dbd01405780dcb6a5e3f05c32306799b276c5876782bf0e4672b937565477655bba3987d75be103aef2eeb776e4c72c35c90f4e8dfe7bea0207839644dc32a4ae123014b9affe8d41dfd868f4a520538d5211110d1cbd5bb2bc0d5f3f38546e481e0405c98d0583d49830ef805ad84732c5ad3977533338bcc227cda87320ae2147f2c5cb4998a713a0e00d365e4949e897a302be554742e481d14d9fb472d42ed6fa146754f30c138150aa144583dbbfcd290855693c33fd8bbe2bc6e38639641b031c7726c28e5e214e86a120542235f71f9146f65e7229a67c6546e01b45b40f068b8f0cd9a9afbdc4b5f5cefb474f11bac9943bf25a132ca6f165764e60d428d3e193b458a3da917f87bf45b977887ee2e10171b4f91c95701e8f72127ac8b8c2050bc0e01cec85c50cc6e20b7b73a143bd9960ccdc6828c7f040c44384f9172032e34ecaae17fbee3de859eb14b549bc47fe8e18740d68c4df9ef7034132197e318bf52c7776ccd4190b3d9759e6571b6de4c5d9b2407e5a504e7f6e1867497261187ce4be9fbf329f58ed2c23ceba69e351d7edc83ead7f6c593cc3f642bcec5b2e75a0b90db670500ea65be831d9b390a61b8554dbb40465f93790f3f9ca07b29c019023def8a9192aa7e38347b6759426cbc34eb695df5afeac2d0c9fee5027dfa2723eed638f0a4b8d9a1357f4e5fa9fb3553973e72a7965bdc58ac5e09c3faf75513f75a17ea5d80dfef7fd117938857639712300738449a35071ee99da86d1448dcf39872efe64158694954e1cdd143fe256acc71a8689721a5bcf8f0a0c02528167fa76e38abbd8e28c797e0acc4fdfd9acd04ccbbc42f01f50b8af50e56080a97de22d008327ef412f4da441babd6316b860da3f17e46585f7c963c49dc57ea9f33c2ffe017ad877d6fd97a3c94becf2a14cbb6d2e6143b72752f79f9206776f612f989561f94df98bc9d0f16486ab6661873a14c6aac51d5bfd8557fc445e272c391cc282964b2eb6fc666a5789216b3f3f8190f174d64f49ef18a8358ab07884e5310a5610e715fc065a3831d6d9f74f7e543fcdb25699cdb2188c89dad3a81e87ada8362ad397a341c95c1ab4fc0ea3edeaa015563222d09afc6cd0fabaad3200ccf69b59c3511be9cbbdcf834737164123a6ed2a65509919c5e03d8266d47eddde92893f6744d5a1890ec205969df73fb512afcd73a06725c8aa8385819af14c9d74a80a9fa38fca973973022011073208735624d8cf2a274d1711532e5f720ebe2a8a1e41062f071336726bd8fa98aba9059ef02b063cc8f61ad3123b0f8a0de4d3ab7d93f7bdbe34c77483f7e3fcfa6d9490c2a3e59ee5fbc02b471c2144e6fd101b6e8309a26a9838b5f19190e60a3733fc644778f44e62e79d6a9a9d1944dbe11a00d6323e1c1c8a65e6900d18a0f1cf648437e4dac69924c0e9796171530cd91a3f10e6854b359fff942b13e0731bc2574e613ef82508d11c95a2aa76c58207864c7e4762f0709a43ac972317faf6f0a0e3636466c5cd98a9153d3f8834b28ddcf3638a1aa7915c2a5f48daf325728c48371c503a59c490c1346304ee7c4b69559c29c7544957937ed8ffde9e67d1a5449ed812cf103e6a685e3d6a6dfb289525a2e0087d6e2e27462ed4392d925cbdc877f78453890d42f7423b27141fe73dfa11a6b1af3f13703688a9df55e18aca38e397d77054a0dba9f35c1d406ced0a4342c76a56b7d1e78c79887cf8fb0274ef024709229550e39ce06f703a6c64ddc7b458ea0afc797a29801c6d5ee68d269e259b71e8eaee66cdcd571e3a94e402e313541b0e4778bea8ee3ad98532afd92f24f97925796a2bed99bc1aebb960837fc14f0d335351b4fb79496af215febd25dc355604aeb0bb52b3a5625a6fd2918c78debfe22718d5a373e911186792c68f336d78bf460ac6e05cfe1aa36de36e0103c98e47cce8e290ab687a35f339112c3cb6df662c6c0ecac88631ba2a5a6a163b5503170dcf2b39d0d25bc34c5765d6f3fdbc5a39989cc548f34d415915e8a51e42a7dad294c5f38731e3dbb3c5d6ed05638501555a061d87c757e4c2af2d2b8f993bab83a324500f48edd2b1ce8125d29a17556ca201af1dbbcaaf8af70436ca741313683f1bbe98a3127951cade71f63bfb097cc2c01c64a4d8b154bd793755a2648ef4248f99605a2055be03e046d0954a0cc6e32ac8a82017ab08c192abf528ea5980e32580b81234ae1a91ebd88c7a929409e04a3f7dcb1fc3dcd8d42729528fcb45e57ee7584a35cb2dc7d5ae7f0dfa9038c609a82d61e1c6fb02e58bbac6c51737d986940f63e424bc8491ea201df8263b894daf1d27547020a24601c5f1fd98c4e5f175d97f1ba3ce0fe3ef6ec4492b18faad49160dc5873af25924db25c925d1832a360f285cbe97e33c9ad2e0f03b2a29f0743ee5b23245cd6ff7a503e4574267adef6f6d3855fd0328e4a67155725666498dcbc9f740287dc934dc945ea9c8a699029c21197cd4e64a8e3b8334a77575b7bde697165a22e7bd1e2ab2f72d47b9e59c3a35b5b97025e6b93253227df6756d7e7496cd848efd41077f6ab8525b0d586fe86af96c2016559339d7879a37ae7de2ef68a378ba18659fe82327bf110820d1511e014f145913e482901e528d6b779649b7b709a7d69ede507e89c19760b0430733413d74e27c0c4a539ef3de9c5c1b0342929a43f2d76d1b33e2e5b3b95fe314d41ea94a9f62cec436c29b8f160c508eabdf6484f56cc56ba8100f985c52a50c40005dd4ab2ce1bd0ad4dbc6a621a575d2a194b37101feadd4b303ae93324922831cf6eca085b4e3bab21c093500aa744dfcbed7047d93995dffb889ca809c8086749ebc70a720ffe4f29291fa222729361f2d63f59ec77dccff4b9c1c3fdfd9639756d1c54a04213ed1b8ad13301a4dfc72bb49e9433bea2feaa3fd184212f46a92e20d939faf851968e3d7243313d47f9744848d8525f1cad896d7c4c917f326a575b4fcad3a438291ea0647d87aae64c550903456b064046706990b0600b2bf847effc6968a64d2beca25a441f4cab31b44131fffb1ac4ec92f4b26534b6828a86421005de16bb8b7291565e12d1154d596956d8d3ebec1404acfff3cb71a3c20d8de6c0ddfbb5d55163859a056179a9aa99d3d0690a2d70457a06e66e8e0ddc2dd394c7763d94900f581e8ea9c37b68d6a7b608e46e4990b22ede988acf2861f8e4b45ff3f2e9f915b6dbea770349a2e2e97ba49833daa1802591d423da535c283c2acbb6cd21425d3707f9c8693da02c8d9630482dec669eb3031f58cbd18a763f469f9f9e28fc134f6e184b0d28ffc2a8ef22c5ab439bf3d4b0c8b5a0e1068433902dc8b56c61e8001fb0ac67ac38bb242f4c1b6d405fd74f08491cb82ba62162d94157c62919e4d7e2b0acdbf4b4069da72c53741d5b7aca203ff48aad8bc62bbba62241a55b1bf982f3f00acae3a87e7277018e4fd9b6e3bbccb26de9d398d8f8ae4832b0bf0df554b39eac8a6ac66358c84faa627e536cb9fc72c6324dd5a0d081ad9adfe8b7216161bfb70192f514d1fe47f3e9c928e6e757ee31fa5e529227d2967aeeda3d8e4b0a8f547457e0f92375dd058e05439c207e7931d73d36874ac18729f8f6dc0eaf3cfa8f71ae7b0f08be36b5636b3f25c54bdf638afaf90fc7c1cf8ba15be661887eac9c991631a24ffcad0c7a69ba5aae38dcf43b9737465eadf53cdc37895c460fc06258f0dd78da7a3bfa1a5207ce7d90e084da447c71a3c9c37d659316cc7b7bc921902ff0c05ecb3dd3f9b071cee24676b2d187aeff1081a7f93222c99937ff684bea149356822c94152463fd038e05bc80137c636a2a8340f48c36f8e9070eb802bdbdf3f2fbcb18b7635e5caf52c9d581dc35ac39aa1f363ac581efe631038c57c2624746581c1c649792459c4bd1a96d0e21ceaeaacc9a0f112f27ef73aa1affc5a7ca247b4fed2259115de87a6938e4199afb4f77debe617ef9f6935a359feab0e5f10ca72b2df1c592a4bffcbcad582d32b9be74e228b6d0ba071a68f93dbba1b4619161719d7ec1448de80be6dae025b37d2631b04dc25d9a30af9f42e9eaa3bbd6b634d20d4c94a9bfd4b04c47310f300da97c07be19e3aebf25e2076f08ab85f771ecd8d80d8699efa0d6292025b1a1bff87725d30d6829cc23204e3c52dda1143bbe1a7a63d2ac6c6f1d04599c0bf05ac012e709796fc6026a758058e515e254ffa0a3f04c1b5028af306a88c19ecbbdecbc7954d18934f00ed17c0a2c9439675f5b2e727ac5726ad93f3d2c84d30a837c38b1e4150c36d8060602ba8f082a145ad4492d8d0dad7109a14620e60a910861d4f43a96a3ccd0a408e27e8a113ff09ac9cde4608233584d1f608427d6c928697eef2e874929d06631170b79b08547d74c8be9fbdb931fedb1933faf2015bf43c82b18fb5bae0f77aaa6681d29c0d17ec6672c71f9900d78c6b583cf87dda80f391219f46abeb97722b1814b8592cf04302c93dcfba331da9b0a147986d828d0af1a254f81119709571999beedb5c9f781ae0fda0ae89e68bf2115baeee4b494d1aaba8a9ab3be28d79cf959896b11acbfb6a8fceb372701ef4afc3a832c31c5f2b15764ac5ac559fc0ea3df5b025edc422134b98ce3b5f1a5f9e590a696806ad352872e0b3bfc54181cf54063615063135d71c5a003a390d91a9bb66191f20c8c17c1bc6de956257f731666493f5b17943fe03e548b11dfb77d7ef01f585976f96b7763bc13874eae8fca4df28e66b9460cd3f1564d93cda71381bbc211dd4857739d3dbb2ad42b4e91f2389c8c4bad070bac239c0cd97562d2c3a682cfb3535330d112d23cb06922c88613005864aaa77796f1b4e9299b2283f17292e17289001075b61a957ca4072390a9c0a86ac9ad0e8f8e943573e9b648597c7b8554969bc4e9724a45c4bb8f3fe6673b5302613c366cc04673c17c85abe4e38a3f6dae2389a083c5f946d7d252253c0c7705d639c40ef21d598903d73201ebedb9071ed25fd6b37b605917cf27b60b4d2ed4730d20e5d2c1c14e3495d3d147fbde753304cca8c63878415102af2b14f497bee7f739efa7fe3d43b2a04060bca5bad1ae183bf6cf3f5fec4c1ebda6273fa198128e48b45b11fa3377d13fc0ed3e64f9b33bc13a1cb8933d02fcdfa7c06a22cf8adba85bcaa737eff3874b08bf1333abbe1b593428d6cac3397b99411cd556dac1d5766eed8e8d6632f1c541752c3eb11a576d2167e1086e15ca716e7d4cc90618435204aa02ecbb14abef80af34c09bafa0ccb4af29628485235f8be6fedb071b58676e8c0b798648462a71046da5036d38ff0a79947ca1ec3d07a5c396c03d54d7906269423c65378582dfcf97375fe8b7763ac7df5a54f851d69714aeb06fd479a89b483c6d249188a055b33cad518caa219752b7124776746b5616c0bd936ff9cea14cf6ff09d7571f828f5a31ad06c6bd350560aab01e1e4c81f7f9598c57ff76ae4e0a09eab840fc35cc17d0a680f45f8ac207d3ddaa7c7a00b70d6d5dd8550eb718b6d052114e710bfb490ca21e38c12021a91e3725452b70168895df0c342a3d669b2732b00cfb977bcdab11ab7dfdb43618163793db8b37ef0320b2816f0dd6a182cb0926f2f696f177df2acd16c1eb42e079e160fe02a4410688b28c301c02b4abf57e9933504aaaab7d4c328a5e00a4fa96ee986eb01b895638e31024923c159618515561c7110ec81c4683aa11ae55358fb5fe8b7ff6d9fec2d53ca2c352a7d285266f9b1d706c3776db1aced4b7571594b220ecb4e7d012da70dff2bb26cf48c1df91f1717d76649042e69197c549ca52d8df7caf2940d7926268f3247cf64e8d6e613855cdad613916e4d812706bab5404f3ce1de9e2cb96cb726e789195c1ca32571838b9465d9e5e3e2645812fb5c9c1b4ba2114b1a131fb5c5bd2d5972c92eee8b25b1866b63faae2d97d6c6136b17f75b726d2d2f244743fff3e0d6fe3cd184a5edeabda02cc7e13be4de665872f9b9b736965c455c1c8f25d7f0d6043d31d17356fdaf766d49dfe56449a33d5371f9d657ccc5d159120bb8373b965c512cc7a7ffadb93708965c5c6e0deb89752c69467c1414d776c3777971910a5876ddeeedcd926b6a29edf85b151787c69208c4b253be2d3c637efef7c6f2377f7129bdf85ad6ad61f04419ee4d8225d7978bcb61498ce0e2f22c89083cce72cf44c2735ef1bf2617575b727d716b697cd778716196c4a6e51c7c79cb31c9ffdc3c63563c536fd92c5f1e96cb7e27ee8d8a2557a2e738fc9f1017475b7279b11caffcafcead6979a29c8b1360c965c772cac74d717145965c5cf796b5e4c2e122fd5812dbb8b5289e98c633b6e77f6e5c5a194f7c591edf39cb71d1ff5a58d2b4bc100baecdcd7785706b043c71cb7394ff0b7369c52702594e39fea7e5e28c2cb9baaecd82efeae1d6b6be0b6929d7fc88e6da44f82e256e2d8b27c2716f76965c06dc9a124f1ce3e21c2d894c3c65213c539ce5a8c2ff4a78c66cff7b6209c6c5d959120db83622df35e6deb65872b5f094d579a633cbfabe7296bd424ec497808b7b624924e1399ef1bf20ee6d8a25d709d7d6c07779b0947d79262dcbb7fc6f3c6757cf64c6adb179a2044b9a141f65b5a431faa8266ead8b273e7af6eb25927b8b62c965c2ad8d4f1cf2bcf5b88dda2c1f7ebddc5bd5924bc9c501974479714f9644dbbd295a72e159ce6678262aeecdd0928b81a5fcfde460395be399da58d228f8a8066e6df7c4a8e5c8e77f145c24e0b24b5e5c004bae3aee0dca920b776b193c71866b2bf25d642e2e8925f1837b6bb2e4a22d6be8ebc6738ef0bfa54bb3e3894ad7e6e5bb04dd5b184bae1b961bf9bf58d2acf828e153e6e4990e58d20e78217dee6dca928b776f2e2cb91e584e013ed7e7dec62cb9842c694a5ec89d6bd3f35d8a96f384ff312d5be4ab6729a7fcec62393af0bf41b7f6e5897696f2ca8f5f1b0edff5c57262fd0fcaad0df0c42ccbf9e58148b9351f9ed86829b3f89a9a6b6bf35d205c1b09dfc5c45366e4999e5cdb9fef8ae171f6c033e9706d81be6b86a7ec8c67d2e0d270dfd47b3b60c9957bca3c7826384b1ad40b69e0e2c42c894e4b9a9a1762c6a5ddf1441e4b1a081fb56739117820b6e5537c97dc1a9927eab9381d9644096e4dcc13f3dc1a134fd4ba3721965c185c1c9e25f180256d7ca6ae659378395b6ec2d7c773f61e498ce7f8c3ff6458da9c782fe072ab22e99644ad8bc465d90564299be099a896a3f0fdb19c0cfc2f76715b96c41f4bf9e6c7354b5a171f25c6bd8db0e472736d7bbeab854b0b7be2ef7166e7997278ca2c782637cb9691a39eff11ba38139644381767c39228e8d6d6f8aed9bd89b1e4cae13936f13f1b2e8eb7e432e322412d89614b79849c53fc6fc945b22d89602c6386fe47c7b509f05d626e4d8def922d47deffcedcdaec8902dc5a0e4fbce2395be29984f7f6c392ab828bc362495c61297d78d9d373a4fd6fccc52db12486706b677c977cc626f85f1ccf5906cf34c47239be652e52d4b2eb672128126f4934e3d61e7d178fa554fa79c1bd81b1e4b2e139b2f1bf21961de3658f5b8be0892adc5ad613bdee6d8c25970e4b29f55387252dcd0bd15afef45b2dc741ffbbe039eb338570713f2c89155c24a525318d7b6362c975e822555976f996b4153e2a82e551fe349632249e49d09206e49db458ca94782608961bfaf696328622595976295d2426cbaed9ad19f14430aed4fda4b2a4717921172c67d6ff0e58daeeb8ba1b2e92926557ec19d3fd2f8a8b63b2f4faaea6a524a135434fbce1e2a696c4f1da74df55c0b521faae276e2d81177ed41dcff188ff2d7a8e42fc6f868b33b42432b09c2ffcef6959f955736b433c11eb22f596c433ae0dcd775970718396c42ef7a6c4920b84678c81ff99716bb9272679f68e9704dc1a124fcc5aca273fad78ce5c782629963da2b5139e38c4b5497d1703f7b666c995e4da167dd7d5b5fdf82e2b4b59c5d716b836a7efeaf228fb7a261096bff0fd3d6708ff0bb22c1a2f7fdc9b1c4bae25ee6d6ac9352e3ff3cfb1ec1692f6c547712d57e0afe3dae07cd7084b1b14ef155c4e40ffe3dd1ad2138f2c0be53b68591e5ebe3ccf773e6350ffeb6239cbfcaf17f7b524627165d24f046e2dc913bddc5a9527ba79c6ee7826224b69c38f5ccb09fcdc0b4bda081fe56779145f25cb9bf8462de5125f93ba4858965d3dee6d8825570617276849dc726d63be6b82e5ec8d677a634943f34276584adccbe0bd9559723d5d9b03df856879d3cfc5b2b86f9be52c846732e219b3f33f3696b21e9e89cf73b4fa1f0fb7c6f55d4196b1e2330db01cf3fc6f827b7b62c945c2bd055a726959c648f81fd7735cf23f38f726c292abcdc541591271cba9f53f291707c69268c3c561b0249eb935404f44b49c7cfea77b9c017926448fb23a9ec9835b737a2202b776c413c3b835099eb8c2bda9b1e41ae2de88587269706b747c978f6ba3f25d792e929765d7d252a6e799d25c1b96efe2f338bb3dd308d726e4bbbc2ca51c7f63e0e2082d896196b2889735f194f179a605ee4d832557024b69f5352bae2df65d51f73668c9d56529b9fe66c572c6c13311716f652cb97ab8b73d4b2e2acb16f132f68c61f95f18cf58ffc7c472c6f0bf00eecd822557995bd3e18958dc5ba125d7987b8b61c9c5e7da18f8ae0d963111fe77c7ad253d11c97294e07f183c67733cd3a36b9be1bbbab8b52c4f8c7371062c89481729b6245e2d2507b5e5beebc9459a5a768df7d6c5920b867bf3b2e45abab705965c04dc5a184fec5a8e84fe97c19236c147ad59d27ef8a8239631ac6702e0e2724b2e326e0dea895f9692809f373c8ba7b4349e383e4730fee7c3ad4d3d91ccbd2db1e40a6139caf1bf222eadeb89002c6793cf31ba382a4b62efd6ea3cb1838b4465d9d5bb370e965c0a5c5c0b4b629e8bab624944615923df3db726f5c430cbd88fff55716f732cb99cb83626dfd566299bd4a6e4bb1a58ca2bbec6c073f6f54c775c9cd492d86ba3f35d275cdc922551b6bccb0fc7bd21b1e4f2e0d6f83c71848b43b424c6799c61792618ae0dd077c9b094867e4ce329a3f24c5496b4382f048ee51ce37f085cdc6cc925bcb70f965c6b963138ff1bde5aef89c08bd35a127958da84ef15e5d2de78e2ed6923e2bd902cbbe41be8da0ef82e079eb3d0ff783c65709ea9ccc5f5b0245270714b4b2e382eeece9218e51963f3bf331e655a3c5305cf980fcf64bb382196440c6e0d8eefc22d6fb5ab64c45236fd34f494cd9e09c9c5d1b1243e717175964428cb39e67f3fa71dffebf294b5f04c76ee4dcd920bc9c5fd5912b12c6341fe67c572d6c53395716b0d3c71828be45b12d158ce33ff93cfeaf98e716b623cb1786d037c5799e518e47f0b2c698a3e8a847bbbb3e48ab29c0efcef76710d2c89514fd99567aab2dc8c6f96256dcf478d79c6cefc4feb192bf43f396e8dca13db5cdc034ba294e50de9365af39c11f14c5c2ca79fffed2eae4bae46cb1904cfd4c37236f0bfd9bd395972d596b2ca4fab4b43e389733993f89fd4ad51f0c4166ead86274e716f564bae18aeadeabb4458b68d974ccf9187ffc570678f9e298ee56ceb99e0b8b8e092389fb10bfee7e8d6e2f82edd524af063d672def91fd295b99f5296b639ae0e85e5b4ff89a70cc93315b0b4c1f15e5dae4dcd7771706dbeef3ae0de2a587291b9b81b964408ae8d86efb2bab8324be2d35242fdcce119f3f23f312e2e832511cd52b6c333edb9b6bf8b805be3f244076eedcc13fb5c2404965dbaa55cf4631dcbf57cc76b4be1bba6588e75fe17c1bdf959725db93643dfc5e8d6d63c3182a52d87f75aba37444bae38cbd184ff89b09c39f14c5e5c9b98ef92e0e2744b2eade57ce37f589634273eaad1f210be4af7f6c592ab8665b978b9bb484f965db66b03f25d57966302ffebb37c8def976b7be0bb58b8b70b965c6696362cdeabc99286e8a3025ddb9aefea6079c6b2cf2af0bd7ac606fd6f6b297f99e47106e69964b83537becb766b263c3188a58d8af752b21c7ffc4f81e728c6ff7e58cec59c19f04c2d2c67383cd315b7c6e4896796b3c8e7fc2c694c2fa4766d5bbeebcfc591b124eef08c397aa6001e6752cfb4c2b2582f7b1737c792e8c4722d49c592267b26af7b4bb3e41ae0e24a5812ab9631349ea9692913e0999a3c47afff29b1dccf57f69451f04c6d2ed2004b22f1da8c7c97998beb5a12abb8372b4b2ea5658c8767aa5d9becbba4963623de2bc9bd25b1e4fae0dae47721b9381e964442b7f6c677dd9ef382fff5b8b539beabc7b5b5f05d583c635bcff4b4943d7e62f094059fc9808b5b6049246059ddf7cd7276c13309f19c19f14c5d2cc73bff936029c7c85bd36d64c4bd35b1e412616953e3bdb45c9ad7137f2c6ff3fa8e58cea6cf31b0a421f151522c471bfee7c2c5355912694b1a931782e7d6063d31855bdbf344112e929465d76e3972f03f431749cbb20b80e5557c992c6d6cbcd7966b4bf25d691e67bd672ae1dec02cb99896b41eef84c5c5552d894a96ebf07d7a8e60ff5be2de42587235b09c591e48011707c0928b8da52cf32300174766491cf29402fc0c612909fd28c652d6f9b189e528c0ffd82c25063f9a716b4b4f84726f67965c02dc1a004f6c726b1d3cd186e5d8e57f7896b389ff059737f077ddda9627ceb9b871c965b5fccadfc6ad357aa21ccbb9c4ff804fd99c6732736f73965c4eaeadcf77bdb09c74fc8fcbc549b12422bab6a7ef02f39cb2c759f138e3f24c312c9bc5cbdce38ccc33cd706d007c5795e7cc8b673ae3de824baeb9ac0ddfafe568e47f541729cab22b69f9125fa87b2b61c955756f262cb9e0dc1ba325d7064b9b14ef357569713c31e9d61c78e20697c6f5c41ecb89c2ff9a9e7de1db7571342c897f9634193e4a878b835a7285dddaa127f2b0a441f0510a2c6d5abc9793e5ac3dd29667cc8867425ad2f07cd4978b9b62493ce1390affd7c3b5fdbe4bcbc5e1b09c4b6217f74666c935e4deb6965c495c2400964436966ff12de02943e199e82c696e5e881b1707c49268c1c5812d89595c1c054ba298650b7d87cb1d90b75e9f11f76666c915c072fe3e8766592f5efa96e394ff39b09c75fe875bf6c91782e5d6f276bb003459ca333f3ab9351e4f54726d1b7c97104b1a951712e8e22e5812cd2c635dcf5464490bbe103bcb19f5b9159652851fe3789475f14c165cdc99255180a5a4e36f242c67819e8987e56b24ad828f6a736d237cd712cb7fd4c6e6bb0c5ddc094ba29c6b53fa2e042e6e822511ccad79f1c43b2e2e8825f1826bcbe0bb8058ca8678a63fcb46f1f2b65c82afeddeb8965c53dc5b034baea87bb361c925e8da087d570e1769c89238c7ad353df1808bc35a1267b837394bae26cfd81acf24e4da867cd7977bf360c9a566391ef95f9be76ccd33d5706b5c3cd1d13396c533f996f388ff45dd5a9b2752b09403fcb4e1d68a3c11cbadf5792209cb5bf82e5d9c9c25b1c972eaf95feeda0e7d57121747c292f86639f2f85f02cb190fcf94c5b5417d9702cb29e87fbd652df8aab19c61f14c635c5c8f25971ad786c177fdb0a40d79214fcb2efa162f2e8125b1c8c5b9b0243eb0a405faa804aeadcb77055ad2c2f828e252b6f1b72cf70667c9b564f9155f2717a94b62a3e5acf2409296f3c749b1fc83af6f59215f3cb7a6c2138db83614be4b8a6b2bf35d142ca5033f32716f132cb9c05ca429cb2edeb25dbe592c0bc44b796b687cd75cc64ee82dca922be922f95812d7584e280f44766d4bbe8bea5146c63365b094e99e29eade1e2db99a588e7efe57e8da3cf8ae229eb1209ee97669b667fabab723965c866e6df85db18b2497442e1e674a9e898567bb5e1eb9370a965c629ee314ffc361d9309206e6856cb0a41dfa283e4f1914cf446839738f04c63226e47f595c24214be2a37bab61c915e8e2ec5812a358ce290f04776f392cb9225842b1b4397aaf2fb776c013d73cfbc1f78d67dd7cbdb8b5199e08c5520afa118c254d8c8fea7ace36ffa3dd5a9e278270711f2c896b96fbf8b1584a2ebec6e6e2a42c89bb7b5361c955e739e37a263a96b3e133b171717096c425d7c6e7bb5cb835de13a596b3249e096b196bf33f346e4d8eefe25da4e0b26b2e6901bc10019692cf8f5d5c5bd4772d706d127cd70dcb191acfb4c6c515b12472b0944d7c6d6a29e54ba8678cccffc878ce0a3d1310b796e88944dc9aa2272671714e4b2e471717c69278c353f6e799d43c63613c13908bdb5a129358d2127d94a08bbb5a1265b8b8444be29ce5457c8fdcda084ff46149b3f3515d9633c8e7c62c696c5ec819cb077d6bd7f6c2776971717e96c42bb786c313ad58ceadff6559c69efea7c572e6c33369b1946d7e54736f5f965cbfe56ce37f572e2ec9920b6c397ef0bf0f96d3f13db39c91f14cc35b9bf3440d2e6e8625d1cfc5e95912a75c5b9def4af43873f24c8a96565c1ca02531cbb2c0ef9f6b33e1bb9c58cec27826342ed26d490ce3398be0997c78c6163d93ecd6e03cf1825b53f3c4411769b72496b11c35f85f07cbc1f856b9361fdf45e5da3af82e229663a1ff69706f692cb982b8485d965d41ee8d8d2517a3657d78d9652c8a67da5dda1c4fe43d2bc3389bf34c38dc1a1bdf45bbb5e013c72c2bc0f7815b2be18940dc9ba32517131797c69218c4c5d9965c602c9778ce1678a6454b9bd7dd412da719ff9b726f584bae192e2ece92c8e4d6ae78a21b17f76549fc5d5b08df85c4ad71f0c41a9645a0b4a47732f2944df14c14dc1b0a4b2e07eeadb8e4bae2d6a23c51cd721bbe422ece8725b1d09216c14731706f452cb938b8b5264f44b3b459f15e4b6e0dcb13e1dc1ba0255796a504e36b625cdb9bef3a746f052cb96e4b3596728cb7052fedeb89412e8eb82452716f84965c619eb13cff6b633959f89f906b93f25d75ae8dcb7701bab5db138d3cc746ffdbe1d69678221917e763c9b5c6c569b1242a5ac6defc2f8de5ac8d67726329ebf24c599673d1ff882c67a0b639df65c2a5813d71e9de0e2db9a82e0ecb92d8634923f34272584a057e14b39433fc48c7ad61f1c4376eed2732dd9b0e4b2e096eedc813b9dc1b174bae176e0d8c27122f2eb6e4ba5a8e5bff63746f192cb9d05cda1a4f9cdd1ad513095ddb94efb27371c525f18a25cdc90bc9b3ecd337cf450a6049ace3d6b678621c5702f03383a72d88f73ab29c876f00cbd807ffab633903e299b658ca167e74f41ca9fe17a889a53ce147386ead87276e71715b2c892d2c4716fe67c2a5cdf921032c633efe47c5c515b024de2e129225f1eb19dbf2bfac6b5be1bbaa78c6a2fccf8b5bfbe1895c5c1bf0bbd4dc9a084fece1def42cb9a62c271affa3b2ecf85d736de377413d654bcfa4e43966f13f1deead8525579ee7d4e27f4e6eedf744032e6ecc922864299ff85a02cbfaf83ab0945b7e9cd716e7bb4878de7cb711d5451a9744ab65872f812cfbfbda79caf165d4ad8d79e203d7f6e4bbaa2e926c49c4ba37314b2ea78b336349f461399ef0bf111e65c267bae0d6fac4a6e5407c075896836f1bcb1187ffbdb0a42dbd907139a33c10dab54d7d179b8b2bb4248eb935284f5c603996f9df9e8b63634964b4a4ddf051405c1b08df75c4bdddb1e492e23943f44c4d5c1c154b62a2c71995677a61293ff871786b373cb18a674c80ff6df19c13fc4f69399f3eb7e7e290965c62dc9aee8950d796e6bb30b8381196c4364bdb19ef856539a3f89f9265655f361789c89278c7ad757dd7efda82dfb5e6da7adf1565299f7e82707147965cc57b73b3e40a2e656b9e49cc7354e27f35dc9a9927f2b9382296440dee2dcb92cbc7b5357d1797e53e7c8bdc1bd8922b8b6b83e0bb163d652b3c539de7f8e67f8296b222cfe4e4da0af82e38cb5ef9eeb0eca397032c2b819416fc48c673363ed3a16b3bf25d686e2dce1331585ee7db7b7360c9f56439daf13f246eedca13ab96938bff3db9352a9eb8c6a50d9f185b3ec3b7e929b33d539225ad868ff2e1de122db9e62c250a3f6ec9a5acc931261b63b23e5bb78ccd31d6984cc63a7531a431f6b25aed3146abc546398bc5e494f5a45965532693b51d65a3ad49a3ae66a3f5f9953d922a7d34d9bc369696bbd6513669412adb7fd6e56d794d5ec3c93e4d36ef4e36ce194e46abd168b179658fdc4fa49bee9c6d89b4d4c965b2954f3fcef99bf9b8491eb3734fe4f1718f48cb90a6447a871bf788b4ec3d4edaba295be271e391342f89c74eb7e9b1fbee1d8f7da3d203373b06e4790034dab719bb8d47dd7d3c1eb996346ddcbb6f3f441ec0d234a8638d31b97294bb8cdabdb9b68f2f2329f06e14d2c71bf31d9b07919ff48410e9f3b83b70833c5fcae2afb43294c7f2bffc69c759f6f7ff476a10dfd8721bfe779a8dc76d5bf982e5df45bd8cd40e7ee09f372d936d97652f095da46bbc3c6054e0ff249c0e6563cb6c5999e13f040dcf151a5ec3a236ed6bd8461164dda4c6f01f42643d9bcaaad600c3f61e181ed3018d9ab135bce98dac69690c9f43b29e8185e1392559cf0e18be544556b5780c9f64b2b6818861b564c367700cdb4883e1532aeb282463345768f8ac4ad68bd2186e830fc397ac86cd85c92a9d25c317b1319ce663389047b567730c8fb1303c966858ada7e1b32dc3a79be15ebf1f23210effe123eb1f4464bde4c5f0a42c748e4aa2751026b33a20479fb7e18bd4182ec31abed4c6f0180d592fd21a56cb367c0a90f5746078ec89e13a0fb2960987274d21e8e925eb20c31eab61f89215c336e220ebd9a3aca7921e2361f86cc346e79fe14b740c5f14c7b08d0865f547a2dab43286d3c018fe6382ac650a0cafe187d9323286cf764f2769a1532da761b9a0321cec6978d3b0d5521a9e5485a081d4c9fa8715c37b28d50652a5f684ca9a7664f89216599d81868325192ef30d47b2c6f018133ebaeb705a0a590399a3b6ec8cace76ef88c49d641d268d180638d65600ca7f5189e4485a06759b29e7386d7c40c9f55c3a312d15e4a63786c87e1b446596d74c1f0a52daad8062686e72a181e8b21ab13d0709ad3f0a91b96c710b36942864f1f5937351a1600036a0759a3d5ea317ca98ee1f349d633365c3646c83828b3675686e798641d048d2efbf23b2643d6362c6ad5f2312c175586f5f164562d1086ffc862f80c8386cf267da9d1709a18c3ea26a8750a1a968e92e1f34bd634ab61b57ac32681651d048eac97cc180ed6343c0a05da003c19b6e7a536ed8ae140ec0c9f7886d388592f5a63380d85ac97ba180e2664b86c81e13349d6b3afac93b8d029af8ddab337864f05b25e7262d81c97aca7902a46aaa2f68f20b2ba46a3ac36c261789030864f06d868ee82ac0639a036ed8cac2a2d317b296bd82358e8b113864f0486c788e0b58ce0705a90e1a305c397a6185649895ab562c36751b25e3a63f85c6058071cf55926ab5c4c19d68c388645e38d356e8223eb691b9ef391553a53c3695f0caf0149d6b2358603c933dc861f8607c1ca3ab668f81c87d5d20d9f69b28a461cc3f6a0cc5e726378cd4bed242b04552b6938923a86d3c08607b1ea41bcc8aaae88d9e305c36753b29e55862f610d9f7286d51a32acd6387cde1996a7a4b68ec9ec1f4e644de31a3ea9daf80714c33682e3c53232c3da9cf498123d4662c770198fe1360c317c2aadf10c925533de18568bc8f018a2e1333986cfe2183e93865de32aab3b397cc9d1f0580e63bca4355c86c6b08d7218be48563b36c46e5ad6709a1c40a60987471180c613697813183dca08182f8263f8349255db01b5670034fc07a3ac7f2091b58c81ac9bca182e3393f512166d2ceb0da7b1307c8a194e4363f8d270f80f2c86cb7a0c9f391ade438ce1332dc36770342c6fc9ec89256b1a92e14d6ef479c0f025b061cb000e4f22c2cf48ee181e75648d7f3031fc871259cf06daf8c715c36db0a3d64679bc281b57862f3a63f86cca7ae989e1b43086cf2c59cfa068d8461b0c5f8262384d81ac813c309cb6c2f0a426715e120e6b061cc369270ca7bd315c16a6695a7178531aad166e384dd1b0b63486c76cc87a890b8d7ff8301c089ee1bd35c3da72c369560c6f9263d85c97e13233862f4531fc879fe113377c063ec3276d38ed6a78ac84e1b11686cf22555c2333fc4715596d4441d6b11f906ec21a8e846bf80c7e86c75018e3d8114a0701633892096ae3cc945916c6f01ac8d4aab534ac166d380dc8b0484fc3c188640d4640d6f329eba53886d5aa0da7b9313ce6c2f019cc7a060886d7b044ed19673892afe1341586dfbcd45e5263780e80acfa7052ab0d29ab6c6819fea3815a1bc5691b4d90f55258d6b3376cae82ac69bfe141bec86aaf80d9340186cf80c3361a94b50dcaacfdca9ac663386d8bac6348f078898ae1372c6adb0044d635b0619102183ee10c97e519f22c20ebc965f80f1e8675808e3ed7b4719046c383a8d17f44316c0fce701a1b592f11b35efa62583ac0e1343586ff18347c863fc36976643dc70cdbe88e17ff1822eba52cb0aa85347cfeb29e3d1996694a6d248f86cfb686cf874f366c9ccb60d89c05c36708341c491bc3814ccd9679316c6ecbf0252e866d94c17024c3e14d71649d73e2450188527b86c07024660c077243ed991bb6111e2f461236ecf4331c6cc8f0a925eb1940d6495be8548b69b8cc8d61936e18b61767f88f1ec3e794e132a5e14b4d643d0d1876f7705ad8f019f00c97f9f83dcd6415002ab3655ac336c2605836aa0c9f1d1ec48c2efbd1342d51d6b32b59cfa80c0f7295356d69585b93e1b325c36969b29e61195e83329bf668e93940d6342c86a5131c8e046c386d8c61b57cc3656cb29e450d9fb5619370183e09c85a866638923286d3aa188e248ee13111864f2459e3b0a81589c8f0242771fef167784fcdb0bb606d24690cdbab33dc470d683c7dc3f6f40c4742c7f0b994f5921cc36acde14d5cf409c48be754a7111956abc3632964dd64353c47a8d07349bb5ba2d6dd9ed935109035123786ff9862780c87617b7c86cfa064750dabac69740c9f7686071923eb1c04854672c6b05abce1b8330bbc04c7b065281956eb37bc898d611b5579f19218c3676e0ca775654d1b60f8e40d9f49650d64389bd645d63a27b52753d6b9080a3dc30c6fca1a164980617d5766dd4dd5fe0168d81c96ac6350641de3c156ad8703d1339cb64056d7e022eb1f400cff51445697a6cc8ea9305cc61b1e938257071e75da56d648de181e2ba2f7223986c766c87a3a55b14c8de14b520cc71d311b0c6af854d3c6330386f5ad198e646b58df94da32ddf09ca042f7d80ca77191751031b20e4246d64d5b59d38c0c8bc791ec25af616dc3ac632b0cbf4199758d2eb2fe61c4f01ebeda3438b2aa951b8e5440ed7924eb456d0c9bd332fc481cc336d2e3c58b8ed49a039355ad22c36326644d8b23eb180c590739a3e57140ad3d39c36a01191e05a5f50c720c9f73585f13b5b26165381294da3db8a82df3b2341238862f6d0d9f67b296c191d5a4b0ac81d8507bd113b52e55a91d3b94f51213c3470c865d42541b4971f8d21d68bcb4c6b05abbe13121746523cbf0a62ffaa432ac9600c3695e0c077267384d6b380d6b7810e270d99ae193cef024467efa034b6d59d6f0a52b86cd5dc97a8608862fcd319c3664780d47b2aacb533b4856d648b486cf9c648d648e617b10506ba30eb28e31ea6d8312c37f3c91f594c3695a648d448de1b23286cb12182eeb12641a19c396b164782e8aac6ac9e13fa4181e0b22573374182e7b63d846370c5ff4c6f0253bd6784a19b68ca9e1b461d640e80cabbb526b2ecbf0a525864f22559cc360d8461064fda389e1393d85da9b331ccc48d64d5df45993ace78f3546e2351ccc6978cc07dc34afe18bd018b6e7c0f0dca042db8e987dc4d170207b86c76e182e4b331c8002b246e268f8b422c7b531592fa1315c7626eb0940d6332a6b9918a7e76c78102e86c77ab83deb0c1f2b183e7b643ddf0ccf59503b08d770b001b29e0587c52387ac0068d59e688603e0648c638a862d236a5834b6b2dac886e133081afee38861758c6affa062389297dab43a86cbc030dd241cb651a1ac278fac97ca187e031cb59bd6c87a898c61b5820ca7310dfb63aad646126435e92beb999261e9480d6f0a6338ad8de141b486831dc9ea1a5b64750dacace795611bc9e9b90728784619ded446ffb14456796cccdadb337c32e948e4183ebb0cdb684edbc88e19c780487a298ce13da66ad30818b64767f81218c397d8185e3b625607e668e9440da70130bce96af88492f5a2ade141b618b69767f88f1e868f190c9f09acf1ac80ac754f6a2d436a58db93ac8308b33e22c7b0bb2a666592521b091ac3a76c386d8de1b4a6e13624315cb61b4e0b60d89c97ac6de0617893171dac4856b56ec31799319c76c770da1cc37ffc301c091bc36b6586273da9bdf4c6b03c84a82dfb62b88c0b906a19199e5444ed1f7d866503cb70b000862f7d65bdc8d1b05a4dc3698e822c5333fc47a0617d4ecc9601c0f4a2e1f01c1f0bfe01c1705a16c397ae86c78cf0bda88ce14b630c5f7a341c0c49561b3de0c53329c3715e6a4f60d68bdc1836f725eb19fa0c97b59175ac0900ba64a5369800c3632f641d848e61a556d6b11186376d31dce6a5f652918da793ac97bac01849d7f0b96528a77c561bc73e3b4e1b9752c6e694c9b1721ca79cb1f163b253667b465b36ced8b16b319aecd9b6569c4c4a59a5c45dd99cc996ada32d938db33277bbdf7e2de663d9cf6fef96c77a6d29b2e7b3793c8fdddaf35bdb3e467a7c2e1b65cb6d49349c6f79e76dbcf66d5bcf2d75e7feda7cccdeb1c765bd810819656d16ab2daffdf2f1584cc9bcc762c776d3e473b96c9777fef8ecd91deff16e2c411e9f0f59fe641e73da93f0cb97fcc656e6ad8474bf72906d6b308e45249feefb1801d00fa139d184d09cba05e50b47c140a24788c086d64463fa7d95a0397bdad09682d8b20e35c9921c82e2e3909b2a19609160823508618101f0ec03842dee04da43fb410360452ca89041962fc8c247cf9c2905009b0268ba535527aac900a7a63b5575947c706403eca023871da43e510883f0993007f8f0e07d1832248bc387a11f94269a8f397afc4f53a2f9683d1aef3c81cab021d276ba0d68b926494c9096e094dca66cc11a8d060cce68b2268f68b1aeaa3ab4f18d16daa4495aed388c0e3039bee4287a75c94194834b8e3be4b0438e3ae898438e47723892c3c7055df6e849628105716cfd0de1afb38f0abcd8a327c99e191cb337be5325874d1daa424f85683e2868c047046ff88880f6fb181426d01b3c53f63128ca3e062dd90d34da40838d35d040030d35d2080af24050213b6e00a1e1e3cfd3cf86b3346638fcac86590e68902973197dbcfac8a13523630c31b2bef802872fc200e32f7e2f845f6d07cf9d9fe56005dc63d313361e385373ee980974478a16601e2a3d6580797279462ea468f4332d02557191220b2c663904c2a1872baca8828a9f4d21c5cfa280020f9c3b5a827e9e3c99c3c50e959d334d30b18412077dd471c2471d226649cc88406288238630a2882186c061160123227e882166350cb11041cc80982d9afd30f321d0ac87190f737eb6c3cc86990eb31c6682e4049273c78e1b4038fcec86990d1fc13fab61d1d3b06786176488e13773f854edd973e837304cbdf0c20b2fbcf006883788dee3c09327537b7eb642131598a4b004052589a64e08229a99302b6199cbed216104119e1d9a60a601f04c1b1adaa810c253677e06c20707cf788081210c3a9871f09b391b6800a422439525833678ea4cf95904c0e0a025521034113415884a8f9e4018bca93307cd955905b342330a66847e336736c1cf24b883e7cb9327413f3ed840e0834d9e5904c0e0a0255210341134350b3403f4efd913f4f3e409702ae8e7c913e0949fa09f37557bfa4451d384c912255341601435524d052c00c58d1e2950dc549dc103e78e962877aaba44b953d5a5ca0e15202a2f5576a8ee50f1a17a13e58d16397ba8e468d9b3e74d9d3968a240715375a60f9c374ba49a4cf1d1431526d01b3c53f8047a83674a9428c0201460d00c9f234dfa40690294ead3a44fa02a3a534bdecce913e58e2a3e73f4fc794355a5676a491f05ccb079c226cf9e3477a461238d1703343d29d2a48f9baa337be6e491b2674e1e2a60b04f9c3b75f2d899b3a7cc1f3c5412687496037c240065365573f4f0c9b307cd944075ee80a97a83c74b1daa315564aaf834d5a1aa22454f1f376efee0a90347cf1d2978be504dd983a7894f9f367be63455b599f3664f9f3e527c8899ed234c14fb0873c1dfe3028c3039f111e6ce3ec214d9071838f601268b7d8089611f6024d8071836fb0093651f609cf6f1658d7d7c99e2b5e0f9a2a76aca1baa2954c6ecb1c247cf9c296fa8a684a953878a0a9b246f0a08a4070f1faa37499af650fd91c347cf9c364d544d77da34cd19e04f20aa3c5a962801e2f953a68a0e559d295f48f8d9949f49f91902b3037e16e56706fc0ccaac002a3d55547aac2851a2448912254aa6a6a6a6a6a6a6a6a6a682c16030180c0683412010080402814020504a4a4a4a4a4a4a4a4a2a0a18058c024601a38051c0286014300a180574e2c48913274e9c3871e2a44993264d9a3469d2a44913264c983061c2840913264c962c59b264c992254b962c51a2448912254a942851a2646a6a6a6a6a6a6a6a6a2a180c0683c1603018040281402010080402a5a4a4a4a4a4a4a4a2a2a2a2a2a2a2a2a2a2a49c3871e2c48913274e9c3869d2a44993264d9a3469d2840913264c983061c2840993254b962c59b264c992254b942851a2448912254a9428999a9a9a9a9a9a9a9a9a0a0683c16030180c068140201008040281402929292929292929a92829274d982c513215044a79b1a3e5343eacc89f4a4f1554d04a1daa2a32557ac25c874a8d1505b4906153c54a153054be58613306cc983156d858e962a60a182f6c1290e2a58b9f2871a8ca8409c467ce9d2a3a78ca34e913c54e151f2d71f0d479a3a5eace9c3877ac4c61b4c52f05cb1f3c77b8f0d9530587aaaa4b203873f4549da9e2c347ce9e3e61f2807133474f155555973b5610d03d4091656175f8b8d1f332b0977dc98a8b0e08e1dbb0d9b3872a4f1320923979f67875dda1ba33c7ce1c3d6ef6cc7933c7cf9e3a547ca8e0d0c1b3270a142a3e546ff6e4d943c587aa4a1436031419e2c300ab3fce9d3948f2ec91cdf1a8cacd9c3a64ece0d17325909e322f73248714037470f0e08183078f9e3c60aaf48481a3e70c9f3e79f4e4513355854b952c567c4069208e2d59161cff1b6e7c017c86a3c78fac8d35a4eeec91e2e389a197b1215b630e9e334fe49c2449922a5caa6491a2b34409308f9b33646694f1322d19193e9c9c808f26655e368618ab09ea49322f4908f9470018e6ae043f128c124b4c0ba618f9ab071015828252a5247aa2740c019b3a2b22fee14924252066c9ad1ece48d9000c4c179a6062ca148ab3ce104da4072528ba85335048ae1e27c8b26461c8c0907d21f34278a7aa8e0c4b7625b37a591747f4e09171d1e80728f20e43414179a084d01e3d49e6e8e9c386ea8d1e2a394f9e54e90106dfd0a903a729509daa3b78ea3455b9a1d2d3f4a60e1e394d7caae8d0c163870f1daa3a4d81aadae079d3b424e3634a918fa90192244952a4c9ca98609da796f411e3df3c01562a4fd4125161aa78191553249922090e49a05005f7347ec9889b53f26088eed8c04b99b93e1f5788e7d6aedeabcee58571b1a26e9873798d2e960077f6fe4988cb2b73af6ab885f34d277889f04c22e0bf7e784a2effc4e7ee72d7aa8b970337c98c07437375f2c314b83d1e178bce1217c37fe12e4f827bd5c5559aba5b7a6e4e8407a3e3cee03f615da5aabbb5c395d179e070895be2bf7edc79c743b17065681ec8c51d517829112eaf837ba575635c0f44b4c4f58b483c917afc9799eb03e26a19707920dc2b34aed2ef6e81b9bb2dd74a83db8372b10e5d1d19d72ac84d82e3c1da2c6f4a7c51859b2be3c39c2c6f615f3c0208c1ad0eef6465899be2bf7e4b5b135f14e0ea0cdd59a1bbdbe25efd6e4f8a2bfcddb9f550253c675a3e18757b7a2e16157727e45a357073530f66c2d296c4179fae121cd75194dbeb71b1eadc62f92640d7d1ddcd6b85c0d57171ad724f1e54ee232937d7f561639e8de29dce3c9398fcd71037b7f56157bc125d9d011f56c29d741e8a77750f7c581697b774aff42c6f3cbe1866794be08b74ae8f89abb5e5f6c2aef0cc92e6c00743b8ba2fae158fa7fce19f4cb8bada8751dd9e105788f494797920164bdc025f64e3eec66b25e5f258ba8f00b83a1f1f96e7299bf8a714eed8875af428ebe083bdbe24ae1696db23e162b9717947ee15054f5c9e2fce7179bb7b05e74e061e6a3e63801e78c032d9d60701b84adfad2037898d075b7393b678b02c77f4e0a50add5d09d76a8c25aef85f4dae6f802b24f4b42df05e762c73e38305ba3c202e56edfac2ee1690654dd17bc56eae880fe3dddd0ad76a787d4dae1084db7b73b18c78d29a3e98e78904c27f45707b742e561337c6e8817696495d3cd896674c82074ab93c19ee55d7f5e1aed0cdddd1ae95955b00be49767b5e2ed60b57c98deb08caf5e9b9422a824fee555e0a717dbb2b94b3bcadf9e21d2f424b5c005fd4e2ee6cb85673dcc1f8251eee58e5a59c2c715bff2575776fae550d77ac7a2905ee28e4a1a8f0627373621eec87a72dce7b75dddd8f6b95c0555272b7f83c956ab88e805cb9f44e123cce2af86094bb09bf04e5f6c68b95e6592ade09cd3306e58104dc11d04bd9b9d38a87d2f34c32f35f4cdcedfc243ec7281e68bbd388876ab3b4e1f045204b5c015f0463793be38b3a5c9d990fcbe1f63ab858665c599d07aaf1acfd3ef8c5e5cdb95749dc9d03d78a87eb3b74856ddc8534498d0763e0f2f0dcab276eaceb8189aececb87c97075177c181b77b7c1b5e26279d3e18b265cdf1c772b77770b5cab4457a7c49d0d717903dc2b096e520e0fa6bbba47d70aeaee2ab856572c6b077c708d672ed183ddf14402fed79acb53e05eed707b4f2e1608b78ebbc3ba574f5727c7b542727b055cac109e4948ff55c3cd697d5893cb7be05e45717b712e561277c27928a41b73f4c01082113c6f427c31d1cdc179b029ee34f3472278267163673cb0d0d5755d2b26d707e50a4758f2b05d4775ae8e883bdbc1ab84ab83e1ce50782231faaf0e9638b0ff72727d3f5c2d285e205c1ed7c5f2727bc22b4cf2447af45f2d007bb893c73f31baba1e1f86e78e505e4aea7993f245374b9c17ff25c0cdfdf06137af07ae6e810ffbe12a59b95b192c65501e18c51d7b0f55c4dd8ca471f14122ee64e1a1ac2c93ec78b03ccb1bed8b5a9638aa2fbe71650a3cf0eaf28ab858b9cbe3e93e6abab2f9c0172e4f8d8b05e5eed65c2b15ee0cf24f4ad040c7d535716745dcc9e6a1644b9cd417af6e337827de2d956fe27379e3bd4a737b335cacafbbd372ad3258e234f822d8dded70adb86edb7c130977faf8272396372abee8c29d623c9405cb580b0f546099930f06e8f676b842d94d32e2c1a46eecd1030f5d9e1217cbf74c7af35f513c635c1e1875670b0f856569fbe08bb827ed860fda70c7045ecacbf5c1b94224aeefc9151e7ade78f822a2cb3be15ec1717d525cad30b75ebe4982bb2b72ade02c6f67bee8c095ed79e0d64d3ae3c112b81389877ab3b4a1f145269737ef5502d7b7c5d54af39c01f0c1218f52827faae0ea02f8b008ae2ec887f1b9be2d57e8c2ed1d7185bde5cdf6c52d7782f150145cde947b85e8bec22f51b9ba2bae55edca1c78601a7746f0504f5769ccdd2ae1fa90aef04db0d012f7c47f05b9b2ef9467698be18b3d96351f1f142e7126fc57ecf6dc5cac229612cb3fe9b9bba86b75676953e18bbd2b83e08176dc5c060fc6c6edc98b85e6fa66b8c2b0676cc9030778c6883cf0e9fabcb85a54f72c7e2986eb537385405c9defc3eadcaef04e51b727e86235babc2e2e5691ab94e46ed5b9bb30d7ea839b4be0c18ab873f14b8b6e2f8d2b8472772d5c2b366e7b78a72cb765bee982bb3373ad46784cb2e0bfee58dec6ff50b8ba321f86c3f55d71b5cc2c6b501fd4ba3c45f78a0eaf0996b2a6071271737e1ecc8babc4e56e7db0c411fa62d7a3ccbdd39fabebe25ae99e3603deeb8d3ba6f05223dcdd0cd72a8e3bda1eaa87ebf35d219d9bdbe1c3664fa414fe8b82eba37285283cce967cf0c8521af04f766e6f8b2b24e2a5c3b1599f0f16e0c313e9ce7fe9b9495a0f66e6fa785738677993e28b2d5cdd1cd72aeaf242b857693c6e8693b57326e54c76942de59d8fb16d49df58256d165b4edab239b38d8fb176cc35d6c758c7396d33d9acb439d6c665ac638d369362b4de52ce1e9be146d958006c371e2fa35577bb3dee7bc6a61ce74dde6caf93b69d6e6643dac982148793b8d6269bcd20eb664bd99ab4d98ecd31f7f7a49f5fdec76437b6948dd7575b1a63dfda9d375a653d465bd36e96246b65c0d928bb93d5e72329e9e918105d0cc949b642d6bd7cbc36637320bd99add6cae6b8930110db776dd2ce15b7cc47f33deae4b55e9f64ad697c9fcec7f25e6df7e348b3f900609ceea4854cfba467cb1a906ff75cee364beb485b7271028cbb353979283d653c0116e047d3b44b8b413d4b72ecdb4bcf2eb294bd93057922ddb18890238f0f60409b959e3519ae09d36502605c151eb4caba11994f36754857179b876c5ba7cd833cf3dd740bc0e45a0df772031e714b1b1001a402781af0907fe79a1ef21913f770eeb603f01d7966c26fc0ed9f51157a6a61a4c7a106de5bde6690ed333b9ddb831204bd859801be1dc208c0b1673e4e7417bdc15dfef10ea1b963b3f967471e74d2b11fe83b8c563906c44fd124ee32f9ec2506d27bc02dcbb2ec1e7729f03203b00ce98935f23984de80ef8a53fc95bde747acf5dfba18231df7824724c7384e6a9d3bb50400a818e40cbfa2025e118f57947b45b16701ec5920be9733cf8211cb170e2d5f485aba10fb2e5ccb16b2f815e27c1738be4b16afc2d7ab80804c21eab964f189c03e51139f88864f34c07309fe09662c4b10e24f18e04fb849124cf82d3e2c49b03d22addfe2e7b7dc598af06379c8ca231af26a7c78139c782dc3a5077fbe84215e4b095f4207cb0eba9e04a51f81f8220c7a11bc7811842f42933f04649941923fb4fb101c7d08242c2f80637901171f582d6963bc0772bc0747bc0756c809a0de833fef019037c4c41bba613968d11b32f31d70d0c25f91e2af24b10c04670948879f32e235e8fa2b4a5e83315e03e1d24f9cd7c0cd6bd0c05b21be06fd0cca782bc2cf0083cf80ce67500403333e83a4c74083c7a086c760ce631027cc5ba1b3ccc3c5124f0f6f85eaada859e239f217bc59eea9e22fe0f116ccf116387a2b042ceb5c2dedd059d659f215647d05577c05557c05642a50e32b40e22b18f215e4f015b8f90a96241d285f68f88590f8423f7ca11e7ecc0f5f68852fd4c1173af455e83c082c7ca131a8c23238c2324e10cb3834bc02413c0551becaed29984fc887a772b50cb279427996558b9e5003cbaa21cb376074fd04252cdd44f909042ddb7cf154d22cdb6059b629f254a65e022b2f81fc08a4782afd08dc2cd960f011fc83cef8416bfc94167e10174b0608fd14220f01150f4114cb056ef829f2056d2940c332cda01704e6056d9102f581dc9067a0589e41e1039d599e11e01138e3015d01e8cbb2ccd22360c22370e5ff74f0670bd3fff92dc504976200588679b40c330702b43fa0b80c5365098688251817de8f6ee9a4487611e1fb44597659f27d9efe0020cfa78ae773011f069e0f962844fc1e193e0a0ebfa783df236899c5b7c4a2e4f594f07a082dafd05e4f183d4596546ef80754584e71f30f5859c602f83c397c9e3f9f2782cfb3e50d30e1f300c9e3e4f144b13ce083e5016b1ecf9db7435c4669f477a43020f877eefc1da8b733b534e0f7762e783b80dece9cb723c54e94b7c3e3ebc4f93a587c1d2596508ef83a5f964fba964bb7e5130f9e8e118a9e8e9e87f2e5e9945936a1e1e9383d141fef4018cb2530bc038b7e4e1b3f07869f33e539be97c3f4723e584ed99133e6e35cf071babe002dcba0131f87ccc759f3719ca87cf1847278382a7c9c5f4c092f46847f82c617402b008087a3e5e1707dd519cb28db57d57952e7dffcf9372bfc1b099e24793735bc1b28fe8d9025018ede0d1aefa6827723e7db14df8d014b0270ef26ccb7b1fa363d7c1b35df06c8b7d13d951d633cd50e4f15c353f920e8a9ba507579aa2cdf80144b01ac9c0479274fbe010a9e0df1d9089f0d16cf06856f72c6b3a1f36cda2ca9c0580289f82652b011f2852a8748fd1ab0250c22ac11e2d7fcf06b78f82683964e157c9336bf66ceaf31e0d71479355fdf04ead598f16aca7835835e0d9d577367b9347c3554964b683c031e3c034b34f04c287806843c1b32cf80ec17085b02f1f10bccb18017bf80134b00a688f20bd07e49f1976cbd02703e8d17af00915700c8a77963c9a38d258f459fa6cda711f2697e7c1ad92770c727f068e943e313c0e11390fa04808fa6834f00e9d1d0f168b2f804b6cef0f933621e4d0f343cde4c136fe6873773c39b4964c19b71f366c8bc19dd97b1e3cbbcf065e47c992c5fa6c99761e1cbc89e8ca327e3c6f2e6e6c990f164aaf83c7996b623133c99089ecc9e27a300192d64644f26f663ba9428fd983f3f46cf8fb9f2630af829327ecc7c31752c0f91210687ff72c58b89e1c5205ac6b8bc180f5e4c9c9f62b48c0579317f5ecc9b1753e6c57859ca9efc140b1f468b30893e8ca00f231f8c11601af822e5bf34f92f06dc4678f0dcb9c3a80846b7919e07f2e0b993c06d54751ba1b900445d009430ba4a3b5c2522ae0f091e7c455c1fa3db43d38b727b58807747e4eea46448e1ea8ab8ba441f53420925187decaa0d36d6506388c61965688d911506185f78817565d5c5c78e881d113b82888f6db1c5114734c1c4c7d8f8d8101f7bf43120147df08aa82c25e862c9c016cb315a1e01278f808f2f608565f06a59a4cab2c896147827dc1085f188ce9830e845f0f387127d087a1e84261d70c0011ccf0118075670a00406bf8194cf20d05710c75730264a040bfc20087a784057fc1f04fecf96f743c7fb09c30fd3fb59fa3e057c1fd9f37940cf0eaf47c9ffa121cfcf8abf13c6db914227d0c739f371807c9c1e5567fecd987f13e4dd3cf16da61aa03dd5976fc08b6793c3b399f36bbef8355cfc02455e81369fa6cca7a9f209fc60c69b49f466cc8ce9fa3152bc18422fc6ca8321f462e4bc9820fe8b005fc8c772cad637d0e74f28e01185bd09678020c47b407b435d7c074ebe83fe0626fc06bab7004da1404f011c4f28f613e87909a4bc04350896784114bc20043ed0071fc8830fa4e6039df940613e50960fa4e503457940879e8f90d743c03f70e7f108f93b3fdece9f9773c1c339f455667c1598a77af4541f3c959c6f808467e0ce33f0e61358f40920f067e4fc19d99b59e1c988f93168fc182a5e8c970fa3c683d1e14d18e24318e35700e21315f9138a7f421c1fc2d787d0e439e07a0c783f01123f28894774e60381f081aa3ed09a0f04e5fd54f17b8cbc98311e0e9f4f408137b3c48b41e0d774f11b74f02678790dba3c08053c1c20deceef17b8e007617d9b2e7ecd0c3f66f6639e7c054bfecb12df41029f27d1eb59e20789f01034bd202b9e8235de8e151f07d1b3a0e85540f326c0f017743d9f13fe812dbeccd2df29e2c91cf02698f187ae780dca780db4f809027d1f339e8feceba4f172167d9c2f0fa7f70c547d99dc8f19e04dc0404e8fa7aaf26c3a78108cbc9d365e0d001f86803701d0b749f262ecfc096b3e02dd03a2f37dd23c9fdadf51e1ed48f938737c1c087ecc066f429287a3c12bf2e04318f41614dfcf947f208baa44cfc001bfc0d68701e3bf60f00d94f12610f18780f8403a3c980efe041f8f28cb9b60c78b30f584aefc04283c9f39bfc7876f20c8ab29e20cf1bfa0f17bfafca0284f47877703c1b3a9e3d750a141139f678a2f83c48f81e1c7f4f811b67c0843de82ad0741802784e723a0e30355f17c36f807b43c9e21ff0685a942f8357c1e84364fe7cfc389e2c7a4f02c64f12c207a141cf81272f840461e0fd85741f16bdef8347bbecc941f53c71fd2e239e0e20be1f9416abc1c0a5e0c152f66ce7fd1e1fb54bd9b16be501adf06eceb68f020f0f0748a780e6c780bb4fc9f7e026b9e8c131f8190af02f475aef82f48cfa68607a3c403f27a323dbe4f9edf93c137c0fb05d4f82f4e9e03b0365a7c0784de843e5f81a38f20891714e4c55cf162b29e50073f868b3781cb4bc0e423807a3cb9b703c63bd07b06da7c025ebc0977bca1261e5015afa7cd1392e00735f06cc64f808ce700eb5998e04718bf022a3e82163ed0040fc8d0afd0f529e07944c0f7208ec78081c740f684fa7ed4783dba77a08b7ff3c48f19e3c50cf16030f810b2783dc5b7e3c0c7e9f16baa780d989e022fbe0d15bfc19bbf008bc7e3c6ab09f32cfc1e0324af07c8d3199f4c9fff52e81339fa430ebc0506fc9e313ecf176f07c83b203f04105e03aecfa088c7e0809fe082f733e7a9ecf83459de4c067fa8d1a711a348852793c67f01fe9d466f688affa08a8743c71bcaf2f5c8911c71cc108617571f8502171f8582165344f104134a206104a32182f8a1871d72b861852b1000eaf35128e8f92814f0c881f3868a8d9a05d2a03143460c182f1f95e8a3b81811e3a36a1f450b02881f7c10e15004836ea861d10b19605041210804fdf1b3474f9590375186e24508d50664b142054a00436e3421930bab2d4810e16793770a612e4df39be40f440d35d4a048111556acdcc0a2452ec820830c324c289860e251c604c604c604962851a244b4c988112326259894605202112244259430c41093511f65537ae8a1861a6aa0820a2a10214234c4104358f1f97c56a8a0020a289450e2efa1861a6aa0820a2a7e4ee9be2953a080020a28a080429122458a142952420925944894285122468c1831428408d19429430c31c410430c51420925945042094104114410410471e8d0a143870e4d99d2def3f510284da03481d23c64f6e9d3a7561b3264ce5aed8180c103060f183c60f080c153c303668e96395a665555d59cb5da902132994c2693c9a4c8647388142953ca5aed974225a513fcb4d9a4a4a4860c9172469b3d6773c890d98c46eb1f347ecef83933c7399120898a7a7afacdf029c3a70c9f327ccaec21b387ccec90d94c4a6a1c870c99cdcef3b31d0f6db6489048490d99cd860c99cdec78f989048994d43876a9d3850e173a5ce8709913159524899c2c72b2c8c922274b1c2c70ae4c2251514890b42312247f953755de547953e54d152252524386fc53da4c09e09732e58028509eec906eb5d90351f24062af4bf2ba0042b86106175410e1811f3e47e8733e7c8e8f9ecf3df0b9203e87c00267c474f9dc109f9bf248646851c5237df14868b03c529447baf2b8ab26b0a278dcd5e39478dc99c75df99b508abf25f1b728fe26fc9b0842fe06e56f4e7f4313e576e66f580808d2834793b741791b708717be76c4d75cf89a3089af4901458010a7203d782805a3be06e56b45b860e26acbcbcc9429f3322232225c08c04284ca3884ca102a43bc2061638d28bf263ec626a30f263d96f0f8c20ba5285d946e098fb1cfc8874a932767823f694a9a8c3ec6213e7ec8c6dea8b412175440a104148ca0603444103dc89088510d32284a84a8847f88433f5bc04b46b377a034333078c0e0c143c48a9c2c7cca08f093e963a68f193d63f48cc103060f98395ae668a9b25265854a0a95142e2f86514cdb71b0ec8014a143140183070c1d2e71b00ca3a09222c58c19339386c3e170381c10204080e066b39926509a3f686e379b4d261bc7397138224f224f1c8e081129fbecc4e18810e9b3cfdb4d261b471c8e08911687abd3a54e173a5c1cd8a2658e96395ae6689972b2c4c112074b1c2c71b05459a9b25265a5ca4a95953713879bcda46c8b1491c9c6b19326fb9336659ff349937dd2647f1279da6853f667274df6490303060c989ff34993fd49937d1279da68f39722458a945b23e289c24b53e389b2a72c83677ab3a4edde0985676cfc5f1317d7c69258c4bdddb0e482604903e09db2b8b83a9644286e8de98951961387ff0db09c3e3e47e5393afd4fcdc521b1247ab01c836fd2529af0e31b1727c792b8c4b5ddbe6bc9c54d591279cb990ecf84c5ada57922a0e5595f2bcb097d6f9786f44e022c659e1f1b2d97f3872d6903bc902a4bda0e1f45c45236f02303d716c177d9706f502cb94a58768997b45bb3f344431729b724927171302c897b6e2d88275addda9b2756f09c83fee77bcadc3c1399a79cbd94ba35e013c52caff2b3716f182cb9ce2cc72fffcbb36cd64b1e4b09e847e1722af0bff1da96be2bcb72a6c53391b1a439bd10dc526ef1b5351727c69298c3726e792006dc5bd792ab8a67ac80ff096fcd85272eb1a449792180963139ff53e31953f2bfab6b3bf35d155c5c9525d1b794d5f04c792ed26c49142e63c36772ba35039ec8c053b6e499a2dc5b1d4b2e28961ff145726f0a2cb98c3cc735ff03b49c72fe677bcaa29e09ca72223d5297e5a8c0fffc2c57a1b7ab25970ccb367defdcda92279ab948bf2571ebdea8965c52cbbef15280e5c019a3e3990478ceb0ff81597a2d6d3dbc97918bf492b8c5b267be5d3c6369fe57c6adc1f0c4262ececd9218bcb5324fdc736d72beab84e580beb35b9be2896a5c5b02df75c1b509fa2e1a9612819f595cdc9c25d1c9723efadf96658f7cf92c690bbc90326e0df744022e2e8b259185a584f2f38aa5d4e1654296b62fde0b815bbbe089312c65a11fc7788eb1ff89b9381596c43acbe2f0055b56832f1b4bdacfc4756f342cb9fe2c2bc4cbb99c3efcefc8ad69f1c4ad5bbbe3bb805c1bedbb82cb990dcf64c5b5d5f05d58cb1185ff91706d137c170e4f5903cf34e622155912b9eeadce920bcaad55f1443696b40e3e2acfc531b0241eb9b600be2bccf226e4363ae2221d59128bf7f6c2924bcf7316fff76549c3f24228588ebaff99b9381696c43bb7e67b62f0e2d62c894996342a3e0a6b4973e1a358b838214bae474b69c6dbd22c654e3c5304cf5895ff81b13ccbefc65212f1b225aeadd077ed706f514bae97dff9caa594f3e39f65ccea997c5cdc014b626e39abf81f936551f8d2f18c4df14cbca5f4531b94ef8a73717b96442acbf1d1ff8c78c66e78a6d95222f989c3b535f92e37f78666c945e4de9c58728db0dc8b2f958b545b12bfb8b62bdfb5672983fcdc60395bf44c555c1c134be2a1e5427c8d2cc7fa46b9382796c41196a3f1ed726f614b2e2d2e6e832531cdbd6db0e44a7391ae2cbb783c63bdff49b19445792629174764c975c7c555b02492b936a4ef6af28c8df14c411e656c3c1307cf9990674a7491704b62d6c519b12476b01c5ff8df0917f763c9d5c645925a76f5ded6587211b1bccdae5211cf990acff4c4ad2179629725cd8017c26779f1abc0b5b9f05d59dc5a1ddf05c0a5d5f144dfaddd79a20717375c128558bee42fe3291b9fe9c8c5a95912912c2707ff03e0e27c4b2e34eecd8d259711cf1b91db28896b23e0bbcedc1909cf94c4d2f6757b5c6eedc913d3dcdba22517a08bc4b424c6716d76be0b85e565fe47cb177d9d2e0ec992eb6b2959f8518e8bb362494c61398fff8ae5e8fb1f9ae7ac8c6752e3391ef0bf39cbb2f0e5bab5204f2ce0de405872b1b937264baed97226c633a5b11cabfc8fce72f933f138a37a261bae4d83ef0ae2dea82cb97af7c667c955e5d69e78e219b726c51387b706e689772e4e89251184a72ccc336db9b73f4b2e2c4bd9f5b72b6eedea89742ce7d4e768581ec397e9dee0587221b19ca1f04c4e2c631cfc6f8ea5047bdc1217076649645ad2e8bc91ac2b7b3ff92c671f3c53114b5ba3f77a726d78be4b8565d778f95bd286f8a8256e4df8443b6e4df6c4002e6e8425d1cdb2b46f038fb33ecfb4c333d6e899946e2d852716b11c75f81f0c17275c1269b8b81596443b4b5910cfe4e7da66df057cc6547826b99409fc18e6da2ef82e1f2e9201cb2ea44b73e08718b9b8284b62d272ccf23f3bb756f5440b9e3232cfc4e5deaa5872a1b0946bbc6dcdadf578e292a51cbe6d818b0bb4246ab9b5059e2868791b5f304b5b1d57a7c2ad59f1c4362ed2d29208c7bd91b1e4dae1da9c7cd79b8b84b4248a716f5b965c3f96b6b0dbeb726f3d2cb928b8b82e96441896b110fe67c75276f9717671032cb98817c76749acb2ec8f2f9d8bd360494c6019fbfdef8aa76cf84c1b2ca5d6db965c24a725d1d1d2d6c57b15706d1c7cd7104f190ccf74673926fdafccad157aa20bcb991ccfb4b5a4c1f05138dc5b9c2517938b43b32412b93703965c489746c7137bcbb9e47338dc9a9727d659de62d797c472f4f1bf34f7b6c3926b828bf4b424d27171082c89ba6575f886dd5a1bdf55bbb52e4fa473716a2c89432c67223cd3114bd908cf24e7d61e7862084b1a0d1fc5c3c5755912833c63443c13ee190bf43f386e6d872766b19c3c1e698c67cc8d671a726b4e3cd18c5bf3f3c41296d2f612b83cc91fc6e30cc933a970715e96c4a58b445b12bdb834474fd43d674ccf74c2ad41f14434962309ff3bb4acd54bde7276792008dcdb9525178f6bd3f25d7e6e8dce1339b8b5029ea8c092a6c44751b1a441f1515d2c8bc1778d25ed818f0a736b153cf1855b23e1893f2c69522fa4cda30c8e67eae0d69278a218cb9af112805bb3f2c43717f768496ce2d688dfb5746b013cb1cab585f9ae0896fdf2d5e222415976e196b43e1f55e6d6883cf1caf213be00dc9a0d4fa462395871564b620ccbf97c63cfd18affe5706b2d3c518965b77cb1584a383ffab9b5454f9462692be3bdaedcda044f6461d92a5f172ece8b2571d1c571b0242a706f5e2cb916dd1b71c945c5c5c5b1242ab17cccef6879905f8ba5d44096909c117aa61f6e0d8527325a8e16fc6f837b1b2eb98458ceac782631ee8dcb920bc8c55959129596b346cfa4b5b4fdf05e043cc7a8ffbdb948409644376e6d8c277e2de79507c25b8e45fed7c0c511b0e4f2bab5109eb8c3a5119fe8e371d6e3994c585e644ee2ffbc5cdc5c7275b12c09c579b024aa79ca1078a629cb393eae8a67cc81ffadf16c035fe1ad497962031769cbb2ebc7c5bdb024ea798eb7ff9159ca9878a6414f999667b2726f0c2cb98e2c67523c1318f71666c9d574716c9644a8a58cf74c52f746c292ebcd45e2b1240e9f2314ffbb61d9a8af9f8b836349446259305e2a2de5a3bfa959da88779764396ef9df9da5e4e1654396b2089ea9818b1464497c633902fa5f05f7a6b5e4e2e1deac5872a5b094497c6d805bb3e089305cdc9b2571ead6843c51ca5376e699ba2c65f0e70e17a7b4e44ae3d64078a20ecb69c2ff7e1767c19258e6e26a5812033d657d260296dd7a49e4deae5872a9b0a451bd9036aead82efe2e1d6949e38756db8ef62b21c19f8df9f5bfbe089392c65253cd39c252d878f12624923e3a3c02e2e6a49fcd6943cb1cc726ce17f88ee8d8e25d713cbd813cfa45b9ec5f7c97216be41963632deabcab37dbe643cced03c130dcfd80bcf345e5c9a2571808bbbb224f258768c1c63f85fa2e56f7cc3dc1b0b4bae3bb786e6897eee0dcf92eb80e5dc3d52d652f6c333f5598e22fc2f84a58cd25b9e251702d766c077c9b938334b6200cbac658990b4aa17f2c6ad41f0441496342c3eea8be7e8e47f719e3241cfc4e629ebf14cc18b53b424e2b93633df55e8e24258121bb8372c965c2b5c5ba2ef8ae2d21e3d7177a5efa704f706c3926bcfad4d7922d57238c50d5972cdf194353dd3927b4360c9a55bcae2e3b25c5c044ba29767017db59e3244cfe4c0ad0d79e2947b9361c9d56739bef13f22969387ff11b09cd9f14c733c6303fcafd172aef99fec29c3f34c689672eb6f5d966de14bbc34379e687b8e5cff4be2d69c3c3181e5167c91aeed84ef8262297ffcd4e0e2644b2eac7b032eb9e472283f1a17976549f4b1a459792184aecdca77e959ca183d13a06555f8d6b1a4a5f051836e2decbb8cdcda0a4f3ce2e2ca58127bb83723965c1d5c1c9025971bcb1914cff4c5bd25b0e42a726b1e3c1187e76d771b35706b7a9e7868f913dfa9254d3e13f1d6c0be4b80e5ccd03331bab72e4bae20cb797b242ed716e4bbb02c65373cd3034b5a012fe481678c8967ca2d2710ff43b25c80ffea222d5976c996b4dc3b11706b8ebe4be9da28f82e1d2e92004ba21db756c677bd94417926049627f0d3b1bceb9be6de942cb962cbf9e3735e6e0dcf133fb8350d9e48c3adc9f0c42796ade225d2bd05b1e4ba60393ff81f9025ad848ffab3ec132f6dcb99a2678a62f9a3af99e50cf340a82c6bc2378e8bdb61499ce0e2162d8980964ffd5acb29e473739e31b06732726db5ef9aba351f4f64f294cdf04c782eee8a2551858b03614964736dfdae23cbe9c5ff0c5836ca37828bd464d9457bca7ccf045cd282f8a82496f2ce8f5b2ca5909f1fdc5b9f2597957b0362c965c1b5d9f05dc2674cd133cd654c8767a22de70cff13e0d6b49e18766b409ef86429bffc88bb380796c42717f7926b8b650c8567ea32d6f43f2c9652841fdbb8b715965c766eedebbb02788e5aff03e2e2704baeaca50d89f7827ac6a4fcef8ba70ce999a0aeadca773d706b403cb18b8bd3b224027071672c893f5c5b9eef5a612985789900d7d6e3bba6dc9b194b2e1f9e31e0ffac96b21c9e49cfc50db12466f08c85f9df18b716e689786e2df6c4a7e52d771bb1b9b612beab897bf35a7259f11ce3fc0f828b0b5b12b5582ee84b5b4e1dfe67e4daa8beeb835b63f4442f9634332f44878b73b224d696d3c8e7002d698d3e2a6b29a7f89a02f72665c9b5bb380896442e4bdb0eefc5746f5f4b2e2c2e12014ba2d7c5a1b0243a706f6f2cb98e589e54dc184ba20e17e9806557eedea4587221ba3615be8b8a6b93e1bbb85896f7ad7ac6ca78a6a5a57ce36f5c2e2e862591cfadd59e58643913f8dfbc353bbeebc7723e799d00d716e5bbe62c691e7cd403cf9b91db48896b5be0bb34789c05f04c28dc9b164b2e459726c713734fa9e4270f17f7b4e4a263698be3bdbc5c1a1c4fc43d4728ff937371772c89522c7bc2578e7beb60c9b5c05286305ba7b7364b2ee0bdf1b0e422b4a469f151603ca710ff4bb2a429bd930ecb797f15f7a665c905c0f386e4365a627998d6ccf8ae2e6d4abc57d43326c333c5ee4db8e4a2e1de22587279b938af25d18a5b6be289655c1c972511c8721cf33f3d17d7c192b8c05266c433055aca303f225d9c9225317669b7d65e782213cb4ef112776f682cb980b8363fdf05c3ad91f144b06be3f15d526e4d3ed1e9dea4965c5dcebc9ec98e254dcc0bc16129a3f85a9a25edcf479db9b83e4ba295e54cf2b9116e2dea89602e8e69c915c7bdf9b0e42a746d5fbe0b82e58c8a670ae3e21458128d5c1cd5922875919a964439964de06bb5a42179215a2eee8d25f188a504e265013c634dfe877591922c8960b726c013ad2c27a1b5189ee8c4ad31f044089eb1249e29e9d9395f306e8d86274671919296c431ae0d81efa2f31c7fff63e019f3e2997e2c69571f45c74532b224762d67423c53a3659b78595b8e33fc2f85479915cf54e8dac07cd7a025ed828faa5a56eba58f8bbb2db9c2b8b8204bae37ae6df75d50964f69cdc813b52c679eff255d1cd79238c54572b2ecaa3dca88cff4c1a599f1c45e1b0bdf65c592e6e58568f01c19fd8f86e7edc76de46639d737815bfbe2895c1797c2924867394e36c8b7cee36c80674a6149ebe1a38a58dac4782f2acf31f8bfaa256d838f9ab35c885c83dee82cb90ab835049ec8e6deb02cb97a5c1a1b4fa45dda194f94d796e5bbfa5cdc6ec955c6f3b6741bbdb9b8269644119692811fc92c17a1b707965c52965385ff392d473afe77c4ad217aa210cb93f826b9382896c4129612871f894b5b18ef25e5dee2587229b1dc8e2f9a658cc7ffa6b8b8464ba20b1777c49268e8de042db9b63c27a3ff41dd1b0e4bae414bf9c28f8f9634025e08965bb33d7180a78c8367aa5a4e43fffbb19cc3ff55b9351e9ea8c57214f43f0b96b4de3ba5b094837e0c6339c1f85f946593c8d9c2ff86dc5b0a4b2e3acbf1ccfff82ca7d5ff0a58b6496d8abeeb8a6b23f35d84aeedce77a5b09c1afccfc77386c033b9b08c69f0bf47cbc7903626de4bea59355fac6bfbe0bb8cb8483d9644352e6e8d2591885b23f44445cf1efac2716bc5ef12b29cc5f04c532c251a6f53e0e27a4bae339ea5e3a5917b3b61c925e75116c63361f0bc3ddd46485c9c5c7271b1ac1c2f8bdcda8f273ab9b7464b2e179632eb6b643c6348ff83e2da62f8ae46f75665c9e5bbb6f95d49ee8dcd920b6a1933e17fc4a72ccd3379b9b733965c3fdc5b164b2e166ecdea89732c6ff29bb11cc3fcef81a5c4fada154b9b1befc565d9a4af9b5bdbe0898b9eb21fcf34b594bb9f552eeed09248b59c95f04c4c5c1b92ef4a603962f03f0e2e2e8a25d18467e17cbfb836de7719f038ab7aa61b2e4e8225f1cbb529f05d192ce791cf51f0389b3d93084b1903cf14e6d6dc3cb1d0ad09f1c4abe518c2ff40b8b5a72752b9382e96c4172e2e69c935c63336fb9f13b7467b2291e57ce27f534ba9e7472eaecdf65d4aae6dd077d5706b453cf18be55ce37f562eae69c925c7adb1f044249634222f44ca01c125eed8e6a5d03c63731ef8e48904f65f31dc89f550115c1f1d774b777d545cad315737c39dadf0946efe69d0edd171855caeacd003bf6eeecc8311b1c4c5f9621cc766127cd080a52deb8bc1db31df54c1b27cde695e1f9e2b8ce2f66a176bcdddd570ad1e2d73401eec82eb33748569d030c7ddb970addab83b34d7aa84e54dce17f75c5e1217abf74cb2f35f8e6eceeac38edc71f6503adc59e68f0cba338b87ea7365b107c6f04422f35f7396b734beb8c3234d810f6e70633d3cb0eafaf65c611557b7c187c1b17cd027653d65561e58c5f58970856e2c73ba079be04e430f15bc3a4677c6c3ddf1b85664eebcf3504a3786c6032bb8b5e19d0c789c59f920d4d3f6e78b7249b3fa20a3ab63e1ce4ab831201e28e7ea5ab83344f71c7ea9ccf575b942189e4963fe6b895b18de89c9b379dea997b7c6c532e0d92bde2981db3be06291706d45de2b6ba944bc8eb6dccbf8a5211ecbe89dc6dcde04170beb6973e0bdbc6ecece83697173520f36c2ed19b95813dc5c9a0733e22af56e2ddd79c643717073397c58ecd931de69cd1d9d1e6a8a9bd3e0c1dab863d24305f1b4c1a30c890f26dd980e0f6c7373617c58f04e1f1e2acd3326e681c02bd3f34038ee84e3a148784ea47f02e2ea08f8b00a6edd78a7374b5cf08b58b714bc13ee8ee343dd707d415cad2857b67b200f4bdc09ff255be2ccf82f0296b4361f3474656c1e08c6d28b2b23f440afeb53e36ec99b347cb00596373e5f0c54c453c6f14f365c5d970f8be1eabcae559367cccd039b5cf97ba709eeae8b7be574471a5e4ad113298eff52747785ae9515cb9b9f2f0aba3c362e5694cb4374afdef01212ace0265df1605396b1181ec8c0e5ad70af1e5dde997b75c3cd4df1614dcb1b035fb4e365b5ecee99c0bc66b8bd35172b88db9373b194b8496b3c989a1bd85c1d1bd74a00af31c766417cb0cbb259d40709f0b2737b632e560d3767c7877d79d2681f94737d58578bcdad06efd4f33ae38e635e0a8b971737f7e5c17878deaa7cf1cde53570af82b8bae2b5727279b57bb5e6c68278e09c9bbbf3605bdc5d9b6b25c3f5cdae70cd1dcd4b34963c92eea39fb2310fd46229e8ce311eea82e5ad8b2fceb0a489f041176eafc8c58ae0e6d63cd8124b1ebafba8b72abc13d49d56fe698d7b9c9f584f1a0a1f8ce1ce470f95e8f6acb8422197b7e85e7d2d69803e58c2d53df93011ee4e8b7b1564698be28b451e63b2070259c6ae78e09fdb63e162d57193de7830aaa7edc97bb9b1bccdf1452176b8239f979a7395d8dcad45f72b7ee985c73a7aa738d707c315166f6fea626db0ac15f0c1e1edb570b1eeb8495b0fe6662943e08153f4809b53e2c37adc9d986b05c2b2190e1fdcb2b4a1f045de12f7e8bf82778cf252c16b1bf25ec2cb5be05ef1709508b85b726ece8b0f8b7a4a28fe4985abc3ba56bd6533301f04de79e49fb4b8392a3ecc09b8e7ea027d18184fc4f5d970b5829737e65ed1f04482fa2f357797c4bda2dd5d0cd70a8ecbdbe1628d77fcf1504cdc9ed3c5f2b3a4857df08ae78c850f5eb953888752739568776b80db7be20a813ca783c7ef3efa7195badc2d106eeceb812adc39c443adb9bc0aee9517b7c7c315ceaeee0f4b603936f9284577e4f252082c714ebef8c5ddb171af983cc7211e18bbb93c0fc6c5e5d171b1b4dc1d04d7ca89ab8be0c3cab8bddfc5da73774bae159fbb1abf84c49246fc201537e6f540146e8eeac19cf04ab39456fee981cbe3c87d54e4eec05c2b0fbc5c582a85711d21b935e17bdd790ae14e0f1e6a6a795bf4c511ae2e883bc3e1f6ae5cac14ae0cce03cbb8be4057c8c5f5bdb9422396b8acff2a72656d1e28c69d683e89a2a714e29f105dde967ba5e8f260721f05efacf350bda594f24f78ee0e816b25c1ed7db1cc3ca79837e2e74e0e1e4aca8bc8d2b6e88b00dcf1f750505cdf1a776bdedcd58721b97384877ab2541a741dc5eeae8d7bd5e4e698f830009ee3229c1dffa5e4fad05ca10e77bcf25205dcded2c5d2739580dc2d2e77197e89cbd59df9301dae92ee6e49dd91cd4b9579226df05f10dc71cb4b1d70774aaed59ecba3c97d34b5b499f1c525f7282f79b83a24ee2c88ebab73854e3cce1cf86093ab34e46ea579c6be3c50ead940ef24bb1ffaa525b7c774b1f85c9d960f73e1e62c78b0a1d790abd3e25ae16e8ecb83e5104ce2eee4b857083c6d54de6b6bb99f9701bab9e28795b94a76eed6104bdca2ff4ababc1ef7aace1d5778a912ae92a3eb68ca1367e78b8fee6eceb5dae18e491eeaeaf274f7aaea7ee52511d707c1155add5a1def65e83189cf7fcd717d475c2d2b9727e75e2171737c1e0ceb6ef54b363cebc43b99792a1dba8e7ab727bb580b2c653e1e08c4522af9a739cb5a3f88c595097a601db767c7157ab9b9233ecc7775491f06e7264df16051ae9cfa27394bdc005f6c74e7050f7564a954e83aa2dd9ed4c5c2e0ea0ef83044cb58160f04f444cae2bf4878da10782f3896b837fe2beac67e78609cabb4bb5bc0ab03f461c2cb3372af2658ced0f8609abb2373ad0e5d9d9f0fbbba3d042e56093757e6c184c01ae1e6b0f8b000ae8ee9c3fedc297c2809bc6cb8bdddc5827365093cb08bbb4bba565c6e6e810743e22655f160082c279837d2e736ce3725babbad7b65c0edd237d92e2fc8bd7ae0ee105d2badab6b74ad926e0bbd13d253a98beb6880bb4be05a99b0bcc1f9a29e6333173e88e5ce071ecac7d525f9300caeafc8154ef0388ef1c0dded35b9581edc5e1d57d8c589cea374e09f24b8bd2bae70c855f272b742b82bf14b706eaeca83cd7027110fc5e6ea68b83316ee51fc920a41092eefeb628d79d2621f8c734c96c6077b5ca53877ab879bc3e1c3c6a58d8b2f26b93e0bae508cabcb7d589cab83e25ac925ee8aff6a5ac6a678609f3bbef052282c6f80be08c1b3cb5c8f07abe03129cf7f3d7a2649fd571077d7e75a217175483eec822003d7f7c115aaf1948ffee9861b73e3811c5c1e0d5caf399e4831fc97054f5b97f772f4acfdf9a0d7dd4d71af7c77317ee987cb8381fb48ccf59d70858eee6c7e6ef1a42d7d10cf134984ff92e0ee60b8566fdca4261eacc9cd19f161bd3baa79a93157e6e7818eee6e76adaa2c6f1a7cb182eb83ba420c96b4263ec8c35502e06e61b963062f35e8f26ab85760cbd80c0f54737748dcabd9b1d9061f44e016cd37697077135cab29ae6fcd1506717b4b2e56073757c58709b9f3f04b682eafcfbdaae24e350f353e6d54efc575ebc33b69794a31fe2986eb23de2da5cb13e05e41f01caf7820eeee40b8565e2c6bba0f5a3de519ff34c333e9ca7f1d717b295cac47b756bec9cff53170853f2cbf33795cb98fa65cdd127746c4537ef9a73e77e7c5bd12e029cbfcd39fcb53ba570edce9e8a14eb867fd920f7767e85a5d5d2532aea3a8250f1ef751effae65ce11297e7c5c54272754e3eecd0ed5571854e8f23180fd4dd49f82527d787c6d5b2737960ee550c37d7c387d59e485efe2bcedd7170adba58de6cf82209970701f71191db2edf14c19d3b3cd499ab53e1ce46f05a737d63aeb0863bd578a80fbc4cb89de09d6c5e5777e7e65acdb0a415fa200a3787e7c11add1c93074b747b465c21ef8e705e6a81db7bba588196362fbe28b5b415bf48e5c6880f3ce1ea88d76ac9d5a5f9b01eee2dfcd295ab1bf261105c1e01dc474e77d7c1b5b2babba96ba5e7ca6c0face11973f240235e28dc99e6a10ef67922d5f15f2e5c2538778b87e5ed852f86b0accd3eb8c5ed695d2193e5ecd1071bb8f3e99fa458de705fe4f28c597960122f066e60e0fae4b85bb8ab54e76e0971790c701f057095a2dc2d424f2442ff05e82aa5b95b2edc1ed4c5b260298bf24029963815fe8bf6acd1f9e01d5e58cb1bf18b8c9692c93f39700fe29718b8b1371ed8c1d5f570678bee2e876b6587d7f0ce271e8acecd617d5892eb5b72851e2c93ae1e8ccb4de2e1c17acbdbd5176958de1af8229e650d86f7ea5d9d13d7eacbe3c77dc4e3f66e17ab81bb63ba566a6e0f828bc5c5f5b571b7643757e8c1d0f052e12695f16067ee4ce2a1aa964a125c47b2a54d842f267965b0bc0dfa62047794f2524b2e6fea5e6d70753bdcd90c771cf25055dc99e8a1103836db7dd0e9f258e03e0af338daf1c01e4b5c13ff05e44e141e4acae56170afc2b83ca0ee2302eeecf350419e496bfeeb899b43f260202c6f337c5104a098258e88ffe271e7927ffae2fa88b85a5296b73abe38c4e32cc8079faeeec88759f00402108a3b05f8272aee5ce3a140b84a8fae232a77121faa85ebb373854f5cdeec5e31b0bc71f0450b6e7d3a1dee4c863b7a79a929cb5a0defc5e3ce350f155b16537ae0ef4e3d0f05c0cd51f06067dc5dd3b55af328effcd304b728bcd391ebe3e26a2d7027d43f71b1bcd5f9629f652df84133bcf4dccaf92614ae0e843bbbe0e60c3dd8d65336f04f105c1d1cd7cac81d4378a90beeac7a28dce52d71b1946ea9be6984dbbbe10ae5ed012f56069717e85e65715bc13b252d07f332eb2a35ddad314f79c43f257a1cc11e08c0ad9b6f2ae19934f55f424c4b72e1bfbc6e8fc9c53274797beed5143746c403eb2c63493c30cf1249f65f065ca539aea32ab7bf6fda5ddf015768c2edf12e569c256ed017b96e4f8e2bc4f29468fe09d0557aba5b0b3c6b7c3ed8b5b4617d31ea4ec42fb1b93c16eed51c97b7e45e75f044aafa2f3c410c6e92130fe6e4e6a03c180b37c7c387d1ae92d67524756b6fbc57054f9aa10f2ababe3aeed66e8903e08b545c5e977be5c21367e58b645c1e4af711ef4e2e1e2ad0d525716742dca5f8a515ae2fce15264103d7cd61f0606bdc1c030f96c46d956fea7373647c18939b73f4615aae6e8a6b15bb3c8adc474fd757c6d5726049b3e083295c1deec3dedcb2f04e52cba4e283f1792229f15f1edc4af9a63c77fcf35275ae8ecc87dd7073607c18f08e4f0f65c5ad59bd179dbb63e25e21dd9e938bf5c19d373cd4983b9dfee989cb8be36255b9b9203e0ce9f29cdcab0fee4ed1b55ae3fa8e5c610597e7e75e59717d69ae9087cb2372af06ddb9f44f4b042d782651fd171477cef0505e9673790986159ecb4b73af74b84a4eee56a09b0bfb303457f7e5c366784adc3bf9b9baa70f1b749516b85b30d0f0e8fa8057b8c172b6c60717b8bb20d74a81cb7373af88b8be26ae1697cb03bb58649649c207eb7273510f26c2ed55b95889eece8e7bb565899be1bf90ae0f852b9ce3e6780f46e836cd3771b0c4bdf05fb75bd3e069c87395c0dc2d119e343d1f1ce1f66c178bcddd875f4a7377345c2b39ee28c043617177f25a1d70c7125e8a8327520eff95c1b361bc939abb2be05a057a2245f05f7f6eafeb0ac52c65ef9d003d915cf8af0a2e4fc9bde26059ab7db0d11d875f22739582dc2d2fb7b7c6151ef07c806f147744f3525dee88c14b41b0ac217a2ff9b48179af4777a47aa9338fb3293e28e6f2a0ee95055747e5c352b8b11d1ee8e62691f16065964a7eae23f9b45d79af38ee27fc52941b2be38184ee0efc7c747b682e960e77d2f0505fae0fcc15ce707983ee55a3bb7be05a0d717900efa3247722f04f672c6b017c30ebf6c85c2c1b2eefc7bdc27327f439dc552ae06e41f0bc29f9229b254e8eff02de9d19f72aeac6c01eb8c2dd5db95616dcdc930753e18e5d5e4aca5deb9784b83b24d78acecd9179b0206e6f838ba5757db72b6cb3ccd11e0c82bb63e05aa1f044aaf25f6f2ecf76afd82c6d2d7c51e94e410fe5f48c957960f026d5f160742eafc8bd8ae02621f160c1db0372b1f22c6f515f54737d1d5c211a77393fe5b84ac1bbf5c0d3f6c017bfb38887a25a22c9ff2ae0268df160632e0fa6fb08c85249d07534dea1f8a5141e67597c90cce521e43efadd1d1af70af85462e23a1af2446af25f0ddcb9c14345dd49c03f65f1ac257aaf79794cdd475197f7e75e5d71679e87ea71636a3c1083fb9497405c1e6dae571d57363e10863b093d14913b4b782828cf19f1836e96373d5f047463393c90ea6ec32f89b963f14b305c9d077756c1ed09b9587f6eef818b35c57306c507c3781dba39041eec85a58d852ffa9e372c5facbab9091eac8c9b73e2c380dcadf82517ee18c34ba9b0acb9f05eb25b06bec983dbc373b1a2784a1bfe6984250ee98b4e5cdd9f0fc3ba3b2ed76a832792f0bf105dd9990736ba3b46f74a3e69883e08c3f256e88b84ee6e887bf5e54d70afaceec8e3a19078768e585e0acaf519b9420aee18c0435d719596eed697dbdbba422bcbd6f14e72ae2f76850cdc1a13ef95c0d266c117675e1fdca4381eeccdf50dbac2aba58cc7037fb8bc14ee951c4b1eb8eb2884ebf3ba5b3d662adc9d04d74a0aaf3037b7c68721b0a4adf9200757c9c8dd8a737759dc2b204b1c10ffe57bde8ef8620acb9cedc1063d260dfaaf3aee68c24b75f0445afa2f3497f7e65e31babc19ee95171312cb22f9a62557e9c8dd9a73755cd74ac9f2e6e88b415c5e1a17ebc933a7c283713d679737c26706159638375f84e3d6c4782f3eb789dea9c8ed417185416eafea621db1b48df1c5a9bb13e05abdb9baf9610bdc1d09d74a8ccbbbba58462ecfeb6285b9bc2ff70a869ba4c48329b9b92e0fa6c39d50fe898cebcb5d219cbbf09772b8392d3e8cc8fd875f52c049cfd589f9b01aae8cf6401a6e6ec9839db0c4417dd16a2959f8a70f9e48b4ff0af3ac91f9601cd7a7e80ab99634af0f56f14c1aff6b86eb23e36ac979d6bc7c108edb1be062497079bc7b15e7ee085d2b2a9e4a88ae23a5ab14c0dd527375b40f6b608953faa214b7c7c1c52ae3ee8ab857f3e6a0f8b0a5ab73f36146dc5c1b1f36e5f288ba8f8e5c9fd6d59a737b692e160f9727e55e997075087cd8094fe9f54f3adc5183978ae0c6d6786006cb980aad0cefe4e45993f24136aed297bb75c8abcff505af90831bd3e081566e2e84077b74afe197c25c9f0b57d8b5ccc9f0605e3727c68729b93ddfc59a7375501f96c19d3dfea988a50557c98eeb08cbcdb1793026ee52a40cf84026ee487ba81deea4f24fc3bb1be35e1db9bb33d78a84cb8be15e1197b32b3e38e64e1c1e8acc5209d07534bde45cdd18d70ac8ad81f037a8b953e99f88b80bf14b6a96b617bec8e3e6881f26e649fbf1c13bf39240f8afaedb9b172b819b53f3604adc59c34385b93daf2b1c736b68bc170497879beb65c78de1f0c0061e69543e38c1ed6170b1c4b8230c2f95c2d57971ad94aece8c6bc5f45432e23a725a96e99b7a2c9530b88e6c773ce1a53cb8bd40176b8bdb6b73b1182d6d48ef15c3cd8d7930206e8f8b2b1ce0e6eaf8302f4f2421fe8b83eb83e36ed5eec8c04b89b9b6bed709b737e7622df14893e383512c6d747cf1803b1578a83e937aff75c3f5e9ae30cef529b9424377fef0500a2ce5ec9df6dc9dd7bd02737752dcabdef2c6c2173fb83b27ee55ee8974c67fa57095aadc2d0cae6ed19d29ba4a5477eb86252e84ff924fa402fe8beace391e0a85ebabe26a91b9be0aae30eba9f4c475f4f4943cfc53093717e8c1c2582a7d5d475d96b635bee8e4ce381eca841956b8bea92bece0f6c4b8c2a9bb13e25a855d5fd6d5aa7a1c870fecdd4bf8a527cf58f08145ee587b281e96b7df17cbdc5d9e6b25c4f555b9c2146e0feb0a913c637a1e68c01df3bc54d5cda9f161075c25a6bb25c64beb8e13bc149feb1be36ac579da1278af3aae929cbbe5c39dc58782e1e6247830ad3bf73cd48fabe4e66ee5707984eed5d5557a73b774b832330fdce249db7d90ce1dcecfab5b2ddf24681943e18168aeae8a6b357b2259fd9709cfa424ff05c4e3ccf2467037b6c103afdca4281e0cca9551fff4e689d4f45f092c71b12f2a717926dc2b379e37465f44416bcad5a9f9b0209eb5231f24e329adfec985bb0abf34e589c4edb1b958425c9f0f57ab80dbb077baf328f5fc13a1bb0be25a81790970957adcad02ee28c34bad70c7392fb5e68ec42fbd5922fd5f4fae8fc8154a70a7927ff2e2eab0b856b63b153dd495e52dc9171978ca7cf8e0eda984c57544e42995f82714aeeeea5af12ecfd1c5ba72657f1ef868797bfa229a65ec8807e2b93d30172b86db1edf343ea58f7782e05963e0838f6eee890f0b7275403e6ccfdd59b956155c5f14570bcc559272b72ab8bd3f172b8bab5be35a05707d265c611ccf189a074e5d1e41ee231f57f7e3c3f45c5ea27bb57575197c981bcbe5782625aecfcd1516717777dc2b2e7767c1b5c2e2ce321e4a833be53c54eee63e783039aecf89abd56599d4f5607aae6cd003efb83e2caed699ebfb728532dcb6f04e53574976b79eeeaec7b52a737917dc2b302eaf807b15c29226e883265c5e9c7b75c49d4dfe298c3b93fc53a33be279a9375797c087f1f02805fd53a1250deb8345dcdd9e6bc5e8fac62b5c6099fbc1fedc9c151f3664d925df84e58e3d1e2a89ebfbe26ab5b94a73eed60f7732f15072ae2f852ba4e3ee4eb856655c1eee5e512d712cfc57ed2a21b95b0e5c5e15178be9e6fe3cd817b747e5629d7067f44b0ddc918297f27379515c2c20b77bde495e1ed2bd6af3946cfcd3a23be57828445749cddd9ae1ee50b85667dce9c24365b9bd102e961a3737e8c1c6b83b3cd72a882792d67fa1707b8fae50cb9d43fe298a1fbc8a97c79aebe5e829c1fe69872bb3f3c035aeaed087a57147155e8a84dba3ba584478155ae2047df18e9babf36059dc5d14f78af78cfd1ee8747774dcab2a57b6e6815f5cdf1957abce1d833c94139717e65ec9b0bc39f0453e7782f0504b9634421f4c747542dc590e7767e75afdf0945aff24c33306e4814d5e6aae4fcc152ebabd4117ab8b9bd3f260371481cbdbe26205b0b481f145a0571937098807eb7175763eac8aab2be1ce0cdd9d0ed7ea8e9b7be3c3aa3c6b773ec8757769dcabe09d44fea98aa56cea814d3c8e6d3cd0b7a455f14120bc70b87bf14b3a2ca5967fdaf39429faa0ece6bc3e8cccf216c3170fdddda26be568a924c67594e44e331e6a032f38b737bc5394270f30f791951b041e71635b0ff46019abe2817eeeb8c04b85b93a3a1f16c5f56570855a77e4e0a526b8b534de6bd0f276c71789b863fd120e4bdced8b4d5c9e1317cbc7f2a6c51763b83d27aef0c79d5d0fe5c21d730f25c4b1599b0f2eb9bb47f76acadda970add258de745ff472771f5c2be19d865ff2724c06c207e59d313c1497cb23c97d64e4fa68b85a51b757c6153659de48f8e206c768437c5087cb7be15eddf1ac6df9e01b5e543767c387c92ba1fec9cdf5bd70855ecf59131f04737d085c21a2bb53e25ed5ee28e7a5d43c650eff44c2134980ff52e08ec62f159114bc3c322ed6d413e9cf7ff5b95389878273271d0f954213949b7be0c1bab83a26ee8cd1ed8d71854aae94faa7aac771eb814acf58030f64727761dcab0196b7225f4c73a70d0f25e6ea8cb8b31f6e2e8d0f33e0b6816f12e116ec9dec5c5d0e7716c35289d07534f36243cbc9ed29b9581c5c5fef0a1d58daaaf8a29125ae88ffea71796cee1510b7c7c0c5fa615953f2c133963f7aa6256eabbe09d1f5d9ae906a59bbe1bd7a5c1f055708c6e5d571b1b62c7fe37f292c95c2ae232f7734f3525b96b4063ed8c1952df040acbbc3e05a697163743c7084db3be30a9fdcbbf8a51a9634311fbce08ebb8722e2a9d4c175b4bba39f97a2f3280be283b8e52d8e2f02f14c12f25f3cdc33785df1d6e99b9eeeb8f4504fdc1d18f7aac8ddedaed597abb3e1ce5cb83a251fe6c1b501df2b8debd372852ddc718497d2608953f245e1f5a9708575dcde8f8b85e7fa02b8c24197e7c2bdb2e32a95711d016f52160f56e5fa865ca1a0ab7374ad925c1d001ff6c09d895f92b38c71f140419797e75e41717d4f5c2d2f9707e55e1dbabc202e96ed8e5a5e2aca9306c2075bb83aa40fabbabe3e5798c5f52971b5b23c69433ef8c0f5fdaeb0cff565b942454fa4a4ff1a7379685c2c277767c5bdf27167140f65e7f2c22e5699bbbbe25e017027967f6ae3daa6de4b8dbb1b74ada05836fbe28367acf25c1f1857cbcdd501716737787d5d1e0af72a8e5b2bbed708cbdbeef04e576eaf77b1e42c6f79bef8e7f258721f0197498c1e2ceaf696b8c21e97e774affcdc5d956b55e8f2e6b858596ecf808b25c2551ae06ebd59968d7772737747ae95034ba4f1bfa078d17077405cabaf67bd7827069639d983097ae2f67c918e9b3bf460732c716cbee8c6edc5718557ae2f8ebb75bbd3eaa120b83c3af76a89bbf3e05a615dde13170b80fb14bfc4c22d0eef74c01debbc14d513098cff3ae12a4db95b16dc5c9c07a3e2ea28f830342eef8a8be5f43c2744737752aed5049787d37db4747772ae950e4e42ae6e800fa3e0f2f4dc2b296e2feb0a839727c5c50a727d3caed0cecd31fab0ddd2a6c317832c71b92f3eb1a469f0c1159eb5aa0fd6f1b499792f3a6e2f8b2b0ce0f6c0b842a93bf13c148fabfbe1ce6c58d2a2f8a00f778ce0a5f45c9f045728bc3b00ae159a7b18bfd483570b97b775b1a85c1e54d78b8e2b03f4c0399637435fbc60290ff8a73b3796c103abdce9e6a16c77b7c6bd5a727527dc1908f70f7e29b8bcc9d7d11369c87fa5b9738a87c27393e8783007ae6f832b34e3ce02fe698cabb37d581b1b2ecfccbdb2e1eec0ee1599cb43e262f19e3c10b88f10b8ba311f66c373c6e6834aee0e8a7bb5bb3e2bae5699e7ecce079d3c9592b88e843c67ff8987db235e61985b36df74e8f280f72a833b85fc13143737c6872d79de805f5c737919dcabac3b323d54147787c3b5aae3392b7ef0cdf2c6fbe297ebeb15267073597c980097e7c3c59a5d5d16d7ea7673043c9807cf2ef14e656e8c8d076a707b095cac1d2eef8d8b256549e3e0832cdcde9e8b55c5cded79b0ababcbba560004716b74bc57077774e0a5d85c5e19176bc9dd25b95675ae8eeac3182d6f227c51831be3e081586e1df82615aeaecf8759ddd185974a747959174bea263df1604f9e32153e18bb3a11ee6c83eb23e00a0b3d634e0f1472a5d23b05ba3c7af7916e49bbe383533ca515ffc4c25296e4814adc1d16f7eac792d6c6079db8be37ee16ed2a69b95b86aeaeeac390b83e0daeb08c250eebbf0278d25ef8200d7794faa82657e98debc880dbb3e06285b1c465f15f4e5756f540adcb33e262e9ee8e887bd5ce42b83d26aed0c792a6f541259e7fb597e76249f12c96f4c0a59b93f26030dc1da06bb5c4f511bac22faeaccf03e558ca9e1e58c4cd51793019ae8f8dbb155be67a0f46c19d4d3cd49c3bda79a9367704e1a52cb83b23d74ace95253d3087ab0bbb5650ae129abb85c2b236c47b81b9be1dae56935b04be89cdeda0779a5d9dd5b5dadd1d9b6bc5c21d865fd2727b315c2cafeb63e10aef78ceba7c50eaf210b85725dc5dd5b5b241abcaedd9b9584f5c9d0977e6c1d5b5f9b0226eefcbc5826199a3e1c18acb5aec835a5c59ed818b9633393ec8e6f2c6b858c1ab135e2bdf93263f08e74e271eca81bb9be35e51b9bb31d72a04af10ae8e873ba3e1fabc5c610c97b7e65efd70671d0fa5c2d5757067142c71187cf1ebf2acdc2b14ae4f88ab75c0ddfd70ad8acf5ebdd302b747c51536dd9e0e5718bb37fa251a96b6e1179b5c2507ee1610b75fbe6982cb73e05e297195cadc2d44cb5bd317cddc5e968bb5c29d7f1eea777b255cac376e4ed083653d25a37f3ae1f6905cac42d76775b5d45c9f9f2bd4e2e6ae3cd8a225aeea8b5b4b5993073e7179375cac6fd2120fb6e4f600b858779eb635ef75c7d2b6f54528b747c3c502bb77f04b514b1b115f745ace04f82011271e4f2406feabce9d610f35c3cd45f161bfa5ed8a2f12707d095ce10e4b1eb2ebc8813bf6792907ae8fcf155a71937478b0dded2971853c9e4a525c47015c1d0a7776e8fa165d2da9cb13e15ea9b19cd1f141aa9b8be3c3b0dc1e01178bd0f246e88b13dc1c1a1f06c52b806792100f06c0f2a6c61779b84a52770bcfdd5571af7a3c67433e28c0ed02df64e889b4fb2f32b737bc4203ae2fc9155e707952f70a832b81bcd3a0eb13e36ac1b94a6a5c474d6e8f76b1d43c91c2fc979ceb7bba420896b1261ea8e7ee82d7ea81a7e4faa71c9638adff327293a078b00296b21f0f0c6239137ed0cced0befb4e48e845eaa8f97a0dbfbe20aa31e63f2813f6e7f7cd3ecf60a5dac2fae4c3ed08565ad84f7ea938796fb88ca4d62e2c198dc82f926425e8096b1221e78e7796bf2c5066eae8b0f23e0e6b83e2c8c55d5d2967b2f19ee4e8c7b45c0f2e6fb2298a7d20cd7d18f3bd178a80e841cb9e3949762f28c3d3d70c8ad9a6ffae0cae43cf08cdb5373b180f0d2e02a2970b75e78226df92f38771cf4520f2c6d457c51c85552ba5b4cae4fca159eb02cd73b39707d5a5cad042e2fcbbd5ac10b8cebbb738550dca4201eccc7dd1970ad20d0a2f2443af25f0cdc5c040f46c6d5dd3ecccdd521bab30f9e490bfc971341415737c29d717007e2971678224df15f225c5ed4bdbae05993f3413b2e8f837b45c64db2e2c1a4dc5c050f96c69535f0c030ae6c820776dd31d14b7df0bc6b7caf14ae6ecd8709f1ecf09ddadc39c03f5db16c76c007935c1bedbd145d1e05dc474c6ececd83417177b26b45e5ce0e1e0a7877145cab2aeef4f3504bd7177585191c8b613d70d0e5fdeed59ea50dec8b559638aeff5ab2a4bdf9a007d7e7e86e215ddd13d7aa5e4e777a3dd40b4b9cd317b1782619f05f8c96381dfe6b07e4b3c451f9e218d737c215be7147165eca84abdb7dd89c250e85ff9a3d930cfd17f171ec7aa08fa52cc80385b8be3c5728c5ed7970b1d078a4c9f0c1454bdc902f6671755ad76ae98ec04b1faeef86ab357527100fb5c0dd51b95614dc5e0e57382e6d40de8b87fb0bbf94e59914e7bfa4f0da7377265c2b32eefce2a1082d715dffc5e43967ffe4c3ddc5b956385c1eed5ea9b9392b0f46c39d613c54a165cdc907d3b8bcdebd9273656a1ee8c5cd9df16105dc87bf74c49d5c0fa5e8f2c0b858509727bb570b5c5e0f174bf6ac3df041e29d763cd40acb9b045f94607973e38b3e5c5f17578b817b08bfa4e4368577427295d6dc2d1a96b627be48e4ce141e6aca9d5e3cd404cb1b165f8461695b7aaf1e96cdf12cb8575fdca9aa8bf26126dcdc050fa6c6b246c37b295d1e13178bc7edc170b1ba96322e0fbce2ce370f75bb3a3d1fa6c5ed05b9580f5cdd940f43e1e6aef8b0a7bb1374ad9ab83c15ee95a324319eb2290fa4e2f688b8c2dc1d2f78294157a7fb3039b7777585476e2f808b25e8ea9a3e0cd0d5c571ad8e5c9f0c570876671a0f65e8f2e0dc2b239638305f3ce3f2aadcab44cb5bd217bb3c69707d51aeb084e5625e8a717b405ce16d49f3e28346dcf187a2c14b814719a30f22dd5c92070be1c9c3cc7d84a52980cb23e262215d1e46ee2301ae2f822bc4babb3fd74a89dbbbe06265dd5ef04eba671202ff55c4ed25b958150465b84a725c4752ee4e816b75c2d515f93042b777e662e570751fdc9905413f776c7a2829927e58e224f822b1298b97194f5a9f0f927077045cab3917cfdcdc9107fb0048e6f66cb8c22e6f8dbe28c3dde9b956445c1f005798e7ca20ef14c155c272b73678f2e875f4e556816fea608903f2c52a6e0e8207136379bbf3453f7756f92735ee8b7e09cc7316f6c1aa65cc8607b2b93c40f70a8babd4bb5b4a1e656d7cd0c795c579a019cf1a9b0fceb12c9d6f5a7447d943e57073591ecc869bdbe2c38adcc9e49fc058f6d03b353d6b583ee8c6e58971b1804105ae2ecb87b5f0546ae13af27195e8b88eac3c8e580fcc5d5e9d7bc5c4d5053fac83679203ff25c71df7bc949ca53ce19f3a78ca48f8e0bcbe335798c395513d30ebf230e03e727247dc43fd707b3f5ca1ed798bf2c5364b49e485405d9d041f66c6dde1ae9596e50d852f1a5ad230f8a00acfa420ffa5c3e5615d2c02ae8f832b3ce33ec32f7559e20cfdd737e6c303e15c1e9f7b45c5e5b571b10e58e6863cd8064e544bda131fec618943f3453596b637be58c0eda970b1e658dab2f8e291eb9be26a89b93d2dae50809ba3f360582c6f167c9182dba3e06279717b265c2c389635261f44e3f6ccb8422785e2fec52fedb04c027b303f582adca4241e6ceaf6125d2c39ee887ec980dbebc53ab39c4f7b195cac312e0f27f79192abdbe25a21ddb1cc4b69f14263b996975f3c67297cd0cab3a6f441ac1b13e2810e3c738a1e8cf844a2f35f0fdc5d966b85c155b2dd2d022e2fcabd1ae1f236b85763dcdcd78799b9bea62bfc73751c7cd8d69d51ffd4c55582ba5b76eef8c04bc1b9ba0a3e6c78a7917fc2e2ca901e88c31de3bc14037717c7bd8a72a7d35ed3c5ea737b225c2c36eeae78afc2dc242a1eec80e7d8c303e712c7f4c52beeb8e6a5c8dc24291ecc80ab44e46e51dd59c5433df09c81314983ffe2babdd8c552e0c6c21ec8c2721f5d845f62f254fae03ae23d636a1eb8e459bb7d908bdb13dee9e9eeb8ee5597252deb8348047fa05851f2a60d1c3852c1374c825540aa265470e430916203945ac2c70e9ce09202ece0c1c3a6ce1b3d6cd8d49e48b96923354545c5a42a2a28b52418e526a8e48b026cea3881d324087402945ab2640993e01225524ca4a49800a394c06932158c927212c5a44d932a264ca2e430916212a462622518e50438e544899326546fdc4cb57953258789541329264b9c38693315f5660993364bdcb809c26942158cd3a74d5515274bbe28c0669012254ba4943061e2442aca8993a8296050aa89d412a9364ba29a34a97ad3462a08a7c992254d804992f0e9832710559d2449824a1e98b2b2c48d1b374ba6a2dc38899a022a0906abe4309192b3a74f1e367af0c05922d525b8a449502a086c122515d5c48913a9a8201325c02476fcd4a993c40a1c274aa4aa9cb459a284099c2552412640394ca4fee0d113878d1417a015384ba6dc287132d524d8044e706a095513394ca4dedca1c2f3460a58e5474fd59e2a3d4c9eca607992f244e5a9cc53992e4f6eaacefca11ae3248d94952838535255c1aa2090aa8d1413386d82729848b16122e5a6ca0f9b3f547a9828f9a2009b265156de04992861d284aaaa09d0891326c1374ae43091d24325c74d94141b282b4cda2ca96a43a5e48d9493264c962c014ec96122a587cf9ea732589e9224e163074e923d544f51c03e6c9a28f9a2001b3549acc051126cc3840990899b266d982ca182e3460e13a9a732589ec824499224c953992e4f556ea8eae46173670e9b3c78f4bc014ee9e193a70b122b4ada2871e384ca0d13264e9c28815325d5440e13293e76e0b0a9e23347cf1f27557ce6e841a3848f1d38c12a3d78dc4c7d51804dd4113d6cf6f4d1c386cd0f02a4841881c3a7cfd200525572d8b071b3678e9d2045d82c5102ac9aa3878f1122440438120091a70186d8f909d183870f951b3c75ea500571620388ca0e5393141b3c75e2e0a903009354d3af4d9f3d032c1509f2e60e159b2a3d5479ece0990242e5064f1d233f8000e809c007b06acf9e2a3d79ece071c3a407508ace1225c03c6eaaf61ce1314429001f9b213d36bca9254bbb9f0e109e3f7c7e393a546edc54d1495aa204d884d40428c506584587aa4e1b364d3822b73d00d880787ed4e8b8a16a53a70e1e3d466854557a7ecc7e323e5571008849ede1b3670ea0aa20a3d41c3b76f01499404073e054e9c9234402a9141b366fee54e5c943c506505590bde8c0258daf56d9a1ba337219fe80bbbd06144b4899c603ab0b278c0c50848800013c0d11e2d4c4f45b0a02e407003e7af050f2f5783b5d2e090977b3d56833596c9cf2fe463cd0598133331ababd0613404829163f9a809c80142f4f9e54099ab3674e930150a49234492285a44ad01c3c7aaa04edd923a5aa0ace9baa3a73a8ae50d9f3e4c98f1f1b379942268e6783a80acd1831fc08db90c9c368810d0c45f9e21c39e4e5cd08d127f8716877087d19da0b12f48128f83664dcccbe200961cb7fa9b931f36d4a783cbe2fe3e41390e30dd510c1941fb3f4553cb031f463bc7c55a27fc0e9e134fd97183638e3d3fcf82f86c85cf10ba0f9365c7e8882e0df32a60a153264b2a01913a514e553a0480268ce982943668c983060be74e1b2454b162c57ac54a13245ca9123478e1c3972e4c891232e14b1040b9e97b970e7654f96243132c5c9952a598e8c3dfc0c627ebce147363f9a39b445caa8c58f3b8c09fc7866860d7efc3272f931cb78e5472b3f5619a7fc28e547047e3c6084f26301639371c98f4a7e9c1a813f4afd38b3e612511021444ef1c44f279648e22712d3889f4510210410426673d14f1a7ece10c34f185c50f493859f2bfc54e1670a3f5138c1849f25fc244104c9e42b05660a1c2c52aa948cdf25c3f66da24bbc3ce1e50b2f5d7809c21f7940d2f037c4592e7a49e8a5042f23b864d05e0a927f5efa2919b2971f5c32622fef3c0d1f5c32c6e50d2f6d7869c1cb382f559029bc6ce0659b976f5ed6f072cdcb047ee9d04b3432869732fc0d705ec22013c9460158f101b4f04e23381d0a407e530dbf0cff0c38fc30fc2f44a1304754518d333eaa06195cf0faa80e80c10f70c12fc13f040dac5900812850921c31228053952d5ab260b962a50a9529529e3869c2648992a920502a0a2a099223041819a008912d5bb6649139bd6ccc183162c28001f3c5cbdfc4850b023ffd0c40216048d393246a8eca7d54d247217d142eeaf651b68fda7d94eea3943eca37046cbea9f74dbe3f49548f8fe2514094fca8fe47aec072d3919b6e5212c4e2240bd4cbac14215285c8942a5bae38917264cb142b5bb66cd1a2658b162d5ab45cb16265cb912a55a648d1b2850912265aac20b172c44a9223568cc88830c12225252535353535b56489122549921c398204c9d45430f8e48913274c98c81090212043e06558ac54999a0a0609b062a50c963c58921cc182058b9524488e6cd1a2e5ca952b56b458a9a2e58a15a0d4152b40a92b56805257805262c280f9e245cccbbac8f2e491e57959d4cbb66c4982050b162c57ae5cb972e58a962d5aac244172648b162b5592203942e5655bb45841b2458b952452a43c79d9119913274d982c799915252fb39204c9112b488e58b182648b162b041879d9162b495e56a44891976dd16205c9912bb46c3145145264b922a2650b2aa0b0628a28a4c8818b24ae8c28a2871f76a8e1d0091a7c60c8830c30a8c082196208348120421240207be0635913b0c6c7c408a38b98191fb323c1c7e854c5fc7c8c0f9f3973a4077fc3989774fe06264f03912f99af005768c0f363971fb7c49172d284c9122555693869c2648992a9207029214a67d090794c983c61f0d4b163a70e9e3bf3f1c2654e9603bdc1134788d21b3753ec50d5f0d3f142673bf3883b79bcd0d9ce3ce2ce3c420f162f7480429482c1a01d20d08e9bedd8a953671e51068b173a59e8c4f9ca953a58bc70a1b39d79c49d3c607e3c9b5c1d231e4e521a227090acd9f39b0902ede4c143b599a9a8e44c0581524e9a3059a2642a9887511e467918e5619487511e467918e5619487d11f358756d10d3712b95146196dcc41861a73b8a1c51831c03146718e30a6287af184175620e1c50e6cd0e0040c89d8f8618a17de48f484165954e1c6108ca618a218c40e41fce006a31e8a3bc4e0461c6e9491031b7014ddc8218d8fcac18a1c6e9823511b373871430c5a36cc512c26da61510d4cc430470cc517e68872e1a3ae5e28466951c6d07f41c3511c1f05c747bdf1516e7c541b1fc5c647adf151c38f42e3a3ccf8a8323e4aeba3c8f8a8313e2a8c8ff2e2a3aeb4f8a82c3e0a8b8fbae2a3acf8a82a3e6a8a2794f828241805d1c347edf05139d8f0518b3e6a868f8ae1a35ef8ab9c895395250e2d0e2d0e2d0e2d0e2d0e2d0e2d0e2d0e6d6a6a6a2a38351564b2244d104352f8396301444fa6802733c7ab19d271f362129d10fb3a6b3c993c2fc6c88730a70f930fe4c58f01c2900b6590e2d4aad238d4a8ce541cda17355fe61712eedc767386a8cd83c16030080402814020100801086b06bd19307350d006985d203b64ca1892024cfd9cb1009c3283be9c310688406a0cb9a0275019a44051e2d4e418a94a030dd3a146718ad499ca43270e8d8c942f6ac4d0f932c5d8f942c299306a86beccbb0177c3f176ba5c12ee569bc96253bee3ed763bdd2eb74bdae176b75d6d37dbc976b18ba089fa3403fc97fe1700fa00ffcbedbf20f92fb63f13c67fa9fd3b177ec7c2ef48f89d08bf3bf43b0d7e77c1ef2cf85d9adf25f03b34bf7bf43b47bfebf23b2cbf43e0774b7e07fc1dd4ef92fc0ec9ef8efc8e80df0df03b22bf1bf23b21bf6bfaddef774bbf23e37762fc2ec8efbef89df0775dfc2e8bdf5df1bb297e27c5ef947ee7fb5d03bfebf33b3ebfdbf33b3dbf7be077797e87e777777e67e777757e47e7770efc6eceefe4fc2eceefe0fcaeea776f7ee7e6776d7e47f53bdeef76bfd3fd2ef7bba4df21fd0ef7bbdbef6cbfabfdcee977b4dfcd7e27fbdd8fdf05f13b207ef7c3ef7cf85d0fbfe3e177b1df8dbf9bbfcbe17738fc4efece86dff5a82938f8280d3e0a85a84464ac3c992a513c452dbc2215148d79455b9a5e51ef15253d0b5f2c347a16b078169c98051958e8f32aa4f12928f02940f914809f02d4a710c0a340c6a3e0c5a3b0e813e1f089127d2213fe0432fe8430fe84457f421fd11c8f088e4764c5239af388da3ca2358f48cc9bb0c69bc0e84d10e24d08f22510fa12fefca14687a2f8435a3e84430f421020a4f0c10defc10fef419ef7e0cd1b5ae10d013274e50d31790efe0db8d84082d7c08d06083c06741e032f5f08d017d2f385ee7c21a62f04e40be19e82e25330c753d0c65370c613dae0094df084824f88f784704fa81370f01388f90996fc20ae1fb4e705115f90152f88cf074ae20311f1819efc9f39fe8f19ff278cf7b3f57e94783f3abc9f08de8f9fef23c2f7e9e0fb447d9f22df87e9fbf8783ec3e793f57b36f83d16bc1e1c5ecf02af27cdebc1f27a0e783d05bc9e25afc7c8e7a1f375a6be8eefebe49e4e184fc7eae958f1747ea0d3e6e9347d9c221f87f670e4f8aa34be4aebab187d550c5f85e8ab32f8aaa9af82fa365cbecd926f437b364e3c9b3dcf86ead9847936bd67737b0d1dbf66825f23e8d7e8793560afc6d1ab49e3d584f10c3cf00cdc79069a3090fb05b87e0142bf409834443e8dd2a7b17d1af909b8f16898fe8cf0c99cf164a67832423c99424f66ce9361e0c94879324d9ecc8f27a3f46388635e8cd68bb9e1c598f0620abd183a2fa6eac51cf05f8af82f2dfc1743ffe582ff92e6bf1cf05f96fc97228a143d1d2c1e09d53bf0e4a8407f1e188f9caa360a2470864c1529820201fae3a70f9f3d7a1ec883e78e9d3a741c9823270e9caa376eda1471d284c9122553416092244992244992244912a09494949414d04913264b944c0d50442aca4913264b942c252595440801516fea0002e4678e9f395ab424a0458a899226524ba4a68252c0a62a524e9808d9fd6ce1e7084b4899c3c5165eac2850663263f07ce9a2454e96383cf4c1e386879fca5443ede193c78e4c83872aea01de8017c2733293a9a6039c66ec6f52d204fc9b824d3a1fcd37a5df2493f8a9a4082f0fbd0c411a7ad9c12f0579c9c1cb0dbe37bcace065a197805ef679c9e7e59e977a5ee6918a7ee98297765eaef04b10bc74e0e59c97725e56bda47ac9e687b31c2fcdc8313f1ac0c47da400e2e70f4b01483cbfb4349fa51ebfc4e365997299ce1fe725032f177899e6374bf2a5989761d08c9142bc70c9d20fbeca51e8b21eb87d920b893ee9864ff2e193b0f824e0277991e2657cf81c2b346138e167133f99f859c4cf257e46f1932603113f7df8d9694596f01ee9e6e76d16b1cd648124052f217819e8d723e1fc72de5ce5ce973a5dba08baca775e1e51e71fc281a62a789e44e611370d6cbae9f25ab857755c9dd4876d707769ae15a23baf78a83dd746c07b8db18c91f0c032cb1b1b5fece1f262f74a81256d8b0f0e717b4917cbcd9226e78320dc9d0cd76aebd6cc78af404b99900732ba31381e68e8594bf341474bdb0c5ff47193e478b0aacb7b74b1b0dc77f8a533cb9bec8b596e6df85e11dcc9f8a5206e0f858be5e84eb087926179fbe08b18dcb1829702747b685c6101b72ebc9392ab1b3f8c813b8af05219dc19c2433159e270f82fdd9236c5077f58d2e07cf083c758180f8ce0f91d3b28d74ad04d0ae3c1c0dc9e175708757bc63b35f0e431e63eba727b5f5758e6eeee5c2b202ecf8a8bd5b49454fe29cfcd9979b021663e3c694b3e18e8fa985ce10737367ce0059777e55ea5707d505cad2f4fa413fe8bd02d8f6f9a774af9273496d18ef8e00e57767ba00d5726c10389d747c215c2717904ef23a8ab94c675b4e4ee44b85661dc9e00170b82279215ff35c255da72b73cb849590f16e6eaacb856b4a70c870fd62e4feb6229b93c08eed5164f2512ae23dfa3c4e09f2eb82395976a7237f44b5237e9880703de5dec5a4d59d20cf8e0a0cb3be262edae12f06ee5b93c392e9695278d840fbe707b6e5ce194eb43728516dce9fba7216eefc8c5a260f991af143707f56087aed2bc5b4c9737c2bd5a63894be2bf0058dec4f8e20db727e56299f09434fc9308d767c7dde25ddd0b77966849abe18335dcdc010fe6c2cdddf16160ee6e806b15e7eea25cab417754e0a5c0dc1c171f66e4e6a23c580b5769781d3179f2e8721f55b93c2df78a85abc4e46ef9b93ca67bc5e7cadc3c708cabbbf2612cdc79c03f99719512b85b29dc5dd6bd327273407c186e591bf2c130ae4ece8739f14c7af25f442c69057c1082a5ad8d2f3eb93cd85caf479747d37d14e4f6e0b8c22a3787c487295d1f9b2b14e2f284dcab3fb7c7e562b57067a0876aba3bdfb51273c7195e8a855b0cde69b7b469f0c5da9549fea9cdd5397d58a09b03f460605cddd287f559de8c7c5181a5add01765b317ee3ce2a1dcdcdad77b91707968ee150eb7f7c1c54a63190be181632e0f35d74b0e2f0f9eb50a3e18767d0b5ca10f4b1b065fa4ddd8100fa4f39431fcd3a13ba5fec9ea7923f3c5394fa520ae23a63b177828e905c395e11e78c39d413c140377d7c3b5eaba938a87ca7379425cacdb538988eba889d1f5fdb9c22deeaecbb5e2e02af1b85b4e2e0f807b756789eb7d318a6792eebf6cb8bb10aed5174f241efe4b83cb43ea3e427265691e68b59c65f0c103ae8feb6ef9ae0fcb15b2707987eed570197be1810b3c9550b88e7878355d5d950f53e14e440f15e5717cf4401e4f39fc271a9eb30f3e28e599d4ff92617913f4c5415727e8c3c27826cdfe8b864759d707815c5d0c7796c2bd895f9a73931e3d989cbb19bf44c43dd12f1db0c401faa21d3736c70345b8b91b3e6c2e73013c1807774cf3525fee1cf4504396b82dfe4bc8f2f6c5176bb8bb5eab28f7317e0988ebabbac2236e8f8d2b44e0e66af8b03e917cff55e68e043c14178fb3243ef8e5f220721f0d59da96f8620057e980bb45c1ad3d7aaf0daed21dd75196cbfbe26225b9e3072f55c1934702f75196bb8be05a45b1c4f9f05fbd5bf3e2bdf05ca538ae2304ee14e1a19c3c651dff84c3e5b971b110b8ba28aed55c76f1c465f9a2d6ede92e56d5a3e4e09f30b84a6d5c47052c69453eb8e7f2eedc2b27eecc7aa80a9e32b00f06b90de19d96ee8cf35049cf241eff85c3e519ba57655c5e1317abc763a17c139aabb4e46ef5b953eba132b873d14381b939e083917065143cb0f81c977820ed2a85b95b23dc5a16ef55756b70bc97054bdd041f76c61dddbc5402cbdb095fece08eb787f2e1f624b85857cfd69e098e270e96b62dbe88e4e6aa1e4c8a9bb4c383f1963cc6eb08cc1d951eea883b81fc53123311964a7caea3dedd05d72a8beb73e36ecd9e35de07af2e6f8a8bb57475545c2bd99d503c549d9bd3f36056776ce1a54e382643f4c1f1f2e0b85853ee9cfa27e1ada17702e02afdb85b5a9e363e5fece561b9572adc79e691e079deb67c11cef3f6c3174f58dec8f8220eb797c4152add6ef04e4a4fa437fe8b85ab7bf36147dc5d13f72ae94ea67f6a62299dfc139dab73e1ce4eb8b38d873a74650c3c50f844fae1bf36789451f1c1dd55a273b782b83a381f96c4552273b74c78c6a63c10c96d0eef84c0e56970afc4b84ab7bb75c4a9ea0ec22f4ddd9d1af74ac9edb970b1b896380ebe18767b8daeb0c8ddf970adbc6ece83078be35913f4c1e2ddf1b95646dc4ef9a607ae12d2dd4ae2d5c0e5a9b9573edc7ef04e4096372bbef8c2cd35f1613f9e480ffcd79ecb83e15e715d9f0257d8c35276e48149dca9c543f959e2d47cb18d9b03f3603d5ca52c77ab83671200ff95c3d5ddf9302bee2e836bb5c573dafee987bbfb72ad0cdd91ce4b3510fc731be49b6acb16f9a6e0f2f6f545232eef8e8bd5e5e6de3c5814b787e8626dddde0817ab8dfb19bfc4e8fa72b85a4bee08e6a5aa3c95aab88e0458364bf3c1a99bdbe0c1dcb83c2e2e1691cb6b72af3c78568b774ab3c4adf15f49ae4eca8725ba3b3ad7aa8767edcc07e5b83e2057a8e72ac5ee9690650e8007b3e0d692782f33d737c1157a71a7937fcababde39de6dcdd11f72ab6bc8d5fc47273727c5896e5ed2f5ab9be47772be929dbe183b6eb1be26a21f03872f1c0a45b0bde297773053cd80a4b250baea3dab33fbc53989b4be2c3783c9158f8af42cff18607f6eea8b8573cee58e4a1b4b8a3a29742e4456649dbfa20147734f2508dae1295bb75c19d393c54999b5be2c37cdc5ef0626970770d5c2b454b9c015f0ce34e1e1e0acdad52c73b2fe5e64e191eaacb73eafe2988bb0ebf64e6980c03a40afe2bd08db5f1c00dae2ecc872dba3caa7b25c41d0178a825aeeed09d69b0b471f045dbd266c71711b8bd43176b8d656ee9c130b8ba3c1f86c5723d9266e683195c1df0c33858da48f862ee7166e683c11bb3e381255c25aeeb48cb93d6c30771b8a39897ba72958adcad36b7f6c47b2db0c4a5f9e21ab7e7e362d9b93ba76bc5c6ab86c7d90c1fcc727d6077ebc71349c97fb1b9be18aef0eb792be08b54978792fb48eaf29eee55a02b81ff04e7ea781fe6c01237fc2f245729ea6eddb95382870ae01ec32f6db932dd0377b8b51edeebe9ce0c1e2ac93266c203cddcd9e8a1003d6d63de6b8ecb83771fc93bc61e0a87e54d812fd659deda7c31cf55ba73b788b8d3807fd2baf3f74f4c5cdf952b5ce1eaa23e4c83eb03e10ad7b8ade19da03c6b6d3e48c71d813c54134fa4e17fa9707d74aeb0893b1af052c0db2b73b16e5826357a302d77f7c6bd2ae0267df1605eeeeee95ab5b93caaae17d7d5a971ad9e9e328b7f52f44462f35f766ecd7c130677bef15023dca4361e8ccd9d097c923996382efe6bc8d57d5dab27cb5b185fb4e196c83741dd29c543dd59e2887c718b254d820f9e70c72c2f65c0f56ddd2ddbd50dfa30ad25ce822f166f587327927fdae2cec22f55792279fd170c37e7c387d9eeeec9b50274793a5cacb9bc09f0c5046e8c8707beb93c332e16939ba4c58361b93e33ae169dabf4e46e095aca2c7860d8530987eb28c8f599b9421c9e4858feabea8924c67f257af2e0398bf341265e12dc9c101f967495f2dcad22ee2cf24f56dc5ef9a63f4f2436fe6b85a5cd872ffeee49fc52d5ed31ba42dd12d7c67f41dd9c93074be1f26cb8576177f6f05009dc82f04e419635033ea8c652cbb34fdf24c09d4dffe4c4f52171b5ae5c1e48eea3016e6ecb83e1707521dc590677e7e85e4979942dfa20ed8e07bcd4d4ed815da199a5cd862ffe58da4cf8a2eeeac0b8563d6e6f882b4cba3da48bd5e6f682b842dce38cf641a69b0b3e580997c7c0bdeae18e1bbc9404b7a7c0c5eae1e61478b023ee57bf74c35766ae0ccf03dbb8bb21d78aea997be1c1babcfe2c79d0ae233a9787ef3edaddadbc1ce24903e283395cdf8f2b7ce08924e5bfdc5c591fd8c25532e33a0a5e1d910f9be0eac2b8563eee1efc12f09994c07f35b19c561e70ae17f1f292dcab0aee28c14bedb93a261f06c26d966f0ab494093fe8bbba023e6c84670cc90305b83ce1c53a72751a7cd81bb757c1c502e399c4f45f3bdc49c24315707940b98f9a3c957cb88e7eb73ebe29f68cc179a093cbc3c77de4bb3c0fee9519412d7777bb56599ec58d31db03832c6f3fbe38e6ee74d7cacb95dd79201b57e9caddd2e0f6ee5c2c289639a5072b74e7090f75c0d2d6f5c52977177e09cbf5c9ae50cded996fcae0f6a22ed605cf589d0716f0b4bd792fe21d0778a82d9639a607cb60893be2bf7c2c6d727cd180ab3be35a35dd9c1b1f46e5fa1eb8c2299639a707d3e0fa0cb842129e4901fc570f4ff9f44290dc5d0ad70a0daf32b717c6150297382e5f2ce33933f2c1019eb7305f94732ff3b28c3b2b782823cb99191f4ce0eaf67c1817d7d7e60a192d69577c3088db5374b1ecb83d40174b8babeb87a5b94a4e77abcce5595dac01ae4ec88709029eb9beaebbc5e34ec52f29ba3ea62bf47373c30f8bf228e1fc53044b1b105f645ae2a2f8afa53b5578282a77c7c3b522de9d1bf7cac9f227df47d747bb42365727fbb035410aaeaf87abf5e44eaa87a25d5d1bd78ac81d3b78294277367e49899b24c68389b93b26d7aacfd56d5d2b026eef858b45bcb38b8712b4a4a1f14126eeaec9b5f2737758aed5057706f04f533ca502ff14684913e0837aeed4e0a1a0bc38b8be06ae7088e7147ceecfb2363f98c5ed295d2c071e65507c507777b56b75658943f2c52e9638265ff4e2ceaf878ae13952f1c0db13a989fffa6029819be4c683357079395c2cb99c15f960912792a0fff2737d215c211b4b59c03fd579c6fa3c30ca1247c27f8d37f7c587495d2503ee960497c79beb75c79dc387f2e0ea70b833181e9300fd171dcb5ad207bbb86bf14b323c19bab6df0bd19d835f4ab2bc797db188eb935798e62985fff4c2b52979af35eea4e0a18adcde1457c874772f5c2b376eac8e0792b08c6df1c0404b1bd717a53c673e7c90cbf226bf78e5fa845c61a0676778a702ee0ec8b54a7375745c2ba9dbabe10abfba261f16c2d5f1f8b03b5e2cdc51cf4bc5b9bd39ae70cbddf1ae1598652ee9c12458d2c0f8e011cf589607422d7162be88c6e5c97b85e6eee05cab1b6e8fc8c51af44ca2f25f465c9e9d7bd5c413e988ff3274773eaed599cb7b72af4058e20ef862d6d50dafd590ab9bf3614fdc5dd7bdfa72951eb85b465c9d18d7eac7cd6179b01aeeee77ad1858de42f862068f33411f847295d8b88e9e78b9598e4f3e2a6c69e3e18b4b7737e55a117a2ac1701d01707d5f770b80abc3f2618a9eb4e007015d5f8f2bbc7373681e8cd1f216e48b64aeeccd03c958e2acfeeb691923e381122c6d427cb1e9f6cc5c2c1c6e6378a726cb937ca7b8bd29170bd11d2d78a940d767e50a55b8b20a1e08767908701f09b9f38587d2522b3b77047e9493e5ec8d0faab93c26f7cad0f52d71b5b4dc981c0f04e1ea56b83312ee8cf24f655c1e09f78a8ddbc3e10ae7cd8579301fbcd02c69597c50889b6bf461035c9ff06a35b0a4e2eebe5606dc9c9707dbe156cc37157a56d65dd8bd2ab3c499f9e27089f3f3c53a9635221f14e369d3f25e72dcdd08d72acb0beceaecb856c1ab43f3613bdc1ba82f8cabf566697bf4c528cb1b135f5ce18974e6bf1c789431f1c1dced35718500dc5a1cef85c1dd2d71af6c9747c3bd2a2e95bcae232e4f39c53fad7077b66b85e5198b7a2091271214ff05c22d906fa25d5e04f78a8b25ee83ffeaede12e16d5236df8c1266e2fccc592e17156c407bd5ca536770b87abd4e46efd79d6aa7cb08dcbf371afecdc9e0f5758bb3ab06b55c0d52df9b00fae0eca8791f044e2faaf17ee4e78af02b83b27d7eacfcd3dfab02dcb96f14e6cae8fcc15da7079385cac5e1e927b55e84e1d1ecacced69b9582cdc713e940db75cbe69d0dd5dddab2137d7e6c19eb8b2f64e7cae6ef6616c9e488dfeab84eb0b72857beeaed1bd62ba3a2b1fb6c2ed157185bbcbfbe162d19e4872fe2bcfed19ba5867dc5cd6874d3d6f5ebe18e78e865e8a82bb23de2b2fcf2430ffa5c41dc3bc94952b7be0816f5c1fd5151271d7e0978e3c9534b88e74b7d7e562b97067a1871a607953e18b1e5cdf1d77ab77756f5cab0196381efe8bf7946afe49d03386e781502e8fcabd3aa129cadd515dab1796b8da1799782219faaf41cb1ceec122b8bcae8b05e6517ef04f19dc9d976bd5c1138986ffbae09933e1c1ecb83a12eeac839be4e8c1e03cca42ff64c193e6fb609d3bb178283ecbd8a207ae59266bf4c1def509bac22eee04f4504c57c9ccdd3a6179c3e08b8596bff96975e7120f15e72a3170b764b83a34ae95d3b348bc1399e5cd892fb2707746dcabf1f228b85758d77775b5d6dc9df825079e487cfe8bcf556ae06ed5b01ca73e2a853bed3c94ef4e081e4ac8732ce281b23bca87aae1fa0ab84211ee8e8c7b85e4fa4ab8c2ade71cffa987256ee98b562cf7f2328cbbeb5dab3077fcf25254ae2c820772dd9dd5bd12b2b41df1c5217757c6bd82ba39071eec8a254e84ff9a5717fb3035f7147e49caed595d21014fa515aea31ecfd9a10f4eb923022fa5e4bec12f21b9323e0f8ce3e6e0f8302b37098c07fbf228fdfc13059737c4c5c2dda4341e4c8163b3271f44b2c4edbe08c5dd7d71af8878bdb09419792012f72d7e6986e5b8e4a354b8b1381ef8c155aae33abab2c4d9f05fb9cb1b5eac02bcbab8738587aab2b49df0c5dd55fae23a2260998c8c0ff2b83a2e1f06c31d7d0f65c49d00fcd311cf98020f547293e678b03957967ba00e57e7c087417173841ecc8cdbe373b1acb8393a3eac4b90d013a984ff9ac0a9cfb35cbc93027724f250592c6d03bc97187784e0a5f25c5eee5ebdb95399310b1e48c52b8c9b9be3c3b8dcddd2b55a60797bf3c507ee48c24b6d7079be7b35c78b823b3f7828257792f150182c71f38b495c5fa12b0ce3f6eeb8c22fd7b7c215da717b3d5c21edf622b8585637098d074b7395ceb88ea66eaf818b35c41227c47f293d47241e38bb4de09b36b8ba23ee0c883bb778a83f5737f561866eaecf83096f0f892bf4ddbef926139e4836fc1706cb1b1c5ffce1f2a8b858bf25aec717a7b83c282ed68fbbab73ad7cb831331e48c19d6c3c540897e7e55ebdf0a4a1f9a0067777c3b5a2e33e71755b3eec85271206ff25e83189d07fd9e1d5e67ec42fb9b93e1dae1693a714f34f7e96b816fecb767962eed50c773cf3525caeaece87497195b6aea303ee4ffc12a0dbe3ba4230574980bbc5669923f2601ddc7af04e3f8ecdb8f86099ebc3e16a29b9b9290f16c3fdcccb33ee43fcd29adb23e30a9778edb04ce27ab007ee2e806be5e6faca5ce10db78ade29787909dcab1c6e8e8d0f9372bfe197c62c6d565f84ba390e1eec8de7167c2ed06d986fa2e0eaa4b856e39d163c1401b785ab24e46ea179d622f8e0979798eb0b7385343c67483e68e48994e6bfe8d40a599fc7da8f0f7af19854c37f15af928fbb35e5f6a2b8c2a5a78dc97bb5e115f6ac9f778a3d917efcd7993b3178282457c7e7c3bab8ba21ee4c87a7647aa70d963802bec8c51d913c94d5e38c840f52011a7165811e48c732191d1ffcf1441ae0bf16b84ab8bb85e42a41b95b83ae6cf6c019ee6e78afa6ae4e800f93e049ebf1413b770cf452772e8f28f7d193cb6b73af86b8b13b1e68c2f5097085115c1d9b0f1bc28b8c3b7ffc13125e679eb2d13fb57027a3876ae0bec42fc559d69c3e08c6ddf9b956492c7152be28c6ede52ed69bab03f361345c1b8ff7bae1fa125de1a37b11bf44f5b409fae25c2ae9b98e5e368277aa2d7168fcd791eb5bba423e4f9aa20fce703fe0650f9767c7c5e2f21cb57820d2f5495da106b7d7c6154ab939333eecc99d303cd4963b0f3d5493cb0372aff25c9b8ff7cae1f2185daca49b23e2c374cb9a0cefe5bbbd21170bd095e579a01b57c977b7965c9d1bd7aac8dd69ddab244b1c18ff45e42a25dd2da8cbe3e162c5ee7cf24f623c91dafcd79d258ece171d5d5ed3bdea737900b98f7a2c7155fc17d35309eb3a3272bbe59b20b83c03ee950857a7c087f970c7e0473df12a7279585c2c21d737e50a133d63461e18c0d541f061595e8b9e31081e8840abb8bb43d70a8cab84e76e31ba3c2d2ed6d3ddd571afaedcddd7bd1a7365731e884693963b227a294377237ea9cddd215dab2db764bec982db73748559ae2fe90aab96b511deeb278d8e0f4a7179bd5767963728bea8e82aa1711d29b9bd3e17eb8aabc4bb5b53b707e76221f14cd2f25f48dc5da06bc5c4d5dd71ada69e341d3e78c395bf139e3bdd7828119636ad2f2a79cec8f8209a1b4be3811678bd5926fbe2834a5757c7b5025e1ef1627db93c1ef78ace52ca777ae0e60c783045f72a7ea985a7d216d75191256e8cff1ae029cbf2402bee0e8e7b05e5fa5ab842e2f266c2173958d2def8e013d757bbc206eea87ba8219e495dfe2b89ab74e66e25bafd7aa73acb5b0b5f046129f33dd087a56cc9039db83d2b170b05af156eacf8c0146e0e8407737475bd0fa3737964eed5a2ab2be35afd9e343c1f14e15186c5077937d7c183c1115c73c7422ff5e72a8d77cbe92907782151b7d7c5151a798e3a3c503e47271e587bca37fea986672dcc07b72e2f78af34b84a605c474796371cbe58c2536987eb68c9cbcfedcd2e16038fb3f183bffb08bfd4e4ea14dd990957f60315ddde09172b8e656e800733f48c1df0c0235717e7c39ab823d24301f14c2af25f3e5c2579b77ed777c1158ef1448af25f6dee78e4a1bab83b16ae951a4bdc9c2fca71e7957f62e38ebc876274956a77cbc8dd9d71afa4aece820f5b23b87479595cac21d737bc5bf51ae0fa6ab85ac027cdc807f9dcdd13f74a77e5917f6ae0eeca5c2b11aeae863b6b6149fbfaa0159777c6c56a72472b2ff5e45953e1bdc6ab4be35a09b9e39b974af344bafd979825aed017bdaecf812b64e2f634b858643c631d3c30ccd519f9b042775e3dd4a0a52d842f225d1e43ee23a6cb4bba576eae0fd01536ba49583c18959b93f36055dcde1b5748e526f5f060bedb73e06231f18c51f0c029b7b6c57bc5b9391d3e4c767b6a5c61943bfa7828256eaf7885649eb3a60f06707900701f295d5ef1628979da22f8e2b8b419fae2edea1af8302296b2a8072ef1389af140decd49f1614c773af050bb3b0a7a293cd7a7748575ae9298bb45c23337c283d57157f44b569631161e98e6e686f8b0dce515ba57c2db5b74b1c22e2f807b25e8968777c2727b752e9613576b79137e71d173c6e383429eb4db07e73c6ba7493f3c188f3bdb3c54ede6e63c981557e7c39dd5707b0b5c2c1fee08551f972b7ce1e6841f067595d6b88e9cdc1e08176bb8b44df1c5019692c73b095ae2bc7cd18cabfb7d989fbb3be05a45707955f7aa88676d800f8eb1c4cdbeb8c4b226f5c132962ff95ef1ac916f9a7ad6087d10ecce091e4a809b6be0c19a78ceecf8609bdb1373b1165d1d031f06c4f5a571b7bebee2ddf2717b2b5c2c3aee18f5514bae4ee9c3ec5c9f075738bcedf91a5d2d059e85fa262697c793fb68c9d561f0616ddc39e59fd2b84ab9bb157579b77bd5c02da177ba3d67277cb0ca5542e06e153a36c37db0e929c1f827189eb4a40f3ab0b411fa62ecf24ab8576ddcc9e7a1803cbbf54e706e0f8b2b7cbad3848732e08e645e2acbb323bc93d3cd817dd899cb1b72af00ddcef9a61496383afe6bea2acdee16913b0abf84c0f56571b5d02c634b3cf081cb3be05e91707b5b2e9622af3c77a774adc65c89e49fa8ee4e836bd5e8eeb8b8574d5e175c1e977bd5c29dc07fbabab381879a5d1f065748c632d90b1f9c5d1d9e0fbbe2f6fc5c2c2caecfc91586707982ee95164bd9ef81432c6f657c3187cbe380fba880678578273177a7e65aa5707904dc2b42b7e6c1d340bcbe79850a2c7164be98c6e57d70afceb873ce43e9ee78e8a530b83e445728c795c17f8ab3bc1df9e2024f5a9d0f1e7a26d9fe6bd1f5c9b942256e8fd0c5125e9fd31502f2fae276cd3785705fe39792b8b9260f86c295c91e28c3edc970b18ab7c6c57bcd59cac23c308bbb4b74adcc58d2067d10d17304e281e34df2e1c19496371f5f14d3399634333e9afaa854acd908321433c020000801c0803132336713431560804020148c8704621a03d9921a14000c3e8edac02e16d363206a8c3106800100020000000000208d1100a8c3bb1dd32c5f5c16d8ed6f16e07894353a5c99d7019193d72a94d25e837f3bf7986793a4ff1339b0b234223a935708b46818991e7e1d54580da189d15cc0374657eff0e3b47f2195ea6660fb0c939910b7f465d2a0023d77a9ba8133482940aec055fe4021485d2a51f6a8e6b9b8f84563c4acd1c589f556eeb070c16c42fb39203a23a728daec617292e58248ec19472b0e22b85c824542147116e6c8721fabab2a3f268d7da7ab7fbc8c1eda3f8d8ca2e22f409a2229214a004660c9ae4f1fb9fc9ef2b1713819d8f126704793946c458abc9cad45702b595f60cba373c0f503b6aafad1eff3198d6880a2ec6056a31890bf86600d602bca6093ff718f2e6d4504e9a0ddbc99d4dedcfedd8061bad7456f1187fece94c623df748540b134ea1c4ab1098969dc47f7b33571b9a3f897199366812450f1ba166d5ce7ad825a73b2908dacf62e608e7871cfec8eaebf74078f7789abe1bae5ae122d8537456382bbfc34aed4823bf43743e85f3785098d763289a98065193053eabed0073be38f224f9d80b4dde982ec042bebe14ee59cf432b7dc034020af400051644bd47e211ed684938787d9c1c46a3dc83aae2d86c6d6035048ad0ff228da9c584445ba3dd8516c68cd6da28e10d0dc00982f6a59c40b884d6f09ff6be1c5f0de226ff7f7ae74bcac8765c7a854e514a48b4971d52e11d43e8621f524437207147bcb23576eedef88f468811dafc147aefb4df3434784c6a52f2dfb16c0035c249927433aa3a9eeece45192310724be4583e1c7ed0866759d11c84ae7ed7285b85a6045e7bb0bcb9f2625cbb8d786d8d9a06e39023bbd9444027871eba6b8a18b5e28c31fd7077162ed8a79c902ed066284ac97eec2067eeff08e427b9f8f056d30ee4e5b84fb6dc6beef6cf965d775f0119cc940420ea7803278144039208d05f5d5441b776297ad6f17de8eb7776a9e3d8bb11370ca3eb813680342401ee7d70a8c79ae94ff9332e2cb58805c4407ce4788c7cae74f11717952c4a6c238900f6c3c31b3dade70721572e58cce684372bbbe578819bb81b91d4c4b7ee2597fe380cebb24ce79f3796c3546783deb7edbf405636dfe5d8d67e62e2124e61cce23847bea791a9716d167c13a3c626f25ff4362e568af8405ee7debe8292f8ad6a3f4971030ba2835ed7c25dd71633b74ea7d929daf9df4fc9830fce82a3f4f5af8de518e4ae56d62fd746e06e7e31f72b7c71eb80ec987fce8dd0479b13cb185789a78cb21d003138dac9f0992e72776a9b726764cd62736c89e55d9fb5e2218f4891cf7e7355a9bf58fd9fe845ffcc6fffe58c874decff012835eabfd1bed124bbfd53ed50313d6ad7278495fc6bea11ecc03e3f77b21cf73da50cee365f54e0014470d8afc35cf36e49afaba3e22d0ab0f797ab25319fb1de41cfd7597f931d47e27f1061c96db4df4dae1fbc74dece5a8b43d07bd3cace730a1fe61df68ff637608f4ea57f46eb0d74066efada2fbf790c50637fe0cb816236c1a83e7177e37049e8bbd3ede3a7ff664b7262f73d36fa0fe39607f113212f6faf6b7a3866d6a7f05cb0c5d67f2cdfa267f474168e03e9f02af4961d7b887375d7e6a10af3b739d90d11aaf25b6146b8e2fa5d5fa63105a7b924d1a22d8207b0ceb7b704c99bc818972f6f8c6d075c2bd264ecddf43aa7f14a6afc5eb7521bbbe98e23fa180d7ba7e2f6c7610cd4b91a734afa87f64b43187b6a5d4215d9c9abc4412d4697edd89911fc8958f195bcd19663aefc9ea76ce7504cd7623b2ef62e6d79ee7b67bdc011fd9e585a37c02566a7cf1cb23c052a33f9e0c70f522a1862f7e7944ddcf7c7a8245d2191f0f7cf1d5a9369ef8103e477c3106c4e17928c9d89344d7016be4f32f7a5cca4bdff3e71ebab75f2b0aa695c3bf7185c15ce2f2eb492576613fd46c33dcbb52ffac6c77b616c4ba3030fe33e401a9a9dc9eab0861b7531b483f5969c76b8df5b1a5e74c96eb0f417d154ec4752c13640ba29d543daefd621ed9f838e85b38e5c3b32ff7b357f72f900bdc3feec1a91ed9768754c32ffb09dc9d18fa7c7a64f3d4b78f8d62fcadd352b54f2aed8321720fb5e564ba6b37f45d645702233257fd5db7b16b0133ed51fa9c737e6bf5b8cddec76ec1ceda238d6ef3e51e96e3ec1d4b1ab875e3e063cd9da1189e4087c7d50966e08ba9d71ed58f6d305ac8fba5e4d59fe3d6f07cef1f78c7ce6d897818ada77feed4c620bd12fa93f6a430bada5f609ddc8807b8b7e15dc2f6885d571497d0d73c3faf2036d620f24f6e592abecb72c7c8fb350cae95c7e1b0cf3a1c3a5ad6e75f694b74ff0afb33e4541957d53bc2faaaa34dadc5eaed531a1827b6caffdfeafbd6e4bd1f49707614c35fbb4bd1bded255df2382082b7c8c1cf28611b380d68f44c21e37e1abd8832fea5540e4b97ae617bcd799d93f9104f70b7c86c4e702008a7e86f23b3d9c57f57e8f711b10f780c67ee518fbf1139385e328f7ac8d7718757788b150fb3e4dafc81ac5b65b9c6e897ef64b17db253dfba6cb929b3e401ff77c31961c628f7ecf6c61b1dff1d85de3f66be47448f104c7dc9cfe72916ef174a4bd11bd7bc9b3d63ee5fe3e632f50e431af748fcfc53e013ded0d9eadc0f6f98a2bd903ff306d91c291a8f883d45343bfd7643b2cb9f3fc08c42c7fc0703873daca52d4a316b8f71b07be02d4919d892dcfaff51ece7a9f2c4bfb1f2e47fb4ccaffb53360e6fe2708bd7a7e21605e340cd65df2f987c876ed9aa5b6d1c7804a903c9ef90fdebf71803635386ec4717d69a471cddad21067bf8bf30892148cb79c116434f1ec270de9596b1f9d34e704bfef669678e50c073e9dbc46e157a1fe67a301df7558bf2a4d3f721408ae12d019fecf7aeefa6b03815bf7db9d86d7f103e34671d95ccbe56aaf9d08beee8a147680f3a8c566ed1a75b6c0a3aef6be360b67e9ffe0dfa82061e2d1fd0b9c15f84b0d5b52910d5a36051e313b70c111635fdf1c850cc9fd52753e3c5c889f17665a4a6dd802a6e6dc16bab300e92560af198f20cb33b7f3e9e4fecd8ffe0b9fb758c22e4bbbb277d44763389539fc9d69f3cc0396139e895cfda530b0bdcd8cbff995fea58db2af4d07a99342c0d99b3668ceee54c20faa9acb15f47912c771ee2624a9c853698cf585edfc9e783978373304ddfef181e07c8d383424b39f230e6ca9310ff6973a0a7b4f71ec733764daf4dfca24cb7bd8f5f02455ea45dbbb43fcaf4a1776c9dfb272c3d721f05d3b50679dea91379e626e6a421eb5329ffe3420bffb1652e0863eed5bed0d15998fd93cc53fda6ee65f1d1efbc3cd7c5f28d1d766ad804bb813f1c543d6daa74bc4b128a3323893267361684e75bdf1b73dede4e463747166d9f6e400808f30f38964bb12e8f92f33c1a74ae6ed9e0f53eebe55f610bc738a09bb359ef7d71277ed4415ffb2ae89832dbf8dc50974a3a660cd24d67c2998bcaab380ba071760637985cdd3aad68fc3390c61ffe8e753f3b6fd5cf1af86ece21fa0d58eebadbc394a8dfb067d2d6ccb6b9d9e8db49858d24b8f3b38b07df9971e67b6ed3e916c15beb83c2da00bf05adc8b942537d67a867f9f476703aecfd7d3838c87584c964e7b8b653c5d745fedde0ee8d7c7b6b7bf870966e307328f988c0a3ac9612cf77e68939aed3e3c4623e880b8f539e89e3ab8ebb00d770ca649268f7cc2faf34bf6c70edd329e18bcc0fc2799ca7050f112b7f88ba8d0474d1758b7fd0a0f4816ff971f87dedf22cf66f48b1976be88f7c6efa23108b3e7bfc1d8ed7e698a1030efebf2367ce4cf7bfc3e2a96a70987cc2cc734e86d9ac9f881b3c90cd0c378f9495a191c4ebf7017853ef50df1be397b173ea959eaae11046e6db02f60c1a6134d73f21f23ba1f576b57783cf8493e4a316a57514abe848580a4a29980abe58d4ad20b4c782666f41f22e28493809d0e56350c17b599816d010459cb1de334956de07c0e5d9f48b2eb8e703dc95321bbec119f1e08859c3a81e0d7e69ce4f1f3d1aeb1bfa5f4cf79ef15fdc6f1c722d67373b30edf8b2ca9bf9943f2cb03eab3b78c097d98fcabe80f826ecff5cbb1ea17d3ce67b4916eca311e7eac9845e1ddcc5928fe6138e2b8da1bca9eed82e9c9b243f9d478d9e62aec27ecd38bb793be32ef72fd961fb63cb650c9fa1e960e10ffb3799fd35e76ed5bfcc7c2b2e78cac5344eb8f9abe25fb6f1ad829f9f5f9e278aec1e7ad18a18fa8074fb5fc46927401a03214a5331520e9a14cdc549611044682a543a0392a69570e90d80a2f6f1ddd04257d643fe209bc6d8e5f42e055e8717ae5c02acebf8e294239e5803b938adbb703085b6163575c015b08590a982ae669f791c936f67043672b1baa8a8b39b673e9446b1f08e63ef398dd78a8344d41ab3c5334d8839692726da7c9804463fb5f9dc0667353fd5244503b7439d3513c79a95a98ef22abb95641b32ee5aab2f997befa95ba31515cf1a2333496665a7971d59d1a1035d35ea4fbc3eff03ec2d1b2cf95f3276c2eb5fdc27a4ccf837c827dda8db3cad7fc26433f29c9eed7e22f473f0869198949ea51965eb96dfe22f62f85faf540c0688357f291cd1f966c97477234319ed8956ff3d5bb7973a4b73f2d9fa09c837625c0d37f1e3df779151b2746b6b175de1d58f44f671844db25d4a6d12de832d4b175bac27349f06fdd79b1d4b006e90592b064a37963a40f67ff8d971c168d499b7b84c4a7d9aa5f554e7dce70f64fe3cffded7413c9a9400f03ce6393177aa0ba69ce7f4359f2ef27bb56933f4933d08fe35199bc3e7b2b497bd03769bee3e2cf8d38e59d67188c91ed1b60381bc8d4efd54efd0b42f2f6ff8dc47b4b3dae558b2793c5e4ce01bd3e4921d83d27bf423a05e5ed7fd4c3a5df4748406e782097ef238b3737016be4e5f6d76bbeaf297d22b3abede6b2c868da0e2a87b19e764fbaca1e0c3a985a1c34bb91f559e217fa800ff77c9e705eb3c874603fd3d1707bdf7b778db393718b4b8efcccd91c56eafe769fc8df2dafae6cba7dced19cc419ef38e3764dfe71e3656cc6fe5930a8934374513bdab23f937c967dc89a4bde355cb6f481f2326af7f571364b7a7299e608edb2ac2845f4098958fabb801826c1d865a72dfc7da8411fe14b72f536d7857edf54d147df4ae70279939ee35fe2ea777defe9ed14ad3c54d08fd4ae21fdb3c656ae5d33a40e4b76fe30c0ffa52395639cddc8fd34b965fdd00eefa02f813781a01006d2e990d224a037afa72f4b055ec34a648cf5b32f8db0759f2020fc6762e22dab654270c79ff3985238cffc999659d943df29283bad03517ce1ade353185bfeb26096e26b9ff364e1193ba8b68f13b47cd9f259e6c6cfda17797436437e6bbe04a63a7b547b2718db12f57956a3971d770b953bca7c7c996b1895358ddce8af22825edaad3e895d7b53451e6b6df87ec51db49608fa1d3f30da4cf3b7d626bc7cac85084d6d9b4dc7a6d76d8ff240301ee58b5c9a5a47746cec7c78e3cfd87465554b03c7789c162da23eb55af58448af4a1b707a2a7bdd596ce323b74c99df56e0e3489cc652223ae1ce33958d72d61e90a86bb125add6ddf2cc58295436b73665d4bd0f5df68d568bd5c49177a3c5d37e896dce9b4ede6c69abb103857e8033f3eab2b99d1b1e0fe71d847b8978645e6d4ab332e71226f2bbd9f95581bf7e44da3f1aa8349a949a6d0d0afda1cb93dfbcabe668ba6c5d881a8232b952d7ddf51a3bab33c37b2d6a1b551867bba585fca9e3efb686e5c7115a9dd680f753d0c9ae971994dc9896e597ba7ebe6c4942b0c56354e5c93de32b2bd1dbb621829bf134f00aff576450f17386eca33e516a0c141b72fdeb49b1671f7a11efbb562e2bc48b06473af0f5d7914dbd573c68262f439ffea38c2920ca9a5d251515666f4c484569bb8293bfb969ad4b8b59f20a31ddc4d6949ca9ae408532be5ae0e17374a52369c3e4c1233b74ddfe6bb72114aae91197173a1a5fbd89739649a1d58451bb329bd8c91d787b562d625f9ae3907faf47c38a97bdddc9171859da4c0b9a31367e6073c35b1e54a53f7be2e16f4630d59d4f7f18fdbd40cd46aec4e4a3795a1d2a916319c222d71343159af5da1fa1293b6d25a4d1e8a49e23d566691142c22f52c7dd3fba0ee64ab6aa5334aa36f7db8284b05265dfe1b877e553ebac06513c52f8dbe9e6d60d8758d659ccc2d7386efc4aa4537c57d0b55aafb1f6da2d901f9e80d767eb537ef1baa9a9a66c8717bd51afa6383dfb0925f8a89b760cc7362d2454cef156e3f4ac4d9d0ec46eaf671b52faf4e4dd6fe1554b077d2565cb87cfb26295d99368d923f6169f12db5aa939787f8c4ca476dcd69693c57c9d41e0e12fac6eb969b2bcaaf4a9e9140af51e39631cd28857bd7f66d99961b1dfe812da34411d517ad0e4e31c5cc805cc9d8e462bd90a596a47739c070e75dd36d25ff80e83f7446efe8d6cca4ae987286d15c298b0de10f8decc707fae7c98d1adfb11a65503fc45c6094dbd7057f1b6f93d48b3b2b9d9a5e2310f5500d84ce31fba682ae0c70f4cd737e3b4b792b535e4cb3b78a92932eb80b139a5ba6d610a4d26c41639abd8f67af27059bc630c89c3971bf788c715cc947341cadae1eb4665a2ad2778fd27a62df9c0103ae45c3c26afa4ccc8f570795fe198f8aa55ae11007ee0fb47cf1b87f14e397449256797c2913d2f30c393d377ab30b3395fe19ef5ea7b0ca2c1c9874729b1c666645270fcc841b95b49f5ac44e007af9c86e294e788a229bf81e0f39327547121a3d9569fd5caf58bf09f41d030b3a917988a2f6922c965f5e7459c04ca1b45172a8caba9a72c6d54eb8884dc9f8388e858dc46f0afb6cd320e99a6d3fdeb2afaeb647ee99effc39a37bdfa1801f7f3f27931981e42f026599632d46dbce741d554bb59fc406582b8aa7a9a01c80a36633eb47de4bad303f5a9b5317952bc7ddb40c2fc0b5338d14f672e8b8459a256d4b9bc19c9cbb98d35968f26df55a2b2e6dcc6bd62ec5dd8a6e7c46b396a2cbddec9513033d923c3e75af102dd8998ba9e4cd8e33294f40ba2de6149b77181ca997d36cab25ccb7eb3214c3c9bba436906a52a71a649ccb84c4dcc75d38c6baef650379baa3ec661e30fb4872a1cf4066eb616ab96eda41db3659bdb44647b851781f7ce812f55107b51434fa9d3c40371820a886562051dc57e83d794a96d8ea21f48b14742ed730d76e7bbfaec74ff195c5537a58cd984e318f5ad2ceb46fb2de3339edaf0fdeb584b7d7b911c3e5fd1bcf30d31dc1608d2b31b048215afa5a55b92613598a649dcf8f9830da6d092a12ea88c54a8429fc5ae813cc2b69b7b2fcd1c311c22eae2f91176cada6d5262b1f7625fc51a6e54b357f296a0166299ff2e1f43edb980579c544b60edfd80791f90175b86f93e4b39e9b908e33b9c8640fce7630827135744b295827ff752a7a11a1b6ea278392301b1106b0deaea4eb4a4748c28fbcce03c66fc11feba81c12624966dc2eed412875da4bcae654cc9a9abfbb74ff7289390135cc7b2b18b8d05b7a9ee62916957d28959bc0973607535496c047e2eba4722a22bb136978db9630de25e9395729b102266db5b4a324ce2f249e17f5bfd298cd38bc04360ba1b244eb425a07eb57a9f74111e6e6c0282f092f5906c7a8a8525acc6088c7755efa38bd336715fcb7725878535519d31d294458b312130e23372b2d875acbf242ce6101afece8a4be83475deec29e8788a33b8d718502ef1b91adaffc7300ac580125d8d248cbf0ef7685a7d414e2f7eee422039bacc2dd43972f39fd43aa8acb1c178e7b0900e5b7923c3fff2a3de09bdc8a6d272ee321131c73c7c20ee32656330ae2cb7771a86d86cf7010d42aceb383344cbbe26bf8eb048535cca93e54182fafbfddaab76f2eeca283cb1877e2c13e23ec7a423b4b488cb42f3a6c312716c3c15b8d8bbc2dcee34f85f07e55870b54d727078e15a56793d67bd29e53d8ab30f5803238132b73f108ed8b3a19c25e6e582a7b667124a070cbe01d9e9a3cc2153f0400be0e09524637877171867c1afa876e911d4412721eecdfb1d9aebc99485dc25d9aa08edefb425c34c51b32c1c27351e4e79352aa495b0d5ad529ff979055fc04ddd385f89bb23287592dcc33a519a7a8f8b686d0d71319e53ca5d9be2618e6188592a08ae2130431f967e8695b613f5ec83ebe26d5a3117f18e234ae0fbcb287d938155ba7aa48bf95e6bc11e9fc6007449980a5f90c8f5542d0e5b8ed80bfd0fc3093bd47e2f713c7654dd5cf42e2c2907206e9c6ed3fc28c88fb2ba2aea1a4aa4c5cf5a2f892082294f2be83c903224d1cd81fb050940e615fef22fbcb4f0cfc73df2134fe7f571ae950786a4886ede8de20e1735e32ed1cb84fae41f6019a1b6b94979b04d1e2b0e166cc4ab79996c5a88b215119c309c6be75ca4a8d2ac4362a9ca66bed0b1526da755015930f860e539a4f6f2f78285187ecee8e14ef0478df4fc55c7dbe0a0a54624d17291f0ab718c44fa70279e8e59e28bbcf745834f355c85d7a41929c2d042fcbfcebdd1482b4bc79d114db7997f0373ace4ff75a90906157bca09b4c12cf1eee7cfc0417d6e7d1d10a1d23d3b14466a4436b61a2e0fcc29411397ec7dc18b895cd6963d69432847a08ceb3fbdd51e33ea7d809682fbae7233a7e1625276cdebb9205674fa8d57c01be5c19e5ed73404fb4c29a76204fa826bb800a3434f0c637f87b8f14bd3ef6a3a70562ad64e3a9b7163a3392fd0efb7454f893be7f3d495519dbe6531cf57b16b53422720af7500649958d5243d8d10a0322886b522be5513b6e55a606ae3092a07868384d94f00ce877029a15b8320f59e70c5bda42fc1f72530da2aa6f0aba731ca50522adf9cd6b4865f460aac9c3281ed5f4457904308b27f056128a2e34303451a61ae852e4cf33798e8a117232f9462839ce6fa0be987c39d06070d4af2ae403c4b5dc04e5bc9eb7d486f0779f3db3f2369be863493026d919e0faa5901012e869bc9aaef5755a8fae9d5fdfa88a6c29e9f7ef5a265f47085bbbd64f44668e3d1cf49252f13a888de4a5a2a8f5b5920ff22b7dd331a167306428a1e2b89e4e7d40f61d4e93a45b036d711d993e19338fbc66b34bd1f6840c5e71c9183586739848bf0705f107f48cb59c42eeb0d9d72ceb7ef3ef15c0d79ea8c6dd5a8b80119f5ef3d0b7692f06467a027c2c5fa700dc3a8fe166b1f93caa0ab4cd237256f071d34fd29f5e8cad84c05c105cd20105633d02571797aeff7d933cf77dd2cdc76fb68fe29829fa50eaadce3ff6dfd8136c193d4d246a7703b97a5a6592f7a1fb76fd1b42767a887567c498fc541a57faa14387d3fc857abd128edab579e88fa5a80f3e136a3b7dc403260a2e0c53fecb3fa4efd61dc53b5ebf3f125af87ce14576af6c7ac7f38f1ae149bc517426922d05c707c5ae9f4c4fe283469f2c7dacf18058aac13123f357400b122543749f52f19ee0caf27c3ce1ffd1c71ce65fe86f1d9cf2b8835734129baf40f297f9a7c5c70eae31a44f9e0ef7a99a782c919b0d3445ef8502e216da6f68a6c3d2237adfc73bb11c5a70e27728b282e05e9378466d1046865b4103a856501d3a9ceb78c67a18eb1d1fea059fc710ee8b2c8edb55e48229bf8b733bdbf55d250f148fdacb500783028d1770a81e953eaddcbf6bc1dae9d740ba23c3ef4368147a6e6c04981100a5ee46e386fa04444383d0e70e76b240213da9924aa706a85be470a7dfd21f02d3865f5bd32132b5307fb30fef327eaa8e27f5cba535434b4d464b8dc5766a31f1c7ba07b515b7e8a3a711ae4ae6b945f3b4d5e97b3e6fd4689b78f6b8b394c3f4727fcdf542ef3666a871d56adb560ff454b8e7f4c823073a2c58e08472fbf275361fe4519c90f0736362d1184b39c6d38ce404c7c1cecb20a7230f0374193c2cc8041e06fefa312378e6194a7719effee847f732c23df6f797b25efd37faf87ee5c73b132450c6196868206283ae43dae77dca97e0e42b0e9c1eea1e7ef68421717fd5c7f9f886236986e3cba2e9b9110b895fb60aa44fa35529c0910ffeaf1ba31c49190836caebadf41d7140f5aa255e3886565b537b730f092e663d9cef5fb78881e637ad561e03d4cdcdb9b9bde954f7e78e1b7d7c7e925ee2b40f73b1060372f823fe3a8f3dc9d23e209eadeff5bbfb5ff2eecfee6b9466953cf85ea95b2702f5f315b1bed036c6bcba89cb25f97bfe0d817df415e8730bf7e22e6b4c8e32621714d2ff0204eef765958335f1a1c8997ee95a062b7d390a9cc2c9663953fa73016ab8f02ebcb3323b9fda78f9c2612747b366a81cf807b389d3c87898b08a2646356bcac5ee5901177a3515e2bbe4da49c2fe8c4876bc0e8c92b7584b93d9d7ce26ef13345d175a0639ccf578320c67136e726ac7cdc41f8ab98d05779a19f53df6b5c40659c7fd6f500dfe4b39b8033283ac656b0cc723cffefd955aff4a11bfc2ebdbb07c3f30b3a580e0c8d4658c5b56d3a32762404782c641b32e1b604df4ff5fa059b8bad7887a753dfa9c47d352be70027ff903aa6443f215a5915df43a048da1956ef0e07948786a74a951e7b1238b8663c083b794892b4f1ed02ddb0a30461c3d0f116fe44c9103064f88c429e4095eb68328fcecbf3baf6da9fac9b560260d1e7de854b26086487fd1be6ab5f155f043361edce0d9ada3b789069f0626d9e94d85cc55e7e759fe32aeea7a9beb9940db82c3e735a0d85e701e1fdf9b1d4c36328b99d65aaf1f13eb6f721438b12ea039416203e62bdf087a5887d65e5db8ac91d705ecdfae505cf9d4e4a0a33660c9b12a1af0c7cc1d9cb9cff750de909d550e0d9eca3abdeecbbf78361181e56c7d1a16618490e34238dcce6f13110ce3f66d66b095ba2b003b540ce26cd98e4736929ae530072aa0ec0d8b61e45aaaa300bbe3de94d190071d9da1f235f825d58e643c16a6dc5e5e3bd0bff8dcc12e9c6e114de7e97aee3c21402f08c51f10d4b90e3370facc45ad284079772953ab988dcb0c56a8534fadfaa090ef021ace4738b6c8c5b3ab720308601e687e0979bc197851e04a99f6f4cfeaed6a43bf157fe799d26ad02f5d4ed14ee2de542beccd6c72047b57eee26866d1d80c20847963f09be8cc5f742bc127dcfacb7337eb8fb3e1cb68b0d38ced7ee48bebebf1c447e6180542584fec6173d9e6cd56bd48fa2698cfc55bda2b859bcd4229fd8f91238f659a034bbeb11aa5ca016db5d93cf6f37f38c3a581f1cd1fb5dd28db87fed4bd3a37f6b6ea2456bbbb11cac9d76f6f9e4c991e716e6cc7b02e1e9bf1d94c990c73aef9ca3066aed9891d0ae818a0bcb3149a47e6f648d60649f489487cfe50bcfe3b0f1281d5eef0ffac34c85a91a57c173527f5cdbf25c37607dd67cc554ba64afc28c4e622fa98abfc6c8bf2e374c320350b6accda5fe8cefe5350626296d12b8ec1688e552760c3b43f4cb3525dde3edbdc30e3cf7ec0243c176d19cd23301368ff0a8e0e868c0f324aefbdeb712ba098bdf98b748416e7d6fb0551d6b2c5245ff983df5b80804bef39c8fcb535b0c67118b6428562c1308f77233d861ffd0eeadceee22f18f32f014cc8ec2496a09c636f6adec7f81920707a35895fef0d7b83631e097b360e8cdd3a27313d70b0410b63b53cacab6135d29f14de39e1f2fecb316e683369b38758749d63b8dd545bfdc2860d239caa5b54ec69b2e3a45136dc92dceacd6f30475e4ddc5ce1b46ce005abfb758565f2942c713440b4ba59586af74f4062e256608094a7d34308198ef2c69d798853d68c69e067789fd11df2b896dd1da6e4785fc1e63367d79b155a58b05d83491fd4fe09e1be62543837012bec6990339f0db54af69e0e606a1bcb3b9e86c5a9fc78b926634f6c6e4dc093b6fe763a56cb60643b6cf4a300e95f7ea6c5ee181b1705c3849e451bf8c885675dc77a0bf995ed9e2b8e9c3544b77a8431cd9e1a84c7fbd79ca1d4b0c36773d32cf61e2a50be2393bf18d2de988bedd9fa6a7be87b3167dbb715ab7d48f662ceb7d35656e3d0dfabb95dd0743eb723a9b5364fe04cec0f7d5bf7a041e8c2c79cc288b2d299acdfcc2bdf67b1958c21bde7cdad7b6c5c1922b6e1e6130a6ff2833a8b8e7e750e6031ffdf1f7646a10bd6209f63b7cd9bcebd0e7787b9372355682ecdab108def41f89e093531fb6e360c7c6183897443a60c789bf3689b33f47d8127c5537ff65a08b83c006ff28f741356e34e70c7169b694c3a870c81e338b3438027d6e4070f7dc4faba1fd4c0b426b65b233821b3b5894ed6d6932d6f729ecb1632ff15c36c14f12d4b9b79f15747cc6d0932c725f89cd794ce71097fee05b7a12dc486b2131eca0ee2c1b1853772420d94d13c8eacb6317d3437796d9f83cf8b3f6fa3605f37f6d8433c129fb5b97f253aa5567c61753761d86409c9b622dff430c6b2482be602b69c0ee23d8ed60cb8b2553c19a70d7e879fc53cd7568f7b7a71ff59d9bc9bfbfb4f50782c7266dfb12f37c82dd73044d2aa2214a8f4ceb326ab13af7fb6ed2ff28e47d66bdced666ef9c53a3ac13a11e6809d7ccb1c417fa6f284cc0d4b9ad00fbb3109b1a67d17ec8bdbc1bc1f40e017bbcb31e0f6fcf87382fb5ac185123beca64c7eebabd4b1b406d1b2e8ae168370a2d7bf994dab19e50ecd81c620e0b4d973eadb2ef92e52ecb6bdf1453ce7ea5e13a3acc616f56a23a079375136091b7afb5a6034da769c35f4eb61e7423c3c76d9bfcd22c8796cb8b131fdaab93355fc5839caaebea8401e89a55ac6e67d288e56e6cd4d11f6eb352947e2c960c551f472582bbd285f0649f0e55a84e8db16feb69e20ae96f5215ba7576a67eaa2cf5695104bad7e40eb87cd86d5339abecc0d53c1dd7b13ba3072379a3fe2e4b6a17593bdd603ba74834b9c906bd42333812950c35563ed3da2df479c5537dd9694ddff7fff76d81190641db041839fbcf1ec3a23489dddbd60be3e3c6f17e3227c16cc7e21258b83445c8560e711d960c1d039c1cc9cffc7b04baa8cfe97d453369b79ee06353f4f7d835a63a875bccf25efedfac3e76da351a6f1320182c786deb1df059c00b2ef1333446519723073883c3be72a3d1d6c87a3d801c14613fcd65b6b6e29c070946d6cad76d218a85590486e438fbf8249058320363ef5ac62979c9529cfd6759ea965e863921b81437c657cda4015367f67b5bf3ba28e55f26d957eaf8243de7e2004df109746f9e0bbfd2d0668b5359c16fd3268f1c9265738214b4f41f798b87844fc1ef331b1ddeead5fb17eb7a3a9b37ec16a39e329ead09af7927fb296b2b407ba06ba28d04e0f34af3cbbdedd439608d2ab7db8a32e11763b65a6d8737755fc3a76ccced50d514186a9b91fb149cffc62ff2f0020711526921bcf1582b11b465b0bb4f4f46a81f7c0d57eb48143ead3f9a63a9f23e33467fc3a3eecef06be2fcb424eb5ddc07ce3e1e790bab236826fcccfe9fd35c7a8310f6e189d9f6f17b67111c16e1d59af9a5f87beaec19c47a824aadb1cd8b41fb6c7e0ad1c537d20b850bd073bfbcd9b6c48efae6d60d8cf961ec389647a35e0ffb6ec935c62f9508a53a6811d7b9569cf39b0c6f8236c1aa7528ce3954edbc15e33b712aac4fd93e4346c8e431ad8b8ebc58d695df2b19d2a9d63e66ae9bb18ecd6fe0e94b2b19fe10bffd28a1613bd27e028e69687f1cf6a92c3c997e66c934237ebedcf67dba9d652ded03596737206add0e40f35087459a9e5db54da0988812334b91ddcb3e9b63cf0ccc24294a22b917533854f739c9a1fa0a74b83390c307541aaab6296f6f3d1ab5bac807672c94476f67770b9907ffa17486c2abe950da9c82d3f6d363c3b2a45c29aa8abaa682c10e5d5c0ad77e4b0e8311b571b32c0aefc74bba58ea93714db79f9d35bb5f67ff7a502aa32605e9a318cc935545441c65371118945c01e2349d9345a7e14e25fd11e747579630e7a6d68c053322e8f45304209060b8986d710ab00ecafd821dc2a3d717724f5de5e5b922b3e0c9a5383b6c9547dd2b11c39d38686973731014ecbb272ccafc5c3235af80b65096f612e9f46fe9ec7b1877718f5bc828cd57c09c6bda45ebb2eb84d3333fa1d1a9fc4285d5f6b90b94696ac406d65d4e71cc880ba9fc57c0fc6a9f89fd4e273a371d11a36848a91c12bd840b42d6b989b5b1ffed12e0ce9f3b5be0c09f3ca77cd8c4f723c4920ed099ddce11d5a9584b8157b829991e03fdf82d30ad2c6ebfdd33edf4969a9e30c8f118c1b828fb23c0389ceaafdb91965d05c75bd5ab176eb7df6bdad76dbfd12ef8c260a8ede5972b1d28f76d48bd0be6d58517045a4aec4c58d1bfddf8963df0c5b53358b169eab97852dc1e98fa88ed84e2a334e24e67fa12c40bd4a4b8a2992568cd7be7825700461f5f47eb8bad8b740a779124d84ac8cf62c822335048ee6541fad5d8bba49a38edb327e9ef5d951fdf5cbd5f9ff6ff562081d3f15068cbaba9fc57fff873406342ad94fa05509beab21b87dd2cfe9070ccb17551b7f0516de26ec29d1a4603cedc251f9150534b0a200fab1852b5d003e282d2ed4f23e89d663930c924111ccf9ecd72d23c72c83046609ebe6aef029cf8ac3079f919851bd2b3257d21a84c0f52a6c8f3853c74d9b73b527f19a7e7a8b37e63d58a9f6902dc9107cd724482f2c4101f2e9c0f1ebaed4afe45a90fe3fa206046de1af0f65b739bd24f3aad8c3b2bbc9cfebdefb3df7cfee04628b5e62ef30e46b6e47b55d62cb90f9cd23c0972b92abf0a37cb6c3663b211469dd8df5310e9cf59d0cb784dfafb832b9447847abbd230240b2937686aca8628978c6234704c23235a39378102c12793cf071b682118973d1d4c4e7c34f95c5e76312d12c8dfb42c667c89bebb118d7f449e4dff86b46f49349a110f5fcc3ff1dcb136ac65b0b95a19e8aa207b8a9f6dcbef1deae2251f17a3717cd2aeabea5c37fa05e028de0c7be2ba4cc939f2eb81b2ad14f0f405a6579c6c8728a53d9da513e81b2b9549e4803b6817b02d4f1e44dae0c9cb3cd428b82a73da22eb92effbbf41ebc2abc8dd328862e1d6cc5d9c20708464ff8f9933f1e5c923b34be8a46fcdaa022dab4ef791c7fbc2502b47bc9057a733cc21cc5217484b9b5992bb2812bed76df77a93e559cc3348daf6cd74dab8097a9de8b296b45ee686edd0b3785ca09fd8015f7efc7afd6fb3254aeb011cfa940cfd3b53a23e4a75e7cf05aec69afa8bcd4358ade4f7da0fdf00d3989098f1eb0368f7d01ac47bd3a26af0fa7654a87c2c7f05ec86b1b1edfc43ffe7f119b641f03ef3d0db07978f8605e6310e6ac3b0945381e9bf5e93a560ac873bb1a5addef0bdb6bbdbf73df6bf3512b02cc1cbbfc1cbca8125e0114f046e3f981dd779f0fe92d418e42090768b73df8029b0ab981b9328de33d2773a821dfc72f65ad0ca479d17b02b4fc8dedbc03cdc48c5c70983574077c475bb98385e64cf778719f26589fc1bca5b28be96a2bbc2756c6ee1f20b4db21e2f7f9883f770bde762bc6d69e76ed35cdc1380a0238cd4de7fe96de152d805e0758cefcf64a40044e212d3797f0df02e036f6b4ff092f8fe770cdc34fcc9d5a2de0d897eaca8a62cb80945e3b587fb469e91b39d2317c3f7ca9edcdb0861ecc6465650e3a91f7c25d6ebd6c5dd9a3fabd3365fffa8a7825e4fd1550f69de1da0c3a59b96d4b7a46c56e484faa7555be751f94a70f7670ff2baa7fbbc4f12cef54fea1a163c57eca10b75bb5efa46ecd85224c6ac70288153a24f68e62e2d87c4048f81ff9d4755b671b9fa00e8c0570a54ed0696e335cd95ff8bc46a1d9521e160ee6443398fd2cc0a6e1c17a2482b8d3b9c633e7a01cb0cb5a0693a503b1fef1c01b3e6006870174f800ae71407db3c57203037f724ce7350fec1f41dc2e719d92751e1f99fdedfc6f68a7bc1a31c7c48859c41a39c448fdcd43c2d44a98fcdd49096cf8b039c03518808b29335294db5f44f78fd92612aae03675ec15a671b384cf248c7beb97006a70c260654384e66dfca6e7bceb686bb9fe87251a179582fdf3ae34e6bfaa4e6f17bfbb52423798bdbdd2f8c52af49bacb6cda673422039e087d0e26b7389e5938bcdbcbd2c3d022980964b8b855cd175b769b38c7e1d25baf9dad9efdefa161edf3f0e3e582e53adffda0eaa1ffaa418c87535438a4df4ce35ed4dd7fe67cc65976d14fe70f29a7f94811ad1b9c2d908b1365076ecc8899cec0c763ba7417fcc492c17ecd882199fcd68177dd2ee9c0e6e83b2570a6cdadac1aa24e9a4d6c646ab1fc8b1170842efc6fc6bf6829236c14b9f6ecd6c2e6cf943efa288c99be4db567861423d9e8976b287517b3d6245e0c554e1de5274e5f175e68792cdd1f952aed1f652996a463c143278f33a2a0198f7e7de93a96c1bcbb2ea6a8319f0c535296d95504a2f7755d9ce7b9b9c4e00fe866b576c111f142f9d454a053f149eb168a74a93c674ae3f9b9ca18a01d8faf3bd1211ecd7295df610d35916731ee9d10d07b2df17e576c6d06bb2753597cdc76d28e849c028b65bef70ef31feb3fcaff7667c06e42a78ce52887f9642b667ab7d3b333db3b4f2ba9e82e342df88c18bf75713ec5771d18fb2d7fac887502a30ca04193ae438f66156d39d5f4b127f5b74270954540f0d8a25ba122c74f176a7f26ffa5048af59f8f38e2488ffcc4d670df3cf2eb792b7178752aeffa458d81af20542ed14939332faa7b11b47e58c3675c565540a8c003278bb1b42ecb6d8e31976890d3ce832076e6f393e74abf9918ac562c96c4f5ff0ac817218ebbf2021775bf868e03c2262862b83231b9af11deeac174f46225675732b194fffe81cd93e5677ceee702bd3500a3b6ceaa03706bf40d9bb1625838bc720984f94e0face2361370f73abc46b5cb94da3346d835573a963b43fc7af2e50989c0baf5d16999d84d1ccb48b3d97964a403bd16d21d0521f6f3bdef810fd45d78b911b3ed0cc3c17f5e8e155e630accfa70a2df9ba949ecd0c93501bc5781816eec7f2cbdc5d46f4e933a49810a12ff975bd694d08416c51153ad7f34ecf027e8eaf65d117f10d81ec53e57e5b791e08c7f178aa96f7a9aaaf887a2b55edef70e6b96b6cc3f8e6f47bfab28417327349a5c8217571983ce03a77070fb9869ac447eeb473c576785e9a2a1af7f5afecdccb547e3809cade1361a6961413be49d3d4b5d7e9376f1edde17e0d96f841aa3bc04a59db8c375f4d15f0b727738148695945e4303555c499a685ee0501e7895870bf8aa5a93c1e463b36b006b2a5a9f6e4393941f30f1ae8ab291c412d375b0fe4001ba805cacfef184e967bfadd89ff48a03a69fba05911508df7f4eadcf1dc785f3555a96e7b4387f359ec23103e685f9f39d43dfe7e1366a2c7385cb07efd2ea19c78704f24cd8b475de2ed8114700417bf9258a59466a92b35d73339b8acd16765f7d3368ceaed81331826cc08696312ee94af7b4bf9f4caf8a8d08f8331b33afeb5f711805d3ec006c6c036c89d17c95efe7a0d08f1456cd4278df8f76f3ccee928bb8957ca5d6fbb08df01fb9faa7951aab88714342cbbbb57bb9106716564580ef6faf2a9883d5350da921ca3f0859fa22730cbb8f23fccbc4ac57f80d2b85d29c0ee7e26d994f318d869f32ca2038eb65346e8685f028f32ce82625ec1668f3fb2467ef3c03cc965441dd7566630af4d8b3073336aeff83257be9f76d17299c77c79d5bcb81c488d62ba808590bd71d92e2f8e695c3640ee5601b9e57e50bc1777909afd38bc1d26f5640593477ab47679b46d130a06430f8186bd9d79ad5c9074998846bc3262bf8568fc75b08b9b30ac558e64cadfea1e7aff4fce4e5b937d37bc02a15650b06d6c238dd14823b7090bcabb24b54c1db688d5129916ab0c4b45390bf492516e6fac86a12765b01453e3e827517a4e06d9c869e06bc99e7af02a323e8ac147647f9847107894d033219d07e944d13a7eb63ce48a9131ad6ba96abdd2c0596a7e99ae6fc6925d0ee4d1f3d30da4873cbad510893b7f9854525ff8894e2fb8e56ffb34113090f68f190756439367014db1a2aca9a81b69af6483127e39a107bc3bd4005117df54aed223fd4ddc5c0d321795fafa068378f502744cb2bf1286e1da792631125ca85772ba9b229d655727aec5c34e7712647056424632e40a85ab0d3bb213759d08f3abe9f49a33887c8f0ab965368325ab08b55a7970ffad43e5bb2483c1eab466e2f4a558fc66c57e3617cfc4b2f980ccefa2c4da70abe492ed701c516112c6819246ef040563feb960d7671e10d2640167be1931442fe44d2e0d87c5de5141399a7c49c6789345ac2869d4e3c12445947748335b5136f4d6ed78970f21b9481414642494b1378dd002dbfe57d09309318ebae4d813ccde61f299006a19064482d4baf9d3efc7afb8795219fcac2c11325be75de52eb2dd9c7d5a02142c41348e607b4a6e716dd3104f92ee2533a36e94786cdf3a3f1b0ce952e8783b0a2c71f216419815451812b97df2210e45fc60f0291fa3cbe899d24263270abf11ae95ea3bbad02d07c526cdc45b755fea76aef349691d50c932ed8f939dc7a5a18d3759c83861952fedba7997338cc29451f824037f592bb1c087c5890a87188765c4ba12b542e174023d8abe8cf8ac78fbfc92ba25d3f252fc083a39b160a63990577c36a276bae6b9ecd6fef4c4e384da7f8d16550571060b21626f0f1b994b7ece965402a9288ed65b0d14786f1219e88a2bd0cec4f8d98dbaaeb6e10228deb3c8acdeff3d4408b2f3f813273c4445d66d36fc94a9b30a008a7f11b0756dbb6aed02f964121f953b9f33a976e0e63ff8d94abb65b37702d029eca084c2806a3e0b91401492dd5a2b0be89c0b713fd64757b91b8134a34b119addbf9c0ae864d32a9917cec82bd78c0e31753588ff91130707cc306873874258f94b5818a5fc2030aaa74582237e46285d81cd9824b4cfb59625cfef9be55987e2aa2c61898f2126d32cb1d115009f53f0356c1293cadf0eb16cbd3d35f5244ddc7cff95786224754dad6ae9f2016a121fe7ed4c225edb4357a7a33aa151dcf849a22eacf8c1cd1bdf1dfafeb3cb9a25d0c17e97bf8a121db2397d7f2e895adb3c091e4674a3295055b4c726e8995e6fb64dd15913143790805e3c9512bf0c42f442b638732cc4ebecec94c206dd43a4a40c7775737208dbb0ff137746698042a64a48637772510b0a8227d0c42d5080d851d15653d47f32b85486ef3b3276ef4985a23570f631536ef9b47eb825562f86e4172f7413ecef2dc39976579a1c291e4ccf5694b432c1c28b8727306d19f062e18e330d071e1d71a8a0e801ba8636ccb89f6f8045c414fa079d2a0756259ec913f849afc8579a759aa130cdc027a363546cd8d1acd1c9022f0f12347260a3f006a60f1e792cb8d125d902b7201ee80c3d8056c17462b934b5c47203d996a76d33db101be76b146b6e35c35343b5ab794149e0c2a647131f067ff86a5fe112f004ca490fa5062ef4b45fac563cc229f123bc061b58c26da63cb5709660466ff4e9c992743c8280423c4a877c6385395ba07158afc7d09855ee10fa7c3f031b410621081407b3c9d910acb98b03f04efa78dd5a21eb7a2413b3715e111d47a625645dc37c4d7e9b0213ea0f6ccf7e3a5e68cdb1fd5ffc92d1336bb996e5f7c20aafa487a52ff7ca451071b01fc0883f1a3c46ae88f50305f1fba0bbef3a052ddd295f373252623b20e13831b7f187b2525ce8990207c088d2b0fb9b66d536a3e420d84c9d11e63584b103dc7c007c3fea9ac400f00d42c4eac667f6735f0c0d912df41a6acc6c87d3bb3bb2e3466acc8ae43540cd570232aaeb59ff11753e06d514f038e86f1dd700bbd91104a3cf5ed288a2e8580db0fdcdffbce43863761ffa2169cc4864374e3cbd0abbc255263317fc7de0b238326f6f70e97764fdf9a8dd3a9a34e1b066e9f09f83b919e7620ac03ca70d66f6299dd948ec1e475d25fbfeb293d30cb1bfe80cbd7abb37565631fa33b915f246fdafc79999f4c03ef5a16a5257f4e223878c9e0245e5c07021f480ac0b89a6d32f538a3db9b2b28510d8803d39709780fc3188f31927852ac2daf5a3ffbdfa89209cf1cacec6eb687c9e3b9e430683f034b44de52f7757ced251d7ba4ef81098c211f136ef2d9cd174ffb0eeb85a3367e811043f3e8e4ef04db83e0d38c032962a66c9bfe1974a837a38f6f873eb3a84263ce86948bb0f1fb642c237bd16ec93ec052bfeb325417ea38328ec15ffb6aaeb7bf9e31fc74caf3ec65b79691a07404171d4c4eb03b1718d69888d0099dc17fcb4f8ffcd5147b5d9743b37c9b2360c4d824254d4e4aaf01295fcb33711f9c1bc677fc7c00970a1ec6fca8e759577aa3758597e7d8225b562e5c5290e1eeea8367c617f3c823452de2dec6ff6c834c377826df0ef0f548ccb773f28957eb7bae97193fdd35c9bb637c41c4f1af749b7dbb263d62fd7dd39e31370ad6dd9bb9f749bc20e4bfa097847a7e2ddd7e65d9e5abb211f2a93d3f213702df7787d244069778bebad76203ed8c2fc087826a46337d121971af490bb1f7b33bacffe3ac5e07aec0bc01d660a37c38b54fb3ead4fbe50466acb63249560a4c3b84fe90cbde5aa583da95ccffec4aaa9a6e83ad1965dd8d7a765e3ec7be86bea9a8fcf79c5ee8c5b20d8e227057c88d8e273e8dac9bfa98453ff3033793e241f897382797623a0fa94657c45c66bdbebc5a23614abe23cf31b54f4289ba285b38507e3985af6c6cbf75032b950a1a65577d2e4b8ef7addad5877388b062e6fd324f83f6db3a55ff99148b34e3520b509af5e0de9b757e716816e01b4f802fe2f85d10d4050f024c301f3ffffffffffffffffffa82f3ed9041342c862b29b4c529279d1eee637cce2133ffaa594524a3245368802b1a951000000000080c4ca68a4b59212190eb80d6f0d6c97f9f8f69b3fab6eadd0f109d46ee9bb9a57a96d328a0b0a25cf0b0ae5ae72795e1c4fa0e7f6a71dcda3d819b95028eb591514ca65512849838e4e20a596b776aa57ca6de63981fc9b61fd655019c7443252e2000a8564a48451317211c162e422f271e9d804d256be7ca9362b9566d304d28386357dbac53c1bcb044a7da69c9db514c353850984a94d32d3f78c55fb2c7c0c64a4e50816148a1534aaa081050d1b59d0204912a0504852088582e62e813837e1b53fcb60bab92e404e94974ca0a5cfa20a1a16a051058d08d0a882067b91104c804229f92e4a5248fb2d9e8dd4a0509e8d885028ff251745a1f0adde79a2c3120855b6fea4ce9c3f975a47250e4f8f9f4ba39947f39cdbf6c9f9c7ed8fd5ae0e4aa0a3d04f2657c6151332f65a502e2f0a1d934027f9fbb85196d659aa36bc051d924088a939ee3de761ef4820b30ca786e7bacc1f6c90408ae8da16939bd9e6ec1168ad74e95b5a2bf127a51c81cc2f9314ee7155a699d30884ecfc4abb7bd2ae6568e1732c4afe8245c8488915eb49b8a0504afef2d1e63aa8d0c108d4d227d6ee3f691a639485af440b0a454b2e248b40cab4c6ca2fdbe36a7f90ca8848c54fd7b39155a9e4b87c94249256045a663dfde8663a27b1c743439d131a7d92e32340a15052897a1198ab414722d0aff46a0df37f6a96528d92572127221d8840bd8a25b69f8c993ceb988e43a0ffa566f5274cec4e6ac9068582235d28949267356e5428d06108848eadcd322a1b9b5c2e04ea4fffabe14ade4108d49cf9c70faa7da3962d7c3808e4872db54cb8a6e53666e1bb0ac95f4c561088dded3abdf89422aa7b9037591a36ae30b88140697a29c6125b6fd438b3f0ad0202f1c1f5c3989f5fef672c7c20f8ca6581007dc8878d8b48ba985028db356e544e3afe808cd1767cd8517687a9edf3c3a6f15b3edb776a189b539dfee55b0acd5e05c70708c82f7ed1d1077414e3ebb5cec2c3cd68f2017da79af45f6bceb4c967e6aaf02b711b1d7b409abbac8b75b695ce3216be37498a868d2b28141b6f921aa007949c2127d76dc71815221d7940ab29b59a71eaeb86dc188a0e3c204e7dabb6adbd3dbc2c512820ff51e3bdf8b8acffc0488916140a63542c9f09c8b391900a5e293aee8014aa3d7decf37e55fd45e463440b84c70fe8b0034a376c0fff6eae34cc5707b4ee6b3163eb4d7b760a031d7440295b42f59c9ee9a9fa4a8e920f19c171111909c99b03328dd9b175c7fccc6add5a74c801255b0a0f9f63cb67b31249d2b071050d470a2539051d7140ca243546355e981e9bb2f085002b5f7cb054523149777040669f71e3df4bcfcc520bdfb38f10b091908ae2161d6fe0f56c763e5d76cee39efbca961bbec6c63d0b1f175b9240d232d90b74b8019db32917aeb6aa9baccdb50135359e98b993cf0ccbb3f0ad3e1095b8c8010292aaa050f492d0c106641853934ded1df6abdcc287e345707c0d3733e858033adddfccab5c3da8145bf8d489893ae1420d88f11d46a5eb30d5d405866084446f74a461255678e7d4b5d76e0bdf19450cc1084933a1030da87f79fb6eade692ee49c80139910085d27ee838036a9a3d3c7cb2115d99fb3cf731e46f76eecf97a4131098e08da0c30ce8bb35933b6faea51f95918f4b2aa95c4a406082140a8582e78442a1502894eec0414719503333fac61ca5bd6dd3c2573149adb88818c87f58b1784e0e48fa2879936522dfc54a8a2b7b356e5438d04106d45aa9e5e93c15b74756117910be4a0e9291a5c7f484860d1a4a4f68387ec718d039648acd6b226bca79594ff2c58b01b5f15bef9d8ebe3aac1b0684fb29bfb13ec8d8df16be4a82019dd57059cabd3de9cdf70ba8b3b9c2d49cdeda4b3252f13b31f928c1a11d5e40f793d235e6a2b97e117c989cd0b091050d8ac8880885127222c25ce346a583051d5d70775e64643de6d81ccd3cde9a547bb13adaed4507171063fb77b767ecb6a9b4f0554c3ef0b670af0ca6626ca8cf495d021d5a4066b1c5141f77e5ccdcaa781650ff36dba6b969500f5fc9c5e46001a58627e931be9859e928bfa2e30a88f54f32ec9e756e2b2b795632820ce8b0025aeb8dff1bd3c6d9d8f9ac02c2d465e6388dfba585163e9107a92ceaaf0f10137540071512138f9eb6721b3477865b338db54abc2ab51e0bdf2f91910a08485afe4b640222566c9b908c9c8e292036e9965fb7490af99c856f99c85fbef8ca87bc852495e0d04b97c42a780c810e29a053f949bd973aceca1cec88025267be995a77653225a60705c48a6818636a7a1b632c7ce65c6404472a619b03c777033a9e80949e763486db72536c9d803a5d32a6a9f59cae8681242f942449a009c89551cfce3acc167ba3852fc777714892049880582ba59625b6d51c7959f8f4f2ddb1843de65a9d73b4a9072139b1619480b217b7637d9f360f260b9f5ed649c9858bbbbe84b424a0f7df96a95dea3daafbd18104d48cf934bdf03ed99ceead71a382a3e308c824b64e77b752dfd2399193738b1d46404dbb79de9da5d4499e21e67414013d3bbece58bd2b2ffb108c94948ca84aaa208280fc4a22204d654c62954cfd9cc39713096c8d1b950d740c01eda9f4d39a622b5b1da3504040be430828fdede69df6526d92f982618143246d41a15028262423c7356e545847109041c6d79af9a6c9e41e96b4a068c985c4021d4040877f592b44ec6b4aef07681393b764e65e211ff5e103c4e6d9707ac5c6e555787a807cdb34bf4fdf507bfdde89eae0015a6db7d955e2ce4dbdd31d2c9f9f2e9a73f8789fe372d3648f6cf96aa9dec297cb24211f078b0e1d20bda54a8d4ac6b4711b617917919391a5db9103d432d52ee5c9cbcd75bb9cb849975c4ccee9c00152a514d345c6ce92a9b6f01dedb801eac5e79bfccdda5ce7dd06a87dddab33ae6d25533161222723aa06489b6d9b63fde6b0ccb5f069013a688014fdd375332d151e7b26f21102919311914a9f013a668010cf71bb5edff4a90e0e918f2edc74c800796a4fefc9273b77fd480d0aa56444448442691174c400edba59ccac93d7165368e13b692cb99028a003068813db3cd797b299ef8b9c92b7ac92f45c945cb8b81329f9cb259170c9c5e40568952353b98e9bea319adb3cd0e182f5a98d2f9d6fae4c5af82e267f2919b198e0e96881b7b66f77aa6a7a1a6ecfa6acbeeee7172766e1bbacf4c5574052c887e3258d8034ed60014a83e7bf571fdbe30ad7b3cac8a5c2b79ee105a4f1013a5680949de49b2ea9c5ca162d7c26970f1c1fac027212620e011d2a40291d852721336349d32d7c188211920ac849489bfc020f8e8f0674c889088e0fb5212722de910294f691716bc78e31a6cc4813c1627d88242d28949126f251591f2289846bdca8b40e14a0d7d3e4b7269b59f4b6f0b18fca93e4b8b00815144a0e91746adca8a013a0c5898de751c6b0868758980025275f344d132765994a804eeaeec3ceb2a4102f5d4102846d9dc6d5f0b4a66a9df380112085a9b9e9dfc3ca1cbb152240673c1d6fd3f26c42732e2606e55899104db7c33c414646d403be40eb7865ea4bd80b1d9b8600393b787adb979eb34ad30ba4ad544295ccdbda463f27c8139759e6589d932d133e08c9c945d105ddafe6b496f3e4629553592b4c50b3a45243b5586963d8875494a06676d9354df53e769885afc2fe526189c46f01204089e959a5cd99ddad742c7c2c911c0a0932e74f3655af8ea3422b4610eb83e6fc713ab2b58e850f2495545822c12bf98bb708623daf7992fa324775b3f085800021685f7d52c6205313d71a372a180041dad8f19fe6947d742b384ed4b3ca260b7249b2ace4a28b56b389868d2b9bb3e62027f32adfa4a6cd395359f84472301a566c41c3b3e44202f2016456dd5395f6b333a62ffe01251f82912c503bf08150937a93c85a9d366eb3014b6ba5d6b02a6358b563e16bbc93ca25a4f5153850f2eba35a35c4cfe3a6f14e461a0d83272024211f95766bb6b1f3f4e231698c63b7fd3749295f6726f7a4f2262589e412d26a3c3adfceb7b5ff76fbc916bebc901311c390bab39aeeb1de3d26375be34625030ba19e67aad9383e63d82c7c394a2e6db24aa848935592d26bdca8a442bfec1865d76fbff8c6c267c51634181390d02262732bdfb594e25aff0135010a857d8c542e2622236bb7c68d4ac503ccaa9ba9caa8e82675afb9339614e73be23ab92ae8926a29d15bb5a494c20ea07d7d7334b1cfd5499d0d1a566c41236bdca85cc1016434a9c73fa6a798ad59f82e25232a0d6003cde7b225264f8cf10f021a30ec3f99aa3fe5f50df726700317ee4ac7e5ece7cd58f8b2c8004b67195598c9983f4b1840df8cae652e7b9799c90ba0d6bcbd1e3d6af1f62763237e6d0194c698b6ae3f7f935acbc2c7460c5001849b8699549f76adf5666cc406ca75cc97656f2bcf3e069d0ba46a999d75e6572bf36ee1032109f9a8346f81d4e0af7ae37d674b2dc403500061b6cc3f8d9193efa9108cf06a81f234a6a84d8f1fc38d43464a480e0d30819536e97fb72a56c554093b08d43846936a4ca5b3bfd29f80e043e4a462f2b11240fbc93c5babdaea84df2c239783591cccf5cce44bed3ee7763f132aff963e65628e16be1719015915bc08440035e7d6c7191ba656878c94b4a461e30a1a7d42a1acf72264a4c40a0aa50114f41a372a228080c202b537bdae565f7bf54a2ff00094786952524d25cd3eb7f08d5c443e2a77db6aa2ae40990e2a6cc5fb65922e0bdfef5fd2850b452bd02a66526a86db612a59b3f0918c8c8054f29a857c9854145e8d1b150520d49242d59a7d5f953163e1eb2f19a9a224594035206f6bdca8b00350bbbed394c9942c319785ef724222f2a1346c5c81ae6bdca89054819079b95a5fa774297616beaf848c94b43b1a36aeb098a4075028ab982c26148ac9ab2e1a804e4d3aad2db3abda5cb63652b97c809098781654a06354616bf6df35f38701e8a486a6391bd6d33769b1580052cf45951eaf31ad7b0b5fe5dcddde7a2fce04149023012501cae87b8128140a456404a40a0aa572b707b4877fe952bbecfa9c6968b1058d06d0a882061534b4c88246ee490c3d20debb5e93ce6ea9b6965110230f88e51e4b64754c9b958f0774d260b6eb49ffdc967738ea67dc983ec72c9b73da17d91d44e3cb0fb387400c3ba0d3f3d47670efd333ae035a872d54acab52429348074f5d6f3de7a6d5dd24e7fa3ea6569efec47340edd8d993229e5de67a57b931c490033a6c9d5d73bda3f9aa0a0aa5725c88110794bbd42bde73b79b63252ff221010a8542e90e30c4800332a7a5e963a69961fb6f8e545292f40d67f44dca5beca8aa37566c4103cf0662b821fd3ab76fdc24a578bf0d6829a6fa94d4686bdd980d8819f6a955f61d4d4eba06be54be453e3fcebd7ec6fc595dc8f6d839aa06d4ee7561f62d75d3a869408b131a651c4f9d542bd18096296bd5d459edcdba629ce1aceee6d9bdbcdbb3a7cd713fa6b5886b149dc53003fa6635a8bf9f0a5927965c483c4619d06fb25256c7797bf97a6a2006195052ca3aa5fbefef656c0c881d35cff0f05be7e12406f49e76996c462d67731a06a4277d9e64a758a7620706c47a99536a736dba9179e5cc255a21c617509e63eaf453fda6647319b10085f297112f28940a490c2fa08326fd1a5709fd5a598c2ea0c5bf4a3119c55acae531b8808e7e66f9f4a6237ba2ae659e7533dd6b89f5c4d80232e7f432eb5b1fa3e71a430b4865a667db32f5ff8f67019d965a6b4fc552f9d183053dec77f0b6718fae9a735619c550f5a8a649af804e3f9fe4fe2d37e1ab185640a65b4acd74535b69b1ad02ca7566557ada3eef148542a154ee576a257d25dfc548490c2a20bf66ed599f7cf6ee6ce1630a8542b1914cd84239da7f03289465438c2920568a31fff737868e878a7421c49002c2cd668e291befdc6bcd418c28204c66ee2cd7fdb9d34964c424fd16140a85d29553138d010574c95a6387679dff46f604b4aed2616a355cc7ac4e4e48bf643ce9277b156f5b956b6aed9f35f426a04fe5a60c556952c848a15c4c3e4028948bc90748eee120061390ab6ffac5de28755ac3184b408bf313735d0d99354f31948072d9b986d758ca66cf262f72f908418eefe24b1271886c81376224019d95defe166b46f9387b1c220f02922c4b0f09889b51ea063b57e22766e1cbb322c61110aa318f7de7977e6369c3dc85e4a3649933400c23dcb9d363aecf5e9ed3de4dd7b29d63a6a9fa5411f9c0f1aa1b8f0b7f35527231d9ad71a342811845408b77e54a35fbcd0f3b318880b2d519d374f1697c982620c610903afe9dacf529e7b69410d04aedfccf7a6eaa571e8e1190fe2049954ae5d4b851393182f0eba4d3b59cabfa1c0569ba62008119d69a21d33307c708c849317ef0ea4cabc65fa3949b858f47b288e103837bfa9c7183dc46dba05fe396a6f5129ad38c03c7481624233528141c23207a4a2e24317ab0deecbe791613cfb3f9ace5d38b31d3744c2f0b1f49a5b7c68d0a0362f000693a6dc6d81af39c188f5c76c406c7d801ba737bf056e6abeb4a16be0a63212325563421860e5037d6ee5b73b5f050b1858f0b07502814ca1521460e10ff2d36f86b9db4d21817c4c0013ac64e6be97b6d9f321ce30647c9400c1b1ce502316aa0213168805e993feccc399d92198e3103e3794cba694d3ebdc8fcec4f9e769df891f7c4900132877d43542d4d0c9061f9989bbe261b3385016a4c8d7ad6e76966db0b1073cf53e794293aaa74014afaedffbaa544c59e2d40ea68ae5d2a150b104bfee754b9fe9ceb15a0d63a9bea4f4757994d0c15a096d9899966a3dad62f0b9f0a1959221f209c31528078f970f925635c1d75950f931107ec7df1c1d2168e20272127060a50ef2d75562bc663ccd33100c62950626d8d39cb4ce27175531ca514a8e539eb7cd2331a368b1408718d6206dbe1b5ef058149520163148891dddabbb6dcf1647a2f443ed60a1405caf7b45a73f436d8b83c14cebbab796df2eef89ecb6e3e875bee2e2a576dc100055aecf516d58ffa44a35a4b95918b9b9b008c4fa0b3acdae0da659aed6f61922eb2030d303c81b0a53b4bbacdaf53ca8e15c0e8045aab5b4bcc5e33fd2b65e1c3f1229c409faa1759373b785911f9a800857211f938a150d8085f443e4ef222f281e3438100c626d02b3dc5966d2a3a5b4da0be66bb4caf7678e7b7809109f4a7b69b9bd60bd519b9544c1a13c8a87b33f96ad6e9856de1f34b2076cb7457ee3987a9c616be2ed287a0f2799640abcfb696eb7ca6d3fec8a52b81daa66c6bf92bbdd5f6889c54906ff10b73953b4aa053735252a77f9831ab1900c62450bb59986da5a2372f7612802109b4d4f9f1b73c69adc3dcc2f7211f9792e405c84908dfb38f0b9834b78a5dc0880432ca5be56a67f6b9c67800189040d9efcfcf097fef525af842904a462ee6de9f95bc49058424e4c3388c4798445cf5cc4e3fbc8633cd7a2b75147bd5b6852f470201195920201fcd5cc948153844b6a8309154b2058502c311e8acc65b5ccd0d957906a311e852c3e5ffaa0ffbb065046a979a933f5fe23daa8b40fcdd72152b86e7aa5e1168ff7cddec1f34cf9d1281cc69dac966756aef7388409fecda95255faf331f02ad3c6cefcf0eab51ba86e8bb4bc63d67f1e0e25eb34cb8ae59dde0b2c2422054cd5bb7dbc683cd97bb7232804108948d97f29de7f47f6f9364d1822b9703c620d0daa3cb29979b99ee15045aff2db1dd34ba9659970023102819e5ed9c4a4735bbf48040eae67baf1db3ff80f259e276978e7e40887c12a6667e8ded32bd018c3e20a67de7b074f6ea304c7c40cdcbfd20b2a42975291dc0d803f23c78aa8bb76b0c3f1260e801253e687cf59d5c9ccc29d7b851b1c0c803328cfb5e99544cf55eeb4a870d60e001eda7a4546a6bbe9aba666980df01317bb59a6e726b35fa16be36c1db90bf98e430413b70eeee665fbbdfd9348ca709f35115639ecc4464e4e392281493cb47c807088502a30ec8a4f37beed4d5d1c6d3678e0e68ff9729c3d8a799d6787d0ee8cedfcf3f76366d6439a0658f2d936536d5b609461c90fa5fad9ae86b4eb206079450b1fc5debd7b0ce7c033a6a8e526557cce03e5ad8d90d48fb9ac163fed9adbf780bfa5d8d1b150a8c36a056b7945baa5c06537f887c542a9b05150d98401657ece58bca9e1530d8809af95ce65d3193508dfa92a461e30a0a05d760da64b3318ee8c9268dd9a356cb47a3eafd9c16be90bf7c54707ca883055e48fa928bc95d090c35a0634cfb542fb3d4698b2517121869408799e9776b6d962ac61d808106d4fecd5efeb986a6ad7306b49e1dba1b6656366e73eb4daaa061230b1a393e025af4e5f82e2aeb03449d9098abac8f0bc90708c86300861950fbde3f3f5c3ccbb0e441805106846c545395eceb9fd4d6b851e90206199033739a5a7d63e2fdd53d803106b4d70acd1db3f2b03b37492055b80f6088012565a9582a5bc81a1373242d2894ca7518903353e90bb1edb96b0403525ead778f392cb539e60b48a91b5d6d53959fdc5683bd801222ebe65bbde66db6249d5c51f23952162880d105b58d8fbd5f99bc93b4c68d4a080c2eacef7926f3a6f3a67177cce3de89a97a63b3856ffd29b990c0d802fa3dbc5a1f4e2d99cbc3b0a89c096068011d869ace7d2dbda5983139b9a40b17140ac55ce596c947489a887c172397ad028c2c20d6cdf5cbf494354f87810584ed9acfacf7e31e7d26f211810bc0b8023a8995c285eeb77aada450566bdca85400861510533c89db30c65d86a5850f47b2b12517121855380a0c2a20e493cc7473f7b6933f05848ca9f6eeb4cc30dd240564d8a6abf4da681aaa8e025a9954d95b6a56c64f420129f62dd1bbf1d7e337ef1a372a5ec078025a5eae54b51e6bf6392626bf7a613801e5a74c4cf8ceeedc3116becbe3c8b3889c349f6b02330cd7c1536c7c573098e08bc86c72cd9abb3dce79dfb6551563c91563ca04c612d0395c2cb14a36beab6d02602801791b3629db1ba37da62501995bfc9dca0b3b71838104b43cd3356f6fdbe04a13a05044463e2e2423ad2d80710474feda5f6a67a9db51cb08a84f42bcbdc51a9e75dcc236b2a061c2a70e80510474bcb565a96f5a3f5b8b08c818c5dcb46c4d934c7b088835a57a295e6f9c31a510d0525feab0ba3e6ef66006600401e5eb736b8c6cd4ab7b2020d6b85d3f4b8693f1f31fa056a9b56acdcea6f3853ed03d75377d9b7b7ce6f479576d7799664cb35d0d460f10b79f5ea9a9a38769a48948804279921c36ba728e356e543a8400830748ed61aeb8d6da436e036307683d35739d5f52866910860e505bb53c156f7d0dae862a05183940ed2ba9f3cfe61cb7b19d000307a8bb25b36ef86629c4bc0132c9172bfcdf730c534a5561d80025b6d4b3d564de4deeaa0172c6d4ea1519ff623c530318344088ecb4e9d7465cf74aa1288c19a03fe9ef3edb3ab6d85815860c503b8b595bd816aa2ac518205c97ecd034bf51abcc1d060cd071fe5deb98ad2a63db1a372a0cc60bd0e5598cd3afd52c7151021f2454e8797157393d2f0e1660b8007d3232e32df1e8a6f3223b80d102b418af65547e695b52cdc257b9948c98541461b0009dd64deddcf6dd31ffe62e252326096305a89b3d4bce4c62c91c1f0bdf45e4c35279117c9878e578004305485362f7c3d3bd54f92d7cbb0b809102f486d932db52b163ff4392c3865788000305a8b9ddca73bcbcf9982d40a198ab1c9f02b5fdec668af519c60e335925749802a54cd5caad316bf124396c5028392e144ae5725cd00ca1a31428cfc174966f3b7bd84fabd0410a94d799ead4e6d1e3c49cd0310a84e7ab8e327692daa6ed1851a0d6cbd950a14abc14af85ef788d1b950e1574840229c5d236a5fadc4d77e559a0abe800050a667962dff01b8f871d50f26a78acb539e69cf31e7540eca4323a2ef6c5a3033ae9cc3169e131b6f3c6630e2865bb578d35d534b6bb7c34a071e02107b4bb9826e6e9a62526f588036ac8abbda564657c8d842455525ec1030ea88f6f579bcfe4ced61dbac1e30de8b8b9b5a314eb35d89e42396e40c8fcad4d527b0e63df2c7c24251f498b5cae71a3d21e6d4036e01a8ee2a10674d96ae94a797eec2c361e6940cbffec8df13337eec9030de8f7136336dbd6e30ce8fef0af4d6df92de6ec5cf03003bad5b847cf2d6be9d84dc1a30ce8a0baa40ef1a4e683dd46464ab48082071910433d9916b3c5ec5a521c0352ee6b4c973f9f4ed45f22dfda04b0e02106747edab9e677585336633178840169ba3fc9d6cd3ae99742a984c1030c2897fa64c7c5556cbd163ebe3c93905492482aba3cbe8018d394fee9a4d2c5550f2fa0935463bf4a9977c3ed025a3d67535793b157aba050484c6adca88cc0830bc81ce69b36354f52e79885154952c8b180c71650a764cc1ee2eafb3e6d040f2d9c47168e923cb0b085c71550fbc763da1733469d761e5640778efad55aebd1c5da163ef6a802f2b3c72cd3d6aaa552a285afd9830aa8ed492ba9ae9fffa56d0a6879b5264c69253e7b2f05f4d7d9ce939e358fbba280d6656b4abd4bec9b9e0c7840011db32b2a6ffdc7dab72720e609dd3467a912aa664e40cbcde9ce93d49b1d531e4d404a8ff11e5e6c98fdf160824993dac8e8c8db670c9a3cfaad3fb951bda9d86309482dd5dbd291d5697d8c871250f3f50c557bdad44ebb85ef647d49e518ba9c48e001e6f0d98848c22082471250a756af58fbf4b4ad16782001995b86a9ea4eed9932870a1e4740c87a18eb9372fdb06604f44c7b1d0d33277df3e45104a4c73cb6bd574f6db5ae8207111073528b554aba2693b121a04f34eb7fa55c75fc4b0848dd2ba6d2727ade541504b452d3b94fd6ab7da70301354ddbb09bf96576da0fd026fbd4abe806ef17fb00a9c4d0cd33c5dbb7aa3d404b9bbf622cef6c73451e204d7c984d2fd4b30e3328f0d8015acb78fe2e1b569d9e75803e0feeb27d9356ebc57280d46172c6162fd69a9d0bc10307e8af5913ae3fcc038f1ba054677d67bf251ba0a6c9bd7bf68e590b9dbd23c1a30668afa97f635ec798c34e0394c9f0db7fe3279fd52ecf05113c66803033e55aead9b51e27112c9ae0210384ec2c6694a16a9eda67091e3140c9b76dea5b4c8abf6d7ee0010374f0a4f3e709d39c7133048f17a0558b1b2acdd329a96a172055d7a68fb5e32631bd90933e82470b90b93f8635968cc264fcdc071e2c40aca993dbeab7919c8c945c713bf05801e2e77565f9ccdcca753c54801427c6ed4fadf40df374e091029406d5da4ddcad8b975b040f14a063e99d99bf2bfee7b6f091e8ed6d21e314e8709efcd3daaccce6254b1a84800c53a05c67599fe1bfe76d2b05baf664525ba635295d0749818e19b5ded55d4b46555641a38ade51a0764c2d7598f16ed7c97cf14c048b9211f682bdc01fc810054a7fcc9d0cd5b3658e91110aa4acdb596c2dd395bae59ac80005bad54925a68795b5bb09502814cae543b18c4f20a68cb254c4736ffbef0964f87c52e98aeb7cd77702b1daee5cef090f33b938815cb9c2f4a518eb4eaf3681bc3bf59a7690f3d7499a409cb28fdd1da6cd34db4c20fe4cf586ee0ad93ac504eaf4961ed9e16abaf45c027dcb44dcb558c2d4732c813a71a369fd630ec3bd4aa0b4f4744abdd239abe15102b5643eaf87ca4c02ed5dbbc44b193467949104326cbafd0f73e3af8c89043a0adb327cdc1a9fba058946dec4f3765d5c778367526aeb3febddaead7d0452098d37a5aba1424c64472093af963d5bc8ce498961414623504bde7977ed72b5ebc7a2c68dca880c46a03398bd87592df2fdba34c858045287b9bad64eeb5caeec32c85004e295c6b9579dd9c3acd3253980a57f8039ff828c44a064e5e6b591994fed49053210813ea5e4fc766fc83aff10289f3979b749ab142f3304ea96b952f2357bb7b58540e7469d7966b54ed349898440cfabb1e53eb930d7368552e346e543c62014db4d9a74c3a77abcbbf55599628af553a7f33204811afe52fb4d55a5b3f60281dc55dbb36f6dd256940108b4da41d3a8f8bdd649ff0352cc4f65d23e9f0ee2f901dde52f759699d284fcacc268527252858c3ea0ebfc94582bd3cc52ea2f2713a050d633ae71a32222830fed74e9aab3ee5253898c3d9cab617377ca8aa8eb27bfddf237cecc528f1e50461e90e3e246d3183656ef6fc51634100f48f357e26986577d437607b4d9b625f6e9667947d901755ff2668bd35566d33a2066f856b24dcad47d2a197440acb56aff7a69de3cbe85af928364a4e43207e4a7ebb483dd871726b4f0958c84c01840861c90dfaef9e4e9caa85511f9f05b1f2223212f2281f643f2a150461c10e3c3f214d13cdfab5e89c4e42f1f960b5c3e4048b828b998788d1b951c32e080d619d5ae0cf72ef4b6e6945c488e8c37a0d7a66e7319f38765b21bd0fd51a91da394628a73c9680362c3e75b75afd5b69a6c40acda95bbbfb785972e25498b1c6ca401e7ac01f16d4aeb3bfda55df7c3e70832d4e07dbddd6ece9d3667ea7acb66183bea29319ed3870c32d280ccaa765fc915be33b36840c9281f3cc62c95362d760674eddb1dd54d53b6d0cd805a3bd3c818d3d41a6e19d09d6e6a9c0ccd5a6e920ce85b9f648df74bf9331d035aef356f4ca251995c8901f1b5e7f56a35971106c49251cf9ebd35a75803033a0a91b9add93fa98d92f105c4bdaadeb0ff6c736f32bc80da2263e59e38b5c9d532ba80b62dd63e678966a5a2850f87c887c9c9392ea0b4eedad6dde77b4a6c0be8be9bf1931a63780aaf0a32b4809435eec5f0a051e79cc92c20356b4d52ce56fdc1f4cc25c8c00262a8acaee926b174dd9d04195740e7b47dcef5ccbcb16b37906105746c19d4c59bcada9ec9a802d2a5967974b67beccea8805031e5ad534a67fd9d9a024af3ec27efffe0253332a480741defb3f7b8cad4531450de5286e7b03aee0d150a98a9c6cff91c445c73ce9d6ef3259694790262356d189a7d6cbad8897ce0f82899003b01b54d6c5653c79b1bff86235db808595fc86802526eecb6145562eabf68d8b8e262f29794450a643001e9b5a7d2be4747d4033129a1626f89e4304905c85802528fe7b4c3901d6b4a4d09e8f5f6d8a19f7e6594c94802524fa677df9193398929140a253d9b200309a8931fff98761a1bef43a1a017144ae544463ecea1177804b4bc0cd3e7eec498feaa1c0e918f8bc97b8102194640cda4d4f88fb95566c622a0dba469dba849d6ec9d0828dd6a3fa63132540a0f0d640c0119e5ec53766e36aa4ee7721204194240ada9dccdc34e0b025adec6a9a1a7eb3d771940408d19e34975943e5b8ac9f8016affaae6b659e5f3fae08c1ee663ccb69eb3c8478f591b9ee16b654e33ee015aec2cc6ad16fbc13c0a5d404e4c7e0b0a256320830788cf4a2aad5effd378f19ba407f92d2894c51da0d67fe38995764a6a35193a406dcd713b346c95fead8c1ca0930b51e5665b6ceccd220b327080343dff518d29857fdc5a9071039479eb597562e729c8b001bac5cbd8995feef4771935407ecd24bcb52b5dfb6219344093ca6e8eb9c563665fbce5aabb6f546bcd938c19a0f6880a3bddb13d5dc9a12a5e7c30bd06c89001728647256e4ba9d5abb585ef3f4adea452320292235d2a7f39210919598a59c88801fad32dedd1a47cdb628642f10a1064c000fd7f1ea37af674a34a163e45325e80929d1ad386b1477426f26d229248b8380762d20f90e102c45cadc1b4fce02e4c3f818c162077d6b8cca4d16cadec63958c5841a1c860016aa769267c36ac7d89161638192b407852338ad57563cb4c51282a407a0e7597ae357b2d5bb740460ad03a9ad3c7b4f5dcec281b59d010f948962a2894958102b4e95d5bf2d395dc4c3b05ba5f6b25667a53a0dc5fcc7e73a81ecf2a855e9ae3dbc8c7469d8fab9ff6cdbf9102755b6ccc537a4aca981e05ba3ca6f6cd32fcf4a98902f172a3aa93c94babf443811cff3973a149e6de1b03148899a3789c5743c5ab3606313e817a3175c7a059edefe89e40eeac2d5bb566f4787527904a0775ddb57c55e6e504da3ddb3c1993b9d46b3681bc93514af5d5fce9614da096963fb2b4bfcba89599b84ec6466fccb367f7a4a36e3b3b8e4969cb4d9840263bf55853989a9f692f81d6a439646d564b857a80189640e71b7ff7992a63f4f7a2e4a40a4d6c01312a8156f69ab3fc31a96de6309091072c25509a964b5d5bbcb0f9d6245062f2e163bdadbd9d4a0231548c315d8af98f271609b44d55eaa94d4b1d961212289d35ac5a5bccd499fa11880df3d5980d7bc7c476043a79f77ba93425b6ac350229a5d8be27862c062390a737339ee964bdf95de3460504311681deb9796ba992f3fc61fd84188a406ada9b697acea6dc3111a83bf99b726486a555a67710031108f54fea5b97d87ce246a19c57ae82310e8152d2c6cf0e6397edcb86e0464c656d93be8bab77aa2d6d7bb36ffce7b44220e6761419bbd594df2523972ed293249684849c92102c621002395f7385aefab8a39f41a0f6cd31bda6c2fed4ad80188240cbd49c53b3cd9cbf1508d4bdaedaf79e72dda3bef8cb4948e5d78717256fd26710102837356b44966c5f53ff01bb7d8fe7e1dde37347bba132abfd9ba4a7d4ac1f906a662b33994f95882882e323c45fe4034464a412f2d107a4e7de0f63bbc6ceb3a6410c3ea07f3ef577181ad6197140a96d2a54cb8bd3f6271c503be9b055e7ada6b99e37a094a7f8d45277b6f5a01b50326b97b74945b534db80be35573cf4c65895175df40e02006c406a56e1f5698b9521b635a095166fa7bac5d480d49f6175f69ce9cc6569409fcf521de5cbbbf6171ad0b7934eea552a9d01fdc9734df9deb0424c66408ad7cc6d52ea65409ac7da6d53c75bc79b0c28f3b0c46735d5a36b7a0cc835af1915d3d58efe8a01195d83cdd6268601ed37f64c9964491da30706b45a1afc3b6a551ef4a28b4a4b9f170145187500c0179061cda8aa59d5cfef0594e6a4a3cd3a79d3e1d605a494b2e4796a8eb17d2ea0f44dd5e84a46f6545b40a98d6a32a9571be76a011d3c34e734c3ba34536501a5f65baa35afe15c0c0b88ad5d47af97272b47bf025ac6fc9bdf2e4de25b0129837ade4fcd2f7674ab809669c997d459bded282aa07494336566e7783ba85340875dedab6bbc5853a614501a67a9a5730edbca84008802f2967ca56ea9b9e1c50f05a4ab971d36a6a5272073d261ec345cc6b4393b01ad857a6769b3e3b69c4d40acadc49fcd30bda69c096899bca4fc5aafcf1b5c02c236bcda5d4b836eda7000004a40277fa5f533ebcc1fb692804e4f15e2a76458ea544840af4c6a327794d3a423a0d3cc4b91d9642f9a6404b4947f529e8da96cda5d04b44e27eb736c1a2a3b4c04b4b9ebe9cf75c3969d4340bbbafbdbb694cff4a010d05a6ab9a233d785c70cfb5472a9288e002008a89f7993a239c88eeb81805242e5c9f7be653acc7e80d659736ce5cbbaf52d1f2095462965f218ebbbe11ea05d47157f2ad6734e2d0f50329e739fce922f5dee00355fce54aaddc486e9e800fda96f9e0eaf4a999d0384db297da73fd98f6bb601000748a5b6f8eed937fd55bb01d2a69ae9757c95af4ec906a89d527554fb9369f75e03b4cc98cf53b7e4ea92d300351f3eaadb78c9b07b06c8e0df29f3ef4906e85a3378aa1b7a26641a03745a6b73671463e5d80903c467a532299302c00b509f964c5f52a31466371720d5ace57f6a76263dac050893d9796bdbc502a4daa9b3ce6ab9eb972e00ac00756b6c6cd4b6da722b00a800ad35abd068cab4b45901200548255e53c99372a755050014a0664ed5b9c57bffa3e914c8a4b5be67313cc9fe2453a0456daac9c9bd14a8a934fe9a1aae62769302b162c2d3f5e6d1157b1428a9e63146c6c9b82d1605329c547762c91c0ac4cb56b3d4d2d3ee1f06057a758a614b095155ba7e02b92e96ab3ea9f4045a9e8d0d9bd7939ab1d30984cdcfeda9b314d7b2c309d4e76c1d938e6d02b184bb6eefd97733d70452ec687bba616cb977328190559e84ca98efa51431815ce5527ec63064bafe12682ff1c27b6fdad26a4ba0f675e5a8c73a4fdd5502e932f6a9a9ec1061062550d2744c620b6fb5a7be49a0b6472d76bdac25f5a992407ace5a2d9d334c17bb8b04fa73e6bc2779ed62aa9040ac9d597a865fadc3ca82e3a364afcd780452edac6e2c59e228f990ca086b0ecc700432ec79f30de26e5b6b41d25f4caa6880cf6804c2fcef6fe6b53f559b918bc92f9154f9e2a3ddf9e2a31d18cc600472b69d2e791e76b6a93563112bfdb5cb34c93045a0c3b772a95b2997b9d5442066a51ab293926e5a8c33108192bd31f68d7deb756a0f815c9d95a7c49d9af23c43a044666dcbae19b73b1502e529d6cb9bda4fcca58440acbbce6a526468cef94120547cacdbeab5b82bd515660802756ba7a5555e9ccc3afc87198140baaeb5c5d449b77c8d163e378040dcbeadb527b5fb2cd91f90495ebf5b83197e4026b55deba9cd4967cd6184c08c3ea03daf1a73e59b2c7c15e6036ad5589bef6cb2660c5af8be84048f868d2b685820c78c3da0de5ed7b69cd9b366cbc2773921a9580e9aec7d8128143da033badc3cd3e55acda461e30a0ac5a48b91114b3233989107a4c97ceb731be34d5778409f78f8573bae2ead577740e7cb8fd9363756cc7f790533ec80d4955fb15265baedd501a93bc9693c5b524d7f74407e6c5beba52cf37e97850f91bd4805e68016f374cfe57564a7460e48b1c54f4def99d72d739230230ea8adbaced5ca595fabc9481229792f4670706a61061c503a97bf8ac97e49a533c48c37709af3bdda26c73bc9d830c30d88e539f5dfeb7e9dd6890633da805ae3ba9ac49d67dbbc852f0d2566b0013135b979698f3269adaf01b5d6c797e5626a268e8c94a40966a801bdbf596dd83eeef5721a50330cd9fab3b96953c9050d08931de6cd8e522a8319677873c9dcb54f377eca30c30c68a9fb4fbc838aefac5606c43e31ccc5da52cc4eb5f09101f1d9e6e6b44c9b26d5d28c31a06cabadef6a26737cb6f0295a20647d41a1780e66880135938cad1d358ead2d0ebecb5fe182196140ddde956a695933c38760408ab1757c99c55a7dafb4f01d8a4aea550ac026667c01317f86ddcb8bd8ad8f850f6d30c30b0859c2859c4e3ae70cab85af8d8c949054b20a1aabf8800a8d2a4224101222001ccce802f2e6ec4e3aad719bd63c16f820a10255006998c105c4f6566b6a29bef62110666c01fdfbc2e4aaed33b6a316363e98a105a44e6a4f85cccc273f14c00f6664011dbafeb352cb34b5265f39e113c00e6660011da68efbb36cb9da9c3cb9b3c0c564e401e962326271a331987105d4c749df18440b7c905071810950281f24a9b20260c10c2ba0a376b1fb1d27dd556fe10bf948208b421119090919599510fc12191191408ecb07e542a1504caa5854e410c1f1c18505244005aa00a552050d3c0f486fa150d60785b2160059cf289492af909878004c31a30abf98b8d4ac4db892b1f0957cdc3106665001a56e3ceb54327336fb277f42812920a5aa53b6c592bea6645a30430a088d276ea7da9ef8fcde0d664401a5b37992f253bb52c9c95a5454f121566c412347890d9641861950407bfd8f6df3f432ad2e8fa3245d2a7f02820f91931cc28c27a0d392596ab567edd430ed1a372a26339c80f8fb95b7e62b19915513503affd5701973b894d1194c409e9beb0dbb2fe669a917cc580252ca9cd554f3b4df97394309c8f9b05c7ebbcc9a634b02ba5bc999d237dcc9f92e1f261f5e380d1b575c3e4c3e2c50a950288c42714085ed3003098859da752bad61e7677504b49e73cf7963322d6130c30888d76f334f77e90c33a984209518cc624611902e32cf545d79f89c64e1eb5bc00c2220a558edbd616e4d0c4f49c889d7b85121c18c21a073ea8789871dc58c362c2a25338480da35ccb46a2d73ca2f8fe3f25750283b981104d41a3383ac6d9d76a6923736b2c021f2d18516a904d5b85111c10c20a0d6f74e97fbbfcf2a2421eb1c85b24c3e424842aad0e2ccf8016adbc7543b98ac18d7b2f065860f905e3337c65534a7e7000a65a451282798d103a46a25f43f755493d97880b03ddd2adef4e8cb7e0788cd7155bec9ac4ceb960ed05907936aabe2baf62a07883d7ddfaa499bbca58403949d6e99e7d3740394f9c6cf6147db24a3dc0648154ba79739364be95c0394fca4a414372e0d103b892c31c5b430d9cf00799fccfd6db7aed29201ca76d23495dd0759728d01f2e68939a359e4741c618090d5d9473fd7d0987f01fafbd667dca6c6999e0bd0614ccf4a8e694fb3d502f42cfb5e994a465195a9e88be0838b0b889c8c888c987ca0328305fce9159f62d9f97b48a190842c939eb102b4fcd76aca99e329f363e163a461e30a1a15cb85e4d917335480f2d46a5ab58eeeda9e9102945aaa3fbb7a0ebbf5943d988102c4d29d36c3cefab3ccff29509fe34969dae66d1d4d0fe66c5786ec7c4b34b4c8226461803b874729502e1b75d26183d8b76ae133b9bc890915c9201ea440af96adb4d24acd34e799f518054a2a29cda586e17b42765a7221a98087281ef3d8bde1cebb96140a85925a722109057a54e7b4a332f6c548032814f65f8c28e5100f502436f58499d69b854f453c3ec1e9b442b6b7cc7a370a02922a9675498a42614778786299f5a64ffa56df5a718451285a502839be182921a150d61146233c3a6178b7b7f568f23d0a2564a4a45128346c5c4123f74a2e241d89f0e0c43af7d5dade302dfb921393119055696c15c692b98f5462c33d36d18c8d2f13cb73f69e69629337aff67c189b19ce04fad25ce36bbb951b0b1f0dc62734423e2c26142f68283ea161f2e28109b30a53b6fd3d3e1f52010149ab2f271210b1422f81ee341e676c3e69ba5a9640dced996286f55bf2de653dc91788427946a1785402ad52d8fecacfb04a7a9440baec7bb41955ecf4d965a226232435f0eed4b851e1c2631268934aac4e7dd525811a22723f3bdcf4cd1c8f48a0b3aaed6a2d5655891d1248753a8e6add3dfb93faec23101a65a6c9936b2fb594856f2994e308d430134b75661db68689e0c3041b81529ed143c51673fa768c40dccbf51ad52b4cdd0a0424557172e0b10844dcee43be555da377eef83e55a9c3a9e11a45203c7cc656ea54950cb68541405215ef80924dc459b6e91197f7787e202122b1d5cdbc35edf574b7f0958c887c841ce23456aacdcb5727129336c4598ce710f528c5b4031e8548edd64a3935b2827ca40b21d89873da68fc3432eeb2595cdacdbeb962c9c207923e2e12a061230b1a0e3828f2914246d8368f4120b6dbc924ae9fce764e10c8fc1ae306b7dbf2c39a42a971a352028f40a05bcc74deb11b5cbf43922a221fa984215a4c4e48a8c821f261636fbd1739443e2e0c08749069af6e78fe6f1da32a169313122c0ebec9881fd6b851d180c71fd0b1c64b9da38d316f8df90125754dedf71ba6546ffb807c97af6b37f7f4e6c6830fa8a54e9def4b7d61b3f3d80332fdbede34beff94cb64c1430f28f513bf7f77aa5db3cee501296ee3e3544d2f7d9bc4030f488fba3ba7d7e39e94722b78dc01058e37a8040f0644d2482010850261302010088d9e8b2c01f312003010142293866332a1549984161f140004554e46543a2a202a16094603d24020100682a1501c034110024110c450184994185a77310c9394a647a96851495ccf92181dc5d0d730333e9951094d22d49f9ce7a77547670ab08ff3d8c7bcbbd983e1e10a78e446f194f2b432c31114cfaf12788e5af7cb1fdee1d94d3cd1c383e8e02945480b3312ed78cecd78a8e2f1aa6eab903fe40a053d8feca8d79e92430f5d3b5f29cb3287a5f7d7b90c5d86f59be3e6e63360ae9597e5c8cc4cbf9c05667079b90c99b75ab9382af75566c9489cde6aedb8cba11529cd02c24ed15b505828ed489098213455a5ae2cb5293ddfad33a9514fc74aff385db3921ac1c8a4cd6ab2bc6b088cb64d3d1b3d0a2d133515f23d4433a83a49c84ab1336209e0d79fe763666b3a92519e21696b76e02a9ffb369761263db396abaf62e8ef50fe656521ef8a8521957776f060165aa1026f54887e05a05f21d72cfc8ab03048decd70eead05deb2200d0b048d2e8c8d14ca5a69b6a00b0b75852e8c55235a71f0c2c2ee5808ad0be3d3316d7d3a03e860a82b0bafe685dd6486e86040b46861247612b1a2610bcdb0a2ff46c8b21733954def4024f2bffe6b4b4b381da9064e704a0ae72eb9fe732b03a03107cce7f3b5327784e38717466027f229f1b2ba987e2d0e1cb5b245a60b10c6c82d451defea56d0854fc044755b1333965d7172b835d481a140d3747a9ecb905d1657e67c77b310a140b540e156a7b1446b908ad0e1b439453db475687f41135ac28dcc84fc50756c1178c0b3759e71c653863c688dc7d65cf363fb4a4fb37ccaa88fc415e2e87dea829f01e29e2ea81b2f9cc5c8122b1580e6e7970f49a5467d7697c18dbd9f6ad37c6fa4c8e13b3a26896850f4cfc3f41141964af0dfd1aff470f5d704704b978aedb7eb546a59b406a3d4c5daef8acb7ea3eaa8813a01db5baa59473fba273186d08e58b03d43b556ef3d69872c24c63e20dc4ae6618c90d7908fe4c1049a4ffe774839c69c12c55f57b26fcc6cf65fffc0c23e5ae1b885fdc6c09545fc02cb0a44dd8c2ffc169acd010d5bc62cc88d4713cf7b99e1ede8a778795486e95dcce35f5051ab640f35f6747fc5b651925bd41344d098e50a1c42460b40bea4c22924a9ea7dc2692d4ac85ad1fa306b4f7d08236ffcad71537d521a949db79d0af5eed4a9bf0c8a35a1a97b58efcd33d66cecff9e616f314440926f62a8508f6e11b879539b8e4a1ec23406682e529c26551c542de35eed2daee9563dc53fb30b86f6003c53964792080368cb10d894c15d8588ab800ecff4a11356d6448f32c5390ab33c7f71e8763338642f0f5416cffba07e41ed35a5e118fbb3cffae44940440585f42ae7e4d750a0c15e14fd436bc6f4d28f088f907e8b93ff9d06d31fc0514738c266ebd2f749943218706006e8bab19984bcc2b52124580f7772c437cd83e5371522301677225f713ca317f54dd91914fc1adf02eb2a599247c10a2d8d61e40ef2229094e1fdf288cda516c5a7f90ff8c25132e4ee33d45cf1f5723b56dee92ce6cc8aeb7fafcc47dd20be2e4c45d7084af6a949a94cac9c60643ea9fa80decc929acda0c8197f76332bf9b5fa895045c84231dd5a0afc40a322b09d7abfc1749d9c7ea6bc195641e204d9516871dbbf6586a22effd4f36f295c399ad1db106d680ceb76f3f0eb262216b5de85a7d50854da50495e8daa16814c2e3029ad4bb268956bfc2a141cb9a9d6af716626fee51aaa48d5cc1e4c5324bae17f37cc0cb4598d5bb6d8ab2f2769e42632f4922cb0a939451d377bc3662d72494ae9c5e32bec30f64938c1932bdf553c66b25e876bd6e1433a34c2bbf53c7439ab160949f84a472c25dbe56978cf4d92f2976211ddb3a10e1a2f0f42f7531c6abdcdeb7b9d290b4351733830e231da5a4edf41060ee0fa214c28b927482264b474fdb1209f7df29df29e9b2a538b4e2d287db2994d48ddf780b8aaa6341368899e0e6800f1f44c0621e58502eff8c296883285d4d8fc14c7e0e752fd6387eb55f115ba934d1d50906b46eed6b45485680f2ebd8e32587663ae0ff35f2c4feb91e729f36e2f7b64600bcc77063ea565e928711bd6dd08708c3010ec4550da92a0c1ad46657297a50337ca11027e8a5c8f63b73f27312aca0e7a2b52e45c98254906e601e6aa26cd85a2e72a59d488467fa2d4904f6234945bf4b2f3ca655b641b62a2091e0efcde1d63edd0ed924a10335e3c8d6c8d528f103f4496d8bb149944d5099b3e6f520cd440fd5e424bddc14727bc76b5300914e26950cd09bad407687683b4a67146dc0d1cb64c9e0eea3694894766fe1c69a024b91b88c4a59cc53143eaa0104a53b1189454a6bbf712826614b9984c7abaec8a33894bf7770fd26a351eec18996d8708b3bd35f2f65c9b39f5e8798d6fa45f471a6b65489b414e218a8f68fe087ee4de2e9b865b001324aeab34575df3e65fd148153da5a8e00ca5cc626fe8ff4a359774352ea1238c0867eb2b9e0079a55926b906a2552fca3bafa3dfe6d80be13d9b5255ed00f9a71a010d9bde57e3a05f1dbca01932ef83e0d44e60272eda871e7b3e9cd2c20b9c3736a0760f6444f38d857fd6643692e67fda7465313c170e7109beec8a04e8a13b397f91558cf9963ce7521f5eaa4cf6d1603133b206bce685ecee742c9b06055071436d5eec3139c49bf54491009a37bc56330a74e79f0f736712405c4f905429700d1b00d0464c3fd6651ffdec2f42c928c59d2ba89a1a2226913851b1e77122d2701f3e57abf08f295860b6ab8bf023f974dfe9e1fc137a0e554fbe8fd1e961e89231d94258aefd60b7576e10f02e0ca840b6aa019e1fb251ff98eb80c9555a8ee1934a6a797c53391197ac1da3e32ea291c1360b5c43d948df55482f3bc923967e5a1dc143d9b978279e5c6cc2bda7b5538642c175a2a014f88d5a0210e6a6062b17505ae69c9fc8d66045767920d34a62e3e40413ac2a9fafcae7928b61491c808f80b60f5f1e86c27f228837150694801450a89dca2c9c0d54726d0545ab866aa14f3b197517095530ec7e4453463ea7cdb5d52da6d00d32fe0d4a39799e87cba31e9b799e7854e42571bd478b28e0c6c29b88c75e7f2340ea9a7a894f27842a0649d8cb5b1f8280ede27b4ff050c36d18d6423fcb5a206b3961d86518814ce03c9583b8ac691b27265581a6484d0718626469147c606a62ae2b8a5531f6ae347633d4e1257c89de9b0c7ed668a628f4b93fde55ff053e172dcdceacafd89d9a7e9a9653143dc9dd82f5ccc3dabc5597e4d6cd8c6e11ab078b825c576623314e576c302c4f2084f93e8726753d6a85b8b4075aff63f13a9018ab2d3923cb1dbe3cb52fa790dae8c546fb248290c875273c72661b694ea77a18d79ed89411d137e9112d7a0b54724e6e21310131a9b880b38358a0f8b3f63bfe924bf99a9e88befebbc7518515313de6e90ff84f0f7750937a30cada736db47adaa3d814007ede36300870a1c58b09694ac93d931f8415fc971930d880c935cc8284df5569d7bc94f0e8e891a81af112c43494180ec9084a942d0f925a626af76d7828a9f9e002dd4c334b19e4c4449a1c72cf1e4255d1972a71f08df75830b9249035807876115d6954305848b26da06dfc09e14e81d7d99305cda85e3da01673cbd7027d2d01a66f55e51fda1272787c2207e239c862f939a8f39ae0b6ec71879fa24deebcbc1cdd8ddeaf76deaff1603721d925e3b09258e2b7f19a64ffea5c0962cecf1b19df5805d517e1e00ad2a924752854f6332eb0dc95b640c3bdf758637ea891c2608919b149b8694d0ab175339a3bcff562804df8c345ebabd54c04167ea95a7fdd860531da48d6930970fc2bf9a6072931aa72373f823d04dbaf0cb04b271598679178b88e60795a87c5d2680b1777210fb532f7ab58f5a45f0741d6175a8726788351f045cf336a00cc1409122074b3daad770bb38a354963ba330221df057e48f10e1a21c71156eea9cbf5f9ca7224609b9105f25ddb9f5311409e2c4e6784c4b0c0c9321d989348cb9ed429f975a91ad088db1fed40c77a73ac249338dde3992ea1f024f02e0e944539c495c7a1a543d58d3580da4660b7e08d015d07d8d477286ec030ad15c7306e634d62ed93ef88f2d642ac6a1ee5020ce76f866a1ed25617b8a48b7330f8ceaa015eeb6ba38b7e4f0b6179ef2ce7eed924260410c28b52acf8e1ea6eaa489e1077029c2f495b5a4596951865656b570426b88354130e2795a0226df375005096cc117e3af5001aeeba585f2d6773492b100a3618f8a1ef352a38e762c59341880b6c3d7a885ae2340dd442efcae5e8435e0c74a2545609bd0fc063c7b5c5091b8193154238220a5350b8daa0bef44879f0550aa04d1a1a9c9c485c083a4fb6a7fcdadd250dc8e5ffd41f15297b37aa39cb7a5a30a635a58506f4dced1edab234a067deb3372b9b0d46bc00cad1ad01f51228624a5a1d8473b060bb3a1da274c33cdc1e803193053006c58e398e67842e34d71a0434368117e684f9f7bee977064c800f6aa4eba7802e878fd39b44648bfa52ab1a00074ad4878f1d115c6eb1abdf354943063f872ae70df60a3f1c6388cec973c47ffdcde039733b2320d6b5f6dc675c5ae811f0267c182c399a6321d7cf825bd8a00baa5dbe76c4c942482fb0eb10a66ded4194149416111d0be8062981aa0caafb77250f7586ca0822261b8f38685eb9feb702f6c1521d6ada81bfb17e762284645c7c477a72340e78ae49496dd5546532c7d3bbb4d9aeaa40f81948bc45549b0d967aed6051cbcaaed4a3d6ab3f28a786b16114b09b4585063800b68eafbbf2c5c25e4ce574e7c61c906e1a96a30d61d7e5f44dc2711fdc1c5b09f05c4799096a8646c0c22ff1e23100db53318082525bc243bcbe11005f8f23f0323bdbdaa7c9820754e830c8745e05b2ae947c36d4484793575799a328eec3aea0a419b85d24ad49a2b5b42d550f5c0367972c92b33a764734c9d24baa688e1e3df8f9cf444fca35eff129a42b149a35e5990ea8bcf2da8ce92f34f3c48fb3ae3c94080fb257e06bc039305117cc220f1fd9f44487262e37caa808c0c972e071772f3f0f41fbda0feee135b827fbbd83fb463e340c328bc5b4e3be84438ce55e6e9b86a436a9a5b0d136472b4f8e4d4386c2d40952368868cb43613669a838ca8501deb19163518e71586b28c053e76acd3bf238edfb918e14d8074aea9a3ee8dc6316978b2bf708567999ef881de67546f9bcf9fb48ce5ecaa41e92c08d16b014fb59f011e518014ba7b7299485fea6578847d71a2d7d2cd9894cdf3de252db891bea810b6eab36f18ef7b7a8aae3c827088c0372b82e2ef2e7cc0c3d407509c10485d11c6757d6d5f57b5df41450c981f352a5ce21b0bb46e5fa25e3b24405f86dfb353406a45e59849ec34daab31916def9a53e7d6a309131df14f6a74f2e35d4ba90241a1197d3f1f02f6b80bd420a9670490aa08fc4024b2e322cdd19938624d076e9a587bf41c1e648385b0b5f5569a887663e7a15cb1dacaea011768135191d182a078c6603c434fc0110ed6222f5ca752b94ea058d3aa4480c6cb3b1b7053c3187130291300191e10e26d648977133c062f22428385ada4a0e7160b4b7ed2b24a8343e7cb8cce61a753c4bac38c4bd2491327fb0ce55a2665297a849e911b4283d5a87aa45ea13e94358eae78c0c83aca1aa2296990a28ba5a200631a77f0db98ced343438e4a80d9a38c035e9af2c73fa7001f65bb84fb70b5df13a7b8607323dd0dcf951a23e178906b850ce6ef65d899fdbf4f85313e00b961b46b18189088a4f200d5d985c2ed007e864818b0a6f4a9e455055962dc0a44519b726de1c1b22a33c85f4d8c9e8c28f35e5f513fb2630b39649ed979ef1cbe6b48e931b5a545dbc179b4560151ef6b51e803fd60188d06ab70c5cae80554706287217d393992aaa9e7e77ca2e486dd8a654614480a886c5d53e37711f41e195669700c72a6751c929236e78c4f41b2418b2581bc37748047a443d40c1d5fb902003618c1db2d34ecfc0a013d959a292d5a2c21875cb30b741a9043ee435cfd9dab9ac42450aadad626b8ce3648f110f7dfaa6a03b35e69e8d3d71758f87c05a5cdfe0ed8c5f0c40b0f906075e4426f61b7610fc8db271a7c47a19ea29aac53c7990cc87a237d194e9559543da00335521ef6b8d9d2dce7d5f765c8a5fd47705020c0d2d5a83201f8d184b0ee2489c14ffa550c115b7fbc9cd0b847630069b938f94620ca2bafe4f1e753e26b0cf044b5a4d7315db92afcb7978c44b11d4086ac36020ec7829880d2f2a27af0949d1d78c29b44fe1d740a86950e016ab19958aaf0922ea1107c744df45da123f079fb8201daa2c3a08d85864822a074df1ee4bf6b72165c6ae2f0c4d3f9375e69b73da1752d92714858de8aeb63fac0dbbe9e760ffee3ebef15786ed4ff72507296c7f31ba45c0f789008143236ea5d01273a0b17745ad45ac9ee8cb99a49003af6c17082fa30ae6511ed74f7e803f874b210fbf60b1d332a10a80a093f2823ca5c2254836fb7b2631fb63c75a78e44480fb5ad20821a310e0344e07955c7f96a418bb7dcd89f2ee935127874aa0c61e209b475dded0fff6e1f528420b4330eda3900495f3ec148a50fa3e429fd4f38e4949338bd47aee56e1f0191903c8e5f3b487540d71bc1d52908950aaef7ed1823f02d7e6f512d7b4c63256cb3b47c4bb51686af7e80c1a3da244e6b443ec38c7ef059055cb85ecb5685d588383c0ce1829bba86164512c5c1f8dd48ce443ae871bd4b2730bc4c288ee789b5e8a1738a49269bf020b0a6b9f1c6aa24c83c4b43cda557bb6b938a2463a030cd1572978049a23779c5c8dce111ff761a75417c89794c41a17253619f80e3d0797a4b244185a72b1071ee418cc5024d0a8eaf451743accf0b7a1ec8f432321748c060124b334b51e60ad174e9c9c2d2b3cbb333eaa43869ca4cb027ee32722d1f483265bb1b68037a99a3d1ec17c5bb1e92acb0e1d3fc799a99a05ac9c5dc10b0b3e7eb96966c5c066fcccc180f880dcd0c6c194ba02f7179d3c164d2a9f17298db8947eb24b7faa8e267250081448a87996c52120729596d1c54bafad878ac3062d048773ef35f063b284de6d8201eda8f80a9bd4fc095fdfc08f4e1ccba271085a03f099a777d851a1d1015078090725ae0050a9b88eebca37e3298c8b7d344f88ffa4761aa9200468df2202f921a5e12bbf60642d9f7f4197698f16100debd0fb0c991ebd826e7cc197e6488d409404816395cc94aa82619a319a907092cf2a6e5a1d92da4ef276bb61650b2c99f2b52c4730ae4310b48fc4784187a08f71ca69f7685a94417976ab1082c98cb388668335b59b5a60b3f66e41692a86b89a384a2d941ecd3b33c05505e09955a9a764a43c3d02e646988195365615cef706bfc2b526382c8ee78a0e641e5b9d2615321a2a4fd9cd0dc30b94016885b00343fc0efd73870aaa4493a81babd6a4b4fe8ff22bbe594a0e6206c12760da998c055232a00419b3404ac20b48aa31edd542e99e0cdabdd08e560697b1f2947b13bb87edaae0cb1346ceaf9abf090baaa62fc94dc4e203ac6313cb4f0f6129f121c91112ea7bfbbcc85945c72ba0d95844a02513a979477490ce026336229cff98886b463ea35d582109e139d61d4e4b02c2850e33135ae5bbf1cfe809f4a8620bc99a0e2f39ea2d8f2aa85b96d3acdafa03f44530b15348ad9b386c07a12f041c02c0dd846b923be48483996677fe55aef87bd25808fce8420d0e953473df11422217f1be549e5a6d08ac616042ef8c4af448edbae179f0c8d3efb4d2f00fd60b3f3c0e65bb015c12c175370be32e99e20921d390464680726d224a9811b1ad0064af850d5d360c94a7231043b3833e5ca1cb83c64d5c4d1cba56ef2305f7d4b9b070a0cc2b441e359fce8e60518547d2135a7ecaa528b65cd027603f5b028ec277da5cf7ba58ae887de54333e52284e6cc367f99c1f7db1fa3371d8c203c0e419087ce5be81e2758a93f2cf010c1adf2d1b97d99b974a92b70902464611bab55d8d65d5d6c84dd24560b38da68be3f1420ac60591bc03a3230286859f449eafe43c67ac1c9ce2081aed4cdd4cd7a53030747e6eaac11bdef568d05937b5017a0b955e636e05af49e3b5957929ac2b8024f034b9b62aabe08560508d38944cca7706b3b997c58739bcb2b065c39d71807de4fea20bca720527172bfb5cadb02f9e898c13e3ce732c82e0b1e0160720bf12e93db31299a91c47108938cdfa4710991c18f12239952ac9c87660f3eead50892cb5341479f199b4ec937d04baedf0f216412200180dacd5a942fe1809a1132be0e2cae23a75e5611819cb1ce1507b0a470412df9f22864662f9642038b489133a92e2d9a0b083a356c14363559843eddde3d7d0479c3e5a0d1502a255c689935f7bc2bdd52258ee7443dd63e23a4452613b8c2f4193f681024531e28bd130391a48417aeed588995c2e531f9c71a96981f06716dca43dde35e0000c007cebb6795556c0c2739fa9a372146a51a6ba309d9f40206b9de68d0bb3665bb1306bb6eff34da74607d68991e03206c59a91570658e2dc8aecb6bb58ecc7318918c2e055764b047c72f330efe3e5284bb575502399b0d50bff00d1e0f74282fad1309054d45e2a7f254a23ef63d29720c046b47a8139fdd0226841883a88604a1ec8fe78821e1c7c4ca612db8554a2c8d7dcba8a38ee33d5d06841ed20e0843c653d4e1bb0a224bf04d37149b58ea007f438b5cfa6051ff4cb71f528184734cf205a52be9c24a843f43dd408a634bfa1d88e1fe21943fa8fae7882640874ddac53979bbb71f9ef6a8e50b54e616069b43b06310b0f929c126f2f3f48af8c9b7551c3f26023c0c0ea1e50ec559ca9b8cb8c30ffcd4c97797e2496ae4f6022250f727ba87851b208a24fccba061283f493cff974dfa8033160aa8c17019cb23451602f26259797d401a2b1cb96a4fc3a429b1d674744ee21473f046a6bfb99540bfb2f19fd8778735f39508dbb9c47d7eab316c0467d4cad25a4de7c52a2ee2d295ac4560da3459c7687631c6672cf533718f6760095dad4c8840fac23a8fb493267fe7cf2f51cc7c33f2787fbe3833a17f215e262f75c8e423842d0729c57e9c6157561ded8a43ad2ce7ed411202826fee121f7c036030ab8970bc8d2504edbb66c7026778829535873a73dfc73231e3451ef27f1da80fc578455262de91748cf80ffeae7c6885604c903ed6f16af1d0aa9b343362e12b2507bd1316a83e6483c9b08da6eeaaf80f28b56f1015af483518a8ce31d2ddfcdafb62257d04c02f004bd3401e3cd9ea129f7c9a6df6aa0c641a27c89a88f257e42a2bd52487421664c1bca01e059f7e8692f066d227d8e0759ea837e404fbb200a03d3807133c787af45732bd7eca71014415ec0e02778ce7fad6a7afc9186d360095441d5de52acc4989437a2351e12320f74262fe2b8305d0ae72c8b520d1f6a789fa5e653f1d4142e1b56ea166ff0425519975de2264e38ae21dc0630bdd33614d36e43e0ea08dcabf70a68ed307f88c38b4267d09c1c3617e8b6dc8cb364d294a3c97336035882372c6168fdd52687f5a09f5e2a753c6022a5a2a314d8493d54e81f734ee5c0eb7b0831a23137502ea79d09c7ef9e406c0c09c9ac52d554854ec049390a9c67f56f90b215be5f4d2f655597cc909254da2e4c41cc747a54922c617134aa6bab2eecb4472e6220f746e36a326340e736ada457c088f443545281f12bb5046a6e1e8b2544329abe21b817e38d02cbdc47e3f4a7adc644194b4c3e614063c73a78252083564ad9cef49fc8b224ef844274ea2cfef94604083f396e2d088b96b5c9ba16125bb2aed5700853e709e5d5e62cd24dadf308d6bcb890917a8464fd5db0deba8ca65222601e3625ea9c48fa8e036e1d3f4a509d2903813e094893c8732e148dbc5cf76003ee7ad66789851a7ad4ee418bf4034b04e84233cb405b8f1014de1d58f0081533a0708920df43ba8a54391e273c05c836387144cb351779a4fe85aafdf5e3b208048da3a9c61d33a0f1f46a31a525ae8469434631dbd260847d790d83881188e9ffb0eb7ebef60b80d313a85e2a1e0eb1facd0142d78b9609424adeac332fc07aa4ba2adc356d30893664d9c22f7a808103c4f95a35df56226beb8dd00e8c6844250db56a7548451b6bc31151d586526539690d516413f1f660b9c06d585e4521df0489e08af916277c9f5946df22c0f74b3151a57c41d583461fa3cb5d7c7d4d621b23113cd01d34d141458248935ada3a67dc64b219836506d7c5b036e5b72d9a160236f318431741a2c0088943d62d03114f2b1a132d914e4b529c4abb430e44273d1e8ef2cb1a8bc4b2181b80838169d160165fa25f32d56d00914c7b5997dadd7bbeb30d423f02d13ea53ccd801ae6647612763249eae587d06fa2e0a8cbc52e7693c7e9370866993f50e79c86b77d30fdf604ab71d1f5360ab4c33c67a3b48048724185ad2c4be3865780bc1f44f4a9ae0a324003650f05f2bbd0dc71d130a43dc7531a1ca7f2a15a8dbac7a1b88518a07b2c30c8ca7a9713ed172802a9959e888a62ef3713e27454a7125a7ad5559aa8414deb9494161ed10e4b0cc7d8b2a7e2d85ee8f180649097ef201022d94fb566351580ac9dfcf78402e13d7d7bae1a57e1a18603d9a27f41c7cc2cd7afb1d12d502faea5c8720c6552a7dc689ce016546ffb3b87bf236900268d87b65f40cb1954b59baeefc8bcb11502b0a87505b7c0bc8d2246f281b451a9e1280884db80819f474ca79679fadb4a4c43553f168efa2542f9b6fe15eede4a0e9448cc5d484b1eae61daaac68e19e7d842ad4c43931f95c209609c3e22428c69bf5be3ecfde8225db375c8f883db53eeee58856f16c5734d9aea8ce33d278b7be11763cdd21b5b87d9c15fdeae388b58c0053b4ccc60cad286c81e8717ef70a9a12408965a3f231962b839fd1b4ea3aa479480dba2c889109cffa15088a0cac7556416a476ebfa7b365252eaee0548eb6f57146d5dbb6504bcfe2871c250f584ac428974835610910348be42994d480c8a488f47149ac06617d082577bc11223e0b894e47c5e4bbf72afde224cdaefa739c80785fcf038d553e16d62b5b03960599080e4923f3d831b02341b16f288671a6515704ded118130fabbc90bae9b5306b02b5c9d298d6eebbc2b6006b83a69bbb2859b38a66c01af0078824671d73bca044b899615a5b7458ac0987fe705669d0b7a0c556bf444be2b5977dec5b2dbcc789ea8b4cc2d2a4cee01e60c05600a86ae9b69da2f22c35d801ce24d25f51fa00a33da24287adb6fd4490c464a4c226eed28cf100cfeb819103a8836d5544850b95fd92326cc48f858be90a7747da202cfb121db9e8b0bb4984f0dc8822b210d3d59645b7ab9119cc73ce45b1d56984311f6bb3068fe02579e42068d3983ff0e8bd1223abcdf11d374c0504349da085b8839180f217bcc40c2e355a92afc585265fd9c8068641ead5f62f403909f6af63ef5cee45aa76126a30f8e761085df9ae4e0bfcc32b4504ddff1e0b7c6419c5f9a34dcbd9288e0d7d7a33e35a346e1a98dadd288b532fd4baeb66bd790742809c417f34a5b0ea5ade405204ea426e9b1b8eb3663fea202181962a2cb5a31c2ddf3bbe3ffa823be1654b58181634cc44c5dbb056bc12500469282de868519f8d3092468952b22fcc7792838b7f6324a947d6505b6384566b422629a5a0bbef7f1d4b5b9fde7a15daf7d9e1642bbdd8b71444dc5d0b58701123742fbe2a15691ba0aebcf6efd766a473800d1c91ffe4e50913e76ee7f0921b604896e4b8613c26a7d448fff87982fabd82ed445e6120e4a26d334972256a3cc8a85775b35bb5c92be303c8e708d5da05e8d4f0b7a6e84c7c7461cb9d39973d41f86e51927533a5230ce7e5a63d86d6740e145924b5bc4395e5d2f98eca729d074917d6d483dea5e54398a7363c5f7465a60e7516a6a22f5b421d8af463ab08d648add732bbea9a232bd8efc99cae00ad852bb139f33c151c8c1e4c65aa1a07f4cdc2424215892787fe07e80529950d39de8a009d8101fcc9726a0b2c1f2f41c2c810f04c51726e30610ed9db8c333302e7ca46289e338dac03446853ba366202557471f154946deae7a11d46d0014115d804852cea002c222a99f6d1aca98be88513e3d16ece065f336626b1fea771fddec17322e1b891713966698433df20779950541c4a536b5342f98623555a1dbe87f73a932388a85603907951d611b143a1c4d2f5c272f14a5d71369893aa8536092534e6750ff7cf65604087806a59364ba3ac67e5e53973c0c5fe469d2ec4c44db9af42c177c0cd0b95d13316b9cbde817f6e7791417caf551f06912e175263917b95570b2034511a84aaf09c5837280cc28b9fbb4c6619c7614675d4b61187ed9e60060c495e0ca7d84f249d1a314b86dc6f910038db5c9e87866312ee097744cd50668d1543e57792d65ada34d88239c498f40ced636f78b170d6f7c3d0df4117cf7b5b1d21c713406ba38624acd1e7a9a620d95269255250a6536cae2d287a5ac0356f48155c9441820a523084c0645da99d2451c2ea910122373d5b45f09164e7b8288c24218a19f8c8631760b8f09753baafe527d971d9a445d4b230bcc5185d67f198d953b2a31d7b90f3d091b185ac8d1e28b061a09606581cbf351ff81070812c2155b9841632e81540359c7ac5ea1e5787ff56639014abea01f01243550ea6526e335db79f0d67605aa42cf8627be0686c8fd21e0584f91a3280ad87c7f9eebf8d4e19dd7ed520d2b6f16a6742ad454b702ab4592408cb3a7964efe8208715939a947333eac7e629531fe5eac622c4fc40009324f6eaa6f5ca0101b45f85dc36cedfcedf696841a9471f576b8ee16a5981b5ea08104e7f4d681ea4b37a42d3deb5c1ebdaf2103111db370a771d1c6216bcdbf9e7e3f2ec6199f79483ac71f0101cd5672a9448968fb4001aca0b0f90af21e0e8e172991e0f04b71f2d724047b586dee8807b0f2852666c878f845100363fd785516cd47a3137da0a90465e4079cc347fad13a627156f0d830659ad30fdcb6ef6c08716bc7d1bf32436be127dd9e9f0f539834b9eb5c7543017675878df38f2785eb63b1f8699e18ee0f10e97c18ea0b508858c85f1c03290fbe969019e58e7e8dae97b95df0511af032406b462896206508863f6ed03f90f82003f9f2b43029f0ac06774c8e8b2aa6fc75026d8825b02a084912f58a8a57f485d2f3d1f7981a91779ee6595e610c4353a27612929810490f0f6b98902b856eb4d7d74266f154dfd9d75371c285720b203624ca017ffcfe7f4f6fdf590a602a77a775b26297fad281b3e92e57e0cbdc6c260bf886fcde4ef9fac20cf904b4d3d96cd277a0de92e896a63b9a32102f0d05b9410cb4b0695802a400ed980142605a360b1e067e8e0bf4b9cb51c87838387c7ec81dbf2f35db80c1a76b9984518159a17f5e6ecbf477127c7ee62aa140971ca812f6a2fe9f34a2ec9a9259fa008dd0ad5987e44ad4c9a98118454da9962d1853074a5b52f2edca7e23706a4f41369ad50aadd8202e3c5eec6d1d2cfe9b1abdf684767391d47e0b1859f16a8e21cabe9b2d74ee63841b4309a177b8792f1dc1872f6b29bd2ed901cf6b8a8206be26aea5dab6241dd9547540514335383d1a31df2eb30c549a200f29cb2459d8de76444f09de5f5bc8249b2637233525b86067902bf67200c60f0f331730584dc046ff1c844df633da67e1232ec391e354e94997edac7bed0abe9ee80e1e067cf3548dfecbc7fa883aa4a12c1a8aef9ea67d8452bf2c20d182b6bc96c484f7f16fa34d55495aaf188ae9fb1e1afc54ecc5ff8298528893c8c7b6c4f7746ff4ebffcd2a815f806757d1426f29d434b53f4426e0d155a579b110170ba44fd5f443c6d9bbad1d2fec346fccfed38659c3b585844762a14cb42c333055a88ae0f983597a32d5f842df21798a9f9070e3f0c38179e135dc30c7c08a0e6b0a994a02db2d811beaeec1c430de71e527df80712e94d4d33e9d45d9c51591a68d2d33ce81d7df62f58173a04f72977d15ad40c8f912df3ad5322678f2aa4824543048d95b6df20b6fb1cd67659eba4d381cfcb9ca196fe8b299d225f936b878454bc4d0d0ea81bf6341c6aac0c50cbc2a4a6ffdd13561c16a9913102e13b6635007fc39c6534235fbe1f8465526c2798f601cc98021e3906340f39706e530e30fcf0c30f3ffcf036a068b86ff18b9b47b9caaf3be0b4644a3be5618f7b353c452b3353eedcf170a15941c9da40c97f601890b21be10ee20efc0ecd85a63cd961b2d20dcbcca534992ef4896d58627d4cc821a58828d9b024d94af58ebfe15cc31ef247bd5aa35239356c1b2c3e7794e3851c98862da559ee071d7c7592510f4dfd0cfbe7ad77a89ca3c3ccb0fd45951c471abfab322c161d6a77e63c3f1d19f64e1b1a3ea879f8b0316c11234ee234879c8b6195d890336dc85d9a30ec21bc720400c31aaf4322ef57f85c39027c61f3d4207f93be29558e005e6842dea81d7a942e2c721946a73a45fc5cd8d3e283468c1dc5a6b6b0c4fc38a96fcd5eaeb4b0847c18de15429c565958473ece3be1b22a5258583a9ecfbd21c6aebcc292a2450da2761273c40a7b5e8e4274489e038f5461b194635cd890c72b4285255dd80e430811912253d87cefa2fe875b8ba193c21a7e1a56e384288fee8dad723aa698c8d939e8a2b0c96d7559fa90d2739c1b7be90655f5a876de4361cfd0a4691dd647ec9fb0a9c79739d4de1c87bd139698aa192299c6dcb7b16647df217791a3d39bb0f76a6aa89abd3c3a13f61c3d638ee354963b6763b1941b53876b9724bec61e7ee33647daa4752f61ada0923e458c5d55abb16f741431a69a1e79d258257f58297329a87894b06e2815dd1ebbde0e1acb47f11f52344d879a246c29d99fe3d0523333676c22be935373d27a1833b6bbff8b15b30a1946c212f2c8668e36560773199be66866f462863093b17ce8bb299e3c5f588fb0747857d3e1c54f8a8eb1a885a821c922e64b8db0dd47c8a90e2dc2f2c1558a08d11b7b8ab1a704b18db0f2299e445826565f4af1a2849643d83a87a973aa10f63095e8dd65ca5f65186bb29ec971fef02394606c96be36659a108dc1206ce3395ca74d1a1b4620ec295f07dd398a9757fcc1e2e99971fb17abac87a839cac60ef6c19aa7d3fc731c3407f6608d16b74f3f8e074b85c46f662695eb76b09d44a9ca1ca783b53264ace2d6d4cfc19e1f4a3ce483b11c07ebd8c6bc766923471b016eb0a4091267333146d208e0c5163e94e738fa748e19016cb0c4cbc80dba1e97c50850832d3dcee13384109b180168b07fa4e17fa242a5be84622ffd7834a479bc3105148bc848e5acf81532e513fb77a6cee1419ec9f1843191d389d56bf773ee30c7a3e1c41a21e4e6abed2d79139b95f87418b93aac8925f48554d29e4f5d26368938253d1e516062cf71ea3851346490caa2b8c41ef575e868258fdfc4a2b0c49e3c04bd0ec783a8128ba2125bd28c8c1fe6d58e83581494d8d23b257fec398f278b6212fbe9c5bd119b703559149258e7e394c662f0cd9dc3a288c41e07e1b9927c927f87450109432e58aebb1cf688356786cc0e96d3d68ed8731c65e4e8c37c93f9466cb9030b0f97d362f819b126b53c39ec60fb21bf8825622b3cc2da67ee8ad8aba2d43cc80f53e98958edf7bac318f32771446cd521889dc57ec7f721f6a0a39aeb0c1fed6c43acb1f5a363b7c9d2a7109b544f5ed1d81b928710ab4727995a396dc8ce2056f53087e63887916941ac39fe7ee6a8cc033b108b44099dfe682bd20c88d53bc5b908dd9132fc87357887f2fe380e7318f6c3621697ddb1e2b9f761eb2e8bf4c13c3b8cf261096339f049ea1ef65816693cc7c9e39cea61cb37a169397dbc4de6610f336d66e6483cac1dd44c485a320dc93baceba1e95f5cc89ad20e6bcf58250b8d31f87558827d4d0a1e5139a7c31a3b659d239f1e9dc31a73d28efc279506e5b069f86d0e9ad7a5611c96201fa97ef095a442382c22a1f2f405dfb0e5888db43b296e736e58bce3446a35697eacb461a9dfee20e7181bf68fe38dcfee2076fc1ad65091cdb496ececa2863d8e2a353fccc17e270d5b8c5c77fc110f56346cf6a75ec1f3c3556758c2e5d935ef48712a33ecdfe771cef4aec79461f190f283e4af7c221956fd3079d01c223e6e0c7b0adbe828e4bd1442c4b044070f7e6a7d161386e5fbece39ce5252960d8d32349aecb3969455fd8d29a6c4e9a32b4f7c29273ce9ee4d1cc877761c9992e45ec47bd9aa37061fb4c2ba621a742b885457ed3fd57bea2d0c21ec4dc133bc6ca29ed154516963433b59152b2735e516061af1a8b0aff15f6a80393d41bf29a6e856de2050dbafda1d12aac319e4f8f799c675261d108b21f545ed4e0141699f8f02c37ecbf23853df2dc84caebecfa8d75ebb6f3f7567a4e1496388f1f66886baabab1df7f5c0816d379a481c27ef13b58b03cbfff096b2a4d3d266127ac1e5e8a6821dac6627b6bd2916d9a599bb0598e2a9dc44c58f34e79a7a09903958db582c590245a88fbd6d823438c54c9e3286aba8425874b9ebfab1f2daac6a2b6298f6a47b2114d6349c9398f21927e4895b074504b9d2176903f148dd57292af7c98c2c533094b140931f9edf8d23c638bb8355671828c9966ac316b1aca6254ba1209ebe796a975902afc656c31c2e72887d755fd91b17576fcd01cc79df43bc21e7a27938f3957ceb931f60a992ec8faa4b8ce084b9f4657ea282be98ab0e5896b9f95729b9a18cbe418c73423af6e46842575e79fe69cd97519c21e7d7e6ba24508cb4d5afcce6155fa2861ecbb49d27c5c1162a7c05824a58cde3b321f5705618d3793a72f5afab42a0a202c1f2ec756a88fd45545f1833d88d10b715ede7155517cb176dc8fae364d7c5615850fb6741efa71e44287aaa2e8c16abf1aed3b884e4755143cd8f2a69cf3598e5c472a8a1daca29e29f476fe8f422a0a1dec59a77197628a9e4315450ef6b8793e2d7790cf4315050ef6405437e2fedaa75451dc60d91c275a5c75b4f9515178b1f4c635a938ff8a1e15850d1615cf241e4bce831c15450d56fb38b61da51a3f3e0a1aac711b7338b91a237b28568b52fdd7a14f880e8a357f1ce514fa34c6ce3fb17aeed02bc49a389df6c462b55539e5a4a8b23bb17df9e7c02acdbaa339b1870d413da8a451bcb389e544c2c87434b17c102f9356f8a4b7c9c4be17f37c2d27980713fb87e0f9b2a2058de14b2c9bb62b64dca416b32536f9e89ab4c9e3e7b8127b92908912f103af3025964e51d3871024d78427b1c729fdcee7aa665a25b18854c8937e46d3a991d82cd384f9ba60d154482cf995d5a7e11b2b7dc4361d2dcf4acc1b3ad4118b7d0815294edcec1bb106892165f7d1a60f23f61cc6cb397872117b902ae59e4e91dd49456c95b6b2567462743211fb7410e9941d42c6898855ebac839caea897875863d84aa57943ec71d545c87cd018176299d23cb7a33135898458ec92d5859f91ce19c4fe7711254dc7a17a82d8d2840a11aa412f12886d3dcec5aafad0a603c49a333abc4354c9e17fd8a31cc71c192e9acf7e58e5230fc37fdf87cd3aea9031323e6c2126561e7ef439be8725e47d4c9b958f6c3d6cd53ff1e36f25f1e4614fc9b0da89b362297858cea29dfe87a21b52eeb0dd5e4e9755b1c376f141a89893ccca3aec31ed7c4a393ee58f0e6b082339799c9a83ff3137f1b91cf63854c8779ac461490f62c58c9742fe10382c7191726c521ccb216f584cc6c314ed6b37ece71dac3e4c275143481b96cea815e747c4030961c33ae92149ce246211216b58272b4a3a8c44d888a8618f9c93431d4fa21591342cba1d454fc67d0e3f081a968e523cb4e037311fe40c5bd4fc89d5a9b9c20731c3de61da91f41da40c4b8895b41e1fcb2b0721c3b6412bd879c7618c3f86c573d43a8e2ec52e2f8625578e901fc7a5593d0c4bca48f9df97e39f83610df1eef4f0e829e45f58ad73fdfcc85cceed85253af238f238bac2dc5d58e3a2c71926dfdfd55c582e3bb80e399bcc6f612f09ddd73f2515a3854dcb23e51cd8c7299f2cecf13f79e6305ed0f16061f54053ccc13679c771aeb0dcea494af93bf0dd0a7b881d32f89a45d44d15f638a4b4ced321f1192aacf621c6c7212d5ec54c610f6b1da4b399a4b07485f5582e49b399de582b4c34dfca3fdd618ac2da6b2961a11b5baad2b3d3f294730c857d672744cb73a61a3f61f1d0a72677c5f0bf13f6d8915e90bcaec8d136d6b08e3fea4af7e4b409db864b693f7b34c44c58d43bbc9c9cab4c4b36d68f50791bcdc389e51a5bec308ea61c2e5c6709eb7dd037e9ce524735b689241bbfc2728e98c65e21c4ecdc395756a884353d88e05bf1e5f1a1b1d8767c21d37cc8c925618f72e25cccbda9f33336ad1c05cff34a1ec78c25e70b96c38ed64a46c29af7f352741cc749cb58736ea88770e5718e8c352223a698cad1b4236c911d53a40aa59d32c6f6b192c7788e965246583627c6f1cd6316b1222cd361c6a4731c2962622c691335a6143fd54f84ad728eb4643e3de787b0865c88d84d958829425892d57559fe64f651c25842529a0b21b4e31830d6940bf6e1e6467e15842d729c6b3b7370651510b668b1a136d579a0921f6c1ea6e9489243440af96211d5eecbeeb8038f0fd6ca309f52e6489ba907cb670741e5fc2b57e2c132df71d71f7c87f40ed610b631a2d5ae7974b0f9e514ad228538d11cecd1f5e494b2426879100e9649b19a7754256507dd60cd410e36a5eec83cfa5e2cdba1b6333be99e6f8335a7c690395e5c8919400d16cd814cc41ac9540e80068b8721f9479f23c99450acfe39050dcbff51392816a9e0211de29f58ea6e420e624eaebb3db1274df51cd79d58464577fb2226af3427f6a87c3e218c07217e36f175dc2177601e4dacb1d2bb73d8b1129d4c6c11ca23530f36436a30b1664e934727b3bcbfc4f2d1e6fd7eca8d165b62b1fd1c6f1aadb40957628ffce3f8816e76d494d8333547efe0eb53388925f6c48ab87339aea824968ffe4cbe8275586924f6f4a9434a4e42629f301369ea71b4303e62fdf029c71b44476c3188ae79689547612336cfd9b5b9e561e68c58f3a5ed8e1f739f5ec4e2691a676a72bf56c49ecce3b4c946d5832f114b87703182a5cf61ee10b19f47e81de98c1abb43ecf5f571bc2b1a243b43ac3e21e986b51c9a688558352569778ce5a1c508b17ec8ea7025dd56c806b18524925292949ffc22883dc4073984cef1b32b8158fa227e1c2564df5400b15c9aca617714a275ea0f6bd4938cd5bd8b98f2c3a21b67c73e88a94ed287256a0e22c409662144f8b07ecca9fedbcecdd01e96e808613d6c73c8901ed6f328c2fc9c87b5720eb531e25aea080f7bc41c4a0ebff9ebdf611d0fd22768308f673bacab66ea1dd7ea5fc721803aacb2671faf2e3aac6b79f1911eeea5d4bb50411644855200803b08600e5b8551af90399eb4b997c31e8d7fe7204692ca741c56931052d9fc4d879dc3618da8398892e38fff43cc1bf6a02a74a78fe77a73dcb06cfe1ab5f28faebc366c677195952f04550f65c3a231df7f87b2cf3a91033d051df630071d47416207f5b99e620e4bc547413a8e427ef47a0a392c7af37d39f759c6aea788c3aa93e56377317fd8f5147058a265fa28c6f2e9b0f5146f58fe8246b3f4e39db49ec20deb8590538eb6724a87f5146db053d2902fe36cd8c3e4cf7721dd4abd86d5e33caff5a89db11af65b091d2d2c9d863d0e5ef1397d35474aa3612babb8d971b8cfb0a47c7ebee2d7b1a936c3b2db29d27d9cdb4c7519b6f00af539f0ca3aabc9b0c749d63eeaf3929cf418f6cc916d0e7749434c5a0c5bc6e9f83f49f8db488761cbc998d62f59c74f0d86edf263caa1544afaa3bfb0fd84c47c193f30f5682f2c1b1a29bb434e8247776119590dbf92527fc8d15c58afa31c37317dd971f416b6af1cc3ff84f3c871b416564b9bc3fe8cbb22761696fdf0b4ea4c73983f58d863b854ebf228ece65c61f91fab94da310f1e2bec81771cc4343955d8427776a3f465871c2a6c335b3a9f79fce729ac7b917218c143feb014969463269fdc695f9937f6bdb4bb4173c949260a4ba7cb1f925388c761dcd8c3fe0ec5724cb26986c2dabfba51d3f77d187ec226df1d62ef74cc1d3b61db08ad9a0b3f5bdbd873889c229afb2ad984f5c62e3f7f14d98c097ba41b512bf347f9c2c6b2f31df2acd232a26becc1f375bc3e9f3e882e614f1d34a589548d3dcaf30fac7314a349630d53f719928524ab12161d8f72545b9e29d0d8737cdaf1747da42bcf1449d82379efa6766908e599e28c652b4e4ebe292ef578a6306331cf514cba711b493c532061ab4b17257347330fcf1465ec312c6aca8cebb8ef4c41c61e5a0e47246a949fef4c7184c54e3affa2c398cf3b538cb17ab0d59e0e1515de99c2086ba590db418799a275678a22ec21a15b931663290bbe953ee9e59808ab7faa0be2d910969472f1830861590fd4e3bdf9e49385b16a877421a74aa136185b8ed2492da504618f1ca86c7c0a08ebc789f193311ff23fd853f7ca3e24fdc6c9177b7caca8dc101f2c16ba17a39c78f2f460cbd149779c211e2c216f59aeca9829d2d9c126b771af22a483ed2ba9c9dee70a730ed62497238fab7e431007db9c498731f329ac1b6c318af6a4fc61dc741c2f963f098ddc31fee33658729e4df74153d460f5d8f199c3f5673c050db6548f6e532bc6180dc592329fb3a398e61f2836eb48a246ac186dfb4fac39188f751bea567b4f2c1f058fe57176878fefc49a51aca3eb784eace713d1d3497910f74d2caad569663a4672d7c49a319cede48969b16762d13b0f6a4ec7c43662613b770ea43abfc49e638e8cb81fea586e896d3bef63a588e0215e892d26f314ede2678e3725f6304efc4ea47d94f524360f4df5f1d5747db424f6ec9cda5ac99c8f1389c53e4712cea34ecf06125b865c8e259b47ec27363d9a395a871947ecdff71dc7c9e63e8a69c4127d7e9d1b1fa4c38cd8cfe2f28aa98ea8bc885575d3e48e15b158de943f9927b48313b1adfec60e4b62395e11b175903ec75dea5e590fb157b29ce4b11a62f31c749caa92a74d5a883d1855d3b8fb205e92105b8c13e22c89884e72107bbc71ffaf52545805b1478abad3bf313b34105b0e52d476628e5404c4969e2e769c9d6722fe61d5299d5413c922433fec2579d53e528e49d3873d76f66a88c17308f261b10b956369e6f0b8dbc3aabd36e6fb2186e4f4b0558c4b957b671fc7f2b07cc8d0d0394c6f6378d87cfb2ec46a0cffefb04589e01bd276d8f2e5c8ce1dc7e1ac75583d5a8f1593850e8be51ce974b22a4796392c1de1e36032075122450e7b98751b37551c96fef1d1da103a3b1cf6c9e9e3a38fa93e6fd8e3d082e57e6756c70d7bd4cbbc0d1e79cd6dd8f2079143d418112e840d7b5c299a74788c945fc39a3a95628c1e52746ad83aed04931029c695863d76143fc73f9095101ad6f0b123b5aef35ecfb0c6d02ef13f9d0acdb085f4edebee30529461f318a6b23a1cfbed30529061cf14a5e2e5482d47398c1463d82e87f5b4f9d49b9fa510c3faf11ff9a48eabc3384b1186d5afca429f45c7ce590a306ce361ccf93787de216729beb0c48839f5289a67be590a2f2cf67f9e27440ca36996a20bfc9d47f84e361756afc8b94bf61696741353f1f3c1f4470b4b0abb71c942cfed270b6b886a9aa3e24cca3958582eee06eb9467926aaeb04792e3a814c2e897c60a7b981dd96d0cde1d65aab087071eceb44afd662aac76c93e7ee4b032cd53d8276fffd24f694f580a7ba6de9914613daffac696a6224f7710b319a3b076450ee59f2b848c6eec1f543c088b104218a1b0677c20316ff0098b45c54d37713f3574c29ef37efa36756404db5872063b0f32c58cdd9ab044921cf2848e6b1f63c23626122262e2c58eb1b104b98989adb14d5988942c33c7714b582de6f4e90f695752634b922f63e7135b0f4b63eb10673158aca78d12f6fa3b2999f4249382c69aaa796367e49892843de6df9ce421a71c7fc63ec943b10ba7717133969e0f24624a11f6828425cf5db25095b107ebc8983679c8d8a6278367d8e9dc517c84bd6e721c85787d1e4e788cfd9376982ce50d39266c84b5337eee13cf7118245c842d4590d38e9118ebc4f4710af94fff8388b097649adb8dcc397e084b3ed1ffda4a613a42d823779c039b0f11ca30568b5f694ccdffa783c158a25fa40e5573278f8383b054ac92d359fd381a089ba6e4f9f0737c55fe609d49bf8e2329fff18bcdc25d0e97621edfde075b7d18d33331f73cbe07ebc59dcc0ef3c4e679b0977570f961c7a3be83edaac387341dd4d6ae83ada3543f5c8715399e834546bef2877237e9c6c1161b3fbde6bec1f671ccfc19bdd2c48c145eac693547845c751d3252d860ef49b61952b8143b96a2068b4df028b16ba52b9682064b46495fb04e53f150ec97a2f969e379872a28169993884f9fb423fa892d6c4ccda647da0ff5c4261f513a4a537a39b4138b872179f5d3844e2727d690972cc3e3f548e626b6c994a31c87a8cb97d4c436a14a7653a5ed2533b15aee52494145c2474cacd69572070d317bc54b6c1f5ced47ce15c2042db1c7c1e5eef5933c7525f6ff90a999157e1f4aec1deaef6639893d94f8e6460c5ff524b1e59427dd214e4ef522b17a978f4755e58e7290d883fc9b32f5f68875e7a26d98b3efb83962a9602127daca57d01ab1e510d9103263c4a6397c2f436dee4d59c4be66fad1f68927b52862495e112977a509b192884dd52cb543e3e6ae10b146e70999d6329f471d6293f1ce77c1824f6d88a534e51ce6b84378a6107be54d1e7d07493126c41e647af85815d9930c62afb9cc71e965671241ece963d9c72b10fb9a7c9044efe3fc4100b199e73021e7e73069feb074d975dc2edd30fb6109a2f17337d202f461d3ff58fd0e274685b4007cd83ba608b9272dd7222dc01ef6efb81a36162226a405d0c39a332c4db08a4f126901f2b007f571d3871f8a876d731c64eacc9fd37ce81d96942cf17cb229c887da61eb309a54c7a3ffdca175d8d2a25c64690c29e4e9b086faa58cea9214f7392c22b6faa7bf39a75d0e7b0e82a778e971d82f65ec1c82e794eb86c336b3e13e2f440ec77ec33e19d552ea4a35b1ddb0887fd4120d5931d76d5862454a297daacf9466c3e6b1c30713bb23a5f41a966421c42fab1c7eb51ad6ec383d34c62f0f751af620ad84a0371a960e963332a6b2fe0c6b677e5d478e473c8e1996f218553d0c213eb40c6b88996b9ac96752c8b07ea5da509f428e53660ceb98ef680ac1e314c3223186ddafd295340c6bde183bc7909c43110c7b081797c683bfb04c87fae1a5d30b7b4c69b2b7d385bda3e4297c5975a65cd8fcd285987f7472942dace9831c51d5219d955a58a3c3d39eaffc996761fd0f2e66f80c8dc1c2ba513f585a8839cc5c61f1a0f7f39755c5adb0a989a69d6e8c395a852dcf36f9a4860a7baaf0bda96f0a7b5f8ccda1c24716735258366d8cf943a774fe8de5ec332cf4b4e61385bd2275a84721664973630d49374f9e9823660685b562e7501aa6f1237bc27291799ec27aa4bb3861abf8711c434ec936b60f51e16c92e56f954dd863e7b8a4a6624c324926ec41c74152a624d9d82ca7d385fc41f090e41a5b6d5d9affcff12a2497b0564721affc4d8c8ba41a5b95585f4cb2f215c93496d5fceefe38b21f4a25ec5fa94ea46e27464a34d6ffcec90d1da63347266189580f3c246f0a9a3f63bdf874212bbd527933d618c2632c8b927ef248d842c6aac751ae50c997b17e4f0ea33a5d16f264acbac16fc3c71f618d3177fcce5a089d8fb1d9a488e291d8f6e646d83ce27a50bfa3922cc29643bf94e7c6b42e31b61027c72b396945aa89b0a74e4e2947699672f410b61e09c95021a672b41036350be1bb3b90dd9c30d61cc7971e077a5142078ce5927dd5c41c544c0661d1946f2d748ee67340583348dcf0f8eb72677eb094e9eef6f86d88992ff6bc5ec16ed293468c0fb6943f8751ccc3a39c1eac23db7b1ae73e6a78b0464f8f3836db1be61dacbdf12745ee6843631d6c36a1543a4fe5308473b076fce579363858f623a482474fa937d8ccecfb27d6f355d48b3dbb52c2c5b30036d87e36ad4385560c67016ab07de8d1a6f9fa689905a0c11e91d2840b171929198a23abb43d294950ace9c398aba1d3740e7e62cd61a59473ca514e2a7a62bdb8e1cb428434f575628db3f1bb1a2b6a3e4e2cd13ec71dcdb7892d84d8a122c9a7464f136bdcd05123754e9a5e2616d9cb197224b12b3dc4c4de197fdb13277ee4e1259698b43fea8e03edb8434bac1fd9faec6af28c1a5662cb903efa289cf85e8694583a848a561672a887e124d6fdd88f2e44cc942c28892d35588e3b94b9b0148cc4a6e5bb617db5af5210129b868f244aac0ddf173e620f34c78a901dda390a1db1e78e7aac4a828d582dff83081f5c558c2023f64a557721c6dc4d115cc41ad279a46eac870e828a58e2a5081ffa1f7a3f30115be6a03bbcb408571f88882d94e4ce41deb81ee7c0432c716b3dee1c6d48f840436ce551f053ef9c693cb010cb6fc7b5173fbca31c4888ad4333ed7f5362e8c041ecc16dde6d7a942e74a02016c92949a490428c9e0fc436a1f7e2998a59c70362c9618ae2c1ed759cfa1f56bfee38ca55ada5dc0fdbeec8e74d8bc143de877d3f3fcdfa3b93da7c5836524cf61796e3a8f7b0f5e4fa749472b2ccd1c39a3acadc10e62399270f6bee5ccc49c1e6bf83877dea32688e1f2567e70e5b48325f8d8e1dd68ef3a2ecfa8575d8cba3c4ce1c6551a7c39abee3acf5a90e72735873a88b37c1d66b6239ac51fa636973144cd438eca15308575126f1c3618f9ef741424ea8fd860d447ccc0fb21e16f518e73cece1c3d041c7fb38650ec6c3de1bc72e62264fe5efd08a955cbc2fd50e5bb8d817d1493df440adc3924345236345873df0286727c514f141740e7b484739535cf2f340396cb9baeb71d414ae2f71d8e354a226313b474102874542089161463f786f586f3a478e39d2f1a023ddb0e789ad90d36ca7d66dd862a60e1ed5d4af366c583d4b26a6fb0ed5b3356c93c310aa62ecc86c826a582a7f8eb9ec0d17d134ac49c3750c561d1ab69ca3dcf1e9e3ceb0ff99070da631924a33433be3571b2ca40c5b6c45ffd96a4a179161ff1cdf8ca9f1b80f1bc362a97b432785a079312c67fd5198ddee9a3c0c6b5e32d348b9120b18d6afed9a9958791ef7853d9587ccec6475162b5e58f3c5e492e8920eaceac21ae23f1ef7c64fae840b5b78d4e99d374e9a7f0bfb650c29c7fae968e35ad83a64cc2523f7952965613dfd9063745346abb1b0e45035d575523d0f5f61dfee935499e3d811b5423972e7cb1cacc21662e7385cb198aae8a0c2de39278b8e8e4f61910a26a677c1b7fb96c22671d69fd3349586cf1bdb8778913f8797e30ee628ace69f63e79a186dd362010438000112e0828b2e30b05860a106156e1cb463ccf75e0c85f532061b2b89b1a3469fc06e676eb2f8a51396987a82aa4d75c87f1b7be7e831e528f6ebc39bb0c781e55fce416493894cd87290f2ff9410a9e3b0b14e47cd077e21fe53b7c66ab92fece44478b82f61cf371eab5292b50b1735f638ce1d1ef5bca3a7491afb87b1aef384d90e52870da850c2a6b5716a21c7bb49131568ac1f668eb01f315424615bf9cadfb41e5956de526002149c600427a0e28c35c50d19262f6c479d2f625061c6261d48fef8384f18bb90b04a69f66daf4511f918810ab658011765ecf16c57d4ca4148f1781d5490d17d87de964a94051547583e53b0f0c971963a2804548c619cdd14257edc084be77594829947adc741aa089b4759d2bd1e17e34996322fed5a56400511d68fb3d288e49c212cd7610c153e2bc268541b408510f6ce717ca142f5a6c33a8c35c2e34507e2d16c0883b1446fb8f8af04618fbd913b698e67a6c205500184bd030b992924848d50ff600f3e29bb9ac362fcc59669df1fc438fd11343e586482e6ed506912a21e2c3e394c7c9c4379b05f88e31fe6bd987b352a76b06cc89c96e3e0d7c11a3225d586d49ee0e7604d3ac9f774d76307360eb6f3ab8e3b8fdcf1e3dc6099c9b8e3a14796fe335e6c61add2445c87114bb1c11a35c4506115961da66ab087923ac717a1c3a50fa28206cba74cdb29df6c55c8118a35326f55dacd8162ddab31f538fa48f1f94f6c91d4bc278772a9d27b62dfb4db7869f662a4efc4525552931ef49c58f6e386b21cd9c979fc26b6eeddf86185f5903a5e137b8e82a49485fe1cd34cec37abb921687d0e4b4c2c1f68cef17c7f72dc5d621b099272c7a1e48f532cb1faae26b9a01d3aac2ab1c72a518f979132a528b16daadc1857a3a2139fc47e3e31e143894b624921ff25954df922874762194d8fb14286f8e0436289203221feee476c515b6717525d4c1db1a5b9abf830879b34e48d5873cd58e838fcd41c336291d208529ee66cbe452c19a27455fc88413545acfe51eff73cdd5cd58958e2721c9847b5348d3422d6589623ebfc39c416b7739893798a0a1f43ac923f92072b1662d9ebb08ecd51982421d61ca3f16256ce20f69434e3e4b4f5192947106b8a94a3dacc7102b10715613dd868f99107c41af62bcd4fdc500fffc3de39ab2f4a688e7e3f2c1e5eb8fed88c1cda7dd8a3b8c9816c9fa547f3619d8814a762448ee5d9c3e6994ebd43ac874d73b0a695a3943c88f3b04898895a318a8725a4fd601fa2769b9a3bece1a469ecb077a8fe09b1cbb24b5387257fad64940d214969e8b055ce1bebc2ec898d660e5bcca81f79e3ff92c5c861f1d5334b1fe3c3093171d857a36693a64ad69381c3b231c6ac1c4fb4228779c362963ecaa6c950d261dcb06974f427c17a24f96d58755379289d67c3562187aa201776f5352c93713654668e2754c3fa5185687f1936453c0d5bc5513dcf19a2e7060d7b8dded5ae47e9eb33ec7b29c3e5f842cccb99611b2dbd292fef342965d846bdb343883679aea25ca7d3946732862dcc72741f5d94930e16c3d61f94eda6ac94958761f9f0233483a7499206c3a61aa2791cc5a8b2ce17d6f1c9fa6865345fd80b5b65e7c7a1473b61a17661938fe4f4c349d13a5cd89386ce1c9f58488edec2dee9368c579c5ad8349d5cda0f6761d5149bd2a5ca0a1a2c6c1925c74f767c0ebcc23a49446f424e95afb4c21ec5de8cf29b5d37a9c2665d33bf157e3a3c920a5b49f838ae4e65fef829acf23158ae387671bb14f638a64dbd99ea5fe937b6fb30a79ce76672e84461d1a8542a717563893b67da710714d65ffb4bd12b44c9f309ebe7358f3a14d1097bafa7289583dad8336b22a60f3a887e13f638464cabe127932cc8846dd3827a8815a3eb6763cb90541526e2a4f35b63af9c524e49679e13fa25ace7a9ff2cec5363bb4a713d754c1a4bce1d47cdfe08a96325ec613a69ad53b21c8d682c5533951f6d7654561296081de673941d868d9cb1d86ddde53caa1ad399b1dda55bdb182768ea48586eef26a3873973be8c65b5747c7d2cafd2646cba5a73172b65cfe6086bc47fdcfe0a1dd2636c5721c7211273edc6084bfe90c39c2f3f8f6945d84c530eae3c73c82c46d1213ac8f92823c256a1ce4c3ac486b09dc945f5cefccb9009618b8cf761ce31cd816461ac99d33ad0983f927418185bcce6f8509128157d10b6ca8cd9a9cd11e93020ac1773e56b3269ae5e7eb0c8768a12f2e68bedc2ce834d16ae6ff6c11237f1414af098faf560ed4f272987ae59d00a0f36f59ce3ff3846c2a4941dece92ea476d881d607293a58ffc3b270127348212a3958c3ac87f19248ca511e076b07add40f2577103f3758e3837fd82fc921780ee0c51631e5a2e314f3d139800d963bbd52c9aa4e5d1ea006eb9fe47788abc8f41d8006fbe711394ffd94e328158aed2c86fd8e337c1c21058afde3389e5bd9a918a93eb147be213e0eabc726477962e960c9a43a73ea1cdf89ada204c91d490739ac39b17477fc88f930e57436b1460f63388d381dec46137b4ebf1de26d482656e9d1b01ceb152f86606209b516a2c92f869bc925968e68971627e5ee2396b02b45e4c28754624ff6f1a38c1d050b29b195c48bd49ff38a446412fb87ea6a8e5152aa25b1c43017427298788747624d397c7834b13e760612cb68d22ba9e838e923f6910c2321488c9183c9118b4f79d01bbd8fc3fa1bb1e6d07cbd6a316aae30624f523146fcceca9c45ec1db1c63cad79b015296209c951f08bbf8e13b1c5940cc9e0394dcc23620dd12fc7ed70524839c436771e47eda026566d88c5f3c751ecf8281d730ab1f994ad663409b1d45ff238f4f06ccae338ce822c20608041ec21e5a3305125377741ac367521276e7cb809c492f347cd87b8bd322056bf90ae5755348e7fd86ef3434d6afa61d3241ea984741fd6b48fe3a057f37edce1c32aabba232571eedfc39e49d32bc715163f7ad852598c277a1d7e1ef6d31c653ad5f838f1b0a666fc7f9c37a867eeb087ef8e15fe72e88d1df60e12753a16b356aec3665f5f25feb977d361534f1e976acd078dce61efb90c791dc6ca2387356376e718936f8038ec591f23dcffe511f30d00872d3de4ccf44fd21adf006fd8632f46188f37c5836f0037201369f22a8c6d583e9c38d178397e7c6c582ba5897957dc5cdd1a963c318b92636ad84bcff37ad029dec6d2b0dfc550afe417d332346cb9c2bc36688cf93fc3de31849109296f86b52f74781e0f6388cb97618dca79aba9f29f589e0c5be5318f9207f6c92b3f8665a72cc27ec4b0688a153244cbe8380c7b75becc17f1247f605872786539ca61f468f585f5e3a7fa85493593171649cf60a6f7113a4817d60b1795c93e57f35cd837a6fa9836e5fde82d2c951feac56e7ccf5a586359eacf0ec3789a8535c8e74f394cf5636261cfc9b00e2679f271fc15d6e8297e789a4d1fc70adb87d94e3145cd79adc212ed3ccbe3f01331a7c262217794299c471e35852dce07e93c8374186929ec21c172479779c17e6393145246b7324c260a7bde85e0a541a54337f69d4a913f55c3e5a0b06d92e8d184faebeb098b7d14bf3957d40e3a4e583f24ddfc4c12526e63cf71b8ff53bffd814d587322a97a1c13d67c49d2e564dc006cec8187e730ce42f687dd006b6cde3127e4f8b4796537c01208a61babb144e9314b1f4d63f9b3b10ee7a3934695b0e4efe4286df79546d1d863e4b4dee971de9826618debe8d4b4e3e3f419ebc791973986e8394e9ab186f985880d12d68e9b362739aa27cb58e2c7a16744a6741732b6188287c94dd3c1ca23ecb9038f747a6243788c72c8519f24138db059fef588108bb07de89e9309a16f4231f6207d1833a524253f222cfb39c59ce6ebbb1fc23a797efed199ea11c2fe57f9826f48163961ecc12a43b010fc346360ec974f3405b989295b10d60d1ba5f3c6b21f0d087b50b1463ff2f841c57eb0e7601561fc62097299c38c1d3c44cc074b0c29f5a58ff3e1df83a593c60fe562de0f0fd6b4d81be42f67f8ec60c9f8241f73591e55077b0ecf607a961cac9942848c11077b8c8fe27dccd19d1b6c1673e8f5f154aaae78b1499879a8ec387fa80d56b98a1a8274c7bbaa067b0e4f25f4a48d396f001aacaa17c4831c8a3546e690316a8e424940b1e7ac583177c8ad917c629b1cac927e681927e28935a6eae8a3776289d59be338213bc838b145f2f0373dda54d2e19b58a4a24685e6704d6c95367c5acfcbdd64620d8b71724f4cec7f9e5b1dfb6ac2bfc4627631dfbff71496d8827a958ac79152de7b8a4a2c23bd26dd711821f69e82129bc5d071f41371fef49e62127ba530bd3e1967f1ee2924b1e630a64c319af7d8dd53446259c97b25311d3cd33d0524b6b48bfb691dfca7dd533c624bd1f48d7a29725cf7148ed8ef72e674543762dda8e0b51ed72a7c18b17e075e171b6a979e45ec71d88739f0fc38fc8e22f668f282f657ca1c9a442c7d9f838aa9ae826710b19965f9554a2d4f3187d8534c777dcaa9376e8835f39ea5afa593bd106bf268f4224c886d3e38cb1c657ec878106b6644f568a3aaa358104b9ece25936b20160fa5432a9fd04b15104bc8cf0b21f3877d3bf278963975e6503fec29ae7449a51c7fde873db2b4bf1eb53d1e3e2cd2e5e18598dcc39e52da48d1d443d3f1a60d2f0fdb868e77b2e3e0a350e2618b25d7d95b2933847758bb63dace714cdd0e7bf4ce33edafa7a8c3ba1fdf7f7a1862f60b655c51852d7a089e2ecfa58c8c2ba8b07fb889fd943c1ef9c02c6c0a67878e72d0911d6ce30a29ece1a9740ea38713376464e38a37b64be15207cfb38ec845614f9331c3bee39d0e4937d69a8d317cca7ffcf09a700514f6143172249e2f4fd8c33cebd50ece73c2d6f1a13adaef99ccdc1a57b4b1c424f25932def57b0a4cd05bb016599c2089b9a2096bdf7c57058fb32cae60c25a39a485c649e9f2621eb8828d6dd7d42254f346888803b070c51a4b6c28af1cb91063922c6191faf461b4834716bb37ae5063addc39c6cfe80b2757090e1714486389525b4b23c9f2875a0310c0010a20c094d05dd474e42f70efe2cb09ae4063095bb2194d630c3b1dc7b82209cb4de4d0393f8859678b152819579cb1584a7953f278721ca3d285ae7185198be71c5d08011c8880068804008d2b90b074077d9ba73a86189b263ac215652cf163cf7ae73c11462263d3da1c4c6290642a9317571c61df9cce14d6f3fcdfa50592d1e08a31f6a0838ca0054e248c2b8cb0a759fc5d4d149b59d58ab0854d99e3f62753fe584107ae10639bbf1461732c9ec771ba20c23ad13f45d72b5a201d6439b862087b54fbebce51a80f2d570861b314397deaa5a13eca1561ac31aa43260716738cd01560ac994346bccfcb0f63f28a20ac923ff84e06fd8ff2760510b68f2c8e95954dd0b8e2078b2439af789d53464abed82c3aaa58deb1bfceaff0c11ea56ad8c8ecead39834aee8c11edee6e07274919a42cf837d25076376755eb1833db653bc904b09c1153a5882a8a7941962947d680157e460b3cc89f6e1cde750d13270050eb68fd35cc779a2077124c11537583fa86423531beb3494453b179d2cb8c20be4b4f47bc5f314a8801b052b20e4002dc1153658d5c3edd0a5a048008270450d96fac8a3bcce2892b3d9e20a1a6c3a17b222f675767016c75be04408e040048c0b2b42b1071645635269d5d8cd07f9c20a506c9793b93ac275d081ad05122901d081159fd872147314a9db11e5ae33acf0c4d6e15d4c4937e9fae69dd8c310ba345ddce8185359c4b082139b260f2736fd37a40f2182159b58ff63a82f8d0ccb90891a566862d9be107298e284a0614526f6c8236e33e5fd90ffc6c41221663f7ecafd6175a461c525d695dbdb18e72afde796d82fc60f39e6920f8bc12458518945258412b98e89fb0d25f65c95f2d55ec4d81c27b1cc454b1ec386188f9c24b6d01cdaa47628ba7289c43e1d8e7afc202560151405580189259e76e461598ae8ff23f68e3e858574e591f677c46ac1e37899827618ec6fc49e33e7f043348c587f2d27738e7c533417b177c6eaebefd458e52b62d1df904654ac3e0c3f11abc7dcec10f27dd7f688d8ee62fdf385bf4bcb1f624b611d43ed3ebc58bd21b6f198aae83de741ea0bb124f3b02a9d7ec8ee9d107bea0f1a3cf9e710641fc456da1df724d105b1e468ada9698648ce03b1e4767823963b4c6a3920b60f257a11d2c23a88ff619d20953e332239e97e58d324994794967fba0fdbdfcc77cc693e2c16c27cfca14eaad47b58affb7acd426589ac87f52f65f7d64c4da57958a25aee0cf715f27178d873fc15938dd67758534af9f862c76f0e6b3bec69d2efd643be9c2c5d8735ee82487f48d3619d4c31a65c3e9f52d273d8b44f63ca71386a12b51cd64eb9316a9e9dcd3e0e5b5a7f783131868a1838acd51f04ed48d4e31c7dc3d2a1f84f4c7d2795ba61cfb15b32a926fe651b36d3d89bd27247348d0ddb864a59c3721e780e266a9fe372d4b0848f596a17f3fea49c34ec316d3bdd5ace94d541c3de1b36e9539d33ec553d51f7518e51a163866d3b988d7eafc7a16fcab0e84c5e0d539a533f860cdb47a954992a45b51c3306c5a2d649c6bc18b6ca10d5a662b4a4791896301f5257ede49d1b0cfb6d7ce40fe5a3b0cd1796e0d7a16e86bdb0d5e8e52007393ec9d6852d9346494e1273618f2e8bcaa1e38d22f11696b0ff71fa31550b4b7e1c55420c1bbde3350beb07baa1437af45246b1b0fc655c8afdb0cf42bdc23699fcf423ff32e4d40adba64e291d9fa5c99b56618f47652dc74bf231a55458426c4812d3d3f67fe814b61c794619a98a591d2a85553b8e5e9dfa37f6f82879b2ac95d24f14d69cf9b58b1c795cd98dad3285491bf961f409852d630af98c7abfdb3d614ba7335629d2bc36276c7af9ce92071635a7da58528a9e6b3dbec83869c276216f4e7b173a554a266c31ae87ec60122b3b928d556de6429c7c8d3da7c69eced177777a09abc5e689196b35b6d1d1f861228e7569ece146cbc8514709ebc747b19268ac124753e8cc715c082761cd31c50f123548b0f58c75562673d09cfcb499b178f0286aca41c212a25ef48a96b185a6d38ff1ac63b22019aba7869853da8c612a7884f5d27550f9fd186b4c676ae5a184f3da085b855ffff872ae086bc694f048a3626c21564761cccba6a24458c3e67cf4a0935edd1036adcb0933511ec71521ec97396c4cf12f58b82e8cede2c35e5c0919d5e3c058cf030f9f225665a783b078102e3fc88fd2a4281036df598db8161d6dec07fbe7c0be83ec8b25df780cabdb7f52311f2c1e973bcda5ac076bace0f319377f5289f1608fb3ce7f342246ed77b08dfce889dd3ad834c4e79cbab0297772b0749ce340c2826cdc280e363989ee38276ff0c997576a18bd58cd2445dfa8ceec8e29b0c2067b85a6bbc938a2760db6148259771c4e43ccaca0c11abd626dd75e7abc84620f2444f0307f0e2c7a1450ec219a7daf8efee4f04f6c9b8257879c78416d4f2c1a5542ce213bd1e9c47ee98169f07062bbded4c952599b58e3d9478aec38ba942b4dec2bb37127e64f1da62a13ab86209a034d52e34185893d82f4c86cfe127b88723b75a94a2eb7c416396a25e14f3ffc5462c92927c7711054643a94d853a6596f50c924b6d8291ae1ff3a4a4824b1674cd2f4d18ec42a7925298793527c18127b9876bdf2740e27c58fd8e328d37cd0a39129e888edf43cb264321725478d583f5e447c38977962c488ad2623a9868fec268516b169a434793fecf58a48114b68c47f568ad0ca49c432bb137583c741d689882dc7412a267d42d4f210cb5af6a6a4db4177ce109b486e08975285583a9afadb9bd51c2184d8fa4e3b5d0e76b20d62eb18f67a26845d4582d883104642d2f50bf33802d14515808041157f5825c87fca10f355f8619fcd31677eee3eac9182ef7e0c613e2c751e674da634b21fba87e552184b631ea9873d8d54a651d9daba90c8cf16ac8214186da08a3cac154542487697a6f3a7056e7101422bc8620b2eea0423501254818725a3a5cb6159df4c78872594e8746acc4839e32cb6e0430e3b2cf97427fc6ecc11f66707aaa8c3d281a8ac5afe8bb9e9b0a7e8ebb17370731dd72ad8620427500f5431073df8a7d5ddd04185c7d14131a8420e6bfaa8e3141a376b758119a8220ecde8ca548e2f7de5b5402a120037aa80c3a73179d153887e8ef0c9c2bb58410ab67023151c47410ab69800aaa08a37ec5f7dfadd172d902c50851b96f12f0d1e7ee77867022eb4c8620b2eb25042000722d05b74000b2cda045c68810516c40855b461cfa39f827a900db1772db6e86205a6c855c02a584105ae4dc08516850d5b081f8c6cf847fbd177f445156bd82bed527613c1162350017b17270b678109b84881777194a5866543f442c6fc71a6d432431569583c90efbef3dcd9b8c850051a16c917b772f0c919d61ccaa7e47e181aeba3bc508519b63c1dc7a7e119dd399256a8a20c5ba8f8bde029557668d9828bf7071421c3f61529917b37fc6c07010e60001658580bb8e8020563d87249ea4f99194e525e0c4bc887fc9c633b250f33aa08c33edfe9f1e448ed332b6058bc2332aec34913c2d22fac692753f87c1b933f868c2abcb07d90763ce8ce49359e1846155d58bf6c24843cebf43f82510517f6bff94d3699399fce5a600a0808aad8029bb4e2845e8ea305d291d15da00a2d28965a41d7f3869ca08a2cece14f8f0693bbe8dcb0b0fa54f0b4693d409045155758a294e5bb8e6a1e25a9051211195461852d2da5570edf2fff4f1596641ffa933e25da165c942eb6b800165800c01255506195cfc9514cc473773a832aa6b046f0d018c47ed5a276422fa8420a9bfd48669e3c66f65715aa7863f19011bb3a3a8409554461ff52fb0d21a35d5dc58dbd523d5e0a1f964d79a0b0de58e6252d4d93417cc27221749a4e892156749cb0c723f339af83dcb77a156d6c1279163b2fcf6c99802a9ab0776d38fba8a29a76520b24375964e125e0131c84020046154c58c3ea42ca510861ff3c36b6c9bccb276b39445d075963fd3ecd9d5324df87d125ec1d87be2ae942ae24a51a6b8e2254f676b44ea14f63b90cb6de41849590a844c94128bd681955a0b1a60e776a7e51a6329d84b5e394c5c7a5d34bf3195bef84a64c8667d2d38c2d2fd4d7cda7541f972a90d096c79b3fca0b154f8bb4155451c6e2f1c47c20b16364eac0028b62458c2ac85842523b4be1c1236c614cc3d3a8c7ff39c6b29d39f48cf4b9913146d8734df2982f557e585511f6f03eaa1863e4149f3e626cd7319987fc2431e6448455442be67773f41fb421ec29bf163ac71152d88b10968dc937e385f8507985b1f6696faee4a58e026349bf9a1fa76d4739734fa08e52a38a20ec3fe131ea4292102903c292d2f69af4460da1e50ff6b11451fc53ccd4e920a050a8e28b7d6208ea9b36e7a9e8f86095689139caa1a60ef76ba38a1e2c57d27d79467290fbe4c13231755096742b8e793b5856a34b7447eebb2e5a20dd75153ad8f2e27c3e8e2b2cb018810a081b55e480f879434757f2512954818325965ad687339d72246fb074af6f46df0d1e5ad4c5094e9045be5185176b5eb51c4af9480c1633461536582be5cd549bc22a6ab04c4f4c3987e551b232b540caf6c4cffb40153458742be6744a56ec2634838a502c12b277a37d08e95705c532a6b90395cfcf63b71b547c62ff1c6c7718e7f6a30489000e44c0016e02c325c0020b222e385b78175dace0145900c4a0c2134bce97e9fd616449cc6d085474a2ff946eaabb27d8e9547062fd1472f4984e72f507d102e9044689094cc000ef828bf72750b1893d3bc28347297b1d07922608792dafc418696457c108b618c141e6827727e4051599d83f3e99f8d24f5af7854105260ed443a26479942a267cce78cdf5c6a8b8c4b2661a5523c7865f47164808e0400410b05d7406159658738426cf394edb41c4530315955825a78996ce3f8698e35950c2810a4a2c2afb81480cd3b1ef644122282a26b19597c5c4b29c0a5448628f463b4494deb2204303159158aae3c07a434a91bbce14a880c4e691e60d31f9c154a7fc101dc4052a1eb166472891b2f8e043df116bf28f5cda1d7a64c837628bb1713a62e60b5b19b17f8c1f7e294e6e98be8865722bc4ea9ac92bba2236ff14d53e873a117be98de9684ef9f8352296c88aa3b1d12116fdb02ca647369d3bda107b7cf2e8ee42d4c65d883d47651a7ef73ec409b1745cd6a1549c9d4a07b1e4dc416e3766aa9820d6e9bc492d5a88b32e107b8ec13ee50491f2c801c4122a7e59c7998285f50f5b0ef5da985d41a2347e583efc499494efc336a9493b873c1ff64f21874bcd617c3cef81d20289f9a8b4c763a24161210121c12021c1400080c014ee025318040080e2b12c47712488697b03148002401c16280c1410140e0e0a0c0c080c0a0a0a0604040608040606080408060604060a3e08c64919d6073ac6dae07e9c7e8d717627c87a781cf79335789ec39715c205fc74aaafae1c34bf9d7ea9b8698dbe369fbb712a28e592d410ed208bd4c8ff696394079a6368590fbb5542b18e85a22ee0552bc1d5950194d5f2293a2c0ae93f1bb5a0fb2eaf72df94542c99fa13cceec7e2206bbda94161b5203f0abbb37e34fa0bb971ab43e0a4dbd5554ddf6fbfd7fe1fd6a1aeb60bc823f2f5bb0bed5548a1e1f4d6a401e1db0a7a08b2143d5b4062152591c9a09bd08eea4b86f5206c6a3ec12d1289ee9fc6fb284709cc54592e0bf0cc3b107df704c453109bec4976ede5e882878d686e3fd550eb1afcc59c41d8291d4a6c5269816fdaecc34a15308dcbacc440f47ea6e8fafde862438f7eaa3c35b3c8a4c4c1fe8ab457a35ecf7d2258c0284a859209c69acd31a72928e5767683672813398f8644bb8566c2fc56f34e27b3393a6e355118347d869c89c4c76343fda0d6eb951cf92029b921af7ae8c785256604c0ba6888da9f509c814df266cf76f48643c6475fcc9b0464bf7b5873272d6fc8b6be12b12511c304a5eb7fa36c4f1267fe93e9072dc8a0425ada58533225dd83a16ba4a1d448af779c3354e07d9c15e88d61f0cfaae403a22927855c276310906e386769f2d80c913b758ac9904b6be04032bcb3902d682c6c0ffafe30785aec1b6e645e5c82b4d9be1f6702081eeea615738394a860c1b162e4e886fb878f3fabb3ff5cba2bb0d7f2d0222d57f7bec5694136e6db6897ac4d9bdba3c7c17a9eb01009cd666a797f8f39d0d1ad7add9c378d8a366e5e9373a516136c9f746c7c364ba9eea3c0ce5bdc611d654421e5a6cad441ddf39efa3cb545b544cabac00ee40e134cf7c172b70ef85f700cc0fd9c70464a3c26f4640eccb3a857c818ce36cb8399a2ad694819aa56215e956e65a282691055964f3bf14feb2680ac071d25d61e2467a4a6410b028680bb134eb844737299cbe249968bf458843241ca364ba097d1c2eae99c57311c52bbb6b1b13db51784df4dd6718db80d78758e019f1379d7e0c5ecb88eb1f91e71663a3618609c34cc7e66dc11dab818080e4818854f281f184bc0f4144bb083893dd014f0d48a06c680b0437ab2eae319d21379452f24959b0560072b24722ae490cd75258e67b0f366487ffdf1bf22b3b3af4f1e806652954cb72d8e00301c1b88381ff6c6a9ae75cb0278b4e6a693a0dfcaa39d2b9d8c1c88c69384fa902b80d64299d04fbbd35a0ac7ca37b1135bed19b1a4d01b366f766daaac8faba1d82d7e166e1549a958453729a1e5545af75980e430e5d89d6bd03c64c3ee238f8cf5a3425299bbea8dce19e5a7e33bcc04be8b74ee338988f30adb0fe74b21391c13513006695fd51bc25a01c56c0311e297892a3591bc80049cef8e86d937b64babab328c6a4bd41ccbaaa403eba37cfbb52af6564ab0a4739a482a558c2de75b46584172e697efb289356b7adc2319ed924875a78b21905caa6e9543ded47930a5254b3aeab5b68731103bc686eb363cf277f358aa4dbd11ffbaee9ad7d79caa18442fd0e5a39c260a158f3aa51062d519bdb9ea28589ece9d142cb79c2a45c4999ad6fd2f307dced086c1bffe72b2f1523873b00622d9de7ef74811308fa4583aac8ed180a1252cf5ac7bc2ed0a05b63bd23afd4e6dc7d0597d54835ac898007e528c2713ae1034e8bb5ce49332841a0575fcbde45fed7d1487d64b4d7c57ba424c8ccc5e65669ffa3aa9c8dc80117c02f5bb01b9086c440beb8795f07a002c331f82bce362b04eb57f2c5ace9b36a077ea80bc08f11989b83f946e094925a2212912ed7576a5d5db46f7f5e4fa8ff90b622b690db4ee0442a4a773650d2447bc5a51c2ccea9d8b7375dfa03a1efced93ffab3260841a32378d2fd8f3e455251d1841f0a7d5ad81b7260bdcbf56cdfe2b94714ef5a0a4f0e31fadab4e46f0a5cbf7f1b2f1d0e7541102f4463694612629552213e81f630147f4b7bba806d27d00d91530bf64032dd0976fe00670590495a82963ac8751e2f5ee8290540f675ca818202720a59e4cf3e9b1efc0237087724499eb29cdcbc807fb9938812f475dd91a1941c90c04eea934dfb93290688b607a8388bdb1c24ad337010d392a968f8c4f03d70e358d2b60decdb2f83b64639b0d814423130eb3b15059d8223d9501413683f9845b7b17f5358e8a328dc252b38c0b80cafab7caf247e49ac702a899b948c3b8d786bbb0a5f28e07f9af613c1b27a50fd3302df666bc16d9788caec6dd7d45718046cc219eafcf0480186a26c73c6e36dc775856f0e4e33bb71760dc7af6c4bda5092074ff02f97e121d4fee15190302d16661991e9331c658214203ece394f42e8f7bb0936d16f08ada19d355c189eeac15f5304b2eb411b8da358ded61fb887ef254a6cac964b7d5ac1d2a86dceb6bb35314c572819f2c3c9a5cb09bcd011071a77d2fbb3efb5b219a6dea1260e263629f35c1f19dffc24ce55717c73cc5c9a57a7116ab85b59ce69517b258566cc645507dbbca629be244ef0f9e013dd2588217763884a90c529affb0f9c51e41303c2a1162fabff37fc5351dd861166e9ed6259b0ad523963ef20699e1c88665470ba7062613ea9d7d1d910c105322afa9546cf7ab0449d0d6051a4bd2f66b73edec985f2915d1a48f80d849f7659772db778d66adf8a0ebee4f61918a7d397f4dc62efcd394777a68a66511721baab330743bd4106ed304b75d22cab8d209aa5607dc464e69ffbfe91883b61a2e3f261748e9924935d4b97035f832af59e66fe019c711bab91ce103367a73af068a11d63b862464db99b79b589a8fdaf363d5a18c19be69e0d4de619e7694e38d6cd2bc98a04826d82bc2779210d2a3581bbcabb8da2e83eccb853aa06b93dc13e702f0718af23cf02405eff452f2ee1fb4a900e892f4a16ee25c81b74258dd5c65ae152e693847c713996de6763ca6e5dbcca1312b8b195f05ff455f5d530df1f190ce0ae954b9f9fa81ac39a48f6029b34318dc7e8150071f5dd7244727e2c6139a2527a0240987461b5256d0779fa04ede98e1239f31b429f604f80e977595c8698ea8d13bafcf8f7fb6fe68a0de687011e09ed90ee66b334f03278622e42ffb20cbc0e2c5c3d05c36b8dc6df173f1a1e377a77a445e1ae08e50a3a45678dcbea5c308adf96bf415b8a910f172fc88af4321426b816c44ad19374716a84c32fa5b5542874fbeab4cb5105c5a48a73a7ae4b41138a2e05150163619a2cc01f2e81d92590cf497f175c198997e23b2b9b95f6175563f4d4f45c3eb4beead381136635bdcbda698eeb1458337e03c09e01abf42b6cd0cda1587161a83cc78b02dc2c0968135d343216a44c2d355487fa5f5e9cd644b7354566005d05bec9f46eefb53d17995deecbcaee4f307c145c1702b3670aed782e09a9785e4e1cf5e1d041b869cf0bdc228d496e8d4b39959b4c8c7a0fa62b0d016840210511a706060d3455f107096ea62ec0e5bc7555a4d9f2b1441bfad97cd9dadecd22b54287554aa50b08d55e9ec8d47c5ea8652e7beca2ee8b52b3852164b9af019262fd5934cd9f8d1af6e56cd86c2ca9043e09c19016aa6751f941455dd62edab7fe38927dbcc4200e8e81a114c62514b4d2e0993851735a00993b5a1dffa2d5e4ff0f303ef5d589ce7de0750d3e1913d5fcd9ae3f2384c7e290ccda82310d7b805e9322755ca417b09c18e5a4539f318d96e4b9fcea6ec75e7cce5682b37326e069ab24079e70e0ac7d984aeb7fb8b3d6f11e53d3625aa3d58919564b16d757ed27d9de802990b18a1ff41f09f8de5bdab51b0fa7b5f9dd80a3adeed7c8494dae2fbca7505ee56c8e9ef890b82dd1df81787da52e6aa41a6511fe4cf202ece99ef4b6ebadc9389c7a096ae5a60cfdcabf7fdbb46c15e48169dc3d753a6b700b70e948b43182638e2b14d6fe3d0f3da93886e18dd77778c30276de1474a6934c5ea8b32d538f6f0616db836c0716500c2e2f638138816c51201f734aaf29102e723fdaaaa0929fa4dc7842ac4a7109f08970bb6f4fee4536c864650b8b84d8762c934b74148e7bd104e804b7a3e81a068ce3f053619fec972a05268bb17af2afbd656e36dc9b467862a06168d9372f188e80d20f40af2b6f0bd395eab40da22a3ec879edf1237ab25be146f77e6051b5545309fc1f70ceabb15081abe359e3e450c92f5c958b1f4d0e33756272a61451619836425de7872ab3deaf4d463a249aa0ae62604bbf958d103a690b42fb06330c650fb9d97bd3666060307733c0b4881b5673943a1ad133366356b83030464620ed67c00dee8917fd5aca9a390cadf3491d4132383d6e837d6331090187e9b6959b5e5169de984c635c96eb09c02e6216f10675fc39418ae504ce42b48427b903159f0c3aa51cb57974059d913ee8663b49bd242a3fec560a5d1ac13672dab1f669fd0f6f45665a059c669c5e086c830a1a6f5b4abe67d450d511fa95c2569735555fba7c6a655ea6f9f3278498d71bb64ad189ea50c04573baa8ca685422247493dab35d6a9e23d89d945b77436ae1572febf9c206a1d4bdfb45177e5904a95de57adb5a77eb18269f99a5f57a8ff74315746856bbf9094d38a3eb98f5c8ce224e8245e89310cfcea57e3d1aad6ae6ab6fdea372a1895a5b9558dfa4d612be50a1b2be32af581e36b963139a393f915a31a32451d243e94158327dade9a50d60c9cab93c70035c8ba1dbbfd7acc8509d116bd2946f504edad0516c1b2a7a65c4579f1dcc75c9a3316a483b152de27b5c70ee9350e25cbc4e78d89d591f6245c146d28474601da6b3f0bd90b5d02acccbb19ed7ff62f5c0b3422941052515e6eaeca6a482994af5c4647f58c5f943057ee9c1200c82dd344c595bc98263c4489f8c66662f380fac78541367019dc0a2b9c8179f9b7151ac1c4c2a645e6ac14e89fded656379f673eb3e2cdd249518f0ad11aedcdcfa50df3738f1176fd0115922e4f79b4b0180c85297a5df914219cc12374b8d80e77398ce67d2b23ca52c5fb3e316c84c053a4032084d984989000967948d78a20033286b5079593928647110d55b0978144aa86c5968a1fb863ad56cf9aa71bd2d99ad74c1bdcc9c501d9b562b809aab160c38b8e6e0df328bcf25e5efdf557d009dcc72316035e0c09bbc9b5422660f192d6f656577b946cf4c677e1050e3185dc25241ca0aa283832769bb5a0435911e2b04d976cad542a3a1ad531b892e3a72e091a2905c80f2d674eafa93becae8556f020b6055e1fb5c271d40b5a7d09bbf9acac9d230d8940c1830717766ca8b099dba584b8114fa766eb5deaf52d37cb6c2f5a534de6726d8d024b93be32c39612545a76b3c276222970ed2f56ccef592f34cb78f4b401a2d8ca9ad75bb7c0ca846a8a533181b943232d56c8c8a81c5a860ccf00412a3b0630b7567679b36ab5a297a768b7a8616baae99821f4b66ced4701c4f96d8ec486808a0a4e1c3876231c9e59bcbf9e0e051e7cc2f255ec4850a54183059bb8d85fbcefc920bfd4487418b8d2c80dbcc734d6c78a6e5a57c108cd50881f109e945d4b66caecbc43eba8323a87460b4732fd5e12ee662842a319457d09c15f4b0c9d1c9527bc958dd9d52da76add9d16588ba0956e9661483243850a3dcdc290f9636619432feaefd727e57d889cce35703c33f6cb0f56e56e532043c24ef25aa0ed3945456559678d61f0b1b03011d1d91609a3483c246442631c331542c74ca910a8709ad60b9d34a9e8215eea168f252c706b35f0b59cb85f9fb165a2cfacf2325482829f672650211d56f70db46484c060e987eb763cccfcb9bbcbe75aef07f7aa5d9b96af4344a97893d32870bdd6ce43f91e255e18d22c4ba6a028c9184b3a1c13877dedf52741848ba4480755c9180d8491fca06f4bd2ce148ca447dae143e6868e35696eb00240a41f7472ed787178b38f7f217662127379faa4b588ed085cfb55db3e0e34e9f3043366994a4dc2d082ca33eba0dbb37deb79c1019b77831bfcad9044866f1d33d4cc983153b38f332094377614a59f118b1446f2510d5140aca44d83448409104b40870811e1c468511194ae0f6e686f0e4b3f77a94713acb4dbc9e1fd8101151137fb303c6c6733769135be2d2a74eac08c4c9f326a60943163f3d3062503dce316a33051d95dddd7d30d7bf24321afa926b25458755e88c2b09c491737964cf345bead010e3281319209138ad0daabd69cda0fc41a6390d029df50c1641086f7a768f2851bd03e86aa7e5b4e6eb7d427a81a9f929f5f9ece5d6e473754331b602f1074f9e83877b60f0d01b73a5caf6e833787d3ac9dd1633727134c6c868b253679fbe66456670401663c108a416c5c3e996187273ebb4a8bd991b122c8749859337cf85c6b5c19150f521c76c2d0293327661e3693e4bdda89765a7942acec8537c7af939bcbc9d3d9dde1e00cea5a0d13ebfd7a7e7e71beb864af50e36d25c48cb56cbe2b70705ca9e09e8dded1e5334b30d6dd92209482d048bab4b60cc51ccdf1d16312106323a40f0d30324f0e9c8b14857bc16b64115295656e5ddeeeeee3fbd7833303d6667e340792fffcc96172d8ac6bf1d0930be6412458caa4f97a7e73bab52121255d4defa38f4c76e79ba257a3b2f7f7067f6cf08c711ddbc8440b0444e88a676fb8090a72c2ce7e7e747973791c5fb64c10b91da36f17b16545cb33074a586f547650ebe3d0a6c8cb5502f009fa5e84d8848196b518f99485ae994e0573b72ea6edf0f7f5e27e6ec24e3c5ebde40ccb9f90a6254f3acbb3ecdd3d2c195212542811504355bfbc1c9f4bd963367e8790fbb9094ae6f5eeeade889ebd3a9946ca9e1cf087d591148b8c4df59e12b6c87c2a229ab4bd99adfd7b97de9fafee2faffc7bc9b1c1db3d43440413204aa1420a1d79b24e221302a3364640043d520a64c8a22143865878e57e765d9fba9f9c1e001c0b10b271c0bf66c127df9ba1e0a0120dc8f26c88219318d5faa8fc5b2b860e155f6a1f17ba4f49a7cc2178ddd12273faf5f4d634fdfe70ca2419daf4a5c3a571cee9f4f0f6fce47478bd7474de1ae79e9d0dec831a1217e8f5e4edc35a47b10689e78bd7e3ebdcb09fb34d4951716519a96ba9a22f13efa32f4271ce8e381939050a94d16e4f732fcdf46d672249175db8500943ab0615499e11e3e343a6cccd3f6ed254794262912024be9c6eafe7ceceb7e74763a8ecabb34db6feb08ef80b74794e3741cf50b8f47a6c8dc44197b8320f0bbd39277466b4aa80cc2a2e4b31485962f125d931b133edb0643b3c7464bb54d4d77de20c9fb620e5c2fc78746454aa191a2e67184d05fb48fe26e322dc9c2a6af740ce3a14b433082e5aced5e575747f7d7e34c83b393e9e5dde1d2a6616d75860d8fdb415495393470c1d3365ccd0f071334d0d90a19eb93e1d1d5d1d63218f52e29c578b0cf793d3edfcfeecf46485c48d666d2957792e6707e7f109fa3544a31e9b6c83c19b986116a68271a23625d69a74948d6c206133eefbc3c2658f97cd789f54b019e241815338c608a8928915d20215f670138f09da96badb12d0a542860a1179aa4f422abf1cdf7ba465f7ab3bd7d1d5d5303af9fa6090e674431c76d406134972a44ee4c7526ec6c7f49d45e69255f2de8a3bff7639b0604420a16150a0a64f2c98094feb94cbc9b359ded110311276bae2b5fde93619bbc807cac58aa382c3ea003aaf39bc402f19a5fa44e8fb9955f6a2113befdeb6c83494bad8f9a05907357ea3ef688980947872bcde9fdf9d8f0eaecececec737857d8091423cb36d380a156ecf768a868b2ad72512b9dd5df85b1fe5082f06cc4c7b43385a38efbc353973eea110ebd4a609a41a4b1f122ec14a7bc9925ea2b4d74a7a7d69af5ada2b4afb0f2ff56120dc96021e76c4670b3860b26639ff000000000000000000203888a0b5862ac132c9247ba44f2803fa2b5ca6945292290967263e7a3ac3c7d292b69899f874dd034a890b460b660b5848a4601272f7ba9aa23f47170583be38c14bc55030b89656d5bab81de6138cd99aa7ab362c4f3c2718a2279524bc6991e55d138c95f54b969dfe139b31c1e42d1e23ceb304a3be9ac9959020925a09a61cbac3895c9fe7528545124c3144828a079151a3a338b0408229c5c9d192104dcc78e408a6f82947df82c9c9f763610453c57b509ffa538e4e716351048376d079d1ec8a2516221874cad5b13ab9433008114f5aec87bda4240493504a7a52cf12c12e884510cc152274e2ea9b2775620104833275674a971e8b1f98ac57edaacda2ef5eb0f081299a286d2a72acc7cff7c01417823c0bfb9096837860d0bf7142457d1071da8db5479758ecc094c233c5f6b4c88e150b1d18c4d642ca6afbf9925a0880450e0c138229212fdc4faa100f608103939a480957e1d467d7c90d4cb59ef34185903b45e8c6da6e000b1b983fc5912823fd83188b1a9c727f87dd18c082068638bae689a0dd9f01753b7a7881c50ccce926849c2e6ca82fbd0c16a1a3fe3130b796d07516229f92390c4c9b7596a3a2be72ca0bcc232a6a77b00e162e30958f3cd37a762bcc571dff2fa7c97959b3c2209f21e164ed52e494559872466c91a42eaa30a55c9f954f6364e43915060b2ae949f51715a60822defb5ee5d2e79ec2f097f63ec68ed027b2a630a5c7bde41cb654aba530c729953cccc7b8539514299d248c0c99e8288cbe9fe3a8e7d927898ac294cba2a893382ee2cb5018cc74bae413425018477665ff24ac6e7cf209535748a124ec8709fd3c61d6c8713beb799d30565ccbc585d6db0e27cc59155494af376112b25b427725b92b9b264cb295b66dd5bfeb59264c97dd72ba9160c2542592e454c242b25cc220d7c2afcb762ef70a86258c152abf8f142daa2d189530dc67e5a8332182b61e0625cca3e5a49e92378dc6160958400e08f03d40033600700718933004f7a4bdc635b2c88b36010f1bcfa39f0b1b5f7883e0b9b0914347dd146048829c7ecd839e981dc1d5489892f8eb56f70816b2bfb126051890d0f38e8498277c80066c388c4798adb288d295ba7a5f32188e30cca9b57f948b9576bbb1c64d80d108b367a8e8f9b763ace6e907188c30895e4a42be87e5fa2cf7006311a6adf0b69f72deffab7d80a108a35d0ed111e762c7871371082285e9b987787a808108c368b1de6f135eae1dc220b3b24714f9fe3cd1c5018621cc22736c3da4f02fa586510893afc9aa183ae4ecb1f5020621c83f976e3a07e5780aac00c6200ce6977bf64a55de594cf00fc801811a3576d4a8712400468021084e6f25a54bf221ab761b3644d0851af3b801231086a05ece44d2b21fdff622fd04746c41430b1a34b4a0d183043abe0b1c5be0d8f12490000d2d68ecf81e24d031011a5ad0d8a103c78e2f0104bee808d4a8f1457b71070310d8d9c59b687d631571c0f883b954506e5f7fbb9383e7872ef6f70795beb1763660f4c1bc69a234cffe478ecf07d38eda5832f32c2fb97901c61e4cba649b2a4bb90bbb2d01861e4c9d9a672f228838f25905d09f0007026a60808616341c40817f04a0dfe23e01230f251922f4c2d5bbc97b478f13181a5ad0e8a143c7041cd0df801d5d38002b01030f269523fe662f4c811a3508c3b883397574136b713b18dcc54578887332e75407f3e7b1990b4187f21c3a18e2c595ce73771feb1c4c4256b64e3f1f66747230db768a8bf51cfdd4c7c13c17febae7b3e90f076307b5513a59c4adfd06d34e36af10f2e9ec6e3046f82cdab73eccb66d3095578532e929a90f223618258accf9a9f81acc7972d8b353ba1accffd1f2c8e51445f3930653794a626eab838cdc4183796bc7939cafd2bd9d33182ec67c82ba3439e46d0673b23857a573e8d5b4cb804a1b3f49e26b3218f554e6888e1cd94b63308f3cdf905d23f3178341ed5a18254416996c180c4a25cd4fce382194050ca676bb0e398faf6ae90b46d7d832a5478afa9117cc79b2c57acc5d3025b7525d8b583a86cc05f327bfb5f93c420595dd82b13346a739a1546abb5a30bf5f58f9cc8b8ce066410f7672469e140ba6e029afc6dbaf949e57307c4cd351c2c9ebcba5150c62be2cafa54913bdac8249c893a8aaf615673c2a184d7b9fea60a32d4b53307d9e73f98e935e7529984fa5fc26529470c28c82c953c99df110c5a38750305cccb211e2e113ccfffa251e459ee524271873dda487e734c1204bea6b67bddf289990106b422b8d8e2cc110f2055d152c4a30ac7dda4b1b2a847f2f09c6efaf58f11e120ca25dd2f7c6e4ed4730f657ba112239239892e6665efce94f112b824974d0ae9e9a11c1d42929ed54c25ff20cc1f47b6e4acc9cde14152118bfb2cde50ae91d67100cb9940e3e52e4aa088160162d2965b6d69fb08a00307e604a218930953ef78129fe693d97f3afb4248c1e9884bb76f62b49c9c4c90373c812c1d2a7e00e4c9eaff5724cc9ff6c307460103971f3a554fef6ac0134b4a0a1801d10e81e7d801a35409003075701460ef40fd95ff63e400336540003075ff40eebb9acb1d11e04397a878d1c38ba470e12e8e8c2c67321821ddf858d2302cf018c1b242b65fc93122d790cc0b081e9b582a84beb3bad491060d4c0a03ebafdae8b7fc76a61d0c07c92f652ca698d8a2d1360ccc09446746ddd8eb25d930c0cb7b67d1f849254b9533609306260503ba9aaac2e899a8b04183030884e2a95d26684f0db0b4c15a7b11ed242e4a0b35780e102f36755935dc2a27bbab9ad30a78dfc67a5b424e5312b4cd9f62f97c49812f92acc39ccc87dcce98e15aac2b462765a4743c208a5c290cb739655a7fb18175c549872fc54082195a404356ae8290cb21723b3f552358569eb556e4b7a55ed9f6c7cd5a8d1858dfff48f001a5ad0e051021c7d012dbad0b103013b1e049da31df08f802e1c03356a2c20ae2885f97c72faf8f942b4a02285497d1821b1cc83b6cfed08578cc2b813fcd4449c38ee51235c210a73090b229e7616436190144bb35a65245c8652b80214e628ba3f75ee49b510ff84b9bc240899cd0c25929e30ac96525abe2de5254f27cc397dd0a7d529274cf162e8734f124d271fe5681b39fab970b64d18436d2fc90f21e998b4260c97d5b7c2d2aaa98bba842b32618ef6e13f6af4059557095760c294539a4d13425c842b2e61525e9a3a3a55fab7a759b8c21226955dcff4055d3535b512269146d5ebaa851226fd576b2a9f49187ba49b99bc142ffcc4c2159230772e6941fbd7ac531f099325a5be4d4abab8d84615ae8084313654d6cd514955ec6801356af85b808708bc776c51a3060f230fd0800d0010e28a4798bac3b8860599ea2ef9c0158e3088a99d2423c628fff9025734c2f4eb56e5124578929d1b6b3dae608429855816a1f3ddc8f2dc582317832b16610ad9e547a9943bed8204cc822b1461eeae538f7ff71957bab18628b82211e6bedd8f90d5e269e86eacf5d0b157872b1061923a71749095612a9243987467af1044929643d06c7cb1a347aae20a4398b7477caaefcffe272e8441b86959f5f8c939b31b6b3dda86a6e00a4228d2735b12a5bb1b6b5c70a1c30b1b3c78bc7b9b29ae1884b9f344ae1439ffc9846facd9e0d1655f70c1456f11811a354a7185200c415ed27d22220a5c1108c3876fd17e19b1d4f3c6161a5b2420f537a0468d275c010873ae7c1331b34be911fec138f6337a828bf610d47e3046ea64fa29265462da07d42c6fa70e7e4ae3e23411aee083692ed583f4b8942edc7b30879c903c4a08d183f94b857b8fd3edbb7f1e4cda1569eb42d6bee4783064fbf05b7fadde97bf83d16285d3365953b28bec600a9743f4b6489fb3c33a98949bd565cf5fed7ae96048d7b66fd9a125486e0e46bd8aa77e527938219283e17ff372529e8e83f9e2e9fc883f612e5970305ec9538babe1ef137c83b174e6f2a275bae9a41b4cbfdabb9b316a83212513aad49a36e533b2c1a09dc644eaa5b8d36b0d464996ea433c91a46c440de658a974aef72cdfa34b83b9442a51b63616dff468305c5cd90ffa277b083a8339853f2155fd4e5c7acd60ccd5ed2caa5265309ce98a6f79749e9b1432b82ae2dd1b6b5ff47862822bc66034979c37f22589c12c96479c10b19db28704a4d029948c8f084206140cb27f7772c7ce9f731810329e20c30926f3aca623d596a4d66eacb1518009874046138c554a572a1572bfe32c7f90c104535b7965bd306e1f642cc1302a2c88f46bde3bf7191f6428c194a7e3ec5972affe6df0e81dedc51564242106329060320922af2e3f4dec5be0e81e3c76fce9e2bb38d382469193710473fcbbace66e1f1e6418c168e2474c9b24d51fed0e328a60fa906acf279fecdb12110c7ae4aaeecf425cca3286600cddb95f820ef3923c4230ac95c75b0bf390c31204b3b5cba5d8f719f7612018cf6c2309eb170134b4480be8e127e307a6fbd87bd92e88c30e327c602c513a978e909054f63d30a89130b2f289e738e18141d73a8ffc24e722a71d18cbf3049194fac35ea2037387d1b35a2d2a6d4b72601ea919caaa351c983ea519d1feed263adfc01064eb7825211e17731b183ca78b0d8f5d0dccd94594fabd34309cacbba06fa46791e10c0caab3b4efad1d326460fcf6be58f3ef545bc16102336604c88881216778c5c8697f5e080c8c3d774273c54656fe1065bcc0244c64af12f9c87081c1aae6923a99d9e1d456982296b6e490c30a9355fe8813d452ed96ab3048483342efd5b7548da88a549556d1b626a6c2d439a95042f5d49cffa83059dcfcca5c11e2290c32ec2aa4cd5df8096ca01ccf833786294cc12ca7cdddb414c63cd95ef1a6d327511d2106294661180d197777a5a395e25d38066ad450440c511825eb04d92572f4c9a11b6bff3bbc28d68563e07b90c0ff04a64c11023142613209a707854946eab0a6442bab225388f109b3cb05ad4a26ead2493db19b4e2197ec3b616c4daf55c96281420c4e98747dd58cd2253343ba0963f795d80fa2eb6be1136268822452b8b2781e2b419950745a758a234f898809730aeea1747c5c0fe25fc2906dc6ea5ea4ff992c61d2d12e5c55c995305ecea96add4e74dc4f09939e97dfdf8626610a1e39fcbd3e92c8a47f679746b2be982146248c935228253e6748187c3ed98f4e9a0bfd89428c4798dbe34b1292ec4245df11c650334fb247c94efa75428c4698da46ad8d36734f2a887488a07b9cdd692006238c2eae752a27890e50a3468d1a685788b108734b5222928aa71eb65684f1526b4dca1cd9a9d644982efd5b3c7513d5fa9210031106c9b172481833bd2b32310e61f0ff7c2294e5b0081e433c26827d5c575a0feaaf1e3ab8e06187188530e938418451397b47c59810a60b6d4b1f97a2112dc508310661c849f68265492ab9ce2a08a3e75f54798ff12046200cb37315dfa793a9f7d8056200c2e8a2ee3ddd2cc7d2e40131feb0c60975ba4b444410c30f861fcdeec6da8d187d30ce87fb9423ec08bbfbc6da0e1b5fa47be898408f13fc03be477781a3070f630400ab88c1074b567ff352e31b6bf682187b30da87aba45352e5b3bf0d1e8c7218c4050974dca0c001201031f46090107432a53dc80ddd8322461e7c4f3aef43eeb630b9b1b66636888107f368e4e892d4277f11ad20c61dcce1d1dfe57b4e6a667882187630483797370916398d72e04828070e04d4c194c3a99c8208a573485a3a1853677d44b44acfa9973ac498834164ed3d9d235247109183b94604fd154fbde932c5c194738e7cb784f8dec12ec4808329c7cccb69f14556796f307b7cf79c9e724ebec80d46f5caf2f0b16d31526b8349da75de7faf5cd0930b31d86052f5d00bde262c7e5e0931d660509fd4e3615a39c4500312438b9067b6ded120461a6a4fa5a4447b4b7a0f10e4782e6010030d472ac619d294cf61277c237e7610c30ca60e117bfd267a75a84b885186830a4dadf2bfd1a7d55d0b6290a1647f69963e5945c7f08de80ffe9918ececfd8f929379506d1852ab97abec5d7da4090c6f5cbecb8594bd797de1cfa3feb3262fac2e41e7eff5092b972e1c29ee2d54c98bab3117f490d4571234a265bb05c3d3b253f2fc045f0bfe999f8820bf237f380b082d1f4d9d0e2198fe60812d65f22d4231ae602c7b4bcfd9292b98941e15b467c4522a99aa60d6d3e92e04a542057388a35cff56e5ae379b82295c37237d38dffa48c190f347dc940a8a822946d80a6e22f44beea160be51db3316cd94d0d21b623c0107319c60326fc99eef395ba88e85184db0bde7f304393b2fc16183d0d82201f9a76d08319860d2b183443511a5a39fe783184b30884b6db995cc277b4409863c3aa74991922418b383b8139f216e2d68d68618483027117daa9652c9aedc9f66438c231894f02444949e0f3ae7948c218611cc9d8475bedd12a5972b82b9e2e88897d3d32b23221874c3db3cfc6ac6728660dabad95f8d07cad1673b9edc076208c1a07dc1929912ea95525bc02146100c9ff541c78f5da7d8d5a85187861840305b8920e14290d221c60f4c72cdf672c5d907a68f7929d57c8aa4538a24460f4c7e2be2dd4ac886509d9d21060f4cead343ce17373dc6b30373faaceec81632365a1d182d9a9b678b73803c156d940e2e0e8c13563be97cd7e1647a03530c4f272a9d7ac956316c60fc37cb9f54d587b6a8ac21460dcc953e88975041c6c24203a367f9fc16ff526f893cbe7806ccc0142dafb8c646b660111c9c83183230e68e12563a54909aa2189882509a19228fb00ec1c0541d227e3a9d525feb179882baf390dc1e3227f720860b0ca956f7ebe248ccc9550fb0688559ddd6f74f27e74b2a2b4c979407511a5b5edbaec21442bad22f3de5a92b2c54614e53f348b52aba334a45d9234976f932b1568d6413432479d51de33110e4c0f1052acbf3a2bb20890a83526941247d0e038816b03885299555b6db89912282f24c61129d537b63ad460d2fbae81e3cbe0b1c3ec0a214a60b92ad334dcaa90eefc08214e6c83f3a92103be6efd0916c142660310ad39c4a1d940a9797272a0a833a1ddf77fb9f5c2ae60116a1300525daa64e3f8a380b288cf1f751f485c625a1fd84415ae5ae0e7b62d7a3270cc2cdba52ded351e1914e182f85b56c49a4bb146e4e18f672504b177d73e26201169b30c8b192b07f592b445e13a6ddf8645bb721724a26cc725b93f49c0813e657b5eb1823bf8449a4e0e1e73d39c7e69630e5aeb120a33b953059d893cb13dd74870a254c29fe23c2778d04b14cc2dc7e7a84e5902209d3af95bb86860e7f72248cb1ea3fe341c6f8a5903075aa2f91c5935508e7238cb27e4af4427d3891748469f5ee73772c35da848d30debfdbe7f3ffa442648449769814a27cb808c3e5cfc8a2d2a4b05a11c6f22d952db9ad3193441882ace9b14822275d4384a9a3658818c9e4f46602342fbce81d17c0e210c693a462dd64b18b4b328421042dad8a932aabf48530d5c7f0fc2716ec8105214c2731fb7398322de1340873f8fed0fd2426249604610e9697a37aef93caf94098d54e980e39248f693f200c425b580f1f2e9e96d11f4c29f67b0ef9247bbefbc1a4f4c4939daa4e317a1f0e651ef9ed540e1f8c1f22765bd0e693e7b307738a63e3e943f2dfbff560b2f9d329ded5a411771e4cea428488a3e3a2dc8c07738afe14fbef1d4c1d714fa5dc579fdadac1a412a295905e1d4c5f7522477577874be9606aadb0881daee3b639b82a2337de55cac1e89692fe628e7130076516fd6425f73c41389874d8d43499923718b44d302d0f42cbe26e30c5bea02fdfb89ed2b13698ed72593ae1b3c1a45397ba5241ab42556b3068adda8d282535984358d0419a9ad260caa66dd4a8b5d2a5f368308790e287ada03a437f06a34bac8e1227798e1d3283517ce48ee90ca11f4365305834ed37aaf28af090c1f8a7de166f7112631f83c942e9d31b135176e2623076048d1462a7ade3270ce60a1dc5635eacaa7bc0600e2db16cc553be60902de6a7922e3bf4e285ef73502f8b93d205e30555a96cb428ed12e682f12268dd9efe99f7ba05b3a65cf2a8168cdfb96e827e05259e66c11c3d9c1c257450215b120be6cb693e8e88a0bd4f57307e8a69e333e6398eace0a59215ac8269756b35438c5430cbe7c94acab5ce5c320563ad08119e4a870175e7521374295d26239852a470f2a972da7f8f10338a60881e5252a5e141a51421824167bc4de725f1fddb0ec1782aa8a576748fac62206608c194739025d73e580afa0b82a92f4554f90fd9c2c3c4c30c20183b7b92f629e2d9ce7287193f30049b4971b7527698f498e103b3a43cadcfd1a7f5c0a026e9b4744ebb134c623c767ceac231b08669060f4c76214a122d2e232abc03f37cfa780b4ba1f4a81cc0e31f013374609265a37739e50a3aea1e2c81193930576878ec08156e253a03072691ac54791a353952e4c69a6a60c60dcca3f2798cf09c3de5940dae2a6dee772baeee0b66d4c068e1936c5bd1becfa08139c9ae60a97a3c2bfd1b6b5c80193388c00c19184fe4e2e3b97da3ca6a30230666716f995c9725dbd11b6b33606092cb1eb774f690fd7cc60b8c22badafbf29668d1de5811cc7081a95d3be98eacb394ea8db51d3bde8617ddc5968f56184d282bb9eaa3e25bc50a634853c143d28ef4e62a8c7d2d22e72aad4ae2518569c44bce2a1d6f6c0b3e5261541317c324e959f85161942c2729671d713e3f0f74c0c7292ad9f03275d22484cf14dcc685acac4fdcca21010f1ba51408a971a2a1931c3abce0f13b36021fa430ff880ff126a31b6b370a8312252b7f4e42e98fc3060f1eefa230f8c6fb8be6cb88e7c8053e4261bed4cf722983e2e313e61acffff7f05beab3c08727cca152c497aaf764d2d1a3138609f9d3a8f025c134b243c70dcfd1bfa3b6f8e084393444deea8a3979f2268c617d62354e67f94ad28421bfc6e556e464c2dc7d525298aa7c60c22c4aae28afa41347aa1f97307e5db6b85b09dae2f86109e3ff89be6eed955815013e2a61b4f81b3a69f549ba526af8a084f95d728a11e592df46933079769ecae92e3f5b2e0963d707f959258ab28f7c44c23ca35791eb4de9bcd38641c21c2ef9bf87f059dfebc7230e32ac5f82ca5c13a0a1058d92000d2d6854046844a00134b8f0a20b1cea840f47984bd7d68eb8bd86d4bb700ce8033460a3031f8d30b65cc7916295e4371270e1c50e12f0b08186810f4618f277d985fc419929a97f2cc26aa8220cda9350493bc53c78bcebd8e1c5e6e5f8488461d74bc9a8f8dc584684d94e2e4ad0a6bb26e14398de93ee0a2a28e1e8b1e3bd78147c18c25456e16d3372920ef1011ab0f11f8530b585a04b43b6f6775ea3468d1a1f8448f4be4448c127770e71a143013916d0aa83307aaefd1d2dcd57333fd930534198dec28474ad1667723a1f8130b5df4949bd925dbf037c00c258db41753daee7ddee051f7f308c1042a69a6d77288b1fccbf15524f98143fa7dc0743ca21dc798e9fd016f7830fa63c37697b29a7c58e8ec0203ef660ba14469b889eeed1f53f7ce8c1f49344eaeb2821c89fe4c178b9cb5d440c254ef7783007ad8873275952f4ca1d0c4a6497ef28f53d1edbc130673956e44b2f77a80e652d2b756f29a18339695fd1396484939e1ee1630ea64b93b4735baecdbb18e1430ee612225f3b7f1f0773a498a53eef5444933fe060f8542a8b9a4afa7883f954bc744a9258ed5a6e3079597a4bf2464dac9036988245762d1d357445fb60836964e2a4686a5d8339479ddbcbf5d9326b143ed4603aa1234793781662ef1cf84883413e79a77cab3fd0604e253da8092af984f2fc0e1b7a06d3c5ade8bd143ad2456fac35caf120681b5e90004bf06106d3e95cf2a4954952a674634d043cba878df7e6c28bb21d1f6530c50affcaf3171f64309797f0f879e11b6b3a90198f8f311846d4c7be20efb3fbb2a103151583f97a269b92b1304934b4c851000cc0243ec26038d31eb91f362fe85b078e1d1f011a5b3480468d1a3a840f30987c2785d22d3bbe12d43d7c7cc110f7c2943851f942f8797c17fd001a5b3480860d8bc387174c952c6469e7a0ba2ffbd105e3a7b6f554ca37cfe41d383a024a870f2e18afdc734a6a292553e316ccff7e71167629c287168c122ed5a949121f1121c24716cc15222471fbb62043887c60c13cb982f0101d2350f8b882a95d62e57153614fb7563069d7117d13e27ca9520a1f5530f9690f21874a973545543099bf9c9c9c2b4aa54ff8988269e25ffe12e2933abb26f021858f2898a458aa533fca6289a41b6b3b74d8409f03043878e0b1e0030aa64e2da9b4f57dd6f9041f4f30a53c2957ae36a13d3674a0fd708229749494448793b6b3d2d082c6174887011204de71e8b0008f05d4a8d1859f203f9a60d09ff9d3fd25ab9ba23f3876388f3f808d44f2880f26983b5629931b25f946b51f4b30a81c43e469c7fca44765fc5082c9e2f2c5889f8475f84882b92e24b5dcdea960b91e3a729479f181049310623d9e93fea823f03b74f4a000311ea5011f4730a98f3e962d8bbb684307b24cc187114c7bcacb667456df454530490e0b696f75b72e4404833ed966219f1abf8a0fc19c42658fd1e611824185fea0c5a4afe54e0982616fc4c265e99df50804735c9e48c97a2de411fec09c5223599a087d604ef2828cda50a683457a608eb1ca5fc92e767c8d079616b714f53f31733b30a95f8b1fcfaef5d24907c6919474ecb460d9efc941a6b516bfbe2b0e4c7fd2fcbeecf34d8adcc070eaaee26f9f0d8cf9afb5124ffba881399250f22a7f88149312820f1a98d7fc734c9aaba4f10c4c227c4e32b242a4754906e690153f25ce7d68d1c7c094c35edc8abf15230cccef9e5c4fe78b4ba117982d796c8a851631f5870b0c22a89c374b454ec8b5c23c222811469aeed30cb1c21cb1b2794a56c25598bf3ee8989f1a91bb2a8ceb29ca937852613e4b5125ee1f920aa2c2186ae62aebb8597cc77011324e61f6bdea709dc42d45dc14e6eaf09cd7a374e44b6112a95f218acfa430f65cda2f3da3def351184290f122d27fffd4a230a7d52993152ba130881cff57b93ea030ba998e6b6341c9b4fb1366d1a1fbf57390b4e1f18449f5560a5d2e3ae9eb74c260baba84caa9fc3671c2a0ea45e524ab77a7df8439a89ddc9dab2d3c85104d98e3f8089dc273afe49d09c37b28397d95d24f4230e1460e132388cf25cca923e4b0a0748dd21f199630b8e9946f361aef7657c238a9c34347d5be2837254c7faaa35932599d634fc214644bd8ff9f4f12269170c2ad7ba4fed79130eb89ff526921f5030953be702122c9ce0b9e4718e2e8249224fdfb63298e30ff896ca9741d5d6a8449ee4594522346183c558e7c851661081edeb5659e3fed8a30564cf33bcbed24728724c2745ae596c404adea4184c93bbe7f2a5b1b911ec2a08377cc4e423684e9f2a997d0d12a84f92f4ed4a3c5843057e4fb0e677263d51b84498533f19ce4e708f70ac25c753ea2e2c6743e3710e6daf8dc21adc6563f0808e37508f221e90f4693202a7512f283f97c74d21f6ced8329747e56c9af5d31950fa6ce23a478db9bebbe0753c5518b254ae8a75b0fa6d8c1d42759b9a794cc8369de847dca93e4a960e2c19c4ccb7ed97de5b9ffee60ec53c927256d6aafa51d4ceaaf77c682276da9ac8339a4895f72176dee847430e5c837298bce1d849eccc114d23aed377454891294832148cd4fe625dd4742e260ee7d5dffcf8b5d8fc0c19093909a1d695b525932de601e75e15bcb5344b0b8c1f09d73979a8aa7d45e1b8ce673ff39a6889ece06f3cb5e5e894e3afd5e8341eebd291d655383d9c2646ee4cae5da731a4c69dd46f79af26ca6a1c19046db625bce190c62923ce4ef9c0c3398e32ae7919c97b3540683482aaffb711e222ddc62ad70d1af001964308d043f9d5fec3a895122648cc15c59ed4f05a1db820c319872774ddc8fe623b475632dbfe0c20b2f0a40430b1a480bc6828c3098f46277e5b978d12b1a4206184c97bd1a725627076dfa82413e27a9cdf25c924d5e307c2edb51f1b8f6dd77c1f8de5a5b4995a874295c30e514427b12ddab96f1164ca1e4838ede6ac124aca2052126b1fa94852479b04fb145820553451795e2ac5730440be925474d47afad609020749210b3537cb26454c17039f8640962ca42c8a08239e5702982acd8e1fd9a82b9c22b6771315d8f3f2126430ac63a71fdf994eeb8110593d8b85e014e3079909436e7612a9b3161004d30c51d1d422c87485f6282e92fc892119f2cbadf4b307a5ecd519d72b4328b120c51cc2df4fb44ca7149a06c1206900463ec49c9266f6762e891602cd12997a89096abe5110c7272bffd11c47a6446305879c8f57da90afa225b184011cc92d2fd7dfe20523fc8b6e8c20088705bf8d0d4164b6ea191b5d672e920e4979b36520b0318823969991849fbbfa52b0463279d83a78ebba4213e20870d0bc20082601cf98991d2c8895a028241e417db0fd1564efc83b25ac5a7d0fbc09c3cb6797e244b91ed814189ef286adf6523e48179df548a07dd799ba41d182fb4ece77e55fc8f0e0cf953eed2d35953cc411e822ee171e1e3c01c3b744e7bf737304d0e4bafba6aed3936286526077d3ea31a9862ed487b0bd7d326a281494452724da5e81c159a81f14bc7d251bb0ccc5f1f7b556d649f31307fd4d5391564a5b06160f08ba14ba808c2e2fb02a35687d5f37c002e30953871fb37d127ecad30769edca6d266854187f6856dbc0ad3488a99dca2e2ac558571545caef64f5548a6c2e4a2e48448db41c52af6f93f57be4f6112b1d2ffdde7ce256a539855dfae539e54123e5d0a53ad79b8527293c2dca2a27efc1c224a4a8fc29893b2de84dfed50b6280c2986462cd39d454ca130870ef7b2e0f96f72406136bb345e2594da5ccb274cef236af393d44ea478c2f0c1821e9994455448e98441a9f0ee394b0a274cf92fcda838efa1beb209c3bba5251d945ac4ad68c22c5aef3ceb6799c54a268ca6dfd42e29b9ae58c1846194671142bce4f0fd254c41d37f2ca8c66f2459c214748edd398bb4380b1762fd08ff4f3353c2f8aa6a1d2329040bf3240cfe12f363e3920a419684e162a76caa5eb17ac291309912f15dc3235bf81812860bb13816ec742c8b1f61d222f2eef3e408435609f61ea993a852230c16dd25feea9e6a9f11e61fa1ea6b72c783d02ec2203a7ad839f364f25e4518fe653ddffa43c3dd4498c2c4599d9431a5cb4584715452a9b3561752b88730d8a57ee9d5d61086145b2985b41c93b32d8449e708274c79d0febe12c2a4f2474aea2d473a910ec22cba39e2bc23493f5510c6c86e2b9e2a64f244036110d1e4469831cf335140182de682d8b6f60fa6b6f03449dcc80ef9f483b984d49895ad20ddcb3e9842d27921aac48a9f4a3e9823b6bf5adcde149d3d9883487f7711bb9453f4604862be229dcc0961e6c19c3f5965473c18cfc3a98bc94f79237807639a5f7648c8e397a11d904d95333d49753008978f5795c62708d1c17869497229f51cccf943f6d327a4a4549183f14eb5a798eced118d83f153963111e12c69110ea62fab14e9cbbcb284bcc13c93d42acfc5ae3fe206c3851816f936d2064350a574a98b3c33a163832958790ea14bdd94caad01a991267b58530de6c83a1ed354c8e4d4a5c1e46149084b8b7b6a1d1a8c2eb2522557a989d219cc7f21ec8fceddb94e6630e6a92c49e7b7329864fa6d65a6c75a6d6430a71493d8358fc1fcc952477b4c4447c560dc94946e72ec6a430b8341553a91f662c8581e0c26757b5ae94aeaf65f30755db0b498f3b8b7bc60502ff51265ffd7c2ea82494650ff4999c829decf05834512395a5e3b82e95b3066c868881c9a133ca405738ed21663d74ec7cbc98249445a497bd1964d88b16092794aef437eaf6094904ce2bc6b5fa7d20a46c9df92528ba9312dab60eab05927f2e323164917644105d3876cc95c4e54bc3e8b291845ee9216ebd10ebad32ca460f69593a5cb3f28213100caf105403422d0001a35c8220aa6ecd1ae25bf8eec78765b88c8020a869871bfb6236bc3ab2f76f428c32c9e60f00febf73e2a5ba465e10443da51a1956dd4832c9a604822bcf80811130c4a540ee3b1d6a3bd5d8241de7ef6d02d1b7f5109a62c59fdb72d3de53625c1602947aca9899060b4546deff2bf114e7e0493704f72230975e26e378229e71cf259efcc887d8a60cafd39648dd6ab143e4430a5a57d4fa73b4330e564b99cbc3d65792c04b3bbe73da1d4841a4f8360ce4b71a52a4030f9eadffe686bb5347f60ca19297d2f89f8c0a069b2dcd3e57a600e5e2a5facf579600aba4c96ade8d093dd81c12bc91acbf724433b1d98bb46eaff27496a947260d2f67b425d0e07c67f7513359a657183c7b2a6894af690ef6cb0dea914248b7976bfb2a88121450817d652d448514d411634306584cbbf084a5db2ec0bb29881c17772faf330274ffc5f642103f358f474b2a388f46db9b1c603cf1fa0070ef43bb4f042c78e03e480000d2d26308105d4a851a3c604fe1170a3078e0b70d17f000128228b18a46a279e4ddadfce8d351b3a7ae4a12c607064f70d331174632d79f0b0a105270f0a940c64f102434e62dc24d876638d0767e102a3e914d5cdfebf11a156a87d9f7b151edf581bc16b4163c7dfe801011a5b3480c608cc17bd634701fcbda0000946f0356a8460062b4c4a7efb2c8652934c5c8579b6e2ff5e3354910ad35f3c957ac4dd09a5468541f46c46da18257ccd53982bdc25c83931a2349c610af3bea62725af2324e929852987fc9e256875381df504334861a9f2bcb6bc1c842698318a19a230e734f9c48cd47a3c08f6023342614e9db7f3271f14e6bd942deb2de413661dcb16dfc2344d893c61cc7cfff4671f3c5def84f12e87349355941a9dc3094354c922eec7b309b389870efa7efe25c59a3059dcfcb130aa1b6b99b0c4d6b9e5951e13e6ef9ded1c13533cfd4b182ced77de726dd321b28429a4dc0f693f4e5f863ca53cefe4bccd296138a12a7de5e593305a507d5ebe163bff918459af35e3e35f2261501e21c849b6a792a840c22831448824ae62a9e83ec22ceadd7be25ce8f6d61126b390639f291193531b614a75724f6ba7f46a29230c32ebe15d2bf5c73417611e89d97aa72574e4104518943e75a5d55252962e1106c95b92364c4384b15723c8f3d3e1c17208e38790f75264e7d3a921cc218a4eead8c1198530769d86a569cae530cd2084e982ceea15c672d609076130cfeab6594b93f45160862048212a4be9190863f87b0a7a654ac9c9ce0084f122667ac59a90197f30e828a5ed9ed95fe6fbc160657d624b7f8e65731f4cef12ee3f25970f26113cc7b896ac21f73d18553c64df10662ac976861eccdd1e3ce4197930fd6e5b441bd992468c72bc1714d81d3dbc203766e0418b6b5b79e4edb5c98b1977b01a29986107ab813966d4c16ae8984187e2c79b7eaa700e860bf22554528a22fe1972b01a33e2706c51ea4924d310cde060ba1e3531ff2d4ff2bcb156a386e7f88207022640234b0733def0be88fea42484bc61861bd013419b2767b4c1f4b2fb1f5e2da227a833d860353a30630da62c6b4ae7278c52665283313fcedf7666821a1bd3f08b1875515e4668308c9cf3d79aa033984f8f8bd2a58268eda419663028091f43ceb76f6f2f83b93762ff884f93c1a0b5732499c7dfc5790cc6f3f4274f75cab5368bc19453c5cb49a9f822aa0d8371763f7a9e795239533098bb4c55ea6096effaf20573e512d1d091226c985e30575d361dae2745ea60170c1efc47d45b18651d2e98f2d54b2ecf4c0bf25d02666cc154bacfb2c81dabd59016ccfdfaee9de49c05934ac9f553d01a16cc99274e575f33ae60cc4b21dff96ba2b84d87195630c5ede828dad28be5e4c69a9a3a6046154c79c447ccce6f67bbdf58332b01ab716006158c3a5b6622a5975bb5dc58b335cc9882393f27f827b911ea34bc1952b883f294e5623b8f83588982713b6ccf86e718bb2414cc17f4bcb6880ce9f1ce788241ae7c0c312125870974d8d8a1c346ef682fbe30c309e6c9e6e145a8970347dfb081fa77dce8614307c2f3c28c2698c4a9ae9b855c5a3f9c85194c307965fda493d87ce87d63cd860e44662cc1705b5e229d50e18103041685194a30e785f4909d82c28c241825e7de2afd29ce938a0b310309e612298f78cfd1a1fa6241cc3882310e8d2aa8545085f260280e07c3c160380cc45029670a031408201038280f0642d1781c6aaaf801140004542c244e28261e1e221a1616180986e150380c0a06c44040200c06834181604038300965b41f56c2ea153c89d25d40e378af05da14354f21aa9ec5cd6562c84a007213799fe15511c2291e270a38b445b9ca036f08e404fb10a81bcde505c5325b60f9656d863cfeea971291dbc036da6bd69c3216b753c99e564a6cfba26d7581b629cabfec69a032fc975b5435869bc190fb866b55a93b3717fd064d20ad58d68fcd75d188a2d412a82b968166e1b5ace373c77f4bcc7fa8eb26fa9bc32d64c8b06fb7b9e4b5936daf47087cb1ba0a5f1bb2d0d9e0a157f198a06384252c00c6ebeb02463a1e34ad9dbbf4f62df0bece31973f97878fde568252db73f2ded43761866481330e1e698427ac9bf030824232edc51994f0706a44873b1de063926b207e1efe1af2f2e0817b6f8c50fd1e0f960d0fb2e7cafb55df08979db4b1e479f1a6fc5d098f82d7de7fef307823dc538011773c39efa837d3fbfe2d06afbcc1bbd9379165f19079b55e40afd9cb566f841804ee20d6c32386f3e0b7b7dcbbf5067bb7fbfbccc65559427b571e20afd5cbe8b5f3ba8bdee7a46fad463d5e2fa157ed0b4cd8501826c0c7ec460cd03c38d4a3e35b8891f9e120085517dc88e0f3266286dc854a0aebc0a05e8ddee33a1ed918c2bbf238f05dca6c21c33b8388bc2abf40c2580717c20e4c8538affadea5c7202c1378433e30a9af3a3020e20147efde46af9d81ebe1a43167ce986fdf7ec8d7cfcdcc00ee6530fedaba00dbc42fa785755c31a40afb389ded60d8466485c67137d5d0e0c64751fad756e3421bc43d8c135f04397c6626c806ac517ac3798f484ae6ca040709fca3b5c6b067196b5546bcdaa4dd4482ece1e6ba7dd3e181512ab208c1d8c1f671739f476ce6103fea293875caa10ee920df4ef5d9442cfa3249b628ffb1320bc508d6acc64b0b315caac3eed4dd8a8f6a0bcb485010ed30fb31fad851847bd63fcc9d107415ab8788b8758f71c356ce4eac21dd6a4b3dc01de14960f4faaaabefc60cbb807948b933c5d3838803bbcb3dc21a92e5a60272ca0d76f72730096803060163194a863779a28907e9c084013660045f9bce248440c466b144d06610810df4c17980f0022adf07aa50a43883f0ff8f085010a82c6044180c46dc247f0097e334adbb5e2ae2e58b43e3bed9ef9035008de68add80d0d22b36899992c033f38eca4f3da1f6aa02b109007521ae88abeaf5fb5cd70ea69cf29aba322e60209444b85100609d24357d3d3137844eeb3d89d1271d37e3cf19d9c0a88460fad5ea9268a93a95c0fe1bf0041071be14e3e9819c6e273c79abb31c68419ff08055fde37f26c3457c2157c86922377744318a13dc6f823cad076c5a9154781138cfad08db0fe205b3ace4f1154e46e3f3876e4ae7fdff63176d0ed2d4cb834e5b314eeb012b707454554f784292bdb229a8d39a09d89d30674bb2081ba4a804db1d4786021a2d4da05fc5e0588c1fafb9a795204c7762a31de2306289b4594197be495a766aeab16802ae10cd0258674b026c3d128dcb3a7590e4fd3d838ff0f940585f7e20014ed352c81ae738fda9bab4cf8c69b89af1c919ed1bdcad8323cc27ac4d4c06bdc9164823812a44aaae8124ebf68632be01e164daefa6e99d40afa6657ef6fd5942a0980377fc9251069aa4b32d9b746c44aca308a83ea05a698a487a83e8eec491d00bf1b16f78ef773606671aef0949a0ddd1309dbd37c0f022510dff887d174193414412fecff7848220a01c5010280514037581ca4039981cb052649cfd4dad594266c5d5ad02d3cb83b4d1fc57df4b4264239819184d71a1d172491ee62f3751e243e72789dcd6a58475fe8542e91eba9d5abf98b6a54c8d0f6d154c9d86e87827d95c5c6fd5ea8063c7f7a85fe1ba05249e2b21c4f4698ace1eea638a49c62ad8e4e1d7206a039b96dc4b6ba172bd7e4a3ec78a386687cf41cbd1021c8daced79163d327a899a8d00f1e7a8349d4b0eb335564f8f8d6d03978a778d46287a34e8ae513ef013472bc57d2155b3c8d1d9f0fea643a6c8eec93b5dd3c4e71a9df85077f901899ecae7a0b361bdda56aa86655a65b1b1ce0b322358439078cf477d5c124fa33f60c427850d6ee109db31b560a37a08421b28cafa440a23f003f30a2ee4610d05d267ba834039e77aa86611e9f44c7453ff23865bda0d09d90cfe96924482b22b7950d867768fffede2e98d9af7a5cb4183803a578f68afa8ad7e43b3fc08e9dc937389c4940781e2025a3354ca44126847e8591781ee193a07499ab4e86de2fcfa3fbb4fa8be4fff7d31db2ea0fa4e27a64b5e27fbe6858829e444d5bdb40d26050c28a21ab6504db59aaa526a324f75098f14362365dc96ce5026cbc2285014afd87043aad0fdea186bee5764f6200637c191117bbdbf4b4d465a36b743f9f5a6302f2d507925f0896f644ad8ad9f9ac4e753d0c61ca1fba3bb35e308525d94c82894b8b04b0b51b03435b195ceea66d8390354984ffd617537c1b47d01f115cb07491308146f6eb084d9071e780a7fd295f3834318288ab385d1a6e1cd0c1d01a15510b02dab98a625d20762f9453f384d2533b9748512d22c11e4e7ee9b337702977595ceb43cf2144bd0a5aa05b4a874cf970f607b2211ce997f97e9c4c92f8cf0da92306215a47c1b3a830b5b9aa393c583f846ac423eebb02f1355d04be40edc5c10d225eecd2189fecd14c2fd006444e327013c1b60dd8266a440578c0a248be24e8c3058311b3bdeb4aab9ea8bc0d73fa94f3edbb41d1425356b34704f6027eafb107749fbc3f9e3fa0de7757320e9b885893c42a444c9c031bbfdbfac2c9330e844c4039642c52e2e20a64ff9846177028e4ca89db7c13a6e5b3c6a862d15d854150868ff52d26764dba0df8065aee0eac314417e1a85ffb2a0419b284c409398d8770a7acb28e1a41cb0c0c1fb9a434abab786738c743a125a80d66766909874534e9402ba2a20b2fb8ccbcfc39b03966ca3107c1df701ea7f17e10d8ce43639122fa6b86b40e7d7f1a74bea58f7523eb3b0c551d49be56b6136688e9f27a824421a3785e3c942cf452e50df7162e840c6f497d16e3fd04c8b34b0448c88631bcf4a6c51a851c0be2b954b59c1a026039d54305842a2e28545bd449c6169f681512f8bb2b4443486093669d294f17004c839ac992eb20ba36b7d1fe221c6230dee582bc83d40092ccef69be18787048136891e48147020f44242d74dd5a352006b39e4f3e0d7c13d1fad19f47009121341d11183205fb00f3e74964bf350255db94ef6710ab447cc1dfb2c0047e602e1a9b4d60aa03477b5c839b0e7f3e4310cbc5eb4fdb093231f9f67fe93954a6a319389544d35ac2dcc52dda5cb9f2f81d71cef7572d71bdd3ce046a8bb240ac0bc2dff3990ee3a44a0d71dde4449251217d1902769941a194f79d2f179f1c9b9a13a51f8d053282c65d332d2f9ffdc379abe0effc6a4383cb30b8fe84b58aec6a47cf4fb06207944fcd76095e624bea471bb6370b37c21b7b55413130d896b9174bc1adf54fc92b144c999bb02561343d21c294398121f55b08a81dde8458d52c582f3f52174084a46c9b8a5c2aca5574ad494f6455052ff0bee199a8e4e9b3acbd194d9087813458c2c65e4c33f2eaf6b8ff9264ec987113fe90bb16a1b3248450d0743d66299518e6aa18a3d809aed87eb2724088b43759a6558b9c261d9924bcc0ff24e9591f56ccb9939b10ae973bb727974f2a343941f1fe2b552d22aab9988ab4811156234d9d033893de8bf3828fc672c0679d384925df510860982d517eb1ae4fa85258e862fafa2e92c90e71a9484a385e2214fc96f17ffc17000d0acc5ac5c0b04c5898b7015c346873260941d64bb22286031e675ee423b6c429e20b364be5e86b99f314ea0d0057431fbae23316271aa2f0461deb072a7456bec61c364edcf78cdab9130fbb7121daaaca6023560ea9cce0182cb5a0d038dfbceb4e00516794ae0fa29498aace1802e266235e590308734048e8ab04410eabfba5676cd4761daf6f523b2bc1b412ef402c643e16d42c8f2650e243a91b7fd571d97041590b7f9cbcc8cff321eff7c9a73ef845fd3beba091d127a8de50b825b3705f471352147d3b2b814bbd031406285ee8c9d2e7a11c220b053b1de03d7f5da2a530d1878183bb0123320d486c2547015ac17b8f69e97cadf7383d2b6968e1bee6f4bb885b13f251b9044c02d8ce4304223cf00220b83006b4544382ed8fb417e739acaf4072910cc11fd07ce37dc0c6c59e001613d90e198be4c51753e782969696e6d4657bb5533530930d1142ebf0cb7d9b28ca970cc1465f1cc18c308600b673952ada1290af65ae7351211a9d252cd4a8890b7a8c3145227c83c502ab225aadc77332e6ee9befd56e5eb5363728137a4e22fd9d0c99931c58b0c94d8f75c37344731ba6ec9e815435cc4fd67654a118fc74912f1968f367909e3007fddff687af7d524834d4784c0a0ba98338278d2b2397c3ae498a6d3467645eccd23a1367227690308ee49fe4f4b63b114c52c5118626e7380ce22a5305eeb716a85a86118456f12acfbbc2ca0911bfe3907e1ba667de7d0ffb20ab79a3a7aac7ae6ee770349010002bbe2468efc5eb4af8d359cf19d8e34b83c1489d620c9f2b0384a0af38a2d5577450e8a0c33f32b1fee5b60140b843ffc613687c720beff27a655fca3f4b89c211d17231ce1ac2e8ada4c66dd468ab20ba8430d2905225bf9f4fbf62c1a5219f84948cc758c696638911a23270669f68b000a7844a6431e79e094fd79e9b4bd964eb3201a06d39cc9766ad34a6219ef53ea5acaacb68dc1a0fe2853cd2a1f778c94c32e6d51f26630647021fd474fbaa5530387686630f0b9c8db648577b4a4328997a5e676357708ea3e12a9d188a629b2fbd06e26a2ba058fb4de7ca883ab70f97073a93878d03f90a77b8ec0d024599907158dcfee1c89d0aefeb9da674755b19a714aa29356b0ce7b7c8b134465266bd016a7de2413b8d6b59dc3e76ec49b2c80a5cc2f2174ba397cb99d52f0af436d0019ad31a8078d19de0ba6120a4a748a549d6a5862b65cd4717e32ad33160ee419260845c74e564b0c3f5d0b91ac1170aef63119f50713e6318d088e17afcf31f7c2151d1e3607e72d68cb126c434975277e135821bfa4ad3dd37cb757c85e7cd7a792d4e45e891988f3aa54c6634e625e2b7a624681bb2628c58b01a687a0912be3da11bdf0592298bbe1d7188457aa310418680922af09bc5c4ac9a8f10d03ebc35d389c63305ab8440e3f87a33e490ea02d313c78b5188c000577e678deeba5f94a7b078f0c8085bf2234175be199ee5d2ace164c452d4414e44cdb86c5842cb1ee64fe5d01b62ebd8490416fbad3a42b367a9db2e3e8986df711001ebb44dc44bcdeda6095fe42ad596426d54bb8fe8decf63bcc56c21cce2b2cb1b3d16f5b99d78763c029e66c8d1efff45ccfdcf92e362f907c7dc68f4774fd8cbc3b4e0790eb82be7360fe129ba23428b395ba44b686aebacc13ad14766c0fc0f4691bbd1aed2e8492bce3d83d1939d66e1b840373b68292968617d9e05876990e8d5ab58f8d231e1055be637992b59c0dedcdd828f134d6bed682af5c92af712c6172c2b71e3a9b98792de2051ac93d8339340d0e09963d52c5f7e34bec440678c0dde1296df32df8dbfcefdcb20d83e687ef41f72bbad83030478dcd9b1073b2410c7ede81139e80c5bc8a65d3242195777cc7964e10e53323f6249ac6465e87f07dcfc43f64772cf67875c7ffd90f6ec12138c2d34752d8128f908deca2a72c7575772c0ae8c0fcdcd88146c3cb0cfdf026c5be63191f13663e93a287b1d82006576587aceff2292abbf9beebfadd6e63b991c11a44b8ad0870445a5dc7eb1f5710084a49ea2b9f8f074eca0202fac8873f969c3104b239452575f3aabff40384cb03e50260bb44f73ba8e872e1f02e76951c230eb517a0810e8c4d996f472c48c2dac33644bc02ab2f12c8a924d2f0f17ca037ff10fd1511d1635645a0079753c3ea64ae003214fc9a422597b1a3bc31961b966e1bfa6d70b5e16c03e8b1192bfd111048760327ce6cff676f5d91366333ef61d0183774c29915a2698254d1d1387f285e778be70d030025764aad99da16376edc3227b41527d21107a9898cc951bf692cd94085c22110ef9dc6f8e5d632da3a3371c4e5d72ef0d76085453625b684c97e975a23832d00f07e00986d052fd782073c6b4dc21062deef488da84e12e9e0915c51997fa1313abecd0339f3b400a6b24c2e9437556a559a4fdbd5464a35d873122c2bca908b28467d0783a04e91175618294160916d95548325a7820cacc00b8a2ff36d8afb7acf7d6ab2aad44994b4e2e8ae6f62c563619585d222990b50b6ec01484e2235a6efbd10d9c288f7f4c713c4a53d1c507f68e2c1f28586deada48012a54ff21610a7756facc1f1c9c953b468d67da159dac5503e7766ba030c388f11ff5c1d507608fd1d3edad7c7cbcaf42dbc8163c758751fea022f9676cc191358ba726c1ae37e875765ab5a4004a469fc73b76ec5d60acd356a92cd9db8b85cd5a617500b818026204c05629988c7f515380850a600fed7a4abd00eb48b5d82c84780180b70fa1a0edaee97e6954b1a0d03bcc744d4769550388ac05b40ebc010e9aeede251a3a38a1bd7e2740a9565a3b0a49793b7080ca7831752191ac20f6c2c214853144b028d96c2b87f8723b761dac5b611d5408202bbf803017ac3e23a49e58fb83597769bcb91d975a3347d20a2bd41fa96ce40ca69e2e3838d95c53ff0134edad9c97009e098570f24a825a0bef54c7b8958ab211d3755ebdf302ced805ce45da0eb9b883480d056c67008ca997fdc27b4c48c6ca4252cbca15841f64706784a30a07b40fde83c5f438698efef5e6c9a19d06545719525442ee312f4e80d1f9d598cb6fa82f772e1d739fbf317abcb536526f810285570e5521c31cb583314162c868213fc7af16e79e448aa10beaef6c295a4a28de42ddbe38cb3b0ef31edd27b9bba8b12e6546d6c840e824a0976d8bbd7a5932c800497265105b0346941765e045c1c13ddcdd506f54afadc7b14f57d019f0b225030cced8b364a9dfb44a243364ad16a10a6343507c712b466aa7d078203d55b55b80660ba3a757e55b2ca695709e063a874a7391610f7916a543001a791242a74e9907265c1614b08171e2737fbb47138e1a959b121908204d409c223c550d892ef4f1706908151afcbc08be5f8222b73c403db13167e2718d420b1402215e2cf2c7179a200437b482553e7076ee8cb5be587df3e85e82107177752cab89d939c6daabaa62df08f3a0b151c3facfd0492421e25fe617b458e5fa445438b8dc3751c79b3263dc8d522e2ec76d20c398a10545b7d742d2bc7e28fd0b53eb252a31274f3318dae37f295a3b129262bec9d2309a1387821198ab0e9209a0a1ae5b13a5039cb6b6a2ebebeca3831c0098224e87b9b44387e8c012e8182290f914f80733c4d3f2318cf0f44e2f00685fb817bcca0a1d35c19ad0c54192401c0920cf4d33c04c9bac178001b7ed6525478bc72979dbcfb38f701f018e0ff6e97554d3c68a408f573006f829a5629f07a5769817d2beca15894dfd4394898a2300c824a7830178ad0b11da1c86b83ef7f9a055dfa41fd86e38dc04d720985855e50eab7749ee733834ee21930e534e8e0c30401e1e5097b2c1e2eb68898609bd1cac647ce1a7eac3805736aaf90ef3e529840a4e344630422e4f0707a74d6160795399ce7f84a78fc20261207c990d57c286e09ded8b84d540c629abeb1722f47e3c48494619570c9218b2198173b55559ab35d0449ae9e3e71f9ed533ebf63e6786828bccdd0cf8e972849d7bbd990588adf85faca344dbdb4fe8ef5953623aa343eebec1c7b9f053b624d4f046c21803a7adf6d16501bec11264f30ce0d0bf7dbc982886218741960f8340860cc72c04221a6b653784da884dd9d22a15436509e5ad6cb54738209e8105ae9230bd1e438773da91dabe913974dde1a68f79a9e1826bcbbe395f46058a665554ddb8b48234a65c53ddd8c5221bd1e54031e61d4200dea37c29b68d59f01b8e353f8ecf9ac660cbe52581b63143065a7842a20301836bd722761290a6bdc5bd9a61af17902cb59e0bf8c64ed51a1694d2e3e0b1bfabe6b541c7ca0f9a7e3fa0e564533bfec03a68d5c876d3127cab972883057de4a94c34b2d6336cadf929332d15c2682b29111a56c19b498802c4eb296114ae4a55ea1a842ff1e8a4777807a6fc26d875310b33b6594098a37a6b42bac941d769f71fca3a1caf3ebdd2c1b57b0e91381ef94541105634e0faebba74f4f324ebf68b8c79f3e79dce8baba4be157fc0556b948e114813e7a671c248d15f465187f9fb1822e077e8623d6d0d76a804422b9dd94c19206f30e28c0041d954d7d0b4274287a8298fe303a8ee5e2f238c47b28112de8995b42e43dd50855ee052e89bfb404479644d8e11ee3037355dd1a62d92dcb21731d0d4c82fc4085f669e2fb9052382b8c29b6dca845f4b98e0a2375d0556b5bc459b6e647b5ed2b9a9734e4d1bb4318dbce1ec0aa03e4dd88d55a63e1ae99f0606a60ed4b3321e922f639c00b20f0779b69ede3566c2b768dbe914b275de2282021af963350762e1a4b52aac59d53bb6954b30fd0c68bfd47a760d4fc914096783b833ce5a1c9a7880b57c04be74ad7b00cc841edc15332a6e28be0dfb7372c45e99cdcb57a1d33add16e5a51b350b5d9eede541daa3750a2e754a74d728a264865cf1f12c41a32655e612878dacc1877876b40fd541262411768ca1dac8fb19a574bc6cbc37f8f5e60a3176d78c5b1e6e3971a51461666512d0e6d493d8821e1a0210d6a94f4b00200e838c2db939054cc01531a257465f0973e373c8dc2175c28f0d40d8cbeff1fb60cf2c2c1ab034717712c1d4b66475feb2ecb1064c4a4eb4d65cfd32bc1e5a90d9b6e0cb7aa2b76ee1df876bc47b73499f7cb19849e7fcd251e1541244a805472131b4174d0297445caa41d04c060e0dae018f1f3e7bc6e362a8f81c403e5dc7492191edd51707b3eafcce411aeb2a523435c3efadf50423e40e7f1e9066a2073972fc082662275e33cbdd1f18e10ed878d730943ce2bc76d53380319a3417b38dceae2977d22297a872b2ca6e9e3a058394451300266dd0325991d72fe3ae33fe65681d066edb50f11688919f0e7c6c02193906fe282b5410ae615743e66b8ae5e90483e83b99dff2221ed636308b8bfd1220b1a42256d68d441855128e7cae4ab1766834ca50778f2bd7966c2b63c08df5ceca4006efddafe17053783e627715956c6505df6fe4106ef09c8dcc5f3580c06fdc11146b8e44890f22105018751f120901ac91d463c05fe7431cb677867d13971fa54f015931034378d5f42c18979c08422e6eebae54d78dadc32d19a91663133ae594ecf11299a12bdf0191e9561e6e35cac445dd7f201ea95217c78f609ba5d0d2313cadc091214c36fffa30056995d4c038d5d4b3c31429ff489edd79d41fb33ad5e1b7dd1e6aa97224d26fb66c797ebe3648e915a2424d21aa9450a90e81330ff08bb56520806498fc422112e5247f67d1b49846212370b4ec78a5a9174f25de125cf27444812a9dfb968909d4815276e91f54b562ae9a208ad84af1a234554159e1990e839889845e3257cd22b8d4e6a423c8370229a50d75088a8147a0b71859c08efd5d736ad0a8c0e65c36734d091702090be10252f2bb5be000256e869684b1105915728844f04bbcbb8a8b02d3b3e409509c50509c13d2a449121534ed38a6284acd02364dfe1bd1d682d58573449e40808b66f4c14eb0e63dd2e1065e07107cfc9624a9b6a759281d55a94d090ce8f024219ef85bdf2579182c093734791c05d1df8deecfd1de5a67fa7626b2e01ff0533f4620fe286c0d09bb73a82f49e048ebadfc0d8aa371f532c6b0dbbcdb5585bd13aee2b1e332c37ba587bec40fc62d61f618a690bf7d552ed49700b98f68a2fe50aaf41118739d819c4f58da130a85482500d4438469320433fec1835c66b1b3a859a33977f14258c6176d94229b64f5c53dc222d10b6881971ac9b3622f39b66c88490b327b9c57ffcf4601c049dde75eab0fbe6114cbdd800130dd7679f2ab63cced0b6c86ff501bdf3d0a06444ed6cfbb62716acead5a670c57a64879f641e02af84001b19489bb7788a68c364a242056e292498d2d3ef77a41b29939fcefcb2d9bc5458c55470fdc57a01ec9d78b20a27d1ba1cf4b09854d728276c2b2e64c3c3f315022865d1e0bbe16587b9194659a823b697265236148afd820e0794f04852fcb1d27e7b19c013fab9784fbcd925922b2632ff7f165d8a4e22930ff39b3074a26d61f9d31abea13bbb7cb7356c8f811caffeeeb3163e5789982a5eee435bca2f4f4403c2100f5a3980d25537c2e2dbf354b793ba22cb6660c15f2bde69706d3d29ba61d678e4f28640e7c218e67eeac5038322062600601b4023d23895e0d784d0a56215128f19094742496ef1a40c52459669825244315e58a0c67c081c434f487aa00029ce5dc8035f9852fea8c950c5eea705dda828dc3bdf3b340911f2b413360c3b1efe56bc1175a3783aeca690c2c7c03dbde4de4806659cd4c030e7f8636b950335ec0a700bcc88a2145c8fc0b42f015372894b4dc24623d0c4ae65ce36837b38f53754fcb52a395807f4bd3da0cfecc083501547955217d54cded5503c26a1f800b4de972acad954811163eacc206dd8de2e405f984ad71d3550cc2df0c803383ed8ae29f8d209046fdcdce105a4ed0a570b94a77a21b48d70fb1d93f71db715bf2790d77652d32a00d293271dd3bdf70992f8ce643a56078ae96e376b8140b4d27de4a5be1c0ff8381981314b76943352c7e2dc034b82956ec9de3624c0d60c11c4271b5afeeb40fc1baa54b4db7161e8bb2f95040ab493d2639d213be6c5392ad7fc57a9f95782680b82cce3f32b4c84a361ad0c885b9bd82bbe7d66376a64fb63913ec59bd3814bebef962554e5d5e236f80b2541edce3e37835a1d48b0035eb9bf26644277388bbbd259237ad2888d0ea42e968c5f40c180010149035b98d60382a8b25c52164160c0778504f175b40803a19753b72080d16c014c18cb6c64e7d56676234a6a5a8ce11ba8afd6489f30609173169bd4dbbd6473c3da95a41254c60a81b524c3744009655d03b3e8e4d0dbb76a1d9e9caa04a95362a21260de4d2659b82bf02a20a715225560ed74a262fba55371f8447f122c46b1b2b9d9d5ccc6476ade1399ecda7700e0b7b513ed7d3c636d4882eba1c6484b65cf2b06bd24ecf5c7809196157dc6cf31e9dba360aa710f4a30e1a506aa3055d3a2b33f19808d6cd29194de1b636a25d7fe52166691674354d042cc75827a503018a3cf91404847649a7ed50cf5f184f2816d29963799b177a07e5d15449ea5efe12e0d5d4ad8c264115674ce8e23753847c293633d961033b2a97625c4fc328443d058b86819e00e678880e6c7ac4c0810b309e3923699b3d844fa4c312b280b948ab51a3f1d4e294d166d2c1cf5b5a3d7e6b284f0d34b9e9a042de2758273a7b1a537c3fcafe2801b3a66440ee3d5f50f73a8ffbfca12286f7cebf0500e50d9a0e549b507300707448838900a8a5c990620b4b979ca153e703c5938aae2634158572260fabef29afa3897449fd3750209e3d556b9a260cdcebbb6ed398cb2c285dd85b717dfeeeb0b8d00aa934dd36122672a8db113822f43c6daa51a6639529480a161649ed202d51e9a483d81f6f2217a0ffc0d06ec5a5965fefe58d9638b87f5c42a2c2379b7f5d318b296e09acc7c38868129cec2172102f372ea136a906b8ee08a1095a60a0ba0591b548e3560656a6ba321cb6fcd8e2d191c679c54820801e33052bcf4998955e2190f029c73605e7c4fcbf1df882d46f6150aec78d75cef26bc2601e4ba526e412905de7e2faaee530bb3004fe21663f3e158995e2b94a0ac13c86a4340cab1af628dd046811c0a82129cf40394f0e9142bdd16cd0ec7d967a1405681173a8ac3a8fb7093a968f2f995c0ea0bdd9c6818a8ae33480a422b007abaaa9affdd0ca8f7d99524646a2e5f339be04a35ff44fb00a9d2b2483decab89f4919f5b0694a097444548e0b60903dadd204db819ceb09c48b79f082e225f5816a11eda4b29a856b32e541418da00c24086fd749595c3690f2b0e470d454232a7c37ca0b7354bde5f93f14c0d650a882b028361704b410cd4b40643da5cf9e3cc6fed2b4ca99cc8d4293dafffbfbe2f81938465de98d1a52f4c3097627bb1a53476c26047aeb103b5adcd94e0246a3b840586d00da7707a0fde20933562a0c249cffa32b1ecc4a255146a19742a2d2eca568e24e8324e120217d828ca21dab09a5005fb928dfa02b2b6d6682330c82f183884e30605af0908598a020e5d19254a2925053912b6ddcf88358b55b31e96ace4a54b0c37523b5e11737e72142e12d1900da28c7061b8616f2ea16e37169e8a6727293c29cc5f1f4ece552dfd97e824840324de7c882f5cb4b580bb388c2113efc337898b770a9204f8868563da59fc71c51d897879369b7709d065db7522d7ed084939f140dab31730e102bcef25df9c70c30d84b3b5552920c96a3d90bdeef30558ffa70273ee33f943688a3cec82c6d390ec65e598034fcc4884b9d7ea87d77d3d35d7c644c8ef14b210fa32f5b73cd206215a92f43f49533d88c6e3332f68e86d46965378dc318fc4c66cbf25b3a57bfae4a622683fb1042900668267dc23f14a4e4a83f215543d4579b0650418b50fcbc3793af0d97a3ec601108d41340e78bedb919eddaf2d6689f1659125c37e199d1689754f4cb118a48effb6a49f840c3533cfba1d8201a3807ea0fb02f4c4bb778d3a14c1a70975b2c2c2b575a97e0ec3c0630523ed6487d046d0445fbab1b694d32c6a209c385b521a41a6ee687ad666a1429b28b553468de54acf7a68421688d58d8ce26a388e8ea59adb8ad36c58a82a0c2504d2301cbf8a32c90ad7a44866335b4c8e313942b4a3fdd6f0e9765912ec10b0c4d5333e1431cc3c14a49b59e891e451be28c79182592e1c008f7275fe8c8b8946a4c5b6fe206311b8d4c13f271eb518fdf062ba957077a898801ffc313985c5cd7d67016b32262136bf7f0e044f0926d50c8175e17eaa3a9119cf9ea98096b9829b6bb3af9535aed367fec305428581d4c61c438536ccc6b5753bcef7eb529c788fa31aeb7f872fab04103591fe0701c1aaae3c34b02d74bb86c8066c8f02beb204060c3760f0140a0730333333333333333333334bdfee68dd3dda52664ead6fce2a75ba3ab94956cad6aec4a7f3f218dd6cc7a733139fce40e812960b1f0c100c48895b00420fcf4c7719ac75ff3f284932bf769afc31e51f0f2fcbbc7c64d2a30f9ad8244d417ef0419933d30d2761aadd3d287998ec3479caeb418dbbe12979e5f3a0df69ecdcc81f633df0a084f4df831cbe839aa1af4766733ba8bb1d3bdf9675d03d7d1ed57f5bc8f6d0419ddd8d9092444deee6a06588b1d85d1bb3e6e4a04d7dd7cc4ce6f91607dd7743c8c49cfe47138783525dd339f9e8f38721fe067d983f882d91c923f45bb841e961def549b60d4a743c0d3d92b8974a36e89d338ea494c435e8e341bad82313d2e5d66a50c4245ea874731ab4cda97e64f98347cd8c063d244d292f62cc1e6c7c06b593de861f5dd80c4a558e1c240fbb5a3f5b062dab25228fb473a79c25839ef172b0cbf9737b6ac7a05fb2ece4ef1a83462b067d78794c7be4b136f90883b69bf2873fa2671b0783f2831027c69abfa056689f8811ab3ac55e50a6edc38be4942185bba0a7142b2607cd83d1970b6ab24f193f22eedf975b502b6d7cf1d15e66d1a41694ea3bedcdad412fca2ce81e79d415c6822631c584db6b8dd55f410db7503df00e16bbb1826659ef26c49453057db2a592cd0815f469ef6c69dea247f614d4d4953cd65250368609e3c1479d278e829efe3ac6f1d421f383823e923196960f7c823b3d10cde3cb9da06c081f53549d5d4c5f1314e998ac1f631e567fc704dd25cb7c56f096a09ef5ef978efe660fa30425f6b677ca8addfa9b242861f38fc6476390a0b9869f24d56924ee47d087a1e24ca8cdd8e36104dd320fa2efdb22e831a510624c21445022e2a61f89e651c80387e026afeb612acf84a06c799b6d0af3088d05418b9f65aa5e3320a839927f2fc9935ccc7ea0f85c48cab86ccfa40fd4981e2fc91e47fa600f94f672afd0215f7786078a9cc955848c55643b502e07cf417a9c6cf23a507a108278bace1b2aaa1ce89e2d6b4996140eb4d8e98725a9d357e8dc40cd928e29f530650b1be8f5be1b693a0fe36f658b1a2879dff34c4a275456b6a08112c3e7c17f8ca4215f65169a6d6759e4713ebf4b91853a1227223b65fefc110bc5721e94c85ce6d79960a1069dcba839f7c16be815fab68fc7c3902a57686692ddfc4d7ed411b542cf29c5891e7dce394c88156a66fad8f765e2218f5528f9f2948655d0ed5c15ba8f34f4582f4f85aef192c74d79d49d07a3421fc7a44ea10f245775aa1fb6874da1c94c88a6aea9f7d0c941014aa106f78868bf4d16b924853ecebf963fbd46a18b8f2766041f640705108516ca270f855ec153a59c077ac132c6000ad802376e60800a000ae5f5c37ca8382dd91f9f503ec54c878a7b42fdc93f39628cef1e9d50be3de5514888c9230f27b4e0f1836e54d20ee22634cdc9329d7dae09a5fc36e6654e674289f8a6c95d634ce8a38c31764f7409f5d2648fc923698973ceff76f6b1a712ea9d8f3ac5f124d9e6a18492c6fa3d463b9350be4359e56f8be94e9484e23ecc63f1ec08d9f945428f2964aee91e450fc78384dea219b3f5f7f0fcbb47e891e793e752cab3bc71849a49337fa617316b4d23744b9fafd99561847221c6fc986ae24c1e8bd0772b6abc87913444a508ada64fc72e7b943c5512a1497cc75f9d9d8f0f4428f959e37c0f6af3387e084552aa398bef61ca19421309b73d939f3c8c298496753eb3db31e63c8c08a16955a5c83f0c121e1f84e63d9f3e4c2c08ed7bb8c9addf40a895cbb75b3f46be2420b40d9f3f95c7e2a2f983e6e3cfde99799095327ed03c72ca152a5cf899481fd4faec31f743924afb9751f8a0e5fcf45f71d61e94f0e38c1e8f7a1c24c5ae073d98f9e07a1853fac185f3a0f63064864ce71037e2418de7d5f761b149327750f2781cf67cd3a68d97b3839e5af36d326fa4eca9831a59193afffc2036657450538e0ea6a1c535bf7350b43db2c867b708afe4a0e5df8edcd33597f63868316fe718bbb3c7ee121cb4a06dc1820f362bfd6f5043f8d8057083e2effa17dc7ce2fe471b34cd963f243bcbd31fce06e537041f65fe61de8d7d0dca5f79b2e0c373a9ccd5a06826cfa16ce234a8173f13163bc2fd5c34e8e182844a962963db67d04d3457ede7ac1e78662004099f322bcb32a8c9e34547e8c9a0886d9e1ca7b347d18f61f3916ea8988339c8f8828bb20062d0e652f938ec0c839a9d298687cf834b1e0483d23a3127cf1842f73805bfa078fdc66bc955dcf85e5026e7d730e93c5b92134601baa06ccc1f3ac5918e0505e082feb33d9a92c886243fb6a047cc5dee49e510c96b41edacc89b24e5f0e394ce82fa9a32e6458ee15fc25850274bdb2ba8253d9cb3fdd30a4a4c1fd2c4f3aaa07f4ff898dde363b3920a9aa6ce731f857809524e4119f3b17f8cd797842805b54d524d38d3a2a0658f47fd9147ed753a1494698972cbc90d29ab1114e009ea9d4e2e0d21ed713f25d8b15ebcfb3163701960d87080066c70019ca065e55f0a93e607398f471374cf7a31775870db1e0f2628e2b9731e588f87f9e76309eab4dc6ea80435b67dfc4052cad1ca2309fad8ab4225f7f128c51d097afee0794663d63c9efe084a76b24f91d55b39e946d07c94f5c3cbdf0a9f2c82663ec8c3bcb0785d2211d4dbdc56e132f740b31e823eb00bc9af32d766978550c7b60b417b66930f3e3a863c12087aecd9f65cf8b1b5b43f50d286c7bd78bd2c79f840dd4d7139260f3dd67c0ff4bc9af43ffc610af2401f54ea1ecc0f4236acdc81329eb63e5d76eb615a079a4dbff87fd5a6f0e440c99abf29c4e040f3d169ec66786ea0f678d2de0c1d1be8397758c5982aa49cd740efd0d08ce9c402d040d3289d3c793c9cde14ce420f39b3bca7708f90872cf41c7ad86d165f3be72f16fa0fa47422f7286fd8070be57fb89721ef632fdf2bb43cae0fdfd15a12dbb9428d379dc4ffe53a58ae15cab5dbfd6027f62866c30a25b9fc38c51cc47df431abd0b3e4366bc78c2af44a11f3d27b1143884985127e203f98aa3c0cdd1b2a14f9d7ca09d2d271b753a879e75b9267df5fcc4ca166abd7cb275929b48d31b5bdc558318718293411f97373f941cc7b14bae571e7ef61fa2a3145a18da63cf729e751eb160a3deeec07121750681aee7db479509b13aa4f683ef94b222c9ed02b8fc7f6af5f2714b91876978733972285137a8494113f4edf717236a1e488b97938a326d40bb56322196542abfd0f167f34264c9df5cf22252fa167cc98ecf3a714c763097db0dfa5fd5542d33389397797789e0825d48b9c348fb25f7220913109bdabf4a7cb2f92d902c6214619fe7e12a0852474af1f6b3e1f98b4453c126a1ed7e59d68e4f77108d002127acbfd78a415ee2536e5400768f1087d202229752a1da19f987de4d1d88dd03ac58f2dbf6419a1c66dc60fbf3c462a46881379399731eda1083de790179122b46bf013a18658f6b50f3afda71b11cae5ed5829d6fc59ce1e42fbf251ca17e30717a635c4a3f8cac370b2652114b9cda31dd9c7db314808355512d10be5839c61330835698f7f3cb20a1bbe2941283feef9f3984d71420a84eea3593ee274a6c713106801087d14e147773fca7bd1be07b4f883164398382761828ba7fd40fe955fb877458b3e28a95a3ac24c9a0feafec0bb07b10739c7e9b187abb59255d555c7547ab8fa2e677ba0c16b63b4c8c3ed3e1e66dcb390cabf1c4878285adc41f3e1d7a4aa9ed91f8573201dda41ebffb9cdee9a6cab13685187a2051dc2d0620e7ae48e9c032937a0851ce8861671d03ca4fde9fa300796516801077d3c16bb89ed49c26bb478c3f1eec407fa31e68627032ddc70cc55d947318f57a59411b46883926273f291a76ce39ec2063d558a6d3f76b9166bd0c64795f4fcf3c88167085aa8812fb3ce93cbb9408b346881067d18a9638f532f460bbcd8f18f31c230f2032dce40377068610613022dcaa0e5f610cbd5e3d9260f3228b9e136495bbaa4f718f441f6c78570fa1e3f2f063582f8386bbad74f1f0f83b21daabfc721c78b98068332717ff3dbdc86d3bfa0d50fc3c6e67bbda0d458fb0f3e945dd0ef3f826efc8d0bfa7062558fe4415b50df47b91b5cb21668a105e52cbb95f89d59d02f4c733e5f86056543db888f3cce6b0ad1e20abaecf8c44af15a5db21656504285dc1126aaac82763fbcee4a2e12d35f1408c75c586df9478750034e11caa40b157b39e751247b3023119a94e7b5f6d945f6540e241c5810418770c10c4314422d17b38c9d62a6f42923445129c50e59112343cc8cbd251f0f3208f57c3caefa5c9179726e8620b49026c70f17f22827d3df055f941981d03cd5c790099b306600420ffe031ff938f89fa71c053a7e07120666fc414ddaa75922e41cc3e4e907c55d5e2cc95cc4853cbec07181197df0530c5e299903890f6a5b848b14f3b466ee73ccd8434182d994c587a62cf50c3da81f240fb42bbb4712cc3ce8f9a6075f9f99c71182077d5896994633e58ecedd417f8b2944fa902d640f986107bddcbf6adb479262811975d053feee4fc8c350797a0ea4771d619808cca0839e3cf37d1e246b0e7a04d7bb4b5d12448372d0476a82c43c9077e8c06110981107ad3dce877bf5f95beb1c480107cc80831a3969ca47f368e225dff07788cb72f5e31ccf31f65839c10c37e893f52264779c0e296f837ef195957e185cd28b33d8a0d5041d37cb33dd2f0d115ac08c3528562194877849828f0885196ad07b1429376e3c76a8e0b14305854d989106cd2424ff0f7a34e8f7a3dfb80a15b7ec3e83fe19992a5fb894ac45336849f2b5bc9b65c82ebebb6be7c80c32e8e3b7ef91590a1639c78c411f5efe28d9c54d0c4a768a773a37009230230c6ad690baeb524e096680411f8f2d47e671a898c72e5f1d28b80accf88292927d6975c80be54976dd69a7734537a30b5a45b297cd392cf638a474cce0c2ae9b21dcbd055d2ab49fff754e531b30666841cb3f9698bf7e3cb2a0e4877b58b5f9784e2ce8b739771e8e94484809c2f882cb18a38b18ccb842d61573ce83698615665441ef0bfad1c333bbb8716306159418368f87f9ec87f11953d07d432a4fc98fbe7222c10c29682563f2511626275b055fecf8623170e3c68ee1fd654614f49155c7fb7c7ef9a30714d49bf82d2178fe09fa24d3e8e4dda9734e3b41cd395eaa0991c7c9e2a709dae458994166821a2fe5c4fbf1662879095a5e564a3eaaf833e92841d1e019f25dcae30bf9242815952273dc2c55321234b7d4ed1174dfafa9d82f1a41d3e49dfe5ea4c7166211b4c8799cf32686bf14211114e9749e27d2393f784350e3a73662fc61b64839212815be432407f9cce383a09f0fa47be26f80a06d77be5d6979d56e7ea0668eb7382e1f55b1f181ba29ae24845954794c0fb43871b2eb5686077a8fcbc730b974fcb71d683221f8e46031b945d38196724f345207cd9fcd81d6771a2b8745f651a770a088c7899d4db39bacba811ab7f3c48550d940cbdae972fcf07622ac81ee16952de3b7bd5265060d1e6e4e8f59a87569767c1063c8e965a1f43066ef57dc9c531d0b3585cc537962d2770c0b5d72e42e1fe418273aafd007792476d67491e247aed0f2c4c9b6e9ed8b3d5aa148789898848a7839acd02be775ae3da4ed71abd0a2a36373bd67b88b70a10a75bc52eec1e7910acdbb376f85e4bfcb1ea850224be831f3d86e298f53e85d979d2a3abcdee4610a7d149adc3a87ebcaef4ba15dfc789cf3e84296774f0af5f26ebc8c9f7b6ff228f4f871eb240553147aaa8b21a59e2a4da90c85923ed26698d7a0e9c701855e953db8a7cd23adcaf9845a3fa82bcba427f4c1ffe4d0eab998349dd026bd741ed65cae882027d4a0371753c6a419fb4de86e97f17b7c6b428b5c1f72dc33138a4ded49caf230a17f3acf17b24c8e57dd25a88da9c75179d059421ff4e41f06f941dee9a612fa38b45716dbd421798c12dad5dca69f3cfcb7cd26a1d77c7b6bb625a16e7c0e298e0f37e61c09254eb28fb12524f44ca6f7793c424d17421ee4b7b9bc987284d279d94a275f1aa17d8786493daa30428da5332189c59bbbca22b4edbd0a323d8818e38a50222bd5678ff2e8269e08bd22b4879976efd58850c7c7fb3b2fd3217489b59d424a2184ebc810da69fcc893c7a8104a38ffac8bf9dcc7121142bb4c9947527c8b3f080d42dfb61f84ed281f448404a1e5cb9b2c1f6fbaca2310caf7e0e378b230a17e40a839848f78f73121c27f503ea61862f2103b3dfda08e5f7aefcebcf85c1ff4d8316f7888f041c9b369b27749e5bb0725b5e5e1fc643e298d1e94481a9276bab397f3a068087a759b2e43323ce896d1e371464cbe5cdd4191c95852c1aec2487650cb9288e75c6dc5eba0c7dced5972dc1fc708a183126f3aa6709bca92527350af730f63491e07c9a1372d8d77938b38e8317b86687c1ee4182e387c275e1a5e62e699640364fc8efe0dece0e20d5adc7f84341172f5777220ddb8618c1cb870839acf747f63a7ce3dfa72601928d80e9c0a03176d50c4872184f1c1848bafc981c4051bf4e981c8fe4063d27fc4a60cca02176bd06f3f050b29cd1ea9e7420d7a4c33792c579e982d4c3a70e30621021769503e966f081bf328640a176850934b0ff3744aca420e0a368c1c2d4619384ea043070ab064c04617144815707106355d693ecdf7c1c37fcca04bdad81d26c594418d321fa7ff921a8f93a1fe9c5db37d3b35e540fa2f7678413bc81043105c8c41e93cf8dc296ec87edd72200ed7418605ec7021065df358f5574eb67a41c045181e071f0f34c4f7022ec0a005e9aca94f619107210884b1820b9c0670f185e3ecef8e4ece1d3b0abec8d138c8f8020c307474a143895ed087af31975ba730e1d20535a2f4ef44e75dfbb380301cf0e801175c50b2e2c2f285d91fb86c6138a010175b50631e87dcc39439c9cbae057d303176bdc7d4e38c3d0b4a08f5b9eaa57a58b16341118bf9ff523924bbf60a6a6c844a219de649b9b4821e24d85d083986ed2caba0dee4f7e155fb7ec748057abcdf7731e4700a6a668697149f82b42905adf2cba2632fd6a45c14f4bbb120f9ba43aea9a0a05f7874c40e71f1043d4257d88f1f68ff0fe2c2097a7ee9c9918b8a95acf328e0d7404105174d5082f4c58fa67326a89bbc734cac47d9632c4609762c60023630d0829fc0180b815288c88ecf31c642c0861714b07197e062096a24fd986bd24946e94ad035bf2fc77c9c31fba024e83e13c3e33abad24e90a0c48cfaadd2f091893982bee3af3d8efdbcb08a11948811f63cfbf07d902e0297bf433ede9b44d045272f88e60ef61a0e411f4f76cdfb0f9f679e10922ddbbbab7fb90882dbdab2a1171410630cb4011740d0b34c9884690eb7cfc8f8121c1b5e3cc00220c00106173f783b36b8dbe5f8682e7ca076f764bf902d3dc03a49cc111d963d9c0e3148e8bfd8e10505caa800031af05fecf0e2c60d32ca0083fdbfd841c68d1bec41e082076a6493c88b2ce162075ace21bb6df959f5c43ad0fd2448ce3c4ae1e66357e02207c7963cea980b691c2836298f3a6c085abf112e6ea0c597dbd0b1ab4c791c1736d04e3cbd5b4fc53c0a1bc7bbe00b147c21808b1a689e6f473a8f47dbfb1305b8a081be2fe122534c213e5bcc42e99c3a55042b0762ca42d1cd8a95c7e7fd6f6e2cd48e735591e5de26fc5d6c010b7df02f3b6f2f331b2939901e3a709011c6efd805b80e0b14bdeb08c390025bbc42df73c915f95c2444c61865348e31beb87103c7deb871a705c78c31466de10a257db209094fba618b56e8215fd2ecd318d3f7a01c48383e0c1d5424b0052bb4d039b7743baf3fd91c482bd0b1a30448c70220c091802d56a16da71edb84cde3415b9403098c2723022840c182b10114a060c118a3680b5568e627e1d779fa63d8a9d04642a8fbee6e0b54a89d7a6467163ff9c62e47185f3cf22770e3460bfe04376e8cf162b4808c2d4ea17eb2bbd496c7e378938729d40d371252ddf8f83b2b85f65a27a9324bcc6f16526817c3e473b0085dee8f427fbf0c1ec7f3a250762e8f851f84e5fc36145a8f723beadff2e85e04855219e13b582ae9ed3ea1ccfc787c21b78ff744a7055b7842cb61c384fa3f9ff07442718dee61e58f3cac907342ebabbd0911ab72969bd0325949a6ec917f64ac09a5ccaaccfc2a8f6dcf84dea7214bf0bdefce594ca8298f3db77d9d97d092c946ca1f4be8196f1942d898a2c6ac845a6fbb917994e344a68456ba93538eef510cde24f4710b1a332247124aea90d365c92612fab0421ccde9f2774e1a486826d127af2146ea51768b47e8d776318e507c7062253bf97e2c5b2394ec9fda248fe36d58c508c526e49ff0c39e10799445685e31560a5ea5b15f4528d7e947496a4a847a9f07b9a643082234c9d0ad9583780835e255928a29634cb886d07ad307394f6661f7dea210fac4f38bf871c6f6bdc6d882106a1e78ffa8e733557d3e88b65af330dfc7e30842d11d9b98b2e245afdb22104ad68fae7cd169fab71c01f420fb5b5ea1b7e9e50591a4015ca14f54a6cc1fe49634a5015a61f69c242bb4dc5033b59b44dac72af48a8d5d933d54a1cf864645cc107c3c3e15dc47eca8d04777df1597830f7af429349d081fc3fdf5ed368526b163ee90f0df0c9742cfc91a24b5cc898549a1e498fafd539496390a6db44711eeb3a2d03462c979b58f4eb3a1d03598b9873941a1bc651f76c8e32c239f4fa8bf39742c5fe679c7137a8a91b72fef8492d24dfc8970e729c8097d64fb9d3a4f1ed7e536a1676868cd9f35f3e85a4a036842d3f0361df33099d052ce4f9024269494fa5e72c7adf825f4907b2f0f3c6609b5cda2358ca5124a5e85d8fb46092d8f4453570f7226a1f74f67dd98fb3bca2063c5c021c696208c2f0860030348c27c29f95ec88984ae35733ebccff1cd0312fac8a69174161f7263ba301600010e015cc1008fd02247988ceccb9c3d1ca1948f4f4448fd21e4d108cd073efc7148c8cbb233429dafcd93a7f54deb45681b634649fd20224a45e8a3d8ef9e747fac9593082f72e45192f610a19e0ff2304c6e29d90e0fa1e6051fc61edbb4ed060da15ca80eefaf144239cd15f513337a3c8a104a8f7c74efb517375783d0c4aababc7d32fd4510fac63c0879a0f3ed610a843ec8f2b147c70fe623048472afe92523dff20f827fd0c7d539d327d19a10413fa8a9a4fa5df3208ff23ee8bf3b675d7567e2f3410bc9cd1fb607e562cf62dc78abc8eb41eb98527c8a71e2e29e07f5934bf8cd50e383f0c0594cb838c13274245d29c30077d07453fe7c9353f08106b0839abfba43fcf823fe01c30075d0375ebc65f3f2489a0e4a32b9e031ce73d036dbe61e27d71e46e718400e4af898873fbe303d08330eca86a02711c2a7efe1a0571e67f09149ca31bf419bd69032b6a3f320c70dfa451c1f5b5dd8feb00d6a6818bde0b1414d5952456c660d4a569f8e6966d8ad064d22e781dc5bce0069206c66f6bb57d0a0f70f53dc9b64083fdd1994f391bb8824a7793a33283d36cf49ef6b3f4e57062de6bb9b8f073932a81f414c443b6e868f3128af3df8ac791025d7430cfacc04fdc97bd9cc0f8316de7a9863c760d0fc7bbe83e75c5de12fa8ff3e081ddff582669e471d1d72766edb0535bf6b64c93ed6e3920b6a4c21c86408ed2e6f0bba7788e1e5d561e26941bdf218935d591e99260bdaccd7e5c44eb1448305730535d94bfa33bdff1f56d044e4e6fe42beaba0dc4577ecbde4d1534109d19fb9275d98789982a23f48b1cc6492fc9082ae39a4f6ecfc9c194541efb3cb639729cd363150d0c795c62e446b08f613f44e13be2d7d97913627e8d9925d3f4e42c61760701963182618a009066082f219cb2f8f6fdea1a337c0065882269d9362f566d670760e241c4855308012f48bf4d57a9707f13e92c084105f3a7a42c8f8620c1d62bc172c0c8004f5e7b29576f220df1f411f97ac8cb51b418977295f16bd086a9014f2405308c959226896277f8a973d88411e827ac1871126c963b884a0a4d83fd299cd034bd92068192fde670f72c60c10741ffde751984a91b61f6815aea9da7bd865491f6891fb87b1eb3685d8e981e6c9c763f9db5c59e481ae152f4d5fb703fde3652a4e4e076ac46cf2373a6f5f0e74cd1a7ba4ecaa2406077ac8cbfbf1796827eb06fa204d0cbba91e4b88980dd4f0b13fbc8b016aa0a7d429ffc574e2e3f106a081d23feaeb2d09f1ed67a184c8e5192b2e7ba0cb4209bd3d9bcf429e702cf4eaac65133d60a105891f789e143eaefa154a746cbcf8f9121e2f1aaed0fc7e4282dbe4f75cadd03c53848ba1653be6628596d3bf8d5fb85f0cd72a94b1e9b0e01193635caaf84d6386adaf9447b97fa1823fb2e1c503bc500cd8e8c286066c7461c30b3276e810e335602c00021c0340028d5468d9b711faa5dd2946859e43d5dd6597d815d729b4d7b6983b4ee660e132859a377b304de94f265ca5d073e68f07993ee59db348a1b77f4c953333e398350afd37f778e461313a7b4a14fa96cb940f722a14fa288f8793aacef330bc028556496b73c8f18721c5d42774bb6c63d33ff2ebac3ca1c530513d95f25824ab4e281a1a315b8790c1aee2847629ee4af3c8cba7529bd063b86eb4f64dfecc1915d1d08436f1263b051f7e8829137a48f0209ae255e598d007efde3187cee5f612dad6ebd4a59dfb8c9425b4ca51f1b73406abb812ca7ddfeffb05bb3025348df3d09d434a963309b57c3c77d62291071d49284942777c960acdc148e8713b8f2a73f685fb20a17c5fcb8fb547a8119a26889e8ff632ba61a30b1b6434195b011b5dd8b0e105056edca058d07084de52e693aa368fe32a8d701a8cd03b279b7547b0942f421f95e4fc193f145187b96dcdc5cbc3977f070e1d7e824023117a0a77917224a5c9792042f7f4a3f81fefaaff10bae451d454ee0da18698236757e69a4f2134f1419465ceb1d39c10bac5c8bd3fd01f0db0d1850d6fc14f60030f1d3a766060c787b1820bb4e02740845a4163105ae4ce717ca00b42dbcca315348488c10e84663ff8cbf61a106a90321ff60f633cdf3fa8633d4a9e82c674f2fae10834fa403768f041efbd18b7e2540ef7a07b6d855f4a9d36a907c57e14346fb0bc8ad93c68493f67fd8107ba51021a77a01b34eca0c67fccebcd29ff20655f80f105054a0534eaa00f7c1883654f792c171dd498872dffa3e41cb4ab1e6de7f3d0f8e3c8414b3ebe8afb123d16c6410734e0a095d4441e95d48f52f00d4ac696eb41d87dfbdc40a30d31a0c106fda5ca83c598c723b706e5e3e6847e8c1ad48e9831920f4b83b6992655ce21ffc785063d8f65bfd38ceb617506254f548f7e74a93b5ecca0a50ef9a4592983563df8afeec15496c9a025b7f8cad15d41241a83d621e3fc30fc6228647a7818d4e9c89c97cf5a320e0625c6f7ceb6e78898fe82b2793d9a5269c79cbda069f6f9648f2e283db26bd9a0f7125b2e68d2f259269f2dd0d0821a373fca509e2c289df320666ae96f1f58d02c6f28bdccfddbe215949873a2b635c40afac5f6ec0dfec31791ab886954419d6c612e0fc30f2ae01474cdb231b35b4b418d1e68ba8893471434fba41ba6f34d030a7aeafc08215f4eb767d278821aeb638418263d8c35d170825ac923c474d6a30aebeb0e349ae0de7cbe9e8451860ec64146196284f1459530bed81c1d860e1c830613144b3fda4bf563094aa6acaf9cdf73201da160c92825e83eacd80edf638d3f2a0c1d8c430ca2123c19bb838c0d6cc0461736bc38c192b181302a0c3492a085d38bb6188364866069810612f4acb333f1bc09b1ef23e8c3e431faead2259fd9084a05093167ce21989f260a348aa0664ff9f1c761d2a6be89a0f528736508932946684ea0310465ef3ae651564c33a91582feb9b97bf05aa111043d8490e4eff5e31081061074d3dc7964e3c337dd790a347ea0dcf8f8238ccd4ee5f150a0e1031a3dd0edc71da9db7be440ca07d0e0819a87b1871b397bee91963476a07716cd387d9553041f3474a069040f71729a5c229c03e97794214641018d1ce85165e7157f3c8ce83c071231010d1cc080c60dd498bdffc318f70decf830be5832c2d0d1c5a360bb5081860db414d9e2373aa42059ce5168d440771fcc841c37dfd386170fb87143c78d1b62d0a0c159b3edf785e50c3366a164ec3cffa4ed77676761862c9418324e9e26dfbc3dcc093362a1e451ce37df4cdf1be3b25ac20c582879503796079144830ffc22c718498619af28335ca15f3ccb91477b1a3ab85798d10a2693e78ad52143dee4401a03c72936bc78c00c56e8f9c29949d81f8619abf8c10c55e823c93fde316c66a442f73c76179a2be7410c51a1a70931b2bd7d84d35d679c42f171cfc7382276efa932c314ea258daa4c93f23064794629149f4817333f684dc12785361a9179eff55168962ffa23f4782499478b428918771372f2c1e52087420f4d3e3d7a13c9a3ec8342cbb9b3437f4c593e8c3fa1c70e793ca1fdaaee5f4f2839f46e6332a713fac03bfc38b99bfbd8424e68ffe30f79929f13e3b70935bddf07c94e93f79b26746f4b9f42c4934d9a4c28a539dfa3ac15268f09ddc7b5a182c6f03e4e5d4293fc9c52d8f86e312a965052e5c99f7a9f9c1ba98452954347b290cca08452ed1e298d841f89e587609831092d3a8d58cc9283df6d3324a1a73adff8be15de531e9981199148b7d2868a99058f43071938c028238c2a90502f98dd68cee423533e42b99c079533c2c9e95572201539421ff82062e3e4affca5e168c1e38b1daf82a41d6080d18843e4ecb4db21636e3685198cd0ee3757ca14f74504e6081b42d073d8ca1f58557bbb0fc261081b41d0ccbd5228c99f22840d20e8a38d1b43decb2e72b98136d8f8819e7edc97792a88e8f640830d1f6877f516daca73def5b0d103358f9249c64688a73136bc78c0216cf040c9e351df66bb2c9ffdb7b103fd767c3ec6dff7e3dd5f8cb15cb26043079a695be534f1a397c7c0f12ad8318a386023074a680fbab5c3ad830f1c1fc61760a0176ce040cb6c2987c85780c3ecd0e1818b848d1ba8c9477deda621a5d074196cd840d1f7d1a48bdf74e418438c0d638c29d8a8811a9f3b76e3a3a2820d1a28d95296a66b4bf4ea1c546c78f10030d498851a83e4051fa7fe71f06a8ccd81010b8000c70a6ac8420f797c2112267dd4f4170b35c6d6c486dcb29b3c8ea8010b2d06bffed82fdd1e6abc428bb093a35de783871aae50f4b7f27749e7f1d8ff3074642b748ba07d9f29b7579984701051414964851293af237966c996d18e2fca48416fa162665083b0f5a3942572483941ef0e2fc630c241fe3b36c718070045d450855a2d323f366f53a186c65415e3dfd5861aa850bcac266f0e23298f72ee146a674b0cf1325f3bf2e8440d536815793c24930fab936b2651a314dafdc6cbe9bd2a5228651e52c81bdacd3ebc14b8438d51281d376e6df8d8072df1ca430d5168217c386f933ff7861aa150fc4222dfb3c5f8e30b28d4fb8f9fcf4ecf55d4f884f231ed5c8f1a9e5073dacd6d197e7442a990c7162e6698f69473429fc894177a94377db837a18ffc3e3c7bb235a179ceece3b69fc7e3c96642f7512edbb71e0713ecd906eb12fa286fecc7038d4d239f2574df24397e9043bfc54b25b45c1fe74b34c4e8c68d1a945043d090df2acaeb439d030d1d056a4c42931fcd54ce24b61d4b49281fc762ebdffc78bc731d6a4442bdec0de147c9f37834412f6c7841811b376edc68423520a18479e8a47c49faa3fe119a68c6e53197fc5ab623f4ca1b3dca7c6739e57023f4d61011129dc34288b9a00623f43cb39143c4f50f23bc08bdf367fcb01de97f4c45e821e6f146cc1fa7f8924c043dce3927f8f87288504a2cf75d68cd29f2e610ba8738d65e6e3d98a43184323e2e499f7f9caa5ffa7740048a1e6a14428ff7834e395fa6ff9210ca8b44aa39931e8c6683505e92598cb14ae5a720f44c3ec8dbbf1e840f03a1f545e8f1f8c5a4f95280d0aecb34a7b204d796ffa0e5e1947ecf7f4d1ee807a5ae73a5af973faf0ffaa833b9858fbe3ea4341fd42cf9bcdd1d6295397bd0edc73aa251f55f49b7d18527286ae8414949735a7b2e0fa8910735241b4b5239bf544e2ba0061eecf1dc78d2385b70e3061f6adc410dcdbdc93d3e0551c30eba95e6b0b79492f620a60e6a76edcc06fff4e3d26ad041ed90f34cdac8b8fa1e35e6a07bc9e4694ca92487a41cd4fd91ceef1fcb3d7f1075e0c60d221c44a482ca00d0a0461cf498453a98e5948127d48083ba5131a3e632525b58071938747c41c6eec081851fa8f1063dfd5bacfc719cc91f3f410d379c2fe6848b39b7f5f0ba418d366851226539956cd0f2df6be4f0e33bb3600ea416ec20a3a88b05508d4154821a6b50cf47d9b3cdbb6ecacb8b1a6a587b2c1b7e1c1d7336bc78c0e9a891065dca4f734e1f2f1fc21c4817881a68502e83df8995bb43c703070e2c655c20c7189be3c68d3274b460294081ff628717be4347ff8e4bd438831e3c79f7640f3ce5815ec30c8a85a879c9301a72e66b9441b3bb7cfd1cfbb3911a64d07276acde4deff9428d3128f919f46385a021c690c3851a62684aa7b73d7e7c18f46f9990471d6730a8c1fd47f1e932a64e292fd4f882d2b1eee42b9b6859ee05c573db0fe7cedc428d2ee8f255939f1d3dfbd6e0829235d6c55492076a6c414b173dbe77dbb487a1e3d0ee2881181c08e3023abc7832764709bea800074805376ee0d5d082963b468cc612732051f6a14616d4fdfd0ee28f81c38a0d2f1e600303bb437390f18507c6f01dbb821dbb82df610c51030b7403478d2be89b3dd6107369d655c30aeae5a59cddffa9d3c44450a30a7a873cb6d67bed72a9a046a77d8f3ce39ddb9d82a6974924c844be8f3e29289eed1ba442a56387180600a6a8118583c41fcf120a476ca698f13efe4e008e50e309cab9fd487a1cb275b23265a8e104b543e3c5edf8f167c564a8d104dd7cd837e1c79182c42a0c3598a0878beed9b25829fa354b502cc3de050b3594a0ddf8e6c424b5b3df25411f46fa4af579f4156a204193b89322e8c8869dfd088ac774972b0fe6a5c53682fac38ba13ba6b208ba5b57d6e84f8e8f3744d0cfa343c5d89147db3143d072456e4250b67ae73c455eac7405412d6db12dbd0041f9e18f826cd00b1ddbff819ab347d22aef7da0fdc4dba86c9e2767de032d58fafa41c7cfae5df240894ee1b639f938e2b9032549cce3fc79e1247f74a0c6f77d089af7132b97034d72bffc86bae0406d8d8e156adc40f7cd4f31cf58cec31f86052d20430c30348c0bd8e8c28687f1c5045a60a30b1b2df809d8e8c24617e788b160e0f0273254a861037dbbc2dbb835506b4218ad14e3345683066ae6f9710f428af7418f5928e95e6bff2c8f0f9785123f1e768ae15a2cfa58a839fac79226e6225f5868dbdb3941ace225cf2bb49c115f5e723eee5da1c8e5a8a820b64289951f6e3e58a166bde4c3dcae424f5d9bf38f8fc37546158acb88e70f927b34930a2d8fa3f3d8ad4333c5a0e200a750c6343aa44c275a9b29f46c9e47693fe53c0ead149aa4c81cebe17c87450a5d5355b6dfe9310a3dc94f5e7677e4b1f410855e2267292657908b1ea15042c7bff8390f8366c90314c4942f96ff8f4f28d3f14e2e89e9851f9e505e67322bdc66f11e9d502ed27cdaf1610cfb39a1c7917a9d307e3ff94de8a30a91357eded88a6b42d31dd3ee4b21bddf9950fcaffbe2a731a1e58fb4eeca7e3c765f42099bb13fb8cd27195b429ba81c34c7dcc7635642a9fc9e3ff29112eab6a4f09afdb1666f126aaecd99719d24f41e99d82f19a1a98b842212520fc3df3fe66120a18c599effb68fc25b8fd034f8a0377fca114a967a4d995255c78dd0c75d9b52e85d88676184361db3e40f42bf082d9f75eb8515a1a79a081fc73e7e459f087df81eaf17bb7e54d12342c9b2693f8f2bf620e571082de7afce83fc1b421fddce9dff2847acbc105ac61c31d6db4e08e592f89b698a3fbeb40f42dddeb0293362db07bb20d4e49b2178cc3cae9b3d106a081b3d7519214fec805037c39b6bd884e5d7ffa078b8bf7c593f68e137eb457ad9d7faa094c5fd8f879be256c90775f47a249b3942bd670f7a0ff23b64e91fe71f460f7aca99424447ee54571ef4d8aab81efd284f2e78d0073b2621628e1767ba839a6bf2e2852e9192b81d944de1272f8fdaecaf83fa91471973848fcca5831a4a7c5c5132c9a4c71cd458a5c9c711e3b79783be59f2429687caefe3a05ecaeda3b7e49bc781832675ae21b28dd5d76f50df7f642afc85c6dda0a6303df0919e588fe336681ab37e303e4cc927fe3990ca1c800d6a4c13c3dcc799c4d60e69b34792d5aa41af2bff9c07f7527da641093188ed8f7e9c1d4f34e86f1173f6305becc739835293533e1e94f5a0c799412da9e8f941d060b6298316277ff3c35421c71832e89f47c9fff2b4c5c5c6a0c44f2e934a1d2a5d6250522a092257fac31f250cfac0fd37b927c9962f60d0f3ffa862fed45fd0342f7f789242d808692f68e93343fad4a30b5a4c0f7e9c79502195071794ffec415e2a097990c7161491b1d4d2c3fcdb792d28352db5414c2e649f05bdddac37788e053d96a6c91e73bc367d0525bfa5c632a50bc95a41f11c2137cd5ff037aba0bf859426c7a482ba5d22ee2df9f33d53d044c27d776ef85112a5a059a6381fdbf83078260ada8f357cff28ac87592828f5a1e372530e9bab27e815ffbfa12ce541a83841d9af3ab33bcd515113f4f0c33c7731922987096a88d1ef90feb45b826e393773648495a07cc4852ce94f8292191223feeff67c24a8b7799c4396594aff1e414f1d5ecfce35821e6279f0f8d19ab6088a4bc5fc233189a08fb552aa1c1f82ae1bd398e4b842d02abd54b2eab1d2e006412bf798e362aaf7105c20a831481ee7cd7ea04d1e446cb91fa492ca077ac5642148bcf8814eb607fa380f27ee6646e3fbe081b61dfec3cdae37fe0ef4d83e9747fb75b3af033d5c925c3e3c078a491ecc58cc71a0b7bb6de6fbdc400912c203d840f9ca3daccfc1b59278801aa89fbf35c7ebbd67f00034502a634a2962b0ade0cd42c9297e0c5131b2d07a94b326ded2be1d0b452fb4cda41f65b0182cd498048bc3a8148dc522a2e158301688042231200c6abf560053140800183c220d0522915018c9d2b4011480035d301c3236221a1c1e120e14140e8a43813018140a85c160401810088301a17048288893c37974f7126c47560114ed637fbddf6d691e9198cc0d3ab74602d339295d183fea5590918151f7d40ed33da4c9f57d0b236d4d00297824795c4d3f472d74db78f81b1ec22ec956d6efe1d67d4a671c43046668306d640f70d607f97c8138a4da0b6453db886ee2fa79d76e8d04fd4841645132831361ffb037313dcd6afd14b82d670ef15599ecad3a13495222be6e256151f40b54ec88c66ae54c908003cf7468f2a799fb8745eb52ada2a8cd5df98b7dae4b338530032403d55f2a164a65f3908ef45205ab490fde0b38ff4c43e0ea38aa9a0276dcb4522aaade4f584a55dd7322948dd2b990d24caf827f9e691b2e464cb2bf67f42706a1003795da7a20e526e5d87e24cad668650ded9f2cf1be5aa684d4590b74ada7156b900d64383c9d65ae53b646bbe8216592b5ae1fc86588eafbafd04be49460fc02ab8cc227143a449610898d571fbde75c65631a0a5949f348f2192ed6a593418b6abd7cc6226cb5f6e4f34fc761d85a5b1277132bb4a412440fb1dce0449de46d096240750ae813b5c43e20e1eccfeaa8c05c3ab66bb1935440357aee345cee820fd505a1e1275090243d8270be490a5424a1e350c41edd5161fc5dd8028942c0c0ec37cd67075333f56d7a633f1130f6682713102e387b2e2633597e733925db3649b895ee5428b135a72191cb12d18f22459aa0f41c4f9fa2a4ad92bf52c080e062f424dfa86ea84ef00c79578821ceba5b5e4a906a6a3612b34567d0cf8fad01770626110ebd1d5b1348e5c1f45fb7bed87d78ed4f3e7f24f1c9a1e359dcab911433b78ba761a5ae159630904689c4be3f5cf1850b02abad9bfab0bee130692e10f5bfc6725acc138c5feb0a5e8aed08d71698be01e601218d2500222f176f7d173aaa091d8b1af5d0eb73c1b79b0a66c5e508fa6624b9beecd21ee281203b782dfe95df352dacc9e493e9d63b71c7f16578eb96886207c4aa7f2922f58a546e28b3e51386d8f3e1b3568a9b283b57c975fb0b89180bd5f8c85dafcbeee5705c5f175f94643d7dba327acf7590886fedf6b68e2178fcd555eb6dda21e2c3e53e0df87888e731febfe275c0e7fc532b02c94a92f44b0d4bfb3de1733a0d4762bb635b7db30b580c8ae2196ca01b9be034b854d717b6c12994b1264e0b0c165b446c98249b80c59b15bc947f0063d753f826457b3d4947075dde6026df2084bf6a31f7ac9d51b72533ccbbefd817acf6990dc8838021439cd0b454e58952c353f8876a744590ed70508640e9be1f33805f2e05c4cf1955d015e08b99a71ac6e4458a0d0fc713eeb5cafc10a591ea0037d6dda5d1540c477f27bf1457ac656cc948b217c9c3d32fdc5dc9219e40f0895210ef1c227d7477416725d11b1466de32952e95aa5b3a028af274f791ece1e6c16cbbd98c64875632e0fc1f706b839b7d1a81b9968389178e1bccbb75a29a193ca460365845502c2c68e515c0bd2212cfd6f53ca08d616b0f53c8e8d3637a178142350a1927db9c77c416d9215f159726f56022c3333142987f9d1c018e59b9ffd044638249d807ae8178143fcc0dbadddf766cf4d69c696016e583cebd46612e358168bdd908c878af6efa585f2343a650fde8787f68d428d3a0e0ddd4c275e2ccd9850d7bca8b073258113b6181f2cbe07622ecf268ea9cbad822c7ab4dcdd0320a3aa83685697a1e93bfcd076c32977d59ba4abe1fe7b389999b4e33412c1089cce3f553ce8c742c284504d7ff6926069419f3fd608cf627c4a787786d467a19235a622451cdf4932254e904adcbfdcbd5f1bfd386289620b9555b5b4a7cf1c5942e2ddf2ca30dff784306758a2d5627eb1b1e80891bb7c0ab72bfb2da36ce616f404e9319afd1c8f92bf05ce2a98af4295003ed083b60363afc5f2aac0be547c2202be2cc399d7b2467434d29086c54459d10761af7abbc93e7dc9b55c0d410a73e4701e2e7902a6f9e751d4abf99c7c48f012ec4ae1982ee6b141315d4baec69981199223b221ebc92b2b6f73adf0fe4da36524282ee3326d367a2ebd2014672034292dd451adc5269cb17da8f1ace52c83620d48f1baea534408307fed901622a6d459728bf3ec85c2380bf006d24fb38f313b93a899ffc3616bcb12444f1a215df506b6fc42a90537fef646222abb0ca2820367702f46b2d2e0ec81ac4a669cdabb05419c3de2d038668739f53220279e5ff8caaca270c3126782c9ce9ead0afc9175be306c9d377571564f88e2b959eee578a807c26bade22b5cbd357854ef1968d1ccf3562a97c6ca608b77a8cdcce920826441e9ff79250480e3e53ba625b8d9209a73b53565f2a5231cd537b87b52c1aa607e32cfe1abf44773a1ada31391016f50b067472eeac0ecd393f4c711f8e31da0e417350d646206a794fecc0bd8901a502851ac123de68b2da4704085f66663265f965e9ded7df19f67f569cd74fb91dc03f00a079c0847e97f01fd400ae4d240a753a73fa083491fc933a601e1020712cd5bae9ac311f6435265738490de769f85cfeb8713c4b5a75628deb4a56ba8a68afa717add1e8e4dcae81fbda78b2e1fd6e48cdf2f60d7054603164762b0a50102d300e15a17440e9263524ddbab4d47580af5a8d95148f059c4add41f62d0c6470bad27c1f1710c5f69628ee0fb15a166060a1a2dd2f57c054c2c614a721a5af3a189da23c1ded409c52e9284e4657e71c3a3da5c862ac5055a1ac40554ec7f1cf8dac2459aca89bf454e586268660415d63b00e29603ef544e094483d8b0b2fa311092762e98c3c4111eefc1fb2a31416f97ceadf219e5c00e9350698137008b19013399fc3e4e6a5224545ea1ef953b2328996c048caaf06a5614452a2b160a4fc7fc006edf26b86c2e9ed1f7aa86426aa236c509214b02d55c1d466cbb9a4f6e3cb990bb0919abe00b0d22cf80edb5b7c5c6ff9617f64031db350f2d3f3e931d6e4902fefb42dc486f36a6b9b644ba92b237f573cf8af52db5db3bf9fef68e20da2c158fcca94ea8132e06c38da8375ad2e7dabafca4bad822f0f56621daa191b24abf9e77ad229fddeaefba95dfdf2bc54ad7b56ef466a7bdf183ecdc021c56fdb232f5dede24a4c6fda5a67a5f37402fa7180696f1bb87a495a8091ec92c2c58c4b3badfaaed8fb04b6e1afd57bf6fdbe1e3a0dc37aa4456aa4127d035a57162b65e692d1dea1dddb4dff1aa1957c5dabbce27bb3d60bf1f1a366d9beaa816e3090c1d8dc936b9d6a9c16686a3a9aa30b77579bb4ba5e6c9426fa4de7a64fb4bcb5e25b59be9daefc3e04df9ed6d6433da2bc14435d32d7add3f7fa9df8a6da2d1a2db443eff71ec67b406fee202ea92f79a152164ef9da34df16d784f85668a8f509f49b35a55c3b5e75eb0d3f4bba0a50e917cbf6fce54ac277e887428cbeb3935b189de763ae1de1826f91ae02dc97cff4ab9f742666865d69c9f525dec155f1381032fcf4385aa635bd2dcecf740e6f0d8f3f9a746576dc3905bb82a5f6dd7fa6cc512ded938af3a5b9257b9f301bf28788d6d3ef920dc032d3fc30af26d6a33eea30f79a9f78ba4424609b1ce771318f89d761fd063e3966c8d6f4b9d795955c45ad9cb66479a8add79d991d3050a5f63f2992ed8a80733e4c3fb064b7d94c58b1ef2d1f3b9fdc72e329c91cc30d55d239b37176054e249c160757aaeb58bb3b57dda81bf3eada5aaeb1610ad0ad9f5a8761349d06a8ad78a698bca59a1319a53d1835f65f58e3eb0f09343306f1aa7dc8bb320df068e1ca5e40d7a20327741ac76bad2619e61db7404161aed332f328a8b48b5c76e07492ad0a7a44bbaf236839b720d30ff1b742df2c95d882885aa1901af4e34b36f3cfa5a1f41bb4d7eec5f485d31e85e74b97429623a51629759aeab568995781ff8a920dd94f06c4c1aa82ffd6eae1d6d5238d79e7e3b48dab673c4d9d7bf35f06a5d1727aaaa5fb97fd759b02abe04f97f38366c0c03d4d2bc09599cecce0b68a28fa5acd0a91975245096c43106fad01f1f8518d2072267a682a146dc7cb7cecdbc073e412e2b2b16ad3994f350bd212ef5b63cb138fe4f7cab9449b595d91eecbaf0f1c81130856d3c5189aebe834480de26f77896b213f1ccdebfa1674f5da9da618ae3e590a6d50c387ff55461999b48a74272f0371bdb6eb5fed522ee8457cac4f1feb97e4d3b9f19a34b67ee020d0dff2867aba6dfdd2d93aababe54900ab720c6001e4155788c531720909bff7e0ed07cc926b551f9728490f9f63ceb41b79616eed7adc7919bad9cc84593691d5f30658e7e58bd82da45fe6bc52f98a4dad1bac6305059396d2ad97d18188e7f69140a9b3b766eeb58a5e9ac48e6a24744f46e15c6013fe145c14b182e1347f577576c221786b3576782c661199ab9ee3360024bef93b57056e567ed6ccf60cdcec4a6fd3f7184b5eb9c5fc940cd59da1822ef438f605bdc80357ab0c9d20aeb5cad5b9ec987f7246c591d6c8e035a9ad94dd382aa0e49abe5e20e7d7ce7a7d59521d8dd8ff68fd30667fdeb2aa422961fa0099781908ca840e5cdc480eb049d6978e377ac9ac5dea093bd84804110e737311a018e5c8b3f500e2b11fbb5f24a4c133e803fd4d3dfafb485566810992a50e2e34797ac05f481f602e032b1d5f3a1d7577156502e2e7b13eaaab6eaba63e936e17dc9c2d4e55516fd4466fd4428714bdf723d001ecedf66bfe8080e552c454752fb6b8866fed6e16f38d17dc478d4a5dd98505c770ab42bd335bd2308c16a6708b6353b60119f9b07f1072b5d46d221ab98a85f10a97b8f5bec7d987c974e1a22f85a1358a301ebc55b293a5f962efb10c8dfd1b5d8bdb82bdcf7678e16fced706036ec4e50543ce9bde6ea1b426a00aa9108f98ee3d2123a6656e622cbf922d35eb338cc36ad31f27efda901c18800f7e01d81150e49e1c35c32f9979bcf2f5977f0e7c22fec068d25da47ad91fdff2b9624ab28a909809aaf63ce624f587f507f14744c1cc1fd831980b112703c0dbce0cdac6d10c44395ebd88a4a3bc9729e5bcfa1fa39359d41148e0801a6a9b1dce97288cd1a1d6e8840c0c8d650b5ad298a5f76389c5638af08f70b028a04c6c65f984b700d29f435c05154f2b4ae4851d989d06fda01f4b2382bfa77c2c3a1edc7a6934d5de04dc1482b3c8701afafdb283ca9b92a69dc61a080e422ef85746aa2c8aa5073db79611584c38ed82a0082c8a36cb15d97fb49de4f844a10f6cc7ad1f9a5056e7d3690f4b7074748c17b3e45dba13d9b3a1b270f3bf97f7f1505ab13f727305734d53b3d04b4dfefbcdad4b7ad017e2fc70b124ab80071c33b7b268774674bdf45682d4b5c74b85166b9c2e983e59f62f8c141f1eae6adef23e29aca686ace466588db9ed2be3b7ec16d1cdafb7f15c9dc7877f8ea2b1ebd5a63ed3a876f3c4b50174cf24c7a6ef49c20883cd7ec273d2cd008d90b35087991eeaf7003f5b8e9f552363a260f1e6dfd98fcbaee5539a688d4cfa5c06cf0cec82015db31b92f5866ce53aa87619f6b8658fdc88b9893c3041e17d62b426d0ad49601dfd4abeee13ce4b7c4b0a9453934a507c2b230db521773cb743c22b1f831c2c1aa42bf33ddd2fe90ea071bc693e387fa4b938eeb684783478442126148e18a08a6395d0d1a7a1d10dfce4292f9fcf609ff07484c28cb41870f345ed874667674505e442697618a0673148cbf5fc0ba8f299028d084a84f82931e7b3135f372263b90f33be1198b0e39ddbdf1e302b35c0f2212099005b4db41fc2a1821b187afc49bb6a8297a1e091fef8526e72b9b404be98f7755edbdc5ed288e44e79b7030fba5519d2397844154b7c618edb5708b8b05e99285b74d5a60cbd037f3242043f89ca8952082b90b2e0952d3c8be9c04afdb256a6c13732f2ab995ee5b859224c26a3570309626d089d24a6ddd78f1a667779f4610c4a2fdc2e9344a503bbc7f9c377fd46bf434c65938f3381c163451152ac34cf81607133afa860a205e0c89fbe794ddeeca04ba79c21823cca04e5ab19c02b0b971394b5701ce82d95f6bbb57c4ce22fd9333e0bfd420cb64c4a6ba7c10a4aeac14d7a27c4ca520489f348315a546a95911cdaabfcaf4cc349e820895c4f8b71767273c4b30411d0144b369238791fc217e8a9483db8d5ba60e0f084da0440b47449eec2c71b88a85a52207e09b04ca2db6501cb2a490946ee9a94a6147c46dee2bc6e8d92252913d3aa344e205d48c04d0bc5d348f6aec480989c5f5c4438d03e4d0c453aabe5d322f83a1dce3cdf72963c842ff66739c5e877218b892bdf02579742542aed53d5638170b446ec7151e7092794816c7da73d114d150a467efc2175eaf460469048745e990141c2ae7956a08d6eb25d37ca4f6e075696bdf53639bb66620855f02671ddcd6d253ed51416dba9a77329991a39fc3a581a603a45d2dc4b612c61f25e5d1538aac28eddafb0fff06e78068c182caec36ba8b2ecd903b86f78272c375e2273af56946f0a432667db88252abdd0f0952787c112b609bcc8c42203ae0e915a242fa0d3c2e2282b2170b739bee4e0f2c9613b657af74cd3e838a6e72685e8ec2cccd4fd77403fc503d53bd5a7fe549c9d8b54ddc7d18c478e5e4c295ddc9f290ba63de5706a85abe33244c3811bcb4f444ce79a03b4e0ae2d7935ee34874767778b1f21cd64ff0cd8e23b325660450567fa8bf6886e8056e4ccd282af7e810080c1231d1828a87b81c879dd17f2638416f5e90607ca28b414852699d24a88036ee3c0b1386a2d11fcec34fa964b82e85a3cc66047c71872a98c27a1a4e8666d31c3721414ffc3c6b76fc874ec4a132333ed6f6d9bfe02708547e634e5cd0412adc1f61bd833dbd0aa53286dc01aaf38886f3bff23aaa181e1b49235899b0613837dff129d4205d9fc88c4b263f5839b7ec2594096d343385becaec519c8510121b8e21b98755bb1e7a2a8035772cdd7b17b326d9d964121d15791b14ea57b81cb73f867eaf3db3336f0937fd4b9b3de5ccaab5b26b2d6253e685e7b71d93d25345e2fa8461045c2541a0f15b21b87afac4ad80a9767f00ac293a1c0f7a19d63020c462247216aac94fa9b76afa45904080b191d9d86aeb5034cd028bcc273894ef89846ec55bfe508fbcb37b02b52188d2a0e6d2abcc6691e80342298d0984166163596c385ec836a79d0da0ae627ab3b51e49a64a80a68bb362851094e7f55ba145a589d1f4333016a4c5a934c4755d38afb5d0663a2850e21b0859ba7a36c558a0f200ba064c6d85994c676d833d31f7bd6469da615deaa1eea45c95bc17dda2a3751c8dd208071c9d08f2de0637b39ceaed67b883a4614b4b341751833e2d8e95b0e011966de20a4f00212f3702f0a0e4207b58e8d5cc2d28f2bdc86bd3ea62919d5006e2c7243c3a494cad5d2e022c0146d9ecd2a0a41ddf64fc575c538073bc27913388e75360dce2170884eb476dd5caac20d4d582496b1e9579663188f895d163614839aae8880942d0b808d9c7bf8a77c242f08866b37737156585196e5ca3d637ea417a17780823cb65541d97ba641f4607c8fa28700463d641aeb2cf82bbc0cbca49f9f5f3e30c9398c0060c3102d3dffdfee44ed91647eb3c432a7e5433e2dc0743d25397f840ea47f80c0bd2ba82ffac106e073e1027019bd2385f054a2def5e20d6578a1415a70fdea342a0277b18695372ed10c321c00ae8bf9a0becc0b905902f76d8217a047a21d26a030280a50b9dc3432ad7a0417f76eb37dc84168ece6ecf78f78dea606a36faff3908b700e1a1ed18df445351874194f015026c9b8bd5b9df0746528153b4d9f5efd8499f04fdf8d83b8800db4751a4034fa76685bf42e34c374d7e340722946f71c96cc214cd33514c52b2ab64ef18b6d2c8956ff23add25b51dc49e16d3bf94e51f7b07bf129419c932ed6603e7609b943ee2e752b0cb3631b0b67a65bf43d00597342fb5d9c52d7eef42500612cfb38e1ead893766ace8b1851d3f1ab381234eaad1b1d137f097e8d1a9384ec075b71914e133205922839d38fd14ffd92d35f128ccc2869d34f6e1777e2c4d8763d8049cd580c6d0293dc36642e222ee429c295083a68fdc4afd7f39a94888aaaa14256264844d2c5e0a49e9bc9c8a985f42d9eb58b4f5b52a00e5fd38f1c29c1cae536b14be48edd5c2e44914cbbb6129e92b239725d44959e844895a5779757731d573d6c0f60d63ecd1e3293b1f2e27a5f91d585928a8839afe93699d82018ff1b8cb3c6bc5f5a18511d52f03ff149dc6e0ea0ff03cc3d69c108854788feb7872de72c604d3c487af0963482d5a123928917e4142db305dfd2d02001b9a8a6f68003a1a46ede3644330677e24d000b8f66c308c4ae45189c77135e4a3f04ac1148d4cd3351941f445cd9363a02418eb52d86a18a0ee6635a52aed136754ec1b76961c2a8e054e77b0e82260b7c72571d905d7d84491e98b07f03f0da1556678db112ef811869de26d6c5da48f023bac1eca246dc5054591fc9c146c80017b19831323e92a7e1258540433650d3ed071b5125874ec05e1114583615418bcad89219b7fdd4dccd490a5cba0068d3e8a7cac593c593c54ad1629b6cfeb294737d5a5823c2ca3a96ce4af007c3a2b453c2677b892cd4d05adda71019f2ebe1dd8b246efe5291bec579259f3094d2005adcdb8b38dadf1232105f1e1dedcd11080743124f7d44b6fe005bac394ad2513bfc9ad3c434935934be91c94828a055c9fe848d864f945db24cd03047798938d827708d5a4d822da9b7f435eb74e959df90ec931b638a7ec61692a9ee4bc1528af45d5a1d6d077445a4bdf23a2c3e383c6d456b13b6831c35fb61271e93e4e2a4e4b33cf6886def8c42e0b820ec97daefdbffb7ee26a5867fbe1e315263e279b49bf7e64e30f8534fbc1e3dad7793f0b425e3a304ec4650ae099d5c5394d6621c248e9de4ad29fd0bb851ca857cdeb9cba462e926bbe9bba980dd26f7ea93f74e4b9dab80e23e6dac5ec1f9397e1027261631d0cce7ab135bfd7a43675a3e470e288e2199415c57a8ea51cf85ecc9be647e774479d265ded734294e1483eaafa29c62284a13d84ac934e47b34fffefb41a9de6edc82cf8e4f9b2da9d9d01dc4d7444a456f54df9472de521634e3596c6bed96d7f3e787ed6a21e9f60234892a3ac14e7bb04d621e9c6041953ede478c8468941636c3afb574afec99e1650219821a503a684bf9a8f0c157d84018e126007758a146623b86d8ff94cf1956ad1752cd5ba9042888f489aae167f78b95ffc357bff6026bc7d260050366e6dd45a5425a67bb3614a4288952325a5e25262158a5fa7c01125ec0648f4de418b4aa7ebaeed06574e46f4389c461efdd0fc08f6c39b52ad36ce7ac6c392c8f919f540d29f96b089d6a4c6f00bb4ad901889ab5e28b5149af2e7a9e5e3ca7867c5d0f2d2c066b95227b2fac7fe267278532aa9f14770548a0146bb189e25f08120874b355949bed6de3265bb2d3936a6f4fb61612409ad23b9589aa80b31b8a385c16b12cbc3702f0b300e03666e6a935adc224c311691687cbfbaef7634804775b6b8c805adc3fb37dfc0f033731686284bec4f89391cffc9aec0f16ee1873b07bb20dfd5e2ecbb71ab8c01b417c78d8435e1e4410b1ecd8ab367fbade63bcde2483632d2278689f646fc99e837d130ff298572f8fc28e01ef06376eb7ccb6e65b13ae49d33bd90db38cef8dab078e4276c7c432c960648f17ed172bec48ab0a39c307067f0bf1ce62595b6763dda1f695060c89f3ce9a26c89e9bd8b94f8b8a5585eec3097434e143a62a096d494f4060446945e577289e5e7992ca489ecd6c0d4a2b6812b99d89a9715b19d8938ade8d544677b715631c5dc26d5143a0d612ad5debf5b5a51a329a412a79aa7ce41e26a575c04bad58b7af1d04eddfa9a7e54b730740fd4487132afc590986741fed4465a209d12ed3eaab9f5d85670090dfc1f5ec5a6afd5ebd863a423f73ea49b75efa20d9925af5a69591102256bf9256e88cfc53b18e16d573718d91dbac4dbd0eae2b038e7f5b85a09e7461131fbd8a0e553c534ff785a80944ff46ad3bea0916b4886ea7b9d467cf329cfa5db4ab150443357beb73ac15427ee9ed0e4abdd125c2d69fd24d145f2af7aa68f56abdac3265255f5af14beaab10e9895519f431d03be6243bbd3baba18dd2b2aaf751530785950fb0d062ea7594b1b4d4ead7a815947dc77bb1be4f6a858c80a161e51e7055b85b469123abfe4b4ff6efaaaf4f754c4115e32456206b0eb50ef25c41a2e1b38ecff8eea5daa933d1ebf007a896864d63c1f54030b695cb6b216dc9c2feed6ef1775cd7842e36d0f45af9c1c5c6258e17ef3a555a1b3f7c4b22e74f11eb081b1f7b0d46b9828ead23b113664dbb442e54188269dffa500ebc30ad6223d792729836660b5b5ea0e908482dba66b9fc678f23c3c74b4dd69867becbe3e36ab867f836fc1e360c7f4fe3362e16e2ea329ef50c58e97958db7a3de18e92f638df16347da63cdc5ceee34bd31e8ab83f47d7d66543d3350caf738fa06c7f9c12af3e26a2434763352555c67698aa3bfa5d8f81adae86936508304a758f4446d5f263434bb1690e56f264622d25bd5115947db293b6a55d1d52bc3a900ca406fe33c265d48f06200127069b46ee049ad9d3e903c5d0dc835519ce235a07ccd914c35b834add29fe2a22830a9c7314a793e465902ca565da78b16a93c58fdb2ae00940ab55d17a2ce8fa2cc6a9155eb7cabc41f1aadbab4a3727605c8cb524e946d174fd1e8fb9c450e9c546ee39a907940943cc0a8682ab2326d57a51162f4cbab62b9346861e08f3f1613a78ef53ad68cc30aec5b968582c53eb9c599a5ce4cb36c31c73169d4b3d9796a62c81f0585261d1d895b882762534ebc6a800dea7e49849876a9b7c361f8ecd8c47a71ce8af7070bcf18493b64d9d37fd7354c5b1c0e6df37b30b1ff0dde62c81d27d84e078bf7925c706c1f99487e51b0d3977176736468d118ce8cc5691c40d28bb196b14e345a2dce003ce2c826e075bd6947533298ef736ebdbd06be36db3a24da536ed7b3317f28401756373ae0dc4361d6dbc2e9bb9690286e9bc4d9437db738c9df35ce28cd5b7a4e89638e06c334328cdbf435a9b09f8857e171287f1c6e2c3990d442450f1c499ddd645d5c9dfcc5e1c30f2109cb103d764186ace3d8f33230537d9868e334b2e11f191229aa03ef1be40017c9db354ef50f710c01fe6a2268a180730dcd0ff72531c1033699ac6b711ad7a7da10b0a0f9a9b44597ca2f1b1f17a852e631401b02af6fb333b1a20bfe2b6d1a5f131474a1c944e2e0657017583ff41d3e0e7456a723a29b50af40b4d8667c21184601e18e5fec84fc0a896d5f256ba0c912884541febe7bdc166ebf349fb2dd1f48c7f919282c6a8b0ba7bde29514ab5fd5533dc0da4611bb4174f3130206230a388b29ae586ac94b5810a065b034eff4499926184b6cacc50a24d0af9ef47a4a4f531e0d07df09ed106fc6e2188fe35ab80ea4957c7bf200b522e1c55f3294e1b358c36076e36b3f79c63eaeb76b08c2c7b24ae2914f51a6fa83cef288cca2583c3a825fc8d0105daceb1eff98bafd5b1cf589f2f41cc20f10bf8329916428387da5ad22b9883be8479a6a86a098e38afa4e7001b3d6756e5d48d6b412892213aad081ea39f3020d73946ab91648c16c813a97a84c6594dffc4a050ff66cf2bc9fc8cba2215c630b2574bd43582d3c45a546a18ee45f72a76afae5c5febf29aa2cb0949377ac08e656bf719e6067f3ccc95046642c8097358cbdf1a17c45b07d46cb1482b30ed22f6f7212bd17b6f7da525f5b7780712cd578d77370c96c6c287b04c7462e8e1c54e0fa9ad2109eae9859680b58bf2baa66fcce6ddbebdce41628fd52dd60c0d1395bd795be14e15019ebc2d400167a06a6538767f5f0c025ce472c4556dfde84d2c6e525549b61186360be95de1aedb8cd51c104da14d8cf46db76a38e8b1072bd238c14724b888ade40ea6c25a22b12c1cfb08c71ae45011a9ce34cca342cc657543e680b59d70d244833346264340acc9016a6aa3882c7076281d30c30c33cc30c30c332a19f4766e8a82805238a4182e5bb6ac88a0b96a3650b23650b236a09462def80832081a088958f2a6d2a9cf992f720311fbea95ce26f30eb1a6f52ac7173343ac12d3444e57c8edb010cba614b147e2d7850c426c923fe93c6924871a25160630883dbfb6332ca866de5d10ab03ff14b59269fc9e0462cb8cf129476530bf1b2056f9b8a1343b1b41960b8e0a03f8c31aa7a1743cfcf861c9ccbf1253c3cb7f9d3eac91ac7ebb1c7886c9f3611147b91322693ac27b5826de573d9e3d07b11ef68e255b69bb9b73250fcbe8a78def0c3c2ce2ff8fa2f2424667eeb085b2b238f7bb1d76a812f426b2aec39e9d2959cc17d361998d1453c2c79872ce73d8c2e95ede874f9abeca61b1d84e9d28dfc85989c38eaaa2cb339e55ec241cac15ebceb521ef23db308037ac51a4649278641c8d1b96731c2b995514e914d286ed414ec94365c31afb30546420ae614b9a2a58e75e0d8434598f35e948c3f6c0271f450a1ab6c7112697b38183d09d6111b518a5366c6658b7cca3462b56866dbc1f83bd0db5f98b0c3b280731b3538d61d1ae8c543388cad02286ed23e7dc21e86158e57a3467e3d0401a6453180018f6524b12f10fbfd3fe2f6c9bd2c3c868467c77f7c2d6203e9f9cefd744b30b8bcf9af5a825cde42517b6ce0829c2fa2d6c132e54656bd2449d68610f4f4f072b8d446dccc216529c9c42b4061618ddc7202bea615d3c802bec630d76b773636ad4b0c2162184e4e02144b772555826a3891519a4077511bf00062808010d5af002aa280c800a5bac8ad1c15acfcd3faaac8051704818c01496182556c84a481a657dc00a18052702bd240c400a599814f3c3e0060610852d678ce17a92e9faf44361498f9fd652ae0f39fb13b618c242721a475b1274c27219577a9ecc9773a70e180406d08455fe2f46062b4db71e26eca8363dd4e3cd8ab92f614be92dff4d8f2a345a096b4ab1524e8a5ca96232095bcaf8f373ae0c242cbf1d553de67b43e580011c6115b3891a731b588e69232c695433e69c9c1e06508465ea3e237fff2820c1060a1c064084254f4fd0cfc8c1e286c461004358c6e4b4437cde87f29372c30084b045fad05039a34eb1a7085aa08011bc80041ed0fac00082b0e794613c9684b4b0df0080b03a0c92171de74e63b20207b860808b0638601103f8c136e9ac3afa34bc089f2560003e487f3e0349b50624d0330ca007ebc5d8f1422c4d7d7021c2007850b8cb417eface42ceb561003b5833635e3dcaa997395a290c40076b061222c262d548fe6f0c20073bf486f12f2b44ad1033001cb8b8c5b6da9769f9b81454990b5b14a723a40cbf16baa35a105f1a0d3a473fe8b7e082167b8a799cce63eec658cd62c987133fcac590b977596cda68633e42d8d4988ec56ae9e54162c7cd5116586cb6a962fe5039a5cf79c532158354c3fc8e16bb620bbb0c4e3458144b21ad583de6069b3274425e59b1dea5a0bd7fe13b4463155be7ce3078584e154b99c352b1de845777c88d0da94ec03150010a3e0329b0800b0634c1052ab6b5d18fc741f3c5f87912b46003a50417a7583d4c06a1b6225e9e6f8abd63c68cf760538aeff7e1a36017644f35b820c512efe3fad25df806145c8c62ddd15cf319c9e43007092e44b17a8594aa3e85b4315f2750810a2e6052a0823317a1d8c2efa543f30f0a54400117a0d84f4c34423b7974637c62ef7c8cb42ec31823972e3cb18dec578a0d2a39decb5ce0a2138bef57ea94f4e7c43174f7e7afdde70f175c6cc28526888a141121968a44997a8de30c73cc2994ca442e32b1878cb2d393a94f6d06062cf806f87700010810820b4c2cfb318e550e195c2108010a7c063c707189e5c166c693efc26a9c2000019658935ee7550e99ea4b21828b4aacc991c6e7984387902325d6a81ac634c71c0248605c4c6219cd1de3703a2e24b1eea96798338d9158ef433624873921f3ca028925652fcfe7458f58434856e40e07f1271303178e3883f9fb9056823250010310800016b868c48ec2d46f3e9947b349d593a0052f50178cd8fb72348ed8a0be56bb58c4b6e193aeb4d3b6d18403178a58bae27eccbf1569d3271186b5d3cd10cd4c0abe0504022e10b104b3a823ea1f2e88bc020dbc80040b1896025e810b460b5eb0827571883f274b69525205172034706188353a8d8650bf5521322e0ad14f78dc91333ef40e2156bb945419640c2f54655f162e06b1a5d68620bf39bbb40e002c5c08624f599f2e858a04620b8d267ef94f43d2730188354986a4906faf33c6065c30c00507d0c51ff6cce8fd3978f4a6e48cc005243841c3c0851fd655f35412d3a9e7f8b2e0a20f6bc8bc519d28f3618b3de1a25cd0f6b087f5c4bf0cea6171e81953c67d792c2317792049adc7294b216e606022f002122c00010898c19b149060012f4081036a400319a40b3c9c0a5cdca18db38aff70347d177658ab614a637d6592e38f20cb5af08215b8a8c321e3d838ac249880f917b440051a70010926a0010420c0052d50010c5c800004b8e0bd053050810b18e002010870010944c00b300703172ec85cb4c1e0057c020720000129f817bc804f70aa0440051774a030b8384e7ac73e4f1673210703818b382c9b23fb3b355d6ed08f08b880c30ead3a0575908d63fa0d9b784ee7870fbd0d8f1b36dfb38f58db95476ec39e9d267943c5f07eb061f1f17c513a3eaf5ebf861d849461f5258d1ad6947256c31b4d1a960cb66bd25f4c76050d6b070d3175797e06eba227fa3c671766d82a4d743c29cc536f98cf9d0d373c03990ceb47cae31c29e53147c7b066143da30a55619dab18d6cd9c0e154f72c453c3b0548a1c99432565a44930aca9cf3be7a8e41756b33c6925253bc96578618df85d5ac977d652ae0b7bfccf653e9aaa95e1c2d228278fcb67216edfc222799151c4a685bc2c8e46a5ca4516b62c4b8f91a36306a971c00c5c6061d99c1b55031268a005164000026ee0e20ae7c4c71752863961850b2b184278249291ad158212858b2aac6b35492ff9e7820a8b6acc8e5d293208e1620a4ba887c1264434840b29ec5f9a651dc6422e4d45618b913f24d37e8611d3205c4061cbe3a16255e6064fdb1356c71bbefa6f3db870c2ba1631d5499fa39c60e5c14513b67456b61d44f306472b1d5c3061af89a51986c55d2c610fbfbff32174b553c80a5c28614bcd1c352f4f32a82f021749d82ba30f999ae0255c20618f8eb0dfe17f9a4c9383122e8eb0e60e9733f141522ecb0a02e457441a4f1f0dc3721977620839e719c260d86f633fcaa2e54b39fec2f2a10fd43c3da8e57861114dd63362713d992ee85936571655b5332a001776942f94c4ac28be9a6e61d10f8d924b139a2ed5c2fe18a6669a4d1636b5d15c9716379658d8cc4ad77a2d578c7d8575527246f5e41bd2628525525847309bbf485661b93421e54f0915b624a733d12353587befaa7e236a4294c2226661f2e7d0b0ee4a14f6fa6e18b33650581b856c8832c9023c6133c90c5392449d9ec8096ac4e9b270214583139c8037e082012e0c0a60900100f0a0004dd8c262f08b225621499209ebf6255d3dbd8d98b304acf3e5383fb13f9e23c8b2381440098bfe26cb7168bf292761c9b963651cc34858fd3beff389a70839c2523919a9c4cd84831861ed8e6739a9e4666411b6606a9b1e3888b04546f93ae48a0c6149cb873641830510c28ed393364c9b9f6fc70204e15c1999a792d20c0500c292d1768e128ecffbc31f6cb7d3bf9a526399f7c11e198749db97fbf6eec11a1392629c6ae3340ff69194516826b599e80ed650713257224307ab84345d798e9183bd7286b03dcd502305c0c1aaf6351bab738b2573969674e3f28c3c5bec404f3b26cf9b788cabc5fa20ff63456eca113a5a6c2a0e42a29de8877f168b64bc3aa3391f9791051220165bc8192a33ee7c01170c98040160b15dc7a49331c5d7efaf5875f41c843469e9c1ae582b55e379688a52712b16e9e41b1aa2acd8be2248c664de457415fb4387964762e70eaa2af67091c276a8a9d8ae1c4d6f86986744c59ad2e0d7ea537284a758623ec2c984b49d3233c59e3434639e9006d1538a22e3902ed5e810035cd8914e1080149b8684c530ed0c77a9516c9e66aa310e770a48f002177c034490021298805f0006028882916e3423379a8100a1582797d8ec3c8a11558162d97c19dfa7ae7d7f3eb123879fb3e3848eec3db1e71dddd519d1af3bb12709194d85305297e1c4967347c8c971e3f92696d028c2568a4f086a62938c224ec6102c1c9e89ad4b642cd505139b75fe45bef4126bdc349d394549468a25b6156bb49b524c5f8f4a2c9f514851d246870c2596ee50b712caea74a3496c23e9fecfeb1b8124b8b41c3c91d86724a64dbe1a48acb1baace722a5bece23746891f1f5c611fb8685981832de88c5538c4efb8c2bb13a116268d58724f145ec316d8c4c31a78835fe5c9f4ce85479eb446c9792696e3a4527d588d8e61e7ef2bcfc70317c883dd2a6478fa74942081b62cb254192947578ccd042acd6a843e878282116afacba5dcd60345c06b1e449ad0862b18c8e8137083946ad04628dd43d166532956612105b3d486a21eff987a51cd6dac3c9df0c453fecdffd7139c3aa1c52a30febed661457cdfec23a3eecfdf531951a3716b2876df7c642eafc3419d4c39636846e9e92f3b05fe30d29238d6caaa40402e061894ebd69dc212610e00e6b6e758ce92aa357d62eb0c31ed42e622f75d8bf72ef8654c6a0a1c316c53653da6a3017ce618beaa5a5bbd1d27c7258d2accaca1d87c5244b67b23a70d8531a454617ff376c32d699367d3eff9077c36ab999f2b2f32efe6d581a5aa74fa7a377bd61438f1c490a3fe91af6f2b2dd184f4ab7a186e54a2bc6b4723945cda461d514c55344b3cf47a3610be1d0ced63cc31e2d53e7b4879b61d38c71044f312fc3129bba934453e3ce21c3661135dd85e31095d3635852d681ae8cdd46da625833b40ec92fecc54ae9306cb9815c7ac906dd900683e367fa0d75ea2f2c1d9d7ab941ec48d45ed86e4aa2c846acf8bf0b7b9fef45b30ab71ec38545caee22333ccca1d9c276a2f377b6f93e64580bab5c8667611ff594239ac61ca9622c6c3bd931a8639422d22b2c7fb5ab0ed2a7cc8b15ba281a3f56c640802aecf0e394de844b3984506189babc9fe1a15358cc93558c74a91416cd90bd15653296d2286c69c35388d497224f0a853da926d98a9e52d7fc843dc2de7c0cb93861479626674692e1435a9ab0e70cc4824cda380f16262ca20d32c8539525ec9d1abea9a379c6b9a2843d42ba1d15ef0ca92b49d831cad930859a10fb4f24ec3034a4f9247e7a7f1e6187536917df6712f634c2966affa7e7222c36fdf8e1cc68ca3511d6d594e6b6d2a78919c2162d7e4ef12883ba8810b610ef91ed83ac8904616f60de1b43a4ca98251036f9f86b54132fdf3fd8424c5fd40abd0ff3c1fe79913224c5d9e87bb06c7eb4fb1f41c2a3f060b5ddb8b20eb30d3fb2833d326732cb21c643aa831de3ebc79b57523639d837248f99f223000ed61f097212d3e5165be37c2656d730b4638ba5919c6c07cbaa868e5aece73d31c3b1d4df1983166bc4643f3ab1f6159fc51af2fe5a8e4c747ccb62cf939c2ab18d38712cd6f4ec1c227a7e94a1b058d3dfecdeea774c957bc51ee46c3c6e96a7e3ce153bf08eb24ad19472b7628b9072c61c6b63c50e356972987f63c8175bc5da0f2a6aca55b1d87ac67675788aa4627d18a35949fd382e51b1cd5c96858cf17cb44eb165143392dfce91f3a6d8515c1b7994f7b9222bc51e4452a7ade95a8c145b88bc943b47e22f1dc5629aab317ade28c910c5969ec38355ee2e3b14fbc7a81173b51ca755a0d82c89faa73075e5f8c49e393d7f358c17d97b62d5beef4fda20a74d7762c9d08fc265a029cac98925e639f448492f25b8893de44bdb4a3969d0912696b18b5d9bc9fa7bff4cacaa9e9562ee94eca1848935654344826e2eb1c34b4b7729667886194b2c0f75a77ea204cb28538945c72ba78c10a7c4de682bdc35ae0f6bf224d695d43966e86144534512dba37df85ff98cc49af1c3510611127bacd2da8c3ce4652a1fb186ddfbe8d578528de8882da50c83e3aeb9a06a23f6d250317fea49462319b1f7669cea912f4c18c022d61f6d60fd3175f62a8a7053c888d5eb645fd8f48b1c2c2927ef1464ce262dc684173858221ea7bf247d7efa2ddafe47a9d6516cb1f4688a07914d2dd698e3a3fc4034b4d8630669e626dfe7a49659acf9f943d49c5156e6892cf648ff98415d9a4e79b1683c878fbe8729582ca65eb9e2450b3137af5853a898f4534457ec38fe7d5ca594e2e45bb1c388f0e91d3dac58579247e3601f3c9267154b9ae5f14ad3ab6209e3712c77bcc9a549c5e6f9399f1b4133c351b147a4e8a81e25f7aca75833a730f9543682544cb14dde470e29d57a455d8afd62780795949bf1c2a4d861a310c2625e47518393907a3ca68862cf7b1e244bcc50ac99736f3ed98c7c730e14eb59aaa9830c4fe37f9f58e333ad0789f1c49aa3c587153a6dd9891de5c7a1c3d66472c87162cff9c7e244aed4d0dcc4da30e5b118e2e3ec569ad8ee524c6e6fcc1e4f26b664aab99b966bf9423058417e31e79fc9f5fc251649cf33af1829cafa965842e226751cf34aecf0fcf1fe7f77e8865262491ac352907b0c3ed3496c197cfa1c8d61fe9029925824370a6924e3e5b0964860ea78ebfbfc84c4962fc7a8720c5392743e620b69c33c7fe878e9278e58b42b3646fc512d131bb166478c664dc8882de7b819d1d9549bc722b6559fd1b9118b7f9e22d6e9e8293ed2af1035114b98e89df5ff296f6688d8f6d2342a1a49f090926080436ca952380f237de38f36c41af446f776d3e4fc0c031462998da2398efd0620c4222ae94453c966eef104fa27686ec1bf20025730c0208635fe31e7414ddc94206e349e473dc5ec6f3c10840919650ea9901720924a29fa2faec774963f30198c6ad7877e1844fe58be194d8cb5fb60277f102948366c381b800f4bcc401dc6081f2ae69c3d2ce38d1ac5eb4c130ca087e54178449afa8febe761899db239b3102ac77858728a9e817de70efb4e759948c685db8e1d96f3bb6f103e5f873d97a3cea19e3958fc7458a3a4b2dc9532871dcf6ffeb38f0ffa7c39ec704772761fa6d0691c96d028c16bacc279e0b03750f5ee149a37ac31d77188c6306e58d5a4f423e84492be0d4b66ecf8a04b67c3fee1fd393fd71a49be06530ed1432ee3d5b0766fcaaa947e14d269d8e461e985f0383f4e1b0dfb86f307e2377e21a5cf404eb971045b8fcdb0c5d9209f3a4e89465c862d470919d691dcfde042ccafa08e618bafc978e4d16e64a818d69833ad4ff00bab908661dde0d1cf2726b27e30ec13a36d089ea646f22fac0ea5ab2a72fd7be285f53ae47c14e392c9a40b8bdd49d784ec3c1a162e2c3a31931557d9c27e27261243aa4507152deca7f1538ed58df2eaccc2be19e30f29cd89853562cee3cf1e89d92157d85185199dc9adb0c936ae6d6826e97515b6cad8152d55ce286a2aec1393c67df08f5c295358c646824772d88d328814564d2beb39964e77884461c9b993d1942c366aa0b0e45e870d11573aed276c1987ffb8f8d0096bae1c73868818e73a6cc21ace3b07b57f306191e441f6f4567ae3b184bd71873946239a3e194ad8bc236423fda9983692b047d9af09b18184e542efe5d3180ebcba236c3e1a82d4a563241d33c23a75d6a03e46d58d5b11d67a70d939350c157523c2f261a14aada1c5ce3684ed72b3e2785c8c179a1036b9abef88cf82b08825f9b32a5fcb3010f6b1bd4b92631c9be80fd6cd2094a9c714512d3e58346584ba898979901e2c3e615f32212d62c8833d4684e48faf76b0258f8e92e758078b45cd4ec808e560ffbc21ce688e0170b0efd546a4cc4fbfb9c5f61f2dcd3fce0cd3f1b6d8724e29fa24532af5d46275709d2cb236b4d82c67ccabeadf15f5df0046a100b3d8d2785ec979907061238b253fadea71e3c77131b1582dc6766ad497fa310c2cf61c762ee3f0c8be8fbfe298e2e78dd6a34c4b500057ec611ce6a07629a6feadd87e574a43eb22dee9ac582c1fa6930ffb0f415fc51652d1ac8366e48355b1a76a073b8de8d5b453b16a8ab46b8eb622528d8aadc3a49239ff143b7034e69739df976d8a553aa3e36432976291a4215f878814dba334edcbcb953be351ec25e9737cf2b8cd19516c1a2c2b85ff34146b745986f54c01c59243dfd7c49cf289fd3c545626c361d28b27d693d911df505752299dd856d25753dce871a2e4c49e7963884d39694f9c6c62b1b510b6396fdcc38926f6918dd1e41ea59d8a99d8fc936e98d862ceb10dd99f4252788965a257d498c92356c7127b044b4f9ffabae3afc43215f773164389ed4c65247ee54f139dc46a195d868be190c416535cee09b98bc45eb949d363de9dea0e129b6483afef7d2069dd2396e899f443d587e9c61cb16414bf1c7deca5c3ad118b065f19b1ef4c4c83dd0fffe0456c9f624e777b658e2ca58825741fc7592f116bb435cbccab39c4502162f9d497616726ad790eb1aa476fc75831c49e311f1be42cc432b1391d3a6e943521c466a659b61a553fda20f6f42e1149be9f277f04b144f0a069227ac54d3981d8b661cd8d071bb1940388356eb08cb58ece37fd3facf171723b3a3f2cba67a91edc57d4f57dd82f520e8bdcaf98e1c35631e79ec9bfe2dbd9c3de6bb32984840c8b1eb6fb0c31a9e5a86a7c1e7618b54c1bc7e061cf2191f3fe7758ae41d46aca8851d1d8611d8dfd1d351ac64cad0075d8f3a968aec6d36147b33962b6efd2e5150d0598c31673a50dc16f3cee2d872525f5e4e88c91abe3b065245d3f56ea9f4f386c355b9ec7c737ac97d92144df4aa7d0ddb0d4cc75dae7bc0d67c898a21d56112b028e14800ddbf958380d371e33f91a960c23460d196fa4f8ad86b53f697afcdc69582746c75f8821850f361af608f394a247e4c7197d86557b3f94a98448f0da0ccbd5a6c79d1aa75abe0c9bf8a698a2ea99d293619f87a55515ea7999316c99a7d7e22d867def82b071a6f471349e5f5d870304624fe23dd69ff12fa50288d5b66652faa7f8b9f3871d7af84a350629c5b81fb6eb38edcae13e2c3d231599a37c5853e4c2a5788e656aee61cd90b973cc28671862ea61d11cab21835ce661f9de901be2aaaafd040f7b881ffb21f5474fe60e6b944dc7a934da61919c3293e4fd8a31631d16cd3817d38ac61ca2488725441e658a92b1fee11c7694d7343a94500e6b54d9e7b029535c7cc461b38a1b110f1efcce01874d534ce953834b7e9d37ac1ad7ff25e5b7dfbb61ef489b7c1d7d6dd8e743f464845c1b2fc7862f38aa8bd693356c11637d9e2b5f9e9c1ab6b0feb090c1e683edd2b0cacc5eda0359cb6934ecb97385a915cbd4e819f6b0e3d0cc22c38f1033eca83f7eb49edabcb00c5b4ca9629e4b39e30f32ecdd214c7ed0a81bc9c6b07ccccaf390f15114c39231a88f1baf3f73270c4bcc496e33a7e48c25187678ebc9d643f5852574a74fabba17d61cd3c695a6bb408ef3797b2785fe29700215a8e0026f380017f648d1ed9c9f9622dec2761e1b9eb9a28525c4695afa9424bf9185f5268708b515f2060b0b7b58c686578f3277575855644a32884c71002bac163c56b275103d66a70a5ba84a085f12e2434ba1c201a8b0494aa61b3185947eab034c61cd5ad9e4971c2547f61e400a8bc388bb8ec928473a51d8534f724a99e201a0b086e6a514462b274e26053038df82e3c4019e5008e0033861f9e4b927e49cb962c4690083a66ac106186022f0ef00156c40042920810b385032718026ec39077938199a5d871c262ca162c989d94ae6ea2c6139d3981dc9314a58927734afeddadc1493842d7ce8549a73c8e7892361fd95120917b74f2d7d84c5738274462c950fb6117654d163c6381ff8565d842d2ee406e9d281fdcc445892c710c452d643d863c375a5321987770a6189f9733168789879a71513396c301308cbcda518297b567e213f58b672a4b247fb60c765a1534af1d121d7834d23428c6e4c9a558307fb34f0ced49e8afcdc0e56fd182146839c3caf3a58a36e8aa7e68993d272b055ed59ed653ce20038183a4e1951ff2ce7d68617b7582d55ce9068530e5ed862f995dbf4313c6c5493c4e2452d7e98d23f28cbffe8928417b4d82e5f75fabd8c17b3d81c8f25f18c1eb7ff14410a486048e0df8031bc90c5ba1bc2c5b0176e354248bd88c55e73badd61457f73849378018bf56147a7b0f613511348bc78c5e621898d0074c53921499446969f82a078d10aacbbb364fe717f4ec02e50c10ae0f082158b4fcac61335e2808b0d4cc0c50a54d0820670c005035cc0df02ff0694be58c59edaa32945959e0b292e2081b6e0852a968fc15146cd8c326f48608254ac31049f7d181f598e0e155b85ac5c4c19e5a167a0e0c529b67f382ba69bb917722778618a554d7732bafe147bcf17b820042a7841083c042f78179ce5e04529d6158f711bc50ab69a9162d90c836e7d469055860d5e8c627d5453f2e8e255493a4e4066f04214eb94e5c717d46f0171c08b50d80b502c1b3b73699b2b15f9179fd8a136881653cfc69c234fece8f26ccac37a1845b37dd18961667cbdd7382b670840801a5e7082d16e9cd9c4bae349d643e434b16cf22b91abb55c393790f022135bd76df7c7b898c1849820053018010394f0021357f8103b84090c2f2e610c7711c53aec85179658b32ac6c94f9d4a2c398db24f62a8cb1b082f28b14aa6ec38585d759ce1c18b496ca651c36ed820b94b92387821892df4c689f20823b159869eaa8b54d61525c30b48eceb77313e0a21648a1fb1d864906e107b3a548e23d6471bf9533cbbf0a211fbafc68c2b86a368e10523f69e8d471b1fc3a8f062113bccb9633fce112f254b04e627f042118b95a4455e836b0a2f12b1e46770aa1ebf53e450055e206275d831824ed89c51ae116499c0b94f70023e7afde2109bca05adb246907582e617cce0537096811786d8a3ca66dad9bc11c51e411687c030f0a2107b4cb37af1cbcf46f322e01584e0052f8242811784d84f1ec3a879c2d24b3fc109607026f062109b7d03d3a8f731452e4009bc10c40e42f23ade7d1ca9d11164adc0b8054b1ef02210db5fcab8a3c306ab032ad8c0a80e3c560c10800017d40b406c1e35793b85fb4e1961808d33bcf8835f1d43d8498002129c20042d78810b52408233171b780003ee8806e1851fd6c9739dd7523a88f93e2c9f7295fa7c3cca920f4becbd900ecff7b0a43b49a1ded1c3fe7fba5a31260feb37f4ddd44a8f3d1e365b8933792b4609973bec631dff3ca6f394b6b7c38e71039f143c7dba7c1d96dcedb4b7512b4968b00215b872e0051df67c1daf1ec76ad06033872da2557850911cf61cb34c197c3364c6e3b08ce5286b8e3c49e7e1b0dd23cff85773eccddfb079ca2933fc8c98ebe18625f445d9d493919436ac9af23a5aef9a0dfb76e6103286f31ace3979a468766b8e816ad83c9d7cb4931cbb3c0d8beee5ddc839070d7b6d7f5fcc929d1839c30ecb7b3b6233ac16aa435cccb80ccbe35449ad0819560f3a1f6a253fd4a163d82ee782c4c77d9a7f316c1bc27e5fe5615843d2ccab106ec2d260d83b7e42c2e5c34e67f94221e08517d6f0287dcec9d43923a50b6b6ea895fd38c6cc4e726187d157dec20e728714357d27334a6a611f350d11e365e538330bab049fefd8133b2c4fb0b0e7dfccd878d2d9c7902ba816baa9315e5861fdbedd50b3d331c6a40acb43479d9bd2417d4aa8b0a5cf4d739061b0079229ec395d0ca1342c778aa214d60fa23a5139537904a3b07a4dc575f41bdb074261919c6af0f824836de3098be6f0216ca3f81f79272c8f722a3d8970d1f14dd827ace184a8281dad3061ef14e933481b1ef97c4b58434e42d2881129594e098b7fca697354ed97e492b07712fb3c71c3e7ec91b08494492578e30a9bb3236c31c594457ae5c4662f8cb07d8cb592e266455863665adbb012614b231ee4244d4322358435efe5cae399a98e0b61e9f8b1815f82b066f4fb184309171b0c84f5330aad4f262934625efc6093ddbce1fb925999e483256fff6a4988b8f5bb073bce98caa259c8dfe0e1c1d22531320699aa3cd61dbcd0c15e239b396d0e87d1a80336512810c76114866114833068751b03a31448104070b03c1409049224d465611f1300014a02c1602c0a0743616020140a04c160200803310882200882400c433120c340187d070ecd2b9238a38c5a21b476c6f86f309be0b54ab9c6dd584022da5df4de0d6f7d318385d962de6c7b04109cf25a75a37737db3006e2565de7aef6bccb09955774922ea3bbea7ac16e2f77576c2dd2f5baeabb96ded1f39edbe5fc6280ae58ba5b931f2b6bbff7ca9bd99ded4d7ac5bda2bd17de5637fe95ee5593b77e834cf168eed6413923f0d0cc5bffa37de4b5796149ff18400523b78720013ade46916e131467add902bf55eff27f763a42d99bee8df06aee5bff764e92e705ac3b04760492079b01593d07c73a4087f03752177434a1108acc62b48ad6d9c28b8ff1f319b72f03df5d713d870042f2d83133039fca3157a2b3f9369f79658c7cd128bdc7ef78658cd003fb3a4fc0023255ac70d3c19445135a1cd542f1a1914c8ed43d09ca18c9568f1209c8e612df0d72fb0c208c96a26051093a3a15dba50922d5cc850e1563c8e2f023c8680e4600af8c1c675a8c3ca39911cfb818658c9a8a915248f18b8af1604c4637d3b6cbc9b8cb8c255dbe1da0f1a375b419e51a07c7e81bbde3fb97fd1b26cbf54adb14161ac25c70d0a13b4dd8bf857123b5b0924b1e001566260525b035a2d0b4521da4975c652a1cee46f9ad9d48843f504528324c592139e38e308f287f188abaea2362006f1cc0c6e044bac1930a386bd8d0fe885a9047828e284e691af99fb55b65a65189be3809c29a29cda7d4e0efb81c20ce5d0f016ab9192a6a10b652eb5041d1f0c46739dc713105c682a986808055ad4d72322af71245e47e91aba980dfd729707ea53a69a9192faa6d9d0dda002a1063beebbff873efef0425c184c1068bb1019249a15467f8f29bdc01faf0ad0c2a0cfb9781c711a139defb85f0d42e50b65f72577ae8623e660b60ee2e2810536d75ee460d468408dd5c443745a08fecb633ab0214b0ba6ecbcc67ce1201e42de1105d0cd3f170ab62c4522caa5ec70710194aa7bf83f7a880627985a808f06556e82c1d435d1fb65a253fc677cff6fd1d892338159554572ecc79355c876c6d1af8ccefaacaf5d39b203b4284197d3c4ac6a00288bb0993bf4f817315b3c5224d904e832b0786e6255330348132bbceba285c4deffd63c3b841f58a2296a4878f39da36cbbd5054460ab5d77899cda06f5abd2fe775ff16a9e9b0905b5399112a0af2820b5e2f41dc61bbbbc765e047480c806b2a23f0fa247f505f6a4ad4a3abf75598eacbce7530546022a7ae7f151d58841e1fdbd40e28aedefc9b1cba3d11462fd45312e2aba3f93bb2022693a52ef8fcd174d56cfebafb36b89f5d75cb10b8471706a57cbbc248568eeca60edea6e993233100df96070e0cc6c178a31db5a1511e4a13c6bfe0103d9f20fff293417427c8c7b17ef8ce747cf0bfd0cc51c2a3c5fd17d999b04bdbeaca0f3e47d1dcaeded7b0d6ed936426b907f04a1664784cc496c95f7758187cafa243d75077f5701632ed9890f53d000e3021aec1cfaa6ff3b288a45cbf0a7fbcc585cf9b8c2f9891828fa369e194a9a03ba5ae842ecd9c7a20438509b442684fa309584c805aa4abc83b5f80e6b2d2311e0a3971369af4b8cde930812618e6bbb4a722f636ea37f28f583bc0245b4fcec13733776e02633650604b8d85c62664ba4f16b4557c99c2327789c043910f4825add01cd0a730cf3e2d75286a44e0ce5cd00197a9a7605ec9838dc711d7c77cbb3c2c018a7d034b10cca52474f336de931422dcfecf8f0f418d7a1d3a4d6a2e4064390030ea7983c91c045057b96147ab36470db56ef46a31f8d40f78d94d14a709ad64d3910970503e4e2210aaed93c2437d1f824ad133fa2abe4c516f72ffc05dd884d18615300f0f6689834119ac2d2151b0871c851115ca8d44b2af967e6c8356afd1c8e11e054126b65595f29996e50f610981bec90646ffe2fb6479402fb0f286a48b7cd0b57bc089fe4464e0956676d4fecd8315aa302610c3dfc14745e04cb621e41f1defc7cdb975340bf584e308fc61edbc5ee37c67a23d3a62bb77b6b9f85d23c71ed3d8ccdad76a58ebf8ac6033d79245db85325b76d88973635c79815547626353e309fc652fcc2e53ebb367056ad42046a9d4799743744f0df2cb6fbf7698e91f180217e3c69684586d090245d86c74eacc84c106dfb74d2646180308e8e54d11100b3684cfc146598479213c5426325093d51891bbb983c9c8492689d3a03d58274c132408862f6c8e576805d907a0e1b06a300e7e5bf6aa03f739c28c18bb2efe1eb08eb099f8862228286c8e066c5a851a2c932ef35784103fd052c2c648e9bfd149984911ca34a0443325850b562effc3fd1d12344896c1be821208500b660f6e5031c00c2e035d0de0f3136a4800eb86cce31ca7963bdd0283260366503550181c0c3a03f7409c3045c81854068681fec183900cc4c542c6a126964f79b04c4964199110ce03751136ae2bd1af8b850d0342ff21e705424f4e92d447cfecfcdd806afa65b011d5a041813c04bbbe6f163ea12e60f86240215a366adbbc38b968807e452bad2c2f6501cc2d5b55ab1fc0304041ec0d70a5786b54c200bc00760053002df223ae0034002bccf865ba4556854bacf00df25a37022d8ed8b09701dc0fc002933a826007340d0803eb034e600010140066d580765409809142e7e4290810f60919b7940003d02d0116dc329bad5203708360c02c6005282a66816ee606eacd400a801b80b700ec7ed8d838030400288005c0f4802b6fbb0ccb061001e400b415805d0a351b358038c031202630028069e067403edd3b10a0827200767bdacbfbbcf7d0fca8af23fe4b6dc5a706888a1e4b1fb8aefccf6791b52421022a8932968575298081540b25a44d9f7ea9d92bb8836441df2240739511a6de0a98601d83c033871660534946abb705b8bf3f02091c237ed7dbe5bcbeaceadbfa179440ef84197ce7559837b0bfc10c6eec94070dca6b30e60d147a35c2e12017c1090a1bd0712d3067839966266a560f7e923003abd0afb641890663dec0fccd4602004132f06a3053b37d12c00cc472b0151db2003276de2580300cb4060207a38470423ac142d0fe60b9c1363d540c7e03c90f66a0d1187fd120230c864919143a5c029ba09a6041800c52078204c523cc749c06856080248331a4c2522ec28032e80c7c75b0c20109e9de6f201a48065683834161308cc164465aa34bf8a04d304d7012c61342246c46b284177a0d369a47ead51461a34bf4c128b13c4320ea0d7157c90ca80055f01ca89bb0398592fa1b0dfabdc50fa951a4e9ebd5ce4be64da88c61a734cde987792cbdbc68321c0d3203c900e2c0f26a9ae7416be0238a0aaa6eb347d165ef56c6b65df730280d59e6a30f3e02d14078704638060a3698093037b5510962226c52000c0f15836581d5252008bb03e5089b3d2a58bafc6023e30c3a24128315d480c6520d9e0698c16ab030300c06633026f8fcf60a5fc28206940745826310668665f0ff93403a613352e888703fd8974723777a83bac1c6206430b0c1323030e5cba9b20242828530f88365c3e82a8e40400edc85b03158c702b04c98d14180294e706c039ad6fbf614d78245cb060c83cb60a90d261786114623381b300be7089a85e91236c145e2b3246c7e6e3e1838854d1583721cc66d191b9355651be10f293c4a3c1cc4f408f18ea5d37fe317657263155a28b778a364ae13d409b91166025772968af0a68324d88df4001c6090622a2575549314acf18a9b74eb62f70d8fafaab5c9ce016f671066831572c46fbd99016f601bcc1d0409ea04a3268cf9c53092805e4207e1192475301348289d70896bf5984b9dc7e0aa0df6e5eeb4641742f5c225a14e183a61d398f749161f61395aa176f0841181f9834d700e34c23f6103dc46ded582b7a4ddc39f1754106f339f58c580ac7aa9b04fa0454a2b08b4e2cc10bfcd7e4bbda5cb068571805ff9cade09832f9030a57f0e237111564f2dd8178deee83a1924002258eaaf370dec04411b435f79b0718780e513ef91c70e69f835931956a09460e365f4620bd277ac0f2f56dc1aa1c4d5a5e2e3cc6e4210c6fcefebb04100166011b854d8e0204e2158c2c6abfc3a817ab029055511580b1a098e5b41709ab6b92404de816c8204617c2144c2664bdea320369871ec67c70203b4216caafb777d20480dc21b2caf0e6c12bc40e028261214bbceb49beb24e9be1391d27d4d83e80bf4a5f868886369d1470c804756d4e089ee0231eb2d92a8c65998a845cc8f1afc3eca6b5c349d784d9890bbb1e0e8af9ad6088c562b287bd22d8148580dc27250778c9612be092c9d304638c6fe4040105d6810d41e6c2c27109a0a7786b0e21aa607ba027e1d99e3128d6ac93d68b05d393f27b6e82a438a91aca28277b981e920c4a4ed4a81efe7417bb089e1671c3eaeb5857b05154682f0423fef28c3b5cb0873313b8c2275a62c575e96d513dc07e1045184c9421cc1a2602f0c0d611398ab1b1009635e0b3ee7240190604670a4b0016e44626fa7378030f10bae9d087aa5befe13b0d629920d69370bbc28749b39b8064409320dfaa638f1095eb22404af2e1003d774825198070e57ab223832c12fa0143004f602f10ebc1c063c942a802702c5aa1f3ca6e3350b81402170280387957bb2fd202015a80b440332050a5090790a2291043286b1a8083a2e4c26133dbdd7f6b3c62d129f535f81fd5ec25680b7c019385e00a328b0741529c0a8526bf20b03b8228453ceba00828098c074802b7c0f156e7ce015d004582b80b9160030580d608c637841e70202978a0de3c08048c00e20029801440a08bcb60a8424004940ee40336016503940b817c1809562218d049603b20c60be078e32dabc30bdb553b4da7f8e04309f0ecc089704b83268afa24e00790025e0ef01e10149669208f003683e2030a91684920180000d400b600038c200caf5b98e002df015680acc053482034088202e501dd0085c036a01dd0830067bd4cfcb0160f81884300208020a807c0064203e2019300b5c006980c2055a228ce08b05d829602aa58dc98191e053200fac0a3804538070417b40236026d800bc059201f1c0ea408c00662800086d3d4a30389da8d19a350f8f07c73edebd7499bd7b043ca4f6382dbf3fc8dde37dbb4a426f10be47e2c7693890803e196c8e4647146c569bd9e0b20060a6d5c90970003c0df920f4c0362aa50e184862e0a1d9f821090906398d74c865ca67cb0af72c4216ce5a8c1496eeb52d50210c6a9d4ea8c2bde56a89654e21a04855642f24178a590435005a63402d0caa103d3bde6c4315a27fa08df5160578803bcd62147a8a88144187427885fec1b584dc2b6261b1a142d41f7507d0182293d3a103230a513fb4a5f3b01071211584ea561194bb7e4395452514a25ba84782868aa001a312381447a2086ac74887b315075b8804324840162283dabfb8f0cab5e8b6c729934101645f1053080020b44f17bc432b2110608900bd0c395d3710a1017b7677cfa262de82442d1c69032f080408506728a0a27266a11de8854cb29070dde6ffa21406238fb4857b09623653346a416dd481985961216efcf49672de965255b54d634c56d024f16f30a551eb4021446571e375f26e3f8aec3ab77afd61df475ecfff3e3b97d8c59ac10ccca30e08311b2e43132fc9fcdb6c376f42e608dd7dff2b541a88affdf2756cce85a6d1a52ecb51b958728c48e0c7502143c09cc4f13ab5c1d42da7458d855d355f42080dc7c8e079a22748b6ac03b61f3f41393bbee253379a1d356e18c41f640af00108d311ef31f249cde644fdbcb1d41cd1648ac22d0c4cf41d3dff6d83faf79634d6fe99d8a09a2156782195632276a3d2ff65b598507fb208edb81f9b6657b6247c993c48f550e769ee9128a790386d8155ae3bd4b5e4512f93d410f2da50b951ba69f7c4f84a1c4eff6dbab21acf5d5a042ad9e8de396928c783d2dd9280f13d10eb5fc5d52c69008844845a1206423464265335760e11fb2099906780c6d6c1daa7a86908955f03807783a08326f3bc6e97cb2ff9919e9285e0ea99d6ff847a0a65501bdf3a519e1f28ad2b9e93c5c22737a38fb31c4f8b2d2c11cb6005d9d8f89e1480394b2ea771310602010b570b502ff0fdf1c0f178244112fa8431b7ad43f9db3cc5aa989360cd8e801f91b9b9070fb24cf3b3ce98879b9d2d6a97f1bf54c184d6bf1719dc46a793751911140256c262e1ac904c780a4e42e0187123a8a611382cf40d4b0abf1b1781c3905d8172bc49c433d3bd522348d6b95f9399d8cb1de636955811ce03fc97b9670e7ce674a9cde9ab1297c3272dc3d3161caa48d54b06000780a17f9fcfce46c61be6a222c2d9a065eb7f0cf53c6d565df60f938fd1834784d38dc7103c094e6e0e7456dc0ea1b110b1af8132c03171f8087280dc880b2c16bfc8c2d1e369b419f3d14a7382a73db71efa7e26b03e01e48573254eb71b7b7028d02dafc58a53413a0a27f626d0c20df2e1a7360e1409f06941696dc0fb5da6395f738fa10c18cf9f64669fc1e67e917dd4ade5804aabb90053bce447bc628f2a016b012ef328836827d7a717cee018a6bf32c21030aae3610270cfe79724491a91342fa4570798bc28d194c899811d251338cd98490dfd3ea95e7a59150ad24dec87881bca46846ad6face2bdc404ef42a691ca177e4b17ceb554a390f29fd81821841fbd49629f5bdc00f322fb4185d03e252052b90098768df744d6270faf0173e826a4fe8c20f3a300a24c7ec43ad7e1304f22d3b6743de61f60343b1aaddb183e5e73c943eacc93f536b2e9da6855f1d8531e1a416c8305c7120f156853f834bc91a86788bbb8d7c392f36d6864e811bcf7a9a697608940d2b065878b0d0c7e03f019a990067fdeb2c4e74071e54bd4bc9c7db89e66c7e444e177621bd19085fb77a8a4cdb047e490f3bbd4ad408cc0fa9eca12ea7879d800131a3588a43190ee2c816359ad60a5d5d585ebf66df3b37163e70664ec92f7b3c309672249e2c24602f3f3343f1d63cbfdeb81bdb07c47098daa613b2b8842e71a2cb909b3b6f95c1d151e52e6baf50a007abc1b061baab0b572c3c6491c1e18d224729e1dfacd5689964a4cb38816122c053346dd366870cd3c19cf3730cb9e1ff37ba416fa2d5164c0cae41fe90dad59c269583d16d38a06db89ddd064f58706b07db8e041c09414e19990f1812b4b047c4208aef2536dfe1134d16704bd0b79e5fdd11ee36b2b0980b5e865f4a116a3f27d0ce4a00359864e4c0bcdd4e1b812f2bae2a9bcbcecf52edbb890d702737bd745d2d18ed00aa3e71ca96af95cef2b4d4887672a9c79c3ca2814361c9865ed193a583e083a777e2558b6f3090fe3dfb15ca54bfe8e576f604fa1e325b4c2e38ad9eb6d3877a832b85136b2989c1fe102aec34b4ca86247a20ca2d038271ff92b302503a148415e16bb6d56157e7fd45db488dab35a4ca87411ba3f65f031591d0ac4df5bf8e344336d539d45f286fa2c37b3122a438b78100fa4627c33701e7972523457a28976e9e790568138ee2641086eb451e54e20210ad625670b05451e31863f41c34f265063c3ddc395156f5a3b3a1b2c747357961e148bb93f65e5ebd551e1fe2a927a33e8bd1108d3926ff19d95d4b82fecc7ee56dbed4cc1241a6970f24d930e2e28db9819c7b6dd9ae3124236a13c3ab592a6c3fcd467ebc8aa3d4ab5b6a328557adbbce31e8612a35eae69ab8e1d3dd68255ff740619bd87ebe7280e70a8592e276e9e53d1ee1619d23bb23988897f3dd86754a19ac0ecd7574452f5735201cfddbee5474ac06ea285e2574ff0b3141faa8c44735f1ac63ef692212947aa13e26b6db2813b785ab3aa40cf774a33393a0aa052884b248099842c9506226721827d4a24be1c734f7670cf618d7d31fea0372e92cbbc9ac1c3a65910a53557ef3b1397f6ad68cf3c7e3af7452538a19c2596b3dc7032e5ddf82b5775c44744f929e96f61ce1a409aff92d48f21ded54a811476c11e5db978070d7537706e14b2cc184de61d9084ae807e1d5632084d1b95bd47177641849f822d9677fbebd0156aa4d578407e437f12ac2b22c736793e6403584356e4988b27bef47393906939c1fb874e2ccb67adc5d8ae078852296c1615efe1f10402124770a6dd114804689d046e8aabc1ebe58038431027a7a6f8f3970b224c301033333333333333333339394ac63db366c6bacb50d99a49caadc9da5f2a1bb322599644a296d9d275c931cc9911cc9911cc93082250988080809aee5ea65e70881ed1c4da9bca6deb4dc2cbc08c236d93de50c397af80208dc9d4caf535e11f20326a5cbed6a7e429afa7782cbc10b1f70377a92344da92f77d60a2f7ac0087d6311b38e4acab7a0f082078c4c399bbcb790b5f485092f76c02449b9ce52f7dbf34d09bcd0019beb77538a14226bc8b4e0450e981c45e914f53d218466348cff4490052f70c069ce1691c4c76a725e4ef0e206bc6e997d9eeeee69e4c60b1b3049ebeef96d0449ddb9003f1e353ec60d19ffa2069c5b7897badec7ce9a1734e035256a1a352bfbee6abc98813d42f042068c88c7d2feb765bab32f62708f173060f4fd58050fe95367f7c50b58cf8edc5ada2c44ccbd70c1b582eda44d64f728630b1a19887143060780c0c10a465b424ef6995f426b5d9855b0f59bd408194cf5ed5405274ba767dfa94df9da822315ec8f0e4265a746c8e1d9e040853d9ee314fcc6d018d2993a8bf113438dc314c7518ae320c528ec9145147c12ba82865e3e86da7284824d71456e5071f7ff5550f0c162c8e41efabc4e8ba1563ec1654d32a606abceea9c184ae3060c843a4bc0e1094e37bb7f9be453fe5d0c8e4eb0a1225c72a46d139de5c4033836c165fbbccd31b7d8c993261e55f2ca2d8931d432c15afc0842c74fc9117060824d2ac6d08c6b2952ba46dfb091976043c728e24966a74a3086da16346ed82032928c1b34268096607b728aa646e3024725b84ca12aec2779dda7050e4a70d91bf28fe69c11cc9071e3fc1629f8fd02c72490431265051c91280e48d8a3703c823b99b23f6f74f6347238825f5d55ffddeaf1201c8de06084aa9562260d89591a25c5b8e058843d6c64c1a1085e92e52c76765dbe570cb51a3066d04804973f7652410635e94436869ad916346a28408b93020e4430b1abf476267511380ec1b88af4244babfe2fc8811bcf003404e3b9d2ed744ca31244b84040167f0ac167bbe7d18ac96ee378051658e41d3808c107a12c82cea02b43a762e8d90866c8b8c1058d1a8663108cb068c1731aa5e7228bde8020b88ce363e91645e80411d0458d0ca88023108c56bd5e1ab989a1b680e03d84209e9e36279091c523bd22030c98f118508e3fd82371f88131a56e729a45fac0e986f4236a934a427e1c7c0001c71e1895475c84cef6dcd573e8c1509a82b24eb14b9d87b5aa82fea063c79ce0c189bf1e5123273f11bcc3922a98d6f0f46f313bb02a31b22921f46df6e8031c7560fd72e997987b0e3af8314451d1f3f5f7c60ce49803b944ab8e7eba7018652b020e3998ec2e4729590cb5ed01471c504129b1774f636aa23568dc6824a3068d05a067000c0dd4b8a20217c032003270c08197f4ae91423c15936d62a82de00257ec0138de600f0370b881041c6de04f758210f70b2aeb1643d9605031659e5ac351c442c32080021c6a608212994baf2711da3bcb910646efdb84da4f22258d398c1932cc392002379e011c6830fbc9accfc09590963959d89a4c93c30cf6e02803e7f71a246a508b719081cd5b77417e08e1180397c43ce8db8bbd31430e3170f2cfbb6be45a68dd673880230cec4fde0ba693c257df05031f1af57dbf825abad317d89c9f37279327646bee052ea51f79993ae47e48bbc09dc4b710838ac69b5c1238b8c0bbe78ba47370cfc12bc7b105ee73869665656d0c1c5a60cb375789d02249d49660e0c8025f42c7fd2f92aab6db100e1c58e0ccdc2a2425f75691e30a052d9376955d9d31c30159d0a05101f495feca4f23d7dc2a3022bcc2a4dfaf7a2cb7c04105de4544fcd774a54927714c814f22c8883945bf56e09002a362fa24cd948e1a538f029f4bc738762e14b8cf31725d48112f04f1097c3621fc4b958a0257e07002afafa1f29d0eb7e837910247139874dd2992d79f058d0b4c8183095c90d953901042f0142e816309acde5b50671264ce3e768d1b29600e259ca621bd549fee42c09104b67f4dd7c64bb5b9254860cf3bd59e5a8aa2495f8243230b3d021b3529c95fa3b2da6204367d8e102bc6aeba3829029b6a63219b2465c1bc186a16e020026fff597a438ce9a34f2a018e21f0a682ac3c959d4d832486da8db31ee01002a7cbed375f1a5dfa4431d452d05ac080d1458d1b41e046d59d66efe8601bb72103ed043880c0a59024783e357fef70fc80c91b5245d633fd3bf92d7cc0e44e694faf6ab6ac240770f480cfd31e3d9db236eb20348386cfe0423bc0c1033ebd64599498354abc63a8c198d1a7708063079c4e75fb8a9da56230ce0c193a6053d67ade056182d1458d1b44031c39b0cd74765bd080f10e83c60d1825a0816670c0b6460941f74fa774c2186a3f821aaf058cf72e5a0b35dd00c70db4109e6225d562c061035e4c842c3a6d2ddee42c9106470df81c922a7d7acc15585c81013dc1d99803070d084ae5489263067cf59d8ea12a25836cd112b05183860d0d448243069c8acc8a314531e03d4312294809a6c786016355214ac4f2f46b12c70bf82082696a0fb15f6389c3055c08393265a9983a532bd8ccbdd13a6e10c97258c1c894327f88b96d7956c1e49012d489b82ad837ad33ad94b4d69d0abeecd463caa282cdceebad21faa760ad3e7cdc7a4789faa660ac26055563f952705b362292481076ca2705274d354c7506217dfc51f05e63a53e94ac52dd8b22596d49a8d7d6a44b66418346059c0b0c8c8100a16073122d592d5bf8881028d8cc1b592f6d34720efa049f1a43559ace6d29077982957c15d4530c7fcb512778d1dbeca02de204a7d4941cadfbf790a24df0d61beaa7d3eb921069828b9a76216b5ed210ca042347feb6a94af2338d095e7286ba3ebd7afd9e4bf01621a9509f3dd5a8c712ec7f88e8c9c6237dcaa9049733e4114a66e5bfc8a1047bea4b86be7819743c93607c477aaad34b821f4b299ec7b8e9ab47820d31899cba2ee9f43190e045e91c7594698f41fb08dea4e7982e84087d298ee0844a7a9ece26a7ab7823b8a4d3ea960e3974479c119ce8e82a1d74be08fe5ac57ead3d58526a45b0a6433d7e571021f94e04a3b46650fa29ebead388604c4fc8dbbdeb25e93e04a756f29b2c157dfa6d43f02989f8565232babe5d087682e8a879928e6f63138293175ea7f34ba6047b10d7c8d635a9113cd746109c24adcd9ca90e041b4250da745a56ca4980e0238f6a9909fd81cddb5fbe965445e4183f70f962fe0a2ac6f48189a543bb8abc4b1d62f8c0c674962198d566ced90327794bd86b2afdd1ea81ffbd3151badeaccbcd031ffc3285dea05564b61de8992cc1e8512a75ad5f2ac19d0eda5ad35f454f3e25b8774b394a2a9949709225c50c993c8aa54d12bc5e5e1b59568904276a3de9ccc97289584382cd2284aa2cb1fcdcd62338d91ef425253447f0173fe424fd5d21dc6d04f79654a44d0ac23dcb082e62dad2a4c144aaeb8b604ba39699a616d539aa08d654cc229a164a7ef412c147f0eb1caa15427688e0e26e9692d1f28760f7c2f46d2c11565934c46517548560573dabf5caf6448c105c695e5e93317adccf20b8e83bdab46334193382e83ed8c5d0f13a109c50a362ce6039792e2920b8d39f144aa8895013f2073e5b7437a126ed07f6fb3286fe18c22ebb7d6084d03c2ae6aa7ca9171fb86c99eb640a7b0fecb89669c6d64cea3f7ae0edd3a5a9332dad1bcf037f2a29a50f5d42667ef0c0aee9c827f27a77e04762eeb3ecd50e6d3c3fbd29ac3a30e22926cf2674e06e2b5e73e02d93daec8b631192560e8cca6d4a64d44a1cb8516a4406e1361cb8af3c2224e9b13770bb29057fd39c9425eb06b6f2a9f30abda273b2b481f312def9643ca1e1316c603db679104a748448416b60f489a0574797c8a343d4c0edbb282d5ad469609270f38ca24ebfbf8206d6626fde8d596760f582f4359d8389301133f0a19a11753465607f83085641e8949b4d32b09f63beaf65464a9332063e698678b97212aaae8b81f71479df9b2c4ffa240cdce4edcc1216cafb45307092eca2efe72082b0cd17f85411ef54d6be493c5ee0e298d451ad1aad82bac0555f0839668f9f4b8a0b9c4c3a84e928d121e9b905f646940a5fcda62b4c2db0622a788d6e7adfcac9025bb57f694474b9988d05c6ec6c7225d115d83cca3f4acae9257d68054e956ec49c634a153837ff4ecf6c53818f5f95d4b6c7a7c07b92677ea6540c1db614189168a6deecc4c672a2c09f974e21b50e054e4c7648da603e819b68f976021774caaaa3796f02a753d2bce993f6ea1462021b932551679983f2d396c05e9e1cd715bf8f49a70426b6e97b2a9924b041db7890c0e40e2573c70dba5edd11d851d11edab52dc4ae8cc0b5c6fcd9aaac2270752aed8677bebbcf118109c93dd3b79f660e3143e07b2c53f4fc720d8f11023be9b47b6c934160631693d143b55b7e80c009abac9bdf69353df803c643e41c4997fe8ce5f9804bbae45789520fd86c2272ec206e2727ca0326b777ef66e8a4fb4b3be0375f08695ad2fb435a07bc056b0d9539ef58a572c0e6b4fab923e471c028bd982367aa102114e006ac066d49c80c19bb4f6f03364e929d97f3f4bf2b35e0f495b5e71cf3a528411af0a52b5ba99b84e0a1cf8071df35cd981a19b041a8f0d5f6f461e69fa1003160df4492262dab241400065cc8976b2965949ca37f01b72182eea455122b7f5b8402b8808913bc2bc99c2956d4b4820f29e9a87e33131ad21ebc6005bffb319dcadc496dfc57c1859054c8bf9b3b65a50a3e8dc6708d37d27a33a960f52c8fd0ddd2133b7e870a2e9a0a2ad9455378710a36f4ac744c4a8d8aaaa66047447e75044f95659782912754a97ed10abe1f52705efa5e9307d328f893124b752721444745149c0421d4ac3e2fb229ad65ea020ad6dad2c8d4cb9743c34f3049e8f692df39f86dd4135cb6e4547fa7deb5758253ba5b79745221a24738c16ad61c219efc4d701f27688dab6d9a2644135cade8ff640db549d999e043db3559b24b7556c104afd7d14fa4352fc1baa64aa6ed1b54ba8b25f8967c226e1495393fa4128c5ac8f5a1f46dff3494e05d638a4127be885ace2478496a1b54929c2eb926094e7666edf53a23c129fde21b75d2e9523524b890846b4cf54cc1e2fd08468b778e796637d58c23f85c9d3b8af613cf116c0457b6363257d0923c778ce0b66d649a92a1d4a79845f0ff6eea4608516b562a824fe29a34ebe724823e13c1e4beb4578fdfa33d04117cbb6704a12f375db587e084e7ac27e27d61ca360467a954e8e5861482f39043afe93849f45d42b092f4954aad18a3fa3a08f6ff4f4d85ccfe54398260cbf523e853f7ac930904fb7e96dfed1940707a43d40b2232a612da3fb0aa9f4d6326133a332686fac1d56c5acc42b43ef0b52666ba44c8cff4f381bd15212c054f395b82f6c04531cf3be2a626465c0f5c66ce901c7a9b2ebcc803a364fcbcecb56196e478f846fc73ccff9ed73bf0153752d85bec092fecc0290dfa7a2b4b72f4aa0e666eb413eac7456e746064983a212f866b661943edc51cd8907cbd24e49e9c5f39396c3d725452d2962287177160a3c7b5dcd2bf99a23a626e7801072e084f69534e6da7543a86dadabe7803e3f1adef4c6aea101a28bc7003a7f621ae49560f167fe5c28b3670ede6a342b5ac2e646c6094e9116d31882fd6c0fe998cdce3bba981557b8d192d0999bf560c451b41cf680960e0451ab80eadcf5a296eb9d140c41c4083c6dfa0310143f4020df96ad0587d175f021837de06b12467e0838efb2907f32da14c417861861765605c74f66bbc4c2dd6db0b32304a64519a83f25e8c81fbea38bee3112cc84a0c351836648881c916d2a6e03177ee182f157811063eb3fe84858cd816f35964c1450203bb397cd32c63aeeecf1c50b078f1057b84e18517b8a4e2a748f6196eb2ef02235434ed79a68bc00b2e30124ceb6df49e24294f7f8174c08b2db07b29436b77d409bbc4503bdba26b70e0f1d002577bdd23ede2bbe53e0b4c8e92422437935c22ca83175860b52289d6a037314dce8b2b709525f74a89e70f7f91f0c20a9ce73a53177a5681afec252745ce2335a68af0820a9c506f91b3def27a52a670c8a7ed47de5b8a1ddad5e18514f8134259265d2a23775214381fa1ff1683fb47c939c20b28f09ebe53a6d02d6a93f3047ce104db1fbc68c23d94097cb052c263921a323ca74be0830a12ed3f4d827edc10e18512d8682975670e9624b07b19428fb2ece0051218799f44886ae51f0f291dbc38021bf7b233e795c50dfed6e08511d864e5d1923c8bc0e595473f11537a7bdc0f2f88c097a6cfce1a7a19fb4d414ba0c66bc1858d19341000717831042ec9939630e8e00217e485da774d7f0c185b68c185abbda0630b7cb9ad560c9da143727835e8d0029b399aec70051d59e04fb69548c99b422a618d2d6ed0a0914c203ab0c0762c9def3c1b5f66f05e0012d17105b407bfbeac9e1e749b5182195cc018c10c1935607481fa6b14247458219d44a6a4742a551b1808444715d8f5904c5aceac46d141053ee4268d3bda73a845c714788995a284a0c7646d4e0a9c30f30a39e80c0357609180c7e3f1d8a2b580a166eed011054edb25edfb9d85022321dda8a793d9633e3b9ec05eeed4a154aaf22c1615b840052270450522c0840e277075a72d55d6925bf2d2d1045ebcfa2c28cd9e3f66c6dbc042f9d0c1848e25304a2fe5ee329fd86b8aa186c515585c71450622708516a703a543097cfc513e09434712f8d06992b5930cab7a89173a90c0a6f57affb5d5858e23f03f62415347d09545a6850e23244ff8c49614122a7414814fa1f54bbe6dbe044746061e49042e52f074518399848e217069a4c5f85539479988113a84c06fd2d523dc4bf6b8a42308ec6ec41fd191b2a42447018d1925806143464143071058315392dc2ea7b02ffd80cff94a8b5ef3b2a4433ee04393c9fd121b1d62dd03bee2c54d8b977733e96a90cb0098a18307bc496bbf915441a7e8113a76c06db2e01d27e4d09e733a74c0783e4fdbdc157a23ebc80137923d964e3a11eb7284d08103f6c63e2b9d527973d41bb0173c4488192269cc791bf041d48e5789c84166b4a3066ccc60dde16d070dd8e4b61d74fa1083c4ae6306c651c922197041a8103a88dac79c132974c4801d5b1bcbd529a61c2f8544a103066c926a263d63a637f798d0f1023e5f90a0b3bd6bd299a90e1770f1fecb82e720defa76e1d10af683458993fd742ce9ac602faf628a9ef357c5ec2a52c1cc4a349df985872ad8184396903b4b1ebb482a784b319bf4681d9a39070c0f543021ab665b89b6d144750a2e733cfbab882273cc9a82b19eb496bfb326992d057f956e575a39a4e0fa2e298d9843debec928b85d9d98247fa228339acc7cf1120a2eb6a7094f6a0705a73f5e2d41dfe4a6fa13ec4bf21cf2fde4093e2ca9f50cb15cfbf24ef0be3949bcb068177494134c3e1992b575730e92dd04a352484d937274bc6b4df029a9aea8a3baf1cecc04a35254bedebbb19d244cf012ff24a894a38688add1c3e3128c4710cf22d2bea8c98c25b8ed3c5937a777e849a904af23516c846a0d914694702b985c5151398f49b09a2396c8dc193c3cc7050f49f029e5a494dae8fb585b22c1e9eb0ef2be72be5317125c081669c53bf20826955a4e91d32726111dc1a7f564e5f1820eaa9a151e8de025ed7f289154edc6ef0723b8ea2fef081676e0b1084e6c63502e41758ab0878d472278bd3b1d29270611ec6632b5b1daff0434b438c4219e420ca9736cac3d0cc166d3203477acbb7018794078148253193d92522147cfa94303290e1e84e0446ebecbd0954ebf2786da0906c1c7cf311dbf76438306a1864103951b3c04c15f4cd61752a9ab07d7bce011084656ccf12ae4eca2747823054f030182eb8a904665eb69f0f803fb92efceafd45a5989829f01a38b1a378c0e1e7e60443c155e31a91f7de047d575901f25ff87fe25682df8c004f7f449fd3c8e4cd218670f8c0991ea4459c8a447cf220b1925a8183cf4c0c44d3a2686da0c1a9545165c2ca00214989186471ed890bde38999ba8f6f31d468cc30ab000a600a0f3cb011e2e979c4d3d8b12403fd09e271073e94670af153c4496689a166e3060cddc3c30e8c467b3fcb9ca164e96fd038018c11cca803e7495352e97489a09487071d38cd123e393ca68698c550fbc5c2630e6eaa98be914793b4a41cb8dd9874f6a426fa1112432d8b2a3ce2c0470f1e259ed8be061d1cd8cc0dbd1fc96db3fe193260a0b72143dfc08a8674fa5e237ae1e1063e5bc81582b66bbc19171e6dd0f3e748f22472c3064e9becda8b9722c2630decae26b5ab492f26df871ad86dfd38a2b6af101e69604b77b96e5bfebb6c3ed0d08f7a351df7b467e04344f789e7a7325d9434e1610636cf2fec724488c1350b3ccac065b37c353a1834109ae0410676838a266da334903dc6c0878eb6aefdceec8a0c30a03cc4c0e94d9e5252b930f0ba373285fc5ecacba4c0030c5f7878811393581ad2937e76503a93512303239821e304346a54a08e038f2e940717ec911e5be0fb325f8ae7b5a194ca11313cb4c0567a8c6947069977ca2c64c438a98047169890eb5ab7b4d39d266181d71d61a9f96fd71f7405262951b236a6604105b515b86d358b21b9da4bd05481f7ed49194a6649215a2af0c9b5d3dd47bb70d314b84b9ae3fe89a4c086be2cd6a6a28f28b0414dfd7a6aedaed21e5060db92b8e6760d2516c5c713f8aa0b6e1764b2d821ea047b3c9ac0b8695c911d4358f21852e1c104b6df4f65dc4a0d4a04dd6309fc7e5acd49430f25b0415bfabcbe53f749c457642002573c17cf85056a94253c92c077509352d44f8ff143b618c303099c04d3912286a9b0513d8e8006e361046e64dcd40ff75c121e4560534c29e61674c4f51417cf85091e4430ef8a92742af978fc1802976390c9377eeb891012022bc93f68d2df5457068113e54934b3bb54901910b8522def2c294ba9e907bc6ba560696b2968ba76f0f001a7b54af7b8a91221881e3de04295e51053255594caf8e0c1034676fa2a4d39be03ceae764469e8904e296df0d0017fef49ab855c9a2ea573c079e8e4d14c87e080d7765f93f679e4490d218f1b7041a9c760eacdd4c599f0b0017f9f43ca7a499bed8b72f0a80193620ccfa04232294a84067c5277faaf2b85dae966c09f96790411bbcc5224032e6a0ee1fa9deea2bc18b05af225baaa45b57cc180cba0920895d4c753717d0197572466f4de1e2e605cb424151a825ac1a8c5feb30a657fae61056329b57e97e46efb6e15dc7a8c7429271134e5b82af8e0ae367af7920a46a57832e9ff11158c48334f172f7e0afeaccaa27f85bcb99b2918cdea11264b520c4d2a05771dd454c4fc2562502105fb21e8947306d928f84fb1dd945b58ca1545c10825842435dd858231a92596747ea0e044b4ee558b1894b0d8271811e5fb9384d213ec6599b494ee3229a1d409fe2b4853cd23dd2cc639c18b6fe928d99436c1a50979424cc6bd549526f8d34145c8178210156682cdf6d024ba735c511e2618eb10fa624eed128cefa90fa234c9024597a8b9c33ca468216a924ba040c1fa68ce1331dea6aaed135c3499a2260db2b52f68a3c6df98e100f304a73f64f613592c8f8a7782ed4a497c44be6c9f339c60624cfe295298898574135cab98b6ae18a20936249d45672721924a67828b57162465cd8c62222698e463ee755ba7a9ba4b30a65cd49de8d1db9e1f416f618919284bb0fb16820eb1bb4c55085509bec32e4830114344be4b09ae543adb94f97d6b4c320936997eca4fa6624e1d970497f723a6ea948aa1f67844820d1d83dc904e398582042b39989fceca15533d83423d828d3baaf2847204ab17c272eaf7486fa5654235823539eab94f753443a72bc0c5082e832a995e377a9231d41836ba01446b115c8a9582cc32d5ed39a4086e44c40e153163fed149042f319fcaf252f5211244303957e6f230eb106c879834a510ab1843f978d81521ca105c50c9974c4e4e797dc015585ce1002cae60001782adf6d0fe9029d96b1221185b3d11fd8f0e829d243455cab420b8ef52427e7992ab310b04b713b7248bd001c10679ea3483d01f78b5ff0fea44e30736ab525e1def9825db7de0c2f5df428685bc31c307cedb37a494a8fa51d33d70299e88a4cb46c9205a3d30d944c87c5fd93cf099673a3696747674f1c0aae7a45bac3c799afc0e6ca511c93925d57aafda81c92905fd626aab03ef67a9b2845849bd890e9c92b915d49b700eacaa757877500eeca9cea153e5270e7cafbea678326b48b902077e62ccec64216fe0d5bf25a5d36fefc8bb81b193a364cc2ef2a209dbc0abea691b09326c60d3beb6c424a487bc6f0ddc9d10ab70ad4951646a60473d9389765af54f1af8527e577135bee453b3a0d0c0df6e8c9744b4a0f4b95dd419d8dd14a67725b3b378ccc0a8787f7f1f83bbaa5f06be63c9647b67fa1b344ef037689c8080a1c8c0c794b7520cc94d8da7c7c0c6bd9832c8bfb8579918d89c93de349aa61d6d1858eb90635b79fa04bb3270fe0426860203672b2976765ba98b7c81895539da2aeabf41e3043e282fb0add9a35d57b4f7975de0b4e8d027539926f078cc90918a7181fb983a96fcadbc24b3052e648c99b43ad3026fd15377a61c3f4fa4875059602cd25a9fd0fbec595258e0bfa28f4793d1239e1012ea0adc6f1296ba722677505660b3f29ab0b4e01f395405366d4a48f972920a4cd6a43ac8988281c743093505fe6ca38a069d2ef70575505260b73b6308e5761438b93a16b25fd542aa5060ab3f62521f42905acaab413d813395d562d7279954ee9dc0fe5834e1e5c184fca02630b9fa5454492179dec8042e934409fe995d02d713a45fce93a6975102dba5b1720eeafd41cd24f09afc3ba7bf702ff3685048e0939249e5743ad611d8fec99e2904092168912923706abc4dc434b91630481581ebbd9c2e4316d5270c1bdd801836ba013610b000085c81c5150d584111813ba52e2915446d8e991f02177764c714f75f4da7306624185ad8e81a3768dc404c4009815321c7fec8abe76f21d1097c00868c0a0277ae9f3c375fc66ead80608ffa01efd94e990e262c1ff0e7f941d2e5b8e9b43d503de03545523065f71de6160fec513b281d9087d2a81cf0e12127a1af6a79342416281c70abe94f556332c6113281bac1950d189d1b44d7254bd580d1df262be8b1a44c7b31b48b87400c1bdd002c24f0783882d1450d1a5abc165af05034606dcd238bdcd8baa759cd804b9d4e63dff69f90c1186a8f07390116068492019f375de3273d428e7d1670812b62c0e4882166986e6fca490e0a06572fc07201e3a925c5cc18bf8e56f015ae1e5396122bf8203f53a7b2da7c7f5a0523795497cea3a40ac6d67b4c4de44b55fa54b0ffa3737d90a97aca2ff65b0c712b9ed029d8bc9f1864c9146c4f6e8b252af9a47b4ac127552a87fd6748d18e794c6bb58c82c9497e09ddad28b814b4895c595a1d4a1a0a7e3b24ea4a8a60395250b06f5a915f72e6655b3fc1a8cda184a6d09b21293dc127cfa05f214c85526727d81cf2dccf5b838af249d0c109fe274a4c29e99be0733c040fb22a7d8ea226581b55914c254b7c33c1aefe84904f558caa1a26b870d7740b7e3252e612ac28b79a94d3f2a758966044dadf67ef3a2ac1e9083522041db476e8a0049fb9a2c3d54f72e89804a32fad969bd03a21260b2403c60c1a7a450618f059a00e4930315e8e775a92a26a951809d654aab75d9b7eda33dec60c198555e880041f5f4dadf9e6c8d1790c35bd8e47f031459ada90a5186a3608763882db0ef1723466bb5708a3466904af1f6b92fc1c448af606173460d4f81ba967f46771f218c1c9554d2635df186a25a8d15ad4f81b8d82ba25742c8213b2245daa8dd2dd15453049292b91c54489e057ef3cd75bf2149a8aa186087e6fe35a76cc8d2dfe9c36005042c721d4cc793e5a3be72c86da8aa1c310ffd8e8f813241f434d0bc145d0521a2fb5a6904262a8bd0d1a591c2404775db9da378ed2268d1b3708ae3bad5fbf5ad48801e3677051638b0a428720788dde9f622ef1d18f981d3a02c1a8a09bb2a9f41ebaa5cda10310bc7edae49ce45b878e3f70b2cab72627af1822c40fec55b24e95377f0c16eb039352a864af4c31fd8826870e3ef0f75f5ac2b2fbe5d7f6c0a9d1edbee4a31ef8cf6bb93286a54f498d868e3cf09683a798cadb428b1a31880dedc003dbe619f35ddf26e87400dcd07107ee3344669aa0abc654d2d06107c63d7486a7506daa2162868e3a70551992c8c8b56bd62943071df8162bd5d93c8e0ea23207b6a36b8cf755c96bdc923ae4c0788fa524734d9296ec1074c48195203fe7d41b2b6fb4140d3ae0a0a51bfdcd697288f69fb2bc81575593a02229f7abe0df98f15a7441812e6620e0179045168dc5b1210373d0e1064eeb5d978a494952a6a28111c848c063dbc07ece9add26590c3a759d459a21434d011d6cb88e35f0a79b33c8ce3a72547f1d6ae034875cebe017ed4803a3d4e7521bcba281fb52a6a552e512e95e3ea1e30cfcdb9ae7d4483ba1c30cbc480ad558972b037bc1b35610769281d1fbcf2451cbb25ab963e0c4e3d879529b9c1fc4850e31304109db93b14ba5a861e04a24ad7d6161163ac0c09f52a39265877c9e97083abec06e8478233d88031d5e60bb363d898a582a96bac69f80060c1a482f071d5d60f34e4ee1559fbb4123e82d606cd1018b80a8d45085227134128703e2300a8220941cdf431348001024260fc762c17828d2b3650e1480034f3022442a2a1e22241a161c1a0c07e27020100c8703615018100c04c28050481c0dd214940f2099052a4ae13273ede4a837fb4d8ba454425c4a7cae4ac224f2e0d44ef6307836288beecf2ca52d5a6574f5c1f35d0afeef9cc84f249b7f0c801dfc0bdfff50b807260d57a22a6f695e53b20d7de8934c6b8127c861f198a1fb7ecde3de55245639ace6f2b1f15f8617e162d8d5b10037a358c003a8eef74e0834f472ce75841a16949989d2702328ae8fe468c86be3b957a46dfbe7d0287b023d8a7be18ee5a5ccbfd0c12adb65ca9a85772e13fef97ec4fe0a5e06b094b94c795613e3a9d4800a6da74e69fcfd1c05a4769a576821e920ef0dc41fb0bab597e0e3500771b281781223bb48bd8dc2b2015c95824210ff8386b29fc07d7caeb754afb75faac75ef9e7a87487fda6519c6679ec7a1312f0f6fbfea862055d389fd3746b02d3fb7ec39c8850c38ad062878c397c7b30c2d3788450399627915cfba54fd9968dba460ca11b132d8dfb4b414745259eeef3d6aa018893fe675ca7bef4d81585d1739324652514237334f1c4d1703958d812636a0f189ffe59c55436248001bc9135d73e100ecd00881d236be7f6d1f794a12ece2f2dbe44fb3f384c4e71d843ce746c1afbe9478041bbf586cdedcc1303203a0055b04d022999761f0134700792021e832b6f3dd3480f0200702f8e0031b9f8e1c3fa9b504771dac216854effadce90d802d3ae23cd999b410003546c82c317f114ef091c1db58d89c0ebe46923ccd740f0f2ef6810695f9aeb1064b451cd6dd68862d26d266b7cd727bbb1ad471a88cc34dd5ea14269ed957ca1c53e8d795c60f6ad9756f90a3134b9b1230f619456449cfa03fe2aed61a8bc04b31e1126fca004d2cc3f06c790ea9e1e56df1246d9b6c72d7e5bd6fe4aa2fcf4667c118691149fb40ef84be4fd113890c5eb1a9a834672a920838e85c4e7f5653ea46eaf8b49395d36f34c3a2634489281bfafed1864d7cf9e100e3d417821b8eb71db3ed3cc8590e0627fdbf759c5a1f5dffc18c74439c761dcf7bf95f1774faa868a3649c14b32b03cc955391f4734a802b06ef64deeac6ab51e0deefb600e1de01df967b3c03afaa1f2275bccd0fc4171b163f042b5981b99c5856728eec1cc4b19da834d516f6a45869d05b5f1aa83625b7ccf1899c6f2f92ab7705cfc90553d49f268c2fea4e21cce777fc2ae6a347709d89abb6a55dd0bfe38ce6e3002a90c6b038588e05798bc885c6b6cca781c41081f8a52a889b34fbfa9080d14a35bea8d6ce3ae3fec1a18811d7bcfa985b060e0d3fb366bcde1b2902d20eef05143d432370a78d3288fbb7c45f1807fad7c1bf5ceac62942647e09584284ad77fc0ca399689ce0904f3ebf5a8465510291167f38040fb15ed0278e23edc7500fb23e0195f47954d249ecdfb6b19596c12380b7633a14c97a1b0891a2eafc369a316fcc4e3a9f3a43a12db221324d9102efa144f2a8f1b59f34c4f559f0ba1344d06e448e89ac1fd23ee2934bd0925c2f9c7b92accc758d886884804f1747df4f3df49cc1cbfcd8909f2401132739e7a6ebd827e2869b8085676735ce204b8089aa075bc5a7445a157ddbe94260c1e4ab94bf31350d4480a304f2380066da3374a66f29308fdd010d95298f5f4103bed893b73a0b91a8bf7b8412770a67d7213765a87c41f93b67209dfba61b4b3388123d1f17ce332f88683b4f0b1793f375f1fbb3e77d14c295fbf54ae42a506c9267a230a4e4808ff6a1dbc613667a9d7aec5ea9ca59395acb6a57ab11e02707e9da510b4f9a76faf33769b3ac568f613cf0d396121180dd0ba5d54977414bd439dda2a8eff2ba34fc42161b048980ad102e3d528e1008b50bd8b4fa3ab7fb8290a2dcf5c4a0e79b84b0eb42d828a2f8a4efb1b950847dbacf3d01f1c542b68c28182f8682c8d13091fbe4ad4569aa8082c489628d38a12967a235909a896db4725dbd605f018395206f1e1331285288de6911348b11a893150351c628302649920a5f343262b21480ea4488e6416c819967155b3e0f3917f53e7319bfa2c9a5f072ceaba78713f11f15da3309dfd9eef647b2dacaee2f041f37f29d597e41299585c755d6ab0152ce8c793430faf92b4db288a7495c5e14cb0c2b253b6303469f13f0ce9d9d5f8aae308a0d67191780d30c7d968453aff849d2bfb76641472ce69c2dd4c9e564738c9220b83cdef5f5179855a961e0d3e868138adb28c8606bde3db0e3a97a10b2f7b4e3c93e83ddfcd665275063e8252797f761c3c83a45aa77f80bfb830eb42d89059c314a4d20527d5d5556d0b929e1aeb3448c4087824668e13c6f153bb17744c63336fb74b5fc00348a72f40c39e2c042b3c2ddb2a72bd906106812f9d01b04294cd96a1e378f45f40aad72bf9c44d87a92c262f8f17160d002261baff5a897de7c1220c74bb0b82151686d0af57b5a1265a4f9141a252001f4131062afb402f81a7f041834540719323feb0eda3627d18895bbede23d83793851b9e64980b3a7dcbfcadead1ff95ab5a860d2035a66df15dd1eac42e097b13bb0f09144cbca78771fb39376cd9721b1236296469efdd334160b2182eda674194b7abf9116437f8022032a43efee0eb3936a05f4057421f2fd746a500562e22104f36bc934d0e740b5af959fda5a9c33f93488fdbcde17a6a8b2bc8dca38b20e8fd22ed8f889f058f84496187013686765a6846c7b0bad7e8a3567d612ca1ae4ca40fa58e52c2e873f97207201294daff94bafca17771205ea6dc7208c51f2451ccf79381b60fbb4065a3784107c26a1f82da5ac88519cfa5e166c1cf5750b49582a47eadb62350fa11e52ba43b19104c9a304b5f180d683693d8781c685c50ab4f2c436939c736016c70eb499b6a6f32e04ab5f98dd60f74c1bcde776fdd4251e4b086c7f51ca439c5bbb26ab6562c05af1c9829193c714a13f7d11bcea5577a643e1f2d040f224e95a6aaefba54a2598e52f3f8dac71f6a0422419b500c63a6771ea91b43f1ab37968c074854deed09574ca7e03d3d5dad819ab07af9060448d81b6f372e609520f58a8dd0d924fe1d43d42581b897d8ec0719f496593e665b166d9c81b5cc115c46aadd4e38fa45d984512e73645986ca0c8321f15506f446f6599a87027c0884f48ca7d967ece857cbda6a873437f74b76e4c71903685ae62e2c44504952768dc062741f32c2c7c4fed1ce6d2a3974c1b253bad7e59bf6683a78e1501f272c852f92a3ef7990b155023ec261355d5f59c1fa208d8b9cad19abf8d778ab3d3ab83477151a76147a33627d15e49035603aa5b7ea99bddbfc0b4f09750d605824ccdf88efc8bf925bd127fe6a5c2b0a84a07a07828eca16dc66f453155e166d89a70017225fb151205a3bb3f9b5e75a295e4b444e04c0e1a1841a6cab75a31f7855077182e4aaac71c8811e35805636f5475495e78637006de396789fed3280ead6dddcaa889e468b65e7b37e471a10f8d62fed66a394abe6001bf40ecbc091084c55cf8e65df33e98308fe680d80183fa03372bc1819015d70f985dc2a70f2330eca1ae0006661190e493abbebb61833f5f6ae8002fe7478265064098161df9814866888f8fc12bfedf2db7a7c1276862c7e5ca38d443db1f2e53551d06ebca6936aac105618069cd6ad2861320dae4fe4e0f3ef9d22807fa3081fae7caf50a55b0167461af03064a456838d674c62b186d109ac5f6c234d8816126e23ee49125d87536b7c794a949f7be89b6133414621981536ae88ce0032d55eb8f914c767f87168ce721b6e5070d7b6183dedcddfc44b7901b0736f51279c8170750b3c5a553c8acbe139e5e82df2dbb2f79eb08ee8e4b2e7ebad2d85d0dbf564756d4a6a30c2f6990de4756396b8b06edbc84d284a3fd3afd6837408ba363f69f6bb3affa6da624d22e4848b67a78c45cf9ea8fa00964197b232158dfb371c66b7ca7c3c22d020e63355acf552b35e8c83eefb152d24d521b160e1ef94b48571c9c1ab8df5fc1b4b7fa937c8658cce05e4bbb298eb5605c34a6b2078be300d7c3bfa28aeb39a4c0b140b2320d125873792111173726dd56ce878c96e53a6dc3e64cf7d8d082230d1ff70b2ff7642ffebe4c7fe284ccce81c8c1679231da2378454eff5a6d45a0e5d1b31c25d90cb9c0393edb0e4d46622197d205849376668162cd0ad33286d5a4df99389f448ee68fc58be6fd898b72b2b8bdf70464703f43f9bfa253b710e4e7a526ebe16c7e4f7ab03e71d77d206da1bb57a6e4b414f91547a64755f544c3ac05185ef07cc1afb26b8bcde59585f4bee40e0db4a1cd5a4515aa0bbd9d9786118c7a9bac23462a10258e143ab32a1a6f4b3ce31ffb9d8ce07b678b75c02b82965131a0541f11ca524fb9c14b4266ebafe999ba74a3712ab30d4d95669546b612a616a2cfecbcffceb0011124d9d02c1dd7cfe5cb61f9ba0f406845b3a39a50cadbc17e4697f698be7ad3434606d3beba45e28a73457fd6c8f96fab910849476809476607477c5f3461703f811a676ca69376d608a0070cd9b3abd76f59cfbbb9ab302759a32768aac53b3a3fbd6805c3bf4ec3cedaeec36d911b73bbbdd9467e4319746cd47a6dfad3e67ca022995bd9a44ebb905317af166160bc46b8277509e1e2a429b4ef7304ba3917a96b5c31b68c71fe6acbebd72543ab1d8bc1d84d5972df184471b1b5cf473797583df83d55a062d218a89e8e196966c74870d775509a14e00a0bfea03672f1c0c9b0a850698a9af244b8e533c09223f061f2493a1e8815f406114552b9267d63ee66cf57fde8ee0eab3f621bd49f7da36afc1d3ee5ebd86b1e443a2680ec28c232385aa3cb2fb17cb41c6b04a3b34510d4902814a48306eb9ef08e940741684c5bbcae8f737fe213e7901719ee71ff318446d126ae82227dc8e90a0cb2e955abf95ef56c0e00b7e71b2416e94c6120561aeff85af7bd69077518ea2938255641742daef3a6f3fb5307458458d03c35342ca9dc6abfd679661196dbc7a39b98494919af090a98ade5a744fe548503a2450f10470a4ac3744eabb0416fcc2b86837aec6181e8b743f2116f43a6aa385ddf2735d53dd2428b12976527f11da3be3f9bad249ae2f7e5e49179080229027e229bb0ab9c37375e845c607548da7b818caea75a96d4706b03700402d1bf1c86004acd969d940ac52d5879fa9c2fb80b6117f6ba98a8bc9873a946908e1fd14bfefde745542e063c5a55c0fe33a1a33ee2ab5c90a409771871b5e677ed990cd2e48a3b8873214dc0f22d31e8446314f5e04f4c96d689e870e0150520d5135a1434901fca1706b2b652abf2193bf3f166a5b7a9be99463d261c63f1d503033a813a84710c28623389be5aa1eb352d17f65b226dd8366269cf44c2bf8b2ea98163b457e29a9dd4ed0ca6307207f434b8c4f5ff669c51d8fae5c76abee95c3f66b2a53f5dc07c6a86123453a8e24130551e12058f8449bc65a240d82524e76c66e979e9dc7b334556d7d0d8619d1cd6145f03adbe43ed342fe31dff045cb21cf73371f4356f1a87070347cbaa208e6da761c5a12d2d79ed7ad895830264f08379e6ca2fc6df3bed54f842cb160f095712309259cf8fcba1a39401c8789ffa2e93e1f179b53626102fce617f650d5b9d8082614336e308816e562aabca22026590358a0bc31267567507678043fa25ebf84f9abb34f98ff535d95f9ad2bafcbd646eb516ac7cae2aa24ea2ae2d1b66199342e67698397ae37f24268f90f6810a895c7e488013e09124d987db4007f03f5d3ba6e255ba44ab7fcce8d2b229e107bb8435d1c04514787ba92b0a55c095c2265ab8d1d1daef5867c52b6576b8a4d96a49d4095d56220e9fe240ab0afd89d30565161cf9e171e2dc120cd36695c4e054a12fa17a8090f8a37c4f233a0f524e3e988dc8701481645e0b8e10605431887290c52526ba953ceba0eaf161049c93d98b6c215384ad971adc210a755711a7e4dfae08d01cd9859039725cc476d38d08a39e620da26a94256d237852f5e47f06b56117fa249abe8f304a82d9f4f602bde28432ed80abf32906226d3ea4831c00add417a666381bccf49d5e8b20f6ed820bdf1719c87b14583efcdb5e0c756a9753f2ecfaf6c78f51ad8f00845f1c59398d6861cd9b5299fb3241d48e0f4f2c53604358d95c12b5aa0089274d56f79d467f874d970522eabd4a340fea519949b96ad9b46bfeb8d143f6c2b2d3f963511e46a434b1d9c5408d6e14a75880e297ae0d76d9afb2fe2892e8b3c0e403269c43879e6612c0c99f3a64e19f4a386406f47711bfbfde27084c6f7ed4f6a9bfedca9256fac3e2a52e23d44884fbe80ee032abf77a9d8d7e0c4f15df77405dc9c944810d28dd24b770d83201a37c05bf06b263e9674261e8250679c7b633338e862b24bb8713437a95279a874507f503750db43294c14f03d148d90164fc07ef9fe7950aa415942f94414d060160f1f4228206f03d0c2e7a87bf9c2a1f20f5448a85950c004d5572a5dd3200814a550c0004bc7539f44f5f92171dd6ea88477948e3343ed093ad45c28e58ccaf6f4658405525ccc654789971a1ba8beee3865156328a583eaab02bc1d8750b007aacf70f4b5c041c5ab513a500995561fca27145141b964b5ba7ccba09c1b355c6a3e284728658d3a13527db0015fd9a0ca89ea5b0dfb7d2f6e7ed07e53d73dd507d653019fe2d0e796f3751bc5ebf442f5ce503a326dfb494279848a58a87b2851093768a07641c940b9105140df87f8c380eadb77f3d9fe42d573fa8f0b29a0a1fe8bf315a0fa4a9ca292f0911a8950521e053c8d16a0570105b47ca0b4e719141319245305184a3b94aa19bc0e4e282aa85902aaafa1eac70dd4c046d5ce67a3799809aa9653bc0eb79c3850267503b5011440a83da86d504aa0f41ff55e2a1ed448a83da87150aa8cea6b4ce74062154af3a280fa37b1913d0605f401d090a750150a9f76ed5c28d518bc4e3f4201b3785e370b3705b456d6150f40015fc40b440841ceefa851d972fed53e3b945e28ed285e07a7410129d114666b4a87a00f6fa453d8ff6a504b50131fea5ec51d288d0eb503251f6aca50f700288df5ff47f524d5053504a26857a6bce2ba42c9401d07b5134a5650c0271fe6207f443db6855e60274808e9cbe343c0efe308467dcc3beb261e987684a138a14840811e28e0fd86ce7e1e0a783f37654b293a0df458437b9c77fb94276220fe303710db4c7a63f0ec706a68bea2584c4dce4e256fe1780651f8b4386102b67e54c6906d526008dd3aa27c9fe22c1596cb283ee138631b7e555877355570780fc9c5d7fd1e81ee1edf6b9d17908dc428e8a9b52bbd4ecfcbfaa4b552d0fe053725cdde4b362f397e39811d95af89b9455830ab97fe5eb65e7edb6b1385a920a8c24b402f0f2ff95e97bde2ba57455cd4bce9a75ef9bde62cd2da855e75bc6cbce4791de995e535e5b5ee35d1fbba0e3d3c133a2f5d5ef25ecabdeee8b5080237e673ee65865e472d9b893acd4ea91db740f8beb1cd8b753156d0d6b99201698e39134f52041b1e255bd3b3466aa8a8a1a9299eaaeab1a5ce3734586eaa5788f8fd6288486349093356c85c60de6d26250db0334d69f55597256fe044f8cb40f3b169a4695bb4e1b7348a14e89c35ca62fffc88cdede2dbdcd933c26ad59f1b7f4ceeaa3d11df3bfd230a37c900f6669e56fa4a1c8fa1957217b4d423b56ff8499bf68325e928173ff3e66d36e77eda96ae54b45b25b206a265064d66c2cc79e6f8a6b17d09ecb2678cb83f95727b11f05af2e99be6c8b1471d7c641dd1bedec4b4a882686cad1263f081d5a279594bdedebdb3d2a413049ed22c132a932ee605c20d3c8fa7b492af0d512f34481cfeab78b5e896c4519700c4ac958f0022a5c5f6e5e7e323397745d5daf7e243f68911ae84b1b57ab7cc09580ed2dd83b38263544406caec5adc56f755dc70cdfbd7a7c82771ebc1facd73fbd3ad1d9deae56776581c2e43780dfba152944d941b900b03ce17038978cfbfe4f9a48193d9bbf42ad07d3d9372c3fa768f718655a2e5e75790f96b82a6f8daa65700649637e354979f00417436c9e60cdd016e762e83d2e3dcb45a28e7e1f7ea721b286c0675e97d11bfb5486bdccbc1c22219e4dab5b5f1b861c2bc191f5c5a5be76b6f6f73bbe0d307e7669ae3a99fbe24eca35381ae85cbf9a7eeeb5ebea7fd834518ba9750424ec8c390117d67596295d4fc01632d94bbe083e3132184a268a79ed0ac64f79074ab986ab870830b3bd37cbb10e43151d584553f327082a78a444485e90c317ab57737b0a29c9462d41f55aa54e4c8f6fc56d02099bd35ac3b72ba0b48982dd19ad10bfdd1162a76cd2265845c722d92a52f2b9a57040de18703c6418a9b1044e269b0377ccdd6e8a067288293b1ad87fa40c51748a2e1c5687560294386e598c56e5711a9428054dd14941e51ce004e74fcb110e2cf2aa1ea188424ca4176e10002f6ea40b32bd20ffa5fb94833320cd3235cac546c15c43ee2436d3c353a333ed8a875723e97f1032e9a1a37be412001808feaf4917f7fcafc806835e9038ddd7b26041e9028a91ee2ec9bc08f1d9453263f9f262b9ee367d489bbd16024da4882b1f3d26c1df2fc27e93193bd806d7e3391e40b05a40dd6101ea8ddc56e2d80646eb692a4ae8084033736397f9b5d1b90a9a975d56928643840bece13bc08fbc1c3623339548a8fd90fde3ea2f2e262853e784d11758579af6ff42a12f91666aee48812971c322bebc9cae46837df7448b8366d7d601c2822aa9bb8a708fb7c44d7a4017361ae7b934998797921cbbd81d836128a623bce73529e4cd38e0906160dbdf1bb60614ddd3a48d7570bac8763a095024d5a72da4dbb324f694d2ea35d86156837292314cf9d0dfab43926c505c9c8133544684624e5f6a502f973a3c55e4340381aceebd45f0e893d34f39c5244f4bf9423a415ffdbf12cd48058c1eef8c5f6db544b6d71cee327ad4c7aec5919e632a87184aeb8ff289e124b2150ccb6ed87a5a79b387da3c5195b25a203234b728f6414ca7683533a950fc507f749830401c5f93071cd2e60b132472480ab0eb34132ca25e661c120b2148dfd3f25e5c8286fdb3e91c41e2815240179e3324cbc93b7732c7f7892a22773f63fd864f2602de979e27364d2e15a495013d3719e8686c0622fbf1a53dbd03f6cee1d1efb1e4a42b5b1935f984e04b031e11e46fd74d86d8a1c79594f6c8d45ba5bd3369e1d9f83140de5febe873bd6c31ae594b8f3a1fc57dd1a832ad3b064f43de313081d070c79c9a38426c379ceba01a03080c3c683dbfd678bd2f057816f6ceaa4560813edaf81fac5ede2d4dcf8744f9075010548663fcc1aea58dac607819b8cddfa02941859063796863015fff3ba51d67e477f31074ce9f61117c08c12b9fde47e34863d6f1243badca7ee1dd1ce552ef0d7e14d974d440bec93e295998d9598792bcabc956f6fc8bf999f1498d0761c5ea36244375a03fa6a0457c1e525c675c5bdedbcb658bb33a99401884e72e9d863390d4b5e308c342b0103b4d4693403b40fb8eaa9f9f4376229c43f004a9ab9bd0631bea37f5da4d431c5d218c284ef7f51d9961bb213077cf6282a89afc06d0d0203ddc773bbafe1b734861d54cd5e04b6c9df1f6937484a18e20339b338821b8d133affba0ab6e3b04841e4a01e255a8b68c45e0092359f36a999d7f348598471e2e097bebceb0ef5d4589ecf1bbf96605873d9d26fbffde685b2fa4a9461f42c2450b5d8030c18ab4ba2e9358a8f54dc0d16a402c6018037387ba5c711e56264d2b631c8a5509cc8239a297f5d3584afbb20555f488ea3c7eb32693718c80065363c667a76112a4f354743ba9f1c4ff081909c8a551ae17113cf185db506290b93b88e8d242155e3670c49ef0e147ff872040cbbbcf6061129b670c6545932b8e715f248ca057992b15083a2a69141644910231788c015ba92494325c3922f126f5975cd8dc75d8d5f0c4e2626fe69d0b129cd2161ebb20cfa68a705e583035dd9760269b0626ac0462309b2e8b9b1d87b522e31e816f6ed319393bee5e3e89a09a05e81f4d0cdc9aa0e202f26a1ee943e15f33d6e6446041ac89d115e272235bbfeadf3f8dd346d61b7017a09dfaceea5331e26093d908881a457e4ec1e1d3f9cca9da95d345536a49a6336382f05dd0060850dcaa35e202100b45aabebbe087db79de8712a00761aea9f73a9c1e9204167476cf4e0a45834bf6b604c83a1ca308d3f0bce1ff7af12acdeab04dc0a6f36404911074e321e3c4f26d5b8e00afd5b4da101584ed6a4a9065123ea60acbb2204abbe8668a2563c3f17ad891d1c3b8fd7cc7404c719263b1ec4847b675bb3f2116f9da846d6fc905d6a8cb0233ad897041cf5062712d94da3d741579b3bdf1c21a6f261975fa14c32ab0e0ea550165539a2016f7334e4a481e88d60c0435950fb8a51093fa8eda34a8a5db0f9da2336aead1b031d32beb6903e9f5fc9ebcae69b0ae18f42b40961285f0fcdcda1d81963a49cb1d46ef0c25c689162f947c31e2f09c5a7bb74dae4922bcd7d70750ef73f00a2913135dc0163be9b562a8cfe8f58d24b0056bf33d8d707c737d44cf9599c4a5cc811d7c748fc3f05a1ede32b57d53c88c1e10261100880033155b82449ec4ad442fa5f00c01ef623b7bf7188f8956095283cfad352ce393a42a19dc46cfa8b8d3707479e6635bcf292605b97c67489c24bb608efaf0632c41ba13e44c54b1e834d1c44e0d189574aabeb7a2dec64ed21810d86dd97eaac0de0c32d7f9d432e923d57d66bef43d644c1ab1afcc4cab97251de97396f390c7bb57fe67975839f1a04aab4801330b7e0d71a56d91f5327f5bafb945a17244ca06629954a1587a384486fff6925c4463bf7db518a0f1864bad2741994f2df311867d2aeb7c6545cc24f3d8084ede43f1a2ec11027e436f0f826dc3076f4a86bd413529007b5cbec5be278c53be049bab31bb25c713cb94f90cd0ddd0ee8a55e5c9a91cfed918ec1d48fe1f1084505140a52886e066a7c67d24fbaa0198dc21a39fc156fffe4b1e0e95ac0353b27c7f33d97788ed05fce49f53149723f56c5ffaabd49364f3fc75eafba8267e1f03020a12bdfb0b45598e908fc5dfca86c08f36c89e93049d9b52f11b11630b72c5e649419f7d1673a6baec73aab57fd78120e6dd0c34422aea49e17ce086ec6e7122843f7027a4ee6652a1a8bdd44dbc04d03f1351cc6a196693e0baa86c36b36fa5ad82a59ca0da6aba7a1ee1364e21406567e9a039ecbfd99b3e5086fc3c33ca7bb8347adcef43aa0131e440df5ea144cc5d8cb1577c6d16dfb4d562d1645130381d947b1e25173155a846d4025b9b664664c56cad261cbccd0e60e46fae68b324813042892903e25d7256a40e0465196eb02b2f8f5c8beb2c1c80469dd127d2a8ceca266608794b7488b79ce0d5b00563c93602949a7608de9a4d9e573456af30b32dc17400e6d926c0a41380f0bb0b84fa3e399587ab0eb7234fcf84db3257bcea78911ee527ad0849824f0c3b4ffb1ab5618e96fd2ba6ea2761d43ab87242af29401f23b56107020ad4eba693b4bbde212829fc3820c01c54541733cbd41ae8e7d1084fd04285c49d5bd4de21d925e611a442c5465bc38f74ee0bd5a6c066b0e59aab19e401e8e021fc4c365ca3c2e40c5c088f22ff6c5c6441846b8af054d61d9be704f4537aecfab49ba2f9536214a3368bb8ea0151463201729bd806d8be08b87962b10c293367362a1e0e6ee86b8e126dd7263f7d5ca07f267afdf984b35eaf822f341023eb121c5aef00c9585fe77e8efec4665823a29438cdc82da54a48e800d880d13a2737e7fce4321206253b66b413c7f6037cdc071462fb22ceb8dd3c0851df30b026481e172a2203e2a3fe580743ee0761c0e0962045ddf0646a57d2f5bc82ef38cb65c79f58e3073ca1bbed606e3b66c5b28ea8681f51ae3dd998b83bbd2de05deab96bde72526b511f37a59c25b0f3b36ad08ff9ef7ea73d432ba69adcb84a756c5b38eae50dd3fdd71baca38078f8ee8053ba1b14e27b3ddd7e9e2e9083e5bbaca7505ea9eafee5dc0472a11a374a77555b7bb23bddabcae752fd4cdd2bdd1bd44dd5e02b583c5bcf54a8f5e8ef75eb9778ebce7c4748f5997649bfdffac2b5d5751f737dd3cdd17dde57567eb5a76a54d4f0f272fd3953eda6771fd7454c55dcfc37b1e727fca72f2fa7d37dbaa1bdb69463766bb73726f3694bc7cba6bbc47092c04f48a02ae4a44db0a3470b254720333333333333333333373cc4edb866dadbccd4e7ba5dbdcd9eee34e494949493e685c6006256b03256b03256b430502be0a120bc90a2514e48a999205cfe3abd50105390ed37ce58fc9c3bffa09625d1af728a2f704b93cb4d83e179b69df4e90337be6d8a84b67ce0972b4296a7b14ca4d902362e5a3d4a6b3cf68825852296695d63341f0e8a1cb4bb5e9c7144c9073e42127355cf8bb5c82349f2f496ece6109b24d6b85b64b6f8eba12e41c87ec4f3ade16dc831244bffaf47176380992e6d0d2fa47713a3a5c12640d7e317ac7cd962f4682f4317b8e7a71d3fddf9020d6eba52f8be12219f30872ccf238556b53e59b1d41bccb1e63ea8d31b4a31a41d8b1d4718a9a67356346105cf35c43f6e6caa92c821c4eb3ac3baf08525aeb8ecbd8bc0b712248d92b2aef45a760391611848b9723f5b1ce99c90f4130f1db10240f3af5f8c7f18520276b0d1d53ce1182d497c1038feb0d82dcf271aed8600a82bc9b5ea23c69ecd882812087c93a85ccae7896040429b347f21fc8f7610ae1a1b66b0ad10f84efdb783d1dda0742a68c2e990cf940924f1f5dfd7e3b8eda0339ed87d13fce981e087217ffa73ea8af1c9c07d2e61bcdf1628c7927c30329d4f48cbfe9eae57607e25c05cfc1537947efda81f8b172a5f2cab1e5f0aa0339e689cff591470772caf14545f1f89be23990dc346fb82507d288dec6e4a2debb91c5819829b6b299a3c4d88303b1b23fd0d7e061fab037a8b9a15e14c0da40f08cea39e8e837369cd91ad0d440740ffef35bc107581a089ea3fff056396fcc1a3490f3b965fcbde9a8c9720682ae6cbcb46ca173ee3003e93f3254facfcb400ebbf0718ede3fc3a7c940d4ca99528eb385b9e5c6c07be0c1e5764c0c844a655dad337b69530b0331748adf8fc3dd711bb9a051b878149072c3158081094c80ed6b70c1451f053e00c3040606620717dee40373890c2927ec0b840e23f361478f33e6d1e08024cc0bc4d4d199e7772de3c7fe060d2db6f02d0e615d207884f60727e11f8c0b644d1dd57630db32f3b12d1c55cba7f4098d1c4c0be4cf4fdad18d78dce96481f01d42622d3f4f95de06c302e17250390eef32c37d2ec6960cbb02f93f33b75e0e3e67ca89b16505b265ba4aab9c191326d3c0aa40cc6e314729668fe44305253f3c2dd74cfbc0a640d62e35cdaef1dfae0e4c0aa4982c799c0b9b57132f07160562c7b39c6dcd1ca8a650209ff77afce127439e06027b02f9e6bd72deebeaf09913489e5537546a5d9ae6c4d872c101e3460d1a36f603d604e2f78ac739b08d63b29e8dc098404cd7972b4369d6905b1d6c09e470b3d94e957f69779440d43bdf595bd5bcdc2781d0b1638db44739fa354820ad6559ccfe87d4fd380259efe632a51cc7dda16e04720e92c15b44df35d94520bb7b87b3d1c64dbb260239688a1eefc64320c6e5e7c8df1059311502c16dceda3f4a8340eaf05517bb43dfe58140f2eebfb0a2f90131bda39575dc9a1a4e1f902bb3c294bad903a26ef438e583120f2ce401293358cf767d3b204cb9a9eb7da85b1ed301c973eddc9d964793590e88eddd914593744fbb7040cacfa1c69a6496efdce08f1bdfdc39c506a41ca58bcfd671d747d780944ba7f7ca351a103d4d5b3dddc9bd48350bd2e5ee54db977aeb0f9305298731c4e7f83bf4e31c39542c48fbdd510e4d1f670eee6258903bc6be4b59c10c43bd82e8f9c3b5875853fdca17ca1504bbcb96c360bee3a176c1f96f05b1635cd470ed5941cc39ffcd36457edc97559052ec27330bfbb9d7a20a620e422aefc4a3fcf1480539771469bfae1e7738a382f017435559944f41dcf5abfdcc9ab8983405b93b4eebf8fd73dc729682a43925c2625a89c7415290ea2ce61cb30347418e1f9f45bbfc39e2220a72761a0f75cfa278a48582a8e29e1f5d7faaef1c5010c6e3e85bf3a7492be713648fa25f3c41d48f83cbd177ce0fe4a313e4c0837ec6b68d3147714e9083caa1bdd85c86877c13643f1d0b5b29dc5ad69a20847d8b99e9f685853341eca98c8aab1d7d18664c10c42b877930775d8294265377d26d2d41b21873984b2f63f8b812c48ccefe38cc6db36a528230e69992564fa7996c12844fb7b616c3549220dd6784471b4433ee25150937595e0db361d7712f5ec028179cff411424c83194696c5eefa02be711a4a879fd45a57f653c8e207ac8d0c9b43beefea611648f72b036671de9f7861184fdf8f47cb35904292fe63115cd7193ea8a2065e9a8ab67c6ce9e2782b4796f3bcb05490f362248dbf1613bf0e043105ba775f2e34842bd3504593595590872c8a09fa2b472e72824042946b4460f229efbba4110b3f579d0e89db62a2608d286ca2b96af0a04f1752ee77ecaae1e0308525a8ada5165ff40caa15c7af1682b7a205da1fc400efdc7f3ee7c5cff387d2074d0942d9592ab95870f246b13b9fd5e8f32e5f7408e2bb5e5dcfbeb81f0d2f7d9c15ebdc54c1e88953d5736650a1e88d1230f5a9bdaa2c37207e386d24eb51eb703e172cae86a651bb5e37520ed667f56efa9b90f3a10638cd1bde563df87cf81ac9d3ab26c39436f6c399063747ca697751c081ee6d2b2c34bfdfcc2811853bbae37b86f207f78c858c15c637b371043e754ee7ae5d0c3b4a1cef6301bc816d4b3c6bbebf8ca3510aaf4df625bb664a76a20268ffa2f99fd3dea340df5e7f44103d143ab5853e93cb33d0331e73877ccbaa519089a69e5fe63b10ce4ca19f35fba643dd39181d4aa9feeb1aaad29360672bc39c8145b25e3dc62b0c3c5d2ecf13090340792ff415460b83af6ecebc2a82f9073def4242f6f9c9dca0ba4f8a1c7d1a4315d20871f1ef7f1bb64f89b0b240fd3fe74c62e260fe7505b2059d2f40f1f6b424d93426981fcf945643c859dcf781648c9c79366acc585cb0187c202396e9e1b999aec8c655d812466f2e9e3b95620878ced40df3d0ec35e5b684115d0620b2d88025a6ca1054d408b2db4200968b1851614012db6d08220a0c5165ad003b4b08004b4c0435581bcb716e3dee7a9408cb9be3eda74dba7504d811c95f3a1578ef73065636cad1448a5aff183a8f6ec38c7581829781b56339e8b12788d185d70022a0ad87694f8ecd126370b0ac468b1ae526bb17f5181f91acaf50472f4a0c31afd9cc5c5bb418303661e282790fde36a2c7dcf9c8b33a19a402ac99c597f393efbac1613c86b7974c33e4a065ebc50422d81142bd7fff365ab987e8cfd038641018d1836be468c1b306e1419356ed838fb1a344a060e03a50482c514cd71f81563cbc65612c81ef57c94b738efca9ba19040d2f46b1d95472a408b2db448008c1a5c7031863a0239c8b6cf39fda65c9e53863202c9368b87b35e7621a346b1f10bb8d182a74091a18a40ac2eef78452e76a0321148e93ee6fa48b7503bed1fbe4320753cbfae73f9311b1602c94e53270d5739a18240bcac4f1fa216170a0884ceebdb41d6897af47e40ee70ef8374a814ae635a6840025af880fc7b1fe52c8fe4dc3bfc503d209f7f36b94af163f40c0fc831e7190f759915396f0fb503826ee80e8d334386c5a17440cc6961ea3a8ad5f04741216340e5809c36e530875c6a98a770408a612c3aacf2ae503720e5eff081954a974a6586779181172fca0644b14a69c9d35bff6d33bc0b1b6dde45064a3043069a8caa01d192852e976d4b96fdd5018a065dff87896818ce00cd8294eeb3926c26ed28721855009205a16cb653ac18f7f43e2e3860d88041568346061e00068a0531c798734ad619166d215890a62eb4771cd5e2879a57641d6fc56fe9949b2bc879b1f15799345ba55b41bc90f1783bf60b9a5b5610276aa3831315e9acd22a0817ac836f8c515510b376a6aff01f77785e2a88b9366b6f35b4077e1ea1829473fcf4bdf9f16cca4ed197da945b01847d2b8d69da73efb12f9061e36ba48c2efccaafe000414aa1657a79ab73720ffe81981e7fe7bf54a35d01fd406cb75feb892ec6160cab02f6813cf19147c9bca2e52e5400c36b78177c209a675945e77053a41963ab8c0ab807c2bcc79a1a56d7d7f777f135d400a807d63cdf47cd71eacff61c1a304e50649c200fe4f4d17fa8999bfa2d2f6f82af810752e7ca39fde49936431867055dc0b8517cc67314f00ea4b5f53aeb2879a85ed981a03b9972bee76bc058ac03398cd71d74957d8de6403a90a365f228ef30a7060d8c1b6f439f80732074c4c7e13b8ec5b3cf829f714c403990725fcc21773b74fc7f1c48737e39f81cf5878dde078403b173d8976fdfbe81f0f5bf972a2f9627550fe80642c5644cf6ab12b9c13690d2ebe7fb18ba323f480ec8067287211d63daaf141fb771c035905392f97c155db9f1ab81bca9cf825dda56dbdd601a5cb16ecf71bb423d83060caa3234902c5454fe18172aa841430529502ef00cfd6e5e49c771901988319caa562ef9a88205115806c2cd8cfd46ed0ae293f901c9404c1f752a3bcad0817df418c8dadd1d75727d97f209071403793d5d3bf83877fb941906d2abe7f6f3fb987234e6e91f4c471e6abe40bc34f1f9cd31a6671363abc838c76bdc80718346b701bd40ca1d78fec90cdb129a185b340c361ab00b244f52af73f5b199402e90a634c5d689d20e16a525700be44acb4f392e0b26500ba4a81cde4ee9b657aab340b4fdb8d13b6525100bc40e2573d4e061a3c7e015489d379c6f47fb7836c73202ad408e73e45de9aeee5def22b00a643f5fd70beac200a940768f9276b2296a44e21a3885a3349a520e7d3966d090f1376cc8b051e3bbc8472990a55db385eed0c37a46b5822b1805e26fe88b51e12ebd7c3260b8e0868c19be8247c1d7303b100aa50f57b3e3ec373e641815d0782e64dca03fe013883bbe7d315fc7ba29ff5fe3d499019d909564d64eab0de7116013fca437aaa118bb4c20c47a58217e63c88e76a1021a354a004343804b20068fcf394b6885cb612510bcabb2a364175ca8c0860d4f10601248c12d3f56db7487cc15d50a4e3d804820c7cbc69d698b394be311c8121191e7c11b63cb086804a24864f41ca3d1236a1132adb4d6f8ec751d9008447d75cfd5210e819c2c45bea4d7074faf1008affa1d73201f1d3008a45515bdf2682a7f8e0702b9e27e4e294dec522e750df80352f6d0c3dbd2a56e3aa706f40159a4e3e68ca5fe66c504d803924c7bd4aa26af9b3a471e903d5c93d794a232e7a704813b20d87825f1ff8903a80372d42ecf4c231daec7e780289a3af29437e5be2a911007c4f53826d3d5ef06e4d889b9ec6261a76378401b10534f3ce6c88f3625bc3a63f977401a9062cea3a9eb6716e428e8a5fdb5e4daeeb220e51cc4bf5ef685b41b0bd274476739731ca5add8010e16849bb04c6271ba63785ebca81ac4bd8214e9c943c44e3fd4e20a52cc97b6e8b177570cd7a0b1c5158c6ec4b582606b9d3ae53e58419aecf3703b5e055163dcecdbb84fa9745510a379b2dadda48218cc4aad67af27bab6a102df2210870a3f2e9f6d1f534f419af1ddd4a091670a42e5a7dfcd1dbca72c05e9cdb6f4b2a7a7e79414a48ad1e4faa3f028bf51103ff82ed9b42f17138a821cdb4358556de73b3d14a77be8af140e1444b7d857d9aaaf4f90a3d9ca7d29de9e20e6a6bfd3ad8faf13c4b81aa73cdee746f973c80c1560c0053516f0626dc8e8c26170515aa05f384e903d75c50f12e2a1c34b60543003460b9c8bd6c06d82a0d3af1fc5acedb30ab88a5166788d4331709a20455c7a8bdb705a16aee13241d24c2906cd2e0d0d870952c6548b12ef76921f5eb84b903b4a43eca46fcaf359829453f8f5742f6f94af51834639ab80165b687195207e2cdb6a1f6982384a90ed73b81f933b0982c7f4e774a9cfbeee24419e4e0bcf1f6b08bd140c14a8800b185c3766c8a06101ad8a0439f8149329aebd1a3a31b6ae4a3043460c0dd4780b302488f1a43b8e530c96a453ca238891269b39b8c6a0e9b4c239829c52ae5caaec54903bb846dcde31fc06ed57c6f1e20523089ed63b52ea2d8268972a596c8eebea61703845102cc7e8c1d32a8920dad9754a47929fe44404c12544cf426be66dec0e418cd01cfbcc97471ec90eb031863304398ebeefa1bde6f99c5308f2e7687de5b82f7d1c4a086250d7d68c8c699fcf4190eceebec2c751064e10e4166d494f9d5109c65d200816c43cf3c4734c15810304296695a4d4bff707c278a039f2528a54fcfc40faecdb2fe3fe1f78d2c6d7a032eb03d1426362cac47c73bbe30339e978fc793c4caa39f6f670b64bb4a674e9834fcd80d1a585061ac086d303613ddda7df72d091e7b67079f8c1e1e124e3f175fd85e5707720e544b4e6ec8885b303d9238ff26d23636638176fc8707570c1d181e8416ef6e640b2779b93faf8a3cf714e0ee4d4d99cc3f8203aaa1c6bc1c7880351ec53160e843e59b7c8f034dfde1b88b3d1d3152ae56029e706520eb3fba6d45f1beac50c8e0d04cdadb1f9202e7e6c780cd642030d304c1ab7066259cb5d570e7318f554e1d440da54e5c1d9ed54b83410d3772875d1b2f4c7478c1b4f84430339947a56ed66058f32b8a031c30528a061817f06b0d960c09d81545d5d95723011557b0c18865d988120db1aa5c33bca7a08842b0371d3783015638a39fd9381e49eb7d17287e571d98d8178e5c1c79f771853e3185b270692c7ef603bf47de4390d03d1d33bba6e876abc8d3b3090a3f1d2cdf183cae1356ed88061be0b2f361ec60de7a2068dc355e36d1c01ee0b6836cf49d63b6ec30b848f1ee698bdfa673c8ab135e3975c17c8eee96d91a1e716c78535d6d94cdeba8c021a05c68df2263868f0096e0b8f65097309460b641cabac41a3468dcf0e9c162a73b3684f6b6d6db192ce8cf08e5f77ecc2053760c858135c16089b728ec5ce3ef8f41c17cc70adc06181bcd1a9ba7b64ce03e98c03a7587c0f7352e0ac40ced45896992b7d76b6068d1925905105f2d574b8374f6962da12cca08102bec05181b41f45fd4eeb94e06fcc90310572f986657cf51b382990ae73b2ca7e6e14485e191d7b9e9387f7460def0206eac1091c14885375f21793ba9759b89051de3c81f4c166e85339fd30738cad43e361d4a0e104f2f6bb7cf7fef865ce0c1a5db4e04f02d704527eaef9cafdc6d89a016386171b4c20e5e6e5f72cd9c880f1366a781705815b0231cacd7f2c193e6a27f8ef82aa46d9034e09c4dfaeb0567e71fa2d4920c714de721cf25e53dc185b3764d890b182acf1366ab805acde181d128895ea2f5dc5e508e438ff3defe0e26e75188168a9335e53e34520fbf8defdd5a68c694420d97dc78e39a5ee543404f2f89d497eca3968df51052704425efe87ce29e6d83d3c08a4ace9b072413b2010bd7bfd2fa5ce729b86713f20f687b1f25d7567cca90f88212fcdf3cb87a527c1e07a40f08ab76cef19bbce60e0c58b52e3c50b3e8e07a44d7793b93bce9a92783b2086265159db1ca5a82dc656d98db771e981d301e1037dfdfb8b1e8cf83920771c9b7d8efdb103d3e0807c361ee53955ddb41e3720444a6e2a6dfb9863b701c9a7ad3e07a5b61fb45703729ce5d06732a8be5a470372183dd8c514cb6641d094cd8e1d3c94b4c96441bec8fb31fd983fc5c501b45890cf4266ad368f83a666b0207a0c67651de6d12ebd828ed6f4e34a5936c715241dd1ce17dfeac23f0693b582ceb3972be3c795036ba8a07c8d35569067337c3a1b7115e40eb61517dde9be535441b2ce6d7216de541035bcc6b0318a45c90fddc25041f6f7e8bf16cec255d84e41d61cc49bcb54dc7be40c1a32ec00660ae26b92f88e72e0a7d3978214a3e5be6cd58c1a7fe3867701e304fe350e5c230561e482855cffec9d9b5190c5a27f8a19cead3b8e280819530e2a2f5696cb07fe47bd7c1f48298fcf6e75ca07a269d0f4483db4b44b022008ba0742a64f251f4378509dea81e8a3e3617586eca09207e2a97ca5f467dbe18b07720699d0cea18a6896772069e966fd8cfbe13fb403b1c53aeb7ceea825da61fa51bdcdebe8404cb3aa96a38f47b3af3990b6fdda63eb4af7d7c8811c8cad26ffac7c0232d03890a30b973fc68ae6f999e7c00c140ee47ed3b0395a8e7999df40888c1e7eb8a8d13fe5b88194d6db72a758f6106fc898a1020ebc78f1e605da06d267f4b883fa241b489af2fd54f4cb1a481eace39c7390f49b4f0d2495773d9df7a4811c7467cd0fea4603d92d4b869b4ab7a7bd9e81787aabb95f5c3310cd46dda22a2c35ae6528de7357354d86f443cb31de7a9c83c770874a7f396408eba812439e3bce56fb51ad168692798ec3bcf12aa9321868dd90d060e917081e1ee6e5f7d80cefc2c68b17356e74c1857a8120766aff6186768bbc0b04ade8f6303f57080b2b178c6e8114e5c3de7ffd37f78c6a81d451d9356a4c517070f1366c78b9a1820a68b18516331ea0c5161a40b471e85b13ee391a502c94cfc39c43e98f9eeb15d40aa614ec3aaac7642e8db540ab401ad5cc39f21f114d1f2a107fa2722acc3205faced47fa75f11a814485295b2975cdab9fc4481a879da214efb67b70305f2644a1995e3a0c23bfe0904d90e1df50eeaff354e20bb7e982f97669a40f28a413e9547644e192690234d29c7b5f654dd519640f20949e928815c1d658ced9f3b763909c4ab14e52da70a7567410269c6ea7e635f737c8e4088b29cc394492c2236023187fecf95238f221035c6495e68071148c963ad48f4a66e7e08e438bcd8eafa71f95d0804f18c61d1f3f174ee41206b7d5b8f9c0e0482ed450f44cc3ecef80fc8a93ba9c50ff60139db5ec8dbd87f8cee94e501693fbb64fe2ef75b7607e4e0e3c847feb23a20d7cc07595995e3cce480f49d92fd32954955c501d13c869c6d904f7eb90139fd93954761e13db701c1b43695d507cd996b404a953a3d6a0f1993954a033564c75964839ec7c8043e0bfe23773175860c2e76cb71f4615f2c2a8b3319ef8605ddd93d3add6535f3156791d6b03988edd615a4ecd01ddc9dca7e9c56903468ccb13ecad7718715e4781952d3684cdbe42ac8b9a3e4f7e71cafa42a481f791097bccfd35c980af29c851a8f2e07b70851410e34c56c21a53b8efc14e4189a837c8ffd7ef44c41eefca152f68f3cbcbb5290231389ee3d7d979a1404bbcb880ee3d9a1b55190a4bee33e6967e8cb4441b6289112353314e4fc7eb1530ecf3f99050a82dadeaaeebc5a746ce627c8e39772367ae481077a8298a1164fcee3f01cd70962dd5f0c1ed8756a569c204a4739cc9f4d6a9edf045955d4d67bf3eaed9a20dff7670fbccec461d479ddfa85ceaf668db7719820069bed2cf52e41fcb99e52934ea26164c1cf3006d838425ae28ca93ae2deb1e9adbf26642588413c8c6f51532b5dd4854fc010909468f203ff1d0de2f9d4404e82d0b39bd673b61a34809404513fc8f60eb22e4bad9120e6b14d61c4bd6dd503095208958f3e07ff1fd7e511240b1336f6925172f38e20587ab4b1551b41ee2834fdc37e4baf1e8c20050bd3e9e338b195fe22c87f2f2d5b9dfb431184680d51f19d7bfbfa441042434e72373f8e638f0892556a2befbc390469372c7cf4d11bdd634310d3d4aba5dd0a3aba2904f1ad83989f8e26045144f2743dd40c829847c74207dd61b644822064844ded4e66cc9f120882e5eaa8d7536c0b5d01413c0f336ffaf431558ee30f848c4f3ee9a61f4895993f4cee719e721f08ed63e9637bbcb163cc07c295499754bab983dc03d97277ead8e3bbe37af5400e535618eff2987358e781d8fa712c1e089a3723afa3cfbcd2de8114b31f2e450df198b103d1a3d04f16a66b1ea8752087ced93795a7e670261dc81f33effca5a81c7b9a0369ab2a471f46548eaa9403c963caa1a3c353b0dfe240f2110fd951768f76473890da57f237102bd3d676b4eace4537903a73ccd2cc7156ce611bc839e3774685b8fcad6c20eadfcc5e0e2ab3c7d7408aba95cd72f0f7af9d1a08f5f1b787c172d24030bd6c6d6f1d1a887b1d559ca70e3de5e60cc4dc61e5b2be427d6f06ca52a7e81d1d652074f8b83bf4256f0b1a194876171f5da25df57e8e81ac9f34566cdc46872606425f8cd7997c2a731c1a06e2fbf7fce459e70906926da7ada9f519f01bbe002e68dc98e1312cf0e2458d3f410de782bf408a0ee325bc2f2f103c67798f83c96dc75b0a3e039c5d205e47abb8f3a5ee218eb15509e8c227d05c2046fdcd612fe35a2fc665d4f0156c8150b11d5e95654786959b5a20c6c72b669652b034b340f0a0d57ab376baecc6c276ba1a54fbabeea3a557205ea798329bd36486470966c8b061430617f7c632ad9055a81749853b5fb8f0388c464e81d8d9eb2ff6ff5dda29858c02e1ad5ffc53c4185b9d83848207f209c4bdf41fa447f92e87063a03e984e72d94ff86d79cc3058d1a0c682eb20907f1e96275ec30c90472146d63c7be9b58815c0277bff9173fa904a29f944be66e4ee3518f812f32509081172f8c7f0d3a6c48e0c58b2d52f0368a4f0054c824ecf6fa7e3fbbf29e2712b6ac313a4c55a80eaf71c3461ec1d3e4966e359d721ac1b208567e8a8d2a62e6802402a1e2b471e41088d31dcd9a26ddb8311503068d1b2d7807d0d0c08b172df81830ca0d1b2aa8c12ae81402a1a7a29bc7d11104a28a7e5857ef12bb69209067357ecea8687a6ff307e41d97ce687d39dacaf40151fe73f79ce9e7f3b3078475bd6ff3c8ee3048d680e40129ca72a5ed90480ffa1d7096a2a30fd3c7a40efefb0fa43d109f0d093207a4af6439e2d1a5a8958203f26adc5039fa7d0362ffdd7ab5da36208506df1c72e43cf65b03b2e6d3b058539a2c964903b277fcbffe886f65390b5275f8d95293e5ac1e288b3a854eab54ec544880b120058fe372e4562b3a1a2c8851d376ceed7164aabf8298ed64936e6cc85acb15e4efb2e8fbccfeb147d80a52742c1f0b64015941ce5d219dec4e55562d34d0001a2548c0cfa80017346a3000032f5e082008b80a7230f9f832c5e416d6b380165b685159a70ae299b7c7f85f8bb59b4c602ac89ebdea1b22b976495490e243c58da516559f826c3f361e75ad54cb4e405390353bc35aedc4c777c1c5df900123860d157491580a42efcc45d90a9bdf0c2988c903f1eb781f6ede4c0d19390a62b60cd112ed713f8a4541e89cd3163e7ff2d5220b052969fda69d9760cca001a30b15c0b8d1829fd1a020ffdd667ffc5a9f20746c9b1f9e3d7f6af814819e20c77b967cdf5cb359d909b26858bd875f781c595c50e3c60c62c36bb80538418c4c71412b69f0a8b23562e026c8e983d1f431ad8d7db0f9af7160dcf812c030337c1135b1850c3013a493938df9f346ff68e01b1013e468f28187551d6d7da88dba4b905374160fdea39fabbc25081aaeb13b9c4fe15f8bb105830e2b418ecf4bc3cb8709035282e8d1a87734e591f7683809f2c51c87d9f5438a07d3b801c3984982b0d1e3aa65bfe0b1796ed8f81b8e82322e60240875ff15d5836f7b36181204991cdbd0c1577f94c44790c378321e5c3a16355540c33c17326e3882dcb21e5cbe37c79b6bc49b9b1b6eff62432023c836af31e627b273a436085c04315747f2b1544df8752882149ba9391ff6745cf0f2808920e7798f729efdeace81868820d8ed8835073c04d96eaec395aac0984143cd8c0a04e0096808625b6dec0bcd67d4f81b2d7818745dc04210decd53c303ddcfa1328305340c0c2404d9cccc7e3a6556cbba5ac041a0208827ff81e54e1ee75536c6562002a6d4f94b104c08726dac654f974b131ac6e241102cfba356549cc6392c16042974a84a162eddb5c6185bab85061aa0c5dfa0c18115c00844e19247fd75751f090892c5b21c7b1c07190bfc07c286f82887a7172ffd2881fd40cca89f35a5f0fb95d347e03e106dca43bfd39a0314e02e9c8b191805e603d17aaab1e3be700f07d7e9307fadfecfa207fe63eda487e6e10f3a0ccdf927e3018fced8dcd41d887e193df44a2174836b0747475ac375ac3f75207fe0a56349cee2c3201dea1c974ee5d20d970cf01cc82968ca61d0f9fe868c6a35b01c88c9bdb298d9566a5be240eaa063f2d306e140cccc60395c422f6df70672477bdf81a5de65b0b881943baedf50962dd8d406f286bf9c550f1b881e6e67cc56c8be145f03f942d3c85bf65c4a25ab81947a7d2167d73ac52d0dc49077ab5031ad8a58ca0546c3dab1766d0eef9e047c06c24aeace7b246b81cd4054ff6ccbe61d544c7e1908ee67e17154d0fcc8830c4493d9cc3acdc740accc6114b9ec8a81cfe932c7105a8681a8d596eebdfef1075b092e0b0c06e2a777f8cc51e70b04cff151fab3daf1e8e285b346e4a30b67af6071a32b5c2048e6983ac4663db77b0be4142f2f7a3ec8fe85b54096bd0e9f2f5a478b5934701608b515253cf2a092c1c702c93fcad1751cbea957b902d1a344b4c5f2ac40baf638a50c9baa02d9263ed4884d4706a602f993872137588caad6da9802a9d2632add7cc6b82952209a071d59ccaf1ef8b65120674a3f769b3b76cf1f1408529dde6536ad4ce509a4eb4f1fdfa64d598f819d408ef4e373ccdb3781e07d1b67e627a6d5dda0a1012db640010a5c036af90166023910bba8cb6b9740d21c84e510a71288d13cccb2bd9959836a11d0620b2d2a025a6840025a848193f0aeb7678f3d55fd4702762fbb29a4d2ce374730ed8bdc5c0cbb3d1923701ea716f15811fc8f3baf6c57622742f7217344d6434026c62b4516421b1afad3abc71e04b3cda650dfbf4da904c27b295db9f803df3ef4fb1c555cc507a9bb995476da763d48473c0ef466f3acc303fcac339d074f7b07e5a036737c1fee67b47470bb64ce5e1a13d1c9c1292437436c5df804b4ba702ea882c038207e65d0ae944ae1bde11b1033bcd2a4eb9f74601b1067337ff6e6e8a3cb71f3e2858d39700d881ea964abe78ab7a5581c98069621d859ac2c0c31b0b1a0e46261617af615662e5857f8605b41bc5c9d39695a5aa81c342c2b88166fcdf5a7ca55903acb63d543bae390a62a489139b85cc9ad5237990aa2fc54cad261d48b120d15c4f06cbb6417738a3dd66cc534494d41d8ffcf665be95210632c5dc846c63c3529887b1e4b648c9a51e05f73d7d5b11405a94385b2bce94dea734241c8cab923fca6b27c651614c4513fedb0827bb79f2079fa0ea4a6634bee77eb0982a76a4b71ffa63cb64e90c3a8d0bb98733aea9e13e419b36c1d6dbb892f643caf0952c6d795cae56582d0f59a5cba453cea0f4c9062a5e4482599eacc5d825c39b74329cbd1650a5a82d4eb61e7e5ecf260fd4a10a4d74f3a6c88ad1c94209f47f9f4d76a12a4743bef31669204a1ebe2e68f2545c6d291207e44769e8c27244839d61c67aee38f20c8e7e67584e758737204d942cd9c5f708fe7e31a415ee938dc6eb18f9f564690c348c686457f1164794f99ce635104a92b87d5fffe339f6222ce39644a6f7744102fcc875b1dfced3a7908727dccb267f71a82a8ba96a33b8de9e96421489557f72ac5f6f4ad842079e8e0962ea5cb6f7d1064ed38d2cbefc35afa04418a2ea51de7bcde1563200821ff592ae51f10e4f03ddd7354969207e11f489db2cae5303bd4d4e40782a6eb8f1d576ecaf23e9037f87d14d236beb8ce07625feed9e8f248b6b27b20c54886edb83de24ca30762ccca6a39fa8e3c10a65257b6349bc64f3c10ffa2b36a9aaac5bbee40ce8d11d9de1acec36c07f25b75d8ab1f06c9cfea40cae31e6f5a1389ce163a90533c585cf4d82d48360772ff678bcdc93e86cfc981b87de27f6b1f45a58a03e94e6cedb3897e18151c88d777214bedbae393df40fa38bacfe943e78a51730321d367e32673cc21b36d20977d18e2f2c26264ce067216d117abbbac81f89d73f460dc72b8b15203b92e6a167d6bd3408cb9b2ee2bab5135071a08f1ba6a6d9d3a03493fca19b57e350321ad5c377fd2ca40084f6779df61e5613210d5e32e773b06c2bbbe46d9560cc454b5f15dbde56aa33010b2bc3dfda654d73a1888fb31def9ed7366bebe400e5c2b8769119de3e805924cac99de07f924e5dd76a1ad0bda13960ba4b8a0a6795919cbc36c817c29fdfe67ef56d0b7021bc36a61b340f0282e9b8289eb07d262811c6c5747cb4bef1548939d3aae96c5d8222bbbc05a819cfa163eacd6858e355520d68ecf874ac9e360cc222c15eee0ecaa9377501e650b3b0542ba79e4991f9602f163cd4a267b7feee144d828a4eaf2e18ce5566058582890a3fb3ec74a693da7f009c4f3ce7dea1f75f68d13483267d93353a121816d02d9ae2cb8e69537846502316ce7588776a839c225103673fe2c779bbe9413c22a81e4513ccdf1d96aedc14d02f9cda3ece0818f0442ab7fecef98b21b3d47204ccf55ba9d5d7f8731023954304f97f18a40d4344f4db911819c65bef5c733047218b375f0d9fd6e85408cf962d60bae4d618340fed8bf3b34a7cdbb3c10dc8e727cda8e343e8c7f409d87fdb17785c5d307c40fc635e3560785ed01397d9f47d2f51edf639107e438f45c5f8fa81cabc56e774034cf417a1499a1b1ce820ccca8401d617540d2ec1ee7f1674ef8ca84cd0129f2523d87a91ae62f382047617e5124d7ac3c8e1b902ac70e3ff6a6a81c6a5b010c5b818d24ac0dc8398ecce67f337dd4071bb60624cda6aa69e79386a50139ad45cf816f6ca8f6f60b3a0b82af6c47f19b3d520c2a0be2b87aee5893674f7c5d7021c3060c17fc0960185e818c1abf00aa5714fc096ad4a0312306043416a5eddec9ec510c9bc30a0ba2caa6aea6acbc8218bef369c5e97005297fe09a7372bb4c7db782e431cfa87f20b262c9168d1916eb61ba0ab28793de9f773e53265505f12fc7b1cc6cf8a2a0a920bb76cc6dfa1d74ac3e2a485def1eee9ce614844c399cdabf6de930474d8131d05210262be634f97ae2d1871464a9889277ebcc1c928d82182dd9ba48e6d0828aa26dd130f1b09ad65039aca09bf4748bb1755695020d0531ae7fccb763ce1c5afe0e78f1a20bff18305c50c367c8505098ccf22bfdfdfe0942ee77cc9f5799390e66096afc045ebc78f1a206175cbc78a19e20fbdbd4c697ff280599ceb513849d0c8f8e6efc8c1b36fe062788bfd5415c669e61e8260afae1a6c263f7368c0c186820504d90731833b9b29da68166821863dcb0521ec79f4f4c10eae3dc1e54b77a18e44b1046e59245bc9620c9ade6388efd709e6a25889fc3317df50dcb9ea404a9bbc3595a478f273e9320e55ca71f3b0c1f84c749821cb236c56edbd56d2512844b9aa3724c6b58e59020687f77b0a8f0b5f1f30862745dbf9a9fab44ea08a27d0c1ebf83b509cf34821cfe8506cd3fb10f9411e4d43977756cd73399590429c71532c7749e76972b82501f757c227a196be94490c2b35ecb7648eb288a0842750e538a49fb5d3d3c04298b6b476932c7388f3304513e2ce6d4f37c345b218e32cc7c9810e4afccccebf40c82983f4a1a45837cec9e110471e2a7236fd98b510904d972d27c6a9dd403990141148fb306f3c833afb87f207ceaf4ae7eb0a163f503e13a8c9a370c8ccaa8e4eec54269341889440261401406e1f8f4009313080018282a8f4562a1682c51246d7d148003642a1a38362c181c1c1612161009c8a1502010068643a14020100a854541905840ac4331b21f5262cdf0a63723de3f3310997c9ad8e10a260cd58c605b1f2dded871fa476ef97ba2dc9c8ff8d143e4c5800b377d4a76d0ad6ae575726a7a124e3ff00ce583b3ae4c18c3cf3dc99bdcc80e804cdf9308c724edd24b1a127cf1c8475e3ed74760ee9052bf2c3440a357a77177b2ea6ab2add0797f2c5a6399a11d12165e5d43554c264d443c90aaf4bca70a0061f1c39c18aeb9468100ea969ac025cff7958745f8d78e548caf6d45368211b167e54a2a475add6d33937a3681c94c896fb2c73ce2da28b0d4dd8c3176962d667a6902fd69db3ff37686f6ab8d68c34092d571eff4223887e01319daa81f3f810189d60df1f2cae609e399976539b61a0a1ff3cdb18fbcbc2457156b963a5e0e765f8c349897072ef9e749779b9c5d5e833e278cb96939691cef9a72db16a9a176386d995cab6332e528b654c06baa2d0b6e94454d61496e83524d51583c9eb7f962282c32bbda7f4661f1b844a99658cc71ae2ddf93467a8f76124803a78d241f811cadc04c525e6d91c81bb5c268276e2072711b239e8f3cfadcfe5f95647ef6b965197f837df1b9a5acab8bf2c886d608eb5bf4260cc14ffb1fcc462b5b1464020f1b3c56d323973e36995c7e1566939212a0a7d69d418b761901e5c48908e98c24c163c5d93bf0729d411dbb43ddba3d796c5cb598416df21cda2cecac744e8746d01159a04a37cb0ed96bb25ae5e4750f105e01d5dcbe8338ec36a4eeb470379212f58c42954d1a608bf714fdd03b80a87a546b13b47d6967e449393f67d657fb651d80476b946c6f8eef11ead6dac598a09dfc226886d0ba0e1be229bff52188bc77edcb0ec944a3aac1c9c97c6efcae9759a3765e3812d71b9d1bc814a9fd0c35e4258589502a0540461c552205d03e9c469acb49c72588aa84acb294e60436a4cc03ba90894f0a3cbccdd551cd45f797ee5748008c7701e861399a509f04f37f2e9413b547735a22a33b1884c2a2958a358a8c1b6a56dd304cb8f3597d01ec8c6db57833be9dfe02cd64385e8dc12ca3386912540b4b876e441fa4dd4eab5d87d23bb07316f981fc42eea7a160b411b6ceb5861d59c5c586a41f58c1e6548399b4b6fa793ad2a9c24555fcf54f3bfc1ae624739397286464b63307e4364ce7d6b979eaff49a605efb6ed8e896e1640881e70bacb7fee271f0e5fa7c929198caf27fc64f170306b2e7cb36ccfb82996ca412d1825ab6c302d05c0c8c900239c8cca02d8b0e929f0efcab88d97df2b5625dd004d6a0754fd95f69779ec506ee210bedd9266f2cc201c50dffd978938b274412f75bf63ed30cee7b60373f59938e5544311de5b4e1fbcbc495c976d9692edabb48eb22d753f5a63fd524201efdd584801b04e0da182e64612e64489151e0ee4117644129486cf8a5006f8e4fafe64256691e46471c42a523274f04821cec0bcc238851a983f9fcc98278085daa18029db2a1766a05ba069a829b809e9833214112988c83d282a50ba88d2eb14f063fff7c807517dfe96b55bbf50595f14f0a214dece9951cf7c9602c777001a77124a2594f04401df665ed67e47f5b5d87cc3b6501b44f5454ababdec062af84031f1aba9517e425180d20bd5ce0c34ee172aa3514049b0bc1d740035c5179431a866a04445912d06d42f040aa2a688170e44e1a90511cd0eb5138a235427548b41e9300ba512aaf2a09e5dd98afc6212f6ecc6344a8e81052fc3cb8ab9501fa1f80bd5c7d17eb3e20d8aef44f5c5a6d7ddc5a1e80205cc8d6d6bf7000a183d5782eb0baaef24394f7474148a49310109d8a3d203e11f58aae6b69eef942147c0177a04aa76513a52a28cd2b41470e564742cb13955a3bfd36325a7f6c9236abd6ff05abae9c30973e7d263ebdf2639834c87784162298f8169763ae8cb617149b63485075454fae3684dc6a23eabe015a431ac4fe27bee12bd12169fc7191f5b58e3ab36165009c0203af502805ff41ab99a7c6d91c02c778915678da602eb84b940aa695fe8cbe92b6e3b8dd2f91894301757e5b10ce42a90182f63678e11f3e231efced0ee507969734e6ab8c9c84d5102bf326a88cbf5e04e39f766880e67895a07c30089c24177f3776f90a1abc5304149300a67bc423720019b1af54a5a2aab4946a58d01c9a1f23bee9d1c039e0a8b6c3cb4c6d63fd3a802ac970335fc80a11aff1c34900612b2aab991e339907ab81099177c03092930799d1f4890b5e701c401906b1d60b33c21576a75a4423e2c4564052f7751a1eb629b05ef78b1701a69c04cf108b9797bccc49464a7080a1144360966cc0d7e02869916662e2eaaebcbef86e9a351fa8ec6527c69178987ae8512c85b9de57f21ad0b4359f8720cdb148173290700d870fce814fdcc010f72a8b991bdbaa83e9024043910381f4be9182a5cef9947ac4ee7b2c660a8f7ee55f6bb243c807126e2282b0ba7054f0fcc3e5efcbf009ae6f084444ceebfe9db683f387603aa7e5ec1162301922ad9b463728b5226df00a102cf519efd89373aa695f9078a8ab12ce472fd359f5fcbcecfee5b051dd746d7d8f52e39f080dbca8cdd90bae4273c8e1dc3c3d0a2145fc2791ad2753670c298cf02cc894a8c60933627658eb2420ee50b8ddd3285ce435893adc72a0f0d6bc7cc3cdeafd0dce7514c2d2966c13a3e1cec5f2f3f5aa879632e40caaeb86dec068e5dc586fc181b0d8caffa9b6610a54f59c17d2887affd118af9419a45ceda1ce2bb05ff623254996504ff0a8d3ddfd8053b9ae13bf27c60882520a8ad3586c06c23e604a6ff68df8b96631ec89c74100f02d801d214d4d801301b9f6a3c46e052ed5506a97ce4b47eb40a72816203a39db111b8f2b70e70eb2f809e83a803b0c819bb6af0b197e005ffb1c4adde69d5f45c0f3b5e291e0110b0032dabcf59b45bb165ea39d1b282f9978a7cf12d032d5799bc4afae5da4d831686149bf2f07aed5073bab2a6fdb519e02a651abce5c03669d21da93d695c2601ab96659e5d4b12e780e6586881d87743ea825b7d5be7fda80cb8e876cd99e2f0ce40f0879767466cdc93482240cf398cade1f0dd6649f61f21606ff354963c062fcf9859be1fafa68d3e3595d325957deb494798c06c8b44809f103dd0eaa43999f26e64e0a229cbeecb1dcbc496232d06a6a1195190e04357a60c45613300360520f10b61a7effec607c9e10ee35b7c415cd61eab84ed8b85c1560cebe06d1696aace8442ad1b72606c4834fb6a6c93c6ef6b9c444d5b32e92378654e38eca5282bb6e71914ad5098354c114c7e18e127082b06f6609aaf06f1cf1d1aaef3f40fc1a56606b18ce1fbbeb06c41840e8109dfc2b54e16a52d68ad3a568167f9b6a73b1160175611533130c269e6d2bfd4b4104595ecd0ce1b21553a327dc5a1f3b3ac9a8162b9db86ab3916a1aaaba2cd6aac4be16d58d609c8f4f64b88509892c408345052828d6ace9e7bd3bb11b4c7ab2ef0fb07c06c292274a045ec2b2ba9e27a84578f0e9c5784b0e859c72fc30e5c0ed6e164aa6b09e1bb6ba35bfabbbd54323e6d955052644e436b5a74aee17629184e9c369916163dd3712ae653436c06f3515b3474e979021cc82bd3f03536847d9181c9d9c6aa0ea2b137925c0f61fa354f363c1054e61944385267552b75fa15bb16a8160e880afcbae10e65ba82945581d96abb3b112add4142c3e2304722858b0082462b0d86780bd55fb2d4f6aee696699ad9e04499179ce8e60285c33ef2613c2a4ab7c0d41d2d962b228420b839c67932fd67e37e7f89ab2c13ef3b5fa9cb63a68af78614e75862320d2a8d57510a58c80c892e9734534378c9460f7444210546f9ac9d1403d38e53b6a9e292d9919e783f280925cc299efaa47fd42f99f26b935ba1b905964a950279d732be1485d953ea0757bfdbe8a60bce1b1e3ef447c3ed516908df53eb1b267e27df94f097d6bb713ec421ac986df8144bd6099b904f5537223cadf634a18c560ebb11746a77110ea68eea7bf6d58f8dfeaa4ffc1b00f4eaa4933ef296f48378a2584b03284a17f76a665254624acec8396a90c282716c0737ab1278ac53e106294481c42b178af9646138e123fb76c2615d1485dca856e74bea40cbb88b87e26f2774c5389cf00c634a4cfdd77e55b8c2369fc6a64239447266fb6dffa98f3321c676108eb0c86baaba8ce9b47538b007762dbb151326628dd28e88cdaac5ee04ee1b4a16a524f3fe94671bfbebe117cb9ba634956e6f77385b4cbfa58ddd58c88d6904e18f89adf5b4155118432adb650ba8fd64b3b2e35f54b0ed6918a43566060db95f685967665e394a5bf3df19ac613776480d422c46f6a9322ff302a340e5a71c62614d33c145d701a505fe1daab9b2b47f14fda913030703d412dfddadfb60708023cfb21fc842bfed9d3d23c54b4ab13802900b49aca4d3d92103a7c3a33255b2cca19d20f17360c950bea3c2080da59bbf45798973d7e8089fbd108f72a10403fb64ab6250963a63beccbf04975df73a6fd3afbb7802a67c3649fcb20911b0427fa8c32b894f578fbb9168b9b0a258a551fa40d5683cbd5b2e74658ccaa412bcaaac396e474015bc70a52fe147da0835f301a5881e0155a56ee7fb9624cf4c629fd63f0856afb350a2c27e31a36d81b0ead13881da118b0a5015c256a6cae02498a6b07e1a0b4d2b81fc39f7a1d8ca8b42361c8a82cba2fe2404a108c4e05eb2e6317e951f52fa8387341ef261cc39326fed9ac106669b105a0523959aa531d7070c7ddd76e7027e015d82f00ddd5615df675b380382116f0215eabc4591b944f80d03d4d5724912437e8aa3ce028899368d93b22217112aa63fa8113f11f62b377d2015d520fbc7642b345100d26e49491ede933de961f1a344314f16cbb4e386fb746eb2c535a1671ec6cbea15578518544ade31ab1bf6d8d7f384d6d83cd5a158cf5d7c945e6ebb3d2e6aac2a1bf454603f45ecd9a816edd5c6d787afb2524fad0c6af08a1585d8a89bf1f29b5bd686ce6b342eba52c2f9721c63312c2612214db92d8260e9c79a82d2d43f355dbc86157550305b2a02a8eccdcb12c3d5cb670bbe809e5a4dcb67c3e9b8b4cae23ec704ad958893525cb7398b12834c5d2a21ab00817253cdc605cfb1bac4e5b6a8da66a521209f860f30aa560a81c20b2ef68ddf5e63cc41e0c1c662065425e1642011af8b05d38e16138171e8fac96ed58f6df2019166836d68b52047c0a4c8a68b911191184df3f04ae87c0436ab1b58ca018ac85d94a878f40c2fb13c17258c05ea47717e2577f028c7fa872230e80361d61d3e33587863073985a6daf17c5eb6d72a3b0e5bc65b45e94de1686ae42288177f4fe6f2f06707d3c1e0d525cf836053bde01642787df312e39ba6d397f556b8b073dce0622716d1ba6d466cf03215a8e2c4a6259114d1f9a64da2b40d8bb3dd226b7c6a8b6a2cc98cba48c27a67425b26a81f53b9143a4a90293d3cb2fb292bae7e88e558cc6dc88073ae900d3288a5d5030dcc697216fb9254adad1f9909cd284b7d9c3bd5ea24045e63757351adec8124f024f3b854a8aed98cb3899267bbf481c39971b8a82042d2b2b8ee40fafab4d98cbf318f390823b3b3708dd2617ee0681b006dcbe7c494bd54459b1afdd1678dbe2c0e947bb01bff7c2da4a35318343ade01f9975bfa293f76a036a3c99181c8d3e7e56e3dc67734bc08bdf03fc4c282c841140e95ba4c346d85e2f6e46c89186d4ad04aee15869c7bac3e263fd2fa4918121bffafa0dbf133cb8f177095466a1a2ac403ce118d708e993816c17d415eea17948a1e0913498edc7ba0f64695df896e19a8f1f4d624b583dca5f4180c1da3c6749d8f54cbbc1a7be0ef2644293f4e7879d2552bbf683c1368eea7a1ebe3664adaecd7e49df51000043ff3a5564a5e0dcd0d6290c915aca0917fad2d67883ad528628a950a5ecb28f5aaa08151a76f722b7bca29f7a5ca4ac729febebd94e4f6deb9550fe1e0b025d30801b64e456c775ca974c2ab0091f5ccaed7abb94c0cb9bc65141b16fd0f10e5d0a05550e4013437775e6079e77dbfd787cadbb351f8a0c20f2b3e4648f3ccb920e15b3fe964aba52b9e907ad6b191c839af38af12446eeede4ad7f3a5c3a0926c70fa91e249e07055c4b69244eaa8f8f452d253375599647d85d36e84862c714940ec2483dbb16a6b3ddd00c763e766d5cc6166e4b2b91ff796ea37d5635fc3fdae6aa963c0d84d63e9bd88e935dc86e5e7eaa2df6fbe6ccd6c7cb3be168720c938680e9de0ea512d1040883042b720ca37891ef5cbc31af93809d8a18776cda5fa8c0651fb66b388d544f3ca6aeb174225bc291b38e8a29af64824b4e15d2229c013760998674b84b5c3247a4038ed9e61d62fdd539429cb08b043a2d58991cc42afddef149dadf0a24226964441c82f585b151a2d95df32aabc971e5013de182ddcf758145903b244c4c2c40d8b83462c894be29661ff2fedb5ad66cc529f012ed6af18dde59229a5fed969b385e8a50820a0d841744c4d6d5f7bc674f23fb67be9cd03c4e215d945bad1a5e1fdad9e5f54a7966c9dcabf78fae93bea2a45b617215d11dd803364533e482be52a649fd41852cbd8f845490651ea46c770f7fa0aef8a90f2724490562c982bf036e3bda68ece0982e9494ceae36abdb0b0a22c4abe8d323576630e76219a744a895b2c4bc3630aaa01f62b9edb49607da1c1fb2b50b70b9190860064340a2ab35bdde1ee7b37c6e91af29b256c8893a0e1862d77a8d64c7b00afc51c20bf137cbef25611b53e5cfa6fa739268f9e5c90cf2a51bcd95801a7bd3f680d3d81f56f94f9c782c4f9662b7d5459086eaa66b9bd5c482d43ef6ba4323418b918fab9b300e92489faa42cbe01068a866dff75f0b0c0252de7b269f2ca690274cf282b0efc771af04f863d12af8c46e51285a63f195512dae3c2c814cc45cca8eaa2245d83fae0a0922583e53b23174d5736d599c79c8ba835adaf0b684f2180c9ffac5fa63a911831820da3720c5da008cef904b846733600cc62b74639cde7d128cd8da889903cf7defce80c1df97332b902795f4917539e14474908b7e58fdbbe6a0c7b0de7a3d5206728a13310d88f850ecc281c7b3ffb16a3b165367dc4790e66fd43ce2a148a0fd3122cdc9f892dba4ea94660dc2752db5ceb42150ec613a4fb78a86a6cf56025ed759f966f05eaf0a01233fb27724d3d57518cf033bfcb38d156bd964713a7ef03febe3939cdd1773c3e86761853c0ec376c347b83800dd0a3e3ea90273a6267bbc316a41409f1422f15fb9fd71f693c780446430d8c242b28ec81acc3c7850b91a6a41dffdd0d81151abf070f3bcef934502f62fdd6460e08c413a608e18fdd508822fed6145891acbfb5696e5a2b18193f2f420b60d226e918450d291ed2684eeb25a3f5dde61f6d8b5ccf2ef6d1d2268f68c8a8cb29c1be0a0d2fd380bc723d4b1870e52cbc931183a265bf45d99b70a27794222183d06e3a2f3d62ab85ad3d702dff87e320f57553ff5657ef8e5b6a8d04fcf7bebdd62e4a7a47047557291e15b8b009361c6bf10498cfe27b3513d9e5e22da20ca7e18366b8f898c1d586e4f4e13b7f8d573696d0b5b85e305a6df3ee57da03c279164866eb8db2d6811aa294b65411ff33d31e427aa38c023d7d00a54f689be828489f6da5355a1712c458339eabc01769700e16152081624552081b4543096fb8747490687e6d83777853389130d3474ea588e245503fe650c187c5f86f7faa2377be1cc0dbe48481e2e5edaec8eb1d0854a5c2f006c98b8a9f6c0afe942f98eb2dcea3330c1c38f261e836d5385b67f9a6fc4c47cc4102ec0e892f176d9bde915aa4538e81f73f4fa150f0dcb3639a0ea2242edd98ba8b936bca471568e9b8946b93915c2108d9fd8da4466b280fa0aae23ce5aac2194680a6ae8997333d94653e56645363edddf4cbd543f20b73bfe1b95ec72cdf985d76d00010e7fabd0cf30e64dca7f25eb5701d84ef4bcf36d2a490d4fb08f4db205d09868173168f386613e108a700c280e1ab93b4d240417c000850209cce4960232374dc8da5f58651550ed8a4e2369b43104bbb3912198cda11bf682a30edd183e309f67cc407dd2581c779d841b1768b25c572b3ae58bed6c5281eb995f0a849047bc75c4f804600ecfaee31bd6fbfed05cd4e2036896e673b5b78a4567b3d74451c58c898c949315b3acb6bfd86cb372827fc4e09f005b87499f24b1fee471661d7ff418d455f93f0a76ac9ea987dcd20204a04b50315fb71a83a50d704105370042c8f2e1b8e26c310077e4d5302a36a7c6b4aecaa927277dce95168a0ef9e377d7ec472fac2781aebf06b6380cb8af89b77320f1d124fe162bacb5f91702ce13521ed259a6eba16966313da98b2dc04e9678f84512156498d46486760bf7a7cf752cf76a35b389f09f19eef0618ba76d58958f145b01c1517b69238f867b75c24832fd8c19eff20652831dd14f5b82f097e4f158d2b2000476dae052105057babfbc0f7bc34303771aca726e746c9a766625be74385a461139309420439930127c137e512127fa9a4f6c6775a2cca199735fb0602ce5ad2aa82f5a019676ceda6349ba42d737596bdca55820b1cafc904edaed6266d543574355a00466a17e7fca66b29f0b93b9ccaaa5f4f9fb16c8924411311dcd7b46284f0e68c6c9c191276d9b246be4e7eace896d5a738caa885682f40ca1b6e7dce88bfc8dc7b762da5d985e652bcdf6cb56dba69183e7865f07bd5b36ddeb3c91e83c419e72d5a0b86df4c88c20d99a55bcc6c7487f18bdda9ed00ab642506b72283145ac566d4c2f21ff918aa70295cffe5d53a3b06aecbae5ae0d68c890866c8632258c5b07c55c89a8bc0682e55cd315cae08e121b1d9c16baea01ba43d88b69e86ef30f6ab2c190faaa49839d4a58660ce3f33e1dd2c0093f86673ead8911ed97f176570bb04e67853444975bd44f2aa2f653b56fae856e5f21a069c0c78d45f382208dc6f1a86ca186377d668bd3ae7204532efa3193002c253b7af7deae334c84d2c7855ff79ccea1eebf65e6824d074d4294c2298b3271c0c37c3329fd45c412b682009e2c569cac697e4d0419475bab8ff662cc1103ea499ff818d2b983bc0ff9b52aba183d4a3eae83f477dcfefcb3bd72a5343e580028ab82dd3ff108e9685679c66f90579ed42feb10a56b52cefb71d289589b7b8f5ea530716e3519d0f9b196c1de8a05405b94f637a703582de62dd2b327fe55c0beb9ad5e37e92596c84af7bbe7bd3d711502b637f3b6a1477addf3c145024d1727a41da02ec517e271ca5574d9692f435a57e15d981672eff9c2d009ab4ab0978635ad9c7626079eb29a76c1eb20d93660037c901b6fa08fa3535bc9f892ce05ac5ae21d406d1c4638b26048df0a63e05d74ae858a85d99c00cb6786abfe52dcd4ed6dea6e770293277135f8de7a5382f6f3b904cfd101a785bf83c5b5ba4abcab20b8267813b080d828021ff0f06b2bcbdde32017ee68dd8dd043e8aa4db525164634c2ed324d0269050e6aad9d00f3a71728681415fa098a68906591d158f6772f80f64874b3705929c1c2008121f61c351485b26d9bc409ae4bb812d5777ac6b90ca894348a0e2694ee34c8802bbbabac2b2f00dfb527d7b8931ca7044a3216c8e4ed5c1b65995fa9a24e4efeb9deb78311049b79ba2cdd0fa83502e9571483038dd2c10a93104b16ce9729295dac14ca520a7505d724cd27dfd849ab4074aa773f705691b61664b5c9c084c9237e35d8c89765827cc94cd99634891de3806f9625ae7764fafa0605302fc8fba612cca15e81156851a22be2bc457c5776261426eacf84277b18a7307a22ddd8769ff1bfb6a7f25c614f9c803baf0b0dbcb4010107f426ace6e17ecd21b5d85930f6129dc4690a430e4210a2a41dfa979123f76d63c0244d73de9f3359c770935d78e9421a6c909948bd21d9b3501560ec11af483b809a96d2be7578d97722e8b77eac853862e92b3f8cd80da1c5805f9a9384f6f191dbd56ba86dea5923897790b68ac30ad9244035e35d3183e2d29ea2ac292eb3b087f122e700806a3bf94ac27d53de3e95a2bb6a887e3ce4348023322a6d59a58c45fbd361febd5da964ded771c5ae6632f1930e836359784e94044162d1251bff676c2db72530dc7a69a596db041ab5f5921ed1b1555829ee8a6b5cb6ad500adbeac81937a50bdef770085a405c7a41b67d76acd3efb0213ccea573c79773a5ddc2fe9ae4296dccc38425bb0ce17bc51f36b5e0daae2a95e240b935fa1efd0cda4e97b521ef1078848b5db49eba7eba79368a388eb367d6a1f7bc931dbb98637c5faa9dab71ae2ca767944b6a0e9e80a999460fa03e59e1360fde99bd48d80a9f1c17b1e76b9ab335cf5cc2a2e5e09a0950108ffbd826ba7035b44d273b78428fb680d8474ac5964de46c0461646d918bbc2fb5dc67a5eb0dbb088d117727875b9adcb20ad09153838721ce9a18952ef306876d08ca68946a7ed05248d46fefaf10d6c14146d2f05a66d94db5655b117ef488d4b99ed407017cbba8ee3e140ac7be8ec26120c6302f4b05246b7a01e57b0e01c0b1bb4d7ef7582ab7d0557cf3a52d06d19d4add2a5d0d24797779f75234cf3c56067b673445ea92cd7705eccc5c60c46a5c49dcde8169c1caa69d165541129bcc72e04947d702cc2a7ddc17ce860f05db5df004c546d1321f1ee5fb400cd587cd6df3091b82ba0170d02b24f82ba5d7295608f2809b1fc1b2c3b431bb1f0d84f42db24e3053d3b5a57383b048b4826ee240a4a9a1280cf0a21bca3d8de70d96cba90c114dfbd099d3aa04b4a07831e8cd90452f82a5329a78f65c578450ea294c1369d3c7fe642644a022ab204f0c6de410aaa35c80b9576e461b408825261c3f7c2ce42243f8db207f36d31371acc10be173720c219e659d93256f8051d57ac2c8ee30a0f865f3e14e4fe29b34e479100889586d0841351ec01bffffdba1a972199f83608ea9e0da417e4c20642d113340aeb4fdc7c9aaa3f0424e073b507a8510dca47764d0c6cd98ef4a0bc8a62ce1acd05290dc3fd241c5940be5920b40c1bd349a7703bea42a54832806976a24253453fcc743f4e02ce44054d7a04e0f7ee6adec70e80efed4af6db789026b383aa908ac2ac3b489a71b0a2d364e1858467da554a554c0ddfe0d05903d54ac54c9baba84ceb99c6b4137415293b67217859068f572adb188f45195ee5b948490d8e79c4d4e4ac6c9b2a27c791fed9c843f4817a5822e74b947378291899555bb3586a8382d402880d6d083d947b315accccb6d2cfd0784f31717b47fd16002fcd4c2522f11177edb110046dec69da7069acf6b160c6729fa40b9728c0a3246b8bc1f1e62a5606bd84084520386ce9aae510b44ab7a08359265431dc0dcc2b88420159d8a6d8580a3d3450a06387accda4c58abb84deddcc7c43e2aaa2ed94ccb7844818cc5982e634792a30bcb99d82bf910f16d48b4406291c71f3d00b248d86a51289f0b91ce1d331690554bf0c5a14379875bbf9cd2b66086f11943ab15cfe7fae9ab78146e0deb14a1c76fe143f66322f439994611d333efd5013a587437f27a8c935bfbf4c8effb935064f4e222f810c7dc3b2d955e024a733c80a3ac0357e52270e0b847b23c3aae8dc46c7df8f3a57ecde1cb1c6fc3057ec174e4bd1b1bb9145237d46be46068dca199166a339e54037bb8946f86834671fac67bc384af74973fb10b27608695d18cdc58890d1f23192a2a3cd25198909ce460c8cca31d2bf23bd91e6ee7cde052324a1e3a4dd37e6bdbbe7d14e568b7ad83a088ac29af5c6a4d239e0f6b5a3c5b295f530a808888f9359e233c69946dd062aa02fb909af311d3711a2c422a16ce7eeb63e6bc0762e991cf375815d2e617ffce1d02713193782b87bdb6045e504c911005bad10623fa0f03ff3446a27c248ed9bac921e8b41eccbc5a63c6689a9685205824775fe5ac0cf322050049a3c557ddaa176f9720ed3c0020b52d13789141e6b58fa5a793568a544a719aaa6e9ca24f54ed16877b96d51e3b8c5f202840fe128f174dcea3850ed4bdaa82522e6c03c338e6a8e514d321059f1de7f8f896ec9a6d2026405294f295ff483bb36d040bf5aadf13ec6481e0abcabdb5a633c494a929824a426c9a77ba4d87025e190442689fa2489baf7821c7a91a412924faa8dd64fe1844e21098bc43489aa29893232fd4ca89464fa135589ce667f3351c1987aad9c58085b9161861e993cd6c063e9300ede0bf2c0fe1e4be6990a118f47ee3d6e86771214480fa8f9a865080690eaf0b1045cb4a700c0a3ba7bbc8368aa41bbf4518f1065814c52abb05fc6a3af63439282a8eea1ccc79295a800fa523a655c081f849c247e87bb2f7dbccffa7f575f8f6a1ef2fc7112e790043cbee27df8213be684c3b00402dbb7d8da2381a5d53ee076733012281c4a97a8733cf58ace668cecd528715f03cd2ce3d01b7bac3c28015dc63c461de293021462919808fb5e5a8e837ccc4c166653881da9641a9a624fb4b099ab20a998beb607fbfb619812db4e4c1aebfce0ccee2198174e8db15caa7fc8632266257571cead09f4646460a77d61c5adc92c540a81d0f8e8575cfddce2c5aa5214dd65a471dc379d063c81e12f3cb5ec52300262879bd27459d0b91324604df655d2e725d533fe04d36c10582a00a2ab31fb6ad7fa64a31f01bd6e04871cf4d689de190822b7864b36c379b1177a98b87c99387f0fce03764950321039a43ae5e13228e93aaaf35c57ced18f42e4b7c7f33ce38dcfca2caa7f1eae0061f72686ec62c2520fc9a8d79502163d3cb25a107d91f3828b67ae1b0dcec04873891e0217ae6a073a1865a0fbd60633f84f90cb9422274135131ed8f602196c6f6b7a931873de08b65f6b000e0c18ee1b6b644356f7f01662a53997bf421808e1d71d3e0ab943d26af0e8adbec962b0b56f28903485d14dc42ed5a6c6ffeb21e86ace708763a536f3401fa7346f7983c4a0f464234abddd47bb6de8c8f89ff7264223a1d51eca5b21be2b4b2bb4b10ab7de4619075087fd0b7cafc01d8595d6220fbafe7dcb16f89abefc4e8d8243a99976fd6adef951d137588b4b7127807395cab6f407d99cde09a204a2bbd49800a96210b320ea2ed50bfdeb586d9dc7233807e584a91a3cca5e40aea916f7d33bfe4be482bc98cdad5b41205a4b4b17757024070e2ed3a073080673f3615938ff9a8de2dbdf6035aa74f74ff372ce8c34138dceeadc2db593b9e0cf9715f034abf69b0db98b951c6a89edd4df7befcd976113947321a1a833aa021b910cc4488b45a530e763690ee3e3c722c98195c15d29e2fc7a69866bdf8690ef218baa3313afa8f38a2d6643606f70f67f95cdd09c231970a423af0a827f918dd26f05ec89bf85807afff43d36cd2ddcb50d23ca0683cb13c6267306ea932a09341ad3bad07a03043d262e6c5b4057b24b9d7830ba8fce62841a0b342fc15df962630bc5916c313ad2225b66d94217f3957c1202dc76029a686b9140406a49d2010cc35b92c3e4cc5f2831c311a3244946fed1678e906d8b6d0bcddae24e524aae2c746a532cfad8b6d61a4929c994528a0ca339ece731ca57001c5cb508b209c508ba74ef91025a0efbb2302e46e9e6c928a0b50b1b5d96f5cc991c0a68a9cd4fbc8e29afdf13d0ea72cb35bca4ae069d80163f3f7e79bc16bebc2620336a9756e594d2312460f8f861c61526209367b9936e372d01dda652dc26d395807695d3e661d34595dae4475792807f9c86cf519c48389f522f36e65af108debd2c7b5a0a15235cb2514b8cbb18f398089522fc3adbaf8bf972f460422264f2b5b832bc9a8cca102a66644508987b520982ead045a99481590182e900a9907195312a3fe0466c3f569eda96e846450cb41ef77719e3c79c9f052b6160c50719834a0f901e1ec7c4949acc51dda94067e961937cff1b156857b959d2be97e139ab4f81bc0fb32fb6459962adb37251782ca552a03455e69906d517d7498134ddea7472f9f628d0f6a229f9625c50716951a03faafaf753d9ae321d0a84a7545bb96ae5d3751a142817aff6339abd7dd2e94fa03c543b5b5d7275e2d39e40cb9e84cb729e359dcaee0452c9bedebcbbf64acbb139813c1777a554636e02e127cd658deab75e889a705ecece5f2650f7e26795c9f3e6e48d0984a66fe973a63de94b20758ce1b474b7b204624dfe5763b62b81ceff17a5cbafe5953d9b12681def1eb5383d63423509a4d6cc9461958e3ac3295cf8f720f92d548b9604c28377c76e96b32fa938889e032debf42f5f2ea92d533482e848a094cd9899aefa57e3d27134249051a8cc9a8fcfafeea48239f423d0c8a01d81cc9c19df74d25934ad256b3f7e8b11f448c1f257810a4e70021d3a48704500ead08d40aaf84f29fe722eab4f3302ed629dc9bcde5952dcbb08b4b79cf50ad3514a4d9b229071d4ebe59899eaa8d589785d7654365c0a11e897c9658eff19eae151441f02ed1ebe19f4459d21d0fd9b93fa0fab39afbc1068a5736c993295767b7b342190e2395f926527cc55853c4c7e78913d08b4d22f3ee7c5933a7fa764ad065dac36420b02d9ee32e6ace7fa949457882d075abf77e9984e9ed80065dd55a105163dba5848850e045a35a627fddc5ba2eec2d471a04ec55465cfb8accc85c2830b1f2836d8323420d0c29e6749c3cb3cb77a39fa0f287d2e6631b11bce554b0d1a0eb4fbebecd4336642bc40b41f10ef62b72ceb231b5eb4e3e83ea0e551395d4abafcfd2f1ccd07c469d9ac6e643b260df71ed0dfeeda54bd98cd43eb61397bbd8655a9eb3ca0a4ded40a1d3a52dc87f7d04e341e10275faa6fd9639694977d0794faabec524ac667695f3ba0560bcfa694163ddb00a8d16fa05d4be17952bea494561d50ab45f9984597850e282dab946aa512a252c79e03324b76af1c102b7e4a3fbbf447a947710399c58ce953c5b44e4ce28054fa253c7fd272f25bbc48263e5016ee131a0e08d9f8e93dcbc51c4e0a0ffd06c4adfbbaecb9dd801217e7f37552a564536d40a8165bdbd565c1b566b1d98096e95ab3966783aed2dda1db40de96dce8d9b296944cea35a07d46bbb75ec5ff9b756835203eb876f1946f1ad0693ebb50bd613e76de8d06a4a9b7e76a5331b2a1cf806e2df5890af9ece96534341be87c59d494e3f22eda0c288f65ea51d6d9abcb80167cb3962f0a13cfab4459e98426033a66c1fdb38f66e95c57f41a6859eaf3d9904d1289e931203466bdcd0e2d06a472598cf9e3b8181d5a0db468caa5dcf3d3daf08601a5fbad656cdba439f534d0e2aed8d652e4371a0c88174e6794370fcdb1fc02d2a326372dac7431b8700eed05f4cecd67b1ccc37f327501299ecd365e8dca69596ea3d140cbecb1353417d07278bc53392e4dbdcda3b780d49fb33ceaa246b51690b9b5a49235c989939ca0d820087d06ea433bb7b9eac5230b608cce023a3bebfcadeb377edaf0f05d4263016d1fcb67764c4bbb99be023a788cc2f37f9edfd05640c7e724a3de7771e82aa0b65da55229b29f7f2a207cb594697572c95bceddd05340a7d89826f5729c12bf1490ab3bc8067bf14b4c55363a0aa83d69f2eadcc3b48b99a1a1804ef7b0316d2a4d724b26fd84757c4b6778493d8376023ac47d6f3cb8fa13dd0474d43132bb59167754587256851658288ea29980f8d531db554acabd9625a07f7366a12a3c496dbf12103bae7734342b0926378d2debe42524a0fee4b7e94b175babfc08a80f9a55ea267d192e4640678b59af8ab78b802e9595da641411d0726e9ca770595ca53b4340ea67cd4c7751a367cd40786bad9c96574aa742406abdaf2e9f4eaf838941f85caabb74efca406cb78a76300101ad746573e39edace317706c607a0084d06daa4cc1e3378a8be7bc740a7eb9857c7a8bbc7c467f40fd0929fc62c6e5dba68290b2d06725fbe32f57e1fec556b7418e8b81dd7cfada52639b71aed03d49ebbf09b63bf52eaee017aa390cd71b9940ac46877f8975c1db734a840967ed933e39da74046b1c9f54d664c81ec52a39e317796ea65e752a0773cf5ecc64c5b8d79019302e5a9a73d4ab9aa3d1230de871729276f8e0c1e05dad5ca98c466581448ef7f99da377cdb2f8e0d0e053269ad5529d76b32d7ba068302a5e1b79356fb56f51c16341afc09747017d765cd7f51b5f704b2e5f0a6565ea8de697502293bae872d2dc7d7cf3981feeecd5cd2e54da065f1b498334b4256e7a426d0e1567dcc99c24ca063789db5ec3a67f59a624ca0649262b378aa7409a4ded4a569538b390b23173e505c4062cb96409ccc525a728dcf6bf24aa04ee7cc31f867d49f624aa0f4e7a8a3cb294f02e92f78295b2d752b5b49a07c456318d1760e740c1f5ea8c7a4fdc41309a42c59f2b22837fdba2424d059ba647a044ae798e578799a23d02eaa09ddd7aaff2ea611c8b0bb314737d9aa1323d0b14deb6eaa7f1128f59341bc84ad08945637a5665a941e63861381ceab74ea2cc62e6d1d66917c062302b95dabbd3d6dae8deb10c82c8e096ff770b24f56053604f245ddcaf3c9df60fb910217021d4be6165df60613029d3dc628f4431f0442b5bb9cf2e794879c273c070b02352bc3cb3986bd14a39db5e0ec0b1d3a8e1c88932957c96d671dea0702b159756c92dd1d5bb8bf0b132d380e5d5e55f16f7e4afb2d4c52e26040205cac93abae59aed48df90fa8df51f5e974555c91c57a38d052f601c66b845801a53d9bcb1f3f54cdeb6015903e1bfb27a2b92e9f5e08a10252ead42f067b2d8b2e9cfc85902920d63dc626cf592b385d08314c9e66b7e9cf12056456a6f96e9a339bd30705a4fcb8ebdaa5f08c90272095b6ef173e2eee3563698438012d637e7571d34d40688ea9e9e592eb4c7a938510262065bdce5ad9c60bf36256085902eaff4d4bda625f076d41234409e88e71dd74f22cd434cc859024a0eb56989c8fd2f55d0947081250e2655e5e29f9a85b2a11214740f6bba059fccf6a3e841801e5a2c7bfef4bd9bd3a20387108290252cde4b4a4666f841001f55abe5acc1d7587ca2726eee347ca09ca15c6869021a04e637c8ad76266acdad4a9d69b4ceada1f214240abdb922d576ba99f34256bd84648109049b6baac9be4a70cb47bdfa7ace915ab6a20a04f8b52db2bbd9fb41619e86c59e8e6963b63a0edcb93ccf0764a0bde7123e4076859678be6d6f9e3776b21440cc469cb2ceafbd2d7a41b414818e893b79a1daa55774d213e40a77a86e778426b6e5743480f502a5fead2fcb80f149054a0a5b6d3dfa4d536ad5081f65f4fae94e714c898bb556a0dae47b7630a64dc36adb45cf59c374cf1e1054a2ad9c2e451a043472990b2e50bf62ada9a2229d01ef74c0bedfc28d059cc5f9727a36a65962890ababc55e1dc4939a42818e39c75b75cc7c3154a040aedee0d94e63ad0b5bc9ee00f9043a3f85fc6779a368d47a021dd45fce633a8f683475e8e8d1858f921e5df82849904ea0f5e779196bc345d5292710a76ec3fefdfcb7126e02b19da327d5de2c7f4713e898faf15ff3a618ed403281f628a3bf52e5212ebc6002fd9a653fa99496d469be04726dfc3d56b89640a9a992596b2a4825d0fb59722db5baea301f104a20dee5352d37bd4c02d9c2e918441268ce1f95ca4b013207725ef654a35e8d2fdc1909b489397759e55e54094120810caae5deaddd656403f208b4eed82c3ec64562208e404b2a634c7f5ad408760c208d40bd7ce2633269fef8fa29296c803002f1ba3a26757132d6656561822ab0c802c5e487ab008c1f26ca7bf815ebc48ac781c90a78fcc989975cd1a30b1f23f8c2e487b2c20e208b40864b5aae97cdf3769b1481eed5da728949df28c39808b466a55b8ed66ddc0c23021d55bbd651ab760de4106899c7e52cf76808b4aadfcebdb8a8c95a0864f82ca8cf67995b03841028fd653a83402929aa9f3cb8ccfbb2b2012208d4bdaf0e99d75a7c47e540e9ccafcbb7b381408a7bc990ad5935b3ba01240e740b2f9dcbec0508948c2a5e6ebcca649d98fc01a5318b9dd25b120ef4db99ecab6edb245dc503881fd0adf12e8671b9613c07e903c24c9a126f315eeacf83f0a1139bd3760eb287ebcfe4b7549eb4834c00d103724eedafd672d6d174260f48edd31693bb383d767a03040f08cdf2b92639df59e5cb0d903b20cb94a76dc93699c7fea20d103b203669394b32e27aa3abde406c8aff60ab64e44f5a07f4de9c16fcb57469a5a5e9806cb5baa479cbe780141793f498647e49f30e9701440e4813a63ce6cb62d61a755410021037102a65c9ff77b1747f71408e88eed9b9a8af1fb348c0603580c061f10d9eaea4293f3e85443165df805c4d369f32cbe11480b801e9e9e6327d4eade7423908c400d206846bcee2b3f42437473d1840d800d2065a9a77abd792eb40d670142fde39995a0dc89cf9b294bd4a6a59bc1c481ad0b9e59bdf918717befc4203424c4aad5f7b7f06f4a6fe7bcd7db1813e4d8fb59fe56d17e5664085d6cbd195d629033ae45c272d9f4a06d487dda839be35569f54832bd0a1030a206340f9cb598c9b4fbd9c2a02c00b206240cbfabf962ebd206a98b4c377aa66f6e82a639be49c9ce7a4947631a7011206a466ede7fdda9a65161540d230d58fafb74e2d18d0f9b1c555fa378dcde70b287f514717fdfc45f3dd3240bc80d41c4db7e67011024817505ace725297d15c7c3983067275f6d6748a29285994fc3071411340b880ccf31b53b667a12eaf5500d9026ae3adbd8c3275d7cb6901fdcaf45f16f5874bcf180c903350ae9ea37ace61626767016152b79419f2e6a5e32cd400c102e237b9f456d9a8c6e42ba0655b11d7ce62d6fd6205649acbeca28fd6266956012de6a85d3e6bba945a4805c4d7262533bb2c68240632057429995bf7b7d8f3922605b4184fb3b02935374bfa192051500b6baba77f1a14d0ed31272dba6dd4c15b4f406616b779d1a5e77be904a4669cb768d42d5f929b80122e9e96e96b7c93d8204c406e6e41e3eb551bed359702b204647a29cbcc9316344094804e2dee7858713a6bd5822401a54d87b978269180306fe1c3bd922ae6ca3403e408a8d70ea6524b99e5b9ed0a1d3ad69fa0f00002881190f1ed5d74343e7f964bd67200528494efc24f481c00420406800ca1012066a0687101102174a16e90009020f0e0e18ac4a487150a00298302204088000819ff0b490640c64821f100c80f0c88183c78b8e2c1c3af08c307ff0b09ca0f920d80f4200395549098f4b062021554bc3a413921790581ca2952c0782e2450310509052aa54879130a5448a19551545111c5012aa10085032a9f204940c51319a874822b9c5826243f3e8501954da4bc89490f2bb088404513555432f1e3532450c1444acaf37808542e81808a251614141f3d2a91800a25480a5099c4052a923895397e7c0a4924c058fe1389490f2bc058fe41a0800a243c507904032a8ea8a2d20807541891e2038547f21493b588942e149108441c8202154348a052080554085192e22515a80ce27df4204959bee861818a2034509123e54d501e5009041889240e40d4a08bf5073850960654fc90f2e3e4bff83e74a0c2070854f6a0070c54f270810a1e3250b9c3042a768840e58d141f28292823c86201953af878120a54e8b07e8b2d5c0b0e54e6d0808a1c2a5071c37fa078510392941314930754e27015382c9294f57f622a6fc840c50d3c50507a5ca0d2063654516923c5a4871528a840650d6a4076bcbee8a5c32ae5a6f448d141250d295f726232810a1ab850283c92032a67207940858d940654cce0240fa894e10406a89021019535fe009531bc0f942b0850110342e6d4e797ceb3f46c569c98b88f10e8d07162e23e960e1d1535d075fac58f396b7f54c280ccac4deecdacf49c15a78118cde27dcb17b516152b6040cce9ce62543b2d6b6d952cca8f13125cf145e50b88bb77e1e63698c2c3e48717d645c50bc879f1f6a836ebedf32ea0a497d6d25c5bc97c9992b5e4450a1a0833db1c9a65d727dde10242ebb54e355daa737639495e155a60e13ebcf8e12b00a3b205d451d10252ad0797bccbe382ca19e8189a7d7599520fd4a29205b4c6963dc959d35a7ab8820564161b6e6354ebff7e5d019db13cca985eb86205a48b695ceb2c5eebf75585b4d862788e7a6d2aa06fb5a44456bfba0c790a688fd3621a360189787e3a8f6a5c8a218196529f94f293d234133f625da7b38ef264be275ea08040878e141147a0b3382ff5ab7e66e9845888340225d6a316f3c2479d6a6604bab5f89b7c516ddc961781de2c93bcfbac4b195911282d86afded3fde9a53611081597b7df7c19ea2d22d0425ccc4aac8740779868fed7b7f299350432e66cf1b5b8a875261502294b77c4e475ae960981fe9a4d2fdbab078196a55af98bc22308b4ebf066baeeea3ae6c881126f9a61fb992dcc1a08644eea59ccfec2bd3c671c6851292dfc77090884e7cfb95df47e45937f4068cc7aa3e69299160e74ccad259d7416f4034ae56bc6512dec034afac7dad6a679ba850f28dbcfacaa8569c1557b40b7d8d2347a6a6f294d0f88152a5be99d1d93a5e501b96ae6b49e131e506e1b338bea65f55cdf01f1fd9d21b913b103c2b5fc7a5565bdd6a7bef19887cbbad4ac034a764cc938a11542840e88dd17c7e54999ada19a03baa5101f952e4997c42e0764545a9664a7f90911375027a5ffef27cdfc2fed38a0e34fc95610227040bc6f9cde36fdcda7df37a0b5d0b82e73636bcbfb1e44dc809cbbdf4fcaa44b1a54226d408bd86bb975c77388b001d9b95b9634fad9065237c9f0e172e5bcdb6b40a79f12fae72a35a0fc2595f2ed649a0e9a34a0a5176df5ba4b6f4947040d88d5a24ca9a35ace80ba3d9759ce19b5a47a8bb0712779f351277152b9d89c975ce12557e8d0e125ca4b7c84216206c44b2f74a592be6af52e035a5e714283bfce0142840cc85e6d37e627d73b686ba0933277a94599ed5479b8101903b2c653bccad516555a256b2728bc01188388184e312e7769966545d4b0847f675d00d2100903328aa9cd3059ef1d44d2407694f3f7762b5f762d1130a0f579f4f0735553191303912fa03f86d37eab7aa63a8a78012593ba2cb6b79412273344ba80165bcf958ec86a2ef19d001c41040dc466961a95a67c967a2dc205e479c7f1a8f5639f30f90c225b406a2d7adcdc2e2bcddb6801a962528b1f95d89a8d5f103903ad316b0f72ff49e9c0f0f1e3ca10c90252e5aecad580208205a488b8dce14b9feb7e6d885c01e9a2cedfd25d73d22062855f2e37a9eb925215103323f2aa79ede5eca980521e5d16d5593d17536b109902ea5cdfc6369996023a49cd249f46a386069128a073cb173d5dd40ce60205c4ae267961bd45d7a661aa21f204c47bf4ef2ed7c9b47319061127a0ed5ee76551193de55a22d20484c87cabacd69a448409a87765cae65fb017f56f882c012dea18f5b5f09e881290a74a3faeec9668c658cb219204d4aab79d6ecf392a173422484029a9b39cb351ea0791232053bac72c7e9cfbe879e4838811d04165de7b75a723448a808cd75257a9ceaaa5398980d6a2b25d615a3c3eeba021320464b6791657e36787937341c40ca497cbd9512befcf288305112120659756e2b1a396b3243436448280dc172665e7787efab35a181944ca40988c715a162f6db86680805e918daff9d564069d0c649bdef37859e914b6111903fdfef2fe0384cb9bd387f7e45acc173110b3413c61205c8c9b8cfa2de203d46a399b37a67f173615e90152becccac43d860f5953818e97cefffdde534c0b1548973faef62ff7dc8f39055abf28bb5b0c8f3a4c3405e2957b544a9f9c874b4b81f6fce0a7646b9102ed4a888ba7f135f80a47815e254d7b376b45814c1e73d662af524a7d180a74963aa56cb1b56c4f312810f2b27ed49cc4b3f8fb13a813f5b4ae2fbec5f778029999b425d5a1ea043ac5e75f71274c6b14730279f3b5aafce5dc9ab609b44e13fb329df43b6dd10432d69cbe1b1515fa6702a5597859b3eae80b0f6302212e6afe7d6d9740cdac56e22eeb2c818e79e3e55a6b31779c2b817651beef2b97a604d235bace78cd99f39526e178fd6a592a7b4902994ab5eb0c2f6a0eb4da2c937a9afaf8588a04d2b52c7b5bf02081fca45a566932ec43c823902dbaa9922f956cd69e2310ab3ecc6bf9b516e3c71b613a1881bc975a694a71fbc2cf5d0452db98b89515518528027da232cfebcdd7b26c3008490452c9f8abe39cf6dd3c0841043a7a96b51f63d8e6161fc2b49dafae1a1221c410c834db92ef2ef523c50b1a2c274159378490426c524b8b272b7be2c51c120219a3d22c2b99b3472d7c1cfcfb580681f47e8fab5fcb98949b1a840802f9aa61a6b99a92352507cab3c5d4dbb225a98557b2e61d849040a05d7ee947d39327265d90f840e13242e240ac690cf3e15a3d760c0894292d5e1abd6fd33256b2f607b427f1191e936af5c28fb2d4c6088103e54166ce5fc75156fe20c40f68514bbdcfd29c9cefc78b1e7d40acd03fe1f9b5ee85918c103ea0f5b6ba55a2f2efd56a6746c81e905eeb2fc6552b3ee71ca207b4ce2cd84b1f2e8a8a571e4ebab95669611423040fc89673b3965c9f8b5d260aef21e40ea8efa86356a5a65dc7fc3a4131ab420b2cd41527294801c0116207b4e059bba78cc9e587c7266d087903f972b097e556bfd6f1daa522a40e68591697a13193e73b39840ea813b3bda2eed939a03585ad161b17559d283d487eb89d87c801a9b25c858ad34fa60c42dc408b2d75ca39a99447517c2c1707d4fe98984eab5cd262ab8709172970406979762f9a7ea4f83059f64cc81b587ddf294b4fe30664d4f88d2fe5b76a5127db80d6b23ce959774fbdea70818202023620b3e369cea22af52ca37af88fa08a2b42da40cbbdbfd6a63bfd73e810b206d4a6fc56b2b749c5ef6ac8b37036a601e9a3e59df53a3f271f0da6e30ca6238c1036d062baa4f7b1f5826e1c620664662d960ca2de25eddd32d82dcacf36e1823ed210420684fe69dde5727a37df135f10b206babcd64b78fbbdba6e9df86172113206b428bba3514be369d1a5646d042162404a7f8f9db5292d687d6aa0fc47376bb8d3264f19120694cc2b54b3e93a0d944bade5fab4a6b420040c486d975a8c6ace1eef238b2fa055b9a66d596c28847801252fb76a526f2feaa0927421ad6c5f54ed16dd3284a0816e99321beb65575acf3b86102e2093fe977f26a266f2d32d205c2ea1af856f19e57f32440ba857598f2d68ac31731143c81921594089b66d6c130b084db3327e9e8caba37e0584e72d2f29a5946263015fec48033d2fa90effe266aa6a52b0030c67494797526670f960c717d0b2dc4abe26359a72e3e770b0c30b86b2a30b28712a83df0971d9341a0835dd3739a5c5cee93e1e3bb8b0d4b06b5ad2a65a96da1fecd8023ae752f79fc65d8ed2450be8719ddc34aed619e7bc5995cc3167650199e46756bad6e505976301a565f058eb1d75059454717daaa3f21ca36d0574b8ce19f5a45d05b4f83256a3f84e6df2a502b2b5695573e14af33d0594cb9c31bdf017bb5995025aee8f2d2dcbe9cf7e1450fbb28e526acaa9164f28a0edb5ecdf7baf75529f803edd1a350b672f8b397302527bbe945432b7a309689de7a3cc9e951a5e92490a4a16870908974c0b26fe3af6a2e85b3c0a74e848394b506ec9b039a98e7131256ba68c1d4a409e492dce354725ec48c2b15aec999b6bec40c21fdaa2e52ed9ea8f9099e7d25a8989ca08bc46a1359b73ab45507ebecbcbd2fbd84458645d569a8cdb926c0876cdab5352dbc3cb3269ec3003a5a575ae9cea3abdf10e21a0730ea7452d783f851d41303c9b8c977c1c1c137694818efa25b571a6b4b55725d8010484fbc98e19b5d2b22cb7e40e769081324d1f3ebc6e4b2af662c718c81f7be93176d4aa29e3a9c18e1f2073b3d6e2ee33cdab2ca5c407c9169ed04ea082139cc09c8f2eba403190ae315c942d54b76cb11e6068d1c50912d78e30509fc1ff5efebd9e0c3fb0c30769dbfcd2a67dcbbe9d1176f4206f33e51da3ae7fe19963241548a5a1d93685a6fad2726282b29c9020253333331111111111efeeeeeeeecccccccccccc00da30820a74e87dec492d55cb1b2c5655555535333333331311111111f1eeeeeeeececccccccc8ce500d230728a745eb95f3207ad1d4db1b72a9949693c537b9e8961a414e8f21dfffdd4a82ab548814c6ac3adeeab468192e29b6a5baa4481fa2c76967ea5eacb9b42718e59eff2cf0f0a74a87efd9bcc2ecbd2fd09d497b6b89f697be20a53c348279052cb51efb18fe99396132825bded357fbcbf56d556626413e8ce975713884f6a2f658b9aafcdcd8461828c914b20534f9deedc2ecbf73a9640edf79bbb9c9b5fd553093ee7bfa4ab616a474aec62cb323a09b4773ae1b2f5269dd794046ac7b454d535a7bcb4394e4aaaccef5e24902d3ffbd2aa4cd5620c24d0627ec99c59cef208742ed361c684c91108539eb3ac6ce6bbd3d2882f461881ae71956a2eaa963fb508b412e22b0229f231d53db61261de57be9dc58b1f2e596c288c2002e529d466ffc50f6126fd24e7c1c5ac357563c410e6e09a738ab9c6d09cd3c7d42d74b56fd7c7133761a410c855531da5d9ea6cbb0981963987dde6ebf1fdf42050a664eb7df3ac2050dae20b352995d67995036522a69336255f94a606022126653d8adfed74c781ce62587361a6516c360181fafc9bf35bfd9eccd81f502795cad3d13eed89e140feabbaa02f6bc618f1035a26a95baef47c3d7f1f509bb568bee2657a07237c40a6f5f454367ebb52be07a412fefb5f5aba76abf5809259505933e992bed3f148c9e484a4cb18c9035a7916a330d9adb3983f78404bbfaf1d54568b1a4f3146ee804ed528ab32eba52edb01fd3167d46a0f46de4068763135cb26e5e489bf5050d0c64246ea8096a31f36b6856ba14c78242fb2580100a430420764dd768eb3d956a3b790fcf0f129297ee6809631c9e94d77f740f96192487aa4a81c10fa735afee8d9b2bd1449ca9994c2234dd4f74849cbc1881b686955b35dcb8f2dee5c46e280f6cda2d26298fcbdfde180d2e2caad9e96d79bfd06d4bdce61e59967b9e473037233fd1b6983c9081b7aa40d74afd43b2e9e99715c4ad646d6703a4046d480cc7d5967c63f47d2a0236850236740abd96adfbed840ca122ecb993ca8d28d9b017172eaf65aeadb386f19d0b294addee9659101257af2dd54e7d54c6ba03526b1b2e37e588c8c01f5a565f5afbb32ae7ec580fed7dbd89c7c65278f1a28b9e6bade646c2d7a1a06b467964529659c69a0654156f345d3b1459581015d3a06dde8f266e40b0855c2663b3487334b524c4ebce8c1b6021f282248b9c3881790a9b7b5245df5b99d06bb803eb1ffc947475ccddf428ca08194294ccc7cda983bc6235c406959d2ada55caf648dc4708b1313428c6c01b151acd4a825550be88fea626b78c13f6c4bc95ade60e40ca4ab97b624d3acdef313319205f4ce96b8a0ab35c4081690fdfb5a668abdd00d8e5c01b1e1d654358bf7f3a615509b54c975d163aa8034f1bf8f0d55c99a0915d0a3b9b554933167a5f367640a6899556b88fa79fc28ebc48b1c91024ac82625362b99d4cda70b1284a09106235140098d1d6a4a9b70392b4f4c7c0b2701e387898fefe1450a498a97e80b4696434f5ff21645b2c58909c9ca73c1c81390ada23265562d5f8a4f469c808ee95f4a6f30a1da5cc652b6701e22581b69025a6c6fe399673219c54c40a7c8495da9ff9d73961b469680164f6a10ff5f4fa7e57e4409a8974debd67e5ae418490272f3544b53e59b4ce31841023a542ae9a2dacbb2762d234740d7bef431c7d3292d098f1801b92f8b9ea469367913234540afce2773d89c56c6346662840867839121a0f37f0eab564ba1fdbf16eabf401e8c9881f81c9bb5e599cc974a234240a8cc2e7796ad1f0982e9f8c04819370284d52af9a2cb31b159de0819e83015f6b2ebf818285db11ea5b6c63d991e62e407c8158fb6425b9218e87e31beb0e9c546c240c91cb5f6c3880fd0e3ae348a57e6eaddebc3480fd0a27869e23fcdcb794d2722a940e87974592fcb2444508176695a3479d3b1fdc916263f4c129a590aaab8a28a3bb1e287494ae98182a740ad1655c526a545c414c874795b7a499a9adfa04829909a3f66d22f5cb2b64784148831596d4aefaf7e554bd6ce60db40641468fd3a53fd5b66f4f53830f96172e229e76620220a94e6951a2ef8a140d7eacdd2728b499b96050a64c82aa593d4599f407a9f72499bd24973ca1368a5fa55c57d5ce972542790bf2b5b54ebe2047a5369e5d2df9b402bf113ff909326d01bc44e6c4c338196ccdf93acd23ac61313e87117664d4cf8cb4cba0442b4634335ca9c599640884b32aeca54255062dfe17b5b4e09b4745a2e7d2ebd9ffa7c12c8542dd64b2b56aa16e39240adbee694f3e32fa33d074aadb8662d6a17bbb322812c8e7fa844b2265269209003410ac320060131b900231308303024288c86c2d15834d075457e1480034e2622483a2c1820201816381a8946c26038140a0683c18028100c07a3288a24918e0639be00a6472fd0d9f2a400651796fc1fb27b0ce95e2c880531d98c419b9982381c7b3c72689b7057ac224a6cb02474d4cde42602724830246092541fe8dd5579b5326144c57e161aee5546c5ad9222148f480facadcd439235351f37b11ed8892dc83ed6742d98ba2ee87d40afe6638d351f7b6050fba8bd9b8fd148097adb41e563bde48f7b1308bdcb8ff63e907bf31ff41a90d20b3f6eaefb017170ec678084f1bcc460a3b132c66b715ef653bf14e27f3a4ba0d271c82e79c83e4270d0f1143e23569d1a0112820f43c8ce2cee7a8315f12c1ba56249c331912bc52c8d0879a2374957c7ced6a651dd33160272ad57e38de033beb900fe23275fea58762a45c69d36d2e4a52acffcc66742d1899016257852e5eb40cb83779417957ae540e62d81af2c46da3fdcd434b8b07526e698016e9044776cca90e4cdc905bcf193fd19775da0d7afcb7364830ba68cc82bfabef90233483ce17b121498b5183d06036f7bac87178641439320aa6e986e0a5d7c4be4c801c58e44081b36d2eb69009ed1e413a56ff9fc3d4d524a50f4f7d3f293c201b4e91d17d6282fcc1a99e111c16bf22ef033d5c1664ea2fe4896e4699c6248beaf5d40b60a148e2819e9bdd45d85e12331fb1e9c45b06a16c0b0bad72c723db759798a047b6ce9e32c85743f44f42912458992772e70320188df7c0cca679d036be8a8782186de53353c46f645b4df98e2aaf6fc1bd04af11c335021b9a9177dd17aaf8e143725646c166d6e0ad64e74c6dd896f52e718b8c9aae84e1488e1599946b2541df2a4529ddcbf880040e86f895057f85600000d7b7bf8d6ee220e83b4ab5ee80f12c5d5e07484c56d00624563605eda92e06b3a0df9e23783b2f2b198957e39b89a9c8eb4b8cd43af6c4ccc4b5d86c8ca933ea07711a36b804feed172e2595cc12980f4185500acbdf0ac50dae52e1b4d8bf97cf576960c9fa969c987b75994c98dcd2c7acbc365d2f4a4e16c3e7a3263661ed5b2f033372dc9f06eda225a03ddc933d075fc02dd9929d035ca04ba9223d025d8480cd8cc80aed3573e773dbab9162f91cd15dc3f7a031992e5471a50cc683672128347e284842c09a719a929bc8cffa46913a2838c8f21587997ddc8c11d92ad14ef3f83973e86a0e5b791945a867887636d5aaec8e814a3c6bab8c0c4f5729262fa73b37d85d902d0b2f8d41cafa6ce2b33e70faf16f45d610683ddf46652908dc8a4a48b3e4ad1f731e0b306512f6ebc31c5a7a242cc1482bb2aee52d893738320508a20861fc10c2cc795c058114d6558a99dab32f2d698b9e761535829bb5520ec01676e9b949da7a32d3535ba85a520da1221ed93815503d10b6c1c4616f73d9c1544dc8bdb621d79c9bb4d547f909c47c14c15861029dc822f64a97d7ce02b0792c877363aacb81151de62884baeb78116b35f8e691171d88c0ebdf04d6aa295d152a72fbb50220a3f1590d501882be3f1f9ad31997721f4ee50d96d25397c28a64f4dd9d29cb50d52678af488a0b60a01d24744715b0f11e41bcd07fe354f94e374e7cc6c5a674cc9fdbabe2f396d794926c4c37b6d8b481260f6c6b89f323442ef91d84a91d062eb7a9fb757c6507cb872f2887b2726303b6be3e9c582cfd0344c2afca111d42a67baebd56a9ea64df50568554e431b2ba37ee025ee164ebc13b5e7a85015f9ee4dc6afcbd92034d7a47164577f989e8cd6b069625db9c67d48791224ab90a1b6e41156a950b7c35f00c3eb073e6ebd030a268e61173567384a89580881feb62af9587ef3c59aebdfbb30e5b891ef4aefb5c0592544620b9ca2be8376124c9220fa7e829297b24ad248628f429b0bd2d2af4446cb01348918ad8bee0b8c8b0f2d0f1a1d8460307733c35f24b03681c88ccf22b9e30ec128052a91b7c3f61121b12a843aedd0e27546145129076a6d14edda95e1ebe9c0c176f049c988b68025ef22b84fcecdae609730c2ba516dd877367aa001a0209eff257a586e89585842ef8d417b52fc6be6ae474374d904f9c61b50592109a6062b94929bfebea70241f95ced7c9e4c1405d10fdf06a5c60e8469b461d5d198eb5630604afc17e67c1efd2a599b4e1d7be392d720638bd7c078dc247a6b397a417b5a97151b07b85bbede37dcae34400a4d5d35dbdadfd40bf1fd4f83b5710037dc52db7a87ca51627121f58e51476784152a00b461faf8d120b3d15722a2b89fef8e9e754f688b43e4eeb9f87457e5923d58ffc8759f57d669bee20f7ac29667fcdbdb0a25927ec4785f410d9dd06bf6322de98dde21aa41425131879e5100b180eb41260022e61526283500c891d2b71857863a37d1d7dae301ed492ad005d98327104c9fd57a2993c5958c9da2118319257aba6fa8050c720a7888d7961eccf22b771046e83315d7ecb2009e49142a01ea4bf7d3dd105fb4ef385e0b649756f7c66482af0535b0908563ba7f09cf49ef26a2602d9b5f8a6f0719050207a9039334f893c0f2e2b04f9d6ac20c3299cb1b275bbd29e878d3150cf24b5b984b9af2161ce62e454ad6ac69c8fb150f3052b5b0beb0663294b39607d5980a02412f5eecac3be33fc1c63d5817e1fd6b838a79ad4fadbf4ea3511f136c7c64ceb0e86c283ff9ec5042766443fd993ff1bd12ce7a4ef229bbfb7bedce1a3010bf901c41d3ae57ae8a1a9d85ccf183aff87c3d4604ff05a8f6af6f1ac7f006fd18121268dcd84c12a945392130b1301811c649b922e0a87c875d862d9fda327564d7827c98107308f15380b24186807c64663a4d436799888787960cd071ccb591d3e86c47f4bc7c45d32ddca31ade55b9668bc7b982fa86ca85a8fb2cd0fbb310260a5751be464093990e3f3692e97d86205bbc960ab1e8c3b77fb49bd198ec00fa1ab81dd17cd4611e5b9a93b4e209d764d5e6c472cca2f863936b3c5d9b0f2ae4c6a544fd49d6f628806f81b8ac06fd9c60a12c54311a280e9d2679bc2ba9a2b9a0284f285d16e641719f2aece4c5fb1c36bde3ea41aee9573a3e92e01aec75ae971fe819ce5c0614243577f96c989260871c5ed3ea499a6365bc40e8b18ab4c8484e1fa4a0da3453818f1cef840e5b97a1f00809e0fc51649ba147436fe40f1550b2e24629e1d05dd1c4b0e32145edbb5cd6cdc0a4b634b2fa3ae30cf517803e8f944a366b4e0a7c025a567e551b2373a754debb9eb4fe4b0714d218008c17df0717d6a12b787e24ce598e6bf65eb6662e75af42d500c3156f609df320c1e332389634731be36d0c6df7c5e596bd28201755ff0ea3d2da691be1199f43a858ea4809a41a595b4e4a101391463a7776d4f19812976759ac0c0175da6b0ca2d6d101a87312caf83c6b4a0d6f3036b6888422d3ce7c7910ca8342a031fa22763e7bc07f52964b6774d1b48ca87d13217ea23924cbdc80351b760897854300bae6486789a02277deae2f8f0c37950e2ef00823bb43a7131008ece9b01041b58f4c8e65482ce902659505a5d90323747cba9c8e4165f96ec57578b142afe9986ed03bb9e9e69b1caa18a884b2eecb692c167a0ab28e4df5fa784f3b04545ca803b0f9501aa868f521c523c4db1f652232bb78a732876f3f2e3c5ad0676d8c1c8350cd00fc9d4268bc132a019304078ffdd0b211ade1a19c26a8c17fb68b72741c0f25555294e3bedc292b3443db74d1ded9e1150d1a5104168aeb47b922a6dc1e0558f496217dbe3d0bc5ab50646e16e2eba17612f55768364359904f3528150e2647254c312df845b948843168f258cf44b547e722a7d63f5976b8662f9db5c0453a2ae8e3ef42470ba55e4898428d84a16db93ae38517232c1d42f48bca99a2dc64b572d26c689bbc52b64f58c806a14614cad242251ad2e7499c12e1a690af6194235f0fc94365287217ec760196a12ea6484fa2ae1502a7a1375ef544a045a7089089724a2383028082b2668cc3b2f5e7a4fac42640e0f711a095e94c87c663221cb383dc3d297529022a7f442f3c11af5bee9f4d864b651c0ca61deb5de81c62a9485022b23868bc160bd8613aeae35089de26560c8baac6565f444a41ca25653862b67a4ad452bd09d5f2a2d9bcb220a56407f0e83e6ea4c36792ee8bf211f3d371f85e18bf20edad99fcfde4e4c0b506a2a0c21472e408db5845223561c79ae58df0e818dddeb47d0a53758a13edf6fe923e2bb27b16e8bb7724f93c1e2ac2d6b03d1988d8e7e6b16512cfcd3a0dbd545c05ac52d91e796110df8270ba33a63d66deef4011f3157920411cbbe5297653630914e419069189acc8d52d0834035fbce2778a2e1ff2b341b481da2046b295459f3d11d6ea0bdc7372d977101e914bf5e1f127a15665ee380b822c11faeee32449f6f54c04012d90012faaf2d5123659ca8e1c4773993c4ac53a34cc999d461206a837aafcbcb241ba63246e2c9bff2689d04614406140ece1f2a14787355efe5f511939b5e671014195127c963714f8827d42bd27c4332e4de501cf800a67242054fbd122b536d4dac03f04ed5dd3ef53526d9b395cdb8b16abd3238a1233eb6a367a8d32d6cf55a48de697688e26417a181e05611610eaa402f45154632c92693d65e1775c73618eb327b288714192c022ec0db48c275c4de882a893987adf68fdf977cee688e5e5b690c82c47025c9fc6f61798c404e1a7cc77e12623ced4005e814a2e349cbb4bb8e011cbe8592c7cdfb0a7484c1bd3f6acdb809deb854b5fc13b55421e1602dbb41640d920bd198340a8b7804382ea567ac3928326a1b8cb4eee715c9e6bd83aed6ecd4154aec679aa8fdb7af091eef45ef101e4e8396a134de2dbfe9aa74cd502863cb56dfbd65ea6360da24f1c692b1f4ea7e067f4f9890eb42b2dc7651ee016c04d0364261de58f8bd68b61f9d2805b1dbf900afa7adeea9de37857ab830fb4a41279ff9a7c9366e44af04fba40250cf01897a41a1f6799fb081b0a691a1ba89a4163d1ce054b9350989050e001c83d9a7ee6472c8df56b1d7e1ccc81cda8d372f6b2496ffaaab97a977bade11bf3092726d9c12a80bdb50e686b3a6245bf300e4b6f6c0289dfda335cce17737977b71d79a12919970927573dc8ca6117288e1eb14cc69bf7344c9656b0132d09f36e1d9b3a817be142b3a5f426f12cb6ae4a9b3a75672292af49ff3eb622383d77e1261d578a34a9c6962c7945bb445945a7a79a3faa03c798b6347efb7834d898537ccc2703163a5fa973a80ac0e1d460104d2d8f94481ad77545853caf6e52bc1ead2958bfbfb3c2fa4fd49c1dc0ae02fadf125d270db53ab9c41077650c2e7c0437d87f891b87f648b56de48bd91f9445964d6a27e784bad8077bcecd7275acb3a220ae0339e3138eeb234dfb6e2eccbfcb4e4cf1fd069f49e022af41d3bed0125a27e1b2f48c76e413aec8bc84ea4a4f31364c0cf199dbe260a204199f93518c4e3ca2c7776a7c5618c5469e5bc9dcda7c3e2bcf732224b5c7a6bd62f92ae3333cbe08f285d37ca94893919962f920237cf6a8c223dfbfc4f716be7ef9bc892fbf05a13726533205365fb2f2d9ccd758f751e98770f1594fea234141c197fa2a4a3f088a8f5deb4b3ddf42bb713ee5f759b5c608cf6fd9972a8b161f7a7cbec8b3cfeafedab66e6d3f2b6fa90ec5e0796e73a3b8507787f9f59e77c7837abab83b6382780c2612e1bbf479355eb0b6779be7bc11ef7c6363910463aefe7a12de2fc60690e38014c957196e5538e67e33944d94d63bb8cb9c63759f82693820af40881fdeb7f28da8d1e3ad9a4442cd220bf35d94aff4822af816398bd24c8e5cda6b6044f53a8b1f8748805f27ffd763ff341ee201437523028c6a829912ae6ee5c4f15002caf6e2f058009a59b1c2549feceec5120428a3c6004c4ab1955fd013a3bd713ab2128b7cf5c44fcdb45c33b680ec9b5711f4d5fc838eb148c388d8fb5d19597b1cfa062098a8f9d43984b6a2317cd72071122de01add470a0189305cc324f9342f6940a3d06f8815fc8e08f9101cd8a1b0dbe50b3b652fc9709419ae43a108e30a9ddc349d3910bfd640861a5e05ffd47a84e25ec8329e1b363f51a06aacec4d2f8270ec1a262bb1082dd97699a168916750146848e5ff067eface990a6769694d197e7f8a6ff65f32d600276ee0a900aed8d72332fb00b623d80cdc8c8ccb01097a117806d5e4622a5757356b72a9ce3e3a150e6c30e5b27ea90248db318b507a15365085db92e811610523769915ad5d8adc404829f62b4f16a8be966d46e69be77b949b75a1065f44fca3687c93afb9147d5f2be9342ff7e57fa40c89d2800db9ea327def24aa2f4df8d647409d23e624fd090301966ab54de7f3fac58b71ae7d97373b93de56b658f0635822d3f6f3f6194b66186f26f3995920893ced02d24378e94e06d3e9e8352010468650d504a82415132e8afa478bcad0bbf0953f94f279d7e624cf39e0c18273bd00e8165e3b86647b9e1da16c605e5030ca1c32b96e995a84e9ec761960925f18c29648a65541e203ec924305c155f88a3655ea15951bb623768a86508a91b925ec8d5cd6e6a83e0147ef4036fcdc48755f2a97829bf72ee4776fbcbe53158670b12849d0f9850fe73ad6fab89b8e36a9d73bd0d9c5928a42f46c39ba0d1eb85c9c8cd08c1b08e3cc33dc90155958233c013a4441c16adf5c7fc20419eb9ba7481b657af804a7e2f2a45673c4673770b79d99ccf3854840b679465cedfdac090818b629330f702235e33b280128a75a6d322aa8259436bb53e530905e9a994ba3368105ee11cee746072304316d6695430eb71ab2189193b02e15ac24ad5f463aa796b148db88c54252d559514a15868a97ae89bec258a52ea7cd13c5f2ed278126030376e0d4a033c1283f5896fe3dfc89d9439449e68d05303657cec081526a02bdef4182d9bfb7380fc3f94ec4a7600a759e5af68dbf9b1808779d5467d728da35cd01d661c076f03f6a84fe827a2581747b690163f7d4e836226b5e2868a6306a9e5d14ea26147e4ff8ef3719123b26306c8c4d021a25209e964e78691728c05a658a2c48020092a936668a72a87b542b7e455c706826f6ff00c860fc6cc0b1165de56e16d278d102312536683738bca10089b4e02d5991dd9841ac59ad24d8739e4e66f1a16b9078abf65813565f8cba16d100b367fd0149f0a8bffcb72af8215bae7b213def6f20dd933e2fdd7fa50025843fb25aca5ad7dbe89979cacabc9073071935595fc95f59c3ebf000841244a6d876a47f977a70c4fc30d472ccbf15937620d1fcd90c6623c006bc68a0e64cb95f9e3ad1d1bc96be30fd2cfa60ea4d277b256ad398141a1f51306cf3c4a04fe193e3fcc935904bcf7d317116cd0f532c6c381c15ade9a426c4186d1667b97403d521d8906efb0640158b1a0f452d4678056b386bd36855748e8e1070858bdc5a6386abc2adb9b72bcf548465227f194f19fe4d46b2a61311b4c49848e34e55aea4e2a8a551b6159de454b410da062268a7ad48b180b404028323c37642c542ba24d6e0a56eee4b3c8fab86013223f70714f7c155d908908f876d7b796ae52d26724f079bc2299d9796fc48154822118aa80011869d2ae7b6fbc05b827790cf6a82404c1cf2376ed72388c8502fcafeac149da55b86b72c77f2861134967fd34c482cefa43f7adac5789c3cdec6c9a7024f097368131c6da95d59b624bac8f6b1238c2c39c3245be74b2c19ec9dd0c290690be76ce222c929774b99100ab25418722e68ea81d8d7515d3534f2b16f6946c73177820f870ff4b1472f360401a6c26518445306b6047e8bade8a3389858c527c4bf0315485775ea01282766449143af9aa2f572570fab546496e270463b49c04813cff1210b5dfb812c5a3b6904b72d0b22447a2336a462aeed09429ac6978d37ab7f2abd0b8f20afdbe9619459d849b08dfd492ac68af6ae1fcc0daed2c74cd5dd4af779e866bcefbd640004292f56dbd161168bf504ac1d519924d43b2e02cfcda2ccfc615149f659898ae655651b3412298aef60d27a2d715e6f7d17b128d670144911b61f27cb2aa8c09e3e37c2e7e0d64459b3803283476e946181a4324440805bf6716f235196a5bfd8c5c100338233c419cf3ff4fb69a7782b28630532c686f09ba4726d51e2c82af1bdb824e732fcf96e5c5eef3df7ebf2bafd7d4f9589d6437e23ab596cd7a333622f21d99933b937e5c1ce93c49087458cf9e0be4af76de7f5e0214c094ef9ab9f11e085f1279113117aa7b87bddc94b832787f8f093690881df75454eff80ea5fb086e394c329013af65fd1b6ad1072917012d43de9a066cf4f2614707d4cbc13ef686c5628885ef8426fc57f134de3f271c51785eb7da40bfa4f656f08d7bfb162ef189b220095b6159d95c06b00376a760ad507264a76b9c0e0f43d3db4c4c5ad8838d52b42dc8bba8f04a8c636d701548ecfc0e8ab84f3bccc2f1ac3aab839ee41bc12ca32cd255c01044fdeb5c44971c7669f792018418423d44dce8b1b17e8790989c9453fb2abb6c05eb29d972b05b76715f7b240df72e0b0a204b73f8a02aae6bbfb160b317480352df0cad02ebea188c43ee29415f8149092828ab3595c50b048b6870070f3558cf7f4b4711f88e9ed8a6a8e0904c57aff4acece06db5af8425e4d847d56f9fe7a951a0a8cd369f5f591eabaa6f67a7f102863ae9d82c9b7d936982a8350581b0e5814aac9d96714080c5c070f6b315fe6adc92d5e497705849b77344b9616eaf1488515055d796beb0edfb9981fdb9702e91809034f52775330432a8c8fbae38927e853ceea98225d31431b83f3cb22e0e2a46a5561e826f88264df8600e6f9254e81e530d1117591437061f26fc32857d970fe451e678f10b495edc9c53aba31f0b004eb668e348dc5995f21f443865bdbd1868bcdd18feb4ccd67ec520301b02033237cfb6a291978d3cf4b6fd7478e1a383b760c9b625105ce5d055c61979200ca1abcb954518b6029fce226935dd3df362574daa0976b61debfbdbc01f14fda6ab8a60916a0762a6c0fc09c5d150c034154a94364b91861521eb079dd2756edb512f2be2509c0bacadc2a859641be4b147354fe89e51d4c7ba4b285fce26ee2dcef433b7b8c06fd2fa3220d93734671dc092106f4e9e6202ebd78d08dd13969b10d4f7be77a685ce0b2bcb8ab39fd8b185878bb4846cfe0134c8aae21e459cafd4ee63b460dd03552688bcec4af3c69a8dcc334e6a049b415a99477b030a18044aecff845fcaea2c70f0e6b74363c33d419dabeb1396f669e954c8327bb9e68512879d0f5316c3d69fcab4e6839342897d5461c705bd068205c6c92a8e6a8a6c0a320071070df887738421161fee6727da3f587c7372b8dc197760a29daaef887a238fdad44148a8384cb67f8bd29d9ec59e60746428688ed03952e425e87a273ed52e73b197744cf3f30bfad578859112014b981e12a8700f9173bf9fe4180dac3986a7802e40c8ea17564f25a8c8c0cae49c883bbbd6270547d467f5ce2e43aaaf519824f823b2a62709df3e13b1bf1d6f3fcc61aa61f3e21730cf454fa888db80ce164c66e0136d32161b314269f14871aa334f005da4a62dbc31b4913aa56cdc53b3e4e3192b46cd93cbab414d783a7de8b5eb5a7a5401ece052f48aa7a7896522c8c20400f53118f6adaff9a4ddee8b1e4388124f0a0600ee380ab07ea817d90f032d2147c885bf24752110049028fc32fd44b4a5bfad328b6f4076007164f7e70a0078cfa3abb69d78a657cb78cf3d45411cd9c12421541189519792b71d33c33115814a7927da40c3892af15f89793248a99d9e3c35f47c75619cd5062c471fe63393999cecb0e69cfe8d05a16b9a61f29596aefb1a9186e2e919c812a456d139575b7170d62b6bd69e9c3f41164d2d897a94195812697c851b95719c921c62f37ae985bd0c9a1d6542f8b36943063a1ec1afeeaab8031466231dc99c871d0667224cd7182b497ab178276a2019b1b3062584ba82e035785b8d62b84415e35f5ea29a7ea6450645b1f6db65998521b6675f538c9c536b2691d8fff6b061098b8c9c526e6d5b8da2f1fc984b3b9d2b7c30af224609cdbb14114c13ba797f8f5476e7aaa4f10030ffec8b464e9b4e98074e4045a4bc61932642af031deda816fd730a09ca945b328f2e58fed393c43fefb0bd76be2cc7a7a7ace2011719d8f80fda796f38b6e8024f8e4231d9903be75b99e93159b61767b01a4a6adc1fbfe79802234810993824bf2f2a0f70d916d760419fb5b91ca456cfb379fb55b546eb846238f2c2554bdff09eff9a0d0d049c7e328d80a4456dcb76705c8def83b5c418d1fd10845c78ac64dc3d7a33b3953c810ef6ed7bb0d1ca2fffe63e6fda4a5d34033bd0f18dcf78f83c4a72f20a9a010541b9ffbb05697d7fd8e61caf4760a2451cab7958ed6601ec5a9f3bae1aeef4cc3df313324f96667a474538cbc5311ccf0374724ca81597416a50fbe7892f1cdf407924e97de11e97d2289c04ccb530e78c8a9e25525760d0befbc683a01dc019e18233c595846409426283e6eb6da5a6bba3ed6fc44e40ae7f8769e9a41fbdfa3bbcf394af9e4682d51111a9cf7bbf38f59559c3aa56f739e3734f8e6f1d3166463811ccd138d79bebfb1638497ed54adc0226d390cbfa8cd39ee3b9ddc5fb2576c818153e1e782d57a7ba6c8271fda7413e6452ead40ec41aa7d5cafc07a021df7e80a2855aecfb445200f534c363021899b0ae3f445d797de8270f9c4498c01677cb6c836cd83eaba6cea93f50dff5e5220c8fafb4262d3b25cb30533d3fe158999893ad582837893960ee14b666e0ecc7b2024c1952c329d87d01666d494f9f86b894eae3e34637ca7991ab27fe2a8f1253165ddb864cb198b8c186a9e5910d1cc078a8d1189947b23f2e7f3da93e7681ceb973a4b5d5a96d972fd09b5ecf5231d332550607d006605e17790b4d19da38b361b22e5a1311ce242adf6d13934d1b908f380bc19e2ae876efbe87a6bcb11b0a15ae2b14f54579e260e00ee43dfd06265a6c3d37ec1ae44ae150adbb5014d803e564ce44cb053452ff5a2534a07a22c6e187d4f96113e107926ce5f6362832c7a3d5775cae9eb32d269d19614517298362e79472787dc74ba379d7287608bdb3eccfac08118296342bc27064e24fb05ca8ff0a6d87076eff7a7dcc4f38f6a0047b8b302ef136b5cf7e14f6bb73ba8c7715acf66a01ef52cbe88f12714e32fff601c0f19091c28bef51eacaf31455875a34e4c780b5211660ec009fffc18a7438574556f92dc6d6afbbc00573dbf19c7e7ccd6756fc057e3c812dfad653b0e3b4deb87a25f6f7d6ecaaaf0c4ab50cb36134303f2626e403a4c18273461393f5da88a022d61ce75b99d972687d7469c9876e283c3fa02d0a7e7efb3fa61d8fdde35e5c44b38bae5b920a256e16a109ae603b6bad24ecb608d241206e4e440caceae9687f0f065539733ba81891807e794c0d65a813c674328429bffc951127938ec66b3c4043c3a193789b5a8bac20801c1afb2b3846ecce9e29da2e02e74e758279bb33e67922f46173074caf65a795901a84b103a940a4458daa00230e9b5573c6752c2d44409e727a4606a0efb01980f9303d61a0b79cbb2c49be2be065b65a5d008844e13577559a1a8e8873010b57ba3076c7b0fded1cb955d3950ef8684db9bff79581469bbc1a1c5bf99afc64a2cf24b35c81673605c1e1a2b681e8367d8f20301694d8715d8d43d6a0bcdc8852d877282b7e14b132ebe75566f854e49e4d410e03e2b67814aa9ce85bba21e60821ee635fef02be6efc982a07a211888ad8539a0af922b52c302af67c8c5aab1faf2900c3a820d610f04846d6ef20da8211dedcc672fec3253dccf7d116a688d2e741b3f27015a04f79a9b9ae1bd664516bfc251334396645b5d29b45de416b94587c9c32e93615e961438cb3005c6b09b905c486a1661f36e7b717b89fe3d25a1af1c69b4c13c7e13a2f1e94a8a0b67d235eb18bfb500dbaa1429600597b317ebb5f1efc226fa93b6bfcc2b48bcd08982685f43698d01041c14bcabf850db4f600a30ef9aaa69b57160da3e77fe177646c253602132d8dad6e7534086a84fe96a45b368b70fbfa1df67b8ec977bd8e768c20c6042ff8be2e872ec4a9f8ef6bdee367eec59139cb7b974d9df5a0653e8790bff966cdd109b146b2a75cfef707e68cc9ead3679e4605dd16066b376ad77bb98753341d7dfa0a9805ef153bdc700b38e7c3a08cc4136e5b25d6276d8359ba4b4c75f9d20d68b55f6a2a3b1a73cea7151579d2936ba0f02c4a32a633cfa008370af1e18970f1df20918358083c503daac1565cdbc9d9cc58953ec64dbd9dee10017da40486246ea17af75ed0b5c0faca9bf61b71d59cee509ed620e7a43a73dec3bd3704fd1de6945ea0cdbe54ee110b6e3bd8dc190bcd846a101cd16471c8682519fd3ac165287991da118e560ea861075ab9f3d7009196efd308169560889d39ffffc180a33fa66470dd23ec5cfdefa4dab0fe6cbd2cc88e98bb4503a4433c83642132d9935b93ca94a4adebf9517fcd5b33016e72f165e6e8507f84b171d8b6ab23c4e72482911b60e6d60ae069c06c6133ac891ccd0907fbe71da6975a35fbf33d1122560dba0ce5a73958b3e3663c8461fc8faaf5159af461be7e0e4be194c047ebc9bd7e034736fe20625999d20daef801f1e815043a21ada31c8085b4f2eb6e0ab3762380e8ba784404e409a281c7c28ca2a73648407871fc883ca81cbaabf52950f55776e8cac20322e1c77a68b082d6b9a7da5cbe592c3065c454897d765fcb3fc25fa8272848f69ec0164bc6214c564d356f6210a18e3a897156911baf78641201bd606ca576f2cf2b6db34952d8eb2a1c16db5c7509b40f9c8e488e9933b8030100c74521db3e6e9bb968f7826f10fb62a1ca3f8fc02d7b55bd20532d1e341ecac66ad27b1925ee1bef4d64ccb0b1bcd22d3166f32977c9aa5b2d34d3a950dc17d282f85202b27ba3afd7cf0197053c161c9342f0f65b412797f1312314315514f61e821f79439cff47058f27bdb07d1de3c7041e073ada2633b8c01990ae045a4c50f1d8c360adb3db7b52b11fd9de3da8f23da71268a5779189b5cb24e348ce11d35b616e760eb08eccc727145fc18d583dcd94865393e9f360f42b7abe93c7139feebaa08d1ac61a0040e6bee67387bfb32e3a06447e5da4432266fc485ac5c4a3a30b2194427ac3946673ad7b8fdb665c3d59f0a5baec98b29da45bff0ac16c860a23a62f7ad9663c9321414c35053acd1cb3a13837d6d9443d7d4872195f4b286f8a1e15c2496d0901800df4b7220d54ad71c44fb989640f0970c19e13323445beb0e0f442b2fa0a197aaee4f864f5e325d5a43987c1a9d88cf797a639bbf138ad7e5532654285b68b2708fcc027729a0432151a292da10c8e62820f076420e37664e5bee4888f548b5ce556023a6f23abe0232ed5799087a8f2355e1820e3cc892def2f76646424e585b0d6e1c4b2ce37bb538b1a010924e63e86c2fb635a8824d96a8ba848c793b2254ab18d63f5ed45df581f6371419fd550e4dd502b5fb40930a7bd89c78bdfe3a437624a2b7b791be060272b3a53514540a13da92e67ec084c5dd997084ef529d43a9ad620841a9a3ecf30c09da84a459b588a820df7a93298842f4cadda9d4fa208be44a767fa22c82caa5a694ba197d6aef4ff4ef911c23e398b0e1bc6b3cc6a7fca4079775c5a0818d8231527d3ef9a3ed149e395e13bb92403935d7089f184228248245ed98349f5077f99704935cf0378fd9469b28d005df88cabd1686668a3656e5a6606e60cec813a359b028a40f112463d80ac40a99dc54b6f5df69e26da09a8061609b0a2c95ae585e4e80abaa1ee5d433356a2696847215f151e75dab830184f32eb4a1321d79c406308f60e0c955f762587267e73620a3594acc5e666e24cd6a50264cf5ad73a70bc22d9ced697b900f860eaf0a50bc1997062d0e2df82bafee294c98ecb95ff517d5cc270a5cae3d46335580d89f00c5d8b67edc4ef179950647d0856a95b331dbac9b84193b71384f868acc29ed6d05670c347f57bb761b45693533c6ea7735f72bce97a3b61cd4cfa924f49961a07ec1bbdf9af1577cb0e40b9cd5fdaef4324f68a9e267a5fbc07e3f84f9cbb55f7194501e0ed6a95f1101e38edc9fbfe2ef1a7150fc3a3c2139e0446333814699962cf5366f79f98acfb61b2b3a8633a6b92e7bc25a3ef5cf0d12bd8daa52d4655bec2d00a682d6f3fbeb43204b2b4a51bc791903d37372988d614b638db2a3d9116b6178fe138426a62788747e392a12743e4549c95ac94b6c33503eb770f25319a625999aceb2329330c9b527a1250f8746d4ef9928f053c4881f4f36d8d06c0f657418c28c8702cea6aa2e34f95fe62986a69bf6301855c4e313c32d2ca99d10052b395363a481954153036052bfe5562d59321ef986a0f8a297760d968e98ee73ec5c78c581bb4eaf12392250f5b029ed4e81dff083bd754953b015e5187b994c0d801340663950c3e6802d598ca42e779621b04e44dc6d8c843f3832736d20537689a24787ea2c42a2f5644ae0874c48d1aa26a00d4305370da3d425bd9e0a1128addc4744b00e4346b8298ffa07ae621f0967871d2a5c69919072c9532aca3d9dc39eb95464923e55788ed05ac6a6c0d817fb12b6053dcfe2850efc69ed6c5121e6bdb44899f91aa64cdf0d13482eadc82b1f15a1bccd62265fc5e744a8611bad075b9472d3a663b8710ab4914b0c3ae959486da14a5579102ab60c550d2a8f0800901ff2c7f593015b9514c41aa5d2d7797d0968f3c3044943e9a57a3d5102d6478d87d1b565b69676b1eb291e5c1cb635961236cc51d4513adef35784d5cdeebf8ad05bbf68a9eacecf29f02ccc27132e3c1704f1967061686a4713d1e506cff686102ca3c45ac148ce20539128ad8a450ffc6f98bb9f0fbddd2d1ed38b860ce60a32b56625132418aa9d85e4e50c289e05442dcb54347775e5b7d5d721dea8767b60a3e0b58dc7ac7e71b88eaa53f66e667fbc6668796246bfdd4ba50b69cde796b013668ee2bb33b92132fe9253d21178a350511f5182fa2de1d63d89a01e8dbdf61f6c91c22e9e5a21a73d43abe7396969113a635549c09a068a68cdaf440ca39642dd191774444a2854e2d30cd4f7d6cf66bc2e03de5a85b90d3860b26639ff000000000000000000203888a0b5a6d8b094524a7a00139655b9d428e1a24c29a594521edca794e12fd2863fc686bf489bdc12220ef60d660dfea7ee58d1222662fbfa986892d3bb84c9301ab25d1888f0cafb26598cdb450f1dc20fd9847a527a00200186217c9fe49ddeb3053bd568b0e50e0046213c293286481b42a78b791a6c33d08e1a394840ec75e8a8b1e3c667d15becd8817268b122d82207362003333c6010c2132a1265c28d050e1883704e04c9556a3dbbb6a904e88a2c70e4408020fc544257aa93db36afd06053d3619663870e188160452625213e7b120003108e4e0d79b7f00f9cc89e4ca2c4dc4185fdf0bacfd7454999d501a30f8ed957d223c4ca0725bcda49d42c11adf0f4f02db94e09c61ebc56d5f2943d6b6e3d9e617af02698cc7433f331c63c8c3cb87db216a935d37c8416808107378f4e4a9b9bae9464430459980160dcc1d3318da59c661325c534d80e8e2c668ca0c6e1d5a3402a0c3b6032aa991a5124472cd578494a64c764b9475460d44177f74821f606d1c1d7d4e1f6b1c272d8f6b600630ece6c4ad2949bea6a39c19083974a8696aae823a2c66e801107afea44d0a1c387ad908101072fcca307cd61940c25186ff05375525b217d30dc40b2495dba81b470401b5ccf569512c06083af211ed164cedb297d30d6e0c4ca41dda4aacd5d14861a9c9c633631217ad27f8b30d2e0fd5d89d49383ce22bb2fc040839f4a7d180d952248d0609cc1ed5fd3eeee64036098c159159be431b5876d0e0db63a09b479004619fc6b8b2c31ad8d788f814106bf72cbb5bff9c79918c6187c4b9fbc47ff2906378785126661e2ff726170ed5e6278f90d31d460f0335e2be7ac549ef57ec1ed6c3b0f1115459fe6057f62dd662d69b154527581b1f0b29249175726eba562d953ee1112835c702e9dcc9a33a6376a78a0460e1c3b06185bf0622b7f7908425bfa681b6068c1538ba172299198ddc1c8821f4c5b45b4d10476e0d0420240808105bf2a5d88cfa03664f4afe099d2a7c6739ae470c0a940c0b0821bfb576486f441fba5ed071855f06c74692dc9f2315403830a5e3e35e93a7f4507185370dd33a38ad072b72109430a4e8a3d29d4a68bf0f1c942043a144614fc8e1ab285fcc95e430905d77487d02989c6104c4ff0dd26a4d6ba0d61f539c1cd303974c86c2da554309ae08898ef3d25c98b64356130c179b9905f42ecb8cd298c25f826eda40427854f6961594a09194a82f33d62b5c52b48f0640e1794cb66cf999a2338aa39d84cb64aba3dc508cef5a70ca94caf958714c1539a53f0f59366d95222f8e923b32ece21b81d53ccc1cc2304ff6e634e268275be1806c16b0f1d975470119b0f08ce8bb0ba94424e945a307ee0f5763a35fee36b62c1f0811b2ce7203d3484c5365fc731307ae0459a9324c9638a6b86c0e081a3824ed731679b18440c8c1d782a267d65dbd3895aa386d1f13370ec385b87a10347c4f423a6b7d26549492c60e4c0771f11b2f68a75a40a0c1c78561b4c83995da810ba81b76ee13fd496ba381ba0021836f02e0549a5316bce112e1835708467dcf67a0e0d1cd9154c09313233f03a346ac920f4b9cc0f4306be5cd4ce7316f3cf2906aec5ecd2aa5a31675860e0db8a49eed39e1d0660bcc05313177f21e4024f6cc598d1b620a3985ae0850aa63e674810af0d0c165c5a2277d6ed2dff195a2e2b88958e076698c72a3cdd113ee8d2d4252a0855e1a6f0a4416550329ad60d1c356ee0a801098f54988b1578a0c23f3116628bcc9dacb8458e1d5bccd822c7045cb8488f53f8a78377fd5bc7742dcf146e4e19b3c32595c9424c29fc987c4c270f7f7890c2f5a4414fca36f3b1478f5194635b8c0ae7233451707357faff94896f048f5024c46a4bd073113c40f18d599cb4f06d5d133c3ee1e8c89a6542583d3ce1e814d382964f2227357b74c2150f5b2266c3dce4180f4ef873299c7b2cf56415b2094f484cf7bd29a258a50937342c7f5b664fc2c334d8ba33e1490c6a52fe3b59414498704ce833d5f726742a0bc424f0b884932a04759f49ea6109275d8967925e7a54c2cb8c96435d969cd26dd008f2b6f81c3960b01934822d3e478e6f0a785002051e93a83bc64a929c4c3ea6020f4978a22d5be6df20de62de23126e6eaf3e8df78dc99490f05fce33354d89bc917c8467159b94b0eb5ed9ccc881a31470b7458e1d37906af159204239761475841b1a5205d5723d1ae1a579f8fc24e1f519d3e019397668513872ac07233cf94b413387d0229c9819640ea75684e3a947698f5425c28ff94310e1a50956da3d8fb2f038043a66e62a8b76121922cb62a2ee2f8416be7cbc6e426442d558985dba33f1200ae7d6f351413c523d945af6133a8f40a0a2c8243c34649116038427d43bc504751ba9dec2e30feae187f4e8c3e2f0e003ee01031e7aa83f5662d090ec929206a31d356a6881c38c0045c0858b11a01c07802478e4013df0809bd21193a6b0d0b883871dbc901a83b44d92462bf3a8831373f6305e1aa2c9853ce8e05a57d8c4be6bb720b30349600e7e0c4ad5855c172b215b83b5780678c8a18d6a2ae952aa11073d1e70706ea22821b3eda4e61c8f3738694c79f8d415fe17f170839d93522a5478b4c12b0b1563085faeb525283cd8e057787fc670b13f972a8b2c4420018f3538e3152a548209078ee2a106377514ffcdd698dfd428ea8006646046033cd2701e68f067b64e5b0a9fba7f2599f038831f693687ef9719e14938090f33980be45186f420831f64c335b58f8d068f31fccd38371ee5108367235347f5d29a834ef2c1230cce66777ad420be3c7880c10d72553aad86e491af2ff89f42929caefe377878c1191d628c39075d1741d6057fb4c8c710659bae372e7829ba8451324b877aedb1052fcb64340f32a9c3430bdee7f2ecd1b4c88c2142830d8b47161ccb14c4c2f9e9d55cf2c0822fca8487a0b2bac818b2c3ac031e57f05b544c9373cea1dfa369f0b0829bc44511e136236236a9193caae0a75191e635759e74a1829b426b92b1d23d854e784af721748c060f293836b13addd3c40d1e51f052cb7a4abf1c74d41214dc2ceaaa652932424ca7c713bc14b13391eb839af91c183c9ce099a6082ade64a412930770e478c0193c9ae05d6e7351417ca838a10713bc1a9322369b0ae5e72fc1797ff5b59ad8db51f55082a73c93a91472c7b6e09104cf549acbd6d5e7b16411f04042418896cf7767e1eec0e308de8fb009232d6dde98e4010f2378e13c975509a522383fb1c5e23cc35ff020c2a3745f9a86ee91076e7c0476e0b021013263070e1b3aca24e03104279a86f0a5fb43d9c508c1515791f699218d871cb2048f20789d31843ff517a65344091e4070c368bedcdf41dc47eff10347c8d0942ca9c40a1e3ef0f3a6182c46ebe07ea7470ffc94ce4275d0141e78fa3cc42595378f1d78c993dadb6dee107cc5c243079e4cb9cf3f894b273534c32307de6b36fb28e927387043d8cc9f4f6768b0e9f8168103042043000298c002b2c09103013272a01d2270400e076cb1a3c60d0a905078dcc04b6eefa2ac6466f28e870dbc2acb9b72e88a1ddbe3518336565ca6a8070dbcd024d223c458e9e58d1939b2c88298bac70cfc5422c5c6b694b2567944f090815f977fa297ce3c1ac6f588417ac0c05f993432e946eb2ef80237e968961944ce514445470d5302e4e1023768e80dbf3151d955c0a3051e2c20e83b25977c4e57bc588517d57f440eff23de8463c68e1b3872241168a1c61178a10a27841195728789ddda0e1d356ce48b54f8df3983a8115d1f5ea0c2eb5095a35b4c2159d0e5e1c5297c4bdd495f95882d81a12f4ce178d41c938e94540aff6408e1b5ee924e620fe10529fc4f3f95dfeeababe717a3f0b44b7df298331485574995cc16fe6328fc9060e14184b02d9f040a47adb592f8988e6ca64ff89d729a4816c44a3a114f383925e4cde9b34751994eb8a9b27912596d6dc20b4e781342da0adb49dc4aad81179bf03d5ce4ccda273cde41347108fb4e16e95368981c8f74ac65c2113185eb76ad742663c2371b09d64925c6d9ff792a78710973f1c2122f2ae107f526f4dc89061b25bc20ec272559a77e53f762127e0a3ea23265e369a424bcec184c4373d8589e0e113c8d12a019366aecb8218219280f043a7e027759bc88849f31639be6ab9934b5b7851790f047859121c33d34d81e61081b3c788882c0201a32241089178ef0ef2a74c97057a154f984178d30cfa9cc9b336f8c70a9a183d9f082119e32d5966945f26c10d941bc58849bf409f7a45728bc50841b738c1c6c935a1159d2608bc28b443821b5243ba5de4cba4a830d115109cd558200070e1a334e068d1d352ca0c3860d180290210001c810800c01ecd0b185044650c3b34cedc521fc8c49468efd1e44cc691a6c6b88178570cecbeafadf553d96d2f082106e4c699a638e1d222cdd2f06e1ff46796f0bf76d9e7c21084f33944e29d4f4abe75e04c217212d268fd1f541675e00c231fd3166e8ff1251534078f107fff4c8f05665f2839f5b36c7ccdb39e1451f1ce123c242888b2e317ac1072fdd5c4b6c5212934b5eecc1d7740f3286a472e94bcac00b3d78523c86ce102b045ee4c10bfade44520a194665fc020f8ebf6cc9b61f053081057ce1c51d5ccfebf953a895978eb1839f64ca9231465d2feae07c085ec9442ed92989e8e0b74453a7513c73f04288eaf28d6c569f9183eb3532525035d531c97130cf6b8df010c1c13b15dd7d83f3dd392781176ef04b366dee449c77e8dbe0c55f89ddade6b09465831fbc72ff880feaf2ea8b35783a585baa5bfd8920acc30b35f8215c701b3d239a994c833fd9672b26099754872fd0e09a5f8e5d93c363787106ff4c07113d079922cf0569e10001c8b8e10001c810400cacc20b3378e92ac74c8a1a2d70e4f8d822c7045e940191d45a269269c9e047c91754cad030495e125e8cc1331dd2893bcf89c1d1b17f54eb3723bc088393a38993f431c3c353c0e0558e5ca662b35f705ea28fcc88599709e2c10b2f389ae5622b565017bc993753e5a5e2244997f0820b9ed295a2b7fd680bae56a61f4d17518efd78a1054749913cb2fc8389ef2ff0220bad012e3e7ee0c8aecba7e6b311f3853f7ce077321191f93675d8257ff0d103cf368d2695924e73637ef0c0d3c8754925e57decc0bf49e22d528dfeb3ef4307f89103fcc081b9f8b881a31eb3b1c4a3e954efc3067e4e96fd4755fdc2057dd4c0fbed10a53726a554177ed0c0b1199d3dd56c8d84cdc70c12a9422c2ca6141938daa76a633a4f93dcfe88811f5697f9cccd3ac5d8070c2cafabd3d62e2b55ea3b1f2ff04bcb4e6492c192748d0b1ca99e4205d5d7eb79fc6881f71b34478eb67ee1717fb0e05671aad854b82acab78414353a6a8c0abffcb3444ead602a8ba7f044484149b84f3285aba15b46463b47fab514ce5bd698144e509db62df43c0a3f87b74cf5f311859764679031c58b69da9c202314be29f198322189e890010a672bf8976996d0959a11c8f88417cb43bdd56bb81fe9b5273cadf2e26b1bea0473c236619a40199920a9c9db8da9766b84f9eeb5cb214ac811536460c25c5cc2b393956a29524e5de821c3126e8c8f98629a920ecd55c2eb8add3163da5b38254ab8296de579930dd9d4913109df83f7acc4086735960c4978d1cdf386d295728e9e4838395adc45885944b40c24bc0c496dcae9fb47f0b349758ef05ac49652395d284f4f233c8ffb950b5964849b9964884d1a492bb2456c2693c46c4c635b654d445fce9d16f4abc75a013214d1e531912266ca8fc3066f9110ea4438c1a30769f5a9ab6f44f89392874e72ef1bb47a8832171d906188b222a3104a082fa558d66222e7dbee0cc237b126f2db6808f6b620fc362b4befd123e34e81f043d2f2db580d20dca4d5aa325754d166f983177efd94f65f4f61947ef0df23f5c710aa294e7d70dd2c420efb30cd31890f8e68cc5fc173f8eeabf7e0950c9383a5a4732725d2832756829d8a8bf2e07985eb109e4e3cf823fb4ac644f20c1bdfc18d1d547af1346b41e8d8c1491bdd52f0f748f35e1ddcd299962be53496f529820c3a78f731b75b881874cf690e4e540966da2fadb722075fd547e9f1b41e972b32e2e0bbf8670c2944ac3f950107bf2f5fc7fb796f70f27f67d890252a652ac30d9ec7bb0799e9c96883ff255af16f22088840052a0a32d8e06949b5cc6f1bd3aeba51e36d3c600a32d6e06d4eef96bb432d84758b1c9f450db204196a7042ca496657f5242d9634387e72e5f9553386b7c840832346b5a9b9ba96031967f082c9febaebd850139ac139dd6fbd415ff4ee4b4619dc50519d5c2b95410637fb94f62cf197742cc740c440c2602ec0e0a68c9643cea6f40567cbcb3687ba5fff4bc3e0d0c25f20c30b4952d315195d70d3dc2991b2c908106470c1f7d18e58e179ace5da81c386047a86d940c616fc2496844650d1737b87caef4086163a0b8d85bc829b1142aa4f8f21993059c1ff0e6a7ee17567ea2af8a19516fa4b4c05c7c564b2b87b4d1a0b16644cc1112908f91a213989249282f763d6ffb659d47a48141c9db304972445af28ad0c2878427895c40ceb13dc8c1ef6dd499677f06438c10d1f4c48cbae136e414df0732513e3253e82788709fe87b875893986124a4b702e7cfa5b11a622dda80457e5d7b2284d25c16defe0e184fdc7e91c24b81d9eb292876ead982378394cf44a53732286bc115ceb4cf9b2a59022349f922565c7abbd9d4aade9fc2a96be602183085e10418f06a1d3428bc73b19437044929a72a8a44a1e568d1b2248810c2138b972ee2fa52e97fe938c207862e5bac234c6201fac800c20f00fd807e642460ffcea964d060f3c0db94ec7042173f8ac8c1db8122d96a54d860e9cb351a75a63847917033272e027cfc9ae822499938d70f0658a8612177303475a2ecf9252ea90f2da609990bd2c2ed2d5067d4299c754f1410765d4c0bf4bafe93f5dd537790219347072ea30b6693b36722d63062b4306fb326280326050a985682eaa23325ee0751255495d3508931c192ef0930c95a4edc342c34983ed460d96d1026f3362ba90b7848eced8a2ccd8c28616891990c102dfb385b6ab94436af33f489f211b4504380ed951a3f4d98c5c85935cfd2d25c9a1c1a64516067338c0c6df70e1c2c6e75085a3d147845442e74bc14d851f7489d6f2284ab9e65051a89455ea46d73744306304354ebf88710adf5df2954e226948df3185a3eec4463f9d6f538a087494c28b2d291f4ce6b0003148e14fcca55c840abb8b163572ecd0616379c78d1a22f0408dc2a370c4e70eb2548376dca8218210a828b294932d123d5242e199564aca57a2c72a6ba34689010a7fb572461acbb2f8841722c45d97ae28904088e1095fb4c57ad2d56b106274c28f62ea5407c989c109cf22fc6a2c4be99de9189bf04390e173f7bba4126a0c4d385a9a41f5876a111ac6c8842bc15b3de928e13de860c28ff93ace736b2e61dc856491b4d6915cee4d6591e1333b871842c512fea99139a54e8d5109376c9a5c9f4c5d50ed53c2d3c8dd36d1ed6388e124bca4268878ea6ca7bc8b21094f6d0555f3db58be55172146243c75418f484bd5174d450259e0c881801c3b746443c2cf9494b03c21440bf20827478a4f9f518038c22bcb623aa92baf51312e5c102146235c6d2f1df38ea0c69921021c39661cd41188c10837a7cee6a2467f4c1b61b870316311dea5cb8e654a2586229c583256866c316c0a7122fcd698b4afc26588b14684673d2147720f1343fb1887304dcc66bf668a61085773ccfd1e351d28c78e8443479ee9d3d0b1f7347464033230c362144209a1833841b85515a425213b81f0438aa89129231b3100e1cddc6c699bfae4a9e6d89162fcc1c916da22418b684951991fdc283a464e27c44f188b591fdc503a5ade603ee9caa3c139d2450c3ef81f4be72d2d12bccba7c156024423478c3d781aaa3e495d89d379263562e8c1530db38f51fe4f73897623461e9c3ba1d43bca65b4f4a308d0888107c753c99053a975fae44127c61dd20e5987a383b99883b9882107efc2d8954ae11871702d473eed77499c50a31870b82204adb63bcd98b716496ad35b56929ceea46f7062556cb8144ee4ec1ff414c470831b7496d5a4b37f8a4db5c149164146ecd210c660831b3a43d497dad4681b1d2882186bf054c99816a71e6e6e4956c31e666117b2e159772a96216413fa3cd59c63871630889106e74a8f7daea4d7228b1a2e5ce0a8c18118687073d494eccbb4f945089fa11e1561e493eab077c61608041550003a381a2043001eb851638b0f64c3410c33f02dd92668acd8844d79774f9943b2aa249a1d31cae05d4e373ea3215bae540c32b825eeb6a14b879a51c7e066caa7cbe03373212706c7af267859f6910ee4186170d43a8434913d67ec281a18fc0df3184b4eee6424ddc0a123012e5cc4f8821f92c56ccb534e0c2fb819b639535b4a832d461738179bc99d2137769a32d266f49a9021d5a5580c2ef8e145d3b6e7340331b6e07c7aed560f590b8e52b34db13e27a1ee7270c8889105cf4b58c89b9ef48671d4b88b81058c7105fc1856b818553017547035e910d4e7bb6042fd185370ae37d8fc8720a3149c64f2315cb274ed2f8982a34a8b241524060a6e50154b9ab44f19822401319ee079996904ad125632e980184e709476c893d32925524ed9e2c657204613dcfc166bf27925e55389c10457ecee53bb49ce62c45882774923f589efae60aa184af07288251ef2c730de3f0d5376528891043f3e09df0cfe69c6dca1030a3190e09ffaf3cfae41d3e8d801e886032610e308ae7f8a59216ddecc49e546f0b2c3e796d871d9658d510447a549d6e4d1d6a204e806056210c12b7d494d9f9772e040000870e058400d1c0ff8a0b1a38605620cc1f7b3d0585ed2544ba81543087e564a1756c573ac9c0f82633a4e6ceab78f702a163180e057d2e91e4ab3d8a7f4077e0ef5abf9aaa5c16f6adcc071e3cd79c4f0811754cab9b5d2c538d578e006b261e36918ed81172d74e8548d8f729eb951c3468e183c70a45874774d2f1b49663ee13033b628336620431d39dec61b1dbc80183bf044f636497532c5dc2e0db60ce0c8814c90810dc4d08163f2e62a4a5c55ea528c1cf8a5949ad89c4b6a160d9f0162e0c09115634493d6dcc08fe1c26c7b92a831a9165b2005b870a1630b0402172e62d8c0b7305bd19208d1603b375e8b12a0dd0229a0c68d1a0c40d3b10502411e20460ddc9494348fd6ca0c2d3e0bbe22060d3c65a72965515982d625a10fa4c5161318418c19f8596e77bf29372e2939105a043a860cfcf794abb025945839cdc8816306da8d6e408c18b8966152cc505a45a4120c5cf5acc1345ba9ce0a63bcc01ca3a7ff20f376d404315ce0554e8da02f55724d13a2458c1678e265264352a91a3158e068eb5465daee557817538e5ab336b7a6a20ac7cb420aa6ae2309094985d731e45783de526fd512043050e19c496fd37e4921a6b045801f80710a475c2e7511bd1552f4a80d18a67024a44d59c293d49634ca318304e8c65a29fc531654e86b870e11e498a1a34693c28b6fcf5ea95372f8201a3bfe014963c76b915becb884318a3ed55d363b3bbbb3a855b5dba46468b0edf807b8704163c78e5318a2703b63f649a79db1db42c3ecf82c66645123c78eceb14347289c558f3c31f257be3141e155dfc47065d79e2c189ff0db825df64ff284e323d13baec4858f31305a00a3135ec7a870da33048313985da97aac2453b58ffb4ab2465baa186ad2e02c72e040400e1c0f70e1228b1c38920d606cc2f16c9e2b4cb63919fdbe010c4d3892a4448f1c3a2d6a7799f0364668d7a02298f06b3e88f994a59d64bd84f3171e6b2bba8beccf12fed8478ab49d477c6895f08476a490ba431257194a90adc6cb2489cdad04f7b2331d22e6501339ba3026e147afe899994b9f6f088624fc18b1c5d343be2a1d851109bf5ca298d2a139a6ef20e1ca5b69903673f6a581f108df4c6f86fc1e92ac091de1c7c8d06abb1ae16bf2d8689d3d0c46f8337e9d2f24d7b28cc158841ba4c4e47935a2885fdb9583f0a2bf782c5dba6e8382705c4efb8402e157c9a06e828e00c2b710417c4bfee05f7d26a537a476f8fce09f325319fd4f64ae481fdc2c63e14e9a7556890fbea73b51a3457bf0f25de892183d781f749d0e4b1efcf47e153579f2e60e1efc4f26d25bccbe193b77b8fee5c277d2d8c1ad186bcc536b10aa520737cd6aba7cd3c16b093a26f37a0e5e8ffcaaa77293edcac1f997a0d7921a073f944bb25b134924c1c1512374fa6ff53b15dfe0cc8b9ad031d56e7093d66c9a26d406e72d965707b1c199d341bde7284293d6e097cc3efe12a386a35b9d4e679a34f821c75ca23c253d2a8306c7bf236faa66ff4a3983a7b444b71054ac76c50c8e8ca6b790e132b8497b67909e36d665c9e09b87b63a5db3e5eb18bc48913f729b8ba8540c5ef5fba5b7e8498617063f2639a1dd23d24f0c0c4e0c9b33e5d0f08eed0b9e48baf2673a69e154ec05c7f4a5742ad305dfdf4376bc5bb6ac980b7ed239c9124f65514c5bf0dc3ce611a005e72ced63664d96f466119005c7bd3a49f68e62f52f02b0e095c83107a5fb2bb8b5c152b236ade0e95275be7d96f2e92a7877a13244e79c96d25470aecb7f94db5370d4438a11f2bba591570a8e66b7b0aade55dadd286415fe848227b426999a74874cee096e4a7e0d1e628acbde3ac14d49632d7dde18f4b64df0f2756ab767504a54cb04d7c4842d7d99c1e5da257893a486aae839c69ca4046f4b9db08f0f1a8250121c4f1a4da51c8304278fba301543940939829bea32bb3ec559ea8de0abc5a8f19a3e59a7089eccb141528c08ce6a309b98224370924ef9bd3f2d0437e4f3a46594888938087efb474922a340503387507fe004cf9aa2de7248ebd407cea4cd39a36ada03cf336a64d9a4a4a4241e3849e8ec7c21660ad9ecc0bbd1e9347f858861d1817f7d622bda9d03ef6e641cf83fba72e54a5dd9df1b7829d4043d1bfcccb541328614740e536be0765b8a398a68e0a810744eb75e49f63903bf2c83ee0a42553e32702695189bdca5cac21878eb21925221a7a435070367446467cc0bdccc339ab2682ef02b629dbf2d704c8fdce79cd2ab57890016387e22a773d32a3c4d4adb5bb288362155f83f9b59234ad4ff930a37a8cd1a6384689d6350e16b68ca8e31c7526a730a4755a75a8ce4aba0620ae7c4626d6d5f0a5783a749da1dd5c44f0ae7cf822a8ba151f8496d46f194f2650f11851b6d54e4989c24d524146e88d6d6b1427cf43028bc89eea9a2f127dcd8e4216db909fda927bc0ea1b14c6c90a1cc4e3849fdd38f56edad2027fc4bbf19429cca79c64d7877d23675763b19d684a7554398097f2b6d0ccd91b477869870fb4c9c770aba84e3b2d91a2e928e156409e7630c2b49a5124e540df55921634a52c23f69c13d4dd888cd4cc28b8f6176914e4db048c211e9d7d227753ae749249c543ab968dce84e6a4878db79ec42e54b4aa58f70eb924993963c47785d42e5fe3a1be19cb2d0fe253c731219e1490c6b22318776788b70def4a7e8d76d71db29c295dfd4d13aa51cb47689f047cfc80897d53d2821c2cda6d51d720c6ab37408b7d2e96441795aa890a9e22c78c4f214c2d55c41a669aa876f08e1751ef99c556383f073f0d71c23f2c7a4374138cab74787e006c2ff115742f68f5c0e01e1c520c5bcc36562e40f5eb4b193a06ea3e5ce0fbe65dfa4adf52253cafae085df8960226daa131ffc1a8b393e2cc81cb307cb84d72991a4073f772953993c38aab62d5255c4c27870645b74cae60e4e303d9a397ad492193b78726d91b2bd3a3839bfc8e4e1fd992b74f0fe35462a2b97cd2173f0bf2a457b53b1c94f39381a4d444a2218073f3ce8afb0905c3a70f0237c4c26326f70fee52ffdef06d74e3be9798b1183d786b253628c146383a36f84feccd16354aa7c0d7e489544ca5b31377035b8f221a5a64cb27a4d9f064f5487a432c69265d7a0c1d32297d2e5d41af3cde76750c35f857710cde0c97c11446af7ca508b8a85dbaaa5f95c5f9c0c4e08dad2c58da4c915e4637063a5305a49db57aa1817836741848d4f0c1a3db3470b4036caf7c0c3901069b5635ed139e767ec781a3b66ece9b05163070574a083a3017501078393440aad129dd236d62cf02ff8d77fa744468fc418cd7c837bc14f327dfb376832bbe0a81484d84c2ad825e5a75520330cce0527afe75a4b59b288343953df82635a72b6a4428285da0830478d195ae8481b836bc1ff1242784e39a42821e85970e584e90dea1346638e06db8c1dc8033970a4433b820537c65cfa42107a3dfbc8afe065304f5b99b265d16305bf5257d6a49dae82a3b2bbff654b1245c554f043f49f9da9e553f0b457d22226c726294975802b31a6d94983add30e119445c1d32f6a41e5361ffb7ac78d1a39b42050f03307599362cb3d783572ecc827f8f2a75e444eeab54dacc3099ede14cd3169af096ed2c94d04cdda049c099e8a49f796ccf49d54d06e097e4577151da76c3c2534d8b25825b8a94c79bd88a46182508e943970ec78e24970f44590943d65dc5d1e098e88cc55d5a7f38798d5e14770933837616fe153ac911bc1f509d17b745ad1061a01b2a1002f82a7745035d358de21441a6c1ec061033de0011c369c087e7d46b253cff9109c942696854e6127b324062e042fde2d5ca98d2a93590f829feaeaf9ae2e568c4b838d2cc081e08b12ea444a39a98e6505fc078ebe53bf8d371d824bd828e03ef0b23d880e1791e663f4de7be04dbe4c669d5388059c078ee8f02c5b2a887faa77e08428a2525849b2162c3af0b47c778a8b25e9aa1989c773e0870961dc42b3193af030e03870cc94c44cad18d4e6066ea492967466c65ccc36026e03c7652eee2329ed015e032f926b84a46292d3c0b7f718299688f59d637c066e1a15fcb5422c4d06fef5680a61539ab3ff180b8f815f137cee2545f8ac0b0cdc20ef27b16b2d5736a3043848b0a313e02ff0b247f931a12c77255de0876cfeed6af55ae0a620ad37ddaa574c190d06380bfc9269a722e243bf67d926f0b10abf9429699e62b2703deb508597f328af0bffb67de3c0910ad7820eea2d44519a2d4c83ad0e15fee5525ea2ad33a78cd060047c9cc271ff3825323595a44de187a48f90ff2bf48f5278a1b5ae29cf99ae75ecd051a30488146e522fcfa0ee42836d14284df79ab1c3a27062b02ddbd6fcae3945834d43e1e58bd317229510b1bc193376e8c04163c68d1c77c507287c1ff1999a3653894bb261a386025cb8c05103478d195ae8d04f04e0c3131f9d1041086aac033e38f1b109d54491275b6598066b261016627d30f95b95f9031397c84c3eb2bb956bb67fe94bd731a89d9670737f478c22eac4985623a5193876dca8915820000159e87812b87051030a1f95f0534493d43e294ae01282a847d0ce961b11f738a529e46bcb5427e14493b324434352ec100d3e24e158a7b2bcda236bdd7291f082ac18d59fc279181924dcca99661e7963b48994f0f108478910937495b6b81c7684b791b5be73843f1ae19fa6d818b4ba2564d10723bc5af5f424d2e74c358b30a488902f9c97503a5b7c2822fb1e719d5b646ad890807d24c2b76c72d71e74a71e51c60722b89a4d59d9766f89be21b1b5442c1fb0877063ed849cca9495e88b800de15d8894d431c68570f47f6e9325f3a7a0fe0f42f827d99476daa88fd1fc18845fc9e7f27996cf585f163e04e1dac6d2f094a2ba7be823106ed075c18300a1fb0727a8f9a8f5979445bd0f3f38c284a92ff17ff4c1cbe165b484ac41400404c00772b6b89c8c79aab58679764819992ae322c4c6c71ebc94919593de242cc76c1ff0a107df62259557625d501bf4910727565f9ffaa55c6ff781072f3c6df624a774a65e77f071072f89d2a4215da4b80f078eb3839b653e418b0a0b294a0e40391ec075a003f7269ba13521bb79c418ed2cf7a04eb2f8c608cec1ffe0339755b496839bb3b4e7943f82838f383813725784305e76e3d6c05181cde2030e9ed2d69edb54529ba748f0f10667f4841036f5788f48f57fb8c1896e22bd62f3a790fa2801bac2858b530244c37cb4c10bf722415ce624c9341f6cf0738788ff927c5a29f9b1064f680b991b8bcf93526af84883692f612d54ab5c2c854f419569f8e7030d4eea99975132bc1f67c83383a7594e6c7288769d1f65f052829d3093b3b0b3c8e05af052a7ac3358cfe581f7c04fe0015a200554c0858b53fe1883eb3d39c47c91fa10c3b9f808c3b900836761c3481e5512434ccec71736d12a21b1c087178e7d35227988ac4629f0d185cd248dcb7604af35b53fb8e0cc66e7a819d6738c9c2d782e69b28d560b9e6d998ce1d3cc82973c368519551e4e7458f04cd327939aae3a468806b7e5304847594ae0e30a8e5c274d3904a1b3a5d50a9e989818d3164106bb3eaae026254d57cc6659bf8c06cf38399ec68c3a037c50c1534152a970229aaf3572500046598d1c22303bc0c714bc08161a520e424dc08714bc53511b629d06f18f7c44c1ebd29f0305b76ad3f805df7c3cc1cd9556aae23e78940bb7e0c3099ec4f478b3d520b67366d80b3e9ae0648f0f7992a7460e0a80e083095e849847a558c8c7129c90f3680f36df15326ad5a1a309f0a1043fa5a7107936098da0460ef471e3230985df5c0c12fc8c79a408b9f608be2519bc523aa9113c117a734ce1c2c420cd2278aa7229711ba364d2a50f22b86943c7a9e5f0d3b93484dc6c7295a849eedaae34b91c175e52469f85e08cba77b4ee7c04c1ed18a667e33f6b96fd0104b7fd7afc2e6270d890808b52f03eccbdfb9a7474018b2878a584d8d0f71a9436719b8005143cfb526935a6da8e143c366a58209780c5131c91cbbf6a563d663d4ef04f27b9edf88b2976ee085834c19f0da3b26fcc1f7e492260c10473e1a43a993445dcd49d8734b0580231c78ce6a154552660a1043f4388fea05bfe631acd92e0a4349739844feed071030b2c90e0e4bad4554ae62338c22d5e72d26e1f82f580089c1ab030827356b15e3d9245f02f35e42472ca76d8a881002e60410447ac05cf21c62ab37099d9f81a3b72fc0374603104d72a85bbf1f12cbab334d80e3a671cc042088ebc283131899043021641f0542cd3c52cc543129fa114b000827f9736e98a2e2341a966042c7ee09d9022bdeb4ce9b4312c7ce0a44c4a841ba52e83450f9cf0c15debd2e424f4c50358f0c06d13961a848edda36c2c7640123999490358e8c0d1935ff27c9091903434d8c80b2c72e076cb259d458ca7660b0e1c955cb51a336706fddec0cb125287481bb2ba953670639696fab0571f19c4a2065eba68d01c35d96b8658d0c08fcd994e45eb0bffcfc00bea34c385778a192203e7b2e5146e53875739068e0e29d96d8e25e9d50403bfbf47a95ce5569fa617d89a44e702ff63e7caa03dff8f4a0baeef9a202c58e027919963c87a7fc8a255f8df3105f5e923a66748159e5b6975a5e8d993faa4c29129237bd458380b1f54b825eba9a295b03442e614cec5202753f8973657504943fca2a6144e8861357e1d219f6848e1c68aee1ac94167c88cc273cffa181e262b6844e1a41c3b838af7cf6842e1db8b5a68ea0a28fc8cb1c3043ba5f3c6ca27dc5225824c61994488154fb83188bf1699455ab64a271c0b298f55f4a4e1acc209474c847bdba04df8a32fb85b8a213d6f34e129710b723f328bf233e1a8cb1ae5260775428209ff8492da69b2a9a4e4bf84339adb9218557fd17d4b38333a928a31f895f0bc44d66c7c645c7c4af823441675f6dea1de4fc2ff968b397c661a914424e18cb8d71ca4898bf6904878524474958c8184a35ad4f88fbecaf21fe14f523969f8ad6cd33ac2997477bda2b13daba4119ee6241a3bab83dd4518e1ddf69cfe143a628f16e14dc89b953b970ee9a208df4272858b9544f81faa9541cda5ca7723c2bbf3acf1b21ec28d39b65267af8e511ac2b3ac9aee94a75122eb42785922f46c12b3b14784f0d427f398a241f849b9b5299508c235b373eb6007c2cf1bf9fec50384a7bc255956095ff1876374efd80f5efc88ce19434ef3a03e78a2366714a1e783df351a9673bf7bf0d2c64dd01f5b6348560f7e3a7db6a1c6cd83efd972be1c556478b67870356508bab2c28b9aeee0ad6612c23262f215d9c14b6742cc488dd6c111d144524adb4f85b4d2c199649644e8a43ce75ae7e046914f6953580e5eb6b235352f5afd8d83f7de91cc2e88cfb3c2c14dfdb7ea49677f49bec14d692d08d5b1322ebac1c9714a79fa206253a66d70cbae2bc886f813111bdcee1472ac9cacfc3b6bf092d725ed79ec32af06ff2f5cd2e0e91c926870523adf102d9c67f092de1c82b81ecd174d33386b21276db27e2ec12c8397ea368d6786944a890c6e6549d3969e31b83d2187f4fd27f4c888c1b568265b5452bfa9c3506cf4bf902283c1f90e2d23ebb291e22f78aa25d365699870a917dcc817df32425b6913bbe0974af3370b33f62372c113994648b7a46dc139dff4e01e675ad5821f4d3d54b3645e0f65c1f9703e2958ce61c1531fedea34e6aee02953b9960f3ae6a4392b3822a8546d5b15defdab82df31f6192b969e6d8f0a9e666751134b8cb2f4a6e05892ed502773d2fe9d14fcfea831964706e5d945c19116da62cef0e99963507092c825d96b7e82571ec593a47f71d33ac1b7530d5a84e79a7436c1bb545aa5a3c9582932c1c9db36da62a25ae696e07c884b1d3bfa69d64c096ed01746831279d1a52438973273261d4282e3a58444539d23f82f215510dd1bc1990d66da3447cb315c5714a1d3f4c9b63fa8a810c13ad55297ad57cb1f219c0ec24d570cc195b7ee0efb2044526e1182bf622a09afcfeef6b9c11541f045281311ae00829ffb524bc8ee196350bae207be8dca5a2af4bf5a24aff0816fe1af4c55fb37b8d903c55372dbc88bd5044b1fc23d3c70b3c6fe433eb624f1b5d881f39f42c8b161ea2b74e0442db7aec88133177a2ce720b902079e67fbab987f2e4250ebb8e2068e0e9d52d05bd20a5c6183be42e5a02b6a60c98577cdabc8d6c8fe9564f15162eaafa081233cc3552e6c2bb86206ce7ffa5c869221c38657c8c0eba0744a92699338cb5c110327a793415b8f1e064e5241f77b65d710ebae78813376aa479f5261de63ae7081bf395567e550a6ab4b2a832b5ae047d3e14dcde76e2010e098009ae00a16f8abe9bb94a57932c9a6c08a5538ca7f933ef5ec7f296ae35d60852a1c1ff9d031b38889f9b321828323155e997a7fac540ff5362abcd1f12682cec14a7ae8149e673621445092837dd04ce166569ab22863f1f55b510abfc4f58784c10a5278ca46ece4ba1b24c07103043728300a2f2931f79aa5aa533ab76085287cd9ec52256eb951a36481c39c85c24b6aa7667d52d0608539a4ce70a5ae432b3ee1a99a4aee1f53acf084d741bda76fde8a4ee8696beb9535270f277c4ddfcccaa25ab189b5528aa4153b64ac09efd39f4aa3a3f87b5932e1e54dbe667117229318138e29af24942cf112decb2921944cca0a4becb2eed672a5914ce33d45db7b84d064111abc801cc8031ec061c38a4a38496d5528fb90e0e17214dd0a4a783a62a5ec3657b19cb762125ec7050fa7b5f2a9509e159270834abf49e66c2ad7312b22e1e724838aa85c8c9e3b5640c231d55184cc87d78a47b826363ebd52983ac98a2004c8c68b20046e85233ccf23735279add4267e0e6445237c9510d4e3edb28211bee50aa3c1a3780ed9089045f82392103b1df48bf488158a70edad7e63e6343289b41589f0fc4a672c153a64fbb3600522dca05310c25456f88ad1219cd524b2694d4f22c5c5105e0ed9b3244b1b29b3b7a210be67680961f2c90a42f841c50a510d1a84e7be595488ed27e31f41783eb9c356c4fb938581f054597fccd0306005209cdf2c6a3ab4938a21e40f5ea5c9c97c176284bc7ef0d44e662b6d6b1f2ef1d6b80c09218afe6c716d9e5ac107e7934cf3ac53d77eda83334a23c9107392c2480f7ea54bb1c13cbf97260fbe7812956facc47b0a1efcde1c6248ad3ea7fd1dbc8f3ed629f998ca103b38fa74d29cd25b0727c59dca7cef39754b876e24a9987e0e8e0e29b206a16acace2407dffc63e49094e2e06730a1479fe0e05b9567d9e60e2a53dee0e90ecaee83c684db0d9ebea0d46788e96392b4c19f170f22858f0d6e8c534207714942dc6b60428ea45277d4e09b3a8d41268db09bd3e0a83321d294d02a4934789931c3a409a66ddb33b8a9e7249a36759d53333862d2f885f3a04154066f84cccb241119bcf79441958f63f0d3aac5e825469dccc4e0240b32cd7665ce67a130381bc3478b12a3a50206afe43495aae80bdc7dfa78c191c1e72caba60bde759bb098d9d48acc05572b720cb1f855cd6ec113cf9f2b7cd46821d5821f2e2be650eba4b166c11f0df5645d19239a58f07c533a8926248f995770b328a192b695a80d5ac1f30e3f950b9e2ab8deb3a2add3654577a8e0a4d77463b93b53f0b26a06d31e5485d3918257ed49ee4e7b98e844c19f2c218cbd7ccfe740019193b81555394f70627e1795b46fa893135c978df10ae94ddca6099e04bf183aac094f32c1d356e14e3665099ec71094ca352bc1ad945e6163ce644a93e05aec9c377556f22e91e05c9eec9d4547f042d2a6bf0c157a62042fe346c908e639e522789b27cfa90812c10b418a43f06af4cc780421318a42f04a54dc295d4a43744170d46ab4cf904c7a7f40f042fe682a984e1342cefcc01f1de224754bd0e6191ff89ab5657367a6076e50dbfc299f53eccaf0c0df0c8929bdbacb8376e066961843483a118447076e67f093e95272e0bc976567a6efd31e074efa8d25e61b7839e8916016c4e88c0d9ed94c4a58a606fee8b2fc39b44db834706466d19d619c81efdb1b348b5a06dea76b92994fda2537065e5253d9e7531878923a4b76a47c319c2ff0e4b62cbd085de09db62e9379bb2c59d1022fc49fa498992cdf67050b9cf5d0d9bd45825b6cc9a650a9a20ad7fb2c45cbd693aa2aa97025a46833bad29532a1c2cbd952366af90795730a3736bae7b021afa81c53f872b99392a6520a377f083296791e0d175238927b9252da2e9fb28cc2d3a35f629488c2cf9d63ec3a93594d120a3706d3ee4d9667631a14bec97cb13cee4f3831c4c42776be33d913feff29295e76c23b51b6599763bbc59cf0454a34e5a545356737e1b5c46c39c834df9c6ac25ffb99f74a328825139e4c222693a43ec93c26fce45fa1e2d206a5ca4b78e6194b786de983bdc5f55c2ae1e9186639c990391929e124213e7fed22dec249f849c9345b426c4acf49c2fb984f8506e19d33fb48b8592553366b351daa8784977b848a79648f70b3a49c2b42d05a2172846395ed45574c237c5339734ed330c217996ff4895535555984c13abb8a70eed624e59e8d294f12e17f5fa76c16418427643eb50c6d2a061dc2cfc94d695196fafa36841b41c748ed563e3617c20bcf2a1d73e5b09b108e5232a4df1b8fbfa8e4eee4820271301689c401711085e089f50800531308001040228d84a2d15834d13451fa1400036336203e302620221c14128e47228130180a8341c1501810068242a15018180e88a77a681dc71e2374759e22491d3c63947175de6aadf17878d6008bd392f6e71ffa895b032504ac734564d3894ac101579062a36bfba498bc5d8df538298b814322d2de6b679a2646e98ddf5863a3b4b5cba7d969afc1ed9449f75e41a82e4870360b384250aabc1e6716677071248b57992e4f00b58e30982b5974e7b01aa32b0d187cf0389eb466754a5a1cfb6828ca6150c6665589eb050a7c44b1e64feeebd2d6356e70a4376c112f5a391410e8bcc543c0bea87325f069f796c7619316667c25e0def1971d81305226fa72f546f601b3b6aa6306a8dfaab0b0016c49d288c18c0a2705fcb8ac2a20ec290af6b89b7465ada7387fbba713a6df3c8c4455dc8b4b3e7e22f1ab6a45b0fc8927f27207836215b04f534d3f59d3947b9da3aade256dd9f3063d651ab828a285eb466fcb24ac3f5daead975d8c01fb963d6193181425420e6492816caee6cafa4a43c8c94d9faf132832ef0aa0a492375c07ceb4899f07c7e6814271b3161e6a1c93a288f3ab14a68ec6aa24ed60beca2e4d743923a5d88902a9644cdf463dcc70fb51947b26de13c88cc3e84ec264e2fdcc6f2824f21e62289c774eeaddc590d013700c29162a5702e8a5b6c61db8fdef1b8a911472babc5d6d88fb111b26fdeb32fa624d12ef9aa50ad3462f0d88fc4ab9ceeaf99876f29622f129908e412057778ed153d06098cbd101ef379c00e49416902059a25ae3dde3235b617a682a952ce527ec52d899b9ddfa5825280a69532a7a9e6aed9a5c03a274692ed15bb100e4d36576fb5b1f232826e9922b1a16d157b318432abad4cea12d913065f85cd32241170d20b446411fde0bee083597ca0c57529a52d27499bd4fe5ccce7c4c77a7e0a3109cd399a20fad9123da5384162b1f42983ddd70514fc0b264798a2d287a2e3616513fdb7203a5b2551f0f96e80a2d055786cebf0f2b0b279f48b2d4864a50f59e47331f73b7ec043b33f3a7ce9f37b3542ad1218544135a9eabc3140ad06805b98ff4207de8a716016cc81015537a3e2cdb8e410fea1a9fe966f6b415a15e0ecd19310224ef0a6bb17d3b318a2d7d7c0a66c313120bda6180390f544b956402ed92459226f768e8455f073efa031d6a17f09db91433a026cd14ffb907dbcb53ee04eec6c029abe6846ff398d29e508aeb4a178125605ea40dce2d0b800c9e957448ec740ebf27100abf186241bded61dfe361713f9e36cad566da7255f756cf0c25ccb58707e7d9a7d23f3fa62499646475f2155d29fb02fbb6d629143947e0db42a24397673b3300789728b8bbdb9ddb747a1fb99afe85539864e8566ab7d47fbd7ad7a85f1482a7c9dfb0a40fe15f019f38e253da8684ef6972acde1930b4825f1f59fd3cfcbad6f0ee563252ce46d9aa85d348b068913b1b377106893559d135735051271ee2a9d715a8c9c32686afd9f92999be1c5594a84a34536f9a650d35a5a20a39b0e2077249e5a3d4d978c0dd344502bd83dc6866035e932eaa56c1f9dce39abdd94363a2e22518c1604d30f68ca71a2ebbe5acba6cfa00b8e299a65bb76e35989089d56c02c058e2e1896268dbdcf4a847c9c33bf06f674b17530725d98a648643a79c2e087fda0ed9cc5b8643e4db50d5ebc4ab1b06581db890831625acf4bba0ca5097e6e0a6bd4bead3560d0090c6947c00895161d101221c030f18355e276804e7714c8c2086b23e82cec3901b8a20035249dc2c0717673565722e208d358529c443a6f6d5222647edc2f964a353c349bde5110411f6a0ac01227f9e47dc492c1044c8444f76394fe54859112bd68fe2b569a7577aef63d56bdbb24d8cdc6cf6644f43a26c7186029e960d032e3dc4f840d96393da9700cec79f566befe016da7aecad835c1e0ed53458281d339218e822b0ff0b24a27a5c6cf9fad556224f6ca659d28147e151b87b742127a292a7fe464cebcee80678fa8f718290f4212d5bf64bf6b56dc08189b657cc71943af7cd5990a3c260c00fd2b015ebf4e4163afa824760799158feaa0bcfcfad23635113fa143b2cbc7125867f4f9ca4062343e0c7dcf46fc450d29f518b9c9f9cc97c9a6831ec47cbc60c6fb29088d349f4bb14b8ba80b764d21450219bc9640779840abe3bda182b0259c42361e7280a14d1737e512faf302e9595266880414d4bd12db31888e4a84fbeecf86153df6ae8cec8929b3e978c53594c1192f3b773beadfd6954be995fbe608301832b7ed04c732eca0e524ceb9834502166769514ef496279a4b72e8dcb7094be9c00cc7d83044cc012cee78941653e507ccb25cf2a237bd65e0d2eb3e1ca4b2a7a333dde746d94a2b689264a67d57fda0a0aa64aba2732839700a2f660e6f048abdd74d346dc165bdd2c4af49e73ef50b6765d93466b13fc6751e217a0c74ea23a5e77c9d4fb5a1684809ed97194f5e516529e499246ff3c05de8513499600c89e642033b81eba1d74876495a654aa67e21e03b7fe429fc36e3e16b976849278cb2d126c0fce0d6cd157a5800a9b7686ff3ee2070a23d23c6a266bda8845b60f5ea0730db656144ec6738da46c72d28e0bd37e970a1517338ddad5074f1a1275edc0595cf49da8d0a113e2eb3da54f15cd3d588d195494ed30aad44d812377d1dfe82becacb9a1278916b187cbca4684abfad80c7728325623b7e004bf0f4a157bd67a6321e19b7487ca228abc19336cb55887335fa627e5c3e60d8e6097d811be762a44d43eb7c06be5c7e750106bc573272f821b6fc5e43ff4f13ad74a9da129e5fcbc6d1161bf90d0e023518b2895f7d944da0d46821b975c6fc4f9a9b47ef4c48beccb8f15dcc1f42264c1fb2c8b579045b67f0025c9b428cba515f932826093d5b77a4f1b72a37a9f66e71dc30adb3800ae386a0f2287fd280ea6cb1fd853cb45188a3445e32f26a3577ff65c2f65d1eef0f53127f0678aef948586fe688a77ac574c9202cef9fb668664d728b2e1795782d78c29f82b3fdd7cb0483bb3c3f5179545ce5154bfbddd9b99ae9f467fc7d1bd1b64afa5e5936359e4ca2b5e53e21aedd85655192c9ea5ca387dece7b5a1e0acc04295669a22221da584768a90fc3ccb9f105b9b208cf066b673f022e2e789f9f6b171532a465b854b5a04bb4786537d56356ce68c85c5db263902532ca11b82a714f0f2f254308be0ccd794965a8b43a5cef12797fbd07331e7865ff537fa6ad8db61c25208bc83ece2b9ab17e3dc79f34c56c25a3211f46d24a55c330589640bce5a9904f1141caf648e8352171ec3eaad2514dc7573236dd80395f223d748907cb5035235ed515f4155a577ce54498c92a7cf55f2fcc17dfcb87013286933d39d593f9560726a566fa98c83ca8660b308b30417e8e172d714b1e020d0498bd489a0a0d89c9450a21afa38e6309da70bfad976896c4acfdcb970d06151460cc5bb2cd37f8f537b0515625509851066c6b7e8d065e638c6226d9ef14e89d561e05b978a2653e3333c8b305b27aa55128de2dc15f73778604fcb89bc18eef12e522eb8950687bbec63b579618a57c4913cf9b556ca95b0cd9923eb313abb27c57cc948e8a86cf2ee589cd744e68a6895067791bf1239fa6ffd5c5c13c3a48e73f3fe9dfeb3f629f1a5141f8d473b7e2c3be2eceb70f61b30e929f167db8d260630528d3bdcbb085b300aec85f225fa0df2160924af546391164c167983a3a0625ea5ae243216d1a894065eb10832920d10f3605f12dc47fc8a3319e7f5749c212fb22e5fd84dd09a820ade08ad940d19e90a6d612bc8aca608a317d602618a049bb0f0df102565a001d67d4eb1e3a0cd45e8497111b05c6d2c311529c162b3e84045387367020385d4823729e96e47dd741558c08781e45ff8edfea0a1ea1faa3bc49746d8a17e03c3c257ed6c0ec8ae639b9f3984b5fcd96fa870a828d2869d305a169c4d4477be45747ba82f026236e8f35150cf508b5f977b9387c448ae652ed0a97c6985e12d17ebe80308ea01337809f6177e7da218a5d0914238e295a43cd9121cb9ddcdca81519aba030fd72748c92b8f32cd7af0715e0b359d6c689e007c2987704887374dd011b41b97bcb94f0446db2c7a7b601b8ad995d7c0c97c917cb7d0367c5708bf3d3669dce7d894aea3377b0bae127a3adf682499907b7a5192a51afbd800b1c05e6dc5c1d1ae12a7ca665db726916ccae2be6a6d3038b9a62e95910671ffdd8c91dd9f51276c58179b5924ff68a8736ac047ee83a60db6544161086306646cf0d7a430d2e78337ce570a0b6b3b652b9e1dccca891faa58aa076202b7c15c710b40f9a4982ad63072ade0276d076585aa7baf9b026dad6bfb60e4cd0985dc4f70c1413d57070daad918304af30b50c29edb545115ed6a23e9982bb641bf2e3bf351b28e43416195b2670af9679078caf0006f46f001964afd5f3b112490234bb195bd02517ac2a5946ff748949f1c181e824d0dac03d35afb0d7b68f880289e4d700871500b095250622b7e45b69bfe48a4632c06021399eff67d468f83047846e7f14cc7f4aec3a41c89a974287cc183cfd30f12f2c8df32116fd3f044fc1aa994807d6e5ac9b0afcb2005aa29649b9b9c5511feffc74596cb8d7d02f3f7e4b209172921acb60523435f296b5ea827185d21f25a73c5704c7018aa0743cb378d4b690565ca21f5ee950d8095f6716f226a9e8e6a1ffc9eea249c4d82a091a229169add00e5597825206d40a58b5fa59cffc2caea9d46c8f3ed3514143d99f36b687f6ea02155f4863a8deab1c45cce05c875a242a2f4932a5491d03c408a2a3cf15b1b997ea6f5b2b66469849712a144076af224a79b0a7dc80416f0b536dc5a1513ca69ff432c8a748ae301c4f36437b3e064420444e21cd3595397bf2bd18428d9271aee3c3bc541b8d5c2fe3c2644cbd9853aec77642a539a9e658068f99e5e58e76af54869a7d8900b5e94322ee0cb206eff5ace6564e86f10eff260d65b461f89a74a0c42c5f2ab1b1d454c48972064bf522acaa7f84560343d92dcfe568bebe24f9cdce1d0b3650d8bdec32232b47c7f426f5306f0c813a1835c1d3f7d824ecf43d909dc37416091713765bf8a3969be9f9028bacf09d31452d1a72f7118046500538bd609f5eb96a5343c05c51f502de1500f923c122257ce5d5d1a4b9e79f7ece1e3aa8f9b9abad82faa3e8dd10d0951bc95922c56a54a74554423a3e4694ca025f45891f91bd87f8240005e7e358f61460cd676e0de823b60038f29984db24c7524c7f0566a74e4d2f954db1323c28a01780a49ab0efc3105825827d8f11150d32311d5a0f8a79945c5201983201e611455abfadd8573344beafeb300ab95dfe80eee0b1ea6bc15bc666c79bf5926fa3350f33aadc5e271f87d6f933c5a4954ae094228036f4e868a838fd7c5cba9cf5f3ee45ea7ae5e6d4b4edca7b620b558ba4a746dbfdad4cf529015fe607c7b0feb11ec3d807897b9674b558688c4b41b52acc53e8fde4ccf9bc754d07e86d37fabeb3eb2ed54c72cc0e7fbc6e11753edecbb2bf798c36d61c7d73e262cbabdcf9f2dff4fb9581f7fbc57fd8d2a6c39eb8e281aa4453bc74e0304be6d311cecb6a16e60e8661b8466dfcc86d80a6db278377b5b2b1b5438fa96f5e9086219d7aaa0556b92dc043365e60af4fbf5e24576a611082701e13c46a44a047e9df6a756e3724febde722d3a12a50fb4d50450626f716c8b5772062dacc4a6aa09d03c96628ba6c0b4570d71e509c6c26c17fc318385a0388b17693dc938736fa49c46e61087c7d315f2557dab563da7a937380f794cd2bbb5bf046957f5584726a84ad403861a3409351de2390291a5aa197dc13012bbff55ce1bfa9fc883a5d8fee734db05a346d8b55d0c47b4be54bd783dc74e02be07105478b5936a4db4a40d10f069ba1f8593499d4363bafb800fb8756eba535a3d6cec033cfa110f375bb79a64cd4d0eeb274346a8dd1655dea891653b604144a87fd3de3322feb499c6e00984c536c59b3d9da32cdc25d8a37591f7164cd35d27f29580099c95a2969e5320f4e53a48d4bfd2975cc3d1c4f9904be9155ed7aa5136e080150bb937c023ba953de07d00c1410fa8785aaf5bcc3e8336f0a89c782ecefb5d29d9aca934b1cf70d1ccba83425340988ef89494590ff7c1786669b71c86dd5371bc3cf7d0255f10ed604049ecfa2d74b3567752053e602369b7c869f2839ea177da99c1420905b3831e41dca6f3d93aaf4437576733aa12da000afd35d7bc6304ecd87cab2d3e1a309c5e4627d50eb20d8531290dc408ecf305a72ab2a744ff8dccb5ab5775bd3ba1fd58a195b429e4afe010c3f614e24efb3113ff03fcfc027d0d351a6ea735589e42355b43bedb6de678eb3dd767b95d8b98d1f23d635e2a8442c1bb398a8316622fb0e5b00bb39214e19e84e03b78752e5b7fb063c5e32650d624f6e08f845e381bdf30f52f39c7063d83f438c2010ba78cccc14041b2adf7bc5d1d43c9c8615f89abb276adfaf3b8357ca5dc6484158094a8fb7c7974c20572419e1f7dfbfbeac089e8bf7e9fd12943f17ef7dd57ee50cdcdb4c785d5389226283a1f48bb6536bc484ecfc6e67a06dba5d9192807f8e81338d52ac608b235d80c36c9ff8f4e073a4b15e60f75763ba679db3bb1091d2486d1441875b2dd47d0d00fcdc75b50d4623c3429941b22f67167311ead8638f2d9c2473b84bd498c5ac40fc11fba3e734683ca5cefb10704d39ef9d5ca0020eb24b9f8989986b2825c3ef2e38a9dad18757020c1703edef92805f02502b10cd1c48c04987b5f60d833223f47704a27049854344adc2432ed67858664024deb37109fd90c0dac3624596b48346840fe03052aa34145df1a3effa6d982932864f3e007ccd7e4ea345b8df0173e2d01a8038945c4e804063cbe59e39f39841100fa58209aedf14229c15616772c992dd2a24ca5f7103bcf2824c90e9abbe3ee69f5ed9ac8ed3e438f9396a4b499660f0a9888bee43037d57576e331203c32dc569bbcc08e7030c58a93442408c761f465875a18e04ff5994e2ffcc829ca250e7bbd36e7727c89995dd6ad41ef830ada3157b92f011f90090a19a6753be9b6145008a53217ac418b14b93839d124c0bc325f205ae78f874a0f7a6caa53d1988e2ba1b8adac2ca74acb6112f822bd0f593d4505f0c453ca7eabee10a79030a22fa400f2dc0790744839e81bf7d273eae7d3d280c3e9c411a459fb3b5423f095f047433acb60f031d7ce53d59847bd5ed0205a4a21ca1764051647a5534a4b6a6b8d1b24341121caecc65a36b3a6f799a7f8ce2fa68f4094aeb53253e2c6a73f400ae5c8050d516198a837b0c4f1dea14565ca39883fb2b855461314387dd82f0895c22aa9650aeb3c731da8f38c20c19352460fffd4582c1cc72d209eae134b551835a73071cb5fbd0578c625ac31136e1883f65bc91d0e43ee9444cef5c0f257a2dc89d3708b1c116748c42f5141d5e9d9e99ca45b1c07aa3d549dbe552b35b236f6437381dda5565f72dc58c98e90cee81886db77983f78f1f77082ebe0842215d9fb8b83cba415b5dc96d2094768e425734be1ea3c3a25f39ce9807c96b68d554f8455f988a8f6fd5ce5a551b78ea304517d3d29c2ebac3641183c2a928a4480b3d2d7d64a887b2ce59640360d099a631401536d1c9e0c26aa72cefba359d10d60cc8b0c7e85681dc5e9ca3a5cbd8788fdad316e7d23448a3c3cd4eadbfa95e76dad6f68140768c4a1dd4a6e562c09d18f88dec120ebc25b271dd3bf5f8265a8fb227699dd559d5f805ee433b50892fa73a1588456249ed98f3e235e9942be14a1d15fcb8ce383c9f81eaede81e8150beade0e407f09b51e0f7475c0feaac150da46d2991f4d4602a66fe19821c5777ca342c57752761ef4196cbf1b4e88e46eb103d3bc1b9e771bede8af1a6e4baf83fb756052b95047bf2a64d0b52fa0bd192d296c5bb13fd02229165d6c870592cfb1ade81fb0990df3bed85c041cff206055210c57d4b0e98bbc054f845671c8b0ee7b65fc35389b5100d968251fc16eb2e9001e30cf84e7f053e11d020fb57755213c5952c0e44afadcdc33af231fe9cc2a6daa1f1df246011eeb26703f158523e18c49c1358443dc208c067ec7b41223052af852d8de618699b61c80c0a287b776fb399c401c5f8fa7ed4195a8d7e55e98dd1a7392c4a46266a54cef7741a42f30241c1280a178a562b34e16f1af809851109f2c80ad5021172e4019239f9ef033981493816661796581bc508abd1cc70fb5d46dccea3f3cc06103c93c044031e378125c48fbd01be0e28a8c2a40631c7d6157b9473c74561ef200e4e20cae1e07b7e8477329dfdc5eade18aa2f4669c2461c36c05ddb055d335900fef97bc6d6ec31f37b13b290d8f2fbe6155e364a6d358eaadadd34cdf7cd79299f30c862f248319edbc4ee53175aba33a0e3e63e9f874d513923e1107f4c7a1cd186ff22abfbc103cd34fdbdf9f772132e9a4ad34792981bf9d06223ca84b159967f6e56327d732220e687a3a0cacbd17807165887b1c48a1bcc36ad5e248ed9a24ed4c6e135bdd4695dc5d6a228aaeb9890b8e950b59d01ba4cc8c3c7e12faa438d3297b5382e5ceb3af46c52997b582c32553081416cd610ac91720348a5492d3cb0b3174e595e30721cc4518d740ceac373d34dc98d3455bdc9cc7859d8cf6fcd37b0ef113ede6117f5805f5bb94230a425eecea04871105a4a3293a833b714788081e957fb35dbc505015ce2cb789087afe50380a505b5e8b935e78c60a502b19778e9133176f9fffd41fa012319e4ef1e836ca29ea15e1051e7a4200e5ea88f90193a4ec46271cda7bbbdcbb8110c9957ad32ec17e23b239dc41fd204674d066a05b1e749507b4f19e0e91ec6bde911447c6ceffc0f6289a9a572b9957a4765246306472a01840098475ab79b85cd404e14913a2987358254d5c6f6f5ffc06c52fb9a3f5eb38624e678f634984522819c53922cb854fc87e9e7096e5610cd772aca3fcd4bf93c240783a33ab78997dc53e8cd90bbb25e17affc90e92694558d4adc2c83aab1b37162e6a1d3ba469b670e04c569720d30b3f8be3cfea8ec721605b777fc66b2a835f14bf415501af87af5f78f005e96c1258702a6a55d1fbeef336a51d6c87d84f55bd151bc853bf3eb1c4eb077f84b7018f213c16be70eded639654c4a09f1cd4cb3e0ac01f1c028c2c6310225e221c2cd28d1e0dd9ff6a625dda46687f55d2c0977c0a4ebaccbf4e97a7330b124f9b938004e2f7f5291893403ef32fa24446e5b1a173a69715dfc46f5448ede61d66c58eebef33b2b0f407a5fd929a6d168e93dbb50366a6cdd5e490fe4a8f752b779eafa6cd5bd14e0c4a8a531a257a72bef64974c7490d6f2e4f51017711b8a5b8c4997fcd372dead3000596e8aec9c021c498f04b5d4a976aea1da88a977ecb460393c9f946b7efbbb395c219cdcf53f9209c1257239f90799168fb4ecf04b856cf5b5e3d158d80515bab10ecefad68a0932013ef6cfe9ac3370b3ce38fb277331ebd73630b61d27fe1193e0e45a122228b70430e97a3a6ad7f5fa45386c68614398721d7b6e387431eeeed45167fef46d99084a51a843dafe106180cc831f8b4cc22d5901d62809a57e4183a1f2c0d445fb0df3a4aa0a490a8157c964c5c43f919920ba03d29ccf8fc4ed86a5073c6d9d5bb480927181a302838d9d434c81192e924db998e2dc423f60e2e5c79fdab307e4eafe512819f5809a95df8927816f913c9001dea3705082b8ff9368f9f73427e2653597c35264f016fded579a934157dc240e499da433040fac5a71dd73d2dfd1cd1bcc708a01092f341bdfc5ab4bc5ec005a441c214e60aa89af4f4d9343050334305499b290aba22f8132f5eff90827d1acca4be3b16a84c24828b3710d1d30baba4abe6718000e13c303f3faf000f4028eb07fdafdc202f088a0502a5e5fc621f04c1ff05c7cf7326a82418be41dfea995f1eb24aa835f229bc4167be71772bc4dcdf20fbc7848e8327b4d7fcced36fc21b9f5723513c2c92972ab4b4504b3a219e943963ad90cbc50b1368eac6301f45e388d8b8a7ec5632126ad03f2d5241d43efaa013b3b14f138bdb2e3e17be4aae282a5bb816fbc7cfa7c217b7419434a51cd067b8758a9aa340852439d04a3492349121746e3f7d1ece9ff5b840192583cc99505e658e1a49aa15548035e9111d9bf00002d89b4a8c75e51668ef8f42988d612ee370556dbe12d1f344c812d3e3835960899bc0e80b1b92046800b945a1a2774d9d6159afc1a41a83572495b02ee45402670f8d80ebf668f85a549582f580d2827db29d0e3505878ac5f3f2bbfae554bde056be8ef8135295ec54fac8307214a2e89ae6513a5582d4fa40410849278c8ccad24b72d01364c7d35c9935a5c5c242516863c54562b07c25a46cf7d1f760343a2ced40381551e5d83ce88018661530820d1c2183465861f98c4d0381aa4f216f8cad5685e00c25045b4ec143c153d1f6623802dc92c3402b60616bdb8fc84fad0aadae28ddd0532e79e54f3af6f3001de46a1b50ab1de5c9a3c429018d6511b10d90a5014c77da1afb202df078fd6c403951927fe56d51f8abc5afb02b77cc3fb9bccd936a4a37c8eb63fd322065b36a794cc7fb509b8c1b001b7e40d776c32006b4e046898911c4e31968a2938035629b962f8f5a03645eae4cddee9a4e323b7ca91ac4fe98589bb33a26074fd5114f1c9c953cfd77101c2ad146e8c53ff5568149d071527dcfae30c27366100090ff92add1dd350e671247e08cf0c939b456c2e9899095d3aa3a278d7892abfec1c9cb810ffa0ce503331f7d2037292d8cf4d7a1a58cce5e337df745da31fada4aa51b8af1810762456984d124d0327b1c8fb6dd71fe02589d670be263e33f84fb746a0ef7b908481bccdb6346113708889fbeceedc78f20f813a7722465c51553295898e44df330a5ccbec311375b1d60b7e1d18dbc689c79928229a9749a9c70c22dce4d5b871db5398c5716c951c6f74700ad7e391d25f1e89a830dc2ce1cc68aeb498eaa02485574e38cb96f63c1164c2088edb0222334516e3ac167b633c0d731f9d87ea88f763e307273993535e08b48424586e582b68e3a1ed21a219617bc827a7577f77f30a8b0b987cc0b1098baa186789b148dabd5746f78a176b4a817cad9624998881264a682947b40c6d84c32a9c5e42b777d7d84b833e0e85c540970e5de6f0c208c845adf07b95b11ddc014d12d1bd9f6acd1e3b42b03786cce8f52a1b7d7d3805bf995c1d94a13ea6ca48d083ac2713431974b2976ddbe931cd97bb9ae46504b72eebe0112b263393a57db277c436bfcab3305600df520208fc3ffad1db464e723e34f3f15e34ef02fa37c1bc9ff9b19e6742d3c4038f487b1955b451fdaa45515d6f82a6e654551b4324fef1d6cf2fd00d4ee6d2d6098d0493a22d52d183845e0a76488e585dabafc123769329e084978d509061f4736f01f3d18d248099304276c0fb9758fede7cb851eb75669531d11c3b8974bbc7e4b894f782041d44f168998d71a4c0c0485c57129004f8707848de9c5ee465ab60a4dd9b9f78b0a3a22399bc2af2eefc52b61bd4cd693d99f46fa0eb623e068eb13df5f222d3cd7fd9c3c4744262e28af6e467263624e58259be041ba93684e5c9d26d8bf281a3052e0d94b59d41968c8a09055d162857a4b1371b9f3ca88124a72d652d9697a46d330d1b70ad8abb12b140b769506cf06a11e8aff851aaae900549aa1509a0be3e61f7273904f4c12ff8bf9a3e599e23d222fca1f76b84f1e2cc1d78bf4e3824fb528e918a82f4cd5e79d0a00b720eeccc89ef6590a8a42014fe945c2a23196ab20328e29409c274467e8eaccd29eb19df4067413a9a31c3f60a46e9a2033ed5b0522c2517879e5bed2dd6dc5dd5d12f2f33bdf083e0741dddcec4b6cb73bd10ab517d73918930ecd6fc441d23b77418c2234551437a7f8a5e78bb13c0de7bef615f6586d73d7036e2eb2df8cce97b9d5a588eb8a724088ce28eb3616abe5698f026b99a911226f8c64c9212993739402e3485d352284dd90cd95748ba3b423a576863896f4c1a586d46fc306aac1f2d29bef448eeb1e1117d0aa4867d76221279a1d388a14831fef87e82848627204caf6541f4344db98ebd4d9611a22b2afb8c8aadbfc0fc46222280d950d5c0a76d9997517c966ebd32ecc08d5c0f48c72f74fc5bf3632385a573ea99ed01431811dc0710383f1dd65a34e84f65f361c1ab19cc0c8bb8c43abbb36f67bca254ce6dc27ca72b6a050849d59e4afc1f7fbe34d1664d45e433ab55cb2c42a07927e496672241952a4314e5b3f40420575a4821c3cbdcb467f1b3ab31c19bb47a102bd599427e97dede312f366958b87b9b5926d0e110f269b2afc8574ce80d91be6ca1632b17787c40bce6e18e634ca04f7cd66f1e2394e563a2b5820128161a329a06a71b1401a75c8318e5ca5ce9d68221dc5ca6fe2e3cdee6da209ec772b95088547865b33309fd4e104c256316ab0f37de5b65303140ed4dce388d85e6835ee1f209741232a3d6e83e66221e667a1a4245e4bffc6ad0c0e68d1a9474f6b52eae4b8036b6c151a86cb0759022f22140bf28d63e1c4e794f47a03c00230d0821790fc50d1e29b5de10fe06282a20863cd761cd59553bd44be5ff9fcf3377e2598b0f36a6062e5f6040f64a57d1d1388f26d88e0c73c3cb04aac1c907a2ad837d233a5db6248233aff13fa69726827877211a23f8774b80ed9343885bd6bd7fa24f5249e70555ff5e0179b15e22107255dc41137e34939c09600a6fecff49a186f360774e66fbd4c1aee51737245c3dac975b94834f9713227e46957b3740aa8f4619e1ffdd43850f8e8023db76e1e637a13c9536db206e8b185b4dd52ee8e07981c15258baab79ff1dfe061a0a76d163ab621400b1879a1e5826efd62dc5c42165890d8df3e0a1b12d4cdf0e0f34dbc98378ebe7971e5019b4be215350c6cf511fdea642c3b3ea3cf2439eeb41b612b9ebc304606466feca19317cc163eaad5225cbea52c695376e25f6c9dc3a086c0e00691842ec9c4971ab273034569f972c9f3911a7971d6ce3061c0e94425ef21d4b8f36075fdeac07b96244c88c619fe1c1e926dafa038831e2f8b90d381a79c6557ca6a34db582301c080808eb7424e9fb121ca90254c20105e9fa3fd05a9ce0f4c09e6a0a89f71af5ffc168dcf0f3418a8e413d162271804086c3e13c99a526ffa14acd5ae2c5078151c5c368ee5ee32bb42d08dd28a150993f954270ebf24f4b73ca940f1a57c41eccbbeaf106c6e019620568d1911fae951f30752f61d6546334123e5628425555492087ea765c91c14b636f145cf6bf7dec0643a5ee02cf7a9e10168641b57d0b1550389d2ab431cc698cd3b5db0623fe4390c61c96f9826a8015ffb1f818eab2352e7b8408a5436d89204c2a2f80b521668d924562aa17789f6476f7587a0682addd1cd10dd6dd0cae537a41ffc5ea34edbbdf0ad26181301bc6cd4dfe9ab04d41da06fabacc96815096698c648b63140dc8d96e235c344f27fcd5f79eb6d01cb4bd3dc6e0b4eca6bceae8eacb558ba0c8359c2e286b55061e122515c858272f04982ff01064ce41b5120c403fe0713fdb0400e2ae0d19992e854af6545be5d701425578e601ea6b0b3811e98bbeac564aab8e4dbfea0423df6c6fcb22c5e154505791a104ea8f12c4eed260e6b8d10fa0b36d76b6cb0aae4872af1ff309e7c62fb8632b59f9e241a4a3ff46fc22336bd4d83b9145d31fff49ce8f947289f27ccb945e016b2ada52488603069fae2178de8512b45a2060dc6422a5c0b806b233df8c6d4711e6c90eec2cd1dd1df1e56a3a76d0eeaed4968354e2a01b0f95f5671d1c45c6dd9b561f7147c42a5d3b2a941b4f3281a4928ae6de6b91bef5ffa788015300c4572d2139de99b294a03835674abe613261738199f3cb65224cdd7a839e684ef70f70ce977d2cb415a2531398647be5174c0c5edbaceddc0dc4be336a011652de35d5ad3d8d8bd65da992e3b007db270c548796821d488626d67315bd4e664a46539e36b184bc529f28642bd563b3414b29055912632e7dc3a9b7a9c3232937ffaa71a9ebec09404e7c0df47760f68245dcf6c42990380da93de9cf4b999cfb0f42e600ed2d5d09df9c46d491e1b0061e4b8141fc30af98f2b5f0cbb606fad17cd2c9bd5054b830206e7b972e085225c9d2b7051c8c660837d19cedae2a7ddd17297a12382114e2948dfdc6871a5b19f6809c7739653667e12f5026ad93882fb601085d124c28eb36f840c93eada11d143ef4eaf7a6f819b8a69bce9bc0b9e54665f8bd2de38d3a92d472cf36dfa9ae3958a27355e825a627d2c4cc3cb877d74620ab0ca2d5c404937ab2bc956c74c0168c3023e80aa51dfa37537dc3bfe3ea064d45ddc0517f0232871717f182e342561a4167d03c168d3421e0b87af022d2a6323fb0d49288791988a5ec749cf71dfe2c2f7bd827db446c9b02e6fb05fa666e71d41532eedf50c56b2bf4eabd908648b09e13fa35b9d0ebc4afdd51bc775d1570ea9c3cec48e39b730392886d1ca40ea11d45ab9dc391516d800d8dff390574c0a13da0fa3bf9743813dc4e8425d7529da13aca1eedb13035396bfb772b71f984eec80cd2e10a78e825abe36b165d9c2dd179434bb2299a7ca69a3028d8371ae7b7ea213808ad4d1df182ed427afb0c8c2a013043d5c4c07ac8dc4415013e64396eab862a72ea67926e3758d8aee02ef2d96d1c214112e0e4903c4d036131b3ab81b15e967e57229b9214f5b5ac4e510bafa98e552891c3ee0d892328184ac08b9b000960f2109bc92193dd1e84e2e85d75ae39a92d25a24c6a8d1c53ebf2723205900d7521a3d485fd61930f253ad6f366875cfbf19d8f600027b6216d36f68efbfbfd5f65783960c6a833f4ebbbcc9dac910383b5b7f110d5fb6a23939e2c6a3d9a40bd08e35ac548e27b0529ff10b57d592a5d586526952d35e2d9799279257ef93221fded1989d148141ac8d2674cc06cd27f252189f020c74439340aa0112327644f5fafadbba09f3563ca2cd30aa160becf39d844381f0b3b008587b6412b5157706f7ef7046513955c340a415a9b0dda0042bb1b6342939a2cdcd44c4387c6a16f74e957a18b7b9f6d019dc3f73fa1c9eabe630411e9c49af94e898ed91e6d99c6d590de3b24b4b51ae823943435cd717fb4d45b3c0d2134ff0418249b9458d2185210a350c20e9fa9495d419f5351773b719e6b4cd213d082223780467dcff68d6fc6fa5c2440770d36445dd1bd48dae980191a0769a76c740505b8b3a6b927963fa6d52980a4d3e931dc8d8fd32213f138d4c5fb08651de4df5964770c69822d077fcf57e0b1101cc406e245817f912b9aa3868744286e3cf93cf28b4b21871d6c7abf1653fdd6927faa90fe982940bd89d698210ba96e2c5c640816a29b252c983c11000cad13b98560b9061040d2a0c38f5d4659ebe85a514e8e80e43f2ba96fdd995d55876434c819e9637992285e5980787646c40a40d9e10827de0228b7930ab9793f428b0e4c86131718ab24cadc40af0bf5e88d46c29413b67543f7f89cefb28ae985ea658ab0f38d9cbfac9f4f66ee5a14bd7cc768c7dc61824ded1e115facae4eef1dd4cb532f31ad02e5da9360bca3ccffebb4e2437662687fe726e79e2a4fa196f357bf41b49d0691b3240d5f256f29ef25e3195957afdc633fe894e8bf1a235d4c4dfbc9e46debc04b58ea02937116b789c8c7582abe741a702fc8a97cfc4290397ca2529d37eea59c09827e958d2f116833e25b39127bb9785846f99b81d4ecd8ec69a98bbca432b40f9222bff1f9f7100c8846b386c502efa113d9f5794249865c7af72eb37167bd4aec92a1d12ea2bea0ec9d15c2318b0b2ffc5d4385dfd5e5e252676290ee8e95fff021437b71a8ebbf1c6a2dcff141f76aa21abfb96d3a73e7194610914ca651425d9b72deb021d04bd2439a9f3f223a77f1ecec34db8c86bd1cd8b0b3a764a1393bba43ebc9ec876772425f7ac0d7d3498dbb5985dbfe9c925916019449ec3c3499caf09490403ec4d5ca8728d323270824fe5e31c12b41aba0e87e01021e8c4472645412666e84a7925038d38ed83585de1976e942bebfec814adb0f152acf9758254746bd59325b8f2471e17cf520a1d0c244804a69279ddb97396ce6de216a2c0ab88006499c852aef16959b33ad3d9717cc545c1955942c149245f28b89189ebf229fc05c948f5109bfafe90296822abdc4f0e226cd91ca31058ab7d9387428e42a12b8430e2f22ab4c5672d859f80a4d03eaa6f394001ce2ac9308c5b0df5067fd7df4bff805bf0ca8a92d68896cf4459dfb6ce32963a35bcb0d79722fad587b1f07cbceea6645e567e1aeef3d5071f8ff72037a2a58afccd7c3473be64ea32a00ff240c014977c64d9788979965bff0f80cf85e68269d945a8937b1235bc60060088e2ca2d15c92d2cf5b7cc394d3b0d3d74af3f87fa496425b8a6070eb1c120352788c0ff428830de09553e3668d2f544c83620d8e1792cb1e74c8375b07d0bbed592f62b14e304ae8341e602f33989618179e05aebd52ead97514b2f00cef531041601c907727741061e73e75a2d706da6a0fa624cd4b6e7e0fd549b8804a67cb384249fbdacf0b4038d0019004320ce3265ab39e5f85cda2ae746b038ae94be3a23d6054efda9f2165ea2b74c8a0fd3ff1317c9e8dc87cfed4895d466abfa63753055405b61bfdeb31f2e58f001b55b01ea1682573c50f024c301f3ffffffffffa3eafed70862233858fdd636d1cd762b3621a54c64b9e33bc8de610edc2c32a594524a490c2a751830c4717ac779f47b365605420540051ad982d1c28f0aad64bbce51280b112d18f54b1d4f86ce1d45ba6418cc558fce6ea164a38609340b6695e2a65456e1b3fe7c6344b0603af5312d8fbabe242d16b982c95d5b0af7eac51f44ac80912a184da4ae0a1e74e774e511225430aa342675be8e78089129982ce9cffcfcda75ba162122055318ef55b7b9a8f6f948140c223c9b77147510225030f74b3ff9ad72224f30282d2a88cfa75456ba0c224e30f9b7ea15df7a39bd8e3704912618edf469b3f459735b2ba710618261369414d7a2f2d4a5449660b4bf9c3a940ab155a588124cc94646a74bbd9d0d7474e0a0f15c1c15021a4492908308120cff22ea5fbf2247286b6ecd579c1193b72f54a7a4527692461ff38818c1749f4fbe279562092245c008114cb31fd56c250dc19c7e59c807f11282e93656a6d43f0826a15ecc7b79bc4c9103c1642327f5e5d5493db5911f18dd747a5df98d8c612cb1cf51873ce203533ea9fb47654ba407261573bf56699718467fa1a9fed3290cc3eeabf8d5dbbdb28278701f5b4476601e11cad73c8914166314d1815943452d5d992e9203e3676fadccbc8403f38f5e2d645dd2eaa206c3a8e2c5bf6d4e6ebafc85415d4daf8ea9466e60f8932a45211abec2f0799ec52b6f87d51527bf1c3bde3b06d20a6fe335dd66dce63cbbe5eef89fd24bbd006185c1c37794aebd96fc3eab306c4b99b5a5775518748ab23a62e5541885c7f28aca85d9bb1015a6addc61f964cb90553a85498590a74ce53c88294cea3a88122bbafee4de05905298b45b94bb399fcdd44e0a83b6fcdad2b2a3305dfe982d2f4b45619e4ddd5b17fbdba4190ae3a9afabb9fc81c274ab45051d5306f209d3565c21b2568f9e30865c541d6c53cabddb3b61549e443ce9cf5a67bb34278cc2936f88ba0e6fc2a8b5e6e56c975a4d9857dd29d9f9947f0ea666c2684957745e735de2c22c0304132619b36a904bdc476f016209d309e9359bd22dab5c55c2787a4db59254a7ea5394988439eb56c596fff61d1c3c66d8503aae03209230d7e50e3a98ee110e1b2d98c1450d1a3c6ac02012cd8e7fce8e6a67254563478f1c0d098379699195f9d921c5c7c60c1e356ce4d8618f30c90c254f4e2faf8c55c7e13183870e5522208e3076cfcc4673f6be2e401a610e9e845c251edb8d01c208d3aaaca1ec5b4e87cf1661dc95212a08f9eea0fc2f40146194256efe5d9b0883eba43e986c4f4a4599030411e6a0c23bc8bfeb1046d7b129229eeee5089d210c5a2dab9deebcdd97eb4298d38665a9e284bcf81584109f7d143ff9396faf44c35ea5b39520cce2973f0815c4745015904018b55bd6b1b3ed608000c2b0a99388ffdcea3f56903f98545fd47a72db3cf8ea05207ed03eb05289f2bd4f82f0c1dcea2e9fbe9c947b30788aee2b5ae26c3dbc2f77534b46903c28f2b2aaaf56182078b80f1680dce13e5c006207e39b942327b7b3b8a40352074d9ecd97d47b80d021730b277741674c54d24997ce41b903640ee6b05525da541ee56010b71cb36e7ed64688713069aa58d2d9755ccf0d110ee66c8f57c9ec467c8351652925c5e80fd10d261d4b86ae67a95cf609b10d6acd3e25b50911d960ca49cb727f8f1e9b21e21aee03d560aeb02aa5e81f19652f621acc2a8fd0d4a92dd5ac068206d36d694f525b0bcb96e4331855c5eb83d64a3483d182eb970aa3bdbd2f5806935acf4a4571252483296ee67d8979fd3b71e2188ce7ab52655dec1cda9528068352bfb552d988c36016ca54af529f955299c1050e2e66eca8b167f8011030185c761051235494b64af8053c7acb2ccf2ff48241e98a9d3da76555ab264817cc2d467b387926e24690320cb294f85815845cb80f2d40b660dabae44a8ff0b560b65391ae5597999c1019065715c42c9885d4cf6b51b72c029a694ffb5e4ac660d459568e9ffbb79d7a9488e13e5a1286fbd00f48c090922f18d5d6ce0739ed0ccc2c4630c90293043c767081230319c8c27b6c200459e46941e28522e9823907317df1a5b60ca3b4913a67df923d73b9603c7ba94daacb42946cc1dcc1b3f6523e6ac1f4ab2df7ad62659d72900c839baadc1f6fd54ca9300b26d1d302418205937675cd6c59a5c35fd406922b184ba9f04253755a620573107fadc49f1a7179c42a98758a78ef66dfb9d622154cfef15f86924fc2a32a99c27da8440abb024914ccde2f3b27f5f9a87541c1bc72da4e09b930273fc198bac4c2ab78d1ad7d2798854e16e4c9546d5da12698626c7e8b2ecbf25f33c1b8ed4aa9ee8f15b43a9760b6975a76cad29f774125989279b9d22962949992606e7d4a5f4b671224983d69cbbf142f8cc9cb114cc9b3984bafed52fadb08a61ba1e2da49b908c6fbfcd059ec86c7ab4430f94b5fa154ce8e9b1a824159eedc32f5cfa9348560ec8b215c873c086635174b2098554b8bde4f55f2038397d619a173a7191552fd423286396c99d6515a2deacb55253e307a3ed5da9a5369c449253d30997dda919656ff3d9c2a11c3f0215dea7ddcfe767d1886d56254e82084be8b9807e6a092fc959def0eccf939727a6495e8c0dc155e492d556522c981515443a6d09e7f252e072438e8cbb3e2b9889e9cc552e7fbb726be4bc030cb8e4f717bf46f9feb0b63c9df107a3a8a102125b98129ff9efa34cf7b2642af308deb53f3ffa3882b4ca3b25952b1dc3fda3a88b4c2aca305d3e26a3a2b0cf2545c5523abb80f154454711f9c0ad3c7da7a5b7923a2c2285a4d2ad5f2f4c4c288a7306aef98fb297ba2294c7bda366b94588a1a4448d1ab4e7a55f8f60969f41947466194a25d77c81021aa28ccc2736e476ecb1f8884c22c950c17b75b29264b1a01055aa75ac166b6ce8e7c623d61ba519783d25a27292eea8449ee8bd2aeffda1a2d27cc3af5c38f8c902e5317d98451285342a8204278a80983a9a0d248268e522dac98306b17275fd164eaacdc83c825ccffe2df4c3e76f29872c412e6f952ed386a54655d1e442a6112adf67dd1e26aa895120697e22ecba27c2393307787d751615411499893da726117e38c44c2a0ddd20b2dca5beae60809d3866bf7143c1a46e411a674a3e7e569b3cb88234c7f59ca68a79e8e059146300217e18a385cb03b913aa789b84eec2c68a8854d8ba3f739c9fbf692d2e8734784b15ff9794ababa76dc431857ebecddf6e622ff8911318441c74815a156372dbf560a91429853072dd4a52453eec5ac10218439fd28a17c343b7e0c25213208b3b2fdd2a24f7cc8cfaf1011c47db420120804c47d44fe600c3d6265a8ac6f519b68f4710a227e305d2eb54bf27dd9c513e9c37d4c20c287de836943bd9c9e50c2a27a7a30b789f2cbf243e57355350f06ff346d2dedb5f4ace3c158aa355ab54b33e5497730e79cf2c44e7a94ebcab483390be532b554cf7a845446ea601853c244add29408113adc47640ec67c192bc554902247989d7230be0eb95a27196b1c4c795bba92adab85102738f0de15552d5c7ad137ad936a1965b6df6a117983e9d47e7569bfc5cf7183d9f28bf12c4fe486a57946a40da6785be274ae7daeef568b13618349ceffffea6b75d9466b30bf7dcfef0879440d26dd514e8ba650a79338920693bde816adc205d5912368308d14e2ed1f75d4fb91331875ab3ca2da1f3398c56b9d5dafd217a785913298a48eaf64bb52af4e53899061c7a0113170240c060f7b25d4c9f77ef5c06018293ba54a42544e57692d1c04912f982bb64e917a36d54e2f185597bfeee89f46054f174cab4fc88fa9df32cca77e2da82e1917cc39a6bf6ef5d4d27a095996276830aacc6a1b8f154765513039834169d53a75dcff176e3183d9438bdc4c215d2aa59e9421d1b59c63a63e763f3921835b3a973bde4537b44deb942e604cc6a0133198c756da5c3af12f639e84c1a4737e7e3b6db67b9f09184c9a32db72fe7d0b9eff8251cf277529e967e205636a2dc5eb566957d14917cca25b725a4a7929d54919e6ef28f2b55eafa85737e18231d5278d4b5e996cc1b4a35ab372fa275a30ab2c7255d66a9a90c159b80916cceaf2a7f4afe7e40a466db96efa7c45d5e60e8289150ca2b25242ee46b5e85b0573daceee5a4589cfa8132a18d5459d7697b25a98ca640ae6fa0ef2b4a9d32d3d3d91c23ffaa5922b0a07b7b09573cc0bb322630205b3bae5a0baff134cfbd2f29b8a977586c80926319f1da494fbc1b356130c428b7ead545f9880780ffbb59f7d0946db55539695bc784ed29828a1195dd7bacb2a4e92606cbdd71bb2a5322648309a9e591dc1a8b25c8c8f173431c2eeab43a8ea15fad149118ce5ea5376ceac9db04c8860ca2ee44ba689f717aa1b09321982d1cc55542bbb279dc60bc144085e8a5b2a6b3ba957336c1c1d5b4c8260569da65da7ac34d4124c8060d64a7a985f59fdc02444886937519fc76d0f4cc63067dd2e323df645ed45a3518f1d7a7b4c82890fcc9e5a5d6edded9ff68061d2039c88615c1972334db46aa1459330b27d15bb421a7d5b9c117c7cec98f0c0f8fae386541e8d3e3dc16407e65c63dae3f77e57aa74b09e89878e6ed738c981f147b45c7d4beab20e8931c181f12ceb9c91ad7595504ec030fee914c44911752a88932fccb26fa3743af91763cac90d0c225d985694b1558b495e6116bfe1f35ac836119ac41546a13b89ab4b4a251d9da415e65cd7caeb54faac941526ad4fd3f65e3a08dd5a85c15e76db44f4aa30a81cf72b2af342485261fc7c4f4a09577751ae041586fd8dd7f5e9e5dd455e84e414e6911997b2542e318579647789d62da5567a17fb202985418914eff1ed90c2ac3daaf5a3b88cc2a854cfb979187573a2280c9e83dcc776a5a5a6b12924a130996f9f88791df5dd4161eef9d0134d358dbe1938927fc2f0a95214d1f75aa7907bc2a043aabcbb521c924e1864abaca5dcf6f75415278c32952e55a675b45f794936610ebe5aa5b8b668c22827f34bdcd24b57bb64c238ea754757495f847e61c2787a33fd436eb8794a720993c873ad7f1b9640620983cc0eaa3d0bad4a18f7474569f956124a9862eb65597a3fa5ac7fc924cc2d2f9ed67f3a4dd62a0963a594a205d325bd67248984414f5d8d47297bf5a72490b80f7d84497748e5e9d287a5ad2413248e4849230c1e75a791bbfa95eea68511e60a5a6a771bb1203d10c9220cff5267d7f99d85521b8d3e2f560dc780441186332974eaa87e6b5ee62e49c47d4810c1aac99d8a9243f4616dc63e4553431c5e4052082584dd870fc2a4d29eecb80acfca5982306759adc553ca9f5eab02618e6a5668d949e4dd3f80308e4ea1fad3df7f308b485159548afd60921eaa7f7f54768bb60f46f5f07b7a3227d44d3e983c07757a2a9d6775efc158db73b72a887a306865a6cb83b1b3b9307dea8307c3fa67bdadcee9ccf90e06713a85b758dcd2a293d8c124cc2bae78cf3b14247530c7f99cfeab67a3564407e39f8e0fa3c296ea5ae6608ea2f5c154d09ff3e71239987374d74aa6a914c7b2e290d233e245a735c1c168717dbde2dab874cb1b0c96333d8b3a51fb961bcc2a2abd70c9a5273359d20663a71fb94aea7af7fdf252c206931a57bab22b21c91a8cae4784ce92a1733e13f3d02051034ad280123498e2ebd9ccd5334a41720683ac69b77c23f589c510256630ace52c173f76761fd30b9232dc074ac860d803112826013509281a3ec053aab2d422041e801fdd1fe7000200c00b2481040060870ef53d120e1d391050811d35729c0404e0085800000b2cb06800160a08410516586081850428f000054c008b1d3bd0c7000270789cf44100001c1e27e1d0f161002c04c00004e8505bfce1b163c60c05600180051820c78d2e2020a40c2f723c170e10b20573e5560ff59deaa0b1c386168ca684d63d2e7f85963a34faca9261f4786d4adaea39a99405a390d54ac758384bda840503845cc1944499e7966362b4b837d48de6102b18ccdf74a8e97b8f6bfe0d75836fa81b1b5205932bbb6d2544cae99e69f451c1a8a54999962c5dd4483db4022153c81a3c128e1b5230e891de9673aef06ac434fa7286dbe8712327101285acc1c3068d1d67c60c048440c1a4579e966a626cc7eb817743e998d1458d3423a9723cb8a8913bb8a8c1430708429ec043edb8a16e1420c4095983471735528f19331010d20473e791f77279c4eae0aab543a9a5638430c1bca65357faf8d45ac58810b204732ebbfd584adf71d78410259864ccb4d3e7ac9024185dbfbf87757988428b5631a458d69a66e003932c3610822c56102147083102e65b3a5cac4387791c366c689181902218944c551f4f7946bc4e081194dd2dfdb4144c335596badb37ee2741c810cc9e55492552e5120b214230ddea14a71af7abe267b938363ea0120e2e34438200047b949c2da947a9e5e8782e6af4f5682db638ca045d83901f18e3e27a3ea9fd5496d902216324fbe49a8f9c58d4fb803db9b3996faff4c068d9b56f980a7388181c128651985c29a456d76539af20213c30784e533ac686de7c7760cea295699da69c6829440726edcea3f7b39487171808c981c9f7b4903257cd455e1eab068d1d65470e1c332c04072160ac955bf62ed66d8d67baa7ce6e42eb203d5b78f4c0e1c5b1911bf28551459e1632aa22ba726484dcc02cc5475fd4b2d2e89b61e3604e5e6152eefe63ca95d252ae3087b98e9333258d5618745cd03255124267153b36ee5517c505135698c4acca0bf7edab126c61b20af39832a173ceaa2e66ece0a1e3f0d8a10af3ec9dbe4e3d2d1586d1b597b4d4371d8454a2c2ac3765deea56ed31291d38785c9fc2dcd9c2b87873b1b2193844e0818f0fbd9b98c2a8b3d4d37f638003cdd8e28f0d54d803299801814929cc3fe75aa9d6924af7e7060df5400a664460428ab6a3ca77d84b71d45170a2a92a9e64e8ff7c9a88c298f7df2272f52bc88b1c386ea81d7d2573d4407ba130cbcff2dee5aa9cc5b409288cb1a6bd82feb853d7fa84517363d746ba6f76ee09938e2fd26f2cdb09a3d82ded2794cb09b3cec94dabbea6eb506ec2acfbaf62c3a509b3eb98716929dbad326110935a68db894fb70f1306e55188b4e0c1c5f95302bf84397d8bdb8c3ed71f744b187c6685ae245b8874c708262dd0a14212550b74a81b762a98546242093dcb6df795979352d9c8d183c70c269330edbebb8bddff74e2230983ee2b2dcfbd8d84d994bcbfe0e1a44a1f12066d72f5e4f9686d3a7c44d1748ad3e259e7882ba5342bebba7a4f1a616e2f99d753957e478ce04598f59dfaf2d2498a306dbe1c910dad94ea844922cc5ba2ee428a5572178508933879a3f3649e12330c268730ee9a8c349fd952e5d18921b470eeeaf51a7b1ae7f216e23e263021040ec21c4c2b513a7b4b1006990d19428757200c52d635cb4c54ac0d08d367fd0e762e97b34efdc1f452a4c956a5f78351888b4c15a6ef83615fc7cef9747a13bac207837c572a4e96be07b3f64fe27c6795f018eac1205c493f9de2e5c1143b85f5cf6ea247e70c0e133c4ceee069b8b9d905f7789ed294a8fbee133b18b59433ba82d9edafab0ec6d0594ffe8af714f7a183c954b6f957d59644452773506dd645bc4457f756bf6ce5903f898351bf8354e7c965aadc4de0607a2dbb19b99e74b8d11b4cf2d2aa2c3be7df5ddc0d66953c5667a5d26d30d9e7f720b67256aa4636aca1114d9b7dd7d2b9993defa857ebd2d84ed9738125c78d9fa8c1a44666a8f92015418e1e4969200d06cd1479068736a873175294c43008c3284a196394bcd218331340104030783c1409454412999c2892ef130081cbc2d0582c120a85a1705024486114c4400c03210cc3300c6308514c3be8ce031749262013e6956a368026dbd86d500089b56c527e05abf1d21490acd0300d5060a59f0e01c9673ee639bb3c770564df70527c8393fe503e02ed95d7aec093c1d0ddef03c3c3f7eceaf68fee8f958fef3686f0fa8a9831dab67f345ab0d77900e7ad1f34f4aa55258a4199cb20714f503362661b459bd0f9020a2378b557b5b09948ee50d13cb71807d94582c3d641e60271d05b06f1b7085b244003e66693a15d11466d3a3231c99f791fa308ab48cdd5141bad78f9067993a9a74de05f9c1288cd850435cae0763d2fa2cb14b3eedfd8970bedc170863e32f876c87b1e3882f8362d4b7b12085a6068f16e8323c021e3cc05e8df5977e7967d5eec1fd4ea6b25dd92e1ef1e8be1f4f8d3fbedeb90a27b54627ff0da3b51c6b2cd37ce27c5aeb028a10196f785aa98f6091b16fe5de43155b64374e9d75015de6e0d01989511fa0ae67c92e38d63fd35eca9b3b342dc082d0d2461ce75a53c39a6a0b8b4af219e25ad2b182e086f792de60fb60af5a5415005a52b721173ae88b8626f0ee62751cb905a630f01b581b4881e61a099d7473b44a08f924c7d3b4f0c3b082601dc7ac3044d879ccda92b42034508b6ada2b949602828b62b942bd26f774f94af03d4bb4d9c2141ecc218fb321dc74d6d233c041db055c766dfeed03b9c79df4f1919f0bf7e8898b4a0af25cd7bce53a19b5ab2233ffbbdf46d86723602c65de5969bdea1508fb82f1253d04f1983ce002b6f6d27ce8b521de15970d3b57f1d2426e3f9ee0c6ec320cf3c01740df97ccb4882c9cd32c7190289e6b151d9990ece5a7f27829de9966f08f0d882e6c93e897896a29a74669d399dccb3f916815a7a93a8edeac0858bc90302d5b5bdaa571f5661079e1731d2d82b7d3f0e9cb49d66cab9a57d6a415ebecabba4b03dc77ab8fa9f12121a51ecee9b50c2abbb9811d01e3af5833f6da1bb46f5b66bc395645c01e37c92d6b57dc0c8e305610221a936d0cafbef567c4fbbe2eae67d16d0bf47dfa74800511dd94160b8a2c95916d2e4122296da3066da8e080ba690f13609116ad39d053d205a139b3f6e121aea3d6ae10d2d59470aa63eb6efa1cf67370111d395608d3478e858a2a4239b84c3ad0e434bd3e3a58ed4a03320ec4e934d41a29ec56ecddb0d885c62e52cd37a11365ceeadba49765627a8bed94ad105139611b0f53c2f68f5bedbe465910af3aa17b8e3f8a0486dc15e14372d8e2d43cc9beea0aac9829dc0b623fc1800cc1cb7010b49e61334a7c7611a12c30152466f32ac67b079898121de5e85962a2d0c3ccbe6db122cb6d5b01c9f3920a90c012de48783c183d42d7e55d575ca996fc4227d2e6da7914d6fc48e0ee7d239e9cd9ddbb40876554ace1ef44e197184bf75b937c76d6e6703bf2e34fb201430ca1be24882e6b2df13c676b5f35e0e49d01f1af8f448d83b9aa83bdf4781766c9d78d1bbe8f5b6054d206af8f146e2943e973252fe49a37aa599ded57c4040539f364077adb51bf2ceb9717eab5dd39c519cd18dd8c925be43f3dfc8267ba3fc22745052f8d75eaec64374eaedcce16137a18e50503582c89d0bfe5d0ea2b686d9d9d5f5d7b6e386c036c63fb67be67a21a8242c64d1235c2f2fb1ab23c9eae9d0060d3883d283dae437d657fe5a0452ae3a6f17b3318b7a7d9841a7bab11cd0839d3717770fd46c24d9986dfe394b0a52348ed09b79481035b428e30b68ba952b9e23afc3ea20ddb9262331d2175719c578278c8b2c221802fd7de438cb0aa38c05b17372dd4ae7bc1cd559568c8f76665aff9bfaa83a6d9bf9e86a1faa4d00b52db6d8407f7e31e568ff24f7c9fc995b3fa26884ebda8401b736597e6f703e099646764b9f4ef448a5476f2c7dc709b623d026f4c9d79232cf5d5a57029d2d291d0246a1e818ac1975179286b1399e3c8ed13c8c38abf1ab78dba24856a440475065fa173396969eff7d2ebb3398e7ada6660b3176d4f9c9baf1fc61bf735bd699cc51db59395ecb9b1acfa7687432663a5ea3fd5d41186238976a3b3c37a7e876e43dd9f04c87e89a0d1239489b946d35f03b43c8fff84444ebed23744d3f7b23aab106a88da9d24db563101130e01b9ae0588dfd1b30f505f49b57e1e9fd704056fda5fe8b8d0704a138a52da916c03fb053178173bd933271e9e79baff577e54c85d5aaf21d31387b461097826ea30de724d0028d2b965526314b1cf90948f591323aa4f4aa3827fa3994b8ea2dbeb46830d011380c89730770d53212ae1747db11ec38d5ed40908111a61411cccf9b80681f6323f403870b7181d48021839a3181a615fb98649c5e0092ce01b97a1af584ec0d178242c59cb0c9ecc9fe2c095caac58070935a763b0cdad36af0c47c878292fdb597e5dc9146d2c6019e93512872f3e32485d8da42cab7e7adc6d41debac189c8c5bc1387fd79779750607617373adac47623c6f5164d5df92e1b1bf81025c7be308844b249689ce8c37236e860f6141b82574b0af36d5ff7f3fe4bfa29306c8d87c8e4bf21859df362b4b57d039a733515a523a445f9cda6615659de4aee2f72ee8345904c5f8aafcd6cf1533c791593e5b81891a7dd47b217b996a33b4bf8340929d22c029ac07f2abdcaa2c78a96d225a8b5ba42d83c0f80807d4e550f914d4ffc45d69fd92c88861c204d5555abbe53fd3b7f84bcfc4b04dfcdfa9fb87902d9faec996cd00d7358a9e7e6fbeb1e8e539ca27cbbc6802fb3e8c9e1b602162dd1dca1a153dc2895c2929c3401af144aef091f4231190d82fa15fac2ebb8a496157c0295c1a7aa5da568e3ace05834a1c0737b9c6dc211d325f2d687ac393c6ca6e47fd18effe47c118940377e056bedffb1a16c040597450ee571d855b12ad8d3f89015d948cb49ed0cf4c89f78c6c2d3ada16f46e85b32a4a910983d91cd42e877fba8862fb467714f18a9547a6d7106ae74e19ad6b33d90a3951f8108374a1c88ac4d25c8d213607765e314a091d30cd7a71195e07828f1073dc4a7d6f852a48cac0ef4e1646beab57e0a5ce5e102d827af69dea29f3af8aee549c56b27f66456c6d00efe0882b1827d657d35e628700f6b29578c4993c6d1cc7278113bd98b3444d4745dc85a314ceabad6241744907ba8497ca288f2de9c294f810c1af563b81c43406890d745898cab88d7dc5f85ad05d19a7842c0f0ca90cf9f8a933499de1c529812ec998820bc543b0e6dd4139b6066d36932a498b690404b54669b69221141c7a389a42ecfb54d4358dc6de3a19146771bd66bf0fad9630e64a5e3696d7142de6f166ea62c18121e1b3214d56021b5f2beb1f493a2e9a69e84c96e1c47e9a73cfe17c4d9de8042db1d507ede31f811af410a679923eb06b606a0bb5197045a50fafae58a08480453a3ddd69fbb2dce8737feb167a1b4577c6974b27ada2b56bf926b515333622bd8d76a56f45852bb278d996a3a140a2b91f4431689d5d3b7f9a93a56eb3e990a5588b64115047048ed27bb059031dcc30751915671a866b3314a91194dbd5530331e9e14e979a44e0bd9b8910e3888817b20ae9f1ee1340c6ef15a918a494f40b01f863ad12b1009e2a086364e0d3216e1b8f57cbb2994016f4a29ef19b6b37e67095bbc8856d7b7dff5102e407a3b4ad96c1436126d6b16d2334250e8a87856b47e16c01be889cea90682410324739a658a66327ddb6c9d42aa6141c859d80f5005a6b1217dbd655769f4cc99bd795250fd993a060cf3e68150492d6beb401cde0a56b843d89335190641f08b4a5153e2fc5a2acf0e9b5d5217c9dc42a0a75f5754b6c763cd7c6c710e30431a88d029e312f0744e337a44acd78dd5ffdec6635db33ca3abf60c8ab0d21ad3c6155c28f3b7b81e23b5beb87fd6481e8c15c61b434d60442f8694914caef32a412c7973beb23cc21bb3ef41048a2b1943ea8ee6fdaa731140679b54573f9b9ac723ce9a811ed5f5ee7773a421d5509d03bbb3b941b77570f5a0dc8a7170860752cbcd052c9a8bf0d7e9143dd44130144acc2bb2f6bd61121363b64a7227fdb9c9c1e6f375df8a7aec637e8996ab628320844b2cef67836377dd10d0d489e622d4da35a8cacddadb0e76ed74fb69816b93ffb7d0b3e3f467aef53b0e696a45ad38d817ec63c09beafc00f132c07dd68e42e8b516bf2d41cf10b3dd9756a4d11ecbff3755106713bc94cece996dcab4612a6c8770dea18ad13372264074148de28ec89f4ff456f407490f896e50f96b6a664744dad35cdbfea0a8c6c31ebb51998fbaebc6d2cb87377bdb916070b13f2679975bffa84b34bf4312d2cb1939db641654716f83d988ed7629499c5bc553d5157da1c8513587a7f876843fa9fa7017bf048667782a93c88401856786dc87423377cc2c67f22ff34eb13f476ffbf083f4c9d38763021ad229eb1992f5f5f0c071fc82bedd294a5c4690c40229e3174aa4401c821235972791d1df3ed033e05fe3eb46e1526c8b3a56d10c36e4415510ec5780ca77d49418dc0b6a3d388fe43e7347d9d32f8d2da0b3e531bd4aa3eda013052c116f67869433a5a82a08af88529e192a3d763543a0528042512857cd579173a1e886b64036b82be5623456b9e12986098ddf0ab5feecd172287723ade77d20f6a34a5de430411b214fa246a700713a2d87b16c374018fef8dc63243141144f9373e77c2a33ed3bfcae04684ebc49d9762995fc106bf3075d0ba2f59f1b153ace470b42054bed77849a8fba78d82463235675a21c52478915b7366f2cd2fc787e4d96c6764d6fe6009d2afe57486cbdcd69a89ea5ea1578b0bade7b369e90134497cd6535ab1dbc9f7e029a9c91919e49666612b506cbb0316026209556fc70bd376ca35b5639fe6e70d6f7cf6f28607897b5ac214e3b958d42411f8777c63f3b8a2d555278a6f3c1ea3936e7bffaccb3d1d31d271ab212d56345051f6fb29749c1294da00ab4303844637fa823ed1bb139a03f7e4bd1661b29ead734c924f3789d6d302eba247961b13ab9e114eca8152bde976e3acb45ab15e85c5a298bc5705e3818579e195e8535c17467f81ec42785472d89b0684fe5f5ad189a2a2a8552b0a3161c67972a9b054b67912d4b22ffb549d21b47dd708a1807fc89bac5238ed418311e905eaef62031bcf0ff1873aaca4ad213748089d8280982cef7b242145d28de65631a78729723a70ba6ef93f50c7b849c408d0781ba5ab2df9b3208b2051ca4591f2236d0b24708c8f374858d8a22a70af2a8d9f5018bf3062a468d738e74086ef2e83096aeba19fa35de910b946d54a2d2c069bab7d50836075acb1605a5096cce677fae9296c08537522f98d28f088d2e31dbc145f2a941d973984cf485d48f18fd1bf64ec18dd62adcbe2c3dd62671d60f92450cd57cd9b9add6e37f881eccacb57f39f04006f692db9490675beb1b5e4c023eb906cc2005e929eac9e4b373830212b6ba025e01ff8a9379e8dcadb5370eb140da9e0bd114ba19af19bc51beff119e45fb08d22fd28bbe8db683c6e562bac808dba1b335e830eb95b5eb0ec1e0b319c89a2876ced5101d00c20c8671f75b441ecd865c7a38c2ec399808a1dc470ffc5e4783a13ed2a62ed3cd992c9bc69d4493793d9e8b790c06259a744290000495b577db72b066613f90085f995b516555b3af9128845d25a121329e2e59eb501a9a2f18169c2dc0518d8cc8b1a7f26d22fdf830086078d2c23233547aae85903860fc411a15cb1494126fc601b5c6d8fdab64e9941e0733ec272e94a19e9827ae8b39a510032a4ce8e6392a6ffb3932d90b400f5668758aa3ce5fa986571c208a00937ee61001609276e24cd9a4314eac78b2e63b8ab6154bdf78f31a771dee48c06674cf9ea16b34c85925f464f22b117ad6b6b37bc0a193d2375326a9502c42e4596a0ac5e7f25fb404209c9682b0483fc242f0a607dcfb19386c9c69d277a44d00615cd1e0daed6be2f9f74a62f10ba6777ee70cdde10125e9136ea5a92d1f589cc8ae0f54988da7799a21da2e6b8da7c20960804d0f647f4830e6bbcb5dc7246157262d1c814177d740d56755e02583d1a6a3d2ac7706ec13adc80c7133330387a6154fca6bbc22caa8df5997bb1075d6027e57f9425edee6a960d4516005560a93e82ad527bc5cd333da07503a5bb3301a85900d6e23e19708889643a913906cee49c2c1b6565cbe1dda5f37c747d6225b53613bcb9812a9b45b5c1086c661c0107532207cd4c18293a5a706de25a67569395fa1a66a27187ae32dc1887290b90a5d5fdd9409ea35a832a7d6770bd1a99b2a28d1dbaa6c861b459c4ab60ce9e3613d5ad5f3f736813da3c1de43743aff8c9f252c2bd832ebdd84327fe164a9bf438b778b7b47778326a65b4197e8736169439e6e26eb6f3cdcfb9c63eab7b7118ebd0512047c83f8f2d805a6a74b28e9c2ed762ab102d7c5461a6f797ac0583584d853164e0552eaa3c85ea8aea146644e906872708925456cd408536e12d9d7dbe1048033f417d5c5f161015ece49d089f66530a8cd92af1f5f6e090450f4139236c9c64c2a3bbaeaef1639ca5454428479285839859adda905baab7ad9b72c8b02ed290a15a3d0a6c2403ebe500f5a9474453dc2abbc9a5e818a9fa7908ba9ac463b7d79627b8fc733f95052ece35067dd0c880b0ed4e3b060a8037ef91f82cb560a9e5614a883e6b79f9d4d959a4a6766251120a40c30ed1c9b53c8d8ac901290395a6325f1b097c4ecaadbaf6c37151d56d9f38c0b9bee3459045919073ee27c8d1732a5ba54524fd1913c084a22a7bd0d1e47861cf897d97c354c861cd3df6d38e548424e88fea645eb55c3710ee5995d4f788619cdc3171a742be3096982104532c9ea67870398e64a8a849046a15f147d10d1437cae9affcb9559658298df63df6e0a671808cea0946cdc17dd8d8e7f81954dae2517ca1a8d60e54577c624aa79237a4473f9342bee0dac2b2fc2012aa96b78c7ba9f56482ef0ea0ca006134b57f08fc5731b301f3843bef71f6dca0088fc32014899208599e675d9c079c1427e2ae2814cd52b032ec63ebf096b6e80887857ab35da7f55991d496e6a747956277755468df5b6839cf22175989475bcfca981d47939a8f119a579601585ead076b8449bbd88a5a642db5cc8ebf5f0a94743595d1cf8eb669b63cfa7ef0200bf1d4f23808cfed2b0a521ce14ca0982112467a1e21d8aa1899d901d20118121272fbf9b90f8506dcfbeaf1e8a0a85ab6883d6030950c9b2e332f40f4b5d6413c036c6479e6c50970a6ec486ddf4c88d8034181845b8ae494620b9eabba82e24f6c0dcbe87cda69a048c036c85960e49d9b8c42a41f6c6415090e76cf585301a168c6eca6e70f1161bf3d144f38ce652634eb662e71c689e8dc5491a013efb3c57625ebc57fe1445a1a61d0a032ee04b2340a38eed970a7bb7cac7ebf20de607bf05cef669062f76f159e635ed7e2be119b1939a8d1422d4721e9c11508ea396ea80d847914ddf1d6081cc5034500a993d93d8b6510aafe611afec1d69765bc23cf780e7f2a329256042ce27dfefc4cd9cc0ffe981601da449eee293e76af08e1fa805e678d65c7b75124c56f56537eea524d5cca00556c41a6760bec1d06003467e296117173fed9d665ba3caf2a4e1bab5edae5c05269cb946df68877ddbe1bf4781c", + "patch": { + "babe": { + "epochConfig": { + "allowed_slots": "PrimaryAndSecondaryVRFSlots", + "c": [ + 1, + 4 + ] + } + }, + "balances": { + "balances": [ + [ + "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", + 10000000000000000 + ], + [ + "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty", + 10000000000000000 + ], + [ + "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y", + 10000000000000000 + ], + [ + "5DAAnrj7VHTznn2AWBemMuyBwZWs6FNFjdyVXUeYum3PTXFy", + 10000000000000000 + ], + [ + "5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw", + 10000000000000000 + ], + [ + "5CiPPseXPECbkjWCa6MnjNokrgYjMqmKndv2rSnekmSK2DjL", + 10000000000000000 + ], + [ + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + 10000000000000000 + ], + [ + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", + 10000000000000000 + ], + [ + "5Ck5SLSHYac6WFt5UZRSsdJjwmpSZq85fd5TRNAdZQVzEAPT", + 10000000000000000 + ], + [ + "5HKPmK9GYtE1PSLsS1qiYU9xQ9Si1NcEhdeCq9sw5bqu4ns8", + 10000000000000000 + ], + [ + "5FCfAonRZgTFrTd9HREEyeJjDpT397KMzizE6T3DvebLFE7n", + 10000000000000000 + ], + [ + "5CRmqmsiNFExV6VbdmPJViVxrWmkaXXvBrSX8oqBT8R9vmWk", + 10000000000000000 + ] + ] + }, + "configuration": { + "config": { + "approval_voting_params": { + "max_approval_coalesce_count": 1 + }, + "async_backing_params": { + "allowed_ancestry_len": 2, + "max_candidate_depth": 2 + }, + "code_retention_period": 1200, + "dispute_period": 6, + "dispute_post_conclusion_acceptance_period": 100, + "executor_params": [], + "hrmp_channel_max_capacity": 8, + "hrmp_channel_max_message_size": 1048576, + "hrmp_channel_max_total_size": 8192, + "hrmp_max_message_num_per_candidate": 5, + "hrmp_max_parachain_inbound_channels": 4, + "hrmp_max_parachain_outbound_channels": 4, + "hrmp_recipient_deposit": 0, + "hrmp_sender_deposit": 0, + "max_code_size": 3145728, + "max_downward_message_size": 1048576, + "max_head_data_size": 32768, + "max_pov_size": 5242880, + "max_upward_message_num_per_candidate": 5, + "max_upward_message_size": 51200, + "max_upward_queue_count": 8, + "max_upward_queue_size": 1048576, + "max_validators": null, + "minimum_backing_votes": 1, + "minimum_validation_upgrade_delay": 5, + "n_delay_tranches": 25, + "needed_approvals": 2, + "no_show_slots": 2, + "node_features": { + "bits": 0, + "data": [], + "head": { + "index": 0, + "width": 8 + }, + "order": "bitvec::order::Lsb0" + }, + "pvf_voting_ttl": 2, + "relay_vrf_modulo_samples": 2, + "scheduler_params": { + "group_rotation_frequency": 20, + "lookahead": 1, + "max_availability_timeouts": 0, + "max_validators_per_core": null, + "num_cores": 0, + "on_demand_base_fee": 10000000, + "on_demand_fee_variability": 30000000, + "on_demand_queue_max_size": 10000, + "on_demand_target_queue_utilization": 250000000, + "paras_availability_period": 4, + "ttl": 5 + }, + "validation_upgrade_cooldown": 2, + "validation_upgrade_delay": 2, + "zeroth_delay_tranche_width": 0 + } + }, + "session": { + "keys": [ + [ + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + { + "authority_discovery": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", + "babe": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", + "beefy": "KW39r9CJjAVzmkf9zQ4YDb2hqfAVGdRqn53eRqyruqpxAP5YL", + "grandpa": "5FA9nQDVg267DEd8m1ZypXLBnvN7SFxYwV7ndqSYGiN9TTpu", + "para_assignment": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", + "para_validator": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" + } + ], + [ + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", + { + "authority_discovery": "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty", + "babe": "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty", + "beefy": "KWByAN7WfZABWS5AoWqxriRmF5f2jnDqy3rB5pfHLGkY93ibN", + "grandpa": "5GoNkf6WdbxCFnPdAnYYQyCjAKPJgLNxXwPjwTh6DGg6gN3E", + "para_assignment": "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty", + "para_validator": "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty" + } + ] + ] + }, + "staking": { + "forceEra": "NotForcing", + "invulnerables": [ + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc" + ], + "minimumValidatorCount": 1, + "slashRewardFraction": 100000000, + "stakers": [ + [ + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", + 1000000000000, + "Validator" + ], + [ + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", + "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", + 1000000000000, + "Validator" + ] + ], + "validatorCount": 2 + } + } + } + } +} \ No newline at end of file diff --git a/zombienet/yarn.lock b/zombienet/yarn.lock new file mode 100644 index 000000000..f15543d97 --- /dev/null +++ b/zombienet/yarn.lock @@ -0,0 +1,3315 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@asamuzakjp/dom-selector@npm:^2.0.1": + version: 2.0.2 + resolution: "@asamuzakjp/dom-selector@npm:2.0.2" + dependencies: + bidi-js: "npm:^1.0.3" + css-tree: "npm:^2.3.1" + is-potential-custom-element-name: "npm:^1.0.1" + checksum: 10c0/54d9afa3d654a98fcf2e45c53ea330237e513877f130f8c8c17611c603c8d50cb18f937e1b0bcc08f0030443a9c8479dcad9cebff02766025e2df2754459c647 + languageName: node + linkType: hard + +"@colors/colors@npm:1.5.0": + version: 1.5.0 + resolution: "@colors/colors@npm:1.5.0" + checksum: 10c0/eb42729851adca56d19a08e48d5a1e95efd2a32c55ae0323de8119052be0510d4b7a1611f2abcbf28c044a6c11e6b7d38f99fccdad7429300c37a8ea5fb95b44 + languageName: node + linkType: hard + +"@cspotcode/source-map-support@npm:^0.8.0": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": "npm:0.3.9" + checksum: 10c0/05c5368c13b662ee4c122c7bfbe5dc0b613416672a829f3e78bc49a357a197e0218d6e74e7c66cfcd04e15a179acab080bd3c69658c9fbefd0e1ccd950a07fc6 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.0.3": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.0.3" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + checksum: 10c0/fa425b606d7c7ee5bfa6a31a7b050dd5814b4082f318e0e4190f991902181b4330f43f4805db1dd4f2433fd0ed9cc7a7b9c2683f1deeab1df1b0a98b1e24055b + languageName: node + linkType: hard + +"@kiltprotocol/zombienet-networks@workspace:.": + version: 0.0.0-use.local + resolution: "@kiltprotocol/zombienet-networks@workspace:." + dependencies: + "@zombienet/cli": "npm:^1.3.109" + languageName: unknown + linkType: soft + +"@noble/curves@npm:^1.3.0": + version: 1.6.0 + resolution: "@noble/curves@npm:1.6.0" + dependencies: + "@noble/hashes": "npm:1.5.0" + checksum: 10c0/f3262aa4d39148e627cd82b5ac1c93f88c5bb46dd2566b5e8e52ffac3a0fc381ad30c2111656fd2bd3b0d37d43d540543e0d93a5ff96a6cb184bc3bfe10d1cd9 + languageName: node + linkType: hard + +"@noble/ed25519@npm:^1.5.1": + version: 1.7.3 + resolution: "@noble/ed25519@npm:1.7.3" + checksum: 10c0/dc162c3be5ae5a3cc0e6aff8209c8d175f24bba22f2b473aa849e102471193c83664b06f0ba2b5e01e9aa1a67a44daf313f478adb9f38768408a8bcad6145a48 + languageName: node + linkType: hard + +"@noble/hashes@npm:1.5.0, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.3": + version: 1.5.0 + resolution: "@noble/hashes@npm:1.5.0" + checksum: 10c0/1b46539695fbfe4477c0822d90c881a04d4fa2921c08c552375b444a48cac9930cb1ee68de0a3c7859e676554d0f3771999716606dc4d8f826e414c11692cdd9 + languageName: node + linkType: hard + +"@noble/secp256k1@npm:^1.3.0": + version: 1.7.1 + resolution: "@noble/secp256k1@npm:1.7.1" + checksum: 10c0/48091801d39daba75520012027d0ff0b1719338d96033890cfe0d287ad75af00d82769c0194a06e7e4fbd816ae3f204f4a59c9e26f0ad16b429f7e9b5403ccd5 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^2.0.0": + version: 2.2.2 + resolution: "@npmcli/agent@npm:2.2.2" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd + languageName: node + linkType: hard + +"@polkadot-api/json-rpc-provider-proxy@npm:^0.1.0": + version: 0.1.0 + resolution: "@polkadot-api/json-rpc-provider-proxy@npm:0.1.0" + checksum: 10c0/e4b621fbbba5ae035f36932ce2ef6024d157a1612e26d8838ba6b92a78cd4718f4f12baa55ec7c700d213f8ecbe6e14569152ba3254b341b677b9e616c749f59 + languageName: node + linkType: hard + +"@polkadot-api/json-rpc-provider@npm:0.0.1, @polkadot-api/json-rpc-provider@npm:^0.0.1": + version: 0.0.1 + resolution: "@polkadot-api/json-rpc-provider@npm:0.0.1" + checksum: 10c0/90dc86693e7ef742c50484f4374d4b4f0eb7b5f7f618cf96a3dfed866fd18edf19132fc750b2944e8300d83c5601343f3876cbe60cd6bb1086301361d682ebd8 + languageName: node + linkType: hard + +"@polkadot-api/metadata-builders@npm:0.3.2": + version: 0.3.2 + resolution: "@polkadot-api/metadata-builders@npm:0.3.2" + dependencies: + "@polkadot-api/substrate-bindings": "npm:0.6.0" + "@polkadot-api/utils": "npm:0.1.0" + checksum: 10c0/ac536e8d5dea4c4e241839750a46d003a86e6149428dbf9bdb794907547fdab219d38c805ba5fa0ea7150a0083c214866e28d7c2ec10621be97d2f8f8b013edf + languageName: node + linkType: hard + +"@polkadot-api/observable-client@npm:^0.3.0": + version: 0.3.2 + resolution: "@polkadot-api/observable-client@npm:0.3.2" + dependencies: + "@polkadot-api/metadata-builders": "npm:0.3.2" + "@polkadot-api/substrate-bindings": "npm:0.6.0" + "@polkadot-api/utils": "npm:0.1.0" + peerDependencies: + "@polkadot-api/substrate-client": 0.1.4 + rxjs: ">=7.8.0" + checksum: 10c0/9f93fab03c37af0483f5c8487ec5250d366eb401a2c9744c014dfb4c7aa524645ae71f6b0e60761e2bca89bdcd862c119e4ac0e798123d8ee9f037eb2f4aaef3 + languageName: node + linkType: hard + +"@polkadot-api/substrate-bindings@npm:0.6.0": + version: 0.6.0 + resolution: "@polkadot-api/substrate-bindings@npm:0.6.0" + dependencies: + "@noble/hashes": "npm:^1.3.1" + "@polkadot-api/utils": "npm:0.1.0" + "@scure/base": "npm:^1.1.1" + scale-ts: "npm:^1.6.0" + checksum: 10c0/6c5d2d4f1120e95b3fb0207ea186e74302b9075671132d62d94d6abcb8b38fe081b8514384c744c3630615caa474764ebdd18968bef73d0c29203946941f1d99 + languageName: node + linkType: hard + +"@polkadot-api/substrate-client@npm:^0.1.2": + version: 0.1.4 + resolution: "@polkadot-api/substrate-client@npm:0.1.4" + dependencies: + "@polkadot-api/json-rpc-provider": "npm:0.0.1" + "@polkadot-api/utils": "npm:0.1.0" + checksum: 10c0/7c9138ce52745f7e5f365f35d8caf3c192aee405ee576492eab8c47f5e9d09547a6141cc455ba21e69cf9f0f813fe6f5bcb0763342c33435a7678432961713db + languageName: node + linkType: hard + +"@polkadot-api/utils@npm:0.1.0": + version: 0.1.0 + resolution: "@polkadot-api/utils@npm:0.1.0" + checksum: 10c0/9b24522a30d0519df2d2bbfc65f7dbc94233950f829c4a6b042e02cc43b70c0ec43a7d06056cd7084d09e32d7c42caa2695732d25f673a31430391bed116fcae + languageName: node + linkType: hard + +"@polkadot/api-augment@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/api-augment@npm:12.4.2" + dependencies: + "@polkadot/api-base": "npm:12.4.2" + "@polkadot/rpc-augment": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-augment": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/4cab0d50cde43eb25d830fca93cdfe10198302d44a271aacfa274d171671ce4fa4b07bafd0886f8cf78ce10478762e337e9fe27a652080a1dc6f5823be05bcb3 + languageName: node + linkType: hard + +"@polkadot/api-base@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/api-base@npm:12.4.2" + dependencies: + "@polkadot/rpc-core": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.6.3" + checksum: 10c0/b2e7b7a3f93070b09f5992f8128a378f47a8c808a08a2890c50abcaded040ab30e8b1b5c2b693c375f2187032dc8d010d407ac14e1e39fcb984a2e0f9f05e23d + languageName: node + linkType: hard + +"@polkadot/api-derive@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/api-derive@npm:12.4.2" + dependencies: + "@polkadot/api": "npm:12.4.2" + "@polkadot/api-augment": "npm:12.4.2" + "@polkadot/api-base": "npm:12.4.2" + "@polkadot/rpc-core": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + "@polkadot/util-crypto": "npm:^13.0.2" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.6.3" + checksum: 10c0/47f0698fa2b3f1adc03af93fbf7c533d8801bad52c7d8989ab019ce215bbd1c1e8d7a0c18d89839e86619ae9e93385cb7963feecc323dad79751de1496d0c23c + languageName: node + linkType: hard + +"@polkadot/api@npm:12.4.2, @polkadot/api@npm:^12.3.1": + version: 12.4.2 + resolution: "@polkadot/api@npm:12.4.2" + dependencies: + "@polkadot/api-augment": "npm:12.4.2" + "@polkadot/api-base": "npm:12.4.2" + "@polkadot/api-derive": "npm:12.4.2" + "@polkadot/keyring": "npm:^13.0.2" + "@polkadot/rpc-augment": "npm:12.4.2" + "@polkadot/rpc-core": "npm:12.4.2" + "@polkadot/rpc-provider": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-augment": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/types-create": "npm:12.4.2" + "@polkadot/types-known": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + "@polkadot/util-crypto": "npm:^13.0.2" + eventemitter3: "npm:^5.0.1" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.6.3" + checksum: 10c0/64e9713508193a971e7fe830d39c625101b9dc9ce987ee38118d9a2e7e913eaeb9231cd7776b4d00ac293b23052c12ca6e7867fddacb8f7ec283017ee68ad1aa + languageName: node + linkType: hard + +"@polkadot/keyring@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/keyring@npm:13.1.1" + dependencies: + "@polkadot/util": "npm:13.1.1" + "@polkadot/util-crypto": "npm:13.1.1" + tslib: "npm:^2.7.0" + peerDependencies: + "@polkadot/util": 13.1.1 + "@polkadot/util-crypto": 13.1.1 + checksum: 10c0/f746ff4dcf5bc89efbd20b1ddaf01232a2b87b7d1b1d45d76371a3b14361e4aef2045668658df39a738e2b2b70944cd0e5a5210b654778b55ef965b69fc8b2ca + languageName: node + linkType: hard + +"@polkadot/networks@npm:13.1.1, @polkadot/networks@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/networks@npm:13.1.1" + dependencies: + "@polkadot/util": "npm:13.1.1" + "@substrate/ss58-registry": "npm:^1.50.0" + tslib: "npm:^2.7.0" + checksum: 10c0/30ea310ecfbe1ab7a050b3809a86f6b4564b75d0d35e467ff16428fd4d75e3d685e2964366d9a9130ade71ea7615ac064c8d5704457c72810333d5f9d257b32b + languageName: node + linkType: hard + +"@polkadot/rpc-augment@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/rpc-augment@npm:12.4.2" + dependencies: + "@polkadot/rpc-core": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/8e078db8496337c16bfb474cb557aaed5cccb2c1a3b8a56ad729fea308b23745c0cf5db10212f5653b60344add2084fc5ac7521a7b08c19fd309280e539336cf + languageName: node + linkType: hard + +"@polkadot/rpc-core@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/rpc-core@npm:12.4.2" + dependencies: + "@polkadot/rpc-augment": "npm:12.4.2" + "@polkadot/rpc-provider": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.6.3" + checksum: 10c0/4201b1d503801a672f2ceb0e6ab90226eb03c2d668879669656d73a952c556ba32e0a85c479d87ccd0aa80ce8fbc69ddde69abee462517dabc4736b3993deca6 + languageName: node + linkType: hard + +"@polkadot/rpc-provider@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/rpc-provider@npm:12.4.2" + dependencies: + "@polkadot/keyring": "npm:^13.0.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-support": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + "@polkadot/util-crypto": "npm:^13.0.2" + "@polkadot/x-fetch": "npm:^13.0.2" + "@polkadot/x-global": "npm:^13.0.2" + "@polkadot/x-ws": "npm:^13.0.2" + "@substrate/connect": "npm:0.8.11" + eventemitter3: "npm:^5.0.1" + mock-socket: "npm:^9.3.1" + nock: "npm:^13.5.4" + tslib: "npm:^2.6.3" + dependenciesMeta: + "@substrate/connect": + optional: true + checksum: 10c0/59968dfae8ecaed840ec61c84d50953faf14d76dbcfcf61ef4acb88c9f4ef07c0c2b9c5227cb2b63801a0895d3f10edb686ae3126269eda5635f29796fa20fdf + languageName: node + linkType: hard + +"@polkadot/types-augment@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/types-augment@npm:12.4.2" + dependencies: + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/9dcae5ec9fd7aaac9d3ffe2f5adb9b5c4704376018db4860215ca38805b189c5ef2f90360da0ff29d8b9a9715617bb5eabf6870bcfd8f9eeba974d6eb9b5bfab + languageName: node + linkType: hard + +"@polkadot/types-codec@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/types-codec@npm:12.4.2" + dependencies: + "@polkadot/util": "npm:^13.0.2" + "@polkadot/x-bigint": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/2a56694e6998fc2afbe4fe8a9f9805eb251e880f1343af380f70c42965d30bae2249e5a5f346e675d5f78173770ebd4fa0758ed8b9f1397db8183eb686d11842 + languageName: node + linkType: hard + +"@polkadot/types-create@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/types-create@npm:12.4.2" + dependencies: + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/c075d07c2d3212f0ab9772cd008bfadccde7a35f6366c6704a326f8e5199fce7e7eb7959a6bd229b69fcbc3900c522892f94b08b4cd991be6e42f2a786585d0f + languageName: node + linkType: hard + +"@polkadot/types-known@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/types-known@npm:12.4.2" + dependencies: + "@polkadot/networks": "npm:^13.0.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/types-create": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/2e7fdd895c6478e102b91d7cb3428b75c34aa0b037ba9d2d2b97d350a19ed7bd6ea4f2c91c52eef4039ebec330fd1cd58a0f88fc30882c2a6623c0cae78b421a + languageName: node + linkType: hard + +"@polkadot/types-support@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/types-support@npm:12.4.2" + dependencies: + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/0277fe88cac0f2447b3655bb5ca32dfe7dc7e35a82d22873baf95a0272a207f73853e94b3340e7e9230945dfaa8f14f93f4ffb13c8b29d449f602e8c5fe3f3c2 + languageName: node + linkType: hard + +"@polkadot/types@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/types@npm:12.4.2" + dependencies: + "@polkadot/keyring": "npm:^13.0.2" + "@polkadot/types-augment": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/types-create": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + "@polkadot/util-crypto": "npm:^13.0.2" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.6.3" + checksum: 10c0/bdea1658a367678a158d5d6ba6224a081cfd5fb38b6d56c360321e40628a23261261c869e7ab1ac0c89c0140777f532963c46999e5fb0f13233599a32eabdf99 + languageName: node + linkType: hard + +"@polkadot/util-crypto@npm:13.1.1, @polkadot/util-crypto@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/util-crypto@npm:13.1.1" + dependencies: + "@noble/curves": "npm:^1.3.0" + "@noble/hashes": "npm:^1.3.3" + "@polkadot/networks": "npm:13.1.1" + "@polkadot/util": "npm:13.1.1" + "@polkadot/wasm-crypto": "npm:^7.3.2" + "@polkadot/wasm-util": "npm:^7.3.2" + "@polkadot/x-bigint": "npm:13.1.1" + "@polkadot/x-randomvalues": "npm:13.1.1" + "@scure/base": "npm:^1.1.7" + tslib: "npm:^2.7.0" + peerDependencies: + "@polkadot/util": 13.1.1 + checksum: 10c0/6ce2f75fd55b9f41a99faf8c16e4a02f7d52ce4caec3d323f1cb08bd792798dd6e1b2d3b75cf4dcc2ff1ed81adcaa0d35499c48f1a653325dce01301f8ee2837 + languageName: node + linkType: hard + +"@polkadot/util@npm:13.1.1, @polkadot/util@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/util@npm:13.1.1" + dependencies: + "@polkadot/x-bigint": "npm:13.1.1" + "@polkadot/x-global": "npm:13.1.1" + "@polkadot/x-textdecoder": "npm:13.1.1" + "@polkadot/x-textencoder": "npm:13.1.1" + "@types/bn.js": "npm:^5.1.5" + bn.js: "npm:^5.2.1" + tslib: "npm:^2.7.0" + checksum: 10c0/28a77a42bbc7a71fc8647d393ba1ca0e0e7e46968ac03c4f3d78ee7414f6af32c343c4522a588fc5b1e074f08d7b85b120247c43ff00bea971d201b52a6af0f5 + languageName: node + linkType: hard + +"@polkadot/wasm-bridge@npm:7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-bridge@npm:7.3.2" + dependencies: + "@polkadot/wasm-util": "npm:7.3.2" + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + "@polkadot/x-randomvalues": "*" + checksum: 10c0/8becfcd4efbabe8ea536c353164c8b767a5510d6d62e376813ab1dc0dd4560906f1dfdb1b349d56b4da657ba7c88bc9f074b658218dcae9b1edbd36f4508b710 + languageName: node + linkType: hard + +"@polkadot/wasm-crypto-asmjs@npm:7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-crypto-asmjs@npm:7.3.2" + dependencies: + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + checksum: 10c0/c4eb0b2c6bae2cd7b4ada5211c877a0f0cff4d4a4f2716817430c5aab74f4e8d37099add57c809a098033028378ed3e88ba1c56fd85b6fd0a80b181742f7a3f9 + languageName: node + linkType: hard + +"@polkadot/wasm-crypto-init@npm:7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-crypto-init@npm:7.3.2" + dependencies: + "@polkadot/wasm-bridge": "npm:7.3.2" + "@polkadot/wasm-crypto-asmjs": "npm:7.3.2" + "@polkadot/wasm-crypto-wasm": "npm:7.3.2" + "@polkadot/wasm-util": "npm:7.3.2" + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + "@polkadot/x-randomvalues": "*" + checksum: 10c0/4813a87bf44065d4ec7cdc29b00f37cc6859974969710c6a6fefba8e42f5bb0c7e102293a8418b1c6e1b5fd55540d13beebdff777200b69420ce50b8fad803ed + languageName: node + linkType: hard + +"@polkadot/wasm-crypto-wasm@npm:7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-crypto-wasm@npm:7.3.2" + dependencies: + "@polkadot/wasm-util": "npm:7.3.2" + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + checksum: 10c0/546ebc5c42929f2f37565190014ff26f6817024e087c56053c1d8c1dcffd1f02014c4638ca70c79145d540f760339699209bb1dc939c235085a7c78efd56bc60 + languageName: node + linkType: hard + +"@polkadot/wasm-crypto@npm:^7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-crypto@npm:7.3.2" + dependencies: + "@polkadot/wasm-bridge": "npm:7.3.2" + "@polkadot/wasm-crypto-asmjs": "npm:7.3.2" + "@polkadot/wasm-crypto-init": "npm:7.3.2" + "@polkadot/wasm-crypto-wasm": "npm:7.3.2" + "@polkadot/wasm-util": "npm:7.3.2" + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + "@polkadot/x-randomvalues": "*" + checksum: 10c0/ff3ef6a2a4dcbbdeb257e7a42f906f1bb7e31292600482c1acf9267406011ea75bd9d3d6ceaf4c011f986e25a2416768775ee59ccc7dbfa6c529b11b8ea91eb4 + languageName: node + linkType: hard + +"@polkadot/wasm-util@npm:7.3.2, @polkadot/wasm-util@npm:^7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-util@npm:7.3.2" + dependencies: + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + checksum: 10c0/58ef58d357e7983c3bb4008b0159262d5c588234d7be64155c031f452fc0daeb078ff0ac8bb4b0377dac307130b0b548c01fd466968869ed308d50e2c162d23b + languageName: node + linkType: hard + +"@polkadot/x-bigint@npm:13.1.1, @polkadot/x-bigint@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/x-bigint@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + tslib: "npm:^2.7.0" + checksum: 10c0/8df11029c9956d38bd6005f1d85cf4c4d67058fdff14f534e487dc30c43003e35f4e89dc102501c216806446ec6f40615dba4bf957a484b8ede78c398bec7568 + languageName: node + linkType: hard + +"@polkadot/x-fetch@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/x-fetch@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + node-fetch: "npm:^3.3.2" + tslib: "npm:^2.7.0" + checksum: 10c0/e6a5ad72f4f2ba9b204ba124ae2ec7b23b03ec0a857037fcd2221e465b3034b8ad48229cb78598ea955d6ea0be5126f0b1a63aad7b5fea2fb632aebcc7971ad2 + languageName: node + linkType: hard + +"@polkadot/x-global@npm:13.1.1, @polkadot/x-global@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/x-global@npm:13.1.1" + dependencies: + tslib: "npm:^2.7.0" + checksum: 10c0/07a69f24a94c6bd8934dc39f52dee620f9a0cbac368f0a8e6b5e4637f8e90ba48e110fa4cf8ac1d6b8e80f4acd41af8be5c493d89abe7fe29c0523d7aac3eefb + languageName: node + linkType: hard + +"@polkadot/x-randomvalues@npm:13.1.1": + version: 13.1.1 + resolution: "@polkadot/x-randomvalues@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + tslib: "npm:^2.7.0" + peerDependencies: + "@polkadot/util": 13.1.1 + "@polkadot/wasm-util": "*" + checksum: 10c0/425512c16d66fa9e8badcb14305b1547c11f38dbe3640c3e8fe6f5504baed80764398df783322c92d2a7e53b568414898f28917606f346a30b6ee4a9dcb97628 + languageName: node + linkType: hard + +"@polkadot/x-textdecoder@npm:13.1.1": + version: 13.1.1 + resolution: "@polkadot/x-textdecoder@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + tslib: "npm:^2.7.0" + checksum: 10c0/bc9671db97ace14383b27de22f301d3b5621aedc74d7ebb4c723eed3b74b952850b697be50b09b8456eed6196edec71b324aa6d1dd3558515fe639a51bcc52d2 + languageName: node + linkType: hard + +"@polkadot/x-textencoder@npm:13.1.1": + version: 13.1.1 + resolution: "@polkadot/x-textencoder@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + tslib: "npm:^2.7.0" + checksum: 10c0/819d9dc729a8d635c0269f5a2b8dbec1350c766040946ea750f4df872e9d4be397be74e3ad5d425f3d6df51eff021a7a86966223f4c58694c0bdeadf741312a6 + languageName: node + linkType: hard + +"@polkadot/x-ws@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/x-ws@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + tslib: "npm:^2.7.0" + ws: "npm:^8.16.0" + checksum: 10c0/6d485fb62218beee0ea38e3dc275385ad9fa64677f451833447a5e54bbf70c3827e5a4d4e7d9531988109e8f1760437f854c7cb19e2df488f35b4c20bf8a6b1e + languageName: node + linkType: hard + +"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/aspromise@npm:1.1.2" + checksum: 10c0/a83343a468ff5b5ec6bff36fd788a64c839e48a07ff9f4f813564f58caf44d011cd6504ed2147bf34835bd7a7dd2107052af755961c6b098fd8902b4f6500d0f + languageName: node + linkType: hard + +"@protobufjs/base64@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/base64@npm:1.1.2" + checksum: 10c0/eec925e681081af190b8ee231f9bad3101e189abbc182ff279da6b531e7dbd2a56f1f306f37a80b1be9e00aa2d271690d08dcc5f326f71c9eed8546675c8caf6 + languageName: node + linkType: hard + +"@protobufjs/codegen@npm:^2.0.4": + version: 2.0.4 + resolution: "@protobufjs/codegen@npm:2.0.4" + checksum: 10c0/26ae337c5659e41f091606d16465bbcc1df1f37cc1ed462438b1f67be0c1e28dfb2ca9f294f39100c52161aef82edf758c95d6d75650a1ddf31f7ddee1440b43 + languageName: node + linkType: hard + +"@protobufjs/eventemitter@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/eventemitter@npm:1.1.0" + checksum: 10c0/1eb0a75180e5206d1033e4138212a8c7089a3d418c6dfa5a6ce42e593a4ae2e5892c4ef7421f38092badba4040ea6a45f0928869989411001d8c1018ea9a6e70 + languageName: node + linkType: hard + +"@protobufjs/fetch@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/fetch@npm:1.1.0" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.1" + "@protobufjs/inquire": "npm:^1.1.0" + checksum: 10c0/cda6a3dc2d50a182c5865b160f72077aac197046600091dbb005dd0a66db9cce3c5eaed6d470ac8ed49d7bcbeef6ee5f0bc288db5ff9a70cbd003e5909065233 + languageName: node + linkType: hard + +"@protobufjs/float@npm:^1.0.2": + version: 1.0.2 + resolution: "@protobufjs/float@npm:1.0.2" + checksum: 10c0/18f2bdede76ffcf0170708af15c9c9db6259b771e6b84c51b06df34a9c339dbbeec267d14ce0bddd20acc142b1d980d983d31434398df7f98eb0c94a0eb79069 + languageName: node + linkType: hard + +"@protobufjs/inquire@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/inquire@npm:1.1.0" + checksum: 10c0/64372482efcba1fb4d166a2664a6395fa978b557803857c9c03500e0ac1013eb4b1aacc9ed851dd5fc22f81583670b4f4431bae186f3373fedcfde863ef5921a + languageName: node + linkType: hard + +"@protobufjs/path@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/path@npm:1.1.2" + checksum: 10c0/cece0a938e7f5dfd2fa03f8c14f2f1cf8b0d6e13ac7326ff4c96ea311effd5fb7ae0bba754fbf505312af2e38500250c90e68506b97c02360a43793d88a0d8b4 + languageName: node + linkType: hard + +"@protobufjs/pool@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/pool@npm:1.1.0" + checksum: 10c0/eda2718b7f222ac6e6ad36f758a92ef90d26526026a19f4f17f668f45e0306a5bd734def3f48f51f8134ae0978b6262a5c517c08b115a551756d1a3aadfcf038 + languageName: node + linkType: hard + +"@protobufjs/utf8@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/utf8@npm:1.1.0" + checksum: 10c0/a3fe31fe3fa29aa3349e2e04ee13dc170cc6af7c23d92ad49e3eeaf79b9766264544d3da824dba93b7855bd6a2982fb40032ef40693da98a136d835752beb487 + languageName: node + linkType: hard + +"@scure/base@npm:^1.1.1, @scure/base@npm:^1.1.7": + version: 1.1.9 + resolution: "@scure/base@npm:1.1.9" + checksum: 10c0/77a06b9a2db8144d22d9bf198338893d77367c51b58c72b99df990c0a11f7cadd066d4102abb15e3ca6798d1529e3765f55c4355742465e49aed7a0c01fe76e8 + languageName: node + linkType: hard + +"@substrate/connect-extension-protocol@npm:^2.0.0": + version: 2.1.0 + resolution: "@substrate/connect-extension-protocol@npm:2.1.0" + checksum: 10c0/950898136d591fadf4086b040357cbb5f28fbd4b069df48fba2d78eda09025c52cb9c8766d8bad278e9b26431500cc570bc7afa242d43ffbf86405b4d820eaf3 + languageName: node + linkType: hard + +"@substrate/connect-known-chains@npm:^1.1.5": + version: 1.4.1 + resolution: "@substrate/connect-known-chains@npm:1.4.1" + checksum: 10c0/fbfe7e7af93bbf5209332e059b54baa71f63a2cc05c4f4dd9f010862e4b36e46de73585f90b9d1c07b8ddd60ef75cecab0fc9e43faeec034976195e9a02f23ab + languageName: node + linkType: hard + +"@substrate/connect@npm:0.8.11": + version: 0.8.11 + resolution: "@substrate/connect@npm:0.8.11" + dependencies: + "@substrate/connect-extension-protocol": "npm:^2.0.0" + "@substrate/connect-known-chains": "npm:^1.1.5" + "@substrate/light-client-extension-helpers": "npm:^1.0.0" + smoldot: "npm:2.0.26" + checksum: 10c0/ad37dc5d6c806b95a346d42a94b1968b1aa3056ef7dd1a9af60670ab1fe6ecbc61ae52ae74e2b5a93a75b61db812bbe0c3409eb207bd4b438bec02d3554d6daa + languageName: node + linkType: hard + +"@substrate/light-client-extension-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "@substrate/light-client-extension-helpers@npm:1.0.0" + dependencies: + "@polkadot-api/json-rpc-provider": "npm:^0.0.1" + "@polkadot-api/json-rpc-provider-proxy": "npm:^0.1.0" + "@polkadot-api/observable-client": "npm:^0.3.0" + "@polkadot-api/substrate-client": "npm:^0.1.2" + "@substrate/connect-extension-protocol": "npm:^2.0.0" + "@substrate/connect-known-chains": "npm:^1.1.5" + rxjs: "npm:^7.8.1" + peerDependencies: + smoldot: 2.x + checksum: 10c0/41b692c4f8ec8ee5e67f7c184ea0556c92d2755401efd20c9ee440d0d1d76e00972b76c92514cc6850855a55bbf062b301f1188eeb3b926a7fc1adb914298e94 + languageName: node + linkType: hard + +"@substrate/ss58-registry@npm:^1.50.0": + version: 1.50.0 + resolution: "@substrate/ss58-registry@npm:1.50.0" + checksum: 10c0/49178248445d88b2f06f6e45e7890bd292f91b9d5d6bfa2788f27b5d9e3a08d3f18462440ea905b2fe7fa60dafb690d40ce1f549929bdbbe48562be622748717 + languageName: node + linkType: hard + +"@tsconfig/node10@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node10@npm:1.0.11" + checksum: 10c0/28a0710e5d039e0de484bdf85fee883bfd3f6a8980601f4d44066b0a6bcd821d31c4e231d1117731c4e24268bd4cf2a788a6787c12fc7f8d11014c07d582783c + languageName: node + linkType: hard + +"@tsconfig/node12@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node12@npm:1.0.11" + checksum: 10c0/dddca2b553e2bee1308a056705103fc8304e42bb2d2cbd797b84403a223b25c78f2c683ec3e24a095e82cd435387c877239bffcb15a590ba817cd3f6b9a99fd9 + languageName: node + linkType: hard + +"@tsconfig/node14@npm:^1.0.0": + version: 1.0.3 + resolution: "@tsconfig/node14@npm:1.0.3" + checksum: 10c0/67c1316d065fdaa32525bc9449ff82c197c4c19092b9663b23213c8cbbf8d88b6ed6a17898e0cbc2711950fbfaf40388938c1c748a2ee89f7234fc9e7fe2bf44 + languageName: node + linkType: hard + +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.4 + resolution: "@tsconfig/node16@npm:1.0.4" + checksum: 10c0/05f8f2734e266fb1839eb1d57290df1664fe2aa3b0fdd685a9035806daa635f7519bf6d5d9b33f6e69dd545b8c46bd6e2b5c79acb2b1f146e885f7f11a42a5bb + languageName: node + linkType: hard + +"@types/bn.js@npm:^5.1.5": + version: 5.1.6 + resolution: "@types/bn.js@npm:5.1.6" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/073d383d87afea513a8183ce34af7bc0a7a798d057c7ae651982b7f30dd7d93f33247323bca3ba39f1f6af146b564aff547b15467bdf9fc922796c17e8426bf6 + languageName: node + linkType: hard + +"@types/long@npm:^4.0.1": + version: 4.0.2 + resolution: "@types/long@npm:4.0.2" + checksum: 10c0/42ec66ade1f72ff9d143c5a519a65efc7c1c77be7b1ac5455c530ae9acd87baba065542f8847522af2e3ace2cc999f3ad464ef86e6b7352eece34daf88f8c924 + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:>=13.7.0": + version: 22.7.4 + resolution: "@types/node@npm:22.7.4" + dependencies: + undici-types: "npm:~6.19.2" + checksum: 10c0/c22bf54515c78ff3170142c1e718b90e2a0003419dc2d55f79c9c9362edd590a6ab1450deb09ff6e1b32d1b4698da407930b16285e8be3a009ea6cd2695cac01 + languageName: node + linkType: hard + +"@zombienet/cli@npm:^1.3.109": + version: 1.3.111 + resolution: "@zombienet/cli@npm:1.3.111" + dependencies: + "@zombienet/dsl-parser-wrapper": "npm:^0.1.10" + "@zombienet/orchestrator": "npm:^0.0.92" + "@zombienet/utils": "npm:^0.0.25" + cli-progress: "npm:^3.12.0" + commander: "npm:^11.1.0" + debug: "npm:^4.3.4" + nunjucks: "npm:^3.2.4" + typescript: "npm:^5.3.3" + bin: + zombienet: dist/cli.js + checksum: 10c0/07d2f6bffc79ccbb3543c987099697da593b4baefd6cc7eeb9e9d3a01abebd123d4d97d51e2a771e8f6614d7870eb81287d8f9869972bd8bc07dad2da849f508 + languageName: node + linkType: hard + +"@zombienet/dsl-parser-wrapper@npm:^0.1.10": + version: 0.1.10 + resolution: "@zombienet/dsl-parser-wrapper@npm:0.1.10" + checksum: 10c0/5a28f8bd6e91befd077071040fe158fe231076f3742f29b2d8539e929949ccafe1a4028f7775ccfbaac85e94ad3cb05d201602a2afd24f187c27ffcca4a55a93 + languageName: node + linkType: hard + +"@zombienet/orchestrator@npm:^0.0.92": + version: 0.0.92 + resolution: "@zombienet/orchestrator@npm:0.0.92" + dependencies: + "@polkadot/api": "npm:^12.3.1" + "@polkadot/keyring": "npm:^13.0.2" + "@polkadot/util-crypto": "npm:^13.0.2" + "@zombienet/utils": "npm:^0.0.25" + JSONStream: "npm:^1.3.5" + chai: "npm:^4.3.10" + debug: "npm:^4.3.4" + execa: "npm:^5.1.1" + fs-extra: "npm:^11.2.0" + jsdom: "npm:^23.2.0" + json-bigint: "npm:^1.0.0" + libp2p-crypto: "npm:^0.21.2" + minimatch: "npm:^9.0.4" + mocha: "npm:^10.4.0" + napi-maybe-compressed-blob: "npm:^0.0.11" + peer-id: "npm:^0.16.0" + tmp-promise: "npm:^3.0.3" + typescript: "npm:^5.3.3" + yaml: "npm:^2.4.1" + checksum: 10c0/c711227a01d9fa999ae41e626c46dc3f7567bd445fdbc6f07d6adb6190f8b1878645d6cec80c7e7d3994208c99a3e110aae6c5318fa10e0684b4c21cff8e8473 + languageName: node + linkType: hard + +"@zombienet/utils@npm:^0.0.25": + version: 0.0.25 + resolution: "@zombienet/utils@npm:0.0.25" + dependencies: + cli-table3: "npm:^0.6.3" + debug: "npm:^4.3.4" + mocha: "npm:^10.2.0" + nunjucks: "npm:^3.2.4" + toml: "npm:^3.0.0" + ts-node: "npm:^10.9.2" + checksum: 10c0/227ff8fd40dfbcfad259647dfe5a292b9cd10b1e224e13b73cfc869398fc76c8cfee9e4e874f1f6c29573c313dd2dcc8a6b2297c09ab4978af3f8aa70cc852a9 + languageName: node + linkType: hard + +"JSONStream@npm:^1.3.5": + version: 1.3.5 + resolution: "JSONStream@npm:1.3.5" + dependencies: + jsonparse: "npm:^1.2.0" + through: "npm:>=2.2.7 <3" + bin: + JSONStream: ./bin.js + checksum: 10c0/0f54694da32224d57b715385d4a6b668d2117379d1f3223dc758459246cca58fdc4c628b83e8a8883334e454a0a30aa198ede77c788b55537c1844f686a751f2 + languageName: node + linkType: hard + +"a-sync-waterfall@npm:^1.0.0": + version: 1.0.1 + resolution: "a-sync-waterfall@npm:1.0.1" + checksum: 10c0/1c7b258da2c77eb1447dcc683afb10ca3dc8880de990562ccbb7b282538aba01e910345ce9e8500c1458272c7866b85fcfa5ca8159e33550b011ab5c586ec5a4 + languageName: node + linkType: hard + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 + languageName: node + linkType: hard + +"acorn-walk@npm:^8.1.1": + version: 8.3.4 + resolution: "acorn-walk@npm:8.3.4" + dependencies: + acorn: "npm:^8.11.0" + checksum: 10c0/76537ac5fb2c37a64560feaf3342023dadc086c46da57da363e64c6148dc21b57d49ace26f949e225063acb6fb441eabffd89f7a3066de5ad37ab3e328927c62 + languageName: node + linkType: hard + +"acorn@npm:^8.11.0, acorn@npm:^8.4.1": + version: 8.12.1 + resolution: "acorn@npm:8.12.1" + bin: + acorn: bin/acorn + checksum: 10c0/51fb26cd678f914e13287e886da2d7021f8c2bc0ccc95e03d3e0447ee278dd3b40b9c57dc222acd5881adcf26f3edc40901a4953403232129e3876793cd17386 + languageName: node + linkType: hard + +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": + version: 7.1.1 + resolution: "agent-base@npm:7.1.1" + dependencies: + debug: "npm:^4.3.4" + checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 + languageName: node + linkType: hard + +"ansi-colors@npm:^4.1.3": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c + languageName: node + linkType: hard + +"anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac + languageName: node + linkType: hard + +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 10c0/070ff801a9d236a6caa647507bdcc7034530604844d64408149a26b9e87c2f97650055c0f049abd1efc024b334635c01f29e0b632b371ac3f26130f4cf65997a + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e + languageName: node + linkType: hard + +"asap@npm:^2.0.3": + version: 2.0.6 + resolution: "asap@npm:2.0.6" + checksum: 10c0/c6d5e39fe1f15e4b87677460bd66b66050cd14c772269cee6688824c1410a08ab20254bb6784f9afb75af9144a9f9a7692d49547f4d19d715aeb7c0318f3136d + languageName: node + linkType: hard + +"assertion-error@npm:^1.1.0": + version: 1.1.0 + resolution: "assertion-error@npm:1.1.0" + checksum: 10c0/25456b2aa333250f01143968e02e4884a34588a8538fbbf65c91a637f1dbfb8069249133cd2f4e530f10f624d206a664e7df30207830b659e9f5298b00a4099b + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"bidi-js@npm:^1.0.3": + version: 1.0.3 + resolution: "bidi-js@npm:1.0.3" + dependencies: + require-from-string: "npm:^2.0.2" + checksum: 10c0/fdddea4aa4120a34285486f2267526cd9298b6e8b773ad25e765d4f104b6d7437ab4ba542e6939e3ac834a7570bcf121ee2cf6d3ae7cd7082c4b5bedc8f271e1 + languageName: node + linkType: hard + +"bignumber.js@npm:^9.0.0": + version: 9.1.2 + resolution: "bignumber.js@npm:9.1.2" + checksum: 10c0/e17786545433f3110b868725c449fa9625366a6e675cd70eb39b60938d6adbd0158cb4b3ad4f306ce817165d37e63f4aa3098ba4110db1d9a3b9f66abfbaf10d + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5 + languageName: node + linkType: hard + +"bn.js@npm:^5.2.1": + version: 5.2.1 + resolution: "bn.js@npm:5.2.1" + checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f + languageName: node + linkType: hard + +"braces@npm:~3.0.2": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: "npm:^7.1.1" + checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04 + languageName: node + linkType: hard + +"browser-stdout@npm:^1.3.1": + version: 1.3.1 + resolution: "browser-stdout@npm:1.3.1" + checksum: 10c0/c40e482fd82be872b6ea7b9f7591beafbf6f5ba522fe3dade98ba1573a1c29a11101564993e4eb44e5488be8f44510af072df9a9637c739217eb155ceb639205 + languageName: node + linkType: hard + +"cacache@npm:^18.0.0": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" + dependencies: + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^4.0.0" + ssri: "npm:^10.0.0" + tar: "npm:^6.1.11" + unique-filename: "npm:^3.0.0" + checksum: 10c0/6c055bafed9de4f3dcc64ac3dc7dd24e863210902b7c470eb9ce55a806309b3efff78033e3d8b4f7dcc5d467f2db43c6a2857aaaf26f0094b8a351d44c42179f + languageName: node + linkType: hard + +"camelcase@npm:^6.0.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 10c0/0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 + languageName: node + linkType: hard + +"chai@npm:^4.3.10": + version: 4.5.0 + resolution: "chai@npm:4.5.0" + dependencies: + assertion-error: "npm:^1.1.0" + check-error: "npm:^1.0.3" + deep-eql: "npm:^4.1.3" + get-func-name: "npm:^2.0.2" + loupe: "npm:^2.3.6" + pathval: "npm:^1.1.1" + type-detect: "npm:^4.1.0" + checksum: 10c0/b8cb596bd1aece1aec659e41a6e479290c7d9bee5b3ad63d2898ad230064e5b47889a3bc367b20100a0853b62e026e2dc514acf25a3c9385f936aa3614d4ab4d + languageName: node + linkType: hard + +"chalk@npm:^4.1.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + +"check-error@npm:^1.0.3": + version: 1.0.3 + resolution: "check-error@npm:1.0.3" + dependencies: + get-func-name: "npm:^2.0.2" + checksum: 10c0/94aa37a7315c0e8a83d0112b5bfb5a8624f7f0f81057c73e4707729cdd8077166c6aefb3d8e2b92c63ee130d4a2ff94bad46d547e12f3238cc1d78342a973841 + languageName: node + linkType: hard + +"chokidar@npm:^3.5.3": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: "npm:~3.1.2" + braces: "npm:~3.0.2" + fsevents: "npm:~2.3.2" + glob-parent: "npm:~5.1.2" + is-binary-path: "npm:~2.1.0" + is-glob: "npm:~4.0.1" + normalize-path: "npm:~3.0.0" + readdirp: "npm:~3.6.0" + dependenciesMeta: + fsevents: + optional: true + checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462 + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 + languageName: node + linkType: hard + +"class-is@npm:^1.1.0": + version: 1.1.0 + resolution: "class-is@npm:1.1.0" + checksum: 10c0/07241182c379a630c1841e99cd2301f0492d8f973f111f13b4487231f7cc28a1f1166670ce2dfcab91449155e6e107379eb9d15ba140e749a11d4fcba3883f52 + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 + languageName: node + linkType: hard + +"cli-progress@npm:^3.12.0": + version: 3.12.0 + resolution: "cli-progress@npm:3.12.0" + dependencies: + string-width: "npm:^4.2.3" + checksum: 10c0/f464cb19ebde2f3880620a2adfaeeefaec6cb15c8e610c8a659ca1047ee90d69f3bf2fdabbb1fe33ac408678e882e3e0eecdb84ab5df0edf930b269b8a72682d + languageName: node + linkType: hard + +"cli-table3@npm:^0.6.3": + version: 0.6.5 + resolution: "cli-table3@npm:0.6.5" + dependencies: + "@colors/colors": "npm:1.5.0" + string-width: "npm:^4.2.0" + dependenciesMeta: + "@colors/colors": + optional: true + checksum: 10c0/d7cc9ed12212ae68241cc7a3133c52b844113b17856e11f4f81308acc3febcea7cc9fd298e70933e294dd642866b29fd5d113c2c098948701d0c35f09455de78 + languageName: node + linkType: hard + +"cliui@npm:^7.0.2": + version: 7.0.4 + resolution: "cliui@npm:7.0.4" + dependencies: + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.0" + wrap-ansi: "npm:^7.0.0" + checksum: 10c0/6035f5daf7383470cef82b3d3db00bec70afb3423538c50394386ffbbab135e26c3689c41791f911fa71b62d13d3863c712fdd70f0fbdffd938a1e6fd09aac00 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 + languageName: node + linkType: hard + +"commander@npm:^11.1.0": + version: 11.1.0 + resolution: "commander@npm:11.1.0" + checksum: 10c0/13cc6ac875e48780250f723fb81c1c1178d35c5decb1abb1b628b3177af08a8554e76b2c0f29de72d69eef7c864d12613272a71fabef8047922bc622ab75a179 + languageName: node + linkType: hard + +"commander@npm:^5.1.0": + version: 5.1.0 + resolution: "commander@npm:5.1.0" + checksum: 10c0/da9d71dbe4ce039faf1fe9eac3771dca8c11d66963341f62602f7b66e36d2a3f8883407af4f9a37b1db1a55c59c0c1325f186425764c2e963dc1d67aec2a4b6d + languageName: node + linkType: hard + +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: 10c0/157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 + languageName: node + linkType: hard + +"css-tree@npm:^2.3.1": + version: 2.3.1 + resolution: "css-tree@npm:2.3.1" + dependencies: + mdn-data: "npm:2.0.30" + source-map-js: "npm:^1.0.1" + checksum: 10c0/6f8c1a11d5e9b14bf02d10717fc0351b66ba12594166f65abfbd8eb8b5b490dd367f5c7721db241a3c792d935fc6751fbc09f7e1598d421477ad9fadc30f4f24 + languageName: node + linkType: hard + +"cssstyle@npm:^4.0.1": + version: 4.1.0 + resolution: "cssstyle@npm:4.1.0" + dependencies: + rrweb-cssom: "npm:^0.7.1" + checksum: 10c0/05c6597e5d3e0ec6b15221f2c0ce9a0443a46cc50a6089a3ba9ee1ac27f83ff86a445a8f95435137dadd859f091fc61b6d342abaf396d3c910471b5b33cfcbfa + languageName: node + linkType: hard + +"data-uri-to-buffer@npm:^4.0.0": + version: 4.0.1 + resolution: "data-uri-to-buffer@npm:4.0.1" + checksum: 10c0/20a6b93107597530d71d4cb285acee17f66bcdfc03fd81040921a81252f19db27588d87fc8fc69e1950c55cfb0bf8ae40d0e5e21d907230813eb5d5a7f9eb45b + languageName: node + linkType: hard + +"data-urls@npm:^5.0.0": + version: 5.0.0 + resolution: "data-urls@npm:5.0.0" + dependencies: + whatwg-mimetype: "npm:^4.0.0" + whatwg-url: "npm:^14.0.0" + checksum: 10c0/1b894d7d41c861f3a4ed2ae9b1c3f0909d4575ada02e36d3d3bc584bdd84278e20709070c79c3b3bff7ac98598cb191eb3e86a89a79ea4ee1ef360e1694f92ad + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.4, debug@npm:^4.3.5": + version: 4.3.7 + resolution: "debug@npm:4.3.7" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b + languageName: node + linkType: hard + +"decamelize@npm:^4.0.0": + version: 4.0.0 + resolution: "decamelize@npm:4.0.0" + checksum: 10c0/e06da03fc05333e8cd2778c1487da67ffbea5b84e03ca80449519b8fa61f888714bbc6f459ea963d5641b4aa98832130eb5cd193d90ae9f0a27eee14be8e278d + languageName: node + linkType: hard + +"decimal.js@npm:^10.4.3": + version: 10.4.3 + resolution: "decimal.js@npm:10.4.3" + checksum: 10c0/6d60206689ff0911f0ce968d40f163304a6c1bc739927758e6efc7921cfa630130388966f16bf6ef6b838cb33679fbe8e7a78a2f3c478afce841fd55ac8fb8ee + languageName: node + linkType: hard + +"deep-eql@npm:^4.1.3": + version: 4.1.4 + resolution: "deep-eql@npm:4.1.4" + dependencies: + type-detect: "npm:^4.0.0" + checksum: 10c0/264e0613493b43552fc908f4ff87b8b445c0e6e075656649600e1b8a17a57ee03e960156fce7177646e4d2ddaf8e5ee616d76bd79929ff593e5c79e4e5e6c517 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 + languageName: node + linkType: hard + +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: 10c0/81b91f9d39c4eaca068eb0c1eb0e4afbdc5bb2941d197f513dd596b820b956fef43485876226d65d497bebc15666aa2aa82c679e84f65d5f2bfbf14ee46e32c1 + languageName: node + linkType: hard + +"diff@npm:^5.2.0": + version: 5.2.0 + resolution: "diff@npm:5.2.0" + checksum: 10c0/aed0941f206fe261ecb258dc8d0ceea8abbde3ace5827518ff8d302f0fc9cc81ce116c4d8f379151171336caf0516b79e01abdc1ed1201b6440d895a66689eb4 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 + languageName: node + linkType: hard + +"entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 + languageName: node + linkType: hard + +"err-code@npm:^3.0.1": + version: 3.0.1 + resolution: "err-code@npm:3.0.1" + checksum: 10c0/78b1c50500adebde6699b8d27b8ce4728c132dcaad75b5d18ba44f6ccb28769d1fff8368ae1164be4559dac8b95d4e26bb15b480ba9999e0cd0f0c64beaf1b24 + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 + languageName: node + linkType: hard + +"eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 10c0/4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814 + languageName: node + linkType: hard + +"events@npm:^3.3.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6 + languageName: node + linkType: hard + +"execa@npm:^5.1.1": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^6.0.0" + human-signals: "npm:^2.1.0" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.1" + onetime: "npm:^5.1.2" + signal-exit: "npm:^3.0.3" + strip-final-newline: "npm:^2.0.0" + checksum: 10c0/c8e615235e8de4c5addf2fa4c3da3e3aa59ce975a3e83533b4f6a71750fb816a2e79610dc5f1799b6e28976c9ae86747a36a606655bf8cb414a74d8d507b304f + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 + languageName: node + linkType: hard + +"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": + version: 3.2.0 + resolution: "fetch-blob@npm:3.2.0" + dependencies: + node-domexception: "npm:^1.0.0" + web-streams-polyfill: "npm:^3.0.3" + checksum: 10c0/60054bf47bfa10fb0ba6cb7742acec2f37c1f56344f79a70bb8b1c48d77675927c720ff3191fa546410a0442c998d27ab05e9144c32d530d8a52fbe68f843b69 + languageName: node + linkType: hard + +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: "npm:^6.0.0" + path-exists: "npm:^4.0.0" + checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a + languageName: node + linkType: hard + +"flat@npm:^5.0.2": + version: 5.0.2 + resolution: "flat@npm:5.0.2" + bin: + flat: cli.js + checksum: 10c0/f178b13482f0cd80c7fede05f4d10585b1f2fdebf26e12edc138e32d3150c6ea6482b7f12813a1091143bad52bb6d3596bca51a162257a21163c0ff438baa5fe + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.3.0 + resolution: "foreground-child@npm:3.3.0" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 10c0/028f1d41000553fcfa6c4bb5c372963bf3d9bf0b1f25a87d1a6253014343fb69dfb1b42d9625d7cf44c8ba429940f3d0ff718b62105d4d4a4f6ef8ca0a53faa2 + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + mime-types: "npm:^2.1.12" + checksum: 10c0/cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e + languageName: node + linkType: hard + +"formdata-polyfill@npm:^4.0.10": + version: 4.0.10 + resolution: "formdata-polyfill@npm:4.0.10" + dependencies: + fetch-blob: "npm:^3.1.2" + checksum: 10c0/5392ec484f9ce0d5e0d52fb5a78e7486637d516179b0eb84d81389d7eccf9ca2f663079da56f761355c0a65792810e3b345dc24db9a8bbbcf24ef3c8c88570c6 + languageName: node + linkType: hard + +"fs-extra@npm:^11.2.0": + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10c0/d77a9a9efe60532d2e790e938c81a02c1b24904ef7a3efb3990b835514465ba720e99a6ea56fd5e2db53b4695319b644d76d5a0e9988a2beef80aa7b1da63398 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde + languageName: node + linkType: hard + +"get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 10c0/89830fd07623fa73429a711b9daecdb304386d237c71268007f788f113505ef1d4cc2d0b9680e072c5082490aec9df5d7758bf5ac6f1c37062855e8e3dc0b9df + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: 10c0/49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 + languageName: node + linkType: hard + +"glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: "npm:^4.0.1" + checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee + languageName: node + linkType: hard + +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e + languageName: node + linkType: hard + +"glob@npm:^8.1.0": + version: 8.1.0 + resolution: "glob@npm:8.1.0" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^5.0.1" + once: "npm:^1.3.0" + checksum: 10c0/cb0b5cab17a59c57299376abe5646c7070f8acb89df5595b492dba3bfb43d301a46c01e5695f01154e6553168207cb60d4eaf07d3be4bc3eb9b0457c5c561d0f + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 + languageName: node + linkType: hard + +"he@npm:^1.2.0": + version: 1.2.0 + resolution: "he@npm:1.2.0" + bin: + he: bin/he + checksum: 10c0/a27d478befe3c8192f006cdd0639a66798979dfa6e2125c6ac582a19a5ebfec62ad83e8382e6036170d873f46e4536a7e795bf8b95bf7c247f4cc0825ccc8c17 + languageName: node + linkType: hard + +"html-encoding-sniffer@npm:^4.0.0": + version: 4.0.0 + resolution: "html-encoding-sniffer@npm:4.0.0" + dependencies: + whatwg-encoding: "npm:^3.1.1" + checksum: 10c0/523398055dc61ac9b34718a719cb4aa691e4166f29187e211e1607de63dc25ac7af52ca7c9aead0c4b3c0415ffecb17326396e1202e2e86ff4bca4c0ee4c6140 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2": + version: 7.0.5 + resolution: "https-proxy-agent@npm:7.0.5" + dependencies: + agent-base: "npm:^7.0.2" + debug: "npm:4" + checksum: 10c0/2490e3acec397abeb88807db52cac59102d5ed758feee6df6112ab3ccd8325e8a1ce8bce6f4b66e5470eca102d31e425ace904242e4fa28dbe0c59c4bafa7b2c + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: 10c0/695edb3edfcfe9c8b52a76926cd31b36978782062c0ed9b1192b36bebc75c4c87c82e178dfcb0ed0fc27ca59d434198aac0bd0be18f5781ded775604db22304a + languageName: node + linkType: hard + +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.3": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc + languageName: node + linkType: hard + +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: "npm:^2.0.0" + checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + +"is-glob@npm:^4.0.1, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 + languageName: node + linkType: hard + +"is-plain-obj@npm:^2.1.0": + version: 2.1.0 + resolution: "is-plain-obj@npm:2.1.0" + checksum: 10c0/e5c9814cdaa627a9ad0a0964ded0e0491bfd9ace405c49a5d63c88b30a162f1512c069d5b80997893c4d0181eadc3fed02b4ab4b81059aba5620bfcdfdeb9c53 + languageName: node + linkType: hard + +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: 10c0/b73e2f22bc863b0939941d369486d308b43d7aef1f9439705e3582bfccaa4516406865e32c968a35f97a99396dac84e2624e67b0a16b0a15086a785e16ce7db9 + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: 10c0/00cbe3455c3756be68d2542c416cab888aebd5012781d6819749fefb15162ff23e38501fe681b3d751c73e8ff561ac09a5293eba6f58fdf0178462ce6dcb3453 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 + languageName: node + linkType: hard + +"iso-random-stream@npm:^2.0.0": + version: 2.0.2 + resolution: "iso-random-stream@npm:2.0.2" + dependencies: + events: "npm:^3.3.0" + readable-stream: "npm:^3.4.0" + checksum: 10c0/30fcb71fc153f84b355ce2ef3b596293cefbaf1c79a97188b5f50abf06dc14bb77387bb03c41c5550463acc04ff4f0431ff1872ab2bcf0bbc08291ccee33b9a5 + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f + languageName: node + linkType: hard + +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 + languageName: node + linkType: hard + +"jsdom@npm:^23.2.0": + version: 23.2.0 + resolution: "jsdom@npm:23.2.0" + dependencies: + "@asamuzakjp/dom-selector": "npm:^2.0.1" + cssstyle: "npm:^4.0.1" + data-urls: "npm:^5.0.0" + decimal.js: "npm:^10.4.3" + form-data: "npm:^4.0.0" + html-encoding-sniffer: "npm:^4.0.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.2" + is-potential-custom-element-name: "npm:^1.0.1" + parse5: "npm:^7.1.2" + rrweb-cssom: "npm:^0.6.0" + saxes: "npm:^6.0.0" + symbol-tree: "npm:^3.2.4" + tough-cookie: "npm:^4.1.3" + w3c-xmlserializer: "npm:^5.0.0" + webidl-conversions: "npm:^7.0.0" + whatwg-encoding: "npm:^3.1.1" + whatwg-mimetype: "npm:^4.0.0" + whatwg-url: "npm:^14.0.0" + ws: "npm:^8.16.0" + xml-name-validator: "npm:^5.0.0" + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10c0/b062af50f7be59d914ba75236b7817c848ef3cd007aea1d6b8020a41eb263b7d5bd2652298106e9756b56892f773d990598778d02adab7d0d0d8e58726fc41d3 + languageName: node + linkType: hard + +"json-bigint@npm:^1.0.0": + version: 1.0.0 + resolution: "json-bigint@npm:1.0.0" + dependencies: + bignumber.js: "npm:^9.0.0" + checksum: 10c0/e3f34e43be3284b573ea150a3890c92f06d54d8ded72894556357946aeed9877fd795f62f37fe16509af189fd314ab1104d0fd0f163746ad231b9f378f5b33f4 + languageName: node + linkType: hard + +"json-stringify-safe@npm:^5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: "npm:^4.1.6" + universalify: "npm:^2.0.0" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10c0/4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865 + languageName: node + linkType: hard + +"jsonparse@npm:^1.2.0": + version: 1.3.1 + resolution: "jsonparse@npm:1.3.1" + checksum: 10c0/89bc68080cd0a0e276d4b5ab1b79cacd68f562467008d176dc23e16e97d4efec9e21741d92ba5087a8433526a45a7e6a9d5ef25408696c402ca1cfbc01a90bf0 + languageName: node + linkType: hard + +"libp2p-crypto@npm:^0.21.0, libp2p-crypto@npm:^0.21.2": + version: 0.21.2 + resolution: "libp2p-crypto@npm:0.21.2" + dependencies: + "@noble/ed25519": "npm:^1.5.1" + "@noble/secp256k1": "npm:^1.3.0" + err-code: "npm:^3.0.1" + iso-random-stream: "npm:^2.0.0" + multiformats: "npm:^9.4.5" + node-forge: "npm:^1.2.1" + protobufjs: "npm:^6.11.2" + uint8arrays: "npm:^3.0.0" + checksum: 10c0/d4c5700713d66fcc2f3f53457294634748efa1fa865bcb9efc6367a55e9b426a2bd7c12e445c4140852da339918a4c28ac8e0a5a5fa2a3d68dfad2824ebe3f25 + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: "npm:^5.0.0" + checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3 + languageName: node + linkType: hard + +"log-symbols@npm:^4.1.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: "npm:^4.1.0" + is-unicode-supported: "npm:^0.1.0" + checksum: 10c0/67f445a9ffa76db1989d0fa98586e5bc2fd5247260dafb8ad93d9f0ccd5896d53fb830b0e54dade5ad838b9de2006c826831a3c528913093af20dff8bd24aca6 + languageName: node + linkType: hard + +"long@npm:^4.0.0": + version: 4.0.0 + resolution: "long@npm:4.0.0" + checksum: 10c0/50a6417d15b06104dbe4e3d4a667c39b137f130a9108ea8752b352a4cfae047531a3ac351c181792f3f8768fe17cca6b0f406674a541a86fb638aaac560d83ed + languageName: node + linkType: hard + +"loupe@npm:^2.3.6": + version: 2.3.7 + resolution: "loupe@npm:2.3.7" + dependencies: + get-func-name: "npm:^2.0.1" + checksum: 10c0/71a781c8fc21527b99ed1062043f1f2bb30bdaf54fa4cf92463427e1718bc6567af2988300bc243c1f276e4f0876f29e3cbf7b58106fdc186915687456ce5bf4 + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb + languageName: node + linkType: hard + +"make-error@npm:^1.1.1": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: 10c0/171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f + languageName: node + linkType: hard + +"make-fetch-happen@npm:^13.0.0": + version: 13.0.1 + resolution: "make-fetch-happen@npm:13.0.1" + dependencies: + "@npmcli/agent": "npm:^2.0.0" + cacache: "npm:^18.0.0" + http-cache-semantics: "npm:^4.1.1" + is-lambda: "npm:^1.0.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^3.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^0.6.3" + proc-log: "npm:^4.2.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^10.0.0" + checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e + languageName: node + linkType: hard + +"mdn-data@npm:2.0.30": + version: 2.0.30 + resolution: "mdn-data@npm:2.0.30" + checksum: 10c0/a2c472ea16cee3911ae742593715aa4c634eb3d4b9f1e6ada0902aa90df13dcbb7285d19435f3ff213ebaa3b2e0c0265c1eb0e3fb278fda7f8919f046a410cd9 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: 10c0/b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 + languageName: node + linkType: hard + +"minimatch@npm:^5.0.1, minimatch@npm:^5.1.6": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/3defdfd230914f22a8da203747c42ee3c405c39d4d37ffda284dac5e45b7e1f6c49aa8be606509002898e73091ff2a3bbfc59c2c6c71d4660609f63aa92f98e3 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.5 + resolution: "minipass-fetch@npm:3.0.5" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^2.1.2" + dependenciesMeta: + encoding: + optional: true + checksum: 10c0/9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: "npm:^3.0.0" + yallist: "npm:^4.0.0" + checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf + languageName: node + linkType: hard + +"mocha@npm:^10.2.0, mocha@npm:^10.4.0": + version: 10.7.3 + resolution: "mocha@npm:10.7.3" + dependencies: + ansi-colors: "npm:^4.1.3" + browser-stdout: "npm:^1.3.1" + chokidar: "npm:^3.5.3" + debug: "npm:^4.3.5" + diff: "npm:^5.2.0" + escape-string-regexp: "npm:^4.0.0" + find-up: "npm:^5.0.0" + glob: "npm:^8.1.0" + he: "npm:^1.2.0" + js-yaml: "npm:^4.1.0" + log-symbols: "npm:^4.1.0" + minimatch: "npm:^5.1.6" + ms: "npm:^2.1.3" + serialize-javascript: "npm:^6.0.2" + strip-json-comments: "npm:^3.1.1" + supports-color: "npm:^8.1.1" + workerpool: "npm:^6.5.1" + yargs: "npm:^16.2.0" + yargs-parser: "npm:^20.2.9" + yargs-unparser: "npm:^2.0.0" + bin: + _mocha: bin/_mocha + mocha: bin/mocha.js + checksum: 10c0/76a205905ec626262d903954daca31ba8e0dd4347092f627b98b8508dcdb5b30be62ec8f7a405fab3b2e691bdc099721c3291b330c3ee85b8ec40d3d179f8728 + languageName: node + linkType: hard + +"mock-socket@npm:^9.3.1": + version: 9.3.1 + resolution: "mock-socket@npm:9.3.1" + checksum: 10c0/0c53baa4acca12ed1ff9bddfdd4bc0cabe0fc96a3ed25a42a00d23b7a111eb6edfc2b44d93aef9a0c93a4a000b4d2d8dcff028488cd2a1e9cc416477ee341ce0 + languageName: node + linkType: hard + +"ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + +"multiformats@npm:^9.4.2, multiformats@npm:^9.4.5": + version: 9.9.0 + resolution: "multiformats@npm:9.9.0" + checksum: 10c0/1fdb34fd2fb085142665e8bd402570659b50a5fae5994027e1df3add9e1ce1283ed1e0c2584a5c63ac0a58e871b8ee9665c4a99ca36ce71032617449d48aa975 + languageName: node + linkType: hard + +"napi-maybe-compressed-blob-darwin-arm64@npm:0.0.11": + version: 0.0.11 + resolution: "napi-maybe-compressed-blob-darwin-arm64@npm:0.0.11" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"napi-maybe-compressed-blob-darwin-x64@npm:0.0.11": + version: 0.0.11 + resolution: "napi-maybe-compressed-blob-darwin-x64@npm:0.0.11" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"napi-maybe-compressed-blob-linux-arm64-gnu@npm:0.0.11": + version: 0.0.11 + resolution: "napi-maybe-compressed-blob-linux-arm64-gnu@npm:0.0.11" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"napi-maybe-compressed-blob-linux-x64-gnu@npm:0.0.11": + version: 0.0.11 + resolution: "napi-maybe-compressed-blob-linux-x64-gnu@npm:0.0.11" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"napi-maybe-compressed-blob@npm:^0.0.11": + version: 0.0.11 + resolution: "napi-maybe-compressed-blob@npm:0.0.11" + dependencies: + napi-maybe-compressed-blob-darwin-arm64: "npm:0.0.11" + napi-maybe-compressed-blob-darwin-x64: "npm:0.0.11" + napi-maybe-compressed-blob-linux-arm64-gnu: "npm:0.0.11" + napi-maybe-compressed-blob-linux-x64-gnu: "npm:0.0.11" + dependenciesMeta: + napi-maybe-compressed-blob-darwin-arm64: + optional: true + napi-maybe-compressed-blob-darwin-x64: + optional: true + napi-maybe-compressed-blob-linux-arm64-gnu: + optional: true + napi-maybe-compressed-blob-linux-x64-gnu: + optional: true + checksum: 10c0/64ac6269904a9f360d9ed5c46e63a0eadac4c6b89a0f29980bafb7053c95b1c2f2339b6cd6dfeaada0ecc8150fd7855ecdb017a47ce49d7080d015633543b249 + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 + languageName: node + linkType: hard + +"nock@npm:^13.5.4": + version: 13.5.5 + resolution: "nock@npm:13.5.5" + dependencies: + debug: "npm:^4.1.0" + json-stringify-safe: "npm:^5.0.1" + propagate: "npm:^2.0.0" + checksum: 10c0/58be4dda214d6e1914232ae41a3ac4f4e05622f71eb82825816f3030e0343bd54c1001878a6bce8412067c1059730919f3d600069d76f1336da11f47bd3b5d40 + languageName: node + linkType: hard + +"node-domexception@npm:^1.0.0": + version: 1.0.0 + resolution: "node-domexception@npm:1.0.0" + checksum: 10c0/5e5d63cda29856402df9472335af4bb13875e1927ad3be861dc5ebde38917aecbf9ae337923777af52a48c426b70148815e890a5d72760f1b4d758cc671b1a2b + languageName: node + linkType: hard + +"node-fetch@npm:^3.3.2": + version: 3.3.2 + resolution: "node-fetch@npm:3.3.2" + dependencies: + data-uri-to-buffer: "npm:^4.0.0" + fetch-blob: "npm:^3.1.4" + formdata-polyfill: "npm:^4.0.10" + checksum: 10c0/f3d5e56190562221398c9f5750198b34cf6113aa304e34ee97c94fd300ec578b25b2c2906edba922050fce983338fde0d5d34fcb0fc3336ade5bd0e429ad7538 + languageName: node + linkType: hard + +"node-forge@npm:^1.2.1": + version: 1.3.1 + resolution: "node-forge@npm:1.3.1" + checksum: 10c0/e882819b251a4321f9fc1d67c85d1501d3004b4ee889af822fd07f64de3d1a8e272ff00b689570af0465d65d6bf5074df9c76e900e0aff23e60b847f2a46fbe8 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 10.2.0 + resolution: "node-gyp@npm:10.2.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + glob: "npm:^10.3.10" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^13.0.0" + nopt: "npm:^7.0.0" + proc-log: "npm:^4.1.0" + semver: "npm:^7.3.5" + tar: "npm:^6.2.1" + which: "npm:^4.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/00630d67dbd09a45aee0a5d55c05e3916ca9e6d427ee4f7bc392d2d3dc5fad7449b21fc098dd38260a53d9dcc9c879b36704a1994235d4707e7271af7e9a835b + languageName: node + linkType: hard + +"nopt@npm:^7.0.0": + version: 7.2.1 + resolution: "nopt@npm:7.2.1" + dependencies: + abbrev: "npm:^2.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81 + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: "npm:^3.0.0" + checksum: 10c0/6f9353a95288f8455cf64cbeb707b28826a7f29690244c1e4bb61ec573256e021b6ad6651b394eb1ccfd00d6ec50147253aba2c5fe58a57ceb111fad62c519ac + languageName: node + linkType: hard + +"nunjucks@npm:^3.2.4": + version: 3.2.4 + resolution: "nunjucks@npm:3.2.4" + dependencies: + a-sync-waterfall: "npm:^1.0.0" + asap: "npm:^2.0.3" + commander: "npm:^5.1.0" + peerDependencies: + chokidar: ^3.3.0 + peerDependenciesMeta: + chokidar: + optional: true + bin: + nunjucks-precompile: bin/precompile + checksum: 10c0/7fe5197559b7c09972c79e2a86f9c093459b9075bc9b41134cd2bc599ae93567b53bd09d472a748edc736192d9ccd2998aa8c20cfcbe6a3fffd281f91897c888 + languageName: node + linkType: hard + +"once@npm:^1.3.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + languageName: node + linkType: hard + +"onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: "npm:^2.1.0" + checksum: 10c0/ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: "npm:^0.1.0" + checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: "npm:^3.0.2" + checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 + languageName: node + linkType: hard + +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b + languageName: node + linkType: hard + +"parse5@npm:^7.1.2": + version: 7.1.2 + resolution: "parse5@npm:7.1.2" + dependencies: + entities: "npm:^4.4.0" + checksum: 10c0/297d7af8224f4b5cb7f6617ecdae98eeaed7f8cbd78956c42785e230505d5a4f07cef352af10d3006fa5c1544b76b57784d3a22d861ae071bbc460c649482bf4 + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + languageName: node + linkType: hard + +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d + languageName: node + linkType: hard + +"pathval@npm:^1.1.1": + version: 1.1.1 + resolution: "pathval@npm:1.1.1" + checksum: 10c0/f63e1bc1b33593cdf094ed6ff5c49c1c0dc5dc20a646ca9725cc7fe7cd9995002d51d5685b9b2ec6814342935748b711bafa840f84c0bb04e38ff40a335c94dc + languageName: node + linkType: hard + +"peer-id@npm:^0.16.0": + version: 0.16.0 + resolution: "peer-id@npm:0.16.0" + dependencies: + class-is: "npm:^1.1.0" + libp2p-crypto: "npm:^0.21.0" + multiformats: "npm:^9.4.5" + protobufjs: "npm:^6.10.2" + uint8arrays: "npm:^3.0.0" + checksum: 10c0/e2253a4d016b3c1cd1878661ee740da7334f5e7bce083f36cc36caff42d648e40409716f1cca3153f69dd5afd5a73e23418180a664274bcdb985c985d722c5ba + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be + languageName: node + linkType: hard + +"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 + languageName: node + linkType: hard + +"propagate@npm:^2.0.0": + version: 2.0.1 + resolution: "propagate@npm:2.0.1" + checksum: 10c0/01e1023b60ae4050d1a2783f976d7db702022dbdb70dba797cceedad8cfc01b3939c41e77032f8c32aa9d93192fe937ebba1345e8604e5ce61fd3b62ee3003b8 + languageName: node + linkType: hard + +"protobufjs@npm:^6.10.2, protobufjs@npm:^6.11.2": + version: 6.11.4 + resolution: "protobufjs@npm:6.11.4" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.2" + "@protobufjs/base64": "npm:^1.1.2" + "@protobufjs/codegen": "npm:^2.0.4" + "@protobufjs/eventemitter": "npm:^1.1.0" + "@protobufjs/fetch": "npm:^1.1.0" + "@protobufjs/float": "npm:^1.0.2" + "@protobufjs/inquire": "npm:^1.1.0" + "@protobufjs/path": "npm:^1.1.2" + "@protobufjs/pool": "npm:^1.1.0" + "@protobufjs/utf8": "npm:^1.1.0" + "@types/long": "npm:^4.0.1" + "@types/node": "npm:>=13.7.0" + long: "npm:^4.0.0" + bin: + pbjs: bin/pbjs + pbts: bin/pbts + checksum: 10c0/c244d7b9b6d3258193da5c0d1e558dfb47f208ae345e209f90ec45c9dca911b90fa17e937892a9a39a4136ab9886981aae9efdf6039f7baff4f7225f5eeb9812 + languageName: node + linkType: hard + +"psl@npm:^1.1.33": + version: 1.9.0 + resolution: "psl@npm:1.9.0" + checksum: 10c0/6a3f805fdab9442f44de4ba23880c4eba26b20c8e8e0830eff1cb31007f6825dace61d17203c58bfe36946842140c97a1ba7f67bc63ca2d88a7ee052b65d97ab + languageName: node + linkType: hard + +"punycode@npm:^2.1.1, punycode@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 10c0/3258bc3dbdf322ff2663619afe5947c7926a6ef5fb78ad7d384602974c467fadfc8272af44f5eb8cddd0d011aae8fabf3a929a8eee4b86edcc0a21e6bd10f9aa + languageName: node + linkType: hard + +"randombytes@npm:^2.1.0": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: "npm:^5.1.0" + checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3 + languageName: node + linkType: hard + +"readable-stream@npm:^3.4.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: "npm:^2.2.1" + checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 + languageName: node + linkType: hard + +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: 10c0/aaa267e0c5b022fc5fd4eef49d8285086b15f2a1c54b28240fdf03599cbd9c26049fee3eab894f2e1f6ca65e513b030a7c264201e3f005601e80c49fb2937ce2 + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: 10c0/b2bfdd09db16c082c4326e573a82c0771daaf7b53b9ce8ad60ea46aa6e30aaf475fe9b164800b89f93b748d2c234d8abff945d2551ba47bf5698e04cd7713267 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe + languageName: node + linkType: hard + +"rrweb-cssom@npm:^0.6.0": + version: 0.6.0 + resolution: "rrweb-cssom@npm:0.6.0" + checksum: 10c0/3d9d90d53c2349ea9c8509c2690df5a4ef930c9cf8242aeb9425d4046f09d712bb01047e00da0e1c1dab5db35740b3d78fd45c3e7272f75d3724a563f27c30a3 + languageName: node + linkType: hard + +"rrweb-cssom@npm:^0.7.1": + version: 0.7.1 + resolution: "rrweb-cssom@npm:0.7.1" + checksum: 10c0/127b8ca6c8aac45e2755abbae6138d4a813b1bedc2caabf79466ae83ab3cfc84b5bfab513b7033f0aa4561c7753edf787d0dd01163ceacdee2e8eb1b6bf7237e + languageName: node + linkType: hard + +"rxjs@npm:^7.8.1": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/3c49c1ecd66170b175c9cacf5cef67f8914dcbc7cd0162855538d365c83fea631167cacb644b3ce533b2ea0e9a4d0b12175186985f89d75abe73dbd8f7f06f68 + languageName: node + linkType: hard + +"safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: "npm:^2.2.0" + checksum: 10c0/3847b839f060ef3476eb8623d099aa502ad658f5c40fd60c105ebce86d244389b0d76fcae30f4d0c728d7705ceb2f7e9b34bb54717b6a7dbedaf5dad2d9a4b74 + languageName: node + linkType: hard + +"scale-ts@npm:^1.6.0": + version: 1.6.0 + resolution: "scale-ts@npm:1.6.0" + checksum: 10c0/ce4ea3559c6b6bdf2a62454aac83cc3151ae93d1a507ddb8e95e83ce1190085aed61c46901bd42d41d8f8ba58279d7e37057c68c2b674c2d39b8cf5d169e90dd + languageName: node + linkType: hard + +"semver@npm:^7.3.5": + version: 7.6.3 + resolution: "semver@npm:7.6.3" + bin: + semver: bin/semver.js + checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf + languageName: node + linkType: hard + +"serialize-javascript@npm:^6.0.2": + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" + dependencies: + randombytes: "npm:^2.1.0" + checksum: 10c0/2dd09ef4b65a1289ba24a788b1423a035581bef60817bea1f01eda8e3bda623f86357665fe7ac1b50f6d4f583f97db9615b3f07b2a2e8cbcb75033965f771dd2 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.3": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 + languageName: node + linkType: hard + +"smoldot@npm:2.0.26": + version: 2.0.26 + resolution: "smoldot@npm:2.0.26" + dependencies: + ws: "npm:^8.8.1" + checksum: 10c0/a4788fb92e5ed6e8c3d171d00474712c6f98f62cae68543f1029e7976a64ce9c8126956e50d6bd89482df8568f8ac043d5eb50b63f44f9a6062cbc49f0ef2dad + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.4 + resolution: "socks-proxy-agent@npm:8.0.4" + dependencies: + agent-base: "npm:^7.1.1" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10c0/345593bb21b95b0508e63e703c84da11549f0a2657d6b4e3ee3612c312cb3a907eac10e53b23ede3557c6601d63252103494caa306b66560f43af7b98f53957a + languageName: node + linkType: hard + +"socks@npm:^2.8.3": + version: 2.8.3 + resolution: "socks@npm:2.8.3" + dependencies: + ip-address: "npm:^9.0.5" + smart-buffer: "npm:^4.2.0" + checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 + languageName: node + linkType: hard + +"source-map-js@npm:^1.0.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: "npm:~5.2.0" + checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 10c0/bddf8ccd47acd85c0e09ad7375409d81653f645fda13227a9d459642277c253d877b68f2e5e4d819fe75733b0e626bac7e954c04f3236f6d196f79c94fa4a96f + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 + languageName: node + linkType: hard + +"supports-color@npm:^8.1.1": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 + languageName: node + linkType: hard + +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 10c0/dfbe201ae09ac6053d163578778c53aa860a784147ecf95705de0cd23f42c851e1be7889241495e95c37cabb058edb1052f141387bef68f705afc8f9dd358509 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + dependencies: + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 + languageName: node + linkType: hard + +"through@npm:>=2.2.7 <3": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc + languageName: node + linkType: hard + +"tmp-promise@npm:^3.0.3": + version: 3.0.3 + resolution: "tmp-promise@npm:3.0.3" + dependencies: + tmp: "npm:^0.2.0" + checksum: 10c0/23b47dcb2e82b14bbd8f61ed7a9d9353cdb6a6f09d7716616cfd27d0087040cd40152965a518e598d7aabe1489b9569bf1eebde0c5fadeaf3ec8098adcebea4e + languageName: node + linkType: hard + +"tmp@npm:^0.2.0": + version: 0.2.3 + resolution: "tmp@npm:0.2.3" + checksum: 10c0/3e809d9c2f46817475b452725c2aaa5d11985cf18d32a7a970ff25b568438e2c076c2e8609224feef3b7923fa9749b74428e3e634f6b8e520c534eef2fd24125 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: "npm:^7.0.0" + checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 + languageName: node + linkType: hard + +"toml@npm:^3.0.0": + version: 3.0.0 + resolution: "toml@npm:3.0.0" + checksum: 10c0/8d7ed3e700ca602e5419fca343e1c595eb7aa177745141f0761a5b20874b58ee5c878cd045c408da9d130cb2b611c639912210ba96ce2f78e443569aa8060c18 + languageName: node + linkType: hard + +"tough-cookie@npm:^4.1.3": + version: 4.1.4 + resolution: "tough-cookie@npm:4.1.4" + dependencies: + psl: "npm:^1.1.33" + punycode: "npm:^2.1.1" + universalify: "npm:^0.2.0" + url-parse: "npm:^1.5.3" + checksum: 10c0/aca7ff96054f367d53d1e813e62ceb7dd2eda25d7752058a74d64b7266fd07be75908f3753a32ccf866a2f997604b414cfb1916d6e7f69bc64d9d9939b0d6c45 + languageName: node + linkType: hard + +"tr46@npm:^5.0.0": + version: 5.0.0 + resolution: "tr46@npm:5.0.0" + dependencies: + punycode: "npm:^2.3.1" + checksum: 10c0/1521b6e7bbc8adc825c4561480f9fe48eb2276c81335eed9fa610aa4c44a48a3221f78b10e5f18b875769eb3413e30efbf209ed556a17a42aa8d690df44b7bee + languageName: node + linkType: hard + +"ts-node@npm:^10.9.2": + version: 10.9.2 + resolution: "ts-node@npm:10.9.2" + dependencies: + "@cspotcode/source-map-support": "npm:^0.8.0" + "@tsconfig/node10": "npm:^1.0.7" + "@tsconfig/node12": "npm:^1.0.7" + "@tsconfig/node14": "npm:^1.0.0" + "@tsconfig/node16": "npm:^1.0.2" + acorn: "npm:^8.4.1" + acorn-walk: "npm:^8.1.1" + arg: "npm:^4.1.0" + create-require: "npm:^1.1.0" + diff: "npm:^4.0.1" + make-error: "npm:^1.1.1" + v8-compile-cache-lib: "npm:^3.0.1" + yn: "npm:3.1.1" + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: 10c0/5f29938489f96982a25ba650b64218e83a3357d76f7bede80195c65ab44ad279c8357264639b7abdd5d7e75fc269a83daa0e9c62fd8637a3def67254ecc9ddc2 + languageName: node + linkType: hard + +"tslib@npm:^2.1.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.7.0": + version: 2.7.0 + resolution: "tslib@npm:2.7.0" + checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 + languageName: node + linkType: hard + +"type-detect@npm:^4.0.0, type-detect@npm:^4.1.0": + version: 4.1.0 + resolution: "type-detect@npm:4.1.0" + checksum: 10c0/df8157ca3f5d311edc22885abc134e18ff8ffbc93d6a9848af5b682730ca6a5a44499259750197250479c5331a8a75b5537529df5ec410622041650a7f293e2a + languageName: node + linkType: hard + +"typescript@npm:^5.3.3": + version: 5.6.2 + resolution: "typescript@npm:5.6.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/3ed8297a8c7c56b7fec282532503d1ac795239d06e7c4966b42d4330c6cf433a170b53bcf93a130a7f14ccc5235de5560df4f1045eb7f3550b46ebed16d3c5e5 + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A^5.3.3#optional!builtin": + version: 5.6.2 + resolution: "typescript@patch:typescript@npm%3A5.6.2#optional!builtin::version=5.6.2&hash=8c6c40" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/94eb47e130d3edd964b76da85975601dcb3604b0c848a36f63ac448d0104e93819d94c8bdf6b07c00120f2ce9c05256b8b6092d23cf5cf1c6fa911159e4d572f + languageName: node + linkType: hard + +"uint8arrays@npm:^3.0.0": + version: 3.1.1 + resolution: "uint8arrays@npm:3.1.1" + dependencies: + multiformats: "npm:^9.4.2" + checksum: 10c0/9946668e04f29b46bbb73cca3d190f63a2fbfe5452f8e6551ef4257d9d597b72da48fa895c15ef2ef772808a5335b3305f69da5f13a09f8c2924896b409565ff + languageName: node + linkType: hard + +"undici-types@npm:~6.19.2": + version: 6.19.8 + resolution: "undici-types@npm:6.19.8" + checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: "npm:^4.0.0" + checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 + languageName: node + linkType: hard + +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: 10c0/cedbe4d4ca3967edf24c0800cfc161c5a15e240dac28e3ce575c689abc11f2c81ccc6532c8752af3b40f9120fb5e454abecd359e164f4f6aa44c29cd37e194fe + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: 10c0/73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a + languageName: node + linkType: hard + +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: "npm:^2.1.1" + requires-port: "npm:^1.0.0" + checksum: 10c0/bd5aa9389f896974beb851c112f63b466505a04b4807cea2e5a3b7092f6fbb75316f0491ea84e44f66fed55f1b440df5195d7e3a8203f64fcefa19d182f5be87 + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 + languageName: node + linkType: hard + +"v8-compile-cache-lib@npm:^3.0.1": + version: 3.0.1 + resolution: "v8-compile-cache-lib@npm:3.0.1" + checksum: 10c0/bdc36fb8095d3b41df197f5fb6f11e3a26adf4059df3213e3baa93810d8f0cc76f9a74aaefc18b73e91fe7e19154ed6f134eda6fded2e0f1c8d2272ed2d2d391 + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^5.0.0": + version: 5.0.0 + resolution: "w3c-xmlserializer@npm:5.0.0" + dependencies: + xml-name-validator: "npm:^5.0.0" + checksum: 10c0/8712774c1aeb62dec22928bf1cdfd11426c2c9383a1a63f2bcae18db87ca574165a0fbe96b312b73652149167ac6c7f4cf5409f2eb101d9c805efe0e4bae798b + languageName: node + linkType: hard + +"web-streams-polyfill@npm:^3.0.3": + version: 3.3.3 + resolution: "web-streams-polyfill@npm:3.3.3" + checksum: 10c0/64e855c47f6c8330b5436147db1c75cb7e7474d924166800e8e2aab5eb6c76aac4981a84261dd2982b3e754490900b99791c80ae1407a9fa0dcff74f82ea3a7f + languageName: node + linkType: hard + +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: 10c0/228d8cb6d270c23b0720cb2d95c579202db3aaf8f633b4e9dd94ec2000a04e7e6e43b76a94509cdb30479bd00ae253ab2371a2da9f81446cc313f89a4213a2c4 + languageName: node + linkType: hard + +"whatwg-encoding@npm:^3.1.1": + version: 3.1.1 + resolution: "whatwg-encoding@npm:3.1.1" + dependencies: + iconv-lite: "npm:0.6.3" + checksum: 10c0/273b5f441c2f7fda3368a496c3009edbaa5e43b71b09728f90425e7f487e5cef9eb2b846a31bd760dd8077739c26faf6b5ca43a5f24033172b003b72cf61a93e + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^4.0.0": + version: 4.0.0 + resolution: "whatwg-mimetype@npm:4.0.0" + checksum: 10c0/a773cdc8126b514d790bdae7052e8bf242970cebd84af62fb2f35a33411e78e981f6c0ab9ed1fe6ec5071b09d5340ac9178e05b52d35a9c4bcf558ba1b1551df + languageName: node + linkType: hard + +"whatwg-url@npm:^14.0.0": + version: 14.0.0 + resolution: "whatwg-url@npm:14.0.0" + dependencies: + tr46: "npm:^5.0.0" + webidl-conversions: "npm:^7.0.0" + checksum: 10c0/ac32e9ba9d08744605519bbe9e1371174d36229689ecc099157b6ba102d4251a95e81d81f3d80271eb8da182eccfa65653f07f0ab43ea66a6934e643fd091ba9 + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a + languageName: node + linkType: hard + +"workerpool@npm:^6.5.1": + version: 6.5.1 + resolution: "workerpool@npm:6.5.1" + checksum: 10c0/58e8e969782292cb3a7bfba823f1179a7615250a0cefb4841d5166234db1880a3d0fe83a31dd8d648329ec92c2d0cd1890ad9ec9e53674bb36ca43e9753cdeac + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + languageName: node + linkType: hard + +"ws@npm:^8.16.0, ws@npm:^8.8.1": + version: 8.18.0 + resolution: "ws@npm:8.18.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06 + languageName: node + linkType: hard + +"xml-name-validator@npm:^5.0.0": + version: 5.0.0 + resolution: "xml-name-validator@npm:5.0.0" + checksum: 10c0/3fcf44e7b73fb18be917fdd4ccffff3639373c7cb83f8fc35df6001fecba7942f1dbead29d91ebb8315e2f2ff786b508f0c9dc0215b6353f9983c6b7d62cb1f5 + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 10c0/b64b535861a6f310c5d9bfa10834cf49127c71922c297da9d4d1b45eeaae40bf9b4363275876088fbe2667e5db028d2cd4f8ee72eed9bede840a67d57dab7593 + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a + languageName: node + linkType: hard + +"yaml@npm:^2.4.1": + version: 2.5.1 + resolution: "yaml@npm:2.5.1" + bin: + yaml: bin.mjs + checksum: 10c0/40fba5682898dbeeb3319e358a968fe886509fab6f58725732a15f8dda3abac509f91e76817c708c9959a15f786f38ff863c1b88062d7c1162c5334a7d09cb4a + languageName: node + linkType: hard + +"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.9": + version: 20.2.9 + resolution: "yargs-parser@npm:20.2.9" + checksum: 10c0/0685a8e58bbfb57fab6aefe03c6da904a59769bd803a722bb098bd5b0f29d274a1357762c7258fb487512811b8063fb5d2824a3415a0a4540598335b3b086c72 + languageName: node + linkType: hard + +"yargs-unparser@npm:^2.0.0": + version: 2.0.0 + resolution: "yargs-unparser@npm:2.0.0" + dependencies: + camelcase: "npm:^6.0.0" + decamelize: "npm:^4.0.0" + flat: "npm:^5.0.2" + is-plain-obj: "npm:^2.1.0" + checksum: 10c0/a5a7d6dc157efa95122e16780c019f40ed91d4af6d2bac066db8194ed0ec5c330abb115daa5a79ff07a9b80b8ea80c925baacf354c4c12edd878c0529927ff03 + languageName: node + linkType: hard + +"yargs@npm:^16.2.0": + version: 16.2.0 + resolution: "yargs@npm:16.2.0" + dependencies: + cliui: "npm:^7.0.2" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.0" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^20.2.2" + checksum: 10c0/b1dbfefa679848442454b60053a6c95d62f2d2e21dd28def92b647587f415969173c6e99a0f3bab4f1b67ee8283bf735ebe3544013f09491186ba9e8a9a2b651 + languageName: node + linkType: hard + +"yn@npm:3.1.1": + version: 3.1.1 + resolution: "yn@npm:3.1.1" + checksum: 10c0/0732468dd7622ed8a274f640f191f3eaf1f39d5349a1b72836df484998d7d9807fbea094e2f5486d6b0cd2414aad5775972df0e68f8604db89a239f0f4bf7443 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f + languageName: node + linkType: hard From 919fb7c9f06cff77d5a851c76ee003bf242f3fe3 Mon Sep 17 00:00:00 2001 From: Antonio Date: Thu, 3 Oct 2024 12:00:19 +0200 Subject: [PATCH 27/46] chore: add extensible chopsticks setup (#740) To spin up Chopsticks-based networks using actual data. It's based on top of https://github.com/KILTprotocol/kilt-node/pull/714. For more info about how to use this new utility, check the `chopsticks/README.md` file. --- .gitignore | 8 +- chopsticks/.nvmrc | 1 + chopsticks/.yarn/releases/yarn-4.5.0.cjs | 925 +++++ chopsticks/README.md | 33 + chopsticks/examples/complete.example.yaml | 5 + chopsticks/examples/port.example.yaml | 1 + chopsticks/examples/storage.example.yaml | 3 + chopsticks/examples/wasm.example.yaml | 1 + chopsticks/package.json | 28 + chopsticks/runtimes/peregrine/ah/config.yaml | 4 + .../runtimes/peregrine/kilt/config.yaml | 3 + .../runtimes/peregrine/relay/config.yaml | 4 + chopsticks/runtimes/spiritnet/ah/config.yaml | 4 + .../runtimes/spiritnet/kilt/config.yaml | 3 + .../runtimes/spiritnet/relay/config.yaml | 4 + chopsticks/yarn.lock | 3448 +++++++++++++++++ 16 files changed, 4472 insertions(+), 3 deletions(-) create mode 100644 chopsticks/.nvmrc create mode 100755 chopsticks/.yarn/releases/yarn-4.5.0.cjs create mode 100644 chopsticks/README.md create mode 100644 chopsticks/examples/complete.example.yaml create mode 100644 chopsticks/examples/port.example.yaml create mode 100644 chopsticks/examples/storage.example.yaml create mode 100644 chopsticks/examples/wasm.example.yaml create mode 100644 chopsticks/package.json create mode 100644 chopsticks/runtimes/peregrine/ah/config.yaml create mode 100644 chopsticks/runtimes/peregrine/kilt/config.yaml create mode 100644 chopsticks/runtimes/peregrine/relay/config.yaml create mode 100644 chopsticks/runtimes/spiritnet/ah/config.yaml create mode 100644 chopsticks/runtimes/spiritnet/kilt/config.yaml create mode 100644 chopsticks/runtimes/spiritnet/relay/config.yaml create mode 100644 chopsticks/yarn.lock diff --git a/.gitignore b/.gitignore index d5aa4502c..8ca54a67b 100644 --- a/.gitignore +++ b/.gitignore @@ -17,10 +17,12 @@ # ignore vscode settings .vscode -**/__pycache__ - **/node_modules +**/.yarn/* +!**/.yarn/releases runtimes/spiritnet/src/xcm_tests/e2e/out -*.db.sqlite* +chopsticks/**/db.sqlite* +chopsticks/**/extra.yaml +chopsticks/**/.tmp.yaml diff --git a/chopsticks/.nvmrc b/chopsticks/.nvmrc new file mode 100644 index 000000000..7ea6a59d3 --- /dev/null +++ b/chopsticks/.nvmrc @@ -0,0 +1 @@ +v20.11.0 diff --git a/chopsticks/.yarn/releases/yarn-4.5.0.cjs b/chopsticks/.yarn/releases/yarn-4.5.0.cjs new file mode 100755 index 000000000..efbc197c2 --- /dev/null +++ b/chopsticks/.yarn/releases/yarn-4.5.0.cjs @@ -0,0 +1,925 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var t_e=Object.create;var vR=Object.defineProperty;var r_e=Object.getOwnPropertyDescriptor;var n_e=Object.getOwnPropertyNames;var i_e=Object.getPrototypeOf,s_e=Object.prototype.hasOwnProperty;var ve=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var Et=(t,e)=>()=>(t&&(e=t(t=0)),e);var _=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Vt=(t,e)=>{for(var r in e)vR(t,r,{get:e[r],enumerable:!0})},o_e=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of n_e(e))!s_e.call(t,a)&&a!==r&&vR(t,a,{get:()=>e[a],enumerable:!(o=r_e(e,a))||o.enumerable});return t};var Ze=(t,e,r)=>(r=t!=null?t_e(i_e(t)):{},o_e(e||!t||!t.__esModule?vR(r,"default",{value:t,enumerable:!0}):r,t));var Bi={};Vt(Bi,{SAFE_TIME:()=>D7,S_IFDIR:()=>iD,S_IFLNK:()=>sD,S_IFMT:()=>Uu,S_IFREG:()=>Dw});var Uu,iD,Dw,sD,D7,P7=Et(()=>{Uu=61440,iD=16384,Dw=32768,sD=40960,D7=456789e3});var nr={};Vt(nr,{EBADF:()=>Io,EBUSY:()=>a_e,EEXIST:()=>p_e,EINVAL:()=>c_e,EISDIR:()=>f_e,ENOENT:()=>u_e,ENOSYS:()=>l_e,ENOTDIR:()=>A_e,ENOTEMPTY:()=>g_e,EOPNOTSUPP:()=>d_e,EROFS:()=>h_e,ERR_DIR_CLOSED:()=>DR});function Tl(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function a_e(t){return Tl("EBUSY",t)}function l_e(t,e){return Tl("ENOSYS",`${t}, ${e}`)}function c_e(t){return Tl("EINVAL",`invalid argument, ${t}`)}function Io(t){return Tl("EBADF",`bad file descriptor, ${t}`)}function u_e(t){return Tl("ENOENT",`no such file or directory, ${t}`)}function A_e(t){return Tl("ENOTDIR",`not a directory, ${t}`)}function f_e(t){return Tl("EISDIR",`illegal operation on a directory, ${t}`)}function p_e(t){return Tl("EEXIST",`file already exists, ${t}`)}function h_e(t){return Tl("EROFS",`read-only filesystem, ${t}`)}function g_e(t){return Tl("ENOTEMPTY",`directory not empty, ${t}`)}function d_e(t){return Tl("EOPNOTSUPP",`operation not supported, ${t}`)}function DR(){return Tl("ERR_DIR_CLOSED","Directory handle was closed")}var oD=Et(()=>{});var wa={};Vt(wa,{BigIntStatsEntry:()=>qd,DEFAULT_MODE:()=>SR,DirEntry:()=>PR,StatEntry:()=>Hd,areStatsEqual:()=>xR,clearStats:()=>aD,convertToBigIntStats:()=>y_e,makeDefaultStats:()=>b7,makeEmptyStats:()=>m_e});function b7(){return new Hd}function m_e(){return aD(b7())}function aD(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):bR.types.isDate(r)&&(t[e]=new Date(0))}return t}function y_e(t){let e=new qd;for(let r in t)if(Object.hasOwn(t,r)){let o=t[r];typeof o=="number"?e[r]=BigInt(o):bR.types.isDate(o)&&(e[r]=new Date(o))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function xR(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,o=e;return!(r.atimeNs!==o.atimeNs||r.mtimeNs!==o.mtimeNs||r.ctimeNs!==o.ctimeNs||r.birthtimeNs!==o.birthtimeNs)}var bR,SR,PR,Hd,qd,kR=Et(()=>{bR=Ze(ve("util")),SR=33188,PR=class{constructor(){this.name="";this.path="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Hd=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=SR;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},qd=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(SR);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function B_e(t){let e,r;if(e=t.match(w_e))t=e[1];else if(r=t.match(I_e))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function v_e(t){t=t.replace(/\\/g,"/");let e,r;return(e=t.match(E_e))?t=`/${e[1]}`:(r=t.match(C_e))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function lD(t,e){return t===ue?x7(e):QR(e)}var Pw,It,dr,ue,V,S7,E_e,C_e,w_e,I_e,QR,x7,Ia=Et(()=>{Pw=Ze(ve("path")),It={root:"/",dot:".",parent:".."},dr={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},ue=Object.create(Pw.default),V=Object.create(Pw.default.posix);ue.cwd=()=>process.cwd();V.cwd=process.platform==="win32"?()=>QR(process.cwd()):process.cwd;process.platform==="win32"&&(V.resolve=(...t)=>t.length>0&&V.isAbsolute(t[0])?Pw.default.posix.resolve(...t):Pw.default.posix.resolve(V.cwd(),...t));S7=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};ue.contains=(t,e)=>S7(ue,t,e);V.contains=(t,e)=>S7(V,t,e);E_e=/^([a-zA-Z]:.*)$/,C_e=/^\/\/(\.\/)?(.*)$/,w_e=/^\/([a-zA-Z]:.*)$/,I_e=/^\/unc\/(\.dot\/)?(.*)$/;QR=process.platform==="win32"?v_e:t=>t,x7=process.platform==="win32"?B_e:t=>t;ue.fromPortablePath=x7;ue.toPortablePath=QR});async function cD(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.indexPath,{recursive:!0});let o=[];for(let a of r)for(let n of r)o.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(o),e.indexPath}async function k7(t,e,r,o,a){let n=t.pathUtils.normalize(e),u=r.pathUtils.normalize(o),A=[],p=[],{atime:h,mtime:E}=a.stableTime?{atime:R0,mtime:R0}:await r.lstatPromise(u);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,E]}),await FR(A,p,t,n,r,u,{...a,didParentExist:!0});for(let I of A)await I();await Promise.all(p.map(I=>I()))}async function FR(t,e,r,o,a,n,u){let A=u.didParentExist?await Q7(r,o):null,p=await a.lstatPromise(n),{atime:h,mtime:E}=u.stableTime?{atime:R0,mtime:R0}:p,I;switch(!0){case p.isDirectory():I=await P_e(t,e,r,o,A,a,n,p,u);break;case p.isFile():I=await x_e(t,e,r,o,A,a,n,p,u);break;case p.isSymbolicLink():I=await k_e(t,e,r,o,A,a,n,p,u);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(u.linkStrategy?.type!=="HardlinkFromIndex"||!p.isFile())&&((I||A?.mtime?.getTime()!==E.getTime()||A?.atime?.getTime()!==h.getTime())&&(e.push(()=>r.lutimesPromise(o,h,E)),I=!0),(A===null||(A.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(o,p.mode&511)),I=!0)),I}async function Q7(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function P_e(t,e,r,o,a,n,u,A,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(o,{mode:A.mode})}catch(v){if(v.code!=="EEXIST")throw v}}),h=!0);let E=await n.readdirPromise(u),I=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let v of E.sort())await FR(t,e,r,r.pathUtils.join(o,v),n,n.pathUtils.join(u,v),I)&&(h=!0);else(await Promise.all(E.map(async x=>{await FR(t,e,r,r.pathUtils.join(o,x),n,n.pathUtils.join(u,x),I)}))).some(x=>x)&&(h=!0);return h}async function b_e(t,e,r,o,a,n,u,A,p,h){let E=await n.checksumFilePromise(u,{algorithm:"sha1"}),I=420,v=A.mode&511,x=`${E}${v!==I?v.toString(8):""}`,C=r.pathUtils.join(h.indexPath,E.slice(0,2),`${x}.dat`),R;(ce=>(ce[ce.Lock=0]="Lock",ce[ce.Rename=1]="Rename"))(R||={});let L=1,U=await Q7(r,C);if(a){let ae=U&&a.dev===U.dev&&a.ino===U.ino,le=U?.mtimeMs!==D_e;if(ae&&le&&h.autoRepair&&(L=0,U=null),!ae)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1}let z=!U&&L===1?`${C}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,te=!1;return t.push(async()=>{if(!U&&(L===0&&await r.lockPromise(C,async()=>{let ae=await n.readFilePromise(u);await r.writeFilePromise(C,ae)}),L===1&&z)){let ae=await n.readFilePromise(u);await r.writeFilePromise(z,ae);try{await r.linkPromise(z,C)}catch(le){if(le.code==="EEXIST")te=!0,await r.unlinkPromise(z);else throw le}}a||await r.linkPromise(C,o)}),e.push(async()=>{U||(await r.lutimesPromise(C,R0,R0),v!==I&&await r.chmodPromise(C,v)),z&&!te&&await r.unlinkPromise(z)}),!1}async function S_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(u);await r.writeFilePromise(o,h)}),!0}async function x_e(t,e,r,o,a,n,u,A,p){return p.linkStrategy?.type==="HardlinkFromIndex"?b_e(t,e,r,o,a,n,u,A,p,p.linkStrategy):S_e(t,e,r,o,a,n,u,A,p)}async function k_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(lD(r.pathUtils,await n.readlinkPromise(u)),o)}),!0}var R0,D_e,RR=Et(()=>{Ia();R0=new Date(456789e3*1e3),D_e=R0.getTime()});function uD(t,e,r,o){let a=()=>{let n=r.shift();if(typeof n>"u")return null;let u=t.pathUtils.join(e,n);return Object.assign(t.statSync(u),{name:n,path:void 0})};return new bw(e,a,o)}var bw,F7=Et(()=>{oD();bw=class{constructor(e,r,o={}){this.path=e;this.nextDirent=r;this.opts=o;this.closed=!1}throwIfClosed(){if(this.closed)throw DR()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){this.throwIfClosed(),this.opts.onClose?.(),this.closed=!0}}});function R7(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var T7,AD,N7=Et(()=>{T7=ve("events");kR();AD=class t extends T7.EventEmitter{constructor(r,o,{bigint:a=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=o,this.bigint=a,this.lastStats=this.stat()}static create(r,o,a){let n=new t(r,o,a);return n.start(),n}start(){R7(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){R7(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let o=this.bigint?new qd:new Hd;return aD(o)}}makeInterval(r){let o=setInterval(()=>{let a=this.stat(),n=this.lastStats;xR(a,n)||(this.lastStats=a,this.emit("change",a,n))},r.interval);return r.persistent?o:o.unref()}registerChangeListener(r,o){this.addListener("change",r),this.changeListeners.set(r,this.makeInterval(o))}unregisterChangeListener(r){this.removeListener("change",r);let o=this.changeListeners.get(r);typeof o<"u"&&clearInterval(o),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function jd(t,e,r,o){let a,n,u,A;switch(typeof r){case"function":a=!1,n=!0,u=5007,A=r;break;default:({bigint:a=!1,persistent:n=!0,interval:u=5007}=r),A=o;break}let p=fD.get(t);typeof p>"u"&&fD.set(t,p=new Map);let h=p.get(e);return typeof h>"u"&&(h=AD.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(A,{persistent:n,interval:u}),h}function T0(t,e,r){let o=fD.get(t);if(typeof o>"u")return;let a=o.get(e);typeof a>"u"||(typeof r>"u"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),o.delete(e)))}function N0(t){let e=fD.get(t);if(!(typeof e>"u"))for(let r of e.keys())T0(t,r)}var fD,TR=Et(()=>{N7();fD=new WeakMap});function Q_e(t){let e=t.match(/\r?\n/g);if(e===null)return M7.EOL;let r=e.filter(a=>a===`\r +`).length,o=e.length-r;return r>o?`\r +`:` +`}function L0(t,e){return e.replace(/\r?\n/g,Q_e(t))}var L7,M7,hf,_u,M0=Et(()=>{L7=ve("crypto"),M7=ve("os");RR();Ia();hf=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let o=[e];for(;o.length>0;){let a=o.shift();if((await this.lstatPromise(a)).isDirectory()){let u=await this.readdirPromise(a);if(r)for(let A of u.sort())o.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let o=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,L7.createHash)(r),A=0;for(;(A=await this.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await this.closePromise(o)}}async removePromise(e,{recursive:r=!0,maxRetries:o=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(u=>this.removePromise(this.pathUtils.resolve(e,u))))}for(let n=0;n<=o;n++)try{await this.rmdirPromise(e);break}catch(u){if(u.code!=="EBUSY"&&u.code!=="ENOTEMPTY")throw u;nsetTimeout(A,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let o;try{o=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(o.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&await this.chmodPromise(A,r),o!=null)await this.utimesPromise(A,o[0],o[1]);else{let p=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&this.chmodSync(A,r),o!=null)this.utimesSync(A,o[0],o[1]);else{let p=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:o=this,overwrite:a=!0,stableSort:n=!1,stableTime:u=!1,linkStrategy:A=null}={}){return await k7(this,e,o,r,{overwrite:a,stableSort:n,stableTime:u,linkStrategy:A})}copySync(e,r,{baseFs:o=this,overwrite:a=!0}={}){let n=o.lstatSync(r),u=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=o.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),o.pathUtils.join(r,h),{baseFs:o,overwrite:a})}else if(n.isFile()){if(!u||a){u&&this.removeSync(e);let p=o.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!u||a){u&&this.removeSync(e);let p=o.readlinkSync(r);this.symlinkSync(lD(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let A=n.mode&511;this.chmodSync(e,A)}async changeFilePromise(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,o):this.changeFileTextPromise(e,r,o)}async changeFileBufferPromise(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:o})}async changeFileTextPromise(e,r,{automaticNewlines:o,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let u=o?L0(n,r):r;n!==u&&await this.writeFilePromise(e,u,{mode:a})}changeFileSync(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,o):this.changeFileTextSync(e,r,o)}changeFileBufferSync(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:o})}changeFileTextSync(e,r,{automaticNewlines:o=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let u=o?L0(n,r):r;n!==u&&this.writeFileSync(e,u,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(o){if(o.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw o}}moveSync(e,r){try{this.renameSync(e,r)}catch(o){if(o.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw o}}async lockPromise(e,r){let o=`${e}.flock`,a=1e3/60,n=Date.now(),u=null,A=async()=>{let p;try{[p]=await this.readJsonPromise(o)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;u===null;)try{u=await this.openPromise(o,"wx")}catch(p){if(p.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(o);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${o})`)}else throw p}await this.writePromise(u,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(u),await this.unlinkPromise(o)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}async writeJsonPromise(e,r,{compact:o=!1}={}){let a=o?0:2;return await this.writeFilePromise(e,`${JSON.stringify(r,null,a)} +`)}writeJsonSync(e,r,{compact:o=!1}={}){let a=o?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)} +`)}async preserveTimePromise(e,r){let o=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,o.atime,o.mtime)}async preserveTimeSync(e,r){let o=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,o.atime,o.mtime)}},_u=class extends hf{constructor(){super(V)}}});var Ss,gf=Et(()=>{M0();Ss=class extends hf{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,o){return this.baseFs.openPromise(this.mapToBase(e),r,o)}openSync(e,r,o){return this.baseFs.openSync(this.mapToBase(e),r,o)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,o,a,n){return await this.baseFs.readPromise(e,r,o,a,n)}readSync(e,r,o,a,n){return this.baseFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,o):await this.baseFs.writePromise(e,r,o,a,n)}writeSync(e,r,o,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,o):this.baseFs.writeSync(e,r,o,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,o){return this.baseFs.fchownPromise(e,r,o)}fchownSync(e,r,o){return this.baseFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return this.baseFs.chownPromise(this.mapToBase(e),r,o)}chownSync(e,r,o){return this.baseFs.chownSync(this.mapToBase(e),r,o)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,o=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),o)}copyFileSync(e,r,o=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),o)}async appendFilePromise(e,r,o){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,o)}appendFileSync(e,r,o){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,o)}async writeFilePromise(e,r,o){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,o)}writeFileSync(e,r,o){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,o)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,o){return this.baseFs.utimesPromise(this.mapToBase(e),r,o)}utimesSync(e,r,o){return this.baseFs.utimesSync(this.mapToBase(e),r,o)}async lutimesPromise(e,r,o){return this.baseFs.lutimesPromise(this.mapToBase(e),r,o)}lutimesSync(e,r,o){return this.baseFs.lutimesSync(this.mapToBase(e),r,o)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async rmPromise(e,r){return this.baseFs.rmPromise(this.mapToBase(e),r)}rmSync(e,r){return this.baseFs.rmSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(u,a,o)}symlinkSync(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(u,a,o)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,o){return this.baseFs.watch(this.mapToBase(e),r,o)}watchFile(e,r,o){return this.baseFs.watchFile(this.mapToBase(e),r,o)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}}});var Hu,O7=Et(()=>{gf();Hu=class extends Ss{constructor(e,{baseFs:r,pathUtils:o}){super(o),this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}});function U7(t){let e=t;return typeof t.path=="string"&&(e.path=ue.toPortablePath(t.path)),e}var _7,Tn,O0=Et(()=>{_7=Ze(ve("fs"));M0();Ia();Tn=class extends _u{constructor(e=_7.default){super(),this.realFs=e}getExtractHint(){return!1}getRealPath(){return It.root}resolve(e){return V.resolve(e)}async openPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.open(ue.fromPortablePath(e),r,o,this.makeCallback(a,n))})}openSync(e,r,o){return this.realFs.openSync(ue.fromPortablePath(e),r,o)}async opendirPromise(e,r){return await new Promise((o,a)=>{typeof r<"u"?this.realFs.opendir(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.opendir(ue.fromPortablePath(e),this.makeCallback(o,a))}).then(o=>{let a=o;return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a})}opendirSync(e,r){let a=typeof r<"u"?this.realFs.opendirSync(ue.fromPortablePath(e),r):this.realFs.opendirSync(ue.fromPortablePath(e));return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a}async readPromise(e,r,o=0,a=0,n=-1){return await new Promise((u,A)=>{this.realFs.read(e,r,o,a,n,(p,h)=>{p?A(p):u(h)})})}readSync(e,r,o,a,n){return this.realFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return await new Promise((u,A)=>typeof r=="string"?this.realFs.write(e,r,o,this.makeCallback(u,A)):this.realFs.write(e,r,o,a,n,this.makeCallback(u,A)))}writeSync(e,r,o,a,n){return typeof r=="string"?this.realFs.writeSync(e,r,o):this.realFs.writeSync(e,r,o,a,n)}async closePromise(e){await new Promise((r,o)=>{this.realFs.close(e,this.makeCallback(r,o))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let o=e!==null?ue.fromPortablePath(e):e;return this.realFs.createReadStream(o,r)}createWriteStream(e,r){let o=e!==null?ue.fromPortablePath(e):e;return this.realFs.createWriteStream(o,r)}async realpathPromise(e){return await new Promise((r,o)=>{this.realFs.realpath(ue.fromPortablePath(e),{},this.makeCallback(r,o))}).then(r=>ue.toPortablePath(r))}realpathSync(e){return ue.toPortablePath(this.realFs.realpathSync(ue.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(ue.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(ue.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((o,a)=>{this.realFs.access(ue.fromPortablePath(e),r,this.makeCallback(o,a))})}existsSync(e){return this.realFs.existsSync(ue.fromPortablePath(e))}async statPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.stat(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.stat(ue.fromPortablePath(e),this.makeCallback(o,a))})}statSync(e,r){return r?this.realFs.statSync(ue.fromPortablePath(e),r):this.realFs.statSync(ue.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.fstat(e,r,this.makeCallback(o,a)):this.realFs.fstat(e,this.makeCallback(o,a))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.lstat(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.lstat(ue.fromPortablePath(e),this.makeCallback(o,a))})}lstatSync(e,r){return r?this.realFs.lstatSync(ue.fromPortablePath(e),r):this.realFs.lstatSync(ue.fromPortablePath(e))}async fchmodPromise(e,r){return await new Promise((o,a)=>{this.realFs.fchmod(e,r,this.makeCallback(o,a))})}fchmodSync(e,r){return this.realFs.fchmodSync(e,r)}async chmodPromise(e,r){return await new Promise((o,a)=>{this.realFs.chmod(ue.fromPortablePath(e),r,this.makeCallback(o,a))})}chmodSync(e,r){return this.realFs.chmodSync(ue.fromPortablePath(e),r)}async fchownPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.fchown(e,r,o,this.makeCallback(a,n))})}fchownSync(e,r,o){return this.realFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.chown(ue.fromPortablePath(e),r,o,this.makeCallback(a,n))})}chownSync(e,r,o){return this.realFs.chownSync(ue.fromPortablePath(e),r,o)}async renamePromise(e,r){return await new Promise((o,a)=>{this.realFs.rename(ue.fromPortablePath(e),ue.fromPortablePath(r),this.makeCallback(o,a))})}renameSync(e,r){return this.realFs.renameSync(ue.fromPortablePath(e),ue.fromPortablePath(r))}async copyFilePromise(e,r,o=0){return await new Promise((a,n)=>{this.realFs.copyFile(ue.fromPortablePath(e),ue.fromPortablePath(r),o,this.makeCallback(a,n))})}copyFileSync(e,r,o=0){return this.realFs.copyFileSync(ue.fromPortablePath(e),ue.fromPortablePath(r),o)}async appendFilePromise(e,r,o){return await new Promise((a,n)=>{let u=typeof e=="string"?ue.fromPortablePath(e):e;o?this.realFs.appendFile(u,r,o,this.makeCallback(a,n)):this.realFs.appendFile(u,r,this.makeCallback(a,n))})}appendFileSync(e,r,o){let a=typeof e=="string"?ue.fromPortablePath(e):e;o?this.realFs.appendFileSync(a,r,o):this.realFs.appendFileSync(a,r)}async writeFilePromise(e,r,o){return await new Promise((a,n)=>{let u=typeof e=="string"?ue.fromPortablePath(e):e;o?this.realFs.writeFile(u,r,o,this.makeCallback(a,n)):this.realFs.writeFile(u,r,this.makeCallback(a,n))})}writeFileSync(e,r,o){let a=typeof e=="string"?ue.fromPortablePath(e):e;o?this.realFs.writeFileSync(a,r,o):this.realFs.writeFileSync(a,r)}async unlinkPromise(e){return await new Promise((r,o)=>{this.realFs.unlink(ue.fromPortablePath(e),this.makeCallback(r,o))})}unlinkSync(e){return this.realFs.unlinkSync(ue.fromPortablePath(e))}async utimesPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.utimes(ue.fromPortablePath(e),r,o,this.makeCallback(a,n))})}utimesSync(e,r,o){this.realFs.utimesSync(ue.fromPortablePath(e),r,o)}async lutimesPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.lutimes(ue.fromPortablePath(e),r,o,this.makeCallback(a,n))})}lutimesSync(e,r,o){this.realFs.lutimesSync(ue.fromPortablePath(e),r,o)}async mkdirPromise(e,r){return await new Promise((o,a)=>{this.realFs.mkdir(ue.fromPortablePath(e),r,this.makeCallback(o,a))})}mkdirSync(e,r){return this.realFs.mkdirSync(ue.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.rmdir(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.rmdir(ue.fromPortablePath(e),this.makeCallback(o,a))})}rmdirSync(e,r){return this.realFs.rmdirSync(ue.fromPortablePath(e),r)}async rmPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.rm(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.rm(ue.fromPortablePath(e),this.makeCallback(o,a))})}rmSync(e,r){return this.realFs.rmSync(ue.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((o,a)=>{this.realFs.link(ue.fromPortablePath(e),ue.fromPortablePath(r),this.makeCallback(o,a))})}linkSync(e,r){return this.realFs.linkSync(ue.fromPortablePath(e),ue.fromPortablePath(r))}async symlinkPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.symlink(ue.fromPortablePath(e.replace(/\/+$/,"")),ue.fromPortablePath(r),o,this.makeCallback(a,n))})}symlinkSync(e,r,o){return this.realFs.symlinkSync(ue.fromPortablePath(e.replace(/\/+$/,"")),ue.fromPortablePath(r),o)}async readFilePromise(e,r){return await new Promise((o,a)=>{let n=typeof e=="string"?ue.fromPortablePath(e):e;this.realFs.readFile(n,r,this.makeCallback(o,a))})}readFileSync(e,r){let o=typeof e=="string"?ue.fromPortablePath(e):e;return this.realFs.readFileSync(o,r)}async readdirPromise(e,r){return await new Promise((o,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(ue.fromPortablePath(e),r,this.makeCallback(n=>o(n.map(U7)),a)):this.realFs.readdir(ue.fromPortablePath(e),r,this.makeCallback(n=>o(n.map(ue.toPortablePath)),a)):this.realFs.readdir(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.readdir(ue.fromPortablePath(e),this.makeCallback(o,a))})}readdirSync(e,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(ue.fromPortablePath(e),r).map(U7):this.realFs.readdirSync(ue.fromPortablePath(e),r).map(ue.toPortablePath):this.realFs.readdirSync(ue.fromPortablePath(e),r):this.realFs.readdirSync(ue.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,o)=>{this.realFs.readlink(ue.fromPortablePath(e),this.makeCallback(r,o))}).then(r=>ue.toPortablePath(r))}readlinkSync(e){return ue.toPortablePath(this.realFs.readlinkSync(ue.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((o,a)=>{this.realFs.truncate(ue.fromPortablePath(e),r,this.makeCallback(o,a))})}truncateSync(e,r){return this.realFs.truncateSync(ue.fromPortablePath(e),r)}async ftruncatePromise(e,r){return await new Promise((o,a)=>{this.realFs.ftruncate(e,r,this.makeCallback(o,a))})}ftruncateSync(e,r){return this.realFs.ftruncateSync(e,r)}watch(e,r,o){return this.realFs.watch(ue.fromPortablePath(e),r,o)}watchFile(e,r,o){return this.realFs.watchFile(ue.fromPortablePath(e),r,o)}unwatchFile(e,r){return this.realFs.unwatchFile(ue.fromPortablePath(e),r)}makeCallback(e,r){return(o,a)=>{o?r(o):e(a)}}}});var gn,H7=Et(()=>{O0();gf();Ia();gn=class extends Ss{constructor(e,{baseFs:r=new Tn}={}){super(V),this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?V.normalize(e):this.baseFs.resolve(V.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}});var q7,qu,j7=Et(()=>{O0();gf();Ia();q7=It.root,qu=class extends Ss{constructor(e,{baseFs:r=new Tn}={}){super(V),this.target=this.pathUtils.resolve(It.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(It.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(q7,e));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(q7,this.pathUtils.relative(this.target,e))}}});var Gd,G7=Et(()=>{gf();Gd=class extends Ss{constructor(r,o){super(o);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var U0,Ba,Up,Y7=Et(()=>{U0=ve("fs");M0();O0();TR();oD();Ia();Ba=4278190080,Up=class extends _u{constructor({baseFs:r=new Tn,filter:o=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:u=!0,maxAge:A=5e3,typeCheck:p=U0.constants.S_IFREG,getMountPoint:h,factoryPromise:E,factorySync:I}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=u?new Map:null,this.factoryPromise=E,this.factorySync=I,this.filter=o,this.getMountPoint=h,this.magic=a<<24,this.maxAge=A,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(N0(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.saveAndClose?.(),this.mountInstances.delete(r)}discardAndClose(){if(N0(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.discardAndClose?.(),this.mountInstances.delete(r)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,o){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,o]),a}async openPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,o,a),async(n,{subPath:u})=>this.remapFd(n,await n.openPromise(u,o,a)))}openSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,o,a),(n,{subPath:u})=>this.remapFd(n,n.openSync(u,o,a)))}async opendirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,o),async(a,{subPath:n})=>await a.opendirPromise(n,o),{requireSubpath:!1})}opendirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,o),(a,{subPath:n})=>a.opendirSync(n,o),{requireSubpath:!1})}async readPromise(r,o,a,n,u){if((r&Ba)!==this.magic)return await this.baseFs.readPromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("read");let[p,h]=A;return await p.readPromise(h,o,a,n,u)}readSync(r,o,a,n,u){if((r&Ba)!==this.magic)return this.baseFs.readSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("readSync");let[p,h]=A;return p.readSync(h,o,a,n,u)}async writePromise(r,o,a,n,u){if((r&Ba)!==this.magic)return typeof o=="string"?await this.baseFs.writePromise(r,o,a):await this.baseFs.writePromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("write");let[p,h]=A;return typeof o=="string"?await p.writePromise(h,o,a):await p.writePromise(h,o,a,n,u)}writeSync(r,o,a,n,u){if((r&Ba)!==this.magic)return typeof o=="string"?this.baseFs.writeSync(r,o,a):this.baseFs.writeSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("writeSync");let[p,h]=A;return typeof o=="string"?p.writeSync(h,o,a):p.writeSync(h,o,a,n,u)}async closePromise(r){if((r&Ba)!==this.magic)return await this.baseFs.closePromise(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Io("close");this.fdMap.delete(r);let[a,n]=o;return await a.closePromise(n)}closeSync(r){if((r&Ba)!==this.magic)return this.baseFs.closeSync(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Io("closeSync");this.fdMap.delete(r);let[a,n]=o;return a.closeSync(n)}createReadStream(r,o){return r===null?this.baseFs.createReadStream(r,o):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,o),(a,{archivePath:n,subPath:u})=>{let A=a.createReadStream(u,o);return A.path=ue.fromPortablePath(this.pathUtils.join(n,u)),A})}createWriteStream(r,o){return r===null?this.baseFs.createWriteStream(r,o):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,o),(a,{subPath:n})=>a.createWriteStream(n,o))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=await this.baseFs.realpathPromise(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(It.root,await o.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=this.baseFs.realpathSync(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(It.root,o.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(o,{subPath:a})=>await o.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(o,{subPath:a})=>o.existsSync(a))}async accessPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,o),async(a,{subPath:n})=>await a.accessPromise(n,o))}accessSync(r,o){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,o),(a,{subPath:n})=>a.accessSync(n,o))}async statPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,o),async(a,{subPath:n})=>await a.statPromise(n,o))}statSync(r,o){return this.makeCallSync(r,()=>this.baseFs.statSync(r,o),(a,{subPath:n})=>a.statSync(n,o))}async fstatPromise(r,o){if((r&Ba)!==this.magic)return this.baseFs.fstatPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fstat");let[n,u]=a;return n.fstatPromise(u,o)}fstatSync(r,o){if((r&Ba)!==this.magic)return this.baseFs.fstatSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fstatSync");let[n,u]=a;return n.fstatSync(u,o)}async lstatPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,o),async(a,{subPath:n})=>await a.lstatPromise(n,o))}lstatSync(r,o){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,o),(a,{subPath:n})=>a.lstatSync(n,o))}async fchmodPromise(r,o){if((r&Ba)!==this.magic)return this.baseFs.fchmodPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fchmod");let[n,u]=a;return n.fchmodPromise(u,o)}fchmodSync(r,o){if((r&Ba)!==this.magic)return this.baseFs.fchmodSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fchmodSync");let[n,u]=a;return n.fchmodSync(u,o)}async chmodPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,o),async(a,{subPath:n})=>await a.chmodPromise(n,o))}chmodSync(r,o){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,o),(a,{subPath:n})=>a.chmodSync(n,o))}async fchownPromise(r,o,a){if((r&Ba)!==this.magic)return this.baseFs.fchownPromise(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Io("fchown");let[u,A]=n;return u.fchownPromise(A,o,a)}fchownSync(r,o,a){if((r&Ba)!==this.magic)return this.baseFs.fchownSync(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Io("fchownSync");let[u,A]=n;return u.fchownSync(A,o,a)}async chownPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,o,a),async(n,{subPath:u})=>await n.chownPromise(u,o,a))}chownSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,o,a),(n,{subPath:u})=>n.chownSync(u,o,a))}async renamePromise(r,o){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.renamePromise(r,o),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(a,{subPath:n})=>await this.makeCallPromise(o,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await a.renamePromise(n,A)}))}renameSync(r,o){return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.renameSync(r,o),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(a,{subPath:n})=>this.makeCallSync(o,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return a.renameSync(n,A)}))}async copyFilePromise(r,o,a=0){let n=async(u,A,p,h)=>{if(a&U0.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&U0.constants.COPYFILE_EXCL&&await this.existsPromise(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=await u.readFilePromise(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}await p.writeFilePromise(h,E)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.copyFilePromise(r,o,a),async(u,{subPath:A})=>await n(this.baseFs,r,u,A)),async(u,{subPath:A})=>await this.makeCallPromise(o,async()=>await n(u,A,this.baseFs,o),async(p,{subPath:h})=>u!==p?await n(u,A,p,h):await u.copyFilePromise(A,h,a)))}copyFileSync(r,o,a=0){let n=(u,A,p,h)=>{if(a&U0.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&U0.constants.COPYFILE_EXCL&&this.existsSync(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=u.readFileSync(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}p.writeFileSync(h,E)};return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.copyFileSync(r,o,a),(u,{subPath:A})=>n(this.baseFs,r,u,A)),(u,{subPath:A})=>this.makeCallSync(o,()=>n(u,A,this.baseFs,o),(p,{subPath:h})=>u!==p?n(u,A,p,h):u.copyFileSync(A,h,a)))}async appendFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,o,a),async(n,{subPath:u})=>await n.appendFilePromise(u,o,a))}appendFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,o,a),(n,{subPath:u})=>n.appendFileSync(u,o,a))}async writeFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,o,a),async(n,{subPath:u})=>await n.writeFilePromise(u,o,a))}writeFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,o,a),(n,{subPath:u})=>n.writeFileSync(u,o,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(o,{subPath:a})=>await o.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(o,{subPath:a})=>o.unlinkSync(a))}async utimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,o,a),async(n,{subPath:u})=>await n.utimesPromise(u,o,a))}utimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,o,a),(n,{subPath:u})=>n.utimesSync(u,o,a))}async lutimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,o,a),async(n,{subPath:u})=>await n.lutimesPromise(u,o,a))}lutimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,o,a),(n,{subPath:u})=>n.lutimesSync(u,o,a))}async mkdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,o),async(a,{subPath:n})=>await a.mkdirPromise(n,o))}mkdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,o),(a,{subPath:n})=>a.mkdirSync(n,o))}async rmdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,o),async(a,{subPath:n})=>await a.rmdirPromise(n,o))}rmdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,o),(a,{subPath:n})=>a.rmdirSync(n,o))}async rmPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmPromise(r,o),async(a,{subPath:n})=>await a.rmPromise(n,o))}rmSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmSync(r,o),(a,{subPath:n})=>a.rmSync(n,o))}async linkPromise(r,o){return await this.makeCallPromise(o,async()=>await this.baseFs.linkPromise(r,o),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,o){return this.makeCallSync(o,()=>this.baseFs.linkSync(r,o),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,o,a){return await this.makeCallPromise(o,async()=>await this.baseFs.symlinkPromise(r,o,a),async(n,{subPath:u})=>await n.symlinkPromise(r,u))}symlinkSync(r,o,a){return this.makeCallSync(o,()=>this.baseFs.symlinkSync(r,o,a),(n,{subPath:u})=>n.symlinkSync(r,u))}async readFilePromise(r,o){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,o),async(a,{subPath:n})=>await a.readFilePromise(n,o))}readFileSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,o),(a,{subPath:n})=>a.readFileSync(n,o))}async readdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,o),async(a,{subPath:n})=>await a.readdirPromise(n,o),{requireSubpath:!1})}readdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,o),(a,{subPath:n})=>a.readdirSync(n,o),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(o,{subPath:a})=>await o.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(o,{subPath:a})=>o.readlinkSync(a))}async truncatePromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,o),async(a,{subPath:n})=>await a.truncatePromise(n,o))}truncateSync(r,o){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,o),(a,{subPath:n})=>a.truncateSync(n,o))}async ftruncatePromise(r,o){if((r&Ba)!==this.magic)return this.baseFs.ftruncatePromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("ftruncate");let[n,u]=a;return n.ftruncatePromise(u,o)}ftruncateSync(r,o){if((r&Ba)!==this.magic)return this.baseFs.ftruncateSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("ftruncateSync");let[n,u]=a;return n.ftruncateSync(u,o)}watch(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,o,a),(n,{subPath:u})=>n.watch(u,o,a))}watchFile(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,o,a),()=>jd(this,r,o,a))}unwatchFile(r,o){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,o),()=>T0(this,r,o))}async makeCallPromise(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return await o();let u=this.resolve(r),A=this.findMount(u);return A?n&&A.subPath==="/"?await o():await this.getMountPromise(A.archivePath,async p=>await a(p,A)):await o()}makeCallSync(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return o();let u=this.resolve(r),A=this.findMount(u);return!A||n&&A.subPath==="/"?o():this.getMountSync(A.archivePath,p=>a(p,A))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let o="";for(;;){let a=r.substring(o.length),n=this.getMountPoint(a,o);if(!n)return null;if(o=this.pathUtils.join(o,n),!this.isMount.has(o)){if(this.notMount.has(o))continue;try{if(this.typeCheck!==null&&(this.baseFs.lstatSync(o).mode&U0.constants.S_IFMT)!==this.typeCheck){this.notMount.add(o);continue}}catch{return null}this.isMount.add(o)}return{archivePath:o,subPath:this.pathUtils.join(It.root,r.substring(o.length))}}}limitOpenFiles(r){if(this.mountInstances===null)return;let o=Date.now(),a=o+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[u,{childFs:A,expiresAt:p,refCount:h}]of this.mountInstances.entries())if(!(h!==0||A.hasOpenFileHandles?.())){if(o>=p){A.saveAndClose?.(),this.mountInstances.delete(u),n-=1;continue}else if(r===null||n<=0){a=p;break}A.saveAndClose?.(),this.mountInstances.delete(u),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-o).unref())}async getMountPromise(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);if(!a){let n=await this.factoryPromise(this.baseFs,r);a=this.mountInstances.get(r),a||(a={childFs:n(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,a.refCount+=1;try{return await o(a.childFs)}finally{a.refCount-=1}}else{let a=(await this.factoryPromise(this.baseFs,r))();try{return await o(a)}finally{a.saveAndClose?.()}}}getMountSync(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);return a||(a={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,o(a.childFs)}else{let a=this.factorySync(this.baseFs,r);try{return o(a)}finally{a.saveAndClose?.()}}}}});var Zt,pD,W7=Et(()=>{M0();Ia();Zt=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),pD=class t extends hf{static{this.instance=new t}constructor(){super(V)}getExtractHint(){throw Zt()}getRealPath(){throw Zt()}resolve(){throw Zt()}async openPromise(){throw Zt()}openSync(){throw Zt()}async opendirPromise(){throw Zt()}opendirSync(){throw Zt()}async readPromise(){throw Zt()}readSync(){throw Zt()}async writePromise(){throw Zt()}writeSync(){throw Zt()}async closePromise(){throw Zt()}closeSync(){throw Zt()}createWriteStream(){throw Zt()}createReadStream(){throw Zt()}async realpathPromise(){throw Zt()}realpathSync(){throw Zt()}async readdirPromise(){throw Zt()}readdirSync(){throw Zt()}async existsPromise(e){throw Zt()}existsSync(e){throw Zt()}async accessPromise(){throw Zt()}accessSync(){throw Zt()}async statPromise(){throw Zt()}statSync(){throw Zt()}async fstatPromise(e){throw Zt()}fstatSync(e){throw Zt()}async lstatPromise(e){throw Zt()}lstatSync(e){throw Zt()}async fchmodPromise(){throw Zt()}fchmodSync(){throw Zt()}async chmodPromise(){throw Zt()}chmodSync(){throw Zt()}async fchownPromise(){throw Zt()}fchownSync(){throw Zt()}async chownPromise(){throw Zt()}chownSync(){throw Zt()}async mkdirPromise(){throw Zt()}mkdirSync(){throw Zt()}async rmdirPromise(){throw Zt()}rmdirSync(){throw Zt()}async rmPromise(){throw Zt()}rmSync(){throw Zt()}async linkPromise(){throw Zt()}linkSync(){throw Zt()}async symlinkPromise(){throw Zt()}symlinkSync(){throw Zt()}async renamePromise(){throw Zt()}renameSync(){throw Zt()}async copyFilePromise(){throw Zt()}copyFileSync(){throw Zt()}async appendFilePromise(){throw Zt()}appendFileSync(){throw Zt()}async writeFilePromise(){throw Zt()}writeFileSync(){throw Zt()}async unlinkPromise(){throw Zt()}unlinkSync(){throw Zt()}async utimesPromise(){throw Zt()}utimesSync(){throw Zt()}async lutimesPromise(){throw Zt()}lutimesSync(){throw Zt()}async readFilePromise(){throw Zt()}readFileSync(){throw Zt()}async readlinkPromise(){throw Zt()}readlinkSync(){throw Zt()}async truncatePromise(){throw Zt()}truncateSync(){throw Zt()}async ftruncatePromise(e,r){throw Zt()}ftruncateSync(e,r){throw Zt()}watch(){throw Zt()}watchFile(){throw Zt()}unwatchFile(){throw Zt()}}});var _p,K7=Et(()=>{gf();Ia();_p=class extends Ss{constructor(e){super(ue),this.baseFs=e}mapFromBase(e){return ue.fromPortablePath(e)}mapToBase(e){return ue.toPortablePath(e)}}});var F_e,NR,R_e,zs,V7=Et(()=>{O0();gf();Ia();F_e=/^[0-9]+$/,NR=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,R_e=/^([^/]+-)?[a-f0-9]+$/,zs=class t extends Ss{static makeVirtualPath(e,r,o){if(V.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!V.basename(r).match(R_e))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let n=V.relative(V.dirname(e),o).split("/"),u=0;for(;u{LR=Ze(ve("buffer")),z7=ve("url"),J7=ve("util");gf();Ia();hD=class extends Ss{constructor(e){super(ue),this.baseFs=e}mapFromBase(e){return e}mapToBase(e){if(typeof e=="string")return e;if(e instanceof URL)return(0,z7.fileURLToPath)(e);if(Buffer.isBuffer(e)){let r=e.toString();if(!T_e(e,r))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return r}throw new Error(`Unsupported path type: ${(0,J7.inspect)(e)}`)}}});var rY,Bo,df,Hp,gD,dD,Yd,Nc,Lc,Z7,$7,eY,tY,Sw,nY=Et(()=>{rY=ve("readline"),Bo=Symbol("kBaseFs"),df=Symbol("kFd"),Hp=Symbol("kClosePromise"),gD=Symbol("kCloseResolve"),dD=Symbol("kCloseReject"),Yd=Symbol("kRefs"),Nc=Symbol("kRef"),Lc=Symbol("kUnref"),Sw=class{constructor(e,r){this[tY]=1;this[eY]=void 0;this[$7]=void 0;this[Z7]=void 0;this[Bo]=r,this[df]=e}get fd(){return this[df]}async appendFile(e,r){try{this[Nc](this.appendFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;return await this[Bo].appendFilePromise(this.fd,e,o?{encoding:o}:void 0)}finally{this[Lc]()}}async chown(e,r){try{return this[Nc](this.chown),await this[Bo].fchownPromise(this.fd,e,r)}finally{this[Lc]()}}async chmod(e){try{return this[Nc](this.chmod),await this[Bo].fchmodPromise(this.fd,e)}finally{this[Lc]()}}createReadStream(e){return this[Bo].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Bo].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,r,o,a){try{this[Nc](this.read);let n;return Buffer.isBuffer(e)?n=e:(e??={},n=e.buffer??Buffer.alloc(16384),r=e.offset||0,o=e.length??n.byteLength,a=e.position??null),r??=0,o??=0,o===0?{bytesRead:o,buffer:n}:{bytesRead:await this[Bo].readPromise(this.fd,n,r,o,a),buffer:n}}finally{this[Lc]()}}async readFile(e){try{this[Nc](this.readFile);let r=(typeof e=="string"?e:e?.encoding)??void 0;return await this[Bo].readFilePromise(this.fd,r)}finally{this[Lc]()}}readLines(e){return(0,rY.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Nc](this.stat),await this[Bo].fstatPromise(this.fd,e)}finally{this[Lc]()}}async truncate(e){try{return this[Nc](this.truncate),await this[Bo].ftruncatePromise(this.fd,e)}finally{this[Lc]()}}utimes(e,r){throw new Error("Method not implemented.")}async writeFile(e,r){try{this[Nc](this.writeFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;await this[Bo].writeFilePromise(this.fd,e,o)}finally{this[Lc]()}}async write(...e){try{if(this[Nc](this.write),ArrayBuffer.isView(e[0])){let[r,o,a,n]=e;return{bytesWritten:await this[Bo].writePromise(this.fd,r,o??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,o,a]=e;return{bytesWritten:await this[Bo].writePromise(this.fd,r,o,a),buffer:r}}}finally{this[Lc]()}}async writev(e,r){try{this[Nc](this.writev);let o=0;if(typeof r<"u")for(let a of e){let n=await this.write(a,void 0,void 0,r);o+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);o+=n.bytesWritten}return{buffers:e,bytesWritten:o}}finally{this[Lc]()}}readv(e,r){throw new Error("Method not implemented.")}close(){if(this[df]===-1)return Promise.resolve();if(this[Hp])return this[Hp];if(this[Yd]--,this[Yd]===0){let e=this[df];this[df]=-1,this[Hp]=this[Bo].closePromise(e).finally(()=>{this[Hp]=void 0})}else this[Hp]=new Promise((e,r)=>{this[gD]=e,this[dD]=r}).finally(()=>{this[Hp]=void 0,this[dD]=void 0,this[gD]=void 0});return this[Hp]}[(Bo,df,tY=Yd,eY=Hp,$7=gD,Z7=dD,Nc)](e){if(this[df]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=e.name,r}this[Yd]++}[Lc](){if(this[Yd]--,this[Yd]===0){let e=this[df];this[df]=-1,this[Bo].closePromise(e).then(this[gD],this[dD])}}}});function xw(t,e){e=new hD(e);let r=(o,a,n)=>{let u=o[a];o[a]=n,typeof u?.[Wd.promisify.custom]<"u"&&(n[Wd.promisify.custom]=u[Wd.promisify.custom])};{r(t,"exists",(o,...a)=>{let u=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(o).then(A=>{u(A)},()=>{u(!1)})})}),r(t,"read",(...o)=>{let[a,n,u,A,p,h]=o;if(o.length<=3){let E={};o.length<3?h=o[1]:(E=o[1],h=o[2]),{buffer:n=Buffer.alloc(16384),offset:u=0,length:A=n.byteLength,position:p}=E}if(u==null&&(u=0),A|=0,A===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,u,A,p).then(E=>{h(null,E,n)},E=>{h(E,0,n)})})});for(let o of iY){let a=o.replace(/Promise$/,"");if(typeof t[a]>"u")continue;let n=e[o];if(typeof n>"u")continue;r(t,a,(...A)=>{let h=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{n.apply(e,A).then(E=>{h(null,E)},E=>{h(E)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",o=>{try{return e.existsSync(o)}catch{return!1}}),r(t,"readSync",(...o)=>{let[a,n,u,A,p]=o;return o.length<=3&&({offset:u=0,length:A=n.byteLength,position:p}=o[2]||{}),u==null&&(u=0),A|=0,A===0?0:(p==null&&(p=-1),e.readSync(a,n,u,A,p))});for(let o of N_e){let a=o;if(typeof t[a]>"u")continue;let n=e[o];typeof n>"u"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let o=t.promises;for(let a of iY){let n=a.replace(/Promise$/,"");if(typeof o[n]>"u")continue;let u=e[a];typeof u>"u"||a!=="open"&&r(o,n,(A,...p)=>A instanceof Sw?A[n].apply(A,p):u.call(e,A,...p))}r(o,"open",async(...a)=>{let n=await e.openPromise(...a);return new Sw(n,e)})}t.read[Wd.promisify.custom]=async(o,a,...n)=>({bytesRead:await e.readPromise(o,a,...n),buffer:a}),t.write[Wd.promisify.custom]=async(o,a,...n)=>({bytesWritten:await e.writePromise(o,a,...n),buffer:a})}function mD(t,e){let r=Object.create(t);return xw(r,e),r}var Wd,N_e,iY,sY=Et(()=>{Wd=ve("util");X7();nY();N_e=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),iY=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","rmPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"])});function oY(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}function aY(){if(MR)return MR;let t=ue.toPortablePath(lY.default.tmpdir()),e=oe.realpathSync(t);return process.once("exit",()=>{oe.rmtempSync()}),MR={tmpdir:t,realTmpdir:e}}var lY,Mc,MR,oe,cY=Et(()=>{lY=Ze(ve("os"));O0();Ia();Mc=new Set,MR=null;oe=Object.assign(new Tn,{detachTemp(t){Mc.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=aY();for(;;){let o=oY("xfs-");try{this.mkdirSync(V.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=V.join(r,o);if(Mc.add(a),typeof t>"u")return a;try{return t(a)}finally{if(Mc.has(a)){Mc.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=aY();for(;;){let o=oY("xfs-");try{await this.mkdirPromise(V.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=V.join(r,o);if(Mc.add(a),typeof t>"u")return a;try{return await t(a)}finally{if(Mc.has(a)){Mc.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(Mc.values()).map(async t=>{try{await oe.removePromise(t,{maxRetries:0}),Mc.delete(t)}catch{}}))},rmtempSync(){for(let t of Mc)try{oe.removeSync(t),Mc.delete(t)}catch{}}})});var kw={};Vt(kw,{AliasFS:()=>Hu,BasePortableFakeFS:()=>_u,CustomDir:()=>bw,CwdFS:()=>gn,FakeFS:()=>hf,Filename:()=>dr,JailFS:()=>qu,LazyFS:()=>Gd,MountFS:()=>Up,NoFS:()=>pD,NodeFS:()=>Tn,PortablePath:()=>It,PosixFS:()=>_p,ProxiedFS:()=>Ss,VirtualFS:()=>zs,constants:()=>Bi,errors:()=>nr,extendFs:()=>mD,normalizeLineEndings:()=>L0,npath:()=>ue,opendir:()=>uD,patchFs:()=>xw,ppath:()=>V,setupCopyIndex:()=>cD,statUtils:()=>wa,unwatchAllFiles:()=>N0,unwatchFile:()=>T0,watchFile:()=>jd,xfs:()=>oe});var Pt=Et(()=>{P7();oD();kR();RR();F7();TR();M0();Ia();Ia();O7();M0();H7();j7();G7();Y7();W7();O0();K7();gf();V7();sY();cY()});var hY=_((pSt,pY)=>{pY.exports=fY;fY.sync=M_e;var uY=ve("fs");function L_e(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var o=0;o{yY.exports=dY;dY.sync=O_e;var gY=ve("fs");function dY(t,e,r){gY.stat(t,function(o,a){r(o,o?!1:mY(a,e))})}function O_e(t,e){return mY(gY.statSync(t),e)}function mY(t,e){return t.isFile()&&U_e(t,e)}function U_e(t,e){var r=t.mode,o=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),u=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),A=parseInt("100",8),p=parseInt("010",8),h=parseInt("001",8),E=A|p,I=r&h||r&p&&a===u||r&A&&o===n||r&E&&n===0;return I}});var wY=_((dSt,CY)=>{var gSt=ve("fs"),yD;process.platform==="win32"||global.TESTING_WINDOWS?yD=hY():yD=EY();CY.exports=OR;OR.sync=__e;function OR(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(o,a){OR(t,e||{},function(n,u){n?a(n):o(u)})})}yD(t,e||{},function(o,a){o&&(o.code==="EACCES"||e&&e.ignoreErrors)&&(o=null,a=!1),r(o,a)})}function __e(t,e){try{return yD.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var SY=_((mSt,bY)=>{var Kd=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",IY=ve("path"),H_e=Kd?";":":",BY=wY(),vY=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),DY=(t,e)=>{let r=e.colon||H_e,o=t.match(/\//)||Kd&&t.match(/\\/)?[""]:[...Kd?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],a=Kd?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=Kd?a.split(r):[""];return Kd&&t.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:o,pathExt:n,pathExtExe:a}},PY=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:o,pathExt:a,pathExtExe:n}=DY(t,e),u=[],A=h=>new Promise((E,I)=>{if(h===o.length)return e.all&&u.length?E(u):I(vY(t));let v=o[h],x=/^".*"$/.test(v)?v.slice(1,-1):v,C=IY.join(x,t),R=!x&&/^\.[\\\/]/.test(t)?t.slice(0,2)+C:C;E(p(R,h,0))}),p=(h,E,I)=>new Promise((v,x)=>{if(I===a.length)return v(A(E+1));let C=a[I];BY(h+C,{pathExt:n},(R,L)=>{if(!R&&L)if(e.all)u.push(h+C);else return v(h+C);return v(p(h,E,I+1))})});return r?A(0).then(h=>r(null,h),r):A(0)},q_e=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:o,pathExtExe:a}=DY(t,e),n=[];for(let u=0;u{"use strict";var xY=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(o=>o.toUpperCase()==="PATH")||"Path"};UR.exports=xY;UR.exports.default=xY});var TY=_((ESt,RY)=>{"use strict";var QY=ve("path"),j_e=SY(),G_e=kY();function FY(t,e){let r=t.options.env||process.env,o=process.cwd(),a=t.options.cwd!=null,n=a&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(t.options.cwd)}catch{}let u;try{u=j_e.sync(t.command,{path:r[G_e({env:r})],pathExt:e?QY.delimiter:void 0})}catch{}finally{n&&process.chdir(o)}return u&&(u=QY.resolve(a?t.options.cwd:"",u)),u}function Y_e(t){return FY(t)||FY(t,!0)}RY.exports=Y_e});var NY=_((CSt,HR)=>{"use strict";var _R=/([()\][%!^"`<>&|;, *?])/g;function W_e(t){return t=t.replace(_R,"^$1"),t}function K_e(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(_R,"^$1"),e&&(t=t.replace(_R,"^$1")),t}HR.exports.command=W_e;HR.exports.argument=K_e});var MY=_((wSt,LY)=>{"use strict";LY.exports=/^#!(.*)/});var UY=_((ISt,OY)=>{"use strict";var V_e=MY();OY.exports=(t="")=>{let e=t.match(V_e);if(!e)return null;let[r,o]=e[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?o:o?`${a} ${o}`:a}});var HY=_((BSt,_Y)=>{"use strict";var qR=ve("fs"),z_e=UY();function J_e(t){let r=Buffer.alloc(150),o;try{o=qR.openSync(t,"r"),qR.readSync(o,r,0,150,0),qR.closeSync(o)}catch{}return z_e(r.toString())}_Y.exports=J_e});var YY=_((vSt,GY)=>{"use strict";var X_e=ve("path"),qY=TY(),jY=NY(),Z_e=HY(),$_e=process.platform==="win32",e8e=/\.(?:com|exe)$/i,t8e=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function r8e(t){t.file=qY(t);let e=t.file&&Z_e(t.file);return e?(t.args.unshift(t.file),t.command=e,qY(t)):t.file}function n8e(t){if(!$_e)return t;let e=r8e(t),r=!e8e.test(e);if(t.options.forceShell||r){let o=t8e.test(e);t.command=X_e.normalize(t.command),t.command=jY.command(t.command),t.args=t.args.map(n=>jY.argument(n,o));let a=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${a}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function i8e(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let o={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?o:n8e(o)}GY.exports=i8e});var VY=_((DSt,KY)=>{"use strict";var jR=process.platform==="win32";function GR(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function s8e(t,e){if(!jR)return;let r=t.emit;t.emit=function(o,a){if(o==="exit"){let n=WY(a,e,"spawn");if(n)return r.call(t,"error",n)}return r.apply(t,arguments)}}function WY(t,e){return jR&&t===1&&!e.file?GR(e.original,"spawn"):null}function o8e(t,e){return jR&&t===1&&!e.file?GR(e.original,"spawnSync"):null}KY.exports={hookChildProcess:s8e,verifyENOENT:WY,verifyENOENTSync:o8e,notFoundError:GR}});var KR=_((PSt,Vd)=>{"use strict";var zY=ve("child_process"),YR=YY(),WR=VY();function JY(t,e,r){let o=YR(t,e,r),a=zY.spawn(o.command,o.args,o.options);return WR.hookChildProcess(a,o),a}function a8e(t,e,r){let o=YR(t,e,r),a=zY.spawnSync(o.command,o.args,o.options);return a.error=a.error||WR.verifyENOENTSync(a.status,o),a}Vd.exports=JY;Vd.exports.spawn=JY;Vd.exports.sync=a8e;Vd.exports._parse=YR;Vd.exports._enoent=WR});var ZY=_((bSt,XY)=>{"use strict";function l8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function _0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,_0)}l8e(_0,Error);_0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;I>",b=Br(">>",!1),y=">&",F=Br(">&",!1),J=">",X=Br(">",!1),$="<<<",ie=Br("<<<",!1),Se="<&",Re=Br("<&",!1),at="<",dt=Br("<",!1),jt=function(N){return{type:"argument",segments:[].concat(...N)}},tr=function(N){return N},bt="$'",ln=Br("$'",!1),kr="'",mr=Br("'",!1),Sr=function(N){return[{type:"text",text:N}]},Kr='""',Kn=Br('""',!1),Ms=function(){return{type:"text",text:""}},Ri='"',gs=Br('"',!1),io=function(N){return N},Pi=function(N){return{type:"arithmetic",arithmetic:N,quoted:!0}},Os=function(N){return{type:"shell",shell:N,quoted:!0}},so=function(N){return{type:"variable",...N,quoted:!0}},uc=function(N){return{type:"text",text:N}},Au=function(N){return{type:"arithmetic",arithmetic:N,quoted:!1}},op=function(N){return{type:"shell",shell:N,quoted:!1}},ap=function(N){return{type:"variable",...N,quoted:!1}},Us=function(N){return{type:"glob",pattern:N}},Dn=/^[^']/,oo=Is(["'"],!0,!1),_s=function(N){return N.join("")},ml=/^[^$"]/,yl=Is(["$",'"'],!0,!1),ao=`\\ +`,Vn=Br(`\\ +`,!1),Mn=function(){return""},Ti="\\",On=Br("\\",!1),_i=/^[\\$"`]/,ir=Is(["\\","$",'"',"`"],!1,!1),Me=function(N){return N},ii="\\a",Ha=Br("\\a",!1),hr=function(){return"a"},Ac="\\b",fu=Br("\\b",!1),fc=function(){return"\b"},El=/^[Ee]/,vA=Is(["E","e"],!1,!1),pu=function(){return"\x1B"},Ie="\\f",Tt=Br("\\f",!1),pc=function(){return"\f"},Hi="\\n",hu=Br("\\n",!1),Yt=function(){return` +`},Cl="\\r",DA=Br("\\r",!1),lp=function(){return"\r"},hc="\\t",PA=Br("\\t",!1),Qn=function(){return" "},hi="\\v",gc=Br("\\v",!1),bA=function(){return"\v"},aa=/^[\\'"?]/,Ni=Is(["\\","'",'"',"?"],!1,!1),_o=function(N){return String.fromCharCode(parseInt(N,16))},Xe="\\x",lo=Br("\\x",!1),dc="\\u",gu=Br("\\u",!1),qi="\\U",du=Br("\\U",!1),SA=function(N){return String.fromCodePoint(parseInt(N,16))},qa=/^[0-7]/,mc=Is([["0","7"]],!1,!1),ds=/^[0-9a-fA-f]/,Ht=Is([["0","9"],["a","f"],["A","f"]],!1,!1),Fn=o0(),Ei="{}",la=Br("{}",!1),co=function(){return"{}"},Hs="-",ca=Br("-",!1),ua="+",Ho=Br("+",!1),Ci=".",ms=Br(".",!1),ys=function(N,K,re){return{type:"number",value:(N==="-"?-1:1)*parseFloat(K.join("")+"."+re.join(""))}},Es=function(N,K){return{type:"number",value:(N==="-"?-1:1)*parseInt(K.join(""))}},qs=function(N){return{type:"variable",...N}},Un=function(N){return{type:"variable",name:N}},Pn=function(N){return N},Cs="*",We=Br("*",!1),tt="/",Bt=Br("/",!1),or=function(N,K,re){return{type:K==="*"?"multiplication":"division",right:re}},ee=function(N,K){return K.reduce((re,he)=>({left:re,...he}),N)},ye=function(N,K,re){return{type:K==="+"?"addition":"subtraction",right:re}},Le="$((",ft=Br("$((",!1),pt="))",Nt=Br("))",!1),rr=function(N){return N},$r="$(",ji=Br("$(",!1),rs=function(N){return N},bi="${",qo=Br("${",!1),xA=":-",kA=Br(":-",!1),cp=function(N,K){return{name:N,defaultValue:K}},e0=":-}",mu=Br(":-}",!1),t0=function(N){return{name:N,defaultValue:[]}},yu=":+",uo=Br(":+",!1),QA=function(N,K){return{name:N,alternativeValue:K}},yc=":+}",Aa=Br(":+}",!1),r0=function(N){return{name:N,alternativeValue:[]}},Ec=function(N){return{name:N}},hd="$",n0=Br("$",!1),$n=function(N){return e.isGlobPattern(N)},up=function(N){return N},i0=/^[a-zA-Z0-9_]/,FA=Is([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),js=function(){return s0()},Eu=/^[$@*?#a-zA-Z0-9_\-]/,ja=Is(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Gi=/^[()}<>$|&; \t"']/,fa=Is(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),Cu=/^[<>&; \t"']/,ws=Is(["<",">","&",";"," "," ",'"',"'"],!1,!1),Cc=/^[ \t]/,wc=Is([" "," "],!1,!1),Y=0,Dt=0,wl=[{line:1,column:1}],Si=0,Ic=[],ct=0,wu;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function s0(){return t.substring(Dt,Y)}function tw(){return Bc(Dt,Y)}function RA(N,K){throw K=K!==void 0?K:Bc(Dt,Y),c0([l0(N)],t.substring(Dt,Y),K)}function Ap(N,K){throw K=K!==void 0?K:Bc(Dt,Y),gd(N,K)}function Br(N,K){return{type:"literal",text:N,ignoreCase:K}}function Is(N,K,re){return{type:"class",parts:N,inverted:K,ignoreCase:re}}function o0(){return{type:"any"}}function a0(){return{type:"end"}}function l0(N){return{type:"other",description:N}}function fp(N){var K=wl[N],re;if(K)return K;for(re=N-1;!wl[re];)re--;for(K=wl[re],K={line:K.line,column:K.column};reSi&&(Si=Y,Ic=[]),Ic.push(N))}function gd(N,K){return new _0(N,null,null,K)}function c0(N,K,re){return new _0(_0.buildMessage(N,K),N,K,re)}function u0(){var N,K,re;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();return K!==r?(re=Iu(),re===r&&(re=null),re!==r?(Dt=N,K=n(re),N=K):(Y=N,N=r)):(Y=N,N=r),N}function Iu(){var N,K,re,he,ze;if(N=Y,K=Bu(),K!==r){for(re=[],he=Qt();he!==r;)re.push(he),he=Qt();re!==r?(he=A0(),he!==r?(ze=dd(),ze===r&&(ze=null),ze!==r?(Dt=N,K=u(K,he,ze),N=K):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;if(N===r)if(N=Y,K=Bu(),K!==r){for(re=[],he=Qt();he!==r;)re.push(he),he=Qt();re!==r?(he=A0(),he===r&&(he=null),he!==r?(Dt=N,K=A(K,he),N=K):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;return N}function dd(){var N,K,re,he,ze;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(re=Iu(),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();he!==r?(Dt=N,K=p(re),N=K):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r;return N}function A0(){var N;return t.charCodeAt(Y)===59?(N=h,Y++):(N=r,ct===0&&Ct(E)),N===r&&(t.charCodeAt(Y)===38?(N=I,Y++):(N=r,ct===0&&Ct(v))),N}function Bu(){var N,K,re;return N=Y,K=pa(),K!==r?(re=rw(),re===r&&(re=null),re!==r?(Dt=N,K=x(K,re),N=K):(Y=N,N=r)):(Y=N,N=r),N}function rw(){var N,K,re,he,ze,mt,fr;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(re=md(),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();if(he!==r)if(ze=Bu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,K=C(re,ze),N=K):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r;return N}function md(){var N;return t.substr(Y,2)===R?(N=R,Y+=2):(N=r,ct===0&&Ct(L)),N===r&&(t.substr(Y,2)===U?(N=U,Y+=2):(N=r,ct===0&&Ct(z))),N}function pa(){var N,K,re;return N=Y,K=f0(),K!==r?(re=vc(),re===r&&(re=null),re!==r?(Dt=N,K=te(K,re),N=K):(Y=N,N=r)):(Y=N,N=r),N}function vc(){var N,K,re,he,ze,mt,fr;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(re=Il(),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();if(he!==r)if(ze=pa(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,K=ae(re,ze),N=K):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r;return N}function Il(){var N;return t.substr(Y,2)===le?(N=le,Y+=2):(N=r,ct===0&&Ct(ce)),N===r&&(t.charCodeAt(Y)===124?(N=Ce,Y++):(N=r,ct===0&&Ct(de))),N}function vu(){var N,K,re,he,ze,mt;if(N=Y,K=d0(),K!==r)if(t.charCodeAt(Y)===61?(re=Be,Y++):(re=r,ct===0&&Ct(Ee)),re!==r)if(he=jo(),he!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(Dt=N,K=g(K,he),N=K):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r;else Y=N,N=r;if(N===r)if(N=Y,K=d0(),K!==r)if(t.charCodeAt(Y)===61?(re=Be,Y++):(re=r,ct===0&&Ct(Ee)),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();he!==r?(Dt=N,K=me(K),N=K):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r;return N}function f0(){var N,K,re,he,ze,mt,fr,Cr,yn,oi,Li;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(t.charCodeAt(Y)===40?(re=we,Y++):(re=r,ct===0&&Ct(Ae)),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();if(he!==r)if(ze=Iu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();if(mt!==r)if(t.charCodeAt(Y)===41?(fr=ne,Y++):(fr=r,ct===0&&Ct(Z)),fr!==r){for(Cr=[],yn=Qt();yn!==r;)Cr.push(yn),yn=Qt();if(Cr!==r){for(yn=[],oi=Ga();oi!==r;)yn.push(oi),oi=Ga();if(yn!==r){for(oi=[],Li=Qt();Li!==r;)oi.push(Li),Li=Qt();oi!==r?(Dt=N,K=xe(ze,yn),N=K):(Y=N,N=r)}else Y=N,N=r}else Y=N,N=r}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r;if(N===r){for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(t.charCodeAt(Y)===123?(re=Ne,Y++):(re=r,ct===0&&Ct(ht)),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();if(he!==r)if(ze=Iu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();if(mt!==r)if(t.charCodeAt(Y)===125?(fr=H,Y++):(fr=r,ct===0&&Ct(rt)),fr!==r){for(Cr=[],yn=Qt();yn!==r;)Cr.push(yn),yn=Qt();if(Cr!==r){for(yn=[],oi=Ga();oi!==r;)yn.push(oi),oi=Ga();if(yn!==r){for(oi=[],Li=Qt();Li!==r;)oi.push(Li),Li=Qt();oi!==r?(Dt=N,K=Te(ze,yn),N=K):(Y=N,N=r)}else Y=N,N=r}else Y=N,N=r}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r;if(N===r){for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r){for(re=[],he=vu();he!==r;)re.push(he),he=vu();if(re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();if(he!==r){if(ze=[],mt=pp(),mt!==r)for(;mt!==r;)ze.push(mt),mt=pp();else ze=r;if(ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,K=Fe(re,ze),N=K):(Y=N,N=r)}else Y=N,N=r}else Y=N,N=r}else Y=N,N=r}else Y=N,N=r;if(N===r){for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r){if(re=[],he=vu(),he!==r)for(;he!==r;)re.push(he),he=vu();else re=r;if(re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();he!==r?(Dt=N,K=ke(re),N=K):(Y=N,N=r)}else Y=N,N=r}else Y=N,N=r}}}return N}function TA(){var N,K,re,he,ze;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r){if(re=[],he=hp(),he!==r)for(;he!==r;)re.push(he),he=hp();else re=r;if(re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();he!==r?(Dt=N,K=Ye(re),N=K):(Y=N,N=r)}else Y=N,N=r}else Y=N,N=r;return N}function pp(){var N,K,re;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r?(re=Ga(),re!==r?(Dt=N,K=be(re),N=K):(Y=N,N=r)):(Y=N,N=r),N===r){for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();K!==r?(re=hp(),re!==r?(Dt=N,K=be(re),N=K):(Y=N,N=r)):(Y=N,N=r)}return N}function Ga(){var N,K,re,he,ze;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();return K!==r?(et.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(Ue)),re===r&&(re=null),re!==r?(he=p0(),he!==r?(ze=hp(),ze!==r?(Dt=N,K=S(re,he,ze),N=K):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N}function p0(){var N;return t.substr(Y,2)===w?(N=w,Y+=2):(N=r,ct===0&&Ct(b)),N===r&&(t.substr(Y,2)===y?(N=y,Y+=2):(N=r,ct===0&&Ct(F)),N===r&&(t.charCodeAt(Y)===62?(N=J,Y++):(N=r,ct===0&&Ct(X)),N===r&&(t.substr(Y,3)===$?(N=$,Y+=3):(N=r,ct===0&&Ct(ie)),N===r&&(t.substr(Y,2)===Se?(N=Se,Y+=2):(N=r,ct===0&&Ct(Re)),N===r&&(t.charCodeAt(Y)===60?(N=at,Y++):(N=r,ct===0&&Ct(dt))))))),N}function hp(){var N,K,re;for(N=Y,K=[],re=Qt();re!==r;)K.push(re),re=Qt();return K!==r?(re=jo(),re!==r?(Dt=N,K=be(re),N=K):(Y=N,N=r)):(Y=N,N=r),N}function jo(){var N,K,re;if(N=Y,K=[],re=Bs(),re!==r)for(;re!==r;)K.push(re),re=Bs();else K=r;return K!==r&&(Dt=N,K=jt(K)),N=K,N}function Bs(){var N,K;return N=Y,K=wi(),K!==r&&(Dt=N,K=tr(K)),N=K,N===r&&(N=Y,K=yd(),K!==r&&(Dt=N,K=tr(K)),N=K,N===r&&(N=Y,K=Ed(),K!==r&&(Dt=N,K=tr(K)),N=K,N===r&&(N=Y,K=Go(),K!==r&&(Dt=N,K=tr(K)),N=K))),N}function wi(){var N,K,re,he;return N=Y,t.substr(Y,2)===bt?(K=bt,Y+=2):(K=r,ct===0&&Ct(ln)),K!==r?(re=cn(),re!==r?(t.charCodeAt(Y)===39?(he=kr,Y++):(he=r,ct===0&&Ct(mr)),he!==r?(Dt=N,K=Sr(re),N=K):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N}function yd(){var N,K,re,he;return N=Y,t.charCodeAt(Y)===39?(K=kr,Y++):(K=r,ct===0&&Ct(mr)),K!==r?(re=dp(),re!==r?(t.charCodeAt(Y)===39?(he=kr,Y++):(he=r,ct===0&&Ct(mr)),he!==r?(Dt=N,K=Sr(re),N=K):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N}function Ed(){var N,K,re,he;if(N=Y,t.substr(Y,2)===Kr?(K=Kr,Y+=2):(K=r,ct===0&&Ct(Kn)),K!==r&&(Dt=N,K=Ms()),N=K,N===r)if(N=Y,t.charCodeAt(Y)===34?(K=Ri,Y++):(K=r,ct===0&&Ct(gs)),K!==r){for(re=[],he=NA();he!==r;)re.push(he),he=NA();re!==r?(t.charCodeAt(Y)===34?(he=Ri,Y++):(he=r,ct===0&&Ct(gs)),he!==r?(Dt=N,K=io(re),N=K):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;return N}function Go(){var N,K,re;if(N=Y,K=[],re=gp(),re!==r)for(;re!==r;)K.push(re),re=gp();else K=r;return K!==r&&(Dt=N,K=io(K)),N=K,N}function NA(){var N,K;return N=Y,K=Yr(),K!==r&&(Dt=N,K=Pi(K)),N=K,N===r&&(N=Y,K=mp(),K!==r&&(Dt=N,K=Os(K)),N=K,N===r&&(N=Y,K=Pc(),K!==r&&(Dt=N,K=so(K)),N=K,N===r&&(N=Y,K=h0(),K!==r&&(Dt=N,K=uc(K)),N=K))),N}function gp(){var N,K;return N=Y,K=Yr(),K!==r&&(Dt=N,K=Au(K)),N=K,N===r&&(N=Y,K=mp(),K!==r&&(Dt=N,K=op(K)),N=K,N===r&&(N=Y,K=Pc(),K!==r&&(Dt=N,K=ap(K)),N=K,N===r&&(N=Y,K=nw(),K!==r&&(Dt=N,K=Us(K)),N=K,N===r&&(N=Y,K=ga(),K!==r&&(Dt=N,K=uc(K)),N=K)))),N}function dp(){var N,K,re;for(N=Y,K=[],Dn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(oo));re!==r;)K.push(re),Dn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(oo));return K!==r&&(Dt=N,K=_s(K)),N=K,N}function h0(){var N,K,re;if(N=Y,K=[],re=ha(),re===r&&(ml.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(yl))),re!==r)for(;re!==r;)K.push(re),re=ha(),re===r&&(ml.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(yl)));else K=r;return K!==r&&(Dt=N,K=_s(K)),N=K,N}function ha(){var N,K,re;return N=Y,t.substr(Y,2)===ao?(K=ao,Y+=2):(K=r,ct===0&&Ct(Vn)),K!==r&&(Dt=N,K=Mn()),N=K,N===r&&(N=Y,t.charCodeAt(Y)===92?(K=Ti,Y++):(K=r,ct===0&&Ct(On)),K!==r?(_i.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(ir)),re!==r?(Dt=N,K=Me(re),N=K):(Y=N,N=r)):(Y=N,N=r)),N}function cn(){var N,K,re;for(N=Y,K=[],re=Ao(),re===r&&(Dn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(oo)));re!==r;)K.push(re),re=Ao(),re===r&&(Dn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(oo)));return K!==r&&(Dt=N,K=_s(K)),N=K,N}function Ao(){var N,K,re;return N=Y,t.substr(Y,2)===ii?(K=ii,Y+=2):(K=r,ct===0&&Ct(Ha)),K!==r&&(Dt=N,K=hr()),N=K,N===r&&(N=Y,t.substr(Y,2)===Ac?(K=Ac,Y+=2):(K=r,ct===0&&Ct(fu)),K!==r&&(Dt=N,K=fc()),N=K,N===r&&(N=Y,t.charCodeAt(Y)===92?(K=Ti,Y++):(K=r,ct===0&&Ct(On)),K!==r?(El.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(vA)),re!==r?(Dt=N,K=pu(),N=K):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===Ie?(K=Ie,Y+=2):(K=r,ct===0&&Ct(Tt)),K!==r&&(Dt=N,K=pc()),N=K,N===r&&(N=Y,t.substr(Y,2)===Hi?(K=Hi,Y+=2):(K=r,ct===0&&Ct(hu)),K!==r&&(Dt=N,K=Yt()),N=K,N===r&&(N=Y,t.substr(Y,2)===Cl?(K=Cl,Y+=2):(K=r,ct===0&&Ct(DA)),K!==r&&(Dt=N,K=lp()),N=K,N===r&&(N=Y,t.substr(Y,2)===hc?(K=hc,Y+=2):(K=r,ct===0&&Ct(PA)),K!==r&&(Dt=N,K=Qn()),N=K,N===r&&(N=Y,t.substr(Y,2)===hi?(K=hi,Y+=2):(K=r,ct===0&&Ct(gc)),K!==r&&(Dt=N,K=bA()),N=K,N===r&&(N=Y,t.charCodeAt(Y)===92?(K=Ti,Y++):(K=r,ct===0&&Ct(On)),K!==r?(aa.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(Ni)),re!==r?(Dt=N,K=Me(re),N=K):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=LA()))))))))),N}function LA(){var N,K,re,he,ze,mt,fr,Cr,yn,oi,Li,y0;return N=Y,t.charCodeAt(Y)===92?(K=Ti,Y++):(K=r,ct===0&&Ct(On)),K!==r?(re=Ya(),re!==r?(Dt=N,K=_o(re),N=K):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===Xe?(K=Xe,Y+=2):(K=r,ct===0&&Ct(lo)),K!==r?(re=Y,he=Y,ze=Ya(),ze!==r?(mt=si(),mt!==r?(ze=[ze,mt],he=ze):(Y=he,he=r)):(Y=he,he=r),he===r&&(he=Ya()),he!==r?re=t.substring(re,Y):re=he,re!==r?(Dt=N,K=_o(re),N=K):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===dc?(K=dc,Y+=2):(K=r,ct===0&&Ct(gu)),K!==r?(re=Y,he=Y,ze=si(),ze!==r?(mt=si(),mt!==r?(fr=si(),fr!==r?(Cr=si(),Cr!==r?(ze=[ze,mt,fr,Cr],he=ze):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r),he!==r?re=t.substring(re,Y):re=he,re!==r?(Dt=N,K=_o(re),N=K):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===qi?(K=qi,Y+=2):(K=r,ct===0&&Ct(du)),K!==r?(re=Y,he=Y,ze=si(),ze!==r?(mt=si(),mt!==r?(fr=si(),fr!==r?(Cr=si(),Cr!==r?(yn=si(),yn!==r?(oi=si(),oi!==r?(Li=si(),Li!==r?(y0=si(),y0!==r?(ze=[ze,mt,fr,Cr,yn,oi,Li,y0],he=ze):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r),he!==r?re=t.substring(re,Y):re=he,re!==r?(Dt=N,K=SA(re),N=K):(Y=N,N=r)):(Y=N,N=r)))),N}function Ya(){var N;return qa.test(t.charAt(Y))?(N=t.charAt(Y),Y++):(N=r,ct===0&&Ct(mc)),N}function si(){var N;return ds.test(t.charAt(Y))?(N=t.charAt(Y),Y++):(N=r,ct===0&&Ct(Ht)),N}function ga(){var N,K,re,he,ze;if(N=Y,K=[],re=Y,t.charCodeAt(Y)===92?(he=Ti,Y++):(he=r,ct===0&&Ct(On)),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r),re===r&&(re=Y,t.substr(Y,2)===Ei?(he=Ei,Y+=2):(he=r,ct===0&&Ct(la)),he!==r&&(Dt=re,he=co()),re=he,re===r&&(re=Y,he=Y,ct++,ze=Cd(),ct--,ze===r?he=void 0:(Y=he,he=r),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r))),re!==r)for(;re!==r;)K.push(re),re=Y,t.charCodeAt(Y)===92?(he=Ti,Y++):(he=r,ct===0&&Ct(On)),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r),re===r&&(re=Y,t.substr(Y,2)===Ei?(he=Ei,Y+=2):(he=r,ct===0&&Ct(la)),he!==r&&(Dt=re,he=co()),re=he,re===r&&(re=Y,he=Y,ct++,ze=Cd(),ct--,ze===r?he=void 0:(Y=he,he=r),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r)));else K=r;return K!==r&&(Dt=N,K=_s(K)),N=K,N}function Dc(){var N,K,re,he,ze,mt;if(N=Y,t.charCodeAt(Y)===45?(K=Hs,Y++):(K=r,ct===0&&Ct(ca)),K===r&&(t.charCodeAt(Y)===43?(K=ua,Y++):(K=r,ct===0&&Ct(Ho))),K===r&&(K=null),K!==r){if(re=[],et.test(t.charAt(Y))?(he=t.charAt(Y),Y++):(he=r,ct===0&&Ct(Ue)),he!==r)for(;he!==r;)re.push(he),et.test(t.charAt(Y))?(he=t.charAt(Y),Y++):(he=r,ct===0&&Ct(Ue));else re=r;if(re!==r)if(t.charCodeAt(Y)===46?(he=Ci,Y++):(he=r,ct===0&&Ct(ms)),he!==r){if(ze=[],et.test(t.charAt(Y))?(mt=t.charAt(Y),Y++):(mt=r,ct===0&&Ct(Ue)),mt!==r)for(;mt!==r;)ze.push(mt),et.test(t.charAt(Y))?(mt=t.charAt(Y),Y++):(mt=r,ct===0&&Ct(Ue));else ze=r;ze!==r?(Dt=N,K=ys(K,re,ze),N=K):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;if(N===r){if(N=Y,t.charCodeAt(Y)===45?(K=Hs,Y++):(K=r,ct===0&&Ct(ca)),K===r&&(t.charCodeAt(Y)===43?(K=ua,Y++):(K=r,ct===0&&Ct(Ho))),K===r&&(K=null),K!==r){if(re=[],et.test(t.charAt(Y))?(he=t.charAt(Y),Y++):(he=r,ct===0&&Ct(Ue)),he!==r)for(;he!==r;)re.push(he),et.test(t.charAt(Y))?(he=t.charAt(Y),Y++):(he=r,ct===0&&Ct(Ue));else re=r;re!==r?(Dt=N,K=Es(K,re),N=K):(Y=N,N=r)}else Y=N,N=r;if(N===r&&(N=Y,K=Pc(),K!==r&&(Dt=N,K=qs(K)),N=K,N===r&&(N=Y,K=Wa(),K!==r&&(Dt=N,K=Un(K)),N=K,N===r)))if(N=Y,t.charCodeAt(Y)===40?(K=we,Y++):(K=r,ct===0&&Ct(Ae)),K!==r){for(re=[],he=Qt();he!==r;)re.push(he),he=Qt();if(re!==r)if(he=ns(),he!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(t.charCodeAt(Y)===41?(mt=ne,Y++):(mt=r,ct===0&&Ct(Z)),mt!==r?(Dt=N,K=Pn(he),N=K):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r}return N}function Bl(){var N,K,re,he,ze,mt,fr,Cr;if(N=Y,K=Dc(),K!==r){for(re=[],he=Y,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(Y)===42?(mt=Cs,Y++):(mt=r,ct===0&&Ct(We)),mt===r&&(t.charCodeAt(Y)===47?(mt=tt,Y++):(mt=r,ct===0&&Ct(Bt))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Dc(),Cr!==r?(Dt=he,ze=or(K,mt,Cr),he=ze):(Y=he,he=r)):(Y=he,he=r)}else Y=he,he=r;else Y=he,he=r;for(;he!==r;){for(re.push(he),he=Y,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(Y)===42?(mt=Cs,Y++):(mt=r,ct===0&&Ct(We)),mt===r&&(t.charCodeAt(Y)===47?(mt=tt,Y++):(mt=r,ct===0&&Ct(Bt))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Dc(),Cr!==r?(Dt=he,ze=or(K,mt,Cr),he=ze):(Y=he,he=r)):(Y=he,he=r)}else Y=he,he=r;else Y=he,he=r}re!==r?(Dt=N,K=ee(K,re),N=K):(Y=N,N=r)}else Y=N,N=r;return N}function ns(){var N,K,re,he,ze,mt,fr,Cr;if(N=Y,K=Bl(),K!==r){for(re=[],he=Y,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(Y)===43?(mt=ua,Y++):(mt=r,ct===0&&Ct(Ho)),mt===r&&(t.charCodeAt(Y)===45?(mt=Hs,Y++):(mt=r,ct===0&&Ct(ca))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Bl(),Cr!==r?(Dt=he,ze=ye(K,mt,Cr),he=ze):(Y=he,he=r)):(Y=he,he=r)}else Y=he,he=r;else Y=he,he=r;for(;he!==r;){for(re.push(he),he=Y,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(Y)===43?(mt=ua,Y++):(mt=r,ct===0&&Ct(Ho)),mt===r&&(t.charCodeAt(Y)===45?(mt=Hs,Y++):(mt=r,ct===0&&Ct(ca))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Bl(),Cr!==r?(Dt=he,ze=ye(K,mt,Cr),he=ze):(Y=he,he=r)):(Y=he,he=r)}else Y=he,he=r;else Y=he,he=r}re!==r?(Dt=N,K=ee(K,re),N=K):(Y=N,N=r)}else Y=N,N=r;return N}function Yr(){var N,K,re,he,ze,mt;if(N=Y,t.substr(Y,3)===Le?(K=Le,Y+=3):(K=r,ct===0&&Ct(ft)),K!==r){for(re=[],he=Qt();he!==r;)re.push(he),he=Qt();if(re!==r)if(he=ns(),he!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(t.substr(Y,2)===pt?(mt=pt,Y+=2):(mt=r,ct===0&&Ct(Nt)),mt!==r?(Dt=N,K=rr(he),N=K):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;return N}function mp(){var N,K,re,he;return N=Y,t.substr(Y,2)===$r?(K=$r,Y+=2):(K=r,ct===0&&Ct(ji)),K!==r?(re=Iu(),re!==r?(t.charCodeAt(Y)===41?(he=ne,Y++):(he=r,ct===0&&Ct(Z)),he!==r?(Dt=N,K=rs(re),N=K):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N}function Pc(){var N,K,re,he,ze,mt;return N=Y,t.substr(Y,2)===bi?(K=bi,Y+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Wa(),re!==r?(t.substr(Y,2)===xA?(he=xA,Y+=2):(he=r,ct===0&&Ct(kA)),he!==r?(ze=TA(),ze!==r?(t.charCodeAt(Y)===125?(mt=H,Y++):(mt=r,ct===0&&Ct(rt)),mt!==r?(Dt=N,K=cp(re,ze),N=K):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===bi?(K=bi,Y+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Wa(),re!==r?(t.substr(Y,3)===e0?(he=e0,Y+=3):(he=r,ct===0&&Ct(mu)),he!==r?(Dt=N,K=t0(re),N=K):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===bi?(K=bi,Y+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Wa(),re!==r?(t.substr(Y,2)===yu?(he=yu,Y+=2):(he=r,ct===0&&Ct(uo)),he!==r?(ze=TA(),ze!==r?(t.charCodeAt(Y)===125?(mt=H,Y++):(mt=r,ct===0&&Ct(rt)),mt!==r?(Dt=N,K=QA(re,ze),N=K):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===bi?(K=bi,Y+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Wa(),re!==r?(t.substr(Y,3)===yc?(he=yc,Y+=3):(he=r,ct===0&&Ct(Aa)),he!==r?(Dt=N,K=r0(re),N=K):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===bi?(K=bi,Y+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Wa(),re!==r?(t.charCodeAt(Y)===125?(he=H,Y++):(he=r,ct===0&&Ct(rt)),he!==r?(Dt=N,K=Ec(re),N=K):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.charCodeAt(Y)===36?(K=hd,Y++):(K=r,ct===0&&Ct(n0)),K!==r?(re=Wa(),re!==r?(Dt=N,K=Ec(re),N=K):(Y=N,N=r)):(Y=N,N=r)))))),N}function nw(){var N,K,re;return N=Y,K=g0(),K!==r?(Dt=Y,re=$n(K),re?re=void 0:re=r,re!==r?(Dt=N,K=up(K),N=K):(Y=N,N=r)):(Y=N,N=r),N}function g0(){var N,K,re,he,ze;if(N=Y,K=[],re=Y,he=Y,ct++,ze=m0(),ct--,ze===r?he=void 0:(Y=he,he=r),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r),re!==r)for(;re!==r;)K.push(re),re=Y,he=Y,ct++,ze=m0(),ct--,ze===r?he=void 0:(Y=he,he=r),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r);else K=r;return K!==r&&(Dt=N,K=_s(K)),N=K,N}function d0(){var N,K,re;if(N=Y,K=[],i0.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(FA)),re!==r)for(;re!==r;)K.push(re),i0.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(FA));else K=r;return K!==r&&(Dt=N,K=js()),N=K,N}function Wa(){var N,K,re;if(N=Y,K=[],Eu.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(ja)),re!==r)for(;re!==r;)K.push(re),Eu.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(ja));else K=r;return K!==r&&(Dt=N,K=js()),N=K,N}function Cd(){var N;return Gi.test(t.charAt(Y))?(N=t.charAt(Y),Y++):(N=r,ct===0&&Ct(fa)),N}function m0(){var N;return Cu.test(t.charAt(Y))?(N=t.charAt(Y),Y++):(N=r,ct===0&&Ct(ws)),N}function Qt(){var N,K;if(N=[],Cc.test(t.charAt(Y))?(K=t.charAt(Y),Y++):(K=r,ct===0&&Ct(wc)),K!==r)for(;K!==r;)N.push(K),Cc.test(t.charAt(Y))?(K=t.charAt(Y),Y++):(K=r,ct===0&&Ct(wc));else N=r;return N}if(wu=a(),wu!==r&&Y===t.length)return wu;throw wu!==r&&Y!1}){try{return(0,$Y.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function zd(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:o},a)=>`${wD(r)}${o===";"?a!==t.length-1||e?";":"":" &"}`).join(" ")}function wD(t){return`${Jd(t.chain)}${t.then?` ${VR(t.then)}`:""}`}function VR(t){return`${t.type} ${wD(t.line)}`}function Jd(t){return`${JR(t)}${t.then?` ${zR(t.then)}`:""}`}function zR(t){return`${t.type} ${Jd(t.chain)}`}function JR(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>ED(e)).join(" ")} `:""}${t.args.map(e=>XR(e)).join(" ")}`;case"subshell":return`(${zd(t.subshell)})${t.args.length>0?` ${t.args.map(e=>Qw(e)).join(" ")}`:""}`;case"group":return`{ ${zd(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>Qw(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>ED(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function ED(t){return`${t.name}=${t.args[0]?H0(t.args[0]):""}`}function XR(t){switch(t.type){case"redirection":return Qw(t);case"argument":return H0(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function Qw(t){return`${t.subtype} ${t.args.map(e=>H0(e)).join(" ")}`}function H0(t){return t.segments.map(e=>ZR(e)).join("")}function ZR(t){let e=(o,a)=>a?`"${o}"`:o,r=o=>o===""?"''":o.match(/[()}<>$|&;"'\n\t ]/)?o.match(/['\t\p{C}]/u)?o.match(/'/)?`"${o.replace(/["$\t\p{C}]/u,A8e)}"`:`$'${o.replace(/[\t\p{C}]/u,tW)}'`:`'${o}'`:o;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`$(${zd(t.shell)})`,t.quoted);case"variable":return e(typeof t.defaultValue>"u"?typeof t.alternativeValue>"u"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(o=>H0(o)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(o=>H0(o)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${ID(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function ID(t){let e=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,n)=>n?`( ${a} )`:a,o=a=>r(ID(a),!["number","variable"].includes(a.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${o(t.left)} ${e(t.type)} ${o(t.right)}`}}var $Y,eW,u8e,tW,A8e,rW=Et(()=>{$Y=Ze(ZY());eW=new Map([["\f","\\f"],[` +`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),u8e=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(eW,([t,e])=>[t,`"$'${e}'"`])]),tW=t=>eW.get(t)??`\\x${t.charCodeAt(0).toString(16).padStart(2,"0")}`,A8e=t=>u8e.get(t)??`"$'${tW(t)}'"`});var iW=_((HSt,nW)=>{"use strict";function f8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function q0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,q0)}f8e(q0,Error);q0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;Ile&&(le=z,ce=[]),ce.push(Ue))}function rt(Ue,S){return new q0(Ue,null,null,S)}function Te(Ue,S,w){return new q0(q0.buildMessage(Ue,S),Ue,S,w)}function Fe(){var Ue,S,w,b;return Ue=z,S=ke(),S!==r?(t.charCodeAt(z)===47?(w=n,z++):(w=r,Ce===0&&H(u)),w!==r?(b=ke(),b!==r?(te=Ue,S=A(S,b),Ue=S):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r),Ue===r&&(Ue=z,S=ke(),S!==r&&(te=Ue,S=p(S)),Ue=S),Ue}function ke(){var Ue,S,w,b;return Ue=z,S=Ye(),S!==r?(t.charCodeAt(z)===64?(w=h,z++):(w=r,Ce===0&&H(E)),w!==r?(b=et(),b!==r?(te=Ue,S=I(S,b),Ue=S):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r),Ue===r&&(Ue=z,S=Ye(),S!==r&&(te=Ue,S=v(S)),Ue=S),Ue}function Ye(){var Ue,S,w,b,y;return Ue=z,t.charCodeAt(z)===64?(S=h,z++):(S=r,Ce===0&&H(E)),S!==r?(w=be(),w!==r?(t.charCodeAt(z)===47?(b=n,z++):(b=r,Ce===0&&H(u)),b!==r?(y=be(),y!==r?(te=Ue,S=x(),Ue=S):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r),Ue===r&&(Ue=z,S=be(),S!==r&&(te=Ue,S=x()),Ue=S),Ue}function be(){var Ue,S,w;if(Ue=z,S=[],C.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(R)),w!==r)for(;w!==r;)S.push(w),C.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(R));else S=r;return S!==r&&(te=Ue,S=x()),Ue=S,Ue}function et(){var Ue,S,w;if(Ue=z,S=[],L.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(U)),w!==r)for(;w!==r;)S.push(w),L.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(U));else S=r;return S!==r&&(te=Ue,S=x()),Ue=S,Ue}if(de=a(),de!==r&&z===t.length)return de;throw de!==r&&z{sW=Ze(iW())});var G0=_((jSt,j0)=>{"use strict";function aW(t){return typeof t>"u"||t===null}function h8e(t){return typeof t=="object"&&t!==null}function g8e(t){return Array.isArray(t)?t:aW(t)?[]:[t]}function d8e(t,e){var r,o,a,n;if(e)for(n=Object.keys(e),r=0,o=n.length;r{"use strict";function Fw(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Fw.prototype=Object.create(Error.prototype);Fw.prototype.constructor=Fw;Fw.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};lW.exports=Fw});var AW=_((YSt,uW)=>{"use strict";var cW=G0();function $R(t,e,r,o,a){this.name=t,this.buffer=e,this.position=r,this.line=o,this.column=a}$R.prototype.getSnippet=function(e,r){var o,a,n,u,A;if(!this.buffer)return null;for(e=e||4,r=r||75,o="",a=this.position;a>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){o=" ... ",a+=5;break}for(n="",u=this.position;ur/2-1){n=" ... ",u-=5;break}return A=this.buffer.slice(a,u),cW.repeat(" ",e)+o+A+n+` +`+cW.repeat(" ",e+this.position-a+o.length)+"^"};$R.prototype.toString=function(e){var r,o="";return this.name&&(o+='in "'+this.name+'" '),o+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(o+=`: +`+r)),o};uW.exports=$R});var ls=_((WSt,pW)=>{"use strict";var fW=Xd(),E8e=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],C8e=["scalar","sequence","mapping"];function w8e(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(o){e[String(o)]=r})}),e}function I8e(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(E8e.indexOf(r)===-1)throw new fW('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=w8e(e.styleAliases||null),C8e.indexOf(this.kind)===-1)throw new fW('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}pW.exports=I8e});var Y0=_((KSt,gW)=>{"use strict";var hW=G0(),DD=Xd(),B8e=ls();function eT(t,e,r){var o=[];return t.include.forEach(function(a){r=eT(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,u){n.tag===a.tag&&n.kind===a.kind&&o.push(u)}),r.push(a)}),r.filter(function(a,n){return o.indexOf(n)===-1})}function v8e(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function o(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e{"use strict";var D8e=ls();dW.exports=new D8e("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var EW=_((zSt,yW)=>{"use strict";var P8e=ls();yW.exports=new P8e("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var wW=_((JSt,CW)=>{"use strict";var b8e=ls();CW.exports=new b8e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var PD=_((XSt,IW)=>{"use strict";var S8e=Y0();IW.exports=new S8e({explicit:[mW(),EW(),wW()]})});var vW=_((ZSt,BW)=>{"use strict";var x8e=ls();function k8e(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function Q8e(){return null}function F8e(t){return t===null}BW.exports=new x8e("tag:yaml.org,2002:null",{kind:"scalar",resolve:k8e,construct:Q8e,predicate:F8e,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var PW=_(($St,DW)=>{"use strict";var R8e=ls();function T8e(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function N8e(t){return t==="true"||t==="True"||t==="TRUE"}function L8e(t){return Object.prototype.toString.call(t)==="[object Boolean]"}DW.exports=new R8e("tag:yaml.org,2002:bool",{kind:"scalar",resolve:T8e,construct:N8e,predicate:L8e,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var SW=_((ext,bW)=>{"use strict";var M8e=G0(),O8e=ls();function U8e(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function _8e(t){return 48<=t&&t<=55}function H8e(t){return 48<=t&&t<=57}function q8e(t){if(t===null)return!1;var e=t.length,r=0,o=!1,a;if(!e)return!1;if(a=t[r],(a==="-"||a==="+")&&(a=t[++r]),a==="0"){if(r+1===e)return!0;if(a=t[++r],a==="b"){for(r++;r=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var QW=_((txt,kW)=>{"use strict";var xW=G0(),Y8e=ls(),W8e=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function K8e(t){return!(t===null||!W8e.test(t)||t[t.length-1]==="_")}function V8e(t){var e,r,o,a;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,a=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(n){a.unshift(parseFloat(n,10))}),e=0,o=1,a.forEach(function(n){e+=n*o,o*=60}),r*e):r*parseFloat(e,10)}var z8e=/^[-+]?[0-9]+e/;function J8e(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(xW.isNegativeZero(t))return"-0.0";return r=t.toString(10),z8e.test(r)?r.replace("e",".e"):r}function X8e(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||xW.isNegativeZero(t))}kW.exports=new Y8e("tag:yaml.org,2002:float",{kind:"scalar",resolve:K8e,construct:V8e,predicate:X8e,represent:J8e,defaultStyle:"lowercase"})});var tT=_((rxt,FW)=>{"use strict";var Z8e=Y0();FW.exports=new Z8e({include:[PD()],implicit:[vW(),PW(),SW(),QW()]})});var rT=_((nxt,RW)=>{"use strict";var $8e=Y0();RW.exports=new $8e({include:[tT()]})});var MW=_((ixt,LW)=>{"use strict";var eHe=ls(),TW=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),NW=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function tHe(t){return t===null?!1:TW.exec(t)!==null||NW.exec(t)!==null}function rHe(t){var e,r,o,a,n,u,A,p=0,h=null,E,I,v;if(e=TW.exec(t),e===null&&(e=NW.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],o=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(r,o,a));if(n=+e[4],u=+e[5],A=+e[6],e[7]){for(p=e[7].slice(0,3);p.length<3;)p+="0";p=+p}return e[9]&&(E=+e[10],I=+(e[11]||0),h=(E*60+I)*6e4,e[9]==="-"&&(h=-h)),v=new Date(Date.UTC(r,o,a,n,u,A,p)),h&&v.setTime(v.getTime()-h),v}function nHe(t){return t.toISOString()}LW.exports=new eHe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:tHe,construct:rHe,instanceOf:Date,represent:nHe})});var UW=_((sxt,OW)=>{"use strict";var iHe=ls();function sHe(t){return t==="<<"||t===null}OW.exports=new iHe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:sHe})});var qW=_((oxt,HW)=>{"use strict";var W0;try{_W=ve,W0=_W("buffer").Buffer}catch{}var _W,oHe=ls(),nT=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function aHe(t){if(t===null)return!1;var e,r,o=0,a=t.length,n=nT;for(r=0;r64)){if(e<0)return!1;o+=6}return o%8===0}function lHe(t){var e,r,o=t.replace(/[\r\n=]/g,""),a=o.length,n=nT,u=0,A=[];for(e=0;e>16&255),A.push(u>>8&255),A.push(u&255)),u=u<<6|n.indexOf(o.charAt(e));return r=a%4*6,r===0?(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)):r===18?(A.push(u>>10&255),A.push(u>>2&255)):r===12&&A.push(u>>4&255),W0?W0.from?W0.from(A):new W0(A):A}function cHe(t){var e="",r=0,o,a,n=t.length,u=nT;for(o=0;o>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]),r=(r<<8)+t[o];return a=n%3,a===0?(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]):a===2?(e+=u[r>>10&63],e+=u[r>>4&63],e+=u[r<<2&63],e+=u[64]):a===1&&(e+=u[r>>2&63],e+=u[r<<4&63],e+=u[64],e+=u[64]),e}function uHe(t){return W0&&W0.isBuffer(t)}HW.exports=new oHe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:aHe,construct:lHe,predicate:uHe,represent:cHe})});var GW=_((lxt,jW)=>{"use strict";var AHe=ls(),fHe=Object.prototype.hasOwnProperty,pHe=Object.prototype.toString;function hHe(t){if(t===null)return!0;var e=[],r,o,a,n,u,A=t;for(r=0,o=A.length;r{"use strict";var dHe=ls(),mHe=Object.prototype.toString;function yHe(t){if(t===null)return!0;var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e{"use strict";var CHe=ls(),wHe=Object.prototype.hasOwnProperty;function IHe(t){if(t===null)return!0;var e,r=t;for(e in r)if(wHe.call(r,e)&&r[e]!==null)return!1;return!0}function BHe(t){return t!==null?t:{}}KW.exports=new CHe("tag:yaml.org,2002:set",{kind:"mapping",resolve:IHe,construct:BHe})});var $d=_((Axt,zW)=>{"use strict";var vHe=Y0();zW.exports=new vHe({include:[rT()],implicit:[MW(),UW()],explicit:[qW(),GW(),WW(),VW()]})});var XW=_((fxt,JW)=>{"use strict";var DHe=ls();function PHe(){return!0}function bHe(){}function SHe(){return""}function xHe(t){return typeof t>"u"}JW.exports=new DHe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:PHe,construct:bHe,predicate:xHe,represent:SHe})});var $W=_((pxt,ZW)=>{"use strict";var kHe=ls();function QHe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),o="";return!(e[0]==="/"&&(r&&(o=r[1]),o.length>3||e[e.length-o.length-1]!=="/"))}function FHe(t){var e=t,r=/\/([gim]*)$/.exec(t),o="";return e[0]==="/"&&(r&&(o=r[1]),e=e.slice(1,e.length-o.length-1)),new RegExp(e,o)}function RHe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function THe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}ZW.exports=new kHe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:QHe,construct:FHe,predicate:THe,represent:RHe})});var rK=_((hxt,tK)=>{"use strict";var bD;try{eK=ve,bD=eK("esprima")}catch{typeof window<"u"&&(bD=window.esprima)}var eK,NHe=ls();function LHe(t){if(t===null)return!1;try{var e="("+t+")",r=bD.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function MHe(t){var e="("+t+")",r=bD.parse(e,{range:!0}),o=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(n){o.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(o,e.slice(a[0]+1,a[1]-1)):new Function(o,"return "+e.slice(a[0],a[1]))}function OHe(t){return t.toString()}function UHe(t){return Object.prototype.toString.call(t)==="[object Function]"}tK.exports=new NHe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:LHe,construct:MHe,predicate:UHe,represent:OHe})});var Rw=_((dxt,iK)=>{"use strict";var nK=Y0();iK.exports=nK.DEFAULT=new nK({include:[$d()],explicit:[XW(),$W(),rK()]})});var BK=_((mxt,Tw)=>{"use strict";var mf=G0(),AK=Xd(),_He=AW(),fK=$d(),HHe=Rw(),jp=Object.prototype.hasOwnProperty,SD=1,pK=2,hK=3,xD=4,iT=1,qHe=2,sK=3,jHe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,GHe=/[\x85\u2028\u2029]/,YHe=/[,\[\]\{\}]/,gK=/^(?:!|!!|![a-z\-]+!)$/i,dK=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function oK(t){return Object.prototype.toString.call(t)}function ju(t){return t===10||t===13}function V0(t){return t===9||t===32}function va(t){return t===9||t===32||t===10||t===13}function em(t){return t===44||t===91||t===93||t===123||t===125}function WHe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function KHe(t){return t===120?2:t===117?4:t===85?8:0}function VHe(t){return 48<=t&&t<=57?t-48:-1}function aK(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` +`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function zHe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var mK=new Array(256),yK=new Array(256);for(K0=0;K0<256;K0++)mK[K0]=aK(K0)?1:0,yK[K0]=aK(K0);var K0;function JHe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||HHe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function EK(t,e){return new AK(e,new _He(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function br(t,e){throw EK(t,e)}function kD(t,e){t.onWarning&&t.onWarning.call(null,EK(t,e))}var lK={YAML:function(e,r,o){var a,n,u;e.version!==null&&br(e,"duplication of %YAML directive"),o.length!==1&&br(e,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(o[0]),a===null&&br(e,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),u=parseInt(a[2],10),n!==1&&br(e,"unacceptable YAML version of the document"),e.version=o[0],e.checkLineBreaks=u<2,u!==1&&u!==2&&kD(e,"unsupported YAML version of the document")},TAG:function(e,r,o){var a,n;o.length!==2&&br(e,"TAG directive accepts exactly two arguments"),a=o[0],n=o[1],gK.test(a)||br(e,"ill-formed tag handle (first argument) of the TAG directive"),jp.call(e.tagMap,a)&&br(e,'there is a previously declared suffix for "'+a+'" tag handle'),dK.test(n)||br(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[a]=n}};function qp(t,e,r,o){var a,n,u,A;if(e1&&(t.result+=mf.repeat(` +`,e-1))}function XHe(t,e,r){var o,a,n,u,A,p,h,E,I=t.kind,v=t.result,x;if(x=t.input.charCodeAt(t.position),va(x)||em(x)||x===35||x===38||x===42||x===33||x===124||x===62||x===39||x===34||x===37||x===64||x===96||(x===63||x===45)&&(a=t.input.charCodeAt(t.position+1),va(a)||r&&em(a)))return!1;for(t.kind="scalar",t.result="",n=u=t.position,A=!1;x!==0;){if(x===58){if(a=t.input.charCodeAt(t.position+1),va(a)||r&&em(a))break}else if(x===35){if(o=t.input.charCodeAt(t.position-1),va(o))break}else{if(t.position===t.lineStart&&QD(t)||r&&em(x))break;if(ju(x))if(p=t.line,h=t.lineStart,E=t.lineIndent,Wi(t,!1,-1),t.lineIndent>=e){A=!0,x=t.input.charCodeAt(t.position);continue}else{t.position=u,t.line=p,t.lineStart=h,t.lineIndent=E;break}}A&&(qp(t,n,u,!1),oT(t,t.line-p),n=u=t.position,A=!1),V0(x)||(u=t.position+1),x=t.input.charCodeAt(++t.position)}return qp(t,n,u,!1),t.result?!0:(t.kind=I,t.result=v,!1)}function ZHe(t,e){var r,o,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,o=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(qp(t,o,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)o=t.position,t.position++,a=t.position;else return!0;else ju(r)?(qp(t,o,a,!0),oT(t,Wi(t,!1,e)),o=a=t.position):t.position===t.lineStart&&QD(t)?br(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);br(t,"unexpected end of the stream within a single quoted scalar")}function $He(t,e){var r,o,a,n,u,A;if(A=t.input.charCodeAt(t.position),A!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=o=t.position;(A=t.input.charCodeAt(t.position))!==0;){if(A===34)return qp(t,r,t.position,!0),t.position++,!0;if(A===92){if(qp(t,r,t.position,!0),A=t.input.charCodeAt(++t.position),ju(A))Wi(t,!1,e);else if(A<256&&mK[A])t.result+=yK[A],t.position++;else if((u=KHe(A))>0){for(a=u,n=0;a>0;a--)A=t.input.charCodeAt(++t.position),(u=WHe(A))>=0?n=(n<<4)+u:br(t,"expected hexadecimal character");t.result+=zHe(n),t.position++}else br(t,"unknown escape sequence");r=o=t.position}else ju(A)?(qp(t,r,o,!0),oT(t,Wi(t,!1,e)),r=o=t.position):t.position===t.lineStart&&QD(t)?br(t,"unexpected end of the document within a double quoted scalar"):(t.position++,o=t.position)}br(t,"unexpected end of the stream within a double quoted scalar")}function e6e(t,e){var r=!0,o,a=t.tag,n,u=t.anchor,A,p,h,E,I,v={},x,C,R,L;if(L=t.input.charCodeAt(t.position),L===91)p=93,I=!1,n=[];else if(L===123)p=125,I=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),L=t.input.charCodeAt(++t.position);L!==0;){if(Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===p)return t.position++,t.tag=a,t.anchor=u,t.kind=I?"mapping":"sequence",t.result=n,!0;r||br(t,"missed comma between flow collection entries"),C=x=R=null,h=E=!1,L===63&&(A=t.input.charCodeAt(t.position+1),va(A)&&(h=E=!0,t.position++,Wi(t,!0,e))),o=t.line,rm(t,e,SD,!1,!0),C=t.tag,x=t.result,Wi(t,!0,e),L=t.input.charCodeAt(t.position),(E||t.line===o)&&L===58&&(h=!0,L=t.input.charCodeAt(++t.position),Wi(t,!0,e),rm(t,e,SD,!1,!0),R=t.result),I?tm(t,n,v,C,x,R):h?n.push(tm(t,null,v,C,x,R)):n.push(x),Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===44?(r=!0,L=t.input.charCodeAt(++t.position)):r=!1}br(t,"unexpected end of the stream within a flow collection")}function t6e(t,e){var r,o,a=iT,n=!1,u=!1,A=e,p=0,h=!1,E,I;if(I=t.input.charCodeAt(t.position),I===124)o=!1;else if(I===62)o=!0;else return!1;for(t.kind="scalar",t.result="";I!==0;)if(I=t.input.charCodeAt(++t.position),I===43||I===45)iT===a?a=I===43?sK:qHe:br(t,"repeat of a chomping mode identifier");else if((E=VHe(I))>=0)E===0?br(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?br(t,"repeat of an indentation width identifier"):(A=e+E-1,u=!0);else break;if(V0(I)){do I=t.input.charCodeAt(++t.position);while(V0(I));if(I===35)do I=t.input.charCodeAt(++t.position);while(!ju(I)&&I!==0)}for(;I!==0;){for(sT(t),t.lineIndent=0,I=t.input.charCodeAt(t.position);(!u||t.lineIndentA&&(A=t.lineIndent),ju(I)){p++;continue}if(t.lineIndente)&&p!==0)br(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(rm(t,e,xD,!0,a)&&(C?v=t.result:x=t.result),C||(tm(t,h,E,I,v,x,n,u),I=v=x=null),Wi(t,!0,-1),L=t.input.charCodeAt(t.position)),t.lineIndent>e&&L!==0)br(t,"bad indentation of a mapping entry");else if(t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),I=0,v=t.implicitTypes.length;I tag; it should be "'+x.kind+'", not "'+t.kind+'"'),x.resolve(t.result)?(t.result=x.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):br(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):br(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||E}function o6e(t){var e=t.position,r,o,a,n=!1,u;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(u=t.input.charCodeAt(t.position))!==0&&(Wi(t,!0,-1),u=t.input.charCodeAt(t.position),!(t.lineIndent>0||u!==37));){for(n=!0,u=t.input.charCodeAt(++t.position),r=t.position;u!==0&&!va(u);)u=t.input.charCodeAt(++t.position);for(o=t.input.slice(r,t.position),a=[],o.length<1&&br(t,"directive name must not be less than one character in length");u!==0;){for(;V0(u);)u=t.input.charCodeAt(++t.position);if(u===35){do u=t.input.charCodeAt(++t.position);while(u!==0&&!ju(u));break}if(ju(u))break;for(r=t.position;u!==0&&!va(u);)u=t.input.charCodeAt(++t.position);a.push(t.input.slice(r,t.position))}u!==0&&sT(t),jp.call(lK,o)?lK[o](t,o,a):kD(t,'unknown document directive "'+o+'"')}if(Wi(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Wi(t,!0,-1)):n&&br(t,"directives end mark is expected"),rm(t,t.lineIndent-1,xD,!1,!0),Wi(t,!0,-1),t.checkLineBreaks&&GHe.test(t.input.slice(e,t.position))&&kD(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&QD(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Wi(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var o=CK(t,r);if(typeof e!="function")return o;for(var a=0,n=o.length;a"u"&&(r=e,e=null),wK(t,e,mf.extend({schema:fK},r))}function l6e(t,e){return IK(t,mf.extend({schema:fK},e))}Tw.exports.loadAll=wK;Tw.exports.load=IK;Tw.exports.safeLoadAll=a6e;Tw.exports.safeLoad=l6e});var WK=_((yxt,uT)=>{"use strict";var Lw=G0(),Mw=Xd(),c6e=Rw(),u6e=$d(),QK=Object.prototype.toString,FK=Object.prototype.hasOwnProperty,A6e=9,Nw=10,f6e=13,p6e=32,h6e=33,g6e=34,RK=35,d6e=37,m6e=38,y6e=39,E6e=42,TK=44,C6e=45,NK=58,w6e=61,I6e=62,B6e=63,v6e=64,LK=91,MK=93,D6e=96,OK=123,P6e=124,UK=125,vo={};vo[0]="\\0";vo[7]="\\a";vo[8]="\\b";vo[9]="\\t";vo[10]="\\n";vo[11]="\\v";vo[12]="\\f";vo[13]="\\r";vo[27]="\\e";vo[34]='\\"';vo[92]="\\\\";vo[133]="\\N";vo[160]="\\_";vo[8232]="\\L";vo[8233]="\\P";var b6e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function S6e(t,e){var r,o,a,n,u,A,p;if(e===null)return{};for(r={},o=Object.keys(e),a=0,n=o.length;a0?t.charCodeAt(n-1):null,v=v&&PK(u,A)}else{for(n=0;no&&t[I+1]!==" ",I=n);else if(!nm(u))return FD;A=n>0?t.charCodeAt(n-1):null,v=v&&PK(u,A)}h=h||E&&n-I-1>o&&t[I+1]!==" "}return!p&&!h?v&&!a(t)?HK:qK:r>9&&_K(t)?FD:h?GK:jK}function T6e(t,e,r,o){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&b6e.indexOf(e)!==-1)return"'"+e+"'";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),u=o||t.flowLevel>-1&&r>=t.flowLevel;function A(p){return k6e(t,p)}switch(R6e(e,u,t.indent,n,A)){case HK:return e;case qK:return"'"+e.replace(/'/g,"''")+"'";case jK:return"|"+bK(e,t.indent)+SK(DK(e,a));case GK:return">"+bK(e,t.indent)+SK(DK(N6e(e,n),a));case FD:return'"'+L6e(e,n)+'"';default:throw new Mw("impossible error: invalid scalar style")}}()}function bK(t,e){var r=_K(t)?String(e):"",o=t[t.length-1]===` +`,a=o&&(t[t.length-2]===` +`||t===` +`),n=a?"+":o?"":"-";return r+n+` +`}function SK(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function N6e(t,e){for(var r=/(\n+)([^\n]*)/g,o=function(){var h=t.indexOf(` +`);return h=h!==-1?h:t.length,r.lastIndex=h,xK(t.slice(0,h),e)}(),a=t[0]===` +`||t[0]===" ",n,u;u=r.exec(t);){var A=u[1],p=u[2];n=p[0]===" ",o+=A+(!a&&!n&&p!==""?` +`:"")+xK(p,e),a=n}return o}function xK(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,o,a=0,n,u=0,A=0,p="";o=r.exec(t);)A=o.index,A-a>e&&(n=u>a?u:A,p+=` +`+t.slice(a,n),a=n+1),u=A;return p+=` +`,t.length-a>e&&u>a?p+=t.slice(a,u)+` +`+t.slice(u+1):p+=t.slice(a),p.slice(1)}function L6e(t){for(var e="",r,o,a,n=0;n=55296&&r<=56319&&(o=t.charCodeAt(n+1),o>=56320&&o<=57343)){e+=vK((r-55296)*1024+o-56320+65536),n++;continue}a=vo[r],e+=!a&&nm(r)?t[n]:a||vK(r)}return e}function M6e(t,e,r){var o="",a=t.tag,n,u;for(n=0,u=r.length;n1024&&(E+="? "),E+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),z0(t,e,h,!1,!1)&&(E+=t.dump,o+=E));t.tag=a,t.dump="{"+o+"}"}function _6e(t,e,r,o){var a="",n=t.tag,u=Object.keys(r),A,p,h,E,I,v;if(t.sortKeys===!0)u.sort();else if(typeof t.sortKeys=="function")u.sort(t.sortKeys);else if(t.sortKeys)throw new Mw("sortKeys must be a boolean or a function");for(A=0,p=u.length;A1024,I&&(t.dump&&Nw===t.dump.charCodeAt(0)?v+="?":v+="? "),v+=t.dump,I&&(v+=aT(t,e)),z0(t,e+1,E,!0,I)&&(t.dump&&Nw===t.dump.charCodeAt(0)?v+=":":v+=": ",v+=t.dump,a+=v));t.tag=n,t.dump=a||"{}"}function kK(t,e,r){var o,a,n,u,A,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,u=a.length;n tag resolver accepts not "'+p+'" style');t.dump=o}return!0}return!1}function z0(t,e,r,o,a,n){t.tag=null,t.dump=r,kK(t,r,!1)||kK(t,r,!0);var u=QK.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>e);var A=u==="[object Object]"||u==="[object Array]",p,h;if(A&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(A&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),u==="[object Object]")o&&Object.keys(t.dump).length!==0?(_6e(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(U6e(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(u==="[object Array]"){var E=t.noArrayIndent&&e>0?e-1:e;o&&t.dump.length!==0?(O6e(t,E,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(M6e(t,E,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(u==="[object String]")t.tag!=="?"&&T6e(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new Mw("unacceptable kind of an object to dump "+u)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function H6e(t,e){var r=[],o=[],a,n;for(lT(t,r,o),a=0,n=o.length;a{"use strict";var RD=BK(),KK=WK();function TD(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}xi.exports.Type=ls();xi.exports.Schema=Y0();xi.exports.FAILSAFE_SCHEMA=PD();xi.exports.JSON_SCHEMA=tT();xi.exports.CORE_SCHEMA=rT();xi.exports.DEFAULT_SAFE_SCHEMA=$d();xi.exports.DEFAULT_FULL_SCHEMA=Rw();xi.exports.load=RD.load;xi.exports.loadAll=RD.loadAll;xi.exports.safeLoad=RD.safeLoad;xi.exports.safeLoadAll=RD.safeLoadAll;xi.exports.dump=KK.dump;xi.exports.safeDump=KK.safeDump;xi.exports.YAMLException=Xd();xi.exports.MINIMAL_SCHEMA=PD();xi.exports.SAFE_SCHEMA=$d();xi.exports.DEFAULT_SCHEMA=Rw();xi.exports.scan=TD("scan");xi.exports.parse=TD("parse");xi.exports.compose=TD("compose");xi.exports.addConstructor=TD("addConstructor")});var JK=_((Cxt,zK)=>{"use strict";var j6e=VK();zK.exports=j6e});var ZK=_((wxt,XK)=>{"use strict";function G6e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function J0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,J0)}G6e(J0,Error);J0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;I({[ft]:Le})))},le=function(ee){return ee},ce=function(ee){return ee},Ce=aa("correct indentation"),de=" ",Be=Qn(" ",!1),Ee=function(ee){return ee.length===or*Bt},g=function(ee){return ee.length===(or+1)*Bt},me=function(){return or++,!0},we=function(){return or--,!0},Ae=function(){return DA()},ne=aa("pseudostring"),Z=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,xe=hi(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Ne=/^[^\r\n\t ,\][{}:#"']/,ht=hi(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),H=function(){return DA().replace(/^ *| *$/g,"")},rt="--",Te=Qn("--",!1),Fe=/^[a-zA-Z\/0-9]/,ke=hi([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Ye=/^[^\r\n\t :,]/,be=hi(["\r",` +`," "," ",":",","],!0,!1),et="null",Ue=Qn("null",!1),S=function(){return null},w="true",b=Qn("true",!1),y=function(){return!0},F="false",J=Qn("false",!1),X=function(){return!1},$=aa("string"),ie='"',Se=Qn('"',!1),Re=function(){return""},at=function(ee){return ee},dt=function(ee){return ee.join("")},jt=/^[^"\\\0-\x1F\x7F]/,tr=hi(['"',"\\",["\0",""],"\x7F"],!0,!1),bt='\\"',ln=Qn('\\"',!1),kr=function(){return'"'},mr="\\\\",Sr=Qn("\\\\",!1),Kr=function(){return"\\"},Kn="\\/",Ms=Qn("\\/",!1),Ri=function(){return"/"},gs="\\b",io=Qn("\\b",!1),Pi=function(){return"\b"},Os="\\f",so=Qn("\\f",!1),uc=function(){return"\f"},Au="\\n",op=Qn("\\n",!1),ap=function(){return` +`},Us="\\r",Dn=Qn("\\r",!1),oo=function(){return"\r"},_s="\\t",ml=Qn("\\t",!1),yl=function(){return" "},ao="\\u",Vn=Qn("\\u",!1),Mn=function(ee,ye,Le,ft){return String.fromCharCode(parseInt(`0x${ee}${ye}${Le}${ft}`))},Ti=/^[0-9a-fA-F]/,On=hi([["0","9"],["a","f"],["A","F"]],!1,!1),_i=aa("blank space"),ir=/^[ \t]/,Me=hi([" "," "],!1,!1),ii=aa("white space"),Ha=/^[ \t\n\r]/,hr=hi([" "," ",` +`,"\r"],!1,!1),Ac=`\r +`,fu=Qn(`\r +`,!1),fc=` +`,El=Qn(` +`,!1),vA="\r",pu=Qn("\r",!1),Ie=0,Tt=0,pc=[{line:1,column:1}],Hi=0,hu=[],Yt=0,Cl;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function DA(){return t.substring(Tt,Ie)}function lp(){return _o(Tt,Ie)}function hc(ee,ye){throw ye=ye!==void 0?ye:_o(Tt,Ie),dc([aa(ee)],t.substring(Tt,Ie),ye)}function PA(ee,ye){throw ye=ye!==void 0?ye:_o(Tt,Ie),lo(ee,ye)}function Qn(ee,ye){return{type:"literal",text:ee,ignoreCase:ye}}function hi(ee,ye,Le){return{type:"class",parts:ee,inverted:ye,ignoreCase:Le}}function gc(){return{type:"any"}}function bA(){return{type:"end"}}function aa(ee){return{type:"other",description:ee}}function Ni(ee){var ye=pc[ee],Le;if(ye)return ye;for(Le=ee-1;!pc[Le];)Le--;for(ye=pc[Le],ye={line:ye.line,column:ye.column};LeHi&&(Hi=Ie,hu=[]),hu.push(ee))}function lo(ee,ye){return new J0(ee,null,null,ye)}function dc(ee,ye,Le){return new J0(J0.buildMessage(ee,ye),ee,ye,Le)}function gu(){var ee;return ee=SA(),ee}function qi(){var ee,ye,Le;for(ee=Ie,ye=[],Le=du();Le!==r;)ye.push(Le),Le=du();return ye!==r&&(Tt=ee,ye=n(ye)),ee=ye,ee}function du(){var ee,ye,Le,ft,pt;return ee=Ie,ye=ds(),ye!==r?(t.charCodeAt(Ie)===45?(Le=u,Ie++):(Le=r,Yt===0&&Xe(A)),Le!==r?(ft=Pn(),ft!==r?(pt=mc(),pt!==r?(Tt=ee,ye=p(pt),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee}function SA(){var ee,ye,Le;for(ee=Ie,ye=[],Le=qa();Le!==r;)ye.push(Le),Le=qa();return ye!==r&&(Tt=ee,ye=h(ye)),ee=ye,ee}function qa(){var ee,ye,Le,ft,pt,Nt,rr,$r,ji;if(ee=Ie,ye=Pn(),ye===r&&(ye=null),ye!==r){if(Le=Ie,t.charCodeAt(Ie)===35?(ft=E,Ie++):(ft=r,Yt===0&&Xe(I)),ft!==r){if(pt=[],Nt=Ie,rr=Ie,Yt++,$r=tt(),Yt--,$r===r?rr=void 0:(Ie=rr,rr=r),rr!==r?(t.length>Ie?($r=t.charAt(Ie),Ie++):($r=r,Yt===0&&Xe(v)),$r!==r?(rr=[rr,$r],Nt=rr):(Ie=Nt,Nt=r)):(Ie=Nt,Nt=r),Nt!==r)for(;Nt!==r;)pt.push(Nt),Nt=Ie,rr=Ie,Yt++,$r=tt(),Yt--,$r===r?rr=void 0:(Ie=rr,rr=r),rr!==r?(t.length>Ie?($r=t.charAt(Ie),Ie++):($r=r,Yt===0&&Xe(v)),$r!==r?(rr=[rr,$r],Nt=rr):(Ie=Nt,Nt=r)):(Ie=Nt,Nt=r);else pt=r;pt!==r?(ft=[ft,pt],Le=ft):(Ie=Le,Le=r)}else Ie=Le,Le=r;if(Le===r&&(Le=null),Le!==r){if(ft=[],pt=We(),pt!==r)for(;pt!==r;)ft.push(pt),pt=We();else ft=r;ft!==r?(Tt=ee,ye=x(),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r}else Ie=ee,ee=r;if(ee===r&&(ee=Ie,ye=ds(),ye!==r?(Le=la(),Le!==r?(ft=Pn(),ft===r&&(ft=null),ft!==r?(t.charCodeAt(Ie)===58?(pt=C,Ie++):(pt=r,Yt===0&&Xe(R)),pt!==r?(Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(rr=mc(),rr!==r?(Tt=ee,ye=L(Le,rr),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r&&(ee=Ie,ye=ds(),ye!==r?(Le=co(),Le!==r?(ft=Pn(),ft===r&&(ft=null),ft!==r?(t.charCodeAt(Ie)===58?(pt=C,Ie++):(pt=r,Yt===0&&Xe(R)),pt!==r?(Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(rr=mc(),rr!==r?(Tt=ee,ye=L(Le,rr),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r))){if(ee=Ie,ye=ds(),ye!==r)if(Le=co(),Le!==r)if(ft=Pn(),ft!==r)if(pt=ca(),pt!==r){if(Nt=[],rr=We(),rr!==r)for(;rr!==r;)Nt.push(rr),rr=We();else Nt=r;Nt!==r?(Tt=ee,ye=L(Le,pt),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r;else Ie=ee,ee=r;else Ie=ee,ee=r;else Ie=ee,ee=r;if(ee===r)if(ee=Ie,ye=ds(),ye!==r)if(Le=co(),Le!==r){if(ft=[],pt=Ie,Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(t.charCodeAt(Ie)===44?(rr=U,Ie++):(rr=r,Yt===0&&Xe(z)),rr!==r?($r=Pn(),$r===r&&($r=null),$r!==r?(ji=co(),ji!==r?(Tt=pt,Nt=te(Le,ji),pt=Nt):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r),pt!==r)for(;pt!==r;)ft.push(pt),pt=Ie,Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(t.charCodeAt(Ie)===44?(rr=U,Ie++):(rr=r,Yt===0&&Xe(z)),rr!==r?($r=Pn(),$r===r&&($r=null),$r!==r?(ji=co(),ji!==r?(Tt=pt,Nt=te(Le,ji),pt=Nt):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r);else ft=r;ft!==r?(pt=Pn(),pt===r&&(pt=null),pt!==r?(t.charCodeAt(Ie)===58?(Nt=C,Ie++):(Nt=r,Yt===0&&Xe(R)),Nt!==r?(rr=Pn(),rr===r&&(rr=null),rr!==r?($r=mc(),$r!==r?(Tt=ee,ye=ae(Le,ft,$r),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)}else Ie=ee,ee=r;else Ie=ee,ee=r}return ee}function mc(){var ee,ye,Le,ft,pt,Nt,rr;if(ee=Ie,ye=Ie,Yt++,Le=Ie,ft=tt(),ft!==r?(pt=Ht(),pt!==r?(t.charCodeAt(Ie)===45?(Nt=u,Ie++):(Nt=r,Yt===0&&Xe(A)),Nt!==r?(rr=Pn(),rr!==r?(ft=[ft,pt,Nt,rr],Le=ft):(Ie=Le,Le=r)):(Ie=Le,Le=r)):(Ie=Le,Le=r)):(Ie=Le,Le=r),Yt--,Le!==r?(Ie=ye,ye=void 0):ye=r,ye!==r?(Le=We(),Le!==r?(ft=Fn(),ft!==r?(pt=qi(),pt!==r?(Nt=Ei(),Nt!==r?(Tt=ee,ye=le(pt),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r&&(ee=Ie,ye=tt(),ye!==r?(Le=Fn(),Le!==r?(ft=SA(),ft!==r?(pt=Ei(),pt!==r?(Tt=ee,ye=le(ft),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r))if(ee=Ie,ye=Hs(),ye!==r){if(Le=[],ft=We(),ft!==r)for(;ft!==r;)Le.push(ft),ft=We();else Le=r;Le!==r?(Tt=ee,ye=ce(ye),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r;return ee}function ds(){var ee,ye,Le;for(Yt++,ee=Ie,ye=[],t.charCodeAt(Ie)===32?(Le=de,Ie++):(Le=r,Yt===0&&Xe(Be));Le!==r;)ye.push(Le),t.charCodeAt(Ie)===32?(Le=de,Ie++):(Le=r,Yt===0&&Xe(Be));return ye!==r?(Tt=Ie,Le=Ee(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r),Yt--,ee===r&&(ye=r,Yt===0&&Xe(Ce)),ee}function Ht(){var ee,ye,Le;for(ee=Ie,ye=[],t.charCodeAt(Ie)===32?(Le=de,Ie++):(Le=r,Yt===0&&Xe(Be));Le!==r;)ye.push(Le),t.charCodeAt(Ie)===32?(Le=de,Ie++):(Le=r,Yt===0&&Xe(Be));return ye!==r?(Tt=Ie,Le=g(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee}function Fn(){var ee;return Tt=Ie,ee=me(),ee?ee=void 0:ee=r,ee}function Ei(){var ee;return Tt=Ie,ee=we(),ee?ee=void 0:ee=r,ee}function la(){var ee;return ee=ys(),ee===r&&(ee=ua()),ee}function co(){var ee,ye,Le;if(ee=ys(),ee===r){if(ee=Ie,ye=[],Le=Ho(),Le!==r)for(;Le!==r;)ye.push(Le),Le=Ho();else ye=r;ye!==r&&(Tt=ee,ye=Ae()),ee=ye}return ee}function Hs(){var ee;return ee=Ci(),ee===r&&(ee=ms(),ee===r&&(ee=ys(),ee===r&&(ee=ua()))),ee}function ca(){var ee;return ee=Ci(),ee===r&&(ee=ys(),ee===r&&(ee=Ho())),ee}function ua(){var ee,ye,Le,ft,pt,Nt;if(Yt++,ee=Ie,Z.test(t.charAt(Ie))?(ye=t.charAt(Ie),Ie++):(ye=r,Yt===0&&Xe(xe)),ye!==r){for(Le=[],ft=Ie,pt=Pn(),pt===r&&(pt=null),pt!==r?(Ne.test(t.charAt(Ie))?(Nt=t.charAt(Ie),Ie++):(Nt=r,Yt===0&&Xe(ht)),Nt!==r?(pt=[pt,Nt],ft=pt):(Ie=ft,ft=r)):(Ie=ft,ft=r);ft!==r;)Le.push(ft),ft=Ie,pt=Pn(),pt===r&&(pt=null),pt!==r?(Ne.test(t.charAt(Ie))?(Nt=t.charAt(Ie),Ie++):(Nt=r,Yt===0&&Xe(ht)),Nt!==r?(pt=[pt,Nt],ft=pt):(Ie=ft,ft=r)):(Ie=ft,ft=r);Le!==r?(Tt=ee,ye=H(),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r;return Yt--,ee===r&&(ye=r,Yt===0&&Xe(ne)),ee}function Ho(){var ee,ye,Le,ft,pt;if(ee=Ie,t.substr(Ie,2)===rt?(ye=rt,Ie+=2):(ye=r,Yt===0&&Xe(Te)),ye===r&&(ye=null),ye!==r)if(Fe.test(t.charAt(Ie))?(Le=t.charAt(Ie),Ie++):(Le=r,Yt===0&&Xe(ke)),Le!==r){for(ft=[],Ye.test(t.charAt(Ie))?(pt=t.charAt(Ie),Ie++):(pt=r,Yt===0&&Xe(be));pt!==r;)ft.push(pt),Ye.test(t.charAt(Ie))?(pt=t.charAt(Ie),Ie++):(pt=r,Yt===0&&Xe(be));ft!==r?(Tt=ee,ye=H(),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r;else Ie=ee,ee=r;return ee}function Ci(){var ee,ye;return ee=Ie,t.substr(Ie,4)===et?(ye=et,Ie+=4):(ye=r,Yt===0&&Xe(Ue)),ye!==r&&(Tt=ee,ye=S()),ee=ye,ee}function ms(){var ee,ye;return ee=Ie,t.substr(Ie,4)===w?(ye=w,Ie+=4):(ye=r,Yt===0&&Xe(b)),ye!==r&&(Tt=ee,ye=y()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,5)===F?(ye=F,Ie+=5):(ye=r,Yt===0&&Xe(J)),ye!==r&&(Tt=ee,ye=X()),ee=ye),ee}function ys(){var ee,ye,Le,ft;return Yt++,ee=Ie,t.charCodeAt(Ie)===34?(ye=ie,Ie++):(ye=r,Yt===0&&Xe(Se)),ye!==r?(t.charCodeAt(Ie)===34?(Le=ie,Ie++):(Le=r,Yt===0&&Xe(Se)),Le!==r?(Tt=ee,ye=Re(),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r&&(ee=Ie,t.charCodeAt(Ie)===34?(ye=ie,Ie++):(ye=r,Yt===0&&Xe(Se)),ye!==r?(Le=Es(),Le!==r?(t.charCodeAt(Ie)===34?(ft=ie,Ie++):(ft=r,Yt===0&&Xe(Se)),ft!==r?(Tt=ee,ye=at(Le),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)),Yt--,ee===r&&(ye=r,Yt===0&&Xe($)),ee}function Es(){var ee,ye,Le;if(ee=Ie,ye=[],Le=qs(),Le!==r)for(;Le!==r;)ye.push(Le),Le=qs();else ye=r;return ye!==r&&(Tt=ee,ye=dt(ye)),ee=ye,ee}function qs(){var ee,ye,Le,ft,pt,Nt;return jt.test(t.charAt(Ie))?(ee=t.charAt(Ie),Ie++):(ee=r,Yt===0&&Xe(tr)),ee===r&&(ee=Ie,t.substr(Ie,2)===bt?(ye=bt,Ie+=2):(ye=r,Yt===0&&Xe(ln)),ye!==r&&(Tt=ee,ye=kr()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===mr?(ye=mr,Ie+=2):(ye=r,Yt===0&&Xe(Sr)),ye!==r&&(Tt=ee,ye=Kr()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===Kn?(ye=Kn,Ie+=2):(ye=r,Yt===0&&Xe(Ms)),ye!==r&&(Tt=ee,ye=Ri()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===gs?(ye=gs,Ie+=2):(ye=r,Yt===0&&Xe(io)),ye!==r&&(Tt=ee,ye=Pi()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===Os?(ye=Os,Ie+=2):(ye=r,Yt===0&&Xe(so)),ye!==r&&(Tt=ee,ye=uc()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===Au?(ye=Au,Ie+=2):(ye=r,Yt===0&&Xe(op)),ye!==r&&(Tt=ee,ye=ap()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===Us?(ye=Us,Ie+=2):(ye=r,Yt===0&&Xe(Dn)),ye!==r&&(Tt=ee,ye=oo()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===_s?(ye=_s,Ie+=2):(ye=r,Yt===0&&Xe(ml)),ye!==r&&(Tt=ee,ye=yl()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===ao?(ye=ao,Ie+=2):(ye=r,Yt===0&&Xe(Vn)),ye!==r?(Le=Un(),Le!==r?(ft=Un(),ft!==r?(pt=Un(),pt!==r?(Nt=Un(),Nt!==r?(Tt=ee,ye=Mn(Le,ft,pt,Nt),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)))))))))),ee}function Un(){var ee;return Ti.test(t.charAt(Ie))?(ee=t.charAt(Ie),Ie++):(ee=r,Yt===0&&Xe(On)),ee}function Pn(){var ee,ye;if(Yt++,ee=[],ir.test(t.charAt(Ie))?(ye=t.charAt(Ie),Ie++):(ye=r,Yt===0&&Xe(Me)),ye!==r)for(;ye!==r;)ee.push(ye),ir.test(t.charAt(Ie))?(ye=t.charAt(Ie),Ie++):(ye=r,Yt===0&&Xe(Me));else ee=r;return Yt--,ee===r&&(ye=r,Yt===0&&Xe(_i)),ee}function Cs(){var ee,ye;if(Yt++,ee=[],Ha.test(t.charAt(Ie))?(ye=t.charAt(Ie),Ie++):(ye=r,Yt===0&&Xe(hr)),ye!==r)for(;ye!==r;)ee.push(ye),Ha.test(t.charAt(Ie))?(ye=t.charAt(Ie),Ie++):(ye=r,Yt===0&&Xe(hr));else ee=r;return Yt--,ee===r&&(ye=r,Yt===0&&Xe(ii)),ee}function We(){var ee,ye,Le,ft,pt,Nt;if(ee=Ie,ye=tt(),ye!==r){for(Le=[],ft=Ie,pt=Pn(),pt===r&&(pt=null),pt!==r?(Nt=tt(),Nt!==r?(pt=[pt,Nt],ft=pt):(Ie=ft,ft=r)):(Ie=ft,ft=r);ft!==r;)Le.push(ft),ft=Ie,pt=Pn(),pt===r&&(pt=null),pt!==r?(Nt=tt(),Nt!==r?(pt=[pt,Nt],ft=pt):(Ie=ft,ft=r)):(Ie=ft,ft=r);Le!==r?(ye=[ye,Le],ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r;return ee}function tt(){var ee;return t.substr(Ie,2)===Ac?(ee=Ac,Ie+=2):(ee=r,Yt===0&&Xe(fu)),ee===r&&(t.charCodeAt(Ie)===10?(ee=fc,Ie++):(ee=r,Yt===0&&Xe(El)),ee===r&&(t.charCodeAt(Ie)===13?(ee=vA,Ie++):(ee=r,Yt===0&&Xe(pu)))),ee}let Bt=2,or=0;if(Cl=a(),Cl!==r&&Ie===t.length)return Cl;throw Cl!==r&&Ie"u"?!0:typeof t=="object"&&t!==null&&!Array.isArray(t)?Object.keys(t).every(e=>rV(t[e])):!1}function AT(t,e,r){if(t===null)return`null +`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} +`;if(typeof t=="string")return`${eV(t)} +`;if(Array.isArray(t)){if(t.length===0)return`[] +`;let o=" ".repeat(e);return` +${t.map(n=>`${o}- ${AT(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[o,a]=t instanceof ND?[t.data,!1]:[t,!0],n=" ".repeat(e),u=Object.keys(o);a&&u.sort((p,h)=>{let E=$K.indexOf(p),I=$K.indexOf(h);return E===-1&&I===-1?ph?1:0:E!==-1&&I===-1?-1:E===-1&&I!==-1?1:E-I});let A=u.filter(p=>!rV(o[p])).map((p,h)=>{let E=o[p],I=eV(p),v=AT(E,e+1,!0),x=h>0||r?n:"",C=I.length>1024?`? ${I} +${x}:`:`${I}:`,R=v.startsWith(` +`)?v:` ${v}`;return`${x}${C}${R}`}).join(e===0?` +`:"")||` +`;return r?` +${A}`:`${A}`}throw new Error(`Unsupported value type (${t})`)}function Da(t){try{let e=AT(t,0,!1);return e!==` +`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function K6e(t){return t.endsWith(` +`)||(t+=` +`),(0,tV.parse)(t)}function z6e(t){if(V6e.test(t))return K6e(t);let e=(0,LD.safeLoad)(t,{schema:LD.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Ki(t){return z6e(t)}var LD,tV,W6e,$K,ND,V6e,nV=Et(()=>{LD=Ze(JK()),tV=Ze(ZK()),W6e=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,$K=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],ND=class{constructor(e){this.data=e}};Da.PreserveOrdering=ND;V6e=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var Ow={};Vt(Ow,{parseResolution:()=>BD,parseShell:()=>CD,parseSyml:()=>Ki,stringifyArgument:()=>XR,stringifyArgumentSegment:()=>ZR,stringifyArithmeticExpression:()=>ID,stringifyCommand:()=>JR,stringifyCommandChain:()=>Jd,stringifyCommandChainThen:()=>zR,stringifyCommandLine:()=>wD,stringifyCommandLineThen:()=>VR,stringifyEnvSegment:()=>ED,stringifyRedirectArgument:()=>Qw,stringifyResolution:()=>vD,stringifyShell:()=>zd,stringifyShellLine:()=>zd,stringifySyml:()=>Da,stringifyValueArgument:()=>H0});var Nl=Et(()=>{rW();oW();nV()});var sV=_((Pxt,fT)=>{"use strict";var J6e=t=>{let e=!1,r=!1,o=!1;for(let a=0;a{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=J6e(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};fT.exports=iV;fT.exports.default=iV});var oV=_((bxt,X6e)=>{X6e.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var X0=_($a=>{"use strict";var lV=oV(),cs=process.env;Object.defineProperty($a,"_vendors",{value:lV.map(function(t){return t.constant})});$a.name=null;$a.isPR=null;lV.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(o){return aV(o)});if($a[t.constant]=r,!!r)switch($a.name=t.name,typeof t.pr){case"string":$a.isPR=!!cs[t.pr];break;case"object":"env"in t.pr?$a.isPR=t.pr.env in cs&&cs[t.pr.env]!==t.pr.ne:"any"in t.pr?$a.isPR=t.pr.any.some(function(o){return!!cs[o]}):$a.isPR=aV(t.pr);break;default:$a.isPR=null}});$a.isCI=!!(cs.CI!=="false"&&(cs.BUILD_ID||cs.BUILD_NUMBER||cs.CI||cs.CI_APP_ID||cs.CI_BUILD_ID||cs.CI_BUILD_NUMBER||cs.CI_NAME||cs.CONTINUOUS_INTEGRATION||cs.RUN_ID||$a.name));function aV(t){return typeof t=="string"?!!cs[t]:"env"in t?cs[t.env]&&cs[t.env].includes(t.includes):"any"in t?t.any.some(function(e){return!!cs[e]}):Object.keys(t).every(function(e){return cs[e]===t[e]})}});var Hn,un,Z0,pT,MD,cV,hT,gT,OD=Et(()=>{(function(t){t.StartOfInput="\0",t.EndOfInput="",t.EndOfPartialInput=""})(Hn||(Hn={}));(function(t){t[t.InitialNode=0]="InitialNode",t[t.SuccessNode=1]="SuccessNode",t[t.ErrorNode=2]="ErrorNode",t[t.CustomNode=3]="CustomNode"})(un||(un={}));Z0=-1,pT=/^(-h|--help)(?:=([0-9]+))?$/,MD=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,cV=/^-[a-zA-Z]{2,}$/,hT=/^([^=]+)=([\s\S]*)$/,gT=process.env.DEBUG_CLI==="1"});var st,im,UD,dT,_D=Et(()=>{OD();st=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},im=class extends Error{constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(o=>o.reason!==null&&o.reason===r[0].reason)){let[{reason:o}]=this.candidates;this.message=`${o} + +${this.candidates.map(({usage:a})=>`$ ${a}`).join(` +`)}`}else if(this.candidates.length===1){let[{usage:o}]=this.candidates;this.message=`Command not found; did you mean: + +$ ${o} +${dT(e)}`}else this.message=`Command not found; did you mean one of: + +${this.candidates.map(({usage:o},a)=>`${`${a}.`.padStart(4)} ${o}`).join(` +`)} + +${dT(e)}`}},UD=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: + +${this.usages.map((o,a)=>`${`${a}.`.padStart(4)} ${o}`).join(` +`)} + +${dT(e)}`}},dT=t=>`While running ${t.filter(e=>e!==Hn.EndOfInput&&e!==Hn.EndOfPartialInput).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function Z6e(t){let e=t.split(` +`),r=e.filter(a=>a.match(/\S/)),o=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(o).trimRight()).join(` +`)}function Do(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` +`),t=Z6e(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 + +`),t=t.replace(/\n(\n)?\n*/g,(o,a)=>a||" "),r&&(t=t.split(/\n/).map(o=>{let a=o.match(/^\s*[*-][\t ]+(.*)/);if(!a)return o.match(/(.{1,80})(?: |$)/g).join(` +`);let n=o.length-o.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((u,A)=>" ".repeat(n)+(A===0?"- ":" ")+u).join(` +`)}).join(` + +`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(o,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(o,a,n)=>e.bold(a+n+a)),t?`${t} +`:""}var mT,uV,AV,yT=Et(()=>{mT=Array(80).fill("\u2501");for(let t=0;t<=24;++t)mT[mT.length-t]=`\x1B[38;5;${232+t}m\u2501`;uV={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<75?` ${mT.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},AV={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function Ko(t){return{...t,[Uw]:!0}}function Gu(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function HD(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(!r)return"validation failed";let[,o,a]=r;return e&&(a=a[0].toLowerCase()+a.slice(1)),a=o!=="."||!e?`${o.replace(/^\.(\[|$)/,"$1")}: ${a}`:`: ${a}`,a}function _w(t,e){return e.length===1?new st(`${t}${HD(e[0],{mergeName:!0})}`):new st(`${t}: +${e.map(r=>` +- ${HD(r)}`).join("")}`)}function $0(t,e,r){if(typeof r>"u")return e;let o=[],a=[],n=A=>{let p=e;return e=A,n.bind(null,p)};if(!r(e,{errors:o,coercions:a,coercion:n}))throw _w(`Invalid value for ${t}`,o);for(let[,A]of a)A();return e}var Uw,yf=Et(()=>{_D();Uw=Symbol("clipanion/isOption")});var Vo={};Vt(Vo,{KeyRelationship:()=>Yu,TypeAssertionError:()=>Yp,applyCascade:()=>jw,as:()=>mqe,assert:()=>hqe,assertWithErrors:()=>gqe,cascade:()=>YD,fn:()=>yqe,hasAtLeastOneKey:()=>DT,hasExactLength:()=>dV,hasForbiddenKeys:()=>Mqe,hasKeyRelationship:()=>Yw,hasMaxLength:()=>Cqe,hasMinLength:()=>Eqe,hasMutuallyExclusiveKeys:()=>Oqe,hasRequiredKeys:()=>Lqe,hasUniqueItems:()=>wqe,isArray:()=>qD,isAtLeast:()=>BT,isAtMost:()=>vqe,isBase64:()=>Fqe,isBoolean:()=>oqe,isDate:()=>lqe,isDict:()=>Aqe,isEnum:()=>Js,isHexColor:()=>Qqe,isISO8601:()=>kqe,isInExclusiveRange:()=>Pqe,isInInclusiveRange:()=>Dqe,isInstanceOf:()=>pqe,isInteger:()=>vT,isJSON:()=>Rqe,isLiteral:()=>pV,isLowerCase:()=>bqe,isMap:()=>uqe,isNegative:()=>Iqe,isNullable:()=>Nqe,isNumber:()=>wT,isObject:()=>hV,isOneOf:()=>IT,isOptional:()=>Tqe,isPartial:()=>fqe,isPayload:()=>aqe,isPositive:()=>Bqe,isRecord:()=>GD,isSet:()=>cqe,isString:()=>om,isTuple:()=>jD,isUUID4:()=>xqe,isUnknown:()=>CT,isUpperCase:()=>Sqe,makeTrait:()=>gV,makeValidator:()=>Hr,matchesRegExp:()=>qw,softAssert:()=>dqe});function qn(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":typeof t=="symbol"?`<${t.toString()}>`:Array.isArray(t)?"an array":JSON.stringify(t)}function sm(t,e){if(t.length===0)return"nothing";if(t.length===1)return qn(t[0]);let r=t.slice(0,-1),o=t[t.length-1],a=t.length>2?`, ${e} `:` ${e} `;return`${r.map(n=>qn(n)).join(", ")}${a}${qn(o)}`}function Gp(t,e){var r,o,a;return typeof e=="number"?`${(r=t?.p)!==null&&r!==void 0?r:"."}[${e}]`:$6e.test(e)?`${(o=t?.p)!==null&&o!==void 0?o:""}.${e}`:`${(a=t?.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function ET(t,e,r){return t===1?e:r}function pr({errors:t,p:e}={},r){return t?.push(`${e??"."}: ${r}`),!1}function iqe(t,e){return r=>{t[e]=r}}function Wu(t,e){return r=>{let o=t[e];return t[e]=r,Wu(t,e).bind(null,o)}}function Hw(t,e,r){let o=()=>(t(r()),a),a=()=>(t(e),o);return o}function CT(){return Hr({test:(t,e)=>!0})}function pV(t){return Hr({test:(e,r)=>e!==t?pr(r,`Expected ${qn(t)} (got ${qn(e)})`):!0})}function om(){return Hr({test:(t,e)=>typeof t!="string"?pr(e,`Expected a string (got ${qn(t)})`):!0})}function Js(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>typeof a=="string"||typeof a=="number"),o=new Set(e);return o.size===1?pV([...o][0]):Hr({test:(a,n)=>o.has(a)?!0:r?pr(n,`Expected one of ${sm(e,"or")} (got ${qn(a)})`):pr(n,`Expected a valid enumeration value (got ${qn(a)})`)})}function oqe(){return Hr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o=sqe.get(t);if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a boolean (got ${qn(t)})`)}return!0}})}function wT(){return Hr({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)o=a;else return pr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a number (got ${qn(t)})`)}return!0}})}function aqe(t){return Hr({test:(e,r)=>{var o;if(typeof r?.coercions>"u")return pr(r,"The isPayload predicate can only be used with coercion enabled");if(typeof r.coercion>"u")return pr(r,"Unbound coercion result");if(typeof e!="string")return pr(r,`Expected a string (got ${qn(e)})`);let a;try{a=JSON.parse(e)}catch{return pr(r,`Expected a JSON string (got ${qn(e)})`)}let n={value:a};return t(a,Object.assign(Object.assign({},r),{coercion:Wu(n,"value")}))?(r.coercions.push([(o=r.p)!==null&&o!==void 0?o:".",r.coercion.bind(null,n.value)]),!0):!1}})}function lqe(){return Hr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o;if(typeof t=="string"&&fV.test(t))o=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))o=new Date(a*1e3);else return pr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a date (got ${qn(t)})`)}return!0}})}function qD(t,{delimiter:e}={}){return Hr({test:(r,o)=>{var a;let n=r;if(typeof r=="string"&&typeof e<"u"&&typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return pr(o,"Unbound coercion result");r=r.split(e)}if(!Array.isArray(r))return pr(o,`Expected an array (got ${qn(r)})`);let u=!0;for(let A=0,p=r.length;A{var n,u;if(Object.getPrototypeOf(o).toString()==="[object Set]")if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");let A=[...o],p=[...o];if(!r(p,Object.assign(Object.assign({},a),{coercion:void 0})))return!1;let h=()=>p.some((E,I)=>E!==A[I])?new Set(p):o;return a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",Hw(a.coercion,o,h)]),!0}else{let A=!0;for(let p of o)if(A=t(p,Object.assign({},a))&&A,!A&&a?.errors==null)break;return A}if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");let A={value:o};return r(o,Object.assign(Object.assign({},a),{coercion:Wu(A,"value")}))?(a.coercions.push([(u=a.p)!==null&&u!==void 0?u:".",Hw(a.coercion,o,()=>new Set(A.value))]),!0):!1}return pr(a,`Expected a set (got ${qn(o)})`)}})}function uqe(t,e){let r=qD(jD([t,e])),o=GD(e,{keys:t});return Hr({test:(a,n)=>{var u,A,p;if(Object.getPrototypeOf(a).toString()==="[object Map]")if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return pr(n,"Unbound coercion result");let h=[...a],E=[...a];if(!r(E,Object.assign(Object.assign({},n),{coercion:void 0})))return!1;let I=()=>E.some((v,x)=>v[0]!==h[x][0]||v[1]!==h[x][1])?new Map(E):a;return n.coercions.push([(u=n.p)!==null&&u!==void 0?u:".",Hw(n.coercion,a,I)]),!0}else{let h=!0;for(let[E,I]of a)if(h=t(E,Object.assign({},n))&&h,!h&&n?.errors==null||(h=e(I,Object.assign(Object.assign({},n),{p:Gp(n,E)}))&&h,!h&&n?.errors==null))break;return h}if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return pr(n,"Unbound coercion result");let h={value:a};return Array.isArray(a)?r(a,Object.assign(Object.assign({},n),{coercion:void 0}))?(n.coercions.push([(A=n.p)!==null&&A!==void 0?A:".",Hw(n.coercion,a,()=>new Map(h.value))]),!0):!1:o(a,Object.assign(Object.assign({},n),{coercion:Wu(h,"value")}))?(n.coercions.push([(p=n.p)!==null&&p!==void 0?p:".",Hw(n.coercion,a,()=>new Map(Object.entries(h.value)))]),!0):!1}return pr(n,`Expected a map (got ${qn(a)})`)}})}function jD(t,{delimiter:e}={}){let r=dV(t.length);return Hr({test:(o,a)=>{var n;if(typeof o=="string"&&typeof e<"u"&&typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");o=o.split(e),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)])}if(!Array.isArray(o))return pr(a,`Expected a tuple (got ${qn(o)})`);let u=r(o,Object.assign({},a));for(let A=0,p=o.length;A{var n;if(Array.isArray(o)&&typeof a?.coercions<"u")return typeof a?.coercion>"u"?pr(a,"Unbound coercion result"):r(o,Object.assign(Object.assign({},a),{coercion:void 0}))?(o=Object.fromEntries(o),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)]),!0):!1;if(typeof o!="object"||o===null)return pr(a,`Expected an object (got ${qn(o)})`);let u=Object.keys(o),A=!0;for(let p=0,h=u.length;p{if(typeof a!="object"||a===null)return pr(n,`Expected an object (got ${qn(a)})`);let u=new Set([...r,...Object.keys(a)]),A={},p=!0;for(let h of u){if(h==="constructor"||h==="__proto__")p=pr(Object.assign(Object.assign({},n),{p:Gp(n,h)}),"Unsafe property name");else{let E=Object.prototype.hasOwnProperty.call(t,h)?t[h]:void 0,I=Object.prototype.hasOwnProperty.call(a,h)?a[h]:void 0;typeof E<"u"?p=E(I,Object.assign(Object.assign({},n),{p:Gp(n,h),coercion:Wu(a,h)}))&&p:e===null?p=pr(Object.assign(Object.assign({},n),{p:Gp(n,h)}),`Extraneous property (got ${qn(I)})`):Object.defineProperty(A,h,{enumerable:!0,get:()=>I,set:iqe(a,h)})}if(!p&&n?.errors==null)break}return e!==null&&(p||n?.errors!=null)&&(p=e(A,n)&&p),p}});return Object.assign(o,{properties:t})}function fqe(t){return hV(t,{extra:GD(CT())})}function gV(t){return()=>t}function Hr({test:t}){return gV(t)()}function hqe(t,e){if(!e(t))throw new Yp}function gqe(t,e){let r=[];if(!e(t,{errors:r}))throw new Yp({errors:r})}function dqe(t,e){}function mqe(t,e,{coerce:r=!1,errors:o,throw:a}={}){let n=o?[]:void 0;if(!r){if(e(t,{errors:n}))return a?t:{value:t,errors:void 0};if(a)throw new Yp({errors:n});return{value:void 0,errors:n??!0}}let u={value:t},A=Wu(u,"value"),p=[];if(!e(t,{errors:n,coercion:A,coercions:p})){if(a)throw new Yp({errors:n});return{value:void 0,errors:n??!0}}for(let[,h]of p)h();return a?u.value:{value:u.value,errors:void 0}}function yqe(t,e){let r=jD(t);return(...o)=>{if(!r(o))throw new Yp;return e(...o)}}function Eqe(t){return Hr({test:(e,r)=>e.length>=t?!0:pr(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)})}function Cqe(t){return Hr({test:(e,r)=>e.length<=t?!0:pr(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)})}function dV(t){return Hr({test:(e,r)=>e.length!==t?pr(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0})}function wqe({map:t}={}){return Hr({test:(e,r)=>{let o=new Set,a=new Set;for(let n=0,u=e.length;nt<=0?!0:pr(e,`Expected to be negative (got ${t})`)})}function Bqe(){return Hr({test:(t,e)=>t>=0?!0:pr(e,`Expected to be positive (got ${t})`)})}function BT(t){return Hr({test:(e,r)=>e>=t?!0:pr(r,`Expected to be at least ${t} (got ${e})`)})}function vqe(t){return Hr({test:(e,r)=>e<=t?!0:pr(r,`Expected to be at most ${t} (got ${e})`)})}function Dqe(t,e){return Hr({test:(r,o)=>r>=t&&r<=e?!0:pr(o,`Expected to be in the [${t}; ${e}] range (got ${r})`)})}function Pqe(t,e){return Hr({test:(r,o)=>r>=t&&re!==Math.round(e)?pr(r,`Expected to be an integer (got ${e})`):!t&&!Number.isSafeInteger(e)?pr(r,`Expected to be a safe integer (got ${e})`):!0})}function qw(t){return Hr({test:(e,r)=>t.test(e)?!0:pr(r,`Expected to match the pattern ${t.toString()} (got ${qn(e)})`)})}function bqe(){return Hr({test:(t,e)=>t!==t.toLowerCase()?pr(e,`Expected to be all-lowercase (got ${t})`):!0})}function Sqe(){return Hr({test:(t,e)=>t!==t.toUpperCase()?pr(e,`Expected to be all-uppercase (got ${t})`):!0})}function xqe(){return Hr({test:(t,e)=>nqe.test(t)?!0:pr(e,`Expected to be a valid UUID v4 (got ${qn(t)})`)})}function kqe(){return Hr({test:(t,e)=>fV.test(t)?!0:pr(e,`Expected to be a valid ISO 8601 date string (got ${qn(t)})`)})}function Qqe({alpha:t=!1}){return Hr({test:(e,r)=>(t?eqe.test(e):tqe.test(e))?!0:pr(r,`Expected to be a valid hexadecimal color string (got ${qn(e)})`)})}function Fqe(){return Hr({test:(t,e)=>rqe.test(t)?!0:pr(e,`Expected to be a valid base 64 string (got ${qn(t)})`)})}function Rqe(t=CT()){return Hr({test:(e,r)=>{let o;try{o=JSON.parse(e)}catch{return pr(r,`Expected to be a valid JSON string (got ${qn(e)})`)}return t(o,r)}})}function YD(t,...e){let r=Array.isArray(e[0])?e[0]:e;return Hr({test:(o,a)=>{var n,u;let A={value:o},p=typeof a?.coercions<"u"?Wu(A,"value"):void 0,h=typeof a?.coercions<"u"?[]:void 0;if(!t(o,Object.assign(Object.assign({},a),{coercion:p,coercions:h})))return!1;let E=[];if(typeof h<"u")for(let[,I]of h)E.push(I());try{if(typeof a?.coercions<"u"){if(A.value!==o){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,A.value)])}(u=a?.coercions)===null||u===void 0||u.push(...h)}return r.every(I=>I(A.value,a))}finally{for(let I of E)I()}}})}function jw(t,...e){let r=Array.isArray(e[0])?e[0]:e;return YD(t,r)}function Tqe(t){return Hr({test:(e,r)=>typeof e>"u"?!0:t(e,r)})}function Nqe(t){return Hr({test:(e,r)=>e===null?!0:t(e,r)})}function Lqe(t,e){var r;let o=new Set(t),a=Gw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)||p.push(h);return p.length>0?pr(u,`Missing required ${ET(p.length,"property","properties")} ${sm(p,"and")}`):!0}})}function DT(t,e){var r;let o=new Set(t),a=Gw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>Object.keys(n).some(h=>a(o,h,n))?!0:pr(u,`Missing at least one property from ${sm(Array.from(o),"or")}`)})}function Mqe(t,e){var r;let o=new Set(t),a=Gw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>0?pr(u,`Forbidden ${ET(p.length,"property","properties")} ${sm(p,"and")}`):!0}})}function Oqe(t,e){var r;let o=new Set(t),a=Gw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>1?pr(u,`Mutually exclusive properties ${sm(p,"and")}`):!0}})}function Yw(t,e,r,o){var a,n;let u=new Set((a=o?.ignore)!==null&&a!==void 0?a:[]),A=Gw[(n=o?.missingIf)!==null&&n!==void 0?n:"missing"],p=new Set(r),h=Uqe[e],E=e===Yu.Forbids?"or":"and";return Hr({test:(I,v)=>{let x=new Set(Object.keys(I));if(!A(x,t,I)||u.has(I[t]))return!0;let C=[];for(let R of p)(A(x,R,I)&&!u.has(I[R]))!==h.expect&&C.push(R);return C.length>=1?pr(v,`Property "${t}" ${h.message} ${ET(C.length,"property","properties")} ${sm(C,E)}`):!0}})}var $6e,eqe,tqe,rqe,nqe,fV,sqe,pqe,IT,Yp,Gw,Yu,Uqe,el=Et(()=>{$6e=/^[a-zA-Z_][a-zA-Z0-9_]*$/;eqe=/^#[0-9a-f]{6}$/i,tqe=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,rqe=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,nqe=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,fV=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/;sqe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);pqe=t=>Hr({test:(e,r)=>e instanceof t?!0:pr(r,`Expected an instance of ${t.name} (got ${qn(e)})`)}),IT=(t,{exclusive:e=!1}={})=>Hr({test:(r,o)=>{var a,n,u;let A=[],p=typeof o?.errors<"u"?[]:void 0;for(let h=0,E=t.length;h1?pr(o,`Expected to match exactly a single predicate (matched ${A.join(", ")})`):(u=o?.errors)===null||u===void 0||u.push(...p),!1}});Yp=class extends Error{constructor({errors:e}={}){let r="Type mismatch";if(e&&e.length>0){r+=` +`;for(let o of e)r+=` +- ${o}`}super(r)}};Gw={missing:(t,e)=>t.has(e),undefined:(t,e,r)=>t.has(e)&&typeof r[e]<"u",nil:(t,e,r)=>t.has(e)&&r[e]!=null,falsy:(t,e,r)=>t.has(e)&&!!r[e]};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Yu||(Yu={}));Uqe={[Yu.Forbids]:{expect:!1,message:"forbids using"},[Yu.Requires]:{expect:!0,message:"requires using"}}});var it,Wp=Et(()=>{yf();it=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:u}=await Promise.resolve().then(()=>(el(),Vo)),A=u(a(n()),r),p=[],h=[];if(!A(this,{errors:p,coercions:h}))throw _w("Invalid option schema",p);for(let[,I]of h)I()}else if(r!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};it.isOption=Uw;it.Default=[]});function Pa(t){gT&&console.log(t)}function yV(){let t={nodes:[]};for(let e=0;e{if(e.has(o))return;e.add(o);let a=t.nodes[o];for(let u of Object.values(a.statics))for(let{to:A}of u)r(A);for(let[,{to:u}]of a.dynamics)r(u);for(let{to:u}of a.shortcuts)r(u);let n=new Set(a.shortcuts.map(({to:u})=>u));for(;a.shortcuts.length>0;){let{to:u}=a.shortcuts.shift(),A=t.nodes[u];for(let[p,h]of Object.entries(A.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let I of h)E.some(({to:v})=>I.to===v)||E.push(I)}for(let[p,h]of A.dynamics)a.dynamics.some(([E,{to:I}])=>p===E&&h.to===I)||a.dynamics.push([p,h]);for(let p of A.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(un.InitialNode)}function qqe(t,{prefix:e=""}={}){if(gT){Pa(`${e}Nodes are:`);for(let r=0;rE!==un.ErrorNode).map(({state:E})=>({usage:E.candidateUsage,reason:null})));if(h.every(({node:E})=>E===un.ErrorNode))throw new im(e,h.map(({state:E})=>({usage:E.candidateUsage,reason:E.errorMessage})));o=Yqe(h)}if(o.length>0){Pa(" Results:");for(let n of o)Pa(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else Pa(" No results");return o}function Gqe(t,e,{endToken:r=Hn.EndOfInput}={}){let o=jqe(t,[...e,r]);return Wqe(e,o.map(({state:a})=>a))}function Yqe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function Wqe(t,e){let r=e.filter(v=>v.selectedIndex!==null),o=r.filter(v=>!v.partial);if(o.length>0&&(r=o),r.length===0)throw new Error;let a=r.filter(v=>v.selectedIndex===Z0||v.requiredOptions.every(x=>x.some(C=>v.options.find(R=>R.name===C))));if(a.length===0)throw new im(t,r.map(v=>({usage:v.candidateUsage,reason:null})));let n=0;for(let v of a)v.path.length>n&&(n=v.path.length);let u=a.filter(v=>v.path.length===n),A=v=>v.positionals.filter(({extra:x})=>!x).length+v.options.length,p=u.map(v=>({state:v,positionalCount:A(v)})),h=0;for(let{positionalCount:v}of p)v>h&&(h=v);let E=p.filter(({positionalCount:v})=>v===h).map(({state:v})=>v),I=Kqe(E);if(I.length>1)throw new UD(t,I.map(v=>v.candidateUsage));return I[0]}function Kqe(t){let e=[],r=[];for(let o of t)o.selectedIndex===Z0?r.push(o):e.push(o);return r.length>0&&e.push({...mV,path:EV(...r.map(o=>o.path)),options:r.reduce((o,a)=>o.concat(a.options),[])}),e}function EV(t,e,...r){return e===void 0?Array.from(t):EV(t.filter((o,a)=>o===e[a]),...r)}function tl(){return{dynamics:[],shortcuts:[],statics:{}}}function CV(t){return t===un.SuccessNode||t===un.ErrorNode}function PT(t,e=0){return{to:CV(t.to)?t.to:t.to>=un.CustomNode?t.to+e-un.CustomNode+1:t.to+e,reducer:t.reducer}}function Vqe(t,e=0){let r=tl();for(let[o,a]of t.dynamics)r.dynamics.push([o,PT(a,e)]);for(let o of t.shortcuts)r.shortcuts.push(PT(o,e));for(let[o,a]of Object.entries(t.statics))r.statics[o]=a.map(n=>PT(n,e));return r}function xs(t,e,r,o,a){t.nodes[e].dynamics.push([r,{to:o,reducer:a}])}function am(t,e,r,o){t.nodes[e].shortcuts.push({to:r,reducer:o})}function zo(t,e,r,o,a){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:o,reducer:a})}function WD(t,e,r,o,a){if(Array.isArray(e)){let[n,...u]=e;return t[n](r,o,a,...u)}else return t[e](r,o,a)}var mV,zqe,bT,rl,ST,KD,VD=Et(()=>{OD();_D();mV={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:Z0,partial:!1,tokens:[]};zqe={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,o)=>!t.ignoreOptions&&e===o,isBatchOption:(t,e,r,o)=>!t.ignoreOptions&&cV.test(e)&&[...e.slice(1)].every(a=>o.has(`-${a}`)),isBoundOption:(t,e,r,o,a)=>{let n=e.match(hT);return!t.ignoreOptions&&!!n&&MD.test(n[1])&&o.has(n[1])&&a.filter(u=>u.nameSet.includes(n[1])).every(u=>u.allowBinding)},isNegatedOption:(t,e,r,o)=>!t.ignoreOptions&&e===`--no-${o.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&pT.test(e),isUnsupportedOption:(t,e,r,o)=>!t.ignoreOptions&&e.startsWith("-")&&MD.test(e)&&!o.has(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!MD.test(e)},bT={setCandidateState:(t,e,r,o)=>({...t,...o}),setSelectedIndex:(t,e,r,o)=>({...t,selectedIndex:o}),setPartialIndex:(t,e,r,o)=>({...t,selectedIndex:o,partial:!0}),pushBatch:(t,e,r,o)=>{let a=t.options.slice(),n=t.tokens.slice();for(let u=1;u{let[,o,a]=e.match(hT),n=t.options.concat({name:o,value:a}),u=t.tokens.concat([{segmentIndex:r,type:"option",slice:[0,o.length],option:o},{segmentIndex:r,type:"assign",slice:[o.length,o.length+1]},{segmentIndex:r,type:"value",slice:[o.length+1,o.length+a.length+1]}]);return{...t,options:n,tokens:u}},pushPath:(t,e,r)=>{let o=t.path.concat(e),a=t.tokens.concat({segmentIndex:r,type:"path"});return{...t,path:o,tokens:a}},pushPositional:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!1}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtra:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!0}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtraNoLimits:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:rl}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushTrue:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushFalse:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!1}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushUndefined:(t,e,r,o)=>{let a=t.options.concat({name:e,value:void 0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:e});return{...t,options:a,tokens:n}},pushStringValue:(t,e,r)=>{var o;let a=t.options[t.options.length-1],n=t.options.slice(),u=t.tokens.concat({segmentIndex:r,type:"value"});return a.value=((o=a.value)!==null&&o!==void 0?o:[]).concat([e]),{...t,options:n,tokens:u}},setStringValue:(t,e,r)=>{let o=t.options[t.options.length-1],a=t.options.slice(),n=t.tokens.concat({segmentIndex:r,type:"value"});return o.value=e,{...t,options:a,tokens:n}},inhibateOptions:t=>({...t,ignoreOptions:!0}),useHelp:(t,e,r,o)=>{let[,,a]=e.match(pT);return typeof a<"u"?{...t,options:[{name:"-c",value:String(o)},{name:"-i",value:a}]}:{...t,options:[{name:"-c",value:String(o)}]}},setError:(t,e,r,o)=>e===Hn.EndOfInput||e===Hn.EndOfPartialInput?{...t,errorMessage:`${o}.`}:{...t,errorMessage:`${o} ("${e}").`},setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return{...t,errorMessage:`Not enough arguments to option ${r.name}.`}}},rl=Symbol(),ST=class{constructor(e,r){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:o=this.arity.extra,proxy:a=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:o,proxy:a})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===rl)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==rl?this.arity.extra.push(e):this.arity.extra!==rl&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===rl)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let o=0;o1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(o))throw new Error(`The arity must be an integer, got ${o}`);if(o<0)throw new Error(`The arity must be positive, got ${o}`);let A=e.reduce((p,h)=>h.length>p.length?h:p,"");for(let p of e)this.allOptionNames.set(p,A);this.options.push({preferredName:A,nameSet:e,description:r,arity:o,hidden:a,required:n,allowBinding:u})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let o=[this.cliOpts.binaryName],a=[];if(this.paths.length>0&&o.push(...this.paths[0]),e){for(let{preferredName:u,nameSet:A,arity:p,hidden:h,description:E,required:I}of this.options){if(h)continue;let v=[];for(let C=0;C`:`[${x}]`)}o.push(...this.arity.leading.map(u=>`<${u}>`)),this.arity.extra===rl?o.push("..."):o.push(...this.arity.extra.map(u=>`[${u}]`)),o.push(...this.arity.trailing.map(u=>`<${u}>`))}return{usage:o.join(" "),options:a}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=yV(),r=un.InitialNode,o=this.usage().usage,a=this.options.filter(A=>A.required).map(A=>A.nameSet);r=Oc(e,tl()),zo(e,un.InitialNode,Hn.StartOfInput,r,["setCandidateState",{candidateUsage:o,requiredOptions:a}]);let n=this.arity.proxy?"always":"isNotOptionLike",u=this.paths.length>0?this.paths:[[]];for(let A of u){let p=r;if(A.length>0){let v=Oc(e,tl());am(e,p,v),this.registerOptions(e,v),p=v}for(let v=0;v0||!this.arity.proxy){let v=Oc(e,tl());xs(e,p,"isHelp",v,["useHelp",this.cliIndex]),xs(e,v,"always",v,"pushExtra"),zo(e,v,Hn.EndOfInput,un.SuccessNode,["setSelectedIndex",Z0]),this.registerOptions(e,p)}this.arity.leading.length>0&&(zo(e,p,Hn.EndOfInput,un.ErrorNode,["setError","Not enough positional arguments"]),zo(e,p,Hn.EndOfPartialInput,un.SuccessNode,["setPartialIndex",this.cliIndex]));let h=p;for(let v=0;v0||v+1!==this.arity.leading.length)&&(zo(e,x,Hn.EndOfInput,un.ErrorNode,["setError","Not enough positional arguments"]),zo(e,x,Hn.EndOfPartialInput,un.SuccessNode,["setPartialIndex",this.cliIndex])),xs(e,h,"isNotOptionLike",x,"pushPositional"),h=x}let E=h;if(this.arity.extra===rl||this.arity.extra.length>0){let v=Oc(e,tl());if(am(e,h,v),this.arity.extra===rl){let x=Oc(e,tl());this.arity.proxy||this.registerOptions(e,x),xs(e,h,n,x,"pushExtraNoLimits"),xs(e,x,n,x,"pushExtraNoLimits"),am(e,x,v)}else for(let x=0;x0)&&this.registerOptions(e,C),xs(e,E,n,C,"pushExtra"),am(e,C,v),E=C}E=v}this.arity.trailing.length>0&&(zo(e,E,Hn.EndOfInput,un.ErrorNode,["setError","Not enough positional arguments"]),zo(e,E,Hn.EndOfPartialInput,un.SuccessNode,["setPartialIndex",this.cliIndex]));let I=E;for(let v=0;v=0&&e{let u=n?Hn.EndOfPartialInput:Hn.EndOfInput;return Gqe(o,a,{endToken:u})}}}}});function IV(){return zD.default&&"getColorDepth"in zD.default.WriteStream.prototype?zD.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}function BV(t){let e=wV;if(typeof e>"u"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return null;let{AsyncLocalStorage:r}=ve("async_hooks");e=wV=new r;let o=process.stdout._write;process.stdout._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?o.call(this,n,u,A):p.stdout.write(n,u,A)};let a=process.stderr._write;process.stderr._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?a.call(this,n,u,A):p.stderr.write(n,u,A)}}return r=>e.run(t,r)}var zD,wV,vV=Et(()=>{zD=Ze(ve("tty"),1)});var JD,DV=Et(()=>{Wp();JD=class t extends it{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,r){let o=new t(r);o.path=e.path;for(let a of e.options)switch(a.name){case"-c":o.commands.push(Number(a.value));break;case"-i":o.index=Number(a.value);break}return o}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`),this.context.stdout.write(` +`);let r=0;for(let o of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[o].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` +`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. +`)}}}});async function SV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=kV(t);return Jo.from(r,e).runExit(o,a)}async function xV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=kV(t);return Jo.from(r,e).run(o,a)}function kV(t){let e,r,o,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof it||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?o=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],o=t[2]):t[0]&&t[0].prototype instanceof it||Array.isArray(t[0])?(r=t[0],o=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],o=t[2],a=t[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}}function bV(t){return t()}var PV,Jo,QV=Et(()=>{OD();VD();yT();vV();Wp();DV();PV=Symbol("clipanion/errorCommand");Jo=class t{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:o,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new KD({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=o,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let o=new t(r),a=Array.isArray(e)?e:[e];for(let n of a)o.register(n);return o}register(e){var r;let o=new Map,a=new e;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[it.isOption]&&o.set(p,h)}let n=this.builder.command(),u=n.cliIndex,A=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof A<"u")for(let p of A)n.addPath(p);this.registrations.set(e,{specs:o,builder:n,index:u});for(let[p,{definition:h}]of o.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{input:o,context:a,partial:n}=typeof e=="object"&&Array.isArray(e)?{input:e,context:r}:e,{contexts:u,process:A}=this.builder.compile(),p=A(o,{partial:n}),h={...t.defaultContext,...a};switch(p.selectedIndex){case Z0:{let E=JD.from(p,u);return E.context=h,E.tokens=p.tokens,E}default:{let{commandClass:E}=u[p.selectedIndex],I=this.registrations.get(E);if(typeof I>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let v=new E;v.context=h,v.tokens=p.tokens,v.path=p.path;try{for(let[x,{transformer:C}]of I.specs.entries())v[x]=C(I.builder,x,p,h);return v}catch(x){throw x[PV]=v,x}}break}}async run(e,r){var o,a;let n,u={...t.defaultContext,...r},A=(o=this.enableColors)!==null&&o!==void 0?o:u.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,u)}catch(E){return u.stdout.write(this.error(E,{colored:A})),1}if(n.help)return u.stdout.write(this.usage(n,{colored:A,detailed:!0})),0;n.context=u,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:E=>this.definition(E),error:(E,I)=>this.error(E,I),format:E=>this.format(E),process:(E,I)=>this.process(E,{...u,...I}),run:(E,I)=>this.run(E,{...u,...I}),usage:(E,I)=>this.usage(E,I)};let p=this.enableCapture&&(a=BV(u))!==null&&a!==void 0?a:bV,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return u.stdout.write(this.error(E,{colored:A,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:o}=this.getUsageByRegistration(e,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(e,{detailed:!0,inlineOptions:!1}),u=typeof e.usage.category<"u"?Do(e.usage.category,{format:this.format(r),paragraphs:!1}):void 0,A=typeof e.usage.description<"u"?Do(e.usage.description,{format:this.format(r),paragraphs:!1}):void 0,p=typeof e.usage.details<"u"?Do(e.usage.details,{format:this.format(r),paragraphs:!0}):void 0,h=typeof e.usage.examples<"u"?e.usage.examples.map(([E,I])=>[Do(E,{format:this.format(r),paragraphs:!1}),I.replace(/\$0/g,this.binaryName)]):void 0;return{path:o,usage:a,category:u,description:A,details:p,examples:h,options:n}}definitions({colored:e=!1}={}){let r=[];for(let o of this.registrations.keys()){let a=this.definition(o,{colored:e});a&&r.push(a)}return r}usage(e=null,{colored:r,detailed:o=!1,prefix:a="$ "}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,E=typeof p.usage<"u";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h?.some(x=>x.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(E){e=null;continue}}e&&(o=!0)}let u=e!==null&&e instanceof it?e.constructor:e,A="";if(u)if(o){let{description:p="",details:h="",examples:E=[]}=u.usage||{};p!==""&&(A+=Do(p,{format:this.format(r),paragraphs:!1}).replace(/^./,x=>x.toUpperCase()),A+=` +`),(h!==""||E.length>0)&&(A+=`${this.format(r).header("Usage")} +`,A+=` +`);let{usage:I,options:v}=this.getUsageByRegistration(u,{inlineOptions:!1});if(A+=`${this.format(r).bold(a)}${I} +`,v.length>0){A+=` +`,A+=`${this.format(r).header("Options")} +`;let x=v.reduce((C,R)=>Math.max(C,R.definition.length),0);A+=` +`;for(let{definition:C,description:R}of v)A+=` ${this.format(r).bold(C.padEnd(x))} ${Do(R,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(A+=` +`,A+=`${this.format(r).header("Details")} +`,A+=` +`,A+=Do(h,{format:this.format(r),paragraphs:!0})),E.length>0){A+=` +`,A+=`${this.format(r).header("Examples")} +`;for(let[x,C]of E)A+=` +`,A+=Do(x,{format:this.format(r),paragraphs:!1}),A+=`${C.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)} +`}}else{let{usage:p}=this.getUsageByRegistration(u);A+=`${this.format(r).bold(a)}${p} +`}else{let p=new Map;for(let[v,{index:x}]of this.registrations.entries()){if(typeof v.usage>"u")continue;let C=typeof v.usage.category<"u"?Do(v.usage.category,{format:this.format(r),paragraphs:!1}):null,R=p.get(C);typeof R>"u"&&p.set(C,R=[]);let{usage:L}=this.getUsageByIndex(x);R.push({commandClass:v,usage:L})}let h=Array.from(p.keys()).sort((v,x)=>v===null?-1:x===null?1:v.localeCompare(x,"en",{usage:"sort",caseFirst:"upper"})),E=typeof this.binaryLabel<"u",I=typeof this.binaryVersion<"u";E||I?(E&&I?A+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} + +`:E?A+=`${this.format(r).header(`${this.binaryLabel}`)} +`:A+=`${this.format(r).header(`${this.binaryVersion}`)} +`,A+=` ${this.format(r).bold(a)}${this.binaryName} +`):A+=`${this.format(r).bold(a)}${this.binaryName} +`;for(let v of h){let x=p.get(v).slice().sort((R,L)=>R.usage.localeCompare(L.usage,"en",{usage:"sort",caseFirst:"upper"})),C=v!==null?v.trim():"General commands";A+=` +`,A+=`${this.format(r).header(`${C}`)} +`;for(let{commandClass:R,usage:L}of x){let U=R.usage.description||"undocumented";A+=` +`,A+=` ${this.format(r).bold(L)} +`,A+=` ${Do(U,{format:this.format(r),paragraphs:!1})}`}}A+=` +`,A+=Do("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return A}error(e,r){var o,{colored:a,command:n=(o=e[PV])!==null&&o!==void 0?o:null}=r===void 0?{}:r;(!e||typeof e!="object"||!("stack"in e))&&(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let u="",A=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");A==="Error"&&(A="Internal Error"),u+=`${this.format(a).error(A)}: ${e.message} +`;let p=e.clipanion;return typeof p<"u"?p.type==="usage"&&(u+=` +`,u+=this.usage(n)):e.stack&&(u+=`${e.stack.replace(/^.*\n/,"")} +`),u}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:t.defaultContext.colorDepth>1)?uV:AV}getUsageByRegistration(e,r){let o=this.registrations.get(e);if(typeof o>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(o.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};Jo.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:IV()}});var Ww,FV=Et(()=>{Wp();Ww=class extends it{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};Ww.paths=[["--clipanion=definitions"]]});var Kw,RV=Et(()=>{Wp();Kw=class extends it{async execute(){this.context.stdout.write(this.cli.usage())}};Kw.paths=[["-h"],["--help"]]});function XD(t={}){return Ko({definition(e,r){var o;e.addProxy({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){return o.positionals.map(({value:a})=>a)}})}var xT=Et(()=>{yf()});var Vw,TV=Et(()=>{Wp();xT();Vw=class extends it{constructor(){super(...arguments),this.args=XD()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)} +`)}};Vw.paths=[["--clipanion=tokens"]]});var zw,NV=Et(()=>{Wp();zw=class extends it{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} +`)}};zw.paths=[["-v"],["--version"]]});var kT={};Vt(kT,{DefinitionsCommand:()=>Ww,HelpCommand:()=>Kw,TokensCommand:()=>Vw,VersionCommand:()=>zw});var LV=Et(()=>{FV();RV();TV();NV()});function MV(t,e,r){let[o,a]=Gu(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Ko({definition(p){p.addOption({names:u,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(p,h,E){let I,v=typeof o<"u"?[...o]:void 0;for(let{name:x,value:C}of E.options)A.has(x)&&(I=x,v=v??[],v.push(C));return typeof v<"u"?$0(I??h,v,a.validator):v}})}var OV=Et(()=>{yf()});function UV(t,e,r){let[o,a]=Gu(e,r??{}),n=t.split(","),u=new Set(n);return Ko({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:I,value:v}of h.options)u.has(I)&&(E=v);return E}})}var _V=Et(()=>{yf()});function HV(t,e,r){let[o,a]=Gu(e,r??{}),n=t.split(","),u=new Set(n);return Ko({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:I,value:v}of h.options)u.has(I)&&(E??(E=0),v?E+=1:E=0);return E}})}var qV=Et(()=>{yf()});function jV(t={}){return Ko({definition(e,r){var o;e.addRest({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){let a=u=>{let A=o.positionals[u];return A.extra===rl||A.extra===!1&&uu)}})}var GV=Et(()=>{VD();yf()});function Jqe(t,e,r){let[o,a]=Gu(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Ko({definition(p){p.addOption({names:u,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,I){let v,x=o;typeof a.env<"u"&&I.env[a.env]&&(v=a.env,x=I.env[a.env]);for(let{name:C,value:R}of E.options)A.has(C)&&(v=C,x=R);return typeof x=="string"?$0(v??h,x,a.validator):x}})}function Xqe(t={}){let{required:e=!0}=t;return Ko({definition(r,o){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:o,required:t.required})},transformer(r,o,a){var n;for(let u=0;u{VD();yf()});var ge={};Vt(ge,{Array:()=>MV,Boolean:()=>UV,Counter:()=>HV,Proxy:()=>XD,Rest:()=>jV,String:()=>YV,applyValidator:()=>$0,cleanValidationError:()=>HD,formatError:()=>_w,isOptionSymbol:()=>Uw,makeCommandOption:()=>Ko,rerouteArguments:()=>Gu});var KV=Et(()=>{yf();xT();OV();_V();qV();GV();WV()});var Jw={};Vt(Jw,{Builtins:()=>kT,Cli:()=>Jo,Command:()=>it,Option:()=>ge,UsageError:()=>st,formatMarkdownish:()=>Do,run:()=>xV,runExit:()=>SV});var qt=Et(()=>{_D();yT();Wp();QV();LV();KV()});var VV=_((Tkt,Zqe)=>{Zqe.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var ZV=_((Nkt,Ef)=>{var zV=ve("fs"),FT=ve("path"),$qe=ve("os"),eje=ve("crypto"),tje=VV(),RT=tje.version,rje=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function nje(t){let e={},r=t.toString();r=r.replace(/\r\n?/mg,` +`);let o;for(;(o=rje.exec(r))!=null;){let a=o[1],n=o[2]||"";n=n.trim();let u=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),u==='"'&&(n=n.replace(/\\n/g,` +`),n=n.replace(/\\r/g,"\r")),e[a]=n}return e}function ije(t){let e=XV(t),r=ks.configDotenv({path:e});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let o=JV(t).split(","),a=o.length,n;for(let u=0;u=a)throw A}return ks.parse(n)}function sje(t){console.log(`[dotenv@${RT}][INFO] ${t}`)}function oje(t){console.log(`[dotenv@${RT}][WARN] ${t}`)}function QT(t){console.log(`[dotenv@${RT}][DEBUG] ${t}`)}function JV(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function aje(t,e){let r;try{r=new URL(e)}catch(A){throw A.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):A}let o=r.password;if(!o)throw new Error("INVALID_DOTENV_KEY: Missing key part");let a=r.searchParams.get("environment");if(!a)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let n=`DOTENV_VAULT_${a.toUpperCase()}`,u=t.parsed[n];if(!u)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:u,key:o}}function XV(t){let e=FT.resolve(process.cwd(),".env");return t&&t.path&&t.path.length>0&&(e=t.path),e.endsWith(".vault")?e:`${e}.vault`}function lje(t){return t[0]==="~"?FT.join($qe.homedir(),t.slice(1)):t}function cje(t){sje("Loading env from encrypted .env.vault");let e=ks._parseVault(t),r=process.env;return t&&t.processEnv!=null&&(r=t.processEnv),ks.populate(r,e,t),{parsed:e}}function uje(t){let e=FT.resolve(process.cwd(),".env"),r="utf8",o=!!(t&&t.debug);t&&(t.path!=null&&(e=lje(t.path)),t.encoding!=null&&(r=t.encoding));try{let a=ks.parse(zV.readFileSync(e,{encoding:r})),n=process.env;return t&&t.processEnv!=null&&(n=t.processEnv),ks.populate(n,a,t),{parsed:a}}catch(a){return o&&QT(`Failed to load ${e} ${a.message}`),{error:a}}}function Aje(t){let e=XV(t);return JV(t).length===0?ks.configDotenv(t):zV.existsSync(e)?ks._configVault(t):(oje(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),ks.configDotenv(t))}function fje(t,e){let r=Buffer.from(e.slice(-64),"hex"),o=Buffer.from(t,"base64"),a=o.slice(0,12),n=o.slice(-16);o=o.slice(12,-16);try{let u=eje.createDecipheriv("aes-256-gcm",r,a);return u.setAuthTag(n),`${u.update(o)}${u.final()}`}catch(u){let A=u instanceof RangeError,p=u.message==="Invalid key length",h=u.message==="Unsupported state or unable to authenticate data";if(A||p){let E="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(E)}else if(h){let E="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(E)}else throw console.error("Error: ",u.code),console.error("Error: ",u.message),u}}function pje(t,e,r={}){let o=!!(r&&r.debug),a=!!(r&&r.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let n of Object.keys(e))Object.prototype.hasOwnProperty.call(t,n)?(a===!0&&(t[n]=e[n]),o&&QT(a===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):t[n]=e[n]}var ks={configDotenv:uje,_configVault:cje,_parseVault:ije,config:Aje,decrypt:fje,parse:nje,populate:pje};Ef.exports.configDotenv=ks.configDotenv;Ef.exports._configVault=ks._configVault;Ef.exports._parseVault=ks._parseVault;Ef.exports.config=ks.config;Ef.exports.decrypt=ks.decrypt;Ef.exports.parse=ks.parse;Ef.exports.populate=ks.populate;Ef.exports=ks});var ez=_((Lkt,$V)=>{"use strict";$V.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var eg=_((Mkt,TT)=>{"use strict";var hje=ez(),tz=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,o=()=>{r--,e.length>0&&e.shift()()},a=(A,p,...h)=>{r++;let E=hje(A,...h);p(E),E.then(o,o)},n=(A,p,...h)=>{rnew Promise(h=>n(A,h,...p));return Object.defineProperties(u,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),u};TT.exports=tz;TT.exports.default=tz});function Ku(t){return`YN${t.toString(10).padStart(4,"0")}`}function ZD(t){let e=Number(t.slice(2));if(typeof wr[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var wr,$D=Et(()=>{wr=(Me=>(Me[Me.UNNAMED=0]="UNNAMED",Me[Me.EXCEPTION=1]="EXCEPTION",Me[Me.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Me[Me.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Me[Me.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Me[Me.BUILD_DISABLED=5]="BUILD_DISABLED",Me[Me.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Me[Me.MUST_BUILD=7]="MUST_BUILD",Me[Me.MUST_REBUILD=8]="MUST_REBUILD",Me[Me.BUILD_FAILED=9]="BUILD_FAILED",Me[Me.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Me[Me.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Me[Me.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",Me[Me.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",Me[Me.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",Me[Me.REMOTE_INVALID=15]="REMOTE_INVALID",Me[Me.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",Me[Me.RESOLUTION_PACK=17]="RESOLUTION_PACK",Me[Me.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",Me[Me.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",Me[Me.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",Me[Me.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",Me[Me.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",Me[Me.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",Me[Me.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",Me[Me.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",Me[Me.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",Me[Me.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",Me[Me.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",Me[Me.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",Me[Me.FETCH_FAILED=30]="FETCH_FAILED",Me[Me.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",Me[Me.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",Me[Me.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",Me[Me.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",Me[Me.NETWORK_ERROR=35]="NETWORK_ERROR",Me[Me.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",Me[Me.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",Me[Me.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",Me[Me.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",Me[Me.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",Me[Me.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",Me[Me.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",Me[Me.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",Me[Me.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",Me[Me.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",Me[Me.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",Me[Me.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",Me[Me.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",Me[Me.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",Me[Me.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",Me[Me.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",Me[Me.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",Me[Me.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",Me[Me.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",Me[Me.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",Me[Me.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",Me[Me.INVALID_MANIFEST=57]="INVALID_MANIFEST",Me[Me.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",Me[Me.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",Me[Me.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",Me[Me.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",Me[Me.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",Me[Me.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",Me[Me.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",Me[Me.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",Me[Me.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",Me[Me.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",Me[Me.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",Me[Me.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",Me[Me.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",Me[Me.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",Me[Me.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",Me[Me.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",Me[Me.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",Me[Me.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",Me[Me.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",Me[Me.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",Me[Me.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",Me[Me.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",Me[Me.NETWORK_DISABLED=80]="NETWORK_DISABLED",Me[Me.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",Me[Me.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",Me[Me.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",Me[Me.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",Me[Me.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",Me[Me.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",Me[Me.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",Me[Me.VERSION_NOTICE=88]="VERSION_NOTICE",Me[Me.TIPS_NOTICE=89]="TIPS_NOTICE",Me[Me.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",Me))(wr||{})});var Xw=_((Ukt,rz)=>{var gje="2.0.0",dje=Number.MAX_SAFE_INTEGER||9007199254740991,mje=16,yje=250,Eje=["major","premajor","minor","preminor","patch","prepatch","prerelease"];rz.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:mje,MAX_SAFE_BUILD_LENGTH:yje,MAX_SAFE_INTEGER:dje,RELEASE_TYPES:Eje,SEMVER_SPEC_VERSION:gje,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Zw=_((_kt,nz)=>{var Cje=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};nz.exports=Cje});var lm=_((Cf,iz)=>{var{MAX_SAFE_COMPONENT_LENGTH:NT,MAX_SAFE_BUILD_LENGTH:wje,MAX_LENGTH:Ije}=Xw(),Bje=Zw();Cf=iz.exports={};var vje=Cf.re=[],Dje=Cf.safeRe=[],$t=Cf.src=[],er=Cf.t={},Pje=0,LT="[a-zA-Z0-9-]",bje=[["\\s",1],["\\d",Ije],[LT,wje]],Sje=t=>{for(let[e,r]of bje)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},jr=(t,e,r)=>{let o=Sje(e),a=Pje++;Bje(t,a,e),er[t]=a,$t[a]=e,vje[a]=new RegExp(e,r?"g":void 0),Dje[a]=new RegExp(o,r?"g":void 0)};jr("NUMERICIDENTIFIER","0|[1-9]\\d*");jr("NUMERICIDENTIFIERLOOSE","\\d+");jr("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${LT}*`);jr("MAINVERSION",`(${$t[er.NUMERICIDENTIFIER]})\\.(${$t[er.NUMERICIDENTIFIER]})\\.(${$t[er.NUMERICIDENTIFIER]})`);jr("MAINVERSIONLOOSE",`(${$t[er.NUMERICIDENTIFIERLOOSE]})\\.(${$t[er.NUMERICIDENTIFIERLOOSE]})\\.(${$t[er.NUMERICIDENTIFIERLOOSE]})`);jr("PRERELEASEIDENTIFIER",`(?:${$t[er.NUMERICIDENTIFIER]}|${$t[er.NONNUMERICIDENTIFIER]})`);jr("PRERELEASEIDENTIFIERLOOSE",`(?:${$t[er.NUMERICIDENTIFIERLOOSE]}|${$t[er.NONNUMERICIDENTIFIER]})`);jr("PRERELEASE",`(?:-(${$t[er.PRERELEASEIDENTIFIER]}(?:\\.${$t[er.PRERELEASEIDENTIFIER]})*))`);jr("PRERELEASELOOSE",`(?:-?(${$t[er.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$t[er.PRERELEASEIDENTIFIERLOOSE]})*))`);jr("BUILDIDENTIFIER",`${LT}+`);jr("BUILD",`(?:\\+(${$t[er.BUILDIDENTIFIER]}(?:\\.${$t[er.BUILDIDENTIFIER]})*))`);jr("FULLPLAIN",`v?${$t[er.MAINVERSION]}${$t[er.PRERELEASE]}?${$t[er.BUILD]}?`);jr("FULL",`^${$t[er.FULLPLAIN]}$`);jr("LOOSEPLAIN",`[v=\\s]*${$t[er.MAINVERSIONLOOSE]}${$t[er.PRERELEASELOOSE]}?${$t[er.BUILD]}?`);jr("LOOSE",`^${$t[er.LOOSEPLAIN]}$`);jr("GTLT","((?:<|>)?=?)");jr("XRANGEIDENTIFIERLOOSE",`${$t[er.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);jr("XRANGEIDENTIFIER",`${$t[er.NUMERICIDENTIFIER]}|x|X|\\*`);jr("XRANGEPLAIN",`[v=\\s]*(${$t[er.XRANGEIDENTIFIER]})(?:\\.(${$t[er.XRANGEIDENTIFIER]})(?:\\.(${$t[er.XRANGEIDENTIFIER]})(?:${$t[er.PRERELEASE]})?${$t[er.BUILD]}?)?)?`);jr("XRANGEPLAINLOOSE",`[v=\\s]*(${$t[er.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$t[er.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$t[er.XRANGEIDENTIFIERLOOSE]})(?:${$t[er.PRERELEASELOOSE]})?${$t[er.BUILD]}?)?)?`);jr("XRANGE",`^${$t[er.GTLT]}\\s*${$t[er.XRANGEPLAIN]}$`);jr("XRANGELOOSE",`^${$t[er.GTLT]}\\s*${$t[er.XRANGEPLAINLOOSE]}$`);jr("COERCEPLAIN",`(^|[^\\d])(\\d{1,${NT}})(?:\\.(\\d{1,${NT}}))?(?:\\.(\\d{1,${NT}}))?`);jr("COERCE",`${$t[er.COERCEPLAIN]}(?:$|[^\\d])`);jr("COERCEFULL",$t[er.COERCEPLAIN]+`(?:${$t[er.PRERELEASE]})?(?:${$t[er.BUILD]})?(?:$|[^\\d])`);jr("COERCERTL",$t[er.COERCE],!0);jr("COERCERTLFULL",$t[er.COERCEFULL],!0);jr("LONETILDE","(?:~>?)");jr("TILDETRIM",`(\\s*)${$t[er.LONETILDE]}\\s+`,!0);Cf.tildeTrimReplace="$1~";jr("TILDE",`^${$t[er.LONETILDE]}${$t[er.XRANGEPLAIN]}$`);jr("TILDELOOSE",`^${$t[er.LONETILDE]}${$t[er.XRANGEPLAINLOOSE]}$`);jr("LONECARET","(?:\\^)");jr("CARETTRIM",`(\\s*)${$t[er.LONECARET]}\\s+`,!0);Cf.caretTrimReplace="$1^";jr("CARET",`^${$t[er.LONECARET]}${$t[er.XRANGEPLAIN]}$`);jr("CARETLOOSE",`^${$t[er.LONECARET]}${$t[er.XRANGEPLAINLOOSE]}$`);jr("COMPARATORLOOSE",`^${$t[er.GTLT]}\\s*(${$t[er.LOOSEPLAIN]})$|^$`);jr("COMPARATOR",`^${$t[er.GTLT]}\\s*(${$t[er.FULLPLAIN]})$|^$`);jr("COMPARATORTRIM",`(\\s*)${$t[er.GTLT]}\\s*(${$t[er.LOOSEPLAIN]}|${$t[er.XRANGEPLAIN]})`,!0);Cf.comparatorTrimReplace="$1$2$3";jr("HYPHENRANGE",`^\\s*(${$t[er.XRANGEPLAIN]})\\s+-\\s+(${$t[er.XRANGEPLAIN]})\\s*$`);jr("HYPHENRANGELOOSE",`^\\s*(${$t[er.XRANGEPLAINLOOSE]})\\s+-\\s+(${$t[er.XRANGEPLAINLOOSE]})\\s*$`);jr("STAR","(<|>)?=?\\s*\\*");jr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");jr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var eP=_((Hkt,sz)=>{var xje=Object.freeze({loose:!0}),kje=Object.freeze({}),Qje=t=>t?typeof t!="object"?xje:t:kje;sz.exports=Qje});var MT=_((qkt,lz)=>{var oz=/^[0-9]+$/,az=(t,e)=>{let r=oz.test(t),o=oz.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:taz(e,t);lz.exports={compareIdentifiers:az,rcompareIdentifiers:Fje}});var Po=_((jkt,fz)=>{var tP=Zw(),{MAX_LENGTH:cz,MAX_SAFE_INTEGER:rP}=Xw(),{safeRe:uz,t:Az}=lm(),Rje=eP(),{compareIdentifiers:cm}=MT(),OT=class t{constructor(e,r){if(r=Rje(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>cz)throw new TypeError(`version is longer than ${cz} characters`);tP("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?uz[Az.LOOSE]:uz[Az.FULL]);if(!o)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>rP||this.major<0)throw new TypeError("Invalid major version");if(this.minor>rP||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>rP||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let n=+a;if(n>=0&&n=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(r===this.prerelease.join(".")&&o===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let n=[r,a];o===!1&&(n=[r]),cm(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};fz.exports=OT});var tg=_((Gkt,hz)=>{var pz=Po(),Tje=(t,e,r=!1)=>{if(t instanceof pz)return t;try{return new pz(t,e)}catch(o){if(!r)return null;throw o}};hz.exports=Tje});var dz=_((Ykt,gz)=>{var Nje=tg(),Lje=(t,e)=>{let r=Nje(t,e);return r?r.version:null};gz.exports=Lje});var yz=_((Wkt,mz)=>{var Mje=tg(),Oje=(t,e)=>{let r=Mje(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};mz.exports=Oje});var wz=_((Kkt,Cz)=>{var Ez=Po(),Uje=(t,e,r,o,a)=>{typeof r=="string"&&(a=o,o=r,r=void 0);try{return new Ez(t instanceof Ez?t.version:t,r).inc(e,o,a).version}catch{return null}};Cz.exports=Uje});var vz=_((Vkt,Bz)=>{var Iz=tg(),_je=(t,e)=>{let r=Iz(t,null,!0),o=Iz(e,null,!0),a=r.compare(o);if(a===0)return null;let n=a>0,u=n?r:o,A=n?o:r,p=!!u.prerelease.length;if(!!A.prerelease.length&&!p)return!A.patch&&!A.minor?"major":u.patch?"patch":u.minor?"minor":"major";let E=p?"pre":"";return r.major!==o.major?E+"major":r.minor!==o.minor?E+"minor":r.patch!==o.patch?E+"patch":"prerelease"};Bz.exports=_je});var Pz=_((zkt,Dz)=>{var Hje=Po(),qje=(t,e)=>new Hje(t,e).major;Dz.exports=qje});var Sz=_((Jkt,bz)=>{var jje=Po(),Gje=(t,e)=>new jje(t,e).minor;bz.exports=Gje});var kz=_((Xkt,xz)=>{var Yje=Po(),Wje=(t,e)=>new Yje(t,e).patch;xz.exports=Wje});var Fz=_((Zkt,Qz)=>{var Kje=tg(),Vje=(t,e)=>{let r=Kje(t,e);return r&&r.prerelease.length?r.prerelease:null};Qz.exports=Vje});var Ll=_(($kt,Tz)=>{var Rz=Po(),zje=(t,e,r)=>new Rz(t,r).compare(new Rz(e,r));Tz.exports=zje});var Lz=_((eQt,Nz)=>{var Jje=Ll(),Xje=(t,e,r)=>Jje(e,t,r);Nz.exports=Xje});var Oz=_((tQt,Mz)=>{var Zje=Ll(),$je=(t,e)=>Zje(t,e,!0);Mz.exports=$je});var nP=_((rQt,_z)=>{var Uz=Po(),e5e=(t,e,r)=>{let o=new Uz(t,r),a=new Uz(e,r);return o.compare(a)||o.compareBuild(a)};_z.exports=e5e});var qz=_((nQt,Hz)=>{var t5e=nP(),r5e=(t,e)=>t.sort((r,o)=>t5e(r,o,e));Hz.exports=r5e});var Gz=_((iQt,jz)=>{var n5e=nP(),i5e=(t,e)=>t.sort((r,o)=>n5e(o,r,e));jz.exports=i5e});var $w=_((sQt,Yz)=>{var s5e=Ll(),o5e=(t,e,r)=>s5e(t,e,r)>0;Yz.exports=o5e});var iP=_((oQt,Wz)=>{var a5e=Ll(),l5e=(t,e,r)=>a5e(t,e,r)<0;Wz.exports=l5e});var UT=_((aQt,Kz)=>{var c5e=Ll(),u5e=(t,e,r)=>c5e(t,e,r)===0;Kz.exports=u5e});var _T=_((lQt,Vz)=>{var A5e=Ll(),f5e=(t,e,r)=>A5e(t,e,r)!==0;Vz.exports=f5e});var sP=_((cQt,zz)=>{var p5e=Ll(),h5e=(t,e,r)=>p5e(t,e,r)>=0;zz.exports=h5e});var oP=_((uQt,Jz)=>{var g5e=Ll(),d5e=(t,e,r)=>g5e(t,e,r)<=0;Jz.exports=d5e});var HT=_((AQt,Xz)=>{var m5e=UT(),y5e=_T(),E5e=$w(),C5e=sP(),w5e=iP(),I5e=oP(),B5e=(t,e,r,o)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return m5e(t,r,o);case"!=":return y5e(t,r,o);case">":return E5e(t,r,o);case">=":return C5e(t,r,o);case"<":return w5e(t,r,o);case"<=":return I5e(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};Xz.exports=B5e});var $z=_((fQt,Zz)=>{var v5e=Po(),D5e=tg(),{safeRe:aP,t:lP}=lm(),P5e=(t,e)=>{if(t instanceof v5e)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?aP[lP.COERCEFULL]:aP[lP.COERCE]);else{let p=e.includePrerelease?aP[lP.COERCERTLFULL]:aP[lP.COERCERTL],h;for(;(h=p.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||h.index+h[0].length!==r.index+r[0].length)&&(r=h),p.lastIndex=h.index+h[1].length+h[2].length;p.lastIndex=-1}if(r===null)return null;let o=r[2],a=r[3]||"0",n=r[4]||"0",u=e.includePrerelease&&r[5]?`-${r[5]}`:"",A=e.includePrerelease&&r[6]?`+${r[6]}`:"";return D5e(`${o}.${a}.${n}${u}${A}`,e)};Zz.exports=P5e});var tJ=_((pQt,eJ)=>{"use strict";eJ.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var cP=_((hQt,rJ)=>{"use strict";rJ.exports=Cn;Cn.Node=rg;Cn.create=Cn;function Cn(t){var e=this;if(e instanceof Cn||(e=new Cn),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(a){e.push(a)});else if(arguments.length>0)for(var r=0,o=arguments.length;r1)r=e;else if(this.head)o=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;o!==null;a++)r=t(r,o.value,a),o=o.next;return r};Cn.prototype.reduceReverse=function(t,e){var r,o=this.tail;if(arguments.length>1)r=e;else if(this.tail)o=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;o!==null;a--)r=t(r,o.value,a),o=o.prev;return r};Cn.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};Cn.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};Cn.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Cn;if(ethis.length&&(e=this.length);for(var o=0,a=this.head;a!==null&&othis.length&&(e=this.length);for(var o=this.length,a=this.tail;a!==null&&o>e;o--)a=a.prev;for(;a!==null&&o>t;o--,a=a.prev)r.push(a.value);return r};Cn.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var o=0,a=this.head;a!==null&&o{"use strict";var k5e=cP(),ng=Symbol("max"),If=Symbol("length"),um=Symbol("lengthCalculator"),tI=Symbol("allowStale"),ig=Symbol("maxAge"),wf=Symbol("dispose"),nJ=Symbol("noDisposeOnSet"),Qs=Symbol("lruList"),Uc=Symbol("cache"),sJ=Symbol("updateAgeOnGet"),qT=()=>1,GT=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[ng]=e.max||1/0,o=e.length||qT;if(this[um]=typeof o!="function"?qT:o,this[tI]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[ig]=e.maxAge||0,this[wf]=e.dispose,this[nJ]=e.noDisposeOnSet||!1,this[sJ]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[ng]=e||1/0,eI(this)}get max(){return this[ng]}set allowStale(e){this[tI]=!!e}get allowStale(){return this[tI]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[ig]=e,eI(this)}get maxAge(){return this[ig]}set lengthCalculator(e){typeof e!="function"&&(e=qT),e!==this[um]&&(this[um]=e,this[If]=0,this[Qs].forEach(r=>{r.length=this[um](r.value,r.key),this[If]+=r.length})),eI(this)}get lengthCalculator(){return this[um]}get length(){return this[If]}get itemCount(){return this[Qs].length}rforEach(e,r){r=r||this;for(let o=this[Qs].tail;o!==null;){let a=o.prev;iJ(this,e,o,r),o=a}}forEach(e,r){r=r||this;for(let o=this[Qs].head;o!==null;){let a=o.next;iJ(this,e,o,r),o=a}}keys(){return this[Qs].toArray().map(e=>e.key)}values(){return this[Qs].toArray().map(e=>e.value)}reset(){this[wf]&&this[Qs]&&this[Qs].length&&this[Qs].forEach(e=>this[wf](e.key,e.value)),this[Uc]=new Map,this[Qs]=new k5e,this[If]=0}dump(){return this[Qs].map(e=>uP(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Qs]}set(e,r,o){if(o=o||this[ig],o&&typeof o!="number")throw new TypeError("maxAge must be a number");let a=o?Date.now():0,n=this[um](r,e);if(this[Uc].has(e)){if(n>this[ng])return Am(this,this[Uc].get(e)),!1;let p=this[Uc].get(e).value;return this[wf]&&(this[nJ]||this[wf](e,p.value)),p.now=a,p.maxAge=o,p.value=r,this[If]+=n-p.length,p.length=n,this.get(e),eI(this),!0}let u=new YT(e,r,n,a,o);return u.length>this[ng]?(this[wf]&&this[wf](e,r),!1):(this[If]+=u.length,this[Qs].unshift(u),this[Uc].set(e,this[Qs].head),eI(this),!0)}has(e){if(!this[Uc].has(e))return!1;let r=this[Uc].get(e).value;return!uP(this,r)}get(e){return jT(this,e,!0)}peek(e){return jT(this,e,!1)}pop(){let e=this[Qs].tail;return e?(Am(this,e),e.value):null}del(e){Am(this,this[Uc].get(e))}load(e){this.reset();let r=Date.now();for(let o=e.length-1;o>=0;o--){let a=e[o],n=a.e||0;if(n===0)this.set(a.k,a.v);else{let u=n-r;u>0&&this.set(a.k,a.v,u)}}}prune(){this[Uc].forEach((e,r)=>jT(this,r,!1))}},jT=(t,e,r)=>{let o=t[Uc].get(e);if(o){let a=o.value;if(uP(t,a)){if(Am(t,o),!t[tI])return}else r&&(t[sJ]&&(o.value.now=Date.now()),t[Qs].unshiftNode(o));return a.value}},uP=(t,e)=>{if(!e||!e.maxAge&&!t[ig])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[ig]&&r>t[ig]},eI=t=>{if(t[If]>t[ng])for(let e=t[Qs].tail;t[If]>t[ng]&&e!==null;){let r=e.prev;Am(t,e),e=r}},Am=(t,e)=>{if(e){let r=e.value;t[wf]&&t[wf](r.key,r.value),t[If]-=r.length,t[Uc].delete(r.key),t[Qs].removeNode(e)}},YT=class{constructor(e,r,o,a,n){this.key=e,this.value=r,this.length=o,this.now=a,this.maxAge=n||0}},iJ=(t,e,r,o)=>{let a=r.value;uP(t,a)&&(Am(t,r),t[tI]||(a=void 0)),a&&e.call(o,a.value,a.key,t)};oJ.exports=GT});var Ml=_((dQt,AJ)=>{var WT=class t{constructor(e,r){if(r=F5e(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof KT)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(o=>this.parseRange(o.trim())).filter(o=>o.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let o=this.set[0];if(this.set=this.set.filter(a=>!cJ(a[0])),this.set.length===0)this.set=[o];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&U5e(a[0])){this.set=[a];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){let o=((this.options.includePrerelease&&M5e)|(this.options.loose&&O5e))+":"+e,a=lJ.get(o);if(a)return a;let n=this.options.loose,u=n?ba[Xo.HYPHENRANGELOOSE]:ba[Xo.HYPHENRANGE];e=e.replace(u,z5e(this.options.includePrerelease)),ci("hyphen replace",e),e=e.replace(ba[Xo.COMPARATORTRIM],T5e),ci("comparator trim",e),e=e.replace(ba[Xo.TILDETRIM],N5e),ci("tilde trim",e),e=e.replace(ba[Xo.CARETTRIM],L5e),ci("caret trim",e);let A=e.split(" ").map(I=>_5e(I,this.options)).join(" ").split(/\s+/).map(I=>V5e(I,this.options));n&&(A=A.filter(I=>(ci("loose invalid filter",I,this.options),!!I.match(ba[Xo.COMPARATORLOOSE])))),ci("range list",A);let p=new Map,h=A.map(I=>new KT(I,this.options));for(let I of h){if(cJ(I))return[I];p.set(I.value,I)}p.size>1&&p.has("")&&p.delete("");let E=[...p.values()];return lJ.set(o,E),E}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(o=>uJ(o,r)&&e.set.some(a=>uJ(a,r)&&o.every(n=>a.every(u=>n.intersects(u,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new R5e(e,this.options)}catch{return!1}for(let r=0;rt.value==="<0.0.0-0",U5e=t=>t.value==="",uJ=(t,e)=>{let r=!0,o=t.slice(),a=o.pop();for(;r&&o.length;)r=o.every(n=>a.intersects(n,e)),a=o.pop();return r},_5e=(t,e)=>(ci("comp",t,e),t=j5e(t,e),ci("caret",t),t=H5e(t,e),ci("tildes",t),t=Y5e(t,e),ci("xrange",t),t=K5e(t,e),ci("stars",t),t),Zo=t=>!t||t.toLowerCase()==="x"||t==="*",H5e=(t,e)=>t.trim().split(/\s+/).map(r=>q5e(r,e)).join(" "),q5e=(t,e)=>{let r=e.loose?ba[Xo.TILDELOOSE]:ba[Xo.TILDE];return t.replace(r,(o,a,n,u,A)=>{ci("tilde",t,o,a,n,u,A);let p;return Zo(a)?p="":Zo(n)?p=`>=${a}.0.0 <${+a+1}.0.0-0`:Zo(u)?p=`>=${a}.${n}.0 <${a}.${+n+1}.0-0`:A?(ci("replaceTilde pr",A),p=`>=${a}.${n}.${u}-${A} <${a}.${+n+1}.0-0`):p=`>=${a}.${n}.${u} <${a}.${+n+1}.0-0`,ci("tilde return",p),p})},j5e=(t,e)=>t.trim().split(/\s+/).map(r=>G5e(r,e)).join(" "),G5e=(t,e)=>{ci("caret",t,e);let r=e.loose?ba[Xo.CARETLOOSE]:ba[Xo.CARET],o=e.includePrerelease?"-0":"";return t.replace(r,(a,n,u,A,p)=>{ci("caret",t,a,n,u,A,p);let h;return Zo(n)?h="":Zo(u)?h=`>=${n}.0.0${o} <${+n+1}.0.0-0`:Zo(A)?n==="0"?h=`>=${n}.${u}.0${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.0${o} <${+n+1}.0.0-0`:p?(ci("replaceCaret pr",p),n==="0"?u==="0"?h=`>=${n}.${u}.${A}-${p} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}-${p} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A}-${p} <${+n+1}.0.0-0`):(ci("no pr"),n==="0"?u==="0"?h=`>=${n}.${u}.${A}${o} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A} <${+n+1}.0.0-0`),ci("caret return",h),h})},Y5e=(t,e)=>(ci("replaceXRanges",t,e),t.split(/\s+/).map(r=>W5e(r,e)).join(" ")),W5e=(t,e)=>{t=t.trim();let r=e.loose?ba[Xo.XRANGELOOSE]:ba[Xo.XRANGE];return t.replace(r,(o,a,n,u,A,p)=>{ci("xRange",t,o,a,n,u,A,p);let h=Zo(n),E=h||Zo(u),I=E||Zo(A),v=I;return a==="="&&v&&(a=""),p=e.includePrerelease?"-0":"",h?a===">"||a==="<"?o="<0.0.0-0":o="*":a&&v?(E&&(u=0),A=0,a===">"?(a=">=",E?(n=+n+1,u=0,A=0):(u=+u+1,A=0)):a==="<="&&(a="<",E?n=+n+1:u=+u+1),a==="<"&&(p="-0"),o=`${a+n}.${u}.${A}${p}`):E?o=`>=${n}.0.0${p} <${+n+1}.0.0-0`:I&&(o=`>=${n}.${u}.0${p} <${n}.${+u+1}.0-0`),ci("xRange return",o),o})},K5e=(t,e)=>(ci("replaceStars",t,e),t.trim().replace(ba[Xo.STAR],"")),V5e=(t,e)=>(ci("replaceGTE0",t,e),t.trim().replace(ba[e.includePrerelease?Xo.GTE0PRE:Xo.GTE0],"")),z5e=t=>(e,r,o,a,n,u,A,p,h,E,I,v,x)=>(Zo(o)?r="":Zo(a)?r=`>=${o}.0.0${t?"-0":""}`:Zo(n)?r=`>=${o}.${a}.0${t?"-0":""}`:u?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,Zo(h)?p="":Zo(E)?p=`<${+h+1}.0.0-0`:Zo(I)?p=`<${h}.${+E+1}.0-0`:v?p=`<=${h}.${E}.${I}-${v}`:t?p=`<${h}.${E}.${+I+1}-0`:p=`<=${p}`,`${r} ${p}`.trim()),J5e=(t,e,r)=>{for(let o=0;o0){let a=t[o].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var rI=_((mQt,mJ)=>{var nI=Symbol("SemVer ANY"),JT=class t{static get ANY(){return nI}constructor(e,r){if(r=fJ(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),zT("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===nI?this.value="":this.value=this.operator+this.semver.version,zT("comp",this)}parse(e){let r=this.options.loose?pJ[hJ.COMPARATORLOOSE]:pJ[hJ.COMPARATOR],o=e.match(r);if(!o)throw new TypeError(`Invalid comparator: ${e}`);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new gJ(o[2],this.options.loose):this.semver=nI}toString(){return this.value}test(e){if(zT("Comparator.test",e,this.options.loose),this.semver===nI||e===nI)return!0;if(typeof e=="string")try{e=new gJ(e,this.options)}catch{return!1}return VT(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new dJ(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new dJ(this.value,r).test(e.semver):(r=fJ(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||VT(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||VT(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};mJ.exports=JT;var fJ=eP(),{safeRe:pJ,t:hJ}=lm(),VT=HT(),zT=Zw(),gJ=Po(),dJ=Ml()});var iI=_((yQt,yJ)=>{var X5e=Ml(),Z5e=(t,e,r)=>{try{e=new X5e(e,r)}catch{return!1}return e.test(t)};yJ.exports=Z5e});var CJ=_((EQt,EJ)=>{var $5e=Ml(),eGe=(t,e)=>new $5e(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));EJ.exports=eGe});var IJ=_((CQt,wJ)=>{var tGe=Po(),rGe=Ml(),nGe=(t,e,r)=>{let o=null,a=null,n=null;try{n=new rGe(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===-1)&&(o=u,a=new tGe(o,r))}),o};wJ.exports=nGe});var vJ=_((wQt,BJ)=>{var iGe=Po(),sGe=Ml(),oGe=(t,e,r)=>{let o=null,a=null,n=null;try{n=new sGe(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===1)&&(o=u,a=new iGe(o,r))}),o};BJ.exports=oGe});var bJ=_((IQt,PJ)=>{var XT=Po(),aGe=Ml(),DJ=$w(),lGe=(t,e)=>{t=new aGe(t,e);let r=new XT("0.0.0");if(t.test(r)||(r=new XT("0.0.0-0"),t.test(r)))return r;r=null;for(let o=0;o{let A=new XT(u.semver.version);switch(u.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!n||DJ(A,n))&&(n=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),n&&(!r||DJ(r,n))&&(r=n)}return r&&t.test(r)?r:null};PJ.exports=lGe});var xJ=_((BQt,SJ)=>{var cGe=Ml(),uGe=(t,e)=>{try{return new cGe(t,e).range||"*"}catch{return null}};SJ.exports=uGe});var AP=_((vQt,RJ)=>{var AGe=Po(),FJ=rI(),{ANY:fGe}=FJ,pGe=Ml(),hGe=iI(),kJ=$w(),QJ=iP(),gGe=oP(),dGe=sP(),mGe=(t,e,r,o)=>{t=new AGe(t,o),e=new pGe(e,o);let a,n,u,A,p;switch(r){case">":a=kJ,n=gGe,u=QJ,A=">",p=">=";break;case"<":a=QJ,n=dGe,u=kJ,A="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(hGe(t,e,o))return!1;for(let h=0;h{x.semver===fGe&&(x=new FJ(">=0.0.0")),I=I||x,v=v||x,a(x.semver,I.semver,o)?I=x:u(x.semver,v.semver,o)&&(v=x)}),I.operator===A||I.operator===p||(!v.operator||v.operator===A)&&n(t,v.semver))return!1;if(v.operator===p&&u(t,v.semver))return!1}return!0};RJ.exports=mGe});var NJ=_((DQt,TJ)=>{var yGe=AP(),EGe=(t,e,r)=>yGe(t,e,">",r);TJ.exports=EGe});var MJ=_((PQt,LJ)=>{var CGe=AP(),wGe=(t,e,r)=>CGe(t,e,"<",r);LJ.exports=wGe});var _J=_((bQt,UJ)=>{var OJ=Ml(),IGe=(t,e,r)=>(t=new OJ(t,r),e=new OJ(e,r),t.intersects(e,r));UJ.exports=IGe});var qJ=_((SQt,HJ)=>{var BGe=iI(),vGe=Ll();HJ.exports=(t,e,r)=>{let o=[],a=null,n=null,u=t.sort((E,I)=>vGe(E,I,r));for(let E of u)BGe(E,e,r)?(n=E,a||(a=E)):(n&&o.push([a,n]),n=null,a=null);a&&o.push([a,null]);let A=[];for(let[E,I]of o)E===I?A.push(E):!I&&E===u[0]?A.push("*"):I?E===u[0]?A.push(`<=${I}`):A.push(`${E} - ${I}`):A.push(`>=${E}`);let p=A.join(" || "),h=typeof e.raw=="string"?e.raw:String(e);return p.length{var jJ=Ml(),$T=rI(),{ANY:ZT}=$T,sI=iI(),eN=Ll(),DGe=(t,e,r={})=>{if(t===e)return!0;t=new jJ(t,r),e=new jJ(e,r);let o=!1;e:for(let a of t.set){for(let n of e.set){let u=bGe(a,n,r);if(o=o||u!==null,u)continue e}if(o)return!1}return!0},PGe=[new $T(">=0.0.0-0")],GJ=[new $T(">=0.0.0")],bGe=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===ZT){if(e.length===1&&e[0].semver===ZT)return!0;r.includePrerelease?t=PGe:t=GJ}if(e.length===1&&e[0].semver===ZT){if(r.includePrerelease)return!0;e=GJ}let o=new Set,a,n;for(let x of t)x.operator===">"||x.operator===">="?a=YJ(a,x,r):x.operator==="<"||x.operator==="<="?n=WJ(n,x,r):o.add(x.semver);if(o.size>1)return null;let u;if(a&&n){if(u=eN(a.semver,n.semver,r),u>0)return null;if(u===0&&(a.operator!==">="||n.operator!=="<="))return null}for(let x of o){if(a&&!sI(x,String(a),r)||n&&!sI(x,String(n),r))return null;for(let C of e)if(!sI(x,String(C),r))return!1;return!0}let A,p,h,E,I=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1,v=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;I&&I.prerelease.length===1&&n.operator==="<"&&I.prerelease[0]===0&&(I=!1);for(let x of e){if(E=E||x.operator===">"||x.operator===">=",h=h||x.operator==="<"||x.operator==="<=",a){if(v&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===v.major&&x.semver.minor===v.minor&&x.semver.patch===v.patch&&(v=!1),x.operator===">"||x.operator===">="){if(A=YJ(a,x,r),A===x&&A!==a)return!1}else if(a.operator===">="&&!sI(a.semver,String(x),r))return!1}if(n){if(I&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===I.major&&x.semver.minor===I.minor&&x.semver.patch===I.patch&&(I=!1),x.operator==="<"||x.operator==="<="){if(p=WJ(n,x,r),p===x&&p!==n)return!1}else if(n.operator==="<="&&!sI(n.semver,String(x),r))return!1}if(!x.operator&&(n||a)&&u!==0)return!1}return!(a&&h&&!n&&u!==0||n&&E&&!a&&u!==0||v||I)},YJ=(t,e,r)=>{if(!t)return e;let o=eN(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},WJ=(t,e,r)=>{if(!t)return e;let o=eN(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};KJ.exports=DGe});var Jn=_((kQt,XJ)=>{var tN=lm(),zJ=Xw(),SGe=Po(),JJ=MT(),xGe=tg(),kGe=dz(),QGe=yz(),FGe=wz(),RGe=vz(),TGe=Pz(),NGe=Sz(),LGe=kz(),MGe=Fz(),OGe=Ll(),UGe=Lz(),_Ge=Oz(),HGe=nP(),qGe=qz(),jGe=Gz(),GGe=$w(),YGe=iP(),WGe=UT(),KGe=_T(),VGe=sP(),zGe=oP(),JGe=HT(),XGe=$z(),ZGe=rI(),$Ge=Ml(),e9e=iI(),t9e=CJ(),r9e=IJ(),n9e=vJ(),i9e=bJ(),s9e=xJ(),o9e=AP(),a9e=NJ(),l9e=MJ(),c9e=_J(),u9e=qJ(),A9e=VJ();XJ.exports={parse:xGe,valid:kGe,clean:QGe,inc:FGe,diff:RGe,major:TGe,minor:NGe,patch:LGe,prerelease:MGe,compare:OGe,rcompare:UGe,compareLoose:_Ge,compareBuild:HGe,sort:qGe,rsort:jGe,gt:GGe,lt:YGe,eq:WGe,neq:KGe,gte:VGe,lte:zGe,cmp:JGe,coerce:XGe,Comparator:ZGe,Range:$Ge,satisfies:e9e,toComparators:t9e,maxSatisfying:r9e,minSatisfying:n9e,minVersion:i9e,validRange:s9e,outside:o9e,gtr:a9e,ltr:l9e,intersects:c9e,simplifyRange:u9e,subset:A9e,SemVer:SGe,re:tN.re,src:tN.src,tokens:tN.t,SEMVER_SPEC_VERSION:zJ.SEMVER_SPEC_VERSION,RELEASE_TYPES:zJ.RELEASE_TYPES,compareIdentifiers:JJ.compareIdentifiers,rcompareIdentifiers:JJ.rcompareIdentifiers}});var $J=_((QQt,ZJ)=>{"use strict";function f9e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function sg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,sg)}f9e(sg,Error);sg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;I{switch(Re[1]){case"|":return Se|Re[3];case"&":return Se&Re[3];case"^":return Se^Re[3]}},$)},v="!",x=Te("!",!1),C=function($){return!$},R="(",L=Te("(",!1),U=")",z=Te(")",!1),te=function($){return $},ae=/^[^ \t\n\r()!|&\^]/,le=Fe([" "," ",` +`,"\r","(",")","!","|","&","^"],!0,!1),ce=function($){return e.queryPattern.test($)},Ce=function($){return e.checkFn($)},de=be("whitespace"),Be=/^[ \t\n\r]/,Ee=Fe([" "," ",` +`,"\r"],!1,!1),g=0,me=0,we=[{line:1,column:1}],Ae=0,ne=[],Z=0,xe;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function Ne(){return t.substring(me,g)}function ht(){return Ue(me,g)}function H($,ie){throw ie=ie!==void 0?ie:Ue(me,g),b([be($)],t.substring(me,g),ie)}function rt($,ie){throw ie=ie!==void 0?ie:Ue(me,g),w($,ie)}function Te($,ie){return{type:"literal",text:$,ignoreCase:ie}}function Fe($,ie,Se){return{type:"class",parts:$,inverted:ie,ignoreCase:Se}}function ke(){return{type:"any"}}function Ye(){return{type:"end"}}function be($){return{type:"other",description:$}}function et($){var ie=we[$],Se;if(ie)return ie;for(Se=$-1;!we[Se];)Se--;for(ie=we[Se],ie={line:ie.line,column:ie.column};Se<$;)t.charCodeAt(Se)===10?(ie.line++,ie.column=1):ie.column++,Se++;return we[$]=ie,ie}function Ue($,ie){var Se=et($),Re=et(ie);return{start:{offset:$,line:Se.line,column:Se.column},end:{offset:ie,line:Re.line,column:Re.column}}}function S($){gAe&&(Ae=g,ne=[]),ne.push($))}function w($,ie){return new sg($,null,null,ie)}function b($,ie,Se){return new sg(sg.buildMessage($,ie),$,ie,Se)}function y(){var $,ie,Se,Re,at,dt,jt,tr;if($=g,ie=F(),ie!==r){for(Se=[],Re=g,at=X(),at!==r?(t.charCodeAt(g)===124?(dt=n,g++):(dt=r,Z===0&&S(u)),dt===r&&(t.charCodeAt(g)===38?(dt=A,g++):(dt=r,Z===0&&S(p)),dt===r&&(t.charCodeAt(g)===94?(dt=h,g++):(dt=r,Z===0&&S(E)))),dt!==r?(jt=X(),jt!==r?(tr=F(),tr!==r?(at=[at,dt,jt,tr],Re=at):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r);Re!==r;)Se.push(Re),Re=g,at=X(),at!==r?(t.charCodeAt(g)===124?(dt=n,g++):(dt=r,Z===0&&S(u)),dt===r&&(t.charCodeAt(g)===38?(dt=A,g++):(dt=r,Z===0&&S(p)),dt===r&&(t.charCodeAt(g)===94?(dt=h,g++):(dt=r,Z===0&&S(E)))),dt!==r?(jt=X(),jt!==r?(tr=F(),tr!==r?(at=[at,dt,jt,tr],Re=at):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r);Se!==r?(me=$,ie=I(ie,Se),$=ie):(g=$,$=r)}else g=$,$=r;return $}function F(){var $,ie,Se,Re,at,dt;return $=g,t.charCodeAt(g)===33?(ie=v,g++):(ie=r,Z===0&&S(x)),ie!==r?(Se=F(),Se!==r?(me=$,ie=C(Se),$=ie):(g=$,$=r)):(g=$,$=r),$===r&&($=g,t.charCodeAt(g)===40?(ie=R,g++):(ie=r,Z===0&&S(L)),ie!==r?(Se=X(),Se!==r?(Re=y(),Re!==r?(at=X(),at!==r?(t.charCodeAt(g)===41?(dt=U,g++):(dt=r,Z===0&&S(z)),dt!==r?(me=$,ie=te(Re),$=ie):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r),$===r&&($=J())),$}function J(){var $,ie,Se,Re,at;if($=g,ie=X(),ie!==r){if(Se=g,Re=[],ae.test(t.charAt(g))?(at=t.charAt(g),g++):(at=r,Z===0&&S(le)),at!==r)for(;at!==r;)Re.push(at),ae.test(t.charAt(g))?(at=t.charAt(g),g++):(at=r,Z===0&&S(le));else Re=r;Re!==r?Se=t.substring(Se,g):Se=Re,Se!==r?(me=g,Re=ce(Se),Re?Re=void 0:Re=r,Re!==r?(me=$,ie=Ce(Se),$=ie):(g=$,$=r)):(g=$,$=r)}else g=$,$=r;return $}function X(){var $,ie;for(Z++,$=[],Be.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,Z===0&&S(Ee));ie!==r;)$.push(ie),Be.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,Z===0&&S(Ee));return Z--,$===r&&(ie=r,Z===0&&S(de)),$}if(xe=a(),xe!==r&&g===t.length)return xe;throw xe!==r&&g{var{parse:h9e}=$J();fP.makeParser=(t=/[a-z]+/)=>(e,r)=>h9e(e,{queryPattern:t,checkFn:r});fP.parse=fP.makeParser()});var rX=_((RQt,tX)=>{"use strict";tX.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var rN=_((TQt,iX)=>{var oI=rX(),nX={};for(let t of Object.keys(oI))nX[oI[t]]=t;var Ar={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};iX.exports=Ar;for(let t of Object.keys(Ar)){if(!("channels"in Ar[t]))throw new Error("missing channels property: "+t);if(!("labels"in Ar[t]))throw new Error("missing channel labels property: "+t);if(Ar[t].labels.length!==Ar[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=Ar[t];delete Ar[t].channels,delete Ar[t].labels,Object.defineProperty(Ar[t],"channels",{value:e}),Object.defineProperty(Ar[t],"labels",{value:r})}Ar.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(e,r,o),n=Math.max(e,r,o),u=n-a,A,p;n===a?A=0:e===n?A=(r-o)/u:r===n?A=2+(o-e)/u:o===n&&(A=4+(e-r)/u),A=Math.min(A*60,360),A<0&&(A+=360);let h=(a+n)/2;return n===a?p=0:h<=.5?p=u/(n+a):p=u/(2-n-a),[A,p*100,h*100]};Ar.rgb.hsv=function(t){let e,r,o,a,n,u=t[0]/255,A=t[1]/255,p=t[2]/255,h=Math.max(u,A,p),E=h-Math.min(u,A,p),I=function(v){return(h-v)/6/E+1/2};return E===0?(a=0,n=0):(n=E/h,e=I(u),r=I(A),o=I(p),u===h?a=o-r:A===h?a=1/3+e-o:p===h&&(a=2/3+r-e),a<0?a+=1:a>1&&(a-=1)),[a*360,n*100,h*100]};Ar.rgb.hwb=function(t){let e=t[0],r=t[1],o=t[2],a=Ar.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,o));return o=1-1/255*Math.max(e,Math.max(r,o)),[a,n*100,o*100]};Ar.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(1-e,1-r,1-o),n=(1-e-a)/(1-a)||0,u=(1-r-a)/(1-a)||0,A=(1-o-a)/(1-a)||0;return[n*100,u*100,A*100,a*100]};function g9e(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}Ar.rgb.keyword=function(t){let e=nX[t];if(e)return e;let r=1/0,o;for(let a of Object.keys(oI)){let n=oI[a],u=g9e(t,n);u.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;let a=e*.4124+r*.3576+o*.1805,n=e*.2126+r*.7152+o*.0722,u=e*.0193+r*.1192+o*.9505;return[a*100,n*100,u*100]};Ar.rgb.lab=function(t){let e=Ar.rgb.xyz(t),r=e[0],o=e[1],a=e[2];r/=95.047,o/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let n=116*o-16,u=500*(r-o),A=200*(o-a);return[n,u,A]};Ar.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a,n,u;if(r===0)return u=o*255,[u,u,u];o<.5?a=o*(1+r):a=o+r-o*r;let A=2*o-a,p=[0,0,0];for(let h=0;h<3;h++)n=e+1/3*-(h-1),n<0&&n++,n>1&&n--,6*n<1?u=A+(a-A)*6*n:2*n<1?u=a:3*n<2?u=A+(a-A)*(2/3-n)*6:u=A,p[h]=u*255;return p};Ar.hsl.hsv=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=r,n=Math.max(o,.01);o*=2,r*=o<=1?o:2-o,a*=n<=1?n:2-n;let u=(o+r)/2,A=o===0?2*a/(n+a):2*r/(o+r);return[e,A*100,u*100]};Ar.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,o=t[2]/100,a=Math.floor(e)%6,n=e-Math.floor(e),u=255*o*(1-r),A=255*o*(1-r*n),p=255*o*(1-r*(1-n));switch(o*=255,a){case 0:return[o,p,u];case 1:return[A,o,u];case 2:return[u,o,p];case 3:return[u,A,o];case 4:return[p,u,o];case 5:return[o,u,A]}};Ar.hsv.hsl=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=Math.max(o,.01),n,u;u=(2-r)*o;let A=(2-r)*a;return n=r*a,n/=A<=1?A:2-A,n=n||0,u/=2,[e,n*100,u*100]};Ar.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a=r+o,n;a>1&&(r/=a,o/=a);let u=Math.floor(6*e),A=1-o;n=6*e-u,u&1&&(n=1-n);let p=r+n*(A-r),h,E,I;switch(u){default:case 6:case 0:h=A,E=p,I=r;break;case 1:h=p,E=A,I=r;break;case 2:h=r,E=A,I=p;break;case 3:h=r,E=p,I=A;break;case 4:h=p,E=r,I=A;break;case 5:h=A,E=r,I=p;break}return[h*255,E*255,I*255]};Ar.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a=t[3]/100,n=1-Math.min(1,e*(1-a)+a),u=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,o*(1-a)+a);return[n*255,u*255,A*255]};Ar.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a,n,u;return a=e*3.2406+r*-1.5372+o*-.4986,n=e*-.9689+r*1.8758+o*.0415,u=e*.0557+r*-.204+o*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,a=Math.min(Math.max(0,a),1),n=Math.min(Math.max(0,n),1),u=Math.min(Math.max(0,u),1),[a*255,n*255,u*255]};Ar.xyz.lab=function(t){let e=t[0],r=t[1],o=t[2];e/=95.047,r/=100,o/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let a=116*r-16,n=500*(e-r),u=200*(r-o);return[a,n,u]};Ar.lab.xyz=function(t){let e=t[0],r=t[1],o=t[2],a,n,u;n=(e+16)/116,a=r/500+n,u=n-o/200;let A=n**3,p=a**3,h=u**3;return n=A>.008856?A:(n-16/116)/7.787,a=p>.008856?p:(a-16/116)/7.787,u=h>.008856?h:(u-16/116)/7.787,a*=95.047,n*=100,u*=108.883,[a,n,u]};Ar.lab.lch=function(t){let e=t[0],r=t[1],o=t[2],a;a=Math.atan2(o,r)*360/2/Math.PI,a<0&&(a+=360);let u=Math.sqrt(r*r+o*o);return[e,u,a]};Ar.lch.lab=function(t){let e=t[0],r=t[1],a=t[2]/360*2*Math.PI,n=r*Math.cos(a),u=r*Math.sin(a);return[e,n,u]};Ar.rgb.ansi16=function(t,e=null){let[r,o,a]=t,n=e===null?Ar.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let u=30+(Math.round(a/255)<<2|Math.round(o/255)<<1|Math.round(r/255));return n===2&&(u+=60),u};Ar.hsv.ansi16=function(t){return Ar.rgb.ansi16(Ar.hsv.rgb(t),t[2])};Ar.rgb.ansi256=function(t){let e=t[0],r=t[1],o=t[2];return e===r&&r===o?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)};Ar.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,o=(e&1)*r*255,a=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[o,a,n]};Ar.ansi256.rgb=function(t){if(t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,o=Math.floor((e=t%36)/6)/5*255,a=e%6/5*255;return[r,o,a]};Ar.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};Ar.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let o=parseInt(r,16),a=o>>16&255,n=o>>8&255,u=o&255;return[a,n,u]};Ar.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.max(Math.max(e,r),o),n=Math.min(Math.min(e,r),o),u=a-n,A,p;return u<1?A=n/(1-u):A=0,u<=0?p=0:a===e?p=(r-o)/u%6:a===r?p=2+(o-e)/u:p=4+(e-r)/u,p/=6,p%=1,[p*360,u*100,A*100]};Ar.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=r<.5?2*e*r:2*e*(1-r),a=0;return o<1&&(a=(r-.5*o)/(1-o)),[t[0],o*100,a*100]};Ar.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=e*r,a=0;return o<1&&(a=(r-o)/(1-o)),[t[0],o*100,a*100]};Ar.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100;if(r===0)return[o*255,o*255,o*255];let a=[0,0,0],n=e%1*6,u=n%1,A=1-u,p=0;switch(Math.floor(n)){case 0:a[0]=1,a[1]=u,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=u;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=u,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return p=(1-r)*o,[(r*a[0]+p)*255,(r*a[1]+p)*255,(r*a[2]+p)*255]};Ar.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e),a=0;return o>0&&(a=e/o),[t[0],a*100,o*100]};Ar.hcg.hsl=function(t){let e=t[1]/100,o=t[2]/100*(1-e)+.5*e,a=0;return o>0&&o<.5?a=e/(2*o):o>=.5&&o<1&&(a=e/(2*(1-o))),[t[0],a*100,o*100]};Ar.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e);return[t[0],(o-e)*100,(1-o)*100]};Ar.hwb.hcg=function(t){let e=t[1]/100,o=1-t[2]/100,a=o-e,n=0;return a<1&&(n=(o-a)/(1-a)),[t[0],a*100,n*100]};Ar.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};Ar.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};Ar.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};Ar.gray.hsl=function(t){return[0,0,t[0]]};Ar.gray.hsv=Ar.gray.hsl;Ar.gray.hwb=function(t){return[0,100,t[0]]};Ar.gray.cmyk=function(t){return[0,0,0,t[0]]};Ar.gray.lab=function(t){return[t[0],0,0]};Ar.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,o=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(o.length)+o};Ar.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var oX=_((NQt,sX)=>{var pP=rN();function d9e(){let t={},e=Object.keys(pP);for(let r=e.length,o=0;o{var nN=rN(),C9e=oX(),fm={},w9e=Object.keys(nN);function I9e(t){let e=function(...r){let o=r[0];return o==null?o:(o.length>1&&(r=o),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function B9e(t){let e=function(...r){let o=r[0];if(o==null)return o;o.length>1&&(r=o);let a=t(r);if(typeof a=="object")for(let n=a.length,u=0;u{fm[t]={},Object.defineProperty(fm[t],"channels",{value:nN[t].channels}),Object.defineProperty(fm[t],"labels",{value:nN[t].labels});let e=C9e(t);Object.keys(e).forEach(o=>{let a=e[o];fm[t][o]=B9e(a),fm[t][o].raw=I9e(a)})});aX.exports=fm});var aI=_((MQt,pX)=>{"use strict";var cX=(t,e)=>(...r)=>`\x1B[${t(...r)+e}m`,uX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};5;${o}m`},AX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};2;${o[0]};${o[1]};${o[2]}m`},hP=t=>t,fX=(t,e,r)=>[t,e,r],pm=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let o=r();return Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0}),o},enumerable:!0,configurable:!0})},iN,hm=(t,e,r,o)=>{iN===void 0&&(iN=lX());let a=o?10:0,n={};for(let[u,A]of Object.entries(iN)){let p=u==="ansi16"?"ansi":u;u===e?n[p]=t(r,a):typeof A=="object"&&(n[p]=t(A[e],a))}return n};function v9e(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,o]of Object.entries(e)){for(let[a,n]of Object.entries(o))e[a]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},o[a]=e[a],t.set(n[0],n[1]);Object.defineProperty(e,r,{value:o,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",pm(e.color,"ansi",()=>hm(cX,"ansi16",hP,!1)),pm(e.color,"ansi256",()=>hm(uX,"ansi256",hP,!1)),pm(e.color,"ansi16m",()=>hm(AX,"rgb",fX,!1)),pm(e.bgColor,"ansi",()=>hm(cX,"ansi16",hP,!0)),pm(e.bgColor,"ansi256",()=>hm(uX,"ansi256",hP,!0)),pm(e.bgColor,"ansi16m",()=>hm(AX,"rgb",fX,!0)),e}Object.defineProperty(pX,"exports",{enumerable:!0,get:v9e})});var gX=_((OQt,hX)=>{"use strict";hX.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(r+t),a=e.indexOf("--");return o!==-1&&(a===-1||o{"use strict";var D9e=ve("os"),dX=ve("tty"),Ol=gX(),{env:us}=process,Kp;Ol("no-color")||Ol("no-colors")||Ol("color=false")||Ol("color=never")?Kp=0:(Ol("color")||Ol("colors")||Ol("color=true")||Ol("color=always"))&&(Kp=1);"FORCE_COLOR"in us&&(us.FORCE_COLOR==="true"?Kp=1:us.FORCE_COLOR==="false"?Kp=0:Kp=us.FORCE_COLOR.length===0?1:Math.min(parseInt(us.FORCE_COLOR,10),3));function sN(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function oN(t,e){if(Kp===0)return 0;if(Ol("color=16m")||Ol("color=full")||Ol("color=truecolor"))return 3;if(Ol("color=256"))return 2;if(t&&!e&&Kp===void 0)return 0;let r=Kp||0;if(us.TERM==="dumb")return r;if(process.platform==="win32"){let o=D9e.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in us)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(o=>o in us)||us.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in us)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(us.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in us)return 1;if(us.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in us){let o=parseInt((us.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(us.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(us.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(us.TERM)||"COLORTERM"in us?1:r}function P9e(t){let e=oN(t,t&&t.isTTY);return sN(e)}mX.exports={supportsColor:P9e,stdout:sN(oN(!0,dX.isatty(1))),stderr:sN(oN(!0,dX.isatty(2)))}});var EX=_((_Qt,yX)=>{"use strict";var b9e=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},S9e=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r +`:` +`)+r,a=o+1,o=t.indexOf(` +`,a)}while(o!==-1);return n+=t.substr(a),n};yX.exports={stringReplaceAll:b9e,stringEncaseCRLFWithFirstIndex:S9e}});var vX=_((HQt,BX)=>{"use strict";var x9e=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,CX=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,k9e=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Q9e=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,F9e=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function IX(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):F9e.get(t)||t}function R9e(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(k9e))r.push(a[2].replace(Q9e,(A,p,h)=>p?IX(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function T9e(t){CX.lastIndex=0;let e=[],r;for(;(r=CX.exec(t))!==null;){let o=r[1];if(r[2]){let a=R9e(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function wX(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}BX.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(x9e,(n,u,A,p,h,E)=>{if(u)a.push(IX(u));else if(p){let I=a.join("");a=[],o.push(r.length===0?I:wX(t,r)(I)),r.push({inverse:A,styles:T9e(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(wX(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var pN=_((qQt,SX)=>{"use strict";var lI=aI(),{stdout:cN,stderr:uN}=aN(),{stringReplaceAll:N9e,stringEncaseCRLFWithFirstIndex:L9e}=EX(),DX=["ansi","ansi","ansi256","ansi16m"],gm=Object.create(null),M9e=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=cN?cN.level:0;t.level=e.level===void 0?r:e.level},AN=class{constructor(e){return PX(e)}},PX=t=>{let e={};return M9e(e,t),e.template=(...r)=>_9e(e.template,...r),Object.setPrototypeOf(e,gP.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=AN,e.template};function gP(t){return PX(t)}for(let[t,e]of Object.entries(lI))gm[t]={get(){let r=dP(this,fN(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};gm.visible={get(){let t=dP(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var bX=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of bX)gm[t]={get(){let{level:e}=this;return function(...r){let o=fN(lI.color[DX[e]][t](...r),lI.color.close,this._styler);return dP(this,o,this._isEmpty)}}};for(let t of bX){let e="bg"+t[0].toUpperCase()+t.slice(1);gm[e]={get(){let{level:r}=this;return function(...o){let a=fN(lI.bgColor[DX[r]][t](...o),lI.bgColor.close,this._styler);return dP(this,a,this._isEmpty)}}}}var O9e=Object.defineProperties(()=>{},{...gm,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),fN=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},dP=(t,e,r)=>{let o=(...a)=>U9e(o,a.length===1?""+a[0]:a.join(" "));return o.__proto__=O9e,o._generator=t,o._styler=e,o._isEmpty=r,o},U9e=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=N9e(e,r.close,r.open),r=r.parent;let n=e.indexOf(` +`);return n!==-1&&(e=L9e(e,a,o,n)),o+e+a},lN,_9e=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n{"use strict";Ul.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Ul.find=(t,e)=>t.nodes.find(r=>r.type===e);Ul.exceedsLimit=(t,e,r=1,o)=>o===!1||!Ul.isInteger(t)||!Ul.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=o;Ul.escapeNode=(t,e=0,r)=>{let o=t.nodes[e];o&&(r&&o.type===r||o.type==="open"||o.type==="close")&&o.escaped!==!0&&(o.value="\\"+o.value,o.escaped=!0)};Ul.encloseBrace=t=>t.type!=="brace"||t.commas>>0+t.ranges>>0?!1:(t.invalid=!0,!0);Ul.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:!(t.commas>>0+t.ranges>>0)||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Ul.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Ul.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Ul.flatten=(...t)=>{let e=[],r=o=>{for(let a=0;a{"use strict";var xX=mP();kX.exports=(t,e={})=>{let r=(o,a={})=>{let n=e.escapeInvalid&&xX.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A="";if(o.value)return(n||u)&&xX.isOpenOrClose(o)?"\\"+o.value:o.value;if(o.value)return o.value;if(o.nodes)for(let p of o.nodes)A+=r(p);return A};return r(t)}});var FX=_((YQt,QX)=>{"use strict";QX.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var HX=_((WQt,_X)=>{"use strict";var RX=FX(),og=(t,e,r)=>{if(RX(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(RX(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};typeof o.strictZeros=="boolean"&&(o.relaxZeros=o.strictZeros===!1);let a=String(o.relaxZeros),n=String(o.shorthand),u=String(o.capture),A=String(o.wrap),p=t+":"+e+"="+a+n+u+A;if(og.cache.hasOwnProperty(p))return og.cache[p].result;let h=Math.min(t,e),E=Math.max(t,e);if(Math.abs(h-E)===1){let R=t+"|"+e;return o.capture?`(${R})`:o.wrap===!1?R:`(?:${R})`}let I=UX(t)||UX(e),v={min:t,max:e,a:h,b:E},x=[],C=[];if(I&&(v.isPadded=I,v.maxLen=String(v.max).length),h<0){let R=E<0?Math.abs(E):1;C=TX(R,Math.abs(h),v,o),h=v.a=0}return E>=0&&(x=TX(h,E,v,o)),v.negatives=C,v.positives=x,v.result=H9e(C,x,o),o.capture===!0?v.result=`(${v.result})`:o.wrap!==!1&&x.length+C.length>1&&(v.result=`(?:${v.result})`),og.cache[p]=v,v.result};function H9e(t,e,r){let o=hN(t,e,"-",!1,r)||[],a=hN(e,t,"",!1,r)||[],n=hN(t,e,"-?",!0,r)||[];return o.concat(n).concat(a).join("|")}function q9e(t,e){let r=1,o=1,a=LX(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=LX(t,r);for(a=MX(e+1,o)-1;t1&&A.count.pop(),A.count.push(E.count[0]),A.string=A.pattern+OX(A.count),u=h+1;continue}r.isPadded&&(I=K9e(h,r,o)),E.string=I+E.pattern+OX(E.count),n.push(E),u=h+1,A=E}return n}function hN(t,e,r,o,a){let n=[];for(let u of t){let{string:A}=u;!o&&!NX(e,"string",A)&&n.push(r+A),o&&NX(e,"string",A)&&n.push(r+A)}return n}function G9e(t,e){let r=[];for(let o=0;oe?1:e>t?-1:0}function NX(t,e,r){return t.some(o=>o[e]===r)}function LX(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function MX(t,e){return t-t%Math.pow(10,e)}function OX(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function W9e(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function UX(t){return/^-?(0+)\d/.test(t)}function K9e(t,e,r){if(!e.isPadded)return t;let o=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(o){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${o}}`:`0{${o}}`}}og.cache={};og.clearCache=()=>og.cache={};_X.exports=og});var mN=_((KQt,zX)=>{"use strict";var V9e=ve("util"),GX=HX(),qX=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),z9e=t=>e=>t===!0?Number(e):String(e),gN=t=>typeof t=="number"||typeof t=="string"&&t!=="",uI=t=>Number.isInteger(+t),dN=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},J9e=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,X9e=(t,e,r)=>{if(e>0){let o=t[0]==="-"?"-":"";o&&(t=t.slice(1)),t=o+t.padStart(o?e-1:e,"0")}return r===!1?String(t):t},jX=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length{t.negatives.sort((u,A)=>uA?1:0),t.positives.sort((u,A)=>uA?1:0);let r=e.capture?"":"?:",o="",a="",n;return t.positives.length&&(o=t.positives.join("|")),t.negatives.length&&(a=`-(${r}${t.negatives.join("|")})`),o&&a?n=`${o}|${a}`:n=o||a,e.wrap?`(${r}${n})`:n},YX=(t,e,r,o)=>{if(r)return GX(t,e,{wrap:!1,...o});let a=String.fromCharCode(t);if(t===e)return a;let n=String.fromCharCode(e);return`[${a}-${n}]`},WX=(t,e,r)=>{if(Array.isArray(t)){let o=r.wrap===!0,a=r.capture?"":"?:";return o?`(${a}${t.join("|")})`:t.join("|")}return GX(t,e,r)},KX=(...t)=>new RangeError("Invalid range arguments: "+V9e.inspect(...t)),VX=(t,e,r)=>{if(r.strictRanges===!0)throw KX([t,e]);return[]},$9e=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},e7e=(t,e,r=1,o={})=>{let a=Number(t),n=Number(e);if(!Number.isInteger(a)||!Number.isInteger(n)){if(o.strictRanges===!0)throw KX([t,e]);return[]}a===0&&(a=0),n===0&&(n=0);let u=a>n,A=String(t),p=String(e),h=String(r);r=Math.max(Math.abs(r),1);let E=dN(A)||dN(p)||dN(h),I=E?Math.max(A.length,p.length,h.length):0,v=E===!1&&J9e(t,e,o)===!1,x=o.transform||z9e(v);if(o.toRegex&&r===1)return YX(jX(t,I),jX(e,I),!0,o);let C={negatives:[],positives:[]},R=z=>C[z<0?"negatives":"positives"].push(Math.abs(z)),L=[],U=0;for(;u?a>=n:a<=n;)o.toRegex===!0&&r>1?R(a):L.push(X9e(x(a,U),I,v)),a=u?a-r:a+r,U++;return o.toRegex===!0?r>1?Z9e(C,o):WX(L,null,{wrap:!1,...o}):L},t7e=(t,e,r=1,o={})=>{if(!uI(t)&&t.length>1||!uI(e)&&e.length>1)return VX(t,e,o);let a=o.transform||(v=>String.fromCharCode(v)),n=`${t}`.charCodeAt(0),u=`${e}`.charCodeAt(0),A=n>u,p=Math.min(n,u),h=Math.max(n,u);if(o.toRegex&&r===1)return YX(p,h,!1,o);let E=[],I=0;for(;A?n>=u:n<=u;)E.push(a(n,I)),n=A?n-r:n+r,I++;return o.toRegex===!0?WX(E,null,{wrap:!1,options:o}):E},EP=(t,e,r,o={})=>{if(e==null&&gN(t))return[t];if(!gN(t)||!gN(e))return VX(t,e,o);if(typeof r=="function")return EP(t,e,1,{transform:r});if(qX(r))return EP(t,e,0,r);let a={...o};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,uI(r)?uI(t)&&uI(e)?e7e(t,e,r,a):t7e(t,e,Math.max(Math.abs(r),1),a):r!=null&&!qX(r)?$9e(r,a):EP(t,e,1,r)};zX.exports=EP});var ZX=_((VQt,XX)=>{"use strict";var r7e=mN(),JX=mP(),n7e=(t,e={})=>{let r=(o,a={})=>{let n=JX.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A=n===!0||u===!0,p=e.escapeInvalid===!0?"\\":"",h="";if(o.isOpen===!0||o.isClose===!0)return p+o.value;if(o.type==="open")return A?p+o.value:"(";if(o.type==="close")return A?p+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":A?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){let E=JX.reduce(o.nodes),I=r7e(...E,{...e,wrap:!1,toRegex:!0});if(I.length!==0)return E.length>1&&I.length>1?`(${I})`:I}if(o.nodes)for(let E of o.nodes)h+=r(E,o);return h};return r(t)};XX.exports=n7e});var tZ=_((zQt,eZ)=>{"use strict";var i7e=mN(),$X=yP(),dm=mP(),ag=(t="",e="",r=!1)=>{let o=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?dm.flatten(e).map(a=>`{${a}}`):e;for(let a of t)if(Array.isArray(a))for(let n of a)o.push(ag(n,e,r));else for(let n of e)r===!0&&typeof n=="string"&&(n=`{${n}}`),o.push(Array.isArray(n)?ag(a,n,r):a+n);return dm.flatten(o)},s7e=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,o=(a,n={})=>{a.queue=[];let u=n,A=n.queue;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,A=u.queue;if(a.invalid||a.dollar){A.push(ag(A.pop(),$X(a,e)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(ag(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let I=dm.reduce(a.nodes);if(dm.exceedsLimit(...I,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let v=i7e(...I,e);v.length===0&&(v=$X(a,e)),A.push(ag(A.pop(),v)),a.nodes=[];return}let p=dm.encloseBrace(a),h=a.queue,E=a;for(;E.type!=="brace"&&E.type!=="root"&&E.parent;)E=E.parent,h=E.queue;for(let I=0;I{"use strict";rZ.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var lZ=_((XQt,aZ)=>{"use strict";var o7e=yP(),{MAX_LENGTH:iZ,CHAR_BACKSLASH:yN,CHAR_BACKTICK:a7e,CHAR_COMMA:l7e,CHAR_DOT:c7e,CHAR_LEFT_PARENTHESES:u7e,CHAR_RIGHT_PARENTHESES:A7e,CHAR_LEFT_CURLY_BRACE:f7e,CHAR_RIGHT_CURLY_BRACE:p7e,CHAR_LEFT_SQUARE_BRACKET:sZ,CHAR_RIGHT_SQUARE_BRACKET:oZ,CHAR_DOUBLE_QUOTE:h7e,CHAR_SINGLE_QUOTE:g7e,CHAR_NO_BREAK_SPACE:d7e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:m7e}=nZ(),y7e=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},o=typeof r.maxLength=="number"?Math.min(iZ,r.maxLength):iZ;if(t.length>o)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${o})`);let a={type:"root",input:t,nodes:[]},n=[a],u=a,A=a,p=0,h=t.length,E=0,I=0,v,x={},C=()=>t[E++],R=L=>{if(L.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&L.type==="text"){A.value+=L.value;return}return u.nodes.push(L),L.parent=u,L.prev=A,A=L,L};for(R({type:"bos"});E0){if(u.ranges>0){u.ranges=0;let L=u.nodes.shift();u.nodes=[L,{type:"text",value:o7e(u)}]}R({type:"comma",value:v}),u.commas++;continue}if(v===c7e&&I>0&&u.commas===0){let L=u.nodes;if(I===0||L.length===0){R({type:"text",value:v});continue}if(A.type==="dot"){if(u.range=[],A.value+=v,A.type="range",u.nodes.length!==3&&u.nodes.length!==5){u.invalid=!0,u.ranges=0,A.type="text";continue}u.ranges++,u.args=[];continue}if(A.type==="range"){L.pop();let U=L[L.length-1];U.value+=A.value+v,A=U,u.ranges--;continue}R({type:"dot",value:v});continue}R({type:"text",value:v})}do if(u=n.pop(),u.type!=="root"){u.nodes.forEach(z=>{z.nodes||(z.type==="open"&&(z.isOpen=!0),z.type==="close"&&(z.isClose=!0),z.nodes||(z.type="text"),z.invalid=!0)});let L=n[n.length-1],U=L.nodes.indexOf(u);L.nodes.splice(U,1,...u.nodes)}while(n.length>0);return R({type:"eos"}),a};aZ.exports=y7e});var AZ=_((ZQt,uZ)=>{"use strict";var cZ=yP(),E7e=ZX(),C7e=tZ(),w7e=lZ(),nl=(t,e={})=>{let r=[];if(Array.isArray(t))for(let o of t){let a=nl.create(o,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(nl.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};nl.parse=(t,e={})=>w7e(t,e);nl.stringify=(t,e={})=>cZ(typeof t=="string"?nl.parse(t,e):t,e);nl.compile=(t,e={})=>(typeof t=="string"&&(t=nl.parse(t,e)),E7e(t,e));nl.expand=(t,e={})=>{typeof t=="string"&&(t=nl.parse(t,e));let r=C7e(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};nl.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?nl.compile(t,e):nl.expand(t,e);uZ.exports=nl});var AI=_(($Qt,dZ)=>{"use strict";var I7e=ve("path"),Vu="\\\\/",fZ=`[^${Vu}]`,Bf="\\.",B7e="\\+",v7e="\\?",CP="\\/",D7e="(?=.)",pZ="[^/]",EN=`(?:${CP}|$)`,hZ=`(?:^|${CP})`,CN=`${Bf}{1,2}${EN}`,P7e=`(?!${Bf})`,b7e=`(?!${hZ}${CN})`,S7e=`(?!${Bf}{0,1}${EN})`,x7e=`(?!${CN})`,k7e=`[^.${CP}]`,Q7e=`${pZ}*?`,gZ={DOT_LITERAL:Bf,PLUS_LITERAL:B7e,QMARK_LITERAL:v7e,SLASH_LITERAL:CP,ONE_CHAR:D7e,QMARK:pZ,END_ANCHOR:EN,DOTS_SLASH:CN,NO_DOT:P7e,NO_DOTS:b7e,NO_DOT_SLASH:S7e,NO_DOTS_SLASH:x7e,QMARK_NO_DOT:k7e,STAR:Q7e,START_ANCHOR:hZ},F7e={...gZ,SLASH_LITERAL:`[${Vu}]`,QMARK:fZ,STAR:`${fZ}*?`,DOTS_SLASH:`${Bf}{1,2}(?:[${Vu}]|$)`,NO_DOT:`(?!${Bf})`,NO_DOTS:`(?!(?:^|[${Vu}])${Bf}{1,2}(?:[${Vu}]|$))`,NO_DOT_SLASH:`(?!${Bf}{0,1}(?:[${Vu}]|$))`,NO_DOTS_SLASH:`(?!${Bf}{1,2}(?:[${Vu}]|$))`,QMARK_NO_DOT:`[^.${Vu}]`,START_ANCHOR:`(?:^|[${Vu}])`,END_ANCHOR:`(?:[${Vu}]|$)`},R7e={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};dZ.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:R7e,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:I7e.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?F7e:gZ}}});var fI=_(Sa=>{"use strict";var T7e=ve("path"),N7e=process.platform==="win32",{REGEX_BACKSLASH:L7e,REGEX_REMOVE_BACKSLASH:M7e,REGEX_SPECIAL_CHARS:O7e,REGEX_SPECIAL_CHARS_GLOBAL:U7e}=AI();Sa.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Sa.hasRegexChars=t=>O7e.test(t);Sa.isRegexChar=t=>t.length===1&&Sa.hasRegexChars(t);Sa.escapeRegex=t=>t.replace(U7e,"\\$1");Sa.toPosixSlashes=t=>t.replace(L7e,"/");Sa.removeBackslashes=t=>t.replace(M7e,e=>e==="\\"?"":e);Sa.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Sa.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:N7e===!0||T7e.sep==="\\";Sa.escapeLast=(t,e,r)=>{let o=t.lastIndexOf(e,r);return o===-1?t:t[o-1]==="\\"?Sa.escapeLast(t,e,o-1):`${t.slice(0,o)}\\${t.slice(o)}`};Sa.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Sa.wrapOutput=(t,e={},r={})=>{let o=r.contains?"":"^",a=r.contains?"":"$",n=`${o}(?:${t})${a}`;return e.negated===!0&&(n=`(?:^(?!${n}).*$)`),n}});var vZ=_((tFt,BZ)=>{"use strict";var mZ=fI(),{CHAR_ASTERISK:wN,CHAR_AT:_7e,CHAR_BACKWARD_SLASH:pI,CHAR_COMMA:H7e,CHAR_DOT:IN,CHAR_EXCLAMATION_MARK:BN,CHAR_FORWARD_SLASH:IZ,CHAR_LEFT_CURLY_BRACE:vN,CHAR_LEFT_PARENTHESES:DN,CHAR_LEFT_SQUARE_BRACKET:q7e,CHAR_PLUS:j7e,CHAR_QUESTION_MARK:yZ,CHAR_RIGHT_CURLY_BRACE:G7e,CHAR_RIGHT_PARENTHESES:EZ,CHAR_RIGHT_SQUARE_BRACKET:Y7e}=AI(),CZ=t=>t===IZ||t===pI,wZ=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},W7e=(t,e)=>{let r=e||{},o=t.length-1,a=r.parts===!0||r.scanToEnd===!0,n=[],u=[],A=[],p=t,h=-1,E=0,I=0,v=!1,x=!1,C=!1,R=!1,L=!1,U=!1,z=!1,te=!1,ae=!1,le=!1,ce=0,Ce,de,Be={value:"",depth:0,isGlob:!1},Ee=()=>h>=o,g=()=>p.charCodeAt(h+1),me=()=>(Ce=de,p.charCodeAt(++h));for(;h0&&(Ae=p.slice(0,E),p=p.slice(E),I-=E),we&&C===!0&&I>0?(we=p.slice(0,I),ne=p.slice(I)):C===!0?(we="",ne=p):we=p,we&&we!==""&&we!=="/"&&we!==p&&CZ(we.charCodeAt(we.length-1))&&(we=we.slice(0,-1)),r.unescape===!0&&(ne&&(ne=mZ.removeBackslashes(ne)),we&&z===!0&&(we=mZ.removeBackslashes(we)));let Z={prefix:Ae,input:t,start:E,base:we,glob:ne,isBrace:v,isBracket:x,isGlob:C,isExtglob:R,isGlobstar:L,negated:te,negatedExtglob:ae};if(r.tokens===!0&&(Z.maxDepth=0,CZ(de)||u.push(Be),Z.tokens=u),r.parts===!0||r.tokens===!0){let xe;for(let Ne=0;Ne{"use strict";var wP=AI(),il=fI(),{MAX_LENGTH:IP,POSIX_REGEX_SOURCE:K7e,REGEX_NON_SPECIAL_CHARS:V7e,REGEX_SPECIAL_CHARS_BACKREF:z7e,REPLACEMENTS:DZ}=wP,J7e=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(a=>il.escapeRegex(a)).join("..")}return r},mm=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,PN=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=DZ[t]||t;let r={...e},o=typeof r.maxLength=="number"?Math.min(IP,r.maxLength):IP,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);let n={type:"bos",value:"",output:r.prepend||""},u=[n],A=r.capture?"":"?:",p=il.isWindows(e),h=wP.globChars(p),E=wP.extglobChars(h),{DOT_LITERAL:I,PLUS_LITERAL:v,SLASH_LITERAL:x,ONE_CHAR:C,DOTS_SLASH:R,NO_DOT:L,NO_DOT_SLASH:U,NO_DOTS_SLASH:z,QMARK:te,QMARK_NO_DOT:ae,STAR:le,START_ANCHOR:ce}=h,Ce=S=>`(${A}(?:(?!${ce}${S.dot?R:I}).)*?)`,de=r.dot?"":L,Be=r.dot?te:ae,Ee=r.bash===!0?Ce(r):le;r.capture&&(Ee=`(${Ee})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let g={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:u};t=il.removePrefix(t,g),a=t.length;let me=[],we=[],Ae=[],ne=n,Z,xe=()=>g.index===a-1,Ne=g.peek=(S=1)=>t[g.index+S],ht=g.advance=()=>t[++g.index]||"",H=()=>t.slice(g.index+1),rt=(S="",w=0)=>{g.consumed+=S,g.index+=w},Te=S=>{g.output+=S.output!=null?S.output:S.value,rt(S.value)},Fe=()=>{let S=1;for(;Ne()==="!"&&(Ne(2)!=="("||Ne(3)==="?");)ht(),g.start++,S++;return S%2===0?!1:(g.negated=!0,g.start++,!0)},ke=S=>{g[S]++,Ae.push(S)},Ye=S=>{g[S]--,Ae.pop()},be=S=>{if(ne.type==="globstar"){let w=g.braces>0&&(S.type==="comma"||S.type==="brace"),b=S.extglob===!0||me.length&&(S.type==="pipe"||S.type==="paren");S.type!=="slash"&&S.type!=="paren"&&!w&&!b&&(g.output=g.output.slice(0,-ne.output.length),ne.type="star",ne.value="*",ne.output=Ee,g.output+=ne.output)}if(me.length&&S.type!=="paren"&&(me[me.length-1].inner+=S.value),(S.value||S.output)&&Te(S),ne&&ne.type==="text"&&S.type==="text"){ne.value+=S.value,ne.output=(ne.output||"")+S.value;return}S.prev=ne,u.push(S),ne=S},et=(S,w)=>{let b={...E[w],conditions:1,inner:""};b.prev=ne,b.parens=g.parens,b.output=g.output;let y=(r.capture?"(":"")+b.open;ke("parens"),be({type:S,value:w,output:g.output?"":C}),be({type:"paren",extglob:!0,value:ht(),output:y}),me.push(b)},Ue=S=>{let w=S.close+(r.capture?")":""),b;if(S.type==="negate"){let y=Ee;if(S.inner&&S.inner.length>1&&S.inner.includes("/")&&(y=Ce(r)),(y!==Ee||xe()||/^\)+$/.test(H()))&&(w=S.close=`)$))${y}`),S.inner.includes("*")&&(b=H())&&/^\.[^\\/.]+$/.test(b)){let F=PN(b,{...e,fastpaths:!1}).output;w=S.close=`)${F})${y})`}S.prev.type==="bos"&&(g.negatedExtglob=!0)}be({type:"paren",extglob:!0,value:Z,output:w}),Ye("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let S=!1,w=t.replace(z7e,(b,y,F,J,X,$)=>J==="\\"?(S=!0,b):J==="?"?y?y+J+(X?te.repeat(X.length):""):$===0?Be+(X?te.repeat(X.length):""):te.repeat(F.length):J==="."?I.repeat(F.length):J==="*"?y?y+J+(X?Ee:""):Ee:y?b:`\\${b}`);return S===!0&&(r.unescape===!0?w=w.replace(/\\/g,""):w=w.replace(/\\+/g,b=>b.length%2===0?"\\\\":b?"\\":"")),w===t&&r.contains===!0?(g.output=t,g):(g.output=il.wrapOutput(w,g,e),g)}for(;!xe();){if(Z=ht(),Z==="\0")continue;if(Z==="\\"){let b=Ne();if(b==="/"&&r.bash!==!0||b==="."||b===";")continue;if(!b){Z+="\\",be({type:"text",value:Z});continue}let y=/^\\+/.exec(H()),F=0;if(y&&y[0].length>2&&(F=y[0].length,g.index+=F,F%2!==0&&(Z+="\\")),r.unescape===!0?Z=ht():Z+=ht(),g.brackets===0){be({type:"text",value:Z});continue}}if(g.brackets>0&&(Z!=="]"||ne.value==="["||ne.value==="[^")){if(r.posix!==!1&&Z===":"){let b=ne.value.slice(1);if(b.includes("[")&&(ne.posix=!0,b.includes(":"))){let y=ne.value.lastIndexOf("["),F=ne.value.slice(0,y),J=ne.value.slice(y+2),X=K7e[J];if(X){ne.value=F+X,g.backtrack=!0,ht(),!n.output&&u.indexOf(ne)===1&&(n.output=C);continue}}}(Z==="["&&Ne()!==":"||Z==="-"&&Ne()==="]")&&(Z=`\\${Z}`),Z==="]"&&(ne.value==="["||ne.value==="[^")&&(Z=`\\${Z}`),r.posix===!0&&Z==="!"&&ne.value==="["&&(Z="^"),ne.value+=Z,Te({value:Z});continue}if(g.quotes===1&&Z!=='"'){Z=il.escapeRegex(Z),ne.value+=Z,Te({value:Z});continue}if(Z==='"'){g.quotes=g.quotes===1?0:1,r.keepQuotes===!0&&be({type:"text",value:Z});continue}if(Z==="("){ke("parens"),be({type:"paren",value:Z});continue}if(Z===")"){if(g.parens===0&&r.strictBrackets===!0)throw new SyntaxError(mm("opening","("));let b=me[me.length-1];if(b&&g.parens===b.parens+1){Ue(me.pop());continue}be({type:"paren",value:Z,output:g.parens?")":"\\)"}),Ye("parens");continue}if(Z==="["){if(r.nobracket===!0||!H().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(mm("closing","]"));Z=`\\${Z}`}else ke("brackets");be({type:"bracket",value:Z});continue}if(Z==="]"){if(r.nobracket===!0||ne&&ne.type==="bracket"&&ne.value.length===1){be({type:"text",value:Z,output:`\\${Z}`});continue}if(g.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(mm("opening","["));be({type:"text",value:Z,output:`\\${Z}`});continue}Ye("brackets");let b=ne.value.slice(1);if(ne.posix!==!0&&b[0]==="^"&&!b.includes("/")&&(Z=`/${Z}`),ne.value+=Z,Te({value:Z}),r.literalBrackets===!1||il.hasRegexChars(b))continue;let y=il.escapeRegex(ne.value);if(g.output=g.output.slice(0,-ne.value.length),r.literalBrackets===!0){g.output+=y,ne.value=y;continue}ne.value=`(${A}${y}|${ne.value})`,g.output+=ne.value;continue}if(Z==="{"&&r.nobrace!==!0){ke("braces");let b={type:"brace",value:Z,output:"(",outputIndex:g.output.length,tokensIndex:g.tokens.length};we.push(b),be(b);continue}if(Z==="}"){let b=we[we.length-1];if(r.nobrace===!0||!b){be({type:"text",value:Z,output:Z});continue}let y=")";if(b.dots===!0){let F=u.slice(),J=[];for(let X=F.length-1;X>=0&&(u.pop(),F[X].type!=="brace");X--)F[X].type!=="dots"&&J.unshift(F[X].value);y=J7e(J,r),g.backtrack=!0}if(b.comma!==!0&&b.dots!==!0){let F=g.output.slice(0,b.outputIndex),J=g.tokens.slice(b.tokensIndex);b.value=b.output="\\{",Z=y="\\}",g.output=F;for(let X of J)g.output+=X.output||X.value}be({type:"brace",value:Z,output:y}),Ye("braces"),we.pop();continue}if(Z==="|"){me.length>0&&me[me.length-1].conditions++,be({type:"text",value:Z});continue}if(Z===","){let b=Z,y=we[we.length-1];y&&Ae[Ae.length-1]==="braces"&&(y.comma=!0,b="|"),be({type:"comma",value:Z,output:b});continue}if(Z==="/"){if(ne.type==="dot"&&g.index===g.start+1){g.start=g.index+1,g.consumed="",g.output="",u.pop(),ne=n;continue}be({type:"slash",value:Z,output:x});continue}if(Z==="."){if(g.braces>0&&ne.type==="dot"){ne.value==="."&&(ne.output=I);let b=we[we.length-1];ne.type="dots",ne.output+=Z,ne.value+=Z,b.dots=!0;continue}if(g.braces+g.parens===0&&ne.type!=="bos"&&ne.type!=="slash"){be({type:"text",value:Z,output:I});continue}be({type:"dot",value:Z,output:I});continue}if(Z==="?"){if(!(ne&&ne.value==="(")&&r.noextglob!==!0&&Ne()==="("&&Ne(2)!=="?"){et("qmark",Z);continue}if(ne&&ne.type==="paren"){let y=Ne(),F=Z;if(y==="<"&&!il.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(ne.value==="("&&!/[!=<:]/.test(y)||y==="<"&&!/<([!=]|\w+>)/.test(H()))&&(F=`\\${Z}`),be({type:"text",value:Z,output:F});continue}if(r.dot!==!0&&(ne.type==="slash"||ne.type==="bos")){be({type:"qmark",value:Z,output:ae});continue}be({type:"qmark",value:Z,output:te});continue}if(Z==="!"){if(r.noextglob!==!0&&Ne()==="("&&(Ne(2)!=="?"||!/[!=<:]/.test(Ne(3)))){et("negate",Z);continue}if(r.nonegate!==!0&&g.index===0){Fe();continue}}if(Z==="+"){if(r.noextglob!==!0&&Ne()==="("&&Ne(2)!=="?"){et("plus",Z);continue}if(ne&&ne.value==="("||r.regex===!1){be({type:"plus",value:Z,output:v});continue}if(ne&&(ne.type==="bracket"||ne.type==="paren"||ne.type==="brace")||g.parens>0){be({type:"plus",value:Z});continue}be({type:"plus",value:v});continue}if(Z==="@"){if(r.noextglob!==!0&&Ne()==="("&&Ne(2)!=="?"){be({type:"at",extglob:!0,value:Z,output:""});continue}be({type:"text",value:Z});continue}if(Z!=="*"){(Z==="$"||Z==="^")&&(Z=`\\${Z}`);let b=V7e.exec(H());b&&(Z+=b[0],g.index+=b[0].length),be({type:"text",value:Z});continue}if(ne&&(ne.type==="globstar"||ne.star===!0)){ne.type="star",ne.star=!0,ne.value+=Z,ne.output=Ee,g.backtrack=!0,g.globstar=!0,rt(Z);continue}let S=H();if(r.noextglob!==!0&&/^\([^?]/.test(S)){et("star",Z);continue}if(ne.type==="star"){if(r.noglobstar===!0){rt(Z);continue}let b=ne.prev,y=b.prev,F=b.type==="slash"||b.type==="bos",J=y&&(y.type==="star"||y.type==="globstar");if(r.bash===!0&&(!F||S[0]&&S[0]!=="/")){be({type:"star",value:Z,output:""});continue}let X=g.braces>0&&(b.type==="comma"||b.type==="brace"),$=me.length&&(b.type==="pipe"||b.type==="paren");if(!F&&b.type!=="paren"&&!X&&!$){be({type:"star",value:Z,output:""});continue}for(;S.slice(0,3)==="/**";){let ie=t[g.index+4];if(ie&&ie!=="/")break;S=S.slice(3),rt("/**",3)}if(b.type==="bos"&&xe()){ne.type="globstar",ne.value+=Z,ne.output=Ce(r),g.output=ne.output,g.globstar=!0,rt(Z);continue}if(b.type==="slash"&&b.prev.type!=="bos"&&!J&&xe()){g.output=g.output.slice(0,-(b.output+ne.output).length),b.output=`(?:${b.output}`,ne.type="globstar",ne.output=Ce(r)+(r.strictSlashes?")":"|$)"),ne.value+=Z,g.globstar=!0,g.output+=b.output+ne.output,rt(Z);continue}if(b.type==="slash"&&b.prev.type!=="bos"&&S[0]==="/"){let ie=S[1]!==void 0?"|$":"";g.output=g.output.slice(0,-(b.output+ne.output).length),b.output=`(?:${b.output}`,ne.type="globstar",ne.output=`${Ce(r)}${x}|${x}${ie})`,ne.value+=Z,g.output+=b.output+ne.output,g.globstar=!0,rt(Z+ht()),be({type:"slash",value:"/",output:""});continue}if(b.type==="bos"&&S[0]==="/"){ne.type="globstar",ne.value+=Z,ne.output=`(?:^|${x}|${Ce(r)}${x})`,g.output=ne.output,g.globstar=!0,rt(Z+ht()),be({type:"slash",value:"/",output:""});continue}g.output=g.output.slice(0,-ne.output.length),ne.type="globstar",ne.output=Ce(r),ne.value+=Z,g.output+=ne.output,g.globstar=!0,rt(Z);continue}let w={type:"star",value:Z,output:Ee};if(r.bash===!0){w.output=".*?",(ne.type==="bos"||ne.type==="slash")&&(w.output=de+w.output),be(w);continue}if(ne&&(ne.type==="bracket"||ne.type==="paren")&&r.regex===!0){w.output=Z,be(w);continue}(g.index===g.start||ne.type==="slash"||ne.type==="dot")&&(ne.type==="dot"?(g.output+=U,ne.output+=U):r.dot===!0?(g.output+=z,ne.output+=z):(g.output+=de,ne.output+=de),Ne()!=="*"&&(g.output+=C,ne.output+=C)),be(w)}for(;g.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(mm("closing","]"));g.output=il.escapeLast(g.output,"["),Ye("brackets")}for(;g.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(mm("closing",")"));g.output=il.escapeLast(g.output,"("),Ye("parens")}for(;g.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(mm("closing","}"));g.output=il.escapeLast(g.output,"{"),Ye("braces")}if(r.strictSlashes!==!0&&(ne.type==="star"||ne.type==="bracket")&&be({type:"maybe_slash",value:"",output:`${x}?`}),g.backtrack===!0){g.output="";for(let S of g.tokens)g.output+=S.output!=null?S.output:S.value,S.suffix&&(g.output+=S.suffix)}return g};PN.fastpaths=(t,e)=>{let r={...e},o=typeof r.maxLength=="number"?Math.min(IP,r.maxLength):IP,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);t=DZ[t]||t;let n=il.isWindows(e),{DOT_LITERAL:u,SLASH_LITERAL:A,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:E,NO_DOTS:I,NO_DOTS_SLASH:v,STAR:x,START_ANCHOR:C}=wP.globChars(n),R=r.dot?I:E,L=r.dot?v:E,U=r.capture?"":"?:",z={negated:!1,prefix:""},te=r.bash===!0?".*?":x;r.capture&&(te=`(${te})`);let ae=de=>de.noglobstar===!0?te:`(${U}(?:(?!${C}${de.dot?h:u}).)*?)`,le=de=>{switch(de){case"*":return`${R}${p}${te}`;case".*":return`${u}${p}${te}`;case"*.*":return`${R}${te}${u}${p}${te}`;case"*/*":return`${R}${te}${A}${p}${L}${te}`;case"**":return R+ae(r);case"**/*":return`(?:${R}${ae(r)}${A})?${L}${p}${te}`;case"**/*.*":return`(?:${R}${ae(r)}${A})?${L}${te}${u}${p}${te}`;case"**/.*":return`(?:${R}${ae(r)}${A})?${u}${p}${te}`;default:{let Be=/^(.*?)\.(\w+)$/.exec(de);if(!Be)return;let Ee=le(Be[1]);return Ee?Ee+u+Be[2]:void 0}}},ce=il.removePrefix(t,z),Ce=le(ce);return Ce&&r.strictSlashes!==!0&&(Ce+=`${A}?`),Ce};PZ.exports=PN});var xZ=_((nFt,SZ)=>{"use strict";var X7e=ve("path"),Z7e=vZ(),bN=bZ(),SN=fI(),$7e=AI(),eYe=t=>t&&typeof t=="object"&&!Array.isArray(t),Mi=(t,e,r=!1)=>{if(Array.isArray(t)){let E=t.map(v=>Mi(v,e,r));return v=>{for(let x of E){let C=x(v);if(C)return C}return!1}}let o=eYe(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!o)throw new TypeError("Expected pattern to be a non-empty string");let a=e||{},n=SN.isWindows(e),u=o?Mi.compileRe(t,e):Mi.makeRe(t,e,!1,!0),A=u.state;delete u.state;let p=()=>!1;if(a.ignore){let E={...e,ignore:null,onMatch:null,onResult:null};p=Mi(a.ignore,E,r)}let h=(E,I=!1)=>{let{isMatch:v,match:x,output:C}=Mi.test(E,u,e,{glob:t,posix:n}),R={glob:t,state:A,regex:u,posix:n,input:E,output:C,match:x,isMatch:v};return typeof a.onResult=="function"&&a.onResult(R),v===!1?(R.isMatch=!1,I?R:!1):p(E)?(typeof a.onIgnore=="function"&&a.onIgnore(R),R.isMatch=!1,I?R:!1):(typeof a.onMatch=="function"&&a.onMatch(R),I?R:!0)};return r&&(h.state=A),h};Mi.test=(t,e,r,{glob:o,posix:a}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let n=r||{},u=n.format||(a?SN.toPosixSlashes:null),A=t===o,p=A&&u?u(t):t;return A===!1&&(p=u?u(t):t,A=p===o),(A===!1||n.capture===!0)&&(n.matchBase===!0||n.basename===!0?A=Mi.matchBase(t,e,r,a):A=e.exec(p)),{isMatch:!!A,match:A,output:p}};Mi.matchBase=(t,e,r,o=SN.isWindows(r))=>(e instanceof RegExp?e:Mi.makeRe(e,r)).test(X7e.basename(t));Mi.isMatch=(t,e,r)=>Mi(e,r)(t);Mi.parse=(t,e)=>Array.isArray(t)?t.map(r=>Mi.parse(r,e)):bN(t,{...e,fastpaths:!1});Mi.scan=(t,e)=>Z7e(t,e);Mi.compileRe=(t,e,r=!1,o=!1)=>{if(r===!0)return t.output;let a=e||{},n=a.contains?"":"^",u=a.contains?"":"$",A=`${n}(?:${t.output})${u}`;t&&t.negated===!0&&(A=`^(?!${A}).*$`);let p=Mi.toRegex(A,e);return o===!0&&(p.state=t),p};Mi.makeRe=(t,e={},r=!1,o=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a.output=bN.fastpaths(t,e)),a.output||(a=bN(t,e)),Mi.compileRe(a,e,r,o)};Mi.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Mi.constants=$7e;SZ.exports=Mi});var QZ=_((iFt,kZ)=>{"use strict";kZ.exports=xZ()});var $o=_((sFt,NZ)=>{"use strict";var RZ=ve("util"),TZ=AZ(),zu=QZ(),xN=fI(),FZ=t=>t===""||t==="./",mi=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let o=new Set,a=new Set,n=new Set,u=0,A=E=>{n.add(E.output),r&&r.onResult&&r.onResult(E)};for(let E=0;E!o.has(E));if(r&&h.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(E=>E.replace(/\\/g,"")):e}return h};mi.match=mi;mi.matcher=(t,e)=>zu(t,e);mi.isMatch=(t,e,r)=>zu(e,r)(t);mi.any=mi.isMatch;mi.not=(t,e,r={})=>{e=[].concat(e).map(String);let o=new Set,a=[],n=A=>{r.onResult&&r.onResult(A),a.push(A.output)},u=new Set(mi(t,e,{...r,onResult:n}));for(let A of a)u.has(A)||o.add(A);return[...o]};mi.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${RZ.inspect(t)}"`);if(Array.isArray(e))return e.some(o=>mi.contains(t,o,r));if(typeof e=="string"){if(FZ(t)||FZ(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return mi.isMatch(t,e,{...r,contains:!0})};mi.matchKeys=(t,e,r)=>{if(!xN.isObject(t))throw new TypeError("Expected the first argument to be an object");let o=mi(Object.keys(t),e,r),a={};for(let n of o)a[n]=t[n];return a};mi.some=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=zu(String(a),r);if(o.some(u=>n(u)))return!0}return!1};mi.every=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=zu(String(a),r);if(!o.every(u=>n(u)))return!1}return!0};mi.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${RZ.inspect(t)}"`);return[].concat(e).every(o=>zu(o,r)(t))};mi.capture=(t,e,r)=>{let o=xN.isWindows(r),n=zu.makeRe(String(t),{...r,capture:!0}).exec(o?xN.toPosixSlashes(e):e);if(n)return n.slice(1).map(u=>u===void 0?"":u)};mi.makeRe=(...t)=>zu.makeRe(...t);mi.scan=(...t)=>zu.scan(...t);mi.parse=(t,e)=>{let r=[];for(let o of[].concat(t||[]))for(let a of TZ(String(o),e))r.push(zu.parse(a,e));return r};mi.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:TZ(t,e)};mi.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return mi.braces(t,{...e,expand:!0})};NZ.exports=mi});var MZ=_((oFt,LZ)=>{"use strict";LZ.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var BP=_((aFt,OZ)=>{"use strict";var tYe=MZ();OZ.exports=t=>typeof t=="string"?t.replace(tYe(),""):t});var _Z=_((lFt,UZ)=>{function rYe(){this.__data__=[],this.size=0}UZ.exports=rYe});var ym=_((cFt,HZ)=>{function nYe(t,e){return t===e||t!==t&&e!==e}HZ.exports=nYe});var hI=_((uFt,qZ)=>{var iYe=ym();function sYe(t,e){for(var r=t.length;r--;)if(iYe(t[r][0],e))return r;return-1}qZ.exports=sYe});var GZ=_((AFt,jZ)=>{var oYe=hI(),aYe=Array.prototype,lYe=aYe.splice;function cYe(t){var e=this.__data__,r=oYe(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():lYe.call(e,r,1),--this.size,!0}jZ.exports=cYe});var WZ=_((fFt,YZ)=>{var uYe=hI();function AYe(t){var e=this.__data__,r=uYe(e,t);return r<0?void 0:e[r][1]}YZ.exports=AYe});var VZ=_((pFt,KZ)=>{var fYe=hI();function pYe(t){return fYe(this.__data__,t)>-1}KZ.exports=pYe});var JZ=_((hFt,zZ)=>{var hYe=hI();function gYe(t,e){var r=this.__data__,o=hYe(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}zZ.exports=gYe});var gI=_((gFt,XZ)=>{var dYe=_Z(),mYe=GZ(),yYe=WZ(),EYe=VZ(),CYe=JZ();function Em(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var wYe=gI();function IYe(){this.__data__=new wYe,this.size=0}ZZ.exports=IYe});var t$=_((mFt,e$)=>{function BYe(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}e$.exports=BYe});var n$=_((yFt,r$)=>{function vYe(t){return this.__data__.get(t)}r$.exports=vYe});var s$=_((EFt,i$)=>{function DYe(t){return this.__data__.has(t)}i$.exports=DYe});var kN=_((CFt,o$)=>{var PYe=typeof global=="object"&&global&&global.Object===Object&&global;o$.exports=PYe});var _l=_((wFt,a$)=>{var bYe=kN(),SYe=typeof self=="object"&&self&&self.Object===Object&&self,xYe=bYe||SYe||Function("return this")();a$.exports=xYe});var lg=_((IFt,l$)=>{var kYe=_l(),QYe=kYe.Symbol;l$.exports=QYe});var f$=_((BFt,A$)=>{var c$=lg(),u$=Object.prototype,FYe=u$.hasOwnProperty,RYe=u$.toString,dI=c$?c$.toStringTag:void 0;function TYe(t){var e=FYe.call(t,dI),r=t[dI];try{t[dI]=void 0;var o=!0}catch{}var a=RYe.call(t);return o&&(e?t[dI]=r:delete t[dI]),a}A$.exports=TYe});var h$=_((vFt,p$)=>{var NYe=Object.prototype,LYe=NYe.toString;function MYe(t){return LYe.call(t)}p$.exports=MYe});var cg=_((DFt,m$)=>{var g$=lg(),OYe=f$(),UYe=h$(),_Ye="[object Null]",HYe="[object Undefined]",d$=g$?g$.toStringTag:void 0;function qYe(t){return t==null?t===void 0?HYe:_Ye:d$&&d$ in Object(t)?OYe(t):UYe(t)}m$.exports=qYe});var sl=_((PFt,y$)=>{function jYe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}y$.exports=jYe});var vP=_((bFt,E$)=>{var GYe=cg(),YYe=sl(),WYe="[object AsyncFunction]",KYe="[object Function]",VYe="[object GeneratorFunction]",zYe="[object Proxy]";function JYe(t){if(!YYe(t))return!1;var e=GYe(t);return e==KYe||e==VYe||e==WYe||e==zYe}E$.exports=JYe});var w$=_((SFt,C$)=>{var XYe=_l(),ZYe=XYe["__core-js_shared__"];C$.exports=ZYe});var v$=_((xFt,B$)=>{var QN=w$(),I$=function(){var t=/[^.]+$/.exec(QN&&QN.keys&&QN.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function $Ye(t){return!!I$&&I$ in t}B$.exports=$Ye});var FN=_((kFt,D$)=>{var eWe=Function.prototype,tWe=eWe.toString;function rWe(t){if(t!=null){try{return tWe.call(t)}catch{}try{return t+""}catch{}}return""}D$.exports=rWe});var b$=_((QFt,P$)=>{var nWe=vP(),iWe=v$(),sWe=sl(),oWe=FN(),aWe=/[\\^$.*+?()[\]{}|]/g,lWe=/^\[object .+?Constructor\]$/,cWe=Function.prototype,uWe=Object.prototype,AWe=cWe.toString,fWe=uWe.hasOwnProperty,pWe=RegExp("^"+AWe.call(fWe).replace(aWe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function hWe(t){if(!sWe(t)||iWe(t))return!1;var e=nWe(t)?pWe:lWe;return e.test(oWe(t))}P$.exports=hWe});var x$=_((FFt,S$)=>{function gWe(t,e){return t?.[e]}S$.exports=gWe});var Vp=_((RFt,k$)=>{var dWe=b$(),mWe=x$();function yWe(t,e){var r=mWe(t,e);return dWe(r)?r:void 0}k$.exports=yWe});var DP=_((TFt,Q$)=>{var EWe=Vp(),CWe=_l(),wWe=EWe(CWe,"Map");Q$.exports=wWe});var mI=_((NFt,F$)=>{var IWe=Vp(),BWe=IWe(Object,"create");F$.exports=BWe});var N$=_((LFt,T$)=>{var R$=mI();function vWe(){this.__data__=R$?R$(null):{},this.size=0}T$.exports=vWe});var M$=_((MFt,L$)=>{function DWe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}L$.exports=DWe});var U$=_((OFt,O$)=>{var PWe=mI(),bWe="__lodash_hash_undefined__",SWe=Object.prototype,xWe=SWe.hasOwnProperty;function kWe(t){var e=this.__data__;if(PWe){var r=e[t];return r===bWe?void 0:r}return xWe.call(e,t)?e[t]:void 0}O$.exports=kWe});var H$=_((UFt,_$)=>{var QWe=mI(),FWe=Object.prototype,RWe=FWe.hasOwnProperty;function TWe(t){var e=this.__data__;return QWe?e[t]!==void 0:RWe.call(e,t)}_$.exports=TWe});var j$=_((_Ft,q$)=>{var NWe=mI(),LWe="__lodash_hash_undefined__";function MWe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=NWe&&e===void 0?LWe:e,this}q$.exports=MWe});var Y$=_((HFt,G$)=>{var OWe=N$(),UWe=M$(),_We=U$(),HWe=H$(),qWe=j$();function Cm(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var W$=Y$(),jWe=gI(),GWe=DP();function YWe(){this.size=0,this.__data__={hash:new W$,map:new(GWe||jWe),string:new W$}}K$.exports=YWe});var J$=_((jFt,z$)=>{function WWe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}z$.exports=WWe});var yI=_((GFt,X$)=>{var KWe=J$();function VWe(t,e){var r=t.__data__;return KWe(e)?r[typeof e=="string"?"string":"hash"]:r.map}X$.exports=VWe});var $$=_((YFt,Z$)=>{var zWe=yI();function JWe(t){var e=zWe(this,t).delete(t);return this.size-=e?1:0,e}Z$.exports=JWe});var tee=_((WFt,eee)=>{var XWe=yI();function ZWe(t){return XWe(this,t).get(t)}eee.exports=ZWe});var nee=_((KFt,ree)=>{var $We=yI();function eKe(t){return $We(this,t).has(t)}ree.exports=eKe});var see=_((VFt,iee)=>{var tKe=yI();function rKe(t,e){var r=tKe(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}iee.exports=rKe});var PP=_((zFt,oee)=>{var nKe=V$(),iKe=$$(),sKe=tee(),oKe=nee(),aKe=see();function wm(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var lKe=gI(),cKe=DP(),uKe=PP(),AKe=200;function fKe(t,e){var r=this.__data__;if(r instanceof lKe){var o=r.__data__;if(!cKe||o.length{var pKe=gI(),hKe=$Z(),gKe=t$(),dKe=n$(),mKe=s$(),yKe=lee();function Im(t){var e=this.__data__=new pKe(t);this.size=e.size}Im.prototype.clear=hKe;Im.prototype.delete=gKe;Im.prototype.get=dKe;Im.prototype.has=mKe;Im.prototype.set=yKe;cee.exports=Im});var Aee=_((ZFt,uee)=>{var EKe="__lodash_hash_undefined__";function CKe(t){return this.__data__.set(t,EKe),this}uee.exports=CKe});var pee=_(($Ft,fee)=>{function wKe(t){return this.__data__.has(t)}fee.exports=wKe});var gee=_((eRt,hee)=>{var IKe=PP(),BKe=Aee(),vKe=pee();function SP(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new IKe;++e{function DKe(t,e){for(var r=-1,o=t==null?0:t.length;++r{function PKe(t,e){return t.has(e)}yee.exports=PKe});var RN=_((nRt,Cee)=>{var bKe=gee(),SKe=mee(),xKe=Eee(),kKe=1,QKe=2;function FKe(t,e,r,o,a,n){var u=r&kKe,A=t.length,p=e.length;if(A!=p&&!(u&&p>A))return!1;var h=n.get(t),E=n.get(e);if(h&&E)return h==e&&E==t;var I=-1,v=!0,x=r&QKe?new bKe:void 0;for(n.set(t,e),n.set(e,t);++I{var RKe=_l(),TKe=RKe.Uint8Array;wee.exports=TKe});var Bee=_((sRt,Iee)=>{function NKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o,a){r[++e]=[a,o]}),r}Iee.exports=NKe});var Dee=_((oRt,vee)=>{function LKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o){r[++e]=o}),r}vee.exports=LKe});var kee=_((aRt,xee)=>{var Pee=lg(),bee=TN(),MKe=ym(),OKe=RN(),UKe=Bee(),_Ke=Dee(),HKe=1,qKe=2,jKe="[object Boolean]",GKe="[object Date]",YKe="[object Error]",WKe="[object Map]",KKe="[object Number]",VKe="[object RegExp]",zKe="[object Set]",JKe="[object String]",XKe="[object Symbol]",ZKe="[object ArrayBuffer]",$Ke="[object DataView]",See=Pee?Pee.prototype:void 0,NN=See?See.valueOf:void 0;function eVe(t,e,r,o,a,n,u){switch(r){case $Ke:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case ZKe:return!(t.byteLength!=e.byteLength||!n(new bee(t),new bee(e)));case jKe:case GKe:case KKe:return MKe(+t,+e);case YKe:return t.name==e.name&&t.message==e.message;case VKe:case JKe:return t==e+"";case WKe:var A=UKe;case zKe:var p=o&HKe;if(A||(A=_Ke),t.size!=e.size&&!p)return!1;var h=u.get(t);if(h)return h==e;o|=qKe,u.set(t,e);var E=OKe(A(t),A(e),o,a,n,u);return u.delete(t),E;case XKe:if(NN)return NN.call(t)==NN.call(e)}return!1}xee.exports=eVe});var xP=_((lRt,Qee)=>{function tVe(t,e){for(var r=-1,o=e.length,a=t.length;++r{var rVe=Array.isArray;Fee.exports=rVe});var LN=_((uRt,Ree)=>{var nVe=xP(),iVe=Hl();function sVe(t,e,r){var o=e(t);return iVe(t)?o:nVe(o,r(t))}Ree.exports=sVe});var Nee=_((ARt,Tee)=>{function oVe(t,e){for(var r=-1,o=t==null?0:t.length,a=0,n=[];++r{function aVe(){return[]}Lee.exports=aVe});var kP=_((pRt,Oee)=>{var lVe=Nee(),cVe=MN(),uVe=Object.prototype,AVe=uVe.propertyIsEnumerable,Mee=Object.getOwnPropertySymbols,fVe=Mee?function(t){return t==null?[]:(t=Object(t),lVe(Mee(t),function(e){return AVe.call(t,e)}))}:cVe;Oee.exports=fVe});var _ee=_((hRt,Uee)=>{function pVe(t,e){for(var r=-1,o=Array(t);++r{function hVe(t){return t!=null&&typeof t=="object"}Hee.exports=hVe});var jee=_((dRt,qee)=>{var gVe=cg(),dVe=Ju(),mVe="[object Arguments]";function yVe(t){return dVe(t)&&gVe(t)==mVe}qee.exports=yVe});var EI=_((mRt,Wee)=>{var Gee=jee(),EVe=Ju(),Yee=Object.prototype,CVe=Yee.hasOwnProperty,wVe=Yee.propertyIsEnumerable,IVe=Gee(function(){return arguments}())?Gee:function(t){return EVe(t)&&CVe.call(t,"callee")&&!wVe.call(t,"callee")};Wee.exports=IVe});var Vee=_((yRt,Kee)=>{function BVe(){return!1}Kee.exports=BVe});var wI=_((CI,Bm)=>{var vVe=_l(),DVe=Vee(),Xee=typeof CI=="object"&&CI&&!CI.nodeType&&CI,zee=Xee&&typeof Bm=="object"&&Bm&&!Bm.nodeType&&Bm,PVe=zee&&zee.exports===Xee,Jee=PVe?vVe.Buffer:void 0,bVe=Jee?Jee.isBuffer:void 0,SVe=bVe||DVe;Bm.exports=SVe});var II=_((ERt,Zee)=>{var xVe=9007199254740991,kVe=/^(?:0|[1-9]\d*)$/;function QVe(t,e){var r=typeof t;return e=e??xVe,!!e&&(r=="number"||r!="symbol"&&kVe.test(t))&&t>-1&&t%1==0&&t{var FVe=9007199254740991;function RVe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=FVe}$ee.exports=RVe});var tte=_((wRt,ete)=>{var TVe=cg(),NVe=QP(),LVe=Ju(),MVe="[object Arguments]",OVe="[object Array]",UVe="[object Boolean]",_Ve="[object Date]",HVe="[object Error]",qVe="[object Function]",jVe="[object Map]",GVe="[object Number]",YVe="[object Object]",WVe="[object RegExp]",KVe="[object Set]",VVe="[object String]",zVe="[object WeakMap]",JVe="[object ArrayBuffer]",XVe="[object DataView]",ZVe="[object Float32Array]",$Ve="[object Float64Array]",eze="[object Int8Array]",tze="[object Int16Array]",rze="[object Int32Array]",nze="[object Uint8Array]",ize="[object Uint8ClampedArray]",sze="[object Uint16Array]",oze="[object Uint32Array]",ui={};ui[ZVe]=ui[$Ve]=ui[eze]=ui[tze]=ui[rze]=ui[nze]=ui[ize]=ui[sze]=ui[oze]=!0;ui[MVe]=ui[OVe]=ui[JVe]=ui[UVe]=ui[XVe]=ui[_Ve]=ui[HVe]=ui[qVe]=ui[jVe]=ui[GVe]=ui[YVe]=ui[WVe]=ui[KVe]=ui[VVe]=ui[zVe]=!1;function aze(t){return LVe(t)&&NVe(t.length)&&!!ui[TVe(t)]}ete.exports=aze});var FP=_((IRt,rte)=>{function lze(t){return function(e){return t(e)}}rte.exports=lze});var RP=_((BI,vm)=>{var cze=kN(),nte=typeof BI=="object"&&BI&&!BI.nodeType&&BI,vI=nte&&typeof vm=="object"&&vm&&!vm.nodeType&&vm,uze=vI&&vI.exports===nte,ON=uze&&cze.process,Aze=function(){try{var t=vI&&vI.require&&vI.require("util").types;return t||ON&&ON.binding&&ON.binding("util")}catch{}}();vm.exports=Aze});var TP=_((BRt,ote)=>{var fze=tte(),pze=FP(),ite=RP(),ste=ite&&ite.isTypedArray,hze=ste?pze(ste):fze;ote.exports=hze});var UN=_((vRt,ate)=>{var gze=_ee(),dze=EI(),mze=Hl(),yze=wI(),Eze=II(),Cze=TP(),wze=Object.prototype,Ize=wze.hasOwnProperty;function Bze(t,e){var r=mze(t),o=!r&&dze(t),a=!r&&!o&&yze(t),n=!r&&!o&&!a&&Cze(t),u=r||o||a||n,A=u?gze(t.length,String):[],p=A.length;for(var h in t)(e||Ize.call(t,h))&&!(u&&(h=="length"||a&&(h=="offset"||h=="parent")||n&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Eze(h,p)))&&A.push(h);return A}ate.exports=Bze});var NP=_((DRt,lte)=>{var vze=Object.prototype;function Dze(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||vze;return t===r}lte.exports=Dze});var _N=_((PRt,cte)=>{function Pze(t,e){return function(r){return t(e(r))}}cte.exports=Pze});var Ate=_((bRt,ute)=>{var bze=_N(),Sze=bze(Object.keys,Object);ute.exports=Sze});var pte=_((SRt,fte)=>{var xze=NP(),kze=Ate(),Qze=Object.prototype,Fze=Qze.hasOwnProperty;function Rze(t){if(!xze(t))return kze(t);var e=[];for(var r in Object(t))Fze.call(t,r)&&r!="constructor"&&e.push(r);return e}fte.exports=Rze});var DI=_((xRt,hte)=>{var Tze=vP(),Nze=QP();function Lze(t){return t!=null&&Nze(t.length)&&!Tze(t)}hte.exports=Lze});var LP=_((kRt,gte)=>{var Mze=UN(),Oze=pte(),Uze=DI();function _ze(t){return Uze(t)?Mze(t):Oze(t)}gte.exports=_ze});var HN=_((QRt,dte)=>{var Hze=LN(),qze=kP(),jze=LP();function Gze(t){return Hze(t,jze,qze)}dte.exports=Gze});var Ete=_((FRt,yte)=>{var mte=HN(),Yze=1,Wze=Object.prototype,Kze=Wze.hasOwnProperty;function Vze(t,e,r,o,a,n){var u=r&Yze,A=mte(t),p=A.length,h=mte(e),E=h.length;if(p!=E&&!u)return!1;for(var I=p;I--;){var v=A[I];if(!(u?v in e:Kze.call(e,v)))return!1}var x=n.get(t),C=n.get(e);if(x&&C)return x==e&&C==t;var R=!0;n.set(t,e),n.set(e,t);for(var L=u;++I{var zze=Vp(),Jze=_l(),Xze=zze(Jze,"DataView");Cte.exports=Xze});var Bte=_((TRt,Ite)=>{var Zze=Vp(),$ze=_l(),eJe=Zze($ze,"Promise");Ite.exports=eJe});var Dte=_((NRt,vte)=>{var tJe=Vp(),rJe=_l(),nJe=tJe(rJe,"Set");vte.exports=nJe});var bte=_((LRt,Pte)=>{var iJe=Vp(),sJe=_l(),oJe=iJe(sJe,"WeakMap");Pte.exports=oJe});var PI=_((MRt,Tte)=>{var qN=wte(),jN=DP(),GN=Bte(),YN=Dte(),WN=bte(),Rte=cg(),Dm=FN(),Ste="[object Map]",aJe="[object Object]",xte="[object Promise]",kte="[object Set]",Qte="[object WeakMap]",Fte="[object DataView]",lJe=Dm(qN),cJe=Dm(jN),uJe=Dm(GN),AJe=Dm(YN),fJe=Dm(WN),ug=Rte;(qN&&ug(new qN(new ArrayBuffer(1)))!=Fte||jN&&ug(new jN)!=Ste||GN&&ug(GN.resolve())!=xte||YN&&ug(new YN)!=kte||WN&&ug(new WN)!=Qte)&&(ug=function(t){var e=Rte(t),r=e==aJe?t.constructor:void 0,o=r?Dm(r):"";if(o)switch(o){case lJe:return Fte;case cJe:return Ste;case uJe:return xte;case AJe:return kte;case fJe:return Qte}return e});Tte.exports=ug});var qte=_((ORt,Hte)=>{var KN=bP(),pJe=RN(),hJe=kee(),gJe=Ete(),Nte=PI(),Lte=Hl(),Mte=wI(),dJe=TP(),mJe=1,Ote="[object Arguments]",Ute="[object Array]",MP="[object Object]",yJe=Object.prototype,_te=yJe.hasOwnProperty;function EJe(t,e,r,o,a,n){var u=Lte(t),A=Lte(e),p=u?Ute:Nte(t),h=A?Ute:Nte(e);p=p==Ote?MP:p,h=h==Ote?MP:h;var E=p==MP,I=h==MP,v=p==h;if(v&&Mte(t)){if(!Mte(e))return!1;u=!0,E=!1}if(v&&!E)return n||(n=new KN),u||dJe(t)?pJe(t,e,r,o,a,n):hJe(t,e,p,r,o,a,n);if(!(r&mJe)){var x=E&&_te.call(t,"__wrapped__"),C=I&&_te.call(e,"__wrapped__");if(x||C){var R=x?t.value():t,L=C?e.value():e;return n||(n=new KN),a(R,L,r,o,n)}}return v?(n||(n=new KN),gJe(t,e,r,o,a,n)):!1}Hte.exports=EJe});var Wte=_((URt,Yte)=>{var CJe=qte(),jte=Ju();function Gte(t,e,r,o,a){return t===e?!0:t==null||e==null||!jte(t)&&!jte(e)?t!==t&&e!==e:CJe(t,e,r,o,Gte,a)}Yte.exports=Gte});var Vte=_((_Rt,Kte)=>{var wJe=Wte();function IJe(t,e){return wJe(t,e)}Kte.exports=IJe});var VN=_((HRt,zte)=>{var BJe=Vp(),vJe=function(){try{var t=BJe(Object,"defineProperty");return t({},"",{}),t}catch{}}();zte.exports=vJe});var OP=_((qRt,Xte)=>{var Jte=VN();function DJe(t,e,r){e=="__proto__"&&Jte?Jte(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}Xte.exports=DJe});var zN=_((jRt,Zte)=>{var PJe=OP(),bJe=ym();function SJe(t,e,r){(r!==void 0&&!bJe(t[e],r)||r===void 0&&!(e in t))&&PJe(t,e,r)}Zte.exports=SJe});var ere=_((GRt,$te)=>{function xJe(t){return function(e,r,o){for(var a=-1,n=Object(e),u=o(e),A=u.length;A--;){var p=u[t?A:++a];if(r(n[p],p,n)===!1)break}return e}}$te.exports=xJe});var rre=_((YRt,tre)=>{var kJe=ere(),QJe=kJe();tre.exports=QJe});var JN=_((bI,Pm)=>{var FJe=_l(),ore=typeof bI=="object"&&bI&&!bI.nodeType&&bI,nre=ore&&typeof Pm=="object"&&Pm&&!Pm.nodeType&&Pm,RJe=nre&&nre.exports===ore,ire=RJe?FJe.Buffer:void 0,sre=ire?ire.allocUnsafe:void 0;function TJe(t,e){if(e)return t.slice();var r=t.length,o=sre?sre(r):new t.constructor(r);return t.copy(o),o}Pm.exports=TJe});var UP=_((WRt,lre)=>{var are=TN();function NJe(t){var e=new t.constructor(t.byteLength);return new are(e).set(new are(t)),e}lre.exports=NJe});var XN=_((KRt,cre)=>{var LJe=UP();function MJe(t,e){var r=e?LJe(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}cre.exports=MJe});var _P=_((VRt,ure)=>{function OJe(t,e){var r=-1,o=t.length;for(e||(e=Array(o));++r{var UJe=sl(),Are=Object.create,_Je=function(){function t(){}return function(e){if(!UJe(e))return{};if(Are)return Are(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();fre.exports=_Je});var HP=_((JRt,hre)=>{var HJe=_N(),qJe=HJe(Object.getPrototypeOf,Object);hre.exports=qJe});var ZN=_((XRt,gre)=>{var jJe=pre(),GJe=HP(),YJe=NP();function WJe(t){return typeof t.constructor=="function"&&!YJe(t)?jJe(GJe(t)):{}}gre.exports=WJe});var mre=_((ZRt,dre)=>{var KJe=DI(),VJe=Ju();function zJe(t){return VJe(t)&&KJe(t)}dre.exports=zJe});var $N=_(($Rt,Ere)=>{var JJe=cg(),XJe=HP(),ZJe=Ju(),$Je="[object Object]",eXe=Function.prototype,tXe=Object.prototype,yre=eXe.toString,rXe=tXe.hasOwnProperty,nXe=yre.call(Object);function iXe(t){if(!ZJe(t)||JJe(t)!=$Je)return!1;var e=XJe(t);if(e===null)return!0;var r=rXe.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&yre.call(r)==nXe}Ere.exports=iXe});var eL=_((eTt,Cre)=>{function sXe(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}Cre.exports=sXe});var qP=_((tTt,wre)=>{var oXe=OP(),aXe=ym(),lXe=Object.prototype,cXe=lXe.hasOwnProperty;function uXe(t,e,r){var o=t[e];(!(cXe.call(t,e)&&aXe(o,r))||r===void 0&&!(e in t))&&oXe(t,e,r)}wre.exports=uXe});var Ag=_((rTt,Ire)=>{var AXe=qP(),fXe=OP();function pXe(t,e,r,o){var a=!r;r||(r={});for(var n=-1,u=e.length;++n{function hXe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}Bre.exports=hXe});var Pre=_((iTt,Dre)=>{var gXe=sl(),dXe=NP(),mXe=vre(),yXe=Object.prototype,EXe=yXe.hasOwnProperty;function CXe(t){if(!gXe(t))return mXe(t);var e=dXe(t),r=[];for(var o in t)o=="constructor"&&(e||!EXe.call(t,o))||r.push(o);return r}Dre.exports=CXe});var bm=_((sTt,bre)=>{var wXe=UN(),IXe=Pre(),BXe=DI();function vXe(t){return BXe(t)?wXe(t,!0):IXe(t)}bre.exports=vXe});var xre=_((oTt,Sre)=>{var DXe=Ag(),PXe=bm();function bXe(t){return DXe(t,PXe(t))}Sre.exports=bXe});var Nre=_((aTt,Tre)=>{var kre=zN(),SXe=JN(),xXe=XN(),kXe=_P(),QXe=ZN(),Qre=EI(),Fre=Hl(),FXe=mre(),RXe=wI(),TXe=vP(),NXe=sl(),LXe=$N(),MXe=TP(),Rre=eL(),OXe=xre();function UXe(t,e,r,o,a,n,u){var A=Rre(t,r),p=Rre(e,r),h=u.get(p);if(h){kre(t,r,h);return}var E=n?n(A,p,r+"",t,e,u):void 0,I=E===void 0;if(I){var v=Fre(p),x=!v&&RXe(p),C=!v&&!x&&MXe(p);E=p,v||x||C?Fre(A)?E=A:FXe(A)?E=kXe(A):x?(I=!1,E=SXe(p,!0)):C?(I=!1,E=xXe(p,!0)):E=[]:LXe(p)||Qre(p)?(E=A,Qre(A)?E=OXe(A):(!NXe(A)||TXe(A))&&(E=QXe(p))):I=!1}I&&(u.set(p,E),a(E,p,o,n,u),u.delete(p)),kre(t,r,E)}Tre.exports=UXe});var Ore=_((lTt,Mre)=>{var _Xe=bP(),HXe=zN(),qXe=rre(),jXe=Nre(),GXe=sl(),YXe=bm(),WXe=eL();function Lre(t,e,r,o,a){t!==e&&qXe(e,function(n,u){if(a||(a=new _Xe),GXe(n))jXe(t,e,u,r,Lre,o,a);else{var A=o?o(WXe(t,u),n,u+"",t,e,a):void 0;A===void 0&&(A=n),HXe(t,u,A)}},YXe)}Mre.exports=Lre});var tL=_((cTt,Ure)=>{function KXe(t){return t}Ure.exports=KXe});var Hre=_((uTt,_re)=>{function VXe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}_re.exports=VXe});var rL=_((ATt,jre)=>{var zXe=Hre(),qre=Math.max;function JXe(t,e,r){return e=qre(e===void 0?t.length-1:e,0),function(){for(var o=arguments,a=-1,n=qre(o.length-e,0),u=Array(n);++a{function XXe(t){return function(){return t}}Gre.exports=XXe});var Vre=_((pTt,Kre)=>{var ZXe=Yre(),Wre=VN(),$Xe=tL(),eZe=Wre?function(t,e){return Wre(t,"toString",{configurable:!0,enumerable:!1,value:ZXe(e),writable:!0})}:$Xe;Kre.exports=eZe});var Jre=_((hTt,zre)=>{var tZe=800,rZe=16,nZe=Date.now;function iZe(t){var e=0,r=0;return function(){var o=nZe(),a=rZe-(o-r);if(r=o,a>0){if(++e>=tZe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}zre.exports=iZe});var nL=_((gTt,Xre)=>{var sZe=Vre(),oZe=Jre(),aZe=oZe(sZe);Xre.exports=aZe});var $re=_((dTt,Zre)=>{var lZe=tL(),cZe=rL(),uZe=nL();function AZe(t,e){return uZe(cZe(t,e,lZe),t+"")}Zre.exports=AZe});var tne=_((mTt,ene)=>{var fZe=ym(),pZe=DI(),hZe=II(),gZe=sl();function dZe(t,e,r){if(!gZe(r))return!1;var o=typeof e;return(o=="number"?pZe(r)&&hZe(e,r.length):o=="string"&&e in r)?fZe(r[e],t):!1}ene.exports=dZe});var nne=_((yTt,rne)=>{var mZe=$re(),yZe=tne();function EZe(t){return mZe(function(e,r){var o=-1,a=r.length,n=a>1?r[a-1]:void 0,u=a>2?r[2]:void 0;for(n=t.length>3&&typeof n=="function"?(a--,n):void 0,u&&yZe(r[0],r[1],u)&&(n=a<3?void 0:n,a=1),e=Object(e);++o{var CZe=Ore(),wZe=nne(),IZe=wZe(function(t,e,r,o){CZe(t,e,r,o)});ine.exports=IZe});var He={};Vt(He,{AsyncActions:()=>oL,BufferStream:()=>sL,CachingStrategy:()=>mne,DefaultStream:()=>aL,allSettledSafe:()=>_c,assertNever:()=>cL,bufferStream:()=>km,buildIgnorePattern:()=>xZe,convertMapsToIndexableObjects:()=>GP,dynamicRequire:()=>vf,escapeRegExp:()=>vZe,getArrayWithDefault:()=>xI,getFactoryWithDefault:()=>al,getMapWithDefault:()=>kI,getSetWithDefault:()=>Sm,groupBy:()=>FZe,isIndexableObject:()=>iL,isPathLike:()=>kZe,isTaggedYarnVersion:()=>BZe,makeDeferred:()=>hne,mapAndFilter:()=>ol,mapAndFind:()=>zp,mergeIntoTarget:()=>Ene,overrideType:()=>DZe,parseBoolean:()=>QI,parseInt:()=>Qm,parseOptionalBoolean:()=>yne,plural:()=>jP,prettifyAsyncErrors:()=>xm,prettifySyncErrors:()=>uL,releaseAfterUseAsync:()=>bZe,replaceEnvVariables:()=>YP,sortMap:()=>Fs,toMerged:()=>QZe,tryParseOptionalBoolean:()=>AL,validateEnum:()=>PZe});function BZe(t){return!!(Ane.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function jP(t,{one:e,more:r,zero:o=r}){return t===0?o:t===1?e:r}function vZe(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function DZe(t){}function cL(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function PZe(t,e){let r=Object.values(t);if(!r.includes(e))throw new st(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(o=>JSON.stringify(o)).join(", ")})`);return e}function ol(t,e){let r=[];for(let o of t){let a=e(o);a!==fne&&r.push(a)}return r}function zp(t,e){for(let r of t){let o=e(r);if(o!==pne)return o}}function iL(t){return typeof t=="object"&&t!==null}async function _c(t){let e=await Promise.allSettled(t),r=[];for(let o of e){if(o.status==="rejected")throw o.reason;r.push(o.value)}return r}function GP(t){if(t instanceof Map&&(t=Object.fromEntries(t)),iL(t))for(let e of Object.keys(t)){let r=t[e];iL(r)&&(t[e]=GP(r))}return t}function al(t,e,r){let o=t.get(e);return typeof o>"u"&&t.set(e,o=r()),o}function xI(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=[]),r}function Sm(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Set),r}function kI(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Map),r}async function bZe(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function xm(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function uL(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function km(t){return await new Promise((e,r)=>{let o=[];t.on("error",a=>{r(a)}),t.on("data",a=>{o.push(a)}),t.on("end",()=>{e(Buffer.concat(o))})})}function hne(){let t,e;return{promise:new Promise((o,a)=>{t=o,e=a}),resolve:t,reject:e}}function gne(t){return SI(ue.fromPortablePath(t))}function dne(path){let physicalPath=ue.fromPortablePath(path),currentCacheEntry=SI.cache[physicalPath];delete SI.cache[physicalPath];let result;try{result=gne(physicalPath);let freshCacheEntry=SI.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{SI.cache[physicalPath]=currentCacheEntry}return result}function SZe(t){let e=one.get(t),r=oe.statSync(t);if(e?.mtime===r.mtimeMs)return e.instance;let o=dne(t);return one.set(t,{mtime:r.mtimeMs,instance:o}),o}function vf(t,{cachingStrategy:e=2}={}){switch(e){case 0:return dne(t);case 1:return SZe(t);case 2:return gne(t);default:throw new Error("Unsupported caching strategy")}}function Fs(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function xZe(t){return t.length===0?null:t.map(e=>`(${cne.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function YP(t,{env:e}){let r=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return t.replace(r,(...o)=>{let{variableName:a,colon:n,fallback:u}=o[o.length-1],A=Object.hasOwn(e,a),p=e[a];if(p||A&&!n)return p;if(u!=null)return u;throw new st(`Environment variable not found (${a})`)})}function QI(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function yne(t){return typeof t>"u"?t:QI(t)}function AL(t){try{return yne(t)}catch{return null}}function kZe(t){return!!(ue.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}function Ene(t,...e){let r=u=>({value:u}),o=r(t),a=e.map(u=>r(u)),{value:n}=(0,lne.default)(o,...a,(u,A)=>{if(Array.isArray(u)&&Array.isArray(A)){for(let p of A)u.find(h=>(0,ane.default)(h,p))||u.push(p);return u}});return n}function QZe(...t){return Ene({},...t)}function FZe(t,e){let r=Object.create(null);for(let o of t){let a=o[e];r[a]??=[],r[a].push(o)}return r}function Qm(t){return typeof t=="string"?Number.parseInt(t,10):t}var ane,lne,cne,une,Ane,lL,fne,pne,sL,oL,aL,SI,one,mne,ql=Et(()=>{Pt();qt();ane=Ze(Vte()),lne=Ze(sne()),cne=Ze($o()),une=Ze(eg()),Ane=Ze(Jn()),lL=ve("stream");fne=Symbol();ol.skip=fne;pne=Symbol();zp.skip=pne;sL=class extends lL.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(r),a(null,null)}_flush(r){r(null,Buffer.concat(this.chunks))}};oL=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,une.default)(e)}set(e,r){let o=this.deferred.get(e);typeof o>"u"&&this.deferred.set(e,o=hne());let a=this.limit(()=>r());return this.promises.set(e,a),a.then(()=>{this.promises.get(e)===a&&o.resolve()},n=>{this.promises.get(e)===a&&o.reject(n)}),o.promise}reduce(e,r){let o=this.promises.get(e)??Promise.resolve();this.set(e,()=>r(o))}async wait(){await Promise.all(this.promises.values())}},aL=class extends lL.Transform{constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,a(null,r)}_flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}},SI=eval("require");one=new Map;mne=(o=>(o[o.NoCache=0]="NoCache",o[o.FsTime=1]="FsTime",o[o.Node=2]="Node",o))(mne||{})});var Fm,fL,pL,Cne=Et(()=>{Fm=(r=>(r.HARD="HARD",r.SOFT="SOFT",r))(Fm||{}),fL=(o=>(o.Dependency="Dependency",o.PeerDependency="PeerDependency",o.PeerDependencyMeta="PeerDependencyMeta",o))(fL||{}),pL=(o=>(o.Inactive="inactive",o.Redundant="redundant",o.Active="active",o))(pL||{})});var pe={};Vt(pe,{LogLevel:()=>JP,Style:()=>KP,Type:()=>yt,addLogFilterSupport:()=>TI,applyColor:()=>Xs,applyHyperlink:()=>Tm,applyStyle:()=>fg,json:()=>pg,jsonOrPretty:()=>NZe,mark:()=>yL,pretty:()=>Ot,prettyField:()=>Xu,prettyList:()=>mL,prettyTruncatedLocatorList:()=>zP,stripAnsi:()=>Rm.default,supportsColor:()=>VP,supportsHyperlinks:()=>dL,tuple:()=>Hc});function wne(t){let e=["KiB","MiB","GiB","TiB"],r=e.length;for(;r>1&&t<1024**r;)r-=1;let o=1024**r;return`${Math.floor(t*100/o)/100} ${e[r-1]}`}function Hc(t,e){return[e,t]}function fg(t,e,r){return t.get("enableColors")&&r&2&&(e=RI.default.bold(e)),e}function Xs(t,e,r){if(!t.get("enableColors"))return e;let o=RZe.get(r);if(o===null)return e;let a=typeof o>"u"?r:gL.level>=3?o[0]:o[1],n=typeof a=="number"?hL.ansi256(a):a.startsWith("#")?hL.hex(a):hL[a];if(typeof n!="function")throw new Error(`Invalid format type ${a}`);return n(e)}function Tm(t,e,r){return t.get("enableHyperlinks")?TZe?`\x1B]8;;${r}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${e}\x1B]8;;\x07`:e}function Ot(t,e,r){if(e===null)return Xs(t,"null",yt.NULL);if(Object.hasOwn(WP,r))return WP[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Xs(t,e,r)}function mL(t,e,r,{separator:o=", "}={}){return[...e].map(a=>Ot(t,a,r)).join(o)}function pg(t,e){if(t===null)return null;if(Object.hasOwn(WP,e))return WP[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function NZe(t,e,[r,o]){return t?pg(r,o):Ot(e,r,o)}function yL(t){return{Check:Xs(t,"\u2713","green"),Cross:Xs(t,"\u2718","red"),Question:Xs(t,"?","cyan")}}function Xu(t,{label:e,value:[r,o]}){return`${Ot(t,e,yt.CODE)}: ${Ot(t,r,o)}`}function zP(t,e,r){let o=[],a=[...e],n=r;for(;a.length>0;){let h=a[0],E=`${qr(t,h)}, `,I=EL(h).length+2;if(o.length>0&&nh).join("").slice(0,-2);let u="X".repeat(a.length.toString().length),A=`and ${u} more.`,p=a.length;for(;o.length>1&&nh).join(""),A.replace(u,Ot(t,p,yt.NUMBER))].join("")}function TI(t,{configuration:e}){let r=e.get("logFilters"),o=new Map,a=new Map,n=[];for(let I of r){let v=I.get("level");if(typeof v>"u")continue;let x=I.get("code");typeof x<"u"&&o.set(x,v);let C=I.get("text");typeof C<"u"&&a.set(C,v);let R=I.get("pattern");typeof R<"u"&&n.push([Ine.default.matcher(R,{contains:!0}),v])}n.reverse();let u=(I,v,x)=>{if(I===null||I===0)return x;let C=a.size>0||n.length>0?(0,Rm.default)(v):v;if(a.size>0){let R=a.get(C);if(typeof R<"u")return R??x}if(n.length>0){for(let[R,L]of n)if(R(C))return L??x}if(o.size>0){let R=o.get(Ku(I));if(typeof R<"u")return R??x}return x},A=t.reportInfo,p=t.reportWarning,h=t.reportError,E=function(I,v,x,C){switch(u(v,x,C)){case"info":A.call(I,v,x);break;case"warning":p.call(I,v??0,x);break;case"error":h.call(I,v??0,x);break}};t.reportInfo=function(...I){return E(this,...I,"info")},t.reportWarning=function(...I){return E(this,...I,"warning")},t.reportError=function(...I){return E(this,...I,"error")}}var RI,FI,Ine,Rm,Bne,yt,KP,gL,VP,dL,hL,RZe,bo,WP,TZe,JP,jl=Et(()=>{Pt();RI=Ze(pN()),FI=Ze(X0());qt();Ine=Ze($o()),Rm=Ze(BP()),Bne=ve("util");$D();So();yt={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"},KP=(e=>(e[e.BOLD=2]="BOLD",e))(KP||{}),gL=FI.default.GITHUB_ACTIONS?{level:2}:RI.default.supportsColor?{level:RI.default.supportsColor.level}:{level:0},VP=gL.level!==0,dL=VP&&!FI.default.GITHUB_ACTIONS&&!FI.default.CIRCLE&&!FI.default.GITLAB,hL=new RI.default.Instance(gL),RZe=new Map([[yt.NO_HINT,null],[yt.NULL,["#a853b5",129]],[yt.SCOPE,["#d75f00",166]],[yt.NAME,["#d7875f",173]],[yt.RANGE,["#00afaf",37]],[yt.REFERENCE,["#87afff",111]],[yt.NUMBER,["#ffd700",220]],[yt.PATH,["#d75fd7",170]],[yt.URL,["#d75fd7",170]],[yt.ADDED,["#5faf00",70]],[yt.REMOVED,["#ff3131",160]],[yt.CODE,["#87afff",111]],[yt.SIZE,["#ffd700",220]]]),bo=t=>t;WP={[yt.ID]:bo({pretty:(t,e)=>typeof e=="number"?Xs(t,`${e}`,yt.NUMBER):Xs(t,e,yt.CODE),json:t=>t}),[yt.INSPECT]:bo({pretty:(t,e)=>(0,Bne.inspect)(e,{depth:1/0,colors:t.get("enableColors"),compact:!0,breakLength:1/0}),json:t=>t}),[yt.NUMBER]:bo({pretty:(t,e)=>Xs(t,`${e}`,yt.NUMBER),json:t=>t}),[yt.IDENT]:bo({pretty:(t,e)=>Oi(t,e),json:t=>rn(t)}),[yt.LOCATOR]:bo({pretty:(t,e)=>qr(t,e),json:t=>ka(t)}),[yt.DESCRIPTOR]:bo({pretty:(t,e)=>jn(t,e),json:t=>xa(t)}),[yt.RESOLUTION]:bo({pretty:(t,{descriptor:e,locator:r})=>NI(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:xa(t),locator:e!==null?ka(e):null})}),[yt.DEPENDENT]:bo({pretty:(t,{locator:e,descriptor:r})=>CL(t,e,r),json:({locator:t,descriptor:e})=>({locator:ka(t),descriptor:xa(e)})}),[yt.PACKAGE_EXTENSION]:bo({pretty:(t,e)=>{switch(e.type){case"Dependency":return`${Oi(t,e.parentDescriptor)} \u27A4 ${Xs(t,"dependencies",yt.CODE)} \u27A4 ${Oi(t,e.descriptor)}`;case"PeerDependency":return`${Oi(t,e.parentDescriptor)} \u27A4 ${Xs(t,"peerDependencies",yt.CODE)} \u27A4 ${Oi(t,e.descriptor)}`;case"PeerDependencyMeta":return`${Oi(t,e.parentDescriptor)} \u27A4 ${Xs(t,"peerDependenciesMeta",yt.CODE)} \u27A4 ${Oi(t,ea(e.selector))} \u27A4 ${Xs(t,e.key,yt.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case"Dependency":return`${rn(t.parentDescriptor)} > ${rn(t.descriptor)}`;case"PeerDependency":return`${rn(t.parentDescriptor)} >> ${rn(t.descriptor)}`;case"PeerDependencyMeta":return`${rn(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[yt.SETTING]:bo({pretty:(t,e)=>(t.get(e),Tm(t,Xs(t,e,yt.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[yt.DURATION]:bo({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),o=Math.ceil((e-r*60*1e3)/1e3);return o===0?`${r}m`:`${r}m ${o}s`}else{let r=Math.floor(e/1e3),o=e-r*1e3;return o===0?`${r}s`:`${r}s ${o}ms`}},json:t=>t}),[yt.SIZE]:bo({pretty:(t,e)=>Xs(t,wne(e),yt.NUMBER),json:t=>t}),[yt.SIZE_DIFF]:bo({pretty:(t,e)=>{let r=e>=0?"+":"-",o=r==="+"?yt.REMOVED:yt.ADDED;return Xs(t,`${r} ${wne(Math.max(Math.abs(e),1))}`,o)},json:t=>t}),[yt.PATH]:bo({pretty:(t,e)=>Xs(t,ue.fromPortablePath(e),yt.PATH),json:t=>ue.fromPortablePath(t)}),[yt.MARKDOWN]:bo({pretty:(t,{text:e,format:r,paragraphs:o})=>Do(e,{format:r,paragraphs:o}),json:({text:t})=>t}),[yt.MARKDOWN_INLINE]:bo({pretty:(t,e)=>(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(r,o,a)=>Ot(t,o+a+o,yt.CODE)),e=e.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,o,a)=>fg(t,a,2)),e),json:t=>t})};TZe=!!process.env.KONSOLE_VERSION;JP=(a=>(a.Error="error",a.Warning="warning",a.Info="info",a.Discard="discard",a))(JP||{})});var vne=_(Nm=>{"use strict";Object.defineProperty(Nm,"__esModule",{value:!0});Nm.splitWhen=Nm.flatten=void 0;function LZe(t){return t.reduce((e,r)=>[].concat(e,r),[])}Nm.flatten=LZe;function MZe(t,e){let r=[[]],o=0;for(let a of t)e(a)?(o++,r[o]=[]):r[o].push(a);return r}Nm.splitWhen=MZe});var Dne=_(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});XP.isEnoentCodeError=void 0;function OZe(t){return t.code==="ENOENT"}XP.isEnoentCodeError=OZe});var Pne=_(ZP=>{"use strict";Object.defineProperty(ZP,"__esModule",{value:!0});ZP.createDirentFromStats=void 0;var wL=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function UZe(t,e){return new wL(t,e)}ZP.createDirentFromStats=UZe});var kne=_(Vi=>{"use strict";Object.defineProperty(Vi,"__esModule",{value:!0});Vi.convertPosixPathToPattern=Vi.convertWindowsPathToPattern=Vi.convertPathToPattern=Vi.escapePosixPath=Vi.escapeWindowsPath=Vi.escape=Vi.removeLeadingDotSegment=Vi.makeAbsolute=Vi.unixify=void 0;var _Ze=ve("os"),HZe=ve("path"),bne=_Ze.platform()==="win32",qZe=2,jZe=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,GZe=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,YZe=/^\\\\([.?])/,WZe=/\\(?![!()+@[\]{}])/g;function KZe(t){return t.replace(/\\/g,"/")}Vi.unixify=KZe;function VZe(t,e){return HZe.resolve(t,e)}Vi.makeAbsolute=VZe;function zZe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(qZe)}return t}Vi.removeLeadingDotSegment=zZe;Vi.escape=bne?IL:BL;function IL(t){return t.replace(GZe,"\\$2")}Vi.escapeWindowsPath=IL;function BL(t){return t.replace(jZe,"\\$2")}Vi.escapePosixPath=BL;Vi.convertPathToPattern=bne?Sne:xne;function Sne(t){return IL(t).replace(YZe,"//$1").replace(WZe,"/")}Vi.convertWindowsPathToPattern=Sne;function xne(t){return BL(t)}Vi.convertPosixPathToPattern=xne});var Fne=_((TTt,Qne)=>{Qne.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var Nne=_((NTt,Tne)=>{var JZe=Fne(),Rne={"{":"}","(":")","[":"]"},XZe=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,o=-2,a=-2,n=-2,u=-2;ee&&(u===-1||u>o||(u=t.indexOf("\\",e),u===-1||u>o)))||a!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(a=t.indexOf("}",e),a>e&&(u=t.indexOf("\\",e),u===-1||u>a))||n!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(n=t.indexOf(")",e),n>e&&(u=t.indexOf("\\",e),u===-1||u>n))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(rr&&(u=t.indexOf("\\",r),u===-1||u>n))))return!0;if(t[e]==="\\"){var A=t[e+1];e+=2;var p=Rne[A];if(p){var h=t.indexOf(p,e);h!==-1&&(e=h+1)}if(t[e]==="!")return!0}else e++}return!1},ZZe=function(t){if(t[0]==="!")return!0;for(var e=0;e{"use strict";var $Ze=Nne(),e$e=ve("path").posix.dirname,t$e=ve("os").platform()==="win32",vL="/",r$e=/\\/g,n$e=/[\{\[].*[\}\]]$/,i$e=/(^|[^\\])([\{\[]|\([^\)]+$)/,s$e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;Lne.exports=function(e,r){var o=Object.assign({flipBackslashes:!0},r);o.flipBackslashes&&t$e&&e.indexOf(vL)<0&&(e=e.replace(r$e,vL)),n$e.test(e)&&(e+=vL),e+="a";do e=e$e(e);while($Ze(e)||i$e.test(e));return e.replace(s$e,"$1")}});var Yne=_(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.removeDuplicateSlashes=Nr.matchAny=Nr.convertPatternsToRe=Nr.makeRe=Nr.getPatternParts=Nr.expandBraceExpansion=Nr.expandPatternsWithBraceExpansion=Nr.isAffectDepthOfReadingPattern=Nr.endsWithSlashGlobStar=Nr.hasGlobStar=Nr.getBaseDirectory=Nr.isPatternRelatedToParentDirectory=Nr.getPatternsOutsideCurrentDirectory=Nr.getPatternsInsideCurrentDirectory=Nr.getPositivePatterns=Nr.getNegativePatterns=Nr.isPositivePattern=Nr.isNegativePattern=Nr.convertToNegativePattern=Nr.convertToPositivePattern=Nr.isDynamicPattern=Nr.isStaticPattern=void 0;var o$e=ve("path"),a$e=Mne(),DL=$o(),One="**",l$e="\\",c$e=/[*?]|^!/,u$e=/\[[^[]*]/,A$e=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,f$e=/[!*+?@]\([^(]*\)/,p$e=/,|\.\./,h$e=/(?!^)\/{2,}/g;function Une(t,e={}){return!_ne(t,e)}Nr.isStaticPattern=Une;function _ne(t,e={}){return t===""?!1:!!(e.caseSensitiveMatch===!1||t.includes(l$e)||c$e.test(t)||u$e.test(t)||A$e.test(t)||e.extglob!==!1&&f$e.test(t)||e.braceExpansion!==!1&&g$e(t))}Nr.isDynamicPattern=_ne;function g$e(t){let e=t.indexOf("{");if(e===-1)return!1;let r=t.indexOf("}",e+1);if(r===-1)return!1;let o=t.slice(e,r);return p$e.test(o)}function d$e(t){return $P(t)?t.slice(1):t}Nr.convertToPositivePattern=d$e;function m$e(t){return"!"+t}Nr.convertToNegativePattern=m$e;function $P(t){return t.startsWith("!")&&t[1]!=="("}Nr.isNegativePattern=$P;function Hne(t){return!$P(t)}Nr.isPositivePattern=Hne;function y$e(t){return t.filter($P)}Nr.getNegativePatterns=y$e;function E$e(t){return t.filter(Hne)}Nr.getPositivePatterns=E$e;function C$e(t){return t.filter(e=>!PL(e))}Nr.getPatternsInsideCurrentDirectory=C$e;function w$e(t){return t.filter(PL)}Nr.getPatternsOutsideCurrentDirectory=w$e;function PL(t){return t.startsWith("..")||t.startsWith("./..")}Nr.isPatternRelatedToParentDirectory=PL;function I$e(t){return a$e(t,{flipBackslashes:!1})}Nr.getBaseDirectory=I$e;function B$e(t){return t.includes(One)}Nr.hasGlobStar=B$e;function qne(t){return t.endsWith("/"+One)}Nr.endsWithSlashGlobStar=qne;function v$e(t){let e=o$e.basename(t);return qne(t)||Une(e)}Nr.isAffectDepthOfReadingPattern=v$e;function D$e(t){return t.reduce((e,r)=>e.concat(jne(r)),[])}Nr.expandPatternsWithBraceExpansion=D$e;function jne(t){let e=DL.braces(t,{expand:!0,nodupes:!0,keepEscaping:!0});return e.sort((r,o)=>r.length-o.length),e.filter(r=>r!=="")}Nr.expandBraceExpansion=jne;function P$e(t,e){let{parts:r}=DL.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.length===0&&(r=[t]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}Nr.getPatternParts=P$e;function Gne(t,e){return DL.makeRe(t,e)}Nr.makeRe=Gne;function b$e(t,e){return t.map(r=>Gne(r,e))}Nr.convertPatternsToRe=b$e;function S$e(t,e){return e.some(r=>r.test(t))}Nr.matchAny=S$e;function x$e(t){return t.replace(h$e,"/")}Nr.removeDuplicateSlashes=x$e});var zne=_((OTt,Vne)=>{"use strict";var k$e=ve("stream"),Wne=k$e.PassThrough,Q$e=Array.prototype.slice;Vne.exports=F$e;function F$e(){let t=[],e=Q$e.call(arguments),r=!1,o=e[e.length-1];o&&!Array.isArray(o)&&o.pipe==null?e.pop():o={};let a=o.end!==!1,n=o.pipeError===!0;o.objectMode==null&&(o.objectMode=!0),o.highWaterMark==null&&(o.highWaterMark=64*1024);let u=Wne(o);function A(){for(let E=0,I=arguments.length;E0||(r=!1,p())}function x(C){function R(){C.removeListener("merge2UnpipeEnd",R),C.removeListener("end",R),n&&C.removeListener("error",L),v()}function L(U){u.emit("error",U)}if(C._readableState.endEmitted)return v();C.on("merge2UnpipeEnd",R),C.on("end",R),n&&C.on("error",L),C.pipe(u,{end:!1}),C.resume()}for(let C=0;C{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.merge=void 0;var R$e=zne();function T$e(t){let e=R$e(t);return t.forEach(r=>{r.once("error",o=>e.emit("error",o))}),e.once("close",()=>Jne(t)),e.once("end",()=>Jne(t)),e}eb.merge=T$e;function Jne(t){t.forEach(e=>e.emit("close"))}});var Zne=_(Lm=>{"use strict";Object.defineProperty(Lm,"__esModule",{value:!0});Lm.isEmpty=Lm.isString=void 0;function N$e(t){return typeof t=="string"}Lm.isString=N$e;function L$e(t){return t===""}Lm.isEmpty=L$e});var Df=_(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.string=xo.stream=xo.pattern=xo.path=xo.fs=xo.errno=xo.array=void 0;var M$e=vne();xo.array=M$e;var O$e=Dne();xo.errno=O$e;var U$e=Pne();xo.fs=U$e;var _$e=kne();xo.path=_$e;var H$e=Yne();xo.pattern=H$e;var q$e=Xne();xo.stream=q$e;var j$e=Zne();xo.string=j$e});var rie=_(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.convertPatternGroupToTask=ko.convertPatternGroupsToTasks=ko.groupPatternsByBaseDirectory=ko.getNegativePatternsAsPositive=ko.getPositivePatterns=ko.convertPatternsToTasks=ko.generate=void 0;var qc=Df();function G$e(t,e){let r=$ne(t,e),o=$ne(e.ignore,e),a=eie(r),n=tie(r,o),u=a.filter(E=>qc.pattern.isStaticPattern(E,e)),A=a.filter(E=>qc.pattern.isDynamicPattern(E,e)),p=bL(u,n,!1),h=bL(A,n,!0);return p.concat(h)}ko.generate=G$e;function $ne(t,e){let r=t;return e.braceExpansion&&(r=qc.pattern.expandPatternsWithBraceExpansion(r)),e.baseNameMatch&&(r=r.map(o=>o.includes("/")?o:`**/${o}`)),r.map(o=>qc.pattern.removeDuplicateSlashes(o))}function bL(t,e,r){let o=[],a=qc.pattern.getPatternsOutsideCurrentDirectory(t),n=qc.pattern.getPatternsInsideCurrentDirectory(t),u=SL(a),A=SL(n);return o.push(...xL(u,e,r)),"."in A?o.push(kL(".",n,e,r)):o.push(...xL(A,e,r)),o}ko.convertPatternsToTasks=bL;function eie(t){return qc.pattern.getPositivePatterns(t)}ko.getPositivePatterns=eie;function tie(t,e){return qc.pattern.getNegativePatterns(t).concat(e).map(qc.pattern.convertToPositivePattern)}ko.getNegativePatternsAsPositive=tie;function SL(t){let e={};return t.reduce((r,o)=>{let a=qc.pattern.getBaseDirectory(o);return a in r?r[a].push(o):r[a]=[o],r},e)}ko.groupPatternsByBaseDirectory=SL;function xL(t,e,r){return Object.keys(t).map(o=>kL(o,t[o],e,r))}ko.convertPatternGroupsToTasks=xL;function kL(t,e,r,o){return{dynamic:o,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(qc.pattern.convertToNegativePattern))}}ko.convertPatternGroupToTask=kL});var iie=_(tb=>{"use strict";Object.defineProperty(tb,"__esModule",{value:!0});tb.read=void 0;function Y$e(t,e,r){e.fs.lstat(t,(o,a)=>{if(o!==null){nie(r,o);return}if(!a.isSymbolicLink()||!e.followSymbolicLink){QL(r,a);return}e.fs.stat(t,(n,u)=>{if(n!==null){if(e.throwErrorOnBrokenSymbolicLink){nie(r,n);return}QL(r,a);return}e.markSymbolicLink&&(u.isSymbolicLink=()=>!0),QL(r,u)})})}tb.read=Y$e;function nie(t,e){t(e)}function QL(t,e){t(null,e)}});var sie=_(rb=>{"use strict";Object.defineProperty(rb,"__esModule",{value:!0});rb.read=void 0;function W$e(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let o=e.fs.statSync(t);return e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),o}catch(o){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw o}}rb.read=W$e});var oie=_(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});Jp.createFileSystemAdapter=Jp.FILE_SYSTEM_ADAPTER=void 0;var nb=ve("fs");Jp.FILE_SYSTEM_ADAPTER={lstat:nb.lstat,stat:nb.stat,lstatSync:nb.lstatSync,statSync:nb.statSync};function K$e(t){return t===void 0?Jp.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},Jp.FILE_SYSTEM_ADAPTER),t)}Jp.createFileSystemAdapter=K$e});var aie=_(RL=>{"use strict";Object.defineProperty(RL,"__esModule",{value:!0});var V$e=oie(),FL=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=V$e.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e??r}};RL.default=FL});var hg=_(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.statSync=Xp.stat=Xp.Settings=void 0;var lie=iie(),z$e=sie(),TL=aie();Xp.Settings=TL.default;function J$e(t,e,r){if(typeof e=="function"){lie.read(t,NL(),e);return}lie.read(t,NL(e),r)}Xp.stat=J$e;function X$e(t,e){let r=NL(e);return z$e.read(t,r)}Xp.statSync=X$e;function NL(t={}){return t instanceof TL.default?t:new TL.default(t)}});var Aie=_((VTt,uie)=>{var cie;uie.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window<"u"?window:global):t=>(cie||(cie=Promise.resolve())).then(t).catch(e=>setTimeout(()=>{throw e},0))});var pie=_((zTt,fie)=>{fie.exports=$$e;var Z$e=Aie();function $$e(t,e){let r,o,a,n=!0;Array.isArray(t)?(r=[],o=t.length):(a=Object.keys(t),r={},o=a.length);function u(p){function h(){e&&e(p,r),e=null}n?Z$e(h):h()}function A(p,h,E){r[p]=E,(--o===0||h)&&u(h)}o?a?a.forEach(function(p){t[p](function(h,E){A(p,h,E)})}):t.forEach(function(p,h){p(function(E,I){A(h,E,I)})}):u(null),n=!1}});var LL=_(sb=>{"use strict";Object.defineProperty(sb,"__esModule",{value:!0});sb.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var ib=process.versions.node.split(".");if(ib[0]===void 0||ib[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var hie=Number.parseInt(ib[0],10),eet=Number.parseInt(ib[1],10),gie=10,tet=10,ret=hie>gie,net=hie===gie&&eet>=tet;sb.IS_SUPPORT_READDIR_WITH_FILE_TYPES=ret||net});var die=_(ob=>{"use strict";Object.defineProperty(ob,"__esModule",{value:!0});ob.createDirentFromStats=void 0;var ML=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function iet(t,e){return new ML(t,e)}ob.createDirentFromStats=iet});var OL=_(ab=>{"use strict";Object.defineProperty(ab,"__esModule",{value:!0});ab.fs=void 0;var set=die();ab.fs=set});var UL=_(lb=>{"use strict";Object.defineProperty(lb,"__esModule",{value:!0});lb.joinPathSegments=void 0;function oet(t,e,r){return t.endsWith(r)?t+e:t+r+e}lb.joinPathSegments=oet});var Iie=_(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});Zp.readdir=Zp.readdirWithFileTypes=Zp.read=void 0;var aet=hg(),mie=pie(),cet=LL(),yie=OL(),Eie=UL();function uet(t,e,r){if(!e.stats&&cet.IS_SUPPORT_READDIR_WITH_FILE_TYPES){Cie(t,e,r);return}wie(t,e,r)}Zp.read=uet;function Cie(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(o,a)=>{if(o!==null){ub(r,o);return}let n=a.map(A=>({dirent:A,name:A.name,path:Eie.joinPathSegments(t,A.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){_L(r,n);return}let u=n.map(A=>Aet(A,e));mie(u,(A,p)=>{if(A!==null){ub(r,A);return}_L(r,p)})})}Zp.readdirWithFileTypes=Cie;function Aet(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(o,a)=>{if(o!==null){if(e.throwErrorOnBrokenSymbolicLink){r(o);return}r(null,t);return}t.dirent=yie.fs.createDirentFromStats(t.name,a),r(null,t)})}}function wie(t,e,r){e.fs.readdir(t,(o,a)=>{if(o!==null){ub(r,o);return}let n=a.map(u=>{let A=Eie.joinPathSegments(t,u,e.pathSegmentSeparator);return p=>{aet.stat(A,e.fsStatSettings,(h,E)=>{if(h!==null){p(h);return}let I={name:u,path:A,dirent:yie.fs.createDirentFromStats(u,E)};e.stats&&(I.stats=E),p(null,I)})}});mie(n,(u,A)=>{if(u!==null){ub(r,u);return}_L(r,A)})})}Zp.readdir=wie;function ub(t,e){t(e)}function _L(t,e){t(null,e)}});var bie=_($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});$p.readdir=$p.readdirWithFileTypes=$p.read=void 0;var fet=hg(),pet=LL(),Bie=OL(),vie=UL();function het(t,e){return!e.stats&&pet.IS_SUPPORT_READDIR_WITH_FILE_TYPES?Die(t,e):Pie(t,e)}$p.read=het;function Die(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(o=>{let a={dirent:o,name:o.name,path:vie.joinPathSegments(t,o.name,e.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let n=e.fs.statSync(a.path);a.dirent=Bie.fs.createDirentFromStats(a.name,n)}catch(n){if(e.throwErrorOnBrokenSymbolicLink)throw n}return a})}$p.readdirWithFileTypes=Die;function Pie(t,e){return e.fs.readdirSync(t).map(o=>{let a=vie.joinPathSegments(t,o,e.pathSegmentSeparator),n=fet.statSync(a,e.fsStatSettings),u={name:o,path:a,dirent:Bie.fs.createDirentFromStats(o,n)};return e.stats&&(u.stats=n),u})}$p.readdir=Pie});var Sie=_(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});eh.createFileSystemAdapter=eh.FILE_SYSTEM_ADAPTER=void 0;var Mm=ve("fs");eh.FILE_SYSTEM_ADAPTER={lstat:Mm.lstat,stat:Mm.stat,lstatSync:Mm.lstatSync,statSync:Mm.statSync,readdir:Mm.readdir,readdirSync:Mm.readdirSync};function get(t){return t===void 0?eh.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},eh.FILE_SYSTEM_ADAPTER),t)}eh.createFileSystemAdapter=get});var xie=_(qL=>{"use strict";Object.defineProperty(qL,"__esModule",{value:!0});var det=ve("path"),met=hg(),yet=Sie(),HL=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=yet.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,det.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new met.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};qL.default=HL});var Ab=_(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});th.Settings=th.scandirSync=th.scandir=void 0;var kie=Iie(),Eet=bie(),jL=xie();th.Settings=jL.default;function Cet(t,e,r){if(typeof e=="function"){kie.read(t,YL(),e);return}kie.read(t,YL(e),r)}th.scandir=Cet;function wet(t,e){let r=YL(e);return Eet.read(t,r)}th.scandirSync=wet;function YL(t={}){return t instanceof jL.default?t:new jL.default(t)}});var Fie=_((sNt,Qie)=>{"use strict";function Iet(t){var e=new t,r=e;function o(){var n=e;return n.next?e=n.next:(e=new t,r=e),n.next=null,n}function a(n){r.next=n,r=n}return{get:o,release:a}}Qie.exports=Iet});var Tie=_((oNt,WL)=>{"use strict";var Bet=Fie();function Rie(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),!(r>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var o=Bet(vet),a=null,n=null,u=0,A=null,p={push:R,drain:Gl,saturated:Gl,pause:E,paused:!1,get concurrency(){return r},set concurrency(le){if(!(le>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(r=le,!p.paused)for(;a&&u=r||p.paused?n?(n.next=Ce,n=Ce):(a=Ce,n=Ce,p.saturated()):(u++,e.call(t,Ce.value,Ce.worked))}function L(le,ce){var Ce=o.get();Ce.context=t,Ce.release=U,Ce.value=le,Ce.callback=ce||Gl,Ce.errorHandler=A,u>=r||p.paused?a?(Ce.next=a,a=Ce):(a=Ce,n=Ce,p.saturated()):(u++,e.call(t,Ce.value,Ce.worked))}function U(le){le&&o.release(le);var ce=a;ce&&u<=r?p.paused?u--:(n===a&&(n=null),a=ce.next,ce.next=null,e.call(t,ce.value,ce.worked),n===null&&p.empty()):--u===0&&p.drain()}function z(){a=null,n=null,p.drain=Gl}function te(){a=null,n=null,p.drain(),p.drain=Gl}function ae(le){A=le}}function Gl(){}function vet(){this.value=null,this.callback=Gl,this.next=null,this.release=Gl,this.context=null,this.errorHandler=null;var t=this;this.worked=function(r,o){var a=t.callback,n=t.errorHandler,u=t.value;t.value=null,t.callback=Gl,t.errorHandler&&n(r,u),a.call(t.context,r,o),t.release(t)}}function Det(t,e,r){typeof t=="function"&&(r=e,e=t,t=null);function o(E,I){e.call(this,E).then(function(v){I(null,v)},I)}var a=Rie(t,o,r),n=a.push,u=a.unshift;return a.push=A,a.unshift=p,a.drained=h,a;function A(E){var I=new Promise(function(v,x){n(E,function(C,R){if(C){x(C);return}v(R)})});return I.catch(Gl),I}function p(E){var I=new Promise(function(v,x){u(E,function(C,R){if(C){x(C);return}v(R)})});return I.catch(Gl),I}function h(){if(a.idle())return new Promise(function(v){v()});var E=a.drain,I=new Promise(function(v){a.drain=function(){E(),v()}});return I}}WL.exports=Rie;WL.exports.promise=Det});var fb=_(Zu=>{"use strict";Object.defineProperty(Zu,"__esModule",{value:!0});Zu.joinPathSegments=Zu.replacePathSegmentSeparator=Zu.isAppliedFilter=Zu.isFatalError=void 0;function Pet(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}Zu.isFatalError=Pet;function bet(t,e){return t===null||t(e)}Zu.isAppliedFilter=bet;function xet(t,e){return t.split(/[/\\]/).join(e)}Zu.replacePathSegmentSeparator=xet;function ket(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}Zu.joinPathSegments=ket});var zL=_(VL=>{"use strict";Object.defineProperty(VL,"__esModule",{value:!0});var Qet=fb(),KL=class{constructor(e,r){this._root=e,this._settings=r,this._root=Qet.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};VL.default=KL});var ZL=_(XL=>{"use strict";Object.defineProperty(XL,"__esModule",{value:!0});var Fet=ve("events"),Ret=Ab(),Tet=Tie(),pb=fb(),Net=zL(),JL=class extends Net.default{constructor(e,r){super(e,r),this._settings=r,this._scandir=Ret.scandir,this._emitter=new Fet.EventEmitter,this._queue=Tet(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let o={directory:e,base:r};this._queue.push(o,a=>{a!==null&&this._handleError(a)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(o,a)=>{if(o!==null){r(o,void 0);return}for(let n of a)this._handleEntry(n,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!pb.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let o=e.path;r!==void 0&&(e.path=pb.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),pb.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&pb.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};XL.default=JL});var Nie=_(eM=>{"use strict";Object.defineProperty(eM,"__esModule",{value:!0});var Let=ZL(),$L=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Let.default(this._root,this._settings),this._storage=[]}read(e){this._reader.onError(r=>{Met(e,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{Oet(e,this._storage)}),this._reader.read()}};eM.default=$L;function Met(t,e){t(e)}function Oet(t,e){t(null,e)}});var Lie=_(rM=>{"use strict";Object.defineProperty(rM,"__esModule",{value:!0});var Uet=ve("stream"),_et=ZL(),tM=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new _et.default(this._root,this._settings),this._stream=new Uet.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};rM.default=tM});var Mie=_(iM=>{"use strict";Object.defineProperty(iM,"__esModule",{value:!0});var Het=Ab(),hb=fb(),qet=zL(),nM=class extends qet.default{constructor(){super(...arguments),this._scandir=Het.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let o=this._scandir(e,this._settings.fsScandirSettings);for(let a of o)this._handleEntry(a,r)}catch(o){this._handleError(o)}}_handleError(e){if(hb.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let o=e.path;r!==void 0&&(e.path=hb.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),hb.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&hb.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_pushToStorage(e){this._storage.push(e)}};iM.default=nM});var Oie=_(oM=>{"use strict";Object.defineProperty(oM,"__esModule",{value:!0});var jet=Mie(),sM=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new jet.default(this._root,this._settings)}read(){return this._reader.read()}};oM.default=sM});var Uie=_(lM=>{"use strict";Object.defineProperty(lM,"__esModule",{value:!0});var Get=ve("path"),Yet=Ab(),aM=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,Get.sep),this.fsScandirSettings=new Yet.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};lM.default=aM});var db=_($u=>{"use strict";Object.defineProperty($u,"__esModule",{value:!0});$u.Settings=$u.walkStream=$u.walkSync=$u.walk=void 0;var _ie=Nie(),Wet=Lie(),Ket=Oie(),cM=Uie();$u.Settings=cM.default;function Vet(t,e,r){if(typeof e=="function"){new _ie.default(t,gb()).read(e);return}new _ie.default(t,gb(e)).read(r)}$u.walk=Vet;function zet(t,e){let r=gb(e);return new Ket.default(t,r).read()}$u.walkSync=zet;function Jet(t,e){let r=gb(e);return new Wet.default(t,r).read()}$u.walkStream=Jet;function gb(t={}){return t instanceof cM.default?t:new cM.default(t)}});var mb=_(AM=>{"use strict";Object.defineProperty(AM,"__esModule",{value:!0});var Xet=ve("path"),Zet=hg(),Hie=Df(),uM=class{constructor(e){this._settings=e,this._fsStatSettings=new Zet.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return Xet.resolve(this._settings.cwd,e)}_makeEntry(e,r){let o={name:r,path:r,dirent:Hie.fs.createDirentFromStats(r,e)};return this._settings.stats&&(o.stats=e),o}_isFatalError(e){return!Hie.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};AM.default=uM});var hM=_(pM=>{"use strict";Object.defineProperty(pM,"__esModule",{value:!0});var $et=ve("stream"),ett=hg(),ttt=db(),rtt=mb(),fM=class extends rtt.default{constructor(){super(...arguments),this._walkStream=ttt.walkStream,this._stat=ett.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let o=e.map(this._getFullEntryPath,this),a=new $et.PassThrough({objectMode:!0});a._write=(n,u,A)=>this._getEntry(o[n],e[n],r).then(p=>{p!==null&&r.entryFilter(p)&&a.push(p),n===o.length-1&&a.end(),A()}).catch(A);for(let n=0;nthis._makeEntry(a,r)).catch(a=>{if(o.errorFilter(a))return null;throw a})}_getStat(e){return new Promise((r,o)=>{this._stat(e,this._fsStatSettings,(a,n)=>a===null?r(n):o(a))})}};pM.default=fM});var qie=_(dM=>{"use strict";Object.defineProperty(dM,"__esModule",{value:!0});var ntt=db(),itt=mb(),stt=hM(),gM=class extends itt.default{constructor(){super(...arguments),this._walkAsync=ntt.walk,this._readerStream=new stt.default(this._settings)}dynamic(e,r){return new Promise((o,a)=>{this._walkAsync(e,r,(n,u)=>{n===null?o(u):a(n)})})}async static(e,r){let o=[],a=this._readerStream.static(e,r);return new Promise((n,u)=>{a.once("error",u),a.on("data",A=>o.push(A)),a.once("end",()=>n(o))})}};dM.default=gM});var jie=_(yM=>{"use strict";Object.defineProperty(yM,"__esModule",{value:!0});var LI=Df(),mM=class{constructor(e,r,o){this._patterns=e,this._settings=r,this._micromatchOptions=o,this._storage=[],this._fillStorage()}_fillStorage(){for(let e of this._patterns){let r=this._getPatternSegments(e),o=this._splitSegmentsIntoSections(r);this._storage.push({complete:o.length<=1,pattern:e,segments:r,sections:o})}}_getPatternSegments(e){return LI.pattern.getPatternParts(e,this._micromatchOptions).map(o=>LI.pattern.isDynamicPattern(o,this._settings)?{dynamic:!0,pattern:o,patternRe:LI.pattern.makeRe(o,this._micromatchOptions)}:{dynamic:!1,pattern:o})}_splitSegmentsIntoSections(e){return LI.array.splitWhen(e,r=>r.dynamic&&LI.pattern.hasGlobStar(r.pattern))}};yM.default=mM});var Gie=_(CM=>{"use strict";Object.defineProperty(CM,"__esModule",{value:!0});var ott=jie(),EM=class extends ott.default{match(e){let r=e.split("/"),o=r.length,a=this._storage.filter(n=>!n.complete||n.segments.length>o);for(let n of a){let u=n.sections[0];if(!n.complete&&o>u.length||r.every((p,h)=>{let E=n.segments[h];return!!(E.dynamic&&E.patternRe.test(p)||!E.dynamic&&E.pattern===p)}))return!0}return!1}};CM.default=EM});var Yie=_(IM=>{"use strict";Object.defineProperty(IM,"__esModule",{value:!0});var yb=Df(),att=Gie(),wM=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,o){let a=this._getMatcher(r),n=this._getNegativePatternsRe(o);return u=>this._filter(e,u,a,n)}_getMatcher(e){return new att.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(yb.pattern.isAffectDepthOfReadingPattern);return yb.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,o,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymbolicLink(r))return!1;let n=yb.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(n,o)?!1:this._isSkippedByNegativePatterns(n,a)}_isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntryLevel(e,r)>=this._settings.deep}_getEntryLevel(e,r){let o=r.split("/").length;if(e==="")return o;let a=e.split("/").length;return o-a}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!yb.pattern.matchAny(e,r)}};IM.default=wM});var Wie=_(vM=>{"use strict";Object.defineProperty(vM,"__esModule",{value:!0});var gg=Df(),BM=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let o=gg.pattern.convertPatternsToRe(e,this._micromatchOptions),a=gg.pattern.convertPatternsToRe(r,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}));return n=>this._filter(n,o,a)}_filter(e,r,o){let a=gg.path.removeLeadingDotSegment(e.path);if(this._settings.unique&&this._isDuplicateEntry(a)||this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(a,o))return!1;let n=e.dirent.isDirectory(),u=this._isMatchToPatterns(a,r,n)&&!this._isMatchToPatterns(a,o,n);return this._settings.unique&&u&&this._createIndexRecord(a),u}_isDuplicateEntry(e){return this.index.has(e)}_createIndexRecord(e){this.index.set(e,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let o=gg.path.makeAbsolute(this._settings.cwd,e);return gg.pattern.matchAny(o,r)}_isMatchToPatterns(e,r,o){let a=gg.pattern.matchAny(e,r);return!a&&o?gg.pattern.matchAny(e+"/",r):a}};vM.default=BM});var Kie=_(PM=>{"use strict";Object.defineProperty(PM,"__esModule",{value:!0});var ltt=Df(),DM=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return ltt.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};PM.default=DM});var zie=_(SM=>{"use strict";Object.defineProperty(SM,"__esModule",{value:!0});var Vie=Df(),bM=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=Vie.path.makeAbsolute(this._settings.cwd,r),r=Vie.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};SM.default=bM});var Eb=_(kM=>{"use strict";Object.defineProperty(kM,"__esModule",{value:!0});var ctt=ve("path"),utt=Yie(),Att=Wie(),ftt=Kie(),ptt=zie(),xM=class{constructor(e){this._settings=e,this.errorFilter=new ftt.default(this._settings),this.entryFilter=new Att.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new utt.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new ptt.default(this._settings)}_getRootDirectory(e){return ctt.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};kM.default=xM});var Jie=_(FM=>{"use strict";Object.defineProperty(FM,"__esModule",{value:!0});var htt=qie(),gtt=Eb(),QM=class extends gtt.default{constructor(){super(...arguments),this._reader=new htt.default(this._settings)}async read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return(await this.api(r,e,o)).map(n=>o.transform(n))}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};FM.default=QM});var Xie=_(TM=>{"use strict";Object.defineProperty(TM,"__esModule",{value:!0});var dtt=ve("stream"),mtt=hM(),ytt=Eb(),RM=class extends ytt.default{constructor(){super(...arguments),this._reader=new mtt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e),a=this.api(r,e,o),n=new dtt.Readable({objectMode:!0,read:()=>{}});return a.once("error",u=>n.emit("error",u)).on("data",u=>n.emit("data",o.transform(u))).once("end",()=>n.emit("end")),n.once("close",()=>a.destroy()),n}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};TM.default=RM});var Zie=_(LM=>{"use strict";Object.defineProperty(LM,"__esModule",{value:!0});var Ett=hg(),Ctt=db(),wtt=mb(),NM=class extends wtt.default{constructor(){super(...arguments),this._walkSync=Ctt.walkSync,this._statSync=Ett.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let o=[];for(let a of e){let n=this._getFullEntryPath(a),u=this._getEntry(n,a,r);u===null||!r.entryFilter(u)||o.push(u)}return o}_getEntry(e,r,o){try{let a=this._getStat(e);return this._makeEntry(a,r)}catch(a){if(o.errorFilter(a))return null;throw a}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};LM.default=NM});var $ie=_(OM=>{"use strict";Object.defineProperty(OM,"__esModule",{value:!0});var Itt=Zie(),Btt=Eb(),MM=class extends Btt.default{constructor(){super(...arguments),this._reader=new Itt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return this.api(r,e,o).map(o.transform)}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};OM.default=MM});var ese=_(Um=>{"use strict";Object.defineProperty(Um,"__esModule",{value:!0});Um.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var Om=ve("fs"),vtt=ve("os"),Dtt=Math.max(vtt.cpus().length,1);Um.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Om.lstat,lstatSync:Om.lstatSync,stat:Om.stat,statSync:Om.statSync,readdir:Om.readdir,readdirSync:Om.readdirSync};var UM=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,Dtt),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},Um.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};Um.default=UM});var Cb=_((QNt,rse)=>{"use strict";var tse=rie(),Ptt=Jie(),btt=Xie(),Stt=$ie(),_M=ese(),Yl=Df();async function HM(t,e){jc(t);let r=qM(t,Ptt.default,e),o=await Promise.all(r);return Yl.array.flatten(o)}(function(t){t.glob=t,t.globSync=e,t.globStream=r,t.async=t;function e(h,E){jc(h);let I=qM(h,Stt.default,E);return Yl.array.flatten(I)}t.sync=e;function r(h,E){jc(h);let I=qM(h,btt.default,E);return Yl.stream.merge(I)}t.stream=r;function o(h,E){jc(h);let I=[].concat(h),v=new _M.default(E);return tse.generate(I,v)}t.generateTasks=o;function a(h,E){jc(h);let I=new _M.default(E);return Yl.pattern.isDynamicPattern(h,I)}t.isDynamicPattern=a;function n(h){return jc(h),Yl.path.escape(h)}t.escapePath=n;function u(h){return jc(h),Yl.path.convertPathToPattern(h)}t.convertPathToPattern=u;let A;(function(h){function E(v){return jc(v),Yl.path.escapePosixPath(v)}h.escapePath=E;function I(v){return jc(v),Yl.path.convertPosixPathToPattern(v)}h.convertPathToPattern=I})(A=t.posix||(t.posix={}));let p;(function(h){function E(v){return jc(v),Yl.path.escapeWindowsPath(v)}h.escapePath=E;function I(v){return jc(v),Yl.path.convertWindowsPathToPattern(v)}h.convertPathToPattern=I})(p=t.win32||(t.win32={}))})(HM||(HM={}));function qM(t,e,r){let o=[].concat(t),a=new _M.default(r),n=tse.generate(o,a),u=new e(a);return n.map(u.read,u)}function jc(t){if(![].concat(t).every(o=>Yl.string.isString(o)&&!Yl.string.isEmpty(o)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}rse.exports=HM});var wn={};Vt(wn,{checksumFile:()=>Ib,checksumPattern:()=>Bb,makeHash:()=>zi});function zi(...t){let e=(0,wb.createHash)("sha512"),r="";for(let o of t)typeof o=="string"?r+=o:o&&(r&&(e.update(r),r=""),e.update(o));return r&&e.update(r),e.digest("hex")}async function Ib(t,{baseFs:e,algorithm:r}={baseFs:oe,algorithm:"sha512"}){let o=await e.openPromise(t,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,wb.createHash)(r),A=0;for(;(A=await e.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await e.closePromise(o)}}async function Bb(t,{cwd:e}){let o=(await(0,jM.default)(t,{cwd:ue.fromPortablePath(e),onlyDirectories:!0})).map(A=>`${A}/**/*`),a=await(0,jM.default)([t,...o],{cwd:ue.fromPortablePath(e),onlyFiles:!1});a.sort();let n=await Promise.all(a.map(async A=>{let p=[Buffer.from(A)],h=V.join(e,ue.toPortablePath(A)),E=await oe.lstatPromise(h);return E.isSymbolicLink()?p.push(Buffer.from(await oe.readlinkPromise(h))):E.isFile()&&p.push(await oe.readFilePromise(h)),p.join("\0")})),u=(0,wb.createHash)("sha512");for(let A of n)u.update(A);return u.digest("hex")}var wb,jM,rh=Et(()=>{Pt();wb=ve("crypto"),jM=Ze(Cb())});var G={};Vt(G,{allPeerRequests:()=>WI,areDescriptorsEqual:()=>ase,areIdentsEqual:()=>HI,areLocatorsEqual:()=>qI,areVirtualPackagesEquivalent:()=>Mtt,bindDescriptor:()=>Ntt,bindLocator:()=>Ltt,convertDescriptorToLocator:()=>vb,convertLocatorToDescriptor:()=>YM,convertPackageToLocator:()=>Ftt,convertToIdent:()=>Qtt,convertToManifestRange:()=>Ktt,copyPackage:()=>OI,devirtualizeDescriptor:()=>UI,devirtualizeLocator:()=>_I,ensureDevirtualizedDescriptor:()=>Rtt,ensureDevirtualizedLocator:()=>Ttt,getIdentVendorPath:()=>zM,isPackageCompatible:()=>xb,isVirtualDescriptor:()=>Pf,isVirtualLocator:()=>Gc,makeDescriptor:()=>In,makeIdent:()=>eA,makeLocator:()=>Rs,makeRange:()=>bb,parseDescriptor:()=>nh,parseFileStyleRange:()=>Ytt,parseIdent:()=>ea,parseLocator:()=>bf,parseRange:()=>dg,prettyDependent:()=>CL,prettyDescriptor:()=>jn,prettyIdent:()=>Oi,prettyLocator:()=>qr,prettyLocatorNoColors:()=>EL,prettyRange:()=>qm,prettyReference:()=>GI,prettyResolution:()=>NI,prettyWorkspace:()=>YI,renamePackage:()=>WM,slugifyIdent:()=>GM,slugifyLocator:()=>Hm,sortDescriptors:()=>jm,stringifyDescriptor:()=>xa,stringifyIdent:()=>rn,stringifyLocator:()=>ka,tryParseDescriptor:()=>jI,tryParseIdent:()=>lse,tryParseLocator:()=>Pb,tryParseRange:()=>Gtt,virtualizeDescriptor:()=>KM,virtualizePackage:()=>VM});function eA(t,e){if(t?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:zi(t,e),scope:t,name:e}}function In(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:zi(t.identHash,e),range:e}}function Rs(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:zi(t.identHash,e),reference:e}}function Qtt(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function vb(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function YM(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function Ftt(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function WM(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function OI(t){return WM(t,t)}function KM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return In(t,`virtual:${e}#${t.range}`)}function VM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return WM(t,Rs(t,`virtual:${e}#${t.reference}`))}function Pf(t){return t.range.startsWith(MI)}function Gc(t){return t.reference.startsWith(MI)}function UI(t){if(!Pf(t))throw new Error("Not a virtual descriptor");return In(t,t.range.replace(Db,""))}function _I(t){if(!Gc(t))throw new Error("Not a virtual descriptor");return Rs(t,t.reference.replace(Db,""))}function Rtt(t){return Pf(t)?In(t,t.range.replace(Db,"")):t}function Ttt(t){return Gc(t)?Rs(t,t.reference.replace(Db,"")):t}function Ntt(t,e){return t.range.includes("::")?t:In(t,`${t.range}::${_m.default.stringify(e)}`)}function Ltt(t,e){return t.reference.includes("::")?t:Rs(t,`${t.reference}::${_m.default.stringify(e)}`)}function HI(t,e){return t.identHash===e.identHash}function ase(t,e){return t.descriptorHash===e.descriptorHash}function qI(t,e){return t.locatorHash===e.locatorHash}function Mtt(t,e){if(!Gc(t))throw new Error("Invalid package type");if(!Gc(e))throw new Error("Invalid package type");if(!HI(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let o=e.dependencies.get(r.identHash);if(!o||!ase(r,o))return!1}return!0}function ea(t){let e=lse(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function lse(t){let e=t.match(Ott);if(!e)return null;let[,r,o]=e;return eA(typeof r<"u"?r:null,o)}function nh(t,e=!1){let r=jI(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function jI(t,e=!1){let r=e?t.match(Utt):t.match(_tt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid range (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return In(eA(u,a),A)}function bf(t,e=!1){let r=Pb(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function Pb(t,e=!1){let r=e?t.match(Htt):t.match(qtt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid reference (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return Rs(eA(u,a),A)}function dg(t,e){let r=t.match(jtt);if(r===null)throw new Error(`Invalid range (${t})`);let o=typeof r[1]<"u"?r[1]:null;if(typeof e?.requireProtocol=="string"&&o!==e.requireProtocol)throw new Error(`Invalid protocol (${o})`);if(e?.requireProtocol&&o===null)throw new Error(`Missing protocol (${o})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(e?.requireSource&&a===null)throw new Error(`Missing source (${t})`);let n=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),u=e?.parseSelector?_m.default.parse(n):n,A=typeof r[4]<"u"?_m.default.parse(r[4]):null;return{protocol:o,source:a,selector:u,params:A}}function Gtt(t,e){try{return dg(t,e)}catch{return null}}function Ytt(t,{protocol:e}){let{selector:r,params:o}=dg(t,{requireProtocol:e,requireBindings:!0});if(typeof o.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:bf(o.locator,!0),path:r}}function nse(t){return t=t.replaceAll("%","%25"),t=t.replaceAll(":","%3A"),t=t.replaceAll("#","%23"),t}function Wtt(t){return t===null?!1:Object.entries(t).length>0}function bb({protocol:t,source:e,selector:r,params:o}){let a="";return t!==null&&(a+=`${t}`),e!==null&&(a+=`${nse(e)}#`),a+=nse(r),Wtt(o)&&(a+=`::${_m.default.stringify(o)}`),a}function Ktt(t){let{params:e,protocol:r,source:o,selector:a}=dg(t);for(let n in e)n.startsWith("__")&&delete e[n];return bb({protocol:r,source:o,params:e,selector:a})}function rn(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function xa(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function ka(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function GM(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function Hm(t){let{protocol:e,selector:r}=dg(t.reference),o=e!==null?e.replace(Vtt,""):"exotic",a=ise.default.valid(r),n=a!==null?`${o}-${a}`:`${o}`,u=10;return t.scope?`${GM(t)}-${n}-${t.locatorHash.slice(0,u)}`:`${GM(t)}-${n}-${t.locatorHash.slice(0,u)}`}function Oi(t,e){return e.scope?`${Ot(t,`@${e.scope}/`,yt.SCOPE)}${Ot(t,e.name,yt.NAME)}`:`${Ot(t,e.name,yt.NAME)}`}function Sb(t){if(t.startsWith(MI)){let e=Sb(t.substring(t.indexOf("#")+1)),r=t.substring(MI.length,MI.length+xtt);return`${e} [${r}]`}else return t.replace(ztt,"?[...]")}function qm(t,e){return`${Ot(t,Sb(e),yt.RANGE)}`}function jn(t,e){return`${Oi(t,e)}${Ot(t,"@",yt.RANGE)}${qm(t,e.range)}`}function GI(t,e){return`${Ot(t,Sb(e),yt.REFERENCE)}`}function qr(t,e){return`${Oi(t,e)}${Ot(t,"@",yt.REFERENCE)}${GI(t,e.reference)}`}function EL(t){return`${rn(t)}@${Sb(t.reference)}`}function jm(t){return Fs(t,[e=>rn(e),e=>e.range])}function YI(t,e){return Oi(t,e.anchoredLocator)}function NI(t,e,r){let o=Pf(e)?UI(e):e;return r===null?`${jn(t,o)} \u2192 ${yL(t).Cross}`:o.identHash===r.identHash?`${jn(t,o)} \u2192 ${GI(t,r.reference)}`:`${jn(t,o)} \u2192 ${qr(t,r)}`}function CL(t,e,r){return r===null?`${qr(t,e)}`:`${qr(t,e)} (via ${qm(t,r.range)})`}function zM(t){return`node_modules/${rn(t)}`}function xb(t,e){return t.conditions?ktt(t.conditions,r=>{let[,o,a]=r.match(ose),n=e[o];return n?n.includes(a):!0}):!0}function WI(t){let e=new Set;if("children"in t)e.add(t);else for(let r of t.requests.values())e.add(r);for(let r of e)for(let o of r.children.values())e.add(o);return e}var _m,ise,sse,MI,xtt,ose,ktt,Db,Ott,Utt,_tt,Htt,qtt,jtt,Vtt,ztt,So=Et(()=>{_m=Ze(ve("querystring")),ise=Ze(Jn()),sse=Ze(eX());jl();rh();ql();So();MI="virtual:",xtt=5,ose=/(os|cpu|libc)=([a-z0-9_-]+)/,ktt=(0,sse.makeParser)(ose);Db=/^[^#]*#/;Ott=/^(?:@([^/]+?)\/)?([^@/]+)$/;Utt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,_tt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;Htt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,qtt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;jtt=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;Vtt=/:$/;ztt=/\?.*/});var cse,use=Et(()=>{So();cse={hooks:{reduceDependency:(t,e,r,o,{resolver:a,resolveOptions:n})=>{for(let{pattern:u,reference:A}of e.topLevelWorkspace.manifest.resolutions){if(u.from&&(u.from.fullName!==rn(r)||e.configuration.normalizeLocator(Rs(ea(u.from.fullName),u.from.description??r.reference)).locatorHash!==r.locatorHash)||u.descriptor.fullName!==rn(t)||e.configuration.normalizeDependency(In(bf(u.descriptor.fullName),u.descriptor.description??t.range)).descriptorHash!==t.descriptorHash)continue;return a.bindDescriptor(e.configuration.normalizeDependency(In(t,A)),e.topLevelWorkspace.anchoredLocator,n)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let o=YI(t.configuration,r);await t.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,n)=>e.reportWarning(a,`${o}: ${n}`),reportError:(a,n)=>e.reportError(a,`${o}: ${n}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let o of r.errors)e.reportWarning(57,o.message)}}}});var ei,mg=Et(()=>{ei=class t{static{this.protocol="workspace:"}supportsDescriptor(e,r){return!!(e.range.startsWith(t.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(t.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[o.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.getWorkspaceByCwd(e.reference.slice(t.protocol.length));return{...e,version:o.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...o.manifest.dependencies,...o.manifest.devDependencies])),peerDependencies:new Map([...o.manifest.peerDependencies]),dependenciesMeta:o.manifest.dependenciesMeta,peerDependenciesMeta:o.manifest.peerDependenciesMeta,bin:o.manifest.bin}}}});var Lr={};Vt(Lr,{SemVer:()=>gse.SemVer,clean:()=>Xtt,getComparator:()=>pse,mergeComparators:()=>JM,satisfiesWithPrereleases:()=>tA,simplifyRanges:()=>XM,stringifyComparator:()=>hse,validRange:()=>Qa});function tA(t,e,r=!1){if(!t)return!1;let o=`${e}${r}`,a=Ase.get(o);if(typeof a>"u")try{a=new Sf.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{Ase.set(o,a||null)}else if(a===null)return!1;let n;try{n=new Sf.default.SemVer(t,a)}catch{return!1}return a.test(n)?!0:(n.prerelease&&(n.prerelease=[]),a.set.some(u=>{for(let A of u)A.semver.prerelease&&(A.semver.prerelease=[]);return u.every(A=>A.test(n))}))}function Qa(t){if(t.indexOf(":")!==-1)return null;let e=fse.get(t);if(typeof e<"u")return e;try{e=new Sf.default.Range(t)}catch{e=null}return fse.set(t,e),e}function Xtt(t){let e=Jtt.exec(t);return e?e[1]:null}function pse(t){if(t.semver===Sf.default.Comparator.ANY)return{gt:null,lt:null};switch(t.operator){case"":return{gt:[">=",t.semver],lt:["<=",t.semver]};case">":case">=":return{gt:[t.operator,t.semver],lt:null};case"<":case"<=":return{gt:null,lt:[t.operator,t.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${t.operator})`)}}function JM(t){if(t.length===0)return null;let e=null,r=null;for(let o of t){if(o.gt){let a=e!==null?Sf.default.compare(o.gt[1],e[1]):null;(a===null||a>0||a===0&&o.gt[0]===">")&&(e=o.gt)}if(o.lt){let a=r!==null?Sf.default.compare(o.lt[1],r[1]):null;(a===null||a<0||a===0&&o.lt[0]==="<")&&(r=o.lt)}}if(e&&r){let o=Sf.default.compare(e[1],r[1]);if(o===0&&(e[0]===">"||r[0]==="<")||o>0)return null}return{gt:e,lt:r}}function hse(t){if(t.gt&&t.lt){if(t.gt[0]===">="&&t.lt[0]==="<="&&t.gt[1].version===t.lt[1].version)return t.gt[1].version;if(t.gt[0]===">="&&t.lt[0]==="<"){if(t.lt[1].version===`${t.gt[1].major+1}.0.0-0`)return`^${t.gt[1].version}`;if(t.lt[1].version===`${t.gt[1].major}.${t.gt[1].minor+1}.0-0`)return`~${t.gt[1].version}`}}let e=[];return t.gt&&e.push(t.gt[0]+t.gt[1].version),t.lt&&e.push(t.lt[0]+t.lt[1].version),e.length?e.join(" "):"*"}function XM(t){let e=t.map(Ztt).map(o=>Qa(o).set.map(a=>a.map(n=>pse(n)))),r=e.shift().map(o=>JM(o)).filter(o=>o!==null);for(let o of e){let a=[];for(let n of r)for(let u of o){let A=JM([n,...u]);A!==null&&a.push(A)}r=a}return r.length===0?null:r.map(o=>hse(o)).join(" || ")}function Ztt(t){let e=t.split("||");if(e.length>1){let r=new Set;for(let o of e)e.some(a=>a!==o&&Sf.default.subset(o,a))||r.add(o);if(r.size{Sf=Ze(Jn()),gse=Ze(Jn()),Ase=new Map;fse=new Map;Jtt=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/});function dse(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function mse(t){return t.charCodeAt(0)===65279?t.slice(1):t}function ta(t){return t.replace(/\\/g,"/")}function kb(t,{yamlCompatibilityMode:e}){return e?AL(t):typeof t>"u"||typeof t=="boolean"?t:null}function yse(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let o=r%2===0?"":"!",a=e.slice(r);return`${o}${t}=${a}`}function ZM(t,e){return e.length===1?yse(t,e[0]):`(${e.map(r=>yse(t,r)).join(" | ")})`}var Ese,Ut,Gm=Et(()=>{Pt();Nl();Ese=Ze(Jn());mg();ql();xf();So();Ut=class t{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static{this.fileName="package.json"}static{this.allDependencies=["dependencies","devDependencies","peerDependencies"]}static{this.hardDependencies=["dependencies","devDependencies"]}static async tryFind(e,{baseFs:r=new Tn}={}){let o=V.join(e,"package.json");try{return await t.fromFile(o,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(e,{baseFs:r}={}){let o=await t.tryFind(e,{baseFs:r});if(o===null)throw new Error("Manifest not found");return o}static async fromFile(e,{baseFs:r=new Tn}={}){let o=new t;return await o.loadFile(e,{baseFs:r}),o}static fromText(e){let r=new t;return r.loadFromText(e),r}loadFromText(e){let r;try{r=JSON.parse(mse(e)||"{}")}catch(o){throw o.message+=` (when parsing ${e})`,o}this.load(r),this.indent=dse(e)}async loadFile(e,{baseFs:r=new Tn}){let o=await r.readFilePromise(e,"utf8"),a;try{a=JSON.parse(mse(o)||"{}")}catch(n){throw n.message+=` (when parsing ${e})`,n}this.load(a),this.indent=dse(o)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let o=[];if(this.name=null,typeof e.name=="string")try{this.name=ea(e.name)}catch{o.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let n=[];this.os=n;for(let u of e.os)typeof u!="string"?o.push(new Error("Parsing failed for the 'os' field")):n.push(u)}else this.os=null;if(Array.isArray(e.cpu)){let n=[];this.cpu=n;for(let u of e.cpu)typeof u!="string"?o.push(new Error("Parsing failed for the 'cpu' field")):n.push(u)}else this.cpu=null;if(Array.isArray(e.libc)){let n=[];this.libc=n;for(let u of e.libc)typeof u!="string"?o.push(new Error("Parsing failed for the 'libc' field")):n.push(u)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=ta(e.main):this.main=null,typeof e.module=="string"?this.module=ta(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=ta(e.browser);else{this.browser=new Map;for(let[n,u]of Object.entries(e.browser))this.browser.set(ta(n),typeof u=="string"?ta(u):u)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?o.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,ta(e.bin)):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[n,u]of Object.entries(e.bin)){if(typeof u!="string"||u.trim()===""){o.push(new Error(`Invalid bin definition for '${n}'`));continue}let A=ea(n);this.bin.set(A.name,ta(u))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[n,u]of Object.entries(e.scripts)){if(typeof u!="string"){o.push(new Error(`Invalid script definition for '${n}'`));continue}this.scripts.set(n,u)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[n,u]of Object.entries(e.dependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=ea(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.dependencies.set(p.identHash,p)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[n,u]of Object.entries(e.devDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=ea(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.devDependencies.set(p.identHash,p)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[n,u]of Object.entries(e.peerDependencies)){let A;try{A=ea(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}(typeof u!="string"||!u.startsWith(ei.protocol)&&!Qa(u))&&(o.push(new Error(`Invalid dependency range for '${n}'`)),u="*");let p=In(A,u);this.peerDependencies.set(p.identHash,p)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&o.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let n of a){if(typeof n!="string"){o.push(new Error(`Invalid workspace definition for '${n}'`));continue}this.workspaceDefinitions.push({pattern:n})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[n,u]of Object.entries(e.dependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}`));continue}let A=nh(n),p=this.ensureDependencyMeta(A),h=kb(u.built,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid built meta field for '${n}'`));continue}let E=kb(u.optional,{yamlCompatibilityMode:r});if(E===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}let I=kb(u.unplugged,{yamlCompatibilityMode:r});if(I===null){o.push(new Error(`Invalid unplugged meta field for '${n}'`));continue}Object.assign(p,{built:h,optional:E,unplugged:I})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[n,u]of Object.entries(e.peerDependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}'`));continue}let A=nh(n),p=this.ensurePeerDependencyMeta(A),h=kb(u.optional,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}Object.assign(p,{optional:h})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[n,u]of Object.entries(e.resolutions)){if(typeof u!="string"){o.push(new Error(`Invalid resolution entry for '${n}'`));continue}try{this.resolutions.push({pattern:BD(n),reference:u})}catch(A){o.push(A);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let n of e.files){if(typeof n!="string"){o.push(new Error(`Invalid files entry for '${n}'`));continue}this.files.add(n)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=ta(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=ta(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=ta(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[n,u]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(ta(n),typeof u=="string"?ta(u):u)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,ta(e.publishConfig.bin)]]):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[n,u]of Object.entries(e.publishConfig.bin)){if(typeof u!="string"){o.push(new Error(`Invalid bin definition for '${n}'`));continue}this.publishConfig.bin.set(n,ta(u))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let n of e.publishConfig.executableFiles){if(typeof n!="string"){o.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(ta(n))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let n of Object.keys(e.installConfig))n==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:o.push(new Error("Invalid hoisting limits definition")):n=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:o.push(new Error("Invalid selfReferences definition, must be a boolean value")):o.push(new Error(`Unrecognized installConfig key: ${n}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[n,u]of Object.entries(e.optionalDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=ea(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.dependencies.set(p.identHash,p);let h=In(A,"unknown"),E=this.ensureDependencyMeta(h);Object.assign(E,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=o}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(ZM("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(ZM("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(ZM("libc",this.libc)),e.length>0?e.join(" & "):null}ensureDependencyMeta(e){if(e.range!=="unknown"&&!Ese.default.valid(e.range))throw new Error(`Invalid meta field range for '${xa(e)}'`);let r=rn(e),o=e.range!=="unknown"?e.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let n=a.get(o);return n||a.set(o,n={}),n}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${xa(e)}'`);let r=rn(e),o=this.peerDependenciesMeta.get(r);return o||this.peerDependenciesMeta.set(r,o={}),o}setRawField(e,r,{after:o=[]}={}){let a=new Set(o.filter(n=>Object.hasOwn(this.raw,n)));if(a.size===0||Object.hasOwn(this.raw,e))this.raw[e]=r;else{let n=this.raw,u=this.raw={},A=!1;for(let p of Object.keys(n))u[p]=n[p],A||(a.delete(p),a.size===0&&(u[e]=r,A=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),this.name!==null?e.name=rn(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let n=this.browser;typeof n=="string"?e.browser=n:n instanceof Map&&(e.browser=Object.assign({},...Array.from(n.keys()).sort().map(u=>({[u]:n.get(u)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(n=>({[n]:this.bin.get(n)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:n})=>n)}:e.workspaces=this.workspaceDefinitions.map(({pattern:n})=>n):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let o=[],a=[];for(let n of this.dependencies.values()){let u=this.dependenciesMeta.get(rn(n)),A=!1;if(r&&u){let p=u.get(null);p&&p.optional&&(A=!0)}A?a.push(n):o.push(n)}o.length>0?e.dependencies=Object.assign({},...jm(o).map(n=>({[rn(n)]:n.range}))):delete e.dependencies,a.length>0?e.optionalDependencies=Object.assign({},...jm(a).map(n=>({[rn(n)]:n.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...jm(this.devDependencies.values()).map(n=>({[rn(n)]:n.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...jm(this.peerDependencies.values()).map(n=>({[rn(n)]:n.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[n,u]of Fs(this.dependenciesMeta.entries(),([A,p])=>A))for(let[A,p]of Fs(u.entries(),([h,E])=>h!==null?`0${h}`:"1")){let h=A!==null?xa(In(ea(n),A)):n,E={...p};r&&A===null&&delete E.optional,Object.keys(E).length!==0&&(e.dependenciesMeta[h]=E)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Fs(this.peerDependenciesMeta.entries(),([n,u])=>n).map(([n,u])=>({[n]:u}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:n,reference:u})=>({[vD(n)]:u}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){e.scripts??={};for(let n of Object.keys(e.scripts))this.scripts.has(n)||delete e.scripts[n];for(let[n,u]of this.scripts.entries())e.scripts[n]=u}else delete e.scripts;return e}}});var wse=_((WNt,Cse)=>{var $tt=_l(),ert=function(){return $tt.Date.now()};Cse.exports=ert});var Bse=_((KNt,Ise)=>{var trt=/\s/;function rrt(t){for(var e=t.length;e--&&trt.test(t.charAt(e)););return e}Ise.exports=rrt});var Dse=_((VNt,vse)=>{var nrt=Bse(),irt=/^\s+/;function srt(t){return t&&t.slice(0,nrt(t)+1).replace(irt,"")}vse.exports=srt});var Ym=_((zNt,Pse)=>{var ort=cg(),art=Ju(),lrt="[object Symbol]";function crt(t){return typeof t=="symbol"||art(t)&&ort(t)==lrt}Pse.exports=crt});var kse=_((JNt,xse)=>{var urt=Dse(),bse=sl(),Art=Ym(),Sse=NaN,frt=/^[-+]0x[0-9a-f]+$/i,prt=/^0b[01]+$/i,hrt=/^0o[0-7]+$/i,grt=parseInt;function drt(t){if(typeof t=="number")return t;if(Art(t))return Sse;if(bse(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=bse(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=urt(t);var r=prt.test(t);return r||hrt.test(t)?grt(t.slice(2),r?2:8):frt.test(t)?Sse:+t}xse.exports=drt});var Rse=_((XNt,Fse)=>{var mrt=sl(),$M=wse(),Qse=kse(),yrt="Expected a function",Ert=Math.max,Crt=Math.min;function wrt(t,e,r){var o,a,n,u,A,p,h=0,E=!1,I=!1,v=!0;if(typeof t!="function")throw new TypeError(yrt);e=Qse(e)||0,mrt(r)&&(E=!!r.leading,I="maxWait"in r,n=I?Ert(Qse(r.maxWait)||0,e):n,v="trailing"in r?!!r.trailing:v);function x(ce){var Ce=o,de=a;return o=a=void 0,h=ce,u=t.apply(de,Ce),u}function C(ce){return h=ce,A=setTimeout(U,e),E?x(ce):u}function R(ce){var Ce=ce-p,de=ce-h,Be=e-Ce;return I?Crt(Be,n-de):Be}function L(ce){var Ce=ce-p,de=ce-h;return p===void 0||Ce>=e||Ce<0||I&&de>=n}function U(){var ce=$M();if(L(ce))return z(ce);A=setTimeout(U,R(ce))}function z(ce){return A=void 0,v&&o?x(ce):(o=a=void 0,u)}function te(){A!==void 0&&clearTimeout(A),h=0,o=p=a=A=void 0}function ae(){return A===void 0?u:z($M())}function le(){var ce=$M(),Ce=L(ce);if(o=arguments,a=this,p=ce,Ce){if(A===void 0)return C(p);if(I)return clearTimeout(A),A=setTimeout(U,e),x(p)}return A===void 0&&(A=setTimeout(U,e)),u}return le.cancel=te,le.flush=ae,le}Fse.exports=wrt});var eO=_((ZNt,Tse)=>{var Irt=Rse(),Brt=sl(),vrt="Expected a function";function Drt(t,e,r){var o=!0,a=!0;if(typeof t!="function")throw new TypeError(vrt);return Brt(r)&&(o="leading"in r?!!r.leading:o,a="trailing"in r?!!r.trailing:a),Irt(t,e,{leading:o,maxWait:e,trailing:a})}Tse.exports=Drt});function brt(t){return typeof t.reportCode<"u"}var Nse,Lse,Mse,Prt,Jt,Zs,Wl=Et(()=>{Nse=Ze(eO()),Lse=ve("stream"),Mse=ve("string_decoder"),Prt=15,Jt=class extends Error{constructor(r,o,a){super(o);this.reportExtra=a;this.reportCode=r}};Zs=class{constructor(){this.cacheHits=new Set;this.cacheMisses=new Set;this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(e){this.cacheHits.add(e.locatorHash)}reportCacheMiss(e,r){this.cacheMisses.add(e.locatorHash)}static progressViaCounter(e){let r=0,o,a=new Promise(p=>{o=p}),n=p=>{let h=o;a=new Promise(E=>{o=E}),r=p,h()},u=(p=0)=>{n(r+1)},A=async function*(){for(;r{r=u}),a=(0,Nse.default)(u=>{let A=r;o=new Promise(p=>{r=p}),e=u,A()},1e3/Prt),n=async function*(){for(;;)await o,yield{title:e}}();return{[Symbol.asyncIterator](){return n},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(e,r){let o=this.reportProgress(e);try{return await r(e)}finally{o.stop()}}startProgressSync(e,r){let o=this.reportProgress(e);try{return r(e)}finally{o.stop()}}reportInfoOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(e,r),o?.reportExtra?.(this))}reportWarningOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(e,r),o?.reportExtra?.(this))}reportErrorOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(e,r),o?.reportExtra?.(this))}reportExceptionOnce(e){brt(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new Lse.PassThrough,o=new Mse.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` +`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var Wm,tO=Et(()=>{Wl();So();Wm=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));return o||null}getFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));if(!o)throw new Jt(11,`${qr(r.project.configuration,e)} isn't supported by any available fetcher`);return o}}});var yg,rO=Et(()=>{So();yg=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.getResolverByDescriptor(e,o).bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,o){return await this.getResolverByDescriptor(e,o).getCandidates(e,r,o)}async getSatisfying(e,r,o,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,o,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));return o||null}getResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!o)throw new Error(`${jn(r.project.configuration,e)} isn't supported by any available resolver`);return o}tryResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));return o||null}getResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));if(!o)throw new Error(`${qr(r.project.configuration,e)} isn't supported by any available resolver`);return o}}});var Km,nO=Et(()=>{Pt();So();Km=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Rs(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Rs(e,a),u=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,u,r)}getLocatorFilename(e){return Hm(e)}async ensureVirtualLink(e,r,o){let a=r.packageFs.getRealPath(),n=o.project.configuration.get("virtualFolder"),u=this.getLocatorFilename(e),A=zs.makeVirtualPath(n,u,a),p=new Hu(A,{baseFs:r.packageFs,pathUtils:V});return{...r,packageFs:p}}}});var Qb,Ose=Et(()=>{Qb=class t{static{this.protocol="virtual:"}static isVirtualDescriptor(e){return!!e.range.startsWith(t.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(t.protocol)}supportsDescriptor(e,r){return t.isVirtualDescriptor(e)}supportsLocator(e,r){return t.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,o){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,o,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}});var Vm,iO=Et(()=>{Pt();mg();Vm=class{supports(e){return!!e.reference.startsWith(ei.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let o=this.getWorkspace(e,r).cwd;return{packageFs:new gn(o),prefixPath:It.dot,localPath:o}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(ei.protocol.length))}}});function KI(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Use(t){return typeof t>"u"?3:KI(t)?0:Array.isArray(t)?1:2}function aO(t,e){return Object.hasOwn(t,e)}function xrt(t){return KI(t)&&aO(t,"onConflict")&&typeof t.onConflict=="string"}function krt(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!xrt(t))return{onConflict:"default",value:t};if(aO(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function _se(t,e){let r=KI(t)&&aO(t,e)?t[e]:void 0;return krt(r)}function zm(t,e){return[t,e,Hse]}function lO(t){return Array.isArray(t)?t[2]===Hse:!1}function sO(t,e){if(KI(t)){let r={};for(let o of Object.keys(t))r[o]=sO(t[o],e);return zm(e,r)}return Array.isArray(t)?zm(e,t.map(r=>sO(r,e))):zm(e,t)}function oO(t,e,r,o,a){let n,u=[],A=a,p=0;for(let E=a-1;E>=o;--E){let[I,v]=t[E],{onConflict:x,value:C}=_se(v,r),R=Use(C);if(R!==3){if(n??=R,R!==n||x==="hardReset"){p=A;break}if(R===2)return zm(I,C);if(u.unshift([I,C]),x==="reset"){p=E;break}x==="extend"&&E===o&&(o=0),A=E}}if(typeof n>"u")return null;let h=u.map(([E])=>E).join(", ");switch(n){case 1:return zm(h,new Array().concat(...u.map(([E,I])=>I.map(v=>sO(v,E)))));case 0:{let E=Object.assign({},...u.map(([,R])=>R)),I=Object.keys(E),v={},x=t.map(([R,L])=>[R,_se(L,r).value]),C=Srt(x,([R,L])=>{let U=Use(L);return U!==0&&U!==3});if(C!==-1){let R=x.slice(C+1);for(let L of I)v[L]=oO(R,e,L,0,R.length)}else for(let R of I)v[R]=oO(x,e,R,p,x.length);return zm(h,v)}default:throw new Error("Assertion failed: Non-extendable value type")}}function qse(t){return oO(t.map(([e,r])=>[e,{".":r}]),[],".",0,t.length)}function VI(t){return lO(t)?t[1]:t}function Fb(t){let e=lO(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>Fb(r));if(KI(e)){let r={};for(let[o,a]of Object.entries(e))r[o]=Fb(a);return r}return e}function cO(t){return lO(t)?t[0]:null}var Srt,Hse,jse=Et(()=>{Srt=(t,e,r)=>{let o=[...t];return o.reverse(),o.findIndex(e,r)};Hse=Symbol()});var Rb={};Vt(Rb,{getDefaultGlobalFolder:()=>AO,getHomeFolder:()=>Jm,isFolderInside:()=>fO});function AO(){if(process.platform==="win32"){let t=ue.toPortablePath(process.env.LOCALAPPDATA||ue.join((0,uO.homedir)(),"AppData","Local"));return V.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=ue.toPortablePath(process.env.XDG_DATA_HOME);return V.resolve(t,"yarn/berry")}return V.resolve(Jm(),".yarn/berry")}function Jm(){return ue.toPortablePath((0,uO.homedir)()||"/usr/local/share")}function fO(t,e){let r=V.relative(e,t);return r&&!r.startsWith("..")&&!V.isAbsolute(r)}var uO,Tb=Et(()=>{Pt();uO=ve("os")});var Kse=_(Xm=>{"use strict";var ALt=ve("net"),Frt=ve("tls"),pO=ve("http"),Gse=ve("https"),Rrt=ve("events"),fLt=ve("assert"),Trt=ve("util");Xm.httpOverHttp=Nrt;Xm.httpsOverHttp=Lrt;Xm.httpOverHttps=Mrt;Xm.httpsOverHttps=Ort;function Nrt(t){var e=new kf(t);return e.request=pO.request,e}function Lrt(t){var e=new kf(t);return e.request=pO.request,e.createSocket=Yse,e.defaultPort=443,e}function Mrt(t){var e=new kf(t);return e.request=Gse.request,e}function Ort(t){var e=new kf(t);return e.request=Gse.request,e.createSocket=Yse,e.defaultPort=443,e}function kf(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||pO.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(o,a,n,u){for(var A=Wse(a,n,u),p=0,h=e.requests.length;p=this.maxSockets){n.requests.push(u);return}n.createSocket(u,function(A){A.on("free",p),A.on("close",h),A.on("agentRemove",h),e.onSocket(A);function p(){n.emit("free",A,u)}function h(E){n.removeSocket(A),A.removeListener("free",p),A.removeListener("close",h),A.removeListener("agentRemove",h)}})};kf.prototype.createSocket=function(e,r){var o=this,a={};o.sockets.push(a);var n=hO({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),ih("making CONNECT request");var u=o.request(n);u.useChunkedEncodingByDefault=!1,u.once("response",A),u.once("upgrade",p),u.once("connect",h),u.once("error",E),u.end();function A(I){I.upgrade=!0}function p(I,v,x){process.nextTick(function(){h(I,v,x)})}function h(I,v,x){if(u.removeAllListeners(),v.removeAllListeners(),I.statusCode!==200){ih("tunneling socket could not be established, statusCode=%d",I.statusCode),v.destroy();var C=new Error("tunneling socket could not be established, statusCode="+I.statusCode);C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}if(x.length>0){ih("got illegal response body from proxy"),v.destroy();var C=new Error("got illegal response body from proxy");C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}return ih("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=v,r(v)}function E(I){u.removeAllListeners(),ih(`tunneling socket could not be established, cause=%s +`,I.message,I.stack);var v=new Error("tunneling socket could not be established, cause="+I.message);v.code="ECONNRESET",e.request.emit("error",v),o.removeSocket(a)}};kf.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var o=this.requests.shift();o&&this.createSocket(o,function(a){o.request.onSocket(a)})}};function Yse(t,e){var r=this;kf.prototype.createSocket.call(r,t,function(o){var a=t.request.getHeader("host"),n=hO({},r.options,{socket:o,servername:a?a.replace(/:.*$/,""):t.host}),u=Frt.connect(0,n);r.sockets[r.sockets.indexOf(o)]=u,e(u)})}function Wse(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function hO(t){for(var e=1,r=arguments.length;e{Vse.exports=Kse()});var Ff=_((Qf,Nb)=>{"use strict";Object.defineProperty(Qf,"__esModule",{value:!0});var Jse=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Urt(t){return Jse.includes(t)}var _rt=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Jse];function Hrt(t){return _rt.includes(t)}var qrt=["null","undefined","string","number","bigint","boolean","symbol"];function jrt(t){return qrt.includes(t)}function Zm(t){return e=>typeof e===t}var{toString:Xse}=Object.prototype,zI=t=>{let e=Xse.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&Pe.domElement(t))return"HTMLElement";if(Hrt(e))return e},Xn=t=>e=>zI(e)===t;function Pe(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Pe.observable(t))return"Observable";if(Pe.array(t))return"Array";if(Pe.buffer(t))return"Buffer";let e=zI(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Pe.undefined=Zm("undefined");Pe.string=Zm("string");var Grt=Zm("number");Pe.number=t=>Grt(t)&&!Pe.nan(t);Pe.bigint=Zm("bigint");Pe.function_=Zm("function");Pe.null_=t=>t===null;Pe.class_=t=>Pe.function_(t)&&t.toString().startsWith("class ");Pe.boolean=t=>t===!0||t===!1;Pe.symbol=Zm("symbol");Pe.numericString=t=>Pe.string(t)&&!Pe.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));Pe.array=(t,e)=>Array.isArray(t)?Pe.function_(e)?t.every(e):!0:!1;Pe.buffer=t=>{var e,r,o,a;return(a=(o=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||o===void 0?void 0:o.call(r,t))!==null&&a!==void 0?a:!1};Pe.blob=t=>Xn("Blob")(t);Pe.nullOrUndefined=t=>Pe.null_(t)||Pe.undefined(t);Pe.object=t=>!Pe.null_(t)&&(typeof t=="object"||Pe.function_(t));Pe.iterable=t=>{var e;return Pe.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};Pe.asyncIterable=t=>{var e;return Pe.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};Pe.generator=t=>{var e,r;return Pe.iterable(t)&&Pe.function_((e=t)===null||e===void 0?void 0:e.next)&&Pe.function_((r=t)===null||r===void 0?void 0:r.throw)};Pe.asyncGenerator=t=>Pe.asyncIterable(t)&&Pe.function_(t.next)&&Pe.function_(t.throw);Pe.nativePromise=t=>Xn("Promise")(t);var Yrt=t=>{var e,r;return Pe.function_((e=t)===null||e===void 0?void 0:e.then)&&Pe.function_((r=t)===null||r===void 0?void 0:r.catch)};Pe.promise=t=>Pe.nativePromise(t)||Yrt(t);Pe.generatorFunction=Xn("GeneratorFunction");Pe.asyncGeneratorFunction=t=>zI(t)==="AsyncGeneratorFunction";Pe.asyncFunction=t=>zI(t)==="AsyncFunction";Pe.boundFunction=t=>Pe.function_(t)&&!t.hasOwnProperty("prototype");Pe.regExp=Xn("RegExp");Pe.date=Xn("Date");Pe.error=Xn("Error");Pe.map=t=>Xn("Map")(t);Pe.set=t=>Xn("Set")(t);Pe.weakMap=t=>Xn("WeakMap")(t);Pe.weakSet=t=>Xn("WeakSet")(t);Pe.int8Array=Xn("Int8Array");Pe.uint8Array=Xn("Uint8Array");Pe.uint8ClampedArray=Xn("Uint8ClampedArray");Pe.int16Array=Xn("Int16Array");Pe.uint16Array=Xn("Uint16Array");Pe.int32Array=Xn("Int32Array");Pe.uint32Array=Xn("Uint32Array");Pe.float32Array=Xn("Float32Array");Pe.float64Array=Xn("Float64Array");Pe.bigInt64Array=Xn("BigInt64Array");Pe.bigUint64Array=Xn("BigUint64Array");Pe.arrayBuffer=Xn("ArrayBuffer");Pe.sharedArrayBuffer=Xn("SharedArrayBuffer");Pe.dataView=Xn("DataView");Pe.enumCase=(t,e)=>Object.values(e).includes(t);Pe.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;Pe.urlInstance=t=>Xn("URL")(t);Pe.urlString=t=>{if(!Pe.string(t))return!1;try{return new URL(t),!0}catch{return!1}};Pe.truthy=t=>!!t;Pe.falsy=t=>!t;Pe.nan=t=>Number.isNaN(t);Pe.primitive=t=>Pe.null_(t)||jrt(typeof t);Pe.integer=t=>Number.isInteger(t);Pe.safeInteger=t=>Number.isSafeInteger(t);Pe.plainObject=t=>{if(Xse.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};Pe.typedArray=t=>Urt(zI(t));var Wrt=t=>Pe.safeInteger(t)&&t>=0;Pe.arrayLike=t=>!Pe.nullOrUndefined(t)&&!Pe.function_(t)&&Wrt(t.length);Pe.inRange=(t,e)=>{if(Pe.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(Pe.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var Krt=1,Vrt=["innerHTML","ownerDocument","style","attributes","nodeValue"];Pe.domElement=t=>Pe.object(t)&&t.nodeType===Krt&&Pe.string(t.nodeName)&&!Pe.plainObject(t)&&Vrt.every(e=>e in t);Pe.observable=t=>{var e,r,o,a;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((a=(o=t)["@@observable"])===null||a===void 0?void 0:a.call(o)):!1};Pe.nodeStream=t=>Pe.object(t)&&Pe.function_(t.pipe)&&!Pe.observable(t);Pe.infinite=t=>t===1/0||t===-1/0;var Zse=t=>e=>Pe.integer(e)&&Math.abs(e%2)===t;Pe.evenInteger=Zse(0);Pe.oddInteger=Zse(1);Pe.emptyArray=t=>Pe.array(t)&&t.length===0;Pe.nonEmptyArray=t=>Pe.array(t)&&t.length>0;Pe.emptyString=t=>Pe.string(t)&&t.length===0;var zrt=t=>Pe.string(t)&&!/\S/.test(t);Pe.emptyStringOrWhitespace=t=>Pe.emptyString(t)||zrt(t);Pe.nonEmptyString=t=>Pe.string(t)&&t.length>0;Pe.nonEmptyStringAndNotWhitespace=t=>Pe.string(t)&&!Pe.emptyStringOrWhitespace(t);Pe.emptyObject=t=>Pe.object(t)&&!Pe.map(t)&&!Pe.set(t)&&Object.keys(t).length===0;Pe.nonEmptyObject=t=>Pe.object(t)&&!Pe.map(t)&&!Pe.set(t)&&Object.keys(t).length>0;Pe.emptySet=t=>Pe.set(t)&&t.size===0;Pe.nonEmptySet=t=>Pe.set(t)&&t.size>0;Pe.emptyMap=t=>Pe.map(t)&&t.size===0;Pe.nonEmptyMap=t=>Pe.map(t)&&t.size>0;Pe.propertyKey=t=>Pe.any([Pe.string,Pe.number,Pe.symbol],t);Pe.formData=t=>Xn("FormData")(t);Pe.urlSearchParams=t=>Xn("URLSearchParams")(t);var $se=(t,e,r)=>{if(!Pe.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};Pe.any=(t,...e)=>(Pe.array(t)?t:[t]).some(o=>$se(Array.prototype.some,o,e));Pe.all=(t,...e)=>$se(Array.prototype.every,t,e);var Mt=(t,e,r,o={})=>{if(!t){let{multipleValues:a}=o,n=a?`received values of types ${[...new Set(r.map(u=>`\`${Pe(u)}\``))].join(", ")}`:`received value of type \`${Pe(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${n}.`)}};Qf.assert={undefined:t=>Mt(Pe.undefined(t),"undefined",t),string:t=>Mt(Pe.string(t),"string",t),number:t=>Mt(Pe.number(t),"number",t),bigint:t=>Mt(Pe.bigint(t),"bigint",t),function_:t=>Mt(Pe.function_(t),"Function",t),null_:t=>Mt(Pe.null_(t),"null",t),class_:t=>Mt(Pe.class_(t),"Class",t),boolean:t=>Mt(Pe.boolean(t),"boolean",t),symbol:t=>Mt(Pe.symbol(t),"symbol",t),numericString:t=>Mt(Pe.numericString(t),"string with a number",t),array:(t,e)=>{Mt(Pe.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>Mt(Pe.buffer(t),"Buffer",t),blob:t=>Mt(Pe.blob(t),"Blob",t),nullOrUndefined:t=>Mt(Pe.nullOrUndefined(t),"null or undefined",t),object:t=>Mt(Pe.object(t),"Object",t),iterable:t=>Mt(Pe.iterable(t),"Iterable",t),asyncIterable:t=>Mt(Pe.asyncIterable(t),"AsyncIterable",t),generator:t=>Mt(Pe.generator(t),"Generator",t),asyncGenerator:t=>Mt(Pe.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>Mt(Pe.nativePromise(t),"native Promise",t),promise:t=>Mt(Pe.promise(t),"Promise",t),generatorFunction:t=>Mt(Pe.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>Mt(Pe.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>Mt(Pe.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>Mt(Pe.boundFunction(t),"Function",t),regExp:t=>Mt(Pe.regExp(t),"RegExp",t),date:t=>Mt(Pe.date(t),"Date",t),error:t=>Mt(Pe.error(t),"Error",t),map:t=>Mt(Pe.map(t),"Map",t),set:t=>Mt(Pe.set(t),"Set",t),weakMap:t=>Mt(Pe.weakMap(t),"WeakMap",t),weakSet:t=>Mt(Pe.weakSet(t),"WeakSet",t),int8Array:t=>Mt(Pe.int8Array(t),"Int8Array",t),uint8Array:t=>Mt(Pe.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>Mt(Pe.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>Mt(Pe.int16Array(t),"Int16Array",t),uint16Array:t=>Mt(Pe.uint16Array(t),"Uint16Array",t),int32Array:t=>Mt(Pe.int32Array(t),"Int32Array",t),uint32Array:t=>Mt(Pe.uint32Array(t),"Uint32Array",t),float32Array:t=>Mt(Pe.float32Array(t),"Float32Array",t),float64Array:t=>Mt(Pe.float64Array(t),"Float64Array",t),bigInt64Array:t=>Mt(Pe.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>Mt(Pe.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>Mt(Pe.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>Mt(Pe.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>Mt(Pe.dataView(t),"DataView",t),enumCase:(t,e)=>Mt(Pe.enumCase(t,e),"EnumCase",t),urlInstance:t=>Mt(Pe.urlInstance(t),"URL",t),urlString:t=>Mt(Pe.urlString(t),"string with a URL",t),truthy:t=>Mt(Pe.truthy(t),"truthy",t),falsy:t=>Mt(Pe.falsy(t),"falsy",t),nan:t=>Mt(Pe.nan(t),"NaN",t),primitive:t=>Mt(Pe.primitive(t),"primitive",t),integer:t=>Mt(Pe.integer(t),"integer",t),safeInteger:t=>Mt(Pe.safeInteger(t),"integer",t),plainObject:t=>Mt(Pe.plainObject(t),"plain object",t),typedArray:t=>Mt(Pe.typedArray(t),"TypedArray",t),arrayLike:t=>Mt(Pe.arrayLike(t),"array-like",t),domElement:t=>Mt(Pe.domElement(t),"HTMLElement",t),observable:t=>Mt(Pe.observable(t),"Observable",t),nodeStream:t=>Mt(Pe.nodeStream(t),"Node.js Stream",t),infinite:t=>Mt(Pe.infinite(t),"infinite number",t),emptyArray:t=>Mt(Pe.emptyArray(t),"empty array",t),nonEmptyArray:t=>Mt(Pe.nonEmptyArray(t),"non-empty array",t),emptyString:t=>Mt(Pe.emptyString(t),"empty string",t),emptyStringOrWhitespace:t=>Mt(Pe.emptyStringOrWhitespace(t),"empty string or whitespace",t),nonEmptyString:t=>Mt(Pe.nonEmptyString(t),"non-empty string",t),nonEmptyStringAndNotWhitespace:t=>Mt(Pe.nonEmptyStringAndNotWhitespace(t),"non-empty string and not whitespace",t),emptyObject:t=>Mt(Pe.emptyObject(t),"empty object",t),nonEmptyObject:t=>Mt(Pe.nonEmptyObject(t),"non-empty object",t),emptySet:t=>Mt(Pe.emptySet(t),"empty set",t),nonEmptySet:t=>Mt(Pe.nonEmptySet(t),"non-empty set",t),emptyMap:t=>Mt(Pe.emptyMap(t),"empty map",t),nonEmptyMap:t=>Mt(Pe.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>Mt(Pe.propertyKey(t),"PropertyKey",t),formData:t=>Mt(Pe.formData(t),"FormData",t),urlSearchParams:t=>Mt(Pe.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>Mt(Pe.evenInteger(t),"even integer",t),oddInteger:t=>Mt(Pe.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>Mt(Pe.directInstanceOf(t,e),"T",t),inRange:(t,e)=>Mt(Pe.inRange(t,e),"in range",t),any:(t,...e)=>Mt(Pe.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>Mt(Pe.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(Pe,{class:{value:Pe.class_},function:{value:Pe.function_},null:{value:Pe.null_}});Object.defineProperties(Qf.assert,{class:{value:Qf.assert.class_},function:{value:Qf.assert.function_},null:{value:Qf.assert.null_}});Qf.default=Pe;Nb.exports=Pe;Nb.exports.default=Pe;Nb.exports.assert=Qf.assert});var eoe=_((gLt,gO)=>{"use strict";var Lb=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Mb=class t{static fn(e){return(...r)=>new t((o,a,n)=>{r.push(n),e(...r).then(o,a)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,o)=>{this._reject=o;let a=A=>{this._isPending=!1,r(A)},n=A=>{this._isPending=!1,o(A)},u=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(u,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),e(a,n,u)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Lb(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Mb.prototype,Promise.prototype);gO.exports=Mb;gO.exports.CancelError=Lb});var toe=_((mO,yO)=>{"use strict";Object.defineProperty(mO,"__esModule",{value:!0});function Jrt(t){return t.encrypted}var dO=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let o=typeof r.connect=="function",a=typeof r.secureConnect=="function",n=typeof r.close=="function",u=()=>{o&&r.connect(),Jrt(t)&&a&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),n&&t.once("close",r.close)};t.writable&&!t.connecting?u():t.connecting?t.once("connect",u):t.destroyed&&n&&r.close(t._hadError)};mO.default=dO;yO.exports=dO;yO.exports.default=dO});var roe=_((CO,wO)=>{"use strict";Object.defineProperty(CO,"__esModule",{value:!0});var Xrt=toe(),Zrt=Number(process.versions.node.split(".")[0]),EO=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=u=>{let A=u.emit.bind(u);u.emit=(p,...h)=>(p==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,u.emit=A),A(p,...h))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||Zrt>=13)&&(e.phases.total=Date.now()-e.start)});let o=u=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let A=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};u.prependOnceListener("lookup",A),Xrt.default(u,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(u.removeListener("lookup",A),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?o(t.socket):t.prependOnceListener("socket",o);let a=()=>{var u;e.upload=Date.now(),e.phases.request=e.upload-(u=e.secureConnect,u??e.connect)};return(typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))?a():t.prependOnceListener("finish",a),t.prependOnceListener("response",u=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,u.timings=e,r(u),u.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};CO.default=EO;wO.exports=EO;wO.exports.default=EO});var coe=_((dLt,vO)=>{"use strict";var{V4MAPPED:$rt,ADDRCONFIG:ent,ALL:loe,promises:{Resolver:noe},lookup:tnt}=ve("dns"),{promisify:IO}=ve("util"),rnt=ve("os"),$m=Symbol("cacheableLookupCreateConnection"),BO=Symbol("cacheableLookupInstance"),ioe=Symbol("expires"),nnt=typeof loe=="number",soe=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},int=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},ooe=()=>{let t=!1,e=!1;for(let r of Object.values(rnt.networkInterfaces()))for(let o of r)if(!o.internal&&(o.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},snt=t=>Symbol.iterator in t,aoe={ttl:!0},ont={all:!0},Ob=class{constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:o=3600,errorTtl:a=.15,resolver:n=new noe,lookup:u=tnt}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=e,this._resolver=n,this._dnsLookup=IO(u),this._resolver instanceof noe?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=IO(this._resolver.resolve4.bind(this._resolver)),this._resolve6=IO(this._resolver.resolve6.bind(this._resolver))),this._iface=ooe(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,o<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},o*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,o){if(typeof r=="function"?(o=r,r={}):typeof r=="number"&&(r={family:r}),!o)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(a=>{r.all?o(null,a):o(null,a.address,a.family,a.expires,a.ttl)},o)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let o=await this.query(e);if(r.family===6){let a=o.filter(n=>n.family===6);r.hints&$rt&&(nnt&&r.hints&loe||a.length===0)?int(o):o=a}else r.family===4&&(o=o.filter(a=>a.family===4));if(r.hints&ent){let{_iface:a}=this;o=o.filter(n=>n.family===6?a.has6:a.has4)}if(o.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${e}`);throw a.code="ENOTFOUND",a.hostname=e,a}return r.all?o:o[0]}async query(e){let r=await this._cache.get(e);if(!r){let o=this._pending[e];if(o)r=await o;else{let a=this.queryAndCache(e);this._pending[e]=a,r=await a}}return r=r.map(o=>({...o})),r}async _resolve(e){let r=async h=>{try{return await h}catch(E){if(E.code==="ENODATA"||E.code==="ENOTFOUND")return[];throw E}},[o,a]=await Promise.all([this._resolve4(e,aoe),this._resolve6(e,aoe)].map(h=>r(h))),n=0,u=0,A=0,p=Date.now();for(let h of o)h.family=4,h.expires=p+h.ttl*1e3,n=Math.max(n,h.ttl);for(let h of a)h.family=6,h.expires=p+h.ttl*1e3,u=Math.max(u,h.ttl);return o.length>0?a.length>0?A=Math.min(n,u):A=n:A=u,{entries:[...o,...a],cacheTtl:A}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,r,o){if(this.maxTtl>0&&o>0){o=Math.min(o,this.maxTtl)*1e3,r[ioe]=Date.now()+o;try{await this._cache.set(e,r,o)}catch(a){this.lookupAsync=async()=>{let n=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw n.cause=a,n}}snt(this._cache)&&this._tick(o)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,ont);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let o=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,o),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e{this._nextRemovalTime=!1;let o=1/0,a=Date.now();for(let[n,u]of this._cache){let A=u[ioe];a>=A?this._cache.delete(n):A("lookup"in r||(r.lookup=this.lookup),e[$m](r,o))}uninstall(e){if(soe(e),e[$m]){if(e[BO]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[$m],delete e[$m],delete e[BO]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=ooe(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};vO.exports=Ob;vO.exports.default=Ob});var foe=_((mLt,DO)=>{"use strict";var ant=typeof URL>"u"?ve("url").URL:URL,lnt="text/plain",cnt="us-ascii",uoe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),unt=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let o=r[1].split(";"),a=r[2],n=e?"":r[3],u=!1;o[o.length-1]==="base64"&&(o.pop(),u=!0);let A=(o.shift()||"").toLowerCase(),h=[...o.map(E=>{let[I,v=""]=E.split("=").map(x=>x.trim());return I==="charset"&&(v=v.toLowerCase(),v===cnt)?"":`${I}${v?`=${v}`:""}`}).filter(Boolean)];return u&&h.push("base64"),(h.length!==0||A&&A!==lnt)&&h.unshift(A),`data:${h.join(";")},${u?a.trim():a}${n?`#${n}`:""}`},Aoe=(t,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return unt(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new ant(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash&&(a.hash=""),a.pathname&&(a.pathname=a.pathname.replace(/((?!:).|^)\/{2,}/g,(n,u)=>/^(?!\/)/g.test(u)?`${u}/`:"/")),a.pathname&&(a.pathname=decodeURI(a.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let n=a.pathname.split("/"),u=n[n.length-1];uoe(u,e.removeDirectoryIndex)&&(n=n.slice(0,n.length-1),a.pathname=n.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let n of[...a.searchParams.keys()])uoe(n,e.removeQueryParameters)&&a.searchParams.delete(n);return e.sortQueryParameters&&a.searchParams.sort(),e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,"")),t=a.toString(),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};DO.exports=Aoe;DO.exports.default=Aoe});var goe=_((yLt,hoe)=>{hoe.exports=poe;function poe(t,e){if(t&&e)return poe(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(o){r[o]=t[o]}),r;function r(){for(var o=new Array(arguments.length),a=0;a{var doe=goe();PO.exports=doe(Ub);PO.exports.strict=doe(moe);Ub.proto=Ub(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Ub(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return moe(this)},configurable:!0})});function Ub(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function moe(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var SO=_((CLt,Eoe)=>{var Ant=bO(),fnt=function(){},pnt=function(t){return t.setHeader&&typeof t.abort=="function"},hnt=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},yoe=function(t,e,r){if(typeof e=="function")return yoe(t,null,e);e||(e={}),r=Ant(r||fnt);var o=t._writableState,a=t._readableState,n=e.readable||e.readable!==!1&&t.readable,u=e.writable||e.writable!==!1&&t.writable,A=function(){t.writable||p()},p=function(){u=!1,n||r.call(t)},h=function(){n=!1,u||r.call(t)},E=function(C){r.call(t,C?new Error("exited with error code: "+C):null)},I=function(C){r.call(t,C)},v=function(){if(n&&!(a&&a.ended))return r.call(t,new Error("premature close"));if(u&&!(o&&o.ended))return r.call(t,new Error("premature close"))},x=function(){t.req.on("finish",p)};return pnt(t)?(t.on("complete",p),t.on("abort",v),t.req?x():t.on("request",x)):u&&!o&&(t.on("end",A),t.on("close",A)),hnt(t)&&t.on("exit",E),t.on("end",h),t.on("finish",p),e.error!==!1&&t.on("error",I),t.on("close",v),function(){t.removeListener("complete",p),t.removeListener("abort",v),t.removeListener("request",x),t.req&&t.req.removeListener("finish",p),t.removeListener("end",A),t.removeListener("close",A),t.removeListener("finish",p),t.removeListener("exit",E),t.removeListener("end",h),t.removeListener("error",I),t.removeListener("close",v)}};Eoe.exports=yoe});var Ioe=_((wLt,woe)=>{var gnt=bO(),dnt=SO(),xO=ve("fs"),JI=function(){},mnt=/^v?\.0/.test(process.version),_b=function(t){return typeof t=="function"},ynt=function(t){return!mnt||!xO?!1:(t instanceof(xO.ReadStream||JI)||t instanceof(xO.WriteStream||JI))&&_b(t.close)},Ent=function(t){return t.setHeader&&_b(t.abort)},Cnt=function(t,e,r,o){o=gnt(o);var a=!1;t.on("close",function(){a=!0}),dnt(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,ynt(t))return t.close(JI);if(Ent(t))return t.abort();if(_b(t.destroy))return t.destroy();o(u||new Error("stream was destroyed"))}}},Coe=function(t){t()},wnt=function(t,e){return t.pipe(e)},Int=function(){var t=Array.prototype.slice.call(arguments),e=_b(t[t.length-1]||JI)&&t.pop()||JI;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,o=t.map(function(a,n){var u=n0;return Cnt(a,u,A,function(p){r||(r=p),p&&o.forEach(Coe),!u&&(o.forEach(Coe),e(r))})});return t.reduce(wnt)};woe.exports=Int});var voe=_((ILt,Boe)=>{"use strict";var{PassThrough:Bnt}=ve("stream");Boe.exports=t=>{t={...t};let{array:e}=t,{encoding:r}=t,o=r==="buffer",a=!1;e?a=!(r||o):r=r||"utf8",o&&(r=null);let n=new Bnt({objectMode:a});r&&n.setEncoding(r);let u=0,A=[];return n.on("data",p=>{A.push(p),a?u=A.length:u+=p.length}),n.getBufferedValue=()=>e?A:o?Buffer.concat(A,u):A.join(""),n.getBufferedLength=()=>u,n}});var Doe=_((BLt,ey)=>{"use strict";var vnt=Ioe(),Dnt=voe(),Hb=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function qb(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:r}=e,o;return await new Promise((a,n)=>{let u=A=>{A&&(A.bufferedData=o.getBufferedValue()),n(A)};o=vnt(t,Dnt(e),A=>{if(A){u(A);return}a()}),o.on("data",()=>{o.getBufferedLength()>r&&u(new Hb)})}),o.getBufferedValue()}ey.exports=qb;ey.exports.default=qb;ey.exports.buffer=(t,e)=>qb(t,{...e,encoding:"buffer"});ey.exports.array=(t,e)=>qb(t,{...e,array:!0});ey.exports.MaxBufferError=Hb});var boe=_((DLt,Poe)=>{"use strict";var Pnt=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),bnt=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Snt=new Set([500,502,503,504]),xnt={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},knt={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Eg(t){let e=parseInt(t,10);return isFinite(e)?e:0}function Qnt(t){return t?Snt.has(t.status):!0}function kO(t){let e={};if(!t)return e;let r=t.trim().split(/,/);for(let o of r){let[a,n]=o.split(/=/,2);e[a.trim()]=n===void 0?!0:n.trim().replace(/^"|"$/g,"")}return e}function Fnt(t){let e=[];for(let r in t){let o=t[r];e.push(o===!0?r:r+"="+o)}if(e.length)return e.join(", ")}Poe.exports=class{constructor(e,r,{shared:o,cacheHeuristic:a,immutableMinTimeToLive:n,ignoreCargoCult:u,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=o!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=n!==void 0?n:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=kO(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=kO(e.headers["cache-control"]),u&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":Fnt(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&bnt.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||Pnt.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=kO(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let o of r)if(e.headers[o]!==this._reqHeaders[o])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let o in e)xnt[o]||(r[o]=e[o]);if(e.connection){let o=e.connection.trim().split(/\s*,\s*/);for(let a of o)delete r[a]}if(r.warning){let o=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));o.length?r.warning=o.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){return Eg(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Eg(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Eg(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let o=Date.parse(this._resHeaders.expires);return Number.isNaN(o)||oo)return Math.max(e,(r-o)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),r=e+Eg(this._rescc["stale-if-error"]),o=e+Eg(this._rescc["stale-while-revalidate"]);return Math.max(0,e,r,o)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Eg(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Eg(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(n=>!/^\s*W\//.test(n));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Qnt(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let o=!1;if(r.status!==void 0&&r.status!=304?o=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?o=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?o=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?o=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(o=!0),!o)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let a={};for(let u in this._resHeaders)a[u]=u in r.headers&&!knt[u]?r.headers[u]:this._resHeaders[u];let n=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(e,n,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var jb=_((PLt,Soe)=>{"use strict";Soe.exports=t=>{let e={};for(let[r,o]of Object.entries(t))e[r.toLowerCase()]=o;return e}});var koe=_((bLt,xoe)=>{"use strict";var Rnt=ve("stream").Readable,Tnt=jb(),QO=class extends Rnt{constructor(e,r,o,a){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(o instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Tnt(r),this.body=o,this.url=a}_read(){this.push(this.body),this.push(null)}};xoe.exports=QO});var Foe=_((SLt,Qoe)=>{"use strict";var Nnt=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];Qoe.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(Nnt));for(let o of r)o in e||(e[o]=typeof t[o]=="function"?t[o].bind(t):t[o])}});var Toe=_((xLt,Roe)=>{"use strict";var Lnt=ve("stream").PassThrough,Mnt=Foe(),Ont=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new Lnt;return Mnt(t,e),t.pipe(e)};Roe.exports=Ont});var Noe=_(FO=>{FO.stringify=function t(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",o=Array.isArray(e);r=o?"[":"{";var a=!0;for(var n in e){var u=typeof e[n]=="function"||!o&&typeof e[n]>"u";Object.hasOwnProperty.call(e,n)&&!u&&(a||(r+=","),a=!1,o?e[n]==null?r+="null":r+=t(e[n]):e[n]!==void 0&&(r+=t(n)+":"+t(e[n])))}return r+=o?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FO.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var Uoe=_((QLt,Ooe)=>{"use strict";var Unt=ve("events"),Loe=Noe(),_nt=t=>{let e={redis:"@keyv/redis",rediss:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql",etcd:"@keyv/etcd",offline:"@keyv/offline",tiered:"@keyv/tiered"};if(t.adapter||t.uri){let r=t.adapter||/^[^:+]*/.exec(t.uri)[0];return new(ve(e[r]))(t)}return new Map},Moe=["sqlite","postgres","mysql","mongo","redis","tiered"],RO=class extends Unt{constructor(e,{emitErrors:r=!0,...o}={}){if(super(),this.opts={namespace:"keyv",serialize:Loe.stringify,deserialize:Loe.parse,...typeof e=="string"?{uri:e}:e,...o},!this.opts.store){let n={...this.opts};this.opts.store=_nt(n)}if(this.opts.compression){let n=this.opts.compression;this.opts.serialize=n.serialize.bind(n),this.opts.deserialize=n.deserialize.bind(n)}typeof this.opts.store.on=="function"&&r&&this.opts.store.on("error",n=>this.emit("error",n)),this.opts.store.namespace=this.opts.namespace;let a=n=>async function*(){for await(let[u,A]of typeof n=="function"?n(this.opts.store.namespace):n){let p=await this.opts.deserialize(A);if(!(this.opts.store.namespace&&!u.includes(this.opts.store.namespace))){if(typeof p.expires=="number"&&Date.now()>p.expires){this.delete(u);continue}yield[this._getKeyUnprefix(u),p.value]}}};typeof this.opts.store[Symbol.iterator]=="function"&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator=="function"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return Moe.includes(this.opts.store.opts.dialect)||Moe.findIndex(e=>this.opts.store.opts.url.includes(e))>=0}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}_getKeyPrefixArray(e){return e.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(e){return e.split(":").splice(1).join(":")}get(e,r){let{store:o}=this.opts,a=Array.isArray(e),n=a?this._getKeyPrefixArray(e):this._getKeyPrefix(e);if(a&&o.getMany===void 0){let u=[];for(let A of n)u.push(Promise.resolve().then(()=>o.get(A)).then(p=>typeof p=="string"?this.opts.deserialize(p):this.opts.compression?this.opts.deserialize(p):p).then(p=>{if(p!=null)return typeof p.expires=="number"&&Date.now()>p.expires?this.delete(A).then(()=>{}):r&&r.raw?p:p.value}));return Promise.allSettled(u).then(A=>{let p=[];for(let h of A)p.push(h.value);return p})}return Promise.resolve().then(()=>a?o.getMany(n):o.get(n)).then(u=>typeof u=="string"?this.opts.deserialize(u):this.opts.compression?this.opts.deserialize(u):u).then(u=>{if(u!=null)return a?u.map((A,p)=>{if(typeof A=="string"&&(A=this.opts.deserialize(A)),A!=null){if(typeof A.expires=="number"&&Date.now()>A.expires){this.delete(e[p]).then(()=>{});return}return r&&r.raw?A:A.value}}):typeof u.expires=="number"&&Date.now()>u.expires?this.delete(e).then(()=>{}):r&&r.raw?u:u.value})}set(e,r,o){let a=this._getKeyPrefix(e);typeof o>"u"&&(o=this.opts.ttl),o===0&&(o=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let u=typeof o=="number"?Date.now()+o:null;return typeof r=="symbol"&&this.emit("error","symbol cannot be serialized"),r={value:r,expires:u},this.opts.serialize(r)}).then(u=>n.set(a,u,o)).then(()=>!0)}delete(e){let{store:r}=this.opts;if(Array.isArray(e)){let a=this._getKeyPrefixArray(e);if(r.deleteMany===void 0){let n=[];for(let u of a)n.push(r.delete(u));return Promise.allSettled(n).then(u=>u.every(A=>A.value===!0))}return Promise.resolve().then(()=>r.deleteMany(a))}let o=this._getKeyPrefix(e);return Promise.resolve().then(()=>r.delete(o))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}has(e){let r=this._getKeyPrefix(e),{store:o}=this.opts;return Promise.resolve().then(async()=>typeof o.has=="function"?o.has(r):await o.get(r)!==void 0)}disconnect(){let{store:e}=this.opts;if(typeof e.disconnect=="function")return e.disconnect()}};Ooe.exports=RO});var qoe=_((RLt,Hoe)=>{"use strict";var Hnt=ve("events"),Gb=ve("url"),qnt=foe(),jnt=Doe(),TO=boe(),_oe=koe(),Gnt=jb(),Ynt=Toe(),Wnt=Uoe(),XI=class t{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Wnt({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,o)=>{let a;if(typeof r=="string")a=NO(Gb.parse(r)),r={};else if(r instanceof Gb.URL)a=NO(Gb.parse(r.toString())),r={};else{let[I,...v]=(r.path||"").split("?"),x=v.length>0?`?${v.join("?")}`:"";a=NO({...r,pathname:I,search:x})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...Knt(a)},r.headers=Gnt(r.headers);let n=new Hnt,u=qnt(Gb.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${u}`,p=!1,h=!1,E=I=>{h=!0;let v=!1,x,C=new Promise(L=>{x=()=>{v||(v=!0,L())}}),R=L=>{if(p&&!I.forceRefresh){L.status=L.statusCode;let z=TO.fromObject(p.cachePolicy).revalidatedPolicy(I,L);if(!z.modified){let te=z.policy.responseHeaders();L=new _oe(p.statusCode,te,p.body,p.url),L.cachePolicy=z.policy,L.fromCache=!0}}L.fromCache||(L.cachePolicy=new TO(I,L,I),L.fromCache=!1);let U;I.cache&&L.cachePolicy.storable()?(U=Ynt(L),(async()=>{try{let z=jnt.buffer(L);if(await Promise.race([C,new Promise(ce=>L.once("end",ce))]),v)return;let te=await z,ae={cachePolicy:L.cachePolicy.toObject(),url:L.url,statusCode:L.fromCache?p.statusCode:L.statusCode,body:te},le=I.strictTtl?L.cachePolicy.timeToLive():void 0;I.maxTtl&&(le=le?Math.min(le,I.maxTtl):I.maxTtl),await this.cache.set(A,ae,le)}catch(z){n.emit("error",new t.CacheError(z))}})()):I.cache&&p&&(async()=>{try{await this.cache.delete(A)}catch(z){n.emit("error",new t.CacheError(z))}})(),n.emit("response",U||L),typeof o=="function"&&o(U||L)};try{let L=e(I,R);L.once("error",x),L.once("abort",x),n.emit("request",L)}catch(L){n.emit("error",new t.RequestError(L))}};return(async()=>{let I=async x=>{await Promise.resolve();let C=x.cache?await this.cache.get(A):void 0;if(typeof C>"u")return E(x);let R=TO.fromObject(C.cachePolicy);if(R.satisfiesWithoutRevalidation(x)&&!x.forceRefresh){let L=R.responseHeaders(),U=new _oe(C.statusCode,L,C.body,C.url);U.cachePolicy=R,U.fromCache=!0,n.emit("response",U),typeof o=="function"&&o(U)}else p=C,x.headers=R.revalidationHeaders(x),E(x)},v=x=>n.emit("error",new t.CacheError(x));this.cache.once("error",v),n.on("response",()=>this.cache.removeListener("error",v));try{await I(r)}catch(x){r.automaticFailover&&!h&&E(r),n.emit("error",new t.CacheError(x))}})(),n}}};function Knt(t){let e={...t};return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function NO(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}XI.RequestError=class extends Error{constructor(t){super(t.message),this.name="RequestError",Object.assign(this,t)}};XI.CacheError=class extends Error{constructor(t){super(t.message),this.name="CacheError",Object.assign(this,t)}};Hoe.exports=XI});var Goe=_((LLt,joe)=>{"use strict";var Vnt=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];joe.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(Vnt)),o={};for(let a of r)a in e||(o[a]={get(){let n=t[a];return typeof n=="function"?n.bind(t):n},set(n){t[a]=n},enumerable:!0,configurable:!1});return Object.defineProperties(e,o),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var Woe=_((MLt,Yoe)=>{"use strict";var{Transform:znt,PassThrough:Jnt}=ve("stream"),LO=ve("zlib"),Xnt=Goe();Yoe.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof LO.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let o=!0,a=new znt({transform(A,p,h){o=!1,h(null,A)},flush(A){A()}}),n=new Jnt({autoDestroy:!1,destroy(A,p){t.destroy(),p(A)}}),u=r?LO.createBrotliDecompress():LO.createUnzip();return u.once("error",A=>{if(o&&!t.readable){n.end();return}n.destroy(A)}),Xnt(t,n),t.pipe(a).pipe(u).pipe(n),n}});var OO=_((OLt,Koe)=>{"use strict";var MO=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[o,a]of this.oldCache.entries())this.onEviction(o,a);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};Koe.exports=MO});var _O=_((ULt,Xoe)=>{"use strict";var Znt=ve("events"),$nt=ve("tls"),eit=ve("http2"),tit=OO(),ra=Symbol("currentStreamsCount"),Voe=Symbol("request"),Kl=Symbol("cachedOriginSet"),ty=Symbol("gracefullyClosing"),rit=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],nit=(t,e,r)=>{let o=0,a=t.length;for(;o>>1;r(t[n],e)?o=n+1:a=n}return o},iit=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UO=(t,e)=>{for(let r of t)r[Kl].lengthe[Kl].includes(o))&&r[ra]+e[ra]<=e.remoteSettings.maxConcurrentStreams&&Joe(r)},sit=(t,e)=>{for(let r of t)e[Kl].lengthr[Kl].includes(o))&&e[ra]+r[ra]<=r.remoteSettings.maxConcurrentStreams&&Joe(e)},zoe=({agent:t,isFree:e})=>{let r={};for(let o in t.sessions){let n=t.sessions[o].filter(u=>{let A=u[Cg.kCurrentStreamsCount]{t[ty]=!0,t[ra]===0&&t.close()},Cg=class t extends Znt{constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:o=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=o,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new tit({maxSize:a})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let o of rit)e[o]&&(r+=`:${e[o]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let o=this.queue[e][r];this._sessionsCount{Array.isArray(o)?(o=[...o],a()):o=[{resolve:a,reject:n}];let u=this.normalizeOptions(r),A=t.normalizeOrigin(e,r&&r.servername);if(A===void 0){for(let{reject:E}of o)E(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(u in this.sessions){let E=this.sessions[u],I=-1,v=-1,x;for(let C of E){let R=C.remoteSettings.maxConcurrentStreams;if(R=R||C[ty]||C.destroyed)continue;x||(I=R),L>v&&(x=C,v=L)}}if(x){if(o.length!==1){for(let{reject:C}of o){let R=new Error(`Expected the length of listeners to be 1, got ${o.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);C(R)}return}o[0].resolve(x);return}}if(u in this.queue){if(A in this.queue[u]){this.queue[u][A].listeners.push(...o),this._tryToCreateNewSession(u,A);return}}else this.queue[u]={};let p=()=>{u in this.queue&&this.queue[u][A]===h&&(delete this.queue[u][A],Object.keys(this.queue[u]).length===0&&delete this.queue[u])},h=()=>{let E=`${A}:${u}`,I=!1;try{let v=eit.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});v[ra]=0,v[ty]=!1;let x=()=>v[ra]{this.tlsSessionCache.set(E,L)}),v.once("error",L=>{for(let{reject:U}of o)U(L);this.tlsSessionCache.delete(E)}),v.setTimeout(this.timeout,()=>{v.destroy()}),v.once("close",()=>{if(I){C&&this._freeSessionsCount--,this._sessionsCount--;let L=this.sessions[u];L.splice(L.indexOf(v),1),L.length===0&&delete this.sessions[u]}else{let L=new Error("Session closed without receiving a SETTINGS frame");L.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:U}of o)U(L);p()}this._tryToCreateNewSession(u,A)});let R=()=>{if(!(!(u in this.queue)||!x())){for(let L of v[Kl])if(L in this.queue[u]){let{listeners:U}=this.queue[u][L];for(;U.length!==0&&x();)U.shift().resolve(v);let z=this.queue[u];if(z[L].listeners.length===0&&(delete z[L],Object.keys(z).length===0)){delete this.queue[u];break}if(!x())break}}};v.on("origin",()=>{v[Kl]=v.originSet,x()&&(R(),UO(this.sessions[u],v))}),v.once("remoteSettings",()=>{if(v.ref(),v.unref(),this._sessionsCount++,h.destroyed){let L=new Error("Agent has been destroyed");for(let U of o)U.reject(L);v.destroy();return}v[Kl]=v.originSet;{let L=this.sessions;if(u in L){let U=L[u];U.splice(nit(U,v,iit),0,v)}else L[u]=[v]}this._freeSessionsCount+=1,I=!0,this.emit("session",v),R(),p(),v[ra]===0&&this._freeSessionsCount>this.maxFreeSessions&&v.close(),o.length!==0&&(this.getSession(A,r,o),o.length=0),v.on("remoteSettings",()=>{R(),UO(this.sessions[u],v)})}),v[Voe]=v.request,v.request=(L,U)=>{if(v[ty])throw new Error("The session is gracefully closing. No new streams are allowed.");let z=v[Voe](L,U);return v.ref(),++v[ra],v[ra]===v.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,z.once("close",()=>{if(C=x(),--v[ra],!v.destroyed&&!v.closed&&(sit(this.sessions[u],v),x()&&!v.closed)){C||(this._freeSessionsCount++,C=!0);let te=v[ra]===0;te&&v.unref(),te&&(this._freeSessionsCount>this.maxFreeSessions||v[ty])?v.close():(UO(this.sessions[u],v),R())}}),z}}catch(v){for(let x of o)x.reject(v);p()}};h.listeners=o,h.completed=!1,h.destroyed=!1,this.queue[u][A]=h,this._tryToCreateNewSession(u,A)})}request(e,r,o,a){return new Promise((n,u)=>{this.getSession(e,r,[{reject:u,resolve:A=>{try{n(A.request(o,a))}catch(p){u(p)}}}])})}createConnection(e,r){return t.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let o=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),$nt.connect(o,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[ra]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let o of r)o.destroy(e);for(let r of Object.values(this.queue))for(let o of Object.values(r))o.destroyed=!0;this.queue={}}get freeSessions(){return zoe({agent:this,isFree:!0})}get busySessions(){return zoe({agent:this,isFree:!1})}};Cg.kCurrentStreamsCount=ra;Cg.kGracefullyClosing=ty;Xoe.exports={Agent:Cg,globalAgent:new Cg}});var qO=_((_Lt,Zoe)=>{"use strict";var{Readable:oit}=ve("stream"),HO=class extends oit{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Zoe.exports=HO});var jO=_((HLt,$oe)=>{"use strict";$oe.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var tae=_((qLt,eae)=>{"use strict";eae.exports=(t,e,r)=>{for(let o of r)t.on(o,(...a)=>e.emit(o,...a))}});var nae=_((jLt,rae)=>{"use strict";rae.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var sae=_((YLt,iae)=>{"use strict";var ry=(t,e,r)=>{iae.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${e}]`,this.code=e}}};ry(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],o=Array.isArray(r);return o&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${o?"one of":"of"} type ${r}. Received ${typeof t[2]}`});ry(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);ry(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);ry(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);ry(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);ry(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var VO=_((WLt,fae)=>{"use strict";var ait=ve("http2"),{Writable:lit}=ve("stream"),{Agent:oae,globalAgent:cit}=_O(),uit=qO(),Ait=jO(),fit=tae(),pit=nae(),{ERR_INVALID_ARG_TYPE:GO,ERR_INVALID_PROTOCOL:hit,ERR_HTTP_HEADERS_SENT:aae,ERR_INVALID_HTTP_TOKEN:git,ERR_HTTP_INVALID_HEADER_VALUE:dit,ERR_INVALID_CHAR:mit}=sae(),{HTTP2_HEADER_STATUS:lae,HTTP2_HEADER_METHOD:cae,HTTP2_HEADER_PATH:uae,HTTP2_METHOD_CONNECT:yit}=ait.constants,Qo=Symbol("headers"),YO=Symbol("origin"),WO=Symbol("session"),Aae=Symbol("options"),Yb=Symbol("flushedHeaders"),ZI=Symbol("jobs"),Eit=/^[\^`\-\w!#$%&*+.|~]+$/,Cit=/[^\t\u0020-\u007E\u0080-\u00FF]/,KO=class extends lit{constructor(e,r,o){super({autoDestroy:!1});let a=typeof e=="string"||e instanceof URL;if(a&&(e=Ait(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(o=r,r=a?e:{...e}):r={...e,...r},r.h2session)this[WO]=r.h2session;else if(r.agent===!1)this.agent=new oae({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new oae({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=cit;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new GO("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new hit(r.protocol,"https:");let n=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,u=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[Qo]=Object.create(null),this[ZI]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[p,h]of Object.entries(r.headers))this.setHeader(p,h);r.auth&&!("authorization"in this[Qo])&&(this[Qo].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[Aae]=r,n===443?(this[YO]=`https://${u}`,":authority"in this[Qo]||(this[Qo][":authority"]=u)):(this[YO]=`https://${u}:${n}`,":authority"in this[Qo]||(this[Qo][":authority"]=`${u}:${n}`)),A&&this.setTimeout(A),o&&this.once("response",o),this[Yb]=!1}get method(){return this[Qo][cae]}set method(e){e&&(this[Qo][cae]=e.toUpperCase())}get path(){return this[Qo][uae]}set path(e){e&&(this[Qo][uae]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,o){if(this._mustNotHaveABody){o(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(e,r,o);this._request?a():this[ZI].push(a)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[ZI].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[Yb]||this.destroyed)return;this[Yb]=!0;let e=this.method===yit,r=o=>{if(this._request=o,this.destroyed){o.destroy();return}e||fit(o,this,["timeout","continue","close","error"]);let a=u=>(...A)=>{!this.writable&&!this.destroyed?u(...A):this.once("finish",()=>{u(...A)})};o.once("response",a((u,A,p)=>{let h=new uit(this.socket,o.readableHighWaterMark);this.res=h,h.req=this,h.statusCode=u[lae],h.headers=u,h.rawHeaders=p,h.once("end",()=>{this.aborted?(h.aborted=!0,h.emit("aborted")):(h.complete=!0,h.socket=null,h.connection=null)}),e?(h.upgrade=!0,this.emit("connect",h,o,Buffer.alloc(0))?this.emit("close"):o.destroy()):(o.on("data",E=>{!h._dumped&&!h.push(E)&&o.pause()}),o.once("end",()=>{h.push(null)}),this.emit("response",h)||h._dump())})),o.once("headers",a(u=>this.emit("information",{statusCode:u[lae]}))),o.once("trailers",a((u,A,p)=>{let{res:h}=this;h.trailers=u,h.rawTrailers=p}));let{socket:n}=o.session;this.socket=n,this.connection=n;for(let u of this[ZI])u();this.emit("socket",this.socket)};if(this[WO])try{r(this[WO].request(this[Qo]))}catch(o){this.emit("error",o)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[YO],this[Aae],this[Qo]))}catch(o){this.emit("error",o)}}}getHeader(e){if(typeof e!="string")throw new GO("name","string",e);return this[Qo][e.toLowerCase()]}get headersSent(){return this[Yb]}removeHeader(e){if(typeof e!="string")throw new GO("name","string",e);if(this.headersSent)throw new aae("remove");delete this[Qo][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new aae("set");if(typeof e!="string"||!Eit.test(e)&&!pit(e))throw new git("Header name",e);if(typeof r>"u")throw new dit(r,e);if(Cit.test(r))throw new mit("header content",e);this[Qo][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let o=()=>this._request.setTimeout(e,r);return this._request?o():this[ZI].push(o),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};fae.exports=KO});var hae=_((KLt,pae)=>{"use strict";var wit=ve("tls");pae.exports=(t={},e=wit.connect)=>new Promise((r,o)=>{let a=!1,n,u=async()=>{await p,n.off("timeout",A),n.off("error",o),t.resolveSocket?(r({alpnProtocol:n.alpnProtocol,socket:n,timeout:a}),a&&(await Promise.resolve(),n.emit("timeout"))):(n.destroy(),r({alpnProtocol:n.alpnProtocol,timeout:a}))},A=async()=>{a=!0,u()},p=(async()=>{try{n=await e(t,u),n.on("error",o),n.once("timeout",A)}catch(h){o(h)}})()})});var dae=_((VLt,gae)=>{"use strict";var Iit=ve("net");gae.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),Iit.isIP(e)?"":e}});var Eae=_((zLt,JO)=>{"use strict";var mae=ve("http"),zO=ve("https"),Bit=hae(),vit=OO(),Dit=VO(),Pit=dae(),bit=jO(),Wb=new vit({maxSize:100}),$I=new Map,yae=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let o=()=>{t.emit("free",e,r)};e.on("free",o);let a=()=>{t.removeSocket(e,r)};e.on("close",a);let n=()=>{t.removeSocket(e,r),e.off("close",a),e.off("free",o),e.off("agentRemove",n)};e.on("agentRemove",n),t.emit("free",e,r)},Sit=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!Wb.has(e)){if($I.has(e))return(await $I.get(e)).alpnProtocol;let{path:r,agent:o}=t;t.path=t.socketPath;let a=Bit(t);$I.set(e,a);try{let{socket:n,alpnProtocol:u}=await a;if(Wb.set(e,u),t.path=r,u==="h2")n.destroy();else{let{globalAgent:A}=zO,p=zO.Agent.prototype.createConnection;o?o.createConnection===p?yae(o,n,t):n.destroy():A.createConnection===p?yae(A,n,t):n.destroy()}return $I.delete(e),u}catch(n){throw $I.delete(e),n}}return Wb.get(e)};JO.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=bit(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...t,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let o=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||Pit(e),e.port=e.port||(o?443:80),e._defaultAgent=o?zO.globalAgent:mae.globalAgent;let a=e.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=a[o?"https":"http"]}return o&&await Sit(e)==="h2"?(a&&(e.agent=a.http2),new Dit(e,r)):mae.request(e,r)};JO.exports.protocolCache=Wb});var wae=_((JLt,Cae)=>{"use strict";var xit=ve("http2"),kit=_O(),XO=VO(),Qit=qO(),Fit=Eae(),Rit=(t,e,r)=>new XO(t,e,r),Tit=(t,e,r)=>{let o=new XO(t,e,r);return o.end(),o};Cae.exports={...xit,ClientRequest:XO,IncomingMessage:Qit,...kit,request:Rit,get:Tit,auto:Fit}});var $O=_(ZO=>{"use strict";Object.defineProperty(ZO,"__esModule",{value:!0});var Iae=Ff();ZO.default=t=>Iae.default.nodeStream(t)&&Iae.default.function_(t.getBoundary)});var Pae=_(e4=>{"use strict";Object.defineProperty(e4,"__esModule",{value:!0});var vae=ve("fs"),Dae=ve("util"),Bae=Ff(),Nit=$O(),Lit=Dae.promisify(vae.stat);e4.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(Bae.default.string(t))return Buffer.byteLength(t);if(Bae.default.buffer(t))return t.length;if(Nit.default(t))return Dae.promisify(t.getLength.bind(t))();if(t instanceof vae.ReadStream){let{size:r}=await Lit(t.path);return r===0?void 0:r}}});var r4=_(t4=>{"use strict";Object.defineProperty(t4,"__esModule",{value:!0});function Mit(t,e,r){let o={};for(let a of r)o[a]=(...n)=>{e.emit(a,...n)},t.on(a,o[a]);return()=>{for(let a of r)t.off(a,o[a])}}t4.default=Mit});var bae=_(n4=>{"use strict";Object.defineProperty(n4,"__esModule",{value:!0});n4.default=()=>{let t=[];return{once(e,r,o){e.once(r,o),t.push({origin:e,event:r,fn:o})},unhandleAll(){for(let e of t){let{origin:r,event:o,fn:a}=e;r.removeListener(o,a)}t.length=0}}}});var xae=_(e1=>{"use strict";Object.defineProperty(e1,"__esModule",{value:!0});e1.TimeoutError=void 0;var Oit=ve("net"),Uit=bae(),Sae=Symbol("reentry"),_it=()=>{},Kb=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};e1.TimeoutError=Kb;e1.default=(t,e,r)=>{if(Sae in t)return _it;t[Sae]=!0;let o=[],{once:a,unhandleAll:n}=Uit.default(),u=(I,v,x)=>{var C;let R=setTimeout(v,I,I,x);(C=R.unref)===null||C===void 0||C.call(R);let L=()=>{clearTimeout(R)};return o.push(L),L},{host:A,hostname:p}=r,h=(I,v)=>{t.destroy(new Kb(I,v))},E=()=>{for(let I of o)I();n()};if(t.once("error",I=>{if(E(),t.listenerCount("error")===0)throw I}),t.once("close",E),a(t,"response",I=>{a(I,"end",E)}),typeof e.request<"u"&&u(e.request,h,"request"),typeof e.socket<"u"){let I=()=>{h(e.socket,"socket")};t.setTimeout(e.socket,I),o.push(()=>{t.removeListener("timeout",I)})}return a(t,"socket",I=>{var v;let{socketPath:x}=t;if(I.connecting){let C=!!(x??Oit.isIP((v=p??A)!==null&&v!==void 0?v:"")!==0);if(typeof e.lookup<"u"&&!C&&typeof I.address().address>"u"){let R=u(e.lookup,h,"lookup");a(I,"lookup",R)}if(typeof e.connect<"u"){let R=()=>u(e.connect,h,"connect");C?a(I,"connect",R()):a(I,"lookup",L=>{L===null&&a(I,"connect",R())})}typeof e.secureConnect<"u"&&r.protocol==="https:"&&a(I,"connect",()=>{let R=u(e.secureConnect,h,"secureConnect");a(I,"secureConnect",R)})}if(typeof e.send<"u"){let C=()=>u(e.send,h,"send");I.connecting?a(I,"connect",()=>{a(t,"upload-complete",C())}):a(t,"upload-complete",C())}}),typeof e.response<"u"&&a(t,"upload-complete",()=>{let I=u(e.response,h,"response");a(t,"response",I)}),E}});var Qae=_(i4=>{"use strict";Object.defineProperty(i4,"__esModule",{value:!0});var kae=Ff();i4.default=t=>{t=t;let e={protocol:t.protocol,hostname:kae.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return kae.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var Fae=_(s4=>{"use strict";Object.defineProperty(s4,"__esModule",{value:!0});var Hit=ve("url"),qit=["protocol","host","hostname","port","pathname","search"];s4.default=(t,e)=>{var r,o;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(o=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&o!==void 0?o:""}`}let a=new Hit.URL(t);if(e.path){let n=e.path.indexOf("?");n===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,n),e.search=e.path.slice(n+1)),delete e.path}for(let n of qit)e[n]&&(a[n]=e[n].toString());return a}});var Rae=_(a4=>{"use strict";Object.defineProperty(a4,"__esModule",{value:!0});var o4=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};a4.default=o4});var c4=_(l4=>{"use strict";Object.defineProperty(l4,"__esModule",{value:!0});var jit=async t=>{let e=[],r=0;for await(let o of t)e.push(o),r+=Buffer.byteLength(o);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};l4.default=jit});var Nae=_(wg=>{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});wg.dnsLookupIpVersionToFamily=wg.isDnsLookupIpVersion=void 0;var Tae={auto:0,ipv4:4,ipv6:6};wg.isDnsLookupIpVersion=t=>t in Tae;wg.dnsLookupIpVersionToFamily=t=>{if(wg.isDnsLookupIpVersion(t))return Tae[t];throw new Error("Invalid DNS lookup IP version")}});var u4=_(Vb=>{"use strict";Object.defineProperty(Vb,"__esModule",{value:!0});Vb.isResponseOk=void 0;Vb.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var Mae=_(A4=>{"use strict";Object.defineProperty(A4,"__esModule",{value:!0});var Lae=new Set;A4.default=t=>{Lae.has(t)||(Lae.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var Oae=_(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});var Ai=Ff(),Git=(t,e)=>{if(Ai.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");Ai.assert.any([Ai.default.string,Ai.default.undefined],t.encoding),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.resolveBodyOnly),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.methodRewriting),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.isStream),Ai.assert.any([Ai.default.string,Ai.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry={...e.retry}:t.retry={calculateDelay:o=>o.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},Ai.default.object(r)?(t.retry={...t.retry,...r},t.retry.methods=[...new Set(t.retry.methods.map(o=>o.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):Ai.default.number(r)&&(t.retry.limit=r),Ai.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(Ai.default.number))),Ai.default.object(t.pagination)){e&&(t.pagination={...e.pagination,...t.pagination});let{pagination:o}=t;if(!Ai.default.function_(o.transform))throw new Error("`options.pagination.transform` must be implemented");if(!Ai.default.function_(o.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!Ai.default.function_(o.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!Ai.default.function_(o.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};f4.default=Git});var Uae=_(t1=>{"use strict";Object.defineProperty(t1,"__esModule",{value:!0});t1.retryAfterStatusCodes=void 0;t1.retryAfterStatusCodes=new Set([413,429,503]);var Yit=({attemptCount:t,retryOptions:e,error:r,retryAfter:o})=>{if(t>e.limit)return 0;let a=e.methods.includes(r.options.method),n=e.errorCodes.includes(r.code),u=r.response&&e.statusCodes.includes(r.response.statusCode);if(!a||!n&&!u)return 0;if(r.response){if(o)return e.maxRetryAfter===void 0||o>e.maxRetryAfter?0:o;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(t-1)*1e3+A};t1.default=Yit});var i1=_(Bn=>{"use strict";Object.defineProperty(Bn,"__esModule",{value:!0});Bn.UnsupportedProtocolError=Bn.ReadError=Bn.TimeoutError=Bn.UploadError=Bn.CacheError=Bn.HTTPError=Bn.MaxRedirectsError=Bn.RequestError=Bn.setNonEnumerableProperties=Bn.knownHookEvents=Bn.withoutBody=Bn.kIsNormalizedAlready=void 0;var _ae=ve("util"),Hae=ve("stream"),Wit=ve("fs"),sh=ve("url"),qae=ve("http"),p4=ve("http"),Kit=ve("https"),Vit=roe(),zit=coe(),jae=qoe(),Jit=Woe(),Xit=wae(),Zit=jb(),ot=Ff(),$it=Pae(),Gae=$O(),est=r4(),Yae=xae(),tst=Qae(),Wae=Fae(),rst=Rae(),nst=c4(),Kae=Nae(),ist=u4(),oh=Mae(),sst=Oae(),ost=Uae(),h4,$s=Symbol("request"),Xb=Symbol("response"),ny=Symbol("responseSize"),iy=Symbol("downloadedSize"),sy=Symbol("bodySize"),oy=Symbol("uploadedSize"),zb=Symbol("serverResponsesPiped"),Vae=Symbol("unproxyEvents"),zae=Symbol("isFromCache"),g4=Symbol("cancelTimeouts"),Jae=Symbol("startedReading"),ay=Symbol("stopReading"),Jb=Symbol("triggerRead"),ah=Symbol("body"),r1=Symbol("jobs"),Xae=Symbol("originalResponse"),Zae=Symbol("retryTimeout");Bn.kIsNormalizedAlready=Symbol("isNormalizedAlready");var ast=ot.default.string(process.versions.brotli);Bn.withoutBody=new Set(["GET","HEAD"]);Bn.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function lst(t){for(let e in t){let r=t[e];if(!ot.default.string(r)&&!ot.default.number(r)&&!ot.default.boolean(r)&&!ot.default.null_(r)&&!ot.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function cst(t){return ot.default.object(t)&&!("statusCode"in t)}var d4=new rst.default,ust=async t=>new Promise((e,r)=>{let o=a=>{r(a)};t.pending||e(),t.once("error",o),t.once("ready",()=>{t.off("error",o),e()})}),Ast=new Set([300,301,302,303,304,307,308]),fst=["context","body","json","form"];Bn.setNonEnumerableProperties=(t,e)=>{let r={};for(let o of t)if(o)for(let a of fst)a in o&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:o[a]});Object.defineProperties(e,r)};var Ji=class extends Error{constructor(e,r,o){var a;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,o instanceof iS?(Object.defineProperty(this,"request",{enumerable:!1,value:o}),Object.defineProperty(this,"response",{enumerable:!1,value:o[Xb]}),Object.defineProperty(this,"options",{enumerable:!1,value:o.options})):Object.defineProperty(this,"options",{enumerable:!1,value:o}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,ot.default.string(r.stack)&&ot.default.string(this.stack)){let n=this.stack.indexOf(this.message)+this.message.length,u=this.stack.slice(n).split(` +`).reverse(),A=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` +`).reverse();for(;A.length!==0&&A[0]===u[0];)u.shift();this.stack=`${this.stack.slice(0,n)}${u.reverse().join(` +`)}${A.reverse().join(` +`)}`}}};Bn.RequestError=Ji;var Zb=class extends Ji{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Bn.MaxRedirectsError=Zb;var $b=class extends Ji{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Bn.HTTPError=$b;var eS=class extends Ji{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};Bn.CacheError=eS;var tS=class extends Ji{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};Bn.UploadError=tS;var rS=class extends Ji{constructor(e,r,o){super(e.message,e,o),this.name="TimeoutError",this.event=e.event,this.timings=r}};Bn.TimeoutError=rS;var n1=class extends Ji{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};Bn.ReadError=n1;var nS=class extends Ji{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Bn.UnsupportedProtocolError=nS;var pst=["socket","connect","continue","information","upgrade","timeout"],iS=class extends Hae.Duplex{constructor(e,r={},o){super({autoDestroy:!1,highWaterMark:0}),this[iy]=0,this[oy]=0,this.requestInitialized=!1,this[zb]=new Set,this.redirects=[],this[ay]=!1,this[Jb]=!1,this[r1]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",h=>{h.prependListener("data",a),h.on("data",n),h.prependListener("end",a),h.on("end",n)}),this.on("unpipe",h=>{h.off("data",a),h.off("data",n),h.off("end",a),h.off("end",n)}),this.on("pipe",h=>{h instanceof p4.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:u,body:A,form:p}=r;if((u||A||p)&&this._lockWrite(),Bn.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,o)}catch(h){ot.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof Wit.ReadStream&&await ust(this.options.body);let{url:E}=this.options;if(!E)throw new TypeError("Missing `url` property");if(this.requestUrl=E.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[$s])===null||h===void 0||h.destroy();return}for(let I of this[r1])I();this[r1].length=0,this.requestInitialized=!0}catch(E){if(E instanceof Ji){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(e,r,o){var a,n,u,A,p;let h=r;if(ot.default.object(e)&&!ot.default.urlInstance(e))r={...o,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...o,...r},e!==void 0&&(r.url=e),ot.default.urlInstance(r.url)&&(r.url=new sh.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),ot.assert.any([ot.default.string,ot.default.undefined],r.method),ot.assert.any([ot.default.object,ot.default.undefined],r.headers),ot.assert.any([ot.default.string,ot.default.urlInstance,ot.default.undefined],r.prefixUrl),ot.assert.any([ot.default.object,ot.default.undefined],r.cookieJar),ot.assert.any([ot.default.object,ot.default.string,ot.default.undefined],r.searchParams),ot.assert.any([ot.default.object,ot.default.string,ot.default.undefined],r.cache),ot.assert.any([ot.default.object,ot.default.number,ot.default.undefined],r.timeout),ot.assert.any([ot.default.object,ot.default.undefined],r.context),ot.assert.any([ot.default.object,ot.default.undefined],r.hooks),ot.assert.any([ot.default.boolean,ot.default.undefined],r.decompress),ot.assert.any([ot.default.boolean,ot.default.undefined],r.ignoreInvalidCookies),ot.assert.any([ot.default.boolean,ot.default.undefined],r.followRedirect),ot.assert.any([ot.default.number,ot.default.undefined],r.maxRedirects),ot.assert.any([ot.default.boolean,ot.default.undefined],r.throwHttpErrors),ot.assert.any([ot.default.boolean,ot.default.undefined],r.http2),ot.assert.any([ot.default.boolean,ot.default.undefined],r.allowGetBody),ot.assert.any([ot.default.string,ot.default.undefined],r.localAddress),ot.assert.any([Kae.isDnsLookupIpVersion,ot.default.undefined],r.dnsLookupIpVersion),ot.assert.any([ot.default.object,ot.default.undefined],r.https),ot.assert.any([ot.default.boolean,ot.default.undefined],r.rejectUnauthorized),r.https&&(ot.assert.any([ot.default.boolean,ot.default.undefined],r.https.rejectUnauthorized),ot.assert.any([ot.default.function_,ot.default.undefined],r.https.checkServerIdentity),ot.assert.any([ot.default.string,ot.default.object,ot.default.array,ot.default.undefined],r.https.certificateAuthority),ot.assert.any([ot.default.string,ot.default.object,ot.default.array,ot.default.undefined],r.https.key),ot.assert.any([ot.default.string,ot.default.object,ot.default.array,ot.default.undefined],r.https.certificate),ot.assert.any([ot.default.string,ot.default.undefined],r.https.passphrase),ot.assert.any([ot.default.string,ot.default.buffer,ot.default.array,ot.default.undefined],r.https.pfx)),ot.assert.any([ot.default.object,ot.default.undefined],r.cacheOptions),ot.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===o?.headers?r.headers={...r.headers}:r.headers=Zit({...o?.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==o?.searchParams){let x;if(ot.default.string(r.searchParams)||r.searchParams instanceof sh.URLSearchParams)x=new sh.URLSearchParams(r.searchParams);else{lst(r.searchParams),x=new sh.URLSearchParams;for(let C in r.searchParams){let R=r.searchParams[C];R===null?x.append(C,""):R!==void 0&&x.append(C,R)}}(a=o?.searchParams)===null||a===void 0||a.forEach((C,R)=>{x.has(R)||x.append(R,C)}),r.searchParams=x}if(r.username=(n=r.username)!==null&&n!==void 0?n:"",r.password=(u=r.password)!==null&&u!==void 0?u:"",ot.default.undefined(r.prefixUrl)?r.prefixUrl=(A=o?.prefixUrl)!==null&&A!==void 0?A:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),ot.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=Wae.default(r.prefixUrl+r.url,r)}else(ot.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=Wae.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:x}=r;Object.defineProperty(r,"prefixUrl",{set:R=>{let L=r.url;if(!L.href.startsWith(R))throw new Error(`Cannot change \`prefixUrl\` from ${x} to ${R}: ${L.href}`);r.url=new sh.URL(R+L.href.slice(x.length)),x=R},get:()=>x});let{protocol:C}=r.url;if(C==="unix:"&&(C="http:",r.url=new sh.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),C!=="http:"&&C!=="https:")throw new nS(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:E}=r;if(E){let{setCookie:x,getCookieString:C}=E;ot.assert.function_(x),ot.assert.function_(C),x.length===4&&C.length===0&&(x=_ae.promisify(x.bind(r.cookieJar)),C=_ae.promisify(C.bind(r.cookieJar)),r.cookieJar={setCookie:x,getCookieString:C})}let{cache:I}=r;if(I&&(d4.has(I)||d4.set(I,new jae((x,C)=>{let R=x[$s](x,C);return ot.default.promise(R)&&(R.once=(L,U)=>{if(L==="error")R.catch(U);else if(L==="abort")(async()=>{try{(await R).once("abort",U)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${L}`);return R}),R},I))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)h4||(h4=new zit.default),r.dnsCache=h4;else if(!ot.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${ot.default(r.dnsCache)}`);ot.default.number(r.timeout)?r.timeout={request:r.timeout}:o&&r.timeout!==o.timeout?r.timeout={...o.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let v=r.hooks===o?.hooks;r.hooks={...r.hooks};for(let x of Bn.knownHookEvents)if(x in r.hooks)if(ot.default.array(r.hooks[x]))r.hooks[x]=[...r.hooks[x]];else throw new TypeError(`Parameter \`${x}\` must be an Array, got ${ot.default(r.hooks[x])}`);else r.hooks[x]=[];if(o&&!v)for(let x of Bn.knownHookEvents)o.hooks[x].length>0&&(r.hooks[x]=[...o.hooks[x],...r.hooks[x]]);if("family"in r&&oh.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),o?.https&&(r.https={...o.https,...r.https}),"rejectUnauthorized"in r&&oh.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&oh.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&oh.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&oh.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&oh.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&oh.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&oh.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let x in r.agent)if(x!=="http"&&x!=="https"&&x!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${x}\``)}return r.maxRedirects=(p=r.maxRedirects)!==null&&p!==void 0?p:0,Bn.setNonEnumerableProperties([o,h],r),sst.default(r,o)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,o=!ot.default.undefined(e.form),a=!ot.default.undefined(e.json),n=!ot.default.undefined(e.body),u=o||a||n,A=Bn.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=A,u){if(A)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([n,o,a].filter(p=>p).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(n&&!(e.body instanceof Hae.Readable)&&!ot.default.string(e.body)&&!ot.default.buffer(e.body)&&!Gae.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(o&&!ot.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let p=!ot.default.string(r["content-type"]);n?(Gae.default(e.body)&&p&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[ah]=e.body):o?(p&&(r["content-type"]="application/x-www-form-urlencoded"),this[ah]=new sh.URLSearchParams(e.form).toString()):(p&&(r["content-type"]="application/json"),this[ah]=e.stringifyJson(e.json));let h=await $it.default(this[ah],e.headers);ot.default.undefined(r["content-length"])&&ot.default.undefined(r["transfer-encoding"])&&!A&&!ot.default.undefined(h)&&(r["content-length"]=String(h))}}else A?this._lockWrite():this._unlockWrite();this[sy]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:o}=r;this[Xae]=e,r.decompress&&(e=Jit(e));let a=e.statusCode,n=e;n.statusMessage=n.statusMessage?n.statusMessage:qae.STATUS_CODES[a],n.url=r.url.toString(),n.requestUrl=this.requestUrl,n.redirectUrls=this.redirects,n.request=this,n.isFromCache=e.fromCache||!1,n.ip=this.ip,n.retryCount=this.retryCount,this[zae]=n.isFromCache,this[ny]=Number(e.headers["content-length"])||void 0,this[Xb]=e,e.once("end",()=>{this[ny]=this[iy],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",A=>{e.destroy(),this._beforeError(new n1(A,this))}),e.once("aborted",()=>{this._beforeError(new n1({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let u=e.headers["set-cookie"];if(ot.default.object(r.cookieJar)&&u){let A=u.map(async p=>r.cookieJar.setCookie(p,o.toString()));r.ignoreInvalidCookies&&(A=A.map(async p=>p.catch(()=>{})));try{await Promise.all(A)}catch(p){this._beforeError(p);return}}if(r.followRedirect&&e.headers.location&&Ast.has(a)){if(e.resume(),this[$s]&&(this[g4](),delete this[$s],this[Vae]()),(a===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[ah]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new Zb(this));return}try{let p=Buffer.from(e.headers.location,"binary").toString(),h=new sh.URL(p,o),E=h.toString();decodeURI(E),h.hostname!==o.hostname||h.port!==o.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(h.username=r.username,h.password=r.password),this.redirects.push(E),r.url=h;for(let I of r.hooks.beforeRedirect)await I(r,n);this.emit("redirect",n,r),await this._makeRequest()}catch(p){this._beforeError(p);return}return}if(r.isStream&&r.throwHttpErrors&&!ist.isResponseOk(n)){this._beforeError(new $b(n));return}e.on("readable",()=>{this[Jb]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let A of this[zb])if(!A.headersSent){for(let p in e.headers){let h=r.decompress?p!=="content-encoding":!0,E=e.headers[p];h&&A.setHeader(p,E)}A.statusCode=a}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:o,url:a}=r;Vit.default(e),this[g4]=Yae.default(e,o,a);let n=r.cache?"cacheableResponse":"response";e.once(n,p=>{this._onResponse(p)}),e.once("error",p=>{var h;e.destroy(),(h=e.res)===null||h===void 0||h.removeAllListeners("end"),p=p instanceof Yae.TimeoutError?new rS(p,this.timings,this):new Ji(p.message,p,this),this._beforeError(p)}),this[Vae]=est.default(e,this,pst),this[$s]=e,this.emit("uploadProgress",this.uploadProgress);let u=this[ah],A=this.redirects.length===0?this:e;ot.default.nodeStream(u)?(u.pipe(A),u.once("error",p=>{this._beforeError(new tS(p,this))})):(this._unlockWrite(),ot.default.undefined(u)?(this._cannotHaveBody||this._noPipe)&&(A.end(),this._lockWrite()):(this._writeRequest(u,void 0,()=>{}),A.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((o,a)=>{Object.assign(r,tst.default(e)),delete r.url;let n,u=d4.get(r.cache)(r,async A=>{A._readableState.autoDestroy=!1,n&&(await n).emit("cacheableResponse",A),o(A)});r.url=e,u.once("error",a),u.once("request",async A=>{n=A,o(n)})})}async _makeRequest(){var e,r,o,a,n;let{options:u}=this,{headers:A}=u;for(let U in A)if(ot.default.undefined(A[U]))delete A[U];else if(ot.default.null_(A[U]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${U}\` header`);if(u.decompress&&ot.default.undefined(A["accept-encoding"])&&(A["accept-encoding"]=ast?"gzip, deflate, br":"gzip, deflate"),u.cookieJar){let U=await u.cookieJar.getCookieString(u.url.toString());ot.default.nonEmptyString(U)&&(u.headers.cookie=U)}for(let U of u.hooks.beforeRequest){let z=await U(u);if(!ot.default.undefined(z)){u.request=()=>z;break}}u.body&&this[ah]!==u.body&&(this[ah]=u.body);let{agent:p,request:h,timeout:E,url:I}=u;if(u.dnsCache&&!("lookup"in u)&&(u.lookup=u.dnsCache.lookup),I.hostname==="unix"){let U=/(?.+?):(?.+)/.exec(`${I.pathname}${I.search}`);if(U?.groups){let{socketPath:z,path:te}=U.groups;Object.assign(u,{socketPath:z,path:te,host:""})}}let v=I.protocol==="https:",x;u.http2?x=Xit.auto:x=v?Kit.request:qae.request;let C=(e=u.request)!==null&&e!==void 0?e:x,R=u.cache?this._createCacheableRequest:C;p&&!u.http2&&(u.agent=p[v?"https":"http"]),u[$s]=C,delete u.request,delete u.timeout;let L=u;if(L.shared=(r=u.cacheOptions)===null||r===void 0?void 0:r.shared,L.cacheHeuristic=(o=u.cacheOptions)===null||o===void 0?void 0:o.cacheHeuristic,L.immutableMinTimeToLive=(a=u.cacheOptions)===null||a===void 0?void 0:a.immutableMinTimeToLive,L.ignoreCargoCult=(n=u.cacheOptions)===null||n===void 0?void 0:n.ignoreCargoCult,u.dnsLookupIpVersion!==void 0)try{L.family=Kae.dnsLookupIpVersionToFamily(u.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}u.https&&("rejectUnauthorized"in u.https&&(L.rejectUnauthorized=u.https.rejectUnauthorized),u.https.checkServerIdentity&&(L.checkServerIdentity=u.https.checkServerIdentity),u.https.certificateAuthority&&(L.ca=u.https.certificateAuthority),u.https.certificate&&(L.cert=u.https.certificate),u.https.key&&(L.key=u.https.key),u.https.passphrase&&(L.passphrase=u.https.passphrase),u.https.pfx&&(L.pfx=u.https.pfx));try{let U=await R(I,L);ot.default.undefined(U)&&(U=x(I,L)),u.request=h,u.timeout=E,u.agent=p,u.https&&("rejectUnauthorized"in u.https&&delete L.rejectUnauthorized,u.https.checkServerIdentity&&delete L.checkServerIdentity,u.https.certificateAuthority&&delete L.ca,u.https.certificate&&delete L.cert,u.https.key&&delete L.key,u.https.passphrase&&delete L.passphrase,u.https.pfx&&delete L.pfx),cst(U)?this._onRequest(U):this.writable?(this.once("finish",()=>{this._onResponse(U)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(U)}catch(U){throw U instanceof jae.CacheError?new eS(U,this):new Ji(U.message,U,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new Ji(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[ay])return;let{options:r}=this,o=this.retryCount+1;this[ay]=!0,e instanceof Ji||(e=new Ji(e.message,e,this));let a=e,{response:n}=a;(async()=>{if(n&&!n.body){n.setEncoding(this._readableState.encoding);try{n.rawBody=await nst.default(n),n.body=n.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let u;try{let A;n&&"retry-after"in n.headers&&(A=Number(n.headers["retry-after"]),Number.isNaN(A)?(A=Date.parse(n.headers["retry-after"])-Date.now(),A<=0&&(A=1)):A*=1e3),u=await r.retry.calculateDelay({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:ost.default({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:0})})}catch(A){this._error(new Ji(A.message,A,this));return}if(u){let A=async()=>{try{for(let p of this.options.hooks.beforeRetry)await p(this.options,a,o)}catch(p){this._error(new Ji(p.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",o,e))};this[Zae]=setTimeout(A,u);return}}this._error(a)})()}_read(){this[Jb]=!0;let e=this[Xb];if(e&&!this[ay]){e.readableLength&&(this[Jb]=!1);let r;for(;(r=e.read())!==null;){this[iy]+=r.length,this[Jae]=!0;let o=this.downloadProgress;o.percent<1&&this.emit("downloadProgress",o),this.push(r)}}}_write(e,r,o){let a=()=>{this._writeRequest(e,r,o)};this.requestInitialized?a():this[r1].push(a)}_writeRequest(e,r,o){this[$s].destroyed||(this._progressCallbacks.push(()=>{this[oy]+=Buffer.byteLength(e,r);let a=this.uploadProgress;a.percent<1&&this.emit("uploadProgress",a)}),this[$s].write(e,r,a=>{!a&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),o(a)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!($s in this)){e();return}if(this[$s].destroyed){e();return}this[$s].end(o=>{o||(this[sy]=this[oy],this.emit("uploadProgress",this.uploadProgress),this[$s].emit("upload-complete")),e(o)})};this.requestInitialized?r():this[r1].push(r)}_destroy(e,r){var o;this[ay]=!0,clearTimeout(this[Zae]),$s in this&&(this[g4](),!((o=this[Xb])===null||o===void 0)&&o.complete||this[$s].destroy()),e!==null&&!ot.default.undefined(e)&&!(e instanceof Ji)&&(e=new Ji(e.message,e,this)),r(e)}get _isAboutToError(){return this[ay]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,o;return((r=(e=this[$s])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((o=this[Xae])===null||o===void 0)&&o.complete)}get socket(){var e,r;return(r=(e=this[$s])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[ny]?e=this[iy]/this[ny]:this[ny]===this[iy]?e=1:e=0,{percent:e,transferred:this[iy],total:this[ny]}}get uploadProgress(){let e;return this[sy]?e=this[oy]/this[sy]:this[sy]===this[oy]?e=1:e=0,{percent:e,transferred:this[oy],total:this[sy]}}get timings(){var e;return(e=this[$s])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[zae]}pipe(e,r){if(this[Jae])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof p4.ServerResponse&&this[zb].add(e),super.pipe(e,r)}unpipe(e){return e instanceof p4.ServerResponse&&this[zb].delete(e),super.unpipe(e),this}};Bn.default=iS});var s1=_(Yc=>{"use strict";var hst=Yc&&Yc.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),gst=Yc&&Yc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&hst(e,t,r)};Object.defineProperty(Yc,"__esModule",{value:!0});Yc.CancelError=Yc.ParseError=void 0;var $ae=i1(),m4=class extends $ae.RequestError{constructor(e,r){let{options:o}=r.request;super(`${e.message} in "${o.url.toString()}"`,e,r.request),this.name="ParseError"}};Yc.ParseError=m4;var y4=class extends $ae.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};Yc.CancelError=y4;gst(i1(),Yc)});var tle=_(E4=>{"use strict";Object.defineProperty(E4,"__esModule",{value:!0});var ele=s1(),dst=(t,e,r,o)=>{let{rawBody:a}=t;try{if(e==="text")return a.toString(o);if(e==="json")return a.length===0?"":r(a.toString());if(e==="buffer")return a;throw new ele.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(n){throw new ele.ParseError(n,t)}};E4.default=dst});var C4=_(lh=>{"use strict";var mst=lh&&lh.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),yst=lh&&lh.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&mst(e,t,r)};Object.defineProperty(lh,"__esModule",{value:!0});var Est=ve("events"),Cst=Ff(),wst=eoe(),sS=s1(),rle=tle(),nle=i1(),Ist=r4(),Bst=c4(),ile=u4(),vst=["request","response","redirect","uploadProgress","downloadProgress"];function sle(t){let e,r,o=new Est.EventEmitter,a=new wst((u,A,p)=>{let h=E=>{let I=new nle.default(void 0,t);I.retryCount=E,I._noPipe=!0,p(()=>I.destroy()),p.shouldReject=!1,p(()=>A(new sS.CancelError(I))),e=I,I.once("response",async C=>{var R;if(C.retryCount=E,C.request.aborted)return;let L;try{L=await Bst.default(I),C.rawBody=L}catch{return}if(I._isAboutToError)return;let U=((R=C.headers["content-encoding"])!==null&&R!==void 0?R:"").toLowerCase(),z=["gzip","deflate","br"].includes(U),{options:te}=I;if(z&&!te.decompress)C.body=L;else try{C.body=rle.default(C,te.responseType,te.parseJson,te.encoding)}catch(ae){if(C.body=L.toString(),ile.isResponseOk(C)){I._beforeError(ae);return}}try{for(let[ae,le]of te.hooks.afterResponse.entries())C=await le(C,async ce=>{let Ce=nle.default.normalizeArguments(void 0,{...ce,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},te);Ce.hooks.afterResponse=Ce.hooks.afterResponse.slice(0,ae);for(let Be of Ce.hooks.beforeRetry)await Be(Ce);let de=sle(Ce);return p(()=>{de.catch(()=>{}),de.cancel()}),de})}catch(ae){I._beforeError(new sS.RequestError(ae.message,ae,I));return}if(!ile.isResponseOk(C)){I._beforeError(new sS.HTTPError(C));return}r=C,u(I.options.resolveBodyOnly?C.body:C)});let v=C=>{if(a.isCanceled)return;let{options:R}=I;if(C instanceof sS.HTTPError&&!R.throwHttpErrors){let{response:L}=C;u(I.options.resolveBodyOnly?L.body:L);return}A(C)};I.once("error",v);let x=I.options.body;I.once("retry",(C,R)=>{var L,U;if(x===((L=R.request)===null||L===void 0?void 0:L.options.body)&&Cst.default.nodeStream((U=R.request)===null||U===void 0?void 0:U.options.body)){v(R);return}h(C)}),Ist.default(I,o,vst)};h(0)});a.on=(u,A)=>(o.on(u,A),a);let n=u=>{let A=(async()=>{await a;let{options:p}=r.request;return rle.default(r,u,p.parseJson,p.encoding)})();return Object.defineProperties(A,Object.getOwnPropertyDescriptors(a)),A};return a.json=()=>{let{headers:u}=e.options;return!e.writableFinished&&u.accept===void 0&&(u.accept="application/json"),n("json")},a.buffer=()=>n("buffer"),a.text=()=>n("text"),a}lh.default=sle;yst(s1(),lh)});var ole=_(w4=>{"use strict";Object.defineProperty(w4,"__esModule",{value:!0});var Dst=s1();function Pst(t,...e){let r=(async()=>{if(t instanceof Dst.RequestError)try{for(let a of e)if(a)for(let n of a)t=await n(t)}catch(a){t=a}throw t})(),o=()=>r;return r.json=o,r.text=o,r.buffer=o,r.on=o,r}w4.default=Pst});var cle=_(I4=>{"use strict";Object.defineProperty(I4,"__esModule",{value:!0});var ale=Ff();function lle(t){for(let e of Object.values(t))(ale.default.plainObject(e)||ale.default.array(e))&&lle(e);return Object.freeze(t)}I4.default=lle});var Ale=_(ule=>{"use strict";Object.defineProperty(ule,"__esModule",{value:!0})});var B4=_(zl=>{"use strict";var bst=zl&&zl.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),Sst=zl&&zl.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&bst(e,t,r)};Object.defineProperty(zl,"__esModule",{value:!0});zl.defaultHandler=void 0;var fle=Ff(),Vl=C4(),xst=ole(),aS=i1(),kst=cle(),Qst={RequestError:Vl.RequestError,CacheError:Vl.CacheError,ReadError:Vl.ReadError,HTTPError:Vl.HTTPError,MaxRedirectsError:Vl.MaxRedirectsError,TimeoutError:Vl.TimeoutError,ParseError:Vl.ParseError,CancelError:Vl.CancelError,UnsupportedProtocolError:Vl.UnsupportedProtocolError,UploadError:Vl.UploadError},Fst=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:oS}=aS.default,ple=(...t)=>{let e;for(let r of t)e=oS(void 0,r,e);return e},Rst=t=>t.isStream?new aS.default(void 0,t):Vl.default(t),Tst=t=>"defaults"in t&&"options"in t.defaults,Nst=["get","post","put","patch","head","delete"];zl.defaultHandler=(t,e)=>e(t);var hle=(t,e)=>{if(t)for(let r of t)r(e)},gle=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(o=>(a,n)=>{let u,A=o(a,p=>(u=n(p),u));if(A!==u&&!a.isStream&&u){let p=A,{then:h,catch:E,finally:I}=p;Object.setPrototypeOf(p,Object.getPrototypeOf(u)),Object.defineProperties(p,Object.getOwnPropertyDescriptors(u)),p.then=h,p.catch=E,p.finally=I}return A});let e=(o,a={},n)=>{var u,A;let p=0,h=E=>t.handlers[p++](E,p===t.handlers.length?Rst:h);if(fle.default.plainObject(o)){let E={...o,...a};aS.setNonEnumerableProperties([o,a],E),a=E,o=void 0}try{let E;try{hle(t.options.hooks.init,a),hle((u=a.hooks)===null||u===void 0?void 0:u.init,a)}catch(v){E=v}let I=oS(o,a,n??t.options);if(I[aS.kIsNormalizedAlready]=!0,E)throw new Vl.RequestError(E.message,E,I);return h(I)}catch(E){if(a.isStream)throw E;return xst.default(E,t.options.hooks.beforeError,(A=a.hooks)===null||A===void 0?void 0:A.beforeError)}};e.extend=(...o)=>{let a=[t.options],n=[...t._rawHandlers],u;for(let A of o)Tst(A)?(a.push(A.defaults.options),n.push(...A.defaults._rawHandlers),u=A.defaults.mutableDefaults):(a.push(A),"handlers"in A&&n.push(...A.handlers),u=A.mutableDefaults);return n=n.filter(A=>A!==zl.defaultHandler),n.length===0&&n.push(zl.defaultHandler),gle({options:ple(...a),handlers:n,mutableDefaults:!!u})};let r=async function*(o,a){let n=oS(o,a,t.options);n.resolveBodyOnly=!1;let u=n.pagination;if(!fle.default.object(u))throw new TypeError("`options.pagination` must be implemented");let A=[],{countLimit:p}=u,h=0;for(;h{let n=[];for await(let u of r(o,a))n.push(u);return n},e.paginate.each=r,e.stream=(o,a)=>e(o,{...a,isStream:!0});for(let o of Nst)e[o]=(a,n)=>e(a,{...n,method:o}),e.stream[o]=(a,n)=>e(a,{...n,method:o,isStream:!0});return Object.assign(e,Qst),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:kst.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=ple,e};zl.default=gle;Sst(Ale(),zl)});var yle=_((Rf,lS)=>{"use strict";var Lst=Rf&&Rf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),dle=Rf&&Rf.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Lst(e,t,r)};Object.defineProperty(Rf,"__esModule",{value:!0});var Mst=ve("url"),mle=B4(),Ost={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let o of e){let a=o.split(";");if(a[1].includes("next")){r=a[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new Mst.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[mle.defaultHandler],mutableDefaults:!1},v4=mle.default(Ost);Rf.default=v4;lS.exports=v4;lS.exports.default=v4;lS.exports.__esModule=!0;dle(B4(),Rf);dle(C4(),Rf)});var sn={};Vt(sn,{Method:()=>Dle,del:()=>jst,get:()=>S4,getNetworkSettings:()=>vle,post:()=>x4,put:()=>qst,request:()=>o1});function wle(t){let e=new URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),e.username&&e.password&&(r.proxyAuth=`${e.username}:${e.password}`),{proxy:r}}async function D4(t){return al(Cle,t,()=>oe.readFilePromise(t).then(e=>(Cle.set(t,e),e)))}function Hst({statusCode:t,statusMessage:e},r){let o=Ot(r,t,yt.NUMBER),a=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return Tm(r,`${o}${e?` (${e})`:""}`,a)}async function cS(t,{configuration:e,customErrorMessage:r}){try{return await t}catch(o){if(o.name!=="HTTPError")throw o;let a=r?.(o,e)??o.response.body?.error;a==null&&(o.message.startsWith("Response code")?a="The remote server failed to provide the requested resource":a=o.message),o.code==="ETIMEDOUT"&&o.event==="socket"&&(a+=`(can be increased via ${Ot(e,"httpTimeout",yt.SETTING)})`);let n=new Jt(35,a,u=>{o.response&&u.reportError(35,` ${Xu(e,{label:"Response Code",value:Hc(yt.NO_HINT,Hst(o.response,e))})}`),o.request&&(u.reportError(35,` ${Xu(e,{label:"Request Method",value:Hc(yt.NO_HINT,o.request.options.method)})}`),u.reportError(35,` ${Xu(e,{label:"Request URL",value:Hc(yt.URL,o.request.requestUrl)})}`)),o.request.redirects.length>0&&u.reportError(35,` ${Xu(e,{label:"Request Redirects",value:Hc(yt.NO_HINT,mL(e,o.request.redirects,yt.URL))})}`),o.request.retryCount===o.request.options.retry.limit&&u.reportError(35,` ${Xu(e,{label:"Request Retry Count",value:Hc(yt.NO_HINT,`${Ot(e,o.request.retryCount,yt.NUMBER)} (can be increased via ${Ot(e,"httpRetry",yt.SETTING)})`)})}`)});throw n.originalError=o,n}}function vle(t,e){let r=[...e.configuration.get("networkSettings")].sort(([u],[A])=>A.length-u.length),o={enableNetwork:void 0,httpsCaFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},a=Object.keys(o),n=typeof t=="string"?new URL(t):t;for(let[u,A]of r)if(b4.default.isMatch(n.hostname,u))for(let p of a){let h=A.get(p);h!==null&&typeof o[p]>"u"&&(o[p]=h)}for(let u of a)typeof o[u]>"u"&&(o[u]=e.configuration.get(u));return o}async function o1(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET",wrapNetworkRequest:A}){let p={target:t,body:e,configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u},h=async()=>await Gst(t,e,p),E=typeof A<"u"?await A(h,p):h;return await(await r.reduceHook(v=>v.wrapNetworkRequest,E,p))()}async function S4(t,{configuration:e,jsonResponse:r,customErrorMessage:o,wrapNetworkRequest:a,...n}){let u=()=>cS(o1(t,null,{configuration:e,wrapNetworkRequest:a,...n}),{configuration:e,customErrorMessage:o}).then(p=>p.body),A=await(typeof a<"u"?u():al(Ele,t,()=>u().then(p=>(Ele.set(t,p),p))));return r?JSON.parse(A.toString()):A}async function qst(t,e,{customErrorMessage:r,...o}){return(await cS(o1(t,e,{...o,method:"PUT"}),{customErrorMessage:r,configuration:o.configuration})).body}async function x4(t,e,{customErrorMessage:r,...o}){return(await cS(o1(t,e,{...o,method:"POST"}),{customErrorMessage:r,configuration:o.configuration})).body}async function jst(t,{customErrorMessage:e,...r}){return(await cS(o1(t,null,{...r,method:"DELETE"}),{customErrorMessage:e,configuration:r.configuration})).body}async function Gst(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET"}){let A=typeof t=="string"?new URL(t):t,p=vle(A,{configuration:r});if(p.enableNetwork===!1)throw new Jt(80,`Request to '${A.href}' has been blocked because of your configuration settings`);if(A.protocol==="http:"&&!b4.default.isMatch(A.hostname,r.get("unsafeHttpWhitelist")))throw new Jt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${A.hostname})`);let E={agent:{http:p.httpProxy?P4.default.httpOverHttp(wle(p.httpProxy)):Ust,https:p.httpsProxy?P4.default.httpsOverHttp(wle(p.httpsProxy)):_st},headers:o,method:u};E.responseType=n?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!a&&typeof e=="string"?E.body=e:E.json=e);let I=r.get("httpTimeout"),v=r.get("httpRetry"),x=r.get("enableStrictSsl"),C=p.httpsCaFilePath,R=p.httpsCertFilePath,L=p.httpsKeyFilePath,{default:U}=await Promise.resolve().then(()=>Ze(yle())),z=C?await D4(C):void 0,te=R?await D4(R):void 0,ae=L?await D4(L):void 0,le=U.extend({timeout:{socket:I},retry:v,https:{rejectUnauthorized:x,certificateAuthority:z,certificate:te,key:ae},...E});return r.getLimit("networkConcurrency")(()=>le(A))}var Ile,Ble,b4,P4,Ele,Cle,Ust,_st,Dle,uS=Et(()=>{Pt();Ile=ve("https"),Ble=ve("http"),b4=Ze($o()),P4=Ze(zse());Wl();jl();ql();Ele=new Map,Cle=new Map,Ust=new Ble.Agent({keepAlive:!0}),_st=new Ile.Agent({keepAlive:!0});Dle=(a=>(a.GET="GET",a.PUT="PUT",a.POST="POST",a.DELETE="DELETE",a))(Dle||{})});var Xi={};Vt(Xi,{availableParallelism:()=>Q4,getArchitecture:()=>a1,getArchitectureName:()=>zst,getArchitectureSet:()=>k4,getCaller:()=>$st,major:()=>Yst,openUrl:()=>Wst});function Vst(){if(process.platform==="darwin"||process.platform==="win32")return null;let t;try{t=oe.readFileSync(Kst)}catch{}if(typeof t<"u"){if(t&&(t.includes("GLIBC")||t.includes("libc")))return"glibc";if(t&&t.includes("musl"))return"musl"}let r=(process.report?.getReport()??{}).sharedObjects??[],o=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return zp(r,a=>{let n=a.match(o);if(!n)return zp.skip;if(n[1])return"glibc";if(n[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")})??null}function a1(){return ble=ble??{os:process.platform,cpu:process.arch,libc:Vst()}}function zst(t=a1()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function k4(){let t=a1();return Sle=Sle??{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}function Zst(t){let e=Jst.exec(t);if(!e)return null;let r=e[2]&&e[2].indexOf("native")===0,o=e[2]&&e[2].indexOf("eval")===0,a=Xst.exec(e[2]);return o&&a!=null&&(e[2]=a[1],e[3]=a[2],e[4]=a[3]),{file:r?null:e[2],methodName:e[1]||"",arguments:r?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}function $st(){let e=new Error().stack.split(` +`)[3];return Zst(e)}function Q4(){return typeof AS.default.availableParallelism<"u"?AS.default.availableParallelism():Math.max(1,AS.default.cpus().length)}var AS,Yst,Ple,Wst,Kst,ble,Sle,Jst,Xst,fS=Et(()=>{Pt();AS=Ze(ve("os"));pS();ql();Yst=Number(process.versions.node.split(".")[0]),Ple=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Wst=typeof Ple<"u"?async t=>{try{return await F4(Ple,[t],{cwd:V.cwd()}),!0}catch{return!1}}:void 0,Kst="/usr/bin/ldd";Jst=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Xst=/\((\S*)(?::(\d+))(?::(\d+))\)/});function M4(t,e,r,o,a){let n=VI(r);if(o.isArray||o.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((u,A)=>R4(t,`${e}[${A}]`,u,o,a)):String(n).split(/,/).map(u=>R4(t,e,u,o,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return R4(t,e,r,o,a)}function R4(t,e,r,o,a){let n=VI(r);switch(o.type){case"ANY":return Fb(n);case"SHAPE":return not(t,e,r,o,a);case"MAP":return iot(t,e,r,o,a)}if(n===null&&!o.isNullable&&o.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if(o.values?.includes(n))return n;let A=(()=>{if(o.type==="BOOLEAN"&&typeof n!="string")return QI(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof n}`);let p=YP(n,{env:t.env});switch(o.type){case"ABSOLUTE_PATH":{let h=a,E=cO(r);return E&&E[0]!=="<"&&(h=V.dirname(E)),V.resolve(h,ue.toPortablePath(p))}case"LOCATOR_LOOSE":return bf(p,!1);case"NUMBER":return parseInt(p);case"LOCATOR":return bf(p);case"BOOLEAN":return QI(p);default:return p}})();if(o.values&&!o.values.includes(A))throw new Error(`Invalid value, expected one of ${o.values.join(", ")}`);return A}function not(t,e,r,o,a){let n=VI(r);if(typeof n!="object"||Array.isArray(n))throw new st(`Object configuration settings "${e}" must be an object`);let u=O4(t,o,{ignoreArrays:!0});if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=`${e}.${A}`;if(!o.properties[A])throw new st(`Unrecognized configuration settings found: ${e}.${A} - run "yarn config -v" to see the list of settings supported in Yarn`);u.set(A,M4(t,h,p,o.properties[A],a))}return u}function iot(t,e,r,o,a){let n=VI(r),u=new Map;if(typeof n!="object"||Array.isArray(n))throw new st(`Map configuration settings "${e}" must be an object`);if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=o.normalizeKeys?o.normalizeKeys(A):A,E=`${e}['${h}']`,I=o.valueDefinition;u.set(h,M4(t,E,p,I,a))}return u}function O4(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let o=new Map;for(let[a,n]of Object.entries(e.properties))o.set(a,O4(t,n));return o}case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?Array.isArray(e.default)?e.default.map(o=>V.normalize(o)):V.isAbsolute(e.default)?V.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(o=>V.resolve(t.projectCwd,o)):V.resolve(t.projectCwd,e.default);default:return e.default}}function gS(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return rot;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return ue.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let o=[];for(let a of t)o.push(gS(a,e,r));return o}if(e.type==="MAP"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=gS(n,e.valueDefinition,r);typeof u<"u"&&o.set(a,u)}return o}if(e.type==="SHAPE"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=e.properties[a],A=gS(n,u,r);typeof A<"u"&&o.set(a,A)}return o}return t}function sot(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(dS)&&(e=(0,kle.default)(e.slice(dS.length)),t[e]=r);return t}function N4(){let t=`${dS}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return L4}async function xle(t){try{return await oe.readFilePromise(t)}catch{return Buffer.of()}}async function oot(t,e){return Buffer.compare(...await Promise.all([xle(t),xle(e)]))===0}async function aot(t,e){let[r,o]=await Promise.all([oe.statPromise(t),oe.statPromise(e)]);return r.dev===o.dev&&r.ino===o.ino}async function cot({configuration:t,selfPath:e}){let r=t.get("yarnPath");return t.get("ignorePath")||r===null||r===e||await lot(r,e)?null:r}var kle,Tf,Qle,Fle,Rle,T4,eot,l1,tot,ly,dS,L4,rot,c1,Tle,mS,hS,lot,Ke,u1=Et(()=>{Pt();Nl();kle=Ze(sV()),Tf=Ze(X0());qt();Qle=Ze(ZV()),Fle=ve("module"),Rle=Ze(eg()),T4=ve("stream");use();Gm();tO();rO();nO();Ose();iO();mg();jse();Tb();jl();rh();uS();ql();fS();xf();So();eot=function(){if(!Tf.GITHUB_ACTIONS||!process.env.GITHUB_EVENT_PATH)return!1;let t=ue.toPortablePath(process.env.GITHUB_EVENT_PATH),e;try{e=oe.readJsonSync(t)}catch{return!1}return!(!("repository"in e)||!e.repository||(e.repository.private??!0))}(),l1=new Set(["@yarnpkg/plugin-constraints","@yarnpkg/plugin-exec","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]),tot=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","zipDataEpilogue","cacheCheckpointOverride","cacheVersionOverride","lockfileVersionOverride","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry","ignoreCwd"]),ly=/^(?!v)[a-z0-9._-]+$/i,dS="yarn_",L4=".yarnrc.yml",rot="********",c1=(E=>(E.ANY="ANY",E.BOOLEAN="BOOLEAN",E.ABSOLUTE_PATH="ABSOLUTE_PATH",E.LOCATOR="LOCATOR",E.LOCATOR_LOOSE="LOCATOR_LOOSE",E.NUMBER="NUMBER",E.STRING="STRING",E.SECRET="SECRET",E.SHAPE="SHAPE",E.MAP="MAP",E))(c1||{}),Tle=yt,mS=(r=>(r.JUNCTIONS="junctions",r.SYMLINKS="symlinks",r))(mS||{}),hS={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:AO()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:0},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:N4()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!0},cacheMigrationMode:{description:"Defines the conditions under which Yarn upgrades should cause the cache archives to be regenerated.",type:"STRING",values:["always","match-spec","required-only"],default:"always"},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:VP,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:dL,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Tf.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Tf.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},enableTips:{description:"If true, installs will print a helpful message every day of the week",type:"BOOLEAN",default:!Tf.isCI,defaultText:""},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, Yarn will refuse to use the network if required to",type:"BOOLEAN",default:!0},enableOfflineMode:{description:"If true, Yarn will attempt to retrieve files and metadata from the global cache rather than the network",type:"BOOLEAN",default:!1},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},taskPoolConcurrency:{description:"Maximal amount of concurrent heavy task processing",type:"NUMBER",default:Q4()},taskPoolMode:{description:"Execution strategy for heavy tasks",type:"STRING",values:["async","workers"],default:"workers"},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{httpsCaFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},httpsCaFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(JP),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableHardenedMode:{description:"If true, automatically enable --check-resolutions --refresh-lockfile on installs",type:"BOOLEAN",default:Tf.isPR&&eot,defaultText:""},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},injectEnvironmentFiles:{description:"List of all the environment files that Yarn should inject inside the process when it starts",type:"ABSOLUTE_PATH",default:[".env.yarn?"],isArray:!0},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};lot=process.platform==="win32"?oot:aot;Ke=class t{constructor(e){this.isCI=Tf.isCI;this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.env={};this.limits=new Map;this.packageExtensions=null;this.startingCwd=e}static{this.deleteProperty=Symbol()}static{this.telemetry=null}static create(e,r,o){let a=new t(e);typeof r<"u"&&!(r instanceof Map)&&(a.projectCwd=r),a.importSettings(hS);let n=typeof o<"u"?o:r instanceof Map?r:new Map;for(let[u,A]of n)a.activatePlugin(u,A);return a}static async find(e,r,{strict:o=!0,usePathCheck:a=null,useRc:n=!0}={}){let u=sot();delete u.rcFilename;let A=new t(e),p=await t.findRcFiles(e),h=await t.findFolderRcFile(Jm());h&&(p.find(Ce=>Ce.path===h.path)||p.unshift(h));let E=qse(p.map(ce=>[ce.path,ce.data])),I=It.dot,v=new Set(Object.keys(hS)),x=({yarnPath:ce,ignorePath:Ce,injectEnvironmentFiles:de})=>({yarnPath:ce,ignorePath:Ce,injectEnvironmentFiles:de}),C=({yarnPath:ce,ignorePath:Ce,injectEnvironmentFiles:de,...Be})=>{let Ee={};for(let[g,me]of Object.entries(Be))v.has(g)&&(Ee[g]=me);return Ee},R=({yarnPath:ce,ignorePath:Ce,...de})=>{let Be={};for(let[Ee,g]of Object.entries(de))v.has(Ee)||(Be[Ee]=g);return Be};if(A.importSettings(x(hS)),A.useWithSource("",x(u),e,{strict:!1}),E){let[ce,Ce]=E;A.useWithSource(ce,x(Ce),I,{strict:!1})}if(a){if(await cot({configuration:A,selfPath:a})!==null)return A;A.useWithSource("",{ignorePath:!0},e,{strict:!1,overwrite:!0})}let L=await t.findProjectCwd(e);A.startingCwd=e,A.projectCwd=L;let U=Object.assign(Object.create(null),process.env);A.env=U;let z=await Promise.all(A.get("injectEnvironmentFiles").map(async ce=>{let Ce=ce.endsWith("?")?await oe.readFilePromise(ce.slice(0,-1),"utf8").catch(()=>""):await oe.readFilePromise(ce,"utf8");return(0,Qle.parse)(Ce)}));for(let ce of z)for(let[Ce,de]of Object.entries(ce))A.env[Ce]=YP(de,{env:U});if(A.importSettings(C(hS)),A.useWithSource("",C(u),e,{strict:o}),E){let[ce,Ce]=E;A.useWithSource(ce,C(Ce),I,{strict:o})}let te=ce=>"default"in ce?ce.default:ce,ae=new Map([["@@core",cse]]);if(r!==null)for(let ce of r.plugins.keys())ae.set(ce,te(r.modules.get(ce)));for(let[ce,Ce]of ae)A.activatePlugin(ce,Ce);let le=new Map([]);if(r!==null){let ce=new Map;for(let[Be,Ee]of r.modules)ce.set(Be,()=>Ee);let Ce=new Set,de=async(Be,Ee)=>{let{factory:g,name:me}=vf(Be);if(!g||Ce.has(me))return;let we=new Map(ce),Ae=Z=>{if((0,Fle.isBuiltin)(Z))return vf(Z);if(we.has(Z))return we.get(Z)();throw new st(`This plugin cannot access the package referenced via ${Z} which is neither a builtin, nor an exposed entry`)},ne=await xm(async()=>te(await g(Ae)),Z=>`${Z} (when initializing ${me}, defined in ${Ee})`);ce.set(me,()=>ne),Ce.add(me),le.set(me,ne)};if(u.plugins)for(let Be of u.plugins.split(";")){let Ee=V.resolve(e,ue.toPortablePath(Be));await de(Ee,"")}for(let{path:Be,cwd:Ee,data:g}of p)if(n&&Array.isArray(g.plugins))for(let me of g.plugins){let we=typeof me!="string"?me.path:me,Ae=me?.spec??"",ne=me?.checksum??"";if(l1.has(Ae))continue;let Z=V.resolve(Ee,ue.toPortablePath(we));if(!await oe.existsPromise(Z)){if(!Ae){let ht=Ot(A,V.basename(Z,".cjs"),yt.NAME),H=Ot(A,".gitignore",yt.NAME),rt=Ot(A,A.values.get("rcFilename"),yt.NAME),Te=Ot(A,"https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored",yt.URL);throw new st(`Missing source for the ${ht} plugin - please try to remove the plugin from ${rt} then reinstall it manually. This error usually occurs because ${H} is incorrect, check ${Te} to make sure your plugin folder isn't gitignored.`)}if(!Ae.match(/^https?:/)){let ht=Ot(A,V.basename(Z,".cjs"),yt.NAME),H=Ot(A,A.values.get("rcFilename"),yt.NAME);throw new st(`Failed to recognize the source for the ${ht} plugin - please try to delete the plugin from ${H} then reinstall it manually.`)}let xe=await S4(Ae,{configuration:A}),Ne=zi(xe);if(ne&&ne!==Ne){let ht=Ot(A,V.basename(Z,".cjs"),yt.NAME),H=Ot(A,A.values.get("rcFilename"),yt.NAME),rt=Ot(A,`yarn plugin import ${Ae}`,yt.CODE);throw new st(`Failed to fetch the ${ht} plugin from its remote location: its checksum seems to have changed. If this is expected, please remove the plugin from ${H} then run ${rt} to reimport it.`)}await oe.mkdirPromise(V.dirname(Z),{recursive:!0}),await oe.writeFilePromise(Z,xe)}await de(Z,Be)}}for(let[ce,Ce]of le)A.activatePlugin(ce,Ce);if(A.useWithSource("",R(u),e,{strict:o}),E){let[ce,Ce]=E;A.useWithSource(ce,R(Ce),I,{strict:o})}return A.get("enableGlobalCache")&&(A.values.set("cacheFolder",`${A.get("globalFolder")}/cache`),A.sources.set("cacheFolder","")),A}static async findRcFiles(e){let r=N4(),o=[],a=e,n=null;for(;a!==n;){n=a;let u=V.join(n,r);if(oe.existsSync(u)){let A=await oe.readFilePromise(u,"utf8"),p;try{p=Ki(A)}catch{let E="";throw A.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(E=" (in particular, make sure you list the colons after each key name)"),new st(`Parse error when loading ${u}; please check it's proper Yaml${E}`)}o.unshift({path:u,cwd:n,data:p})}a=V.dirname(n)}return o}static async findFolderRcFile(e){let r=V.join(e,dr.rc),o;try{o=await oe.readFilePromise(r,"utf8")}catch(n){if(n.code==="ENOENT")return null;throw n}let a=Ki(o);return{path:r,cwd:e,data:a}}static async findProjectCwd(e){let r=null,o=e,a=null;for(;o!==a;){if(a=o,oe.existsSync(V.join(a,dr.lockfile)))return a;oe.existsSync(V.join(a,dr.manifest))&&(r=a),o=V.dirname(a)}return r}static async updateConfiguration(e,r,o={}){let a=N4(),n=V.join(e,a),u=oe.existsSync(n)?Ki(await oe.readFilePromise(n,"utf8")):{},A=!1,p;if(typeof r=="function"){try{p=r(u)}catch{p=r({})}if(p===u)return!1}else{p=u;for(let h of Object.keys(r)){let E=u[h],I=r[h],v;if(typeof I=="function")try{v=I(E)}catch{v=I(void 0)}else v=I;E!==v&&(v===t.deleteProperty?delete p[h]:p[h]=v,A=!0)}if(!A)return!1}return await oe.changeFilePromise(n,Da(p),{automaticNewlines:!0}),!0}static async addPlugin(e,r){r.length!==0&&await t.updateConfiguration(e,o=>{let a=o.plugins??[];if(a.length===0)return{...o,plugins:r};let n=[],u=[...r];for(let A of a){let p=typeof A!="string"?A.path:A,h=u.find(E=>E.path===p);h?(n.push(h),u=u.filter(E=>E!==h)):n.push(A)}return n.push(...u),{...o,plugins:n}})}static async updateHomeConfiguration(e){let r=Jm();return await t.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<"u"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,o]of Object.entries(e))if(o!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,o),this.values.set(r,O4(this,o))}}useWithSource(e,r,o,a){try{this.use(e,r,o,a)}catch(n){throw n.message+=` (in ${Ot(this,e,yt.PATH)})`,n}}use(e,r,o,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get("enableStrictSettings");for(let u of["enableStrictSettings",...Object.keys(r)]){let A=r[u],p=cO(A);if(p&&(e=p),typeof A>"u"||u==="plugins"||e===""&&tot.has(u))continue;if(u==="rcFilename")throw new st(`The rcFilename settings can only be set via ${`${dS}RC_FILENAME`.toUpperCase()}, not via a rc file`);let h=this.settings.get(u);if(!h){let I=Jm(),v=e[0]!=="<"?V.dirname(e):null;if(a&&!(v!==null?I===v:!1))throw new st(`Unrecognized or legacy configuration settings found: ${u} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(u,e);continue}if(this.sources.has(u)&&!(n||h.type==="MAP"||h.isArray&&h.concatenateValues))continue;let E;try{E=M4(this,u,A,h,o)}catch(I){throw I.message+=` in ${Ot(this,e,yt.PATH)}`,I}if(u==="enableStrictSettings"&&e!==""){a=E;continue}if(h.type==="MAP"){let I=this.values.get(u);this.values.set(u,new Map(n?[...I,...E]:[...E,...I])),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else if(h.isArray&&h.concatenateValues){let I=this.values.get(u);this.values.set(u,n?[...I,...E]:[...E,...I]),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else this.values.set(u,E),this.sources.set(u,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:o=!1}){let a=this.get(e),n=this.settings.get(e);if(typeof n>"u")throw new st(`Couldn't find a configuration settings named "${e}"`);return gS(a,n,{hideSecrets:r,getNativePaths:o})}getSubprocessStreams(e,{header:r,prefix:o,report:a}){let n,u,A=oe.createWriteStream(e);if(this.get("enableInlineBuilds")){let p=a.createStreamReporter(`${o} ${Ot(this,"STDOUT","green")}`),h=a.createStreamReporter(`${o} ${Ot(this,"STDERR","red")}`);n=new T4.PassThrough,n.pipe(p),n.pipe(A),u=new T4.PassThrough,u.pipe(h),u.pipe(A)}else n=A,u=A,typeof r<"u"&&n.write(`${r} +`);return{stdout:n,stderr:u}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let o of r.resolvers||[])e.push(new o);return new yg([new Qb,new ei,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let o of r.fetchers||[])e.push(new o);return new Wm([new Km,new Vm,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let o of r.linkers||[])e.push(new o);return e}getSupportedArchitectures(){let e=a1(),r=this.get("supportedArchitectures"),o=r.get("os");o!==null&&(o=o.map(u=>u==="current"?e.os:u));let a=r.get("cpu");a!==null&&(a=a.map(u=>u==="current"?e.cpu:u));let n=r.get("libc");return n!==null&&(n=ol(n,u=>u==="current"?e.libc??ol.skip:u)),{os:o,cpu:a,libc:n}}isInteractive({interactive:e,stdout:r}){return r.isTTY?e??this.get("preferInteractive"):!1}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let e=this.packageExtensions,r=(o,a,{userProvided:n=!1}={})=>{if(!Qa(o.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let u=new Ut;u.load(a,{yamlCompatibilityMode:!0});let A=xI(e,o.identHash),p=[];A.push([o.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:o};for(let E of u.dependencies.values())p.push({...h,type:"Dependency",descriptor:E});for(let E of u.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:E});for(let[E,I]of u.peerDependenciesMeta)for(let[v,x]of Object.entries(I))p.push({...h,type:"PeerDependencyMeta",selector:E,key:v,value:x})};await this.triggerHook(o=>o.registerPackageExtensions,this,r);for(let[o,a]of this.get("packageExtensions"))r(nh(o,!0),GP(a),{userProvided:!0});return e}normalizeLocator(e){return Qa(e.reference)?Rs(e,`${this.get("defaultProtocol")}${e.reference}`):ly.test(e.reference)?Rs(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return Qa(e.range)?In(e,`${this.get("defaultProtocol")}${e.range}`):ly.test(e.range)?In(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,o])=>[r,this.normalizeDependency(o)]))}normalizePackage(e,{packageExtensions:r}){let o=OI(e),a=r.get(e.identHash);if(typeof a<"u"){let u=e.version;if(u!==null){for(let[A,p]of a)if(tA(u,A))for(let h of p)switch(h.status==="inactive"&&(h.status="redundant"),h.type){case"Dependency":typeof o.dependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.dependencies.set(h.descriptor.identHash,this.normalizeDependency(h.descriptor)));break;case"PeerDependency":typeof o.peerDependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.peerDependencies.set(h.descriptor.identHash,h.descriptor));break;case"PeerDependencyMeta":{let E=o.peerDependenciesMeta.get(h.selector);(typeof E>"u"||!Object.hasOwn(E,h.key)||E[h.key]!==h.value)&&(h.status="active",al(o.peerDependenciesMeta,h.selector,()=>({}))[h.key]=h.value)}break;default:cL(h)}}}let n=u=>u.scope?`${u.scope}__${u.name}`:`${u.name}`;for(let u of o.peerDependenciesMeta.keys()){let A=ea(u);o.peerDependencies.has(A.identHash)||o.peerDependencies.set(A.identHash,In(A,"*"))}for(let u of o.peerDependencies.values()){if(u.scope==="types")continue;let A=n(u),p=eA("types",A),h=rn(p);o.peerDependencies.has(p.identHash)||o.peerDependenciesMeta.has(h)||(o.peerDependencies.set(p.identHash,In(p,"*")),o.peerDependenciesMeta.set(h,{optional:!0}))}return o.dependencies=new Map(Fs(o.dependencies,([,u])=>xa(u))),o.peerDependencies=new Map(Fs(o.peerDependencies,([,u])=>xa(u))),o}getLimit(e){return al(this.limits,e,()=>(0,Rle.default)(this.get(e)))}async triggerHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);n&&await n(...r)}}async triggerMultipleHooks(e,r){for(let o of r)await this.triggerHook(e,...o)}async reduceHook(e,r,...o){let a=r;for(let n of this.plugins.values()){let u=n.hooks;if(!u)continue;let A=e(u);A&&(a=await A(a,...o))}return a}async firstHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);if(!n)continue;let u=await n(...r);if(typeof u<"u")return u}return null}}});var Ur={};Vt(Ur,{EndStrategy:()=>q4,ExecError:()=>yS,PipeError:()=>A1,execvp:()=>F4,pipevp:()=>Wc});function Ig(t){return t!==null&&typeof t.fd=="number"}function U4(){}function _4(){for(let t of Bg)t.kill()}async function Wc(t,e,{cwd:r,env:o=process.env,strict:a=!1,stdin:n=null,stdout:u,stderr:A,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":Ig(n)&&(h[0]=n),Ig(u)&&(h[1]=u),Ig(A)&&(h[2]=A);let E=(0,H4.default)(t,e,{cwd:ue.fromPortablePath(r),env:{...o,PWD:ue.fromPortablePath(r)},stdio:h});Bg.add(E),Bg.size===1&&(process.on("SIGINT",U4),process.on("SIGTERM",_4)),!Ig(n)&&n!==null&&n.pipe(E.stdin),Ig(u)||E.stdout.pipe(u,{end:!1}),Ig(A)||E.stderr.pipe(A,{end:!1});let I=()=>{for(let v of new Set([u,A]))Ig(v)||v.end()};return new Promise((v,x)=>{E.on("error",C=>{Bg.delete(E),Bg.size===0&&(process.off("SIGINT",U4),process.off("SIGTERM",_4)),(p===2||p===1)&&I(),x(C)}),E.on("close",(C,R)=>{Bg.delete(E),Bg.size===0&&(process.off("SIGINT",U4),process.off("SIGTERM",_4)),(p===2||p===1&&C!==0)&&I(),C===0||!a?v({code:j4(C,R)}):x(new A1({fileName:t,code:C,signal:R}))})})}async function F4(t,e,{cwd:r,env:o=process.env,encoding:a="utf8",strict:n=!1}){let u=["ignore","pipe","pipe"],A=[],p=[],h=ue.fromPortablePath(r);typeof o.PWD<"u"&&(o={...o,PWD:h});let E=(0,H4.default)(t,e,{cwd:h,env:o,stdio:u});return E.stdout.on("data",I=>{A.push(I)}),E.stderr.on("data",I=>{p.push(I)}),await new Promise((I,v)=>{E.on("error",x=>{let C=Ke.create(r),R=Ot(C,t,yt.PATH);v(new Jt(1,`Process ${R} failed to spawn`,L=>{L.reportError(1,` ${Xu(C,{label:"Thrown Error",value:Hc(yt.NO_HINT,x.message)})}`)}))}),E.on("close",(x,C)=>{let R=a==="buffer"?Buffer.concat(A):Buffer.concat(A).toString(a),L=a==="buffer"?Buffer.concat(p):Buffer.concat(p).toString(a);x===0||!n?I({code:j4(x,C),stdout:R,stderr:L}):v(new yS({fileName:t,code:x,signal:C,stdout:R,stderr:L}))})})}function j4(t,e){let r=uot.get(e);return typeof r<"u"?128+r:t??1}function Aot(t,e,{configuration:r,report:o}){o.reportError(1,` ${Xu(r,t!==null?{label:"Exit Code",value:Hc(yt.NUMBER,t)}:{label:"Exit Signal",value:Hc(yt.CODE,e)})}`)}var H4,q4,A1,yS,Bg,uot,pS=Et(()=>{Pt();H4=Ze(KR());u1();Wl();jl();q4=(o=>(o[o.Never=0]="Never",o[o.ErrorCode=1]="ErrorCode",o[o.Always=2]="Always",o))(q4||{}),A1=class extends Jt{constructor({fileName:e,code:r,signal:o}){let a=Ke.create(V.cwd()),n=Ot(a,e,yt.PATH);super(1,`Child ${n} reported an error`,u=>{Aot(r,o,{configuration:a,report:u})}),this.code=j4(r,o)}},yS=class extends A1{constructor({fileName:e,code:r,signal:o,stdout:a,stderr:n}){super({fileName:e,code:r,signal:o}),this.stdout=a,this.stderr=n}};Bg=new Set;uot=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]])});function Lle(t){Nle=t}function f1(){return typeof G4>"u"&&(G4=Nle()),G4}var G4,Nle,Y4=Et(()=>{Nle=()=>{throw new Error("Assertion failed: No libzip instance is available, and no factory was configured")}});var Mle=_((ES,K4)=>{var fot=Object.assign({},ve("fs")),W4=function(){var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(t=t||__filename),function(e){e=e||{};var r=typeof e<"u"?e:{},o,a;r.ready=new Promise(function(We,tt){o=We,a=tt});var n={},u;for(u in r)r.hasOwnProperty(u)&&(n[u]=r[u]);var A=[],p="./this.program",h=function(We,tt){throw tt},E=!1,I=!0,v="";function x(We){return r.locateFile?r.locateFile(We,v):v+We}var C,R,L,U;I&&(E?v=ve("path").dirname(v)+"/":v=__dirname+"/",C=function(tt,Bt){var or=ii(tt);return or?Bt?or:or.toString():(L||(L=fot),U||(U=ve("path")),tt=U.normalize(tt),L.readFileSync(tt,Bt?null:"utf8"))},R=function(tt){var Bt=C(tt,!0);return Bt.buffer||(Bt=new Uint8Array(Bt)),me(Bt.buffer),Bt},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),A=process.argv.slice(2),h=function(We){process.exit(We)},r.inspect=function(){return"[Emscripten Module object]"});var z=r.print||console.log.bind(console),te=r.printErr||console.warn.bind(console);for(u in n)n.hasOwnProperty(u)&&(r[u]=n[u]);n=null,r.arguments&&(A=r.arguments),r.thisProgram&&(p=r.thisProgram),r.quit&&(h=r.quit);var ae=0,le=function(We){ae=We},ce;r.wasmBinary&&(ce=r.wasmBinary);var Ce=r.noExitRuntime||!0;typeof WebAssembly!="object"&&Ri("no native wasm support detected");function de(We,tt,Bt){switch(tt=tt||"i8",tt.charAt(tt.length-1)==="*"&&(tt="i32"),tt){case"i1":return Ye[We>>0];case"i8":return Ye[We>>0];case"i16":return ap((We>>1)*2);case"i32":return Us((We>>2)*4);case"i64":return Us((We>>2)*4);case"float":return Au((We>>2)*4);case"double":return op((We>>3)*8);default:Ri("invalid type for getValue: "+tt)}return null}var Be,Ee=!1,g;function me(We,tt){We||Ri("Assertion failed: "+tt)}function we(We){var tt=r["_"+We];return me(tt,"Cannot call unknown function "+We+", make sure it is exported"),tt}function Ae(We,tt,Bt,or,ee){var ye={string:function(rs){var bi=0;if(rs!=null&&rs!==0){var qo=(rs.length<<2)+1;bi=Un(qo),ht(rs,bi,qo)}return bi},array:function(rs){var bi=Un(rs.length);return Te(rs,bi),bi}};function Le(rs){return tt==="string"?xe(rs):tt==="boolean"?!!rs:rs}var ft=we(We),pt=[],Nt=0;if(or)for(var rr=0;rr=Bt)&&be[or];)++or;return Z.decode(be.subarray(We,or))}function Ne(We,tt,Bt,or){if(!(or>0))return 0;for(var ee=Bt,ye=Bt+or-1,Le=0;Le=55296&&ft<=57343){var pt=We.charCodeAt(++Le);ft=65536+((ft&1023)<<10)|pt&1023}if(ft<=127){if(Bt>=ye)break;tt[Bt++]=ft}else if(ft<=2047){if(Bt+1>=ye)break;tt[Bt++]=192|ft>>6,tt[Bt++]=128|ft&63}else if(ft<=65535){if(Bt+2>=ye)break;tt[Bt++]=224|ft>>12,tt[Bt++]=128|ft>>6&63,tt[Bt++]=128|ft&63}else{if(Bt+3>=ye)break;tt[Bt++]=240|ft>>18,tt[Bt++]=128|ft>>12&63,tt[Bt++]=128|ft>>6&63,tt[Bt++]=128|ft&63}}return tt[Bt]=0,Bt-ee}function ht(We,tt,Bt){return Ne(We,be,tt,Bt)}function H(We){for(var tt=0,Bt=0;Bt=55296&&or<=57343&&(or=65536+((or&1023)<<10)|We.charCodeAt(++Bt)&1023),or<=127?++tt:or<=2047?tt+=2:or<=65535?tt+=3:tt+=4}return tt}function rt(We){var tt=H(We)+1,Bt=Ni(tt);return Bt&&Ne(We,Ye,Bt,tt),Bt}function Te(We,tt){Ye.set(We,tt)}function Fe(We,tt){return We%tt>0&&(We+=tt-We%tt),We}var ke,Ye,be,et,Ue,S,w,b,y,F;function J(We){ke=We,r.HEAP_DATA_VIEW=F=new DataView(We),r.HEAP8=Ye=new Int8Array(We),r.HEAP16=et=new Int16Array(We),r.HEAP32=S=new Int32Array(We),r.HEAPU8=be=new Uint8Array(We),r.HEAPU16=Ue=new Uint16Array(We),r.HEAPU32=w=new Uint32Array(We),r.HEAPF32=b=new Float32Array(We),r.HEAPF64=y=new Float64Array(We)}var X=r.INITIAL_MEMORY||16777216,$,ie=[],Se=[],Re=[],at=!1;function dt(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)bt(r.preRun.shift());oo(ie)}function jt(){at=!0,oo(Se)}function tr(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)kr(r.postRun.shift());oo(Re)}function bt(We){ie.unshift(We)}function ln(We){Se.unshift(We)}function kr(We){Re.unshift(We)}var mr=0,Sr=null,Kr=null;function Kn(We){mr++,r.monitorRunDependencies&&r.monitorRunDependencies(mr)}function Ms(We){if(mr--,r.monitorRunDependencies&&r.monitorRunDependencies(mr),mr==0&&(Sr!==null&&(clearInterval(Sr),Sr=null),Kr)){var tt=Kr;Kr=null,tt()}}r.preloadedImages={},r.preloadedAudios={};function Ri(We){r.onAbort&&r.onAbort(We),We+="",te(We),Ee=!0,g=1,We="abort("+We+"). Build with -s ASSERTIONS=1 for more info.";var tt=new WebAssembly.RuntimeError(We);throw a(tt),tt}var gs="data:application/octet-stream;base64,";function io(We){return We.startsWith(gs)}var Pi="data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASELIAMhBQsgBkIuEBciA0UEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyAFEBwMAgsgA0GjEkGoEiACQYACcSIHG0EEECwgB0UEQCADIAkEf0EtBSABLwEIC0H//wNxEA0LIAMgCQR/QS0FIAEvAQoLQf//A3EQDSADIAEvAQwQDSADIAsEf0HjAAUgASgCEAtB//8DcRANIAYgASgCFDYCPAJ/IAZBPGoQjQEiCEUEQEEAIQlBIQwBCwJ/IAgoAhQiBEHQAE4EQCAEQQl0DAELIAhB0AA2AhRBgMACCyEEIAgoAgRBBXQgCCgCCEELdGogCCgCAEEBdmohCSAIKAIMIAQgCCgCEEEFdGpqQaDAAWoLIQQgAyAJQf//A3EQDSADIARB//8DcRANIAMCfyALBEBBACABKQMoQhRUDQEaCyABKAIYCxASIAEpAyAhDCADAn8gAwJ/AkAgBwRAIAxC/v///w9YBEAgASkDKEL/////D1QNAgsgA0F/EBJBfwwDC0F/IAxC/v///w9WDQEaCyAMpwsQEiABKQMoIgxC/////w8gDEL/////D1QbpwsQEiADIAEoAjAiBAR/IAQvAQQFQQALQf//A3EQDSADIAEoAjQgAhBsIAVBgAYQbGpB//8DcRANIAdFBEAgAyABKAI4IgQEfyAELwEEBUEAC0H//wNxEA0gAyABLwE8EA0gAyABLwFAEA0gAyABKAJEEBIgAyABKQNIIgxC/////w8gDEL/////D1QbpxASCyADLQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAMQCCAFEBwMAgsgACAGIAMtAAAEfiADKQMQBUIACxAbIQQgAxAIIARBf0wNACABKAIwIgMEQCAAIAMQYUF/TA0BCyAFBEAgACAFQYAGEGtBf0wNAQsgBRAcIAEoAjQiBQRAIAAgBSACEGtBAEgNAgsgBw0CIAEoAjgiAUUNAiAAIAEQYUEATg0CDAELIAUQHAtBfyEKCyAGQUBrJAAgCgtNAQJ/IAEtAAAhAgJAIAAtAAAiA0UNACACIANHDQADQCABLQABIQIgAC0AASIDRQ0BIAFBAWohASAAQQFqIQAgAiADRg0ACwsgAyACawvcAwICfgF/IAOtIQQgACkDmC4hBQJAIAACfyAAAn4gACgCoC4iBkEDaiIDQT9NBEAgBCAGrYYgBYQMAQsgBkHAAEYEQCAAKAIEIAAoAhBqIAU3AAAgACgCEEEIagwCCyAAKAIEIAAoAhBqIAQgBq2GIAWENwAAIAAgACgCEEEIajYCECAGQT1rIQMgBEHAACAGa62ICyIENwOYLiAAIAM2AqAuIANBOU4EQCAAKAIEIAAoAhBqIAQ3AAAgACAAKAIQQQhqNgIQDAILIANBGU4EQCAAKAIEIAAoAhBqIAQ+AAAgACAAKAIQQQRqNgIQIAAgACkDmC5CIIgiBDcDmC4gACAAKAKgLkEgayIDNgKgLgsgA0EJTgR/IAAoAgQgACgCEGogBD0AACAAIAAoAhBBAmo2AhAgACkDmC5CEIghBCAAKAKgLkEQawUgAwtBAUgNASAAKAIQCyIDQQFqNgIQIAAoAgQgA2ogBDwAAAsgAEEANgKgLiAAQgA3A5guIAAoAgQgACgCEGogAjsAACAAIAAoAhBBAmoiAzYCECAAKAIEIANqIAJBf3M7AAAgACAAKAIQQQJqIgM2AhAgAgRAIAAoAgQgA2ogASACEAcaIAAgACgCECACajYCEAsLrAQCAX8BfgJAIAANACABUA0AIAMEQCADQQA2AgQgA0ESNgIAC0EADwsCQAJAIAAgASACIAMQiQEiBEUNAEEYEAkiAkUEQCADBEAgA0EANgIEIANBDjYCAAsCQCAEKAIoIgBFBEAgBCkDGCEBDAELIABBADYCKCAEKAIoQgA3AyAgBCAEKQMYIgUgBCkDICIBIAEgBVQbIgE3AxgLIAQpAwggAVYEQANAIAQoAgAgAadBBHRqKAIAEAYgAUIBfCIBIAQpAwhUDQALCyAEKAIAEAYgBCgCBBAGIAQQBgwBCyACQQA2AhQgAiAENgIQIAJBABABNgIMIAJBADYCCCACQgA3AgACf0E4EAkiAEUEQCADBEAgA0EANgIEIANBDjYCAAtBAAwBCyAAQQA2AgggAEIANwMAIABCADcDICAAQoCAgIAQNwIsIABBADoAKCAAQQA2AhQgAEIANwIMIABBADsBNCAAIAI2AgggAEEkNgIEIABCPyACQQBCAEEOQSQRDAAiASABQgBTGzcDGCAACyIADQEgAigCECIDBEACQCADKAIoIgBFBEAgAykDGCEBDAELIABBADYCKCADKAIoQgA3AyAgAyADKQMYIgUgAykDICIBIAEgBVQbIgE3AxgLIAMpAwggAVYEQANAIAMoAgAgAadBBHRqKAIAEAYgAUIBfCIBIAMpAwhUDQALCyADKAIAEAYgAygCBBAGIAMQBgsgAhAGC0EAIQALIAALiwwBBn8gACABaiEFAkACQCAAKAIEIgJBAXENACACQQNxRQ0BIAAoAgAiAiABaiEBAkAgACACayIAQciEASgCAEcEQCACQf8BTQRAIAAoAggiBCACQQN2IgJBA3RB3IQBakYaIAAoAgwiAyAERw0CQbSEAUG0hAEoAgBBfiACd3E2AgAMAwsgACgCGCEGAkAgACAAKAIMIgNHBEAgACgCCCICQcSEASgCAEkaIAIgAzYCDCADIAI2AggMAQsCQCAAQRRqIgIoAgAiBA0AIABBEGoiAigCACIEDQBBACEDDAELA0AgAiEHIAQiA0EUaiICKAIAIgQNACADQRBqIQIgAygCECIEDQALIAdBADYCAAsgBkUNAgJAIAAgACgCHCIEQQJ0QeSGAWoiAigCAEYEQCACIAM2AgAgAw0BQbiEAUG4hAEoAgBBfiAEd3E2AgAMBAsgBkEQQRQgBigCECAARhtqIAM2AgAgA0UNAwsgAyAGNgIYIAAoAhAiAgRAIAMgAjYCECACIAM2AhgLIAAoAhQiAkUNAiADIAI2AhQgAiADNgIYDAILIAUoAgQiAkEDcUEDRw0BQbyEASABNgIAIAUgAkF+cTYCBCAAIAFBAXI2AgQgBSABNgIADwsgBCADNgIMIAMgBDYCCAsCQCAFKAIEIgJBAnFFBEAgBUHMhAEoAgBGBEBBzIQBIAA2AgBBwIQBQcCEASgCACABaiIBNgIAIAAgAUEBcjYCBCAAQciEASgCAEcNA0G8hAFBADYCAEHIhAFBADYCAA8LIAVByIQBKAIARgRAQciEASAANgIAQbyEAUG8hAEoAgAgAWoiATYCACAAIAFBAXI2AgQgACABaiABNgIADwsgAkF4cSABaiEBAkAgAkH/AU0EQCAFKAIIIgQgAkEDdiICQQN0QdyEAWpGGiAEIAUoAgwiA0YEQEG0hAFBtIQBKAIAQX4gAndxNgIADAILIAQgAzYCDCADIAQ2AggMAQsgBSgCGCEGAkAgBSAFKAIMIgNHBEAgBSgCCCICQcSEASgCAEkaIAIgAzYCDCADIAI2AggMAQsCQCAFQRRqIgQoAgAiAg0AIAVBEGoiBCgCACICDQBBACEDDAELA0AgBCEHIAIiA0EUaiIEKAIAIgINACADQRBqIQQgAygCECICDQALIAdBADYCAAsgBkUNAAJAIAUgBSgCHCIEQQJ0QeSGAWoiAigCAEYEQCACIAM2AgAgAw0BQbiEAUG4hAEoAgBBfiAEd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAM2AgAgA0UNAQsgAyAGNgIYIAUoAhAiAgRAIAMgAjYCECACIAM2AhgLIAUoAhQiAkUNACADIAI2AhQgAiADNgIYCyAAIAFBAXI2AgQgACABaiABNgIAIABByIQBKAIARw0BQbyEASABNgIADwsgBSACQX5xNgIEIAAgAUEBcjYCBCAAIAFqIAE2AgALIAFB/wFNBEAgAUEDdiICQQN0QdyEAWohAQJ/QbSEASgCACIDQQEgAnQiAnFFBEBBtIQBIAIgA3I2AgAgAQwBCyABKAIICyECIAEgADYCCCACIAA2AgwgACABNgIMIAAgAjYCCA8LQR8hAiAAQgA3AhAgAUH///8HTQRAIAFBCHYiAiACQYD+P2pBEHZBCHEiBHQiAiACQYDgH2pBEHZBBHEiA3QiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAEciACcmsiAkEBdCABIAJBFWp2QQFxckEcaiECCyAAIAI2AhwgAkECdEHkhgFqIQcCQAJAQbiEASgCACIEQQEgAnQiA3FFBEBBuIQBIAMgBHI2AgAgByAANgIAIAAgBzYCGAwBCyABQQBBGSACQQF2ayACQR9GG3QhAiAHKAIAIQMDQCADIgQoAgRBeHEgAUYNAiACQR12IQMgAkEBdCECIAQgA0EEcWoiB0EQaigCACIDDQALIAcgADYCECAAIAQ2AhgLIAAgADYCDCAAIAA2AggPCyAEKAIIIgEgADYCDCAEIAA2AgggAEEANgIYIAAgBDYCDCAAIAE2AggLC1gCAX8BfgJAAn9BACAARQ0AGiAArUIChiICpyIBIABBBHJBgIAESQ0AGkF/IAEgAkIgiKcbCyIBEAkiAEUNACAAQQRrLQAAQQNxRQ0AIABBACABEBkLIAALQwEDfwJAIAJFDQADQCAALQAAIgQgAS0AACIFRgRAIAFBAWohASAAQQFqIQAgAkEBayICDQEMAgsLIAQgBWshAwsgAwsUACAAEEAgACgCABAgIAAoAgQQIAutBAIBfgV/IwBBEGsiBCQAIAAgAWshBgJAAkAgAUEBRgRAIAAgBi0AACACEBkMAQsgAUEJTwRAIAAgBikAADcAACAAIAJBAWtBB3FBAWoiBWohACACIAVrIgFFDQIgBSAGaiECA0AgACACKQAANwAAIAJBCGohAiAAQQhqIQAgAUEIayIBDQALDAILAkACQAJAAkAgAUEEaw4FAAICAgECCyAEIAYoAAAiATYCBCAEIAE2AgAMAgsgBCAGKQAANwMADAELQQghByAEQQhqIQgDQCAIIAYgByABIAEgB0sbIgUQByAFaiEIIAcgBWsiBw0ACyAEIAQpAwg3AwALAkAgBQ0AIAJBEEkNACAEKQMAIQMgAkEQayIGQQR2QQFqQQdxIgEEQANAIAAgAzcACCAAIAM3AAAgAkEQayECIABBEGohACABQQFrIgENAAsLIAZB8ABJDQADQCAAIAM3AHggACADNwBwIAAgAzcAaCAAIAM3AGAgACADNwBYIAAgAzcAUCAAIAM3AEggACADNwBAIAAgAzcAOCAAIAM3ADAgACADNwAoIAAgAzcAICAAIAM3ABggACADNwAQIAAgAzcACCAAIAM3AAAgAEGAAWohACACQYABayICQQ9LDQALCyACQQhPBEBBCCAFayEBA0AgACAEKQMANwAAIAAgAWohACACIAFrIgJBB0sNAAsLIAJFDQEgACAEIAIQBxoLIAAgAmohAAsgBEEQaiQAIAALXwECfyAAKAIIIgEEQCABEAsgAEEANgIICwJAIAAoAgQiAUUNACABKAIAIgJBAXFFDQAgASgCEEF+Rw0AIAEgAkF+cSICNgIAIAINACABECAgAEEANgIECyAAQQA6AAwL1wICBH8BfgJAAkAgACgCQCABp0EEdGooAgAiA0UEQCACBEAgAkEANgIEIAJBFDYCAAsMAQsgACgCACADKQNIIgdBABAUIQMgACgCACEAIANBf0wEQCACBEAgAiAAKAIMNgIAIAIgACgCEDYCBAsMAQtCACEBIwBBEGsiBiQAQX8hAwJAIABCGkEBEBRBf0wEQCACBEAgAiAAKAIMNgIAIAIgACgCEDYCBAsMAQsgAEIEIAZBCmogAhAtIgRFDQBBHiEAQQEhBQNAIAQQDCAAaiEAIAVBAkcEQCAFQQFqIQUMAQsLIAQtAAAEfyAEKQMQIAQpAwhRBUEAC0UEQCACBEAgAkEANgIEIAJBFDYCAAsgBBAIDAELIAQQCCAAIQMLIAZBEGokACADIgBBAEgNASAHIACtfCIBQn9VDQEgAgRAIAJBFjYCBCACQQQ2AgALC0IAIQELIAELYAIBfgF/AkAgAEUNACAAQQhqEF8iAEUNACABIAEoAjBBAWo2AjAgACADNgIIIAAgAjYCBCAAIAE2AgAgAEI/IAEgA0EAQgBBDiACEQoAIgQgBEIAUxs3AxggACEFCyAFCyIAIAAoAiRBAWtBAU0EQCAAQQBCAEEKEA4aIABBADYCJAsLbgACQAJAAkAgA0IQVA0AIAJFDQECfgJAAkACQCACKAIIDgMCAAEECyACKQMAIAB8DAILIAIpAwAgAXwMAQsgAikDAAsiA0IAUw0AIAEgA1oNAgsgBARAIARBADYCBCAEQRI2AgALC0J/IQMLIAMLggICAX8CfgJAQQEgAiADGwRAIAIgA2oQCSIFRQRAIAQEQCAEQQA2AgQgBEEONgIAC0EADwsgAq0hBgJAAkAgAARAIAAgBhATIgBFBEAgBARAIARBADYCBCAEQQ42AgALDAULIAUgACACEAcaIAMNAQwCCyABIAUgBhARIgdCf1cEQCAEBEAgBCABKAIMNgIAIAQgASgCEDYCBAsMBAsgBiAHVQRAIAQEQCAEQQA2AgQgBEERNgIACwwECyADRQ0BCyACIAVqIgBBADoAACACQQFIDQAgBSECA0AgAi0AAEUEQCACQSA6AAALIAJBAWoiAiAASQ0ACwsLIAUPCyAFEAZBAAuBAQEBfwJAIAAEQCADQYAGcSEFQQAhAwNAAkAgAC8BCCACRw0AIAUgACgCBHFFDQAgA0EATg0DIANBAWohAwsgACgCACIADQALCyAEBEAgBEEANgIEIARBCTYCAAtBAA8LIAEEQCABIAAvAQo7AQALIAAvAQpFBEBBwBQPCyAAKAIMC1cBAX9BEBAJIgNFBEBBAA8LIAMgATsBCiADIAA7AQggA0GABjYCBCADQQA2AgACQCABBEAgAyACIAEQYyIANgIMIAANASADEAZBAA8LIANBADYCDAsgAwvuBQIEfwV+IwBB4ABrIgQkACAEQQhqIgNCADcDICADQQA2AhggA0L/////DzcDECADQQA7AQwgA0G/hig2AgggA0EBOgAGIANBADsBBCADQQA2AgAgA0IANwNIIANBgIDYjXg2AkQgA0IANwMoIANCADcDMCADQgA3AzggA0FAa0EAOwEAIANCADcDUCABKQMIUCIDRQRAIAEoAgAoAgApA0ghBwsCfgJAIAMEQCAHIQkMAQsgByEJA0AgCqdBBHQiBSABKAIAaigCACIDKQNIIgggCSAIIAlUGyIJIAEpAyBWBEAgAgRAIAJBADYCBCACQRM2AgALQn8MAwsgAygCMCIGBH8gBi8BBAVBAAtB//8Dca0gCCADKQMgfHxCHnwiCCAHIAcgCFQbIgcgASkDIFYEQCACBEAgAkEANgIEIAJBEzYCAAtCfwwDCyAAKAIAIAEoAgAgBWooAgApA0hBABAUIQYgACgCACEDIAZBf0wEQCACBEAgAiADKAIMNgIAIAIgAygCEDYCBAtCfwwDCyAEQQhqIANBAEEBIAIQaEJ/UQRAIARBCGoQNkJ/DAMLAkACQCABKAIAIAVqKAIAIgMvAQogBC8BEkkNACADKAIQIAQoAhhHDQAgAygCFCAEKAIcRw0AIAMoAjAgBCgCOBBiRQ0AAkAgBCgCICIGIAMoAhhHBEAgBCkDKCEIDAELIAMpAyAiCyAEKQMoIghSDQAgCyEIIAMpAyggBCkDMFENAgsgBC0AFEEIcUUNACAGDQAgCEIAUg0AIAQpAzBQDQELIAIEQCACQQA2AgQgAkEVNgIACyAEQQhqEDZCfwwDCyABKAIAIAVqKAIAKAI0IAQoAjwQbyEDIAEoAgAgBWooAgAiBUEBOgAEIAUgAzYCNCAEQQA2AjwgBEEIahA2IApCAXwiCiABKQMIVA0ACwsgByAJfSIHQv///////////wAgB0L///////////8AVBsLIQcgBEHgAGokACAHC8YBAQJ/QdgAEAkiAUUEQCAABEAgAEEANgIEIABBDjYCAAtBAA8LIAECf0EYEAkiAkUEQCAABEAgAEEANgIEIABBDjYCAAtBAAwBCyACQQA2AhAgAkIANwMIIAJBADYCACACCyIANgJQIABFBEAgARAGQQAPCyABQgA3AwAgAUEANgIQIAFCADcCCCABQgA3AhQgAUEANgJUIAFCADcCHCABQgA3ACEgAUIANwMwIAFCADcDOCABQUBrQgA3AwAgAUIANwNIIAELgBMCD38CfiMAQdAAayIFJAAgBSABNgJMIAVBN2ohEyAFQThqIRBBACEBA0ACQCAOQQBIDQBB/////wcgDmsgAUgEQEGEhAFBPTYCAEF/IQ4MAQsgASAOaiEOCyAFKAJMIgchAQJAAkACQAJAAkACQAJAAkAgBQJ/AkAgBy0AACIGBEADQAJAAkAgBkH/AXEiBkUEQCABIQYMAQsgBkElRw0BIAEhBgNAIAEtAAFBJUcNASAFIAFBAmoiCDYCTCAGQQFqIQYgAS0AAiEMIAghASAMQSVGDQALCyAGIAdrIQEgAARAIAAgByABEC4LIAENDSAFKAJMIQEgBSgCTCwAAUEwa0EKTw0DIAEtAAJBJEcNAyABLAABQTBrIQ9BASERIAFBA2oMBAsgBSABQQFqIgg2AkwgAS0AASEGIAghAQwACwALIA4hDSAADQggEUUNAkEBIQEDQCAEIAFBAnRqKAIAIgAEQCADIAFBA3RqIAAgAhB4QQEhDSABQQFqIgFBCkcNAQwKCwtBASENIAFBCk8NCANAIAQgAUECdGooAgANCCABQQFqIgFBCkcNAAsMCAtBfyEPIAFBAWoLIgE2AkxBACEIAkAgASwAACIKQSBrIgZBH0sNAEEBIAZ0IgZBidEEcUUNAANAAkAgBSABQQFqIgg2AkwgASwAASIKQSBrIgFBIE8NAEEBIAF0IgFBidEEcUUNACABIAZyIQYgCCEBDAELCyAIIQEgBiEICwJAIApBKkYEQCAFAn8CQCABLAABQTBrQQpPDQAgBSgCTCIBLQACQSRHDQAgASwAAUECdCAEakHAAWtBCjYCACABLAABQQN0IANqQYADaygCACELQQEhESABQQNqDAELIBENCEEAIRFBACELIAAEQCACIAIoAgAiAUEEajYCACABKAIAIQsLIAUoAkxBAWoLIgE2AkwgC0F/Sg0BQQAgC2shCyAIQYDAAHIhCAwBCyAFQcwAahB3IgtBAEgNBiAFKAJMIQELQX8hCQJAIAEtAABBLkcNACABLQABQSpGBEACQCABLAACQTBrQQpPDQAgBSgCTCIBLQADQSRHDQAgASwAAkECdCAEakHAAWtBCjYCACABLAACQQN0IANqQYADaygCACEJIAUgAUEEaiIBNgJMDAILIBENByAABH8gAiACKAIAIgFBBGo2AgAgASgCAAVBAAshCSAFIAUoAkxBAmoiATYCTAwBCyAFIAFBAWo2AkwgBUHMAGoQdyEJIAUoAkwhAQtBACEGA0AgBiESQX8hDSABLAAAQcEAa0E5Sw0HIAUgAUEBaiIKNgJMIAEsAAAhBiAKIQEgBiASQTpsakGf7ABqLQAAIgZBAWtBCEkNAAsgBkETRg0CIAZFDQYgD0EATgRAIAQgD0ECdGogBjYCACAFIAMgD0EDdGopAwA3A0AMBAsgAA0BC0EAIQ0MBQsgBUFAayAGIAIQeCAFKAJMIQoMAgsgD0F/Sg0DC0EAIQEgAEUNBAsgCEH//3txIgwgCCAIQYDAAHEbIQZBACENQaQIIQ8gECEIAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkAgCkEBaywAACIBQV9xIAEgAUEPcUEDRhsgASASGyIBQdgAaw4hBBISEhISEhISDhIPBg4ODhIGEhISEgIFAxISCRIBEhIEAAsCQCABQcEAaw4HDhILEg4ODgALIAFB0wBGDQkMEQsgBSkDQCEUQaQIDAULQQAhAQJAAkACQAJAAkACQAJAIBJB/wFxDggAAQIDBBcFBhcLIAUoAkAgDjYCAAwWCyAFKAJAIA42AgAMFQsgBSgCQCAOrDcDAAwUCyAFKAJAIA47AQAMEwsgBSgCQCAOOgAADBILIAUoAkAgDjYCAAwRCyAFKAJAIA6sNwMADBALIAlBCCAJQQhLGyEJIAZBCHIhBkH4ACEBCyAQIQcgAUEgcSEMIAUpA0AiFFBFBEADQCAHQQFrIgcgFKdBD3FBsPAAai0AACAMcjoAACAUQg9WIQogFEIEiCEUIAoNAAsLIAUpA0BQDQMgBkEIcUUNAyABQQR2QaQIaiEPQQIhDQwDCyAQIQEgBSkDQCIUUEUEQANAIAFBAWsiASAUp0EHcUEwcjoAACAUQgdWIQcgFEIDiCEUIAcNAAsLIAEhByAGQQhxRQ0CIAkgECAHayIBQQFqIAEgCUgbIQkMAgsgBSkDQCIUQn9XBEAgBUIAIBR9IhQ3A0BBASENQaQIDAELIAZBgBBxBEBBASENQaUIDAELQaYIQaQIIAZBAXEiDRsLIQ8gECEBAkAgFEKAgICAEFQEQCAUIRUMAQsDQCABQQFrIgEgFCAUQgqAIhVCCn59p0EwcjoAACAUQv////+fAVYhByAVIRQgBw0ACwsgFaciBwRAA0AgAUEBayIBIAcgB0EKbiIMQQpsa0EwcjoAACAHQQlLIQogDCEHIAoNAAsLIAEhBwsgBkH//3txIAYgCUF/ShshBgJAIAUpA0AiFEIAUg0AIAkNAEEAIQkgECEHDAoLIAkgFFAgECAHa2oiASABIAlIGyEJDAkLIAUoAkAiAUGKEiABGyIHQQAgCRB6IgEgByAJaiABGyEIIAwhBiABIAdrIAkgARshCQwICyAJBEAgBSgCQAwCC0EAIQEgAEEgIAtBACAGECcMAgsgBUEANgIMIAUgBSkDQD4CCCAFIAVBCGo2AkBBfyEJIAVBCGoLIQhBACEBAkADQCAIKAIAIgdFDQECQCAFQQRqIAcQeSIHQQBIIgwNACAHIAkgAWtLDQAgCEEEaiEIIAkgASAHaiIBSw0BDAILC0F/IQ0gDA0FCyAAQSAgCyABIAYQJyABRQRAQQAhAQwBC0EAIQggBSgCQCEKA0AgCigCACIHRQ0BIAVBBGogBxB5IgcgCGoiCCABSg0BIAAgBUEEaiAHEC4gCkEEaiEKIAEgCEsNAAsLIABBICALIAEgBkGAwABzECcgCyABIAEgC0gbIQEMBQsgACAFKwNAIAsgCSAGIAFBABEdACEBDAQLIAUgBSkDQDwAN0EBIQkgEyEHIAwhBgwCC0F/IQ0LIAVB0ABqJAAgDQ8LIABBICANIAggB2siDCAJIAkgDEgbIgpqIgggCyAIIAtKGyIBIAggBhAnIAAgDyANEC4gAEEwIAEgCCAGQYCABHMQJyAAQTAgCiAMQQAQJyAAIAcgDBAuIABBICABIAggBkGAwABzECcMAAsAC54DAgR/AX4gAARAIAAoAgAiAQRAIAEQGhogACgCABALCyAAKAIcEAYgACgCIBAQIAAoAiQQECAAKAJQIgMEQCADKAIQIgIEQCADKAIAIgEEfwNAIAIgBEECdGooAgAiAgRAA0AgAigCGCEBIAIQBiABIgINAAsgAygCACEBCyABIARBAWoiBEsEQCADKAIQIQIMAQsLIAMoAhAFIAILEAYLIAMQBgsgACgCQCIBBEAgACkDMFAEfyABBSABED5CAiEFAkAgACkDMEICVA0AQQEhAgNAIAAoAkAgAkEEdGoQPiAFIAApAzBaDQEgBachAiAFQgF8IQUMAAsACyAAKAJACxAGCwJAIAAoAkRFDQBBACECQgEhBQNAIAAoAkwgAkECdGooAgAiAUEBOgAoIAFBDGoiASgCAEUEQCABBEAgAUEANgIEIAFBCDYCAAsLIAUgADUCRFoNASAFpyECIAVCAXwhBQwACwALIAAoAkwQBiAAKAJUIgIEQCACKAIIIgEEQCACKAIMIAERAwALIAIQBgsgAEEIahAxIAAQBgsL6gMCAX4EfwJAIAAEfiABRQRAIAMEQCADQQA2AgQgA0ESNgIAC0J/DwsgAkGDIHEEQAJAIAApAzBQDQBBPEE9IAJBAXEbIQcgAkECcUUEQANAIAAgBCACIAMQUyIFBEAgASAFIAcRAgBFDQYLIARCAXwiBCAAKQMwVA0ADAILAAsDQCAAIAQgAiADEFMiBQRAIAECfyAFECJBAWohBgNAQQAgBkUNARogBSAGQQFrIgZqIggtAABBL0cNAAsgCAsiBkEBaiAFIAYbIAcRAgBFDQULIARCAXwiBCAAKQMwVA0ACwsgAwRAIANBADYCBCADQQk2AgALQn8PC0ESIQYCQAJAIAAoAlAiBUUNACABRQ0AQQkhBiAFKQMIUA0AIAUoAhAgAS0AACIHBH9CpesKIQQgASEAA0AgBCAHrUL/AYN8IQQgAC0AASIHBEAgAEEBaiEAIARC/////w+DQiF+IQQMAQsLIASnBUGFKgsgBSgCAHBBAnRqKAIAIgBFDQADQCABIAAoAgAQOEUEQCACQQhxBEAgACkDCCIEQn9RDQMMBAsgACkDECIEQn9RDQIMAwsgACgCGCIADQALCyADBEAgA0EANgIEIAMgBjYCAAtCfyEECyAEBUJ/Cw8LIAMEQCADQgA3AgALIAQL3AQCB38BfgJAAkAgAEUNACABRQ0AIAJCf1UNAQsgBARAIARBADYCBCAEQRI2AgALQQAPCwJAIAAoAgAiB0UEQEGAAiEHQYACEDwiBkUNASAAKAIQEAYgAEGAAjYCACAAIAY2AhALAkACQCAAKAIQIAEtAAAiBQR/QqXrCiEMIAEhBgNAIAwgBa1C/wGDfCEMIAYtAAEiBQRAIAZBAWohBiAMQv////8Pg0IhfiEMDAELCyAMpwVBhSoLIgYgB3BBAnRqIggoAgAiBQRAA0ACQCAFKAIcIAZHDQAgASAFKAIAEDgNAAJAIANBCHEEQCAFKQMIQn9SDQELIAUpAxBCf1ENBAsgBARAIARBADYCBCAEQQo2AgALQQAPCyAFKAIYIgUNAAsLQSAQCSIFRQ0CIAUgATYCACAFIAgoAgA2AhggCCAFNgIAIAVCfzcDCCAFIAY2AhwgACAAKQMIQgF8Igw3AwggDLogB7hEAAAAAAAA6D+iZEUNACAHQQBIDQAgByAHQQF0IghGDQAgCBA8IgpFDQECQCAMQgAgBxtQBEAgACgCECEJDAELIAAoAhAhCUEAIQQDQCAJIARBAnRqKAIAIgYEQANAIAYoAhghASAGIAogBigCHCAIcEECdGoiCygCADYCGCALIAY2AgAgASIGDQALCyAEQQFqIgQgB0cNAAsLIAkQBiAAIAg2AgAgACAKNgIQCyADQQhxBEAgBSACNwMICyAFIAI3AxBBAQ8LIAQEQCAEQQA2AgQgBEEONgIAC0EADwsgBARAIARBADYCBCAEQQ42AgALQQAL3Q8BF38jAEFAaiIHQgA3AzAgB0IANwM4IAdCADcDICAHQgA3AygCQAJAAkACQAJAIAIEQCACQQNxIQggAkEBa0EDTwRAIAJBfHEhBgNAIAdBIGogASAJQQF0IgxqLwEAQQF0aiIKIAovAQBBAWo7AQAgB0EgaiABIAxBAnJqLwEAQQF0aiIKIAovAQBBAWo7AQAgB0EgaiABIAxBBHJqLwEAQQF0aiIKIAovAQBBAWo7AQAgB0EgaiABIAxBBnJqLwEAQQF0aiIKIAovAQBBAWo7AQAgCUEEaiEJIAZBBGsiBg0ACwsgCARAA0AgB0EgaiABIAlBAXRqLwEAQQF0aiIGIAYvAQBBAWo7AQAgCUEBaiEJIAhBAWsiCA0ACwsgBCgCACEJQQ8hCyAHLwE+IhENAgwBCyAEKAIAIQkLQQ4hC0EAIREgBy8BPA0AQQ0hCyAHLwE6DQBBDCELIAcvATgNAEELIQsgBy8BNg0AQQohCyAHLwE0DQBBCSELIAcvATINAEEIIQsgBy8BMA0AQQchCyAHLwEuDQBBBiELIAcvASwNAEEFIQsgBy8BKg0AQQQhCyAHLwEoDQBBAyELIAcvASYNAEECIQsgBy8BJA0AIAcvASJFBEAgAyADKAIAIgBBBGo2AgAgAEHAAjYBACADIAMoAgAiAEEEajYCACAAQcACNgEAQQEhDQwDCyAJQQBHIRtBASELQQEhCQwBCyALIAkgCSALSxshG0EBIQ5BASEJA0AgB0EgaiAJQQF0ai8BAA0BIAlBAWoiCSALRw0ACyALIQkLQX8hCCAHLwEiIg9BAksNAUEEIAcvASQiECAPQQF0amsiBkEASA0BIAZBAXQgBy8BJiISayIGQQBIDQEgBkEBdCAHLwEoIhNrIgZBAEgNASAGQQF0IAcvASoiFGsiBkEASA0BIAZBAXQgBy8BLCIVayIGQQBIDQEgBkEBdCAHLwEuIhZrIgZBAEgNASAGQQF0IAcvATAiF2siBkEASA0BIAZBAXQgBy8BMiIZayIGQQBIDQEgBkEBdCAHLwE0IhxrIgZBAEgNASAGQQF0IAcvATYiDWsiBkEASA0BIAZBAXQgBy8BOCIYayIGQQBIDQEgBkEBdCAHLwE6IgxrIgZBAEgNASAGQQF0IAcvATwiCmsiBkEASA0BIAZBAXQgEWsiBkEASA0BIAZBACAARSAOchsNASAJIBtLIRpBACEIIAdBADsBAiAHIA87AQQgByAPIBBqIgY7AQYgByAGIBJqIgY7AQggByAGIBNqIgY7AQogByAGIBRqIgY7AQwgByAGIBVqIgY7AQ4gByAGIBZqIgY7ARAgByAGIBdqIgY7ARIgByAGIBlqIgY7ARQgByAGIBxqIgY7ARYgByAGIA1qIgY7ARggByAGIBhqIgY7ARogByAGIAxqIgY7ARwgByAGIApqOwEeAkAgAkUNACACQQFHBEAgAkF+cSEGA0AgASAIQQF0ai8BACIKBEAgByAKQQF0aiIKIAovAQAiCkEBajsBACAFIApBAXRqIAg7AQALIAEgCEEBciIMQQF0ai8BACIKBEAgByAKQQF0aiIKIAovAQAiCkEBajsBACAFIApBAXRqIAw7AQALIAhBAmohCCAGQQJrIgYNAAsLIAJBAXFFDQAgASAIQQF0ai8BACICRQ0AIAcgAkEBdGoiAiACLwEAIgJBAWo7AQAgBSACQQF0aiAIOwEACyAJIBsgGhshDUEUIRBBACEWIAUiCiEYQQAhEgJAAkACQCAADgICAAELQQEhCCANQQpLDQNBgQIhEEHw2QAhGEGw2QAhCkEBIRIMAQsgAEECRiEWQQAhEEHw2gAhGEGw2gAhCiAAQQJHBEAMAQtBASEIIA1BCUsNAgtBASANdCITQQFrIRwgAygCACEUQQAhFSANIQZBACEPQQAhDkF/IQIDQEEBIAZ0IRoCQANAIAkgD2shFwJAIAUgFUEBdGovAQAiCCAQTwRAIAogCCAQa0EBdCIAai8BACERIAAgGGotAAAhAAwBC0EAQeAAIAhBAWogEEkiBhshACAIQQAgBhshEQsgDiAPdiEMQX8gF3QhBiAaIQgDQCAUIAYgCGoiCCAMakECdGoiGSAROwECIBkgFzoAASAZIAA6AAAgCA0AC0EBIAlBAWt0IQYDQCAGIgBBAXYhBiAAIA5xDQALIAdBIGogCUEBdGoiBiAGLwEAQQFrIgY7AQAgAEEBayAOcSAAakEAIAAbIQ4gFUEBaiEVIAZB//8DcUUEQCAJIAtGDQIgASAFIBVBAXRqLwEAQQF0ai8BACEJCyAJIA1NDQAgDiAccSIAIAJGDQALQQEgCSAPIA0gDxsiD2siBnQhAiAJIAtJBEAgCyAPayEMIAkhCAJAA0AgAiAHQSBqIAhBAXRqLwEAayICQQFIDQEgAkEBdCECIAZBAWoiBiAPaiIIIAtJDQALIAwhBgtBASAGdCECC0EBIQggEiACIBNqIhNBtApLcQ0DIBYgE0HQBEtxDQMgAygCACICIABBAnRqIgggDToAASAIIAY6AAAgCCAUIBpBAnRqIhQgAmtBAnY7AQIgACECDAELCyAOBEAgFCAOQQJ0aiIAQQA7AQIgACAXOgABIABBwAA6AAALIAMgAygCACATQQJ0ajYCAAsgBCANNgIAQQAhCAsgCAusAQICfgF/IAFBAmqtIQIgACkDmC4hAwJAIAAoAqAuIgFBA2oiBEE/TQRAIAIgAa2GIAOEIQIMAQsgAUHAAEYEQCAAKAIEIAAoAhBqIAM3AAAgACAAKAIQQQhqNgIQQQMhBAwBCyAAKAIEIAAoAhBqIAIgAa2GIAOENwAAIAAgACgCEEEIajYCECABQT1rIQQgAkHAACABa62IIQILIAAgAjcDmC4gACAENgKgLguXAwICfgN/QYDJADMBACECIAApA5guIQMCQCAAKAKgLiIFQYLJAC8BACIGaiIEQT9NBEAgAiAFrYYgA4QhAgwBCyAFQcAARgRAIAAoAgQgACgCEGogAzcAACAAIAAoAhBBCGo2AhAgBiEEDAELIAAoAgQgACgCEGogAiAFrYYgA4Q3AAAgACAAKAIQQQhqNgIQIARBQGohBCACQcAAIAVrrYghAgsgACACNwOYLiAAIAQ2AqAuIAEEQAJAIARBOU4EQCAAKAIEIAAoAhBqIAI3AAAgACAAKAIQQQhqNgIQDAELIARBGU4EQCAAKAIEIAAoAhBqIAI+AAAgACAAKAIQQQRqNgIQIAAgACkDmC5CIIgiAjcDmC4gACAAKAKgLkEgayIENgKgLgsgBEEJTgR/IAAoAgQgACgCEGogAj0AACAAIAAoAhBBAmo2AhAgACkDmC5CEIghAiAAKAKgLkEQawUgBAtBAUgNACAAIAAoAhAiAUEBajYCECABIAAoAgRqIAI8AAALIABBADYCoC4gAEIANwOYLgsL8hQBEn8gASgCCCICKAIAIQUgAigCDCEHIAEoAgAhCCAAQoCAgIDQxwA3A6ApQQAhAgJAAkAgB0EASgRAQX8hDANAAkAgCCACQQJ0aiIDLwEABEAgACAAKAKgKUEBaiIDNgKgKSAAIANBAnRqQawXaiACNgIAIAAgAmpBqClqQQA6AAAgAiEMDAELIANBADsBAgsgAkEBaiICIAdHDQALIABB/C1qIQ8gAEH4LWohESAAKAKgKSIEQQFKDQIMAQsgAEH8LWohDyAAQfgtaiERQX8hDAsDQCAAIARBAWoiAjYCoCkgACACQQJ0akGsF2ogDEEBaiIDQQAgDEECSCIGGyICNgIAIAggAkECdCIEakEBOwEAIAAgAmpBqClqQQA6AAAgACAAKAL4LUEBazYC+C0gBQRAIA8gDygCACAEIAVqLwECazYCAAsgAyAMIAYbIQwgACgCoCkiBEECSA0ACwsgASAMNgIEIARBAXYhBgNAIAAgBkECdGpBrBdqKAIAIQkCQCAGIgJBAXQiAyAESg0AIAggCUECdGohCiAAIAlqQagpaiENIAYhBQNAAkAgAyAETgRAIAMhAgwBCyAIIABBrBdqIgIgA0EBciIEQQJ0aigCACILQQJ0ai8BACIOIAggAiADQQJ0aigCACIQQQJ0ai8BACICTwRAIAIgDkcEQCADIQIMAgsgAyECIABBqClqIgMgC2otAAAgAyAQai0AAEsNAQsgBCECCyAKLwEAIgQgCCAAIAJBAnRqQawXaigCACIDQQJ0ai8BACILSQRAIAUhAgwCCwJAIAQgC0cNACANLQAAIAAgA2pBqClqLQAASw0AIAUhAgwCCyAAIAVBAnRqQawXaiADNgIAIAIhBSACQQF0IgMgACgCoCkiBEwNAAsLIAAgAkECdGpBrBdqIAk2AgAgBkECTgRAIAZBAWshBiAAKAKgKSEEDAELCyAAKAKgKSEDA0AgByEGIAAgA0EBayIENgKgKSAAKAKwFyEKIAAgACADQQJ0akGsF2ooAgAiCTYCsBdBASECAkAgA0EDSA0AIAggCUECdGohDSAAIAlqQagpaiELQQIhA0EBIQUDQAJAIAMgBE4EQCADIQIMAQsgCCAAQawXaiICIANBAXIiB0ECdGooAgAiBEECdGovAQAiDiAIIAIgA0ECdGooAgAiEEECdGovAQAiAk8EQCACIA5HBEAgAyECDAILIAMhAiAAQagpaiIDIARqLQAAIAMgEGotAABLDQELIAchAgsgDS8BACIHIAggACACQQJ0akGsF2ooAgAiA0ECdGovAQAiBEkEQCAFIQIMAgsCQCAEIAdHDQAgCy0AACAAIANqQagpai0AAEsNACAFIQIMAgsgACAFQQJ0akGsF2ogAzYCACACIQUgAkEBdCIDIAAoAqApIgRMDQALC0ECIQMgAEGsF2oiByACQQJ0aiAJNgIAIAAgACgCpClBAWsiBTYCpCkgACgCsBchAiAHIAVBAnRqIAo2AgAgACAAKAKkKUEBayIFNgKkKSAHIAVBAnRqIAI2AgAgCCAGQQJ0aiINIAggAkECdGoiBS8BACAIIApBAnRqIgQvAQBqOwEAIABBqClqIgkgBmoiCyACIAlqLQAAIgIgCSAKai0AACIKIAIgCksbQQFqOgAAIAUgBjsBAiAEIAY7AQIgACAGNgKwF0EBIQVBASECAkAgACgCoCkiBEECSA0AA0AgDS8BACIKIAggAAJ/IAMgAyAETg0AGiAIIAcgA0EBciICQQJ0aigCACIEQQJ0ai8BACIOIAggByADQQJ0aigCACIQQQJ0ai8BACISTwRAIAMgDiASRw0BGiADIAQgCWotAAAgCSAQai0AAEsNARoLIAILIgJBAnRqQawXaigCACIDQQJ0ai8BACIESQRAIAUhAgwCCwJAIAQgCkcNACALLQAAIAAgA2pBqClqLQAASw0AIAUhAgwCCyAAIAVBAnRqQawXaiADNgIAIAIhBSACQQF0IgMgACgCoCkiBEwNAAsLIAZBAWohByAAIAJBAnRqQawXaiAGNgIAIAAoAqApIgNBAUoNAAsgACAAKAKkKUEBayICNgKkKSAAQawXaiIDIAJBAnRqIAAoArAXNgIAIAEoAgQhCSABKAIIIgIoAhAhBiACKAIIIQogAigCBCEQIAIoAgAhDSABKAIAIQcgAEGkF2pCADcBACAAQZwXakIANwEAIABBlBdqQgA3AQAgAEGMF2oiAUIANwEAQQAhBSAHIAMgACgCpClBAnRqKAIAQQJ0akEAOwECAkAgACgCpCkiAkG7BEoNACACQQFqIQIDQCAHIAAgAkECdGpBrBdqKAIAIgRBAnQiEmoiCyAHIAsvAQJBAnRqLwECIgNBAWogBiADIAZJGyIOOwECIAMgBk8hEwJAIAQgCUoNACAAIA5BAXRqQYwXaiIDIAMvAQBBAWo7AQBBACEDIAQgCk4EQCAQIAQgCmtBAnRqKAIAIQMLIBEgESgCACALLwEAIgQgAyAOamxqNgIAIA1FDQAgDyAPKAIAIAMgDSASai8BAmogBGxqNgIACyAFIBNqIQUgAkEBaiICQb0ERw0ACyAFRQ0AIAAgBkEBdGpBjBdqIQQDQCAGIQIDQCAAIAIiA0EBayICQQF0akGMF2oiDy8BACIKRQ0ACyAPIApBAWs7AQAgACADQQF0akGMF2oiAiACLwEAQQJqOwEAIAQgBC8BAEEBayIDOwEAIAVBAkohAiAFQQJrIQUgAg0ACyAGRQ0AQb0EIQIDQCADQf//A3EiBQRAA0AgACACQQFrIgJBAnRqQawXaigCACIDIAlKDQAgByADQQJ0aiIDLwECIAZHBEAgESARKAIAIAYgAy8BAGxqIgQ2AgAgESAEIAMvAQAgAy8BAmxrNgIAIAMgBjsBAgsgBUEBayIFDQALCyAGQQFrIgZFDQEgACAGQQF0akGMF2ovAQAhAwwACwALIwBBIGsiAiABIgAvAQBBAXQiATsBAiACIAEgAC8BAmpBAXQiATsBBCACIAEgAC8BBGpBAXQiATsBBiACIAEgAC8BBmpBAXQiATsBCCACIAEgAC8BCGpBAXQiATsBCiACIAEgAC8BCmpBAXQiATsBDCACIAEgAC8BDGpBAXQiATsBDiACIAEgAC8BDmpBAXQiATsBECACIAEgAC8BEGpBAXQiATsBEiACIAEgAC8BEmpBAXQiATsBFCACIAEgAC8BFGpBAXQiATsBFiACIAEgAC8BFmpBAXQiATsBGCACIAEgAC8BGGpBAXQiATsBGiACIAEgAC8BGmpBAXQiATsBHCACIAAvARwgAWpBAXQ7AR5BACEAIAxBAE4EQANAIAggAEECdGoiAy8BAiIBBEAgAiABQQF0aiIFIAUvAQAiBUEBajsBACADIAWtQoD+A4NCCIhCgpCAgQh+QpDCiKKIAYNCgYKEiBB+QiCIp0H/AXEgBUH/AXGtQoKQgIEIfkKQwoiiiAGDQoGChIgQfkIYiKdBgP4DcXJBECABa3Y7AQALIAAgDEchASAAQQFqIQAgAQ0ACwsLcgEBfyMAQRBrIgQkAAJ/QQAgAEUNABogAEEIaiEAIAFFBEAgAlBFBEAgAARAIABBADYCBCAAQRI2AgALQQAMAgtBAEIAIAMgABA6DAELIAQgAjcDCCAEIAE2AgAgBEIBIAMgABA6CyEAIARBEGokACAACyIAIAAgASACIAMQJiIARQRAQQAPCyAAKAIwQQAgAiADECULAwABC8gFAQR/IABB//8DcSEDIABBEHYhBEEBIQAgAkEBRgRAIAMgAS0AAGpB8f8DcCIAIARqQfH/A3BBEHQgAHIPCwJAIAEEfyACQRBJDQECQCACQa8rSwRAA0AgAkGwK2shAkG1BSEFIAEhAANAIAMgAC0AAGoiAyAEaiADIAAtAAFqIgNqIAMgAC0AAmoiA2ogAyAALQADaiIDaiADIAAtAARqIgNqIAMgAC0ABWoiA2ogAyAALQAGaiIDaiADIAAtAAdqIgNqIQQgBQRAIABBCGohACAFQQFrIQUMAQsLIARB8f8DcCEEIANB8f8DcCEDIAFBsCtqIQEgAkGvK0sNAAsgAkEISQ0BCwNAIAMgAS0AAGoiACAEaiAAIAEtAAFqIgBqIAAgAS0AAmoiAGogACABLQADaiIAaiAAIAEtAARqIgBqIAAgAS0ABWoiAGogACABLQAGaiIAaiAAIAEtAAdqIgNqIQQgAUEIaiEBIAJBCGsiAkEHSw0ACwsCQCACRQ0AIAJBAWshBiACQQNxIgUEQCABIQADQCACQQFrIQIgAyAALQAAaiIDIARqIQQgAEEBaiIBIQAgBUEBayIFDQALCyAGQQNJDQADQCADIAEtAABqIgAgAS0AAWoiBSABLQACaiIGIAEtAANqIgMgBiAFIAAgBGpqamohBCABQQRqIQEgAkEEayICDQALCyADQfH/A3AgBEHx/wNwQRB0cgVBAQsPCwJAIAJFDQAgAkEBayEGIAJBA3EiBQRAIAEhAANAIAJBAWshAiADIAAtAABqIgMgBGohBCAAQQFqIgEhACAFQQFrIgUNAAsLIAZBA0kNAANAIAMgAS0AAGoiACABLQABaiIFIAEtAAJqIgYgAS0AA2oiAyAGIAUgACAEampqaiEEIAFBBGohASACQQRrIgINAAsLIANB8f8DcCAEQfH/A3BBEHRyCx8AIAAgAiADQcCAASgCABEAACEAIAEgAiADEAcaIAALIwAgACAAKAJAIAIgA0HUgAEoAgARAAA2AkAgASACIAMQBxoLzSoCGH8HfiAAKAIMIgIgACgCECIDaiEQIAMgAWshASAAKAIAIgUgACgCBGohA0F/IAAoAhwiBygCpAF0IQRBfyAHKAKgAXQhCyAHKAI4IQwCf0EAIAcoAiwiEUUNABpBACACIAxJDQAaIAJBhAJqIAwgEWpNCyEWIBBBgwJrIRMgASACaiEXIANBDmshFCAEQX9zIRggC0F/cyESIAcoApwBIRUgBygCmAEhDSAHKAKIASEIIAc1AoQBIR0gBygCNCEOIAcoAjAhGSAQQQFqIQ8DQCAIQThyIQYgBSAIQQN2QQdxayELAn8gAiANIAUpAAAgCK2GIB2EIh2nIBJxQQJ0IgFqIgMtAAAiBA0AGiACIAEgDWoiAS0AAjoAACAGIAEtAAEiAWshBiACQQFqIA0gHSABrYgiHacgEnFBAnQiAWoiAy0AACIEDQAaIAIgASANaiIDLQACOgABIAYgAy0AASIDayEGIA0gHSADrYgiHacgEnFBAnRqIgMtAAAhBCACQQJqCyEBIAtBB2ohBSAGIAMtAAEiAmshCCAdIAKtiCEdAkACQAJAIARB/wFxRQ0AAkACQAJAAkACQANAIARBEHEEQCAVIB0gBK1CD4OIIhqnIBhxQQJ0aiECAn8gCCAEQQ9xIgZrIgRBG0sEQCAEIQggBQwBCyAEQThyIQggBSkAACAErYYgGoQhGiAFIARBA3ZrQQdqCyELIAMzAQIhGyAIIAItAAEiA2shCCAaIAOtiCEaIAItAAAiBEEQcQ0CA0AgBEHAAHFFBEAgCCAVIAIvAQJBAnRqIBqnQX8gBHRBf3NxQQJ0aiICLQABIgNrIQggGiADrYghGiACLQAAIgRBEHFFDQEMBAsLIAdB0f4ANgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcNAQsCfwJ/An8gASgCBCICBEAgBCAAKAIoIAIQHiAAKAIcIQELIAEoAlAiAgsEQCAAKAIkIAAoAiggAhAeIAAoAhwhAQsgASgCTCICCwRAIAAoAiQgACgCKCACEB4gACgCHCEBCyABKAJIIgILBEAgACgCJCAAKAIoIAIQHiAAKAIcIQELIAAoAiQgACgCKCABEB4gAEEANgIcQX1BACADQfEARhshAgsgAgvrCQEIfyAAKAIwIgMgACgCDEEFayICIAIgA0sbIQggACgCACIEKAIEIQkgAUEERiEHAkADQCAEKAIQIgMgACgCoC5BKmpBA3UiAkkEQEEBIQYMAgsgCCADIAJrIgMgACgCaCAAKAJYayICIAQoAgRqIgVB//8DIAVB//8DSRsiBiADIAZJGyIDSwRAQQEhBiADQQBHIAdyRQ0CIAFFDQIgAyAFRw0CCyAAQQBBACAHIAMgBUZxIgUQOSAAIAAoAhBBBGsiBDYCECAAKAIEIARqIAM7AAAgACAAKAIQQQJqIgQ2AhAgACgCBCAEaiADQX9zOwAAIAAgACgCEEECajYCECAAKAIAEAoCfyACBEAgACgCACgCDCAAKAJIIAAoAlhqIAMgAiACIANLGyICEAcaIAAoAgAiBCAEKAIMIAJqNgIMIAQgBCgCECACazYCECAEIAQoAhQgAmo2AhQgACAAKAJYIAJqNgJYIAMgAmshAwsgAwsEQCAAKAIAIgIgAigCDCADEIMBIAAoAgAiAiACKAIMIANqNgIMIAIgAigCECADazYCECACIAIoAhQgA2o2AhQLIAAoAgAhBCAFRQ0AC0EAIQYLAkAgCSAEKAIEayICRQRAIAAoAmghAwwBCwJAIAAoAjAiAyACTQRAIABBAjYCgC4gACgCSCAEKAIAIANrIAMQBxogACAAKAIwIgM2AoQuIAAgAzYCaAwBCyACIAAoAkQgACgCaCIFa08EQCAAIAUgA2siBDYCaCAAKAJIIgUgAyAFaiAEEAcaIAAoAoAuIgNBAU0EQCAAIANBAWo2AoAuCyAAIAAoAmgiBSAAKAKELiIDIAMgBUsbNgKELiAAKAIAIQQLIAAoAkggBWogBCgCACACayACEAcaIAAgACgCaCACaiIDNgJoIAAgACgCMCAAKAKELiIEayIFIAIgAiAFSxsgBGo2AoQuCyAAIAM2AlgLIAAgAyAAKAJAIgIgAiADSRs2AkBBAyECAkAgBkUNACAAKAIAIgUoAgQhAgJAAkAgAUF7cUUNACACDQBBASECIAMgACgCWEYNAiAAKAJEIANrIQRBACECDAELIAIgACgCRCADayIETQ0AIAAoAlgiByAAKAIwIgZIDQAgACADIAZrIgM2AmggACAHIAZrNgJYIAAoAkgiAiACIAZqIAMQBxogACgCgC4iA0EBTQRAIAAgA0EBajYCgC4LIAAgACgCaCIDIAAoAoQuIgIgAiADSxs2AoQuIAAoAjAgBGohBCAAKAIAIgUoAgQhAgsCQCACIAQgAiAESRsiAkUEQCAAKAIwIQUMAQsgBSAAKAJIIANqIAIQgwEgACAAKAJoIAJqIgM2AmggACAAKAIwIgUgACgChC4iBGsiBiACIAIgBksbIARqNgKELgsgACADIAAoAkAiAiACIANJGzYCQCADIAAoAlgiBmsiAyAFIAAoAgwgACgCoC5BKmpBA3VrIgJB//8DIAJB//8DSRsiBCAEIAVLG0kEQEEAIQIgAUEERiADQQBHckUNASABRQ0BIAAoAgAoAgQNASADIARLDQELQQAhAiABQQRGBEAgACgCACgCBEUgAyAETXEhAgsgACAAKAJIIAZqIAQgAyADIARLGyIBIAIQOSAAIAAoAlggAWo2AlggACgCABAKQQJBACACGw8LIAIL/woCCn8DfiAAKQOYLiENIAAoAqAuIQQgAkEATgRAQQRBAyABLwECIggbIQlBB0GKASAIGyEFQX8hCgNAIAghByABIAsiDEEBaiILQQJ0ai8BAiEIAkACQCAGQQFqIgMgBU4NACAHIAhHDQAgAyEGDAELAkAgAyAJSARAIAAgB0ECdGoiBkHOFWohCSAGQcwVaiEKA0AgCjMBACEPAn8gBCAJLwEAIgZqIgVBP00EQCAPIASthiANhCENIAUMAQsgBEHAAEYEQCAAKAIEIAAoAhBqIA03AAAgACAAKAIQQQhqNgIQIA8hDSAGDAELIAAoAgQgACgCEGogDyAErYYgDYQ3AAAgACAAKAIQQQhqNgIQIA9BwAAgBGutiCENIAVBQGoLIQQgA0EBayIDDQALDAELIAcEQAJAIAcgCkYEQCANIQ8gBCEFIAMhBgwBCyAAIAdBAnRqIgNBzBVqMwEAIQ8gBCADQc4Vai8BACIDaiIFQT9NBEAgDyAErYYgDYQhDwwBCyAEQcAARgRAIAAoAgQgACgCEGogDTcAACAAIAAoAhBBCGo2AhAgAyEFDAELIAAoAgQgACgCEGogDyAErYYgDYQ3AAAgACAAKAIQQQhqNgIQIAVBQGohBSAPQcAAIARrrYghDwsgADMBjBYhDgJAIAUgAC8BjhYiBGoiA0E/TQRAIA4gBa2GIA+EIQ4MAQsgBUHAAEYEQCAAKAIEIAAoAhBqIA83AAAgACAAKAIQQQhqNgIQIAQhAwwBCyAAKAIEIAAoAhBqIA4gBa2GIA+ENwAAIAAgACgCEEEIajYCECADQUBqIQMgDkHAACAFa62IIQ4LIAasQgN9IQ0gA0E9TQRAIANBAmohBCANIAOthiAOhCENDAILIANBwABGBEAgACgCBCAAKAIQaiAONwAAIAAgACgCEEEIajYCEEECIQQMAgsgACgCBCAAKAIQaiANIAOthiAOhDcAACAAIAAoAhBBCGo2AhAgA0E+ayEEIA1BwAAgA2utiCENDAELIAZBCUwEQCAAMwGQFiEOAkAgBCAALwGSFiIFaiIDQT9NBEAgDiAErYYgDYQhDgwBCyAEQcAARgRAIAAoAgQgACgCEGogDTcAACAAIAAoAhBBCGo2AhAgBSEDDAELIAAoAgQgACgCEGogDiAErYYgDYQ3AAAgACAAKAIQQQhqNgIQIANBQGohAyAOQcAAIARrrYghDgsgBqxCAn0hDSADQTxNBEAgA0EDaiEEIA0gA62GIA6EIQ0MAgsgA0HAAEYEQCAAKAIEIAAoAhBqIA43AAAgACAAKAIQQQhqNgIQQQMhBAwCCyAAKAIEIAAoAhBqIA0gA62GIA6ENwAAIAAgACgCEEEIajYCECADQT1rIQQgDUHAACADa62IIQ0MAQsgADMBlBYhDgJAIAQgAC8BlhYiBWoiA0E/TQRAIA4gBK2GIA2EIQ4MAQsgBEHAAEYEQCAAKAIEIAAoAhBqIA03AAAgACAAKAIQQQhqNgIQIAUhAwwBCyAAKAIEIAAoAhBqIA4gBK2GIA2ENwAAIAAgACgCEEEIajYCECADQUBqIQMgDkHAACAEa62IIQ4LIAatQgp9IQ0gA0E4TQRAIANBB2ohBCANIAOthiAOhCENDAELIANBwABGBEAgACgCBCAAKAIQaiAONwAAIAAgACgCEEEIajYCEEEHIQQMAQsgACgCBCAAKAIQaiANIAOthiAOhDcAACAAIAAoAhBBCGo2AhAgA0E5ayEEIA1BwAAgA2utiCENC0EAIQYCfyAIRQRAQYoBIQVBAwwBC0EGQQcgByAIRiIDGyEFQQNBBCADGwshCSAHIQoLIAIgDEcNAAsLIAAgBDYCoC4gACANNwOYLgv5BQIIfwJ+AkAgACgC8C1FBEAgACkDmC4hCyAAKAKgLiEDDAELA0AgCSIDQQNqIQkgAyAAKALsLWoiAy0AAiEFIAApA5guIQwgACgCoC4hBAJAIAMvAAAiB0UEQCABIAVBAnRqIgMzAQAhCyAEIAMvAQIiBWoiA0E/TQRAIAsgBK2GIAyEIQsMAgsgBEHAAEYEQCAAKAIEIAAoAhBqIAw3AAAgACAAKAIQQQhqNgIQIAUhAwwCCyAAKAIEIAAoAhBqIAsgBK2GIAyENwAAIAAgACgCEEEIajYCECADQUBqIQMgC0HAACAEa62IIQsMAQsgBUGAzwBqLQAAIghBAnQiBiABaiIDQYQIajMBACELIANBhghqLwEAIQMgCEEIa0ETTQRAIAUgBkGA0QBqKAIAa60gA62GIAuEIQsgBkHA0wBqKAIAIANqIQMLIAMgAiAHQQFrIgcgB0EHdkGAAmogB0GAAkkbQYDLAGotAAAiBUECdCIIaiIKLwECaiEGIAozAQAgA62GIAuEIQsgBCAFQQRJBH8gBgUgByAIQYDSAGooAgBrrSAGrYYgC4QhCyAIQcDUAGooAgAgBmoLIgVqIgNBP00EQCALIASthiAMhCELDAELIARBwABGBEAgACgCBCAAKAIQaiAMNwAAIAAgACgCEEEIajYCECAFIQMMAQsgACgCBCAAKAIQaiALIASthiAMhDcAACAAIAAoAhBBCGo2AhAgA0FAaiEDIAtBwAAgBGutiCELCyAAIAs3A5guIAAgAzYCoC4gCSAAKALwLUkNAAsLIAFBgAhqMwEAIQwCQCADIAFBgghqLwEAIgJqIgFBP00EQCAMIAOthiALhCEMDAELIANBwABGBEAgACgCBCAAKAIQaiALNwAAIAAgACgCEEEIajYCECACIQEMAQsgACgCBCAAKAIQaiAMIAOthiALhDcAACAAIAAoAhBBCGo2AhAgAUFAaiEBIAxBwAAgA2utiCEMCyAAIAw3A5guIAAgATYCoC4L8AQBA38gAEHkAWohAgNAIAIgAUECdCIDakEAOwEAIAIgA0EEcmpBADsBACABQQJqIgFBngJHDQALIABBADsBzBUgAEEAOwHYEyAAQZQWakEAOwEAIABBkBZqQQA7AQAgAEGMFmpBADsBACAAQYgWakEAOwEAIABBhBZqQQA7AQAgAEGAFmpBADsBACAAQfwVakEAOwEAIABB+BVqQQA7AQAgAEH0FWpBADsBACAAQfAVakEAOwEAIABB7BVqQQA7AQAgAEHoFWpBADsBACAAQeQVakEAOwEAIABB4BVqQQA7AQAgAEHcFWpBADsBACAAQdgVakEAOwEAIABB1BVqQQA7AQAgAEHQFWpBADsBACAAQcwUakEAOwEAIABByBRqQQA7AQAgAEHEFGpBADsBACAAQcAUakEAOwEAIABBvBRqQQA7AQAgAEG4FGpBADsBACAAQbQUakEAOwEAIABBsBRqQQA7AQAgAEGsFGpBADsBACAAQagUakEAOwEAIABBpBRqQQA7AQAgAEGgFGpBADsBACAAQZwUakEAOwEAIABBmBRqQQA7AQAgAEGUFGpBADsBACAAQZAUakEAOwEAIABBjBRqQQA7AQAgAEGIFGpBADsBACAAQYQUakEAOwEAIABBgBRqQQA7AQAgAEH8E2pBADsBACAAQfgTakEAOwEAIABB9BNqQQA7AQAgAEHwE2pBADsBACAAQewTakEAOwEAIABB6BNqQQA7AQAgAEHkE2pBADsBACAAQeATakEAOwEAIABB3BNqQQA7AQAgAEIANwL8LSAAQeQJakEBOwEAIABBADYC+C0gAEEANgLwLQuKAwIGfwR+QcgAEAkiBEUEQEEADwsgBEIANwMAIARCADcDMCAEQQA2AiggBEIANwMgIARCADcDGCAEQgA3AxAgBEIANwMIIARCADcDOCABUARAIARBCBAJIgA2AgQgAEUEQCAEEAYgAwRAIANBADYCBCADQQ42AgALQQAPCyAAQgA3AwAgBA8LAkAgAaciBUEEdBAJIgZFDQAgBCAGNgIAIAVBA3RBCGoQCSIFRQ0AIAQgATcDECAEIAU2AgQDQCAAIAynIghBBHRqIgcpAwgiDVBFBEAgBygCACIHRQRAIAMEQCADQQA2AgQgA0ESNgIACyAGEAYgBRAGIAQQBkEADwsgBiAKp0EEdGoiCSANNwMIIAkgBzYCACAFIAhBA3RqIAs3AwAgCyANfCELIApCAXwhCgsgDEIBfCIMIAFSDQALIAQgCjcDCCAEQgAgCiACGzcDGCAFIAqnQQN0aiALNwMAIAQgCzcDMCAEDwsgAwRAIANBADYCBCADQQ42AgALIAYQBiAEEAZBAAvlAQIDfwF+QX8hBQJAIAAgASACQQAQJiIERQ0AIAAgASACEIsBIgZFDQACfgJAIAJBCHENACAAKAJAIAGnQQR0aigCCCICRQ0AIAIgAxAhQQBOBEAgAykDAAwCCyAAQQhqIgAEQCAAQQA2AgQgAEEPNgIAC0F/DwsgAxAqIAMgBCgCGDYCLCADIAQpAyg3AxggAyAEKAIUNgIoIAMgBCkDIDcDICADIAQoAhA7ATAgAyAELwFSOwEyQvwBQtwBIAQtAAYbCyEHIAMgBjYCCCADIAE3AxAgAyAHQgOENwMAQQAhBQsgBQspAQF/IAAgASACIABBCGoiABAmIgNFBEBBAA8LIAMoAjBBACACIAAQJQuAAwEGfwJ/An9BMCABQYB/Sw0BGgJ/IAFBgH9PBEBBhIQBQTA2AgBBAAwBC0EAQRAgAUELakF4cSABQQtJGyIFQcwAahAJIgFFDQAaIAFBCGshAgJAIAFBP3FFBEAgAiEBDAELIAFBBGsiBigCACIHQXhxIAFBP2pBQHFBCGsiASABQUBrIAEgAmtBD0sbIgEgAmsiA2shBCAHQQNxRQRAIAIoAgAhAiABIAQ2AgQgASACIANqNgIADAELIAEgBCABKAIEQQFxckECcjYCBCABIARqIgQgBCgCBEEBcjYCBCAGIAMgBigCAEEBcXJBAnI2AgAgAiADaiIEIAQoAgRBAXI2AgQgAiADEDsLAkAgASgCBCICQQNxRQ0AIAJBeHEiAyAFQRBqTQ0AIAEgBSACQQFxckECcjYCBCABIAVqIgIgAyAFayIFQQNyNgIEIAEgA2oiAyADKAIEQQFyNgIEIAIgBRA7CyABQQhqCyIBRQsEQEEwDwsgACABNgIAQQALCwoAIABBiIQBEAQL6AIBBX8gACgCUCEBIAAvATAhBEEEIQUDQCABQQAgAS8BACICIARrIgMgAiADSRs7AQAgAUEAIAEvAQIiAiAEayIDIAIgA0kbOwECIAFBACABLwEEIgIgBGsiAyACIANJGzsBBCABQQAgAS8BBiICIARrIgMgAiADSRs7AQYgBUGAgARGRQRAIAFBCGohASAFQQRqIQUMAQsLAkAgBEUNACAEQQNxIQUgACgCTCEBIARBAWtBA08EQCAEIAVrIQADQCABQQAgAS8BACICIARrIgMgAiADSRs7AQAgAUEAIAEvAQIiAiAEayIDIAIgA0kbOwECIAFBACABLwEEIgIgBGsiAyACIANJGzsBBCABQQAgAS8BBiICIARrIgMgAiADSRs7AQYgAUEIaiEBIABBBGsiAA0ACwsgBUUNAANAIAFBACABLwEAIgAgBGsiAiAAIAJJGzsBACABQQJqIQEgBUEBayIFDQALCwuDAQEEfyACQQFOBEAgAiAAKAJIIAFqIgJqIQMgACgCUCEEA0AgBCACKAAAQbHz3fF5bEEPdkH+/wdxaiIFLwEAIgYgAUH//wNxRwRAIAAoAkwgASAAKAI4cUH//wNxQQF0aiAGOwEAIAUgATsBAAsgAUEBaiEBIAJBAWoiAiADSQ0ACwsLUAECfyABIAAoAlAgACgCSCABaigAAEGx893xeWxBD3ZB/v8HcWoiAy8BACICRwRAIAAoAkwgACgCOCABcUEBdGogAjsBACADIAE7AQALIAILugEBAX8jAEEQayICJAAgAkEAOgAIQYCBAUECNgIAQfyAAUEDNgIAQfiAAUEENgIAQfSAAUEFNgIAQfCAAUEGNgIAQeyAAUEHNgIAQeiAAUEINgIAQeSAAUEJNgIAQeCAAUEKNgIAQdyAAUELNgIAQdiAAUEMNgIAQdSAAUENNgIAQdCAAUEONgIAQcyAAUEPNgIAQciAAUEQNgIAQcSAAUERNgIAQcCAAUESNgIAIAAgARBYIAJBEGokAAu9AQEBfyMAQRBrIgEkACABQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgAEEANgJAIAFBEGokAEEAC70BAQF/IwBBEGsiASQAIAFBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAKAJAIQAgAUEQaiQAIAALvgEBAX8jAEEQayIEJAAgBEEAOgAIQYCBAUECNgIAQfyAAUEDNgIAQfiAAUEENgIAQfSAAUEFNgIAQfCAAUEGNgIAQeyAAUEHNgIAQeiAAUEINgIAQeSAAUEJNgIAQeCAAUEKNgIAQdyAAUELNgIAQdiAAUEMNgIAQdSAAUENNgIAQdCAAUEONgIAQcyAAUEPNgIAQciAAUEQNgIAQcSAAUERNgIAQcCAAUESNgIAIAAgASACIAMQVyAEQRBqJAALygEAIwBBEGsiAyQAIANBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAIAAoAkAgASACQdSAASgCABEAADYCQCADQRBqJAALwAEBAX8jAEEQayIDJAAgA0EAOgAIQYCBAUECNgIAQfyAAUEDNgIAQfiAAUEENgIAQfSAAUEFNgIAQfCAAUEGNgIAQeyAAUEHNgIAQeiAAUEINgIAQeSAAUEJNgIAQeCAAUEKNgIAQdyAAUELNgIAQdiAAUEMNgIAQdSAAUENNgIAQdCAAUEONgIAQcyAAUEPNgIAQciAAUEQNgIAQcSAAUERNgIAQcCAAUESNgIAIAAgASACEF0hACADQRBqJAAgAAu+AQEBfyMAQRBrIgIkACACQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgACABEFwhACACQRBqJAAgAAu2AQEBfyMAQRBrIgAkACAAQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgAEEQaiQAQQgLwgEBAX8jAEEQayIEJAAgBEEAOgAIQYCBAUECNgIAQfyAAUEDNgIAQfiAAUEENgIAQfSAAUEFNgIAQfCAAUEGNgIAQeyAAUEHNgIAQeiAAUEINgIAQeSAAUEJNgIAQeCAAUEKNgIAQdyAAUELNgIAQdiAAUEMNgIAQdSAAUENNgIAQdCAAUEONgIAQcyAAUEPNgIAQciAAUEQNgIAQcSAAUERNgIAQcCAAUESNgIAIAAgASACIAMQWSEAIARBEGokACAAC8IBAQF/IwBBEGsiBCQAIARBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAIAEgAiADEFYhACAEQRBqJAAgAAsHACAALwEwC8ABAQF/IwBBEGsiAyQAIANBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAIAEgAhBVIQAgA0EQaiQAIAALBwAgACgCQAsaACAAIAAoAkAgASACQdSAASgCABEAADYCQAsLACAAQQA2AkBBAAsHACAAKAIgCwQAQQgLzgUCA34BfyMAQYBAaiIIJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAEDhECAwwFAAEECAkJCQkJCQcJBgkLIANCCFoEfiACIAEoAmQ2AgAgAiABKAJoNgIEQggFQn8LIQYMCwsgARAGDAoLIAEoAhAiAgRAIAIgASkDGCABQeQAaiICEEEiA1ANCCABKQMIIgVCf4UgA1QEQCACBEAgAkEANgIEIAJBFTYCAAsMCQsgAUEANgIQIAEgAyAFfDcDCCABIAEpAwAgA3w3AwALIAEtAHgEQCABKQMAIQUMCQtCACEDIAEpAwAiBVAEQCABQgA3AyAMCgsDQCAAIAggBSADfSIFQoDAACAFQoDAAFQbEBEiB0J/VwRAIAFB5ABqIgEEQCABIAAoAgw2AgAgASAAKAIQNgIECwwJCyAHUEUEQCABKQMAIgUgAyAHfCIDWA0KDAELCyABQeQAagRAIAFBADYCaCABQRE2AmQLDAcLIAEpAwggASkDICIFfSIHIAMgAyAHVhsiA1ANCAJAIAEtAHhFDQAgACAFQQAQFEF/Sg0AIAFB5ABqIgEEQCABIAAoAgw2AgAgASAAKAIQNgIECwwHCyAAIAIgAxARIgZCf1cEQCABQeQAagRAIAFBADYCaCABQRE2AmQLDAcLIAEgASkDICAGfCIDNwMgIAZCAFINCEIAIQYgAyABKQMIWg0IIAFB5ABqBEAgAUEANgJoIAFBETYCZAsMBgsgASkDICABKQMAIgV9IAEpAwggBX0gAiADIAFB5ABqEEQiA0IAUw0FIAEgASkDACADfDcDIAwHCyACIAFBKGoQYEEfdawhBgwGCyABMABgIQYMBQsgASkDcCEGDAQLIAEpAyAgASkDAH0hBgwDCyABQeQAagRAIAFBADYCaCABQRw2AmQLC0J/IQYMAQsgASAFNwMgCyAIQYBAayQAIAYLBwAgACgCAAsPACAAIAAoAjBBAWo2AjALGABB+IMBQgA3AgBBgIQBQQA2AgBB+IMBCwcAIABBDGoLBwAgACgCLAsHACAAKAIoCwcAIAAoAhgLFQAgACABrSACrUIghoQgAyAEEIoBCxMBAX4gABAzIgFCIIinEAAgAacLbwEBfiABrSACrUIghoQhBSMAQRBrIgEkAAJ/IABFBEAgBVBFBEAgBARAIARBADYCBCAEQRI2AgALQQAMAgtBAEIAIAMgBBA6DAELIAEgBTcDCCABIAA2AgAgAUIBIAMgBBA6CyEAIAFBEGokACAACxQAIAAgASACrSADrUIghoQgBBBSC9oCAgJ/AX4CfyABrSACrUIghoQiByAAKQMwVEEAIARBCkkbRQRAIABBCGoEQCAAQQA2AgwgAEESNgIIC0F/DAELIAAtABhBAnEEQCAAQQhqBEAgAEEANgIMIABBGTYCCAtBfwwBCyADBH8gA0H//wNxQQhGIANBfUtyBUEBC0UEQCAAQQhqBEAgAEEANgIMIABBEDYCCAtBfwwBCyAAKAJAIgEgB6ciBUEEdGooAgAiAgR/IAIoAhAgA0YFIANBf0YLIQYgASAFQQR0aiIBIQUgASgCBCEBAkAgBgRAIAFFDQEgAUEAOwFQIAEgASgCAEF+cSIANgIAIAANASABECAgBUEANgIEQQAMAgsCQCABDQAgBSACECsiATYCBCABDQAgAEEIagRAIABBADYCDCAAQQ42AggLQX8MAgsgASAEOwFQIAEgAzYCECABIAEoAgBBAXI2AgALQQALCxwBAX4gACABIAIgAEEIahBMIgNCIIinEAAgA6cLHwEBfiAAIAEgAq0gA61CIIaEEBEiBEIgiKcQACAEpwteAQF+An5CfyAARQ0AGiAAKQMwIgIgAUEIcUUNABpCACACUA0AGiAAKAJAIQADQCACIAKnQQR0IABqQRBrKAIADQEaIAJCAX0iAkIAUg0AC0IACyICQiCIpxAAIAKnCxMAIAAgAa0gAq1CIIaEIAMQiwELnwEBAn4CfiACrSADrUIghoQhBUJ/IQQCQCAARQ0AIAAoAgQNACAAQQRqIQIgBUJ/VwRAIAIEQCACQQA2AgQgAkESNgIAC0J/DAILQgAhBCAALQAQDQAgBVANACAAKAIUIAEgBRARIgRCf1UNACAAKAIUIQAgAgRAIAIgACgCDDYCACACIAAoAhA2AgQLQn8hBAsgBAsiBEIgiKcQACAEpwueAQEBfwJ/IAAgACABrSACrUIghoQgAyAAKAIcEH8iAQRAIAEQMkF/TARAIABBCGoEQCAAIAEoAgw2AgggACABKAIQNgIMCyABEAtBAAwCC0EYEAkiBEUEQCAAQQhqBEAgAEEANgIMIABBDjYCCAsgARALQQAMAgsgBCAANgIAIARBADYCDCAEQgA3AgQgBCABNgIUIARBADoAEAsgBAsLsQICAX8BfgJ/QX8hBAJAIAAgAa0gAq1CIIaEIgZBAEEAECZFDQAgAC0AGEECcQRAIABBCGoEQCAAQQA2AgwgAEEZNgIIC0F/DAILIAAoAkAiASAGpyICQQR0aiIEKAIIIgUEQEEAIQQgBSADEHFBf0oNASAAQQhqBEAgAEEANgIMIABBDzYCCAtBfwwCCwJAIAQoAgAiBQRAIAUoAhQgA0YNAQsCQCABIAJBBHRqIgEoAgQiBA0AIAEgBRArIgQ2AgQgBA0AIABBCGoEQCAAQQA2AgwgAEEONgIIC0F/DAMLIAQgAzYCFCAEIAQoAgBBIHI2AgBBAAwCC0EAIQQgASACQQR0aiIBKAIEIgBFDQAgACAAKAIAQV9xIgI2AgAgAg0AIAAQICABQQA2AgQLIAQLCxQAIAAgAa0gAq1CIIaEIAQgBRBzCxIAIAAgAa0gAq1CIIaEIAMQFAtBAQF+An4gAUEAIAIbRQRAIABBCGoEQCAAQQA2AgwgAEESNgIIC0J/DAELIAAgASACIAMQdAsiBEIgiKcQACAEpwvGAwIFfwF+An4CQAJAIAAiBC0AGEECcQRAIARBCGoEQCAEQQA2AgwgBEEZNgIICwwBCyABRQRAIARBCGoEQCAEQQA2AgwgBEESNgIICwwBCyABECIiByABakEBay0AAEEvRwRAIAdBAmoQCSIARQRAIARBCGoEQCAEQQA2AgwgBEEONgIICwwCCwJAAkAgACIGIAEiBXNBA3ENACAFQQNxBEADQCAGIAUtAAAiAzoAACADRQ0DIAZBAWohBiAFQQFqIgVBA3ENAAsLIAUoAgAiA0F/cyADQYGChAhrcUGAgYKEeHENAANAIAYgAzYCACAFKAIEIQMgBkEEaiEGIAVBBGohBSADQYGChAhrIANBf3NxQYCBgoR4cUUNAAsLIAYgBS0AACIDOgAAIANFDQADQCAGIAUtAAEiAzoAASAGQQFqIQYgBUEBaiEFIAMNAAsLIAcgACIDakEvOwAACyAEQQBCAEEAEFIiAEUEQCADEAYMAQsgBCADIAEgAxsgACACEHQhCCADEAYgCEJ/VwRAIAAQCyAIDAMLIAQgCEEDQYCA/I8EEHNBf0oNASAEIAgQchoLQn8hCAsgCAsiCEIgiKcQACAIpwsQACAAIAGtIAKtQiCGhBByCxYAIAAgAa0gAq1CIIaEIAMgBCAFEGYL3iMDD38IfgF8IwBB8ABrIgkkAAJAIAFBAE5BACAAG0UEQCACBEAgAkEANgIEIAJBEjYCAAsMAQsgACkDGCISAn5BsIMBKQMAIhNCf1EEQCAJQoOAgIBwNwMwIAlChoCAgPAANwMoIAlCgYCAgCA3AyBBsIMBQQAgCUEgahAkNwMAIAlCj4CAgHA3AxAgCUKJgICAoAE3AwAgCUKMgICA0AE3AwhBuIMBQQggCRAkNwMAQbCDASkDACETCyATC4MgE1IEQCACBEAgAkEANgIEIAJBHDYCAAsMAQsgASABQRByQbiDASkDACITIBKDIBNRGyIKQRhxQRhGBEAgAgRAIAJBADYCBCACQRk2AgALDAELIAlBOGoQKgJAIAAgCUE4ahAhBEACQCAAKAIMQQVGBEAgACgCEEEsRg0BCyACBEAgAiAAKAIMNgIAIAIgACgCEDYCBAsMAgsgCkEBcUUEQCACBEAgAkEANgIEIAJBCTYCAAsMAwsgAhBJIgVFDQEgBSAKNgIEIAUgADYCACAKQRBxRQ0CIAUgBSgCFEECcjYCFCAFIAUoAhhBAnI2AhgMAgsgCkECcQRAIAIEQCACQQA2AgQgAkEKNgIACwwCCyAAEDJBf0wEQCACBEAgAiAAKAIMNgIAIAIgACgCEDYCBAsMAQsCfyAKQQhxBEACQCACEEkiAUUNACABIAo2AgQgASAANgIAIApBEHFFDQAgASABKAIUQQJyNgIUIAEgASgCGEECcjYCGAsgAQwBCyMAQUBqIg4kACAOQQhqECoCQCAAIA5BCGoQIUF/TARAIAIEQCACIAAoAgw2AgAgAiAAKAIQNgIECwwBCyAOLQAIQQRxRQRAIAIEQCACQYoBNgIEIAJBBDYCAAsMAQsgDikDICETIAIQSSIFRQRAQQAhBQwBCyAFIAo2AgQgBSAANgIAIApBEHEEQCAFIAUoAhRBAnI2AhQgBSAFKAIYQQJyNgIYCwJAAkACQCATUARAAn8gACEBAkADQCABKQMYQoCAEINCAFINASABKAIAIgENAAtBAQwBCyABQQBCAEESEA6nCw0EIAVBCGoEQCAFQQA2AgwgBUETNgIICwwBCyMAQdAAayIBJAACQCATQhVYBEAgBUEIagRAIAVBADYCDCAFQRM2AggLDAELAkACQCAFKAIAQgAgE0KqgAQgE0KqgARUGyISfUECEBRBf0oNACAFKAIAIgMoAgxBBEYEQCADKAIQQRZGDQELIAVBCGoEQCAFIAMoAgw2AgggBSADKAIQNgIMCwwBCyAFKAIAEDMiE0J/VwRAIAUoAgAhAyAFQQhqIggEQCAIIAMoAgw2AgAgCCADKAIQNgIECwwBCyAFKAIAIBJBACAFQQhqIg8QLSIERQ0BIBJCqoAEWgRAAkAgBCkDCEIUVARAIARBADoAAAwBCyAEQhQ3AxAgBEEBOgAACwsgAQRAIAFBADYCBCABQRM2AgALIARCABATIQwCQCAELQAABH4gBCkDCCAEKQMQfQVCAAunIgdBEmtBA0sEQEJ/IRcDQCAMQQFrIQMgByAMakEVayEGAkADQCADQQFqIgNB0AAgBiADaxB6IgNFDQEgA0EBaiIMQZ8SQQMQPQ0ACwJAIAMgBCgCBGusIhIgBCkDCFYEQCAEQQA6AAAMAQsgBCASNwMQIARBAToAAAsgBC0AAAR+IAQpAxAFQgALIRICQCAELQAABH4gBCkDCCAEKQMQfQVCAAtCFVgEQCABBEAgAUEANgIEIAFBEzYCAAsMAQsgBEIEEBMoAABB0JaVMEcEQCABBEAgAUEANgIEIAFBEzYCAAsMAQsCQAJAAkAgEkIUVA0AIAQoAgQgEqdqQRRrKAAAQdCWmThHDQACQCASQhR9IhQgBCIDKQMIVgRAIANBADoAAAwBCyADIBQ3AxAgA0EBOgAACyAFKAIUIRAgBSgCACEGIAMtAAAEfiAEKQMQBUIACyEWIARCBBATGiAEEAwhCyAEEAwhDSAEEB0iFEJ/VwRAIAEEQCABQRY2AgQgAUEENgIACwwECyAUQjh8IhUgEyAWfCIWVgRAIAEEQCABQQA2AgQgAUEVNgIACwwECwJAAkAgEyAUVg0AIBUgEyAEKQMIfFYNAAJAIBQgE30iFSAEKQMIVgRAIANBADoAAAwBCyADIBU3AxAgA0EBOgAAC0EAIQcMAQsgBiAUQQAQFEF/TARAIAEEQCABIAYoAgw2AgAgASAGKAIQNgIECwwFC0EBIQcgBkI4IAFBEGogARAtIgNFDQQLIANCBBATKAAAQdCWmTBHBEAgAQRAIAFBADYCBCABQRU2AgALIAdFDQQgAxAIDAQLIAMQHSEVAkAgEEEEcSIGRQ0AIBQgFXxCDHwgFlENACABBEAgAUEANgIEIAFBFTYCAAsgB0UNBCADEAgMBAsgA0IEEBMaIAMQFSIQIAsgC0H//wNGGyELIAMQFSIRIA0gDUH//wNGGyENAkAgBkUNACANIBFGQQAgCyAQRhsNACABBEAgAUEANgIEIAFBFTYCAAsgB0UNBCADEAgMBAsgCyANcgRAIAEEQCABQQA2AgQgAUEBNgIACyAHRQ0EIAMQCAwECyADEB0iGCADEB1SBEAgAQRAIAFBADYCBCABQQE2AgALIAdFDQQgAxAIDAQLIAMQHSEVIAMQHSEWIAMtAABFBEAgAQRAIAFBADYCBCABQRQ2AgALIAdFDQQgAxAIDAQLIAcEQCADEAgLAkAgFkIAWQRAIBUgFnwiGSAWWg0BCyABBEAgAUEWNgIEIAFBBDYCAAsMBAsgEyAUfCIUIBlUBEAgAQRAIAFBADYCBCABQRU2AgALDAQLAkAgBkUNACAUIBlRDQAgAQRAIAFBADYCBCABQRU2AgALDAQLIBggFUIugFgNASABBEAgAUEANgIEIAFBFTYCAAsMAwsCQCASIAQpAwhWBEAgBEEAOgAADAELIAQgEjcDECAEQQE6AAALIAUoAhQhAyAELQAABH4gBCkDCCAEKQMQfQVCAAtCFVgEQCABBEAgAUEANgIEIAFBFTYCAAsMAwsgBC0AAAR+IAQpAxAFQgALIRQgBEIEEBMaIAQQFQRAIAEEQCABQQA2AgQgAUEBNgIACwwDCyAEEAwgBBAMIgZHBEAgAQRAIAFBADYCBCABQRM2AgALDAMLIAQQFSEHIAQQFa0iFiAHrSIVfCIYIBMgFHwiFFYEQCABBEAgAUEANgIEIAFBFTYCAAsMAwsCQCADQQRxRQ0AIBQgGFENACABBEAgAUEANgIEIAFBFTYCAAsMAwsgBq0gARBqIgNFDQIgAyAWNwMgIAMgFTcDGCADQQA6ACwMAQsgGCABEGoiA0UNASADIBY3AyAgAyAVNwMYIANBAToALAsCQCASQhR8IhQgBCkDCFYEQCAEQQA6AAAMAQsgBCAUNwMQIARBAToAAAsgBBAMIQYCQCADKQMYIAMpAyB8IBIgE3xWDQACQCAGRQRAIAUtAARBBHFFDQELAkAgEkIWfCISIAQpAwhWBEAgBEEAOgAADAELIAQgEjcDECAEQQE6AAALIAQtAAAEfiAEKQMIIAQpAxB9BUIACyIUIAatIhJUDQEgBS0ABEEEcUEAIBIgFFIbDQEgBkUNACADIAQgEhATIAZBACABEDUiBjYCKCAGDQAgAxAWDAILAkAgEyADKQMgIhJYBEACQCASIBN9IhIgBCkDCFYEQCAEQQA6AAAMAQsgBCASNwMQIARBAToAAAsgBCADKQMYEBMiBkUNAiAGIAMpAxgQFyIHDQEgAQRAIAFBADYCBCABQQ42AgALIAMQFgwDCyAFKAIAIBJBABAUIQcgBSgCACEGIAdBf0wEQCABBEAgASAGKAIMNgIAIAEgBigCEDYCBAsgAxAWDAMLQQAhByAGEDMgAykDIFENACABBEAgAUEANgIEIAFBEzYCAAsgAxAWDAILQgAhFAJAAkAgAykDGCIWUEUEQANAIBQgAykDCFIiC0UEQCADLQAsDQMgFkIuVA0DAn8CQCADKQMQIhVCgIAEfCISIBVaQQAgEkKAgICAAVQbRQ0AIAMoAgAgEqdBBHQQNCIGRQ0AIAMgBjYCAAJAIAMpAwgiFSASWg0AIAYgFadBBHRqIgZCADcCACAGQgA3AAUgFUIBfCIVIBJRDQADQCADKAIAIBWnQQR0aiIGQgA3AgAgBkIANwAFIBVCAXwiFSASUg0ACwsgAyASNwMIIAMgEjcDEEEBDAELIAEEQCABQQA2AgQgAUEONgIAC0EAC0UNBAtB2AAQCSIGBH8gBkIANwMgIAZBADYCGCAGQv////8PNwMQIAZBADsBDCAGQb+GKDYCCCAGQQE6AAYgBkEAOwEEIAZBADYCACAGQgA3A0ggBkGAgNiNeDYCRCAGQgA3AyggBkIANwMwIAZCADcDOCAGQUBrQQA7AQAgBkIANwNQIAYFQQALIQYgAygCACAUp0EEdGogBjYCAAJAIAYEQCAGIAUoAgAgB0EAIAEQaCISQn9VDQELIAsNBCABKAIAQRNHDQQgAQRAIAFBADYCBCABQRU2AgALDAQLIBRCAXwhFCAWIBJ9IhZCAFINAAsLIBQgAykDCFINAAJAIAUtAARBBHFFDQAgBwRAIActAAAEfyAHKQMQIAcpAwhRBUEAC0UNAgwBCyAFKAIAEDMiEkJ/VwRAIAUoAgAhBiABBEAgASAGKAIMNgIAIAEgBigCEDYCBAsgAxAWDAULIBIgAykDGCADKQMgfFINAQsgBxAIAn4gCARAAn8gF0IAVwRAIAUgCCABEEghFwsgBSADIAEQSCISIBdVCwRAIAgQFiASDAILIAMQFgwFC0IAIAUtAARBBHFFDQAaIAUgAyABEEgLIRcgAyEIDAMLIAEEQCABQQA2AgQgAUEVNgIACyAHEAggAxAWDAILIAMQFiAHEAgMAQsgAQRAIAFBADYCBCABQRU2AgALIAMQFgsCQCAMIAQoAgRrrCISIAQpAwhWBEAgBEEAOgAADAELIAQgEjcDECAEQQE6AAALIAQtAAAEfiAEKQMIIAQpAxB9BUIAC6ciB0ESa0EDSw0BCwsgBBAIIBdCf1UNAwwBCyAEEAgLIA8iAwRAIAMgASgCADYCACADIAEoAgQ2AgQLIAgQFgtBACEICyABQdAAaiQAIAgNAQsgAgRAIAIgBSgCCDYCACACIAUoAgw2AgQLDAELIAUgCCgCADYCQCAFIAgpAwg3AzAgBSAIKQMQNwM4IAUgCCgCKDYCICAIEAYgBSgCUCEIIAVBCGoiBCEBQQAhBwJAIAUpAzAiE1ANAEGAgICAeCEGAn8gE7pEAAAAAAAA6D+jRAAA4P///+9BpCIaRAAAAAAAAPBBYyAaRAAAAAAAAAAAZnEEQCAaqwwBC0EACyIDQYCAgIB4TQRAIANBAWsiA0EBdiADciIDQQJ2IANyIgNBBHYgA3IiA0EIdiADciIDQRB2IANyQQFqIQYLIAYgCCgCACIMTQ0AIAYQPCILRQRAIAEEQCABQQA2AgQgAUEONgIACwwBCwJAIAgpAwhCACAMG1AEQCAIKAIQIQ8MAQsgCCgCECEPA0AgDyAHQQJ0aigCACIBBEADQCABKAIYIQMgASALIAEoAhwgBnBBAnRqIg0oAgA2AhggDSABNgIAIAMiAQ0ACwsgB0EBaiIHIAxHDQALCyAPEAYgCCAGNgIAIAggCzYCEAsCQCAFKQMwUA0AQgAhEwJAIApBBHFFBEADQCAFKAJAIBOnQQR0aigCACgCMEEAQQAgAhAlIgFFDQQgBSgCUCABIBNBCCAEEE1FBEAgBCgCAEEKRw0DCyATQgF8IhMgBSkDMFQNAAwDCwALA0AgBSgCQCATp0EEdGooAgAoAjBBAEEAIAIQJSIBRQ0DIAUoAlAgASATQQggBBBNRQ0BIBNCAXwiEyAFKQMwVA0ACwwBCyACBEAgAiAEKAIANgIAIAIgBCgCBDYCBAsMAQsgBSAFKAIUNgIYDAELIAAgACgCMEEBajYCMCAFEEtBACEFCyAOQUBrJAAgBQsiBQ0BIAAQGhoLQQAhBQsgCUHwAGokACAFCxAAIwAgAGtBcHEiACQAIAALBgAgACQACwQAIwAL4CoDEX8IfgN8IwBBwMAAayIHJABBfyECAkAgAEUNAAJ/IAAtAChFBEBBACAAKAIYIAAoAhRGDQEaC0EBCyEBAkACQCAAKQMwIhRQRQRAIAAoAkAhCgNAIAogEqdBBHRqIgMtAAwhCwJAAkAgAygCCA0AIAsNACADKAIEIgNFDQEgAygCAEUNAQtBASEBCyAXIAtBAXOtQv8Bg3whFyASQgF8IhIgFFINAAsgF0IAUg0BCyAAKAIEQQhxIAFyRQ0BAn8gACgCACIDKAIkIgFBA0cEQCADKAIgBH9BfyADEBpBAEgNAhogAygCJAUgAQsEQCADEEMLQX8gA0EAQgBBDxAOQgBTDQEaIANBAzYCJAtBAAtBf0oNASAAKAIAKAIMQRZGBEAgACgCACgCEEEsRg0CCyAAKAIAIQEgAEEIagRAIAAgASgCDDYCCCAAIAEoAhA2AgwLDAILIAFFDQAgFCAXVARAIABBCGoEQCAAQQA2AgwgAEEUNgIICwwCCyAXp0EDdBAJIgtFDQFCfyEWQgAhEgNAAkAgCiASp0EEdGoiBigCACIDRQ0AAkAgBigCCA0AIAYtAAwNACAGKAIEIgFFDQEgASgCAEUNAQsgFiADKQNIIhMgEyAWVhshFgsgBi0ADEUEQCAXIBlYBEAgCxAGIABBCGoEQCAAQQA2AgwgAEEUNgIICwwECyALIBmnQQN0aiASNwMAIBlCAXwhGQsgEkIBfCISIBRSDQALIBcgGVYEQCALEAYgAEEIagRAIABBADYCDCAAQRQ2AggLDAILAkACQCAAKAIAKQMYQoCACINQDQACQAJAIBZCf1INACAAKQMwIhNQDQIgE0IBgyEVIAAoAkAhAwJAIBNCAVEEQEJ/IRRCACESQgAhFgwBCyATQn6DIRlCfyEUQgAhEkIAIRYDQCADIBKnQQR0aigCACIBBEAgFiABKQNIIhMgEyAWVCIBGyEWIBQgEiABGyEUCyADIBJCAYQiGKdBBHRqKAIAIgEEQCAWIAEpA0giEyATIBZUIgEbIRYgFCAYIAEbIRQLIBJCAnwhEiAZQgJ9IhlQRQ0ACwsCQCAVUA0AIAMgEqdBBHRqKAIAIgFFDQAgFiABKQNIIhMgEyAWVCIBGyEWIBQgEiABGyEUCyAUQn9RDQBCACETIwBBEGsiBiQAAkAgACAUIABBCGoiCBBBIhVQDQAgFSAAKAJAIBSnQQR0aigCACIKKQMgIhh8IhQgGFpBACAUQn9VG0UEQCAIBEAgCEEWNgIEIAhBBDYCAAsMAQsgCi0ADEEIcUUEQCAUIRMMAQsgACgCACAUQQAQFCEBIAAoAgAhAyABQX9MBEAgCARAIAggAygCDDYCACAIIAMoAhA2AgQLDAELIAMgBkEMakIEEBFCBFIEQCAAKAIAIQEgCARAIAggASgCDDYCACAIIAEoAhA2AgQLDAELIBRCBHwgFCAGKAAMQdCWncAARhtCFEIMAn9BASEBAkAgCikDKEL+////D1YNACAKKQMgQv7///8PVg0AQQAhAQsgAQsbfCIUQn9XBEAgCARAIAhBFjYCBCAIQQQ2AgALDAELIBQhEwsgBkEQaiQAIBMiFkIAUg0BIAsQBgwFCyAWUA0BCwJ/IAAoAgAiASgCJEEBRgRAIAFBDGoEQCABQQA2AhAgAUESNgIMC0F/DAELQX8gAUEAIBZBERAOQgBTDQAaIAFBATYCJEEAC0F/Sg0BC0IAIRYCfyAAKAIAIgEoAiRBAUYEQCABQQxqBEAgAUEANgIQIAFBEjYCDAtBfwwBC0F/IAFBAEIAQQgQDkIAUw0AGiABQQE2AiRBAAtBf0oNACAAKAIAIQEgAEEIagRAIAAgASgCDDYCCCAAIAEoAhA2AgwLIAsQBgwCCyAAKAJUIgIEQCACQgA3AxggAigCAEQAAAAAAAAAACACKAIMIAIoAgQRDgALIABBCGohBCAXuiEcQgAhFAJAAkACQANAIBcgFCITUgRAIBO6IByjIRsgE0IBfCIUuiAcoyEaAkAgACgCVCICRQ0AIAIgGjkDKCACIBs5AyAgAisDECAaIBuhRAAAAAAAAAAAoiAboCIaIAIrAxihY0UNACACKAIAIBogAigCDCACKAIEEQ4AIAIgGjkDGAsCfwJAIAAoAkAgCyATp0EDdGopAwAiE6dBBHRqIg0oAgAiAQRAIAEpA0ggFlQNAQsgDSgCBCEFAkACfwJAIA0oAggiAkUEQCAFRQ0BQQEgBSgCACICQQFxDQIaIAJBwABxQQZ2DAILQQEgBQ0BGgsgDSABECsiBTYCBCAFRQ0BIAJBAEcLIQZBACEJIwBBEGsiDCQAAkAgEyAAKQMwWgRAIABBCGoEQCAAQQA2AgwgAEESNgIIC0F/IQkMAQsgACgCQCIKIBOnIgNBBHRqIg8oAgAiAkUNACACLQAEDQACQCACKQNIQhp8IhhCf1cEQCAAQQhqBEAgAEEWNgIMIABBBDYCCAsMAQtBfyEJIAAoAgAgGEEAEBRBf0wEQCAAKAIAIQIgAEEIagRAIAAgAigCDDYCCCAAIAIoAhA2AgwLDAILIAAoAgBCBCAMQQxqIABBCGoiDhAtIhBFDQEgEBAMIQEgEBAMIQggEC0AAAR/IBApAxAgECkDCFEFQQALIQIgEBAIIAJFBEAgDgRAIA5BADYCBCAOQRQ2AgALDAILAkAgCEUNACAAKAIAIAGtQQEQFEF/TARAQYSEASgCACECIA4EQCAOIAI2AgQgDkEENgIACwwDC0EAIAAoAgAgCEEAIA4QRSIBRQ0BIAEgCEGAAiAMQQhqIA4QbiECIAEQBiACRQ0BIAwoAggiAkUNACAMIAIQbSICNgIIIA8oAgAoAjQgAhBvIQIgDygCACACNgI0CyAPKAIAIgJBAToABEEAIQkgCiADQQR0aigCBCIBRQ0BIAEtAAQNASACKAI0IQIgAUEBOgAEIAEgAjYCNAwBC0F/IQkLIAxBEGokACAJQQBIDQUgACgCABAfIhhCAFMNBSAFIBg3A0ggBgRAQQAhDCANKAIIIg0hASANRQRAIAAgACATQQhBABB/IgwhASAMRQ0HCwJAAkAgASAHQQhqECFBf0wEQCAEBEAgBCABKAIMNgIAIAQgASgCEDYCBAsMAQsgBykDCCISQsAAg1AEQCAHQQA7ATggByASQsAAhCISNwMICwJAAkAgBSgCECICQX5PBEAgBy8BOCIDRQ0BIAUgAzYCECADIQIMAgsgAg0AIBJCBINQDQAgByAHKQMgNwMoIAcgEkIIhCISNwMIQQAhAgwBCyAHIBJC9////w+DIhI3AwgLIBJCgAGDUARAIAdBADsBOiAHIBJCgAGEIhI3AwgLAn8gEkIEg1AEQEJ/IRVBgAoMAQsgBSAHKQMgIhU3AyggEkIIg1AEQAJAAkACQAJAQQggAiACQX1LG0H//wNxDg0CAwMDAwMDAwEDAwMAAwtBgApBgAIgFUKUwuTzD1YbDAQLQYAKQYACIBVCg4Ow/w9WGwwDC0GACkGAAiAVQv////8PVhsMAgtBgApBgAIgFUIAUhsMAQsgBSAHKQMoNwMgQYACCyEPIAAoAgAQHyITQn9XBEAgACgCACECIAQEQCAEIAIoAgw2AgAgBCACKAIQNgIECwwBCyAFIAUvAQxB9/8DcTsBDCAAIAUgDxA3IgpBAEgNACAHLwE4IghBCCAFKAIQIgMgA0F9SxtB//8DcSICRyEGAkACQAJAAkACQAJAAkAgAiAIRwRAIANBAEchAwwBC0EAIQMgBS0AAEGAAXFFDQELIAUvAVIhCSAHLwE6IQIMAQsgBS8BUiIJIAcvAToiAkYNAQsgASABKAIwQQFqNgIwIAJB//8DcQ0BIAEhAgwCCyABIAEoAjBBAWo2AjBBACEJDAILQSZBACAHLwE6QQFGGyICRQRAIAQEQCAEQQA2AgQgBEEYNgIACyABEAsMAwsgACABIAcvATpBACAAKAIcIAIRBgAhAiABEAsgAkUNAgsgCUEARyEJIAhBAEcgBnFFBEAgAiEBDAELIAAgAiAHLwE4EIEBIQEgAhALIAFFDQELAkAgCEUgBnJFBEAgASECDAELIAAgAUEAEIABIQIgARALIAJFDQELAkAgA0UEQCACIQMMAQsgACACIAUoAhBBASAFLwFQEIIBIQMgAhALIANFDQELAkAgCUUEQCADIQEMAQsgBSgCVCIBRQRAIAAoAhwhAQsCfyAFLwFSGkEBCwRAIAQEQCAEQQA2AgQgBEEYNgIACyADEAsMAgsgACADIAUvAVJBASABQQARBgAhASADEAsgAUUNAQsgACgCABAfIhhCf1cEQCAAKAIAIQIgBARAIAQgAigCDDYCACAEIAIoAhA2AgQLDAELAkAgARAyQQBOBEACfwJAAkAgASAHQUBrQoDAABARIhJCAVMNAEIAIRkgFUIAVQRAIBW5IRoDQCAAIAdBQGsgEhAbQQBIDQMCQCASQoDAAFINACAAKAJUIgJFDQAgAiAZQoBAfSIZuSAaoxB7CyABIAdBQGtCgMAAEBEiEkIAVQ0ACwwBCwNAIAAgB0FAayASEBtBAEgNAiABIAdBQGtCgMAAEBEiEkIAVQ0ACwtBACASQn9VDQEaIAQEQCAEIAEoAgw2AgAgBCABKAIQNgIECwtBfwshAiABEBoaDAELIAQEQCAEIAEoAgw2AgAgBCABKAIQNgIEC0F/IQILIAEgB0EIahAhQX9MBEAgBARAIAQgASgCDDYCACAEIAEoAhA2AgQLQX8hAgsCf0EAIQkCQCABIgNFDQADQCADLQAaQQFxBEBB/wEhCSADQQBCAEEQEA4iFUIAUw0CIBVCBFkEQCADQQxqBEAgA0EANgIQIANBFDYCDAsMAwsgFachCQwCCyADKAIAIgMNAAsLIAlBGHRBGHUiA0F/TAsEQCAEBEAgBCABKAIMNgIAIAQgASgCEDYCBAsgARALDAELIAEQCyACQQBIDQAgACgCABAfIRUgACgCACECIBVCf1cEQCAEBEAgBCACKAIMNgIAIAQgAigCEDYCBAsMAQsgAiATEHVBf0wEQCAAKAIAIQIgBARAIAQgAigCDDYCACAEIAIoAhA2AgQLDAELIAcpAwgiE0LkAINC5ABSBEAgBARAIARBADYCBCAEQRQ2AgALDAELAkAgBS0AAEEgcQ0AIBNCEINQRQRAIAUgBygCMDYCFAwBCyAFQRRqEAEaCyAFIAcvATg2AhAgBSAHKAI0NgIYIAcpAyAhEyAFIBUgGH03AyAgBSATNwMoIAUgBS8BDEH5/wNxIANB/wFxQQF0cjsBDCAPQQp2IQNBPyEBAkACQAJAAkAgBSgCECICQQxrDgMAAQIBCyAFQS47AQoMAgtBLSEBIAMNACAFKQMoQv7///8PVg0AIAUpAyBC/v///w9WDQBBFCEBIAJBCEYNACAFLwFSQQFGDQAgBSgCMCICBH8gAi8BBAVBAAtB//8DcSICBEAgAiAFKAIwKAIAakEBay0AAEEvRg0BC0EKIQELIAUgATsBCgsgACAFIA8QNyICQQBIDQAgAiAKRwRAIAQEQCAEQQA2AgQgBEEUNgIACwwBCyAAKAIAIBUQdUF/Sg0BIAAoAgAhAiAEBEAgBCACKAIMNgIAIAQgAigCEDYCBAsLIA0NByAMEAsMBwsgDQ0CIAwQCwwCCyAFIAUvAQxB9/8DcTsBDCAAIAVBgAIQN0EASA0FIAAgEyAEEEEiE1ANBSAAKAIAIBNBABAUQX9MBEAgACgCACECIAQEQCAEIAIoAgw2AgAgBCACKAIQNgIECwwGCyAFKQMgIRIjAEGAQGoiAyQAAkAgElBFBEAgAEEIaiECIBK6IRoDQEF/IQEgACgCACADIBJCgMAAIBJCgMAAVBsiEyACEGVBAEgNAiAAIAMgExAbQQBIDQIgACgCVCAaIBIgE30iErqhIBqjEHsgEkIAUg0ACwtBACEBCyADQYBAayQAIAFBf0oNAUEBIREgAUEcdkEIcUEIRgwCCyAEBEAgBEEANgIEIARBDjYCAAsMBAtBAAtFDQELCyARDQBBfyECAkAgACgCABAfQgBTDQAgFyEUQQAhCkIAIRcjAEHwAGsiESQAAkAgACgCABAfIhVCAFkEQCAUUEUEQANAIAAgACgCQCALIBenQQN0aigCAEEEdGoiAygCBCIBBH8gAQUgAygCAAtBgAQQNyIBQQBIBEBCfyEXDAQLIAFBAEcgCnIhCiAXQgF8IhcgFFINAAsLQn8hFyAAKAIAEB8iGEJ/VwRAIAAoAgAhASAAQQhqBEAgACABKAIMNgIIIAAgASgCEDYCDAsMAgsgEULiABAXIgZFBEAgAEEIagRAIABBADYCDCAAQQ42AggLDAILIBggFX0hEyAVQv////8PViAUQv//A1ZyIApyQQFxBEAgBkGZEkEEECwgBkIsEBggBkEtEA0gBkEtEA0gBkEAEBIgBkEAEBIgBiAUEBggBiAUEBggBiATEBggBiAVEBggBkGUEkEEECwgBkEAEBIgBiAYEBggBkEBEBILIAZBnhJBBBAsIAZBABASIAYgFEL//wMgFEL//wNUG6dB//8DcSIBEA0gBiABEA0gBkF/IBOnIBNC/v///w9WGxASIAZBfyAVpyAVQv7///8PVhsQEiAGIABBJEEgIAAtACgbaigCACIDBH8gAy8BBAVBAAtB//8DcRANIAYtAABFBEAgAEEIagRAIABBADYCDCAAQRQ2AggLIAYQCAwCCyAAIAYoAgQgBi0AAAR+IAYpAxAFQgALEBshASAGEAggAUEASA0BIAMEQCAAIAMoAgAgAzMBBBAbQQBIDQILIBMhFwwBCyAAKAIAIQEgAEEIagRAIAAgASgCDDYCCCAAIAEoAhA2AgwLQn8hFwsgEUHwAGokACAXQgBTDQAgACgCABAfQj+HpyECCyALEAYgAkEASA0BAn8gACgCACIBKAIkQQFHBEAgAUEMagRAIAFBADYCECABQRI2AgwLQX8MAQsgASgCICICQQJPBEAgAUEMagRAIAFBADYCECABQR02AgwLQX8MAQsCQCACQQFHDQAgARAaQQBODQBBfwwBCyABQQBCAEEJEA5Cf1cEQCABQQI2AiRBfwwBCyABQQA2AiRBAAtFDQIgACgCACECIAQEQCAEIAIoAgw2AgAgBCACKAIQNgIECwwBCyALEAYLIAAoAlQQfCAAKAIAEENBfyECDAILIAAoAlQQfAsgABBLQQAhAgsgB0HAwABqJAAgAgtFAEHwgwFCADcDAEHogwFCADcDAEHggwFCADcDAEHYgwFCADcDAEHQgwFCADcDAEHIgwFCADcDAEHAgwFCADcDAEHAgwELoQMBCH8jAEGgAWsiAiQAIAAQMQJAAn8CQCAAKAIAIgFBAE4EQCABQbATKAIASA0BCyACIAE2AhAgAkEgakH2ESACQRBqEHZBASEGIAJBIGohBCACQSBqECIhA0EADAELIAFBAnQiAUGwEmooAgAhBQJ/AkACQCABQcATaigCAEEBaw4CAAEECyAAKAIEIQNB9IIBKAIAIQdBACEBAkACQANAIAMgAUHQ8QBqLQAARwRAQdcAIQQgAUEBaiIBQdcARw0BDAILCyABIgQNAEGw8gAhAwwBC0Gw8gAhAQNAIAEtAAAhCCABQQFqIgMhASAIDQAgAyEBIARBAWsiBA0ACwsgBygCFBogAwwBC0EAIAAoAgRrQQJ0QdjAAGooAgALIgRFDQEgBBAiIQMgBUUEQEEAIQVBASEGQQAMAQsgBRAiQQJqCyEBIAEgA2pBAWoQCSIBRQRAQegSKAIAIQUMAQsgAiAENgIIIAJBrBJBkRIgBhs2AgQgAkGsEiAFIAYbNgIAIAFBqwogAhB2IAAgATYCCCABIQULIAJBoAFqJAAgBQszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQBxogACAAKAIUIAFqNgIUIAILBgBBsIgBCwYAQayIAQsGAEGkiAELBwAgAEEEagsHACAAQQhqCyYBAX8gACgCFCIBBEAgARALCyAAKAIEIQEgAEEEahAxIAAQBiABC6kBAQN/AkAgAC0AACICRQ0AA0AgAS0AACIERQRAIAIhAwwCCwJAIAIgBEYNACACQSByIAIgAkHBAGtBGkkbIAEtAAAiAkEgciACIAJBwQBrQRpJG0YNACAALQAAIQMMAgsgAUEBaiEBIAAtAAEhAiAAQQFqIQAgAg0ACwsgA0H/AXEiAEEgciAAIABBwQBrQRpJGyABLQAAIgBBIHIgACAAQcEAa0EaSRtrC8sGAgJ+An8jAEHgAGsiByQAAkACQAJAAkACQAJAAkACQAJAAkACQCAEDg8AAQoCAwQGBwgICAgICAUICyABQgA3AyAMCQsgACACIAMQESIFQn9XBEAgAUEIaiIBBEAgASAAKAIMNgIAIAEgACgCEDYCBAsMCAsCQCAFUARAIAEpAygiAyABKQMgUg0BIAEgAzcDGCABQQE2AgQgASgCAEUNASAAIAdBKGoQIUF/TARAIAFBCGoiAQRAIAEgACgCDDYCACABIAAoAhA2AgQLDAoLAkAgBykDKCIDQiCDUA0AIAcoAlQgASgCMEYNACABQQhqBEAgAUEANgIMIAFBBzYCCAsMCgsgA0IEg1ANASAHKQNAIAEpAxhRDQEgAUEIagRAIAFBADYCDCABQRU2AggLDAkLIAEoAgQNACABKQMoIgMgASkDICIGVA0AIAUgAyAGfSIDWA0AIAEoAjAhBANAIAECfyAFIAN9IgZC/////w8gBkL/////D1QbIganIQBBACACIAOnaiIIRQ0AGiAEIAggAEHUgAEoAgARAAALIgQ2AjAgASABKQMoIAZ8NwMoIAUgAyAGfCIDVg0ACwsgASABKQMgIAV8NwMgDAgLIAEoAgRFDQcgAiABKQMYIgM3AxggASgCMCEAIAJBADYCMCACIAM3AyAgAiAANgIsIAIgAikDAELsAYQ3AwAMBwsgA0IIWgR+IAIgASgCCDYCACACIAEoAgw2AgRCCAVCfwshBQwGCyABEAYMBQtCfyEFIAApAxgiA0J/VwRAIAFBCGoiAQRAIAEgACgCDDYCACABIAAoAhA2AgQLDAULIAdBfzYCGCAHQo+AgICAAjcDECAHQoyAgIDQATcDCCAHQomAgICgATcDACADQQggBxAkQn+FgyEFDAQLIANCD1gEQCABQQhqBEAgAUEANgIMIAFBEjYCCAsMAwsgAkUNAgJAIAAgAikDACACKAIIEBRBAE4EQCAAEDMiA0J/VQ0BCyABQQhqIgEEQCABIAAoAgw2AgAgASAAKAIQNgIECwwDCyABIAM3AyAMAwsgASkDICEFDAILIAFBCGoEQCABQQA2AgwgAUEcNgIICwtCfyEFCyAHQeAAaiQAIAULjAcCAn4CfyMAQRBrIgckAAJAAkACQAJAAkACQAJAAkACQAJAIAQOEQABAgMFBggICAgICAgIBwgECAsgAUJ/NwMgIAFBADoADyABQQA7AQwgAUIANwMYIAEoAqxAIAEoAqhAKAIMEQEArUIBfSEFDAgLQn8hBSABKAIADQdCACEFIANQDQcgAS0ADQ0HIAFBKGohBAJAA0ACQCAHIAMgBX03AwggASgCrEAgAiAFp2ogB0EIaiABKAKoQCgCHBEAACEIQgAgBykDCCAIQQJGGyAFfCEFAkACQAJAIAhBAWsOAwADAQILIAFBAToADSABKQMgIgNCf1cEQCABBEAgAUEANgIEIAFBFDYCAAsMBQsgAS0ADkUNBCADIAVWDQQgASADNwMYIAFBAToADyACIAQgA6cQBxogASkDGCEFDAwLIAEtAAwNAyAAIARCgMAAEBEiBkJ/VwRAIAEEQCABIAAoAgw2AgAgASAAKAIQNgIECwwECyAGUARAIAFBAToADCABKAKsQCABKAKoQCgCGBEDACABKQMgQn9VDQEgAUIANwMgDAELAkAgASkDIEIAWQRAIAFBADoADgwBCyABIAY3AyALIAEoAqxAIAQgBiABKAKoQCgCFBEPABoLIAMgBVYNAQwCCwsgASgCAA0AIAEEQCABQQA2AgQgAUEUNgIACwsgBVBFBEAgAUEAOgAOIAEgASkDGCAFfDcDGAwIC0J/QgAgASgCABshBQwHCyABKAKsQCABKAKoQCgCEBEBAK1CAX0hBQwGCyABLQAQBEAgAS0ADQRAIAIgAS0ADwR/QQAFQQggASgCFCIAIABBfUsbCzsBMCACIAEpAxg3AyAgAiACKQMAQsgAhDcDAAwHCyACIAIpAwBCt////w+DNwMADAYLIAJBADsBMCACKQMAIQMgAS0ADQRAIAEpAxghBSACIANCxACENwMAIAIgBTcDGEIAIQUMBgsgAiADQrv///8Pg0LAAIQ3AwAMBQsgAS0ADw0EIAEoAqxAIAEoAqhAKAIIEQEArCEFDAQLIANCCFoEfiACIAEoAgA2AgAgAiABKAIENgIEQggFQn8LIQUMAwsgAUUNAiABKAKsQCABKAKoQCgCBBEDACABEDEgARAGDAILIAdBfzYCAEEQIAcQJEI/hCEFDAELIAEEQCABQQA2AgQgAUEUNgIAC0J/IQULIAdBEGokACAFC2MAQcgAEAkiAEUEQEGEhAEoAgAhASACBEAgAiABNgIEIAJBATYCAAsgAA8LIABBADoADCAAQQA6AAQgACACNgIAIABBADYCOCAAQgA3AzAgACABQQkgAUEBa0EJSRs2AgggAAu3fAIefwZ+IAIpAwAhIiAAIAE2AhwgACAiQv////8PICJC/////w9UGz4CICAAQRBqIQECfyAALQAEBEACfyAALQAMQQJ0IQpBfiEEAkACQAJAIAEiBUUNACAFKAIgRQ0AIAUoAiRFDQAgBSgCHCIDRQ0AIAMoAgAgBUcNAAJAAkAgAygCICIGQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyAGQZoFRg0AIAZBKkcNAQsgCkEFSw0AAkACQCAFKAIMRQ0AIAUoAgQiAQRAIAUoAgBFDQELIAZBmgVHDQEgCkEERg0BCyAFQeDAACgCADYCGEF+DAQLIAUoAhBFDQEgAygCJCEEIAMgCjYCJAJAIAMoAhAEQCADEDACQCAFKAIQIgYgAygCECIIIAYgCEkbIgFFDQAgBSgCDCADKAIIIAEQBxogBSAFKAIMIAFqNgIMIAMgAygCCCABajYCCCAFIAUoAhQgAWo2AhQgBSAFKAIQIAFrIgY2AhAgAyADKAIQIAFrIgg2AhAgCA0AIAMgAygCBDYCCEEAIQgLIAYEQCADKAIgIQYMAgsMBAsgAQ0AIApBAXRBd0EAIApBBEsbaiAEQQF0QXdBACAEQQRKG2pKDQAgCkEERg0ADAILAkACQAJAAkACQCAGQSpHBEAgBkGaBUcNASAFKAIERQ0DDAcLIAMoAhRFBEAgA0HxADYCIAwCCyADKAI0QQx0QYDwAWshBAJAIAMoAowBQQJODQAgAygCiAEiAUEBTA0AIAFBBUwEQCAEQcAAciEEDAELQYABQcABIAFBBkYbIARyIQQLIAMoAgQgCGogBEEgciAEIAMoAmgbIgFBH3AgAXJBH3NBCHQgAUGA/gNxQQh2cjsAACADIAMoAhBBAmoiATYCECADKAJoBEAgAygCBCABaiAFKAIwIgFBGHQgAUEIdEGAgPwHcXIgAUEIdkGA/gNxIAFBGHZycjYAACADIAMoAhBBBGo2AhALIAVBATYCMCADQfEANgIgIAUQCiADKAIQDQcgAygCICEGCwJAAkACQAJAIAZBOUYEfyADQaABakHkgAEoAgARAQAaIAMgAygCECIBQQFqNgIQIAEgAygCBGpBHzoAACADIAMoAhAiAUEBajYCECABIAMoAgRqQYsBOgAAIAMgAygCECIBQQFqNgIQIAEgAygCBGpBCDoAAAJAIAMoAhwiAUUEQCADKAIEIAMoAhBqQQA2AAAgAyADKAIQIgFBBWo2AhAgASADKAIEakEAOgAEQQIhBCADKAKIASIBQQlHBEBBBCABQQJIQQJ0IAMoAowBQQFKGyEECyADIAMoAhAiAUEBajYCECABIAMoAgRqIAQ6AAAgAyADKAIQIgFBAWo2AhAgASADKAIEakEDOgAAIANB8QA2AiAgBRAKIAMoAhBFDQEMDQsgASgCJCELIAEoAhwhCSABKAIQIQggASgCLCENIAEoAgAhBiADIAMoAhAiAUEBajYCEEECIQQgASADKAIEaiANQQBHQQF0IAZBAEdyIAhBAEdBAnRyIAlBAEdBA3RyIAtBAEdBBHRyOgAAIAMoAgQgAygCEGogAygCHCgCBDYAACADIAMoAhAiDUEEaiIGNgIQIAMoAogBIgFBCUcEQEEEIAFBAkhBAnQgAygCjAFBAUobIQQLIAMgDUEFajYCECADKAIEIAZqIAQ6AAAgAygCHCgCDCEEIAMgAygCECIBQQFqNgIQIAEgAygCBGogBDoAACADKAIcIgEoAhAEfyADKAIEIAMoAhBqIAEoAhQ7AAAgAyADKAIQQQJqNgIQIAMoAhwFIAELKAIsBEAgBQJ/IAUoAjAhBiADKAIQIQRBACADKAIEIgFFDQAaIAYgASAEQdSAASgCABEAAAs2AjALIANBxQA2AiAgA0EANgIYDAILIAMoAiAFIAYLQcUAaw4jAAQEBAEEBAQEBAQEBAQEBAQEBAQEBAIEBAQEBAQEBAQEBAMECyADKAIcIgEoAhAiBgRAIAMoAgwiCCADKAIQIgQgAS8BFCADKAIYIg1rIglqSQRAA0AgAygCBCAEaiAGIA1qIAggBGsiCBAHGiADIAMoAgwiDTYCEAJAIAMoAhwoAixFDQAgBCANTw0AIAUCfyAFKAIwIQZBACADKAIEIARqIgFFDQAaIAYgASANIARrQdSAASgCABEAAAs2AjALIAMgAygCGCAIajYCGCAFKAIcIgYQMAJAIAUoAhAiBCAGKAIQIgEgASAESxsiAUUNACAFKAIMIAYoAgggARAHGiAFIAUoAgwgAWo2AgwgBiAGKAIIIAFqNgIIIAUgBSgCFCABajYCFCAFIAUoAhAgAWs2AhAgBiAGKAIQIAFrIgE2AhAgAQ0AIAYgBigCBDYCCAsgAygCEA0MIAMoAhghDSADKAIcKAIQIQZBACEEIAkgCGsiCSADKAIMIghLDQALCyADKAIEIARqIAYgDWogCRAHGiADIAMoAhAgCWoiDTYCEAJAIAMoAhwoAixFDQAgBCANTw0AIAUCfyAFKAIwIQZBACADKAIEIARqIgFFDQAaIAYgASANIARrQdSAASgCABEAAAs2AjALIANBADYCGAsgA0HJADYCIAsgAygCHCgCHARAIAMoAhAiBCEJA0ACQCAEIAMoAgxHDQACQCADKAIcKAIsRQ0AIAQgCU0NACAFAn8gBSgCMCEGQQAgAygCBCAJaiIBRQ0AGiAGIAEgBCAJa0HUgAEoAgARAAALNgIwCyAFKAIcIgYQMAJAIAUoAhAiBCAGKAIQIgEgASAESxsiAUUNACAFKAIMIAYoAgggARAHGiAFIAUoAgwgAWo2AgwgBiAGKAIIIAFqNgIIIAUgBSgCFCABajYCFCAFIAUoAhAgAWs2AhAgBiAGKAIQIAFrIgE2AhAgAQ0AIAYgBigCBDYCCAtBACEEQQAhCSADKAIQRQ0ADAsLIAMoAhwoAhwhBiADIAMoAhgiAUEBajYCGCABIAZqLQAAIQEgAyAEQQFqNgIQIAMoAgQgBGogAToAACABBEAgAygCECEEDAELCwJAIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0EANgIYCyADQdsANgIgCwJAIAMoAhwoAiRFDQAgAygCECIEIQkDQAJAIAQgAygCDEcNAAJAIAMoAhwoAixFDQAgBCAJTQ0AIAUCfyAFKAIwIQZBACADKAIEIAlqIgFFDQAaIAYgASAEIAlrQdSAASgCABEAAAs2AjALIAUoAhwiBhAwAkAgBSgCECIEIAYoAhAiASABIARLGyIBRQ0AIAUoAgwgBigCCCABEAcaIAUgBSgCDCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w==";io(Pi)||(Pi=x(Pi));function Os(We){try{if(We==Pi&&ce)return new Uint8Array(ce);var tt=ii(We);if(tt)return tt;if(R)return R(We);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(Bt){Ri(Bt)}}function so(We,tt){var Bt,or,ee;try{ee=Os(We),or=new WebAssembly.Module(ee),Bt=new WebAssembly.Instance(or,tt)}catch(Le){var ye=Le.toString();throw te("failed to compile wasm module: "+ye),(ye.includes("imported Memory")||ye.includes("memory import"))&&te("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),Le}return[Bt,or]}function uc(){var We={a:Ha};function tt(ee,ye){var Le=ee.exports;r.asm=Le,Be=r.asm.g,J(Be.buffer),$=r.asm.W,ln(r.asm.h),Ms("wasm-instantiate")}if(Kn("wasm-instantiate"),r.instantiateWasm)try{var Bt=r.instantiateWasm(We,tt);return Bt}catch(ee){return te("Module.instantiateWasm callback failed with error: "+ee),!1}var or=so(Pi,We);return tt(or[0]),r.asm}function Au(We){return F.getFloat32(We,!0)}function op(We){return F.getFloat64(We,!0)}function ap(We){return F.getInt16(We,!0)}function Us(We){return F.getInt32(We,!0)}function Dn(We,tt){F.setInt32(We,tt,!0)}function oo(We){for(;We.length>0;){var tt=We.shift();if(typeof tt=="function"){tt(r);continue}var Bt=tt.func;typeof Bt=="number"?tt.arg===void 0?$.get(Bt)():$.get(Bt)(tt.arg):Bt(tt.arg===void 0?null:tt.arg)}}function _s(We,tt){var Bt=new Date(Us((We>>2)*4)*1e3);Dn((tt>>2)*4,Bt.getUTCSeconds()),Dn((tt+4>>2)*4,Bt.getUTCMinutes()),Dn((tt+8>>2)*4,Bt.getUTCHours()),Dn((tt+12>>2)*4,Bt.getUTCDate()),Dn((tt+16>>2)*4,Bt.getUTCMonth()),Dn((tt+20>>2)*4,Bt.getUTCFullYear()-1900),Dn((tt+24>>2)*4,Bt.getUTCDay()),Dn((tt+36>>2)*4,0),Dn((tt+32>>2)*4,0);var or=Date.UTC(Bt.getUTCFullYear(),0,1,0,0,0,0),ee=(Bt.getTime()-or)/(1e3*60*60*24)|0;return Dn((tt+28>>2)*4,ee),_s.GMTString||(_s.GMTString=rt("GMT")),Dn((tt+40>>2)*4,_s.GMTString),tt}function ml(We,tt){return _s(We,tt)}function yl(We,tt,Bt){be.copyWithin(We,tt,tt+Bt)}function ao(We){try{return Be.grow(We-ke.byteLength+65535>>>16),J(Be.buffer),1}catch{}}function Vn(We){var tt=be.length;We=We>>>0;var Bt=2147483648;if(We>Bt)return!1;for(var or=1;or<=4;or*=2){var ee=tt*(1+.2/or);ee=Math.min(ee,We+100663296);var ye=Math.min(Bt,Fe(Math.max(We,ee),65536)),Le=ao(ye);if(Le)return!0}return!1}function Mn(We){le(We)}function Ti(We){var tt=Date.now()/1e3|0;return We&&Dn((We>>2)*4,tt),tt}function On(){if(On.called)return;On.called=!0;var We=new Date().getFullYear(),tt=new Date(We,0,1),Bt=new Date(We,6,1),or=tt.getTimezoneOffset(),ee=Bt.getTimezoneOffset(),ye=Math.max(or,ee);Dn((ys()>>2)*4,ye*60),Dn((ms()>>2)*4,+(or!=ee));function Le($r){var ji=$r.toTimeString().match(/\(([A-Za-z ]+)\)$/);return ji?ji[1]:"GMT"}var ft=Le(tt),pt=Le(Bt),Nt=rt(ft),rr=rt(pt);ee>2)*4,Nt),Dn((Ci()+4>>2)*4,rr)):(Dn((Ci()>>2)*4,rr),Dn((Ci()+4>>2)*4,Nt))}function _i(We){On();var tt=Date.UTC(Us((We+20>>2)*4)+1900,Us((We+16>>2)*4),Us((We+12>>2)*4),Us((We+8>>2)*4),Us((We+4>>2)*4),Us((We>>2)*4),0),Bt=new Date(tt);Dn((We+24>>2)*4,Bt.getUTCDay());var or=Date.UTC(Bt.getUTCFullYear(),0,1,0,0,0,0),ee=(Bt.getTime()-or)/(1e3*60*60*24)|0;return Dn((We+28>>2)*4,ee),Bt.getTime()/1e3|0}var ir=typeof atob=="function"?atob:function(We){var tt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Bt="",or,ee,ye,Le,ft,pt,Nt,rr=0;We=We.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Le=tt.indexOf(We.charAt(rr++)),ft=tt.indexOf(We.charAt(rr++)),pt=tt.indexOf(We.charAt(rr++)),Nt=tt.indexOf(We.charAt(rr++)),or=Le<<2|ft>>4,ee=(ft&15)<<4|pt>>2,ye=(pt&3)<<6|Nt,Bt=Bt+String.fromCharCode(or),pt!==64&&(Bt=Bt+String.fromCharCode(ee)),Nt!==64&&(Bt=Bt+String.fromCharCode(ye));while(rr0||(dt(),mr>0))return;function tt(){Pn||(Pn=!0,r.calledRun=!0,!Ee&&(jt(),o(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),tr()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),tt()},1)):tt()}if(r.run=Cs,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Cs(),e}}();typeof ES=="object"&&typeof K4=="object"?K4.exports=W4:typeof define=="function"&&define.amd?define([],function(){return W4}):typeof ES=="object"&&(ES.createModule=W4)});var Nf,Ole,Ule,_le=Et(()=>{Nf=["number","number"],Ole=(Z=>(Z[Z.ZIP_ER_OK=0]="ZIP_ER_OK",Z[Z.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",Z[Z.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",Z[Z.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",Z[Z.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",Z[Z.ZIP_ER_READ=5]="ZIP_ER_READ",Z[Z.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",Z[Z.ZIP_ER_CRC=7]="ZIP_ER_CRC",Z[Z.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",Z[Z.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",Z[Z.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",Z[Z.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",Z[Z.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",Z[Z.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",Z[Z.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",Z[Z.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",Z[Z.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",Z[Z.ZIP_ER_EOF=17]="ZIP_ER_EOF",Z[Z.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",Z[Z.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",Z[Z.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",Z[Z.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",Z[Z.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",Z[Z.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",Z[Z.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",Z[Z.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",Z[Z.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",Z[Z.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",Z[Z.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",Z[Z.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",Z[Z.ZIP_ER_TELL=30]="ZIP_ER_TELL",Z[Z.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",Z))(Ole||{}),Ule=t=>({get HEAPU8(){return t.HEAPU8},errors:Ole,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_EXCL:2,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint32S:t._malloc(4),malloc:t._malloc,free:t._free,getValue:t.getValue,openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...Nf,"number","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...Nf,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...Nf,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...Nf,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...Nf,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...Nf,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number",...Nf,"number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...Nf,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...Nf,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"])},struct:{statS:t.cwrap("zipstruct_statS","number",[]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}})});function V4(t,e){let r=t.indexOf(e);if(r<=0)return null;let o=r;for(;r>=0&&(o=r+e.length,t[o]!==V.sep);){if(t[r-1]===V.sep)return null;r=t.indexOf(e,o)}return t.length>o&&t[o]!==V.sep?null:t.slice(0,o)}var rA,Hle=Et(()=>{Pt();Pt();nA();rA=class t extends Up{static async openPromise(e,r){let o=new t(r);try{return await e(o)}finally{o.saveAndClose()}}constructor(e={}){let r=e.fileExtensions,o=e.readOnlyArchives,a=typeof r>"u"?A=>V4(A,".zip"):A=>{for(let p of r){let h=V4(A,p);if(h)return h}return null},n=(A,p)=>new Zi(p,{baseFs:A,readOnly:o,stats:A.statSync(p)}),u=async(A,p)=>{let h={baseFs:A,readOnly:o,stats:await A.statPromise(p)};return()=>new Zi(p,h)};super({...e,factorySync:n,factoryPromise:u,getMountPoint:a})}}});function pot(t){if(typeof t=="string"&&String(+t)===t)return+t;if(typeof t=="number"&&Number.isFinite(t))return t<0?Date.now()/1e3:t;if(qle.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function CS(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var na,z4,qle,J4,jle,wS,Zi,X4=Et(()=>{Pt();Pt();Pt();Pt();Pt();Pt();na=ve("fs"),z4=ve("stream"),qle=ve("util"),J4=Ze(ve("zlib"));Y4();jle="mixed";wS=class extends Error{constructor(e,r){super(e),this.name="Libzip Error",this.code=r}},Zi=class extends _u{constructor(r,o={}){super();this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;let a=o;if(this.level=typeof a.level<"u"?a.level:jle,r??=CS(),typeof r=="string"){let{baseFs:A=new Tn}=a;this.baseFs=A,this.path=r}else this.path=null,this.baseFs=null;if(o.stats)this.stats=o.stats;else if(typeof r=="string")try{this.stats=this.baseFs.statSync(r)}catch(A){if(A.code==="ENOENT"&&a.create)this.stats=wa.makeDefaultStats();else throw A}else this.stats=wa.makeDefaultStats();this.libzip=f1();let n=this.libzip.malloc(4);try{let A=0;o.readOnly&&(A|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof r=="string"&&(r=a.create?CS():this.baseFs.readFileSync(r));let p=this.allocateUnattachedSource(r);try{this.zip=this.libzip.openFromSource(p,A,n),this.lzSource=p}catch(h){throw this.libzip.source.free(p),h}if(this.zip===0){let h=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(h,this.libzip.getValue(n,"i32")),this.makeLibzipError(h)}}finally{this.libzip.free(n)}this.listings.set(It.root,new Set);let u=this.libzip.getNumEntries(this.zip,0);for(let A=0;Ar)throw new Error("Overread");let n=Buffer.from(this.libzip.HEAPU8.subarray(o,o+r));return process.env.YARN_IS_TEST_ENV&&process.env.YARN_ZIP_DATA_EPILOGUE&&(n=Buffer.concat([n,Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)])),n}finally{this.libzip.free(o)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.readOnly){this.discardAndClose();return}let r=this.baseFs.existsSync(this.path)||this.stats.mode===wa.DEFAULT_MODE?void 0:this.stats.mode;this.baseFs.writeFileSync(this.path,this.getBufferAndClose(),{mode:r}),this.ready=!1}resolve(r){return V.resolve(It.root,r)}async openPromise(r,o,a){return this.openSync(r,o,a)}openSync(r,o,a){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:r}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(r,o){return this.opendirSync(r,o)}opendirSync(r,o={}){let a=this.resolveFilename(`opendir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw nr.ENOENT(`opendir '${r}'`);let n=this.listings.get(a);if(!n)throw nr.ENOTDIR(`opendir '${r}'`);let u=[...n],A=this.openSync(a,"r");return uD(this,a,u,{onClose:()=>{this.closeSync(A)}})}async readPromise(r,o,a,n,u){return this.readSync(r,o,a,n,u)}readSync(r,o,a=0,n=o.byteLength,u=-1){let A=this.fds.get(r);if(typeof A>"u")throw nr.EBADF("read");let p=u===-1||u===null?A.cursor:u,h=this.readFileSync(A.p);h.copy(o,a,p,p+n);let E=Math.max(0,Math.min(h.length-p,n));return(u===-1||u===null)&&(A.cursor+=E),E}async writePromise(r,o,a,n,u){return typeof o=="string"?this.writeSync(r,o,u):this.writeSync(r,o,a,n,u)}writeSync(r,o,a,n,u){throw typeof this.fds.get(r)>"u"?nr.EBADF("read"):new Error("Unimplemented")}async closePromise(r){return this.closeSync(r)}closeSync(r){if(typeof this.fds.get(r)>"u")throw nr.EBADF("read");this.fds.delete(r)}createReadStream(r,{encoding:o}={}){if(r===null)throw new Error("Unimplemented");let a=this.openSync(r,"r"),n=Object.assign(new z4.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(A,p)=>{clearImmediate(u),this.closeSync(a),p(A)}}),{close(){n.destroy()},bytesRead:0,path:r,pending:!1}),u=setImmediate(async()=>{try{let A=await this.readFilePromise(r,o);n.bytesRead=A.length,n.end(A)}catch(A){n.destroy(A)}});return n}createWriteStream(r,{encoding:o}={}){if(this.readOnly)throw nr.EROFS(`open '${r}'`);if(r===null)throw new Error("Unimplemented");let a=[],n=this.openSync(r,"w"),u=Object.assign(new z4.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(A,p)=>{try{A?p(A):(this.writeFileSync(r,Buffer.concat(a),o),p(null))}catch(h){p(h)}finally{this.closeSync(n)}}}),{close(){u.destroy()},bytesWritten:0,path:r,pending:!1});return u.on("data",A=>{let p=Buffer.from(A);u.bytesWritten+=p.length,a.push(p)}),u}async realpathPromise(r){return this.realpathSync(r)}realpathSync(r){let o=this.resolveFilename(`lstat '${r}'`,r);if(!this.entries.has(o)&&!this.listings.has(o))throw nr.ENOENT(`lstat '${r}'`);return o}async existsPromise(r){return this.existsSync(r)}existsSync(r){if(!this.ready)throw nr.EBUSY(`archive closed, existsSync '${r}'`);if(this.symlinkCount===0){let a=V.resolve(It.root,r);return this.entries.has(a)||this.listings.has(a)}let o;try{o=this.resolveFilename(`stat '${r}'`,r,void 0,!1)}catch{return!1}return o===void 0?!1:this.entries.has(o)||this.listings.has(o)}async accessPromise(r,o){return this.accessSync(r,o)}accessSync(r,o=na.constants.F_OK){let a=this.resolveFilename(`access '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw nr.ENOENT(`access '${r}'`);if(this.readOnly&&o&na.constants.W_OK)throw nr.EROFS(`access '${r}'`)}async statPromise(r,o={bigint:!1}){return o.bigint?this.statSync(r,{bigint:!0}):this.statSync(r)}statSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`stat '${r}'`,r,void 0,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw nr.ENOENT(`stat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw nr.ENOTDIR(`stat '${r}'`);return this.statImpl(`stat '${r}'`,a,o)}}async fstatPromise(r,o){return this.fstatSync(r,o)}fstatSync(r,o){let a=this.fds.get(r);if(typeof a>"u")throw nr.EBADF("fstatSync");let{p:n}=a,u=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(u)&&!this.listings.has(u))throw nr.ENOENT(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(u))throw nr.ENOTDIR(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,u,o)}async lstatPromise(r,o={bigint:!1}){return o.bigint?this.lstatSync(r,{bigint:!0}):this.lstatSync(r)}lstatSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`lstat '${r}'`,r,!1,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw nr.ENOENT(`lstat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw nr.ENOTDIR(`lstat '${r}'`);return this.statImpl(`lstat '${r}'`,a,o)}}statImpl(r,o,a={}){let n=this.entries.get(o);if(typeof n<"u"){let u=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,u)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let p=this.stats.uid,h=this.stats.gid,E=this.libzip.struct.statSize(u)>>>0,I=512,v=Math.ceil(E/I),x=(this.libzip.struct.statMtime(u)>>>0)*1e3,C=x,R=x,L=x,U=new Date(C),z=new Date(R),te=new Date(L),ae=new Date(x),le=this.listings.has(o)?na.constants.S_IFDIR:this.isSymbolicLink(n)?na.constants.S_IFLNK:na.constants.S_IFREG,ce=le===na.constants.S_IFDIR?493:420,Ce=le|this.getUnixMode(n,ce)&511,de=this.libzip.struct.statCrc(u),Be=Object.assign(new wa.StatEntry,{uid:p,gid:h,size:E,blksize:I,blocks:v,atime:U,birthtime:z,ctime:te,mtime:ae,atimeMs:C,birthtimeMs:R,ctimeMs:L,mtimeMs:x,mode:Ce,crc:de});return a.bigint===!0?wa.convertToBigIntStats(Be):Be}if(this.listings.has(o)){let u=this.stats.uid,A=this.stats.gid,p=0,h=512,E=0,I=this.stats.mtimeMs,v=this.stats.mtimeMs,x=this.stats.mtimeMs,C=this.stats.mtimeMs,R=new Date(I),L=new Date(v),U=new Date(x),z=new Date(C),te=na.constants.S_IFDIR|493,le=Object.assign(new wa.StatEntry,{uid:u,gid:A,size:p,blksize:h,blocks:E,atime:R,birthtime:L,ctime:U,mtime:z,atimeMs:I,birthtimeMs:v,ctimeMs:x,mtimeMs:C,mode:te,crc:0});return a.bigint===!0?wa.convertToBigIntStats(le):le}throw new Error("Unreachable")}getUnixMode(r,o){if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?o:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(r){let o=this.listings.get(r);if(o)return o;this.registerListing(V.dirname(r)).add(V.basename(r));let n=new Set;return this.listings.set(r,n),n}registerEntry(r,o){this.registerListing(V.dirname(r)).add(V.basename(r)),this.entries.set(r,o)}unregisterListing(r){this.listings.delete(r),this.listings.get(V.dirname(r))?.delete(V.basename(r))}unregisterEntry(r){this.unregisterListing(r);let o=this.entries.get(r);this.entries.delete(r),!(typeof o>"u")&&(this.fileSources.delete(o),this.isSymbolicLink(o)&&this.symlinkCount--)}deleteEntry(r,o){if(this.unregisterEntry(r),this.libzip.delete(this.zip,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(r,o,a=!0,n=!0){if(!this.ready)throw nr.EBUSY(`archive closed, ${r}`);let u=V.resolve(It.root,o);if(u==="/")return It.root;let A=this.entries.get(u);if(a&&A!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(A)){let p=this.getFileSource(A).toString();return this.resolveFilename(r,V.resolve(V.dirname(u),p),!0,n)}else return u;for(;;){let p=this.resolveFilename(r,V.dirname(u),!0,n);if(p===void 0)return p;let h=this.listings.has(p),E=this.entries.has(p);if(!h&&!E){if(n===!1)return;throw nr.ENOENT(r)}if(!h)throw nr.ENOTDIR(r);if(u=V.resolve(p,V.basename(u)),!a||this.symlinkCount===0)break;let I=this.libzip.name.locate(this.zip,u.slice(1),0);if(I===-1)break;if(this.isSymbolicLink(I)){let v=this.getFileSource(I).toString();u=V.resolve(V.dirname(u),v)}else break}return u}allocateBuffer(r){Buffer.isBuffer(r)||(r=Buffer.from(r));let o=this.libzip.malloc(r.byteLength);if(!o)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,o,r.byteLength).set(r),{buffer:o,byteLength:r.byteLength}}allocateUnattachedSource(r){let o=this.libzip.struct.errorS(),{buffer:a,byteLength:n}=this.allocateBuffer(r),u=this.libzip.source.fromUnattachedBuffer(a,n,0,1,o);if(u===0)throw this.libzip.free(o),this.makeLibzipError(o);return u}allocateSource(r){let{buffer:o,byteLength:a}=this.allocateBuffer(r),n=this.libzip.source.fromBuffer(this.zip,o,a,0,1);if(n===0)throw this.libzip.free(o),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(r,o){let a=Buffer.isBuffer(o)?o:Buffer.from(o),n=V.relative(It.root,r),u=this.allocateSource(o);try{let A=this.libzip.file.add(this.zip,n,u,this.libzip.ZIP_FL_OVERWRITE);if(A===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let p=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,A,0,p,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(A,a),A}catch(A){throw this.libzip.source.free(u),A}}isSymbolicLink(r){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&na.constants.S_IFMT)===na.constants.S_IFLNK}getFileSource(r,o={asyncDecompress:!1}){let a=this.fileSources.get(r);if(typeof a<"u")return a;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,r,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let A=this.libzip.struct.statCompSize(n),p=this.libzip.struct.statCompMethod(n),h=this.libzip.malloc(A);try{let E=this.libzip.fopenIndex(this.zip,r,0,this.libzip.ZIP_FL_COMPRESSED);if(E===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let I=this.libzip.fread(E,h,A,0);if(I===-1)throw this.makeLibzipError(this.libzip.file.getError(E));if(IA)throw new Error("Overread");let v=this.libzip.HEAPU8.subarray(h,h+A),x=Buffer.from(v);if(p===0)return this.fileSources.set(r,x),x;if(o.asyncDecompress)return new Promise((C,R)=>{J4.default.inflateRaw(x,(L,U)=>{L?R(L):(this.fileSources.set(r,U),C(U))})});{let C=J4.default.inflateRawSync(x);return this.fileSources.set(r,C),C}}finally{this.libzip.fclose(E)}}finally{this.libzip.free(h)}}async fchmodPromise(r,o){return this.chmodPromise(this.fdToPath(r,"fchmod"),o)}fchmodSync(r,o){return this.chmodSync(this.fdToPath(r,"fchmodSync"),o)}async chmodPromise(r,o){return this.chmodSync(r,o)}chmodSync(r,o){if(this.readOnly)throw nr.EROFS(`chmod '${r}'`);o&=493;let a=this.resolveFilename(`chmod '${r}'`,r,!1),n=this.entries.get(a);if(typeof n>"u")throw new Error(`Assertion failed: The entry should have been registered (${a})`);let A=this.getUnixMode(n,na.constants.S_IFREG|0)&-512|o;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,A<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(r,o,a){return this.chownPromise(this.fdToPath(r,"fchown"),o,a)}fchownSync(r,o,a){return this.chownSync(this.fdToPath(r,"fchownSync"),o,a)}async chownPromise(r,o,a){return this.chownSync(r,o,a)}chownSync(r,o,a){throw new Error("Unimplemented")}async renamePromise(r,o){return this.renameSync(r,o)}renameSync(r,o){throw new Error("Unimplemented")}async copyFilePromise(r,o,a){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=await this.getFileSource(n,{asyncDecompress:!0}),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}copyFileSync(r,o,a=0){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=this.getFileSource(n),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}prepareCopyFile(r,o,a=0){if(this.readOnly)throw nr.EROFS(`copyfile '${r} -> '${o}'`);if(a&na.constants.COPYFILE_FICLONE_FORCE)throw nr.ENOSYS("unsupported clone operation",`copyfile '${r}' -> ${o}'`);let n=this.resolveFilename(`copyfile '${r} -> ${o}'`,r),u=this.entries.get(n);if(typeof u>"u")throw nr.EINVAL(`copyfile '${r}' -> '${o}'`);let A=this.resolveFilename(`copyfile '${r}' -> ${o}'`,o),p=this.entries.get(A);if(a&(na.constants.COPYFILE_EXCL|na.constants.COPYFILE_FICLONE_FORCE)&&typeof p<"u")throw nr.EEXIST(`copyfile '${r}' -> '${o}'`);return{indexSource:u,resolvedDestP:A,indexDest:p}}async appendFilePromise(r,o,a){if(this.readOnly)throw nr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFilePromise(r,o,a)}appendFileSync(r,o,a={}){if(this.readOnly)throw nr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFileSync(r,o,a)}fdToPath(r,o){let a=this.fds.get(r)?.p;if(typeof a>"u")throw nr.EBADF(o);return a}async writeFilePromise(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([await this.getFileSource(A,{asyncDecompress:!0}),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&await this.chmodPromise(p,u)}writeFileSync(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([this.getFileSource(A),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&this.chmodSync(p,u)}prepareWriteFile(r,o){if(typeof r=="number"&&(r=this.fdToPath(r,"read")),this.readOnly)throw nr.EROFS(`open '${r}'`);let a=this.resolveFilename(`open '${r}'`,r);if(this.listings.has(a))throw nr.EISDIR(`open '${r}'`);let n=null,u=null;typeof o=="string"?n=o:typeof o=="object"&&({encoding:n=null,mode:u=null}=o);let A=this.entries.get(a);return{encoding:n,mode:u,resolvedP:a,index:A}}async unlinkPromise(r){return this.unlinkSync(r)}unlinkSync(r){if(this.readOnly)throw nr.EROFS(`unlink '${r}'`);let o=this.resolveFilename(`unlink '${r}'`,r);if(this.listings.has(o))throw nr.EISDIR(`unlink '${r}'`);let a=this.entries.get(o);if(typeof a>"u")throw nr.EINVAL(`unlink '${r}'`);this.deleteEntry(o,a)}async utimesPromise(r,o,a){return this.utimesSync(r,o,a)}utimesSync(r,o,a){if(this.readOnly)throw nr.EROFS(`utimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r);this.utimesImpl(n,a)}async lutimesPromise(r,o,a){return this.lutimesSync(r,o,a)}lutimesSync(r,o,a){if(this.readOnly)throw nr.EROFS(`lutimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r,!1);this.utimesImpl(n,a)}utimesImpl(r,o){this.listings.has(r)&&(this.entries.has(r)||this.hydrateDirectory(r));let a=this.entries.get(r);if(a===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,a,0,pot(o),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(r,o){return this.mkdirSync(r,o)}mkdirSync(r,{mode:o=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(r,{chmod:o});if(this.readOnly)throw nr.EROFS(`mkdir '${r}'`);let n=this.resolveFilename(`mkdir '${r}'`,r);if(this.entries.has(n)||this.listings.has(n))throw nr.EEXIST(`mkdir '${r}'`);this.hydrateDirectory(n),this.chmodSync(n,o)}async rmdirPromise(r,o){return this.rmdirSync(r,o)}rmdirSync(r,{recursive:o=!1}={}){if(this.readOnly)throw nr.EROFS(`rmdir '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rmdir '${r}'`,r),n=this.listings.get(a);if(!n)throw nr.ENOTDIR(`rmdir '${r}'`);if(n.size>0)throw nr.ENOTEMPTY(`rmdir '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw nr.EINVAL(`rmdir '${r}'`);this.deleteEntry(r,u)}async rmPromise(r,o){return this.rmSync(r,o)}rmSync(r,{recursive:o=!1}={}){if(this.readOnly)throw nr.EROFS(`rm '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rm '${r}'`,r),n=this.listings.get(a);if(!n)throw nr.ENOTDIR(`rm '${r}'`);if(n.size>0)throw nr.ENOTEMPTY(`rm '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw nr.EINVAL(`rm '${r}'`);this.deleteEntry(r,u)}hydrateDirectory(r){let o=this.libzip.dir.add(this.zip,V.relative(It.root,r));if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(r),this.registerEntry(r,o),o}async linkPromise(r,o){return this.linkSync(r,o)}linkSync(r,o){throw nr.EOPNOTSUPP(`link '${r}' -> '${o}'`)}async symlinkPromise(r,o){return this.symlinkSync(r,o)}symlinkSync(r,o){if(this.readOnly)throw nr.EROFS(`symlink '${r}' -> '${o}'`);let a=this.resolveFilename(`symlink '${r}' -> '${o}'`,o);if(this.listings.has(a))throw nr.EISDIR(`symlink '${r}' -> '${o}'`);if(this.entries.has(a))throw nr.EEXIST(`symlink '${r}' -> '${o}'`);let n=this.setFileSource(a,r);if(this.registerEntry(a,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(na.constants.S_IFLNK|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=await this.readFileBuffer(r,{asyncDecompress:!0});return o?a.toString(o):a}readFileSync(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=this.readFileBuffer(r);return o?a.toString(o):a}readFileBuffer(r,o={asyncDecompress:!1}){typeof r=="number"&&(r=this.fdToPath(r,"read"));let a=this.resolveFilename(`open '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw nr.ENOENT(`open '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(a))throw nr.ENOTDIR(`open '${r}'`);if(this.listings.has(a))throw nr.EISDIR("read");let n=this.entries.get(a);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,o)}async readdirPromise(r,o){return this.readdirSync(r,o)}readdirSync(r,o){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw nr.ENOENT(`scandir '${r}'`);let n=this.listings.get(a);if(!n)throw nr.ENOTDIR(`scandir '${r}'`);if(o?.recursive)if(o?.withFileTypes){let u=Array.from(n,A=>Object.assign(this.statImpl("lstat",V.join(r,A)),{name:A,path:It.dot}));for(let A of u){if(!A.isDirectory())continue;let p=V.join(A.path,A.name),h=this.listings.get(V.join(a,p));for(let E of h)u.push(Object.assign(this.statImpl("lstat",V.join(r,p,E)),{name:E,path:p}))}return u}else{let u=[...n];for(let A of u){let p=this.listings.get(V.join(a,A));if(!(typeof p>"u"))for(let h of p)u.push(V.join(A,h))}return u}else return o?.withFileTypes?Array.from(n,u=>Object.assign(this.statImpl("lstat",V.join(r,u)),{name:u,path:void 0})):[...n]}async readlinkPromise(r){let o=this.prepareReadlink(r);return(await this.getFileSource(o,{asyncDecompress:!0})).toString()}readlinkSync(r){let o=this.prepareReadlink(r);return this.getFileSource(o).toString()}prepareReadlink(r){let o=this.resolveFilename(`readlink '${r}'`,r,!1);if(!this.entries.has(o)&&!this.listings.has(o))throw nr.ENOENT(`readlink '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(o))throw nr.ENOTDIR(`open '${r}'`);if(this.listings.has(o))throw nr.EINVAL(`readlink '${r}'`);let a=this.entries.get(o);if(a===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(a))throw nr.EINVAL(`readlink '${r}'`);return a}async truncatePromise(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw nr.EINVAL(`open '${r}'`);let u=await this.getFileSource(n,{asyncDecompress:!0}),A=Buffer.alloc(o,0);return u.copy(A),await this.writeFilePromise(r,A)}truncateSync(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw nr.EINVAL(`open '${r}'`);let u=this.getFileSource(n),A=Buffer.alloc(o,0);return u.copy(A),this.writeFileSync(r,A)}async ftruncatePromise(r,o){return this.truncatePromise(this.fdToPath(r,"ftruncate"),o)}ftruncateSync(r,o){return this.truncateSync(this.fdToPath(r,"ftruncateSync"),o)}watch(r,o,a){let n;switch(typeof o){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=o);break}if(!n)return{on:()=>{},close:()=>{}};let u=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(u)}}}watchFile(r,o,a){let n=V.resolve(It.root,r);return jd(this,n,o,a)}unwatchFile(r,o){let a=V.resolve(It.root,r);return T0(this,a,o)}}});function Yle(t,e,r=Buffer.alloc(0),o){let a=new Zi(r),n=I=>I===e||I.startsWith(`${e}/`)?I.slice(0,e.length):null,u=async(I,v)=>()=>a,A=(I,v)=>a,p={...t},h=new Tn(p),E=new Up({baseFs:h,getMountPoint:n,factoryPromise:u,factorySync:A,magicByte:21,maxAge:1/0,typeCheck:o?.typeCheck});return xw(Gle.default,new _p(E)),a}var Gle,Wle=Et(()=>{Pt();Gle=Ze(ve("fs"));X4()});var Kle=Et(()=>{Hle();X4();Wle()});var p1={};Vt(p1,{DEFAULT_COMPRESSION_LEVEL:()=>jle,LibzipError:()=>wS,ZipFS:()=>Zi,ZipOpenFS:()=>rA,getArchivePart:()=>V4,getLibzipPromise:()=>got,getLibzipSync:()=>hot,makeEmptyArchive:()=>CS,mountMemoryDrive:()=>Yle});function hot(){return f1()}async function got(){return f1()}var Vle,nA=Et(()=>{Y4();Vle=Ze(Mle());_le();Kle();Lle(()=>{let t=(0,Vle.default)();return Ule(t)})});var h1,zle=Et(()=>{Pt();qt();g1();h1=class extends it{constructor(){super(...arguments);this.cwd=ge.String("--cwd",process.cwd(),{description:"The directory to run the command in"});this.commandName=ge.String();this.args=ge.Proxy()}static{this.usage={description:"run a command using yarn's portable shell",details:` + This command will run a command using Yarn's portable shell. + + Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell. + + Note: To escape something from Yarn's shell, you might have to escape it twice, the first time from your own shell. + + Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used. + + For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md. + `,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await cy(r,[],{cwd:ue.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}}});var ll,Jle=Et(()=>{ll=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var vS={};Vt(vS,{fastGlobOptions:()=>$le,isBraceExpansion:()=>Z4,isGlobPattern:()=>dot,match:()=>mot,micromatchOptions:()=>BS});function dot(t){if(!IS.default.scan(t,BS).isGlob)return!1;try{IS.default.parse(t,BS)}catch{return!1}return!0}function mot(t,{cwd:e,baseFs:r}){return(0,Xle.default)(t,{...$le,cwd:ue.fromPortablePath(e),fs:mD(Zle.default,new _p(r))})}function Z4(t){return IS.default.scan(t,BS).isBrace}var Xle,Zle,IS,BS,$le,ece=Et(()=>{Pt();Xle=Ze(Cb()),Zle=Ze(ve("fs")),IS=Ze($o()),BS={strictBrackets:!0},$le={onlyDirectories:!1,onlyFiles:!1}});function $4(){}function eU(){for(let t of vg)t.kill()}function ice(t,e,r,o){return a=>{let n=a[0]instanceof iA.Transform?"pipe":a[0],u=a[1]instanceof iA.Transform?"pipe":a[1],A=a[2]instanceof iA.Transform?"pipe":a[2],p=(0,rce.default)(t,e,{...o,stdio:[n,u,A]});return vg.add(p),vg.size===1&&(process.on("SIGINT",$4),process.on("SIGTERM",eU)),a[0]instanceof iA.Transform&&a[0].pipe(p.stdin),a[1]instanceof iA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof iA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",E=>{switch(vg.delete(p),vg.size===0&&(process.off("SIGINT",$4),process.off("SIGTERM",eU)),E.code){case"ENOENT":a[2].write(`command not found: ${t} +`),h(127);break;case"EACCES":a[2].write(`permission denied: ${t} +`),h(128);break;default:a[2].write(`uncaught error: ${E.message} +`),h(1);break}}),p.on("close",E=>{vg.delete(p),vg.size===0&&(process.off("SIGINT",$4),process.off("SIGTERM",eU)),h(E!==null?E:129)})})}}}function sce(t){return e=>{let r=e[0]==="pipe"?new iA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function DS(t,e){return rU.start(t,e)}function tce(t,e=null){let r=new iA.PassThrough,o=new nce.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` +`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",t(e!==null?`${e} ${p}`:p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function oce(t,{prefix:e}){return{stdout:tce(r=>t.stdout.write(`${r} +`),t.stdout.isTTY?e:null),stderr:tce(r=>t.stderr.write(`${r} +`),t.stderr.isTTY?e:null)}}var rce,iA,nce,vg,Jl,tU,rU,nU=Et(()=>{rce=Ze(KR()),iA=ve("stream"),nce=ve("string_decoder"),vg=new Set;Jl=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},tU=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},rU=class t{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:o,stderr:a}){let n=new t(null,e);return n.stdin=r,n.stdout=o,n.stderr=a,n}pipeTo(e,r=1){let o=new t(this,e),a=new tU;return o.pipe=a,o.stdout=this.stdout,o.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),o}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let o;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");o=this.stderr,e[2]=o.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),o.close(),n))}async run(){let e=[];for(let o=this;o;o=o.ancestor)e.push(o.exec());return(await Promise.all(e))[0]}}});var E1={};Vt(E1,{EntryCommand:()=>h1,ShellError:()=>ll,execute:()=>cy,globUtils:()=>vS});function ace(t,e,r){let o=new cl.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(o,{end:!1}),(e&2)===2&&r.stdin instanceof cl.Writable&&o.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stderr,{end:!1});break;default:throw new ll(`Bad file descriptor: "${t}"`)}return o}function bS(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function Eot(t,e,r){let o=[],a=new cl.PassThrough;return a.on("data",n=>o.push(n)),await SS(t,e,bS(r,{stdout:a})),Buffer.concat(o).toString().replace(/[\r\n]+$/,"")}async function lce(t,e,r){let o=t.map(async n=>{let u=await Dg(n.args,e,r);return{name:n.name,value:u.join(" ")}});return(await Promise.all(o)).reduce((n,u)=>(n[u.name]=u.value,n),{})}function PS(t){return t.match(/[^ \r\n\t]+/g)||[]}async function hce(t,e,r,o,a=o){switch(t.name){case"$":o(String(process.pid));break;case"#":o(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let u=PS(n);for(let A=0;A=0&&n"u"&&(t.defaultValue?u=(await Dg(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(u="")),typeof u>"u")throw A?new ll(`Unbound argument #${n}`):new ll(`Unbound variable "${t.name}"`);if(t.quoted)o(u);else{let p=PS(u);for(let E=0;Eo.push(n));let a=Number(o.join(" "));return Number.isNaN(a)?d1({type:"variable",name:o.join(" ")},e,r):d1({type:"number",value:a},e,r)}else return Cot[t.type](await d1(t.left,e,r),await d1(t.right,e,r))}async function Dg(t,e,r){let o=new Map,a=[],n=[],u=E=>{n.push(E)},A=()=>{n.length>0&&a.push(n.join("")),n=[]},p=E=>{u(E),A()},h=(E,I,v)=>{let x=JSON.stringify({type:E,fd:I}),C=o.get(x);typeof C>"u"&&o.set(x,C=[]),C.push(v)};for(let E of t){let I=!1;switch(E.type){case"redirection":{let v=await Dg(E.args,e,r);for(let x of v)h(E.subtype,E.fd,x)}break;case"argument":for(let v of E.segments)switch(v.type){case"text":u(v.text);break;case"glob":u(v.pattern),I=!0;break;case"shell":{let x=await Eot(v.shell,e,r);if(v.quoted)u(x);else{let C=PS(x);for(let R=0;R"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let x=await e.glob.match(v,{cwd:r.cwd,baseFs:e.baseFs});if(x.length===0){let C=Z4(v)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new ll(`No matches found: "${v}"${C}`)}for(let C of x.sort())p(C)}}if(o.size>0){let E=[];for(let[I,v]of o.entries())E.splice(E.length,0,I,String(v.length),...v);a.splice(0,0,"__ysh_set_redirects",...E,"--")}return a}function m1(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let o=ue.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:o});let[n,...u]=t;if(n==="command")return ice(u[0],u.slice(1),e,{cwd:o,env:a});let A=e.builtins.get(n);if(typeof A>"u")throw new Error(`Assertion failed: A builtin should exist for "${n}"`);return sce(async({stdin:p,stdout:h,stderr:E})=>{let{stdin:I,stdout:v,stderr:x}=r;r.stdin=p,r.stdout=h,r.stderr=E;try{return await A(u,e,r)}finally{r.stdin=I,r.stdout=v,r.stderr=x}})}function wot(t,e,r){return o=>{let a=new cl.PassThrough,n=SS(t,e,bS(r,{stdin:a}));return{stdin:a,promise:n}}}function Iot(t,e,r){return o=>{let a=new cl.PassThrough,n=SS(t,e,r);return{stdin:a,promise:n}}}function cce(t,e,r,o){if(e.length===0)return t;{let a;do a=String(Math.random());while(Object.hasOwn(o.procedures,a));return o.procedures={...o.procedures},o.procedures[a]=t,m1([...e,"__ysh_run_procedure",a],r,o)}}async function uce(t,e,r){let o=t,a=null,n=null;for(;o;){let u=o.then?{...r}:r,A;switch(o.type){case"command":{let p=await Dg(o.args,e,r),h=await lce(o.envs,e,r);A=o.envs.length?m1(p,e,bS(u,{environment:h})):m1(p,e,u)}break;case"subshell":{let p=await Dg(o.args,e,r),h=wot(o.subshell,e,u);A=cce(h,p,e,u)}break;case"group":{let p=await Dg(o.args,e,r),h=Iot(o.group,e,u);A=cce(h,p,e,u)}break;case"envs":{let p=await lce(o.envs,e,r);u.environment={...u.environment,...p},A=m1(["true"],e,u)}break}if(typeof A>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)n=DS(A,{stdin:new Jl(u.stdin),stdout:new Jl(u.stdout),stderr:new Jl(u.stderr)});else{if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":n=n.pipeTo(A,1);break;case"|&":n=n.pipeTo(A,3);break}}o.then?(a=o.then.type,o=o.then.chain):o=null}if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await n.run()}async function Bot(t,e,r,{background:o=!1}={}){function a(n){let u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[n%u.length];return Ace.default.hex(A)}if(o){let n=r.nextBackgroundJobIndex++,u=a(n),A=`[${n}]`,p=u(A),{stdout:h,stderr:E}=oce(r,{prefix:p});return r.backgroundJobs.push(uce(t,e,bS(r,{stdout:h,stderr:E})).catch(I=>E.write(`${I.message} +`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${u(Jd(t))}' has ended +`)})),0}return await uce(t,e,r)}async function vot(t,e,r,{background:o=!1}={}){let a,n=A=>{a=A,r.variables["?"]=String(A)},u=async A=>{try{return await Bot(A.chain,e,r,{background:o&&typeof A.then>"u"})}catch(p){if(!(p instanceof ll))throw p;return r.stderr.write(`${p.message} +`),1}};for(n(await u(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await u(t.then.line));break;case"||":a!==0&&n(await u(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function SS(t,e,r){let o=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:u}of t){if(a=await vot(n,e,r,{background:u==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=o,a}function gce(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>y1(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>y1(e));case"arithmetic":return iU(t.arithmetic);case"shell":return sU(t.shell);default:return!1}}function y1(t){switch(t.type){case"redirection":return t.args.some(e=>y1(e));case"argument":return t.segments.some(e=>gce(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function iU(t){switch(t.type){case"variable":return gce(t);case"number":return!1;default:return iU(t.left)||iU(t.right)}}function sU(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let o;switch(r.type){case"subshell":o=sU(r.subshell);break;case"command":o=r.envs.some(a=>a.args.some(n=>y1(n)))||r.args.some(a=>y1(a));break}if(o)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function cy(t,e=[],{baseFs:r=new Tn,builtins:o={},cwd:a=ue.toPortablePath(process.cwd()),env:n=process.env,stdin:u=process.stdin,stdout:A=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=vS}={}){let I={};for(let[C,R]of Object.entries(n))typeof R<"u"&&(I[C]=R);let v=new Map(yot);for(let[C,R]of Object.entries(o))v.set(C,R);u===null&&(u=new cl.PassThrough,u.end());let x=CD(t,E);if(!sU(x)&&x.length>0&&e.length>0){let{command:C}=x[x.length-1];for(;C.then;)C=C.then.line;let R=C.chain;for(;R.then;)R=R.then.chain;R.type==="command"&&(R.args=R.args.concat(e.map(L=>({type:"argument",segments:[{type:"text",text:L}]}))))}return await SS(x,{args:e,baseFs:r,builtins:v,initialStdin:u,initialStdout:A,initialStderr:p,glob:E},{cwd:a,environment:I,exitCode:null,procedures:{},stdin:u,stdout:A,stderr:p,variables:Object.assign({},h,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var Ace,fce,cl,pce,yot,Cot,g1=Et(()=>{Pt();Nl();Ace=Ze(pN()),fce=ve("os"),cl=ve("stream"),pce=ve("timers/promises");zle();Jle();ece();nU();nU();yot=new Map([["cd",async([t=(0,fce.homedir)(),...e],r,o)=>{let a=V.resolve(o.cwd,ue.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(u=>{throw u.code==="ENOENT"?new ll(`cd: no such file or directory: ${t}`):u})).isDirectory())throw new ll(`cd: not a directory: ${t}`);return o.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${ue.fromPortablePath(r.cwd)} +`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,o)=>o.exitCode=parseInt(t??o.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} +`),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new ll("sleep: missing operand");let o=Number(t);if(Number.isNaN(o))throw new ll(`sleep: invalid time interval '${t}'`);return await(0,pce.setTimeout)(1e3*o,0)}],["unset",async(t,e,r)=>{for(let o of t)delete r.environment[o],delete r.variables[o];return 0}],["__ysh_run_procedure",async(t,e,r)=>{let o=r.procedures[t[0]];return await DS(o,{stdin:new Jl(r.stdin),stdout:new Jl(r.stdout),stderr:new Jl(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let o=r.stdin,a=r.stdout,n=r.stderr,u=[],A=[],p=[],h=0;for(;t[h]!=="--";){let I=t[h++],{type:v,fd:x}=JSON.parse(I),C=z=>{switch(x){case null:case 0:u.push(z);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},R=z=>{switch(x){case null:case 1:A.push(z);break;case 2:p.push(z);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},L=Number(t[h++]),U=h+L;for(let z=h;ze.baseFs.createReadStream(V.resolve(r.cwd,ue.toPortablePath(t[z]))));break;case"<<<":C(()=>{let te=new cl.PassThrough;return process.nextTick(()=>{te.write(`${t[z]} +`),te.end()}),te});break;case"<&":C(()=>ace(Number(t[z]),1,r));break;case">":case">>":{let te=V.resolve(r.cwd,ue.toPortablePath(t[z]));R(te==="/dev/null"?new cl.Writable({autoDestroy:!0,emitClose:!0,write(ae,le,ce){setImmediate(ce)}}):e.baseFs.createWriteStream(te,v===">>"?{flags:"a"}:void 0))}break;case">&":R(ace(Number(t[z]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${v}"`)}}if(u.length>0){let I=new cl.PassThrough;o=I;let v=x=>{if(x===u.length)I.end();else{let C=u[x]();C.pipe(I,{end:!1}),C.on("end",()=>{v(x+1)})}};v(0)}if(A.length>0){let I=new cl.PassThrough;a=I;for(let v of A)I.pipe(v)}if(p.length>0){let I=new cl.PassThrough;n=I;for(let v of p)I.pipe(v)}let E=await DS(m1(t.slice(h+1),e,r),{stdin:new Jl(o),stdout:new Jl(a),stderr:new Jl(n)}).run();return await Promise.all(A.map(I=>new Promise((v,x)=>{I.on("error",C=>{x(C)}),I.on("close",()=>{v()}),I.end()}))),await Promise.all(p.map(I=>new Promise((v,x)=>{I.on("error",C=>{x(C)}),I.on("close",()=>{v()}),I.end()}))),E}]]);Cot={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var xS=_((c4t,dce)=>{function Dot(t,e){for(var r=-1,o=t==null?0:t.length,a=Array(o);++r{var mce=lg(),Pot=xS(),bot=Hl(),Sot=Ym(),xot=1/0,yce=mce?mce.prototype:void 0,Ece=yce?yce.toString:void 0;function Cce(t){if(typeof t=="string")return t;if(bot(t))return Pot(t,Cce)+"";if(Sot(t))return Ece?Ece.call(t):"";var e=t+"";return e=="0"&&1/t==-xot?"-0":e}wce.exports=Cce});var C1=_((A4t,Bce)=>{var kot=Ice();function Qot(t){return t==null?"":kot(t)}Bce.exports=Qot});var oU=_((f4t,vce)=>{function Fot(t,e,r){var o=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++o{var Rot=oU();function Tot(t,e,r){var o=t.length;return r=r===void 0?o:r,!e&&r>=o?t:Rot(t,e,r)}Dce.exports=Tot});var aU=_((h4t,bce)=>{var Not="\\ud800-\\udfff",Lot="\\u0300-\\u036f",Mot="\\ufe20-\\ufe2f",Oot="\\u20d0-\\u20ff",Uot=Lot+Mot+Oot,_ot="\\ufe0e\\ufe0f",Hot="\\u200d",qot=RegExp("["+Hot+Not+Uot+_ot+"]");function jot(t){return qot.test(t)}bce.exports=jot});var xce=_((g4t,Sce)=>{function Got(t){return t.split("")}Sce.exports=Got});var Mce=_((d4t,Lce)=>{var kce="\\ud800-\\udfff",Yot="\\u0300-\\u036f",Wot="\\ufe20-\\ufe2f",Kot="\\u20d0-\\u20ff",Vot=Yot+Wot+Kot,zot="\\ufe0e\\ufe0f",Jot="["+kce+"]",lU="["+Vot+"]",cU="\\ud83c[\\udffb-\\udfff]",Xot="(?:"+lU+"|"+cU+")",Qce="[^"+kce+"]",Fce="(?:\\ud83c[\\udde6-\\uddff]){2}",Rce="[\\ud800-\\udbff][\\udc00-\\udfff]",Zot="\\u200d",Tce=Xot+"?",Nce="["+zot+"]?",$ot="(?:"+Zot+"(?:"+[Qce,Fce,Rce].join("|")+")"+Nce+Tce+")*",eat=Nce+Tce+$ot,tat="(?:"+[Qce+lU+"?",lU,Fce,Rce,Jot].join("|")+")",rat=RegExp(cU+"(?="+cU+")|"+tat+eat,"g");function nat(t){return t.match(rat)||[]}Lce.exports=nat});var Uce=_((m4t,Oce)=>{var iat=xce(),sat=aU(),oat=Mce();function aat(t){return sat(t)?oat(t):iat(t)}Oce.exports=aat});var Hce=_((y4t,_ce)=>{var lat=Pce(),cat=aU(),uat=Uce(),Aat=C1();function fat(t){return function(e){e=Aat(e);var r=cat(e)?uat(e):void 0,o=r?r[0]:e.charAt(0),a=r?lat(r,1).join(""):e.slice(1);return o[t]()+a}}_ce.exports=fat});var jce=_((E4t,qce)=>{var pat=Hce(),hat=pat("toUpperCase");qce.exports=hat});var uU=_((C4t,Gce)=>{var gat=C1(),dat=jce();function mat(t){return dat(gat(t).toLowerCase())}Gce.exports=mat});var Yce=_((w4t,kS)=>{function yat(){var t=0,e=1,r=2,o=3,a=4,n=5,u=6,A=7,p=8,h=9,E=10,I=11,v=12,x=13,C=14,R=15,L=16,U=17,z=0,te=1,ae=2,le=3,ce=4;function Ce(g,me){return 55296<=g.charCodeAt(me)&&g.charCodeAt(me)<=56319&&56320<=g.charCodeAt(me+1)&&g.charCodeAt(me+1)<=57343}function de(g,me){me===void 0&&(me=0);var we=g.charCodeAt(me);if(55296<=we&&we<=56319&&me=1){var Ae=g.charCodeAt(me-1),ne=we;return 55296<=Ae&&Ae<=56319?(Ae-55296)*1024+(ne-56320)+65536:ne}return we}function Be(g,me,we){var Ae=[g].concat(me).concat([we]),ne=Ae[Ae.length-2],Z=we,xe=Ae.lastIndexOf(C);if(xe>1&&Ae.slice(1,xe).every(function(H){return H==o})&&[o,x,U].indexOf(g)==-1)return ae;var Ne=Ae.lastIndexOf(a);if(Ne>0&&Ae.slice(1,Ne).every(function(H){return H==a})&&[v,a].indexOf(ne)==-1)return Ae.filter(function(H){return H==a}).length%2==1?le:ce;if(ne==t&&Z==e)return z;if(ne==r||ne==t||ne==e)return Z==C&&me.every(function(H){return H==o})?ae:te;if(Z==r||Z==t||Z==e)return te;if(ne==u&&(Z==u||Z==A||Z==h||Z==E))return z;if((ne==h||ne==A)&&(Z==A||Z==p))return z;if((ne==E||ne==p)&&Z==p)return z;if(Z==o||Z==R)return z;if(Z==n)return z;if(ne==v)return z;var ht=Ae.indexOf(o)!=-1?Ae.lastIndexOf(o)-1:Ae.length-2;return[x,U].indexOf(Ae[ht])!=-1&&Ae.slice(ht+1,-1).every(function(H){return H==o})&&Z==C||ne==R&&[L,U].indexOf(Z)!=-1?z:me.indexOf(a)!=-1?ae:ne==a&&Z==a?z:te}this.nextBreak=function(g,me){if(me===void 0&&(me=0),me<0)return 0;if(me>=g.length-1)return g.length;for(var we=Ee(de(g,me)),Ae=[],ne=me+1;ne{var Eat=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,QS;function Cat(){if(QS)return QS;if(typeof Intl.Segmenter<"u"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return QS=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=Yce(),e=new t;return QS=r=>e.splitGraphemes(r)}}Wce.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let o=r-e,a="",n=0,u=0;for(;t.length>0;){let A=t.match(Eat)||[t,t,void 0],p=Cat()(A[1]),h=Math.min(e-n,p.length);p=p.slice(h);let E=Math.min(o-u,p.length);a+=p.slice(0,E).join(""),n+=h,u+=E,typeof A[2]<"u"&&(a+=A[2]),t=t.slice(A[0].length)}return a}});var nn,w1=Et(()=>{nn=process.env.YARN_IS_TEST_ENV?"0.0.0":"4.5.0"});function $ce(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let a=Ku(t===null?0:t);return!r&&t===null?Ot(e,a,"grey"):a}function AU(t,{configuration:e,json:r}){let o=$ce(t,{configuration:e,json:r});if(!o||t===null||t===0)return o;let a=wr[t],n=`https://yarnpkg.com/advanced/error-codes#${o}---${a}`.toLowerCase();return Tm(e,o,n)}async function uy({configuration:t,stdout:e,forceError:r},o){let a=await Rt.start({configuration:t,stdout:e,includeFooter:!1},async n=>{let u=!1,A=!1;for(let p of o)typeof p.option<"u"&&(p.error||r?(A=!0,n.reportError(50,p.message)):(u=!0,n.reportWarning(50,p.message)),p.callback?.());u&&!A&&n.reportSeparator()});return a.hasErrors()?a.exitCode():null}var Xce,RS,wat,Vce,zce,ch,Zce,Jce,Iat,Bat,TS,vat,Rt,I1=Et(()=>{Xce=Ze(Kce()),RS=Ze(X0());$D();Wl();w1();jl();wat="\xB7",Vce=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],zce=80,ch=RS.default.GITHUB_ACTIONS?{start:t=>`::group::${t} +`,end:t=>`::endgroup:: +`}:RS.default.TRAVIS?{start:t=>`travis_fold:start:${t} +`,end:t=>`travis_fold:end:${t} +`}:RS.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t} +`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,Zce=ch!==null,Jce=new Date,Iat=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,Bat=t=>t,TS=Bat({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),vat=Iat&&Object.keys(TS).find(t=>{let e=TS[t];return!(e.date&&(e.date[0]!==Jce.getDate()||e.date[1]!==Jce.getMonth()+1))})||"default";Rt=class extends Zs{constructor({configuration:r,stdout:o,json:a=!1,forceSectionAlignment:n=!1,includeNames:u=!0,includePrefix:A=!0,includeFooter:p=!0,includeLogs:h=!a,includeInfos:E=h,includeWarnings:I=h}){super();this.uncommitted=new Set;this.warningCount=0;this.errorCount=0;this.timerFooter=[];this.startTime=Date.now();this.indent=0;this.level=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;if(TI(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=u,this.includePrefix=A,this.includeFooter=p,this.includeInfos=E,this.includeWarnings=I,this.json=a,this.stdout=o,r.get("enableProgressBars")&&!a&&o.isTTY&&o.columns>22){let v=r.get("progressBarStyle")||vat;if(!Object.hasOwn(TS,v))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=TS[v];let x=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*x/80)}}static async start(r,o){let a=new this(r),n=process.emitWarning;process.emitWarning=(u,A)=>{if(typeof u!="string"){let h=u;u=h.message,A=A??h.name}let p=typeof A<"u"?`${A}: ${u}`:u;a.reportWarning(0,p)},r.includeVersion&&a.reportInfo(0,fg(r.configuration,`Yarn ${nn}`,2));try{await o(a)}catch(u){a.reportExceptionOnce(u)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let o=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,o-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}async startSectionPromise({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}startTimerImpl(r,o,a){return{cb:typeof o=="function"?o:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\u250C ${r}`),this.indent+=1,ch!==null&&!this.json&&this.includeInfos&&this.stdout.write(ch.start(r))},reportFooter:A=>{if(this.indent-=1,ch!==null&&!this.json&&this.includeInfos){this.stdout.write(ch.end(r));for(let p of this.timerFooter)p()}this.configuration.get("enableTimers")&&A>200?this.reportInfo(null,`\u2514 Completed in ${Ot(this.configuration,A,yt.DURATION)}`):this.reportInfo(null,"\u2514 Completed"),this.level-=1},skipIfEmpty:(typeof o=="function"?{}:o).skipIfEmpty}}startTimerSync(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionSync(u,n)}async startTimerPromise(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionPromise(u,n)}reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(null,"")}reportInfo(r,o){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",u=`${this.formatPrefix(n,"blueBright")}${o}`;this.json?this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(u)}reportWarning(r,o){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"yellowBright")}${o}`)}reportError(r,o){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,o)),this.reportErrorImpl(r,o)}reportErrorImpl(r,o){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"redBright")}${o}`,{truncate:!1})}reportFold(r,o){if(!ch)return;let a=`${ch.start(r)}${o}${ch.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(r.hasProgress&&r.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let o=!1,a=Promise.resolve().then(async()=>{let u={progress:r.hasProgress?0:void 0,title:r.hasTitle?"":void 0};this.progress.set(r,{definition:u,lastScaledSize:r.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:A,title:p}of r)o||u.progress===A&&u.title===p||(u.progress=A,u.title=p,this.refreshProgress());n()}),n=()=>{o||(o=!0,this.progress.delete(r),this.refreshProgress({delta:1}))};return{...a,stop:n}}reportJson(r){this.json&&this.writeLine(`${JSON.stringify(r)}`)}async finalize(){if(!this.includeFooter)return;let r="";this.errorCount>0?r="Failed with errors":this.warningCount>0?r="Done with warnings":r="Done";let o=Ot(this.configuration,Date.now()-this.startTime,yt.DURATION),a=this.configuration.get("enableTimers")?`${r} in ${o}`:r;this.errorCount>0?this.reportError(0,a):this.warningCount>0?this.reportWarning(0,a):this.reportInfo(0,a)}writeLine(r,{truncate:o}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(r,{truncate:o})} +`),this.writeProgress()}writeLines(r,{truncate:o}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:o})} +`);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let o of r)o.committed=!0,o.action()}clearProgress({delta:r=0,clear:o=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||o)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>zce&&(this.progressFrame=(this.progressFrame+1)%Vce.length,this.progressTime=r);let o=Vce[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),E=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${E}`}let u=this.formatName(null),A=u?`${u}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Ot(this.configuration,"\u27A4","blueBright")} ${A}${o}${n}${p} +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},zce)}refreshProgress({delta:r=0,force:o=!1}={}){let a=!1,n=!1;if(o||this.progress.size===0)a=!0;else for(let u of this.progress.values()){let A=typeof u.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*u.definition.progress):void 0,p=u.lastScaledSize;u.lastScaledSize=A;let h=u.lastTitle;if(u.lastTitle=u.definition.title,A!==p||(n=h!==u.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:o}={}){return this.progressStyle===null&&(o=!1),typeof o>"u"&&(o=this.configuration.get("preferTruncatedLines")),o&&(r=(0,Xce.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?$ce(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,o){return this.includePrefix?`${Ot(this.configuration,"\u27A4",o)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?AU(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ".repeat(this.indent):`${wat} `}}});var An={};Vt(An,{PackageManager:()=>rue,detectPackageManager:()=>nue,executePackageAccessibleBinary:()=>lue,executePackageScript:()=>NS,executePackageShellcode:()=>fU,executeWorkspaceAccessibleBinary:()=>Qat,executeWorkspaceLifecycleScript:()=>oue,executeWorkspaceScript:()=>sue,getPackageAccessibleBinaries:()=>LS,getWorkspaceAccessibleBinaries:()=>aue,hasPackageScript:()=>Sat,hasWorkspaceScript:()=>pU,isNodeScript:()=>hU,makeScriptEnv:()=>B1,maybeExecuteWorkspaceLifecycleScript:()=>kat,prepareExternalProject:()=>bat});async function uh(t,e,r,o=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${o.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await oe.writeFilePromise(V.format({dir:t,name:e,ext:".cmd"}),a)}await oe.writeFilePromise(V.join(t,e),`#!/bin/sh +exec "${r}" ${o.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" +`,{mode:493})}async function nue(t){let e=await Ut.tryFind(t);if(e?.packageManager){let o=Pb(e.packageManager);if(o?.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=o.reference.split(".");switch(o.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await oe.readFilePromise(V.join(t,dr.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:oe.existsSync(V.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:oe.existsSync(V.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function B1({project:t,locator:e,binFolder:r,ignoreCorepack:o,lifecycleScript:a,baseEnv:n=t?.configuration.env??process.env}){let u={};for(let[E,I]of Object.entries(n))typeof I<"u"&&(u[E.toLowerCase()!=="path"?E:"PATH"]=I);let A=ue.fromPortablePath(r);u.BERRY_BIN_FOLDER=ue.fromPortablePath(A);let p=process.env.COREPACK_ROOT&&!o?ue.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([uh(r,"node",process.execPath),...nn!==null?[uh(r,"run",process.execPath,[p,"run"]),uh(r,"yarn",process.execPath,[p]),uh(r,"yarnpkg",process.execPath,[p]),uh(r,"node-gyp",process.execPath,[p,"run","--top-level","node-gyp"])]:[]]),t&&(u.INIT_CWD=ue.fromPortablePath(t.configuration.startingCwd),u.PROJECT_CWD=ue.fromPortablePath(t.cwd)),u.PATH=u.PATH?`${A}${ue.delimiter}${u.PATH}`:`${A}`,u.npm_execpath=`${A}${ue.sep}yarn`,u.npm_node_execpath=`${A}${ue.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let E=t.tryWorkspaceByLocator(e),I=E?E.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";u.npm_package_name=rn(e),u.npm_package_version=I;let v;if(E)v=E.cwd;else{let x=t.storedPackages.get(e.locatorHash);if(!x)throw new Error(`Package for ${qr(t.configuration,e)} not found in the project`);let C=t.configuration.getLinkers(),R={project:t,report:new Rt({stdout:new Ah.PassThrough,configuration:t.configuration})},L=C.find(U=>U.supportsPackage(x,R));if(!L)throw new Error(`The package ${qr(t.configuration,x)} isn't supported by any of the available linkers`);v=await L.findPackageLocation(x,R)}u.npm_package_json=ue.fromPortablePath(V.join(v,dr.manifest))}let h=nn!==null?`yarn/${nn}`:`yarn/${vf("@yarnpkg/core").version}-core`;return u.npm_config_user_agent=`${h} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(u.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(E=>E.setupScriptEnvironment,t,u,async(E,I,v)=>await uh(r,E,I,v)),u}async function bat(t,e,{configuration:r,report:o,workspace:a=null,locator:n=null}){await Pat(async()=>{await oe.mktempPromise(async u=>{let A=V.join(u,"pack.log"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(A,{prefix:ue.fromPortablePath(t),report:o}),I=n&&Gc(n)?_I(n):n,v=I?ka(I):"an external project";h.write(`Packing ${v} from sources +`);let x=await nue(t),C;x!==null?(h.write(`Using ${x.packageManager} for bootstrap. Reason: ${x.reason} + +`),C=x.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn + +`),C="Yarn");let R=C==="Yarn"&&!x?.packageManagerField;await oe.mktempPromise(async L=>{let U=await B1({binFolder:L,ignoreCorepack:R}),te=new Map([["Yarn Classic",async()=>{let le=a!==null?["workspace",a]:[],ce=V.join(t,dr.manifest),Ce=await oe.readFilePromise(ce),de=await Wc(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(de.code!==0)return de.code;await oe.writeFilePromise(ce,Ce),await oe.appendFilePromise(V.join(t,".npmignore"),`/.yarn +`),h.write(` +`),delete U.NODE_ENV;let Be=await Wc("yarn",["install"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(Be.code!==0)return Be.code;h.write(` +`);let Ee=await Wc("yarn",[...le,"pack","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ee.code!==0?Ee.code:0}],["Yarn",async()=>{let le=a!==null?["workspace",a]:[];U.YARN_ENABLE_INLINE_BUILDS="1";let ce=V.join(t,dr.lockfile);await oe.existsPromise(ce)||await oe.writeFilePromise(ce,"");let Ce=await Wc("yarn",[...le,"pack","--install-if-needed","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ce.code!==0?Ce.code:0}],["npm",async()=>{if(a!==null){let me=new Ah.PassThrough,we=km(me);me.pipe(h,{end:!1});let Ae=await Wc("npm",["--version"],{cwd:t,env:U,stdin:p,stdout:me,stderr:E,end:0});if(me.end(),Ae.code!==0)return h.end(),E.end(),Ae.code;let ne=(await we).toString().trim();if(!tA(ne,">=7.x")){let Z=eA(null,"npm"),xe=In(Z,ne),Ne=In(Z,">=7.x");throw new Error(`Workspaces aren't supported by ${jn(r,xe)}; please upgrade to ${jn(r,Ne)} (npm has been detected as the primary package manager for ${Ot(r,t,yt.PATH)})`)}}let le=a!==null?["--workspace",a]:[];delete U.npm_config_user_agent,delete U.npm_config_production,delete U.NPM_CONFIG_PRODUCTION,delete U.NODE_ENV;let ce=await Wc("npm",["install","--legacy-peer-deps"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(ce.code!==0)return ce.code;let Ce=new Ah.PassThrough,de=km(Ce);Ce.pipe(h);let Be=await Wc("npm",["pack","--silent",...le],{cwd:t,env:U,stdin:p,stdout:Ce,stderr:E});if(Be.code!==0)return Be.code;let Ee=(await de).toString().trim().replace(/^.*\n/s,""),g=V.resolve(t,ue.toPortablePath(Ee));return await oe.renamePromise(g,e),0}]]).get(C);if(typeof te>"u")throw new Error("Assertion failed: Unsupported workflow");let ae=await te();if(!(ae===0||typeof ae>"u"))throw oe.detachTemp(u),new Jt(58,`Packing the package failed (exit code ${ae}, logs can be found here: ${Ot(r,A,yt.PATH)})`)})})})}async function Sat(t,e,{project:r}){let o=r.tryWorkspaceByLocator(t);if(o!==null)return pU(o,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${qr(r.configuration,t)} not found in the project`);return await rA.openPromise(async n=>{let u=r.configuration,A=r.configuration.getLinkers(),p={project:r,report:new Rt({stdout:new Ah.PassThrough,configuration:u})},h=A.find(x=>x.supportsPackage(a,p));if(!h)throw new Error(`The package ${qr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),I=new gn(E,{baseFs:n});return(await Ut.find(It.dot,{baseFs:I})).scripts.has(e)})}async function NS(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{manifest:h,env:E,cwd:I}=await iue(t,{project:a,binFolder:p,cwd:o,lifecycleScript:e}),v=h.scripts.get(e);if(typeof v>"u")return 1;let x=async()=>await cy(v,r,{cwd:I,env:E,stdin:n,stdout:u,stderr:A});return await(await a.configuration.reduceHook(R=>R.wrapScriptExecution,x,a,t,e,{script:v,args:r,cwd:I,env:E,stdin:n,stdout:u,stderr:A}))()})}async function fU(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{env:h,cwd:E}=await iue(t,{project:a,binFolder:p,cwd:o});return await cy(e,r,{cwd:E,env:h,stdin:n,stdout:u,stderr:A})})}async function xat(t,{binFolder:e,cwd:r,lifecycleScript:o}){let a=await B1({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:o});return await gU(e,await aue(t)),typeof r>"u"&&(r=V.dirname(await oe.realpathPromise(V.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function iue(t,{project:e,binFolder:r,cwd:o,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return xat(n,{binFolder:r,cwd:o,lifecycleScript:a});let u=e.storedPackages.get(t.locatorHash);if(!u)throw new Error(`Package for ${qr(e.configuration,t)} not found in the project`);return await rA.openPromise(async A=>{let p=e.configuration,h=e.configuration.getLinkers(),E={project:e,report:new Rt({stdout:new Ah.PassThrough,configuration:p})},I=h.find(L=>L.supportsPackage(u,E));if(!I)throw new Error(`The package ${qr(e.configuration,u)} isn't supported by any of the available linkers`);let v=await B1({project:e,locator:t,binFolder:r,lifecycleScript:a});await gU(r,await LS(t,{project:e}));let x=await I.findPackageLocation(u,E),C=new gn(x,{baseFs:A}),R=await Ut.find(It.dot,{baseFs:C});return typeof o>"u"&&(o=x),{manifest:R,binFolder:r,env:v,cwd:o}})}async function sue(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u}){return await NS(t.anchoredLocator,e,r,{cwd:o,project:t.project,stdin:a,stdout:n,stderr:u})}function pU(t,e){return t.manifest.scripts.has(e)}async function oue(t,e,{cwd:r,report:o}){let{configuration:a}=t.project,n=null;await oe.mktempPromise(async u=>{let A=V.join(u,`${e}.log`),p=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${ue.fromPortablePath(t.cwd)}") +`,{stdout:h,stderr:E}=a.getSubprocessStreams(A,{report:o,prefix:qr(a,t.anchoredLocator),header:p});o.reportInfo(36,`Calling the "${e}" lifecycle script`);let I=await sue(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),I!==0)throw oe.detachTemp(u),new Jt(36,`${(0,eue.default)(e)} script failed (exit code ${Ot(a,I,yt.NUMBER)}, logs can be found here: ${Ot(a,A,yt.PATH)}); run ${Ot(a,`yarn ${e}`,yt.CODE)} to investigate`)})}async function kat(t,e,r){pU(t,e)&&await oue(t,e,r)}function hU(t){let e=V.extname(t);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let r=Buffer.alloc(4),o;try{o=oe.openSync(t,"r")}catch{return!0}try{oe.readSync(o,r,0,r.length,0)}finally{oe.closeSync(o)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function LS(t,{project:e}){let r=e.configuration,o=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${qr(r,t)} not found in the project`);let n=new Ah.Writable,u=r.getLinkers(),A={project:e,report:new Rt({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let E of a.dependencies.values()){let I=e.storedResolutions.get(E.descriptorHash);if(!I)throw new Error(`Assertion failed: The resolution (${jn(r,E)}) should have been registered`);p.add(I)}let h=await Promise.all(Array.from(p,async E=>{let I=e.storedPackages.get(E);if(!I)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(I.bin.size===0)return ol.skip;let v=u.find(C=>C.supportsPackage(I,A));if(!v)return ol.skip;let x=null;try{x=await v.findPackageLocation(I,A)}catch(C){if(C.code==="LOCATOR_NOT_INSTALLED")return ol.skip;throw C}return{dependency:I,packageLocation:x}}));for(let E of h){if(E===ol.skip)continue;let{dependency:I,packageLocation:v}=E;for(let[x,C]of I.bin){let R=V.resolve(v,C);o.set(x,[I,ue.fromPortablePath(R),hU(R)])}}return o}async function aue(t){return await LS(t.anchoredLocator,{project:t.project})}async function gU(t,e){await Promise.all(Array.from(e,([r,[,o,a]])=>a?uh(t,r,process.execPath,[o]):uh(t,r,o,[])))}async function lue(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A,nodeArgs:p=[],packageAccessibleBinaries:h}){h??=await LS(t,{project:a});let E=h.get(e);if(!E)throw new Error(`Binary not found (${e}) for ${qr(a.configuration,t)}`);return await oe.mktempPromise(async I=>{let[,v]=E,x=await B1({project:a,locator:t,binFolder:I});await gU(x.BERRY_BIN_FOLDER,h);let C=hU(ue.toPortablePath(v))?Wc(process.execPath,[...p,v,...r],{cwd:o,env:x,stdin:n,stdout:u,stderr:A}):Wc(v,r,{cwd:o,env:x,stdin:n,stdout:u,stderr:A}),R;try{R=await C}finally{await oe.removePromise(x.BERRY_BIN_FOLDER)}return R.code})}async function Qat(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A}){return await lue(t.anchoredLocator,e,r,{project:t.project,cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A})}var eue,tue,Ah,rue,Dat,Pat,dU=Et(()=>{Pt();Pt();nA();g1();eue=Ze(uU()),tue=Ze(eg()),Ah=ve("stream");Gm();Wl();I1();w1();pS();jl();ql();xf();So();rue=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(rue||{});Dat=2,Pat=(0,tue.default)(Dat)});var Ay=_((j4t,uue)=>{"use strict";var cue=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);uue.exports=t=>t?Object.keys(t).map(e=>[cue.has(e)?cue.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var py=_((G4t,Eue)=>{"use strict";var Aue=typeof process=="object"&&process?process:{stdout:null,stderr:null},Fat=ve("events"),fue=ve("stream"),pue=ve("string_decoder").StringDecoder,Lf=Symbol("EOF"),Mf=Symbol("maybeEmitEnd"),fh=Symbol("emittedEnd"),MS=Symbol("emittingEnd"),v1=Symbol("emittedError"),OS=Symbol("closed"),hue=Symbol("read"),US=Symbol("flush"),gue=Symbol("flushChunk"),Fa=Symbol("encoding"),Of=Symbol("decoder"),_S=Symbol("flowing"),D1=Symbol("paused"),fy=Symbol("resume"),Ts=Symbol("bufferLength"),mU=Symbol("bufferPush"),yU=Symbol("bufferShift"),Fo=Symbol("objectMode"),Ro=Symbol("destroyed"),EU=Symbol("emitData"),due=Symbol("emitEnd"),CU=Symbol("emitEnd2"),Uf=Symbol("async"),P1=t=>Promise.resolve().then(t),mue=global._MP_NO_ITERATOR_SYMBOLS_!=="1",Rat=mue&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),Tat=mue&&Symbol.iterator||Symbol("iterator not implemented"),Nat=t=>t==="end"||t==="finish"||t==="prefinish",Lat=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,Mat=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),HS=class{constructor(e,r,o){this.src=e,this.dest=r,this.opts=o,this.ondrain=()=>e[fy](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},wU=class extends HS{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,o){super(e,r,o),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}};Eue.exports=class yue extends fue{constructor(e){super(),this[_S]=!1,this[D1]=!1,this.pipes=[],this.buffer=[],this[Fo]=e&&e.objectMode||!1,this[Fo]?this[Fa]=null:this[Fa]=e&&e.encoding||null,this[Fa]==="buffer"&&(this[Fa]=null),this[Uf]=e&&!!e.async||!1,this[Of]=this[Fa]?new pue(this[Fa]):null,this[Lf]=!1,this[fh]=!1,this[MS]=!1,this[OS]=!1,this[v1]=null,this.writable=!0,this.readable=!0,this[Ts]=0,this[Ro]=!1}get bufferLength(){return this[Ts]}get encoding(){return this[Fa]}set encoding(e){if(this[Fo])throw new Error("cannot set encoding in objectMode");if(this[Fa]&&e!==this[Fa]&&(this[Of]&&this[Of].lastNeed||this[Ts]))throw new Error("cannot change encoding");this[Fa]!==e&&(this[Of]=e?new pue(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[Of].write(r)))),this[Fa]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Fo]}set objectMode(e){this[Fo]=this[Fo]||!!e}get async(){return this[Uf]}set async(e){this[Uf]=this[Uf]||!!e}write(e,r,o){if(this[Lf])throw new Error("write after end");if(this[Ro])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(o=r,r="utf8"),r||(r="utf8");let a=this[Uf]?P1:n=>n();return!this[Fo]&&!Buffer.isBuffer(e)&&(Mat(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):Lat(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Fo]?(this.flowing&&this[Ts]!==0&&this[US](!0),this.flowing?this.emit("data",e):this[mU](e),this[Ts]!==0&&this.emit("readable"),o&&a(o),this.flowing):e.length?(typeof e=="string"&&!(r===this[Fa]&&!this[Of].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[Fa]&&(e=this[Of].write(e)),this.flowing&&this[Ts]!==0&&this[US](!0),this.flowing?this.emit("data",e):this[mU](e),this[Ts]!==0&&this.emit("readable"),o&&a(o),this.flowing):(this[Ts]!==0&&this.emit("readable"),o&&a(o),this.flowing)}read(e){if(this[Ro])return null;if(this[Ts]===0||e===0||e>this[Ts])return this[Mf](),null;this[Fo]&&(e=null),this.buffer.length>1&&!this[Fo]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[Ts])]);let r=this[hue](e||null,this.buffer[0]);return this[Mf](),r}[hue](e,r){return e===r.length||e===null?this[yU]():(this.buffer[0]=r.slice(e),r=r.slice(0,e),this[Ts]-=e),this.emit("data",r),!this.buffer.length&&!this[Lf]&&this.emit("drain"),r}end(e,r,o){return typeof e=="function"&&(o=e,e=null),typeof r=="function"&&(o=r,r="utf8"),e&&this.write(e,r),o&&this.once("end",o),this[Lf]=!0,this.writable=!1,(this.flowing||!this[D1])&&this[Mf](),this}[fy](){this[Ro]||(this[D1]=!1,this[_S]=!0,this.emit("resume"),this.buffer.length?this[US]():this[Lf]?this[Mf]():this.emit("drain"))}resume(){return this[fy]()}pause(){this[_S]=!1,this[D1]=!0}get destroyed(){return this[Ro]}get flowing(){return this[_S]}get paused(){return this[D1]}[mU](e){this[Fo]?this[Ts]+=1:this[Ts]+=e.length,this.buffer.push(e)}[yU](){return this.buffer.length&&(this[Fo]?this[Ts]-=1:this[Ts]-=this.buffer[0].length),this.buffer.shift()}[US](e){do;while(this[gue](this[yU]()));!e&&!this.buffer.length&&!this[Lf]&&this.emit("drain")}[gue](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Ro])return;let o=this[fh];return r=r||{},e===Aue.stdout||e===Aue.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,o?r.end&&e.end():(this.pipes.push(r.proxyErrors?new wU(this,e,r):new HS(this,e,r)),this[Uf]?P1(()=>this[fy]()):this[fy]()),e}unpipe(e){let r=this.pipes.find(o=>o.dest===e);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let o=super.on(e,r);return e==="data"&&!this.pipes.length&&!this.flowing?this[fy]():e==="readable"&&this[Ts]!==0?super.emit("readable"):Nat(e)&&this[fh]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[v1]&&(this[Uf]?P1(()=>r.call(this,this[v1])):r.call(this,this[v1])),o}get emittedEnd(){return this[fh]}[Mf](){!this[MS]&&!this[fh]&&!this[Ro]&&this.buffer.length===0&&this[Lf]&&(this[MS]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OS]&&this.emit("close"),this[MS]=!1)}emit(e,r,...o){if(e!=="error"&&e!=="close"&&e!==Ro&&this[Ro])return;if(e==="data")return r?this[Uf]?P1(()=>this[EU](r)):this[EU](r):!1;if(e==="end")return this[due]();if(e==="close"){if(this[OS]=!0,!this[fh]&&!this[Ro])return;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[v1]=r;let n=super.emit("error",r);return this[Mf](),n}else if(e==="resume"){let n=super.emit("resume");return this[Mf](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,r,...o);return this[Mf](),a}[EU](e){for(let o of this.pipes)o.dest.write(e)===!1&&this.pause();let r=super.emit("data",e);return this[Mf](),r}[due](){this[fh]||(this[fh]=!0,this.readable=!1,this[Uf]?P1(()=>this[CU]()):this[CU]())}[CU](){if(this[Of]){let r=this[Of].end();if(r){for(let o of this.pipes)o.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Fo]||(e.dataLength=0);let r=this.promise();return this.on("data",o=>{e.push(o),this[Fo]||(e.dataLength+=o.length)}),r.then(()=>e)}concat(){return this[Fo]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Fo]?Promise.reject(new Error("cannot concat in objectMode")):this[Fa]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Ro,()=>r(new Error("stream destroyed"))),this.on("error",o=>r(o)),this.on("end",()=>e())})}[Rat](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Lf])return Promise.resolve({done:!0});let o=null,a=null,n=h=>{this.removeListener("data",u),this.removeListener("end",A),a(h)},u=h=>{this.removeListener("error",n),this.removeListener("end",A),this.pause(),o({value:h,done:!!this[Lf]})},A=()=>{this.removeListener("error",n),this.removeListener("data",u),o({done:!0})},p=()=>n(new Error("stream destroyed"));return new Promise((h,E)=>{a=E,o=h,this.once(Ro,p),this.once("error",n),this.once("end",A),this.once("data",u)})}}}[Tat](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Ro]?(e?this.emit("error",e):this.emit(Ro),this):(this[Ro]=!0,this.buffer.length=0,this[Ts]=0,typeof this.close=="function"&&!this[OS]&&this.close(),e?this.emit("error",e):this.emit(Ro),this)}static isStream(e){return!!e&&(e instanceof yue||e instanceof fue||e instanceof Fat&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var wue=_((Y4t,Cue)=>{var Oat=ve("zlib").constants||{ZLIB_VERNUM:4736};Cue.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},Oat))});var MU=_(ul=>{"use strict";var PU=ve("assert"),ph=ve("buffer").Buffer,vue=ve("zlib"),Pg=ul.constants=wue(),Uat=py(),Iue=ph.concat,bg=Symbol("_superWrite"),gy=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},_at=Symbol("opts"),b1=Symbol("flushFlag"),Bue=Symbol("finishFlushFlag"),LU=Symbol("fullFlushFlag"),ti=Symbol("handle"),qS=Symbol("onError"),hy=Symbol("sawError"),IU=Symbol("level"),BU=Symbol("strategy"),vU=Symbol("ended"),W4t=Symbol("_defaultFullFlush"),jS=class extends Uat{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[hy]=!1,this[vU]=!1,this[_at]=e,this[b1]=e.flush,this[Bue]=e.finishFlush;try{this[ti]=new vue[r](e)}catch(o){throw new gy(o)}this[qS]=o=>{this[hy]||(this[hy]=!0,this.close(),this.emit("error",o))},this[ti].on("error",o=>this[qS](new gy(o))),this.once("end",()=>this.close)}close(){this[ti]&&(this[ti].close(),this[ti]=null,this.emit("close"))}reset(){if(!this[hy])return PU(this[ti],"zlib binding closed"),this[ti].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[LU]),this.write(Object.assign(ph.alloc(0),{[b1]:e})))}end(e,r,o){return e&&this.write(e,r),this.flush(this[Bue]),this[vU]=!0,super.end(null,null,o)}get ended(){return this[vU]}write(e,r,o){if(typeof r=="function"&&(o=r,r="utf8"),typeof e=="string"&&(e=ph.from(e,r)),this[hy])return;PU(this[ti],"zlib binding closed");let a=this[ti]._handle,n=a.close;a.close=()=>{};let u=this[ti].close;this[ti].close=()=>{},ph.concat=h=>h;let A;try{let h=typeof e[b1]=="number"?e[b1]:this[b1];A=this[ti]._processChunk(e,h),ph.concat=Iue}catch(h){ph.concat=Iue,this[qS](new gy(h))}finally{this[ti]&&(this[ti]._handle=a,a.close=n,this[ti].close=u,this[ti].removeAllListeners("error"))}this[ti]&&this[ti].on("error",h=>this[qS](new gy(h)));let p;if(A)if(Array.isArray(A)&&A.length>0){p=this[bg](ph.from(A[0]));for(let h=1;h{this.flush(a),n()};try{this[ti].params(e,r)}finally{this[ti].flush=o}this[ti]&&(this[IU]=e,this[BU]=r)}}}},bU=class extends _f{constructor(e){super(e,"Deflate")}},SU=class extends _f{constructor(e){super(e,"Inflate")}},DU=Symbol("_portable"),xU=class extends _f{constructor(e){super(e,"Gzip"),this[DU]=e&&!!e.portable}[bg](e){return this[DU]?(this[DU]=!1,e[9]=255,super[bg](e)):super[bg](e)}},kU=class extends _f{constructor(e){super(e,"Gunzip")}},QU=class extends _f{constructor(e){super(e,"DeflateRaw")}},FU=class extends _f{constructor(e){super(e,"InflateRaw")}},RU=class extends _f{constructor(e){super(e,"Unzip")}},GS=class extends jS{constructor(e,r){e=e||{},e.flush=e.flush||Pg.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Pg.BROTLI_OPERATION_FINISH,super(e,r),this[LU]=Pg.BROTLI_OPERATION_FLUSH}},TU=class extends GS{constructor(e){super(e,"BrotliCompress")}},NU=class extends GS{constructor(e){super(e,"BrotliDecompress")}};ul.Deflate=bU;ul.Inflate=SU;ul.Gzip=xU;ul.Gunzip=kU;ul.DeflateRaw=QU;ul.InflateRaw=FU;ul.Unzip=RU;typeof vue.BrotliCompress=="function"?(ul.BrotliCompress=TU,ul.BrotliDecompress=NU):ul.BrotliCompress=ul.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var dy=_((z4t,Due)=>{var Hat=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;Due.exports=Hat!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/")});var YS=_((X4t,Pue)=>{"use strict";var qat=py(),OU=dy(),UU=Symbol("slurp");Pue.exports=class extends qat{constructor(e,r,o){switch(super(),this.pause(),this.extended=r,this.globalExtended=o,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=OU(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=OU(e.linkpath),this.uname=e.uname,this.gname=e.gname,r&&this[UU](r),o&&this[UU](o,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let o=this.remain,a=this.blockRemain;return this.remain=Math.max(0,o-r),this.blockRemain=Math.max(0,a-r),this.ignore?!0:o>=r?super.write(e):super.write(e.slice(0,o))}[UU](e,r){for(let o in e)e[o]!==null&&e[o]!==void 0&&!(r&&o==="path")&&(this[o]=o==="path"||o==="linkpath"?OU(e[o]):e[o])}}});var _U=_(WS=>{"use strict";WS.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);WS.code=new Map(Array.from(WS.name).map(t=>[t[1],t[0]]))});var kue=_(($4t,xue)=>{"use strict";var jat=(t,e)=>{if(Number.isSafeInteger(t))t<0?Yat(t,e):Gat(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},Gat=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},Yat=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var o=e.length;o>1;o--){var a=t&255;t=Math.floor(t/256),r?e[o-1]=bue(a):a===0?e[o-1]=0:(r=!0,e[o-1]=Sue(a))}},Wat=t=>{let e=t[0],r=e===128?Vat(t.slice(1,t.length)):e===255?Kat(t):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},Kat=t=>{for(var e=t.length,r=0,o=!1,a=e-1;a>-1;a--){var n=t[a],u;o?u=bue(n):n===0?u=n:(o=!0,u=Sue(n)),u!==0&&(r-=u*Math.pow(256,e-a-1))}return r},Vat=t=>{for(var e=t.length,r=0,o=e-1;o>-1;o--){var a=t[o];a!==0&&(r+=a*Math.pow(256,e-o-1))}return r},bue=t=>(255^t)&255,Sue=t=>(255^t)+1&255;xue.exports={encode:jat,parse:Wat}});var yy=_((eUt,Fue)=>{"use strict";var HU=_U(),my=ve("path").posix,Que=kue(),qU=Symbol("slurp"),Al=Symbol("type"),YU=class{constructor(e,r,o,a){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Al]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,o,a):e&&this.set(e)}decode(e,r,o,a){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=Sg(e,r,100),this.mode=hh(e,r+100,8),this.uid=hh(e,r+108,8),this.gid=hh(e,r+116,8),this.size=hh(e,r+124,12),this.mtime=jU(e,r+136,12),this.cksum=hh(e,r+148,12),this[qU](o),this[qU](a,!0),this[Al]=Sg(e,r+156,1),this[Al]===""&&(this[Al]="0"),this[Al]==="0"&&this.path.substr(-1)==="/"&&(this[Al]="5"),this[Al]==="5"&&(this.size=0),this.linkpath=Sg(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=Sg(e,r+265,32),this.gname=Sg(e,r+297,32),this.devmaj=hh(e,r+329,8),this.devmin=hh(e,r+337,8),e[r+475]!==0){let u=Sg(e,r+345,155);this.path=u+"/"+this.path}else{let u=Sg(e,r+345,130);u&&(this.path=u+"/"+this.path),this.atime=jU(e,r+476,12),this.ctime=jU(e,r+488,12)}let n=8*32;for(let u=r;u=r+512))throw new Error("need 512 bytes for header");let o=this.ctime||this.atime?130:155,a=zat(this.path||"",o),n=a[0],u=a[1];this.needPax=a[2],this.needPax=xg(e,r,100,n)||this.needPax,this.needPax=gh(e,r+100,8,this.mode)||this.needPax,this.needPax=gh(e,r+108,8,this.uid)||this.needPax,this.needPax=gh(e,r+116,8,this.gid)||this.needPax,this.needPax=gh(e,r+124,12,this.size)||this.needPax,this.needPax=GU(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[Al].charCodeAt(0),this.needPax=xg(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=xg(e,r+265,32,this.uname)||this.needPax,this.needPax=xg(e,r+297,32,this.gname)||this.needPax,this.needPax=gh(e,r+329,8,this.devmaj)||this.needPax,this.needPax=gh(e,r+337,8,this.devmin)||this.needPax,this.needPax=xg(e,r+345,o,u)||this.needPax,e[r+475]!==0?this.needPax=xg(e,r+345,155,u)||this.needPax:(this.needPax=xg(e,r+345,130,u)||this.needPax,this.needPax=GU(e,r+476,12,this.atime)||this.needPax,this.needPax=GU(e,r+488,12,this.ctime)||this.needPax);let A=8*32;for(let p=r;p{let o=t,a="",n,u=my.parse(t).root||".";if(Buffer.byteLength(o)<100)n=[o,a,!1];else{a=my.dirname(o),o=my.basename(o);do Buffer.byteLength(o)<=100&&Buffer.byteLength(a)<=e?n=[o,a,!1]:Buffer.byteLength(o)>100&&Buffer.byteLength(a)<=e?n=[o.substr(0,99),a,!0]:(o=my.join(my.basename(a),o),a=my.dirname(a));while(a!==u&&!n);n||(n=[t.substr(0,99),"",!0])}return n},Sg=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),jU=(t,e,r)=>Jat(hh(t,e,r)),Jat=t=>t===null?null:new Date(t*1e3),hh=(t,e,r)=>t[e]&128?Que.parse(t.slice(e,e+r)):Zat(t,e,r),Xat=t=>isNaN(t)?null:t,Zat=(t,e,r)=>Xat(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),$at={12:8589934591,8:2097151},gh=(t,e,r,o)=>o===null?!1:o>$at[r]||o<0?(Que.encode(o,t.slice(e,e+r)),!0):(elt(t,e,r,o),!1),elt=(t,e,r,o)=>t.write(tlt(o,r),e,r,"ascii"),tlt=(t,e)=>rlt(Math.floor(t).toString(8),e),rlt=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",GU=(t,e,r,o)=>o===null?!1:gh(t,e,r,o.getTime()/1e3),nlt=new Array(156).join("\0"),xg=(t,e,r,o)=>o===null?!1:(t.write(o+nlt,e,r,"utf8"),o.length!==Buffer.byteLength(o)||o.length>r);Fue.exports=YU});var KS=_((tUt,Rue)=>{"use strict";var ilt=yy(),slt=ve("path"),S1=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),o=512*Math.ceil(1+r/512),a=Buffer.allocUnsafe(o);for(let n=0;n<512;n++)a[n]=0;new ilt({path:("PaxHeader/"+slt.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,r,"utf8");for(let n=r+512;n=Math.pow(10,n)&&(n+=1),n+a+o}};S1.parse=(t,e,r)=>new S1(olt(alt(t),e),r);var olt=(t,e)=>e?Object.keys(t).reduce((r,o)=>(r[o]=t[o],r),e):t,alt=t=>t.replace(/\n$/,"").split(` +`).reduce(llt,Object.create(null)),llt=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let o=e.split("="),a=o.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!a)return t;let n=o.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};Rue.exports=S1});var Ey=_((rUt,Tue)=>{Tue.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)==="/";)r=e,e--;return r===-1?t:t.slice(0,r)}});var VS=_((nUt,Nue)=>{"use strict";Nue.exports=t=>class extends t{warn(e,r,o={}){this.file&&(o.file=this.file),this.cwd&&(o.cwd=this.cwd),o.code=r instanceof Error&&r.code||e,o.tarCode=e,!this.strict&&o.recoverable!==!1?(r instanceof Error&&(o=Object.assign(r,o),r=r.message),this.emit("warn",o.tarCode,r,o)):r instanceof Error?this.emit("error",Object.assign(r,o)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),o))}}});var KU=_((sUt,Lue)=>{"use strict";var zS=["|","<",">","?",":"],WU=zS.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),clt=new Map(zS.map((t,e)=>[t,WU[e]])),ult=new Map(WU.map((t,e)=>[t,zS[e]]));Lue.exports={encode:t=>zS.reduce((e,r)=>e.split(r).join(clt.get(r)),t),decode:t=>WU.reduce((e,r)=>e.split(r).join(ult.get(r)),t)}});var VU=_((oUt,Oue)=>{var{isAbsolute:Alt,parse:Mue}=ve("path").win32;Oue.exports=t=>{let e="",r=Mue(t);for(;Alt(t)||r.root;){let o=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":r.root;t=t.substr(o.length),e+=o,r=Mue(t)}return[e,t]}});var _ue=_((aUt,Uue)=>{"use strict";Uue.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var i3=_((uUt,eAe)=>{"use strict";var Kue=py(),Vue=KS(),zue=yy(),oA=ve("fs"),Hue=ve("path"),sA=dy(),flt=Ey(),Jue=(t,e)=>e?(t=sA(t).replace(/^\.(\/|$)/,""),flt(e)+"/"+t):sA(t),plt=16*1024*1024,que=Symbol("process"),jue=Symbol("file"),Gue=Symbol("directory"),JU=Symbol("symlink"),Yue=Symbol("hardlink"),x1=Symbol("header"),JS=Symbol("read"),XU=Symbol("lstat"),XS=Symbol("onlstat"),ZU=Symbol("onread"),$U=Symbol("onreadlink"),e3=Symbol("openfile"),t3=Symbol("onopenfile"),dh=Symbol("close"),ZS=Symbol("mode"),r3=Symbol("awaitDrain"),zU=Symbol("ondrain"),aA=Symbol("prefix"),Wue=Symbol("hadError"),Xue=VS(),hlt=KU(),Zue=VU(),$ue=_ue(),$S=Xue(class extends Kue{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=sA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||plt,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=sA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?sA(r.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=Zue(this.path);a&&(this.path=n,o=a)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=hlt.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=sA(r.absolute||Hue.resolve(this.cwd,e)),this.path===""&&(this.path="./"),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.statCache.has(this.absolute)?this[XS](this.statCache.get(this.absolute)):this[XU]()}emit(e,...r){return e==="error"&&(this[Wue]=!0),super.emit(e,...r)}[XU](){oA.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[XS](r)})}[XS](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=dlt(e),this.emit("stat",e),this[que]()}[que](){switch(this.type){case"File":return this[jue]();case"Directory":return this[Gue]();case"SymbolicLink":return this[JU]();default:return this.end()}}[ZS](e){return $ue(e,this.type==="Directory",this.portable)}[aA](e){return Jue(e,this.prefix)}[x1](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new zue({path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,mode:this[ZS](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new Vue({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[Gue](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[x1](),this.end()}[JU](){oA.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[$U](r)})}[$U](e){this.linkpath=sA(e),this[x1](),this.end()}[Yue](e){this.type="Link",this.linkpath=sA(Hue.relative(this.cwd,e)),this.stat.size=0,this[x1](),this.end()}[jue](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[Yue](r)}this.linkCache.set(e,this.absolute)}if(this[x1](),this.stat.size===0)return this.end();this[e3]()}[e3](){oA.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[t3](r)})}[t3](e){if(this.fd=e,this[Wue])return this[dh]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let r=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(r),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[JS]()}[JS](){let{fd:e,buf:r,offset:o,length:a,pos:n}=this;oA.read(e,r,o,a,n,(u,A)=>{if(u)return this[dh](()=>this.emit("error",u));this[ZU](A)})}[dh](e){oA.close(this.fd,e)}[ZU](e){if(e<=0&&this.remain>0){let a=new Error("encountered unexpected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[dh](()=>this.emit("error",a))}if(e>this.remain){let a=new Error("did not encounter expected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[dh](()=>this.emit("error",a))}if(e===this.remain)for(let a=e;athis[zU]())}[r3](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[JS]()}}),n3=class extends $S{[XU](){this[XS](oA.lstatSync(this.absolute))}[JU](){this[$U](oA.readlinkSync(this.absolute))}[e3](){this[t3](oA.openSync(this.absolute,"r"))}[JS](){let e=!0;try{let{fd:r,buf:o,offset:a,length:n,pos:u}=this,A=oA.readSync(r,o,a,n,u);this[ZU](A),e=!1}finally{if(e)try{this[dh](()=>{})}catch{}}}[r3](e){e()}[dh](e){oA.closeSync(this.fd),e()}},glt=Xue(class extends Kue{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix||null,this.path=sA(e.path),this.mode=this[ZS](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=sA(e.linkpath),typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=Zue(this.path);a&&(this.path=n,o=a)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new zue({path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.header.encode()&&!this.noPax&&super.write(new Vue({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[aA](e){return Jue(e,this.prefix)}[ZS](e){return $ue(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});$S.Sync=n3;$S.Tar=glt;var dlt=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";eAe.exports=$S});var lx=_((fUt,aAe)=>{"use strict";var ox=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},mlt=py(),ylt=MU(),Elt=YS(),p3=i3(),Clt=p3.Sync,wlt=p3.Tar,Ilt=cP(),tAe=Buffer.alloc(1024),rx=Symbol("onStat"),ex=Symbol("ended"),lA=Symbol("queue"),Cy=Symbol("current"),kg=Symbol("process"),tx=Symbol("processing"),rAe=Symbol("processJob"),cA=Symbol("jobs"),s3=Symbol("jobDone"),nx=Symbol("addFSEntry"),nAe=Symbol("addTarEntry"),c3=Symbol("stat"),u3=Symbol("readdir"),ix=Symbol("onreaddir"),sx=Symbol("pipe"),iAe=Symbol("entry"),o3=Symbol("entryOpt"),A3=Symbol("writeEntryClass"),oAe=Symbol("write"),a3=Symbol("ondrain"),ax=ve("fs"),sAe=ve("path"),Blt=VS(),l3=dy(),h3=Blt(class extends mlt{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=l3(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[A3]=p3,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new ylt.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[a3]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[a3]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[lA]=new Ilt,this[cA]=0,this.jobs=+e.jobs||4,this[tx]=!1,this[ex]=!1}[oAe](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[ex]=!0,this[kg](),this}write(e){if(this[ex])throw new Error("write after end");return e instanceof Elt?this[nAe](e):this[nx](e),this.flowing}[nAe](e){let r=l3(sAe.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let o=new ox(e.path,r,!1);o.entry=new wlt(e,this[o3](o)),o.entry.on("end",a=>this[s3](o)),this[cA]+=1,this[lA].push(o)}this[kg]()}[nx](e){let r=l3(sAe.resolve(this.cwd,e));this[lA].push(new ox(e,r)),this[kg]()}[c3](e){e.pending=!0,this[cA]+=1;let r=this.follow?"stat":"lstat";ax[r](e.absolute,(o,a)=>{e.pending=!1,this[cA]-=1,o?this.emit("error",o):this[rx](e,a)})}[rx](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[kg]()}[u3](e){e.pending=!0,this[cA]+=1,ax.readdir(e.absolute,(r,o)=>{if(e.pending=!1,this[cA]-=1,r)return this.emit("error",r);this[ix](e,o)})}[ix](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[kg]()}[kg](){if(!this[tx]){this[tx]=!0;for(let e=this[lA].head;e!==null&&this[cA]this.warn(r,o,a),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[iAe](e){this[cA]+=1;try{return new this[A3](e.path,this[o3](e)).on("end",()=>this[s3](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[a3](){this[Cy]&&this[Cy].entry&&this[Cy].entry.resume()}[sx](e){e.piped=!0,e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[nx](u+a)});let r=e.entry,o=this.zip;o?r.on("data",a=>{o.write(a)||r.pause()}):r.on("data",a=>{super.write(a)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),f3=class extends h3{constructor(e){super(e),this[A3]=Clt}pause(){}resume(){}[c3](e){let r=this.follow?"statSync":"lstatSync";this[rx](e,ax[r](e.absolute))}[u3](e,r){this[ix](e,ax.readdirSync(e.absolute))}[sx](e){let r=e.entry,o=this.zip;e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[nx](u+a)}),o?r.on("data",a=>{o.write(a)}):r.on("data",a=>{super[oAe](a)})}};h3.Sync=f3;aAe.exports=h3});var Sy=_(Q1=>{"use strict";var vlt=py(),Dlt=ve("events").EventEmitter,Ra=ve("fs"),m3=Ra.writev;if(!m3){let t=process.binding("fs"),e=t.FSReqWrap||t.FSReqCallback;m3=(r,o,a,n)=>{let u=(p,h)=>n(p,h,o),A=new e;A.oncomplete=u,t.writeBuffers(r,o,a,A)}}var Py=Symbol("_autoClose"),Kc=Symbol("_close"),k1=Symbol("_ended"),Gn=Symbol("_fd"),lAe=Symbol("_finished"),yh=Symbol("_flags"),g3=Symbol("_flush"),y3=Symbol("_handleChunk"),E3=Symbol("_makeBuf"),px=Symbol("_mode"),cx=Symbol("_needDrain"),vy=Symbol("_onerror"),by=Symbol("_onopen"),d3=Symbol("_onread"),Iy=Symbol("_onwrite"),Eh=Symbol("_open"),Hf=Symbol("_path"),Qg=Symbol("_pos"),uA=Symbol("_queue"),By=Symbol("_read"),cAe=Symbol("_readSize"),mh=Symbol("_reading"),ux=Symbol("_remain"),uAe=Symbol("_size"),Ax=Symbol("_write"),wy=Symbol("_writing"),fx=Symbol("_defaultFlag"),Dy=Symbol("_errored"),hx=class extends vlt{constructor(e,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[Dy]=!1,this[Gn]=typeof r.fd=="number"?r.fd:null,this[Hf]=e,this[cAe]=r.readSize||16*1024*1024,this[mh]=!1,this[uAe]=typeof r.size=="number"?r.size:1/0,this[ux]=this[uAe],this[Py]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[Gn]=="number"?this[By]():this[Eh]()}get fd(){return this[Gn]}get path(){return this[Hf]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Eh](){Ra.open(this[Hf],"r",(e,r)=>this[by](e,r))}[by](e,r){e?this[vy](e):(this[Gn]=r,this.emit("open",r),this[By]())}[E3](){return Buffer.allocUnsafe(Math.min(this[cAe],this[ux]))}[By](){if(!this[mh]){this[mh]=!0;let e=this[E3]();if(e.length===0)return process.nextTick(()=>this[d3](null,0,e));Ra.read(this[Gn],e,0,e.length,null,(r,o,a)=>this[d3](r,o,a))}}[d3](e,r,o){this[mh]=!1,e?this[vy](e):this[y3](r,o)&&this[By]()}[Kc](){if(this[Py]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Ra.close(e,r=>r?this.emit("error",r):this.emit("close"))}}[vy](e){this[mh]=!0,this[Kc](),this.emit("error",e)}[y3](e,r){let o=!1;return this[ux]-=e,e>0&&(o=super.write(ethis[by](e,r))}[by](e,r){this[fx]&&this[yh]==="r+"&&e&&e.code==="ENOENT"?(this[yh]="w",this[Eh]()):e?this[vy](e):(this[Gn]=r,this.emit("open",r),this[g3]())}end(e,r){return e&&this.write(e,r),this[k1]=!0,!this[wy]&&!this[uA].length&&typeof this[Gn]=="number"&&this[Iy](null,0),this}write(e,r){return typeof e=="string"&&(e=Buffer.from(e,r)),this[k1]?(this.emit("error",new Error("write() after end()")),!1):this[Gn]===null||this[wy]||this[uA].length?(this[uA].push(e),this[cx]=!0,!1):(this[wy]=!0,this[Ax](e),!0)}[Ax](e){Ra.write(this[Gn],e,0,e.length,this[Qg],(r,o)=>this[Iy](r,o))}[Iy](e,r){e?this[vy](e):(this[Qg]!==null&&(this[Qg]+=r),this[uA].length?this[g3]():(this[wy]=!1,this[k1]&&!this[lAe]?(this[lAe]=!0,this[Kc](),this.emit("finish")):this[cx]&&(this[cx]=!1,this.emit("drain"))))}[g3](){if(this[uA].length===0)this[k1]&&this[Iy](null,0);else if(this[uA].length===1)this[Ax](this[uA].pop());else{let e=this[uA];this[uA]=[],m3(this[Gn],e,this[Qg],(r,o)=>this[Iy](r,o))}}[Kc](){if(this[Py]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Ra.close(e,r=>r?this.emit("error",r):this.emit("close"))}}},w3=class extends gx{[Eh](){let e;if(this[fx]&&this[yh]==="r+")try{e=Ra.openSync(this[Hf],this[yh],this[px])}catch(r){if(r.code==="ENOENT")return this[yh]="w",this[Eh]();throw r}else e=Ra.openSync(this[Hf],this[yh],this[px]);this[by](null,e)}[Kc](){if(this[Py]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Ra.closeSync(e),this.emit("close")}}[Ax](e){let r=!0;try{this[Iy](null,Ra.writeSync(this[Gn],e,0,e.length,this[Qg])),r=!1}finally{if(r)try{this[Kc]()}catch{}}}};Q1.ReadStream=hx;Q1.ReadStreamSync=C3;Q1.WriteStream=gx;Q1.WriteStreamSync=w3});var Ix=_((gUt,mAe)=>{"use strict";var Plt=VS(),blt=yy(),Slt=ve("events"),xlt=cP(),klt=1024*1024,Qlt=YS(),AAe=KS(),Flt=MU(),I3=Buffer.from([31,139]),Xl=Symbol("state"),Fg=Symbol("writeEntry"),qf=Symbol("readEntry"),B3=Symbol("nextEntry"),fAe=Symbol("processEntry"),Zl=Symbol("extendedHeader"),F1=Symbol("globalExtendedHeader"),Ch=Symbol("meta"),pAe=Symbol("emitMeta"),fi=Symbol("buffer"),jf=Symbol("queue"),Rg=Symbol("ended"),hAe=Symbol("emittedEnd"),Tg=Symbol("emit"),Ta=Symbol("unzip"),dx=Symbol("consumeChunk"),mx=Symbol("consumeChunkSub"),v3=Symbol("consumeBody"),gAe=Symbol("consumeMeta"),dAe=Symbol("consumeHeader"),yx=Symbol("consuming"),D3=Symbol("bufferConcat"),P3=Symbol("maybeEnd"),R1=Symbol("writing"),wh=Symbol("aborted"),Ex=Symbol("onDone"),Ng=Symbol("sawValidEntry"),Cx=Symbol("sawNullBlock"),wx=Symbol("sawEOF"),Rlt=t=>!0;mAe.exports=Plt(class extends Slt{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Ng]=null,this.on(Ex,r=>{(this[Xl]==="begin"||this[Ng]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(Ex,e.ondone):this.on(Ex,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||klt,this.filter=typeof e.filter=="function"?e.filter:Rlt,this.writable=!0,this.readable=!1,this[jf]=new xlt,this[fi]=null,this[qf]=null,this[Fg]=null,this[Xl]="begin",this[Ch]="",this[Zl]=null,this[F1]=null,this[Rg]=!1,this[Ta]=null,this[wh]=!1,this[Cx]=!1,this[wx]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[dAe](e,r){this[Ng]===null&&(this[Ng]=!1);let o;try{o=new blt(e,r,this[Zl],this[F1])}catch(a){return this.warn("TAR_ENTRY_INVALID",a)}if(o.nullBlock)this[Cx]?(this[wx]=!0,this[Xl]==="begin"&&(this[Xl]="header"),this[Tg]("eof")):(this[Cx]=!0,this[Tg]("nullBlock"));else if(this[Cx]=!1,!o.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:o});else if(!o.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:o});else{let a=o.type;if(/^(Symbolic)?Link$/.test(a)&&!o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:o});else if(!/^(Symbolic)?Link$/.test(a)&&o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:o});else{let n=this[Fg]=new Qlt(o,this[Zl],this[F1]);if(!this[Ng])if(n.remain){let u=()=>{n.invalid||(this[Ng]=!0)};n.on("end",u)}else this[Ng]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[Tg]("ignoredEntry",n),this[Xl]="ignore",n.resume()):n.size>0&&(this[Ch]="",n.on("data",u=>this[Ch]+=u),this[Xl]="meta"):(this[Zl]=null,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[Tg]("ignoredEntry",n),this[Xl]=n.remain?"ignore":"header",n.resume()):(n.remain?this[Xl]="body":(this[Xl]="header",n.end()),this[qf]?this[jf].push(n):(this[jf].push(n),this[B3]())))}}}[fAe](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[qf]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",o=>this[B3]()),r=!1)):(this[qf]=null,r=!1),r}[B3](){do;while(this[fAe](this[jf].shift()));if(!this[jf].length){let e=this[qf];!e||e.flowing||e.size===e.remain?this[R1]||this.emit("drain"):e.once("drain",o=>this.emit("drain"))}}[v3](e,r){let o=this[Fg],a=o.blockRemain,n=a>=e.length&&r===0?e:e.slice(r,r+a);return o.write(n),o.blockRemain||(this[Xl]="header",this[Fg]=null,o.end()),n.length}[gAe](e,r){let o=this[Fg],a=this[v3](e,r);return this[Fg]||this[pAe](o),a}[Tg](e,r,o){!this[jf].length&&!this[qf]?this.emit(e,r,o):this[jf].push([e,r,o])}[pAe](e){switch(this[Tg]("meta",this[Ch]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Zl]=AAe.parse(this[Ch],this[Zl],!1);break;case"GlobalExtendedHeader":this[F1]=AAe.parse(this[Ch],this[F1],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Zl]=this[Zl]||Object.create(null),this[Zl].path=this[Ch].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Zl]=this[Zl]||Object.create(null),this[Zl].linkpath=this[Ch].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[wh]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[wh])return;if(this[Ta]===null&&e){if(this[fi]&&(e=Buffer.concat([this[fi],e]),this[fi]=null),e.lengththis[dx](n)),this[Ta].on("error",n=>this.abort(n)),this[Ta].on("end",n=>{this[Rg]=!0,this[dx]()}),this[R1]=!0;let a=this[Ta][o?"end":"write"](e);return this[R1]=!1,a}}this[R1]=!0,this[Ta]?this[Ta].write(e):this[dx](e),this[R1]=!1;let r=this[jf].length?!1:this[qf]?this[qf].flowing:!0;return!r&&!this[jf].length&&this[qf].once("drain",o=>this.emit("drain")),r}[D3](e){e&&!this[wh]&&(this[fi]=this[fi]?Buffer.concat([this[fi],e]):e)}[P3](){if(this[Rg]&&!this[hAe]&&!this[wh]&&!this[yx]){this[hAe]=!0;let e=this[Fg];if(e&&e.blockRemain){let r=this[fi]?this[fi].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[fi]&&e.write(this[fi]),e.end()}this[Tg](Ex)}}[dx](e){if(this[yx])this[D3](e);else if(!e&&!this[fi])this[P3]();else{if(this[yx]=!0,this[fi]){this[D3](e);let r=this[fi];this[fi]=null,this[mx](r)}else this[mx](e);for(;this[fi]&&this[fi].length>=512&&!this[wh]&&!this[wx];){let r=this[fi];this[fi]=null,this[mx](r)}this[yx]=!1}(!this[fi]||this[Rg])&&this[P3]()}[mx](e){let r=0,o=e.length;for(;r+512<=o&&!this[wh]&&!this[wx];)switch(this[Xl]){case"begin":case"header":this[dAe](e,r),r+=512;break;case"ignore":case"body":r+=this[v3](e,r);break;case"meta":r+=this[gAe](e,r);break;default:throw new Error("invalid state: "+this[Xl])}r{"use strict";var Tlt=Ay(),EAe=Ix(),xy=ve("fs"),Nlt=Sy(),yAe=ve("path"),b3=Ey();wAe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=Tlt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Mlt(o,e),o.noResume||Llt(o),o.file&&o.sync?Olt(o):o.file?Ult(o,r):CAe(o)};var Llt=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},Mlt=(t,e)=>{let r=new Map(e.map(n=>[b3(n),!0])),o=t.filter,a=(n,u)=>{let A=u||yAe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(yAe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(b3(n)):n=>a(b3(n))},Olt=t=>{let e=CAe(t),r=t.file,o=!0,a;try{let n=xy.statSync(r),u=t.maxReadSize||16*1024*1024;if(n.size{let r=new EAe(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("end",u),xy.stat(a,(p,h)=>{if(p)A(p);else{let E=new Nlt.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},CAe=t=>new EAe(t)});var bAe=_((mUt,PAe)=>{"use strict";var _lt=Ay(),vx=lx(),IAe=Sy(),BAe=Bx(),vAe=ve("path");PAe.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let o=_lt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return o.file&&o.sync?Hlt(o,e):o.file?qlt(o,e,r):o.sync?jlt(o,e):Glt(o,e)};var Hlt=(t,e)=>{let r=new vx.Sync(t),o=new IAe.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(o),DAe(r,e)},qlt=(t,e,r)=>{let o=new vx(t),a=new IAe.WriteStream(t.file,{mode:t.mode||438});o.pipe(a);let n=new Promise((u,A)=>{a.on("error",A),a.on("close",u),o.on("error",A)});return S3(o,e),r?n.then(r,r):n},DAe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?BAe({file:vAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},S3=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return BAe({file:vAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>S3(t,e));t.add(r)}t.end()},jlt=(t,e)=>{let r=new vx.Sync(t);return DAe(r,e),r},Glt=(t,e)=>{let r=new vx(t);return S3(r,e),r}});var x3=_((yUt,TAe)=>{"use strict";var Ylt=Ay(),SAe=lx(),fl=ve("fs"),xAe=Sy(),kAe=Bx(),QAe=ve("path"),FAe=yy();TAe.exports=(t,e,r)=>{let o=Ylt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),o.sync?Wlt(o,e):Vlt(o,e,r)};var Wlt=(t,e)=>{let r=new SAe.Sync(t),o=!0,a,n;try{try{a=fl.openSync(t.file,"r+")}catch(p){if(p.code==="ENOENT")a=fl.openSync(t.file,"w+");else throw p}let u=fl.fstatSync(a),A=Buffer.alloc(512);e:for(n=0;nu.size)break;n+=h,t.mtimeCache&&t.mtimeCache.set(p.path,p.mtime)}o=!1,Klt(t,r,n,a,e)}finally{if(o)try{fl.closeSync(a)}catch{}}},Klt=(t,e,r,o,a)=>{let n=new xAe.WriteStreamSync(t.file,{fd:o,start:r});e.pipe(n),zlt(e,a)},Vlt=(t,e,r)=>{e=Array.from(e);let o=new SAe(t),a=(u,A,p)=>{let h=(C,R)=>{C?fl.close(u,L=>p(C)):p(null,R)},E=0;if(A===0)return h(null,0);let I=0,v=Buffer.alloc(512),x=(C,R)=>{if(C)return h(C);if(I+=R,I<512&&R)return fl.read(u,v,I,v.length-I,E+I,x);if(E===0&&v[0]===31&&v[1]===139)return h(new Error("cannot append to compressed archives"));if(I<512)return h(null,E);let L=new FAe(v);if(!L.cksumValid)return h(null,E);let U=512*Math.ceil(L.size/512);if(E+U+512>A||(E+=U+512,E>=A))return h(null,E);t.mtimeCache&&t.mtimeCache.set(L.path,L.mtime),I=0,fl.read(u,v,0,512,E,x)};fl.read(u,v,0,512,E,x)},n=new Promise((u,A)=>{o.on("error",A);let p="r+",h=(E,I)=>{if(E&&E.code==="ENOENT"&&p==="r+")return p="w+",fl.open(t.file,p,h);if(E)return A(E);fl.fstat(I,(v,x)=>{if(v)return fl.close(I,()=>A(v));a(I,x.size,(C,R)=>{if(C)return A(C);let L=new xAe.WriteStream(t.file,{fd:I,start:R});o.pipe(L),L.on("error",A),L.on("close",u),RAe(o,e)})})};fl.open(t.file,p,h)});return r?n.then(r,r):n},zlt=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?kAe({file:QAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},RAe=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return kAe({file:QAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>RAe(t,e));t.add(r)}t.end()}});var LAe=_((EUt,NAe)=>{"use strict";var Jlt=Ay(),Xlt=x3();NAe.exports=(t,e,r)=>{let o=Jlt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),Zlt(o),Xlt(o,e,r)};var Zlt=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,o)=>e(r,o)&&!(t.mtimeCache.get(r)>o.mtime):(r,o)=>!(t.mtimeCache.get(r)>o.mtime)}});var UAe=_((CUt,OAe)=>{var{promisify:MAe}=ve("util"),Ih=ve("fs"),$lt=t=>{if(!t)t={mode:511,fs:Ih};else if(typeof t=="object")t={mode:511,fs:Ih,...t};else if(typeof t=="number")t={mode:t,fs:Ih};else if(typeof t=="string")t={mode:parseInt(t,8),fs:Ih};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||Ih.mkdir,t.mkdirAsync=MAe(t.mkdir),t.stat=t.stat||t.fs.stat||Ih.stat,t.statAsync=MAe(t.stat),t.statSync=t.statSync||t.fs.statSync||Ih.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||Ih.mkdirSync,t};OAe.exports=$lt});var HAe=_((wUt,_Ae)=>{var ect=process.platform,{resolve:tct,parse:rct}=ve("path"),nct=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=tct(t),ect==="win32"){let e=/[*|"<>?:]/,{root:r}=rct(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};_Ae.exports=nct});var WAe=_((IUt,YAe)=>{var{dirname:qAe}=ve("path"),jAe=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(o=>o.isDirectory()?r:void 0,o=>o.code==="ENOENT"?jAe(t,qAe(e),e):void 0),GAe=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(o){return o.code==="ENOENT"?GAe(t,qAe(e),e):void 0}};YAe.exports={findMade:jAe,findMadeSync:GAe}});var F3=_((BUt,VAe)=>{var{dirname:KAe}=ve("path"),k3=(t,e,r)=>{e.recursive=!1;let o=KAe(t);return o===t?e.mkdirAsync(t,e).catch(a=>{if(a.code!=="EISDIR")throw a}):e.mkdirAsync(t,e).then(()=>r||t,a=>{if(a.code==="ENOENT")return k3(o,e).then(n=>k3(t,e,n));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;return e.statAsync(t).then(n=>{if(n.isDirectory())return r;throw a},()=>{throw a})})},Q3=(t,e,r)=>{let o=KAe(t);if(e.recursive=!1,o===t)try{return e.mkdirSync(t,e)}catch(a){if(a.code!=="EISDIR")throw a;return}try{return e.mkdirSync(t,e),r||t}catch(a){if(a.code==="ENOENT")return Q3(t,e,Q3(o,e,r));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;try{if(!e.statSync(t).isDirectory())throw a}catch{throw a}}};VAe.exports={mkdirpManual:k3,mkdirpManualSync:Q3}});var XAe=_((vUt,JAe)=>{var{dirname:zAe}=ve("path"),{findMade:ict,findMadeSync:sct}=WAe(),{mkdirpManual:oct,mkdirpManualSync:act}=F3(),lct=(t,e)=>(e.recursive=!0,zAe(t)===t?e.mkdirAsync(t,e):ict(e,t).then(o=>e.mkdirAsync(t,e).then(()=>o).catch(a=>{if(a.code==="ENOENT")return oct(t,e);throw a}))),cct=(t,e)=>{if(e.recursive=!0,zAe(t)===t)return e.mkdirSync(t,e);let o=sct(e,t);try{return e.mkdirSync(t,e),o}catch(a){if(a.code==="ENOENT")return act(t,e);throw a}};JAe.exports={mkdirpNative:lct,mkdirpNativeSync:cct}});var tfe=_((DUt,efe)=>{var ZAe=ve("fs"),uct=process.version,R3=uct.replace(/^v/,"").split("."),$Ae=+R3[0]>10||+R3[0]==10&&+R3[1]>=12,Act=$Ae?t=>t.mkdir===ZAe.mkdir:()=>!1,fct=$Ae?t=>t.mkdirSync===ZAe.mkdirSync:()=>!1;efe.exports={useNative:Act,useNativeSync:fct}});var afe=_((PUt,ofe)=>{var ky=UAe(),Qy=HAe(),{mkdirpNative:rfe,mkdirpNativeSync:nfe}=XAe(),{mkdirpManual:ife,mkdirpManualSync:sfe}=F3(),{useNative:pct,useNativeSync:hct}=tfe(),Fy=(t,e)=>(t=Qy(t),e=ky(e),pct(e)?rfe(t,e):ife(t,e)),gct=(t,e)=>(t=Qy(t),e=ky(e),hct(e)?nfe(t,e):sfe(t,e));Fy.sync=gct;Fy.native=(t,e)=>rfe(Qy(t),ky(e));Fy.manual=(t,e)=>ife(Qy(t),ky(e));Fy.nativeSync=(t,e)=>nfe(Qy(t),ky(e));Fy.manualSync=(t,e)=>sfe(Qy(t),ky(e));ofe.exports=Fy});var hfe=_((bUt,pfe)=>{"use strict";var $l=ve("fs"),Lg=ve("path"),dct=$l.lchown?"lchown":"chown",mct=$l.lchownSync?"lchownSync":"chownSync",cfe=$l.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),lfe=(t,e,r)=>{try{return $l[mct](t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},yct=(t,e,r)=>{try{return $l.chownSync(t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},Ect=cfe?(t,e,r,o)=>a=>{!a||a.code!=="EISDIR"?o(a):$l.chown(t,e,r,o)}:(t,e,r,o)=>o,T3=cfe?(t,e,r)=>{try{return lfe(t,e,r)}catch(o){if(o.code!=="EISDIR")throw o;yct(t,e,r)}}:(t,e,r)=>lfe(t,e,r),Cct=process.version,ufe=(t,e,r)=>$l.readdir(t,e,r),wct=(t,e)=>$l.readdirSync(t,e);/^v4\./.test(Cct)&&(ufe=(t,e,r)=>$l.readdir(t,r));var Dx=(t,e,r,o)=>{$l[dct](t,e,r,Ect(t,e,r,a=>{o(a&&a.code!=="ENOENT"?a:null)}))},Afe=(t,e,r,o,a)=>{if(typeof e=="string")return $l.lstat(Lg.resolve(t,e),(n,u)=>{if(n)return a(n.code!=="ENOENT"?n:null);u.name=e,Afe(t,u,r,o,a)});if(e.isDirectory())N3(Lg.resolve(t,e.name),r,o,n=>{if(n)return a(n);let u=Lg.resolve(t,e.name);Dx(u,r,o,a)});else{let n=Lg.resolve(t,e.name);Dx(n,r,o,a)}},N3=(t,e,r,o)=>{ufe(t,{withFileTypes:!0},(a,n)=>{if(a){if(a.code==="ENOENT")return o();if(a.code!=="ENOTDIR"&&a.code!=="ENOTSUP")return o(a)}if(a||!n.length)return Dx(t,e,r,o);let u=n.length,A=null,p=h=>{if(!A){if(h)return o(A=h);if(--u===0)return Dx(t,e,r,o)}};n.forEach(h=>Afe(t,h,e,r,p))})},Ict=(t,e,r,o)=>{if(typeof e=="string")try{let a=$l.lstatSync(Lg.resolve(t,e));a.name=e,e=a}catch(a){if(a.code==="ENOENT")return;throw a}e.isDirectory()&&ffe(Lg.resolve(t,e.name),r,o),T3(Lg.resolve(t,e.name),r,o)},ffe=(t,e,r)=>{let o;try{o=wct(t,{withFileTypes:!0})}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR"||a.code==="ENOTSUP")return T3(t,e,r);throw a}return o&&o.length&&o.forEach(a=>Ict(t,a,e,r)),T3(t,e,r)};pfe.exports=N3;N3.sync=ffe});var yfe=_((SUt,L3)=>{"use strict";var gfe=afe(),ec=ve("fs"),Px=ve("path"),dfe=hfe(),Vc=dy(),bx=class extends Error{constructor(e,r){super("Cannot extract through symbolic link"),this.path=r,this.symlink=e}get name(){return"SylinkError"}},Sx=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'"),this.path=e,this.code=r}get name(){return"CwdError"}},xx=(t,e)=>t.get(Vc(e)),T1=(t,e,r)=>t.set(Vc(e),r),Bct=(t,e)=>{ec.stat(t,(r,o)=>{(r||!o.isDirectory())&&(r=new Sx(t,r&&r.code||"ENOTDIR")),e(r)})};L3.exports=(t,e,r)=>{t=Vc(t);let o=e.umask,a=e.mode|448,n=(a&o)!==0,u=e.uid,A=e.gid,p=typeof u=="number"&&typeof A=="number"&&(u!==e.processUid||A!==e.processGid),h=e.preserve,E=e.unlink,I=e.cache,v=Vc(e.cwd),x=(L,U)=>{L?r(L):(T1(I,t,!0),U&&p?dfe(U,u,A,z=>x(z)):n?ec.chmod(t,a,r):r())};if(I&&xx(I,t)===!0)return x();if(t===v)return Bct(t,x);if(h)return gfe(t,{mode:a}).then(L=>x(null,L),x);let R=Vc(Px.relative(v,t)).split("/");kx(v,R,a,I,E,v,null,x)};var kx=(t,e,r,o,a,n,u,A)=>{if(!e.length)return A(null,u);let p=e.shift(),h=Vc(Px.resolve(t+"/"+p));if(xx(o,h))return kx(h,e,r,o,a,n,u,A);ec.mkdir(h,r,mfe(h,e,r,o,a,n,u,A))},mfe=(t,e,r,o,a,n,u,A)=>p=>{p?ec.lstat(t,(h,E)=>{if(h)h.path=h.path&&Vc(h.path),A(h);else if(E.isDirectory())kx(t,e,r,o,a,n,u,A);else if(a)ec.unlink(t,I=>{if(I)return A(I);ec.mkdir(t,r,mfe(t,e,r,o,a,n,u,A))});else{if(E.isSymbolicLink())return A(new bx(t,t+"/"+e.join("/")));A(p)}}):(u=u||t,kx(t,e,r,o,a,n,u,A))},vct=t=>{let e=!1,r="ENOTDIR";try{e=ec.statSync(t).isDirectory()}catch(o){r=o.code}finally{if(!e)throw new Sx(t,r)}};L3.exports.sync=(t,e)=>{t=Vc(t);let r=e.umask,o=e.mode|448,a=(o&r)!==0,n=e.uid,u=e.gid,A=typeof n=="number"&&typeof u=="number"&&(n!==e.processUid||u!==e.processGid),p=e.preserve,h=e.unlink,E=e.cache,I=Vc(e.cwd),v=L=>{T1(E,t,!0),L&&A&&dfe.sync(L,n,u),a&&ec.chmodSync(t,o)};if(E&&xx(E,t)===!0)return v();if(t===I)return vct(I),v();if(p)return v(gfe.sync(t,o));let C=Vc(Px.relative(I,t)).split("/"),R=null;for(let L=C.shift(),U=I;L&&(U+="/"+L);L=C.shift())if(U=Vc(Px.resolve(U)),!xx(E,U))try{ec.mkdirSync(U,o),R=R||U,T1(E,U,!0)}catch{let te=ec.lstatSync(U);if(te.isDirectory()){T1(E,U,!0);continue}else if(h){ec.unlinkSync(U),ec.mkdirSync(U,o),R=R||U,T1(E,U,!0);continue}else if(te.isSymbolicLink())return new bx(U,U+"/"+C.join("/"))}return v(R)}});var O3=_((xUt,Efe)=>{var M3=Object.create(null),{hasOwnProperty:Dct}=Object.prototype;Efe.exports=t=>(Dct.call(M3,t)||(M3[t]=t.normalize("NFKD")),M3[t])});var Bfe=_((kUt,Ife)=>{var Cfe=ve("assert"),Pct=O3(),bct=Ey(),{join:wfe}=ve("path"),Sct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,xct=Sct==="win32";Ife.exports=()=>{let t=new Map,e=new Map,r=h=>h.split("/").slice(0,-1).reduce((I,v)=>(I.length&&(v=wfe(I[I.length-1],v)),I.push(v||"/"),I),[]),o=new Set,a=h=>{let E=e.get(h);if(!E)throw new Error("function does not have any path reservations");return{paths:E.paths.map(I=>t.get(I)),dirs:[...E.dirs].map(I=>t.get(I))}},n=h=>{let{paths:E,dirs:I}=a(h);return E.every(v=>v[0]===h)&&I.every(v=>v[0]instanceof Set&&v[0].has(h))},u=h=>o.has(h)||!n(h)?!1:(o.add(h),h(()=>A(h)),!0),A=h=>{if(!o.has(h))return!1;let{paths:E,dirs:I}=e.get(h),v=new Set;return E.forEach(x=>{let C=t.get(x);Cfe.equal(C[0],h),C.length===1?t.delete(x):(C.shift(),typeof C[0]=="function"?v.add(C[0]):C[0].forEach(R=>v.add(R)))}),I.forEach(x=>{let C=t.get(x);Cfe(C[0]instanceof Set),C[0].size===1&&C.length===1?t.delete(x):C[0].size===1?(C.shift(),v.add(C[0])):C[0].delete(h)}),o.delete(h),v.forEach(x=>u(x)),!0};return{check:n,reserve:(h,E)=>{h=xct?["win32 parallelization disabled"]:h.map(v=>Pct(bct(wfe(v))).toLowerCase());let I=new Set(h.map(v=>r(v)).reduce((v,x)=>v.concat(x)));return e.set(E,{dirs:I,paths:h}),h.forEach(v=>{let x=t.get(v);x?x.push(E):t.set(v,[E])}),I.forEach(v=>{let x=t.get(v);x?x[x.length-1]instanceof Set?x[x.length-1].add(E):x.push(new Set([E])):t.set(v,[new Set([E])])}),u(E)}}}});var Pfe=_((QUt,Dfe)=>{var kct=process.platform,Qct=kct==="win32",Fct=global.__FAKE_TESTING_FS__||ve("fs"),{O_CREAT:Rct,O_TRUNC:Tct,O_WRONLY:Nct,UV_FS_O_FILEMAP:vfe=0}=Fct.constants,Lct=Qct&&!!vfe,Mct=512*1024,Oct=vfe|Tct|Rct|Nct;Dfe.exports=Lct?t=>t"w"});var K3=_((FUt,_fe)=>{"use strict";var Uct=ve("assert"),_ct=Ix(),vn=ve("fs"),Hct=Sy(),Gf=ve("path"),Mfe=yfe(),bfe=KU(),qct=Bfe(),jct=VU(),pl=dy(),Gct=Ey(),Yct=O3(),Sfe=Symbol("onEntry"),H3=Symbol("checkFs"),xfe=Symbol("checkFs2"),Rx=Symbol("pruneCache"),q3=Symbol("isReusable"),tc=Symbol("makeFs"),j3=Symbol("file"),G3=Symbol("directory"),Tx=Symbol("link"),kfe=Symbol("symlink"),Qfe=Symbol("hardlink"),Ffe=Symbol("unsupported"),Rfe=Symbol("checkPath"),Bh=Symbol("mkdir"),To=Symbol("onError"),Qx=Symbol("pending"),Tfe=Symbol("pend"),Ry=Symbol("unpend"),U3=Symbol("ended"),_3=Symbol("maybeClose"),Y3=Symbol("skip"),N1=Symbol("doChown"),L1=Symbol("uid"),M1=Symbol("gid"),O1=Symbol("checkedCwd"),Ofe=ve("crypto"),Ufe=Pfe(),Wct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,U1=Wct==="win32",Kct=(t,e)=>{if(!U1)return vn.unlink(t,e);let r=t+".DELETE."+Ofe.randomBytes(16).toString("hex");vn.rename(t,r,o=>{if(o)return e(o);vn.unlink(r,e)})},Vct=t=>{if(!U1)return vn.unlinkSync(t);let e=t+".DELETE."+Ofe.randomBytes(16).toString("hex");vn.renameSync(t,e),vn.unlinkSync(e)},Nfe=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,Lfe=t=>Yct(Gct(pl(t))).toLowerCase(),zct=(t,e)=>{e=Lfe(e);for(let r of t.keys()){let o=Lfe(r);(o===e||o.indexOf(e+"/")===0)&&t.delete(r)}},Jct=t=>{for(let e of t.keys())t.delete(e)},_1=class extends _ct{constructor(e){if(e||(e={}),e.ondone=r=>{this[U3]=!0,this[_3]()},super(e),this[O1]=!1,this.reservations=qct(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[Qx]=0,this[U3]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||U1,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=pl(Gf.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[Sfe](r))}warn(e,r,o={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(o.recoverable=!1),super.warn(e,r,o)}[_3](){this[U3]&&this[Qx]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[Rfe](e){if(this.strip){let r=pl(e.path).split("/");if(r.length=this.strip)e.linkpath=o.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let r=pl(e.path),o=r.split("/");if(o.includes("..")||U1&&/^[a-z]:\.\.$/i.test(o[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;let[a,n]=jct(r);a&&(e.path=n,this.warn("TAR_ENTRY_INFO",`stripping ${a} from absolute path`,{entry:e,path:r}))}if(Gf.isAbsolute(e.path)?e.absolute=pl(Gf.resolve(e.path)):e.absolute=pl(Gf.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:pl(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:r}=Gf.win32.parse(e.absolute);e.absolute=r+bfe.encode(e.absolute.substr(r.length));let{root:o}=Gf.win32.parse(e.path);e.path=o+bfe.encode(e.path.substr(o.length))}return!0}[Sfe](e){if(!this[Rfe](e))return e.resume();switch(Uct.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[H3](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[Ffe](e)}}[To](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[Ry](),r.resume())}[Bh](e,r,o){Mfe(pl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r,noChmod:this.noChmod},o)}[N1](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[L1](e){return Nfe(this.uid,e.uid,this.processUid)}[M1](e){return Nfe(this.gid,e.gid,this.processGid)}[j3](e,r){let o=e.mode&4095||this.fmode,a=new Hct.WriteStream(e.absolute,{flags:Ufe(e.size),mode:o,autoClose:!1});a.on("error",p=>{a.fd&&vn.close(a.fd,()=>{}),a.write=()=>!0,this[To](p,e),r()});let n=1,u=p=>{if(p){a.fd&&vn.close(a.fd,()=>{}),this[To](p,e),r();return}--n===0&&vn.close(a.fd,h=>{h?this[To](h,e):this[Ry](),r()})};a.on("finish",p=>{let h=e.absolute,E=a.fd;if(e.mtime&&!this.noMtime){n++;let I=e.atime||new Date,v=e.mtime;vn.futimes(E,I,v,x=>x?vn.utimes(h,I,v,C=>u(C&&x)):u())}if(this[N1](e)){n++;let I=this[L1](e),v=this[M1](e);vn.fchown(E,I,v,x=>x?vn.chown(h,I,v,C=>u(C&&x)):u())}u()});let A=this.transform&&this.transform(e)||e;A!==e&&(A.on("error",p=>{this[To](p,e),r()}),e.pipe(A)),A.pipe(a)}[G3](e,r){let o=e.mode&4095||this.dmode;this[Bh](e.absolute,o,a=>{if(a){this[To](a,e),r();return}let n=1,u=A=>{--n===0&&(r(),this[Ry](),e.resume())};e.mtime&&!this.noMtime&&(n++,vn.utimes(e.absolute,e.atime||new Date,e.mtime,u)),this[N1](e)&&(n++,vn.chown(e.absolute,this[L1](e),this[M1](e),u)),u()})}[Ffe](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[kfe](e,r){this[Tx](e,e.linkpath,"symlink",r)}[Qfe](e,r){let o=pl(Gf.resolve(this.cwd,e.linkpath));this[Tx](e,o,"link",r)}[Tfe](){this[Qx]++}[Ry](){this[Qx]--,this[_3]()}[Y3](e){this[Ry](),e.resume()}[q3](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&!U1}[H3](e){this[Tfe]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,o=>this[xfe](e,o))}[Rx](e){e.type==="SymbolicLink"?Jct(this.dirCache):e.type!=="Directory"&&zct(this.dirCache,e.absolute)}[xfe](e,r){this[Rx](e);let o=A=>{this[Rx](e),r(A)},a=()=>{this[Bh](this.cwd,this.dmode,A=>{if(A){this[To](A,e),o();return}this[O1]=!0,n()})},n=()=>{if(e.absolute!==this.cwd){let A=pl(Gf.dirname(e.absolute));if(A!==this.cwd)return this[Bh](A,this.dmode,p=>{if(p){this[To](p,e),o();return}u()})}u()},u=()=>{vn.lstat(e.absolute,(A,p)=>{if(p&&(this.keep||this.newer&&p.mtime>e.mtime)){this[Y3](e),o();return}if(A||this[q3](e,p))return this[tc](null,e,o);if(p.isDirectory()){if(e.type==="Directory"){let h=!this.noChmod&&e.mode&&(p.mode&4095)!==e.mode,E=I=>this[tc](I,e,o);return h?vn.chmod(e.absolute,e.mode,E):E()}if(e.absolute!==this.cwd)return vn.rmdir(e.absolute,h=>this[tc](h,e,o))}if(e.absolute===this.cwd)return this[tc](null,e,o);Kct(e.absolute,h=>this[tc](h,e,o))})};this[O1]?n():a()}[tc](e,r,o){if(e){this[To](e,r),o();return}switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[j3](r,o);case"Link":return this[Qfe](r,o);case"SymbolicLink":return this[kfe](r,o);case"Directory":case"GNUDumpDir":return this[G3](r,o)}}[Tx](e,r,o,a){vn[o](r,e.absolute,n=>{n?this[To](n,e):(this[Ry](),e.resume()),a()})}},Fx=t=>{try{return[null,t()]}catch(e){return[e,null]}},W3=class extends _1{[tc](e,r){return super[tc](e,r,()=>{})}[H3](e){if(this[Rx](e),!this[O1]){let n=this[Bh](this.cwd,this.dmode);if(n)return this[To](n,e);this[O1]=!0}if(e.absolute!==this.cwd){let n=pl(Gf.dirname(e.absolute));if(n!==this.cwd){let u=this[Bh](n,this.dmode);if(u)return this[To](u,e)}}let[r,o]=Fx(()=>vn.lstatSync(e.absolute));if(o&&(this.keep||this.newer&&o.mtime>e.mtime))return this[Y3](e);if(r||this[q3](e,o))return this[tc](null,e);if(o.isDirectory()){if(e.type==="Directory"){let u=!this.noChmod&&e.mode&&(o.mode&4095)!==e.mode,[A]=u?Fx(()=>{vn.chmodSync(e.absolute,e.mode)}):[];return this[tc](A,e)}let[n]=Fx(()=>vn.rmdirSync(e.absolute));this[tc](n,e)}let[a]=e.absolute===this.cwd?[]:Fx(()=>Vct(e.absolute));this[tc](a,e)}[j3](e,r){let o=e.mode&4095||this.fmode,a=A=>{let p;try{vn.closeSync(n)}catch(h){p=h}(A||p)&&this[To](A||p,e),r()},n;try{n=vn.openSync(e.absolute,Ufe(e.size),o)}catch(A){return a(A)}let u=this.transform&&this.transform(e)||e;u!==e&&(u.on("error",A=>this[To](A,e)),e.pipe(u)),u.on("data",A=>{try{vn.writeSync(n,A,0,A.length)}catch(p){a(p)}}),u.on("end",A=>{let p=null;if(e.mtime&&!this.noMtime){let h=e.atime||new Date,E=e.mtime;try{vn.futimesSync(n,h,E)}catch(I){try{vn.utimesSync(e.absolute,h,E)}catch{p=I}}}if(this[N1](e)){let h=this[L1](e),E=this[M1](e);try{vn.fchownSync(n,h,E)}catch(I){try{vn.chownSync(e.absolute,h,E)}catch{p=p||I}}}a(p)})}[G3](e,r){let o=e.mode&4095||this.dmode,a=this[Bh](e.absolute,o);if(a){this[To](a,e),r();return}if(e.mtime&&!this.noMtime)try{vn.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[N1](e))try{vn.chownSync(e.absolute,this[L1](e),this[M1](e))}catch{}r(),e.resume()}[Bh](e,r){try{return Mfe.sync(pl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(o){return o}}[Tx](e,r,o,a){try{vn[o+"Sync"](r,e.absolute),a(),e.resume()}catch(n){return this[To](n,e)}}};_1.Sync=W3;_fe.exports=_1});var Yfe=_((RUt,Gfe)=>{"use strict";var Xct=Ay(),Nx=K3(),qfe=ve("fs"),jfe=Sy(),Hfe=ve("path"),V3=Ey();Gfe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=Xct(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Zct(o,e),o.file&&o.sync?$ct(o):o.file?eut(o,r):o.sync?tut(o):rut(o)};var Zct=(t,e)=>{let r=new Map(e.map(n=>[V3(n),!0])),o=t.filter,a=(n,u)=>{let A=u||Hfe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(Hfe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(V3(n)):n=>a(V3(n))},$ct=t=>{let e=new Nx.Sync(t),r=t.file,o=qfe.statSync(r),a=t.maxReadSize||16*1024*1024;new jfe.ReadStreamSync(r,{readSize:a,size:o.size}).pipe(e)},eut=(t,e)=>{let r=new Nx(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("close",u),qfe.stat(a,(p,h)=>{if(p)A(p);else{let E=new jfe.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},tut=t=>new Nx.Sync(t),rut=t=>new Nx(t)});var Wfe=_(As=>{"use strict";As.c=As.create=bAe();As.r=As.replace=x3();As.t=As.list=Bx();As.u=As.update=LAe();As.x=As.extract=Yfe();As.Pack=lx();As.Unpack=K3();As.Parse=Ix();As.ReadEntry=YS();As.WriteEntry=i3();As.Header=yy();As.Pax=KS();As.types=_U()});var z3,Kfe,vh,H1,q1,Vfe=Et(()=>{z3=Ze(eg()),Kfe=ve("worker_threads"),vh=Symbol("kTaskInfo"),H1=class{constructor(e,r){this.fn=e;this.limit=(0,z3.default)(r.poolSize)}run(e){return this.limit(()=>this.fn(e))}},q1=class{constructor(e,r){this.source=e;this.workers=[];this.limit=(0,z3.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let o=this.workers.pop();o?o.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new Kfe.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[vh])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[vh].resolve(r),e[vh]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{e[vh]?.reject(r),e[vh]=null}),e.on("exit",r=>{r!==0&&e[vh]?.reject(new Error(`Worker exited with code ${r}`)),e[vh]=null}),e}run(e){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((o,a)=>{r[vh]={resolve:o,reject:a},r.postMessage(e)})})}}});var Jfe=_((MUt,zfe)=>{var J3;zfe.exports.getContent=()=>(typeof J3>"u"&&(J3=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),J3)});var $i={};Vt($i,{convertToZip:()=>out,convertToZipWorker:()=>$3,extractArchiveTo:()=>tpe,getDefaultTaskPool:()=>$fe,getTaskPoolForConfiguration:()=>epe,makeArchiveFromDirectory:()=>sut});function nut(t,e){switch(t){case"async":return new H1($3,{poolSize:e});case"workers":return new q1((0,Z3.getContent)(),{poolSize:e});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}}function $fe(){return typeof X3>"u"&&(X3=nut("workers",Xi.availableParallelism())),X3}function epe(t){return typeof t>"u"?$fe():al(iut,t,()=>{let e=t.get("taskPoolMode"),r=t.get("taskPoolConcurrency");switch(e){case"async":return new H1($3,{poolSize:r});case"workers":return new q1((0,Z3.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}})}async function $3(t){let{tmpFile:e,tgz:r,compressionLevel:o,extractBufferOpts:a}=t,n=new Zi(e,{create:!0,level:o,stats:wa.makeDefaultStats()}),u=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await tpe(u,n,a),n.saveAndClose(),e}async function sut(t,{baseFs:e=new Tn,prefixPath:r=It.root,compressionLevel:o,inMemory:a=!1}={}){let n;if(a)n=new Zi(null,{level:o});else{let A=await oe.mktempPromise(),p=V.join(A,"archive.zip");n=new Zi(p,{create:!0,level:o})}let u=V.resolve(It.root,r);return await n.copyPromise(u,t,{baseFs:e,stableTime:!0,stableSort:!0}),n}async function out(t,e={}){let r=await oe.mktempPromise(),o=V.join(r,"archive.zip"),a=e.compressionLevel??e.configuration?.get("compressionLevel")??"mixed",n={prefixPath:e.prefixPath,stripComponents:e.stripComponents};return await(e.taskPool??epe(e.configuration)).run({tmpFile:o,tgz:t,compressionLevel:a,extractBufferOpts:n}),new Zi(o,{level:e.compressionLevel})}async function*aut(t){let e=new Zfe.default.Parse,r=new Xfe.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",o=>{r.write(o)}),e.on("error",o=>{r.destroy(o)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let o of r){let a=o;yield a,a.resume()}}async function tpe(t,e,{stripComponents:r=0,prefixPath:o=It.dot}={}){function a(n){if(n.path[0]==="/")return!0;let u=n.path.split(/\//g);return!!(u.some(A=>A==="..")||u.length<=r)}for await(let n of aut(t)){if(a(n))continue;let u=V.normalize(ue.toPortablePath(n.path)).replace(/\/$/,"").split(/\//g);if(u.length<=r)continue;let A=u.slice(r).join("/"),p=V.join(o,A),h=420;switch((n.type==="Directory"||(n.mode??0)&73)&&(h|=73),n.type){case"Directory":e.mkdirpSync(V.dirname(p),{chmod:493,utimes:[Bi.SAFE_TIME,Bi.SAFE_TIME]}),e.mkdirSync(p,{mode:h}),e.utimesSync(p,Bi.SAFE_TIME,Bi.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(V.dirname(p),{chmod:493,utimes:[Bi.SAFE_TIME,Bi.SAFE_TIME]}),e.writeFileSync(p,await km(n),{mode:h}),e.utimesSync(p,Bi.SAFE_TIME,Bi.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(V.dirname(p),{chmod:493,utimes:[Bi.SAFE_TIME,Bi.SAFE_TIME]}),e.symlinkSync(n.linkpath,p),e.lutimesSync(p,Bi.SAFE_TIME,Bi.SAFE_TIME);break}}return e}var Xfe,Zfe,Z3,X3,iut,rpe=Et(()=>{Ge();Pt();nA();Xfe=ve("stream"),Zfe=Ze(Wfe());Vfe();ql();Z3=Ze(Jfe());iut=new WeakMap});var ipe=_((e_,npe)=>{(function(t,e){typeof e_=="object"?npe.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(e_,function(){function t(a,n){var u=n?"\u2514":"\u251C";return a?u+="\u2500 ":u+="\u2500\u2500\u2510",u}function e(a,n){var u=[];for(var A in a)a.hasOwnProperty(A)&&(n&&typeof a[A]=="function"||u.push(A));return u}function r(a,n,u,A,p,h,E){var I="",v=0,x,C,R=A.slice(0);if(R.push([n,u])&&A.length>0&&(A.forEach(function(U,z){z>0&&(I+=(U[1]?" ":"\u2502")+" "),!C&&U[0]===n&&(C=!0)}),I+=t(a,u)+a,p&&(typeof n!="object"||n instanceof Date)&&(I+=": "+n),C&&(I+=" (circular ref.)"),E(I)),!C&&typeof n=="object"){var L=e(n,h);L.forEach(function(U){x=++v===L.length,r(U,n[U],x,R,p,h,E)})}}var o={};return o.asLines=function(a,n,u,A){var p=typeof u!="function"?u:!1;r(".",a,!1,[],n,p,A||u)},o.asTree=function(a,n,u){var A="";return r(".",a,!1,[],n,u,function(p){A+=p+` +`}),A},o})});var fs={};Vt(fs,{emitList:()=>lut,emitTree:()=>lpe,treeNodeToJson:()=>ape,treeNodeToTreeify:()=>ope});function ope(t,{configuration:e}){let r={},o=0,a=(n,u)=>{let A=Array.isArray(n)?n.entries():Object.entries(n);for(let[p,h]of A){if(!h)continue;let{label:E,value:I,children:v}=h,x=[];typeof E<"u"&&x.push(fg(e,E,2)),typeof I<"u"&&x.push(Ot(e,I[0],I[1])),x.length===0&&x.push(fg(e,`${p}`,2));let C=x.join(": ").trim(),R=`\0${o++}\0`,L=u[`${R}${C}`]={};typeof v<"u"&&a(v,L)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return a(t.children,r),r}function ape(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return pg(r.value[0],r.value[1])}let o=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,u]of o)u&&(a[cut(n)]=e(u));return typeof r.value>"u"?a:{value:pg(r.value[0],r.value[1]),children:a}};return e(t)}function lut(t,{configuration:e,stdout:r,json:o}){let a=t.map(n=>({value:n}));lpe({children:a},{configuration:e,stdout:r,json:o})}function lpe(t,{configuration:e,stdout:r,json:o,separators:a=0}){if(o){let u=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let A of u)A&&r.write(`${JSON.stringify(ape(A))} +`);return}let n=(0,spe.asTree)(ope(t,{configuration:e}),!1,!1);if(n=n.replace(/\0[0-9]+\0/g,""),a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502 +$1`).replace(/^│\n/,"")),a>=2)for(let u=0;u<2;++u)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 +$2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}function cut(t){return typeof t=="string"?t.replace(/^\0[0-9]+\0/,""):t}var spe,cpe=Et(()=>{spe=Ze(ipe());jl()});function j1(t){let e=t.match(uut);if(!e?.groups)throw new Error("Assertion failed: Expected the checksum to match the requested pattern");let r=e.groups.cacheVersion?parseInt(e.groups.cacheVersion):null;return{cacheKey:e.groups.cacheKey??null,cacheVersion:r,cacheSpec:e.groups.cacheSpec??null,hash:e.groups.hash}}var upe,t_,r_,Lx,Gr,uut,n_=Et(()=>{Ge();Pt();Pt();nA();upe=ve("crypto"),t_=Ze(ve("fs"));Wl();rh();ql();So();r_=Qm(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),Lx=Qm(process.env.YARN_CACHE_VERSION_OVERRIDE??10),Gr=class t{constructor(e,{configuration:r,immutable:o=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,upe.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=o,this.check=a;let{cacheSpec:n,cacheKey:u}=t.getCacheKey(r);this.cacheSpec=n,this.cacheKey=u}static async find(e,{immutable:r,check:o}={}){let a=new t(e.get("cacheFolder"),{configuration:e,immutable:r,check:o});return await a.setup(),a}static getCacheKey(e){let r=e.get("compressionLevel"),o=r!=="mixed"?`c${r}`:"";return{cacheKey:[Lx,o].join(""),cacheSpec:o}}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${Hm(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=j1(r).hash.slice(0,10);return`${Hm(e)}-${a}.zip`}isChecksumCompatible(e){if(e===null)return!1;let{cacheVersion:r,cacheSpec:o}=j1(e);if(r===null||r{let de=new Zi,Be=V.join(It.root,zM(e));return de.mkdirSync(Be,{recursive:!0}),de.writeJsonSync(V.join(Be,dr.manifest),{name:rn(e),mocked:!0}),de},E=async(de,{isColdHit:Be,controlPath:Ee=null})=>{if(Ee===null&&u.unstablePackages?.has(e.locatorHash))return{isValid:!0,hash:null};let g=r&&!Be?j1(r).cacheKey:this.cacheKey,me=!u.skipIntegrityCheck||!r?`${g}/${await Ib(de)}`:r;if(Ee!==null){let Ae=!u.skipIntegrityCheck||!r?`${this.cacheKey}/${await Ib(Ee)}`:r;if(me!==Ae)throw new Jt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}let we=null;switch(r!==null&&me!==r&&(this.check?we="throw":j1(r).cacheKey!==j1(me).cacheKey?we="update":we=this.configuration.get("checksumBehavior")),we){case null:case"update":return{isValid:!0,hash:me};case"ignore":return{isValid:!0,hash:r};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new Jt(18,"The remote archive doesn't match the expected checksum")}},I=async de=>{if(!n)throw new Error(`Cache check required but no loader configured for ${qr(this.configuration,e)}`);let Be=await n(),Ee=Be.getRealPath();Be.saveAndClose(),await oe.chmodPromise(Ee,420);let g=await E(de,{controlPath:Ee,isColdHit:!1});if(!g.isValid)throw new Error("Assertion failed: Expected a valid checksum");return g.hash},v=async()=>{if(A===null||!await oe.existsPromise(A)){let de=await n(),Be=de.getRealPath();return de.saveAndClose(),{source:"loader",path:Be}}return{source:"mirror",path:A}},x=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${qr(this.configuration,e)}`);if(this.immutable)throw new Jt(56,`Cache entry required but missing for ${qr(this.configuration,e)}`);let{path:de,source:Be}=await v(),{hash:Ee}=await E(de,{isColdHit:!0}),g=this.getLocatorPath(e,Ee),me=[];Be!=="mirror"&&A!==null&&me.push(async()=>{let Ae=`${A}${this.cacheId}`;await oe.copyFilePromise(de,Ae,t_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(Ae,420),await oe.renamePromise(Ae,A)}),(!u.mirrorWriteOnly||A===null)&&me.push(async()=>{let Ae=`${g}${this.cacheId}`;await oe.copyFilePromise(de,Ae,t_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(Ae,420),await oe.renamePromise(Ae,g)});let we=u.mirrorWriteOnly?A??g:g;return await Promise.all(me.map(Ae=>Ae())),[!1,we,Ee]},C=async()=>{let Be=(async()=>{let Ee=u.unstablePackages?.has(e.locatorHash),g=Ee||!r||this.isChecksumCompatible(r)?this.getLocatorPath(e,r):null,me=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,we=!!u.mockedPackages?.has(e.locatorHash)&&(!this.check||!me),Ae=we||me,ne=Ae?o:a;if(ne&&ne(),Ae){let Z=null,xe=g;if(!we)if(this.check)Z=await I(xe);else{let Ne=await E(xe,{isColdHit:!1});if(Ne.isValid)Z=Ne.hash;else return x()}return[we,xe,Z]}else{if(this.immutable&&Ee)throw new Jt(56,`Cache entry required but missing for ${qr(this.configuration,e)}; consider defining ${pe.pretty(this.configuration,"supportedArchitectures",pe.Type.CODE)} to cache packages for multiple systems`);return x()}})();this.mutexes.set(e.locatorHash,Be);try{return await Be}finally{this.mutexes.delete(e.locatorHash)}};for(let de;de=this.mutexes.get(e.locatorHash);)await de;let[R,L,U]=await C();R||this.markedFiles.add(L);let z,te=R?()=>h():()=>new Zi(L,{baseFs:p,readOnly:!0}),ae=new Gd(()=>uL(()=>z=te(),de=>`Failed to open the cache entry for ${qr(this.configuration,e)}: ${de}`),V),le=new Hu(L,{baseFs:ae,pathUtils:V}),ce=()=>{z?.discardAndClose()},Ce=u.unstablePackages?.has(e.locatorHash)?null:U;return[le,ce,Ce]}},uut=/^(?:(?(?[0-9]+)(?.*))\/)?(?.*)$/});var Mx,Ape=Et(()=>{Mx=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(Mx||{})});var Aut,Ty,i_=Et(()=>{Pt();Nl();xf();So();Aut=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,o)=>`${r}#commit=${o}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>bb({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],Ty=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let o=V.join(e.cwd,dr.lockfile);if(!oe.existsSync(o))return;let a=await oe.readFilePromise(o,"utf8"),n=Ki(a);if(Object.hasOwn(n,"__metadata"))return;let u=this.resolutions=new Map;for(let A of Object.keys(n)){let p=jI(A);if(!p){r.reportWarning(14,`Failed to parse the string "${A}" into a proper descriptor`);continue}let h=Qa(p.range)?In(p,`npm:${p.range}`):p,{version:E,resolved:I}=n[A];if(!I)continue;let v;for(let[C,R]of Aut){let L=I.match(C);if(L){v=R(E,...L);break}}if(!v){r.reportWarning(14,`${jn(e.configuration,h)}: Only some patterns can be imported from legacy lockfiles (not "${I}")`);continue}let x=h;try{let C=dg(h.range),R=jI(C.selector,!0);R&&(x=R)}catch{}u.set(h.descriptorHash,Rs(x,v))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let a=this.resolutions.get(e.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");let n=YM(a),u=o.project.configuration.normalizeDependency(n);return await this.resolver.getCandidates(u,r,o)}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}});var AA,fpe=Et(()=>{Wl();I1();jl();AA=class extends Zs{constructor({configuration:r,stdout:o,suggestInstall:a=!0}){super();this.errorCount=0;TI(this,{configuration:r}),this.configuration=r,this.stdout=o,this.suggestInstall=a}static async start(r,o){let a=new this(r);try{await o(a)}catch(n){a.reportExceptionOnce(n)}finally{await a.finalize()}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){}reportCacheMiss(r){}startSectionSync(r,o){return o()}async startSectionPromise(r,o){return await o()}startTimerSync(r,o,a){return(typeof o=="function"?o:a)()}async startTimerPromise(r,o,a){return await(typeof o=="function"?o:a)()}reportSeparator(){}reportInfo(r,o){}reportWarning(r,o){}reportError(r,o){this.errorCount+=1,this.stdout.write(`${Ot(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(r)}: ${o} +`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,o){}async finalize(){this.errorCount>0&&(this.stdout.write(` +`),this.stdout.write(`${Ot(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. +`),this.suggestInstall&&this.stdout.write(`${Ot(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. +`))}formatNameWithHyperlink(r){return AU(r,{configuration:this.configuration,json:!1})}}});var Ny,s_=Et(()=>{So();Ny=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(vb(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){let a=o.project.storedResolutions.get(e.descriptorHash);if(a){let u=o.project.originalPackages.get(a);if(u)return[u]}let n=o.project.originalPackages.get(vb(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.originalPackages.get(e.locatorHash);if(!o)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return o}}});function Yf(){}function fut(t,e,r,o,a){for(var n=0,u=e.length,A=0,p=0;nx.length?R:x}),h.value=t.join(E)}else h.value=t.join(r.slice(A,A+h.count));A+=h.count,h.added||(p+=h.count)}}var v=e[u-1];return u>1&&typeof v.value=="string"&&(v.added||v.removed)&&t.equals("",v.value)&&(e[u-2].value+=v.value,e.pop()),e}function put(t){return{newPos:t.newPos,components:t.components.slice(0)}}function hut(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function gpe(t,e,r){return r=hut(r,{ignoreWhitespace:!0}),u_.diff(t,e,r)}function gut(t,e,r){return A_.diff(t,e,r)}function Ox(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ox=function(e){return typeof e}:Ox=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ox(t)}function o_(t){return yut(t)||Eut(t)||Cut(t)||wut()}function yut(t){if(Array.isArray(t))return a_(t)}function Eut(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function Cut(t,e){if(t){if(typeof t=="string")return a_(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a_(t,e)}}function a_(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,o=new Array(e);r"u"&&(u.context=4);var A=gut(r,o,u);if(!A)return;A.push({value:"",lines:[]});function p(U){return U.map(function(z){return" "+z})}for(var h=[],E=0,I=0,v=[],x=1,C=1,R=function(z){var te=A[z],ae=te.lines||te.value.replace(/\n$/,"").split(` +`);if(te.lines=ae,te.added||te.removed){var le;if(!E){var ce=A[z-1];E=x,I=C,ce&&(v=u.context>0?p(ce.lines.slice(-u.context)):[],E-=v.length,I-=v.length)}(le=v).push.apply(le,o_(ae.map(function(Ae){return(te.added?"+":"-")+Ae}))),te.added?C+=ae.length:x+=ae.length}else{if(E)if(ae.length<=u.context*2&&z=A.length-2&&ae.length<=u.context){var g=/\n$/.test(r),me=/\n$/.test(o),we=ae.length==0&&v.length>Ee.oldLines;!g&&we&&r.length>0&&v.splice(Ee.oldLines,0,"\\ No newline at end of file"),(!g&&!we||!me)&&v.push("\\ No newline at end of file")}h.push(Ee),E=0,I=0,v=[]}x+=ae.length,C+=ae.length}},L=0;L{Yf.prototype={diff:function(e,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=o.callback;typeof o=="function"&&(a=o,o={}),this.options=o;var n=this;function u(R){return a?(setTimeout(function(){a(void 0,R)},0),!0):R}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var A=r.length,p=e.length,h=1,E=A+p;o.maxEditLength&&(E=Math.min(E,o.maxEditLength));var I=[{newPos:-1,components:[]}],v=this.extractCommon(I[0],r,e,0);if(I[0].newPos+1>=A&&v+1>=p)return u([{value:this.join(r),count:r.length}]);function x(){for(var R=-1*h;R<=h;R+=2){var L=void 0,U=I[R-1],z=I[R+1],te=(z?z.newPos:0)-R;U&&(I[R-1]=void 0);var ae=U&&U.newPos+1=A&&te+1>=p)return u(fut(n,L.components,r,e,n.useLongestToken));I[R]=L}h++}if(a)(function R(){setTimeout(function(){if(h>E)return a();x()||R()},0)})();else for(;h<=E;){var C=x();if(C)return C}},pushComponent:function(e,r,o){var a=e[e.length-1];a&&a.added===r&&a.removed===o?e[e.length-1]={count:a.count+1,added:r,removed:o}:e.push({count:1,added:r,removed:o})},extractCommon:function(e,r,o,a){for(var n=r.length,u=o.length,A=e.newPos,p=A-a,h=0;A+1"u"?r:u}:o;return typeof t=="string"?t:JSON.stringify(l_(t,null,null,a),a," ")};G1.equals=function(t,e){return Yf.prototype.equals.call(G1,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};c_=new Yf;c_.tokenize=function(t){return t.slice()};c_.join=c_.removeEmpty=function(t){return t}});var ype=_((f3t,mpe)=>{var But=Hl(),vut=Ym(),Dut=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Put=/^\w*$/;function but(t,e){if(But(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||vut(t)?!0:Put.test(t)||!Dut.test(t)||e!=null&&t in Object(e)}mpe.exports=but});var wpe=_((p3t,Cpe)=>{var Epe=PP(),Sut="Expected a function";function p_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(Sut);var r=function(){var o=arguments,a=e?e.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var u=t.apply(this,o);return r.cache=n.set(a,u)||n,u};return r.cache=new(p_.Cache||Epe),r}p_.Cache=Epe;Cpe.exports=p_});var Bpe=_((h3t,Ipe)=>{var xut=wpe(),kut=500;function Qut(t){var e=xut(t,function(o){return r.size===kut&&r.clear(),o}),r=e.cache;return e}Ipe.exports=Qut});var h_=_((g3t,vpe)=>{var Fut=Bpe(),Rut=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Tut=/\\(\\)?/g,Nut=Fut(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(Rut,function(r,o,a,n){e.push(a?n.replace(Tut,"$1"):o||r)}),e});vpe.exports=Nut});var Mg=_((d3t,Dpe)=>{var Lut=Hl(),Mut=ype(),Out=h_(),Uut=C1();function _ut(t,e){return Lut(t)?t:Mut(t,e)?[t]:Out(Uut(t))}Dpe.exports=_ut});var Ly=_((m3t,Ppe)=>{var Hut=Ym(),qut=1/0;function jut(t){if(typeof t=="string"||Hut(t))return t;var e=t+"";return e=="0"&&1/t==-qut?"-0":e}Ppe.exports=jut});var Ux=_((y3t,bpe)=>{var Gut=Mg(),Yut=Ly();function Wut(t,e){e=Gut(e,t);for(var r=0,o=e.length;t!=null&&r{var Kut=qP(),Vut=Mg(),zut=II(),Spe=sl(),Jut=Ly();function Xut(t,e,r,o){if(!Spe(t))return t;e=Vut(e,t);for(var a=-1,n=e.length,u=n-1,A=t;A!=null&&++a{var Zut=Ux(),$ut=g_(),eAt=Mg();function tAt(t,e,r){for(var o=-1,a=e.length,n={};++o{function rAt(t,e){return t!=null&&e in Object(t)}Fpe.exports=rAt});var d_=_((I3t,Tpe)=>{var nAt=Mg(),iAt=EI(),sAt=Hl(),oAt=II(),aAt=QP(),lAt=Ly();function cAt(t,e,r){e=nAt(e,t);for(var o=-1,a=e.length,n=!1;++o{var uAt=Rpe(),AAt=d_();function fAt(t,e){return t!=null&&AAt(t,e,uAt)}Npe.exports=fAt});var Ope=_((v3t,Mpe)=>{var pAt=Qpe(),hAt=Lpe();function gAt(t,e){return pAt(t,e,function(r,o){return hAt(t,o)})}Mpe.exports=gAt});var qpe=_((D3t,Hpe)=>{var Upe=lg(),dAt=EI(),mAt=Hl(),_pe=Upe?Upe.isConcatSpreadable:void 0;function yAt(t){return mAt(t)||dAt(t)||!!(_pe&&t&&t[_pe])}Hpe.exports=yAt});var Ype=_((P3t,Gpe)=>{var EAt=xP(),CAt=qpe();function jpe(t,e,r,o,a){var n=-1,u=t.length;for(r||(r=CAt),a||(a=[]);++n0&&r(A)?e>1?jpe(A,e-1,r,o,a):EAt(a,A):o||(a[a.length]=A)}return a}Gpe.exports=jpe});var Kpe=_((b3t,Wpe)=>{var wAt=Ype();function IAt(t){var e=t==null?0:t.length;return e?wAt(t,1):[]}Wpe.exports=IAt});var m_=_((S3t,Vpe)=>{var BAt=Kpe(),vAt=rL(),DAt=nL();function PAt(t){return DAt(vAt(t,void 0,BAt),t+"")}Vpe.exports=PAt});var y_=_((x3t,zpe)=>{var bAt=Ope(),SAt=m_(),xAt=SAt(function(t,e){return t==null?{}:bAt(t,e)});zpe.exports=xAt});var _x,Jpe=Et(()=>{Wl();_x=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.resolver.bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,o,a){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}}});var ki,E_=Et(()=>{Wl();ki=class extends Zs{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,o){return(typeof r=="function"?r:o)()}async startTimerPromise(e,r,o){return await(typeof r=="function"?r:o)()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}reportFold(e,r){}async finalize(){}}});var Xpe,My,C_=Et(()=>{Pt();Xpe=Ze(Cb());Gm();mg();jl();rh();xf();So();My=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.project=r,this.cwd=e}async setup(){this.manifest=await Ut.tryFind(this.cwd)??new Ut,this.relativeCwd=V.relative(this.project.cwd,this.cwd)||It.dot;let e=this.manifest.name?this.manifest.name:eA(null,`${this.computeCandidateName()}-${zi(this.relativeCwd).substring(0,6)}`);this.anchoredDescriptor=In(e,`${ei.protocol}${this.relativeCwd}`),this.anchoredLocator=Rs(e,`${ei.protocol}${this.relativeCwd}`);let r=this.manifest.workspaceDefinitions.map(({pattern:a})=>a);if(r.length===0)return;let o=await(0,Xpe.default)(r,{cwd:ue.fromPortablePath(this.cwd),onlyDirectories:!0,ignore:["**/node_modules","**/.git","**/.yarn"]});o.sort(),await o.reduce(async(a,n)=>{let u=V.resolve(this.cwd,ue.toPortablePath(n)),A=await oe.existsPromise(V.join(u,"package.json"));await a,A&&this.workspacesCwds.add(u)},Promise.resolve())}get anchoredPackage(){let e=this.project.storedPackages.get(this.anchoredLocator.locatorHash);if(!e)throw new Error(`Assertion failed: Expected workspace ${YI(this.project.configuration,this)} (${Ot(this.project.configuration,V.join(this.cwd,dr.manifest),yt.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);return e}accepts(e){let r=e.indexOf(":"),o=r!==-1?e.slice(0,r+1):null,a=r!==-1?e.slice(r+1):e;if(o===ei.protocol&&V.normalize(a)===this.relativeCwd||o===ei.protocol&&(a==="*"||a==="^"||a==="~"))return!0;let n=Qa(a);return n?o===ei.protocol?n.test(this.manifest.version??"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?n.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${V.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=Ut.hardDependencies}={}){let r=new Set,o=a=>{for(let n of e)for(let u of a.manifest[n].values()){let A=this.project.tryWorkspaceByDescriptor(u);A===null||r.has(A)||(r.add(A),o(A))}};return o(this),r}getRecursiveWorkspaceDependents({dependencies:e=Ut.hardDependencies}={}){let r=new Set,o=a=>{for(let n of this.project.workspaces)e.some(A=>[...n.manifest[A].values()].some(p=>{let h=this.project.tryWorkspaceByDescriptor(p);return h!==null&&qI(h.anchoredLocator,a.anchoredLocator)}))&&!r.has(n)&&(r.add(n),o(n))};return o(this),r}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let r of e)for(let o of r.workspacesCwds){let a=this.project.workspacesByCwd.get(o);a&&e.add(a)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let r=V.join(this.cwd,Ut.fileName),o=`${JSON.stringify(e,null,this.manifest.indent)} +`;await oe.changeFilePromise(r,o,{automaticNewlines:!0}),this.manifest.raw=e}}});function NAt({project:t,allDescriptors:e,allResolutions:r,allPackages:o,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:u=new Map,peerWarnings:A=[],peerRequirementNodes:p=new Map,volatileDescriptors:h=new Set}){let E=new Map,I=[],v=new Map,x=new Map,C=new Map,R=new Map,L=new Map(t.workspaces.map(le=>{let ce=le.anchoredLocator.locatorHash,Ce=o.get(ce);if(typeof Ce>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[ce,OI(Ce)]})),U=()=>{let le=oe.mktempSync(),ce=V.join(le,"stacktrace.log"),Ce=String(I.length+1).length,de=I.map((Be,Ee)=>`${`${Ee+1}.`.padStart(Ce," ")} ${ka(Be)} +`).join("");throw oe.writeFileSync(ce,de),oe.detachTemp(le),new Jt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${ue.fromPortablePath(ce)}`)},z=le=>{let ce=r.get(le.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: The resolution should have been registered");let Ce=o.get(ce);if(!Ce)throw new Error("Assertion failed: The package could not be found");return Ce},te=(le,ce,Ce,{top:de,optional:Be})=>{I.length>1e3&&U(),I.push(ce);let Ee=ae(le,ce,Ce,{top:de,optional:Be});return I.pop(),Ee},ae=(le,ce,Ce,{top:de,optional:Be})=>{if(Be||n.delete(ce.locatorHash),a.has(ce.locatorHash))return;a.add(ce.locatorHash);let Ee=o.get(ce.locatorHash);if(!Ee)throw new Error(`Assertion failed: The package (${qr(t.configuration,ce)}) should have been registered`);let g=[],me=new Map,we=[],Ae=[],ne=[],Z=[];for(let Ne of Array.from(Ee.dependencies.values())){if(Ee.peerDependencies.has(Ne.identHash)&&Ee.locatorHash!==de)continue;if(Pf(Ne))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");h.delete(Ne.descriptorHash);let ht=Be;if(!ht){let be=Ee.dependenciesMeta.get(rn(Ne));if(typeof be<"u"){let et=be.get(null);typeof et<"u"&&et.optional&&(ht=!0)}}let H=r.get(Ne.descriptorHash);if(!H)throw new Error(`Assertion failed: The resolution (${jn(t.configuration,Ne)}) should have been registered`);let rt=L.get(H)||o.get(H);if(!rt)throw new Error(`Assertion failed: The package (${H}, resolved from ${jn(t.configuration,Ne)}) should have been registered`);if(rt.peerDependencies.size===0){te(Ne,rt,new Map,{top:de,optional:ht});continue}let Te,Fe,ke=new Set,Ye=new Map;we.push(()=>{Te=KM(Ne,ce.locatorHash),Fe=VM(rt,ce.locatorHash),Ee.dependencies.delete(Ne.identHash),Ee.dependencies.set(Te.identHash,Te),r.set(Te.descriptorHash,Fe.locatorHash),e.set(Te.descriptorHash,Te),o.set(Fe.locatorHash,Fe),g.push([rt,Te,Fe])}),Ae.push(()=>{R.set(Fe.locatorHash,Ye);for(let be of Fe.peerDependencies.values()){let Ue=al(me,be.identHash,()=>{let S=Ce.get(be.identHash)??null,w=Ee.dependencies.get(be.identHash);return!w&&HI(ce,be)&&(le.identHash===ce.identHash?w=le:(w=In(ce,le.range),e.set(w.descriptorHash,w),r.set(w.descriptorHash,ce.locatorHash),h.delete(w.descriptorHash),S=null)),w||(w=In(be,"missing:")),{subject:ce,ident:be,provided:w,root:!S,requests:new Map,hash:`p${zi(ce.locatorHash,be.identHash).slice(0,5)}`}}).provided;if(Ue.range==="missing:"&&Fe.dependencies.has(be.identHash)){Fe.peerDependencies.delete(be.identHash);continue}Ye.set(be.identHash,{requester:Fe,descriptor:be,meta:Fe.peerDependenciesMeta.get(rn(be)),children:new Map}),Fe.dependencies.set(be.identHash,Ue),Pf(Ue)&&Sm(C,Ue.descriptorHash).add(Fe.locatorHash),v.set(Ue.identHash,Ue),Ue.range==="missing:"&&ke.add(Ue.identHash)}Fe.dependencies=new Map(Fs(Fe.dependencies,([be,et])=>rn(et)))}),ne.push(()=>{if(!o.has(Fe.locatorHash))return;let be=E.get(rt.locatorHash);typeof be=="number"&&be>=2&&U();let et=E.get(rt.locatorHash),Ue=typeof et<"u"?et+1:1;E.set(rt.locatorHash,Ue),te(Te,Fe,Ye,{top:de,optional:ht}),E.set(rt.locatorHash,Ue-1)}),Z.push(()=>{let be=Ee.dependencies.get(Ne.identHash);if(typeof be>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let et=r.get(be.descriptorHash);if(typeof et>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let Ue=R.get(et);if(typeof Ue>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let S of me.values()){let w=Ue.get(S.ident.identHash);w&&(S.requests.set(be.descriptorHash,w),p.set(S.hash,S),S.root||Ce.get(S.ident.identHash)?.children.set(be.descriptorHash,w))}if(o.has(Fe.locatorHash))for(let S of ke)Fe.dependencies.delete(S)})}for(let Ne of[...we,...Ae])Ne();let xe;do{xe=!0;for(let[Ne,ht,H]of g){let rt=kI(x,Ne.locatorHash),Te=zi(...[...H.dependencies.values()].map(be=>{let et=be.range!=="missing:"?r.get(be.descriptorHash):"missing:";if(typeof et>"u")throw new Error(`Assertion failed: Expected the resolution for ${jn(t.configuration,be)} to have been registered`);return et===de?`${et} (top)`:et}),ht.identHash),Fe=rt.get(Te);if(typeof Fe>"u"){rt.set(Te,ht);continue}if(Fe===ht)continue;o.delete(H.locatorHash),e.delete(ht.descriptorHash),r.delete(ht.descriptorHash),a.delete(H.locatorHash);let ke=C.get(ht.descriptorHash)||[],Ye=[Ee.locatorHash,...ke];C.delete(ht.descriptorHash);for(let be of Ye){let et=o.get(be);typeof et>"u"||(et.dependencies.get(ht.identHash).descriptorHash!==Fe.descriptorHash&&(xe=!1),et.dependencies.set(ht.identHash,Fe))}for(let be of me.values())be.provided.descriptorHash===ht.descriptorHash&&(be.provided=Fe)}}while(!xe);for(let Ne of[...ne,...Z])Ne()};for(let le of t.workspaces){let ce=le.anchoredLocator;h.delete(le.anchoredDescriptor.descriptorHash),te(le.anchoredDescriptor,ce,new Map,{top:ce.locatorHash,optional:!1})}for(let le of p.values()){if(!le.root)continue;let ce=o.get(le.subject.locatorHash);if(typeof ce>"u")continue;for(let de of le.requests.values()){let Be=`p${zi(le.subject.locatorHash,rn(le.ident),de.requester.locatorHash).slice(0,5)}`;u.set(Be,{subject:le.subject.locatorHash,requested:le.ident,rootRequester:de.requester.locatorHash,allRequesters:Array.from(WI(de),Ee=>Ee.requester.locatorHash)})}let Ce=[...WI(le)];if(le.provided.range!=="missing:"){let de=z(le.provided),Be=de.version??"0.0.0",Ee=me=>{if(me.startsWith(ei.protocol)){if(!t.tryWorkspaceByLocator(de))return null;me=me.slice(ei.protocol.length),(me==="^"||me==="~")&&(me="*")}return me},g=!0;for(let me of Ce){let we=Ee(me.descriptor.range);if(we===null){g=!1;continue}if(!tA(Be,we)){g=!1;let Ae=`p${zi(le.subject.locatorHash,rn(le.ident),me.requester.locatorHash).slice(0,5)}`;A.push({type:1,subject:ce,requested:le.ident,requester:me.requester,version:Be,hash:Ae,requirementCount:Ce.length})}}if(!g){let me=Ce.map(we=>Ee(we.descriptor.range));A.push({type:3,node:le,range:me.includes(null)?null:XM(me),hash:le.hash})}}else{let de=!0;for(let Be of Ce)if(!Be.meta?.optional){de=!1;let Ee=`p${zi(le.subject.locatorHash,rn(le.ident),Be.requester.locatorHash).slice(0,5)}`;A.push({type:0,subject:ce,requested:le.ident,requester:Be.requester,hash:Ee})}de||A.push({type:2,node:le,hash:le.hash})}}}function*LAt(t){let e=new Map;if("children"in t)e.set(t,t);else for(let r of t.requests.values())e.set(r,r);for(let[r,o]of e){yield{request:r,root:o};for(let a of r.children.values())e.has(a)||e.set(a,o)}}function MAt(t,e){let r=[],o=[],a=!1;for(let n of t.peerWarnings)if(!(n.type===1||n.type===0)){if(!t.tryWorkspaceByLocator(n.node.subject)){a=!0;continue}if(n.type===3){let u=t.storedResolutions.get(n.node.provided.descriptorHash);if(typeof u>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=t.storedPackages.get(u);if(typeof A>"u")throw new Error("Assertion failed: Expected the package to be registered");let p=zp(LAt(n.node),({request:I,root:v})=>tA(A.version??"0.0.0",I.descriptor.range)?zp.skip:I===v?Oi(t.configuration,I.requester):`${Oi(t.configuration,I.requester)} (via ${Oi(t.configuration,v.requester)})`),h=[...WI(n.node)].length>1?"and other dependencies request":"requests",E=n.range?qm(t.configuration,n.range):Ot(t.configuration,"but they have non-overlapping ranges!","redBright");r.push(`${Oi(t.configuration,n.node.ident)} is listed by your project with version ${GI(t.configuration,A.version??"0.0.0")} (${Ot(t.configuration,n.hash,yt.CODE)}), which doesn't satisfy what ${p} ${h} (${E}).`)}if(n.type===2){let u=n.node.requests.size>1?" and other dependencies":"";o.push(`${qr(t.configuration,n.node.subject)} doesn't provide ${Oi(t.configuration,n.node.ident)} (${Ot(t.configuration,n.hash,yt.CODE)}), requested by ${Oi(t.configuration,n.node.requests.values().next().value.requester)}${u}.`)}}e.startSectionSync({reportFooter:()=>{e.reportWarning(86,`Some peer dependencies are incorrectly met by your project; run ${Ot(t.configuration,"yarn explain peer-requirements ",yt.CODE)} for details, where ${Ot(t.configuration,"",yt.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let n of Fs(r,u=>Rm.default(u)))e.reportWarning(60,n);for(let n of Fs(o,u=>Rm.default(u)))e.reportWarning(2,n)}),a&&e.reportWarning(86,`Some peer dependencies are incorrectly met by dependencies; run ${Ot(t.configuration,"yarn explain peer-requirements",yt.CODE)} for details.`)}var Hx,qx,jx,ehe,B_,I_,v_,Gx,kAt,QAt,Zpe,FAt,RAt,TAt,hl,w_,Yx,$pe,kt,the=Et(()=>{Pt();Pt();Nl();qt();Hx=ve("crypto");f_();qx=Ze(y_()),jx=Ze(eg()),ehe=Ze(Jn()),B_=ve("util"),I_=Ze(ve("v8")),v_=Ze(ve("zlib"));n_();u1();i_();s_();Gm();rO();Wl();Jpe();I1();E_();mg();C_();Tb();jl();rh();ql();fS();dU();xf();So();Gx=Qm(process.env.YARN_LOCKFILE_VERSION_OVERRIDE??8),kAt=3,QAt=/ *, */g,Zpe=/\/$/,FAt=32,RAt=(0,B_.promisify)(v_.default.gzip),TAt=(0,B_.promisify)(v_.default.gunzip),hl=(r=>(r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build",r))(hl||{}),w_={restoreLinkersCustomData:["linkersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["skippedBuilds","storedBuildState"]},Yx=(a=>(a[a.NotProvided=0]="NotProvided",a[a.NotCompatible=1]="NotCompatible",a[a.NodeNotProvided=2]="NodeNotProvided",a[a.NodeNotCompatible=3]="NodeNotCompatible",a))(Yx||{}),$pe=t=>zi(`${kAt}`,t),kt=class t{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.skippedBuilds=new Set;this.lockfileLastVersion=null;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.peerWarnings=[];this.peerRequirementNodes=new Map;this.linkersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){if(!e.projectCwd)throw new st(`No project found in ${r}`);let o=e.projectCwd,a=r,n=null;for(;n!==e.projectCwd;){if(n=a,oe.existsSync(V.join(n,dr.manifest))){o=n;break}a=V.dirname(n)}let u=new t(e.projectCwd,{configuration:e});Ke.telemetry?.reportProject(u.cwd),await u.setupResolutions(),await u.setupWorkspaces(),Ke.telemetry?.reportWorkspaceCount(u.workspaces.length),Ke.telemetry?.reportDependencyCount(u.workspaces.reduce((C,R)=>C+R.manifest.dependencies.size+R.manifest.devDependencies.size,0));let A=u.tryWorkspaceByCwd(o);if(A)return{project:u,workspace:A,locator:A.anchoredLocator};let p=await u.findLocatorForLocation(`${o}/`,{strict:!0});if(p)return{project:u,locator:p,workspace:null};let h=Ot(e,u.cwd,yt.PATH),E=Ot(e,V.relative(u.cwd,o),yt.PATH),I=`- If ${h} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,v=`- If ${h} is intended to be a project, it might be that you forgot to list ${E} in its workspace configuration.`,x=`- Finally, if ${h} is fine and you intend ${E} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new st(`The nearest package directory (${Ot(e,o,yt.PATH)}) doesn't seem to be part of the project declared in ${Ot(e,u.cwd,yt.PATH)}. + +${[I,v,x].join(` +`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=V.join(this.cwd,dr.lockfile),r=this.configuration.get("defaultLanguageName");if(oe.existsSync(e)){let o=await oe.readFilePromise(e,"utf8");this.lockFileChecksum=$pe(o);let a=Ki(o);if(a.__metadata){let n=a.__metadata.version,u=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${A})`);let h=bf(p.resolution,!0),E=new Ut;E.load(p,{yamlCompatibilityMode:!0});let I=E.version,v=E.languageName||r,x=p.linkType.toUpperCase(),C=p.conditions??null,R=E.dependencies,L=E.peerDependencies,U=E.dependenciesMeta,z=E.peerDependenciesMeta,te=E.bin;if(p.checksum!=null){let le=typeof u<"u"&&!p.checksum.includes("/")?`${u}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,le)}let ae={...h,version:I,languageName:v,linkType:x,conditions:C,dependencies:R,peerDependencies:L,dependenciesMeta:U,peerDependenciesMeta:z,bin:te};this.originalPackages.set(ae.locatorHash,ae);for(let le of A.split(QAt)){let ce=nh(le);n<=6&&(ce=this.configuration.normalizeDependency(ce),ce=In(ce,ce.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(ce.descriptorHash,ce),this.storedResolutions.set(ce.descriptorHash,h.locatorHash)}}}else o.includes("yarn lockfile v1")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,jx.default)(4),o=async(a,n)=>{if(e.has(n))return a;e.add(n);let u=new My(n,{project:this});await r(()=>u.setup());let A=a.then(()=>{this.addWorkspace(u)});return Array.from(u.workspacesCwds).reduce(o,A)};await o(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.anchoredLocator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${Oi(this.configuration,e.anchoredLocator)}: ${ue.fromPortablePath(e.cwd)} conflicts with ${ue.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.anchoredLocator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){V.isAbsolute(e)||(e=V.resolve(this.cwd,e)),e=V.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let o of this.workspaces)V.relative(o.cwd,e).startsWith("../")||r&&r.cwd.length>=o.cwd.length||(r=o);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${Oi(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(ei.protocol)){let o=e.range.slice(ei.protocol.length);if(o!=="^"&&o!=="~"&&o!=="*"&&!Qa(o))return this.tryWorkspaceByCwd(o)}let r=this.tryWorkspaceByIdent(e);return r===null||(Pf(e)&&(e=UI(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${jn(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Gc(e)&&(e=_I(e)),r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${qr(this.configuration,e)})`);return r}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let o=new Set(this.storedResolutions.values());typeof r<"u"&&!o.has(r)&&this.deleteLocator(r)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[r,o]of this.storedResolutions)o===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[o,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(o)}for(let o of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(o,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(o.locatorHash);let n=r.get(o.locatorHash);if(n){r.delete(o.locatorHash);for(let u of n)this.deleteDescriptor(u)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,o]of e.dependencies)Pf(o)&&e.dependencies.set(r,UI(o))}getDependencyMeta(e,r){let o={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(rn(e));if(!n)return o;let u=n.get(null);if(u&&Object.assign(o,u),r===null||!ehe.default.valid(r))return o;for(let[A,p]of n)A!==null&&A===r&&Object.assign(o,p);return o}async findLocatorForLocation(e,{strict:r=!1}={}){let o=new ki,a=this.configuration.getLinkers(),n={project:this,report:o};for(let u of a){let A=await u.findPackageLocator(e,n);if(A){if(r&&(await u.findPackageLocation(A,n)).replace(Zpe,"")!==e.replace(Zpe,""))continue;return A}}return null}async loadUserConfig(){let e=V.join(this.cwd,".pnp.cjs");await oe.existsPromise(e)&&vf(e).setup();let r=V.join(this.cwd,"yarn.config.cjs");return await oe.existsPromise(r)?vf(r):null}async preparePackage(e,{resolver:r,resolveOptions:o}){let a=await this.configuration.getPackageExtensions(),n=this.configuration.normalizePackage(e,{packageExtensions:a});for(let[u,A]of n.dependencies){let p=await this.configuration.reduceHook(E=>E.reduceDependency,A,this,n,A,{resolver:r,resolveOptions:o});if(!HI(A,p))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let h=r.bindDescriptor(p,n,o);n.dependencies.set(u,h)}return n}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions();let r=new Map(this.originalPackages),o=[];e.lockfileOnly||this.forgetTransientResolutions();let a=e.resolver||this.configuration.makeResolver(),n=new Ty(a);await n.setup(this,{report:e.report});let u=e.lockfileOnly?[new _x(a)]:[n,a],A=new yg([new Ny(a),...u]),p=new yg([...u]),h=this.configuration.makeFetcher(),E=e.lockfileOnly?{project:this,report:e.report,resolver:A}:{project:this,report:e.report,resolver:A,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:h,cacheOptions:{mirrorWriteOnly:!0}}},I=new Map,v=new Map,x=new Map,C=new Map,R=new Map,L=new Map,U=this.topLevelWorkspace.anchoredLocator,z=new Set,te=[],ae=k4(),le=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Zs.progressViaTitle(),async ne=>{let Z=async rt=>{let Te=await xm(async()=>await A.resolve(rt,E),be=>`${qr(this.configuration,rt)}: ${be}`);if(!qI(rt,Te))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${qr(this.configuration,rt)} to ${qr(this.configuration,Te)})`);C.set(Te.locatorHash,Te),!r.delete(Te.locatorHash)&&!this.tryWorkspaceByLocator(Te)&&o.push(Te);let ke=await this.preparePackage(Te,{resolver:A,resolveOptions:E}),Ye=_c([...ke.dependencies.values()].map(be=>H(be)));return te.push(Ye),Ye.catch(()=>{}),v.set(ke.locatorHash,ke),ke},xe=async rt=>{let Te=R.get(rt.locatorHash);if(typeof Te<"u")return Te;let Fe=Promise.resolve().then(()=>Z(rt));return R.set(rt.locatorHash,Fe),Fe},Ne=async(rt,Te)=>{let Fe=await H(Te);return I.set(rt.descriptorHash,rt),x.set(rt.descriptorHash,Fe.locatorHash),Fe},ht=async rt=>{ne.setTitle(jn(this.configuration,rt));let Te=this.resolutionAliases.get(rt.descriptorHash);if(typeof Te<"u")return Ne(rt,this.storedDescriptors.get(Te));let Fe=A.getResolutionDependencies(rt,E),ke=Object.fromEntries(await _c(Object.entries(Fe).map(async([et,Ue])=>{let S=A.bindDescriptor(Ue,U,E),w=await H(S);return z.add(w.locatorHash),[et,w]}))),be=(await xm(async()=>await A.getCandidates(rt,ke,E),et=>`${jn(this.configuration,rt)}: ${et}`))[0];if(typeof be>"u")throw new Jt(82,`${jn(this.configuration,rt)}: No candidates found`);if(e.checkResolutions){let{locators:et}=await p.getSatisfying(rt,ke,[be],{...E,resolver:p});if(!et.find(Ue=>Ue.locatorHash===be.locatorHash))throw new Jt(78,`Invalid resolution ${NI(this.configuration,rt,be)}`)}return I.set(rt.descriptorHash,rt),x.set(rt.descriptorHash,be.locatorHash),xe(be)},H=rt=>{let Te=L.get(rt.descriptorHash);if(typeof Te<"u")return Te;I.set(rt.descriptorHash,rt);let Fe=Promise.resolve().then(()=>ht(rt));return L.set(rt.descriptorHash,Fe),Fe};for(let rt of this.workspaces){let Te=rt.anchoredDescriptor;te.push(H(Te))}for(;te.length>0;){let rt=[...te];te.length=0,await _c(rt)}});let ce=ol(r.values(),ne=>this.tryWorkspaceByLocator(ne)?ol.skip:ne);if(o.length>0||ce.length>0){let ne=new Set(this.workspaces.flatMap(rt=>{let Te=v.get(rt.anchoredLocator.locatorHash);if(!Te)throw new Error("Assertion failed: The workspace should have been resolved");return Array.from(Te.dependencies.values(),Fe=>{let ke=x.get(Fe.descriptorHash);if(!ke)throw new Error("Assertion failed: The resolution should have been registered");return ke})})),Z=rt=>ne.has(rt.locatorHash)?"0":"1",xe=rt=>ka(rt),Ne=Fs(o,[Z,xe]),ht=Fs(ce,[Z,xe]),H=e.report.getRecommendedLength();Ne.length>0&&e.report.reportInfo(85,`${Ot(this.configuration,"+",yt.ADDED)} ${zP(this.configuration,Ne,H)}`),ht.length>0&&e.report.reportInfo(85,`${Ot(this.configuration,"-",yt.REMOVED)} ${zP(this.configuration,ht,H)}`)}let Ce=new Set(this.resolutionAliases.values()),de=new Set(v.keys()),Be=new Set,Ee=new Map,g=[],me=new Map;NAt({project:this,accessibleLocators:Be,volatileDescriptors:Ce,optionalBuilds:de,peerRequirements:Ee,peerWarnings:g,peerRequirementNodes:me,allDescriptors:I,allResolutions:x,allPackages:v});for(let ne of z)de.delete(ne);for(let ne of Ce)I.delete(ne),x.delete(ne);let we=new Set,Ae=new Set;for(let ne of v.values())ne.conditions!=null&&de.has(ne.locatorHash)&&(xb(ne,le)||(xb(ne,ae)&&e.report.reportWarningOnce(77,`${qr(this.configuration,ne)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Ot(this.configuration,"supportedArchitectures",yt.SETTING)} setting`),Ae.add(ne.locatorHash)),we.add(ne.locatorHash));this.storedResolutions=x,this.storedDescriptors=I,this.storedPackages=v,this.accessibleLocators=Be,this.conditionalLocators=we,this.disabledLocators=Ae,this.originalPackages=C,this.optionalBuilds=de,this.peerRequirements=Ee,this.peerWarnings=g,this.peerRequirementNodes=me}async fetchEverything({cache:e,report:r,fetcher:o,mode:a,persistProject:n=!0}){let u={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},A=o||this.configuration.makeFetcher(),p={checksums:this.storedChecksums,project:this,cache:e,fetcher:A,report:r,cacheOptions:u},h=Array.from(new Set(Fs(this.storedResolutions.values(),[C=>{let R=this.storedPackages.get(C);if(!R)throw new Error("Assertion failed: The locator should have been registered");return ka(R)}])));a==="update-lockfile"&&(h=h.filter(C=>!this.storedChecksums.has(C)));let E=!1,I=Zs.progressViaCounter(h.length);await r.reportProgress(I);let v=(0,jx.default)(FAt);if(await _c(h.map(C=>v(async()=>{let R=this.storedPackages.get(C);if(!R)throw new Error("Assertion failed: The locator should have been registered");if(Gc(R))return;let L;try{L=await A.fetch(R,p)}catch(U){U.message=`${qr(this.configuration,R)}: ${U.message}`,r.reportExceptionOnce(U),E=U;return}L.checksum!=null?this.storedChecksums.set(R.locatorHash,L.checksum):this.storedChecksums.delete(R.locatorHash),L.releaseFs&&L.releaseFs()}).finally(()=>{I.tick()}))),E)throw E;let x=n&&a!=="update-lockfile"?await this.cacheCleanup({cache:e,report:r}):null;if(r.cacheMisses.size>0||x){let R=(await Promise.all([...r.cacheMisses].map(async ce=>{let Ce=this.storedPackages.get(ce),de=this.storedChecksums.get(ce)??null,Be=e.getLocatorPath(Ce,de);return(await oe.statPromise(Be)).size}))).reduce((ce,Ce)=>ce+Ce,0)-(x?.size??0),L=r.cacheMisses.size,U=x?.count??0,z=`${jP(L,{zero:"No new packages",one:"A package was",more:`${Ot(this.configuration,L,yt.NUMBER)} packages were`})} added to the project`,te=`${jP(U,{zero:"none were",one:"one was",more:`${Ot(this.configuration,U,yt.NUMBER)} were`})} removed`,ae=R!==0?` (${Ot(this.configuration,R,yt.SIZE_DIFF)})`:"",le=U>0?L>0?`${z}, and ${te}${ae}.`:`${z}, but ${te}${ae}.`:`${z}${ae}.`;r.reportInfo(13,le)}}async linkEverything({cache:e,report:r,fetcher:o,mode:a}){let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},u=o||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:u,report:r,cacheOptions:n},p=this.configuration.getLinkers(),h={project:this,report:r},E=new Map(p.map(we=>{let Ae=we.makeInstaller(h),ne=we.getCustomDataKey(),Z=this.linkersCustomData.get(ne);return typeof Z<"u"&&Ae.attachCustomData(Z),[we,Ae]})),I=new Map,v=new Map,x=new Map,C=new Map(await _c([...this.accessibleLocators].map(async we=>{let Ae=this.storedPackages.get(we);if(!Ae)throw new Error("Assertion failed: The locator should have been registered");return[we,await u.fetch(Ae,A)]}))),R=[],L=new Set,U=[];for(let we of this.accessibleLocators){let Ae=this.storedPackages.get(we);if(typeof Ae>"u")throw new Error("Assertion failed: The locator should have been registered");let ne=C.get(Ae.locatorHash);if(typeof ne>"u")throw new Error("Assertion failed: The fetch result should have been registered");let Z=[],xe=ht=>{Z.push(ht)},Ne=this.tryWorkspaceByLocator(Ae);if(Ne!==null){let ht=[],{scripts:H}=Ne.manifest;for(let Te of["preinstall","install","postinstall"])H.has(Te)&&ht.push({type:0,script:Te});try{for(let[Te,Fe]of E)if(Te.supportsPackage(Ae,h)&&(await Fe.installPackage(Ae,ne,{holdFetchResult:xe})).buildRequest!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{Z.length===0?ne.releaseFs?.():R.push(_c(Z).catch(()=>{}).then(()=>{ne.releaseFs?.()}))}let rt=V.join(ne.packageFs.getRealPath(),ne.prefixPath);v.set(Ae.locatorHash,rt),!Gc(Ae)&&ht.length>0&&x.set(Ae.locatorHash,{buildDirectives:ht,buildLocations:[rt]})}else{let ht=p.find(Te=>Te.supportsPackage(Ae,h));if(!ht)throw new Jt(12,`${qr(this.configuration,Ae)} isn't supported by any available linker`);let H=E.get(ht);if(!H)throw new Error("Assertion failed: The installer should have been registered");let rt;try{rt=await H.installPackage(Ae,ne,{holdFetchResult:xe})}finally{Z.length===0?ne.releaseFs?.():R.push(_c(Z).then(()=>{}).then(()=>{ne.releaseFs?.()}))}I.set(Ae.locatorHash,ht),v.set(Ae.locatorHash,rt.packageLocation),rt.buildRequest&&rt.packageLocation&&(rt.buildRequest.skipped?(L.add(Ae.locatorHash),this.skippedBuilds.has(Ae.locatorHash)||U.push([Ae,rt.buildRequest.explain])):x.set(Ae.locatorHash,{buildDirectives:rt.buildRequest.directives,buildLocations:[rt.packageLocation]}))}}let z=new Map;for(let we of this.accessibleLocators){let Ae=this.storedPackages.get(we);if(!Ae)throw new Error("Assertion failed: The locator should have been registered");let ne=this.tryWorkspaceByLocator(Ae)!==null,Z=async(xe,Ne)=>{let ht=v.get(Ae.locatorHash);if(typeof ht>"u")throw new Error(`Assertion failed: The package (${qr(this.configuration,Ae)}) should have been registered`);let H=[];for(let rt of Ae.dependencies.values()){let Te=this.storedResolutions.get(rt.descriptorHash);if(typeof Te>"u")throw new Error(`Assertion failed: The resolution (${jn(this.configuration,rt)}, from ${qr(this.configuration,Ae)})should have been registered`);let Fe=this.storedPackages.get(Te);if(typeof Fe>"u")throw new Error(`Assertion failed: The package (${Te}, resolved from ${jn(this.configuration,rt)}) should have been registered`);let ke=this.tryWorkspaceByLocator(Fe)===null?I.get(Te):null;if(typeof ke>"u")throw new Error(`Assertion failed: The package (${Te}, resolved from ${jn(this.configuration,rt)}) should have been registered`);ke===xe||ke===null?v.get(Fe.locatorHash)!==null&&H.push([rt,Fe]):!ne&&ht!==null&&xI(z,Te).push(ht)}ht!==null&&await Ne.attachInternalDependencies(Ae,H)};if(ne)for(let[xe,Ne]of E)xe.supportsPackage(Ae,h)&&await Z(xe,Ne);else{let xe=I.get(Ae.locatorHash);if(!xe)throw new Error("Assertion failed: The linker should have been found");let Ne=E.get(xe);if(!Ne)throw new Error("Assertion failed: The installer should have been registered");await Z(xe,Ne)}}for(let[we,Ae]of z){let ne=this.storedPackages.get(we);if(!ne)throw new Error("Assertion failed: The package should have been registered");let Z=I.get(ne.locatorHash);if(!Z)throw new Error("Assertion failed: The linker should have been found");let xe=E.get(Z);if(!xe)throw new Error("Assertion failed: The installer should have been registered");await xe.attachExternalDependents(ne,Ae)}let te=new Map;for(let[we,Ae]of E){let ne=await Ae.finalizeInstall();for(let Z of ne?.records??[])Z.buildRequest.skipped?(L.add(Z.locator.locatorHash),this.skippedBuilds.has(Z.locator.locatorHash)||U.push([Z.locator,Z.buildRequest.explain])):x.set(Z.locator.locatorHash,{buildDirectives:Z.buildRequest.directives,buildLocations:Z.buildLocations});typeof ne?.customData<"u"&&te.set(we.getCustomDataKey(),ne.customData)}if(this.linkersCustomData=te,await _c(R),a==="skip-build")return;for(let[,we]of Fs(U,([Ae])=>ka(Ae)))we(r);let ae=new Set(x.keys()),le=(0,Hx.createHash)("sha512");le.update(process.versions.node),await this.configuration.triggerHook(we=>we.globalHashGeneration,this,we=>{le.update("\0"),le.update(we)});let ce=le.digest("hex"),Ce=new Map,de=we=>{let Ae=Ce.get(we.locatorHash);if(typeof Ae<"u")return Ae;let ne=this.storedPackages.get(we.locatorHash);if(typeof ne>"u")throw new Error("Assertion failed: The package should have been registered");let Z=(0,Hx.createHash)("sha512");Z.update(we.locatorHash),Ce.set(we.locatorHash,"");for(let xe of ne.dependencies.values()){let Ne=this.storedResolutions.get(xe.descriptorHash);if(typeof Ne>"u")throw new Error(`Assertion failed: The resolution (${jn(this.configuration,xe)}) should have been registered`);let ht=this.storedPackages.get(Ne);if(typeof ht>"u")throw new Error("Assertion failed: The package should have been registered");Z.update(de(ht))}return Ae=Z.digest("hex"),Ce.set(we.locatorHash,Ae),Ae},Be=(we,Ae)=>{let ne=(0,Hx.createHash)("sha512");ne.update(ce),ne.update(de(we));for(let Z of Ae)ne.update(Z);return ne.digest("hex")},Ee=new Map,g=!1,me=we=>{let Ae=new Set([we.locatorHash]);for(let ne of Ae){let Z=this.storedPackages.get(ne);if(!Z)throw new Error("Assertion failed: The package should have been registered");for(let xe of Z.dependencies.values()){let Ne=this.storedResolutions.get(xe.descriptorHash);if(!Ne)throw new Error(`Assertion failed: The resolution (${jn(this.configuration,xe)}) should have been registered`);if(Ne!==we.locatorHash&&ae.has(Ne))return!1;let ht=this.storedPackages.get(Ne);if(!ht)throw new Error("Assertion failed: The package should have been registered");let H=this.tryWorkspaceByLocator(ht);if(H){if(H.anchoredLocator.locatorHash!==we.locatorHash&&ae.has(H.anchoredLocator.locatorHash))return!1;Ae.add(H.anchoredLocator.locatorHash)}Ae.add(Ne)}}return!0};for(;ae.size>0;){let we=ae.size,Ae=[];for(let ne of ae){let Z=this.storedPackages.get(ne);if(!Z)throw new Error("Assertion failed: The package should have been registered");if(!me(Z))continue;let xe=x.get(Z.locatorHash);if(!xe)throw new Error("Assertion failed: The build directive should have been registered");let Ne=Be(Z,xe.buildLocations);if(this.storedBuildState.get(Z.locatorHash)===Ne){Ee.set(Z.locatorHash,Ne),ae.delete(ne);continue}g||(await this.persistInstallStateFile(),g=!0),this.storedBuildState.has(Z.locatorHash)?r.reportInfo(8,`${qr(this.configuration,Z)} must be rebuilt because its dependency tree changed`):r.reportInfo(7,`${qr(this.configuration,Z)} must be built because it never has been before or the last one failed`);let ht=xe.buildLocations.map(async H=>{if(!V.isAbsolute(H))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${H})`);for(let rt of xe.buildDirectives){let Te=`# This file contains the result of Yarn building a package (${ka(Z)}) +`;switch(rt.type){case 0:Te+=`# Script name: ${rt.script} +`;break;case 1:Te+=`# Script code: ${rt.script} +`;break}let Fe=null;if(!await oe.mktempPromise(async Ye=>{let be=V.join(Ye,"build.log"),{stdout:et,stderr:Ue}=this.configuration.getSubprocessStreams(be,{header:Te,prefix:qr(this.configuration,Z),report:r}),S;try{switch(rt.type){case 0:S=await NS(Z,rt.script,[],{cwd:H,project:this,stdin:Fe,stdout:et,stderr:Ue});break;case 1:S=await fU(Z,rt.script,[],{cwd:H,project:this,stdin:Fe,stdout:et,stderr:Ue});break}}catch(y){Ue.write(y.stack),S=1}if(et.end(),Ue.end(),S===0)return!0;oe.detachTemp(Ye);let w=`${qr(this.configuration,Z)} couldn't be built successfully (exit code ${Ot(this.configuration,S,yt.NUMBER)}, logs can be found here: ${Ot(this.configuration,be,yt.PATH)})`,b=this.optionalBuilds.has(Z.locatorHash);return b?r.reportInfo(9,w):r.reportError(9,w),Zce&&r.reportFold(ue.fromPortablePath(be),oe.readFileSync(be,"utf8")),b}))return!1}return!0});Ae.push(...ht,Promise.allSettled(ht).then(H=>{ae.delete(ne),H.every(rt=>rt.status==="fulfilled"&&rt.value===!0)&&Ee.set(Z.locatorHash,Ne)}))}if(await _c(Ae),we===ae.size){let ne=Array.from(ae).map(Z=>{let xe=this.storedPackages.get(Z);if(!xe)throw new Error("Assertion failed: The package should have been registered");return qr(this.configuration,xe)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ne})`);break}}this.storedBuildState=Ee,this.skippedBuilds=L}async installWithNewReport(e,r){return(await Rt.start({configuration:this.configuration,json:e.json,stdout:e.stdout,forceSectionAlignment:!0,includeLogs:!e.json&&!e.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(e){let r=this.configuration.get("nodeLinker");Ke.telemetry?.reportInstall(r);let o=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{this.configuration.get("enableOfflineMode")&&e.report.reportWarning(90,"Offline work is enabled; Yarn won't fetch packages from the remote registry if it can avoid it"),await this.configuration.triggerHook(E=>E.validateProject,this,{reportWarning:(E,I)=>{e.report.reportWarning(E,I)},reportError:(E,I)=>{e.report.reportError(E,I),o=!0}})}),o)return;let a=await this.configuration.getPackageExtensions();for(let E of a.values())for(let[,I]of E)for(let v of I)v.status="inactive";let n=V.join(this.cwd,dr.lockfile),u=null;if(e.immutable)try{u=await oe.readFilePromise(n,"utf8")}catch(E){throw E.code==="ENOENT"?new Jt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):E}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{MAt(this,e.report);for(let[,E]of a)for(let[,I]of E)for(let v of I)if(v.userProvided){let x=Ot(this.configuration,v,yt.PACKAGE_EXTENSION);switch(v.status){case"inactive":e.report.reportWarning(68,`${x}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${x}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(u!==null){let E=L0(u,this.generateLockfile());if(E!==u){let I=dpe(n,n,u,E,void 0,void 0,{maxEditLength:100});if(I){e.report.reportSeparator();for(let v of I.hunks){e.report.reportInfo(null,`@@ -${v.oldStart},${v.oldLines} +${v.newStart},${v.newLines} @@`);for(let x of v.lines)x.startsWith("+")?e.report.reportError(28,Ot(this.configuration,x,yt.ADDED)):x.startsWith("-")?e.report.reportError(28,Ot(this.configuration,x,yt.REMOVED)):e.report.reportInfo(null,Ot(this.configuration,x,"grey"))}e.report.reportSeparator()}throw new Jt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let E of a.values())for(let[,I]of E)for(let v of I)v.userProvided&&v.status==="active"&&Ke.telemetry?.reportPackageExtension(pg(v,yt.PACKAGE_EXTENSION));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e)});let A=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],p=await Promise.all(A.map(async E=>Bb(E,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${Ot(this.configuration,"mode=update-lockfile",yt.CODE)}`);return}await this.linkEverything(e);let E=await Promise.all(A.map(async I=>Bb(I,{cwd:this.cwd})));for(let I=0;I{await this.configuration.triggerHook(E=>E.validateProjectAfterInstall,this,{reportWarning:(E,I)=>{e.report.reportWarning(E,I)},reportError:(E,I)=>{e.report.reportError(E,I),h=!0}})}),!h&&await this.configuration.triggerHook(E=>E.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,u]of this.storedResolutions.entries()){let A=e.get(u);A||e.set(u,A=new Set),A.add(n)}let r={},{cacheKey:o}=Gr.getCacheKey(this.configuration);r.__metadata={version:Gx,cacheKey:o};for(let[n,u]of e.entries()){let A=this.originalPackages.get(n);if(!A)continue;let p=[];for(let I of u){let v=this.storedDescriptors.get(I);if(!v)throw new Error("Assertion failed: The descriptor should have been registered");p.push(v)}let h=p.map(I=>xa(I)).sort().join(", "),E=new Ut;E.version=A.linkType==="HARD"?A.version:"0.0.0-use.local",E.languageName=A.languageName,E.dependencies=new Map(A.dependencies),E.peerDependencies=new Map(A.peerDependencies),E.dependenciesMeta=new Map(A.dependenciesMeta),E.peerDependenciesMeta=new Map(A.peerDependenciesMeta),E.bin=new Map(A.bin),r[h]={...E.exportTo({},{compatibilityMode:!1}),linkType:A.linkType.toLowerCase(),resolution:ka(A),checksum:this.storedChecksums.get(A.locatorHash),conditions:A.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. +`,`# Manual changes might be lost - proceed with caution! +`].join("")} +`+Da(r)}async persistLockfile(){let e=V.join(this.cwd,dr.lockfile),r="";try{r=await oe.readFilePromise(e,"utf8")}catch{}let o=this.generateLockfile(),a=L0(r,o);a!==r&&(await oe.writeFilePromise(e,a),this.lockFileChecksum=$pe(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let u of Object.values(w_))e.push(...u);let r=(0,qx.default)(this,e),o=I_.default.serialize(r),a=zi(o);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await oe.mkdirPromise(V.dirname(n),{recursive:!0}),await oe.writeFilePromise(n,await RAt(o)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:o=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let u=await TAt(await oe.readFilePromise(a));n=I_.default.deserialize(u),this.installStateChecksum=zi(u)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),o&&Object.assign(this,(0,qx.default)(n,w_.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,qx.default)(n,w_.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ki}),await this.persistInstallStateFile()}async persist(){let e=(0,jx.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let o=new Set([".gitignore"]);if(!fO(e.cwd,this.cwd)||!await oe.existsPromise(e.cwd))return null;let a=[];for(let u of await oe.readdirPromise(e.cwd)){if(o.has(u))continue;let A=V.resolve(e.cwd,u);e.markedFiles.has(A)||(e.immutable?r.reportError(56,`${Ot(this.configuration,V.basename(A),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(oe.lstatPromise(A).then(async p=>(await oe.removePromise(A),p.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((u,A)=>u+A,0)}}}});function OAt(t){let o=Math.floor(t.timeNow/864e5),a=t.updateInterval*864e5,n=t.state.lastUpdate??t.timeNow+a+Math.floor(a*t.randomInitialInterval),u=n+a,A=t.state.lastTips??o*864e5,p=A+864e5+8*36e5-t.timeZone,h=u<=t.timeNow,E=p<=t.timeNow,I=null;return(h||E||!t.state.lastUpdate||!t.state.lastTips)&&(I={},I.lastUpdate=h?t.timeNow:n,I.lastTips=A,I.blocks=h?{}:t.state.blocks,I.displayedTips=t.state.displayedTips),{nextState:I,triggerUpdate:h,triggerTips:E,nextTips:E?o*864e5:A}}var Oy,rhe=Et(()=>{Pt();w1();rh();uS();ql();xf();Oy=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=e;let o=this.getRegistryPath();this.isNew=!oe.existsSync(o),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(e){let r=new Set(this.displayedTips),o=A=>A&&nn?tA(nn,A):!1,a=e.map((A,p)=>p).filter(A=>e[A]&&o(e[A]?.selector));if(a.length===0)return null;let n=a.filter(A=>!r.has(A));if(n.length===0){let A=Math.floor(a.length*.2);this.displayedTips=A>0?this.displayedTips.slice(-A):[],n=a.filter(p=>!r.has(p))}let u=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(u),this.commitTips(),e[u]}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,r){Sm(this.values,e).add(r)}reportEnumerator(e,r){Sm(this.enumerators,e).add(zi(r))}reportHit(e,r="*"){let o=kI(this.hits,e),a=al(o,r,()=>0);o.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return V.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),o;try{o=oe.readJsonSync(r)}catch{o={}}let{nextState:a,triggerUpdate:n,triggerTips:u,nextTips:A}=OAt({state:o,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=A,this.displayedTips=o.displayedTips??[],a!==null)try{oe.mkdirSync(V.dirname(r),{recursive:!0}),oe.writeJsonSync(r,a)}catch{return!1}if(u&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),n){let p=o.blocks??{};if(Object.keys(p).length===0){let h=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,E=I=>x4(h,I,{configuration:this.configuration}).catch(()=>{});for(let[I,v]of Object.entries(o.blocks??{})){if(Object.keys(v).length===0)continue;let x=v;x.userId=I,x.reportType="primary";for(let L of Object.keys(x.enumerators??{}))x.enumerators[L]=x.enumerators[L].length;E(x);let C=new Map,R=20;for(let[L,U]of Object.entries(x.values))U.length>0&&C.set(L,U.slice(0,R));for(;C.size>0;){let L={};L.userId=I,L.reportType="secondary",L.metrics={};for(let[U,z]of C)L.metrics[U]=z.shift(),z.length===0&&C.delete(U);E(L)}}}}return!0}applyChanges(){let e=this.getRegistryPath(),r;try{r=oe.readJsonSync(e)}catch{r={}}let o=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},n=a[o]=a[o]??{};for(let u of this.hits.keys()){let A=n.hits=n.hits??{},p=A[u]=A[u]??{};for(let[h,E]of this.hits.get(u))p[h]=(p[h]??0)+E}for(let u of["values","enumerators"])for(let A of this[u].keys()){let p=n[u]=n[u]??{};p[A]=[...new Set([...p[A]??[],...this[u].get(A)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),oe.mkdirSync(V.dirname(e),{recursive:!0}),oe.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}}});var Y1={};Vt(Y1,{BuildDirectiveType:()=>Mx,CACHE_CHECKPOINT:()=>r_,CACHE_VERSION:()=>Lx,Cache:()=>Gr,Configuration:()=>Ke,DEFAULT_RC_FILENAME:()=>L4,FormatType:()=>Tle,InstallMode:()=>hl,LEGACY_PLUGINS:()=>l1,LOCKFILE_VERSION:()=>Gx,LegacyMigrationResolver:()=>Ty,LightReport:()=>AA,LinkType:()=>Fm,LockfileResolver:()=>Ny,Manifest:()=>Ut,MessageName:()=>wr,MultiFetcher:()=>Wm,PackageExtensionStatus:()=>pL,PackageExtensionType:()=>fL,PeerWarningType:()=>Yx,Project:()=>kt,Report:()=>Zs,ReportError:()=>Jt,SettingsType:()=>c1,StreamReport:()=>Rt,TAG_REGEXP:()=>ly,TelemetryManager:()=>Oy,ThrowReport:()=>ki,VirtualFetcher:()=>Km,WindowsLinkType:()=>mS,Workspace:()=>My,WorkspaceFetcher:()=>Vm,WorkspaceResolver:()=>ei,YarnVersion:()=>nn,execUtils:()=>Ur,folderUtils:()=>Rb,formatUtils:()=>pe,hashUtils:()=>wn,httpUtils:()=>sn,miscUtils:()=>He,nodeUtils:()=>Xi,parseMessageName:()=>ZD,reportOptionDeprecations:()=>uy,scriptUtils:()=>An,semverUtils:()=>Lr,stringifyMessageName:()=>Ku,structUtils:()=>G,tgzUtils:()=>$i,treeUtils:()=>fs});var Ge=Et(()=>{pS();Tb();jl();rh();uS();ql();fS();dU();xf();So();rpe();cpe();n_();u1();u1();Ape();i_();fpe();s_();Gm();$D();tO();the();Wl();I1();rhe();E_();nO();iO();mg();C_();w1();Cne()});var lhe=_((e8t,K1)=>{"use strict";var _At=process.env.TERM_PROGRAM==="Hyper",HAt=process.platform==="win32",she=process.platform==="linux",D_={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ohe=Object.assign({},D_,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),ahe=Object.assign({},D_,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:she?"\u25B8":"\u276F",pointerSmall:she?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});K1.exports=HAt&&!_At?ohe:ahe;Reflect.defineProperty(K1.exports,"common",{enumerable:!1,value:D_});Reflect.defineProperty(K1.exports,"windows",{enumerable:!1,value:ohe});Reflect.defineProperty(K1.exports,"other",{enumerable:!1,value:ahe})});var zc=_((t8t,P_)=>{"use strict";var qAt=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),jAt=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,che=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=n=>{let u=n.open=`\x1B[${n.codes[0]}m`,A=n.close=`\x1B[${n.codes[1]}m`,p=n.regex=new RegExp(`\\u001b\\[${n.codes[1]}m`,"g");return n.wrap=(h,E)=>{h.includes(A)&&(h=h.replace(p,A+u));let I=u+h+A;return E?I.replace(/\r*\n/g,`${A}$&${u}`):I},n},r=(n,u,A)=>typeof n=="function"?n(u):n.wrap(u,A),o=(n,u)=>{if(n===""||n==null)return"";if(t.enabled===!1)return n;if(t.visible===!1)return"";let A=""+n,p=A.includes(` +`),h=u.length;for(h>0&&u.includes("unstyle")&&(u=[...new Set(["unstyle",...u])].reverse());h-- >0;)A=r(t.styles[u[h]],A,p);return A},a=(n,u,A)=>{t.styles[n]=e({name:n,codes:u}),(t.keys[A]||(t.keys[A]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=E=>o(E,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=jAt,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,u)=>{let A=typeof u=="string"?t[u]:u;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:n}),t.styles[n]=A,A.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>o(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(A.stack):A.stack,p}})},t.theme=n=>{if(!qAt(n))throw new TypeError("Expected theme to be an object");for(let u of Object.keys(n))t.alias(u,n[u]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=lhe(),t.define=a,t};P_.exports=che();P_.exports.create=che});var No=_(on=>{"use strict";var GAt=Object.prototype.toString,rc=zc(),uhe=!1,b_=[],Ahe={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};on.longest=(t,e)=>t.reduce((r,o)=>Math.max(r,e?o[e].length:o.length),0);on.hasColor=t=>!!t&&rc.hasColor(t);var Kx=on.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);on.nativeType=t=>GAt.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");on.isAsyncFn=t=>on.nativeType(t)==="asyncfunction";on.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";on.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;on.scrollDown=(t=[])=>[...t.slice(1),t[0]];on.scrollUp=(t=[])=>[t.pop(),...t];on.reorder=(t=[])=>{let e=t.slice();return e.sort((r,o)=>r.index>o.index?1:r.index{let o=t.length,a=r===o?0:r<0?o-1:r,n=t[e];t[e]=t[a],t[a]=n};on.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};on.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};on.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:o=` +`+r,width:a=80}=e,n=(o+r).match(/[^\S\n]/g)||[];a-=n.length;let u=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=t.trim(),p=new RegExp(u,"g"),h=A.match(p)||[];return h=h.map(E=>E.replace(/\n$/,"")),e.padEnd&&(h=h.map(E=>E.padEnd(a," "))),e.padStart&&(h=h.map(E=>E.padStart(a," "))),r+h.join(o)};on.unmute=t=>{let e=t.stack.find(o=>rc.keys.color.includes(o));return e?rc[e]:t.stack.find(o=>o.slice(2)==="bg")?rc[e.slice(2)]:o=>o};on.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";on.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>rc.keys.color.includes(o));if(e){let o=rc["bg"+on.pascal(e)];return o?o.black:t}let r=t.stack.find(o=>o.slice(0,2)==="bg");return r?rc[r.slice(2).toLowerCase()]||t:rc.none};on.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>rc.keys.color.includes(o)),r=t.stack.find(o=>o.slice(0,2)==="bg");if(e&&!r)return rc[Ahe[e]||e];if(r){let o=r.slice(2).toLowerCase(),a=Ahe[o];return a&&rc["bg"+on.pascal(a)]||t}return rc.none};on.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),o=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+o};on.set=(t={},e="",r)=>e.split(".").reduce((o,a,n,u)=>{let A=u.length-1>n?o[a]||{}:r;return!on.isObject(A)&&n{let o=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return o??r};on.mixin=(t,e)=>{if(!Kx(t))return e;if(!Kx(e))return t;for(let r of Object.keys(e)){let o=Object.getOwnPropertyDescriptor(e,r);if(o.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&Kx(o.value)){let a=Object.getOwnPropertyDescriptor(t,r);Kx(a.value)?t[r]=on.merge({},t[r],e[r]):Reflect.defineProperty(t,r,o)}else Reflect.defineProperty(t,r,o);else Reflect.defineProperty(t,r,o)}return t};on.merge=(...t)=>{let e={};for(let r of t)on.mixin(e,r);return e};on.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let o of Object.keys(r)){let a=r[o];typeof a=="function"?on.define(t,o,a.bind(e)):on.define(t,o,a)}};on.onExit=t=>{let e=(r,o)=>{uhe||(uhe=!0,b_.forEach(a=>a()),r===!0&&process.exit(128+o))};b_.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),b_.push(t)};on.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};on.defineExport=(t,e,r)=>{let o;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){o=a},get(){return o?o():r()}})}});var fhe=_(qy=>{"use strict";qy.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};qy.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};qy.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};qy.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};qy.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var ghe=_((i8t,hhe)=>{"use strict";var phe=ve("readline"),YAt=fhe(),WAt=/^(?:\x1b)([a-zA-Z0-9])$/,KAt=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,VAt={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function zAt(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function JAt(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var Vx=(t="",e={})=>{let r,o={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=o.sequence||""),o.sequence=o.sequence||t||o.name,t==="\r")o.raw=void 0,o.name="return";else if(t===` +`)o.name="enter";else if(t===" ")o.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")o.name="backspace",o.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")o.name="escape",o.meta=t.length===2;else if(t===" "||t==="\x1B ")o.name="space",o.meta=t.length===2;else if(t<="")o.name=String.fromCharCode(t.charCodeAt(0)+97-1),o.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")o.name="number";else if(t.length===1&&t>="a"&&t<="z")o.name=t;else if(t.length===1&&t>="A"&&t<="Z")o.name=t.toLowerCase(),o.shift=!0;else if(r=WAt.exec(t))o.meta=!0,o.shift=/^[A-Z]$/.test(r[1]);else if(r=KAt.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(o.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),u=(r[3]||r[5]||1)-1;o.ctrl=!!(u&4),o.meta=!!(u&10),o.shift=!!(u&1),o.code=n,o.name=VAt[n],o.shift=zAt(n)||o.shift,o.ctrl=JAt(n)||o.ctrl}return o};Vx.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let o=phe.createInterface({terminal:!0,input:r});phe.emitKeypressEvents(r,o);let a=(A,p)=>e(A,Vx(A,p),o),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),o.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),o.pause(),o.close()}};Vx.action=(t,e,r)=>{let o={...YAt,...r};return e.ctrl?(e.action=o.ctrl[e.name],e):e.option&&o.option?(e.action=o.option[e.name],e):e.shift?(e.action=o.shift[e.name],e):(e.action=o.keys[e.name],e)};hhe.exports=Vx});var mhe=_((s8t,dhe)=>{"use strict";dhe.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(e)for(let r of Object.keys(e)){let o=e[r];typeof o=="number"&&(o={interval:o}),XAt(t,r,o)}};function XAt(t,e,r={}){let o=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;o.frames=r.frames||[],o.loading=!0;let n=setInterval(()=>{o.ms=Date.now()-o.start,o.tick++,t.render()},a);return o.stop=()=>{o.loading=!1,clearInterval(n)},Reflect.defineProperty(o,"interval",{value:n}),t.once("close",()=>o.stop()),o.stop}});var Ehe=_((o8t,yhe)=>{"use strict";var{define:ZAt,width:$At}=No(),S_=class{constructor(e){let r=e.options;ZAt(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=$At(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};yhe.exports=S_});var whe=_((a8t,Che)=>{"use strict";var x_=No(),eo=zc(),k_={default:eo.noop,noop:eo.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||x_.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||x_.complement(this.primary)},primary:eo.cyan,success:eo.green,danger:eo.magenta,strong:eo.bold,warning:eo.yellow,muted:eo.dim,disabled:eo.gray,dark:eo.dim.gray,underline:eo.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};k_.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(eo.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(eo.visible=t.styles.visible);let e=x_.merge({},k_,t.styles);delete e.merge;for(let r of Object.keys(eo))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>eo[r]});for(let r of Object.keys(eo.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>eo[r]});return e};Che.exports=k_});var Bhe=_((l8t,Ihe)=>{"use strict";var Q_=process.platform==="win32",Wf=zc(),eft=No(),F_={...Wf.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Wf.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Wf.symbols.question,submitted:Wf.symbols.check,cancelled:Wf.symbols.cross},separator:{pending:Wf.symbols.pointerSmall,submitted:Wf.symbols.middot,cancelled:Wf.symbols.middot},radio:{off:Q_?"( )":"\u25EF",on:Q_?"(*)":"\u25C9",disabled:Q_?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};F_.merge=t=>{let e=eft.merge({},Wf.symbols,F_,t.symbols);return delete e.merge,e};Ihe.exports=F_});var Dhe=_((c8t,vhe)=>{"use strict";var tft=whe(),rft=Bhe(),nft=No();vhe.exports=t=>{t.options=nft.merge({},t.options.theme,t.options),t.symbols=rft.merge(t.options),t.styles=tft.merge(t.options)}});var khe=_((She,xhe)=>{"use strict";var Phe=process.env.TERM_PROGRAM==="Apple_Terminal",ift=zc(),R_=No(),Jc=xhe.exports=She,vi="\x1B[",bhe="\x07",T_=!1,Dh=Jc.code={bell:bhe,beep:bhe,beginning:`${vi}G`,down:`${vi}J`,esc:vi,getPosition:`${vi}6n`,hide:`${vi}?25l`,line:`${vi}2K`,lineEnd:`${vi}K`,lineStart:`${vi}1K`,restorePosition:vi+(Phe?"8":"u"),savePosition:vi+(Phe?"7":"s"),screen:`${vi}2J`,show:`${vi}?25h`,up:`${vi}1J`},Og=Jc.cursor={get hidden(){return T_},hide(){return T_=!0,Dh.hide},show(){return T_=!1,Dh.show},forward:(t=1)=>`${vi}${t}C`,backward:(t=1)=>`${vi}${t}D`,nextLine:(t=1)=>`${vi}E`.repeat(t),prevLine:(t=1)=>`${vi}F`.repeat(t),up:(t=1)=>t?`${vi}${t}A`:"",down:(t=1)=>t?`${vi}${t}B`:"",right:(t=1)=>t?`${vi}${t}C`:"",left:(t=1)=>t?`${vi}${t}D`:"",to(t,e){return e?`${vi}${e+1};${t+1}H`:`${vi}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?Og.left(-t):t>0?Og.right(t):"",r+=e<0?Og.up(-e):e>0?Og.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:o,input:a,prompt:n,size:u,value:A}=t;if(o=R_.isPrimitive(o)?String(o):"",a=R_.isPrimitive(a)?String(a):"",A=R_.isPrimitive(A)?String(A):"",u){let p=Jc.cursor.up(u)+Jc.cursor.to(n.length),h=a.length-r;return h>0&&(p+=Jc.cursor.left(h)),p}if(A||e){let p=!a&&o?-o.length:-a.length+r;return e&&(p-=e.length),a===""&&o&&!n.includes(o)&&(p+=o.length),Jc.cursor.move(p)}}},N_=Jc.erase={screen:Dh.screen,up:Dh.up,down:Dh.down,line:Dh.line,lineEnd:Dh.lineEnd,lineStart:Dh.lineStart,lines(t){let e="";for(let r=0;r{if(!e)return N_.line+Og.to(0);let r=n=>[...ift.unstyle(n)].length,o=t.split(/\r?\n/),a=0;for(let n of o)a+=1+Math.floor(Math.max(r(n)-1,0)/e);return(N_.line+Og.prevLine()).repeat(a-1)+N_.line+Og.to(0)}});var jy=_((u8t,Fhe)=>{"use strict";var sft=ve("events"),Qhe=zc(),L_=ghe(),oft=mhe(),aft=Ehe(),lft=Dhe(),Na=No(),Ug=khe(),M_=class t extends sft{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,lft(this),oft(this),this.state=new aft(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=uft(this.options.margin),this.setMaxListeners(0),cft(this)}async keypress(e,r={}){this.keypressed=!0;let o=L_.action(e,L_(e,r),this.options.actions);this.state.keypress=o,this.emit("keypress",e,o),this.emit("state",this.state.clone());let a=this.options[o.action]||this[o.action]||this.dispatch;if(typeof a=="function")return await a.call(this,e,o);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Ug.code.beep)}cursorHide(){this.stdout.write(Ug.cursor.hide()),Na.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Ug.cursor.show())}write(e){e&&(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Ug.cursor.down(e)+Ug.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:o}=this.sections(),{cursor:a,initial:n="",input:u="",value:A=""}=this,p=this.state.size=o.length,h={after:r,cursor:a,initial:n,input:u,prompt:e,size:p,value:A},E=Ug.cursor.restore(h);E&&this.stdout.write(E)}sections(){let{buffer:e,input:r,prompt:o}=this.state;o=Qhe.unstyle(o);let a=Qhe.unstyle(e),n=a.indexOf(o),u=a.slice(0,n),p=a.slice(n).split(` +`),h=p[0],E=p[p.length-1],v=(o+(r?" "+r:"")).length,x=ve.call(this,this.value),this.result=()=>o.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,o){let{options:a,state:n,symbols:u,timers:A}=this,p=A&&A[e];n.timer=p;let h=a[e]||n[e]||u[e],E=r&&r[e]!=null?r[e]:await h;if(E==="")return E;let I=await this.resolve(E,n,r,o);return!I&&r&&r[e]?this.resolve(h,n,r,o):I}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,o=this.state;return o.timer=r,Na.isObject(e)&&(e=e[o.status]||e.pending),Na.hasColor(e)?e:(this.styles[o.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Na.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,o=this.state;o.timer=r;let a=e[o.status]||e.pending||o.separator,n=await this.resolve(a,o);return Na.isObject(n)&&(n=n[o.status]||n.pending),Na.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let o=await this.element("pointer",e,r);if(typeof o=="string"&&Na.hasColor(o))return o;if(o){let a=this.styles,n=this.index===r,u=n?a.primary:h=>h,A=await this.resolve(o[n?"on":"off"]||o,this.state),p=Na.hasColor(A)?A:u(A);return n?p:" ".repeat(A.length)}}async indicator(e,r){let o=await this.element("indicator",e,r);if(typeof o=="string"&&Na.hasColor(o))return o;if(o){let a=this.styles,n=e.enabled===!0,u=n?a.success:a.dark,A=o[n?"on":"off"]||o;return Na.hasColor(A)?A:u(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Na.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return Na.resolve(this,e,...r)}get base(){return t.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Na.height(this.stdout,25)}get width(){return this.options.columns||Na.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,o=[r,e].find(this.isValue.bind(this));return this.isValue(o)?o:this.initial}static get prompt(){return e=>new this(e).run()}};function cft(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],o=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?o.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function uft(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?` +`:" ",o=[];for(let a=0;a<4;a++){let n=r(a);e[a]?o.push(n.repeat(e[a])):o.push("")}return o}Fhe.exports=M_});var Nhe=_((A8t,The)=>{"use strict";var Aft=No(),Rhe={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return Rhe.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};The.exports=(t,e={})=>{let r=Aft.merge({},Rhe,e.roles);return r[t]||r.default}});var V1=_((f8t,Ohe)=>{"use strict";var fft=zc(),pft=jy(),hft=Nhe(),zx=No(),{reorder:O_,scrollUp:gft,scrollDown:dft,isObject:Lhe,swap:mft}=zx,U_=class extends pft{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:o,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Lhe(r)&&(r=Object.keys(r)),Array.isArray(r)?(o!=null&&(this.index=this.findIndex(o)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(o!=null&&(r=o),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let o=[],a=0,n=async(u,A)=>{typeof u=="function"&&(u=await u.call(this)),u instanceof Promise&&(u=await u);for(let p=0;p(this.state.loadingChoices=!1,u))}async toChoice(e,r,o){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=hft(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,zx.define(e,"parent",o),e.level=o?o.level+1:1,e.indent==null&&(e.indent=o?o.indent+" ":e.indent||""),e.path=o?o.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,fft.unstyle(e.message).length));let u={...e};return e.reset=(A=u.input,p=u.value)=>{for(let h of Object.keys(u))e[h]=u[h];e.input=A,e.value=p},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,o){let a=await this.toChoice(e,r,o);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,o){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,o);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(a=>this.toggle(a,r));let o=e.parent;for(;o;){let a=o.choices.filter(n=>this.isDisabled(n));o.enabled=a.every(n=>n.enabled===!0),o=o.parent}return Mhe(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=o=>{let a=Number(o);if(a>this.choices.length-1)return this.alert();let n=this.focused,u=this.choices.find(A=>a===A.index);if(!u.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(u)===-1){let A=O_(this.choices),p=A.indexOf(u);if(n.index>p){let h=A.slice(p,p+this.limit),E=A.filter(I=>!h.includes(I));this.choices=h.concat(E)}else{let h=p-this.limit+1;this.choices=A.slice(h).concat(A.slice(0,h))}}return this.index=this.choices.indexOf(u),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(o=>{let a=this.choices.length,n=this.num,u=(A=!1,p)=>{clearTimeout(this.numberTimeout),A&&(p=r(n)),this.num="",o(p)};if(n==="0"||n.length===1&&+(n+"0")>a)return u(!0);if(Number(n)>a)return u(!1,this.alert());this.numberTimeout=setTimeout(()=>u(!0),this.delay)})}home(){return this.choices=O_(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=O_(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===0?this.alert():e>r&&o===0?this.scrollUp():(this.index=(o-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===r-1?this.alert():e>r&&o===r-1?this.scrollDown():(this.index=(o+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=gft(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=dft(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){mft(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(o=>e[o]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(o=>!this.isDisabled(o));return e.enabled&&r.every(o=>this.isEnabled(o))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((o,a)=>(o[a]=this.find(a,r),o),{})}filter(e,r){let a=typeof e=="function"?e:(A,p)=>[A.name,p].includes(e),u=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?u.map(A=>A[r]):u}find(e,r){if(Lhe(e))return r?e[r]:e;let a=typeof e=="function"?e:(u,A)=>[u.name,A].includes(e),n=this.choices.find(a);if(n)return r?n[r]:n}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(u=>u.newChoice))return this.alert();let{reorder:r,sort:o}=this.options,a=this.multiple===!0,n=this.selected;return n===void 0?this.alert():(Array.isArray(n)&&r!==!1&&o!==!0&&(n=zx.reorder(n)),this.value=a?n.map(u=>u.name):n.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(o=>o.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let o=this.find(r);o&&(this.initial=o.index,this.focus(o,!0))}}}get choices(){return Mhe(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:o}=this,a=e.limit||this._limit||r.limit||o.length;return Math.min(a,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Mhe(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(zx.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let o=r.choices.filter(a=>!t.isDisabled(a));r.enabled=o.every(a=>a.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}Ohe.exports=U_});var Ph=_((p8t,Uhe)=>{"use strict";var yft=V1(),__=No(),H_=class extends yft{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let o=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!__.hasColor(o)&&(o=this.styles.strong(o)),this.resolve(o,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await this.indicator(e,r)+(e.pad||""),u=await this.resolve(e.hint,this.state,e,r);u&&!__.hasColor(u)&&(u=this.styles.muted(u));let A=this.indent(e),p=await this.choiceMessage(e,r),h=()=>[this.margin[3],A+a+n,p,this.margin[1],u].filter(Boolean).join(" ");return e.role==="heading"?h():e.disabled?(__.hasColor(p)||(p=this.styles.disabled(p)),h()):(o&&(p=this.styles.em(p)),h())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(n,u)=>await this.renderChoice(n,u)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let o=this.margin[0]+r.join(` +`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,o].filter(Boolean).join(` +`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,o="",a=await this.header(),n=await this.prefix(),u=await this.separator(),A=await this.message();this.options.promptLine!==!1&&(o=[n,A,u,""].join(" "),this.state.prompt=o);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),I=await this.footer();p&&(o+=p),h&&!o.includes(h)&&(o+=" "+h),e&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,o,E,I].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};Uhe.exports=H_});var Hhe=_((h8t,_he)=>{"use strict";var Eft=Ph(),Cft=(t,e)=>{let r=t.toLowerCase();return o=>{let n=o.toLowerCase().indexOf(r),u=e(o.slice(n,n+r.length));return n>=0?o.slice(0,n)+u+o.slice(n+r.length):o}},q_=class extends Eft{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:o}=this.state;return this.input=o.slice(0,r)+e+o.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let o=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(o))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=Cft(this.input,e),o=this.choices;this.choices=o.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=o}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};_he.exports=q_});var G_=_((g8t,qhe)=>{"use strict";var j_=No();qhe.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:o="",pos:a,showCursor:n=!0,color:u}=e,A=u||t.styles.placeholder,p=j_.inverse(t.styles.primary),h=R=>p(t.styles.black(R)),E=r,I=" ",v=h(I);if(t.blink&&t.blink.off===!0&&(h=R=>R,v=""),n&&a===0&&o===""&&r==="")return h(I);if(n&&a===0&&(r===o||r===""))return h(o[0])+A(o.slice(1));o=j_.isPrimitive(o)?`${o}`:"",r=j_.isPrimitive(r)?`${r}`:"";let x=o&&o.startsWith(r)&&o!==r,C=x?h(o[r.length]):v;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),C=""),n===!1&&(C=""),x){let R=t.styles.unstyle(E+C);return E+C+A(o.slice(R.length))}return E+C}});var Jx=_((d8t,jhe)=>{"use strict";var wft=zc(),Ift=Ph(),Bft=G_(),Y_=class extends Ift{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:o,input:a}=r;return r.value=r.input=a.slice(0,o)+e+a.slice(o),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:o}=e;return e.value=e.input=o.slice(0,r-1)+o.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:o}=e;if(o[r]===void 0)return this.alert();let a=`${o}`.slice(0,r)+`${o}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:o}=e;return r&&r.startsWith(o)&&o!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let o=await this.resolve(e.separator,this.state,e,r)||":";return o?" "+this.styles.disabled(o):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:o,styles:a}=this,{cursor:n,initial:u="",name:A,hint:p,input:h=""}=e,{muted:E,submitted:I,primary:v,danger:x}=a,C=p,R=this.index===r,L=e.validate||(()=>!0),U=await this.choiceSeparator(e,r),z=e.message;this.align==="right"&&(z=z.padStart(this.longest+1," ")),this.align==="left"&&(z=z.padEnd(this.longest+1," "));let te=this.values[A]=h||u,ae=h?"success":"dark";await L.call(e,te,this.state)!==!0&&(ae="danger");let le=a[ae],ce=le(await this.indicator(e,r))+(e.pad||""),Ce=this.indent(e),de=()=>[Ce,ce,z+U,h,C].filter(Boolean).join(" ");if(o.submitted)return z=wft.unstyle(z),h=I(h),C="",de();if(e.format)h=await e.format.call(this,h,e,r);else{let Be=this.styles.muted;h=Bft(this,{input:h,initial:u,pos:n,showCursor:R,color:Be})}return this.isValue(h)||(h=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[A]=await e.result.call(this,te,e,r)),R&&(z=v(z)),e.error?h+=(h?" ":"")+x(e.error.trim()):e.hint&&(h+=(h?" ":"")+E(e.hint.trim())),de()}async submit(){return this.value=this.values,super.base.submit.call(this)}};jhe.exports=Y_});var W_=_((m8t,Yhe)=>{"use strict";var vft=Jx(),Dft=()=>{throw new Error("expected prompt to have a custom authenticate method")},Ghe=(t=Dft)=>{class e extends vft{constructor(o){super(o)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(o){return Ghe(o)}}return e};Yhe.exports=Ghe()});var Vhe=_((y8t,Khe)=>{"use strict";var Pft=W_();function bft(t,e){return t.username===this.options.username&&t.password===this.options.password}var Whe=(t=bft)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(o){return this.options.showPassword?o:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(o.length))}}];class r extends Pft.create(t){constructor(a){super({...a,choices:e})}static create(a){return Whe(a)}}return r};Khe.exports=Whe()});var Xx=_((E8t,zhe)=>{"use strict";var Sft=jy(),{isPrimitive:xft,hasColor:kft}=No(),K_=class extends Sft{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:o}=this;return o.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return xft(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return kft(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=this.styles.muted(this.default),A=[o,n,u,a].filter(Boolean).join(" ");this.state.prompt=A;let p=await this.header(),h=this.value=this.cast(e),E=await this.format(h),I=await this.error()||await this.hint(),v=await this.footer();I&&!A.includes(I)&&(E+=" "+I),A+=" "+E,this.clear(r),this.write([p,A,v].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};zhe.exports=K_});var Xhe=_((C8t,Jhe)=>{"use strict";var Qft=Xx(),V_=class extends Qft{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Jhe.exports=V_});var $he=_((w8t,Zhe)=>{"use strict";var Fft=Ph(),Rft=Jx(),Gy=Rft.prototype,z_=class extends Fft{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let o=this.focused,a=o.parent||{};return!o.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():Gy.dispatch.call(this,e,r)}append(e,r){return Gy.append.call(this,e,r)}delete(e,r){return Gy.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Gy.next.call(this):super.next()}prev(){return this.focused.editable?Gy.prev.call(this):super.prev()}async indicator(e,r){let o=e.indicator||"",a=e.editable?o:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?Gy.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let o=r.parent?this.value[r.parent.name]:this.value;if(r.editable?o=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(o=r.enabled===!0),e=await r.validate(o,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Zhe.exports=z_});var _g=_((I8t,e0e)=>{"use strict";var Tft=jy(),Nft=G_(),{isPrimitive:Lft}=No(),J_=class extends Tft{constructor(e){super(e),this.initial=Lft(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let o=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!o||o.name!=="return")?this.append(` +`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:o}=this.state;this.input=`${o}`.slice(0,r)+e+`${o}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),o=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=o,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):Nft(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),o=await this.separator(),a=await this.message(),n=[r,a,o].filter(Boolean).join(" ");this.state.prompt=n;let u=await this.header(),A=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!A.includes(p)&&(A+=" "+p),n+=" "+A,this.clear(e),this.write([u,n,h].filter(Boolean).join(` +`)),this.restore()}};e0e.exports=J_});var r0e=_((B8t,t0e)=>{"use strict";var Mft=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),Zx=t=>Mft(t).filter(Boolean);t0e.exports=(t,e={},r="")=>{let{past:o=[],present:a=""}=e,n,u;switch(t){case"prev":case"undo":return n=o.slice(0,o.length-1),u=o[o.length-1]||"",{past:Zx([r,...n]),present:u};case"next":case"redo":return n=o.slice(1),u=o[0]||"",{past:Zx([...n,r]),present:u};case"save":return{past:Zx([...o,r]),present:""};case"remove":return u=Zx(o.filter(A=>A!==r)),a="",u.length&&(a=u.pop()),{past:u,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var Z_=_((v8t,i0e)=>{"use strict";var Oft=_g(),n0e=r0e(),X_=class extends Oft{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let o=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:o},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=n0e(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=n0e("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};i0e.exports=X_});var o0e=_((D8t,s0e)=>{"use strict";var Uft=_g(),$_=class extends Uft{format(){return""}};s0e.exports=$_});var l0e=_((P8t,a0e)=>{"use strict";var _ft=_g(),e8=class extends _ft{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};a0e.exports=e8});var u0e=_((b8t,c0e)=>{"use strict";var Hft=Ph(),t8=class extends Hft{constructor(e){super({...e,multiple:!0})}};c0e.exports=t8});var n8=_((S8t,A0e)=>{"use strict";var qft=_g(),r8=class extends qft{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,o=this.toNumber(this.input);return o>this.max+r?this.alert():(this.input=`${o+r}`,this.render())}down(e){let r=e||this.minor,o=this.toNumber(this.input);return othis.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};A0e.exports=r8});var p0e=_((x8t,f0e)=>{f0e.exports=n8()});var g0e=_((k8t,h0e)=>{"use strict";var jft=_g(),i8=class extends jft{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};h0e.exports=i8});var y0e=_((Q8t,m0e)=>{"use strict";var Gft=zc(),Yft=V1(),d0e=No(),s8=class extends Yft{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` + `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((o,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let o=0;o=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(o=>` ${o.name} - ${o.message}`)].map(o=>this.styles.muted(o)).join(` +`)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let o=this.scaleLength-r.join("").length,a=Math.round(o/(r.length-1)),u=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+u}scaleIndicator(e,r,o){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,o);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let o=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return o.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!d0e.hasColor(n)&&(n=this.styles.muted(n));let u=C=>this.margin[3]+C.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),E=await this.renderScale(e,r),I=this.margin[1]+this.margin[3];this.scaleLength=Gft.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-I.length);let x=d0e.wordWrap(h,{width:this.widths[0],newline:A}).split(` +`).map(C=>u(C)+this.margin[1]);return o&&(E=this.styles.info(E),x=x.map(C=>this.styles.info(C))),x[0]+=E,this.linebreak&&x.push(""),[p+a,x.join(` +`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),o=await this.renderScaleHeading();return this.margin[0]+[o,...r.map(a=>a.join(" "))].join(` +`)}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u="";this.options.promptLine!==!1&&(u=[o,n,a,""].join(" "),this.state.prompt=u);let A=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),I=await this.renderChoices(),v=await this.footer(),x=this.emptyError;p&&(u+=p),E&&!u.includes(E)&&(u+=" "+E),e&&!p&&!I.trim()&&this.multiple&&x!=null&&(u+=this.styles.danger(x)),this.clear(r),this.write([A,u,h,I,v].filter(Boolean).join(` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};m0e.exports=s8});var w0e=_((F8t,C0e)=>{"use strict";var E0e=zc(),Wft=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",a8=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=Wft(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Kft=async(t={},e={},r=o=>o)=>{let o=new Set,a=t.fields||[],n=t.template,u=[],A=[],p=[],h=1;typeof n=="function"&&(n=await n());let E=-1,I=()=>n[++E],v=()=>n[E+1],x=C=>{C.line=h,u.push(C)};for(x({type:"bos",value:""});Eae.name===U.key);U.field=a.find(ae=>ae.name===U.key),te||(te=new a8(U),A.push(te)),te.lines.push(U.line-1);continue}let R=u[u.length-1];R.type==="text"&&R.line===h?R.value+=C:x({type:"text",value:C})}return x({type:"eos",value:""}),{input:n,tabstops:u,unique:o,keys:p,items:A}};C0e.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),o={...e.values,...e.initial},{tabstops:a,items:n,keys:u}=await Kft(e,o),A=o8("result",t,e),p=o8("format",t,e),h=o8("validate",t,e,!0),E=t.isValue.bind(t);return async(I={},v=!1)=>{let x=0;I.required=r,I.items=n,I.keys=u,I.output="";let C=async(z,te,ae,le)=>{let ce=await h(z,te,ae,le);return ce===!1?"Invalid field "+ae.name:ce};for(let z of a){let te=z.value,ae=z.key;if(z.type!=="template"){te&&(I.output+=te);continue}if(z.type==="template"){let le=n.find(Ee=>Ee.name===ae);e.required===!0&&I.required.add(le.name);let ce=[le.input,I.values[le.value],le.value,te].find(E),de=(le.field||{}).message||z.inner;if(v){let Ee=await C(I.values[ae],I,le,x);if(Ee&&typeof Ee=="string"||Ee===!1){I.invalid.set(ae,Ee);continue}I.invalid.delete(ae);let g=await A(I.values[ae],I,le,x);I.output+=E0e.unstyle(g);continue}le.placeholder=!1;let Be=te;te=await p(te,I,le,x),ce!==te?(I.values[ae]=ce,te=t.styles.typing(ce),I.missing.delete(de)):(I.values[ae]=void 0,ce=`<${de}>`,te=t.styles.primary(ce),le.placeholder=!0,I.required.has(ae)&&I.missing.add(de)),I.missing.has(de)&&I.validating&&(te=t.styles.warning(ce)),I.invalid.has(ae)&&I.validating&&(te=t.styles.danger(ce)),x===I.index&&(Be!==te?te=t.styles.underline(te):te=t.styles.heading(E0e.unstyle(te))),x++}te&&(I.output+=te)}let R=I.output.split(` +`).map(z=>" "+z),L=n.length,U=0;for(let z of n)I.invalid.has(z.name)&&z.lines.forEach(te=>{R[te][0]===" "&&(R[te]=I.styles.danger(I.symbols.bullet)+R[te].slice(1))}),t.isValue(I.values[z.name])&&U++;return I.completed=(U/L*100).toFixed(0),I.output=R.join(` +`),I.output}};function o8(t,e,r,o){return(a,n,u,A)=>typeof u.field[t]=="function"?u.field[t].call(e,a,n,u,A):[o,a].find(p=>e.isValue(p))}});var B0e=_((R8t,I0e)=>{"use strict";var Vft=zc(),zft=w0e(),Jft=jy(),l8=class extends Jft{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await zft(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let o=this.getItem(),a=o.input.slice(0,this.cursor),n=o.input.slice(this.cursor);this.input=o.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),o=e.input.slice(0,this.cursor-1);this.input=e.input=`${o}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:o,size:a}=this.state,n=[this.options.newline,` +`].find(z=>z!=null),u=await this.prefix(),A=await this.separator(),p=await this.message(),h=[u,p,A].filter(Boolean).join(" ");this.state.prompt=h;let E=await this.header(),I=await this.error()||"",v=await this.hint()||"",x=o?"":await this.interpolate(this.state),C=this.state.key=r[e]||"",R=await this.format(C),L=await this.footer();R&&(h+=" "+R),v&&!R&&this.state.completed===0&&(h+=" "+v),this.clear(a);let U=[E,h,x,L,I.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:o,index:a}=this.state,n=r.find(u=>u.name===o[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:o,values:a}=this.state;if(e.size){let A="";for(let[p,h]of e)A+=`Invalid ${p}: ${h} +`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let u=Vft.unstyle(o).split(` +`).map(A=>A.slice(1)).join(` +`);return this.value={values:a,result:u},super.submit()}};I0e.exports=l8});var D0e=_((T8t,v0e)=>{"use strict";var Xft="(Use + to sort)",Zft=Ph(),c8=class extends Zft{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,Xft].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let o=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+o:n+o}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};v0e.exports=c8});var b0e=_((N8t,P0e)=>{"use strict";var $ft=V1(),u8=class extends $ft{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(o=>this.styles.muted(o)),this.state.header=r.join(` + `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let o of r)o.scale=ept(5,this.options),o.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],o=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!o,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=this.term==="Hyper",n=a?9:8,u=a?"":" ",A=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=te=>(te?this.styles.success("\u25C9"):"\u25EF")+u,E=r+1+".",I=o?this.styles.heading:this.styles.noop,v=await this.resolve(e.message,this.state,e,r),x=this.indent(e),C=x+e.scale.map((te,ae)=>h(ae===e.scaleIdx)).join(A),R=te=>te===e.scaleIdx?I(te):te,L=x+e.scale.map((te,ae)=>R(ae)).join(p),U=()=>[E,v].filter(Boolean).join(" "),z=()=>[U(),C,L," "].filter(Boolean).join(` +`);return o&&(C=this.styles.cyan(C),L=this.styles.cyan(L)),z()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(o,a)=>await this.renderChoice(o,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` +`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=[o,n,a].filter(Boolean).join(" ");this.state.prompt=u;let A=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),I=await this.footer();(p||!h)&&(u+=" "+p),h&&!u.includes(h)&&(u+=" "+h),e&&!p&&!E&&this.multiple&&this.type!=="form"&&(u+=this.styles.danger(this.emptyError)),this.clear(r),this.write([u,A,E,I].filter(Boolean).join(` +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function ept(t,e={}){if(Array.isArray(e.scale))return e.scale.map(o=>({...o}));let r=[];for(let o=1;o{S0e.exports=Z_()});var Q0e=_((M8t,k0e)=>{"use strict";var tpt=Xx(),A8=class extends tpt{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=o=>this.styles.primary.underline(o);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),o=await this.prefix(),a=await this.separator(),n=await this.message(),u=await this.format(),A=await this.error()||await this.hint(),p=await this.footer(),h=[o,n,a,u].join(" ");this.state.prompt=h,A&&!h.includes(A)&&(h+=" "+A),this.clear(e),this.write([r,h,p].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};k0e.exports=A8});var R0e=_((O8t,F0e)=>{"use strict";var rpt=Ph(),f8=class extends rpt{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let o=await super.toChoices(e,r);if(o.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>o.length)throw new Error("Please specify the index of the correct answer from the list of choices");return o}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};F0e.exports=f8});var N0e=_(p8=>{"use strict";var T0e=No(),ps=(t,e)=>{T0e.defineExport(p8,t,e),T0e.defineExport(p8,t.toLowerCase(),e)};ps("AutoComplete",()=>Hhe());ps("BasicAuth",()=>Vhe());ps("Confirm",()=>Xhe());ps("Editable",()=>$he());ps("Form",()=>Jx());ps("Input",()=>Z_());ps("Invisible",()=>o0e());ps("List",()=>l0e());ps("MultiSelect",()=>u0e());ps("Numeral",()=>p0e());ps("Password",()=>g0e());ps("Scale",()=>y0e());ps("Select",()=>Ph());ps("Snippet",()=>B0e());ps("Sort",()=>D0e());ps("Survey",()=>b0e());ps("Text",()=>x0e());ps("Toggle",()=>Q0e());ps("Quiz",()=>R0e())});var M0e=_((_8t,L0e)=>{L0e.exports={ArrayPrompt:V1(),AuthPrompt:W_(),BooleanPrompt:Xx(),NumberPrompt:n8(),StringPrompt:_g()}});var J1=_((H8t,U0e)=>{"use strict";var O0e=ve("assert"),g8=ve("events"),bh=No(),Xc=class extends g8{constructor(e,r){super(),this.options=bh.merge({},e),this.answers={...r}}register(e,r){if(bh.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}O0e.equal(typeof r,"function","expected a function");let o=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[o]=r:this.prompts[o]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(bh.merge({},this.options,r))}catch(o){return Promise.reject(o)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=bh.merge({},this.options,e),{type:o,name:a}=e,{set:n,get:u}=bh;if(typeof o=="function"&&(o=await o.call(this,e,this.answers)),!o)return this.answers[a];O0e(this.prompts[o],`Prompt "${o}" is not registered`);let A=new this.prompts[o](r),p=u(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",E=>{this.emit("answer",a,E,A),n(this.answers,a,E)});let h=A.emit.bind(A);return A.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit("prompt",A,this),r.autofill&&p!=null?(A.value=A.input=p,r.autofill==="show"&&await A.submit()):p=A.value=await A.run(),p}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||jy()}static get prompts(){return N0e()}static get types(){return M0e()}static get prompt(){let e=(r,...o)=>{let a=new this(...o),n=a.emit.bind(a);return a.emit=(...u)=>(e.emit(...u),n(...u)),a.prompt(r)};return bh.mixinEmitter(e,new g8),e}};bh.mixinEmitter(Xc,new g8);var h8=Xc.prompts;for(let t of Object.keys(h8)){let e=t.toLowerCase(),r=o=>new h8[t](o).run();Xc.prompt[e]=r,Xc[e]=r,Xc[t]||Reflect.defineProperty(Xc,t,{get:()=>h8[t]})}var z1=t=>{bh.defineExport(Xc,t,()=>Xc.types[t])};z1("ArrayPrompt");z1("AuthPrompt");z1("BooleanPrompt");z1("NumberPrompt");z1("StringPrompt");U0e.exports=Xc});var e2=_((BHt,W0e)=>{var lpt=Ux();function cpt(t,e,r){var o=t==null?void 0:lpt(t,e);return o===void 0?r:o}W0e.exports=cpt});var z0e=_((xHt,V0e)=>{function upt(t,e){for(var r=-1,o=t==null?0:t.length;++r{var Apt=Ag(),fpt=LP();function ppt(t,e){return t&&Apt(e,fpt(e),t)}J0e.exports=ppt});var $0e=_((QHt,Z0e)=>{var hpt=Ag(),gpt=bm();function dpt(t,e){return t&&hpt(e,gpt(e),t)}Z0e.exports=dpt});var tge=_((FHt,ege)=>{var mpt=Ag(),ypt=kP();function Ept(t,e){return mpt(t,ypt(t),e)}ege.exports=Ept});var w8=_((RHt,rge)=>{var Cpt=xP(),wpt=HP(),Ipt=kP(),Bpt=MN(),vpt=Object.getOwnPropertySymbols,Dpt=vpt?function(t){for(var e=[];t;)Cpt(e,Ipt(t)),t=wpt(t);return e}:Bpt;rge.exports=Dpt});var ige=_((THt,nge)=>{var Ppt=Ag(),bpt=w8();function Spt(t,e){return Ppt(t,bpt(t),e)}nge.exports=Spt});var I8=_((NHt,sge)=>{var xpt=LN(),kpt=w8(),Qpt=bm();function Fpt(t){return xpt(t,Qpt,kpt)}sge.exports=Fpt});var age=_((LHt,oge)=>{var Rpt=Object.prototype,Tpt=Rpt.hasOwnProperty;function Npt(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&Tpt.call(t,"index")&&(r.index=t.index,r.input=t.input),r}oge.exports=Npt});var cge=_((MHt,lge)=>{var Lpt=UP();function Mpt(t,e){var r=e?Lpt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}lge.exports=Mpt});var Age=_((OHt,uge)=>{var Opt=/\w*$/;function Upt(t){var e=new t.constructor(t.source,Opt.exec(t));return e.lastIndex=t.lastIndex,e}uge.exports=Upt});var dge=_((UHt,gge)=>{var fge=lg(),pge=fge?fge.prototype:void 0,hge=pge?pge.valueOf:void 0;function _pt(t){return hge?Object(hge.call(t)):{}}gge.exports=_pt});var yge=_((_Ht,mge)=>{var Hpt=UP(),qpt=cge(),jpt=Age(),Gpt=dge(),Ypt=XN(),Wpt="[object Boolean]",Kpt="[object Date]",Vpt="[object Map]",zpt="[object Number]",Jpt="[object RegExp]",Xpt="[object Set]",Zpt="[object String]",$pt="[object Symbol]",eht="[object ArrayBuffer]",tht="[object DataView]",rht="[object Float32Array]",nht="[object Float64Array]",iht="[object Int8Array]",sht="[object Int16Array]",oht="[object Int32Array]",aht="[object Uint8Array]",lht="[object Uint8ClampedArray]",cht="[object Uint16Array]",uht="[object Uint32Array]";function Aht(t,e,r){var o=t.constructor;switch(e){case eht:return Hpt(t);case Wpt:case Kpt:return new o(+t);case tht:return qpt(t,r);case rht:case nht:case iht:case sht:case oht:case aht:case lht:case cht:case uht:return Ypt(t,r);case Vpt:return new o;case zpt:case Zpt:return new o(t);case Jpt:return jpt(t);case Xpt:return new o;case $pt:return Gpt(t)}}mge.exports=Aht});var Cge=_((HHt,Ege)=>{var fht=PI(),pht=Ju(),hht="[object Map]";function ght(t){return pht(t)&&fht(t)==hht}Ege.exports=ght});var vge=_((qHt,Bge)=>{var dht=Cge(),mht=FP(),wge=RP(),Ige=wge&&wge.isMap,yht=Ige?mht(Ige):dht;Bge.exports=yht});var Pge=_((jHt,Dge)=>{var Eht=PI(),Cht=Ju(),wht="[object Set]";function Iht(t){return Cht(t)&&Eht(t)==wht}Dge.exports=Iht});var kge=_((GHt,xge)=>{var Bht=Pge(),vht=FP(),bge=RP(),Sge=bge&&bge.isSet,Dht=Sge?vht(Sge):Bht;xge.exports=Dht});var B8=_((YHt,Tge)=>{var Pht=bP(),bht=z0e(),Sht=qP(),xht=X0e(),kht=$0e(),Qht=JN(),Fht=_P(),Rht=tge(),Tht=ige(),Nht=HN(),Lht=I8(),Mht=PI(),Oht=age(),Uht=yge(),_ht=ZN(),Hht=Hl(),qht=wI(),jht=vge(),Ght=sl(),Yht=kge(),Wht=LP(),Kht=bm(),Vht=1,zht=2,Jht=4,Qge="[object Arguments]",Xht="[object Array]",Zht="[object Boolean]",$ht="[object Date]",e0t="[object Error]",Fge="[object Function]",t0t="[object GeneratorFunction]",r0t="[object Map]",n0t="[object Number]",Rge="[object Object]",i0t="[object RegExp]",s0t="[object Set]",o0t="[object String]",a0t="[object Symbol]",l0t="[object WeakMap]",c0t="[object ArrayBuffer]",u0t="[object DataView]",A0t="[object Float32Array]",f0t="[object Float64Array]",p0t="[object Int8Array]",h0t="[object Int16Array]",g0t="[object Int32Array]",d0t="[object Uint8Array]",m0t="[object Uint8ClampedArray]",y0t="[object Uint16Array]",E0t="[object Uint32Array]",ri={};ri[Qge]=ri[Xht]=ri[c0t]=ri[u0t]=ri[Zht]=ri[$ht]=ri[A0t]=ri[f0t]=ri[p0t]=ri[h0t]=ri[g0t]=ri[r0t]=ri[n0t]=ri[Rge]=ri[i0t]=ri[s0t]=ri[o0t]=ri[a0t]=ri[d0t]=ri[m0t]=ri[y0t]=ri[E0t]=!0;ri[e0t]=ri[Fge]=ri[l0t]=!1;function ek(t,e,r,o,a,n){var u,A=e&Vht,p=e&zht,h=e&Jht;if(r&&(u=a?r(t,o,a,n):r(t)),u!==void 0)return u;if(!Ght(t))return t;var E=Hht(t);if(E){if(u=Oht(t),!A)return Fht(t,u)}else{var I=Mht(t),v=I==Fge||I==t0t;if(qht(t))return Qht(t,A);if(I==Rge||I==Qge||v&&!a){if(u=p||v?{}:_ht(t),!A)return p?Tht(t,kht(u,t)):Rht(t,xht(u,t))}else{if(!ri[I])return a?t:{};u=Uht(t,I,A)}}n||(n=new Pht);var x=n.get(t);if(x)return x;n.set(t,u),Yht(t)?t.forEach(function(L){u.add(ek(L,e,r,L,t,n))}):jht(t)&&t.forEach(function(L,U){u.set(U,ek(L,e,r,U,t,n))});var C=h?p?Lht:Nht:p?Kht:Wht,R=E?void 0:C(t);return bht(R||t,function(L,U){R&&(U=L,L=t[U]),Sht(u,U,ek(L,e,r,U,t,n))}),u}Tge.exports=ek});var v8=_((WHt,Nge)=>{var C0t=B8(),w0t=1,I0t=4;function B0t(t){return C0t(t,w0t|I0t)}Nge.exports=B0t});var D8=_((KHt,Lge)=>{var v0t=g_();function D0t(t,e,r){return t==null?t:v0t(t,e,r)}Lge.exports=D0t});var Hge=_(($Ht,_ge)=>{var P0t=Object.prototype,b0t=P0t.hasOwnProperty;function S0t(t,e){return t!=null&&b0t.call(t,e)}_ge.exports=S0t});var jge=_((e6t,qge)=>{var x0t=Hge(),k0t=d_();function Q0t(t,e){return t!=null&&k0t(t,e,x0t)}qge.exports=Q0t});var Yge=_((t6t,Gge)=>{function F0t(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}Gge.exports=F0t});var Kge=_((r6t,Wge)=>{var R0t=Ux(),T0t=oU();function N0t(t,e){return e.length<2?t:R0t(t,T0t(e,0,-1))}Wge.exports=N0t});var b8=_((n6t,Vge)=>{var L0t=Mg(),M0t=Yge(),O0t=Kge(),U0t=Ly();function _0t(t,e){return e=L0t(e,t),t=O0t(t,e),t==null||delete t[U0t(M0t(e))]}Vge.exports=_0t});var S8=_((i6t,zge)=>{var H0t=b8();function q0t(t,e){return t==null?!0:H0t(t,e)}zge.exports=q0t});var ede=_((R6t,Y0t)=>{Y0t.exports={name:"@yarnpkg/cli",version:"4.5.0",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^4.0.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var M8=_((uGt,fde)=>{"use strict";fde.exports=function(e,r){r===!0&&(r=0);var o="";if(typeof e=="string")try{o=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(o=e.protocol);var a=o.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var hde=_((AGt,pde)=>{"use strict";var Agt=M8();function fgt(t){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:t,query:{},parse_failed:!1};try{var r=new URL(t);e.protocols=Agt(r),e.protocol=e.protocols[0],e.port=r.port,e.resource=r.hostname,e.host=r.host,e.user=r.username||"",e.password=r.password||"",e.pathname=r.pathname,e.hash=r.hash.slice(1),e.search=r.search.slice(1),e.href=r.href,e.query=Object.fromEntries(r.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=t,e.query={},e.parse_failed=!0}return e}pde.exports=fgt});var mde=_((fGt,dde)=>{"use strict";var pgt=hde();function hgt(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var ggt=hgt(pgt),dgt="text/plain",mgt="us-ascii",gde=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),ygt=(t,{stripHash:e})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:o,data:a,hash:n}=r.groups,u=o.split(";");n=e?"":n;let A=!1;u[u.length-1]==="base64"&&(u.pop(),A=!0);let p=(u.shift()||"").toLowerCase(),E=[...u.map(I=>{let[v,x=""]=I.split("=").map(C=>C.trim());return v==="charset"&&(x=x.toLowerCase(),x===mgt)?"":`${v}${x?`=${x}`:""}`}).filter(Boolean)];return A&&E.push("base64"),(E.length>0||p&&p!==dgt)&&E.unshift(p),`data:${E.join(";")},${A?a.trim():a}${n?`#${n}`:""}`};function Egt(t,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},t=t.trim(),/^data:/i.test(t))return ygt(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash?a.hash="":e.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let u=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,p="";for(;;){let E=u.exec(a.pathname);if(!E)break;let I=E[0],v=E.index,x=a.pathname.slice(A,v);p+=x.replace(/\/{2,}/g,"/"),p+=I,A=v+I.length}let h=a.pathname.slice(A,a.pathname.length);p+=h.replace(/\/{2,}/g,"/"),a.pathname=p}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let u=a.pathname.split("/"),A=u[u.length-1];gde(A,e.removeDirectoryIndex)&&(u=u.slice(0,-1),a.pathname=u.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let u of[...a.searchParams.keys()])gde(u,e.removeQueryParameters)&&a.searchParams.delete(u);if(e.removeQueryParameters===!0&&(a.search=""),e.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let n=t;return t=a.toString(),!e.removeSingleSlash&&a.pathname==="/"&&!n.endsWith("/")&&a.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t}var O8=(t,e=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,o=n=>{let u=new Error(n);throw u.subject_url=t,u};(typeof t!="string"||!t.trim())&&o("Invalid url."),t.length>O8.MAX_INPUT_LENGTH&&o("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),t=Egt(t,e));let a=ggt.default(t);if(a.parse_failed){let n=a.href.match(r);n?(a.protocols=["ssh"],a.protocol="ssh",a.resource=n[2],a.host=n[2],a.user=n[1],a.pathname=`/${n[3]}`,a.parse_failed=!1):o("URL parsing failed.")}return a};O8.MAX_INPUT_LENGTH=2048;dde.exports=O8});var Cde=_((pGt,Ede)=>{"use strict";var Cgt=M8();function yde(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=Cgt(t);if(t=t.substring(t.indexOf("://")+3),yde(e))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!t.match(r)&&t.indexOf("@"){"use strict";var wgt=mde(),wde=Cde();function Igt(t){var e=wgt(t);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),wde(e.protocols)||e.protocols.length===0&&wde(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Ide.exports=Igt});var Dde=_((gGt,vde)=>{"use strict";var Bgt=Bde();function U8(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(t)&&(t="https://github.com/"+t);var r=Bgt(t),o=r.resource.split("."),a=null;switch(r.toString=function(L){return U8.stringify(this,L)},r.source=o.length>2?o.slice(1-o.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=o[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var n=a.length-1;if(a.length>=2){var u=a.indexOf("-",2),A=a.indexOf("blob",2),p=a.indexOf("tree",2),h=a.indexOf("commit",2),E=a.indexOf("src",2),I=a.indexOf("raw",2),v=a.indexOf("edit",2);n=u>0?u-1:A>0?A-1:p>0?p-1:h>0?h-1:E>0?E-1:I>0?I-1:v>0?v-1:n,r.owner=a.slice(0,n).join("/"),r.name=a[n],h&&(r.commit=a[n+2])}r.ref="",r.filepathtype="",r.filepath="";var x=a.length>n&&a[n+1]==="-"?n+1:n;a.length>x+2&&["raw","src","blob","tree","edit"].indexOf(a[x+1])>=0&&(r.filepathtype=a[x+1],r.ref=a[x+2],a.length>x+3&&(r.filepath=a.slice(x+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var C=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,R=C.exec(r.pathname);return R!=null&&(r.source="bitbucket-server",R[1]==="users"?r.owner="~"+R[2]:r.owner=R[2],r.organization=r.owner,r.name=R[3],a=R[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}U8.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",o=t.user||"git",a=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+o+"@"+t.resource+r+"/"+t.full_name+a:o+"@"+t.resource+":"+t.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+o+"@"+t.resource+r+"/"+t.full_name+a;case"http":case"https":var n=t.token?vgt(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+n+t.resource+r+"/"+Dgt(t)+a;default:return t.href}};function vgt(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}function Dgt(t){switch(t.source){case"bitbucket-server":return"scm/"+t.full_name;default:return""+t.full_name}}vde.exports=U8});var Hde=_((V9t,_de)=>{var Lgt=xS(),Mgt=_P(),Ogt=Hl(),Ugt=Ym(),_gt=h_(),Hgt=Ly(),qgt=C1();function jgt(t){return Ogt(t)?Lgt(t,Hgt):Ugt(t)?[t]:Mgt(_gt(qgt(t)))}_de.exports=jgt});function Kgt(t,e){return e===1&&Wgt.has(t[0])}function a2(t){let e=Array.isArray(t)?t:(0,Gde.default)(t);return e.map((o,a)=>Ggt.test(o)?`[${o}]`:Ygt.test(o)&&!Kgt(e,a)?`.${o}`:`[${JSON.stringify(o)}]`).join("").replace(/^\./,"")}function Vgt(t,e){let r=[];if(e.methodName!==null&&r.push(pe.pretty(t,e.methodName,pe.Type.CODE)),e.file!==null){let o=[];o.push(pe.pretty(t,e.file,pe.Type.PATH)),e.line!==null&&(o.push(pe.pretty(t,e.line,pe.Type.NUMBER)),e.column!==null&&o.push(pe.pretty(t,e.column,pe.Type.NUMBER))),r.push(`(${o.join(pe.pretty(t,":","grey"))})`)}return r.join(" ")}function ik(t,{manifestUpdates:e,reportedErrors:r},{fix:o}={}){let a=new Map,n=new Map,u=[...r.keys()].map(A=>[A,new Map]);for(let[A,p]of[...u,...e]){let h=r.get(A)?.map(x=>({text:x,fixable:!1}))??[],E=!1,I=t.getWorkspaceByCwd(A),v=I.manifest.exportTo({});for(let[x,C]of p){if(C.size>1){let R=[...C].map(([L,U])=>{let z=pe.pretty(t.configuration,L,pe.Type.INSPECT),te=U.size>0?Vgt(t.configuration,U.values().next().value):null;return te!==null?` +${z} at ${te}`:` +${z}`}).join("");h.push({text:`Conflict detected in constraint targeting ${pe.pretty(t.configuration,x,pe.Type.CODE)}; conflicting values are:${R}`,fixable:!1})}else{let[[R]]=C,L=(0,qde.default)(v,x);if(JSON.stringify(L)===JSON.stringify(R))continue;if(!o){let U=typeof L>"u"?`Missing field ${pe.pretty(t.configuration,x,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,R,pe.Type.INSPECT)}`:typeof R>"u"?`Extraneous field ${pe.pretty(t.configuration,x,pe.Type.CODE)} currently set to ${pe.pretty(t.configuration,L,pe.Type.INSPECT)}`:`Invalid field ${pe.pretty(t.configuration,x,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,R,pe.Type.INSPECT)}, found ${pe.pretty(t.configuration,L,pe.Type.INSPECT)}`;h.push({text:U,fixable:!0});continue}typeof R>"u"?(0,Yde.default)(v,x):(0,jde.default)(v,x,R),E=!0}E&&a.set(I,v)}h.length>0&&n.set(I,h)}return{changedWorkspaces:a,remainingErrors:n}}function Wde(t,{configuration:e}){let r={children:[]};for(let[o,a]of t){let n=[];for(let A of a){let p=A.text.split(/\n/);A.fixable&&(p[0]=`${pe.pretty(e,"\u2699","gray")} ${p[0]}`),n.push({value:pe.tuple(pe.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:pe.tuple(pe.Type.NO_HINT,h)}))})}let u={value:pe.tuple(pe.Type.LOCATOR,o.anchoredLocator),children:He.sortMap(n,A=>A.value[1])};r.children.push(u)}return r.children=He.sortMap(r.children,o=>o.value[1]),r}var qde,jde,Gde,Yde,QE,Ggt,Ygt,Wgt,l2=Et(()=>{Ge();qde=Ze(e2()),jde=Ze(D8()),Gde=Ze(Hde()),Yde=Ze(S8()),QE=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let o=Object.hasOwn(e,r)?e[r]:void 0;if(typeof o>"u")continue;He.getArrayWithDefault(this.indexes[r],o).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let o=[],a;for(let[u,A]of r){let p=u,h=Object.hasOwn(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){o.push([p,A]);continue}let E=new Set(h.get(A)??[]);if(E.size===0)return[];if(typeof a>"u")a=E;else for(let I of a)E.has(I)||a.delete(I);if(a.size===0)break}let n=[...a??[]];return o.length>0&&(n=n.filter(u=>{for(let[A,p]of o)if(!(typeof p<"u"?Object.hasOwn(u,A)&&u[A]===p:Object.hasOwn(u,A)===!1))return!1;return!0})),n}},Ggt=/^[0-9]+$/,Ygt=/^[a-zA-Z0-9_]+$/,Wgt=new Set(["scripts",...Ut.allDependencies])});var Kde=_((o7t,$8)=>{var zgt;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs")])]))],"maplist/5":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds")])]))],"maplist/6":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es")])]))],"maplist/7":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs")])]))],"maplist/8":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")]),new t.type.Term(".",[new t.type.Var("G"),new t.type.Var("Gs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F"),new t.type.Var("G")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs"),new t.type.Var("Gs")])]))],"include/3":[new t.type.Rule(new t.type.Term("include",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("include",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("A")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("A"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("F"),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("F")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("L"),new t.type.Var("S")])]),new t.type.Term("include",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("S")])])])])]))],"exclude/3":[new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("E")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("Q")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("R"),new t.type.Var("Q")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("!",[]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("E")])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("E")])])])])])])]))],"foldl/4":[new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Var("I"),new t.type.Var("I")]),null),new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("I"),new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("I"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])])])]),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P2"),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P2")]),new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("R")])])])])]))],"select/3":[new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Xs")]),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term("select",[new t.type.Var("E"),new t.type.Var("Xs"),new t.type.Var("Ys")]))],"sum_list/2":[new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term("[]",[]),new t.type.Num(0,!1)]),null),new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("sum_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("+",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"max_list/2":[new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("max_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"min_list/2":[new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("min_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("=<",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"prod_list/2":[new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term("[]",[]),new t.type.Num(1,!1)]),null),new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("prod_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("*",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"last/2":[new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")]),new t.type.Var("X")]),new t.type.Term("last",[new t.type.Var("Xs"),new t.type.Var("X")]))],"prefix/2":[new t.type.Rule(new t.type.Term("prefix",[new t.type.Var("Part"),new t.type.Var("Whole")]),new t.type.Term("append",[new t.type.Var("Part"),new t.type.Var("_"),new t.type.Var("Whole")]))],"nth0/3":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth1/3":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth0/4":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth1/4":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth/5":[new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("N"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("X"),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("O"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("Y"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term(",",[new t.type.Term("is",[new t.type.Var("M"),new t.type.Term("+",[new t.type.Var("N"),new t.type.Num(1,!1)])]),new t.type.Term("nth",[new t.type.Var("M"),new t.type.Var("O"),new t.type.Var("Xs"),new t.type.Var("Y"),new t.type.Var("Ys")])]))],"length/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(!t.type.is_variable(A)&&!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(t.type.is_integer(A)&&A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else{var p=new t.type.Term("length",[u,new t.type.Num(0,!1),A]);t.type.is_integer(A)&&(p=new t.type.Term(",",[p,new t.type.Term("!",[])])),o.prepend([new t.type.State(a.goal.replace(p),a.substitution,a)])}},"length/3":[new t.type.Rule(new t.type.Term("length",[new t.type.Term("[]",[]),new t.type.Var("N"),new t.type.Var("N")]),null),new t.type.Rule(new t.type.Term("length",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("X")]),new t.type.Var("A"),new t.type.Var("N")]),new t.type.Term(",",[new t.type.Term("succ",[new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("length",[new t.type.Var("X"),new t.type.Var("B"),new t.type.Var("N")])]))],"replicate/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=new t.type.Term("[]"),E=0;E0;I--)E[I].equals(E[I-1])&&E.splice(I,1);for(var v=new t.type.Term("[]"),I=E.length-1;I>=0;I--)v=new t.type.Term(".",[E[I],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"msort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h=u;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=p.sort(t.compare),I=new t.type.Term("[]"),v=E.length-1;v>=0;v--)I=new t.type.Term(".",[E[v],I]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,A])),a.substitution,a)])}}},"keysort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h,E=u;E.indicator==="./2";){if(h=E.args[0],t.type.is_variable(h)){o.throw_error(t.error.instantiation(n.indicator));return}else if(!t.type.is_term(h)||h.indicator!=="-/2"){o.throw_error(t.error.type("pair",h,n.indicator));return}h.args[0].pair=h.args[1],p.push(h.args[0]),E=E.args[1]}if(t.type.is_variable(E))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(E))o.throw_error(t.error.type("list",u,n.indicator));else{for(var I=p.sort(t.compare),v=new t.type.Term("[]"),x=I.length-1;x>=0;x--)v=new t.type.Term(".",[new t.type.Term("-",[I[x],I[x].pair]),v]),delete I[x].pair;o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"take/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],I=A;h>0&&I.indicator==="./2";)E.push(I.args[0]),I=I.args[1],h--;if(h===0){for(var v=new t.type.Term("[]"),h=E.length-1;h>=0;h--)v=new t.type.Term(".",[E[h],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,p])),a.substitution,a)])}}},"drop/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],I=A;h>0&&I.indicator==="./2";)E.push(I.args[0]),I=I.args[1],h--;h===0&&o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,p])),a.substitution,a)])}},"reverse/2":function(o,a,n){var u=n.args[0],A=n.args[1],p=t.type.is_instantiated_list(u),h=t.type.is_instantiated_list(A);if(t.type.is_variable(u)&&t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(u)&&!t.type.is_fully_list(u))o.throw_error(t.error.type("list",u,n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!p&&!h)o.throw_error(t.error.instantiation(n.indicator));else{for(var E=p?u:A,I=new t.type.Term("[]",[]);E.indicator==="./2";)I=new t.type.Term(".",[E.args[0],I]),E=E.args[1];o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,p?A:u])),a.substitution,a)])}},"list_to_set/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else{for(var p=u,h=[];p.indicator==="./2";)h.push(p.args[0]),p=p.args[1];if(t.type.is_variable(p))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_term(p)||p.indicator!=="[]/0")o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=[],I=new t.type.Term("[]",[]),v,x=0;x=0;x--)I=new t.type.Term(".",[E[x],I]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[A,I])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof $8<"u"?$8.exports=function(o){t=o,new t.type.Module("lists",e(),r)}:new t.type.Module("lists",e(),r)})(zgt)});var lme=_(Wr=>{"use strict";var jg=process.platform==="win32",eH="aes-256-cbc",Jgt="sha256",Jde="The current environment doesn't support interactive reading from TTY.",Yn=ve("fs"),Vde=process.binding("tty_wrap").TTY,rH=ve("child_process"),kh=ve("path"),nH={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},Kf="none",$c,RE,zde=!1,xh,ok,tH,Xgt=0,lH="",qg=[],ak,Xde=!1,iH=!1,c2=!1;function Zde(t){function e(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(o){return"#"+o.charCodeAt(0)+";"})}return ok.concat(function(r){var o=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?t[a]&&o.push("--"+a):r[a]==="string"&&t[a]&&o.push("--"+a,e(t[a]))}),o}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function Zgt(t,e){function r(U){var z,te="",ae;for(tH=tH||ve("os").tmpdir();;){z=kh.join(tH,U+te);try{ae=Yn.openSync(z,"wx")}catch(le){if(le.code==="EEXIST"){te++;continue}else throw le}Yn.closeSync(ae);break}return z}var o,a,n,u={},A,p,h=r("readline-sync.stdout"),E=r("readline-sync.stderr"),I=r("readline-sync.exit"),v=r("readline-sync.done"),x=ve("crypto"),C,R,L;C=x.createHash(Jgt),C.update(""+process.pid+Xgt+++Math.random()),L=C.digest("hex"),R=x.createDecipher(eH,L),o=Zde(t),jg?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',n=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+xh+"%Q%"+o.map(function(U){return" %Q%"+U+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+I+"%Q%%Q%) 2>%Q%"+E+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+eH+"%Q% %Q%"+L+"%Q% >%Q%"+h+"%Q% & (echo 1)>%Q%"+v+"%Q%"]):(a="/bin/sh",n=["-c",'("'+xh+'"'+o.map(function(U){return" '"+U.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+I+'") 2>"'+E+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+eH+'" "'+L+'" >"'+h+'"; echo 1 >"'+v+'"']),c2&&c2("_execFileSync",o);try{rH.spawn(a,n,e)}catch(U){u.error=new Error(U.message),u.error.method="_execFileSync - spawn",u.error.program=a,u.error.args=n}for(;Yn.readFileSync(v,{encoding:t.encoding}).trim()!=="1";);return(A=Yn.readFileSync(I,{encoding:t.encoding}).trim())==="0"?u.input=R.update(Yn.readFileSync(h,{encoding:"binary"}),"hex",t.encoding)+R.final(t.encoding):(p=Yn.readFileSync(E,{encoding:t.encoding}).trim(),u.error=new Error(Jde+(p?` +`+p:"")),u.error.method="_execFileSync",u.error.program=a,u.error.args=n,u.error.extMessage=p,u.error.exitCode=+A),Yn.unlinkSync(h),Yn.unlinkSync(E),Yn.unlinkSync(I),Yn.unlinkSync(v),u}function $gt(t){var e,r={},o,a={env:process.env,encoding:t.encoding};if(xh||(jg?process.env.PSModulePath?(xh="powershell.exe",ok=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(xh="cscript.exe",ok=["//nologo",__dirname+"\\read.cs.js"]):(xh="/bin/sh",ok=[__dirname+"/read.sh"])),jg&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),rH.execFileSync){e=Zde(t),c2&&c2("execFileSync",e);try{r.input=rH.execFileSync(xh,e,a)}catch(n){o=n.stderr?(n.stderr+"").trim():"",r.error=new Error(Jde+(o?` +`+o:"")),r.error.method="execFileSync",r.error.program=xh,r.error.args=e,r.error.extMessage=o,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=Zgt(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function sH(t){var e="",r=t.display,o=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=$gt(t);if(n.error)throw n.error;return n.input}return iH&&iH(t),function(){var n,u,A;function p(){return n||(n=process.binding("fs"),u=process.binding("constants")),n}if(typeof Kf=="string")if(Kf=null,jg){if(A=function(h){var E=h.replace(/^\D+/,"").split("."),I=0;return(E[0]=+E[0])&&(I+=E[0]*1e4),(E[1]=+E[1])&&(I+=E[1]*100),(E[2]=+E[2])&&(I+=E[2]),I}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),Kf=process.stdin.fd,RE=process.stdin._handle;else try{Kf=p().open("CONIN$",u.O_RDWR,parseInt("0666",8)),RE=new Vde(Kf,!0)}catch{}if(process.stdout.isTTY)$c=process.stdout.fd;else{try{$c=Yn.openSync("\\\\.\\CON","w")}catch{}if(typeof $c!="number")try{$c=p().open("CONOUT$",u.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{Kf=Yn.openSync("/dev/tty","r"),RE=process.stdin._handle}catch{}}else try{Kf=Yn.openSync("/dev/tty","r"),RE=new Vde(Kf,!1)}catch{}if(process.stdout.isTTY)$c=process.stdout.fd;else try{$c=Yn.openSync("/dev/tty","w")}catch{}}}(),function(){var n,u,A=!t.hideEchoBack&&!t.keyIn,p,h,E,I,v;ak="";function x(C){return C===zde?!0:RE.setRawMode(C)!==0?!1:(zde=C,!0)}if(Xde||!RE||typeof $c!="number"&&(t.display||!A)){e=a();return}if(t.display&&(Yn.writeSync($c,t.display),t.display=""),!t.displayOnly){if(!x(!A)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(u=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){E=0;try{E=Yn.readSync(Kf,p,0,h)}catch(C){if(C.code!=="EOF"){x(!1),e+=a();return}}if(E>0?(I=p.toString(t.encoding,0,E),ak+=I):(I=` +`,ak+="\0"),I&&typeof(v=(I.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(I=v,n=!0),I&&(I=I.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),I&&u&&(I=I.replace(u,"")),I&&(A||(t.hideEchoBack?t.mask&&Yn.writeSync($c,new Array(I.length+1).join(t.mask)):Yn.writeSync($c,I)),e+=I),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!A&&!o&&Yn.writeSync($c,` +`),x(!1)}}(),t.print&&!o&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+` +`),t.encoding),t.displayOnly?"":lH=t.keepWhitespace||t.keyIn?e:e.trim()}function edt(t,e){var r=[];function o(a){a!=null&&(Array.isArray(a)?a.forEach(o):(!e||e(a))&&r.push(a))}return o(t),r}function cH(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function Ns(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(nH),t.unshift(nH))),t.reduce(function(o,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var u;if(a.hasOwnProperty(n))switch(u=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":u=u!=null?u+"":"",u&&n!=="limitMessage"&&(u=u.replace(/[\r\n]/g,"")),o[n]=u;break;case"bufferSize":!isNaN(u=parseInt(u,10))&&typeof u=="number"&&(o[n]=u);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":o[n]=!!u;break;case"limit":case"trueValue":case"falseValue":o[n]=edt(u,function(A){var p=typeof A;return p==="string"||p==="number"||p==="function"||A instanceof RegExp}).map(function(A){return typeof A=="string"?A.replace(/[\r\n]/g,""):A});break;case"print":case"phContent":case"preCheck":o[n]=typeof u=="function"?u:void 0;break;case"prompt":case"display":o[n]=u??"";break}})),o},{})}function oH(t,e,r){return e.some(function(o){var a=typeof o;return a==="string"?r?t===o:t.toLowerCase()===o.toLowerCase():a==="number"?parseFloat(t)===o:a==="function"?o(t):o instanceof RegExp?o.test(t):!1})}function uH(t,e){var r=kh.normalize(jg?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=kh.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+cH(r)+"(?=\\/|\\\\|$)",jg?"i":""),"~")}function TE(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",o=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(u,A,p,h,E,I){var v;return A||typeof(v=e(E))!="string"?p:v?(h||"")+v+(I||""):""}return t.replace(o,n).replace(a,n)}function $de(t,e,r){var o,a=[],n=-1,u=0,A="",p;function h(E,I){return I.length>3?(E.push(I[0]+"..."+I[I.length-1]),p=!0):I.length&&(E=E.concat(I)),E}return o=t.reduce(function(E,I){return E.concat((I+"").split(""))},[]).reduce(function(E,I){var v,x;return e||(I=I.toLowerCase()),v=/^\d$/.test(I)?1:/^[A-Z]$/.test(I)?2:/^[a-z]$/.test(I)?3:0,r&&v===0?A+=I:(x=I.charCodeAt(0),v&&v===n&&x===u+1?a.push(I):(E=h(E,a),a=[I],n=v),u=x),E},[]),o=h(o,a),A&&(o.push(A),p=!0),{values:o,suppressed:p}}function eme(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function tme(t,e){var r,o,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":o=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=$de(o,e.caseSensitive),o=a.values):o=o.filter(function(u){var A=typeof u;return A==="string"||A==="number"}),r=eme(o,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=lH;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=kh.basename(r):t==="cwdHome"&&(r=uH(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(u){return u.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=qg[qg.length-n]||"")}return r}function rme(t){var e=/^(.)-(.)$/.exec(t),r="",o,a,n,u;if(!e)return null;for(o=e[1].charCodeAt(0),a=e[2].charCodeAt(0),u=o +And the length must be: $`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(x){return x==="charlist"?r.text:x==="length"?o+"..."+a:null}}),u,A,p,h,E,I,v;for(e=e||{},u=TE(e.charlist?e.charlist+"":"$",rme),(isNaN(o=parseInt(e.min,10))||typeof o!="number")&&(o=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+cH(u)+"]{"+o+","+a+"}$"),r=$de([u],n.caseSensitive,!0),r.text=eme(r.values,r.suppressed),A=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",p=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),E=n.limitMessage;!v;)n.limit=h,n.limitMessage=E,I=Wr.question(t,n),n.limit=[I,""],n.limitMessage=p,v=Wr.question(A,n);return I};function sme(t,e,r){var o;function a(n){return o=r(n),!isNaN(o)&&typeof o=="number"}return Wr.question(t,Ns({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),o}Wr.questionInt=function(t,e){return sme(t,e,function(r){return parseInt(r,10)})};Wr.questionFloat=function(t,e){return sme(t,e,parseFloat)};Wr.questionPath=function(t,e){var r,o="",a=Ns({hideEchoBack:!1,limitMessage:`$Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var u,A,p;n=uH(n,!0),o="";function h(E){E.split(/\/|\\/).reduce(function(I,v){var x=kh.resolve(I+=v+kh.sep);if(!Yn.existsSync(x))Yn.mkdirSync(x);else if(!Yn.statSync(x).isDirectory())throw new Error("Non directory already exists: "+x);return I},"")}try{if(u=Yn.existsSync(n),r=u?Yn.realpathSync(n):kh.resolve(n),!e.hasOwnProperty("exists")&&!u||typeof e.exists=="boolean"&&e.exists!==u)return o=(u?"Already exists":"No such file or directory")+": "+r,!1;if(!u&&e.create&&(e.isDirectory?h(r):(h(kh.dirname(r)),Yn.closeSync(Yn.openSync(r,"w"))),r=Yn.realpathSync(r)),u&&(e.min||e.max||e.isFile||e.isDirectory)){if(A=Yn.statSync(r),e.isFile&&!A.isFile())return o="Not file: "+r,!1;if(e.isDirectory&&!A.isDirectory())return o="Not directory: "+r,!1;if(e.min&&A.size<+e.min||e.max&&A.size>+e.max)return o="Size "+A.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(p=e.validate(r))!==!0)return typeof p=="string"&&(o=p),!1}catch(E){return o=E+"",!1}return!0},phContent:function(n){return n==="error"?o:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),Wr.question(t,a),r};function ome(t,e){var r={},o={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(o[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=aH(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&o.hasOwnProperty(n)?o[n].apply(a,r.args.slice(1)):o.hasOwnProperty("_")?o._.apply(a,r.args):null,{res:a,forceNext:!1}},o.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),o.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=aH(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}Wr.promptCL=function(t,e){var r=Ns({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=ome(t,r);return r.limit=o.limit,r.preCheck=o.preCheck,Wr.prompt(r),o.args};Wr.promptLoop=function(t,e){for(var r=Ns({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t(Wr.prompt(r)););};Wr.promptCLLoop=function(t,e){var r=Ns({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=ome(t,r);for(r.limit=o.limit,r.preCheck=o.preCheck;Wr.prompt(r),!o.hRes;);};Wr.promptSimShell=function(t){return Wr.prompt(Ns({hideEchoBack:!1,history:!0},t,{prompt:function(){return jg?"$>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$$ "}()}))};function ame(t,e,r){var o;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),o=Wr.keyIn(t,Ns(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof o=="boolean"?o:""}Wr.keyInYN=function(t,e){return ame(t,e)};Wr.keyInYNStrict=function(t,e){return ame(t,e,"yn")};Wr.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),Wr.keyIn(t,Ns({limit:null},e,{hideEchoBack:!0,mask:""}))};Wr.keyInSelect=function(t,e,r){var o=Ns({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?t.length+"":p==="firstItem"?(t[0]+"").trim():p==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},u=49,A=` +`;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(p,h){var E=String.fromCharCode(u);a+=E,n[E]=h,A+="["+E+"] "+(p+"").trim()+` +`,u=u===57?97:u+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,A+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+` +`),o.limit=a,A+=` +`,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$]: "),A+=e),n[Wr.keyIn(A,o).toLowerCase()]};Wr.getRawInput=function(){return ak};function u2(t,e){var r;return e.length&&(r={},r[t]=e[0]),Wr.setDefaultOptions(r)[t]}Wr.setPrint=function(){return u2("print",arguments)};Wr.setPrompt=function(){return u2("prompt",arguments)};Wr.setEncoding=function(){return u2("encoding",arguments)};Wr.setMask=function(){return u2("mask",arguments)};Wr.setBufferSize=function(){return u2("bufferSize",arguments)}});var AH=_((l7t,gl)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(w,b,y){var F=tau_file_system.files[w];if(!F){if(y==="read")return null;F={path:w,text:"",type:b,get:function(J,X){return X===this.text.length||X>this.text.length?"end_of_file":this.text.substring(X,X+J)},put:function(J,X){return X==="end_of_file"?(this.text+=J,!0):X==="past_end_of_file"?null:(this.text=this.text.substring(0,X)+J+this.text.substring(X+J.length),!0)},get_byte:function(J){if(J==="end_of_stream")return-1;var X=Math.floor(J/2);if(this.text.length<=X)return-1;var $=n(this.text[Math.floor(J/2)],0);return J%2===0?$&255:$/256>>>0},put_byte:function(J,X){var $=X==="end_of_stream"?this.text.length:Math.floor(X/2);if(this.text.length<$)return null;var ie=this.text.length===$?-1:n(this.text[Math.floor(X/2)],0);return X%2===0?(ie=ie/256>>>0,ie=(ie&255)<<8|J&255):(ie=ie&255,ie=(J&255)<<8|ie&255),this.text.length===$?this.text+=u(ie):this.text=this.text.substring(0,$)+u(ie)+this.text.substring($+1),!0},flush:function(){return!0},close:function(){var J=tau_file_system.files[this.path];return J?!0:null}},tau_file_system.files[w]=F}return y==="write"&&(F.text=""),F}},tau_user_input={buffer:"",get:function(w,b){for(var y;tau_user_input.buffer.length\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function L(w,b){return w.get_flag("char_conversion").id==="on"?b.replace(/./g,function(y){return w.get_char_conversion(y)}):b}function U(w){this.thread=w,this.text="",this.tokens=[]}U.prototype.set_last_tokens=function(w){return this.tokens=w},U.prototype.new_text=function(w){this.text=w,this.tokens=[]},U.prototype.get_tokens=function(w){var b,y=0,F=0,J=0,X=[],$=!1;if(w){var ie=this.tokens[w-1];y=ie.len,b=L(this.thread,this.text.substr(ie.len)),F=ie.line,J=ie.start}else b=this.text;if(/^\s*$/.test(b))return null;for(;b!=="";){var Se=[],Re=!1;if(/^\n/.exec(b)!==null){F++,J=0,y++,b=b.replace(/\n/,""),$=!0;continue}for(var at in R)if(R.hasOwnProperty(at)){var dt=R[at].exec(b);dt&&Se.push({value:dt[0],name:at,matches:dt})}if(!Se.length)return this.set_last_tokens([{value:b,matches:[],name:"lexical",line:F,start:J}]);var ie=r(Se,function(kr,mr){return kr.value.length>=mr.value.length?kr:mr});switch(ie.start=J,ie.line=F,b=b.replace(ie.value,""),J+=ie.value.length,y+=ie.value.length,ie.name){case"atom":ie.raw=ie.value,ie.value.charAt(0)==="'"&&(ie.value=v(ie.value.substr(1,ie.value.length-2),"'"),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence"));break;case"number":ie.float=ie.value.substring(0,2)!=="0x"&&ie.value.match(/[.eE]/)!==null&&ie.value!=="0'.",ie.value=C(ie.value),ie.blank=Re;break;case"string":var jt=ie.value.charAt(0);ie.value=v(ie.value.substr(1,ie.value.length-2),jt),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence");break;case"whitespace":var tr=X[X.length-1];tr&&(tr.space=!0),Re=!0;continue;case"r_bracket":X.length>0&&X[X.length-1].name==="l_bracket"&&(ie=X.pop(),ie.name="atom",ie.value="{}",ie.raw="{}",ie.space=!1);break;case"r_brace":X.length>0&&X[X.length-1].name==="l_brace"&&(ie=X.pop(),ie.name="atom",ie.value="[]",ie.raw="[]",ie.space=!1);break}ie.len=y,X.push(ie),Re=!1}var bt=this.set_last_tokens(X);return bt.length===0?null:bt};function z(w,b,y,F,J){if(!b[y])return{type:A,value:S.error.syntax(b[y-1],"expression expected",!0)};var X;if(F==="0"){var $=b[y];switch($.name){case"number":return{type:p,len:y+1,value:new S.type.Num($.value,$.float)};case"variable":return{type:p,len:y+1,value:new S.type.Var($.value)};case"string":var ie;switch(w.get_flag("double_quotes").id){case"atom":ie=new H($.value,[]);break;case"codes":ie=new H("[]",[]);for(var Se=$.value.length-1;Se>=0;Se--)ie=new H(".",[new S.type.Num(n($.value,Se),!1),ie]);break;case"chars":ie=new H("[]",[]);for(var Se=$.value.length-1;Se>=0;Se--)ie=new H(".",[new S.type.Term($.value.charAt(Se),[]),ie]);break}return{type:p,len:y+1,value:ie};case"l_paren":var bt=z(w,b,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:b[bt.len]&&b[bt.len].name==="r_paren"?(bt.len++,bt):{type:A,derived:!0,value:S.error.syntax(b[bt.len]?b[bt.len]:b[bt.len-1],") or operator expected",!b[bt.len])};case"l_bracket":var bt=z(w,b,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:b[bt.len]&&b[bt.len].name==="r_bracket"?(bt.len++,bt.value=new H("{}",[bt.value]),bt):{type:A,derived:!0,value:S.error.syntax(b[bt.len]?b[bt.len]:b[bt.len-1],"} or operator expected",!b[bt.len])}}var Re=te(w,b,y,J);return Re.type===p||Re.derived||(Re=ae(w,b,y),Re.type===p||Re.derived)?Re:{type:A,derived:!1,value:S.error.syntax(b[y],"unexpected token")}}var at=w.__get_max_priority(),dt=w.__get_next_priority(F),jt=y;if(b[y].name==="atom"&&b[y+1]&&(b[y].space||b[y+1].name!=="l_paren")){var $=b[y++],tr=w.__lookup_operator_classes(F,$.value);if(tr&&tr.indexOf("fy")>-1){var bt=z(w,b,y,F,J);if(bt.type!==A)return $.value==="-"&&!$.space&&S.type.is_number(bt.value)?{value:new S.type.Num(-bt.value.value,bt.value.is_float),len:bt.len,type:p}:{value:new S.type.Term($.value,[bt.value]),len:bt.len,type:p};X=bt}else if(tr&&tr.indexOf("fx")>-1){var bt=z(w,b,y,dt,J);if(bt.type!==A)return{value:new S.type.Term($.value,[bt.value]),len:bt.len,type:p};X=bt}}y=jt;var bt=z(w,b,y,dt,J);if(bt.type===p){y=bt.len;var $=b[y];if(b[y]&&(b[y].name==="atom"&&w.__lookup_operator_classes(F,$.value)||b[y].name==="bar"&&w.__lookup_operator_classes(F,"|"))){var ln=dt,kr=F,tr=w.__lookup_operator_classes(F,$.value);if(tr.indexOf("xf")>-1)return{value:new S.type.Term($.value,[bt.value]),len:++bt.len,type:p};if(tr.indexOf("xfx")>-1){var mr=z(w,b,y+1,ln,J);return mr.type===p?{value:new S.type.Term($.value,[bt.value,mr.value]),len:mr.len,type:p}:(mr.derived=!0,mr)}else if(tr.indexOf("xfy")>-1){var mr=z(w,b,y+1,kr,J);return mr.type===p?{value:new S.type.Term($.value,[bt.value,mr.value]),len:mr.len,type:p}:(mr.derived=!0,mr)}else if(bt.type!==A)for(;;){y=bt.len;var $=b[y];if($&&$.name==="atom"&&w.__lookup_operator_classes(F,$.value)){var tr=w.__lookup_operator_classes(F,$.value);if(tr.indexOf("yf")>-1)bt={value:new S.type.Term($.value,[bt.value]),len:++y,type:p};else if(tr.indexOf("yfx")>-1){var mr=z(w,b,++y,ln,J);if(mr.type===A)return mr.derived=!0,mr;y=mr.len,bt={value:new S.type.Term($.value,[bt.value,mr.value]),len:y,type:p}}else break}else break}}else X={type:A,value:S.error.syntax(b[bt.len-1],"operator expected")};return bt}return bt}function te(w,b,y,F){if(!b[y]||b[y].name==="atom"&&b[y].raw==="."&&!F&&(b[y].space||!b[y+1]||b[y+1].name!=="l_paren"))return{type:A,derived:!1,value:S.error.syntax(b[y-1],"unfounded token")};var J=b[y],X=[];if(b[y].name==="atom"&&b[y].raw!==","){if(y++,b[y-1].space)return{type:p,len:y,value:new S.type.Term(J.value,X)};if(b[y]&&b[y].name==="l_paren"){if(b[y+1]&&b[y+1].name==="r_paren")return{type:A,derived:!0,value:S.error.syntax(b[y+1],"argument expected")};var $=z(w,b,++y,"999",!0);if($.type===A)return $.derived?$:{type:A,derived:!0,value:S.error.syntax(b[y]?b[y]:b[y-1],"argument expected",!b[y])};for(X.push($.value),y=$.len;b[y]&&b[y].name==="atom"&&b[y].value===",";){if($=z(w,b,y+1,"999",!0),$.type===A)return $.derived?$:{type:A,derived:!0,value:S.error.syntax(b[y+1]?b[y+1]:b[y],"argument expected",!b[y+1])};X.push($.value),y=$.len}if(b[y]&&b[y].name==="r_paren")y++;else return{type:A,derived:!0,value:S.error.syntax(b[y]?b[y]:b[y-1],", or ) expected",!b[y])}}return{type:p,len:y,value:new S.type.Term(J.value,X)}}return{type:A,derived:!1,value:S.error.syntax(b[y],"term expected")}}function ae(w,b,y){if(!b[y])return{type:A,derived:!1,value:S.error.syntax(b[y-1],"[ expected")};if(b[y]&&b[y].name==="l_brace"){var F=z(w,b,++y,"999",!0),J=[F.value],X=void 0;if(F.type===A)return b[y]&&b[y].name==="r_brace"?{type:p,len:y+1,value:new S.type.Term("[]",[])}:{type:A,derived:!0,value:S.error.syntax(b[y],"] expected")};for(y=F.len;b[y]&&b[y].name==="atom"&&b[y].value===",";){if(F=z(w,b,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:S.error.syntax(b[y+1]?b[y+1]:b[y],"argument expected",!b[y+1])};J.push(F.value),y=F.len}var $=!1;if(b[y]&&b[y].name==="bar"){if($=!0,F=z(w,b,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:S.error.syntax(b[y+1]?b[y+1]:b[y],"argument expected",!b[y+1])};X=F.value,y=F.len}return b[y]&&b[y].name==="r_brace"?{type:p,len:y+1,value:g(J,X)}:{type:A,derived:!0,value:S.error.syntax(b[y]?b[y]:b[y-1],$?"] expected":", or | or ] expected",!b[y])}}return{type:A,derived:!1,value:S.error.syntax(b[y],"list expected")}}function le(w,b,y){var F=b[y].line,J=z(w,b,y,w.__get_max_priority(),!1),X=null,$;if(J.type!==A)if(y=J.len,b[y]&&b[y].name==="atom"&&b[y].raw===".")if(y++,S.type.is_term(J.value)){if(J.value.indicator===":-/2"?(X=new S.type.Rule(J.value.args[0],Ee(J.value.args[1])),$={value:X,len:y,type:p}):J.value.indicator==="-->/2"?(X=de(new S.type.Rule(J.value.args[0],J.value.args[1]),w),X.body=Ee(X.body),$={value:X,len:y,type:S.type.is_rule(X)?p:A}):(X=new S.type.Rule(J.value,null),$={value:X,len:y,type:p}),X){var ie=X.singleton_variables();ie.length>0&&w.throw_warning(S.warning.singleton(ie,X.head.indicator,F))}return $}else return{type:A,value:S.error.syntax(b[y],"callable expected")};else return{type:A,value:S.error.syntax(b[y]?b[y]:b[y-1],". or operator expected")};return J}function ce(w,b,y){y=y||{},y.from=y.from?y.from:"$tau-js",y.reconsult=y.reconsult!==void 0?y.reconsult:!0;var F=new U(w),J={},X;F.new_text(b);var $=0,ie=F.get_tokens($);do{if(ie===null||!ie[$])break;var Se=le(w,ie,$);if(Se.type===A)return new H("throw",[Se.value]);if(Se.value.body===null&&Se.value.head.indicator==="?-/1"){var Re=new et(w.session);Re.add_goal(Se.value.head.args[0]),Re.answer(function(dt){S.type.is_error(dt)?w.throw_warning(dt.args[0]):(dt===!1||dt===null)&&w.throw_warning(S.warning.failed_goal(Se.value.head.args[0],Se.len))}),$=Se.len;var at=!0}else if(Se.value.body===null&&Se.value.head.indicator===":-/1"){var at=w.run_directive(Se.value.head.args[0]);$=Se.len,Se.value.head.args[0].indicator==="char_conversion/2"&&(ie=F.get_tokens($),$=0)}else{X=Se.value.head.indicator,y.reconsult!==!1&&J[X]!==!0&&!w.is_multifile_predicate(X)&&(w.session.rules[X]=a(w.session.rules[X]||[],function(jt){return jt.dynamic}),J[X]=!0);var at=w.add_rule(Se.value,y);$=Se.len}if(!at)return at}while(!0);return!0}function Ce(w,b){var y=new U(w);y.new_text(b);var F=0;do{var J=y.get_tokens(F);if(J===null)break;var X=z(w,J,0,w.__get_max_priority(),!1);if(X.type!==A){var $=X.len,ie=$;if(J[$]&&J[$].name==="atom"&&J[$].raw===".")w.add_goal(Ee(X.value));else{var Se=J[$];return new H("throw",[S.error.syntax(Se||J[$-1],". or operator expected",!Se)])}F=X.len+1}else return new H("throw",[X.value])}while(!0);return!0}function de(w,b){w=w.rename(b);var y=b.next_free_variable(),F=Be(w.body,y,b);return F.error?F.value:(w.body=F.value,w.head.args=w.head.args.concat([y,F.variable]),w.head=new H(w.head.id,w.head.args),w)}function Be(w,b,y){var F;if(S.type.is_term(w)&&w.indicator==="!/0")return{value:w,variable:b,error:!1};if(S.type.is_term(w)&&w.indicator===",/2"){var J=Be(w.args[0],b,y);if(J.error)return J;var X=Be(w.args[1],J.variable,y);return X.error?X:{value:new H(",",[J.value,X.value]),variable:X.variable,error:!1}}else{if(S.type.is_term(w)&&w.indicator==="{}/1")return{value:w.args[0],variable:b,error:!1};if(S.type.is_empty_list(w))return{value:new H("true",[]),variable:b,error:!1};if(S.type.is_list(w)){F=y.next_free_variable();for(var $=w,ie;$.indicator==="./2";)ie=$,$=$.args[1];return S.type.is_variable($)?{value:S.error.instantiation("DCG"),variable:b,error:!0}:S.type.is_empty_list($)?(ie.args[1]=F,{value:new H("=",[b,w]),variable:F,error:!1}):{value:S.error.type("list",w,"DCG"),variable:b,error:!0}}else return S.type.is_callable(w)?(F=y.next_free_variable(),w.args=w.args.concat([b,F]),w=new H(w.id,w.args),{value:w,variable:F,error:!1}):{value:S.error.type("callable",w,"DCG"),variable:b,error:!0}}}function Ee(w){return S.type.is_variable(w)?new H("call",[w]):S.type.is_term(w)&&[",/2",";/2","->/2"].indexOf(w.indicator)!==-1?new H(w.id,[Ee(w.args[0]),Ee(w.args[1])]):w}function g(w,b){for(var y=b||new S.type.Term("[]",[]),F=w.length-1;F>=0;F--)y=new S.type.Term(".",[w[F],y]);return y}function me(w,b){for(var y=w.length-1;y>=0;y--)w[y]===b&&w.splice(y,1)}function we(w){for(var b={},y=[],F=0;F=0;b--)if(w.charAt(b)==="/")return new H("/",[new H(w.substring(0,b)),new Ne(parseInt(w.substring(b+1)),!1)])}function xe(w){this.id=w}function Ne(w,b){this.is_float=b!==void 0?b:parseInt(w)!==w,this.value=this.is_float?w:parseInt(w)}var ht=0;function H(w,b,y){this.ref=y||++ht,this.id=w,this.args=b||[],this.indicator=w+"/"+this.args.length}var rt=0;function Te(w,b,y,F,J,X){this.id=rt++,this.stream=w,this.mode=b,this.alias=y,this.type=F!==void 0?F:"text",this.reposition=J!==void 0?J:!0,this.eof_action=X!==void 0?X:"eof_code",this.position=this.mode==="append"?"end_of_stream":0,this.output=this.mode==="write"||this.mode==="append",this.input=this.mode==="read"}function Fe(w){w=w||{},this.links=w}function ke(w,b,y){b=b||new Fe,y=y||null,this.goal=w,this.substitution=b,this.parent=y}function Ye(w,b,y){this.head=w,this.body=b,this.dynamic=y||!1}function be(w){w=w===void 0||w<=0?1e3:w,this.rules={},this.src_predicates={},this.rename=0,this.modules=[],this.thread=new et(this),this.total_threads=1,this.renamed_variables={},this.public_predicates={},this.multifile_predicates={},this.limit=w,this.streams={user_input:new Te(typeof gl<"u"&&gl.exports?nodejs_user_input:tau_user_input,"read","user_input","text",!1,"reset"),user_output:new Te(typeof gl<"u"&&gl.exports?nodejs_user_output:tau_user_output,"write","user_output","text",!1,"eof_code")},this.file_system=typeof gl<"u"&&gl.exports?nodejs_file_system:tau_file_system,this.standard_input=this.streams.user_input,this.standard_output=this.streams.user_output,this.current_input=this.streams.user_input,this.current_output=this.streams.user_output,this.format_success=function(b){return b.substitution},this.format_error=function(b){return b.goal},this.flag={bounded:S.flag.bounded.value,max_integer:S.flag.max_integer.value,min_integer:S.flag.min_integer.value,integer_rounding_function:S.flag.integer_rounding_function.value,char_conversion:S.flag.char_conversion.value,debug:S.flag.debug.value,max_arity:S.flag.max_arity.value,unknown:S.flag.unknown.value,double_quotes:S.flag.double_quotes.value,occurs_check:S.flag.occurs_check.value,dialect:S.flag.dialect.value,version_data:S.flag.version_data.value,nodejs:S.flag.nodejs.value},this.__loaded_modules=[],this.__char_conversion={},this.__operators={1200:{":-":["fx","xfx"],"-->":["xfx"],"?-":["fx"]},1100:{";":["xfy"]},1050:{"->":["xfy"]},1e3:{",":["xfy"]},900:{"\\+":["fy"]},700:{"=":["xfx"],"\\=":["xfx"],"==":["xfx"],"\\==":["xfx"],"@<":["xfx"],"@=<":["xfx"],"@>":["xfx"],"@>=":["xfx"],"=..":["xfx"],is:["xfx"],"=:=":["xfx"],"=\\=":["xfx"],"<":["xfx"],"=<":["xfx"],">":["xfx"],">=":["xfx"]},600:{":":["xfy"]},500:{"+":["yfx"],"-":["yfx"],"/\\":["yfx"],"\\/":["yfx"]},400:{"*":["yfx"],"/":["yfx"],"//":["yfx"],rem:["yfx"],mod:["yfx"],"<<":["yfx"],">>":["yfx"]},200:{"**":["xfx"],"^":["xfy"],"-":["fy"],"+":["fy"],"\\":["fy"]}}}function et(w){this.epoch=Date.now(),this.session=w,this.session.total_threads++,this.total_steps=0,this.cpu_time=0,this.cpu_time_last=0,this.points=[],this.debugger=!1,this.debugger_states=[],this.level="top_level/0",this.__calls=[],this.current_limit=this.session.limit,this.warnings=[]}function Ue(w,b,y){this.id=w,this.rules=b,this.exports=y,S.module[w]=this}Ue.prototype.exports_predicate=function(w){return this.exports.indexOf(w)!==-1},xe.prototype.unify=function(w,b){if(b&&e(w.variables(),this.id)!==-1&&!S.type.is_variable(w))return null;var y={};return y[this.id]=w,new Fe(y)},Ne.prototype.unify=function(w,b){return S.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float?new Fe:null},H.prototype.unify=function(w,b){if(S.type.is_term(w)&&this.indicator===w.indicator){for(var y=new Fe,F=0;F=0){var F=this.args[0].value,J=Math.floor(F/26),X=F%26;return"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[X]+(J!==0?J:"")}switch(this.indicator){case"[]/0":case"{}/0":case"!/0":return this.id;case"{}/1":return"{"+this.args[0].toString(w)+"}";case"./2":for(var $="["+this.args[0].toString(w),ie=this.args[1];ie.indicator==="./2";)$+=", "+ie.args[0].toString(w),ie=ie.args[1];return ie.indicator!=="[]/0"&&($+="|"+ie.toString(w)),$+="]",$;case",/2":return"("+this.args[0].toString(w)+", "+this.args[1].toString(w)+")";default:var Se=this.id,Re=w.session?w.session.lookup_operator(this.id,this.args.length):null;if(w.session===void 0||w.ignore_ops||Re===null)return w.quoted&&!/^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test(Se)&&Se!=="{}"&&Se!=="[]"&&(Se="'"+x(Se)+"'"),Se+(this.args.length?"("+o(this.args,function(tr){return tr.toString(w)}).join(", ")+")":"");var at=Re.priority>b.priority||Re.priority===b.priority&&(Re.class==="xfy"&&this.indicator!==b.indicator||Re.class==="yfx"&&this.indicator!==b.indicator||this.indicator===b.indicator&&Re.class==="yfx"&&y==="right"||this.indicator===b.indicator&&Re.class==="xfy"&&y==="left");Re.indicator=this.indicator;var dt=at?"(":"",jt=at?")":"";return this.args.length===0?"("+this.id+")":["fy","fx"].indexOf(Re.class)!==-1?dt+Se+" "+this.args[0].toString(w,Re)+jt:["yf","xf"].indexOf(Re.class)!==-1?dt+this.args[0].toString(w,Re)+" "+Se+jt:dt+this.args[0].toString(w,Re,"left")+" "+this.id+" "+this.args[1].toString(w,Re,"right")+jt}},Te.prototype.toString=function(w){return"("+this.id+")"},Fe.prototype.toString=function(w){var b="{";for(var y in this.links)this.links.hasOwnProperty(y)&&(b!=="{"&&(b+=", "),b+=y+"/"+this.links[y].toString(w));return b+="}",b},ke.prototype.toString=function(w){return this.goal===null?"<"+this.substitution.toString(w)+">":"<"+this.goal.toString(w)+", "+this.substitution.toString(w)+">"},Ye.prototype.toString=function(w){return this.body?this.head.toString(w)+" :- "+this.body.toString(w)+".":this.head.toString(w)+"."},be.prototype.toString=function(w){for(var b="",y=0;y=0;J--)F=new H(".",[b[J],F]);return F}return new H(this.id,o(this.args,function(X){return X.apply(w)}),this.ref)},Te.prototype.apply=function(w){return this},Ye.prototype.apply=function(w){return new Ye(this.head.apply(w),this.body!==null?this.body.apply(w):null)},Fe.prototype.apply=function(w){var b,y={};for(b in this.links)this.links.hasOwnProperty(b)&&(y[b]=this.links[b].apply(w));return new Fe(y)},H.prototype.select=function(){for(var w=this;w.indicator===",/2";)w=w.args[0];return w},H.prototype.replace=function(w){return this.indicator===",/2"?this.args[0].indicator===",/2"?new H(",",[this.args[0].replace(w),this.args[1]]):w===null?this.args[1]:new H(",",[w,this.args[1]]):w},H.prototype.search=function(w){if(S.type.is_term(w)&&w.ref!==void 0&&this.ref===w.ref)return!0;for(var b=0;bb&&F0&&(b=this.head_point().substitution.domain());e(b,S.format_variable(this.session.rename))!==-1;)this.session.rename++;if(w.id==="_")return new xe(S.format_variable(this.session.rename));this.session.renamed_variables[w.id]=S.format_variable(this.session.rename)}return new xe(this.session.renamed_variables[w.id])},be.prototype.next_free_variable=function(){return this.thread.next_free_variable()},et.prototype.next_free_variable=function(){this.session.rename++;var w=[];for(this.points.length>0&&(w=this.head_point().substitution.domain());e(w,S.format_variable(this.session.rename))!==-1;)this.session.rename++;return new xe(S.format_variable(this.session.rename))},be.prototype.is_public_predicate=function(w){return!this.public_predicates.hasOwnProperty(w)||this.public_predicates[w]===!0},et.prototype.is_public_predicate=function(w){return this.session.is_public_predicate(w)},be.prototype.is_multifile_predicate=function(w){return this.multifile_predicates.hasOwnProperty(w)&&this.multifile_predicates[w]===!0},et.prototype.is_multifile_predicate=function(w){return this.session.is_multifile_predicate(w)},be.prototype.prepend=function(w){return this.thread.prepend(w)},et.prototype.prepend=function(w){for(var b=w.length-1;b>=0;b--)this.points.push(w[b])},be.prototype.success=function(w,b){return this.thread.success(w,b)},et.prototype.success=function(w,y){var y=typeof y>"u"?w:y;this.prepend([new ke(w.goal.replace(null),w.substitution,y)])},be.prototype.throw_error=function(w){return this.thread.throw_error(w)},et.prototype.throw_error=function(w){this.prepend([new ke(new H("throw",[w]),new Fe,null,null)])},be.prototype.step_rule=function(w,b){return this.thread.step_rule(w,b)},et.prototype.step_rule=function(w,b){var y=b.indicator;if(w==="user"&&(w=null),w===null&&this.session.rules.hasOwnProperty(y))return this.session.rules[y];for(var F=w===null?this.session.modules:e(this.session.modules,w)===-1?[]:[w],J=0;J1)&&this.again()},be.prototype.answers=function(w,b,y){return this.thread.answers(w,b,y)},et.prototype.answers=function(w,b,y){var F=b||1e3,J=this;if(b<=0){y&&y();return}this.answer(function(X){w(X),X!==!1?setTimeout(function(){J.answers(w,b-1,y)},1):y&&y()})},be.prototype.again=function(w){return this.thread.again(w)},et.prototype.again=function(w){for(var b,y=Date.now();this.__calls.length>0;){for(this.warnings=[],w!==!1&&(this.current_limit=this.session.limit);this.current_limit>0&&this.points.length>0&&this.head_point().goal!==null&&!S.type.is_error(this.head_point().goal);)if(this.current_limit--,this.step()===!0)return;var F=Date.now();this.cpu_time_last=F-y,this.cpu_time+=this.cpu_time_last;var J=this.__calls.shift();this.current_limit<=0?J(null):this.points.length===0?J(!1):S.type.is_error(this.head_point().goal)?(b=this.session.format_error(this.points.pop()),this.points=[],J(b)):(this.debugger&&this.debugger_states.push(this.head_point()),b=this.session.format_success(this.points.pop()),J(b))}},be.prototype.unfold=function(w){if(w.body===null)return!1;var b=w.head,y=w.body,F=y.select(),J=new et(this),X=[];J.add_goal(F),J.step();for(var $=J.points.length-1;$>=0;$--){var ie=J.points[$],Se=b.apply(ie.substitution),Re=y.replace(ie.goal);Re!==null&&(Re=Re.apply(ie.substitution)),X.push(new Ye(Se,Re))}var at=this.rules[b.indicator],dt=e(at,w);return X.length>0&&dt!==-1?(at.splice.apply(at,[dt,1].concat(X)),!0):!1},et.prototype.unfold=function(w){return this.session.unfold(w)},xe.prototype.interpret=function(w){return S.error.instantiation(w.level)},Ne.prototype.interpret=function(w){return this},H.prototype.interpret=function(w){return S.type.is_unitary_list(this)?this.args[0].interpret(w):S.operate(w,this)},xe.prototype.compare=function(w){return this.idw.id?1:0},Ne.prototype.compare=function(w){if(this.value===w.value&&this.is_float===w.is_float)return 0;if(this.valuew.value)return 1},H.prototype.compare=function(w){if(this.args.lengthw.args.length||this.args.length===w.args.length&&this.id>w.id)return 1;for(var b=0;bF)return 1;if(w.constructor===Ne){if(w.is_float&&b.is_float)return 0;if(w.is_float)return-1;if(b.is_float)return 1}return 0},is_substitution:function(w){return w instanceof Fe},is_state:function(w){return w instanceof ke},is_rule:function(w){return w instanceof Ye},is_variable:function(w){return w instanceof xe},is_stream:function(w){return w instanceof Te},is_anonymous_var:function(w){return w instanceof xe&&w.id==="_"},is_callable:function(w){return w instanceof H},is_number:function(w){return w instanceof Ne},is_integer:function(w){return w instanceof Ne&&!w.is_float},is_float:function(w){return w instanceof Ne&&w.is_float},is_term:function(w){return w instanceof H},is_atom:function(w){return w instanceof H&&w.args.length===0},is_ground:function(w){if(w instanceof xe)return!1;if(w instanceof H){for(var b=0;b0},is_list:function(w){return w instanceof H&&(w.indicator==="[]/0"||w.indicator==="./2")},is_empty_list:function(w){return w instanceof H&&w.indicator==="[]/0"},is_non_empty_list:function(w){return w instanceof H&&w.indicator==="./2"},is_fully_list:function(w){for(;w instanceof H&&w.indicator==="./2";)w=w.args[1];return w instanceof xe||w instanceof H&&w.indicator==="[]/0"},is_instantiated_list:function(w){for(;w instanceof H&&w.indicator==="./2";)w=w.args[1];return w instanceof H&&w.indicator==="[]/0"},is_unitary_list:function(w){return w instanceof H&&w.indicator==="./2"&&w.args[1]instanceof H&&w.args[1].indicator==="[]/0"},is_character:function(w){return w instanceof H&&(w.id.length===1||w.id.length>0&&w.id.length<=2&&n(w.id,0)>=65536)},is_character_code:function(w){return w instanceof Ne&&!w.is_float&&w.value>=0&&w.value<=1114111},is_byte:function(w){return w instanceof Ne&&!w.is_float&&w.value>=0&&w.value<=255},is_operator:function(w){return w instanceof H&&S.arithmetic.evaluation[w.indicator]},is_directive:function(w){return w instanceof H&&S.directive[w.indicator]!==void 0},is_builtin:function(w){return w instanceof H&&S.predicate[w.indicator]!==void 0},is_error:function(w){return w instanceof H&&w.indicator==="throw/1"},is_predicate_indicator:function(w){return w instanceof H&&w.indicator==="//2"&&w.args[0]instanceof H&&w.args[0].args.length===0&&w.args[1]instanceof Ne&&w.args[1].is_float===!1},is_flag:function(w){return w instanceof H&&w.args.length===0&&S.flag[w.id]!==void 0},is_value_flag:function(w,b){if(!S.type.is_flag(w))return!1;for(var y in S.flag[w.id].allowed)if(S.flag[w.id].allowed.hasOwnProperty(y)&&S.flag[w.id].allowed[y].equals(b))return!0;return!1},is_io_mode:function(w){return S.type.is_atom(w)&&["read","write","append"].indexOf(w.id)!==-1},is_stream_option:function(w){return S.type.is_term(w)&&(w.indicator==="alias/1"&&S.type.is_atom(w.args[0])||w.indicator==="reposition/1"&&S.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="type/1"&&S.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary")||w.indicator==="eof_action/1"&&S.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))},is_stream_position:function(w){return S.type.is_integer(w)&&w.value>=0||S.type.is_atom(w)&&(w.id==="end_of_stream"||w.id==="past_end_of_stream")},is_stream_property:function(w){return S.type.is_term(w)&&(w.indicator==="input/0"||w.indicator==="output/0"||w.indicator==="alias/1"&&(S.type.is_variable(w.args[0])||S.type.is_atom(w.args[0]))||w.indicator==="file_name/1"&&(S.type.is_variable(w.args[0])||S.type.is_atom(w.args[0]))||w.indicator==="position/1"&&(S.type.is_variable(w.args[0])||S.type.is_stream_position(w.args[0]))||w.indicator==="reposition/1"&&(S.type.is_variable(w.args[0])||S.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))||w.indicator==="type/1"&&(S.type.is_variable(w.args[0])||S.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary"))||w.indicator==="mode/1"&&(S.type.is_variable(w.args[0])||S.type.is_atom(w.args[0])&&(w.args[0].id==="read"||w.args[0].id==="write"||w.args[0].id==="append"))||w.indicator==="eof_action/1"&&(S.type.is_variable(w.args[0])||S.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))||w.indicator==="end_of_stream/1"&&(S.type.is_variable(w.args[0])||S.type.is_atom(w.args[0])&&(w.args[0].id==="at"||w.args[0].id==="past"||w.args[0].id==="not")))},is_streamable:function(w){return w.__proto__.stream!==void 0},is_read_option:function(w){return S.type.is_term(w)&&["variables/1","variable_names/1","singletons/1"].indexOf(w.indicator)!==-1},is_write_option:function(w){return S.type.is_term(w)&&(w.indicator==="quoted/1"&&S.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="ignore_ops/1"&&S.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="numbervars/1"&&S.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))},is_close_option:function(w){return S.type.is_term(w)&&w.indicator==="force/1"&&S.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")},is_modifiable_flag:function(w){return S.type.is_flag(w)&&S.flag[w.id].changeable},is_module:function(w){return w instanceof H&&w.indicator==="library/1"&&w.args[0]instanceof H&&w.args[0].args.length===0&&S.module[w.args[0].id]!==void 0}},arithmetic:{evaluation:{"e/0":{type_args:null,type_result:!0,fn:function(w){return Math.E}},"pi/0":{type_args:null,type_result:!0,fn:function(w){return Math.PI}},"tau/0":{type_args:null,type_result:!0,fn:function(w){return 2*Math.PI}},"epsilon/0":{type_args:null,type_result:!0,fn:function(w){return Number.EPSILON}},"+/1":{type_args:null,type_result:null,fn:function(w,b){return w}},"-/1":{type_args:null,type_result:null,fn:function(w,b){return-w}},"\\/1":{type_args:!1,type_result:!1,fn:function(w,b){return~w}},"abs/1":{type_args:null,type_result:null,fn:function(w,b){return Math.abs(w)}},"sign/1":{type_args:null,type_result:null,fn:function(w,b){return Math.sign(w)}},"float_integer_part/1":{type_args:!0,type_result:!1,fn:function(w,b){return parseInt(w)}},"float_fractional_part/1":{type_args:!0,type_result:!0,fn:function(w,b){return w-parseInt(w)}},"float/1":{type_args:null,type_result:!0,fn:function(w,b){return parseFloat(w)}},"floor/1":{type_args:!0,type_result:!1,fn:function(w,b){return Math.floor(w)}},"truncate/1":{type_args:!0,type_result:!1,fn:function(w,b){return parseInt(w)}},"round/1":{type_args:!0,type_result:!1,fn:function(w,b){return Math.round(w)}},"ceiling/1":{type_args:!0,type_result:!1,fn:function(w,b){return Math.ceil(w)}},"sin/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.sin(w)}},"cos/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.cos(w)}},"tan/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.tan(w)}},"asin/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.asin(w)}},"acos/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.acos(w)}},"atan/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.atan(w)}},"atan2/2":{type_args:null,type_result:!0,fn:function(w,b,y){return Math.atan2(w,b)}},"exp/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.exp(w)}},"sqrt/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.sqrt(w)}},"log/1":{type_args:null,type_result:!0,fn:function(w,b){return w>0?Math.log(w):S.error.evaluation("undefined",b.__call_indicator)}},"+/2":{type_args:null,type_result:null,fn:function(w,b,y){return w+b}},"-/2":{type_args:null,type_result:null,fn:function(w,b,y){return w-b}},"*/2":{type_args:null,type_result:null,fn:function(w,b,y){return w*b}},"//2":{type_args:null,type_result:!0,fn:function(w,b,y){return b?w/b:S.error.evaluation("zero_division",y.__call_indicator)}},"///2":{type_args:!1,type_result:!1,fn:function(w,b,y){return b?parseInt(w/b):S.error.evaluation("zero_division",y.__call_indicator)}},"**/2":{type_args:null,type_result:!0,fn:function(w,b,y){return Math.pow(w,b)}},"^/2":{type_args:null,type_result:null,fn:function(w,b,y){return Math.pow(w,b)}},"<>/2":{type_args:!1,type_result:!1,fn:function(w,b,y){return w>>b}},"/\\/2":{type_args:!1,type_result:!1,fn:function(w,b,y){return w&b}},"\\//2":{type_args:!1,type_result:!1,fn:function(w,b,y){return w|b}},"xor/2":{type_args:!1,type_result:!1,fn:function(w,b,y){return w^b}},"rem/2":{type_args:!1,type_result:!1,fn:function(w,b,y){return b?w%b:S.error.evaluation("zero_division",y.__call_indicator)}},"mod/2":{type_args:!1,type_result:!1,fn:function(w,b,y){return b?w-parseInt(w/b)*b:S.error.evaluation("zero_division",y.__call_indicator)}},"max/2":{type_args:null,type_result:null,fn:function(w,b,y){return Math.max(w,b)}},"min/2":{type_args:null,type_result:null,fn:function(w,b,y){return Math.min(w,b)}}}},directive:{"dynamic/1":function(w,b){var y=b.args[0];if(S.type.is_variable(y))w.throw_error(S.error.instantiation(b.indicator));else if(!S.type.is_compound(y)||y.indicator!=="//2")w.throw_error(S.error.type("predicate_indicator",y,b.indicator));else if(S.type.is_variable(y.args[0])||S.type.is_variable(y.args[1]))w.throw_error(S.error.instantiation(b.indicator));else if(!S.type.is_atom(y.args[0]))w.throw_error(S.error.type("atom",y.args[0],b.indicator));else if(!S.type.is_integer(y.args[1]))w.throw_error(S.error.type("integer",y.args[1],b.indicator));else{var F=b.args[0].args[0].id+"/"+b.args[0].args[1].value;w.session.public_predicates[F]=!0,w.session.rules[F]||(w.session.rules[F]=[])}},"multifile/1":function(w,b){var y=b.args[0];S.type.is_variable(y)?w.throw_error(S.error.instantiation(b.indicator)):!S.type.is_compound(y)||y.indicator!=="//2"?w.throw_error(S.error.type("predicate_indicator",y,b.indicator)):S.type.is_variable(y.args[0])||S.type.is_variable(y.args[1])?w.throw_error(S.error.instantiation(b.indicator)):S.type.is_atom(y.args[0])?S.type.is_integer(y.args[1])?w.session.multifile_predicates[b.args[0].args[0].id+"/"+b.args[0].args[1].value]=!0:w.throw_error(S.error.type("integer",y.args[1],b.indicator)):w.throw_error(S.error.type("atom",y.args[0],b.indicator))},"set_prolog_flag/2":function(w,b){var y=b.args[0],F=b.args[1];S.type.is_variable(y)||S.type.is_variable(F)?w.throw_error(S.error.instantiation(b.indicator)):S.type.is_atom(y)?S.type.is_flag(y)?S.type.is_value_flag(y,F)?S.type.is_modifiable_flag(y)?w.session.flag[y.id]=F:w.throw_error(S.error.permission("modify","flag",y)):w.throw_error(S.error.domain("flag_value",new H("+",[y,F]),b.indicator)):w.throw_error(S.error.domain("prolog_flag",y,b.indicator)):w.throw_error(S.error.type("atom",y,b.indicator))},"use_module/1":function(w,b){var y=b.args[0];if(S.type.is_variable(y))w.throw_error(S.error.instantiation(b.indicator));else if(!S.type.is_term(y))w.throw_error(S.error.type("term",y,b.indicator));else if(S.type.is_module(y)){var F=y.args[0].id;e(w.session.modules,F)===-1&&w.session.modules.push(F)}},"char_conversion/2":function(w,b){var y=b.args[0],F=b.args[1];S.type.is_variable(y)||S.type.is_variable(F)?w.throw_error(S.error.instantiation(b.indicator)):S.type.is_character(y)?S.type.is_character(F)?y.id===F.id?delete w.session.__char_conversion[y.id]:w.session.__char_conversion[y.id]=F.id:w.throw_error(S.error.type("character",F,b.indicator)):w.throw_error(S.error.type("character",y,b.indicator))},"op/3":function(w,b){var y=b.args[0],F=b.args[1],J=b.args[2];if(S.type.is_variable(y)||S.type.is_variable(F)||S.type.is_variable(J))w.throw_error(S.error.instantiation(b.indicator));else if(!S.type.is_integer(y))w.throw_error(S.error.type("integer",y,b.indicator));else if(!S.type.is_atom(F))w.throw_error(S.error.type("atom",F,b.indicator));else if(!S.type.is_atom(J))w.throw_error(S.error.type("atom",J,b.indicator));else if(y.value<0||y.value>1200)w.throw_error(S.error.domain("operator_priority",y,b.indicator));else if(J.id===",")w.throw_error(S.error.permission("modify","operator",J,b.indicator));else if(J.id==="|"&&(y.value<1001||F.id.length!==3))w.throw_error(S.error.permission("modify","operator",J,b.indicator));else if(["fy","fx","yf","xf","xfx","yfx","xfy"].indexOf(F.id)===-1)w.throw_error(S.error.domain("operator_specifier",F,b.indicator));else{var X={prefix:null,infix:null,postfix:null};for(var $ in w.session.__operators)if(w.session.__operators.hasOwnProperty($)){var ie=w.session.__operators[$][J.id];ie&&(e(ie,"fx")!==-1&&(X.prefix={priority:$,type:"fx"}),e(ie,"fy")!==-1&&(X.prefix={priority:$,type:"fy"}),e(ie,"xf")!==-1&&(X.postfix={priority:$,type:"xf"}),e(ie,"yf")!==-1&&(X.postfix={priority:$,type:"yf"}),e(ie,"xfx")!==-1&&(X.infix={priority:$,type:"xfx"}),e(ie,"xfy")!==-1&&(X.infix={priority:$,type:"xfy"}),e(ie,"yfx")!==-1&&(X.infix={priority:$,type:"yfx"}))}var Se;switch(F.id){case"fy":case"fx":Se="prefix";break;case"yf":case"xf":Se="postfix";break;default:Se="infix";break}if(((X.prefix&&Se==="prefix"||X.postfix&&Se==="postfix"||X.infix&&Se==="infix")&&X[Se].type!==F.id||X.infix&&Se==="postfix"||X.postfix&&Se==="infix")&&y.value!==0)w.throw_error(S.error.permission("create","operator",J,b.indicator));else return X[Se]&&(me(w.session.__operators[X[Se].priority][J.id],F.id),w.session.__operators[X[Se].priority][J.id].length===0&&delete w.session.__operators[X[Se].priority][J.id]),y.value>0&&(w.session.__operators[y.value]||(w.session.__operators[y.value.toString()]={}),w.session.__operators[y.value][J.id]||(w.session.__operators[y.value][J.id]=[]),w.session.__operators[y.value][J.id].push(F.id)),!0}}},predicate:{"op/3":function(w,b,y){S.directive["op/3"](w,y)&&w.success(b)},"current_op/3":function(w,b,y){var F=y.args[0],J=y.args[1],X=y.args[2],$=[];for(var ie in w.session.__operators)for(var Se in w.session.__operators[ie])for(var Re=0;Re/2"){var F=w.points,J=w.session.format_success,X=w.session.format_error;w.session.format_success=function(Re){return Re.substitution},w.session.format_error=function(Re){return Re.goal},w.points=[new ke(y.args[0].args[0],b.substitution,b)];var $=function(Re){w.points=F,w.session.format_success=J,w.session.format_error=X,Re===!1?w.prepend([new ke(b.goal.replace(y.args[1]),b.substitution,b)]):S.type.is_error(Re)?w.throw_error(Re.args[0]):Re===null?(w.prepend([b]),w.__calls.shift()(null)):w.prepend([new ke(b.goal.replace(y.args[0].args[1]).apply(Re),b.substitution.apply(Re),b)])};w.__calls.unshift($)}else{var ie=new ke(b.goal.replace(y.args[0]),b.substitution,b),Se=new ke(b.goal.replace(y.args[1]),b.substitution,b);w.prepend([ie,Se])}},"!/0":function(w,b,y){var F,J,X=[];for(F=b,J=null;F.parent!==null&&F.parent.goal.search(y);)if(J=F,F=F.parent,F.goal!==null){var $=F.goal.select();if($&&$.id==="call"&&$.search(y)){F=J;break}}for(var ie=w.points.length-1;ie>=0;ie--){for(var Se=w.points[ie],Re=Se.parent;Re!==null&&Re!==F.parent;)Re=Re.parent;Re===null&&Re!==F.parent&&X.push(Se)}w.points=X.reverse(),w.success(b)},"\\+/1":function(w,b,y){var F=y.args[0];S.type.is_variable(F)?w.throw_error(S.error.instantiation(w.level)):S.type.is_callable(F)?w.prepend([new ke(b.goal.replace(new H(",",[new H(",",[new H("call",[F]),new H("!",[])]),new H("fail",[])])),b.substitution,b),new ke(b.goal.replace(null),b.substitution,b)]):w.throw_error(S.error.type("callable",F,w.level))},"->/2":function(w,b,y){var F=b.goal.replace(new H(",",[y.args[0],new H(",",[new H("!"),y.args[1]])]));w.prepend([new ke(F,b.substitution,b)])},"fail/0":function(w,b,y){},"false/0":function(w,b,y){},"true/0":function(w,b,y){w.success(b)},"call/1":ne(1),"call/2":ne(2),"call/3":ne(3),"call/4":ne(4),"call/5":ne(5),"call/6":ne(6),"call/7":ne(7),"call/8":ne(8),"once/1":function(w,b,y){var F=y.args[0];w.prepend([new ke(b.goal.replace(new H(",",[new H("call",[F]),new H("!",[])])),b.substitution,b)])},"forall/2":function(w,b,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(b.goal.replace(new H("\\+",[new H(",",[new H("call",[F]),new H("\\+",[new H("call",[J])])])])),b.substitution,b)])},"repeat/0":function(w,b,y){w.prepend([new ke(b.goal.replace(null),b.substitution,b),b])},"throw/1":function(w,b,y){S.type.is_variable(y.args[0])?w.throw_error(S.error.instantiation(w.level)):w.throw_error(y.args[0])},"catch/3":function(w,b,y){var F=w.points;w.points=[],w.prepend([new ke(y.args[0],b.substitution,b)]);var J=w.session.format_success,X=w.session.format_error;w.session.format_success=function(ie){return ie.substitution},w.session.format_error=function(ie){return ie.goal};var $=function(ie){var Se=w.points;if(w.points=F,w.session.format_success=J,w.session.format_error=X,S.type.is_error(ie)){for(var Re=[],at=w.points.length-1;at>=0;at--){for(var tr=w.points[at],dt=tr.parent;dt!==null&&dt!==b.parent;)dt=dt.parent;dt===null&&dt!==b.parent&&Re.push(tr)}w.points=Re;var jt=w.get_flag("occurs_check").indicator==="true/0",tr=new ke,bt=S.unify(ie.args[0],y.args[1],jt);bt!==null?(tr.substitution=b.substitution.apply(bt),tr.goal=b.goal.replace(y.args[2]).apply(bt),tr.parent=b,w.prepend([tr])):w.throw_error(ie.args[0])}else if(ie!==!1){for(var ln=ie===null?[]:[new ke(b.goal.apply(ie).replace(null),b.substitution.apply(ie),b)],kr=[],at=Se.length-1;at>=0;at--){kr.push(Se[at]);var mr=Se[at].goal!==null?Se[at].goal.select():null;if(S.type.is_term(mr)&&mr.indicator==="!/0")break}var Sr=o(kr,function(Kr){return Kr.goal===null&&(Kr.goal=new H("true",[])),Kr=new ke(b.goal.replace(new H("catch",[Kr.goal,y.args[1],y.args[2]])),b.substitution.apply(Kr.substitution),Kr.parent),Kr.exclude=y.args[0].variables(),Kr}).reverse();w.prepend(Sr),w.prepend(ln),ie===null&&(this.current_limit=0,w.__calls.shift()(null))}};w.__calls.unshift($)},"=/2":function(w,b,y){var F=w.get_flag("occurs_check").indicator==="true/0",J=new ke,X=S.unify(y.args[0],y.args[1],F);X!==null&&(J.goal=b.goal.apply(X).replace(null),J.substitution=b.substitution.apply(X),J.parent=b,w.prepend([J]))},"unify_with_occurs_check/2":function(w,b,y){var F=new ke,J=S.unify(y.args[0],y.args[1],!0);J!==null&&(F.goal=b.goal.apply(J).replace(null),F.substitution=b.substitution.apply(J),F.parent=b,w.prepend([F]))},"\\=/2":function(w,b,y){var F=w.get_flag("occurs_check").indicator==="true/0",J=S.unify(y.args[0],y.args[1],F);J===null&&w.success(b)},"subsumes_term/2":function(w,b,y){var F=w.get_flag("occurs_check").indicator==="true/0",J=S.unify(y.args[1],y.args[0],F);J!==null&&y.args[1].apply(J).equals(y.args[1])&&w.success(b)},"findall/3":function(w,b,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(S.type.is_variable(J))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_callable(J))w.throw_error(S.error.type("callable",J,y.indicator));else if(!S.type.is_variable(X)&&!S.type.is_list(X))w.throw_error(S.error.type("list",X,y.indicator));else{var $=w.next_free_variable(),ie=new H(",",[J,new H("=",[$,F])]),Se=w.points,Re=w.session.limit,at=w.session.format_success;w.session.format_success=function(tr){return tr.substitution},w.add_goal(ie,!0,b);var dt=[],jt=function(tr){if(tr!==!1&&tr!==null&&!S.type.is_error(tr))w.__calls.unshift(jt),dt.push(tr.links[$.id]),w.session.limit=w.current_limit;else if(w.points=Se,w.session.limit=Re,w.session.format_success=at,S.type.is_error(tr))w.throw_error(tr.args[0]);else if(w.current_limit>0){for(var bt=new H("[]"),ln=dt.length-1;ln>=0;ln--)bt=new H(".",[dt[ln],bt]);w.prepend([new ke(b.goal.replace(new H("=",[X,bt])),b.substitution,b)])}};w.__calls.unshift(jt)}},"bagof/3":function(w,b,y){var F,J=y.args[0],X=y.args[1],$=y.args[2];if(S.type.is_variable(X))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_callable(X))w.throw_error(S.error.type("callable",X,y.indicator));else if(!S.type.is_variable($)&&!S.type.is_list($))w.throw_error(S.error.type("list",$,y.indicator));else{var ie=w.next_free_variable(),Se;X.indicator==="^/2"?(Se=X.args[0].variables(),X=X.args[1]):Se=[],Se=Se.concat(J.variables());for(var Re=X.variables().filter(function(Sr){return e(Se,Sr)===-1}),at=new H("[]"),dt=Re.length-1;dt>=0;dt--)at=new H(".",[new xe(Re[dt]),at]);var jt=new H(",",[X,new H("=",[ie,new H(",",[at,J])])]),tr=w.points,bt=w.session.limit,ln=w.session.format_success;w.session.format_success=function(Sr){return Sr.substitution},w.add_goal(jt,!0,b);var kr=[],mr=function(Sr){if(Sr!==!1&&Sr!==null&&!S.type.is_error(Sr)){w.__calls.unshift(mr);var Kr=!1,Kn=Sr.links[ie.id].args[0],Ms=Sr.links[ie.id].args[1];for(var Ri in kr)if(kr.hasOwnProperty(Ri)){var gs=kr[Ri];if(gs.variables.equals(Kn)){gs.answers.push(Ms),Kr=!0;break}}Kr||kr.push({variables:Kn,answers:[Ms]}),w.session.limit=w.current_limit}else if(w.points=tr,w.session.limit=bt,w.session.format_success=ln,S.type.is_error(Sr))w.throw_error(Sr.args[0]);else if(w.current_limit>0){for(var io=[],Pi=0;Pi=0;so--)Os=new H(".",[Sr[so],Os]);io.push(new ke(b.goal.replace(new H(",",[new H("=",[at,kr[Pi].variables]),new H("=",[$,Os])])),b.substitution,b))}w.prepend(io)}};w.__calls.unshift(mr)}},"setof/3":function(w,b,y){var F,J=y.args[0],X=y.args[1],$=y.args[2];if(S.type.is_variable(X))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_callable(X))w.throw_error(S.error.type("callable",X,y.indicator));else if(!S.type.is_variable($)&&!S.type.is_list($))w.throw_error(S.error.type("list",$,y.indicator));else{var ie=w.next_free_variable(),Se;X.indicator==="^/2"?(Se=X.args[0].variables(),X=X.args[1]):Se=[],Se=Se.concat(J.variables());for(var Re=X.variables().filter(function(Sr){return e(Se,Sr)===-1}),at=new H("[]"),dt=Re.length-1;dt>=0;dt--)at=new H(".",[new xe(Re[dt]),at]);var jt=new H(",",[X,new H("=",[ie,new H(",",[at,J])])]),tr=w.points,bt=w.session.limit,ln=w.session.format_success;w.session.format_success=function(Sr){return Sr.substitution},w.add_goal(jt,!0,b);var kr=[],mr=function(Sr){if(Sr!==!1&&Sr!==null&&!S.type.is_error(Sr)){w.__calls.unshift(mr);var Kr=!1,Kn=Sr.links[ie.id].args[0],Ms=Sr.links[ie.id].args[1];for(var Ri in kr)if(kr.hasOwnProperty(Ri)){var gs=kr[Ri];if(gs.variables.equals(Kn)){gs.answers.push(Ms),Kr=!0;break}}Kr||kr.push({variables:Kn,answers:[Ms]}),w.session.limit=w.current_limit}else if(w.points=tr,w.session.limit=bt,w.session.format_success=ln,S.type.is_error(Sr))w.throw_error(Sr.args[0]);else if(w.current_limit>0){for(var io=[],Pi=0;Pi=0;so--)Os=new H(".",[Sr[so],Os]);io.push(new ke(b.goal.replace(new H(",",[new H("=",[at,kr[Pi].variables]),new H("=",[$,Os])])),b.substitution,b))}w.prepend(io)}};w.__calls.unshift(mr)}},"functor/3":function(w,b,y){var F,J=y.args[0],X=y.args[1],$=y.args[2];if(S.type.is_variable(J)&&(S.type.is_variable(X)||S.type.is_variable($)))w.throw_error(S.error.instantiation("functor/3"));else if(!S.type.is_variable($)&&!S.type.is_integer($))w.throw_error(S.error.type("integer",y.args[2],"functor/3"));else if(!S.type.is_variable(X)&&!S.type.is_atomic(X))w.throw_error(S.error.type("atomic",y.args[1],"functor/3"));else if(S.type.is_integer(X)&&S.type.is_integer($)&&$.value!==0)w.throw_error(S.error.type("atom",y.args[1],"functor/3"));else if(S.type.is_variable(J)){if(y.args[2].value>=0){for(var ie=[],Se=0;Se<$.value;Se++)ie.push(w.next_free_variable());var Re=S.type.is_integer(X)?X:new H(X.id,ie);w.prepend([new ke(b.goal.replace(new H("=",[J,Re])),b.substitution,b)])}}else{var at=S.type.is_integer(J)?J:new H(J.id,[]),dt=S.type.is_integer(J)?new Ne(0,!1):new Ne(J.args.length,!1),jt=new H(",",[new H("=",[at,X]),new H("=",[dt,$])]);w.prepend([new ke(b.goal.replace(jt),b.substitution,b)])}},"arg/3":function(w,b,y){if(S.type.is_variable(y.args[0])||S.type.is_variable(y.args[1]))w.throw_error(S.error.instantiation(y.indicator));else if(y.args[0].value<0)w.throw_error(S.error.domain("not_less_than_zero",y.args[0],y.indicator));else if(!S.type.is_compound(y.args[1]))w.throw_error(S.error.type("compound",y.args[1],y.indicator));else{var F=y.args[0].value;if(F>0&&F<=y.args[1].args.length){var J=new H("=",[y.args[1].args[F-1],y.args[2]]);w.prepend([new ke(b.goal.replace(J),b.substitution,b)])}}},"=../2":function(w,b,y){var F;if(S.type.is_variable(y.args[0])&&(S.type.is_variable(y.args[1])||S.type.is_non_empty_list(y.args[1])&&S.type.is_variable(y.args[1].args[0])))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_fully_list(y.args[1]))w.throw_error(S.error.type("list",y.args[1],y.indicator));else if(S.type.is_variable(y.args[0])){if(!S.type.is_variable(y.args[1])){var X=[];for(F=y.args[1].args[1];F.indicator==="./2";)X.push(F.args[0]),F=F.args[1];S.type.is_variable(y.args[0])&&S.type.is_variable(F)?w.throw_error(S.error.instantiation(y.indicator)):X.length===0&&S.type.is_compound(y.args[1].args[0])?w.throw_error(S.error.type("atomic",y.args[1].args[0],y.indicator)):X.length>0&&(S.type.is_compound(y.args[1].args[0])||S.type.is_number(y.args[1].args[0]))?w.throw_error(S.error.type("atom",y.args[1].args[0],y.indicator)):X.length===0?w.prepend([new ke(b.goal.replace(new H("=",[y.args[1].args[0],y.args[0]],b)),b.substitution,b)]):w.prepend([new ke(b.goal.replace(new H("=",[new H(y.args[1].args[0].id,X),y.args[0]])),b.substitution,b)])}}else{if(S.type.is_atomic(y.args[0]))F=new H(".",[y.args[0],new H("[]")]);else{F=new H("[]");for(var J=y.args[0].args.length-1;J>=0;J--)F=new H(".",[y.args[0].args[J],F]);F=new H(".",[new H(y.args[0].id),F])}w.prepend([new ke(b.goal.replace(new H("=",[F,y.args[1]])),b.substitution,b)])}},"copy_term/2":function(w,b,y){var F=y.args[0].rename(w);w.prepend([new ke(b.goal.replace(new H("=",[F,y.args[1]])),b.substitution,b.parent)])},"term_variables/2":function(w,b,y){var F=y.args[0],J=y.args[1];if(!S.type.is_fully_list(J))w.throw_error(S.error.type("list",J,y.indicator));else{var X=g(o(we(F.variables()),function($){return new xe($)}));w.prepend([new ke(b.goal.replace(new H("=",[J,X])),b.substitution,b)])}},"clause/2":function(w,b,y){if(S.type.is_variable(y.args[0]))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_callable(y.args[0]))w.throw_error(S.error.type("callable",y.args[0],y.indicator));else if(!S.type.is_variable(y.args[1])&&!S.type.is_callable(y.args[1]))w.throw_error(S.error.type("callable",y.args[1],y.indicator));else if(w.session.rules[y.args[0].indicator]!==void 0)if(w.is_public_predicate(y.args[0].indicator)){var F=[];for(var J in w.session.rules[y.args[0].indicator])if(w.session.rules[y.args[0].indicator].hasOwnProperty(J)){var X=w.session.rules[y.args[0].indicator][J];w.session.renamed_variables={},X=X.rename(w),X.body===null&&(X.body=new H("true"));var $=new H(",",[new H("=",[X.head,y.args[0]]),new H("=",[X.body,y.args[1]])]);F.push(new ke(b.goal.replace($),b.substitution,b))}w.prepend(F)}else w.throw_error(S.error.permission("access","private_procedure",y.args[0].indicator,y.indicator))},"current_predicate/1":function(w,b,y){var F=y.args[0];if(!S.type.is_variable(F)&&(!S.type.is_compound(F)||F.indicator!=="//2"))w.throw_error(S.error.type("predicate_indicator",F,y.indicator));else if(!S.type.is_variable(F)&&!S.type.is_variable(F.args[0])&&!S.type.is_atom(F.args[0]))w.throw_error(S.error.type("atom",F.args[0],y.indicator));else if(!S.type.is_variable(F)&&!S.type.is_variable(F.args[1])&&!S.type.is_integer(F.args[1]))w.throw_error(S.error.type("integer",F.args[1],y.indicator));else{var J=[];for(var X in w.session.rules)if(w.session.rules.hasOwnProperty(X)){var $=X.lastIndexOf("/"),ie=X.substr(0,$),Se=parseInt(X.substr($+1,X.length-($+1))),Re=new H("/",[new H(ie),new Ne(Se,!1)]),at=new H("=",[Re,F]);J.push(new ke(b.goal.replace(at),b.substitution,b))}w.prepend(J)}},"asserta/1":function(w,b,y){if(S.type.is_variable(y.args[0]))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_callable(y.args[0]))w.throw_error(S.error.type("callable",y.args[0],y.indicator));else{var F,J;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],J=Ee(y.args[0].args[1])):(F=y.args[0],J=null),S.type.is_callable(F)?J!==null&&!S.type.is_callable(J)?w.throw_error(S.error.type("callable",J,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator]=[new Ye(F,J,!0)].concat(w.session.rules[F.indicator]),w.success(b)):w.throw_error(S.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(S.error.type("callable",F,y.indicator))}},"assertz/1":function(w,b,y){if(S.type.is_variable(y.args[0]))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_callable(y.args[0]))w.throw_error(S.error.type("callable",y.args[0],y.indicator));else{var F,J;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],J=Ee(y.args[0].args[1])):(F=y.args[0],J=null),S.type.is_callable(F)?J!==null&&!S.type.is_callable(J)?w.throw_error(S.error.type("callable",J,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator].push(new Ye(F,J,!0)),w.success(b)):w.throw_error(S.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(S.error.type("callable",F,y.indicator))}},"retract/1":function(w,b,y){if(S.type.is_variable(y.args[0]))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_callable(y.args[0]))w.throw_error(S.error.type("callable",y.args[0],y.indicator));else{var F,J;if(y.args[0].indicator===":-/2"?(F=y.args[0].args[0],J=y.args[0].args[1]):(F=y.args[0],J=new H("true")),typeof b.retract>"u")if(w.is_public_predicate(F.indicator)){if(w.session.rules[F.indicator]!==void 0){for(var X=[],$=0;$w.get_flag("max_arity").value)w.throw_error(S.error.representation("max_arity",y.indicator));else{var F=y.args[0].args[0].id+"/"+y.args[0].args[1].value;w.is_public_predicate(F)?(delete w.session.rules[F],w.success(b)):w.throw_error(S.error.permission("modify","static_procedure",F,y.indicator))}},"atom_length/2":function(w,b,y){if(S.type.is_variable(y.args[0]))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_atom(y.args[0]))w.throw_error(S.error.type("atom",y.args[0],y.indicator));else if(!S.type.is_variable(y.args[1])&&!S.type.is_integer(y.args[1]))w.throw_error(S.error.type("integer",y.args[1],y.indicator));else if(S.type.is_integer(y.args[1])&&y.args[1].value<0)w.throw_error(S.error.domain("not_less_than_zero",y.args[1],y.indicator));else{var F=new Ne(y.args[0].id.length,!1);w.prepend([new ke(b.goal.replace(new H("=",[F,y.args[1]])),b.substitution,b)])}},"atom_concat/3":function(w,b,y){var F,J,X=y.args[0],$=y.args[1],ie=y.args[2];if(S.type.is_variable(ie)&&(S.type.is_variable(X)||S.type.is_variable($)))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_variable(X)&&!S.type.is_atom(X))w.throw_error(S.error.type("atom",X,y.indicator));else if(!S.type.is_variable($)&&!S.type.is_atom($))w.throw_error(S.error.type("atom",$,y.indicator));else if(!S.type.is_variable(ie)&&!S.type.is_atom(ie))w.throw_error(S.error.type("atom",ie,y.indicator));else{var Se=S.type.is_variable(X),Re=S.type.is_variable($);if(!Se&&!Re)J=new H("=",[ie,new H(X.id+$.id)]),w.prepend([new ke(b.goal.replace(J),b.substitution,b)]);else if(Se&&!Re)F=ie.id.substr(0,ie.id.length-$.id.length),F+$.id===ie.id&&(J=new H("=",[X,new H(F)]),w.prepend([new ke(b.goal.replace(J),b.substitution,b)]));else if(Re&&!Se)F=ie.id.substr(X.id.length),X.id+F===ie.id&&(J=new H("=",[$,new H(F)]),w.prepend([new ke(b.goal.replace(J),b.substitution,b)]));else{for(var at=[],dt=0;dt<=ie.id.length;dt++){var jt=new H(ie.id.substr(0,dt)),tr=new H(ie.id.substr(dt));J=new H(",",[new H("=",[jt,X]),new H("=",[tr,$])]),at.push(new ke(b.goal.replace(J),b.substitution,b))}w.prepend(at)}}},"sub_atom/5":function(w,b,y){var F,J=y.args[0],X=y.args[1],$=y.args[2],ie=y.args[3],Se=y.args[4];if(S.type.is_variable(J))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_variable(X)&&!S.type.is_integer(X))w.throw_error(S.error.type("integer",X,y.indicator));else if(!S.type.is_variable($)&&!S.type.is_integer($))w.throw_error(S.error.type("integer",$,y.indicator));else if(!S.type.is_variable(ie)&&!S.type.is_integer(ie))w.throw_error(S.error.type("integer",ie,y.indicator));else if(S.type.is_integer(X)&&X.value<0)w.throw_error(S.error.domain("not_less_than_zero",X,y.indicator));else if(S.type.is_integer($)&&$.value<0)w.throw_error(S.error.domain("not_less_than_zero",$,y.indicator));else if(S.type.is_integer(ie)&&ie.value<0)w.throw_error(S.error.domain("not_less_than_zero",ie,y.indicator));else{var Re=[],at=[],dt=[];if(S.type.is_variable(X))for(F=0;F<=J.id.length;F++)Re.push(F);else Re.push(X.value);if(S.type.is_variable($))for(F=0;F<=J.id.length;F++)at.push(F);else at.push($.value);if(S.type.is_variable(ie))for(F=0;F<=J.id.length;F++)dt.push(F);else dt.push(ie.value);var jt=[];for(var tr in Re)if(Re.hasOwnProperty(tr)){F=Re[tr];for(var bt in at)if(at.hasOwnProperty(bt)){var ln=at[bt],kr=J.id.length-F-ln;if(e(dt,kr)!==-1&&F+ln+kr===J.id.length){var mr=J.id.substr(F,ln);if(J.id===J.id.substr(0,F)+mr+J.id.substr(F+ln,kr)){var Sr=new H("=",[new H(mr),Se]),Kr=new H("=",[X,new Ne(F)]),Kn=new H("=",[$,new Ne(ln)]),Ms=new H("=",[ie,new Ne(kr)]),Ri=new H(",",[new H(",",[new H(",",[Kr,Kn]),Ms]),Sr]);jt.push(new ke(b.goal.replace(Ri),b.substitution,b))}}}}w.prepend(jt)}},"atom_chars/2":function(w,b,y){var F=y.args[0],J=y.args[1];if(S.type.is_variable(F)&&S.type.is_variable(J))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_variable(F)&&!S.type.is_atom(F))w.throw_error(S.error.type("atom",F,y.indicator));else if(S.type.is_variable(F)){for(var ie=J,Se=S.type.is_variable(F),Re="";ie.indicator==="./2";){if(S.type.is_character(ie.args[0]))Re+=ie.args[0].id;else if(S.type.is_variable(ie.args[0])&&Se){w.throw_error(S.error.instantiation(y.indicator));return}else if(!S.type.is_variable(ie.args[0])){w.throw_error(S.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}S.type.is_variable(ie)&&Se?w.throw_error(S.error.instantiation(y.indicator)):!S.type.is_empty_list(ie)&&!S.type.is_variable(ie)?w.throw_error(S.error.type("list",J,y.indicator)):w.prepend([new ke(b.goal.replace(new H("=",[new H(Re),F])),b.substitution,b)])}else{for(var X=new H("[]"),$=F.id.length-1;$>=0;$--)X=new H(".",[new H(F.id.charAt($)),X]);w.prepend([new ke(b.goal.replace(new H("=",[J,X])),b.substitution,b)])}},"atom_codes/2":function(w,b,y){var F=y.args[0],J=y.args[1];if(S.type.is_variable(F)&&S.type.is_variable(J))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_variable(F)&&!S.type.is_atom(F))w.throw_error(S.error.type("atom",F,y.indicator));else if(S.type.is_variable(F)){for(var ie=J,Se=S.type.is_variable(F),Re="";ie.indicator==="./2";){if(S.type.is_character_code(ie.args[0]))Re+=u(ie.args[0].value);else if(S.type.is_variable(ie.args[0])&&Se){w.throw_error(S.error.instantiation(y.indicator));return}else if(!S.type.is_variable(ie.args[0])){w.throw_error(S.error.representation("character_code",y.indicator));return}ie=ie.args[1]}S.type.is_variable(ie)&&Se?w.throw_error(S.error.instantiation(y.indicator)):!S.type.is_empty_list(ie)&&!S.type.is_variable(ie)?w.throw_error(S.error.type("list",J,y.indicator)):w.prepend([new ke(b.goal.replace(new H("=",[new H(Re),F])),b.substitution,b)])}else{for(var X=new H("[]"),$=F.id.length-1;$>=0;$--)X=new H(".",[new Ne(n(F.id,$),!1),X]);w.prepend([new ke(b.goal.replace(new H("=",[J,X])),b.substitution,b)])}},"char_code/2":function(w,b,y){var F=y.args[0],J=y.args[1];if(S.type.is_variable(F)&&S.type.is_variable(J))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_variable(F)&&!S.type.is_character(F))w.throw_error(S.error.type("character",F,y.indicator));else if(!S.type.is_variable(J)&&!S.type.is_integer(J))w.throw_error(S.error.type("integer",J,y.indicator));else if(!S.type.is_variable(J)&&!S.type.is_character_code(J))w.throw_error(S.error.representation("character_code",y.indicator));else if(S.type.is_variable(J)){var X=new Ne(n(F.id,0),!1);w.prepend([new ke(b.goal.replace(new H("=",[X,J])),b.substitution,b)])}else{var $=new H(u(J.value));w.prepend([new ke(b.goal.replace(new H("=",[$,F])),b.substitution,b)])}},"number_chars/2":function(w,b,y){var F,J=y.args[0],X=y.args[1];if(S.type.is_variable(J)&&S.type.is_variable(X))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_variable(J)&&!S.type.is_number(J))w.throw_error(S.error.type("number",J,y.indicator));else if(!S.type.is_variable(X)&&!S.type.is_list(X))w.throw_error(S.error.type("list",X,y.indicator));else{var $=S.type.is_variable(J);if(!S.type.is_variable(X)){var ie=X,Se=!0;for(F="";ie.indicator==="./2";){if(S.type.is_character(ie.args[0]))F+=ie.args[0].id;else if(S.type.is_variable(ie.args[0]))Se=!1;else if(!S.type.is_variable(ie.args[0])){w.throw_error(S.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}if(Se=Se&&S.type.is_empty_list(ie),!S.type.is_empty_list(ie)&&!S.type.is_variable(ie)){w.throw_error(S.error.type("list",X,y.indicator));return}if(!Se&&$){w.throw_error(S.error.instantiation(y.indicator));return}else if(Se)if(S.type.is_variable(ie)&&$){w.throw_error(S.error.instantiation(y.indicator));return}else{var Re=w.parse(F),at=Re.value;!S.type.is_number(at)||Re.tokens[Re.tokens.length-1].space?w.throw_error(S.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new ke(b.goal.replace(new H("=",[J,at])),b.substitution,b)]);return}}if(!$){F=J.toString();for(var dt=new H("[]"),jt=F.length-1;jt>=0;jt--)dt=new H(".",[new H(F.charAt(jt)),dt]);w.prepend([new ke(b.goal.replace(new H("=",[X,dt])),b.substitution,b)])}}},"number_codes/2":function(w,b,y){var F,J=y.args[0],X=y.args[1];if(S.type.is_variable(J)&&S.type.is_variable(X))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_variable(J)&&!S.type.is_number(J))w.throw_error(S.error.type("number",J,y.indicator));else if(!S.type.is_variable(X)&&!S.type.is_list(X))w.throw_error(S.error.type("list",X,y.indicator));else{var $=S.type.is_variable(J);if(!S.type.is_variable(X)){var ie=X,Se=!0;for(F="";ie.indicator==="./2";){if(S.type.is_character_code(ie.args[0]))F+=u(ie.args[0].value);else if(S.type.is_variable(ie.args[0]))Se=!1;else if(!S.type.is_variable(ie.args[0])){w.throw_error(S.error.type("character_code",ie.args[0],y.indicator));return}ie=ie.args[1]}if(Se=Se&&S.type.is_empty_list(ie),!S.type.is_empty_list(ie)&&!S.type.is_variable(ie)){w.throw_error(S.error.type("list",X,y.indicator));return}if(!Se&&$){w.throw_error(S.error.instantiation(y.indicator));return}else if(Se)if(S.type.is_variable(ie)&&$){w.throw_error(S.error.instantiation(y.indicator));return}else{var Re=w.parse(F),at=Re.value;!S.type.is_number(at)||Re.tokens[Re.tokens.length-1].space?w.throw_error(S.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new ke(b.goal.replace(new H("=",[J,at])),b.substitution,b)]);return}}if(!$){F=J.toString();for(var dt=new H("[]"),jt=F.length-1;jt>=0;jt--)dt=new H(".",[new Ne(n(F,jt),!1),dt]);w.prepend([new ke(b.goal.replace(new H("=",[X,dt])),b.substitution,b)])}}},"upcase_atom/2":function(w,b,y){var F=y.args[0],J=y.args[1];S.type.is_variable(F)?w.throw_error(S.error.instantiation(y.indicator)):S.type.is_atom(F)?!S.type.is_variable(J)&&!S.type.is_atom(J)?w.throw_error(S.error.type("atom",J,y.indicator)):w.prepend([new ke(b.goal.replace(new H("=",[J,new H(F.id.toUpperCase(),[])])),b.substitution,b)]):w.throw_error(S.error.type("atom",F,y.indicator))},"downcase_atom/2":function(w,b,y){var F=y.args[0],J=y.args[1];S.type.is_variable(F)?w.throw_error(S.error.instantiation(y.indicator)):S.type.is_atom(F)?!S.type.is_variable(J)&&!S.type.is_atom(J)?w.throw_error(S.error.type("atom",J,y.indicator)):w.prepend([new ke(b.goal.replace(new H("=",[J,new H(F.id.toLowerCase(),[])])),b.substitution,b)]):w.throw_error(S.error.type("atom",F,y.indicator))},"atomic_list_concat/2":function(w,b,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(b.goal.replace(new H("atomic_list_concat",[F,new H("",[]),J])),b.substitution,b)])},"atomic_list_concat/3":function(w,b,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(S.type.is_variable(J)||S.type.is_variable(F)&&S.type.is_variable(X))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_variable(F)&&!S.type.is_list(F))w.throw_error(S.error.type("list",F,y.indicator));else if(!S.type.is_variable(X)&&!S.type.is_atom(X))w.throw_error(S.error.type("atom",X,y.indicator));else if(S.type.is_variable(X)){for(var ie="",Se=F;S.type.is_term(Se)&&Se.indicator==="./2";){if(!S.type.is_atom(Se.args[0])&&!S.type.is_number(Se.args[0])){w.throw_error(S.error.type("atomic",Se.args[0],y.indicator));return}ie!==""&&(ie+=J.id),S.type.is_atom(Se.args[0])?ie+=Se.args[0].id:ie+=""+Se.args[0].value,Se=Se.args[1]}ie=new H(ie,[]),S.type.is_variable(Se)?w.throw_error(S.error.instantiation(y.indicator)):!S.type.is_term(Se)||Se.indicator!=="[]/0"?w.throw_error(S.error.type("list",F,y.indicator)):w.prepend([new ke(b.goal.replace(new H("=",[ie,X])),b.substitution,b)])}else{var $=g(o(X.id.split(J.id),function(Re){return new H(Re,[])}));w.prepend([new ke(b.goal.replace(new H("=",[$,F])),b.substitution,b)])}},"@=/2":function(w,b,y){S.compare(y.args[0],y.args[1])>0&&w.success(b)},"@>=/2":function(w,b,y){S.compare(y.args[0],y.args[1])>=0&&w.success(b)},"compare/3":function(w,b,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(!S.type.is_variable(F)&&!S.type.is_atom(F))w.throw_error(S.error.type("atom",F,y.indicator));else if(S.type.is_atom(F)&&["<",">","="].indexOf(F.id)===-1)w.throw_error(S.type.domain("order",F,y.indicator));else{var $=S.compare(J,X);$=$===0?"=":$===-1?"<":">",w.prepend([new ke(b.goal.replace(new H("=",[F,new H($,[])])),b.substitution,b)])}},"is/2":function(w,b,y){var F=y.args[1].interpret(w);S.type.is_number(F)?w.prepend([new ke(b.goal.replace(new H("=",[y.args[0],F],w.level)),b.substitution,b)]):w.throw_error(F)},"between/3":function(w,b,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(S.type.is_variable(F)||S.type.is_variable(J))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_integer(F))w.throw_error(S.error.type("integer",F,y.indicator));else if(!S.type.is_integer(J))w.throw_error(S.error.type("integer",J,y.indicator));else if(!S.type.is_variable(X)&&!S.type.is_integer(X))w.throw_error(S.error.type("integer",X,y.indicator));else if(S.type.is_variable(X)){var $=[new ke(b.goal.replace(new H("=",[X,F])),b.substitution,b)];F.value=X.value&&w.success(b)},"succ/2":function(w,b,y){var F=y.args[0],J=y.args[1];S.type.is_variable(F)&&S.type.is_variable(J)?w.throw_error(S.error.instantiation(y.indicator)):!S.type.is_variable(F)&&!S.type.is_integer(F)?w.throw_error(S.error.type("integer",F,y.indicator)):!S.type.is_variable(J)&&!S.type.is_integer(J)?w.throw_error(S.error.type("integer",J,y.indicator)):!S.type.is_variable(F)&&F.value<0?w.throw_error(S.error.domain("not_less_than_zero",F,y.indicator)):!S.type.is_variable(J)&&J.value<0?w.throw_error(S.error.domain("not_less_than_zero",J,y.indicator)):(S.type.is_variable(J)||J.value>0)&&(S.type.is_variable(F)?w.prepend([new ke(b.goal.replace(new H("=",[F,new Ne(J.value-1,!1)])),b.substitution,b)]):w.prepend([new ke(b.goal.replace(new H("=",[J,new Ne(F.value+1,!1)])),b.substitution,b)]))},"=:=/2":function(w,b,y){var F=S.arithmetic_compare(w,y.args[0],y.args[1]);S.type.is_term(F)?w.throw_error(F):F===0&&w.success(b)},"=\\=/2":function(w,b,y){var F=S.arithmetic_compare(w,y.args[0],y.args[1]);S.type.is_term(F)?w.throw_error(F):F!==0&&w.success(b)},"/2":function(w,b,y){var F=S.arithmetic_compare(w,y.args[0],y.args[1]);S.type.is_term(F)?w.throw_error(F):F>0&&w.success(b)},">=/2":function(w,b,y){var F=S.arithmetic_compare(w,y.args[0],y.args[1]);S.type.is_term(F)?w.throw_error(F):F>=0&&w.success(b)},"var/1":function(w,b,y){S.type.is_variable(y.args[0])&&w.success(b)},"atom/1":function(w,b,y){S.type.is_atom(y.args[0])&&w.success(b)},"atomic/1":function(w,b,y){S.type.is_atomic(y.args[0])&&w.success(b)},"compound/1":function(w,b,y){S.type.is_compound(y.args[0])&&w.success(b)},"integer/1":function(w,b,y){S.type.is_integer(y.args[0])&&w.success(b)},"float/1":function(w,b,y){S.type.is_float(y.args[0])&&w.success(b)},"number/1":function(w,b,y){S.type.is_number(y.args[0])&&w.success(b)},"nonvar/1":function(w,b,y){S.type.is_variable(y.args[0])||w.success(b)},"ground/1":function(w,b,y){y.variables().length===0&&w.success(b)},"acyclic_term/1":function(w,b,y){for(var F=b.substitution.apply(b.substitution),J=y.args[0].variables(),X=0;X0?bt[bt.length-1]:null,bt!==null&&(jt=z(w,bt,0,w.__get_max_priority(),!1))}if(jt.type===p&&jt.len===bt.length-1&&ln.value==="."){jt=jt.value.rename(w);var kr=new H("=",[J,jt]);if(ie.variables){var mr=g(o(we(jt.variables()),function(Sr){return new xe(Sr)}));kr=new H(",",[kr,new H("=",[ie.variables,mr])])}if(ie.variable_names){var mr=g(o(we(jt.variables()),function(Kr){var Kn;for(Kn in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(Kn)&&w.session.renamed_variables[Kn]===Kr)break;return new H("=",[new H(Kn,[]),new xe(Kr)])}));kr=new H(",",[kr,new H("=",[ie.variable_names,mr])])}if(ie.singletons){var mr=g(o(new Ye(jt,null).singleton_variables(),function(Kr){var Kn;for(Kn in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(Kn)&&w.session.renamed_variables[Kn]===Kr)break;return new H("=",[new H(Kn,[]),new xe(Kr)])}));kr=new H(",",[kr,new H("=",[ie.singletons,mr])])}w.prepend([new ke(b.goal.replace(kr),b.substitution,b)])}else jt.type===p?w.throw_error(S.error.syntax(bt[jt.len],"unexpected token",!1)):w.throw_error(jt.value)}}},"write/1":function(w,b,y){var F=y.args[0];w.prepend([new ke(b.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("write",[new xe("S"),F])])),b.substitution,b)])},"write/2":function(w,b,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(b.goal.replace(new H("write_term",[F,J,new H(".",[new H("quoted",[new H("false",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),b.substitution,b)])},"writeq/1":function(w,b,y){var F=y.args[0];w.prepend([new ke(b.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("writeq",[new xe("S"),F])])),b.substitution,b)])},"writeq/2":function(w,b,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(b.goal.replace(new H("write_term",[F,J,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),b.substitution,b)])},"write_canonical/1":function(w,b,y){var F=y.args[0];w.prepend([new ke(b.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("write_canonical",[new xe("S"),F])])),b.substitution,b)])},"write_canonical/2":function(w,b,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(b.goal.replace(new H("write_term",[F,J,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("true")]),new H(".",[new H("numbervars",[new H("false")]),new H("[]",[])])])])])),b.substitution,b)])},"write_term/2":function(w,b,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(b.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("write_term",[new xe("S"),F,J])])),b.substitution,b)])},"write_term/3":function(w,b,y){var F=y.args[0],J=y.args[1],X=y.args[2],$=S.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(S.type.is_variable(F)||S.type.is_variable(X))w.throw_error(S.error.instantiation(y.indicator));else if(!S.type.is_list(X))w.throw_error(S.error.type("list",X,y.indicator));else if(!S.type.is_stream(F)&&!S.type.is_atom(F))w.throw_error(S.error.domain("stream_or_alias",F,y.indicator));else if(!S.type.is_stream($)||$.stream===null)w.throw_error(S.error.existence("stream",F,y.indicator));else if($.input)w.throw_error(S.error.permission("output","stream",F,y.indicator));else if($.type==="binary")w.throw_error(S.error.permission("output","binary_stream",F,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")w.throw_error(S.error.permission("output","past_end_of_stream",F,y.indicator));else{for(var ie={},Se=X,Re;S.type.is_term(Se)&&Se.indicator==="./2";){if(Re=Se.args[0],S.type.is_variable(Re)){w.throw_error(S.error.instantiation(y.indicator));return}else if(!S.type.is_write_option(Re)){w.throw_error(S.error.domain("write_option",Re,y.indicator));return}ie[Re.id]=Re.args[0].id==="true",Se=Se.args[1]}if(Se.indicator!=="[]/0"){S.type.is_variable(Se)?w.throw_error(S.error.instantiation(y.indicator)):w.throw_error(S.error.type("list",X,y.indicator));return}else{ie.session=w.session;var at=J.toString(ie);$.stream.put(at,$.position),typeof $.position=="number"&&($.position+=at.length),w.success(b)}}},"halt/0":function(w,b,y){w.points=[]},"halt/1":function(w,b,y){var F=y.args[0];S.type.is_variable(F)?w.throw_error(S.error.instantiation(y.indicator)):S.type.is_integer(F)?w.points=[]:w.throw_error(S.error.type("integer",F,y.indicator))},"current_prolog_flag/2":function(w,b,y){var F=y.args[0],J=y.args[1];if(!S.type.is_variable(F)&&!S.type.is_atom(F))w.throw_error(S.error.type("atom",F,y.indicator));else if(!S.type.is_variable(F)&&!S.type.is_flag(F))w.throw_error(S.error.domain("prolog_flag",F,y.indicator));else{var X=[];for(var $ in S.flag)if(S.flag.hasOwnProperty($)){var ie=new H(",",[new H("=",[new H($),F]),new H("=",[w.get_flag($),J])]);X.push(new ke(b.goal.replace(ie),b.substitution,b))}w.prepend(X)}},"set_prolog_flag/2":function(w,b,y){var F=y.args[0],J=y.args[1];S.type.is_variable(F)||S.type.is_variable(J)?w.throw_error(S.error.instantiation(y.indicator)):S.type.is_atom(F)?S.type.is_flag(F)?S.type.is_value_flag(F,J)?S.type.is_modifiable_flag(F)?(w.session.flag[F.id]=J,w.success(b)):w.throw_error(S.error.permission("modify","flag",F)):w.throw_error(S.error.domain("flag_value",new H("+",[F,J]),y.indicator)):w.throw_error(S.error.domain("prolog_flag",F,y.indicator)):w.throw_error(S.error.type("atom",F,y.indicator))}},flag:{bounded:{allowed:[new H("true"),new H("false")],value:new H("true"),changeable:!1},max_integer:{allowed:[new Ne(Number.MAX_SAFE_INTEGER)],value:new Ne(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Ne(Number.MIN_SAFE_INTEGER)],value:new Ne(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new H("down"),new H("toward_zero")],value:new H("toward_zero"),changeable:!1},char_conversion:{allowed:[new H("on"),new H("off")],value:new H("on"),changeable:!0},debug:{allowed:[new H("on"),new H("off")],value:new H("off"),changeable:!0},max_arity:{allowed:[new H("unbounded")],value:new H("unbounded"),changeable:!1},unknown:{allowed:[new H("error"),new H("fail"),new H("warning")],value:new H("error"),changeable:!0},double_quotes:{allowed:[new H("chars"),new H("codes"),new H("atom")],value:new H("codes"),changeable:!0},occurs_check:{allowed:[new H("false"),new H("true")],value:new H("false"),changeable:!0},dialect:{allowed:[new H("tau")],value:new H("tau"),changeable:!1},version_data:{allowed:[new H("tau",[new Ne(t.major,!1),new Ne(t.minor,!1),new Ne(t.patch,!1),new H(t.status)])],value:new H("tau",[new Ne(t.major,!1),new Ne(t.minor,!1),new Ne(t.patch,!1),new H(t.status)]),changeable:!1},nodejs:{allowed:[new H("yes"),new H("no")],value:new H(typeof gl<"u"&&gl.exports?"yes":"no"),changeable:!1}},unify:function(w,b,y){y=y===void 0?!1:y;for(var F=[{left:w,right:b}],J={};F.length!==0;){var X=F.pop();if(w=X.left,b=X.right,S.type.is_term(w)&&S.type.is_term(b)){if(w.indicator!==b.indicator)return null;for(var $=0;$J.value?1:0:J}else return F},operate:function(w,b){if(S.type.is_operator(b)){for(var y=S.type.is_operator(b),F=[],J,X=!1,$=0;$w.get_flag("max_integer").value||J0?w.start+w.matches[0].length:w.start,J=y?new H("token_not_found"):new H("found",[new H(w.value.toString())]),X=new H(".",[new H("line",[new Ne(w.line+1)]),new H(".",[new H("column",[new Ne(F+1)]),new H(".",[J,new H("[]",[])])])]);return new H("error",[new H("syntax_error",[new H(b)]),X])},syntax_by_predicate:function(w,b){return new H("error",[new H("syntax_error",[new H(w)]),Z(b)])}},warning:{singleton:function(w,b,y){for(var F=new H("[]"),J=w.length-1;J>=0;J--)F=new H(".",[new xe(w[J]),F]);return new H("warning",[new H("singleton_variables",[F,Z(b)]),new H(".",[new H("line",[new Ne(y,!1)]),new H("[]")])])},failed_goal:function(w,b){return new H("warning",[new H("failed_goal",[w]),new H(".",[new H("line",[new Ne(b,!1)]),new H("[]")])])}},format_variable:function(w){return"_"+w},format_answer:function(w,b,F){b instanceof be&&(b=b.thread);var F=F||{};if(F.session=b?b.session:void 0,S.type.is_error(w))return"uncaught exception: "+w.args[0].toString();if(w===!1)return"false.";if(w===null)return"limit exceeded ;";var J=0,X="";if(S.type.is_substitution(w)){var $=w.domain(!0);w=w.filter(function(Re,at){return!S.type.is_variable(at)||$.indexOf(at.id)!==-1&&Re!==at.id})}for(var ie in w.links)w.links.hasOwnProperty(ie)&&(J++,X!==""&&(X+=", "),X+=ie.toString(F)+" = "+w.links[ie].toString(F));var Se=typeof b>"u"||b.points.length>0?" ;":".";return J===0?"true"+Se:X+Se},flatten_error:function(w){if(!S.type.is_error(w))return null;w=w.args[0];var b={};return b.type=w.args[0].id,b.thrown=b.type==="syntax_error"?null:w.args[1].id,b.expected=null,b.found=null,b.representation=null,b.existence=null,b.existence_type=null,b.line=null,b.column=null,b.permission_operation=null,b.permission_type=null,b.evaluation_type=null,b.type==="type_error"||b.type==="domain_error"?(b.expected=w.args[0].args[0].id,b.found=w.args[0].args[1].toString()):b.type==="syntax_error"?w.args[1].indicator==="./2"?(b.expected=w.args[0].args[0].id,b.found=w.args[1].args[1].args[1].args[0],b.found=b.found.id==="token_not_found"?b.found.id:b.found.args[0].id,b.line=w.args[1].args[0].args[0].value,b.column=w.args[1].args[1].args[0].args[0].value):b.thrown=w.args[1].id:b.type==="permission_error"?(b.found=w.args[0].args[2].toString(),b.permission_operation=w.args[0].args[0].id,b.permission_type=w.args[0].args[1].id):b.type==="evaluation_error"?b.evaluation_type=w.args[0].args[0].id:b.type==="representation_error"?b.representation=w.args[0].args[0].id:b.type==="existence_error"&&(b.existence=w.args[0].args[1].toString(),b.existence_type=w.args[0].args[0].id),b},create:function(w){return new S.type.Session(w)}};typeof gl<"u"?gl.exports=S:window.pl=S})()});function cme(t,e,r){t.prepend(r.map(o=>new La.default.type.State(e.goal.replace(o),e.substitution,e)))}function fH(t){let e=Ame.get(t.session);if(e==null)throw new Error("Assertion failed: A project should have been registered for the active session");return e}function fme(t,e){Ame.set(t,e),t.consult(`:- use_module(library(${ndt.id})).`)}var pH,La,ume,Qh,tdt,rdt,Ame,ndt,pme=Et(()=>{Ge();pH=Ze(e2()),La=Ze(AH()),ume=Ze(ve("vm")),{is_atom:Qh,is_variable:tdt,is_instantiated_list:rdt}=La.default.type;Ame=new WeakMap;ndt=new La.default.type.Module("constraints",{"project_workspaces_by_descriptor/3":(t,e,r)=>{let[o,a,n]=r.args;if(!Qh(o)||!Qh(a)){t.throw_error(La.default.error.instantiation(r.indicator));return}let u=G.parseIdent(o.id),A=G.makeDescriptor(u,a.id),h=fH(t).tryWorkspaceByDescriptor(A);tdt(n)&&h!==null&&cme(t,e,[new La.default.type.Term("=",[n,new La.default.type.Term(String(h.relativeCwd))])]),Qh(n)&&h!==null&&h.relativeCwd===n.id&&t.success(e)},"workspace_field/3":(t,e,r)=>{let[o,a,n]=r.args;if(!Qh(o)||!Qh(a)){t.throw_error(La.default.error.instantiation(r.indicator));return}let A=fH(t).tryWorkspaceByCwd(o.id);if(A==null)return;let p=(0,pH.default)(A.manifest.raw,a.id);typeof p>"u"||cme(t,e,[new La.default.type.Term("=",[n,new La.default.type.Term(typeof p=="object"?JSON.stringify(p):p)])])},"workspace_field_test/3":(t,e,r)=>{let[o,a,n]=r.args;t.prepend([new La.default.type.State(e.goal.replace(new La.default.type.Term("workspace_field_test",[o,a,n,new La.default.type.Term("[]",[])])),e.substitution,e)])},"workspace_field_test/4":(t,e,r)=>{let[o,a,n,u]=r.args;if(!Qh(o)||!Qh(a)||!Qh(n)||!rdt(u)){t.throw_error(La.default.error.instantiation(r.indicator));return}let p=fH(t).tryWorkspaceByCwd(o.id);if(p==null)return;let h=(0,pH.default)(p.manifest.raw,a.id);if(typeof h>"u")return;let E={$$:h};for(let[v,x]of u.toJavaScript().entries())E[`$${v}`]=x;ume.default.runInNewContext(n.id,E)&&t.success(e)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"])});var A2={};Vt(A2,{Constraints:()=>gH,DependencyType:()=>mme});function to(t){if(t instanceof NE.default.type.Num)return t.value;if(t instanceof NE.default.type.Term)switch(t.indicator){case"throw/1":return to(t.args[0]);case"error/1":return to(t.args[0]);case"error/2":if(t.args[0]instanceof NE.default.type.Term&&t.args[0].indicator==="syntax_error/1")return Object.assign(to(t.args[0]),...to(t.args[1]));{let e=to(t.args[0]);return e.message+=` (in ${to(t.args[1])})`,e}case"syntax_error/1":return new Jt(43,`Syntax error: ${to(t.args[0])}`);case"existence_error/2":return new Jt(44,`Existence error: ${to(t.args[0])} ${to(t.args[1])} not found`);case"instantiation_error/0":return new Jt(75,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:to(t.args[0])};case"column/1":return{column:to(t.args[0])};case"found/1":return{found:to(t.args[0])};case"./2":return[to(t.args[0])].concat(to(t.args[1]));case"//2":return`${to(t.args[0])}/${to(t.args[1])}`;default:return t.id}throw`couldn't pretty print because of unsupported node ${t}`}function gme(t){let e;try{e=to(t)}catch(r){throw typeof r=="string"?new Jt(42,`Unknown error: ${t} (note: ${r})`):r}return typeof e.line<"u"&&typeof e.column<"u"&&(e.message+=` at line ${e.line}, column ${e.column}`),e}function Gg(t){return t.id==="null"?null:`${t.toJavaScript()}`}function idt(t){if(t.id==="null")return null;{let e=t.toJavaScript();if(typeof e!="string")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return JSON.stringify(e)}}}function Fh(t){return typeof t=="string"?`'${t}'`:"[]"}var dme,NE,mme,hme,hH,gH,f2=Et(()=>{Ge();Ge();Pt();dme=Ze(Kde()),NE=Ze(AH());l2();pme();(0,dme.default)(NE.default);mme=(o=>(o.Dependencies="dependencies",o.DevDependencies="devDependencies",o.PeerDependencies="peerDependencies",o))(mme||{}),hme=["dependencies","devDependencies","peerDependencies"];hH=class{constructor(e,r){let o=1e3*e.workspaces.length;this.session=NE.default.create(o),fme(this.session,e),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(e=>{this.session.answer(r=>{e(r)})})}async*makeQuery(e){let r=this.session.query(e);if(r!==!0)throw gme(r);for(;;){let o=await this.fetchNextAnswer();if(o===null)throw new Jt(79,"Resolution limit exceeded");if(!o)break;if(o.id==="throw")throw gme(o);yield o}}};gH=class t{constructor(e){this.source="";this.project=e;let r=e.configuration.get("constraintsPath");oe.existsSync(r)&&(this.source=oe.readFileSync(r,"utf8"))}static async find(e){return new t(e)}getProjectDatabase(){let e="";for(let r of hme)e+=`dependency_type(${r}). +`;for(let r of this.project.workspacesByCwd.values()){let o=r.relativeCwd;e+=`workspace(${Fh(o)}). +`,e+=`workspace_ident(${Fh(o)}, ${Fh(G.stringifyIdent(r.anchoredLocator))}). +`,e+=`workspace_version(${Fh(o)}, ${Fh(r.manifest.version)}). +`;for(let a of hme)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${Fh(o)}, ${Fh(G.stringifyIdent(n))}, ${Fh(n.range)}, ${a}). +`}return e+=`workspace(_) :- false. +`,e+=`workspace_ident(_, _) :- false. +`,e+=`workspace_version(_, _) :- false. +`,e+=`workspace_has_dependency(_, _, _, _) :- false. +`,e}getDeclarations(){let e="";return e+=`gen_enforced_dependency(_, _, _, _) :- false. +`,e+=`gen_enforced_field(_, _, _) :- false. +`,e}get fullSource(){return`${this.getProjectDatabase()} +${this.source} +${this.getDeclarations()}`}createSession(){return new hH(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),o=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:u,dependencyType:A}of e){let p=a2([A,G.stringifyIdent(n)]),h=He.getMapWithDefault(o,a.cwd);He.getMapWithDefault(h,p).set(u??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:u}of r){let A=a2(n),p=He.getMapWithDefault(o,a.cwd);He.getMapWithDefault(p,A).set(JSON.parse(u)??void 0,new Set)}return{manifestUpdates:o,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=V.resolve(this.project.cwd,Gg(o.links.WorkspaceCwd)),n=Gg(o.links.DependencyIdent),u=Gg(o.links.DependencyRange),A=Gg(o.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=G.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:u,dependencyType:A})}return He.sortMap(r,[({dependencyRange:o})=>o!==null?"0":"1",({workspace:o})=>G.stringifyIdent(o.anchoredLocator),({dependencyIdent:o})=>G.stringifyIdent(o)])}async genEnforcedFields(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=V.resolve(this.project.cwd,Gg(o.links.WorkspaceCwd)),n=Gg(o.links.FieldPath),u=idt(o.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:n,fieldValue:u})}return He.sortMap(r,[({workspace:o})=>G.stringifyIdent(o.anchoredLocator),({fieldPath:o})=>o])}async*query(e){let r=this.createSession();for await(let o of r.makeQuery(e)){let a={};for(let[n,u]of Object.entries(o.links))n!=="_"&&(a[n]=Gg(u));yield a}}}});var Pme=_(Ak=>{"use strict";Object.defineProperty(Ak,"__esModule",{value:!0});function b2(t){let e=[...t.caches],r=e.shift();return r===void 0?Dme():{get(o,a,n={miss:()=>Promise.resolve()}){return r.get(o,a,n).catch(()=>b2({caches:e}).get(o,a,n))},set(o,a){return r.set(o,a).catch(()=>b2({caches:e}).set(o,a))},delete(o){return r.delete(o).catch(()=>b2({caches:e}).delete(o))},clear(){return r.clear().catch(()=>b2({caches:e}).clear())}}}function Dme(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}Ak.createFallbackableCache=b2;Ak.createNullCache=Dme});var Sme=_((OWt,bme)=>{bme.exports=Pme()});var xme=_(xH=>{"use strict";Object.defineProperty(xH,"__esModule",{value:!0});function Bdt(t={serializable:!0}){let e={};return{get(r,o,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let u=o(),A=a&&a.miss||(()=>Promise.resolve());return u.then(p=>A(p)).then(()=>u)},set(r,o){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}xH.createInMemoryCache=Bdt});var Qme=_((_Wt,kme)=>{kme.exports=xme()});var Rme=_(eu=>{"use strict";Object.defineProperty(eu,"__esModule",{value:!0});function vdt(t,e,r){let o={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===kH.WithinHeaders?o:{}},queryParameters(){return t===kH.WithinQueryParameters?o:{}}}}function Ddt(t){let e=0,r=()=>(e++,new Promise(o=>{setTimeout(()=>{o(t(r))},Math.min(100*e,1e3))}));return t(r)}function Fme(t,e=(r,o)=>Promise.resolve()){return Object.assign(t,{wait(r){return Fme(t.then(o=>Promise.all([e(o,r),o])).then(o=>o[1]))}})}function Pdt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[r],t[r]=o}return t}function bdt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function Sdt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var xdt="4.22.1",kdt=t=>()=>t.transporter.requester.destroy(),kH={WithinQueryParameters:0,WithinHeaders:1};eu.AuthMode=kH;eu.addMethods=bdt;eu.createAuth=vdt;eu.createRetryablePromise=Ddt;eu.createWaitablePromise=Fme;eu.destroy=kdt;eu.encode=Sdt;eu.shuffle=Pdt;eu.version=xdt});var S2=_((qWt,Tme)=>{Tme.exports=Rme()});var Nme=_(QH=>{"use strict";Object.defineProperty(QH,"__esModule",{value:!0});var Qdt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};QH.MethodEnum=Qdt});var x2=_((GWt,Lme)=>{Lme.exports=Nme()});var Xme=_(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});var Ome=x2();function FH(t,e){let r=t||{},o=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(o[a]=r[a])}),{data:Object.entries(o).length>0?o:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var k2={Read:1,Write:2,Any:3},YE={Up:1,Down:2,Timeouted:3},Ume=2*60*1e3;function TH(t,e=YE.Up){return{...t,status:e,lastUpdate:Date.now()}}function _me(t){return t.status===YE.Up||Date.now()-t.lastUpdate>Ume}function Hme(t){return t.status===YE.Timeouted&&Date.now()-t.lastUpdate<=Ume}function NH(t){return typeof t=="string"?{protocol:"https",url:t,accept:k2.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||k2.Any}}function Fdt(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(TH(r))))).then(r=>{let o=r.filter(A=>_me(A)),a=r.filter(A=>Hme(A)),n=[...o,...a],u=n.length>0?n.map(A=>NH(A)):e;return{getTimeout(A,p){return(a.length===0&&A===0?1:a.length+3+A)*p},statelessHosts:u}})}var Rdt=({isTimedOut:t,status:e})=>!t&&~~e===0,Tdt=t=>{let e=t.status;return t.isTimedOut||Rdt(t)||~~(e/100)!==2&&~~(e/100)!==4},Ndt=({status:t})=>~~(t/100)===2,Ldt=(t,e)=>Tdt(t)?e.onRetry(t):Ndt(t)?e.onSuccess(t):e.onFail(t);function Mme(t,e,r,o){let a=[],n=Wme(r,o),u=Kme(t,o),A=r.method,p=r.method!==Ome.MethodEnum.Get?{}:{...r.data,...o.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...o.queryParameters},E=0,I=(v,x)=>{let C=v.pop();if(C===void 0)throw Jme(RH(a));let R={data:n,headers:u,method:A,url:Gme(C,r.path,h),connectTimeout:x(E,t.timeouts.connect),responseTimeout:x(E,o.timeout)},L=z=>{let te={request:R,response:z,host:C,triesLeft:v.length};return a.push(te),te},U={onSuccess:z=>qme(z),onRetry(z){let te=L(z);return z.isTimedOut&&E++,Promise.all([t.logger.info("Retryable failure",LH(te)),t.hostsCache.set(C,TH(C,z.isTimedOut?YE.Timeouted:YE.Down))]).then(()=>I(v,x))},onFail(z){throw L(z),jme(z,RH(a))}};return t.requester.send(R).then(z=>Ldt(z,U))};return Fdt(t.hostsCache,e).then(v=>I([...v.statelessHosts].reverse(),v.getTimeout))}function Mdt(t){let{hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,hosts:p,queryParameters:h,headers:E}=t,I={hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,headers:E,queryParameters:h,hosts:p.map(v=>NH(v)),read(v,x){let C=FH(x,I.timeouts.read),R=()=>Mme(I,I.hosts.filter(z=>(z.accept&k2.Read)!==0),v,C);if((C.cacheable!==void 0?C.cacheable:v.cacheable)!==!0)return R();let U={request:v,mappedRequestOptions:C,transporter:{queryParameters:I.queryParameters,headers:I.headers}};return I.responsesCache.get(U,()=>I.requestsCache.get(U,()=>I.requestsCache.set(U,R()).then(z=>Promise.all([I.requestsCache.delete(U),z]),z=>Promise.all([I.requestsCache.delete(U),Promise.reject(z)])).then(([z,te])=>te)),{miss:z=>I.responsesCache.set(U,z)})},write(v,x){return Mme(I,I.hosts.filter(C=>(C.accept&k2.Write)!==0),v,FH(x,I.timeouts.write))}};return I}function Odt(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let o=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(o)===-1&&(e.value=`${e.value}${o}`),e}};return e}function qme(t){try{return JSON.parse(t.content)}catch(e){throw zme(e.message,t)}}function jme({content:t,status:e},r){let o=t;try{o=JSON.parse(t).message}catch{}return Vme(o,e,r)}function Udt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function Gme(t,e,r){let o=Yme(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return o.length&&(a+=`?${o}`),a}function Yme(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>Udt("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function Wme(t,e){if(t.method===Ome.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function Kme(t,e){let r={...t.headers,...e.headers},o={};return Object.keys(r).forEach(a=>{let n=r[a];o[a.toLowerCase()]=n}),o}function RH(t){return t.map(e=>LH(e))}function LH(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function Vme(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function zme(t,e){return{name:"DeserializationError",message:t,response:e}}function Jme(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}Qi.CallEnum=k2;Qi.HostStatusEnum=YE;Qi.createApiError=Vme;Qi.createDeserializationError=zme;Qi.createMappedRequestOptions=FH;Qi.createRetryError=Jme;Qi.createStatefulHost=TH;Qi.createStatelessHost=NH;Qi.createTransporter=Mdt;Qi.createUserAgent=Odt;Qi.deserializeFailure=jme;Qi.deserializeSuccess=qme;Qi.isStatefulHostTimeouted=Hme;Qi.isStatefulHostUp=_me;Qi.serializeData=Wme;Qi.serializeHeaders=Kme;Qi.serializeQueryParameters=Yme;Qi.serializeUrl=Gme;Qi.stackFrameWithoutCredentials=LH;Qi.stackTraceWithoutCredentials=RH});var Q2=_((WWt,Zme)=>{Zme.exports=Xme()});var $me=_(Rh=>{"use strict";Object.defineProperty(Rh,"__esModule",{value:!0});var WE=S2(),_dt=Q2(),F2=x2(),Hdt=t=>{let e=t.region||"us",r=WE.createAuth(WE.AuthMode.WithinHeaders,t.appId,t.apiKey),o=_dt.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return WE.addMethods({appId:a,transporter:o},t.methods)},qdt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Post,path:"2/abtests",data:e},r),jdt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Delete,path:WE.encode("2/abtests/%s",e)},r),Gdt=t=>(e,r)=>t.transporter.read({method:F2.MethodEnum.Get,path:WE.encode("2/abtests/%s",e)},r),Ydt=t=>e=>t.transporter.read({method:F2.MethodEnum.Get,path:"2/abtests"},e),Wdt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Post,path:WE.encode("2/abtests/%s/stop",e)},r);Rh.addABTest=qdt;Rh.createAnalyticsClient=Hdt;Rh.deleteABTest=jdt;Rh.getABTest=Gdt;Rh.getABTests=Ydt;Rh.stopABTest=Wdt});var tye=_((VWt,eye)=>{eye.exports=$me()});var nye=_(R2=>{"use strict";Object.defineProperty(R2,"__esModule",{value:!0});var MH=S2(),Kdt=Q2(),rye=x2(),Vdt=t=>{let e=t.region||"us",r=MH.createAuth(MH.AuthMode.WithinHeaders,t.appId,t.apiKey),o=Kdt.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return MH.addMethods({appId:t.appId,transporter:o},t.methods)},zdt=t=>e=>t.transporter.read({method:rye.MethodEnum.Get,path:"1/strategies/personalization"},e),Jdt=t=>(e,r)=>t.transporter.write({method:rye.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);R2.createPersonalizationClient=Vdt;R2.getPersonalizationStrategy=zdt;R2.setPersonalizationStrategy=Jdt});var sye=_((JWt,iye)=>{iye.exports=nye()});var Eye=_(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});var Gt=S2(),Ma=Q2(),Ir=x2(),Xdt=ve("crypto");function fk(t){let e=r=>t.request(r).then(o=>{if(t.batch!==void 0&&t.batch(o.hits),!t.shouldStop(o))return o.cursor?e({cursor:o.cursor}):e({page:(r.page||0)+1})});return e({})}var Zdt=t=>{let e=t.appId,r=Gt.createAuth(t.authMode!==void 0?t.authMode:Gt.AuthMode.WithinHeaders,e,t.apiKey),o=Ma.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:Ma.CallEnum.Read},{url:`${e}.algolia.net`,accept:Ma.CallEnum.Write}].concat(Gt.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:o,appId:e,addAlgoliaAgent(n,u){o.userAgent.add({segment:n,version:u})},clearCache(){return Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})}};return Gt.addMethods(a,t.methods)};function oye(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function aye(){return{name:"ObjectNotFoundError",message:"Object not found."}}function lye(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var $dt=t=>(e,r)=>{let{queryParameters:o,...a}=r||{},n={acl:e,...o!==void 0?{queryParameters:o}:{}},u=(A,p)=>Gt.createRetryablePromise(h=>T2(t)(A.key,p).catch(E=>{if(E.status!==404)throw E;return h()}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:"1/keys",data:n},a),u)},emt=t=>(e,r,o)=>{let a=Ma.createMappedRequestOptions(o);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Ir.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},tmt=t=>(e,r,o)=>t.transporter.write({method:Ir.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},o),rmt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(o,a)=>KE(t)(o.taskID,a)),pk=t=>(e,r,o)=>{let a=(n,u)=>N2(t)(e,{methods:{waitTask:es}}).waitTask(n.taskID,u);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},o),a)},nmt=t=>(e,r,o)=>pk(t)(e,r,{...o,scope:[gk.Rules]}),imt=t=>(e,r,o)=>pk(t)(e,r,{...o,scope:[gk.Settings]}),smt=t=>(e,r,o)=>pk(t)(e,r,{...o,scope:[gk.Synonyms]}),omt=t=>(e,r)=>e.method===Ir.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),amt=t=>(e,r)=>{let o=(a,n)=>Gt.createRetryablePromise(u=>T2(t)(e,n).then(u).catch(A=>{if(A.status!==404)throw A}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/keys/%s",e)},r),o)},lmt=t=>(e,r,o)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>KE(t)(n.taskID,u))},cmt=()=>(t,e)=>{let r=Ma.serializeQueryParameters(e),o=Xdt.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(o+r).toString("base64")},T2=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/keys/%s",e)},r),cye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/task/%s",e.toString())},r),umt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),Amt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/logs"},e),fmt=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,o=e.match(r);if(o===null)throw lye();return parseInt(o[1],10)-Math.round(new Date().getTime()/1e3)},pmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping/top"},e),hmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/clusters/mapping/%s",e)},r),gmt=t=>e=>{let{retrieveMappings:r,...o}=e||{};return r===!0&&(o.getClusters=!0),t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping/pending"},o)},N2=t=>(e,r={})=>{let o={transporter:t.transporter,appId:t.appId,indexName:e};return Gt.addMethods(o,r.methods)},dmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/keys"},e),mmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters"},e),ymt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/indexes"},e),Emt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping"},e),Cmt=t=>(e,r,o)=>{let a=(n,u)=>N2(t)(e,{methods:{waitTask:es}}).waitTask(n.taskID,u);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},o),a)},wmt=t=>(e,r)=>{let o=(a,n)=>Promise.all(Object.keys(a.taskID).map(u=>N2(t)(u,{methods:{waitTask:es}}).waitTask(a.taskID[u],n)));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),o)},Imt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),Bmt=t=>(e,r)=>{let o=e.map(a=>({...a,params:Ma.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},r)},vmt=t=>(e,r)=>Promise.all(e.map(o=>{let{facetName:a,facetQuery:n,...u}=o.params;return N2(t)(o.indexName,{methods:{searchForFacetValues:dye}}).searchForFacetValues(a,n,{...r,...u})})),Dmt=t=>(e,r)=>{let o=Ma.createMappedRequestOptions(r);return o.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Ir.MethodEnum.Delete,path:"1/clusters/mapping"},o)},Pmt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},o),(n,u)=>KE(t)(n.taskID,u))},bmt=t=>(e,r)=>{let o=(a,n)=>Gt.createRetryablePromise(u=>T2(t)(e,n).catch(A=>{if(A.status!==404)throw A;return u()}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/keys/%s/restore",e)},r),o)},Smt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>KE(t)(n.taskID,u))},xmt=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},o),kmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),Qmt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(o,a)=>KE(t)(o.taskID,a)),Fmt=t=>(e,r)=>{let o=Object.assign({},r),{queryParameters:a,...n}=r||{},u=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=E=>Object.keys(o).filter(I=>A.indexOf(I)!==-1).every(I=>{if(Array.isArray(E[I])&&Array.isArray(o[I])){let v=E[I];return v.length===o[I].length&&v.every((x,C)=>x===o[I][C])}else return E[I]===o[I]}),h=(E,I)=>Gt.createRetryablePromise(v=>T2(t)(e,I).then(x=>p(x)?Promise.resolve():v()));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:Gt.encode("1/keys/%s",e),data:u},n),h)},KE=t=>(e,r)=>Gt.createRetryablePromise(o=>cye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),uye=t=>(e,r)=>{let o=(a,n)=>es(t)(a.taskID,n);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),o)},Rmt=t=>e=>fk({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),Tmt=t=>e=>{let r={hitsPerPage:1e3,...e};return fk({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},Nmt=t=>e=>{let r={hitsPerPage:1e3,...e};return fk({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},hk=t=>(e,r,o)=>{let{batchSize:a,...n}=o||{},u={taskIDs:[],objectIDs:[]},A=(p=0)=>{let h=[],E;for(E=p;E({action:r,body:I})),n).then(I=>(u.objectIDs=u.objectIDs.concat(I.objectIDs),u.taskIDs.push(I.taskID),E++,A(E)))};return Gt.createWaitablePromise(A(),(p,h)=>Promise.all(p.taskIDs.map(E=>es(t)(E,h))))},Lmt=t=>e=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/clear",t.indexName)},e),(r,o)=>es(t)(r.taskID,o)),Mmt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ma.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,u)=>es(t)(n.taskID,u))},Omt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ma.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,u)=>es(t)(n.taskID,u))},Umt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(o,a)=>es(t)(o.taskID,a)),_mt=t=>e=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s",t.indexName)},e),(r,o)=>es(t)(r.taskID,o)),Hmt=t=>(e,r)=>Gt.createWaitablePromise(Aye(t)([e],r).then(o=>({taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),Aye=t=>(e,r)=>{let o=e.map(a=>({objectID:a}));return hk(t)(o,Wg.DeleteObject,r)},qmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(u,A)=>es(t)(u.taskID,A))},jmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(u,A)=>es(t)(u.taskID,A))},Gmt=t=>e=>fye(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Ymt=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},o),Wmt=t=>(e,r)=>{let{query:o,paginate:a,...n}=r||{},u=0,A=()=>gye(t)(o||"",{...n,page:u}).then(p=>{for(let[h,E]of Object.entries(p.hits))if(e(E))return{object:E,position:parseInt(h,10),page:u};if(u++,a===!1||u>=p.nbPages)throw aye();return A()});return A()},Kmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/%s",t.indexName,e)},r),Vmt=()=>(t,e)=>{for(let[r,o]of Object.entries(t.hits))if(o.objectID===e)return parseInt(r,10);return-1},zmt=t=>(e,r)=>{let{attributesToRetrieve:o,...a}=r||{},n=e.map(u=>({indexName:t.indexName,objectID:u,...o?{attributesToRetrieve:o}:{}}));return t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},Jmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),fye=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),Xmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),pye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),Zmt=t=>(e,r)=>Gt.createWaitablePromise(hye(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),hye=t=>(e,r)=>{let{createIfNotExists:o,...a}=r||{},n=o?Wg.PartialUpdateObject:Wg.PartialUpdateObjectNoCreate;return hk(t)(e,n,a)},$mt=t=>(e,r)=>{let{safe:o,autoGenerateObjectIDIfNotExist:a,batchSize:n,...u}=r||{},A=(C,R,L,U)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",C),data:{operation:L,destination:R}},U),(z,te)=>es(t)(z.taskID,te)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,E=OH({appId:t.appId,transporter:t.transporter,indexName:h}),I=[],v=A(t.indexName,h,"copy",{...u,scope:["settings","synonyms","rules"]});I.push(v);let x=(o?v.wait(u):v).then(()=>{let C=E(e,{...u,autoGenerateObjectIDIfNotExist:a,batchSize:n});return I.push(C),o?C.wait(u):C}).then(()=>{let C=A(h,t.indexName,"move",u);return I.push(C),o?C.wait(u):C}).then(()=>Promise.all(I)).then(([C,R,L])=>({objectIDs:R.objectIDs,taskIDs:[C.taskID,...R.taskIDs,L.taskID]}));return Gt.createWaitablePromise(x,(C,R)=>Promise.all(I.map(L=>L.wait(R))))},eyt=t=>(e,r)=>UH(t)(e,{...r,clearExistingRules:!0}),tyt=t=>(e,r)=>_H(t)(e,{...r,clearExistingSynonyms:!0}),ryt=t=>(e,r)=>Gt.createWaitablePromise(OH(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),OH=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:o,...a}=r||{},n=o?Wg.AddObject:Wg.UpdateObject;if(n===Wg.UpdateObject){for(let u of e)if(u.objectID===void 0)return Gt.createWaitablePromise(Promise.reject(oye()))}return hk(t)(e,n,a)},nyt=t=>(e,r)=>UH(t)([e],r),UH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingRules:a,...n}=r||{},u=Ma.createMappedRequestOptions(n);return o&&(u.queryParameters.forwardToReplicas=1),a&&(u.queryParameters.clearExistingRules=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/batch",t.indexName),data:e},u),(A,p)=>es(t)(A.taskID,p))},iyt=t=>(e,r)=>_H(t)([e],r),_H=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingSynonyms:a,replaceExistingSynonyms:n,...u}=r||{},A=Ma.createMappedRequestOptions(u);return o&&(A.queryParameters.forwardToReplicas=1),(n||a)&&(A.queryParameters.replaceExistingSynonyms=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},A),(p,h)=>es(t)(p.taskID,h))},gye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),dye=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},o),mye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),yye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),syt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:Gt.encode("1/indexes/%s/settings",t.indexName),data:e},n),(u,A)=>es(t)(u.taskID,A))},es=t=>(e,r)=>Gt.createRetryablePromise(o=>pye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),oyt={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",Inference:"inference",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},Wg={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},gk={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},ayt={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},lyt={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Ft.ApiKeyACLEnum=oyt;Ft.BatchActionEnum=Wg;Ft.ScopeEnum=gk;Ft.StrategyEnum=ayt;Ft.SynonymEnum=lyt;Ft.addApiKey=$dt;Ft.assignUserID=emt;Ft.assignUserIDs=tmt;Ft.batch=uye;Ft.browseObjects=Rmt;Ft.browseRules=Tmt;Ft.browseSynonyms=Nmt;Ft.chunkedBatch=hk;Ft.clearDictionaryEntries=rmt;Ft.clearObjects=Lmt;Ft.clearRules=Mmt;Ft.clearSynonyms=Omt;Ft.copyIndex=pk;Ft.copyRules=nmt;Ft.copySettings=imt;Ft.copySynonyms=smt;Ft.createBrowsablePromise=fk;Ft.createMissingObjectIDError=oye;Ft.createObjectNotFoundError=aye;Ft.createSearchClient=Zdt;Ft.createValidUntilNotFoundError=lye;Ft.customRequest=omt;Ft.deleteApiKey=amt;Ft.deleteBy=Umt;Ft.deleteDictionaryEntries=lmt;Ft.deleteIndex=_mt;Ft.deleteObject=Hmt;Ft.deleteObjects=Aye;Ft.deleteRule=qmt;Ft.deleteSynonym=jmt;Ft.exists=Gmt;Ft.findAnswers=Ymt;Ft.findObject=Wmt;Ft.generateSecuredApiKey=cmt;Ft.getApiKey=T2;Ft.getAppTask=cye;Ft.getDictionarySettings=umt;Ft.getLogs=Amt;Ft.getObject=Kmt;Ft.getObjectPosition=Vmt;Ft.getObjects=zmt;Ft.getRule=Jmt;Ft.getSecuredApiKeyRemainingValidity=fmt;Ft.getSettings=fye;Ft.getSynonym=Xmt;Ft.getTask=pye;Ft.getTopUserIDs=pmt;Ft.getUserID=hmt;Ft.hasPendingMappings=gmt;Ft.initIndex=N2;Ft.listApiKeys=dmt;Ft.listClusters=mmt;Ft.listIndices=ymt;Ft.listUserIDs=Emt;Ft.moveIndex=Cmt;Ft.multipleBatch=wmt;Ft.multipleGetObjects=Imt;Ft.multipleQueries=Bmt;Ft.multipleSearchForFacetValues=vmt;Ft.partialUpdateObject=Zmt;Ft.partialUpdateObjects=hye;Ft.removeUserID=Dmt;Ft.replaceAllObjects=$mt;Ft.replaceAllRules=eyt;Ft.replaceAllSynonyms=tyt;Ft.replaceDictionaryEntries=Pmt;Ft.restoreApiKey=bmt;Ft.saveDictionaryEntries=Smt;Ft.saveObject=ryt;Ft.saveObjects=OH;Ft.saveRule=nyt;Ft.saveRules=UH;Ft.saveSynonym=iyt;Ft.saveSynonyms=_H;Ft.search=gye;Ft.searchDictionaryEntries=xmt;Ft.searchForFacetValues=dye;Ft.searchRules=mye;Ft.searchSynonyms=yye;Ft.searchUserIDs=kmt;Ft.setDictionarySettings=Qmt;Ft.setSettings=syt;Ft.updateApiKey=Fmt;Ft.waitAppTask=KE;Ft.waitTask=es});var wye=_((ZWt,Cye)=>{Cye.exports=Eye()});var Iye=_(dk=>{"use strict";Object.defineProperty(dk,"__esModule",{value:!0});function cyt(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var uyt={Debug:1,Info:2,Error:3};dk.LogLevelEnum=uyt;dk.createNullLogger=cyt});var vye=_((eKt,Bye)=>{Bye.exports=Iye()});var Sye=_(HH=>{"use strict";Object.defineProperty(HH,"__esModule",{value:!0});var Dye=ve("http"),Pye=ve("https"),Ayt=ve("url"),bye={keepAlive:!0},fyt=new Dye.Agent(bye),pyt=new Pye.Agent(bye);function hyt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:o={}}={}){let a=e||t||fyt,n=r||t||pyt;return{send(u){return new Promise(A=>{let p=Ayt.parse(u.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,E={...o,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:u.method,headers:{...o&&o.headers?o.headers:{},...u.headers},...p.port!==void 0?{port:p.port||""}:{}},I=(p.protocol==="https:"?Pye:Dye).request(E,R=>{let L=[];R.on("data",U=>{L=L.concat(U)}),R.on("end",()=>{clearTimeout(x),clearTimeout(C),A({status:R.statusCode||0,content:Buffer.concat(L).toString(),isTimedOut:!1})})}),v=(R,L)=>setTimeout(()=>{I.abort(),A({status:0,content:L,isTimedOut:!0})},R*1e3),x=v(u.connectTimeout,"Connection timeout"),C;I.on("error",R=>{clearTimeout(x),clearTimeout(C),A({status:0,content:R.message,isTimedOut:!1})}),I.once("response",()=>{clearTimeout(x),C=v(u.responseTimeout,"Socket timeout")}),u.data!==void 0&&I.write(u.data),I.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}HH.createNodeHttpRequester=hyt});var kye=_((rKt,xye)=>{xye.exports=Sye()});var Tye=_((nKt,Rye)=>{"use strict";var Qye=Sme(),gyt=Qme(),VE=tye(),jH=S2(),qH=sye(),_t=wye(),dyt=vye(),myt=kye(),yyt=Q2();function Fye(t,e,r){let o={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:myt.createNodeHttpRequester(),logger:dyt.createNullLogger(),responsesCache:Qye.createNullCache(),requestsCache:Qye.createNullCache(),hostsCache:gyt.createInMemoryCache(),userAgent:yyt.createUserAgent(jH.version).add({segment:"Node.js",version:process.versions.node})},a={...o,...r},n=()=>u=>qH.createPersonalizationClient({...o,...u,methods:{getPersonalizationStrategy:qH.getPersonalizationStrategy,setPersonalizationStrategy:qH.setPersonalizationStrategy}});return _t.createSearchClient({...a,methods:{search:_t.multipleQueries,searchForFacetValues:_t.multipleSearchForFacetValues,multipleBatch:_t.multipleBatch,multipleGetObjects:_t.multipleGetObjects,multipleQueries:_t.multipleQueries,copyIndex:_t.copyIndex,copySettings:_t.copySettings,copyRules:_t.copyRules,copySynonyms:_t.copySynonyms,moveIndex:_t.moveIndex,listIndices:_t.listIndices,getLogs:_t.getLogs,listClusters:_t.listClusters,multipleSearchForFacetValues:_t.multipleSearchForFacetValues,getApiKey:_t.getApiKey,addApiKey:_t.addApiKey,listApiKeys:_t.listApiKeys,updateApiKey:_t.updateApiKey,deleteApiKey:_t.deleteApiKey,restoreApiKey:_t.restoreApiKey,assignUserID:_t.assignUserID,assignUserIDs:_t.assignUserIDs,getUserID:_t.getUserID,searchUserIDs:_t.searchUserIDs,listUserIDs:_t.listUserIDs,getTopUserIDs:_t.getTopUserIDs,removeUserID:_t.removeUserID,hasPendingMappings:_t.hasPendingMappings,generateSecuredApiKey:_t.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:_t.getSecuredApiKeyRemainingValidity,destroy:jH.destroy,clearDictionaryEntries:_t.clearDictionaryEntries,deleteDictionaryEntries:_t.deleteDictionaryEntries,getDictionarySettings:_t.getDictionarySettings,getAppTask:_t.getAppTask,replaceDictionaryEntries:_t.replaceDictionaryEntries,saveDictionaryEntries:_t.saveDictionaryEntries,searchDictionaryEntries:_t.searchDictionaryEntries,setDictionarySettings:_t.setDictionarySettings,waitAppTask:_t.waitAppTask,customRequest:_t.customRequest,initIndex:u=>A=>_t.initIndex(u)(A,{methods:{batch:_t.batch,delete:_t.deleteIndex,findAnswers:_t.findAnswers,getObject:_t.getObject,getObjects:_t.getObjects,saveObject:_t.saveObject,saveObjects:_t.saveObjects,search:_t.search,searchForFacetValues:_t.searchForFacetValues,waitTask:_t.waitTask,setSettings:_t.setSettings,getSettings:_t.getSettings,partialUpdateObject:_t.partialUpdateObject,partialUpdateObjects:_t.partialUpdateObjects,deleteObject:_t.deleteObject,deleteObjects:_t.deleteObjects,deleteBy:_t.deleteBy,clearObjects:_t.clearObjects,browseObjects:_t.browseObjects,getObjectPosition:_t.getObjectPosition,findObject:_t.findObject,exists:_t.exists,saveSynonym:_t.saveSynonym,saveSynonyms:_t.saveSynonyms,getSynonym:_t.getSynonym,searchSynonyms:_t.searchSynonyms,browseSynonyms:_t.browseSynonyms,deleteSynonym:_t.deleteSynonym,clearSynonyms:_t.clearSynonyms,replaceAllObjects:_t.replaceAllObjects,replaceAllSynonyms:_t.replaceAllSynonyms,searchRules:_t.searchRules,getRule:_t.getRule,deleteRule:_t.deleteRule,saveRule:_t.saveRule,saveRules:_t.saveRules,replaceAllRules:_t.replaceAllRules,browseRules:_t.browseRules,clearRules:_t.clearRules}}),initAnalytics:()=>u=>VE.createAnalyticsClient({...o,...u,methods:{addABTest:VE.addABTest,getABTest:VE.getABTest,getABTests:VE.getABTests,stopABTest:VE.stopABTest,deleteABTest:VE.deleteABTest}}),initPersonalization:n,initRecommendation:()=>u=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(u))}})}Fye.version=jH.version;Rye.exports=Fye});var YH=_((iKt,GH)=>{var Nye=Tye();GH.exports=Nye;GH.exports.default=Nye});var VH=_((oKt,Oye)=>{"use strict";var Mye=Object.getOwnPropertySymbols,Cyt=Object.prototype.hasOwnProperty,wyt=Object.prototype.propertyIsEnumerable;function Iyt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function Byt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var o=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(o.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Oye.exports=Byt()?Object.assign:function(t,e){for(var r,o=Iyt(t),a,n=1;n{"use strict";var $H=VH(),tu=typeof Symbol=="function"&&Symbol.for,L2=tu?Symbol.for("react.element"):60103,vyt=tu?Symbol.for("react.portal"):60106,Dyt=tu?Symbol.for("react.fragment"):60107,Pyt=tu?Symbol.for("react.strict_mode"):60108,byt=tu?Symbol.for("react.profiler"):60114,Syt=tu?Symbol.for("react.provider"):60109,xyt=tu?Symbol.for("react.context"):60110,kyt=tu?Symbol.for("react.forward_ref"):60112,Qyt=tu?Symbol.for("react.suspense"):60113,Fyt=tu?Symbol.for("react.memo"):60115,Ryt=tu?Symbol.for("react.lazy"):60116,Uye=typeof Symbol=="function"&&Symbol.iterator;function M2(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;rmk.length&&mk.push(t)}function JH(t,e,r,o){var a=typeof t;(a==="undefined"||a==="boolean")&&(t=null);var n=!1;if(t===null)n=!0;else switch(a){case"string":case"number":n=!0;break;case"object":switch(t.$$typeof){case L2:case vyt:n=!0}}if(n)return r(o,t,e===""?"."+zH(t,0):e),1;if(n=0,e=e===""?".":e+":",Array.isArray(t))for(var u=0;u{"use strict";Xye.exports=Jye()});var s6=_((cKt,i6)=>{"use strict";var fn=i6.exports;i6.exports.default=fn;var Ln="\x1B[",O2="\x1B]",JE="\x07",yk=";",Zye=process.env.TERM_PROGRAM==="Apple_Terminal";fn.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?Ln+(t+1)+"G":Ln+(e+1)+";"+(t+1)+"H"};fn.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=Ln+-t+"D":t>0&&(r+=Ln+t+"C"),e<0?r+=Ln+-e+"A":e>0&&(r+=Ln+e+"B"),r};fn.cursorUp=(t=1)=>Ln+t+"A";fn.cursorDown=(t=1)=>Ln+t+"B";fn.cursorForward=(t=1)=>Ln+t+"C";fn.cursorBackward=(t=1)=>Ln+t+"D";fn.cursorLeft=Ln+"G";fn.cursorSavePosition=Zye?"\x1B7":Ln+"s";fn.cursorRestorePosition=Zye?"\x1B8":Ln+"u";fn.cursorGetPosition=Ln+"6n";fn.cursorNextLine=Ln+"E";fn.cursorPrevLine=Ln+"F";fn.cursorHide=Ln+"?25l";fn.cursorShow=Ln+"?25h";fn.eraseLines=t=>{let e="";for(let r=0;r[O2,"8",yk,yk,e,JE,t,O2,"8",yk,yk,JE].join("");fn.image=(t,e={})=>{let r=`${O2}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+JE};fn.iTerm={setCwd:(t=process.cwd())=>`${O2}50;CurrentDir=${t}${JE}`,annotation:(t,e={})=>{let r=`${O2}1337;`,o=typeof e.x<"u",a=typeof e.y<"u";if((o||a)&&!(o&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+JE}}});var eEe=_((uKt,o6)=>{"use strict";var $ye=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};o6.exports=$ye;o6.exports.default=$ye});var rEe=_((AKt,Ck)=>{"use strict";var Uyt=eEe(),Ek=new WeakMap,tEe=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,o=0,a=t.displayName||t.name||"",n=function(...u){if(Ek.set(n,++o),o===1)r=t.apply(this,u),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return Uyt(n,t),Ek.set(n,o),n};Ck.exports=tEe;Ck.exports.default=tEe;Ck.exports.callCount=t=>{if(!Ek.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return Ek.get(t)}});var nEe=_((fKt,wk)=>{wk.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&wk.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&wk.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var c6=_((pKt,$E)=>{var yi=global.process,Kg=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};Kg(yi)?(iEe=ve("assert"),XE=nEe(),sEe=/^win/i.test(yi.platform),U2=ve("events"),typeof U2!="function"&&(U2=U2.EventEmitter),yi.__signal_exit_emitter__?Ls=yi.__signal_exit_emitter__:(Ls=yi.__signal_exit_emitter__=new U2,Ls.count=0,Ls.emitted={}),Ls.infinite||(Ls.setMaxListeners(1/0),Ls.infinite=!0),$E.exports=function(t,e){if(!Kg(global.process))return function(){};iEe.equal(typeof t,"function","a callback must be provided for exit handler"),ZE===!1&&a6();var r="exit";e&&e.alwaysLast&&(r="afterexit");var o=function(){Ls.removeListener(r,t),Ls.listeners("exit").length===0&&Ls.listeners("afterexit").length===0&&Ik()};return Ls.on(r,t),o},Ik=function(){!ZE||!Kg(global.process)||(ZE=!1,XE.forEach(function(e){try{yi.removeListener(e,Bk[e])}catch{}}),yi.emit=vk,yi.reallyExit=l6,Ls.count-=1)},$E.exports.unload=Ik,Vg=function(e,r,o){Ls.emitted[e]||(Ls.emitted[e]=!0,Ls.emit(e,r,o))},Bk={},XE.forEach(function(t){Bk[t]=function(){if(Kg(global.process)){var r=yi.listeners(t);r.length===Ls.count&&(Ik(),Vg("exit",null,t),Vg("afterexit",null,t),sEe&&t==="SIGHUP"&&(t="SIGINT"),yi.kill(yi.pid,t))}}}),$E.exports.signals=function(){return XE},ZE=!1,a6=function(){ZE||!Kg(global.process)||(ZE=!0,Ls.count+=1,XE=XE.filter(function(e){try{return yi.on(e,Bk[e]),!0}catch{return!1}}),yi.emit=aEe,yi.reallyExit=oEe)},$E.exports.load=a6,l6=yi.reallyExit,oEe=function(e){Kg(global.process)&&(yi.exitCode=e||0,Vg("exit",yi.exitCode,null),Vg("afterexit",yi.exitCode,null),l6.call(yi,yi.exitCode))},vk=yi.emit,aEe=function(e,r){if(e==="exit"&&Kg(global.process)){r!==void 0&&(yi.exitCode=r);var o=vk.apply(this,arguments);return Vg("exit",yi.exitCode,null),Vg("afterexit",yi.exitCode,null),o}else return vk.apply(this,arguments)}):$E.exports=function(){return function(){}};var iEe,XE,sEe,U2,Ls,Ik,Vg,Bk,ZE,a6,l6,oEe,vk,aEe});var cEe=_((hKt,lEe)=>{"use strict";var _yt=rEe(),Hyt=c6();lEe.exports=_yt(()=>{Hyt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var u6=_(eC=>{"use strict";var qyt=cEe(),Dk=!1;eC.show=(t=process.stderr)=>{t.isTTY&&(Dk=!1,t.write("\x1B[?25h"))};eC.hide=(t=process.stderr)=>{t.isTTY&&(qyt(),Dk=!0,t.write("\x1B[?25l"))};eC.toggle=(t,e)=>{t!==void 0&&(Dk=t),Dk?eC.show(e):eC.hide(e)}});var pEe=_(_2=>{"use strict";var fEe=_2&&_2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_2,"__esModule",{value:!0});var uEe=fEe(s6()),AEe=fEe(u6()),jyt=(t,{showCursor:e=!1}={})=>{let r=0,o="",a=!1,n=u=>{!e&&!a&&(AEe.default.hide(),a=!0);let A=u+` +`;A!==o&&(o=A,t.write(uEe.default.eraseLines(r)+A),r=A.split(` +`).length)};return n.clear=()=>{t.write(uEe.default.eraseLines(r)),o="",r=0},n.done=()=>{o="",r=0,e||(AEe.default.show(),a=!1)},n};_2.default={create:jyt}});var hEe=_((mKt,Gyt)=>{Gyt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var mEe=_(dl=>{"use strict";var dEe=hEe(),pA=process.env;Object.defineProperty(dl,"_vendors",{value:dEe.map(function(t){return t.constant})});dl.name=null;dl.isPR=null;dEe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(o){return gEe(o)});if(dl[t.constant]=r,r)switch(dl.name=t.name,typeof t.pr){case"string":dl.isPR=!!pA[t.pr];break;case"object":"env"in t.pr?dl.isPR=t.pr.env in pA&&pA[t.pr.env]!==t.pr.ne:"any"in t.pr?dl.isPR=t.pr.any.some(function(o){return!!pA[o]}):dl.isPR=gEe(t.pr);break;default:dl.isPR=null}});dl.isCI=!!(pA.CI||pA.CONTINUOUS_INTEGRATION||pA.BUILD_NUMBER||pA.RUN_ID||dl.name);function gEe(t){return typeof t=="string"?!!pA[t]:Object.keys(t).every(function(e){return pA[e]===t[e]})}});var EEe=_((EKt,yEe)=>{"use strict";yEe.exports=mEe().isCI});var wEe=_((CKt,CEe)=>{"use strict";var Yyt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};CEe.exports=(t,{include:e,exclude:r}={})=>{let o=a=>{let n=u=>typeof u=="string"?a===u:u.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of Yyt(t.constructor.prototype)){if(n==="constructor"||!o(n))continue;let u=Reflect.getOwnPropertyDescriptor(a,n);u&&typeof u.value=="function"&&(t[n]=t[n].bind(t))}return t}});var SEe=_(kn=>{"use strict";Object.defineProperty(kn,"__esModule",{value:!0});var rC,j2,kk,Qk,m6;typeof window>"u"||typeof MessageChannel!="function"?(tC=null,A6=null,f6=function(){if(tC!==null)try{var t=kn.unstable_now();tC(!0,t),tC=null}catch(e){throw setTimeout(f6,0),e}},IEe=Date.now(),kn.unstable_now=function(){return Date.now()-IEe},rC=function(t){tC!==null?setTimeout(rC,0,t):(tC=t,setTimeout(f6,0))},j2=function(t,e){A6=setTimeout(t,e)},kk=function(){clearTimeout(A6)},Qk=function(){return!1},m6=kn.unstable_forceFrameRate=function(){}):(Pk=window.performance,p6=window.Date,BEe=window.setTimeout,vEe=window.clearTimeout,typeof console<"u"&&(DEe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof DEe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Pk=="object"&&typeof Pk.now=="function"?kn.unstable_now=function(){return Pk.now()}:(PEe=p6.now(),kn.unstable_now=function(){return p6.now()-PEe}),H2=!1,q2=null,bk=-1,h6=5,g6=0,Qk=function(){return kn.unstable_now()>=g6},m6=function(){},kn.unstable_forceFrameRate=function(t){0>t||125xk(u,r))p!==void 0&&0>xk(p,u)?(t[o]=p,t[A]=r,o=A):(t[o]=u,t[n]=r,o=n);else if(p!==void 0&&0>xk(p,r))t[o]=p,t[A]=r,o=A;else break e}}return e}return null}function xk(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var ru=[],Th=[],Wyt=1,sa=null,Lo=3,Rk=!1,zg=!1,G2=!1;function Tk(t){for(var e=nc(Th);e!==null;){if(e.callback===null)Fk(Th);else if(e.startTime<=t)Fk(Th),e.sortIndex=e.expirationTime,y6(ru,e);else break;e=nc(Th)}}function E6(t){if(G2=!1,Tk(t),!zg)if(nc(ru)!==null)zg=!0,rC(C6);else{var e=nc(Th);e!==null&&j2(E6,e.startTime-t)}}function C6(t,e){zg=!1,G2&&(G2=!1,kk()),Rk=!0;var r=Lo;try{for(Tk(e),sa=nc(ru);sa!==null&&(!(sa.expirationTime>e)||t&&!Qk());){var o=sa.callback;if(o!==null){sa.callback=null,Lo=sa.priorityLevel;var a=o(sa.expirationTime<=e);e=kn.unstable_now(),typeof a=="function"?sa.callback=a:sa===nc(ru)&&Fk(ru),Tk(e)}else Fk(ru);sa=nc(ru)}if(sa!==null)var n=!0;else{var u=nc(Th);u!==null&&j2(E6,u.startTime-e),n=!1}return n}finally{sa=null,Lo=r,Rk=!1}}function bEe(t){switch(t){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var Kyt=m6;kn.unstable_ImmediatePriority=1;kn.unstable_UserBlockingPriority=2;kn.unstable_NormalPriority=3;kn.unstable_IdlePriority=5;kn.unstable_LowPriority=4;kn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=Lo;Lo=t;try{return e()}finally{Lo=r}};kn.unstable_next=function(t){switch(Lo){case 1:case 2:case 3:var e=3;break;default:e=Lo}var r=Lo;Lo=e;try{return t()}finally{Lo=r}};kn.unstable_scheduleCallback=function(t,e,r){var o=kn.unstable_now();if(typeof r=="object"&&r!==null){var a=r.delay;a=typeof a=="number"&&0o?(t.sortIndex=a,y6(Th,t),nc(ru)===null&&t===nc(Th)&&(G2?kk():G2=!0,j2(E6,a-o))):(t.sortIndex=r,y6(ru,t),zg||Rk||(zg=!0,rC(C6))),t};kn.unstable_cancelCallback=function(t){t.callback=null};kn.unstable_wrapCallback=function(t){var e=Lo;return function(){var r=Lo;Lo=e;try{return t.apply(this,arguments)}finally{Lo=r}}};kn.unstable_getCurrentPriorityLevel=function(){return Lo};kn.unstable_shouldYield=function(){var t=kn.unstable_now();Tk(t);var e=nc(ru);return e!==sa&&sa!==null&&e!==null&&e.callback!==null&&e.startTime<=t&&e.expirationTime{"use strict";xEe.exports=SEe()});var kEe=_((BKt,Y2)=>{Y2.exports=function t(e){"use strict";var r=VH(),o=an(),a=w6();function n(P){for(var D="https://reactjs.org/docs/error-decoder.html?invariant="+P,T=1;Tao||(P.current=yl[ao],yl[ao]=null,ao--)}function Mn(P,D){ao++,yl[ao]=P.current,P.current=D}var Ti={},On={current:Ti},_i={current:!1},ir=Ti;function Me(P,D){var T=P.type.contextTypes;if(!T)return Ti;var q=P.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===D)return q.__reactInternalMemoizedMaskedChildContext;var W={},fe;for(fe in T)W[fe]=D[fe];return q&&(P=P.stateNode,P.__reactInternalMemoizedUnmaskedChildContext=D,P.__reactInternalMemoizedMaskedChildContext=W),W}function ii(P){return P=P.childContextTypes,P!=null}function Ha(P){Vn(_i,P),Vn(On,P)}function hr(P){Vn(_i,P),Vn(On,P)}function Ac(P,D,T){if(On.current!==Ti)throw Error(n(168));Mn(On,D,P),Mn(_i,T,P)}function fu(P,D,T){var q=P.stateNode;if(P=D.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var W in q)if(!(W in P))throw Error(n(108,de(D)||"Unknown",W));return r({},T,{},q)}function fc(P){var D=P.stateNode;return D=D&&D.__reactInternalMemoizedMergedChildContext||Ti,ir=On.current,Mn(On,D,P),Mn(_i,_i.current,P),!0}function El(P,D,T){var q=P.stateNode;if(!q)throw Error(n(169));T?(D=fu(P,D,ir),q.__reactInternalMemoizedMergedChildContext=D,Vn(_i,P),Vn(On,P),Mn(On,D,P)):Vn(_i,P),Mn(_i,T,P)}var vA=a.unstable_runWithPriority,pu=a.unstable_scheduleCallback,Ie=a.unstable_cancelCallback,Tt=a.unstable_shouldYield,pc=a.unstable_requestPaint,Hi=a.unstable_now,hu=a.unstable_getCurrentPriorityLevel,Yt=a.unstable_ImmediatePriority,Cl=a.unstable_UserBlockingPriority,DA=a.unstable_NormalPriority,lp=a.unstable_LowPriority,hc=a.unstable_IdlePriority,PA={},Qn=pc!==void 0?pc:function(){},hi=null,gc=null,bA=!1,aa=Hi(),Ni=1e4>aa?Hi:function(){return Hi()-aa};function _o(){switch(hu()){case Yt:return 99;case Cl:return 98;case DA:return 97;case lp:return 96;case hc:return 95;default:throw Error(n(332))}}function Xe(P){switch(P){case 99:return Yt;case 98:return Cl;case 97:return DA;case 96:return lp;case 95:return hc;default:throw Error(n(332))}}function lo(P,D){return P=Xe(P),vA(P,D)}function dc(P,D,T){return P=Xe(P),pu(P,D,T)}function gu(P){return hi===null?(hi=[P],gc=pu(Yt,du)):hi.push(P),PA}function qi(){if(gc!==null){var P=gc;gc=null,Ie(P)}du()}function du(){if(!bA&&hi!==null){bA=!0;var P=0;try{var D=hi;lo(99,function(){for(;P=D&&(jo=!0),P.firstContext=null)}function Es(P,D){if(ca!==P&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(ca=P,D=1073741823),D={context:P,observedBits:D,next:null},Hs===null){if(co===null)throw Error(n(308));Hs=D,co.dependencies={expirationTime:0,firstContext:D,responders:null}}else Hs=Hs.next=D;return S?P._currentValue:P._currentValue2}var qs=!1;function Un(P){return{baseState:P,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Pn(P){return{baseState:P.baseState,firstUpdate:P.firstUpdate,lastUpdate:P.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Cs(P,D){return{expirationTime:P,suspenseConfig:D,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function We(P,D){P.lastUpdate===null?P.firstUpdate=P.lastUpdate=D:(P.lastUpdate.next=D,P.lastUpdate=D)}function tt(P,D){var T=P.alternate;if(T===null){var q=P.updateQueue,W=null;q===null&&(q=P.updateQueue=Un(P.memoizedState))}else q=P.updateQueue,W=T.updateQueue,q===null?W===null?(q=P.updateQueue=Un(P.memoizedState),W=T.updateQueue=Un(T.memoizedState)):q=P.updateQueue=Pn(W):W===null&&(W=T.updateQueue=Pn(q));W===null||q===W?We(q,D):q.lastUpdate===null||W.lastUpdate===null?(We(q,D),We(W,D)):(We(q,D),W.lastUpdate=D)}function Bt(P,D){var T=P.updateQueue;T=T===null?P.updateQueue=Un(P.memoizedState):or(P,T),T.lastCapturedUpdate===null?T.firstCapturedUpdate=T.lastCapturedUpdate=D:(T.lastCapturedUpdate.next=D,T.lastCapturedUpdate=D)}function or(P,D){var T=P.alternate;return T!==null&&D===T.updateQueue&&(D=P.updateQueue=Pn(D)),D}function ee(P,D,T,q,W,fe){switch(T.tag){case 1:return P=T.payload,typeof P=="function"?P.call(fe,q,W):P;case 3:P.effectTag=P.effectTag&-4097|64;case 0:if(P=T.payload,W=typeof P=="function"?P.call(fe,q,W):P,W==null)break;return r({},q,W);case 2:qs=!0}return q}function ye(P,D,T,q,W){qs=!1,D=or(P,D);for(var fe=D.baseState,De=null,vt=0,wt=D.firstUpdate,St=fe;wt!==null;){var _r=wt.expirationTime;_rSn?(ai=Qr,Qr=null):ai=Qr.sibling;var tn=di(nt,Qr,At[Sn],Wt);if(tn===null){Qr===null&&(Qr=ai);break}P&&Qr&&tn.alternate===null&&D(nt,Qr),Ve=fe(tn,Ve,Sn),bn===null?vr=tn:bn.sibling=tn,bn=tn,Qr=ai}if(Sn===At.length)return T(nt,Qr),vr;if(Qr===null){for(;SnSn?(ai=Qr,Qr=null):ai=Qr.sibling;var ho=di(nt,Qr,tn.value,Wt);if(ho===null){Qr===null&&(Qr=ai);break}P&&Qr&&ho.alternate===null&&D(nt,Qr),Ve=fe(ho,Ve,Sn),bn===null?vr=ho:bn.sibling=ho,bn=ho,Qr=ai}if(tn.done)return T(nt,Qr),vr;if(Qr===null){for(;!tn.done;Sn++,tn=At.next())tn=os(nt,tn.value,Wt),tn!==null&&(Ve=fe(tn,Ve,Sn),bn===null?vr=tn:bn.sibling=tn,bn=tn);return vr}for(Qr=q(nt,Qr);!tn.done;Sn++,tn=At.next())tn=po(Qr,nt,Sn,tn.value,Wt),tn!==null&&(P&&tn.alternate!==null&&Qr.delete(tn.key===null?Sn:tn.key),Ve=fe(tn,Ve,Sn),bn===null?vr=tn:bn.sibling=tn,bn=tn);return P&&Qr.forEach(function(pF){return D(nt,pF)}),vr}return function(nt,Ve,At,Wt){var vr=typeof At=="object"&&At!==null&&At.type===E&&At.key===null;vr&&(At=At.props.children);var bn=typeof At=="object"&&At!==null;if(bn)switch(At.$$typeof){case p:e:{for(bn=At.key,vr=Ve;vr!==null;){if(vr.key===bn)if(vr.tag===7?At.type===E:vr.elementType===At.type){T(nt,vr.sibling),Ve=W(vr,At.type===E?At.props.children:At.props,Wt),Ve.ref=kA(nt,vr,At),Ve.return=nt,nt=Ve;break e}else{T(nt,vr);break}else D(nt,vr);vr=vr.sibling}At.type===E?(Ve=ku(At.props.children,nt.mode,Wt,At.key),Ve.return=nt,nt=Ve):(Wt=xd(At.type,At.key,At.props,null,nt.mode,Wt),Wt.ref=kA(nt,Ve,At),Wt.return=nt,nt=Wt)}return De(nt);case h:e:{for(vr=At.key;Ve!==null;){if(Ve.key===vr)if(Ve.tag===4&&Ve.stateNode.containerInfo===At.containerInfo&&Ve.stateNode.implementation===At.implementation){T(nt,Ve.sibling),Ve=W(Ve,At.children||[],Wt),Ve.return=nt,nt=Ve;break e}else{T(nt,Ve);break}else D(nt,Ve);Ve=Ve.sibling}Ve=dw(At,nt.mode,Wt),Ve.return=nt,nt=Ve}return De(nt)}if(typeof At=="string"||typeof At=="number")return At=""+At,Ve!==null&&Ve.tag===6?(T(nt,Ve.sibling),Ve=W(Ve,At,Wt),Ve.return=nt,nt=Ve):(T(nt,Ve),Ve=gw(At,nt.mode,Wt),Ve.return=nt,nt=Ve),De(nt);if(xA(At))return KA(nt,Ve,At,Wt);if(ce(At))return Yo(nt,Ve,At,Wt);if(bn&&cp(nt,At),typeof At>"u"&&!vr)switch(nt.tag){case 1:case 0:throw nt=nt.type,Error(n(152,nt.displayName||nt.name||"Component"))}return T(nt,Ve)}}var mu=e0(!0),t0=e0(!1),yu={},uo={current:yu},QA={current:yu},yc={current:yu};function Aa(P){if(P===yu)throw Error(n(174));return P}function r0(P,D){Mn(yc,D,P),Mn(QA,P,P),Mn(uo,yu,P),D=ne(D),Vn(uo,P),Mn(uo,D,P)}function Ec(P){Vn(uo,P),Vn(QA,P),Vn(yc,P)}function hd(P){var D=Aa(yc.current),T=Aa(uo.current);D=Z(T,P.type,D),T!==D&&(Mn(QA,P,P),Mn(uo,D,P))}function n0(P){QA.current===P&&(Vn(uo,P),Vn(QA,P))}var $n={current:0};function up(P){for(var D=P;D!==null;){if(D.tag===13){var T=D.memoizedState;if(T!==null&&(T=T.dehydrated,T===null||Os(T)||so(T)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if(D.effectTag&64)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===P)break;for(;D.sibling===null;){if(D.return===null||D.return===P)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}function i0(P,D){return{responder:P,props:D}}var FA=u.ReactCurrentDispatcher,js=u.ReactCurrentBatchConfig,Eu=0,ja=null,Gi=null,fa=null,Cu=null,ws=null,Cc=null,wc=0,Y=null,Dt=0,wl=!1,Si=null,Ic=0;function ct(){throw Error(n(321))}function wu(P,D){if(D===null)return!1;for(var T=0;Twc&&(wc=_r,Sd(wc))):(uw(_r,wt.suspenseConfig),fe=wt.eagerReducer===P?wt.eagerState:P(fe,wt.action)),De=wt,wt=wt.next}while(wt!==null&&wt!==q);St||(vt=De,W=fe),ds(fe,D.memoizedState)||(jo=!0),D.memoizedState=fe,D.baseUpdate=vt,D.baseState=W,T.lastRenderedState=fe}return[D.memoizedState,T.dispatch]}function o0(P){var D=RA();return typeof P=="function"&&(P=P()),D.memoizedState=D.baseState=P,P=D.queue={last:null,dispatch:null,lastRenderedReducer:Br,lastRenderedState:P},P=P.dispatch=A0.bind(null,ja,P),[D.memoizedState,P]}function a0(P){return Is(Br,P)}function l0(P,D,T,q){return P={tag:P,create:D,destroy:T,deps:q,next:null},Y===null?(Y={lastEffect:null},Y.lastEffect=P.next=P):(D=Y.lastEffect,D===null?Y.lastEffect=P.next=P:(T=D.next,D.next=P,P.next=T,Y.lastEffect=P)),P}function fp(P,D,T,q){var W=RA();Dt|=P,W.memoizedState=l0(D,T,void 0,q===void 0?null:q)}function Bc(P,D,T,q){var W=Ap();q=q===void 0?null:q;var fe=void 0;if(Gi!==null){var De=Gi.memoizedState;if(fe=De.destroy,q!==null&&wu(q,De.deps)){l0(0,T,fe,q);return}}Dt|=P,W.memoizedState=l0(D,T,fe,q)}function Ct(P,D){return fp(516,192,P,D)}function gd(P,D){return Bc(516,192,P,D)}function c0(P,D){if(typeof D=="function")return P=P(),D(P),function(){D(null)};if(D!=null)return P=P(),D.current=P,function(){D.current=null}}function u0(){}function Iu(P,D){return RA().memoizedState=[P,D===void 0?null:D],P}function dd(P,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&wu(D,q[1])?q[0]:(T.memoizedState=[P,D],P)}function A0(P,D,T){if(!(25>Ic))throw Error(n(301));var q=P.alternate;if(P===ja||q!==null&&q===ja)if(wl=!0,P={expirationTime:Eu,suspenseConfig:null,action:T,eagerReducer:null,eagerState:null,next:null},Si===null&&(Si=new Map),T=Si.get(D),T===void 0)Si.set(D,P);else{for(D=T;D.next!==null;)D=D.next;D.next=P}else{var W=ma(),fe=pt.suspense;W=HA(W,P,fe),fe={expirationTime:W,suspenseConfig:fe,action:T,eagerReducer:null,eagerState:null,next:null};var De=D.last;if(De===null)fe.next=fe;else{var vt=De.next;vt!==null&&(fe.next=vt),De.next=fe}if(D.last=fe,P.expirationTime===0&&(q===null||q.expirationTime===0)&&(q=D.lastRenderedReducer,q!==null))try{var wt=D.lastRenderedState,St=q(wt,T);if(fe.eagerReducer=q,fe.eagerState=St,ds(St,wt))return}catch{}finally{}Sc(P,W)}}var Bu={readContext:Es,useCallback:ct,useContext:ct,useEffect:ct,useImperativeHandle:ct,useLayoutEffect:ct,useMemo:ct,useReducer:ct,useRef:ct,useState:ct,useDebugValue:ct,useResponder:ct,useDeferredValue:ct,useTransition:ct},rw={readContext:Es,useCallback:Iu,useContext:Es,useEffect:Ct,useImperativeHandle:function(P,D,T){return T=T!=null?T.concat([P]):null,fp(4,36,c0.bind(null,D,P),T)},useLayoutEffect:function(P,D){return fp(4,36,P,D)},useMemo:function(P,D){var T=RA();return D=D===void 0?null:D,P=P(),T.memoizedState=[P,D],P},useReducer:function(P,D,T){var q=RA();return D=T!==void 0?T(D):D,q.memoizedState=q.baseState=D,P=q.queue={last:null,dispatch:null,lastRenderedReducer:P,lastRenderedState:D},P=P.dispatch=A0.bind(null,ja,P),[q.memoizedState,P]},useRef:function(P){var D=RA();return P={current:P},D.memoizedState=P},useState:o0,useDebugValue:u0,useResponder:i0,useDeferredValue:function(P,D){var T=o0(P),q=T[0],W=T[1];return Ct(function(){a.unstable_next(function(){var fe=js.suspense;js.suspense=D===void 0?null:D;try{W(P)}finally{js.suspense=fe}})},[P,D]),q},useTransition:function(P){var D=o0(!1),T=D[0],q=D[1];return[Iu(function(W){q(!0),a.unstable_next(function(){var fe=js.suspense;js.suspense=P===void 0?null:P;try{q(!1),W()}finally{js.suspense=fe}})},[P,T]),T]}},md={readContext:Es,useCallback:dd,useContext:Es,useEffect:gd,useImperativeHandle:function(P,D,T){return T=T!=null?T.concat([P]):null,Bc(4,36,c0.bind(null,D,P),T)},useLayoutEffect:function(P,D){return Bc(4,36,P,D)},useMemo:function(P,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&wu(D,q[1])?q[0]:(P=P(),T.memoizedState=[P,D],P)},useReducer:Is,useRef:function(){return Ap().memoizedState},useState:a0,useDebugValue:u0,useResponder:i0,useDeferredValue:function(P,D){var T=a0(P),q=T[0],W=T[1];return gd(function(){a.unstable_next(function(){var fe=js.suspense;js.suspense=D===void 0?null:D;try{W(P)}finally{js.suspense=fe}})},[P,D]),q},useTransition:function(P){var D=a0(!1),T=D[0],q=D[1];return[dd(function(W){q(!0),a.unstable_next(function(){var fe=js.suspense;js.suspense=P===void 0?null:P;try{q(!1),W()}finally{js.suspense=fe}})},[P,T]),T]}},pa=null,vc=null,Il=!1;function vu(P,D){var T=Dl(5,null,null,0);T.elementType="DELETED",T.type="DELETED",T.stateNode=D,T.return=P,T.effectTag=8,P.lastEffect!==null?(P.lastEffect.nextEffect=T,P.lastEffect=T):P.firstEffect=P.lastEffect=T}function f0(P,D){switch(P.tag){case 5:return D=io(D,P.type,P.pendingProps),D!==null?(P.stateNode=D,!0):!1;case 6:return D=Pi(D,P.pendingProps),D!==null?(P.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function TA(P){if(Il){var D=vc;if(D){var T=D;if(!f0(P,D)){if(D=uc(T),!D||!f0(P,D)){P.effectTag=P.effectTag&-1025|2,Il=!1,pa=P;return}vu(pa,T)}pa=P,vc=Au(D)}else P.effectTag=P.effectTag&-1025|2,Il=!1,pa=P}}function pp(P){for(P=P.return;P!==null&&P.tag!==5&&P.tag!==3&&P.tag!==13;)P=P.return;pa=P}function Ga(P){if(!y||P!==pa)return!1;if(!Il)return pp(P),Il=!0,!1;var D=P.type;if(P.tag!==5||D!=="head"&&D!=="body"&&!Fe(D,P.memoizedProps))for(D=vc;D;)vu(P,D),D=uc(D);if(pp(P),P.tag===13){if(!y)throw Error(n(316));if(P=P.memoizedState,P=P!==null?P.dehydrated:null,!P)throw Error(n(317));vc=Us(P)}else vc=pa?uc(P.stateNode):null;return!0}function p0(){y&&(vc=pa=null,Il=!1)}var hp=u.ReactCurrentOwner,jo=!1;function Bs(P,D,T,q){D.child=P===null?t0(D,null,T,q):mu(D,P.child,T,q)}function wi(P,D,T,q,W){T=T.render;var fe=D.ref;return ys(D,W),q=s0(P,D,T,q,fe,W),P!==null&&!jo?(D.updateQueue=P.updateQueue,D.effectTag&=-517,P.expirationTime<=W&&(P.expirationTime=0),si(P,D,W)):(D.effectTag|=1,Bs(P,D,q,W),D.child)}function yd(P,D,T,q,W,fe){if(P===null){var De=T.type;return typeof De=="function"&&!hw(De)&&De.defaultProps===void 0&&T.compare===null&&T.defaultProps===void 0?(D.tag=15,D.type=De,Ed(P,D,De,q,W,fe)):(P=xd(T.type,null,q,null,D.mode,fe),P.ref=D.ref,P.return=D,D.child=P)}return De=P.child,WD)&&_A.set(P,D)))}}function w0(P,D){P.expirationTimeP?D:P)}function fo(P){if(P.lastExpiredTime!==0)P.callbackExpirationTime=1073741823,P.callbackPriority=99,P.callbackNode=gu(cw.bind(null,P));else{var D=bd(P),T=P.callbackNode;if(D===0)T!==null&&(P.callbackNode=null,P.callbackExpirationTime=0,P.callbackPriority=90);else{var q=ma();if(D===1073741823?q=99:D===1||D===2?q=95:(q=10*(1073741821-D)-10*(1073741821-q),q=0>=q?99:250>=q?98:5250>=q?97:95),T!==null){var W=P.callbackPriority;if(P.callbackExpirationTime===D&&W>=q)return;T!==PA&&Ie(T)}P.callbackExpirationTime=D,P.callbackPriority=q,D=D===1073741823?gu(cw.bind(null,P)):dc(q,xv.bind(null,P),{timeout:10*(1073741821-D)-Ni()}),P.callbackNode=D}}}function xv(P,D){if(Pd=0,D)return D=ma(),kd(P,D),fo(P),null;var T=bd(P);if(T!==0){if(D=P.callbackNode,(yr&(is|Gs))!==En)throw Error(n(327));if(wp(),P===gi&&T===ss||Su(P,T),Mr!==null){var q=yr;yr|=is;var W=jA(P);do try{rF();break}catch(vt){qA(P,vt)}while(!0);if(ua(),yr=q,yp.current=W,Yi===Id)throw D=Bd,Su(P,T),WA(P,T),fo(P),D;if(Mr===null)switch(W=P.finishedWork=P.current.alternate,P.finishedExpirationTime=T,q=Yi,gi=null,q){case Du:case Id:throw Error(n(345));case Ii:kd(P,2=T){P.lastPingedTime=T,Su(P,T);break}}if(fe=bd(P),fe!==0&&fe!==T)break;if(q!==0&&q!==T){P.lastPingedTime=q;break}P.timeoutHandle=be(xu.bind(null,P),W);break}xu(P);break;case vl:if(WA(P,T),q=P.lastSuspendedTime,T===q&&(P.nextKnownPendingLevel=Aw(W)),OA&&(W=P.lastPingedTime,W===0||W>=T)){P.lastPingedTime=T,Su(P,T);break}if(W=bd(P),W!==0&&W!==T)break;if(q!==0&&q!==T){P.lastPingedTime=q;break}if(MA!==1073741823?q=10*(1073741821-MA)-Ni():Ka===1073741823?q=0:(q=10*(1073741821-Ka)-5e3,W=Ni(),T=10*(1073741821-T)-W,q=W-q,0>q&&(q=0),q=(120>q?120:480>q?480:1080>q?1080:1920>q?1920:3e3>q?3e3:4320>q?4320:1960*iw(q/1960))-q,T=q?q=0:(W=De.busyDelayMs|0,fe=Ni()-(10*(1073741821-fe)-(De.timeoutMs|0||5e3)),q=fe<=W?0:W+q-fe),10 component higher in the tree to provide a loading indicator or placeholder to display.`+ml(W))}Yi!==bc&&(Yi=Ii),fe=g0(fe,W),wt=q;do{switch(wt.tag){case 3:De=fe,wt.effectTag|=4096,wt.expirationTime=D;var Ve=bv(wt,De,D);Bt(wt,Ve);break e;case 1:De=fe;var At=wt.type,Wt=wt.stateNode;if(!(wt.effectTag&64)&&(typeof At.getDerivedStateFromError=="function"||Wt!==null&&typeof Wt.componentDidCatch=="function"&&(bu===null||!bu.has(Wt)))){wt.effectTag|=4096,wt.expirationTime=D;var vr=Sv(wt,De,D);Bt(wt,vr);break e}}wt=wt.return}while(wt!==null)}Mr=Rv(Mr)}catch(bn){D=bn;continue}break}while(!0)}function jA(){var P=yp.current;return yp.current=Bu,P===null?Bu:P}function uw(P,D){PEp&&(Ep=P)}function tF(){for(;Mr!==null;)Mr=Fv(Mr)}function rF(){for(;Mr!==null&&!Tt();)Mr=Fv(Mr)}function Fv(P){var D=Nv(P.alternate,P,ss);return P.memoizedProps=P.pendingProps,D===null&&(D=Rv(P)),sw.current=null,D}function Rv(P){Mr=P;do{var D=Mr.alternate;if(P=Mr.return,Mr.effectTag&2048){if(D=nw(Mr,ss),D!==null)return D.effectTag&=2047,D;P!==null&&(P.firstEffect=P.lastEffect=null,P.effectTag|=2048)}else{e:{var T=D;D=Mr;var q=ss,W=D.pendingProps;switch(D.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:ii(D.type)&&Ha(D);break;case 3:Ec(D),hr(D),W=D.stateNode,W.pendingContext&&(W.context=W.pendingContext,W.pendingContext=null),(T===null||T.child===null)&&Ga(D)&&ga(D),Bl(D);break;case 5:n0(D);var fe=Aa(yc.current);if(q=D.type,T!==null&&D.stateNode!=null)ns(T,D,q,W,fe),T.ref!==D.ref&&(D.effectTag|=128);else if(W){if(T=Aa(uo.current),Ga(D)){if(W=D,!y)throw Error(n(175));T=op(W.stateNode,W.type,W.memoizedProps,fe,T,W),W.updateQueue=T,T=T!==null,T&&ga(D)}else{var De=ht(q,W,fe,T,D);Dc(De,D,!1,!1),D.stateNode=De,rt(De,q,W,fe,T)&&ga(D)}D.ref!==null&&(D.effectTag|=128)}else if(D.stateNode===null)throw Error(n(166));break;case 6:if(T&&D.stateNode!=null)Yr(T,D,T.memoizedProps,W);else{if(typeof W!="string"&&D.stateNode===null)throw Error(n(166));if(T=Aa(yc.current),fe=Aa(uo.current),Ga(D)){if(T=D,!y)throw Error(n(176));(T=ap(T.stateNode,T.memoizedProps,T))&&ga(D)}else D.stateNode=Ye(W,T,fe,D)}break;case 11:break;case 13:if(Vn($n,D),W=D.memoizedState,D.effectTag&64){D.expirationTime=q;break e}W=W!==null,fe=!1,T===null?D.memoizedProps.fallback!==void 0&&Ga(D):(q=T.memoizedState,fe=q!==null,W||q===null||(q=T.child.sibling,q!==null&&(De=D.firstEffect,De!==null?(D.firstEffect=q,q.nextEffect=De):(D.firstEffect=D.lastEffect=q,q.nextEffect=null),q.effectTag=8))),W&&!fe&&D.mode&2&&(T===null&&D.memoizedProps.unstable_avoidThisFallback!==!0||$n.current&1?Yi===Du&&(Yi=da):((Yi===Du||Yi===da)&&(Yi=vl),Ep!==0&&gi!==null&&(WA(gi,ss),Mv(gi,Ep)))),b&&W&&(D.effectTag|=4),w&&(W||fe)&&(D.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:Ec(D),Bl(D);break;case 10:Ci(D);break;case 9:break;case 14:break;case 17:ii(D.type)&&Ha(D);break;case 19:if(Vn($n,D),W=D.memoizedState,W===null)break;if(fe=(D.effectTag&64)!==0,De=W.rendering,De===null){if(fe)Pc(W,!1);else if(Yi!==Du||T!==null&&T.effectTag&64)for(T=D.child;T!==null;){if(De=up(T),De!==null){for(D.effectTag|=64,Pc(W,!1),T=De.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),W.lastEffect===null&&(D.firstEffect=null),D.lastEffect=W.lastEffect,T=q,W=D.child;W!==null;)fe=W,q=T,fe.effectTag&=2,fe.nextEffect=null,fe.firstEffect=null,fe.lastEffect=null,De=fe.alternate,De===null?(fe.childExpirationTime=0,fe.expirationTime=q,fe.child=null,fe.memoizedProps=null,fe.memoizedState=null,fe.updateQueue=null,fe.dependencies=null):(fe.childExpirationTime=De.childExpirationTime,fe.expirationTime=De.expirationTime,fe.child=De.child,fe.memoizedProps=De.memoizedProps,fe.memoizedState=De.memoizedState,fe.updateQueue=De.updateQueue,q=De.dependencies,fe.dependencies=q===null?null:{expirationTime:q.expirationTime,firstContext:q.firstContext,responders:q.responders}),W=W.sibling;Mn($n,$n.current&1|2,D),D=D.child;break e}T=T.sibling}}else{if(!fe)if(T=up(De),T!==null){if(D.effectTag|=64,fe=!0,T=T.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),Pc(W,!0),W.tail===null&&W.tailMode==="hidden"&&!De.alternate){D=D.lastEffect=W.lastEffect,D!==null&&(D.nextEffect=null);break}}else Ni()>W.tailExpiration&&1W&&(W=q),De>W&&(W=De),fe=fe.sibling;T.childExpirationTime=W}if(D!==null)return D;P!==null&&!(P.effectTag&2048)&&(P.firstEffect===null&&(P.firstEffect=Mr.firstEffect),Mr.lastEffect!==null&&(P.lastEffect!==null&&(P.lastEffect.nextEffect=Mr.firstEffect),P.lastEffect=Mr.lastEffect),1P?D:P}function xu(P){var D=_o();return lo(99,nF.bind(null,P,D)),null}function nF(P,D){do wp();while(E0!==null);if((yr&(is|Gs))!==En)throw Error(n(327));var T=P.finishedWork,q=P.finishedExpirationTime;if(T===null)return null;if(P.finishedWork=null,P.finishedExpirationTime=0,T===P.current)throw Error(n(177));P.callbackNode=null,P.callbackExpirationTime=0,P.callbackPriority=90,P.nextKnownPendingLevel=0;var W=Aw(T);if(P.firstPendingTime=W,q<=P.lastSuspendedTime?P.firstSuspendedTime=P.lastSuspendedTime=P.nextKnownPendingLevel=0:q<=P.firstSuspendedTime&&(P.firstSuspendedTime=q-1),q<=P.lastPingedTime&&(P.lastPingedTime=0),q<=P.lastExpiredTime&&(P.lastExpiredTime=0),P===gi&&(Mr=gi=null,ss=0),1=T?cn(P,D,T):(Mn($n,$n.current&1,D),D=si(P,D,T),D!==null?D.sibling:null);Mn($n,$n.current&1,D);break;case 19:if(q=D.childExpirationTime>=T,P.effectTag&64){if(q)return Ya(P,D,T);D.effectTag|=64}if(W=D.memoizedState,W!==null&&(W.rendering=null,W.tail=null),Mn($n,$n.current,D),!q)return null}return si(P,D,T)}jo=!1}}else jo=!1;switch(D.expirationTime=0,D.tag){case 2:if(q=D.type,P!==null&&(P.alternate=null,D.alternate=null,D.effectTag|=2),P=D.pendingProps,W=Me(D,On.current),ys(D,T),W=s0(null,D,q,P,W,T),D.effectTag|=1,typeof W=="object"&&W!==null&&typeof W.render=="function"&&W.$$typeof===void 0){if(D.tag=1,tw(),ii(q)){var fe=!0;fc(D)}else fe=!1;D.memoizedState=W.state!==null&&W.state!==void 0?W.state:null;var De=q.getDerivedStateFromProps;typeof De=="function"&&rr(D,q,De,P),W.updater=$r,D.stateNode=W,W._reactInternalFiber=D,qo(D,q,P,T),D=dp(null,D,q,!0,fe,T)}else D.tag=0,Bs(null,D,W,T),D=D.child;return D;case 16:if(W=D.elementType,P!==null&&(P.alternate=null,D.alternate=null,D.effectTag|=2),P=D.pendingProps,Ce(W),W._status!==1)throw W._result;switch(W=W._result,D.type=W,fe=D.tag=uF(W),P=Ei(W,P),fe){case 0:D=NA(null,D,W,P,T);break;case 1:D=gp(null,D,W,P,T);break;case 11:D=wi(null,D,W,P,T);break;case 14:D=yd(null,D,W,Ei(W.type,P),q,T);break;default:throw Error(n(306,W,""))}return D;case 0:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:Ei(q,W),NA(P,D,q,W,T);case 1:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:Ei(q,W),gp(P,D,q,W,T);case 3:if(h0(D),q=D.updateQueue,q===null)throw Error(n(282));if(W=D.memoizedState,W=W!==null?W.element:null,ye(D,q,D.pendingProps,null,T),q=D.memoizedState.element,q===W)p0(),D=si(P,D,T);else{if((W=D.stateNode.hydrate)&&(y?(vc=Au(D.stateNode.containerInfo),pa=D,W=Il=!0):W=!1),W)for(T=t0(D,null,q,T),D.child=T;T;)T.effectTag=T.effectTag&-3|1024,T=T.sibling;else Bs(P,D,q,T),p0();D=D.child}return D;case 5:return hd(D),P===null&&TA(D),q=D.type,W=D.pendingProps,fe=P!==null?P.memoizedProps:null,De=W.children,Fe(q,W)?De=null:fe!==null&&Fe(q,fe)&&(D.effectTag|=16),Go(P,D),D.mode&4&&T!==1&&ke(q,W)?(D.expirationTime=D.childExpirationTime=1,D=null):(Bs(P,D,De,T),D=D.child),D;case 6:return P===null&&TA(D),null;case 13:return cn(P,D,T);case 4:return r0(D,D.stateNode.containerInfo),q=D.pendingProps,P===null?D.child=mu(D,null,q,T):Bs(P,D,q,T),D.child;case 11:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:Ei(q,W),wi(P,D,q,W,T);case 7:return Bs(P,D,D.pendingProps,T),D.child;case 8:return Bs(P,D,D.pendingProps.children,T),D.child;case 12:return Bs(P,D,D.pendingProps.children,T),D.child;case 10:e:{if(q=D.type._context,W=D.pendingProps,De=D.memoizedProps,fe=W.value,Ho(D,fe),De!==null){var vt=De.value;if(fe=ds(vt,fe)?0:(typeof q._calculateChangedBits=="function"?q._calculateChangedBits(vt,fe):1073741823)|0,fe===0){if(De.children===W.children&&!_i.current){D=si(P,D,T);break e}}else for(vt=D.child,vt!==null&&(vt.return=D);vt!==null;){var wt=vt.dependencies;if(wt!==null){De=vt.child;for(var St=wt.firstContext;St!==null;){if(St.context===q&&St.observedBits&fe){vt.tag===1&&(St=Cs(T,null),St.tag=2,tt(vt,St)),vt.expirationTime"u")return!1;var D=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(D.isDisabled||!D.supportsFiber)return!0;try{var T=D.inject(P);fw=function(q){try{D.onCommitFiberRoot(T,q,void 0,(q.current.effectTag&64)===64)}catch{}},pw=function(q){try{D.onCommitFiberUnmount(T,q)}catch{}}}catch{}return!0}function cF(P,D,T,q){this.tag=P,this.key=T,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=D,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=q,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Dl(P,D,T,q){return new cF(P,D,T,q)}function hw(P){return P=P.prototype,!(!P||!P.isReactComponent)}function uF(P){if(typeof P=="function")return hw(P)?1:0;if(P!=null){if(P=P.$$typeof,P===L)return 11;if(P===te)return 14}return 2}function YA(P,D){var T=P.alternate;return T===null?(T=Dl(P.tag,D,P.key,P.mode),T.elementType=P.elementType,T.type=P.type,T.stateNode=P.stateNode,T.alternate=P,P.alternate=T):(T.pendingProps=D,T.effectTag=0,T.nextEffect=null,T.firstEffect=null,T.lastEffect=null),T.childExpirationTime=P.childExpirationTime,T.expirationTime=P.expirationTime,T.child=P.child,T.memoizedProps=P.memoizedProps,T.memoizedState=P.memoizedState,T.updateQueue=P.updateQueue,D=P.dependencies,T.dependencies=D===null?null:{expirationTime:D.expirationTime,firstContext:D.firstContext,responders:D.responders},T.sibling=P.sibling,T.index=P.index,T.ref=P.ref,T}function xd(P,D,T,q,W,fe){var De=2;if(q=P,typeof P=="function")hw(P)&&(De=1);else if(typeof P=="string")De=5;else e:switch(P){case E:return ku(T.children,W,fe,D);case R:De=8,W|=7;break;case I:De=8,W|=1;break;case v:return P=Dl(12,T,D,W|8),P.elementType=v,P.type=v,P.expirationTime=fe,P;case U:return P=Dl(13,T,D,W),P.type=U,P.elementType=U,P.expirationTime=fe,P;case z:return P=Dl(19,T,D,W),P.elementType=z,P.expirationTime=fe,P;default:if(typeof P=="object"&&P!==null)switch(P.$$typeof){case x:De=10;break e;case C:De=9;break e;case L:De=11;break e;case te:De=14;break e;case ae:De=16,q=null;break e}throw Error(n(130,P==null?P:typeof P,""))}return D=Dl(De,T,D,W),D.elementType=P,D.type=q,D.expirationTime=fe,D}function ku(P,D,T,q){return P=Dl(7,P,q,D),P.expirationTime=T,P}function gw(P,D,T){return P=Dl(6,P,null,D),P.expirationTime=T,P}function dw(P,D,T){return D=Dl(4,P.children!==null?P.children:[],P.key,D),D.expirationTime=T,D.stateNode={containerInfo:P.containerInfo,pendingChildren:null,implementation:P.implementation},D}function AF(P,D,T){this.tag=D,this.current=null,this.containerInfo=P,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=Ue,this.pendingContext=this.context=null,this.hydrate=T,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function Lv(P,D){var T=P.firstSuspendedTime;return P=P.lastSuspendedTime,T!==0&&T>=D&&P<=D}function WA(P,D){var T=P.firstSuspendedTime,q=P.lastSuspendedTime;TD||T===0)&&(P.lastSuspendedTime=D),D<=P.lastPingedTime&&(P.lastPingedTime=0),D<=P.lastExpiredTime&&(P.lastExpiredTime=0)}function Mv(P,D){D>P.firstPendingTime&&(P.firstPendingTime=D);var T=P.firstSuspendedTime;T!==0&&(D>=T?P.firstSuspendedTime=P.lastSuspendedTime=P.nextKnownPendingLevel=0:D>=P.lastSuspendedTime&&(P.lastSuspendedTime=D+1),D>P.nextKnownPendingLevel&&(P.nextKnownPendingLevel=D))}function kd(P,D){var T=P.lastExpiredTime;(T===0||T>D)&&(P.lastExpiredTime=D)}function Ov(P){var D=P._reactInternalFiber;if(D===void 0)throw typeof P.render=="function"?Error(n(188)):Error(n(268,Object.keys(P)));return P=me(D),P===null?null:P.stateNode}function Uv(P,D){P=P.memoizedState,P!==null&&P.dehydrated!==null&&P.retryTime{"use strict";QEe.exports=kEe()});var TEe=_((DKt,REe)=>{"use strict";var Vyt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};REe.exports=Vyt});var OEe=_((PKt,MEe)=>{"use strict";var zyt=Object.assign||function(t){for(var e=1;e"}}]),t}(),NEe=function(){Nk(t,null,[{key:"fromJS",value:function(r){var o=r.width,a=r.height;return new t(o,a)}}]);function t(e,r){B6(this,t),this.width=e,this.height=r}return Nk(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),t}(),LEe=function(){function t(e,r){B6(this,t),this.unit=e,this.value=r}return Nk(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case nu.UNIT_POINT:return String(this.value);case nu.UNIT_PERCENT:return this.value+"%";case nu.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();MEe.exports=function(t,e){function r(u,A,p){var h=u[A];u[A]=function(){for(var E=arguments.length,I=Array(E),v=0;v1?I-1:0),x=1;x1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:nu.DIRECTION_LTR;return u.call(this,A,p,h)}),zyt({Config:e.Config,Node:e.Node,Layout:t("Layout",Jyt),Size:t("Size",NEe),Value:t("Value",LEe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},nu)}});var UEe=_((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof ve=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var o=nodeFS.readFileSync(e);return r?o:o.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,o){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):o()},a.onerror=o,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var o=enlargeMemory();if(!o)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var o=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return o},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,o,a,n){var u=getCFunc(e),A=[],p=0;if(a)for(var h=0;h>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,o){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var u=typeof e=="string"?e:null,A;if(r==ALLOC_NONE?A=o:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,u?1:e.length)),a){var o=A,p;for(assert((A&3)==0),p=A+(n&-4);o>2]=0;for(p=A+n;o>0]=0;return A}if(u==="i8")return t.subarray||t.slice?HEAPU8.set(t,A):HEAPU8.set(new Uint8Array(t),A),A;for(var h=0,E,I,v;h>0],r|=o,!(o==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var u=1024,A;e>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,u))),n=n?n+A:A,t+=u,e-=u;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var o,a,n,u,A,p,h="";;){if(o=t[e++],!o)return h;if(!(o&128)){h+=String.fromCharCode(o);continue}if(a=t[e++]&63,(o&224)==192){h+=String.fromCharCode((o&31)<<6|a);continue}if(n=t[e++]&63,(o&240)==224?o=(o&15)<<12|a<<6|n:(u=t[e++]&63,(o&248)==240?o=(o&7)<<18|a<<12|n<<6|u:(A=t[e++]&63,(o&252)==248?o=(o&3)<<24|a<<18|n<<12|u<<6|A:(p=t[e++]&63,o=(o&1)<<30|a<<24|n<<18|u<<12|A<<6|p))),o<65536)h+=String.fromCharCode(o);else{var E=o-65536;h+=String.fromCharCode(55296|E>>10,56320|E&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,o){if(!(o>0))return 0;for(var a=r,n=r+o-1,u=0;u=55296&&A<=57343&&(A=65536+((A&1023)<<10)|t.charCodeAt(++u)&1023),A<=127){if(r>=n)break;e[r++]=A}else if(A<=2047){if(r+1>=n)break;e[r++]=192|A>>6,e[r++]=128|A&63}else if(A<=65535){if(r+2>=n)break;e[r++]=224|A>>12,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=2097151){if(r+3>=n)break;e[r++]=240|A>>18,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=67108863){if(r+4>=n)break;e[r++]=248|A>>24,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else{if(r+5>=n)break;e[r++]=252|A>>30,e[r++]=128|A>>24&63,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r=55296&&o<=57343&&(o=65536+((o&1023)<<10)|t.charCodeAt(++r)&1023),o<=127?++e:o<=2047?e+=2:o<=65535?e+=3:o<=2097151?e+=4:o<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),o=lengthBytesUTF8(r)+1,a=_malloc(o);stringToUTF8(r,a,o);var n=_malloc(4),u=e(a,0,0,n);if(getValue(n,"i32")===0&&u)return Pointer_stringify(u)}catch{}finally{a&&_free(a),n&&_free(n),u&&_free(u)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var o=demangle(r);return r===o?r:r+" ["+o+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=` +`+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var o=r>0?r:lengthBytesUTF8(t)+1,a=new Array(o),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r255&&(o&=255),e.push(String.fromCharCode(o))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var o,a;r&&(a=e+lengthBytesUTF8(t),o=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=o)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var o=0;o>0]=t.charCodeAt(o);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var o=e>>>16,a=e&65535,n=r>>>16,u=r&65535;return a*u+(o*u+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,o,a,n,u,A){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,o,a,n,u,A){return ASM_CONSTS[t](e,r,o,a,n,u,A)}function _emscripten_asm_const_iiiii(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiidddddd(t,e,r,o,a,n,u,A,p){return ASM_CONSTS[t](e,r,o,a,n,u,A,p)}function _emscripten_asm_const_iiididi(t,e,r,o,a,n,u){return ASM_CONSTS[t](e,r,o,a,n,u)}function _emscripten_asm_const_iiii(t,e,r,o){return ASM_CONSTS[t](e,r,o)}function _emscripten_asm_const_iiiid(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiiiii(t,e,r,o,a,n){return ASM_CONSTS[t](e,r,o,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,o){var a=arguments.length,n=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,o);else for(var A=t.length-1;A>=0;A--)(u=t[A])&&(n=(a<3?u(n):a>3?u(e,r,n):u(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,o){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=o/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var u=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,u)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(u){u.source===window&&u.data===o&&(u.stopPropagation(),r.shift()())};var a=n,r=[],o="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:o})):window.postMessage(o,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,o,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=o;var n;typeof o<"u"?n=function(){Module.dynCall_vi(t,o)}:n=function(){Module.dynCall_v(t)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var E=Browser.mainLoop.remainingBlockers,I=E%1==0?E-1:Math.floor(E);h.counted?Browser.mainLoop.remainingBlockers=I:(I=I+.5,Browser.mainLoop.remainingBlockers=(8*E+I)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),u1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(u0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,u,A,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(u)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(u)}))}catch(x){Runtime.warnOnce("Blob constructor present but fails: "+x+"; falling back to blob builder")}if(!h){var E=new Browser.BlobBuilder;E.append(new Uint8Array(n).buffer),h=E.getBlob()}var I=Browser.URLObject.createObjectURL(h),v=new Image;v.onload=function(){assert(v.complete,"Image "+u+" could not be decoded");var C=document.createElement("canvas");C.width=v.width,C.height=v.height;var R=C.getContext("2d");R.drawImage(v,0,0),Module.preloadedImages[u]=C,Browser.URLObject.revokeObjectURL(I),A&&A(n)},v.onerror=function(C){console.log("Image "+I+" could not be decoded"),p&&p()},v.src=I},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,u,A,p){var h=!1;function E(R){h||(h=!0,Module.preloadedAudios[u]=R,A&&A(n))}function I(){h||(h=!0,Module.preloadedAudios[u]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var v=new Blob([n],{type:Browser.getMimetype(u)})}catch{return I()}var x=Browser.URLObject.createObjectURL(v),C=new Audio;C.addEventListener("canplaythrough",function(){E(C)},!1),C.onerror=function(L){if(h)return;console.log("warning: browser could not fully decode audio "+u+", trying slower base64 approach");function U(z){for(var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ae="=",le="",ce=0,Ce=0,de=0;de=6;){var Be=ce>>Ce-6&63;Ce-=6,le+=te[Be]}return Ce==2?(le+=te[(ce&3)<<4],le+=ae+ae):Ce==4&&(le+=te[(ce&15)<<2],le+=ae),le}C.src="data:audio/x-"+u.substr(-3)+";base64,"+U(n),E(C)},C.src=x,Browser.safeSetTimeout(function(){E(C)},1e4)}else return I()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var o=Module.canvas;o&&(o.requestPointerLock=o.requestPointerLock||o.mozRequestPointerLock||o.webkitRequestPointerLock||o.msRequestPointerLock||function(){},o.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},o.exitPointerLock=o.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&o.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,o){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var u={antialias:!1,alpha:!1};if(o)for(var A in o)u[A]=o[A];n=GL.createContext(t,u),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var o=Module.canvas;function a(){Browser.isFullscreen=!1;var u=o.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===u?(o.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},o.exitFullscreen=o.exitFullscreen.bind(document),Browser.lockPointer&&o.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(u.parentNode.insertBefore(o,u),u.parentNode.removeChild(u),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(o)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");o.parentNode.insertBefore(n,o),n.appendChild(o),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(o,a,n){return Browser.requestFullscreen(o,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,o=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var u=t.touch;if(u===void 0)return;var A=u.pageX-(a+e.left),p=u.pageY-(n+e.top);A=A*(r/e.width),p=p*(o/e.height);var h={x:A,y:p};if(t.type==="touchstart")Browser.lastTouches[u.identifier]=h,Browser.touches[u.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var E=Browser.touches[u.identifier];E||(E=h),Browser.lastTouches[u.identifier]=E,Browser.touches[u.identifier]=h}return}var I=t.pageX-(a+e.left),v=t.pageY-(n+e.top);I=I*(r/e.width),v=v*(o/e.height),Browser.mouseMovementX=I-Browser.mouseX,Browser.mouseMovementY=v-Browser.mouseY,Browser.mouseX=I,Browser.mouseY=v}},asyncLoad:function(t,e,r,o){var a=o?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var o=Module.canvas;Browser.updateCanvasDimensions(o,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var o=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(o/a>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(o){return(typeof FS>"u"||!(o instanceof FS.ErrnoError))&&abort(o),-o.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function r(p,h,E,I,v,x){if(h==1){var C=I&896;(C==128||C==256||C==384)&&(p="X const")}var R;return x?R=E.replace("X",p).replace("Y",v):R=p.replace("X",E).replace("Y",v),R.replace(/([*&]) (?=[*&])/g,"$1")}function o(p,h,E,I,v){throw new Error(p+" type "+E.replace("X",h+"?")+(I?" with flag "+I:"")+" in "+v)}function a(p,h,E,I,v,x,C,R){x===void 0&&(x="X"),R===void 0&&(R=1);var L=E(p);if(L)return L;var U=I(p),z=U.placeholderFlag,te=e[z];C&&te&&(x=r(C[2],C[0],x,te[0],"?",!0));var ae;z==0&&(ae="Unbound"),z>=10&&(ae="Corrupt"),R>20&&(ae="Deeply nested"),ae&&o(ae,p,x,z,v||"?");var le=U.paramList[0],ce=a(le,h,E,I,v,x,te,R+1),Ce,de={flags:te[0],id:p,name:"",paramList:[ce]},Be=[],Ee="?";switch(U.placeholderFlag){case 1:Ce=ce.spec;break;case 2:if((ce.flags&15360)==1024&&ce.spec.ptrSize==1){de.flags=7168;break}case 3:case 6:case 5:Ce=ce.spec,ce.flags&15360;break;case 8:Ee=""+U.paramList[1],de.paramList.push(U.paramList[1]);break;case 9:for(var g=0,me=U.paramList[1];g>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),u=SYSCALLS.get(),A=a;return FS.llseek(r,A,u),HEAP32[n>>2]=r.position,r.getdents&&A===0&&u===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(E,I){var v=___syscall146.buffers[E];assert(v),I===0||I===10?((E===1?Module.print:Module.printErr)(UTF8ArrayToString(v,0)),v.length=0):v.push(I)});for(var u=0;u>2],p=HEAP32[o+(u*8+4)>>2],h=0;h"u"||!(E instanceof FS.ErrnoError))&&abort(E),-E.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;tt.pageSize/2||e>t.pageSize-r){var o=_nbind.typeNameTbl.NBind.proto;return o.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var o=HEAPU32[t.pagePtr];if(o){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],o=new r(e);return typeIdTbl[e.id]=o,_nbind.typeNameTbl[e.name]=o,o}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var o=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(o=[o[0],o.slice(1)]),{paramList:o,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},o=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+o];if(!a)throw new Error("dynCall_"+o+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,o){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,o)):(r.arity=o,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return o.heap=a[r.ptrSize*8],o.ptrSize=r.ptrSize,o}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,o=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,o,r),o}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushCString(a,o)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(o){return!!o},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(o){__extends(a,o);function a(n,u,A,p){var h=o.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var E=u,I=A,v=p;if(n!==_nbind.ptrMarker){var x=h.__nbindConstructor.apply(h,arguments);E=4608,v=HEAPU32[x/4],I=HEAPU32[x/4+1]}var C={configurable:!0,enumerable:!1,value:null,writable:!1},R={__nbindFlags:E,__nbindPtr:I};v&&(R.__nbindShared=v,_nbind.mark(h));for(var L=0,U=Object.keys(R);L>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t=3?u=Buffer.from(n):u=new Buffer(n),u.copy(o)}else getBuffer(o).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,o,a,n){try{Module.dynCall_viiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,o){try{return Module.dynCall_fiff(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,o,a){try{Module.dynCall_viddi(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,o){try{Module.dynCall_vidd(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,o){try{return Module.dynCall_iiii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,o){try{return Module.dynCall_diii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,o,a,n){try{Module.dynCall_viiddi(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,o,a,n,u){try{Module.dynCall_viiiiii(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,o,a,n){try{return Module.dynCall_iiiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,o,a){try{Module.dynCall_viiid(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,o,a,n,u){try{Module.dynCall_viififi(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(t,e,r,o){try{Module.dynCall_viii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,o){try{Module.dynCall_viid(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,o,a){try{Module.dynCall_viiii(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var o=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),u=new t.Uint8Array(r),A=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),E=new t.Float64Array(r),I=e.DYNAMICTOP_PTR|0,v=e.tempDoublePtr|0,x=e.ABORT|0,C=e.STACKTOP|0,R=e.STACK_MAX|0,L=e.cttz_i8|0,U=e.___dso_handle|0,z=0,te=0,ae=0,le=0,ce=t.NaN,Ce=t.Infinity,de=0,Be=0,Ee=0,g=0,me=0,we=0,Ae=t.Math.floor,ne=t.Math.abs,Z=t.Math.sqrt,xe=t.Math.pow,Ne=t.Math.cos,ht=t.Math.sin,H=t.Math.tan,rt=t.Math.acos,Te=t.Math.asin,Fe=t.Math.atan,ke=t.Math.atan2,Ye=t.Math.exp,be=t.Math.log,et=t.Math.ceil,Ue=t.Math.imul,S=t.Math.min,w=t.Math.max,b=t.Math.clz32,y=t.Math.fround,F=e.abort,J=e.assert,X=e.enlargeMemory,$=e.getTotalMemory,ie=e.abortOnCannotGrowMemory,Se=e.invoke_viiiii,Re=e.invoke_vif,at=e.invoke_vid,dt=e.invoke_fiff,jt=e.invoke_vi,tr=e.invoke_vii,bt=e.invoke_ii,ln=e.invoke_viddi,kr=e.invoke_vidd,mr=e.invoke_iiii,Sr=e.invoke_diii,Kr=e.invoke_di,Kn=e.invoke_iid,Ms=e.invoke_iii,Ri=e.invoke_viiddi,gs=e.invoke_viiiiii,io=e.invoke_dii,Pi=e.invoke_i,Os=e.invoke_iiiiii,so=e.invoke_viiid,uc=e.invoke_viififi,Au=e.invoke_viii,op=e.invoke_v,ap=e.invoke_viid,Us=e.invoke_idd,Dn=e.invoke_viiii,oo=e._emscripten_asm_const_iiiii,_s=e._emscripten_asm_const_iiidddddd,ml=e._emscripten_asm_const_iiiid,yl=e.__nbind_reference_external,ao=e._emscripten_asm_const_iiiiiiii,Vn=e._removeAccessorPrefix,Mn=e._typeModule,Ti=e.__nbind_register_pool,On=e.__decorate,_i=e._llvm_stackrestore,ir=e.___cxa_atexit,Me=e.__extends,ii=e.__nbind_get_value_object,Ha=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,hr=e._emscripten_set_main_loop_timing,Ac=e.__nbind_register_primitive,fu=e.__nbind_register_type,fc=e._emscripten_memcpy_big,El=e.__nbind_register_function,vA=e.___setErrNo,pu=e.__nbind_register_class,Ie=e.__nbind_finish,Tt=e._abort,pc=e._nbind_value,Hi=e._llvm_stacksave,hu=e.___syscall54,Yt=e._defineHidden,Cl=e._emscripten_set_main_loop,DA=e._emscripten_get_now,lp=e.__nbind_register_callback_signature,hc=e._emscripten_asm_const_iiiiii,PA=e.__nbind_free_external,Qn=e._emscripten_asm_const_iiii,hi=e._emscripten_asm_const_iiididi,gc=e.___syscall6,bA=e._atexit,aa=e.___syscall140,Ni=e.___syscall146,_o=y(0);let Xe=y(0);function lo(s){s=s|0;var l=0;return l=C,C=C+s|0,C=C+15&-16,l|0}function dc(){return C|0}function gu(s){s=s|0,C=s}function qi(s,l){s=s|0,l=l|0,C=s,R=l}function du(s,l){s=s|0,l=l|0,z||(z=s,te=l)}function SA(s){s=s|0,we=s}function qa(){return we|0}function mc(){var s=0,l=0;Dr(8104,8,400)|0,Dr(8504,408,540)|0,s=9044,l=s+44|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));o[9088]=0,o[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,ir(17,8104,U|0)|0}function ds(s){s=s|0,ft(s+948|0)}function Ht(s){return s=y(s),((bu(s)|0)&2147483647)>>>0>2139095040|0}function Fn(s,l,c){s=s|0,l=l|0,c=c|0;e:do if(n[s+(l<<3)+4>>2]|0)s=s+(l<<3)|0;else{if((l|2|0)==3&&n[s+60>>2]|0){s=s+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[s+52>>2]|0){s=s+48|0;break e}break}default:}if(n[s+68>>2]|0){s=s+64|0;break}else{s=(l|1|0)==5?948:c;break}}while(!1);return s|0}function Ei(s){s=s|0;var l=0;return l=Jv(1e3)|0,la(s,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,Dr(l|0,8104,1e3)|0,o[s+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=s,l|0}function la(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,g0(s,5,3197,f)),C=d}function co(){return Ei(956)|0}function Hs(s){s=s|0;var l=0;return l=Kt(1e3)|0,ca(l,s),la(n[s+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function ca(s,l){s=s|0,l=l|0;var c=0;Dr(s|0,l|0,948)|0,Cd(s+948|0,l+948|0),c=s+960|0,s=l+960|0,l=c+40|0;do n[c>>2]=n[s>>2],c=c+4|0,s=s+4|0;while((c|0)<(l|0))}function ua(s){s=s|0;var l=0,c=0,f=0,d=0;if(l=s+944|0,c=n[l>>2]|0,c|0&&(Ho(c+948|0,s)|0,n[l>>2]=0),c=Ci(s)|0,c|0){l=0;do n[(ms(s,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(c|0))}c=s+948|0,f=n[c>>2]|0,d=s+952|0,l=n[d>>2]|0,(l|0)!=(f|0)&&(n[d>>2]=l+(~((l+-4-f|0)>>>2)<<2)),ys(c),Xv(s),n[2276]=(n[2276]|0)+-1}function Ho(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0;f=n[s>>2]|0,k=s+4|0,c=n[k>>2]|0,m=c;e:do if((f|0)==(c|0))d=f,B=4;else for(s=f;;){if((n[s>>2]|0)==(l|0)){d=s,B=4;break e}if(s=s+4|0,(s|0)==(c|0)){s=0;break}}while(!1);return(B|0)==4&&((d|0)!=(c|0)?(f=d+4|0,s=m-f|0,l=s>>2,l&&(ww(d|0,f|0,s|0)|0,c=n[k>>2]|0),s=d+(l<<2)|0,(c|0)==(s|0)||(n[k>>2]=c+(~((c+-4-s|0)>>>2)<<2)),s=1):s=0),s|0}function Ci(s){return s=s|0,(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2|0}function ms(s,l){s=s|0,l=l|0;var c=0;return c=n[s+948>>2]|0,(n[s+952>>2]|0)-c>>2>>>0>l>>>0?s=n[c+(l<<2)>>2]|0:s=0,s|0}function ys(s){s=s|0;var l=0,c=0,f=0,d=0;f=C,C=C+32|0,l=f,d=n[s>>2]|0,c=(n[s+4>>2]|0)-d|0,((n[s+8>>2]|0)-d|0)>>>0>c>>>0&&(d=c>>2,Cp(l,d,d,s+8|0),E0(s,l),UA(l)),C=f}function Es(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0;O=Ci(s)|0;do if(O|0){if((n[(ms(s,0)|0)+944>>2]|0)==(s|0)){if(!(Ho(s+948|0,l)|0))break;Dr(l+400|0,8504,540)|0,n[l+944>>2]=0,Le(s);break}B=n[(n[s+976>>2]|0)+12>>2]|0,k=s+948|0,Q=(B|0)==0,c=0,m=0;do f=n[(n[k>>2]|0)+(m<<2)>>2]|0,(f|0)==(l|0)?Le(s):(d=Hs(f)|0,n[(n[k>>2]|0)+(c<<2)>>2]=d,n[d+944>>2]=s,Q||BR[B&15](f,d,s,c),c=c+1|0),m=m+1|0;while((m|0)!=(O|0));if(c>>>0>>0){Q=s+948|0,k=s+952|0,B=c,c=n[k>>2]|0;do m=(n[Q>>2]|0)+(B<<2)|0,f=m+4|0,d=c-f|0,l=d>>2,l&&(ww(m|0,f|0,d|0)|0,c=n[k>>2]|0),d=c,f=m+(l<<2)|0,(d|0)!=(f|0)&&(c=d+(~((d+-4-f|0)>>>2)<<2)|0,n[k>>2]=c),B=B+1|0;while((B|0)!=(O|0))}}while(!1)}function qs(s){s=s|0;var l=0,c=0,f=0,d=0;Un(s,(Ci(s)|0)==0,2491),Un(s,(n[s+944>>2]|0)==0,2545),l=s+948|0,c=n[l>>2]|0,f=s+952|0,d=n[f>>2]|0,(d|0)!=(c|0)&&(n[f>>2]=d+(~((d+-4-c|0)>>>2)<<2)),ys(l),l=s+976|0,c=n[l>>2]|0,Dr(s|0,8104,1e3)|0,o[c+2>>0]|0&&(n[s+4>>2]=2,n[s+12>>2]=4),n[l>>2]=c}function Un(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,Ao(s,5,3197,f)),C=d}function Pn(){return n[2276]|0}function Cs(){var s=0;return s=Jv(20)|0,We((s|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[s>>2]=n[239],n[s+4>>2]=n[240],n[s+8>>2]=n[241],n[s+12>>2]=n[242],n[s+16>>2]=n[243],s|0}function We(s,l){s=s|0,l=l|0;var c=0,f=0;f=C,C=C+16|0,c=f,s||(n[c>>2]=l,Ao(0,5,3197,c)),C=f}function tt(s){s=s|0,Xv(s),n[2277]=(n[2277]|0)+-1}function Bt(s,l){s=s|0,l=l|0;var c=0;l?(Un(s,(Ci(s)|0)==0,2629),c=1):(c=0,l=0),n[s+964>>2]=l,n[s+988>>2]=c}function or(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+8|0,d=f+4|0,B=f,n[d>>2]=l,Un(s,(n[l+944>>2]|0)==0,2709),Un(s,(n[s+964>>2]|0)==0,2763),ee(s),l=s+948|0,n[B>>2]=(n[l>>2]|0)+(c<<2),n[m>>2]=n[B>>2],ye(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=s,Le(s),C=f}function ee(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;if(c=Ci(s)|0,c|0&&(n[(ms(s,0)|0)+944>>2]|0)!=(s|0)){f=n[(n[s+976>>2]|0)+12>>2]|0,d=s+948|0,m=(f|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,k=Hs(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=k,n[k+944>>2]=s,m||BR[f&15](B,k,s,l),l=l+1|0;while((l|0)!=(c|0))}}function ye(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0;$e=C,C=C+64|0,j=$e+52|0,k=$e+48|0,se=$e+28|0,je=$e+24|0,Oe=$e+20|0,Qe=$e,f=n[s>>2]|0,m=f,l=f+((n[l>>2]|0)-m>>2<<2)|0,f=s+4|0,d=n[f>>2]|0,B=s+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[c>>2],n[f>>2]=(n[f>>2]|0)+4;break}_A(s,l,d,l+4|0),l>>>0<=c>>>0&&(c=(n[f>>2]|0)>>>0>c>>>0?c+4|0:c),n[l>>2]=n[c>>2]}else{f=(d-m>>2)+1|0,d=N(s)|0,d>>>0>>0&&Jr(s),M=n[s>>2]|0,O=(n[B>>2]|0)-M|0,m=O>>1,Cp(Qe,O>>2>>>0>>1>>>0?m>>>0>>0?f:m:d,l-M>>2,s+8|0),M=Qe+8|0,f=n[M>>2]|0,m=Qe+12|0,O=n[m>>2]|0,B=O,Q=f;do if((f|0)==(O|0)){if(O=Qe+4|0,f=n[O>>2]|0,Je=n[Qe>>2]|0,d=Je,f>>>0<=Je>>>0){f=B-d>>1,f=f|0?f:1,Cp(se,f,f>>>2,n[Qe+16>>2]|0),n[je>>2]=n[O>>2],n[Oe>>2]=n[M>>2],n[k>>2]=n[je>>2],n[j>>2]=n[Oe>>2],lw(se,k,j),f=n[Qe>>2]|0,n[Qe>>2]=n[se>>2],n[se>>2]=f,f=se+4|0,Je=n[O>>2]|0,n[O>>2]=n[f>>2],n[f>>2]=Je,f=se+8|0,Je=n[M>>2]|0,n[M>>2]=n[f>>2],n[f>>2]=Je,f=se+12|0,Je=n[m>>2]|0,n[m>>2]=n[f>>2],n[f>>2]=Je,UA(se),f=n[M>>2]|0;break}m=f,B=((m-d>>2)+1|0)/-2|0,k=f+(B<<2)|0,d=Q-m|0,m=d>>2,m&&(ww(k|0,f|0,d|0)|0,f=n[O>>2]|0),Je=k+(m<<2)|0,n[M>>2]=Je,n[O>>2]=f+(B<<2),f=Je}while(!1);n[f>>2]=n[c>>2],n[M>>2]=(n[M>>2]|0)+4,l=C0(s,Qe,l)|0,UA(Qe)}while(!1);return C=$e,l|0}function Le(s){s=s|0;var l=0;do{if(l=s+984|0,o[l>>0]|0)break;o[l>>0]=1,h[s+504>>2]=y(ce),s=n[s+944>>2]|0}while(s|0)}function ft(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function pt(s){return s=s|0,n[s+944>>2]|0}function Nt(s){s=s|0,Un(s,(n[s+964>>2]|0)!=0,2832),Le(s)}function rr(s){return s=s|0,(o[s+984>>0]|0)!=0|0}function $r(s,l){s=s|0,l=l|0,TUe(s,l,400)|0&&(Dr(s|0,l|0,400)|0,Le(s))}function ji(s){s=s|0;var l=Xe;return l=y(h[s+44>>2]),s=Ht(l)|0,y(s?y(0):l)}function rs(s){s=s|0;var l=Xe;return l=y(h[s+48>>2]),Ht(l)|0&&(l=o[(n[s+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function bi(s,l){s=s|0,l=l|0,n[s+980>>2]=l}function qo(s){return s=s|0,n[s+980>>2]|0}function xA(s,l){s=s|0,l=l|0;var c=0;c=s+4|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function kA(s){return s=s|0,n[s+4>>2]|0}function cp(s,l){s=s|0,l=l|0;var c=0;c=s+8|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function e0(s){return s=s|0,n[s+8>>2]|0}function mu(s,l){s=s|0,l=l|0;var c=0;c=s+12|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function t0(s){return s=s|0,n[s+12>>2]|0}function yu(s,l){s=s|0,l=l|0;var c=0;c=s+16|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function uo(s){return s=s|0,n[s+16>>2]|0}function QA(s,l){s=s|0,l=l|0;var c=0;c=s+20|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function yc(s){return s=s|0,n[s+20>>2]|0}function Aa(s,l){s=s|0,l=l|0;var c=0;c=s+24|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function r0(s){return s=s|0,n[s+24>>2]|0}function Ec(s,l){s=s|0,l=l|0;var c=0;c=s+28|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function hd(s){return s=s|0,n[s+28>>2]|0}function n0(s,l){s=s|0,l=l|0;var c=0;c=s+32|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function $n(s){return s=s|0,n[s+32>>2]|0}function up(s,l){s=s|0,l=l|0;var c=0;c=s+36|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function i0(s){return s=s|0,n[s+36>>2]|0}function FA(s,l){s=s|0,l=y(l);var c=0;c=s+40|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function js(s,l){s=s|0,l=y(l);var c=0;c=s+44|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Eu(s,l){s=s|0,l=y(l);var c=0;c=s+48|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function ja(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+52|0,d=s+56|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Gi(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+52|0,c=s+56|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ht(l)|0,n[c>>2]=f?3:2,Le(s))}function fa(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+52|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Cu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=(m^1)&1,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function ws(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=m?0:2,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Cc(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+132+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=(m^1)&1,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Y(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=m?0:2,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Dt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+60+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wl(s,l){s=s|0,l=l|0;var c=0;c=s+60+(l<<3)+4|0,(n[c>>2]|0)!=3&&(h[s+60+(l<<3)>>2]=y(ce),n[c>>2]=3,Le(s))}function Si(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=(m^1)&1,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Ic(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=m?0:2,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function ct(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+204+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=(m^1)&1,d=s+276+(l<<3)|0,l=s+276+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function s0(s,l){return s=s|0,l=l|0,y(h[s+276+(l<<3)>>2])}function tw(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+348|0,d=s+352|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function RA(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+348|0,c=s+352|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ht(l)|0,n[c>>2]=f?3:2,Le(s))}function Ap(s){s=s|0;var l=0;l=s+352|0,(n[l>>2]|0)!=3&&(h[s+348>>2]=y(ce),n[l>>2]=3,Le(s))}function Br(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+348|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Is(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+356|0,d=s+360|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function o0(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+356|0,c=s+360|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ht(l)|0,n[c>>2]=f?3:2,Le(s))}function a0(s){s=s|0;var l=0;l=s+360|0,(n[l>>2]|0)!=3&&(h[s+356>>2]=y(ce),n[l>>2]=3,Le(s))}function l0(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+356|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function fp(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Bc(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=m?0:2,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Ct(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+364|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function gd(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function c0(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=m?0:2,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function u0(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+372|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Iu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function dd(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=m?0:2,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function A0(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+380|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Bu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function rw(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=m?0:2,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function md(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+388|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function pa(s,l){s=s|0,l=y(l);var c=0;c=s+396|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function vc(s){return s=s|0,y(h[s+396>>2])}function Il(s){return s=s|0,y(h[s+400>>2])}function vu(s){return s=s|0,y(h[s+404>>2])}function f0(s){return s=s|0,y(h[s+408>>2])}function TA(s){return s=s|0,y(h[s+412>>2])}function pp(s){return s=s|0,y(h[s+416>>2])}function Ga(s){return s=s|0,y(h[s+420>>2])}function p0(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+424+(l<<2)>>2])}function hp(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+448+(l<<2)>>2])}function jo(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+472+(l<<2)>>2])}function Bs(s,l){s=s|0,l=l|0;var c=0,f=Xe;return c=n[s+4>>2]|0,(c|0)==(n[l+4>>2]|0)?c?(f=y(h[s>>2]),s=y(ne(y(f-y(h[l>>2]))))>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,Ha(f|0,s|0,l|0,0),Ao(s,3,(o[f+11>>0]|0)<0?n[f>>2]|0:f,c),n3e(f),C=c}function Go(s,l,c,f){s=y(s),l=y(l),c=c|0,f=f|0;var d=Xe;s=y(s*l),d=y(mR(s,y(1)));do if(wi(d,y(0))|0)s=y(s-d);else{if(s=y(s-d),wi(d,y(1))|0){s=y(s+y(1));break}if(c){s=y(s+y(1));break}f||(d>y(.5)?d=y(1):(f=wi(d,y(.5))|0,d=y(f?1:0)),s=y(s+d))}while(!1);return y(s/l)}function NA(s,l,c,f,d,m,B,k,Q,O,M,j,se){s=s|0,l=y(l),c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,k=y(k),Q=y(Q),O=y(O),M=y(M),j=y(j),se=se|0;var je=0,Oe=Xe,Qe=Xe,$e=Xe,Je=Xe,lt=Xe,_e=Xe;return Q>2]),Oe!=y(0))?($e=y(Go(l,Oe,0,0)),Je=y(Go(f,Oe,0,0)),Qe=y(Go(m,Oe,0,0)),Oe=y(Go(k,Oe,0,0))):(Qe=m,$e=l,Oe=k,Je=f),(d|0)==(s|0)?je=wi(Qe,$e)|0:je=0,(B|0)==(c|0)?se=wi(Oe,Je)|0:se=0,!je&&(lt=y(l-M),!(gp(s,lt,Q)|0))&&!(dp(s,lt,d,Q)|0)?je=h0(s,lt,d,m,Q)|0:je=1,!se&&(_e=y(f-j),!(gp(c,_e,O)|0))&&!(dp(c,_e,B,O)|0)?se=h0(c,_e,B,k,O)|0:se=1,se=je&se),se|0}function gp(s,l,c){return s=s|0,l=y(l),c=y(c),(s|0)==1?s=wi(l,c)|0:s=0,s|0}function dp(s,l,c,f){return s=s|0,l=y(l),c=c|0,f=y(f),(s|0)==2&(c|0)==0?l>=f?s=1:s=wi(l,f)|0:s=0,s|0}function h0(s,l,c,f,d){return s=s|0,l=y(l),c=c|0,f=y(f),d=y(d),(s|0)==2&(c|0)==2&f>l?d<=l?s=1:s=wi(l,d)|0:s=0,s|0}function ha(s,l,c,f,d,m,B,k,Q,O,M){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),Q=Q|0,O=O|0,M=M|0;var j=0,se=0,je=0,Oe=0,Qe=Xe,$e=Xe,Je=0,lt=0,_e=0,qe=0,Lt=0,Or=0,cr=0,Xt=0,Pr=0,Tr=0,ar=0,xn=Xe,go=Xe,mo=Xe,yo=0,Ca=0;ar=C,C=C+160|0,Xt=ar+152|0,cr=ar+120|0,Or=ar+104|0,_e=ar+72|0,Oe=ar+56|0,Lt=ar+8|0,lt=ar,qe=(n[2279]|0)+1|0,n[2279]=qe,Pr=s+984|0,o[Pr>>0]|0&&(n[s+512>>2]|0)!=(n[2278]|0)?Je=4:(n[s+516>>2]|0)==(f|0)?Tr=0:Je=4,(Je|0)==4&&(n[s+520>>2]=0,n[s+924>>2]=-1,n[s+928>>2]=-1,h[s+932>>2]=y(-1),h[s+936>>2]=y(-1),Tr=1);e:do if(n[s+964>>2]|0)if(Qe=y(cn(s,2,B)),$e=y(cn(s,0,B)),j=s+916|0,mo=y(h[j>>2]),go=y(h[s+920>>2]),xn=y(h[s+932>>2]),NA(d,l,m,c,n[s+924>>2]|0,mo,n[s+928>>2]|0,go,xn,y(h[s+936>>2]),Qe,$e,M)|0)Je=22;else if(je=n[s+520>>2]|0,!je)Je=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,xn=y(h[j>>2]),go=y(h[s+524+(se*24|0)+4>>2]),mo=y(h[s+524+(se*24|0)+16>>2]),NA(d,l,m,c,n[s+524+(se*24|0)+8>>2]|0,xn,n[s+524+(se*24|0)+12>>2]|0,go,mo,y(h[s+524+(se*24|0)+20>>2]),Qe,$e,M)|0){Je=22;break e}if(se=se+1|0,se>>>0>=je>>>0){Je=21;break}}else{if(Q){if(j=s+916|0,!(wi(y(h[j>>2]),l)|0)){Je=21;break}if(!(wi(y(h[s+920>>2]),c)|0)){Je=21;break}if((n[s+924>>2]|0)!=(d|0)){Je=21;break}j=(n[s+928>>2]|0)==(m|0)?j:0,Je=22;break}if(je=n[s+520>>2]|0,!je)Je=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,wi(y(h[j>>2]),l)|0&&wi(y(h[s+524+(se*24|0)+4>>2]),c)|0&&(n[s+524+(se*24|0)+8>>2]|0)==(d|0)&&(n[s+524+(se*24|0)+12>>2]|0)==(m|0)){Je=22;break e}if(se=se+1|0,se>>>0>=je>>>0){Je=21;break}}}while(!1);do if((Je|0)==21)o[11697]|0?(j=0,Je=28):(j=0,Je=31);else if((Je|0)==22){if(se=(o[11697]|0)!=0,!((j|0)!=0&(Tr^1)))if(se){Je=28;break}else{Je=31;break}Oe=j+16|0,n[s+908>>2]=n[Oe>>2],je=j+20|0,n[s+912>>2]=n[je>>2],(o[11698]|0)==0|se^1||(n[lt>>2]=LA(qe)|0,n[lt+4>>2]=qe,Ao(s,4,2972,lt),se=n[s+972>>2]|0,se|0&&ef[se&127](s),d=Ya(d,Q)|0,m=Ya(m,Q)|0,Ca=+y(h[Oe>>2]),yo=+y(h[je>>2]),n[Lt>>2]=d,n[Lt+4>>2]=m,E[Lt+8>>3]=+l,E[Lt+16>>3]=+c,E[Lt+24>>3]=Ca,E[Lt+32>>3]=yo,n[Lt+40>>2]=O,Ao(s,4,2989,Lt))}while(!1);return(Je|0)==28&&(se=LA(qe)|0,n[Oe>>2]=se,n[Oe+4>>2]=qe,n[Oe+8>>2]=Tr?3047:11699,Ao(s,4,3038,Oe),se=n[s+972>>2]|0,se|0&&ef[se&127](s),Lt=Ya(d,Q)|0,Je=Ya(m,Q)|0,n[_e>>2]=Lt,n[_e+4>>2]=Je,E[_e+8>>3]=+l,E[_e+16>>3]=+c,n[_e+24>>2]=O,Ao(s,4,3049,_e),Je=31),(Je|0)==31&&(si(s,l,c,f,d,m,B,k,Q,M),o[11697]|0&&(se=n[2279]|0,Lt=LA(se)|0,n[Or>>2]=Lt,n[Or+4>>2]=se,n[Or+8>>2]=Tr?3047:11699,Ao(s,4,3083,Or),se=n[s+972>>2]|0,se|0&&ef[se&127](s),Lt=Ya(d,Q)|0,Or=Ya(m,Q)|0,yo=+y(h[s+908>>2]),Ca=+y(h[s+912>>2]),n[cr>>2]=Lt,n[cr+4>>2]=Or,E[cr+8>>3]=yo,E[cr+16>>3]=Ca,n[cr+24>>2]=O,Ao(s,4,3092,cr)),n[s+516>>2]=f,j||(se=s+520|0,j=n[se>>2]|0,(j|0)==16&&(o[11697]|0&&Ao(s,4,3124,Xt),n[se>>2]=0,j=0),Q?j=s+916|0:(n[se>>2]=j+1,j=s+524+(j*24|0)|0),h[j>>2]=l,h[j+4>>2]=c,n[j+8>>2]=d,n[j+12>>2]=m,n[j+16>>2]=n[s+908>>2],n[j+20>>2]=n[s+912>>2],j=0)),Q&&(n[s+416>>2]=n[s+908>>2],n[s+420>>2]=n[s+912>>2],o[s+985>>0]=1,o[Pr>>0]=0),n[2279]=(n[2279]|0)+-1,n[s+512>>2]=n[2278],C=ar,Tr|(j|0)==0|0}function cn(s,l,c){s=s|0,l=l|0,c=y(c);var f=Xe;return f=y(K(s,l,c)),y(f+y(re(s,l,c)))}function Ao(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=C,C=C+16|0,d=m,n[d>>2]=f,s?f=n[s+976>>2]|0:f=0,d0(f,s,l,c,d),C=m}function LA(s){return s=s|0,(s>>>0>60?3201:3201+(60-s)|0)|0}function Ya(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+32|0,c=d+12|0,f=d,n[c>>2]=n[254],n[c+4>>2]=n[255],n[c+8>>2]=n[256],n[f>>2]=n[257],n[f+4>>2]=n[258],n[f+8>>2]=n[259],(s|0)>2?s=11699:s=n[(l?f:c)+(s<<2)>>2]|0,C=d,s|0}function si(s,l,c,f,d,m,B,k,Q,O){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),Q=Q|0,O=O|0;var M=0,j=0,se=0,je=0,Oe=Xe,Qe=Xe,$e=Xe,Je=Xe,lt=Xe,_e=Xe,qe=Xe,Lt=0,Or=0,cr=0,Xt=Xe,Pr=Xe,Tr=0,ar=Xe,xn=0,go=0,mo=0,yo=0,Ca=0,kp=0,Qp=0,Sl=0,Fp=0,Tu=0,Nu=0,Rp=0,Tp=0,Np=0,Xr=0,xl=0,Lp=0,kc=0,Mp=Xe,Op=Xe,Lu=Xe,Mu=Xe,Qc=Xe,Ys=0,Za=0,Wo=0,kl=0,rf=0,nf=Xe,Ou=Xe,sf=Xe,of=Xe,Ws=Xe,Ps=Xe,Ql=0,Rn=Xe,af=Xe,Eo=Xe,Fc=Xe,Co=Xe,Rc=Xe,lf=0,cf=0,Tc=Xe,Ks=Xe,Fl=0,uf=0,Af=0,ff=0,xr=Xe,zn=0,bs=0,wo=0,Vs=0,Fr=0,ur=0,Rl=0,zt=Xe,pf=0,li=0;Rl=C,C=C+16|0,Ys=Rl+12|0,Za=Rl+8|0,Wo=Rl+4|0,kl=Rl,Un(s,(d|0)==0|(Ht(l)|0)^1,3326),Un(s,(m|0)==0|(Ht(c)|0)^1,3406),bs=mt(s,f)|0,n[s+496>>2]=bs,Fr=fr(2,bs)|0,ur=fr(0,bs)|0,h[s+440>>2]=y(K(s,Fr,B)),h[s+444>>2]=y(re(s,Fr,B)),h[s+428>>2]=y(K(s,ur,B)),h[s+436>>2]=y(re(s,ur,B)),h[s+464>>2]=y(Cr(s,Fr)),h[s+468>>2]=y(yn(s,Fr)),h[s+452>>2]=y(Cr(s,ur)),h[s+460>>2]=y(yn(s,ur)),h[s+488>>2]=y(oi(s,Fr,B)),h[s+492>>2]=y(Li(s,Fr,B)),h[s+476>>2]=y(oi(s,ur,B)),h[s+484>>2]=y(Li(s,ur,B));do if(n[s+964>>2]|0)y0(s,l,c,d,m,B,k);else{if(wo=s+948|0,Vs=(n[s+952>>2]|0)-(n[wo>>2]|0)>>2,!Vs){bv(s,l,c,d,m,B,k);break}if(!Q&&Sv(s,l,c,d,m,B,k)|0)break;ee(s),xl=s+508|0,o[xl>>0]=0,Fr=fr(n[s+4>>2]|0,bs)|0,ur=iw(Fr,bs)|0,zn=he(Fr)|0,Lp=n[s+8>>2]|0,uf=s+28|0,kc=(n[uf>>2]|0)!=0,Co=zn?B:k,Tc=zn?k:B,Mp=y(yp(s,Fr,B)),Op=y(sw(s,Fr,B)),Oe=y(yp(s,ur,B)),Rc=y(En(s,Fr,B)),Ks=y(En(s,ur,B)),cr=zn?d:m,Fl=zn?m:d,xr=zn?Rc:Ks,lt=zn?Ks:Rc,Fc=y(cn(s,2,B)),Je=y(cn(s,0,B)),Qe=y(y(Yr(s+364|0,B))-xr),$e=y(y(Yr(s+380|0,B))-xr),_e=y(y(Yr(s+372|0,k))-lt),qe=y(y(Yr(s+388|0,k))-lt),Lu=zn?Qe:_e,Mu=zn?$e:qe,Fc=y(l-Fc),l=y(Fc-xr),Ht(l)|0?xr=l:xr=y(_n(y(k0(l,$e)),Qe)),af=y(c-Je),l=y(af-lt),Ht(l)|0?Eo=l:Eo=y(_n(y(k0(l,qe)),_e)),Qe=zn?xr:Eo,Rn=zn?Eo:xr;e:do if((cr|0)==1)for(f=0,j=0;;){if(M=ms(s,j)|0,!f)y(is(M))>y(0)&&y(Gs(M))>y(0)?f=M:f=0;else if(wd(M)|0){je=0;break e}if(j=j+1|0,j>>>0>=Vs>>>0){je=f;break}}else je=0;while(!1);Lt=je+500|0,Or=je+504|0,f=0,M=0,l=y(0),se=0;do{if(j=n[(n[wo>>2]|0)+(se<<2)>>2]|0,(n[j+36>>2]|0)==1)Du(j),o[j+985>>0]=1,o[j+984>>0]=0;else{Bl(j),Q&&mp(j,mt(j,bs)|0,Qe,Rn,xr);do if((n[j+24>>2]|0)!=1)if((j|0)==(je|0)){n[Lt>>2]=n[2278],h[Or>>2]=y(0);break}else{Id(s,j,xr,d,Eo,xr,Eo,m,bs,O);break}else M|0&&(n[M+960>>2]=j),n[j+960>>2]=0,M=j,f=f|0?f:j;while(!1);Ps=y(h[j+504>>2]),l=y(l+y(Ps+y(cn(j,Fr,xr))))}se=se+1|0}while((se|0)!=(Vs|0));for(mo=l>Qe,Ql=kc&((cr|0)==2&mo)?1:cr,xn=(Fl|0)==1,Ca=xn&(Q^1),kp=(Ql|0)==1,Qp=(Ql|0)==2,Sl=976+(Fr<<2)|0,Fp=(Fl|2|0)==2,Np=xn&(kc^1),Tu=1040+(ur<<2)|0,Nu=1040+(Fr<<2)|0,Rp=976+(ur<<2)|0,Tp=(Fl|0)!=1,mo=kc&((cr|0)!=0&mo),go=s+976|0,xn=xn^1,l=Qe,Tr=0,yo=0,Ps=y(0),Qc=y(0);;){e:do if(Tr>>>0>>0)for(Or=n[wo>>2]|0,se=0,qe=y(0),_e=y(0),$e=y(0),Qe=y(0),j=0,M=0,je=Tr;;){if(Lt=n[Or+(je<<2)>>2]|0,(n[Lt+36>>2]|0)!=1&&(n[Lt+940>>2]=yo,(n[Lt+24>>2]|0)!=1)){if(Je=y(cn(Lt,Fr,xr)),Xr=n[Sl>>2]|0,c=y(Yr(Lt+380+(Xr<<3)|0,Co)),lt=y(h[Lt+504>>2]),c=y(k0(c,lt)),c=y(_n(y(Yr(Lt+364+(Xr<<3)|0,Co)),c)),kc&(se|0)!=0&y(Je+y(_e+c))>l){m=se,Je=qe,cr=je;break e}Je=y(Je+c),c=y(_e+Je),Je=y(qe+Je),wd(Lt)|0&&($e=y($e+y(is(Lt))),Qe=y(Qe-y(lt*y(Gs(Lt))))),M|0&&(n[M+960>>2]=Lt),n[Lt+960>>2]=0,se=se+1|0,M=Lt,j=j|0?j:Lt}else Je=qe,c=_e;if(je=je+1|0,je>>>0>>0)qe=Je,_e=c;else{m=se,cr=je;break}}else m=0,Je=y(0),$e=y(0),Qe=y(0),j=0,cr=Tr;while(!1);Xr=$e>y(0)&$ey(0)&QeMu&((Ht(Mu)|0)^1))l=Mu,Xr=51;else if(o[(n[go>>2]|0)+3>>0]|0)Xr=51;else{if(Xt!=y(0)&&y(is(s))!=y(0)){Xr=53;break}l=Je,Xr=53}while(!1);if((Xr|0)==51&&(Xr=0,Ht(l)|0?Xr=53:(Pr=y(l-Je),ar=l)),(Xr|0)==53&&(Xr=0,Je>2]|0,je=Pry(0),_e=y(Pr/Xt),$e=y(0),Je=y(0),l=y(0),M=j;do c=y(Yr(M+380+(se<<3)|0,Co)),Qe=y(Yr(M+364+(se<<3)|0,Co)),Qe=y(k0(c,y(_n(Qe,y(h[M+504>>2]))))),je?(c=y(Qe*y(Gs(M))),c!=y(-0)&&(zt=y(Qe-y(lt*c)),nf=y(Ii(M,Fr,zt,ar,xr)),zt!=nf)&&($e=y($e-y(nf-Qe)),l=y(l+c))):Lt&&(Ou=y(is(M)),Ou!=y(0))&&(zt=y(Qe+y(_e*Ou)),sf=y(Ii(M,Fr,zt,ar,xr)),zt!=sf)&&($e=y($e-y(sf-Qe)),Je=y(Je-Ou)),M=n[M+960>>2]|0;while(M|0);if(l=y(qe+l),Qe=y(Pr+$e),rf)l=y(0);else{lt=y(Xt+Je),je=n[Sl>>2]|0,Lt=Qey(0),lt=y(Qe/lt),l=y(0);do{zt=y(Yr(j+380+(je<<3)|0,Co)),$e=y(Yr(j+364+(je<<3)|0,Co)),$e=y(k0(zt,y(_n($e,y(h[j+504>>2]))))),Lt?(zt=y($e*y(Gs(j))),Qe=y(-zt),zt!=y(-0)?(zt=y(_e*Qe),Qe=y(Ii(j,Fr,y($e+(Or?Qe:zt)),ar,xr))):Qe=$e):se&&(of=y(is(j)),of!=y(0))?Qe=y(Ii(j,Fr,y($e+y(lt*of)),ar,xr)):Qe=$e,l=y(l-y(Qe-$e)),Je=y(cn(j,Fr,xr)),c=y(cn(j,ur,xr)),Qe=y(Qe+Je),h[Za>>2]=Qe,n[kl>>2]=1,$e=y(h[j+396>>2]);e:do if(Ht($e)|0){M=Ht(Rn)|0;do if(!M){if(mo|(ns(j,ur,Rn)|0|xn)||(da(s,j)|0)!=4||(n[(vl(j,ur)|0)+4>>2]|0)==3||(n[(bc(j,ur)|0)+4>>2]|0)==3)break;h[Ys>>2]=Rn,n[Wo>>2]=1;break e}while(!1);if(ns(j,ur,Rn)|0){M=n[j+992+(n[Rp>>2]<<2)>>2]|0,zt=y(c+y(Yr(M,Rn))),h[Ys>>2]=zt,M=Tp&(n[M+4>>2]|0)==2,n[Wo>>2]=((Ht(zt)|0|M)^1)&1;break}else{h[Ys>>2]=Rn,n[Wo>>2]=M?0:2;break}}else zt=y(Qe-Je),Xt=y(zt/$e),zt=y($e*zt),n[Wo>>2]=1,h[Ys>>2]=y(c+(zn?Xt:zt));while(!1);yr(j,Fr,ar,xr,kl,Za),yr(j,ur,Rn,xr,Wo,Ys);do if(!(ns(j,ur,Rn)|0)&&(da(s,j)|0)==4){if((n[(vl(j,ur)|0)+4>>2]|0)==3){M=0;break}M=(n[(bc(j,ur)|0)+4>>2]|0)!=3}else M=0;while(!1);zt=y(h[Za>>2]),Xt=y(h[Ys>>2]),pf=n[kl>>2]|0,li=n[Wo>>2]|0,ha(j,zn?zt:Xt,zn?Xt:zt,bs,zn?pf:li,zn?li:pf,xr,Eo,Q&(M^1),3488,O)|0,o[xl>>0]=o[xl>>0]|o[j+508>>0],j=n[j+960>>2]|0}while(j|0)}}else l=y(0);if(l=y(Pr+l),li=l>0]=li|u[xl>>0],Qp&l>y(0)?(M=n[Sl>>2]|0,n[s+364+(M<<3)+4>>2]|0&&(Ws=y(Yr(s+364+(M<<3)|0,Co)),Ws>=y(0))?Qe=y(_n(y(0),y(Ws-y(ar-l)))):Qe=y(0)):Qe=l,Lt=Tr>>>0>>0,Lt){je=n[wo>>2]|0,se=Tr,M=0;do j=n[je+(se<<2)>>2]|0,n[j+24>>2]|0||(M=((n[(vl(j,Fr)|0)+4>>2]|0)==3&1)+M|0,M=M+((n[(bc(j,Fr)|0)+4>>2]|0)==3&1)|0),se=se+1|0;while((se|0)!=(cr|0));M?(Je=y(0),c=y(0)):Xr=101}else Xr=101;e:do if((Xr|0)==101)switch(Xr=0,Lp|0){case 1:{M=0,Je=y(Qe*y(.5)),c=y(0);break e}case 2:{M=0,Je=Qe,c=y(0);break e}case 3:{if(m>>>0<=1){M=0,Je=y(0),c=y(0);break e}c=y((m+-1|0)>>>0),M=0,Je=y(0),c=y(y(_n(Qe,y(0)))/c);break e}case 5:{c=y(Qe/y((m+1|0)>>>0)),M=0,Je=c;break e}case 4:{c=y(Qe/y(m>>>0)),M=0,Je=y(c*y(.5));break e}default:{M=0,Je=y(0),c=y(0);break e}}while(!1);if(l=y(Mp+Je),Lt){$e=y(Qe/y(M|0)),se=n[wo>>2]|0,j=Tr,Qe=y(0);do{M=n[se+(j<<2)>>2]|0;e:do if((n[M+36>>2]|0)!=1){switch(n[M+24>>2]|0){case 1:{if(gi(M,Fr)|0){if(!Q)break e;zt=y(Mr(M,Fr,ar)),zt=y(zt+y(Cr(s,Fr))),zt=y(zt+y(K(M,Fr,xr))),h[M+400+(n[Nu>>2]<<2)>>2]=zt;break e}break}case 0:if(li=(n[(vl(M,Fr)|0)+4>>2]|0)==3,zt=y($e+l),l=li?zt:l,Q&&(li=M+400+(n[Nu>>2]<<2)|0,h[li>>2]=y(l+y(h[li>>2]))),li=(n[(bc(M,Fr)|0)+4>>2]|0)==3,zt=y($e+l),l=li?zt:l,Ca){zt=y(c+y(cn(M,Fr,xr))),Qe=Rn,l=y(l+y(zt+y(h[M+504>>2])));break e}else{l=y(l+y(c+y(ss(M,Fr,xr)))),Qe=y(_n(Qe,y(ss(M,ur,xr))));break e}default:}Q&&(zt=y(Je+y(Cr(s,Fr))),li=M+400+(n[Nu>>2]<<2)|0,h[li>>2]=y(zt+y(h[li>>2])))}while(!1);j=j+1|0}while((j|0)!=(cr|0))}else Qe=y(0);if(c=y(Op+l),Fp?Je=y(y(Ii(s,ur,y(Ks+Qe),Tc,B))-Ks):Je=Rn,$e=y(y(Ii(s,ur,y(Ks+(Np?Rn:Qe)),Tc,B))-Ks),Lt&Q){j=Tr;do{se=n[(n[wo>>2]|0)+(j<<2)>>2]|0;do if((n[se+36>>2]|0)!=1){if((n[se+24>>2]|0)==1){if(gi(se,ur)|0){if(zt=y(Mr(se,ur,Rn)),zt=y(zt+y(Cr(s,ur))),zt=y(zt+y(K(se,ur,xr))),M=n[Tu>>2]|0,h[se+400+(M<<2)>>2]=zt,!(Ht(zt)|0))break}else M=n[Tu>>2]|0;zt=y(Cr(s,ur)),h[se+400+(M<<2)>>2]=y(zt+y(K(se,ur,xr)));break}M=da(s,se)|0;do if((M|0)==4){if((n[(vl(se,ur)|0)+4>>2]|0)==3){Xr=139;break}if((n[(bc(se,ur)|0)+4>>2]|0)==3){Xr=139;break}if(ns(se,ur,Rn)|0){l=Oe;break}pf=n[se+908+(n[Sl>>2]<<2)>>2]|0,n[Ys>>2]=pf,l=y(h[se+396>>2]),li=Ht(l)|0,Qe=(n[v>>2]=pf,y(h[v>>2])),li?l=$e:(Pr=y(cn(se,ur,xr)),zt=y(Qe/l),l=y(l*Qe),l=y(Pr+(zn?zt:l))),h[Za>>2]=l,h[Ys>>2]=y(y(cn(se,Fr,xr))+Qe),n[Wo>>2]=1,n[kl>>2]=1,yr(se,Fr,ar,xr,Wo,Ys),yr(se,ur,Rn,xr,kl,Za),l=y(h[Ys>>2]),Pr=y(h[Za>>2]),zt=zn?l:Pr,l=zn?Pr:l,li=((Ht(zt)|0)^1)&1,ha(se,zt,l,bs,li,((Ht(l)|0)^1)&1,xr,Eo,1,3493,O)|0,l=Oe}else Xr=139;while(!1);e:do if((Xr|0)==139){Xr=0,l=y(Je-y(ss(se,ur,xr)));do if((n[(vl(se,ur)|0)+4>>2]|0)==3){if((n[(bc(se,ur)|0)+4>>2]|0)!=3)break;l=y(Oe+y(_n(y(0),y(l*y(.5)))));break e}while(!1);if((n[(bc(se,ur)|0)+4>>2]|0)==3){l=Oe;break}if((n[(vl(se,ur)|0)+4>>2]|0)==3){l=y(Oe+y(_n(y(0),l)));break}switch(M|0){case 1:{l=Oe;break e}case 2:{l=y(Oe+y(l*y(.5)));break e}default:{l=y(Oe+l);break e}}}while(!1);zt=y(Ps+l),li=se+400+(n[Tu>>2]<<2)|0,h[li>>2]=y(zt+y(h[li>>2]))}while(!1);j=j+1|0}while((j|0)!=(cr|0))}if(Ps=y(Ps+$e),Qc=y(_n(Qc,c)),m=yo+1|0,cr>>>0>=Vs>>>0)break;l=ar,Tr=cr,yo=m}do if(Q){if(M=m>>>0>1,!M&&!(Yi(s)|0))break;if(!(Ht(Rn)|0)){l=y(Rn-Ps);e:do switch(n[s+12>>2]|0){case 3:{Oe=y(Oe+l),_e=y(0);break}case 2:{Oe=y(Oe+y(l*y(.5))),_e=y(0);break}case 4:{Rn>Ps?_e=y(l/y(m>>>0)):_e=y(0);break}case 7:if(Rn>Ps){Oe=y(Oe+y(l/y(m<<1>>>0))),_e=y(l/y(m>>>0)),_e=M?_e:y(0);break e}else{Oe=y(Oe+y(l*y(.5))),_e=y(0);break e}case 6:{_e=y(l/y(yo>>>0)),_e=Rn>Ps&M?_e:y(0);break}default:_e=y(0)}while(!1);if(m|0)for(Lt=1040+(ur<<2)|0,Or=976+(ur<<2)|0,je=0,j=0;;){e:do if(j>>>0>>0)for(Qe=y(0),$e=y(0),l=y(0),se=j;;){M=n[(n[wo>>2]|0)+(se<<2)>>2]|0;do if((n[M+36>>2]|0)!=1&&!(n[M+24>>2]|0)){if((n[M+940>>2]|0)!=(je|0))break e;if(Bd(M,ur)|0&&(zt=y(h[M+908+(n[Or>>2]<<2)>>2]),l=y(_n(l,y(zt+y(cn(M,ur,xr)))))),(da(s,M)|0)!=5)break;Ws=y(Ka(M)),Ws=y(Ws+y(K(M,0,xr))),zt=y(h[M+912>>2]),zt=y(y(zt+y(cn(M,0,xr)))-Ws),Ws=y(_n($e,Ws)),zt=y(_n(Qe,zt)),Qe=zt,$e=Ws,l=y(_n(l,y(Ws+zt)))}while(!1);if(M=se+1|0,M>>>0>>0)se=M;else{se=M;break}}else $e=y(0),l=y(0),se=j;while(!1);if(lt=y(_e+l),c=Oe,Oe=y(Oe+lt),j>>>0>>0){Je=y(c+$e),M=j;do{j=n[(n[wo>>2]|0)+(M<<2)>>2]|0;e:do if((n[j+36>>2]|0)!=1&&!(n[j+24>>2]|0))switch(da(s,j)|0){case 1:{zt=y(c+y(K(j,ur,xr))),h[j+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 3:{zt=y(y(Oe-y(re(j,ur,xr)))-y(h[j+908+(n[Or>>2]<<2)>>2])),h[j+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 2:{zt=y(c+y(y(lt-y(h[j+908+(n[Or>>2]<<2)>>2]))*y(.5))),h[j+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 4:{if(zt=y(c+y(K(j,ur,xr))),h[j+400+(n[Lt>>2]<<2)>>2]=zt,ns(j,ur,Rn)|0||(zn?(Qe=y(h[j+908>>2]),l=y(Qe+y(cn(j,Fr,xr))),$e=lt):($e=y(h[j+912>>2]),$e=y($e+y(cn(j,ur,xr))),l=lt,Qe=y(h[j+908>>2])),wi(l,Qe)|0&&wi($e,y(h[j+912>>2]))|0))break e;ha(j,l,$e,bs,1,1,xr,Eo,1,3501,O)|0;break e}case 5:{h[j+404>>2]=y(y(Je-y(Ka(j)))+y(Mr(j,0,Rn)));break e}default:break e}while(!1);M=M+1|0}while((M|0)!=(se|0))}if(je=je+1|0,(je|0)==(m|0))break;j=se}}}while(!1);if(h[s+908>>2]=y(Ii(s,2,Fc,B,B)),h[s+912>>2]=y(Ii(s,0,af,k,B)),Ql|0&&(lf=n[s+32>>2]|0,cf=(Ql|0)==2,!(cf&(lf|0)!=2))?cf&(lf|0)==2&&(l=y(Rc+ar),l=y(_n(y(k0(l,y(MA(s,Fr,Qc,Co)))),Rc)),Xr=198):(l=y(Ii(s,Fr,Qc,Co,B)),Xr=198),(Xr|0)==198&&(h[s+908+(n[976+(Fr<<2)>>2]<<2)>>2]=l),Fl|0&&(Af=n[s+32>>2]|0,ff=(Fl|0)==2,!(ff&(Af|0)!=2))?ff&(Af|0)==2&&(l=y(Ks+Rn),l=y(_n(y(k0(l,y(MA(s,ur,y(Ks+Ps),Tc)))),Ks)),Xr=204):(l=y(Ii(s,ur,y(Ks+Ps),Tc,B)),Xr=204),(Xr|0)==204&&(h[s+908+(n[976+(ur<<2)>>2]<<2)>>2]=l),Q){if((n[uf>>2]|0)==2){j=976+(ur<<2)|0,se=1040+(ur<<2)|0,M=0;do je=ms(s,M)|0,n[je+24>>2]|0||(pf=n[j>>2]|0,zt=y(h[s+908+(pf<<2)>>2]),li=je+400+(n[se>>2]<<2)|0,zt=y(zt-y(h[li>>2])),h[li>>2]=y(zt-y(h[je+908+(pf<<2)>>2]))),M=M+1|0;while((M|0)!=(Vs|0))}if(f|0){M=zn?Ql:d;do vd(s,f,xr,M,Eo,bs,O),f=n[f+960>>2]|0;while(f|0)}if(M=(Fr|2|0)==3,j=(ur|2|0)==3,M|j){f=0;do se=n[(n[wo>>2]|0)+(f<<2)>>2]|0,(n[se+36>>2]|0)!=1&&(M&&Ep(s,se,Fr),j&&Ep(s,se,ur)),f=f+1|0;while((f|0)!=(Vs|0))}}}while(!1);C=Rl}function ga(s,l){s=s|0,l=y(l);var c=0;la(s,l>=y(0),3147),c=l==y(0),h[s+4>>2]=c?y(0):l}function Dc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=f|0;var d=Xe,m=Xe,B=0,k=0,Q=0;n[2278]=(n[2278]|0)+1,Bl(s),ns(s,2,l)|0?(d=y(Yr(n[s+992>>2]|0,l)),Q=1,d=y(d+y(cn(s,2,l)))):(d=y(Yr(s+380|0,l)),d>=y(0)?Q=2:(Q=((Ht(l)|0)^1)&1,d=l)),ns(s,0,c)|0?(m=y(Yr(n[s+996>>2]|0,c)),k=1,m=y(m+y(cn(s,0,l)))):(m=y(Yr(s+388|0,c)),m>=y(0)?k=2:(k=((Ht(c)|0)^1)&1,m=c)),B=s+976|0,ha(s,d,m,f,Q,k,l,c,1,3189,n[B>>2]|0)|0&&(mp(s,n[s+496>>2]|0,l,c,l),Pc(s,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),o[11696]|0)&&yd(s,7)}function Bl(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;k=C,C=C+32|0,B=k+24|0,m=k+16|0,f=k+8|0,d=k,c=0;do l=s+380+(c<<3)|0,n[s+380+(c<<3)+4>>2]|0&&(Q=l,O=n[Q+4>>2]|0,M=f,n[M>>2]=n[Q>>2],n[M+4>>2]=O,M=s+364+(c<<3)|0,O=n[M+4>>2]|0,Q=d,n[Q>>2]=n[M>>2],n[Q+4>>2]=O,n[m>>2]=n[f>>2],n[m+4>>2]=n[f+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],Bs(m,B)|0)||(l=s+348+(c<<3)|0),n[s+992+(c<<2)>>2]=l,c=c+1|0;while((c|0)!=2);C=k}function ns(s,l,c){s=s|0,l=l|0,c=y(c);var f=0;switch(s=n[s+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[s+4>>2]|0){case 0:case 3:{s=0;break}case 1:{y(h[s>>2])>2])>2]|0){case 2:{l=y(y(y(h[s>>2])*l)/y(100));break}case 1:{l=y(h[s>>2]);break}default:l=y(ce)}return y(l)}function mp(s,l,c,f,d){s=s|0,l=l|0,c=y(c),f=y(f),d=y(d);var m=0,B=Xe;l=n[s+944>>2]|0?l:1,m=fr(n[s+4>>2]|0,l)|0,l=iw(m,l)|0,c=y(Dd(s,m,c)),f=y(Dd(s,l,f)),B=y(c+y(K(s,m,d))),h[s+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,c=y(c+y(re(s,m,d))),h[s+400+(n[1e3+(m<<2)>>2]<<2)>>2]=c,c=y(f+y(K(s,l,d))),h[s+400+(n[1040+(l<<2)>>2]<<2)>>2]=c,d=y(f+y(re(s,l,d))),h[s+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function Pc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=y(f);var d=0,m=0,B=Xe,k=Xe,Q=0,O=0,M=Xe,j=0,se=Xe,je=Xe,Oe=Xe,Qe=Xe;if(l!=y(0)&&(d=s+400|0,Qe=y(h[d>>2]),m=s+404|0,Oe=y(h[m>>2]),j=s+416|0,je=y(h[j>>2]),O=s+420|0,B=y(h[O>>2]),se=y(Qe+c),M=y(Oe+f),f=y(se+je),k=y(M+B),Q=(n[s+988>>2]|0)==1,h[d>>2]=y(Go(Qe,l,0,Q)),h[m>>2]=y(Go(Oe,l,0,Q)),c=y(mR(y(je*l),y(1))),wi(c,y(0))|0?m=0:m=(wi(c,y(1))|0)^1,c=y(mR(y(B*l),y(1))),wi(c,y(0))|0?d=0:d=(wi(c,y(1))|0)^1,Qe=y(Go(f,l,Q&m,Q&(m^1))),h[j>>2]=y(Qe-y(Go(se,l,0,Q))),Qe=y(Go(k,l,Q&d,Q&(d^1))),h[O>>2]=y(Qe-y(Go(M,l,0,Q))),m=(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2,m|0)){d=0;do Pc(ms(s,d)|0,l,se,M),d=d+1|0;while((d|0)!=(m|0))}}function nw(s,l,c,f,d){switch(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,c|0){case 5:case 0:{s=e7(n[489]|0,f,d)|0;break}default:s=$Ue(f,d)|0}return s|0}function g0(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;d=C,C=C+16|0,m=d,n[m>>2]=f,d0(s,0,l,c,m),C=d}function d0(s,l,c,f,d){if(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,s=s|0?s:956,w7[n[s+8>>2]&1](s,l,c,f,d)|0,(c|0)==5)Tt();else return}function Wa(s,l,c){s=s|0,l=l|0,c=c|0,o[s+l>>0]=c&1}function Cd(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(m0(s,f),Qt(s,n[l>>2]|0,n[c>>2]|0,f))}function m0(s,l){s=s|0,l=l|0;var c=0;if((N(s)|0)>>>0>>0&&Jr(s),l>>>0>1073741823)Tt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function Qt(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function N(s){return s=s|0,1073741823}function K(s,l,c){return s=s|0,l=l|0,c=y(c),he(l)|0&&n[s+96>>2]|0?s=s+92|0:s=Fn(s+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function re(s,l,c){return s=s|0,l=l|0,c=y(c),he(l)|0&&n[s+104>>2]|0?s=s+100|0:s=Fn(s+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function he(s){return s=s|0,(s|1|0)==3|0}function ze(s,l){return s=s|0,l=y(l),(n[s+4>>2]|0)==3?l=y(0):l=y(Yr(s,l)),y(l)}function mt(s,l){return s=s|0,l=l|0,s=n[s>>2]|0,(s|0?s:(l|0)>1?l:1)|0}function fr(s,l){s=s|0,l=l|0;var c=0;e:do if((l|0)==2){switch(s|0){case 2:{s=3;break e}case 3:break;default:{c=4;break e}}s=2}else c=4;while(!1);return s|0}function Cr(s,l){s=s|0,l=l|0;var c=Xe;return he(l)|0&&n[s+312>>2]|0&&(c=y(h[s+308>>2]),c>=y(0))||(c=y(_n(y(h[(Fn(s+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function yn(s,l){s=s|0,l=l|0;var c=Xe;return he(l)|0&&n[s+320>>2]|0&&(c=y(h[s+316>>2]),c>=y(0))||(c=y(_n(y(h[(Fn(s+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function oi(s,l,c){s=s|0,l=l|0,c=y(c);var f=Xe;return he(l)|0&&n[s+240>>2]|0&&(f=y(Yr(s+236|0,c)),f>=y(0))||(f=y(_n(y(Yr(Fn(s+204|0,n[1040+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function Li(s,l,c){s=s|0,l=l|0,c=y(c);var f=Xe;return he(l)|0&&n[s+248>>2]|0&&(f=y(Yr(s+244|0,c)),f>=y(0))||(f=y(_n(y(Yr(Fn(s+204|0,n[1e3+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function y0(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Xe,Q=Xe,O=Xe,M=Xe,j=Xe,se=Xe,je=0,Oe=0,Qe=0;Qe=C,C=C+16|0,je=Qe,Oe=s+964|0,Un(s,(n[Oe>>2]|0)!=0,3519),k=y(En(s,2,l)),Q=y(En(s,0,l)),O=y(cn(s,2,l)),M=y(cn(s,0,l)),Ht(l)|0?j=l:j=y(_n(y(0),y(y(l-O)-k))),Ht(c)|0?se=c:se=y(_n(y(0),y(y(c-M)-Q))),(f|0)==1&(d|0)==1?(h[s+908>>2]=y(Ii(s,2,y(l-O),m,m)),l=y(Ii(s,0,y(c-M),B,m))):(I7[n[Oe>>2]&1](je,s,j,f,se,d),j=y(k+y(h[je>>2])),se=y(l-O),h[s+908>>2]=y(Ii(s,2,(f|2|0)==2?j:se,m,m)),se=y(Q+y(h[je+4>>2])),l=y(c-M),l=y(Ii(s,0,(d|2|0)==2?se:l,B,m))),h[s+912>>2]=l,C=Qe}function bv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Xe,Q=Xe,O=Xe,M=Xe;O=y(En(s,2,m)),k=y(En(s,0,m)),M=y(cn(s,2,m)),Q=y(cn(s,0,m)),l=y(l-M),h[s+908>>2]=y(Ii(s,2,(f|2|0)==2?O:l,m,m)),c=y(c-Q),h[s+912>>2]=y(Ii(s,0,(d|2|0)==2?k:c,B,m))}function Sv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=0,Q=Xe,O=Xe;return k=(f|0)==2,!(l<=y(0)&k)&&!(c<=y(0)&(d|0)==2)&&!((f|0)==1&(d|0)==1)?s=0:(Q=y(cn(s,0,m)),O=y(cn(s,2,m)),k=l>2]=y(Ii(s,2,k?y(0):l,m,m)),l=y(c-Q),k=c>2]=y(Ii(s,0,k?y(0):l,B,m)),s=1),s|0}function iw(s,l){return s=s|0,l=l|0,OA(s)|0?s=fr(2,l)|0:s=0,s|0}function yp(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(oi(s,l,c)),y(c+y(Cr(s,l)))}function sw(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(Li(s,l,c)),y(c+y(yn(s,l)))}function En(s,l,c){s=s|0,l=l|0,c=y(c);var f=Xe;return f=y(yp(s,l,c)),y(f+y(sw(s,l,c)))}function wd(s){return s=s|0,n[s+24>>2]|0?s=0:y(is(s))!=y(0)?s=1:s=y(Gs(s))!=y(0),s|0}function is(s){s=s|0;var l=Xe;if(n[s+944>>2]|0){if(l=y(h[s+44>>2]),Ht(l)|0)return l=y(h[s+40>>2]),s=l>y(0)&((Ht(l)|0)^1),y(s?l:y(0))}else l=y(0);return y(l)}function Gs(s){s=s|0;var l=Xe,c=0,f=Xe;do if(n[s+944>>2]|0){if(l=y(h[s+48>>2]),Ht(l)|0){if(c=o[(n[s+976>>2]|0)+2>>0]|0,!(c<<24>>24)&&(f=y(h[s+40>>2]),f>24?y(1):y(0)}}else l=y(0);while(!1);return y(l)}function Du(s){s=s|0;var l=0,c=0;if(Od(s+400|0,0,540)|0,o[s+985>>0]=1,ee(s),c=Ci(s)|0,c|0){l=s+948|0,s=0;do Du(n[(n[l>>2]|0)+(s<<2)>>2]|0),s=s+1|0;while((s|0)!=(c|0))}}function Id(s,l,c,f,d,m,B,k,Q,O){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=y(m),B=y(B),k=k|0,Q=Q|0,O=O|0;var M=0,j=Xe,se=0,je=0,Oe=Xe,Qe=Xe,$e=0,Je=Xe,lt=0,_e=Xe,qe=0,Lt=0,Or=0,cr=0,Xt=0,Pr=0,Tr=0,ar=0,xn=0,go=0;xn=C,C=C+16|0,Or=xn+12|0,cr=xn+8|0,Xt=xn+4|0,Pr=xn,ar=fr(n[s+4>>2]|0,Q)|0,qe=he(ar)|0,j=y(Yr(ow(l)|0,qe?m:B)),Lt=ns(l,2,m)|0,Tr=ns(l,0,B)|0;do if(!(Ht(j)|0)&&!(Ht(qe?c:d)|0)){if(M=l+504|0,!(Ht(y(h[M>>2]))|0)&&(!(aw(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[M>>2]=y(_n(j,y(En(l,ar,m))))}else se=7;while(!1);do if((se|0)==7){if(lt=qe^1,!(lt|Lt^1)){B=y(Yr(n[l+992>>2]|0,m)),h[l+504>>2]=y(_n(B,y(En(l,2,m))));break}if(!(qe|Tr^1)){B=y(Yr(n[l+996>>2]|0,B)),h[l+504>>2]=y(_n(B,y(En(l,0,m))));break}h[Or>>2]=y(ce),h[cr>>2]=y(ce),n[Xt>>2]=0,n[Pr>>2]=0,Je=y(cn(l,2,m)),_e=y(cn(l,0,m)),Lt?(Oe=y(Je+y(Yr(n[l+992>>2]|0,m))),h[Or>>2]=Oe,n[Xt>>2]=1,je=1):(je=0,Oe=y(ce)),Tr?(j=y(_e+y(Yr(n[l+996>>2]|0,B))),h[cr>>2]=j,n[Pr>>2]=1,M=1):(M=0,j=y(ce)),se=n[s+32>>2]|0,qe&(se|0)==2?se=2:Ht(Oe)|0&&!(Ht(c)|0)&&(h[Or>>2]=c,n[Xt>>2]=2,je=2,Oe=c),!((se|0)==2<)&&Ht(j)|0&&!(Ht(d)|0)&&(h[cr>>2]=d,n[Pr>>2]=2,M=2,j=d),Qe=y(h[l+396>>2]),$e=Ht(Qe)|0;do if($e)se=je;else{if((je|0)==1<){h[cr>>2]=y(y(Oe-Je)/Qe),n[Pr>>2]=1,M=1,se=1;break}qe&(M|0)==1?(h[Or>>2]=y(Qe*y(j-_e)),n[Xt>>2]=1,M=1,se=1):se=je}while(!1);go=Ht(c)|0,je=(da(s,l)|0)!=4,!(qe|Lt|((f|0)!=1|go)|(je|(se|0)==1))&&(h[Or>>2]=c,n[Xt>>2]=1,!$e)&&(h[cr>>2]=y(y(c-Je)/Qe),n[Pr>>2]=1,M=1),!(Tr|lt|((k|0)!=1|(Ht(d)|0))|(je|(M|0)==1))&&(h[cr>>2]=d,n[Pr>>2]=1,!$e)&&(h[Or>>2]=y(Qe*y(d-_e)),n[Xt>>2]=1),yr(l,2,m,m,Xt,Or),yr(l,0,B,m,Pr,cr),c=y(h[Or>>2]),d=y(h[cr>>2]),ha(l,c,d,Q,n[Xt>>2]|0,n[Pr>>2]|0,m,B,0,3565,O)|0,B=y(h[l+908+(n[976+(ar<<2)>>2]<<2)>>2]),h[l+504>>2]=y(_n(B,y(En(l,ar,m))))}while(!1);n[l+500>>2]=n[2278],C=xn}function Ii(s,l,c,f,d){return s=s|0,l=l|0,c=y(c),f=y(f),d=y(d),f=y(MA(s,l,c,f)),y(_n(f,y(En(s,l,d))))}function da(s,l){return s=s|0,l=l|0,l=l+20|0,l=n[(n[l>>2]|0?l:s+16|0)>>2]|0,(l|0)==5&&OA(n[s+4>>2]|0)|0&&(l=1),l|0}function vl(s,l){return s=s|0,l=l|0,he(l)|0&&n[s+96>>2]|0?l=4:l=n[1040+(l<<2)>>2]|0,s+60+(l<<3)|0}function bc(s,l){return s=s|0,l=l|0,he(l)|0&&n[s+104>>2]|0?l=5:l=n[1e3+(l<<2)>>2]|0,s+60+(l<<3)|0}function yr(s,l,c,f,d,m){switch(s=s|0,l=l|0,c=y(c),f=y(f),d=d|0,m=m|0,c=y(Yr(s+380+(n[976+(l<<2)>>2]<<3)|0,c)),c=y(c+y(cn(s,l,f))),n[d>>2]|0){case 2:case 1:{d=Ht(c)|0,f=y(h[m>>2]),h[m>>2]=d|f>2]=2,h[m>>2]=c);break}default:}}function gi(s,l){return s=s|0,l=l|0,s=s+132|0,he(l)|0&&n[(Fn(s,4,948)|0)+4>>2]|0?s=1:s=(n[(Fn(s,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Mr(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,he(l)|0&&(f=Fn(s,4,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Fn(s,n[1040+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Yr(f,c))),y(c)}function ss(s,l,c){s=s|0,l=l|0,c=y(c);var f=Xe;return f=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),f=y(f+y(K(s,l,c))),y(f+y(re(s,l,c)))}function Yi(s){s=s|0;var l=0,c=0,f=0;e:do if(OA(n[s+4>>2]|0)|0)l=0;else if((n[s+16>>2]|0)!=5)if(c=Ci(s)|0,!c)l=0;else for(l=0;;){if(f=ms(s,l)|0,!(n[f+24>>2]|0)&&(n[f+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=c>>>0){l=0;break}}else l=1;while(!1);return l|0}function Bd(s,l){s=s|0,l=l|0;var c=Xe;return c=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),c>=y(0)&((Ht(c)|0)^1)|0}function Ka(s){s=s|0;var l=Xe,c=0,f=0,d=0,m=0,B=0,k=0,Q=Xe;if(c=n[s+968>>2]|0,c)Q=y(h[s+908>>2]),l=y(h[s+912>>2]),l=y(m7[c&0](s,Q,l)),Un(s,(Ht(l)|0)^1,3573);else{m=Ci(s)|0;do if(m|0){for(c=0,d=0;;){if(f=ms(s,d)|0,n[f+940>>2]|0){B=8;break}if((n[f+24>>2]|0)!=1)if(k=(da(s,f)|0)==5,k){c=f;break}else c=c|0?c:f;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!c)break;return l=y(Ka(c)),y(l+y(h[c+404>>2]))}while(!1);l=y(h[s+912>>2])}return y(l)}function MA(s,l,c,f){s=s|0,l=l|0,c=y(c),f=y(f);var d=Xe,m=0;return OA(l)|0?(l=1,m=3):he(l)|0?(l=0,m=3):(f=y(ce),d=y(ce)),(m|0)==3&&(d=y(Yr(s+364+(l<<3)|0,f)),f=y(Yr(s+380+(l<<3)|0,f))),m=f=y(0)&((Ht(f)|0)^1)),c=m?f:c,m=d>=y(0)&((Ht(d)|0)^1)&c>2]|0,m)|0,Oe=iw($e,m)|0,Qe=he($e)|0,j=y(cn(l,2,c)),se=y(cn(l,0,c)),ns(l,2,c)|0?k=y(j+y(Yr(n[l+992>>2]|0,c))):gi(l,2)|0&&lr(l,2)|0?(k=y(h[s+908>>2]),Q=y(Cr(s,2)),Q=y(k-y(Q+y(yn(s,2)))),k=y(Mr(l,2,c)),k=y(Ii(l,2,y(Q-y(k+y(Pu(l,2,c)))),c,c))):k=y(ce),ns(l,0,d)|0?Q=y(se+y(Yr(n[l+996>>2]|0,d))):gi(l,0)|0&&lr(l,0)|0?(Q=y(h[s+912>>2]),lt=y(Cr(s,0)),lt=y(Q-y(lt+y(yn(s,0)))),Q=y(Mr(l,0,d)),Q=y(Ii(l,0,y(lt-y(Q+y(Pu(l,0,d)))),d,c))):Q=y(ce),O=Ht(k)|0,M=Ht(Q)|0;do if(O^M&&(je=y(h[l+396>>2]),!(Ht(je)|0)))if(O){k=y(j+y(y(Q-se)*je));break}else{lt=y(se+y(y(k-j)/je)),Q=M?lt:Q;break}while(!1);M=Ht(k)|0,O=Ht(Q)|0,M|O&&(_e=(M^1)&1,f=c>y(0)&((f|0)!=0&M),k=Qe?k:f?c:k,ha(l,k,Q,m,Qe?_e:f?2:_e,M&(O^1)&1,k,Q,0,3623,B)|0,k=y(h[l+908>>2]),k=y(k+y(cn(l,2,c))),Q=y(h[l+912>>2]),Q=y(Q+y(cn(l,0,c)))),ha(l,k,Q,m,1,1,k,Q,1,3635,B)|0,lr(l,$e)|0&&!(gi(l,$e)|0)?(_e=n[976+($e<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(lt-y(h[l+908+(_e<<2)>>2])),lt=y(lt-y(yn(s,$e))),lt=y(lt-y(re(l,$e,c))),lt=y(lt-y(Pu(l,$e,Qe?c:d))),h[l+400+(n[1040+($e<<2)>>2]<<2)>>2]=lt):Je=21;do if((Je|0)==21){if(!(gi(l,$e)|0)&&(n[s+8>>2]|0)==1){_e=n[976+($e<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(y(lt-y(h[l+908+(_e<<2)>>2]))*y(.5)),h[l+400+(n[1040+($e<<2)>>2]<<2)>>2]=lt;break}!(gi(l,$e)|0)&&(n[s+8>>2]|0)==2&&(_e=n[976+($e<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(lt-y(h[l+908+(_e<<2)>>2])),h[l+400+(n[1040+($e<<2)>>2]<<2)>>2]=lt)}while(!1);lr(l,Oe)|0&&!(gi(l,Oe)|0)?(_e=n[976+(Oe<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(lt-y(h[l+908+(_e<<2)>>2])),lt=y(lt-y(yn(s,Oe))),lt=y(lt-y(re(l,Oe,c))),lt=y(lt-y(Pu(l,Oe,Qe?d:c))),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=lt):Je=30;do if((Je|0)==30&&!(gi(l,Oe)|0)){if((da(s,l)|0)==2){_e=n[976+(Oe<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(y(lt-y(h[l+908+(_e<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=lt;break}_e=(da(s,l)|0)==3,_e^(n[s+28>>2]|0)==2&&(_e=n[976+(Oe<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(lt-y(h[l+908+(_e<<2)>>2])),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=lt)}while(!1)}function Ep(s,l,c){s=s|0,l=l|0,c=c|0;var f=Xe,d=0;d=n[976+(c<<2)>>2]|0,f=y(h[l+908+(d<<2)>>2]),f=y(y(h[s+908+(d<<2)>>2])-f),f=y(f-y(h[l+400+(n[1040+(c<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(c<<2)>>2]<<2)>>2]=f}function OA(s){return s=s|0,(s|1|0)==1|0}function ow(s){s=s|0;var l=Xe;switch(n[s+56>>2]|0){case 0:case 3:{l=y(h[s+40>>2]),l>y(0)&((Ht(l)|0)^1)?s=o[(n[s+976>>2]|0)+2>>0]|0?1056:992:s=1056;break}default:s=s+52|0}return s|0}function aw(s,l){return s=s|0,l=l|0,(o[s+l>>0]|0)!=0|0}function lr(s,l){return s=s|0,l=l|0,s=s+132|0,he(l)|0&&n[(Fn(s,5,948)|0)+4>>2]|0?s=1:s=(n[(Fn(s,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Pu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,he(l)|0&&(f=Fn(s,5,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Fn(s,n[1e3+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Yr(f,c))),y(c)}function Dd(s,l,c){return s=s|0,l=l|0,c=y(c),gi(s,l)|0?c=y(Mr(s,l,c)):c=y(-y(Pu(s,l,c))),y(c)}function bu(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function Cp(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function E0(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function UA(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function _A(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;if(B=s+4|0,k=n[B>>2]|0,d=k-f|0,m=d>>2,s=l+(m<<2)|0,s>>>0>>0){f=k;do n[f>>2]=n[s>>2],s=s+4|0,f=(n[B>>2]|0)+4|0,n[B>>2]=f;while(s>>>0>>0)}m|0&&ww(k+(0-m<<2)|0,l|0,d|0)|0}function C0(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0;return k=l+4|0,Q=n[k>>2]|0,d=n[s>>2]|0,B=c,m=B-d|0,f=Q+(0-(m>>2)<<2)|0,n[k>>2]=f,(m|0)>0&&Dr(f|0,d|0,m|0)|0,d=s+4|0,m=l+8|0,f=(n[d>>2]|0)-B|0,(f|0)>0&&(Dr(n[m>>2]|0,c|0,f|0)|0,n[m>>2]=(n[m>>2]|0)+(f>>>2<<2)),B=n[s>>2]|0,n[s>>2]=n[k>>2],n[k>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=s+8|0,c=l+12|0,s=n[B>>2]|0,n[B>>2]=n[c>>2],n[c>>2]=s,n[l>>2]=n[k>>2],Q|0}function lw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[c>>2]|0,(B|0)!=(m|0)){d=s+8|0,c=((m+-4-B|0)>>>2)+1|0,s=B,f=n[d>>2]|0;do n[f>>2]=n[s>>2],f=(n[d>>2]|0)+4|0,n[d>>2]=f,s=s+4|0;while((s|0)!=(m|0));n[l>>2]=B+(c<<2)}}function Pd(){mc()}function ma(){var s=0;return s=Kt(4)|0,HA(s),s|0}function HA(s){s=s|0,n[s>>2]=Cs()|0}function Sc(s){s=s|0,s|0&&(w0(s),gt(s))}function w0(s){s=s|0,tt(n[s>>2]|0)}function bd(s,l,c){s=s|0,l=l|0,c=c|0,Wa(n[s>>2]|0,l,c)}function fo(s,l){s=s|0,l=y(l),ga(n[s>>2]|0,l)}function xv(s,l){return s=s|0,l=l|0,aw(n[s>>2]|0,l)|0}function cw(){var s=0;return s=Kt(8)|0,kv(s,0),s|0}function kv(s,l){s=s|0,l=l|0,l?l=Ei(n[l>>2]|0)|0:l=co()|0,n[s>>2]=l,n[s+4>>2]=0,bi(l,s)}function eF(s){s=s|0;var l=0;return l=Kt(8)|0,kv(l,s),l|0}function Qv(s){s=s|0,s|0&&(Su(s),gt(s))}function Su(s){s=s|0;var l=0;ua(n[s>>2]|0),l=s+4|0,s=n[l>>2]|0,n[l>>2]=0,s|0&&(qA(s),gt(s))}function qA(s){s=s|0,jA(s)}function jA(s){s=s|0,s=n[s>>2]|0,s|0&&PA(s|0)}function uw(s){return s=s|0,qo(s)|0}function Sd(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(qA(l),gt(l)),qs(n[s>>2]|0)}function tF(s,l){s=s|0,l=l|0,$r(n[s>>2]|0,n[l>>2]|0)}function rF(s,l){s=s|0,l=l|0,Aa(n[s>>2]|0,l)}function Fv(s,l,c){s=s|0,l=l|0,c=+c,Cu(n[s>>2]|0,l,y(c))}function Rv(s,l,c){s=s|0,l=l|0,c=+c,ws(n[s>>2]|0,l,y(c))}function Aw(s,l){s=s|0,l=l|0,mu(n[s>>2]|0,l)}function xu(s,l){s=s|0,l=l|0,yu(n[s>>2]|0,l)}function nF(s,l){s=s|0,l=l|0,QA(n[s>>2]|0,l)}function iF(s,l){s=s|0,l=l|0,xA(n[s>>2]|0,l)}function wp(s,l){s=s|0,l=l|0,Ec(n[s>>2]|0,l)}function sF(s,l){s=s|0,l=l|0,cp(n[s>>2]|0,l)}function Tv(s,l,c){s=s|0,l=l|0,c=+c,wc(n[s>>2]|0,l,y(c))}function GA(s,l,c){s=s|0,l=l|0,c=+c,Y(n[s>>2]|0,l,y(c))}function oF(s,l){s=s|0,l=l|0,wl(n[s>>2]|0,l)}function aF(s,l){s=s|0,l=l|0,n0(n[s>>2]|0,l)}function Nv(s,l){s=s|0,l=l|0,up(n[s>>2]|0,l)}function fw(s,l){s=s|0,l=+l,FA(n[s>>2]|0,y(l))}function pw(s,l){s=s|0,l=+l,ja(n[s>>2]|0,y(l))}function lF(s,l){s=s|0,l=+l,Gi(n[s>>2]|0,y(l))}function cF(s,l){s=s|0,l=+l,js(n[s>>2]|0,y(l))}function Dl(s,l){s=s|0,l=+l,Eu(n[s>>2]|0,y(l))}function hw(s,l){s=s|0,l=+l,tw(n[s>>2]|0,y(l))}function uF(s,l){s=s|0,l=+l,RA(n[s>>2]|0,y(l))}function YA(s){s=s|0,Ap(n[s>>2]|0)}function xd(s,l){s=s|0,l=+l,Is(n[s>>2]|0,y(l))}function ku(s,l){s=s|0,l=+l,o0(n[s>>2]|0,y(l))}function gw(s){s=s|0,a0(n[s>>2]|0)}function dw(s,l){s=s|0,l=+l,fp(n[s>>2]|0,y(l))}function AF(s,l){s=s|0,l=+l,Bc(n[s>>2]|0,y(l))}function Lv(s,l){s=s|0,l=+l,gd(n[s>>2]|0,y(l))}function WA(s,l){s=s|0,l=+l,c0(n[s>>2]|0,y(l))}function Mv(s,l){s=s|0,l=+l,Iu(n[s>>2]|0,y(l))}function kd(s,l){s=s|0,l=+l,dd(n[s>>2]|0,y(l))}function Ov(s,l){s=s|0,l=+l,Bu(n[s>>2]|0,y(l))}function Uv(s,l){s=s|0,l=+l,rw(n[s>>2]|0,y(l))}function Qd(s,l){s=s|0,l=+l,pa(n[s>>2]|0,y(l))}function _v(s,l,c){s=s|0,l=l|0,c=+c,wu(n[s>>2]|0,l,y(c))}function fF(s,l,c){s=s|0,l=l|0,c=+c,Si(n[s>>2]|0,l,y(c))}function P(s,l,c){s=s|0,l=l|0,c=+c,Ic(n[s>>2]|0,l,y(c))}function D(s){return s=s|0,r0(n[s>>2]|0)|0}function T(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,Cc(d,n[l>>2]|0,c),q(s,d),C=f}function q(s,l){s=s|0,l=l|0,W(s,n[l+4>>2]|0,+y(h[l>>2]))}function W(s,l,c){s=s|0,l=l|0,c=+c,n[s>>2]=l,E[s+8>>3]=c}function fe(s){return s=s|0,t0(n[s>>2]|0)|0}function De(s){return s=s|0,uo(n[s>>2]|0)|0}function vt(s){return s=s|0,yc(n[s>>2]|0)|0}function wt(s){return s=s|0,kA(n[s>>2]|0)|0}function St(s){return s=s|0,hd(n[s>>2]|0)|0}function _r(s){return s=s|0,e0(n[s>>2]|0)|0}function os(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,Dt(d,n[l>>2]|0,c),q(s,d),C=f}function di(s){return s=s|0,$n(n[s>>2]|0)|0}function po(s){return s=s|0,i0(n[s>>2]|0)|0}function KA(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,fa(f,n[l>>2]|0),q(s,f),C=c}function Yo(s){return s=s|0,+ +y(ji(n[s>>2]|0))}function nt(s){return s=s|0,+ +y(rs(n[s>>2]|0))}function Ve(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Br(f,n[l>>2]|0),q(s,f),C=c}function At(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,l0(f,n[l>>2]|0),q(s,f),C=c}function Wt(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Ct(f,n[l>>2]|0),q(s,f),C=c}function vr(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,u0(f,n[l>>2]|0),q(s,f),C=c}function bn(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,A0(f,n[l>>2]|0),q(s,f),C=c}function Qr(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,md(f,n[l>>2]|0),q(s,f),C=c}function Sn(s){return s=s|0,+ +y(vc(n[s>>2]|0))}function ai(s,l){return s=s|0,l=l|0,+ +y(s0(n[s>>2]|0,l))}function tn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,ct(d,n[l>>2]|0,c),q(s,d),C=f}function ho(s,l,c){s=s|0,l=l|0,c=c|0,or(n[s>>2]|0,n[l>>2]|0,c)}function pF(s,l){s=s|0,l=l|0,Es(n[s>>2]|0,n[l>>2]|0)}function nve(s){return s=s|0,Ci(n[s>>2]|0)|0}function ive(s){return s=s|0,s=pt(n[s>>2]|0)|0,s?s=uw(s)|0:s=0,s|0}function sve(s,l){return s=s|0,l=l|0,s=ms(n[s>>2]|0,l)|0,s?s=uw(s)|0:s=0,s|0}function ove(s,l){s=s|0,l=l|0;var c=0,f=0;f=Kt(4)|0,W5(f,l),c=s+4|0,l=n[c>>2]|0,n[c>>2]=f,l|0&&(qA(l),gt(l)),Bt(n[s>>2]|0,1)}function W5(s,l){s=s|0,l=l|0,yve(s,l)}function ave(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,lve(k,qo(l)|0,+c,f,+d,m),h[s>>2]=y(+E[k>>3]),h[s+4>>2]=y(+E[k+8>>3]),C=B}function lve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0,k=0,Q=0,O=0,M=0;B=C,C=C+32|0,M=B+8|0,O=B+20|0,Q=B,k=B+16|0,E[M>>3]=c,n[O>>2]=f,E[Q>>3]=d,n[k>>2]=m,cve(s,n[l+4>>2]|0,M,O,Q,k),C=B}function cve(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,za(k),l=ya(l)|0,uve(s,l,+E[c>>3],n[f>>2]|0,+E[d>>3],n[m>>2]|0),Ja(k),C=B}function ya(s){return s=s|0,n[s>>2]|0}function uve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0;B=Pl(Ave()|0)|0,c=+VA(c),f=hF(f)|0,d=+VA(d),fve(s,hi(0,B|0,l|0,+c,f|0,+d,hF(m)|0)|0)}function Ave(){var s=0;return o[7608]|0||(dve(9120),s=7608,n[s>>2]=1,n[s+4>>2]=0),9120}function Pl(s){return s=s|0,n[s+8>>2]|0}function VA(s){return s=+s,+ +gF(s)}function hF(s){return s=s|0,V5(s)|0}function fve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=l,f&1?(pve(c,0),ii(f|0,c|0)|0,hve(s,c),gve(c)):(n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]),C=d}function pve(s,l){s=s|0,l=l|0,K5(s,l),n[s+8>>2]=0,o[s+24>>0]=0}function hve(s,l){s=s|0,l=l|0,l=l+8|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]}function gve(s){s=s|0,o[s+24>>0]=0}function K5(s,l){s=s|0,l=l|0,n[s>>2]=l}function V5(s){return s=s|0,s|0}function gF(s){return s=+s,+s}function dve(s){s=s|0,bl(s,mve()|0,4)}function mve(){return 1064}function bl(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=lp(l|0,c+1|0)|0}function yve(s,l){s=s|0,l=l|0,l=n[l>>2]|0,n[s>>2]=l,yl(l|0)}function Eve(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(qA(l),gt(l)),Bt(n[s>>2]|0,0)}function Cve(s){s=s|0,Nt(n[s>>2]|0)}function wve(s){return s=s|0,rr(n[s>>2]|0)|0}function Ive(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,Dc(n[s>>2]|0,y(l),y(c),f)}function Bve(s){return s=s|0,+ +y(Il(n[s>>2]|0))}function vve(s){return s=s|0,+ +y(f0(n[s>>2]|0))}function Dve(s){return s=s|0,+ +y(vu(n[s>>2]|0))}function Pve(s){return s=s|0,+ +y(TA(n[s>>2]|0))}function bve(s){return s=s|0,+ +y(pp(n[s>>2]|0))}function Sve(s){return s=s|0,+ +y(Ga(n[s>>2]|0))}function xve(s,l){s=s|0,l=l|0,E[s>>3]=+y(Il(n[l>>2]|0)),E[s+8>>3]=+y(f0(n[l>>2]|0)),E[s+16>>3]=+y(vu(n[l>>2]|0)),E[s+24>>3]=+y(TA(n[l>>2]|0)),E[s+32>>3]=+y(pp(n[l>>2]|0)),E[s+40>>3]=+y(Ga(n[l>>2]|0))}function kve(s,l){return s=s|0,l=l|0,+ +y(p0(n[s>>2]|0,l))}function Qve(s,l){return s=s|0,l=l|0,+ +y(hp(n[s>>2]|0,l))}function Fve(s,l){return s=s|0,l=l|0,+ +y(jo(n[s>>2]|0,l))}function Rve(){return Pn()|0}function Tve(){Nve(),Lve(),Mve(),Ove(),Uve(),_ve()}function Nve(){UNe(11713,4938,1)}function Lve(){iNe(10448)}function Mve(){UTe(10408)}function Ove(){lTe(10324)}function Uve(){dFe(10096)}function _ve(){Hve(9132)}function Hve(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0,lt=0,_e=0,qe=0,Lt=0,Or=0,cr=0,Xt=0,Pr=0,Tr=0,ar=0,xn=0,go=0,mo=0,yo=0,Ca=0,kp=0,Qp=0,Sl=0,Fp=0,Tu=0,Nu=0,Rp=0,Tp=0,Np=0,Xr=0,xl=0,Lp=0,kc=0,Mp=0,Op=0,Lu=0,Mu=0,Qc=0,Ys=0,Za=0,Wo=0,kl=0,rf=0,nf=0,Ou=0,sf=0,of=0,Ws=0,Ps=0,Ql=0,Rn=0,af=0,Eo=0,Fc=0,Co=0,Rc=0,lf=0,cf=0,Tc=0,Ks=0,Fl=0,uf=0,Af=0,ff=0,xr=0,zn=0,bs=0,wo=0,Vs=0,Fr=0,ur=0,Rl=0;l=C,C=C+672|0,c=l+656|0,Rl=l+648|0,ur=l+640|0,Fr=l+632|0,Vs=l+624|0,wo=l+616|0,bs=l+608|0,zn=l+600|0,xr=l+592|0,ff=l+584|0,Af=l+576|0,uf=l+568|0,Fl=l+560|0,Ks=l+552|0,Tc=l+544|0,cf=l+536|0,lf=l+528|0,Rc=l+520|0,Co=l+512|0,Fc=l+504|0,Eo=l+496|0,af=l+488|0,Rn=l+480|0,Ql=l+472|0,Ps=l+464|0,Ws=l+456|0,of=l+448|0,sf=l+440|0,Ou=l+432|0,nf=l+424|0,rf=l+416|0,kl=l+408|0,Wo=l+400|0,Za=l+392|0,Ys=l+384|0,Qc=l+376|0,Mu=l+368|0,Lu=l+360|0,Op=l+352|0,Mp=l+344|0,kc=l+336|0,Lp=l+328|0,xl=l+320|0,Xr=l+312|0,Np=l+304|0,Tp=l+296|0,Rp=l+288|0,Nu=l+280|0,Tu=l+272|0,Fp=l+264|0,Sl=l+256|0,Qp=l+248|0,kp=l+240|0,Ca=l+232|0,yo=l+224|0,mo=l+216|0,go=l+208|0,xn=l+200|0,ar=l+192|0,Tr=l+184|0,Pr=l+176|0,Xt=l+168|0,cr=l+160|0,Or=l+152|0,Lt=l+144|0,qe=l+136|0,_e=l+128|0,lt=l+120|0,Je=l+112|0,$e=l+104|0,Qe=l+96|0,Oe=l+88|0,je=l+80|0,se=l+72|0,j=l+64|0,M=l+56|0,O=l+48|0,Q=l+40|0,k=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,f=l,qve(s,3646),jve(s,3651,2)|0,Gve(s,3665,2)|0,Yve(s,3682,18)|0,n[Rl>>2]=19,n[Rl+4>>2]=0,n[c>>2]=n[Rl>>2],n[c+4>>2]=n[Rl+4>>2],mw(s,3690,c)|0,n[ur>>2]=1,n[ur+4>>2]=0,n[c>>2]=n[ur>>2],n[c+4>>2]=n[ur+4>>2],Wve(s,3696,c)|0,n[Fr>>2]=2,n[Fr+4>>2]=0,n[c>>2]=n[Fr>>2],n[c+4>>2]=n[Fr+4>>2],Qu(s,3706,c)|0,n[Vs>>2]=1,n[Vs+4>>2]=0,n[c>>2]=n[Vs>>2],n[c+4>>2]=n[Vs+4>>2],I0(s,3722,c)|0,n[wo>>2]=2,n[wo+4>>2]=0,n[c>>2]=n[wo>>2],n[c+4>>2]=n[wo+4>>2],I0(s,3734,c)|0,n[bs>>2]=3,n[bs+4>>2]=0,n[c>>2]=n[bs>>2],n[c+4>>2]=n[bs+4>>2],Qu(s,3753,c)|0,n[zn>>2]=4,n[zn+4>>2]=0,n[c>>2]=n[zn>>2],n[c+4>>2]=n[zn+4>>2],Qu(s,3769,c)|0,n[xr>>2]=5,n[xr+4>>2]=0,n[c>>2]=n[xr>>2],n[c+4>>2]=n[xr+4>>2],Qu(s,3783,c)|0,n[ff>>2]=6,n[ff+4>>2]=0,n[c>>2]=n[ff>>2],n[c+4>>2]=n[ff+4>>2],Qu(s,3796,c)|0,n[Af>>2]=7,n[Af+4>>2]=0,n[c>>2]=n[Af>>2],n[c+4>>2]=n[Af+4>>2],Qu(s,3813,c)|0,n[uf>>2]=8,n[uf+4>>2]=0,n[c>>2]=n[uf>>2],n[c+4>>2]=n[uf+4>>2],Qu(s,3825,c)|0,n[Fl>>2]=3,n[Fl+4>>2]=0,n[c>>2]=n[Fl>>2],n[c+4>>2]=n[Fl+4>>2],I0(s,3843,c)|0,n[Ks>>2]=4,n[Ks+4>>2]=0,n[c>>2]=n[Ks>>2],n[c+4>>2]=n[Ks+4>>2],I0(s,3853,c)|0,n[Tc>>2]=9,n[Tc+4>>2]=0,n[c>>2]=n[Tc>>2],n[c+4>>2]=n[Tc+4>>2],Qu(s,3870,c)|0,n[cf>>2]=10,n[cf+4>>2]=0,n[c>>2]=n[cf>>2],n[c+4>>2]=n[cf+4>>2],Qu(s,3884,c)|0,n[lf>>2]=11,n[lf+4>>2]=0,n[c>>2]=n[lf>>2],n[c+4>>2]=n[lf+4>>2],Qu(s,3896,c)|0,n[Rc>>2]=1,n[Rc+4>>2]=0,n[c>>2]=n[Rc>>2],n[c+4>>2]=n[Rc+4>>2],vs(s,3907,c)|0,n[Co>>2]=2,n[Co+4>>2]=0,n[c>>2]=n[Co>>2],n[c+4>>2]=n[Co+4>>2],vs(s,3915,c)|0,n[Fc>>2]=3,n[Fc+4>>2]=0,n[c>>2]=n[Fc>>2],n[c+4>>2]=n[Fc+4>>2],vs(s,3928,c)|0,n[Eo>>2]=4,n[Eo+4>>2]=0,n[c>>2]=n[Eo>>2],n[c+4>>2]=n[Eo+4>>2],vs(s,3948,c)|0,n[af>>2]=5,n[af+4>>2]=0,n[c>>2]=n[af>>2],n[c+4>>2]=n[af+4>>2],vs(s,3960,c)|0,n[Rn>>2]=6,n[Rn+4>>2]=0,n[c>>2]=n[Rn>>2],n[c+4>>2]=n[Rn+4>>2],vs(s,3974,c)|0,n[Ql>>2]=7,n[Ql+4>>2]=0,n[c>>2]=n[Ql>>2],n[c+4>>2]=n[Ql+4>>2],vs(s,3983,c)|0,n[Ps>>2]=20,n[Ps+4>>2]=0,n[c>>2]=n[Ps>>2],n[c+4>>2]=n[Ps+4>>2],mw(s,3999,c)|0,n[Ws>>2]=8,n[Ws+4>>2]=0,n[c>>2]=n[Ws>>2],n[c+4>>2]=n[Ws+4>>2],vs(s,4012,c)|0,n[of>>2]=9,n[of+4>>2]=0,n[c>>2]=n[of>>2],n[c+4>>2]=n[of+4>>2],vs(s,4022,c)|0,n[sf>>2]=21,n[sf+4>>2]=0,n[c>>2]=n[sf>>2],n[c+4>>2]=n[sf+4>>2],mw(s,4039,c)|0,n[Ou>>2]=10,n[Ou+4>>2]=0,n[c>>2]=n[Ou>>2],n[c+4>>2]=n[Ou+4>>2],vs(s,4053,c)|0,n[nf>>2]=11,n[nf+4>>2]=0,n[c>>2]=n[nf>>2],n[c+4>>2]=n[nf+4>>2],vs(s,4065,c)|0,n[rf>>2]=12,n[rf+4>>2]=0,n[c>>2]=n[rf>>2],n[c+4>>2]=n[rf+4>>2],vs(s,4084,c)|0,n[kl>>2]=13,n[kl+4>>2]=0,n[c>>2]=n[kl>>2],n[c+4>>2]=n[kl+4>>2],vs(s,4097,c)|0,n[Wo>>2]=14,n[Wo+4>>2]=0,n[c>>2]=n[Wo>>2],n[c+4>>2]=n[Wo+4>>2],vs(s,4117,c)|0,n[Za>>2]=15,n[Za+4>>2]=0,n[c>>2]=n[Za>>2],n[c+4>>2]=n[Za+4>>2],vs(s,4129,c)|0,n[Ys>>2]=16,n[Ys+4>>2]=0,n[c>>2]=n[Ys>>2],n[c+4>>2]=n[Ys+4>>2],vs(s,4148,c)|0,n[Qc>>2]=17,n[Qc+4>>2]=0,n[c>>2]=n[Qc>>2],n[c+4>>2]=n[Qc+4>>2],vs(s,4161,c)|0,n[Mu>>2]=18,n[Mu+4>>2]=0,n[c>>2]=n[Mu>>2],n[c+4>>2]=n[Mu+4>>2],vs(s,4181,c)|0,n[Lu>>2]=5,n[Lu+4>>2]=0,n[c>>2]=n[Lu>>2],n[c+4>>2]=n[Lu+4>>2],I0(s,4196,c)|0,n[Op>>2]=6,n[Op+4>>2]=0,n[c>>2]=n[Op>>2],n[c+4>>2]=n[Op+4>>2],I0(s,4206,c)|0,n[Mp>>2]=7,n[Mp+4>>2]=0,n[c>>2]=n[Mp>>2],n[c+4>>2]=n[Mp+4>>2],I0(s,4217,c)|0,n[kc>>2]=3,n[kc+4>>2]=0,n[c>>2]=n[kc>>2],n[c+4>>2]=n[kc+4>>2],zA(s,4235,c)|0,n[Lp>>2]=1,n[Lp+4>>2]=0,n[c>>2]=n[Lp>>2],n[c+4>>2]=n[Lp+4>>2],dF(s,4251,c)|0,n[xl>>2]=4,n[xl+4>>2]=0,n[c>>2]=n[xl>>2],n[c+4>>2]=n[xl+4>>2],zA(s,4263,c)|0,n[Xr>>2]=5,n[Xr+4>>2]=0,n[c>>2]=n[Xr>>2],n[c+4>>2]=n[Xr+4>>2],zA(s,4279,c)|0,n[Np>>2]=6,n[Np+4>>2]=0,n[c>>2]=n[Np>>2],n[c+4>>2]=n[Np+4>>2],zA(s,4293,c)|0,n[Tp>>2]=7,n[Tp+4>>2]=0,n[c>>2]=n[Tp>>2],n[c+4>>2]=n[Tp+4>>2],zA(s,4306,c)|0,n[Rp>>2]=8,n[Rp+4>>2]=0,n[c>>2]=n[Rp>>2],n[c+4>>2]=n[Rp+4>>2],zA(s,4323,c)|0,n[Nu>>2]=9,n[Nu+4>>2]=0,n[c>>2]=n[Nu>>2],n[c+4>>2]=n[Nu+4>>2],zA(s,4335,c)|0,n[Tu>>2]=2,n[Tu+4>>2]=0,n[c>>2]=n[Tu>>2],n[c+4>>2]=n[Tu+4>>2],dF(s,4353,c)|0,n[Fp>>2]=12,n[Fp+4>>2]=0,n[c>>2]=n[Fp>>2],n[c+4>>2]=n[Fp+4>>2],B0(s,4363,c)|0,n[Sl>>2]=1,n[Sl+4>>2]=0,n[c>>2]=n[Sl>>2],n[c+4>>2]=n[Sl+4>>2],JA(s,4376,c)|0,n[Qp>>2]=2,n[Qp+4>>2]=0,n[c>>2]=n[Qp>>2],n[c+4>>2]=n[Qp+4>>2],JA(s,4388,c)|0,n[kp>>2]=13,n[kp+4>>2]=0,n[c>>2]=n[kp>>2],n[c+4>>2]=n[kp+4>>2],B0(s,4402,c)|0,n[Ca>>2]=14,n[Ca+4>>2]=0,n[c>>2]=n[Ca>>2],n[c+4>>2]=n[Ca+4>>2],B0(s,4411,c)|0,n[yo>>2]=15,n[yo+4>>2]=0,n[c>>2]=n[yo>>2],n[c+4>>2]=n[yo+4>>2],B0(s,4421,c)|0,n[mo>>2]=16,n[mo+4>>2]=0,n[c>>2]=n[mo>>2],n[c+4>>2]=n[mo+4>>2],B0(s,4433,c)|0,n[go>>2]=17,n[go+4>>2]=0,n[c>>2]=n[go>>2],n[c+4>>2]=n[go+4>>2],B0(s,4446,c)|0,n[xn>>2]=18,n[xn+4>>2]=0,n[c>>2]=n[xn>>2],n[c+4>>2]=n[xn+4>>2],B0(s,4458,c)|0,n[ar>>2]=3,n[ar+4>>2]=0,n[c>>2]=n[ar>>2],n[c+4>>2]=n[ar+4>>2],JA(s,4471,c)|0,n[Tr>>2]=1,n[Tr+4>>2]=0,n[c>>2]=n[Tr>>2],n[c+4>>2]=n[Tr+4>>2],Hv(s,4486,c)|0,n[Pr>>2]=10,n[Pr+4>>2]=0,n[c>>2]=n[Pr>>2],n[c+4>>2]=n[Pr+4>>2],zA(s,4496,c)|0,n[Xt>>2]=11,n[Xt+4>>2]=0,n[c>>2]=n[Xt>>2],n[c+4>>2]=n[Xt+4>>2],zA(s,4508,c)|0,n[cr>>2]=3,n[cr+4>>2]=0,n[c>>2]=n[cr>>2],n[c+4>>2]=n[cr+4>>2],dF(s,4519,c)|0,n[Or>>2]=4,n[Or+4>>2]=0,n[c>>2]=n[Or>>2],n[c+4>>2]=n[Or+4>>2],Kve(s,4530,c)|0,n[Lt>>2]=19,n[Lt+4>>2]=0,n[c>>2]=n[Lt>>2],n[c+4>>2]=n[Lt+4>>2],Vve(s,4542,c)|0,n[qe>>2]=12,n[qe+4>>2]=0,n[c>>2]=n[qe>>2],n[c+4>>2]=n[qe+4>>2],zve(s,4554,c)|0,n[_e>>2]=13,n[_e+4>>2]=0,n[c>>2]=n[_e>>2],n[c+4>>2]=n[_e+4>>2],Jve(s,4568,c)|0,n[lt>>2]=2,n[lt+4>>2]=0,n[c>>2]=n[lt>>2],n[c+4>>2]=n[lt+4>>2],Xve(s,4578,c)|0,n[Je>>2]=20,n[Je+4>>2]=0,n[c>>2]=n[Je>>2],n[c+4>>2]=n[Je+4>>2],Zve(s,4587,c)|0,n[$e>>2]=22,n[$e+4>>2]=0,n[c>>2]=n[$e>>2],n[c+4>>2]=n[$e+4>>2],mw(s,4602,c)|0,n[Qe>>2]=23,n[Qe+4>>2]=0,n[c>>2]=n[Qe>>2],n[c+4>>2]=n[Qe+4>>2],mw(s,4619,c)|0,n[Oe>>2]=14,n[Oe+4>>2]=0,n[c>>2]=n[Oe>>2],n[c+4>>2]=n[Oe+4>>2],$ve(s,4629,c)|0,n[je>>2]=1,n[je+4>>2]=0,n[c>>2]=n[je>>2],n[c+4>>2]=n[je+4>>2],eDe(s,4637,c)|0,n[se>>2]=4,n[se+4>>2]=0,n[c>>2]=n[se>>2],n[c+4>>2]=n[se+4>>2],JA(s,4653,c)|0,n[j>>2]=5,n[j+4>>2]=0,n[c>>2]=n[j>>2],n[c+4>>2]=n[j+4>>2],JA(s,4669,c)|0,n[M>>2]=6,n[M+4>>2]=0,n[c>>2]=n[M>>2],n[c+4>>2]=n[M+4>>2],JA(s,4686,c)|0,n[O>>2]=7,n[O+4>>2]=0,n[c>>2]=n[O>>2],n[c+4>>2]=n[O+4>>2],JA(s,4701,c)|0,n[Q>>2]=8,n[Q+4>>2]=0,n[c>>2]=n[Q>>2],n[c+4>>2]=n[Q+4>>2],JA(s,4719,c)|0,n[k>>2]=9,n[k+4>>2]=0,n[c>>2]=n[k>>2],n[c+4>>2]=n[k+4>>2],JA(s,4736,c)|0,n[B>>2]=21,n[B+4>>2]=0,n[c>>2]=n[B>>2],n[c+4>>2]=n[B+4>>2],tDe(s,4754,c)|0,n[m>>2]=2,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],Hv(s,4772,c)|0,n[d>>2]=3,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],Hv(s,4790,c)|0,n[f>>2]=4,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],Hv(s,4808,c)|0,C=l}function qve(s,l){s=s|0,l=l|0;var c=0;c=aFe()|0,n[s>>2]=c,lFe(c,l),bp(n[s>>2]|0)}function jve(s,l,c){return s=s|0,l=l|0,c=c|0,KQe(s,pn(l)|0,c,0),s|0}function Gve(s,l,c){return s=s|0,l=l|0,c=c|0,QQe(s,pn(l)|0,c,0),s|0}function Yve(s,l,c){return s=s|0,l=l|0,c=c|0,mQe(s,pn(l)|0,c,0),s|0}function mw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tQe(s,l,d),C=f,s|0}function Wve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Lke(s,l,d),C=f,s|0}function Qu(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Cke(s,l,d),C=f,s|0}function I0(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ike(s,l,d),C=f,s|0}function vs(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qxe(s,l,d),C=f,s|0}function zA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Pxe(s,l,d),C=f,s|0}function dF(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],uxe(s,l,d),C=f,s|0}function B0(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],LSe(s,l,d),C=f,s|0}function JA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CSe(s,l,d),C=f,s|0}function Hv(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iSe(s,l,d),C=f,s|0}function Kve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qbe(s,l,d),C=f,s|0}function Vve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Pbe(s,l,d),C=f,s|0}function zve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Abe(s,l,d),C=f,s|0}function Jve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],JPe(s,l,d),C=f,s|0}function Xve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],RPe(s,l,d),C=f,s|0}function Zve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],dPe(s,l,d),C=f,s|0}function $ve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ePe(s,l,d),C=f,s|0}function eDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],LDe(s,l,d),C=f,s|0}function tDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rDe(s,l,d),C=f,s|0}function rDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],nDe(s,c,d,1),C=f}function pn(s){return s=s|0,s|0}function nDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=mF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=iDe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,sDe(m,f)|0,f),C=d}function mF(){var s=0,l=0;if(o[7616]|0||(X5(9136),ir(24,9136,U|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9136)|0)){s=9136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));X5(9136)}return 9136}function iDe(s){return s=s|0,0}function sDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=mF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],J5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lDe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function hn(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0;B=C,C=C+32|0,se=B+24|0,j=B+20|0,Q=B+16|0,M=B+12|0,O=B+8|0,k=B+4|0,je=B,n[j>>2]=l,n[Q>>2]=c,n[M>>2]=f,n[O>>2]=d,n[k>>2]=m,m=s+28|0,n[je>>2]=n[m>>2],n[se>>2]=n[je>>2],oDe(s+24|0,se,j,M,O,Q,k)|0,n[m>>2]=n[n[m>>2]>>2],C=B}function oDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,s=aDe(l)|0,l=Kt(24)|0,z5(l+4|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[s>>2],n[s>>2]=l,l|0}function aDe(s){return s=s|0,n[s>>2]|0}function z5(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function gr(s,l){return s=s|0,l=l|0,l|s|0}function J5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cDe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,uDe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],J5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,ADe(s,k),fDe(k),C=O;return}}function cDe(s){return s=s|0,357913941}function uDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ADe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function X5(s){s=s|0,gDe(s)}function pDe(s){s=s|0,hDe(s+24|0)}function Rr(s){return s=s|0,n[s>>2]|0}function hDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function gDe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,3,l,dDe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Vr(){return 9228}function dDe(){return 1140}function mDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=yDe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=EDe(l,f)|0,C=c,l|0}function zr(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function yDe(s){return s=s|0,(n[(mF()|0)+24>>2]|0)+(s*12|0)|0}function EDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+48|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=CDe(f)|0,C=d,f|0}function CDe(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=yF(Z5()|0)|0,f?(EF(l,f),CF(c,l),wDe(s,c),s=wF(l)|0):s=IDe(s)|0,C=d,s|0}function Z5(){var s=0;return o[7632]|0||(FDe(9184),ir(25,9184,U|0)|0,s=7632,n[s>>2]=1,n[s+4>>2]=0),9184}function yF(s){return s=s|0,n[s+36>>2]|0}function EF(s,l){s=s|0,l=l|0,n[s>>2]=l,n[s+4>>2]=s,n[s+8>>2]=0}function CF(s,l){s=s|0,l=l|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=0}function wDe(s,l){s=s|0,l=l|0,PDe(l,s,s+8|0,s+16|0,s+24|0,s+32|0,s+40|0)|0}function wF(s){return s=s|0,n[(n[s+4>>2]|0)+8>>2]|0}function IDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0;Q=C,C=C+16|0,c=Q+4|0,f=Q,d=Va(8)|0,m=d,B=Kt(48)|0,k=B,l=k+48|0;do n[k>>2]=n[s>>2],k=k+4|0,s=s+4|0;while((k|0)<(l|0));return l=m+4|0,n[l>>2]=B,k=Kt(8)|0,B=n[l>>2]|0,n[f>>2]=0,n[c>>2]=n[f>>2],$5(k,B,c),n[d>>2]=k,C=Q,m|0}function $5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1092,n[c+12>>2]=l,n[s+4>>2]=c}function BDe(s){s=s|0,Md(s),gt(s)}function vDe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function DDe(s){s=s|0,gt(s)}function PDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,m=bDe(n[s>>2]|0,l,c,f,d,m,B)|0,B=s+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function bDe(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0;var k=0,Q=0;return k=C,C=C+16|0,Q=k,za(Q),s=ya(s)|0,B=SDe(s,+E[l>>3],+E[c>>3],+E[f>>3],+E[d>>3],+E[m>>3],+E[B>>3])|0,Ja(Q),C=k,B|0}function SDe(s,l,c,f,d,m,B){s=s|0,l=+l,c=+c,f=+f,d=+d,m=+m,B=+B;var k=0;return k=Pl(xDe()|0)|0,l=+VA(l),c=+VA(c),f=+VA(f),d=+VA(d),m=+VA(m),_s(0,k|0,s|0,+l,+c,+f,+d,+m,+ +VA(B))|0}function xDe(){var s=0;return o[7624]|0||(kDe(9172),s=7624,n[s>>2]=1,n[s+4>>2]=0),9172}function kDe(s){s=s|0,bl(s,QDe()|0,6)}function QDe(){return 1112}function FDe(s){s=s|0,Ip(s)}function RDe(s){s=s|0,eG(s+24|0),tG(s+16|0)}function eG(s){s=s|0,NDe(s)}function tG(s){s=s|0,TDe(s)}function TDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while(l|0);n[s>>2]=0}function NDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while(l|0);n[s>>2]=0}function Ip(s){s=s|0;var l=0;n[s+16>>2]=0,n[s+20>>2]=0,l=s+24|0,n[l>>2]=0,n[s+28>>2]=l,n[s+36>>2]=0,o[s+40>>0]=0,o[s+41>>0]=0}function LDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],MDe(s,c,d,0),C=f}function MDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=IF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=ODe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,UDe(m,f)|0,f),C=d}function IF(){var s=0,l=0;if(o[7640]|0||(nG(9232),ir(26,9232,U|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9232)|0)){s=9232,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));nG(9232)}return 9232}function ODe(s){return s=s|0,0}function UDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=IF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],rG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_De(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function rG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _De(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=HDe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,qDe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],rG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,jDe(s,k),GDe(k),C=O;return}}function HDe(s){return s=s|0,357913941}function qDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function GDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function nG(s){s=s|0,KDe(s)}function YDe(s){s=s|0,WDe(s+24|0)}function WDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function KDe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,1,l,VDe()|0,3),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function VDe(){return 1144}function zDe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+16|0,B=m+8|0,k=m,Q=JDe(s)|0,s=n[Q+4>>2]|0,n[k>>2]=n[Q>>2],n[k+4>>2]=s,n[B>>2]=n[k>>2],n[B+4>>2]=n[k+4>>2],XDe(l,B,c,f,d),C=m}function JDe(s){return s=s|0,(n[(IF()|0)+24>>2]|0)+(s*12|0)|0}function XDe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,Q=0,O=0;O=C,C=C+16|0,B=O+2|0,k=O+1|0,Q=O,m=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(m=n[(n[s>>2]|0)+m>>2]|0),Fu(B,c),c=+Ru(B,c),Fu(k,f),f=+Ru(k,f),XA(Q,d),Q=ZA(Q,d)|0,y7[m&1](s,c,f,Q),C=O}function Fu(s,l){s=s|0,l=+l}function Ru(s,l){return s=s|0,l=+l,+ +$De(l)}function XA(s,l){s=s|0,l=l|0}function ZA(s,l){return s=s|0,l=l|0,ZDe(l)|0}function ZDe(s){return s=s|0,s|0}function $De(s){return s=+s,+s}function ePe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tPe(s,c,d,1),C=f}function tPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=BF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=rPe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,nPe(m,f)|0,f),C=d}function BF(){var s=0,l=0;if(o[7648]|0||(sG(9268),ir(27,9268,U|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9268)|0)){s=9268,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));sG(9268)}return 9268}function rPe(s){return s=s|0,0}function nPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=BF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],iG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(iPe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function iG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function iPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=sPe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,oPe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],iG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,aPe(s,k),lPe(k),C=O;return}}function sPe(s){return s=s|0,357913941}function oPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function aPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function lPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function sG(s){s=s|0,APe(s)}function cPe(s){s=s|0,uPe(s+24|0)}function uPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function APe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,4,l,fPe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function fPe(){return 1160}function pPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=hPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=gPe(l,f)|0,C=c,l|0}function hPe(s){return s=s|0,(n[(BF()|0)+24>>2]|0)+(s*12|0)|0}function gPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),oG(F0[c&31](s)|0)|0}function oG(s){return s=s|0,s&1|0}function dPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],mPe(s,c,d,0),C=f}function mPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=vF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=yPe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,EPe(m,f)|0,f),C=d}function vF(){var s=0,l=0;if(o[7656]|0||(lG(9304),ir(28,9304,U|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9304)|0)){s=9304,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));lG(9304)}return 9304}function yPe(s){return s=s|0,0}function EPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=vF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],aG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(CPe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function aG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function CPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=wPe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,IPe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],aG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,BPe(s,k),vPe(k),C=O;return}}function wPe(s){return s=s|0,357913941}function IPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function BPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function vPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function lG(s){s=s|0,bPe(s)}function DPe(s){s=s|0,PPe(s+24|0)}function PPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function bPe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,5,l,SPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function SPe(){return 1164}function xPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=kPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],QPe(l,d,c),C=f}function kPe(s){return s=s|0,(n[(vF()|0)+24>>2]|0)+(s*12|0)|0}function QPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Bp(d,c),c=vp(d,c)|0,tf[f&31](s,c),Dp(d),C=m}function Bp(s,l){s=s|0,l=l|0,FPe(s,l)}function vp(s,l){return s=s|0,l=l|0,s|0}function Dp(s){s=s|0,qA(s)}function FPe(s,l){s=s|0,l=l|0,DF(s,l)}function DF(s,l){s=s|0,l=l|0,n[s>>2]=l}function RPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],TPe(s,c,d,0),C=f}function TPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=PF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=NPe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,LPe(m,f)|0,f),C=d}function PF(){var s=0,l=0;if(o[7664]|0||(uG(9340),ir(29,9340,U|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9340)|0)){s=9340,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));uG(9340)}return 9340}function NPe(s){return s=s|0,0}function LPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=PF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],cG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(MPe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function cG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function MPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=OPe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,UPe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],cG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,_Pe(s,k),HPe(k),C=O;return}}function OPe(s){return s=s|0,357913941}function UPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function _Pe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function HPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function uG(s){s=s|0,GPe(s)}function qPe(s){s=s|0,jPe(s+24|0)}function jPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function GPe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,4,l,YPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function YPe(){return 1180}function WPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=KPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=VPe(l,d,c)|0,C=f,c|0}function KPe(s){return s=s|0,(n[(PF()|0)+24>>2]|0)+(s*12|0)|0}function VPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),v0(d,c),d=D0(d,c)|0,d=qv(IR[f&15](s,d)|0)|0,C=m,d|0}function v0(s,l){s=s|0,l=l|0}function D0(s,l){return s=s|0,l=l|0,zPe(l)|0}function qv(s){return s=s|0,s|0}function zPe(s){return s=s|0,s|0}function JPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XPe(s,c,d,0),C=f}function XPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=bF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=ZPe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,$Pe(m,f)|0,f),C=d}function bF(){var s=0,l=0;if(o[7672]|0||(fG(9376),ir(30,9376,U|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9376)|0)){s=9376,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));fG(9376)}return 9376}function ZPe(s){return s=s|0,0}function $Pe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=bF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],AG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(ebe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function AG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function ebe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=tbe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,rbe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],AG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,nbe(s,k),ibe(k),C=O;return}}function tbe(s){return s=s|0,357913941}function rbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function nbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function ibe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function fG(s){s=s|0,abe(s)}function sbe(s){s=s|0,obe(s+24|0)}function obe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function abe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,5,l,pG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pG(){return 1196}function lbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=cbe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=ube(l,f)|0,C=c,l|0}function cbe(s){return s=s|0,(n[(bF()|0)+24>>2]|0)+(s*12|0)|0}function ube(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),qv(F0[c&31](s)|0)|0}function Abe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],fbe(s,c,d,1),C=f}function fbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=SF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=pbe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,hbe(m,f)|0,f),C=d}function SF(){var s=0,l=0;if(o[7680]|0||(gG(9412),ir(31,9412,U|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9412)|0)){s=9412,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));gG(9412)}return 9412}function pbe(s){return s=s|0,0}function hbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=SF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],hG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(gbe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function hG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function gbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=dbe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,mbe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],hG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,ybe(s,k),Ebe(k),C=O;return}}function dbe(s){return s=s|0,357913941}function mbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ybe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Ebe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function gG(s){s=s|0,Ibe(s)}function Cbe(s){s=s|0,wbe(s+24|0)}function wbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Ibe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,6,l,dG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dG(){return 1200}function Bbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=vbe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Dbe(l,f)|0,C=c,l|0}function vbe(s){return s=s|0,(n[(SF()|0)+24>>2]|0)+(s*12|0)|0}function Dbe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),jv(F0[c&31](s)|0)|0}function jv(s){return s=s|0,s|0}function Pbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bbe(s,c,d,0),C=f}function bbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=xF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=Sbe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,xbe(m,f)|0,f),C=d}function xF(){var s=0,l=0;if(o[7688]|0||(yG(9448),ir(32,9448,U|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9448)|0)){s=9448,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));yG(9448)}return 9448}function Sbe(s){return s=s|0,0}function xbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=xF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],mG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(kbe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function mG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function kbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Qbe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,Fbe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],mG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,Rbe(s,k),Tbe(k),C=O;return}}function Qbe(s){return s=s|0,357913941}function Fbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Rbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Tbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function yG(s){s=s|0,Mbe(s)}function Nbe(s){s=s|0,Lbe(s+24|0)}function Lbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Mbe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,6,l,EG()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function EG(){return 1204}function Obe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Ube(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_be(l,d,c),C=f}function Ube(s){return s=s|0,(n[(xF()|0)+24>>2]|0)+(s*12|0)|0}function _be(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),kF(d,c),d=QF(d,c)|0,tf[f&31](s,d),C=m}function kF(s,l){s=s|0,l=l|0}function QF(s,l){return s=s|0,l=l|0,Hbe(l)|0}function Hbe(s){return s=s|0,s|0}function qbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jbe(s,c,d,0),C=f}function jbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=FF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=Gbe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Ybe(m,f)|0,f),C=d}function FF(){var s=0,l=0;if(o[7696]|0||(wG(9484),ir(33,9484,U|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9484)|0)){s=9484,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));wG(9484)}return 9484}function Gbe(s){return s=s|0,0}function Ybe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=FF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],CG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Wbe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function CG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Wbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Kbe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,Vbe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],CG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,zbe(s,k),Jbe(k),C=O;return}}function Kbe(s){return s=s|0,357913941}function Vbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function zbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Jbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function wG(s){s=s|0,$be(s)}function Xbe(s){s=s|0,Zbe(s+24|0)}function Zbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function $be(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,1,l,eSe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function eSe(){return 1212}function tSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=rSe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],nSe(l,m,c,f),C=d}function rSe(s){return s=s|0,(n[(FF()|0)+24>>2]|0)+(s*12|0)|0}function nSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),kF(m,c),m=QF(m,c)|0,v0(B,f),B=D0(B,f)|0,vw[d&15](s,m,B),C=k}function iSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sSe(s,c,d,1),C=f}function sSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=RF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=oSe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,aSe(m,f)|0,f),C=d}function RF(){var s=0,l=0;if(o[7704]|0||(BG(9520),ir(34,9520,U|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9520)|0)){s=9520,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));BG(9520)}return 9520}function oSe(s){return s=s|0,0}function aSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=RF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],IG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lSe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function IG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cSe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,uSe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],IG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,ASe(s,k),fSe(k),C=O;return}}function cSe(s){return s=s|0,357913941}function uSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ASe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function BG(s){s=s|0,gSe(s)}function pSe(s){s=s|0,hSe(s+24|0)}function hSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function gSe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,1,l,dSe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dSe(){return 1224}function mSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;return d=C,C=C+16|0,m=d+8|0,B=d,k=ySe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],f=+ESe(l,m,c),C=d,+f}function ySe(s){return s=s|0,(n[(RF()|0)+24>>2]|0)+(s*12|0)|0}function ESe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,B=+gF(+C7[f&7](s,d)),C=m,+B}function CSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wSe(s,c,d,1),C=f}function wSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=TF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=ISe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,BSe(m,f)|0,f),C=d}function TF(){var s=0,l=0;if(o[7712]|0||(DG(9556),ir(35,9556,U|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9556)|0)){s=9556,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));DG(9556)}return 9556}function ISe(s){return s=s|0,0}function BSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=TF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],vG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vSe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function vG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=DSe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,PSe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],vG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,bSe(s,k),SSe(k),C=O;return}}function DSe(s){return s=s|0,357913941}function PSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function bSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function SSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function DG(s){s=s|0,QSe(s)}function xSe(s){s=s|0,kSe(s+24|0)}function kSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function QSe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,5,l,FSe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FSe(){return 1232}function RSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=TSe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=+NSe(l,d),C=f,+c}function TSe(s){return s=s|0,(n[(TF()|0)+24>>2]|0)+(s*12|0)|0}function NSe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),+ +gF(+E7[c&15](s))}function LSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],MSe(s,c,d,1),C=f}function MSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=NF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=OSe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,USe(m,f)|0,f),C=d}function NF(){var s=0,l=0;if(o[7720]|0||(bG(9592),ir(36,9592,U|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9592)|0)){s=9592,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));bG(9592)}return 9592}function OSe(s){return s=s|0,0}function USe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=NF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],PG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_Se(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function PG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _Se(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=HSe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,qSe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],PG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,jSe(s,k),GSe(k),C=O;return}}function HSe(s){return s=s|0,357913941}function qSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function GSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function bG(s){s=s|0,KSe(s)}function YSe(s){s=s|0,WSe(s+24|0)}function WSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function KSe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,7,l,VSe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function VSe(){return 1276}function zSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=JSe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=XSe(l,f)|0,C=c,l|0}function JSe(s){return s=s|0,(n[(NF()|0)+24>>2]|0)+(s*12|0)|0}function XSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+16|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=SG(f)|0,C=d,f|0}function SG(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=yF(xG()|0)|0,f?(EF(l,f),CF(c,l),ZSe(s,c),s=wF(l)|0):s=$Se(s)|0,C=d,s|0}function xG(){var s=0;return o[7736]|0||(cxe(9640),ir(25,9640,U|0)|0,s=7736,n[s>>2]=1,n[s+4>>2]=0),9640}function ZSe(s,l){s=s|0,l=l|0,nxe(l,s,s+8|0)|0}function $Se(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Va(8)|0,l=f,k=Kt(16)|0,n[k>>2]=n[s>>2],n[k+4>>2]=n[s+4>>2],n[k+8>>2]=n[s+8>>2],n[k+12>>2]=n[s+12>>2],m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],LF(s,m,d),n[f>>2]=s,C=c,l|0}function LF(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1244,n[c+12>>2]=l,n[s+4>>2]=c}function exe(s){s=s|0,Md(s),gt(s)}function txe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function rxe(s){s=s|0,gt(s)}function nxe(s,l,c){return s=s|0,l=l|0,c=c|0,l=ixe(n[s>>2]|0,l,c)|0,c=s+4|0,n[(n[c>>2]|0)+8>>2]=l,n[(n[c>>2]|0)+8>>2]|0}function ixe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return f=C,C=C+16|0,d=f,za(d),s=ya(s)|0,c=sxe(s,n[l>>2]|0,+E[c>>3])|0,Ja(d),C=f,c|0}function sxe(s,l,c){s=s|0,l=l|0,c=+c;var f=0;return f=Pl(oxe()|0)|0,l=hF(l)|0,ml(0,f|0,s|0,l|0,+ +VA(c))|0}function oxe(){var s=0;return o[7728]|0||(axe(9628),s=7728,n[s>>2]=1,n[s+4>>2]=0),9628}function axe(s){s=s|0,bl(s,lxe()|0,2)}function lxe(){return 1264}function cxe(s){s=s|0,Ip(s)}function uxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Axe(s,c,d,1),C=f}function Axe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=MF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=fxe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,pxe(m,f)|0,f),C=d}function MF(){var s=0,l=0;if(o[7744]|0||(QG(9684),ir(37,9684,U|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9684)|0)){s=9684,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));QG(9684)}return 9684}function fxe(s){return s=s|0,0}function pxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=MF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],kG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(hxe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function kG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function hxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=gxe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,dxe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],kG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,mxe(s,k),yxe(k),C=O;return}}function gxe(s){return s=s|0,357913941}function dxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function mxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function yxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function QG(s){s=s|0,wxe(s)}function Exe(s){s=s|0,Cxe(s+24|0)}function Cxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function wxe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,5,l,Ixe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Ixe(){return 1280}function Bxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=vxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=Dxe(l,d,c)|0,C=f,c|0}function vxe(s){return s=s|0,(n[(MF()|0)+24>>2]|0)+(s*12|0)|0}function Dxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return B=C,C=C+32|0,d=B,m=B+16|0,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(m,c),m=ZA(m,c)|0,vw[f&15](d,s,m),m=SG(d)|0,C=B,m|0}function Pxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bxe(s,c,d,1),C=f}function bxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=OF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=Sxe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,xxe(m,f)|0,f),C=d}function OF(){var s=0,l=0;if(o[7752]|0||(RG(9720),ir(38,9720,U|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9720)|0)){s=9720,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));RG(9720)}return 9720}function Sxe(s){return s=s|0,0}function xxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=OF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],FG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(kxe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function FG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function kxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Qxe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,Fxe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],FG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,Rxe(s,k),Txe(k),C=O;return}}function Qxe(s){return s=s|0,357913941}function Fxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Rxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Txe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function RG(s){s=s|0,Mxe(s)}function Nxe(s){s=s|0,Lxe(s+24|0)}function Lxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Mxe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,8,l,Oxe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Oxe(){return 1288}function Uxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=_xe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Hxe(l,f)|0,C=c,l|0}function _xe(s){return s=s|0,(n[(OF()|0)+24>>2]|0)+(s*12|0)|0}function Hxe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),V5(F0[c&31](s)|0)|0}function qxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jxe(s,c,d,0),C=f}function jxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=UF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=Gxe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Yxe(m,f)|0,f),C=d}function UF(){var s=0,l=0;if(o[7760]|0||(NG(9756),ir(39,9756,U|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9756)|0)){s=9756,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));NG(9756)}return 9756}function Gxe(s){return s=s|0,0}function Yxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=UF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],TG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Wxe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function TG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Wxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Kxe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,Vxe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],TG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,zxe(s,k),Jxe(k),C=O;return}}function Kxe(s){return s=s|0,357913941}function Vxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function zxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Jxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function NG(s){s=s|0,$xe(s)}function Xxe(s){s=s|0,Zxe(s+24|0)}function Zxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function $xe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,8,l,eke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function eke(){return 1292}function tke(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=rke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],nke(l,d,c),C=f}function rke(s){return s=s|0,(n[(UF()|0)+24>>2]|0)+(s*12|0)|0}function nke(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Fu(d,c),c=+Ru(d,c),d7[f&31](s,c),C=m}function ike(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ske(s,c,d,0),C=f}function ske(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=_F()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=oke(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,ake(m,f)|0,f),C=d}function _F(){var s=0,l=0;if(o[7768]|0||(MG(9792),ir(40,9792,U|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9792)|0)){s=9792,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));MG(9792)}return 9792}function oke(s){return s=s|0,0}function ake(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=_F()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],LG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lke(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function LG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cke(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,uke(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],LG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,Ake(s,k),fke(k),C=O;return}}function cke(s){return s=s|0,357913941}function uke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Ake(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function MG(s){s=s|0,gke(s)}function pke(s){s=s|0,hke(s+24|0)}function hke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function gke(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,1,l,dke()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dke(){return 1300}function mke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=yke(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],Eke(l,m,c,f),C=d}function yke(s){return s=s|0,(n[(_F()|0)+24>>2]|0)+(s*12|0)|0}function Eke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,Fu(B,f),f=+Ru(B,f),v7[d&15](s,m,f),C=k}function Cke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wke(s,c,d,0),C=f}function wke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=HF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=Ike(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Bke(m,f)|0,f),C=d}function HF(){var s=0,l=0;if(o[7776]|0||(UG(9828),ir(41,9828,U|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9828)|0)){s=9828,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));UG(9828)}return 9828}function Ike(s){return s=s|0,0}function Bke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=HF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],OG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vke(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function OG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Dke(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,Pke(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],OG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,bke(s,k),Ske(k),C=O;return}}function Dke(s){return s=s|0,357913941}function Pke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function bke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Ske(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function UG(s){s=s|0,Qke(s)}function xke(s){s=s|0,kke(s+24|0)}function kke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Qke(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,7,l,Fke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Fke(){return 1312}function Rke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Tke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Nke(l,d,c),C=f}function Tke(s){return s=s|0,(n[(HF()|0)+24>>2]|0)+(s*12|0)|0}function Nke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,tf[f&31](s,d),C=m}function Lke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Mke(s,c,d,0),C=f}function Mke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=qF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=Oke(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Uke(m,f)|0,f),C=d}function qF(){var s=0,l=0;if(o[7784]|0||(HG(9864),ir(42,9864,U|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9864)|0)){s=9864,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));HG(9864)}return 9864}function Oke(s){return s=s|0,0}function Uke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=qF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_G(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_ke(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function _G(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _ke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Hke(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,qke(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_G(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,jke(s,k),Gke(k),C=O;return}}function Hke(s){return s=s|0,357913941}function qke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Gke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function HG(s){s=s|0,Kke(s)}function Yke(s){s=s|0,Wke(s+24|0)}function Wke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Kke(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,8,l,Vke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Vke(){return 1320}function zke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Jke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Xke(l,d,c),C=f}function Jke(s){return s=s|0,(n[(qF()|0)+24>>2]|0)+(s*12|0)|0}function Xke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Zke(d,c),d=$ke(d,c)|0,tf[f&31](s,d),C=m}function Zke(s,l){s=s|0,l=l|0}function $ke(s,l){return s=s|0,l=l|0,eQe(l)|0}function eQe(s){return s=s|0,s|0}function tQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rQe(s,c,d,0),C=f}function rQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=jF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=nQe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,iQe(m,f)|0,f),C=d}function jF(){var s=0,l=0;if(o[7792]|0||(jG(9900),ir(43,9900,U|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9900)|0)){s=9900,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));jG(9900)}return 9900}function nQe(s){return s=s|0,0}function iQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=jF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],qG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(sQe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function qG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function sQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=oQe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,aQe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],qG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,lQe(s,k),cQe(k),C=O;return}}function oQe(s){return s=s|0,357913941}function aQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function jG(s){s=s|0,fQe(s)}function uQe(s){s=s|0,AQe(s+24|0)}function AQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function fQe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,22,l,pQe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pQe(){return 1344}function hQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;c=C,C=C+16|0,f=c+8|0,d=c,m=gQe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],dQe(l,f),C=c}function gQe(s){return s=s|0,(n[(jF()|0)+24>>2]|0)+(s*12|0)|0}function dQe(s,l){s=s|0,l=l|0;var c=0;c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),ef[c&127](s)}function mQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=GF()|0,s=yQe(c)|0,hn(m,l,d,s,EQe(c,f)|0,f)}function GF(){var s=0,l=0;if(o[7800]|0||(YG(9936),ir(44,9936,U|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9936)|0)){s=9936,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));YG(9936)}return 9936}function yQe(s){return s=s|0,s|0}function EQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=GF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(GG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(CQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function GG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function CQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=wQe(s)|0,f>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,IQe(d,M>>3>>>0>>1>>>0?O>>>0>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,GG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,BQe(s,d),vQe(d),C=k;return}}function wQe(s){return s=s|0,536870911}function IQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function BQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function vQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function YG(s){s=s|0,bQe(s)}function DQe(s){s=s|0,PQe(s+24|0)}function PQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function bQe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,23,l,EG()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function SQe(s,l){s=s|0,l=l|0,kQe(n[(xQe(s)|0)>>2]|0,l)}function xQe(s){return s=s|0,(n[(GF()|0)+24>>2]|0)+(s<<3)|0}function kQe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,kF(f,l),l=QF(f,l)|0,ef[s&127](l),C=c}function QQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=YF()|0,s=FQe(c)|0,hn(m,l,d,s,RQe(c,f)|0,f)}function YF(){var s=0,l=0;if(o[7808]|0||(KG(9972),ir(45,9972,U|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9972)|0)){s=9972,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));KG(9972)}return 9972}function FQe(s){return s=s|0,s|0}function RQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=YF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(WG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(TQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function WG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function TQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=NQe(s)|0,f>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,LQe(d,M>>3>>>0>>1>>>0?O>>>0>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,WG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,MQe(s,d),OQe(d),C=k;return}}function NQe(s){return s=s|0,536870911}function LQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function MQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function OQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function KG(s){s=s|0,HQe(s)}function UQe(s){s=s|0,_Qe(s+24|0)}function _Qe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function HQe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,9,l,qQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qQe(){return 1348}function jQe(s,l){return s=s|0,l=l|0,YQe(n[(GQe(s)|0)>>2]|0,l)|0}function GQe(s){return s=s|0,(n[(YF()|0)+24>>2]|0)+(s<<3)|0}function YQe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,VG(f,l),l=zG(f,l)|0,l=qv(F0[s&31](l)|0)|0,C=c,l|0}function VG(s,l){s=s|0,l=l|0}function zG(s,l){return s=s|0,l=l|0,WQe(l)|0}function WQe(s){return s=s|0,s|0}function KQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=WF()|0,s=VQe(c)|0,hn(m,l,d,s,zQe(c,f)|0,f)}function WF(){var s=0,l=0;if(o[7816]|0||(XG(10008),ir(46,10008,U|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10008)|0)){s=10008,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));XG(10008)}return 10008}function VQe(s){return s=s|0,s|0}function zQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=WF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(JG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(JQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function JG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function JQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=XQe(s)|0,f>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,ZQe(d,M>>3>>>0>>1>>>0?O>>>0>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,JG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,$Qe(s,d),eFe(d),C=k;return}}function XQe(s){return s=s|0,536870911}function ZQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function $Qe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function eFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function XG(s){s=s|0,nFe(s)}function tFe(s){s=s|0,rFe(s+24|0)}function rFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function nFe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,15,l,pG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function iFe(s){return s=s|0,oFe(n[(sFe(s)|0)>>2]|0)|0}function sFe(s){return s=s|0,(n[(WF()|0)+24>>2]|0)+(s<<3)|0}function oFe(s){return s=s|0,qv(nD[s&7]()|0)|0}function aFe(){var s=0;return o[7832]|0||(gFe(10052),ir(25,10052,U|0)|0,s=7832,n[s>>2]=1,n[s+4>>2]=0),10052}function lFe(s,l){s=s|0,l=l|0,n[s>>2]=cFe()|0,n[s+4>>2]=uFe()|0,n[s+12>>2]=l,n[s+8>>2]=AFe()|0,n[s+32>>2]=2}function cFe(){return 11709}function uFe(){return 1188}function AFe(){return Gv()|0}function fFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Pp(f,896)|0)==512?c|0&&(pFe(c),gt(c)):l|0&&(Su(l),gt(l))}function Pp(s,l){return s=s|0,l=l|0,l&s|0}function pFe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function Gv(){var s=0;return o[7824]|0||(n[2511]=hFe()|0,n[2512]=0,s=7824,n[s>>2]=1,n[s+4>>2]=0),10044}function hFe(){return 0}function gFe(s){s=s|0,Ip(s)}function dFe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0;l=C,C=C+32|0,c=l+24|0,m=l+16|0,d=l+8|0,f=l,mFe(s,4827),yFe(s,4834,3)|0,EFe(s,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],CFe(s,4841,c)|0,n[d>>2]=1,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],wFe(s,4871,c)|0,n[f>>2]=10,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],IFe(s,4891,c)|0,C=l}function mFe(s,l){s=s|0,l=l|0;var c=0;c=eTe()|0,n[s>>2]=c,tTe(c,l),bp(n[s>>2]|0)}function yFe(s,l,c){return s=s|0,l=l|0,c=c|0,ORe(s,pn(l)|0,c,0),s|0}function EFe(s,l,c){return s=s|0,l=l|0,c=c|0,BRe(s,pn(l)|0,c,0),s|0}function CFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iRe(s,l,d),C=f,s|0}function wFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],UFe(s,l,d),C=f,s|0}function IFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],BFe(s,l,d),C=f,s|0}function BFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vFe(s,c,d,1),C=f}function vFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=KF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=DFe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,PFe(m,f)|0,f),C=d}function KF(){var s=0,l=0;if(o[7840]|0||($G(10100),ir(48,10100,U|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10100)|0)){s=10100,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));$G(10100)}return 10100}function DFe(s){return s=s|0,0}function PFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=KF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],ZG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(bFe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function ZG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function bFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=SFe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,xFe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],ZG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,kFe(s,k),QFe(k),C=O;return}}function SFe(s){return s=s|0,357913941}function xFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function kFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function QFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function $G(s){s=s|0,TFe(s)}function FFe(s){s=s|0,RFe(s+24|0)}function RFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function TFe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,6,l,NFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function NFe(){return 1364}function LFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=MFe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=OFe(l,d,c)|0,C=f,c|0}function MFe(s){return s=s|0,(n[(KF()|0)+24>>2]|0)+(s*12|0)|0}function OFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,d=oG(IR[f&15](s,d)|0)|0,C=m,d|0}function UFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_Fe(s,c,d,0),C=f}function _Fe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=VF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=HFe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,qFe(m,f)|0,f),C=d}function VF(){var s=0,l=0;if(o[7848]|0||(t9(10136),ir(49,10136,U|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10136)|0)){s=10136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t9(10136)}return 10136}function HFe(s){return s=s|0,0}function qFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=VF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],e9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(jFe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function e9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function jFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=GFe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,YFe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],e9(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,WFe(s,k),KFe(k),C=O;return}}function GFe(s){return s=s|0,357913941}function YFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function WFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function KFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function t9(s){s=s|0,JFe(s)}function VFe(s){s=s|0,zFe(s+24|0)}function zFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function JFe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,9,l,XFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function XFe(){return 1372}function ZFe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=$Fe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],eRe(l,d,c),C=f}function $Fe(s){return s=s|0,(n[(VF()|0)+24>>2]|0)+(s*12|0)|0}function eRe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=Xe;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),tRe(d,c),B=y(rRe(d,c)),g7[f&1](s,B),C=m}function tRe(s,l){s=s|0,l=+l}function rRe(s,l){return s=s|0,l=+l,y(nRe(l))}function nRe(s){return s=+s,y(s)}function iRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sRe(s,c,d,0),C=f}function sRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=zF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=oRe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,aRe(m,f)|0,f),C=d}function zF(){var s=0,l=0;if(o[7856]|0||(n9(10172),ir(50,10172,U|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10172)|0)){s=10172,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));n9(10172)}return 10172}function oRe(s){return s=s|0,0}function aRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=zF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],r9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lRe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function r9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cRe(s)|0,m>>>0>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,uRe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],r9(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,ARe(s,k),fRe(k),C=O;return}}function cRe(s){return s=s|0,357913941}function uRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ARe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function n9(s){s=s|0,gRe(s)}function pRe(s){s=s|0,hRe(s+24|0)}function hRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function gRe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,3,l,dRe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dRe(){return 1380}function mRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=yRe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],ERe(l,m,c,f),C=d}function yRe(s){return s=s|0,(n[(zF()|0)+24>>2]|0)+(s*12|0)|0}function ERe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,CRe(B,f),B=wRe(B,f)|0,vw[d&15](s,m,B),C=k}function CRe(s,l){s=s|0,l=l|0}function wRe(s,l){return s=s|0,l=l|0,IRe(l)|0}function IRe(s){return s=s|0,(s|0)!=0|0}function BRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=JF()|0,s=vRe(c)|0,hn(m,l,d,s,DRe(c,f)|0,f)}function JF(){var s=0,l=0;if(o[7864]|0||(s9(10208),ir(51,10208,U|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10208)|0)){s=10208,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s9(10208)}return 10208}function vRe(s){return s=s|0,s|0}function DRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=JF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(i9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(PRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function i9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function PRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=bRe(s)|0,f>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,SRe(d,M>>3>>>0>>1>>>0?O>>>0>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,i9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,xRe(s,d),kRe(d),C=k;return}}function bRe(s){return s=s|0,536870911}function SRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function xRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function kRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function s9(s){s=s|0,RRe(s)}function QRe(s){s=s|0,FRe(s+24|0)}function FRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function RRe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,24,l,TRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function TRe(){return 1392}function NRe(s,l){s=s|0,l=l|0,MRe(n[(LRe(s)|0)>>2]|0,l)}function LRe(s){return s=s|0,(n[(JF()|0)+24>>2]|0)+(s<<3)|0}function MRe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,VG(f,l),l=zG(f,l)|0,ef[s&127](l),C=c}function ORe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=XF()|0,s=URe(c)|0,hn(m,l,d,s,_Re(c,f)|0,f)}function XF(){var s=0,l=0;if(o[7872]|0||(a9(10244),ir(52,10244,U|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10244)|0)){s=10244,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));a9(10244)}return 10244}function URe(s){return s=s|0,s|0}function _Re(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=XF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(o9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(HRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function o9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function HRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=qRe(s)|0,f>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,jRe(d,M>>3>>>0>>1>>>0?O>>>0>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,o9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,GRe(s,d),YRe(d),C=k;return}}function qRe(s){return s=s|0,536870911}function jRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function GRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function YRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function a9(s){s=s|0,VRe(s)}function WRe(s){s=s|0,KRe(s+24|0)}function KRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function VRe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,16,l,zRe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function zRe(){return 1400}function JRe(s){return s=s|0,ZRe(n[(XRe(s)|0)>>2]|0)|0}function XRe(s){return s=s|0,(n[(XF()|0)+24>>2]|0)+(s<<3)|0}function ZRe(s){return s=s|0,$Re(nD[s&7]()|0)|0}function $Re(s){return s=s|0,s|0}function eTe(){var s=0;return o[7880]|0||(aTe(10280),ir(25,10280,U|0)|0,s=7880,n[s>>2]=1,n[s+4>>2]=0),10280}function tTe(s,l){s=s|0,l=l|0,n[s>>2]=rTe()|0,n[s+4>>2]=nTe()|0,n[s+12>>2]=l,n[s+8>>2]=iTe()|0,n[s+32>>2]=4}function rTe(){return 11711}function nTe(){return 1356}function iTe(){return Gv()|0}function sTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Pp(f,896)|0)==512?c|0&&(oTe(c),gt(c)):l|0&&(w0(l),gt(l))}function oTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function aTe(s){s=s|0,Ip(s)}function lTe(s){s=s|0,cTe(s,4920),uTe(s)|0,ATe(s)|0}function cTe(s,l){s=s|0,l=l|0;var c=0;c=xG()|0,n[s>>2]=c,FTe(c,l),bp(n[s>>2]|0)}function uTe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,ITe()|0),s|0}function ATe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,fTe()|0),s|0}function fTe(){var s=0;return o[7888]|0||(l9(10328),ir(53,10328,U|0)|0,s=7888,n[s>>2]=1,n[s+4>>2]=0),Rr(10328)|0||l9(10328),10328}function P0(s,l){s=s|0,l=l|0,hn(s,0,l,0,0,0)}function l9(s){s=s|0,gTe(s),b0(s,10)}function pTe(s){s=s|0,hTe(s+24|0)}function hTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function gTe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,1,l,ETe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dTe(s,l,c){s=s|0,l=l|0,c=+c,mTe(s,l,c)}function b0(s,l){s=s|0,l=l|0,n[s+20>>2]=l}function mTe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,m=f+8|0,k=f+13|0,d=f,B=f+12|0,XA(k,l),n[m>>2]=ZA(k,l)|0,Fu(B,c),E[d>>3]=+Ru(B,c),yTe(s,m,d),C=f}function yTe(s,l,c){s=s|0,l=l|0,c=c|0,W(s+8|0,n[l>>2]|0,+E[c>>3]),o[s+24>>0]=1}function ETe(){return 1404}function CTe(s,l){return s=s|0,l=+l,wTe(s,l)|0}function wTe(s,l){s=s|0,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+16|0,m=f+4|0,B=f+8|0,k=f,d=Va(8)|0,c=d,Q=Kt(16)|0,XA(m,s),s=ZA(m,s)|0,Fu(B,l),W(Q,s,+Ru(B,l)),B=c+4|0,n[B>>2]=Q,s=Kt(8)|0,B=n[B>>2]|0,n[k>>2]=0,n[m>>2]=n[k>>2],LF(s,B,m),n[d>>2]=s,C=f,c|0}function ITe(){var s=0;return o[7896]|0||(c9(10364),ir(54,10364,U|0)|0,s=7896,n[s>>2]=1,n[s+4>>2]=0),Rr(10364)|0||c9(10364),10364}function c9(s){s=s|0,DTe(s),b0(s,55)}function BTe(s){s=s|0,vTe(s+24|0)}function vTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function DTe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,4,l,xTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function PTe(s){s=s|0,bTe(s)}function bTe(s){s=s|0,STe(s)}function STe(s){s=s|0,u9(s+8|0),o[s+24>>0]=1}function u9(s){s=s|0,n[s>>2]=0,E[s+8>>3]=0}function xTe(){return 1424}function kTe(){return QTe()|0}function QTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Va(8)|0,s=c,f=Kt(16)|0,u9(f),m=s+4|0,n[m>>2]=f,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],LF(f,m,d),n[c>>2]=f,C=l,s|0}function FTe(s,l){s=s|0,l=l|0,n[s>>2]=RTe()|0,n[s+4>>2]=TTe()|0,n[s+12>>2]=l,n[s+8>>2]=NTe()|0,n[s+32>>2]=5}function RTe(){return 11710}function TTe(){return 1416}function NTe(){return Yv()|0}function LTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Pp(f,896)|0)==512?c|0&&(MTe(c),gt(c)):l|0&>(l)}function MTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function Yv(){var s=0;return o[7904]|0||(n[2600]=OTe()|0,n[2601]=0,s=7904,n[s>>2]=1,n[s+4>>2]=0),10400}function OTe(){return n[357]|0}function UTe(s){s=s|0,_Te(s,4926),HTe(s)|0}function _Te(s,l){s=s|0,l=l|0;var c=0;c=Z5()|0,n[s>>2]=c,ZTe(c,l),bp(n[s>>2]|0)}function HTe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,qTe()|0),s|0}function qTe(){var s=0;return o[7912]|0||(A9(10412),ir(56,10412,U|0)|0,s=7912,n[s>>2]=1,n[s+4>>2]=0),Rr(10412)|0||A9(10412),10412}function A9(s){s=s|0,YTe(s),b0(s,57)}function jTe(s){s=s|0,GTe(s+24|0)}function GTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function YTe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,5,l,zTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function WTe(s){s=s|0,KTe(s)}function KTe(s){s=s|0,VTe(s)}function VTe(s){s=s|0;var l=0,c=0;l=s+8|0,c=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(c|0));o[s+56>>0]=1}function zTe(){return 1432}function JTe(){return XTe()|0}function XTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0;B=C,C=C+16|0,s=B+4|0,l=B,c=Va(8)|0,f=c,d=Kt(48)|0,m=d,k=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(k|0));return m=f+4|0,n[m>>2]=d,k=Kt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[s>>2]=n[l>>2],$5(k,m,s),n[c>>2]=k,C=B,f|0}function ZTe(s,l){s=s|0,l=l|0,n[s>>2]=$Te()|0,n[s+4>>2]=eNe()|0,n[s+12>>2]=l,n[s+8>>2]=tNe()|0,n[s+32>>2]=6}function $Te(){return 11704}function eNe(){return 1436}function tNe(){return Yv()|0}function rNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Pp(f,896)|0)==512?c|0&&(nNe(c),gt(c)):l|0&>(l)}function nNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function iNe(s){s=s|0,sNe(s,4933),oNe(s)|0,aNe(s)|0}function sNe(s,l){s=s|0,l=l|0;var c=0;c=QNe()|0,n[s>>2]=c,FNe(c,l),bp(n[s>>2]|0)}function oNe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,wNe()|0),s|0}function aNe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,lNe()|0),s|0}function lNe(){var s=0;return o[7920]|0||(f9(10452),ir(58,10452,U|0)|0,s=7920,n[s>>2]=1,n[s+4>>2]=0),Rr(10452)|0||f9(10452),10452}function f9(s){s=s|0,ANe(s),b0(s,1)}function cNe(s){s=s|0,uNe(s+24|0)}function uNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function ANe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,1,l,gNe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function fNe(s,l,c){s=s|0,l=+l,c=+c,pNe(s,l,c)}function pNe(s,l,c){s=s|0,l=+l,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,m=f+8|0,k=f+17|0,d=f,B=f+16|0,Fu(k,l),E[m>>3]=+Ru(k,l),Fu(B,c),E[d>>3]=+Ru(B,c),hNe(s,m,d),C=f}function hNe(s,l,c){s=s|0,l=l|0,c=c|0,p9(s+8|0,+E[l>>3],+E[c>>3]),o[s+24>>0]=1}function p9(s,l,c){s=s|0,l=+l,c=+c,E[s>>3]=l,E[s+8>>3]=c}function gNe(){return 1472}function dNe(s,l){return s=+s,l=+l,mNe(s,l)|0}function mNe(s,l){s=+s,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+16|0,B=f+4|0,k=f+8|0,Q=f,d=Va(8)|0,c=d,m=Kt(16)|0,Fu(B,s),s=+Ru(B,s),Fu(k,l),p9(m,s,+Ru(k,l)),k=c+4|0,n[k>>2]=m,m=Kt(8)|0,k=n[k>>2]|0,n[Q>>2]=0,n[B>>2]=n[Q>>2],h9(m,k,B),n[d>>2]=m,C=f,c|0}function h9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1452,n[c+12>>2]=l,n[s+4>>2]=c}function yNe(s){s=s|0,Md(s),gt(s)}function ENe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function CNe(s){s=s|0,gt(s)}function wNe(){var s=0;return o[7928]|0||(g9(10488),ir(59,10488,U|0)|0,s=7928,n[s>>2]=1,n[s+4>>2]=0),Rr(10488)|0||g9(10488),10488}function g9(s){s=s|0,vNe(s),b0(s,60)}function INe(s){s=s|0,BNe(s+24|0)}function BNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function vNe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,6,l,SNe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function DNe(s){s=s|0,PNe(s)}function PNe(s){s=s|0,bNe(s)}function bNe(s){s=s|0,d9(s+8|0),o[s+24>>0]=1}function d9(s){s=s|0,n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0}function SNe(){return 1492}function xNe(){return kNe()|0}function kNe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Va(8)|0,s=c,f=Kt(16)|0,d9(f),m=s+4|0,n[m>>2]=f,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],h9(f,m,d),n[c>>2]=f,C=l,s|0}function QNe(){var s=0;return o[7936]|0||(ONe(10524),ir(25,10524,U|0)|0,s=7936,n[s>>2]=1,n[s+4>>2]=0),10524}function FNe(s,l){s=s|0,l=l|0,n[s>>2]=RNe()|0,n[s+4>>2]=TNe()|0,n[s+12>>2]=l,n[s+8>>2]=NNe()|0,n[s+32>>2]=7}function RNe(){return 11700}function TNe(){return 1484}function NNe(){return Yv()|0}function LNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Pp(f,896)|0)==512?c|0&&(MNe(c),gt(c)):l|0&>(l)}function MNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function ONe(s){s=s|0,Ip(s)}function UNe(s,l,c){s=s|0,l=l|0,c=c|0,s=pn(l)|0,l=_Ne(c)|0,c=HNe(c,0)|0,mLe(s,l,c,ZF()|0,0)}function _Ne(s){return s=s|0,s|0}function HNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=ZF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(y9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(VNe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function ZF(){var s=0,l=0;if(o[7944]|0||(m9(10568),ir(61,10568,U|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10568)|0)){s=10568,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));m9(10568)}return 10568}function m9(s){s=s|0,GNe(s)}function qNe(s){s=s|0,jNe(s+24|0)}function jNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function GNe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,17,l,dG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function YNe(s){return s=s|0,KNe(n[(WNe(s)|0)>>2]|0)|0}function WNe(s){return s=s|0,(n[(ZF()|0)+24>>2]|0)+(s<<3)|0}function KNe(s){return s=s|0,jv(nD[s&7]()|0)|0}function y9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function VNe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=zNe(s)|0,f>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,JNe(d,M>>3>>>0>>1>>>0?O>>>0>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,y9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,XNe(s,d),ZNe(d),C=k;return}}function zNe(s){return s=s|0,536870911}function JNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function XNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function ZNe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function $Ne(){eLe()}function eLe(){tLe(10604)}function tLe(s){s=s|0,rLe(s,4955)}function rLe(s,l){s=s|0,l=l|0;var c=0;c=nLe()|0,n[s>>2]=c,iLe(c,l),bp(n[s>>2]|0)}function nLe(){var s=0;return o[7952]|0||(pLe(10612),ir(25,10612,U|0)|0,s=7952,n[s>>2]=1,n[s+4>>2]=0),10612}function iLe(s,l){s=s|0,l=l|0,n[s>>2]=lLe()|0,n[s+4>>2]=cLe()|0,n[s+12>>2]=l,n[s+8>>2]=uLe()|0,n[s+32>>2]=8}function bp(s){s=s|0;var l=0,c=0;l=C,C=C+16|0,c=l,Fd()|0,n[c>>2]=s,sLe(10608,c),C=l}function Fd(){return o[11714]|0||(n[2652]=0,ir(62,10608,U|0)|0,o[11714]=1),10608}function sLe(s,l){s=s|0,l=l|0;var c=0;c=Kt(8)|0,n[c+4>>2]=n[l>>2],n[c>>2]=n[s>>2],n[s>>2]=c}function oLe(s){s=s|0,aLe(s)}function aLe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while(l|0);n[s>>2]=0}function lLe(){return 11715}function cLe(){return 1496}function uLe(){return Gv()|0}function ALe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Pp(f,896)|0)==512?c|0&&(fLe(c),gt(c)):l|0&>(l)}function fLe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function pLe(s){s=s|0,Ip(s)}function hLe(s,l){s=s|0,l=l|0;var c=0,f=0;Fd()|0,c=n[2652]|0;e:do if(c|0){for(;f=n[c+4>>2]|0,!(f|0&&!($9($F(f)|0,s)|0));)if(c=n[c>>2]|0,!c)break e;gLe(f,l)}while(!1)}function $F(s){return s=s|0,n[s+12>>2]|0}function gLe(s,l){s=s|0,l=l|0;var c=0;s=s+36|0,c=n[s>>2]|0,c|0&&(qA(c),gt(c)),c=Kt(4)|0,W5(c,l),n[s>>2]=c}function eR(){return o[11716]|0||(n[2664]=0,ir(63,10656,U|0)|0,o[11716]=1),10656}function E9(){var s=0;return o[11717]|0?s=n[2665]|0:(dLe(),n[2665]=1504,o[11717]=1,s=1504),s|0}function dLe(){o[11740]|0||(o[11718]=gr(gr(8,0)|0,0)|0,o[11719]=gr(gr(0,0)|0,0)|0,o[11720]=gr(gr(0,16)|0,0)|0,o[11721]=gr(gr(8,0)|0,0)|0,o[11722]=gr(gr(0,0)|0,0)|0,o[11723]=gr(gr(8,0)|0,0)|0,o[11724]=gr(gr(0,0)|0,0)|0,o[11725]=gr(gr(8,0)|0,0)|0,o[11726]=gr(gr(0,0)|0,0)|0,o[11727]=gr(gr(8,0)|0,0)|0,o[11728]=gr(gr(0,0)|0,0)|0,o[11729]=gr(gr(0,0)|0,32)|0,o[11730]=gr(gr(0,0)|0,32)|0,o[11740]=1)}function C9(){return 1572}function mLe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0,M=0;m=C,C=C+32|0,M=m+16|0,O=m+12|0,Q=m+8|0,k=m+4|0,B=m,n[M>>2]=s,n[O>>2]=l,n[Q>>2]=c,n[k>>2]=f,n[B>>2]=d,eR()|0,yLe(10656,M,O,Q,k,B),C=m}function yLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0;B=Kt(24)|0,z5(B+4|0,n[l>>2]|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[s>>2],n[s>>2]=B}function w9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0,lt=0;if(lt=C,C=C+32|0,Oe=lt+20|0,Qe=lt+8|0,$e=lt+4|0,Je=lt,l=n[l>>2]|0,l|0){je=Oe+4|0,Q=Oe+8|0,O=Qe+4|0,M=Qe+8|0,j=Qe+8|0,se=Oe+8|0;do{if(B=l+4|0,k=tR(B)|0,k|0){if(d=yw(k)|0,n[Oe>>2]=0,n[je>>2]=0,n[Q>>2]=0,f=(Ew(k)|0)+1|0,ELe(Oe,f),f|0)for(;f=f+-1|0,xc(Qe,n[d>>2]|0),m=n[je>>2]|0,m>>>0<(n[se>>2]|0)>>>0?(n[m>>2]=n[Qe>>2],n[je>>2]=(n[je>>2]|0)+4):rR(Oe,Qe),f;)d=d+4|0;f=Cw(k)|0,n[Qe>>2]=0,n[O>>2]=0,n[M>>2]=0;e:do if(n[f>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?CLe(Qe,f):(n[d>>2]=n[f>>2],n[O>>2]=(n[O>>2]|0)+4),f=f+4|0,!(n[f>>2]|0))break e;d=n[O>>2]|0,m=n[j>>2]|0}while(!1);n[$e>>2]=Wv(B)|0,n[Je>>2]=Rr(k)|0,wLe(c,s,$e,Je,Oe,Qe),nR(Qe),$A(Oe)}l=n[l>>2]|0}while(l|0)}C=lt}function tR(s){return s=s|0,n[s+12>>2]|0}function yw(s){return s=s|0,n[s+12>>2]|0}function Ew(s){return s=s|0,n[s+16>>2]|0}function ELe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=n[s>>2]|0,(n[s+8>>2]|0)-f>>2>>>0>>0&&(x9(c,l,(n[s+4>>2]|0)-f>>2,s+8|0),k9(s,c),Q9(c)),C=d}function rR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=S9(s)|0,m>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,Q=O>>1,x9(c,O>>2>>>0>>1>>>0?Q>>>0>>0?d:Q:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,k9(s,c),Q9(c),C=B;return}}function Cw(s){return s=s|0,n[s+8>>2]|0}function CLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=b9(s)|0,m>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,Q=O>>1,_Le(c,O>>2>>>0>>1>>>0?Q>>>0>>0?d:Q:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,HLe(s,c),qLe(c),C=B;return}}function Wv(s){return s=s|0,n[s>>2]|0}function wLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,ILe(s,l,c,f,d,m)}function nR(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function $A(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function ILe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,O=0,M=0,j=0;B=C,C=C+48|0,M=B+40|0,k=B+32|0,j=B+24|0,Q=B+12|0,O=B,za(k),s=ya(s)|0,n[j>>2]=n[l>>2],c=n[c>>2]|0,f=n[f>>2]|0,iR(Q,d),BLe(O,m),n[M>>2]=n[j>>2],vLe(s,M,c,f,Q,O),nR(O),$A(Q),Ja(k),C=B}function iR(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(OLe(s,f),ULe(s,n[l>>2]|0,n[c>>2]|0,f))}function BLe(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(LLe(s,f),MLe(s,n[l>>2]|0,n[c>>2]|0,f))}function vLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,O=0,M=0,j=0;B=C,C=C+32|0,M=B+28|0,j=B+24|0,k=B+12|0,Q=B,O=Pl(DLe()|0)|0,n[j>>2]=n[l>>2],n[M>>2]=n[j>>2],l=S0(M)|0,c=I9(c)|0,f=sR(f)|0,n[k>>2]=n[d>>2],M=d+4|0,n[k+4>>2]=n[M>>2],j=d+8|0,n[k+8>>2]=n[j>>2],n[j>>2]=0,n[M>>2]=0,n[d>>2]=0,d=oR(k)|0,n[Q>>2]=n[m>>2],M=m+4|0,n[Q+4>>2]=n[M>>2],j=m+8|0,n[Q+8>>2]=n[j>>2],n[j>>2]=0,n[M>>2]=0,n[m>>2]=0,ao(0,O|0,s|0,l|0,c|0,f|0,d|0,PLe(Q)|0)|0,nR(Q),$A(k),C=B}function DLe(){var s=0;return o[7968]|0||(TLe(10708),s=7968,n[s>>2]=1,n[s+4>>2]=0),10708}function S0(s){return s=s|0,v9(s)|0}function I9(s){return s=s|0,B9(s)|0}function sR(s){return s=s|0,jv(s)|0}function oR(s){return s=s|0,SLe(s)|0}function PLe(s){return s=s|0,bLe(s)|0}function bLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Va(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=B9(n[(n[s>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function B9(s){return s=s|0,s|0}function SLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Va(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=v9((n[s>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function v9(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=yF(D9()|0)|0,f?(EF(l,f),CF(c,l),uUe(s,c),s=wF(l)|0):s=xLe(s)|0,C=d,s|0}function D9(){var s=0;return o[7960]|0||(RLe(10664),ir(25,10664,U|0)|0,s=7960,n[s>>2]=1,n[s+4>>2]=0),10664}function xLe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Va(8)|0,l=f,k=Kt(4)|0,n[k>>2]=n[s>>2],m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],P9(s,m,d),n[f>>2]=s,C=c,l|0}function P9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1656,n[c+12>>2]=l,n[s+4>>2]=c}function kLe(s){s=s|0,Md(s),gt(s)}function QLe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function FLe(s){s=s|0,gt(s)}function RLe(s){s=s|0,Ip(s)}function TLe(s){s=s|0,bl(s,NLe()|0,5)}function NLe(){return 1676}function LLe(s,l){s=s|0,l=l|0;var c=0;if((b9(s)|0)>>>0>>0&&Jr(s),l>>>0>1073741823)Tt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function MLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function b9(s){return s=s|0,1073741823}function OLe(s,l){s=s|0,l=l|0;var c=0;if((S9(s)|0)>>>0>>0&&Jr(s),l>>>0>1073741823)Tt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function ULe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function S9(s){return s=s|0,1073741823}function _Le(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function HLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function qLe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function x9(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function k9(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Q9(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function jLe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0;if(Qe=C,C=C+32|0,M=Qe+20|0,j=Qe+12|0,O=Qe+16|0,se=Qe+4|0,je=Qe,Oe=Qe+8|0,k=E9()|0,m=n[k>>2]|0,B=n[m>>2]|0,B|0)for(Q=n[k+8>>2]|0,k=n[k+4>>2]|0;xc(M,B),GLe(s,M,k,Q),m=m+4|0,B=n[m>>2]|0,B;)Q=Q+1|0,k=k+1|0;if(m=C9()|0,B=n[m>>2]|0,B|0)do xc(M,B),n[j>>2]=n[m+4>>2],YLe(l,M,j),m=m+8|0,B=n[m>>2]|0;while(B|0);if(m=n[(Fd()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,xc(M,n[(Rd(l)|0)>>2]|0),n[j>>2]=$F(l)|0,WLe(c,M,j),m=n[m>>2]|0;while(m|0);if(xc(O,0),m=eR()|0,n[M>>2]=n[O>>2],w9(M,m,d),m=n[(Fd()|0)>>2]|0,m|0){s=M+4|0,l=M+8|0,c=M+8|0;do{if(Q=n[m+4>>2]|0,xc(j,n[(Rd(Q)|0)>>2]|0),KLe(se,F9(Q)|0),B=n[se>>2]|0,B|0){n[M>>2]=0,n[s>>2]=0,n[l>>2]=0;do xc(je,n[(Rd(n[B+4>>2]|0)|0)>>2]|0),k=n[s>>2]|0,k>>>0<(n[c>>2]|0)>>>0?(n[k>>2]=n[je>>2],n[s>>2]=(n[s>>2]|0)+4):rR(M,je),B=n[B>>2]|0;while(B|0);VLe(f,j,M),$A(M)}n[Oe>>2]=n[j>>2],O=R9(Q)|0,n[M>>2]=n[Oe>>2],w9(M,O,d),tG(se),m=n[m>>2]|0}while(m|0)}C=Qe}function GLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,oMe(s,l,c,f)}function YLe(s,l,c){s=s|0,l=l|0,c=c|0,sMe(s,l,c)}function Rd(s){return s=s|0,s|0}function WLe(s,l,c){s=s|0,l=l|0,c=c|0,tMe(s,l,c)}function F9(s){return s=s|0,s+16|0}function KLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;if(m=C,C=C+16|0,d=m+8|0,c=m,n[s>>2]=0,f=n[l>>2]|0,n[d>>2]=f,n[c>>2]=s,c=eMe(c)|0,f|0){if(f=Kt(12)|0,B=(T9(d)|0)+4|0,s=n[B+4>>2]|0,l=f+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=s,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)s=f;else for(l=f;s=Kt(12)|0,Q=(T9(d)|0)+4|0,k=n[Q+4>>2]|0,B=s+4|0,n[B>>2]=n[Q>>2],n[B+4>>2]=k,n[l>>2]=s,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=s;n[s>>2]=n[c>>2],n[c>>2]=f}C=m}function VLe(s,l,c){s=s|0,l=l|0,c=c|0,zLe(s,l,c)}function R9(s){return s=s|0,s+24|0}function zLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+24|0,d=f+16|0,k=f+12|0,m=f,za(d),s=ya(s)|0,n[k>>2]=n[l>>2],iR(m,c),n[B>>2]=n[k>>2],JLe(s,B,m),$A(m),Ja(d),C=f}function JLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+16|0,k=f+12|0,d=f,m=Pl(XLe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=S0(B)|0,n[d>>2]=n[c>>2],B=c+4|0,n[d+4>>2]=n[B>>2],k=c+8|0,n[d+8>>2]=n[k>>2],n[k>>2]=0,n[B>>2]=0,n[c>>2]=0,oo(0,m|0,s|0,l|0,oR(d)|0)|0,$A(d),C=f}function XLe(){var s=0;return o[7976]|0||(ZLe(10720),s=7976,n[s>>2]=1,n[s+4>>2]=0),10720}function ZLe(s){s=s|0,bl(s,$Le()|0,2)}function $Le(){return 1732}function eMe(s){return s=s|0,n[s>>2]|0}function T9(s){return s=s|0,n[s>>2]|0}function tMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,za(d),s=ya(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],N9(s,m,c),Ja(d),C=f}function N9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+4|0,B=f,d=Pl(rMe()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=S0(m)|0,oo(0,d|0,s|0,l|0,I9(c)|0)|0,C=f}function rMe(){var s=0;return o[7984]|0||(nMe(10732),s=7984,n[s>>2]=1,n[s+4>>2]=0),10732}function nMe(s){s=s|0,bl(s,iMe()|0,2)}function iMe(){return 1744}function sMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,za(d),s=ya(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],N9(s,m,c),Ja(d),C=f}function oMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,za(m),s=ya(s)|0,n[k>>2]=n[l>>2],c=o[c>>0]|0,f=o[f>>0]|0,n[B>>2]=n[k>>2],aMe(s,B,c,f),Ja(m),C=d}function aMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,B=d+4|0,k=d,m=Pl(lMe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=S0(B)|0,c=Td(c)|0,hc(0,m|0,s|0,l|0,c|0,Td(f)|0)|0,C=d}function lMe(){var s=0;return o[7992]|0||(uMe(10744),s=7992,n[s>>2]=1,n[s+4>>2]=0),10744}function Td(s){return s=s|0,cMe(s)|0}function cMe(s){return s=s|0,s&255|0}function uMe(s){s=s|0,bl(s,AMe()|0,3)}function AMe(){return 1756}function fMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;switch(se=C,C=C+32|0,k=se+8|0,Q=se+4|0,O=se+20|0,M=se,DF(s,0),f=cUe(l)|0,n[k>>2]=0,j=k+4|0,n[j>>2]=0,n[k+8>>2]=0,f<<24>>24){case 0:{o[O>>0]=0,pMe(Q,c,O),Kv(s,Q)|0,jA(Q);break}case 8:{j=fR(l)|0,o[O>>0]=8,xc(M,n[j+4>>2]|0),hMe(Q,c,O,M,j+8|0),Kv(s,Q)|0,jA(Q);break}case 9:{if(m=fR(l)|0,l=n[m+4>>2]|0,l|0)for(B=k+8|0,d=m+12|0;l=l+-1|0,xc(Q,n[d>>2]|0),f=n[j>>2]|0,f>>>0<(n[B>>2]|0)>>>0?(n[f>>2]=n[Q>>2],n[j>>2]=(n[j>>2]|0)+4):rR(k,Q),l;)d=d+4|0;o[O>>0]=9,xc(M,n[m+8>>2]|0),gMe(Q,c,O,M,k),Kv(s,Q)|0,jA(Q);break}default:j=fR(l)|0,o[O>>0]=f,xc(M,n[j+4>>2]|0),dMe(Q,c,O,M),Kv(s,Q)|0,jA(Q)}$A(k),C=se}function pMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,za(d),l=ya(l)|0,xMe(s,l,o[c>>0]|0),Ja(d),C=f}function Kv(s,l){s=s|0,l=l|0;var c=0;return c=n[s>>2]|0,c|0&&PA(c|0),n[s>>2]=n[l>>2],n[l>>2]=0,s|0}function hMe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+32|0,k=m+16|0,B=m+8|0,Q=m,za(B),l=ya(l)|0,c=o[c>>0]|0,n[Q>>2]=n[f>>2],d=n[d>>2]|0,n[k>>2]=n[Q>>2],DMe(s,l,c,k,d),Ja(B),C=m}function gMe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0;m=C,C=C+32|0,Q=m+24|0,B=m+16|0,O=m+12|0,k=m,za(B),l=ya(l)|0,c=o[c>>0]|0,n[O>>2]=n[f>>2],iR(k,d),n[Q>>2]=n[O>>2],wMe(s,l,c,Q,k),$A(k),Ja(B),C=m}function dMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,za(m),l=ya(l)|0,c=o[c>>0]|0,n[k>>2]=n[f>>2],n[B>>2]=n[k>>2],mMe(s,l,c,B),Ja(m),C=d}function mMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+4|0,k=d,B=Pl(yMe()|0)|0,c=Td(c)|0,n[k>>2]=n[f>>2],n[m>>2]=n[k>>2],Vv(s,oo(0,B|0,l|0,c|0,S0(m)|0)|0),C=d}function yMe(){var s=0;return o[8e3]|0||(EMe(10756),s=8e3,n[s>>2]=1,n[s+4>>2]=0),10756}function Vv(s,l){s=s|0,l=l|0,DF(s,l)}function EMe(s){s=s|0,bl(s,CMe()|0,2)}function CMe(){return 1772}function wMe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0;m=C,C=C+32|0,Q=m+16|0,O=m+12|0,B=m,k=Pl(IMe()|0)|0,c=Td(c)|0,n[O>>2]=n[f>>2],n[Q>>2]=n[O>>2],f=S0(Q)|0,n[B>>2]=n[d>>2],Q=d+4|0,n[B+4>>2]=n[Q>>2],O=d+8|0,n[B+8>>2]=n[O>>2],n[O>>2]=0,n[Q>>2]=0,n[d>>2]=0,Vv(s,hc(0,k|0,l|0,c|0,f|0,oR(B)|0)|0),$A(B),C=m}function IMe(){var s=0;return o[8008]|0||(BMe(10768),s=8008,n[s>>2]=1,n[s+4>>2]=0),10768}function BMe(s){s=s|0,bl(s,vMe()|0,3)}function vMe(){return 1784}function DMe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+16|0,k=m+4|0,Q=m,B=Pl(PMe()|0)|0,c=Td(c)|0,n[Q>>2]=n[f>>2],n[k>>2]=n[Q>>2],f=S0(k)|0,Vv(s,hc(0,B|0,l|0,c|0,f|0,sR(d)|0)|0),C=m}function PMe(){var s=0;return o[8016]|0||(bMe(10780),s=8016,n[s>>2]=1,n[s+4>>2]=0),10780}function bMe(s){s=s|0,bl(s,SMe()|0,3)}function SMe(){return 1800}function xMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=Pl(kMe()|0)|0,Vv(s,Qn(0,f|0,l|0,Td(c)|0)|0)}function kMe(){var s=0;return o[8024]|0||(QMe(10792),s=8024,n[s>>2]=1,n[s+4>>2]=0),10792}function QMe(s){s=s|0,bl(s,FMe()|0,1)}function FMe(){return 1816}function RMe(){TMe(),NMe(),LMe()}function TMe(){n[2702]=c7(65536)|0}function NMe(){rOe(10856)}function LMe(){MMe(10816)}function MMe(s){s=s|0,OMe(s,5044),UMe(s)|0}function OMe(s,l){s=s|0,l=l|0;var c=0;c=D9()|0,n[s>>2]=c,JMe(c,l),bp(n[s>>2]|0)}function UMe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,_Me()|0),s|0}function _Me(){var s=0;return o[8032]|0||(L9(10820),ir(64,10820,U|0)|0,s=8032,n[s>>2]=1,n[s+4>>2]=0),Rr(10820)|0||L9(10820),10820}function L9(s){s=s|0,jMe(s),b0(s,25)}function HMe(s){s=s|0,qMe(s+24|0)}function qMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function jMe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,18,l,KMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function GMe(s,l){s=s|0,l=l|0,YMe(s,l)}function YMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;c=C,C=C+16|0,f=c,d=c+4|0,v0(d,l),n[f>>2]=D0(d,l)|0,WMe(s,f),C=c}function WMe(s,l){s=s|0,l=l|0,M9(s+4|0,n[l>>2]|0),o[s+8>>0]=1}function M9(s,l){s=s|0,l=l|0,n[s>>2]=l}function KMe(){return 1824}function VMe(s){return s=s|0,zMe(s)|0}function zMe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Va(8)|0,l=f,k=Kt(4)|0,v0(d,s),M9(k,D0(d,s)|0),m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],P9(s,m,d),n[f>>2]=s,C=c,l|0}function Va(s){s=s|0;var l=0,c=0;return s=s+7&-8,s>>>0<=32768&&(l=n[2701]|0,s>>>0<=(65536-l|0)>>>0)?(c=(n[2702]|0)+l|0,n[2701]=l+s,s=c):(s=c7(s+8|0)|0,n[s>>2]=n[2703],n[2703]=s,s=s+8|0),s|0}function JMe(s,l){s=s|0,l=l|0,n[s>>2]=XMe()|0,n[s+4>>2]=ZMe()|0,n[s+12>>2]=l,n[s+8>>2]=$Me()|0,n[s+32>>2]=9}function XMe(){return 11744}function ZMe(){return 1832}function $Me(){return Yv()|0}function eOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Pp(f,896)|0)==512?c|0&&(tOe(c),gt(c)):l|0&>(l)}function tOe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function rOe(s){s=s|0,nOe(s,5052),iOe(s)|0,sOe(s,5058,26)|0,oOe(s,5069,1)|0,aOe(s,5077,10)|0,lOe(s,5087,19)|0,cOe(s,5094,27)|0}function nOe(s,l){s=s|0,l=l|0;var c=0;c=tUe()|0,n[s>>2]=c,rUe(c,l),bp(n[s>>2]|0)}function iOe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,H4e()|0),s|0}function sOe(s,l,c){return s=s|0,l=l|0,c=c|0,B4e(s,pn(l)|0,c,0),s|0}function oOe(s,l,c){return s=s|0,l=l|0,c=c|0,l4e(s,pn(l)|0,c,0),s|0}function aOe(s,l,c){return s=s|0,l=l|0,c=c|0,_Oe(s,pn(l)|0,c,0),s|0}function lOe(s,l,c){return s=s|0,l=l|0,c=c|0,DOe(s,pn(l)|0,c,0),s|0}function O9(s,l){s=s|0,l=l|0;var c=0,f=0;e:for(;;){for(c=n[2703]|0;;){if((c|0)==(l|0))break e;if(f=n[c>>2]|0,n[2703]=f,!c)c=f;else break}gt(c)}n[2701]=s}function cOe(s,l,c){return s=s|0,l=l|0,c=c|0,uOe(s,pn(l)|0,c,0),s|0}function uOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=aR()|0,s=AOe(c)|0,hn(m,l,d,s,fOe(c,f)|0,f)}function aR(){var s=0,l=0;if(o[8040]|0||(_9(10860),ir(65,10860,U|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10860)|0)){s=10860,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));_9(10860)}return 10860}function AOe(s){return s=s|0,s|0}function fOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=aR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(U9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(pOe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function U9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function pOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=hOe(s)|0,f>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,gOe(d,M>>3>>>0>>1>>>0?O>>>0>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,U9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,dOe(s,d),mOe(d),C=k;return}}function hOe(s){return s=s|0,536870911}function gOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function dOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function mOe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function _9(s){s=s|0,COe(s)}function yOe(s){s=s|0,EOe(s+24|0)}function EOe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function COe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,11,l,wOe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function wOe(){return 1840}function IOe(s,l,c){s=s|0,l=l|0,c=c|0,vOe(n[(BOe(s)|0)>>2]|0,l,c)}function BOe(s){return s=s|0,(n[(aR()|0)+24>>2]|0)+(s<<3)|0}function vOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+1|0,d=f,v0(m,l),l=D0(m,l)|0,v0(d,c),c=D0(d,c)|0,tf[s&31](l,c),C=f}function DOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=lR()|0,s=POe(c)|0,hn(m,l,d,s,bOe(c,f)|0,f)}function lR(){var s=0,l=0;if(o[8048]|0||(q9(10896),ir(66,10896,U|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10896)|0)){s=10896,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));q9(10896)}return 10896}function POe(s){return s=s|0,s|0}function bOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=lR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(H9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(SOe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function H9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function SOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=xOe(s)|0,f>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,kOe(d,M>>3>>>0>>1>>>0?O>>>0>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,H9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,QOe(s,d),FOe(d),C=k;return}}function xOe(s){return s=s|0,536870911}function kOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function QOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function FOe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function q9(s){s=s|0,NOe(s)}function ROe(s){s=s|0,TOe(s+24|0)}function TOe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function NOe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,11,l,LOe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function LOe(){return 1852}function MOe(s,l){return s=s|0,l=l|0,UOe(n[(OOe(s)|0)>>2]|0,l)|0}function OOe(s){return s=s|0,(n[(lR()|0)+24>>2]|0)+(s<<3)|0}function UOe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,v0(f,l),l=D0(f,l)|0,l=jv(F0[s&31](l)|0)|0,C=c,l|0}function _Oe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=cR()|0,s=HOe(c)|0,hn(m,l,d,s,qOe(c,f)|0,f)}function cR(){var s=0,l=0;if(o[8056]|0||(G9(10932),ir(67,10932,U|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10932)|0)){s=10932,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));G9(10932)}return 10932}function HOe(s){return s=s|0,s|0}function qOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=cR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(j9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(jOe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function j9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function jOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=GOe(s)|0,f>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,YOe(d,M>>3>>>0>>1>>>0?O>>>0>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,j9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,WOe(s,d),KOe(d),C=k;return}}function GOe(s){return s=s|0,536870911}function YOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function WOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function KOe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function G9(s){s=s|0,JOe(s)}function VOe(s){s=s|0,zOe(s+24|0)}function zOe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function JOe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,7,l,XOe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function XOe(){return 1860}function ZOe(s,l,c){return s=s|0,l=l|0,c=c|0,e4e(n[($Oe(s)|0)>>2]|0,l,c)|0}function $Oe(s){return s=s|0,(n[(cR()|0)+24>>2]|0)+(s<<3)|0}function e4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+32|0,B=f+12|0,m=f+8|0,k=f,Q=f+16|0,d=f+4|0,t4e(Q,l),r4e(k,Q,l),Bp(d,c),c=vp(d,c)|0,n[B>>2]=n[k>>2],vw[s&15](m,B,c),c=n4e(m)|0,jA(m),Dp(d),C=f,c|0}function t4e(s,l){s=s|0,l=l|0}function r4e(s,l,c){s=s|0,l=l|0,c=c|0,i4e(s,c)}function n4e(s){return s=s|0,ya(s)|0}function i4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+16|0,c=d,f=l,f&1?(s4e(c,0),ii(f|0,c|0)|0,o4e(s,c),a4e(c)):n[s>>2]=n[l>>2],C=d}function s4e(s,l){s=s|0,l=l|0,K5(s,l),n[s+4>>2]=0,o[s+8>>0]=0}function o4e(s,l){s=s|0,l=l|0,n[s>>2]=n[l+4>>2]}function a4e(s){s=s|0,o[s+8>>0]=0}function l4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=uR()|0,s=c4e(c)|0,hn(m,l,d,s,u4e(c,f)|0,f)}function uR(){var s=0,l=0;if(o[8064]|0||(W9(10968),ir(68,10968,U|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10968)|0)){s=10968,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));W9(10968)}return 10968}function c4e(s){return s=s|0,s|0}function u4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=uR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(Y9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(A4e(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function Y9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function A4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=f4e(s)|0,f>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,p4e(d,M>>3>>>0>>1>>>0?O>>>0>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,Y9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,h4e(s,d),g4e(d),C=k;return}}function f4e(s){return s=s|0,536870911}function p4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function h4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function g4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function W9(s){s=s|0,y4e(s)}function d4e(s){s=s|0,m4e(s+24|0)}function m4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function y4e(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,1,l,E4e()|0,5),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function E4e(){return 1872}function C4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,I4e(n[(w4e(s)|0)>>2]|0,l,c,f,d,m)}function w4e(s){return s=s|0,(n[(uR()|0)+24>>2]|0)+(s<<3)|0}function I4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,O=0,M=0,j=0;B=C,C=C+32|0,k=B+16|0,Q=B+12|0,O=B+8|0,M=B+4|0,j=B,Bp(k,l),l=vp(k,l)|0,Bp(Q,c),c=vp(Q,c)|0,Bp(O,f),f=vp(O,f)|0,Bp(M,d),d=vp(M,d)|0,Bp(j,m),m=vp(j,m)|0,h7[s&1](l,c,f,d,m),Dp(j),Dp(M),Dp(O),Dp(Q),Dp(k),C=B}function B4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=AR()|0,s=v4e(c)|0,hn(m,l,d,s,D4e(c,f)|0,f)}function AR(){var s=0,l=0;if(o[8072]|0||(V9(11004),ir(69,11004,U|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(Rr(11004)|0)){s=11004,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));V9(11004)}return 11004}function v4e(s){return s=s|0,s|0}function D4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=AR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(K9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(P4e(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function K9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function P4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=b4e(s)|0,f>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,S4e(d,M>>3>>>0>>1>>>0?O>>>0>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,K9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,x4e(s,d),k4e(d),C=k;return}}function b4e(s){return s=s|0,536870911}function S4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function x4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function k4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function V9(s){s=s|0,R4e(s)}function Q4e(s){s=s|0,F4e(s+24|0)}function F4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function R4e(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,12,l,T4e()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function T4e(){return 1896}function N4e(s,l,c){s=s|0,l=l|0,c=c|0,M4e(n[(L4e(s)|0)>>2]|0,l,c)}function L4e(s){return s=s|0,(n[(AR()|0)+24>>2]|0)+(s<<3)|0}function M4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+4|0,d=f,O4e(m,l),l=U4e(m,l)|0,Bp(d,c),c=vp(d,c)|0,tf[s&31](l,c),Dp(d),C=f}function O4e(s,l){s=s|0,l=l|0}function U4e(s,l){return s=s|0,l=l|0,_4e(l)|0}function _4e(s){return s=s|0,s|0}function H4e(){var s=0;return o[8080]|0||(z9(11040),ir(70,11040,U|0)|0,s=8080,n[s>>2]=1,n[s+4>>2]=0),Rr(11040)|0||z9(11040),11040}function z9(s){s=s|0,G4e(s),b0(s,71)}function q4e(s){s=s|0,j4e(s+24|0)}function j4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function G4e(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,7,l,V4e()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Y4e(s){s=s|0,W4e(s)}function W4e(s){s=s|0,K4e(s)}function K4e(s){s=s|0,o[s+8>>0]=1}function V4e(){return 1936}function z4e(){return J4e()|0}function J4e(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Va(8)|0,s=c,m=s+4|0,n[m>>2]=Kt(1)|0,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],X4e(f,m,d),n[c>>2]=f,C=l,s|0}function X4e(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1916,n[c+12>>2]=l,n[s+4>>2]=c}function Z4e(s){s=s|0,Md(s),gt(s)}function $4e(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function eUe(s){s=s|0,gt(s)}function tUe(){var s=0;return o[8088]|0||(lUe(11076),ir(25,11076,U|0)|0,s=8088,n[s>>2]=1,n[s+4>>2]=0),11076}function rUe(s,l){s=s|0,l=l|0,n[s>>2]=nUe()|0,n[s+4>>2]=iUe()|0,n[s+12>>2]=l,n[s+8>>2]=sUe()|0,n[s+32>>2]=10}function nUe(){return 11745}function iUe(){return 1940}function sUe(){return Gv()|0}function oUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Pp(f,896)|0)==512?c|0&&(aUe(c),gt(c)):l|0&>(l)}function aUe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function lUe(s){s=s|0,Ip(s)}function xc(s,l){s=s|0,l=l|0,n[s>>2]=l}function fR(s){return s=s|0,n[s>>2]|0}function cUe(s){return s=s|0,o[n[s>>2]>>0]|0}function uUe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,n[f>>2]=n[s>>2],AUe(l,f)|0,C=c}function AUe(s,l){s=s|0,l=l|0;var c=0;return c=fUe(n[s>>2]|0,l)|0,l=s+4|0,n[(n[l>>2]|0)+8>>2]=c,n[(n[l>>2]|0)+8>>2]|0}function fUe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,za(f),s=ya(s)|0,l=pUe(s,n[l>>2]|0)|0,Ja(f),C=c,l|0}function za(s){s=s|0,n[s>>2]=n[2701],n[s+4>>2]=n[2703]}function pUe(s,l){s=s|0,l=l|0;var c=0;return c=Pl(hUe()|0)|0,Qn(0,c|0,s|0,sR(l)|0)|0}function Ja(s){s=s|0,O9(n[s>>2]|0,n[s+4>>2]|0)}function hUe(){var s=0;return o[8096]|0||(gUe(11120),s=8096,n[s>>2]=1,n[s+4>>2]=0),11120}function gUe(s){s=s|0,bl(s,dUe()|0,1)}function dUe(){return 1948}function mUe(){yUe()}function yUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0;if(Oe=C,C=C+16|0,M=Oe+4|0,j=Oe,Ti(65536,10804,n[2702]|0,10812),c=E9()|0,l=n[c>>2]|0,s=n[l>>2]|0,s|0)for(f=n[c+8>>2]|0,c=n[c+4>>2]|0;Ac(s|0,u[c>>0]|0|0,o[f>>0]|0),l=l+4|0,s=n[l>>2]|0,s;)f=f+1|0,c=c+1|0;if(s=C9()|0,l=n[s>>2]|0,l|0)do fu(l|0,n[s+4>>2]|0),s=s+8|0,l=n[s>>2]|0;while(l|0);fu(EUe()|0,5167),O=Fd()|0,s=n[O>>2]|0;e:do if(s|0){do CUe(n[s+4>>2]|0),s=n[s>>2]|0;while(s|0);if(s=n[O>>2]|0,s|0){Q=O;do{for(;d=s,s=n[s>>2]|0,d=n[d+4>>2]|0,!!(wUe(d)|0);)if(n[j>>2]=Q,n[M>>2]=n[j>>2],IUe(O,M)|0,!s)break e;if(BUe(d),Q=n[Q>>2]|0,l=J9(d)|0,m=Hi()|0,B=C,C=C+((1*(l<<2)|0)+15&-16)|0,k=C,C=C+((1*(l<<2)|0)+15&-16)|0,l=n[(F9(d)|0)>>2]|0,l|0)for(c=B,f=k;n[c>>2]=n[(Rd(n[l+4>>2]|0)|0)>>2],n[f>>2]=n[l+8>>2],l=n[l>>2]|0,l;)c=c+4|0,f=f+4|0;Qe=Rd(d)|0,l=vUe(d)|0,c=J9(d)|0,f=DUe(d)|0,pu(Qe|0,l|0,B|0,k|0,c|0,f|0,$F(d)|0),_i(m|0)}while(s|0)}}while(!1);if(s=n[(eR()|0)>>2]|0,s|0)do Qe=s+4|0,O=tR(Qe)|0,d=Cw(O)|0,m=yw(O)|0,B=(Ew(O)|0)+1|0,k=zv(O)|0,Q=X9(Qe)|0,O=Rr(O)|0,M=Wv(Qe)|0,j=pR(Qe)|0,El(0,d|0,m|0,B|0,k|0,Q|0,O|0,M|0,j|0,hR(Qe)|0),s=n[s>>2]|0;while(s|0);s=n[(Fd()|0)>>2]|0;e:do if(s|0){t:for(;;){if(l=n[s+4>>2]|0,l|0&&(se=n[(Rd(l)|0)>>2]|0,je=n[(R9(l)|0)>>2]|0,je|0)){c=je;do{l=c+4|0,f=tR(l)|0;r:do if(f|0)switch(Rr(f)|0){case 0:break t;case 4:case 3:case 2:{k=Cw(f)|0,Q=yw(f)|0,O=(Ew(f)|0)+1|0,M=zv(f)|0,j=Rr(f)|0,Qe=Wv(l)|0,El(se|0,k|0,Q|0,O|0,M|0,0,j|0,Qe|0,pR(l)|0,hR(l)|0);break r}case 1:{B=Cw(f)|0,k=yw(f)|0,Q=(Ew(f)|0)+1|0,O=zv(f)|0,M=X9(l)|0,j=Rr(f)|0,Qe=Wv(l)|0,El(se|0,B|0,k|0,Q|0,O|0,M|0,j|0,Qe|0,pR(l)|0,hR(l)|0);break r}case 5:{O=Cw(f)|0,M=yw(f)|0,j=(Ew(f)|0)+1|0,Qe=zv(f)|0,El(se|0,O|0,M|0,j|0,Qe|0,PUe(f)|0,Rr(f)|0,0,0,0);break r}default:break r}while(!1);c=n[c>>2]|0}while(c|0)}if(s=n[s>>2]|0,!s)break e}Tt()}while(!1);Ie(),C=Oe}function EUe(){return 11703}function CUe(s){s=s|0,o[s+40>>0]=0}function wUe(s){return s=s|0,(o[s+40>>0]|0)!=0|0}function IUe(s,l){return s=s|0,l=l|0,l=bUe(l)|0,s=n[l>>2]|0,n[l>>2]=n[s>>2],gt(s),n[l>>2]|0}function BUe(s){s=s|0,o[s+40>>0]=1}function J9(s){return s=s|0,n[s+20>>2]|0}function vUe(s){return s=s|0,n[s+8>>2]|0}function DUe(s){return s=s|0,n[s+32>>2]|0}function zv(s){return s=s|0,n[s+4>>2]|0}function X9(s){return s=s|0,n[s+4>>2]|0}function pR(s){return s=s|0,n[s+8>>2]|0}function hR(s){return s=s|0,n[s+16>>2]|0}function PUe(s){return s=s|0,n[s+20>>2]|0}function bUe(s){return s=s|0,n[s>>2]|0}function Jv(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0,lt=0,_e=0,qe=0,Lt=0;Lt=C,C=C+16|0,se=Lt;do if(s>>>0<245){if(O=s>>>0<11?16:s+11&-8,s=O>>>3,j=n[2783]|0,c=j>>>s,c&3|0)return l=(c&1^1)+s|0,s=11172+(l<<1<<2)|0,c=s+8|0,f=n[c>>2]|0,d=f+8|0,m=n[d>>2]|0,(s|0)==(m|0)?n[2783]=j&~(1<>2]=s,n[c>>2]=m),qe=l<<3,n[f+4>>2]=qe|3,qe=f+qe+4|0,n[qe>>2]=n[qe>>2]|1,qe=d,C=Lt,qe|0;if(M=n[2785]|0,O>>>0>M>>>0){if(c|0)return l=2<>>12&16,l=l>>>B,c=l>>>5&8,l=l>>>c,d=l>>>2&4,l=l>>>d,s=l>>>1&2,l=l>>>s,f=l>>>1&1,f=(c|B|d|s|f)+(l>>>f)|0,l=11172+(f<<1<<2)|0,s=l+8|0,d=n[s>>2]|0,B=d+8|0,c=n[B>>2]|0,(l|0)==(c|0)?(s=j&~(1<>2]=l,n[s>>2]=c,s=j),m=(f<<3)-O|0,n[d+4>>2]=O|3,f=d+O|0,n[f+4>>2]=m|1,n[f+m>>2]=m,M|0&&(d=n[2788]|0,l=M>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=c),n[2785]=m,n[2788]=f,qe=B,C=Lt,qe|0;if(k=n[2784]|0,k){if(c=(k&0-k)+-1|0,B=c>>>12&16,c=c>>>B,m=c>>>5&8,c=c>>>m,Q=c>>>2&4,c=c>>>Q,f=c>>>1&2,c=c>>>f,s=c>>>1&1,s=n[11436+((m|B|Q|f|s)+(c>>>s)<<2)>>2]|0,c=(n[s+4>>2]&-8)-O|0,f=n[s+16+(((n[s+16>>2]|0)==0&1)<<2)>>2]|0,!f)Q=s,m=c;else{do B=(n[f+4>>2]&-8)-O|0,Q=B>>>0>>0,c=Q?B:c,s=Q?f:s,f=n[f+16+(((n[f+16>>2]|0)==0&1)<<2)>>2]|0;while(f|0);Q=s,m=c}if(B=Q+O|0,Q>>>0>>0){d=n[Q+24>>2]|0,l=n[Q+12>>2]|0;do if((l|0)==(Q|0)){if(s=Q+20|0,l=n[s>>2]|0,!l&&(s=Q+16|0,l=n[s>>2]|0,!l)){c=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0,c=l}else c=n[Q+8>>2]|0,n[c+12>>2]=l,n[l+8>>2]=c,c=l;while(!1);do if(d|0){if(l=n[Q+28>>2]|0,s=11436+(l<<2)|0,(Q|0)==(n[s>>2]|0)){if(n[s>>2]=c,!c){n[2784]=k&~(1<>2]|0)!=(Q|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=d,l=n[Q+16>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),l=n[Q+20>>2]|0,l|0&&(n[c+20>>2]=l,n[l+24>>2]=c)}while(!1);return m>>>0<16?(qe=m+O|0,n[Q+4>>2]=qe|3,qe=Q+qe+4|0,n[qe>>2]=n[qe>>2]|1):(n[Q+4>>2]=O|3,n[B+4>>2]=m|1,n[B+m>>2]=m,M|0&&(f=n[2788]|0,l=M>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=j|l,l=c,s=c+8|0),n[s>>2]=f,n[l+12>>2]=f,n[f+8>>2]=l,n[f+12>>2]=c),n[2785]=m,n[2788]=B),qe=Q+8|0,C=Lt,qe|0}else j=O}else j=O}else j=O}else if(s>>>0<=4294967231)if(s=s+11|0,O=s&-8,Q=n[2784]|0,Q){f=0-O|0,s=s>>>8,s?O>>>0>16777215?k=31:(j=(s+1048320|0)>>>16&8,_e=s<>>16&4,_e=_e<>>16&2,k=14-(M|j|k)+(_e<>>15)|0,k=O>>>(k+7|0)&1|k<<1):k=0,c=n[11436+(k<<2)>>2]|0;e:do if(!c)c=0,s=0,_e=57;else for(s=0,B=O<<((k|0)==31?0:25-(k>>>1)|0),m=0;;){if(d=(n[c+4>>2]&-8)-O|0,d>>>0>>0)if(d)s=c,f=d;else{s=c,f=0,d=c,_e=61;break e}if(d=n[c+20>>2]|0,c=n[c+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(c|0)?m:d,d=(c|0)==0,d){c=m,_e=57;break}else B=B<<((d^1)&1)}while(!1);if((_e|0)==57){if((c|0)==0&(s|0)==0){if(s=2<>>12&16,j=j>>>B,m=j>>>5&8,j=j>>>m,k=j>>>2&4,j=j>>>k,M=j>>>1&2,j=j>>>M,c=j>>>1&1,s=0,c=n[11436+((m|B|k|M|c)+(j>>>c)<<2)>>2]|0}c?(d=c,_e=61):(k=s,B=f)}if((_e|0)==61)for(;;)if(_e=0,c=(n[d+4>>2]&-8)-O|0,j=c>>>0>>0,c=j?c:f,s=j?d:s,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)f=c,_e=61;else{k=s,B=c;break}if(k|0&&B>>>0<((n[2785]|0)-O|0)>>>0){if(m=k+O|0,k>>>0>=m>>>0)return qe=0,C=Lt,qe|0;d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(s=k+20|0,l=n[s>>2]|0,!l&&(s=k+16|0,l=n[s>>2]|0,!l)){l=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0}else qe=n[k+8>>2]|0,n[qe+12>>2]=l,n[l+8>>2]=qe;while(!1);do if(d){if(s=n[k+28>>2]|0,c=11436+(s<<2)|0,(k|0)==(n[c>>2]|0)){if(n[c>>2]=l,!l){f=Q&~(1<>2]|0)!=(k|0)&1)<<2)>>2]=l,!l){f=Q;break}n[l+24>>2]=d,s=n[k+16>>2]|0,s|0&&(n[l+16>>2]=s,n[s+24>>2]=l),s=n[k+20>>2]|0,s&&(n[l+20>>2]=s,n[s+24>>2]=l),f=Q}else f=Q;while(!1);do if(B>>>0>=16){if(n[k+4>>2]=O|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=c;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(_e=(l+1048320|0)>>>16&8,qe=l<<_e,lt=(qe+520192|0)>>>16&4,qe=qe<>>16&2,l=14-(lt|_e|l)+(qe<>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,c=11436+(l<<2)|0,n[m+28>>2]=l,s=m+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}for(s=B<<((l|0)==31?0:25-(l>>>1)|0),c=n[c>>2]|0;;){if((n[c+4>>2]&-8|0)==(B|0)){_e=97;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=96;break}}if((_e|0)==96){n[f>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((_e|0)==97){_e=c+8|0,qe=n[_e>>2]|0,n[qe+12>>2]=m,n[_e>>2]=m,n[m+8>>2]=qe,n[m+12>>2]=c,n[m+24>>2]=0;break}}else qe=B+O|0,n[k+4>>2]=qe|3,qe=k+qe+4|0,n[qe>>2]=n[qe>>2]|1;while(!1);return qe=k+8|0,C=Lt,qe|0}else j=O}else j=O;else j=-1;while(!1);if(c=n[2785]|0,c>>>0>=j>>>0)return l=c-j|0,s=n[2788]|0,l>>>0>15?(qe=s+j|0,n[2788]=qe,n[2785]=l,n[qe+4>>2]=l|1,n[qe+l>>2]=l,n[s+4>>2]=j|3):(n[2785]=0,n[2788]=0,n[s+4>>2]=c|3,qe=s+c+4|0,n[qe>>2]=n[qe>>2]|1),qe=s+8|0,C=Lt,qe|0;if(B=n[2786]|0,B>>>0>j>>>0)return lt=B-j|0,n[2786]=lt,qe=n[2789]|0,_e=qe+j|0,n[2789]=_e,n[_e+4>>2]=lt|1,n[qe+4>>2]=j|3,qe=qe+8|0,C=Lt,qe|0;if(n[2901]|0?s=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,s=se&-16^1431655768,n[se>>2]=s,n[2901]=s,s=4096),k=j+48|0,Q=j+47|0,m=s+Q|0,d=0-s|0,O=m&d,O>>>0<=j>>>0||(s=n[2893]|0,s|0&&(M=n[2891]|0,se=M+O|0,se>>>0<=M>>>0|se>>>0>s>>>0)))return qe=0,C=Lt,qe|0;e:do if(n[2894]&4)l=0,_e=133;else{c=n[2789]|0;t:do if(c){for(f=11580;s=n[f>>2]|0,!(s>>>0<=c>>>0&&(Qe=f+4|0,(s+(n[Qe>>2]|0)|0)>>>0>c>>>0));)if(s=n[f+8>>2]|0,s)f=s;else{_e=118;break t}if(l=m-B&d,l>>>0<2147483647)if(s=xp(l|0)|0,(s|0)==((n[f>>2]|0)+(n[Qe>>2]|0)|0)){if((s|0)!=-1){B=l,m=s,_e=135;break e}}else f=s,_e=126;else l=0}else _e=118;while(!1);do if((_e|0)==118)if(c=xp(0)|0,(c|0)!=-1&&(l=c,je=n[2902]|0,Oe=je+-1|0,l=(Oe&l|0?(Oe+l&0-je)-l|0:0)+O|0,je=n[2891]|0,Oe=l+je|0,l>>>0>j>>>0&l>>>0<2147483647)){if(Qe=n[2893]|0,Qe|0&&Oe>>>0<=je>>>0|Oe>>>0>Qe>>>0){l=0;break}if(s=xp(l|0)|0,(s|0)==(c|0)){B=l,m=c,_e=135;break e}else f=s,_e=126}else l=0;while(!1);do if((_e|0)==126){if(c=0-l|0,!(k>>>0>l>>>0&(l>>>0<2147483647&(f|0)!=-1)))if((f|0)==-1){l=0;break}else{B=l,m=f,_e=135;break e}if(s=n[2903]|0,s=Q-l+s&0-s,s>>>0>=2147483647){B=l,m=f,_e=135;break e}if((xp(s|0)|0)==-1){xp(c|0)|0,l=0;break}else{B=s+l|0,m=f,_e=135;break e}}while(!1);n[2894]=n[2894]|4,_e=133}while(!1);if((_e|0)==133&&O>>>0<2147483647&&(lt=xp(O|0)|0,Qe=xp(0)|0,$e=Qe-lt|0,Je=$e>>>0>(j+40|0)>>>0,!((lt|0)==-1|Je^1|lt>>>0>>0&((lt|0)!=-1&(Qe|0)!=-1)^1))&&(B=Je?$e:l,m=lt,_e=135),(_e|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),Q=n[2789]|0;do if(Q){for(l=11580;;){if(s=n[l>>2]|0,c=l+4|0,f=n[c>>2]|0,(m|0)==(s+f|0)){_e=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((_e|0)==145&&!(n[l+12>>2]&8|0)&&Q>>>0>>0&Q>>>0>=s>>>0){n[c>>2]=f+B,qe=Q+8|0,qe=qe&7|0?0-qe&7:0,_e=Q+qe|0,qe=(n[2786]|0)+(B-qe)|0,n[2789]=_e,n[2786]=qe,n[_e+4>>2]=qe|1,n[_e+qe+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),c=m+B|0,l=11580;;){if((n[l>>2]|0)==(c|0)){_e=153;break}if(s=n[l+8>>2]|0,s)l=s;else break}if((_e|0)==153&&!(n[l+12>>2]&8|0)){n[l>>2]=m,M=l+4|0,n[M>>2]=(n[M>>2]|0)+B,M=m+8|0,M=m+(M&7|0?0-M&7:0)|0,l=c+8|0,l=c+(l&7|0?0-l&7:0)|0,O=M+j|0,k=l-M-j|0,n[M+4>>2]=j|3;do if((l|0)!=(Q|0)){if((l|0)==(n[2788]|0)){qe=(n[2785]|0)+k|0,n[2785]=qe,n[2788]=O,n[O+4>>2]=qe|1,n[O+qe>>2]=qe;break}if(s=n[l+4>>2]|0,(s&3|0)==1){B=s&-8,f=s>>>3;e:do if(s>>>0<256)if(s=n[l+8>>2]|0,c=n[l+12>>2]|0,(c|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=c,n[c+8>>2]=s;break}else{m=n[l+24>>2]|0,s=n[l+12>>2]|0;do if((s|0)==(l|0)){if(f=l+16|0,c=f+4|0,s=n[c>>2]|0,!s)if(s=n[f>>2]|0,s)c=f;else{s=0;break}for(;;){if(f=s+20|0,d=n[f>>2]|0,d|0){s=d,c=f;continue}if(f=s+16|0,d=n[f>>2]|0,d)s=d,c=f;else break}n[c>>2]=0}else qe=n[l+8>>2]|0,n[qe+12>>2]=s,n[s+8>>2]=qe;while(!1);if(!m)break;c=n[l+28>>2]|0,f=11436+(c<<2)|0;do if((l|0)!=(n[f>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=s,!s)break e}else{if(n[f>>2]=s,s|0)break;n[2784]=n[2784]&~(1<>2]=m,c=l+16|0,f=n[c>>2]|0,f|0&&(n[s+16>>2]=f,n[f+24>>2]=s),c=n[c+4>>2]|0,!c)break;n[s+20>>2]=c,n[c+24>>2]=s}while(!1);l=l+B|0,d=B+k|0}else d=k;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[O+4>>2]=d|1,n[O+d>>2]=d,l=d>>>3,d>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=O,n[l+12>>2]=O,n[O+8>>2]=l,n[O+12>>2]=c;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}_e=(l+1048320|0)>>>16&8,qe=l<<_e,lt=(qe+520192|0)>>>16&4,qe=qe<>>16&2,l=14-(lt|_e|l)+(qe<>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(!1);if(f=11436+(l<<2)|0,n[O+28>>2]=l,s=O+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[2784]|0,c=1<>2]=O,n[O+24>>2]=f,n[O+12>>2]=O,n[O+8>>2]=O;break}for(s=d<<((l|0)==31?0:25-(l>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){_e=194;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=193;break}}if((_e|0)==193){n[f>>2]=O,n[O+24>>2]=c,n[O+12>>2]=O,n[O+8>>2]=O;break}else if((_e|0)==194){_e=c+8|0,qe=n[_e>>2]|0,n[qe+12>>2]=O,n[_e>>2]=O,n[O+8>>2]=qe,n[O+12>>2]=c,n[O+24>>2]=0;break}}else qe=(n[2786]|0)+k|0,n[2786]=qe,n[2789]=O,n[O+4>>2]=qe|1;while(!1);return qe=M+8|0,C=Lt,qe|0}for(l=11580;s=n[l>>2]|0,!(s>>>0<=Q>>>0&&(qe=s+(n[l+4>>2]|0)|0,qe>>>0>Q>>>0));)l=n[l+8>>2]|0;d=qe+-47|0,s=d+8|0,s=d+(s&7|0?0-s&7:0)|0,d=Q+16|0,s=s>>>0>>0?Q:s,l=s+8|0,c=m+8|0,c=c&7|0?0-c&7:0,_e=m+c|0,c=B+-40-c|0,n[2789]=_e,n[2786]=c,n[_e+4>>2]=c|1,n[_e+c+4>>2]=40,n[2790]=n[2905],c=s+4|0,n[c>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=s+24|0;do _e=l,l=l+4|0,n[l>>2]=7;while((_e+8|0)>>>0>>0);if((s|0)!=(Q|0)){if(m=s-Q|0,n[c>>2]=n[c>>2]&-2,n[Q+4>>2]=m|1,n[s>>2]=m,l=m>>>3,m>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=Q,n[l+12>>2]=Q,n[Q+8>>2]=l,n[Q+12>>2]=c;break}if(l=m>>>8,l?m>>>0>16777215?c=31:(_e=(l+1048320|0)>>>16&8,qe=l<<_e,lt=(qe+520192|0)>>>16&4,qe=qe<>>16&2,c=14-(lt|_e|c)+(qe<>>15)|0,c=m>>>(c+7|0)&1|c<<1):c=0,f=11436+(c<<2)|0,n[Q+28>>2]=c,n[Q+20>>2]=0,n[d>>2]=0,l=n[2784]|0,s=1<>2]=Q,n[Q+24>>2]=f,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}for(s=m<<((c|0)==31?0:25-(c>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(m|0)){_e=216;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=215;break}}if((_e|0)==215){n[f>>2]=Q,n[Q+24>>2]=c,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}else if((_e|0)==216){_e=c+8|0,qe=n[_e>>2]|0,n[qe+12>>2]=Q,n[_e>>2]=Q,n[Q+8>>2]=qe,n[Q+12>>2]=c,n[Q+24>>2]=0;break}}}else{qe=n[2787]|0,(qe|0)==0|m>>>0>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do qe=11172+(l<<1<<2)|0,n[qe+12>>2]=qe,n[qe+8>>2]=qe,l=l+1|0;while((l|0)!=32);qe=m+8|0,qe=qe&7|0?0-qe&7:0,_e=m+qe|0,qe=B+-40-qe|0,n[2789]=_e,n[2786]=qe,n[_e+4>>2]=qe|1,n[_e+qe+4>>2]=40,n[2790]=n[2905]}while(!1);if(l=n[2786]|0,l>>>0>j>>>0)return lt=l-j|0,n[2786]=lt,qe=n[2789]|0,_e=qe+j|0,n[2789]=_e,n[_e+4>>2]=lt|1,n[qe+4>>2]=j|3,qe=qe+8|0,C=Lt,qe|0}return n[(Nd()|0)>>2]=12,qe=0,C=Lt,qe|0}function Xv(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0;if(s){c=s+-8|0,d=n[2787]|0,s=n[s+-4>>2]|0,l=s&-8,Q=c+l|0;do if(s&1)k=c,B=c;else{if(f=n[c>>2]|0,!(s&3)||(B=c+(0-f)|0,m=f+l|0,B>>>0>>0))return;if((B|0)==(n[2788]|0)){if(s=Q+4|0,l=n[s>>2]|0,(l&3|0)!=3){k=B,l=m;break}n[2785]=m,n[s>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(c=f>>>3,f>>>0<256)if(s=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=l,n[l+8>>2]=s,k=B,l=m;break}d=n[B+24>>2]|0,s=n[B+12>>2]|0;do if((s|0)==(B|0)){if(c=B+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{s=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0}else k=n[B+8>>2]|0,n[k+12>>2]=s,n[s+8>>2]=k;while(!1);if(d){if(l=n[B+28>>2]|0,c=11436+(l<<2)|0,(B|0)==(n[c>>2]|0)){if(n[c>>2]=s,!s){n[2784]=n[2784]&~(1<>2]|0)!=(B|0)&1)<<2)>>2]=s,!s){k=B,l=m;break}n[s+24>>2]=d,l=B+16|0,c=n[l>>2]|0,c|0&&(n[s+16>>2]=c,n[c+24>>2]=s),l=n[l+4>>2]|0,l?(n[s+20>>2]=l,n[l+24>>2]=s,k=B,l=m):(k=B,l=m)}else k=B,l=m}while(!1);if(!(B>>>0>=Q>>>0)&&(s=Q+4|0,f=n[s>>2]|0,!!(f&1))){if(f&2)n[s>>2]=f&-2,n[k+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(s=n[2788]|0,(Q|0)==(n[2789]|0)){if(Q=(n[2786]|0)+l|0,n[2786]=Q,n[2789]=k,n[k+4>>2]=Q|1,(k|0)!=(s|0))return;n[2788]=0,n[2785]=0;return}if((Q|0)==(s|0)){Q=(n[2785]|0)+l|0,n[2785]=Q,n[2788]=B,n[k+4>>2]=Q|1,n[B+Q>>2]=Q;return}d=(f&-8)+l|0,c=f>>>3;do if(f>>>0<256)if(l=n[Q+8>>2]|0,s=n[Q+12>>2]|0,(s|0)==(l|0)){n[2783]=n[2783]&~(1<>2]=s,n[s+8>>2]=l;break}else{m=n[Q+24>>2]|0,s=n[Q+12>>2]|0;do if((s|0)==(Q|0)){if(c=Q+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{c=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0,c=s}else c=n[Q+8>>2]|0,n[c+12>>2]=s,n[s+8>>2]=c,c=s;while(!1);if(m|0){if(s=n[Q+28>>2]|0,l=11436+(s<<2)|0,(Q|0)==(n[l>>2]|0)){if(n[l>>2]=c,!c){n[2784]=n[2784]&~(1<>2]|0)!=(Q|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=m,s=Q+16|0,l=n[s>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),s=n[s+4>>2]|0,s|0&&(n[c+20>>2]=s,n[s+24>>2]=c)}}while(!1);if(n[k+4>>2]=d|1,n[B+d>>2]=d,(k|0)==(n[2788]|0)){n[2785]=d;return}}if(s=d>>>3,d>>>0<256){c=11172+(s<<1<<2)|0,l=n[2783]|0,s=1<>2]|0):(n[2783]=l|s,s=c,l=c+8|0),n[l>>2]=k,n[s+12>>2]=k,n[k+8>>2]=s,n[k+12>>2]=c;return}s=d>>>8,s?d>>>0>16777215?s=31:(B=(s+1048320|0)>>>16&8,Q=s<>>16&4,Q=Q<>>16&2,s=14-(m|B|s)+(Q<>>15)|0,s=d>>>(s+7|0)&1|s<<1):s=0,f=11436+(s<<2)|0,n[k+28>>2]=s,n[k+20>>2]=0,n[k+16>>2]=0,l=n[2784]|0,c=1<>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){s=73;break}if(f=c+16+(l>>>31<<2)|0,s=n[f>>2]|0,s)l=l<<1,c=s;else{s=72;break}}if((s|0)==72){n[f>>2]=k,n[k+24>>2]=c,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((s|0)==73){B=c+8|0,Q=n[B>>2]|0,n[Q+12>>2]=k,n[B>>2]=k,n[k+8>>2]=Q,n[k+12>>2]=c,n[k+24>>2]=0;break}}else n[2784]=l|c,n[f>>2]=k,n[k+24>>2]=f,n[k+12>>2]=k,n[k+8>>2]=k;while(!1);if(Q=(n[2791]|0)+-1|0,n[2791]=Q,!Q)s=11588;else return;for(;s=n[s>>2]|0,s;)s=s+8|0;n[2791]=-1}}}function SUe(){return 11628}function xUe(s){s=s|0;var l=0,c=0;return l=C,C=C+16|0,c=l,n[c>>2]=FUe(n[s+60>>2]|0)|0,s=Zv(gc(6,c|0)|0)|0,C=l,s|0}function Z9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0;j=C,C=C+48|0,O=j+16|0,m=j,d=j+32|0,k=s+28|0,f=n[k>>2]|0,n[d>>2]=f,Q=s+20|0,f=(n[Q>>2]|0)-f|0,n[d+4>>2]=f,n[d+8>>2]=l,n[d+12>>2]=c,f=f+c|0,B=s+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=Zv(Ni(146,m|0)|0)|0;e:do if((f|0)!=(m|0)){for(l=2;!((m|0)<0);)if(f=f-m|0,je=n[d+4>>2]|0,se=m>>>0>je>>>0,d=se?d+8|0:d,l=(se<<31>>31)+l|0,je=m-(se?je:0)|0,n[d>>2]=(n[d>>2]|0)+je,se=d+4|0,n[se>>2]=(n[se>>2]|0)-je,n[O>>2]=n[B>>2],n[O+4>>2]=d,n[O+8>>2]=l,m=Zv(Ni(146,O|0)|0)|0,(f|0)==(m|0)){M=3;break e}n[s+16>>2]=0,n[k>>2]=0,n[Q>>2]=0,n[s>>2]=n[s>>2]|32,(l|0)==2?c=0:c=c-(n[d+4>>2]|0)|0}else M=3;while(!1);return(M|0)==3&&(je=n[s+44>>2]|0,n[s+16>>2]=je+(n[s+48>>2]|0),n[k>>2]=je,n[Q>>2]=je),C=j,c|0}function kUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return d=C,C=C+32|0,m=d,f=d+20|0,n[m>>2]=n[s+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=f,n[m+16>>2]=c,(Zv(aa(140,m|0)|0)|0)<0?(n[f>>2]=-1,s=-1):s=n[f>>2]|0,C=d,s|0}function Zv(s){return s=s|0,s>>>0>4294963200&&(n[(Nd()|0)>>2]=0-s,s=-1),s|0}function Nd(){return(QUe()|0)+64|0}function QUe(){return gR()|0}function gR(){return 2084}function FUe(s){return s=s|0,s|0}function RUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return d=C,C=C+32|0,f=d,n[s+36>>2]=1,!(n[s>>2]&64|0)&&(n[f>>2]=n[s+60>>2],n[f+4>>2]=21523,n[f+8>>2]=d+16,hu(54,f|0)|0)&&(o[s+75>>0]=-1),f=Z9(s,l,c)|0,C=d,f|0}function $9(s,l){s=s|0,l=l|0;var c=0,f=0;if(c=o[s>>0]|0,f=o[l>>0]|0,!(c<<24>>24)||c<<24>>24!=f<<24>>24)s=f;else{do s=s+1|0,l=l+1|0,c=o[s>>0]|0,f=o[l>>0]|0;while(!(!(c<<24>>24)||c<<24>>24!=f<<24>>24));s=f}return(c&255)-(s&255)|0}function TUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;e:do if(!c)s=0;else{for(;f=o[s>>0]|0,d=o[l>>0]|0,f<<24>>24==d<<24>>24;)if(c=c+-1|0,c)s=s+1|0,l=l+1|0;else{s=0;break e}s=(f&255)-(d&255)|0}while(!1);return s|0}function e7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0;Qe=C,C=C+224|0,M=Qe+120|0,j=Qe+80|0,je=Qe,Oe=Qe+136|0,f=j,d=f+40|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(d|0));return n[M>>2]=n[c>>2],(dR(0,l,M,je,j)|0)<0?c=-1:((n[s+76>>2]|0)>-1?se=NUe(s)|0:se=0,c=n[s>>2]|0,O=c&32,(o[s+74>>0]|0)<1&&(n[s>>2]=c&-33),f=s+48|0,n[f>>2]|0?c=dR(s,l,M,je,j)|0:(d=s+44|0,m=n[d>>2]|0,n[d>>2]=Oe,B=s+28|0,n[B>>2]=Oe,k=s+20|0,n[k>>2]=Oe,n[f>>2]=80,Q=s+16|0,n[Q>>2]=Oe+80,c=dR(s,l,M,je,j)|0,m&&(rD[n[s+36>>2]&7](s,0,0)|0,c=n[k>>2]|0?c:-1,n[d>>2]=m,n[f>>2]=0,n[Q>>2]=0,n[B>>2]=0,n[k>>2]=0)),f=n[s>>2]|0,n[s>>2]=f|O,se|0&&LUe(s),c=f&32|0?-1:c),C=Qe,c|0}function dR(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0,lt=0,_e=0,qe=0,Lt=0,Or=0,cr=0,Xt=0,Pr=0,Tr=0,ar=0;ar=C,C=C+64|0,cr=ar+16|0,Xt=ar,Lt=ar+24|0,Pr=ar+8|0,Tr=ar+20|0,n[cr>>2]=l,lt=(s|0)!=0,_e=Lt+40|0,qe=_e,Lt=Lt+39|0,Or=Pr+4|0,B=0,m=0,M=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(Nd()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(!1);if(B=o[l>>0]|0,B<<24>>24)k=l;else{Je=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=k,Je=9;break t}case 0:{B=k;break t}default:}$e=k+1|0,n[cr>>2]=$e,B=o[$e>>0]|0,k=$e}t:do if((Je|0)==9)for(;;){if(Je=0,(o[k+1>>0]|0)!=37)break t;if(B=B+1|0,k=k+2|0,n[cr>>2]=k,(o[k>>0]|0)==37)Je=9;else break}while(!1);if(B=B-l|0,lt&&as(s,l,B),B|0){l=k;continue}Q=k+1|0,B=(o[Q>>0]|0)+-48|0,B>>>0<10?($e=(o[k+2>>0]|0)==36,Qe=$e?B:-1,M=$e?1:M,Q=$e?k+3|0:Q):Qe=-1,n[cr>>2]=Q,B=o[Q>>0]|0,k=(B<<24>>24)+-32|0;t:do if(k>>>0<32)for(O=0,j=B;;){if(B=1<>2]=Q,B=o[Q>>0]|0,k=(B<<24>>24)+-32|0,k>>>0>=32)break;j=B}else O=0;while(!1);if(B<<24>>24==42){if(k=Q+1|0,B=(o[k>>0]|0)+-48|0,B>>>0<10&&(o[Q+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[f+((o[k>>0]|0)+-48<<3)>>2]|0,M=1,Q=Q+3|0;else{if(M|0){m=-1;break}lt?(M=(n[c>>2]|0)+3&-4,B=n[M>>2]|0,n[c>>2]=M+4,M=0,Q=k):(B=0,M=0,Q=k)}n[cr>>2]=Q,$e=(B|0)<0,B=$e?0-B|0:B,O=$e?O|8192:O}else{if(B=t7(cr)|0,(B|0)<0){m=-1;break}Q=n[cr>>2]|0}do if((o[Q>>0]|0)==46){if((o[Q+1>>0]|0)!=42){n[cr>>2]=Q+1,k=t7(cr)|0,Q=n[cr>>2]|0;break}if(j=Q+2|0,k=(o[j>>0]|0)+-48|0,k>>>0<10&&(o[Q+3>>0]|0)==36){n[d+(k<<2)>>2]=10,k=n[f+((o[j>>0]|0)+-48<<3)>>2]|0,Q=Q+4|0,n[cr>>2]=Q;break}if(M|0){m=-1;break e}lt?($e=(n[c>>2]|0)+3&-4,k=n[$e>>2]|0,n[c>>2]=$e+4):k=0,n[cr>>2]=j,Q=j}else k=-1;while(!1);for(Oe=0;;){if(((o[Q>>0]|0)+-65|0)>>>0>57){m=-1;break e}if($e=Q+1|0,n[cr>>2]=$e,j=o[(o[Q>>0]|0)+-65+(5178+(Oe*58|0))>>0]|0,se=j&255,(se+-1|0)>>>0<8)Oe=se,Q=$e;else break}if(!(j<<24>>24)){m=-1;break}je=(Qe|0)>-1;do if(j<<24>>24==19)if(je){m=-1;break e}else Je=49;else{if(je){n[d+(Qe<<2)>>2]=se,je=f+(Qe<<3)|0,Qe=n[je+4>>2]|0,Je=Xt,n[Je>>2]=n[je>>2],n[Je+4>>2]=Qe,Je=49;break}if(!lt){m=0;break e}r7(Xt,se,c)}while(!1);if((Je|0)==49&&(Je=0,!lt)){B=0,l=$e;continue}Q=o[Q>>0]|0,Q=(Oe|0)!=0&(Q&15|0)==3?Q&-33:Q,je=O&-65537,Qe=O&8192|0?je:O;t:do switch(Q|0){case 110:switch((Oe&255)<<24>>24){case 0:{n[n[Xt>>2]>>2]=m,B=0,l=$e;continue e}case 1:{n[n[Xt>>2]>>2]=m,B=0,l=$e;continue e}case 2:{B=n[Xt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=$e;continue e}case 3:{a[n[Xt>>2]>>1]=m,B=0,l=$e;continue e}case 4:{o[n[Xt>>2]>>0]=m,B=0,l=$e;continue e}case 6:{n[n[Xt>>2]>>2]=m,B=0,l=$e;continue e}case 7:{B=n[Xt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=$e;continue e}default:{B=0,l=$e;continue e}}case 112:{Q=120,k=k>>>0>8?k:8,l=Qe|8,Je=61;break}case 88:case 120:{l=Qe,Je=61;break}case 111:{Q=Xt,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,se=OUe(l,Q,_e)|0,je=qe-se|0,O=0,j=5642,k=(Qe&8|0)==0|(k|0)>(je|0)?k:je+1|0,je=Qe,Je=67;break}case 105:case 100:if(Q=Xt,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,(Q|0)<0){l=$v(0,0,l|0,Q|0)|0,Q=we,O=Xt,n[O>>2]=l,n[O+4>>2]=Q,O=1,j=5642,Je=66;break t}else{O=(Qe&2049|0)!=0&1,j=Qe&2048|0?5643:Qe&1|0?5644:5642,Je=66;break t}case 117:{Q=Xt,O=0,j=5642,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,Je=66;break}case 99:{o[Lt>>0]=n[Xt>>2],l=Lt,O=0,j=5642,se=_e,Q=1,k=je;break}case 109:{Q=UUe(n[(Nd()|0)>>2]|0)|0,Je=71;break}case 115:{Q=n[Xt>>2]|0,Q=Q|0?Q:5652,Je=71;break}case 67:{n[Pr>>2]=n[Xt>>2],n[Or>>2]=0,n[Xt>>2]=Pr,se=-1,Q=Pr,Je=75;break}case 83:{l=n[Xt>>2]|0,k?(se=k,Q=l,Je=75):(Ds(s,32,B,0,Qe),l=0,Je=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=HUe(s,+E[Xt>>3],B,k,Qe,Q)|0,l=$e;continue e}default:O=0,j=5642,se=_e,Q=k,k=Qe}while(!1);t:do if((Je|0)==61)Qe=Xt,Oe=n[Qe>>2]|0,Qe=n[Qe+4>>2]|0,se=MUe(Oe,Qe,_e,Q&32)|0,j=(l&8|0)==0|(Oe|0)==0&(Qe|0)==0,O=j?0:2,j=j?5642:5642+(Q>>4)|0,je=l,l=Oe,Q=Qe,Je=67;else if((Je|0)==66)se=Ld(l,Q,_e)|0,je=Qe,Je=67;else if((Je|0)==71)Je=0,Qe=_Ue(Q,0,k)|0,Oe=(Qe|0)==0,l=Q,O=0,j=5642,se=Oe?Q+k|0:Qe,Q=Oe?k:Qe-Q|0,k=je;else if((Je|0)==75){for(Je=0,j=Q,l=0,k=0;O=n[j>>2]|0,!(!O||(k=n7(Tr,O)|0,(k|0)<0|k>>>0>(se-l|0)>>>0));)if(l=k+l|0,se>>>0>l>>>0)j=j+4|0;else break;if((k|0)<0){m=-1;break e}if(Ds(s,32,B,l,Qe),!l)l=0,Je=84;else for(O=0;;){if(k=n[Q>>2]|0,!k){Je=84;break t}if(k=n7(Tr,k)|0,O=k+O|0,(O|0)>(l|0)){Je=84;break t}if(as(s,Tr,k),O>>>0>=l>>>0){Je=84;break}else Q=Q+4|0}}while(!1);if((Je|0)==67)Je=0,Q=(l|0)!=0|(Q|0)!=0,Qe=(k|0)!=0|Q,Q=((Q^1)&1)+(qe-se)|0,l=Qe?se:_e,se=_e,Q=Qe?(k|0)>(Q|0)?k:Q:k,k=(k|0)>-1?je&-65537:je;else if((Je|0)==84){Je=0,Ds(s,32,B,l,Qe^8192),B=(B|0)>(l|0)?B:l,l=$e;continue}Oe=se-l|0,je=(Q|0)<(Oe|0)?Oe:Q,Qe=je+O|0,B=(B|0)<(Qe|0)?Qe:B,Ds(s,32,B,Qe,k),as(s,j,O),Ds(s,48,B,Qe,k^65536),Ds(s,48,je,Oe,0),as(s,l,Oe),Ds(s,32,B,Qe,k^8192),l=$e}e:do if((Je|0)==87&&!s)if(!M)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(r7(f+(m<<3)|0,l,c),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(!1);return C=ar,m|0}function NUe(s){return s=s|0,0}function LUe(s){s=s|0}function as(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]&32||JUe(l,c,s)|0}function t7(s){s=s|0;var l=0,c=0,f=0;if(c=n[s>>2]|0,f=(o[c>>0]|0)+-48|0,f>>>0<10){l=0;do l=f+(l*10|0)|0,c=c+1|0,n[s>>2]=c,f=(o[c>>0]|0)+-48|0;while(f>>>0<10)}else l=0;return l|0}function r7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,n[s>>2]=l;break e}case 10:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=0;break e}case 12:{f=(n[c>>2]|0)+7&-8,l=f,d=n[l>>2]|0,l=n[l+4>>2]|0,n[c>>2]=f+8,f=s,n[f>>2]=d,n[f+4>>2]=l;break e}case 13:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,f=(f&65535)<<16>>16,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 14:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&65535,n[d+4>>2]=0;break e}case 15:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,f=(f&255)<<24>>24,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 16:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&255,n[d+4>>2]=0;break e}case 17:{d=(n[c>>2]|0)+7&-8,m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}case 18:{d=(n[c>>2]|0)+7&-8,m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}default:break e}while(!1);while(!1)}function MUe(s,l,c,f){if(s=s|0,l=l|0,c=c|0,f=f|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=u[5694+(s&15)>>0]|0|f,s=eD(s|0,l|0,4)|0,l=we;while(!((s|0)==0&(l|0)==0));return c|0}function OUe(s,l,c){if(s=s|0,l=l|0,c=c|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=s&7|48,s=eD(s|0,l|0,3)|0,l=we;while(!((s|0)==0&(l|0)==0));return c|0}function Ld(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if(l>>>0>0|(l|0)==0&s>>>0>4294967295){for(;f=CR(s|0,l|0,10,0)|0,c=c+-1|0,o[c>>0]=f&255|48,f=s,s=ER(s|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&f>>>0>4294967295;)l=we;l=s}else l=s;if(l)for(;c=c+-1|0,o[c>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return c|0}function UUe(s){return s=s|0,WUe(s,n[(YUe()|0)+188>>2]|0)|0}function _Ue(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;m=l&255,f=(c|0)!=0;e:do if(f&(s&3|0)!=0)for(d=l&255;;){if((o[s>>0]|0)==d<<24>>24){B=6;break e}if(s=s+1|0,c=c+-1|0,f=(c|0)!=0,!(f&(s&3|0)!=0)){B=5;break}}else B=5;while(!1);(B|0)==5&&(f?B=6:c=0);e:do if((B|0)==6&&(d=l&255,(o[s>>0]|0)!=d<<24>>24)){f=Ue(m,16843009)|0;t:do if(c>>>0>3){for(;m=n[s>>2]^f,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(s=s+4|0,c=c+-4|0,c>>>0<=3){B=11;break t}}else B=11;while(!1);if((B|0)==11&&!c){c=0;break}for(;;){if((o[s>>0]|0)==d<<24>>24)break e;if(s=s+1|0,c=c+-1|0,!c){c=0;break}}}while(!1);return(c|0?s:0)|0}function Ds(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0;if(B=C,C=C+256|0,m=B,(c|0)>(f|0)&(d&73728|0)==0){if(d=c-f|0,Od(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=c-f|0;do as(s,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}as(s,m,d)}C=B}function n7(s,l){return s=s|0,l=l|0,s?s=jUe(s,l,0)|0:s=0,s|0}function HUe(s,l,c,f,d,m){s=s|0,l=+l,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0,lt=0,_e=0,qe=0,Lt=0,Or=0,cr=0,Xt=0,Pr=0,Tr=0,ar=0,xn=0;xn=C,C=C+560|0,Q=xn+8|0,$e=xn,ar=xn+524|0,Tr=ar,O=xn+512|0,n[$e>>2]=0,Pr=O+12|0,i7(l)|0,(we|0)<0?(l=-l,cr=1,Or=5659):(cr=(d&2049|0)!=0&1,Or=d&2048|0?5662:d&1|0?5665:5660),i7(l)|0,Xt=we&2146435072;do if(Xt>>>0<2146435072|(Xt|0)==2146435072&!1){if(je=+qUe(l,$e)*2,B=je!=0,B&&(n[$e>>2]=(n[$e>>2]|0)+-1),lt=m|32,(lt|0)==97){Oe=m&32,se=Oe|0?Or+9|0:Or,j=cr|2,B=12-f|0;do if(f>>>0>11|(B|0)==0)l=je;else{l=8;do B=B+-1|0,l=l*16;while(B|0);if((o[se>>0]|0)==45){l=-(l+(-je-l));break}else{l=je+l-l;break}}while(!1);k=n[$e>>2]|0,B=(k|0)<0?0-k|0:k,B=Ld(B,((B|0)<0)<<31>>31,Pr)|0,(B|0)==(Pr|0)&&(B=O+11|0,o[B>>0]=48),o[B+-1>>0]=(k>>31&2)+43,M=B+-2|0,o[M>>0]=m+15,O=(f|0)<1,Q=(d&8|0)==0,B=ar;do Xt=~~l,k=B+1|0,o[B>>0]=u[5694+Xt>>0]|Oe,l=(l-+(Xt|0))*16,(k-Tr|0)==1&&!(Q&(O&l==0))?(o[k>>0]=46,B=B+2|0):B=k;while(l!=0);Xt=B-Tr|0,Tr=Pr-M|0,Pr=(f|0)!=0&(Xt+-2|0)<(f|0)?f+2|0:Xt,B=Tr+j+Pr|0,Ds(s,32,c,B,d),as(s,se,j),Ds(s,48,c,B,d^65536),as(s,ar,Xt),Ds(s,48,Pr-Xt|0,0,0),as(s,M,Tr),Ds(s,32,c,B,d^8192);break}k=(f|0)<0?6:f,B?(B=(n[$e>>2]|0)+-28|0,n[$e>>2]=B,l=je*268435456):(l=je,B=n[$e>>2]|0),Xt=(B|0)<0?Q:Q+288|0,Q=Xt;do qe=~~l>>>0,n[Q>>2]=qe,Q=Q+4|0,l=(l-+(qe>>>0))*1e9;while(l!=0);if((B|0)>0)for(O=Xt,j=Q;;){if(M=(B|0)<29?B:29,B=j+-4|0,B>>>0>=O>>>0){Q=0;do _e=u7(n[B>>2]|0,0,M|0)|0,_e=yR(_e|0,we|0,Q|0,0)|0,qe=we,Je=CR(_e|0,qe|0,1e9,0)|0,n[B>>2]=Je,Q=ER(_e|0,qe|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=O>>>0);Q&&(O=O+-4|0,n[O>>2]=Q)}for(Q=j;!(Q>>>0<=O>>>0);)if(B=Q+-4|0,!(n[B>>2]|0))Q=B;else break;if(B=(n[$e>>2]|0)-M|0,n[$e>>2]=B,(B|0)>0)j=Q;else break}else O=Xt;if((B|0)<0){f=((k+25|0)/9|0)+1|0,Qe=(lt|0)==102;do{if(Oe=0-B|0,Oe=(Oe|0)<9?Oe:9,O>>>0>>0){M=(1<>>Oe,se=0,B=O;do qe=n[B>>2]|0,n[B>>2]=(qe>>>Oe)+se,se=Ue(qe&M,j)|0,B=B+4|0;while(B>>>0>>0);B=n[O>>2]|0?O:O+4|0,se?(n[Q>>2]=se,O=B,B=Q+4|0):(O=B,B=Q)}else O=n[O>>2]|0?O:O+4|0,B=Q;Q=Qe?Xt:O,Q=(B-Q>>2|0)>(f|0)?Q+(f<<2)|0:B,B=(n[$e>>2]|0)+Oe|0,n[$e>>2]=B}while((B|0)<0);B=O,f=Q}else B=O,f=Q;if(qe=Xt,B>>>0>>0){if(Q=(qe-B>>2)*9|0,M=n[B>>2]|0,M>>>0>=10){O=10;do O=O*10|0,Q=Q+1|0;while(M>>>0>=O>>>0)}}else Q=0;if(Qe=(lt|0)==103,Je=(k|0)!=0,O=k-((lt|0)!=102?Q:0)+((Je&Qe)<<31>>31)|0,(O|0)<(((f-qe>>2)*9|0)+-9|0)){if(O=O+9216|0,Oe=Xt+4+(((O|0)/9|0)+-1024<<2)|0,O=((O|0)%9|0)+1|0,(O|0)<9){M=10;do M=M*10|0,O=O+1|0;while((O|0)!=9)}else M=10;if(j=n[Oe>>2]|0,se=(j>>>0)%(M>>>0)|0,O=(Oe+4|0)==(f|0),O&(se|0)==0)O=Oe;else if(je=((j>>>0)/(M>>>0)|0)&1|0?9007199254740994:9007199254740992,_e=(M|0)/2|0,l=se>>>0<_e>>>0?.5:O&(se|0)==(_e|0)?1:1.5,cr&&(_e=(o[Or>>0]|0)==45,l=_e?-l:l,je=_e?-je:je),O=j-se|0,n[Oe>>2]=O,je+l!=je){if(_e=O+M|0,n[Oe>>2]=_e,_e>>>0>999999999)for(Q=Oe;O=Q+-4|0,n[Q>>2]=0,O>>>0>>0&&(B=B+-4|0,n[B>>2]=0),_e=(n[O>>2]|0)+1|0,n[O>>2]=_e,_e>>>0>999999999;)Q=O;else O=Oe;if(Q=(qe-B>>2)*9|0,j=n[B>>2]|0,j>>>0>=10){M=10;do M=M*10|0,Q=Q+1|0;while(j>>>0>=M>>>0)}}else O=Oe;O=O+4|0,O=f>>>0>O>>>0?O:f,_e=B}else O=f,_e=B;for(lt=O;;){if(lt>>>0<=_e>>>0){$e=0;break}if(B=lt+-4|0,!(n[B>>2]|0))lt=B;else{$e=1;break}}f=0-Q|0;do if(Qe)if(B=((Je^1)&1)+k|0,(B|0)>(Q|0)&(Q|0)>-5?(M=m+-1|0,k=B+-1-Q|0):(M=m+-2|0,k=B+-1|0),B=d&8,B)Oe=B;else{if($e&&(Lt=n[lt+-4>>2]|0,(Lt|0)!=0))if((Lt>>>0)%10|0)O=0;else{O=0,B=10;do B=B*10|0,O=O+1|0;while(!((Lt>>>0)%(B>>>0)|0|0))}else O=9;if(B=((lt-qe>>2)*9|0)+-9|0,(M|32|0)==102){Oe=B-O|0,Oe=(Oe|0)>0?Oe:0,k=(k|0)<(Oe|0)?k:Oe,Oe=0;break}else{Oe=B+Q-O|0,Oe=(Oe|0)>0?Oe:0,k=(k|0)<(Oe|0)?k:Oe,Oe=0;break}}else M=m,Oe=d&8;while(!1);if(Qe=k|Oe,j=(Qe|0)!=0&1,se=(M|32|0)==102,se)Je=0,B=(Q|0)>0?Q:0;else{if(B=(Q|0)<0?f:Q,B=Ld(B,((B|0)<0)<<31>>31,Pr)|0,O=Pr,(O-B|0)<2)do B=B+-1|0,o[B>>0]=48;while((O-B|0)<2);o[B+-1>>0]=(Q>>31&2)+43,B=B+-2|0,o[B>>0]=M,Je=B,B=O-B|0}if(B=cr+1+k+j+B|0,Ds(s,32,c,B,d),as(s,Or,cr),Ds(s,48,c,B,d^65536),se){M=_e>>>0>Xt>>>0?Xt:_e,Oe=ar+9|0,j=Oe,se=ar+8|0,O=M;do{if(Q=Ld(n[O>>2]|0,0,Oe)|0,(O|0)==(M|0))(Q|0)==(Oe|0)&&(o[se>>0]=48,Q=se);else if(Q>>>0>ar>>>0){Od(ar|0,48,Q-Tr|0)|0;do Q=Q+-1|0;while(Q>>>0>ar>>>0)}as(s,Q,j-Q|0),O=O+4|0}while(O>>>0<=Xt>>>0);if(Qe|0&&as(s,5710,1),O>>>0>>0&(k|0)>0)for(;;){if(Q=Ld(n[O>>2]|0,0,Oe)|0,Q>>>0>ar>>>0){Od(ar|0,48,Q-Tr|0)|0;do Q=Q+-1|0;while(Q>>>0>ar>>>0)}if(as(s,Q,(k|0)<9?k:9),O=O+4|0,Q=k+-9|0,O>>>0>>0&(k|0)>9)k=Q;else{k=Q;break}}Ds(s,48,k+9|0,9,0)}else{if(Qe=$e?lt:_e+4|0,(k|0)>-1){$e=ar+9|0,Oe=(Oe|0)==0,f=$e,j=0-Tr|0,se=ar+8|0,M=_e;do{Q=Ld(n[M>>2]|0,0,$e)|0,(Q|0)==($e|0)&&(o[se>>0]=48,Q=se);do if((M|0)==(_e|0)){if(O=Q+1|0,as(s,Q,1),Oe&(k|0)<1){Q=O;break}as(s,5710,1),Q=O}else{if(Q>>>0<=ar>>>0)break;Od(ar|0,48,Q+j|0)|0;do Q=Q+-1|0;while(Q>>>0>ar>>>0)}while(!1);Tr=f-Q|0,as(s,Q,(k|0)>(Tr|0)?Tr:k),k=k-Tr|0,M=M+4|0}while(M>>>0>>0&(k|0)>-1)}Ds(s,48,k+18|0,18,0),as(s,Je,Pr-Je|0)}Ds(s,32,c,B,d^8192)}else ar=(m&32|0)!=0,B=cr+3|0,Ds(s,32,c,B,d&-65537),as(s,Or,cr),as(s,l!=l|!1?ar?5686:5690:ar?5678:5682,3),Ds(s,32,c,B,d^8192);while(!1);return C=xn,((B|0)<(c|0)?c:B)|0}function i7(s){s=+s;var l=0;return E[v>>3]=s,l=n[v>>2]|0,we=n[v+4>>2]|0,l|0}function qUe(s,l){return s=+s,l=l|0,+ +s7(s,l)}function s7(s,l){s=+s,l=l|0;var c=0,f=0,d=0;switch(E[v>>3]=s,c=n[v>>2]|0,f=n[v+4>>2]|0,d=eD(c|0,f|0,52)|0,d&2047){case 0:{s!=0?(s=+s7(s*18446744073709552e3,l),c=(n[l>>2]|0)+-64|0):c=0,n[l>>2]=c;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[v>>2]=c,n[v+4>>2]=f&-2146435073|1071644672,s=+E[v>>3]}return+s}function jUe(s,l,c){s=s|0,l=l|0,c=c|0;do if(s){if(l>>>0<128){o[s>>0]=l,s=1;break}if(!(n[n[(GUe()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){o[s>>0]=l,s=1;break}else{n[(Nd()|0)>>2]=84,s=-1;break}if(l>>>0<2048){o[s>>0]=l>>>6|192,o[s+1>>0]=l&63|128,s=2;break}if(l>>>0<55296|(l&-8192|0)==57344){o[s>>0]=l>>>12|224,o[s+1>>0]=l>>>6&63|128,o[s+2>>0]=l&63|128,s=3;break}if((l+-65536|0)>>>0<1048576){o[s>>0]=l>>>18|240,o[s+1>>0]=l>>>12&63|128,o[s+2>>0]=l>>>6&63|128,o[s+3>>0]=l&63|128,s=4;break}else{n[(Nd()|0)>>2]=84,s=-1;break}}else s=1;while(!1);return s|0}function GUe(){return gR()|0}function YUe(){return gR()|0}function WUe(s,l){s=s|0,l=l|0;var c=0,f=0;for(f=0;;){if((u[5712+f>>0]|0)==(s|0)){s=2;break}if(c=f+1|0,(c|0)==87){c=5800,f=87,s=5;break}else f=c}if((s|0)==2&&(f?(c=5800,s=5):c=5800),(s|0)==5)for(;;){do s=c,c=c+1|0;while(o[s>>0]|0);if(f=f+-1|0,f)s=5;else break}return KUe(c,n[l+20>>2]|0)|0}function KUe(s,l){return s=s|0,l=l|0,VUe(s,l)|0}function VUe(s,l){return s=s|0,l=l|0,l?l=zUe(n[l>>2]|0,n[l+4>>2]|0,s)|0:l=0,(l|0?l:s)|0}function zUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;se=(n[s>>2]|0)+1794895138|0,m=x0(n[s+8>>2]|0,se)|0,f=x0(n[s+12>>2]|0,se)|0,d=x0(n[s+16>>2]|0,se)|0;e:do if(m>>>0>>2>>>0&&(j=l-(m<<2)|0,f>>>0>>0&d>>>0>>0)&&!((d|f)&3|0)){for(j=f>>>2,M=d>>>2,O=0;;){if(k=m>>>1,Q=O+k|0,B=Q<<1,d=B+j|0,f=x0(n[s+(d<<2)>>2]|0,se)|0,d=x0(n[s+(d+1<<2)>>2]|0,se)|0,!(d>>>0>>0&f>>>0<(l-d|0)>>>0)){f=0;break e}if(o[s+(d+f)>>0]|0){f=0;break e}if(f=$9(c,s+d|0)|0,!f)break;if(f=(f|0)<0,(m|0)==1){f=0;break e}else O=f?O:Q,m=f?k:m-k|0}f=B+M|0,d=x0(n[s+(f<<2)>>2]|0,se)|0,f=x0(n[s+(f+1<<2)>>2]|0,se)|0,f>>>0>>0&d>>>0<(l-f|0)>>>0?f=o[s+(f+d)>>0]|0?0:s+f|0:f=0}else f=0;while(!1);return f|0}function x0(s,l){s=s|0,l=l|0;var c=0;return c=p7(s|0)|0,(l|0?c:s)|0}function JUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=c+16|0,d=n[f>>2]|0,d?m=5:XUe(c)|0?f=0:(d=n[f>>2]|0,m=5);e:do if((m|0)==5){if(k=c+20|0,B=n[k>>2]|0,f=B,(d-B|0)>>>0>>0){f=rD[n[c+36>>2]&7](c,s,l)|0;break}t:do if((o[c+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=s;break t}if(d=B+-1|0,(o[s+d>>0]|0)==10)break;B=d}if(f=rD[n[c+36>>2]&7](c,s,B)|0,f>>>0>>0)break e;m=B,d=s+B|0,l=l-B|0,f=n[k>>2]|0}else m=0,d=s;while(!1);Dr(f|0,d|0,l|0)|0,n[k>>2]=(n[k>>2]|0)+l,f=m+l|0}while(!1);return f|0}function XUe(s){s=s|0;var l=0,c=0;return l=s+74|0,c=o[l>>0]|0,o[l>>0]=c+255|c,l=n[s>>2]|0,l&8?(n[s>>2]=l|32,s=-1):(n[s+8>>2]=0,n[s+4>>2]=0,c=n[s+44>>2]|0,n[s+28>>2]=c,n[s+20>>2]=c,n[s+16>>2]=c+(n[s+48>>2]|0),s=0),s|0}function _n(s,l){s=y(s),l=y(l);var c=0,f=0;c=o7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=o7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?l:s;break}else{s=s>2]=s,n[v>>2]|0|0}function k0(s,l){s=y(s),l=y(l);var c=0,f=0;c=a7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=a7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?s:l;break}else{s=s>2]=s,n[v>>2]|0|0}function mR(s,l){s=y(s),l=y(l);var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0;m=(h[v>>2]=s,n[v>>2]|0),k=(h[v>>2]=l,n[v>>2]|0),c=m>>>23&255,B=k>>>23&255,Q=m&-2147483648,d=k<<1;e:do if(d|0&&!((c|0)==255|((ZUe(l)|0)&2147483647)>>>0>2139095040)){if(f=m<<1,f>>>0<=d>>>0)return l=y(s*y(0)),y((f|0)==(d|0)?l:s);if(c)f=m&8388607|8388608;else{if(c=m<<9,(c|0)>-1){f=c,c=0;do c=c+-1|0,f=f<<1;while((f|0)>-1)}else c=0;f=m<<1-c}if(B)k=k&8388607|8388608;else{if(m=k<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,k=k<<1-d}d=f-k|0,m=(d|0)>-1;t:do if((c|0)>(B|0)){for(;;){if(m)if(d)f=d;else break;if(f=f<<1,c=c+-1|0,d=f-k|0,m=(d|0)>-1,(c|0)<=(B|0))break t}l=y(s*y(0));break e}while(!1);if(m)if(d)f=d;else{l=y(s*y(0));break}if(f>>>0<8388608)do f=f<<1,c=c+-1|0;while(f>>>0<8388608);(c|0)>0?c=f+-8388608|c<<23:c=f>>>(1-c|0),l=(n[v>>2]=c|Q,y(h[v>>2]))}else O=3;while(!1);return(O|0)==3&&(l=y(s*l),l=y(l/l)),y(l)}function ZUe(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function $Ue(s,l){return s=s|0,l=l|0,e7(n[582]|0,s,l)|0}function Jr(s){s=s|0,Tt()}function Md(s){s=s|0}function e3e(s,l){return s=s|0,l=l|0,0}function t3e(s){return s=s|0,(l7(s+4|0)|0)==-1?(ef[n[(n[s>>2]|0)+8>>2]&127](s),s=1):s=0,s|0}function l7(s){s=s|0;var l=0;return l=n[s>>2]|0,n[s>>2]=l+-1,l+-1|0}function Sp(s){s=s|0,t3e(s)|0&&r3e(s)}function r3e(s){s=s|0;var l=0;l=s+8|0,n[l>>2]|0&&(l7(l)|0)!=-1||ef[n[(n[s>>2]|0)+16>>2]&127](s)}function Kt(s){s=s|0;var l=0;for(l=s|0?s:1;s=Jv(l)|0,!(s|0);){if(s=i3e()|0,!s){s=0;break}B7[s&0]()}return s|0}function c7(s){return s=s|0,Kt(s)|0}function gt(s){s=s|0,Xv(s)}function n3e(s){s=s|0,(o[s+11>>0]|0)<0&>(n[s>>2]|0)}function i3e(){var s=0;return s=n[2923]|0,n[2923]=s+0,s|0}function s3e(){}function $v(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f=l-f-(c>>>0>s>>>0|0)>>>0,we=f,s-c>>>0|0|0}function yR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,c=s+c>>>0,we=l+f+(c>>>0>>0|0)>>>0,c|0|0}function Od(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(m=s+c|0,l=l&255,(c|0)>=67){for(;s&3;)o[s>>0]=l,s=s+1|0;for(f=m&-4|0,d=f-64|0,B=l|l<<8|l<<16|l<<24;(s|0)<=(d|0);)n[s>>2]=B,n[s+4>>2]=B,n[s+8>>2]=B,n[s+12>>2]=B,n[s+16>>2]=B,n[s+20>>2]=B,n[s+24>>2]=B,n[s+28>>2]=B,n[s+32>>2]=B,n[s+36>>2]=B,n[s+40>>2]=B,n[s+44>>2]=B,n[s+48>>2]=B,n[s+52>>2]=B,n[s+56>>2]=B,n[s+60>>2]=B,s=s+64|0;for(;(s|0)<(f|0);)n[s>>2]=B,s=s+4|0}for(;(s|0)<(m|0);)o[s>>0]=l,s=s+1|0;return m-c|0}function u7(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(we=l<>>32-c,s<>>c,s>>>c|(l&(1<>>c-32|0)}function Dr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;if((c|0)>=8192)return fc(s|0,l|0,c|0)|0;if(m=s|0,d=s+c|0,(s&3)==(l&3)){for(;s&3;){if(!c)return m|0;o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0,c=c-1|0}for(c=d&-4|0,f=c-64|0;(s|0)<=(f|0);)n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2],n[s+16>>2]=n[l+16>>2],n[s+20>>2]=n[l+20>>2],n[s+24>>2]=n[l+24>>2],n[s+28>>2]=n[l+28>>2],n[s+32>>2]=n[l+32>>2],n[s+36>>2]=n[l+36>>2],n[s+40>>2]=n[l+40>>2],n[s+44>>2]=n[l+44>>2],n[s+48>>2]=n[l+48>>2],n[s+52>>2]=n[l+52>>2],n[s+56>>2]=n[l+56>>2],n[s+60>>2]=n[l+60>>2],s=s+64|0,l=l+64|0;for(;(s|0)<(c|0);)n[s>>2]=n[l>>2],s=s+4|0,l=l+4|0}else for(c=d-4|0;(s|0)<(c|0);)o[s>>0]=o[l>>0]|0,o[s+1>>0]=o[l+1>>0]|0,o[s+2>>0]=o[l+2>>0]|0,o[s+3>>0]=o[l+3>>0]|0,s=s+4|0,l=l+4|0;for(;(s|0)<(d|0);)o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0;return m|0}function A7(s){s=s|0;var l=0;return l=o[L+(s&255)>>0]|0,(l|0)<8?l|0:(l=o[L+(s>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=o[L+(s>>16&255)>>0]|0,(l|0)<8?l+16|0:(o[L+(s>>>24)>>0]|0)+24|0))}function f7(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0;if(M=s,Q=l,O=Q,B=c,se=f,k=se,!O)return m=(d|0)!=0,k?m?(n[d>>2]=s|0,n[d+4>>2]=l&0,se=0,d=0,we=se,d|0):(se=0,d=0,we=se,d|0):(m&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),se=0,d=(M>>>0)/(B>>>0)>>>0,we=se,d|0);m=(k|0)==0;do if(B){if(!m){if(m=(b(k|0)|0)-(b(O|0)|0)|0,m>>>0<=31){j=m+1|0,k=31-m|0,l=m-31>>31,B=j,s=M>>>(j>>>0)&l|O<>>(j>>>0)&l,m=0,k=M<>2]=s|0,n[d+4>>2]=Q|l&0,se=0,d=0,we=se,d|0):(se=0,d=0,we=se,d|0)}if(m=B-1|0,m&B|0){k=(b(B|0)|0)+33-(b(O|0)|0)|0,Oe=64-k|0,j=32-k|0,Q=j>>31,je=k-32|0,l=je>>31,B=k,s=j-1>>31&O>>>(je>>>0)|(O<>>(k>>>0))&l,l=l&O>>>(k>>>0),m=M<>>(je>>>0))&Q|M<>31;break}return d|0&&(n[d>>2]=m&M,n[d+4>>2]=0),(B|0)==1?(je=Q|l&0,Oe=s|0|0,we=je,Oe|0):(Oe=A7(B|0)|0,je=O>>>(Oe>>>0)|0,Oe=O<<32-Oe|M>>>(Oe>>>0)|0,we=je,Oe|0)}else{if(m)return d|0&&(n[d>>2]=(O>>>0)%(B>>>0),n[d+4>>2]=0),je=0,Oe=(O>>>0)/(B>>>0)>>>0,we=je,Oe|0;if(!M)return d|0&&(n[d>>2]=0,n[d+4>>2]=(O>>>0)%(k>>>0)),je=0,Oe=(O>>>0)/(k>>>0)>>>0,we=je,Oe|0;if(m=k-1|0,!(m&k))return d|0&&(n[d>>2]=s|0,n[d+4>>2]=m&O|l&0),je=0,Oe=O>>>((A7(k|0)|0)>>>0),we=je,Oe|0;if(m=(b(k|0)|0)-(b(O|0)|0)|0,m>>>0<=30){l=m+1|0,k=31-m|0,B=l,s=O<>>(l>>>0),l=O>>>(l>>>0),m=0,k=M<>2]=s|0,n[d+4>>2]=Q|l&0,je=0,Oe=0,we=je,Oe|0):(je=0,Oe=0,we=je,Oe|0)}while(!1);if(!B)O=k,Q=0,k=0;else{j=c|0|0,M=se|f&0,O=yR(j|0,M|0,-1,-1)|0,c=we,Q=k,k=0;do f=Q,Q=m>>>31|Q<<1,m=k|m<<1,f=s<<1|f>>>31|0,se=s>>>31|l<<1|0,$v(O|0,c|0,f|0,se|0)|0,Oe=we,je=Oe>>31|((Oe|0)<0?-1:0)<<1,k=je&1,s=$v(f|0,se|0,je&j|0,(((Oe|0)<0?-1:0)>>31|((Oe|0)<0?-1:0)<<1)&M|0)|0,l=we,B=B-1|0;while(B|0);O=Q,Q=0}return B=0,d|0&&(n[d>>2]=s,n[d+4>>2]=l),je=(m|0)>>>31|(O|B)<<1|(B<<1|m>>>31)&0|Q,Oe=(m<<1|0)&-2|k,we=je,Oe|0}function ER(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f7(s,l,c,f,0)|0}function xp(s){s=s|0;var l=0,c=0;return c=s+15&-16|0,l=n[I>>2]|0,s=l+c|0,(c|0)>0&(s|0)<(l|0)|(s|0)<0?(ie()|0,vA(12),-1):(n[I>>2]=s,(s|0)>($()|0)&&!(X()|0)?(n[I>>2]=l,vA(12),-1):l|0)}function ww(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if((l|0)<(s|0)&(s|0)<(l+c|0)){for(f=s,l=l+c|0,s=s+c|0;(c|0)>0;)s=s-1|0,l=l-1|0,c=c-1|0,o[s>>0]=o[l>>0]|0;s=f}else Dr(s,l,c)|0;return s|0}function CR(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;return m=C,C=C+16|0,d=m|0,f7(s,l,c,f,d)|0,C=m,we=n[d+4>>2]|0,n[d>>2]|0|0}function p7(s){return s=s|0,(s&255)<<24|(s>>8&255)<<16|(s>>16&255)<<8|s>>>24|0}function o3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,h7[s&1](l|0,c|0,f|0,d|0,m|0)}function a3e(s,l,c){s=s|0,l=l|0,c=y(c),g7[s&1](l|0,y(c))}function l3e(s,l,c){s=s|0,l=l|0,c=+c,d7[s&31](l|0,+c)}function c3e(s,l,c,f){return s=s|0,l=l|0,c=y(c),f=y(f),y(m7[s&0](l|0,y(c),y(f)))}function u3e(s,l){s=s|0,l=l|0,ef[s&127](l|0)}function A3e(s,l,c){s=s|0,l=l|0,c=c|0,tf[s&31](l|0,c|0)}function f3e(s,l){return s=s|0,l=l|0,F0[s&31](l|0)|0}function p3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,y7[s&1](l|0,+c,+f,d|0)}function h3e(s,l,c,f){s=s|0,l=l|0,c=+c,f=+f,V3e[s&1](l|0,+c,+f)}function g3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,rD[s&7](l|0,c|0,f|0)|0}function d3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,+z3e[s&1](l|0,c|0,f|0)}function m3e(s,l){return s=s|0,l=l|0,+E7[s&15](l|0)}function y3e(s,l,c){return s=s|0,l=l|0,c=+c,J3e[s&1](l|0,+c)|0}function E3e(s,l,c){return s=s|0,l=l|0,c=c|0,IR[s&15](l|0,c|0)|0}function C3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=+f,d=+d,m=m|0,X3e[s&1](l|0,c|0,+f,+d,m|0)}function w3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,Z3e[s&1](l|0,c|0,f|0,d|0,m|0,B|0)}function I3e(s,l,c){return s=s|0,l=l|0,c=c|0,+C7[s&7](l|0,c|0)}function B3e(s){return s=s|0,nD[s&7]()|0}function v3e(s,l,c,f,d,m){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,w7[s&1](l|0,c|0,f|0,d|0,m|0)|0}function D3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=+d,$3e[s&1](l|0,c|0,f|0,+d)}function P3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,I7[s&1](l|0,c|0,y(f),d|0,y(m),B|0)}function b3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,vw[s&15](l|0,c|0,f|0)}function S3e(s){s=s|0,B7[s&0]()}function x3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,v7[s&15](l|0,c|0,+f)}function k3e(s,l,c){return s=s|0,l=+l,c=+c,e_e[s&1](+l,+c)|0}function Q3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,BR[s&15](l|0,c|0,f|0,d|0)}function F3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(0)}function R3e(s,l){s=s|0,l=y(l),F(1)}function Ea(s,l){s=s|0,l=+l,F(2)}function T3e(s,l,c){return s=s|0,l=y(l),c=y(c),F(3),Xe}function Er(s){s=s|0,F(4)}function Iw(s,l){s=s|0,l=l|0,F(5)}function Xa(s){return s=s|0,F(6),0}function N3e(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,F(7)}function L3e(s,l,c){s=s|0,l=+l,c=+c,F(8)}function M3e(s,l,c){return s=s|0,l=l|0,c=c|0,F(9),0}function O3e(s,l,c){return s=s|0,l=l|0,c=c|0,F(10),0}function Q0(s){return s=s|0,F(11),0}function U3e(s,l){return s=s|0,l=+l,F(12),0}function Bw(s,l){return s=s|0,l=l|0,F(13),0}function _3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,F(14)}function H3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,F(15)}function wR(s,l){return s=s|0,l=l|0,F(16),0}function q3e(){return F(17),0}function j3e(s,l,c,f,d){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(18),0}function G3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,F(19)}function Y3e(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,F(20)}function tD(s,l,c){s=s|0,l=l|0,c=c|0,F(21)}function W3e(){F(22)}function Ud(s,l,c){s=s|0,l=l|0,c=+c,F(23)}function K3e(s,l){return s=+s,l=+l,F(24),0}function _d(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,F(25)}var h7=[F3e,jLe],g7=[R3e,fo],d7=[Ea,fw,pw,lF,cF,Dl,hw,uF,xd,ku,dw,AF,Lv,WA,Mv,kd,Ov,Uv,Qd,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea],m7=[T3e],ef=[Er,Md,BDe,vDe,DDe,exe,txe,rxe,yNe,ENe,CNe,kLe,QLe,FLe,Z4e,$4e,eUe,ds,Qv,Sd,YA,gw,Eve,Cve,pDe,RDe,YDe,cPe,DPe,qPe,sbe,Cbe,Nbe,Xbe,pSe,xSe,YSe,Exe,Nxe,Xxe,pke,xke,Yke,uQe,DQe,UQe,tFe,Sc,FFe,VFe,pRe,QRe,WRe,pTe,BTe,PTe,jTe,WTe,cNe,INe,DNe,qNe,oLe,eG,HMe,yOe,ROe,VOe,d4e,Q4e,q4e,Y4e,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er],tf=[Iw,tF,rF,Aw,xu,nF,iF,wp,sF,oF,aF,Nv,KA,Ve,At,Wt,vr,bn,Qr,pF,ove,xve,hQe,SQe,NRe,GMe,hLe,O9,Iw,Iw,Iw,Iw],F0=[Xa,xUe,eF,D,fe,De,vt,wt,St,_r,di,po,nve,ive,wve,iFe,JRe,YNe,VMe,Va,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa],y7=[N3e,Ive],V3e=[L3e,fNe],rD=[M3e,Z9,kUe,RUe,WPe,Bxe,LFe,ZOe],z3e=[O3e,mSe],E7=[Q0,Yo,nt,Sn,Bve,vve,Dve,Pve,bve,Sve,Q0,Q0,Q0,Q0,Q0,Q0],J3e=[U3e,CTe],IR=[Bw,e3e,sve,mDe,pPe,lbe,Bbe,zSe,Uxe,jQe,xv,MOe,Bw,Bw,Bw,Bw],X3e=[_3e,zDe],Z3e=[H3e,C4e],C7=[wR,ai,kve,Qve,Fve,RSe,wR,wR],nD=[q3e,Rve,cw,ma,kTe,JTe,xNe,z4e],w7=[j3e,nw],$3e=[G3e,mke],I7=[Y3e,ave],vw=[tD,T,os,tn,ho,xPe,Obe,Rke,zke,bd,fMe,IOe,N4e,tD,tD,tD],B7=[W3e],v7=[Ud,Fv,Rv,Tv,GA,_v,fF,P,tke,ZFe,dTe,Ud,Ud,Ud,Ud,Ud],e_e=[K3e,dNe],BR=[_d,tSe,fFe,mRe,sTe,LTe,rNe,LNe,ALe,eOe,oUe,_d,_d,_d,_d,_d];return{_llvm_bswap_i32:p7,dynCall_idd:k3e,dynCall_i:B3e,_i64Subtract:$v,___udivdi3:ER,dynCall_vif:a3e,setThrew:du,dynCall_viii:b3e,_bitshift64Lshr:eD,_bitshift64Shl:u7,dynCall_vi:u3e,dynCall_viiddi:C3e,dynCall_diii:d3e,dynCall_iii:E3e,_memset:Od,_sbrk:xp,_memcpy:Dr,__GLOBAL__sub_I_Yoga_cpp:Pd,dynCall_vii:A3e,___uremdi3:CR,dynCall_vid:l3e,stackAlloc:lo,_nbind_init:mUe,getTempRet0:qa,dynCall_di:m3e,dynCall_iid:y3e,setTempRet0:SA,_i64Add:yR,dynCall_fiff:c3e,dynCall_iiii:g3e,_emscripten_get_global_libc:SUe,dynCall_viid:x3e,dynCall_viiid:D3e,dynCall_viififi:P3e,dynCall_ii:f3e,__GLOBAL__sub_I_Binding_cc:RMe,dynCall_viiii:Q3e,dynCall_iiiiii:v3e,stackSave:dc,dynCall_viiiii:o3e,__GLOBAL__sub_I_nbind_cc:Tve,dynCall_vidd:h3e,_free:Xv,runPostSets:s3e,dynCall_viiiiii:w3e,establishStackSpace:qi,_memmove:ww,stackRestore:gu,_malloc:Jv,__GLOBAL__sub_I_common_cc:$Ne,dynCall_viddi:p3e,dynCall_dii:I3e,dynCall_v:S3e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function o(){for(var p=0;p<3;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];o();for(var n=0;n0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(o){r=o(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var Jg=_((SKt,_Ee)=>{"use strict";var Xyt=OEe(),Zyt=UEe(),v6=!1,D6=null;Zyt({},function(t,e){if(!v6){if(v6=!0,t)throw t;D6=e}});if(!v6)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");_Ee.exports=Xyt(D6.bind,D6.lib)});var b6=_((xKt,P6)=>{"use strict";var HEe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);P6.exports=HEe;P6.exports.default=HEe});var jEe=_((kKt,qEe)=>{"use strict";qEe.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var Lk=_((QKt,S6)=>{"use strict";var $yt=BP(),eEt=b6(),tEt=jEe(),GEe=t=>{if(typeof t!="string"||t.length===0||(t=$yt(t),t.length===0))return 0;t=t.replace(tEt()," ");let e=0;for(let r=0;r=127&&o<=159||o>=768&&o<=879||(o>65535&&r++,e+=eEt(o)?2:1)}return e};S6.exports=GEe;S6.exports.default=GEe});var k6=_((FKt,x6)=>{"use strict";var rEt=Lk(),YEe=t=>{let e=0;for(let r of t.split(` +`))e=Math.max(e,rEt(r));return e};x6.exports=YEe;x6.exports.default=YEe});var WEe=_(W2=>{"use strict";var nEt=W2&&W2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(W2,"__esModule",{value:!0});var iEt=nEt(k6()),Q6={};W2.default=t=>{if(t.length===0)return{width:0,height:0};if(Q6[t])return Q6[t];let e=iEt.default(t),r=t.split(` +`).length;return Q6[t]={width:e,height:r},{width:e,height:r}}});var KEe=_(K2=>{"use strict";var sEt=K2&&K2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(K2,"__esModule",{value:!0});var dn=sEt(Jg()),oEt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?dn.default.POSITION_TYPE_ABSOLUTE:dn.default.POSITION_TYPE_RELATIVE)},aEt=(t,e)=>{"marginLeft"in e&&t.setMargin(dn.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(dn.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(dn.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(dn.default.EDGE_BOTTOM,e.marginBottom||0)},lEt=(t,e)=>{"paddingLeft"in e&&t.setPadding(dn.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(dn.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(dn.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(dn.default.EDGE_BOTTOM,e.paddingBottom||0)},cEt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(dn.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(dn.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(dn.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(dn.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(dn.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(dn.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(dn.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(dn.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(dn.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(dn.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(dn.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(dn.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(dn.default.JUSTIFY_SPACE_AROUND))},uEt=(t,e)=>{var r,o;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((o=e.minHeight)!==null&&o!==void 0?o:0))},AEt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?dn.default.DISPLAY_FLEX:dn.default.DISPLAY_NONE)},fEt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(dn.default.EDGE_TOP,r),t.setBorder(dn.default.EDGE_BOTTOM,r),t.setBorder(dn.default.EDGE_LEFT,r),t.setBorder(dn.default.EDGE_RIGHT,r)}};K2.default=(t,e={})=>{oEt(t,e),aEt(t,e),lEt(t,e),cEt(t,e),uEt(t,e),AEt(t,e),fEt(t,e)}});var JEe=_((NKt,zEe)=>{"use strict";var V2=Lk(),pEt=BP(),hEt=aI(),R6=new Set(["\x1B","\x9B"]),gEt=39,VEe=t=>`${R6.values().next().value}[${t}m`,dEt=t=>t.split(" ").map(e=>V2(e)),F6=(t,e,r)=>{let o=[...e],a=!1,n=V2(pEt(t[t.length-1]));for(let[u,A]of o.entries()){let p=V2(A);if(n+p<=r?t[t.length-1]+=A:(t.push(A),n=0),R6.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(n+=p,n===r&&u0&&t.length>1&&(t[t.length-2]+=t.pop())},mEt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(V2(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},yEt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let o="",a="",n,u=dEt(t),A=[""];for(let[p,h]of t.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let E=V2(A[A.length-1]);if(p!==0&&(E>=e&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),E=0),(E>0||r.trim===!1)&&(A[A.length-1]+=" ",E++)),r.hard&&u[p]>e){let I=e-E,v=1+Math.floor((u[p]-I-1)/e);Math.floor((u[p]-1)/e)e&&E>0&&u[p]>0){if(r.wordWrap===!1&&Ee&&r.wordWrap===!1){F6(A,h,e);continue}A[A.length-1]+=h}r.trim!==!1&&(A=A.map(mEt)),o=A.join(` +`);for(let[p,h]of[...o].entries()){if(a+=h,R6.has(h)){let I=parseFloat(/\d[^m]*/.exec(o.slice(p,p+4)));n=I===gEt?null:I}let E=hEt.codes.get(Number(n));n&&E&&(o[p+1]===` +`?a+=VEe(E):h===` +`&&(a+=VEe(n)))}return a};zEe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,` +`).split(` +`).map(o=>yEt(o,e,r)).join(` +`)});var $Ee=_((LKt,ZEe)=>{"use strict";var XEe="[\uD800-\uDBFF][\uDC00-\uDFFF]",EEt=t=>t&&t.exact?new RegExp(`^${XEe}$`):new RegExp(XEe,"g");ZEe.exports=EEt});var T6=_((MKt,nCe)=>{"use strict";var CEt=b6(),wEt=$Ee(),eCe=aI(),rCe=["\x1B","\x9B"],Mk=t=>`${rCe[0]}[${t}m`,tCe=(t,e,r)=>{let o=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let u=eCe.codes.get(parseInt(a,10));if(u){let A=t.indexOf(u.toString());A>=0?t.splice(A,1):o.push(Mk(e?u:n))}else if(e){o.push(Mk(0));break}else o.push(Mk(n))}if(e&&(o=o.filter((a,n)=>o.indexOf(a)===n),r!==void 0)){let a=Mk(eCe.codes.get(parseInt(r,10)));o=o.reduce((n,u)=>u===a?[u,...n]:[...n,u],[])}return o.join("")};nCe.exports=(t,e,r)=>{let o=[...t.normalize()],a=[];r=typeof r=="number"?r:o.length;let n=!1,u,A=0,p="";for(let[h,E]of o.entries()){let I=!1;if(rCe.includes(E)){let v=/\d[^m]*/.exec(t.slice(h,h+18));u=v&&v.length>0?v[0]:void 0,Ae&&A<=r)p+=E;else if(A===e&&!n&&u!==void 0)p=tCe(a);else if(A>=r){p+=tCe(a,!0,u);break}}return p}});var sCe=_((OKt,iCe)=>{"use strict";var Nh=T6(),IEt=Lk();function Ok(t,e,r){if(t.charAt(e)===" ")return e;for(let o=1;o<=3;o++)if(r){if(t.charAt(e+o)===" ")return e+o}else if(t.charAt(e-o)===" ")return e-o;return e}iCe.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:o,space:a,preferTruncationOnSpace:n}=r,u="\u2026",A=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return u;let p=IEt(t);if(p<=e)return t;if(o==="start"){if(n){let h=Ok(t,p-e+1,!0);return u+Nh(t,h,p).trim()}return a===!0&&(u+=" ",A=2),u+Nh(t,p-e+A,p)}if(o==="middle"){a===!0&&(u=" "+u+" ",A=3);let h=Math.floor(e/2);if(n){let E=Ok(t,h),I=Ok(t,p-(e-h)+1,!0);return Nh(t,0,E)+u+Nh(t,I,p).trim()}return Nh(t,0,h)+u+Nh(t,p-(e-h)+A,p)}if(o==="end"){if(n){let h=Ok(t,e-1);return Nh(t,0,h)+u}return a===!0&&(u=" "+u,A=2),Nh(t,0,e-A)+u}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${o}`)}});var L6=_(z2=>{"use strict";var oCe=z2&&z2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(z2,"__esModule",{value:!0});var BEt=oCe(JEe()),vEt=oCe(sCe()),N6={};z2.default=(t,e,r)=>{let o=t+String(e)+String(r);if(N6[o])return N6[o];let a=t;if(r==="wrap"&&(a=BEt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=vEt.default(t,e,{position:n})}return N6[o]=a,a}});var O6=_(M6=>{"use strict";Object.defineProperty(M6,"__esModule",{value:!0});var aCe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=aCe(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o))),e+=o}return e};M6.default=aCe});var U6=_(pi=>{"use strict";var J2=pi&&pi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pi,"__esModule",{value:!0});pi.setTextNodeValue=pi.createTextNode=pi.setStyle=pi.setAttribute=pi.removeChildNode=pi.insertBeforeNode=pi.appendChildNode=pi.createNode=pi.TEXT_NAME=void 0;var DEt=J2(Jg()),lCe=J2(WEe()),PEt=J2(KEe()),bEt=J2(L6()),SEt=J2(O6());pi.TEXT_NAME="#text";pi.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:DEt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(xEt.bind(null,r))),r};pi.appendChildNode=(t,e)=>{var r;e.parentNode&&pi.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&Uk(t)};pi.insertBeforeNode=(t,e,r)=>{var o,a;e.parentNode&&pi.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((o=t.yogaNode)===null||o===void 0||o.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&Uk(t)};pi.removeChildNode=(t,e)=>{var r,o;e.yogaNode&&((o=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||o===void 0||o.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&Uk(t)};pi.setAttribute=(t,e,r)=>{t.attributes[e]=r};pi.setStyle=(t,e)=>{t.style=e,t.yogaNode&&PEt.default(t.yogaNode,e)};pi.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaNode:void 0,parentNode:null,style:{}};return pi.setTextNodeValue(e,t),e};var xEt=function(t,e){var r,o;let a=t.nodeName==="#text"?t.nodeValue:SEt.default(t),n=lCe.default(a);if(n.width<=e||n.width>=1&&e>0&&e<1)return n;let u=(o=(r=t.style)===null||r===void 0?void 0:r.textWrap)!==null&&o!==void 0?o:"wrap",A=bEt.default(a,e,u);return lCe.default(A)},cCe=t=>{var e;if(!(!t||!t.parentNode))return(e=t.yogaNode)!==null&&e!==void 0?e:cCe(t.parentNode)},Uk=t=>{let e=cCe(t);e?.markDirty()};pi.setTextNodeValue=(t,e)=>{typeof e!="string"&&(e=String(e)),t.nodeValue=e,Uk(t)}});var hCe=_(X2=>{"use strict";var pCe=X2&&X2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(X2,"__esModule",{value:!0});var uCe=w6(),kEt=pCe(FEe()),ACe=pCe(Jg()),Mo=U6(),fCe=t=>{t?.unsetMeasureFunc(),t?.freeRecursive()};X2.default=kEt.default({schedulePassiveEffects:uCe.unstable_scheduleCallback,cancelPassiveEffects:uCe.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>{},resetAfterCommit:t=>{if(t.isStaticDirty){t.isStaticDirty=!1,typeof t.onImmediateRender=="function"&&t.onImmediateRender();return}typeof t.onRender=="function"&&t.onRender()},getChildHostContext:(t,e)=>{let r=t.isInsideText,o=e==="ink-text"||e==="ink-virtual-text";return r===o?t:{isInsideText:o}},shouldSetTextContent:()=>!1,createInstance:(t,e,r,o)=>{if(o.isInsideText&&t==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=t==="ink-text"&&o.isInsideText?"ink-virtual-text":t,n=Mo.createNode(a);for(let[u,A]of Object.entries(e))u!=="children"&&(u==="style"?Mo.setStyle(n,A):u==="internal_transform"?n.internal_transform=A:u==="internal_static"?n.internal_static=!0:Mo.setAttribute(n,u,A));return n},createTextInstance:(t,e,r)=>{if(!r.isInsideText)throw new Error(`Text string "${t}" must be rendered inside component`);return Mo.createTextNode(t)},resetTextContent:()=>{},hideTextInstance:t=>{Mo.setTextNodeValue(t,"")},unhideTextInstance:(t,e)=>{Mo.setTextNodeValue(t,e)},getPublicInstance:t=>t,hideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(ACe.default.DISPLAY_NONE)},unhideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(ACe.default.DISPLAY_FLEX)},appendInitialChild:Mo.appendChildNode,appendChild:Mo.appendChildNode,insertBefore:Mo.insertBeforeNode,finalizeInitialChildren:(t,e,r,o)=>(t.internal_static&&(o.isStaticDirty=!0,o.staticNode=t),!1),supportsMutation:!0,appendChildToContainer:Mo.appendChildNode,insertInContainerBefore:Mo.insertBeforeNode,removeChildFromContainer:(t,e)=>{Mo.removeChildNode(t,e),fCe(e.yogaNode)},prepareUpdate:(t,e,r,o,a)=>{t.internal_static&&(a.isStaticDirty=!0);let n={},u=Object.keys(o);for(let A of u)if(o[A]!==r[A]){if(A==="style"&&typeof o.style=="object"&&typeof r.style=="object"){let h=o.style,E=r.style,I=Object.keys(h);for(let v of I){if(v==="borderStyle"||v==="borderColor"){if(typeof n.style!="object"){let x={};n.style=x}n.style.borderStyle=h.borderStyle,n.style.borderColor=h.borderColor}if(h[v]!==E[v]){if(typeof n.style!="object"){let x={};n.style=x}n.style[v]=h[v]}}continue}n[A]=o[A]}return n},commitUpdate:(t,e)=>{for(let[r,o]of Object.entries(e))r!=="children"&&(r==="style"?Mo.setStyle(t,o):r==="internal_transform"?t.internal_transform=o:r==="internal_static"?t.internal_static=!0:Mo.setAttribute(t,r,o))},commitTextUpdate:(t,e,r)=>{Mo.setTextNodeValue(t,r)},removeChild:(t,e)=>{Mo.removeChildNode(t,e),fCe(e.yogaNode)}})});var dCe=_((jKt,gCe)=>{"use strict";gCe.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let o=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(o,r.indent.repeat(e))}});var mCe=_(Z2=>{"use strict";var QEt=Z2&&Z2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Z2,"__esModule",{value:!0});var _k=QEt(Jg());Z2.default=t=>t.getComputedWidth()-t.getComputedPadding(_k.default.EDGE_LEFT)-t.getComputedPadding(_k.default.EDGE_RIGHT)-t.getComputedBorder(_k.default.EDGE_LEFT)-t.getComputedBorder(_k.default.EDGE_RIGHT)});var yCe=_((YKt,FEt)=>{FEt.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var CCe=_((WKt,_6)=>{"use strict";var ECe=yCe();_6.exports=ECe;_6.exports.default=ECe});var ICe=_((KKt,wCe)=>{"use strict";var REt=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},TEt=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r +`:` +`)+r,a=o+1,o=t.indexOf(` +`,a)}while(o!==-1);return n+=t.substr(a),n};wCe.exports={stringReplaceAll:REt,stringEncaseCRLFWithFirstIndex:TEt}});var bCe=_((VKt,PCe)=>{"use strict";var NEt=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,BCe=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,LEt=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,MEt=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,OEt=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function DCe(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):OEt.get(t)||t}function UEt(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(LEt))r.push(a[2].replace(MEt,(A,p,h)=>p?DCe(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function _Et(t){BCe.lastIndex=0;let e=[],r;for(;(r=BCe.exec(t))!==null;){let o=r[1];if(r[2]){let a=UEt(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function vCe(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}PCe.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(NEt,(n,u,A,p,h,E)=>{if(u)a.push(DCe(u));else if(p){let I=a.join("");a=[],o.push(r.length===0?I:vCe(t,r)(I)),r.push({inverse:A,styles:_Et(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(vCe(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var Yk=_((zKt,RCe)=>{"use strict";var $2=aI(),{stdout:q6,stderr:j6}=aN(),{stringReplaceAll:HEt,stringEncaseCRLFWithFirstIndex:qEt}=ICe(),{isArray:Hk}=Array,xCe=["ansi","ansi","ansi256","ansi16m"],nC=Object.create(null),jEt=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=q6?q6.level:0;t.level=e.level===void 0?r:e.level},G6=class{constructor(e){return kCe(e)}},kCe=t=>{let e={};return jEt(e,t),e.template=(...r)=>FCe(e.template,...r),Object.setPrototypeOf(e,qk.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=G6,e.template};function qk(t){return kCe(t)}for(let[t,e]of Object.entries($2))nC[t]={get(){let r=jk(this,Y6(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};nC.visible={get(){let t=jk(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var QCe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of QCe)nC[t]={get(){let{level:e}=this;return function(...r){let o=Y6($2.color[xCe[e]][t](...r),$2.color.close,this._styler);return jk(this,o,this._isEmpty)}}};for(let t of QCe){let e="bg"+t[0].toUpperCase()+t.slice(1);nC[e]={get(){let{level:r}=this;return function(...o){let a=Y6($2.bgColor[xCe[r]][t](...o),$2.bgColor.close,this._styler);return jk(this,a,this._isEmpty)}}}}var GEt=Object.defineProperties(()=>{},{...nC,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),Y6=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},jk=(t,e,r)=>{let o=(...a)=>Hk(a[0])&&Hk(a[0].raw)?SCe(o,FCe(o,...a)):SCe(o,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(o,GEt),o._generator=t,o._styler=e,o._isEmpty=r,o},SCe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=HEt(e,r.close,r.open),r=r.parent;let n=e.indexOf(` +`);return n!==-1&&(e=qEt(e,a,o,n)),o+e+a},H6,FCe=(t,...e)=>{let[r]=e;if(!Hk(r)||!Hk(r.raw))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n{"use strict";var YEt=tB&&tB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(tB,"__esModule",{value:!0});var eB=YEt(Yk()),WEt=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,KEt=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,Wk=(t,e)=>e==="foreground"?t:"bg"+t[0].toUpperCase()+t.slice(1);tB.default=(t,e,r)=>{if(!e)return t;if(e in eB.default){let a=Wk(e,r);return eB.default[a](t)}if(e.startsWith("#")){let a=Wk("hex",r);return eB.default[a](e)(t)}if(e.startsWith("ansi")){let a=KEt.exec(e);if(!a)return t;let n=Wk(a[1],r),u=Number(a[2]);return eB.default[n](u)(t)}if(e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("hsv")||e.startsWith("hwb")){let a=WEt.exec(e);if(!a)return t;let n=Wk(a[1],r),u=Number(a[2]),A=Number(a[3]),p=Number(a[4]);return eB.default[n](u,A,p)(t)}return t}});var NCe=_(rB=>{"use strict";var TCe=rB&&rB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(rB,"__esModule",{value:!0});var VEt=TCe(CCe()),K6=TCe(W6());rB.default=(t,e,r,o)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),u=r.style.borderColor,A=VEt.default[r.style.borderStyle],p=K6.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,u,"foreground"),h=(K6.default(A.vertical,u,"foreground")+` +`).repeat(n-2),E=K6.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,u,"foreground");o.write(t,e,p,{transformers:[]}),o.write(t,e+1,h,{transformers:[]}),o.write(t+a-1,e+1,h,{transformers:[]}),o.write(t,e+n-1,E,{transformers:[]})}}});var MCe=_(nB=>{"use strict";var Xg=nB&&nB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nB,"__esModule",{value:!0});var zEt=Xg(Jg()),JEt=Xg(k6()),XEt=Xg(dCe()),ZEt=Xg(L6()),$Et=Xg(mCe()),eCt=Xg(O6()),tCt=Xg(NCe()),rCt=(t,e)=>{var r;let o=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(o){let a=o.getComputedLeft(),n=o.getComputedTop();e=` +`.repeat(n)+XEt.default(e,a)}return e},LCe=(t,e,r)=>{var o;let{offsetX:a=0,offsetY:n=0,transformers:u=[],skipStaticElements:A}=r;if(A&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===zEt.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),I=u;if(typeof t.internal_transform=="function"&&(I=[t.internal_transform,...u]),t.nodeName==="ink-text"){let v=eCt.default(t);if(v.length>0){let x=JEt.default(v),C=$Et.default(p);if(x>C){let R=(o=t.style.textWrap)!==null&&o!==void 0?o:"wrap";v=ZEt.default(v,C,R)}v=rCt(t,v),e.write(h,E,v,{transformers:I})}return}if(t.nodeName==="ink-box"&&tCt.default(h,E,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let v of t.childNodes)LCe(v,e,{offsetX:h,offsetY:E,transformers:I,skipStaticElements:A})}};nB.default=LCe});var UCe=_(($Kt,OCe)=>{"use strict";OCe.exports=t=>{t=Object.assign({onlyFirst:!1},t);let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t.onlyFirst?void 0:"g")}});var HCe=_((eVt,V6)=>{"use strict";var nCt=UCe(),_Ce=t=>typeof t=="string"?t.replace(nCt(),""):t;V6.exports=_Ce;V6.exports.default=_Ce});var GCe=_((tVt,jCe)=>{"use strict";var qCe="[\uD800-\uDBFF][\uDC00-\uDFFF]";jCe.exports=t=>t&&t.exact?new RegExp(`^${qCe}$`):new RegExp(qCe,"g")});var WCe=_((rVt,z6)=>{"use strict";var iCt=HCe(),sCt=GCe(),YCe=t=>iCt(t).replace(sCt()," ").length;z6.exports=YCe;z6.exports.default=YCe});var zCe=_(iB=>{"use strict";var VCe=iB&&iB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(iB,"__esModule",{value:!0});var KCe=VCe(T6()),oCt=VCe(WCe()),J6=class{constructor(e){this.writes=[];let{width:r,height:o}=e;this.width=r,this.height=o}write(e,r,o,a){let{transformers:n}=a;o&&this.writes.push({x:e,y:r,text:o,transformers:n})}get(){let e=[];for(let o=0;oo.trimRight()).join(` +`),height:e.length}}};iB.default=J6});var ZCe=_(sB=>{"use strict";var X6=sB&&sB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sB,"__esModule",{value:!0});var aCt=X6(Jg()),JCe=X6(MCe()),XCe=X6(zCe());sB.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,aCt.default.DIRECTION_LTR);let o=new XCe.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});JCe.default(t,o,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new XCe.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),JCe.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:u}=o.get();return{output:n,outputHeight:u,staticOutput:a?`${a.get().output} +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var rwe=_((sVt,twe)=>{"use strict";var $Ce=ve("stream"),ewe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],Z6={},lCt=t=>{let e=new $Ce.PassThrough,r=new $Ce.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let o=new console.Console(e,r);for(let a of ewe)Z6[a]=console[a],console[a]=o[a];return()=>{for(let a of ewe)console[a]=Z6[a];Z6={}}};twe.exports=lCt});var eq=_($6=>{"use strict";Object.defineProperty($6,"__esModule",{value:!0});$6.default=new WeakMap});var rq=_(tq=>{"use strict";Object.defineProperty(tq,"__esModule",{value:!0});var cCt=an(),nwe=cCt.createContext({exit:()=>{}});nwe.displayName="InternalAppContext";tq.default=nwe});var iq=_(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});var uCt=an(),iwe=uCt.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});iwe.displayName="InternalStdinContext";nq.default=iwe});var oq=_(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});var ACt=an(),swe=ACt.createContext({stdout:void 0,write:()=>{}});swe.displayName="InternalStdoutContext";sq.default=swe});var lq=_(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});var fCt=an(),owe=fCt.createContext({stderr:void 0,write:()=>{}});owe.displayName="InternalStderrContext";aq.default=owe});var Kk=_(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});var pCt=an(),awe=pCt.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});awe.displayName="InternalFocusContext";cq.default=awe});var cwe=_((fVt,lwe)=>{"use strict";var hCt=/[|\\{}()[\]^$+*?.-]/g;lwe.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(hCt,"\\$&")}});var pwe=_((pVt,fwe)=>{"use strict";var gCt=cwe(),dCt=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",Awe=[].concat(ve("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));Awe.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var uq=class t{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=t.nodeInternals()),"cwd"in e||(e.cwd=dCt),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,mCt(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...Awe]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(` +`)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let o=!1,a=null,n=[];return e.forEach(u=>{if(u=u.replace(/\\/g,"/"),this._internals.some(p=>p.test(u)))return;let A=/^\s*at /.test(u);o?u=u.trimEnd().replace(/^(\s+)at /,"$1"):(u=u.trim(),A&&(u=u.slice(3))),u=u.replace(`${this._cwd}/`,""),u&&(A?(a&&(n.push(a),a=null),n.push(u)):(o=!0,a=u))}),n.map(u=>`${r}${u} +`).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:o}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=o,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:o,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:u}=n;return Object.assign(Error,{prepareStackTrace:o,stackTraceLimit:a}),u}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let o={line:r.getLineNumber(),column:r.getColumnNumber()};uwe(o,r.getFileName(),this._cwd),r.isConstructor()&&(o.constructor=!0),r.isEval()&&(o.evalOrigin=r.getEvalOrigin()),r.isNative()&&(o.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(o.type=a);let n=r.getFunctionName();n&&(o.function=n);let u=r.getMethodName();return u&&n!==u&&(o.method=u),o}parseLine(e){let r=e&&e.match(yCt);if(!r)return null;let o=r[1]==="new",a=r[2],n=r[3],u=r[4],A=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],I=r[9],v=r[10]==="native",x=r[11]===")",C,R={};if(E&&(R.line=Number(E)),I&&(R.column=Number(I)),x&&h){let L=0;for(let U=h.length-1;U>0;U--)if(h.charAt(U)===")")L++;else if(h.charAt(U)==="("&&h.charAt(U-1)===" "&&(L--,L===-1&&h.charAt(U-1)===" ")){let z=h.slice(0,U-1);h=h.slice(U+1),a+=` (${z}`;break}}if(a){let L=a.match(ECt);L&&(a=L[1],C=L[2])}return uwe(R,h,this._cwd),o&&(R.constructor=!0),n&&(R.evalOrigin=n,R.evalLine=A,R.evalColumn=p,R.evalFile=u&&u.replace(/\\/g,"/")),v&&(R.native=!0),a&&(R.function=a),C&&a!==C&&(R.method=C),R}};function uwe(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function mCt(t){if(t.length===0)return[];let e=t.map(r=>gCt(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var yCt=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),ECt=/^(.*?) \[as (.*?)\]$/;fwe.exports=uq});var gwe=_((hVt,hwe)=>{"use strict";hwe.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var mwe=_((gVt,dwe)=>{"use strict";var CCt=gwe(),wCt=(t,e)=>{let r=[],o=t-e,a=t+e;for(let n=o;n<=a;n++)r.push(n);return r};dwe.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=CCt(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},wCt(e,r.around).filter(o=>t[o-1]!==void 0).map(o=>({line:o,value:t[o-1]}))}});var Vk=_(iu=>{"use strict";var ICt=iu&&iu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),BCt=iu&&iu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),vCt=iu&&iu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&ICt(e,t,r);return BCt(e,t),e},DCt=iu&&iu.__rest||function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a{var{children:r}=t,o=DCt(t,["children"]);let a=Object.assign(Object.assign({},o),{marginLeft:o.marginLeft||o.marginX||o.margin||0,marginRight:o.marginRight||o.marginX||o.margin||0,marginTop:o.marginTop||o.marginY||o.margin||0,marginBottom:o.marginBottom||o.marginY||o.margin||0,paddingLeft:o.paddingLeft||o.paddingX||o.padding||0,paddingRight:o.paddingRight||o.paddingX||o.padding||0,paddingTop:o.paddingTop||o.paddingY||o.padding||0,paddingBottom:o.paddingBottom||o.paddingY||o.padding||0});return ywe.default.createElement("ink-box",{ref:e,style:a},r)});Aq.displayName="Box";Aq.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};iu.default=Aq});var hq=_(oB=>{"use strict";var fq=oB&&oB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oB,"__esModule",{value:!0});var PCt=fq(an()),iC=fq(Yk()),Ewe=fq(W6()),pq=({color:t,backgroundColor:e,dimColor:r,bold:o,italic:a,underline:n,strikethrough:u,inverse:A,wrap:p,children:h})=>{if(h==null)return null;let E=I=>(r&&(I=iC.default.dim(I)),t&&(I=Ewe.default(I,t,"foreground")),e&&(I=Ewe.default(I,e,"background")),o&&(I=iC.default.bold(I)),a&&(I=iC.default.italic(I)),n&&(I=iC.default.underline(I)),u&&(I=iC.default.strikethrough(I)),A&&(I=iC.default.inverse(I)),I);return PCt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:p},internal_transform:E},h)};pq.displayName="Text";pq.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};oB.default=pq});var Bwe=_(su=>{"use strict";var bCt=su&&su.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),SCt=su&&su.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),xCt=su&&su.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&bCt(e,t,r);return SCt(e,t),e},aB=su&&su.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(su,"__esModule",{value:!0});var Cwe=xCt(ve("fs")),hs=aB(an()),wwe=aB(pwe()),kCt=aB(mwe()),zf=aB(Vk()),hA=aB(hq()),Iwe=new wwe.default({cwd:process.cwd(),internals:wwe.default.nodeInternals()}),QCt=({error:t})=>{let e=t.stack?t.stack.split(` +`).slice(1):void 0,r=e?Iwe.parseLine(e[0]):void 0,o,a=0;if(r?.file&&r?.line&&Cwe.existsSync(r.file)){let n=Cwe.readFileSync(r.file,"utf8");if(o=kCt.default(n,r.line),o)for(let{line:u}of o)a=Math.max(a,String(u).length)}return hs.default.createElement(zf.default,{flexDirection:"column",padding:1},hs.default.createElement(zf.default,null,hs.default.createElement(hA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),hs.default.createElement(hA.default,null," ",t.message)),r&&hs.default.createElement(zf.default,{marginTop:1},hs.default.createElement(hA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&o&&hs.default.createElement(zf.default,{marginTop:1,flexDirection:"column"},o.map(({line:n,value:u})=>hs.default.createElement(zf.default,{key:n},hs.default.createElement(zf.default,{width:a+1},hs.default.createElement(hA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),hs.default.createElement(hA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+u)))),t.stack&&hs.default.createElement(zf.default,{marginTop:1,flexDirection:"column"},t.stack.split(` +`).slice(1).map(n=>{let u=Iwe.parseLine(n);return u?hs.default.createElement(zf.default,{key:n},hs.default.createElement(hA.default,{dimColor:!0},"- "),hs.default.createElement(hA.default,{dimColor:!0,bold:!0},u.function),hs.default.createElement(hA.default,{dimColor:!0,color:"gray"}," ","(",u.file,":",u.line,":",u.column,")")):hs.default.createElement(zf.default,{key:n},hs.default.createElement(hA.default,{dimColor:!0},"- "),hs.default.createElement(hA.default,{dimColor:!0,bold:!0},n))})))};su.default=QCt});var Dwe=_(ou=>{"use strict";var FCt=ou&&ou.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),RCt=ou&&ou.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),TCt=ou&&ou.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&FCt(e,t,r);return RCt(e,t),e},$g=ou&&ou.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ou,"__esModule",{value:!0});var Zg=TCt(an()),vwe=$g(u6()),NCt=$g(rq()),LCt=$g(iq()),MCt=$g(oq()),OCt=$g(lq()),UCt=$g(Kk()),_Ct=$g(Bwe()),HCt=" ",qCt="\x1B[Z",jCt="\x1B",zk=class extends Zg.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===jCt&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===HCt&&this.focusNext(),e===qCt&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(e=>{let r=e.focusables[0].id;return{activeFocusId:this.findNextFocusable(e)||r}})},this.focusPrevious=()=>{this.setState(e=>{let r=e.focusables[e.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(e)||r}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(o=>{let a=o.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...o.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(o=>o.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r+1;o{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r-1;o>=0;o--)if(e.focusables[o].isActive)return e.focusables[o].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return Zg.default.createElement(NCt.default.Provider,{value:{exit:this.handleExit}},Zg.default.createElement(LCt.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},Zg.default.createElement(MCt.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},Zg.default.createElement(OCt.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},Zg.default.createElement(UCt.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?Zg.default.createElement(_Ct.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){vwe.default.hide(this.props.stdout)}componentWillUnmount(){vwe.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};ou.default=zk;zk.displayName="InternalApp"});var Swe=_(au=>{"use strict";var GCt=au&&au.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),YCt=au&&au.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),WCt=au&&au.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&GCt(e,t,r);return YCt(e,t),e},lu=au&&au.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(au,"__esModule",{value:!0});var KCt=lu(an()),Pwe=eO(),VCt=lu(pEe()),zCt=lu(s6()),JCt=lu(EEe()),XCt=lu(wEe()),gq=lu(hCe()),ZCt=lu(ZCe()),$Ct=lu(c6()),ewt=lu(rwe()),twt=WCt(U6()),rwt=lu(eq()),nwt=lu(Dwe()),sC=process.env.CI==="false"?!1:JCt.default,bwe=()=>{},dq=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:o,staticOutput:a}=ZCt.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==` +`;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(sC){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),o>=this.options.stdout.rows){this.options.stdout.write(zCt.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},XCt.default(this),this.options=e,this.rootNode=twt.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:Pwe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=VCt.default.create(e.stdout),this.throttledLog=e.debug?this.log:Pwe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=gq.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=$Ct.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),sC||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=KCt.default.createElement(nwt.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);gq.default.updateContainer(r,this.container,null,bwe)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(sC){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(sC){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),sC?this.options.stdout.write(this.lastOutput+` +`):this.options.debug||this.log.done(),this.isUnmounted=!0,gq.default.updateContainer(null,this.container,null,bwe),rwt.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!sC&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=ewt.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};au.default=dq});var kwe=_(lB=>{"use strict";var xwe=lB&&lB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lB,"__esModule",{value:!0});var iwt=xwe(Swe()),Jk=xwe(eq()),swt=ve("stream"),owt=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},awt(e)),o=lwt(r.stdout,()=>new iwt.default(r));return o.render(t),{rerender:o.render,unmount:()=>o.unmount(),waitUntilExit:o.waitUntilExit,cleanup:()=>Jk.default.delete(r.stdout),clear:o.clear}};lB.default=owt;var awt=(t={})=>t instanceof swt.Stream?{stdout:t,stdin:process.stdin}:t,lwt=(t,e)=>{let r;return Jk.default.has(t)?r=Jk.default.get(t):(r=e(),Jk.default.set(t,r)),r}});var Fwe=_(Jf=>{"use strict";var cwt=Jf&&Jf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),uwt=Jf&&Jf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Awt=Jf&&Jf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&cwt(e,t,r);return uwt(e,t),e};Object.defineProperty(Jf,"__esModule",{value:!0});var cB=Awt(an()),Qwe=t=>{let{items:e,children:r,style:o}=t,[a,n]=cB.useState(0),u=cB.useMemo(()=>e.slice(a),[e,a]);cB.useLayoutEffect(()=>{n(e.length)},[e.length]);let A=u.map((h,E)=>r(h,a+E)),p=cB.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},o),[o]);return cB.default.createElement("ink-box",{internal_static:!0,style:p},A)};Qwe.displayName="Static";Jf.default=Qwe});var Twe=_(uB=>{"use strict";var fwt=uB&&uB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uB,"__esModule",{value:!0});var pwt=fwt(an()),Rwe=({children:t,transform:e})=>t==null?null:pwt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);Rwe.displayName="Transform";uB.default=Rwe});var Lwe=_(AB=>{"use strict";var hwt=AB&&AB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(AB,"__esModule",{value:!0});var gwt=hwt(an()),Nwe=({count:t=1})=>gwt.default.createElement("ink-text",null,` +`.repeat(t));Nwe.displayName="Newline";AB.default=Nwe});var Uwe=_(fB=>{"use strict";var Mwe=fB&&fB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fB,"__esModule",{value:!0});var dwt=Mwe(an()),mwt=Mwe(Vk()),Owe=()=>dwt.default.createElement(mwt.default,{flexGrow:1});Owe.displayName="Spacer";fB.default=Owe});var Xk=_(pB=>{"use strict";var ywt=pB&&pB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pB,"__esModule",{value:!0});var Ewt=an(),Cwt=ywt(iq()),wwt=()=>Ewt.useContext(Cwt.default);pB.default=wwt});var Hwe=_(hB=>{"use strict";var Iwt=hB&&hB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hB,"__esModule",{value:!0});var _we=an(),Bwt=Iwt(Xk()),vwt=(t,e={})=>{let{stdin:r,setRawMode:o,internal_exitOnCtrlC:a}=Bwt.default();_we.useEffect(()=>{if(e.isActive!==!1)return o(!0),()=>{o(!1)}},[e.isActive,o]),_we.useEffect(()=>{if(e.isActive===!1)return;let n=u=>{let A=String(u),p={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!p.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),p.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),p.meta=!0);let h=A>="A"&&A<="Z",E=A>="\u0410"&&A<="\u042F";A.length===1&&(h||E)&&(p.shift=!0),p.tab&&A==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(A=""),(!(A==="c"&&p.ctrl)||!a)&&t(A,p)};return r?.on("data",n),()=>{r?.off("data",n)}},[e.isActive,r,a,t])};hB.default=vwt});var qwe=_(gB=>{"use strict";var Dwt=gB&&gB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(gB,"__esModule",{value:!0});var Pwt=an(),bwt=Dwt(rq()),Swt=()=>Pwt.useContext(bwt.default);gB.default=Swt});var jwe=_(dB=>{"use strict";var xwt=dB&&dB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(dB,"__esModule",{value:!0});var kwt=an(),Qwt=xwt(oq()),Fwt=()=>kwt.useContext(Qwt.default);dB.default=Fwt});var Gwe=_(mB=>{"use strict";var Rwt=mB&&mB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(mB,"__esModule",{value:!0});var Twt=an(),Nwt=Rwt(lq()),Lwt=()=>Twt.useContext(Nwt.default);mB.default=Lwt});var Wwe=_(EB=>{"use strict";var Ywe=EB&&EB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(EB,"__esModule",{value:!0});var yB=an(),Mwt=Ywe(Kk()),Owt=Ywe(Xk()),Uwt=({isActive:t=!0,autoFocus:e=!1}={})=>{let{isRawModeSupported:r,setRawMode:o}=Owt.default(),{activeId:a,add:n,remove:u,activate:A,deactivate:p}=yB.useContext(Mwt.default),h=yB.useMemo(()=>Math.random().toString().slice(2,7),[]);return yB.useEffect(()=>(n(h,{autoFocus:e}),()=>{u(h)}),[h,e]),yB.useEffect(()=>{t?A(h):p(h)},[t,h]),yB.useEffect(()=>{if(!(!r||!t))return o(!0),()=>{o(!1)}},[t]),{isFocused:!!h&&a===h}};EB.default=Uwt});var Kwe=_(CB=>{"use strict";var _wt=CB&&CB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(CB,"__esModule",{value:!0});var Hwt=an(),qwt=_wt(Kk()),jwt=()=>{let t=Hwt.useContext(qwt.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious}};CB.default=jwt});var Vwe=_(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.default=t=>{var e,r,o,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(o=t.yogaNode)===null||o===void 0?void 0:o.getComputedHeight())!==null&&a!==void 0?a:0}}});var ic=_(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});var Gwt=kwe();Object.defineProperty(ro,"render",{enumerable:!0,get:function(){return Gwt.default}});var Ywt=Vk();Object.defineProperty(ro,"Box",{enumerable:!0,get:function(){return Ywt.default}});var Wwt=hq();Object.defineProperty(ro,"Text",{enumerable:!0,get:function(){return Wwt.default}});var Kwt=Fwe();Object.defineProperty(ro,"Static",{enumerable:!0,get:function(){return Kwt.default}});var Vwt=Twe();Object.defineProperty(ro,"Transform",{enumerable:!0,get:function(){return Vwt.default}});var zwt=Lwe();Object.defineProperty(ro,"Newline",{enumerable:!0,get:function(){return zwt.default}});var Jwt=Uwe();Object.defineProperty(ro,"Spacer",{enumerable:!0,get:function(){return Jwt.default}});var Xwt=Hwe();Object.defineProperty(ro,"useInput",{enumerable:!0,get:function(){return Xwt.default}});var Zwt=qwe();Object.defineProperty(ro,"useApp",{enumerable:!0,get:function(){return Zwt.default}});var $wt=Xk();Object.defineProperty(ro,"useStdin",{enumerable:!0,get:function(){return $wt.default}});var eIt=jwe();Object.defineProperty(ro,"useStdout",{enumerable:!0,get:function(){return eIt.default}});var tIt=Gwe();Object.defineProperty(ro,"useStderr",{enumerable:!0,get:function(){return tIt.default}});var rIt=Wwe();Object.defineProperty(ro,"useFocus",{enumerable:!0,get:function(){return rIt.default}});var nIt=Kwe();Object.defineProperty(ro,"useFocusManager",{enumerable:!0,get:function(){return nIt.default}});var iIt=Vwe();Object.defineProperty(ro,"measureElement",{enumerable:!0,get:function(){return iIt.default}})});var Eq={};Vt(Eq,{Gem:()=>yq});var zwe,ed,yq,Zk=Et(()=>{zwe=Ze(ic()),ed=Ze(an()),yq=(0,ed.memo)(({active:t})=>{let e=(0,ed.useMemo)(()=>t?"\u25C9":"\u25EF",[t]),r=(0,ed.useMemo)(()=>t?"green":"yellow",[t]);return ed.default.createElement(zwe.Text,{color:r},e)})});var Xwe={};Vt(Xwe,{useKeypress:()=>td});function td({active:t},e,r){let{stdin:o}=(0,Jwe.useStdin)(),a=(0,$k.useCallback)((n,u)=>e(n,u),r);(0,$k.useEffect)(()=>{if(!(!t||!o))return o.on("keypress",a),()=>{o.off("keypress",a)}},[t,a,o])}var Jwe,$k,wB=Et(()=>{Jwe=Ze(ic()),$k=Ze(an())});var $we={};Vt($we,{FocusRequest:()=>Zwe,useFocusRequest:()=>Cq});var Zwe,Cq,wq=Et(()=>{wB();Zwe=(r=>(r.BEFORE="before",r.AFTER="after",r))(Zwe||{}),Cq=function({active:t},e,r){td({active:t},(o,a)=>{a.name==="tab"&&(a.shift?e("before"):e("after"))},r)}});var eIe={};Vt(eIe,{useListInput:()=>IB});var IB,eQ=Et(()=>{wB();IB=function(t,e,{active:r,minus:o,plus:a,set:n,loop:u=!0}){td({active:r},(A,p)=>{let h=e.indexOf(t);switch(p.name){case o:{let E=h-1;if(u){n(e[(e.length+E)%e.length]);return}if(E<0)return;n(e[E])}break;case a:{let E=h+1;if(u){n(e[E%e.length]);return}if(E>=e.length)return;n(e[E])}break}},[e,t,a,n,u])}});var tQ={};Vt(tQ,{ScrollableItems:()=>sIt});var Lh,Oa,sIt,rQ=Et(()=>{Lh=Ze(ic()),Oa=Ze(an());wq();eQ();sIt=({active:t=!0,children:e=[],radius:r=10,size:o=1,loop:a=!0,onFocusRequest:n,willReachEnd:u})=>{let A=L=>{if(L.key===null)throw new Error("Expected all children to have a key");return L.key},p=Oa.default.Children.map(e,L=>A(L)),h=p[0],[E,I]=(0,Oa.useState)(h),v=p.indexOf(E);(0,Oa.useEffect)(()=>{p.includes(E)||I(h)},[e]),(0,Oa.useEffect)(()=>{u&&v>=p.length-2&&u()},[v]),Cq({active:t&&!!n},L=>{n?.(L)},[n]),IB(E,p,{active:t,minus:"up",plus:"down",set:I,loop:a});let x=v-r,C=v+r;C>p.length&&(x-=C-p.length,C=p.length),x<0&&(C+=-x,x=0),C>=p.length&&(C=p.length-1);let R=[];for(let L=x;L<=C;++L){let U=p[L],z=t&&U===E;R.push(Oa.default.createElement(Lh.Box,{key:U,height:o},Oa.default.createElement(Lh.Box,{marginLeft:1,marginRight:1},Oa.default.createElement(Lh.Text,null,z?Oa.default.createElement(Lh.Text,{color:"cyan",bold:!0},">"):" ")),Oa.default.createElement(Lh.Box,null,Oa.default.cloneElement(e[L],{active:z}))))}return Oa.default.createElement(Lh.Box,{flexDirection:"column",width:"100%"},R)}});var tIe,Xf,rIe,Iq,nIe,Bq=Et(()=>{tIe=Ze(ic()),Xf=Ze(an()),rIe=ve("readline"),Iq=Xf.default.createContext(null),nIe=({children:t})=>{let{stdin:e,setRawMode:r}=(0,tIe.useStdin)();(0,Xf.useEffect)(()=>{r&&r(!0),e&&(0,rIe.emitKeypressEvents)(e)},[e,r]);let[o,a]=(0,Xf.useState)(new Map),n=(0,Xf.useMemo)(()=>({getAll:()=>o,get:u=>o.get(u),set:(u,A)=>a(new Map([...o,[u,A]]))}),[o,a]);return Xf.default.createElement(Iq.Provider,{value:n,children:t})}});var vq={};Vt(vq,{useMinistore:()=>oIt});function oIt(t,e){let r=(0,nQ.useContext)(Iq);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof t>"u")return r.getAll();let o=(0,nQ.useCallback)(n=>{r.set(t,n)},[t,r.set]),a=r.get(t);return typeof a>"u"&&(a=e),[a,o]}var nQ,Dq=Et(()=>{nQ=Ze(an());Bq()});var sQ={};Vt(sQ,{renderForm:()=>aIt});async function aIt(t,e,{stdin:r,stdout:o,stderr:a}){let n,u=p=>{let{exit:h}=(0,iQ.useApp)();td({active:!0},(E,I)=>{I.name==="return"&&(n=p,h())},[h,p])},{waitUntilExit:A}=(0,iQ.render)(Pq.default.createElement(nIe,null,Pq.default.createElement(t,{...e,useSubmit:u})),{stdin:r,stdout:o,stderr:a});return await A(),n}var iQ,Pq,oQ=Et(()=>{iQ=Ze(ic()),Pq=Ze(an());Bq();wB()});var aIe=_(BB=>{"use strict";Object.defineProperty(BB,"__esModule",{value:!0});BB.UncontrolledTextInput=void 0;var sIe=an(),bq=an(),iIe=ic(),rd=Yk(),oIe=({value:t,placeholder:e="",focus:r=!0,mask:o,highlightPastedText:a=!1,showCursor:n=!0,onChange:u,onSubmit:A})=>{let[{cursorOffset:p,cursorWidth:h},E]=bq.useState({cursorOffset:(t||"").length,cursorWidth:0});bq.useEffect(()=>{E(R=>{if(!r||!n)return R;let L=t||"";return R.cursorOffset>L.length-1?{cursorOffset:L.length,cursorWidth:0}:R})},[t,r,n]);let I=a?h:0,v=o?o.repeat(t.length):t,x=v,C=e?rd.grey(e):void 0;if(n&&r){C=e.length>0?rd.inverse(e[0])+rd.grey(e.slice(1)):rd.inverse(" "),x=v.length>0?"":rd.inverse(" ");let R=0;for(let L of v)R>=p-I&&R<=p?x+=rd.inverse(L):x+=L,R++;v.length>0&&p===v.length&&(x+=rd.inverse(" "))}return iIe.useInput((R,L)=>{if(L.upArrow||L.downArrow||L.ctrl&&R==="c"||L.tab||L.shift&&L.tab)return;if(L.return){A&&A(t);return}let U=p,z=t,te=0;L.leftArrow?n&&U--:L.rightArrow?n&&U++:L.backspace||L.delete?p>0&&(z=t.slice(0,p-1)+t.slice(p,t.length),U--):(z=t.slice(0,p)+R+t.slice(p,t.length),U+=R.length,R.length>1&&(te=R.length)),p<0&&(U=0),p>t.length&&(U=t.length),E({cursorOffset:U,cursorWidth:te}),z!==t&&u(z)},{isActive:r}),sIe.createElement(iIe.Text,null,e?v.length>0?x:C:x)};BB.default=oIe;BB.UncontrolledTextInput=t=>{let[e,r]=bq.useState("");return sIe.createElement(oIe,Object.assign({},t,{value:e,onChange:r}))}});var uIe={};Vt(uIe,{Pad:()=>Sq});var lIe,cIe,Sq,xq=Et(()=>{lIe=Ze(ic()),cIe=Ze(an()),Sq=({length:t,active:e})=>{if(t===0)return null;let r=t>1?` ${"-".repeat(t-1)}`:" ";return cIe.default.createElement(lIe.Text,{dimColor:!e},r)}});var AIe={};Vt(AIe,{ItemOptions:()=>lIt});var DB,Mh,lIt,fIe=Et(()=>{DB=Ze(ic()),Mh=Ze(an());eQ();Zk();xq();lIt=function({active:t,skewer:e,options:r,value:o,onChange:a,sizes:n=[]}){let u=r.filter(({label:p})=>!!p).map(({value:p})=>p),A=r.findIndex(p=>p.value===o&&p.label!="");return IB(o,u,{active:t,minus:"left",plus:"right",set:a}),Mh.default.createElement(Mh.default.Fragment,null,r.map(({label:p},h)=>{let E=h===A,I=n[h]-1||0,v=p.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),x=Math.max(0,I-v.length-2);return p?Mh.default.createElement(DB.Box,{key:p,width:I,marginLeft:1},Mh.default.createElement(DB.Text,{wrap:"truncate"},Mh.default.createElement(yq,{active:E})," ",p),e?Mh.default.createElement(Sq,{active:t,length:x}):null):Mh.default.createElement(DB.Box,{key:`spacer-${h}`,width:I,marginLeft:1})}))}});var bIe=_((nJt,PIe)=>{var Oq;PIe.exports=()=>(typeof Oq>"u"&&(Oq=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),Oq)});var VIe=_((SJt,KIe)=>{var Kq=Symbol("arg flag"),sc=class t extends Error{constructor(e,r){super(e),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,t.prototype)}};function HB(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:o=!1}={}){if(!t)throw new sc("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},n={},u={};for(let A of Object.keys(t)){if(!A)throw new sc("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new sc(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new sc(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof t[A]=="string"){n[A]=t[A];continue}let p=t[A],h=!1;if(Array.isArray(p)&&p.length===1&&typeof p[0]=="function"){let[E]=p;p=(I,v,x=[])=>(x.push(E(I,v,x[x.length-1])),x),h=E===Boolean||E[Kq]===!0}else if(typeof p=="function")h=p===Boolean||p[Kq]===!0;else throw new sc(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new sc(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");u[A]=[p,h]}for(let A=0,p=e.length;A0){a._=a._.concat(e.slice(A));break}if(h==="--"){a._=a._.concat(e.slice(A+1));break}if(h.length>1&&h[0]==="-"){let E=h[1]==="-"||h.length===2?[h]:h.slice(1).split("").map(I=>`-${I}`);for(let I=0;I1&&e[A+1][0]==="-"&&!(e[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(L===Number||typeof BigInt<"u"&&L===BigInt))){let z=x===R?"":` (alias for ${R})`;throw new sc(`option requires argument: ${x}${z}`,"ARG_MISSING_REQUIRED_LONGARG")}a[R]=L(e[A+1],R,a[R]),++A}else a[R]=L(C,R,a[R])}}else a._.push(h)}return a}HB.flag=t=>(t[Kq]=!0,t);HB.COUNT=HB.flag((t,e,r)=>(r||0)+1);HB.ArgError=sc;KIe.exports=HB});var r1e=_((iXt,t1e)=>{var Xq;t1e.exports=()=>(typeof Xq>"u"&&(Xq=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),Xq)});var a1e=_((nj,ij)=>{(function(t){nj&&typeof nj=="object"&&typeof ij<"u"?ij.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window<"u"?window.isWindows=t():typeof global<"u"?global.isWindows=t():typeof self<"u"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var A1e=_((rZt,u1e)=>{"use strict";sj.ifExists=s1t;var uC=ve("util"),oc=ve("path"),l1e=a1e(),r1t=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,n1t={createPwshFile:!0,createCmdFile:l1e(),fs:ve("fs")},i1t=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function c1e(t){let e={...n1t,...t},r=e.fs;return e.fs_={chmod:r.chmod?uC.promisify(r.chmod):async()=>{},mkdir:uC.promisify(r.mkdir),readFile:uC.promisify(r.readFile),stat:uC.promisify(r.stat),unlink:uC.promisify(r.unlink),writeFile:uC.promisify(r.writeFile)},e}async function sj(t,e,r){let o=c1e(r);await o.fs_.stat(t),await a1t(t,e,o)}function s1t(t,e,r){return sj(t,e,r).catch(()=>{})}function o1t(t,e){return e.fs_.unlink(t).catch(()=>{})}async function a1t(t,e,r){let o=await f1t(t,r);return await l1t(e,r),c1t(t,e,o,r)}function l1t(t,e){return e.fs_.mkdir(oc.dirname(t),{recursive:!0})}function c1t(t,e,r,o){let a=c1e(o),n=[{generator:g1t,extension:""}];return a.createCmdFile&&n.push({generator:h1t,extension:".cmd"}),a.createPwshFile&&n.push({generator:d1t,extension:".ps1"}),Promise.all(n.map(u=>p1t(t,e+u.extension,r,u.generator,a)))}function u1t(t,e){return o1t(t,e)}function A1t(t,e){return m1t(t,e)}async function f1t(t,e){let a=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(r1t);if(!a){let n=oc.extname(t).toLowerCase();return{program:i1t.get(n)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}async function p1t(t,e,r,o,a){let n=a.preserveSymlinks?"--preserve-symlinks":"",u=[r.additionalArgs,n].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:u}),await u1t(e,a),await a.fs_.writeFile(e,o(t,e,a),"utf8"),A1t(e,a)}function h1t(t,e,r){let a=oc.relative(oc.dirname(e),t).split("/").join("\\"),n=oc.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,u,A=r.prog,p=r.args||"",h=oj(r.nodePath).win32;A?(u=`"%~dp0\\${A}.exe"`,a=n):(A=n,p="",a="");let E=r.progArgs?`${r.progArgs.join(" ")} `:"",I=h?`@SET NODE_PATH=${h}\r +`:"";return u?I+=`@IF EXIST ${u} (\r + ${u} ${p} ${a} ${E}%*\r +) ELSE (\r + @SETLOCAL\r + @SET PATHEXT=%PATHEXT:;.JS;=;%\r + ${A} ${p} ${a} ${E}%*\r +)\r +`:I+=`@${A} ${p} ${a} ${E}%*\r +`,I}function g1t(t,e,r){let o=oc.relative(oc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;o=o.split("\\").join("/");let u=oc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,A=r.args||"",p=oj(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,o=u):(a=u,A="",o="");let h=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") + +case \`uname\` in + *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; +esac + +`,I=r.nodePath?`export NODE_PATH="${p}" +`:"";return n?E+=`${I}if [ -x ${n} ]; then + exec ${n} ${A} ${o} ${h}"$@" +else + exec ${a} ${A} ${o} ${h}"$@" +fi +`:E+=`${I}${a} ${A} ${o} ${h}"$@" +exit $? +`,E}function d1t(t,e,r){let o=oc.relative(oc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,u;o=o.split("\\").join("/");let A=oc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,p=r.args||"",h=oj(r.nodePath),E=h.win32,I=h.posix;n?(u=`"$basedir/${r.prog}$exe"`,o=A):(n=A,p="",o="");let v=r.progArgs?`${r.progArgs.join(" ")} `:"",x=`#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +${r.nodePath?`$env_node_path=$env:NODE_PATH +$env:NODE_PATH="${E}" +`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +}`;return r.nodePath&&(x+=` else { + $env:NODE_PATH="${I}" +}`),u?x+=` +$ret=0 +if (Test-Path ${u}) { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${u} ${p} ${o} ${v}$args + } else { + & ${u} ${p} ${o} ${v}$args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${n} ${p} ${o} ${v}$args + } else { + & ${n} ${p} ${o} ${v}$args + } + $ret=$LASTEXITCODE +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $ret +`:x+=` +# Support pipeline input +if ($MyInvocation.ExpectingInput) { + $input | & ${n} ${p} ${o} ${v}$args +} else { + & ${n} ${p} ${o} ${v}$args +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $LASTEXITCODE +`,x}function m1t(t,e){return e.fs_.chmod(t,493)}function oj(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(oc.delimiter):Array.from(t),r={};for(let o=0;o`/mnt/${A.toLowerCase()}`):e[o];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[o]={win32:a,posix:n}}return r}u1e.exports=sj});var Cj=_((B$t,Q1e)=>{Q1e.exports=ve("stream")});var N1e=_((v$t,T1e)=>{"use strict";function F1e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function G1t(t){for(var e=1;e0?this.tail.next=o:this.head=o,this.tail=o,++this.length}},{key:"unshift",value:function(r){var o={data:r,next:this.head};this.length===0&&(this.tail=o),this.head=o,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var o=this.head,a=""+o.data;o=o.next;)a+=r+o.data;return a}},{key:"concat",value:function(r){if(this.length===0)return yQ.alloc(0);for(var o=yQ.allocUnsafe(r>>>0),a=this.head,n=0;a;)X1t(a.data,o,n),n+=a.data.length,a=a.next;return o}},{key:"consume",value:function(r,o){var a;return ru.length?u.length:r;if(A===u.length?n+=u:n+=u.slice(0,r),r-=A,r===0){A===u.length?(++a,o.next?this.head=o.next:this.head=this.tail=null):(this.head=o,o.data=u.slice(A));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var o=yQ.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(o),r-=a.data.length;a=a.next;){var u=a.data,A=r>u.length?u.length:r;if(u.copy(o,o.length-r,0,A),r-=A,r===0){A===u.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=u.slice(A));break}++n}return this.length-=n,o}},{key:J1t,value:function(r,o){return wj(this,G1t({},o,{depth:0,customInspect:!1}))}}]),t}()});var Bj=_((D$t,M1e)=>{"use strict";function Z1t(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return o||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Ij,this,t)):process.nextTick(Ij,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(EQ,r):(r._writableState.errorEmitted=!0,process.nextTick(L1e,r,n)):process.nextTick(L1e,r,n):e?(process.nextTick(EQ,r),e(n)):process.nextTick(EQ,r)}),this)}function L1e(t,e){Ij(t,e),EQ(t)}function EQ(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function $1t(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Ij(t,e){t.emit("error",e)}function e2t(t,e){var r=t._readableState,o=t._writableState;r&&r.autoDestroy||o&&o.autoDestroy?t.destroy(e):t.emit("error",e)}M1e.exports={destroy:Z1t,undestroy:$1t,errorOrDestroy:e2t}});var Gh=_((P$t,_1e)=>{"use strict";var U1e={};function lc(t,e,r){r||(r=Error);function o(n,u,A){return typeof e=="string"?e:e(n,u,A)}class a extends r{constructor(u,A,p){super(o(u,A,p))}}a.prototype.name=r.name,a.prototype.code=t,U1e[t]=a}function O1e(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(o=>String(o)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function t2t(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function r2t(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function n2t(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}lc("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);lc("ERR_INVALID_ARG_TYPE",function(t,e,r){let o;typeof e=="string"&&t2t(e,"not ")?(o="must not be",e=e.replace(/^not /,"")):o="must be";let a;if(r2t(t," argument"))a=`The ${t} ${o} ${O1e(e,"type")}`;else{let n=n2t(t,".")?"property":"argument";a=`The "${t}" ${n} ${o} ${O1e(e,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);lc("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");lc("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});lc("ERR_STREAM_PREMATURE_CLOSE","Premature close");lc("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});lc("ERR_MULTIPLE_CALLBACK","Callback called multiple times");lc("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");lc("ERR_STREAM_WRITE_AFTER_END","write after end");lc("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);lc("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);lc("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");_1e.exports.codes=U1e});var vj=_((b$t,H1e)=>{"use strict";var i2t=Gh().codes.ERR_INVALID_OPT_VALUE;function s2t(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function o2t(t,e,r,o){var a=s2t(e,o,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=o?r:"highWaterMark";throw new i2t(n,a)}return Math.floor(a)}return t.objectMode?16:16*1024}H1e.exports={getHighWaterMark:o2t}});var q1e=_((S$t,Dj)=>{typeof Object.create=="function"?Dj.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Dj.exports=function(e,r){if(r){e.super_=r;var o=function(){};o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e}}});var Yh=_((x$t,bj)=>{try{if(Pj=ve("util"),typeof Pj.inherits!="function")throw"";bj.exports=Pj.inherits}catch{bj.exports=q1e()}var Pj});var G1e=_((k$t,j1e)=>{j1e.exports=ve("util").deprecate});var kj=_((Q$t,J1e)=>{"use strict";J1e.exports=Fi;function W1e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){R2t(e,t)}}var gC;Fi.WritableState=$B;var a2t={deprecate:G1e()},K1e=Cj(),wQ=ve("buffer").Buffer,l2t=global.Uint8Array||function(){};function c2t(t){return wQ.from(t)}function u2t(t){return wQ.isBuffer(t)||t instanceof l2t}var xj=Bj(),A2t=vj(),f2t=A2t.getHighWaterMark,Wh=Gh().codes,p2t=Wh.ERR_INVALID_ARG_TYPE,h2t=Wh.ERR_METHOD_NOT_IMPLEMENTED,g2t=Wh.ERR_MULTIPLE_CALLBACK,d2t=Wh.ERR_STREAM_CANNOT_PIPE,m2t=Wh.ERR_STREAM_DESTROYED,y2t=Wh.ERR_STREAM_NULL_VALUES,E2t=Wh.ERR_STREAM_WRITE_AFTER_END,C2t=Wh.ERR_UNKNOWN_ENCODING,dC=xj.errorOrDestroy;Yh()(Fi,K1e);function w2t(){}function $B(t,e,r){gC=gC||ld(),t=t||{},typeof r!="boolean"&&(r=e instanceof gC),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=f2t(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=t.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){S2t(e,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new W1e(this)}$B.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty($B.prototype,"buffer",{get:a2t.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var CQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(CQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Fi,Symbol.hasInstance,{value:function(e){return CQ.call(this,e)?!0:this!==Fi?!1:e&&e._writableState instanceof $B}})):CQ=function(e){return e instanceof this};function Fi(t){gC=gC||ld();var e=this instanceof gC;if(!e&&!CQ.call(Fi,this))return new Fi(t);this._writableState=new $B(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),K1e.call(this)}Fi.prototype.pipe=function(){dC(this,new d2t)};function I2t(t,e){var r=new E2t;dC(t,r),process.nextTick(e,r)}function B2t(t,e,r,o){var a;return r===null?a=new y2t:typeof r!="string"&&!e.objectMode&&(a=new p2t("chunk",["string","Buffer"],r)),a?(dC(t,a),process.nextTick(o,a),!1):!0}Fi.prototype.write=function(t,e,r){var o=this._writableState,a=!1,n=!o.objectMode&&u2t(t);return n&&!wQ.isBuffer(t)&&(t=c2t(t)),typeof e=="function"&&(r=e,e=null),n?e="buffer":e||(e=o.defaultEncoding),typeof r!="function"&&(r=w2t),o.ending?I2t(this,r):(n||B2t(this,o,t,r))&&(o.pendingcb++,a=D2t(this,o,n,t,e,r)),a};Fi.prototype.cork=function(){this._writableState.corked++};Fi.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&V1e(this,t))};Fi.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new C2t(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Fi.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function v2t(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=wQ.from(e,r)),e}Object.defineProperty(Fi.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function D2t(t,e,r,o,a,n){if(!r){var u=v2t(e,o,a);o!==u&&(r=!0,a="buffer",o=u)}var A=e.objectMode?1:o.length;e.length+=A;var p=e.length{"use strict";var T2t=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};Z1e.exports=yA;var X1e=Rj(),Fj=kj();Yh()(yA,X1e);for(Qj=T2t(Fj.prototype),IQ=0;IQ{var vQ=ve("buffer"),np=vQ.Buffer;function $1e(t,e){for(var r in t)e[r]=t[r]}np.from&&np.alloc&&np.allocUnsafe&&np.allocUnsafeSlow?e2e.exports=vQ:($1e(vQ,Tj),Tj.Buffer=mC);function mC(t,e,r){return np(t,e,r)}$1e(np,mC);mC.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return np(t,e,r)};mC.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var o=np(t);return e!==void 0?typeof r=="string"?o.fill(e,r):o.fill(e):o.fill(0),o};mC.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return np(t)};mC.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return vQ.SlowBuffer(t)}});var Mj=_(n2e=>{"use strict";var Lj=t2e().Buffer,r2e=Lj.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function M2t(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function O2t(t){var e=M2t(t);if(typeof e!="string"&&(Lj.isEncoding===r2e||!r2e(t)))throw new Error("Unknown encoding: "+t);return e||t}n2e.StringDecoder=ev;function ev(t){this.encoding=O2t(t);var e;switch(this.encoding){case"utf16le":this.text=G2t,this.end=Y2t,e=4;break;case"utf8":this.fillLast=H2t,e=4;break;case"base64":this.text=W2t,this.end=K2t,e=3;break;default:this.write=V2t,this.end=z2t;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Lj.allocUnsafe(e)}ev.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function U2t(t,e,r){var o=e.length-1;if(o=0?(a>0&&(t.lastNeed=a-1),a):--o=0?(a>0&&(t.lastNeed=a-2),a):--o=0?(a>0&&(a===2?a=0:t.lastNeed=a-3),a):0))}function _2t(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"\uFFFD"}}function H2t(t){var e=this.lastTotal-this.lastNeed,r=_2t(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function q2t(t,e){var r=U2t(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var o=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,o),t.toString("utf8",e,o)}function j2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function G2t(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var o=r.charCodeAt(r.length-1);if(o>=55296&&o<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function Y2t(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function W2t(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function K2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function V2t(t){return t.toString(this.encoding)}function z2t(t){return t&&t.length?this.write(t):""}});var DQ=_((T$t,o2e)=>{"use strict";var i2e=Gh().codes.ERR_STREAM_PREMATURE_CLOSE;function J2t(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,o=new Array(r),a=0;a{"use strict";var PQ;function Kh(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var $2t=DQ(),Vh=Symbol("lastResolve"),cd=Symbol("lastReject"),tv=Symbol("error"),bQ=Symbol("ended"),ud=Symbol("lastPromise"),Oj=Symbol("handlePromise"),Ad=Symbol("stream");function zh(t,e){return{value:t,done:e}}function eBt(t){var e=t[Vh];if(e!==null){var r=t[Ad].read();r!==null&&(t[ud]=null,t[Vh]=null,t[cd]=null,e(zh(r,!1)))}}function tBt(t){process.nextTick(eBt,t)}function rBt(t,e){return function(r,o){t.then(function(){if(e[bQ]){r(zh(void 0,!0));return}e[Oj](r,o)},o)}}var nBt=Object.getPrototypeOf(function(){}),iBt=Object.setPrototypeOf((PQ={get stream(){return this[Ad]},next:function(){var e=this,r=this[tv];if(r!==null)return Promise.reject(r);if(this[bQ])return Promise.resolve(zh(void 0,!0));if(this[Ad].destroyed)return new Promise(function(u,A){process.nextTick(function(){e[tv]?A(e[tv]):u(zh(void 0,!0))})});var o=this[ud],a;if(o)a=new Promise(rBt(o,this));else{var n=this[Ad].read();if(n!==null)return Promise.resolve(zh(n,!1));a=new Promise(this[Oj])}return this[ud]=a,a}},Kh(PQ,Symbol.asyncIterator,function(){return this}),Kh(PQ,"return",function(){var e=this;return new Promise(function(r,o){e[Ad].destroy(null,function(a){if(a){o(a);return}r(zh(void 0,!0))})})}),PQ),nBt),sBt=function(e){var r,o=Object.create(iBt,(r={},Kh(r,Ad,{value:e,writable:!0}),Kh(r,Vh,{value:null,writable:!0}),Kh(r,cd,{value:null,writable:!0}),Kh(r,tv,{value:null,writable:!0}),Kh(r,bQ,{value:e._readableState.endEmitted,writable:!0}),Kh(r,Oj,{value:function(n,u){var A=o[Ad].read();A?(o[ud]=null,o[Vh]=null,o[cd]=null,n(zh(A,!1))):(o[Vh]=n,o[cd]=u)},writable:!0}),r));return o[ud]=null,$2t(e,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var n=o[cd];n!==null&&(o[ud]=null,o[Vh]=null,o[cd]=null,n(a)),o[tv]=a;return}var u=o[Vh];u!==null&&(o[ud]=null,o[Vh]=null,o[cd]=null,u(zh(void 0,!0))),o[bQ]=!0}),e.on("readable",tBt.bind(null,o)),o};a2e.exports=sBt});var f2e=_((L$t,A2e)=>{"use strict";function c2e(t,e,r,o,a,n,u){try{var A=t[n](u),p=A.value}catch(h){r(h);return}A.done?e(p):Promise.resolve(p).then(o,a)}function oBt(t){return function(){var e=this,r=arguments;return new Promise(function(o,a){var n=t.apply(e,r);function u(p){c2e(n,o,a,u,A,"next",p)}function A(p){c2e(n,o,a,u,A,"throw",p)}u(void 0)})}}function u2e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function aBt(t){for(var e=1;e{"use strict";I2e.exports=mn;var yC;mn.ReadableState=d2e;var M$t=ve("events").EventEmitter,g2e=function(e,r){return e.listeners(r).length},nv=Cj(),SQ=ve("buffer").Buffer,ABt=global.Uint8Array||function(){};function fBt(t){return SQ.from(t)}function pBt(t){return SQ.isBuffer(t)||t instanceof ABt}var Uj=ve("util"),en;Uj&&Uj.debuglog?en=Uj.debuglog("stream"):en=function(){};var hBt=N1e(),Wj=Bj(),gBt=vj(),dBt=gBt.getHighWaterMark,xQ=Gh().codes,mBt=xQ.ERR_INVALID_ARG_TYPE,yBt=xQ.ERR_STREAM_PUSH_AFTER_EOF,EBt=xQ.ERR_METHOD_NOT_IMPLEMENTED,CBt=xQ.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,EC,_j,Hj;Yh()(mn,nv);var rv=Wj.errorOrDestroy,qj=["error","close","destroy","pause","resume"];function wBt(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function d2e(t,e,r){yC=yC||ld(),t=t||{},typeof r!="boolean"&&(r=e instanceof yC),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=dBt(this,t,"readableHighWaterMark",r),this.buffer=new hBt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(EC||(EC=Mj().StringDecoder),this.decoder=new EC(t.encoding),this.encoding=t.encoding)}function mn(t){if(yC=yC||ld(),!(this instanceof mn))return new mn(t);var e=this instanceof yC;this._readableState=new d2e(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),nv.call(this)}Object.defineProperty(mn.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});mn.prototype.destroy=Wj.destroy;mn.prototype._undestroy=Wj.undestroy;mn.prototype._destroy=function(t,e){e(t)};mn.prototype.push=function(t,e){var r=this._readableState,o;return r.objectMode?o=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=SQ.from(t,e),e=""),o=!0),m2e(this,t,e,!1,o)};mn.prototype.unshift=function(t){return m2e(this,t,null,!0,!1)};function m2e(t,e,r,o,a){en("readableAddChunk",e);var n=t._readableState;if(e===null)n.reading=!1,vBt(t,n);else{var u;if(a||(u=IBt(n,e)),u)rv(t,u);else if(n.objectMode||e&&e.length>0)if(typeof e!="string"&&!n.objectMode&&Object.getPrototypeOf(e)!==SQ.prototype&&(e=fBt(e)),o)n.endEmitted?rv(t,new CBt):jj(t,n,e,!0);else if(n.ended)rv(t,new yBt);else{if(n.destroyed)return!1;n.reading=!1,n.decoder&&!r?(e=n.decoder.write(e),n.objectMode||e.length!==0?jj(t,n,e,!1):Yj(t,n)):jj(t,n,e,!1)}else o||(n.reading=!1,Yj(t,n))}return!n.ended&&(n.length=p2e?t=p2e:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function h2e(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=BBt(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}mn.prototype.read=function(t){en("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return en("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?Gj(this):kQ(this),null;if(t=h2e(t,e),t===0&&e.ended)return e.length===0&&Gj(this),null;var o=e.needReadable;en("need readable",o),(e.length===0||e.length-t0?a=C2e(t,e):a=null,a===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Gj(this)),a!==null&&this.emit("data",a),a};function vBt(t,e){if(en("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?kQ(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,y2e(t)))}}function kQ(t){var e=t._readableState;en("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(en("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(y2e,t))}function y2e(t){var e=t._readableState;en("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,Kj(t)}function Yj(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(DBt,t,e))}function DBt(t,e){for(;!e.reading&&!e.ended&&(e.length1&&w2e(o.pipes,t)!==-1)&&!h&&(en("false write response, pause",o.awaitDrain),o.awaitDrain++),r.pause())}function v(L){en("onerror",L),R(),t.removeListener("error",v),g2e(t,"error")===0&&rv(t,L)}wBt(t,"error",v);function x(){t.removeListener("finish",C),R()}t.once("close",x);function C(){en("onfinish"),t.removeListener("close",x),R()}t.once("finish",C);function R(){en("unpipe"),r.unpipe(t)}return t.emit("pipe",r),o.flowing||(en("pipe resume"),r.resume()),t};function PBt(t){return function(){var r=t._readableState;en("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&g2e(t,"data")&&(r.flowing=!0,Kj(t))}}mn.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var o=e.pipes,a=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var n=0;n0,o.flowing!==!1&&this.resume()):t==="readable"&&!o.endEmitted&&!o.readableListening&&(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,en("on readable",o.length,o.reading),o.length?kQ(this):o.reading||process.nextTick(bBt,this)),r};mn.prototype.addListener=mn.prototype.on;mn.prototype.removeListener=function(t,e){var r=nv.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(E2e,this),r};mn.prototype.removeAllListeners=function(t){var e=nv.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(E2e,this),e};function E2e(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function bBt(t){en("readable nexttick read 0"),t.read(0)}mn.prototype.resume=function(){var t=this._readableState;return t.flowing||(en("resume"),t.flowing=!t.readableListening,SBt(this,t)),t.paused=!1,this};function SBt(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(xBt,t,e))}function xBt(t,e){en("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),Kj(t),e.flowing&&!e.reading&&t.read(0)}mn.prototype.pause=function(){return en("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(en("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function Kj(t){var e=t._readableState;for(en("flow",e.flowing);e.flowing&&t.read()!==null;);}mn.prototype.wrap=function(t){var e=this,r=this._readableState,o=!1;t.on("end",function(){if(en("wrapped end"),r.decoder&&!r.ended){var u=r.decoder.end();u&&u.length&&e.push(u)}e.push(null)}),t.on("data",function(u){if(en("wrapped data"),r.decoder&&(u=r.decoder.write(u)),!(r.objectMode&&u==null)&&!(!r.objectMode&&(!u||!u.length))){var A=e.push(u);A||(o=!0,t.pause())}});for(var a in t)this[a]===void 0&&typeof t[a]=="function"&&(this[a]=function(A){return function(){return t[A].apply(t,arguments)}}(a));for(var n=0;n=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function Gj(t){var e=t._readableState;en("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(kBt,e,t))}function kBt(t,e){if(en("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(mn.from=function(t,e){return Hj===void 0&&(Hj=f2e()),Hj(mn,t,e)});function w2e(t,e){for(var r=0,o=t.length;r{"use strict";v2e.exports=ip;var QQ=Gh().codes,QBt=QQ.ERR_METHOD_NOT_IMPLEMENTED,FBt=QQ.ERR_MULTIPLE_CALLBACK,RBt=QQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,TBt=QQ.ERR_TRANSFORM_WITH_LENGTH_0,FQ=ld();Yh()(ip,FQ);function NBt(t,e){var r=this._transformState;r.transforming=!1;var o=r.writecb;if(o===null)return this.emit("error",new FBt);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),o(t);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";P2e.exports=iv;var D2e=Vj();Yh()(iv,D2e);function iv(t){if(!(this instanceof iv))return new iv(t);D2e.call(this,t)}iv.prototype._transform=function(t,e,r){r(null,t)}});var F2e=_((H$t,Q2e)=>{"use strict";var zj;function MBt(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var k2e=Gh().codes,OBt=k2e.ERR_MISSING_ARGS,UBt=k2e.ERR_STREAM_DESTROYED;function S2e(t){if(t)throw t}function _Bt(t){return t.setHeader&&typeof t.abort=="function"}function HBt(t,e,r,o){o=MBt(o);var a=!1;t.on("close",function(){a=!0}),zj===void 0&&(zj=DQ()),zj(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,_Bt(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();o(u||new UBt("pipe"))}}}function x2e(t){t()}function qBt(t,e){return t.pipe(e)}function jBt(t){return!t.length||typeof t[t.length-1]!="function"?S2e:t.pop()}function GBt(){for(var t=arguments.length,e=new Array(t),r=0;r0;return HBt(u,p,h,function(E){a||(a=E),E&&n.forEach(x2e),!p&&(n.forEach(x2e),o(a))})});return e.reduce(qBt)}Q2e.exports=GBt});var CC=_((cc,ov)=>{var sv=ve("stream");process.env.READABLE_STREAM==="disable"&&sv?(ov.exports=sv.Readable,Object.assign(ov.exports,sv),ov.exports.Stream=sv):(cc=ov.exports=Rj(),cc.Stream=sv||cc,cc.Readable=cc,cc.Writable=kj(),cc.Duplex=ld(),cc.Transform=Vj(),cc.PassThrough=b2e(),cc.finished=DQ(),cc.pipeline=F2e())});var N2e=_((q$t,T2e)=>{"use strict";var{Buffer:uu}=ve("buffer"),R2e=Symbol.for("BufferList");function ni(t){if(!(this instanceof ni))return new ni(t);ni._init.call(this,t)}ni._init=function(e){Object.defineProperty(this,R2e,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ni.prototype._new=function(e){return new ni(e)};ni.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let o=0;othis.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};ni.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};ni.prototype.copy=function(e,r,o,a){if((typeof o!="number"||o<0)&&(o=0),(typeof a!="number"||a>this.length)&&(a=this.length),o>=this.length||a<=0)return e||uu.alloc(0);let n=!!e,u=this._offset(o),A=a-o,p=A,h=n&&r||0,E=u[1];if(o===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:uu.concat(this._bufs,this.length);for(let I=0;Iv)this._bufs[I].copy(e,h,E),h+=v;else{this._bufs[I].copy(e,h,E,E+p),h+=v;break}p-=v,E&&(E=0)}return e.length>h?e.slice(0,h):e};ni.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let o=this._offset(e),a=this._offset(r),n=this._bufs.slice(o[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),o[1]!==0&&(n[0]=n[0].slice(o[1])),this._new(n)};ni.prototype.toString=function(e,r,o){return this.slice(r,o).toString(e)};ni.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ni.prototype.duplicate=function(){let e=this._new();for(let r=0;rthis.length?this.length:e;let o=this._offset(e),a=o[0],n=o[1];for(;a=t.length){let p=u.indexOf(t,n);if(p!==-1)return this._reverseOffset([a,p]);n=u.length-t.length+1}else{let p=this._reverseOffset([a,n]);if(this._match(p,t))return p;n++}n=0}return-1};ni.prototype._match=function(t,e){if(this.length-t{"use strict";var Jj=CC().Duplex,YBt=Yh(),av=N2e();function Uo(t){if(!(this instanceof Uo))return new Uo(t);if(typeof t=="function"){this._callback=t;let e=function(o){this._callback&&(this._callback(o),this._callback=null)}.bind(this);this.on("pipe",function(o){o.on("error",e)}),this.on("unpipe",function(o){o.removeListener("error",e)}),t=null}av._init.call(this,t),Jj.call(this)}YBt(Uo,Jj);Object.assign(Uo.prototype,av.prototype);Uo.prototype._new=function(e){return new Uo(e)};Uo.prototype._write=function(e,r,o){this._appendBuffer(e),typeof o=="function"&&o()};Uo.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Uo.prototype.end=function(e){Jj.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Uo.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Uo.prototype._isBufferList=function(e){return e instanceof Uo||e instanceof av||Uo.isBufferList(e)};Uo.isBufferList=av.isBufferList;RQ.exports=Uo;RQ.exports.BufferListStream=Uo;RQ.exports.BufferList=av});var $j=_(IC=>{var WBt=Buffer.alloc,KBt="0000000000000000000",VBt="7777777777777777777",M2e=48,O2e=Buffer.from("ustar\0","binary"),zBt=Buffer.from("00","binary"),JBt=Buffer.from("ustar ","binary"),XBt=Buffer.from(" \0","binary"),ZBt=parseInt("7777",8),lv=257,Zj=263,$Bt=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},evt=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},tvt=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},U2e=function(t,e,r,o){for(;re?VBt.slice(0,e)+" ":KBt.slice(0,e-t.length)+t+" "};function rvt(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],o=t.length-1;o>0;o--){var a=t[o];e?r.push(a):r.push(255-a)}var n=0,u=r.length;for(o=0;o=Math.pow(10,r)&&r++,e+r+t};IC.decodeLongPath=function(t,e){return wC(t,0,t.length,e)};IC.encodePax=function(t){var e="";t.name&&(e+=Xj(" path="+t.name+` +`)),t.linkname&&(e+=Xj(" linkpath="+t.linkname+` +`));var r=t.pax;if(r)for(var o in r)e+=Xj(" "+o+"="+r[o]+` +`);return Buffer.from(e)};IC.decodePax=function(t){for(var e={};t.length;){for(var r=0;r100;){var a=r.indexOf("/");if(a===-1)return null;o+=o?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(o)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(Jh(t.mode&ZBt,6),100),e.write(Jh(t.uid,6),108),e.write(Jh(t.gid,6),116),e.write(Jh(t.size,11),124),e.write(Jh(t.mtime.getTime()/1e3|0,11),136),e[156]=M2e+tvt(t.type),t.linkname&&e.write(t.linkname,157),O2e.copy(e,lv),zBt.copy(e,Zj),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(Jh(t.devmajor||0,6),329),e.write(Jh(t.devminor||0,6),337),o&&e.write(o,345),e.write(Jh(_2e(e),6),148),e)};IC.decode=function(t,e,r){var o=t[156]===0?0:t[156]-M2e,a=wC(t,0,100,e),n=Xh(t,100,8),u=Xh(t,108,8),A=Xh(t,116,8),p=Xh(t,124,12),h=Xh(t,136,12),E=evt(o),I=t[157]===0?null:wC(t,157,100,e),v=wC(t,265,32),x=wC(t,297,32),C=Xh(t,329,8),R=Xh(t,337,8),L=_2e(t);if(L===8*32)return null;if(L!==Xh(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(O2e.compare(t,lv,lv+6)===0)t[345]&&(a=wC(t,345,155,e)+"/"+a);else if(!(JBt.compare(t,lv,lv+6)===0&&XBt.compare(t,Zj,Zj+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return o===0&&a&&a[a.length-1]==="/"&&(o=5),{name:a,mode:n,uid:u,gid:A,size:p,mtime:new Date(1e3*h),type:E,linkname:I,uname:v,gname:x,devmajor:C,devminor:R}}});var K2e=_((Y$t,W2e)=>{var q2e=ve("util"),nvt=L2e(),cv=$j(),j2e=CC().Writable,G2e=CC().PassThrough,Y2e=function(){},H2e=function(t){return t&=511,t&&512-t},ivt=function(t,e){var r=new TQ(t,e);return r.end(),r},svt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},TQ=function(t,e){this._parent=t,this.offset=e,G2e.call(this,{autoDestroy:!1})};q2e.inherits(TQ,G2e);TQ.prototype.destroy=function(t){this._parent.destroy(t)};var sp=function(t){if(!(this instanceof sp))return new sp(t);j2e.call(this,t),t=t||{},this._offset=0,this._buffer=nvt(),this._missing=0,this._partial=!1,this._onparse=Y2e,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,o=function(){e._continue()},a=function(v){if(e._locked=!1,v)return e.destroy(v);e._stream||o()},n=function(){e._stream=null;var v=H2e(e._header.size);v?e._parse(v,u):e._parse(512,I),e._locked||o()},u=function(){e._buffer.consume(H2e(e._header.size)),e._parse(512,I),o()},A=function(){var v=e._header.size;e._paxGlobal=cv.decodePax(r.slice(0,v)),r.consume(v),n()},p=function(){var v=e._header.size;e._pax=cv.decodePax(r.slice(0,v)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(v),n()},h=function(){var v=e._header.size;this._gnuLongPath=cv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},E=function(){var v=e._header.size;this._gnuLongLinkPath=cv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},I=function(){var v=e._offset,x;try{x=e._header=cv.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(C){e.emit("error",C)}if(r.consume(512),!x){e._parse(512,I),o();return}if(x.type==="gnu-long-path"){e._parse(x.size,h),o();return}if(x.type==="gnu-long-link-path"){e._parse(x.size,E),o();return}if(x.type==="pax-global-header"){e._parse(x.size,A),o();return}if(x.type==="pax-header"){e._parse(x.size,p),o();return}if(e._gnuLongPath&&(x.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(x.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=x=svt(x,e._pax),e._pax=null),e._locked=!0,!x.size||x.type==="directory"){e._parse(512,I),e.emit("entry",x,ivt(e,v),a);return}e._stream=new TQ(e,v),e.emit("entry",x,e._stream,a),e._parse(x.size,n),o()};this._onheader=I,this._parse(512,I)};q2e.inherits(sp,j2e);sp.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};sp.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};sp.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=Y2e,this._overflow?this._write(this._overflow,void 0,t):t()}};sp.prototype._write=function(t,e,r){if(!this._destroyed){var o=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.lengthn&&(u=t.slice(n),t=t.slice(0,n)),o?o.end(t):a.append(t),this._overflow=u,this._onparse()}};sp.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};W2e.exports=sp});var z2e=_((W$t,V2e)=>{V2e.exports=ve("fs").constants||ve("constants")});var eBe=_((K$t,$2e)=>{var BC=z2e(),J2e=SO(),LQ=Yh(),ovt=Buffer.alloc,X2e=CC().Readable,vC=CC().Writable,avt=ve("string_decoder").StringDecoder,NQ=$j(),lvt=parseInt("755",8),cvt=parseInt("644",8),Z2e=ovt(1024),t5=function(){},e5=function(t,e){e&=511,e&&t.push(Z2e.slice(0,512-e))};function uvt(t){switch(t&BC.S_IFMT){case BC.S_IFBLK:return"block-device";case BC.S_IFCHR:return"character-device";case BC.S_IFDIR:return"directory";case BC.S_IFIFO:return"fifo";case BC.S_IFLNK:return"symlink"}return"file"}var MQ=function(t){vC.call(this),this.written=0,this._to=t,this._destroyed=!1};LQ(MQ,vC);MQ.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};MQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var OQ=function(){vC.call(this),this.linkname="",this._decoder=new avt("utf-8"),this._destroyed=!1};LQ(OQ,vC);OQ.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};OQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var uv=function(){vC.call(this),this._destroyed=!1};LQ(uv,vC);uv.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};uv.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var EA=function(t){if(!(this instanceof EA))return new EA(t);X2e.call(this,t),this._drain=t5,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};LQ(EA,X2e);EA.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=t5);var o=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=uvt(t.mode)),t.mode||(t.mode=t.type==="directory"?lvt:cvt),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var a=this.push(e);return e5(o,t.size),a?process.nextTick(r):this._drain=r,new uv}if(t.type==="symlink"&&!t.linkname){var n=new OQ;return J2e(n,function(A){if(A)return o.destroy(),r(A);t.linkname=n.linkname,o._encode(t),r()}),n}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new uv;var u=new MQ(this);return this._stream=u,J2e(u,function(A){if(o._stream=null,A)return o.destroy(),r(A);if(u.written!==t.size)return o.destroy(),r(new Error("size mismatch"));e5(o,t.size),o._finalizing&&o.finalize(),r()}),u}};EA.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Z2e),this.push(null))};EA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};EA.prototype._encode=function(t){if(!t.pax){var e=NQ.encode(t);if(e){this.push(e);return}}this._encodePax(t)};EA.prototype._encodePax=function(t){var e=NQ.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(NQ.encode(r)),this.push(e),e5(this,e.length),r.size=t.size,r.type=t.type,this.push(NQ.encode(r))};EA.prototype._read=function(t){var e=this._drain;this._drain=t5,e()};$2e.exports=EA});var tBe=_(r5=>{r5.extract=K2e();r5.pack=eBe()});var pBe=_((per,fBe)=>{"use strict";var Av=class t{constructor(e,r,o){this.__specs=e||{},Object.keys(this.__specs).forEach(a=>{if(typeof this.__specs[a]=="string"){let n=this.__specs[a],u=this.__specs[n];if(u){let A=u.aliases||[];A.push(a,n),u.aliases=[...new Set(A)],this.__specs[a]=u}else throw new Error(`Alias refers to invalid key: ${n} -> ${a}`)}}),this.__opts=r||{},this.__providers=uBe(o.filter(a=>a!=null&&typeof a=="object")),this.__isFiggyPudding=!0}get(e){return l5(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[o,a]of this.entries())e.call(r,a,o,this)}toJSON(){let e={};return this.forEach((r,o)=>{e[o]=r}),e}*entries(e){for(let o of Object.keys(this.__specs))yield[o,this.get(o)];let r=e||this.__opts.other;if(r){let o=new Set;for(let a of this.__providers){let n=a.entries?a.entries(r):Dvt(a);for(let[u,A]of n)r(u)&&!o.has(u)&&(o.add(u),yield[u,A])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new t(this.__specs,this.__opts,uBe(this.__providers).concat(e)),ABe)}};try{let t=ve("util");Av.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch{}function Bvt(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function l5(t,e,r){let o=t.__specs[e];if(r&&!o&&(!t.__opts.other||!t.__opts.other(e)))Bvt(e);else{o||(o={});let a;for(let n of t.__providers){if(a=cBe(e,n),a===void 0&&o.aliases&&o.aliases.length){for(let u of o.aliases)if(u!==e&&(a=cBe(u,n),a!==void 0))break}if(a!==void 0)break}return a===void 0&&o.default!==void 0?typeof o.default=="function"?o.default(t):o.default:a}}function cBe(t,e){let r;return e.__isFiggyPudding?r=l5(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var ABe={has(t,e){return e in t.__specs&&l5(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in Av.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};fBe.exports=vvt;function vvt(t,e){function r(...o){return new Proxy(new Av(t,e,o),ABe)}return r}function uBe(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function Dvt(t){return Object.keys(t).map(e=>[e,t[e]])}});var dBe=_((her,IA)=>{"use strict";var pv=ve("crypto"),Pvt=pBe(),bvt=ve("stream").Transform,hBe=["sha256","sha384","sha512"],Svt=/^[a-z0-9+/]+(?:=?=?)$/i,xvt=/^([^-]+)-([^?]+)([?\S*]*)$/,kvt=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,Qvt=/^[\x21-\x7E]+$/,oa=Pvt({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>Uvt},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Zh=class{get isHash(){return!0}constructor(e,r){r=oa(r);let o=!!r.strict;this.source=e.trim();let a=this.source.match(o?kvt:xvt);if(!a||o&&!hBe.some(u=>u===a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];this.options=n?n.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=oa(e),e.strict&&!(hBe.some(o=>o===this.algorithm)&&this.digest.match(Svt)&&(this.options||[]).every(o=>o.match(Qvt))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},fd=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=oa(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(o=>this[o].map(a=>Zh.prototype.toString.call(a,e)).filter(a=>a.length).join(r)).filter(o=>o.length).join(r)}concat(e,r){r=oa(r);let o=typeof e=="string"?e:fv(e,r);return wA(`${this.toString(r)} ${o}`,r)}hexDigest(){return wA(this,{single:!0}).hexDigest()}match(e,r){r=oa(r);let o=wA(e,r),a=o.pickAlgorithm(r);return this[a]&&o[a]&&this[a].find(n=>o[a].find(u=>n.digest===u.digest))||!1}pickAlgorithm(e){e=oa(e);let r=e.pickAlgorithm,o=Object.keys(this);if(!o.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return o.reduce((a,n)=>r(a,n)||a)}};IA.exports.parse=wA;function wA(t,e){if(e=oa(e),typeof t=="string")return c5(t,e);if(t.algorithm&&t.digest){let r=new fd;return r[t.algorithm]=[t],c5(fv(r,e),e)}else return c5(fv(t,e),e)}function c5(t,e){return e.single?new Zh(t,e):t.trim().split(/\s+/).reduce((r,o)=>{let a=new Zh(o,e);if(a.algorithm&&a.digest){let n=a.algorithm;r[n]||(r[n]=[]),r[n].push(a)}return r},new fd)}IA.exports.stringify=fv;function fv(t,e){return e=oa(e),t.algorithm&&t.digest?Zh.prototype.toString.call(t,e):typeof t=="string"?fv(wA(t,e),e):fd.prototype.toString.call(t,e)}IA.exports.fromHex=Fvt;function Fvt(t,e,r){r=oa(r);let o=r.options&&r.options.length?`?${r.options.join("?")}`:"";return wA(`${e}-${Buffer.from(t,"hex").toString("base64")}${o}`,r)}IA.exports.fromData=Rvt;function Rvt(t,e){e=oa(e);let r=e.algorithms,o=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((a,n)=>{let u=pv.createHash(n).update(t).digest("base64"),A=new Zh(`${n}-${u}${o}`,e);if(A.algorithm&&A.digest){let p=A.algorithm;a[p]||(a[p]=[]),a[p].push(A)}return a},new fd)}IA.exports.fromStream=Tvt;function Tvt(t,e){e=oa(e);let r=e.Promise||Promise,o=u5(e);return new r((a,n)=>{t.pipe(o),t.on("error",n),o.on("error",n);let u;o.on("integrity",A=>{u=A}),o.on("end",()=>a(u)),o.on("data",()=>{})})}IA.exports.checkData=Nvt;function Nvt(t,e,r){if(r=oa(r),e=wA(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let o=e.pickAlgorithm(r),a=pv.createHash(o).update(t).digest("base64"),n=wA({algorithm:o,digest:a}),u=n.match(e,r);if(u||!r.error)return u;if(typeof r.size=="number"&&t.length!==r.size){let A=new Error(`data size mismatch when checking ${e}. + Wanted: ${r.size} + Found: ${t.length}`);throw A.code="EBADSIZE",A.found=t.length,A.expected=r.size,A.sri=e,A}else{let A=new Error(`Integrity checksum failed when using ${o}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw A.code="EINTEGRITY",A.found=n,A.expected=e,A.algorithm=o,A.sri=e,A}}IA.exports.checkStream=Lvt;function Lvt(t,e,r){r=oa(r);let o=r.Promise||Promise,a=u5(r.concat({integrity:e}));return new o((n,u)=>{t.pipe(a),t.on("error",u),a.on("error",u);let A;a.on("verified",p=>{A=p}),a.on("end",()=>n(A)),a.on("data",()=>{})})}IA.exports.integrityStream=u5;function u5(t){t=oa(t);let e=t.integrity&&wA(t.integrity,t),r=e&&Object.keys(e).length,o=r&&e.pickAlgorithm(t),a=r&&e[o],n=Array.from(new Set(t.algorithms.concat(o?[o]:[]))),u=n.map(pv.createHash),A=0,p=new bvt({transform(h,E,I){A+=h.length,u.forEach(v=>v.update(h,E)),I(null,h,E)}}).on("end",()=>{let h=t.options&&t.options.length?`?${t.options.join("?")}`:"",E=wA(u.map((v,x)=>`${n[x]}-${v.digest("base64")}${h}`).join(" "),t),I=r&&E.match(e,t);if(typeof t.size=="number"&&A!==t.size){let v=new Error(`stream size mismatch when checking ${e}. + Wanted: ${t.size} + Found: ${A}`);v.code="EBADSIZE",v.found=A,v.expected=t.size,v.sri=e,p.emit("error",v)}else if(t.integrity&&!I){let v=new Error(`${e} integrity checksum failed when using ${o}: wanted ${a} but got ${E}. (${A} bytes)`);v.code="EINTEGRITY",v.found=E,v.expected=a,v.algorithm=o,v.sri=e,p.emit("error",v)}else p.emit("size",A),p.emit("integrity",E),I&&p.emit("verified",I)});return p}IA.exports.create=Mvt;function Mvt(t){t=oa(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",o=e.map(pv.createHash);return{update:function(a,n){return o.forEach(u=>u.update(a,n)),this},digest:function(a){return e.reduce((u,A)=>{let p=o.shift().digest("base64"),h=new Zh(`${A}-${p}${r}`,t);if(h.algorithm&&h.digest){let E=h.algorithm;u[E]||(u[E]=[]),u[E].push(h)}return u},new fd)}}}var Ovt=new Set(pv.getHashes()),gBe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>Ovt.has(t));function Uvt(t,e){return gBe.indexOf(t.toLowerCase())>=gBe.indexOf(e.toLowerCase())?t:e}});var YBe=_((mir,GBe)=>{var UDt=$N();function _Dt(t){return UDt(t)?void 0:t}GBe.exports=_Dt});var KBe=_((yir,WBe)=>{var HDt=xS(),qDt=B8(),jDt=b8(),GDt=Mg(),YDt=Ag(),WDt=YBe(),KDt=m_(),VDt=I8(),zDt=1,JDt=2,XDt=4,ZDt=KDt(function(t,e){var r={};if(t==null)return r;var o=!1;e=HDt(e,function(n){return n=GDt(n,t),o||(o=n.length>1),n}),YDt(t,VDt(t),r),o&&(r=qDt(r,zDt|JDt|XDt,WDt));for(var a=e.length;a--;)jDt(r,e[a]);return r});WBe.exports=ZDt});Pt();Ge();Pt();var ZBe=ve("child_process"),$Be=Ze(X0());qt();var Uy=new Map([]);var W1={};Vt(W1,{BaseCommand:()=>ut,WorkspaceRequiredError:()=>sr,getCli:()=>ihe,getDynamicLibs:()=>nhe,getPluginConfiguration:()=>Hy,openWorkspace:()=>_y,pluginCommands:()=>Uy,runExit:()=>Wx});qt();var ut=class extends it{constructor(){super(...arguments);this.cwd=ge.String("--cwd",{hidden:!0})}validateAndExecute(){if(typeof this.cwd<"u")throw new st("The --cwd option is ambiguous when used anywhere else than the very first parameter provided in the command line, before even the command path");return super.validateAndExecute()}};Ge();Pt();qt();var sr=class extends st{constructor(e,r){let o=V.relative(e,r),a=V.join(e,Ut.fileName);super(`This command can only be run from within a workspace of your project (${o} isn't a workspace of ${a}).`)}};Ge();Pt();nA();Nl();g1();qt();var UAt=Ze(Jn());el();var nhe=()=>new Map([["@yarnpkg/cli",W1],["@yarnpkg/core",Y1],["@yarnpkg/fslib",kw],["@yarnpkg/libzip",p1],["@yarnpkg/parsers",Ow],["@yarnpkg/shell",E1],["clipanion",Jw],["semver",UAt],["typanion",Vo]]);Ge();async function _y(t,e){let{project:r,workspace:o}=await kt.find(t,e);if(!o)throw new sr(r.cwd,e);return o}Ge();Pt();nA();Nl();g1();qt();var aPt=Ze(Jn());el();var K8={};Vt(K8,{AddCommand:()=>Yy,BinCommand:()=>Wy,CacheCleanCommand:()=>Ky,ClipanionCommand:()=>$y,ConfigCommand:()=>Xy,ConfigGetCommand:()=>Vy,ConfigSetCommand:()=>zy,ConfigUnsetCommand:()=>Jy,DedupeCommand:()=>Zy,EntryCommand:()=>tE,ExecCommand:()=>nE,ExplainCommand:()=>oE,ExplainPeerRequirementsCommand:()=>iE,HelpCommand:()=>eE,InfoCommand:()=>aE,LinkCommand:()=>cE,NodeCommand:()=>uE,PluginCheckCommand:()=>AE,PluginImportCommand:()=>hE,PluginImportSourcesCommand:()=>gE,PluginListCommand:()=>fE,PluginRemoveCommand:()=>dE,PluginRuntimeCommand:()=>mE,RebuildCommand:()=>yE,RemoveCommand:()=>EE,RunCommand:()=>wE,RunIndexCommand:()=>CE,SetResolutionCommand:()=>IE,SetVersionCommand:()=>sE,SetVersionSourcesCommand:()=>pE,UnlinkCommand:()=>BE,UpCommand:()=>vE,VersionCommand:()=>rE,WhyCommand:()=>DE,WorkspaceCommand:()=>kE,WorkspacesListCommand:()=>xE,YarnCommand:()=>lE,dedupeUtils:()=>rk,default:()=>Rgt,suggestUtils:()=>Zc});var Nde=Ze(X0());Ge();Ge();Ge();qt();var Y0e=Ze(J1());el();var Zc={};Vt(Zc,{Modifier:()=>m8,Strategy:()=>$x,Target:()=>X1,WorkspaceModifier:()=>_0e,applyModifier:()=>spt,extractDescriptorFromPath:()=>y8,extractRangeModifier:()=>H0e,fetchDescriptorFrom:()=>E8,findProjectDescriptors:()=>G0e,getModifier:()=>Z1,getSuggestedDescriptors:()=>$1,makeWorkspaceDescriptor:()=>j0e,toWorkspaceModifier:()=>q0e});Ge();Ge();Pt();var d8=Ze(Jn()),npt="workspace:",X1=(o=>(o.REGULAR="dependencies",o.DEVELOPMENT="devDependencies",o.PEER="peerDependencies",o))(X1||{}),m8=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="",o))(m8||{}),_0e=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="*",o))(_0e||{}),$x=(n=>(n.KEEP="keep",n.REUSE="reuse",n.PROJECT="project",n.LATEST="latest",n.CACHE="cache",n))($x||{});function Z1(t,e){return t.exact?"":t.caret?"^":t.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var ipt=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function H0e(t,{project:e}){let r=t.match(ipt);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function spt(t,e){let{protocol:r,source:o,params:a,selector:n}=G.parseRange(t.range);return d8.default.valid(n)&&(n=`${e}${t.range}`),G.makeDescriptor(t,G.makeRange({protocol:r,source:o,params:a,selector:n}))}function q0e(t){switch(t){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function j0e(t,e){return G.makeDescriptor(t.anchoredDescriptor,`${npt}${q0e(e)}`)}async function G0e(t,{project:e,target:r}){let o=new Map,a=n=>{let u=o.get(n.descriptorHash);return u||o.set(n.descriptorHash,u={descriptor:n,locators:[]}),u};for(let n of e.workspaces)if(r==="peerDependencies"){let u=n.manifest.peerDependencies.get(t.identHash);u!==void 0&&a(u).locators.push(n.anchoredLocator)}else{let u=n.manifest.dependencies.get(t.identHash),A=n.manifest.devDependencies.get(t.identHash);r==="devDependencies"?A!==void 0?a(A).locators.push(n.anchoredLocator):u!==void 0&&a(u).locators.push(n.anchoredLocator):u!==void 0?a(u).locators.push(n.anchoredLocator):A!==void 0&&a(A).locators.push(n.anchoredLocator)}return o}async function y8(t,{cwd:e,workspace:r}){return await opt(async o=>{V.isAbsolute(t)||(t=V.relative(r.cwd,V.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:a}=r,n=await E8(G.makeIdent(null,"archive"),t,{project:r.project,cache:o,workspace:r});if(!n)throw new Error("Assertion failed: The descriptor should have been found");let u=new ki,A=a.configuration.makeResolver(),p=a.configuration.makeFetcher(),h={checksums:a.storedChecksums,project:a,cache:o,fetcher:p,report:u,resolver:A},E=A.bindDescriptor(n,r.anchoredLocator,h),I=G.convertDescriptorToLocator(E),v=await p.fetch(I,h),x=await Ut.find(v.prefixPath,{baseFs:v.packageFs});if(!x.name)throw new Error("Target path doesn't have a name");return G.makeDescriptor(x.name,t)})}async function $1(t,{project:e,workspace:r,cache:o,target:a,fixed:n,modifier:u,strategies:A,maxResults:p=1/0}){if(!(p>=0))throw new Error(`Invalid maxResults (${p})`);let[h,E]=t.range!=="unknown"?n||Lr.validRange(t.range)||!t.range.match(/^[a-z0-9._-]+$/i)?[t.range,"latest"]:["unknown",t.range]:["unknown","latest"];if(h!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${G.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let I=typeof r<"u"&&r!==null&&r.manifest[a].get(t.identHash)||null,v=[],x=[],C=async R=>{try{await R()}catch(L){x.push(L)}};for(let R of A){if(v.length>=p)break;switch(R){case"keep":await C(async()=>{I&&v.push({descriptor:I,name:`Keep ${G.prettyDescriptor(e.configuration,I)}`,reason:"(no changes)"})});break;case"reuse":await C(async()=>{for(let{descriptor:L,locators:U}of(await G0e(t,{project:e,target:a})).values()){if(U.length===1&&U[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes("keep"))continue;let z=`(originally used by ${G.prettyLocator(e.configuration,U[0])}`;z+=U.length>1?` and ${U.length-1} other${U.length>2?"s":""})`:")",v.push({descriptor:L,name:`Reuse ${G.prettyDescriptor(e.configuration,L)}`,reason:z})}});break;case"cache":await C(async()=>{for(let L of e.storedDescriptors.values())L.identHash===t.identHash&&v.push({descriptor:L,name:`Reuse ${G.prettyDescriptor(e.configuration,L)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await C(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let L=e.tryWorkspaceByIdent(t);if(L===null)return;let U=j0e(L,u);v.push({descriptor:U,name:`Attach ${G.prettyDescriptor(e.configuration,U)}`,reason:`(local workspace at ${pe.pretty(e.configuration,L.relativeCwd,pe.Type.PATH)})`})});break;case"latest":{let L=e.configuration.get("enableNetwork"),U=e.configuration.get("enableOfflineMode");await C(async()=>{if(a==="peerDependencies")v.push({descriptor:G.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!L&&!U)v.push({descriptor:null,name:"Resolve from latest",reason:pe.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let z=await E8(t,E,{project:e,cache:o,workspace:r,modifier:u});z&&v.push({descriptor:z,name:`Use ${G.prettyDescriptor(e.configuration,z)}`,reason:`(resolved from ${U?"the cache":"latest"})`})}})}break}}return{suggestions:v.slice(0,p),rejections:x.slice(0,p)}}async function E8(t,e,{project:r,cache:o,workspace:a,preserveModifier:n=!0,modifier:u}){let A=r.configuration.normalizeDependency(G.makeDescriptor(t,e)),p=new ki,h=r.configuration.makeFetcher(),E=r.configuration.makeResolver(),I={project:r,fetcher:h,cache:o,checksums:r.storedChecksums,report:p,cacheOptions:{skipIntegrityCheck:!0}},v={...I,resolver:E,fetchOptions:I},x=E.bindDescriptor(A,a.anchoredLocator,v),C=await E.getCandidates(x,{},v);if(C.length===0)return null;let R=C[0],{protocol:L,source:U,params:z,selector:te}=G.parseRange(G.convertToManifestRange(R.reference));if(L===r.configuration.get("defaultProtocol")&&(L=null),d8.default.valid(te)){let ae=te;if(typeof u<"u")te=u+te;else if(n!==!1){let Ce=typeof n=="string"?n:A.range;te=H0e(Ce,{project:r})+te}let le=G.makeDescriptor(R,G.makeRange({protocol:L,source:U,params:z,selector:te}));(await E.getCandidates(r.configuration.normalizeDependency(le),{},v)).length!==1&&(te=ae)}return G.makeDescriptor(R,G.makeRange({protocol:L,source:U,params:z,selector:te}))}async function opt(t){return await oe.mktempPromise(async e=>{let r=Ke.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Gr(e,{configuration:r,check:!1,immutable:!1}))})}var Yy=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=ge.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=ge.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=ge.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=ge.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=ge.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=ge.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.silent=ge.Boolean("--silent",{hidden:!0});this.packages=ge.Rest()}static{this.paths=[["add"]]}static{this.usage=it.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"],["Add a local package (gzipped tarball format) to the current workspace","$0 add local-package-name@file:../path/to/local-package-name-v0.1.2.tgz"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=A||r.get("preferReuse"),h=Z1(this,o),E=[p?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(U=>typeof U<"u"),I=A?1/0:1,v=await Promise.all(this.packages.map(async U=>{let z=U.match(/^\.{0,2}\//)?await y8(U,{cwd:this.context.cwd,workspace:a}):G.tryParseDescriptor(U),te=U.match(/^(https?:|git@github)/);if(te)throw new st(`It seems you are trying to add a package using a ${pe.pretty(r,`${te[0]}...`,pe.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${pe.pretty(r,"yarn add",pe.Type.CODE)} ${pe.pretty(r,G.makeDescriptor(G.makeIdent(null,"my-package"),`${te[0]}...`),pe.Type.DESCRIPTOR)}`);if(!z)throw new st(`The ${pe.pretty(r,U,pe.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ae=apt(a,z,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ae.map(async ce=>{let Ce=await $1(z,{project:o,workspace:a,cache:n,fixed:u,target:ce,modifier:h,strategies:E,maxResults:I});return{request:z,suggestedDescriptors:Ce,target:ce}}))})).then(U=>U.flat()),x=await AA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async U=>{for(let{request:z,suggestedDescriptors:{suggestions:te,rejections:ae}}of v)if(te.filter(ce=>ce.descriptor!==null).length===0){let[ce]=ae;if(typeof ce>"u")throw new Error("Assertion failed: Expected an error to have been set");o.configuration.get("enableNetwork")?U.reportError(27,`${G.prettyDescriptor(r,z)} can't be resolved to a satisfying range`):U.reportError(27,`${G.prettyDescriptor(r,z)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),U.reportSeparator(),U.reportExceptionOnce(ce)}});if(x.hasErrors())return x.exitCode();let C=!1,R=[],L=[];for(let{suggestedDescriptors:{suggestions:U},target:z}of v){let te,ae=U.filter(de=>de.descriptor!==null),le=ae[0].descriptor,ce=ae.every(de=>G.areDescriptorsEqual(de.descriptor,le));ae.length===1||ce?te=le:(C=!0,{answer:te}=await(0,Y0e.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:U.map(({descriptor:de,name:Be,reason:Ee})=>de?{name:Be,hint:Ee,descriptor:de}:{name:Be,hint:Ee,disabled:!0}),onCancel:()=>process.exit(130),result(de){return this.find(de,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Ce=a.manifest[z].get(te.identHash);(typeof Ce>"u"||Ce.descriptorHash!==te.descriptorHash)&&(a.manifest[z].set(te.identHash,te),this.optional&&(z==="dependencies"?a.manifest.ensureDependencyMeta({...te,range:"unknown"}).optional=!0:z==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...te,range:"unknown"}).optional=!0)),typeof Ce>"u"?R.push([a,z,te,E]):L.push([a,z,Ce,te]))}return await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyAddition,R),await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyReplacement,L),C&&this.context.stdout.write(` +`),await o.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};function apt(t,e,{dev:r,peer:o,preferDev:a,optional:n}){let u=t.manifest.dependencies.has(e.identHash),A=t.manifest.devDependencies.has(e.identHash),p=t.manifest.peerDependencies.has(e.identHash);if((r||o)&&u)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!o&&p)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&A)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!o&&p)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return o&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:A?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ge();Ge();qt();var Wy=class extends ut{constructor(){super(...arguments);this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=ge.String({required:!1})}static{this.paths=[["bin"]]}static{this.usage=it.Usage({description:"get the path to a binary script",details:` + When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. + + When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await kt.find(r,this.context.cwd);if(await o.restoreInstallState(),this.name){let A=(await An.getPackageAccessibleBinaries(a,{project:o})).get(this.name);if(!A)throw new st(`Couldn't find a binary named "${this.name}" for package "${G.prettyLocator(r,a)}"`);let[,p]=A;return this.context.stdout.write(`${p} +`),0}return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async u=>{let A=await An.getPackageAccessibleBinaries(a,{project:o}),h=Array.from(A.keys()).reduce((E,I)=>Math.max(E,I.length),0);for(let[E,[I,v]]of A)u.reportJson({name:E,source:G.stringifyIdent(I),path:v});if(this.verbose)for(let[E,[I]]of A)u.reportInfo(null,`${E.padEnd(h," ")} ${G.prettyLocator(r,I)}`);else for(let E of A.keys())u.reportInfo(null,E)})).exitCode()}};Ge();Pt();qt();var Ky=class extends ut{constructor(){super(...arguments);this.mirror=ge.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=ge.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}static{this.paths=[["cache","clean"],["cache","clear"]]}static{this.usage=it.Usage({description:"remove the shared cache files",details:` + This command will remove all the files from the cache. + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await Gr.find(r);return(await Rt.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&o.mirrorCwd!==null,u=!this.mirror;n&&(await oe.removePromise(o.mirrorCwd),await r.triggerHook(A=>A.cleanGlobalArtifacts,r)),u&&await oe.removePromise(o.cwd)})).exitCode()}};Ge();qt();var K0e=Ze(e2()),C8=ve("util"),Vy=class extends ut{constructor(){super(...arguments);this.why=ge.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=ge.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=ge.String()}static{this.paths=[["config","get"]]}static{this.usage=it.Usage({description:"read a configuration settings",details:` + This command will print a configuration setting. + + Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(o)>"u")throw new st(`Couldn't find a configuration settings named "${o}"`);let u=r.getSpecial(o,{hideSecrets:!this.unsafe,getNativePaths:!0}),A=He.convertMapsToIndexableObjects(u),p=a?(0,K0e.default)(A,a):A,h=await Rt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(p)});if(!this.json){if(typeof p=="string")return this.context.stdout.write(`${p} +`),h.exitCode();C8.inspect.styles.name="cyan",this.context.stdout.write(`${(0,C8.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})} +`)}return h.exitCode()}};Ge();qt();var Mge=Ze(v8()),Oge=Ze(e2()),Uge=Ze(D8()),P8=ve("util"),zy=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String();this.value=ge.String()}static{this.paths=[["config","set"]]}static{this.usage=it.Usage({description:"change a configuration settings",details:` + This command will set a configuration setting. + + When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). + + When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new st("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new st(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new st("This setting only affects the file it's in, and thus cannot be set from the CLI");let A=this.json?JSON.parse(this.value):this.value;await(this.home?C=>Ke.updateHomeConfiguration(C):C=>Ke.updateConfiguration(o(),C))(C=>{if(n){let R=(0,Mge.default)(C);return(0,Uge.default)(R,this.name,A),R}else return{...C,[a]:A}});let E=(await Ke.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),I=He.convertMapsToIndexableObjects(E),v=n?(0,Oge.default)(I,n):I;return(await Rt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async C=>{P8.inspect.styles.name="cyan",C.reportInfo(0,`Successfully set ${this.name} to ${(0,P8.inspect)(v,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};Ge();qt();var Jge=Ze(v8()),Xge=Ze(jge()),Zge=Ze(S8()),Jy=class extends ut{constructor(){super(...arguments);this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String()}static{this.paths=[["config","unset"]]}static{this.usage=it.Usage({description:"unset a configuration setting",details:` + This command will unset a configuration setting. + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new st("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new st(`Couldn't find a configuration settings named "${a}"`);let A=this.home?h=>Ke.updateHomeConfiguration(h):h=>Ke.updateConfiguration(o(),h);return(await Rt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await A(I=>{if(!(0,Xge.default)(I,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,I;let v=n?(0,Jge.default)(I):{...I};return(0,Zge.default)(v,this.name),v}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Ge();Pt();qt();var tk=ve("util"),Xy=class extends ut{constructor(){super(...arguments);this.noDefaults=ge.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.verbose=ge.Boolean("-v,--verbose",{hidden:!0});this.why=ge.Boolean("--why",{hidden:!0});this.names=ge.Rest()}static{this.paths=[["config"]]}static{this.usage=it.Usage({description:"display the current configuration",details:` + This command prints the current active configuration settings. + `,examples:[["Print the active configuration settings","$0 config"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins,{strict:!1}),o=await uy({configuration:r,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(o!==null)return o;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,u=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async A=>{if(r.invalid.size>0&&!this.json){for(let[p,h]of r.invalid)A.reportError(34,`Invalid configuration key "${p}" in ${h}`);A.reportSeparator()}if(this.json)for(let p of a){let h=r.settings.get(p);typeof h>"u"&&A.reportError(34,`No configuration key named "${p}"`);let E=r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),I=r.sources.get(p)??"",v=I&&I[0]!=="<"?ue.fromPortablePath(I):I;A.reportJson({key:p,effective:E,source:v,...h})}else{let p={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},h={},E={children:h};for(let I of a){if(this.noDefaults&&!r.sources.has(I))continue;let v=r.settings.get(I),x=r.sources.get(I)??"",C=r.getSpecial(I,{hideSecrets:!0,getNativePaths:!0}),R={Description:{label:"Description",value:pe.tuple(pe.Type.MARKDOWN,{text:v.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:pe.tuple(x[0]==="<"?pe.Type.CODE:pe.Type.PATH,x)}};h[I]={value:pe.tuple(pe.Type.CODE,I),children:R};let L=(U,z)=>{for(let[te,ae]of z)if(ae instanceof Map){let le={};U[te]={children:le},L(le,ae)}else U[te]={label:te,value:pe.tuple(pe.Type.NO_HINT,(0,tk.inspect)(ae,p))}};C instanceof Map?L(R,C):R.Value={label:"Value",value:pe.tuple(pe.Type.NO_HINT,(0,tk.inspect)(C,p))}}a.length!==1&&(n=void 0),fs.emitTree(E,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<"u"){let A=a[0],p=(0,tk.inspect)(r.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get("enableColors")});this.context.stdout.write(` +`),this.context.stdout.write(`${p} +`)}return u.exitCode()}};Ge();qt();el();var rk={};Vt(rk,{Strategy:()=>t2,acceptedStrategies:()=>j0t,dedupe:()=>x8});Ge();Ge();var $ge=Ze($o()),t2=(e=>(e.HIGHEST="highest",e))(t2||{}),j0t=new Set(Object.values(t2)),G0t={highest:async(t,e,{resolver:r,fetcher:o,resolveOptions:a,fetchOptions:n})=>{let u=new Map;for(let[p,h]of t.storedResolutions){let E=t.storedDescriptors.get(p);if(typeof E>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);He.getSetWithDefault(u,E.identHash).add(h)}let A=new Map(He.mapAndFilter(t.storedDescriptors.values(),p=>G.isVirtualDescriptor(p)?He.mapAndFilter.skip:[p.descriptorHash,He.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=A.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=t.storedResolutions.get(p.descriptorHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let I=t.originalPackages.get(E);if(typeof I>"u")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{let v=r.getResolutionDependencies(p,a),x=Object.fromEntries(await He.allSettledSafe(Object.entries(v).map(async([te,ae])=>{let le=A.get(ae.descriptorHash);if(typeof le>"u")throw new Error(`Assertion failed: The descriptor (${ae.descriptorHash}) should have been registered`);let ce=await le.promise;if(!ce)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[te,ce.updatedPackage]})));if(e.length&&!$ge.default.isMatch(G.stringifyIdent(p),e)||!r.shouldPersistResolution(I,a))return I;let C=u.get(p.identHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(C.size===1)return I;let R=[...C].map(te=>{let ae=t.originalPackages.get(te);if(typeof ae>"u")throw new Error(`Assertion failed: The package (${te}) should have been registered`);return ae}),L=await r.getSatisfying(p,x,R,a),U=L.locators?.[0];if(typeof U>"u"||!L.sorted)return I;let z=t.originalPackages.get(U.locatorHash);if(typeof z>"u")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return z}).then(async v=>{let x=await t.preparePackage(v,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:I,updatedPackage:v,resolvedPackage:x})}).catch(v=>{h.reject(v)})}return[...A.values()].map(p=>p.promise)}};async function x8(t,{strategy:e,patterns:r,cache:o,report:a}){let{configuration:n}=t,u=new ki,A=n.makeResolver(),p=n.makeFetcher(),h={cache:o,checksums:t.storedChecksums,fetcher:p,project:t,report:u,cacheOptions:{skipIntegrityCheck:!0}},E={project:t,resolver:A,report:u,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let I=G0t[e],v=await I(t,r,{resolver:A,resolveOptions:E,fetcher:p,fetchOptions:h}),x=Zs.progressViaCounter(v.length);await a.reportProgress(x);let C=0;await Promise.all(v.map(U=>U.then(z=>{if(z===null||z.currentPackage.locatorHash===z.updatedPackage.locatorHash)return;C++;let{descriptor:te,currentPackage:ae,updatedPackage:le}=z;a.reportInfo(0,`${G.prettyDescriptor(n,te)} can be deduped from ${G.prettyLocator(n,ae)} to ${G.prettyLocator(n,le)}`),a.reportJson({descriptor:G.stringifyDescriptor(te),currentResolution:G.stringifyLocator(ae),updatedResolution:G.stringifyLocator(le)}),t.storedResolutions.set(te.descriptorHash,le.locatorHash)}).finally(()=>x.tick())));let R;switch(C){case 0:R="No packages";break;case 1:R="One package";break;default:R=`${C} packages`}let L=pe.pretty(n,e,pe.Type.CODE);return a.reportInfo(0,`${R} can be deduped using the ${L} strategy`),C})}var Zy=class extends ut{constructor(){super(...arguments);this.strategy=ge.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Js(t2)});this.check=ge.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.patterns=ge.Rest()}static{this.paths=[["dedupe"]]}static{this.usage=it.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd),a=await Gr.find(r);await o.restoreInstallState({restoreResolutions:!1});let n=0,u=await Rt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout,json:this.json},async A=>{n=await x8(o,{strategy:this.strategy,patterns:this.patterns,cache:a,report:A})});return u.hasErrors()?u.exitCode():this.check?n?1:0:await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,mode:this.mode})}};Ge();qt();var $y=class extends ut{static{this.paths=[["--clipanion=definitions"]]}async execute(){let{plugins:e}=await Ke.find(this.context.cwd,this.context.plugins),r=[];for(let u of e){let{commands:A}=u[1];if(A){let h=Jo.from(A).definitions();r.push([u[0],h])}}let o=this.cli.definitions(),a=(u,A)=>u.split(" ").slice(1).join()===A.split(" ").slice(1).join(),n=ede()["@yarnpkg/builder"].bundles.standard;for(let u of r){let A=u[1];for(let p of A)o.find(h=>a(h.path,p.path)).plugin={name:u[0],isDefault:n.includes(u[0])}}this.context.stdout.write(`${JSON.stringify(o,null,2)} +`)}};var eE=class extends ut{static{this.paths=[["help"],["--help"],["-h"]]}async execute(){this.context.stdout.write(this.cli.usage(null))}};Ge();Pt();qt();var tE=class extends ut{constructor(){super(...arguments);this.leadingArgument=ge.String();this.args=ge.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!G.tryParseIdent(this.leadingArgument)){let r=V.resolve(this.context.cwd,ue.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};Ge();var rE=class extends ut{static{this.paths=[["-v"],["--version"]]}async execute(){this.context.stdout.write(`${nn||""} +`)}};Ge();Ge();qt();var nE=class extends ut{constructor(){super(...arguments);this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["exec"]]}static{this.usage=it.Usage({description:"execute a shell script",details:` + This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. + + It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await kt.find(r,this.context.cwd);return await o.restoreInstallState(),await An.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:o})}};Ge();qt();el();var iE=class extends ut{constructor(){super(...arguments);this.hash=ge.String({required:!1,validator:YD(om(),[qw(/^p[0-9a-f]{5}$/)])})}static{this.paths=[["explain","peer-requirements"]]}static{this.usage=it.Usage({description:"explain a set of peer requirements",details:` + A peer requirement represents all peer requests that a subject must satisfy when providing a requested package to requesters. + + When the hash argument is specified, this command prints a detailed explanation of the peer requirement corresponding to the hash and whether it is satisfied or not. + + When used without arguments, this command lists all peer requirements and the corresponding hash that can be used to get detailed information about a given requirement. + + **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). + `,examples:[["Explain the corresponding peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd);return await o.restoreInstallState({restoreResolutions:!1}),await o.applyLightResolution(),typeof this.hash<"u"?await W0t(this.hash,o,{stdout:this.context.stdout}):await K0t(o,{stdout:this.context.stdout})}};async function W0t(t,e,r){let o=e.peerRequirementNodes.get(t);if(typeof o>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);let a=new Set,n=p=>a.has(p.requester.locatorHash)?{value:pe.tuple(pe.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:p.children.size>0?[{value:pe.tuple(pe.Type.NO_HINT,"...")}]:[]}:(a.add(p.requester.locatorHash),{value:pe.tuple(pe.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:Object.fromEntries(Array.from(p.children.values(),h=>[G.stringifyLocator(h.requester),n(h)]))}),u=e.peerWarnings.find(p=>p.hash===t);return(await Rt.start({configuration:e.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async p=>{let h=pe.mark(e.configuration),E=u?h.Cross:h.Check;if(p.reportInfo(0,`Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} is requested to provide ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)} by its descendants`),p.reportSeparator(),p.reportInfo(0,pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)),fs.emitTree({children:Object.fromEntries(Array.from(o.requests.values(),I=>[G.stringifyLocator(I.requester),n(I)]))},{configuration:e.configuration,stdout:r.stdout,json:!1}),p.reportSeparator(),o.provided.range==="missing:"){let I=u?"":" , but all peer requests are optional";p.reportInfo(0,`${E} Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} does not provide ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)}${I}.`)}else{let I=e.storedResolutions.get(o.provided.descriptorHash);if(!I)throw new Error("Assertion failed: Expected the descriptor to be registered");let v=e.storedPackages.get(I);if(!v)throw new Error("Assertion failed: Expected the package to be registered");p.reportInfo(0,`${E} Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} provides ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)} with version ${G.prettyReference(e.configuration,v.version??"0.0.0")}, ${u?"which does not satisfy all requests.":"which satisfies all requests"}`),u?.type===3&&(u.range?p.reportInfo(0,` The combined requested range is ${pe.pretty(e.configuration,u.range,pe.Type.RANGE)}`):p.reportInfo(0," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function K0t(t,e){return(await Rt.start({configuration:t.configuration,stdout:e.stdout,includeFooter:!1,includePrefix:!1},async o=>{let a=pe.mark(t.configuration),n=He.sortMap(t.peerRequirementNodes,[([,u])=>G.stringifyLocator(u.subject),([,u])=>G.stringifyIdent(u.ident)]);for(let[,u]of n.values()){if(!u.root)continue;let A=t.peerWarnings.find(E=>E.hash===u.hash),p=[...G.allPeerRequests(u)],h;if(p.length>2?h=` and ${p.length-1} other dependencies`:p.length===2?h=" and 1 other dependency":h="",u.provided.range!=="missing:"){let E=t.storedResolutions.get(u.provided.descriptorHash);if(!E)throw new Error("Assertion failed: Expected the resolution to have been registered");let I=t.storedPackages.get(E);if(!I)throw new Error("Assertion failed: Expected the provided package to have been registered");let v=`${pe.pretty(t.configuration,u.hash,pe.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${G.prettyLocator(t.configuration,u.subject)} provides ${G.prettyLocator(t.configuration,I)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;A?o.reportWarning(0,v):o.reportInfo(0,v)}else{let E=`${pe.pretty(t.configuration,u.hash,pe.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${G.prettyLocator(t.configuration,u.subject)} doesn't provide ${G.prettyIdent(t.configuration,u.ident)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;A?o.reportWarning(0,E):o.reportInfo(0,E)}}})).exitCode()}Ge();qt();el();Ge();Ge();Pt();qt();var tde=Ze(Jn()),sE=class extends ut{constructor(){super(...arguments);this.useYarnPath=ge.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=ge.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=ge.String()}static{this.paths=[["set","version"]]}static{this.usage=it.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&r.get("yarnPath")){let A=r.sources.get("yarnPath");if(!A)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let p=r.projectCwd??r.startingCwd;if(V.contains(p,A))return 0}let o=()=>{if(typeof nn>"u")throw new st("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},a,n=(A,p)=>({version:p,url:A.replace(/\{\}/g,p)});if(this.version==="self")a={url:o(),version:nn??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await r2(r,"stable"));else if(this.version==="canary")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await r2(r,"canary"));else if(this.version==="classic")a={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))a={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.version))a={url:`file://${V.resolve(ue.toPortablePath(this.version))}`,version:"file"};else if(Lr.satisfiesWithPrereleases(this.version,">=2.0.0"))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(Lr.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))a=n("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(Lr.validRange(this.version))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await V0t(r,this.version));else throw new st(`Invalid version descriptor "${this.version}"`);return(await Rt.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async A=>{let p=async()=>{let h="file://";return a.url.startsWith(h)?(A.reportInfo(0,`Retrieving ${pe.pretty(r,a.url,pe.Type.PATH)}`),await oe.readFilePromise(a.url.slice(h.length))):(A.reportInfo(0,`Downloading ${pe.pretty(r,a.url,pe.Type.URL)}`),await sn.get(a.url,{configuration:r}))};await k8(r,a.version,p,{report:A,useYarnPath:this.useYarnPath})})).exitCode()}};async function V0t(t,e){let o=(await sn.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(a=>Lr.satisfiesWithPrereleases(a,e));if(o.length===0)throw new st(`No matching release found for range ${pe.pretty(t,e,pe.Type.RANGE)}.`);return o[0]}async function r2(t,e){let r=await sn.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new st(`Tag ${pe.pretty(t,e,pe.Type.RANGE)} not found`);return r.latest[e]}async function k8(t,e,r,{report:o,useYarnPath:a}){let n,u=async()=>(typeof n>"u"&&(n=await r()),n);if(e===null){let te=await u();await oe.mktempPromise(async ae=>{let le=V.join(ae,"yarn.cjs");await oe.writeFilePromise(le,te);let{stdout:ce}=await Ur.execvp(process.execPath,[ue.fromPortablePath(le),"--version"],{cwd:ae,env:{...t.env,YARN_IGNORE_PATH:"1"}});if(e=ce.trim(),!tde.default.valid(e))throw new Error(`Invalid semver version. ${pe.pretty(t,"yarn --version",pe.Type.CODE)} returned: +${e}`)})}let A=t.projectCwd??t.startingCwd,p=V.resolve(A,".yarn/releases"),h=V.resolve(p,`yarn-${e}.cjs`),E=V.relative(t.startingCwd,h),I=He.isTaggedYarnVersion(e),v=t.get("yarnPath"),x=!I,C=x||!!v||!!a;if(a===!1){if(x)throw new Jt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");C=!1}else!C&&!process.env.COREPACK_ROOT&&(o.reportWarning(0,`You don't seem to have ${pe.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${pe.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),C=!0);if(C){let te=await u();o.reportInfo(0,`Saving the new release in ${pe.pretty(t,E,"magenta")}`),await oe.removePromise(V.dirname(h)),await oe.mkdirPromise(V.dirname(h),{recursive:!0}),await oe.writeFilePromise(h,te,{mode:493}),await Ke.updateConfiguration(A,{yarnPath:V.relative(A,h)})}else await oe.removePromise(V.dirname(h)),await Ke.updateConfiguration(A,{yarnPath:Ke.deleteProperty});let R=await Ut.tryFind(A)||new Ut;R.packageManager=`yarn@${I?e:await r2(t,"stable")}`;let L={};R.exportTo(L);let U=V.join(A,Ut.fileName),z=`${JSON.stringify(L,null,R.indent)} +`;return await oe.changeFilePromise(U,z,{automaticNewlines:!0}),{bundleVersion:e}}function rde(t){return wr[ZD(t)]}var z0t=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function J0t(t){let r=`https://repo.yarnpkg.com/${He.isTaggedYarnVersion(nn)?nn:await r2(t,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,o=await sn.get(r,{configuration:t});return new Map(Array.from(o.toString().matchAll(z0t),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=rde(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var oE=class extends ut{constructor(){super(...arguments);this.code=ge.String({required:!1,validator:jw(om(),[qw(/^YN[0-9]{4}$/)])});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["explain"]]}static{this.usage=it.Usage({description:"explain an error code",details:` + When the code argument is specified, this command prints its name and its details. + + When used without arguments, this command lists all error codes and their names. + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let o=rde(this.code),a=pe.pretty(r,o,pe.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),A=(await J0t(r)).get(this.code),p=typeof A<"u"?pe.jsonOrPretty(this.json,r,pe.tuple(pe.Type.MARKDOWN,{text:A,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. + +You can help us by editing this page on GitHub \u{1F642}: +${pe.jsonOrPretty(this.json,r,pe.tuple(pe.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx"))} +`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:o,details:p})} +`):this.context.stdout.write(`${n} + +${p} +`)}else{let o={children:He.mapAndFilter(Object.entries(wr),([a,n])=>Number.isNaN(Number(a))?He.mapAndFilter.skip:{label:Ku(Number(a)),value:pe.tuple(pe.Type.CODE,n)})};fs.emitTree(o,{configuration:r,stdout:this.context.stdout,json:this.json})}}};Ge();Pt();qt();var nde=Ze($o()),aE=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=ge.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=ge.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=ge.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=ge.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=ge.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=ge.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}static{this.paths=[["info"]]}static{this.usage=it.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a&&!this.all)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let u=new Set(this.extra);this.cache&&u.add("cache"),this.dependents&&u.add("dependents"),this.manifest&&u.add("manifest");let A=(ae,{recursive:le})=>{let ce=ae.anchoredLocator.locatorHash,Ce=new Map,de=[ce];for(;de.length>0;){let Be=de.shift();if(Ce.has(Be))continue;let Ee=o.storedPackages.get(Be);if(typeof Ee>"u")throw new Error("Assertion failed: Expected the package to be registered");if(Ce.set(Be,Ee),G.isVirtualLocator(Ee)&&de.push(G.devirtualizeLocator(Ee).locatorHash),!(!le&&Be!==ce))for(let g of Ee.dependencies.values()){let me=o.storedResolutions.get(g.descriptorHash);if(typeof me>"u")throw new Error("Assertion failed: Expected the resolution to be registered");de.push(me)}}return Ce.values()},p=({recursive:ae})=>{let le=new Map;for(let ce of o.workspaces)for(let Ce of A(ce,{recursive:ae}))le.set(Ce.locatorHash,Ce);return le.values()},h=({all:ae,recursive:le})=>ae&&le?o.storedPackages.values():ae?p({recursive:le}):A(a,{recursive:le}),E=({all:ae,recursive:le})=>{let ce=h({all:ae,recursive:le}),Ce=this.patterns.map(Ee=>{let g=G.parseLocator(Ee),me=nde.default.makeRe(G.stringifyIdent(g)),we=G.isVirtualLocator(g),Ae=we?G.devirtualizeLocator(g):g;return ne=>{let Z=G.stringifyIdent(ne);if(!me.test(Z))return!1;if(g.reference==="unknown")return!0;let xe=G.isVirtualLocator(ne),Ne=xe?G.devirtualizeLocator(ne):ne;return!(we&&xe&&g.reference!==ne.reference||Ae.reference!==Ne.reference)}}),de=He.sortMap([...ce],Ee=>G.stringifyLocator(Ee));return{selection:de.filter(Ee=>Ce.length===0||Ce.some(g=>g(Ee))),sortedLookup:de}},{selection:I,sortedLookup:v}=E({all:this.all,recursive:this.recursive});if(I.length===0)throw new st("No package matched your request");let x=new Map;if(this.dependents)for(let ae of v)for(let le of ae.dependencies.values()){let ce=o.storedResolutions.get(le.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: Expected the resolution to be registered");He.getArrayWithDefault(x,ce).push(ae)}let C=new Map;for(let ae of v){if(!G.isVirtualLocator(ae))continue;let le=G.devirtualizeLocator(ae);He.getArrayWithDefault(C,le.locatorHash).push(ae)}let R={},L={children:R},U=r.makeFetcher(),z={project:o,fetcher:U,cache:n,checksums:o.storedChecksums,report:new ki,cacheOptions:{skipIntegrityCheck:!0}},te=[async(ae,le,ce)=>{if(!le.has("manifest"))return;let Ce=await U.fetch(ae,z),de;try{de=await Ut.find(Ce.prefixPath,{baseFs:Ce.packageFs})}finally{Ce.releaseFs?.()}ce("Manifest",{License:pe.tuple(pe.Type.NO_HINT,de.license),Homepage:pe.tuple(pe.Type.URL,de.raw.homepage??null)})},async(ae,le,ce)=>{if(!le.has("cache"))return;let Ce=o.storedChecksums.get(ae.locatorHash)??null,de=n.getLocatorPath(ae,Ce),Be;if(de!==null)try{Be=await oe.statPromise(de)}catch{}let Ee=typeof Be<"u"?[Be.size,pe.Type.SIZE]:void 0;ce("Cache",{Checksum:pe.tuple(pe.Type.NO_HINT,Ce),Path:pe.tuple(pe.Type.PATH,de),Size:Ee})}];for(let ae of I){let le=G.isVirtualLocator(ae);if(!this.virtuals&&le)continue;let ce={},Ce={value:[ae,pe.Type.LOCATOR],children:ce};if(R[G.stringifyLocator(ae)]=Ce,this.nameOnly){delete Ce.children;continue}let de=C.get(ae.locatorHash);typeof de<"u"&&(ce.Instances={label:"Instances",value:pe.tuple(pe.Type.NUMBER,de.length)}),ce.Version={label:"Version",value:pe.tuple(pe.Type.NO_HINT,ae.version)};let Be=(g,me)=>{let we={};if(ce[g]=we,Array.isArray(me))we.children=me.map(Ae=>({value:Ae}));else{let Ae={};we.children=Ae;for(let[ne,Z]of Object.entries(me))typeof Z>"u"||(Ae[ne]={label:ne,value:Z})}};if(!le){for(let g of te)await g(ae,u,Be);await r.triggerHook(g=>g.fetchPackageInfo,ae,u,Be)}ae.bin.size>0&&!le&&Be("Exported Binaries",[...ae.bin.keys()].map(g=>pe.tuple(pe.Type.PATH,g)));let Ee=x.get(ae.locatorHash);typeof Ee<"u"&&Ee.length>0&&Be("Dependents",Ee.map(g=>pe.tuple(pe.Type.LOCATOR,g))),ae.dependencies.size>0&&!le&&Be("Dependencies",[...ae.dependencies.values()].map(g=>{let me=o.storedResolutions.get(g.descriptorHash),we=typeof me<"u"?o.storedPackages.get(me)??null:null;return pe.tuple(pe.Type.RESOLUTION,{descriptor:g,locator:we})})),ae.peerDependencies.size>0&&le&&Be("Peer dependencies",[...ae.peerDependencies.values()].map(g=>{let me=ae.dependencies.get(g.identHash),we=typeof me<"u"?o.storedResolutions.get(me.descriptorHash)??null:null,Ae=we!==null?o.storedPackages.get(we)??null:null;return pe.tuple(pe.Type.RESOLUTION,{descriptor:g,locator:Ae})}))}fs.emitTree(L,{configuration:r,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Ge();Pt();Nl();var nk=Ze(X0());qt();var Q8=Ze(Jn());el();var X0t=[{selector:t=>t===-1,name:"nodeLinker",value:"node-modules"},{selector:t=>t!==-1&&t<8,name:"enableGlobalCache",value:!1},{selector:t=>t!==-1&&t<8,name:"compressionLevel",value:"mixed"}],lE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=ge.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=ge.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.refreshLockfile=ge.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"});this.checkCache=ge.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"});this.checkResolutions=ge.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"});this.inlineBuilds=ge.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.cacheFolder=ge.String("--cache-folder",{hidden:!0});this.frozenLockfile=ge.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=ge.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=ge.Boolean("--non-interactive",{hidden:!0});this.preferOffline=ge.Boolean("--prefer-offline",{hidden:!0});this.production=ge.Boolean("--production",{hidden:!0});this.registry=ge.String("--registry",{hidden:!0});this.silent=ge.Boolean("--silent",{hidden:!0});this.networkTimeout=ge.String("--network-timeout",{hidden:!0})}static{this.paths=[["install"],it.Default]}static{this.usage=it.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&r.useWithSource("",{enableInlineBuilds:this.inlineBuilds},r.startingCwd,{overwrite:!0});let o=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=await uy({configuration:r,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!nk.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!nk.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!o},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!nk.default.NETLIFY}]);if(a!==null)return a;let n=this.mode==="update-lockfile";if(n&&(this.immutable||this.immutableCache))throw new st(`${pe.pretty(r,"--immutable",pe.Type.CODE)} and ${pe.pretty(r,"--immutable-cache",pe.Type.CODE)} cannot be used with ${pe.pretty(r,"--mode=update-lockfile",pe.Type.CODE)}`);let u=(this.immutable??r.get("enableImmutableInstalls"))&&!n,A=this.immutableCache&&!n;if(r.projectCwd!==null){let R=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U=!1;await egt(r,u)&&(L.reportInfo(48,"Automatically removed core plugins that are now builtins \u{1F44D}"),U=!0),await $0t(r,u)&&(L.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),U=!0),U&&L.reportSeparator()});if(R.hasErrors())return R.exitCode()}if(r.projectCwd!==null){let R=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{if(Ke.telemetry?.isNew)Ke.telemetry.commitTips(),L.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),L.reportInfo(65,`Run ${pe.pretty(r,"yarn config set --home enableTelemetry 0",pe.Type.CODE)} to disable`),L.reportSeparator();else if(Ke.telemetry?.shouldShowTips){let U=await sn.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0}).catch(()=>null);if(U!==null){let z=null;if(nn!==null){let ae=Q8.default.prerelease(nn)?"canary":"stable",le=U.latest[ae];Q8.default.gt(le,nn)&&(z=[ae,le])}if(z)Ke.telemetry.commitTips(),L.reportInfo(88,`${pe.applyStyle(r,`A new ${z[0]} version of Yarn is available:`,pe.Style.BOLD)} ${G.prettyReference(r,z[1])}!`),L.reportInfo(88,`Upgrade now by running ${pe.pretty(r,`yarn set version ${z[1]}`,pe.Type.CODE)}`),L.reportSeparator();else{let te=Ke.telemetry.selectTip(U.tips);te&&(L.reportInfo(89,pe.pretty(r,te.message,pe.Type.MARKDOWN_INLINE)),te.url&&L.reportInfo(89,`Learn more at ${te.url}`),L.reportSeparator())}}}});if(R.hasErrors())return R.exitCode()}let{project:p,workspace:h}=await kt.find(r,this.context.cwd),E=p.lockfileLastVersion;if(E!==null){let R=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U={};for(let z of X0t)z.selector(E)&&typeof r.sources.get(z.name)>"u"&&(r.use("",{[z.name]:z.value},p.cwd,{overwrite:!0}),U[z.name]=z.value);Object.keys(U).length>0&&(await Ke.updateConfiguration(p.cwd,U),L.reportInfo(87,"Migrated your project to the latest Yarn version \u{1F680}"),L.reportSeparator())});if(R.hasErrors())return R.exitCode()}let I=await Gr.find(r,{immutable:A,check:this.checkCache});if(!h)throw new sr(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let v=r.get("enableHardenedMode");v&&typeof r.sources.get("enableHardenedMode")>"u"&&await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async R=>{R.reportWarning(0,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),R.reportWarning(0,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${pe.applyHyperlink(r,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),R.reportSeparator()}),(this.refreshLockfile??v)&&(p.lockfileNeedsRefresh=!0);let x=this.checkResolutions??v;return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async R=>{await p.install({cache:I,report:R,immutable:u,checkResolutions:x,mode:this.mode})})).exitCode()}},Z0t="<<<<<<<";async function $0t(t,e){if(!t.projectCwd)return!1;let r=V.join(t.projectCwd,dr.lockfile);if(!await oe.existsPromise(r)||!(await oe.readFilePromise(r,"utf8")).includes(Z0t))return!1;if(e)throw new Jt(47,"Cannot autofix a lockfile when running an immutable install");let a=await Ur.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:t.projectCwd});if(a.code!==0&&(a=await Ur.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0&&(a=await Ur.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0)throw new Jt(83,"Git returned an error when trying to find the commits pertaining to the conflict");let n=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let p=await Ur.execvp("git",["show",`${A}:./${dr.lockfile}`],{cwd:t.projectCwd});if(p.code!==0)throw new Jt(83,`Git returned an error when trying to access the lockfile content in ${A}`);try{return Ki(p.stdout)}catch{throw new Jt(46,"A variant of the conflicting lockfile failed to parse")}}));n=n.filter(A=>!!A.__metadata);for(let A of n){if(A.__metadata.version<7)for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=G.parseDescriptor(p,!0),E=t.normalizeDependency(h),I=G.stringifyDescriptor(E);I!==p&&(A[I]=A[p],delete A[p])}for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=A[p].checksum;typeof h=="string"&&h.includes("/")||(A[p].checksum=`${A.__metadata.cacheKey}/${h}`)}}let u=Object.assign({},...n);u.__metadata.version=`${Math.min(...n.map(A=>parseInt(A.__metadata.version??0)))}`,u.__metadata.cacheKey="merged";for(let[A,p]of Object.entries(u))typeof p=="string"&&delete u[A];return await oe.changeFilePromise(r,Da(u),{automaticNewlines:!0}),!0}async function egt(t,e){if(!t.projectCwd)return!1;let r=[],o=V.join(t.projectCwd,".yarn/plugins/@yarnpkg");return await Ke.updateConfiguration(t.projectCwd,{plugins:n=>{if(!Array.isArray(n))return n;let u=n.filter(A=>{if(!A.path)return!0;let p=V.resolve(t.projectCwd,A.path),h=l1.has(A.spec)&&V.contains(o,p);return h&&r.push(p),!h});return u.length===0?Ke.deleteProperty:u.length===n.length?n:u}},{immutable:e})?(await Promise.all(r.map(async n=>{await oe.removePromise(n)})),!0):!1}Ge();Pt();qt();var cE=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=ge.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=ge.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=ge.Rest()}static{this.paths=[["link"]]}static{this.usage=it.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=o.topLevelWorkspace,A=[];for(let p of this.destinations){let h=V.resolve(this.context.cwd,ue.toPortablePath(p)),E=await Ke.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:I,workspace:v}=await kt.find(E,h);if(o.cwd===I.cwd)throw new st(`Invalid destination '${p}'; Can't link the project to itself`);if(!v)throw new sr(I.cwd,h);if(this.all){let x=!1;for(let C of I.workspaces)C.manifest.name&&(!C.manifest.private||this.private)&&(A.push(C),x=!0);if(!x)throw new st(`No workspace found to be linked in the target project: ${p}`)}else{if(!v.manifest.name)throw new st(`The target workspace at '${p}' doesn't have a name and thus cannot be linked`);if(v.manifest.private&&!this.private)throw new st(`The target workspace at '${p}' is marked private - use the --private flag to link it anyway`);A.push(v)}}for(let p of A){let h=G.stringifyIdent(p.anchoredLocator),E=this.relative?V.relative(o.cwd,p.cwd):p.cwd;u.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${E}`})}return await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};qt();var uE=class extends ut{constructor(){super(...arguments);this.args=ge.Proxy()}static{this.paths=[["node"]]}static{this.usage=it.Usage({description:"run node with the hook already setup",details:` + This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + + The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. + `,examples:[["Run a Node script","$0 node ./my-script.js"]]})}async execute(){return this.cli.run(["exec","node",...this.args])}};Ge();qt();var AE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","check"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` + Check only the plugins from https. + + If this command detects any plugin differences in the CI environment, it will throw an error. + `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await Ke.findRcFiles(this.context.cwd);return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let u of o)if(u.data?.plugins)for(let A of u.data.plugins){if(!A.checksum||!A.spec.match(/^https?:/))continue;let p=await sn.get(A.spec,{configuration:r}),h=wn.makeHash(p);if(A.checksum===h)continue;let E=pe.pretty(r,A.path,pe.Type.PATH),I=pe.pretty(r,A.spec,pe.Type.URL),v=`${E} is different from the file provided by ${I}`;n.reportJson({...A,newChecksum:h}),n.reportError(0,v)}})).exitCode()}};Ge();Ge();Pt();qt();var lde=ve("os");Ge();Pt();qt();var ide=ve("os");Ge();Nl();qt();var tgt="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Hg(t,e){let r=await sn.get(tgt,{configuration:t}),o=Ki(r.toString());return Object.fromEntries(Object.entries(o).filter(([a,n])=>!e||Lr.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var fE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","list"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await Hg(r,nn);for(let[u,{experimental:A,...p}]of Object.entries(n)){let h=u;A&&(h+=" [experimental]"),a.reportJson({name:u,experimental:A,...p}),a.reportInfo(null,h)}})).exitCode()}};var rgt=/^[0-9]+$/,ngt=process.platform==="win32";function sde(t){return rgt.test(t)?`pull/${t}/head`:t}var igt=({repository:t,branch:e},r)=>[["git","init",ue.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",sde(e)],["git","reset","--hard","FETCH_HEAD"]],sgt=({branch:t})=>[["git","fetch","origin","--depth=1",sde(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],ogt=({plugins:t,noMinify:e},r,o)=>[["yarn","build:cli",...new Array().concat(...t.map(a=>["--plugin",V.resolve(o,a)])),...e?["--no-minify"]:[],"|"],[ngt?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",ue.fromPortablePath(r),"|"]],pE=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=ge.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=ge.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}static{this.paths=[["set","version","from","sources"]]}static{this.usage=it.Usage({description:"build Yarn from master",details:` + This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. + + By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. + `,examples:[["Build Yarn from master","$0 set version from sources"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd),a=typeof this.installPath<"u"?V.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):V.resolve(ue.toPortablePath((0,ide.tmpdir)()),"yarnpkg-sources",wn.makeHash(this.repository).slice(0,6));return(await Rt.start({configuration:r,stdout:this.context.stdout},async u=>{await F8(this,{configuration:r,report:u,target:a}),u.reportSeparator(),u.reportInfo(0,"Building a fresh bundle"),u.reportSeparator();let A=await Ur.execvp("git",["rev-parse","--short","HEAD"],{cwd:a,strict:!0}),p=V.join(a,`packages/yarnpkg-cli/bundles/yarn-${A.stdout.trim()}.js`);oe.existsSync(p)||(await n2(ogt(this,p,a),{configuration:r,context:this.context,target:a}),u.reportSeparator());let h=await oe.readFilePromise(p);if(!this.dryRun){let{bundleVersion:E}=await k8(r,null,async()=>h,{report:u});this.skipPlugins||await agt(this,E,{project:o,report:u,target:a})}})).exitCode()}};async function n2(t,{configuration:e,context:r,target:o}){for(let[a,...n]of t){let u=n[n.length-1]==="|";if(u&&n.pop(),u)await Ur.pipevp(a,n,{cwd:o,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${pe.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")} +`);try{await Ur.execvp(a,n,{cwd:o,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function F8(t,{configuration:e,report:r,target:o}){let a=!1;if(!t.force&&oe.existsSync(V.join(o,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await n2(sgt(t),{configuration:e,context:t.context,target:o}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await oe.removePromise(o),await oe.mkdirPromise(o,{recursive:!0}),await n2(igt(t,o),{configuration:e,context:t.context,target:o}))}async function agt(t,e,{project:r,report:o,target:a}){let n=await Hg(r.configuration,e),u=new Set(Object.keys(n));for(let A of r.configuration.plugins.keys())u.has(A)&&await R8(A,t,{project:r,report:o,target:a})}Ge();Ge();Pt();qt();var ode=Ze(Jn()),ade=ve("vm");var hE=class extends ut{constructor(){super(...arguments);this.name=ge.String();this.checksum=ge.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}static{this.paths=[["plugin","import"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"download a plugin",details:` + This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. + + Three types of plugin references are accepted: + + - If the plugin is stored within the Yarn repository, it can be referenced by name. + - Third-party plugins can be referenced directly through their public urls. + - Local plugins can be referenced by their path on the disk. + + If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified. + + Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Rt.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await kt.find(r,this.context.cwd),u,A;if(this.name.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.name)){let p=V.resolve(this.context.cwd,ue.toPortablePath(this.name));a.reportInfo(0,`Reading ${pe.pretty(r,p,pe.Type.PATH)}`),u=V.relative(n.cwd,p),A=await oe.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new Jt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}u=this.name,p=this.name}else{let h=G.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!ode.default.valid(h.reference))throw new Jt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let E=G.stringifyIdent(h),I=await Hg(r,nn);if(!Object.hasOwn(I,E)){let v=`Couldn't find a plugin named ${G.prettyIdent(r,h)} on the remote registry. +`;throw r.plugins.has(E)?v+=`A plugin named ${G.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:v+=`Note that only the plugins referenced on our website (${pe.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",pe.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${pe.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",pe.Type.URL)}).`,new Jt(51,v)}u=E,p=I[E].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${E}/${h.reference}/`):nn!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${nn}/`))}a.reportInfo(0,`Downloading ${pe.pretty(r,p,"green")}`),A=await sn.get(p,{configuration:r})}await T8(u,A,{checksum:this.checksum,project:n,report:a})})).exitCode()}};async function T8(t,e,{checksum:r=!0,project:o,report:a}){let{configuration:n}=o,u={},A={exports:u};(0,ade.runInNewContext)(e.toString(),{module:A,exports:u});let h=`.yarn/plugins/${A.exports.name}.cjs`,E=V.resolve(o.cwd,h);a.reportInfo(0,`Saving the new plugin in ${pe.pretty(n,h,"magenta")}`),await oe.mkdirPromise(V.dirname(E),{recursive:!0}),await oe.writeFilePromise(E,e);let I={path:h,spec:t};r&&(I.checksum=wn.makeHash(e)),await Ke.addPlugin(o.cwd,[I])}var lgt=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],gE=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=ge.String()}static{this.paths=[["plugin","import","from","sources"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. + + The plugins can be referenced by their short name if sourced from the official Yarn repository. + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=typeof this.installPath<"u"?V.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):V.resolve(ue.toPortablePath((0,lde.tmpdir)()),"yarnpkg-sources",wn.makeHash(this.repository).slice(0,6));return(await Rt.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:u}=await kt.find(r,this.context.cwd),A=G.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=G.stringifyIdent(A),h=await Hg(r,nn);if(!Object.hasOwn(h,p))throw new Jt(51,`Couldn't find a plugin named "${p}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let E=p;await F8(this,{configuration:r,report:n,target:o}),await R8(E,this,{project:u,report:n,target:o})})).exitCode()}};async function R8(t,{context:e,noMinify:r},{project:o,report:a,target:n}){let u=t.replace(/@yarnpkg\//,""),{configuration:A}=o;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${u}`),a.reportSeparator(),await n2(lgt({pluginName:u,noMinify:r},n),{configuration:A,context:e,target:n}),a.reportSeparator();let p=V.resolve(n,`packages/${u}/bundles/${t}.js`),h=await oe.readFilePromise(p);await T8(t,h,{project:o,report:a})}Ge();Pt();qt();var dE=class extends ut{constructor(){super(...arguments);this.name=ge.String()}static{this.paths=[["plugin","remove"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. + + **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd);return(await Rt.start({configuration:r,stdout:this.context.stdout},async n=>{let u=this.name,A=G.parseIdent(u);if(!r.plugins.has(u))throw new st(`${G.prettyIdent(r,A)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${u}.cjs`,h=V.resolve(o.cwd,p);oe.existsSync(h)&&(n.reportInfo(0,`Removing ${pe.pretty(r,p,pe.Type.PATH)}...`),await oe.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await Ke.updateConfiguration(o.cwd,{plugins:E=>{if(!Array.isArray(E))return E;let I=E.filter(v=>v.path!==p);return I.length===0?Ke.deleteProperty:I.length===E.length?E:I}})})).exitCode()}};Ge();qt();var mE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","runtime"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. + `,examples:[["List the currently active plugins","$0 plugin runtime"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let u=this.context.plugins.plugins.has(n),A=n;u&&(A+=" [builtin]"),a.reportJson({name:n,builtin:u}),a.reportInfo(null,`${A}`)}})).exitCode()}};Ge();Ge();qt();var yE=class extends ut{constructor(){super(...arguments);this.idents=ge.Rest()}static{this.paths=[["rebuild"]]}static{this.usage=it.Usage({description:"rebuild the project's native packages",details:` + This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. + + Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). + + By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);let u=new Set;for(let A of this.idents)u.add(G.parseIdent(A).identHash);if(await o.restoreInstallState({restoreResolutions:!1}),await o.resolveEverything({cache:n,report:new ki}),u.size>0)for(let A of o.storedPackages.values())u.has(A.identHash)&&(o.storedBuildState.delete(A.locatorHash),o.skippedBuilds.delete(A.locatorHash));else o.storedBuildState.clear(),o.skippedBuilds.clear();return await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();qt();var N8=Ze($o());el();var EE=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.patterns=ge.Rest()}static{this.paths=[["remove"]]}static{this.usage=it.Usage({description:"remove dependencies from the project",details:` + This command will remove the packages matching the specified patterns from the current workspace. + + If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: + + - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. + + - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. + + This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.all?o.workspaces:[a],A=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,E=[];for(let C of this.patterns){let R=!1,L=G.parseIdent(C);for(let U of u){let z=[...U.manifest.peerDependenciesMeta.keys()];for(let te of(0,N8.default)(z,C))U.manifest.peerDependenciesMeta.delete(te),h=!0,R=!0;for(let te of A){let ae=U.manifest.getForScope(te),le=[...ae.values()].map(ce=>G.stringifyIdent(ce));for(let ce of(0,N8.default)(le,G.stringifyIdent(L))){let{identHash:Ce}=G.parseIdent(ce),de=ae.get(Ce);if(typeof de>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");U.manifest[te].delete(Ce),E.push([U,te,de]),h=!0,R=!0}}}R||p.push(C)}let I=p.length>1?"Patterns":"Pattern",v=p.length>1?"don't":"doesn't",x=this.all?"any":"this";if(p.length>0)throw new st(`${I} ${pe.prettyList(r,p,pe.Type.CODE)} ${v} match any packages referenced by ${x} workspace`);return h?(await r.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,E),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};Ge();Ge();qt();var cde=ve("util"),CE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["run"]]}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);return(await Rt.start({configuration:r,stdout:this.context.stdout,json:this.json},async u=>{let A=a.manifest.scripts,p=He.sortMap(A.keys(),I=>I),h={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},E=p.reduce((I,v)=>Math.max(I,v.length),0);for(let[I,v]of A.entries())u.reportInfo(null,`${I.padEnd(E," ")} ${(0,cde.inspect)(v,h)}`),u.reportJson({name:I,script:v})})).exitCode()}};Ge();Ge();qt();var wE=class extends ut{constructor(){super(...arguments);this.inspect=ge.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=ge.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=ge.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=ge.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=ge.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=ge.Boolean("--silent",{hidden:!0});this.scriptName=ge.String();this.args=ge.Proxy()}static{this.paths=[["run"]]}static{this.usage=it.Usage({description:"run a script defined in the package.json",details:` + This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: + + - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. + + - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. + + - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. + + Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a,locator:n}=await kt.find(r,this.context.cwd);await o.restoreInstallState();let u=this.topLevel?o.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await An.hasPackageScript(u,this.scriptName,{project:o}))return await An.executePackageScript(u,this.scriptName,this.args,{project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let A=await An.getPackageAccessibleBinaries(u,{project:o});if(A.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect=="string"?h.push(`--inspect=${this.inspect}`):h.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push("--inspect-brk")),this.require&&h.push(`--require=${this.require}`),await An.executePackageAccessibleBinary(u,this.scriptName,this.args,{cwd:this.context.cwd,project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:A})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let E=(await Promise.all(o.workspaces.map(async I=>I.manifest.scripts.has(this.scriptName)?I:null))).filter(I=>I!==null);if(E.length===1)return await An.executeWorkspaceScript(E[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new st(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new st(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new st("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let h=[this.scriptName].concat(this.args);for(let[E,I]of Uy)for(let v of I)if(h.length>=v.length&&JSON.stringify(h.slice(0,v.length))===JSON.stringify(v))throw new st(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${E} plugin. You can install it with "yarn plugin import ${E}".`);throw new st(`Couldn't find a script named "${this.scriptName}".`)}}};Ge();Ge();qt();var IE=class extends ut{constructor(){super(...arguments);this.descriptor=ge.String();this.resolution=ge.String()}static{this.paths=[["set","resolution"]]}static{this.usage=it.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(await o.restoreInstallState({restoreResolutions:!1}),!a)throw new sr(o.cwd,this.context.cwd);let u=G.parseDescriptor(this.descriptor,!0),A=G.makeDescriptor(u,this.resolution);return o.storedDescriptors.set(u.descriptorHash,u),o.storedDescriptors.set(A.descriptorHash,A),o.resolutionAliases.set(u.descriptorHash,A.descriptorHash),await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Ge();Pt();qt();var ude=Ze($o()),BE=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=ge.Rest()}static{this.paths=[["unlink"]]}static{this.usage=it.Usage({description:"disconnect the local project from another one",details:` + This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);let u=o.topLevelWorkspace,A=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:p,reference:h}of u.manifest.resolutions)h.startsWith("portal:")&&A.add(p.descriptor.fullName);if(this.leadingArguments.length>0)for(let p of this.leadingArguments){let h=V.resolve(this.context.cwd,ue.toPortablePath(p));if(He.isPathLike(p)){let E=await Ke.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:I,workspace:v}=await kt.find(E,h);if(!v)throw new sr(I.cwd,h);if(this.all){for(let x of I.workspaces)x.manifest.name&&A.add(G.stringifyIdent(x.anchoredLocator));if(A.size===0)throw new st("No workspace found to be unlinked in the target project")}else{if(!v.manifest.name)throw new st("The target workspace doesn't have a name and thus cannot be unlinked");A.add(G.stringifyIdent(v.anchoredLocator))}}else{let E=[...u.manifest.resolutions.map(({pattern:I})=>I.descriptor.fullName)];for(let I of(0,ude.default)(E,p))A.add(I)}}return u.manifest.resolutions=u.manifest.resolutions.filter(({pattern:p})=>!A.has(p.descriptor.fullName)),await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();qt();var Ade=Ze(J1()),L8=Ze($o());el();var vE=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.patterns=ge.Rest()}static{this.paths=[["up"]]}static{this.usage=it.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]})}static{this.schema=[Yw("recursive",Yu.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})]}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=[...o.storedDescriptors.values()],A=u.map(E=>G.stringifyIdent(E)),p=new Set;for(let E of this.patterns){if(G.parseDescriptor(E).range!=="unknown")throw new st("Ranges aren't allowed when using --recursive");for(let I of(0,L8.default)(A,E)){let v=G.parseIdent(I);p.add(v.identHash)}}let h=u.filter(E=>p.has(E.identHash));for(let E of h)o.storedDescriptors.delete(E.descriptorHash),o.storedResolutions.delete(E.descriptorHash);return await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}async executeUpClassic(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=Z1(this,o),h=A?["keep","reuse","project","latest"]:["project","latest"],E=[],I=[];for(let L of this.patterns){let U=!1,z=G.parseDescriptor(L),te=G.stringifyIdent(z);for(let ae of o.workspaces)for(let le of["dependencies","devDependencies"]){let Ce=[...ae.manifest.getForScope(le).values()].map(Be=>G.stringifyIdent(Be)),de=te==="*"?Ce:(0,L8.default)(Ce,te);for(let Be of de){let Ee=G.parseIdent(Be),g=ae.manifest[le].get(Ee.identHash);if(typeof g>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let me=G.makeDescriptor(Ee,z.range);E.push(Promise.resolve().then(async()=>[ae,le,g,await $1(me,{project:o,workspace:ae,cache:n,target:le,fixed:u,modifier:p,strategies:h})])),U=!0}}U||I.push(L)}if(I.length>1)throw new st(`Patterns ${pe.prettyList(r,I,pe.Type.CODE)} don't match any packages referenced by any workspace`);if(I.length>0)throw new st(`Pattern ${pe.prettyList(r,I,pe.Type.CODE)} doesn't match any packages referenced by any workspace`);let v=await Promise.all(E),x=await AA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async L=>{for(let[,,U,{suggestions:z,rejections:te}]of v){let ae=z.filter(le=>le.descriptor!==null);if(ae.length===0){let[le]=te;if(typeof le>"u")throw new Error("Assertion failed: Expected an error to have been set");let ce=this.cli.error(le);o.configuration.get("enableNetwork")?L.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range + +${ce}`):L.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled) + +${ce}`)}else ae.length>1&&!A&&L.reportError(27,`${G.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(x.hasErrors())return x.exitCode();let C=!1,R=[];for(let[L,U,,{suggestions:z}]of v){let te,ae=z.filter(de=>de.descriptor!==null),le=ae[0].descriptor,ce=ae.every(de=>G.areDescriptorsEqual(de.descriptor,le));ae.length===1||ce?te=le:(C=!0,{answer:te}=await(0,Ade.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${G.prettyWorkspace(r,L)} \u276F ${U}?`,choices:z.map(({descriptor:de,name:Be,reason:Ee})=>de?{name:Be,hint:Ee,descriptor:de}:{name:Be,hint:Ee,disabled:!0}),onCancel:()=>process.exit(130),result(de){return this.find(de,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Ce=L.manifest[U].get(te.identHash);if(typeof Ce>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(Ce.descriptorHash!==te.descriptorHash)L.manifest[U].set(te.identHash,te),R.push([L,U,Ce,te]);else{let de=r.makeResolver(),Be={project:o,resolver:de},Ee=r.normalizeDependency(Ce),g=de.bindDescriptor(Ee,L.anchoredLocator,Be);o.forgetResolution(g)}}return await r.triggerMultipleHooks(L=>L.afterWorkspaceDependencyReplacement,R),C&&this.context.stdout.write(` +`),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};Ge();Ge();Ge();qt();var DE=class extends ut{constructor(){super(...arguments);this.recursive=ge.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=ge.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=ge.String()}static{this.paths=[["why"]]}static{this.usage=it.Usage({description:"display the reason why a package is needed",details:` + This command prints the exact reasons why a package appears in the dependency tree. + + If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=G.parseIdent(this.package).identHash,u=this.recursive?ugt(o,n,{configuration:r,peers:this.peers}):cgt(o,n,{configuration:r,peers:this.peers});fs.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};function cgt(t,e,{configuration:r,peers:o}){let a=He.sortMap(t.storedPackages.values(),A=>G.stringifyLocator(A)),n={},u={children:n};for(let A of a){let p={};for(let E of A.dependencies.values()){if(!o&&A.peerDependencies.has(E.identHash))continue;let I=t.storedResolutions.get(E.descriptorHash);if(!I)throw new Error("Assertion failed: The resolution should have been registered");let v=t.storedPackages.get(I);if(!v)throw new Error("Assertion failed: The package should have been registered");if(v.identHash!==e)continue;{let C=G.stringifyLocator(A);n[C]={value:[A,pe.Type.LOCATOR],children:p}}let x=G.stringifyLocator(v);p[x]={value:[{descriptor:E,locator:v},pe.Type.DEPENDENT]}}}return u}function ugt(t,e,{configuration:r,peers:o}){let a=He.sortMap(t.workspaces,v=>G.stringifyLocator(v.anchoredLocator)),n=new Set,u=new Set,A=v=>{if(n.has(v.locatorHash))return u.has(v.locatorHash);if(n.add(v.locatorHash),v.identHash===e)return u.add(v.locatorHash),!0;let x=!1;v.identHash===e&&(x=!0);for(let C of v.dependencies.values()){if(!o&&v.peerDependencies.has(C.identHash))continue;let R=t.storedResolutions.get(C.descriptorHash);if(!R)throw new Error("Assertion failed: The resolution should have been registered");let L=t.storedPackages.get(R);if(!L)throw new Error("Assertion failed: The package should have been registered");A(L)&&(x=!0)}return x&&u.add(v.locatorHash),x};for(let v of a)A(v.anchoredPackage);let p=new Set,h={},E={children:h},I=(v,x,C)=>{if(!u.has(v.locatorHash))return;let R=C!==null?pe.tuple(pe.Type.DEPENDENT,{locator:v,descriptor:C}):pe.tuple(pe.Type.LOCATOR,v),L={},U={value:R,children:L},z=G.stringifyLocator(v);if(x[z]=U,!(C!==null&&t.tryWorkspaceByLocator(v))&&!p.has(v.locatorHash)){p.add(v.locatorHash);for(let te of v.dependencies.values()){if(!o&&v.peerDependencies.has(te.identHash))continue;let ae=t.storedResolutions.get(te.descriptorHash);if(!ae)throw new Error("Assertion failed: The resolution should have been registered");let le=t.storedPackages.get(ae);if(!le)throw new Error("Assertion failed: The package should have been registered");I(le,L,te)}}};for(let v of a)I(v.anchoredPackage,h,null);return E}Ge();var W8={};Vt(W8,{GitFetcher:()=>s2,GitResolver:()=>o2,default:()=>Qgt,gitUtils:()=>ia});Ge();Pt();var ia={};Vt(ia,{TreeishProtocols:()=>i2,clone:()=>Y8,fetchBase:()=>Rde,fetchChangedFiles:()=>Tde,fetchChangedWorkspaces:()=>xgt,fetchRoot:()=>Fde,isGitUrl:()=>SE,lsRemote:()=>Qde,normalizeLocator:()=>Sgt,normalizeRepoUrl:()=>PE,resolveUrl:()=>G8,splitRepoUrl:()=>Sh,validateRepoUrl:()=>j8});Ge();Pt();qt();var Sde=Ze(Dde()),xde=Ze(uU()),bE=Ze(ve("querystring")),H8=Ze(Jn());function _8(t,e,r){let o=t.indexOf(r);return t.lastIndexOf(e,o>-1?o:1/0)}function Pde(t){try{return new URL(t)}catch{return}}function Pgt(t){let e=_8(t,"@","#"),r=_8(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),_8(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function bde(t){return Pde(t)||Pde(Pgt(t))}function PE(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let r=bde(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function kde(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var bgt=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],i2=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(i2||{});function SE(t){return t?bgt.some(e=>!!t.match(e)):!1}function Sh(t){t=PE(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:"head",request:"HEAD"},extra:{}};let r=t.slice(0,e),o=t.slice(e+1);if(o.match(/^[a-z]+=/)){let a=bE.default.parse(o);for(let[p,h]of Object.entries(a))if(typeof h!="string")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(i2).find(p=>Object.hasOwn(a,p)),[u,A]=typeof n<"u"?[n,a[n]]:["head","HEAD"];for(let p of Object.values(i2))delete a[p];return{repo:r,treeish:{protocol:u,request:A},extra:a}}else{let a=o.indexOf(":"),[n,u]=a===-1?[null,o]:[o.slice(0,a),o.slice(a+1)];return{repo:r,treeish:{protocol:n,request:u},extra:{}}}}function Sgt(t){return G.makeLocator(t,PE(t.reference))}function j8(t,{configuration:e}){let r=PE(t,{git:!0});if(!sn.getNetworkSettings(`https://${(0,Sde.default)(r).resource}`,{configuration:e}).enableNetwork)throw new Jt(80,`Request to '${r}' has been blocked because of your configuration settings`);return r}async function Qde(t,e){let r=j8(t,{configuration:e}),o=await q8("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:kde()},{configuration:e,normalizedRepoUrl:r}),a=new Map,n=/^([a-f0-9]{40})\t([^\n]+)/gm,u;for(;(u=n.exec(o.stdout))!==null;)a.set(u[2],u[1]);return a}async function G8(t,e){let{repo:r,treeish:{protocol:o,request:a},extra:n}=Sh(t),u=await Qde(r,e),A=(h,E)=>{switch(h){case"commit":{if(!E.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return bE.default.stringify({...n,commit:E})}case"head":{let I=u.get(E==="HEAD"?E:`refs/heads/${E}`);if(typeof I>"u")throw new Error(`Unknown head ("${E}")`);return bE.default.stringify({...n,commit:I})}case"tag":{let I=u.get(`refs/tags/${E}`);if(typeof I>"u")throw new Error(`Unknown tag ("${E}")`);return bE.default.stringify({...n,commit:I})}case"semver":{let I=Lr.validRange(E);if(!I)throw new Error(`Invalid range ("${E}")`);let v=new Map([...u.entries()].filter(([C])=>C.startsWith("refs/tags/")).map(([C,R])=>[H8.default.parse(C.slice(10)),R]).filter(C=>C[0]!==null)),x=H8.default.maxSatisfying([...v.keys()],I);if(x===null)throw new Error(`No matching range ("${E}")`);return bE.default.stringify({...n,commit:v.get(x)})}case null:{let I;if((I=p("commit",E))!==null||(I=p("tag",E))!==null||(I=p("head",E))!==null)return I;throw E.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${h}")`)}},p=(h,E)=>{try{return A(h,E)}catch{return null}};return PE(`${r}#${A(o,a)}`)}async function Y8(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:o,request:a}}=Sh(t);if(o!=="commit")throw new Error("Invalid treeish protocol when cloning");let n=j8(r,{configuration:e}),u=await oe.mktempPromise(),A={cwd:u,env:kde()};return await q8("cloning the repository",["clone","-c core.autocrlf=false",n,ue.fromPortablePath(u)],A,{configuration:e,normalizedRepoUrl:n}),await q8("switching branch",["checkout",`${a}`],A,{configuration:e,normalizedRepoUrl:n}),u})}async function Fde(t){let e,r=t;do{if(e=r,await oe.existsPromise(V.join(e,".git")))return e;r=V.dirname(e)}while(r!==e);return null}async function Rde(t,{baseRefs:e}){if(e.length===0)throw new st("Can't run this command with zero base refs specified.");let r=[];for(let A of e){let{code:p}=await Ur.execvp("git",["merge-base",A,"HEAD"],{cwd:t});p===0&&r.push(A)}if(r.length===0)throw new st(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:o}=await Ur.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),a=o.trim(),{stdout:n}=await Ur.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:t,strict:!0}),u=n.trim();return{hash:a,title:u}}async function Tde(t,{base:e,project:r}){let o=He.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Ur.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),n=a.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>V.resolve(t,ue.toPortablePath(h))),{stdout:u}=await Ur.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),A=u.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>V.resolve(t,ue.toPortablePath(h))),p=[...new Set([...n,...A].sort())];return o?p.filter(h=>!V.relative(r.cwd,h).match(o)):p}async function xgt({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new st("This command can only be run from within a Yarn project");let r=[V.resolve(e.cwd,dr.lockfile),V.resolve(e.cwd,e.configuration.get("cacheFolder")),V.resolve(e.cwd,e.configuration.get("installStatePath")),V.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(u=>u.populateYarnPaths,e,u=>{u!=null&&r.push(u)});let o=await Fde(e.configuration.projectCwd);if(o==null)throw new st("This command can only be run on Git repositories");let a=await Rde(o,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),n=await Tde(o,{base:a.hash,project:e});return new Set(He.mapAndFilter(n,u=>{let A=e.tryWorkspaceByFilePath(u);return A===null?He.mapAndFilter.skip:r.some(p=>u.startsWith(p))?He.mapAndFilter.skip:A}))}async function q8(t,e,r,{configuration:o,normalizedRepoUrl:a}){try{return await Ur.execvp("git",e,{...r,strict:!0})}catch(n){if(!(n instanceof Ur.ExecError))throw n;let u=n.reportExtra,A=n.stderr.toString();throw new Jt(1,`Failed ${t}`,p=>{p.reportError(1,` ${pe.prettyField(o,{label:"Repository URL",value:pe.tuple(pe.Type.URL,a)})}`);for(let h of A.matchAll(/^(.+?): (.*)$/gm)){let[,E,I]=h;E=E.toLowerCase();let v=E==="error"?"Error":`${(0,xde.default)(E)} Error`;p.reportError(1,` ${pe.prettyField(o,{label:v,value:pe.tuple(pe.Type.NO_HINT,I)})}`)}u?.(p)})}}var s2=class{supports(e,r){return SE(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,a=new Map(r.checksums);a.set(e.locatorHash,o);let n={...r,checksums:a},u=await this.downloadHosted(e,n);if(u!==null)return u;let[A,p,h]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(e,n),...r.cacheOptions});return{packageFs:A,releaseFs:p,prefixPath:G.getIdentVendorPath(e),checksum:h}}async downloadHosted(e,r){return r.project.configuration.reduceHook(o=>o.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let o=Sh(e.reference),a=await Y8(e.reference,r.project.configuration),n=V.resolve(a,o.extra.cwd??It.dot),u=V.join(n,"package.tgz");await An.prepareExternalProject(n,u,{configuration:r.project.configuration,report:r.report,workspace:o.extra.workspace,locator:e});let A=await oe.readFilePromise(u);return await He.releaseAfterUseAsync(async()=>await $i.convertToZip(A,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1}))}};Ge();Ge();var o2=class{supportsDescriptor(e,r){return SE(e.range)}supportsLocator(e,r){return SE(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=await G8(e.range,o.project.configuration);return[G.makeLocator(e,a)]}async getSatisfying(e,r,o,a){let n=Sh(e.range);return{locators:o.filter(A=>{if(A.identHash!==e.identHash)return!1;let p=Sh(A.reference);return!(n.repo!==p.repo||n.treeish.protocol==="commit"&&n.treeish.request!==p.treeish.request)}),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var kgt={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[s2],resolvers:[o2]};var Qgt=kgt;qt();var xE=class extends ut{constructor(){super(...arguments);this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=ge.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["workspaces","list"]]}static{this.usage=it.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd);return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{let u=this.since?await ia.fetchChangedWorkspaces({ref:this.since,project:o}):o.workspaces,A=new Set(u);if(this.recursive)for(let p of[...u].map(h=>h.getRecursiveWorkspaceDependents()))for(let h of p)A.add(h);for(let p of A){let{manifest:h}=p;if(h.private&&this.noPrivate)continue;let E;if(this.verbose){let I=new Set,v=new Set;for(let x of Ut.hardDependencies)for(let[C,R]of h.getForScope(x)){let L=o.tryWorkspaceByDescriptor(R);L===null?o.workspacesByIdent.has(C)&&v.add(R):I.add(L)}E={workspaceDependencies:Array.from(I).map(x=>x.relativeCwd),mismatchedWorkspaceDependencies:Array.from(v).map(x=>G.stringifyDescriptor(x))}}n.reportInfo(null,`${p.relativeCwd}`),n.reportJson({location:p.relativeCwd,name:h.name?G.stringifyIdent(h.name):null,...E})}})).exitCode()}};Ge();Ge();qt();var kE=class extends ut{constructor(){super(...arguments);this.workspaceName=ge.String();this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["workspace"]]}static{this.usage=it.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` + This command will run a given sub-command on a single workspace. + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);let n=o.workspaces,u=new Map(n.map(p=>[G.stringifyIdent(p.anchoredLocator),p])),A=u.get(this.workspaceName);if(A===void 0){let p=Array.from(u.keys()).sort();throw new st(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + - ${p.join(` + - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:A.cwd})}};var Fgt={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:Nde.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[Ky,Vy,zy,Jy,IE,pE,sE,xE,$y,eE,tE,rE,Yy,Wy,Xy,Zy,nE,iE,oE,aE,lE,cE,BE,uE,AE,gE,hE,dE,fE,mE,yE,EE,CE,wE,vE,DE,kE]},Rgt=Fgt;var Z8={};Vt(Z8,{default:()=>Ngt});Ge();var xt={optional:!0},V8=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:xt,zenObservable:xt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:xt,zenObservable:xt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":xt}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":xt,"postcss-jsx":xt,"postcss-less":xt,"postcss-markdown":xt,"postcss-scss":xt}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:xt}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:xt}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:xt,"vue-template-compiler":xt}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:xt,"utf-8-validate":xt}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{"babel-polyfill":"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{"cross-spawn":"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{"prop-types":"^15.7.2"}}],["@rebass/forms@*",{dependencies:{"@styled-system/should-forward-prop":"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":xt,"vuetify-loader":xt}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":xt}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":xt}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":xt}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:xt}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:xt,tinyliquid:xt,"liquid-node":xt,jade:xt,"then-jade":xt,dust:xt,"dustjs-helpers":xt,"dustjs-linkedin":xt,swig:xt,"swig-templates":xt,"razor-tmpl":xt,atpl:xt,liquor:xt,twig:xt,ejs:xt,eco:xt,jazz:xt,jqtpl:xt,hamljs:xt,hamlet:xt,whiskers:xt,"haml-coffee":xt,"hogan.js":xt,templayed:xt,handlebars:xt,underscore:xt,lodash:xt,pug:xt,"then-pug":xt,qejs:xt,walrus:xt,mustache:xt,just:xt,ect:xt,mote:xt,toffee:xt,dot:xt,"bracket-template":xt,ractive:xt,nunjucks:xt,htmling:xt,"babel-core":xt,plates:xt,"react-dom":xt,react:xt,"arc-templates":xt,vash:xt,slm:xt,marko:xt,teacup:xt,"coffee-script":xt,squirrelly:xt,twing:xt}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":xt}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":xt,vue:xt}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:xt}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:xt}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":xt,"webpack-command":xt}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":xt}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":xt}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:xt,jimp:xt}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":xt,"eslint-import-resolver-typescript":xt,"eslint-import-resolver-webpack":xt,"@typescript-eslint/parser":xt}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":xt}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":xt}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:xt}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:xt}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{"vue-template-compiler":"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["parcel@*",{peerDependenciesMeta:{"@parcel/core":xt}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:xt}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:xt}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:xt}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":xt}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}],["eslint-import-resolver-vite@<2.0.1",{dependencies:{debug:"^4.3.4",resolve:"^1.22.8"}}]];var z8;function Lde(){return typeof z8>"u"&&(z8=ve("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),z8}var J8;function Mde(){return typeof J8>"u"&&(J8=ve("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),J8}var X8;function Ode(){return typeof X8>"u"&&(X8=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),X8}var Ude=new Map([[G.makeIdent(null,"fsevents").identHash,Lde],[G.makeIdent(null,"resolve").identHash,Mde],[G.makeIdent(null,"typescript").identHash,Ode]]),Tgt={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,o]of V8)e(G.parseDescriptor(r,!0),o)},getBuiltinPatch:async(t,e)=>{let r="compat/";if(!e.startsWith(r))return;let o=G.parseIdent(e.slice(r.length)),a=Ude.get(o.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(t,e,r,o)=>typeof Ude.get(t.identHash)>"u"?t:G.makeDescriptor(t,G.makeRange({protocol:"patch:",source:G.stringifyDescriptor(t),selector:`optional!builtin`,params:null}))}},Ngt=Tgt;var dH={};Vt(dH,{ConstraintsCheckCommand:()=>OE,ConstraintsQueryCommand:()=>LE,ConstraintsSourceCommand:()=>ME,default:()=>ldt});Ge();Ge();l2();var FE=class{constructor(e){this.project=e}createEnvironment(){let e=new QE(["cwd","ident"]),r=new QE(["workspace","type","ident"]),o=new QE(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},n=new Map,u=new Map;for(let A of this.project.storedPackages.values()){let p=Array.from(A.peerDependencies.values(),h=>[G.stringifyIdent(h),h.range]);n.set(A.locatorHash,{workspace:null,ident:G.stringifyIdent(A),version:A.version,dependencies:new Map,peerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional!==!0)),optionalPeerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional===!0))})}for(let A of this.project.storedPackages.values()){let p=n.get(A.locatorHash);p.dependencies=new Map(Array.from(A.dependencies.values(),h=>{let E=this.project.storedResolutions.get(h.descriptorHash);if(typeof E>"u")throw new Error("Assertion failed: The resolution should have been registered");let I=n.get(E);if(typeof I>"u")throw new Error("Assertion failed: The package should have been registered");return[G.stringifyIdent(h),I]})),p.dependencies.delete(p.ident)}for(let A of this.project.workspaces){let p=G.stringifyIdent(A.anchoredLocator),h=A.manifest.exportTo({}),E=n.get(A.anchoredLocator.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let I=(R,L,{caller:U=Xi.getCaller()}={})=>{let z=a2(R),te=He.getMapWithDefault(a.manifestUpdates,A.cwd),ae=He.getMapWithDefault(te,z),le=He.getSetWithDefault(ae,L);U!==null&&le.add(U)},v=R=>I(R,void 0,{caller:Xi.getCaller()}),x=R=>{He.getArrayWithDefault(a.reportedErrors,A.cwd).push(R)},C=e.insert({cwd:A.relativeCwd,ident:p,manifest:h,pkg:E,set:I,unset:v,error:x});u.set(A,C);for(let R of Ut.allDependencies)for(let L of A.manifest[R].values()){let U=G.stringifyIdent(L),z=()=>{I([R,U],void 0,{caller:Xi.getCaller()})},te=le=>{I([R,U],le,{caller:Xi.getCaller()})},ae=null;if(R!=="peerDependencies"&&(R!=="dependencies"||!A.manifest.devDependencies.has(L.identHash))){let le=A.anchoredPackage.dependencies.get(L.identHash);if(le){if(typeof le>"u")throw new Error("Assertion failed: The dependency should have been registered");let ce=this.project.storedResolutions.get(le.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: The resolution should have been registered");let Ce=n.get(ce);if(typeof Ce>"u")throw new Error("Assertion failed: The package should have been registered");ae=Ce}}r.insert({workspace:C,ident:U,range:L.range,type:R,resolution:ae,update:te,delete:z,error:x})}}for(let A of this.project.storedPackages.values()){let p=this.project.tryWorkspaceByLocator(A);if(!p)continue;let h=u.get(p);if(typeof h>"u")throw new Error("Assertion failed: The workspace should have been registered");let E=n.get(A.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");E.workspace=h}return{workspaces:e,dependencies:r,packages:o,result:a}}async process(){let e=this.createEnvironment(),r={Yarn:{workspace:a=>e.workspaces.find(a)[0]??null,workspaces:a=>e.workspaces.find(a),dependency:a=>e.dependencies.find(a)[0]??null,dependencies:a=>e.dependencies.find(a),package:a=>e.packages.find(a)[0]??null,packages:a=>e.packages.find(a)}},o=await this.project.loadUserConfig();return o?.constraints?(await o.constraints(r),e.result):null}};Ge();Ge();qt();var LE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.query=ge.String()}static{this.paths=[["constraints","query"]]}static{this.usage=it.Usage({category:"Constraints-related commands",description:"query the constraints fact database",details:` + This command will output all matches to the given prolog query. + `,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(f2(),A2)),o=await Ke.find(this.context.cwd,this.context.plugins),{project:a}=await kt.find(o,this.context.cwd),n=await r.find(a),u=this.query;return u.endsWith(".")||(u=`${u}.`),(await Rt.start({configuration:o,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(u)){let E=Array.from(Object.entries(h)),I=E.length,v=E.reduce((x,[C])=>Math.max(x,C.length),0);for(let x=0;x(f2(),A2)),o=await Ke.find(this.context.cwd,this.context.plugins),{project:a}=await kt.find(o,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};Ge();Ge();qt();l2();var OE=class extends ut{constructor(){super(...arguments);this.fix=ge.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["constraints"]]}static{this.usage=it.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` + This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code. + + If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution. + + For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints. + `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd);await o.restoreInstallState();let a=await o.loadUserConfig(),n;if(a?.constraints)n=new FE(o);else{let{Constraints:h}=await Promise.resolve().then(()=>(f2(),A2));n=await h.find(o)}let u,A=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:I,remainingErrors:v}=ik(o,E,{fix:this.fix}),x=[];for(let[C,R]of I){let L=C.manifest.indent;C.manifest=new Ut,C.manifest.indent=L,C.manifest.load(R),x.push(C.persistManifest())}if(await Promise.all(x),!(I.size>0&&h>1)){u=Wde(v,{configuration:r}),A=!1,p=!0;for(let[,C]of v)for(let R of C)R.fixable?A=!0:p=!1}}if(u.children.length===0)return 0;if(A){let h=p?`Those errors can all be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`;await Rt.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return u.children=He.sortMap(u.children,h=>h.value[1]),fs.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};l2();var adt={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[LE,ME,OE],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),o;if(r?.constraints)o=new FE(t);else{let{Constraints:u}=await Promise.resolve().then(()=>(f2(),A2));o=await u.find(t)}let a=await o.process();if(!a)return;let{remainingErrors:n}=ik(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[u,A]of n)for(let p of A)e(84,`${pe.pretty(t.configuration,u.anchoredLocator,pe.Type.IDENT)}: ${p.text}`);else e(84,`Constraint check failed; run ${pe.pretty(t.configuration,"yarn constraints",pe.Type.CODE)} for more details`)}}},ldt=adt;var mH={};Vt(mH,{CreateCommand:()=>UE,DlxCommand:()=>_E,default:()=>udt});Ge();qt();var UE=class extends ut{constructor(){super(...arguments);this.pkg=ge.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[["create"]]}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let o=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=G.parseDescriptor(o),n=a.name.match(/^create(-|$)/)?a:a.scope?G.makeIdent(a.scope,`create-${a.name}`):G.makeIdent(null,`create-${a.name}`),u=G.stringifyIdent(n);return a.range!=="unknown"&&(u+=`@${a.range}`),this.cli.run(["dlx",...r,u,...this.args])}};Ge();Ge();Pt();qt();var _E=class extends ut{constructor(){super(...arguments);this.packages=ge.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[["dlx"]]}static{this.usage=it.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]})}async execute(){return Ke.telemetry=null,await oe.mktempPromise(async r=>{let o=V.join(r,`dlx-${process.pid}`);await oe.mkdirPromise(o),await oe.writeFilePromise(V.join(o,"package.json"),`{} +`),await oe.writeFilePromise(V.join(o,"yarn.lock"),"");let a=V.join(o,".yarnrc.yml"),n=await Ke.findProjectCwd(this.context.cwd),A={enableGlobalCache:!(await Ke.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Ku(68),level:pe.LogLevel.Discard}]},p=n!==null?V.join(n,".yarnrc.yml"):null;p!==null&&oe.existsSync(p)?(await oe.copyFilePromise(p,a),await Ke.updateConfiguration(o,L=>{let U=He.toMerged(L,A);return Array.isArray(L.plugins)&&(U.plugins=L.plugins.map(z=>{let te=typeof z=="string"?z:z.path,ae=ue.isAbsolute(te)?te:ue.resolve(ue.fromPortablePath(n),te);return typeof z=="string"?ae:{path:ae,spec:z.spec}})),U})):await oe.writeJsonPromise(a,A);let h=this.packages??[this.command],E=G.parseDescriptor(this.command).name,I=await this.cli.run(["add","--fixed","--",...h],{cwd:o,quiet:this.quiet});if(I!==0)return I;this.quiet||this.context.stdout.write(` +`);let v=await Ke.find(o,this.context.plugins),{project:x,workspace:C}=await kt.find(v,o);if(C===null)throw new sr(x.cwd,o);await x.restoreInstallState();let R=await An.getWorkspaceAccessibleBinaries(C);return R.has(E)===!1&&R.size===1&&typeof this.packages>"u"&&(E=Array.from(R)[0][0]),await An.executeWorkspaceAccessibleBinary(C,E,this.args,{packageAccessibleBinaries:R,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};var cdt={commands:[UE,_E]},udt=cdt;var CH={};Vt(CH,{ExecFetcher:()=>h2,ExecResolver:()=>g2,default:()=>pdt,execUtils:()=>lk});Ge();Ge();Pt();var fA="exec:";var lk={};Vt(lk,{loadGeneratorFile:()=>p2,makeLocator:()=>EH,makeSpec:()=>yme,parseSpec:()=>yH});Ge();Pt();function yH(t){let{params:e,selector:r}=G.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:o}}function yme({parentLocator:t,path:e,generatorHash:r,protocol:o}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function EH(t,{parentLocator:e,path:r,generatorHash:o,protocol:a}){return G.makeLocator(t,yme({parentLocator:e,path:r,generatorHash:o,protocol:a}))}async function p2(t,e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(t,{protocol:e}),n=V.isAbsolute(a)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(It.root),prefixPath:V.relative(It.root,n.localPath)}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=V.join(u.prefixPath,a);return await A.readFilePromise(p,"utf8")}var h2=class{supports(e,r){return!!e.reference.startsWith(fA)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:fA});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){let o=await p2(e.reference,fA,r);return oe.mktempPromise(async a=>{let n=V.join(a,"generator.js");return await oe.writeFilePromise(n,o),oe.mktempPromise(async u=>{if(await this.generatePackage(u,e,n,r),!oe.existsSync(V.join(u,"build")))throw new Error("The script should have generated a build directory");return await $i.makeArchiveFromDirectory(V.join(u,"build"),{prefixPath:G.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,o,a){return await oe.mktempPromise(async n=>{let u=await An.makeScriptEnv({project:a.project,binFolder:n}),A=V.join(e,"runtime.js");return await oe.mktempPromise(async p=>{let h=V.join(p,"buildfile.log"),E=V.join(e,"generator"),I=V.join(e,"build");await oe.mkdirPromise(E),await oe.mkdirPromise(I);let v={tempDir:ue.fromPortablePath(E),buildDir:ue.fromPortablePath(I),locator:G.stringifyLocator(r)};await oe.writeFilePromise(A,` + // Expose 'Module' as a global variable + Object.defineProperty(global, 'Module', { + get: () => require('module'), + configurable: true, + enumerable: false, + }); + + // Expose non-hidden built-in modules as global variables + for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) { + Object.defineProperty(global, name, { + get: () => require(name), + configurable: true, + enumerable: false, + }); + } + + // Expose the 'execEnv' global variable + Object.defineProperty(global, 'execEnv', { + value: { + ...${JSON.stringify(v)}, + }, + enumerable: true, + }); + `);let x=u.NODE_OPTIONS||"",C=/\s*--require\s+\S*\.pnp\.c?js\s*/g;x=x.replace(C," ").trim(),u.NODE_OPTIONS=x;let{stdout:R,stderr:L}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${G.stringifyLocator(r)}) +`,prefix:G.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await Ur.pipevp(process.execPath,["--require",ue.fromPortablePath(A),ue.fromPortablePath(o),G.stringifyIdent(r)],{cwd:e,env:u,stdin:null,stdout:R,stderr:L});if(U!==0)throw oe.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${pe.pretty(a.project.configuration,h,pe.Type.PATH)})`)})})}};Ge();Ge();var Adt=2,g2=class{supportsDescriptor(e,r){return!!e.range.startsWith(fA)}supportsLocator(e,r){return!!e.reference.startsWith(fA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=yH(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await p2(G.makeRange({protocol:fA,source:a,selector:a,params:{locator:G.stringifyLocator(n)}}),fA,o.fetchOptions),A=wn.makeHash(`${Adt}`,u).slice(0,6);return[EH(e,{parentLocator:n,path:a,generatorHash:A,protocol:fA})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var fdt={fetchers:[h2],resolvers:[g2]},pdt=fdt;var IH={};Vt(IH,{FileFetcher:()=>E2,FileResolver:()=>C2,TarballFileFetcher:()=>w2,TarballFileResolver:()=>I2,default:()=>ddt,fileUtils:()=>Yg});Ge();Pt();var HE=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,d2=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Ui="file:";var Yg={};Vt(Yg,{fetchArchiveFromLocator:()=>y2,makeArchiveFromLocator:()=>ck,makeBufferFromLocator:()=>wH,makeLocator:()=>qE,makeSpec:()=>Eme,parseSpec:()=>m2});Ge();Pt();function m2(t){let{params:e,selector:r}=G.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:o}}function Eme({parentLocator:t,path:e,hash:r,protocol:o}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function qE(t,{parentLocator:e,path:r,hash:o,protocol:a}){return G.makeLocator(t,Eme({parentLocator:e,path:r,hash:o,protocol:a}))}async function y2(t,e){let{parentLocator:r,path:o}=G.parseFileStyleRange(t.reference,{protocol:Ui}),a=V.isAbsolute(o)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new gn(It.root),prefixPath:V.relative(It.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let u=n.packageFs,A=V.join(n.prefixPath,o);return await He.releaseAfterUseAsync(async()=>await u.readFilePromise(A),n.releaseFs)}async function ck(t,{protocol:e,fetchOptions:r,inMemory:o=!1}){let{parentLocator:a,path:n}=G.parseFileStyleRange(t.reference,{protocol:e}),u=V.isAbsolute(n)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await r.fetcher.fetch(a,r),A=u.localPath?{packageFs:new gn(It.root),prefixPath:V.relative(It.root,u.localPath)}:u;u!==A&&u.releaseFs&&u.releaseFs();let p=A.packageFs,h=V.join(A.prefixPath,n);return await He.releaseAfterUseAsync(async()=>await $i.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:G.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:o}),A.releaseFs)}async function wH(t,{protocol:e,fetchOptions:r}){return(await ck(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var E2=class{supports(e,r){return!!e.reference.startsWith(Ui)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Ui});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){return ck(e,{protocol:Ui,fetchOptions:r})}};Ge();Ge();var hdt=2,C2=class{supportsDescriptor(e,r){return e.range.match(HE)?!0:!!e.range.startsWith(Ui)}supportsLocator(e,r){return!!e.reference.startsWith(Ui)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return HE.test(e.range)&&(e=G.makeDescriptor(e,`${Ui}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=m2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await wH(G.makeLocator(e,G.makeRange({protocol:Ui,source:a,selector:a,params:{locator:G.stringifyLocator(n)}})),{protocol:Ui,fetchOptions:o.fetchOptions}),A=wn.makeHash(`${hdt}`,u).slice(0,6);return[qE(e,{parentLocator:n,path:a,hash:A,protocol:Ui})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Ge();var w2=class{supports(e,r){return d2.test(e.reference)?!!e.reference.startsWith(Ui):!1}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromDisk(e,r){let o=await y2(e,r);return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();Ge();Ge();var I2=class{supportsDescriptor(e,r){return d2.test(e.range)?!!(e.range.startsWith(Ui)||HE.test(e.range)):!1}supportsLocator(e,r){return d2.test(e.reference)?!!e.reference.startsWith(Ui):!1}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return HE.test(e.range)&&(e=G.makeDescriptor(e,`${Ui}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=m2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=qE(e,{parentLocator:n,path:a,hash:"",protocol:Ui}),A=await y2(u,o.fetchOptions),p=wn.makeHash(A).slice(0,6);return[qE(e,{parentLocator:n,path:a,hash:p,protocol:Ui})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var gdt={fetchers:[w2,E2],resolvers:[I2,C2]},ddt=gdt;var DH={};Vt(DH,{GithubFetcher:()=>B2,default:()=>ydt,githubUtils:()=>uk});Ge();Pt();var uk={};Vt(uk,{invalidGithubUrlMessage:()=>Ime,isGithubUrl:()=>BH,parseGithubUrl:()=>vH});var Cme=Ze(ve("querystring")),wme=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function BH(t){return t?wme.some(e=>!!t.match(e)):!1}function vH(t){let e;for(let A of wme)if(e=t.match(A),e)break;if(!e)throw new Error(Ime(t));let[,r,o,a,n="master"]=e,{commit:u}=Cme.default.parse(n);return n=u||n.replace(/[^:]*:/,""),{auth:r,username:o,reponame:a,treeish:n}}function Ime(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var B2=class{supports(e,r){return!!BH(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await sn.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await oe.mktempPromise(async a=>{let n=new gn(a);await $i.extractArchiveTo(o,n,{stripComponents:1});let u=ia.splitRepoUrl(e.reference),A=V.join(a,"package.tgz");await An.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:u.extra.workspace,locator:e});let p=await oe.readFilePromise(A);return await $i.convertToZip(p,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:o,username:a,reponame:n,treeish:u}=vH(e.reference);return`https://${o?`${o}@`:""}github.com/${a}/${n}/archive/${u}.tar.gz`}};var mdt={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let o=new B2;if(!o.supports(e,r))return null;try{return await o.fetch(e,r)}catch{return null}}}},ydt=mdt;var PH={};Vt(PH,{TarballHttpFetcher:()=>D2,TarballHttpResolver:()=>P2,default:()=>Cdt});Ge();function v2(t){let e;try{e=new URL(t)}catch{return!1}return!(e.protocol!=="http:"&&e.protocol!=="https:"||!e.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}var D2=class{supports(e,r){return v2(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await sn.get(e.reference,{configuration:r.project.configuration});return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();Ge();var P2=class{supportsDescriptor(e,r){return v2(e.range)}supportsLocator(e,r){return v2(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[G.convertDescriptorToLocator(e)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Edt={fetchers:[D2],resolvers:[P2]},Cdt=Edt;var bH={};Vt(bH,{InitCommand:()=>jE,default:()=>Idt});Ge();Ge();Pt();qt();var jE=class extends ut{constructor(){super(...arguments);this.private=ge.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=ge.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=ge.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.name=ge.String("-n,--name",{description:"Initialize a package with the given name"});this.usev2=ge.Boolean("-2",!1,{hidden:!0});this.yes=ge.Boolean("-y,--yes",{hidden:!0})}static{this.paths=[["init"]]}static{this.usage=it.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return o!==null?await this.executeProxy(r,o):await this.executeRegular(r)}async executeProxy(r,o){if(r.projectCwd!==null&&r.projectCwd!==this.context.cwd)throw new st("Cannot use the --install flag from within a project subdirectory");oe.existsSync(this.context.cwd)||await oe.mkdirPromise(this.context.cwd,{recursive:!0});let a=V.join(this.context.cwd,dr.lockfile);oe.existsSync(a)||await oe.writeFilePromise(a,"");let n=await this.cli.run(["set","version",o],{quiet:!0});if(n!==0)return n;let u=[];return this.private&&u.push("-p"),this.workspace&&u.push("-w"),this.name&&u.push(`-n=${this.name}`),this.yes&&u.push("-y"),await oe.mktempPromise(async A=>{let{code:p}=await Ur.pipevp("yarn",["init",...u],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await An.makeScriptEnv({binFolder:A})});return p})}async executeRegular(r){let o=null;try{o=(await kt.find(r,this.context.cwd)).project}catch{o=null}oe.existsSync(this.context.cwd)||await oe.mkdirPromise(this.context.cwd,{recursive:!0});let a=await Ut.tryFind(this.context.cwd),n=a??new Ut,u=Object.fromEntries(r.get("initFields").entries());n.load(u),n.name=n.name??G.makeIdent(r.get("initScope"),this.name??V.basename(this.context.cwd)),n.packageManager=nn&&He.isTaggedYarnVersion(nn)?`yarn@${nn}`:null,(!a&&this.workspace||this.private)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await oe.mkdirPromise(V.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let A={};n.exportTo(A);let p=V.join(this.context.cwd,Ut.fileName);await oe.changeFilePromise(p,`${JSON.stringify(A,null,2)} +`,{automaticNewlines:!0});let h=[p],E=V.join(this.context.cwd,"README.md");if(oe.existsSync(E)||(await oe.writeFilePromise(E,`# ${G.stringifyIdent(n.name)} +`),h.push(E)),!o||o.cwd===this.context.cwd){let I=V.join(this.context.cwd,dr.lockfile);oe.existsSync(I)||(await oe.writeFilePromise(I,""),h.push(I));let x=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(le=>`${le} +`).join(""),C=V.join(this.context.cwd,".gitignore");oe.existsSync(C)||(await oe.writeFilePromise(C,x),h.push(C));let L=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(le=>`${le} +`).join(""),U=V.join(this.context.cwd,".gitattributes");oe.existsSync(U)||(await oe.writeFilePromise(U,L),h.push(U));let z={"*":{endOfLine:"lf",insertFinalNewline:!0},"*.{js,json,yml}":{charset:"utf-8",indentStyle:"space",indentSize:2}};He.mergeIntoTarget(z,r.get("initEditorConfig"));let te=`root = true +`;for(let[le,ce]of Object.entries(z)){te+=` +[${le}] +`;for(let[Ce,de]of Object.entries(ce)){let Be=Ce.replace(/[A-Z]/g,Ee=>`_${Ee.toLowerCase()}`);te+=`${Be} = ${de} +`}}let ae=V.join(this.context.cwd,".editorconfig");oe.existsSync(ae)||(await oe.writeFilePromise(ae,te),h.push(ae)),await this.cli.run(["install"],{quiet:!0}),oe.existsSync(V.join(this.context.cwd,".git"))||(await Ur.execvp("git",["init"],{cwd:this.context.cwd}),await Ur.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await Ur.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};var wdt={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[jE]},Idt=wdt;var kq={};Vt(kq,{SearchCommand:()=>oC,UpgradeInteractiveCommand:()=>aC,default:()=>uIt});Ge();var vme=Ze(ve("os"));function GE({stdout:t}){if(vme.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}qt();var Lye=Ze(YH()),WH={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},Eyt=(0,Lye.default)(WH.appId,WH.apiKey).initIndex(WH.indexName),KH=async(t,e=0)=>await Eyt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var vB=["regular","dev","peer"],oC=class extends ut{static{this.paths=[["search"]]}static{this.usage=it.Usage({category:"Interactive commands",description:"open the search interface",details:` + This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. + `,examples:[["Open the search window","yarn search"]]})}async execute(){GE(this.context);let{Gem:e}=await Promise.resolve().then(()=>(Zk(),Eq)),{ScrollableItems:r}=await Promise.resolve().then(()=>(rQ(),tQ)),{useKeypress:o}=await Promise.resolve().then(()=>(wB(),Xwe)),{useMinistore:a}=await Promise.resolve().then(()=>(Dq(),vq)),{renderForm:n}=await Promise.resolve().then(()=>(oQ(),sQ)),{default:u}=await Promise.resolve().then(()=>Ze(aIe())),{Box:A,Text:p}=await Promise.resolve().then(()=>Ze(ic())),{default:h,useEffect:E,useState:I}=await Promise.resolve().then(()=>Ze(an())),v=await Ke.find(this.context.cwd,this.context.plugins),x=()=>h.createElement(A,{flexDirection:"row"},h.createElement(A,{flexDirection:"column",width:48},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move between packages.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select a package.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," again to change the target."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),C=()=>h.createElement(h.Fragment,null,h.createElement(A,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(A,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(A,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),R=()=>h.createElement(A,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),L=({hit:de,active:Be})=>{let[Ee,g]=a(de.name,null);o({active:Be},(Ae,ne)=>{if(ne.name!=="space")return;if(!Ee){g(vB[0]);return}let Z=vB.indexOf(Ee)+1;Z===vB.length?g(null):g(vB[Z])},[Ee,g]);let me=G.parseIdent(de.name),we=G.prettyIdent(v,me);return h.createElement(A,null,h.createElement(A,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},we)),h.createElement(A,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},de.owner.name)),h.createElement(A,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},de.version)),h.createElement(A,{width:16,marginLeft:1},h.createElement(p,null,de.humanDownloadsLast30Days)))},U=({name:de,active:Be})=>{let[Ee]=a(de,null),g=G.parseIdent(de);return h.createElement(A,null,h.createElement(A,{width:47},h.createElement(p,{bold:!0}," - ",G.prettyIdent(v,g))),vB.map(me=>h.createElement(A,{key:me,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(e,{active:Ee===me})," ",h.createElement(p,{bold:!0},me)))))},z=()=>h.createElement(A,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),ae=await n(({useSubmit:de})=>{let Be=a();de(Be);let Ee=Array.from(Be.keys()).filter(H=>Be.get(H)!==null),[g,me]=I(""),[we,Ae]=I(0),[ne,Z]=I([]),xe=H=>{H.match(/\t| /)||me(H)},Ne=async()=>{Ae(0);let H=await KH(g);H.query===g&&Z(H.hits)},ht=async()=>{let H=await KH(g,we+1);H.query===g&&H.page-1===we&&(Ae(H.page),Z([...ne,...H.hits]))};return E(()=>{g?Ne():Z([])},[g]),h.createElement(A,{flexDirection:"column"},h.createElement(x,null),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(A,{width:41},h.createElement(u,{value:g,onChange:xe,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(C,null)),ne.length?h.createElement(r,{radius:2,loop:!1,children:ne.map(H=>h.createElement(L,{key:H.name,hit:H,active:!1})),willReachEnd:ht}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(A,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(R,null)),Ee.length?Ee.map(H=>h.createElement(U,{key:H,name:H,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(z,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ae>"u")return 1;let le=Array.from(ae.keys()).filter(de=>ae.get(de)==="regular"),ce=Array.from(ae.keys()).filter(de=>ae.get(de)==="dev"),Ce=Array.from(ae.keys()).filter(de=>ae.get(de)==="peer");return le.length&&await this.cli.run(["add",...le]),ce.length&&await this.cli.run(["add","--dev",...ce]),Ce&&await this.cli.run(["add","--peer",...Ce]),0}};Ge();qt();f_();var hIe=Ze(Jn()),pIe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/,gIe=(t,e)=>t.length>0?[t.slice(0,e)].concat(gIe(t.slice(e),e)):[],aC=class extends ut{static{this.paths=[["upgrade-interactive"]]}static{this.usage=it.Usage({category:"Interactive commands",description:"open the upgrade interface",details:` + This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade. + `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]})}async execute(){GE(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(fIe(),AIe)),{Pad:r}=await Promise.resolve().then(()=>(xq(),uIe)),{ScrollableItems:o}=await Promise.resolve().then(()=>(rQ(),tQ)),{useMinistore:a}=await Promise.resolve().then(()=>(Dq(),vq)),{renderForm:n}=await Promise.resolve().then(()=>(oQ(),sQ)),{Box:u,Text:A}=await Promise.resolve().then(()=>Ze(ic())),{default:p,useEffect:h,useRef:E,useState:I}=await Promise.resolve().then(()=>Ze(an())),v=await Ke.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await kt.find(v,this.context.cwd),R=await Gr.find(v);if(!C)throw new sr(x.cwd,this.context.cwd);await x.restoreInstallState({restoreResolutions:!1});let L=this.context.stdout.rows-7,U=(me,we)=>{let Ae=gpe(me,we),ne="";for(let Z of Ae)Z.added?ne+=pe.pretty(v,Z.value,"green"):Z.removed||(ne+=Z.value);return ne},z=(me,we)=>{if(me===we)return we;let Ae=G.parseRange(me),ne=G.parseRange(we),Z=Ae.selector.match(pIe),xe=ne.selector.match(pIe);if(!Z||!xe)return U(me,we);let Ne=["gray","red","yellow","green","magenta"],ht=null,H="";for(let rt=1;rt{let ne=await Zc.fetchDescriptorFrom(me,Ae,{project:x,cache:R,preserveModifier:we,workspace:C});return ne!==null?ne.range:me.range},ae=async me=>{let we=hIe.default.valid(me.range)?`^${me.range}`:me.range,[Ae,ne]=await Promise.all([te(me,me.range,we).catch(()=>null),te(me,me.range,"latest").catch(()=>null)]),Z=[{value:null,label:me.range}];return Ae&&Ae!==me.range?Z.push({value:Ae,label:z(me.range,Ae)}):Z.push({value:null,label:""}),ne&&ne!==Ae&&ne!==me.range?Z.push({value:ne,label:z(me.range,ne)}):Z.push({value:null,label:""}),Z},le=()=>p.createElement(u,{flexDirection:"row"},p.createElement(u,{flexDirection:"column",width:49},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},""),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to select packages.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},""),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to select versions."))),p.createElement(u,{flexDirection:"column"},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to install.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to abort.")))),ce=()=>p.createElement(u,{flexDirection:"row",paddingTop:1,paddingBottom:1},p.createElement(u,{width:50},p.createElement(A,{bold:!0},p.createElement(A,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Current")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Range")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Latest"))),Ce=({active:me,descriptor:we,suggestions:Ae})=>{let[ne,Z]=a(we.descriptorHash,null),xe=G.stringifyIdent(we),Ne=Math.max(0,45-xe.length);return p.createElement(p.Fragment,null,p.createElement(u,null,p.createElement(u,{width:45},p.createElement(A,{bold:!0},G.prettyIdent(v,we)),p.createElement(r,{active:me,length:Ne})),p.createElement(e,{active:me,options:Ae,value:ne,skewer:!0,onChange:Z,sizes:[17,17,17]})))},de=({dependencies:me})=>{let[we,Ae]=I(me.map(()=>null)),ne=E(!0),Z=async xe=>{let Ne=await ae(xe);return Ne.filter(ht=>ht.label!=="").length<=1?null:{descriptor:xe,suggestions:Ne}};return h(()=>()=>{ne.current=!1},[]),h(()=>{let xe=Math.trunc(L*1.75),Ne=me.slice(0,xe),ht=me.slice(xe),H=gIe(ht,L),rt=Ne.map(Z).reduce(async(Te,Fe)=>{await Te;let ke=await Fe;ke!==null&&ne.current&&Ae(Ye=>{let be=Ye.findIndex(Ue=>Ue===null),et=[...Ye];return et[be]=ke,et})},Promise.resolve());H.reduce((Te,Fe)=>Promise.all(Fe.map(ke=>Promise.resolve().then(()=>Z(ke)))).then(async ke=>{ke=ke.filter(Ye=>Ye!==null),await Te,ne.current&&Ae(Ye=>{let be=Ye.findIndex(et=>et===null);return Ye.slice(0,be).concat(ke).concat(Ye.slice(be+ke.length))})}),rt).then(()=>{ne.current&&Ae(Te=>Te.filter(Fe=>Fe!==null))})},[]),we.length?p.createElement(o,{radius:L>>1,children:we.map((xe,Ne)=>xe!==null?p.createElement(Ce,{key:Ne,active:!1,descriptor:xe.descriptor,suggestions:xe.suggestions}):p.createElement(A,{key:Ne},"Loading..."))}):p.createElement(A,null,"No upgrades found")},Ee=await n(({useSubmit:me})=>{me(a());let we=new Map;for(let ne of x.workspaces)for(let Z of["dependencies","devDependencies"])for(let xe of ne.manifest[Z].values())x.tryWorkspaceByDescriptor(xe)===null&&(xe.range.startsWith("link:")||we.set(xe.descriptorHash,xe));let Ae=He.sortMap(we.values(),ne=>G.stringifyDescriptor(ne));return p.createElement(u,{flexDirection:"column"},p.createElement(le,null),p.createElement(ce,null),p.createElement(de,{dependencies:Ae}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof Ee>"u")return 1;let g=!1;for(let me of x.workspaces)for(let we of["dependencies","devDependencies"]){let Ae=me.manifest[we];for(let ne of Ae.values()){let Z=Ee.get(ne.descriptorHash);typeof Z<"u"&&Z!==null&&(Ae.set(ne.identHash,G.makeDescriptor(ne,Z)),g=!0)}}return g?await x.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:R}):0}};var cIt={commands:[oC,aC]},uIt=cIt;var Qq={};Vt(Qq,{LinkFetcher:()=>PB,LinkResolver:()=>bB,PortalFetcher:()=>SB,PortalResolver:()=>xB,default:()=>fIt});Ge();Pt();var Zf="portal:",$f="link:";var PB=class{supports(e,r){return!!e.reference.startsWith($f)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:$f});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:$f}),n=V.isAbsolute(a)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(It.root),prefixPath:V.relative(It.root,n.localPath),localPath:It.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=V.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new gn(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:It.dot,discardFromLookup:!0,localPath:p}:{packageFs:new qu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:It.dot,discardFromLookup:!0}}};Ge();Pt();var bB=class{supportsDescriptor(e,r){return!!e.range.startsWith($f)}supportsLocator(e,r){return!!e.reference.startsWith($f)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice($f.length);return[G.makeLocator(e,`${$f}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){return{...e,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};Ge();Pt();var SB=class{supports(e,r){return!!e.reference.startsWith(Zf)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Zf});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Zf}),n=V.isAbsolute(a)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(It.root),prefixPath:V.relative(It.root,n.localPath),localPath:It.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=V.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new gn(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:It.dot,localPath:p}:{packageFs:new qu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:It.dot}}};Ge();Ge();Pt();var xB=class{supportsDescriptor(e,r){return!!e.range.startsWith(Zf)}supportsLocator(e,r){return!!e.reference.startsWith(Zf)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(Zf.length);return[G.makeLocator(e,`${Zf}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var AIt={fetchers:[PB,SB],resolvers:[bB,xB]},fIt=AIt;var hj={};Vt(hj,{NodeModulesLinker:()=>GB,NodeModulesMode:()=>uj,PnpLooseLinker:()=>YB,default:()=>S1t});Pt();Ge();Pt();Pt();var Rq=(t,e)=>`${t}@${e}`,dIe=(t,e)=>{let r=e.indexOf("#"),o=r>=0?e.substring(r+1):e;return Rq(t,o)};var yIe=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),o=e.check||r>=9,a=e.hoistingLimits||new Map,n={check:o,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},u;n.debugLevel>=0&&(u=Date.now());let A=EIt(t,n),p=!1,h=0;do{let E=Tq(A,[A],new Set([A.locator]),new Map,n);p=E.anotherRoundNeeded||E.isGraphChanged,n.fastLookupPossible=!1,h++}while(p);if(n.debugLevel>=0&&console.log(`hoist time: ${Date.now()-u}ms, rounds: ${h}`),n.debugLevel>=1){let E=kB(A);if(Tq(A,[A],new Set([A.locator]),new Map,n).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +${E}, next tree: +${kB(A)}`);let v=EIe(A);if(v)throw new Error(`${v}, after hoisting finished: +${kB(A)}`)}return n.debugLevel>=2&&console.log(kB(A)),CIt(A)},pIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=n=>{if(!o.has(n)){o.add(n);for(let u of n.hoistedDependencies.values())r.set(u.name,u);for(let u of n.dependencies.values())n.peerNames.has(u.name)||a(u)}};return a(e),r},hIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=new Set,n=(u,A)=>{if(o.has(u))return;o.add(u);for(let h of u.hoistedDependencies.values())if(!A.has(h.name)){let E;for(let I of t)E=I.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of u.dependencies.values())p.add(h.name);for(let h of u.dependencies.values())u.peerNames.has(h.name)||n(h,p)};return n(e,a),r},mIe=(t,e)=>{if(e.decoupled)return e;let{name:r,references:o,ident:a,locator:n,dependencies:u,originalDependencies:A,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:I,hoistPriority:v,dependencyKind:x,hoistedFrom:C,hoistedTo:R}=e,L={name:r,references:new Set(o),ident:a,locator:n,dependencies:new Map(u),originalDependencies:new Map(A),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:I,hoistPriority:v,dependencyKind:x,hoistedFrom:new Map(C),hoistedTo:new Map(R)},U=L.dependencies.get(r);return U&&U.ident==L.ident&&L.dependencies.set(r,L),t.dependencies.set(L.name,L),L},gIt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let o=Array.from(e.keys());o.sort((a,n)=>{let u=e.get(a),A=e.get(n);return A.hoistPriority!==u.hoistPriority?A.hoistPriority-u.hoistPriority:A.peerDependents.size!==u.peerDependents.size?A.peerDependents.size-u.peerDependents.size:A.dependents.size-u.dependents.size});for(let a of o){let n=a.substring(0,a.indexOf("@",1)),u=a.substring(n.length+1);if(!t.peerNames.has(n)){let A=r.get(n);A||(A=[],r.set(n,A)),A.indexOf(u)<0&&A.push(u)}}return r},Fq=t=>{let e=new Set,r=(o,a=new Set)=>{if(!a.has(o)){a.add(o);for(let n of o.peerNames)if(!t.peerNames.has(n)){let u=t.dependencies.get(n);u&&!e.has(u)&&r(u,a)}e.add(o)}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||r(o);return e},Tq=(t,e,r,o,a,n=new Set)=>{let u=e[e.length-1];if(n.has(u))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(u);let A=wIt(u),p=gIt(u,A),h=t==u?new Map:a.fastLookupPossible?pIt(e):hIt(e),E,I=!1,v=!1,x=new Map(Array.from(p.entries()).map(([R,L])=>[R,L[0]])),C=new Map;do{let R=yIt(t,e,r,h,x,p,o,C,a);R.isGraphChanged&&(v=!0),R.anotherRoundNeeded&&(I=!0),E=!1;for(let[L,U]of p)U.length>1&&!u.dependencies.has(L)&&(x.delete(L),U.shift(),x.set(L,U[0]),E=!0)}while(E);for(let R of u.dependencies.values())if(!u.peerNames.has(R.name)&&!r.has(R.locator)){r.add(R.locator);let L=Tq(t,[...e,R],r,C,a);L.isGraphChanged&&(v=!0),L.anotherRoundNeeded&&(I=!0),r.delete(R.locator)}return{anotherRoundNeeded:I,isGraphChanged:v}},dIt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},mIt=(t,e,r,o,a,n,u,A,{outputReason:p,fastLookupPossible:h})=>{let E,I=null,v=new Set;p&&(E=`${Array.from(e).map(L=>no(L)).join("\u2192")}`);let x=r[r.length-1],R=!(o.ident===x.ident);if(p&&!R&&(I="- self-reference"),R&&(R=o.dependencyKind!==1,p&&!R&&(I="- workspace")),R&&o.dependencyKind===2&&(R=!dIt(o),p&&!R&&(I="- external soft link with unhoisted dependencies")),R&&(R=!t.peerNames.has(o.name),p&&!R&&(I=`- cannot shadow peer: ${no(t.originalDependencies.get(o.name).locator)} at ${E}`)),R){let L=!1,U=a.get(o.name);if(L=!U||U.ident===o.ident,p&&!L&&(I=`- filled by: ${no(U.locator)} at ${E}`),L)for(let z=r.length-1;z>=1;z--){let ae=r[z].dependencies.get(o.name);if(ae&&ae.ident!==o.ident){L=!1;let le=A.get(x);le||(le=new Set,A.set(x,le)),le.add(o.name),p&&(I=`- filled by ${no(ae.locator)} at ${r.slice(0,z).map(ce=>no(ce.locator)).join("\u2192")}`);break}}R=L}if(R&&(R=n.get(o.name)===o.ident,p&&!R&&(I=`- filled by: ${no(u.get(o.name)[0])} at ${E}`)),R){let L=!0,U=new Set(o.peerNames);for(let z=r.length-1;z>=1;z--){let te=r[z];for(let ae of U){if(te.peerNames.has(ae)&&te.originalDependencies.has(ae))continue;let le=te.dependencies.get(ae);le&&t.dependencies.get(ae)!==le&&(z===r.length-1?v.add(le):(v=null,L=!1,p&&(I=`- peer dependency ${no(le.locator)} from parent ${no(te.locator)} was not hoisted to ${E}`))),U.delete(ae)}if(!L)break}R=L}if(R&&!h)for(let L of o.hoistedDependencies.values()){let U=a.get(L.name)||t.dependencies.get(L.name);if(!U||L.ident!==U.ident){R=!1,p&&(I=`- previously hoisted dependency mismatch, needed: ${no(L.locator)}, available: ${no(U?.locator)}`);break}}return v!==null&&v.size>0?{isHoistable:2,dependsOn:v,reason:I}:{isHoistable:R?0:1,reason:I}},aQ=t=>`${t.name}@${t.locator}`,yIt=(t,e,r,o,a,n,u,A,p)=>{let h=e[e.length-1],E=new Set,I=!1,v=!1,x=(U,z,te,ae,le)=>{if(E.has(ae))return;let ce=[...z,aQ(ae)],Ce=[...te,aQ(ae)],de=new Map,Be=new Map;for(let Ae of Fq(ae)){let ne=mIt(h,r,[h,...U,ae],Ae,o,a,n,A,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(Be.set(Ae,ne),ne.isHoistable===2)for(let Z of ne.dependsOn){let xe=de.get(Z.name)||new Set;xe.add(Ae.name),de.set(Z.name,xe)}}let Ee=new Set,g=(Ae,ne,Z)=>{if(!Ee.has(Ae)){Ee.add(Ae),Be.set(Ae,{isHoistable:1,reason:Z});for(let xe of de.get(Ae.name)||[])g(ae.dependencies.get(xe),ne,p.debugLevel>=2?`- peer dependency ${no(Ae.locator)} from parent ${no(ae.locator)} was not hoisted`:"")}};for(let[Ae,ne]of Be)ne.isHoistable===1&&g(Ae,ne,ne.reason);let me=!1;for(let Ae of Be.keys())if(!Ee.has(Ae)){v=!0;let ne=u.get(ae);ne&&ne.has(Ae.name)&&(I=!0),me=!0,ae.dependencies.delete(Ae.name),ae.hoistedDependencies.set(Ae.name,Ae),ae.reasons.delete(Ae.name);let Z=h.dependencies.get(Ae.name);if(p.debugLevel>=2){let xe=Array.from(z).concat([ae.locator]).map(ht=>no(ht)).join("\u2192"),Ne=h.hoistedFrom.get(Ae.name);Ne||(Ne=[],h.hoistedFrom.set(Ae.name,Ne)),Ne.push(xe),ae.hoistedTo.set(Ae.name,Array.from(e).map(ht=>no(ht.locator)).join("\u2192"))}if(!Z)h.ident!==Ae.ident&&(h.dependencies.set(Ae.name,Ae),le.add(Ae));else for(let xe of Ae.references)Z.references.add(xe)}if(ae.dependencyKind===2&&me&&(I=!0),p.check){let Ae=EIe(t);if(Ae)throw new Error(`${Ae}, after hoisting dependencies of ${[h,...U,ae].map(ne=>no(ne.locator)).join("\u2192")}: +${kB(t)}`)}let we=Fq(ae);for(let Ae of we)if(Ee.has(Ae)){let ne=Be.get(Ae);if((a.get(Ae.name)===Ae.ident||!ae.reasons.has(Ae.name))&&ne.isHoistable!==0&&ae.reasons.set(Ae.name,ne.reason),!Ae.isHoistBorder&&Ce.indexOf(aQ(Ae))<0){E.add(ae);let xe=mIe(ae,Ae);x([...U,ae],ce,Ce,xe,R),E.delete(ae)}}},C,R=new Set(Fq(h)),L=Array.from(e).map(U=>aQ(U));do{C=R,R=new Set;for(let U of C){if(U.locator===h.locator||U.isHoistBorder)continue;let z=mIe(h,U);x([],Array.from(r),L,z,R)}}while(R.size>0);return{anotherRoundNeeded:I,isGraphChanged:v}},EIe=t=>{let e=[],r=new Set,o=new Set,a=(n,u,A)=>{if(r.has(n)||(r.add(n),o.has(n)))return;let p=new Map(u);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let E=p.get(h.name),I=()=>`${Array.from(o).concat([n]).map(v=>no(v.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let v=u.get(h.name);(v!==E||!v||v.ident!==h.ident)&&e.push(`${I()} - broken peer promise: expected ${h.ident} but found ${v&&v.ident}`)}else{let v=A.hoistedFrom.get(n.name),x=n.hoistedTo.get(h.name),C=`${v?` hoisted from ${v.join(", ")}`:""}`,R=`${x?` hoisted to ${x}`:""}`,L=`${I()}${C}`;E?E.ident!==h.ident&&e.push(`${L} - broken require promise for ${h.name}${R}: expected ${h.ident}, but found: ${E.ident}`):e.push(`${L} - broken require promise: no required dependency ${h.name}${R} found`)}}o.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);o.delete(n)};return a(t,t.dependencies,t),e.join(` +`)},EIt=(t,e)=>{let{identName:r,name:o,reference:a,peerNames:n}=t,u={name:o,references:new Set([a]),locator:Rq(r,a),ident:dIe(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[t,u]]),p=(h,E)=>{let I=A.get(h),v=!!I;if(!I){let{name:x,identName:C,reference:R,peerNames:L,hoistPriority:U,dependencyKind:z}=h,te=e.hoistingLimits.get(E.locator);I={name:x,references:new Set([R]),locator:Rq(C,R),ident:dIe(C,R),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(L),reasons:new Map,decoupled:!0,isHoistBorder:te?te.has(x):!1,hoistPriority:U||0,dependencyKind:z||0,hoistedFrom:new Map,hoistedTo:new Map},A.set(h,I)}if(E.dependencies.set(h.name,I),E.originalDependencies.set(h.name,I),v){let x=new Set,C=R=>{if(!x.has(R)){x.add(R),R.decoupled=!1;for(let L of R.dependencies.values())R.peerNames.has(L.name)||C(L)}};C(I)}else for(let x of h.dependencies)p(x,I)};for(let h of t.dependencies)p(h,u);return u},Nq=t=>t.substring(0,t.indexOf("@",1)),CIt=t=>{let e={name:t.name,identName:Nq(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),o=(a,n,u)=>{let A=r.has(a),p;if(n===a)p=u;else{let{name:h,references:E,locator:I}=a;p={name:h,identName:Nq(I),references:E,dependencies:new Set}}if(u.dependencies.add(p),!A){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||o(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())o(a,t,e);return e},wIt=t=>{let e=new Map,r=new Set([t]),o=u=>`${u.name}@${u.ident}`,a=u=>{let A=o(u),p=e.get(A);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(A,p)),p},n=(u,A)=>{let p=!!r.has(A);if(a(A).dependents.add(u.ident),!p){r.add(A);for(let E of A.dependencies.values()){let I=a(E);I.hoistPriority=Math.max(I.hoistPriority,E.hoistPriority),A.peerNames.has(E.name)?I.peerDependents.add(A.ident):n(A,E)}}};for(let u of t.dependencies.values())t.peerNames.has(u.name)||n(t,u);return e},no=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let o=t.substring(e+1);if(o==="workspace:.")return".";if(o){let a=(o.indexOf("#")>0?o.split("#")[1]:o).replace("npm:","");return o.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`};var kB=t=>{let e=0,r=(a,n,u="")=>{if(e>5e4||n.has(a))return"";e++;let A=Array.from(a.dependencies.values()).sort((h,E)=>h.name===E.name?0:h.name>E.name?1:-1),p="";n.add(a);for(let h=0;h":"")+(v!==E.name?`a:${E.name}:`:"")+no(E.locator)+(I?` ${I}`:"")} +`,p+=r(E,n,`${u}${h5e4?` +Tree is too large, part of the tree has been dunped +`:"")};var QB=(o=>(o.WORKSPACES="workspaces",o.DEPENDENCIES="dependencies",o.NONE="none",o))(QB||{}),CIe="node_modules",Oh="$wsroot$";var FB=(t,e)=>{let{packageTree:r,hoistingLimits:o,errors:a,preserveSymlinksRequired:n}=BIt(t,e),u=null;if(a.length===0){let A=yIe(r,{hoistingLimits:o});u=DIt(t,A,e)}return{tree:u,errors:a,preserveSymlinksRequired:n}},gA=t=>`${t.name}@${t.reference}`,Mq=t=>{let e=new Map;for(let[r,o]of t.entries())if(!o.dirList){let a=e.get(o.locator);a||(a={target:o.target,linkType:o.linkType,locations:[],aliases:o.aliases},e.set(o.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((o,a)=>{let n=o.split(V.delimiter).length,u=a.split(V.delimiter).length;return a===o?0:n!==u?u-n:a>o?1:-1});return e},wIe=(t,e)=>{let r=G.isVirtualLocator(t)?G.devirtualizeLocator(t):t,o=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e;return G.areLocatorsEqual(r,o)},Lq=(t,e,r,o)=>{if(t.linkType!=="SOFT")return!1;let a=ue.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return V.contains(o,a)===null},IIt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let o=ue.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},u=t.getDependencyTreeRoots(),A=new Map,p=new Set,h=(v,x)=>{let C=gA(v);if(p.has(C))return;p.add(C);let R=t.getPackageInformation(v);if(R){let L=x?gA(x):"";if(gA(v)!==L&&R.linkType==="SOFT"&&!v.reference.startsWith("link:")&&!Lq(R,v,t,o)){let U=IIe(R,v,t);(!A.get(U)||v.reference.startsWith("workspace:"))&&A.set(U,v)}for(let[U,z]of R.packageDependencies)z!==null&&(R.packagePeers.has(U)||h(t.getLocator(U,z),v))}};for(let v of u)h(v,null);let E=o.split(V.sep);for(let v of A.values()){let x=t.getPackageInformation(v),R=ue.toPortablePath(x.packageLocation.slice(0,-1)).split(V.sep).slice(E.length),L=n;for(let U of R){let z=L.children.get(U);z||(z={children:new Map},L.children.set(U,z)),L=z}L.workspaceLocator=v}let I=(v,x)=>{if(v.workspaceLocator){let C=gA(x),R=a.get(C);R||(R=new Set,a.set(C,R)),R.add(v.workspaceLocator)}for(let C of v.children.values())I(C,v.workspaceLocator||x)};for(let v of n.children.values())I(v,n.workspaceLocator);return a},BIt=(t,e)=>{let r=[],o=!1,a=new Map,n=IIt(t),u=t.getPackageInformation(t.topLevel);if(u===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=t.findPackageLocator(u.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=ue.toPortablePath(u.packageLocation.slice(0,-1)),h={name:A.name,identName:A.name,reference:A.reference,peerNames:u.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,I=(x,C)=>`${gA(C)}:${x}`,v=(x,C,R,L,U,z,te,ae)=>{let le=I(x,R),ce=E.get(le),Ce=!!ce;!Ce&&R.name===A.name&&R.reference===A.reference&&(ce=h,E.set(le,h));let de=Lq(C,R,t,p);if(!ce){let Ae=0;de?Ae=2:C.linkType==="SOFT"&&R.name.endsWith(Oh)&&(Ae=1),ce={name:x,identName:R.name,reference:R.reference,dependencies:new Set,peerNames:Ae===1?new Set:C.packagePeers,dependencyKind:Ae},E.set(le,ce)}let Be;if(de?Be=2:U.linkType==="SOFT"?Be=1:Be=0,ce.hoistPriority=Math.max(ce.hoistPriority||0,Be),ae&&!de){let Ae=gA({name:L.identName,reference:L.reference}),ne=a.get(Ae)||new Set;a.set(Ae,ne),ne.add(ce.name)}let Ee=new Map(C.packageDependencies);if(e.project){let Ae=e.project.workspacesByCwd.get(ue.toPortablePath(C.packageLocation.slice(0,-1)));if(Ae){let ne=new Set([...Array.from(Ae.manifest.peerDependencies.values(),Z=>G.stringifyIdent(Z)),...Array.from(Ae.manifest.peerDependenciesMeta.keys())]);for(let Z of ne)Ee.has(Z)||(Ee.set(Z,z.get(Z)||null),ce.peerNames.add(Z))}}let g=gA({name:R.name.replace(Oh,""),reference:R.reference}),me=n.get(g);if(me)for(let Ae of me)Ee.set(`${Ae.name}${Oh}`,Ae.reference);(C!==U||C.linkType!=="SOFT"||!de&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(te)))&&L.dependencies.add(ce);let we=R!==A&&C.linkType==="SOFT"&&!R.name.endsWith(Oh)&&!de;if(!Ce&&!we){let Ae=new Map;for(let[ne,Z]of Ee)if(Z!==null){let xe=t.getLocator(ne,Z),Ne=t.getLocator(ne.replace(Oh,""),Z),ht=t.getPackageInformation(Ne);if(ht===null)throw new Error("Assertion failed: Expected the package to have been registered");let H=Lq(ht,xe,t,p);if(e.validateExternalSoftLinks&&e.project&&H){ht.packageDependencies.size>0&&(o=!0);for(let[Ye,be]of ht.packageDependencies)if(be!==null){let et=G.parseLocator(Array.isArray(be)?`${be[0]}@${be[1]}`:`${Ye}@${be}`);if(gA(et)!==gA(xe)){let Ue=Ee.get(Ye);if(Ue){let S=G.parseLocator(Array.isArray(Ue)?`${Ue[0]}@${Ue[1]}`:`${Ye}@${Ue}`);wIe(S,et)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(xe.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${R.name}@${R.reference}`))} dependency ${G.prettyLocator(e.project.configuration,et)} conflicts with parent dependency ${G.prettyLocator(e.project.configuration,S)}`})}else{let S=Ae.get(Ye);if(S){let w=S.target,b=G.parseLocator(Array.isArray(w)?`${w[0]}@${w[1]}`:`${Ye}@${w}`);wIe(b,et)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(xe.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${R.name}@${R.reference}`))} dependency ${G.prettyLocator(e.project.configuration,et)} conflicts with dependency ${G.prettyLocator(e.project.configuration,b)} from sibling portal ${G.prettyIdent(e.project.configuration,G.parseIdent(S.portal.name))}`})}else Ae.set(Ye,{target:et.reference,portal:xe})}}}}let rt=e.hoistingLimitsByCwd?.get(te),Te=H?te:V.relative(p,ue.toPortablePath(ht.packageLocation))||It.dot,Fe=e.hoistingLimitsByCwd?.get(Te);v(ne,ht,xe,ce,C,Ee,Te,rt==="dependencies"||Fe==="dependencies"||Fe==="workspaces")}}};return v(A.name,u,A,h,u,u.packageDependencies,It.dot,!1),{packageTree:h,hoistingLimits:a,errors:r,preserveSymlinksRequired:o}};function IIe(t,e,r){let o=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return ue.toPortablePath(o||t.packageLocation)}function vIt(t,e,r){let o=e.getLocator(t.name.replace(Oh,""),t.reference),a=e.getPackageInformation(o);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:"SOFT",target:ue.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:IIe(a,t,e)}}var DIt=(t,e,r)=>{let o=new Map,a=(E,I,v)=>{let{linkType:x,target:C}=vIt(E,t,r);return{locator:gA(E),nodePath:I,target:C,linkType:x,aliases:v}},n=E=>{let[I,v]=E.split("/");return v?{scope:I,name:v}:{scope:null,name:I}},u=new Set,A=(E,I,v)=>{if(u.has(E))return;u.add(E);let x=Array.from(E.references).sort().join("#");for(let C of E.dependencies){let R=Array.from(C.references).sort().join("#");if(C.identName===E.identName.replace(Oh,"")&&R===x)continue;let L=Array.from(C.references).sort(),U={name:C.identName,reference:L[0]},{name:z,scope:te}=n(C.name),ae=te?[te,z]:[z],le=V.join(I,CIe),ce=V.join(le,...ae),Ce=`${v}/${U.name}`,de=a(U,v,L.slice(1)),Be=!1;if(de.linkType==="SOFT"&&r.project){let Ee=r.project.workspacesByCwd.get(de.target.slice(0,-1));Be=!!(Ee&&!Ee.manifest.name)}if(!C.name.endsWith(Oh)&&!Be){let Ee=o.get(ce);if(Ee){if(Ee.dirList)throw new Error(`Assertion failed: ${ce} cannot merge dir node with leaf node`);{let we=G.parseLocator(Ee.locator),Ae=G.parseLocator(de.locator);if(Ee.linkType!==de.linkType)throw new Error(`Assertion failed: ${ce} cannot merge nodes with different link types ${Ee.nodePath}/${G.stringifyLocator(we)} and ${v}/${G.stringifyLocator(Ae)}`);if(we.identHash!==Ae.identHash)throw new Error(`Assertion failed: ${ce} cannot merge nodes with different idents ${Ee.nodePath}/${G.stringifyLocator(we)} and ${v}/s${G.stringifyLocator(Ae)}`);de.aliases=[...de.aliases,...Ee.aliases,G.parseLocator(Ee.locator).reference]}}o.set(ce,de);let g=ce.split("/"),me=g.indexOf(CIe);for(let we=g.length-1;me>=0&&we>me;we--){let Ae=ue.toPortablePath(g.slice(0,we).join(V.sep)),ne=g[we],Z=o.get(Ae);if(!Z)o.set(Ae,{dirList:new Set([ne])});else if(Z.dirList){if(Z.dirList.has(ne))break;Z.dirList.add(ne)}}}A(C,de.linkType==="SOFT"?de.target:ce,Ce)}},p=a({name:e.name,reference:Array.from(e.references)[0]},"",[]),h=p.target;return o.set(h,p),A(e,h,""),o};Ge();Ge();Pt();Pt();nA();Nl();var rj={};Vt(rj,{PnpInstaller:()=>sd,PnpLinker:()=>Hh,UnplugCommand:()=>cC,default:()=>t1t,getPnpPath:()=>qh,jsInstallUtils:()=>mA,pnpUtils:()=>jB,quotePathIfNeeded:()=>o1e});Pt();var s1e=ve("url");Ge();Ge();Pt();Pt();var BIe={DEFAULT:{collapsed:!1,next:{"*":"DEFAULT"}},TOP_LEVEL:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA","*":"DEFAULT"}},FALLBACK_EXCLUSION_LIST:{collapsed:!1,next:{"*":"FALLBACK_EXCLUSION_ENTRIES"}},FALLBACK_EXCLUSION_ENTRIES:{collapsed:!0,next:{"*":"FALLBACK_EXCLUSION_DATA"}},FALLBACK_EXCLUSION_DATA:{collapsed:!0,next:{"*":"DEFAULT"}},PACKAGE_REGISTRY_DATA:{collapsed:!1,next:{"*":"PACKAGE_REGISTRY_ENTRIES"}},PACKAGE_REGISTRY_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_STORE_DATA"}},PACKAGE_STORE_DATA:{collapsed:!1,next:{"*":"PACKAGE_STORE_ENTRIES"}},PACKAGE_STORE_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_INFORMATION_DATA"}},PACKAGE_INFORMATION_DATA:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES","*":"DEFAULT"}},PACKAGE_DEPENDENCIES:{collapsed:!1,next:{"*":"PACKAGE_DEPENDENCY"}},PACKAGE_DEPENDENCY:{collapsed:!0,next:{"*":"DEFAULT"}}};function PIt(t,e,r){let o="";o+="[";for(let a=0,n=t.length;a"u"||(A!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=lQ(p,h,e,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function xIt(t,e,r){let o=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{ +`;let u=0;for(let A=0,p=o.length;A"u"||(u!==0&&(n+=",",n+=` +`),n+=a,n+=JSON.stringify(h),n+=": ",n+=lQ(h,E,e,a).replace(/^ +/g,""),u+=1)}return u!==0&&(n+=` +`),n+=r,n+="}",n}function lQ(t,e,r,o){let{next:a}=BIe[r],n=a[t]||a["*"];return vIe(e,n,o)}function vIe(t,e,r){let{collapsed:o}=BIe[e];return Array.isArray(t)?o?PIt(t,e,r):bIt(t,e,r):typeof t=="object"&&t!==null?o?SIt(t,e,r):xIt(t,e,r):JSON.stringify(t)}function DIe(t){return vIe(t,"TOP_LEVEL","")}function RB(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function kIt(t){let e=new Map,r=RB(t.fallbackExclusionList||[],[({name:o,reference:a})=>o,({name:o,reference:a})=>a]);for(let{name:o,reference:a}of r){let n=e.get(o);typeof n>"u"&&e.set(o,n=new Set),n.add(a)}return Array.from(e).map(([o,a])=>[o,Array.from(a)])}function QIt(t){return RB(t.fallbackPool||[],([e])=>e)}function FIt(t){let e=[];for(let[r,o]of RB(t.packageRegistry,([a])=>a===null?"0":`1${a}`)){let a=[];e.push([r,a]);for(let[n,{packageLocation:u,packageDependencies:A,packagePeers:p,linkType:h,discardFromLookup:E}]of RB(o,([I])=>I===null?"0":`1${I}`)){let I=[];r!==null&&n!==null&&!A.has(r)&&I.push([r,n]);for(let[C,R]of RB(A.entries(),([L])=>L))I.push([C,R]);let v=p&&p.size>0?Array.from(p):void 0,x=E||void 0;a.push([n,{packageLocation:u,packageDependencies:I,packagePeers:v,linkType:h,discardFromLookup:x}])}}return e}function TB(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:kIt(t),fallbackPool:QIt(t),packageRegistryData:FIt(t)}}var SIe=Ze(bIe());function xIe(t,e){return[t?`${t} +`:"",`/* eslint-disable */ +`,`// @ts-nocheck +`,`"use strict"; +`,` +`,e,` +`,(0,SIe.default)()].join("")}function RIt(t){return JSON.stringify(t,null,2)}function TIt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ +`)}'`}function NIt(t){return[`const RAW_RUNTIME_STATE = +`,`${TIt(DIe(t))}; + +`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); +`,`} +`].join("")}function LIt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,` const fs = require('fs'); +`,` const path = require('path'); +`,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(dr.pnpData)}); +`,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname}); +`,`} +`].join("")}function kIe(t){let e=TB(t),r=NIt(e);return xIe(t.shebang,r)}function QIe(t){let e=TB(t),r=LIt(),o=xIe(t.shebang,r);return{dataFile:RIt(e),loaderFile:o}}Pt();function Uq(t,{basePath:e}){let r=ue.toPortablePath(e),o=V.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,u=new Map(t.packageRegistryData.map(([I,v])=>[I,new Map(v.map(([x,C])=>{if(I===null!=(x===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let R=C.discardFromLookup??!1,L={name:I,reference:x},U=n.get(C.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&R,R||(U.locator=L)):n.set(C.packageLocation,{locator:L,discardFromLookup:R});let z=null;return[x,{packageDependencies:new Map(C.packageDependencies),packagePeers:new Set(C.packagePeers),linkType:C.linkType,discardFromLookup:R,get packageLocation(){return z||(z=V.join(o,C.packageLocation))}}]}))])),A=new Map(t.fallbackExclusionList.map(([I,v])=>[I,new Set(v)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,E=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:A,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:u}}Pt();Pt();var tp=ve("module"),id=ve("url"),zq=ve("util");var Oo=ve("url");var NIe=Ze(ve("assert"));var _q=Array.isArray,NB=JSON.stringify,LB=Object.getOwnPropertyNames,nd=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Hq=(t,e)=>RegExp.prototype.exec.call(t,e),qq=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),Uh=(t,...e)=>String.prototype.endsWith.apply(t,e),jq=(t,...e)=>String.prototype.includes.apply(t,e),Gq=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),MB=(t,...e)=>String.prototype.indexOf.apply(t,e),FIe=(t,...e)=>String.prototype.replace.apply(t,e),_h=(t,...e)=>String.prototype.slice.apply(t,e),dA=(t,...e)=>String.prototype.startsWith.apply(t,e),RIe=Map,TIe=JSON.parse;function OB(t,e,r){return class extends r{constructor(...o){super(e(...o)),this.code=t,this.name=`${r.name} [${t}]`}}}var LIe=OB("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),Yq=OB("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),MIe=OB("ERR_INVALID_PACKAGE_TARGET",(t,e,r,o=!1,a=void 0)=>{let n=typeof r=="string"&&!o&&r.length&&!dA(r,"./");return e==="."?((0,NIe.default)(o===!1),`Invalid "exports" main target ${NB(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${o?"imports":"exports"}" target ${NB(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),UB=OB("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),OIe=OB("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var uQ=ve("url");function UIe(t,e){let r=Object.create(null);for(let o=0;oe):t+e}_B(r,t,o,u,a)}Hq(HIe,_h(t,2))!==null&&_B(r,t,o,u,a);let p=new URL(t,o),h=p.pathname,E=new URL(".",o).pathname;if(dA(h,E)||_B(r,t,o,u,a),e==="")return p;if(Hq(HIe,e)!==null){let I=n?FIe(r,"*",()=>e):r+e;UIt(I,o,u,a)}return n?new URL(qq(qIe,p.href,()=>e)):new URL(e,p)}function HIt(t){let e=+t;return`${e}`!==t?!1:e>=0&&e<4294967295}function lC(t,e,r,o,a,n,u,A){if(typeof e=="string")return _It(e,r,o,t,a,n,u,A);if(_q(e)){if(e.length===0)return null;let p;for(let h=0;hn?-1:n>a||r===-1?1:o===-1||t.length>e.length?-1:e.length>t.length?1:0}function qIt(t,e,r){if(typeof t=="string"||_q(t))return!0;if(typeof t!="object"||t===null)return!1;let o=LB(t),a=!1,n=0;for(let u=0;u=h.length&&Uh(e,I)&&GIe(n,h)===1&&Gq(h,"*")===E&&(n=h,u=_h(e,E,e.length-I.length))}}if(n){let p=r[n],h=lC(t,p,u,n,o,!0,!1,a);return h==null&&Wq(e,t,o),h}Wq(e,t,o)}function WIe({name:t,base:e,conditions:r,readFileSyncFn:o}){if(t==="#"||dA(t,"#/")||Uh(t,"/")){let u="is not a valid internal imports specifier name";throw new Yq(t,u,(0,Oo.fileURLToPath)(e))}let a,n=_Ie(e,o);if(n.exists){a=(0,Oo.pathToFileURL)(n.pjsonPath);let u=n.imports;if(u)if(nd(u,t)&&!jq(t,"*")){let A=lC(a,u[t],"",t,e,!1,!0,r);if(A!=null)return A}else{let A="",p,h=LB(u);for(let E=0;E=I.length&&Uh(t,x)&&GIe(A,I)===1&&Gq(I,"*")===v&&(A=I,p=_h(t,v,t.length-x.length))}}if(A){let E=u[A],I=lC(a,E,p,A,e,!0,!0,r);if(I!=null)return I}}}OIt(t,a,e)}Pt();var GIt=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ts(t,e,r={},o){o??=GIt.has(t)?"MODULE_NOT_FOUND":t;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...a,value:o},pnpCode:{...a,value:t},data:{...a,value:r}})}function cu(t){return ue.normalize(ue.fromPortablePath(t))}var JIe=Ze(VIe());function XIe(t){return YIt(),Vq[t]}var Vq;function YIt(){Vq||(Vq={"--conditions":[],...zIe(WIt()),...zIe(process.execArgv)})}function zIe(t){return(0,JIe.default)({"--conditions":[String],"-C":"--conditions"},{argv:t,permissive:!0})}function WIt(){let t=[],e=KIt(process.env.NODE_OPTIONS||"",t);return t.length,e}function KIt(t,e){let r=[],o=!1,a=!0;for(let n=0;nparseInt(t,10)),ZIe=Ua>19||Ua===19&&ep>=2||Ua===18&&ep>=13,kJt=Ua===20&&ep<6||Ua===19&&ep>=3,QJt=Ua>19||Ua===19&&ep>=6,FJt=Ua>=21||Ua===20&&ep>=10||Ua===18&&ep>=19,RJt=Ua>=21||Ua===20&&ep>=10||Ua===18&&ep>=20,TJt=Ua>=22;function $Ie(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>ue.fromPortablePath(zs.resolveVirtual(ue.toPortablePath(e)))),ZIe)process.send({"watch:require":t});else for(let e of t)process.send({"watch:require":e})}function Jq(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,o=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,u=/\/$/,A=/^\.{0,2}\//,p={name:null,reference:null},h=[],E=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Te of["react-scripts","gatsby"]){let Fe=t.packageRegistry.get(Te);if(Fe)for(let ke of Fe.keys()){if(ke===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Te,reference:ke})}}let{ignorePattern:I,packageRegistry:v,packageLocatorsByLocations:x}=t;function C(Te,Fe){return{fn:Te,args:Fe,error:null,result:null}}function R(Te){let Fe=process.stderr?.hasColors?.()??process.stdout.isTTY,ke=(et,Ue)=>`\x1B[${et}m${Ue}\x1B[0m`,Ye=Te.error;console.error(Ye?ke("31;1",`\u2716 ${Te.error?.message.replace(/\n.*/s,"")}`):ke("33;1","\u203C Resolution")),Te.args.length>0&&console.error();for(let et of Te.args)console.error(` ${ke("37;1","In \u2190")} ${(0,zq.inspect)(et,{colors:Fe,compact:!0})}`);Te.result&&(console.error(),console.error(` ${ke("37;1","Out \u2192")} ${(0,zq.inspect)(Te.result,{colors:Fe,compact:!0})}`));let be=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(be.length>0){console.error();for(let et of be)console.error(` ${ke("38;5;244",et)}`)}console.error()}function L(Te,Fe){if(e.allowDebug===!1)return Fe;if(Number.isFinite(o)){if(o>=2)return(...ke)=>{let Ye=C(Te,ke);try{return Ye.result=Fe(...ke)}catch(be){throw Ye.error=be}finally{R(Ye)}};if(o>=1)return(...ke)=>{try{return Fe(...ke)}catch(Ye){let be=C(Te,ke);throw be.error=Ye,R(be),Ye}}}return Fe}function U(Te){let Fe=g(Te);if(!Fe)throw ts("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Fe}function z(Te){if(Te.name===null)return!0;for(let Fe of t.dependencyTreeRoots)if(Fe.name===Te.name&&Fe.reference===Te.reference)return!0;return!1}let te=new Set(["node","require",...XIe("--conditions")]);function ae(Te,Fe=te,ke){let Ye=Ae(V.join(Te,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(Ye===null)throw ts("INTERNAL",`The locator that owns the "${Te}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:be}=U(Ye),et=V.join(be,dr.manifest);if(!e.fakeFs.existsSync(et))return null;let Ue=JSON.parse(e.fakeFs.readFileSync(et,"utf8"));if(Ue.exports==null)return null;let S=V.contains(be,Te);if(S===null)throw ts("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");S!=="."&&!A.test(S)&&(S=`./${S}`);try{let w=YIe({packageJSONUrl:(0,id.pathToFileURL)(ue.fromPortablePath(et)),packageSubpath:S,exports:Ue.exports,base:ke?(0,id.pathToFileURL)(ue.fromPortablePath(ke)):null,conditions:Fe});return ue.toPortablePath((0,id.fileURLToPath)(w))}catch(w){throw ts("EXPORTS_RESOLUTION_FAILED",w.message,{unqualifiedPath:cu(Te),locator:Ye,pkgJson:Ue,subpath:cu(S),conditions:Fe},w.code)}}function le(Te,Fe,{extensions:ke}){let Ye;try{Fe.push(Te),Ye=e.fakeFs.statSync(Te)}catch{}if(Ye&&!Ye.isDirectory())return e.fakeFs.realpathSync(Te);if(Ye&&Ye.isDirectory()){let be;try{be=JSON.parse(e.fakeFs.readFileSync(V.join(Te,dr.manifest),"utf8"))}catch{}let et;if(be&&be.main&&(et=V.resolve(Te,be.main)),et&&et!==Te){let Ue=le(et,Fe,{extensions:ke});if(Ue!==null)return Ue}}for(let be=0,et=ke.length;be{let S=JSON.stringify(Ue.name);if(Ye.has(S))return;Ye.add(S);let w=me(Ue);for(let b of w)if(U(b).packagePeers.has(Te))be(b);else{let F=ke.get(b.name);typeof F>"u"&&ke.set(b.name,F=new Set),F.add(b.reference)}};be(Fe);let et=[];for(let Ue of[...ke.keys()].sort())for(let S of[...ke.get(Ue)].sort())et.push({name:Ue,reference:S});return et}function Ae(Te,{resolveIgnored:Fe=!1,includeDiscardFromLookup:ke=!1}={}){if(de(Te)&&!Fe)return null;let Ye=V.relative(t.basePath,Te);Ye.match(n)||(Ye=`./${Ye}`),Ye.endsWith("/")||(Ye=`${Ye}/`);do{let be=x.get(Ye);if(typeof be>"u"||be.discardFromLookup&&!ke){Ye=Ye.substring(0,Ye.lastIndexOf("/",Ye.length-2)+1);continue}return be.locator}while(Ye!=="");return null}function ne(Te){try{return e.fakeFs.readFileSync(ue.toPortablePath(Te),"utf8")}catch(Fe){if(Fe.code==="ENOENT")return;throw Fe}}function Z(Te,Fe,{considerBuiltins:ke=!0}={}){if(Te.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(Te==="pnpapi")return ue.toPortablePath(e.pnpapiResolution);if(ke&&(0,tp.isBuiltin)(Te))return null;let Ye=cu(Te),be=Fe&&cu(Fe);if(Fe&&de(Fe)&&(!V.isAbsolute(Te)||Ae(Te)===null)){let S=Ce(Te,Fe);if(S===!1)throw ts("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) + +Require request: "${Ye}" +Required by: ${be} +`,{request:Ye,issuer:be});return ue.toPortablePath(S)}let et,Ue=Te.match(a);if(Ue){if(!Fe)throw ts("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ye,issuer:be});let[,S,w]=Ue,b=Ae(Fe);if(!b){let Re=Ce(Te,Fe);if(Re===!1)throw ts("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). + +Require path: "${Ye}" +Required by: ${be} +`,{request:Ye,issuer:be});return ue.toPortablePath(Re)}let F=U(b).packageDependencies.get(S),J=null;if(F==null&&b.name!==null){let Re=t.fallbackExclusionList.get(b.name);if(!Re||!Re.has(b.reference)){for(let dt=0,jt=h.length;dtz(at))?X=ts("MISSING_PEER_DEPENDENCY",`${b.name} tried to access ${S} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. + +Required package: ${S}${S!==Ye?` (via "${Ye}")`:""} +Required by: ${b.name}@${b.reference} (via ${be}) +${Re.map(at=>`Ancestor breaking the chain: ${at.name}@${at.reference} +`).join("")} +`,{request:Ye,issuer:be,issuerLocator:Object.assign({},b),dependencyName:S,brokenAncestors:Re}):X=ts("MISSING_PEER_DEPENDENCY",`${b.name} tried to access ${S} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. + +Required package: ${S}${S!==Ye?` (via "${Ye}")`:""} +Required by: ${b.name}@${b.reference} (via ${be}) + +${Re.map(at=>`Ancestor breaking the chain: ${at.name}@${at.reference} +`).join("")} +`,{request:Ye,issuer:be,issuerLocator:Object.assign({},b),dependencyName:S,brokenAncestors:Re})}else F===void 0&&(!ke&&(0,tp.isBuiltin)(Te)?z(b)?X=ts("UNDECLARED_DEPENDENCY",`Your application tried to access ${S}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${S} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. + +Required package: ${S}${S!==Ye?` (via "${Ye}")`:""} +Required by: ${be} +`,{request:Ye,issuer:be,dependencyName:S}):X=ts("UNDECLARED_DEPENDENCY",`${b.name} tried to access ${S}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${S} isn't otherwise declared in ${b.name}'s dependencies, this makes the require call ambiguous and unsound. + +Required package: ${S}${S!==Ye?` (via "${Ye}")`:""} +Required by: ${be} +`,{request:Ye,issuer:be,issuerLocator:Object.assign({},b),dependencyName:S}):z(b)?X=ts("UNDECLARED_DEPENDENCY",`Your application tried to access ${S}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. + +Required package: ${S}${S!==Ye?` (via "${Ye}")`:""} +Required by: ${be} +`,{request:Ye,issuer:be,dependencyName:S}):X=ts("UNDECLARED_DEPENDENCY",`${b.name} tried to access ${S}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. + +Required package: ${S}${S!==Ye?` (via "${Ye}")`:""} +Required by: ${b.name}@${b.reference} (via ${be}) +`,{request:Ye,issuer:be,issuerLocator:Object.assign({},b),dependencyName:S}));if(F==null){if(J===null||X===null)throw X||new Error("Assertion failed: Expected an error to have been set");F=J;let Re=X.message.replace(/\n.*/g,"");X.message=Re,!E.has(Re)&&o!==0&&(E.add(Re),process.emitWarning(X))}let $=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:S,reference:F},ie=U($);if(!ie.packageLocation)throw ts("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. + +Required package: ${$.name}@${$.reference}${$.name!==Ye?` (via "${Ye}")`:""} +Required by: ${b.name}@${b.reference} (via ${be}) +`,{request:Ye,issuer:be,dependencyLocator:Object.assign({},$)});let Se=ie.packageLocation;w?et=V.join(Se,w):et=Se}else if(V.isAbsolute(Te))et=V.normalize(Te);else{if(!Fe)throw ts("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ye,issuer:be});let S=V.resolve(Fe);Fe.match(u)?et=V.normalize(V.join(S,Te)):et=V.normalize(V.join(V.dirname(S),Te))}return V.normalize(et)}function xe(Te,Fe,ke=te,Ye){if(n.test(Te))return Fe;let be=ae(Fe,ke,Ye);return be?V.normalize(be):Fe}function Ne(Te,{extensions:Fe=Object.keys(tp.Module._extensions)}={}){let ke=[],Ye=le(Te,ke,{extensions:Fe});if(Ye)return V.normalize(Ye);{$Ie(ke.map(Ue=>ue.fromPortablePath(Ue)));let be=cu(Te),et=Ae(Te);if(et){let{packageLocation:Ue}=U(et),S=!0;try{e.fakeFs.accessSync(Ue)}catch(w){if(w?.code==="ENOENT")S=!1;else{let b=(w?.message??w??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${b}). + +Missing package: ${et.name}@${et.reference} +Expected package location: ${cu(Ue)} +`,{unqualifiedPath:be,extensions:Fe})}}if(!S){let w=Ue.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`${w} + +Missing package: ${et.name}@${et.reference} +Expected package location: ${cu(Ue)} +`,{unqualifiedPath:be,extensions:Fe})}}throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. + +Source path: ${be} +${ke.map(Ue=>`Not found: ${cu(Ue)} +`).join("")}`,{unqualifiedPath:be,extensions:Fe})}}function ht(Te,Fe,ke){if(!Fe)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let Ye=WIe({name:Te,base:(0,id.pathToFileURL)(ue.fromPortablePath(Fe)),conditions:ke.conditions??te,readFileSyncFn:ne});if(Ye instanceof URL)return Ne(ue.toPortablePath((0,id.fileURLToPath)(Ye)),{extensions:ke.extensions});if(Ye.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return H(Ye,Fe,ke)}function H(Te,Fe,ke={}){try{if(Te.startsWith("#"))return ht(Te,Fe,ke);let{considerBuiltins:Ye,extensions:be,conditions:et}=ke,Ue=Z(Te,Fe,{considerBuiltins:Ye});if(Te==="pnpapi")return Ue;if(Ue===null)return null;let S=()=>Fe!==null?de(Fe):!1,w=(!Ye||!(0,tp.isBuiltin)(Te))&&!S()?xe(Te,Ue,et,Fe):Ue;return Ne(w,{extensions:be})}catch(Ye){throw Object.hasOwn(Ye,"pnpCode")&&Object.assign(Ye.data,{request:cu(Te),issuer:Fe&&cu(Fe)}),Ye}}function rt(Te){let Fe=V.normalize(Te),ke=zs.resolveVirtual(Fe);return ke!==Fe?ke:null}return{VERSIONS:Be,topLevel:Ee,getLocator:(Te,Fe)=>Array.isArray(Fe)?{name:Fe[0],reference:Fe[1]}:{name:Te,reference:Fe},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Te=[];for(let[Fe,ke]of v)for(let Ye of ke.keys())Fe!==null&&Ye!==null&&Te.push({name:Fe,reference:Ye});return Te},getPackageInformation:Te=>{let Fe=g(Te);if(Fe===null)return null;let ke=ue.fromPortablePath(Fe.packageLocation);return{...Fe,packageLocation:ke}},findPackageLocator:Te=>Ae(ue.toPortablePath(Te)),resolveToUnqualified:L("resolveToUnqualified",(Te,Fe,ke)=>{let Ye=Fe!==null?ue.toPortablePath(Fe):null,be=Z(ue.toPortablePath(Te),Ye,ke);return be===null?null:ue.fromPortablePath(be)}),resolveUnqualified:L("resolveUnqualified",(Te,Fe)=>ue.fromPortablePath(Ne(ue.toPortablePath(Te),Fe))),resolveRequest:L("resolveRequest",(Te,Fe,ke)=>{let Ye=Fe!==null?ue.toPortablePath(Fe):null,be=H(ue.toPortablePath(Te),Ye,ke);return be===null?null:ue.fromPortablePath(be)}),resolveVirtual:L("resolveVirtual",Te=>{let Fe=rt(ue.toPortablePath(Te));return Fe!==null?ue.fromPortablePath(Fe):null})}}Pt();var e1e=(t,e,r)=>{let o=TB(t),a=Uq(o,{basePath:e}),n=ue.join(e,dr.pnpCjs);return Jq(a,{fakeFs:r,pnpapiResolution:n})};var Zq=Ze(r1e());qt();var mA={};Vt(mA,{checkManifestCompatibility:()=>n1e,extractBuildRequest:()=>AQ,getExtractHint:()=>$q,hasBindingGyp:()=>ej});Ge();Pt();function n1e(t){return G.isPackageCompatible(t,Xi.getArchitectureSet())}function AQ(t,e,r,{configuration:o}){let a=[];for(let n of["preinstall","install","postinstall"])e.manifest.scripts.has(n)&&a.push({type:0,script:n});return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&a.push({type:1,script:"node-gyp rebuild"}),a.length===0?null:t.linkType!=="HARD"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${G.prettyLocator(o,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:n=>n.reportInfoOnce(5,`${G.prettyLocator(o,t)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!o.get("enableScripts")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${G.prettyLocator(o,t)} lists build scripts, but all build scripts have been disabled.`)}:n1e(t)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${G.prettyLocator(o,t)} The ${Xi.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var zIt=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function $q(t){return t.packageFs.getExtractHint({relevantExtensions:zIt})}function ej(t){let e=V.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var jB={};Vt(jB,{getUnpluggedPath:()=>qB});Ge();Pt();function qB(t,{configuration:e}){return V.resolve(e.get("pnpUnpluggedFolder"),G.slugifyLocator(t))}var JIt=new Set([G.makeIdent(null,"open").identHash,G.makeIdent(null,"opn").identHash]),Hh=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let o=qh(r.project).cjs;if(!oe.existsSync(o))throw new st(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=He.getFactoryWithDefault(this.pnpCache,o,()=>He.dynamicRequire(o,{cachingStrategy:He.CachingStrategy.FsTime})),n={name:G.stringifyIdent(e),reference:e.reference},u=a.getPackageInformation(n);if(!u)throw new st(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return ue.toPortablePath(u.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=qh(r.project).cjs;if(!oe.existsSync(o))return null;let n=He.getFactoryWithDefault(this.pnpCache,o,()=>He.dynamicRequire(o,{cachingStrategy:He.CachingStrategy.FsTime})).findPackageLocator(ue.fromPortablePath(e));return n?G.makeLocator(G.parseIdent(n.name),n.reference):null}makeInstaller(e){return new sd(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},sd=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new He.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}attachCustomData(e){this.customData=e}async installPackage(e,r,o){let a=G.stringifyIdent(e),n=e.reference,u=!!this.opts.project.tryWorkspaceByLocator(e),A=G.isVirtualLocator(e),p=e.peerDependencies.size>0&&!A,h=!p&&!u,E=!p&&e.linkType!=="SOFT",I,v;if(h||E){let te=A?G.devirtualizeLocator(e):e;I=this.customData.store.get(te.locatorHash),typeof I>"u"&&(I=await XIt(r),e.linkType==="HARD"&&this.customData.store.set(te.locatorHash,I)),I.manifest.type==="module"&&(this.isESMLoaderRequired=!0),v=this.opts.project.getDependencyMeta(te,e.version)}let x=h?AQ(e,I,v,{configuration:this.opts.project.configuration}):null,C=E?await this.unplugPackageIfNeeded(e,I,r,v,o):r.packageFs;if(V.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let R=V.resolve(C.getRealPath(),r.prefixPath),L=tj(this.opts.project.cwd,R),U=new Map,z=new Set;if(A){for(let te of e.peerDependencies.values())U.set(G.stringifyIdent(te),null),z.add(G.stringifyIdent(te));if(!u){let te=G.devirtualizeLocator(e);this.virtualTemplates.set(te.locatorHash,{location:tj(this.opts.project.cwd,zs.resolveVirtual(R)),locator:te})}}return He.getMapWithDefault(this.packageRegistry,a).set(n,{packageLocation:L,packageDependencies:U,packagePeers:z,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:R,buildRequest:x}}async attachInternalDependencies(e,r){let o=this.getPackageInformation(e);for(let[a,n]of r){let u=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];o.packageDependencies.set(G.stringifyIdent(a),u)}}async attachExternalDependents(e,r){for(let o of r)this.getDiskInformation(o).packageDependencies.set(G.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=qh(this.opts.project);if(this.isEsmEnabled()||await oe.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await oe.removePromise(e.cjs),await oe.removePromise(e.data),await oe.removePromise(e.esmLoader),await oe.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:E,location:I}of this.virtualTemplates.values())He.getMapWithDefault(this.packageRegistry,G.stringifyIdent(E)).set(E.reference,{packageLocation:I,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),o=this.opts.project.workspaces.map(({anchoredLocator:E})=>({name:G.stringifyIdent(E),reference:E.reference})),a=r!=="none",n=[],u=new Map,A=He.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),p=this.packageRegistry,h=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let E of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(E)&&n.push({name:G.stringifyIdent(E),reference:E.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:o,enableTopLevelFallback:a,fallbackExclusionList:n,fallbackPool:u,ignorePattern:A,packageRegistry:p,shebang:h}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=qh(this.opts.project),o=await this.locateNodeModules(e.ignorePattern);if(o.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let n of o)await oe.removePromise(n)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let n=kIe(e);await oe.changeFilePromise(r.cjs,n,{automaticNewlines:!0,mode:493}),await oe.removePromise(r.data)}else{let{dataFile:n,loaderFile:u}=QIe(e);await oe.changeFilePromise(r.cjs,u,{automaticNewlines:!0,mode:493}),await oe.changeFilePromise(r.data,n,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await oe.changeFilePromise(r.esmLoader,(0,Zq.default)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await oe.removePromise(a);else for(let n of await oe.readdirPromise(a)){let u=V.resolve(a,n);this.unpluggedPaths.has(u)||await oe.removePromise(u)}}async locateNodeModules(e){let r=[],o=e?new RegExp(e):null;for(let a of this.opts.project.workspaces){let n=V.join(a.cwd,"node_modules");if(o&&o.test(V.relative(this.opts.project.cwd,a.cwd))||!oe.existsSync(n))continue;let u=await oe.readdirPromise(n,{withFileTypes:!0}),A=u.filter(p=>!p.isDirectory()||p.name===".bin"||!p.name.startsWith("."));if(A.length===u.length)r.push(n);else for(let p of A)r.push(V.join(n,p.name))}return r}async unplugPackageIfNeeded(e,r,o,a,n){return this.shouldBeUnplugged(e,r,a)?this.unplugPackage(e,o,n):o.packageFs}shouldBeUnplugged(e,r,o){return typeof o.unplugged<"u"?o.unplugged:JIt.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(AQ(e,r,o,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(e,r,o){let a=qB(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Hu(a,{baseFs:r.packageFs,pathUtils:V}):(this.unpluggedPaths.add(a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let n=V.join(a,r.prefixPath,".ready");await oe.existsPromise(n)||(this.opts.project.storedBuildState.delete(e.locatorHash),await oe.mkdirPromise(a,{recursive:!0}),await oe.copyPromise(a,It.dot,{baseFs:r.packageFs,overwrite:!1}),await oe.writeFilePromise(n,""))})),new gn(a))}getPackageInformation(e){let r=G.stringifyIdent(e),o=e.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${G.prettyIdent(this.opts.project.configuration,e)})`);let n=a.get(o);if(!n)throw new Error(`Assertion failed: The package information should have been available (for ${G.prettyLocator(this.opts.project.configuration,e)})`);return n}getDiskInformation(e){let r=He.getMapWithDefault(this.packageRegistry,"@@disk"),o=tj(this.opts.project.cwd,e);return He.getFactoryWithDefault(r,o,()=>({packageLocation:o,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function tj(t,e){let r=V.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function XIt(t){let e=await Ut.tryFind(t.prefixPath,{baseFs:t.packageFs})??new Ut,r=new Set(["preinstall","install","postinstall"]);for(let o of e.scripts.keys())r.has(o)||e.scripts.delete(o);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:$q(t),hasBindingGyp:ej(t)}}}Ge();Ge();qt();var i1e=Ze($o());var cC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}static{this.paths=[["unplug"]]}static{this.usage=it.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);if(r.get("nodeLinker")!=="pnp")throw new st("This command can only be used if the `nodeLinker` option is set to `pnp`");await o.restoreInstallState();let u=new Set(this.patterns),A=this.patterns.map(x=>{let C=G.parseDescriptor(x),R=C.range!=="unknown"?C:G.makeDescriptor(C,"*");if(!Lr.validRange(R.range))throw new st(`The range of the descriptor patterns must be a valid semver range (${G.prettyDescriptor(r,R)})`);return L=>{let U=G.stringifyIdent(L);return!i1e.default.isMatch(U,G.stringifyIdent(R))||L.version&&!Lr.satisfiesWithPrereleases(L.version,R.range)?!1:(u.delete(x),!0)}}),p=()=>{let x=[];for(let C of o.storedPackages.values())!o.tryWorkspaceByLocator(C)&&!G.isVirtualLocator(C)&&A.some(R=>R(C))&&x.push(C);return x},h=x=>{let C=new Set,R=[],L=(U,z)=>{if(C.has(U.locatorHash))return;let te=!!o.tryWorkspaceByLocator(U);if(!(z>0&&!this.recursive&&te)&&(C.add(U.locatorHash),!o.tryWorkspaceByLocator(U)&&A.some(ae=>ae(U))&&R.push(U),!(z>0&&!this.recursive)))for(let ae of U.dependencies.values()){let le=o.storedResolutions.get(ae.descriptorHash);if(!le)throw new Error("Assertion failed: The resolution should have been registered");let ce=o.storedPackages.get(le);if(!ce)throw new Error("Assertion failed: The package should have been registered");L(ce,z+1)}};for(let U of x)L(U.anchoredPackage,0);return R},E,I;if(this.all&&this.recursive?(E=p(),I="the project"):this.all?(E=h(o.workspaces),I="any workspace"):(E=h([a]),I="this workspace"),u.size>1)throw new st(`Patterns ${pe.prettyList(r,u,pe.Type.CODE)} don't match any packages referenced by ${I}`);if(u.size>0)throw new st(`Pattern ${pe.prettyList(r,u,pe.Type.CODE)} doesn't match any packages referenced by ${I}`);E=He.sortMap(E,x=>G.stringifyLocator(x));let v=await Rt.start({configuration:r,stdout:this.context.stdout,json:this.json},async x=>{for(let C of E){let R=C.version??"unknown",L=o.topLevelWorkspace.manifest.ensureDependencyMeta(G.makeDescriptor(C,R));L.unplugged=!0,x.reportInfo(0,`Will unpack ${G.prettyLocator(r,C)} to ${pe.pretty(r,qB(C,{configuration:r}),pe.Type.PATH)}`),x.reportJson({locator:G.stringifyLocator(C),version:R})}await o.topLevelWorkspace.persistManifest(),this.json||x.reportSeparator()});return v.hasErrors()?v.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};var qh=t=>({cjs:V.join(t.cwd,dr.pnpCjs),data:V.join(t.cwd,dr.pnpData),esmLoader:V.join(t.cwd,dr.pnpEsmLoader)}),o1e=t=>/\s/.test(t)?JSON.stringify(t):t;async function ZIt(t,e,r){let o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,n=(e.NODE_OPTIONS??"").replace(o," ").replace(a," ").trim();if(t.configuration.get("nodeLinker")!=="pnp"){e.NODE_OPTIONS=n||void 0;return}let u=qh(t),A=`--require ${o1e(ue.fromPortablePath(u.cjs))}`;oe.existsSync(u.esmLoader)&&(A=`${A} --experimental-loader ${(0,s1e.pathToFileURL)(ue.fromPortablePath(u.esmLoader)).href}`),oe.existsSync(u.cjs)&&(e.NODE_OPTIONS=n?`${A} ${n}`:A)}async function $It(t,e){let r=qh(t);e(r.cjs),e(r.data),e(r.esmLoader),e(t.configuration.get("pnpUnpluggedFolder"))}var e1t={hooks:{populateYarnPaths:$It,setupScriptEnvironment:ZIt},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:"STRING",default:"pnp"},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:"STRING",values:["junctions","symlinks"],default:"junctions"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"}},linkers:[Hh],commands:[cC]},t1t=e1t;var h1e=Ze(A1e());qt();var cj=Ze(ve("crypto")),g1e=Ze(ve("fs")),d1e=1,Di="node_modules",fQ=".bin",m1e=".yarn-state.yml",y1t=1e3,uj=(o=>(o.CLASSIC="classic",o.HARDLINKS_LOCAL="hardlinks-local",o.HARDLINKS_GLOBAL="hardlinks-global",o))(uj||{}),GB=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let o=r.project.tryWorkspaceByLocator(e);if(o)return o.cwd;let a=await He.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await lj(r.project,{unrollAliases:!0}));if(a===null)throw new st("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let n=a.locatorMap.get(G.stringifyLocator(e));if(!n){let p=new st(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw p.code="LOCATOR_NOT_INSTALLED",p}let u=n.locations.sort((p,h)=>p.split(V.sep).length-h.split(V.sep).length),A=V.join(r.project.configuration.startingCwd,Di);return u.find(p=>V.contains(A,p))||n.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=await He.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await lj(r.project,{unrollAliases:!0}));if(o===null)return null;let{locationRoot:a,segments:n}=pQ(V.resolve(e),{skipPrefix:r.project.cwd}),u=o.locationTree.get(a);if(!u)return null;let A=u.locator;for(let p of n){if(u=u.children.get(p),!u)break;A=u.locator||A}return G.parseLocator(A)}makeInstaller(e){return new aj(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},aj=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}attachCustomData(e){this.customData=e}async installPackage(e,r){let o=V.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(e.locatorHash);if(typeof a>"u"&&(a=await E1t(e,r),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,a)),!G.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let n=new Map,u=new Set;n.has(G.stringifyIdent(e))||n.set(G.stringifyIdent(e),e.reference);let A=e;if(G.isVirtualLocator(e)){A=G.devirtualizeLocator(e);for(let E of e.peerDependencies.values())n.set(G.stringifyIdent(E),null),u.add(G.stringifyIdent(E))}let p={packageLocation:`${ue.fromPortablePath(o)}/`,packageDependencies:n,packagePeers:u,linkType:e.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:p});let h=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,h),{packageLocation:o,buildRequest:null}}async attachInternalDependencies(e,r){let o=this.localStore.get(e.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,n]of r){let u=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];o.pnpNode.packageDependencies.set(G.stringifyIdent(a),u)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new zs({baseFs:new rA({maxOpenFiles:80,readOnlyArchives:!0})}),r=await lj(this.opts.project),o=this.opts.project.configuration.get("nmMode");(r===null||o!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:o,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(v=>{let x=this.opts.project.configuration.get("nmHoistingLimits");try{x=He.validateEnum(QB,v.manifest.installConfig?.hoistingLimits??x)}catch{let R=G.prettyWorkspace(this.opts.project.configuration,v);this.opts.report.reportWarning(57,`${R}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(QB).join(", ")}, using default: "${x}"`)}return[v.relativeCwd,x]})),n=new Map(this.opts.project.workspaces.map(v=>{let x=this.opts.project.configuration.get("nmSelfReferences");return x=v.manifest.installConfig?.selfReferences??x,[v.relativeCwd,x]})),u={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(v,x)=>Array.isArray(x)?{name:x[0],reference:x[1]}:{name:v,reference:x},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(v=>{let x=v.anchoredLocator;return{name:G.stringifyIdent(x),reference:x.reference}}),getPackageInformation:v=>{let x=v.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:G.makeLocator(G.parseIdent(v.name),v.reference),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return C.pnpNode},findPackageLocator:v=>{let x=this.opts.project.tryWorkspaceByCwd(ue.toPortablePath(v));if(x!==null){let C=x.anchoredLocator;return{name:G.stringifyIdent(C),reference:C.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:v=>ue.fromPortablePath(zs.resolveVirtual(ue.toPortablePath(v)))},{tree:A,errors:p,preserveSymlinksRequired:h}=FB(u,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:n});if(!A){for(let{messageName:v,text:x}of p)this.opts.report.reportError(v,x);return}let E=Mq(A);await D1t(r,E,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async v=>{let x=G.parseLocator(v),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the slot to exist");return C.customPackageData.manifest}});let I=[];for(let[v,x]of E.entries()){if(C1e(v))continue;let C=G.parseLocator(v),R=this.localStore.get(C.locatorHash);if(typeof R>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(R.pkg))continue;let L=mA.extractBuildRequest(R.pkg,R.customPackageData,R.dependencyMeta,{configuration:this.opts.project.configuration});L&&I.push({buildLocations:x.locations,locator:C,buildRequest:L})}return h&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${pe.pretty(this.opts.project.configuration,"--preserve-symlinks",pe.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:I}}};async function E1t(t,e){let r=await Ut.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Ut,o=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())o.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:mA.hasBindingGyp(e)}}}async function C1t(t,e,r,o,{installChangedByUser:a}){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will +`,n+=`# cause your node_modules installation to become invalidated. +`,n+=` +`,n+=`__metadata: +`,n+=` version: ${d1e} +`,n+=` nmMode: ${o.value} +`;let u=Array.from(e.keys()).sort(),A=G.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let E of u){let I=e.get(E);n+=` +`,n+=`${JSON.stringify(E)}: +`,n+=` locations: +`;for(let v of I.locations){let x=V.contains(t.cwd,v);if(x===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` - ${JSON.stringify(x)} +`}if(I.aliases.length>0){n+=` aliases: +`;for(let v of I.aliases)n+=` - ${JSON.stringify(v)} +`}if(E===A&&r.size>0){n+=` bin: +`;for(let[v,x]of r){let C=V.contains(t.cwd,v);if(C===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` ${JSON.stringify(C)}: +`;for(let[R,L]of x){let U=V.relative(V.join(v,Di),L);n+=` ${JSON.stringify(R)}: ${JSON.stringify(U)} +`}}}}let p=t.cwd,h=V.join(p,Di,m1e);a&&await oe.removePromise(h),await oe.changeFilePromise(h,n,{automaticNewlines:!0})}async function lj(t,{unrollAliases:e=!1}={}){let r=t.cwd,o=V.join(r,Di,m1e),a;try{a=await oe.statPromise(o)}catch{}if(!a)return null;let n=Ki(await oe.readFilePromise(o,"utf8"));if(n.__metadata.version>d1e)return null;let u=n.__metadata.nmMode||"classic",A=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let I=E.locations.map(x=>V.join(r,x)),v=E.bin;if(v)for(let[x,C]of Object.entries(v)){let R=V.join(r,ue.toPortablePath(x)),L=He.getMapWithDefault(p,R);for(let[U,z]of Object.entries(C))L.set(U,ue.toPortablePath([R,Di,z].join(V.sep)))}if(A.set(h,{target:It.dot,linkType:"HARD",locations:I,aliases:E.aliases||[]}),e&&E.aliases)for(let x of E.aliases){let{scope:C,name:R}=G.parseLocator(h),L=G.makeLocator(G.makeIdent(C,R),x),U=G.stringifyLocator(L);A.set(U,{target:It.dot,linkType:"HARD",locations:I,aliases:[]})}}return{locatorMap:A,binSymlinks:p,locationTree:y1e(A,{skipPrefix:t.cwd}),nmMode:u,mtimeMs:a.mtimeMs}}var AC=async(t,e)=>{if(t.split(V.sep).indexOf(Di)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{let r;if(!e.innerLoop&&(r=await oe.lstatPromise(t),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!e.isWorkspaceDir)){await oe.unlinkPromise(t);return}let o=await oe.readdirPromise(t,{withFileTypes:!0});for(let n of o){let u=V.join(t,n.name);n.isDirectory()?(n.name!==Di||e&&e.innerLoop)&&await AC(u,{innerLoop:!0,contentsOnly:!1}):await oe.unlinkPromise(u)}let a=!e.innerLoop&&e.isWorkspaceDir&&r?.isSymbolicLink();!e.contentsOnly&&!a&&await oe.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},f1e=4,pQ=(t,{skipPrefix:e})=>{let r=V.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let o=r.split(V.sep).filter(p=>p!==""),a=o.indexOf(Di),n=o.slice(0,a).join(V.sep),u=V.join(e,n),A=o.slice(a);return{locationRoot:u,segments:A}},y1e=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let o=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&V.contains(e,n.target)!==null){let A=He.getFactoryWithDefault(r,n.target,o);A.locator=a,A.linkType=n.linkType}for(let u of n.locations){let{locationRoot:A,segments:p}=pQ(u,{skipPrefix:e}),h=He.getFactoryWithDefault(r,A,o);for(let E=0;E{if(process.platform==="win32"&&r==="junctions"){let o;try{o=await oe.lstatPromise(t)}catch{}if(!o||o.isDirectory()){await oe.symlinkPromise(t,e,"junction");return}}await oe.symlinkPromise(V.relative(V.dirname(e),t),e)};async function E1e(t,e,r){let o=V.join(t,`${cj.default.randomBytes(16).toString("hex")}.tmp`);try{await oe.writeFilePromise(o,r);try{await oe.linkPromise(o,e)}catch{}}finally{await oe.unlinkPromise(o)}}async function w1t({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:o,baseFs:a,nmMode:n}){if(r.kind==="file"){if(n.value==="hardlinks-global"&&o&&r.digest){let A=V.join(o,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await oe.statPromise(A);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs{await oe.mkdirPromise(t,{recursive:!0});let A=async(E=It.dot)=>{let I=V.join(e,E),v=await r.readdirPromise(I,{withFileTypes:!0}),x=new Map;for(let C of v){let R=V.join(E,C.name),L,U=V.join(I,C.name);if(C.isFile()){if(L={kind:"file",mode:(await r.lstatPromise(U)).mode},a.value==="hardlinks-global"){let z=await wn.checksumFile(U,{baseFs:r,algorithm:"sha1"});L.digest=z}}else if(C.isDirectory())L={kind:"directory"};else if(C.isSymbolicLink())L={kind:"symlink",symlinkTo:await r.readlinkPromise(U)};else throw new Error(`Unsupported file type (file: ${U}, mode: 0o${await r.statSync(U).mode.toString(8).padStart(6,"0")})`);if(x.set(R,L),C.isDirectory()&&R!==Di){let z=await A(R);for(let[te,ae]of z)x.set(te,ae)}}return x},p;if(a.value==="hardlinks-global"&&o&&u){let E=V.join(o,u.substring(0,2),`${u.substring(2)}.json`);try{p=new Map(Object.entries(JSON.parse(await oe.readFilePromise(E,"utf8"))))}catch{p=await A()}}else p=await A();let h=!1;for(let[E,I]of p){let v=V.join(e,E),x=V.join(t,E);if(I.kind==="directory")await oe.mkdirPromise(x,{recursive:!0});else if(I.kind==="file"){let C=I.mtimeMs;await w1t({srcPath:v,dstPath:x,entry:I,nmMode:a,baseFs:r,globalHardlinksStore:o}),I.mtimeMs!==C&&(h=!0)}else I.kind==="symlink"&&await Aj(V.resolve(V.dirname(x),I.symlinkTo),x,n)}if(a.value==="hardlinks-global"&&o&&h&&u){let E=V.join(o,u.substring(0,2),`${u.substring(2)}.json`);await oe.removePromise(E),await E1e(o,E,Buffer.from(JSON.stringify(Object.fromEntries(p))))}};function B1t(t,e,r,o){let a=new Map,n=new Map,u=new Map,A=!1,p=(h,E,I,v,x)=>{let C=!0,R=V.join(h,E),L=new Set;if(E===Di||E.startsWith("@")){let z;try{z=oe.statSync(R)}catch{}C=!!z,z?z.mtimeMs>r?(A=!0,L=new Set(oe.readdirSync(R))):L=new Set(I.children.get(E).children.keys()):A=!0;let te=e.get(h);if(te){let ae=V.join(h,Di,fQ),le;try{le=oe.statSync(ae)}catch{}if(!le)A=!0;else if(le.mtimeMs>r){A=!0;let ce=new Set(oe.readdirSync(ae)),Ce=new Map;n.set(h,Ce);for(let[de,Be]of te)ce.has(de)&&Ce.set(de,Be)}else n.set(h,te)}}else C=x.has(E);let U=I.children.get(E);if(C){let{linkType:z,locator:te}=U,ae={children:new Map,linkType:z,locator:te};if(v.children.set(E,ae),te){let le=He.getSetWithDefault(u,te);le.add(R),u.set(te,le)}for(let le of U.children.keys())p(R,le,U,ae,L)}else U.locator&&o.storedBuildState.delete(G.parseLocator(U.locator).locatorHash)};for(let[h,E]of t){let{linkType:I,locator:v}=E,x={children:new Map,linkType:I,locator:v};if(a.set(h,x),v){let C=He.getSetWithDefault(u,E.locator);C.add(h),u.set(E.locator,C)}E.children.has(Di)&&p(h,Di,E,x,new Set)}return{locationTree:a,binSymlinks:n,locatorLocations:u,installChangedByUser:A}}function C1e(t){let e=G.parseDescriptor(t);return G.isVirtualDescriptor(e)&&(e=G.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function v1t(t,e,r,{loadManifest:o}){let a=new Map;for(let[A,{locations:p}]of t){let h=C1e(A)?null:await o(A,p[0]),E=new Map;if(h)for(let[I,v]of h.bin){let x=V.join(p[0],v);v!==""&&oe.existsSync(x)&&E.set(I,v)}a.set(A,E)}let n=new Map,u=(A,p,h)=>{let E=new Map,I=V.contains(r,A);if(h.locator&&I!==null){let v=a.get(h.locator);for(let[x,C]of v){let R=V.join(A,ue.toPortablePath(C));E.set(x,R)}for(let[x,C]of h.children){let R=V.join(A,x),L=u(R,R,C);L.size>0&&n.set(A,new Map([...n.get(A)||new Map,...L]))}}else for(let[v,x]of h.children){let C=u(V.join(A,v),p,x);for(let[R,L]of C)E.set(R,L)}return E};for(let[A,p]of e){let h=u(A,A,p);h.size>0&&n.set(A,new Map([...n.get(A)||new Map,...h]))}return n}var p1e=(t,e)=>{if(!t||!e)return t===e;let r=G.parseLocator(t);G.isVirtualLocator(r)&&(r=G.devirtualizeLocator(r));let o=G.parseLocator(e);return G.isVirtualLocator(o)&&(o=G.devirtualizeLocator(o)),G.areLocatorsEqual(r,o)};function fj(t){return V.join(t.get("globalFolder"),"store")}async function D1t(t,e,{baseFs:r,project:o,report:a,loadManifest:n,realLocatorChecksums:u}){let A=V.join(o.cwd,Di),{locationTree:p,binSymlinks:h,locatorLocations:E,installChangedByUser:I}=B1t(t.locationTree,t.binSymlinks,t.mtimeMs,o),v=y1e(e,{skipPrefix:o.cwd}),x=[],C=async({srcDir:Be,dstDir:Ee,linkType:g,globalHardlinksStore:me,nmMode:we,windowsLinkType:Ae,packageChecksum:ne})=>{let Z=(async()=>{try{g==="SOFT"?(await oe.mkdirPromise(V.dirname(Ee),{recursive:!0}),await Aj(V.resolve(Be),Ee,Ae)):await I1t(Ee,Be,{baseFs:r,globalHardlinksStore:me,nmMode:we,windowsLinkType:Ae,packageChecksum:ne})}catch(xe){throw xe.message=`While persisting ${Be} -> ${Ee} ${xe.message}`,xe}finally{ae.tick()}})().then(()=>x.splice(x.indexOf(Z),1));x.push(Z),x.length>f1e&&await Promise.race(x)},R=async(Be,Ee,g)=>{let me=(async()=>{let we=async(Ae,ne,Z)=>{try{Z.innerLoop||await oe.mkdirPromise(ne,{recursive:!0});let xe=await oe.readdirPromise(Ae,{withFileTypes:!0});for(let Ne of xe){if(!Z.innerLoop&&Ne.name===fQ)continue;let ht=V.join(Ae,Ne.name),H=V.join(ne,Ne.name);Ne.isDirectory()?(Ne.name!==Di||Z&&Z.innerLoop)&&(await oe.mkdirPromise(H,{recursive:!0}),await we(ht,H,{...Z,innerLoop:!0})):Ce.value==="hardlinks-local"||Ce.value==="hardlinks-global"?await oe.linkPromise(ht,H):await oe.copyFilePromise(ht,H,g1e.default.constants.COPYFILE_FICLONE)}}catch(xe){throw Z.innerLoop||(xe.message=`While cloning ${Ae} -> ${ne} ${xe.message}`),xe}finally{Z.innerLoop||ae.tick()}};await we(Be,Ee,g)})().then(()=>x.splice(x.indexOf(me),1));x.push(me),x.length>f1e&&await Promise.race(x)},L=async(Be,Ee,g)=>{if(g)for(let[me,we]of Ee.children){let Ae=g.children.get(me);await L(V.join(Be,me),we,Ae)}else{Ee.children.has(Di)&&await AC(V.join(Be,Di),{contentsOnly:!1});let me=V.basename(Be)===Di&&p.has(V.join(V.dirname(Be)));await AC(Be,{contentsOnly:Be===A,isWorkspaceDir:me})}};for(let[Be,Ee]of p){let g=v.get(Be);for(let[me,we]of Ee.children){if(me===".")continue;let Ae=g&&g.children.get(me),ne=V.join(Be,me);await L(ne,we,Ae)}}let U=async(Be,Ee,g)=>{if(g){p1e(Ee.locator,g.locator)||await AC(Be,{contentsOnly:Ee.linkType==="HARD"});for(let[me,we]of Ee.children){let Ae=g.children.get(me);await U(V.join(Be,me),we,Ae)}}else{Ee.children.has(Di)&&await AC(V.join(Be,Di),{contentsOnly:!0});let me=V.basename(Be)===Di&&v.has(V.join(V.dirname(Be)));await AC(Be,{contentsOnly:Ee.linkType==="HARD",isWorkspaceDir:me})}};for(let[Be,Ee]of v){let g=p.get(Be);for(let[me,we]of Ee.children){if(me===".")continue;let Ae=g&&g.children.get(me);await U(V.join(Be,me),we,Ae)}}let z=new Map,te=[];for(let[Be,Ee]of E)for(let g of Ee){let{locationRoot:me,segments:we}=pQ(g,{skipPrefix:o.cwd}),Ae=v.get(me),ne=me;if(Ae){for(let Z of we)if(ne=V.join(ne,Z),Ae=Ae.children.get(Z),!Ae)break;if(Ae){let Z=p1e(Ae.locator,Be),xe=e.get(Ae.locator),Ne=xe.target,ht=ne,H=xe.linkType;if(Z)z.has(Ne)||z.set(Ne,ht);else if(Ne!==ht){let rt=G.parseLocator(Ae.locator);G.isVirtualLocator(rt)&&(rt=G.devirtualizeLocator(rt)),te.push({srcDir:Ne,dstDir:ht,linkType:H,realLocatorHash:rt.locatorHash})}}}}for(let[Be,{locations:Ee}]of e.entries())for(let g of Ee){let{locationRoot:me,segments:we}=pQ(g,{skipPrefix:o.cwd}),Ae=p.get(me),ne=v.get(me),Z=me,xe=e.get(Be),Ne=G.parseLocator(Be);G.isVirtualLocator(Ne)&&(Ne=G.devirtualizeLocator(Ne));let ht=Ne.locatorHash,H=xe.target,rt=g;if(H===rt)continue;let Te=xe.linkType;for(let Fe of we)ne=ne.children.get(Fe);if(!Ae)te.push({srcDir:H,dstDir:rt,linkType:Te,realLocatorHash:ht});else for(let Fe of we)if(Z=V.join(Z,Fe),Ae=Ae.children.get(Fe),!Ae){te.push({srcDir:H,dstDir:rt,linkType:Te,realLocatorHash:ht});break}}let ae=Zs.progressViaCounter(te.length),le=a.reportProgress(ae),ce=o.configuration.get("nmMode"),Ce={value:ce},de=o.configuration.get("winLinkType");try{let Be=Ce.value==="hardlinks-global"?`${fj(o.configuration)}/v1`:null;if(Be&&!await oe.existsPromise(Be)){await oe.mkdirpPromise(Be);for(let g=0;g<256;g++)await oe.mkdirPromise(V.join(Be,g.toString(16).padStart(2,"0")))}for(let g of te)(g.linkType==="SOFT"||!z.has(g.srcDir))&&(z.set(g.srcDir,g.dstDir),await C({...g,globalHardlinksStore:Be,nmMode:Ce,windowsLinkType:de,packageChecksum:u.get(g.realLocatorHash)||null}));await Promise.all(x),x.length=0;for(let g of te){let me=z.get(g.srcDir);g.linkType!=="SOFT"&&g.dstDir!==me&&await R(me,g.dstDir,{nmMode:Ce})}await Promise.all(x),await oe.mkdirPromise(A,{recursive:!0});let Ee=await v1t(e,v,o.cwd,{loadManifest:n});await P1t(h,Ee,o.cwd,de),await C1t(o,e,Ee,Ce,{installChangedByUser:I}),ce=="hardlinks-global"&&Ce.value=="hardlinks-local"&&a.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{le.stop()}}async function P1t(t,e,r,o){for(let a of t.keys()){if(V.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!e.has(a)){let n=V.join(a,Di,fQ);await oe.removePromise(n)}}for(let[a,n]of e){if(V.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let u=V.join(a,Di,fQ),A=t.get(a)||new Map;await oe.mkdirPromise(u,{recursive:!0});for(let p of A.keys())n.has(p)||(await oe.removePromise(V.join(u,p)),process.platform==="win32"&&await oe.removePromise(V.join(u,`${p}.cmd`)));for(let[p,h]of n){let E=A.get(p),I=V.join(u,p);E!==h&&(process.platform==="win32"?await(0,h1e.default)(ue.fromPortablePath(h),ue.fromPortablePath(I),{createPwshFile:!1}):(await oe.removePromise(I),await Aj(h,I,o),V.contains(r,await oe.realpathPromise(h))!==null&&await oe.chmodPromise(h,493)))}}}Ge();Pt();nA();var YB=class extends Hh{constructor(){super(...arguments);this.mode="loose"}makeInstaller(r){return new pj(r)}},pj=class extends sd{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(r){let o=new zs({baseFs:new rA({maxOpenFiles:80,readOnlyArchives:!0})}),a=e1e(r,this.opts.project.cwd,o),{tree:n,errors:u}=FB(a,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:I,text:v}of u)this.opts.report.reportError(I,v);return}let A=new Map;r.fallbackPool=A;let p=(I,v)=>{let x=G.parseLocator(v.locator),C=G.stringifyIdent(x);C===I?A.set(I,x.reference):A.set(I,[C,x.reference])},h=V.join(this.opts.project.cwd,dr.nodeModules),E=n.get(h);if(!(typeof E>"u")){if("target"in E)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let I of E.dirList){let v=V.join(h,I),x=n.get(v);if(typeof x>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in x)p(I,x);else for(let C of x.dirList){let R=V.join(v,C),L=n.get(R);if(typeof L>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in L)p(`${I}/${C}`,L);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var b1t={hooks:{cleanGlobalArtifacts:async t=>{let e=fj(t);await oe.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:"BOOLEAN",default:!0}},linkers:[GB,YB]},S1t=b1t;var f5={};Vt(f5,{NpmHttpFetcher:()=>VB,NpmRemapResolver:()=>zB,NpmSemverFetcher:()=>rp,NpmSemverResolver:()=>JB,NpmTagResolver:()=>XB,default:()=>jvt,npmConfigUtils:()=>Zn,npmHttpUtils:()=>Zr,npmPublishUtils:()=>PC});Ge();var S1e=Ze(Jn());var Wn="npm:";var Zr={};Vt(Zr,{AuthType:()=>D1e,customPackageError:()=>od,del:()=>_1t,get:()=>ad,getIdentUrl:()=>hQ,getPackageMetadata:()=>hC,handleInvalidAuthenticationError:()=>jh,post:()=>O1t,put:()=>U1t});Ge();Ge();Pt();var mj=Ze(J1()),B1e=Ze(y_()),v1e=Ze(Jn());var Zn={};Vt(Zn,{RegistryType:()=>w1e,getAuditRegistry:()=>x1t,getAuthConfiguration:()=>dj,getDefaultRegistry:()=>WB,getPublishRegistry:()=>k1t,getRegistryConfiguration:()=>I1e,getScopeConfiguration:()=>gj,getScopeRegistry:()=>fC,normalizeRegistry:()=>ac});var w1e=(o=>(o.AUDIT_REGISTRY="npmAuditRegistry",o.FETCH_REGISTRY="npmRegistryServer",o.PUBLISH_REGISTRY="npmPublishRegistry",o))(w1e||{});function ac(t){return t.replace(/\/$/,"")}function x1t({configuration:t}){return WB({configuration:t,type:"npmAuditRegistry"})}function k1t(t,{configuration:e}){return t.publishConfig?.registry?ac(t.publishConfig.registry):t.name?fC(t.name.scope,{configuration:e,type:"npmPublishRegistry"}):WB({configuration:e,type:"npmPublishRegistry"})}function fC(t,{configuration:e,type:r="npmRegistryServer"}){let o=gj(t,{configuration:e});if(o===null)return WB({configuration:e,type:r});let a=o.get(r);return a===null?WB({configuration:e,type:r}):ac(a)}function WB({configuration:t,type:e="npmRegistryServer"}){let r=t.get(e);return ac(r!==null?r:t.get("npmRegistryServer"))}function I1e(t,{configuration:e}){let r=e.get("npmRegistries"),o=ac(t),a=r.get(o);if(typeof a<"u")return a;let n=r.get(o.replace(/^[a-z]+:/,""));return typeof n<"u"?n:null}function gj(t,{configuration:e}){if(t===null)return null;let o=e.get("npmScopes").get(t);return o||null}function dj(t,{configuration:e,ident:r}){let o=r&&gj(r.scope,{configuration:e});return o?.get("npmAuthIdent")||o?.get("npmAuthToken")?o:I1e(t,{configuration:e})||e}var D1e=(a=>(a[a.NO_AUTH=0]="NO_AUTH",a[a.BEST_EFFORT=1]="BEST_EFFORT",a[a.CONFIGURATION=2]="CONFIGURATION",a[a.ALWAYS_AUTH=3]="ALWAYS_AUTH",a))(D1e||{});async function jh(t,{attemptedAs:e,registry:r,headers:o,configuration:a}){if(dQ(t))throw new Jt(41,"Invalid OTP token");if(t.originalError?.name==="HTTPError"&&t.originalError?.response.statusCode===401)throw new Jt(41,`Invalid authentication (${typeof e!="string"?`as ${await q1t(r,o,{configuration:a})}`:`attempted as ${e}`})`)}function od(t,e){let r=t.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${pe.applyHyperlink(e,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function hQ(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}var P1e=new Map,Q1t=new Map;async function F1t(t){return await He.getFactoryWithDefault(P1e,t,async()=>{let e=null;try{e=await oe.readJsonPromise(t)}catch{}return e})}async function R1t(t,e,{configuration:r,cached:o,registry:a,headers:n,version:u,...A}){return await He.getFactoryWithDefault(Q1t,t,async()=>await ad(hQ(e),{...A,customErrorMessage:od,configuration:r,registry:a,ident:e,headers:{...n,"If-None-Match":o?.etag,"If-Modified-Since":o?.lastModified},wrapNetworkRequest:async p=>async()=>{let h=await p();if(h.statusCode===304){if(o===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...h,body:o.metadata}}let E=T1t(JSON.parse(h.body.toString())),I={metadata:E,etag:h.headers.etag,lastModified:h.headers["last-modified"]};return P1e.set(t,Promise.resolve(I)),Promise.resolve().then(async()=>{let v=`${t}-${process.pid}.tmp`;await oe.mkdirPromise(V.dirname(v),{recursive:!0}),await oe.writeJsonPromise(v,I,{compact:!0}),await oe.renamePromise(v,t)}).catch(()=>{}),{...h,body:E}}}))}async function hC(t,{cache:e,project:r,registry:o,headers:a,version:n,...u}){let{configuration:A}=r;o=KB(A,{ident:t,registry:o});let p=L1t(A,o),h=V.join(p,`${G.slugifyIdent(t)}.json`),E=null;if(!r.lockfileNeedsRefresh&&(E=await F1t(h),E)){if(typeof n<"u"&&typeof E.metadata.versions[n]<"u")return E.metadata;if(A.get("enableOfflineMode")){let I=structuredClone(E.metadata),v=new Set;if(e){for(let C of Object.keys(I.versions)){let R=G.makeLocator(t,`npm:${C}`),L=e.getLocatorMirrorPath(R);(!L||!oe.existsSync(L))&&(delete I.versions[C],v.add(C))}let x=I["dist-tags"].latest;if(v.has(x)){let C=Object.keys(E.metadata.versions).sort(v1e.default.compare),R=C.indexOf(x);for(;v.has(C[R])&&R>=0;)R-=1;R>=0?I["dist-tags"].latest=C[R]:delete I["dist-tags"].latest}}return I}}return await R1t(h,t,{...u,configuration:A,cached:E,registry:o,headers:a,version:n})}var b1e=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function T1t(t){return{"dist-tags":t["dist-tags"],versions:Object.fromEntries(Object.entries(t.versions).map(([e,r])=>[e,(0,B1e.default)(r,b1e)]))}}var N1t=wn.makeHash(...b1e).slice(0,6);function L1t(t,e){let r=M1t(t),o=new URL(e);return V.join(r,N1t,o.hostname)}function M1t(t){return V.join(t.get("globalFolder"),"metadata/npm")}async function ad(t,{configuration:e,headers:r,ident:o,authType:a,registry:n,...u}){n=KB(e,{ident:o,registry:n}),o&&o.scope&&typeof a>"u"&&(a=1);let A=await gQ(n,{authType:a,configuration:e,ident:o});A&&(r={...r,authorization:A});try{return await sn.get(t.charAt(0)==="/"?`${n}${t}`:t,{configuration:e,headers:r,...u})}catch(p){throw await jh(p,{registry:n,configuration:e,headers:r}),p}}async function O1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=KB(o,{ident:n,registry:A});let E=await gQ(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...pC(p)});try{return await sn.post(A+t,e,{configuration:o,headers:a,...h})}catch(I){if(!dQ(I)||p)throw await jh(I,{attemptedAs:r,registry:A,configuration:o,headers:a}),I;p=await yj(I,{configuration:o});let v={...a,...pC(p)};try{return await sn.post(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(x){throw await jh(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function U1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=KB(o,{ident:n,registry:A});let E=await gQ(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...pC(p)});try{return await sn.put(A+t,e,{configuration:o,headers:a,...h})}catch(I){if(!dQ(I))throw await jh(I,{attemptedAs:r,registry:A,configuration:o,headers:a}),I;p=await yj(I,{configuration:o});let v={...a,...pC(p)};try{return await sn.put(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(x){throw await jh(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function _1t(t,{attemptedAs:e,configuration:r,headers:o,ident:a,authType:n=3,registry:u,otp:A,...p}){u=KB(r,{ident:a,registry:u});let h=await gQ(u,{authType:n,configuration:r,ident:a});h&&(o={...o,authorization:h}),A&&(o={...o,...pC(A)});try{return await sn.del(u+t,{configuration:r,headers:o,...p})}catch(E){if(!dQ(E)||A)throw await jh(E,{attemptedAs:e,registry:u,configuration:r,headers:o}),E;A=await yj(E,{configuration:r});let I={...o,...pC(A)};try{return await sn.del(`${u}${t}`,{configuration:r,headers:I,...p})}catch(v){throw await jh(v,{attemptedAs:e,registry:u,configuration:r,headers:o}),v}}}function KB(t,{ident:e,registry:r}){if(typeof r>"u"&&e)return fC(e.scope,{configuration:t});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return ac(r)}async function gQ(t,{authType:e=2,configuration:r,ident:o}){let a=dj(t,{configuration:r,ident:o}),n=H1t(a,e);if(!n)return null;let u=await r.reduceHook(A=>A.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:o});if(u)return u;if(a.get("npmAuthToken"))return`Bearer ${a.get("npmAuthToken")}`;if(a.get("npmAuthIdent")){let A=a.get("npmAuthIdent");return A.includes(":")?`Basic ${Buffer.from(A).toString("base64")}`:`Basic ${A}`}if(n&&e!==1)throw new Jt(33,"No authentication configured for request");return null}function H1t(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function q1t(t,e,{configuration:r}){if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(await sn.get(new URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function yj(t,{configuration:e}){let r=t.originalError?.response.headers["npm-notice"];if(r&&(await Rt.start({configuration:e,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(0,r.replace(/(https?:\/\/\S+)/g,pe.pretty(e,"$1",pe.Type.URL))),!process.env.YARN_IS_TEST_ENV){let n=r.match(/open (https?:\/\/\S+)/i);if(n&&Xi.openUrl){let{openNow:u}=await(0,mj.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});u&&(await Xi.openUrl(n[1])||(a.reportSeparator(),a.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:o}=await(0,mj.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` +`),o}function dQ(t){if(t.originalError?.name!=="HTTPError")return!1;try{return(t.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function pC(t){return{"npm-otp":t}}var VB=class{supports(e,r){if(!e.reference.startsWith(Wn))return!1;let{selector:o,params:a}=G.parseRange(e.reference);return!(!S1e.default.valid(o)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let{params:o}=G.parseRange(e.reference);if(o===null||typeof o.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await ad(o.__archiveUrl,{customErrorMessage:od,configuration:r.project.configuration,ident:e});return await $i.convertToZip(a,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();var zB=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Wn)||!G.tryParseDescriptor(e.range.slice(Wn.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){let o=r.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Wn.length),!0));return r.resolver.getResolutionDependencies(o,r)}async getCandidates(e,r,o){let a=o.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Wn.length),!0));return await o.resolver.getCandidates(a,r,o)}async getSatisfying(e,r,o,a){let n=a.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Wn.length),!0));return a.resolver.getSatisfying(n,r,o,a)}resolve(e,r){throw new Error("Unreachable")}};Ge();Ge();var x1e=Ze(Jn());var rp=class t{supports(e,r){if(!e.reference.startsWith(Wn))return!1;let o=new URL(e.reference);return!(!x1e.default.valid(o.pathname)||o.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o;try{o=await ad(t.getLocatorUrl(e),{customErrorMessage:od,configuration:r.project.configuration,ident:e})}catch{o=await ad(t.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:od,configuration:r.project.configuration,ident:e})}return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:o}){let a=fC(e.scope,{configuration:o}),n=t.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=Lr.clean(e.reference.slice(Wn.length));if(r===null)throw new Jt(10,"The npm semver resolver got selected, but the version isn't semver");return`${hQ(e)}/-/${e.name}-${r}.tgz`}};Ge();Ge();Ge();var Ej=Ze(Jn());var mQ=G.makeIdent(null,"node-gyp"),j1t=/\b(node-gyp|prebuild-install)\b/,JB=class{supportsDescriptor(e,r){return e.range.startsWith(Wn)?!!Lr.validRange(e.range.slice(Wn.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(Wn))return!1;let{selector:o}=G.parseRange(e.reference);return!!Ej.default.valid(o)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=Lr.validRange(e.range.slice(Wn.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(Wn.length)}`);let n=await hC(e,{cache:o.fetchOptions?.cache,project:o.project,version:Ej.default.valid(a.raw)?a.raw:void 0}),u=He.mapAndFilter(Object.keys(n.versions),h=>{try{let E=new Lr.SemVer(h);if(a.test(E))return E}catch{}return He.mapAndFilter.skip}),A=u.filter(h=>!n.versions[h.raw].deprecated),p=A.length>0?A:u;return p.sort((h,E)=>-h.compare(E)),p.map(h=>{let E=G.makeLocator(e,`${Wn}${h.raw}`),I=n.versions[h.raw].dist.tarball;return rp.isConventionalTarballUrl(E,I,{configuration:o.project.configuration})?E:G.bindLocator(E,{__archiveUrl:I})})}async getSatisfying(e,r,o,a){let n=Lr.validRange(e.range.slice(Wn.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Wn.length)}`);return{locators:He.mapAndFilter(o,p=>{if(p.identHash!==e.identHash)return He.mapAndFilter.skip;let h=G.tryParseRange(p.reference,{requireProtocol:Wn});if(!h)return He.mapAndFilter.skip;let E=new Lr.SemVer(h.selector);return n.test(E)?{locator:p,version:E}:He.mapAndFilter.skip}).sort((p,h)=>-p.version.compare(h.version)).map(({locator:p})=>p),sorted:!0}}async resolve(e,r){let{selector:o}=G.parseRange(e.reference),a=Lr.clean(o);if(a===null)throw new Jt(10,"The npm semver resolver got selected, but the version isn't semver");let n=await hC(e,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(n,"versions"))throw new Jt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(n.versions,a))throw new Jt(16,`Registry failed to return reference "${a}"`);let u=new Ut;if(u.load(n.versions[a]),!u.dependencies.has(mQ.identHash)&&!u.peerDependencies.has(mQ.identHash)){for(let A of u.scripts.values())if(A.match(j1t)){u.dependencies.set(mQ.identHash,G.makeDescriptor(mQ,"latest"));break}}return{...e,version:a,languageName:"node",linkType:"HARD",conditions:u.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(u.dependencies),peerDependencies:u.peerDependencies,dependenciesMeta:u.dependenciesMeta,peerDependenciesMeta:u.peerDependenciesMeta,bin:u.bin}}};Ge();Ge();var k1e=Ze(Jn());var XB=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Wn)||!ly.test(e.range.slice(Wn.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(Wn.length),n=await hC(e,{cache:o.fetchOptions?.cache,project:o.project});if(!Object.hasOwn(n,"dist-tags"))throw new Jt(15,'Registry returned invalid data - missing "dist-tags" field');let u=n["dist-tags"];if(!Object.hasOwn(u,a))throw new Jt(16,`Registry failed to return tag "${a}"`);let A=u[a],p=G.makeLocator(e,`${Wn}${A}`),h=n.versions[A].dist.tarball;return rp.isConventionalTarballUrl(p,h,{configuration:o.project.configuration})?[p]:[G.bindLocator(p,{__archiveUrl:h})]}async getSatisfying(e,r,o,a){let n=[];for(let u of o){if(u.identHash!==e.identHash)continue;let A=G.tryParseRange(u.reference,{requireProtocol:Wn});if(!(!A||!k1e.default.valid(A.selector))){if(A.params?.__archiveUrl){let p=G.makeRange({protocol:Wn,selector:A.selector,source:null,params:null}),[h]=await a.resolver.getCandidates(G.makeDescriptor(e,p),r,a);if(u.reference!==h.reference)continue}n.push(u)}}return{locators:n,sorted:!1}}async resolve(e,r){throw new Error("Unreachable")}};var PC={};Vt(PC,{getGitHead:()=>Hvt,getPublishAccess:()=>EBe,getReadmeContent:()=>CBe,makePublishBody:()=>_vt});Ge();Ge();Pt();var a5={};Vt(a5,{PackCommand:()=>DC,default:()=>Ivt,packUtils:()=>CA});Ge();Ge();Ge();Pt();qt();var CA={};Vt(CA,{genPackList:()=>_Q,genPackStream:()=>o5,genPackageManifest:()=>aBe,hasPackScripts:()=>i5,prepareForPack:()=>s5});Ge();Pt();var n5=Ze($o()),sBe=Ze(tBe()),oBe=ve("zlib"),Avt=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],fvt=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function i5(t){return!!(An.hasWorkspaceScript(t,"prepack")||An.hasWorkspaceScript(t,"postpack"))}async function s5(t,{report:e},r){await An.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let o=V.join(t.cwd,Ut.fileName);await oe.existsPromise(o)&&await t.manifest.loadFile(o,{baseFs:oe}),await r()}finally{await An.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function o5(t,e){typeof e>"u"&&(e=await _Q(t));let r=new Set;for(let n of t.manifest.publishConfig?.executableFiles??new Set)r.add(V.normalize(n));for(let n of t.manifest.bin.values())r.add(V.normalize(n));let o=sBe.default.pack();process.nextTick(async()=>{for(let n of e){let u=V.normalize(n),A=V.resolve(t.cwd,u),p=V.join("package",u),h=await oe.lstatPromise(A),E={name:p,mtime:new Date(Bi.SAFE_TIME*1e3)},I=r.has(u)?493:420,v,x,C=new Promise((L,U)=>{v=L,x=U}),R=L=>{L?x(L):v()};if(h.isFile()){let L;u==="package.json"?L=Buffer.from(JSON.stringify(await aBe(t),null,2)):L=await oe.readFilePromise(A),o.entry({...E,mode:I,type:"file"},L,R)}else h.isSymbolicLink()?o.entry({...E,mode:I,type:"symlink",linkname:await oe.readlinkPromise(A)},R):R(new Error(`Unsupported file type ${h.mode} for ${ue.fromPortablePath(u)}`));await C}o.finalize()});let a=(0,oBe.createGzip)();return o.pipe(a),a}async function aBe(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function _Q(t){let e=t.project,r=e.configuration,o={accept:[],reject:[]};for(let I of fvt)o.reject.push(I);for(let I of Avt)o.accept.push(I);o.reject.push(r.get("rcFilename"));let a=I=>{if(I===null||!I.startsWith(`${t.cwd}/`))return;let v=V.relative(t.cwd,I),x=V.resolve(It.root,v);o.reject.push(x)};a(V.resolve(e.cwd,dr.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(I=>I.populateYarnPaths,e,I=>{a(I)});for(let I of e.workspaces){let v=V.relative(t.cwd,I.cwd);v!==""&&!v.match(/^(\.\.)?\//)&&o.reject.push(`/${v}`)}let n={accept:[],reject:[]},u=t.manifest.publishConfig?.main??t.manifest.main,A=t.manifest.publishConfig?.module??t.manifest.module,p=t.manifest.publishConfig?.browser??t.manifest.browser,h=t.manifest.publishConfig?.bin??t.manifest.bin;u!=null&&n.accept.push(V.resolve(It.root,u)),A!=null&&n.accept.push(V.resolve(It.root,A)),typeof p=="string"&&n.accept.push(V.resolve(It.root,p));for(let I of h.values())n.accept.push(V.resolve(It.root,I));if(p instanceof Map)for(let[I,v]of p.entries())n.accept.push(V.resolve(It.root,I)),typeof v=="string"&&n.accept.push(V.resolve(It.root,v));let E=t.manifest.files!==null;if(E){n.reject.push("/*");for(let I of t.manifest.files)lBe(n.accept,I,{cwd:It.root})}return await pvt(t.cwd,{hasExplicitFileList:E,globalList:o,ignoreList:n})}async function pvt(t,{hasExplicitFileList:e,globalList:r,ignoreList:o}){let a=[],n=new qu(t),u=[[It.root,[o]]];for(;u.length>0;){let[A,p]=u.pop(),h=await n.lstatPromise(A);if(!nBe(A,{globalList:r,ignoreLists:h.isDirectory()?null:p}))if(h.isDirectory()){let E=await n.readdirPromise(A),I=!1,v=!1;if(!e||A!==It.root)for(let R of E)I=I||R===".gitignore",v=v||R===".npmignore";let x=v?await rBe(n,A,".npmignore"):I?await rBe(n,A,".gitignore"):null,C=x!==null?[x].concat(p):p;nBe(A,{globalList:r,ignoreLists:p})&&(C=[...p,{accept:[],reject:["**/*"]}]);for(let R of E)u.push([V.resolve(A,R),C])}else(h.isFile()||h.isSymbolicLink())&&a.push(V.relative(It.root,A))}return a.sort()}async function rBe(t,e,r){let o={accept:[],reject:[]},a=await t.readFilePromise(V.join(e,r),"utf8");for(let n of a.split(/\n/g))lBe(o.reject,n,{cwd:e});return o}function hvt(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=V.resolve(e,t)),r&&(t=`!${t}`),t}function lBe(t,e,{cwd:r}){let o=e.trim();o===""||o[0]==="#"||t.push(hvt(o,{cwd:r}))}function nBe(t,{globalList:e,ignoreLists:r}){let o=UQ(t,e.accept);if(o!==0)return o===2;let a=UQ(t,e.reject);if(a!==0)return a===1;if(r!==null)for(let n of r){let u=UQ(t,n.accept);if(u!==0)return u===2;let A=UQ(t,n.reject);if(A!==0)return A===1}return!1}function UQ(t,e){let r=e,o=[];for(let a=0;a{await s5(a,{report:p},async()=>{p.reportJson({base:ue.fromPortablePath(a.cwd)});let h=await _Q(a);for(let E of h)p.reportInfo(null,ue.fromPortablePath(E)),p.reportJson({location:ue.fromPortablePath(E)});if(!this.dryRun){let E=await o5(a,h),I=oe.createWriteStream(u);E.pipe(I),await new Promise(v=>{I.on("finish",v)})}}),this.dryRun||(p.reportInfo(0,`Package archive generated in ${pe.pretty(r,u,pe.Type.PATH)}`),p.reportJson({output:ue.fromPortablePath(u)}))})).exitCode()}};function gvt(t,{workspace:e}){let r=t.replace("%s",dvt(e)).replace("%v",mvt(e));return ue.toPortablePath(r)}function dvt(t){return t.manifest.name!==null?G.slugifyIdent(t.manifest.name):"package"}function mvt(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var yvt=["dependencies","devDependencies","peerDependencies"],Evt="workspace:",Cvt=(t,e)=>{e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let o of yvt)for(let a of t.manifest.getForScope(o).values()){let n=r.tryWorkspaceByDescriptor(a),u=G.parseRange(a.range);if(u.protocol===Evt)if(n===null){if(r.tryWorkspaceByIdent(a)===null)throw new Jt(21,`${G.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;G.areDescriptorsEqual(a,n.anchoredDescriptor)||u.selector==="*"?A=n.manifest.version??"0.0.0":u.selector==="~"||u.selector==="^"?A=`${u.selector}${n.manifest.version??"0.0.0"}`:A=u.selector;let p=o==="dependencies"?G.makeDescriptor(a,"unknown"):null,h=p!==null&&t.manifest.ensureDependencyMeta(p).optional?"optionalDependencies":o;e[h][G.stringifyIdent(a)]=A}}},wvt={hooks:{beforeWorkspacePacking:Cvt},commands:[DC]},Ivt=wvt;var mBe=ve("crypto"),yBe=Ze(dBe());async function _vt(t,e,{access:r,tag:o,registry:a,gitHead:n}){let u=t.manifest.name,A=t.manifest.version,p=G.stringifyIdent(u),h=(0,mBe.createHash)("sha1").update(e).digest("hex"),E=yBe.default.fromData(e).toString(),I=r??EBe(t,u),v=await CBe(t),x=await CA.genPackageManifest(t),C=`${p}-${A}.tgz`,R=new URL(`${ac(a)}/${p}/-/${C}`);return{_id:p,_attachments:{[C]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:p,access:I,"dist-tags":{[o]:A},versions:{[A]:{...x,_id:`${p}@${A}`,name:p,version:A,gitHead:n,dist:{shasum:h,integrity:E,tarball:R.toString()}}},readme:v}}async function Hvt(t){try{let{stdout:e}=await Ur.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}function EBe(t,e){let r=t.project.configuration;return t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?t.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):e.scope?"restricted":"public"}async function CBe(t){let e=ue.toPortablePath(`${t.cwd}/README.md`),r=t.manifest.name,a=`# ${G.stringifyIdent(r)} +`;try{a=await oe.readFilePromise(e,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var A5={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},wBe={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},qvt={configuration:{...A5,...wBe,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...A5,...wBe}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:ac,valueDefinition:{description:"",type:"SHAPE",properties:{...A5}}}},fetchers:[VB,rp],resolvers:[zB,JB,XB]},jvt=qvt;var w5={};Vt(w5,{NpmAuditCommand:()=>SC,NpmInfoCommand:()=>xC,NpmLoginCommand:()=>kC,NpmLogoutCommand:()=>FC,NpmPublishCommand:()=>RC,NpmTagAddCommand:()=>NC,NpmTagListCommand:()=>TC,NpmTagRemoveCommand:()=>LC,NpmWhoamiCommand:()=>MC,default:()=>Jvt,npmAuditTypes:()=>dv,npmAuditUtils:()=>HQ});Ge();Ge();qt();var m5=Ze($o());el();var dv={};Vt(dv,{Environment:()=>hv,Severity:()=>gv});var hv=(o=>(o.All="all",o.Production="production",o.Development="development",o))(hv||{}),gv=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(gv||{});var HQ={};Vt(HQ,{allSeverities:()=>bC,getPackages:()=>d5,getReportTree:()=>h5,getSeverityInclusions:()=>p5,getTopLevelDependencies:()=>g5});Ge();var IBe=Ze(Jn());var bC=["info","low","moderate","high","critical"];function p5(t){if(typeof t>"u")return new Set(bC);let e=bC.indexOf(t),r=bC.slice(e);return new Set(r)}function h5(t){let e={},r={children:e};for(let[o,a]of He.sortMap(Object.entries(t),n=>n[0]))for(let n of He.sortMap(a,u=>`${u.id}`))e[`${o}/${n.id}`]={value:pe.tuple(pe.Type.IDENT,G.parseIdent(o)),children:{ID:typeof n.id<"u"&&{label:"ID",value:pe.tuple(pe.Type.ID,n.id)},Issue:{label:"Issue",value:pe.tuple(pe.Type.NO_HINT,n.title)},URL:typeof n.url<"u"&&{label:"URL",value:pe.tuple(pe.Type.URL,n.url)},Severity:{label:"Severity",value:pe.tuple(pe.Type.NO_HINT,n.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:pe.tuple(pe.Type.RANGE,n.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...n.versions].sort(IBe.default.compare).map(u=>({value:pe.tuple(pe.Type.REFERENCE,u)}))},Dependents:{label:"Dependents",children:He.sortMap(n.dependents,u=>G.stringifyLocator(u)).map(u=>({value:pe.tuple(pe.Type.LOCATOR,u)}))}}};return r}function g5(t,e,{all:r,environment:o}){let a=[],n=r?t.workspaces:[e],u=["all","production"].includes(o),A=["all","development"].includes(o);for(let p of n)for(let h of p.anchoredPackage.dependencies.values())(p.manifest.devDependencies.has(h.identHash)?!A:!u)||a.push({workspace:p,dependency:h});return a}function d5(t,e,{recursive:r}){let o=new Map,a=new Set,n=[],u=(A,p)=>{let h=t.storedResolutions.get(p.descriptorHash);if(typeof h>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(h))a.add(h);else return;let E=t.storedPackages.get(h);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");if(G.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let v=G.stringifyIdent(E),x=He.getMapWithDefault(o,v);He.getArrayWithDefault(x,E.version).push(A)}if(r)for(let v of E.dependencies.values())n.push([E,v])};for(let{workspace:A,dependency:p}of e)n.push([A.anchoredLocator,p]);for(;n.length>0;){let[A,p]=n.shift();u(A,p)}return o}var SC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=ge.String("--environment","all",{description:"Which environments to cover",validator:Js(hv)});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.noDeprecations=ge.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"});this.severity=ge.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Js(gv)});this.excludes=ge.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=ge.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}static{this.paths=[["npm","audit"]]}static{this.usage=it.Usage({description:"perform a vulnerability audit against the installed packages",details:` + This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). + + For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. + + Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${bC.map(r=>`\`${r}\``).join(", ")}. + + If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. + + If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option. + + If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. + + To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why package\` to get more information as to who depends on them. + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=g5(o,a,{all:this.all,environment:this.environment}),u=d5(o,n,{recursive:this.recursive}),A=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes])),p=Object.create(null);for(let[L,U]of u)A.some(z=>m5.default.isMatch(L,z))||(p[L]=[...U.keys()]);let h=Zn.getAuditRegistry({configuration:r}),E,I=await AA.start({configuration:r,stdout:this.context.stdout},async()=>{let L=Zr.post("/-/npm/v1/security/advisories/bulk",p,{authType:Zr.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(p),async([te,ae])=>{let le=await Zr.getPackageMetadata(G.parseIdent(te),{project:o});return He.mapAndFilter(ae,ce=>{let{deprecated:Ce}=le.versions[ce];return Ce?[te,ce,Ce]:He.mapAndFilter.skip})})),z=await L;for(let[te,ae,le]of U.flat(1))Object.hasOwn(z,te)&&z[te].some(ce=>Lr.satisfiesWithPrereleases(ae,ce.vulnerable_versions))||(z[te]??=[],z[te].push({id:`${te} (deprecation)`,title:le.trim()||"This package has been deprecated.",severity:"moderate",vulnerable_versions:ae}));E=z});if(I.hasErrors())return I.exitCode();let v=p5(this.severity),x=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores])),C=Object.create(null);for(let[L,U]of Object.entries(E)){let z=U.filter(te=>!m5.default.isMatch(`${te.id}`,x)&&v.has(te.severity));z.length>0&&(C[L]=z.map(te=>{let ae=u.get(L);if(typeof ae>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let le=[...ae.keys()].filter(Ce=>Lr.satisfiesWithPrereleases(Ce,te.vulnerable_versions)),ce=new Map;for(let Ce of le)for(let de of ae.get(Ce))ce.set(de.locatorHash,de);return{...te,versions:le,dependents:[...ce.values()]}}))}let R=Object.keys(C).length>0;return R?(fs.emitTree(h5(C),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Rt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async L=>{L.reportInfo(1,"No audit suggestions")}),R?1:0)}};Ge();Ge();Pt();qt();var y5=Ze(Jn()),E5=ve("util"),xC=class extends ut{constructor(){super(...arguments);this.fields=ge.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=ge.Rest()}static{this.paths=[["npm","info"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd),a=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],u=!1,A=await Rt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async p=>{for(let h of this.packages){let E;if(h==="."){let ae=o.topLevelWorkspace;if(!ae.manifest.name)throw new st(`Missing ${pe.pretty(r,"name",pe.Type.CODE)} field in ${ue.fromPortablePath(V.join(ae.cwd,dr.manifest))}`);E=G.makeDescriptor(ae.manifest.name,"unknown")}else E=G.parseDescriptor(h);let I=Zr.getIdentUrl(E),v=C5(await Zr.get(I,{configuration:r,ident:E,jsonResponse:!0,customErrorMessage:Zr.customPackageError})),x=Object.keys(v.versions).sort(y5.default.compareLoose),R=v["dist-tags"].latest||x[x.length-1],L=Lr.validRange(E.range);if(L){let ae=y5.default.maxSatisfying(x,L);ae!==null?R=ae:(p.reportWarning(0,`Unmet range ${G.prettyRange(r,E.range)}; falling back to the latest version`),u=!0)}else Object.hasOwn(v["dist-tags"],E.range)?R=v["dist-tags"][E.range]:E.range!=="unknown"&&(p.reportWarning(0,`Unknown tag ${G.prettyRange(r,E.range)}; falling back to the latest version`),u=!0);let U=v.versions[R],z={...v,...U,version:R,versions:x},te;if(a!==null){te={};for(let ae of a){let le=z[ae];if(typeof le<"u")te[ae]=le;else{p.reportWarning(1,`The ${pe.pretty(r,ae,pe.Type.CODE)} field doesn't exist inside ${G.prettyIdent(r,E)}'s information`),u=!0;continue}}}else this.json||(delete z.dist,delete z.readme,delete z.users),te=z;p.reportJson(te),this.json||n.push(te)}});E5.inspect.styles.name="cyan";for(let p of n)(p!==n[0]||u)&&this.context.stdout.write(` +`),this.context.stdout.write(`${(0,E5.inspect)(p,{depth:1/0,colors:!0,compact:!1})} +`);return A.exitCode()}};function C5(t){if(Array.isArray(t)){let e=[];for(let r of t)r=C5(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let o=C5(t[r]);o&&(e[r]=o)}return e}else return t||null}Ge();Ge();qt();var BBe=Ze(J1()),kC=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=ge.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}static{this.paths=[["npm","login"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await qQ({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Rt.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let u=await Wvt({configuration:r,registry:o,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),A=await Gvt(o,u,r);return await Yvt(o,A,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};async function qQ({scope:t,publish:e,configuration:r,cwd:o}){return t&&e?Zn.getScopeRegistry(t,{configuration:r,type:Zn.RegistryType.PUBLISH_REGISTRY}):t?Zn.getScopeRegistry(t,{configuration:r}):e?Zn.getPublishRegistry((await _y(r,o)).manifest,{configuration:r}):Zn.getDefaultRegistry({configuration:r})}async function Gvt(t,e,r){let o=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,a={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},n={attemptedAs:e.name,configuration:r,registry:t,jsonResponse:!0,authType:Zr.AuthType.NO_AUTH};try{return(await Zr.put(o,a,n)).token}catch(E){if(!(E.originalError?.name==="HTTPError"&&E.originalError?.response.statusCode===409))throw E}let u={...n,authType:Zr.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},A=await Zr.get(o,u);for(let[E,I]of Object.entries(A))(!a[E]||E==="roles")&&(a[E]=I);let p=`${o}/-rev/${a._rev}`;return(await Zr.put(p,a,u)).token}async function Yvt(t,e,{alwaysAuth:r,scope:o}){let a=u=>A=>{let p=He.isIndexableObject(A)?A:{},h=p[u],E=He.isIndexableObject(h)?h:{};return{...p,[u]:{...E,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:e}}},n=o?{npmScopes:a(o)}:{npmRegistries:a(t)};return await Ke.updateHomeConfiguration(n)}async function Wvt({configuration:t,registry:e,report:r,stdin:o,stdout:a}){r.reportInfo(0,`Logging in to ${pe.pretty(t,e,pe.Type.URL)}`);let n=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),r.reportSeparator(),t.env.YARN_IS_TEST_ENV)return{name:t.env.YARN_INJECT_NPM_USER||"",password:t.env.YARN_INJECT_NPM_PASSWORD||""};let u=await(0,BBe.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a}]);return r.reportSeparator(),u}Ge();Ge();qt();var QC=new Set(["npmAuthIdent","npmAuthToken"]),FC=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=ge.Boolean("-A,--all",!1,{description:"Logout of all registries"})}static{this.paths=[["npm","logout"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=async()=>{let n=await qQ({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),u=await Ke.find(this.context.cwd,this.context.plugins),A=G.makeIdent(this.scope??null,"pkg");return!Zn.getAuthConfiguration(n,{configuration:u,ident:A}).get("npmAuthToken")};return(await Rt.start({configuration:r,stdout:this.context.stdout},async n=>{if(this.all&&(await Vvt(),n.reportInfo(0,"Successfully logged out from everything")),this.scope){await vBe("npmScopes",this.scope),await o()?n.reportInfo(0,`Successfully logged out from ${this.scope}`):n.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let u=await qQ({configuration:r,cwd:this.context.cwd,publish:this.publish});await vBe("npmRegistries",u),await o()?n.reportInfo(0,`Successfully logged out from ${u}`):n.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};function Kvt(t,e){let r=t[e];if(!He.isIndexableObject(r))return!1;let o=new Set(Object.keys(r));if([...QC].every(n=>!o.has(n)))return!1;for(let n of QC)o.delete(n);if(o.size===0)return t[e]=void 0,!0;let a={...r};for(let n of QC)delete a[n];return t[e]=a,!0}async function Vvt(){let t=e=>{let r=!1,o=He.isIndexableObject(e)?{...e}:{};o.npmAuthToken&&(delete o.npmAuthToken,r=!0);for(let a of Object.keys(o))Kvt(o,a)&&(r=!0);if(Object.keys(o).length!==0)return r?o:e};return await Ke.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function vBe(t,e){return await Ke.updateHomeConfiguration({[t]:r=>{let o=He.isIndexableObject(r)?r:{};if(!Object.hasOwn(o,e))return r;let a=o[e],n=He.isIndexableObject(a)?a:{},u=new Set(Object.keys(n));if([...QC].every(p=>!u.has(p)))return r;for(let p of QC)u.delete(p);if(u.size===0)return Object.keys(o).length===1?void 0:{...o,[e]:void 0};let A={};for(let p of QC)A[p]=void 0;return{...o,[e]:{...n,...A}}}})}Ge();qt();var RC=class extends ut{constructor(){super(...arguments);this.access=ge.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=ge.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=ge.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=ge.String("--otp",{description:"The OTP token to use with the command"})}static{this.paths=[["npm","publish"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);if(a.manifest.private)throw new st("Private workspaces cannot be published");if(a.manifest.name===null||a.manifest.version===null)throw new st("Workspaces must have valid names and versions to be published on an external registry");await o.restoreInstallState();let n=a.manifest.name,u=a.manifest.version,A=Zn.getPublishRegistry(a.manifest,{configuration:r});return(await Rt.start({configuration:r,stdout:this.context.stdout},async h=>{if(this.tolerateRepublish)try{let E=await Zr.get(Zr.getIdentUrl(n),{configuration:r,registry:A,ident:n,jsonResponse:!0});if(!Object.hasOwn(E,"versions"))throw new Jt(15,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(E.versions,u)){h.reportWarning(0,`Registry already knows about version ${u}; skipping.`);return}}catch(E){if(E.originalError?.response?.statusCode!==404)throw E}await An.maybeExecuteWorkspaceLifecycleScript(a,"prepublish",{report:h}),await CA.prepareForPack(a,{report:h},async()=>{let E=await CA.genPackList(a);for(let R of E)h.reportInfo(null,R);let I=await CA.genPackStream(a,E),v=await He.bufferStream(I),x=await PC.getGitHead(a.cwd),C=await PC.makePublishBody(a,v,{access:this.access,tag:this.tag,registry:A,gitHead:x});await Zr.put(Zr.getIdentUrl(n),C,{configuration:r,registry:A,ident:n,otp:this.otp,jsonResponse:!0})}),h.reportInfo(0,"Package archive published")})).exitCode()}};Ge();qt();var DBe=Ze(Jn());Ge();Pt();qt();var TC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String({required:!1})}static{this.paths=[["npm","tag","list"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` + This command will list all tags of a package from the npm registry. + + If the package is not specified, Yarn will default to the current workspace. + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=G.parseIdent(this.package);else{if(!a)throw new sr(o.cwd,this.context.cwd);if(!a.manifest.name)throw new st(`Missing 'name' field in ${ue.fromPortablePath(V.join(a.cwd,dr.manifest))}`);n=a.manifest.name}let u=await mv(n,r),p={children:He.sortMap(Object.entries(u),([h])=>h).map(([h,E])=>({value:pe.tuple(pe.Type.RESOLUTION,{descriptor:G.makeDescriptor(n,h),locator:G.makeLocator(n,E)})}))};return fs.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};async function mv(t,e){let r=`/-/package${Zr.getIdentUrl(t)}/dist-tags`;return Zr.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:Zr.customPackageError})}var NC=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[["npm","tag","add"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);let n=G.parseDescriptor(this.package,!0),u=n.range;if(!DBe.default.valid(u))throw new st(`The range ${pe.pretty(r,n.range,pe.Type.RANGE)} must be a valid semver version`);let A=Zn.getPublishRegistry(a.manifest,{configuration:r}),p=pe.pretty(r,n,pe.Type.IDENT),h=pe.pretty(r,u,pe.Type.RANGE),E=pe.pretty(r,this.tag,pe.Type.CODE);return(await Rt.start({configuration:r,stdout:this.context.stdout},async v=>{let x=await mv(n,r);Object.hasOwn(x,this.tag)&&x[this.tag]===u&&v.reportWarning(0,`Tag ${E} is already set to version ${h}`);let C=`/-/package${Zr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Zr.put(C,u,{configuration:r,registry:A,ident:n,jsonRequest:!0,jsonResponse:!0}),v.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};Ge();qt();var LC=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[["npm","tag","remove"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + This command will remove a tag from a package from the npm registry. + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]})}async execute(){if(this.tag==="latest")throw new st("The 'latest' tag cannot be removed.");let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);let n=G.parseIdent(this.package),u=Zn.getPublishRegistry(a.manifest,{configuration:r}),A=pe.pretty(r,this.tag,pe.Type.CODE),p=pe.pretty(r,n,pe.Type.IDENT),h=await mv(n,r);if(!Object.hasOwn(h,this.tag))throw new st(`${A} is not a tag of package ${p}`);return(await Rt.start({configuration:r,stdout:this.context.stdout},async I=>{let v=`/-/package${Zr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Zr.del(v,{configuration:r,registry:u,ident:n,jsonResponse:!0}),I.reportInfo(0,`Tag ${A} removed from package ${p}`)})).exitCode()}};Ge();Ge();qt();var MC=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Print username for the publish registry"})}static{this.paths=[["npm","whoami"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o;return this.scope&&this.publish?o=Zn.getScopeRegistry(this.scope,{configuration:r,type:Zn.RegistryType.PUBLISH_REGISTRY}):this.scope?o=Zn.getScopeRegistry(this.scope,{configuration:r}):this.publish?o=Zn.getPublishRegistry((await _y(r,this.context.cwd)).manifest,{configuration:r}):o=Zn.getDefaultRegistry({configuration:r}),(await Rt.start({configuration:r,stdout:this.context.stdout},async n=>{let u;try{u=await Zr.get("/-/whoami",{configuration:r,registry:o,authType:Zr.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?G.makeIdent(this.scope,""):void 0})}catch(A){if(A.response?.statusCode===401||A.response?.statusCode===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw A}n.reportInfo(0,u.username)})).exitCode()}};var zvt={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[SC,xC,kC,FC,RC,NC,TC,LC,MC]},Jvt=zvt;var S5={};Vt(S5,{PatchCommand:()=>jC,PatchCommitCommand:()=>qC,PatchFetcher:()=>Iv,PatchResolver:()=>Bv,default:()=>hDt,patchUtils:()=>pd});Ge();Ge();Pt();nA();var pd={};Vt(pd,{applyPatchFile:()=>GQ,diffFolders:()=>P5,ensureUnpatchedDescriptor:()=>I5,ensureUnpatchedLocator:()=>WQ,extractPackageToDisk:()=>D5,extractPatchFlags:()=>FBe,isParentRequired:()=>v5,isPatchDescriptor:()=>YQ,isPatchLocator:()=>$h,loadPatchFiles:()=>wv,makeDescriptor:()=>KQ,makeLocator:()=>B5,makePatchHash:()=>b5,parseDescriptor:()=>Ev,parseLocator:()=>Cv,parsePatchFile:()=>yv,unpatchDescriptor:()=>ADt,unpatchLocator:()=>fDt});Ge();Pt();Ge();Pt();var Xvt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function OC(t){return V.relative(It.root,V.resolve(It.root,ue.toPortablePath(t)))}function Zvt(t){let e=t.trim().match(Xvt);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var $vt=420,eDt=493;var PBe=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),tDt=t=>({header:Zvt(t),parts:[]}),rDt={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function nDt(t){let e=[],r=PBe(),o="parsing header",a=null,n=null;function u(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function A(){u(),e.push(r),r=PBe()}for(let p=0;p0?"patch":"mode change",z=null;switch(U){case"rename":{if(!E||!I)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:o,fromPath:OC(E),toPath:OC(I)}),z=I}break;case"file deletion":{let te=a||C;if(!te)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:o,hunk:L&&L[0]||null,path:OC(te),mode:jQ(p),hash:v})}break;case"file creation":{let te=n||R;if(!te)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:o,hunk:L&&L[0]||null,path:OC(te),mode:jQ(h),hash:x})}break;case"patch":case"mode change":z=R||n;break;default:He.assertNever(U);break}z&&u&&A&&u!==A&&e.push({type:"mode change",semverExclusivity:o,path:OC(z),oldMode:jQ(u),newMode:jQ(A)}),z&&L&&L.length&&e.push({type:"patch",semverExclusivity:o,path:OC(z),hunks:L,beforeHash:v,afterHash:x})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function jQ(t){let e=parseInt(t,8)&511;if(e!==$vt&&e!==eDt)throw new Error(`Unexpected file mode string: ${t}`);return e}function yv(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),iDt(nDt(e))}function sDt(t){let e=0,r=0;for(let{type:o,lines:a}of t.parts)switch(o){case"context":r+=a.length,e+=a.length;break;case"deletion":e+=a.length;break;case"insertion":r+=a.length;break;default:He.assertNever(o);break}if(e!==t.header.original.length||r!==t.header.patched.length){let o=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${o(t.header.original.length)} ${o(t.header.patched.length)} @@, got @@ ${o(e)} ${o(r)} @@)`)}}Ge();Pt();var UC=class extends Error{constructor(r,o){super(`Cannot apply hunk #${r+1}`);this.hunk=o}};async function _C(t,e,r){let o=await t.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await t.lutimesPromise(e,o.atime,o.mtime)}async function GQ(t,{baseFs:e=new Tn,dryRun:r=!1,version:o=null}={}){for(let a of t)if(!(a.semverExclusivity!==null&&o!==null&&!Lr.satisfiesWithPrereleases(o,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!e.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await _C(e,V.dirname(a.path),async()=>{await e.unlinkPromise(a.path)});break;case"rename":if(r){if(!e.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await _C(e,V.dirname(a.fromPath),async()=>{await _C(e,V.dirname(a.toPath),async()=>{await _C(e,a.fromPath,async()=>(await e.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(e.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let n=a.hunk?a.hunk.parts[0].lines.join(` +`)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":` +`):"";await e.mkdirpPromise(V.dirname(a.path),{chmod:493,utimes:[Bi.SAFE_TIME,Bi.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,Bi.SAFE_TIME,Bi.SAFE_TIME)}break;case"patch":await _C(e,a.path,async()=>{await lDt(a,{baseFs:e,dryRun:r})});break;case"mode change":{let u=(await e.statPromise(a.path)).mode;if(bBe(a.newMode)!==bBe(u))continue;await _C(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:He.assertNever(a);break}}function bBe(t){return(t&64)>0}function SBe(t){return t.replace(/\s+$/,"")}function aDt(t,e){return SBe(t)===SBe(e)}async function lDt({hunks:t,path:e},{baseFs:r,dryRun:o=!1}){let a=await r.statSync(e).mode,u=(await r.readFileSync(e,"utf8")).split(/\n/),A=[],p=0,h=0;for(let I of t){let v=Math.max(h,I.header.patched.start+p),x=Math.max(0,v-h),C=Math.max(0,u.length-v-I.header.original.length),R=Math.max(x,C),L=0,U=0,z=null;for(;L<=R;){if(L<=x&&(U=v-L,z=xBe(I,u,U),z!==null)){L=-L;break}if(L<=C&&(U=v+L,z=xBe(I,u,U),z!==null))break;L+=1}if(z===null)throw new UC(t.indexOf(I),I);A.push(z),p+=L,h=U+I.header.original.length}if(o)return;let E=0;for(let I of A)for(let v of I)switch(v.type){case"splice":{let x=v.index+E;u.splice(x,v.numToDelete,...v.linesToInsert),E+=v.linesToInsert.length-v.numToDelete}break;case"pop":u.pop();break;case"push":u.push(v.line);break;default:He.assertNever(v);break}await r.writeFilePromise(e,u.join(` +`),{mode:a})}function xBe(t,e,r){let o=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let u=e[r];if(u==null||!aDt(u,n))return null;r+=1}a.type==="deletion"&&(o.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&o.push({type:"push",line:""}))}break;case"insertion":o.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&o.push({type:"pop"});break;default:He.assertNever(a.type);break}return o}var uDt=/^builtin<([^>]+)>$/;function HC(t,e){let{protocol:r,source:o,selector:a,params:n}=G.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(o===null)throw new Error("Patch locators must explicitly define their source");let u=a?a.split(/&/).map(E=>ue.toPortablePath(E)):[],A=n&&typeof n.locator=="string"?G.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=e(o);return{parentLocator:A,sourceItem:h,patchPaths:u,sourceVersion:p}}function YQ(t){return t.range.startsWith("patch:")}function $h(t){return t.reference.startsWith("patch:")}function Ev(t){let{sourceItem:e,...r}=HC(t.range,G.parseDescriptor);return{...r,sourceDescriptor:e}}function Cv(t){let{sourceItem:e,...r}=HC(t.reference,G.parseLocator);return{...r,sourceLocator:e}}function ADt(t){let{sourceItem:e}=HC(t.range,G.parseDescriptor);return e}function fDt(t){let{sourceItem:e}=HC(t.reference,G.parseLocator);return e}function I5(t){if(!YQ(t))return t;let{sourceItem:e}=HC(t.range,G.parseDescriptor);return e}function WQ(t){if(!$h(t))return t;let{sourceItem:e}=HC(t.reference,G.parseLocator);return e}function kBe({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:o,patchHash:a},n){let u=t!==null?{locator:G.stringifyLocator(t)}:{},A=typeof o<"u"?{version:o}:{},p=typeof a<"u"?{hash:a}:{};return G.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...A,...p,...u}})}function KQ(t,{parentLocator:e,sourceDescriptor:r,patchPaths:o}){return G.makeDescriptor(t,kBe({parentLocator:e,sourceItem:r,patchPaths:o},G.stringifyDescriptor))}function B5(t,{parentLocator:e,sourcePackage:r,patchPaths:o,patchHash:a}){return G.makeLocator(t,kBe({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:o,patchHash:a},G.stringifyLocator))}function QBe({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:o},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let u=a.match(uDt);return u!==null?o(u[1]):a.startsWith("~/")?r(a.slice(2)):V.isAbsolute(a)?t(a):e(a)}function FBe(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function v5(t){return QBe({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function wv(t,e,r){let o=t!==null?await r.fetcher.fetch(t,r):null,a=o&&o.localPath?{packageFs:new gn(It.root),prefixPath:V.relative(It.root,o.localPath)}:o;o&&o!==a&&o.releaseFs&&o.releaseFs();let n=await He.releaseAfterUseAsync(async()=>await Promise.all(e.map(async u=>{let A=FBe(u),p=await QBe({onAbsolute:async h=>await oe.readFilePromise(h,"utf8"),onRelative:async h=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(V.join(a.prefixPath,h),"utf8")},onProject:async h=>await oe.readFilePromise(V.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},u);return{...A,source:p}})));for(let u of n)typeof u.source=="string"&&(u.source=u.source.replace(/\r\n?/g,` +`));return n}async function D5(t,{cache:e,project:r}){let o=r.storedPackages.get(t.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=WQ(t),n=r.storedChecksums,u=new ki,A=await oe.mktempPromise(),p=V.join(A,"source"),h=V.join(A,"user"),E=V.join(A,".yarn-patch.json"),I=r.configuration.makeFetcher(),v=[];try{let x,C;if(t.locatorHash===a.locatorHash){let R=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u});v.push(()=>R.releaseFs?.()),x=R,C=R}else x=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u}),v.push(()=>x.releaseFs?.()),C=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u}),v.push(()=>C.releaseFs?.());await Promise.all([oe.copyPromise(p,x.prefixPath,{baseFs:x.packageFs}),oe.copyPromise(h,C.prefixPath,{baseFs:C.packageFs}),oe.writeJsonPromise(E,{locator:G.stringifyLocator(t),version:o.version})])}finally{for(let x of v)x()}return oe.detachTemp(A),h}async function P5(t,e){let r=ue.fromPortablePath(t).replace(/\\/g,"/"),o=ue.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await Ur.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,o],{cwd:ue.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +The following error was reported by 'git': +${n}`);let u=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${He.escapeRegExp(`/${u(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${He.escapeRegExp(`/${u(o)}/`)}`,"g"),"$1/").replace(new RegExp(He.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(He.escapeRegExp(`${o}/`),"g"),"")}function b5(t,e){let r=[];for(let{source:o}of t){if(o===null)continue;let a=yv(o);for(let n of a){let{semverExclusivity:u,...A}=n;u!==null&&e!==null&&!Lr.satisfiesWithPrereleases(e,u)||r.push(JSON.stringify(A))}}return wn.makeHash(`${3}`,...r).slice(0,6)}Ge();function RBe(t,{configuration:e,report:r}){for(let o of t.parts)for(let a of o.lines)switch(o.type){case"context":r.reportInfo(null,` ${pe.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${pe.pretty(e,a,pe.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${pe.pretty(e,a,pe.Type.ADDED)}`);break;default:He.assertNever(o.type)}}var Iv=class{supports(e,r){return!!$h(e)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async patchPackage(e,r){let{parentLocator:o,sourceLocator:a,sourceVersion:n,patchPaths:u}=Cv(e),A=await wv(o,u,r),p=await oe.mktempPromise(),h=V.join(p,"current.zip"),E=await r.fetcher.fetch(a,r),I=G.getIdentVendorPath(e),v=new Zi(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await He.releaseAfterUseAsync(async()=>{await v.copyPromise(I,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),v.saveAndClose();for(let{source:x,optional:C}of A){if(x===null)continue;let R=new Zi(h,{level:r.project.configuration.get("compressionLevel")}),L=new gn(V.resolve(It.root,I),{baseFs:R});try{await GQ(yv(x),{baseFs:L,version:n})}catch(U){if(!(U instanceof UC))throw U;let z=r.project.configuration.get("enableInlineHunks"),te=!z&&!C?" (set enableInlineHunks for details)":"",ae=`${G.prettyLocator(r.project.configuration,e)}: ${U.message}${te}`,le=ce=>{z&&RBe(U.hunk,{configuration:r.project.configuration,report:ce})};if(R.discardAndClose(),C){r.report.reportWarningOnce(66,ae,{reportExtra:le});continue}else throw new Jt(66,ae,le)}R.saveAndClose()}return new Zi(h,{level:r.project.configuration.get("compressionLevel")})}};Ge();var Bv=class{supportsDescriptor(e,r){return!!YQ(e)}supportsLocator(e,r){return!!$h(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){let{patchPaths:a}=Ev(e);return a.every(n=>!v5(n))?e:G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:o}=Ev(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(o)}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=Ev(e),u=await wv(a,n,o.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=b5(u,A.version);return[B5(e,{parentLocator:a,sourcePackage:A,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:o}=Cv(e);return{...await r.resolver.resolve(o,r),...e}}};Ge();Pt();qt();var qC=class extends ut{constructor(){super(...arguments);this.save=ge.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=ge.String()}static{this.paths=[["patch-commit"]]}static{this.usage=it.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=V.resolve(this.context.cwd,ue.toPortablePath(this.patchFolder)),u=V.join(n,"../source"),A=V.join(n,"../.yarn-patch.json");if(!oe.existsSync(u))throw new st("The argument folder didn't get created by 'yarn patch'");let p=await P5(u,n),h=await oe.readJsonPromise(A),E=G.parseLocator(h.locator,!0);if(!o.storedPackages.has(E.locatorHash))throw new st("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(p);return}let I=r.get("patchFolder"),v=V.join(I,`${G.slugifyLocator(E)}.patch`);await oe.mkdirPromise(I,{recursive:!0}),await oe.writeFilePromise(v,p);let x=[],C=new Map;for(let R of o.storedPackages.values()){if(G.isVirtualLocator(R))continue;let L=R.dependencies.get(E.identHash);if(!L)continue;let U=G.ensureDevirtualizedDescriptor(L),z=I5(U),te=o.storedResolutions.get(z.descriptorHash);if(!te)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!o.storedPackages.get(te))throw new Error("Assertion failed: Expected the package to have been registered");let le=o.tryWorkspaceByLocator(R);if(le)x.push(le);else{let ce=o.originalPackages.get(R.locatorHash);if(!ce)throw new Error("Assertion failed: Expected the original package to have been registered");let Ce=ce.dependencies.get(L.identHash);if(!Ce)throw new Error("Assertion failed: Expected the original dependency to have been registered");C.set(Ce.descriptorHash,Ce)}}for(let R of x)for(let L of Ut.hardDependencies){let U=R.manifest[L].get(E.identHash);if(!U)continue;let z=KQ(U,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[V.join(dr.home,V.relative(o.cwd,v))]});R.manifest[L].set(U.identHash,z)}for(let R of C.values()){let L=KQ(R,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[V.join(dr.home,V.relative(o.cwd,v))]});o.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:G.stringifyIdent(L),description:R.range}},reference:L.range})}await o.persist()}};Ge();Pt();qt();var jC=class extends ut{constructor(){super(...arguments);this.update=ge.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String()}static{this.paths=[["patch"]]}static{this.usage=it.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let u=G.parseLocator(this.package);if(u.reference==="unknown"){let A=He.mapAndFilter([...o.storedPackages.values()],p=>p.identHash!==u.identHash?He.mapAndFilter.skip:G.isVirtualLocator(p)?He.mapAndFilter.skip:$h(p)!==this.update?He.mapAndFilter.skip:p);if(A.length===0)throw new st("No package found in the project for the given locator");if(A.length>1)throw new st(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${A.map(p=>` +- ${G.prettyLocator(r,p)}`).join("")}`);u=A[0]}if(!o.storedPackages.has(u.locatorHash))throw new st("No package found in the project for the given locator");await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=WQ(u),h=await D5(u,{cache:n,project:o});A.reportJson({locator:G.stringifyLocator(p),path:ue.fromPortablePath(h)});let E=this.update?" along with its current modifications":"";A.reportInfo(0,`Package ${G.prettyLocator(r,p)} got extracted with success${E}!`),A.reportInfo(0,`You can now edit the following folder: ${pe.pretty(r,ue.fromPortablePath(h),"magenta")}`),A.reportInfo(0,`Once you are done run ${pe.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${ue.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};var pDt={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[qC,jC],fetchers:[Iv],resolvers:[Bv]},hDt=pDt;var Q5={};Vt(Q5,{PnpmLinker:()=>vv,default:()=>EDt});Ge();Pt();qt();var vv=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new st(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new st(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new st(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let u=e,A=e;do{A=u,u=V.dirname(A);let p=a.locatorByPath.get(A);if(p)return p}while(u!==A);return null}makeInstaller(e){return new x5(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},x5=class{constructor(e){this.opts=e;this.asyncActions=new He.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=cD(oe,{indexPath:V.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}async installPackage(e,r,o){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,o);case"HARD":return this.installPackageHard(e,r,o)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,o){let a=V.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?V.join(a,dr.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildRequest:null}}async installPackageHard(e,r,o){let a=gDt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,G.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await oe.mkdirPromise(n,{recursive:!0}),await oe.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e,p={manifest:await Ut.tryFind(r.prefixPath,{baseFs:r.packageFs})??new Ut,misc:{hasBindingGyp:mA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(A,e.version),E=mA.extractBuildRequest(e,p,h,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:E}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!TBe(e,{project:this.opts.project}))return;let o=this.customData.pathsByLocator.get(e.locatorHash);if(typeof o>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(e)})`);let{dependenciesLocation:a}=o;a&&this.asyncActions.reduce(e.locatorHash,async n=>{await oe.mkdirPromise(a,{recursive:!0});let u=await dDt(a),A=new Map(u),p=[n],h=(I,v)=>{let x=v;TBe(v,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),x=G.devirtualizeLocator(v));let C=this.customData.pathsByLocator.get(x.locatorHash);if(typeof C>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(v)})`);let R=G.stringifyIdent(I),L=V.join(a,R),U=V.relative(V.dirname(L),C.packageLocation),z=A.get(R);A.delete(R),p.push(Promise.resolve().then(async()=>{if(z){if(z.isSymbolicLink()&&await oe.readlinkPromise(L)===U)return;await oe.removePromise(L)}await oe.mkdirpPromise(V.dirname(L)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")==="junctions"?await oe.symlinkPromise(C.packageLocation,L,"junction"):await oe.symlinkPromise(U,L)}))},E=!1;for(let[I,v]of r)I.identHash===e.identHash&&(E=!0),h(I,v);!E&&!this.opts.project.tryWorkspaceByLocator(e)&&h(G.convertLocatorToDescriptor(e),e),p.push(mDt(a,A)),await Promise.all(p)})}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=LBe(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await oe.removePromise(e);else{let r;try{r=new Set(await oe.readdirPromise(e))}catch{r=new Set}for(let{dependenciesLocation:o}of this.customData.pathsByLocator.values()){if(!o)continue;let a=V.contains(e,o);if(a===null)continue;let[n]=a.split(V.sep);r.delete(n)}await Promise.all([...r].map(async o=>{await oe.removePromise(V.join(e,o))}))}return await this.asyncActions.wait(),await k5(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await k5(NBe(this.opts.project)),{customData:this.customData}}};function NBe(t){return V.join(t.cwd,dr.nodeModules)}function LBe(t){return V.join(NBe(t),".store")}function gDt(t,{project:e}){let r=G.slugifyLocator(t),o=LBe(e),a=V.join(o,r,"package"),n=V.join(o,r,dr.nodeModules);return{packageLocation:a,dependenciesLocation:n}}function TBe(t,{project:e}){return!G.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function dDt(t){let e=new Map,r=[];try{r=await oe.readdirPromise(t,{withFileTypes:!0})}catch(o){if(o.code!=="ENOENT")throw o}try{for(let o of r)if(!o.name.startsWith("."))if(o.name.startsWith("@")){let a=await oe.readdirPromise(V.join(t,o.name),{withFileTypes:!0});if(a.length===0)e.set(o.name,o);else for(let n of a)e.set(`${o.name}/${n.name}`,n)}else e.set(o.name,o)}catch(o){if(o.code!=="ENOENT")throw o}return e}async function mDt(t,e){let r=[],o=new Set;for(let a of e.keys()){r.push(oe.removePromise(V.join(t,a)));let n=G.tryParseIdent(a)?.scope;n&&o.add(`@${n}`)}return Promise.all(r).then(()=>Promise.all([...o].map(a=>k5(V.join(t,a)))))}async function k5(t){try{await oe.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var yDt={linkers:[vv]},EDt=yDt;var O5={};Vt(O5,{StageCommand:()=>GC,default:()=>kDt,stageUtils:()=>zQ});Ge();Pt();qt();Ge();Pt();var zQ={};Vt(zQ,{ActionType:()=>F5,checkConsensus:()=>VQ,expandDirectory:()=>N5,findConsensus:()=>L5,findVcsRoot:()=>R5,genCommitMessage:()=>M5,getCommitPrefix:()=>MBe,isYarnFile:()=>T5});Pt();var F5=(n=>(n[n.CREATE=0]="CREATE",n[n.DELETE=1]="DELETE",n[n.ADD=2]="ADD",n[n.REMOVE=3]="REMOVE",n[n.MODIFY=4]="MODIFY",n))(F5||{});async function R5(t,{marker:e}){do if(!oe.existsSync(V.join(t,e)))t=V.dirname(t);else return t;while(t!=="/");return null}function T5(t,{roots:e,names:r}){if(r.has(V.basename(t)))return!0;do if(!e.has(t))t=V.dirname(t);else return!0;while(t!=="/");return!1}function N5(t){let e=[],r=[t];for(;r.length>0;){let o=r.pop(),a=oe.readdirSync(o);for(let n of a){let u=V.resolve(o,n);oe.lstatSync(u).isDirectory()?r.push(u):e.push(u)}}return e}function VQ(t,e){let r=0,o=0;for(let a of t)a!=="wip"&&(e.test(a)?r+=1:o+=1);return r>=o}function L5(t){let e=VQ(t,/^(\w\(\w+\):\s*)?\w+s/),r=VQ(t,/^(\w\(\w+\):\s*)?[A-Z]/),o=VQ(t,/^\w\(\w+\):/);return{useThirdPerson:e,useUpperCase:r,useComponent:o}}function MBe(t){return t.useComponent?"chore(yarn): ":""}var CDt=new Map([[0,"create"],[1,"delete"],[2,"add"],[3,"remove"],[4,"update"]]);function M5(t,e){let r=MBe(t),o=[],a=e.slice().sort((n,u)=>n[0]-u[0]);for(;a.length>0;){let[n,u]=a.shift(),A=CDt.get(n);t.useUpperCase&&o.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),t.useThirdPerson&&(A+="s");let p=[u];for(;a.length>0&&a[0][0]===n;){let[,E]=a.shift();p.push(E)}p.sort();let h=p.shift();p.length===1?h+=" (and one other)":p.length>1&&(h+=` (and ${p.length} others)`),o.push(`${A} ${h}`)}return`${r}${o.join(", ")}`}var wDt="Commit generated via `yarn stage`",IDt=11;async function OBe(t){let{code:e,stdout:r}=await Ur.execvp("git",["log","-1","--pretty=format:%H"],{cwd:t});return e===0?r.trim():null}async function BDt(t,e){let r=[],o=e.filter(h=>V.basename(h.path)==="package.json");for(let{action:h,path:E}of o){let I=V.relative(t,E);if(h===4){let v=await OBe(t),{stdout:x}=await Ur.execvp("git",["show",`${v}:${I}`],{cwd:t,strict:!0}),C=await Ut.fromText(x),R=await Ut.fromFile(E),L=new Map([...R.dependencies,...R.devDependencies]),U=new Map([...C.dependencies,...C.devDependencies]);for(let[z,te]of U){let ae=G.stringifyIdent(te),le=L.get(z);le?le.range!==te.range&&r.push([4,`${ae} to ${le.range}`]):r.push([3,ae])}for(let[z,te]of L)U.has(z)||r.push([2,G.stringifyIdent(te)])}else if(h===0){let v=await Ut.fromFile(E);v.name?r.push([0,G.stringifyIdent(v.name)]):r.push([0,"a package"])}else if(h===1){let v=await OBe(t),{stdout:x}=await Ur.execvp("git",["show",`${v}:${I}`],{cwd:t,strict:!0}),C=await Ut.fromText(x);C.name?r.push([1,G.stringifyIdent(C.name)]):r.push([1,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:n}=await Ur.execvp("git",["log",`-${IDt}`,"--pretty=format:%s"],{cwd:t}),u=a===0?n.split(/\n/g).filter(h=>h!==""):[],A=L5(u);return M5(A,r)}var vDt={0:[" A ","?? "],4:[" M "],1:[" D "]},DDt={0:["A "],4:["M "],1:["D "]},UBe={async findRoot(t){return await R5(t,{marker:".git"})},async filterChanges(t,e,r,o){let{stdout:a}=await Ur.execvp("git",["status","-s"],{cwd:t,strict:!0}),n=a.toString().split(/\n/g),u=o?.staged?DDt:vDt;return[].concat(...n.map(p=>{if(p==="")return[];let h=p.slice(0,3),E=V.resolve(t,p.slice(3));if(!o?.staged&&h==="?? "&&p.endsWith("/"))return N5(E).map(I=>({action:0,path:I}));{let v=[0,4,1].find(x=>u[x].includes(h));return v!==void 0?[{action:v,path:E}]:[]}})).filter(p=>T5(p.path,{roots:e,names:r}))},async genCommitMessage(t,e){return await BDt(t,e)},async makeStage(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Ur.execvp("git",["add","--",...r],{cwd:t,strict:!0})},async makeCommit(t,e,r){let o=e.map(a=>ue.fromPortablePath(a.path));await Ur.execvp("git",["add","-N","--",...o],{cwd:t,strict:!0}),await Ur.execvp("git",["commit","-m",`${r} + +${wDt} +`,"--",...o],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Ur.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var PDt=[UBe],GC=class extends ut{constructor(){super(...arguments);this.commit=ge.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=ge.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=ge.Boolean("-u,--update",!1,{hidden:!0})}static{this.paths=[["stage"]]}static{this.usage=it.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd),{driver:a,root:n}=await bDt(o.cwd),u=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(I=>I.populateYarnPaths,o,I=>{u.push(I)});let A=new Set;for(let I of u)for(let v of SDt(n,I))A.add(v);let p=new Set([r.get("rcFilename"),dr.lockfile,dr.manifest]),h=await a.filterChanges(n,A,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E} +`);else for(let I of h)this.context.stdout.write(`${ue.fromPortablePath(I.path)} +`);else if(this.reset){let I=await a.filterChanges(n,A,p,{staged:!0});I.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,I)}else h.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,h,E):(await a.makeStage(n,h),this.context.stdout.write(E))}};async function bDt(t){let e=null,r=null;for(let o of PDt)if((r=await o.findRoot(t))!==null){e=o;break}if(e===null||r===null)throw new st("No stage driver has been found for your current project");return{driver:e,root:r}}function SDt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let o;try{o=oe.statSync(e)}catch{break}if(o.isSymbolicLink())e=V.resolve(V.dirname(e),oe.readlinkSync(e));else break}return r}var xDt={commands:[GC]},kDt=xDt;var U5={};Vt(U5,{default:()=>ODt});Ge();Ge();Pt();var qBe=Ze(Jn());Ge();var _Be=Ze(YH()),QDt="e8e1bd300d860104bb8c58453ffa1eb4",FDt="OFCNCOG2CU",HBe=async(t,e)=>{let r=G.stringifyIdent(t),a=RDt(e).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}},RDt=t=>(0,_Be.default)(FDt,QDt,{requester:{async send(r){try{let o=await sn.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:o.body,isTimedOut:!1,status:o.statusCode}}catch(o){return{content:o.response.body,isTimedOut:!1,status:o.response.statusCode}}}}});var jBe=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,TDt=async(t,e,r,o)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??(oe.existsSync(V.join(t.cwd,"tsconfig.json"))||oe.existsSync(V.join(a.cwd,"tsconfig.json")))))return;let A=n.makeResolver(),p={project:a,resolver:A,report:new ki};if(!await HBe(r,n))return;let E=jBe(r),I=G.parseRange(r.range).selector;if(!Lr.validRange(I)){let L=n.normalizeDependency(r),U=await A.getCandidates(L,{},p);I=G.parseRange(U[0].reference).selector}let v=qBe.default.coerce(I);if(v===null)return;let x=`${Zc.Modifier.CARET}${v.major}`,C=G.makeDescriptor(G.makeIdent("types",E),x),R=He.mapAndFind(a.workspaces,L=>{let U=L.manifest.dependencies.get(r.identHash)?.descriptorHash,z=L.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&z!==r.descriptorHash)return He.mapAndFind.skip;let te=[];for(let ae of Ut.allDependencies){let le=L.manifest[ae].get(C.identHash);typeof le>"u"||te.push([ae,le])}return te.length===0?He.mapAndFind.skip:te});if(typeof R<"u")for(let[L,U]of R)t.manifest[L].set(U.identHash,U);else{try{let L=n.normalizeDependency(C);if((await A.getCandidates(L,{},p)).length===0)return}catch{return}t.manifest[Zc.Target.DEVELOPMENT].set(C.identHash,C)}},NDt=async(t,e,r)=>{if(r.scope==="types")return;let{project:o}=t,{configuration:a}=o;if(!(a.get("tsEnableAutoTypes")??(oe.existsSync(V.join(t.cwd,"tsconfig.json"))||oe.existsSync(V.join(o.cwd,"tsconfig.json")))))return;let u=jBe(r),A=G.makeIdent("types",u);for(let p of Ut.allDependencies)typeof t.manifest[p].get(A.identHash)>"u"||t.manifest[p].delete(A.identHash)},LDt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},MDt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:TDt,afterWorkspaceDependencyRemoval:NDt,beforeWorkspacePacking:LDt}},ODt=MDt;var G5={};Vt(G5,{VersionApplyCommand:()=>zC,VersionCheckCommand:()=>JC,VersionCommand:()=>XC,default:()=>nPt,versionUtils:()=>VC});Ge();Ge();qt();var VC={};Vt(VC,{Decision:()=>WC,applyPrerelease:()=>zBe,applyReleases:()=>j5,applyStrategy:()=>XQ,clearVersionFiles:()=>_5,getUndecidedDependentWorkspaces:()=>Pv,getUndecidedWorkspaces:()=>JQ,openVersionFile:()=>KC,requireMoreDecisions:()=>ePt,resolveVersionFiles:()=>Dv,suggestStrategy:()=>q5,updateVersionFiles:()=>H5,validateReleaseDecision:()=>YC});Ge();Pt();Nl();qt();var VBe=Ze(KBe()),BA=Ze(Jn()),$Dt=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,WC=(u=>(u.UNDECIDED="undecided",u.DECLINE="decline",u.MAJOR="major",u.MINOR="minor",u.PATCH="patch",u.PRERELEASE="prerelease",u))(WC||{});function YC(t){let e=BA.default.valid(t);return e||He.validateEnum((0,VBe.default)(WC,"UNDECIDED"),t)}async function Dv(t,{prerelease:e=null}={}){let r=new Map,o=t.configuration.get("deferredVersionFolder");if(!oe.existsSync(o))return r;let a=await oe.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=V.join(o,n),A=await oe.readFilePromise(u,"utf8"),p=Ki(A);for(let[h,E]of Object.entries(p.releases||{})){if(E==="decline")continue;let I=G.parseIdent(h),v=t.tryWorkspaceByIdent(I);if(v===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${V.basename(u)} references ${h})`);if(v.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${G.prettyLocator(t.configuration,v.anchoredLocator)})`);let x=v.manifest.raw.stableVersion??v.manifest.version,C=r.get(v),R=XQ(x,YC(E));if(R===null)throw new Error(`Assertion failed: Expected ${x} to support being bumped via strategy ${E}`);let L=typeof C<"u"?BA.default.gt(R,C)?R:C:R;r.set(v,L)}}return e&&(r=new Map([...r].map(([n,u])=>[n,zBe(u,{current:n.manifest.version,prerelease:e})]))),r}async function _5(t){let e=t.configuration.get("deferredVersionFolder");oe.existsSync(e)&&await oe.removePromise(e)}async function H5(t,e){let r=new Set(e),o=t.configuration.get("deferredVersionFolder");if(!oe.existsSync(o))return;let a=await oe.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=V.join(o,n),A=await oe.readFilePromise(u,"utf8"),p=Ki(A),h=p?.releases;if(h){for(let E of Object.keys(h)){let I=G.parseIdent(E),v=t.tryWorkspaceByIdent(I);(v===null||r.has(v))&&delete p.releases[E]}Object.keys(p.releases).length>0?await oe.changeFilePromise(u,Da(new Da.PreserveOrdering(p))):await oe.unlinkPromise(u)}}}async function KC(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new st("This command can only be run from within a Yarn project");let o=await ia.fetchRoot(r.projectCwd),a=o!==null?await ia.fetchBase(o,{baseRefs:r.get("changesetBaseRefs")}):null,n=o!==null?await ia.fetchChangedFiles(o,{base:a.hash,project:t}):[],u=r.get("deferredVersionFolder"),A=n.filter(x=>V.contains(u,x)!==null);if(A.length>1)throw new st(`Your current branch contains multiple versioning files; this isn't supported: +- ${A.map(x=>ue.fromPortablePath(x)).join(` +- `)}`);let p=new Set(He.mapAndFilter(n,x=>{let C=t.tryWorkspaceByFilePath(x);return C===null?He.mapAndFilter.skip:C}));if(A.length===0&&p.size===0&&!e)return null;let h=A.length===1?A[0]:V.join(u,`${wn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=oe.existsSync(h)?await oe.readFilePromise(h,"utf8"):"{}",I=Ki(E),v=new Map;for(let x of I.declined||[]){let C=G.parseIdent(x),R=t.getWorkspaceByIdent(C);v.set(R,"decline")}for(let[x,C]of Object.entries(I.releases||{})){let R=G.parseIdent(x),L=t.getWorkspaceByIdent(R);v.set(L,YC(C))}return{project:t,root:o,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(x=>x.manifest.version!==null)),releases:v,async saveAll(){let x={},C=[],R=[];for(let L of t.workspaces){if(L.manifest.version===null)continue;let U=G.stringifyIdent(L.anchoredLocator),z=v.get(L);z==="decline"?C.push(U):typeof z<"u"?x[U]=YC(z):p.has(L)&&R.push(U)}await oe.mkdirPromise(V.dirname(h),{recursive:!0}),await oe.changeFilePromise(h,Da(new Da.PreserveOrdering({releases:Object.keys(x).length>0?x:void 0,declined:C.length>0?C:void 0,undecided:R.length>0?R:void 0})))}}}function ePt(t){return JQ(t).size>0||Pv(t).length>0}function JQ(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function Pv(t,{include:e=new Set}={}){let r=[],o=new Map(He.mapAndFilter([...t.releases],([n,u])=>u==="decline"?He.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(He.mapAndFilter([...t.releases],([n,u])=>u!=="decline"?He.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||o.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let u of Ut.hardDependencies)for(let A of n.manifest.getForScope(u).values()){let p=t.project.tryWorkspaceByDescriptor(A);p!==null&&o.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function q5(t,e){let r=BA.default.clean(e);for(let o of Object.values(WC))if(o!=="undecided"&&o!=="decline"&&BA.default.inc(t,o)===r)return o;return null}function XQ(t,e){if(BA.default.valid(e))return e;if(t===null)throw new st(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!BA.default.valid(t))throw new st(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);let r=BA.default.inc(t,e);if(r===null)throw new st(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return r}function j5(t,e,{report:r}){let o=new Map;for(let a of t.workspaces)for(let n of Ut.allDependencies)for(let u of a.manifest[n].values()){let A=t.tryWorkspaceByDescriptor(u);if(A===null||!e.has(A))continue;He.getArrayWithDefault(o,A).push([a,n,u.identHash])}for(let[a,n]of e){let u=a.manifest.version;a.manifest.version=n,BA.default.prerelease(n)===null?delete a.manifest.raw.stableVersion:a.manifest.raw.stableVersion||(a.manifest.raw.stableVersion=u);let A=a.manifest.name!==null?G.stringifyIdent(a.manifest.name):null;r.reportInfo(0,`${G.prettyLocator(t.configuration,a.anchoredLocator)}: Bumped to ${n}`),r.reportJson({cwd:ue.fromPortablePath(a.cwd),ident:A,oldVersion:u,newVersion:n});let p=o.get(a);if(!(typeof p>"u"))for(let[h,E,I]of p){let v=h.manifest[E].get(I);if(typeof v>"u")throw new Error("Assertion failed: The dependency should have existed");let x=v.range,C=!1;if(x.startsWith(ei.protocol)&&(x=x.slice(ei.protocol.length),C=!0,x===a.relativeCwd))continue;let R=x.match($Dt);if(!R){r.reportWarning(0,`Couldn't auto-upgrade range ${x} (in ${G.prettyLocator(t.configuration,h.anchoredLocator)})`);continue}let L=`${R[1]}${n}`;C&&(L=`${ei.protocol}${L}`);let U=G.makeDescriptor(v,L);h.manifest[E].set(I,U)}}}var tPt=new Map([["%n",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function zBe(t,{current:e,prerelease:r}){let o=new BA.default.SemVer(e),a=o.prerelease.slice(),n=[];o.prerelease=[],o.format()!==t&&(a.length=0);let u=!0,A=r.split(/\./g);for(let p of A){let h=tPt.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():u=!1;else{let E=u?h.extract(a):null;E!==null&&typeof E[0]=="number"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),u=!1)}}return o.prerelease&&(o.prerelease=[]),`${t}-${n.join(".")}`}var zC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=ge.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=ge.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.recursive=ge.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["version","apply"]]}static{this.usage=it.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` + This command will apply the deferred version changes and remove their definitions from the repository. + + Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%n\`) will be used on all new versions and the version definitions will be kept as-is. + + By default only the current workspace will be bumped, but you can configure this behavior by using one of: + + - \`--recursive\` to also apply the version bump on its dependencies + - \`--all\` to apply the version bump on all packages in the repository + + Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. + `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await Dv(o,{prerelease:p}),E=new Map;if(this.all)E=h;else{let I=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let v of I){let x=h.get(v);typeof x<"u"&&E.set(v,x)}}if(E.size===0){let I=h.size>0?" Did you want to add --all?":"";A.reportWarning(0,`The current workspace doesn't seem to require a version bump.${I}`);return}j5(o,E,{report:A}),this.dryRun||(p||(this.all?await _5(o):await H5(o,[...E.keys()])),A.reportSeparator())});return this.dryRun||u.hasErrors()?u.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};Ge();Pt();qt();var ZQ=Ze(Jn());var JC=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}static{this.paths=[["version","check"]]}static{this.usage=it.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){GE(this.context);let{Gem:r}=await Promise.resolve().then(()=>(Zk(),Eq)),{ScrollableItems:o}=await Promise.resolve().then(()=>(rQ(),tQ)),{FocusRequest:a}=await Promise.resolve().then(()=>(wq(),$we)),{useListInput:n}=await Promise.resolve().then(()=>(eQ(),eIe)),{renderForm:u}=await Promise.resolve().then(()=>(oQ(),sQ)),{Box:A,Text:p}=await Promise.resolve().then(()=>Ze(ic())),{default:h,useCallback:E,useState:I}=await Promise.resolve().then(()=>Ze(an())),v=await Ke.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await kt.find(v,this.context.cwd);if(!C)throw new sr(x.cwd,this.context.cwd);await x.restoreInstallState();let R=await KC(x);if(R===null||R.releaseRoots.size===0)return 0;if(R.root===null)throw new st("This command can only be run on Git repositories");let L=()=>h.createElement(A,{flexDirection:"row",paddingBottom:1},h.createElement(A,{flexDirection:"column",width:60},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to save.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),U=({workspace:Ce,active:de,decision:Be,setDecision:Ee})=>{let g=Ce.manifest.raw.stableVersion??Ce.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${G.prettyLocator(v,Ce.anchoredLocator)})`);if(ZQ.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let me=["undecided","decline","patch","minor","major"];n(Be,me,{active:de,minus:"left",plus:"right",set:Ee});let we=Be==="undecided"?h.createElement(p,{color:"yellow"},g):Be==="decline"?h.createElement(p,{color:"green"},g):h.createElement(p,null,h.createElement(p,{color:"magenta"},g)," \u2192 ",h.createElement(p,{color:"green"},ZQ.default.valid(Be)?Be:ZQ.default.inc(g,Be)));return h.createElement(A,{flexDirection:"column"},h.createElement(A,null,h.createElement(p,null,G.prettyLocator(v,Ce.anchoredLocator)," - ",we)),h.createElement(A,null,me.map(Ae=>h.createElement(A,{key:Ae,paddingLeft:2},h.createElement(p,null,h.createElement(r,{active:Ae===Be})," ",Ae)))))},z=Ce=>{let de=new Set(R.releaseRoots),Be=new Map([...Ce].filter(([Ee])=>de.has(Ee)));for(;;){let Ee=Pv({project:R.project,releases:Be}),g=!1;if(Ee.length>0){for(let[me]of Ee)if(!de.has(me)){de.add(me),g=!0;let we=Ce.get(me);typeof we<"u"&&Be.set(me,we)}}if(!g)break}return{relevantWorkspaces:de,relevantReleases:Be}},te=()=>{let[Ce,de]=I(()=>new Map(R.releases)),Be=E((Ee,g)=>{let me=new Map(Ce);g!=="undecided"?me.set(Ee,g):me.delete(Ee);let{relevantReleases:we}=z(me);de(we)},[Ce,de]);return[Ce,Be]},ae=({workspaces:Ce,releases:de})=>{let Be=[];Be.push(`${Ce.size} total`);let Ee=0,g=0;for(let me of Ce){let we=de.get(me);typeof we>"u"?g+=1:we!=="decline"&&(Ee+=1)}return Be.push(`${Ee} release${Ee===1?"":"s"}`),Be.push(`${g} remaining`),h.createElement(p,{color:"yellow"},Be.join(", "))},ce=await u(({useSubmit:Ce})=>{let[de,Be]=te();Ce(de);let{relevantWorkspaces:Ee}=z(de),g=new Set([...Ee].filter(ne=>!R.releaseRoots.has(ne))),[me,we]=I(0),Ae=E(ne=>{switch(ne){case a.BEFORE:we(me-1);break;case a.AFTER:we(me+1);break}},[me,we]);return h.createElement(A,{flexDirection:"column"},h.createElement(L,null),h.createElement(A,null,h.createElement(p,{wrap:"wrap"},"The following files have been modified in your local checkout.")),h.createElement(A,{flexDirection:"column",marginTop:1,paddingLeft:2},[...R.changedFiles].map(ne=>h.createElement(A,{key:ne},h.createElement(p,null,h.createElement(p,{color:"grey"},ue.fromPortablePath(R.root)),ue.sep,ue.relative(ue.fromPortablePath(R.root),ue.fromPortablePath(ne)))))),R.releaseRoots.size>0&&h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),g.size>3?h.createElement(A,{marginTop:1},h.createElement(ae,{workspaces:R.releaseRoots,releases:de})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:me%2===0,radius:1,size:2,onFocusRequest:Ae},[...R.releaseRoots].map(ne=>h.createElement(U,{key:ne.cwd,workspace:ne,decision:de.get(ne)||"undecided",setDecision:Z=>Be(ne,Z)}))))),g.size>0?h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),h.createElement(A,null,h.createElement(p,null,"(Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),g.size>5?h.createElement(A,{marginTop:1},h.createElement(ae,{workspaces:g,releases:de})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:me%2===1,radius:2,size:2,onFocusRequest:Ae},[...g].map(ne=>h.createElement(U,{key:ne.cwd,workspace:ne,decision:de.get(ne)||"undecided",setDecision:Z=>Be(ne,Z)}))))):null)},{versionFile:R},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ce>"u")return 1;R.releases.clear();for(let[Ce,de]of ce)R.releases.set(Ce,de);await R.saveAll()}async executeStandard(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);return await o.restoreInstallState(),(await Rt.start({configuration:r,stdout:this.context.stdout},async u=>{let A=await KC(o);if(A===null||A.releaseRoots.size===0)return;if(A.root===null)throw new st("This command can only be run on Git repositories");if(u.reportInfo(0,`Your PR was started right after ${pe.pretty(r,A.baseHash.slice(0,7),"yellow")} ${pe.pretty(r,A.baseTitle,"magenta")}`),A.changedFiles.size>0){u.reportInfo(0,"You have changed the following files since then:"),u.reportSeparator();for(let v of A.changedFiles)u.reportInfo(null,`${pe.pretty(r,ue.fromPortablePath(A.root),"gray")}${ue.sep}${ue.relative(ue.fromPortablePath(A.root),ue.fromPortablePath(v))}`)}let p=!1,h=!1,E=JQ(A);if(E.size>0){p||u.reportSeparator();for(let v of E)u.reportError(0,`${G.prettyLocator(r,v.anchoredLocator)} has been modified but doesn't have a release strategy attached`);p=!0}let I=Pv(A);for(let[v,x]of I)h||u.reportSeparator(),u.reportError(0,`${G.prettyLocator(r,v.anchoredLocator)} doesn't have a release strategy attached, but depends on ${G.prettyWorkspace(r,x)} which is planned for release.`),h=!0;(p||h)&&(u.reportSeparator(),u.reportInfo(0,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),u.reportInfo(0,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};Ge();qt();var $Q=Ze(Jn());var XC=class extends ut{constructor(){super(...arguments);this.deferred=ge.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=ge.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=ge.String()}static{this.paths=[["version"]]}static{this.usage=it.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);let n=r.get("preferDeferredVersions");this.deferred&&(n=!0),this.immediate&&(n=!1);let u=$Q.default.valid(this.strategy),A=this.strategy==="decline",p;if(u)if(a.manifest.version!==null){let E=q5(a.manifest.version,this.strategy);E!==null?p=E:p=this.strategy}else p=this.strategy;else{let E=a.manifest.version;if(!A){if(E===null)throw new st("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof E!="string"||!$Q.default.valid(E))throw new st(`Can't bump the version (${E}) if it's not valid semver`)}p=YC(this.strategy)}if(!n){let I=(await Dv(o)).get(a);if(typeof I<"u"&&p!=="decline"){let v=XQ(a.manifest.version,p);if($Q.default.lt(v,I))throw new st(`Can't bump the version to one that would be lower than the current deferred one (${I})`)}}let h=await KC(o,{allowEmpty:!0});return h.releases.set(a,p),await h.saveAll(),n?0:await this.cli.run(["version","apply"])}};var rPt={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:"ABSOLUTE_PATH",default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:"BOOLEAN",default:!1}},commands:[zC,JC,XC]},nPt=rPt;var Y5={};Vt(Y5,{WorkspacesFocusCommand:()=>ZC,WorkspacesForeachCommand:()=>ew,default:()=>oPt});Ge();Ge();qt();var ZC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=ge.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=ge.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=ge.Rest()}static{this.paths=[["workspaces","focus"]]}static{this.usage=it.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);await o.restoreInstallState({restoreResolutions:!1});let u;if(this.all)u=new Set(o.workspaces);else if(this.workspaces.length===0){if(!a)throw new sr(o.cwd,this.context.cwd);u=new Set([a])}else u=new Set(this.workspaces.map(A=>o.getWorkspaceByIdent(G.parseIdent(A))));for(let A of u)for(let p of this.production?["dependencies"]:Ut.hardDependencies)for(let h of A.manifest.getForScope(p).values()){let E=o.tryWorkspaceByDescriptor(h);E!==null&&u.add(E)}for(let A of o.workspaces)u.has(A)?this.production&&A.manifest.devDependencies.clear():(A.manifest.installConfig=A.manifest.installConfig||{},A.manifest.installConfig.selfReferences=!1,A.manifest.dependencies.clear(),A.manifest.devDependencies.clear(),A.manifest.peerDependencies.clear(),A.manifest.scripts.clear());return await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,persistProject:!1})}};Ge();Ge();Ge();qt();var $C=Ze($o()),XBe=Ze(eg());el();var ew=class extends ut{constructor(){super(...arguments);this.from=ge.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"});this.all=ge.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"});this.recursive=ge.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"});this.worktree=ge.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"});this.verbose=ge.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"});this.parallel=ge.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=ge.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=ge.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:IT([Js(["unlimited"]),jw(wT(),[vT(),BT(1)])])});this.topological=ge.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=ge.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=ge.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"});this.exclude=ge.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"});this.publicOnly=ge.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.dryRun=ge.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"});this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["workspaces","foreach"]]}static{this.usage=it.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]})}static{this.schema=[Yw("all",Yu.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),DT(["all","recursive","since","worktree"],{missingIf:"undefined"})]}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!this.all&&!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=this.cli.process([this.commandName,...this.args]),u=n.path.length===1&&n.path[0]==="run"&&typeof n.scriptName<"u"?n.scriptName:null;if(n.path.length===0)throw new st("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let A=Ee=>{this.dryRun&&this.context.stdout.write(`${Ee} +`)},p=()=>{let Ee=this.from.map(g=>$C.default.matcher(g));return o.workspaces.filter(g=>{let me=G.stringifyIdent(g.anchoredLocator),we=g.relativeCwd;return Ee.some(Ae=>Ae(me)||Ae(we))})},h=[];if(this.since?(A("Option --since is set; selecting the changed workspaces as root for workspace selection"),h=Array.from(await ia.fetchChangedWorkspaces({ref:this.since,project:o}))):this.from?(A("Option --from is set; selecting the specified workspaces"),h=[...p()]):this.worktree?(A("Option --worktree is set; selecting the current workspace"),h=[a]):this.recursive?(A("Option --recursive is set; selecting the current workspace"),h=[a]):this.all&&(A("Option --all is set; selecting all workspaces"),h=[...o.workspaces]),this.dryRun&&!this.all){for(let Ee of h)A(` +- ${Ee.relativeCwd} + ${G.prettyLocator(r,Ee.anchoredLocator)}`);h.length>0&&A("")}let E;if(this.recursive?this.since?(A("Option --recursive --since is set; recursively selecting all dependent workspaces"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependents()]).flat())):(A("Option --recursive is set; recursively selecting all transitive dependencies"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(A("Option --worktree is set; recursively selecting all nested workspaces"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceChildren()]).flat())):E=null,E!==null&&(h=[...new Set([...h,...E])],this.dryRun))for(let Ee of E)A(` +- ${Ee.relativeCwd} + ${G.prettyLocator(r,Ee.anchoredLocator)}`);let I=[],v=!1;if(u?.includes(":")){for(let Ee of o.workspaces)if(Ee.manifest.scripts.has(u)&&(v=!v,v===!1))break}for(let Ee of h){if(u&&!Ee.manifest.scripts.has(u)&&!v&&!(await An.getWorkspaceAccessibleBinaries(Ee)).has(u)){A(`Excluding ${Ee.relativeCwd} because it doesn't have a "${u}" script`);continue}if(!(u===r.env.npm_lifecycle_event&&Ee.cwd===a.cwd)){if(this.include.length>0&&!$C.default.isMatch(G.stringifyIdent(Ee.anchoredLocator),this.include)&&!$C.default.isMatch(Ee.relativeCwd,this.include)){A(`Excluding ${Ee.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&($C.default.isMatch(G.stringifyIdent(Ee.anchoredLocator),this.exclude)||$C.default.isMatch(Ee.relativeCwd,this.exclude))){A(`Excluding ${Ee.relativeCwd} because it matches the --include filter`);continue}if(this.publicOnly&&Ee.manifest.private===!0){A(`Excluding ${Ee.relativeCwd} because it's a private workspace and --no-private was set`);continue}I.push(Ee)}}if(this.dryRun)return 0;let x=this.verbose??(this.context.stdout.isTTY?1/0:0),C=x>0,R=x>1,L=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(Xi.availableParallelism()/2):1,U=L===1?!1:this.parallel,z=U?this.interlaced:!0,te=(0,XBe.default)(L),ae=new Map,le=new Set,ce=0,Ce=null,de=!1,Be=await Rt.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async Ee=>{let g=async(me,{commandIndex:we})=>{if(de)return-1;!U&&R&&we>1&&Ee.reportSeparator();let Ae=iPt(me,{configuration:r,label:C,commandIndex:we}),[ne,Z]=JBe(Ee,{prefix:Ae,interlaced:z}),[xe,Ne]=JBe(Ee,{prefix:Ae,interlaced:z});try{R&&Ee.reportInfo(null,`${Ae?`${Ae} `:""}Process started`);let ht=Date.now(),H=await this.cli.run([this.commandName,...this.args],{cwd:me.cwd,stdout:ne,stderr:xe})||0;ne.end(),xe.end(),await Z,await Ne;let rt=Date.now();if(R){let Te=r.get("enableTimers")?`, completed in ${pe.pretty(r,rt-ht,pe.Type.DURATION)}`:"";Ee.reportInfo(null,`${Ae?`${Ae} `:""}Process exited (exit code ${H})${Te}`)}return H===130&&(de=!0,Ce=H),H}catch(ht){throw ne.end(),xe.end(),await Z,await Ne,ht}};for(let me of I)ae.set(me.anchoredLocator.locatorHash,me);for(;ae.size>0&&!Ee.hasErrors();){let me=[];for(let[ne,Z]of ae){if(le.has(Z.anchoredDescriptor.descriptorHash))continue;let xe=!0;if(this.topological||this.topologicalDev){let Ne=this.topologicalDev?new Map([...Z.manifest.dependencies,...Z.manifest.devDependencies]):Z.manifest.dependencies;for(let ht of Ne.values()){let H=o.tryWorkspaceByDescriptor(ht);if(xe=H===null||!ae.has(H.anchoredLocator.locatorHash),!xe)break}}if(xe&&(le.add(Z.anchoredDescriptor.descriptorHash),me.push(te(async()=>{let Ne=await g(Z,{commandIndex:++ce});return ae.delete(ne),le.delete(Z.anchoredDescriptor.descriptorHash),Ne})),!U))break}if(me.length===0){let ne=Array.from(ae.values()).map(Z=>G.prettyLocator(r,Z.anchoredLocator)).join(", ");Ee.reportError(3,`Dependency cycle detected (${ne})`);return}let Ae=(await Promise.all(me)).find(ne=>ne!==0);Ce===null&&(Ce=typeof Ae<"u"?1:Ce),(this.topological||this.topologicalDev)&&typeof Ae<"u"&&Ee.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return Ce!==null?Ce:Be.exitCode()}};function JBe(t,{prefix:e,interlaced:r}){let o=t.createStreamReporter(e),a=new He.DefaultStream;a.pipe(o,{end:!1}),a.on("finish",()=>{o.end()});let n=new Promise(A=>{o.on("finish",()=>{A(a.active)})});if(r)return[a,n];let u=new He.BufferStream;return u.pipe(a,{end:!1}),u.on("finish",()=>{a.end()}),[u,n]}function iPt(t,{configuration:e,commandIndex:r,label:o}){if(!o)return null;let n=`[${G.stringifyIdent(t.anchoredLocator)}]:`,u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[r%u.length];return pe.pretty(e,n,A)}var sPt={commands:[ZC,ew]},oPt=sPt;var Hy=()=>({modules:new Map([["@yarnpkg/cli",W1],["@yarnpkg/core",Y1],["@yarnpkg/fslib",kw],["@yarnpkg/libzip",p1],["@yarnpkg/parsers",Ow],["@yarnpkg/shell",E1],["clipanion",Jw],["semver",aPt],["typanion",Vo],["@yarnpkg/plugin-essentials",K8],["@yarnpkg/plugin-compat",Z8],["@yarnpkg/plugin-constraints",dH],["@yarnpkg/plugin-dlx",mH],["@yarnpkg/plugin-exec",CH],["@yarnpkg/plugin-file",IH],["@yarnpkg/plugin-git",W8],["@yarnpkg/plugin-github",DH],["@yarnpkg/plugin-http",PH],["@yarnpkg/plugin-init",bH],["@yarnpkg/plugin-interactive-tools",kq],["@yarnpkg/plugin-link",Qq],["@yarnpkg/plugin-nm",hj],["@yarnpkg/plugin-npm",f5],["@yarnpkg/plugin-npm-cli",w5],["@yarnpkg/plugin-pack",a5],["@yarnpkg/plugin-patch",S5],["@yarnpkg/plugin-pnp",rj],["@yarnpkg/plugin-pnpm",Q5],["@yarnpkg/plugin-stage",O5],["@yarnpkg/plugin-typescript",U5],["@yarnpkg/plugin-version",G5],["@yarnpkg/plugin-workspace-tools",Y5]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"])});function eve({cwd:t,pluginConfiguration:e}){let r=new Jo({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:nn??""});return Object.assign(r,{defaultContext:{...Jo.defaultContext,cwd:t,plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function lPt(t){if(He.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,o=">=18.12.0";if(Lr.satisfiesWithPrereleases(r,o))return!0;let a=new st(`This tool requires a Node version compatible with ${o} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return Jo.defaultContext.stdout.write(t.error(a)),!1}async function tve({selfPath:t,pluginConfiguration:e}){return await Ke.find(ue.toPortablePath(process.cwd()),e,{strict:!1,usePathCheck:t})}function cPt(t,e,{yarnPath:r}){if(!oe.existsSync(r))return t.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let o={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,ZBe.execFileSync)(process.execPath,[ue.fromPortablePath(r),...e],o)}catch(a){return a.status??1}return 0}function uPt(t,e){let r=null,o=e;return e.length>=2&&e[0]==="--cwd"?(r=ue.toPortablePath(e[1]),o=e.slice(2)):e.length>=1&&e[0].startsWith("--cwd=")?(r=ue.toPortablePath(e[0].slice(6)),o=e.slice(1)):e[0]==="add"&&e[e.length-2]==="--cwd"&&(r=ue.toPortablePath(e[e.length-1]),o=e.slice(0,e.length-2)),t.defaultContext.cwd=r!==null?V.resolve(r):V.cwd(),o}function APt(t,{configuration:e}){if(!e.get("enableTelemetry")||$Be.isCI||!process.stdout.isTTY)return;Ke.telemetry=new Oy(e,"puba9cdc10ec5790a2cf4969dd413a47270");let o=/^@yarnpkg\/plugin-(.*)$/;for(let a of e.plugins.keys())Uy.has(a.match(o)?.[1]??"")&&Ke.telemetry?.reportPluginName(a);t.binaryVersion&&Ke.telemetry.reportVersion(t.binaryVersion)}function rve(t,{configuration:e}){for(let r of e.plugins.values())for(let o of r.commands||[])t.register(o)}async function fPt(t,e,{selfPath:r,pluginConfiguration:o}){if(!lPt(t))return 1;let a=await tve({selfPath:r,pluginConfiguration:o}),n=a.get("yarnPath"),u=a.get("ignorePath");if(n&&!u)return cPt(t,e,{yarnPath:n});delete process.env.YARN_IGNORE_PATH;let A=uPt(t,e);APt(t,{configuration:a}),rve(t,{configuration:a});let p=t.process(A,t.defaultContext);return p.help||Ke.telemetry?.reportCommandName(p.path.join(" ")),await t.run(p,t.defaultContext)}async function ihe({cwd:t=V.cwd(),pluginConfiguration:e=Hy()}={}){let r=eve({cwd:t,pluginConfiguration:e}),o=await tve({pluginConfiguration:e,selfPath:null});return rve(r,{configuration:o}),r}async function Wx(t,{cwd:e=V.cwd(),selfPath:r,pluginConfiguration:o}){let a=eve({cwd:e,pluginConfiguration:o});function n(){Jo.defaultContext.stdout.write(`ERROR: Yarn is terminating due to an unexpected empty event loop. +Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",n);try{process.exitCode=42,process.exitCode=await fPt(a,t,{selfPath:r,pluginConfiguration:o})}catch(u){Jo.defaultContext.stdout.write(a.error(u)),process.exitCode=1}finally{process.off("beforeExit",n),await oe.rmtempPromise()}}Wx(process.argv.slice(2),{cwd:V.cwd(),selfPath:ue.toPortablePath(ue.resolve(process.argv[1])),pluginConfiguration:Hy()});})(); +/** + @license + Copyright (c) 2015, Rebecca Turner + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + */ +/** + @license + Copyright Node.js contributors. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. +*/ +/** + @license + The MIT License (MIT) + + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ +/** + @license + Copyright Joyent, Inc. and other Node contributors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +/*! Bundled license information: + +is-number/index.js: + (*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + *) + +to-regex-range/index.js: + (*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + *) + +fill-range/index.js: + (*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + *) + +is-extglob/index.js: + (*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + *) + +is-glob/index.js: + (*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + *) + +queue-microtask/index.js: + (*! queue-microtask. MIT License. Feross Aboukhadijeh *) + +run-parallel/index.js: + (*! run-parallel. MIT License. Feross Aboukhadijeh *) + +git-url-parse/lib/index.js: + (*! + * buildToken + * Builds OAuth token prefix (helper function) + * + * @name buildToken + * @function + * @param {GitUrl} obj The parsed Git url object. + * @return {String} token prefix + *) + +object-assign/index.js: + (* + object-assign + (c) Sindre Sorhus + @license MIT + *) + +react/cjs/react.production.min.js: + (** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +scheduler/cjs/scheduler.production.min.js: + (** @license React v0.18.0 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +react-reconciler/cjs/react-reconciler.production.min.js: + (** @license React v0.24.0 + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +is-windows/index.js: + (*! + * is-windows + * + * Copyright © 2015-2018, Jon Schlinkert. + * Released under the MIT License. + *) +*/ diff --git a/chopsticks/README.md b/chopsticks/README.md new file mode 100644 index 000000000..663b97fa6 --- /dev/null +++ b/chopsticks/README.md @@ -0,0 +1,33 @@ +# KILT Chopsticks utilities + +This project contains setup code to spawn [Chopsticks](https://github.com/AcalaNetwork/chopsticks)-based deployments for both Spiritnet and Peregrine runtimes. + +## How to spawn + +First, `cd` into the `chipsticks` folder and run first `nvm use` to configure the right Node version, and then `yarn` to install any Node dependencies. + +To spin up a deployment using the actual state currently on Spiritnet or Peregrine, run either `yarn peregrine:spawn` or `yarn spiritnet:spawn`. + +### Add customizations + +By default, the config for each chain specifies only the endpoint to fetch the state from and the path to store the db folder. + +Any additional information, such as storage or WASM overrides, or port number specifications, can be specified using the same YAML format in each folder's `extra.yaml` file. +These files are not tracked by git and are specific for each user's machine. +If a chain does not include an `extra.yaml` file, the default config specified in the chain's `config.yaml` file will be used. + +A list of example configurations is given in the [examples](./examples/) folder. + +So, if for example the sudo key for the Peregrine network must be overridden, follow these steps: + +1. Create the file `runtimes/peregrine/kilt/extra.yaml`. +2. Copy the content of [`storage.example.yaml`](./examples/storage.example.yaml) into `runtimes/peregrine/kilt/extra.yaml`. +3. From within the `chopsticks` directory run `yarn peregrine:spawn`. + +This process can be applied to every chain folder, also for multiple within the same environment, e.g., the sudo key for PILT and the sudo key for Paseo can be overridden by having two `extra.yaml` files within each folder. + +## How it works + +When spawning a network, a temporary file called `.tmp.yaml` will be generated within each chain's folder. +**THIS DOES NOT HAVE TO BE MANUALLY EDITED**, and it will be automatically cleaned up whenever the network spawning process is stopped. +If, for any reason, this should not be the case, you can run `yarn peregrine:cleanup` or `yarn spiritnet:cleanup` to clean up these temporary files. diff --git a/chopsticks/examples/complete.example.yaml b/chopsticks/examples/complete.example.yaml new file mode 100644 index 000000000..76c71a91e --- /dev/null +++ b/chopsticks/examples/complete.example.yaml @@ -0,0 +1,5 @@ +port: 50002 +wasm-override: ../../../target/debug/wbuild/spiritnet-runtime/spiritnet_runtime.wasm +import-storage: + Sudo: + Key: 15jSz35ugoWTc61xHPoxEkHte4o7UanKCk1gx1dizA8yuNs8 diff --git a/chopsticks/examples/port.example.yaml b/chopsticks/examples/port.example.yaml new file mode 100644 index 000000000..f072543ff --- /dev/null +++ b/chopsticks/examples/port.example.yaml @@ -0,0 +1 @@ +port: 50002 diff --git a/chopsticks/examples/storage.example.yaml b/chopsticks/examples/storage.example.yaml new file mode 100644 index 000000000..7197b9021 --- /dev/null +++ b/chopsticks/examples/storage.example.yaml @@ -0,0 +1,3 @@ +import-storage: + Sudo: + Key: 15jSz35ugoWTc61xHPoxEkHte4o7UanKCk1gx1dizA8yuNs8 diff --git a/chopsticks/examples/wasm.example.yaml b/chopsticks/examples/wasm.example.yaml new file mode 100644 index 000000000..72547b052 --- /dev/null +++ b/chopsticks/examples/wasm.example.yaml @@ -0,0 +1 @@ +wasm-override: ../../../target/debug/wbuild/spiritnet-runtime/spiritnet_runtime.wasm diff --git a/chopsticks/package.json b/chopsticks/package.json new file mode 100644 index 000000000..b5a1b4033 --- /dev/null +++ b/chopsticks/package.json @@ -0,0 +1,28 @@ +{ + "name": "@kiltprotocol/chopsticks-networks", + "license": "MIT", + "devDependencies": { + "@acala-network/chopsticks": "^0.15.0", + "@alexlafroscia/yaml-merge": "^4.1.0" + }, + "scripts": { + "internal:peregrine:relay-setup": "yarn yaml-merge runtimes/peregrine/relay/config.yaml runtimes/peregrine/relay/extra.yaml > runtimes/peregrine/relay/.tmp.yaml", + "internal:peregrine:relay-teardown": "rm runtimes/peregrine/relay/.tmp.yaml", + "internal:peregrine:kilt-setup": "yarn yaml-merge runtimes/peregrine/kilt/config.yaml runtimes/peregrine/kilt/extra.yaml > runtimes/peregrine/kilt/.tmp.yaml", + "internal:peregrine:kilt-teardown": "rm runtimes/peregrine/kilt/.tmp.yaml", + "internal:peregrine:ah-setup": "yarn yaml-merge runtimes/peregrine/ah/config.yaml runtimes/peregrine/ah/extra.yaml > runtimes/peregrine/ah/.tmp.yaml", + "internal:peregrine:ah-teardown": "rm runtimes/peregrine/ah/.tmp.yaml", + "internal:spiritnet:relay-setup": "yarn yaml-merge runtimes/spiritnet/relay/config.yaml runtimes/spiritnet/relay/extra.yaml > runtimes/spiritnet/relay/.tmp.yaml", + "internal:spiritnet:relay-teardown": "rm runtimes/spiritnet/relay/.tmp.yaml", + "internal:spiritnet:kilt-setup": "yarn yaml-merge runtimes/spiritnet/kilt/config.yaml runtimes/spiritnet/kilt/extra.yaml > runtimes/spiritnet/kilt/.tmp.yaml", + "internal:spiritnet:kilt-teardown": "rm runtimes/spiritnet/kilt/.tmp.yaml", + "internal:spiritnet:ah-setup": "yarn yaml-merge runtimes/spiritnet/ah/config.yaml runtimes/spiritnet/ah/extra.yaml > runtimes/spiritnet/ah/.tmp.yaml", + "internal:spiritnet:ah-teardown": "rm runtimes/spiritnet/ah/.tmp.yaml", + "pre:peregrine:spawn": "yarn internal:peregrine:relay-setup && yarn internal:peregrine:kilt-setup && yarn internal:peregrine:ah-setup", + "peregrine:spawn": "bash -c 'trap \"echo \"\"Cleaning up temporary resources. Please wait a few seconds...\"\" && yarn peregrine:cleanup\" SIGINT; yarn pre:peregrine:spawn && yarn chopsticks xcm -r runtimes/peregrine/relay/.tmp.yaml -p runtimes/peregrine/kilt/.tmp.yaml -p runtimes/peregrine/ah/.tmp.yaml'", + "peregrine:cleanup": "yarn internal:peregrine:relay-teardown && yarn internal:peregrine:kilt-teardown && yarn internal:peregrine:ah-teardown", + "pre:spiritnet:spawn": "yarn internal:spiritnet:relay-setup && yarn internal:spiritnet:kilt-setup && yarn internal:spiritnet:ah-setup", + "spiritnet:spawn": "bash -c 'trap \"echo \"\"Cleaning up temporary resources. Please wait a few seconds...\"\" && yarn spiritnet:cleanup\" SIGINT; yarn pre:spiritnet:spawn && yarn chopsticks xcm -r runtimes/spiritnet/relay/.tmp.yaml -p runtimes/spiritnet/kilt/.tmp.yaml -p runtimes/spiritnet/ah/.tmp.yaml'", + "spiritnet:cleanup": "yarn internal:spiritnet:relay-teardown && yarn internal:spiritnet:kilt-teardown && yarn internal:spiritnet:ah-teardown" + } +} diff --git a/chopsticks/runtimes/peregrine/ah/config.yaml b/chopsticks/runtimes/peregrine/ah/config.yaml new file mode 100644 index 000000000..b5d101cb0 --- /dev/null +++ b/chopsticks/runtimes/peregrine/ah/config.yaml @@ -0,0 +1,4 @@ +endpoint: + - wss://sys.ibp.network/asset-hub-paseo + - wss://asset-hub-paseo.dotters.network +db: db/peregrine/ah/db.sqlite diff --git a/chopsticks/runtimes/peregrine/kilt/config.yaml b/chopsticks/runtimes/peregrine/kilt/config.yaml new file mode 100644 index 000000000..a95d39453 --- /dev/null +++ b/chopsticks/runtimes/peregrine/kilt/config.yaml @@ -0,0 +1,3 @@ +endpoint: + - wss://peregrine.kilt.io +db: db/peregrine/kilt/db.sqlite diff --git a/chopsticks/runtimes/peregrine/relay/config.yaml b/chopsticks/runtimes/peregrine/relay/config.yaml new file mode 100644 index 000000000..4ff839c49 --- /dev/null +++ b/chopsticks/runtimes/peregrine/relay/config.yaml @@ -0,0 +1,4 @@ +endpoint: + - wss://rpc.ibp.network/paseo + - wss://paseo.dotters.network +db: db/peregrine/relay/db.sqlite diff --git a/chopsticks/runtimes/spiritnet/ah/config.yaml b/chopsticks/runtimes/spiritnet/ah/config.yaml new file mode 100644 index 000000000..590b4b9f9 --- /dev/null +++ b/chopsticks/runtimes/spiritnet/ah/config.yaml @@ -0,0 +1,4 @@ +endpoint: + - wss://sys.ibp.network/asset-hub-polkadot + - wss://asset-hub-polkadot.dotters.network +db: db/spiritnet/ah/db.sqlite diff --git a/chopsticks/runtimes/spiritnet/kilt/config.yaml b/chopsticks/runtimes/spiritnet/kilt/config.yaml new file mode 100644 index 000000000..f58221ac6 --- /dev/null +++ b/chopsticks/runtimes/spiritnet/kilt/config.yaml @@ -0,0 +1,3 @@ +endpoint: + - wss://spiritnet.kilt.io +db: db/spiritnet/kilt/db.sqlite diff --git a/chopsticks/runtimes/spiritnet/relay/config.yaml b/chopsticks/runtimes/spiritnet/relay/config.yaml new file mode 100644 index 000000000..bba0d2a3a --- /dev/null +++ b/chopsticks/runtimes/spiritnet/relay/config.yaml @@ -0,0 +1,4 @@ +endpoint: + - wss://rpc.ibp.network/polkadot + - wss://polkadot.dotters.network +db: db/spiritnet/relay/db.sqlite diff --git a/chopsticks/yarn.lock b/chopsticks/yarn.lock new file mode 100644 index 000000000..52c00d47c --- /dev/null +++ b/chopsticks/yarn.lock @@ -0,0 +1,3448 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@acala-network/chopsticks-core@npm:0.15.0": + version: 0.15.0 + resolution: "@acala-network/chopsticks-core@npm:0.15.0" + dependencies: + "@acala-network/chopsticks-executor": "npm:0.15.0" + "@polkadot/rpc-provider": "npm:^12.3.1" + "@polkadot/types": "npm:^12.3.1" + "@polkadot/types-codec": "npm:^12.3.1" + "@polkadot/types-known": "npm:^12.3.1" + "@polkadot/util": "npm:^13.0.2" + "@polkadot/util-crypto": "npm:^13.0.2" + comlink: "npm:^4.4.1" + eventemitter3: "npm:^5.0.1" + lodash: "npm:^4.17.21" + lru-cache: "npm:^10.2.0" + pino: "npm:^8.19.0" + pino-pretty: "npm:^11.0.0" + rxjs: "npm:^7.8.1" + zod: "npm:^3.22.4" + checksum: 10c0/43ca209f130d073cf91cf8799c4378570588393142c4345b29a1574b8cd3fc941ec4fd14aff61ff014a475b2b1e3ade4d7ce31fc564bfefa9ebe6e052174c102 + languageName: node + linkType: hard + +"@acala-network/chopsticks-db@npm:0.15.0": + version: 0.15.0 + resolution: "@acala-network/chopsticks-db@npm:0.15.0" + dependencies: + "@acala-network/chopsticks-core": "npm:0.15.0" + "@polkadot/util": "npm:^13.0.2" + idb: "npm:^8.0.0" + sqlite3: "npm:^5.1.7" + typeorm: "npm:^0.3.20" + checksum: 10c0/33527ae530e3cfd90f049888e51322c62fc73703dcf5a78469c5e17ba1548acfe14d4b72e91957c8af8bd4acaf2deb69fe7948866ddeb802e01fc29813d49300 + languageName: node + linkType: hard + +"@acala-network/chopsticks-executor@npm:0.15.0": + version: 0.15.0 + resolution: "@acala-network/chopsticks-executor@npm:0.15.0" + dependencies: + "@polkadot/util": "npm:^13.0.2" + "@polkadot/wasm-util": "npm:^7.3.2" + checksum: 10c0/e1cf5731ebbdbae91f49e6fcba80e2a661e7eb3078215ea908e1755ea92fa0e0212e052766aacd29b517c90fd5642ca6af140e9208a013676ff526dd8fe36e0a + languageName: node + linkType: hard + +"@acala-network/chopsticks@npm:^0.15.0": + version: 0.15.0 + resolution: "@acala-network/chopsticks@npm:0.15.0" + dependencies: + "@acala-network/chopsticks-core": "npm:0.15.0" + "@acala-network/chopsticks-db": "npm:0.15.0" + "@pnpm/npm-conf": "npm:^2.2.2" + "@polkadot/api": "npm:^12.3.1" + "@polkadot/api-augment": "npm:^12.3.1" + "@polkadot/rpc-provider": "npm:^12.3.1" + "@polkadot/types": "npm:^12.3.1" + "@polkadot/util": "npm:^13.0.2" + "@polkadot/util-crypto": "npm:^13.0.2" + axios: "npm:^1.7.4" + comlink: "npm:^4.4.1" + dotenv: "npm:^16.4.5" + global-agent: "npm:^3.0.0" + js-yaml: "npm:^4.1.0" + jsondiffpatch: "npm:^0.5.0" + lodash: "npm:^4.17.21" + ws: "npm:^8.17.1" + yargs: "npm:^17.7.2" + zod: "npm:^3.22.4" + bin: + chopsticks: ./chopsticks.cjs + checksum: 10c0/d606c45b146d8d6d9685a79322380d889501350784045d197b3843ccb389f2a1223cd6fffe780fb5f50d21f524c7fd9f880ab15abe08a20b1365314731cdd982 + languageName: node + linkType: hard + +"@alexlafroscia/yaml-merge@npm:^4.1.0": + version: 4.1.0 + resolution: "@alexlafroscia/yaml-merge@npm:4.1.0" + dependencies: + glob: "npm:^7.1.7" + js-yaml: "npm:^4.0.0" + lodash: "npm:^4.17.20" + bin: + yaml-merge: bin/yaml-merge + checksum: 10c0/1cd4b146671261a081d73d659e66432729550e3473a60002c9abc41071807d3ecaf73f9c2817bd4f7e0c7147ec6afba07cd03415c89a175123d3cdbc40b82fda + languageName: node + linkType: hard + +"@gar/promisify@npm:^1.0.1": + version: 1.1.3 + resolution: "@gar/promisify@npm:1.1.3" + checksum: 10c0/0b3c9958d3cd17f4add3574975e3115ae05dc7f1298a60810414b16f6f558c137b5fb3cd3905df380bacfd955ec13f67c1e6710cbb5c246a7e8d65a8289b2bff + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + +"@kiltprotocol/chopsticks-networks@workspace:.": + version: 0.0.0-use.local + resolution: "@kiltprotocol/chopsticks-networks@workspace:." + dependencies: + "@acala-network/chopsticks": "npm:^0.15.0" + "@alexlafroscia/yaml-merge": "npm:^4.1.0" + languageName: unknown + linkType: soft + +"@noble/curves@npm:^1.3.0": + version: 1.6.0 + resolution: "@noble/curves@npm:1.6.0" + dependencies: + "@noble/hashes": "npm:1.5.0" + checksum: 10c0/f3262aa4d39148e627cd82b5ac1c93f88c5bb46dd2566b5e8e52ffac3a0fc381ad30c2111656fd2bd3b0d37d43d540543e0d93a5ff96a6cb184bc3bfe10d1cd9 + languageName: node + linkType: hard + +"@noble/hashes@npm:1.5.0, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.3": + version: 1.5.0 + resolution: "@noble/hashes@npm:1.5.0" + checksum: 10c0/1b46539695fbfe4477c0822d90c881a04d4fa2921c08c552375b444a48cac9930cb1ee68de0a3c7859e676554d0f3771999716606dc4d8f826e414c11692cdd9 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^2.0.0": + version: 2.2.2 + resolution: "@npmcli/agent@npm:2.2.2" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae + languageName: node + linkType: hard + +"@npmcli/fs@npm:^1.0.0": + version: 1.1.1 + resolution: "@npmcli/fs@npm:1.1.1" + dependencies: + "@gar/promisify": "npm:^1.0.1" + semver: "npm:^7.3.5" + checksum: 10c0/4143c317a7542af9054018b71601e3c3392e6704e884561229695f099a71336cbd580df9a9ffb965d0024bf0ed593189ab58900fd1714baef1c9ee59c738c3e2 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99 + languageName: node + linkType: hard + +"@npmcli/move-file@npm:^1.0.1": + version: 1.1.2 + resolution: "@npmcli/move-file@npm:1.1.2" + dependencies: + mkdirp: "npm:^1.0.4" + rimraf: "npm:^3.0.2" + checksum: 10c0/02e946f3dafcc6743132fe2e0e2b585a96ca7265653a38df5a3e53fcf26c7c7a57fc0f861d7c689a23fdb6d6836c7eea5050c8086abf3c994feb2208d1514ff0 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd + languageName: node + linkType: hard + +"@pnpm/config.env-replace@npm:^1.1.0": + version: 1.1.0 + resolution: "@pnpm/config.env-replace@npm:1.1.0" + checksum: 10c0/4cfc4a5c49ab3d0c6a1f196cfd4146374768b0243d441c7de8fa7bd28eaab6290f514b98490472cc65dbd080d34369447b3e9302585e1d5c099befd7c8b5e55f + languageName: node + linkType: hard + +"@pnpm/network.ca-file@npm:^1.0.1": + version: 1.0.2 + resolution: "@pnpm/network.ca-file@npm:1.0.2" + dependencies: + graceful-fs: "npm:4.2.10" + checksum: 10c0/95f6e0e38d047aca3283550719155ce7304ac00d98911e4ab026daedaf640a63bd83e3d13e17c623fa41ac72f3801382ba21260bcce431c14fbbc06430ecb776 + languageName: node + linkType: hard + +"@pnpm/npm-conf@npm:^2.2.2": + version: 2.3.1 + resolution: "@pnpm/npm-conf@npm:2.3.1" + dependencies: + "@pnpm/config.env-replace": "npm:^1.1.0" + "@pnpm/network.ca-file": "npm:^1.0.1" + config-chain: "npm:^1.1.11" + checksum: 10c0/778a3a34ff7d6000a2594d2a9821f873f737bc56367865718b2cf0ba5d366e49689efe7975148316d7afd8e6f1dcef7d736fbb6ea7ef55caadd1dc93a36bb302 + languageName: node + linkType: hard + +"@polkadot-api/json-rpc-provider-proxy@npm:^0.1.0": + version: 0.1.0 + resolution: "@polkadot-api/json-rpc-provider-proxy@npm:0.1.0" + checksum: 10c0/e4b621fbbba5ae035f36932ce2ef6024d157a1612e26d8838ba6b92a78cd4718f4f12baa55ec7c700d213f8ecbe6e14569152ba3254b341b677b9e616c749f59 + languageName: node + linkType: hard + +"@polkadot-api/json-rpc-provider@npm:0.0.1, @polkadot-api/json-rpc-provider@npm:^0.0.1": + version: 0.0.1 + resolution: "@polkadot-api/json-rpc-provider@npm:0.0.1" + checksum: 10c0/90dc86693e7ef742c50484f4374d4b4f0eb7b5f7f618cf96a3dfed866fd18edf19132fc750b2944e8300d83c5601343f3876cbe60cd6bb1086301361d682ebd8 + languageName: node + linkType: hard + +"@polkadot-api/metadata-builders@npm:0.3.2": + version: 0.3.2 + resolution: "@polkadot-api/metadata-builders@npm:0.3.2" + dependencies: + "@polkadot-api/substrate-bindings": "npm:0.6.0" + "@polkadot-api/utils": "npm:0.1.0" + checksum: 10c0/ac536e8d5dea4c4e241839750a46d003a86e6149428dbf9bdb794907547fdab219d38c805ba5fa0ea7150a0083c214866e28d7c2ec10621be97d2f8f8b013edf + languageName: node + linkType: hard + +"@polkadot-api/observable-client@npm:^0.3.0": + version: 0.3.2 + resolution: "@polkadot-api/observable-client@npm:0.3.2" + dependencies: + "@polkadot-api/metadata-builders": "npm:0.3.2" + "@polkadot-api/substrate-bindings": "npm:0.6.0" + "@polkadot-api/utils": "npm:0.1.0" + peerDependencies: + "@polkadot-api/substrate-client": 0.1.4 + rxjs: ">=7.8.0" + checksum: 10c0/9f93fab03c37af0483f5c8487ec5250d366eb401a2c9744c014dfb4c7aa524645ae71f6b0e60761e2bca89bdcd862c119e4ac0e798123d8ee9f037eb2f4aaef3 + languageName: node + linkType: hard + +"@polkadot-api/substrate-bindings@npm:0.6.0": + version: 0.6.0 + resolution: "@polkadot-api/substrate-bindings@npm:0.6.0" + dependencies: + "@noble/hashes": "npm:^1.3.1" + "@polkadot-api/utils": "npm:0.1.0" + "@scure/base": "npm:^1.1.1" + scale-ts: "npm:^1.6.0" + checksum: 10c0/6c5d2d4f1120e95b3fb0207ea186e74302b9075671132d62d94d6abcb8b38fe081b8514384c744c3630615caa474764ebdd18968bef73d0c29203946941f1d99 + languageName: node + linkType: hard + +"@polkadot-api/substrate-client@npm:^0.1.2": + version: 0.1.4 + resolution: "@polkadot-api/substrate-client@npm:0.1.4" + dependencies: + "@polkadot-api/json-rpc-provider": "npm:0.0.1" + "@polkadot-api/utils": "npm:0.1.0" + checksum: 10c0/7c9138ce52745f7e5f365f35d8caf3c192aee405ee576492eab8c47f5e9d09547a6141cc455ba21e69cf9f0f813fe6f5bcb0763342c33435a7678432961713db + languageName: node + linkType: hard + +"@polkadot-api/utils@npm:0.1.0": + version: 0.1.0 + resolution: "@polkadot-api/utils@npm:0.1.0" + checksum: 10c0/9b24522a30d0519df2d2bbfc65f7dbc94233950f829c4a6b042e02cc43b70c0ec43a7d06056cd7084d09e32d7c42caa2695732d25f673a31430391bed116fcae + languageName: node + linkType: hard + +"@polkadot/api-augment@npm:12.4.2, @polkadot/api-augment@npm:^12.3.1": + version: 12.4.2 + resolution: "@polkadot/api-augment@npm:12.4.2" + dependencies: + "@polkadot/api-base": "npm:12.4.2" + "@polkadot/rpc-augment": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-augment": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/4cab0d50cde43eb25d830fca93cdfe10198302d44a271aacfa274d171671ce4fa4b07bafd0886f8cf78ce10478762e337e9fe27a652080a1dc6f5823be05bcb3 + languageName: node + linkType: hard + +"@polkadot/api-base@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/api-base@npm:12.4.2" + dependencies: + "@polkadot/rpc-core": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.6.3" + checksum: 10c0/b2e7b7a3f93070b09f5992f8128a378f47a8c808a08a2890c50abcaded040ab30e8b1b5c2b693c375f2187032dc8d010d407ac14e1e39fcb984a2e0f9f05e23d + languageName: node + linkType: hard + +"@polkadot/api-derive@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/api-derive@npm:12.4.2" + dependencies: + "@polkadot/api": "npm:12.4.2" + "@polkadot/api-augment": "npm:12.4.2" + "@polkadot/api-base": "npm:12.4.2" + "@polkadot/rpc-core": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + "@polkadot/util-crypto": "npm:^13.0.2" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.6.3" + checksum: 10c0/47f0698fa2b3f1adc03af93fbf7c533d8801bad52c7d8989ab019ce215bbd1c1e8d7a0c18d89839e86619ae9e93385cb7963feecc323dad79751de1496d0c23c + languageName: node + linkType: hard + +"@polkadot/api@npm:12.4.2, @polkadot/api@npm:^12.3.1": + version: 12.4.2 + resolution: "@polkadot/api@npm:12.4.2" + dependencies: + "@polkadot/api-augment": "npm:12.4.2" + "@polkadot/api-base": "npm:12.4.2" + "@polkadot/api-derive": "npm:12.4.2" + "@polkadot/keyring": "npm:^13.0.2" + "@polkadot/rpc-augment": "npm:12.4.2" + "@polkadot/rpc-core": "npm:12.4.2" + "@polkadot/rpc-provider": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-augment": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/types-create": "npm:12.4.2" + "@polkadot/types-known": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + "@polkadot/util-crypto": "npm:^13.0.2" + eventemitter3: "npm:^5.0.1" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.6.3" + checksum: 10c0/64e9713508193a971e7fe830d39c625101b9dc9ce987ee38118d9a2e7e913eaeb9231cd7776b4d00ac293b23052c12ca6e7867fddacb8f7ec283017ee68ad1aa + languageName: node + linkType: hard + +"@polkadot/keyring@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/keyring@npm:13.1.1" + dependencies: + "@polkadot/util": "npm:13.1.1" + "@polkadot/util-crypto": "npm:13.1.1" + tslib: "npm:^2.7.0" + peerDependencies: + "@polkadot/util": 13.1.1 + "@polkadot/util-crypto": 13.1.1 + checksum: 10c0/f746ff4dcf5bc89efbd20b1ddaf01232a2b87b7d1b1d45d76371a3b14361e4aef2045668658df39a738e2b2b70944cd0e5a5210b654778b55ef965b69fc8b2ca + languageName: node + linkType: hard + +"@polkadot/networks@npm:13.1.1, @polkadot/networks@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/networks@npm:13.1.1" + dependencies: + "@polkadot/util": "npm:13.1.1" + "@substrate/ss58-registry": "npm:^1.50.0" + tslib: "npm:^2.7.0" + checksum: 10c0/30ea310ecfbe1ab7a050b3809a86f6b4564b75d0d35e467ff16428fd4d75e3d685e2964366d9a9130ade71ea7615ac064c8d5704457c72810333d5f9d257b32b + languageName: node + linkType: hard + +"@polkadot/rpc-augment@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/rpc-augment@npm:12.4.2" + dependencies: + "@polkadot/rpc-core": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/8e078db8496337c16bfb474cb557aaed5cccb2c1a3b8a56ad729fea308b23745c0cf5db10212f5653b60344add2084fc5ac7521a7b08c19fd309280e539336cf + languageName: node + linkType: hard + +"@polkadot/rpc-core@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/rpc-core@npm:12.4.2" + dependencies: + "@polkadot/rpc-augment": "npm:12.4.2" + "@polkadot/rpc-provider": "npm:12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.6.3" + checksum: 10c0/4201b1d503801a672f2ceb0e6ab90226eb03c2d668879669656d73a952c556ba32e0a85c479d87ccd0aa80ce8fbc69ddde69abee462517dabc4736b3993deca6 + languageName: node + linkType: hard + +"@polkadot/rpc-provider@npm:12.4.2, @polkadot/rpc-provider@npm:^12.3.1": + version: 12.4.2 + resolution: "@polkadot/rpc-provider@npm:12.4.2" + dependencies: + "@polkadot/keyring": "npm:^13.0.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-support": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + "@polkadot/util-crypto": "npm:^13.0.2" + "@polkadot/x-fetch": "npm:^13.0.2" + "@polkadot/x-global": "npm:^13.0.2" + "@polkadot/x-ws": "npm:^13.0.2" + "@substrate/connect": "npm:0.8.11" + eventemitter3: "npm:^5.0.1" + mock-socket: "npm:^9.3.1" + nock: "npm:^13.5.4" + tslib: "npm:^2.6.3" + dependenciesMeta: + "@substrate/connect": + optional: true + checksum: 10c0/59968dfae8ecaed840ec61c84d50953faf14d76dbcfcf61ef4acb88c9f4ef07c0c2b9c5227cb2b63801a0895d3f10edb686ae3126269eda5635f29796fa20fdf + languageName: node + linkType: hard + +"@polkadot/types-augment@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/types-augment@npm:12.4.2" + dependencies: + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/9dcae5ec9fd7aaac9d3ffe2f5adb9b5c4704376018db4860215ca38805b189c5ef2f90360da0ff29d8b9a9715617bb5eabf6870bcfd8f9eeba974d6eb9b5bfab + languageName: node + linkType: hard + +"@polkadot/types-codec@npm:12.4.2, @polkadot/types-codec@npm:^12.3.1": + version: 12.4.2 + resolution: "@polkadot/types-codec@npm:12.4.2" + dependencies: + "@polkadot/util": "npm:^13.0.2" + "@polkadot/x-bigint": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/2a56694e6998fc2afbe4fe8a9f9805eb251e880f1343af380f70c42965d30bae2249e5a5f346e675d5f78173770ebd4fa0758ed8b9f1397db8183eb686d11842 + languageName: node + linkType: hard + +"@polkadot/types-create@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/types-create@npm:12.4.2" + dependencies: + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/c075d07c2d3212f0ab9772cd008bfadccde7a35f6366c6704a326f8e5199fce7e7eb7959a6bd229b69fcbc3900c522892f94b08b4cd991be6e42f2a786585d0f + languageName: node + linkType: hard + +"@polkadot/types-known@npm:12.4.2, @polkadot/types-known@npm:^12.3.1": + version: 12.4.2 + resolution: "@polkadot/types-known@npm:12.4.2" + dependencies: + "@polkadot/networks": "npm:^13.0.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/types-create": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/2e7fdd895c6478e102b91d7cb3428b75c34aa0b037ba9d2d2b97d350a19ed7bd6ea4f2c91c52eef4039ebec330fd1cd58a0f88fc30882c2a6623c0cae78b421a + languageName: node + linkType: hard + +"@polkadot/types-support@npm:12.4.2": + version: 12.4.2 + resolution: "@polkadot/types-support@npm:12.4.2" + dependencies: + "@polkadot/util": "npm:^13.0.2" + tslib: "npm:^2.6.3" + checksum: 10c0/0277fe88cac0f2447b3655bb5ca32dfe7dc7e35a82d22873baf95a0272a207f73853e94b3340e7e9230945dfaa8f14f93f4ffb13c8b29d449f602e8c5fe3f3c2 + languageName: node + linkType: hard + +"@polkadot/types@npm:12.4.2, @polkadot/types@npm:^12.3.1": + version: 12.4.2 + resolution: "@polkadot/types@npm:12.4.2" + dependencies: + "@polkadot/keyring": "npm:^13.0.2" + "@polkadot/types-augment": "npm:12.4.2" + "@polkadot/types-codec": "npm:12.4.2" + "@polkadot/types-create": "npm:12.4.2" + "@polkadot/util": "npm:^13.0.2" + "@polkadot/util-crypto": "npm:^13.0.2" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.6.3" + checksum: 10c0/bdea1658a367678a158d5d6ba6224a081cfd5fb38b6d56c360321e40628a23261261c869e7ab1ac0c89c0140777f532963c46999e5fb0f13233599a32eabdf99 + languageName: node + linkType: hard + +"@polkadot/util-crypto@npm:13.1.1, @polkadot/util-crypto@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/util-crypto@npm:13.1.1" + dependencies: + "@noble/curves": "npm:^1.3.0" + "@noble/hashes": "npm:^1.3.3" + "@polkadot/networks": "npm:13.1.1" + "@polkadot/util": "npm:13.1.1" + "@polkadot/wasm-crypto": "npm:^7.3.2" + "@polkadot/wasm-util": "npm:^7.3.2" + "@polkadot/x-bigint": "npm:13.1.1" + "@polkadot/x-randomvalues": "npm:13.1.1" + "@scure/base": "npm:^1.1.7" + tslib: "npm:^2.7.0" + peerDependencies: + "@polkadot/util": 13.1.1 + checksum: 10c0/6ce2f75fd55b9f41a99faf8c16e4a02f7d52ce4caec3d323f1cb08bd792798dd6e1b2d3b75cf4dcc2ff1ed81adcaa0d35499c48f1a653325dce01301f8ee2837 + languageName: node + linkType: hard + +"@polkadot/util@npm:13.1.1, @polkadot/util@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/util@npm:13.1.1" + dependencies: + "@polkadot/x-bigint": "npm:13.1.1" + "@polkadot/x-global": "npm:13.1.1" + "@polkadot/x-textdecoder": "npm:13.1.1" + "@polkadot/x-textencoder": "npm:13.1.1" + "@types/bn.js": "npm:^5.1.5" + bn.js: "npm:^5.2.1" + tslib: "npm:^2.7.0" + checksum: 10c0/28a77a42bbc7a71fc8647d393ba1ca0e0e7e46968ac03c4f3d78ee7414f6af32c343c4522a588fc5b1e074f08d7b85b120247c43ff00bea971d201b52a6af0f5 + languageName: node + linkType: hard + +"@polkadot/wasm-bridge@npm:7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-bridge@npm:7.3.2" + dependencies: + "@polkadot/wasm-util": "npm:7.3.2" + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + "@polkadot/x-randomvalues": "*" + checksum: 10c0/8becfcd4efbabe8ea536c353164c8b767a5510d6d62e376813ab1dc0dd4560906f1dfdb1b349d56b4da657ba7c88bc9f074b658218dcae9b1edbd36f4508b710 + languageName: node + linkType: hard + +"@polkadot/wasm-crypto-asmjs@npm:7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-crypto-asmjs@npm:7.3.2" + dependencies: + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + checksum: 10c0/c4eb0b2c6bae2cd7b4ada5211c877a0f0cff4d4a4f2716817430c5aab74f4e8d37099add57c809a098033028378ed3e88ba1c56fd85b6fd0a80b181742f7a3f9 + languageName: node + linkType: hard + +"@polkadot/wasm-crypto-init@npm:7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-crypto-init@npm:7.3.2" + dependencies: + "@polkadot/wasm-bridge": "npm:7.3.2" + "@polkadot/wasm-crypto-asmjs": "npm:7.3.2" + "@polkadot/wasm-crypto-wasm": "npm:7.3.2" + "@polkadot/wasm-util": "npm:7.3.2" + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + "@polkadot/x-randomvalues": "*" + checksum: 10c0/4813a87bf44065d4ec7cdc29b00f37cc6859974969710c6a6fefba8e42f5bb0c7e102293a8418b1c6e1b5fd55540d13beebdff777200b69420ce50b8fad803ed + languageName: node + linkType: hard + +"@polkadot/wasm-crypto-wasm@npm:7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-crypto-wasm@npm:7.3.2" + dependencies: + "@polkadot/wasm-util": "npm:7.3.2" + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + checksum: 10c0/546ebc5c42929f2f37565190014ff26f6817024e087c56053c1d8c1dcffd1f02014c4638ca70c79145d540f760339699209bb1dc939c235085a7c78efd56bc60 + languageName: node + linkType: hard + +"@polkadot/wasm-crypto@npm:^7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-crypto@npm:7.3.2" + dependencies: + "@polkadot/wasm-bridge": "npm:7.3.2" + "@polkadot/wasm-crypto-asmjs": "npm:7.3.2" + "@polkadot/wasm-crypto-init": "npm:7.3.2" + "@polkadot/wasm-crypto-wasm": "npm:7.3.2" + "@polkadot/wasm-util": "npm:7.3.2" + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + "@polkadot/x-randomvalues": "*" + checksum: 10c0/ff3ef6a2a4dcbbdeb257e7a42f906f1bb7e31292600482c1acf9267406011ea75bd9d3d6ceaf4c011f986e25a2416768775ee59ccc7dbfa6c529b11b8ea91eb4 + languageName: node + linkType: hard + +"@polkadot/wasm-util@npm:7.3.2, @polkadot/wasm-util@npm:^7.3.2": + version: 7.3.2 + resolution: "@polkadot/wasm-util@npm:7.3.2" + dependencies: + tslib: "npm:^2.6.2" + peerDependencies: + "@polkadot/util": "*" + checksum: 10c0/58ef58d357e7983c3bb4008b0159262d5c588234d7be64155c031f452fc0daeb078ff0ac8bb4b0377dac307130b0b548c01fd466968869ed308d50e2c162d23b + languageName: node + linkType: hard + +"@polkadot/x-bigint@npm:13.1.1, @polkadot/x-bigint@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/x-bigint@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + tslib: "npm:^2.7.0" + checksum: 10c0/8df11029c9956d38bd6005f1d85cf4c4d67058fdff14f534e487dc30c43003e35f4e89dc102501c216806446ec6f40615dba4bf957a484b8ede78c398bec7568 + languageName: node + linkType: hard + +"@polkadot/x-fetch@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/x-fetch@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + node-fetch: "npm:^3.3.2" + tslib: "npm:^2.7.0" + checksum: 10c0/e6a5ad72f4f2ba9b204ba124ae2ec7b23b03ec0a857037fcd2221e465b3034b8ad48229cb78598ea955d6ea0be5126f0b1a63aad7b5fea2fb632aebcc7971ad2 + languageName: node + linkType: hard + +"@polkadot/x-global@npm:13.1.1, @polkadot/x-global@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/x-global@npm:13.1.1" + dependencies: + tslib: "npm:^2.7.0" + checksum: 10c0/07a69f24a94c6bd8934dc39f52dee620f9a0cbac368f0a8e6b5e4637f8e90ba48e110fa4cf8ac1d6b8e80f4acd41af8be5c493d89abe7fe29c0523d7aac3eefb + languageName: node + linkType: hard + +"@polkadot/x-randomvalues@npm:13.1.1": + version: 13.1.1 + resolution: "@polkadot/x-randomvalues@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + tslib: "npm:^2.7.0" + peerDependencies: + "@polkadot/util": 13.1.1 + "@polkadot/wasm-util": "*" + checksum: 10c0/425512c16d66fa9e8badcb14305b1547c11f38dbe3640c3e8fe6f5504baed80764398df783322c92d2a7e53b568414898f28917606f346a30b6ee4a9dcb97628 + languageName: node + linkType: hard + +"@polkadot/x-textdecoder@npm:13.1.1": + version: 13.1.1 + resolution: "@polkadot/x-textdecoder@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + tslib: "npm:^2.7.0" + checksum: 10c0/bc9671db97ace14383b27de22f301d3b5621aedc74d7ebb4c723eed3b74b952850b697be50b09b8456eed6196edec71b324aa6d1dd3558515fe639a51bcc52d2 + languageName: node + linkType: hard + +"@polkadot/x-textencoder@npm:13.1.1": + version: 13.1.1 + resolution: "@polkadot/x-textencoder@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + tslib: "npm:^2.7.0" + checksum: 10c0/819d9dc729a8d635c0269f5a2b8dbec1350c766040946ea750f4df872e9d4be397be74e3ad5d425f3d6df51eff021a7a86966223f4c58694c0bdeadf741312a6 + languageName: node + linkType: hard + +"@polkadot/x-ws@npm:^13.0.2": + version: 13.1.1 + resolution: "@polkadot/x-ws@npm:13.1.1" + dependencies: + "@polkadot/x-global": "npm:13.1.1" + tslib: "npm:^2.7.0" + ws: "npm:^8.16.0" + checksum: 10c0/6d485fb62218beee0ea38e3dc275385ad9fa64677f451833447a5e54bbf70c3827e5a4d4e7d9531988109e8f1760437f854c7cb19e2df488f35b4c20bf8a6b1e + languageName: node + linkType: hard + +"@scure/base@npm:^1.1.1, @scure/base@npm:^1.1.7": + version: 1.1.9 + resolution: "@scure/base@npm:1.1.9" + checksum: 10c0/77a06b9a2db8144d22d9bf198338893d77367c51b58c72b99df990c0a11f7cadd066d4102abb15e3ca6798d1529e3765f55c4355742465e49aed7a0c01fe76e8 + languageName: node + linkType: hard + +"@sqltools/formatter@npm:^1.2.5": + version: 1.2.5 + resolution: "@sqltools/formatter@npm:1.2.5" + checksum: 10c0/4b4fa62b8cd4880784b71cc5edd4a13da04fda0a915c14282765a8ec1a900a495e69b322704413e2052d221b5646d9fb0e20e87911f9a8f438f33180eecb11a4 + languageName: node + linkType: hard + +"@substrate/connect-extension-protocol@npm:^2.0.0": + version: 2.1.0 + resolution: "@substrate/connect-extension-protocol@npm:2.1.0" + checksum: 10c0/950898136d591fadf4086b040357cbb5f28fbd4b069df48fba2d78eda09025c52cb9c8766d8bad278e9b26431500cc570bc7afa242d43ffbf86405b4d820eaf3 + languageName: node + linkType: hard + +"@substrate/connect-known-chains@npm:^1.1.5": + version: 1.4.1 + resolution: "@substrate/connect-known-chains@npm:1.4.1" + checksum: 10c0/fbfe7e7af93bbf5209332e059b54baa71f63a2cc05c4f4dd9f010862e4b36e46de73585f90b9d1c07b8ddd60ef75cecab0fc9e43faeec034976195e9a02f23ab + languageName: node + linkType: hard + +"@substrate/connect@npm:0.8.11": + version: 0.8.11 + resolution: "@substrate/connect@npm:0.8.11" + dependencies: + "@substrate/connect-extension-protocol": "npm:^2.0.0" + "@substrate/connect-known-chains": "npm:^1.1.5" + "@substrate/light-client-extension-helpers": "npm:^1.0.0" + smoldot: "npm:2.0.26" + checksum: 10c0/ad37dc5d6c806b95a346d42a94b1968b1aa3056ef7dd1a9af60670ab1fe6ecbc61ae52ae74e2b5a93a75b61db812bbe0c3409eb207bd4b438bec02d3554d6daa + languageName: node + linkType: hard + +"@substrate/light-client-extension-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "@substrate/light-client-extension-helpers@npm:1.0.0" + dependencies: + "@polkadot-api/json-rpc-provider": "npm:^0.0.1" + "@polkadot-api/json-rpc-provider-proxy": "npm:^0.1.0" + "@polkadot-api/observable-client": "npm:^0.3.0" + "@polkadot-api/substrate-client": "npm:^0.1.2" + "@substrate/connect-extension-protocol": "npm:^2.0.0" + "@substrate/connect-known-chains": "npm:^1.1.5" + rxjs: "npm:^7.8.1" + peerDependencies: + smoldot: 2.x + checksum: 10c0/41b692c4f8ec8ee5e67f7c184ea0556c92d2755401efd20c9ee440d0d1d76e00972b76c92514cc6850855a55bbf062b301f1188eeb3b926a7fc1adb914298e94 + languageName: node + linkType: hard + +"@substrate/ss58-registry@npm:^1.50.0": + version: 1.50.0 + resolution: "@substrate/ss58-registry@npm:1.50.0" + checksum: 10c0/49178248445d88b2f06f6e45e7890bd292f91b9d5d6bfa2788f27b5d9e3a08d3f18462440ea905b2fe7fa60dafb690d40ce1f549929bdbbe48562be622748717 + languageName: node + linkType: hard + +"@tootallnate/once@npm:1": + version: 1.1.2 + resolution: "@tootallnate/once@npm:1.1.2" + checksum: 10c0/8fe4d006e90422883a4fa9339dd05a83ff626806262e1710cee5758d493e8cbddf2db81c0e4690636dc840b02c9fda62877866ea774ebd07c1777ed5fafbdec6 + languageName: node + linkType: hard + +"@types/bn.js@npm:^5.1.5": + version: 5.1.6 + resolution: "@types/bn.js@npm:5.1.6" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/073d383d87afea513a8183ce34af7bc0a7a798d057c7ae651982b7f30dd7d93f33247323bca3ba39f1f6af146b564aff547b15467bdf9fc922796c17e8426bf6 + languageName: node + linkType: hard + +"@types/node@npm:*": + version: 22.7.0 + resolution: "@types/node@npm:22.7.0" + dependencies: + undici-types: "npm:~6.19.2" + checksum: 10c0/127b1ac3eebe8c2b09e3d2de277ee906710c4908b4573cde23b9c7cec1cb1aaf1af8bdabbccdac08d005f820b770e7447b22c8eb56ca63344f4d2e26bcdc29fb + languageName: node + linkType: hard + +"abbrev@npm:1": + version: 1.1.1 + resolution: "abbrev@npm:1.1.1" + checksum: 10c0/3f762677702acb24f65e813070e306c61fafe25d4b2583f9dfc935131f774863f3addd5741572ed576bd69cabe473c5af18e1e108b829cb7b6b4747884f726e6 + languageName: node + linkType: hard + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 + languageName: node + linkType: hard + +"abort-controller@npm:^3.0.0": + version: 3.0.0 + resolution: "abort-controller@npm:3.0.0" + dependencies: + event-target-shim: "npm:^5.0.0" + checksum: 10c0/90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 + languageName: node + linkType: hard + +"agent-base@npm:6, agent-base@npm:^6.0.2": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: "npm:4" + checksum: 10c0/dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261 + languageName: node + linkType: hard + +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": + version: 7.1.1 + resolution: "agent-base@npm:7.1.1" + dependencies: + debug: "npm:^4.3.4" + checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50 + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.1.3": + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" + dependencies: + humanize-ms: "npm:^1.2.1" + checksum: 10c0/394ea19f9710f230722996e156607f48fdf3a345133b0b1823244b7989426c16019a428b56c82d3eabef616e938812981d9009f4792ecc66bd6a59e991c62612 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c + languageName: node + linkType: hard + +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 10c0/60f0298ed34c74fef50daab88e8dab786036ed5a7fad02e012ab57e376e0a0b4b29e83b95ea9b5e7d89df762f5f25119b83e00706ecaccb22cfbacee98d74889 + languageName: node + linkType: hard + +"app-root-path@npm:^3.1.0": + version: 3.1.0 + resolution: "app-root-path@npm:3.1.0" + checksum: 10c0/4a0fd976de1bffcdb18a5e1f8050091f15d0780e0582bca99aaa9d52de71f0e08e5185355fcffc781180bfb898499e787a2f5ed79b9c448b942b31dc947acaa9 + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 10c0/d06e26384a8f6245d8c8896e138c0388824e259a329e0c9f196b4fa533c82502a6fd449586e3604950a0c42921832a458bb3aa0aa9f0ba449cfd4f50fd0d09b5 + languageName: node + linkType: hard + +"are-we-there-yet@npm:^3.0.0": + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" + dependencies: + delegates: "npm:^1.0.0" + readable-stream: "npm:^3.6.0" + checksum: 10c0/8373f289ba42e4b5ec713bb585acdac14b5702c75f2a458dc985b9e4fa5762bc5b46b40a21b72418a3ed0cfb5e35bdc317ef1ae132f3035f633d581dd03168c3 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d + languageName: node + linkType: hard + +"atomic-sleep@npm:^1.0.0": + version: 1.0.0 + resolution: "atomic-sleep@npm:1.0.0" + checksum: 10c0/e329a6665512736a9bbb073e1761b4ec102f7926cce35037753146a9db9c8104f5044c1662e4a863576ce544fb8be27cd2be6bc8c1a40147d03f31eb1cfb6e8a + languageName: node + linkType: hard + +"axios@npm:^1.7.4": + version: 1.7.7 + resolution: "axios@npm:1.7.7" + dependencies: + follow-redirects: "npm:^1.15.6" + form-data: "npm:^4.0.0" + proxy-from-env: "npm:^1.1.0" + checksum: 10c0/4499efc89e86b0b49ffddc018798de05fab26e3bf57913818266be73279a6418c3ce8f9e934c7d2d707ab8c095e837fc6c90608fb7715b94d357720b5f568af7 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf + languageName: node + linkType: hard + +"bindings@npm:^1.5.0": + version: 1.5.0 + resolution: "bindings@npm:1.5.0" + dependencies: + file-uri-to-path: "npm:1.0.0" + checksum: 10c0/3dab2491b4bb24124252a91e656803eac24292473e56554e35bbfe3cc1875332cfa77600c3bac7564049dc95075bf6fcc63a4609920ff2d64d0fe405fcf0d4ba + languageName: node + linkType: hard + +"bl@npm:^4.0.3": + version: 4.1.0 + resolution: "bl@npm:4.1.0" + dependencies: + buffer: "npm:^5.5.0" + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.4.0" + checksum: 10c0/02847e1d2cb089c9dc6958add42e3cdeaf07d13f575973963335ac0fdece563a50ac770ac4c8fa06492d2dd276f6cc3b7f08c7cd9c7a7ad0f8d388b2a28def5f + languageName: node + linkType: hard + +"bn.js@npm:^5.2.1": + version: 5.2.1 + resolution: "bn.js@npm:5.2.1" + checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa + languageName: node + linkType: hard + +"boolean@npm:^3.0.1": + version: 3.2.0 + resolution: "boolean@npm:3.2.0" + checksum: 10c0/6a0dc9668f6f3dda42a53c181fcbdad223169c8d87b6c4011b87a8b14a21770efb2934a778f063d7ece17280f8c06d313c87f7b834bb1dd526a867ffcd00febf + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f + languageName: node + linkType: hard + +"buffer@npm:^5.5.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10c0/27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e + languageName: node + linkType: hard + +"buffer@npm:^6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0 + languageName: node + linkType: hard + +"cacache@npm:^15.2.0": + version: 15.3.0 + resolution: "cacache@npm:15.3.0" + dependencies: + "@npmcli/fs": "npm:^1.0.0" + "@npmcli/move-file": "npm:^1.0.1" + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + glob: "npm:^7.1.4" + infer-owner: "npm:^1.0.4" + lru-cache: "npm:^6.0.0" + minipass: "npm:^3.1.1" + minipass-collect: "npm:^1.0.2" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.2" + mkdirp: "npm:^1.0.3" + p-map: "npm:^4.0.0" + promise-inflight: "npm:^1.0.1" + rimraf: "npm:^3.0.2" + ssri: "npm:^8.0.1" + tar: "npm:^6.0.2" + unique-filename: "npm:^1.1.1" + checksum: 10c0/886fcc0acc4f6fd5cd142d373d8276267bc6d655d7c4ce60726fbbec10854de3395ee19bbf9e7e73308cdca9fdad0ad55060ff3bd16c6d4165c5b8d21515e1d8 + languageName: node + linkType: hard + +"cacache@npm:^18.0.0": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" + dependencies: + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^4.0.0" + ssri: "npm:^10.0.0" + tar: "npm:^6.1.11" + unique-filename: "npm:^3.0.0" + checksum: 10c0/6c055bafed9de4f3dcc64ac3dc7dd24e863210902b7c470eb9ce55a806309b3efff78033e3d8b4f7dcc5d467f2db43c6a2857aaaf26f0094b8a351d44c42179f + languageName: node + linkType: hard + +"chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/ee650b0a065b3d7a6fda258e75d3a86fc8e4effa55871da730a9e42ccb035bf5fd203525e5a1ef45ec2582ecc4f65b47eb11357c526b84dd29a14fb162c414d2 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.2": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + +"chownr@npm:^1.1.1": + version: 1.1.4 + resolution: "chownr@npm:1.1.4" + checksum: 10c0/ed57952a84cc0c802af900cf7136de643d3aba2eecb59d29344bc2f3f9bf703a301b9d84cdc71f82c3ffc9ccde831b0d92f5b45f91727d6c9da62f23aef9d9db + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 + languageName: node + linkType: hard + +"cli-highlight@npm:^2.1.11": + version: 2.1.11 + resolution: "cli-highlight@npm:2.1.11" + dependencies: + chalk: "npm:^4.0.0" + highlight.js: "npm:^10.7.1" + mz: "npm:^2.4.0" + parse5: "npm:^5.1.1" + parse5-htmlparser2-tree-adapter: "npm:^6.0.0" + yargs: "npm:^16.0.0" + bin: + highlight: bin/highlight + checksum: 10c0/b5b4af3b968aa9df77eee449a400fbb659cf47c4b03a395370bd98d5554a00afaa5819b41a9a8a1ca0d37b0b896a94e57c65289b37359a25b700b1f56eb04852 + languageName: node + linkType: hard + +"cliui@npm:^7.0.2": + version: 7.0.4 + resolution: "cliui@npm:7.0.4" + dependencies: + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.0" + wrap-ansi: "npm:^7.0.0" + checksum: 10c0/6035f5daf7383470cef82b3d3db00bec70afb3423538c50394386ffbbab135e26c3689c41791f911fa71b62d13d3863c712fdd70f0fbdffd938a1e6fd09aac00 + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^7.0.0" + checksum: 10c0/4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + languageName: node + linkType: hard + +"color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 10c0/8ffeaa270a784dc382f62d9be0a98581db43e11eee301af14734a6d089bd456478b1a8b3e7db7ca7dc5b18a75f828f775c44074020b51c05fc00e6d0992b1cc6 + languageName: node + linkType: hard + +"colorette@npm:^2.0.7": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 + languageName: node + linkType: hard + +"comlink@npm:^4.4.1": + version: 4.4.1 + resolution: "comlink@npm:4.4.1" + checksum: 10c0/a7a2004030768d13ec9373f780aa0edae57616095cb453ec8950d9f97e5fa654c0e84030ac87173b818843a04a5fa9ce9749d48b6bd453cfbfb5e6a9ebb6b2ff + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f + languageName: node + linkType: hard + +"config-chain@npm:^1.1.11": + version: 1.1.13 + resolution: "config-chain@npm:1.1.13" + dependencies: + ini: "npm:^1.3.4" + proto-list: "npm:~1.2.1" + checksum: 10c0/39d1df18739d7088736cc75695e98d7087aea43646351b028dfabd5508d79cf6ef4c5bcd90471f52cd87ae470d1c5490c0a8c1a292fbe6ee9ff688061ea0963e + languageName: node + linkType: hard + +"console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 10c0/7ab51d30b52d461412cd467721bb82afe695da78fff8f29fe6f6b9cbaac9a2328e27a22a966014df9532100f6dd85370460be8130b9c677891ba36d96a343f50 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 + languageName: node + linkType: hard + +"data-uri-to-buffer@npm:^4.0.0": + version: 4.0.1 + resolution: "data-uri-to-buffer@npm:4.0.1" + checksum: 10c0/20a6b93107597530d71d4cb285acee17f66bcdfc03fd81040921a81252f19db27588d87fc8fc69e1950c55cfb0bf8ae40d0e5e21d907230813eb5d5a7f9eb45b + languageName: node + linkType: hard + +"dateformat@npm:^4.6.3": + version: 4.6.3 + resolution: "dateformat@npm:4.6.3" + checksum: 10c0/e2023b905e8cfe2eb8444fb558562b524807a51cdfe712570f360f873271600b5c94aebffaf11efb285e2c072264a7cf243eadb68f3eba0f8cc85fb86cd25df6 + languageName: node + linkType: hard + +"dayjs@npm:^1.11.9": + version: 1.11.13 + resolution: "dayjs@npm:1.11.13" + checksum: 10c0/a3caf6ac8363c7dade9d1ee797848ddcf25c1ace68d9fe8678ecf8ba0675825430de5d793672ec87b24a69bf04a1544b176547b2539982275d5542a7955f35b7 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.3, debug@npm:^4.3.4": + version: 4.3.7 + resolution: "debug@npm:4.3.7" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b + languageName: node + linkType: hard + +"decompress-response@npm:^6.0.0": + version: 6.0.0 + resolution: "decompress-response@npm:6.0.0" + dependencies: + mimic-response: "npm:^3.1.0" + checksum: 10c0/bd89d23141b96d80577e70c54fb226b2f40e74a6817652b80a116d7befb8758261ad073a8895648a29cc0a5947021ab66705cb542fa9c143c82022b27c5b175e + languageName: node + linkType: hard + +"deep-extend@npm:^0.6.0": + version: 0.6.0 + resolution: "deep-extend@npm:0.6.0" + checksum: 10c0/1c6b0abcdb901e13a44c7d699116d3d4279fdb261983122a3783e7273844d5f2537dc2e1c454a23fcf645917f93fbf8d07101c1d03c015a87faa662755212566 + languageName: node + linkType: hard + +"define-data-property@npm:^1.0.1": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37 + languageName: node + linkType: hard + +"define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.0" + object-keys: "npm:^1.1.1" + checksum: 10c0/88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 + languageName: node + linkType: hard + +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: 10c0/ba05874b91148e1db4bf254750c042bf2215febd23a6d3cda2e64896aef79745fbd4b9996488bd3cafb39ce19dbce0fd6e3b6665275638befffe1c9b312b91b5 + languageName: node + linkType: hard + +"detect-libc@npm:^2.0.0": + version: 2.0.3 + resolution: "detect-libc@npm:2.0.3" + checksum: 10c0/88095bda8f90220c95f162bf92cad70bd0e424913e655c20578600e35b91edc261af27531cf160a331e185c0ced93944bc7e09939143225f56312d7fd800fdb7 + languageName: node + linkType: hard + +"detect-node@npm:^2.0.4": + version: 2.1.0 + resolution: "detect-node@npm:2.1.0" + checksum: 10c0/f039f601790f2e9d4654e499913259a798b1f5246ae24f86ab5e8bd4aaf3bce50484234c494f11fb00aecb0c6e2733aa7b1cf3f530865640b65fbbd65b2c4e09 + languageName: node + linkType: hard + +"diff-match-patch@npm:^1.0.0": + version: 1.0.5 + resolution: "diff-match-patch@npm:1.0.5" + checksum: 10c0/142b6fad627b9ef309d11bd935e82b84c814165a02500f046e2773f4ea894d10ed3017ac20454900d79d4a0322079f5b713cf0986aaf15fce0ec4a2479980c86 + languageName: node + linkType: hard + +"dotenv@npm:^16.0.3, dotenv@npm:^16.4.5": + version: 16.4.5 + resolution: "dotenv@npm:16.4.5" + checksum: 10c0/48d92870076832af0418b13acd6e5a5a3e83bb00df690d9812e94b24aff62b88ade955ac99a05501305b8dc8f1b0ee7638b18493deb6fe93d680e5220936292f + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 + languageName: node + linkType: hard + +"encoding@npm:^0.1.12, encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 + languageName: node + linkType: hard + +"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: "npm:^1.4.0" + checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: "npm:^1.2.4" + checksum: 10c0/6bf3191feb7ea2ebda48b577f69bdfac7a2b3c9bcf97307f55fd6ef1bbca0b49f0c219a935aca506c993d8c5d8bddd937766cb760cd5e5a1071351f2df9f9aa4 + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 + languageName: node + linkType: hard + +"es6-error@npm:^4.1.1": + version: 4.1.1 + resolution: "es6-error@npm:4.1.1" + checksum: 10c0/357663fb1e845c047d548c3d30f86e005db71e122678f4184ced0693f634688c3f3ef2d7de7d4af732f734de01f528b05954e270f06aa7d133679fb9fe6600ef + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 + languageName: node + linkType: hard + +"event-target-shim@npm:^5.0.0": + version: 5.0.1 + resolution: "event-target-shim@npm:5.0.1" + checksum: 10c0/0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b + languageName: node + linkType: hard + +"eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 10c0/4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814 + languageName: node + linkType: hard + +"events@npm:^3.3.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6 + languageName: node + linkType: hard + +"expand-template@npm:^2.0.3": + version: 2.0.3 + resolution: "expand-template@npm:2.0.3" + checksum: 10c0/1c9e7afe9acadf9d373301d27f6a47b34e89b3391b1ef38b7471d381812537ef2457e620ae7f819d2642ce9c43b189b3583813ec395e2938319abe356a9b2f51 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 + languageName: node + linkType: hard + +"fast-copy@npm:^3.0.2": + version: 3.0.2 + resolution: "fast-copy@npm:3.0.2" + checksum: 10c0/02e8b9fd03c8c024d2987760ce126456a0e17470850b51e11a1c3254eed6832e4733ded2d93316c82bc0b36aeb991ad1ff48d1ba95effe7add7c3ab8d8eb554a + languageName: node + linkType: hard + +"fast-redact@npm:^3.1.1": + version: 3.5.0 + resolution: "fast-redact@npm:3.5.0" + checksum: 10c0/7e2ce4aad6e7535e0775bf12bd3e4f2e53d8051d8b630e0fa9e67f68cb0b0e6070d2f7a94b1d0522ef07e32f7c7cda5755e2b677a6538f1e9070ca053c42343a + languageName: node + linkType: hard + +"fast-safe-stringify@npm:^2.1.1": + version: 2.1.1 + resolution: "fast-safe-stringify@npm:2.1.1" + checksum: 10c0/d90ec1c963394919828872f21edaa3ad6f1dddd288d2bd4e977027afff09f5db40f94e39536d4646f7e01761d704d72d51dce5af1b93717f3489ef808f5f4e4d + languageName: node + linkType: hard + +"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": + version: 3.2.0 + resolution: "fetch-blob@npm:3.2.0" + dependencies: + node-domexception: "npm:^1.0.0" + web-streams-polyfill: "npm:^3.0.3" + checksum: 10c0/60054bf47bfa10fb0ba6cb7742acec2f37c1f56344f79a70bb8b1c48d77675927c720ff3191fa546410a0442c998d27ab05e9144c32d530d8a52fbe68f843b69 + languageName: node + linkType: hard + +"file-uri-to-path@npm:1.0.0": + version: 1.0.0 + resolution: "file-uri-to-path@npm:1.0.0" + checksum: 10c0/3b545e3a341d322d368e880e1c204ef55f1d45cdea65f7efc6c6ce9e0c4d22d802d5629320eb779d006fe59624ac17b0e848d83cc5af7cd101f206cb704f5519 + languageName: node + linkType: hard + +"follow-redirects@npm:^1.15.6": + version: 1.15.9 + resolution: "follow-redirects@npm:1.15.9" + peerDependenciesMeta: + debug: + optional: true + checksum: 10c0/5829165bd112c3c0e82be6c15b1a58fa9dcfaede3b3c54697a82fe4a62dd5ae5e8222956b448d2f98e331525f05d00404aba7d696de9e761ef6e42fdc780244f + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.3.0 + resolution: "foreground-child@npm:3.3.0" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 10c0/028f1d41000553fcfa6c4bb5c372963bf3d9bf0b1f25a87d1a6253014343fb69dfb1b42d9625d7cf44c8ba429940f3d0ff718b62105d4d4a4f6ef8ca0a53faa2 + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + mime-types: "npm:^2.1.12" + checksum: 10c0/cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e + languageName: node + linkType: hard + +"formdata-polyfill@npm:^4.0.10": + version: 4.0.10 + resolution: "formdata-polyfill@npm:4.0.10" + dependencies: + fetch-blob: "npm:^3.1.2" + checksum: 10c0/5392ec484f9ce0d5e0d52fb5a78e7486637d516179b0eb84d81389d7eccf9ca2f663079da56f761355c0a65792810e3b345dc24db9a8bbbcf24ef3c8c88570c6 + languageName: node + linkType: hard + +"fs-constants@npm:^1.0.0": + version: 1.0.0 + resolution: "fs-constants@npm:1.0.0" + checksum: 10c0/a0cde99085f0872f4d244e83e03a46aa387b74f5a5af750896c6b05e9077fac00e9932fdf5aef84f2f16634cd473c63037d7a512576da7d5c2b9163d1909f3a8 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 + languageName: node + linkType: hard + +"gauge@npm:^4.0.3": + version: 4.0.4 + resolution: "gauge@npm:4.0.4" + dependencies: + aproba: "npm:^1.0.3 || ^2.0.0" + color-support: "npm:^1.1.3" + console-control-strings: "npm:^1.1.0" + has-unicode: "npm:^2.0.1" + signal-exit: "npm:^3.0.7" + string-width: "npm:^4.2.3" + strip-ansi: "npm:^6.0.1" + wide-align: "npm:^1.1.5" + checksum: 10c0/ef10d7981113d69225135f994c9f8c4369d945e64a8fc721d655a3a38421b738c9fe899951721d1b47b73c41fdb5404ac87cc8903b2ecbed95d2800363e7e58c + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + has-proto: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.0" + checksum: 10c0/0a9b82c16696ed6da5e39b1267104475c47e3a9bdbe8b509dfe1710946e38a87be70d759f4bb3cda042d76a41ef47fe769660f3b7c0d1f68750299344ffb15b7 + languageName: node + linkType: hard + +"github-from-package@npm:0.0.0": + version: 0.0.0 + resolution: "github-from-package@npm:0.0.0" + checksum: 10c0/737ee3f52d0a27e26332cde85b533c21fcdc0b09fb716c3f8e522cfaa9c600d4a631dec9fcde179ec9d47cca89017b7848ed4d6ae6b6b78f936c06825b1fcc12 + languageName: node + linkType: hard + +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e + languageName: node + linkType: hard + +"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.7": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.1.1" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe + languageName: node + linkType: hard + +"global-agent@npm:^3.0.0": + version: 3.0.0 + resolution: "global-agent@npm:3.0.0" + dependencies: + boolean: "npm:^3.0.1" + es6-error: "npm:^4.1.1" + matcher: "npm:^3.0.0" + roarr: "npm:^2.15.3" + semver: "npm:^7.3.2" + serialize-error: "npm:^7.0.1" + checksum: 10c0/bb8750d026b25da437072762fd739098bad92ff72f66483c3929db4579e072f5523960f7e7fd70ee0d75db48898067b5dc1c9c1d17888128cff008fcc34d1bd3 + languageName: node + linkType: hard + +"globalthis@npm:^1.0.1": + version: 1.0.4 + resolution: "globalthis@npm:1.0.4" + dependencies: + define-properties: "npm:^1.2.1" + gopd: "npm:^1.0.1" + checksum: 10c0/9d156f313af79d80b1566b93e19285f481c591ad6d0d319b4be5e03750d004dde40a39a0f26f7e635f9007a3600802f53ecd85a759b86f109e80a5f705e01846 + languageName: node + linkType: hard + +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: "npm:^1.1.3" + checksum: 10c0/505c05487f7944c552cee72087bf1567debb470d4355b1335f2c262d218ebbff805cd3715448fe29b4b380bae6912561d0467233e4165830efd28da241418c63 + languageName: node + linkType: hard + +"graceful-fs@npm:4.2.10": + version: 4.2.10 + resolution: "graceful-fs@npm:4.2.10" + checksum: 10c0/4223a833e38e1d0d2aea630c2433cfb94ddc07dfc11d511dbd6be1d16688c5be848acc31f9a5d0d0ddbfb56d2ee5a6ae0278aceeb0ca6a13f27e06b9956fb952 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236 + languageName: node + linkType: hard + +"has-proto@npm:^1.0.1": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: 10c0/35a6989f81e9f8022c2f4027f8b48a552de714938765d019dbea6bb547bd49ce5010a3c7c32ec6ddac6e48fc546166a3583b128f5a7add8b058a6d8b4afec205 + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: 10c0/e6922b4345a3f37069cdfe8600febbca791c94988c01af3394d86ca3360b4b93928bbf395859158f88099cb10b19d98e3bbab7c9ff2c1bd09cf665ee90afa2c3 + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 10c0/ebdb2f4895c26bb08a8a100b62d362e49b2190bcfd84b76bc4be1a3bd4d254ec52d0dd9f2fbcc093fc5eb878b20c52146f9dfd33e2686ed28982187be593b47c + languageName: node + linkType: hard + +"hasown@npm:^2.0.0": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 + languageName: node + linkType: hard + +"help-me@npm:^5.0.0": + version: 5.0.0 + resolution: "help-me@npm:5.0.0" + checksum: 10c0/054c0e2e9ae2231c85ab5e04f75109b9d068ffcc54e58fb22079822a5ace8ff3d02c66fd45379c902ad5ab825e5d2e1451fcc2f7eab1eb49e7d488133ba4cacb + languageName: node + linkType: hard + +"highlight.js@npm:^10.7.1": + version: 10.7.3 + resolution: "highlight.js@npm:10.7.3" + checksum: 10c0/073837eaf816922427a9005c56c42ad8786473dc042332dfe7901aa065e92bc3d94ebf704975257526482066abb2c8677cc0326559bb8621e046c21c5991c434 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc + languageName: node + linkType: hard + +"http-proxy-agent@npm:^4.0.1": + version: 4.0.1 + resolution: "http-proxy-agent@npm:4.0.1" + dependencies: + "@tootallnate/once": "npm:1" + agent-base: "npm:6" + debug: "npm:4" + checksum: 10c0/4fa4774d65b5331814b74ac05cefea56854fc0d5989c80b13432c1b0d42a14c9f4342ca3ad9f0359a52e78da12b1744c9f8a28e50042136ea9171675d972a5fd + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.0": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: "npm:6" + debug: "npm:4" + checksum: 10c0/6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.5 + resolution: "https-proxy-agent@npm:7.0.5" + dependencies: + agent-base: "npm:^7.0.2" + debug: "npm:4" + checksum: 10c0/2490e3acec397abeb88807db52cac59102d5ed758feee6df6112ab3ccd8325e8a1ce8bce6f4b66e5470eca102d31e425ace904242e4fa28dbe0c59c4bafa7b2c + languageName: node + linkType: hard + +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: "npm:^2.0.0" + checksum: 10c0/f34a2c20161d02303c2807badec2f3b49cbfbbb409abd4f95a07377ae01cfe6b59e3d15ac609cffcd8f2521f0eb37b7e1091acf65da99aa2a4f1ad63c21e7e7a + languageName: node + linkType: hard + +"iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 + languageName: node + linkType: hard + +"idb@npm:^8.0.0": + version: 8.0.0 + resolution: "idb@npm:8.0.0" + checksum: 10c0/d27547e03939d3d269cea38c3d4528569621ec134c717ebfc1ff816dce18e4f77372dba1d930384a9949ac56dc600e3790f98f1812a4164004e71fec302ee491 + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + +"infer-owner@npm:^1.0.4": + version: 1.0.4 + resolution: "infer-owner@npm:1.0.4" + checksum: 10c0/a7b241e3149c26e37474e3435779487f42f36883711f198c45794703c7556bc38af224088bd4d1a221a45b8208ae2c2bcf86200383621434d0c099304481c5b9 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + +"ini@npm:^1.3.4, ini@npm:~1.3.0": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: 10c0/ec93838d2328b619532e4f1ff05df7909760b6f66d9c9e2ded11e5c1897d6f2f9980c54dd638f88654b00919ce31e827040631eab0a3969e4d1abefa0719516a + languageName: node + linkType: hard + +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 + languageName: node + linkType: hard + +"joycon@npm:^3.1.1": + version: 3.1.1 + resolution: "joycon@npm:3.1.1" + checksum: 10c0/131fb1e98c9065d067fd49b6e685487ac4ad4d254191d7aa2c9e3b90f4e9ca70430c43cad001602bdbdabcf58717d3b5c5b7461c1bd8e39478c8de706b3fe6ae + languageName: node + linkType: hard + +"js-yaml@npm:^4.0.0, js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f + languageName: node + linkType: hard + +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 + languageName: node + linkType: hard + +"json-stringify-safe@npm:^5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 + languageName: node + linkType: hard + +"jsondiffpatch@npm:^0.5.0": + version: 0.5.0 + resolution: "jsondiffpatch@npm:0.5.0" + dependencies: + chalk: "npm:^3.0.0" + diff-match-patch: "npm:^1.0.0" + bin: + jsondiffpatch: bin/jsondiffpatch + checksum: 10c0/272271b92b20ebd303c002b4ffad6bcbf52dadb667c338509296b3c25e954535e5aa86c3675df5ae1525edad9ea7f7191c8beb921f0ee87569a58b4810299d87 + languageName: node + linkType: hard + +"lodash@npm:^4.17.20, lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^13.0.0": + version: 13.0.1 + resolution: "make-fetch-happen@npm:13.0.1" + dependencies: + "@npmcli/agent": "npm:^2.0.0" + cacache: "npm:^18.0.0" + http-cache-semantics: "npm:^4.1.1" + is-lambda: "npm:^1.0.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^3.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^0.6.3" + proc-log: "npm:^4.2.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^10.0.0" + checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e + languageName: node + linkType: hard + +"make-fetch-happen@npm:^9.1.0": + version: 9.1.0 + resolution: "make-fetch-happen@npm:9.1.0" + dependencies: + agentkeepalive: "npm:^4.1.3" + cacache: "npm:^15.2.0" + http-cache-semantics: "npm:^4.1.0" + http-proxy-agent: "npm:^4.0.1" + https-proxy-agent: "npm:^5.0.0" + is-lambda: "npm:^1.0.1" + lru-cache: "npm:^6.0.0" + minipass: "npm:^3.1.3" + minipass-collect: "npm:^1.0.2" + minipass-fetch: "npm:^1.3.2" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^0.6.2" + promise-retry: "npm:^2.0.1" + socks-proxy-agent: "npm:^6.0.0" + ssri: "npm:^8.0.0" + checksum: 10c0/2c737faf6a7f67077679da548b5bfeeef890595bf8c4323a1f76eae355d27ebb33dcf9cf1a673f944cf2f2a7cbf4e2b09f0a0a62931737728f210d902c6be966 + languageName: node + linkType: hard + +"matcher@npm:^3.0.0": + version: 3.0.0 + resolution: "matcher@npm:3.0.0" + dependencies: + escape-string-regexp: "npm:^4.0.0" + checksum: 10c0/2edf24194a2879690bcdb29985fc6bc0d003df44e04df21ebcac721fa6ce2f6201c579866bb92f9380bffe946f11ecd8cd31f34117fb67ebf8aca604918e127e + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + +"mimic-response@npm:^3.1.0": + version: 3.1.0 + resolution: "mimic-response@npm:3.1.0" + checksum: 10c0/0d6f07ce6e03e9e4445bee655202153bdb8a98d67ee8dc965ac140900d7a2688343e6b4c9a72cfc9ef2f7944dfd76eef4ab2482eb7b293a68b84916bac735362 + languageName: node + linkType: hard + +"minimatch@npm:^3.1.1": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + languageName: node + linkType: hard + +"minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.6": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 + languageName: node + linkType: hard + +"minipass-collect@npm:^1.0.2": + version: 1.0.2 + resolution: "minipass-collect@npm:1.0.2" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/8f82bd1f3095b24f53a991b04b67f4c710c894e518b813f0864a31de5570441a509be1ca17e0bb92b047591a8fdbeb886f502764fefb00d2f144f4011791e898 + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e + languageName: node + linkType: hard + +"minipass-fetch@npm:^1.3.2": + version: 1.4.1 + resolution: "minipass-fetch@npm:1.4.1" + dependencies: + encoding: "npm:^0.1.12" + minipass: "npm:^3.1.0" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^2.0.0" + dependenciesMeta: + encoding: + optional: true + checksum: 10c0/a43da7401cd7c4f24b993887d41bd37d097356083b0bb836fd655916467463a1e6e9e553b2da4fcbe8745bf23d40c8b884eab20745562199663b3e9060cd8e7a + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.5 + resolution: "minipass-fetch@npm:3.0.5" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^2.1.2" + dependenciesMeta: + encoding: + optional: true + checksum: 10c0/9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.2, minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb + languageName: node + linkType: hard + +"minipass@npm:^3.0.0, minipass@npm:^3.1.0, minipass@npm:^3.1.1, minipass@npm:^3.1.3": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 + languageName: node + linkType: hard + +"minizlib@npm:^2.0.0, minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: "npm:^3.0.0" + yallist: "npm:^4.0.0" + checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 + languageName: node + linkType: hard + +"mkdirp-classic@npm:^0.5.2, mkdirp-classic@npm:^0.5.3": + version: 0.5.3 + resolution: "mkdirp-classic@npm:0.5.3" + checksum: 10c0/95371d831d196960ddc3833cc6907e6b8f67ac5501a6582f47dfae5eb0f092e9f8ce88e0d83afcae95d6e2b61a01741ba03714eeafb6f7a6e9dcc158ac85b168 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf + languageName: node + linkType: hard + +"mkdirp@npm:^2.1.3": + version: 2.1.6 + resolution: "mkdirp@npm:2.1.6" + bin: + mkdirp: dist/cjs/src/bin.js + checksum: 10c0/96f551c651dd8f5f9435d53df1a7b9bfc553be769ee6da5192c37c1f303a376ef1c6996f96913d4a8d357060451d4526a346031d1919f92c58806a5fa3cd8dfe + languageName: node + linkType: hard + +"mock-socket@npm:^9.3.1": + version: 9.3.1 + resolution: "mock-socket@npm:9.3.1" + checksum: 10c0/0c53baa4acca12ed1ff9bddfdd4bc0cabe0fc96a3ed25a42a00d23b7a111eb6edfc2b44d93aef9a0c93a4a000b4d2d8dcff028488cd2a1e9cc416477ee341ce0 + languageName: node + linkType: hard + +"ms@npm:^2.0.0, ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + +"mz@npm:^2.4.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: "npm:^1.0.0" + object-assign: "npm:^4.0.1" + thenify-all: "npm:^1.0.0" + checksum: 10c0/103114e93f87362f0b56ab5b2e7245051ad0276b646e3902c98397d18bb8f4a77f2ea4a2c9d3ad516034ea3a56553b60d3f5f78220001ca4c404bd711bd0af39 + languageName: node + linkType: hard + +"napi-build-utils@npm:^1.0.1": + version: 1.0.2 + resolution: "napi-build-utils@npm:1.0.2" + checksum: 10c0/37fd2cd0ff2ad20073ce78d83fd718a740d568b225924e753ae51cb69d68f330c80544d487e5e5bd18e28702ed2ca469c2424ad948becd1862c1b0209542b2e9 + languageName: node + linkType: hard + +"negotiator@npm:^0.6.2, negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 + languageName: node + linkType: hard + +"nock@npm:^13.5.4": + version: 13.5.5 + resolution: "nock@npm:13.5.5" + dependencies: + debug: "npm:^4.1.0" + json-stringify-safe: "npm:^5.0.1" + propagate: "npm:^2.0.0" + checksum: 10c0/58be4dda214d6e1914232ae41a3ac4f4e05622f71eb82825816f3030e0343bd54c1001878a6bce8412067c1059730919f3d600069d76f1336da11f47bd3b5d40 + languageName: node + linkType: hard + +"node-abi@npm:^3.3.0": + version: 3.68.0 + resolution: "node-abi@npm:3.68.0" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/0f20cdb1216485ef399f581fe8fad300f1321cc66e08a7e2e7c6c6a1d89006799c464943e45dae19ec39ba581f6417dff4af21324a09c1e74a4e2fc1bceb0f83 + languageName: node + linkType: hard + +"node-addon-api@npm:^7.0.0": + version: 7.1.1 + resolution: "node-addon-api@npm:7.1.1" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/fb32a206276d608037fa1bcd7e9921e177fe992fc610d098aa3128baca3c0050fc1e014fa007e9b3874cf865ddb4f5bd9f43ccb7cbbbe4efaff6a83e920b17e9 + languageName: node + linkType: hard + +"node-domexception@npm:^1.0.0": + version: 1.0.0 + resolution: "node-domexception@npm:1.0.0" + checksum: 10c0/5e5d63cda29856402df9472335af4bb13875e1927ad3be861dc5ebde38917aecbf9ae337923777af52a48c426b70148815e890a5d72760f1b4d758cc671b1a2b + languageName: node + linkType: hard + +"node-fetch@npm:^3.3.2": + version: 3.3.2 + resolution: "node-fetch@npm:3.3.2" + dependencies: + data-uri-to-buffer: "npm:^4.0.0" + fetch-blob: "npm:^3.1.4" + formdata-polyfill: "npm:^4.0.10" + checksum: 10c0/f3d5e56190562221398c9f5750198b34cf6113aa304e34ee97c94fd300ec578b25b2c2906edba922050fce983338fde0d5d34fcb0fc3336ade5bd0e429ad7538 + languageName: node + linkType: hard + +"node-gyp@npm:8.x": + version: 8.4.1 + resolution: "node-gyp@npm:8.4.1" + dependencies: + env-paths: "npm:^2.2.0" + glob: "npm:^7.1.4" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^9.1.0" + nopt: "npm:^5.0.0" + npmlog: "npm:^6.0.0" + rimraf: "npm:^3.0.2" + semver: "npm:^7.3.5" + tar: "npm:^6.1.2" + which: "npm:^2.0.2" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/80ef333b3a882eb6a2695a8e08f31d618f4533eff192864e4a3a16b67ff0abc9d8c1d5fac0395550ec699326b9248c5e2b3be178492f7f4d1ccf97d2cf948021 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 10.2.0 + resolution: "node-gyp@npm:10.2.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + glob: "npm:^10.3.10" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^13.0.0" + nopt: "npm:^7.0.0" + proc-log: "npm:^4.1.0" + semver: "npm:^7.3.5" + tar: "npm:^6.2.1" + which: "npm:^4.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/00630d67dbd09a45aee0a5d55c05e3916ca9e6d427ee4f7bc392d2d3dc5fad7449b21fc098dd38260a53d9dcc9c879b36704a1994235d4707e7271af7e9a835b + languageName: node + linkType: hard + +"nopt@npm:^5.0.0": + version: 5.0.0 + resolution: "nopt@npm:5.0.0" + dependencies: + abbrev: "npm:1" + bin: + nopt: bin/nopt.js + checksum: 10c0/fc5c4f07155cb455bf5fc3dd149fac421c1a40fd83c6bfe83aa82b52f02c17c5e88301321318adaa27611c8a6811423d51d29deaceab5fa158b585a61a551061 + languageName: node + linkType: hard + +"nopt@npm:^7.0.0": + version: 7.2.1 + resolution: "nopt@npm:7.2.1" + dependencies: + abbrev: "npm:^2.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81 + languageName: node + linkType: hard + +"npmlog@npm:^6.0.0": + version: 6.0.2 + resolution: "npmlog@npm:6.0.2" + dependencies: + are-we-there-yet: "npm:^3.0.0" + console-control-strings: "npm:^1.1.0" + gauge: "npm:^4.0.3" + set-blocking: "npm:^2.0.0" + checksum: 10c0/0cacedfbc2f6139c746d9cd4a85f62718435ad0ca4a2d6459cd331dd33ae58206e91a0742c1558634efcde3f33f8e8e7fd3adf1bfe7978310cf00bd55cccf890 + languageName: node + linkType: hard + +"object-assign@npm:^4.0.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: 10c0/b11f7ccdbc6d406d1f186cdadb9d54738e347b2692a14439ca5ac70c225fa6db46db809711b78589866d47b25fc3e8dee0b4c722ac751e11180f9380e3d8601d + languageName: node + linkType: hard + +"on-exit-leak-free@npm:^2.1.0": + version: 2.1.2 + resolution: "on-exit-leak-free@npm:2.1.2" + checksum: 10c0/faea2e1c9d696ecee919026c32be8d6a633a7ac1240b3b87e944a380e8a11dc9c95c4a1f8fb0568de7ab8db3823e790f12bda45296b1d111e341aad3922a0570 + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 + languageName: node + linkType: hard + +"package-json-from-dist@npm:^1.0.0": + version: 1.0.0 + resolution: "package-json-from-dist@npm:1.0.0" + checksum: 10c0/e3ffaf6ac1040ab6082a658230c041ad14e72fabe99076a2081bb1d5d41210f11872403fc09082daf4387fc0baa6577f96c9c0e94c90c394fd57794b66aa4033 + languageName: node + linkType: hard + +"parse5-htmlparser2-tree-adapter@npm:^6.0.0": + version: 6.0.1 + resolution: "parse5-htmlparser2-tree-adapter@npm:6.0.1" + dependencies: + parse5: "npm:^6.0.1" + checksum: 10c0/dfa5960e2aaf125707e19a4b1bc333de49232eba5a6ffffb95d313a7d6087c3b7a274b58bee8d3bd41bdf150638815d1d601a42bbf2a0345208c3c35b1279556 + languageName: node + linkType: hard + +"parse5@npm:^5.1.1": + version: 5.1.1 + resolution: "parse5@npm:5.1.1" + checksum: 10c0/b0f87a77a7fea5f242e3d76917c983bbea47703b9371801d51536b78942db6441cbda174bf84eb30e47315ddc6f8a0b57d68e562c790154430270acd76c1fa03 + languageName: node + linkType: hard + +"parse5@npm:^6.0.1": + version: 6.0.1 + resolution: "parse5@npm:6.0.1" + checksum: 10c0/595821edc094ecbcfb9ddcb46a3e1fe3a718540f8320eff08b8cf6742a5114cce2d46d45f95c26191c11b184dcaf4e2960abcd9c5ed9eb9393ac9a37efcfdecb + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + languageName: node + linkType: hard + +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d + languageName: node + linkType: hard + +"pino-abstract-transport@npm:^1.0.0, pino-abstract-transport@npm:^1.2.0": + version: 1.2.0 + resolution: "pino-abstract-transport@npm:1.2.0" + dependencies: + readable-stream: "npm:^4.0.0" + split2: "npm:^4.0.0" + checksum: 10c0/b4ab59529b7a91f488440147fc58ee0827a6c1c5ca3627292339354b1381072c1a6bfa9b46d03ad27872589e8477ecf74da12cf286e1e6b665ac64a3b806bf07 + languageName: node + linkType: hard + +"pino-pretty@npm:^11.0.0": + version: 11.2.2 + resolution: "pino-pretty@npm:11.2.2" + dependencies: + colorette: "npm:^2.0.7" + dateformat: "npm:^4.6.3" + fast-copy: "npm:^3.0.2" + fast-safe-stringify: "npm:^2.1.1" + help-me: "npm:^5.0.0" + joycon: "npm:^3.1.1" + minimist: "npm:^1.2.6" + on-exit-leak-free: "npm:^2.1.0" + pino-abstract-transport: "npm:^1.0.0" + pump: "npm:^3.0.0" + readable-stream: "npm:^4.0.0" + secure-json-parse: "npm:^2.4.0" + sonic-boom: "npm:^4.0.1" + strip-json-comments: "npm:^3.1.1" + bin: + pino-pretty: bin.js + checksum: 10c0/3ce1769907886a5584f6c8123d9bc987712ad10a375797733a0fe95a238df587dac8e2b709bab291c4e30d41b0cf65808c708c96f8eb98b2778b6df60afa7e66 + languageName: node + linkType: hard + +"pino-std-serializers@npm:^6.0.0": + version: 6.2.2 + resolution: "pino-std-serializers@npm:6.2.2" + checksum: 10c0/8f1c7f0f0d8f91e6c6b5b2a6bfb48f06441abeb85f1c2288319f736f9c6d814fbeebe928d2314efc2ba6018fa7db9357a105eca9fc99fc1f28945a8a8b28d3d5 + languageName: node + linkType: hard + +"pino@npm:^8.19.0": + version: 8.21.0 + resolution: "pino@npm:8.21.0" + dependencies: + atomic-sleep: "npm:^1.0.0" + fast-redact: "npm:^3.1.1" + on-exit-leak-free: "npm:^2.1.0" + pino-abstract-transport: "npm:^1.2.0" + pino-std-serializers: "npm:^6.0.0" + process-warning: "npm:^3.0.0" + quick-format-unescaped: "npm:^4.0.3" + real-require: "npm:^0.2.0" + safe-stable-stringify: "npm:^2.3.1" + sonic-boom: "npm:^3.7.0" + thread-stream: "npm:^2.6.0" + bin: + pino: bin.js + checksum: 10c0/9cf8b3e8741ecc42b56d07fbb3d09f48c96c07a9a6d7196b69a60b56109899f8a7dfa14d85787d165a1038b74c7ca18e76cecce7c26ec14e0f05c73008df7891 + languageName: node + linkType: hard + +"prebuild-install@npm:^7.1.1": + version: 7.1.2 + resolution: "prebuild-install@npm:7.1.2" + dependencies: + detect-libc: "npm:^2.0.0" + expand-template: "npm:^2.0.3" + github-from-package: "npm:0.0.0" + minimist: "npm:^1.2.3" + mkdirp-classic: "npm:^0.5.3" + napi-build-utils: "npm:^1.0.1" + node-abi: "npm:^3.3.0" + pump: "npm:^3.0.0" + rc: "npm:^1.2.7" + simple-get: "npm:^4.0.0" + tar-fs: "npm:^2.0.0" + tunnel-agent: "npm:^0.6.0" + bin: + prebuild-install: bin.js + checksum: 10c0/e64868ba9ef2068fd7264f5b03e5298a901e02a450acdb1f56258d88c09dea601eefdb3d1dfdff8513fdd230a92961712be0676192626a3b4d01ba154d48bdd3 + languageName: node + linkType: hard + +"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9 + languageName: node + linkType: hard + +"process-warning@npm:^3.0.0": + version: 3.0.0 + resolution: "process-warning@npm:3.0.0" + checksum: 10c0/60f3c8ddee586f0706c1e6cb5aa9c86df05774b9330d792d7c8851cf0031afd759d665404d07037e0b4901b55c44a423f07bdc465c63de07d8d23196bb403622 + languageName: node + linkType: hard + +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 + languageName: node + linkType: hard + +"promise-inflight@npm:^1.0.1": + version: 1.0.1 + resolution: "promise-inflight@npm:1.0.1" + checksum: 10c0/d179d148d98fbff3d815752fa9a08a87d3190551d1420f17c4467f628214db12235ae068d98cd001f024453676d8985af8f28f002345646c4ece4600a79620bc + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 + languageName: node + linkType: hard + +"propagate@npm:^2.0.0": + version: 2.0.1 + resolution: "propagate@npm:2.0.1" + checksum: 10c0/01e1023b60ae4050d1a2783f976d7db702022dbdb70dba797cceedad8cfc01b3939c41e77032f8c32aa9d93192fe937ebba1345e8604e5ce61fd3b62ee3003b8 + languageName: node + linkType: hard + +"proto-list@npm:~1.2.1": + version: 1.2.4 + resolution: "proto-list@npm:1.2.4" + checksum: 10c0/b9179f99394ec8a68b8afc817690185f3b03933f7b46ce2e22c1930dc84b60d09f5ad222beab4e59e58c6c039c7f7fcf620397235ef441a356f31f9744010e12 + languageName: node + linkType: hard + +"proxy-from-env@npm:^1.1.0": + version: 1.1.0 + resolution: "proxy-from-env@npm:1.1.0" + checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b + languageName: node + linkType: hard + +"pump@npm:^3.0.0": + version: 3.0.2 + resolution: "pump@npm:3.0.2" + dependencies: + end-of-stream: "npm:^1.1.0" + once: "npm:^1.3.1" + checksum: 10c0/5ad655cb2a7738b4bcf6406b24ad0970d680649d996b55ad20d1be8e0c02394034e4c45ff7cd105d87f1e9b96a0e3d06fd28e11fae8875da26e7f7a8e2c9726f + languageName: node + linkType: hard + +"quick-format-unescaped@npm:^4.0.3": + version: 4.0.4 + resolution: "quick-format-unescaped@npm:4.0.4" + checksum: 10c0/fe5acc6f775b172ca5b4373df26f7e4fd347975578199e7d74b2ae4077f0af05baa27d231de1e80e8f72d88275ccc6028568a7a8c9ee5e7368ace0e18eff93a4 + languageName: node + linkType: hard + +"rc@npm:^1.2.7": + version: 1.2.8 + resolution: "rc@npm:1.2.8" + dependencies: + deep-extend: "npm:^0.6.0" + ini: "npm:~1.3.0" + minimist: "npm:^1.2.0" + strip-json-comments: "npm:~2.0.1" + bin: + rc: ./cli.js + checksum: 10c0/24a07653150f0d9ac7168e52943cc3cb4b7a22c0e43c7dff3219977c2fdca5a2760a304a029c20811a0e79d351f57d46c9bde216193a0f73978496afc2b85b15 + languageName: node + linkType: hard + +"readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 + languageName: node + linkType: hard + +"readable-stream@npm:^4.0.0": + version: 4.5.2 + resolution: "readable-stream@npm:4.5.2" + dependencies: + abort-controller: "npm:^3.0.0" + buffer: "npm:^6.0.3" + events: "npm:^3.3.0" + process: "npm:^0.11.10" + string_decoder: "npm:^1.3.0" + checksum: 10c0/a2c80e0e53aabd91d7df0330929e32d0a73219f9477dbbb18472f6fdd6a11a699fc5d172a1beff98d50eae4f1496c950ffa85b7cc2c4c196963f289a5f39275d + languageName: node + linkType: hard + +"real-require@npm:^0.2.0": + version: 0.2.0 + resolution: "real-require@npm:0.2.0" + checksum: 10c0/23eea5623642f0477412ef8b91acd3969015a1501ed34992ada0e3af521d3c865bb2fe4cdbfec5fe4b505f6d1ef6a03e5c3652520837a8c3b53decff7e74b6a0 + languageName: node + linkType: hard + +"reflect-metadata@npm:^0.2.1": + version: 0.2.2 + resolution: "reflect-metadata@npm:0.2.2" + checksum: 10c0/1cd93a15ea291e420204955544637c264c216e7aac527470e393d54b4bb075f10a17e60d8168ec96600c7e0b9fcc0cb0bb6e91c3fbf5b0d8c9056f04e6ac1ec2 + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: "npm:^7.1.3" + bin: + rimraf: bin.js + checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 + languageName: node + linkType: hard + +"roarr@npm:^2.15.3": + version: 2.15.4 + resolution: "roarr@npm:2.15.4" + dependencies: + boolean: "npm:^3.0.1" + detect-node: "npm:^2.0.4" + globalthis: "npm:^1.0.1" + json-stringify-safe: "npm:^5.0.1" + semver-compare: "npm:^1.0.0" + sprintf-js: "npm:^1.1.2" + checksum: 10c0/7d01d4c14513c461778dd673a8f9e53255221f8d04173aafeb8e11b23d8b659bb83f1c90cfe81af7f9c213b8084b404b918108fd792bda76678f555340cc64ec + languageName: node + linkType: hard + +"rxjs@npm:^7.8.1": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/3c49c1ecd66170b175c9cacf5cef67f8914dcbc7cd0162855538d365c83fea631167cacb644b3ce533b2ea0e9a4d0b12175186985f89d75abe73dbd8f7f06f68 + languageName: node + linkType: hard + +"safe-buffer@npm:^5.0.1, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + +"safe-stable-stringify@npm:^2.3.1": + version: 2.5.0 + resolution: "safe-stable-stringify@npm:2.5.0" + checksum: 10c0/baea14971858cadd65df23894a40588ed791769db21bafb7fd7608397dbdce9c5aac60748abae9995e0fc37e15f2061980501e012cd48859740796bea2987f49 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + +"scale-ts@npm:^1.6.0": + version: 1.6.0 + resolution: "scale-ts@npm:1.6.0" + checksum: 10c0/ce4ea3559c6b6bdf2a62454aac83cc3151ae93d1a507ddb8e95e83ce1190085aed61c46901bd42d41d8f8ba58279d7e37057c68c2b674c2d39b8cf5d169e90dd + languageName: node + linkType: hard + +"secure-json-parse@npm:^2.4.0": + version: 2.7.0 + resolution: "secure-json-parse@npm:2.7.0" + checksum: 10c0/f57eb6a44a38a3eeaf3548228585d769d788f59007454214fab9ed7f01fbf2e0f1929111da6db28cf0bcc1a2e89db5219a59e83eeaec3a54e413a0197ce879e4 + languageName: node + linkType: hard + +"semver-compare@npm:^1.0.0": + version: 1.0.0 + resolution: "semver-compare@npm:1.0.0" + checksum: 10c0/9ef4d8b81847556f0865f46ddc4d276bace118c7cb46811867af82e837b7fc473911981d5a0abc561fa2db487065572217e5b06e18701c4281bcdd2a1affaff1 + languageName: node + linkType: hard + +"semver@npm:^7.3.2, semver@npm:^7.3.5": + version: 7.6.3 + resolution: "semver@npm:7.6.3" + bin: + semver: bin/semver.js + checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf + languageName: node + linkType: hard + +"serialize-error@npm:^7.0.1": + version: 7.0.1 + resolution: "serialize-error@npm:7.0.1" + dependencies: + type-fest: "npm:^0.13.1" + checksum: 10c0/7982937d578cd901276c8ab3e2c6ed8a4c174137730f1fb0402d005af209a0e84d04acc874e317c936724c7b5b26c7a96ff7e4b8d11a469f4924a4b0ea814c05 + languageName: node + linkType: hard + +"set-blocking@npm:^2.0.0": + version: 2.0.0 + resolution: "set-blocking@npm:2.0.0" + checksum: 10c0/9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454 + languageName: node + linkType: hard + +"sha.js@npm:^2.4.11": + version: 2.4.11 + resolution: "sha.js@npm:2.4.11" + dependencies: + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + bin: + sha.js: ./bin.js + checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 + languageName: node + linkType: hard + +"simple-concat@npm:^1.0.0": + version: 1.0.1 + resolution: "simple-concat@npm:1.0.1" + checksum: 10c0/62f7508e674414008910b5397c1811941d457dfa0db4fd5aa7fa0409eb02c3609608dfcd7508cace75b3a0bf67a2a77990711e32cd213d2c76f4fd12ee86d776 + languageName: node + linkType: hard + +"simple-get@npm:^4.0.0": + version: 4.0.1 + resolution: "simple-get@npm:4.0.1" + dependencies: + decompress-response: "npm:^6.0.0" + once: "npm:^1.3.1" + simple-concat: "npm:^1.0.0" + checksum: 10c0/b0649a581dbca741babb960423248899203165769747142033479a7dc5e77d7b0fced0253c731cd57cf21e31e4d77c9157c3069f4448d558ebc96cf9e1eebcf0 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 + languageName: node + linkType: hard + +"smoldot@npm:2.0.26": + version: 2.0.26 + resolution: "smoldot@npm:2.0.26" + dependencies: + ws: "npm:^8.8.1" + checksum: 10c0/a4788fb92e5ed6e8c3d171d00474712c6f98f62cae68543f1029e7976a64ce9c8126956e50d6bd89482df8568f8ac043d5eb50b63f44f9a6062cbc49f0ef2dad + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^6.0.0": + version: 6.2.1 + resolution: "socks-proxy-agent@npm:6.2.1" + dependencies: + agent-base: "npm:^6.0.2" + debug: "npm:^4.3.3" + socks: "npm:^2.6.2" + checksum: 10c0/d75c1cf1fdd7f8309a43a77f84409b793fc0f540742ef915154e70ac09a08b0490576fe85d4f8d68bbf80e604a62957a17ab5ef50d312fe1442b0ab6f8f6e6f6 + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.4 + resolution: "socks-proxy-agent@npm:8.0.4" + dependencies: + agent-base: "npm:^7.1.1" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10c0/345593bb21b95b0508e63e703c84da11549f0a2657d6b4e3ee3612c312cb3a907eac10e53b23ede3557c6601d63252103494caa306b66560f43af7b98f53957a + languageName: node + linkType: hard + +"socks@npm:^2.6.2, socks@npm:^2.8.3": + version: 2.8.3 + resolution: "socks@npm:2.8.3" + dependencies: + ip-address: "npm:^9.0.5" + smart-buffer: "npm:^4.2.0" + checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 + languageName: node + linkType: hard + +"sonic-boom@npm:^3.7.0": + version: 3.8.1 + resolution: "sonic-boom@npm:3.8.1" + dependencies: + atomic-sleep: "npm:^1.0.0" + checksum: 10c0/9bf338f86147db50e116484f74f2e29a321a12733e0cefab3087c80dd32bf4df3d7407dbcafc13bc39ac269d9dd61dd6ef952354b9503392d4e1e7414f8e360e + languageName: node + linkType: hard + +"sonic-boom@npm:^4.0.1": + version: 4.1.0 + resolution: "sonic-boom@npm:4.1.0" + dependencies: + atomic-sleep: "npm:^1.0.0" + checksum: 10c0/4c9e082db296fbfb02e22a1a9b8de8b82f5965697dda3fe7feadc4759bf25d1de0094e3c35f16e015bfdc00fad7b8cf15bef5b0144501a2a5c5b86efb5684096 + languageName: node + linkType: hard + +"split2@npm:^4.0.0": + version: 4.2.0 + resolution: "split2@npm:4.2.0" + checksum: 10c0/b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534 + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.2, sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec + languageName: node + linkType: hard + +"sqlite3@npm:^5.1.7": + version: 5.1.7 + resolution: "sqlite3@npm:5.1.7" + dependencies: + bindings: "npm:^1.5.0" + node-addon-api: "npm:^7.0.0" + node-gyp: "npm:8.x" + prebuild-install: "npm:^7.1.1" + tar: "npm:^6.1.11" + peerDependencies: + node-gyp: 8.x + dependenciesMeta: + node-gyp: + optional: true + peerDependenciesMeta: + node-gyp: + optional: true + checksum: 10c0/10daab5d7854bd0ec3c7690c00359cd3444eabc869b68c68dcb61374a8fa5e2f4be06cf0aba78f7a16336d49e83e4631e8af98f8bd33c772fe8d60b45fa60bc1 + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227 + languageName: node + linkType: hard + +"ssri@npm:^8.0.0, ssri@npm:^8.0.1": + version: 8.0.1 + resolution: "ssri@npm:8.0.1" + dependencies: + minipass: "npm:^3.1.1" + checksum: 10c0/5cfae216ae02dcd154d1bbed2d0a60038a4b3a2fcaac3c7e47401ff4e058e551ee74cfdba618871bf168cd583db7b8324f94af6747d4303b73cd4c3f6dc5c9c2 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: "npm:~5.2.0" + checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd + languageName: node + linkType: hard + +"strip-json-comments@npm:~2.0.1": + version: 2.0.1 + resolution: "strip-json-comments@npm:2.0.1" + checksum: 10c0/b509231cbdee45064ff4f9fd73609e2bcc4e84a4d508e9dd0f31f70356473fde18abfb5838c17d56fb236f5a06b102ef115438de0600b749e818a35fbbc48c43 + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 + languageName: node + linkType: hard + +"tar-fs@npm:^2.0.0": + version: 2.1.1 + resolution: "tar-fs@npm:2.1.1" + dependencies: + chownr: "npm:^1.1.1" + mkdirp-classic: "npm:^0.5.2" + pump: "npm:^3.0.0" + tar-stream: "npm:^2.1.4" + checksum: 10c0/871d26a934bfb7beeae4c4d8a09689f530b565f79bd0cf489823ff0efa3705da01278160da10bb006d1a793fa0425cf316cec029b32a9159eacbeaff4965fb6d + languageName: node + linkType: hard + +"tar-stream@npm:^2.1.4": + version: 2.2.0 + resolution: "tar-stream@npm:2.2.0" + dependencies: + bl: "npm:^4.0.3" + end-of-stream: "npm:^1.4.1" + fs-constants: "npm:^1.0.0" + inherits: "npm:^2.0.3" + readable-stream: "npm:^3.1.1" + checksum: 10c0/2f4c910b3ee7196502e1ff015a7ba321ec6ea837667220d7bcb8d0852d51cb04b87f7ae471008a6fb8f5b1a1b5078f62f3a82d30c706f20ada1238ac797e7692 + languageName: node + linkType: hard + +"tar@npm:^6.0.2, tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + dependencies: + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 + languageName: node + linkType: hard + +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: "npm:>= 3.1.0 < 4" + checksum: 10c0/9b896a22735e8122754fe70f1d65f7ee691c1d70b1f116fda04fea103d0f9b356e3676cb789506e3909ae0486a79a476e4914b0f92472c2e093d206aed4b7d6b + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: "npm:^1.0.0" + checksum: 10c0/f375aeb2b05c100a456a30bc3ed07ef03a39cbdefe02e0403fb714b8c7e57eeaad1a2f5c4ecfb9ce554ce3db9c2b024eba144843cd9e344566d9fcee73b04767 + languageName: node + linkType: hard + +"thread-stream@npm:^2.6.0": + version: 2.7.0 + resolution: "thread-stream@npm:2.7.0" + dependencies: + real-require: "npm:^0.2.0" + checksum: 10c0/d45f0cd1d7cea3986594d9c46ecc89c6912d1b44de80dfb718de4422658f4bc996b1cc8e3461bce2d3410899762a72c44daf48f7a943b6c6801a7b348d1c3b7c + languageName: node + linkType: hard + +"tslib@npm:^2.1.0, tslib@npm:^2.5.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.7.0": + version: 2.7.0 + resolution: "tslib@npm:2.7.0" + checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 + languageName: node + linkType: hard + +"tunnel-agent@npm:^0.6.0": + version: 0.6.0 + resolution: "tunnel-agent@npm:0.6.0" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10c0/4c7a1b813e7beae66fdbf567a65ec6d46313643753d0beefb3c7973d66fcec3a1e7f39759f0a0b4465883499c6dc8b0750ab8b287399af2e583823e40410a17a + languageName: node + linkType: hard + +"type-fest@npm:^0.13.1": + version: 0.13.1 + resolution: "type-fest@npm:0.13.1" + checksum: 10c0/0c0fa07ae53d4e776cf4dac30d25ad799443e9eef9226f9fddbb69242db86b08584084a99885cfa5a9dfe4c063ebdc9aa7b69da348e735baede8d43f1aeae93b + languageName: node + linkType: hard + +"typeorm@npm:^0.3.20": + version: 0.3.20 + resolution: "typeorm@npm:0.3.20" + dependencies: + "@sqltools/formatter": "npm:^1.2.5" + app-root-path: "npm:^3.1.0" + buffer: "npm:^6.0.3" + chalk: "npm:^4.1.2" + cli-highlight: "npm:^2.1.11" + dayjs: "npm:^1.11.9" + debug: "npm:^4.3.4" + dotenv: "npm:^16.0.3" + glob: "npm:^10.3.10" + mkdirp: "npm:^2.1.3" + reflect-metadata: "npm:^0.2.1" + sha.js: "npm:^2.4.11" + tslib: "npm:^2.5.0" + uuid: "npm:^9.0.0" + yargs: "npm:^17.6.2" + peerDependencies: + "@google-cloud/spanner": ^5.18.0 + "@sap/hana-client": ^2.12.25 + better-sqlite3: ^7.1.2 || ^8.0.0 || ^9.0.0 + hdb-pool: ^0.1.6 + ioredis: ^5.0.4 + mongodb: ^5.8.0 + mssql: ^9.1.1 || ^10.0.1 + mysql2: ^2.2.5 || ^3.0.1 + oracledb: ^6.3.0 + pg: ^8.5.1 + pg-native: ^3.0.0 + pg-query-stream: ^4.0.0 + redis: ^3.1.1 || ^4.0.0 + sql.js: ^1.4.0 + sqlite3: ^5.0.3 + ts-node: ^10.7.0 + typeorm-aurora-data-api-driver: ^2.0.0 + peerDependenciesMeta: + "@google-cloud/spanner": + optional: true + "@sap/hana-client": + optional: true + better-sqlite3: + optional: true + hdb-pool: + optional: true + ioredis: + optional: true + mongodb: + optional: true + mssql: + optional: true + mysql2: + optional: true + oracledb: + optional: true + pg: + optional: true + pg-native: + optional: true + pg-query-stream: + optional: true + redis: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + ts-node: + optional: true + typeorm-aurora-data-api-driver: + optional: true + bin: + typeorm: cli.js + typeorm-ts-node-commonjs: cli-ts-node-commonjs.js + typeorm-ts-node-esm: cli-ts-node-esm.js + checksum: 10c0/7e4be724641beef86ae36289c87b6e66bfaf19a4313f089926d36d2d6f0d67f9314d942711c9d83ab8a174b8622148c2f7e83e6c1448d638ee3ab24469257814 + languageName: node + linkType: hard + +"undici-types@npm:~6.19.2": + version: 6.19.8 + resolution: "undici-types@npm:6.19.8" + checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 + languageName: node + linkType: hard + +"unique-filename@npm:^1.1.1": + version: 1.1.1 + resolution: "unique-filename@npm:1.1.1" + dependencies: + unique-slug: "npm:^2.0.0" + checksum: 10c0/d005bdfaae6894da8407c4de2b52f38b3c58ec86e79fc2ee19939da3085374413b073478ec54e721dc8e32b102cf9e50d0481b8331abdc62202e774b789ea874 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: "npm:^4.0.0" + checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f + languageName: node + linkType: hard + +"unique-slug@npm:^2.0.0": + version: 2.0.2 + resolution: "unique-slug@npm:2.0.2" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10c0/9eabc51680cf0b8b197811a48857e41f1364b25362300c1ff636c0eca5ec543a92a38786f59cf0697e62c6f814b11ecbe64e8093db71246468a1f03b80c83970 + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 + languageName: node + linkType: hard + +"uuid@npm:^9.0.0": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" + bin: + uuid: dist/bin/uuid + checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b + languageName: node + linkType: hard + +"web-streams-polyfill@npm:^3.0.3": + version: 3.3.3 + resolution: "web-streams-polyfill@npm:3.3.3" + checksum: 10c0/64e855c47f6c8330b5436147db1c75cb7e7474d924166800e8e2aab5eb6c76aac4981a84261dd2982b3e754490900b99791c80ae1407a9fa0dcff74f82ea3a7f + languageName: node + linkType: hard + +"which@npm:^2.0.1, which@npm:^2.0.2": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a + languageName: node + linkType: hard + +"wide-align@npm:^1.1.5": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: "npm:^1.0.2 || 2 || 3 || 4" + checksum: 10c0/1d9c2a3e36dfb09832f38e2e699c367ef190f96b82c71f809bc0822c306f5379df87bab47bed27ea99106d86447e50eb972d3c516c2f95782807a9d082fbea95 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + languageName: node + linkType: hard + +"ws@npm:^8.16.0, ws@npm:^8.17.1, ws@npm:^8.8.1": + version: 8.18.0 + resolution: "ws@npm:8.18.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06 + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a + languageName: node + linkType: hard + +"yargs-parser@npm:^20.2.2": + version: 20.2.9 + resolution: "yargs-parser@npm:20.2.9" + checksum: 10c0/0685a8e58bbfb57fab6aefe03c6da904a59769bd803a722bb098bd5b0f29d274a1357762c7258fb487512811b8063fb5d2824a3415a0a4540598335b3b086c72 + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 + languageName: node + linkType: hard + +"yargs@npm:^16.0.0": + version: 16.2.0 + resolution: "yargs@npm:16.2.0" + dependencies: + cliui: "npm:^7.0.2" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.0" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^20.2.2" + checksum: 10c0/b1dbfefa679848442454b60053a6c95d62f2d2e21dd28def92b647587f415969173c6e99a0f3bab4f1b67ee8283bf735ebe3544013f09491186ba9e8a9a2b651 + languageName: node + linkType: hard + +"yargs@npm:^17.6.2, yargs@npm:^17.7.2": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: "npm:^8.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.3" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^21.1.1" + checksum: 10c0/ccd7e723e61ad5965fffbb791366db689572b80cca80e0f96aad968dfff4156cd7cd1ad18607afe1046d8241e6fb2d6c08bf7fa7bfb5eaec818735d8feac8f05 + languageName: node + linkType: hard + +"zod@npm:^3.22.4": + version: 3.23.8 + resolution: "zod@npm:3.23.8" + checksum: 10c0/8f14c87d6b1b53c944c25ce7a28616896319d95bc46a9660fe441adc0ed0a81253b02b5abdaeffedbeb23bdd25a0bf1c29d2c12dd919aef6447652dd295e3e69 + languageName: node + linkType: hard From 249d64daab88b62470d64b378b73acd9fb66f7d2 Mon Sep 17 00:00:00 2001 From: Antonio Date: Tue, 8 Oct 2024 16:02:59 +0200 Subject: [PATCH 28/46] fix: spiritnet pallet_vesting weights (#741) Not sure how, but the `force_vested_transfer` weight had a `todo!()`, which made the spiritnet tests fail (e.g. https://github.com/KILTprotocol/kilt-node/actions/runs/11028400485/job/30629273524). I copy-pasted the weights for peregrine since they will most likely match. Anyway, we will re-benchmark before the next release. Co-authored-by: Adel Golghalyani <48685760+Ad96el@users.noreply.github.com> --- .../spiritnet/src/weights/pallet_vesting.rs | 449 +++++++++++++----- 1 file changed, 330 insertions(+), 119 deletions(-) diff --git a/runtimes/spiritnet/src/weights/pallet_vesting.rs b/runtimes/spiritnet/src/weights/pallet_vesting.rs index b6f788c9b..745623719 100644 --- a/runtimes/spiritnet/src/weights/pallet_vesting.rs +++ b/runtimes/spiritnet/src/weights/pallet_vesting.rs @@ -16,150 +16,361 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org -//! Autogenerated weights for pallet_vesting +//! Autogenerated weights for `pallet_vesting` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-10, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 +//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/kilt-parachain // benchmark // pallet -// --chain=spiritnet-dev +// --template=.maintain/runtime-weight-template.hbs +// --header=HEADER-GPL +// --wasm-execution=compiled +// --heap-pages=4096 // --steps=50 // --repeat=20 +// --chain=spiritnet-dev // --pallet=pallet-vesting // --extrinsic=* -// --execution=wasm -// --wasm-execution=compiled -// --heap-pages=4096 -// --output=./runtimes/spiritnet/src/weights/pallet_vesting.rs -// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/pallet_vesting.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] -#![allow(clippy::unnecessary_cast)] use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weights for `pallet_vesting`. +/// Weight functions for `pallet_vesting`. pub struct WeightInfo(PhantomData); impl pallet_vesting::WeightInfo for WeightInfo { - - fn force_remove_vesting_schedule(_: u32, _: u32) -> cumulus_primitives_core::Weight { todo!() } - // Storage: Vesting Vesting (r:1 w:1) - // Proof: Vesting Vesting (max_values: None, max_size: Some(1169), added: 3644, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// Storage: `Vesting::Vesting` (r:1 w:1) + /// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1169), added: 3644, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[1, 28]`. fn vest_locked(l: u32, s: u32, ) -> Weight { - Weight::from_parts(33_400_641 as u64, 0) - // Standard Error: 7_324 - .saturating_add(Weight::from_parts(44_003 as u64, 0).saturating_mul(l as u64)) - // Standard Error: 13_032 - .saturating_add(Weight::from_parts(97_512 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) - } - // Storage: Vesting Vesting (r:1 w:1) - // Proof: Vesting Vesting (max_values: None, max_size: Some(1169), added: 3644, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - fn vest_unlocked(l: u32, _s: u32, ) -> Weight { - Weight::from_parts(35_069_059 as u64, 0) - // Standard Error: 4_836 - .saturating_add(Weight::from_parts(28_435 as u64, 0).saturating_mul(l as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) - } - // Storage: Vesting Vesting (r:1 w:1) - // Proof: Vesting Vesting (max_values: None, max_size: Some(1169), added: 3644, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `366 + l * (25 ±0) + s * (40 ±0)` + // Estimated: `4764` + // Minimum execution time: 32_716_000 picoseconds. + Weight::from_parts(31_624_238, 0) + .saturating_add(Weight::from_parts(0, 4764)) + // Standard Error: 610 + .saturating_add(Weight::from_parts(37_011, 0).saturating_mul(l.into())) + // Standard Error: 1_086 + .saturating_add(Weight::from_parts(141_132, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Vesting::Vesting` (r:1 w:1) + /// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1169), added: 3644, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[1, 28]`. + fn vest_unlocked(l: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `366 + l * (25 ±0) + s * (40 ±0)` + // Estimated: `4764` + // Minimum execution time: 34_933_000 picoseconds. + Weight::from_parts(34_148_826, 0) + .saturating_add(Weight::from_parts(0, 4764)) + // Standard Error: 527 + .saturating_add(Weight::from_parts(30_137, 0).saturating_mul(l.into())) + // Standard Error: 938 + .saturating_add(Weight::from_parts(127_675, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Vesting::Vesting` (r:1 w:1) + /// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1169), added: 3644, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[1, 28]`. fn vest_other_locked(l: u32, s: u32, ) -> Weight { - Weight::from_parts(40_289_268 as u64, 0) - // Standard Error: 4_796 - .saturating_add(Weight::from_parts(15_247 as u64, 0).saturating_mul(l as u64)) - // Standard Error: 8_533 - .saturating_add(Weight::from_parts(19_258 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) - } - // Storage: Vesting Vesting (r:1 w:1) - // Proof: Vesting Vesting (max_values: None, max_size: Some(1169), added: 3644, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `434 + l * (25 ±0) + s * (40 ±0)` + // Estimated: `4764` + // Minimum execution time: 34_970_000 picoseconds. + Weight::from_parts(33_396_762, 0) + .saturating_add(Weight::from_parts(0, 4764)) + // Standard Error: 655 + .saturating_add(Weight::from_parts(39_902, 0).saturating_mul(l.into())) + // Standard Error: 1_166 + .saturating_add(Weight::from_parts(146_668, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Vesting::Vesting` (r:1 w:1) + /// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1169), added: 3644, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[1, 28]`. fn vest_other_unlocked(l: u32, s: u32, ) -> Weight { - Weight::from_parts(38_349_682 as u64, 0) - // Standard Error: 4_594 - .saturating_add(Weight::from_parts(35_747 as u64, 0).saturating_mul(l as u64)) - // Standard Error: 8_173 - .saturating_add(Weight::from_parts(21_563 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) - } - // Storage: Vesting Vesting (r:1 w:1) - // Proof: Vesting Vesting (max_values: None, max_size: Some(1169), added: 3644, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - fn vested_transfer(l: u32, _s: u32, ) -> Weight { - Weight::from_parts(54_860_618 as u64, 0) - // Standard Error: 12_316 - .saturating_add(Weight::from_parts(51_714 as u64, 0).saturating_mul(l as u64)) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) - } - // Storage: Vesting Vesting (r:1 w:1) - // Proof: Vesting Vesting (max_values: None, max_size: Some(1169), added: 3644, mode: MaxEncodedLen) - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `434 + l * (25 ±0) + s * (40 ±0)` + // Estimated: `4764` + // Minimum execution time: 36_957_000 picoseconds. + Weight::from_parts(36_063_061, 0) + .saturating_add(Weight::from_parts(0, 4764)) + // Standard Error: 529 + .saturating_add(Weight::from_parts(31_993, 0).saturating_mul(l.into())) + // Standard Error: 941 + .saturating_add(Weight::from_parts(123_889, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Vesting::Vesting` (r:1 w:1) + /// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1169), added: 3644, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[0, 27]`. + fn vested_transfer(l: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `471 + l * (25 ±0) + s * (40 ±0)` + // Estimated: `4764` + // Minimum execution time: 66_016_000 picoseconds. + Weight::from_parts(66_301_649, 0) + .saturating_add(Weight::from_parts(0, 4764)) + // Standard Error: 1_235 + .saturating_add(Weight::from_parts(45_951, 0).saturating_mul(l.into())) + // Standard Error: 2_198 + .saturating_add(Weight::from_parts(171_498, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Vesting::Vesting` (r:1 w:1) + /// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1169), added: 3644, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[0, 27]`. fn force_vested_transfer(l: u32, s: u32, ) -> Weight { - Weight::from_parts(61_203_879 as u64, 0) - // Standard Error: 16_405 - .saturating_add(Weight::from_parts(50_578 as u64, 0).saturating_mul(l as u64)) - // Standard Error: 29_187 - .saturating_add(Weight::from_parts(59_211 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) - } - // Storage: Vesting Vesting (r:1 w:1) - // Proof: Vesting Vesting (max_values: None, max_size: Some(1169), added: 3644, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `578 + l * (25 ±0) + s * (40 ±0)` + // Estimated: `6204` + // Minimum execution time: 69_129_000 picoseconds. + Weight::from_parts(69_076_699, 0) + .saturating_add(Weight::from_parts(0, 6204)) + // Standard Error: 1_189 + .saturating_add(Weight::from_parts(45_612, 0).saturating_mul(l.into())) + // Standard Error: 2_116 + .saturating_add(Weight::from_parts(169_957, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Vesting::Vesting` (r:1 w:1) + /// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1169), added: 3644, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[2, 28]`. fn not_unlocking_merge_schedules(l: u32, s: u32, ) -> Weight { - Weight::from_parts(38_957_662 as u64, 0) - // Standard Error: 3_010 - .saturating_add(Weight::from_parts(34_046 as u64, 0).saturating_mul(l as u64)) - // Standard Error: 5_559 - .saturating_add(Weight::from_parts(37_367 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) - } - // Storage: Vesting Vesting (r:1 w:1) - // Proof: Vesting Vesting (max_values: None, max_size: Some(1169), added: 3644, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `471 + l * (25 ±0) + s * (40 ±0)` + // Estimated: `4764` + // Minimum execution time: 36_571_000 picoseconds. + Weight::from_parts(35_060_968, 0) + .saturating_add(Weight::from_parts(0, 4764)) + // Standard Error: 525 + .saturating_add(Weight::from_parts(42_288, 0).saturating_mul(l.into())) + // Standard Error: 970 + .saturating_add(Weight::from_parts(142_565, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Vesting::Vesting` (r:1 w:1) + /// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1169), added: 3644, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[2, 28]`. fn unlocking_merge_schedules(l: u32, s: u32, ) -> Weight { - Weight::from_parts(38_940_362 as u64, 0) - // Standard Error: 6_011 - .saturating_add(Weight::from_parts(28_458 as u64, 0).saturating_mul(l as u64)) - // Standard Error: 11_100 - .saturating_add(Weight::from_parts(59_868 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `471 + l * (25 ±0) + s * (40 ±0)` + // Estimated: `4764` + // Minimum execution time: 39_189_000 picoseconds. + Weight::from_parts(37_159_926, 0) + .saturating_add(Weight::from_parts(0, 4764)) + // Standard Error: 636 + .saturating_add(Weight::from_parts(46_607, 0).saturating_mul(l.into())) + // Standard Error: 1_175 + .saturating_add(Weight::from_parts(147_625, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Vesting::Vesting` (r:1 w:1) + /// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1169), added: 3644, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// The range of component `l` is `[0, 49]`. + /// The range of component `s` is `[2, 28]`. + fn force_remove_vesting_schedule(l: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `471 + l * (25 ±0) + s * (40 ±0)` + // Estimated: `4764` + // Minimum execution time: 39_755_000 picoseconds. + Weight::from_parts(38_003_429, 0) + .saturating_add(Weight::from_parts(0, 4764)) + // Standard Error: 864 + .saturating_add(Weight::from_parts(43_527, 0).saturating_mul(l.into())) + // Standard Error: 1_596 + .saturating_add(Weight::from_parts(144_859, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } +} + +#[cfg(test)] +mod tests { + #[test] + fn test_vest_locked() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 4764 + ); + } + #[test] + fn test_vest_unlocked() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 4764 + ); + } + #[test] + fn test_vest_other_locked() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 4764 + ); + } + #[test] + fn test_vest_other_unlocked() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 4764 + ); + } + #[test] + fn test_vested_transfer() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 4764 + ); + } + #[test] + fn test_force_vested_transfer() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 6204 + ); + } + #[test] + fn test_not_unlocking_merge_schedules() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 4764 + ); + } + #[test] + fn test_unlocking_merge_schedules() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 4764 + ); + } + #[test] + fn test_force_remove_vesting_schedule() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 4764 + ); } } From f2c90ce0a671ba48d96054266346f4bcff713341 Mon Sep 17 00:00:00 2001 From: Antonio Date: Tue, 8 Oct 2024 17:35:19 +0200 Subject: [PATCH 29/46] feat: add support for cross-chain switch reversal (#744) Fixes https://github.com/KILTprotocol/ticket/issues/3625. # Description * Removed the requirement that the pool must be enabled (i.e., not stopped) for the XCM `Matcher` implementation to work. The matcher should not really care about that. All other XCM components have not changed. * Add a new storage map to the switch pallet to track pending switches. The storage is updated either when calling `switch`, or when receiving a query response, which deletes entries from the map, as defined by the `OnResponse` implementation of the pallet itself. * Two more events for transfer finalisation and reversal have been added. * One error thrown when setting up a new pair with previous pending transfers still in storage is also added. * The pallet takes two more config items that aid in the error recovery process. * The XCM message sent to destination has changed. It now does the transfer as two distinct steps withdraw + deposit, where the second could fail. In either case, a report message is sent back to the source chain that will handle it accordingly. * I updated existing tests to check for the new storage map, and wrote tests for the `OnResponse` implementation. * I added a few support types and traits both in `runtime-common` and `kilt-support`. I will refactor the code in a different PR, where I will also tackle https://github.com/KILTprotocol/ticket/issues/3628. ## How to test You can run a Chopsticks environment, set up a switch pair, and try to do a switch for an account that has enough KILTs but has no ED on AssetHub. The operation will eventually fail and the transfer will be reverted back on KILT. A revert event is generated. You can also test a correct transfer, which will behave as before, while removing the pending transfer storage entry and generating an event for the transfer finalization. ## TODO - [x] Add runtime logic - [x] Test happy case with Chopsticks - [x] Update unit tests to check for the new storage entries - [x] Test with upcoming runtime allowing signed origins to send XCM messages ([PR](https://github.com/polkadot-fellows/runtimes/pull/407)) - [x] Update the hook trait to account for the new state a switch can be in - [x] Add unit tests for the new feature - [x] Update relevant calls, tests and benchmarks to clean up the additional storage - [x] Add event and tests when transfer is finally confirmed - [x] Test case when pair is paused with pending confirmations with Chopsticks - [x] Review XCM components to allow more things while the switch pair is paused (to accommodate the new revert capabilities) - [x] Update docs - [x] Revise log messages and log levels --- Cargo.lock | 2 + pallets/pallet-asset-switch/README.md | 14 +- pallets/pallet-asset-switch/src/lib.rs | 191 ++++- pallets/pallet-asset-switch/src/mock.rs | 37 +- pallets/pallet-asset-switch/src/switch.rs | 7 + .../src/tests/force_set_switch_pair.rs | 61 +- .../src/tests/force_unset_switch_pair.rs | 55 +- .../src/tests/set_switch_pair.rs | 47 +- .../pallet-asset-switch/src/tests/switch.rs | 63 +- pallets/pallet-asset-switch/src/traits.rs | 70 +- .../pallet-asset-switch/src/xcm/match/mock.rs | 8 +- .../pallet-asset-switch/src/xcm/match/mod.rs | 9 +- .../src/xcm/match/tests.rs | 45 +- pallets/pallet-asset-switch/src/xcm/mod.rs | 2 + .../pallet-asset-switch/src/xcm/query/mock.rs | 180 +++++ .../pallet-asset-switch/src/xcm/query/mod.rs | 217 +++++ .../src/xcm/query/tests/expecting_response.rs | 479 +++++++++++ .../src/xcm/query/tests/mod.rs | 20 + .../src/xcm/query/tests/on_response.rs | 760 ++++++++++++++++++ .../trade/switch_pair_remote_asset/mock.rs | 8 +- .../src/xcm/trade/xcm_fee_asset/mock.rs | 8 +- .../src/xcm/transact/mock.rs | 8 +- .../src/xcm/transfer/mock.rs | 8 +- runtimes/common/src/asset_switch/hooks.rs | 7 +- runtimes/peregrine/src/lib.rs | 3 +- runtimes/peregrine/src/xcm_config.rs | 14 +- runtimes/spiritnet/src/lib.rs | 3 +- runtimes/spiritnet/src/xcm_config.rs | 11 +- support/Cargo.toml | 5 + support/src/lib.rs | 1 + support/src/xcm.rs | 58 ++ 31 files changed, 2310 insertions(+), 91 deletions(-) create mode 100644 pallets/pallet-asset-switch/src/xcm/query/mock.rs create mode 100644 pallets/pallet-asset-switch/src/xcm/query/mod.rs create mode 100644 pallets/pallet-asset-switch/src/xcm/query/tests/expecting_response.rs create mode 100644 pallets/pallet-asset-switch/src/xcm/query/tests/mod.rs create mode 100644 pallets/pallet-asset-switch/src/xcm/query/tests/on_response.rs create mode 100644 support/src/xcm.rs diff --git a/Cargo.lock b/Cargo.lock index 29416c66d..bbcfd9ee5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5353,6 +5353,8 @@ dependencies = [ "sp-runtime", "sp-std", "sp-weights", + "staging-xcm", + "staging-xcm-executor", ] [[package]] diff --git a/pallets/pallet-asset-switch/README.md b/pallets/pallet-asset-switch/README.md index ce3815c74..af035d584 100644 --- a/pallets/pallet-asset-switch/README.md +++ b/pallets/pallet-asset-switch/README.md @@ -18,7 +18,7 @@ The pallet makes the following assumptions: * The switch ratio is pre-defined to be 1:1, i.e., one unit of local currency for one unit of remote asset. * The pallet only exposes calls to allow local -> remote switches. The reverse is assumed to happen via XCM reserve transfer from the configured remote location, for which the pallet crate provides all the XCM components that are dynamically configured based on the switch pair information stored within each instance of this pallet. * The sovereign account of the source chain at destination owns the remote assets in the amount that is specified when the switch pair is created. The validation of this requirement is delegated to the source chain governance in the act leading to the creation of the switch pair, as the source chain itself has currently no means of doing that. -* Similarly, the pallet has currently no way to verify that a transfer of remote tokens from the chain sovereign account to the **specified** beneficiary has been completed successfully on the remote location, hence it takes an optimistic approach given that all the verifiable preconditions for the switch are verified on the source chain, i.e., the chain from which the switch originates. Any unexpected issues in the transfer on the remote location will most likely require intervention of the source chain governance to re-balance the state and make it consistent again. +* To account for failure on the remote destination, the pallet stores unconfirmed operations in a storage map. The remote chain then sends `Report` messages back to either confirm or revert a transfer. In the meanwhile, the source chain (where this pallet is deployed) assumes the transfer will be successful and updates all related counters tracking the destination state, to then revert them in case of failures. ## Add the pallet to the runtime @@ -69,6 +69,7 @@ As the pallet is generic over the runtime specifics, the `Config` trait requires - `type SubmitterOrigin: EnsureOrigin`: The origin that can call the `switch` extrinsic and perform the switch. - `type SwitchHooks: SwitchHooks`: Any additional runtime-specific logic that can be injected both before and after local tokens are exchanged for the remote assets, and before and after the remote assets are converted into local tokens. - `type SwitchOrigin: EnsureOrigin`: The origin that can set, resume, and delete a switch pair. +- `type UniversalLocation: Get`: The location of the parachain relative to the global consensus space. - `type WeightInfo: WeightInfo`: The computed weights of the pallet after benchmarking it. - `type XcmRouter: SendXcm`: The component responsible for routing XCM messages to the switch pair remote location to perform the remote asset transfer from the chain's sovereign account to the specified beneficiary. @@ -82,6 +83,11 @@ The pallet has a single `SwitchPair` storage value that contains a `Option` that returns `true` if the given asset and sender match the stored switch pair XCM fee asset and reserve location respectively. It can be used for the `IsReserve` property of the [XcmExecutor::Config][XcmExecutor::Config]. * `IsSwitchPairRemoteAsset` in [xcm::transfer][xcm-transfer]: provides an implementation of `ContainsPair` that returns `true` if the given asset and sender match the stored switch pair remote asset and reserve location respectively. It can be used for the `IsReserve` property of the [XcmExecutor::Config][XcmExecutor::Config]. +The pallet itself implements the [OnResponse trait][on-response-trait], that must be added to runtimes that deploy this pallet to allow for the error-recovery process to take place. +The trait implementation validates the received query response message based on the state of the switch pair, and then performs the required action on the pending transfer info accordingly. + [asset-switch-runtime-api]: ../../runtime-api/asset-switch/ [xcm-convert]: ./src/xcm/convert.rs [xcm-match]: ./src/xcm/match.rs @@ -139,3 +150,4 @@ Because the switch functionality relies on XCM, the pallet provides a few XCM co [Error::AssetNotFound]: https://github.com/paritytech/polkadot-sdk/blob/e5791a56dcc35e308a80985cc3b6b7f2ed1eb6ec/polkadot/xcm/src/v3/traits.rs#L68 [xcm-transact]: ./src/xcm/transact.rs [xcm-transfer]: ./src/xcm/transfer.rs +[on-response-trait]: https://github.com/paritytech/polkadot-sdk/blob/33324fe01c5b1f341687cef2aa6e767f6acf40f3/polkadot/xcm/xcm-executor/src/traits/on_response.rs#L29 diff --git a/pallets/pallet-asset-switch/src/lib.rs b/pallets/pallet-asset-switch/src/lib.rs index de97f6a96..9944d92b2 100644 --- a/pallets/pallet-asset-switch/src/lib.rs +++ b/pallets/pallet-asset-switch/src/lib.rs @@ -46,7 +46,7 @@ use frame_support::traits::{ PalletInfoAccess, }; use parity_scale_codec::{Decode, Encode}; -use sp_runtime::traits::TrailingZeroInput; +use sp_runtime::traits::{TrailingZeroInput, Zero}; use sp_std::boxed::Box; pub use crate::pallet::*; @@ -56,7 +56,7 @@ const LOG_TARGET: &str = "runtime::pallet-asset-switch"; #[frame_support::pallet] pub mod pallet { use crate::{ - switch::{NewSwitchPairInfo, SwitchPairInfo, SwitchPairStatus}, + switch::{NewSwitchPairInfo, SwitchPairInfo, SwitchPairStatus, UnconfirmedSwitchInfo}, traits::SwitchHooks, WeightInfo, LOG_TARGET, }; @@ -75,8 +75,9 @@ pub mod pallet { use xcm::{ v4::{ validate_send, Asset, AssetFilter, AssetId, - Instruction::{BuyExecution, DepositAsset, RefundSurplus, SetAppendix, TransferAsset, WithdrawAsset}, - Junction, Location, SendXcm, WeightLimit, WildAsset, Xcm, + Instruction::{BuyExecution, DepositAsset, RefundSurplus, ReportHolding, SetAppendix, WithdrawAsset}, + InteriorLocation, Junction, Location, QueryId, QueryResponseInfo, SendXcm, WeightLimit, WildAsset, + WildFungibility, Xcm, }, VersionedAsset, VersionedAssetId, VersionedLocation, }; @@ -86,6 +87,8 @@ pub mod pallet { <>::LocalCurrency as InspectFungible<::AccountId>>::Balance; pub type SwitchPairInfoOf = SwitchPairInfo<::AccountId>; pub type NewSwitchPairInfoOf = NewSwitchPairInfo<::AccountId>; + pub type UnconfirmedSwitchInfoOf = + UnconfirmedSwitchInfo<::AccountId, VersionedLocation, u128>; const STORAGE_VERSION: StorageVersion = StorageVersion::new(0); @@ -115,6 +118,8 @@ pub mod pallet { /// The origin that can set a new switch pair, remove one, or resume /// switches. type SwitchOrigin: EnsureOrigin; + /// The universal location report messages should be sent to. + type UniversalLocation: Get; type WeightInfo: WeightInfo; /// The XCM router to route XCM transfers to the configured reserve /// location. @@ -168,6 +173,19 @@ pub mod pallet { }, /// A switch of remote -> local asset has taken place. RemoteToLocalSwitchExecuted { to: T::AccountId, amount: u128 }, + /// A switch has been reversed because it failed to execute at + /// destination. + LocalToRemoteSwitchReverted { + from: T::AccountId, + to: VersionedLocation, + amount: u128, + }, + /// A switch has been finalized at destination. + LocalToRemoteSwitchFinalized { + from: T::AccountId, + to: VersionedLocation, + amount: u128, + }, } #[pallet::error] @@ -200,14 +218,29 @@ pub mod pallet { Xcm, /// Internal error. Internal, - /// Attempt to switch zero tokens. - ZeroAmount, + /// Attempt to switch less than the local ED tokens. + AmountTooLow, + /// Some switches have not yet been processed. + PendingSwitches, } + /// Stores the switch pair. #[pallet::storage] #[pallet::getter(fn switch_pair)] pub(crate) type SwitchPair, I: 'static = ()> = StorageValue<_, SwitchPairInfoOf, OptionQuery>; + /// Stores the switches that have been applied locally but not yet on the + /// remote. Used to rollback failed ones. + #[pallet::storage] + #[pallet::getter(fn pending_switch_confirmations)] + pub(crate) type PendingSwitchConfirmations, I: 'static = ()> = + CountedStorageMap<_, Twox64Concat, QueryId, UnconfirmedSwitchInfoOf, OptionQuery>; + + /// Stores the next query ID to use for queries. + #[pallet::storage] + #[pallet::getter(fn next_query_id)] + pub(crate) type NextQueryId, I: 'static = ()> = StorageValue<_, QueryId, ValueQuery>; + #[pallet::call] impl, I: 'static> Pallet where @@ -232,7 +265,10 @@ pub mod pallet { // 1. Verify switch pair has not already been set. ensure!(!SwitchPair::::exists(), Error::::SwitchPairAlreadyExisting); - // 2. Verify that total issuance >= circulating supply and that the amount of + // 2. Verify there's no pending transactions from a previous pair. + ensure!(!Self::is_any_transaction_pending(), Error::::PendingSwitches); + + // 3. Verify that total issuance >= circulating supply and that the amount of // remote assets locked (total - circulating) is greater than the minimum // amount required at destination (remote ED). ensure!( @@ -240,7 +276,7 @@ pub mod pallet { Error::::InvalidInput ); - // 3. Verify the pool account has enough local assets to match the circulating + // 4. Verify the pool account has enough local assets to match the circulating // supply of eKILTs to cover for all potential remote -> local switches. // Handle the special case where circulating supply is `0`. let pool_account = Self::pool_account_id_for_remote_asset(&remote_asset_id)?; @@ -292,6 +328,13 @@ pub mod pallet { ); let pool_account = Self::pool_account_id_for_remote_asset(&remote_asset_id)?; + if Self::is_any_transaction_pending() { + log::warn!( + target: LOG_TARGET, + "Calling `force_set_switch_pair` with a non-empty map of pending swaps.", + ) + } + Self::set_switch_pair_bypass_checks( remote_asset_total_supply, *remote_asset_id, @@ -313,6 +356,13 @@ pub mod pallet { pub fn force_unset_switch_pair(origin: OriginFor) -> DispatchResult { ensure_root(origin)?; + if Self::is_any_transaction_pending() { + log::warn!( + target: LOG_TARGET, + "Calling `force_unset_switch_pair` with a non-empty map of pending swaps.", + ) + } + Self::unset_switch_pair_bypass_checks(); Ok(()) @@ -381,11 +431,15 @@ pub mod pallet { ) -> DispatchResult { let submitter = T::SubmitterOrigin::ensure_origin(origin)?; - // 1. Prevent switches of 0 tokens, which would just waste users' XCM fee - // balances. + // 1. Prevent switches of less than ED tokens, since there might be a case where + // a switch is reverted, but the user's balance has been dusted, and when + // trying to revert the transfer, it will fail since the account does not + // exist anymore. Hence, we force the transfer to be >= ED, so that even when + // hitting this edge case, we are still sure the original account is + // re-created. ensure!( - local_asset_amount > LocalCurrencyBalanceOf::::zero(), - Error::::ZeroAmount + local_asset_amount >= T::LocalCurrency::minimum_balance(), + Error::::AmountTooLow ); // 2. Retrieve switch pair info from storage, else fail. @@ -476,14 +530,66 @@ pub mod pallet { })?; // 7. Compose and validate XCM message - let appendix: Xcm<()> = vec![ + let query_id = NextQueryId::::get(); + let universal_location = T::UniversalLocation::get(); + let our_location_for_destination = universal_location.invert_target(&destination_v4).map_err(|e| { + log::error!( + target: LOG_TARGET, + "Failed to invert universal location {:?} for destination {:?} with error {:?}", + universal_location, destination_v4, e + ); + Error::::Internal + })?; + let appendix = vec![ + ReportHolding { + response_info: QueryResponseInfo { + destination: our_location_for_destination.clone(), + max_weight: Weight::zero(), + query_id, + }, + // Include in the report the assets that were not transferred. + assets: AssetFilter::Wild(WildAsset::AllOf { + id: asset_id_v4.clone(), + fun: WildFungibility::Fungible, + }), + }, + // If the asset to transfer failed to transfer, re-put it back into our own account. Otherwise, if the + // transfer succeeded, this asset won't be present in the holding registry, hence this is effectively a + // no-op. + DepositAsset { + assets: AssetFilter::Wild(WildAsset::AllOf { + id: asset_id_v4.clone(), + fun: WildFungibility::Fungible, + }), + beneficiary: our_location_for_destination, + }, RefundSurplus, + // Refund the XCM fee left to the user. We are purposefully only selecting the XCM fee asset, although + // there should be no cases in which any other assets are present in the holding registry. DepositAsset { - assets: AssetFilter::Wild(WildAsset::All), + assets: AssetFilter::Wild(WildAsset::AllOf { + id: remote_asset_fee_v4.id.clone(), + fun: WildFungibility::Fungible, + }), beneficiary: submitter_as_location.clone(), }, ] .into(); + // Steps performed: + // 1. Withdraw XCM fees from our SA + // 2. Buy execution + // 3. Set the appendix, executed regardless of the outcome of the transfer: + // 3.1 Report back to our chain the assets in the holding registry. This will + // contain either only the XCM fee token in case of successful transfer, or the + // XCM fee token + the amount of funds supposed to be transferred. + // 3.2 Deposit the un-transferred asset (only if the transfer failed) back into + // our account. + // 3.3 Refund any surplus weight. + // 3.4 Deposit the remaining XCM fee assets in the user's account. + // 4. Withdraw the requested asset (this operation should be infallible since we + // have full control of this balance) + // 5. Try to deposit the withdrawn asset into the user's account. This operation + // could fail and the error is handled in the appendix. let remote_xcm: Xcm<()> = vec![ WithdrawAsset(remote_asset_fee_v4.clone().into()), BuyExecution { @@ -491,8 +597,16 @@ pub mod pallet { fees: remote_asset_fee_v4.clone(), }, SetAppendix(appendix), - TransferAsset { - assets: (asset_id_v4, remote_asset_amount_as_u128).into(), + // Because the appendix relies on forwarding the content of the holding registry (there is at the + // moment no other way of detecting failed switches), we need to make sure the assets are present in + // the holding registry before the execution could fail. + // Using `TransferAsset` could result in assets not even being withdrawn, and we would not be able to + // detect the failed switch. Hence, we need to force the transfer to happen in two steps: 1. withdraw + // (which we assume would never fail since we know we own the required assets) + // 2. deposit (which could fail, e.g., if the beneficiary does not have an ED for a sufficient asset). + WithdrawAsset((asset_id_v4.clone(), remote_asset_amount_as_u128).into()), + DepositAsset { + assets: AssetFilter::Definite((asset_id_v4, remote_asset_amount_as_u128).into()), beneficiary: beneficiary_v4, }, ] @@ -500,7 +614,7 @@ pub mod pallet { let xcm_ticket = validate_send::(destination_v4.clone(), remote_xcm.clone()).map_err(|e| { log::info!( - "Failed to call validate_send for destination {:?} and remote XCM {:?} with error {:?}", + "Failed to call `validate_send` for destination {:?} and remote XCM {:?} with error {:?}", destination_v4, remote_xcm, e @@ -557,7 +671,8 @@ pub mod pallet { DispatchError::from(Error::::Xcm) })?; - // 12. Update remote asset balance and circulating supply. + // 12. Update storage elements + // 12.1 Remote asset balance and circulating supply. SwitchPair::::try_mutate(|entry| { let Some(switch_pair_info) = entry.as_mut() else { log::error!(target: LOG_TARGET, "Failed to borrow stored switch pair info as mut."); @@ -575,9 +690,38 @@ pub mod pallet { })?; Ok(()) })?; + // 12.2 Write the query ID into storage, checking for the very unlikely + // situation in which one already exists. + PendingSwitchConfirmations::::try_mutate(query_id, |entry| { + match entry { + // Should never happen. + Some(_) => { + log::error!( + target: LOG_TARGET, + "Found already an entry for query ID {:?} in storage.", + query_id + ); + Err(Error::::Internal) + } + None => { + *entry = Some(UnconfirmedSwitchInfoOf:: { + from: submitter.clone(), + to: *beneficiary.clone(), + amount: remote_asset_amount_as_u128, + }); + Ok(()) + } + } + })?; + // 12.3 Update the query ID storage entry. wrapping around the max value since + // it's safe to do so, assuming by the time we wrap the previously pending + // transfers have all been processed. + NextQueryId::::mutate(|entry| { + *entry = entry.wrapping_add(1); + }); // 13. Call into hook post-switch checks - T::SwitchHooks::post_local_to_remote_switch(&submitter, &beneficiary, local_asset_amount) + T::SwitchHooks::post_local_to_remote_switch_dispatch(&submitter, &beneficiary, local_asset_amount) .map_err(|e| DispatchError::from(Error::::Hook(e.into())))?; Self::deposit_event(Event::::LocalToRemoteSwitchExecuted { @@ -624,6 +768,7 @@ impl, I: 'static> Pallet { }); SwitchPair::::set(Some(switch_pair_info)); + NextQueryId::::kill(); Self::deposit_event(Event::::SwitchPairCreated { remote_asset_circulating_supply, @@ -638,6 +783,8 @@ impl, I: 'static> Pallet { fn unset_switch_pair_bypass_checks() { let switch_pair = SwitchPair::::take(); + NextQueryId::::kill(); + if let Some(switch_pair) = switch_pair { Self::deposit_event(Event::::SwitchPairRemoved { remote_asset_id: switch_pair.remote_asset_id, @@ -690,4 +837,10 @@ impl, I: 'static> Pallet { Error::::Internal }) } + + // Read the first item in the storage and returns `true` if `Some`, and `false` + // otherwise. + fn is_any_transaction_pending() -> bool { + PendingSwitchConfirmations::::count() > Zero::zero() + } } diff --git a/pallets/pallet-asset-switch/src/mock.rs b/pallets/pallet-asset-switch/src/mock.rs index 899b471d2..e6b868d7f 100644 --- a/pallets/pallet-asset-switch/src/mock.rs +++ b/pallets/pallet-asset-switch/src/mock.rs @@ -17,7 +17,7 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org use frame_support::{ - construct_runtime, storage_alias, + construct_runtime, parameter_types, storage_alias, traits::{ fungible::{Mutate, MutateFreeze, MutateHold}, Everything, VariantCount, @@ -34,14 +34,17 @@ use sp_runtime::{ }; use sp_std::sync::Arc; use xcm::v4::{ - Asset, AssetId, Error as XcmError, Fungibility, + Asset, AssetId, Error as XcmError, Fungibility, InteriorLocation, Junction::{AccountId32 as AccountId32Junction, AccountKey20, GlobalConsensus, Parachain}, Junctions::{Here, X1, X2}, - Location, NetworkId, SendError, SendResult, SendXcm, Xcm, XcmContext, XcmHash, + Location, NetworkId, QueryId, SendError, SendResult, SendXcm, Xcm, XcmContext, XcmHash, }; use xcm_executor::{traits::TransactAsset, AssetsInHolding}; -use crate::{xcm::convert::AccountId32ToAccountId32JunctionConverter, Config, NewSwitchPairInfoOf, Pallet}; +use crate::{ + xcm::convert::AccountId32ToAccountId32JunctionConverter, Config, NewSwitchPairInfoOf, NextQueryId, Pallet, + PendingSwitchConfirmations, UnconfirmedSwitchInfoOf, +}; construct_runtime!( pub enum MockRuntime { @@ -173,6 +176,10 @@ impl SendXcm for AlwaysSuccessfulXcmRouter { } } +parameter_types! { + pub const UniversalLocation: InteriorLocation = Here; +} + impl crate::Config for MockRuntime { type AccountIdConverter = AccountId32ToAccountId32JunctionConverter; type AssetTransactor = MockFungibleAssetTransactor; @@ -183,6 +190,7 @@ impl crate::Config for MockRuntime { type SubmitterOrigin = EnsureSigned; type SwitchHooks = (); type SwitchOrigin = EnsureRoot; + type UniversalLocation = UniversalLocation; type WeightInfo = (); type XcmRouter = AlwaysSuccessfulXcmRouter; @@ -195,6 +203,8 @@ pub(super) struct ExtBuilder( Option>, Vec<(AccountId32, u64, u64, u64)>, Vec<(AccountId32, Asset)>, + Vec<(QueryId, UnconfirmedSwitchInfoOf)>, + QueryId, ); pub(super) const FREEZE_REASON: [u8; 1] = *b"1"; @@ -216,6 +226,19 @@ impl ExtBuilder { self } + pub(super) fn with_pending_switches( + mut self, + switches: Vec<(QueryId, UnconfirmedSwitchInfoOf)>, + ) -> Self { + self.3 = switches; + self + } + + pub(super) fn with_next_query_id_value(mut self, value: QueryId) -> Self { + self.4 = value; + self + } + pub(super) fn build(self) -> sp_io::TestExternalities { let _ = env_logger::try_init(); let mut ext = sp_io::TestExternalities::default(); @@ -264,6 +287,12 @@ impl ExtBuilder { }); } + for (query_id, pending_switch) in self.3 { + PendingSwitchConfirmations::::insert(query_id, pending_switch.clone()); + } + + NextQueryId::::set(self.4); + // Some setup operations generate events which interfere with our assertions. System::reset_events() }); diff --git a/pallets/pallet-asset-switch/src/switch.rs b/pallets/pallet-asset-switch/src/switch.rs index bebb77f33..dd61e886f 100644 --- a/pallets/pallet-asset-switch/src/switch.rs +++ b/pallets/pallet-asset-switch/src/switch.rs @@ -166,3 +166,10 @@ impl SwitchPairInfo { Ok(()) } } + +#[derive(Encode, Decode, TypeInfo, MaxEncodedLen, PartialEq, Eq, RuntimeDebug, Clone)] +pub struct UnconfirmedSwitchInfo { + pub(crate) from: Source, + pub(crate) to: Destination, + pub(crate) amount: Amount, +} diff --git a/pallets/pallet-asset-switch/src/tests/force_set_switch_pair.rs b/pallets/pallet-asset-switch/src/tests/force_set_switch_pair.rs index fbafc64a9..a87da284f 100644 --- a/pallets/pallet-asset-switch/src/tests/force_set_switch_pair.rs +++ b/pallets/pallet-asset-switch/src/tests/force_set_switch_pair.rs @@ -20,12 +20,12 @@ use frame_support::{assert_noop, assert_ok}; use frame_system::RawOrigin; use sp_runtime::{ traits::{One, Zero}, - DispatchError, + AccountId32, DispatchError, }; use crate::{ mock::{get_asset_hub_location, get_remote_erc20_asset_id, ExtBuilder, MockRuntime, System, XCM_ASSET_FEE}, - switch::SwitchPairStatus, + switch::{SwitchPairStatus, UnconfirmedSwitchInfo}, Event, NewSwitchPairInfoOf, Pallet, SwitchPair, SwitchPairInfoOf, }; @@ -265,6 +265,63 @@ fn successful_overwrites_existing_pool() { }); } +#[test] +fn success_with_pending_switches() { + let pool_account_address = + Pallet::::pool_account_id_for_remote_asset(&get_remote_erc20_asset_id().into()).unwrap(); + ExtBuilder::default() + .with_balances(vec![(pool_account_address.clone(), u64::MAX, 0, 0)]) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + amount: 10, + from: AccountId32::new([100; 32]), + to: get_asset_hub_location().into_versioned(), + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert_ok!(Pallet::::force_set_switch_pair( + RawOrigin::Root.into(), + u64::MAX as u128, + Box::new(get_remote_erc20_asset_id().into()), + // Need to leave 1 on this chain for ED, so `MAX - 1` can at most be exchanged back (and transferred + // out from the pool account). + (u64::MAX - 1) as u128, + Box::new(get_asset_hub_location().into()), + 0, + Box::new(XCM_ASSET_FEE.into()), + )); + + let switch_pair = SwitchPair::::get(); + let expected_switch_pair = + SwitchPairInfoOf::::from_input_unchecked(NewSwitchPairInfoOf:: { + pool_account: pool_account_address.clone(), + remote_asset_circulating_supply: (u64::MAX - 1) as u128, + remote_asset_ed: 0, + remote_asset_id: get_remote_erc20_asset_id().into(), + remote_asset_total_supply: u64::MAX as u128, + remote_reserve_location: get_asset_hub_location().into(), + remote_xcm_fee: XCM_ASSET_FEE.into(), + status: SwitchPairStatus::Paused, + }); + assert_eq!(switch_pair, Some(expected_switch_pair)); + // Unit balance since we had to leave ED on this chain and no min balance + // requirement (ED) is set for the remote asset. + assert!(switch_pair.unwrap().reducible_remote_balance().is_one()); + assert!(System::events().into_iter().map(|e| e.event).any(|e| e + == Event::::SwitchPairCreated { + pool_account: pool_account_address.clone(), + remote_asset_circulating_supply: (u64::MAX - 1) as u128, + remote_asset_ed: 0, + remote_asset_total_supply: u64::MAX as u128, + remote_asset_id: get_remote_erc20_asset_id().into(), + remote_reserve_location: get_asset_hub_location().into(), + remote_xcm_fee: Box::new(XCM_ASSET_FEE.into()) + } + .into())); + }); +} + #[test] fn fails_on_invalid_origin() { ExtBuilder::default().build_and_execute_with_sanity_tests(|| { diff --git a/pallets/pallet-asset-switch/src/tests/force_unset_switch_pair.rs b/pallets/pallet-asset-switch/src/tests/force_unset_switch_pair.rs index 542e7ac2d..5132fbb8d 100644 --- a/pallets/pallet-asset-switch/src/tests/force_unset_switch_pair.rs +++ b/pallets/pallet-asset-switch/src/tests/force_unset_switch_pair.rs @@ -18,10 +18,11 @@ use frame_support::{assert_noop, assert_ok}; use frame_system::RawOrigin; -use sp_runtime::DispatchError; +use sp_runtime::{AccountId32, DispatchError}; use crate::{ mock::{get_asset_hub_location, get_remote_erc20_asset_id, ExtBuilder, MockRuntime, System, XCM_ASSET_FEE}, + switch::UnconfirmedSwitchInfo, Event, NewSwitchPairInfoOf, Pallet, SwitchPair, }; @@ -60,6 +61,58 @@ fn successful() { }); } +#[test] +fn success_with_pending_switches() { + // Deletes and generates an event if there is a pool + ExtBuilder::default() + .with_switch_pair_info(NewSwitchPairInfoOf:: { + pool_account: [0u8; 32].into(), + remote_asset_circulating_supply: 0, + remote_asset_ed: 0, + remote_asset_id: get_remote_erc20_asset_id().into(), + remote_asset_total_supply: 1_000, + remote_reserve_location: get_asset_hub_location().into(), + remote_xcm_fee: XCM_ASSET_FEE.into(), + status: Default::default(), + }) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + amount: 10, + from: AccountId32::new([100; 32]), + to: get_asset_hub_location().into_versioned(), + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert_ok!(Pallet::::force_unset_switch_pair(RawOrigin::Root.into())); + assert!(SwitchPair::::get().is_none()); + assert!(System::events().into_iter().map(|e| e.event).any(|e| e + == Event::::SwitchPairRemoved { + remote_asset_id: get_remote_erc20_asset_id().into(), + } + .into())); + }); + // Deletes and generates no event if there is no pool + ExtBuilder::default() + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + amount: 10, + from: AccountId32::new([100; 32]), + to: get_asset_hub_location().into_versioned(), + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert_ok!(Pallet::::force_unset_switch_pair(RawOrigin::Root.into())); + assert!(SwitchPair::::get().is_none()); + assert!(System::events().into_iter().map(|e| e.event).all(|e| e + != Event::::SwitchPairRemoved { + remote_asset_id: get_remote_erc20_asset_id().into(), + } + .into())); + }); +} + #[test] fn fails_on_invalid_origin() { ExtBuilder::default().build_and_execute_with_sanity_tests(|| { diff --git a/pallets/pallet-asset-switch/src/tests/set_switch_pair.rs b/pallets/pallet-asset-switch/src/tests/set_switch_pair.rs index 31a65f544..dad60ff71 100644 --- a/pallets/pallet-asset-switch/src/tests/set_switch_pair.rs +++ b/pallets/pallet-asset-switch/src/tests/set_switch_pair.rs @@ -20,13 +20,14 @@ use frame_support::{assert_noop, assert_ok}; use frame_system::RawOrigin; use sp_runtime::{ traits::{One, Zero}, - DispatchError, + AccountId32, DispatchError, }; +use xcm::v4::QueryId; use crate::{ mock::{get_asset_hub_location, get_remote_erc20_asset_id, ExtBuilder, MockRuntime, System, XCM_ASSET_FEE}, - switch::SwitchPairStatus, - Error, Event, NewSwitchPairInfoOf, Pallet, SwitchPair, SwitchPairInfoOf, + switch::{SwitchPairStatus, UnconfirmedSwitchInfo}, + Error, Event, NewSwitchPairInfoOf, NextQueryId, Pallet, SwitchPair, SwitchPairInfoOf, }; #[test] @@ -35,6 +36,7 @@ fn successful() { Pallet::::pool_account_id_for_remote_asset(&get_remote_erc20_asset_id().into()).unwrap(); ExtBuilder::default() .with_balances(vec![(pool_account_address.clone(), 1_001, 0, 0)]) + .with_next_query_id_value(QueryId::MAX) .build_and_execute_with_sanity_tests(|| { assert_ok!(Pallet::::set_switch_pair( RawOrigin::Root.into(), @@ -63,6 +65,7 @@ fn successful() { switch_pair.unwrap().reducible_remote_balance(), (u64::MAX - 1_000) as u128 ); + assert!(NextQueryId::::get().is_zero()); assert!(System::events().into_iter().map(|e| e.event).any(|e| e == Event::::SwitchPairCreated { pool_account: pool_account_address.clone(), @@ -79,6 +82,7 @@ fn successful() { // for the pool account ExtBuilder::default() .with_balances(vec![(pool_account_address.clone(), u64::MAX, 0, 0)]) + .with_next_query_id_value(QueryId::MAX) .build_and_execute_with_sanity_tests(|| { assert_ok!(Pallet::::set_switch_pair( RawOrigin::Root.into(), @@ -107,6 +111,7 @@ fn successful() { assert_eq!(switch_pair, Some(expected_switch_pair)); // Unit balance since we had to leave ED on this chain assert!(switch_pair.unwrap().reducible_remote_balance().is_one()); + assert!(NextQueryId::::get().is_zero()); assert!(System::events().into_iter().map(|e| e.event).any(|e| e == Event::::SwitchPairCreated { pool_account: pool_account_address.clone(), @@ -122,6 +127,7 @@ fn successful() { // Case where all issuance is locked and controlled by our sovereign account. ExtBuilder::default() .with_balances(vec![(pool_account_address.clone(), 1, 0, 0)]) + .with_next_query_id_value(QueryId::MAX) .build_and_execute_with_sanity_tests(|| { assert_ok!(Pallet::::set_switch_pair( RawOrigin::Root.into(), @@ -149,6 +155,7 @@ fn successful() { // Max balance since all circulating supply is controlled by us and we used `0` // as the remote asset ED. assert_eq!(switch_pair.unwrap().reducible_remote_balance(), u64::MAX as u128); + assert!(NextQueryId::::get().is_zero()); assert!(System::events().into_iter().map(|e| e.event).any(|e| e == Event::::SwitchPairCreated { pool_account: pool_account_address.clone(), @@ -166,6 +173,7 @@ fn successful() { // and the remote balance is calculated accordingly. ExtBuilder::default() .with_balances(vec![(pool_account_address.clone(), u64::MAX, 0, 0)]) + .with_next_query_id_value(QueryId::MAX) .build_and_execute_with_sanity_tests(|| { assert_ok!(Pallet::::set_switch_pair( RawOrigin::Root.into(), @@ -196,6 +204,7 @@ fn successful() { // Zero balance since we everything but the required remote asset ED is // circulating. assert!(switch_pair.unwrap().reducible_remote_balance().is_zero()); + assert!(NextQueryId::::get().is_zero()); assert!(System::events().into_iter().map(|e| e.event).any(|e| e == Event::::SwitchPairCreated { pool_account: pool_account_address.clone(), @@ -212,6 +221,7 @@ fn successful() { // but there's a min balance >= `0` on the remote chain. ExtBuilder::default() .with_balances(vec![(pool_account_address.clone(), 1, 0, 0)]) + .with_next_query_id_value(QueryId::MAX) .build_and_execute_with_sanity_tests(|| { assert_ok!(Pallet::::set_switch_pair( RawOrigin::Root.into(), @@ -237,6 +247,7 @@ fn successful() { }); assert_eq!(switch_pair, Some(expected_switch_pair)); assert_eq!(switch_pair.unwrap().reducible_remote_balance(), (u64::MAX - 1) as u128); + assert!(NextQueryId::::get().is_zero()); assert!(System::events().into_iter().map(|e| e.event).any(|e| e == Event::::SwitchPairCreated { pool_account: pool_account_address.clone(), @@ -298,6 +309,36 @@ fn fails_on_pool_existing() { }); } +#[test] +fn fails_on_pending_switches() { + let pool_account_address = + Pallet::::pool_account_id_for_remote_asset(&get_remote_erc20_asset_id().into()).unwrap(); + ExtBuilder::default() + .with_balances(vec![(pool_account_address.clone(), 1, 0, 0)]) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + amount: 10, + from: AccountId32::new([100; 32]), + to: get_asset_hub_location().into_versioned(), + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert_noop!( + Pallet::::set_switch_pair( + RawOrigin::Root.into(), + 100_000, + Box::new(get_remote_erc20_asset_id().into()), + 1_000, + Box::new(get_asset_hub_location().into()), + 0, + Box::new(XCM_ASSET_FEE.into()), + ), + Error::::PendingSwitches + ); + }); +} + #[test] fn fails_on_invalid_supply_values() { // Circulating supply > total issuance diff --git a/pallets/pallet-asset-switch/src/tests/switch.rs b/pallets/pallet-asset-switch/src/tests/switch.rs index a9394f542..07fec9406 100644 --- a/pallets/pallet-asset-switch/src/tests/switch.rs +++ b/pallets/pallet-asset-switch/src/tests/switch.rs @@ -25,7 +25,7 @@ use sp_runtime::{ traits::{One, TryConvert, Zero}, AccountId32, DispatchError, }; -use xcm::v4::{Asset, Fungibility}; +use xcm::v4::{Asset, Fungibility, QueryId}; use crate::{ mock::{ @@ -34,7 +34,8 @@ use crate::{ }, switch::SwitchPairStatus, xcm::convert::AccountId32ToAccountId32JunctionConverter, - Error, Event, NewSwitchPairInfoOf, Pallet, SwitchPair, + Error, Event, NewSwitchPairInfoOf, NextQueryId, Pallet, PendingSwitchConfirmations, SwitchPair, + UnconfirmedSwitchInfoOf, }; #[test] @@ -97,6 +98,15 @@ fn successful() { .into() ) .is_zero()); + assert_eq!( + PendingSwitchConfirmations::::get(0), + Some(UnconfirmedSwitchInfoOf:: { + from: user.clone(), + to: get_asset_hub_location().into_versioned(), + amount: 99_999 + }) + ); + assert!(NextQueryId::::get().is_one()); assert!(System::events().into_iter().map(|e| e.event).any(|e| e == Event::::LocalToRemoteSwitchExecuted { amount: 99_999, @@ -160,6 +170,15 @@ fn successful() { .into() ) .is_zero()); + assert_eq!( + PendingSwitchConfirmations::::get(0), + Some(UnconfirmedSwitchInfoOf:: { + from: user.clone(), + to: get_asset_hub_location().into_versioned(), + amount: 99_999 + }) + ); + assert!(NextQueryId::::get().is_one()); assert!(System::events().into_iter().map(|e| e.event).any(|e| e == Event::::LocalToRemoteSwitchExecuted { amount: 99_999, @@ -224,6 +243,15 @@ fn successful() { .into() ) .is_zero()); + assert_eq!( + PendingSwitchConfirmations::::get(0), + Some(UnconfirmedSwitchInfoOf:: { + from: user.clone(), + to: get_asset_hub_location().into_versioned(), + amount: 99_999 + }) + ); + assert!(NextQueryId::::get().is_one()); assert!(System::events().into_iter().map(|e| e.event).any(|e| e == Event::::LocalToRemoteSwitchExecuted { amount: 99_999, @@ -234,6 +262,35 @@ fn successful() { }); } +#[test] +fn successful_on_max_query_id_value() { + let user = AccountId32::from([0; 32]); + let pool_account = AccountId32::from([1; 32]); + ExtBuilder::default() + .with_balances(vec![(user.clone(), 100_000, 1, 0), (pool_account.clone(), 1, 0, 0)]) + .with_fungibles(vec![(user.clone(), XCM_ASSET_FEE)]) + .with_switch_pair_info(NewSwitchPairInfoOf:: { + pool_account: pool_account.clone(), + remote_asset_circulating_supply: 0, + remote_asset_ed: 0, + remote_asset_id: get_remote_erc20_asset_id().into(), + remote_asset_total_supply: 100_000, + remote_reserve_location: get_asset_hub_location().into(), + remote_xcm_fee: XCM_ASSET_FEE.into(), + status: SwitchPairStatus::Running, + }) + .with_next_query_id_value(QueryId::MAX) + .build_and_execute_with_sanity_tests(|| { + assert_ok!(Pallet::::switch( + RawOrigin::Signed(user.clone()).into(), + 99_999, + Box::new(get_asset_hub_location().into()) + )); + // Next query ID should be zero again (wrapping around the max value). + assert!(NextQueryId::::get().is_zero()); + }); +} + #[test] fn fails_on_zero_amount() { let user = AccountId32::from([0; 32]); @@ -256,7 +313,7 @@ fn fails_on_zero_amount() { 0, Box::new(get_asset_hub_location().into()) ), - Error::::ZeroAmount + Error::::AmountTooLow ); }); } diff --git a/pallets/pallet-asset-switch/src/traits.rs b/pallets/pallet-asset-switch/src/traits.rs index 30606d92d..1d8a14a04 100644 --- a/pallets/pallet-asset-switch/src/traits.rs +++ b/pallets/pallet-asset-switch/src/traits.rs @@ -22,6 +22,36 @@ use crate::{Config, LocalCurrencyBalanceOf}; /// Runtime-injected logic into the switch pallet around the time a switch takes /// place. +/// +/// The order in which the hooks are called, for any given local -> remote +/// switch is the following: +/// 1. `pre_local_to_remote_switch` (fallible): Called from within the switch +/// pallet before any other logic is executed. E.g., it can be used to verify +/// some requirements about the transfer. +/// 2. `post_local_to_remote_switch_dispatch` (fallible): Called from within the +/// switch pallet after all other logic is executed and after the XCM message +/// for the transfer is prepared to be sent to the remote location. E.g., it +/// can be used to update storage elements of other pallets once the transfer +/// operation is guaranteed to be sent to destination. This function can +/// still fail, in which case the message won't be sent. But otherwise, at +/// this stage the XCM message is guaranteed to at least be deliverable to +/// the destination. It can still fail at destination, which will in turn +/// call the `post_local_to_remote_transfer_revert` hook. +/// 3. `post_local_to_remote_confirmed` (infallible): Called when the remote +/// destination confirms the transfer was successful. +/// 4. `post_local_to_remote_transfer_revert` (infallible): Called when the +/// remote destination signals that a previously local -> remote switch has +/// instead failed. +/// +/// The order in which the hooks are called, for any given remote -> local +/// switch is the following: +/// 1. `pre_remote_to_local_switch` (fallible): Called from the XCM components +/// handling incoming transfers representing remote -> local switches. If +/// this hook fails, the assets will most likely trap and need to be unlocked +/// manually. +/// 2. `post_remote_to_local_switch` (fallible): Same as +/// `pre_remote_to_local_switch`, but called after all the XCM logic has been +/// executed and guaranteed to be correct. pub trait SwitchHooks where T: Config, @@ -29,28 +59,32 @@ where { type Error: Into; - /// Called before anything related to a switch happens. fn pre_local_to_remote_switch( from: &T::AccountId, to: &VersionedLocation, amount: LocalCurrencyBalanceOf, ) -> Result<(), Self::Error>; - /// Called after the switch takes place and **after** the XCM message has - /// been sent to the reserve location. - fn post_local_to_remote_switch( + fn post_local_to_remote_switch_dispatch( from: &T::AccountId, to: &VersionedLocation, amount: LocalCurrencyBalanceOf, ) -> Result<(), Self::Error>; - /// Called upon receiving an XCM message from the reserve location to - /// deposit some of the remote assets into a specified account, but before - /// the asset is actually deposited by the asset transactor. + fn post_local_to_remote_finalized( + from: &T::AccountId, + to: &VersionedLocation, + amount: LocalCurrencyBalanceOf, + ); + + fn post_local_to_remote_transfer_revert( + from: &T::AccountId, + to: &VersionedLocation, + amount: LocalCurrencyBalanceOf, + ); + fn pre_remote_to_local_switch(to: &T::AccountId, amount: u128) -> Result<(), Self::Error>; - /// Same as [Self::pre_remote_to_local_switch], but called after the - /// transactor has deposited the incoming remote asset. fn post_remote_to_local_switch(to: &T::AccountId, amount: u128) -> Result<(), Self::Error>; } @@ -69,14 +103,28 @@ where Ok(()) } - fn post_local_to_remote_switch( - _from: &T::AccountId, + fn post_local_to_remote_switch_dispatch( + _from: &::AccountId, _to: &VersionedLocation, _amount: LocalCurrencyBalanceOf, ) -> Result<(), Self::Error> { Ok(()) } + fn post_local_to_remote_finalized( + _from: &T::AccountId, + _to: &VersionedLocation, + _amount: LocalCurrencyBalanceOf, + ) { + } + + fn post_local_to_remote_transfer_revert( + _from: &::AccountId, + _to: &VersionedLocation, + _amount: LocalCurrencyBalanceOf, + ) { + } + fn pre_remote_to_local_switch(_to: &::AccountId, _amount: u128) -> Result<(), Self::Error> { Ok(()) } diff --git a/pallets/pallet-asset-switch/src/xcm/match/mock.rs b/pallets/pallet-asset-switch/src/xcm/match/mock.rs index ce0168b25..ea183de18 100644 --- a/pallets/pallet-asset-switch/src/xcm/match/mock.rs +++ b/pallets/pallet-asset-switch/src/xcm/match/mock.rs @@ -17,7 +17,7 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org use frame_support::{ - construct_runtime, + construct_runtime, parameter_types, traits::{ fungible::{Inspect as InspectFungible, Mutate as MutateFungible}, Everything, @@ -30,6 +30,7 @@ use sp_runtime::{ traits::{BlakeTwo256, CheckedConversion, IdentityLookup}, AccountId32, }; +use xcm::v4::{InteriorLocation, Junctions::Here}; use crate::{NewSwitchPairInfoOf, Pallet, SwitchPairInfoOf}; @@ -84,6 +85,10 @@ impl pallet_balances::Config for MockRuntime { type WeightInfo = (); } +parameter_types! { + pub const UniversalLocation: InteriorLocation = Here; +} + impl crate::Config for MockRuntime { type AccountIdConverter = (); type AssetTransactor = (); @@ -94,6 +99,7 @@ impl crate::Config for MockRuntime { type SubmitterOrigin = EnsureSigned; type SwitchHooks = (); type SwitchOrigin = EnsureRoot; + type UniversalLocation = UniversalLocation; type XcmRouter = (); type WeightInfo = (); diff --git a/pallets/pallet-asset-switch/src/xcm/match/mod.rs b/pallets/pallet-asset-switch/src/xcm/match/mod.rs index 6374ae667..d10e8f93a 100644 --- a/pallets/pallet-asset-switch/src/xcm/match/mod.rs +++ b/pallets/pallet-asset-switch/src/xcm/match/mod.rs @@ -47,10 +47,7 @@ where // 1. Retrieve switch pair from storage. let switch_pair = SwitchPair::::get().ok_or(XcmExecutorError::AssetNotHandled)?; - // 2. Ensure switch pair is enabled - ensure!(switch_pair.is_enabled(), XcmExecutorError::AssetNotHandled); - - // 3. Match stored asset ID with input asset ID. + // 2. Match stored asset ID with input asset ID. let Asset { id, fun } = switch_pair.remote_xcm_fee.clone().try_into().map_err(|e| { log::error!( target: LOG_TARGET, @@ -61,7 +58,7 @@ where XcmExecutorError::AssetNotHandled })?; ensure!(id == a.id, XcmExecutorError::AssetNotHandled); - // 4. Verify the stored asset is a fungible one. + // 3. Verify the stored asset is a fungible one. let Fungibility::Fungible(_) = fun else { log::info!(target: LOG_TARGET, "Stored remote fee asset {:?} is not a fungible one.", switch_pair.remote_xcm_fee); return Err(XcmExecutorError::AssetNotHandled); @@ -71,7 +68,7 @@ where // errors thrown from here onwards is a `FailedToTransactAsset` error. let AssetId(location) = id; - // 5. Force input asset as a fungible one and return its amount. + // 4. Force input asset as a fungible one and return its amount. let Fungibility::Fungible(amount) = a.fun else { log::info!(target: LOG_TARGET, "Input asset {:?} is supposed to be fungible but it is not.", a); return Err(XcmExecutorError::AmountToBalanceConversionFailed); diff --git a/pallets/pallet-asset-switch/src/xcm/match/tests.rs b/pallets/pallet-asset-switch/src/xcm/match/tests.rs index 960639e40..d252a900c 100644 --- a/pallets/pallet-asset-switch/src/xcm/match/tests.rs +++ b/pallets/pallet-asset-switch/src/xcm/match/tests.rs @@ -145,6 +145,30 @@ fn successful_with_stored_v2() { }); } +#[test] +fn successful_with_switch_pair_not_enabled() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = + get_switch_pair_info_for_remote_location::(&location, SwitchPairStatus::Paused); + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info) + .build_and_execute_with_sanity_tests(|| { + let (asset_location, asset_amount): (Location, u128) = + MatchesSwitchPairXcmFeeFungibleAsset::::matches_fungibles(&Asset { + id: AssetId(location.clone()), + fun: Fungibility::Fungible(u128::MAX), + }) + .unwrap(); + // Asset location should match the one stored in the switch pair. + assert_eq!(asset_location, location); + // Asset amount should match the input one. + assert_eq!(asset_amount, u128::MAX); + }); +} + #[test] fn skips_on_switch_pair_not_set() { ExtBuilder::default().build_and_execute_with_sanity_tests(|| { @@ -161,27 +185,6 @@ fn skips_on_switch_pair_not_set() { }); } -#[test] -fn skips_on_switch_pair_not_enabled() { - let location = Location { - parents: 1, - interior: Junctions::X1([Junction::Parachain(1_000)].into()), - }; - let new_switch_pair_info = - get_switch_pair_info_for_remote_location::(&location, SwitchPairStatus::Paused); - ExtBuilder::default() - .with_switch_pair_info(new_switch_pair_info) - .build_and_execute_with_sanity_tests(|| { - assert_noop!( - MatchesSwitchPairXcmFeeFungibleAsset::::matches_fungibles(&Asset { - id: AssetId(location), - fun: Fungibility::Fungible(u128::MAX), - }) as Result<(_, u128), _>, - Error::AssetNotHandled - ); - }); -} - #[test] fn skips_on_different_asset() { let location = Location { diff --git a/pallets/pallet-asset-switch/src/xcm/mod.rs b/pallets/pallet-asset-switch/src/xcm/mod.rs index 5e99a20a1..9e2b4a207 100644 --- a/pallets/pallet-asset-switch/src/xcm/mod.rs +++ b/pallets/pallet-asset-switch/src/xcm/mod.rs @@ -31,5 +31,7 @@ pub use trade::{UsingComponentsForSwitchPairRemoteAsset, UsingComponentsForXcmFe pub mod transact; pub use transact::SwitchPairRemoteAssetTransactor; +pub mod query; + #[cfg(test)] mod test_utils; diff --git a/pallets/pallet-asset-switch/src/xcm/query/mock.rs b/pallets/pallet-asset-switch/src/xcm/query/mock.rs new file mode 100644 index 000000000..fbc3fed0e --- /dev/null +++ b/pallets/pallet-asset-switch/src/xcm/query/mock.rs @@ -0,0 +1,180 @@ +// KILT Blockchain – https://botlabs.org +// Copyright (C) 2019-2024 BOTLabs GmbH + +// The KILT Blockchain is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The KILT Blockchain is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// If you feel like getting in touch with us, you can do so at info@botlabs.org + +use frame_support::{ + construct_runtime, parameter_types, + traits::{ + fungible::{Inspect as InspectFungible, Mutate as MutateFungible}, + Everything, + }, +}; +use frame_system::{mocking::MockBlock, EnsureRoot, EnsureSigned}; +use pallet_balances::AccountData; +use sp_core::{ConstU16, ConstU32, ConstU64, H256}; +use sp_runtime::{ + traits::{BlakeTwo256, CheckedConversion, IdentityLookup}, + AccountId32, +}; +use xcm::v4::{InteriorLocation, Junctions::Here, QueryId}; + +use crate::{NewSwitchPairInfoOf, Pallet, PendingSwitchConfirmations, SwitchPairInfoOf, UnconfirmedSwitchInfoOf}; + +construct_runtime!( + pub enum MockRuntime { + System: frame_system, + Balances: pallet_balances, + Assetswitch: crate + } +); + +impl frame_system::Config for MockRuntime { + type AccountData = AccountData; + type AccountId = AccountId32; + type BaseCallFilter = Everything; + type Block = MockBlock; + type BlockHashCount = ConstU64<0>; + type BlockLength = (); + type BlockWeights = (); + type DbWeight = (); + type Hash = H256; + type Hashing = BlakeTwo256; + type Lookup = IdentityLookup; + type MaxConsumers = ConstU32<1>; + type Nonce = u64; + type OnKilledAccount = (); + type OnNewAccount = (); + type OnSetCode = (); + type PalletInfo = PalletInfo; + type RuntimeCall = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeTask = (); + type SS58Prefix = ConstU16<0>; + type SystemWeightInfo = (); + type Version = (); +} + +impl pallet_balances::Config for MockRuntime { + type AccountStore = System; + type Balance = u64; + type DustRemoval = (); + type ExistentialDeposit = ConstU64<1>; + type FreezeIdentifier = (); + type MaxFreezes = ConstU32<0>; + type MaxLocks = ConstU32<0>; + type MaxReserves = ConstU32<0>; + type ReserveIdentifier = (); + type RuntimeEvent = RuntimeEvent; + type RuntimeFreezeReason = (); + type RuntimeHoldReason = (); + type WeightInfo = (); +} + +parameter_types! { + pub const UniversalLocation: InteriorLocation = Here; +} + +impl crate::Config for MockRuntime { + type AccountIdConverter = (); + type AssetTransactor = (); + type FeeOrigin = EnsureRoot; + type LocalCurrency = Balances; + type PauseOrigin = EnsureRoot; + type RuntimeEvent = RuntimeEvent; + type SubmitterOrigin = EnsureSigned; + type SwitchHooks = (); + type SwitchOrigin = EnsureRoot; + type UniversalLocation = UniversalLocation; + type XcmRouter = (); + type WeightInfo = (); + + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); +} + +pub(super) const ACCOUNT_0: AccountId32 = AccountId32::new([100; 32]); + +#[derive(Default)] +pub(super) struct ExtBuilder( + Option>, + Vec<(QueryId, UnconfirmedSwitchInfoOf)>, +); + +impl ExtBuilder { + pub(super) fn with_switch_pair_info(mut self, switch_pair_info: NewSwitchPairInfoOf) -> Self { + self.0 = Some(switch_pair_info); + self + } + + pub(super) fn with_pending_switches( + mut self, + pending_switches: Vec<(QueryId, UnconfirmedSwitchInfoOf)>, + ) -> Self { + self.1 = pending_switches; + self + } + + pub(super) fn build(self) -> sp_io::TestExternalities { + let _ = env_logger::try_init(); + let mut ext = sp_io::TestExternalities::default(); + + ext.execute_with(|| { + System::set_block_number(1); + + if let Some(switch_pair_info) = self.0 { + let switch_pair_info = SwitchPairInfoOf::::from_input_unchecked(switch_pair_info); + + // Set pool balance to local ED + circulating supply, to maintain + // invariants and make them verifiable. + let local_ed = >::minimum_balance(); + >::mint_into( + &switch_pair_info.pool_account, + local_ed + u64::checked_from(switch_pair_info.remote_asset_circulating_supply).unwrap(), + ) + .unwrap(); + Pallet::::set_switch_pair_bypass_checks( + switch_pair_info.remote_asset_total_supply, + switch_pair_info.remote_asset_id, + switch_pair_info.remote_asset_circulating_supply, + switch_pair_info.remote_reserve_location, + switch_pair_info.remote_asset_ed, + switch_pair_info.remote_xcm_fee, + switch_pair_info.pool_account, + ); + Pallet::::set_switch_pair_status(switch_pair_info.status).unwrap(); + } + + self.1.into_iter().for_each(|(query_id, pending_switch)| { + PendingSwitchConfirmations::::insert(query_id, pending_switch); + assert!(PendingSwitchConfirmations::::contains_key(query_id)); + }); + + System::reset_events() + }); + + ext + } + + pub(super) fn build_and_execute_with_sanity_tests(self, run: impl FnOnce()) { + let mut ext = self.build(); + ext.execute_with(|| { + run(); + crate::try_state::do_try_state::(System::block_number()).unwrap(); + }); + } +} diff --git a/pallets/pallet-asset-switch/src/xcm/query/mod.rs b/pallets/pallet-asset-switch/src/xcm/query/mod.rs new file mode 100644 index 000000000..be689cb44 --- /dev/null +++ b/pallets/pallet-asset-switch/src/xcm/query/mod.rs @@ -0,0 +1,217 @@ +// KILT Blockchain – https://botlabs.org +// Copyright (C) 2019-2024 BOTLabs GmbH + +// The KILT Blockchain is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The KILT Blockchain is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// If you feel like getting in touch with us, you can do so at info@botlabs.org + +use frame_support::traits::{fungible::Mutate, tokens::Preservation}; +use xcm::v4::{AssetId, Junctions::Here, Location, Response, Weight, XcmContext}; +use xcm_executor::traits::OnResponse; + +use crate::{ + traits::SwitchHooks, Config, Event, LocalCurrencyBalanceOf, Pallet, PendingSwitchConfirmations, SwitchPair, + SwitchPairInfo, UnconfirmedSwitchInfoOf, +}; + +#[cfg(test)] +mod mock; +#[cfg(test)] +mod tests; + +const LOG_TARGET: &str = "runtime::pallet-asset-switch::OnResponse"; + +impl, I: 'static> OnResponse for Pallet { + fn expecting_response(origin: &Location, query_id: u64, querier: Option<&Location>) -> bool { + // Verify we are the original queriers. + if querier != Some(&Here.into_location()) { + log::trace!( + target: LOG_TARGET, + "Querier for query ID {:?} = {:?}, which is not us.", + query_id, querier + ); + return false; + } + let Some(SwitchPairInfo { + remote_reserve_location, + .. + }) = SwitchPair::::get() + else { + log::trace!( + target: LOG_TARGET, + "Did not find a switch pair set.", + ); + return false; + }; + // Verify the response comes from the configured reserve location (or a + // descendent). + let Ok(remote_reserve_location_v4) = Location::try_from(remote_reserve_location.clone()) else { + log::error!( + target: LOG_TARGET, + "Failed to convert remote reserve location {:?} into v4 `Location`", + remote_reserve_location, + ); + return false; + }; + // This order is important. We want to check if the origin is nested inside the + // configure reserve location, and not the reverse. Hence, an `X2` origin would + // fail this check if the reserve location is an `X1`. Conversely, if the origin + // is an `X1(Parachain(1000))` and the configured reserve location is, for + // instance, a `X2(Parachain(1000), AccountId32())`, this check will pass, + // as we make te same assumption Polkadot does, that nested locations are always + // under the control of parent locations. + if !remote_reserve_location_v4.starts_with(origin) { + log::trace!( + target: LOG_TARGET, + "Origin of query {:?} is not contained in configured trusted reserve location {:?}", + origin, remote_reserve_location_v4 + ); + return false; + } + // Verify we were expecting such an answer. + if !PendingSwitchConfirmations::::contains_key(query_id) { + log::trace!( + target: LOG_TARGET, + "No query with ID {:?} stored in storage.", + query_id + ); + return false; + } + true + } + + fn on_response( + origin: &Location, + query_id: u64, + querier: Option<&Location>, + response: Response, + max_weight: Weight, + context: &XcmContext, + ) -> Weight { + if !Self::expecting_response(origin, query_id, querier) { + log::error!( + target: LOG_TARGET, + "`on_response` called even tho `expecting_response` returned `false`.", + ); + return Weight::zero(); + } + log::info!( + target: LOG_TARGET, + "Processing query with origin = {:?}, ID = {:?}, querier = {:?}, response = {:?}, max_weight = {:?}, context: {:?}", + origin, query_id, querier, response, max_weight, context + ); + let Response::Assets(holding_assets) = response else { + log::trace!( + target: LOG_TARGET, + "Wrong type of response received: {:?}", + response + ); + return Weight::zero(); + }; + let Some(mut switch_pair) = SwitchPair::::get() else { + log::error!( + target: LOG_TARGET, + "Cannot fetch switch pair from storage. This should not happen if `expecting_response` returned `true`.", + ); + return Weight::zero(); + }; + let Ok(remote_asset_id_v4) = AssetId::try_from(switch_pair.remote_asset_id.clone()) else { + log::error!( + target: LOG_TARGET, + "Failed to convert stored remote asset ID to v4.", + ); + return Weight::zero(); + }; + + let Some(UnconfirmedSwitchInfoOf:: { from, to, amount }) = PendingSwitchConfirmations::::get(query_id) + else { + log::error!( + target: LOG_TARGET, + "Cannot fetch pending confirmation from storage. This should not happen if `expecting_response` returned `true`.", + ); + return Weight::zero(); + }; + let Ok(local_amount) = LocalCurrencyBalanceOf::::try_from(amount) else { + log::error!( + target: LOG_TARGET, + "Failed to convert input amount {:?} into local balance.", amount + ); + return Weight::zero(); + }; + + let mut assets_of_kind = holding_assets + .inner() + .iter() + .filter(|a| a.id == remote_asset_id_v4) + .peekable(); + // No assets are reported or there's no asset of interest for us. Happy case. + if holding_assets.is_none() || assets_of_kind.peek().is_none() { + log::trace!( + target: LOG_TARGET, + "Switch was successful. Removing pending query {:?} from storage upon receiving holding report: {:?}.", + query_id, holding_assets + ); + PendingSwitchConfirmations::::remove(query_id); + T::SwitchHooks::post_local_to_remote_finalized(&from, &to, local_amount); + Self::deposit_event(Event::::LocalToRemoteSwitchFinalized { amount, from, to }); + // Sad case, we need to revert the user's transfer. + } else if assets_of_kind.any(|a| a.fun == amount.into()) { + let Ok(fungible_amount_as_currency_balance) = LocalCurrencyBalanceOf::::try_from(amount) else { + log::error!( + target: LOG_TARGET, + "Failed to convert fungible amount to balance of local currency." + ); + return Weight::zero(); + }; + log::trace!( + target: LOG_TARGET, + "Switch failed. Reverting the transfer because of holding asset reported: {:?}.", holding_assets + ); + let Ok(_) = T::LocalCurrency::transfer( + &switch_pair.pool_account, + &from, + fungible_amount_as_currency_balance, + Preservation::Preserve, + ) else { + log::error!( + target: LOG_TARGET, + "Failed to transfer assets from pool account into original payer.", + ); + return Weight::zero(); + }; + // We act like we received an incoming switch when updating the switch pair. + let Ok(_) = switch_pair.try_process_incoming_switch(amount) else { + log::error!( + target: LOG_TARGET, + "Failed to update the switch pair storage to account for the reverted operation.", + ); + return Weight::zero(); + }; + SwitchPair::::set(Some(switch_pair)); + PendingSwitchConfirmations::::remove(query_id); + T::SwitchHooks::post_local_to_remote_transfer_revert(&from, &to, local_amount); + Self::deposit_event(Event::::LocalToRemoteSwitchReverted { amount, from, to }); + // Weird case where the transfer has partially completed. We don't + // explicitly handle this for now, but simply generate some error + // logs, as this is definitely not expected. + } else { + log::error!( + target: LOG_TARGET, + "Transfer was partially completed, which is currently not expected nor handled. Content of the holding register: {:?}", + holding_assets + ); + } + Weight::zero() + } +} diff --git a/pallets/pallet-asset-switch/src/xcm/query/tests/expecting_response.rs b/pallets/pallet-asset-switch/src/xcm/query/tests/expecting_response.rs new file mode 100644 index 000000000..7239c5fb5 --- /dev/null +++ b/pallets/pallet-asset-switch/src/xcm/query/tests/expecting_response.rs @@ -0,0 +1,479 @@ +// KILT Blockchain – https://botlabs.org +// Copyright (C) 2019-2024 BOTLabs GmbH + +// The KILT Blockchain is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The KILT Blockchain is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// If you feel like getting in touch with us, you can do so at info@botlabs.org + +use sp_std::sync::Arc; +use xcm::v4::{Junction, Junctions, Location, Parent, ParentThen}; +use xcm_executor::traits::OnResponse; + +use crate::{ + switch::UnconfirmedSwitchInfo, + xcm::{ + query::mock::{ExtBuilder, MockRuntime, ACCOUNT_0}, + test_utils::get_switch_pair_info_for_remote_location_with_pool_usable_balance, + }, + Pallet, SwitchPairStatus, +}; + +#[test] +fn origin_checks_with_running_pair() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Running, + ); + + // Same location as configured works. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(Pallet::::expecting_response( + &location, + 0, + Some(&Junctions::Here.into_location()) + )) + }); + // Parent location of configured works. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(Pallet::::expecting_response( + &Parent.into(), + 0, + Some(&Junctions::Here.into_location()) + )) + }); + // Descendent location of configured does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &location + .pushed_with_interior(Junction::AccountId32 { + network: None, + id: ACCOUNT_0.into() + }) + .unwrap(), + 0, + Some(&Junctions::Here.into_location()) + )) + }); + // Different location does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &ParentThen(Junctions::X1(Arc::new([Junction::Parachain(1_001)]))).into(), + 0, + Some(&Junctions::Here.into_location()) + )) + }); +} + +#[test] +fn origin_checks_with_paused_pair() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Paused, + ); + + // Same location as configured works. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(Pallet::::expecting_response( + &location, + 0, + Some(&Junctions::Here.into_location()) + )) + }); + // Parent location of configured works. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(Pallet::::expecting_response( + &Parent.into(), + 0, + Some(&Junctions::Here.into_location()) + )) + }); + // Descendent location of configured does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &location + .pushed_with_interior(Junction::AccountId32 { + network: None, + id: ACCOUNT_0.into() + }) + .unwrap(), + 0, + Some(&Junctions::Here.into_location()) + )) + }); + // Different location does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &ParentThen(Junctions::X1(Arc::new([Junction::Parachain(1_001)]))).into(), + 0, + Some(&Junctions::Here.into_location()) + )) + }); +} + +#[test] +fn querier_checks_with_running_pair() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Running, + ); + + // Same querier works. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(Pallet::::expecting_response( + &location, + 0, + Some(&Junctions::Here.into_location()) + )) + }); + // None querier does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response(&location, 0, None)) + }); + // Parent querier does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &location, + 0, + Some(&Parent.into()) + )) + }); + // Nested querier does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &location, + 0, + Some( + &Junctions::Here + .pushed_with(Junction::AccountId32 { + network: None, + id: ACCOUNT_0.into() + }) + .unwrap() + .into_location() + ), + )) + }); + // Different querier does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &location, + 0, + Some(&ParentThen(Junctions::X1(Arc::new([Junction::Parachain(1_001)]))).into()), + )) + }); +} + +#[test] +fn querier_checks_with_paused_pair() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Paused, + ); + + // Same querier works. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(Pallet::::expecting_response( + &location, + 0, + Some(&Junctions::Here.into_location()) + )) + }); + // None querier does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response(&location, 0, None)) + }); + // Parent querier does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &location, + 0, + Some(&Parent.into()) + )) + }); + // Nested querier does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &location, + 0, + Some( + &Junctions::Here + .pushed_with(Junction::AccountId32 { + network: None, + id: ACCOUNT_0.into() + }) + .unwrap() + .into_location() + ), + )) + }); + // Different querier does not work. + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &location, + 0, + Some(&ParentThen(Junctions::X1(Arc::new([Junction::Parachain(1_001)]))).into()), + )) + }); +} + +#[test] +fn switch_pair_not_set() { + ExtBuilder::default() + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &Junctions::Here.into_location(), + 0, + Some(&Junctions::Here.into_location()) + )) + }); +} + +#[test] +fn query_id_not_found() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Running, + ); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert!(!Pallet::::expecting_response( + &location, + 1, + Some(&Junctions::Here.into_location()) + )) + }); +} diff --git a/pallets/pallet-asset-switch/src/xcm/query/tests/mod.rs b/pallets/pallet-asset-switch/src/xcm/query/tests/mod.rs new file mode 100644 index 000000000..63728b242 --- /dev/null +++ b/pallets/pallet-asset-switch/src/xcm/query/tests/mod.rs @@ -0,0 +1,20 @@ +// KILT Blockchain – https://botlabs.org +// Copyright (C) 2019-2024 BOTLabs GmbH + +// The KILT Blockchain is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The KILT Blockchain is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// If you feel like getting in touch with us, you can do so at info@botlabs.org + +mod expecting_response; +mod on_response; diff --git a/pallets/pallet-asset-switch/src/xcm/query/tests/on_response.rs b/pallets/pallet-asset-switch/src/xcm/query/tests/on_response.rs new file mode 100644 index 000000000..d1300c1b3 --- /dev/null +++ b/pallets/pallet-asset-switch/src/xcm/query/tests/on_response.rs @@ -0,0 +1,760 @@ +// KILT Blockchain – https://botlabs.org +// Copyright (C) 2019-2024 BOTLabs GmbH + +// The KILT Blockchain is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The KILT Blockchain is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// If you feel like getting in touch with us, you can do so at info@botlabs.org + +use frame_support::{ + assert_storage_noop, + traits::{ + fungible::Inspect, + tokens::{Fortitude, Preservation}, + }, +}; +use sp_runtime::{traits::Zero, AccountId32}; +use xcm::v4::{Asset, Junction, Junctions, Location, Response, Weight, XcmContext}; +use xcm_executor::traits::OnResponse; + +use crate::{ + switch::UnconfirmedSwitchInfo, + xcm::{ + query::mock::{Balances, ExtBuilder, MockRuntime, System, ACCOUNT_0}, + test_utils::get_switch_pair_info_for_remote_location_with_pool_usable_balance, + }, + Event, Pallet, PendingSwitchConfirmations, SwitchPair, SwitchPairInfo, SwitchPairStatus, +}; + +#[test] +fn successful_storage_clean_up_on_transfer_successful_and_running_pair() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Running, + ); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + // No assets + Response::Assets(vec![].into()), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + ); + let pool_balance_after = >::reducible_balance( + &new_switch_pair_info.pool_account, + Preservation::Preserve, + Fortitude::Polite, + ); + let switch_info_before = SwitchPairInfo::from_input_unchecked(new_switch_pair_info.clone()); + let switch_info_after = SwitchPair::::get().unwrap(); + + assert_eq!(pool_balance_after, 100); + assert!(>::balance(&ACCOUNT_0).is_zero()); + assert_eq!(switch_info_before, switch_info_after); + // The pending switch is removed from storage. + assert!(!PendingSwitchConfirmations::::contains_key(0)); + // The right event is generated. + assert!(System::events().into_iter().map(|e| e.event).any(|e| e + == Event::::LocalToRemoteSwitchFinalized { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10 + } + .into())); + }); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + // Other assets + Response::Assets( + Asset { + id: Junctions::Here.into(), + fun: 10.into(), + } + .into(), + ), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + ); + let pool_balance_after = >::reducible_balance( + &new_switch_pair_info.pool_account, + Preservation::Preserve, + Fortitude::Polite, + ); + let switch_info_before = SwitchPairInfo::from_input_unchecked(new_switch_pair_info.clone()); + let switch_info_after = SwitchPair::::get().unwrap(); + + assert_eq!(pool_balance_after, 100); + assert!(>::balance(&ACCOUNT_0).is_zero()); + assert_eq!(switch_info_before, switch_info_after); + // The pending switch is removed from storage. + assert!(!PendingSwitchConfirmations::::contains_key(0)); + // The right event is generated. + assert!(System::events().into_iter().map(|e| e.event).any(|e| e + == Event::::LocalToRemoteSwitchFinalized { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10 + } + .into())); + }); +} + +#[test] +fn successful_storage_clean_up_on_transfer_successful_and_paused_pair() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Paused, + ); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + // No assets + Response::Assets(vec![].into()), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + ); + let pool_balance_after = >::reducible_balance( + &new_switch_pair_info.pool_account, + Preservation::Preserve, + Fortitude::Polite, + ); + let switch_info_before = SwitchPairInfo::from_input_unchecked(new_switch_pair_info.clone()); + let switch_info_after = SwitchPair::::get().unwrap(); + + assert_eq!(pool_balance_after, 100); + assert!(>::balance(&ACCOUNT_0).is_zero()); + assert_eq!(switch_info_before, switch_info_after); + // The pending switch is removed from storage. + assert!(!PendingSwitchConfirmations::::contains_key(0)); + // The right event is generated. + assert!(System::events().into_iter().map(|e| e.event).any(|e| e + == Event::::LocalToRemoteSwitchFinalized { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10 + } + .into())); + }); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + // Other assets + Response::Assets( + Asset { + id: Junctions::Here.into(), + fun: 10.into(), + } + .into(), + ), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + ); + let pool_balance_after = >::reducible_balance( + &new_switch_pair_info.pool_account, + Preservation::Preserve, + Fortitude::Polite, + ); + let switch_info_before = SwitchPairInfo::from_input_unchecked(new_switch_pair_info.clone()); + let switch_info_after = SwitchPair::::get().unwrap(); + + assert_eq!(pool_balance_after, 100); + assert!(>::balance(&ACCOUNT_0).is_zero()); + assert_eq!(switch_info_before, switch_info_after); + // The pending switch is removed from storage. + assert!(!PendingSwitchConfirmations::::contains_key(0)); + // The right event is generated. + assert!(System::events().into_iter().map(|e| e.event).any(|e| e + == Event::::LocalToRemoteSwitchFinalized { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10 + } + .into())); + }); +} + +#[test] +fn successful_revert_on_transfer_revert_and_running_pair() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Running, + ); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + Response::Assets( + // We put only the recognized asset in here. + Asset { + id: new_switch_pair_info.clone().remote_asset_id.try_into().unwrap(), + fun: 10.into(), + } + .into(), + ), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + ); + let pool_balance_after = >::reducible_balance( + &new_switch_pair_info.pool_account, + Preservation::Preserve, + Fortitude::Polite, + ); + let switch_info_before = SwitchPairInfo::from_input_unchecked(new_switch_pair_info.clone()); + let switch_info_after = SwitchPair::::get().unwrap(); + + assert_eq!(pool_balance_after, 90); + assert_eq!(>::balance(&ACCOUNT_0), 10); + assert_eq!( + switch_info_after.reducible_remote_balance() - switch_info_before.reducible_remote_balance(), + 10 + ); + assert_eq!( + switch_info_before.remote_asset_circulating_supply - switch_info_after.remote_asset_circulating_supply, + 10 + ); + // The pending switch is removed from storage. + assert!(!PendingSwitchConfirmations::::contains_key(0)); + // The revert event is generated + assert!(System::events().into_iter().map(|e| e.event).any(|e| e + == Event::::LocalToRemoteSwitchReverted { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10 + } + .into())); + }); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + Response::Assets( + // We put also a different asset in here, which will be ignored. + vec![ + Asset { + id: new_switch_pair_info.clone().remote_asset_id.try_into().unwrap(), + fun: 10.into(), + }, + Asset { + id: Junctions::Here.into(), + fun: 10.into(), + }, + ] + .into(), + ), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + ); + let pool_balance_after = >::reducible_balance( + &new_switch_pair_info.pool_account, + Preservation::Preserve, + Fortitude::Polite, + ); + let switch_info_before = SwitchPairInfo::from_input_unchecked(new_switch_pair_info.clone()); + let switch_info_after = SwitchPair::::get().unwrap(); + + assert_eq!(pool_balance_after, 90); + assert_eq!(>::balance(&ACCOUNT_0), 10); + assert_eq!( + switch_info_after.reducible_remote_balance() - switch_info_before.reducible_remote_balance(), + 10 + ); + assert_eq!( + switch_info_before.remote_asset_circulating_supply - switch_info_after.remote_asset_circulating_supply, + 10 + ); + // The pending switch is removed from storage. + assert!(!PendingSwitchConfirmations::::contains_key(0)); + // The revert event is generated + assert!(System::events().into_iter().map(|e| e.event).any(|e| e + == Event::::LocalToRemoteSwitchReverted { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10 + } + .into())); + }); +} + +#[test] +fn successful_revert_on_transfer_revert_and_paused_pair() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Paused, + ); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + Response::Assets( + // We put only the recognized asset in here. + Asset { + id: new_switch_pair_info.clone().remote_asset_id.try_into().unwrap(), + fun: 10.into(), + } + .into(), + ), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + ); + let pool_balance_after = >::reducible_balance( + &new_switch_pair_info.pool_account, + Preservation::Preserve, + Fortitude::Polite, + ); + let switch_info_before = SwitchPairInfo::from_input_unchecked(new_switch_pair_info.clone()); + let switch_info_after = SwitchPair::::get().unwrap(); + + assert_eq!(pool_balance_after, 90); + assert_eq!(>::balance(&ACCOUNT_0), 10); + assert_eq!( + switch_info_after.reducible_remote_balance() - switch_info_before.reducible_remote_balance(), + 10 + ); + assert_eq!( + switch_info_before.remote_asset_circulating_supply - switch_info_after.remote_asset_circulating_supply, + 10 + ); + // The pending switch is removed from storage. + assert!(!PendingSwitchConfirmations::::contains_key(0)); + // The revert event is generated + assert!(System::events().into_iter().map(|e| e.event).any(|e| e + == Event::::LocalToRemoteSwitchReverted { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10 + } + .into())); + }); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + Response::Assets( + // We put also a different asset in here, which will be ignored. + vec![ + Asset { + id: new_switch_pair_info.clone().remote_asset_id.try_into().unwrap(), + fun: 10.into(), + }, + Asset { + id: Junctions::Here.into(), + fun: 10.into(), + }, + ] + .into(), + ), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + ); + let pool_balance_after = >::reducible_balance( + &new_switch_pair_info.pool_account, + Preservation::Preserve, + Fortitude::Polite, + ); + let switch_info_before = SwitchPairInfo::from_input_unchecked(new_switch_pair_info.clone()); + let switch_info_after = SwitchPair::::get().unwrap(); + + assert_eq!(pool_balance_after, 90); + assert_eq!(>::balance(&ACCOUNT_0), 10); + assert_eq!( + switch_info_after.reducible_remote_balance() - switch_info_before.reducible_remote_balance(), + 10 + ); + assert_eq!( + switch_info_before.remote_asset_circulating_supply - switch_info_after.remote_asset_circulating_supply, + 10 + ); + // The pending switch is removed from storage. + assert!(!PendingSwitchConfirmations::::contains_key(0)); + // The revert event is generated + assert!(System::events().into_iter().map(|e| e.event).any(|e| e + == Event::::LocalToRemoteSwitchReverted { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10 + } + .into())); + }); +} + +#[test] +fn fail_on_invalid_origin() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Paused, + ); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert_storage_noop!(Pallet::::on_response( + &Junction::Parachain(1001).into(), + 0, + Some(&Junctions::Here.into_location()), + Response::Assets( + Asset { + id: new_switch_pair_info.clone().remote_asset_id.try_into().unwrap(), + fun: 10.into(), + } + .into(), + ), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + )); + }); +} + +#[test] +fn fail_on_query_id_not_found() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Paused, + ); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert_storage_noop!(Pallet::::on_response( + &location, + 1, + Some(&Junctions::Here.into_location()), + Response::Assets( + Asset { + id: new_switch_pair_info.clone().remote_asset_id.try_into().unwrap(), + fun: 10.into(), + } + .into(), + ), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + )); + }); +} + +#[test] +fn fail_on_invalid_querier() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Paused, + ); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert_storage_noop!(Pallet::::on_response( + &location, + 0, + None, + Response::Assets( + Asset { + id: new_switch_pair_info.clone().remote_asset_id.try_into().unwrap(), + fun: 10.into(), + } + .into(), + ), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + )); + }); +} + +#[test] +fn fail_on_invalid_response_type() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Paused, + ); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert_storage_noop!(Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + Response::ExecutionResult(None), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + )); + }); +} + +#[test] +fn fail_on_invalid_assets() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + let new_switch_pair_info = get_switch_pair_info_for_remote_location_with_pool_usable_balance::( + &location, + 100, + SwitchPairStatus::Paused, + ); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert_storage_noop!(Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + // Very same asset ID, but with one less in terms of amount, should still fail. + Response::Assets( + Asset { + id: new_switch_pair_info.clone().remote_asset_id.try_into().unwrap(), + fun: 9.into(), + } + .into(), + ), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + )); + }); + + ExtBuilder::default() + .with_switch_pair_info(new_switch_pair_info.clone()) + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert_storage_noop!(Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + // Same for one more. + Response::Assets( + Asset { + id: new_switch_pair_info.clone().remote_asset_id.try_into().unwrap(), + fun: 11.into(), + } + .into(), + ), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + )); + }); +} + +#[test] +fn fail_on_switch_pair_not_present() { + let location = Location { + parents: 1, + interior: Junctions::X1([Junction::Parachain(1_000)].into()), + }; + + ExtBuilder::default() + .with_pending_switches(vec![( + 0, + UnconfirmedSwitchInfo { + from: ACCOUNT_0, + to: Junctions::Here.into_location().into_versioned(), + amount: 10, + }, + )]) + .build_and_execute_with_sanity_tests(|| { + assert_storage_noop!(Pallet::::on_response( + &location, + 0, + Some(&Junctions::Here.into_location()), + Response::Assets(vec![].into()), + Weight::zero(), + &XcmContext::with_message_id([0; 32]), + )); + }); +} diff --git a/pallets/pallet-asset-switch/src/xcm/trade/switch_pair_remote_asset/mock.rs b/pallets/pallet-asset-switch/src/xcm/trade/switch_pair_remote_asset/mock.rs index 9af584b1e..38a2cd56c 100644 --- a/pallets/pallet-asset-switch/src/xcm/trade/switch_pair_remote_asset/mock.rs +++ b/pallets/pallet-asset-switch/src/xcm/trade/switch_pair_remote_asset/mock.rs @@ -17,7 +17,7 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org use frame_support::{ - construct_runtime, + construct_runtime, parameter_types, traits::{ fungible::{Inspect as InspectFungible, Mutate as MutateFungible}, Everything, @@ -30,6 +30,7 @@ use sp_runtime::{ traits::{BlakeTwo256, CheckedConversion, IdentityLookup}, AccountId32, }; +use xcm::v4::{InteriorLocation, Junctions::Here}; use crate::{NewSwitchPairInfoOf, Pallet, SwitchPairInfoOf}; @@ -84,6 +85,10 @@ impl pallet_balances::Config for MockRuntime { type WeightInfo = (); } +parameter_types! { + pub const UniversalLocation: InteriorLocation = Here; +} + impl crate::Config for MockRuntime { type AccountIdConverter = (); type AssetTransactor = (); @@ -94,6 +99,7 @@ impl crate::Config for MockRuntime { type SubmitterOrigin = EnsureSigned; type SwitchHooks = (); type SwitchOrigin = EnsureRoot; + type UniversalLocation = UniversalLocation; type XcmRouter = (); type WeightInfo = (); diff --git a/pallets/pallet-asset-switch/src/xcm/trade/xcm_fee_asset/mock.rs b/pallets/pallet-asset-switch/src/xcm/trade/xcm_fee_asset/mock.rs index 831f5c392..3054b0bf5 100644 --- a/pallets/pallet-asset-switch/src/xcm/trade/xcm_fee_asset/mock.rs +++ b/pallets/pallet-asset-switch/src/xcm/trade/xcm_fee_asset/mock.rs @@ -17,7 +17,7 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org use frame_support::{ - construct_runtime, + construct_runtime, parameter_types, traits::{ fungible::Dust, tokens::{ @@ -33,6 +33,7 @@ use sp_runtime::{ traits::{BlakeTwo256, IdentityLookup}, AccountId32, DispatchError, }; +use xcm::v4::{InteriorLocation, Junctions::Here}; use crate::{NewSwitchPairInfoOf, Pallet}; @@ -122,6 +123,10 @@ impl UnbalancedFungible for MockCurrency { fn set_total_issuance(_amount: Self::Balance) {} } +parameter_types! { + pub const UniversalLocation: InteriorLocation = Here; +} + impl crate::Config for MockRuntime { type AccountIdConverter = (); type AssetTransactor = (); @@ -132,6 +137,7 @@ impl crate::Config for MockRuntime { type SubmitterOrigin = EnsureSigned; type SwitchHooks = (); type SwitchOrigin = EnsureRoot; + type UniversalLocation = UniversalLocation; type XcmRouter = (); type WeightInfo = (); diff --git a/pallets/pallet-asset-switch/src/xcm/transact/mock.rs b/pallets/pallet-asset-switch/src/xcm/transact/mock.rs index be1760ff9..253d6a848 100644 --- a/pallets/pallet-asset-switch/src/xcm/transact/mock.rs +++ b/pallets/pallet-asset-switch/src/xcm/transact/mock.rs @@ -19,6 +19,7 @@ use frame_support::{ construct_runtime, pallet_prelude::TypeInfo, + parameter_types, traits::{ fungible::{ freeze::Mutate as MutateFreeze, hold::Mutate as MutateHold, Inspect as InspectFungible, @@ -35,7 +36,7 @@ use sp_runtime::{ traits::{BlakeTwo256, CheckedConversion, IdentityLookup}, AccountId32, }; -use xcm::v4::Location; +use xcm::v4::{InteriorLocation, Junctions::Here, Location}; use xcm_executor::traits::ConvertLocation; use crate::{NewSwitchPairInfoOf, Pallet, SwitchPair, SwitchPairInfoOf}; @@ -98,6 +99,10 @@ impl pallet_balances::Config for MockRuntime { type WeightInfo = (); } +parameter_types! { + pub const UniversalLocation: InteriorLocation = Here; +} + impl crate::Config for MockRuntime { type AccountIdConverter = (); type AssetTransactor = (); @@ -108,6 +113,7 @@ impl crate::Config for MockRuntime { type SubmitterOrigin = EnsureSigned; type SwitchHooks = (); type SwitchOrigin = EnsureRoot; + type UniversalLocation = UniversalLocation; type XcmRouter = (); type WeightInfo = (); diff --git a/pallets/pallet-asset-switch/src/xcm/transfer/mock.rs b/pallets/pallet-asset-switch/src/xcm/transfer/mock.rs index 1bf84a5a8..22101e688 100644 --- a/pallets/pallet-asset-switch/src/xcm/transfer/mock.rs +++ b/pallets/pallet-asset-switch/src/xcm/transfer/mock.rs @@ -17,7 +17,7 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org use frame_support::{ - construct_runtime, + construct_runtime, parameter_types, traits::{ fungible::{Dust, Inspect as InspectFungible, Mutate as MutateFungible, Unbalanced as UnbalancedFungible}, tokens::{DepositConsequence, Fortitude, Preservation, Provenance, WithdrawConsequence}, @@ -31,6 +31,7 @@ use sp_runtime::{ traits::{BlakeTwo256, IdentityLookup}, AccountId32, DispatchError, }; +use xcm::v4::{InteriorLocation, Junctions::Here}; use crate::{NewSwitchPairInfoOf, Pallet}; @@ -120,6 +121,10 @@ impl UnbalancedFungible for MockCurrency { fn set_total_issuance(_amount: Self::Balance) {} } +parameter_types! { + pub const UniversalLocation: InteriorLocation = Here; +} + impl crate::Config for MockRuntime { type AccountIdConverter = (); type AssetTransactor = (); @@ -130,6 +135,7 @@ impl crate::Config for MockRuntime { type SubmitterOrigin = EnsureSigned; type SwitchHooks = (); type SwitchOrigin = EnsureRoot; + type UniversalLocation = UniversalLocation; type XcmRouter = (); type WeightInfo = (); diff --git a/runtimes/common/src/asset_switch/hooks.rs b/runtimes/common/src/asset_switch/hooks.rs index 147864c6e..faea6e100 100644 --- a/runtimes/common/src/asset_switch/hooks.rs +++ b/runtimes/common/src/asset_switch/hooks.rs @@ -75,7 +75,7 @@ where } // We don't need to take any actions after the switch is executed - fn post_local_to_remote_switch( + fn post_local_to_remote_switch_dispatch( _from: &AccountIdOf, _to: &VersionedLocation, _amount: BalanceOf, @@ -83,6 +83,11 @@ where Ok(()) } + fn post_local_to_remote_finalized(_from: &::AccountId, _to: &VersionedLocation, _amount: BalanceOf) {} + + fn post_local_to_remote_transfer_revert(_from: &::AccountId, _to: &VersionedLocation, _amount: BalanceOf) { + } + fn pre_remote_to_local_switch(_to: &AccountIdOf, _amount: u128) -> Result<(), Self::Error> { Ok(()) } diff --git a/runtimes/peregrine/src/lib.rs b/runtimes/peregrine/src/lib.rs index 8a50144b5..713ae5970 100644 --- a/runtimes/peregrine/src/lib.rs +++ b/runtimes/peregrine/src/lib.rs @@ -77,7 +77,7 @@ use runtime_common::{ Hash, Header, Nonce, SendDustAndFeesToTreasury, Signature, SlowAdjustingFeeUpdate, }; -use crate::xcm_config::{LocationToAccountIdConverter, XcmRouter}; +use crate::xcm_config::{LocationToAccountIdConverter, UniversalLocation, XcmRouter}; #[cfg(feature = "std")] use sp_version::NativeVersion; @@ -997,6 +997,7 @@ impl pallet_asset_switch::Config for Runtime { type SubmitterOrigin = EnsureSigned; type SwitchHooks = runtime_common::asset_switch::hooks::RestrictSwitchDestinationToSelf; type SwitchOrigin = EnsureRoot; + type UniversalLocation = UniversalLocation; type WeightInfo = weights::pallet_asset_switch::WeightInfo; type XcmRouter = XcmRouter; diff --git a/runtimes/peregrine/src/xcm_config.rs b/runtimes/peregrine/src/xcm_config.rs index 1839c0779..c2ba7ccae 100644 --- a/runtimes/peregrine/src/xcm_config.rs +++ b/runtimes/peregrine/src/xcm_config.rs @@ -17,9 +17,9 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org use crate::{ - AccountId, AllPalletsWithSystem, Balances, CheckingAccount, Fungibles, KiltToEKiltSwitchPallet, MessageQueue, - ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, Treasury, - WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, AssetSwitchPool1, Balances, CheckingAccount, Fungibles, KiltToEKiltSwitchPallet, + MessageQueue, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + Treasury, WeightToFee, XcmpQueue, }; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; @@ -28,6 +28,7 @@ use frame_support::{ traits::{Contains, Everything, Nothing, TransformOrigin}, }; use frame_system::EnsureRoot; +use kilt_support::xcm::EitherOr; use pallet_asset_switch::xcm::{ IsSwitchPairRemoteAsset, IsSwitchPairXcmFeeAsset, MatchesSwitchPairXcmFeeFungibleAsset, SwitchPairRemoteAssetTransactor, UsingComponentsForSwitchPairRemoteAsset, UsingComponentsForXcmFeeAsset, @@ -58,9 +59,8 @@ use runtime_common::{ parameter_types! { pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub Ancestry: Location = Parachain(ParachainInfo::parachain_id().into()).into(); - // TODO: This needs to be updated once we deploy Peregrine on Rococo/Paseo + // TODO: This needs to be updated once we deploy Peregrine on Rococo/Paseo and once we migrate to an SDK version that includes Paseo. pub const RelayNetworkId: Option = None; - // TODO: This needs to be updated once we deploy Peregrine on Rococo/Paseo. pub UniversalLocation: InteriorLocation = Parachain(ParachainInfo::parachain_id().into()).into(); } @@ -104,7 +104,7 @@ pub type XcmBarrier = TrailingSetTopicAsId< // since local accounts don't have a computed origin (the message isn't send by any router etc.) TakeWeightCredit, // If we request a response we should also allow it to execute. - AllowKnownQueryResponses, + AllowKnownQueryResponses>, WithComputedOrigin< ( // Allow unpaid execution from the relay chain @@ -233,7 +233,7 @@ impl xcm_executor::Config for XcmConfig { UsingComponents, HereLocation, AccountId, Balances, SendDustAndFeesToTreasury>, ); - type ResponseHandler = PolkadotXcm; + type ResponseHandler = EitherOr; // What happens with assets that are left in the register after the XCM message // was processed. PolkadotXcm has an AssetTrap that stores a hash of the asset // location, amount, version, etc. diff --git a/runtimes/spiritnet/src/lib.rs b/runtimes/spiritnet/src/lib.rs index 7c9e41c92..7a9a78f4d 100644 --- a/runtimes/spiritnet/src/lib.rs +++ b/runtimes/spiritnet/src/lib.rs @@ -77,7 +77,7 @@ use runtime_common::{ Hash, Header, Nonce, SendDustAndFeesToTreasury, Signature, SlowAdjustingFeeUpdate, }; -use crate::xcm_config::{LocationToAccountIdConverter, XcmRouter}; +use crate::xcm_config::{LocationToAccountIdConverter, UniversalLocation, XcmRouter}; #[cfg(feature = "std")] use sp_version::NativeVersion; @@ -990,6 +990,7 @@ impl pallet_asset_switch::Config for Runtime { type SubmitterOrigin = EnsureSigned; type SwitchHooks = runtime_common::asset_switch::hooks::RestrictSwitchDestinationToSelf; type SwitchOrigin = EnsureRoot; + type UniversalLocation = UniversalLocation; type WeightInfo = weights::pallet_asset_switch::WeightInfo; type XcmRouter = XcmRouter; diff --git a/runtimes/spiritnet/src/xcm_config.rs b/runtimes/spiritnet/src/xcm_config.rs index 2e6ee152e..891e3da10 100644 --- a/runtimes/spiritnet/src/xcm_config.rs +++ b/runtimes/spiritnet/src/xcm_config.rs @@ -17,9 +17,9 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org use crate::{ - AccountId, AllPalletsWithSystem, Balances, CheckingAccount, Fungibles, KiltToEKiltSwitchPallet, MessageQueue, - ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, Treasury, - WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, AssetSwitchPool1, Balances, CheckingAccount, Fungibles, KiltToEKiltSwitchPallet, + MessageQueue, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + Treasury, WeightToFee, XcmpQueue, }; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; @@ -28,6 +28,7 @@ use frame_support::{ traits::{Contains, Everything, Nothing, TransformOrigin}, }; use frame_system::EnsureRoot; +use kilt_support::xcm::EitherOr; use pallet_asset_switch::xcm::{ IsSwitchPairRemoteAsset, IsSwitchPairXcmFeeAsset, MatchesSwitchPairXcmFeeFungibleAsset, SwitchPairRemoteAssetTransactor, UsingComponentsForSwitchPairRemoteAsset, UsingComponentsForXcmFeeAsset, @@ -100,7 +101,7 @@ pub type XcmBarrier = TrailingSetTopicAsId< // since local accounts don't have a computed origin (the message isn't send by any router etc.) TakeWeightCredit, // If we request a response we should also allow it to execute. - AllowKnownQueryResponses, + AllowKnownQueryResponses>, WithComputedOrigin< ( // Allow unpaid execution from the relay chain @@ -227,7 +228,7 @@ impl xcm_executor::Config for XcmConfig { // Can pay with the fungible that matches the "Here" location. UsingComponents, HereLocation, AccountId, Balances, SendDustAndFeesToTreasury>, ); - type ResponseHandler = PolkadotXcm; + type ResponseHandler = EitherOr; // What happens with assets that are left in the register after the XCM message // was processed. PolkadotXcm has an AssetTrap that stores a hash of the asset // location, amount, version, etc. diff --git a/support/Cargo.toml b/support/Cargo.toml index 78fd81e27..91d3d0289 100644 --- a/support/Cargo.toml +++ b/support/Cargo.toml @@ -28,6 +28,8 @@ sp-core = { workspace = true } sp-runtime = { workspace = true } sp-std = { workspace = true } sp-weights = { workspace = true } +xcm = { workspace = true } +xcm-executor = { workspace = true } # std dependencies serde = { workspace = true, features = ["derive"] } @@ -39,6 +41,7 @@ runtime-benchmarks = [ "frame-support/runtime-benchmarks", "frame-system/runtime-benchmarks", "sp-runtime/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", ] std = [ "frame-support/std", @@ -50,5 +53,7 @@ std = [ "sp-runtime/std", "sp-std/std", "sp-weights/std", + "xcm-executor/std", + "xcm/std", ] try-runtime = ["frame-support/try-runtime"] diff --git a/support/src/lib.rs b/support/src/lib.rs index a73dbe45c..35a2a1768 100644 --- a/support/src/lib.rs +++ b/support/src/lib.rs @@ -22,6 +22,7 @@ pub use deposit::Deposit; pub mod migration; pub mod signature; pub mod traits; +pub mod xcm; #[cfg(any(feature = "runtime-benchmarks", feature = "mock"))] pub mod mock; diff --git a/support/src/xcm.rs b/support/src/xcm.rs new file mode 100644 index 000000000..8f6ab188d --- /dev/null +++ b/support/src/xcm.rs @@ -0,0 +1,58 @@ +// KILT Blockchain – https://botlabs.org +// Copyright (C) 2019-2024 BOTLabs GmbH + +// The KILT Blockchain is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The KILT Blockchain is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// If you feel like getting in touch with us, you can do so at info@botlabs.org + +use sp_std::marker::PhantomData; +use sp_weights::Weight; +use xcm::v4::{Location, Response, XcmContext}; +use xcm_executor::traits::OnResponse; + +const LOG_TARGET: &str = "xcm::either-or"; + +// The `OnResponse` trait is not implemented for generic tuples, so we need to +// define our own type to do that, as otherwise we hit Rust's orphan rule. +pub struct EitherOr(PhantomData<(A, B)>); + +impl OnResponse for EitherOr +where + A: OnResponse, + B: OnResponse, +{ + fn expecting_response(origin: &Location, query_id: u64, querier: Option<&Location>) -> bool { + A::expecting_response(origin, query_id, querier) || B::expecting_response(origin, query_id, querier) + } + + fn on_response( + origin: &Location, + query_id: u64, + querier: Option<&Location>, + response: Response, + max_weight: Weight, + context: &XcmContext, + ) -> Weight { + if A::expecting_response(origin, query_id, querier) { + log::trace!(target: LOG_TARGET, "Forwarding action to handler A."); + A::on_response(origin, query_id, querier, response, max_weight, context) + } else if B::expecting_response(origin, query_id, querier) { + log::trace!(target: LOG_TARGET, "Forwarding action to handler B."); + B::on_response(origin, query_id, querier, response, max_weight, context) + } else { + log::trace!(target: LOG_TARGET, "Neither A nor B handle this response."); + Weight::zero() + } + } +} From e022bb184fc2c2b5b509123bee55d02da156c8a4 Mon Sep 17 00:00:00 2001 From: Antonio Date: Wed, 9 Oct 2024 10:00:18 +0200 Subject: [PATCH 30/46] chore: bump yanked dependency (#747) Cargo deny was complaining. This bumps all `futures*` crates from `0.30.0` to `0.30.1`. --- Cargo.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bbcfd9ee5..a5fa444e3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4115,9 +4115,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -4125,9 +4125,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" @@ -4143,9 +4143,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" @@ -4177,9 +4177,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", @@ -4199,15 +4199,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -4217,9 +4217,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", From d5e1db7dbf561c172ac5f2d3a1450246edfbb50c Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Wed, 9 Oct 2024 13:55:11 +0200 Subject: [PATCH 31/46] fix: benchmarks --- pallets/pallet-asset-switch/src/benchmarking.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pallets/pallet-asset-switch/src/benchmarking.rs b/pallets/pallet-asset-switch/src/benchmarking.rs index 0ac195831..44e2a07cf 100644 --- a/pallets/pallet-asset-switch/src/benchmarking.rs +++ b/pallets/pallet-asset-switch/src/benchmarking.rs @@ -273,9 +273,9 @@ mod benchmarks { let account_id = >::SubmitterOrigin::ensure_origin(origin.clone()).unwrap(); let pool_account = Pallet::::pool_account_id_for_remote_asset(&remote_asset_id).unwrap(); let minimum_balance = >::LocalCurrency::minimum_balance(); - // Set submitter balance to ED + 1_000 and pool balance to ED + // Set submitter balance to 2 * ED and pool balance to ED { - >::LocalCurrency::set_balance(&account_id, minimum_balance + 1_000u32.into()); + >::LocalCurrency::set_balance(&account_id, minimum_balance + minimum_balance); >::LocalCurrency::set_balance(&pool_account, minimum_balance); } // Set submitter's fungible balance to the XCM fee @@ -297,14 +297,15 @@ mod benchmarks { .unwrap() .into(), ); - let amount = 1_000u32.into(); + // We can't switch less than ED. + let amount = minimum_balance; #[extrinsic_call] Pallet::::switch(origin as T::RuntimeOrigin, amount, beneficiary); assert_eq!( >::LocalCurrency::balance(&pool_account), - minimum_balance + 1_000u32.into() + minimum_balance + minimum_balance ); } From e10477ee3bf676ec5bf50675040d22103439ffc6 Mon Sep 17 00:00:00 2001 From: Antonio Date: Wed, 9 Oct 2024 18:06:42 +0200 Subject: [PATCH 32/46] chore: update chainspec (#750) Includes https://github.com/KILTprotocol/kilt-node/pull/749 and https://github.com/KILTprotocol/kilt-node/pull/745/ and removes OnFinality bootnodes. --- chainspecs/spiritnet/spiritnet.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/chainspecs/spiritnet/spiritnet.json b/chainspecs/spiritnet/spiritnet.json index 63af73994..cf7798b86 100644 --- a/chainspecs/spiritnet/spiritnet.json +++ b/chainspecs/spiritnet/spiritnet.json @@ -5,13 +5,14 @@ "bootNodes": [ "/dns4/hetzner-1.kilt.io/tcp/30333/p2p/12D3KooWKU8ehzuKAzHEMCy4i4kpJtgCFBCYYhqcub4Y1HR8FRoT", "/dns4/hetzner-2.kilt.io/tcp/30333/p2p/12D3KooWDJzJ7TRNKvE2DWXMSSsoKR5TgxsnNy3W1eCBPveX6g9i", - "/dns4/node-6840569230186737664-0.p2p.onfinality.io/tcp/11578/ws/p2p/12D3KooWQapPfoSDxLBnsVZmpRA1yNApXEAEuhexPcFa7fECqpHa", - "/dns4/node-6840781141641752576-0.p2p.onfinality.io/tcp/28779/ws/p2p/12D3KooWKMCaxjsvaNkYkdQGnPQnkYFouHFdJ3S36aBhV6QTXzaE", - "/dns4/node-6840781099853901824-0.p2p.onfinality.io/tcp/15360/ws/p2p/12D3KooWLWSE85c5PSsgo62Dy5UM68Sx8p3vnJvtvDVC8QHXFpRw", "/dns/kilt.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWHZ6ftYNVQDm5gbHvtGgkPStaBBQBje8rrtxdH1jJonkW", "/dns/kilt.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWMgyhbAKBkEqvKP5bPGTCJZ4nYziJhQep9aHRAkZW8xyy", "/dns4/boot.helikon.io/tcp/8570/p2p/12D3KooWGaE81VE2rzD5TbeRqpTgQwh2sWXMVfMJLBMHQH8AfoXu", - "/dns4/boot.helikon.io/tcp/8572/wss/p2p/12D3KooWGaE81VE2rzD5TbeRqpTgQwh2sWXMVfMJLBMHQH8AfoXu" + "/dns4/boot.helikon.io/tcp/8572/wss/p2p/12D3KooWGaE81VE2rzD5TbeRqpTgQwh2sWXMVfMJLBMHQH8AfoXu", + "/dns/kilt-polkadot-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWRLyHNCYbYMpQWWESNqyW925VP6vMesotaAXSVB3Efhv4", + "/dns/kilt-polkadot-boot-ng.dwellir.com/tcp/30368/p2p/12D3KooWRLyHNCYbYMpQWWESNqyW925VP6vMesotaAXSVB3Efhv4", + "/dns/kilt-bootnode.radiumblock.com/tcp/30333/p2p/12D3KooWDjWPL4sMV92dXb55sbvQkHjZzG3jzF2XePGEHqYtdo3j", + "/dns/kilt-bootnode.radiumblock.com/tcp/30336/wss/p2p/12D3KooWDjWPL4sMV92dXb55sbvQkHjZzG3jzF2XePGEHqYtdo3j" ], "telemetryEndpoints": [ [ From 610ce234613b5dfa476d88b8455dd2f00fe3ffc7 Mon Sep 17 00:00:00 2001 From: Antonio Date: Thu, 10 Oct 2024 09:26:48 +0200 Subject: [PATCH 33/46] chore: add Zombienet docs (#748) Fixes https://github.com/KILTprotocol/ticket/issues/3633. ## How to test Pick any version of Polkadot or Paseo, and try following the steps in the README. See if the network starts running. --- zombienet/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/zombienet/README.md b/zombienet/README.md index 88aedd536..2f957525f 100644 --- a/zombienet/README.md +++ b/zombienet/README.md @@ -33,3 +33,23 @@ To spin up a deployment using the defaults provided in the relative `.env` file, If values are explicitly set in the env, then run either `yarn spawn:peregrine` or `yarn spawn:spiritnet`, which will assume those values have already been set elsewhere. After spawning the network, you can connect to the relaychain Alice node on `ws://localhost:` and to the KILT Alice node on `ws://localhost:`. + +## How to update chainspecs + +In case the relaychain version should be updated to reflect what is deployed on production, a new chainspec must be generated and added to this folder to replace the current one. + +### Spiritnet/Polkadot + +1. Head to the [polkadot-fellows/runtimes repo](https://github.com/polkadot-fellows/runtimes) +2. Checkout the right tag corresponding to the new version to deploy in the Zombienet environment, e.g., [`v1.3.3`](https://github.com/polkadot-fellows/runtimes/tree/v1.3.3) +3. Run `cargo run --release --features fast-runtime -p chain-spec-generator -- polkadot-local > out.json`, which saves the new chainspec into a temporary `out.json` file +4. Move the file into `runtimes/spiritnet` and rename it to `polkadot-local-fast--.json`, e.g., `polkadot-local-fast-v1.3.3-55bd514` +5. Update the `spiritnet/.env` file to set the right Docker image tag for the `RELAY_IMAGE` variable + +### Peregrine/Paseo + +1. Head to the [paseo-network/runtimes repo](https://github.com/paseo-network/runtimes) +2. Checkout the right tag corresponding to the new version to deploy in the Zombienet environment, e.g., [`v1.3.1`](https://github.com/paseo-network/runtimes/tree/v1.3.1) +3. Run `cargo run --release --features fast-runtime -p chain-spec-generator -- paseo-local > out.json`, which saves the new chainspec into a temporary `out.json` file +4. Move the file into `runtimes/peregrine` and rename it to `paseo-local-fast--.json`, e.g., `polkadot-local-fast-v1.3.1-e1fd37c` +5. Update the `peregrine/.env` file to set the right Docker image tag for the `RELAY_IMAGE` variable From 1dfd32fef9da8dab6a3764b2b2043387e5e61819 Mon Sep 17 00:00:00 2001 From: Antonio Date: Thu, 10 Oct 2024 09:48:12 +0200 Subject: [PATCH 34/46] feat: runtime API for switch XCM (#746) Fixes https://github.com/KILTprotocol/ticket/issues/3628. * Moves most of the versioned -> v4 logic into a `TryFrom` implementation * Moves the XCM message creation into its own function * Re-use the function in a new runtime API method for the switch pallet --- Cargo.lock | 28 +- pallets/pallet-asset-switch/src/lib.rs | 302 +++++++++--------- pallets/pallet-asset-switch/src/switch.rs | 70 +++- runtime-api/asset-switch/src/lib.rs | 9 +- .../common/src/asset_switch/runtime_api.rs | 1 + runtimes/peregrine/src/lib.rs | 34 +- runtimes/spiritnet/src/lib.rs | 34 +- 7 files changed, 312 insertions(+), 166 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a5fa444e3..bbcfd9ee5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4115,9 +4115,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -4125,9 +4125,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" @@ -4143,9 +4143,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -4177,9 +4177,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", @@ -4199,15 +4199,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-timer" @@ -4217,9 +4217,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", diff --git a/pallets/pallet-asset-switch/src/lib.rs b/pallets/pallet-asset-switch/src/lib.rs index 9944d92b2..ffc63f9bc 100644 --- a/pallets/pallet-asset-switch/src/lib.rs +++ b/pallets/pallet-asset-switch/src/lib.rs @@ -39,7 +39,14 @@ mod benchmarking; #[cfg(feature = "runtime-benchmarks")] pub use benchmarking::{BenchmarkHelper, PartialBenchmarkInfo}; -use ::xcm::{VersionedAsset, VersionedAssetId, VersionedLocation}; +use ::xcm::{ + v4::{ + Asset, AssetFilter, AssetId, + Instruction::{BuyExecution, DepositAsset, RefundSurplus, ReportHolding, SetAppendix, WithdrawAsset}, + Location, QueryResponseInfo, Weight, WeightLimit, WildAsset, WildFungibility, Xcm, + }, + VersionedAsset, VersionedAssetId, VersionedLocation, +}; use frame_support::traits::{ fungible::Inspect, tokens::{Fortitude, Preservation}, @@ -47,7 +54,7 @@ use frame_support::traits::{ }; use parity_scale_codec::{Decode, Encode}; use sp_runtime::traits::{TrailingZeroInput, Zero}; -use sp_std::boxed::Box; +use sp_std::{boxed::Box, vec}; pub use crate::pallet::*; @@ -56,7 +63,7 @@ const LOG_TARGET: &str = "runtime::pallet-asset-switch"; #[frame_support::pallet] pub mod pallet { use crate::{ - switch::{NewSwitchPairInfo, SwitchPairInfo, SwitchPairStatus, UnconfirmedSwitchInfo}, + switch::{NewSwitchPairInfo, SwitchPairInfo, SwitchPairInfoV4, SwitchPairStatus, UnconfirmedSwitchInfo}, traits::SwitchHooks, WeightInfo, LOG_TARGET, }; @@ -73,12 +80,7 @@ pub mod pallet { use sp_runtime::traits::{TryConvert, Zero}; use sp_std::{boxed::Box, vec}; use xcm::{ - v4::{ - validate_send, Asset, AssetFilter, AssetId, - Instruction::{BuyExecution, DepositAsset, RefundSurplus, ReportHolding, SetAppendix, WithdrawAsset}, - InteriorLocation, Junction, Location, QueryId, QueryResponseInfo, SendXcm, WeightLimit, WildAsset, - WildFungibility, Xcm, - }, + v4::{validate_send, InteriorLocation, Junction, Location, QueryId, SendXcm}, VersionedAsset, VersionedAssetId, VersionedLocation, }; use xcm_executor::traits::TransactAsset; @@ -479,33 +481,7 @@ pub mod pallet { Error::::Liquidity ); - let asset_id_v4: AssetId = switch_pair.remote_asset_id.clone().try_into().map_err(|e| { - log::error!( - target: LOG_TARGET, - "Failed to convert asset ID {:?} into v4 `AssetId` with error {:?}", - switch_pair.remote_asset_id, - e - ); - DispatchError::from(Error::::Internal) - })?; - let remote_asset_fee_v4: Asset = switch_pair.remote_xcm_fee.clone().try_into().map_err(|e| { - log::error!( - target: LOG_TARGET, - "Failed to convert remote XCM asset fee {:?} into v4 `Asset` with error {:?}", - switch_pair.remote_xcm_fee, - e - ); - DispatchError::from(Error::::Xcm) - })?; - let destination_v4: Location = switch_pair.remote_reserve_location.clone().try_into().map_err(|e| { - log::error!( - target: LOG_TARGET, - "Failed to convert remote reserve location {:?} into v4 `Location` with error {:?}", - switch_pair.remote_reserve_location, - e - ); - DispatchError::from(Error::::Internal) - })?; + let switch_pair_v4 = SwitchPairInfoV4::<_, T, I>::try_from(switch_pair).map_err(DispatchError::from)?; let beneficiary_v4: Location = (*beneficiary.clone()).try_into().map_err(|e| { log::info!( target: LOG_TARGET, @@ -530,97 +506,36 @@ pub mod pallet { })?; // 7. Compose and validate XCM message - let query_id = NextQueryId::::get(); let universal_location = T::UniversalLocation::get(); - let our_location_for_destination = universal_location.invert_target(&destination_v4).map_err(|e| { - log::error!( - target: LOG_TARGET, - "Failed to invert universal location {:?} for destination {:?} with error {:?}", - universal_location, destination_v4, e - ); - Error::::Internal - })?; - let appendix = vec![ - ReportHolding { - response_info: QueryResponseInfo { - destination: our_location_for_destination.clone(), - max_weight: Weight::zero(), - query_id, - }, - // Include in the report the assets that were not transferred. - assets: AssetFilter::Wild(WildAsset::AllOf { - id: asset_id_v4.clone(), - fun: WildFungibility::Fungible, - }), - }, - // If the asset to transfer failed to transfer, re-put it back into our own account. Otherwise, if the - // transfer succeeded, this asset won't be present in the holding registry, hence this is effectively a - // no-op. - DepositAsset { - assets: AssetFilter::Wild(WildAsset::AllOf { - id: asset_id_v4.clone(), - fun: WildFungibility::Fungible, - }), - beneficiary: our_location_for_destination, - }, - RefundSurplus, - // Refund the XCM fee left to the user. We are purposefully only selecting the XCM fee asset, although - // there should be no cases in which any other assets are present in the holding registry. - DepositAsset { - assets: AssetFilter::Wild(WildAsset::AllOf { - id: remote_asset_fee_v4.id.clone(), - fun: WildFungibility::Fungible, - }), - beneficiary: submitter_as_location.clone(), - }, - ] - .into(); - // Steps performed: - // 1. Withdraw XCM fees from our SA - // 2. Buy execution - // 3. Set the appendix, executed regardless of the outcome of the transfer: - // 3.1 Report back to our chain the assets in the holding registry. This will - // contain either only the XCM fee token in case of successful transfer, or the - // XCM fee token + the amount of funds supposed to be transferred. - // 3.2 Deposit the un-transferred asset (only if the transfer failed) back into - // our account. - // 3.3 Refund any surplus weight. - // 3.4 Deposit the remaining XCM fee assets in the user's account. - // 4. Withdraw the requested asset (this operation should be infallible since we - // have full control of this balance) - // 5. Try to deposit the withdrawn asset into the user's account. This operation - // could fail and the error is handled in the appendix. - let remote_xcm: Xcm<()> = vec![ - WithdrawAsset(remote_asset_fee_v4.clone().into()), - BuyExecution { - weight_limit: WeightLimit::Unlimited, - fees: remote_asset_fee_v4.clone(), - }, - SetAppendix(appendix), - // Because the appendix relies on forwarding the content of the holding registry (there is at the - // moment no other way of detecting failed switches), we need to make sure the assets are present in - // the holding registry before the execution could fail. - // Using `TransferAsset` could result in assets not even being withdrawn, and we would not be able to - // detect the failed switch. Hence, we need to force the transfer to happen in two steps: 1. withdraw - // (which we assume would never fail since we know we own the required assets) - // 2. deposit (which could fail, e.g., if the beneficiary does not have an ED for a sufficient asset). - WithdrawAsset((asset_id_v4.clone(), remote_asset_amount_as_u128).into()), - DepositAsset { - assets: AssetFilter::Definite((asset_id_v4, remote_asset_amount_as_u128).into()), - beneficiary: beneficiary_v4, - }, - ] - .into(); - let xcm_ticket = - validate_send::(destination_v4.clone(), remote_xcm.clone()).map_err(|e| { - log::info!( - "Failed to call `validate_send` for destination {:?} and remote XCM {:?} with error {:?}", - destination_v4, - remote_xcm, - e + let our_location_for_destination = universal_location + .invert_target(&switch_pair_v4.remote_reserve_location) + .map_err(|e| { + log::error!( + target: LOG_TARGET, + "Failed to invert universal location {:?} for destination {:?} with error {:?}", + universal_location, switch_pair_v4.remote_reserve_location, e ); - DispatchError::from(Error::::Xcm) + Error::::Internal })?; + let remote_xcm = Self::compute_xcm_for_switch( + &our_location_for_destination, + &submitter_as_location, + &beneficiary_v4, + remote_asset_amount_as_u128, + &switch_pair_v4.remote_asset_id, + &switch_pair_v4.remote_xcm_fee, + ); + let xcm_ticket = + validate_send::(switch_pair_v4.remote_reserve_location.clone(), remote_xcm.clone()) + .map_err(|e| { + log::info!( + "Failed to call `validate_send` for destination {:?} and remote XCM {:?} with error {:?}", + switch_pair_v4.remote_reserve_location, + remote_xcm, + e + ); + DispatchError::from(Error::::Xcm) + })?; // 8. Call into hook pre-switch checks T::SwitchHooks::pre_local_to_remote_switch(&submitter, &beneficiary, local_asset_amount) @@ -629,7 +544,7 @@ pub mod pallet { // 9. Transfer funds from user to pool let transferred_amount = T::LocalCurrency::transfer( &submitter, - &switch_pair.pool_account, + &switch_pair_v4.pool_account, local_asset_amount, // We don't care if the submitter's account gets dusted, but it should not be killed. Preservation::Protect, @@ -644,23 +559,24 @@ pub mod pallet { } // 10. Take XCM fee from submitter. - let withdrawn_fees = T::AssetTransactor::withdraw_asset(&remote_asset_fee_v4, &submitter_as_location, None) - .map_err(|e| { - log::info!( - target: LOG_TARGET, - "Failed to withdraw asset {:?} from location {:?} with error {:?}", - remote_asset_fee_v4, - submitter_as_location, - e - ); - DispatchError::from(Error::::UserXcmBalance) - })?; - if withdrawn_fees != vec![remote_asset_fee_v4.clone()].into() { + let withdrawn_fees = + T::AssetTransactor::withdraw_asset(&switch_pair_v4.remote_xcm_fee, &submitter_as_location, None) + .map_err(|e| { + log::info!( + target: LOG_TARGET, + "Failed to withdraw asset {:?} from location {:?} with error {:?}", + switch_pair_v4.remote_xcm_fee, + submitter_as_location, + e + ); + DispatchError::from(Error::::UserXcmBalance) + })?; + if withdrawn_fees != vec![switch_pair_v4.remote_xcm_fee.clone()].into() { log::error!( target: LOG_TARGET, "Withdrawn fees {:?} does not match expected fee {:?}.", withdrawn_fees, - remote_asset_fee_v4 + switch_pair_v4.remote_xcm_fee ); return Err(DispatchError::from(Error::::Internal)); } @@ -690,7 +606,15 @@ pub mod pallet { })?; Ok(()) })?; - // 12.2 Write the query ID into storage, checking for the very unlikely + // 12.2 Update the query ID storage entry. wrapping around the max value since + // it's safe to do so, assuming by the time we wrap the previously pending + // transfers have all been processed. + let query_id = NextQueryId::::mutate(|entry| { + let next = *entry; + *entry = entry.wrapping_add(1); + next + }); + // 12.3 Write the query ID into storage, checking for the very unlikely // situation in which one already exists. PendingSwitchConfirmations::::try_mutate(query_id, |entry| { match entry { @@ -713,12 +637,6 @@ pub mod pallet { } } })?; - // 12.3 Update the query ID storage entry. wrapping around the max value since - // it's safe to do so, assuming by the time we wrap the previously pending - // transfers have all been processed. - NextQueryId::::mutate(|entry| { - *entry = entry.wrapping_add(1); - }); // 13. Call into hook post-switch checks T::SwitchHooks::post_local_to_remote_switch_dispatch(&submitter, &beneficiary, local_asset_amount) @@ -838,6 +756,100 @@ impl, I: 'static> Pallet { }) } + /// Compose the XCM message for a local -> remote switch to be sent to the + /// switch pair configured remote location. + /// + /// The message includes an appendix which reports back to this chain the + /// result of the operation by the means of sending the content of the + /// holding registry after the transfer is supposed to have happened. + /// + /// The XCM program is so composed: + /// 1. Withdraw XCM fees from our SA + /// 2. Buy execution + /// 3. Set the appendix, executed regardless of the outcome of the transfer: + /// + /// 3.1 Report back to our chain the assets in the holding registry. + /// This will contain either only the XCM fee token in case of successful + /// transfer, or the XCM fee token + the amount of funds supposed to be + /// transferred. + /// + /// 3.2 Deposit the un-transferred asset (only if the transfer + /// failed) back into our account. + /// + /// 3.3 Refund any surplus weight. + /// + /// 3.4 Deposit the remaining XCM fee assets in the user's account. + /// + /// 4. Withdraw the requested asset (this operation should be infallible + /// since we have full control of this balance) + /// 5. Try to deposit the withdrawn asset into the user's account. This + /// operation could fail and the error is handled in the appendix. + pub fn compute_xcm_for_switch( + inverted_universal_location: &Location, + from: &Location, + to: &Location, + amount: u128, + asset_id: &AssetId, + remote_asset_fee: &Asset, + ) -> Xcm<()> { + let appendix = vec![ + ReportHolding { + response_info: QueryResponseInfo { + destination: inverted_universal_location.clone(), + max_weight: Weight::zero(), + query_id: NextQueryId::::get(), + }, + // Include in the report the assets that were not transferred. + assets: AssetFilter::Wild(WildAsset::AllOf { + id: asset_id.clone(), + fun: WildFungibility::Fungible, + }), + }, + // If the asset to transfer failed to transfer, re-put it back into our own account. Otherwise, if the + // transfer succeeded, this asset won't be present in the holding registry, hence this is effectively a + // no-op. + DepositAsset { + assets: AssetFilter::Wild(WildAsset::AllOf { + id: asset_id.clone(), + fun: WildFungibility::Fungible, + }), + beneficiary: inverted_universal_location.clone(), + }, + RefundSurplus, + // Refund the XCM fee left to the user. We are purposefully only selecting the XCM fee asset, although + // there should be no cases in which any other assets are present in the holding registry. + DepositAsset { + assets: AssetFilter::Wild(WildAsset::AllOf { + id: remote_asset_fee.id.clone(), + fun: WildFungibility::Fungible, + }), + beneficiary: from.clone(), + }, + ] + .into(); + vec![ + WithdrawAsset(remote_asset_fee.clone().into()), + BuyExecution { + weight_limit: WeightLimit::Unlimited, + fees: remote_asset_fee.clone(), + }, + SetAppendix(appendix), + // Because the appendix relies on forwarding the content of the holding registry (there is at the + // moment no other way of detecting failed switches), we need to make sure the assets are present in + // the holding registry before the execution could fail. + // Using `TransferAsset` could result in assets not even being withdrawn, and we would not be able to + // detect the failed switch. Hence, we need to force the transfer to happen in two steps: 1. withdraw + // (which we assume would never fail since we know we own the required assets) + // 2. deposit (which could fail, e.g., if the beneficiary does not have an ED for a sufficient asset). + WithdrawAsset((asset_id.clone(), amount).into()), + DepositAsset { + assets: AssetFilter::Definite((asset_id.clone(), amount).into()), + beneficiary: to.clone(), + }, + ] + .into() + } + // Read the first item in the storage and returns `true` if `Some`, and `false` // otherwise. fn is_any_transaction_pending() -> bool { diff --git a/pallets/pallet-asset-switch/src/switch.rs b/pallets/pallet-asset-switch/src/switch.rs index dd61e886f..e5985718a 100644 --- a/pallets/pallet-asset-switch/src/switch.rs +++ b/pallets/pallet-asset-switch/src/switch.rs @@ -19,7 +19,13 @@ use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; use sp_core::RuntimeDebug; -use xcm::{VersionedAsset, VersionedAssetId, VersionedLocation}; +use sp_std::marker::PhantomData; +use xcm::{ + v4::{Asset, AssetId, Location}, + VersionedAsset, VersionedAssetId, VersionedLocation, +}; + +use crate::{Config, Error, LOG_TARGET}; /// Input information used to generate a `SwitchPairInfo`. #[derive(Encode, Decode, TypeInfo, RuntimeDebug, Clone)] @@ -173,3 +179,65 @@ pub struct UnconfirmedSwitchInfo { pub(crate) to: Destination, pub(crate) amount: Amount, } + +#[allow(dead_code)] +pub(crate) struct SwitchPairInfoV4 { + pub(crate) pool_account: AccountId, + pub(crate) remote_asset_circulating_supply: u128, + pub(crate) remote_asset_ed: u128, + pub(crate) remote_asset_id: AssetId, + pub(crate) remote_asset_total_supply: u128, + pub(crate) remote_reserve_location: Location, + pub(crate) remote_xcm_fee: Asset, + pub(crate) status: SwitchPairStatus, + pub(crate) remote_asset_sovereign_total_balance: u128, + _phantom_data: PhantomData<(T, I)>, +} + +impl TryFrom> for SwitchPairInfoV4 +where + T: Config, + I: 'static, +{ + type Error = Error; + + fn try_from(value: SwitchPairInfo) -> Result { + let value_v4 = Self { + pool_account: value.pool_account, + remote_asset_circulating_supply: value.remote_asset_circulating_supply, + remote_asset_ed: value.remote_asset_ed, + remote_asset_sovereign_total_balance: value.remote_asset_sovereign_total_balance, + remote_asset_total_supply: value.remote_asset_total_supply, + status: value.status, + remote_asset_id: value.remote_asset_id.clone().try_into().map_err(|e| { + log::error!( + target: LOG_TARGET, + "Failed to convert asset ID {:?} into v4 `AssetId` with error {:?}", + value.remote_asset_id, + e + ); + Error::::Internal + })?, + remote_reserve_location: value.remote_reserve_location.clone().try_into().map_err(|e| { + log::error!( + target: LOG_TARGET, + "Failed to convert remote reserve location {:?} into v4 `Location` with error {:?}", + value.remote_reserve_location, + e + ); + Error::::Internal + })?, + remote_xcm_fee: value.remote_xcm_fee.clone().try_into().map_err(|e| { + log::error!( + target: LOG_TARGET, + "Failed to convert remote XCM asset fee {:?} into v4 `Asset` with error {:?}", + value.remote_xcm_fee, + e + ); + Error::::Xcm + })?, + _phantom_data: Default::default(), + }; + Ok(value_v4) + } +} diff --git a/runtime-api/asset-switch/src/lib.rs b/runtime-api/asset-switch/src/lib.rs index 408c38e3a..d75f858ad 100644 --- a/runtime-api/asset-switch/src/lib.rs +++ b/runtime-api/asset-switch/src/lib.rs @@ -22,12 +22,17 @@ use parity_scale_codec::Codec; use sp_std::vec::Vec; sp_api::decl_runtime_apis! { - /// Runtime API to compute the pool account for a given switch pair ID and remote asset. - pub trait AssetSwitch where + /// Runtime API to compute the pool account for a given switch pair ID and remote asset, and to compute the XCM that would be sent to destination for a given switch operation. + #[api_version(2)] + pub trait AssetSwitch where AssetId: Codec, AccountId: Codec, + Amount: Codec, + Destination: Codec, Error: Codec, + Xcm: Codec, { fn pool_account_id(pair_id: Vec, asset_id: AssetId) -> Result; + fn xcm_for_switch(pair_id: Vec, from: AccountId, to: Destination, amount: Amount) -> Result; } } diff --git a/runtimes/common/src/asset_switch/runtime_api.rs b/runtimes/common/src/asset_switch/runtime_api.rs index a7dbaaa78..c1d0d6ae1 100644 --- a/runtimes/common/src/asset_switch/runtime_api.rs +++ b/runtimes/common/src/asset_switch/runtime_api.rs @@ -23,5 +23,6 @@ use scale_info::TypeInfo; pub enum Error { InvalidInput, SwitchPoolNotFound, + SwitchPoolNotSet, Internal, } diff --git a/runtimes/peregrine/src/lib.rs b/runtimes/peregrine/src/lib.rs index 713ae5970..f5ae31cfe 100644 --- a/runtimes/peregrine/src/lib.rs +++ b/runtimes/peregrine/src/lib.rs @@ -51,7 +51,7 @@ use sp_runtime::{ }; use sp_std::{cmp::Ordering, prelude::*}; use sp_version::RuntimeVersion; -use xcm::{v4::Location, VersionedAssetId}; +use xcm::{v4::Location, VersionedAssetId, VersionedLocation, VersionedXcm}; use xcm_builder::{FungiblesAdapter, NoChecking}; use delegation::DelegationAc; @@ -1588,7 +1588,7 @@ impl_runtime_apis! { } } - impl pallet_asset_switch_runtime_api::AssetSwitch for Runtime { + impl pallet_asset_switch_runtime_api::AssetSwitch> for Runtime { fn pool_account_id(pair_id: Vec, asset_id: VersionedAssetId) -> Result { use core::str; use frame_support::traits::PalletInfoAccess; @@ -1606,6 +1606,36 @@ impl_runtime_apis! { _ => Err(AssetSwitchApiError::SwitchPoolNotFound) } } + + fn xcm_for_switch(pair_id: Vec, from: AccountId, to: VersionedLocation, amount: u128) -> Result, AssetSwitchApiError> { + use core::str; + use frame_support::traits::PalletInfoAccess; + use sp_runtime::traits::TryConvert; + use xcm::v4::{AssetId, Asset}; + + let Ok(pair_id_as_string) = str::from_utf8(pair_id.as_slice()) else { + return Err(AssetSwitchApiError::InvalidInput); + }; + + if pair_id_as_string != AssetSwitchPool1::name() { + return Err(AssetSwitchApiError::SwitchPoolNotFound); + } + + let Some(switch_pair) = AssetSwitchPool1::switch_pair() else { + return Err(AssetSwitchApiError::SwitchPoolNotSet); + }; + + let from_v4 = AccountId32ToAccountId32JunctionConverter::try_convert(from).map_err(|_| AssetSwitchApiError::Internal)?; + let to_v4 = Location::try_from(to.clone()).map_err(|_| AssetSwitchApiError::Internal)?; + let our_location_for_destination = { + let universal_location = UniversalLocation::get(); + universal_location.invert_target(&to_v4) + }.map_err(|_| AssetSwitchApiError::Internal)?; + let asset_id_v4 = AssetId::try_from(switch_pair.remote_asset_id).map_err(|_| AssetSwitchApiError::Internal)?; + let remote_asset_fee_v4 = Asset::try_from(switch_pair.remote_xcm_fee).map_err(|_| AssetSwitchApiError::Internal)?; + + Ok(VersionedXcm::V4(AssetSwitchPool1::compute_xcm_for_switch(&our_location_for_destination, &from_v4.into(), &to_v4, amount, &asset_id_v4, &remote_asset_fee_v4))) + } } #[cfg(feature = "runtime-benchmarks")] diff --git a/runtimes/spiritnet/src/lib.rs b/runtimes/spiritnet/src/lib.rs index 7a9a78f4d..d0bb014de 100644 --- a/runtimes/spiritnet/src/lib.rs +++ b/runtimes/spiritnet/src/lib.rs @@ -51,7 +51,7 @@ use sp_runtime::{ }; use sp_std::{cmp::Ordering, prelude::*}; use sp_version::RuntimeVersion; -use xcm::{v4::Location, VersionedAssetId}; +use xcm::{v4::Location, VersionedAssetId, VersionedLocation, VersionedXcm}; use xcm_builder::{FungiblesAdapter, NoChecking}; use delegation::DelegationAc; @@ -1578,7 +1578,7 @@ impl_runtime_apis! { } } - impl pallet_asset_switch_runtime_api::AssetSwitch for Runtime { + impl pallet_asset_switch_runtime_api::AssetSwitch> for Runtime { fn pool_account_id(pair_id: Vec, asset_id: VersionedAssetId) -> Result { use core::str; use frame_support::traits::PalletInfoAccess; @@ -1596,6 +1596,36 @@ impl_runtime_apis! { _ => Err(AssetSwitchApiError::SwitchPoolNotFound) } } + + fn xcm_for_switch(pair_id: Vec, from: AccountId, to: VersionedLocation, amount: u128) -> Result, AssetSwitchApiError> { + use core::str; + use frame_support::traits::PalletInfoAccess; + use sp_runtime::traits::TryConvert; + use xcm::v4::{AssetId, Asset}; + + let Ok(pair_id_as_string) = str::from_utf8(pair_id.as_slice()) else { + return Err(AssetSwitchApiError::InvalidInput); + }; + + if pair_id_as_string != AssetSwitchPool1::name() { + return Err(AssetSwitchApiError::SwitchPoolNotFound); + } + + let Some(switch_pair) = AssetSwitchPool1::switch_pair() else { + return Err(AssetSwitchApiError::SwitchPoolNotSet); + }; + + let from_v4 = AccountId32ToAccountId32JunctionConverter::try_convert(from).map_err(|_| AssetSwitchApiError::Internal)?; + let to_v4 = Location::try_from(to.clone()).map_err(|_| AssetSwitchApiError::Internal)?; + let our_location_for_destination = { + let universal_location = UniversalLocation::get(); + universal_location.invert_target(&to_v4) + }.map_err(|_| AssetSwitchApiError::Internal)?; + let asset_id_v4 = AssetId::try_from(switch_pair.remote_asset_id).map_err(|_| AssetSwitchApiError::Internal)?; + let remote_asset_fee_v4 = Asset::try_from(switch_pair.remote_xcm_fee).map_err(|_| AssetSwitchApiError::Internal)?; + + Ok(VersionedXcm::V4(AssetSwitchPool1::compute_xcm_for_switch(&our_location_for_destination, &from_v4.into(), &to_v4, amount, &asset_id_v4, &remote_asset_fee_v4))) + } } #[cfg(feature = "runtime-benchmarks")] From 3204781822de843de2d4e084810c46ee9d5fa16a Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Thu, 10 Oct 2024 09:57:14 +0200 Subject: [PATCH 35/46] chore: bump future-utils crate --- Cargo.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bbcfd9ee5..a5fa444e3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4115,9 +4115,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -4125,9 +4125,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" @@ -4143,9 +4143,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" @@ -4177,9 +4177,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", @@ -4199,15 +4199,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -4217,9 +4217,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", From f65d9799ce8aed59a939322e379c2545182f6d3a Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Thu, 10 Oct 2024 12:05:12 +0200 Subject: [PATCH 36/46] fix: runtime benchmarks script --- scripts/run_benches_for_runtime.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run_benches_for_runtime.sh b/scripts/run_benches_for_runtime.sh index 7e18e9eb5..3bd7cc9ae 100755 --- a/scripts/run_benches_for_runtime.sh +++ b/scripts/run_benches_for_runtime.sh @@ -9,7 +9,7 @@ profile=${2-"release"} chain=$([ "$1" == "spiritnet" ] && echo "spiritnet-dev" || echo "dev") # Dev profile is the debug target -standard_args="--profile $2 --locked --features=runtime-benchmarks --bin=kilt-parachain" +standard_args="--profile $profile --locked --features=runtime-benchmarks --bin=kilt-parachain" pallets=( pallet-migration From 84c6dd960aa893de2d3f081be1838ac57a2bb3b7 Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Thu, 10 Oct 2024 12:53:17 +0200 Subject: [PATCH 37/46] fix: runtime benchmark script --- scripts/run_benches_for_runtime.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/run_benches_for_runtime.sh b/scripts/run_benches_for_runtime.sh index 3bd7cc9ae..fb6f8d671 100755 --- a/scripts/run_benches_for_runtime.sh +++ b/scripts/run_benches_for_runtime.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -x # Runs all benchmarks for all pallets, for a given runtime, provided by $1 # Should be run on a reference machine to gain accurate benchmarks @@ -64,7 +65,7 @@ if [ $profile == "dev" ]; then additional_args="--steps=2 --repeat=1 --default-pov-mode=ignored --no-verify" else target_folder=$profile - additional_args="--header=\"HEADER-GPL\" --template=\".maintain/runtime-weight-template.hbs\" --output=\"./runtimes/${runtime}/src/weights/\"" + additional_args="--header=HEADER-GPL --template=.maintain/runtime-weight-template.hbs --output=./runtimes/${runtime}/src/weights/" fi for pallet in "${pallets[@]}"; do From e60328c43c1e7beed636312f26e996aca7afb0af Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Fri, 11 Oct 2024 11:21:50 +0200 Subject: [PATCH 38/46] chore: change codebase check workflow to be triggered on pushes --- .github/workflows/check-code.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-code.yml b/.github/workflows/check-code.yml index 9ca443e5c..087e1058b 100644 --- a/.github/workflows/check-code.yml +++ b/.github/workflows/check-code.yml @@ -6,7 +6,8 @@ on: branches: - develop - master - - 'refs/tags/[0-9]+.[0-9]+.[0-9]+*' + tags: + - '[0-9]+.[0-9]+.[0-9]+*' concurrency: group: ${{ github.workflow }}-${{ github.ref }} From fa9155fa9ec4d99d6699dd783c4261063955303e Mon Sep 17 00:00:00 2001 From: Antonio Date: Fri, 11 Oct 2024 15:44:11 +0200 Subject: [PATCH 39/46] fix: deployment workflows (#755) --- .github/workflows/check-code.yml | 25 +++++++++++++++++++ .github/workflows/trigger-gitlab-pipeline.yml | 9 ------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/.github/workflows/check-code.yml b/.github/workflows/check-code.yml index 087e1058b..34765665b 100644 --- a/.github/workflows/check-code.yml +++ b/.github/workflows/check-code.yml @@ -361,3 +361,28 @@ jobs: -w /workspace \ paritytech/ci-unified:bullseye-1.74.0 \ bash -c "bash -x scripts/run_benches_for_runtime.sh ${{ matrix.runtime }} dev" + + trigger-gitlab: + name: Trigger GitLab CI + runs-on: ubuntu-latest + env: + TARGET_WORKFLOW_FILE: trigger-gitlab-pipeline.yml # Change this in case of file renamings + + needs: + - cargo-doc + - cargo-test + - try-runtime + # This is only triggered on pushes, which means pushes on `master`, `develop` or of tags. + - test-runtime-benchmarks + + steps: + - name: Trigger "GitLab trigger" workflow + uses: actions/github-script@v7 + with: + script: | + github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: '${{ env.TARGET_WORKFLOW_FILE }}', + ref: '${{ github.ref }}', + }) diff --git a/.github/workflows/trigger-gitlab-pipeline.yml b/.github/workflows/trigger-gitlab-pipeline.yml index f34dc8cf1..41f0f08ca 100644 --- a/.github/workflows/trigger-gitlab-pipeline.yml +++ b/.github/workflows/trigger-gitlab-pipeline.yml @@ -2,20 +2,11 @@ name: Trigger GitLab Deploy Pipeline on: workflow_dispatch: - workflow_run: - workflows: ["Check codebase"] - branches: - - develop - - master - - 'refs/tags/[0-9]+.[0-9]+.[0-9]+*' - types: - - completed jobs: trigger-gitlab: name: Trigger GitLab CI runs-on: ubuntu-latest - if: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }} steps: - name: Checkout repository From 0e0a0c540fcfbeda1b9e7a07e0330f3de6fad14c Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Thu, 10 Oct 2024 10:29:15 +0200 Subject: [PATCH 40/46] Revert "feat: runtime API for switch XCM (#746)" This reverts commit 1dfd32fef9da8dab6a3764b2b2043387e5e61819. --- pallets/pallet-asset-switch/src/lib.rs | 302 +++++++++--------- pallets/pallet-asset-switch/src/switch.rs | 70 +--- runtime-api/asset-switch/src/lib.rs | 9 +- .../common/src/asset_switch/runtime_api.rs | 1 - runtimes/peregrine/src/lib.rs | 34 +- runtimes/spiritnet/src/lib.rs | 34 +- 6 files changed, 152 insertions(+), 298 deletions(-) diff --git a/pallets/pallet-asset-switch/src/lib.rs b/pallets/pallet-asset-switch/src/lib.rs index ffc63f9bc..9944d92b2 100644 --- a/pallets/pallet-asset-switch/src/lib.rs +++ b/pallets/pallet-asset-switch/src/lib.rs @@ -39,14 +39,7 @@ mod benchmarking; #[cfg(feature = "runtime-benchmarks")] pub use benchmarking::{BenchmarkHelper, PartialBenchmarkInfo}; -use ::xcm::{ - v4::{ - Asset, AssetFilter, AssetId, - Instruction::{BuyExecution, DepositAsset, RefundSurplus, ReportHolding, SetAppendix, WithdrawAsset}, - Location, QueryResponseInfo, Weight, WeightLimit, WildAsset, WildFungibility, Xcm, - }, - VersionedAsset, VersionedAssetId, VersionedLocation, -}; +use ::xcm::{VersionedAsset, VersionedAssetId, VersionedLocation}; use frame_support::traits::{ fungible::Inspect, tokens::{Fortitude, Preservation}, @@ -54,7 +47,7 @@ use frame_support::traits::{ }; use parity_scale_codec::{Decode, Encode}; use sp_runtime::traits::{TrailingZeroInput, Zero}; -use sp_std::{boxed::Box, vec}; +use sp_std::boxed::Box; pub use crate::pallet::*; @@ -63,7 +56,7 @@ const LOG_TARGET: &str = "runtime::pallet-asset-switch"; #[frame_support::pallet] pub mod pallet { use crate::{ - switch::{NewSwitchPairInfo, SwitchPairInfo, SwitchPairInfoV4, SwitchPairStatus, UnconfirmedSwitchInfo}, + switch::{NewSwitchPairInfo, SwitchPairInfo, SwitchPairStatus, UnconfirmedSwitchInfo}, traits::SwitchHooks, WeightInfo, LOG_TARGET, }; @@ -80,7 +73,12 @@ pub mod pallet { use sp_runtime::traits::{TryConvert, Zero}; use sp_std::{boxed::Box, vec}; use xcm::{ - v4::{validate_send, InteriorLocation, Junction, Location, QueryId, SendXcm}, + v4::{ + validate_send, Asset, AssetFilter, AssetId, + Instruction::{BuyExecution, DepositAsset, RefundSurplus, ReportHolding, SetAppendix, WithdrawAsset}, + InteriorLocation, Junction, Location, QueryId, QueryResponseInfo, SendXcm, WeightLimit, WildAsset, + WildFungibility, Xcm, + }, VersionedAsset, VersionedAssetId, VersionedLocation, }; use xcm_executor::traits::TransactAsset; @@ -481,7 +479,33 @@ pub mod pallet { Error::::Liquidity ); - let switch_pair_v4 = SwitchPairInfoV4::<_, T, I>::try_from(switch_pair).map_err(DispatchError::from)?; + let asset_id_v4: AssetId = switch_pair.remote_asset_id.clone().try_into().map_err(|e| { + log::error!( + target: LOG_TARGET, + "Failed to convert asset ID {:?} into v4 `AssetId` with error {:?}", + switch_pair.remote_asset_id, + e + ); + DispatchError::from(Error::::Internal) + })?; + let remote_asset_fee_v4: Asset = switch_pair.remote_xcm_fee.clone().try_into().map_err(|e| { + log::error!( + target: LOG_TARGET, + "Failed to convert remote XCM asset fee {:?} into v4 `Asset` with error {:?}", + switch_pair.remote_xcm_fee, + e + ); + DispatchError::from(Error::::Xcm) + })?; + let destination_v4: Location = switch_pair.remote_reserve_location.clone().try_into().map_err(|e| { + log::error!( + target: LOG_TARGET, + "Failed to convert remote reserve location {:?} into v4 `Location` with error {:?}", + switch_pair.remote_reserve_location, + e + ); + DispatchError::from(Error::::Internal) + })?; let beneficiary_v4: Location = (*beneficiary.clone()).try_into().map_err(|e| { log::info!( target: LOG_TARGET, @@ -506,36 +530,97 @@ pub mod pallet { })?; // 7. Compose and validate XCM message + let query_id = NextQueryId::::get(); let universal_location = T::UniversalLocation::get(); - let our_location_for_destination = universal_location - .invert_target(&switch_pair_v4.remote_reserve_location) - .map_err(|e| { - log::error!( - target: LOG_TARGET, - "Failed to invert universal location {:?} for destination {:?} with error {:?}", - universal_location, switch_pair_v4.remote_reserve_location, e + let our_location_for_destination = universal_location.invert_target(&destination_v4).map_err(|e| { + log::error!( + target: LOG_TARGET, + "Failed to invert universal location {:?} for destination {:?} with error {:?}", + universal_location, destination_v4, e + ); + Error::::Internal + })?; + let appendix = vec![ + ReportHolding { + response_info: QueryResponseInfo { + destination: our_location_for_destination.clone(), + max_weight: Weight::zero(), + query_id, + }, + // Include in the report the assets that were not transferred. + assets: AssetFilter::Wild(WildAsset::AllOf { + id: asset_id_v4.clone(), + fun: WildFungibility::Fungible, + }), + }, + // If the asset to transfer failed to transfer, re-put it back into our own account. Otherwise, if the + // transfer succeeded, this asset won't be present in the holding registry, hence this is effectively a + // no-op. + DepositAsset { + assets: AssetFilter::Wild(WildAsset::AllOf { + id: asset_id_v4.clone(), + fun: WildFungibility::Fungible, + }), + beneficiary: our_location_for_destination, + }, + RefundSurplus, + // Refund the XCM fee left to the user. We are purposefully only selecting the XCM fee asset, although + // there should be no cases in which any other assets are present in the holding registry. + DepositAsset { + assets: AssetFilter::Wild(WildAsset::AllOf { + id: remote_asset_fee_v4.id.clone(), + fun: WildFungibility::Fungible, + }), + beneficiary: submitter_as_location.clone(), + }, + ] + .into(); + // Steps performed: + // 1. Withdraw XCM fees from our SA + // 2. Buy execution + // 3. Set the appendix, executed regardless of the outcome of the transfer: + // 3.1 Report back to our chain the assets in the holding registry. This will + // contain either only the XCM fee token in case of successful transfer, or the + // XCM fee token + the amount of funds supposed to be transferred. + // 3.2 Deposit the un-transferred asset (only if the transfer failed) back into + // our account. + // 3.3 Refund any surplus weight. + // 3.4 Deposit the remaining XCM fee assets in the user's account. + // 4. Withdraw the requested asset (this operation should be infallible since we + // have full control of this balance) + // 5. Try to deposit the withdrawn asset into the user's account. This operation + // could fail and the error is handled in the appendix. + let remote_xcm: Xcm<()> = vec![ + WithdrawAsset(remote_asset_fee_v4.clone().into()), + BuyExecution { + weight_limit: WeightLimit::Unlimited, + fees: remote_asset_fee_v4.clone(), + }, + SetAppendix(appendix), + // Because the appendix relies on forwarding the content of the holding registry (there is at the + // moment no other way of detecting failed switches), we need to make sure the assets are present in + // the holding registry before the execution could fail. + // Using `TransferAsset` could result in assets not even being withdrawn, and we would not be able to + // detect the failed switch. Hence, we need to force the transfer to happen in two steps: 1. withdraw + // (which we assume would never fail since we know we own the required assets) + // 2. deposit (which could fail, e.g., if the beneficiary does not have an ED for a sufficient asset). + WithdrawAsset((asset_id_v4.clone(), remote_asset_amount_as_u128).into()), + DepositAsset { + assets: AssetFilter::Definite((asset_id_v4, remote_asset_amount_as_u128).into()), + beneficiary: beneficiary_v4, + }, + ] + .into(); + let xcm_ticket = + validate_send::(destination_v4.clone(), remote_xcm.clone()).map_err(|e| { + log::info!( + "Failed to call `validate_send` for destination {:?} and remote XCM {:?} with error {:?}", + destination_v4, + remote_xcm, + e ); - Error::::Internal + DispatchError::from(Error::::Xcm) })?; - let remote_xcm = Self::compute_xcm_for_switch( - &our_location_for_destination, - &submitter_as_location, - &beneficiary_v4, - remote_asset_amount_as_u128, - &switch_pair_v4.remote_asset_id, - &switch_pair_v4.remote_xcm_fee, - ); - let xcm_ticket = - validate_send::(switch_pair_v4.remote_reserve_location.clone(), remote_xcm.clone()) - .map_err(|e| { - log::info!( - "Failed to call `validate_send` for destination {:?} and remote XCM {:?} with error {:?}", - switch_pair_v4.remote_reserve_location, - remote_xcm, - e - ); - DispatchError::from(Error::::Xcm) - })?; // 8. Call into hook pre-switch checks T::SwitchHooks::pre_local_to_remote_switch(&submitter, &beneficiary, local_asset_amount) @@ -544,7 +629,7 @@ pub mod pallet { // 9. Transfer funds from user to pool let transferred_amount = T::LocalCurrency::transfer( &submitter, - &switch_pair_v4.pool_account, + &switch_pair.pool_account, local_asset_amount, // We don't care if the submitter's account gets dusted, but it should not be killed. Preservation::Protect, @@ -559,24 +644,23 @@ pub mod pallet { } // 10. Take XCM fee from submitter. - let withdrawn_fees = - T::AssetTransactor::withdraw_asset(&switch_pair_v4.remote_xcm_fee, &submitter_as_location, None) - .map_err(|e| { - log::info!( - target: LOG_TARGET, - "Failed to withdraw asset {:?} from location {:?} with error {:?}", - switch_pair_v4.remote_xcm_fee, - submitter_as_location, - e - ); - DispatchError::from(Error::::UserXcmBalance) - })?; - if withdrawn_fees != vec![switch_pair_v4.remote_xcm_fee.clone()].into() { + let withdrawn_fees = T::AssetTransactor::withdraw_asset(&remote_asset_fee_v4, &submitter_as_location, None) + .map_err(|e| { + log::info!( + target: LOG_TARGET, + "Failed to withdraw asset {:?} from location {:?} with error {:?}", + remote_asset_fee_v4, + submitter_as_location, + e + ); + DispatchError::from(Error::::UserXcmBalance) + })?; + if withdrawn_fees != vec![remote_asset_fee_v4.clone()].into() { log::error!( target: LOG_TARGET, "Withdrawn fees {:?} does not match expected fee {:?}.", withdrawn_fees, - switch_pair_v4.remote_xcm_fee + remote_asset_fee_v4 ); return Err(DispatchError::from(Error::::Internal)); } @@ -606,15 +690,7 @@ pub mod pallet { })?; Ok(()) })?; - // 12.2 Update the query ID storage entry. wrapping around the max value since - // it's safe to do so, assuming by the time we wrap the previously pending - // transfers have all been processed. - let query_id = NextQueryId::::mutate(|entry| { - let next = *entry; - *entry = entry.wrapping_add(1); - next - }); - // 12.3 Write the query ID into storage, checking for the very unlikely + // 12.2 Write the query ID into storage, checking for the very unlikely // situation in which one already exists. PendingSwitchConfirmations::::try_mutate(query_id, |entry| { match entry { @@ -637,6 +713,12 @@ pub mod pallet { } } })?; + // 12.3 Update the query ID storage entry. wrapping around the max value since + // it's safe to do so, assuming by the time we wrap the previously pending + // transfers have all been processed. + NextQueryId::::mutate(|entry| { + *entry = entry.wrapping_add(1); + }); // 13. Call into hook post-switch checks T::SwitchHooks::post_local_to_remote_switch_dispatch(&submitter, &beneficiary, local_asset_amount) @@ -756,100 +838,6 @@ impl, I: 'static> Pallet { }) } - /// Compose the XCM message for a local -> remote switch to be sent to the - /// switch pair configured remote location. - /// - /// The message includes an appendix which reports back to this chain the - /// result of the operation by the means of sending the content of the - /// holding registry after the transfer is supposed to have happened. - /// - /// The XCM program is so composed: - /// 1. Withdraw XCM fees from our SA - /// 2. Buy execution - /// 3. Set the appendix, executed regardless of the outcome of the transfer: - /// - /// 3.1 Report back to our chain the assets in the holding registry. - /// This will contain either only the XCM fee token in case of successful - /// transfer, or the XCM fee token + the amount of funds supposed to be - /// transferred. - /// - /// 3.2 Deposit the un-transferred asset (only if the transfer - /// failed) back into our account. - /// - /// 3.3 Refund any surplus weight. - /// - /// 3.4 Deposit the remaining XCM fee assets in the user's account. - /// - /// 4. Withdraw the requested asset (this operation should be infallible - /// since we have full control of this balance) - /// 5. Try to deposit the withdrawn asset into the user's account. This - /// operation could fail and the error is handled in the appendix. - pub fn compute_xcm_for_switch( - inverted_universal_location: &Location, - from: &Location, - to: &Location, - amount: u128, - asset_id: &AssetId, - remote_asset_fee: &Asset, - ) -> Xcm<()> { - let appendix = vec![ - ReportHolding { - response_info: QueryResponseInfo { - destination: inverted_universal_location.clone(), - max_weight: Weight::zero(), - query_id: NextQueryId::::get(), - }, - // Include in the report the assets that were not transferred. - assets: AssetFilter::Wild(WildAsset::AllOf { - id: asset_id.clone(), - fun: WildFungibility::Fungible, - }), - }, - // If the asset to transfer failed to transfer, re-put it back into our own account. Otherwise, if the - // transfer succeeded, this asset won't be present in the holding registry, hence this is effectively a - // no-op. - DepositAsset { - assets: AssetFilter::Wild(WildAsset::AllOf { - id: asset_id.clone(), - fun: WildFungibility::Fungible, - }), - beneficiary: inverted_universal_location.clone(), - }, - RefundSurplus, - // Refund the XCM fee left to the user. We are purposefully only selecting the XCM fee asset, although - // there should be no cases in which any other assets are present in the holding registry. - DepositAsset { - assets: AssetFilter::Wild(WildAsset::AllOf { - id: remote_asset_fee.id.clone(), - fun: WildFungibility::Fungible, - }), - beneficiary: from.clone(), - }, - ] - .into(); - vec![ - WithdrawAsset(remote_asset_fee.clone().into()), - BuyExecution { - weight_limit: WeightLimit::Unlimited, - fees: remote_asset_fee.clone(), - }, - SetAppendix(appendix), - // Because the appendix relies on forwarding the content of the holding registry (there is at the - // moment no other way of detecting failed switches), we need to make sure the assets are present in - // the holding registry before the execution could fail. - // Using `TransferAsset` could result in assets not even being withdrawn, and we would not be able to - // detect the failed switch. Hence, we need to force the transfer to happen in two steps: 1. withdraw - // (which we assume would never fail since we know we own the required assets) - // 2. deposit (which could fail, e.g., if the beneficiary does not have an ED for a sufficient asset). - WithdrawAsset((asset_id.clone(), amount).into()), - DepositAsset { - assets: AssetFilter::Definite((asset_id.clone(), amount).into()), - beneficiary: to.clone(), - }, - ] - .into() - } - // Read the first item in the storage and returns `true` if `Some`, and `false` // otherwise. fn is_any_transaction_pending() -> bool { diff --git a/pallets/pallet-asset-switch/src/switch.rs b/pallets/pallet-asset-switch/src/switch.rs index e5985718a..dd61e886f 100644 --- a/pallets/pallet-asset-switch/src/switch.rs +++ b/pallets/pallet-asset-switch/src/switch.rs @@ -19,13 +19,7 @@ use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; use sp_core::RuntimeDebug; -use sp_std::marker::PhantomData; -use xcm::{ - v4::{Asset, AssetId, Location}, - VersionedAsset, VersionedAssetId, VersionedLocation, -}; - -use crate::{Config, Error, LOG_TARGET}; +use xcm::{VersionedAsset, VersionedAssetId, VersionedLocation}; /// Input information used to generate a `SwitchPairInfo`. #[derive(Encode, Decode, TypeInfo, RuntimeDebug, Clone)] @@ -179,65 +173,3 @@ pub struct UnconfirmedSwitchInfo { pub(crate) to: Destination, pub(crate) amount: Amount, } - -#[allow(dead_code)] -pub(crate) struct SwitchPairInfoV4 { - pub(crate) pool_account: AccountId, - pub(crate) remote_asset_circulating_supply: u128, - pub(crate) remote_asset_ed: u128, - pub(crate) remote_asset_id: AssetId, - pub(crate) remote_asset_total_supply: u128, - pub(crate) remote_reserve_location: Location, - pub(crate) remote_xcm_fee: Asset, - pub(crate) status: SwitchPairStatus, - pub(crate) remote_asset_sovereign_total_balance: u128, - _phantom_data: PhantomData<(T, I)>, -} - -impl TryFrom> for SwitchPairInfoV4 -where - T: Config, - I: 'static, -{ - type Error = Error; - - fn try_from(value: SwitchPairInfo) -> Result { - let value_v4 = Self { - pool_account: value.pool_account, - remote_asset_circulating_supply: value.remote_asset_circulating_supply, - remote_asset_ed: value.remote_asset_ed, - remote_asset_sovereign_total_balance: value.remote_asset_sovereign_total_balance, - remote_asset_total_supply: value.remote_asset_total_supply, - status: value.status, - remote_asset_id: value.remote_asset_id.clone().try_into().map_err(|e| { - log::error!( - target: LOG_TARGET, - "Failed to convert asset ID {:?} into v4 `AssetId` with error {:?}", - value.remote_asset_id, - e - ); - Error::::Internal - })?, - remote_reserve_location: value.remote_reserve_location.clone().try_into().map_err(|e| { - log::error!( - target: LOG_TARGET, - "Failed to convert remote reserve location {:?} into v4 `Location` with error {:?}", - value.remote_reserve_location, - e - ); - Error::::Internal - })?, - remote_xcm_fee: value.remote_xcm_fee.clone().try_into().map_err(|e| { - log::error!( - target: LOG_TARGET, - "Failed to convert remote XCM asset fee {:?} into v4 `Asset` with error {:?}", - value.remote_xcm_fee, - e - ); - Error::::Xcm - })?, - _phantom_data: Default::default(), - }; - Ok(value_v4) - } -} diff --git a/runtime-api/asset-switch/src/lib.rs b/runtime-api/asset-switch/src/lib.rs index d75f858ad..408c38e3a 100644 --- a/runtime-api/asset-switch/src/lib.rs +++ b/runtime-api/asset-switch/src/lib.rs @@ -22,17 +22,12 @@ use parity_scale_codec::Codec; use sp_std::vec::Vec; sp_api::decl_runtime_apis! { - /// Runtime API to compute the pool account for a given switch pair ID and remote asset, and to compute the XCM that would be sent to destination for a given switch operation. - #[api_version(2)] - pub trait AssetSwitch where + /// Runtime API to compute the pool account for a given switch pair ID and remote asset. + pub trait AssetSwitch where AssetId: Codec, AccountId: Codec, - Amount: Codec, - Destination: Codec, Error: Codec, - Xcm: Codec, { fn pool_account_id(pair_id: Vec, asset_id: AssetId) -> Result; - fn xcm_for_switch(pair_id: Vec, from: AccountId, to: Destination, amount: Amount) -> Result; } } diff --git a/runtimes/common/src/asset_switch/runtime_api.rs b/runtimes/common/src/asset_switch/runtime_api.rs index c1d0d6ae1..a7dbaaa78 100644 --- a/runtimes/common/src/asset_switch/runtime_api.rs +++ b/runtimes/common/src/asset_switch/runtime_api.rs @@ -23,6 +23,5 @@ use scale_info::TypeInfo; pub enum Error { InvalidInput, SwitchPoolNotFound, - SwitchPoolNotSet, Internal, } diff --git a/runtimes/peregrine/src/lib.rs b/runtimes/peregrine/src/lib.rs index f5ae31cfe..713ae5970 100644 --- a/runtimes/peregrine/src/lib.rs +++ b/runtimes/peregrine/src/lib.rs @@ -51,7 +51,7 @@ use sp_runtime::{ }; use sp_std::{cmp::Ordering, prelude::*}; use sp_version::RuntimeVersion; -use xcm::{v4::Location, VersionedAssetId, VersionedLocation, VersionedXcm}; +use xcm::{v4::Location, VersionedAssetId}; use xcm_builder::{FungiblesAdapter, NoChecking}; use delegation::DelegationAc; @@ -1588,7 +1588,7 @@ impl_runtime_apis! { } } - impl pallet_asset_switch_runtime_api::AssetSwitch> for Runtime { + impl pallet_asset_switch_runtime_api::AssetSwitch for Runtime { fn pool_account_id(pair_id: Vec, asset_id: VersionedAssetId) -> Result { use core::str; use frame_support::traits::PalletInfoAccess; @@ -1606,36 +1606,6 @@ impl_runtime_apis! { _ => Err(AssetSwitchApiError::SwitchPoolNotFound) } } - - fn xcm_for_switch(pair_id: Vec, from: AccountId, to: VersionedLocation, amount: u128) -> Result, AssetSwitchApiError> { - use core::str; - use frame_support::traits::PalletInfoAccess; - use sp_runtime::traits::TryConvert; - use xcm::v4::{AssetId, Asset}; - - let Ok(pair_id_as_string) = str::from_utf8(pair_id.as_slice()) else { - return Err(AssetSwitchApiError::InvalidInput); - }; - - if pair_id_as_string != AssetSwitchPool1::name() { - return Err(AssetSwitchApiError::SwitchPoolNotFound); - } - - let Some(switch_pair) = AssetSwitchPool1::switch_pair() else { - return Err(AssetSwitchApiError::SwitchPoolNotSet); - }; - - let from_v4 = AccountId32ToAccountId32JunctionConverter::try_convert(from).map_err(|_| AssetSwitchApiError::Internal)?; - let to_v4 = Location::try_from(to.clone()).map_err(|_| AssetSwitchApiError::Internal)?; - let our_location_for_destination = { - let universal_location = UniversalLocation::get(); - universal_location.invert_target(&to_v4) - }.map_err(|_| AssetSwitchApiError::Internal)?; - let asset_id_v4 = AssetId::try_from(switch_pair.remote_asset_id).map_err(|_| AssetSwitchApiError::Internal)?; - let remote_asset_fee_v4 = Asset::try_from(switch_pair.remote_xcm_fee).map_err(|_| AssetSwitchApiError::Internal)?; - - Ok(VersionedXcm::V4(AssetSwitchPool1::compute_xcm_for_switch(&our_location_for_destination, &from_v4.into(), &to_v4, amount, &asset_id_v4, &remote_asset_fee_v4))) - } } #[cfg(feature = "runtime-benchmarks")] diff --git a/runtimes/spiritnet/src/lib.rs b/runtimes/spiritnet/src/lib.rs index d0bb014de..7a9a78f4d 100644 --- a/runtimes/spiritnet/src/lib.rs +++ b/runtimes/spiritnet/src/lib.rs @@ -51,7 +51,7 @@ use sp_runtime::{ }; use sp_std::{cmp::Ordering, prelude::*}; use sp_version::RuntimeVersion; -use xcm::{v4::Location, VersionedAssetId, VersionedLocation, VersionedXcm}; +use xcm::{v4::Location, VersionedAssetId}; use xcm_builder::{FungiblesAdapter, NoChecking}; use delegation::DelegationAc; @@ -1578,7 +1578,7 @@ impl_runtime_apis! { } } - impl pallet_asset_switch_runtime_api::AssetSwitch> for Runtime { + impl pallet_asset_switch_runtime_api::AssetSwitch for Runtime { fn pool_account_id(pair_id: Vec, asset_id: VersionedAssetId) -> Result { use core::str; use frame_support::traits::PalletInfoAccess; @@ -1596,36 +1596,6 @@ impl_runtime_apis! { _ => Err(AssetSwitchApiError::SwitchPoolNotFound) } } - - fn xcm_for_switch(pair_id: Vec, from: AccountId, to: VersionedLocation, amount: u128) -> Result, AssetSwitchApiError> { - use core::str; - use frame_support::traits::PalletInfoAccess; - use sp_runtime::traits::TryConvert; - use xcm::v4::{AssetId, Asset}; - - let Ok(pair_id_as_string) = str::from_utf8(pair_id.as_slice()) else { - return Err(AssetSwitchApiError::InvalidInput); - }; - - if pair_id_as_string != AssetSwitchPool1::name() { - return Err(AssetSwitchApiError::SwitchPoolNotFound); - } - - let Some(switch_pair) = AssetSwitchPool1::switch_pair() else { - return Err(AssetSwitchApiError::SwitchPoolNotSet); - }; - - let from_v4 = AccountId32ToAccountId32JunctionConverter::try_convert(from).map_err(|_| AssetSwitchApiError::Internal)?; - let to_v4 = Location::try_from(to.clone()).map_err(|_| AssetSwitchApiError::Internal)?; - let our_location_for_destination = { - let universal_location = UniversalLocation::get(); - universal_location.invert_target(&to_v4) - }.map_err(|_| AssetSwitchApiError::Internal)?; - let asset_id_v4 = AssetId::try_from(switch_pair.remote_asset_id).map_err(|_| AssetSwitchApiError::Internal)?; - let remote_asset_fee_v4 = Asset::try_from(switch_pair.remote_xcm_fee).map_err(|_| AssetSwitchApiError::Internal)?; - - Ok(VersionedXcm::V4(AssetSwitchPool1::compute_xcm_for_switch(&our_location_for_destination, &from_v4.into(), &to_v4, amount, &asset_id_v4, &remote_asset_fee_v4))) - } } #[cfg(feature = "runtime-benchmarks")] From 7ebf47e3bd094b9b5b03f90a58327a53ab229798 Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Thu, 10 Oct 2024 10:29:58 +0200 Subject: [PATCH 41/46] Revert "chore: add events for deposit owner changes (#738)" This reverts commit 5ef8542d5c689b82d0284f78517cc7718cc62767. --- pallets/attestation/src/lib.rs | 22 +++------------- pallets/attestation/src/tests/deposit.rs | 7 ------ pallets/delegation/src/lib.rs | 25 +++---------------- pallets/delegation/src/mock.rs | 14 ++++------- pallets/delegation/src/tests/deposit.rs | 9 +------ pallets/did/src/lib.rs | 19 +------------- pallets/did/src/tests/deposit.rs | 7 ------ pallets/pallet-did-lookup/src/lib.rs | 25 +++---------------- pallets/pallet-did-lookup/src/mock.rs | 4 --- .../pallet-did-lookup/src/tests/deposit.rs | 9 +------ pallets/pallet-web3-names/src/lib.rs | 24 +++--------------- pallets/pallet-web3-names/src/mock.rs | 4 --- pallets/pallet-web3-names/src/tests/claim.rs | 2 +- .../pallet-web3-names/src/tests/deposit.rs | 9 +------ pallets/public-credentials/src/lib.rs | 23 +++-------------- pallets/public-credentials/src/mock.rs | 12 +++------ pallets/public-credentials/src/tests/claim.rs | 4 +-- .../public-credentials/src/tests/deposit.rs | 9 +------ support/src/traits.rs | 8 +++--- 19 files changed, 40 insertions(+), 196 deletions(-) diff --git a/pallets/attestation/src/lib.rs b/pallets/attestation/src/lib.rs index ba4d7ba14..230db3030 100644 --- a/pallets/attestation/src/lib.rs +++ b/pallets/attestation/src/lib.rs @@ -236,15 +236,6 @@ pub mod pallet { /// was deleted. claim_hash: ClaimHashOf, }, - /// The deposit for an attestation has changed owner. - DepositOwnerChanged { - /// The claim hash of the credential whose deposit owner changed. - id: ClaimHashOf, - /// The old deposit owner. - from: AccountIdOf, - /// The new deposit owner. - to: AccountIdOf, - }, } #[pallet::error] @@ -484,15 +475,10 @@ pub mod pallet { let attestation = Attestations::::get(claim_hash).ok_or(Error::::NotFound)?; ensure!(attestation.attester == subject, Error::::NotAuthorized); - let old_deposit_owner = AttestationStorageDepositCollector::::change_deposit_owner::< - BalanceMigrationManagerOf, - >(&claim_hash, sender.clone())?; - - Self::deposit_event(Event::::DepositOwnerChanged { - id: claim_hash, - from: old_deposit_owner, - to: sender, - }); + AttestationStorageDepositCollector::::change_deposit_owner::>( + &claim_hash, + sender, + )?; Ok(()) } diff --git a/pallets/attestation/src/tests/deposit.rs b/pallets/attestation/src/tests/deposit.rs index ed1d89e73..baafd3a1f 100644 --- a/pallets/attestation/src/tests/deposit.rs +++ b/pallets/attestation/src/tests/deposit.rs @@ -77,13 +77,6 @@ fn test_change_deposit_owner() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_01), ::Deposit::get() ); - assert!(System::events().iter().any(|e| e.event - == Event::::DepositOwnerChanged { - id: claim_hash, - from: ACCOUNT_00, - to: ACCOUNT_01 - } - .into())); }); } diff --git a/pallets/delegation/src/lib.rs b/pallets/delegation/src/lib.rs index 2dae2d882..d2cbb1539 100644 --- a/pallets/delegation/src/lib.rs +++ b/pallets/delegation/src/lib.rs @@ -248,15 +248,6 @@ pub mod pallet { /// A delegation has been removed. /// \[remover ID, delegation node ID\] DelegationRemoved(AccountIdOf, DelegationNodeIdOf), - /// The deposit for a delegation has changed owner. - DepositOwnerChanged { - /// The ID of the delegation whose deposit owner changed. - id: DelegationNodeIdOf, - /// The old deposit owner. - from: AccountIdOf, - /// The new deposit owner. - to: AccountIdOf, - }, } #[pallet::error] @@ -692,7 +683,6 @@ pub mod pallet { #[pallet::weight(::WeightInfo::change_deposit_owner())] pub fn change_deposit_owner(origin: OriginFor, delegation_id: DelegationNodeIdOf) -> DispatchResult { let source = ::EnsureOrigin::ensure_origin(origin)?; - let sender = source.sender(); let delegation = DelegationNodes::::get(delegation_id).ok_or(Error::::DelegationNotFound)?; @@ -700,17 +690,10 @@ pub mod pallet { // parent or another ancestor. ensure!(delegation.details.owner == source.subject(), Error::::AccessDenied); - let old_deposit_owner = DelegationDepositCollector::::change_deposit_owner::< - BalanceMigrationManagerOf, - >(&delegation_id, sender.clone())?; - - Self::deposit_event(Event::::DepositOwnerChanged { - id: delegation_id, - from: old_deposit_owner, - to: sender, - }); - - Ok(()) + DelegationDepositCollector::::change_deposit_owner::>( + &delegation_id, + source.sender(), + ) } /// Updates the deposit amount to the current deposit rate. diff --git a/pallets/delegation/src/mock.rs b/pallets/delegation/src/mock.rs index 10a8faa81..21f338b49 100644 --- a/pallets/delegation/src/mock.rs +++ b/pallets/delegation/src/mock.rs @@ -232,7 +232,7 @@ pub(crate) mod runtime { type AccountId = AccountId; type Lookup = IdentityLookup; - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type BlockHashCount = BlockHashCount; type DbWeight = RocksDbWeight; type Version = (); @@ -264,7 +264,7 @@ pub(crate) mod runtime { type MaxFreezes = MaxFreezes; type Balance = Balance; type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); @@ -288,7 +288,7 @@ pub(crate) mod runtime { type EnsureOrigin = mock_origin::EnsureDoubleOrigin; type OriginSuccess = mock_origin::DoubleOrigin; type OverarchingOrigin = EnsureSigned; - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type WeightInfo = (); type Currency = Balances; @@ -305,7 +305,7 @@ pub(crate) mod runtime { type EnsureOrigin = mock_origin::EnsureDoubleOrigin>; type OriginSuccess = mock_origin::DoubleOrigin>; type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type WeightInfo = (); type Currency = Balances; @@ -335,7 +335,7 @@ pub(crate) mod runtime { type DelegationNodeId = Hash; type EnsureOrigin = mock_origin::EnsureDoubleOrigin; type OriginSuccess = mock_origin::DoubleOrigin; - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type MaxSignatureByteLength = MaxSignatureByteLength; type MaxParentChecks = MaxParentChecks; type MaxRevocations = MaxRevocations; @@ -503,10 +503,6 @@ pub(crate) mod runtime { let mut ext = sp_io::TestExternalities::new(storage); ext.execute_with(|| { - // ensure that we are not at the genesis block. Events are not registered for - // the genesis block. - System::set_block_number(System::block_number() + 1); - for (ctype_hash, owner) in self.ctypes.iter() { ctype::Ctypes::::insert( ctype_hash, diff --git a/pallets/delegation/src/tests/deposit.rs b/pallets/delegation/src/tests/deposit.rs index 9dd674c3a..77516eb70 100644 --- a/pallets/delegation/src/tests/deposit.rs +++ b/pallets/delegation/src/tests/deposit.rs @@ -23,7 +23,7 @@ use frame_support::{ use kilt_support::mock::mock_origin::DoubleOrigin; use sp_runtime::{traits::Zero, TokenError}; -use crate::{self as delegation, mock::*, Config, Error, Event, HoldReason}; +use crate::{self as delegation, mock::*, Config, Error, HoldReason}; #[test] fn test_change_deposit_owner() { @@ -75,13 +75,6 @@ fn test_change_deposit_owner() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_01), ::Deposit::get() ); - assert!(System::events().iter().any(|e| e.event - == Event::::DepositOwnerChanged { - id: delegation_id, - from: ACCOUNT_00, - to: ACCOUNT_01 - } - .into())); }); } diff --git a/pallets/did/src/lib.rs b/pallets/did/src/lib.rs index 1fbdf5263..324a20dcc 100644 --- a/pallets/did/src/lib.rs +++ b/pallets/did/src/lib.rs @@ -369,15 +369,6 @@ pub mod pallet { /// A DID-authorised call has been executed. /// \[DID caller, dispatch result\] DidCallDispatched(DidIdentifierOf, DispatchResult), - /// The deposit for a DID has changed owner. - DepositOwnerChanged { - /// The DID whose deposit owner changed. - id: DidIdentifierOf, - /// The old deposit owner. - from: AccountIdOf, - /// The new deposit owner. - to: AccountIdOf, - }, } #[pallet::error] @@ -1114,15 +1105,7 @@ pub mod pallet { let subject = source.subject(); let sender = source.sender(); - let old_deposit_owner = DidDepositCollector::::change_deposit_owner::< - ::BalanceMigrationManager, - >(&subject, sender.clone())?; - - Self::deposit_event(Event::::DepositOwnerChanged { - id: subject, - from: old_deposit_owner, - to: sender, - }); + DidDepositCollector::::change_deposit_owner::<::BalanceMigrationManager>(&subject, sender)?; Ok(()) } diff --git a/pallets/did/src/tests/deposit.rs b/pallets/did/src/tests/deposit.rs index 63378b75f..b0d595bf9 100644 --- a/pallets/did/src/tests/deposit.rs +++ b/pallets/did/src/tests/deposit.rs @@ -167,13 +167,6 @@ fn test_change_deposit_owner() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &alice_did), ::BaseDeposit::get() ); - assert!(System::events().iter().any(|e| e.event - == Event::::DepositOwnerChanged { - id: alice_did, - from: ACCOUNT_00, - to: ACCOUNT_01 - } - .into())); }); } diff --git a/pallets/pallet-did-lookup/src/lib.rs b/pallets/pallet-did-lookup/src/lib.rs index f97d8a163..90ef358ae 100644 --- a/pallets/pallet-did-lookup/src/lib.rs +++ b/pallets/pallet-did-lookup/src/lib.rs @@ -153,15 +153,6 @@ pub mod pallet { /// All AccountIds have been migrated to LinkableAccountId. MigrationCompleted, - /// The deposit for an linked account has changed owner. - DepositOwnerChanged { - /// The tuple of (DID, linked account) whose deposit owner changed. - id: (DidIdentifierOf, LinkableAccountId), - /// The old deposit owner. - from: AccountIdOf, - /// The new deposit owner. - to: AccountIdOf, - }, } #[pallet::error] @@ -383,22 +374,14 @@ pub mod pallet { pub fn change_deposit_owner(origin: OriginFor, account: LinkableAccountId) -> DispatchResult { let source = ::EnsureOrigin::ensure_origin(origin)?; let subject = source.subject(); - let sender = source.sender(); let record = ConnectedDids::::get(&account).ok_or(Error::::NotFound)?; ensure!(record.did == subject, Error::::NotAuthorized); - let old_deposit_owner = LinkableAccountDepositCollector::::change_deposit_owner::< - BalanceMigrationManagerOf, - >(&account, sender.clone())?; - - Self::deposit_event(Event::::DepositOwnerChanged { - id: (subject, account), - from: old_deposit_owner, - to: sender, - }); - - Ok(()) + LinkableAccountDepositCollector::::change_deposit_owner::>( + &account, + source.sender(), + ) } /// Updates the deposit amount to the current deposit rate. diff --git a/pallets/pallet-did-lookup/src/mock.rs b/pallets/pallet-did-lookup/src/mock.rs index e8f6e3602..dc3f3a7ed 100644 --- a/pallets/pallet-did-lookup/src/mock.rs +++ b/pallets/pallet-did-lookup/src/mock.rs @@ -189,10 +189,6 @@ impl ExtBuilder { let mut ext = sp_io::TestExternalities::new(storage); ext.execute_with(|| { - // ensure that we are not at the genesis block. Events are not registered for - // the genesis block. - System::set_block_number(System::block_number() + 1); - for (sender, did, account) in self.connections { pallet_did_lookup::Pallet::::add_association(sender, did, account) .expect("Should create connection"); diff --git a/pallets/pallet-did-lookup/src/tests/deposit.rs b/pallets/pallet-did-lookup/src/tests/deposit.rs index e450de361..9167e7662 100644 --- a/pallets/pallet-did-lookup/src/tests/deposit.rs +++ b/pallets/pallet-did-lookup/src/tests/deposit.rs @@ -19,7 +19,7 @@ use frame_support::{assert_noop, assert_ok, traits::fungible::InspectHold}; use kilt_support::mock::mock_origin; use sp_runtime::{traits::Zero, TokenError}; -use crate::{mock::*, Error, Event, HoldReason}; +use crate::{mock::*, Error, HoldReason}; #[test] fn test_change_deposit_owner() { @@ -39,13 +39,6 @@ fn test_change_deposit_owner() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_01), ::Deposit::get() ); - assert!(System::events().iter().any(|e| e.event - == Event::::DepositOwnerChanged { - id: (DID_00, LINKABLE_ACCOUNT_00), - from: ACCOUNT_00, - to: ACCOUNT_01 - } - .into())); }) } diff --git a/pallets/pallet-web3-names/src/lib.rs b/pallets/pallet-web3-names/src/lib.rs index 71abd83a5..a3cda6139 100644 --- a/pallets/pallet-web3-names/src/lib.rs +++ b/pallets/pallet-web3-names/src/lib.rs @@ -162,15 +162,6 @@ pub mod pallet { Web3NameBanned { name: Web3NameOf }, /// A name has been unbanned. Web3NameUnbanned { name: Web3NameOf }, - /// The deposit for a web3name has changed owner. - DepositOwnerChanged { - /// The web3name whose deposit owner changed. - id: Web3NameOf, - /// The old deposit owner. - from: AccountIdOf, - /// The new deposit owner. - to: AccountIdOf, - }, } #[pallet::error] @@ -362,18 +353,11 @@ pub mod pallet { pub fn change_deposit_owner(origin: OriginFor) -> DispatchResult { let source = ::OwnerOrigin::ensure_origin(origin)?; let w3n_owner = source.subject(); - let sender = source.sender(); let name = Names::::get(&w3n_owner).ok_or(Error::::NotFound)?; - - let old_deposit_owner = Web3NameStorageDepositCollector::::change_deposit_owner::< - BalanceMigrationManagerOf, - >(&name, sender.clone())?; - - Self::deposit_event(Event::::DepositOwnerChanged { - id: name, - from: old_deposit_owner, - to: sender, - }); + Web3NameStorageDepositCollector::::change_deposit_owner::>( + &name, + source.sender(), + )?; Ok(()) } diff --git a/pallets/pallet-web3-names/src/mock.rs b/pallets/pallet-web3-names/src/mock.rs index a1d4baff3..73676a6fb 100644 --- a/pallets/pallet-web3-names/src/mock.rs +++ b/pallets/pallet-web3-names/src/mock.rs @@ -224,10 +224,6 @@ pub(crate) mod runtime { let mut ext = sp_io::TestExternalities::new(storage); ext.execute_with(|| { - // ensure that we are not at the genesis block. Events are not registered for - // the genesis block. - System::set_block_number(System::block_number() + 1); - for (owner, web3_name, payer) in self.claimed_web3_names { pallet_web3_names::Pallet::::register_name(web3_name, owner, payer) .expect("Could not register name"); diff --git a/pallets/pallet-web3-names/src/tests/claim.rs b/pallets/pallet-web3-names/src/tests/claim.rs index 72a10f482..073cc15df 100644 --- a/pallets/pallet-web3-names/src/tests/claim.rs +++ b/pallets/pallet-web3-names/src/tests/claim.rs @@ -52,7 +52,7 @@ fn claiming_successful() { owner_details, Web3OwnershipOf:: { owner: DID_00, - claimed_at: 1, + claimed_at: 0, deposit: Deposit { owner: ACCOUNT_00, amount: Web3NameDeposit::get(), diff --git a/pallets/pallet-web3-names/src/tests/deposit.rs b/pallets/pallet-web3-names/src/tests/deposit.rs index e31fc1e03..f747e0554 100644 --- a/pallets/pallet-web3-names/src/tests/deposit.rs +++ b/pallets/pallet-web3-names/src/tests/deposit.rs @@ -21,7 +21,7 @@ use frame_support::{assert_noop, assert_ok, traits::fungible::InspectHold}; use kilt_support::{mock::mock_origin, Deposit}; use sp_runtime::{traits::Zero, TokenError}; -use crate::{mock::*, Config, Error, Event, HoldReason, Owner, Pallet}; +use crate::{mock::*, Config, Error, HoldReason, Owner, Pallet}; #[test] fn test_change_deposit_owner() { @@ -48,13 +48,6 @@ fn test_change_deposit_owner() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_01), ::Deposit::get() ); - assert!(System::events().iter().any(|e| e.event - == Event::::DepositOwnerChanged { - id: web3_name_00.clone(), - from: ACCOUNT_00, - to: ACCOUNT_01 - } - .into())); }) } diff --git a/pallets/public-credentials/src/lib.rs b/pallets/public-credentials/src/lib.rs index c3299047c..67683e711 100644 --- a/pallets/public-credentials/src/lib.rs +++ b/pallets/public-credentials/src/lib.rs @@ -224,15 +224,6 @@ pub mod pallet { /// The id of the unrevoked credential. credential_id: CredentialIdOf, }, - /// The deposit for a public credential has changed owner. - DepositOwnerChanged { - /// The claim hash of the credential whose deposit owner changed. - id: CredentialIdOf, - /// The old deposit owner. - from: AccountIdOf, - /// The new deposit owner. - to: AccountIdOf, - }, } #[pallet::error] @@ -533,21 +524,15 @@ pub mod pallet { pub fn change_deposit_owner(origin: OriginFor, credential_id: CredentialIdOf) -> DispatchResult { let source = ::EnsureOrigin::ensure_origin(origin)?; let subject = source.subject(); - let sender = source.sender(); let (_, credential_entry) = Self::retrieve_credential_entry(&credential_id)?; ensure!(subject == credential_entry.attester, Error::::NotAuthorized); - let old_deposit_owner = PublicCredentialDepositCollector::::change_deposit_owner::< - BalanceMigrationManagerOf, - >(&credential_id, sender.clone())?; - - Self::deposit_event(Event::::DepositOwnerChanged { - id: credential_id, - from: old_deposit_owner, - to: sender, - }); + PublicCredentialDepositCollector::::change_deposit_owner::>( + &credential_id, + source.sender(), + )?; Ok(()) } diff --git a/pallets/public-credentials/src/mock.rs b/pallets/public-credentials/src/mock.rs index cf3911c08..6c3603f86 100644 --- a/pallets/public-credentials/src/mock.rs +++ b/pallets/public-credentials/src/mock.rs @@ -287,7 +287,7 @@ pub(crate) mod runtime { type Hashing = BlakeTwo256; type AccountId = AccountId; type Lookup = IdentityLookup; - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type BlockHashCount = ConstU64<250>; type DbWeight = RocksDbWeight; type Version = (); @@ -312,7 +312,7 @@ pub(crate) mod runtime { type MaxFreezes = ConstU32<10>; type Balance = Balance; type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type ExistentialDeposit = ConstU128; type AccountStore = System; type WeightInfo = (); @@ -326,7 +326,7 @@ pub(crate) mod runtime { type EnsureOrigin = mock_origin::EnsureDoubleOrigin; type OriginSuccess = mock_origin::DoubleOrigin; type OverarchingOrigin = EnsureSigned; - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type WeightInfo = (); type Currency = Balances; @@ -344,7 +344,7 @@ pub(crate) mod runtime { type Currency = Balances; type Deposit = ConstU128<{ 10 * MILLI_UNIT }>; type EnsureOrigin = mock_origin::EnsureDoubleOrigin; - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type MaxEncodedClaimsLength = ConstU32<500>; type MaxSubjectIdLength = ConstU32<100>; type OriginSuccess = mock_origin::DoubleOrigin; @@ -421,10 +421,6 @@ pub(crate) mod runtime { let mut ext = sp_io::TestExternalities::new(storage); ext.execute_with(|| { - // ensure that we are not at the genesis block. Events are not registered for - // the genesis block. - System::set_block_number(System::block_number() + 1); - for ctype in self.ctypes { ctype::Ctypes::::insert( ctype.0, diff --git a/pallets/public-credentials/src/tests/claim.rs b/pallets/public-credentials/src/tests/claim.rs index 889cdc4d8..4bf736c04 100644 --- a/pallets/public-credentials/src/tests/claim.rs +++ b/pallets/public-credentials/src/tests/claim.rs @@ -65,7 +65,7 @@ fn add_successful_without_authorization() { // Test this pallet logic assert_eq!(stored_public_credential_details.attester, attester); assert!(!stored_public_credential_details.revoked); - assert_eq!(stored_public_credential_details.block_number, 1); + assert_eq!(stored_public_credential_details.block_number, 0); assert_eq!(stored_public_credential_details.ctype_hash, ctype_hash_1); assert_eq!(stored_public_credential_details.authorization_id, None); assert_eq!(CredentialSubjects::::get(credential_id_1), Some(subject_id)); @@ -146,7 +146,7 @@ fn add_successful_with_authorization() { // Test this pallet logic assert_eq!(stored_public_credential_details.attester, attester); assert!(!stored_public_credential_details.revoked); - assert_eq!(stored_public_credential_details.block_number, 1); + assert_eq!(stored_public_credential_details.block_number, 0); assert_eq!(stored_public_credential_details.ctype_hash, ctype_hash); assert_eq!(stored_public_credential_details.authorization_id, Some(attester)); assert_eq!(CredentialSubjects::::get(credential_id), Some(subject_id)); diff --git a/pallets/public-credentials/src/tests/deposit.rs b/pallets/public-credentials/src/tests/deposit.rs index 0e87be5c1..8fd7e4e0d 100644 --- a/pallets/public-credentials/src/tests/deposit.rs +++ b/pallets/public-credentials/src/tests/deposit.rs @@ -25,7 +25,7 @@ use sp_runtime::traits::Zero; use ctype::mock::get_ctype_hash; use kilt_support::{mock::mock_origin::DoubleOrigin, Deposit}; -use crate::{mock::*, Config, CredentialIdOf, CredentialSubjects, Credentials, Error, Event, HoldReason}; +use crate::{mock::*, Config, CredentialIdOf, CredentialSubjects, Credentials, Error, HoldReason}; #[test] fn reclaim_deposit_successful() { @@ -147,13 +147,6 @@ fn test_change_deposit_owner() { ::Deposit::get() ); assert!(Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_00).is_zero()); - assert!(System::events().iter().any(|e| e.event - == Event::::DepositOwnerChanged { - id: credential_id, - from: ACCOUNT_00, - to: ACCOUNT_01 - } - .into())); }); } diff --git a/support/src/traits.rs b/support/src/traits.rs index dd764d60f..535fc65f9 100644 --- a/support/src/traits.rs +++ b/support/src/traits.rs @@ -197,7 +197,7 @@ pub trait StorageDepositCollector { reserve_deposit::(who, amount, &reason.into()) } - /// Change the deposit owner and returns the old owner. + /// Change the deposit owner. /// /// The deposit balance of the current owner will be freed, while the /// deposit balance of the new owner will get reserved. The deposit amount @@ -205,7 +205,7 @@ pub trait StorageDepositCollector { fn change_deposit_owner( key: &Key, new_owner: AccountId, - ) -> Result + ) -> Result<(), DispatchError> where DepositBalanceMigrationManager: BalanceMigrationManager>::Balance>, @@ -222,8 +222,6 @@ pub trait StorageDepositCollector { DepositBalanceMigrationManager::exclude_key_from_migration(&hashed_key); } - let old_deposit_owner = deposit.owner; - let deposit = Deposit { owner: new_owner, ..deposit @@ -233,7 +231,7 @@ pub trait StorageDepositCollector { Self::store_deposit(key, deposit)?; - Ok(old_deposit_owner) + Ok(()) } /// Update the deposit amount. From 6a1b7a5c4de16b9bb56a96710facbb6e1b467fb1 Mon Sep 17 00:00:00 2001 From: Albrecht Date: Thu, 30 Nov 2023 09:17:43 +0100 Subject: [PATCH 42/46] Revert "fix: check events (#585)" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * moved the `deposit_event(Event::AttestationRemoved)` to the `remove_attestation` so that the event shall never be forgotten to be deposited. * restructured Attestation event * added authorized_by to revoked and removed, added ctype * test attestation events * removed unused `DepositReclaimed` events * deposit `W3nReleased` event when governance bans an already used w3n
Peregrine Diff ``` !!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!! [≠] pallet 62: Attestation -> 4 change(s) - events changes: [≠] 0: AttestationCreated ( : AttesterOf, : ClaimHashOf, : CtypeHashOf, : Option>, ) ) [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })] [≠] 1: AttestationRevoked ( : AttesterOf, : ClaimHashOf, ) ) [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf", "AuthorizedByOf"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf", "AttesterOf"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf" })] })] [≠] 2: AttestationRemoved ( : AttesterOf, : ClaimHashOf, ) ) [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf", "AuthorizedByOf"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf", "AttesterOf"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf" })] })] [-] "DepositReclaimed" [≠] pallet 63: Delegation -> 1 change(s) - events changes: [-] "DepositReclaimed" SUMMARY: - Compatible.......................: true - Require transaction_version bump.: false !!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!! ```
Spiritnet Diff ``` !!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!! [≠] pallet 62: Attestation -> 4 change(s) - events changes: [≠] 0: AttestationCreated ( : AttesterOf, : ClaimHashOf, : CtypeHashOf, : Option>, ) ) [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })] [≠] 1: AttestationRevoked ( : AttesterOf, : ClaimHashOf, ) ) [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf", "AuthorizedByOf"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf", "AttesterOf"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf" })] })] [≠] 2: AttestationRemoved ( : AttesterOf, : ClaimHashOf, ) ) [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf", "AuthorizedByOf"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf", "AttesterOf"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf" })] })] [-] "DepositReclaimed" [≠] pallet 63: Delegation -> 1 change(s) - events changes: [-] "DepositReclaimed" SUMMARY: - Compatible.......................: true - Require transaction_version bump.: false !!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!! ```
- [x] I have verified that the code works - [ ] No panics! (checked arithmetic ops, no indexing `array[3]` use `get(3)`, ...) - [x] I have verified that the code is easy to understand - [ ] If not, I have left a well-balanced amount of inline comments - [x] I have [left the code in a better state](https://deviq.com/principles/boy-scout-rule) - [x] I have documented the changes (where applicable) * Either PR or Ticket to update [the Docs](https://github.com/KILTprotocol/docs) * Link the PR/Ticket here --- pallets/attestation/src/authorized_by.rs | 34 ------ pallets/attestation/src/lib.rs | 144 ++++++++++------------- pallets/attestation/src/mock.rs | 28 +---- pallets/attestation/src/tests/claim.rs | 32 ++--- pallets/attestation/src/tests/delete.rs | 74 +----------- pallets/attestation/src/tests/deposit.rs | 83 +------------ pallets/attestation/src/tests/revoke.rs | 35 +----- pallets/delegation/src/lib.rs | 5 +- pallets/pallet-web3-names/src/lib.rs | 25 ++-- 9 files changed, 102 insertions(+), 358 deletions(-) delete mode 100644 pallets/attestation/src/authorized_by.rs diff --git a/pallets/attestation/src/authorized_by.rs b/pallets/attestation/src/authorized_by.rs deleted file mode 100644 index 548a0e714..000000000 --- a/pallets/attestation/src/authorized_by.rs +++ /dev/null @@ -1,34 +0,0 @@ -// KILT Blockchain – https://botlabs.org -// Copyright (C) 2019-2024 BOTLabs GmbH - -// The KILT Blockchain is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// The KILT Blockchain is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -// If you feel like getting in touch with us, you can do so at info@botlabs.org - -use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; -use scale_info::TypeInfo; - -/// Describes who authorized the associated action. -/// -/// This can either be the attester that issued this attestation, another -/// attester who is authorized by the `authorization_id` or the deposit owner. -#[derive(Clone, Debug, Encode, Decode, Eq, PartialEq, TypeInfo, MaxEncodedLen)] -pub enum AuthorizedBy { - /// Authorized by the deposit owner. - DepositOwner(Account), - /// Authorized by who issued the attestation. - Attester(Attester), - /// Authorized by the authorization_id. - Authorization(Attester), -} diff --git a/pallets/attestation/src/lib.rs b/pallets/attestation/src/lib.rs index 230db3030..bbc04fae1 100644 --- a/pallets/attestation/src/lib.rs +++ b/pallets/attestation/src/lib.rs @@ -75,7 +75,6 @@ pub mod benchmarking; mod try_state; mod access_control; -pub mod authorized_by; #[cfg(test)] mod tests; @@ -87,7 +86,6 @@ pub use crate::{ pub mod pallet { use super::*; - use authorized_by::AuthorizedBy; use frame_support::{ dispatch::{DispatchResult, DispatchResultWithPostInfo}, pallet_prelude::*, @@ -126,8 +124,6 @@ pub mod pallet { pub(crate) type BalanceMigrationManagerOf = ::BalanceMigrationManager; - pub(crate) type AuthorizedByOf = authorized_by::AuthorizedBy, AttesterOf>; - pub type AttestationDetailsOf = AttestationDetails, AttesterOf, AuthorizationIdOf, AccountIdOf, BalanceOf>; @@ -202,40 +198,22 @@ pub mod pallet { #[pallet::generate_deposit(pub(super) fn deposit_event)] pub enum Event { /// A new attestation has been created. - AttestationCreated { - /// The DID which issued this attestation. - attester: AttesterOf, - /// The claim hash of the attested credential. - claim_hash: ClaimHashOf, - /// The ctype of the attested credential. - ctype_hash: CtypeHashOf, - /// The authorization information. If this is available, it - /// authorizes a group of attesters to manage this attestation. - authorization: Option>, - }, + /// \[attester ID, claim hash, CType hash, (optional) delegation ID\] + AttestationCreated( + AttesterOf, + ClaimHashOf, + CtypeHashOf, + Option>, + ), /// An attestation has been revoked. - AttestationRevoked { - /// Who authorized the revocation of the attestation. - authorized_by: AuthorizedByOf, - /// The attester who initially created the attestation. - attester: AttesterOf, - /// The ctype of the attested credential. - ctype_hash: CtypeHashOf, - /// The claim hash of the credential that is revoked. - claim_hash: ClaimHashOf, - }, + /// \[account id, claim hash\] + AttestationRevoked(AttesterOf, ClaimHashOf), /// An attestation has been removed. - AttestationRemoved { - /// Who authorized the deletion of the attestation. - authorized_by: AuthorizedByOf, - /// The attester who initially created the attestation. - attester: AttesterOf, - /// The ctype of the attested credential. - ctype_hash: CtypeHashOf, - /// The claim hash of the credential for which the attestation entry - /// was deleted. - claim_hash: ClaimHashOf, - }, + /// \[account id, claim hash\] + AttestationRemoved(AttesterOf, ClaimHashOf), + /// The deposit owner reclaimed a deposit by removing an attestation. + /// \[account id, claim hash\] + DepositReclaimed(AccountIdOf, ClaimHashOf), } #[pallet::error] @@ -273,6 +251,14 @@ pub mod pallet { /// `DelegationEntityId`. /// /// Emits `AttestationCreated`. + /// + /// # + /// Weight: O(1) + /// - Reads: [Origin Account], Ctype, Attestations + /// - Reads if delegation id is provided: Delegations, Roots, + /// DelegatedAttestations + /// - Writes: Attestations, (DelegatedAttestations) + /// # #[pallet::call_index(0)] #[pallet::weight( ::WeightInfo::add() @@ -326,12 +312,7 @@ pub mod pallet { ExternalAttestations::::insert(authorization_id, claim_hash, true); } - Self::deposit_event(Event::AttestationCreated { - attester: who, - claim_hash, - ctype_hash, - authorization: authorization_id, - }); + Self::deposit_event(Event::AttestationCreated(who, claim_hash, ctype_hash, authorization_id)); Ok(()) } @@ -344,6 +325,15 @@ pub mod pallet { /// an ancestor thereof. /// /// Emits `AttestationRevoked`. + /// + /// # + /// Weight: O(P) where P is the number of steps required to verify that + /// the dispatch Origin controls the delegation entitled to revoke the + /// attestation. It is bounded by `max_parent_checks`. + /// - Reads: [Origin Account], Attestations, delegation::Roots + /// - Reads per delegation step P: delegation::Delegations + /// - Writes: Attestations, DelegatedAttestations + /// # #[pallet::call_index(1)] #[pallet::weight( ::WeightInfo::revoke() @@ -358,11 +348,10 @@ pub mod pallet { let who = source.subject(); let attestation = Attestations::::get(claim_hash).ok_or(Error::::NotFound)?; - let attester = attestation.attester.clone(); ensure!(!attestation.revoked, Error::::AlreadyRevoked); - let authorized_by = if attester != who { + if attestation.attester != who { let attestation_auth_id = attestation.authorization_id.as_ref().ok_or(Error::::NotAuthorized)?; authorization.ok_or(Error::::NotAuthorized)?.can_revoke( &who, @@ -370,11 +359,7 @@ pub mod pallet { &claim_hash, attestation_auth_id, )?; - - AuthorizedBy::Authorization(who) - } else { - AuthorizedBy::Attester(who) - }; + } log::debug!("revoking Attestation"); Attestations::::insert( @@ -385,12 +370,7 @@ pub mod pallet { }, ); - Self::deposit_event(Event::AttestationRevoked { - attester, - authorized_by, - ctype_hash: attestation.ctype_hash, - claim_hash, - }); + Self::deposit_event(Event::AttestationRevoked(who, claim_hash)); Ok(Some(::WeightInfo::revoke()).into()) } @@ -402,8 +382,16 @@ pub mod pallet { /// i.e., it was either the delegator of the attester or an ancestor /// thereof. /// - /// Always emits `AttestationRemoved` and emits `AttestationRevoked` - /// only if the attestation was not revoked yet. + /// Emits `AttestationRemoved`. + /// + /// # + /// Weight: O(P) where P is the number of steps required to verify that + /// the dispatch Origin controls the delegation entitled to revoke the + /// attestation. It is bounded by `max_parent_checks`. + /// - Reads: [Origin Account], Attestations, delegation::Roots + /// - Reads per delegation step P: delegation::Delegations + /// - Writes: Attestations, DelegatedAttestations + /// # #[pallet::call_index(2)] #[pallet::weight( ::WeightInfo::remove() @@ -419,7 +407,7 @@ pub mod pallet { let attestation = Attestations::::get(claim_hash).ok_or(Error::::NotFound)?; - let authorized_by = if attestation.attester != who { + if attestation.attester != who { let attestation_auth_id = attestation.authorization_id.as_ref().ok_or(Error::::NotAuthorized)?; authorization.ok_or(Error::::NotAuthorized)?.can_remove( &who, @@ -427,22 +415,25 @@ pub mod pallet { &claim_hash, attestation_auth_id, )?; - AuthorizedBy::Authorization(who) - } else { - AuthorizedBy::Attester(who) - }; + } log::debug!("removing Attestation"); - Self::remove_attestation(authorized_by, attestation, claim_hash)?; + Self::remove_attestation(attestation, claim_hash)?; + Self::deposit_event(Event::AttestationRemoved(who, claim_hash)); Ok(Some(::WeightInfo::remove()).into()) } /// Reclaim a storage deposit by removing an attestation /// - /// Always emits `AttestationRemoved` and emits `AttestationRevoked` - /// only if the attestation was not revoked yet. + /// Emits `DepositReclaimed`. + /// + /// # + /// Weight: O(1) + /// - Reads: [Origin Account], Attestations, DelegatedAttestations + /// - Writes: Attestations, DelegatedAttestations + /// # #[pallet::call_index(3)] #[pallet::weight(::WeightInfo::reclaim_deposit())] pub fn reclaim_deposit(origin: OriginFor, claim_hash: ClaimHashOf) -> DispatchResult { @@ -453,7 +444,8 @@ pub mod pallet { log::debug!("removing Attestation"); - Self::remove_attestation(AuthorizedBy::DepositOwner(who), attestation, claim_hash)?; + Self::remove_attestation(attestation, claim_hash)?; + Self::deposit_event(Event::DepositReclaimed(who, claim_hash)); Ok(()) } @@ -501,11 +493,7 @@ pub mod pallet { } impl Pallet { - fn remove_attestation( - authorized_by: AuthorizedByOf, - attestation: AttestationDetailsOf, - claim_hash: ClaimHashOf, - ) -> DispatchResult { + fn remove_attestation(attestation: AttestationDetailsOf, claim_hash: ClaimHashOf) -> DispatchResult { let is_key_migrated = ::BalanceMigrationManager::is_key_migrated(&Attestations::::hashed_key_for(claim_hash)); if is_key_migrated { @@ -521,20 +509,6 @@ pub mod pallet { if let Some(authorization_id) = &attestation.authorization_id { ExternalAttestations::::remove(authorization_id, claim_hash); } - if !attestation.revoked { - Self::deposit_event(Event::AttestationRevoked { - attester: attestation.attester.clone(), - authorized_by: authorized_by.clone(), - claim_hash, - ctype_hash: attestation.ctype_hash, - }); - } - Self::deposit_event(Event::AttestationRemoved { - attester: attestation.attester, - authorized_by, - claim_hash, - ctype_hash: attestation.ctype_hash, - }); Ok(()) } } diff --git a/pallets/attestation/src/mock.rs b/pallets/attestation/src/mock.rs index cbf789867..f031575bb 100644 --- a/pallets/attestation/src/mock.rs +++ b/pallets/attestation/src/mock.rs @@ -193,7 +193,7 @@ pub(crate) mod runtime { use ctype::{CtypeCreatorOf, CtypeEntryOf}; use kilt_support::mock::{mock_origin, SubjectId}; - use crate::{self as attestation, Event}; + use crate::{self as attestation}; type Block = frame_system::mocking::MockBlock; @@ -206,20 +206,6 @@ pub(crate) mod runtime { pub const MILLI_UNIT: Balance = 10u128.pow(12); pub const ATTESTATION_DEPOSIT: Balance = 10 * MILLI_UNIT; - pub(crate) fn events() -> Vec> { - System::events() - .into_iter() - .map(|r| r.event) - .filter_map(|e| { - if let RuntimeEvent::Attestation(e) = e { - Some(e) - } else { - None - } - }) - .collect::>() - } - frame_support::construct_runtime!( pub enum Test { @@ -246,7 +232,7 @@ pub(crate) mod runtime { type Lookup = IdentityLookup; type Block = Block; type Nonce = u64; - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type BlockHashCount = BlockHashCount; type DbWeight = RocksDbWeight; type Version = (); @@ -279,7 +265,7 @@ pub(crate) mod runtime { type MaxFreezes = MaxFreezes; type Balance = Balance; type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); @@ -297,7 +283,7 @@ pub(crate) mod runtime { type EnsureOrigin = mock_origin::EnsureDoubleOrigin; type OriginSuccess = mock_origin::DoubleOrigin; type OverarchingOrigin = EnsureSigned; - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type WeightInfo = (); type Currency = Balances; @@ -319,7 +305,7 @@ pub(crate) mod runtime { impl Config for Test { type EnsureOrigin = mock_origin::EnsureDoubleOrigin>; type OriginSuccess = mock_origin::DoubleOrigin>; - type RuntimeEvent = RuntimeEvent; + type RuntimeEvent = (); type WeightInfo = (); type RuntimeHoldReason = RuntimeHoldReason; type Currency = Balances; @@ -386,10 +372,6 @@ pub(crate) mod runtime { let mut ext = sp_io::TestExternalities::new(storage); ext.execute_with(|| { - // ensure that we are not at the genesis block. Events are not registered for - // the genesis block. - System::set_block_number(System::block_number() + 1); - for ctype in self.ctypes { ctype::Ctypes::::insert( ctype.0, diff --git a/pallets/attestation/src/tests/claim.rs b/pallets/attestation/src/tests/claim.rs index c1aa5eed4..f90aaea09 100644 --- a/pallets/attestation/src/tests/claim.rs +++ b/pallets/attestation/src/tests/claim.rs @@ -21,44 +21,35 @@ use frame_support::{assert_noop, assert_ok}; use kilt_support::mock::mock_origin::DoubleOrigin; use sp_runtime::DispatchError; -use crate::{self as attestation, mock::*, AttestationAccessControl, AttesterOf, Config, Event}; +use crate::{self as attestation, mock::*, AttestationAccessControl, AttesterOf, Config}; #[test] fn test_attest_without_authorization() { let attester: AttesterOf = sr25519_did_from_public_key(&ALICE_SEED); let claim_hash = claim_hash_from_seed(CLAIM_HASH_SEED_01); - let ctype = get_ctype_hash::(true); + let ctype_hash = get_ctype_hash::(true); let authorization_info = None; ExtBuilder::default() - .with_ctypes(vec![(ctype, attester.clone())]) + .with_ctypes(vec![(ctype_hash, attester.clone())]) .with_balances(vec![(ACCOUNT_00, ::Deposit::get() * 100)]) .build_and_execute_with_sanity_tests(|| { assert_ok!(Attestation::add( DoubleOrigin(ACCOUNT_00, attester.clone()).into(), claim_hash, - ctype, + ctype_hash, authorization_info.clone() )); let stored_attestation = Attestation::attestations(claim_hash).expect("Attestation should be present on chain."); - assert_eq!(stored_attestation.ctype_hash, ctype); + assert_eq!(stored_attestation.ctype_hash, ctype_hash); assert_eq!(stored_attestation.attester, attester); assert_eq!( stored_attestation.authorization_id, authorization_info.map(|ac| ac.authorization_id()) ); assert!(!stored_attestation.revoked); - assert_eq!( - events(), - vec![Event::AttestationCreated { - attester: attester.clone(), - claim_hash, - ctype_hash: ctype, - authorization: None - }] - ); }); } @@ -90,15 +81,6 @@ fn test_attest_authorized() { authorization_info.map(|ac| ac.authorization_id()) ); assert!(!stored_attestation.revoked); - assert_eq!( - events(), - vec![Event::AttestationCreated { - attester: attester.clone(), - claim_hash, - ctype_hash: ctype, - authorization: Some(attester) - }] - ); }); } @@ -114,14 +96,14 @@ fn test_attest_unauthorized() { .with_ctypes(vec![(ctype, attester.clone())]) .with_balances(vec![(ACCOUNT_00, ::Deposit::get() * 100)]) .build_and_execute_with_sanity_tests(|| { - assert_noop!( + assert_eq!( Attestation::add( DoubleOrigin(ACCOUNT_00, attester.clone()).into(), claim_hash, ctype, authorization_info ), - DispatchError::Other("Unauthorized") + Err(DispatchError::Other("Unauthorized")) ); }); } diff --git a/pallets/attestation/src/tests/delete.rs b/pallets/attestation/src/tests/delete.rs index e61cc73fd..86d96ecce 100644 --- a/pallets/attestation/src/tests/delete.rs +++ b/pallets/attestation/src/tests/delete.rs @@ -20,14 +20,14 @@ use frame_support::{assert_noop, assert_ok, traits::fungible::InspectHold}; use kilt_support::mock::mock_origin::DoubleOrigin; use sp_runtime::traits::Zero; -use crate::{self as attestation, mock::*, AttesterOf, Config, Event, HoldReason}; +use crate::{self as attestation, mock::*, AttesterOf, Config, HoldReason}; #[test] fn test_remove() { let attester: AttesterOf = sr25519_did_from_public_key(&ALICE_SEED); let claim_hash = claim_hash_from_seed(CLAIM_HASH_SEED_01); let attestation = generate_base_attestation::(attester.clone(), ACCOUNT_00); - let ctype_hash = attestation.ctype_hash; + let authorization_info = None; ExtBuilder::default() .with_balances(vec![(ACCOUNT_00, ::Deposit::get() * 100)]) @@ -37,57 +37,9 @@ fn test_remove() { assert_ok!(Attestation::remove( DoubleOrigin(ACCOUNT_00, attester.clone()).into(), claim_hash, - None - )); - assert!(Attestation::attestations(claim_hash).is_none()); - assert_eq!( - events(), - vec![ - Event::AttestationRevoked { - attester: attester.clone(), - claim_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::Attester(attester.clone()), - ctype_hash, - }, - Event::AttestationRemoved { - attester: attester.clone(), - claim_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::Attester(attester.clone()), - ctype_hash, - } - ] - ); - }); -} - -#[test] -fn test_remove_revoked() { - let attester: AttesterOf = sr25519_did_from_public_key(&ALICE_SEED); - let claim_hash = claim_hash_from_seed(CLAIM_HASH_SEED_01); - let mut attestation = generate_base_attestation::(attester.clone(), ACCOUNT_00); - attestation.revoked = true; - let ctype_hash = attestation.ctype_hash; - - ExtBuilder::default() - .with_balances(vec![(ACCOUNT_00, ::Deposit::get() * 100)]) - .with_ctypes(vec![(attestation.ctype_hash, attester.clone())]) - .with_attestations(vec![(claim_hash, attestation)]) - .build_and_execute_with_sanity_tests(|| { - assert_ok!(Attestation::remove( - DoubleOrigin(ACCOUNT_00, attester.clone()).into(), - claim_hash, - None + authorization_info )); assert!(Attestation::attestations(claim_hash).is_none()); - assert_eq!( - events(), - vec![Event::AttestationRemoved { - attester: attester.clone(), - claim_hash, - ctype_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::Attester(attester.clone()) - }] - ); }); } @@ -96,10 +48,9 @@ fn test_remove_authorized() { let attester: AttesterOf = sr25519_did_from_public_key(&ALICE_SEED); let revoker: AttesterOf = sr25519_did_from_public_key(&BOB_SEED); let claim_hash = claim_hash_from_seed(CLAIM_HASH_SEED_01); - let mut attestation = generate_base_attestation::(attester.clone(), ACCOUNT_00); + let mut attestation = generate_base_attestation::(attester, ACCOUNT_00); attestation.authorization_id = Some(revoker.clone()); let authorization_info = Some(MockAccessControl(revoker.clone())); - let ctype_hash = attestation.ctype_hash; ExtBuilder::default() .with_balances(vec![(ACCOUNT_00, ::Deposit::get() * 100)]) @@ -113,23 +64,6 @@ fn test_remove_authorized() { )); assert!(Attestation::attestations(claim_hash).is_none()); assert!(!Attestation::external_attestations(revoker.clone(), claim_hash)); - assert_eq!( - events(), - vec![ - Event::AttestationRevoked { - attester: attester.clone(), - claim_hash, - ctype_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::Authorization(revoker.clone()) - }, - Event::AttestationRemoved { - attester: attester.clone(), - claim_hash, - ctype_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::Authorization(revoker.clone()) - } - ] - ); }); } diff --git a/pallets/attestation/src/tests/deposit.rs b/pallets/attestation/src/tests/deposit.rs index baafd3a1f..21252caff 100644 --- a/pallets/attestation/src/tests/deposit.rs +++ b/pallets/attestation/src/tests/deposit.rs @@ -20,7 +20,7 @@ use frame_support::{assert_noop, assert_ok, traits::fungible::InspectHold}; use kilt_support::{mock::mock_origin::DoubleOrigin, Deposit}; use sp_runtime::{traits::Zero, TokenError}; -use crate::{self as attestation, mock::*, AttesterOf, Config, Error, Event, HoldReason}; +use crate::{self as attestation, mock::*, AttesterOf, Config, Error, HoldReason}; #[test] fn test_reclaim_deposit_not_found() { @@ -210,17 +210,16 @@ fn test_update_deposit_unauthorized() { } #[test] -fn test_reclaim_deposit_authorization() { +fn test_reclaim_deposit() { let attester: AttesterOf = sr25519_did_from_public_key(&ALICE_SEED); let other_authorized: AttesterOf = sr25519_did_from_public_key(&BOB_SEED); let claim_hash = claim_hash_from_seed(CLAIM_HASH_SEED_01); let mut attestation = generate_base_attestation::(attester.clone(), ACCOUNT_00); attestation.authorization_id = Some(other_authorized.clone()); - let ctype_hash = attestation.ctype_hash; ExtBuilder::default() .with_balances(vec![(ACCOUNT_00, ::Deposit::get() * 100)]) - .with_ctypes(vec![(attestation.ctype_hash, attester.clone())]) + .with_ctypes(vec![(attestation.ctype_hash, attester)]) .with_attestations(vec![(claim_hash, attestation)]) .build_and_execute_with_sanity_tests(|| { assert_eq!( @@ -237,80 +236,18 @@ fn test_reclaim_deposit_authorization() { )); assert!(Attestation::attestations(claim_hash).is_none()); assert!(Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_00).is_zero()); - assert_eq!( - events(), - vec![ - Event::AttestationRevoked { - attester: attester.clone(), - claim_hash, - ctype_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::DepositOwner(ACCOUNT_00) - }, - Event::AttestationRemoved { - attester: attester.clone(), - claim_hash, - ctype_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::DepositOwner(ACCOUNT_00) - } - ] - ); }); } #[test] -fn test_reclaim_deposit() { +fn test_reclaim_deposit_authorization() { let attester: AttesterOf = sr25519_did_from_public_key(&BOB_SEED); let claim_hash = claim_hash_from_seed(CLAIM_HASH_SEED_01); let attestation = generate_base_attestation::(attester.clone(), ACCOUNT_00); - let ctype_hash = attestation.ctype_hash; ExtBuilder::default() .with_balances(vec![(ACCOUNT_00, ::Deposit::get() * 100)]) - .with_ctypes(vec![(attestation.ctype_hash, attester.clone())]) - .with_attestations(vec![(claim_hash, attestation)]) - .build_and_execute_with_sanity_tests(|| { - assert_eq!( - Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_00), - ::Deposit::get() - ); - assert_ok!(Attestation::reclaim_deposit( - RuntimeOrigin::signed(ACCOUNT_00), - claim_hash - )); - assert!(Attestation::attestations(claim_hash).is_none()); - assert!(Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_00).is_zero()); - - assert_eq!( - events(), - vec![ - Event::AttestationRevoked { - attester: attester.clone(), - claim_hash, - ctype_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::DepositOwner(ACCOUNT_00) - }, - Event::AttestationRemoved { - attester: attester.clone(), - claim_hash, - ctype_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::DepositOwner(ACCOUNT_00) - } - ] - ); - }); -} - -#[test] -fn test_reclaim_deposit_revoked() { - let attester: AttesterOf = sr25519_did_from_public_key(&BOB_SEED); - let claim_hash = claim_hash_from_seed(CLAIM_HASH_SEED_01); - let mut attestation = generate_base_attestation::(attester.clone(), ACCOUNT_00); - attestation.revoked = true; - let ctype_hash = attestation.ctype_hash; - - ExtBuilder::default() - .with_balances(vec![(ACCOUNT_00, ::Deposit::get() * 100)]) - .with_ctypes(vec![(attestation.ctype_hash, attester.clone())]) + .with_ctypes(vec![(attestation.ctype_hash, attester)]) .with_attestations(vec![(claim_hash, attestation)]) .build_and_execute_with_sanity_tests(|| { assert_eq!( @@ -323,16 +260,6 @@ fn test_reclaim_deposit_revoked() { )); assert!(Attestation::attestations(claim_hash).is_none()); assert!(Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_00).is_zero()); - - assert_eq!( - events(), - vec![Event::AttestationRemoved { - attester: attester.clone(), - claim_hash, - ctype_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::DepositOwner(ACCOUNT_00) - }] - ); }); } diff --git a/pallets/attestation/src/tests/revoke.rs b/pallets/attestation/src/tests/revoke.rs index 98cab9d2d..a97ccd0f5 100644 --- a/pallets/attestation/src/tests/revoke.rs +++ b/pallets/attestation/src/tests/revoke.rs @@ -20,14 +20,13 @@ use frame_support::{assert_noop, assert_ok, traits::fungible::InspectHold}; use kilt_support::mock::mock_origin::DoubleOrigin; use sp_runtime::{traits::Zero, DispatchError}; -use crate::{self as attestation, mock::*, AttesterOf, Config, Event, HoldReason}; +use crate::{self as attestation, mock::*, AttesterOf, Config, HoldReason}; #[test] fn test_revoke_remove() { let revoker: AttesterOf = sr25519_did_from_public_key(&ALICE_SEED); let claim_hash = claim_hash_from_seed(CLAIM_HASH_SEED_01); let attestation = generate_base_attestation::(revoker.clone(), ACCOUNT_00); - let ctype_hash = attestation.ctype_hash; ExtBuilder::default() .with_balances(vec![(ACCOUNT_00, ::Deposit::get() * 100)]) @@ -47,17 +46,6 @@ fn test_revoke_remove() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_00), ::Deposit::get() ); - assert_eq!( - events(), - vec![Event::AttestationRevoked { - attester: revoker.clone(), - claim_hash, - ctype_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::Attester(revoker.clone()) - }] - ); - - System::reset_events(); assert_ok!(Attestation::remove( DoubleOrigin(ACCOUNT_00, revoker.clone()).into(), @@ -66,15 +54,6 @@ fn test_revoke_remove() { )); assert!(Attestation::attestations(claim_hash).is_none()); assert!(Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_00).is_zero()); - assert_eq!( - events(), - vec![Event::AttestationRemoved { - attester: revoker.clone(), - claim_hash, - ctype_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::Attester(revoker.clone()) - }] - ); }); } @@ -86,11 +65,10 @@ fn test_authorized_revoke() { let authorization_info = Some(MockAccessControl(revoker.clone())); let mut attestation = generate_base_attestation::(attester.clone(), ACCOUNT_00); attestation.authorization_id = Some(revoker.clone()); - let ctype_hash = attestation.ctype_hash; ExtBuilder::default() .with_balances(vec![(ACCOUNT_00, ::Deposit::get() * 100)]) - .with_ctypes(vec![(attestation.ctype_hash, attester.clone())]) + .with_ctypes(vec![(attestation.ctype_hash, attester)]) .with_attestations(vec![(claim_hash, attestation)]) .build_and_execute_with_sanity_tests(|| { assert_ok!(Attestation::revoke( @@ -107,15 +85,6 @@ fn test_authorized_revoke() { Balances::balance_on_hold(&HoldReason::Deposit.into(), &ACCOUNT_00), ::Deposit::get() ); - assert_eq!( - events(), - vec![Event::AttestationRevoked { - attester: attester.clone(), - claim_hash, - ctype_hash, - authorized_by: attestation::authorized_by::AuthorizedBy::Authorization(revoker.clone()) - }] - ); }); } diff --git a/pallets/delegation/src/lib.rs b/pallets/delegation/src/lib.rs index d2cbb1539..b200900d7 100644 --- a/pallets/delegation/src/lib.rs +++ b/pallets/delegation/src/lib.rs @@ -51,7 +51,7 @@ //! //! - **Delegation:**: An attestation which is not issued by the attester //! directly but via a (chain of) delegations which entitle the delegated -//! attester. This could be an employee of a company which is authorized to +//! attester. This could be an employe of a company which is authorized to //! sign documents for their superiors. //! //! ## Assumptions @@ -248,6 +248,9 @@ pub mod pallet { /// A delegation has been removed. /// \[remover ID, delegation node ID\] DelegationRemoved(AccountIdOf, DelegationNodeIdOf), + /// The deposit owner reclaimed a deposit by removing a delegation + /// subtree. \[revoker ID, delegation node ID\] + DepositReclaimed(AccountIdOf, DelegationNodeIdOf), } #[pallet::error] diff --git a/pallets/pallet-web3-names/src/lib.rs b/pallets/pallet-web3-names/src/lib.rs index a3cda6139..4c110c11f 100644 --- a/pallets/pallet-web3-names/src/lib.rs +++ b/pallets/pallet-web3-names/src/lib.rs @@ -227,7 +227,11 @@ pub mod pallet { let decoded_name = Self::check_claiming_preconditions(name, &owner, &payer)?; - Self::register_name(decoded_name, owner, payer)?; + Self::register_name(decoded_name.clone(), owner.clone(), payer)?; + Self::deposit_event(Event::::Web3NameClaimed { + owner, + name: decoded_name, + }); Ok(()) } @@ -253,6 +257,10 @@ pub mod pallet { let owned_name = Self::check_releasing_preconditions(&owner)?; Self::unregister_name(&owned_name)?; + Self::deposit_event(Event::::Web3NameReleased { + owner, + name: owned_name, + }); Ok(()) } @@ -276,7 +284,11 @@ pub mod pallet { let decoded_name = Self::check_reclaim_deposit_preconditions(name, &caller)?; - Self::unregister_name(&decoded_name)?; + let Web3OwnershipOf:: { owner, .. } = Self::unregister_name(&decoded_name)?; + Self::deposit_event(Event::::Web3NameReleased { + owner, + name: decoded_name, + }); Ok(()) } @@ -427,13 +439,11 @@ pub mod pallet { Owner::::insert( &name, Web3OwnershipOf:: { - owner: owner.clone(), + owner, claimed_at: block_number, deposit, }, ); - - Self::deposit_event(Event::::Web3NameClaimed { owner, name }); Ok(()) } @@ -483,10 +493,7 @@ pub mod pallet { ) } - Self::deposit_event(Event::::Web3NameReleased { - owner: name_ownership.owner.clone(), - name: name.clone(), - }); + // Should never fail since we checked in the preconditions Ok(name_ownership) } From 6d4526de2e5bc5c3bf1fd75af8d7c1278076e7ff Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Thu, 10 Oct 2024 10:53:48 +0200 Subject: [PATCH 43/46] chore: bump versions --- Cargo.lock | 72 +++++++++---------- Cargo.toml | 2 +- dip-template/runtimes/dip-consumer/src/lib.rs | 2 +- dip-template/runtimes/dip-provider/src/lib.rs | 2 +- runtimes/kestrel/src/lib.rs | 2 +- runtimes/peregrine/src/lib.rs | 4 +- runtimes/spiritnet/src/lib.rs | 4 +- 7 files changed, 44 insertions(+), 44 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a5fa444e3..6540b2867 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -770,7 +770,7 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "attestation" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "ctype", "frame-benchmarking", @@ -1976,7 +1976,7 @@ dependencies = [ [[package]] name = "ctype" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "frame-benchmarking", "frame-support", @@ -2695,7 +2695,7 @@ dependencies = [ [[package]] name = "delegation" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "attestation", "bitflags 1.3.2", @@ -2798,7 +2798,7 @@ dependencies = [ [[package]] name = "did" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "ctype", "env_logger 0.10.2", @@ -2858,7 +2858,7 @@ dependencies = [ [[package]] name = "dip-consumer-node-template" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "clap", "cumulus-client-cli", @@ -2912,7 +2912,7 @@ dependencies = [ [[package]] name = "dip-consumer-runtime-template" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", @@ -2966,7 +2966,7 @@ dependencies = [ [[package]] name = "dip-provider-node-template" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "clap", "cumulus-client-cli", @@ -3020,7 +3020,7 @@ dependencies = [ [[package]] name = "dip-provider-runtime-template" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", @@ -5125,7 +5125,7 @@ dependencies = [ [[package]] name = "kestrel-runtime" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "attestation", "ctype", @@ -5185,7 +5185,7 @@ checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" [[package]] name = "kilt-asset-dids" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "base58", "frame-support", @@ -5200,7 +5200,7 @@ dependencies = [ [[package]] name = "kilt-dip-primitives" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -5232,7 +5232,7 @@ dependencies = [ [[package]] name = "kilt-parachain" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "clap", "cumulus-client-cli", @@ -5299,7 +5299,7 @@ dependencies = [ [[package]] name = "kilt-runtime-api-did" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "did", "frame-system", @@ -5312,7 +5312,7 @@ dependencies = [ [[package]] name = "kilt-runtime-api-dip-provider" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "parity-scale-codec", "sp-api", @@ -5320,7 +5320,7 @@ dependencies = [ [[package]] name = "kilt-runtime-api-public-credentials" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "kilt-support", "parity-scale-codec", @@ -5330,7 +5330,7 @@ dependencies = [ [[package]] name = "kilt-runtime-api-staking" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "parity-scale-codec", "scale-info", @@ -5340,7 +5340,7 @@ dependencies = [ [[package]] name = "kilt-support" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "frame-support", "frame-system", @@ -6895,7 +6895,7 @@ dependencies = [ [[package]] name = "pallet-asset-switch" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "env_logger 0.10.2", "frame-benchmarking", @@ -6917,7 +6917,7 @@ dependencies = [ [[package]] name = "pallet-asset-switch-runtime-api" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "parity-scale-codec", "sp-api", @@ -7286,7 +7286,7 @@ dependencies = [ [[package]] name = "pallet-configuration" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "cumulus-pallet-parachain-system", "frame-benchmarking", @@ -7340,7 +7340,7 @@ dependencies = [ [[package]] name = "pallet-deposit-storage" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "frame-benchmarking", "frame-support", @@ -7359,7 +7359,7 @@ dependencies = [ [[package]] name = "pallet-did-lookup" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "base58", "blake2 0.10.6", @@ -7386,7 +7386,7 @@ dependencies = [ [[package]] name = "pallet-dip-consumer" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "cfg-if", "frame-benchmarking", @@ -7406,7 +7406,7 @@ dependencies = [ [[package]] name = "pallet-dip-provider" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "did", "frame-benchmarking", @@ -7576,7 +7576,7 @@ dependencies = [ [[package]] name = "pallet-inflation" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "frame-benchmarking", "frame-support", @@ -7629,7 +7629,7 @@ dependencies = [ [[package]] name = "pallet-migration" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "attestation", "ctype", @@ -7848,7 +7848,7 @@ dependencies = [ [[package]] name = "pallet-postit" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "frame-support", "frame-system", @@ -7945,7 +7945,7 @@ dependencies = [ [[package]] name = "pallet-relay-store" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -8289,7 +8289,7 @@ dependencies = [ [[package]] name = "pallet-web3-names" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "frame-benchmarking", "frame-support", @@ -8384,7 +8384,7 @@ dependencies = [ [[package]] name = "parachain-staking" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "frame-benchmarking", "frame-support", @@ -8671,7 +8671,7 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "peregrine-runtime" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "attestation", "cfg-if", @@ -10300,7 +10300,7 @@ dependencies = [ [[package]] name = "public-credentials" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "ctype", "frame-benchmarking", @@ -10876,7 +10876,7 @@ dependencies = [ [[package]] name = "runtime-common" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "attestation", "cfg-if", @@ -13726,7 +13726,7 @@ dependencies = [ [[package]] name = "spiritnet-runtime" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "attestation", "cfg-if", @@ -13946,7 +13946,7 @@ dependencies = [ [[package]] name = "standalone-node" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "clap", "frame-benchmarking", @@ -16093,7 +16093,7 @@ dependencies = [ [[package]] name = "xcm-integration-tests" -version = "1.15.0-dev" +version = "1.14.5" dependencies = [ "asset-hub-rococo-emulated-chain", "asset-hub-rococo-runtime", diff --git a/Cargo.toml b/Cargo.toml index e321a472c..40a5f4e4c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ homepage = "https://kilt.io/" license-file = "LICENSE" readme = "README.md" repository = "https://github.com/KILTprotocol/kilt-node" -version = "1.15.0-dev" +version = "1.14.5" [workspace.dependencies] # Build deps diff --git a/dip-template/runtimes/dip-consumer/src/lib.rs b/dip-template/runtimes/dip-consumer/src/lib.rs index 07886bd41..f98128b25 100644 --- a/dip-template/runtimes/dip-consumer/src/lib.rs +++ b/dip-template/runtimes/dip-consumer/src/lib.rs @@ -153,7 +153,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("dip-consumer-runtime-template"), impl_name: create_runtime_str!("dip-consumer-runtime-template"), authoring_version: 1, - spec_version: 11500, + spec_version: 11405, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/dip-template/runtimes/dip-provider/src/lib.rs b/dip-template/runtimes/dip-provider/src/lib.rs index 16e09eee7..62ee5f82f 100644 --- a/dip-template/runtimes/dip-provider/src/lib.rs +++ b/dip-template/runtimes/dip-provider/src/lib.rs @@ -154,7 +154,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("dip-provider-runtime-template"), impl_name: create_runtime_str!("dip-provider-runtime-template"), authoring_version: 1, - spec_version: 11500, + spec_version: 11405, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/runtimes/kestrel/src/lib.rs b/runtimes/kestrel/src/lib.rs index 35c160938..d1782c02e 100644 --- a/runtimes/kestrel/src/lib.rs +++ b/runtimes/kestrel/src/lib.rs @@ -120,7 +120,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("kilt-kestrel"), impl_name: create_runtime_str!("kilt-kestrel"), authoring_version: 4, - spec_version: 11500, + spec_version: 11405, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 6, diff --git a/runtimes/peregrine/src/lib.rs b/runtimes/peregrine/src/lib.rs index 713ae5970..741afcb0e 100644 --- a/runtimes/peregrine/src/lib.rs +++ b/runtimes/peregrine/src/lib.rs @@ -110,10 +110,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("mashnet-node"), impl_name: create_runtime_str!("mashnet-node"), authoring_version: 4, - spec_version: 11500, + spec_version: 11405, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 8, + transaction_version: 9, state_version: 0, }; diff --git a/runtimes/spiritnet/src/lib.rs b/runtimes/spiritnet/src/lib.rs index 7a9a78f4d..a9774a653 100644 --- a/runtimes/spiritnet/src/lib.rs +++ b/runtimes/spiritnet/src/lib.rs @@ -109,10 +109,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("kilt-spiritnet"), impl_name: create_runtime_str!("kilt-spiritnet"), authoring_version: 1, - spec_version: 11500, + spec_version: 11405, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 8, + transaction_version: 9, state_version: 0, }; From cb8698c42187fa5f580b89c4919819184ae8641d Mon Sep 17 00:00:00 2001 From: Adel Golghalyani Date: Wed, 21 Aug 2024 10:14:09 +0200 Subject: [PATCH 44/46] fix: emulated tests --- .../emulated/src/tests/peregrine/did_pallets/attestation.rs | 2 +- .../emulated/src/tests/spiritnet/did_pallets/attestation.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/integration-tests/emulated/src/tests/peregrine/did_pallets/attestation.rs b/integration-tests/emulated/src/tests/peregrine/did_pallets/attestation.rs index 2b24b0155..7b5f969b1 100644 --- a/integration-tests/emulated/src/tests/peregrine/did_pallets/attestation.rs +++ b/integration-tests/emulated/src/tests/peregrine/did_pallets/attestation.rs @@ -106,7 +106,7 @@ fn test_attestation_creation_from_asset_hub_successful() { Peregrine, vec![ PeregrineRuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: true, .. }) => {}, - PeregrineRuntimeEvent::Attestation(attestation::Event::AttestationCreated { attester, claim_hash, authorization: _ , ctype_hash }) => { + PeregrineRuntimeEvent::Attestation(attestation::Event::AttestationCreated(attester, claim_hash , ctype_hash, _ )) => { attester: attester == &asset_hub_sovereign_account, claim_hash: claim_hash == &claim_hash_value, ctype_hash: ctype_hash == &ctype_hash_value, diff --git a/integration-tests/emulated/src/tests/spiritnet/did_pallets/attestation.rs b/integration-tests/emulated/src/tests/spiritnet/did_pallets/attestation.rs index f1a5f1a2d..ca7faf10a 100644 --- a/integration-tests/emulated/src/tests/spiritnet/did_pallets/attestation.rs +++ b/integration-tests/emulated/src/tests/spiritnet/did_pallets/attestation.rs @@ -106,7 +106,7 @@ fn test_attestation_creation_from_asset_hub_successful() { Spiritnet, vec![ SpiritnetRuntimeEvent::MessageQueue(pallet_message_queue::Event::Processed { success: true, .. }) => {}, - SpiritnetRuntimeEvent::Attestation(attestation::Event::AttestationCreated { attester, claim_hash, authorization: _ , ctype_hash }) => { + SpiritnetRuntimeEvent::Attestation(attestation::Event::AttestationCreated(attester, claim_hash, ctype_hash, _)) => { attester: attester == &asset_hub_sovereign_account, claim_hash: claim_hash == &claim_hash_value, ctype_hash: ctype_hash == &ctype_hash_value, From 8f448752a11b3f47366477c5e3ff700e1e92d197 Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Thu, 10 Oct 2024 11:10:43 +0200 Subject: [PATCH 45/46] chore: bump transaction version again --- runtimes/peregrine/src/lib.rs | 2 +- runtimes/spiritnet/src/lib.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runtimes/peregrine/src/lib.rs b/runtimes/peregrine/src/lib.rs index 741afcb0e..2187a1a0a 100644 --- a/runtimes/peregrine/src/lib.rs +++ b/runtimes/peregrine/src/lib.rs @@ -113,7 +113,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_version: 11405, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 9, + transaction_version: 10, state_version: 0, }; diff --git a/runtimes/spiritnet/src/lib.rs b/runtimes/spiritnet/src/lib.rs index a9774a653..8c426a5f0 100644 --- a/runtimes/spiritnet/src/lib.rs +++ b/runtimes/spiritnet/src/lib.rs @@ -112,7 +112,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_version: 11405, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 9, + transaction_version: 10, state_version: 0, }; From 28c7fba67ca1de2e9ddffd2772c2def3a0a4ec83 Mon Sep 17 00:00:00 2001 From: ad96el Date: Fri, 11 Oct 2024 08:00:56 +0000 Subject: [PATCH 46/46] Benchmarks --- runtimes/peregrine/src/weights/attestation.rs | 35 +- runtimes/peregrine/src/weights/ctype.rs | 21 +- .../cumulus_pallet_parachain_system.rs | 21 +- runtimes/peregrine/src/weights/delegation.rs | 83 +- runtimes/peregrine/src/weights/did.rs | 207 ++-- .../peregrine/src/weights/frame_system.rs | 69 +- .../src/weights/pallet_asset_switch.rs | 158 ++- .../peregrine/src/weights/pallet_assets.rs | 173 ++- .../peregrine/src/weights/pallet_balances.rs | 51 +- .../src/weights/pallet_collective_council.rs | 131 +- .../pallet_collective_technical_committee.rs | 131 +- .../peregrine/src/weights/pallet_democracy.rs | 155 ++- .../src/weights/pallet_deposit_storage.rs | 15 +- .../src/weights/pallet_did_lookup.rs | 47 +- .../src/weights/pallet_dip_provider.rs | 21 +- .../peregrine/src/weights/pallet_indices.rs | 31 +- .../peregrine/src/weights/pallet_inflation.rs | 19 +- .../src/weights/pallet_membership.rs | 77 +- .../src/weights/pallet_message_queue.rs | 53 +- .../peregrine/src/weights/pallet_migration.rs | 35 +- .../peregrine/src/weights/pallet_multisig.rs | 249 +++- .../peregrine/src/weights/pallet_preimage.rs | 79 +- .../peregrine/src/weights/pallet_proxy.rs | 99 +- .../peregrine/src/weights/pallet_scheduler.rs | 83 +- .../peregrine/src/weights/pallet_session.rs | 19 +- runtimes/peregrine/src/weights/pallet_sudo.rs | 67 +- .../peregrine/src/weights/pallet_timestamp.rs | 19 +- runtimes/peregrine/src/weights/pallet_tips.rs | 63 +- .../peregrine/src/weights/pallet_treasury.rs | 61 +- .../peregrine/src/weights/pallet_utility.rs | 43 +- .../peregrine/src/weights/pallet_vesting.rs | 119 +- .../src/weights/pallet_web3_names.rs | 69 +- runtimes/peregrine/src/weights/pallet_xcm.rs | 203 +-- .../src/weights/parachain_staking.rs | 1002 +++++++-------- .../src/weights/public_credentials.rs | 43 +- runtimes/spiritnet/src/weights/attestation.rs | 35 +- runtimes/spiritnet/src/weights/ctype.rs | 21 +- .../cumulus_pallet_parachain_system.rs | 21 +- runtimes/spiritnet/src/weights/delegation.rs | 83 +- runtimes/spiritnet/src/weights/did.rs | 203 ++- .../spiritnet/src/weights/frame_system.rs | 71 +- .../src/weights/pallet_asset_switch.rs | 115 +- .../spiritnet/src/weights/pallet_assets.rs | 182 +-- .../spiritnet/src/weights/pallet_balances.rs | 51 +- .../src/weights/pallet_collective_council.rs | 131 +- .../pallet_collective_technical_committee.rs | 209 ++-- .../spiritnet/src/weights/pallet_democracy.rs | 155 ++- .../src/weights/pallet_deposit_storage.rs | 15 +- .../src/weights/pallet_did_lookup.rs | 47 +- .../src/weights/pallet_dip_provider.rs | 21 +- .../spiritnet/src/weights/pallet_indices.rs | 31 +- .../spiritnet/src/weights/pallet_inflation.rs | 19 +- .../src/weights/pallet_membership.rs | 73 +- .../src/weights/pallet_message_queue.rs | 53 +- .../spiritnet/src/weights/pallet_migration.rs | 35 +- .../spiritnet/src/weights/pallet_multisig.rs | 251 +++- .../spiritnet/src/weights/pallet_preimage.rs | 79 +- .../spiritnet/src/weights/pallet_proxy.rs | 99 +- .../spiritnet/src/weights/pallet_scheduler.rs | 81 +- .../spiritnet/src/weights/pallet_session.rs | 19 +- .../spiritnet/src/weights/pallet_timestamp.rs | 19 +- runtimes/spiritnet/src/weights/pallet_tips.rs | 63 +- .../spiritnet/src/weights/pallet_treasury.rs | 61 +- .../spiritnet/src/weights/pallet_utility.rs | 43 +- .../spiritnet/src/weights/pallet_vesting.rs | 137 +- .../src/weights/pallet_web3_names.rs | 69 +- runtimes/spiritnet/src/weights/pallet_xcm.rs | 243 ++-- .../src/weights/parachain_staking.rs | 1097 ++++++++++------- .../src/weights/public_credentials.rs | 41 +- 69 files changed, 3989 insertions(+), 3635 deletions(-) diff --git a/runtimes/peregrine/src/weights/attestation.rs b/runtimes/peregrine/src/weights/attestation.rs index 6e7e3beeb..7b7e4a194 100644 --- a/runtimes/peregrine/src/weights/attestation.rs +++ b/runtimes/peregrine/src/weights/attestation.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `attestation` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=attestation // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/attestation.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -63,8 +60,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `260` // Estimated: `3660` - // Minimum execution time: 52_335_000 picoseconds. - Weight::from_parts(53_274_000, 0) + // Minimum execution time: 52_270_000 picoseconds. + Weight::from_parts(52_947_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -75,8 +72,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `196` // Estimated: `3660` - // Minimum execution time: 14_393_000 picoseconds. - Weight::from_parts(14_731_000, 0) + // Minimum execution time: 14_625_000 picoseconds. + Weight::from_parts(14_908_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +90,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3660` - // Minimum execution time: 47_894_000 picoseconds. - Weight::from_parts(48_491_000, 0) + // Minimum execution time: 46_123_000 picoseconds. + Weight::from_parts(46_445_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -111,8 +108,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3660` - // Minimum execution time: 48_351_000 picoseconds. - Weight::from_parts(48_828_000, 0) + // Minimum execution time: 46_212_000 picoseconds. + Weight::from_parts(46_528_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -129,8 +126,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `581` // Estimated: `6326` - // Minimum execution time: 77_624_000 picoseconds. - Weight::from_parts(78_569_000, 0) + // Minimum execution time: 77_563_000 picoseconds. + Weight::from_parts(78_518_000, 0) .saturating_add(Weight::from_parts(0, 6326)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -147,8 +144,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3660` - // Minimum execution time: 71_073_000 picoseconds. - Weight::from_parts(71_519_000, 0) + // Minimum execution time: 72_172_000 picoseconds. + Weight::from_parts(72_973_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtimes/peregrine/src/weights/ctype.rs b/runtimes/peregrine/src/weights/ctype.rs index a81c19ef0..45b939b6f 100644 --- a/runtimes/peregrine/src/weights/ctype.rs +++ b/runtimes/peregrine/src/weights/ctype.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `ctype` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=ctype // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/ctype.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -58,11 +55,11 @@ impl ctype::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `254` // Estimated: `6204` - // Minimum execution time: 43_876_000 picoseconds. - Weight::from_parts(44_318_000, 0) + // Minimum execution time: 45_181_000 picoseconds. + Weight::from_parts(45_629_000, 0) .saturating_add(Weight::from_parts(0, 6204)) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_566, 0).saturating_mul(l.into())) + .saturating_add(Weight::from_parts(1_611, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -72,8 +69,8 @@ impl ctype::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `158` // Estimated: `3553` - // Minimum execution time: 15_009_000 picoseconds. - Weight::from_parts(15_716_000, 0) + // Minimum execution time: 15_380_000 picoseconds. + Weight::from_parts(15_967_000, 0) .saturating_add(Weight::from_parts(0, 3553)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtimes/peregrine/src/weights/cumulus_pallet_parachain_system.rs b/runtimes/peregrine/src/weights/cumulus_pallet_parachain_system.rs index 3af3b85d7..9a9df374a 100644 --- a/runtimes/peregrine/src/weights/cumulus_pallet_parachain_system.rs +++ b/runtimes/peregrine/src/weights/cumulus_pallet_parachain_system.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `cumulus_pallet_parachain_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev -// --pallet=cumulus_pallet_parachain_system +// --pallet=cumulus-pallet-parachain-system // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/cumulus_pallet_parachain_system.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -64,11 +61,11 @@ impl cumulus_pallet_parachain_system::WeightInfo for We // Proof Size summary in bytes: // Measured: `115` // Estimated: `3517` - // Minimum execution time: 1_841_000 picoseconds. - Weight::from_parts(1_928_000, 0) + // Minimum execution time: 1_840_000 picoseconds. + Weight::from_parts(1_884_000, 0) .saturating_add(Weight::from_parts(0, 3517)) - // Standard Error: 18_371 - .saturating_add(Weight::from_parts(193_473_787, 0).saturating_mul(n.into())) + // Standard Error: 14_595 + .saturating_add(Weight::from_parts(203_232_253, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) diff --git a/runtimes/peregrine/src/weights/delegation.rs b/runtimes/peregrine/src/weights/delegation.rs index 6d5a6286d..5f3ee74d0 100644 --- a/runtimes/peregrine/src/weights/delegation.rs +++ b/runtimes/peregrine/src/weights/delegation.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `delegation` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=delegation // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/delegation.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -65,8 +62,8 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `363` // Estimated: `3658` - // Minimum execution time: 54_699_000 picoseconds. - Weight::from_parts(55_207_000, 0) + // Minimum execution time: 54_084_000 picoseconds. + Weight::from_parts(54_636_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(5)) @@ -83,8 +80,8 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `502` // Estimated: `70340` - // Minimum execution time: 59_709_000 picoseconds. - Weight::from_parts(60_141_000, 0) + // Minimum execution time: 59_257_000 picoseconds. + Weight::from_parts(59_883_000, 0) .saturating_add(Weight::from_parts(0, 70340)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(5)) @@ -99,13 +96,13 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `241 + r * (239 ±0)` // Estimated: `3545 + r * (34675 ±0)` - // Minimum execution time: 24_320_000 picoseconds. - Weight::from_parts(15_889_244, 0) + // Minimum execution time: 24_068_000 picoseconds. + Weight::from_parts(15_376_596, 0) .saturating_add(Weight::from_parts(0, 3545)) - // Standard Error: 11_872 - .saturating_add(Weight::from_parts(9_382_556, 0).saturating_mul(r.into())) - // Standard Error: 11_872 - .saturating_add(Weight::from_parts(42_441, 0).saturating_mul(c.into())) + // Standard Error: 15_452 + .saturating_add(Weight::from_parts(9_580_902, 0).saturating_mul(r.into())) + // Standard Error: 15_452 + .saturating_add(Weight::from_parts(95_453, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) @@ -121,11 +118,11 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `414 + c * (239 ±0)` // Estimated: `35665 + c * (34675 ±0)` - // Minimum execution time: 27_798_000 picoseconds. - Weight::from_parts(25_412_478, 0) + // Minimum execution time: 27_458_000 picoseconds. + Weight::from_parts(25_073_392, 0) .saturating_add(Weight::from_parts(0, 35665)) - // Standard Error: 17_146 - .saturating_add(Weight::from_parts(4_219_254, 0).saturating_mul(c.into())) + // Standard Error: 15_398 + .saturating_add(Weight::from_parts(4_051_228, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -146,11 +143,11 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `651 + r * (294 ±0)` // Estimated: `35665 + r * (34675 ±0)` - // Minimum execution time: 99_737_000 picoseconds. - Weight::from_parts(67_169_789, 0) + // Minimum execution time: 96_534_000 picoseconds. + Weight::from_parts(63_355_149, 0) .saturating_add(Weight::from_parts(0, 35665)) - // Standard Error: 69_804 - .saturating_add(Weight::from_parts(36_006_219, 0).saturating_mul(r.into())) + // Standard Error: 47_839 + .saturating_add(Weight::from_parts(35_808_960, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -172,11 +169,11 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `583 + r * (294 ±0)` // Estimated: `35665 + r * (34675 ±0)` - // Minimum execution time: 95_277_000 picoseconds. - Weight::from_parts(62_361_345, 0) + // Minimum execution time: 91_223_000 picoseconds. + Weight::from_parts(57_696_076, 0) .saturating_add(Weight::from_parts(0, 35665)) - // Standard Error: 72_256 - .saturating_add(Weight::from_parts(36_212_512, 0).saturating_mul(r.into())) + // Standard Error: 54_462 + .saturating_add(Weight::from_parts(36_099_679, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -191,8 +188,8 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `613` // Estimated: `35665` - // Minimum execution time: 12_206_000 picoseconds. - Weight::from_parts(12_555_000, 0) + // Minimum execution time: 11_830_000 picoseconds. + Weight::from_parts(12_074_000, 0) .saturating_add(Weight::from_parts(0, 35665)) .saturating_add(T::DbWeight::get().reads(2)) } @@ -203,11 +200,11 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341 + c * (240 ±0)` // Estimated: `35665 + c * (34675 ±0)` - // Minimum execution time: 11_218_000 picoseconds. - Weight::from_parts(8_196_690, 0) + // Minimum execution time: 10_705_000 picoseconds. + Weight::from_parts(7_732_042, 0) .saturating_add(Weight::from_parts(0, 35665)) - // Standard Error: 16_268 - .saturating_add(Weight::from_parts(3_563_546, 0).saturating_mul(c.into())) + // Standard Error: 15_514 + .saturating_add(Weight::from_parts(3_537_266, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(Weight::from_parts(0, 34675).saturating_mul(c.into())) @@ -219,11 +216,11 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `341 + c * (240 ±0)` // Estimated: `35665 + c * (34675 ±0)` - // Minimum execution time: 11_180_000 picoseconds. - Weight::from_parts(8_147_080, 0) + // Minimum execution time: 10_695_000 picoseconds. + Weight::from_parts(7_736_905, 0) .saturating_add(Weight::from_parts(0, 35665)) - // Standard Error: 15_643 - .saturating_add(Weight::from_parts(3_634_816, 0).saturating_mul(c.into())) + // Standard Error: 15_795 + .saturating_add(Weight::from_parts(3_549_190, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(Weight::from_parts(0, 34675).saturating_mul(c.into())) @@ -240,8 +237,8 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `829` // Estimated: `35665` - // Minimum execution time: 83_409_000 picoseconds. - Weight::from_parts(84_131_000, 0) + // Minimum execution time: 82_218_000 picoseconds. + Weight::from_parts(83_030_000, 0) .saturating_add(Weight::from_parts(0, 35665)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -258,8 +255,8 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `685` // Estimated: `35665` - // Minimum execution time: 76_806_000 picoseconds. - Weight::from_parts(77_508_000, 0) + // Minimum execution time: 75_677_000 picoseconds. + Weight::from_parts(76_275_000, 0) .saturating_add(Weight::from_parts(0, 35665)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtimes/peregrine/src/weights/did.rs b/runtimes/peregrine/src/weights/did.rs index 4b7a6177d..b4786e12a 100644 --- a/runtimes/peregrine/src/weights/did.rs +++ b/runtimes/peregrine/src/weights/did.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `did` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=did // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/did.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -69,13 +66,13 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `361` // Estimated: `6204` - // Minimum execution time: 175_796_000 picoseconds. - Weight::from_parts(129_513_824, 0) + // Minimum execution time: 181_531_000 picoseconds. + Weight::from_parts(133_225_431, 0) .saturating_add(Weight::from_parts(0, 6204)) - // Standard Error: 62_365 - .saturating_add(Weight::from_parts(1_921_885, 0).saturating_mul(n.into())) - // Standard Error: 24_112 - .saturating_add(Weight::from_parts(27_649_874, 0).saturating_mul(c.into())) + // Standard Error: 57_776 + .saturating_add(Weight::from_parts(2_036_665, 0).saturating_mul(n.into())) + // Standard Error: 22_338 + .saturating_add(Weight::from_parts(29_633_114, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) @@ -100,13 +97,13 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `361` // Estimated: `6204` - // Minimum execution time: 170_401_000 picoseconds. - Weight::from_parts(117_706_529, 0) + // Minimum execution time: 178_176_000 picoseconds. + Weight::from_parts(121_963_935, 0) .saturating_add(Weight::from_parts(0, 6204)) - // Standard Error: 69_140 - .saturating_add(Weight::from_parts(1_862_825, 0).saturating_mul(n.into())) - // Standard Error: 26_732 - .saturating_add(Weight::from_parts(35_410_773, 0).saturating_mul(c.into())) + // Standard Error: 56_770 + .saturating_add(Weight::from_parts(2_042_583, 0).saturating_mul(n.into())) + // Standard Error: 21_949 + .saturating_add(Weight::from_parts(37_419_048, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) @@ -131,13 +128,13 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `361` // Estimated: `6204` - // Minimum execution time: 159_301_000 picoseconds. - Weight::from_parts(121_679_994, 0) + // Minimum execution time: 167_062_000 picoseconds. + Weight::from_parts(123_410_460, 0) .saturating_add(Weight::from_parts(0, 6204)) - // Standard Error: 61_040 - .saturating_add(Weight::from_parts(1_617_013, 0).saturating_mul(n.into())) - // Standard Error: 23_600 - .saturating_add(Weight::from_parts(22_617_045, 0).saturating_mul(c.into())) + // Standard Error: 52_944 + .saturating_add(Weight::from_parts(2_043_675, 0).saturating_mul(n.into())) + // Standard Error: 20_470 + .saturating_add(Weight::from_parts(24_731_775, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) @@ -161,11 +158,11 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `724 + c * (105 ±0)` // Estimated: `5777 + c * (6690 ±0)` - // Minimum execution time: 59_712_000 picoseconds. - Weight::from_parts(60_275_559, 0) + // Minimum execution time: 59_951_000 picoseconds. + Weight::from_parts(60_686_442, 0) .saturating_add(Weight::from_parts(0, 5777)) - // Standard Error: 4_547 - .saturating_add(Weight::from_parts(1_148_157, 0).saturating_mul(c.into())) + // Standard Error: 4_708 + .saturating_add(Weight::from_parts(1_207_711, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -191,11 +188,11 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `724 + c * (105 ±0)` // Estimated: `5777 + c * (6690 ±0)` - // Minimum execution time: 61_721_000 picoseconds. - Weight::from_parts(62_360_612, 0) + // Minimum execution time: 62_298_000 picoseconds. + Weight::from_parts(62_792_692, 0) .saturating_add(Weight::from_parts(0, 5777)) - // Standard Error: 4_147 - .saturating_add(Weight::from_parts(1_163_755, 0).saturating_mul(c.into())) + // Standard Error: 4_796 + .saturating_add(Weight::from_parts(1_222_361, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -208,8 +205,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `352` // Estimated: `5777` - // Minimum execution time: 70_697_000 picoseconds. - Weight::from_parts(71_596_000, 0) + // Minimum execution time: 71_419_000 picoseconds. + Weight::from_parts(71_900_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -220,8 +217,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `352` // Estimated: `5777` - // Minimum execution time: 57_182_000 picoseconds. - Weight::from_parts(58_172_000, 0) + // Minimum execution time: 59_289_000 picoseconds. + Weight::from_parts(60_045_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -232,8 +229,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `353` // Estimated: `5777` - // Minimum execution time: 60_309_000 picoseconds. - Weight::from_parts(61_484_000, 0) + // Minimum execution time: 60_912_000 picoseconds. + Weight::from_parts(61_856_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -252,8 +249,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 73_726_000 picoseconds. - Weight::from_parts(76_755_000, 0) + // Minimum execution time: 74_409_000 picoseconds. + Weight::from_parts(76_369_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -272,8 +269,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 74_677_000 picoseconds. - Weight::from_parts(76_084_000, 0) + // Minimum execution time: 75_775_000 picoseconds. + Weight::from_parts(76_991_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -292,8 +289,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 73_746_000 picoseconds. - Weight::from_parts(75_132_000, 0) + // Minimum execution time: 74_687_000 picoseconds. + Weight::from_parts(75_950_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -312,8 +309,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 74_259_000 picoseconds. - Weight::from_parts(75_286_000, 0) + // Minimum execution time: 74_676_000 picoseconds. + Weight::from_parts(75_442_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -332,8 +329,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 74_442_000 picoseconds. - Weight::from_parts(75_641_000, 0) + // Minimum execution time: 74_161_000 picoseconds. + Weight::from_parts(75_242_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -352,8 +349,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 73_745_000 picoseconds. - Weight::from_parts(74_913_000, 0) + // Minimum execution time: 74_679_000 picoseconds. + Weight::from_parts(75_139_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -372,8 +369,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 71_953_000 picoseconds. - Weight::from_parts(72_916_000, 0) + // Minimum execution time: 72_433_000 picoseconds. + Weight::from_parts(73_768_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -392,8 +389,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 72_185_000 picoseconds. - Weight::from_parts(73_128_000, 0) + // Minimum execution time: 71_958_000 picoseconds. + Weight::from_parts(73_459_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -412,8 +409,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 72_352_000 picoseconds. - Weight::from_parts(73_409_000, 0) + // Minimum execution time: 71_874_000 picoseconds. + Weight::from_parts(73_158_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -432,8 +429,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 73_401_000 picoseconds. - Weight::from_parts(74_955_000, 0) + // Minimum execution time: 74_804_000 picoseconds. + Weight::from_parts(75_419_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -452,8 +449,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 73_434_000 picoseconds. - Weight::from_parts(75_025_000, 0) + // Minimum execution time: 74_283_000 picoseconds. + Weight::from_parts(75_666_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -470,10 +467,10 @@ impl did::WeightInfo for WeightInfo { /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn set_ecdsa_attestation_key() -> Weight { // Proof Size summary in bytes: - // Measured: `1775` + // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 73_076_000 picoseconds. - Weight::from_parts(74_823_000, 0) + // Minimum execution time: 74_317_000 picoseconds. + Weight::from_parts(75_521_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -492,8 +489,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 72_058_000 picoseconds. - Weight::from_parts(73_149_000, 0) + // Minimum execution time: 72_124_000 picoseconds. + Weight::from_parts(73_471_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -512,8 +509,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 72_323_000 picoseconds. - Weight::from_parts(73_666_000, 0) + // Minimum execution time: 71_898_000 picoseconds. + Weight::from_parts(73_201_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -532,8 +529,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 72_647_000 picoseconds. - Weight::from_parts(74_037_000, 0) + // Minimum execution time: 71_867_000 picoseconds. + Weight::from_parts(72_938_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -552,8 +549,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1629` // Estimated: `5777` - // Minimum execution time: 73_176_000 picoseconds. - Weight::from_parts(74_488_000, 0) + // Minimum execution time: 73_519_000 picoseconds. + Weight::from_parts(74_387_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -572,8 +569,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1629` // Estimated: `5777` - // Minimum execution time: 73_319_000 picoseconds. - Weight::from_parts(74_306_000, 0) + // Minimum execution time: 73_246_000 picoseconds. + Weight::from_parts(74_424_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -592,8 +589,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1632` // Estimated: `5777` - // Minimum execution time: 73_406_000 picoseconds. - Weight::from_parts(74_595_000, 0) + // Minimum execution time: 74_123_000 picoseconds. + Weight::from_parts(74_981_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -610,10 +607,10 @@ impl did::WeightInfo for WeightInfo { /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn remove_ed25519_key_agreement_key() -> Weight { // Proof Size summary in bytes: - // Measured: `1735` + // Measured: `1772` // Estimated: `5777` - // Minimum execution time: 72_224_000 picoseconds. - Weight::from_parts(73_723_000, 0) + // Minimum execution time: 72_949_000 picoseconds. + Weight::from_parts(74_258_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -632,8 +629,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 72_666_000 picoseconds. - Weight::from_parts(74_167_000, 0) + // Minimum execution time: 73_123_000 picoseconds. + Weight::from_parts(74_492_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -652,8 +649,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 72_452_000 picoseconds. - Weight::from_parts(73_553_000, 0) + // Minimum execution time: 72_774_000 picoseconds. + Weight::from_parts(74_323_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -674,8 +671,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1135` // Estimated: `7680` - // Minimum execution time: 89_117_000 picoseconds. - Weight::from_parts(90_498_000, 0) + // Minimum execution time: 88_862_000 picoseconds. + Weight::from_parts(90_199_000, 0) .saturating_add(Weight::from_parts(0, 7680)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(6)) @@ -696,8 +693,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `5318` // Estimated: `7680` - // Minimum execution time: 82_597_000 picoseconds. - Weight::from_parts(83_964_000, 0) + // Minimum execution time: 83_041_000 picoseconds. + Weight::from_parts(84_276_000, 0) .saturating_add(Weight::from_parts(0, 7680)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(6)) @@ -709,11 +706,11 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1626` // Estimated: `5777` - // Minimum execution time: 49_038_000 picoseconds. - Weight::from_parts(27_157_241, 0) + // Minimum execution time: 46_903_000 picoseconds. + Weight::from_parts(12_625_591, 0) .saturating_add(Weight::from_parts(0, 5777)) // Standard Error: 0 - .saturating_add(Weight::from_parts(4_282, 0).saturating_mul(l.into())) + .saturating_add(Weight::from_parts(4_258, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: `Did::Did` (r:1 w:0) @@ -723,11 +720,11 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1626` // Estimated: `5777` - // Minimum execution time: 60_065_000 picoseconds. - Weight::from_parts(34_144_982, 0) + // Minimum execution time: 59_985_000 picoseconds. + Weight::from_parts(38_985_170, 0) .saturating_add(Weight::from_parts(0, 5777)) // Standard Error: 0 - .saturating_add(Weight::from_parts(2_367, 0).saturating_mul(l.into())) + .saturating_add(Weight::from_parts(2_357, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: `Did::Did` (r:1 w:0) @@ -737,11 +734,11 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1627` // Estimated: `5777` - // Minimum execution time: 49_823_000 picoseconds. - Weight::from_parts(23_686_282, 0) + // Minimum execution time: 49_880_000 picoseconds. + Weight::from_parts(24_539_195, 0) .saturating_add(Weight::from_parts(0, 5777)) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_166, 0).saturating_mul(l.into())) + .saturating_add(Weight::from_parts(1_157, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: `Migration::MigratedKeys` (r:1 w:1) @@ -756,8 +753,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `519` // Estimated: `5777` - // Minimum execution time: 65_777_000 picoseconds. - Weight::from_parts(66_443_000, 0) + // Minimum execution time: 65_534_000 picoseconds. + Weight::from_parts(66_702_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -772,10 +769,10 @@ impl did::WeightInfo for WeightInfo { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) fn update_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `463` + // Measured: `500` // Estimated: `5777` - // Minimum execution time: 33_732_000 picoseconds. - Weight::from_parts(34_332_000, 0) + // Minimum execution time: 33_327_000 picoseconds. + Weight::from_parts(33_854_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -786,8 +783,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `353` // Estimated: `5777` - // Minimum execution time: 17_260_000 picoseconds. - Weight::from_parts(17_833_000, 0) + // Minimum execution time: 17_538_000 picoseconds. + Weight::from_parts(17_792_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -805,8 +802,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `323` // Estimated: `6204` - // Minimum execution time: 76_568_000 picoseconds. - Weight::from_parts(77_393_000, 0) + // Minimum execution time: 77_226_000 picoseconds. + Weight::from_parts(78_532_000, 0) .saturating_add(Weight::from_parts(0, 6204)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) diff --git a/runtimes/peregrine/src/weights/frame_system.rs b/runtimes/peregrine/src/weights/frame_system.rs index 7797ee08f..55d1caef9 100644 --- a/runtimes/peregrine/src/weights/frame_system.rs +++ b/runtimes/peregrine/src/weights/frame_system.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=frame-system // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/frame_system.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -54,22 +51,22 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_095_000 picoseconds. - Weight::from_parts(2_196_000, 0) + // Minimum execution time: 2_133_000 picoseconds. + Weight::from_parts(2_198_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(390, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(439, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_784_000 picoseconds. - Weight::from_parts(5_919_000, 0) + // Minimum execution time: 6_027_000 picoseconds. + Weight::from_parts(6_171_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_557, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_601, 0).saturating_mul(b.into())) } /// Storage: `System::Digest` (r:1 w:1) /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -79,8 +76,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 3_771_000 picoseconds. - Weight::from_parts(4_019_000, 0) + // Minimum execution time: 3_766_000 picoseconds. + Weight::from_parts(3_969_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -101,8 +98,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `127` // Estimated: `1612` - // Minimum execution time: 101_315_441_000 picoseconds. - Weight::from_parts(104_155_772_000, 0) + // Minimum execution time: 101_983_821_000 picoseconds. + Weight::from_parts(106_410_466_000, 0) .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -114,11 +111,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_030_000 picoseconds. - Weight::from_parts(2_087_000, 0) + // Minimum execution time: 2_164_000 picoseconds. + Weight::from_parts(2_223_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_131 - .saturating_add(Weight::from_parts(739_354, 0).saturating_mul(i.into())) + // Standard Error: 2_044 + .saturating_add(Weight::from_parts(735_958, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -128,11 +125,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_101_000 picoseconds. - Weight::from_parts(2_171_000, 0) + // Minimum execution time: 2_300_000 picoseconds. + Weight::from_parts(2_335_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 819 - .saturating_add(Weight::from_parts(528_995, 0).saturating_mul(i.into())) + // Standard Error: 789 + .saturating_add(Weight::from_parts(532_193, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -141,12 +138,12 @@ impl frame_system::WeightInfo for WeightInfo { fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `82 + p * (69 ±0)` - // Estimated: `92 + p * (70 ±0)` - // Minimum execution time: 4_152_000 picoseconds. - Weight::from_parts(4_262_000, 0) - .saturating_add(Weight::from_parts(0, 92)) - // Standard Error: 982 - .saturating_add(Weight::from_parts(1_029_408, 0).saturating_mul(p.into())) + // Estimated: `94 + p * (70 ±0)` + // Minimum execution time: 4_129_000 picoseconds. + Weight::from_parts(4_266_000, 0) + .saturating_add(Weight::from_parts(0, 94)) + // Standard Error: 952 + .saturating_add(Weight::from_parts(1_059_532, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) @@ -157,8 +154,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_906_000 picoseconds. - Weight::from_parts(8_575_000, 0) + // Minimum execution time: 8_508_000 picoseconds. + Weight::from_parts(8_912_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -180,8 +177,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `149` // Estimated: `1634` - // Minimum execution time: 106_385_288_000 picoseconds. - Weight::from_parts(109_274_128_000, 0) + // Minimum execution time: 104_658_368_000 picoseconds. + Weight::from_parts(108_030_860_000, 0) .saturating_add(Weight::from_parts(0, 1634)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -223,7 +220,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 92 + > 94 ); } #[test] diff --git a/runtimes/peregrine/src/weights/pallet_asset_switch.rs b/runtimes/peregrine/src/weights/pallet_asset_switch.rs index 941a33cfd..db9e98a13 100644 --- a/runtimes/peregrine/src/weights/pallet_asset_switch.rs +++ b/runtimes/peregrine/src/weights/pallet_asset_switch.rs @@ -18,30 +18,23 @@ //! Autogenerated weights for `pallet_asset_switch` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 27.0.0 -//! DATE: 2024-07-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 // Executed Command: -// target/debug/kilt-parachain +// ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --execution=wasm -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 -// --chain -// dev -// --pallet -// pallet-asset-switch +// --chain=dev +// --pallet=pallet-asset-switch // --extrinsic=* -// --output -// ./runtimes/peregrine/src/weights/pallet_asset_switch.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -54,82 +47,99 @@ use sp_std::marker::PhantomData; pub struct WeightInfo(PhantomData); impl pallet_asset_switch::WeightInfo for WeightInfo { /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:1) - /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1891), added: 2386, mode: `MaxEncodedLen`) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (r:1 w:0) + /// Proof: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::NextQueryId` (r:0 w:1) + /// Proof: `AssetSwitchPool1::NextQueryId` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn set_switch_pair() -> Weight { // Proof Size summary in bytes: - // Measured: `128` + // Measured: `220` // Estimated: `3597` - // Minimum execution time: 195_975_000 picoseconds. - Weight::from_parts(197_609_000, 0) + // Minimum execution time: 21_655_000 picoseconds. + Weight::from_parts(22_086_000, 0) .saturating_add(Weight::from_parts(0, 3597)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (r:1 w:0) + /// Proof: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::NextQueryId` (r:0 w:1) + /// Proof: `AssetSwitchPool1::NextQueryId` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) /// Storage: `AssetSwitchPool1::SwitchPair` (r:0 w:1) - /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1891), added: 2386, mode: `MaxEncodedLen`) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) fn force_set_switch_pair() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 124_504_000 picoseconds. - Weight::from_parts(124_996_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `76` + // Estimated: `1489` + // Minimum execution time: 14_816_000 picoseconds. + Weight::from_parts(15_314_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (r:1 w:0) + /// Proof: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:1) - /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1891), added: 2386, mode: `MaxEncodedLen`) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::NextQueryId` (r:0 w:1) + /// Proof: `AssetSwitchPool1::NextQueryId` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn force_unset_switch_pair() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `3376` - // Minimum execution time: 146_871_000 picoseconds. - Weight::from_parts(149_775_000, 0) - .saturating_add(Weight::from_parts(0, 3376)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `218` + // Estimated: `3424` + // Minimum execution time: 15_156_000 picoseconds. + Weight::from_parts(15_452_000, 0) + .saturating_add(Weight::from_parts(0, 3424)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:1) - /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1891), added: 2386, mode: `MaxEncodedLen`) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) fn pause_switch_pair() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `3376` - // Minimum execution time: 101_743_000 picoseconds. - Weight::from_parts(102_740_000, 0) - .saturating_add(Weight::from_parts(0, 3376)) + // Measured: `218` + // Estimated: `3424` + // Minimum execution time: 11_162_000 picoseconds. + Weight::from_parts(11_394_000, 0) + .saturating_add(Weight::from_parts(0, 3424)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:1) - /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1891), added: 2386, mode: `MaxEncodedLen`) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) fn resume_switch_pair() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `3376` - // Minimum execution time: 149_329_000 picoseconds. - Weight::from_parts(154_394_000, 0) - .saturating_add(Weight::from_parts(0, 3376)) + // Measured: `218` + // Estimated: `3424` + // Minimum execution time: 15_251_000 picoseconds. + Weight::from_parts(15_486_000, 0) + .saturating_add(Weight::from_parts(0, 3424)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:1) - /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1891), added: 2386, mode: `MaxEncodedLen`) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) fn update_remote_xcm_fee() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `3376` - // Minimum execution time: 103_161_000 picoseconds. - Weight::from_parts(105_989_000, 0) - .saturating_add(Weight::from_parts(0, 3376)) + // Measured: `218` + // Estimated: `3424` + // Minimum execution time: 11_534_000 picoseconds. + Weight::from_parts(11_760_000, 0) + .saturating_add(Weight::from_parts(0, 3424)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:1) - /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1891), added: 2386, mode: `MaxEncodedLen`) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:2 w:2) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::NextQueryId` (r:1 w:1) + /// Proof: `AssetSwitchPool1::NextQueryId` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) @@ -144,17 +154,21 @@ impl pallet_asset_switch::WeightInfo for WeightInfo /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AssetSwitchPool1::PendingSwitchConfirmations` (r:1 w:1) + /// Proof: `AssetSwitchPool1::PendingSwitchConfirmations` (`max_values`: None, `max_size`: Some(666), added: 3141, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (r:1 w:1) + /// Proof: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn switch() -> Weight { // Proof Size summary in bytes: - // Measured: `1045` + // Measured: `1123` // Estimated: `6204` - // Minimum execution time: 1_435_326_000 picoseconds. - Weight::from_parts(1_466_377_000, 0) + // Minimum execution time: 168_286_000 picoseconds. + Weight::from_parts(169_339_000, 0) .saturating_add(Weight::from_parts(0, 6204)) - .saturating_add(T::DbWeight::get().reads(10)) - .saturating_add(T::DbWeight::get().writes(8)) + .saturating_add(T::DbWeight::get().reads(14)) + .saturating_add(T::DbWeight::get().writes(11)) } } @@ -173,6 +187,18 @@ mod tests { ); } #[test] + fn test_force_set_switch_pair() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 1489 + ); + } + #[test] fn test_force_unset_switch_pair() { assert!( ::BlockWeights::get() @@ -181,7 +207,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3376 + > 3424 ); } #[test] @@ -193,7 +219,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3376 + > 3424 ); } #[test] @@ -205,11 +231,11 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3376 + > 3424 ); } #[test] - fn update_remote_xcm_fee() { + fn test_update_remote_xcm_fee() { assert!( ::BlockWeights::get() .per_class @@ -217,7 +243,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3376 + > 3424 ); } #[test] diff --git a/runtimes/peregrine/src/weights/pallet_assets.rs b/runtimes/peregrine/src/weights/pallet_assets.rs index caa46f97c..98dbc143a 100644 --- a/runtimes/peregrine/src/weights/pallet_assets.rs +++ b/runtimes/peregrine/src/weights/pallet_assets.rs @@ -19,27 +19,22 @@ //! Autogenerated weights for `pallet_assets` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-08-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 // Executed Command: -// target/release-unoptimized/kilt-parachain +// ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 -// --chain -// dev -// --pallet -// pallet-assets +// --chain=dev +// --pallet=pallet-assets // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_assets.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -57,8 +52,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `4273` - // Minimum execution time: 7_511_000 picoseconds. - Weight::from_parts(8_022_000, 0) + // Minimum execution time: 12_672_000 picoseconds. + Weight::from_parts(12_945_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -69,8 +64,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `4273` - // Minimum execution time: 7_389_000 picoseconds. - Weight::from_parts(7_993_000, 0) + // Minimum execution time: 12_062_000 picoseconds. + Weight::from_parts(12_503_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -81,8 +76,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `312` // Estimated: `4273` - // Minimum execution time: 7_724_000 picoseconds. - Weight::from_parts(8_024_000, 0) + // Minimum execution time: 12_257_000 picoseconds. + Weight::from_parts(12_471_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -98,11 +93,11 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + c * (212 ±0)` // Estimated: `4273 + c * (3207 ±0)` - // Minimum execution time: 10_650_000 picoseconds. - Weight::from_parts(11_066_000, 0) + // Minimum execution time: 17_086_000 picoseconds. + Weight::from_parts(17_214_000, 0) .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 6_907 - .saturating_add(Weight::from_parts(9_817_244, 0).saturating_mul(c.into())) + // Standard Error: 6_681 + .saturating_add(Weight::from_parts(12_425_945, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -118,11 +113,11 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `447 + a * (86 ±0)` // Estimated: `4273 + a * (3221 ±0)` - // Minimum execution time: 10_767_000 picoseconds. - Weight::from_parts(10_982_000, 0) + // Minimum execution time: 17_716_000 picoseconds. + Weight::from_parts(18_010_000, 0) .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 3_058 - .saturating_add(Weight::from_parts(3_935_847, 0).saturating_mul(a.into())) + // Standard Error: 3_752 + .saturating_add(Weight::from_parts(4_851_467, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -137,8 +132,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 9_031_000 picoseconds. - Weight::from_parts(9_270_000, 0) + // Minimum execution time: 13_889_000 picoseconds. + Weight::from_parts(14_191_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -151,8 +146,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 16_960_000 picoseconds. - Weight::from_parts(17_381_000, 0) + // Minimum execution time: 23_909_000 picoseconds. + Weight::from_parts(24_319_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -165,8 +160,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `384` // Estimated: `4273` - // Minimum execution time: 22_651_000 picoseconds. - Weight::from_parts(23_338_000, 0) + // Minimum execution time: 30_129_000 picoseconds. + Weight::from_parts(30_485_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -181,8 +176,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `436` // Estimated: `7404` - // Minimum execution time: 33_107_000 picoseconds. - Weight::from_parts(33_858_000, 0) + // Minimum execution time: 42_227_000 picoseconds. + Weight::from_parts(42_805_000, 0) .saturating_add(Weight::from_parts(0, 7404)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -197,8 +192,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `436` // Estimated: `7404` - // Minimum execution time: 29_877_000 picoseconds. - Weight::from_parts(30_769_000, 0) + // Minimum execution time: 37_839_000 picoseconds. + Weight::from_parts(38_279_000, 0) .saturating_add(Weight::from_parts(0, 7404)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -213,8 +208,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `436` // Estimated: `7404` - // Minimum execution time: 32_722_000 picoseconds. - Weight::from_parts(33_735_000, 0) + // Minimum execution time: 42_556_000 picoseconds. + Weight::from_parts(43_030_000, 0) .saturating_add(Weight::from_parts(0, 7404)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -227,8 +222,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `384` // Estimated: `4273` - // Minimum execution time: 10_858_000 picoseconds. - Weight::from_parts(11_325_000, 0) + // Minimum execution time: 15_923_000 picoseconds. + Weight::from_parts(16_303_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -241,8 +236,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `384` // Estimated: `4273` - // Minimum execution time: 10_834_000 picoseconds. - Weight::from_parts(11_284_000, 0) + // Minimum execution time: 15_894_000 picoseconds. + Weight::from_parts(16_171_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -253,8 +248,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `312` // Estimated: `4273` - // Minimum execution time: 7_493_000 picoseconds. - Weight::from_parts(7_911_000, 0) + // Minimum execution time: 12_128_000 picoseconds. + Weight::from_parts(12_308_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -265,8 +260,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `312` // Estimated: `4273` - // Minimum execution time: 7_613_000 picoseconds. - Weight::from_parts(7_951_000, 0) + // Minimum execution time: 11_780_000 picoseconds. + Weight::from_parts(12_138_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -279,8 +274,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 9_365_000 picoseconds. - Weight::from_parts(9_594_000, 0) + // Minimum execution time: 14_502_000 picoseconds. + Weight::from_parts(14_941_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -291,8 +286,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 7_928_000 picoseconds. - Weight::from_parts(8_388_000, 0) + // Minimum execution time: 12_792_000 picoseconds. + Weight::from_parts(13_216_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -307,13 +302,13 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 9_177_000 picoseconds. - Weight::from_parts(9_513_737, 0) + // Minimum execution time: 14_503_000 picoseconds. + Weight::from_parts(14_759_823, 0) .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 4_348 - .saturating_add(Weight::from_parts(92_631, 0).saturating_mul(n.into())) - // Standard Error: 4_348 - .saturating_add(Weight::from_parts(76_577, 0).saturating_mul(s.into())) + // Standard Error: 3_490 + .saturating_add(Weight::from_parts(66_568, 0).saturating_mul(n.into())) + // Standard Error: 3_490 + .saturating_add(Weight::from_parts(71_779, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -325,8 +320,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `346` // Estimated: `4273` - // Minimum execution time: 9_824_000 picoseconds. - Weight::from_parts(10_333_000, 0) + // Minimum execution time: 14_533_000 picoseconds. + Weight::from_parts(14_911_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -341,13 +336,13 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `117` // Estimated: `4273` - // Minimum execution time: 8_095_000 picoseconds. - Weight::from_parts(8_730_911, 0) + // Minimum execution time: 13_024_000 picoseconds. + Weight::from_parts(13_399_435, 0) .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 4_722 - .saturating_add(Weight::from_parts(39_054, 0).saturating_mul(n.into())) - // Standard Error: 4_722 - .saturating_add(Weight::from_parts(70_013, 0).saturating_mul(s.into())) + // Standard Error: 3_371 + .saturating_add(Weight::from_parts(75_489, 0).saturating_mul(n.into())) + // Standard Error: 3_371 + .saturating_add(Weight::from_parts(54_970, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -359,8 +354,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `346` // Estimated: `4273` - // Minimum execution time: 9_583_000 picoseconds. - Weight::from_parts(9_811_000, 0) + // Minimum execution time: 14_211_000 picoseconds. + Weight::from_parts(14_551_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -371,8 +366,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 7_572_000 picoseconds. - Weight::from_parts(7_975_000, 0) + // Minimum execution time: 11_999_000 picoseconds. + Weight::from_parts(12_327_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -385,8 +380,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `312` // Estimated: `4273` - // Minimum execution time: 12_806_000 picoseconds. - Weight::from_parts(13_339_000, 0) + // Minimum execution time: 18_632_000 picoseconds. + Weight::from_parts(18_941_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -403,8 +398,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `604` // Estimated: `7404` - // Minimum execution time: 41_589_000 picoseconds. - Weight::from_parts(42_096_000, 0) + // Minimum execution time: 51_322_000 picoseconds. + Weight::from_parts(51_787_000, 0) .saturating_add(Weight::from_parts(0, 7404)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -417,8 +412,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `480` // Estimated: `4273` - // Minimum execution time: 14_768_000 picoseconds. - Weight::from_parts(15_253_000, 0) + // Minimum execution time: 20_908_000 picoseconds. + Weight::from_parts(21_132_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -431,8 +426,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `480` // Estimated: `4273` - // Minimum execution time: 14_912_000 picoseconds. - Weight::from_parts(15_381_000, 0) + // Minimum execution time: 21_140_000 picoseconds. + Weight::from_parts(21_544_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -443,8 +438,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 8_518_000 picoseconds. - Weight::from_parts(8_741_000, 0) + // Minimum execution time: 12_999_000 picoseconds. + Weight::from_parts(13_485_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -457,8 +452,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 13_139_000 picoseconds. - Weight::from_parts(13_604_000, 0) + // Minimum execution time: 18_969_000 picoseconds. + Weight::from_parts(19_177_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -471,8 +466,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 12_159_000 picoseconds. - Weight::from_parts(12_811_000, 0) + // Minimum execution time: 17_969_000 picoseconds. + Weight::from_parts(18_305_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -485,8 +480,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `402` // Estimated: `4273` - // Minimum execution time: 11_554_000 picoseconds. - Weight::from_parts(11_897_000, 0) + // Minimum execution time: 16_021_000 picoseconds. + Weight::from_parts(16_434_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -499,8 +494,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `435` // Estimated: `4273` - // Minimum execution time: 11_645_000 picoseconds. - Weight::from_parts(11_851_000, 0) + // Minimum execution time: 15_352_000 picoseconds. + Weight::from_parts(15_677_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -513,8 +508,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `384` // Estimated: `4273` - // Minimum execution time: 10_550_000 picoseconds. - Weight::from_parts(10_923_000, 0) + // Minimum execution time: 15_869_000 picoseconds. + Weight::from_parts(16_211_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtimes/peregrine/src/weights/pallet_balances.rs b/runtimes/peregrine/src/weights/pallet_balances.rs index ffda812b1..0d3d0e951 100644 --- a/runtimes/peregrine/src/weights/pallet_balances.rs +++ b/runtimes/peregrine/src/weights/pallet_balances.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-balances // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_balances.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +52,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107` // Estimated: `6204` - // Minimum execution time: 57_680_000 picoseconds. - Weight::from_parts(58_518_000, 0) + // Minimum execution time: 57_986_000 picoseconds. + Weight::from_parts(58_914_000, 0) .saturating_add(Weight::from_parts(0, 6204)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -67,8 +64,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3597` - // Minimum execution time: 36_421_000 picoseconds. - Weight::from_parts(37_217_000, 0) + // Minimum execution time: 36_675_000 picoseconds. + Weight::from_parts(37_050_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -79,8 +76,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `178` // Estimated: `3597` - // Minimum execution time: 15_716_000 picoseconds. - Weight::from_parts(16_230_000, 0) + // Minimum execution time: 15_615_000 picoseconds. + Weight::from_parts(15_918_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -91,8 +88,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `178` // Estimated: `3597` - // Minimum execution time: 21_093_000 picoseconds. - Weight::from_parts(21_350_000, 0) + // Minimum execution time: 21_006_000 picoseconds. + Weight::from_parts(21_513_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -103,8 +100,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `214` // Estimated: `8811` - // Minimum execution time: 60_396_000 picoseconds. - Weight::from_parts(61_513_000, 0) + // Minimum execution time: 60_638_000 picoseconds. + Weight::from_parts(61_695_000, 0) .saturating_add(Weight::from_parts(0, 8811)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -115,8 +112,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3597` - // Minimum execution time: 45_008_000 picoseconds. - Weight::from_parts(45_809_000, 0) + // Minimum execution time: 44_936_000 picoseconds. + Weight::from_parts(45_419_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -127,8 +124,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `178` // Estimated: `3597` - // Minimum execution time: 17_799_000 picoseconds. - Weight::from_parts(18_465_000, 0) + // Minimum execution time: 17_976_000 picoseconds. + Weight::from_parts(18_441_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -140,11 +137,11 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + u * (140 ±0)` // Estimated: `990 + u * (2607 ±0)` - // Minimum execution time: 17_365_000 picoseconds. - Weight::from_parts(17_698_000, 0) + // Minimum execution time: 17_051_000 picoseconds. + Weight::from_parts(17_224_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 10_091 - .saturating_add(Weight::from_parts(12_523_656, 0).saturating_mul(u.into())) + // Standard Error: 9_717 + .saturating_add(Weight::from_parts(12_508_679, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2607).saturating_mul(u.into())) @@ -155,8 +152,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1501` - // Minimum execution time: 6_558_000 picoseconds. - Weight::from_parts(6_815_000, 0) + // Minimum execution time: 6_748_000 picoseconds. + Weight::from_parts(6_873_000, 0) .saturating_add(Weight::from_parts(0, 1501)) .saturating_add(T::DbWeight::get().reads(1)) } diff --git a/runtimes/peregrine/src/weights/pallet_collective_council.rs b/runtimes/peregrine/src/weights/pallet_collective_council.rs index 0d20a5914..b1ded7f3b 100644 --- a/runtimes/peregrine/src/weights/pallet_collective_council.rs +++ b/runtimes/peregrine/src/weights/pallet_collective_council.rs @@ -19,24 +19,21 @@ //! Autogenerated weights for `pallet_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-08-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 // Executed Command: // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-collective // --extrinsic=* +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs // --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] @@ -67,13 +64,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3194 ±0)` // Estimated: `15736 + m * (1967 ±16) + p * (4336 ±16)` - // Minimum execution time: 9_109_000 picoseconds. - Weight::from_parts(9_418_000, 0) + // Minimum execution time: 17_333_000 picoseconds. + Weight::from_parts(17_675_000, 0) .saturating_add(Weight::from_parts(0, 15736)) - // Standard Error: 22_204 - .saturating_add(Weight::from_parts(2_365_752, 0).saturating_mul(m.into())) - // Standard Error: 22_204 - .saturating_add(Weight::from_parts(4_463_067, 0).saturating_mul(p.into())) + // Standard Error: 48_890 + .saturating_add(Weight::from_parts(5_658_592, 0).saturating_mul(m.into())) + // Standard Error: 48_890 + .saturating_add(Weight::from_parts(8_142_845, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -91,13 +88,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69 + m * (32 ±0)` // Estimated: `1555 + m * (32 ±0)` - // Minimum execution time: 6_912_000 picoseconds. - Weight::from_parts(6_602_454, 0) + // Minimum execution time: 14_537_000 picoseconds. + Weight::from_parts(13_645_401, 0) .saturating_add(Weight::from_parts(0, 1555)) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_002, 0).saturating_mul(b.into())) - // Standard Error: 148 - .saturating_add(Weight::from_parts(8_521, 0).saturating_mul(m.into())) + // Standard Error: 12 + .saturating_add(Weight::from_parts(1_539, 0).saturating_mul(b.into())) + // Standard Error: 132 + .saturating_add(Weight::from_parts(17_018, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -113,13 +110,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69 + m * (32 ±0)` // Estimated: `3535 + m * (32 ±0)` - // Minimum execution time: 8_210_000 picoseconds. - Weight::from_parts(7_713_293, 0) + // Minimum execution time: 17_233_000 picoseconds. + Weight::from_parts(16_397_123, 0) .saturating_add(Weight::from_parts(0, 3535)) - // Standard Error: 17 - .saturating_add(Weight::from_parts(1_075, 0).saturating_mul(b.into())) - // Standard Error: 178 - .saturating_add(Weight::from_parts(14_181, 0).saturating_mul(m.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(1_453, 0).saturating_mul(b.into())) + // Standard Error: 161 + .saturating_add(Weight::from_parts(26_126, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -143,15 +140,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `359 + m * (32 ±0) + p * (36 ±0)` // Estimated: `3751 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 10_937_000 picoseconds. - Weight::from_parts(11_241_511, 0) + // Minimum execution time: 22_637_000 picoseconds. + Weight::from_parts(23_075_675, 0) .saturating_add(Weight::from_parts(0, 3751)) - // Standard Error: 42 - .saturating_add(Weight::from_parts(1_778, 0).saturating_mul(b.into())) - // Standard Error: 441 - .saturating_add(Weight::from_parts(15_139, 0).saturating_mul(m.into())) - // Standard Error: 436 - .saturating_add(Weight::from_parts(113_658, 0).saturating_mul(p.into())) + // Standard Error: 47 + .saturating_add(Weight::from_parts(2_460, 0).saturating_mul(b.into())) + // Standard Error: 493 + .saturating_add(Weight::from_parts(17_530, 0).saturating_mul(m.into())) + // Standard Error: 487 + .saturating_add(Weight::from_parts(131_625, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) @@ -167,11 +164,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `812 + m * (64 ±0)` // Estimated: `4276 + m * (64 ±0)` - // Minimum execution time: 12_611_000 picoseconds. - Weight::from_parts(13_405_315, 0) + // Minimum execution time: 20_827_000 picoseconds. + Weight::from_parts(21_327_066, 0) .saturating_add(Weight::from_parts(0, 4276)) - // Standard Error: 255 - .saturating_add(Weight::from_parts(21_472, 0).saturating_mul(m.into())) + // Standard Error: 186 + .saturating_add(Weight::from_parts(32_561, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -192,13 +189,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `401 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3846 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 12_969_000 picoseconds. - Weight::from_parts(13_065_552, 0) + // Minimum execution time: 24_682_000 picoseconds. + Weight::from_parts(25_454_627, 0) .saturating_add(Weight::from_parts(0, 3846)) - // Standard Error: 509 - .saturating_add(Weight::from_parts(25_389, 0).saturating_mul(m.into())) - // Standard Error: 497 - .saturating_add(Weight::from_parts(110_113, 0).saturating_mul(p.into())) + // Standard Error: 385 + .saturating_add(Weight::from_parts(21_376, 0).saturating_mul(m.into())) + // Standard Error: 375 + .saturating_add(Weight::from_parts(122_449, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -222,15 +219,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `703 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4020 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 18_256_000 picoseconds. - Weight::from_parts(20_094_140, 0) + // Minimum execution time: 35_229_000 picoseconds. + Weight::from_parts(36_557_867, 0) .saturating_add(Weight::from_parts(0, 4020)) - // Standard Error: 83 - .saturating_add(Weight::from_parts(1_077, 0).saturating_mul(b.into())) - // Standard Error: 881 - .saturating_add(Weight::from_parts(3_161, 0).saturating_mul(m.into())) - // Standard Error: 859 - .saturating_add(Weight::from_parts(140_431, 0).saturating_mul(p.into())) + // Standard Error: 125 + .saturating_add(Weight::from_parts(2_292, 0).saturating_mul(b.into())) + // Standard Error: 1_289 + .saturating_add(Weight::from_parts(159_177, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -255,13 +250,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `421 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3866 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 13_836_000 picoseconds. - Weight::from_parts(14_266_023, 0) + // Minimum execution time: 26_919_000 picoseconds. + Weight::from_parts(27_154_155, 0) .saturating_add(Weight::from_parts(0, 3866)) - // Standard Error: 397 - .saturating_add(Weight::from_parts(21_338, 0).saturating_mul(m.into())) - // Standard Error: 387 - .saturating_add(Weight::from_parts(112_270, 0).saturating_mul(p.into())) + // Standard Error: 396 + .saturating_add(Weight::from_parts(27_361, 0).saturating_mul(m.into())) + // Standard Error: 386 + .saturating_add(Weight::from_parts(123_861, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -287,15 +282,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `723 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4040 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 19_289_000 picoseconds. - Weight::from_parts(20_296_061, 0) + // Minimum execution time: 36_708_000 picoseconds. + Weight::from_parts(38_673_280, 0) .saturating_add(Weight::from_parts(0, 4040)) - // Standard Error: 81 - .saturating_add(Weight::from_parts(1_871, 0).saturating_mul(b.into())) - // Standard Error: 856 - .saturating_add(Weight::from_parts(4_275, 0).saturating_mul(m.into())) - // Standard Error: 835 - .saturating_add(Weight::from_parts(144_231, 0).saturating_mul(p.into())) + // Standard Error: 128 + .saturating_add(Weight::from_parts(2_223, 0).saturating_mul(b.into())) + // Standard Error: 1_326 + .saturating_add(Weight::from_parts(159_680, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -314,11 +307,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `226 + p * (32 ±0)` // Estimated: `1711 + p * (32 ±0)` - // Minimum execution time: 6_650_000 picoseconds. - Weight::from_parts(7_941_746, 0) + // Minimum execution time: 14_178_000 picoseconds. + Weight::from_parts(15_937_576, 0) .saturating_add(Weight::from_parts(0, 1711)) - // Standard Error: 337 - .saturating_add(Weight::from_parts(96_988, 0).saturating_mul(p.into())) + // Standard Error: 386 + .saturating_add(Weight::from_parts(119_797, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) diff --git a/runtimes/peregrine/src/weights/pallet_collective_technical_committee.rs b/runtimes/peregrine/src/weights/pallet_collective_technical_committee.rs index a1617ccae..c9e020b39 100644 --- a/runtimes/peregrine/src/weights/pallet_collective_technical_committee.rs +++ b/runtimes/peregrine/src/weights/pallet_collective_technical_committee.rs @@ -19,24 +19,21 @@ //! Autogenerated weights for `pallet_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-08-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 // Executed Command: // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-collective // --extrinsic=* +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs // --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] @@ -67,13 +64,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3194 ±0)` // Estimated: `15770 + m * (1967 ±16) + p * (4336 ±16)` - // Minimum execution time: 8_938_000 picoseconds. - Weight::from_parts(9_304_000, 0) + // Minimum execution time: 17_312_000 picoseconds. + Weight::from_parts(17_546_000, 0) .saturating_add(Weight::from_parts(0, 15770)) - // Standard Error: 23_884 - .saturating_add(Weight::from_parts(2_555_049, 0).saturating_mul(m.into())) - // Standard Error: 23_884 - .saturating_add(Weight::from_parts(4_568_397, 0).saturating_mul(p.into())) + // Standard Error: 50_199 + .saturating_add(Weight::from_parts(5_852_087, 0).saturating_mul(m.into())) + // Standard Error: 50_199 + .saturating_add(Weight::from_parts(8_351_342, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -91,13 +88,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103 + m * (32 ±0)` // Estimated: `1589 + m * (32 ±0)` - // Minimum execution time: 6_948_000 picoseconds. - Weight::from_parts(6_619_520, 0) + // Minimum execution time: 14_826_000 picoseconds. + Weight::from_parts(13_822_055, 0) .saturating_add(Weight::from_parts(0, 1589)) - // Standard Error: 12 - .saturating_add(Weight::from_parts(989, 0).saturating_mul(b.into())) - // Standard Error: 128 - .saturating_add(Weight::from_parts(7_990, 0).saturating_mul(m.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_545, 0).saturating_mul(b.into())) + // Standard Error: 101 + .saturating_add(Weight::from_parts(15_811, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -113,13 +110,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103 + m * (32 ±0)` // Estimated: `3569 + m * (32 ±0)` - // Minimum execution time: 8_195_000 picoseconds. - Weight::from_parts(7_708_951, 0) + // Minimum execution time: 17_444_000 picoseconds. + Weight::from_parts(16_480_100, 0) .saturating_add(Weight::from_parts(0, 3569)) - // Standard Error: 13 - .saturating_add(Weight::from_parts(1_041, 0).saturating_mul(b.into())) - // Standard Error: 143 - .saturating_add(Weight::from_parts(13_823, 0).saturating_mul(m.into())) + // Standard Error: 10 + .saturating_add(Weight::from_parts(1_417, 0).saturating_mul(b.into())) + // Standard Error: 104 + .saturating_add(Weight::from_parts(26_107, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -143,15 +140,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `393 + m * (32 ±0) + p * (36 ±0)` // Estimated: `3785 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 11_255_000 picoseconds. - Weight::from_parts(11_184_069, 0) + // Minimum execution time: 22_894_000 picoseconds. + Weight::from_parts(23_258_579, 0) .saturating_add(Weight::from_parts(0, 3785)) - // Standard Error: 40 - .saturating_add(Weight::from_parts(1_759, 0).saturating_mul(b.into())) - // Standard Error: 418 - .saturating_add(Weight::from_parts(15_531, 0).saturating_mul(m.into())) - // Standard Error: 412 - .saturating_add(Weight::from_parts(114_209, 0).saturating_mul(p.into())) + // Standard Error: 46 + .saturating_add(Weight::from_parts(2_439, 0).saturating_mul(b.into())) + // Standard Error: 490 + .saturating_add(Weight::from_parts(18_122, 0).saturating_mul(m.into())) + // Standard Error: 483 + .saturating_add(Weight::from_parts(132_354, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) @@ -167,11 +164,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `846 + m * (64 ±0)` // Estimated: `4310 + m * (64 ±0)` - // Minimum execution time: 12_698_000 picoseconds. - Weight::from_parts(13_416_646, 0) + // Minimum execution time: 20_991_000 picoseconds. + Weight::from_parts(21_567_163, 0) .saturating_add(Weight::from_parts(0, 4310)) - // Standard Error: 237 - .saturating_add(Weight::from_parts(20_581, 0).saturating_mul(m.into())) + // Standard Error: 192 + .saturating_add(Weight::from_parts(31_939, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -192,13 +189,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `435 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3880 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 13_050_000 picoseconds. - Weight::from_parts(13_115_665, 0) + // Minimum execution time: 24_880_000 picoseconds. + Weight::from_parts(25_827_944, 0) .saturating_add(Weight::from_parts(0, 3880)) - // Standard Error: 495 - .saturating_add(Weight::from_parts(24_190, 0).saturating_mul(m.into())) - // Standard Error: 483 - .saturating_add(Weight::from_parts(109_525, 0).saturating_mul(p.into())) + // Standard Error: 381 + .saturating_add(Weight::from_parts(20_566, 0).saturating_mul(m.into())) + // Standard Error: 371 + .saturating_add(Weight::from_parts(121_791, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -222,15 +219,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `737 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4054 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 18_600_000 picoseconds. - Weight::from_parts(20_000_597, 0) + // Minimum execution time: 35_322_000 picoseconds. + Weight::from_parts(36_663_246, 0) .saturating_add(Weight::from_parts(0, 4054)) - // Standard Error: 83 - .saturating_add(Weight::from_parts(1_128, 0).saturating_mul(b.into())) - // Standard Error: 882 - .saturating_add(Weight::from_parts(4_331, 0).saturating_mul(m.into())) - // Standard Error: 860 - .saturating_add(Weight::from_parts(140_064, 0).saturating_mul(p.into())) + // Standard Error: 121 + .saturating_add(Weight::from_parts(2_290, 0).saturating_mul(b.into())) + // Standard Error: 1_247 + .saturating_add(Weight::from_parts(159_038, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -255,13 +250,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `455 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3900 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 14_181_000 picoseconds. - Weight::from_parts(14_468_852, 0) + // Minimum execution time: 27_338_000 picoseconds. + Weight::from_parts(27_542_685, 0) .saturating_add(Weight::from_parts(0, 3900)) - // Standard Error: 396 - .saturating_add(Weight::from_parts(20_054, 0).saturating_mul(m.into())) - // Standard Error: 386 - .saturating_add(Weight::from_parts(110_460, 0).saturating_mul(p.into())) + // Standard Error: 387 + .saturating_add(Weight::from_parts(26_189, 0).saturating_mul(m.into())) + // Standard Error: 377 + .saturating_add(Weight::from_parts(124_013, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -287,15 +282,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `757 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4074 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 19_563_000 picoseconds. - Weight::from_parts(20_320_995, 0) + // Minimum execution time: 37_092_000 picoseconds. + Weight::from_parts(38_912_712, 0) .saturating_add(Weight::from_parts(0, 4074)) - // Standard Error: 81 - .saturating_add(Weight::from_parts(1_809, 0).saturating_mul(b.into())) - // Standard Error: 864 - .saturating_add(Weight::from_parts(3_798, 0).saturating_mul(m.into())) - // Standard Error: 842 - .saturating_add(Weight::from_parts(144_696, 0).saturating_mul(p.into())) + // Standard Error: 124 + .saturating_add(Weight::from_parts(2_062, 0).saturating_mul(b.into())) + // Standard Error: 1_287 + .saturating_add(Weight::from_parts(158_614, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -314,11 +307,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `260 + p * (32 ±0)` // Estimated: `1745 + p * (32 ±0)` - // Minimum execution time: 6_792_000 picoseconds. - Weight::from_parts(7_993_416, 0) + // Minimum execution time: 14_275_000 picoseconds. + Weight::from_parts(16_164_317, 0) .saturating_add(Weight::from_parts(0, 1745)) - // Standard Error: 335 - .saturating_add(Weight::from_parts(96_207, 0).saturating_mul(p.into())) + // Standard Error: 420 + .saturating_add(Weight::from_parts(120_794, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) diff --git a/runtimes/peregrine/src/weights/pallet_democracy.rs b/runtimes/peregrine/src/weights/pallet_democracy.rs index f98779bef..a41317a17 100644 --- a/runtimes/peregrine/src/weights/pallet_democracy.rs +++ b/runtimes/peregrine/src/weights/pallet_democracy.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_democracy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-democracy // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_democracy.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -61,8 +58,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4738` // Estimated: `18187` - // Minimum execution time: 37_810_000 picoseconds. - Weight::from_parts(38_244_000, 0) + // Minimum execution time: 38_240_000 picoseconds. + Weight::from_parts(38_775_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -73,8 +70,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3493` // Estimated: `6695` - // Minimum execution time: 35_733_000 picoseconds. - Weight::from_parts(36_270_000, 0) + // Minimum execution time: 36_296_000 picoseconds. + Weight::from_parts(36_850_000, 0) .saturating_add(Weight::from_parts(0, 6695)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -91,8 +88,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3475` // Estimated: `7264` - // Minimum execution time: 49_425_000 picoseconds. - Weight::from_parts(50_168_000, 0) + // Minimum execution time: 50_030_000 picoseconds. + Weight::from_parts(50_836_000, 0) .saturating_add(Weight::from_parts(0, 7264)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -109,8 +106,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3497` // Estimated: `7264` - // Minimum execution time: 51_698_000 picoseconds. - Weight::from_parts(52_387_000, 0) + // Minimum execution time: 52_926_000 picoseconds. + Weight::from_parts(53_550_000, 0) .saturating_add(Weight::from_parts(0, 7264)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -125,8 +122,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `307` // Estimated: `3674` - // Minimum execution time: 24_459_000 picoseconds. - Weight::from_parts(25_024_000, 0) + // Minimum execution time: 25_420_000 picoseconds. + Weight::from_parts(25_663_000, 0) .saturating_add(Weight::from_parts(0, 3674)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -149,8 +146,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `5999` // Estimated: `18187` - // Minimum execution time: 93_232_000 picoseconds. - Weight::from_parts(95_242_000, 0) + // Minimum execution time: 95_987_000 picoseconds. + Weight::from_parts(96_973_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(8)) @@ -163,8 +160,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3353` // Estimated: `6707` - // Minimum execution time: 12_945_000 picoseconds. - Weight::from_parts(13_531_000, 0) + // Minimum execution time: 12_734_000 picoseconds. + Weight::from_parts(13_282_000, 0) .saturating_add(Weight::from_parts(0, 6707)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -175,8 +172,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_979_000 picoseconds. - Weight::from_parts(3_087_000, 0) + // Minimum execution time: 2_985_000 picoseconds. + Weight::from_parts(3_071_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -186,8 +183,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_904_000 picoseconds. - Weight::from_parts(3_032_000, 0) + // Minimum execution time: 3_022_000 picoseconds. + Weight::from_parts(3_181_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -203,8 +200,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `3518` - // Minimum execution time: 23_538_000 picoseconds. - Weight::from_parts(24_008_000, 0) + // Minimum execution time: 24_222_000 picoseconds. + Weight::from_parts(24_581_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(5)) @@ -219,8 +216,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3456` // Estimated: `6707` - // Minimum execution time: 27_422_000 picoseconds. - Weight::from_parts(27_731_000, 0) + // Minimum execution time: 27_755_000 picoseconds. + Weight::from_parts(28_232_000, 0) .saturating_add(Weight::from_parts(0, 6707)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -237,8 +234,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `5902` // Estimated: `18187` - // Minimum execution time: 78_910_000 picoseconds. - Weight::from_parts(80_065_000, 0) + // Minimum execution time: 79_704_000 picoseconds. + Weight::from_parts(80_170_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -251,8 +248,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `204` // Estimated: `3518` - // Minimum execution time: 17_492_000 picoseconds. - Weight::from_parts(17_789_000, 0) + // Minimum execution time: 18_298_000 picoseconds. + Weight::from_parts(18_668_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -268,11 +265,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `177 + r * (94 ±0)` // Estimated: `1489 + r * (2684 ±0)` - // Minimum execution time: 5_669_000 picoseconds. - Weight::from_parts(9_140_297, 0) + // Minimum execution time: 5_785_000 picoseconds. + Weight::from_parts(9_069_081, 0) .saturating_add(Weight::from_parts(0, 1489)) - // Standard Error: 6_433 - .saturating_add(Weight::from_parts(2_864_062, 0).saturating_mul(r.into())) + // Standard Error: 5_573 + .saturating_add(Weight::from_parts(2_839_361, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -295,11 +292,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `177 + r * (94 ±0)` // Estimated: `18187 + r * (2684 ±0)` - // Minimum execution time: 8_023_000 picoseconds. - Weight::from_parts(11_420_577, 0) + // Minimum execution time: 8_025_000 picoseconds. + Weight::from_parts(11_525_584, 0) .saturating_add(Weight::from_parts(0, 18187)) - // Standard Error: 6_142 - .saturating_add(Weight::from_parts(2_872_698, 0).saturating_mul(r.into())) + // Standard Error: 5_797 + .saturating_add(Weight::from_parts(2_855_908, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -318,11 +315,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `839 + r * (116 ±0)` // Estimated: `19812 + r * (2684 ±0)` - // Minimum execution time: 42_174_000 picoseconds. - Weight::from_parts(48_592_626, 0) + // Minimum execution time: 41_691_000 picoseconds. + Weight::from_parts(48_427_977, 0) .saturating_add(Weight::from_parts(0, 19812)) - // Standard Error: 6_937 - .saturating_add(Weight::from_parts(3_703_869, 0).saturating_mul(r.into())) + // Standard Error: 6_635 + .saturating_add(Weight::from_parts(3_653_757, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -338,11 +335,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `434 + r * (116 ±0)` // Estimated: `13538 + r * (2684 ±0)` - // Minimum execution time: 19_671_000 picoseconds. - Weight::from_parts(22_169_927, 0) + // Minimum execution time: 19_624_000 picoseconds. + Weight::from_parts(22_179_399, 0) .saturating_add(Weight::from_parts(0, 13538)) - // Standard Error: 6_629 - .saturating_add(Weight::from_parts(3_658_094, 0).saturating_mul(r.into())) + // Standard Error: 5_919 + .saturating_add(Weight::from_parts(3_643_235, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -355,8 +352,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_184_000 picoseconds. - Weight::from_parts(3_384_000, 0) + // Minimum execution time: 3_127_000 picoseconds. + Weight::from_parts(3_235_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -373,11 +370,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `484` // Estimated: `7264` - // Minimum execution time: 23_557_000 picoseconds. - Weight::from_parts(33_577_642, 0) + // Minimum execution time: 23_515_000 picoseconds. + Weight::from_parts(33_941_281, 0) .saturating_add(Weight::from_parts(0, 7264)) - // Standard Error: 2_265 - .saturating_add(Weight::from_parts(35_028, 0).saturating_mul(r.into())) + // Standard Error: 2_323 + .saturating_add(Weight::from_parts(35_915, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -394,11 +391,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `485 + r * (22 ±0)` // Estimated: `7264` - // Minimum execution time: 32_888_000 picoseconds. - Weight::from_parts(34_545_478, 0) + // Minimum execution time: 32_931_000 picoseconds. + Weight::from_parts(34_732_730, 0) .saturating_add(Weight::from_parts(0, 7264)) - // Standard Error: 672 - .saturating_add(Weight::from_parts(62_263, 0).saturating_mul(r.into())) + // Standard Error: 658 + .saturating_add(Weight::from_parts(66_213, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -411,11 +408,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `673 + r * (26 ±0)` // Estimated: `7264` - // Minimum execution time: 16_972_000 picoseconds. - Weight::from_parts(19_710_191, 0) + // Minimum execution time: 17_055_000 picoseconds. + Weight::from_parts(19_730_783, 0) .saturating_add(Weight::from_parts(0, 7264)) - // Standard Error: 1_020 - .saturating_add(Weight::from_parts(68_259, 0).saturating_mul(r.into())) + // Standard Error: 977 + .saturating_add(Weight::from_parts(71_529, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -428,11 +425,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `673 + r * (26 ±0)` // Estimated: `7264` - // Minimum execution time: 17_055_000 picoseconds. - Weight::from_parts(19_833_390, 0) + // Minimum execution time: 17_179_000 picoseconds. + Weight::from_parts(19_845_078, 0) .saturating_add(Weight::from_parts(0, 7264)) - // Standard Error: 1_065 - .saturating_add(Weight::from_parts(71_214, 0).saturating_mul(r.into())) + // Standard Error: 953 + .saturating_add(Weight::from_parts(72_492, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -448,8 +445,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `356` // Estimated: `3556` - // Minimum execution time: 18_410_000 picoseconds. - Weight::from_parts(18_909_000, 0) + // Minimum execution time: 18_860_000 picoseconds. + Weight::from_parts(19_209_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -462,8 +459,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `3518` - // Minimum execution time: 15_561_000 picoseconds. - Weight::from_parts(15_873_000, 0) + // Minimum execution time: 15_835_000 picoseconds. + Weight::from_parts(16_231_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -480,8 +477,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4888` // Estimated: `18187` - // Minimum execution time: 38_177_000 picoseconds. - Weight::from_parts(38_935_000, 0) + // Minimum execution time: 38_259_000 picoseconds. + Weight::from_parts(38_834_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -494,8 +491,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4755` // Estimated: `18187` - // Minimum execution time: 34_101_000 picoseconds. - Weight::from_parts(34_544_000, 0) + // Minimum execution time: 34_316_000 picoseconds. + Weight::from_parts(34_782_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -510,8 +507,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3556` - // Minimum execution time: 15_654_000 picoseconds. - Weight::from_parts(15_946_000, 0) + // Minimum execution time: 15_985_000 picoseconds. + Weight::from_parts(16_256_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -524,8 +521,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `239` // Estimated: `3674` - // Minimum execution time: 17_949_000 picoseconds. - Weight::from_parts(18_489_000, 0) + // Minimum execution time: 18_425_000 picoseconds. + Weight::from_parts(18_719_000, 0) .saturating_add(Weight::from_parts(0, 3674)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtimes/peregrine/src/weights/pallet_deposit_storage.rs b/runtimes/peregrine/src/weights/pallet_deposit_storage.rs index 78778127e..c957153d9 100644 --- a/runtimes/peregrine/src/weights/pallet_deposit_storage.rs +++ b/runtimes/peregrine/src/weights/pallet_deposit_storage.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_deposit_storage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-deposit-storage // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_deposit_storage.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -61,8 +58,8 @@ impl pallet_deposit_storage::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `577` // Estimated: `3658` - // Minimum execution time: 49_261_000 picoseconds. - Weight::from_parts(49_729_000, 0) + // Minimum execution time: 50_424_000 picoseconds. + Weight::from_parts(50_921_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtimes/peregrine/src/weights/pallet_did_lookup.rs b/runtimes/peregrine/src/weights/pallet_did_lookup.rs index fdd0b6298..bbc945013 100644 --- a/runtimes/peregrine/src/weights/pallet_did_lookup.rs +++ b/runtimes/peregrine/src/weights/pallet_did_lookup.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_did_lookup` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-did-lookup // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_did_lookup.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -63,8 +60,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3658` - // Minimum execution time: 127_399_000 picoseconds. - Weight::from_parts(128_343_000, 0) + // Minimum execution time: 128_590_000 picoseconds. + Weight::from_parts(129_633_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(6)) @@ -83,8 +80,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3658` - // Minimum execution time: 140_373_000 picoseconds. - Weight::from_parts(142_236_000, 0) + // Minimum execution time: 142_564_000 picoseconds. + Weight::from_parts(143_367_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(6)) @@ -103,8 +100,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3658` - // Minimum execution time: 131_340_000 picoseconds. - Weight::from_parts(133_723_000, 0) + // Minimum execution time: 131_873_000 picoseconds. + Weight::from_parts(136_584_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(6)) @@ -123,8 +120,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `449` // Estimated: `3658` - // Minimum execution time: 132_297_000 picoseconds. - Weight::from_parts(134_225_000, 0) + // Minimum execution time: 133_970_000 picoseconds. + Weight::from_parts(134_958_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(6)) @@ -143,8 +140,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3658` - // Minimum execution time: 82_978_000 picoseconds. - Weight::from_parts(85_676_000, 0) + // Minimum execution time: 83_680_000 picoseconds. + Weight::from_parts(84_518_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(6)) @@ -163,8 +160,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `540` // Estimated: `3658` - // Minimum execution time: 47_480_000 picoseconds. - Weight::from_parts(48_148_000, 0) + // Minimum execution time: 48_244_000 picoseconds. + Weight::from_parts(48_784_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -183,8 +180,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `540` // Estimated: `3658` - // Minimum execution time: 48_550_000 picoseconds. - Weight::from_parts(49_242_000, 0) + // Minimum execution time: 49_700_000 picoseconds. + Weight::from_parts(50_416_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -201,8 +198,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `647` // Estimated: `6326` - // Minimum execution time: 77_392_000 picoseconds. - Weight::from_parts(79_999_000, 0) + // Minimum execution time: 78_353_000 picoseconds. + Weight::from_parts(78_897_000, 0) .saturating_add(Weight::from_parts(0, 6326)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -219,8 +216,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `540` // Estimated: `3658` - // Minimum execution time: 71_171_000 picoseconds. - Weight::from_parts(72_100_000, 0) + // Minimum execution time: 72_246_000 picoseconds. + Weight::from_parts(73_118_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtimes/peregrine/src/weights/pallet_dip_provider.rs b/runtimes/peregrine/src/weights/pallet_dip_provider.rs index ef232a603..3d68ab3aa 100644 --- a/runtimes/peregrine/src/weights/pallet_dip_provider.rs +++ b/runtimes/peregrine/src/weights/pallet_dip_provider.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_dip_provider` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-dip-provider // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_dip_provider.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -69,10 +66,10 @@ impl pallet_dip_provider::WeightInfo for WeightInfo /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn commit_identity() -> Weight { // Proof Size summary in bytes: - // Measured: `2990` + // Measured: `3026` // Estimated: `29282` - // Minimum execution time: 387_079_000 picoseconds. - Weight::from_parts(396_068_000, 0) + // Minimum execution time: 382_665_000 picoseconds. + Weight::from_parts(388_387_000, 0) .saturating_add(Weight::from_parts(0, 29282)) .saturating_add(T::DbWeight::get().reads(19)) .saturating_add(T::DbWeight::get().writes(4)) @@ -89,8 +86,8 @@ impl pallet_dip_provider::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `671` // Estimated: `3658` - // Minimum execution time: 54_311_000 picoseconds. - Weight::from_parts(55_995_000, 0) + // Minimum execution time: 55_775_000 picoseconds. + Weight::from_parts(56_444_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtimes/peregrine/src/weights/pallet_indices.rs b/runtimes/peregrine/src/weights/pallet_indices.rs index fe625e87d..b041301a8 100644 --- a/runtimes/peregrine/src/weights/pallet_indices.rs +++ b/runtimes/peregrine/src/weights/pallet_indices.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_indices` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-indices // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_indices.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +52,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `3538` - // Minimum execution time: 21_558_000 picoseconds. - Weight::from_parts(21_795_000, 0) + // Minimum execution time: 23_309_000 picoseconds. + Weight::from_parts(23_599_000, 0) .saturating_add(Weight::from_parts(0, 3538)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -69,8 +66,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `249` // Estimated: `3597` - // Minimum execution time: 32_735_000 picoseconds. - Weight::from_parts(33_311_000, 0) + // Minimum execution time: 34_197_000 picoseconds. + Weight::from_parts(34_619_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -81,8 +78,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3538` - // Minimum execution time: 21_836_000 picoseconds. - Weight::from_parts(22_176_000, 0) + // Minimum execution time: 23_509_000 picoseconds. + Weight::from_parts(23_867_000, 0) .saturating_add(Weight::from_parts(0, 3538)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -95,8 +92,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `249` // Estimated: `3597` - // Minimum execution time: 24_857_000 picoseconds. - Weight::from_parts(25_341_000, 0) + // Minimum execution time: 26_329_000 picoseconds. + Weight::from_parts(26_863_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -107,8 +104,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3538` - // Minimum execution time: 22_785_000 picoseconds. - Weight::from_parts(23_367_000, 0) + // Minimum execution time: 24_520_000 picoseconds. + Weight::from_parts(24_898_000, 0) .saturating_add(Weight::from_parts(0, 3538)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtimes/peregrine/src/weights/pallet_inflation.rs b/runtimes/peregrine/src/weights/pallet_inflation.rs index ff7b59e96..23ce450d6 100644 --- a/runtimes/peregrine/src/weights/pallet_inflation.rs +++ b/runtimes/peregrine/src/weights/pallet_inflation.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_inflation` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-inflation // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_inflation.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +52,8 @@ impl pallet_inflation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107` // Estimated: `3597` - // Minimum execution time: 19_289_000 picoseconds. - Weight::from_parts(19_441_000, 0) + // Minimum execution time: 19_930_000 picoseconds. + Weight::from_parts(20_297_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +62,8 @@ impl pallet_inflation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 222_000 picoseconds. - Weight::from_parts(228_000, 0) + // Minimum execution time: 182_000 picoseconds. + Weight::from_parts(220_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/runtimes/peregrine/src/weights/pallet_membership.rs b/runtimes/peregrine/src/weights/pallet_membership.rs index 951c30ae9..db68aeffb 100644 --- a/runtimes/peregrine/src/weights/pallet_membership.rs +++ b/runtimes/peregrine/src/weights/pallet_membership.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_membership` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-membership // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_membership.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -60,13 +57,13 @@ impl pallet_membership::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 99]`. fn add_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `102 + m * (64 ±0)` + // Measured: `136 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 13_140_000 picoseconds. - Weight::from_parts(13_601_267, 0) + // Minimum execution time: 13_299_000 picoseconds. + Weight::from_parts(13_911_658, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 269 - .saturating_add(Weight::from_parts(23_922, 0).saturating_mul(m.into())) + // Standard Error: 264 + .saturating_add(Weight::from_parts(25_166, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -84,13 +81,13 @@ impl pallet_membership::WeightInfo for WeightInfo { /// The range of component `m` is `[2, 100]`. fn remove_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `206 + m * (64 ±0)` + // Measured: `240 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 15_032_000 picoseconds. - Weight::from_parts(15_408_780, 0) + // Minimum execution time: 15_398_000 picoseconds. + Weight::from_parts(15_768_304, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 2_360 - .saturating_add(Weight::from_parts(30_552, 0).saturating_mul(m.into())) + // Standard Error: 256 + .saturating_add(Weight::from_parts(24_295, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -108,13 +105,13 @@ impl pallet_membership::WeightInfo for WeightInfo { /// The range of component `m` is `[2, 100]`. fn swap_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `206 + m * (64 ±0)` + // Measured: `240 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 15_260_000 picoseconds. - Weight::from_parts(15_919_548, 0) + // Minimum execution time: 15_664_000 picoseconds. + Weight::from_parts(16_087_454, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 303 - .saturating_add(Weight::from_parts(35_862, 0).saturating_mul(m.into())) + // Standard Error: 312 + .saturating_add(Weight::from_parts(38_007, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -132,13 +129,13 @@ impl pallet_membership::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 100]`. fn reset_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `206 + m * (64 ±0)` + // Measured: `240 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 14_309_000 picoseconds. - Weight::from_parts(16_116_348, 0) + // Minimum execution time: 14_855_000 picoseconds. + Weight::from_parts(16_232_703, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 2_958 - .saturating_add(Weight::from_parts(150_504, 0).saturating_mul(m.into())) + // Standard Error: 644 + .saturating_add(Weight::from_parts(152_509, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -156,13 +153,13 @@ impl pallet_membership::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 100]`. fn change_key(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `206 + m * (64 ±0)` + // Measured: `240 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 15_169_000 picoseconds. - Weight::from_parts(16_416_917, 0) + // Minimum execution time: 15_561_000 picoseconds. + Weight::from_parts(16_436_180, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 424 - .saturating_add(Weight::from_parts(36_041, 0).saturating_mul(m.into())) + // Standard Error: 374 + .saturating_add(Weight::from_parts(37_259, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -178,11 +175,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + m * (32 ±0)` // Estimated: `4687 + m * (32 ±0)` - // Minimum execution time: 7_126_000 picoseconds. - Weight::from_parts(7_475_376, 0) + // Minimum execution time: 6_797_000 picoseconds. + Weight::from_parts(7_358_849, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 1_232 - .saturating_add(Weight::from_parts(14_898, 0).saturating_mul(m.into())) + // Standard Error: 228 + .saturating_add(Weight::from_parts(11_122, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) @@ -196,11 +193,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_640_000 picoseconds. - Weight::from_parts(2_874_782, 0) + // Minimum execution time: 2_446_000 picoseconds. + Weight::from_parts(2_643_620, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 419 - .saturating_add(Weight::from_parts(1_068, 0).saturating_mul(m.into())) + // Standard Error: 73 + .saturating_add(Weight::from_parts(1_124, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().writes(2)) } } diff --git a/runtimes/peregrine/src/weights/pallet_message_queue.rs b/runtimes/peregrine/src/weights/pallet_message_queue.rs index 4e59a4d55..f7edb9b1b 100644 --- a/runtimes/peregrine/src/weights/pallet_message_queue.rs +++ b/runtimes/peregrine/src/weights/pallet_message_queue.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_message_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev -// --pallet=pallet_message_queue +// --pallet=pallet-message-queue // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_message_queue.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -57,8 +54,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `327` // Estimated: `6044` - // Minimum execution time: 12_180_000 picoseconds. - Weight::from_parts(12_729_000, 0) + // Minimum execution time: 12_492_000 picoseconds. + Weight::from_parts(12_918_000, 0) .saturating_add(Weight::from_parts(0, 6044)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -71,8 +68,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `322` // Estimated: `6044` - // Minimum execution time: 11_515_000 picoseconds. - Weight::from_parts(12_000_000, 0) + // Minimum execution time: 11_615_000 picoseconds. + Weight::from_parts(11_929_000, 0) .saturating_add(Weight::from_parts(0, 6044)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -83,8 +80,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `109` // Estimated: `3517` - // Minimum execution time: 5_016_000 picoseconds. - Weight::from_parts(5_341_000, 0) + // Minimum execution time: 4_948_000 picoseconds. + Weight::from_parts(5_279_000, 0) .saturating_add(Weight::from_parts(0, 3517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -95,8 +92,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `176` // Estimated: `69050` - // Minimum execution time: 6_967_000 picoseconds. - Weight::from_parts(7_226_000, 0) + // Minimum execution time: 6_756_000 picoseconds. + Weight::from_parts(7_043_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -107,8 +104,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `176` // Estimated: `69050` - // Minimum execution time: 6_923_000 picoseconds. - Weight::from_parts(7_168_000, 0) + // Minimum execution time: 6_839_000 picoseconds. + Weight::from_parts(7_107_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -121,8 +118,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 165_732_000 picoseconds. - Weight::from_parts(166_843_000, 0) + // Minimum execution time: 174_116_000 picoseconds. + Weight::from_parts(175_864_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -134,8 +131,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `275` // Estimated: `3517` - // Minimum execution time: 7_412_000 picoseconds. - Weight::from_parts(7_629_000, 0) + // Minimum execution time: 7_579_000 picoseconds. + Weight::from_parts(7_775_000, 0) .saturating_add(Weight::from_parts(0, 3517)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -148,8 +145,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `65771` // Estimated: `69050` - // Minimum execution time: 58_384_000 picoseconds. - Weight::from_parts(59_021_000, 0) + // Minimum execution time: 62_230_000 picoseconds. + Weight::from_parts(62_744_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -162,8 +159,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `65771` // Estimated: `69050` - // Minimum execution time: 75_498_000 picoseconds. - Weight::from_parts(76_117_000, 0) + // Minimum execution time: 78_735_000 picoseconds. + Weight::from_parts(79_457_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -176,8 +173,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `65771` // Estimated: `69050` - // Minimum execution time: 118_738_000 picoseconds. - Weight::from_parts(120_535_000, 0) + // Minimum execution time: 127_044_000 picoseconds. + Weight::from_parts(127_547_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/runtimes/peregrine/src/weights/pallet_migration.rs b/runtimes/peregrine/src/weights/pallet_migration.rs index 308415746..9437b823d 100644 --- a/runtimes/peregrine/src/weights/pallet_migration.rs +++ b/runtimes/peregrine/src/weights/pallet_migration.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_migration` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-migration // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_migration.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -61,8 +58,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `307` // Estimated: `3660` - // Minimum execution time: 59_342_000 picoseconds. - Weight::from_parts(60_044_000, 0) + // Minimum execution time: 60_589_000 picoseconds. + Weight::from_parts(61_229_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -73,8 +70,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `115` // Estimated: `3513` - // Minimum execution time: 15_681_000 picoseconds. - Weight::from_parts(16_061_000, 0) + // Minimum execution time: 16_013_000 picoseconds. + Weight::from_parts(16_337_000, 0) .saturating_add(Weight::from_parts(0, 3513)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -90,8 +87,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `463` // Estimated: `5777` - // Minimum execution time: 61_231_000 picoseconds. - Weight::from_parts(62_291_000, 0) + // Minimum execution time: 62_355_000 picoseconds. + Weight::from_parts(62_911_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -102,8 +99,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `78` // Estimated: `3513` - // Minimum execution time: 14_416_000 picoseconds. - Weight::from_parts(14_634_000, 0) + // Minimum execution time: 14_500_000 picoseconds. + Weight::from_parts(14_769_000, 0) .saturating_add(Weight::from_parts(0, 3513)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -113,8 +110,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `78` // Estimated: `3513` - // Minimum execution time: 14_492_000 picoseconds. - Weight::from_parts(14_920_000, 0) + // Minimum execution time: 14_887_000 picoseconds. + Weight::from_parts(15_129_000, 0) .saturating_add(Weight::from_parts(0, 3513)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -124,8 +121,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `78` // Estimated: `3513` - // Minimum execution time: 18_474_000 picoseconds. - Weight::from_parts(18_680_000, 0) + // Minimum execution time: 18_879_000 picoseconds. + Weight::from_parts(19_191_000, 0) .saturating_add(Weight::from_parts(0, 3513)) .saturating_add(T::DbWeight::get().reads(1)) } diff --git a/runtimes/peregrine/src/weights/pallet_multisig.rs b/runtimes/peregrine/src/weights/pallet_multisig.rs index 22c6383fb..3354cf8fd 100644 --- a/runtimes/peregrine/src/weights/pallet_multisig.rs +++ b/runtimes/peregrine/src/weights/pallet_multisig.rs @@ -16,103 +16,222 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org -//! Autogenerated weights for pallet_multisig +//! Autogenerated weights for `pallet_multisig` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-04, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 // Executed Command: // ./target/release/kilt-parachain // benchmark // pallet +// --heap-pages=4096 // --chain=dev -// --steps=50 -// --repeat=20 // --pallet=pallet_multisig -// --execution=wasm -// --wasm-execution=compiled // --extrinsic=* -// --heap-pages=4096 -// --output=./runtimes/peregrine/src/weights/pallet_multisig.rs +// --header=HEADER-GPL // --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] -#![allow(clippy::unnecessary_cast)] use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weights for `pallet_multisig`. +/// Weight functions for `pallet_multisig`. pub struct WeightInfo(PhantomData); impl pallet_multisig::WeightInfo for WeightInfo { + /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { - Weight::from_parts(8_364_882 as u64, 0) - // Standard Error: 79 - .saturating_add(Weight::from_parts(849 as u64, 0).saturating_mul(z as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_079_000 picoseconds. + Weight::from_parts(10_404_805, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1 + .saturating_add(Weight::from_parts(647, 0).saturating_mul(z.into())) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 64]`. + /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { - Weight::from_parts(20_285_811 as u64, 0) - // Standard Error: 5_408 - .saturating_add(Weight::from_parts(80_065 as u64, 0).saturating_mul(s as u64)) - // Standard Error: 33 - .saturating_add(Weight::from_parts(986 as u64, 0).saturating_mul(z as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `273 + s * (2 ±0)` + // Estimated: `5663` + // Minimum execution time: 38_564_000 picoseconds. + Weight::from_parts(34_039_265, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 583 + .saturating_add(Weight::from_parts(81_019, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_435, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// The range of component `s` is `[3, 64]`. + /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { - Weight::from_parts(12_705_025 as u64, 0) - // Standard Error: 30_300 - .saturating_add(Weight::from_parts(20_431 as u64, 0).saturating_mul(s as u64)) - // Standard Error: 186 - .saturating_add(Weight::from_parts(3_373 as u64, 0).saturating_mul(z as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `319` + // Estimated: `5663` + // Minimum execution time: 24_800_000 picoseconds. + Weight::from_parts(20_273_311, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 379 + .saturating_add(Weight::from_parts(77_351, 0).saturating_mul(s.into())) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_384, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 64]`. + /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { - Weight::from_parts(20_642_060 as u64, 0) - // Standard Error: 5_511 - .saturating_add(Weight::from_parts(104_693 as u64, 0).saturating_mul(s as u64)) - // Standard Error: 34 - .saturating_add(Weight::from_parts(1_132 as u64, 0).saturating_mul(z as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `426 + s * (33 ±0)` + // Estimated: `5663` + // Minimum execution time: 42_033_000 picoseconds. + Weight::from_parts(35_999_031, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 515 + .saturating_add(Weight::from_parts(103_295, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_441, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 64]`. fn approve_as_multi_create(s: u32, ) -> Weight { - Weight::from_parts(17_036_891 as u64, 0) - // Standard Error: 4_200 - .saturating_add(Weight::from_parts(122_554 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `270 + s * (3 ±0)` + // Estimated: `5663` + // Minimum execution time: 32_058_000 picoseconds. + Weight::from_parts(32_943_452, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 734 + .saturating_add(Weight::from_parts(86_240, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 64]`. fn approve_as_multi_approve(s: u32, ) -> Weight { - Weight::from_parts(12_421_505 as u64, 0) - // Standard Error: 7_770 - .saturating_add(Weight::from_parts(81_668 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `319` + // Estimated: `5663` + // Minimum execution time: 17_949_000 picoseconds. + Weight::from_parts(18_448_498, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 428 + .saturating_add(Weight::from_parts(82_797, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 64]`. fn cancel_as_multi(s: u32, ) -> Weight { - Weight::from_parts(19_681_233 as u64, 0) - // Standard Error: 4_292 - .saturating_add(Weight::from_parts(70_945 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `490 + s * (1 ±0)` + // Estimated: `5663` + // Minimum execution time: 31_889_000 picoseconds. + Weight::from_parts(32_680_353, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 678 + .saturating_add(Weight::from_parts(85_750, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} + +#[cfg(test)] +mod tests { + #[test] + fn test_as_multi_create() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); + } + #[test] + fn test_as_multi_approve() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); + } + #[test] + fn test_as_multi_complete() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); + } + #[test] + fn test_approve_as_multi_create() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); + } + #[test] + fn test_approve_as_multi_approve() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); + } + #[test] + fn test_cancel_as_multi() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); } } diff --git a/runtimes/peregrine/src/weights/pallet_preimage.rs b/runtimes/peregrine/src/weights/pallet_preimage.rs index 97bf171cd..f2ab5e402 100644 --- a/runtimes/peregrine/src/weights/pallet_preimage.rs +++ b/runtimes/peregrine/src/weights/pallet_preimage.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-preimage // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_preimage.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -62,11 +59,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3658` - // Minimum execution time: 45_288_000 picoseconds. - Weight::from_parts(45_876_000, 0) + // Minimum execution time: 45_713_000 picoseconds. + Weight::from_parts(46_015_000, 0) .saturating_add(Weight::from_parts(0, 3658)) - // Standard Error: 7 - .saturating_add(Weight::from_parts(2_462, 0).saturating_mul(s.into())) + // Standard Error: 0 + .saturating_add(Weight::from_parts(2_308, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -81,11 +78,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `3556` - // Minimum execution time: 15_921_000 picoseconds. - Weight::from_parts(16_050_000, 0) + // Minimum execution time: 16_532_000 picoseconds. + Weight::from_parts(16_775_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 7 - .saturating_add(Weight::from_parts(2_465, 0).saturating_mul(s.into())) + // Standard Error: 0 + .saturating_add(Weight::from_parts(2_307, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -100,11 +97,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `3556` - // Minimum execution time: 15_798_000 picoseconds. - Weight::from_parts(15_954_000, 0) + // Minimum execution time: 16_528_000 picoseconds. + Weight::from_parts(16_701_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 8 - .saturating_add(Weight::from_parts(2_417, 0).saturating_mul(s.into())) + // Standard Error: 0 + .saturating_add(Weight::from_parts(2_302, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -120,8 +117,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `311` // Estimated: `3658` - // Minimum execution time: 50_447_000 picoseconds. - Weight::from_parts(53_356_000, 0) + // Minimum execution time: 48_316_000 picoseconds. + Weight::from_parts(49_633_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -136,8 +133,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3556` - // Minimum execution time: 25_212_000 picoseconds. - Weight::from_parts(26_852_000, 0) + // Minimum execution time: 23_200_000 picoseconds. + Weight::from_parts(24_348_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -150,8 +147,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3556` - // Minimum execution time: 21_064_000 picoseconds. - Weight::from_parts(22_145_000, 0) + // Minimum execution time: 19_475_000 picoseconds. + Weight::from_parts(20_259_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -164,8 +161,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3556` - // Minimum execution time: 15_869_000 picoseconds. - Weight::from_parts(17_058_000, 0) + // Minimum execution time: 13_543_000 picoseconds. + Weight::from_parts(13_981_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -178,8 +175,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3556` - // Minimum execution time: 13_987_000 picoseconds. - Weight::from_parts(14_660_000, 0) + // Minimum execution time: 14_563_000 picoseconds. + Weight::from_parts(14_916_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -192,8 +189,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_379_000 picoseconds. - Weight::from_parts(10_800_000, 0) + // Minimum execution time: 10_413_000 picoseconds. + Weight::from_parts(10_779_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -208,8 +205,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3556` - // Minimum execution time: 23_345_000 picoseconds. - Weight::from_parts(24_350_000, 0) + // Minimum execution time: 21_252_000 picoseconds. + Weight::from_parts(22_623_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -222,8 +219,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_686_000 picoseconds. - Weight::from_parts(11_227_000, 0) + // Minimum execution time: 10_446_000 picoseconds. + Weight::from_parts(10_870_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -236,8 +233,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_760_000 picoseconds. - Weight::from_parts(11_255_000, 0) + // Minimum execution time: 10_575_000 picoseconds. + Weight::from_parts(10_905_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -255,11 +252,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + n * (231 ±0)` // Estimated: `990 + n * (2668 ±0)` - // Minimum execution time: 50_302_000 picoseconds. - Weight::from_parts(50_768_000, 0) + // Minimum execution time: 49_857_000 picoseconds. + Weight::from_parts(50_198_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 31_039 - .saturating_add(Weight::from_parts(46_821_516, 0).saturating_mul(n.into())) + // Standard Error: 28_428 + .saturating_add(Weight::from_parts(46_810_411, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(n.into()))) .saturating_add(Weight::from_parts(0, 2668).saturating_mul(n.into())) diff --git a/runtimes/peregrine/src/weights/pallet_proxy.rs b/runtimes/peregrine/src/weights/pallet_proxy.rs index 2214c1f4a..1e693c3bd 100644 --- a/runtimes/peregrine/src/weights/pallet_proxy.rs +++ b/runtimes/peregrine/src/weights/pallet_proxy.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-proxy // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_proxy.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,11 +53,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `127 + p * (41 ±0)` // Estimated: `3932` - // Minimum execution time: 13_943_000 picoseconds. - Weight::from_parts(14_378_457, 0) + // Minimum execution time: 13_891_000 picoseconds. + Weight::from_parts(14_398_588, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 1_874 - .saturating_add(Weight::from_parts(55_778, 0).saturating_mul(p.into())) + // Standard Error: 2_962 + .saturating_add(Weight::from_parts(80_883, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: `Proxy::Proxies` (r:1 w:0) @@ -71,15 +68,17 @@ impl pallet_proxy::WeightInfo for WeightInfo { /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) /// The range of component `a` is `[0, 9]`. /// The range of component `p` is `[1, 9]`. - fn proxy_announced(a: u32, _p: u32, ) -> Weight { + fn proxy_announced(a: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `425 + a * (72 ±0) + p * (41 ±0)` // Estimated: `4242` - // Minimum execution time: 33_688_000 picoseconds. - Weight::from_parts(34_507_579, 0) + // Minimum execution time: 34_188_000 picoseconds. + Weight::from_parts(34_843_701, 0) .saturating_add(Weight::from_parts(0, 4242)) - // Standard Error: 2_792 - .saturating_add(Weight::from_parts(148_008, 0).saturating_mul(a.into())) + // Standard Error: 2_905 + .saturating_add(Weight::from_parts(169_577, 0).saturating_mul(a.into())) + // Standard Error: 3_225 + .saturating_add(Weight::from_parts(18_837, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -93,11 +92,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `340 + a * (72 ±0)` // Estimated: `4242` - // Minimum execution time: 22_974_000 picoseconds. - Weight::from_parts(24_075_448, 0) + // Minimum execution time: 23_149_000 picoseconds. + Weight::from_parts(24_215_855, 0) .saturating_add(Weight::from_parts(0, 4242)) - // Standard Error: 2_329 - .saturating_add(Weight::from_parts(146_622, 0).saturating_mul(a.into())) + // Standard Error: 2_320 + .saturating_add(Weight::from_parts(144_479, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -111,11 +110,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `340 + a * (72 ±0)` // Estimated: `4242` - // Minimum execution time: 23_257_000 picoseconds. - Weight::from_parts(24_232_121, 0) + // Minimum execution time: 23_363_000 picoseconds. + Weight::from_parts(24_297_972, 0) .saturating_add(Weight::from_parts(0, 4242)) - // Standard Error: 2_311 - .saturating_add(Weight::from_parts(140_335, 0).saturating_mul(a.into())) + // Standard Error: 2_131 + .saturating_add(Weight::from_parts(140_201, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -131,13 +130,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `353 + a * (72 ±0) + p * (41 ±0)` // Estimated: `4242` - // Minimum execution time: 29_784_000 picoseconds. - Weight::from_parts(30_592_025, 0) + // Minimum execution time: 30_623_000 picoseconds. + Weight::from_parts(31_336_330, 0) .saturating_add(Weight::from_parts(0, 4242)) - // Standard Error: 2_674 - .saturating_add(Weight::from_parts(131_023, 0).saturating_mul(a.into())) - // Standard Error: 2_969 - .saturating_add(Weight::from_parts(5_881, 0).saturating_mul(p.into())) + // Standard Error: 2_929 + .saturating_add(Weight::from_parts(150_953, 0).saturating_mul(a.into())) + // Standard Error: 3_252 + .saturating_add(Weight::from_parts(5_606, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -148,11 +147,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `127 + p * (41 ±0)` // Estimated: `3932` - // Minimum execution time: 22_387_000 picoseconds. - Weight::from_parts(22_881_097, 0) + // Minimum execution time: 23_102_000 picoseconds. + Weight::from_parts(23_612_942, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 2_537 - .saturating_add(Weight::from_parts(52_553, 0).saturating_mul(p.into())) + // Standard Error: 2_591 + .saturating_add(Weight::from_parts(71_787, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -163,11 +162,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `127 + p * (41 ±0)` // Estimated: `3932` - // Minimum execution time: 22_439_000 picoseconds. - Weight::from_parts(23_053_180, 0) + // Minimum execution time: 23_162_000 picoseconds. + Weight::from_parts(23_642_911, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 2_570 - .saturating_add(Weight::from_parts(66_474, 0).saturating_mul(p.into())) + // Standard Error: 2_484 + .saturating_add(Weight::from_parts(82_162, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -178,11 +177,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `127 + p * (41 ±0)` // Estimated: `3932` - // Minimum execution time: 20_043_000 picoseconds. - Weight::from_parts(20_684_137, 0) + // Minimum execution time: 20_310_000 picoseconds. + Weight::from_parts(20_869_087, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 2_488 - .saturating_add(Weight::from_parts(71_363, 0).saturating_mul(p.into())) + // Standard Error: 2_609 + .saturating_add(Weight::from_parts(49_288, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -193,11 +192,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `139` // Estimated: `3932` - // Minimum execution time: 23_627_000 picoseconds. - Weight::from_parts(24_313_377, 0) + // Minimum execution time: 24_254_000 picoseconds. + Weight::from_parts(24_789_081, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 2_738 - .saturating_add(Weight::from_parts(6_103, 0).saturating_mul(p.into())) + // Standard Error: 2_191 + .saturating_add(Weight::from_parts(11_419, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,11 +207,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `168 + p * (41 ±0)` // Estimated: `3932` - // Minimum execution time: 21_252_000 picoseconds. - Weight::from_parts(21_743_076, 0) + // Minimum execution time: 21_331_000 picoseconds. + Weight::from_parts(21_942_787, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 2_638 - .saturating_add(Weight::from_parts(72_099, 0).saturating_mul(p.into())) + // Standard Error: 2_181 + .saturating_add(Weight::from_parts(83_108, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtimes/peregrine/src/weights/pallet_scheduler.rs b/runtimes/peregrine/src/weights/pallet_scheduler.rs index 2b7b3f950..09919b2dd 100644 --- a/runtimes/peregrine/src/weights/pallet_scheduler.rs +++ b/runtimes/peregrine/src/weights/pallet_scheduler.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-scheduler // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_scheduler.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +52,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `36` // Estimated: `1493` - // Minimum execution time: 2_691_000 picoseconds. - Weight::from_parts(2_800_000, 0) + // Minimum execution time: 2_592_000 picoseconds. + Weight::from_parts(2_772_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -68,11 +65,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `83 + s * (181 ±0)` // Estimated: `42632` - // Minimum execution time: 3_303_000 picoseconds. - Weight::from_parts(7_206_829, 0) + // Minimum execution time: 3_453_000 picoseconds. + Weight::from_parts(7_099_419, 0) .saturating_add(Weight::from_parts(0, 42632)) - // Standard Error: 2_466 - .saturating_add(Weight::from_parts(460_152, 0).saturating_mul(s.into())) + // Standard Error: 1_775 + .saturating_add(Weight::from_parts(505_738, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -80,8 +77,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_464_000 picoseconds. - Weight::from_parts(3_715_000, 0) + // Minimum execution time: 3_810_000 picoseconds. + Weight::from_parts(3_948_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: `Preimage::PreimageFor` (r:1 w:1) @@ -95,11 +92,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `246 + s * (1 ±0)` // Estimated: `3711 + s * (1 ±0)` - // Minimum execution time: 18_427_000 picoseconds. - Weight::from_parts(18_762_000, 0) + // Minimum execution time: 18_751_000 picoseconds. + Weight::from_parts(19_222_000, 0) .saturating_add(Weight::from_parts(0, 3711)) - // Standard Error: 17 - .saturating_add(Weight::from_parts(1_557, 0).saturating_mul(s.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_311, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -110,8 +107,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_194_000 picoseconds. - Weight::from_parts(5_374_000, 0) + // Minimum execution time: 5_382_000 picoseconds. + Weight::from_parts(5_556_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -119,24 +116,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_554_000 picoseconds. - Weight::from_parts(3_666_000, 0) + // Minimum execution time: 3_876_000 picoseconds. + Weight::from_parts(3_970_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_signed() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_477_000 picoseconds. - Weight::from_parts(2_617_000, 0) + // Minimum execution time: 2_547_000 picoseconds. + Weight::from_parts(2_657_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_507_000 picoseconds. - Weight::from_parts(2_604_000, 0) + // Minimum execution time: 2_532_000 picoseconds. + Weight::from_parts(2_619_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: `Scheduler::Agenda` (r:1 w:1) @@ -146,11 +143,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `83 + s * (181 ±0)` // Estimated: `42632` - // Minimum execution time: 10_931_000 picoseconds. - Weight::from_parts(15_038_764, 0) + // Minimum execution time: 11_180_000 picoseconds. + Weight::from_parts(14_979_209, 0) .saturating_add(Weight::from_parts(0, 42632)) - // Standard Error: 2_079 - .saturating_add(Weight::from_parts(482_973, 0).saturating_mul(s.into())) + // Standard Error: 1_830 + .saturating_add(Weight::from_parts(537_828, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -163,11 +160,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `83 + s * (181 ±0)` // Estimated: `42632` - // Minimum execution time: 16_383_000 picoseconds. - Weight::from_parts(16_256_564, 0) + // Minimum execution time: 16_720_000 picoseconds. + Weight::from_parts(16_075_166, 0) .saturating_add(Weight::from_parts(0, 42632)) - // Standard Error: 786 - .saturating_add(Weight::from_parts(718_645, 0).saturating_mul(s.into())) + // Standard Error: 698 + .saturating_add(Weight::from_parts(799_544, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -180,11 +177,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `266 + s * (189 ±0)` // Estimated: `42632` - // Minimum execution time: 14_590_000 picoseconds. - Weight::from_parts(19_492_127, 0) + // Minimum execution time: 14_588_000 picoseconds. + Weight::from_parts(19_374_675, 0) .saturating_add(Weight::from_parts(0, 42632)) - // Standard Error: 2_745 - .saturating_add(Weight::from_parts(509_883, 0).saturating_mul(s.into())) + // Standard Error: 2_684 + .saturating_add(Weight::from_parts(570_983, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -197,11 +194,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `290 + s * (189 ±0)` // Estimated: `42632` - // Minimum execution time: 18_014_000 picoseconds. - Weight::from_parts(18_682_628, 0) + // Minimum execution time: 18_317_000 picoseconds. + Weight::from_parts(18_619_598, 0) .saturating_add(Weight::from_parts(0, 42632)) - // Standard Error: 1_730 - .saturating_add(Weight::from_parts(749_440, 0).saturating_mul(s.into())) + // Standard Error: 1_212 + .saturating_add(Weight::from_parts(831_642, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtimes/peregrine/src/weights/pallet_session.rs b/runtimes/peregrine/src/weights/pallet_session.rs index 4aba9f00a..862bff4ac 100644 --- a/runtimes/peregrine/src/weights/pallet_session.rs +++ b/runtimes/peregrine/src/weights/pallet_session.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-session // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_session.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -57,8 +54,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `298` // Estimated: `3763` - // Minimum execution time: 16_908_000 picoseconds. - Weight::from_parts(17_299_000, 0) + // Minimum execution time: 16_859_000 picoseconds. + Weight::from_parts(17_264_000, 0) .saturating_add(Weight::from_parts(0, 3763)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -71,8 +68,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `280` // Estimated: `3745` - // Minimum execution time: 12_647_000 picoseconds. - Weight::from_parts(12_852_000, 0) + // Minimum execution time: 12_499_000 picoseconds. + Weight::from_parts(12_762_000, 0) .saturating_add(Weight::from_parts(0, 3745)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/runtimes/peregrine/src/weights/pallet_sudo.rs b/runtimes/peregrine/src/weights/pallet_sudo.rs index ccb45802b..00786d742 100644 --- a/runtimes/peregrine/src/weights/pallet_sudo.rs +++ b/runtimes/peregrine/src/weights/pallet_sudo.rs @@ -18,26 +18,23 @@ //! Autogenerated weights for `pallet_sudo` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 // Executed Command: // ./target/release/kilt-parachain // benchmark // pallet +// --heap-pages=4096 // --chain=dev -// --steps=50 -// --repeat=20 // --pallet=pallet-sudo // --extrinsic=* -// --execution=wasm -// --wasm-execution=compiled -// --heap-pages=4096 -// --output=./runtimes/peregrine/src/weights/pallet_sudo.rs +// --header=HEADER-GPL // --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -49,42 +46,52 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_sudo`. pub struct WeightInfo(PhantomData); impl pallet_sudo::WeightInfo for WeightInfo { - - fn remove_key() -> cumulus_primitives_core::Weight { todo!() } - /// Storage: Sudo Key (r:1 w:1) - /// Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + /// Storage: `Sudo::Key` (r:1 w:1) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) fn set_key() -> Weight { // Proof Size summary in bytes: // Measured: `165` // Estimated: `1517` - // Minimum execution time: 7_373_000 picoseconds. - Weight::from_parts(7_755_000, 0) + // Minimum execution time: 10_611_000 picoseconds. + Weight::from_parts(10_897_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: Sudo Key (r:1 w:0) - /// Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + /// Storage: `Sudo::Key` (r:1 w:0) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) fn sudo() -> Weight { // Proof Size summary in bytes: // Measured: `165` // Estimated: `1517` - // Minimum execution time: 7_471_000 picoseconds. - Weight::from_parts(7_735_000, 0) + // Minimum execution time: 11_119_000 picoseconds. + Weight::from_parts(11_753_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) } - /// Storage: Sudo Key (r:1 w:0) - /// Proof: Sudo Key (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + /// Storage: `Sudo::Key` (r:1 w:0) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) fn sudo_as() -> Weight { // Proof Size summary in bytes: // Measured: `165` // Estimated: `1517` - // Minimum execution time: 7_488_000 picoseconds. - Weight::from_parts(7_950_000, 0) + // Minimum execution time: 11_429_000 picoseconds. + Weight::from_parts(11_877_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) } + /// Storage: `Sudo::Key` (r:1 w:1) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + fn remove_key() -> Weight { + // Proof Size summary in bytes: + // Measured: `165` + // Estimated: `1517` + // Minimum execution time: 9_474_000 picoseconds. + Weight::from_parts(10_034_000, 0) + .saturating_add(Weight::from_parts(0, 1517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } } #[cfg(test)] @@ -125,4 +132,16 @@ mod tests { > 1517 ); } + #[test] + fn test_remove_key() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 1517 + ); + } } diff --git a/runtimes/peregrine/src/weights/pallet_timestamp.rs b/runtimes/peregrine/src/weights/pallet_timestamp.rs index dc22a2e07..3d118e740 100644 --- a/runtimes/peregrine/src/weights/pallet_timestamp.rs +++ b/runtimes/peregrine/src/weights/pallet_timestamp.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-timestamp // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_timestamp.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +52,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `1493` - // Minimum execution time: 6_217_000 picoseconds. - Weight::from_parts(6_411_000, 0) + // Minimum execution time: 5_950_000 picoseconds. + Weight::from_parts(6_228_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +62,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `94` // Estimated: `0` - // Minimum execution time: 4_270_000 picoseconds. - Weight::from_parts(4_498_000, 0) + // Minimum execution time: 4_032_000 picoseconds. + Weight::from_parts(4_221_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/runtimes/peregrine/src/weights/pallet_tips.rs b/runtimes/peregrine/src/weights/pallet_tips.rs index 157e7b202..e24db6db8 100644 --- a/runtimes/peregrine/src/weights/pallet_tips.rs +++ b/runtimes/peregrine/src/weights/pallet_tips.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_tips` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-tips // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_tips.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -58,11 +55,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4` // Estimated: `3469` - // Minimum execution time: 27_311_000 picoseconds. - Weight::from_parts(28_110_607, 0) + // Minimum execution time: 27_778_000 picoseconds. + Weight::from_parts(28_486_535, 0) .saturating_add(Weight::from_parts(0, 3469)) - // Standard Error: 5 - .saturating_add(Weight::from_parts(1_547, 0).saturating_mul(r.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_583, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -74,8 +71,8 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `221` // Estimated: `3686` - // Minimum execution time: 25_148_000 picoseconds. - Weight::from_parts(25_454_000, 0) + // Minimum execution time: 24_963_000 picoseconds. + Weight::from_parts(25_459_000, 0) .saturating_add(Weight::from_parts(0, 3686)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -92,13 +89,13 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `141 + t * (32 ±0)` // Estimated: `3606 + t * (32 ±0)` - // Minimum execution time: 19_348_000 picoseconds. - Weight::from_parts(17_861_203, 0) + // Minimum execution time: 19_276_000 picoseconds. + Weight::from_parts(18_310_401, 0) .saturating_add(Weight::from_parts(0, 3606)) - // Standard Error: 6 - .saturating_add(Weight::from_parts(1_401, 0).saturating_mul(r.into())) - // Standard Error: 4_912 - .saturating_add(Weight::from_parts(135_186, 0).saturating_mul(t.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_495, 0).saturating_mul(r.into())) + // Standard Error: 3_769 + .saturating_add(Weight::from_parts(110_291, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) @@ -112,11 +109,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `366 + t * (80 ±0)` // Estimated: `3831 + t * (80 ±0)` - // Minimum execution time: 15_591_000 picoseconds. - Weight::from_parts(15_986_370, 0) + // Minimum execution time: 15_032_000 picoseconds. + Weight::from_parts(15_313_621, 0) .saturating_add(Weight::from_parts(0, 3831)) - // Standard Error: 1_501 - .saturating_add(Weight::from_parts(120_962, 0).saturating_mul(t.into())) + // Standard Error: 1_065 + .saturating_add(Weight::from_parts(154_697, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(t.into())) @@ -133,15 +130,15 @@ impl pallet_tips::WeightInfo for WeightInfo { fn close_tip(t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `473 + t * (80 ±0)` - // Estimated: `6204 + t * (80 ±0)` - // Minimum execution time: 55_216_000 picoseconds. - Weight::from_parts(56_832_101, 0) + // Estimated: `6204 + t * (79 ±0)` + // Minimum execution time: 55_029_000 picoseconds. + Weight::from_parts(56_150_325, 0) .saturating_add(Weight::from_parts(0, 6204)) - // Standard Error: 3_930 - .saturating_add(Weight::from_parts(118_712, 0).saturating_mul(t.into())) + // Standard Error: 4_066 + .saturating_add(Weight::from_parts(155_112, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) - .saturating_add(Weight::from_parts(0, 80).saturating_mul(t.into())) + .saturating_add(Weight::from_parts(0, 79).saturating_mul(t.into())) } /// Storage: `Tips::Tips` (r:1 w:1) /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -152,11 +149,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3734` - // Minimum execution time: 14_140_000 picoseconds. - Weight::from_parts(14_682_084, 0) + // Minimum execution time: 14_077_000 picoseconds. + Weight::from_parts(14_533_006, 0) .saturating_add(Weight::from_parts(0, 3734)) - // Standard Error: 1_130 - .saturating_add(Weight::from_parts(3_291, 0).saturating_mul(t.into())) + // Standard Error: 687 + .saturating_add(Weight::from_parts(11_411, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtimes/peregrine/src/weights/pallet_treasury.rs b/runtimes/peregrine/src/weights/pallet_treasury.rs index cf8bcbbd9..7085a79d6 100644 --- a/runtimes/peregrine/src/weights/pallet_treasury.rs +++ b/runtimes/peregrine/src/weights/pallet_treasury.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_treasury` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-treasury // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_treasury.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,8 +56,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `6` // Estimated: `1887` - // Minimum execution time: 11_688_000 picoseconds. - Weight::from_parts(12_036_000, 0) + // Minimum execution time: 11_686_000 picoseconds. + Weight::from_parts(11_872_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) @@ -73,8 +70,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `111` // Estimated: `1489` - // Minimum execution time: 25_458_000 picoseconds. - Weight::from_parts(25_878_000, 0) + // Minimum execution time: 25_964_000 picoseconds. + Weight::from_parts(26_422_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -87,8 +84,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `376` // Estimated: `6204` - // Minimum execution time: 36_141_000 picoseconds. - Weight::from_parts(36_934_000, 0) + // Minimum execution time: 37_484_000 picoseconds. + Weight::from_parts(37_876_000, 0) .saturating_add(Weight::from_parts(0, 6204)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -102,11 +99,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `433 + p * (8 ±0)` // Estimated: `3573` - // Minimum execution time: 9_838_000 picoseconds. - Weight::from_parts(12_745_248, 0) + // Minimum execution time: 9_126_000 picoseconds. + Weight::from_parts(12_032_538, 0) .saturating_add(Weight::from_parts(0, 3573)) - // Standard Error: 944 - .saturating_add(Weight::from_parts(34_217, 0).saturating_mul(p.into())) + // Standard Error: 930 + .saturating_add(Weight::from_parts(36_021, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -116,8 +113,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `1887` - // Minimum execution time: 6_121_000 picoseconds. - Weight::from_parts(6_335_000, 0) + // Minimum execution time: 5_898_000 picoseconds. + Weight::from_parts(6_115_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -135,13 +132,13 @@ impl pallet_treasury::WeightInfo for WeightInfo { /// The range of component `p` is `[0, 99]`. fn on_initialize_proposals(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `33 + p * (256 ±0)` + // Measured: `79 + p * (256 ±0)` // Estimated: `3597 + p * (5214 ±0)` - // Minimum execution time: 18_511_000 picoseconds. - Weight::from_parts(31_104_251, 0) + // Minimum execution time: 20_056_000 picoseconds. + Weight::from_parts(26_391_002, 0) .saturating_add(Weight::from_parts(0, 3597)) - // Standard Error: 18_385 - .saturating_add(Weight::from_parts(29_250_242, 0).saturating_mul(p.into())) + // Standard Error: 16_400 + .saturating_add(Weight::from_parts(31_103_740, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -156,8 +153,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `6` // Estimated: `1489` - // Minimum execution time: 10_575_000 picoseconds. - Weight::from_parts(10_762_000, 0) + // Minimum execution time: 10_550_000 picoseconds. + Weight::from_parts(10_776_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -170,8 +167,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `347` // Estimated: `6204` - // Minimum execution time: 44_998_000 picoseconds. - Weight::from_parts(46_059_000, 0) + // Minimum execution time: 46_612_000 picoseconds. + Weight::from_parts(47_235_000, 0) .saturating_add(Weight::from_parts(0, 6204)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -182,8 +179,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `133` // Estimated: `3542` - // Minimum execution time: 12_873_000 picoseconds. - Weight::from_parts(13_136_000, 0) + // Minimum execution time: 12_642_000 picoseconds. + Weight::from_parts(12_925_000, 0) .saturating_add(Weight::from_parts(0, 3542)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -194,8 +191,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `133` // Estimated: `3542` - // Minimum execution time: 11_977_000 picoseconds. - Weight::from_parts(12_433_000, 0) + // Minimum execution time: 12_331_000 picoseconds. + Weight::from_parts(12_521_000, 0) .saturating_add(Weight::from_parts(0, 3542)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtimes/peregrine/src/weights/pallet_utility.rs b/runtimes/peregrine/src/weights/pallet_utility.rs index 33fa9027c..85f7684b4 100644 --- a/runtimes/peregrine/src/weights/pallet_utility.rs +++ b/runtimes/peregrine/src/weights/pallet_utility.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-utility // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_utility.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -54,18 +51,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_195_000 picoseconds. - Weight::from_parts(11_758_579, 0) + // Minimum execution time: 5_325_000 picoseconds. + Weight::from_parts(7_478_311, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_878 - .saturating_add(Weight::from_parts(2_688_711, 0).saturating_mul(c.into())) + // Standard Error: 1_438 + .saturating_add(Weight::from_parts(3_165_006, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_668_000 picoseconds. - Weight::from_parts(4_759_000, 0) + // Minimum execution time: 4_791_000 picoseconds. + Weight::from_parts(4_953_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -73,18 +70,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_158_000 picoseconds. - Weight::from_parts(5_025_730, 0) + // Minimum execution time: 5_330_000 picoseconds. + Weight::from_parts(12_573_267, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 2_071 - .saturating_add(Weight::from_parts(2_906_125, 0).saturating_mul(c.into())) + // Standard Error: 1_649 + .saturating_add(Weight::from_parts(3_329_618, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_982_000 picoseconds. - Weight::from_parts(7_172_000, 0) + // Minimum execution time: 7_502_000 picoseconds. + Weight::from_parts(7_682_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -92,11 +89,11 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_032_000 picoseconds. - Weight::from_parts(11_621_705, 0) + // Minimum execution time: 5_181_000 picoseconds. + Weight::from_parts(12_477_155, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_937 - .saturating_add(Weight::from_parts(2_645_173, 0).saturating_mul(c.into())) + // Standard Error: 1_661 + .saturating_add(Weight::from_parts(3_101_916, 0).saturating_mul(c.into())) } } diff --git a/runtimes/peregrine/src/weights/pallet_vesting.rs b/runtimes/peregrine/src/weights/pallet_vesting.rs index dd6490c32..5aec5ec54 100644 --- a/runtimes/peregrine/src/weights/pallet_vesting.rs +++ b/runtimes/peregrine/src/weights/pallet_vesting.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_vesting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-vesting // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_vesting.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -61,13 +58,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `366 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 32_716_000 picoseconds. - Weight::from_parts(31_624_238, 0) + // Minimum execution time: 33_006_000 picoseconds. + Weight::from_parts(31_367_099, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 610 - .saturating_add(Weight::from_parts(37_011, 0).saturating_mul(l.into())) - // Standard Error: 1_086 - .saturating_add(Weight::from_parts(141_132, 0).saturating_mul(s.into())) + // Standard Error: 614 + .saturating_add(Weight::from_parts(44_265, 0).saturating_mul(l.into())) + // Standard Error: 1_094 + .saturating_add(Weight::from_parts(150_524, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -83,13 +80,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `366 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 34_933_000 picoseconds. - Weight::from_parts(34_148_826, 0) + // Minimum execution time: 35_339_000 picoseconds. + Weight::from_parts(34_066_766, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 527 - .saturating_add(Weight::from_parts(30_137, 0).saturating_mul(l.into())) - // Standard Error: 938 - .saturating_add(Weight::from_parts(127_675, 0).saturating_mul(s.into())) + // Standard Error: 616 + .saturating_add(Weight::from_parts(39_064, 0).saturating_mul(l.into())) + // Standard Error: 1_096 + .saturating_add(Weight::from_parts(139_902, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -107,13 +104,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `434 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 34_970_000 picoseconds. - Weight::from_parts(33_396_762, 0) + // Minimum execution time: 34_719_000 picoseconds. + Weight::from_parts(33_080_849, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 655 - .saturating_add(Weight::from_parts(39_902, 0).saturating_mul(l.into())) - // Standard Error: 1_166 - .saturating_add(Weight::from_parts(146_668, 0).saturating_mul(s.into())) + // Standard Error: 510 + .saturating_add(Weight::from_parts(44_341, 0).saturating_mul(l.into())) + // Standard Error: 908 + .saturating_add(Weight::from_parts(148_478, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -131,13 +128,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `434 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 36_957_000 picoseconds. - Weight::from_parts(36_063_061, 0) + // Minimum execution time: 37_148_000 picoseconds. + Weight::from_parts(35_794_923, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 529 - .saturating_add(Weight::from_parts(31_993, 0).saturating_mul(l.into())) - // Standard Error: 941 - .saturating_add(Weight::from_parts(123_889, 0).saturating_mul(s.into())) + // Standard Error: 624 + .saturating_add(Weight::from_parts(39_490, 0).saturating_mul(l.into())) + // Standard Error: 1_110 + .saturating_add(Weight::from_parts(136_452, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -155,13 +152,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `471 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 66_016_000 picoseconds. - Weight::from_parts(66_301_649, 0) + // Minimum execution time: 66_951_000 picoseconds. + Weight::from_parts(66_912_211, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_235 - .saturating_add(Weight::from_parts(45_951, 0).saturating_mul(l.into())) - // Standard Error: 2_198 - .saturating_add(Weight::from_parts(171_498, 0).saturating_mul(s.into())) + // Standard Error: 1_025 + .saturating_add(Weight::from_parts(47_029, 0).saturating_mul(l.into())) + // Standard Error: 1_824 + .saturating_add(Weight::from_parts(178_215, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -179,13 +176,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `578 + l * (25 ±0) + s * (40 ±0)` // Estimated: `6204` - // Minimum execution time: 69_129_000 picoseconds. - Weight::from_parts(69_076_699, 0) + // Minimum execution time: 69_173_000 picoseconds. + Weight::from_parts(69_208_179, 0) .saturating_add(Weight::from_parts(0, 6204)) - // Standard Error: 1_189 - .saturating_add(Weight::from_parts(45_612, 0).saturating_mul(l.into())) - // Standard Error: 2_116 - .saturating_add(Weight::from_parts(169_957, 0).saturating_mul(s.into())) + // Standard Error: 1_049 + .saturating_add(Weight::from_parts(47_818, 0).saturating_mul(l.into())) + // Standard Error: 1_867 + .saturating_add(Weight::from_parts(184_009, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -203,13 +200,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `471 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 36_571_000 picoseconds. - Weight::from_parts(35_060_968, 0) + // Minimum execution time: 36_783_000 picoseconds. + Weight::from_parts(34_873_609, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 525 - .saturating_add(Weight::from_parts(42_288, 0).saturating_mul(l.into())) - // Standard Error: 970 - .saturating_add(Weight::from_parts(142_565, 0).saturating_mul(s.into())) + // Standard Error: 565 + .saturating_add(Weight::from_parts(47_037, 0).saturating_mul(l.into())) + // Standard Error: 1_044 + .saturating_add(Weight::from_parts(153_575, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -227,13 +224,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `471 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 39_189_000 picoseconds. - Weight::from_parts(37_159_926, 0) + // Minimum execution time: 39_455_000 picoseconds. + Weight::from_parts(37_740_898, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 636 - .saturating_add(Weight::from_parts(46_607, 0).saturating_mul(l.into())) - // Standard Error: 1_175 - .saturating_add(Weight::from_parts(147_625, 0).saturating_mul(s.into())) + // Standard Error: 539 + .saturating_add(Weight::from_parts(44_168, 0).saturating_mul(l.into())) + // Standard Error: 996 + .saturating_add(Weight::from_parts(154_152, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -251,13 +248,13 @@ impl pallet_vesting::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `471 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 39_755_000 picoseconds. - Weight::from_parts(38_003_429, 0) + // Minimum execution time: 40_012_000 picoseconds. + Weight::from_parts(38_491_758, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 864 - .saturating_add(Weight::from_parts(43_527, 0).saturating_mul(l.into())) - // Standard Error: 1_596 - .saturating_add(Weight::from_parts(144_859, 0).saturating_mul(s.into())) + // Standard Error: 613 + .saturating_add(Weight::from_parts(40_371, 0).saturating_mul(l.into())) + // Standard Error: 1_132 + .saturating_add(Weight::from_parts(148_922, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtimes/peregrine/src/weights/pallet_web3_names.rs b/runtimes/peregrine/src/weights/pallet_web3_names.rs index 6314a294b..1ab094a1d 100644 --- a/runtimes/peregrine/src/weights/pallet_web3_names.rs +++ b/runtimes/peregrine/src/weights/pallet_web3_names.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_web3_names` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-web3-names // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_web3_names.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -64,13 +61,13 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// The range of component `n` is `[3, 32]`. fn claim(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `111` + // Measured: `147` // Estimated: `3658` - // Minimum execution time: 56_002_000 picoseconds. - Weight::from_parts(57_034_446, 0) + // Minimum execution time: 58_270_000 picoseconds. + Weight::from_parts(59_248_352, 0) .saturating_add(Weight::from_parts(0, 3658)) - // Standard Error: 1_741 - .saturating_add(Weight::from_parts(17_996, 0).saturating_mul(n.into())) + // Standard Error: 1_729 + .saturating_add(Weight::from_parts(22_284, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -86,10 +83,10 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn release_by_owner() -> Weight { // Proof Size summary in bytes: - // Measured: `515` + // Measured: `552` // Estimated: `3658` - // Minimum execution time: 49_858_000 picoseconds. - Weight::from_parts(50_437_000, 0) + // Minimum execution time: 51_337_000 picoseconds. + Weight::from_parts(52_033_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -107,13 +104,13 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// The range of component `n` is `[3, 32]`. fn reclaim_deposit(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `411 + n * (1 ±0)` + // Measured: `448 + n * (1 ±0)` // Estimated: `3658` - // Minimum execution time: 47_552_000 picoseconds. - Weight::from_parts(48_579_429, 0) + // Minimum execution time: 48_875_000 picoseconds. + Weight::from_parts(49_883_909, 0) .saturating_add(Weight::from_parts(0, 3658)) - // Standard Error: 5_097 - .saturating_add(Weight::from_parts(202, 0).saturating_mul(n.into())) + // Standard Error: 1_134 + .saturating_add(Weight::from_parts(2_136, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -130,13 +127,15 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// Storage: `Web3Names::Names` (r:0 w:1) /// Proof: `Web3Names::Names` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) /// The range of component `n` is `[3, 32]`. - fn ban(_n: u32, ) -> Weight { + fn ban(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `411 + n * (1 ±0)` + // Measured: `448 + n * (1 ±0)` // Estimated: `3658` - // Minimum execution time: 52_931_000 picoseconds. - Weight::from_parts(54_749_477, 0) + // Minimum execution time: 51_310_000 picoseconds. + Weight::from_parts(52_210_881, 0) .saturating_add(Weight::from_parts(0, 3658)) + // Standard Error: 1_129 + .saturating_add(Weight::from_parts(20_952, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -145,13 +144,13 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// The range of component `n` is `[3, 32]`. fn unban(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `47 + n * (1 ±0)` + // Measured: `84 + n * (1 ±0)` // Estimated: `3514` - // Minimum execution time: 12_517_000 picoseconds. - Weight::from_parts(12_938_732, 0) + // Minimum execution time: 12_962_000 picoseconds. + Weight::from_parts(13_381_150, 0) .saturating_add(Weight::from_parts(0, 3514)) - // Standard Error: 2_619 - .saturating_add(Weight::from_parts(22_854, 0).saturating_mul(n.into())) + // Standard Error: 608 + .saturating_add(Weight::from_parts(20_149, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -167,10 +166,10 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn change_deposit_owner() -> Weight { // Proof Size summary in bytes: - // Measured: `622` + // Measured: `659` // Estimated: `6326` - // Minimum execution time: 79_612_000 picoseconds. - Weight::from_parts(80_738_000, 0) + // Minimum execution time: 80_156_000 picoseconds. + Weight::from_parts(81_075_000, 0) .saturating_add(Weight::from_parts(0, 6326)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -185,10 +184,10 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn update_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `370` + // Measured: `407` // Estimated: `3658` - // Minimum execution time: 64_512_000 picoseconds. - Weight::from_parts(65_038_000, 0) + // Minimum execution time: 65_868_000 picoseconds. + Weight::from_parts(66_632_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtimes/peregrine/src/weights/pallet_xcm.rs b/runtimes/peregrine/src/weights/pallet_xcm.rs index 68a08614d..e1d03a190 100644 --- a/runtimes/peregrine/src/weights/pallet_xcm.rs +++ b/runtimes/peregrine/src/weights/pallet_xcm.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=pallet-xcm // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_xcm.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -63,11 +60,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3742` - // Minimum execution time: 29_784_000 picoseconds. - Weight::from_parts(30_448_000, 0) - .saturating_add(Weight::from_parts(0, 3742)) + // Measured: `311` + // Estimated: `3776` + // Minimum execution time: 30_814_000 picoseconds. + Weight::from_parts(31_638_000, 0) + .saturating_add(Weight::from_parts(0, 3776)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -81,6 +78,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { Weight::from_parts(18_446_744_073_709_551_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:0) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:1) @@ -99,12 +98,12 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `309` - // Estimated: `3774` - // Minimum execution time: 91_369_000 picoseconds. - Weight::from_parts(92_344_000, 0) - .saturating_add(Weight::from_parts(0, 3774)) - .saturating_add(T::DbWeight::get().reads(7)) + // Measured: `346` + // Estimated: `3811` + // Minimum execution time: 114_948_000 picoseconds. + Weight::from_parts(116_042_000, 0) + .saturating_add(Weight::from_parts(0, 3811)) + .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:0) @@ -129,8 +128,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `346` // Estimated: `3811` - // Minimum execution time: 1_048_341_000 picoseconds. - Weight::from_parts(1_058_740_000, 0) + // Minimum execution time: 116_301_000 picoseconds. + Weight::from_parts(117_587_000, 0) .saturating_add(Weight::from_parts(0, 3811)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) @@ -151,8 +150,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_878_000 picoseconds. - Weight::from_parts(9_420_000, 0) + // Minimum execution time: 8_966_000 picoseconds. + Weight::from_parts(9_290_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -162,8 +161,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_571_000 picoseconds. - Weight::from_parts(2_662_000, 0) + // Minimum execution time: 2_556_000 picoseconds. + Weight::from_parts(2_670_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -187,11 +186,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3742` - // Minimum execution time: 36_578_000 picoseconds. - Weight::from_parts(36_960_000, 0) - .saturating_add(Weight::from_parts(0, 3742)) + // Measured: `311` + // Estimated: `3776` + // Minimum execution time: 37_131_000 picoseconds. + Weight::from_parts(37_881_000, 0) + .saturating_add(Weight::from_parts(0, 3776)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -213,11 +212,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `532` - // Estimated: `3997` - // Minimum execution time: 39_310_000 picoseconds. - Weight::from_parts(39_690_000, 0) - .saturating_add(Weight::from_parts(0, 3997)) + // Measured: `566` + // Estimated: `4031` + // Minimum execution time: 40_113_000 picoseconds. + Weight::from_parts(40_628_000, 0) + .saturating_add(Weight::from_parts(0, 4031)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -227,8 +226,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_652_000 picoseconds. - Weight::from_parts(2_778_000, 0) + // Minimum execution time: 2_595_000 picoseconds. + Weight::from_parts(2_745_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -236,11 +235,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `125` - // Estimated: `13490` - // Minimum execution time: 20_568_000 picoseconds. - Weight::from_parts(21_057_000, 0) - .saturating_add(Weight::from_parts(0, 13490)) + // Measured: `159` + // Estimated: `13524` + // Minimum execution time: 21_410_000 picoseconds. + Weight::from_parts(22_015_000, 0) + .saturating_add(Weight::from_parts(0, 13524)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -248,11 +247,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `129` - // Estimated: `13494` - // Minimum execution time: 20_906_000 picoseconds. - Weight::from_parts(21_366_000, 0) - .saturating_add(Weight::from_parts(0, 13494)) + // Measured: `163` + // Estimated: `13528` + // Minimum execution time: 21_340_000 picoseconds. + Weight::from_parts(21_798_000, 0) + .saturating_add(Weight::from_parts(0, 13528)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -260,11 +259,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: - // Measured: `183` - // Estimated: `16023` - // Minimum execution time: 23_236_000 picoseconds. - Weight::from_parts(23_742_000, 0) - .saturating_add(Weight::from_parts(0, 16023)) + // Measured: `178` + // Estimated: `16018` + // Minimum execution time: 23_344_000 picoseconds. + Weight::from_parts(24_050_000, 0) + .saturating_add(Weight::from_parts(0, 16018)) .saturating_add(T::DbWeight::get().reads(6)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) @@ -283,11 +282,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `349` - // Estimated: `6289` - // Minimum execution time: 35_279_000 picoseconds. - Weight::from_parts(36_068_000, 0) - .saturating_add(Weight::from_parts(0, 6289)) + // Measured: `383` + // Estimated: `6323` + // Minimum execution time: 36_585_000 picoseconds. + Weight::from_parts(36_929_000, 0) + .saturating_add(Weight::from_parts(0, 6323)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -295,22 +294,22 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `11062` - // Minimum execution time: 12_676_000 picoseconds. - Weight::from_parts(13_133_000, 0) - .saturating_add(Weight::from_parts(0, 11062)) + // Measured: `206` + // Estimated: `11096` + // Minimum execution time: 12_852_000 picoseconds. + Weight::from_parts(13_081_000, 0) + .saturating_add(Weight::from_parts(0, 11096)) .saturating_add(T::DbWeight::get().reads(4)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `136` - // Estimated: `13501` - // Minimum execution time: 20_858_000 picoseconds. - Weight::from_parts(21_234_000, 0) - .saturating_add(Weight::from_parts(0, 13501)) + // Measured: `170` + // Estimated: `13535` + // Minimum execution time: 21_055_000 picoseconds. + Weight::from_parts(21_520_000, 0) + .saturating_add(Weight::from_parts(0, 13535)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -330,11 +329,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `349` - // Estimated: `13714` - // Minimum execution time: 44_759_000 picoseconds. - Weight::from_parts(45_465_000, 0) - .saturating_add(Weight::from_parts(0, 13714)) + // Measured: `383` + // Estimated: `13748` + // Minimum execution time: 45_683_000 picoseconds. + Weight::from_parts(46_277_000, 0) + .saturating_add(Weight::from_parts(0, 13748)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -344,11 +343,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn new_query() -> Weight { // Proof Size summary in bytes: - // Measured: `69` - // Estimated: `1554` - // Minimum execution time: 5_050_000 picoseconds. - Weight::from_parts(5_350_000, 0) - .saturating_add(Weight::from_parts(0, 1554)) + // Measured: `103` + // Estimated: `1588` + // Minimum execution time: 5_175_000 picoseconds. + Weight::from_parts(5_472_000, 0) + .saturating_add(Weight::from_parts(0, 1588)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -356,24 +355,26 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn take_response() -> Weight { // Proof Size summary in bytes: - // Measured: `7710` - // Estimated: `11175` - // Minimum execution time: 28_206_000 picoseconds. - Weight::from_parts(28_515_000, 0) - .saturating_add(Weight::from_parts(0, 11175)) + // Measured: `7744` + // Estimated: `11209` + // Minimum execution time: 30_160_000 picoseconds. + Weight::from_parts(30_433_000, 0) + .saturating_add(Weight::from_parts(0, 11209)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:0) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) /// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) /// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) fn claim_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `126` - // Estimated: `3591` - // Minimum execution time: 42_518_000 picoseconds. - Weight::from_parts(43_653_000, 0) - .saturating_add(Weight::from_parts(0, 3591)) - .saturating_add(T::DbWeight::get().reads(1)) + // Measured: `163` + // Estimated: `3628` + // Minimum execution time: 66_616_000 picoseconds. + Weight::from_parts(67_483_000, 0) + .saturating_add(Weight::from_parts(0, 3628)) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } } @@ -389,7 +390,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3742 + > 3776 ); } #[test] @@ -401,7 +402,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3774 + > 3811 ); } #[test] @@ -425,7 +426,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3742 + > 3776 ); } #[test] @@ -437,7 +438,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3997 + > 4031 ); } #[test] @@ -449,7 +450,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 13490 + > 13524 ); } #[test] @@ -461,7 +462,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 13494 + > 13528 ); } #[test] @@ -473,7 +474,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 16023 + > 16018 ); } #[test] @@ -485,7 +486,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 6289 + > 6323 ); } #[test] @@ -497,7 +498,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 11062 + > 11096 ); } #[test] @@ -509,7 +510,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 13501 + > 13535 ); } #[test] @@ -521,7 +522,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 13714 + > 13748 ); } #[test] @@ -533,7 +534,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 1554 + > 1588 ); } #[test] @@ -545,7 +546,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 11175 + > 11209 ); } #[test] @@ -557,7 +558,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3591 + > 3628 ); } } diff --git a/runtimes/peregrine/src/weights/parachain_staking.rs b/runtimes/peregrine/src/weights/parachain_staking.rs index 4c4e249b1..4d6f0584c 100644 --- a/runtimes/peregrine/src/weights/parachain_staking.rs +++ b/runtimes/peregrine/src/weights/parachain_staking.rs @@ -1,5 +1,3 @@ -// TODO: UPDATE BEFORE RELEASE - // KILT Blockchain – https://botlabs.org // Copyright (C) 2019-2024 BOTLabs GmbH @@ -20,27 +18,23 @@ //! Autogenerated weights for `parachain_staking` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-05, STEPS: `2`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 // Executed Command: // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --execution=wasm -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=2 -// --repeat=1 // --chain=dev // --pallet=parachain-staking // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/parachain_staking.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -52,62 +46,61 @@ use sp_std::marker::PhantomData; /// Weight functions for `parachain_staking`. pub struct WeightInfo(PhantomData); impl parachain_staking::WeightInfo for WeightInfo { - /// Storage: ParachainStaking Round (r:1 w:0) - /// Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::Round` (r:1 w:0) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) fn on_initialize_no_action() -> Weight { // Proof Size summary in bytes: // Measured: `335` - // Estimated: `515` - // Minimum execution time: 4_572_000 picoseconds. - Weight::from_parts(4_572_000, 0) - .saturating_add(Weight::from_parts(0, 515)) + // Estimated: `1505` + // Minimum execution time: 4_732_000 picoseconds. + Weight::from_parts(4_916_000, 0) + .saturating_add(Weight::from_parts(0, 1505)) .saturating_add(T::DbWeight::get().reads(1)) } - /// Storage: ParachainStaking Round (r:1 w:1) - /// Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::Round` (r:1 w:1) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) fn on_initialize_round_update() -> Weight { // Proof Size summary in bytes: // Measured: `335` - // Estimated: `515` - // Minimum execution time: 12_371_000 picoseconds. - Weight::from_parts(12_371_000, 0) - .saturating_add(Weight::from_parts(0, 515)) + // Estimated: `1505` + // Minimum execution time: 8_157_000 picoseconds. + Weight::from_parts(8_411_000, 0) + .saturating_add(Weight::from_parts(0, 1505)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: ParachainStaking Round (r:1 w:1) - /// Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:0) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxCollatorCandidateStake (r:1 w:0) - /// Proof: ParachainStaking MaxCollatorCandidateStake (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::Round` (r:1 w:1) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxCollatorCandidateStake` (r:1 w:0) + /// Proof: `ParachainStaking::MaxCollatorCandidateStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) fn on_initialize_network_rewards() -> Weight { // Proof Size summary in bytes: - // Measured: `881` - // Estimated: `4723` - // Minimum execution time: 52_932_000 picoseconds. - Weight::from_parts(52_932_000, 0) - .saturating_add(Weight::from_parts(0, 4723)) + // Measured: `482` + // Estimated: `3597` + // Minimum execution time: 30_682_000 picoseconds. + Weight::from_parts(31_057_000, 0) + .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: ParachainStaking ForceNewRound (r:0 w:1) - /// Proof: ParachainStaking ForceNewRound (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::ForceNewRound` (r:0 w:1) + /// Proof: `ParachainStaking::ForceNewRound` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) fn force_new_round() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_626_000 picoseconds. - Weight::from_parts(8_626_000, 0) + // Minimum execution time: 2_620_000 picoseconds. + Weight::from_parts(2_762_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - -/// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:0) + /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:0) /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::CandidatePool` (r:76 w:0) /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) @@ -126,14 +119,14 @@ impl parachain_staking::WeightInfo for WeightInfo { fn set_inflation(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + m * (7573 ±0) + n * (3709 ±0)` - // Estimated: `183222 + m * (64823 ±2_167) + n * (31965 ±1_009)` - // Minimum execution time: 704_611_000 picoseconds. - Weight::from_parts(707_105_000, 0) + // Estimated: `183222 + m * (64823 ±2_174) + n * (31965 ±1)` + // Minimum execution time: 675_369_000 picoseconds. + Weight::from_parts(678_837_000, 0) .saturating_add(Weight::from_parts(0, 183222)) - // Standard Error: 4_876_636 - .saturating_add(Weight::from_parts(150_694_630, 0).saturating_mul(n.into())) - // Standard Error: 10_470_032 - .saturating_add(Weight::from_parts(290_425_882, 0).saturating_mul(m.into())) + // Standard Error: 4_699_617 + .saturating_add(Weight::from_parts(144_914_592, 0).saturating_mul(n.into())) + // Standard Error: 10_089_974 + .saturating_add(Weight::from_parts(279_077_354, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(152)) .saturating_add(T::DbWeight::get().reads((27_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().reads((51_u64).saturating_mul(m.into()))) @@ -143,535 +136,552 @@ impl parachain_staking::WeightInfo for WeightInfo { .saturating_add(Weight::from_parts(0, 64823).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 31965).saturating_mul(n.into())) } - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:1) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ParachainStaking TopCandidates (r:1 w:0) - /// Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - /// Storage: ParachainStaking CandidatePool (r:59 w:0) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:59 w:0) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) /// The range of component `n` is `[16, 75]`. /// The range of component `m` is `[0, 35]`. fn set_max_selected_candidates(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + n * (1883 ±0) + m * (2832 ±0)` - // Estimated: `5168 + n * (3355 ±0)` - // Minimum execution time: 23_081_000 picoseconds. - Weight::from_parts(23_081_000, 0) - .saturating_add(Weight::from_parts(0, 5168)) - // Standard Error: 459_002 - .saturating_add(Weight::from_parts(2_023_254, 0).saturating_mul(n.into())) - // Standard Error: 991_008 - .saturating_add(Weight::from_parts(204_663, 0).saturating_mul(m.into())) + // Measured: `0 + m * (2832 ±0) + n * (1843 ±0)` + // Estimated: `5255 + n * (3554 ±9)` + // Minimum execution time: 27_049_000 picoseconds. + Weight::from_parts(27_637_000, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 21_820 + .saturating_add(Weight::from_parts(3_108_265, 0).saturating_mul(n.into())) + // Standard Error: 48_296 + .saturating_add(Weight::from_parts(245_278, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(Weight::from_parts(0, 3355).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 3554).saturating_mul(n.into())) } - /// Storage: ParachainStaking Round (r:1 w:1) - /// Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::Round` (r:1 w:1) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) fn set_blocks_per_round() -> Weight { // Proof Size summary in bytes: // Measured: `335` - // Estimated: `515` - // Minimum execution time: 18_585_000 picoseconds. - Weight::from_parts(18_585_000, 0) - .saturating_add(Weight::from_parts(0, 515)) + // Estimated: `1505` + // Minimum execution time: 11_544_000 picoseconds. + Weight::from_parts(12_039_000, 0) + .saturating_add(Weight::from_parts(0, 1505)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: ParachainStaking CandidatePool (r:17 w:1) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking TopCandidates (r:1 w:1) - /// Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:1 w:1) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:36 w:36) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Rewards (r:36 w:36) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:0) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - /// Storage: ParachainStaking Unstaking (r:36 w:36) - /// Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - /// Storage: ParachainStaking DelegatorState (r:35 w:35) - /// Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Session Validators (r:1 w:0) - /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Session DisabledValidators (r:1 w:1) - /// Proof Skipped: Session DisabledValidators (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Digest (r:1 w:1) - /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainStaking CounterForCandidatePool (r:1 w:1) - /// Proof: ParachainStaking CounterForCandidatePool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::CandidatePool` (r:17 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:36 w:36) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:36 w:36) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:36 w:36) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:35 w:35) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Session::Validators` (r:1 w:0) + /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Session::DisabledValidators` (r:1 w:1) + /// Proof: `Session::DisabledValidators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// The range of component `n` is `[17, 75]`. /// The range of component `m` is `[0, 35]`. fn force_remove_candidate(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + n * (435 ±0) + m * (2388 ±0)` - // Estimated: `116721 + m * (16221 ±0) + n * (372 ±138)` - // Minimum execution time: 92_957_000 picoseconds. - Weight::from_parts(92_957_000, 0) - .saturating_add(Weight::from_parts(0, 116721)) - // Standard Error: 679_179 - .saturating_add(Weight::from_parts(603_826, 0).saturating_mul(n.into())) - // Standard Error: 1_467_794 - .saturating_add(Weight::from_parts(16_308_990, 0).saturating_mul(m.into())) + // Measured: `0 + m * (2303 ±0) + n * (397 ±0)` + // Estimated: `73495 + m * (2756 ±0) + n * (136 ±3)` + // Minimum execution time: 120_057_000 picoseconds. + Weight::from_parts(121_419_000, 0) + .saturating_add(Weight::from_parts(0, 73495)) + // Standard Error: 23_650 + .saturating_add(Weight::from_parts(857_603, 0).saturating_mul(n.into())) + // Standard Error: 52_465 + .saturating_add(Weight::from_parts(25_065_152, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(29)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(m.into()))) .saturating_add(T::DbWeight::get().writes(10)) .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(m.into()))) - .saturating_add(Weight::from_parts(0, 16221).saturating_mul(m.into())) - .saturating_add(Weight::from_parts(0, 372).saturating_mul(n.into())) - } - /// Storage: ParachainStaking CandidatePool (r:1 w:1) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking DelegatorState (r:1 w:0) - /// Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxCollatorCandidateStake (r:1 w:0) - /// Proof: ParachainStaking MaxCollatorCandidateStake (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: ParachainStaking Unstaking (r:1 w:1) - /// Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: ParachainStaking TopCandidates (r:1 w:1) - /// Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ParachainStaking CounterForCandidatePool (r:1 w:1) - /// Proof: ParachainStaking CounterForCandidatePool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + .saturating_add(Weight::from_parts(0, 2756).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 136).saturating_mul(n.into())) + } + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:0) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxCollatorCandidateStake` (r:1 w:0) + /// Proof: `ParachainStaking::MaxCollatorCandidateStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 74]`. /// The range of component `m` is `[0, 35]`. fn join_candidates(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `78 + n * (83 ±0) + m * (85 ±0)` - // Estimated: `22098` - // Minimum execution time: 50_697_000 picoseconds. - Weight::from_parts(4_904_178, 0) - .saturating_add(Weight::from_parts(0, 22098)) - // Standard Error: 95_903 - .saturating_add(Weight::from_parts(618_821, 0).saturating_mul(n.into())) - // Standard Error: 200_027 - .saturating_add(Weight::from_parts(1_353_228, 0).saturating_mul(m.into())) - .saturating_add(T::DbWeight::get().reads(10)) + // Measured: `2617 + m * (37 ±0) + n * (76 ±0)` + // Estimated: `5255 + m * (43 ±0)` + // Minimum execution time: 70_307_000 picoseconds. + Weight::from_parts(50_686_589, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 10_118 + .saturating_add(Weight::from_parts(496_313, 0).saturating_mul(n.into())) + // Standard Error: 21_012 + .saturating_add(Weight::from_parts(924_952, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(7)) + .saturating_add(Weight::from_parts(0, 43).saturating_mul(m.into())) } - /// Storage: ParachainStaking CandidatePool (r:17 w:1) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking TopCandidates (r:1 w:1) - /// Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - /// Storage: ParachainStaking Round (r:1 w:0) - /// Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::CandidatePool` (r:17 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Round` (r:1 w:0) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) /// The range of component `n` is `[17, 74]`. /// The range of component `m` is `[0, 35]`. - fn init_leave_candidates(n: u32, _m: u32, ) -> Weight { + fn init_leave_candidates(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `2447 + n * (72 ±0) + m * (818 ±0)` - // Estimated: `78143` - // Minimum execution time: 91_929_000 picoseconds. - Weight::from_parts(86_361_105, 0) - .saturating_add(Weight::from_parts(0, 78143)) - // Standard Error: 123_416 - .saturating_add(Weight::from_parts(492_552, 0).saturating_mul(n.into())) + // Measured: `2007 + m * (816 ±0) + n * (71 ±0)` + // Estimated: `73495` + // Minimum execution time: 94_776_000 picoseconds. + Weight::from_parts(71_140_618, 0) + .saturating_add(Weight::from_parts(0, 73495)) + // Standard Error: 9_380 + .saturating_add(Weight::from_parts(530_784, 0).saturating_mul(n.into())) + // Standard Error: 15_211 + .saturating_add(Weight::from_parts(1_276_970, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(21)) .saturating_add(T::DbWeight::get().writes(3)) } - /// Storage: ParachainStaking CandidatePool (r:2 w:1) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking TopCandidates (r:1 w:1) - /// Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::CandidatePool` (r:2 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) /// The range of component `n` is `[17, 74]`. /// The range of component `m` is `[0, 35]`. fn cancel_leave_candidates(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `846 + n * (53 ±0) + m * (96 ±0)` - // Estimated: `13653` - // Minimum execution time: 34_969_000 picoseconds. - Weight::from_parts(5_322_543, 0) - .saturating_add(Weight::from_parts(0, 13653)) - // Standard Error: 114_619 - .saturating_add(Weight::from_parts(403_438, 0).saturating_mul(n.into())) - // Standard Error: 186_665 - .saturating_add(Weight::from_parts(651_085, 0).saturating_mul(m.into())) + // Measured: `780 + m * (96 ±0) + n * (53 ±0)` + // Estimated: `9520` + // Minimum execution time: 36_899_000 picoseconds. + Weight::from_parts(30_976_161, 0) + .saturating_add(Weight::from_parts(0, 9520)) + // Standard Error: 6_321 + .saturating_add(Weight::from_parts(227_251, 0).saturating_mul(n.into())) + // Standard Error: 10_251 + .saturating_add(Weight::from_parts(566_742, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } - /// Storage: ParachainStaking CandidatePool (r:1 w:1) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking Round (r:1 w:0) - /// Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:1 w:1) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:36 w:36) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Rewards (r:36 w:36) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:0) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:0) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - /// Storage: ParachainStaking Unstaking (r:36 w:36) - /// Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - /// Storage: ParachainStaking DelegatorState (r:35 w:35) - /// Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: Session Validators (r:1 w:0) - /// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: Session DisabledValidators (r:1 w:1) - /// Proof Skipped: Session DisabledValidators (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: System Digest (r:1 w:1) - /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) - /// Storage: ParachainStaking CounterForCandidatePool (r:1 w:1) - /// Proof: ParachainStaking CounterForCandidatePool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Round` (r:1 w:0) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:36 w:36) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:36 w:36) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:0) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:36 w:36) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:35 w:35) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Session::Validators` (r:1 w:0) + /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Session::DisabledValidators` (r:1 w:1) + /// Proof: `Session::DisabledValidators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// The range of component `n` is `[17, 74]`. /// The range of component `m` is `[0, 35]`. fn execute_leave_candidates(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + n * (368 ±0) + m * (1611 ±0)` - // Estimated: `25299 + m * (14112 ±0) + n * (312 ±117)` - // Minimum execution time: 48_603_000 picoseconds. - Weight::from_parts(48_603_000, 0) - .saturating_add(Weight::from_parts(0, 25299)) - // Standard Error: 599_572 - .saturating_add(Weight::from_parts(479_149, 0).saturating_mul(n.into())) - // Standard Error: 1_278_769 - .saturating_add(Weight::from_parts(15_930_155, 0).saturating_mul(m.into())) + // Measured: `0 + m * (1534 ±0) + n * (335 ±0)` + // Estimated: `5255 + m * (2756 ±0) + n * (118 ±3)` + // Minimum execution time: 58_619_000 picoseconds. + Weight::from_parts(59_982_000, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 19_881 + .saturating_add(Weight::from_parts(693_142, 0).saturating_mul(n.into())) + // Standard Error: 43_540 + .saturating_add(Weight::from_parts(24_578_632, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(m.into()))) .saturating_add(T::DbWeight::get().writes(8)) .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(m.into()))) - .saturating_add(Weight::from_parts(0, 14112).saturating_mul(m.into())) - .saturating_add(Weight::from_parts(0, 312).saturating_mul(n.into())) - } - /// Storage: ParachainStaking CandidatePool (r:1 w:1) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxCollatorCandidateStake (r:1 w:0) - /// Proof: ParachainStaking MaxCollatorCandidateStake (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) - /// Storage: ParachainStaking Unstaking (r:1 w:1) - /// Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: ParachainStaking TopCandidates (r:1 w:1) - /// Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:1 w:0) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:1 w:1) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Rewards (r:1 w:1) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:0) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + .saturating_add(Weight::from_parts(0, 2756).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 118).saturating_mul(n.into())) + } + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxCollatorCandidateStake` (r:1 w:0) + /// Proof: `ParachainStaking::MaxCollatorCandidateStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 74]`. /// The range of component `m` is `[0, 35]`. /// The range of component `u` is `[0, 9]`. fn candidate_stake_more(n: u32, m: u32, u: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `510 + n * (83 ±0) + m * (128 ±0) + u * (27 ±0)` - // Estimated: `27204` - // Minimum execution time: 57_740_000 picoseconds. - Weight::from_parts(1_978_780, 0) - .saturating_add(Weight::from_parts(0, 27204)) - // Standard Error: 104_528 - .saturating_add(Weight::from_parts(655_552, 0).saturating_mul(n.into())) - // Standard Error: 218_015 - .saturating_add(Weight::from_parts(1_264_552, 0).saturating_mul(m.into())) - // Standard Error: 847_839 - .saturating_add(Weight::from_parts(1_205_148, 0).saturating_mul(u.into())) - .saturating_add(T::DbWeight::get().reads(12)) + // Measured: `3030 + m * (92 ±0) + n * (65 ±0) + u * (24 ±0)` + // Estimated: `5255` + // Minimum execution time: 80_213_000 picoseconds. + Weight::from_parts(51_404_329, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 9_661 + .saturating_add(Weight::from_parts(530_932, 0).saturating_mul(n.into())) + // Standard Error: 20_055 + .saturating_add(Weight::from_parts(1_057_710, 0).saturating_mul(m.into())) + // Standard Error: 74_291 + .saturating_add(Weight::from_parts(1_106_622, 0).saturating_mul(u.into())) + .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(8)) } - /// Storage: ParachainStaking CandidatePool (r:1 w:1) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking Unstaking (r:1 w:1) - /// Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - /// Storage: ParachainStaking TopCandidates (r:1 w:1) - /// Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:1 w:0) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:1 w:1) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Rewards (r:1 w:1) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:0) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 74]`. /// The range of component `m` is `[0, 35]`. fn candidate_stake_less(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `49 + n * (72 ±0) + m * (103 ±0)` - // Estimated: `20312` - // Minimum execution time: 44_572_000 picoseconds. - Weight::from_parts(16_172_013, 0) - .saturating_add(Weight::from_parts(0, 20312)) - // Standard Error: 48_260 - .saturating_add(Weight::from_parts(513_986, 0).saturating_mul(n.into())) - // Standard Error: 100_656 - .saturating_add(Weight::from_parts(796_742, 0).saturating_mul(m.into())) + // Measured: `2099 + m * (70 ±0) + n * (60 ±0)` + // Estimated: `5255` + // Minimum execution time: 54_424_000 picoseconds. + Weight::from_parts(36_001_745, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 9_603 + .saturating_add(Weight::from_parts(474_667, 0).saturating_mul(n.into())) + // Standard Error: 19_943 + .saturating_add(Weight::from_parts(897_820, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(6)) } - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) - /// Storage: ParachainStaking DelegatorState (r:1 w:1) - /// Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: ParachainStaking CandidatePool (r:2 w:1) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking Unstaking (r:1 w:1) - /// Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - /// Storage: ParachainStaking LastDelegation (r:1 w:1) - /// Proof: ParachainStaking LastDelegation (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Round (r:1 w:0) - /// Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: ParachainStaking TopCandidates (r:1 w:1) - /// Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:1 w:0) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:0 w:1) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:2 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::LastDelegation` (r:1 w:1) + /// Proof: `ParachainStaking::LastDelegation` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Round` (r:1 w:0) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:0 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 75]`. /// The range of component `m` is `[1, 34]`. fn join_delegators(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `929 + n * (97 ±0) + m * (135 ±0)` - // Estimated: `30914` - // Minimum execution time: 58_247_000 picoseconds. - Weight::from_parts(28_773_576, 0) - .saturating_add(Weight::from_parts(0, 30914)) - // Standard Error: 51_294 - .saturating_add(Weight::from_parts(603_817, 0).saturating_mul(n.into())) - // Standard Error: 115_023 - .saturating_add(Weight::from_parts(849_106, 0).saturating_mul(m.into())) - .saturating_add(T::DbWeight::get().reads(12)) + // Measured: `3558 + m * (93 ±0) + n * (84 ±0)` + // Estimated: `9520` + // Minimum execution time: 84_417_000 picoseconds. + Weight::from_parts(57_085_154, 0) + .saturating_add(Weight::from_parts(0, 9520)) + // Standard Error: 10_245 + .saturating_add(Weight::from_parts(643_707, 0).saturating_mul(n.into())) + // Standard Error: 22_771 + .saturating_add(Weight::from_parts(1_306_371, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(9)) } - /// Storage: ParachainStaking DelegatorState (r:1 w:1) - /// Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: ParachainStaking CandidatePool (r:1 w:1) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) - /// Storage: ParachainStaking Unstaking (r:1 w:1) - /// Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: ParachainStaking TopCandidates (r:1 w:1) - /// Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:1 w:0) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:1 w:1) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Rewards (r:1 w:1) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:0) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 75]`. /// The range of component `m` is `[1, 34]`. /// The range of component `u` is `[1, 9]`. - fn delegator_stake_more(n: u32, m: u32, _u: u32, ) -> Weight { + fn delegator_stake_more(n: u32, m: u32, u: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1515 + n * (94 ±0) + m * (114 ±0) + u * (28 ±0)` - // Estimated: `29256` - // Minimum execution time: 62_490_000 picoseconds. - Weight::from_parts(33_402_121, 0) - .saturating_add(Weight::from_parts(0, 29256)) - // Standard Error: 44_620 - .saturating_add(Weight::from_parts(606_783, 0).saturating_mul(n.into())) - // Standard Error: 100_057 - .saturating_add(Weight::from_parts(1_189_969, 0).saturating_mul(m.into())) - .saturating_add(T::DbWeight::get().reads(12)) + // Measured: `4166 + m * (88 ±0) + n * (72 ±0) + u * (24 ±0)` + // Estimated: `5255` + // Minimum execution time: 87_670_000 picoseconds. + Weight::from_parts(61_238_547, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 9_103 + .saturating_add(Weight::from_parts(541_793, 0).saturating_mul(n.into())) + // Standard Error: 20_223 + .saturating_add(Weight::from_parts(1_049_181, 0).saturating_mul(m.into())) + // Standard Error: 78_436 + .saturating_add(Weight::from_parts(1_178_237, 0).saturating_mul(u.into())) + .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(9)) } - /// Storage: ParachainStaking DelegatorState (r:1 w:1) - /// Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: ParachainStaking CandidatePool (r:1 w:1) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking Unstaking (r:1 w:1) - /// Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - /// Storage: ParachainStaking TopCandidates (r:1 w:1) - /// Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:1 w:0) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:1 w:1) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Rewards (r:1 w:1) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:0) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 75]`. /// The range of component `m` is `[1, 34]`. fn delegator_stake_less(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1244 + n * (80 ±0) + m * (91 ±0)` - // Estimated: `22875` - // Minimum execution time: 51_678_000 picoseconds. - Weight::from_parts(14_393_305, 0) - .saturating_add(Weight::from_parts(0, 22875)) - // Standard Error: 11_562 - .saturating_add(Weight::from_parts(516_270, 0).saturating_mul(n.into())) - // Standard Error: 25_928 - .saturating_add(Weight::from_parts(1_081_424, 0).saturating_mul(m.into())) + // Measured: `2952 + m * (71 ±0) + n * (67 ±0)` + // Estimated: `5255` + // Minimum execution time: 63_409_000 picoseconds. + Weight::from_parts(43_502_648, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 9_406 + .saturating_add(Weight::from_parts(505_400, 0).saturating_mul(n.into())) + // Standard Error: 20_905 + .saturating_add(Weight::from_parts(991_006, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(7)) } - /// Storage: ParachainStaking DelegatorState (r:1 w:1) - /// Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: ParachainStaking CandidatePool (r:1 w:1) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:1 w:0) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:1 w:1) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Rewards (r:1 w:1) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:0) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - /// Storage: ParachainStaking Unstaking (r:1 w:1) - /// Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - /// Storage: ParachainStaking TopCandidates (r:1 w:1) - /// Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - /// Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - /// Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 75]`. /// The range of component `m` is `[1, 34]`. fn leave_delegators(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1244 + n * (80 ±0) + m * (91 ±0)` - // Estimated: `22875` - // Minimum execution time: 56_485_000 picoseconds. - Weight::from_parts(20_483_674, 0) - .saturating_add(Weight::from_parts(0, 22875)) - // Standard Error: 104_239 - .saturating_add(Weight::from_parts(498_628, 0).saturating_mul(n.into())) - // Standard Error: 233_748 - .saturating_add(Weight::from_parts(1_044_196, 0).saturating_mul(m.into())) + // Measured: `2952 + m * (71 ±0) + n * (67 ±0)` + // Estimated: `5255` + // Minimum execution time: 65_744_000 picoseconds. + Weight::from_parts(46_606_025, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 9_834 + .saturating_add(Weight::from_parts(515_993, 0).saturating_mul(n.into())) + // Standard Error: 21_856 + .saturating_add(Weight::from_parts(972_896, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(7)) } - /// Storage: ParachainStaking Unstaking (r:1 w:1) - /// Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - /// Storage: Balances Locks (r:1 w:1) - /// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) /// The range of component `u` is `[1, 9]`. - fn unlock_unstaked(_u: u32, ) -> Weight { + fn unlock_unstaked(u: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1449 + u * (28 ±0)` - // Estimated: `9137` - // Minimum execution time: 29_489_000 picoseconds. - Weight::from_parts(36_332_000, 0) - .saturating_add(Weight::from_parts(0, 9137)) - .saturating_add(T::DbWeight::get().reads(3)) + // Measured: `709 + u * (24 ±0)` + // Estimated: `4764` + // Minimum execution time: 35_138_000 picoseconds. + Weight::from_parts(36_021_191, 0) + .saturating_add(Weight::from_parts(0, 4764)) + // Standard Error: 3_311 + .saturating_add(Weight::from_parts(58_627, 0).saturating_mul(u.into())) + .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } - /// Storage: ParachainStaking MaxCollatorCandidateStake (r:0 w:1) - /// Proof: ParachainStaking MaxCollatorCandidateStake (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::MaxCollatorCandidateStake` (r:0 w:1) + /// Proof: `ParachainStaking::MaxCollatorCandidateStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) fn set_max_candidate_stake() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_555_000 picoseconds. - Weight::from_parts(8_555_000, 0) + // Minimum execution time: 5_835_000 picoseconds. + Weight::from_parts(6_015_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: ParachainStaking DelegatorState (r:1 w:0) - /// Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:1 w:0) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:1 w:1) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Rewards (r:1 w:1) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:0) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:0) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:0) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:0) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) fn increment_delegator_rewards() -> Weight { // Proof Size summary in bytes: - // Measured: `739` - // Estimated: `11258` - // Minimum execution time: 16_914_000 picoseconds. - Weight::from_parts(16_914_000, 0) - .saturating_add(Weight::from_parts(0, 11258)) + // Measured: `676` + // Estimated: `3553` + // Minimum execution time: 25_320_000 picoseconds. + Weight::from_parts(25_829_000, 0) + .saturating_add(Weight::from_parts(0, 3553)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: ParachainStaking CandidatePool (r:1 w:0) - /// Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksAuthored (r:1 w:0) - /// Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking BlocksRewarded (r:1 w:1) - /// Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - /// Storage: ParachainStaking Rewards (r:1 w:1) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: ParachainStaking TotalCollatorStake (r:1 w:0) - /// Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: ParachainStaking InflationConfig (r:1 w:0) - /// Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:0) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:0) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) fn increment_collator_rewards() -> Weight { // Proof Size summary in bytes: - // Measured: `654` - // Estimated: `12960` - // Minimum execution time: 17_807_000 picoseconds. - Weight::from_parts(17_807_000, 0) - .saturating_add(Weight::from_parts(0, 12960)) + // Measured: `590` + // Estimated: `5255` + // Minimum execution time: 21_959_000 picoseconds. + Weight::from_parts(22_545_000, 0) + .saturating_add(Weight::from_parts(0, 5255)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } - /// Storage: ParachainStaking Rewards (r:1 w:1) - /// Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - /// Storage: System Account (r:1 w:1) - /// Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) fn claim_rewards() -> Weight { // Proof Size summary in bytes: - // Measured: `950` - // Estimated: `5138` - // Minimum execution time: 28_715_000 picoseconds. - Weight::from_parts(28_715_000, 0) - .saturating_add(Weight::from_parts(0, 5138)) + // Measured: `516` + // Estimated: `3597` + // Minimum execution time: 26_180_000 picoseconds. + Weight::from_parts(26_544_000, 0) + .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -697,13 +707,13 @@ impl parachain_staking::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + m * (7573 ±0) + n * (3647 ±0)` // Estimated: `183222 + m * (64823 ±2_167) + n * (31965 ±1_009)` - // Minimum execution time: 683_160_000 picoseconds. - Weight::from_parts(687_351_000, 0) + // Minimum execution time: 666_957_000 picoseconds. + Weight::from_parts(670_020_000, 0) .saturating_add(Weight::from_parts(0, 183222)) - // Standard Error: 4_643_820 - .saturating_add(Weight::from_parts(141_740_256, 0).saturating_mul(n.into())) - // Standard Error: 9_970_180 - .saturating_add(Weight::from_parts(280_674_034, 0).saturating_mul(m.into())) + // Standard Error: 4_534_927 + .saturating_add(Weight::from_parts(138_484_481, 0).saturating_mul(n.into())) + // Standard Error: 9_736_388 + .saturating_add(Weight::from_parts(273_821_078, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(153)) .saturating_add(T::DbWeight::get().reads((27_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().reads((51_u64).saturating_mul(m.into()))) @@ -726,7 +736,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 515 + > 1505 ); } #[test] @@ -738,7 +748,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 515 + > 1505 ); } #[test] @@ -750,7 +760,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 4723 + > 3597 ); } #[test] @@ -774,7 +784,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 5168 + > 5255 ); } #[test] @@ -786,7 +796,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 515 + > 1505 ); } #[test] @@ -798,7 +808,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 116721 + > 73495 ); } #[test] @@ -810,7 +820,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 22098 + > 5255 ); } #[test] @@ -822,7 +832,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 78143 + > 73495 ); } #[test] @@ -834,7 +844,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 13653 + > 9520 ); } #[test] @@ -846,7 +856,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 25299 + > 5255 ); } #[test] @@ -858,7 +868,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 27204 + > 5255 ); } #[test] @@ -870,7 +880,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 20312 + > 5255 ); } #[test] @@ -882,7 +892,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 30914 + > 9520 ); } #[test] @@ -894,7 +904,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 29256 + > 5255 ); } #[test] @@ -906,7 +916,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 22875 + > 5255 ); } #[test] @@ -918,7 +928,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 22875 + > 5255 ); } #[test] @@ -930,7 +940,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 9137 + > 4764 ); } #[test] @@ -942,7 +952,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 11258 + > 3553 ); } #[test] @@ -954,7 +964,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 12960 + > 5255 ); } #[test] @@ -966,7 +976,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 5138 + > 3597 ); } #[test] diff --git a/runtimes/peregrine/src/weights/public_credentials.rs b/runtimes/peregrine/src/weights/public_credentials.rs index 74ce73f90..69e42cae8 100644 --- a/runtimes/peregrine/src/weights/public_credentials.rs +++ b/runtimes/peregrine/src/weights/public_credentials.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `public_credentials` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=dev // --pallet=public-credentials // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/public_credentials.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/peregrine/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -66,11 +63,11 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `363` // Estimated: `3940` - // Minimum execution time: 65_939_000 picoseconds. - Weight::from_parts(62_465_999, 0) + // Minimum execution time: 65_534_000 picoseconds. + Weight::from_parts(61_120_243, 0) .saturating_add(Weight::from_parts(0, 3940)) - // Standard Error: 7 - .saturating_add(Weight::from_parts(2_372, 0).saturating_mul(c.into())) + // Standard Error: 11 + .saturating_add(Weight::from_parts(2_634, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -82,8 +79,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `919` // Estimated: `3940` - // Minimum execution time: 24_868_000 picoseconds. - Weight::from_parts(25_278_000, 0) + // Minimum execution time: 24_774_000 picoseconds. + Weight::from_parts(24_910_000, 0) .saturating_add(Weight::from_parts(0, 3940)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -96,8 +93,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `919` // Estimated: `3940` - // Minimum execution time: 24_328_000 picoseconds. - Weight::from_parts(24_757_000, 0) + // Minimum execution time: 24_425_000 picoseconds. + Weight::from_parts(24_655_000, 0) .saturating_add(Weight::from_parts(0, 3940)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -116,8 +113,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1160` // Estimated: `3940` - // Minimum execution time: 62_908_000 picoseconds. - Weight::from_parts(63_578_000, 0) + // Minimum execution time: 62_448_000 picoseconds. + Weight::from_parts(63_122_000, 0) .saturating_add(Weight::from_parts(0, 3940)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -136,8 +133,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1160` // Estimated: `3940` - // Minimum execution time: 62_638_000 picoseconds. - Weight::from_parts(63_232_000, 0) + // Minimum execution time: 62_223_000 picoseconds. + Weight::from_parts(63_011_000, 0) .saturating_add(Weight::from_parts(0, 3940)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -156,8 +153,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1265` // Estimated: `6326` - // Minimum execution time: 98_356_000 picoseconds. - Weight::from_parts(99_382_000, 0) + // Minimum execution time: 98_002_000 picoseconds. + Weight::from_parts(98_503_000, 0) .saturating_add(Weight::from_parts(0, 6326)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -176,8 +173,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1084` // Estimated: `3940` - // Minimum execution time: 85_146_000 picoseconds. - Weight::from_parts(86_307_000, 0) + // Minimum execution time: 84_419_000 picoseconds. + Weight::from_parts(85_179_000, 0) .saturating_add(Weight::from_parts(0, 3940)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtimes/spiritnet/src/weights/attestation.rs b/runtimes/spiritnet/src/weights/attestation.rs index 234523159..469a25705 100644 --- a/runtimes/spiritnet/src/weights/attestation.rs +++ b/runtimes/spiritnet/src/weights/attestation.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `attestation` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=attestation // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/attestation.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -63,8 +60,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `260` // Estimated: `3660` - // Minimum execution time: 51_135_000 picoseconds. - Weight::from_parts(51_755_000, 0) + // Minimum execution time: 51_857_000 picoseconds. + Weight::from_parts(52_532_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -75,8 +72,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `196` // Estimated: `3660` - // Minimum execution time: 14_512_000 picoseconds. - Weight::from_parts(14_684_000, 0) + // Minimum execution time: 14_223_000 picoseconds. + Weight::from_parts(14_570_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -93,8 +90,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3660` - // Minimum execution time: 47_728_000 picoseconds. - Weight::from_parts(48_196_000, 0) + // Minimum execution time: 45_124_000 picoseconds. + Weight::from_parts(45_545_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -111,8 +108,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3660` - // Minimum execution time: 47_883_000 picoseconds. - Weight::from_parts(48_325_000, 0) + // Minimum execution time: 45_178_000 picoseconds. + Weight::from_parts(45_899_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -129,8 +126,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `581` // Estimated: `6326` - // Minimum execution time: 77_079_000 picoseconds. - Weight::from_parts(77_637_000, 0) + // Minimum execution time: 76_648_000 picoseconds. + Weight::from_parts(77_009_000, 0) .saturating_add(Weight::from_parts(0, 6326)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -147,8 +144,8 @@ impl attestation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `437` // Estimated: `3660` - // Minimum execution time: 70_610_000 picoseconds. - Weight::from_parts(71_270_000, 0) + // Minimum execution time: 70_260_000 picoseconds. + Weight::from_parts(70_827_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtimes/spiritnet/src/weights/ctype.rs b/runtimes/spiritnet/src/weights/ctype.rs index 9420876cc..9ce577516 100644 --- a/runtimes/spiritnet/src/weights/ctype.rs +++ b/runtimes/spiritnet/src/weights/ctype.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `ctype` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=ctype // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/ctype.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -58,11 +55,11 @@ impl ctype::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `254` // Estimated: `6204` - // Minimum execution time: 44_236_000 picoseconds. - Weight::from_parts(1_715_088, 0) + // Minimum execution time: 44_781_000 picoseconds. + Weight::from_parts(45_129_000, 0) .saturating_add(Weight::from_parts(0, 6204)) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_628, 0).saturating_mul(l.into())) + .saturating_add(Weight::from_parts(1_562, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -72,8 +69,8 @@ impl ctype::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `158` // Estimated: `3553` - // Minimum execution time: 17_668_000 picoseconds. - Weight::from_parts(18_341_000, 0) + // Minimum execution time: 15_746_000 picoseconds. + Weight::from_parts(16_127_000, 0) .saturating_add(Weight::from_parts(0, 3553)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtimes/spiritnet/src/weights/cumulus_pallet_parachain_system.rs b/runtimes/spiritnet/src/weights/cumulus_pallet_parachain_system.rs index f6c3f332b..a2c31cceb 100644 --- a/runtimes/spiritnet/src/weights/cumulus_pallet_parachain_system.rs +++ b/runtimes/spiritnet/src/weights/cumulus_pallet_parachain_system.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `cumulus_pallet_parachain_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev -// --pallet=cumulus_pallet_parachain_system +// --pallet=cumulus-pallet-parachain-system // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/cumulus_pallet_parachain_system.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -64,11 +61,11 @@ impl cumulus_pallet_parachain_system::WeightInfo for We // Proof Size summary in bytes: // Measured: `115` // Estimated: `3517` - // Minimum execution time: 1_824_000 picoseconds. - Weight::from_parts(3_137_458_802, 0) + // Minimum execution time: 1_898_000 picoseconds. + Weight::from_parts(1_976_000, 0) .saturating_add(Weight::from_parts(0, 3517)) - // Standard Error: 1_119_461 - .saturating_add(Weight::from_parts(188_354_017, 0).saturating_mul(n.into())) + // Standard Error: 27_899 + .saturating_add(Weight::from_parts(193_107_039, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) diff --git a/runtimes/spiritnet/src/weights/delegation.rs b/runtimes/spiritnet/src/weights/delegation.rs index 510e62824..1f656257a 100644 --- a/runtimes/spiritnet/src/weights/delegation.rs +++ b/runtimes/spiritnet/src/weights/delegation.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `delegation` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=delegation // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/delegation.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -65,8 +62,8 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `330` // Estimated: `3658` - // Minimum execution time: 56_654_000 picoseconds. - Weight::from_parts(57_074_000, 0) + // Minimum execution time: 56_542_000 picoseconds. + Weight::from_parts(57_088_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(5)) @@ -83,8 +80,8 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `469` // Estimated: `70340` - // Minimum execution time: 61_676_000 picoseconds. - Weight::from_parts(62_625_000, 0) + // Minimum execution time: 60_847_000 picoseconds. + Weight::from_parts(61_532_000, 0) .saturating_add(Weight::from_parts(0, 70340)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(5)) @@ -99,13 +96,13 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `208 + r * (239 ±0)` // Estimated: `3545 + r * (34675 ±0)` - // Minimum execution time: 24_738_000 picoseconds. - Weight::from_parts(16_570_193, 0) + // Minimum execution time: 25_108_000 picoseconds. + Weight::from_parts(16_343_180, 0) .saturating_add(Weight::from_parts(0, 3545)) - // Standard Error: 18_176 - .saturating_add(Weight::from_parts(9_591_484, 0).saturating_mul(r.into())) - // Standard Error: 18_176 - .saturating_add(Weight::from_parts(54_078, 0).saturating_mul(c.into())) + // Standard Error: 16_319 + .saturating_add(Weight::from_parts(9_681_733, 0).saturating_mul(r.into())) + // Standard Error: 16_319 + .saturating_add(Weight::from_parts(116_781, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) @@ -121,11 +118,11 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `381 + c * (239 ±0)` // Estimated: `35665 + c * (34675 ±0)` - // Minimum execution time: 28_480_000 picoseconds. - Weight::from_parts(26_142_601, 0) + // Minimum execution time: 28_768_000 picoseconds. + Weight::from_parts(26_597_115, 0) .saturating_add(Weight::from_parts(0, 35665)) - // Standard Error: 18_975 - .saturating_add(Weight::from_parts(4_367_029, 0).saturating_mul(c.into())) + // Standard Error: 15_373 + .saturating_add(Weight::from_parts(4_139_210, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -146,11 +143,11 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `618 + r * (294 ±0)` // Estimated: `35665 + r * (34675 ±0)` - // Minimum execution time: 99_379_000 picoseconds. - Weight::from_parts(67_667_457, 0) + // Minimum execution time: 99_344_000 picoseconds. + Weight::from_parts(65_055_254, 0) .saturating_add(Weight::from_parts(0, 35665)) - // Standard Error: 101_036 - .saturating_add(Weight::from_parts(35_735_298, 0).saturating_mul(r.into())) + // Standard Error: 56_024 + .saturating_add(Weight::from_parts(37_036_575, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -172,11 +169,11 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `550 + r * (294 ±0)` // Estimated: `35665 + r * (34675 ±0)` - // Minimum execution time: 92_101_000 picoseconds. - Weight::from_parts(58_494_298, 0) + // Minimum execution time: 94_108_000 picoseconds. + Weight::from_parts(59_324_092, 0) .saturating_add(Weight::from_parts(0, 35665)) - // Standard Error: 56_546 - .saturating_add(Weight::from_parts(36_463_171, 0).saturating_mul(r.into())) + // Standard Error: 54_774 + .saturating_add(Weight::from_parts(37_501_988, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -191,8 +188,8 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `580` // Estimated: `35665` - // Minimum execution time: 11_732_000 picoseconds. - Weight::from_parts(12_043_000, 0) + // Minimum execution time: 12_120_000 picoseconds. + Weight::from_parts(12_370_000, 0) .saturating_add(Weight::from_parts(0, 35665)) .saturating_add(T::DbWeight::get().reads(2)) } @@ -203,11 +200,11 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `308 + c * (240 ±0)` // Estimated: `35665 + c * (34675 ±0)` - // Minimum execution time: 10_893_000 picoseconds. - Weight::from_parts(7_787_310, 0) + // Minimum execution time: 11_191_000 picoseconds. + Weight::from_parts(8_205_044, 0) .saturating_add(Weight::from_parts(0, 35665)) - // Standard Error: 15_306 - .saturating_add(Weight::from_parts(3_597_394, 0).saturating_mul(c.into())) + // Standard Error: 16_489 + .saturating_add(Weight::from_parts(3_577_309, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(Weight::from_parts(0, 34675).saturating_mul(c.into())) @@ -219,11 +216,11 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `308 + c * (240 ±0)` // Estimated: `35665 + c * (34675 ±0)` - // Minimum execution time: 10_869_000 picoseconds. - Weight::from_parts(7_855_382, 0) + // Minimum execution time: 11_026_000 picoseconds. + Weight::from_parts(8_118_984, 0) .saturating_add(Weight::from_parts(0, 35665)) - // Standard Error: 16_019 - .saturating_add(Weight::from_parts(3_577_958, 0).saturating_mul(c.into())) + // Standard Error: 16_663 + .saturating_add(Weight::from_parts(3_602_329, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(Weight::from_parts(0, 34675).saturating_mul(c.into())) @@ -240,8 +237,8 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `796` // Estimated: `35665` - // Minimum execution time: 84_824_000 picoseconds. - Weight::from_parts(85_612_000, 0) + // Minimum execution time: 85_392_000 picoseconds. + Weight::from_parts(85_825_000, 0) .saturating_add(Weight::from_parts(0, 35665)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -258,8 +255,8 @@ impl delegation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `652` // Estimated: `35665` - // Minimum execution time: 78_639_000 picoseconds. - Weight::from_parts(79_283_000, 0) + // Minimum execution time: 78_337_000 picoseconds. + Weight::from_parts(78_907_000, 0) .saturating_add(Weight::from_parts(0, 35665)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtimes/spiritnet/src/weights/did.rs b/runtimes/spiritnet/src/weights/did.rs index a5c92f282..a0e020198 100644 --- a/runtimes/spiritnet/src/weights/did.rs +++ b/runtimes/spiritnet/src/weights/did.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `did` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=did // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/did.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -69,13 +66,13 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `361` // Estimated: `6204` - // Minimum execution time: 179_645_000 picoseconds. - Weight::from_parts(140_140_433, 0) + // Minimum execution time: 176_973_000 picoseconds. + Weight::from_parts(133_408_697, 0) .saturating_add(Weight::from_parts(0, 6204)) - // Standard Error: 66_286 - .saturating_add(Weight::from_parts(1_325_294, 0).saturating_mul(n.into())) - // Standard Error: 25_628 - .saturating_add(Weight::from_parts(27_990_119, 0).saturating_mul(c.into())) + // Standard Error: 51_356 + .saturating_add(Weight::from_parts(1_751_839, 0).saturating_mul(n.into())) + // Standard Error: 19_855 + .saturating_add(Weight::from_parts(27_251_487, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) @@ -100,13 +97,13 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `361` // Estimated: `6204` - // Minimum execution time: 174_477_000 picoseconds. - Weight::from_parts(122_131_516, 0) + // Minimum execution time: 171_062_000 picoseconds. + Weight::from_parts(119_666_671, 0) .saturating_add(Weight::from_parts(0, 6204)) - // Standard Error: 53_422 - .saturating_add(Weight::from_parts(1_616_614, 0).saturating_mul(n.into())) - // Standard Error: 20_654 - .saturating_add(Weight::from_parts(36_170_906, 0).saturating_mul(c.into())) + // Standard Error: 48_358 + .saturating_add(Weight::from_parts(1_890_352, 0).saturating_mul(n.into())) + // Standard Error: 18_696 + .saturating_add(Weight::from_parts(35_020_564, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) @@ -127,15 +124,17 @@ impl did::WeightInfo for WeightInfo { /// Proof: `Migration::MigratedKeys` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// The range of component `n` is `[1, 10]`. /// The range of component `c` is `[1, 25]`. - fn create_ecdsa_keys(_n: u32, c: u32, ) -> Weight { + fn create_ecdsa_keys(n: u32, c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `361` // Estimated: `6204` - // Minimum execution time: 160_082_000 picoseconds. - Weight::from_parts(149_830_386, 0) + // Minimum execution time: 160_489_000 picoseconds. + Weight::from_parts(124_935_814, 0) .saturating_add(Weight::from_parts(0, 6204)) - // Standard Error: 33_424 - .saturating_add(Weight::from_parts(22_228_318, 0).saturating_mul(c.into())) + // Standard Error: 51_958 + .saturating_add(Weight::from_parts(1_560_046, 0).saturating_mul(n.into())) + // Standard Error: 20_088 + .saturating_add(Weight::from_parts(22_322_852, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(6)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) @@ -159,11 +158,11 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `724 + c * (105 ±0)` // Estimated: `5777 + c * (6690 ±0)` - // Minimum execution time: 59_047_000 picoseconds. - Weight::from_parts(59_454_165, 0) + // Minimum execution time: 59_810_000 picoseconds. + Weight::from_parts(60_401_804, 0) .saturating_add(Weight::from_parts(0, 5777)) - // Standard Error: 3_867 - .saturating_add(Weight::from_parts(1_196_375, 0).saturating_mul(c.into())) + // Standard Error: 4_257 + .saturating_add(Weight::from_parts(1_178_996, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -189,11 +188,11 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `724 + c * (105 ±0)` // Estimated: `5777 + c * (6690 ±0)` - // Minimum execution time: 61_094_000 picoseconds. - Weight::from_parts(61_617_698, 0) + // Minimum execution time: 61_825_000 picoseconds. + Weight::from_parts(62_492_426, 0) .saturating_add(Weight::from_parts(0, 5777)) - // Standard Error: 17_827 - .saturating_add(Weight::from_parts(1_213_047, 0).saturating_mul(c.into())) + // Standard Error: 4_427 + .saturating_add(Weight::from_parts(1_200_699, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -206,8 +205,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `352` // Estimated: `5777` - // Minimum execution time: 69_858_000 picoseconds. - Weight::from_parts(71_302_000, 0) + // Minimum execution time: 70_186_000 picoseconds. + Weight::from_parts(71_440_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -218,8 +217,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `352` // Estimated: `5777` - // Minimum execution time: 56_726_000 picoseconds. - Weight::from_parts(57_659_000, 0) + // Minimum execution time: 56_736_000 picoseconds. + Weight::from_parts(57_649_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -230,8 +229,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `353` // Estimated: `5777` - // Minimum execution time: 59_676_000 picoseconds. - Weight::from_parts(60_698_000, 0) + // Minimum execution time: 60_269_000 picoseconds. + Weight::from_parts(61_138_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -250,8 +249,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 73_313_000 picoseconds. - Weight::from_parts(74_181_000, 0) + // Minimum execution time: 74_565_000 picoseconds. + Weight::from_parts(75_782_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -270,8 +269,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 73_640_000 picoseconds. - Weight::from_parts(75_533_000, 0) + // Minimum execution time: 74_622_000 picoseconds. + Weight::from_parts(75_676_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -290,8 +289,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 73_143_000 picoseconds. - Weight::from_parts(74_398_000, 0) + // Minimum execution time: 74_289_000 picoseconds. + Weight::from_parts(75_080_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -308,10 +307,10 @@ impl did::WeightInfo for WeightInfo { /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn set_ed25519_delegation_key() -> Weight { // Proof Size summary in bytes: - // Measured: `1772` + // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 73_982_000 picoseconds. - Weight::from_parts(74_831_000, 0) + // Minimum execution time: 74_415_000 picoseconds. + Weight::from_parts(75_295_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -330,8 +329,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 72_948_000 picoseconds. - Weight::from_parts(74_124_000, 0) + // Minimum execution time: 74_011_000 picoseconds. + Weight::from_parts(74_796_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -350,8 +349,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 72_776_000 picoseconds. - Weight::from_parts(73_973_000, 0) + // Minimum execution time: 73_957_000 picoseconds. + Weight::from_parts(75_442_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -370,8 +369,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 71_002_000 picoseconds. - Weight::from_parts(72_014_000, 0) + // Minimum execution time: 72_328_000 picoseconds. + Weight::from_parts(73_232_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -390,8 +389,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 71_170_000 picoseconds. - Weight::from_parts(72_281_000, 0) + // Minimum execution time: 72_351_000 picoseconds. + Weight::from_parts(73_173_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -410,8 +409,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 70_930_000 picoseconds. - Weight::from_parts(71_820_000, 0) + // Minimum execution time: 72_334_000 picoseconds. + Weight::from_parts(73_222_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -430,8 +429,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 73_075_000 picoseconds. - Weight::from_parts(74_451_000, 0) + // Minimum execution time: 73_832_000 picoseconds. + Weight::from_parts(74_490_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -450,8 +449,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 72_776_000 picoseconds. - Weight::from_parts(73_833_000, 0) + // Minimum execution time: 73_858_000 picoseconds. + Weight::from_parts(74_315_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -470,8 +469,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 72_958_000 picoseconds. - Weight::from_parts(74_260_000, 0) + // Minimum execution time: 74_117_000 picoseconds. + Weight::from_parts(75_374_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -490,8 +489,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 70_897_000 picoseconds. - Weight::from_parts(72_155_000, 0) + // Minimum execution time: 72_357_000 picoseconds. + Weight::from_parts(73_038_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -510,8 +509,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 72_222_000 picoseconds. - Weight::from_parts(73_100_000, 0) + // Minimum execution time: 72_826_000 picoseconds. + Weight::from_parts(73_339_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -530,8 +529,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 71_533_000 picoseconds. - Weight::from_parts(72_491_000, 0) + // Minimum execution time: 72_202_000 picoseconds. + Weight::from_parts(73_007_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -550,8 +549,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1629` // Estimated: `5777` - // Minimum execution time: 73_781_000 picoseconds. - Weight::from_parts(74_430_000, 0) + // Minimum execution time: 73_957_000 picoseconds. + Weight::from_parts(74_657_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -570,8 +569,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1629` // Estimated: `5777` - // Minimum execution time: 72_993_000 picoseconds. - Weight::from_parts(74_268_000, 0) + // Minimum execution time: 73_945_000 picoseconds. + Weight::from_parts(74_721_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -590,8 +589,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1632` // Estimated: `5777` - // Minimum execution time: 74_264_000 picoseconds. - Weight::from_parts(75_192_000, 0) + // Minimum execution time: 73_810_000 picoseconds. + Weight::from_parts(74_683_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -610,8 +609,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 71_437_000 picoseconds. - Weight::from_parts(72_238_000, 0) + // Minimum execution time: 72_802_000 picoseconds. + Weight::from_parts(73_597_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -630,8 +629,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1735` // Estimated: `5777` - // Minimum execution time: 71_933_000 picoseconds. - Weight::from_parts(72_751_000, 0) + // Minimum execution time: 73_390_000 picoseconds. + Weight::from_parts(74_066_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -650,8 +649,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1738` // Estimated: `5777` - // Minimum execution time: 71_479_000 picoseconds. - Weight::from_parts(72_521_000, 0) + // Minimum execution time: 73_145_000 picoseconds. + Weight::from_parts(74_119_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -672,8 +671,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1135` // Estimated: `7680` - // Minimum execution time: 88_127_000 picoseconds. - Weight::from_parts(89_305_000, 0) + // Minimum execution time: 89_179_000 picoseconds. + Weight::from_parts(90_179_000, 0) .saturating_add(Weight::from_parts(0, 7680)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(6)) @@ -694,8 +693,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `5318` // Estimated: `7680` - // Minimum execution time: 82_371_000 picoseconds. - Weight::from_parts(83_453_000, 0) + // Minimum execution time: 83_996_000 picoseconds. + Weight::from_parts(85_096_000, 0) .saturating_add(Weight::from_parts(0, 7680)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(6)) @@ -707,11 +706,11 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1626` // Estimated: `5777` - // Minimum execution time: 46_835_000 picoseconds. - Weight::from_parts(26_104_235, 0) + // Minimum execution time: 46_791_000 picoseconds. + Weight::from_parts(24_014_059, 0) .saturating_add(Weight::from_parts(0, 5777)) // Standard Error: 0 - .saturating_add(Weight::from_parts(4_280, 0).saturating_mul(l.into())) + .saturating_add(Weight::from_parts(4_258, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: `Did::Did` (r:1 w:0) @@ -721,11 +720,11 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1626` // Estimated: `5777` - // Minimum execution time: 59_948_000 picoseconds. - Weight::from_parts(36_083_978, 0) + // Minimum execution time: 59_839_000 picoseconds. + Weight::from_parts(38_836_887, 0) .saturating_add(Weight::from_parts(0, 5777)) // Standard Error: 0 - .saturating_add(Weight::from_parts(2_362, 0).saturating_mul(l.into())) + .saturating_add(Weight::from_parts(2_355, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: `Did::Did` (r:1 w:0) @@ -735,11 +734,11 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1627` // Estimated: `5777` - // Minimum execution time: 49_515_000 picoseconds. - Weight::from_parts(22_529_728, 0) + // Minimum execution time: 49_848_000 picoseconds. + Weight::from_parts(23_323_718, 0) .saturating_add(Weight::from_parts(0, 5777)) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_165, 0).saturating_mul(l.into())) + .saturating_add(Weight::from_parts(1_157, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: `Migration::MigratedKeys` (r:1 w:1) @@ -754,8 +753,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `519` // Estimated: `5777` - // Minimum execution time: 65_775_000 picoseconds. - Weight::from_parts(66_720_000, 0) + // Minimum execution time: 65_167_000 picoseconds. + Weight::from_parts(66_563_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -772,8 +771,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `463` // Estimated: `5777` - // Minimum execution time: 32_895_000 picoseconds. - Weight::from_parts(33_748_000, 0) + // Minimum execution time: 33_782_000 picoseconds. + Weight::from_parts(34_298_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -784,8 +783,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `353` // Estimated: `5777` - // Minimum execution time: 17_099_000 picoseconds. - Weight::from_parts(17_324_000, 0) + // Minimum execution time: 17_727_000 picoseconds. + Weight::from_parts(17_986_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -803,8 +802,8 @@ impl did::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `323` // Estimated: `6204` - // Minimum execution time: 77_079_000 picoseconds. - Weight::from_parts(77_988_000, 0) + // Minimum execution time: 77_017_000 picoseconds. + Weight::from_parts(77_712_000, 0) .saturating_add(Weight::from_parts(0, 6204)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) diff --git a/runtimes/spiritnet/src/weights/frame_system.rs b/runtimes/spiritnet/src/weights/frame_system.rs index 28e16b657..c0d2e8683 100644 --- a/runtimes/spiritnet/src/weights/frame_system.rs +++ b/runtimes/spiritnet/src/weights/frame_system.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=frame-system // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/frame_system.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -54,22 +51,22 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_170_000 picoseconds. - Weight::from_parts(2_200_000, 0) + // Minimum execution time: 2_027_000 picoseconds. + Weight::from_parts(2_129_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(391, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(390, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_826_000 picoseconds. - Weight::from_parts(5_937_000, 0) + // Minimum execution time: 5_947_000 picoseconds. + Weight::from_parts(6_159_000, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_548, 0).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_555, 0).saturating_mul(b.into())) } /// Storage: `System::Digest` (r:1 w:1) /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -79,8 +76,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1485` - // Minimum execution time: 3_795_000 picoseconds. - Weight::from_parts(3_957_000, 0) + // Minimum execution time: 3_970_000 picoseconds. + Weight::from_parts(4_165_000, 0) .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -101,8 +98,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `127` // Estimated: `1612` - // Minimum execution time: 101_619_838_000 picoseconds. - Weight::from_parts(103_955_584_000, 0) + // Minimum execution time: 101_415_613_000 picoseconds. + Weight::from_parts(106_019_448_000, 0) .saturating_add(Weight::from_parts(0, 1612)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -114,11 +111,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_248_000 picoseconds. - Weight::from_parts(2_336_000, 0) + // Minimum execution time: 2_190_000 picoseconds. + Weight::from_parts(2_292_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_870 - .saturating_add(Weight::from_parts(736_156, 0).saturating_mul(i.into())) + // Standard Error: 2_011 + .saturating_add(Weight::from_parts(740_618, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -128,11 +125,11 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_220_000 picoseconds. - Weight::from_parts(2_271_000, 0) + // Minimum execution time: 2_261_000 picoseconds. + Weight::from_parts(2_346_000, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 766 - .saturating_add(Weight::from_parts(529_745, 0).saturating_mul(i.into())) + // Standard Error: 826 + .saturating_add(Weight::from_parts(524_685, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -140,13 +137,13 @@ impl frame_system::WeightInfo for WeightInfo { /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `82 + p * (69 ±0)` - // Estimated: `91 + p * (70 ±0)` - // Minimum execution time: 4_183_000 picoseconds. - Weight::from_parts(4_309_000, 0) - .saturating_add(Weight::from_parts(0, 91)) - // Standard Error: 923 - .saturating_add(Weight::from_parts(1_027_074, 0).saturating_mul(p.into())) + // Measured: `87 + p * (69 ±0)` + // Estimated: `93 + p * (70 ±0)` + // Minimum execution time: 4_110_000 picoseconds. + Weight::from_parts(4_262_000, 0) + .saturating_add(Weight::from_parts(0, 93)) + // Standard Error: 1_033 + .saturating_add(Weight::from_parts(1_061_039, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) @@ -157,8 +154,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_754_000 picoseconds. - Weight::from_parts(8_184_000, 0) + // Minimum execution time: 7_952_000 picoseconds. + Weight::from_parts(8_393_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -180,8 +177,8 @@ impl frame_system::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `149` // Estimated: `1634` - // Minimum execution time: 104_821_125_000 picoseconds. - Weight::from_parts(106_523_390_000, 0) + // Minimum execution time: 103_716_668_000 picoseconds. + Weight::from_parts(106_722_985_000, 0) .saturating_add(Weight::from_parts(0, 1634)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -223,7 +220,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 91 + > 93 ); } #[test] diff --git a/runtimes/spiritnet/src/weights/pallet_asset_switch.rs b/runtimes/spiritnet/src/weights/pallet_asset_switch.rs index 5cdbfd9a2..4ede2119a 100644 --- a/runtimes/spiritnet/src/weights/pallet_asset_switch.rs +++ b/runtimes/spiritnet/src/weights/pallet_asset_switch.rs @@ -1,26 +1,40 @@ +// KILT Blockchain – https://botlabs.org +// Copyright (C) 2019-2024 BOTLabs GmbH + +// The KILT Blockchain is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The KILT Blockchain is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// If you feel like getting in touch with us, you can do so at info@botlabs.org //! Autogenerated weights for `pallet_asset_switch` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-08-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 // Executed Command: -// ./target/debug/kilt-parachain +// ./target/release/kilt-parachain // benchmark // pallet +// --heap-pages=4096 // --chain=spiritnet-dev -// --steps=50 -// --repeat=20 // --pallet=pallet-asset-switch // --extrinsic=* -// --execution=wasm -// --wasm-execution=compiled -// --heap-pages=4096 -// --output=./runtimes/spiritnet/src/weights/ +// --header=HEADER-GPL // --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -34,40 +48,53 @@ pub struct WeightInfo(PhantomData); impl pallet_asset_switch::WeightInfo for WeightInfo { /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:1) /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (r:1 w:0) + /// Proof: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::NextQueryId` (r:0 w:1) + /// Proof: `AssetSwitchPool1::NextQueryId` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn set_switch_pair() -> Weight { // Proof Size summary in bytes: // Measured: `220` // Estimated: `3597` - // Minimum execution time: 201_873_000 picoseconds. - Weight::from_parts(203_847_000, 0) + // Minimum execution time: 21_577_000 picoseconds. + Weight::from_parts(21_927_000, 0) .saturating_add(Weight::from_parts(0, 3597)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (r:1 w:0) + /// Proof: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::NextQueryId` (r:0 w:1) + /// Proof: `AssetSwitchPool1::NextQueryId` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) /// Storage: `AssetSwitchPool1::SwitchPair` (r:0 w:1) /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) fn force_set_switch_pair() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 99_925_000 picoseconds. - Weight::from_parts(101_714_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) + // Measured: `76` + // Estimated: `1489` + // Minimum execution time: 14_537_000 picoseconds. + Weight::from_parts(15_033_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (r:1 w:0) + /// Proof: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:1) /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::NextQueryId` (r:0 w:1) + /// Proof: `AssetSwitchPool1::NextQueryId` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn force_unset_switch_pair() -> Weight { // Proof Size summary in bytes: // Measured: `218` // Estimated: `3424` - // Minimum execution time: 113_309_000 picoseconds. - Weight::from_parts(116_506_000, 0) + // Minimum execution time: 14_243_000 picoseconds. + Weight::from_parts(14_557_000, 0) .saturating_add(Weight::from_parts(0, 3424)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:1) /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) @@ -75,8 +102,8 @@ impl pallet_asset_switch::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `218` // Estimated: `3424` - // Minimum execution time: 88_871_000 picoseconds. - Weight::from_parts(89_525_000, 0) + // Minimum execution time: 10_402_000 picoseconds. + Weight::from_parts(10_538_000, 0) .saturating_add(Weight::from_parts(0, 3424)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -87,8 +114,8 @@ impl pallet_asset_switch::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `218` // Estimated: `3424` - // Minimum execution time: 115_902_000 picoseconds. - Weight::from_parts(118_293_000, 0) + // Minimum execution time: 14_172_000 picoseconds. + Weight::from_parts(14_525_000, 0) .saturating_add(Weight::from_parts(0, 3424)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -99,8 +126,8 @@ impl pallet_asset_switch::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `218` // Estimated: `3424` - // Minimum execution time: 91_074_000 picoseconds. - Weight::from_parts(92_105_000, 0) + // Minimum execution time: 10_715_000 picoseconds. + Weight::from_parts(10_963_000, 0) .saturating_add(Weight::from_parts(0, 3424)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -109,6 +136,10 @@ impl pallet_asset_switch::WeightInfo for WeightInfo /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:2 w:2) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::NextQueryId` (r:1 w:1) + /// Proof: `AssetSwitchPool1::NextQueryId` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) @@ -123,17 +154,21 @@ impl pallet_asset_switch::WeightInfo for WeightInfo /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AssetSwitchPool1::PendingSwitchConfirmations` (r:1 w:1) + /// Proof: `AssetSwitchPool1::PendingSwitchConfirmations` (`max_values`: None, `max_size`: Some(666), added: 3141, mode: `MaxEncodedLen`) + /// Storage: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (r:1 w:1) + /// Proof: `AssetSwitchPool1::CounterForPendingSwitchConfirmations` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn switch() -> Weight { // Proof Size summary in bytes: - // Measured: `1091` + // Measured: `1123` // Estimated: `6204` - // Minimum execution time: 1_543_529_000 picoseconds. - Weight::from_parts(1_578_149_000, 0) + // Minimum execution time: 163_094_000 picoseconds. + Weight::from_parts(164_044_000, 0) .saturating_add(Weight::from_parts(0, 6204)) - .saturating_add(T::DbWeight::get().reads(10)) - .saturating_add(T::DbWeight::get().writes(8)) + .saturating_add(T::DbWeight::get().reads(14)) + .saturating_add(T::DbWeight::get().writes(11)) } } @@ -152,6 +187,18 @@ mod tests { ); } #[test] + fn test_force_set_switch_pair() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 1489 + ); + } + #[test] fn test_force_unset_switch_pair() { assert!( ::BlockWeights::get() diff --git a/runtimes/spiritnet/src/weights/pallet_assets.rs b/runtimes/spiritnet/src/weights/pallet_assets.rs index a636a8ee8..5b6e134cc 100644 --- a/runtimes/spiritnet/src/weights/pallet_assets.rs +++ b/runtimes/spiritnet/src/weights/pallet_assets.rs @@ -1,26 +1,40 @@ +// KILT Blockchain – https://botlabs.org +// Copyright (C) 2019-2024 BOTLabs GmbH + +// The KILT Blockchain is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The KILT Blockchain is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// If you feel like getting in touch with us, you can do so at info@botlabs.org //! Autogenerated weights for `pallet_assets` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-08-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 // Executed Command: -// ./target/debug/kilt-parachain +// ./target/release/kilt-parachain // benchmark // pallet +// --heap-pages=4096 // --chain=spiritnet-dev -// --steps=50 -// --repeat=20 // --pallet=pallet-assets // --extrinsic=* -// --execution=wasm -// --wasm-execution=compiled -// --heap-pages=4096 -// --output=./runtimes/spiritnet/src/weights/ +// --header=HEADER-GPL // --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -38,8 +52,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `4273` - // Minimum execution time: 670_284_000 picoseconds. - Weight::from_parts(830_855_000, 0) + // Minimum execution time: 12_990_000 picoseconds. + Weight::from_parts(13_354_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -50,8 +64,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `4273` - // Minimum execution time: 699_768_000 picoseconds. - Weight::from_parts(784_398_000, 0) + // Minimum execution time: 12_412_000 picoseconds. + Weight::from_parts(12_698_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -62,8 +76,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `312` // Estimated: `4273` - // Minimum execution time: 697_104_000 picoseconds. - Weight::from_parts(761_710_000, 0) + // Minimum execution time: 12_475_000 picoseconds. + Weight::from_parts(12_637_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -79,11 +93,11 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + c * (212 ±0)` // Estimated: `4273 + c * (3207 ±0)` - // Minimum execution time: 929_714_000 picoseconds. - Weight::from_parts(2_652_804_841, 0) + // Minimum execution time: 17_227_000 picoseconds. + Weight::from_parts(17_570_000, 0) .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 6_621_016 - .saturating_add(Weight::from_parts(178_537_863, 0).saturating_mul(c.into())) + // Standard Error: 6_458 + .saturating_add(Weight::from_parts(12_504_186, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -99,11 +113,11 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `447 + a * (86 ±0)` // Estimated: `4273 + a * (3221 ±0)` - // Minimum execution time: 183_722_000 picoseconds. - Weight::from_parts(185_234_000, 0) + // Minimum execution time: 17_777_000 picoseconds. + Weight::from_parts(18_011_000, 0) .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 309_726 - .saturating_add(Weight::from_parts(68_577_378, 0).saturating_mul(a.into())) + // Standard Error: 3_559 + .saturating_add(Weight::from_parts(4_838_162, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -118,8 +132,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 158_427_000 picoseconds. - Weight::from_parts(160_668_000, 0) + // Minimum execution time: 14_127_000 picoseconds. + Weight::from_parts(14_462_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -132,8 +146,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 282_826_000 picoseconds. - Weight::from_parts(287_541_000, 0) + // Minimum execution time: 24_361_000 picoseconds. + Weight::from_parts(24_741_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -146,8 +160,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `384` // Estimated: `4273` - // Minimum execution time: 390_440_000 picoseconds. - Weight::from_parts(398_994_000, 0) + // Minimum execution time: 31_117_000 picoseconds. + Weight::from_parts(31_494_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -162,8 +176,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `436` // Estimated: `7404` - // Minimum execution time: 554_247_000 picoseconds. - Weight::from_parts(561_657_000, 0) + // Minimum execution time: 43_914_000 picoseconds. + Weight::from_parts(44_512_000, 0) .saturating_add(Weight::from_parts(0, 7404)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -178,8 +192,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `436` // Estimated: `7404` - // Minimum execution time: 505_609_000 picoseconds. - Weight::from_parts(511_182_000, 0) + // Minimum execution time: 39_609_000 picoseconds. + Weight::from_parts(40_103_000, 0) .saturating_add(Weight::from_parts(0, 7404)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -194,8 +208,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `436` // Estimated: `7404` - // Minimum execution time: 553_195_000 picoseconds. - Weight::from_parts(557_682_000, 0) + // Minimum execution time: 43_784_000 picoseconds. + Weight::from_parts(44_349_000, 0) .saturating_add(Weight::from_parts(0, 7404)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -208,8 +222,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `384` // Estimated: `4273` - // Minimum execution time: 185_832_000 picoseconds. - Weight::from_parts(188_556_000, 0) + // Minimum execution time: 16_594_000 picoseconds. + Weight::from_parts(16_888_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -222,8 +236,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `384` // Estimated: `4273` - // Minimum execution time: 185_944_000 picoseconds. - Weight::from_parts(189_359_000, 0) + // Minimum execution time: 16_399_000 picoseconds. + Weight::from_parts(16_601_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -234,8 +248,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `312` // Estimated: `4273` - // Minimum execution time: 129_754_000 picoseconds. - Weight::from_parts(132_353_000, 0) + // Minimum execution time: 12_332_000 picoseconds. + Weight::from_parts(12_531_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -246,8 +260,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `312` // Estimated: `4273` - // Minimum execution time: 129_422_000 picoseconds. - Weight::from_parts(134_030_000, 0) + // Minimum execution time: 12_173_000 picoseconds. + Weight::from_parts(12_547_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -260,8 +274,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 164_227_000 picoseconds. - Weight::from_parts(166_823_000, 0) + // Minimum execution time: 15_302_000 picoseconds. + Weight::from_parts(15_583_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -272,8 +286,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 138_887_000 picoseconds. - Weight::from_parts(142_103_000, 0) + // Minimum execution time: 13_400_000 picoseconds. + Weight::from_parts(13_735_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -284,13 +298,17 @@ impl pallet_assets::WeightInfo for WeightInfo { /// Proof: `Fungibles::Metadata` (`max_values`: None, `max_size`: Some(646), added: 3121, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 4]`. /// The range of component `s` is `[0, 4]`. - fn set_metadata(_n: u32, _s: u32, ) -> Weight { + fn set_metadata(n: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 153_483_000 picoseconds. - Weight::from_parts(166_947_854, 0) + // Minimum execution time: 14_929_000 picoseconds. + Weight::from_parts(15_185_727, 0) .saturating_add(Weight::from_parts(0, 4273)) + // Standard Error: 3_594 + .saturating_add(Weight::from_parts(77_286, 0).saturating_mul(n.into())) + // Standard Error: 3_594 + .saturating_add(Weight::from_parts(71_572, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -302,8 +320,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `346` // Estimated: `4273` - // Minimum execution time: 161_504_000 picoseconds. - Weight::from_parts(163_432_000, 0) + // Minimum execution time: 14_969_000 picoseconds. + Weight::from_parts(15_516_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -318,13 +336,13 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `117` // Estimated: `4273` - // Minimum execution time: 153_719_000 picoseconds. - Weight::from_parts(156_756_127, 0) + // Minimum execution time: 13_550_000 picoseconds. + Weight::from_parts(13_780_173, 0) .saturating_add(Weight::from_parts(0, 4273)) - // Standard Error: 42_141 - .saturating_add(Weight::from_parts(47_279, 0).saturating_mul(n.into())) - // Standard Error: 42_141 - .saturating_add(Weight::from_parts(606_325, 0).saturating_mul(s.into())) + // Standard Error: 3_130 + .saturating_add(Weight::from_parts(67_919, 0).saturating_mul(n.into())) + // Standard Error: 3_130 + .saturating_add(Weight::from_parts(78_095, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -336,8 +354,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `346` // Estimated: `4273` - // Minimum execution time: 159_022_000 picoseconds. - Weight::from_parts(159_860_000, 0) + // Minimum execution time: 14_749_000 picoseconds. + Weight::from_parts(14_975_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -348,8 +366,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 127_227_000 picoseconds. - Weight::from_parts(128_014_000, 0) + // Minimum execution time: 12_399_000 picoseconds. + Weight::from_parts(12_619_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -362,8 +380,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `312` // Estimated: `4273` - // Minimum execution time: 207_749_000 picoseconds. - Weight::from_parts(209_271_000, 0) + // Minimum execution time: 18_924_000 picoseconds. + Weight::from_parts(19_328_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -380,8 +398,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `604` // Estimated: `7404` - // Minimum execution time: 639_409_000 picoseconds. - Weight::from_parts(644_412_000, 0) + // Minimum execution time: 53_528_000 picoseconds. + Weight::from_parts(53_929_000, 0) .saturating_add(Weight::from_parts(0, 7404)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -394,8 +412,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `480` // Estimated: `4273` - // Minimum execution time: 230_433_000 picoseconds. - Weight::from_parts(238_922_000, 0) + // Minimum execution time: 21_272_000 picoseconds. + Weight::from_parts(21_810_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -408,8 +426,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `480` // Estimated: `4273` - // Minimum execution time: 230_209_000 picoseconds. - Weight::from_parts(232_202_000, 0) + // Minimum execution time: 21_557_000 picoseconds. + Weight::from_parts(22_160_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -420,8 +438,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 149_517_000 picoseconds. - Weight::from_parts(150_361_000, 0) + // Minimum execution time: 13_516_000 picoseconds. + Weight::from_parts(13_657_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -434,8 +452,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 220_867_000 picoseconds. - Weight::from_parts(223_534_000, 0) + // Minimum execution time: 19_604_000 picoseconds. + Weight::from_parts(19_894_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -448,8 +466,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `278` // Estimated: `4273` - // Minimum execution time: 212_910_000 picoseconds. - Weight::from_parts(215_017_000, 0) + // Minimum execution time: 18_576_000 picoseconds. + Weight::from_parts(19_033_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -462,8 +480,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `402` // Estimated: `4273` - // Minimum execution time: 200_001_000 picoseconds. - Weight::from_parts(202_074_000, 0) + // Minimum execution time: 16_671_000 picoseconds. + Weight::from_parts(16_923_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -476,8 +494,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `435` // Estimated: `4273` - // Minimum execution time: 194_374_000 picoseconds. - Weight::from_parts(195_424_000, 0) + // Minimum execution time: 16_362_000 picoseconds. + Weight::from_parts(16_623_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -490,8 +508,8 @@ impl pallet_assets::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `384` // Estimated: `4273` - // Minimum execution time: 176_392_000 picoseconds. - Weight::from_parts(178_538_000, 0) + // Minimum execution time: 16_273_000 picoseconds. + Weight::from_parts(16_707_000, 0) .saturating_add(Weight::from_parts(0, 4273)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtimes/spiritnet/src/weights/pallet_balances.rs b/runtimes/spiritnet/src/weights/pallet_balances.rs index f1584f926..620d5edc3 100644 --- a/runtimes/spiritnet/src/weights/pallet_balances.rs +++ b/runtimes/spiritnet/src/weights/pallet_balances.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-balances // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_balances.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +52,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107` // Estimated: `6204` - // Minimum execution time: 57_631_000 picoseconds. - Weight::from_parts(58_505_000, 0) + // Minimum execution time: 60_367_000 picoseconds. + Weight::from_parts(61_097_000, 0) .saturating_add(Weight::from_parts(0, 6204)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -67,8 +64,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3597` - // Minimum execution time: 36_640_000 picoseconds. - Weight::from_parts(37_398_000, 0) + // Minimum execution time: 38_107_000 picoseconds. + Weight::from_parts(38_607_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -79,8 +76,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `178` // Estimated: `3597` - // Minimum execution time: 15_909_000 picoseconds. - Weight::from_parts(16_256_000, 0) + // Minimum execution time: 15_966_000 picoseconds. + Weight::from_parts(16_456_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -91,8 +88,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `178` // Estimated: `3597` - // Minimum execution time: 20_849_000 picoseconds. - Weight::from_parts(21_268_000, 0) + // Minimum execution time: 21_620_000 picoseconds. + Weight::from_parts(22_092_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -103,8 +100,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `214` // Estimated: `8811` - // Minimum execution time: 60_228_000 picoseconds. - Weight::from_parts(60_901_000, 0) + // Minimum execution time: 63_229_000 picoseconds. + Weight::from_parts(63_610_000, 0) .saturating_add(Weight::from_parts(0, 8811)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -115,8 +112,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `3597` - // Minimum execution time: 44_815_000 picoseconds. - Weight::from_parts(45_343_000, 0) + // Minimum execution time: 46_415_000 picoseconds. + Weight::from_parts(46_804_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -127,8 +124,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `178` // Estimated: `3597` - // Minimum execution time: 18_525_000 picoseconds. - Weight::from_parts(18_948_000, 0) + // Minimum execution time: 18_689_000 picoseconds. + Weight::from_parts(19_251_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -140,11 +137,11 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + u * (140 ±0)` // Estimated: `990 + u * (2607 ±0)` - // Minimum execution time: 17_564_000 picoseconds. - Weight::from_parts(17_764_000, 0) + // Minimum execution time: 17_684_000 picoseconds. + Weight::from_parts(17_892_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 9_627 - .saturating_add(Weight::from_parts(12_525_557, 0).saturating_mul(u.into())) + // Standard Error: 9_500 + .saturating_add(Weight::from_parts(12_746_103, 0).saturating_mul(u.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) .saturating_add(Weight::from_parts(0, 2607).saturating_mul(u.into())) @@ -155,8 +152,8 @@ impl pallet_balances::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `1501` - // Minimum execution time: 6_375_000 picoseconds. - Weight::from_parts(6_719_000, 0) + // Minimum execution time: 6_884_000 picoseconds. + Weight::from_parts(7_001_000, 0) .saturating_add(Weight::from_parts(0, 1501)) .saturating_add(T::DbWeight::get().reads(1)) } diff --git a/runtimes/spiritnet/src/weights/pallet_collective_council.rs b/runtimes/spiritnet/src/weights/pallet_collective_council.rs index 3632a450d..25992add5 100644 --- a/runtimes/spiritnet/src/weights/pallet_collective_council.rs +++ b/runtimes/spiritnet/src/weights/pallet_collective_council.rs @@ -19,24 +19,21 @@ //! Autogenerated weights for `pallet_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-08-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-collective // --extrinsic=* +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs // --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] @@ -67,13 +64,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3194 ±0)` // Estimated: `15736 + m * (1967 ±16) + p * (4336 ±16)` - // Minimum execution time: 8_516_000 picoseconds. - Weight::from_parts(8_768_000, 0) + // Minimum execution time: 17_230_000 picoseconds. + Weight::from_parts(17_508_000, 0) .saturating_add(Weight::from_parts(0, 15736)) - // Standard Error: 25_842 - .saturating_add(Weight::from_parts(3_070_541, 0).saturating_mul(m.into())) - // Standard Error: 25_842 - .saturating_add(Weight::from_parts(4_631_676, 0).saturating_mul(p.into())) + // Standard Error: 43_510 + .saturating_add(Weight::from_parts(5_050_327, 0).saturating_mul(m.into())) + // Standard Error: 43_510 + .saturating_add(Weight::from_parts(7_521_604, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -91,13 +88,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69 + m * (32 ±0)` // Estimated: `1555 + m * (32 ±0)` - // Minimum execution time: 6_648_000 picoseconds. - Weight::from_parts(6_481_143, 0) + // Minimum execution time: 14_794_000 picoseconds. + Weight::from_parts(14_019_210, 0) .saturating_add(Weight::from_parts(0, 1555)) - // Standard Error: 12 - .saturating_add(Weight::from_parts(901, 0).saturating_mul(b.into())) - // Standard Error: 128 - .saturating_add(Weight::from_parts(6_901, 0).saturating_mul(m.into())) + // Standard Error: 13 + .saturating_add(Weight::from_parts(1_370, 0).saturating_mul(b.into())) + // Standard Error: 143 + .saturating_add(Weight::from_parts(15_986, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -113,13 +110,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `69 + m * (32 ±0)` // Estimated: `3535 + m * (32 ±0)` - // Minimum execution time: 7_995_000 picoseconds. - Weight::from_parts(7_547_575, 0) + // Minimum execution time: 17_590_000 picoseconds. + Weight::from_parts(16_852_500, 0) .saturating_add(Weight::from_parts(0, 3535)) - // Standard Error: 13 - .saturating_add(Weight::from_parts(966, 0).saturating_mul(b.into())) - // Standard Error: 135 - .saturating_add(Weight::from_parts(13_106, 0).saturating_mul(m.into())) + // Standard Error: 14 + .saturating_add(Weight::from_parts(1_395, 0).saturating_mul(b.into())) + // Standard Error: 147 + .saturating_add(Weight::from_parts(25_326, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -143,15 +140,15 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `359 + m * (32 ±0) + p * (36 ±0)` // Estimated: `3751 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 10_734_000 picoseconds. - Weight::from_parts(10_845_014, 0) + // Minimum execution time: 23_195_000 picoseconds. + Weight::from_parts(23_842_250, 0) .saturating_add(Weight::from_parts(0, 3751)) - // Standard Error: 37 - .saturating_add(Weight::from_parts(1_861, 0).saturating_mul(b.into())) - // Standard Error: 391 - .saturating_add(Weight::from_parts(12_504, 0).saturating_mul(m.into())) - // Standard Error: 386 - .saturating_add(Weight::from_parts(111_098, 0).saturating_mul(p.into())) + // Standard Error: 45 + .saturating_add(Weight::from_parts(2_173, 0).saturating_mul(b.into())) + // Standard Error: 476 + .saturating_add(Weight::from_parts(16_983, 0).saturating_mul(m.into())) + // Standard Error: 470 + .saturating_add(Weight::from_parts(128_955, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) @@ -167,11 +164,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `812 + m * (64 ±0)` // Estimated: `4276 + m * (64 ±0)` - // Minimum execution time: 12_360_000 picoseconds. - Weight::from_parts(13_143_385, 0) + // Minimum execution time: 20_884_000 picoseconds. + Weight::from_parts(21_332_779, 0) .saturating_add(Weight::from_parts(0, 4276)) - // Standard Error: 202 - .saturating_add(Weight::from_parts(21_186, 0).saturating_mul(m.into())) + // Standard Error: 222 + .saturating_add(Weight::from_parts(35_033, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -192,13 +189,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `401 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3846 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 12_388_000 picoseconds. - Weight::from_parts(13_266_787, 0) + // Minimum execution time: 25_300_000 picoseconds. + Weight::from_parts(26_195_443, 0) .saturating_add(Weight::from_parts(0, 3846)) - // Standard Error: 425 - .saturating_add(Weight::from_parts(16_504, 0).saturating_mul(m.into())) - // Standard Error: 414 - .saturating_add(Weight::from_parts(103_301, 0).saturating_mul(p.into())) + // Standard Error: 378 + .saturating_add(Weight::from_parts(20_170, 0).saturating_mul(m.into())) + // Standard Error: 369 + .saturating_add(Weight::from_parts(119_858, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -222,15 +219,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `703 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4020 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 17_675_000 picoseconds. - Weight::from_parts(18_489_344, 0) + // Minimum execution time: 35_332_000 picoseconds. + Weight::from_parts(36_688_573, 0) .saturating_add(Weight::from_parts(0, 4020)) - // Standard Error: 83 - .saturating_add(Weight::from_parts(1_943, 0).saturating_mul(b.into())) - // Standard Error: 884 - .saturating_add(Weight::from_parts(1_910, 0).saturating_mul(m.into())) - // Standard Error: 861 - .saturating_add(Weight::from_parts(134_652, 0).saturating_mul(p.into())) + // Standard Error: 122 + .saturating_add(Weight::from_parts(2_346, 0).saturating_mul(b.into())) + // Standard Error: 1_264 + .saturating_add(Weight::from_parts(165_804, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -255,13 +250,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `421 + m * (64 ±0) + p * (36 ±0)` // Estimated: `3866 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 13_574_000 picoseconds. - Weight::from_parts(13_875_488, 0) + // Minimum execution time: 27_354_000 picoseconds. + Weight::from_parts(27_847_477, 0) .saturating_add(Weight::from_parts(0, 3866)) - // Standard Error: 367 - .saturating_add(Weight::from_parts(19_617, 0).saturating_mul(m.into())) - // Standard Error: 358 - .saturating_add(Weight::from_parts(106_734, 0).saturating_mul(p.into())) + // Standard Error: 372 + .saturating_add(Weight::from_parts(25_210, 0).saturating_mul(m.into())) + // Standard Error: 363 + .saturating_add(Weight::from_parts(121_506, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -287,15 +282,13 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `723 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` // Estimated: `4040 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 18_520_000 picoseconds. - Weight::from_parts(20_236_953, 0) + // Minimum execution time: 37_352_000 picoseconds. + Weight::from_parts(39_108_221, 0) .saturating_add(Weight::from_parts(0, 4040)) - // Standard Error: 79 - .saturating_add(Weight::from_parts(1_300, 0).saturating_mul(b.into())) - // Standard Error: 843 - .saturating_add(Weight::from_parts(687, 0).saturating_mul(m.into())) - // Standard Error: 822 - .saturating_add(Weight::from_parts(136_320, 0).saturating_mul(p.into())) + // Standard Error: 126 + .saturating_add(Weight::from_parts(2_064, 0).saturating_mul(b.into())) + // Standard Error: 1_301 + .saturating_add(Weight::from_parts(165_900, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -314,11 +307,11 @@ impl pallet_collective::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `226 + p * (32 ±0)` // Estimated: `1711 + p * (32 ±0)` - // Minimum execution time: 6_711_000 picoseconds. - Weight::from_parts(7_962_060, 0) + // Minimum execution time: 14_935_000 picoseconds. + Weight::from_parts(16_592_791, 0) .saturating_add(Weight::from_parts(0, 1711)) - // Standard Error: 430 - .saturating_add(Weight::from_parts(93_156, 0).saturating_mul(p.into())) + // Standard Error: 370 + .saturating_add(Weight::from_parts(112_119, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) diff --git a/runtimes/spiritnet/src/weights/pallet_collective_technical_committee.rs b/runtimes/spiritnet/src/weights/pallet_collective_technical_committee.rs index 0054884db..6d9c22862 100644 --- a/runtimes/spiritnet/src/weights/pallet_collective_technical_committee.rs +++ b/runtimes/spiritnet/src/weights/pallet_collective_technical_committee.rs @@ -19,24 +19,21 @@ //! Autogenerated weights for `pallet_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-08-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `rust-2`, CPU: `12th Gen Intel(R) Core(TM) i9-12900K` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-collective // --extrinsic=* +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs // --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] @@ -66,14 +63,14 @@ impl pallet_collective::WeightInfo for WeightInfo { fn set_members(m: u32, _n: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + m * (3232 ±0) + p * (3194 ±0)` - // Estimated: `15736 + m * (1967 ±16) + p * (4336 ±16)` - // Minimum execution time: 8_480_000 picoseconds. - Weight::from_parts(8_687_000, 0) - .saturating_add(Weight::from_parts(0, 15736)) - // Standard Error: 25_771 - .saturating_add(Weight::from_parts(3_035_292, 0).saturating_mul(m.into())) - // Standard Error: 25_771 - .saturating_add(Weight::from_parts(4_613_880, 0).saturating_mul(p.into())) + // Estimated: `15770 + m * (1967 ±17) + p * (4336 ±17)` + // Minimum execution time: 17_181_000 picoseconds. + Weight::from_parts(17_442_000, 0) + .saturating_add(Weight::from_parts(0, 15770)) + // Standard Error: 44_333 + .saturating_add(Weight::from_parts(5_125_393, 0).saturating_mul(m.into())) + // Standard Error: 44_333 + .saturating_add(Weight::from_parts(7_664_397, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -89,15 +86,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 100]`. fn execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `69 + m * (32 ±0)` - // Estimated: `1555 + m * (32 ±0)` - // Minimum execution time: 6_690_000 picoseconds. - Weight::from_parts(6_424_657, 0) - .saturating_add(Weight::from_parts(0, 1555)) - // Standard Error: 10 - .saturating_add(Weight::from_parts(899, 0).saturating_mul(b.into())) - // Standard Error: 110 - .saturating_add(Weight::from_parts(7_213, 0).saturating_mul(m.into())) + // Measured: `103 + m * (32 ±0)` + // Estimated: `1589 + m * (32 ±0)` + // Minimum execution time: 14_950_000 picoseconds. + Weight::from_parts(14_105_990, 0) + .saturating_add(Weight::from_parts(0, 1589)) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_367, 0).saturating_mul(b.into())) + // Standard Error: 98 + .saturating_add(Weight::from_parts(15_469, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -111,15 +108,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 100]`. fn propose_execute(b: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `69 + m * (32 ±0)` - // Estimated: `3535 + m * (32 ±0)` - // Minimum execution time: 8_020_000 picoseconds. - Weight::from_parts(7_450_070, 0) - .saturating_add(Weight::from_parts(0, 3535)) - // Standard Error: 10 - .saturating_add(Weight::from_parts(984, 0).saturating_mul(b.into())) - // Standard Error: 109 - .saturating_add(Weight::from_parts(13_090, 0).saturating_mul(m.into())) + // Measured: `103 + m * (32 ±0)` + // Estimated: `3569 + m * (32 ±0)` + // Minimum execution time: 17_608_000 picoseconds. + Weight::from_parts(16_736_917, 0) + .saturating_add(Weight::from_parts(0, 3569)) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_397, 0).saturating_mul(b.into())) + // Standard Error: 96 + .saturating_add(Weight::from_parts(25_513, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } @@ -141,17 +138,17 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `359 + m * (32 ±0) + p * (36 ±0)` - // Estimated: `3751 + m * (33 ±0) + p * (36 ±0)` - // Minimum execution time: 10_852_000 picoseconds. - Weight::from_parts(10_659_778, 0) - .saturating_add(Weight::from_parts(0, 3751)) - // Standard Error: 37 - .saturating_add(Weight::from_parts(1_888, 0).saturating_mul(b.into())) - // Standard Error: 393 - .saturating_add(Weight::from_parts(13_052, 0).saturating_mul(m.into())) - // Standard Error: 388 - .saturating_add(Weight::from_parts(112_833, 0).saturating_mul(p.into())) + // Measured: `393 + m * (32 ±0) + p * (36 ±0)` + // Estimated: `3785 + m * (33 ±0) + p * (36 ±0)` + // Minimum execution time: 22_899_000 picoseconds. + Weight::from_parts(23_432_839, 0) + .saturating_add(Weight::from_parts(0, 3785)) + // Standard Error: 44 + .saturating_add(Weight::from_parts(2_143, 0).saturating_mul(b.into())) + // Standard Error: 465 + .saturating_add(Weight::from_parts(18_463, 0).saturating_mul(m.into())) + // Standard Error: 459 + .saturating_add(Weight::from_parts(129_764, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into())) @@ -165,13 +162,13 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `812 + m * (64 ±0)` - // Estimated: `4276 + m * (64 ±0)` - // Minimum execution time: 12_577_000 picoseconds. - Weight::from_parts(13_192_847, 0) - .saturating_add(Weight::from_parts(0, 4276)) - // Standard Error: 195 - .saturating_add(Weight::from_parts(21_445, 0).saturating_mul(m.into())) + // Measured: `846 + m * (64 ±0)` + // Estimated: `4310 + m * (64 ±0)` + // Minimum execution time: 21_033_000 picoseconds. + Weight::from_parts(21_483_179, 0) + .saturating_add(Weight::from_parts(0, 4310)) + // Standard Error: 238 + .saturating_add(Weight::from_parts(34_084, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -190,15 +187,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `401 + m * (64 ±0) + p * (36 ±0)` - // Estimated: `3846 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 12_546_000 picoseconds. - Weight::from_parts(13_273_449, 0) - .saturating_add(Weight::from_parts(0, 3846)) - // Standard Error: 407 - .saturating_add(Weight::from_parts(16_432, 0).saturating_mul(m.into())) - // Standard Error: 397 - .saturating_add(Weight::from_parts(103_596, 0).saturating_mul(p.into())) + // Measured: `435 + m * (64 ±0) + p * (36 ±0)` + // Estimated: `3880 + m * (65 ±0) + p * (36 ±0)` + // Minimum execution time: 25_287_000 picoseconds. + Weight::from_parts(26_242_918, 0) + .saturating_add(Weight::from_parts(0, 3880)) + // Standard Error: 379 + .saturating_add(Weight::from_parts(18_914, 0).saturating_mul(m.into())) + // Standard Error: 370 + .saturating_add(Weight::from_parts(121_543, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -220,17 +217,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `703 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `4020 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 17_465_000 picoseconds. - Weight::from_parts(18_442_350, 0) - .saturating_add(Weight::from_parts(0, 4020)) - // Standard Error: 84 - .saturating_add(Weight::from_parts(1_916, 0).saturating_mul(b.into())) - // Standard Error: 896 - .saturating_add(Weight::from_parts(3_110, 0).saturating_mul(m.into())) - // Standard Error: 874 - .saturating_add(Weight::from_parts(134_518, 0).saturating_mul(p.into())) + // Measured: `737 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `4054 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 35_455_000 picoseconds. + Weight::from_parts(37_013_034, 0) + .saturating_add(Weight::from_parts(0, 4054)) + // Standard Error: 122 + .saturating_add(Weight::from_parts(2_186, 0).saturating_mul(b.into())) + // Standard Error: 1_257 + .saturating_add(Weight::from_parts(165_334, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -253,15 +248,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `421 + m * (64 ±0) + p * (36 ±0)` - // Estimated: `3866 + m * (65 ±0) + p * (36 ±0)` - // Minimum execution time: 13_865_000 picoseconds. - Weight::from_parts(13_890_210, 0) - .saturating_add(Weight::from_parts(0, 3866)) - // Standard Error: 342 - .saturating_add(Weight::from_parts(19_818, 0).saturating_mul(m.into())) - // Standard Error: 333 - .saturating_add(Weight::from_parts(107_324, 0).saturating_mul(p.into())) + // Measured: `455 + m * (64 ±0) + p * (36 ±0)` + // Estimated: `3900 + m * (65 ±0) + p * (36 ±0)` + // Minimum execution time: 27_439_000 picoseconds. + Weight::from_parts(27_914_987, 0) + .saturating_add(Weight::from_parts(0, 3900)) + // Standard Error: 356 + .saturating_add(Weight::from_parts(24_253, 0).saturating_mul(m.into())) + // Standard Error: 347 + .saturating_add(Weight::from_parts(122_887, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into())) @@ -285,17 +280,15 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `723 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` - // Estimated: `4040 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` - // Minimum execution time: 18_823_000 picoseconds. - Weight::from_parts(20_458_159, 0) - .saturating_add(Weight::from_parts(0, 4040)) - // Standard Error: 79 - .saturating_add(Weight::from_parts(1_234, 0).saturating_mul(b.into())) - // Standard Error: 839 - .saturating_add(Weight::from_parts(490, 0).saturating_mul(m.into())) - // Standard Error: 818 - .saturating_add(Weight::from_parts(134_767, 0).saturating_mul(p.into())) + // Measured: `757 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `4074 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)` + // Minimum execution time: 37_169_000 picoseconds. + Weight::from_parts(39_204_033, 0) + .saturating_add(Weight::from_parts(0, 4074)) + // Standard Error: 125 + .saturating_add(Weight::from_parts(2_033, 0).saturating_mul(b.into())) + // Standard Error: 1_295 + .saturating_add(Weight::from_parts(166_247, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) @@ -312,13 +305,13 @@ impl pallet_collective::WeightInfo for WeightInfo { /// The range of component `p` is `[1, 100]`. fn disapprove_proposal(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `226 + p * (32 ±0)` - // Estimated: `1711 + p * (32 ±0)` - // Minimum execution time: 6_765_000 picoseconds. - Weight::from_parts(7_975_046, 0) - .saturating_add(Weight::from_parts(0, 1711)) - // Standard Error: 437 - .saturating_add(Weight::from_parts(93_162, 0).saturating_mul(p.into())) + // Measured: `260 + p * (32 ±0)` + // Estimated: `1745 + p * (32 ±0)` + // Minimum execution time: 14_810_000 picoseconds. + Weight::from_parts(16_507_475, 0) + .saturating_add(Weight::from_parts(0, 1745)) + // Standard Error: 379 + .saturating_add(Weight::from_parts(113_968, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) @@ -336,7 +329,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 15736 + > 15770 ); } #[test] @@ -348,7 +341,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 1555 + > 1589 ); } #[test] @@ -360,7 +353,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3535 + > 3569 ); } #[test] @@ -372,7 +365,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3751 + > 3785 ); } #[test] @@ -384,7 +377,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 4276 + > 4310 ); } #[test] @@ -396,7 +389,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3846 + > 3880 ); } #[test] @@ -408,7 +401,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 4020 + > 4054 ); } #[test] @@ -420,7 +413,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3866 + > 3900 ); } #[test] @@ -432,7 +425,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 4040 + > 4074 ); } #[test] @@ -444,7 +437,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 1711 + > 1745 ); } } diff --git a/runtimes/spiritnet/src/weights/pallet_democracy.rs b/runtimes/spiritnet/src/weights/pallet_democracy.rs index 2cf0da8c7..dad66002e 100644 --- a/runtimes/spiritnet/src/weights/pallet_democracy.rs +++ b/runtimes/spiritnet/src/weights/pallet_democracy.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_democracy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-democracy // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_democracy.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -61,8 +58,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4738` // Estimated: `18187` - // Minimum execution time: 39_624_000 picoseconds. - Weight::from_parts(41_093_000, 0) + // Minimum execution time: 38_229_000 picoseconds. + Weight::from_parts(38_661_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -73,8 +70,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3493` // Estimated: `6695` - // Minimum execution time: 36_401_000 picoseconds. - Weight::from_parts(37_075_000, 0) + // Minimum execution time: 35_999_000 picoseconds. + Weight::from_parts(36_400_000, 0) .saturating_add(Weight::from_parts(0, 6695)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -91,8 +88,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3475` // Estimated: `7264` - // Minimum execution time: 50_499_000 picoseconds. - Weight::from_parts(51_659_000, 0) + // Minimum execution time: 49_799_000 picoseconds. + Weight::from_parts(50_486_000, 0) .saturating_add(Weight::from_parts(0, 7264)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -109,8 +106,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3497` // Estimated: `7264` - // Minimum execution time: 53_370_000 picoseconds. - Weight::from_parts(54_268_000, 0) + // Minimum execution time: 52_694_000 picoseconds. + Weight::from_parts(53_389_000, 0) .saturating_add(Weight::from_parts(0, 7264)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -125,8 +122,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `307` // Estimated: `3674` - // Minimum execution time: 24_689_000 picoseconds. - Weight::from_parts(25_239_000, 0) + // Minimum execution time: 24_872_000 picoseconds. + Weight::from_parts(25_464_000, 0) .saturating_add(Weight::from_parts(0, 3674)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -149,8 +146,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `5999` // Estimated: `18187` - // Minimum execution time: 97_027_000 picoseconds. - Weight::from_parts(98_377_000, 0) + // Minimum execution time: 93_355_000 picoseconds. + Weight::from_parts(94_618_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(8)) @@ -163,8 +160,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3353` // Estimated: `6707` - // Minimum execution time: 12_857_000 picoseconds. - Weight::from_parts(13_766_000, 0) + // Minimum execution time: 13_099_000 picoseconds. + Weight::from_parts(13_475_000, 0) .saturating_add(Weight::from_parts(0, 6707)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -175,8 +172,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_132_000 picoseconds. - Weight::from_parts(3_255_000, 0) + // Minimum execution time: 2_961_000 picoseconds. + Weight::from_parts(3_113_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -186,8 +183,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_104_000 picoseconds. - Weight::from_parts(3_249_000, 0) + // Minimum execution time: 2_870_000 picoseconds. + Weight::from_parts(2_959_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -203,8 +200,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `3518` - // Minimum execution time: 23_852_000 picoseconds. - Weight::from_parts(24_262_000, 0) + // Minimum execution time: 24_105_000 picoseconds. + Weight::from_parts(24_492_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(5)) @@ -219,8 +216,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `3456` // Estimated: `6707` - // Minimum execution time: 27_095_000 picoseconds. - Weight::from_parts(27_723_000, 0) + // Minimum execution time: 27_016_000 picoseconds. + Weight::from_parts(27_717_000, 0) .saturating_add(Weight::from_parts(0, 6707)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -237,8 +234,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `5902` // Estimated: `18187` - // Minimum execution time: 80_185_000 picoseconds. - Weight::from_parts(81_709_000, 0) + // Minimum execution time: 78_069_000 picoseconds. + Weight::from_parts(79_076_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -251,8 +248,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `204` // Estimated: `3518` - // Minimum execution time: 17_627_000 picoseconds. - Weight::from_parts(18_045_000, 0) + // Minimum execution time: 17_992_000 picoseconds. + Weight::from_parts(18_394_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -268,11 +265,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `177 + r * (94 ±0)` // Estimated: `1489 + r * (2684 ±0)` - // Minimum execution time: 5_790_000 picoseconds. - Weight::from_parts(9_106_364, 0) + // Minimum execution time: 5_788_000 picoseconds. + Weight::from_parts(8_918_854, 0) .saturating_add(Weight::from_parts(0, 1489)) - // Standard Error: 5_924 - .saturating_add(Weight::from_parts(2_962_777, 0).saturating_mul(r.into())) + // Standard Error: 5_839 + .saturating_add(Weight::from_parts(2_901_305, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -295,11 +292,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `177 + r * (94 ±0)` // Estimated: `18187 + r * (2684 ±0)` - // Minimum execution time: 7_997_000 picoseconds. - Weight::from_parts(11_524_794, 0) + // Minimum execution time: 8_162_000 picoseconds. + Weight::from_parts(11_415_342, 0) .saturating_add(Weight::from_parts(0, 18187)) - // Standard Error: 5_651 - .saturating_add(Weight::from_parts(2_960_951, 0).saturating_mul(r.into())) + // Standard Error: 6_137 + .saturating_add(Weight::from_parts(2_900_964, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(1)) @@ -318,11 +315,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `839 + r * (116 ±0)` // Estimated: `19812 + r * (2684 ±0)` - // Minimum execution time: 42_844_000 picoseconds. - Weight::from_parts(49_137_786, 0) + // Minimum execution time: 43_325_000 picoseconds. + Weight::from_parts(48_787_512, 0) .saturating_add(Weight::from_parts(0, 19812)) - // Standard Error: 6_433 - .saturating_add(Weight::from_parts(3_805_122, 0).saturating_mul(r.into())) + // Standard Error: 6_780 + .saturating_add(Weight::from_parts(3_755_931, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -338,11 +335,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `434 + r * (116 ±0)` // Estimated: `13538 + r * (2684 ±0)` - // Minimum execution time: 20_056_000 picoseconds. - Weight::from_parts(21_626_312, 0) + // Minimum execution time: 20_365_000 picoseconds. + Weight::from_parts(22_002_993, 0) .saturating_add(Weight::from_parts(0, 13538)) - // Standard Error: 6_416 - .saturating_add(Weight::from_parts(3_809_905, 0).saturating_mul(r.into())) + // Standard Error: 6_977 + .saturating_add(Weight::from_parts(3_690_233, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2)) @@ -355,8 +352,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_333_000 picoseconds. - Weight::from_parts(3_493_000, 0) + // Minimum execution time: 3_365_000 picoseconds. + Weight::from_parts(3_483_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -373,11 +370,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `484` // Estimated: `7264` - // Minimum execution time: 23_845_000 picoseconds. - Weight::from_parts(33_969_988, 0) + // Minimum execution time: 23_755_000 picoseconds. + Weight::from_parts(33_858_721, 0) .saturating_add(Weight::from_parts(0, 7264)) - // Standard Error: 2_252 - .saturating_add(Weight::from_parts(38_640, 0).saturating_mul(r.into())) + // Standard Error: 2_284 + .saturating_add(Weight::from_parts(36_386, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -394,11 +391,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `485 + r * (22 ±0)` // Estimated: `7264` - // Minimum execution time: 33_356_000 picoseconds. - Weight::from_parts(35_414_023, 0) + // Minimum execution time: 33_394_000 picoseconds. + Weight::from_parts(34_981_579, 0) .saturating_add(Weight::from_parts(0, 7264)) - // Standard Error: 666 - .saturating_add(Weight::from_parts(61_306, 0).saturating_mul(r.into())) + // Standard Error: 709 + .saturating_add(Weight::from_parts(61_736, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -411,11 +408,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `673 + r * (26 ±0)` // Estimated: `7264` - // Minimum execution time: 17_148_000 picoseconds. - Weight::from_parts(19_947_582, 0) + // Minimum execution time: 17_310_000 picoseconds. + Weight::from_parts(19_765_242, 0) .saturating_add(Weight::from_parts(0, 7264)) - // Standard Error: 989 - .saturating_add(Weight::from_parts(70_448, 0).saturating_mul(r.into())) + // Standard Error: 1_003 + .saturating_add(Weight::from_parts(69_502, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -428,11 +425,11 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `673 + r * (26 ±0)` // Estimated: `7264` - // Minimum execution time: 17_415_000 picoseconds. - Weight::from_parts(20_079_464, 0) + // Minimum execution time: 17_264_000 picoseconds. + Weight::from_parts(19_844_534, 0) .saturating_add(Weight::from_parts(0, 7264)) - // Standard Error: 971 - .saturating_add(Weight::from_parts(71_051, 0).saturating_mul(r.into())) + // Standard Error: 1_000 + .saturating_add(Weight::from_parts(67_987, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -448,8 +445,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `356` // Estimated: `3556` - // Minimum execution time: 18_782_000 picoseconds. - Weight::from_parts(19_144_000, 0) + // Minimum execution time: 18_455_000 picoseconds. + Weight::from_parts(18_833_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -462,8 +459,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `219` // Estimated: `3518` - // Minimum execution time: 15_704_000 picoseconds. - Weight::from_parts(15_969_000, 0) + // Minimum execution time: 15_697_000 picoseconds. + Weight::from_parts(15_958_000, 0) .saturating_add(Weight::from_parts(0, 3518)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -480,8 +477,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4888` // Estimated: `18187` - // Minimum execution time: 37_618_000 picoseconds. - Weight::from_parts(38_353_000, 0) + // Minimum execution time: 37_169_000 picoseconds. + Weight::from_parts(37_658_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -494,8 +491,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4755` // Estimated: `18187` - // Minimum execution time: 33_649_000 picoseconds. - Weight::from_parts(34_211_000, 0) + // Minimum execution time: 33_161_000 picoseconds. + Weight::from_parts(33_601_000, 0) .saturating_add(Weight::from_parts(0, 18187)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -510,8 +507,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3556` - // Minimum execution time: 15_670_000 picoseconds. - Weight::from_parts(16_046_000, 0) + // Minimum execution time: 15_504_000 picoseconds. + Weight::from_parts(15_874_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -524,8 +521,8 @@ impl pallet_democracy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `239` // Estimated: `3674` - // Minimum execution time: 18_542_000 picoseconds. - Weight::from_parts(18_769_000, 0) + // Minimum execution time: 18_356_000 picoseconds. + Weight::from_parts(18_700_000, 0) .saturating_add(Weight::from_parts(0, 3674)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtimes/spiritnet/src/weights/pallet_deposit_storage.rs b/runtimes/spiritnet/src/weights/pallet_deposit_storage.rs index 2f442bdff..5b5a393a5 100644 --- a/runtimes/spiritnet/src/weights/pallet_deposit_storage.rs +++ b/runtimes/spiritnet/src/weights/pallet_deposit_storage.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_deposit_storage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-deposit-storage // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_deposit_storage.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -61,8 +58,8 @@ impl pallet_deposit_storage::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `577` // Estimated: `3658` - // Minimum execution time: 49_943_000 picoseconds. - Weight::from_parts(50_147_000, 0) + // Minimum execution time: 50_204_000 picoseconds. + Weight::from_parts(50_851_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtimes/spiritnet/src/weights/pallet_did_lookup.rs b/runtimes/spiritnet/src/weights/pallet_did_lookup.rs index 0f8f30fe0..83d5e9c75 100644 --- a/runtimes/spiritnet/src/weights/pallet_did_lookup.rs +++ b/runtimes/spiritnet/src/weights/pallet_did_lookup.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_did_lookup` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-did-lookup // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_did_lookup.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -63,8 +60,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3658` - // Minimum execution time: 130_333_000 picoseconds. - Weight::from_parts(131_946_000, 0) + // Minimum execution time: 127_794_000 picoseconds. + Weight::from_parts(128_288_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(6)) @@ -83,8 +80,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3658` - // Minimum execution time: 142_549_000 picoseconds. - Weight::from_parts(144_156_000, 0) + // Minimum execution time: 140_096_000 picoseconds. + Weight::from_parts(141_313_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(6)) @@ -103,8 +100,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3658` - // Minimum execution time: 131_703_000 picoseconds. - Weight::from_parts(133_877_000, 0) + // Minimum execution time: 129_780_000 picoseconds. + Weight::from_parts(131_507_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(6)) @@ -123,8 +120,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `449` // Estimated: `3658` - // Minimum execution time: 134_857_000 picoseconds. - Weight::from_parts(135_895_000, 0) + // Minimum execution time: 130_616_000 picoseconds. + Weight::from_parts(132_456_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(6)) @@ -143,8 +140,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `462` // Estimated: `3658` - // Minimum execution time: 83_538_000 picoseconds. - Weight::from_parts(84_203_000, 0) + // Minimum execution time: 82_636_000 picoseconds. + Weight::from_parts(83_435_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(6)) @@ -163,8 +160,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `540` // Estimated: `3658` - // Minimum execution time: 48_280_000 picoseconds. - Weight::from_parts(48_686_000, 0) + // Minimum execution time: 47_423_000 picoseconds. + Weight::from_parts(47_799_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -183,8 +180,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `540` // Estimated: `3658` - // Minimum execution time: 49_796_000 picoseconds. - Weight::from_parts(50_261_000, 0) + // Minimum execution time: 48_518_000 picoseconds. + Weight::from_parts(49_473_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) @@ -201,8 +198,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `647` // Estimated: `6326` - // Minimum execution time: 78_581_000 picoseconds. - Weight::from_parts(79_327_000, 0) + // Minimum execution time: 76_631_000 picoseconds. + Weight::from_parts(77_585_000, 0) .saturating_add(Weight::from_parts(0, 6326)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(5)) @@ -219,8 +216,8 @@ impl pallet_did_lookup::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `540` // Estimated: `3658` - // Minimum execution time: 73_010_000 picoseconds. - Weight::from_parts(73_417_000, 0) + // Minimum execution time: 71_686_000 picoseconds. + Weight::from_parts(72_618_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) diff --git a/runtimes/spiritnet/src/weights/pallet_dip_provider.rs b/runtimes/spiritnet/src/weights/pallet_dip_provider.rs index e05380bf3..e6b1bae97 100644 --- a/runtimes/spiritnet/src/weights/pallet_dip_provider.rs +++ b/runtimes/spiritnet/src/weights/pallet_dip_provider.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_dip_provider` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-dip-provider // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_dip_provider.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -69,10 +66,10 @@ impl pallet_dip_provider::WeightInfo for WeightInfo /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn commit_identity() -> Weight { // Proof Size summary in bytes: - // Measured: `2990` + // Measured: `3025` // Estimated: `29282` - // Minimum execution time: 383_619_000 picoseconds. - Weight::from_parts(390_717_000, 0) + // Minimum execution time: 387_645_000 picoseconds. + Weight::from_parts(390_795_000, 0) .saturating_add(Weight::from_parts(0, 29282)) .saturating_add(T::DbWeight::get().reads(19)) .saturating_add(T::DbWeight::get().writes(4)) @@ -89,8 +86,8 @@ impl pallet_dip_provider::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `671` // Estimated: `3658` - // Minimum execution time: 55_412_000 picoseconds. - Weight::from_parts(56_013_000, 0) + // Minimum execution time: 55_264_000 picoseconds. + Weight::from_parts(56_082_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtimes/spiritnet/src/weights/pallet_indices.rs b/runtimes/spiritnet/src/weights/pallet_indices.rs index 58ccc483a..54edb38a6 100644 --- a/runtimes/spiritnet/src/weights/pallet_indices.rs +++ b/runtimes/spiritnet/src/weights/pallet_indices.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_indices` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-indices // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_indices.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +52,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `3538` - // Minimum execution time: 22_133_000 picoseconds. - Weight::from_parts(22_586_000, 0) + // Minimum execution time: 22_453_000 picoseconds. + Weight::from_parts(22_845_000, 0) .saturating_add(Weight::from_parts(0, 3538)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -69,8 +66,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `249` // Estimated: `3597` - // Minimum execution time: 32_928_000 picoseconds. - Weight::from_parts(33_446_000, 0) + // Minimum execution time: 33_524_000 picoseconds. + Weight::from_parts(33_873_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -81,8 +78,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3538` - // Minimum execution time: 22_479_000 picoseconds. - Weight::from_parts(22_959_000, 0) + // Minimum execution time: 22_764_000 picoseconds. + Weight::from_parts(23_225_000, 0) .saturating_add(Weight::from_parts(0, 3538)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -95,8 +92,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `249` // Estimated: `3597` - // Minimum execution time: 25_606_000 picoseconds. - Weight::from_parts(26_126_000, 0) + // Minimum execution time: 25_527_000 picoseconds. + Weight::from_parts(26_157_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -107,8 +104,8 @@ impl pallet_indices::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3538` - // Minimum execution time: 23_412_000 picoseconds. - Weight::from_parts(23_830_000, 0) + // Minimum execution time: 23_735_000 picoseconds. + Weight::from_parts(24_080_000, 0) .saturating_add(Weight::from_parts(0, 3538)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtimes/spiritnet/src/weights/pallet_inflation.rs b/runtimes/spiritnet/src/weights/pallet_inflation.rs index dc886eb46..d7414cc04 100644 --- a/runtimes/spiritnet/src/weights/pallet_inflation.rs +++ b/runtimes/spiritnet/src/weights/pallet_inflation.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_inflation` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-inflation // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_inflation.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +52,8 @@ impl pallet_inflation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107` // Estimated: `3597` - // Minimum execution time: 19_031_000 picoseconds. - Weight::from_parts(19_533_000, 0) + // Minimum execution time: 19_344_000 picoseconds. + Weight::from_parts(19_755_000, 0) .saturating_add(Weight::from_parts(0, 3597)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +62,8 @@ impl pallet_inflation::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 201_000 picoseconds. - Weight::from_parts(224_000, 0) + // Minimum execution time: 212_000 picoseconds. + Weight::from_parts(238_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/runtimes/spiritnet/src/weights/pallet_membership.rs b/runtimes/spiritnet/src/weights/pallet_membership.rs index 42a2bc69f..b6a42ce32 100644 --- a/runtimes/spiritnet/src/weights/pallet_membership.rs +++ b/runtimes/spiritnet/src/weights/pallet_membership.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_membership` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-membership // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_membership.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -60,13 +57,13 @@ impl pallet_membership::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 99]`. fn add_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `102 + m * (64 ±0)` + // Measured: `136 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 13_128_000 picoseconds. - Weight::from_parts(13_700_386, 0) + // Minimum execution time: 13_197_000 picoseconds. + Weight::from_parts(13_564_984, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 245 - .saturating_add(Weight::from_parts(24_779, 0).saturating_mul(m.into())) + // Standard Error: 260 + .saturating_add(Weight::from_parts(25_460, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -84,13 +81,13 @@ impl pallet_membership::WeightInfo for WeightInfo { /// The range of component `m` is `[2, 100]`. fn remove_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `206 + m * (64 ±0)` + // Measured: `240 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 15_295_000 picoseconds. - Weight::from_parts(15_737_436, 0) + // Minimum execution time: 15_091_000 picoseconds. + Weight::from_parts(15_361_230, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 289 - .saturating_add(Weight::from_parts(25_549, 0).saturating_mul(m.into())) + // Standard Error: 261 + .saturating_add(Weight::from_parts(24_406, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -108,13 +105,13 @@ impl pallet_membership::WeightInfo for WeightInfo { /// The range of component `m` is `[2, 100]`. fn swap_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `206 + m * (64 ±0)` + // Measured: `240 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 15_774_000 picoseconds. - Weight::from_parts(16_241_962, 0) + // Minimum execution time: 15_062_000 picoseconds. + Weight::from_parts(15_643_540, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 315 - .saturating_add(Weight::from_parts(38_272, 0).saturating_mul(m.into())) + // Standard Error: 287 + .saturating_add(Weight::from_parts(38_572, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -132,13 +129,13 @@ impl pallet_membership::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 100]`. fn reset_member(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `206 + m * (64 ±0)` + // Measured: `240 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 15_110_000 picoseconds. - Weight::from_parts(16_414_722, 0) + // Minimum execution time: 14_268_000 picoseconds. + Weight::from_parts(15_725_235, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 520 - .saturating_add(Weight::from_parts(150_482, 0).saturating_mul(m.into())) + // Standard Error: 505 + .saturating_add(Weight::from_parts(148_720, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -156,13 +153,13 @@ impl pallet_membership::WeightInfo for WeightInfo { /// The range of component `m` is `[1, 100]`. fn change_key(m: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `206 + m * (64 ±0)` + // Measured: `240 + m * (64 ±0)` // Estimated: `4687 + m * (64 ±0)` - // Minimum execution time: 15_940_000 picoseconds. - Weight::from_parts(16_886_000, 0) + // Minimum execution time: 15_486_000 picoseconds. + Weight::from_parts(16_062_228, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 388 - .saturating_add(Weight::from_parts(37_450, 0).saturating_mul(m.into())) + // Standard Error: 360 + .saturating_add(Weight::from_parts(36_213, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) @@ -178,10 +175,10 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32 + m * (32 ±0)` // Estimated: `4687 + m * (32 ±0)` - // Minimum execution time: 7_035_000 picoseconds. - Weight::from_parts(7_569_844, 0) + // Minimum execution time: 6_919_000 picoseconds. + Weight::from_parts(7_294_977, 0) .saturating_add(Weight::from_parts(0, 4687)) - // Standard Error: 205 + // Standard Error: 196 .saturating_add(Weight::from_parts(10_559, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -196,11 +193,11 @@ impl pallet_membership::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_492_000 picoseconds. - Weight::from_parts(2_695_321, 0) + // Minimum execution time: 2_372_000 picoseconds. + Weight::from_parts(2_552_922, 0) .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 78 - .saturating_add(Weight::from_parts(1_040, 0).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(1_294, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().writes(2)) } } diff --git a/runtimes/spiritnet/src/weights/pallet_message_queue.rs b/runtimes/spiritnet/src/weights/pallet_message_queue.rs index f95a6f09f..c4d36bf4a 100644 --- a/runtimes/spiritnet/src/weights/pallet_message_queue.rs +++ b/runtimes/spiritnet/src/weights/pallet_message_queue.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_message_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev -// --pallet=pallet_message_queue +// --pallet=pallet-message-queue // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_message_queue.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -57,8 +54,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `327` // Estimated: `6044` - // Minimum execution time: 12_729_000 picoseconds. - Weight::from_parts(13_153_000, 0) + // Minimum execution time: 12_760_000 picoseconds. + Weight::from_parts(12_937_000, 0) .saturating_add(Weight::from_parts(0, 6044)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -71,8 +68,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `322` // Estimated: `6044` - // Minimum execution time: 11_572_000 picoseconds. - Weight::from_parts(11_995_000, 0) + // Minimum execution time: 11_459_000 picoseconds. + Weight::from_parts(11_877_000, 0) .saturating_add(Weight::from_parts(0, 6044)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -83,8 +80,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `109` // Estimated: `3517` - // Minimum execution time: 5_165_000 picoseconds. - Weight::from_parts(5_417_000, 0) + // Minimum execution time: 4_959_000 picoseconds. + Weight::from_parts(5_265_000, 0) .saturating_add(Weight::from_parts(0, 3517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -95,8 +92,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `176` // Estimated: `69050` - // Minimum execution time: 6_834_000 picoseconds. - Weight::from_parts(6_990_000, 0) + // Minimum execution time: 6_875_000 picoseconds. + Weight::from_parts(7_129_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -107,8 +104,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `176` // Estimated: `69050` - // Minimum execution time: 6_877_000 picoseconds. - Weight::from_parts(7_139_000, 0) + // Minimum execution time: 7_035_000 picoseconds. + Weight::from_parts(7_259_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -121,8 +118,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 164_520_000 picoseconds. - Weight::from_parts(166_219_000, 0) + // Minimum execution time: 165_222_000 picoseconds. + Weight::from_parts(166_013_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -134,8 +131,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `275` // Estimated: `3517` - // Minimum execution time: 7_656_000 picoseconds. - Weight::from_parts(7_864_000, 0) + // Minimum execution time: 7_345_000 picoseconds. + Weight::from_parts(7_515_000, 0) .saturating_add(Weight::from_parts(0, 3517)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -148,8 +145,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `65771` // Estimated: `69050` - // Minimum execution time: 58_757_000 picoseconds. - Weight::from_parts(59_148_000, 0) + // Minimum execution time: 58_890_000 picoseconds. + Weight::from_parts(59_403_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -162,8 +159,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `65771` // Estimated: `69050` - // Minimum execution time: 75_297_000 picoseconds. - Weight::from_parts(75_702_000, 0) + // Minimum execution time: 75_291_000 picoseconds. + Weight::from_parts(75_797_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -176,8 +173,8 @@ impl pallet_message_queue::WeightInfo for WeightInfo // Proof Size summary in bytes: // Measured: `65771` // Estimated: `69050` - // Minimum execution time: 117_824_000 picoseconds. - Weight::from_parts(118_904_000, 0) + // Minimum execution time: 118_385_000 picoseconds. + Weight::from_parts(119_008_000, 0) .saturating_add(Weight::from_parts(0, 69050)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/runtimes/spiritnet/src/weights/pallet_migration.rs b/runtimes/spiritnet/src/weights/pallet_migration.rs index 5913eb16f..3eeeed848 100644 --- a/runtimes/spiritnet/src/weights/pallet_migration.rs +++ b/runtimes/spiritnet/src/weights/pallet_migration.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_migration` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-migration // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_migration.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -61,8 +58,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `307` // Estimated: `3660` - // Minimum execution time: 61_575_000 picoseconds. - Weight::from_parts(62_230_000, 0) + // Minimum execution time: 60_613_000 picoseconds. + Weight::from_parts(61_145_000, 0) .saturating_add(Weight::from_parts(0, 3660)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -73,8 +70,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `115` // Estimated: `3513` - // Minimum execution time: 15_508_000 picoseconds. - Weight::from_parts(15_949_000, 0) + // Minimum execution time: 15_885_000 picoseconds. + Weight::from_parts(16_213_000, 0) .saturating_add(Weight::from_parts(0, 3513)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -90,8 +87,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `463` // Estimated: `5777` - // Minimum execution time: 63_142_000 picoseconds. - Weight::from_parts(63_880_000, 0) + // Minimum execution time: 63_087_000 picoseconds. + Weight::from_parts(63_942_000, 0) .saturating_add(Weight::from_parts(0, 5777)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -102,8 +99,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `78` // Estimated: `3513` - // Minimum execution time: 14_204_000 picoseconds. - Weight::from_parts(14_445_000, 0) + // Minimum execution time: 14_337_000 picoseconds. + Weight::from_parts(14_646_000, 0) .saturating_add(Weight::from_parts(0, 3513)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -113,8 +110,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `78` // Estimated: `3513` - // Minimum execution time: 14_369_000 picoseconds. - Weight::from_parts(14_628_000, 0) + // Minimum execution time: 14_600_000 picoseconds. + Weight::from_parts(14_835_000, 0) .saturating_add(Weight::from_parts(0, 3513)) .saturating_add(T::DbWeight::get().reads(1)) } @@ -124,8 +121,8 @@ impl pallet_migration::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `78` // Estimated: `3513` - // Minimum execution time: 18_296_000 picoseconds. - Weight::from_parts(18_555_000, 0) + // Minimum execution time: 18_395_000 picoseconds. + Weight::from_parts(18_674_000, 0) .saturating_add(Weight::from_parts(0, 3513)) .saturating_add(T::DbWeight::get().reads(1)) } diff --git a/runtimes/spiritnet/src/weights/pallet_multisig.rs b/runtimes/spiritnet/src/weights/pallet_multisig.rs index d8870fc36..2c80585ab 100644 --- a/runtimes/spiritnet/src/weights/pallet_multisig.rs +++ b/runtimes/spiritnet/src/weights/pallet_multisig.rs @@ -16,103 +16,222 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org -//! Autogenerated weights for pallet_multisig +//! Autogenerated weights for `pallet_multisig` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-04-04, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/kilt-parachain // benchmark // pallet -// --chain=dev -// --steps=50 -// --repeat=20 +// --heap-pages=4096 +// --chain=spiritnet-dev // --pallet=pallet_multisig -// --execution=wasm -// --wasm-execution=compiled // --extrinsic=* -// --heap-pages=4096 -// --output=./runtimes/spiritnet/src/weights/pallet_multisig.rs +// --header=HEADER-GPL // --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] -#![allow(clippy::unnecessary_cast)] use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weights for `pallet_multisig`. +/// Weight functions for `pallet_multisig`. pub struct WeightInfo(PhantomData); impl pallet_multisig::WeightInfo for WeightInfo { + /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { - Weight::from_parts(8_364_882 as u64, 0) - // Standard Error: 79 - .saturating_add(Weight::from_parts(849 as u64, 0).saturating_mul(z as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_045_000 picoseconds. + Weight::from_parts(10_532_775, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1 + .saturating_add(Weight::from_parts(528, 0).saturating_mul(z.into())) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 64]`. + /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { - Weight::from_parts(20_285_811 as u64, 0) - // Standard Error: 5_408 - .saturating_add(Weight::from_parts(80_065 as u64, 0).saturating_mul(s as u64)) - // Standard Error: 33 - .saturating_add(Weight::from_parts(986 as u64, 0).saturating_mul(z as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `273 + s * (2 ±0)` + // Estimated: `5663` + // Minimum execution time: 37_285_000 picoseconds. + Weight::from_parts(33_160_383, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 587 + .saturating_add(Weight::from_parts(75_688, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_308, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// The range of component `s` is `[3, 64]`. + /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { - Weight::from_parts(12_705_025 as u64, 0) - // Standard Error: 30_300 - .saturating_add(Weight::from_parts(20_431 as u64, 0).saturating_mul(s as u64)) - // Standard Error: 186 - .saturating_add(Weight::from_parts(3_373 as u64, 0).saturating_mul(z as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `319` + // Estimated: `5663` + // Minimum execution time: 23_939_000 picoseconds. + Weight::from_parts(19_623_218, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 408 + .saturating_add(Weight::from_parts(72_765, 0).saturating_mul(s.into())) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_299, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 64]`. + /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { - Weight::from_parts(20_642_060 as u64, 0) - // Standard Error: 5_511 - .saturating_add(Weight::from_parts(104_693 as u64, 0).saturating_mul(s as u64)) - // Standard Error: 34 - .saturating_add(Weight::from_parts(1_132 as u64, 0).saturating_mul(z as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `426 + s * (33 ±0)` + // Estimated: `5663` + // Minimum execution time: 41_069_000 picoseconds. + Weight::from_parts(35_150_587, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 613 + .saturating_add(Weight::from_parts(100_826, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_333, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 64]`. fn approve_as_multi_create(s: u32, ) -> Weight { - Weight::from_parts(17_036_891 as u64, 0) - // Standard Error: 4_200 - .saturating_add(Weight::from_parts(122_554 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `270 + s * (3 ±0)` + // Estimated: `5663` + // Minimum execution time: 30_837_000 picoseconds. + Weight::from_parts(31_758_130, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 745 + .saturating_add(Weight::from_parts(89_592, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 64]`. fn approve_as_multi_approve(s: u32, ) -> Weight { - Weight::from_parts(12_421_505 as u64, 0) - // Standard Error: 7_770 - .saturating_add(Weight::from_parts(81_668 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `319` + // Estimated: `5663` + // Minimum execution time: 17_713_000 picoseconds. + Weight::from_parts(18_430_655, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 475 + .saturating_add(Weight::from_parts(77_244, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Proof: Multisig Multisigs (max_values: None, max_size: Some(2198), added: 4673, mode: MaxEncodedLen) + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2198), added: 4673, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 64]`. fn cancel_as_multi(s: u32, ) -> Weight { - Weight::from_parts(19_681_233 as u64, 0) - // Standard Error: 4_292 - .saturating_add(Weight::from_parts(70_945 as u64, 0).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `490 + s * (1 ±0)` + // Estimated: `5663` + // Minimum execution time: 30_780_000 picoseconds. + Weight::from_parts(31_748_385, 0) + .saturating_add(Weight::from_parts(0, 5663)) + // Standard Error: 783 + .saturating_add(Weight::from_parts(84_378, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} + +#[cfg(test)] +mod tests { + #[test] + fn test_as_multi_create() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); + } + #[test] + fn test_as_multi_approve() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); + } + #[test] + fn test_as_multi_complete() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); + } + #[test] + fn test_approve_as_multi_create() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); + } + #[test] + fn test_approve_as_multi_approve() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); + } + #[test] + fn test_cancel_as_multi() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 5663 + ); } } diff --git a/runtimes/spiritnet/src/weights/pallet_preimage.rs b/runtimes/spiritnet/src/weights/pallet_preimage.rs index 77911d7df..d122a6aa6 100644 --- a/runtimes/spiritnet/src/weights/pallet_preimage.rs +++ b/runtimes/spiritnet/src/weights/pallet_preimage.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_preimage` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-preimage // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_preimage.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -62,11 +59,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3658` - // Minimum execution time: 47_008_000 picoseconds. - Weight::from_parts(47_322_000, 0) + // Minimum execution time: 45_453_000 picoseconds. + Weight::from_parts(45_882_000, 0) .saturating_add(Weight::from_parts(0, 3658)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(2_276, 0).saturating_mul(s.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(2_215, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -81,11 +78,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `3556` - // Minimum execution time: 16_495_000 picoseconds. - Weight::from_parts(16_647_000, 0) + // Minimum execution time: 16_027_000 picoseconds. + Weight::from_parts(16_240_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(2_267, 0).saturating_mul(s.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(2_212, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -100,11 +97,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `3556` - // Minimum execution time: 15_966_000 picoseconds. - Weight::from_parts(16_191_000, 0) + // Minimum execution time: 16_001_000 picoseconds. + Weight::from_parts(16_186_000, 0) .saturating_add(Weight::from_parts(0, 3556)) - // Standard Error: 0 - .saturating_add(Weight::from_parts(2_266, 0).saturating_mul(s.into())) + // Standard Error: 1 + .saturating_add(Weight::from_parts(2_207, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -120,8 +117,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `311` // Estimated: `3658` - // Minimum execution time: 55_462_000 picoseconds. - Weight::from_parts(56_851_000, 0) + // Minimum execution time: 48_759_000 picoseconds. + Weight::from_parts(49_650_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -136,8 +133,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3556` - // Minimum execution time: 26_823_000 picoseconds. - Weight::from_parts(28_313_000, 0) + // Minimum execution time: 23_759_000 picoseconds. + Weight::from_parts(24_924_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -150,8 +147,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3556` - // Minimum execution time: 23_099_000 picoseconds. - Weight::from_parts(26_051_000, 0) + // Minimum execution time: 19_397_000 picoseconds. + Weight::from_parts(20_450_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -164,8 +161,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3556` - // Minimum execution time: 14_172_000 picoseconds. - Weight::from_parts(15_296_000, 0) + // Minimum execution time: 14_022_000 picoseconds. + Weight::from_parts(14_763_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -178,8 +175,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `109` // Estimated: `3556` - // Minimum execution time: 13_586_000 picoseconds. - Weight::from_parts(14_280_000, 0) + // Minimum execution time: 14_592_000 picoseconds. + Weight::from_parts(15_004_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -192,8 +189,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_469_000 picoseconds. - Weight::from_parts(10_857_000, 0) + // Minimum execution time: 10_464_000 picoseconds. + Weight::from_parts(10_835_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -208,8 +205,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `211` // Estimated: `3556` - // Minimum execution time: 21_120_000 picoseconds. - Weight::from_parts(22_262_000, 0) + // Minimum execution time: 21_172_000 picoseconds. + Weight::from_parts(21_882_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -222,8 +219,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_555_000 picoseconds. - Weight::from_parts(10_859_000, 0) + // Minimum execution time: 10_418_000 picoseconds. + Weight::from_parts(10_724_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -236,8 +233,8 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `3556` - // Minimum execution time: 10_616_000 picoseconds. - Weight::from_parts(10_905_000, 0) + // Minimum execution time: 10_562_000 picoseconds. + Weight::from_parts(10_970_000, 0) .saturating_add(Weight::from_parts(0, 3556)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -255,11 +252,11 @@ impl pallet_preimage::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0 + n * (231 ±0)` // Estimated: `990 + n * (2668 ±0)` - // Minimum execution time: 51_734_000 picoseconds. - Weight::from_parts(52_052_000, 0) + // Minimum execution time: 50_253_000 picoseconds. + Weight::from_parts(50_643_000, 0) .saturating_add(Weight::from_parts(0, 990)) - // Standard Error: 30_070 - .saturating_add(Weight::from_parts(47_723_490, 0).saturating_mul(n.into())) + // Standard Error: 26_970 + .saturating_add(Weight::from_parts(47_017_771, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(n.into()))) .saturating_add(Weight::from_parts(0, 2668).saturating_mul(n.into())) diff --git a/runtimes/spiritnet/src/weights/pallet_proxy.rs b/runtimes/spiritnet/src/weights/pallet_proxy.rs index 78c683d06..9501f3767 100644 --- a/runtimes/spiritnet/src/weights/pallet_proxy.rs +++ b/runtimes/spiritnet/src/weights/pallet_proxy.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-proxy // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_proxy.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,11 +53,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `127 + p * (41 ±0)` // Estimated: `3932` - // Minimum execution time: 14_301_000 picoseconds. - Weight::from_parts(14_798_342, 0) + // Minimum execution time: 13_881_000 picoseconds. + Weight::from_parts(14_388_099, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 2_657 - .saturating_add(Weight::from_parts(66_554, 0).saturating_mul(p.into())) + // Standard Error: 2_353 + .saturating_add(Weight::from_parts(90_512, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } /// Storage: `Proxy::Proxies` (r:1 w:0) @@ -75,13 +72,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `425 + a * (72 ±0) + p * (41 ±0)` // Estimated: `4242` - // Minimum execution time: 35_230_000 picoseconds. - Weight::from_parts(35_571_301, 0) + // Minimum execution time: 34_625_000 picoseconds. + Weight::from_parts(35_602_918, 0) .saturating_add(Weight::from_parts(0, 4242)) - // Standard Error: 3_463 - .saturating_add(Weight::from_parts(186_729, 0).saturating_mul(a.into())) - // Standard Error: 3_844 - .saturating_add(Weight::from_parts(35_034, 0).saturating_mul(p.into())) + // Standard Error: 2_800 + .saturating_add(Weight::from_parts(165_390, 0).saturating_mul(a.into())) + // Standard Error: 3_108 + .saturating_add(Weight::from_parts(978, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -95,11 +92,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `340 + a * (72 ±0)` // Estimated: `4242` - // Minimum execution time: 24_384_000 picoseconds. - Weight::from_parts(25_318_307, 0) + // Minimum execution time: 23_522_000 picoseconds. + Weight::from_parts(24_704_658, 0) .saturating_add(Weight::from_parts(0, 4242)) - // Standard Error: 2_449 - .saturating_add(Weight::from_parts(156_741, 0).saturating_mul(a.into())) + // Standard Error: 2_474 + .saturating_add(Weight::from_parts(152_138, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -113,11 +110,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `340 + a * (72 ±0)` // Estimated: `4242` - // Minimum execution time: 24_120_000 picoseconds. - Weight::from_parts(25_081_883, 0) + // Minimum execution time: 23_641_000 picoseconds. + Weight::from_parts(24_620_808, 0) .saturating_add(Weight::from_parts(0, 4242)) - // Standard Error: 2_247 - .saturating_add(Weight::from_parts(142_629, 0).saturating_mul(a.into())) + // Standard Error: 2_459 + .saturating_add(Weight::from_parts(153_990, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -133,13 +130,13 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `353 + a * (72 ±0) + p * (41 ±0)` // Estimated: `4242` - // Minimum execution time: 31_227_000 picoseconds. - Weight::from_parts(31_864_498, 0) + // Minimum execution time: 30_895_000 picoseconds. + Weight::from_parts(31_443_415, 0) .saturating_add(Weight::from_parts(0, 4242)) - // Standard Error: 2_521 - .saturating_add(Weight::from_parts(149_487, 0).saturating_mul(a.into())) - // Standard Error: 2_799 - .saturating_add(Weight::from_parts(11_201, 0).saturating_mul(p.into())) + // Standard Error: 2_774 + .saturating_add(Weight::from_parts(158_909, 0).saturating_mul(a.into())) + // Standard Error: 3_079 + .saturating_add(Weight::from_parts(17_933, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -150,11 +147,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `127 + p * (41 ±0)` // Estimated: `3932` - // Minimum execution time: 23_166_000 picoseconds. - Weight::from_parts(23_899_961, 0) + // Minimum execution time: 22_946_000 picoseconds. + Weight::from_parts(23_406_653, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 2_381 - .saturating_add(Weight::from_parts(63_174, 0).saturating_mul(p.into())) + // Standard Error: 2_531 + .saturating_add(Weight::from_parts(85_536, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -165,11 +162,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `127 + p * (41 ±0)` // Estimated: `3932` - // Minimum execution time: 23_566_000 picoseconds. - Weight::from_parts(24_125_110, 0) + // Minimum execution time: 23_089_000 picoseconds. + Weight::from_parts(23_650_154, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 2_389 - .saturating_add(Weight::from_parts(81_452, 0).saturating_mul(p.into())) + // Standard Error: 2_652 + .saturating_add(Weight::from_parts(87_779, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -180,11 +177,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `127 + p * (41 ±0)` // Estimated: `3932` - // Minimum execution time: 20_971_000 picoseconds. - Weight::from_parts(21_631_612, 0) + // Minimum execution time: 20_580_000 picoseconds. + Weight::from_parts(21_156_457, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 2_309 - .saturating_add(Weight::from_parts(73_744, 0).saturating_mul(p.into())) + // Standard Error: 2_541 + .saturating_add(Weight::from_parts(69_308, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -195,11 +192,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `139` // Estimated: `3932` - // Minimum execution time: 24_930_000 picoseconds. - Weight::from_parts(25_649_551, 0) + // Minimum execution time: 24_259_000 picoseconds. + Weight::from_parts(24_829_422, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 2_172 - .saturating_add(Weight::from_parts(20_799, 0).saturating_mul(p.into())) + // Standard Error: 2_157 + .saturating_add(Weight::from_parts(24_964, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -210,11 +207,11 @@ impl pallet_proxy::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `168 + p * (41 ±0)` // Estimated: `3932` - // Minimum execution time: 22_182_000 picoseconds. - Weight::from_parts(22_735_132, 0) + // Minimum execution time: 21_372_000 picoseconds. + Weight::from_parts(22_076_315, 0) .saturating_add(Weight::from_parts(0, 3932)) - // Standard Error: 2_459 - .saturating_add(Weight::from_parts(78_670, 0).saturating_mul(p.into())) + // Standard Error: 2_569 + .saturating_add(Weight::from_parts(72_851, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtimes/spiritnet/src/weights/pallet_scheduler.rs b/runtimes/spiritnet/src/weights/pallet_scheduler.rs index f33fbe031..19f7705fc 100644 --- a/runtimes/spiritnet/src/weights/pallet_scheduler.rs +++ b/runtimes/spiritnet/src/weights/pallet_scheduler.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-scheduler // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_scheduler.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -56,7 +53,7 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Measured: `36` // Estimated: `1493` // Minimum execution time: 2_704_000 picoseconds. - Weight::from_parts(2_856_000, 0) + Weight::from_parts(2_863_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -68,11 +65,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `83 + s * (181 ±0)` // Estimated: `42632` - // Minimum execution time: 3_299_000 picoseconds. - Weight::from_parts(7_000_035, 0) + // Minimum execution time: 3_408_000 picoseconds. + Weight::from_parts(7_265_639, 0) .saturating_add(Weight::from_parts(0, 42632)) - // Standard Error: 1_779 - .saturating_add(Weight::from_parts(460_372, 0).saturating_mul(s.into())) + // Standard Error: 1_821 + .saturating_add(Weight::from_parts(453_659, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -80,8 +77,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_435_000 picoseconds. - Weight::from_parts(3_651_000, 0) + // Minimum execution time: 3_594_000 picoseconds. + Weight::from_parts(3_775_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: `Preimage::PreimageFor` (r:1 w:1) @@ -95,11 +92,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `246 + s * (1 ±0)` // Estimated: `3711 + s * (1 ±0)` - // Minimum execution time: 18_570_000 picoseconds. - Weight::from_parts(18_744_000, 0) + // Minimum execution time: 19_121_000 picoseconds. + Weight::from_parts(19_362_000, 0) .saturating_add(Weight::from_parts(0, 3711)) - // Standard Error: 19 - .saturating_add(Weight::from_parts(1_753, 0).saturating_mul(s.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_258, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) @@ -110,8 +107,8 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_090_000 picoseconds. - Weight::from_parts(5_248_000, 0) + // Minimum execution time: 5_319_000 picoseconds. + Weight::from_parts(5_514_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -119,24 +116,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_434_000 picoseconds. - Weight::from_parts(3_559_000, 0) + // Minimum execution time: 3_590_000 picoseconds. + Weight::from_parts(3_826_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_signed() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_287_000 picoseconds. - Weight::from_parts(2_404_000, 0) + // Minimum execution time: 2_389_000 picoseconds. + Weight::from_parts(2_504_000, 0) .saturating_add(Weight::from_parts(0, 0)) } fn execute_dispatch_unsigned() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_250_000 picoseconds. - Weight::from_parts(2_443_000, 0) + // Minimum execution time: 2_400_000 picoseconds. + Weight::from_parts(2_485_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: `Scheduler::Agenda` (r:1 w:1) @@ -146,11 +143,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `83 + s * (181 ±0)` // Estimated: `42632` - // Minimum execution time: 10_638_000 picoseconds. - Weight::from_parts(14_687_147, 0) + // Minimum execution time: 10_945_000 picoseconds. + Weight::from_parts(14_810_576, 0) .saturating_add(Weight::from_parts(0, 42632)) - // Standard Error: 1_913 - .saturating_add(Weight::from_parts(482_171, 0).saturating_mul(s.into())) + // Standard Error: 1_821 + .saturating_add(Weight::from_parts(487_335, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -163,11 +160,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `83 + s * (181 ±0)` // Estimated: `42632` - // Minimum execution time: 16_149_000 picoseconds. - Weight::from_parts(15_809_362, 0) + // Minimum execution time: 16_613_000 picoseconds. + Weight::from_parts(16_221_069, 0) .saturating_add(Weight::from_parts(0, 42632)) - // Standard Error: 743 - .saturating_add(Weight::from_parts(733_748, 0).saturating_mul(s.into())) + // Standard Error: 857 + .saturating_add(Weight::from_parts(724_529, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -180,11 +177,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `266 + s * (189 ±0)` // Estimated: `42632` - // Minimum execution time: 14_144_000 picoseconds. - Weight::from_parts(19_188_976, 0) + // Minimum execution time: 14_594_000 picoseconds. + Weight::from_parts(19_712_796, 0) .saturating_add(Weight::from_parts(0, 42632)) - // Standard Error: 2_723 - .saturating_add(Weight::from_parts(514_586, 0).saturating_mul(s.into())) + // Standard Error: 2_800 + .saturating_add(Weight::from_parts(513_480, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -197,11 +194,11 @@ impl pallet_scheduler::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `290 + s * (189 ±0)` // Estimated: `42632` - // Minimum execution time: 18_108_000 picoseconds. - Weight::from_parts(18_326_622, 0) + // Minimum execution time: 18_730_000 picoseconds. + Weight::from_parts(19_136_655, 0) .saturating_add(Weight::from_parts(0, 42632)) - // Standard Error: 1_010 - .saturating_add(Weight::from_parts(757_085, 0).saturating_mul(s.into())) + // Standard Error: 1_248 + .saturating_add(Weight::from_parts(745_587, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtimes/spiritnet/src/weights/pallet_session.rs b/runtimes/spiritnet/src/weights/pallet_session.rs index 669eadb18..de112d30a 100644 --- a/runtimes/spiritnet/src/weights/pallet_session.rs +++ b/runtimes/spiritnet/src/weights/pallet_session.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-session // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_session.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -57,8 +54,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `298` // Estimated: `3763` - // Minimum execution time: 17_310_000 picoseconds. - Weight::from_parts(17_656_000, 0) + // Minimum execution time: 17_120_000 picoseconds. + Weight::from_parts(17_235_000, 0) .saturating_add(Weight::from_parts(0, 3763)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -71,8 +68,8 @@ impl pallet_session::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `280` // Estimated: `3745` - // Minimum execution time: 12_803_000 picoseconds. - Weight::from_parts(13_129_000, 0) + // Minimum execution time: 12_600_000 picoseconds. + Weight::from_parts(12_787_000, 0) .saturating_add(Weight::from_parts(0, 3745)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) diff --git a/runtimes/spiritnet/src/weights/pallet_timestamp.rs b/runtimes/spiritnet/src/weights/pallet_timestamp.rs index 2afc6742a..6891b80d4 100644 --- a/runtimes/spiritnet/src/weights/pallet_timestamp.rs +++ b/runtimes/spiritnet/src/weights/pallet_timestamp.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-timestamp // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_timestamp.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -55,8 +52,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `1493` - // Minimum execution time: 6_308_000 picoseconds. - Weight::from_parts(6_451_000, 0) + // Minimum execution time: 6_067_000 picoseconds. + Weight::from_parts(6_315_000, 0) .saturating_add(Weight::from_parts(0, 1493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -65,8 +62,8 @@ impl pallet_timestamp::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `94` // Estimated: `0` - // Minimum execution time: 4_222_000 picoseconds. - Weight::from_parts(4_386_000, 0) + // Minimum execution time: 4_080_000 picoseconds. + Weight::from_parts(4_331_000, 0) .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/runtimes/spiritnet/src/weights/pallet_tips.rs b/runtimes/spiritnet/src/weights/pallet_tips.rs index 3e44f9c99..9340daf1e 100644 --- a/runtimes/spiritnet/src/weights/pallet_tips.rs +++ b/runtimes/spiritnet/src/weights/pallet_tips.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_tips` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-tips // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_tips.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -58,11 +55,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `4` // Estimated: `3469` - // Minimum execution time: 27_952_000 picoseconds. - Weight::from_parts(28_728_213, 0) + // Minimum execution time: 27_626_000 picoseconds. + Weight::from_parts(28_541_783, 0) .saturating_add(Weight::from_parts(0, 3469)) - // Standard Error: 4 - .saturating_add(Weight::from_parts(1_556, 0).saturating_mul(r.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_515, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -74,8 +71,8 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `221` // Estimated: `3686` - // Minimum execution time: 25_478_000 picoseconds. - Weight::from_parts(25_777_000, 0) + // Minimum execution time: 24_997_000 picoseconds. + Weight::from_parts(25_538_000, 0) .saturating_add(Weight::from_parts(0, 3686)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -92,13 +89,13 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `141 + t * (32 ±0)` // Estimated: `3606 + t * (32 ±0)` - // Minimum execution time: 19_804_000 picoseconds. - Weight::from_parts(17_926_991, 0) + // Minimum execution time: 18_969_000 picoseconds. + Weight::from_parts(17_636_181, 0) .saturating_add(Weight::from_parts(0, 3606)) - // Standard Error: 7 - .saturating_add(Weight::from_parts(1_423, 0).saturating_mul(r.into())) - // Standard Error: 5_788 - .saturating_add(Weight::from_parts(162_652, 0).saturating_mul(t.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_406, 0).saturating_mul(r.into())) + // Standard Error: 4_762 + .saturating_add(Weight::from_parts(140_484, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into())) @@ -112,11 +109,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `366 + t * (80 ±0)` // Estimated: `3831 + t * (80 ±0)` - // Minimum execution time: 15_693_000 picoseconds. - Weight::from_parts(15_940_899, 0) + // Minimum execution time: 15_049_000 picoseconds. + Weight::from_parts(15_478_229, 0) .saturating_add(Weight::from_parts(0, 3831)) - // Standard Error: 1_182 - .saturating_add(Weight::from_parts(126_181, 0).saturating_mul(t.into())) + // Standard Error: 1_054 + .saturating_add(Weight::from_parts(121_874, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(Weight::from_parts(0, 80).saturating_mul(t.into())) @@ -133,15 +130,15 @@ impl pallet_tips::WeightInfo for WeightInfo { fn close_tip(t: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `473 + t * (80 ±0)` - // Estimated: `6204 + t * (80 ±0)` - // Minimum execution time: 55_188_000 picoseconds. - Weight::from_parts(56_227_331, 0) + // Estimated: `6204 + t * (79 ±0)` + // Minimum execution time: 54_884_000 picoseconds. + Weight::from_parts(55_995_346, 0) .saturating_add(Weight::from_parts(0, 6204)) - // Standard Error: 4_354 - .saturating_add(Weight::from_parts(135_011, 0).saturating_mul(t.into())) + // Standard Error: 3_630 + .saturating_add(Weight::from_parts(124_764, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) - .saturating_add(Weight::from_parts(0, 80).saturating_mul(t.into())) + .saturating_add(Weight::from_parts(0, 79).saturating_mul(t.into())) } /// Storage: `Tips::Tips` (r:1 w:1) /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -152,11 +149,11 @@ impl pallet_tips::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `269` // Estimated: `3734` - // Minimum execution time: 14_238_000 picoseconds. - Weight::from_parts(14_632_080, 0) + // Minimum execution time: 13_732_000 picoseconds. + Weight::from_parts(14_099_163, 0) .saturating_add(Weight::from_parts(0, 3734)) - // Standard Error: 717 - .saturating_add(Weight::from_parts(9_426, 0).saturating_mul(t.into())) + // Standard Error: 679 + .saturating_add(Weight::from_parts(5_766, 0).saturating_mul(t.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/runtimes/spiritnet/src/weights/pallet_treasury.rs b/runtimes/spiritnet/src/weights/pallet_treasury.rs index 4ce8ea8bf..a30e7c491 100644 --- a/runtimes/spiritnet/src/weights/pallet_treasury.rs +++ b/runtimes/spiritnet/src/weights/pallet_treasury.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_treasury` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-treasury // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_treasury.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,8 +56,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `6` // Estimated: `1887` - // Minimum execution time: 11_578_000 picoseconds. - Weight::from_parts(11_946_000, 0) + // Minimum execution time: 11_541_000 picoseconds. + Weight::from_parts(11_844_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) @@ -73,8 +70,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `111` // Estimated: `1489` - // Minimum execution time: 25_896_000 picoseconds. - Weight::from_parts(26_447_000, 0) + // Minimum execution time: 26_080_000 picoseconds. + Weight::from_parts(26_490_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -87,8 +84,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `376` // Estimated: `6204` - // Minimum execution time: 36_905_000 picoseconds. - Weight::from_parts(37_206_000, 0) + // Minimum execution time: 37_266_000 picoseconds. + Weight::from_parts(37_608_000, 0) .saturating_add(Weight::from_parts(0, 6204)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -102,11 +99,11 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `433 + p * (8 ±0)` // Estimated: `3573` - // Minimum execution time: 9_645_000 picoseconds. - Weight::from_parts(12_567_224, 0) + // Minimum execution time: 9_249_000 picoseconds. + Weight::from_parts(12_337_491, 0) .saturating_add(Weight::from_parts(0, 3573)) - // Standard Error: 953 - .saturating_add(Weight::from_parts(38_099, 0).saturating_mul(p.into())) + // Standard Error: 931 + .saturating_add(Weight::from_parts(34_318, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -116,8 +113,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `1887` - // Minimum execution time: 6_302_000 picoseconds. - Weight::from_parts(6_388_000, 0) + // Minimum execution time: 6_054_000 picoseconds. + Weight::from_parts(6_222_000, 0) .saturating_add(Weight::from_parts(0, 1887)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -135,13 +132,13 @@ impl pallet_treasury::WeightInfo for WeightInfo { /// The range of component `p` is `[0, 99]`. fn on_initialize_proposals(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `33 + p * (256 ±0)` + // Measured: `79 + p * (256 ±0)` // Estimated: `3597 + p * (5214 ±0)` - // Minimum execution time: 18_607_000 picoseconds. - Weight::from_parts(23_512_938, 0) + // Minimum execution time: 19_302_000 picoseconds. + Weight::from_parts(24_822_900, 0) .saturating_add(Weight::from_parts(0, 3597)) - // Standard Error: 13_219 - .saturating_add(Weight::from_parts(29_556_399, 0).saturating_mul(p.into())) + // Standard Error: 17_062 + .saturating_add(Weight::from_parts(30_701_853, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(4)) @@ -156,8 +153,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `6` // Estimated: `1489` - // Minimum execution time: 10_692_000 picoseconds. - Weight::from_parts(10_963_000, 0) + // Minimum execution time: 10_427_000 picoseconds. + Weight::from_parts(10_730_000, 0) .saturating_add(Weight::from_parts(0, 1489)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -170,8 +167,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `347` // Estimated: `6204` - // Minimum execution time: 46_436_000 picoseconds. - Weight::from_parts(47_008_000, 0) + // Minimum execution time: 46_904_000 picoseconds. + Weight::from_parts(47_438_000, 0) .saturating_add(Weight::from_parts(0, 6204)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -182,8 +179,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `133` // Estimated: `3542` - // Minimum execution time: 12_823_000 picoseconds. - Weight::from_parts(12_962_000, 0) + // Minimum execution time: 12_773_000 picoseconds. + Weight::from_parts(13_116_000, 0) .saturating_add(Weight::from_parts(0, 3542)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -194,8 +191,8 @@ impl pallet_treasury::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `133` // Estimated: `3542` - // Minimum execution time: 12_216_000 picoseconds. - Weight::from_parts(12_475_000, 0) + // Minimum execution time: 12_215_000 picoseconds. + Weight::from_parts(12_449_000, 0) .saturating_add(Weight::from_parts(0, 3542)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/runtimes/spiritnet/src/weights/pallet_utility.rs b/runtimes/spiritnet/src/weights/pallet_utility.rs index c35d2f51a..5783b7295 100644 --- a/runtimes/spiritnet/src/weights/pallet_utility.rs +++ b/runtimes/spiritnet/src/weights/pallet_utility.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-utility // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_utility.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -54,18 +51,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_222_000 picoseconds. - Weight::from_parts(11_268_025, 0) + // Minimum execution time: 5_238_000 picoseconds. + Weight::from_parts(13_108_682, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 856 - .saturating_add(Weight::from_parts(2_683_219, 0).saturating_mul(c.into())) + // Standard Error: 1_549 + .saturating_add(Weight::from_parts(2_882_179, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_043_000 picoseconds. - Weight::from_parts(5_233_000, 0) + // Minimum execution time: 4_888_000 picoseconds. + Weight::from_parts(4_995_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -73,18 +70,18 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_182_000 picoseconds. - Weight::from_parts(9_707_336, 0) + // Minimum execution time: 5_480_000 picoseconds. + Weight::from_parts(14_169_863, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_154 - .saturating_add(Weight::from_parts(2_925_062, 0).saturating_mul(c.into())) + // Standard Error: 1_370 + .saturating_add(Weight::from_parts(3_077_738, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_176_000 picoseconds. - Weight::from_parts(7_380_000, 0) + // Minimum execution time: 7_120_000 picoseconds. + Weight::from_parts(7_326_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. @@ -92,11 +89,11 @@ impl pallet_utility::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_136_000 picoseconds. - Weight::from_parts(7_738_737, 0) + // Minimum execution time: 5_266_000 picoseconds. + Weight::from_parts(8_637_571, 0) .saturating_add(Weight::from_parts(0, 0)) - // Standard Error: 1_249 - .saturating_add(Weight::from_parts(2_687_201, 0).saturating_mul(c.into())) + // Standard Error: 1_540 + .saturating_add(Weight::from_parts(2_861_185, 0).saturating_mul(c.into())) } } diff --git a/runtimes/spiritnet/src/weights/pallet_vesting.rs b/runtimes/spiritnet/src/weights/pallet_vesting.rs index 745623719..97be493b7 100644 --- a/runtimes/spiritnet/src/weights/pallet_vesting.rs +++ b/runtimes/spiritnet/src/weights/pallet_vesting.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_vesting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-vesting // --extrinsic=* -// --output=./runtimes/peregrine/src/weights/pallet_vesting.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -59,15 +56,15 @@ impl pallet_vesting::WeightInfo for WeightInfo { /// The range of component `s` is `[1, 28]`. fn vest_locked(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `366 + l * (25 ±0) + s * (40 ±0)` + // Measured: `333 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 32_716_000 picoseconds. - Weight::from_parts(31_624_238, 0) + // Minimum execution time: 33_983_000 picoseconds. + Weight::from_parts(32_423_477, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 610 - .saturating_add(Weight::from_parts(37_011, 0).saturating_mul(l.into())) - // Standard Error: 1_086 - .saturating_add(Weight::from_parts(141_132, 0).saturating_mul(s.into())) + // Standard Error: 399 + .saturating_add(Weight::from_parts(40_432, 0).saturating_mul(l.into())) + // Standard Error: 710 + .saturating_add(Weight::from_parts(140_987, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -81,15 +78,15 @@ impl pallet_vesting::WeightInfo for WeightInfo { /// The range of component `s` is `[1, 28]`. fn vest_unlocked(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `366 + l * (25 ±0) + s * (40 ±0)` + // Measured: `333 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 34_933_000 picoseconds. - Weight::from_parts(34_148_826, 0) + // Minimum execution time: 35_982_000 picoseconds. + Weight::from_parts(35_422_401, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 527 - .saturating_add(Weight::from_parts(30_137, 0).saturating_mul(l.into())) - // Standard Error: 938 - .saturating_add(Weight::from_parts(127_675, 0).saturating_mul(s.into())) + // Standard Error: 3_824 + .saturating_add(Weight::from_parts(25_034, 0).saturating_mul(l.into())) + // Standard Error: 6_804 + .saturating_add(Weight::from_parts(126_524, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -105,15 +102,15 @@ impl pallet_vesting::WeightInfo for WeightInfo { /// The range of component `s` is `[1, 28]`. fn vest_other_locked(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `434 + l * (25 ±0) + s * (40 ±0)` + // Measured: `401 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 34_970_000 picoseconds. - Weight::from_parts(33_396_762, 0) + // Minimum execution time: 35_583_000 picoseconds. + Weight::from_parts(34_896_106, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 655 - .saturating_add(Weight::from_parts(39_902, 0).saturating_mul(l.into())) - // Standard Error: 1_166 - .saturating_add(Weight::from_parts(146_668, 0).saturating_mul(s.into())) + // Standard Error: 4_462 + .saturating_add(Weight::from_parts(38_239, 0).saturating_mul(l.into())) + // Standard Error: 7_940 + .saturating_add(Weight::from_parts(119_378, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -129,15 +126,15 @@ impl pallet_vesting::WeightInfo for WeightInfo { /// The range of component `s` is `[1, 28]`. fn vest_other_unlocked(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `434 + l * (25 ±0) + s * (40 ±0)` + // Measured: `401 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 36_957_000 picoseconds. - Weight::from_parts(36_063_061, 0) + // Minimum execution time: 37_894_000 picoseconds. + Weight::from_parts(36_582_162, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 529 - .saturating_add(Weight::from_parts(31_993, 0).saturating_mul(l.into())) - // Standard Error: 941 - .saturating_add(Weight::from_parts(123_889, 0).saturating_mul(s.into())) + // Standard Error: 441 + .saturating_add(Weight::from_parts(37_430, 0).saturating_mul(l.into())) + // Standard Error: 785 + .saturating_add(Weight::from_parts(129_747, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -153,15 +150,15 @@ impl pallet_vesting::WeightInfo for WeightInfo { /// The range of component `s` is `[0, 27]`. fn vested_transfer(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `471 + l * (25 ±0) + s * (40 ±0)` + // Measured: `438 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 66_016_000 picoseconds. - Weight::from_parts(66_301_649, 0) + // Minimum execution time: 66_974_000 picoseconds. + Weight::from_parts(67_144_212, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 1_235 - .saturating_add(Weight::from_parts(45_951, 0).saturating_mul(l.into())) - // Standard Error: 2_198 - .saturating_add(Weight::from_parts(171_498, 0).saturating_mul(s.into())) + // Standard Error: 977 + .saturating_add(Weight::from_parts(47_424, 0).saturating_mul(l.into())) + // Standard Error: 1_738 + .saturating_add(Weight::from_parts(171_461, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -177,15 +174,15 @@ impl pallet_vesting::WeightInfo for WeightInfo { /// The range of component `s` is `[0, 27]`. fn force_vested_transfer(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `578 + l * (25 ±0) + s * (40 ±0)` + // Measured: `545 + l * (25 ±0) + s * (40 ±0)` // Estimated: `6204` - // Minimum execution time: 69_129_000 picoseconds. - Weight::from_parts(69_076_699, 0) + // Minimum execution time: 69_870_000 picoseconds. + Weight::from_parts(70_259_680, 0) .saturating_add(Weight::from_parts(0, 6204)) - // Standard Error: 1_189 - .saturating_add(Weight::from_parts(45_612, 0).saturating_mul(l.into())) - // Standard Error: 2_116 - .saturating_add(Weight::from_parts(169_957, 0).saturating_mul(s.into())) + // Standard Error: 1_177 + .saturating_add(Weight::from_parts(44_710, 0).saturating_mul(l.into())) + // Standard Error: 2_095 + .saturating_add(Weight::from_parts(158_698, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -201,15 +198,15 @@ impl pallet_vesting::WeightInfo for WeightInfo { /// The range of component `s` is `[2, 28]`. fn not_unlocking_merge_schedules(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `471 + l * (25 ±0) + s * (40 ±0)` + // Measured: `438 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 36_571_000 picoseconds. - Weight::from_parts(35_060_968, 0) + // Minimum execution time: 37_580_000 picoseconds. + Weight::from_parts(36_033_191, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 525 - .saturating_add(Weight::from_parts(42_288, 0).saturating_mul(l.into())) - // Standard Error: 970 - .saturating_add(Weight::from_parts(142_565, 0).saturating_mul(s.into())) + // Standard Error: 471 + .saturating_add(Weight::from_parts(42_956, 0).saturating_mul(l.into())) + // Standard Error: 870 + .saturating_add(Weight::from_parts(143_263, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -225,15 +222,15 @@ impl pallet_vesting::WeightInfo for WeightInfo { /// The range of component `s` is `[2, 28]`. fn unlocking_merge_schedules(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `471 + l * (25 ±0) + s * (40 ±0)` + // Measured: `438 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 39_189_000 picoseconds. - Weight::from_parts(37_159_926, 0) + // Minimum execution time: 40_151_000 picoseconds. + Weight::from_parts(38_525_524, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 636 - .saturating_add(Weight::from_parts(46_607, 0).saturating_mul(l.into())) - // Standard Error: 1_175 - .saturating_add(Weight::from_parts(147_625, 0).saturating_mul(s.into())) + // Standard Error: 461 + .saturating_add(Weight::from_parts(43_091, 0).saturating_mul(l.into())) + // Standard Error: 851 + .saturating_add(Weight::from_parts(141_229, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -249,15 +246,15 @@ impl pallet_vesting::WeightInfo for WeightInfo { /// The range of component `s` is `[2, 28]`. fn force_remove_vesting_schedule(l: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `471 + l * (25 ±0) + s * (40 ±0)` + // Measured: `438 + l * (25 ±0) + s * (40 ±0)` // Estimated: `4764` - // Minimum execution time: 39_755_000 picoseconds. - Weight::from_parts(38_003_429, 0) + // Minimum execution time: 40_389_000 picoseconds. + Weight::from_parts(38_867_434, 0) .saturating_add(Weight::from_parts(0, 4764)) - // Standard Error: 864 - .saturating_add(Weight::from_parts(43_527, 0).saturating_mul(l.into())) - // Standard Error: 1_596 - .saturating_add(Weight::from_parts(144_859, 0).saturating_mul(s.into())) + // Standard Error: 591 + .saturating_add(Weight::from_parts(41_860, 0).saturating_mul(l.into())) + // Standard Error: 1_091 + .saturating_add(Weight::from_parts(141_510, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) } diff --git a/runtimes/spiritnet/src/weights/pallet_web3_names.rs b/runtimes/spiritnet/src/weights/pallet_web3_names.rs index 20ad676dd..2d28710d2 100644 --- a/runtimes/spiritnet/src/weights/pallet_web3_names.rs +++ b/runtimes/spiritnet/src/weights/pallet_web3_names.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_web3_names` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-web3-names // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_web3_names.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -62,15 +59,13 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// Storage: `Migration::MigratedKeys` (r:0 w:1) /// Proof: `Migration::MigratedKeys` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// The range of component `n` is `[3, 32]`. - fn claim(n: u32, ) -> Weight { + fn claim(_n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `111` + // Measured: `147` // Estimated: `3658` - // Minimum execution time: 58_563_000 picoseconds. - Weight::from_parts(59_662_237, 0) + // Minimum execution time: 57_264_000 picoseconds. + Weight::from_parts(58_492_540, 0) .saturating_add(Weight::from_parts(0, 3658)) - // Standard Error: 1_099 - .saturating_add(Weight::from_parts(7_968, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -86,10 +81,10 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn release_by_owner() -> Weight { // Proof Size summary in bytes: - // Measured: `515` + // Measured: `552` // Estimated: `3658` - // Minimum execution time: 51_526_000 picoseconds. - Weight::from_parts(51_915_000, 0) + // Minimum execution time: 50_594_000 picoseconds. + Weight::from_parts(51_227_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -107,13 +102,13 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// The range of component `n` is `[3, 32]`. fn reclaim_deposit(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `411 + n * (1 ±0)` + // Measured: `448 + n * (1 ±0)` // Estimated: `3658` - // Minimum execution time: 49_388_000 picoseconds. - Weight::from_parts(50_066_225, 0) + // Minimum execution time: 48_328_000 picoseconds. + Weight::from_parts(48_963_508, 0) .saturating_add(Weight::from_parts(0, 3658)) - // Standard Error: 913 - .saturating_add(Weight::from_parts(21_509, 0).saturating_mul(n.into())) + // Standard Error: 1_017 + .saturating_add(Weight::from_parts(24_003, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -130,13 +125,15 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// Storage: `Web3Names::Names` (r:0 w:1) /// Proof: `Web3Names::Names` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) /// The range of component `n` is `[3, 32]`. - fn ban(_n: u32, ) -> Weight { + fn ban(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `411 + n * (1 ±0)` + // Measured: `448 + n * (1 ±0)` // Estimated: `3658` - // Minimum execution time: 55_030_000 picoseconds. - Weight::from_parts(58_781_704, 0) + // Minimum execution time: 51_280_000 picoseconds. + Weight::from_parts(52_142_014, 0) .saturating_add(Weight::from_parts(0, 3658)) + // Standard Error: 1_434 + .saturating_add(Weight::from_parts(5_687, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -145,13 +142,13 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// The range of component `n` is `[3, 32]`. fn unban(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `47 + n * (1 ±0)` + // Measured: `84 + n * (1 ±0)` // Estimated: `3514` - // Minimum execution time: 13_030_000 picoseconds. - Weight::from_parts(13_421_837, 0) + // Minimum execution time: 12_732_000 picoseconds. + Weight::from_parts(13_219_843, 0) .saturating_add(Weight::from_parts(0, 3514)) - // Standard Error: 697 - .saturating_add(Weight::from_parts(18_015, 0).saturating_mul(n.into())) + // Standard Error: 667 + .saturating_add(Weight::from_parts(21_936, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -167,10 +164,10 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn change_deposit_owner() -> Weight { // Proof Size summary in bytes: - // Measured: `622` + // Measured: `659` // Estimated: `6326` - // Minimum execution time: 82_747_000 picoseconds. - Weight::from_parts(83_384_000, 0) + // Minimum execution time: 79_872_000 picoseconds. + Weight::from_parts(80_931_000, 0) .saturating_add(Weight::from_parts(0, 6326)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -185,10 +182,10 @@ impl pallet_web3_names::WeightInfo for WeightInfo { /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`) fn update_deposit() -> Weight { // Proof Size summary in bytes: - // Measured: `370` + // Measured: `407` // Estimated: `3658` - // Minimum execution time: 67_321_000 picoseconds. - Weight::from_parts(67_947_000, 0) + // Minimum execution time: 66_199_000 picoseconds. + Weight::from_parts(66_607_000, 0) .saturating_add(Weight::from_parts(0, 3658)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/runtimes/spiritnet/src/weights/pallet_xcm.rs b/runtimes/spiritnet/src/weights/pallet_xcm.rs index 92e5ace14..72f3d2110 100644 --- a/runtimes/spiritnet/src/weights/pallet_xcm.rs +++ b/runtimes/spiritnet/src/weights/pallet_xcm.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=pallet-xcm // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/pallet_xcm.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -63,11 +60,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn send() -> Weight { // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3742` - // Minimum execution time: 30_940_000 picoseconds. - Weight::from_parts(31_685_000, 0) - .saturating_add(Weight::from_parts(0, 3742)) + // Measured: `311` + // Estimated: `3776` + // Minimum execution time: 30_822_000 picoseconds. + Weight::from_parts(31_797_000, 0) + .saturating_add(Weight::from_parts(0, 3776)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -81,6 +78,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { Weight::from_parts(18_446_744_073_709_551_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:0) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `System::Account` (r:1 w:1) @@ -99,23 +98,41 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `309` - // Estimated: `3774` - // Minimum execution time: 97_254_000 picoseconds. - Weight::from_parts(98_092_000, 0) - .saturating_add(Weight::from_parts(0, 3774)) - .saturating_add(T::DbWeight::get().reads(7)) + // Measured: `346` + // Estimated: `3811` + // Minimum execution time: 114_744_000 picoseconds. + Weight::from_parts(118_434_000, 0) + .saturating_add(Weight::from_parts(0, 3811)) + .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(4)) } - /// Storage: `Benchmark::Override` (r:0 w:0) - /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:0) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. - Weight::from_parts(18_446_744_073_709_551_000, 0) - .saturating_add(Weight::from_parts(0, 0)) + // Measured: `346` + // Estimated: `3811` + // Minimum execution time: 115_611_000 picoseconds. + Weight::from_parts(117_269_000, 0) + .saturating_add(Weight::from_parts(0, 3811)) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) } /// Storage: `Benchmark::Override` (r:0 w:0) /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -133,8 +150,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 9_272_000 picoseconds. - Weight::from_parts(9_541_000, 0) + // Minimum execution time: 9_362_000 picoseconds. + Weight::from_parts(9_524_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -144,8 +161,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_748_000 picoseconds. - Weight::from_parts(2_927_000, 0) + // Minimum execution time: 2_605_000 picoseconds. + Weight::from_parts(2_775_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -169,11 +186,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `277` - // Estimated: `3742` - // Minimum execution time: 37_648_000 picoseconds. - Weight::from_parts(38_348_000, 0) - .saturating_add(Weight::from_parts(0, 3742)) + // Measured: `311` + // Estimated: `3776` + // Minimum execution time: 37_749_000 picoseconds. + Weight::from_parts(38_516_000, 0) + .saturating_add(Weight::from_parts(0, 3776)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(6)) } @@ -195,11 +212,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { // Proof Size summary in bytes: - // Measured: `532` - // Estimated: `3997` - // Minimum execution time: 41_031_000 picoseconds. - Weight::from_parts(41_618_000, 0) - .saturating_add(Weight::from_parts(0, 3997)) + // Measured: `566` + // Estimated: `4031` + // Minimum execution time: 40_776_000 picoseconds. + Weight::from_parts(41_193_000, 0) + .saturating_add(Weight::from_parts(0, 4031)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -209,8 +226,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_830_000 picoseconds. - Weight::from_parts(2_984_000, 0) + // Minimum execution time: 2_477_000 picoseconds. + Weight::from_parts(2_596_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -218,11 +235,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `125` - // Estimated: `13490` - // Minimum execution time: 21_326_000 picoseconds. - Weight::from_parts(21_932_000, 0) - .saturating_add(Weight::from_parts(0, 13490)) + // Measured: `159` + // Estimated: `13524` + // Minimum execution time: 20_920_000 picoseconds. + Weight::from_parts(21_430_000, 0) + .saturating_add(Weight::from_parts(0, 13524)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -230,11 +247,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `129` - // Estimated: `13494` - // Minimum execution time: 21_504_000 picoseconds. - Weight::from_parts(21_914_000, 0) - .saturating_add(Weight::from_parts(0, 13494)) + // Measured: `163` + // Estimated: `13528` + // Minimum execution time: 20_868_000 picoseconds. + Weight::from_parts(21_240_000, 0) + .saturating_add(Weight::from_parts(0, 13528)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -242,11 +259,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: - // Measured: `183` - // Estimated: `16023` - // Minimum execution time: 23_689_000 picoseconds. - Weight::from_parts(24_555_000, 0) - .saturating_add(Weight::from_parts(0, 16023)) + // Measured: `178` + // Estimated: `16018` + // Minimum execution time: 23_272_000 picoseconds. + Weight::from_parts(23_619_000, 0) + .saturating_add(Weight::from_parts(0, 16018)) .saturating_add(T::DbWeight::get().reads(6)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) @@ -265,11 +282,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_current_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `349` - // Estimated: `6289` - // Minimum execution time: 36_737_000 picoseconds. - Weight::from_parts(37_663_000, 0) - .saturating_add(Weight::from_parts(0, 6289)) + // Measured: `383` + // Estimated: `6323` + // Minimum execution time: 36_361_000 picoseconds. + Weight::from_parts(36_859_000, 0) + .saturating_add(Weight::from_parts(0, 6323)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -277,22 +294,22 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: - // Measured: `172` - // Estimated: `11062` - // Minimum execution time: 13_355_000 picoseconds. - Weight::from_parts(13_653_000, 0) - .saturating_add(Weight::from_parts(0, 11062)) + // Measured: `206` + // Estimated: `11096` + // Minimum execution time: 13_127_000 picoseconds. + Weight::from_parts(13_323_000, 0) + .saturating_add(Weight::from_parts(0, 11096)) .saturating_add(T::DbWeight::get().reads(4)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `136` - // Estimated: `13501` - // Minimum execution time: 21_637_000 picoseconds. - Weight::from_parts(22_117_000, 0) - .saturating_add(Weight::from_parts(0, 13501)) + // Measured: `170` + // Estimated: `13535` + // Minimum execution time: 21_051_000 picoseconds. + Weight::from_parts(21_671_000, 0) + .saturating_add(Weight::from_parts(0, 13535)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -312,11 +329,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `349` - // Estimated: `13714` - // Minimum execution time: 46_936_000 picoseconds. - Weight::from_parts(47_598_000, 0) - .saturating_add(Weight::from_parts(0, 13714)) + // Measured: `383` + // Estimated: `13748` + // Minimum execution time: 46_205_000 picoseconds. + Weight::from_parts(46_973_000, 0) + .saturating_add(Weight::from_parts(0, 13748)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -326,11 +343,11 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn new_query() -> Weight { // Proof Size summary in bytes: - // Measured: `69` - // Estimated: `1554` - // Minimum execution time: 5_308_000 picoseconds. - Weight::from_parts(5_529_000, 0) - .saturating_add(Weight::from_parts(0, 1554)) + // Measured: `103` + // Estimated: `1588` + // Minimum execution time: 5_292_000 picoseconds. + Weight::from_parts(5_499_000, 0) + .saturating_add(Weight::from_parts(0, 1588)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -338,24 +355,26 @@ impl pallet_xcm::WeightInfo for WeightInfo { /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn take_response() -> Weight { // Proof Size summary in bytes: - // Measured: `7710` - // Estimated: `11175` - // Minimum execution time: 30_221_000 picoseconds. - Weight::from_parts(30_681_000, 0) - .saturating_add(Weight::from_parts(0, 11175)) + // Measured: `7744` + // Estimated: `11209` + // Minimum execution time: 29_311_000 picoseconds. + Weight::from_parts(29_790_000, 0) + .saturating_add(Weight::from_parts(0, 11209)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } + /// Storage: `AssetSwitchPool1::SwitchPair` (r:1 w:0) + /// Proof: `AssetSwitchPool1::SwitchPair` (`max_values`: Some(1), `max_size`: Some(1939), added: 2434, mode: `MaxEncodedLen`) /// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) /// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) fn claim_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `126` - // Estimated: `3591` - // Minimum execution time: 44_754_000 picoseconds. - Weight::from_parts(45_338_000, 0) - .saturating_add(Weight::from_parts(0, 3591)) - .saturating_add(T::DbWeight::get().reads(1)) + // Measured: `163` + // Estimated: `3628` + // Minimum execution time: 66_848_000 picoseconds. + Weight::from_parts(68_046_000, 0) + .saturating_add(Weight::from_parts(0, 3628)) + .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } } @@ -371,7 +390,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3742 + > 3776 ); } #[test] @@ -383,7 +402,19 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3774 + > 3811 + ); + } + #[test] + fn test_transfer_assets() { + assert!( + ::BlockWeights::get() + .per_class + .get(frame_support::dispatch::DispatchClass::Normal) + .max_extrinsic + .unwrap_or_else(::max_value) + .proof_size() + > 3811 ); } #[test] @@ -395,7 +426,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3742 + > 3776 ); } #[test] @@ -407,7 +438,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3997 + > 4031 ); } #[test] @@ -419,7 +450,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 13490 + > 13524 ); } #[test] @@ -431,7 +462,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 13494 + > 13528 ); } #[test] @@ -443,7 +474,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 16023 + > 16018 ); } #[test] @@ -455,7 +486,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 6289 + > 6323 ); } #[test] @@ -467,7 +498,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 11062 + > 11096 ); } #[test] @@ -479,7 +510,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 13501 + > 13535 ); } #[test] @@ -491,7 +522,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 13714 + > 13748 ); } #[test] @@ -503,7 +534,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 1554 + > 1588 ); } #[test] @@ -515,7 +546,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 11175 + > 11209 ); } #[test] @@ -527,7 +558,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 3591 + > 3628 ); } } diff --git a/runtimes/spiritnet/src/weights/parachain_staking.rs b/runtimes/spiritnet/src/weights/parachain_staking.rs index b4daf9542..cc8986730 100644 --- a/runtimes/spiritnet/src/weights/parachain_staking.rs +++ b/runtimes/spiritnet/src/weights/parachain_staking.rs @@ -16,73 +16,91 @@ // If you feel like getting in touch with us, you can do so at info@botlabs.org -//! Autogenerated weights for parachain_staking +//! Autogenerated weights for `parachain_staking` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-10, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 // Executed Command: // ./target/release/kilt-parachain // benchmark // pallet +// --heap-pages=4096 // --chain=spiritnet-dev -// --steps=50 -// --repeat=20 // --pallet=parachain-staking // --extrinsic=* -// --execution=wasm -// --wasm-execution=compiled -// --heap-pages=4096 -// --output=./runtimes/spiritnet/src/weights/parachain_staking.rs +// --header=HEADER-GPL // --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] -#![allow(clippy::unnecessary_cast)] use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weights for `parachain_staking`. +/// Weight functions for `parachain_staking`. pub struct WeightInfo(PhantomData); impl parachain_staking::WeightInfo for WeightInfo { - // Storage: ParachainStaking Round (r:1 w:0) - // Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::Round` (r:1 w:0) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) fn on_initialize_no_action() -> Weight { - Weight::from_parts(9_720_000 as u64, 0) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - } - // Storage: ParachainStaking Round (r:1 w:1) - // Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `335` + // Estimated: `1505` + // Minimum execution time: 4_805_000 picoseconds. + Weight::from_parts(4_936_000, 0) + .saturating_add(Weight::from_parts(0, 1505)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `ParachainStaking::Round` (r:1 w:1) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) fn on_initialize_round_update() -> Weight { - Weight::from_parts(19_583_000 as u64, 0) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) - } - // Storage: ParachainStaking Round (r:1 w:1) - // Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:0) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxCollatorCandidateStake (r:1 w:0) - // Proof: ParachainStaking MaxCollatorCandidateStake (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `335` + // Estimated: `1505` + // Minimum execution time: 8_073_000 picoseconds. + Weight::from_parts(8_354_000, 0) + .saturating_add(Weight::from_parts(0, 1505)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ParachainStaking::Round` (r:1 w:1) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxCollatorCandidateStake` (r:1 w:0) + /// Proof: `ParachainStaking::MaxCollatorCandidateStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) fn on_initialize_network_rewards() -> Weight { - Weight::from_parts(37_094_000 as u64, 0) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) - } - // Storage: ParachainStaking ForceNewRound (r:0 w:1) - // Proof: ParachainStaking ForceNewRound (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `482` + // Estimated: `3597` + // Minimum execution time: 30_210_000 picoseconds. + Weight::from_parts(30_717_000, 0) + .saturating_add(Weight::from_parts(0, 3597)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainStaking::ForceNewRound` (r:0 w:1) + /// Proof: `ParachainStaking::ForceNewRound` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) fn force_new_round() -> Weight { - Weight::from_parts(3_573_000 as u64, 0) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_620_000 picoseconds. + Weight::from_parts(2_792_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) } -/// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:0) + /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:0) /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `ParachainStaking::CandidatePool` (r:76 w:0) /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) @@ -101,14 +119,14 @@ impl parachain_staking::WeightInfo for WeightInfo { fn set_inflation(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + m * (7573 ±0) + n * (3709 ±0)` - // Estimated: `183222 + m * (64823 ±2_167) + n * (31965 ±1_009)` - // Minimum execution time: 704_611_000 picoseconds. - Weight::from_parts(707_105_000, 0) + // Estimated: `183222 + m * (64823 ±2_167) + n * (31965 ±0)` + // Minimum execution time: 669_267_000 picoseconds. + Weight::from_parts(672_739_000, 0) .saturating_add(Weight::from_parts(0, 183222)) - // Standard Error: 4_876_636 - .saturating_add(Weight::from_parts(150_694_630, 0).saturating_mul(n.into())) - // Standard Error: 10_470_032 - .saturating_add(Weight::from_parts(290_425_882, 0).saturating_mul(m.into())) + // Standard Error: 4_676_271 + .saturating_add(Weight::from_parts(144_351_045, 0).saturating_mul(n.into())) + // Standard Error: 10_039_853 + .saturating_add(Weight::from_parts(278_183_161, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(152)) .saturating_add(T::DbWeight::get().reads((27_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().reads((51_u64).saturating_mul(m.into()))) @@ -118,419 +136,554 @@ impl parachain_staking::WeightInfo for WeightInfo { .saturating_add(Weight::from_parts(0, 64823).saturating_mul(m.into())) .saturating_add(Weight::from_parts(0, 31965).saturating_mul(n.into())) } - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:1) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: ParachainStaking TopCandidates (r:1 w:0) - // Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - // Storage: ParachainStaking CandidatePool (r:59 w:0) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:59 w:0) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// The range of component `n` is `[16, 75]`. + /// The range of component `m` is `[0, 35]`. fn set_max_selected_candidates(n: u32, m: u32, ) -> Weight { - Weight::from_parts(34_791_000 as u64, 0) - // Standard Error: 22_810 - .saturating_add(Weight::from_parts(3_158_790 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 50_488 - .saturating_add(Weight::from_parts(237_373 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().reads((1 as u64).saturating_mul(n as u64))) - .saturating_add(T::DbWeight::get().writes(2 as u64)) - } - // Storage: ParachainStaking Round (r:1 w:1) - // Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `0 + m * (2832 ±0) + n * (1843 ±0)` + // Estimated: `5255 + n * (3554 ±9)` + // Minimum execution time: 27_653_000 picoseconds. + Weight::from_parts(28_352_000, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 21_490 + .saturating_add(Weight::from_parts(3_049_696, 0).saturating_mul(n.into())) + // Standard Error: 47_567 + .saturating_add(Weight::from_parts(239_904, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 3554).saturating_mul(n.into())) + } + /// Storage: `ParachainStaking::Round` (r:1 w:1) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) fn set_blocks_per_round() -> Weight { - Weight::from_parts(24_158_000 as u64, 0) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) - } - // Storage: ParachainStaking CandidatePool (r:17 w:1) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking TopCandidates (r:1 w:1) - // Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:1 w:1) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:36 w:36) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Rewards (r:36 w:36) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:0) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - // Storage: ParachainStaking Unstaking (r:36 w:36) - // Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - // Storage: ParachainStaking DelegatorState (r:35 w:35) - // Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - // Storage: Session Validators (r:1 w:0) - // Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) - // Storage: Session DisabledValidators (r:1 w:1) - // Proof Skipped: Session DisabledValidators (max_values: Some(1), max_size: None, mode: Measured) - // Storage: System Digest (r:1 w:1) - // Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainStaking CounterForCandidatePool (r:1 w:1) - // Proof: ParachainStaking CounterForCandidatePool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `335` + // Estimated: `1505` + // Minimum execution time: 11_310_000 picoseconds. + Weight::from_parts(11_440_000, 0) + .saturating_add(Weight::from_parts(0, 1505)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ParachainStaking::CandidatePool` (r:17 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:36 w:36) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:36 w:36) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:36 w:36) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:35 w:35) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Session::Validators` (r:1 w:0) + /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Session::DisabledValidators` (r:1 w:1) + /// Proof: `Session::DisabledValidators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// The range of component `n` is `[17, 75]`. + /// The range of component `m` is `[0, 35]`. fn force_remove_candidate(n: u32, m: u32, ) -> Weight { - Weight::from_parts(133_321_000 as u64, 0) - // Standard Error: 23_503 - .saturating_add(Weight::from_parts(849_432 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 52_141 - .saturating_add(Weight::from_parts(24_512_322 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(29 as u64)) - .saturating_add(T::DbWeight::get().reads((4 as u64).saturating_mul(m as u64))) - .saturating_add(T::DbWeight::get().writes(10 as u64)) - .saturating_add(T::DbWeight::get().writes((4 as u64).saturating_mul(m as u64))) - } - // Storage: ParachainStaking CandidatePool (r:1 w:1) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking DelegatorState (r:1 w:0) - // Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxCollatorCandidateStake (r:1 w:0) - // Proof: ParachainStaking MaxCollatorCandidateStake (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - // Storage: ParachainStaking Unstaking (r:1 w:1) - // Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: ParachainStaking TopCandidates (r:1 w:1) - // Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: ParachainStaking CounterForCandidatePool (r:1 w:1) - // Proof: ParachainStaking CounterForCandidatePool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `0 + m * (2303 ±0) + n * (397 ±0)` + // Estimated: `73495 + m * (2756 ±0) + n * (136 ±3)` + // Minimum execution time: 118_778_000 picoseconds. + Weight::from_parts(119_355_000, 0) + .saturating_add(Weight::from_parts(0, 73495)) + // Standard Error: 22_501 + .saturating_add(Weight::from_parts(804_550, 0).saturating_mul(n.into())) + // Standard Error: 49_918 + .saturating_add(Weight::from_parts(24_459_965, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(29)) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().writes(10)) + .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(m.into()))) + .saturating_add(Weight::from_parts(0, 2756).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 136).saturating_mul(n.into())) + } + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:0) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxCollatorCandidateStake` (r:1 w:0) + /// Proof: `ParachainStaking::MaxCollatorCandidateStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 74]`. + /// The range of component `m` is `[0, 35]`. fn join_candidates(n: u32, m: u32, ) -> Weight { - Weight::from_parts(58_290_006 as u64, 0) - // Standard Error: 9_768 - .saturating_add(Weight::from_parts(452_557 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 20_284 - .saturating_add(Weight::from_parts(801_802 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(10 as u64)) - .saturating_add(T::DbWeight::get().writes(7 as u64)) - } - // Storage: ParachainStaking CandidatePool (r:17 w:1) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking TopCandidates (r:1 w:1) - // Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - // Storage: ParachainStaking Round (r:1 w:0) - // Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `2617 + m * (37 ±0) + n * (76 ±0)` + // Estimated: `5255 + m * (43 ±0)` + // Minimum execution time: 69_424_000 picoseconds. + Weight::from_parts(49_939_529, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 9_887 + .saturating_add(Weight::from_parts(497_228, 0).saturating_mul(n.into())) + // Standard Error: 20_531 + .saturating_add(Weight::from_parts(928_561, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(11)) + .saturating_add(T::DbWeight::get().writes(7)) + .saturating_add(Weight::from_parts(0, 43).saturating_mul(m.into())) + } + /// Storage: `ParachainStaking::CandidatePool` (r:17 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Round` (r:1 w:0) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// The range of component `n` is `[17, 74]`. + /// The range of component `m` is `[0, 35]`. fn init_leave_candidates(n: u32, m: u32, ) -> Weight { - Weight::from_parts(82_719_648 as u64, 0) - // Standard Error: 9_416 - .saturating_add(Weight::from_parts(540_449 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 15_271 - .saturating_add(Weight::from_parts(1_265_189 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(21 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) - } - // Storage: ParachainStaking CandidatePool (r:2 w:1) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking TopCandidates (r:1 w:1) - // Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `2007 + m * (816 ±0) + n * (71 ±0)` + // Estimated: `73495` + // Minimum execution time: 94_110_000 picoseconds. + Weight::from_parts(67_481_022, 0) + .saturating_add(Weight::from_parts(0, 73495)) + // Standard Error: 8_661 + .saturating_add(Weight::from_parts(556_129, 0).saturating_mul(n.into())) + // Standard Error: 14_046 + .saturating_add(Weight::from_parts(1_304_509, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(21)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `ParachainStaking::CandidatePool` (r:2 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// The range of component `n` is `[17, 74]`. + /// The range of component `m` is `[0, 35]`. fn cancel_leave_candidates(n: u32, m: u32, ) -> Weight { - Weight::from_parts(40_360_490 as u64, 0) - // Standard Error: 6_610 - .saturating_add(Weight::from_parts(244_903 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 10_720 - .saturating_add(Weight::from_parts(568_999 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) - } - // Storage: ParachainStaking CandidatePool (r:1 w:1) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking Round (r:1 w:0) - // Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:1 w:1) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:36 w:36) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Rewards (r:36 w:36) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:0) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:0) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - // Storage: ParachainStaking Unstaking (r:36 w:36) - // Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - // Storage: ParachainStaking DelegatorState (r:35 w:35) - // Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - // Storage: Session Validators (r:1 w:0) - // Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured) - // Storage: Session DisabledValidators (r:1 w:1) - // Proof Skipped: Session DisabledValidators (max_values: Some(1), max_size: None, mode: Measured) - // Storage: System Digest (r:1 w:1) - // Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainStaking CounterForCandidatePool (r:1 w:1) - // Proof: ParachainStaking CounterForCandidatePool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `780 + m * (96 ±0) + n * (53 ±0)` + // Estimated: `9520` + // Minimum execution time: 36_358_000 picoseconds. + Weight::from_parts(27_741_857, 0) + .saturating_add(Weight::from_parts(0, 9520)) + // Standard Error: 6_286 + .saturating_add(Weight::from_parts(257_906, 0).saturating_mul(n.into())) + // Standard Error: 10_194 + .saturating_add(Weight::from_parts(602_594, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Round` (r:1 w:0) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:36 w:36) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:36 w:36) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:0) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:36 w:36) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:35 w:35) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `Session::Validators` (r:1 w:0) + /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Session::DisabledValidators` (r:1 w:1) + /// Proof: `Session::DisabledValidators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// The range of component `n` is `[17, 74]`. + /// The range of component `m` is `[0, 35]`. fn execute_leave_candidates(n: u32, m: u32, ) -> Weight { - Weight::from_parts(66_923_000 as u64, 0) - // Standard Error: 20_476 - .saturating_add(Weight::from_parts(750_740 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 44_843 - .saturating_add(Weight::from_parts(24_654_644 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(12 as u64)) - .saturating_add(T::DbWeight::get().reads((4 as u64).saturating_mul(m as u64))) - .saturating_add(T::DbWeight::get().writes(8 as u64)) - .saturating_add(T::DbWeight::get().writes((4 as u64).saturating_mul(m as u64))) - } - // Storage: ParachainStaking CandidatePool (r:1 w:1) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxCollatorCandidateStake (r:1 w:0) - // Proof: ParachainStaking MaxCollatorCandidateStake (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) - // Storage: ParachainStaking Unstaking (r:1 w:1) - // Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: ParachainStaking TopCandidates (r:1 w:1) - // Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:1 w:0) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:1 w:1) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Rewards (r:1 w:1) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:0) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `0 + m * (1534 ±0) + n * (335 ±0)` + // Estimated: `5255 + m * (2756 ±0) + n * (118 ±3)` + // Minimum execution time: 58_638_000 picoseconds. + Weight::from_parts(59_131_000, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 19_659 + .saturating_add(Weight::from_parts(665_206, 0).saturating_mul(n.into())) + // Standard Error: 43_055 + .saturating_add(Weight::from_parts(24_488_753, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(12)) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().writes(8)) + .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(m.into()))) + .saturating_add(Weight::from_parts(0, 2756).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 118).saturating_mul(n.into())) + } + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxCollatorCandidateStake` (r:1 w:0) + /// Proof: `ParachainStaking::MaxCollatorCandidateStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 74]`. + /// The range of component `m` is `[0, 35]`. + /// The range of component `u` is `[0, 9]`. fn candidate_stake_more(n: u32, m: u32, u: u32, ) -> Weight { - Weight::from_parts(55_908_884 as u64, 0) - // Standard Error: 9_777 - .saturating_add(Weight::from_parts(500_279 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 20_296 - .saturating_add(Weight::from_parts(964_901 as u64, 0).saturating_mul(m as u64)) - // Standard Error: 75_180 - .saturating_add(Weight::from_parts(1_126_340 as u64, 0).saturating_mul(u as u64)) - .saturating_add(T::DbWeight::get().reads(12 as u64)) - .saturating_add(T::DbWeight::get().writes(8 as u64)) - } - // Storage: ParachainStaking CandidatePool (r:1 w:1) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking Unstaking (r:1 w:1) - // Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - // Storage: ParachainStaking TopCandidates (r:1 w:1) - // Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:1 w:0) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:1 w:1) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Rewards (r:1 w:1) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:0) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `3030 + m * (92 ±0) + n * (65 ±0) + u * (24 ±0)` + // Estimated: `5255` + // Minimum execution time: 80_389_000 picoseconds. + Weight::from_parts(50_978_206, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 9_649 + .saturating_add(Weight::from_parts(546_020, 0).saturating_mul(n.into())) + // Standard Error: 20_030 + .saturating_add(Weight::from_parts(1_061_953, 0).saturating_mul(m.into())) + // Standard Error: 74_196 + .saturating_add(Weight::from_parts(1_064_567, 0).saturating_mul(u.into())) + .saturating_add(T::DbWeight::get().reads(13)) + .saturating_add(T::DbWeight::get().writes(8)) + } + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 74]`. + /// The range of component `m` is `[0, 35]`. fn candidate_stake_less(n: u32, m: u32, ) -> Weight { - Weight::from_parts(45_889_115 as u64, 0) - // Standard Error: 10_474 - .saturating_add(Weight::from_parts(483_213 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 21_750 - .saturating_add(Weight::from_parts(905_984 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(9 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) - } - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) - // Storage: ParachainStaking DelegatorState (r:1 w:1) - // Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - // Storage: ParachainStaking CandidatePool (r:2 w:1) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking Unstaking (r:1 w:1) - // Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - // Storage: ParachainStaking LastDelegation (r:1 w:1) - // Proof: ParachainStaking LastDelegation (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Round (r:1 w:0) - // Proof: ParachainStaking Round (max_values: Some(1), max_size: Some(20), added: 515, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: ParachainStaking TopCandidates (r:1 w:1) - // Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:1 w:0) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:0 w:1) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `2099 + m * (70 ±0) + n * (60 ±0)` + // Estimated: `5255` + // Minimum execution time: 53_992_000 picoseconds. + Weight::from_parts(35_851_422, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 9_763 + .saturating_add(Weight::from_parts(473_665, 0).saturating_mul(n.into())) + // Standard Error: 20_273 + .saturating_add(Weight::from_parts(904_994, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:2 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::LastDelegation` (r:1 w:1) + /// Proof: `ParachainStaking::LastDelegation` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Round` (r:1 w:0) + /// Proof: `ParachainStaking::Round` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:0 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 75]`. + /// The range of component `m` is `[1, 34]`. fn join_delegators(n: u32, m: u32, ) -> Weight { - Weight::from_parts(62_585_140 as u64, 0) - // Standard Error: 10_255 - .saturating_add(Weight::from_parts(588_425 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 22_793 - .saturating_add(Weight::from_parts(1_193_810 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(12 as u64)) - .saturating_add(T::DbWeight::get().writes(9 as u64)) - } - // Storage: ParachainStaking DelegatorState (r:1 w:1) - // Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - // Storage: ParachainStaking CandidatePool (r:1 w:1) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) - // Storage: ParachainStaking Unstaking (r:1 w:1) - // Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: ParachainStaking TopCandidates (r:1 w:1) - // Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:1 w:0) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:1 w:1) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Rewards (r:1 w:1) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:0) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `3558 + m * (93 ±0) + n * (84 ±0)` + // Estimated: `9520` + // Minimum execution time: 84_218_000 picoseconds. + Weight::from_parts(59_587_453, 0) + .saturating_add(Weight::from_parts(0, 9520)) + // Standard Error: 10_366 + .saturating_add(Weight::from_parts(609_119, 0).saturating_mul(n.into())) + // Standard Error: 23_038 + .saturating_add(Weight::from_parts(1_255_957, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(13)) + .saturating_add(T::DbWeight::get().writes(9)) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 75]`. + /// The range of component `m` is `[1, 34]`. + /// The range of component `u` is `[1, 9]`. fn delegator_stake_more(n: u32, m: u32, u: u32, ) -> Weight { - Weight::from_parts(66_780_705 as u64, 0) - // Standard Error: 9_176 - .saturating_add(Weight::from_parts(519_243 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 20_387 - .saturating_add(Weight::from_parts(950_103 as u64, 0).saturating_mul(m as u64)) - // Standard Error: 79_072 - .saturating_add(Weight::from_parts(1_029_497 as u64, 0).saturating_mul(u as u64)) - .saturating_add(T::DbWeight::get().reads(12 as u64)) - .saturating_add(T::DbWeight::get().writes(9 as u64)) - } - // Storage: ParachainStaking DelegatorState (r:1 w:1) - // Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - // Storage: ParachainStaking CandidatePool (r:1 w:1) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking Unstaking (r:1 w:1) - // Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - // Storage: ParachainStaking TopCandidates (r:1 w:1) - // Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:1 w:0) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:1 w:1) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Rewards (r:1 w:1) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:0) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `4166 + m * (88 ±0) + n * (72 ±0) + u * (24 ±0)` + // Estimated: `5255` + // Minimum execution time: 87_277_000 picoseconds. + Weight::from_parts(61_725_552, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 9_343 + .saturating_add(Weight::from_parts(543_711, 0).saturating_mul(n.into())) + // Standard Error: 20_758 + .saturating_add(Weight::from_parts(1_047_414, 0).saturating_mul(m.into())) + // Standard Error: 80_510 + .saturating_add(Weight::from_parts(1_129_443, 0).saturating_mul(u.into())) + .saturating_add(T::DbWeight::get().reads(13)) + .saturating_add(T::DbWeight::get().writes(9)) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 75]`. + /// The range of component `m` is `[1, 34]`. fn delegator_stake_less(n: u32, m: u32, ) -> Weight { - Weight::from_parts(55_304_698 as u64, 0) - // Standard Error: 10_232 - .saturating_add(Weight::from_parts(495_173 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 22_742 - .saturating_add(Weight::from_parts(960_378 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(10 as u64)) - .saturating_add(T::DbWeight::get().writes(7 as u64)) - } - // Storage: ParachainStaking DelegatorState (r:1 w:1) - // Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - // Storage: ParachainStaking CandidatePool (r:1 w:1) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:1 w:0) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:1 w:1) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Rewards (r:1 w:1) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:1) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:0) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) - // Storage: ParachainStaking Unstaking (r:1 w:1) - // Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - // Storage: ParachainStaking TopCandidates (r:1 w:1) - // Proof: ParachainStaking TopCandidates (max_values: Some(1), max_size: Some(3602), added: 4097, mode: MaxEncodedLen) - // Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0) - // Proof: ParachainStaking MaxSelectedCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `2952 + m * (71 ±0) + n * (67 ±0)` + // Estimated: `5255` + // Minimum execution time: 63_251_000 picoseconds. + Weight::from_parts(42_636_412, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 9_423 + .saturating_add(Weight::from_parts(519_134, 0).saturating_mul(n.into())) + // Standard Error: 20_943 + .saturating_add(Weight::from_parts(1_002_343, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(10)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:1) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopCandidates` (r:1 w:1) + /// Proof: `ParachainStaking::TopCandidates` (`max_values`: Some(1), `max_size`: Some(3602), added: 4097, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::MaxSelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::MaxSelectedCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 75]`. + /// The range of component `m` is `[1, 34]`. fn leave_delegators(n: u32, m: u32, ) -> Weight { - Weight::from_parts(62_004_177 as u64, 0) - // Standard Error: 10_361 - .saturating_add(Weight::from_parts(490_342 as u64, 0).saturating_mul(n as u64)) - // Standard Error: 23_027 - .saturating_add(Weight::from_parts(900_182 as u64, 0).saturating_mul(m as u64)) - .saturating_add(T::DbWeight::get().reads(10 as u64)) - .saturating_add(T::DbWeight::get().writes(7 as u64)) - } - // Storage: ParachainStaking Unstaking (r:1 w:1) - // Proof: ParachainStaking Unstaking (max_values: None, max_size: Some(281), added: 2756, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) - fn unlock_unstaked(_u: u32, ) -> Weight { - Weight::from_parts(40_259_781 as u64, 0) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) - } - // Storage: ParachainStaking MaxCollatorCandidateStake (r:0 w:1) - // Proof: ParachainStaking MaxCollatorCandidateStake (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `2952 + m * (71 ±0) + n * (67 ±0)` + // Estimated: `5255` + // Minimum execution time: 65_814_000 picoseconds. + Weight::from_parts(44_643_969, 0) + .saturating_add(Weight::from_parts(0, 5255)) + // Standard Error: 9_222 + .saturating_add(Weight::from_parts(536_579, 0).saturating_mul(n.into())) + // Standard Error: 20_496 + .saturating_add(Weight::from_parts(1_003_542, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(10)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: `ParachainStaking::Unstaking` (r:1 w:1) + /// Proof: `ParachainStaking::Unstaking` (`max_values`: None, `max_size`: Some(281), added: 2756, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(949), added: 3424, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// The range of component `u` is `[1, 9]`. + fn unlock_unstaked(u: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `709 + u * (24 ±0)` + // Estimated: `4764` + // Minimum execution time: 34_909_000 picoseconds. + Weight::from_parts(35_719_766, 0) + .saturating_add(Weight::from_parts(0, 4764)) + // Standard Error: 4_280 + .saturating_add(Weight::from_parts(68_613, 0).saturating_mul(u.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `ParachainStaking::MaxCollatorCandidateStake` (r:0 w:1) + /// Proof: `ParachainStaking::MaxCollatorCandidateStake` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) fn set_max_candidate_stake() -> Weight { - Weight::from_parts(9_402_000 as u64, 0) - .saturating_add(T::DbWeight::get().writes(1 as u64)) - } - // Storage: ParachainStaking DelegatorState (r:1 w:0) - // Proof: ParachainStaking DelegatorState (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:1 w:0) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:1 w:1) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Rewards (r:1 w:1) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:0) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:0) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_721_000 picoseconds. + Weight::from_parts(5_920_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:0) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:0) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) fn increment_delegator_rewards() -> Weight { - Weight::from_parts(40_524_000 as u64, 0) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) - } - // Storage: ParachainStaking CandidatePool (r:1 w:0) - // Proof: ParachainStaking CandidatePool (max_values: None, max_size: Some(1790), added: 4265, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksAuthored (r:1 w:0) - // Proof: ParachainStaking BlocksAuthored (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking BlocksRewarded (r:1 w:1) - // Proof: ParachainStaking BlocksRewarded (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: ParachainStaking Rewards (r:1 w:1) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: ParachainStaking TotalCollatorStake (r:1 w:0) - // Proof: ParachainStaking TotalCollatorStake (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - // Storage: ParachainStaking InflationConfig (r:1 w:0) - // Proof: ParachainStaking InflationConfig (max_values: Some(1), max_size: Some(96), added: 591, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `676` + // Estimated: `3553` + // Minimum execution time: 25_574_000 picoseconds. + Weight::from_parts(26_030_000, 0) + .saturating_add(Weight::from_parts(0, 3553)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:0) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: None, `max_size`: Some(1790), added: 4265, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksAuthored` (r:1 w:0) + /// Proof: `ParachainStaking::BlocksAuthored` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::BlocksRewarded` (r:1 w:1) + /// Proof: `ParachainStaking::BlocksRewarded` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TotalCollatorStake` (r:1 w:0) + /// Proof: `ParachainStaking::TotalCollatorStake` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:0) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: Some(96), added: 591, mode: `MaxEncodedLen`) fn increment_collator_rewards() -> Weight { - Weight::from_parts(24_257_000 as u64, 0) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) - } - // Storage: ParachainStaking Rewards (r:1 w:1) - // Proof: ParachainStaking Rewards (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(132), added: 2607, mode: MaxEncodedLen) + // Proof Size summary in bytes: + // Measured: `590` + // Estimated: `5255` + // Minimum execution time: 22_001_000 picoseconds. + Weight::from_parts(22_299_000, 0) + .saturating_add(Weight::from_parts(0, 5255)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainStaking::Rewards` (r:1 w:1) + /// Proof: `ParachainStaking::Rewards` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(132), added: 2607, mode: `MaxEncodedLen`) fn claim_rewards() -> Weight { - Weight::from_parts(48_168_000 as u64, 0) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `516` + // Estimated: `3597` + // Minimum execution time: 26_123_000 picoseconds. + Weight::from_parts(26_466_000, 0) + .saturating_add(Weight::from_parts(0, 3597)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `ParachainStaking::CounterForCandidatePool` (r:1 w:0) /// Proof: `ParachainStaking::CounterForCandidatePool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -553,14 +706,14 @@ impl parachain_staking::WeightInfo for WeightInfo { fn execute_scheduled_reward_change(n: u32, m: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0 + m * (7573 ±0) + n * (3647 ±0)` - // Estimated: `183222 + m * (64823 ±2_167) + n * (31965 ±1_009)` - // Minimum execution time: 683_160_000 picoseconds. - Weight::from_parts(687_351_000, 0) + // Estimated: `183222 + m * (64823 ±2_174) + n * (31965 ±1_012)` + // Minimum execution time: 666_582_000 picoseconds. + Weight::from_parts(668_583_000, 0) .saturating_add(Weight::from_parts(0, 183222)) - // Standard Error: 4_643_820 - .saturating_add(Weight::from_parts(141_740_256, 0).saturating_mul(n.into())) - // Standard Error: 9_970_180 - .saturating_add(Weight::from_parts(280_674_034, 0).saturating_mul(m.into())) + // Standard Error: 4_515_951 + .saturating_add(Weight::from_parts(137_991_205, 0).saturating_mul(n.into())) + // Standard Error: 9_695_648 + .saturating_add(Weight::from_parts(272_566_431, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(153)) .saturating_add(T::DbWeight::get().reads((27_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().reads((51_u64).saturating_mul(m.into()))) @@ -583,7 +736,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 515 + > 1505 ); } #[test] @@ -595,7 +748,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 515 + > 1505 ); } #[test] @@ -607,7 +760,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 4723 + > 3597 ); } #[test] @@ -631,7 +784,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 5168 + > 5255 ); } #[test] @@ -643,7 +796,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 515 + > 1505 ); } #[test] @@ -655,7 +808,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 116721 + > 73495 ); } #[test] @@ -667,7 +820,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 22098 + > 5255 ); } #[test] @@ -679,7 +832,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 78143 + > 73495 ); } #[test] @@ -691,7 +844,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 13653 + > 9520 ); } #[test] @@ -703,7 +856,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 25299 + > 5255 ); } #[test] @@ -715,7 +868,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 27204 + > 5255 ); } #[test] @@ -727,7 +880,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 20312 + > 5255 ); } #[test] @@ -739,7 +892,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 30914 + > 9520 ); } #[test] @@ -751,7 +904,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 29256 + > 5255 ); } #[test] @@ -763,7 +916,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 22875 + > 5255 ); } #[test] @@ -775,7 +928,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 22875 + > 5255 ); } #[test] @@ -787,7 +940,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 9137 + > 4764 ); } #[test] @@ -799,7 +952,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 11258 + > 3553 ); } #[test] @@ -811,7 +964,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 12960 + > 5255 ); } #[test] @@ -823,7 +976,7 @@ mod tests { .max_extrinsic .unwrap_or_else(::max_value) .proof_size() - > 5138 + > 3597 ); } #[test] diff --git a/runtimes/spiritnet/src/weights/public_credentials.rs b/runtimes/spiritnet/src/weights/public_credentials.rs index 0c96cdf01..caef5d764 100644 --- a/runtimes/spiritnet/src/weights/public_credentials.rs +++ b/runtimes/spiritnet/src/weights/public_credentials.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `public_credentials` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 33.0.0 -//! DATE: 2024-06-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-10-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `eyrie-7`, CPU: `Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("spiritnet-dev"), DB CACHE: 1024 @@ -28,16 +28,13 @@ // ./target/release/kilt-parachain // benchmark // pallet -// --template=.maintain/runtime-weight-template.hbs -// --header=HEADER-GPL -// --wasm-execution=compiled // --heap-pages=4096 -// --steps=50 -// --repeat=20 // --chain=spiritnet-dev // --pallet=public-credentials // --extrinsic=* -// --output=./runtimes/spiritnet/src/weights/public_credentials.rs +// --header=HEADER-GPL +// --template=.maintain/runtime-weight-template.hbs +// --output=./runtimes/spiritnet/src/weights/ #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -66,11 +63,11 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `363` // Estimated: `3940` - // Minimum execution time: 64_264_000 picoseconds. - Weight::from_parts(60_245_133, 0) + // Minimum execution time: 64_212_000 picoseconds. + Weight::from_parts(60_367_157, 0) .saturating_add(Weight::from_parts(0, 3940)) // Standard Error: 7 - .saturating_add(Weight::from_parts(2_343, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(2_367, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(5)) } @@ -82,8 +79,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `919` // Estimated: `3940` - // Minimum execution time: 24_018_000 picoseconds. - Weight::from_parts(24_346_000, 0) + // Minimum execution time: 24_052_000 picoseconds. + Weight::from_parts(24_399_000, 0) .saturating_add(Weight::from_parts(0, 3940)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -96,8 +93,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `919` // Estimated: `3940` - // Minimum execution time: 23_516_000 picoseconds. - Weight::from_parts(23_733_000, 0) + // Minimum execution time: 23_578_000 picoseconds. + Weight::from_parts(23_890_000, 0) .saturating_add(Weight::from_parts(0, 3940)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -116,8 +113,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1160` // Estimated: `3940` - // Minimum execution time: 61_552_000 picoseconds. - Weight::from_parts(62_254_000, 0) + // Minimum execution time: 61_382_000 picoseconds. + Weight::from_parts(61_917_000, 0) .saturating_add(Weight::from_parts(0, 3940)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -136,8 +133,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1160` // Estimated: `3940` - // Minimum execution time: 61_540_000 picoseconds. - Weight::from_parts(62_236_000, 0) + // Minimum execution time: 61_203_000 picoseconds. + Weight::from_parts(62_055_000, 0) .saturating_add(Weight::from_parts(0, 3940)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -156,8 +153,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1265` // Estimated: `6326` - // Minimum execution time: 97_534_000 picoseconds. - Weight::from_parts(98_223_000, 0) + // Minimum execution time: 96_429_000 picoseconds. + Weight::from_parts(97_177_000, 0) .saturating_add(Weight::from_parts(0, 6326)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -176,8 +173,8 @@ impl public_credentials::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1084` // Estimated: `3940` - // Minimum execution time: 84_048_000 picoseconds. - Weight::from_parts(84_586_000, 0) + // Minimum execution time: 83_453_000 picoseconds. + Weight::from_parts(83_973_000, 0) .saturating_add(Weight::from_parts(0, 3940)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4))